<?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>201589</bug_id>
          
          <creation_ts>2019-09-08 09:55:13 -0700</creation_ts>
          <short_desc>Resync service workers WPT tests from upstream</short_desc>
          <delta_ts>2019-09-09 16:15:26 -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>Tools / Tests</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>beidson</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1569006</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-09-08 09:55:13 -0700</bug_when>
    <thetext>Resync service workers WPT tests from upstream.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1569008</commentid>
    <comment_count>1</comment_count>
      <attachid>378326</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-09-08 09:57:54 -0700</bug_when>
    <thetext>Created attachment 378326
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1569009</commentid>
    <comment_count>2</comment_count>
      <attachid>378327</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-09-08 09:58:49 -0700</bug_when>
    <thetext>Created attachment 378327
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1569037</commentid>
    <comment_count>3</comment_count>
      <attachid>378340</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-09-08 17:11:44 -0700</bug_when>
    <thetext>Created attachment 378340
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1569064</commentid>
    <comment_count>4</comment_count>
      <attachid>378340</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-09-08 23:16:22 -0700</bug_when>
    <thetext>Comment on attachment 378340
Patch

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

&gt; LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/activation.https.html:-116
&gt; -    var iframe;

These changes have been added recently as part of https://github.com/web-platform-tests/wpt/commit/2fb8797e671043fed5c21a3d3ea48944d09e09d1.
Could you add them back?
This probably just requires reverting the changes to activation.https.html, activation.https-expected.txt, detached-context.https.html and detached-context.https-expected.txt</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1569162</commentid>
    <comment_count>5</comment_count>
      <attachid>378374</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-09-09 09:35:33 -0700</bug_when>
    <thetext>Created attachment 378374
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1569195</commentid>
    <comment_count>6</comment_count>
      <attachid>378383</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-09-09 10:58:15 -0700</bug_when>
    <thetext>Created attachment 378383
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1569203</commentid>
    <comment_count>7</comment_count>
      <attachid>378387</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-09-09 11:12:51 -0700</bug_when>
    <thetext>Created attachment 378387
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1569238</commentid>
    <comment_count>8</comment_count>
      <attachid>378393</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-09-09 12:23:12 -0700</bug_when>
    <thetext>Created attachment 378393
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1569300</commentid>
    <comment_count>9</comment_count>
      <attachid>378410</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-09-09 14:18:48 -0700</bug_when>
    <thetext>Created attachment 378410
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1569330</commentid>
    <comment_count>10</comment_count>
      <attachid>378410</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-09-09 16:14:55 -0700</bug_when>
    <thetext>Comment on attachment 378410
Patch

Clearing flags on attachment: 378410

Committed r249672: &lt;https://trac.webkit.org/changeset/249672&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1569331</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-09-09 16:14:56 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1569332</commentid>
    <comment_count>12</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-09-09 16:15:22 -0700</bug_when>
    <thetext>&lt;rdar://problem/55202874&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1569333</commentid>
    <comment_count>13</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-09-09 16:15:26 -0700</bug_when>
    <thetext>&lt;rdar://problem/55202875&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>378326</attachid>
            <date>2019-09-08 09:57:54 -0700</date>
            <delta_ts>2019-09-08 09:58:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201589-20190908095738.patch</filename>
            <type>text/plain</type>
            <size>568856</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5NjI5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggY2U3MTRhOWFmMmU0NDczZjc2NzM5
MzY2N2ZiYTEwNDFjMzYxNmNkOC4uYjI4ZWUwNWY4YWUzMzFhYzM0YzllZTY2YjJjYzQ1MGI4Nzkw
MjJlYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDE5LTA5LTA4ICBDaHJpcyBEdW1leiAgPGNk
dW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUmVzeW5jIHNlcnZpY2Ugd29ya2VycyBXUFQgdGVz
dHMgZnJvbSB1cHN0cmVhbQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjAxNTg5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBUZXN0RXhwZWN0YXRpb25zOgorCiAyMDE5LTA5LTA3ICBDaHJpcyBEdW1leiAg
PGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHBvc3RNZXNzYWdl
IGJ1ZmZlcmluZyBiZXR3ZWVuIHRoZSBzZXJ2aWNlIHdvcmtlciBhbmQgd2luZG93CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRleCBjYjQ2MzU1YmY0ZDE0ZjdjZGEyMzE3NGVlMWIzMDVl
OTBmODc4OTNlLi5mNzdiZTcyMmVkNzc1YjBjNGQzNjdiYmZhOTNjMjYxYmZkOWE3ZWY0IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNTUgQEAKKzIwMTktMDktMDgg
IENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBSZXN5bmMgc2Vydmlj
ZSB3b3JrZXJzIFdQVCB0ZXN0cyBmcm9tIHVwc3RyZWFtCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDE1ODkKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZXN5bmMgc2VydmljZSB3b3JrZXJzIFdQVCB0ZXN0
cyBmcm9tIHVwc3RyZWFtIDgyMGYwZjg2MDQ3ZTZlMjY0MDFlLgorCisgICAgICAgICogd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9TZXJ2aWNlLVdvcmtl
ci1BbGxvd2VkLWhlYWRlci5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9TZXJ2aWNlLVdvcmtlci1B
bGxvd2VkLWhlYWRlci5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlL3Bv
c3RtZXNzYWdlLmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUvdW5yZWdp
c3Rlci5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlL3VwZGF0ZS5odHRw
cy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvYWJvdXQtYmxhbmstcmVwbGFjZW1lbnQuaHR0cHMuaHRtbDoKKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2FjdGl2
YXRlLWV2ZW50LWFmdGVyLWluc3RhbGwtc3RhdGUtY2hhbmdlLmh0dHBzLmh0bWw6CisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9hY3Rp
dmF0aW9uLWFmdGVyLXJlZ2lzdHJhdGlvbi5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvYWN0aXZhdGlvbi5odHRw
cy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9hY3RpdmF0aW9uLmh0dHBzLmh0bWw6CisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9hcHBjYWNoZS1v
cmRlcmluZy1tYWluLmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGFpbS1mZXRjaC13aXRoLWFwcGNhY2hlLmh0
dHBzLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsYWltLWZldGNoLXdpdGgtYXBwY2FjaGUu
aHR0cHMuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsYWltLWZldGNoLmh0dHBzLmh0bWw6CisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGFp
bS1ub3QtdXNpbmctcmVnaXN0cmF0aW9uLmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGFpbS1zaGFyZWQtd29y
a2VyLWZldGNoLmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGFpbS11c2luZy1yZWdpc3RyYXRpb24uaHR0cHMu
aHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL2NsYWltLXdvcmtlci1mZXRjaC5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGFp
bS13b3JrZXItZmV0Y2guaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsaWVudC1pZC5odHRwcy5odG1sOgorICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
Y2xpZW50cy1nZXQtY2xpZW50LXR5cGVzLmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGllbnRzLWdldC1yZXN1
bHRpbmdDbGllbnRJZC5odHRwcy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGllbnRzLWdl
dC1yZXN1bHRpbmdDbGllbnRJZC5odHRwcy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xpZW50cy1nZXQu
aHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xpZW50cy1nZXQuaHR0cHMuaHRtbDoKKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsaWVu
dHMtbWF0Y2hhbGwtY2xpZW50LXR5cGVzLmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGllbnRzLW1hdGNoYWxs
LWV4YWN0LWNvbnRyb2xsZXIuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xpZW50cy1tYXRjaGFs
bC1leGFjdC1jb250cm9sbGVyLmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGllbnRzLW1hdGNoYWxsLWluY2x1
ZGUtdW5jb250cm9sbGVkLmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGllbnRzLW1hdGNoYWxsLW9yZGVyLmh0
dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9jbGllbnRzLW1hdGNoYWxsLmh0dHBzLmh0bWw6CisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jb250cm9sbGVy
LW9uLWRpc2Nvbm5lY3QuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NvbnRyb2xsZXItb24tbG9hZC5odHRwcy5o
dG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvY29udHJvbGxlci1vbi1yZWxvYWQuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2RhdGEtdHJhbnNm
ZXItZmlsZXMuaHR0cHMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZGF0YS10cmFuc2Zlci1m
aWxlcy5odHRwcy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZGV0YWNoZWQtY29udGV4dC5odHRwcy1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9kZXRhY2hlZC1jb250ZXh0Lmh0dHBzLmh0bWw6CisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9leHRlbmRhYmxl
LWV2ZW50LWFzeW5jLXdhaXR1bnRpbC5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9leHRlbmRhYmxl
LWV2ZW50LWFzeW5jLXdhaXR1bnRpbC5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZXh0ZW5kYWJsZS1ldmVudC13
YWl0dW50aWwuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWF1ZGlvLXRhaW50aW5nLmh0dHBzLWV4cGVj
dGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWF1ZGlvLXRhaW50aW5nLmh0dHBzLmh0bWw6IFJl
bW92ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9mZXRjaC1jYW52YXMtdGFpbnRpbmctZG91YmxlLXdyaXRlLmh0dHBzLWV4cGVj
dGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWNhbnZhcy10YWludGluZy1kb3VibGUtd3JpdGUu
aHR0cHMuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWNhbnZhcy10YWludGluZy12aWRlby1jYWNo
ZS5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvZmV0Y2gtY2FudmFzLXRhaW50aW5nLXZpZGVvLmh0dHBzLmh0bWw6
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9mZXRjaC1jb3JzLXhoci5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1jb3JzLXho
ci5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvZmV0Y2gtY3NwLmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1ldmVudC1h
ZnRlci1uYXZpZ2F0aW9uLXdpdGhpbi1wYWdlLmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1ldmVudC1h
c3luYy1yZXNwb25kLXdpdGguaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtZXZlbnQtYXN5
bmMtcmVzcG9uZC13aXRoLmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1ldmVudC1uZXR3b3JrLWVycm9y
Lmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1ldmVudC1yZWZlcnJlci1wb2xpY3kuaHR0cHMtZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvZmV0Y2gtZXZlbnQtcmVmZXJyZXItcG9saWN5Lmh0dHBzLmh0bWw6CisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9m
ZXRjaC1ldmVudC1yZXNwb25kLXdpdGgtYXJndW1lbnQuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWV2
ZW50LXJlc3BvbmQtd2l0aC1ib2R5LWxvYWRlZC1pbi1jaHVuay5odHRwcy5odG1sOgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0
Y2gtZXZlbnQtcmVzcG9uZC13aXRoLXN0b3BzLXByb3BhZ2F0aW9uLmh0dHBzLmh0bWw6CisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9m
ZXRjaC1ldmVudC10aHJvd3MtYWZ0ZXItcmVzcG9uZC13aXRoLmh0dHBzLmh0bWw6CisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRj
aC1ldmVudC5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1ldmVudC5odHRwcy5odG1sOgor
ICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvZmV0Y2gtZnJhbWUtcmVzb3VyY2UuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWhlYWRlci12aXNp
YmlsaXR5Lmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1yZXF1ZXN0LWNzcy1iYXNlLXVybC5odHRwcy1l
eHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1yZXF1ZXN0LWNzcy1iYXNlLXVybC5odHRwcy5odG1sOgor
ICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvZmV0Y2gtcmVxdWVzdC1jc3MtaW1hZ2VzLmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1yZXF1ZXN0
LWh0bWwtaW1wb3J0cy5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1yZXF1ZXN0LWh0bWwt
aW1wb3J0cy5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtcmVxdWVzdC1uby1mcmVzaG5lc3MtaGVhZGVy
cy5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvZmV0Y2gtcmVxdWVzdC1yZWRpcmVjdC5odHRwcy5odG1sOgorICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
ZmV0Y2gtcmVxdWVzdC14aHItc3luYy5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtcmVzcG9uc2UteGhy
Lmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci9mZXRjaC13YWl0cy1mb3ItYWN0aXZhdGUuaHR0cHMuaHRtbDoKKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L2dldHJlZ2lzdHJhdGlvbi5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9nZXRyZWdpc3RyYXRpb24u
aHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL2ltcG9ydC1tb2R1bGUtc2NyaXB0cy5odHRwcy1leHBlY3RlZC50eHQ6
IFJlbW92ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9pbXBvcnQtbW9kdWxlLXNjcmlwdHMuaHR0cHMuaHRtbDogUmVtb3ZlZC4K
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL2ltcG9ydC1zY3JpcHRzLW1pbWUtdHlwZXMuaHR0cHMtZXhwZWN0ZWQudHh0OiBSZW1vdmVk
LgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvaW1wb3J0LXNjcmlwdHMtbWltZS10eXBlcy5odHRwcy5odG1sOiBSZW1vdmVkLgorICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
aW1wb3J0LXNjcmlwdHMtcmVzb3VyY2UtbWFwLmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ltcG9y
dC1zY3JpcHRzLXJlc291cmNlLW1hcC5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvaW50ZXJmYWNlcy13aW5kb3cu
aHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL2ludmFsaWQtYmxvYnR5cGUuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ludmFsaWQt
aGVhZGVyLmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9pc28tbGF0aW4xLWhlYWRlci5odHRwcy5odG1sOgorICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
bXVsdGlwbGUtdXBkYXRlLmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9uYXZpZ2F0aW9uLXJlZGlyZWN0Lmh0dHBz
Lmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9vbmFjdGl2YXRlLXNjcmlwdC1lcnJvci5odHRwcy5odG1sOgorICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcGVyZm9y
bWFuY2UtdGltZWxpbmUuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Bvc3RtZXNzYWdlLWZyb20td2FpdGluZy1z
ZXJ2aWNld29ya2VyLmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9wb3N0bWVzc2FnZS10by1jbGllbnQtbWVzc2Fn
ZS1xdWV1ZS5odHRwcy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9wb3N0bWVzc2FnZS10by1j
bGllbnQtbWVzc2FnZS1xdWV1ZS5odHRwcy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcG9zdG1lc3NhZ2Ut
dG8tY2xpZW50Lmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9wb3N0bWVzc2FnZS5odHRwcy1leHBlY3RlZC50eHQ6
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9wb3N0bWVzc2FnZS5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVhZHkuaHR0cHMuaHRtbDoKKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jl
ZGlyZWN0ZWQtcmVzcG9uc2UuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVkaXJlY3RlZC1yZXNw
b25zZS5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvcmVmZXJlci5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVnaXN0ZXItZGVm
YXVsdC1zY29wZS5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVnaXN0ZXItd2FpdC1mb3JldmVyLWluLWluc3Rh
bGwtd29ya2VyLmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZWdpc3RyYXRpb24tZW5kLXRvLWVuZC5odHRwcy5o
dG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvcmVnaXN0cmF0aW9uLWV2ZW50cy5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVnaXN0cmF0aW9u
LW1pbWUtdHlwZXMuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVnaXN0cmF0aW9uLW1pbWUtdHlw
ZXMuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL3JlZ2lzdHJhdGlvbi1zY2hlZHVsZS1qb2IuaHR0cHMtZXhwZWN0
ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvcmVnaXN0cmF0aW9uLXNjaGVkdWxlLWpvYi5odHRwcy5odG1s
OiBSZW1vdmVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvcmVnaXN0cmF0aW9uLXNjb3BlLmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L3JlZ2lzdHJhdGlvbi1zZWN1cml0eS1lcnJvci5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZWdp
c3RyYXRpb24tc2VydmljZS13b3JrZXItYXR0cmlidXRlcy5odHRwcy5odG1sOgorICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVnaXN0
cmF0aW9uLXVwZGF0ZXZpYWNhY2hlLmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlZ2lzdHJhdGlv
bi11cGRhdGV2aWFjYWNoZS5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2UtdGltaW5nLmh0dHBzLmh0
bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZS10aW1pbmcuc3ViLmh0
dHBzLmh0bWwuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9yZXNvdXJjZS10aW1pbmcuc3ViLmh0dHBzLWV4cGVjdGVkLnR4dDogUmVt
b3ZlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL3Jlc291cmNlcy9hYm91dC1ibGFuay1yZXBsYWNlbWVudC1waW5nLWZyYW1lLnB5
OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvcmVzb3VyY2VzL2FwcGNhY2hlLW9yZGVyaW5nLm1hbmlmZXN0OgorICAgICAgICAqIHdl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2Vz
L2NsYWltLXdvcmtlci5qczoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9jbGFzc2ljLXdvcmtlci5qczogUmVtb3Zl
ZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL3Jlc291cmNlcy9jbGllbnRzLWdldC1jcm9zcy1vcmlnaW4tZnJhbWUuaHRtbDoKKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L3Jlc291cmNlcy9jbGllbnRzLWdldC1yZXN1bHRpbmdDbGllbnRJZC13b3JrZXIuanM6IFJlbW92
ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9yZXNvdXJjZXMvY2xpZW50cy1nZXQtd29ya2VyLmpzOgorICAgICAgICAoc2VsZi5v
bm1lc3NhZ2UpOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2VuYWJsZS1jbGllbnQtbWVzc2FnZS1xdWV1ZS5odG1s
OiBSZW1vdmVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2V4dGVuZGFibGUtZXZlbnQtYXN5bmMtd2FpdHVudGls
LmpzOgorICAgICAgICAoc3dpdGNoKToKKyAgICAgICAgKGV2ZW50LnJlcXVlc3QudXJsLmluZGV4
T2YpOgorICAgICAgICAoZWxzZS5ldmVudC5yZXF1ZXN0LnVybC5pbmRleE9mKToKKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291
cmNlcy9mZXRjaC1jYW52YXMtdGFpbnRpbmctZG91YmxlLXdyaXRlLXdvcmtlci5qczogUmVtb3Zl
ZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL3Jlc291cmNlcy9mZXRjaC1jb3JzLXhoci1pZnJhbWUuaHRtbDoKKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNl
cy9mZXRjaC1ldmVudC1hc3luYy1yZXNwb25kLXdpdGgtd29ya2VyLmpzOgorICAgICAgICAoc2V0
VGltZW91dCk6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtZXZlbnQtbmV0d29yay1mYWxsYmFjay13b3Jr
ZXIuanM6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtZXZlbnQtdGVzdC13b3JrZXIuanM6CisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNv
dXJjZXMvZmV0Y2gtcmVxdWVzdC1jc3MtYmFzZS11cmwtaWZyYW1lLmh0bWw6CisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJj
ZXMvZmV0Y2gtcmVxdWVzdC1jc3MtYmFzZS11cmwtd29ya2VyLmpzOgorICAgICAgICAoc2VsZi5v
bm1lc3NhZ2UpOgorICAgICAgICAodXJsLmluZGV4T2YpOgorICAgICAgICAoZWxzZS51cmwuaW5k
ZXhPZik6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9yZXNvdXJjZXMvZ2V0LXJlc3VsdGluZ0NsaWVudElkLXdvcmtlci5qczogUmVt
b3ZlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL3Jlc291cmNlcy9pbXBvcnQtcmVsYXRpdmUueHNsOiBSZW1vdmVkLgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVz
b3VyY2VzL2ltcG9ydC1zY3JpcHRzLWRpZmYtcmVzb3VyY2UtbWFwLXdvcmtlci5qczogUmVtb3Zl
ZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL3Jlc291cmNlcy9pbXBvcnQtc2NyaXB0cy1nZXQucHk6IFJlbW92ZWQuCisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNv
dXJjZXMvaW1wb3J0LXNjcmlwdHMtbWltZS10eXBlcy13b3JrZXIuanM6IFJlbW92ZWQuCisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9y
ZXNvdXJjZXMvaW1wb3J0ZWQtY2xhc3NpYy1zY3JpcHQuanM6IFJlbW92ZWQuCisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJj
ZXMvaW1wb3J0ZWQtbW9kdWxlLXNjcmlwdC5qczogUmVtb3ZlZC4KKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9tZXNz
YWdlLXZzLW1pY3JvdGFzay5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL21vZHVsZS13b3Jr
ZXIuanM6IFJlbW92ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvbmF2aWdhdGlvbi1yZWRpcmVjdC1vdGhlci1v
cmlnaW4uaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9uYXZpZ2F0aW9uLXJlZGlyZWN0LW91dC1zY29wZS5w
eToKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL3Jlc291cmNlcy9uYXZpZ2F0aW9uLXJlZGlyZWN0LXNjb3BlMS5weToKKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291
cmNlcy9uYXZpZ2F0aW9uLXJlZGlyZWN0LXNjb3BlMi5weToKKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9uZXN0ZWQt
aWZyYW1lLXBhcmVudC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3BlcmZvcm1hbmNlLXRp
bWVsaW5lLXdvcmtlci5qczoKKyAgICAgICAgKHByb21pc2VfdGVzdC4pOgorICAgICAgICAocHJv
bWlzZV90ZXN0KToKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9wb3N0bWVzc2FnZS1lY2hvLXdvcmtlci5qczogUmVt
b3ZlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL3Jlc291cmNlcy9yZWRpcmVjdC13b3JrZXIuanM6CisgICAgICAgIChldmVudC53
YWl0VW50aWwuUHJvbWlzZS5hbGwud2FpdFVudGlsUHJvbWlzZUxpc3QudGhlbik6CisgICAgICAg
ICh0aGVuKToKKyAgICAgICAgKHdhaXRVbnRpbFByb21pc2UuY2FjaGVzLm9wZW4uY2FjaGVOYW1l
LnRoZW4pOgorICAgICAgICAoZXZlbnQucmVzcG9uZFdpdGgud2FpdFVudGlsUHJvbWlzZS50aGVu
KToKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL3Jlc291cmNlcy9yZWdpc3RyYXRpb24tdGVzdHMtbWltZS10eXBlcy5qczoKKyAgICAg
ICAgKHJlZ2lzdHJhdGlvbl90ZXN0c19taW1lX3R5cGVzKToKKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9yZWdpc3Ry
YXRpb24tdGVzdHMtc2NvcGUuanM6CisgICAgICAgIChyZWdpc3RyYXRpb25fdGVzdHNfc2NvcGUp
OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvcmVzb3VyY2VzL3JlZ2lzdHJhdGlvbi10ZXN0cy1zZWN1cml0eS1lcnJvci5qczoKKyAg
ICAgICAgKHJlZ2lzdHJhdGlvbl90ZXN0c19zZWN1cml0eV9lcnJvcik6CisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMv
cmVzb3VyY2UtdGltaW5nLWlmcmFtZS5zdWIuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9zZXJ2aWNlLXdv
cmtlci1jc3Atd29ya2VyLnB5OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3NlcnZpY2Utd29ya2VyLWhlYWRlci5w
eToKKyAgICAgICAgKG1haW4pOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3NraXAtd2FpdGluZy1pbnN0YWxsZWQt
d29ya2VyLmpzOgorICAgICAgICAoZXZlbnQud2FpdFVudGlsLnNlbGYuc2tpcFdhaXRpbmcudGhl
bik6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9yZXNvdXJjZXMvc3RhbGxpbmctc2VydmljZS13b3JrZXIuanM6IFJlbW92ZWQuCisg
ICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9yZXNvdXJjZXMvdGVzdC1oZWxwZXJzLnN1Yi5qczoKKyAgICAgICAgKHdhaXRfZm9yX3VwZGF0
ZSk6CisgICAgICAgIChhc3luYy53YWl0X2Zvcl9hY3RpdmF0aW9uX29uX2R1bW15X3Njb3BlKToK
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3Jlc291cmNlcy90ZXN0LXJlcXVlc3QtaGVhZGVycy13b3JrZXIuanM6IFJlbW92ZWQuCisg
ICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9yZXNvdXJjZXMvdGVzdC1yZXF1ZXN0LWhlYWRlcnMtd29ya2VyLnB5OiBSZW1vdmVkLgorICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
cmVzb3VyY2VzL3RyaWNrbGUucHk6IFJlbW92ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvdXBkYXRlLWR1cmlu
Zy1pbnN0YWxsYXRpb24td29ya2VyLmpzOiBSZW1vdmVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3VwZGF0ZS1k
dXJpbmctaW5zdGFsbGF0aW9uLXdvcmtlci5weTogUmVtb3ZlZC4KKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy91cGRh
dGUtZmV0Y2gtd29ya2VyLnB5OiBSZW1vdmVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3VwZGF0ZS1taXNzaW5n
LWltcG9ydC1zY3JpcHRzLWltcG9ydGVkLXdvcmtlci5weTogUmVtb3ZlZC4KKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNl
cy91cGRhdGUtbWlzc2luZy1pbXBvcnQtc2NyaXB0cy1tYWluLXdvcmtlci5weTogUmVtb3ZlZC4K
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3Jlc291cmNlcy91cGRhdGUtcmVnaXN0cmF0aW9uLXdpdGgtdHlwZS5weTogUmVtb3ZlZC4K
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3Jlc291cmNlcy93M2MtaW1wb3J0LmxvZzoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy93b3JrZXItaW50ZXJj
ZXB0aW9uLWlmcmFtZS5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3dvcmtlci1sb2FkLWludGVy
Y2VwdG9yLmpzOgorICAgICAgICAoc2VsZi5vbmZldGNoKToKKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy93b3JrZXIt
dGVzdGhhcm5lc3MuanM6CisgICAgICAgIChjcmVhdGVfdGVtcG9yYXJ5X2NhY2hlKToKKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jl
c291cmNlcy94aHItaWZyYW1lLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMveGhyLXJlc3Bv
bnNlLXVybC13b3JrZXIuanM6IFJlbW92ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMveHNsLWJhc2UtdXJsLWlm
cmFtZS54bWw6IFJlbW92ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMveHNsLWJhc2UtdXJsLXdvcmtlci5qczog
UmVtb3ZlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL3Jlc291cmNlcy94c2x0LXBhc3MueHNsOiBSZW1vdmVkLgorICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvc2Vydmlj
ZS13b3JrZXItY3NwLWNvbm5lY3QuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvc2VydmljZS13b3Jr
ZXItY3NwLWRlZmF1bHQuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvc2VydmljZS13b3JrZXItY3Nw
LXNjcmlwdC5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9zZXJ2aWNlLXdvcmtlci1oZWFkZXIuaHR0
cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvc2VydmljZS13b3JrZXItaGVhZGVyLmh0dHBzLmh0bWw6Cisg
ICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9zZXJ2aWNld29ya2VyLW1lc3NhZ2UtZXZlbnQtaGlzdG9yaWNhbC5odHRwcy5odG1sOgorICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
c2hhcmVkLXdvcmtlci1jb250cm9sbGVkLmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9za2lwLXdhaXRpbmctaW5z
dGFsbGVkLmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3NraXAtd2FpdGluZy1pbnN0YWxsZWQuaHR0
cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL3NraXAtd2FpdGluZy11c2luZy1yZWdpc3RyYXRpb24uaHR0cHMuaHRtbDoK
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3NraXAtd2FpdGluZy13aXRob3V0LXVzaW5nLXJlZ2lzdHJhdGlvbi5odHRwcy5odG1sOgor
ICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvc2tpcC13YWl0aW5nLmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9zdGF0ZS5odHRwcy5odG1sOgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvc3lu
Y2VkLXN0YXRlLmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91bmNvbnRyb2xsZWQtcGFnZS5odHRwcy5odG1sOgor
ICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvdW5yZWdpc3Rlci10aGVuLXJlZ2lzdGVyLW5ldy1zY3JpcHQuaHR0cHMtZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvdW5yZWdpc3Rlci10aGVuLXJlZ2lzdGVyLW5ldy1zY3JpcHQuaHR0cHMuaHRtbDoKKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L3VucmVnaXN0ZXItdGhlbi1yZWdpc3Rlci5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91bnJlZ2lz
dGVyLXRoZW4tcmVnaXN0ZXIuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0ZS1hZnRlci1uYXZpZ2F0aW9u
LXJlZGlyZWN0Lmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUtYWZ0ZXItb25lZGF5Lmh0dHBzLmh0bWw6
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci91cGRhdGUtYnl0ZWNoZWNrLmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUtbWlzc2luZy1pbXBv
cnQtc2NyaXB0cy5odHRwcy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUtbWlzc2lu
Zy1pbXBvcnQtc2NyaXB0cy5odHRwcy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLW5vLWNhY2hl
LXJlcXVlc3QtaGVhZGVycy5odHRwcy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUt
bm8tY2FjaGUtcmVxdWVzdC1oZWFkZXJzLmh0dHBzLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUt
bm90LWFsbG93ZWQuaHR0cHMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLW5vdC1h
bGxvd2VkLmh0dHBzLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUtb24tbmF2aWdhdGlvbi5odHRw
cy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUtb24tbmF2aWdhdGlvbi5odHRwcy5o
dG1sOiBSZW1vdmVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvdXBkYXRlLXJlY292ZXJ5Lmh0dHBzLmh0bWw6CisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUt
cmVnaXN0cmF0aW9uLXdpdGgtdHlwZS5odHRwcy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91
cGRhdGUtcmVnaXN0cmF0aW9uLXdpdGgtdHlwZS5odHRwcy5odG1sOiBSZW1vdmVkLgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdzNj
LWltcG9ydC5sb2c6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci93ZWJzb2NrZXQuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvd2Vic29j
a2V0Lmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci93aW5kb3djbGllbnQtbmF2aWdhdGUuaHR0cHMuaHRtbDoKKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L3dvcmtlci1jbGllbnQtaWQuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvd29ya2VyLWludGVyY2Vw
dGlvbi5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci93b3JrZXItaW50ZXJjZXB0aW9uLmh0dHBzLmh0
bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci94aHItcmVzcG9uc2UtdXJsLmh0dHBzLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L3hoci1yZXNwb25zZS11cmwuaHR0cHMuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3hzbC1iYXNlLXVybC5o
dHRwcy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci94c2wtYmFzZS11cmwuaHR0cHMuaHRtbDog
UmVtb3ZlZC4KKwogMjAxOS0wOS0wNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgog
CiAgICAgICAgIEFkZCBzdXBwb3J0IGZvciBwb3N0TWVzc2FnZSBidWZmZXJpbmcgYmV0d2VlbiB0
aGUgc2VydmljZSB3b3JrZXIgYW5kIHdpbmRvdwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvVGVz
dEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggOWYxNDM0
YzBiMDEzZmJmM2NkNjYzN2QzODc5NTM1Njk1ODYyNDA2NC4uNjIwMWViNTEyNTcxMjA0NDExNWFk
NzcxNDFhYjg3NDNiODUyZmUzNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0
aW9ucworKysgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCkBAIC0yMTEsMTMgKzIxMSwx
MSBAQCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9mZXRjaC1taXhlZC1jb250ZQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvbXVsdGlwYXJ0LWltYWdlLmh0dHBz
Lmh0bWwgWyBTa2lwIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3NraXAtd2FpdGluZy11c2luZy1yZWdpc3RyYXRpb24uaHR0
cHMuaHRtbCBbIFNraXAgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvc2tpcC13YWl0aW5nLXdpdGhvdXQtdXNpbmctcmVnaXN0
cmF0aW9uLmh0dHBzLmh0bWwgWyBTa2lwIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0ZS1ub3QtYWxsb3dlZC5odHRw
cy5odG1sIFsgU2tpcCBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci93b3JrZXItaW4tc2FuZGJveGVkLWlmcmFtZS1ieS1jc3At
ZmV0Y2gtZXZlbnQuaHR0cHMuaHRtbCBbIFNraXAgXQogWyBEZWJ1ZyBdIGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlYWR5Lmh0
dHBzLmh0bWwgWyBTa2lwIF0KIAogIyBOZXdseSBpbXBvcnRlZCBzZXJ2aWNlIHdvcmtlciB0ZXN0
cyB0aGF0IGFyZSBmbGFreS4KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL25hdmlnYXRpb24tcmVkaXJlY3QtdG8taHR0cC5odHRw
cy5odG1sIFsgUGFzcyBGYWlsdXJlIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlLXRpbWluZy5zdWIuaHR0cHMu
aHRtbCBbIFBhc3MgRmFpbHVyZSBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci93b3JrZXItY2xpZW50LWlkLmh0dHBzLmh0bWwg
WyBQYXNzIEZhaWx1cmUgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy94aHIvZXZl
bnQtdGltZW91dC1vcmRlci5odG0gWyBQYXNzIEZhaWx1cmUgXQogCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9TZXJ2aWNlLVdvcmtlci1BbGxvd2VkLWhlYWRlci5odHRwcy1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9TZXJ2aWNlLVdvcmtlci1BbGxvd2VkLWhlYWRlci5o
dHRwcy1leHBlY3RlZC50eHQKaW5kZXggNjE4YjkyZDllYWQyMDc1ZGQzODMyNWFlNjY2MzVlM2Y1
MWFiNDc2OS4uZTE3NTllMDgzZDMxNTUxNWJlMDcxYzFiMTg0MjNiMGIyMDBlYTlhNCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvU2VydmljZS1Xb3JrZXItQWxsb3dlZC1oZWFkZXIuaHR0
cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL1NlcnZpY2UtV29ya2VyLUFs
bG93ZWQtaGVhZGVyLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtNCw3ICs0LDcgQEAgUEFTUyBSZWdp
c3RlcmluZyB3aXRoaW4gU2VydmljZS1Xb3JrZXItQWxsb3dlZCBwYXRoIChhYnNvbHV0ZSBVUkwp
CiBQQVNTIFJlZ2lzdGVyaW5nIHdpdGhpbiBTZXJ2aWNlLVdvcmtlci1BbGxvd2VkIHBhdGggd2l0
aCBwYXJlbnQgcmVmZXJlbmNlIAogUEFTUyBSZWdpc3RlcmluZyBvdXRzaWRlIFNlcnZpY2UtV29y
a2VyLUFsbG93ZWQgcGF0aCAKIFBBU1MgUmVnaXN0ZXJpbmcgb3V0c2lkZSBTZXJ2aWNlLVdvcmtl
ci1BbGxvd2VkIHBhdGggd2l0aCBwYXJlbnQgcmVmZXJlbmNlIAotRkFJTCBTZXJ2aWNlLVdvcmtl
ci1BbGxvd2VkIGlzIGNyb3NzLW9yaWdpbiB0byBzY3JpcHQsIHJlZ2lzdGVyaW5nIG9uIGEgbm9y
bWFsbHkgYWxsb3dlZCBzY29wZSBhc3NlcnRfdW5yZWFjaGVkOiBTaG91bGQgaGF2ZSByZWplY3Rl
ZDogdW5kZWZpbmVkIFJlYWNoZWQgdW5yZWFjaGFibGUgY29kZQotRkFJTCBTZXJ2aWNlLVdvcmtl
ci1BbGxvd2VkIGlzIGNyb3NzLW9yaWdpbiB0byBzY3JpcHQsIHJlZ2lzdGVyaW5nIG9uIGEgbm9y
bWFsbHkgZGlzYWxsb3dlZCBzY29wZSBhc3NlcnRfdW5yZWFjaGVkOiBTaG91bGQgaGF2ZSByZWpl
Y3RlZDogdW5kZWZpbmVkIFJlYWNoZWQgdW5yZWFjaGFibGUgY29kZQorUEFTUyBTZXJ2aWNlLVdv
cmtlci1BbGxvd2VkIGlzIGNyb3NzLW9yaWdpbiB0byBzY3JpcHQsIHJlZ2lzdGVyaW5nIG9uIGEg
bm9ybWFsbHkgYWxsb3dlZCBzY29wZSAKK1BBU1MgU2VydmljZS1Xb3JrZXItQWxsb3dlZCBpcyBj
cm9zcy1vcmlnaW4gdG8gc2NyaXB0LCByZWdpc3RlcmluZyBvbiBhIG5vcm1hbGx5IGRpc2FsbG93
ZWQgc2NvcGUgCiBQQVNTIFNlcnZpY2UtV29ya2VyLUFsbG93ZWQgaXMgY3Jvc3Mtb3JpZ2luIHRv
IHBhZ2UsIHNhbWUtb3JpZ2luIHRvIHNjcmlwdCAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvU2VydmljZS1Xb3JrZXItQWxsb3dlZC1oZWFkZXIuaHR0cHMuaHRtbCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL1NlcnZpY2UtV29ya2VyLUFsbG93ZWQtaGVhZGVyLmh0dHBzLmh0bWwKaW5kZXgg
OTA0NWMwZjRlNzkxMTkyYzQzMmQ5OTE1NjY2NjI5MmY4ZGY0MmFiMy4uMzE2MDY3Y2MwNjY3OTU3
MDg2NmNkMWNjZjY3ZjI3M2NjZTU3YTE1YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
U2VydmljZS1Xb3JrZXItQWxsb3dlZC1oZWFkZXIuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9TZXJ2aWNlLVdvcmtlci1BbGxvd2VkLWhlYWRlci5odHRwcy5odG1sCkBAIC0xNyw3
MiArMTcsODggQEAgZnVuY3Rpb24gYnVpbGRfc2NyaXB0X3VybChhbGxvd2VkX3BhdGgsIG9yaWdp
bikgewogICByZXR1cm4gYCR7dXJsfT9waXBlPWhlYWRlcihTZXJ2aWNlLVdvcmtlci1BbGxvd2Vk
LCR7YWxsb3dlZF9wYXRofSlgOwogfQogCi0vLyByZWdpc3Rlcl90ZXN0IGlzIGEgcHJvbWlzZV90
ZXN0IHRoYXQgcmVnaXN0ZXJzIGEgc2VydmljZSB3b3JrZXIuCi1mdW5jdGlvbiByZWdpc3Rlcl90
ZXN0KHNjcmlwdCwgc2NvcGUsIGRlc2NyaXB0aW9uKSB7Ci0gIHByb21pc2VfdGVzdChhc3luYyB0
ID0+IHsKLSAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHsKLSAgICAgIHJldHVybiBzZXJ2aWNlX3dv
cmtlcl91bnJlZ2lzdGVyKHQsIHNjb3BlKTsKLSAgICB9KTsKK3Byb21pc2VfdGVzdChhc3luYyB0
ID0+IHsKKyAgY29uc3Qgc2NyaXB0ID0gYnVpbGRfc2NyaXB0X3VybCgnL2FsbG93ZWQtcGF0aCcp
OworICBjb25zdCBzY29wZSA9ICcvYWxsb3dlZC1wYXRoJzsKKyAgY29uc3QgcmVnaXN0cmF0aW9u
ID0gYXdhaXQgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIoCisgICAgICB0
LCBzY3JpcHQsIHNjb3BlKTsKKyAgYXNzZXJ0X3RydWUocmVnaXN0cmF0aW9uIGluc3RhbmNlb2Yg
U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbiwgJ3JlZ2lzdGVyZWQnKTsKKyAgYXNzZXJ0X2VxdWFs
cyhyZWdpc3RyYXRpb24uc2NvcGUsIG5vcm1hbGl6ZVVSTChzY29wZSkpOworICByZXR1cm4gcmVn
aXN0cmF0aW9uLnVucmVnaXN0ZXIoKTsKK30sICdSZWdpc3RlcmluZyB3aXRoaW4gU2VydmljZS1X
b3JrZXItQWxsb3dlZCBwYXRoJyk7CiAKLSAgICBjb25zdCByZWdpc3RyYXRpb24gPSBhd2FpdCBz
ZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3RlcigKLSAgICAgICAgdCwgc2NyaXB0
LCBzY29wZSk7Ci0gICAgYXNzZXJ0X3RydWUocmVnaXN0cmF0aW9uIGluc3RhbmNlb2YgU2Vydmlj
ZVdvcmtlclJlZ2lzdHJhdGlvbiwgJ3JlZ2lzdGVyZWQnKTsKLSAgICBhc3NlcnRfZXF1YWxzKHJl
Z2lzdHJhdGlvbi5zY29wZSwgbm9ybWFsaXplVVJMKHNjb3BlKSk7Ci0gIH0sIGRlc2NyaXB0aW9u
KTsKLX0KLQotLy8gcmVnaXN0ZXJfZmFpbF90ZXN0IGlzIGxpa2UgcmVnaXN0ZXJfdGVzdCBidXQg
ZXhwZWN0cyBhIFNlY3VyaXR5RXJyb3IuCi1mdW5jdGlvbiByZWdpc3Rlcl9mYWlsX3Rlc3Qoc2Ny
aXB0LCBzY29wZSwgZGVzY3JpcHRpb24pIHsKLSAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewot
ICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gewotICAgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3Vu
cmVnaXN0ZXIodCwgc2NvcGUpOwotICAgIH0pOwotCi0gICAgYXdhaXQgc2VydmljZV93b3JrZXJf
dW5yZWdpc3Rlcih0LCBzY29wZSk7Ci0gICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzKHQsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICdTZWN1cml0eUVycm9yJywKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoc2NyaXB0LCB7c2NvcGV9
KSk7Ci0gIH0sIGRlc2NyaXB0aW9uKTsKLX0KLQotcmVnaXN0ZXJfdGVzdCgKLSAgICBidWlsZF9z
Y3JpcHRfdXJsKCcvYWxsb3dlZC1wYXRoJyksCi0gICAgJy9hbGxvd2VkLXBhdGgnLAotICAgICdS
ZWdpc3RlcmluZyB3aXRoaW4gU2VydmljZS1Xb3JrZXItQWxsb3dlZCBwYXRoJyk7Citwcm9taXNl
X3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0IHNjcmlwdCA9IGJ1aWxkX3NjcmlwdF91cmwobmV3
IFVSTCgnL2FsbG93ZWQtcGF0aCcsIGRvY3VtZW50LmxvY2F0aW9uKSk7CisgIGNvbnN0IHNjb3Bl
ID0gJy9hbGxvd2VkLXBhdGgnOworICBjb25zdCByZWdpc3RyYXRpb24gPSBhd2FpdCBzZXJ2aWNl
X3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3RlcigKKyAgICAgIHQsIHNjcmlwdCwgc2NvcGUp
OworICBhc3NlcnRfdHJ1ZShyZWdpc3RyYXRpb24gaW5zdGFuY2VvZiBTZXJ2aWNlV29ya2VyUmVn
aXN0cmF0aW9uLCAncmVnaXN0ZXJlZCcpOworICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi5z
Y29wZSwgbm9ybWFsaXplVVJMKHNjb3BlKSk7CisgIHJldHVybiByZWdpc3RyYXRpb24udW5yZWdp
c3RlcigpOworfSwgJ1JlZ2lzdGVyaW5nIHdpdGhpbiBTZXJ2aWNlLVdvcmtlci1BbGxvd2VkIHBh
dGggKGFic29sdXRlIFVSTCknKTsKIAotcmVnaXN0ZXJfdGVzdCgKLSAgICBidWlsZF9zY3JpcHRf
dXJsKG5ldyBVUkwoJy9hbGxvd2VkLXBhdGgnLCBkb2N1bWVudC5sb2NhdGlvbikpLAotICAgICcv
YWxsb3dlZC1wYXRoJywKLSAgICAnUmVnaXN0ZXJpbmcgd2l0aGluIFNlcnZpY2UtV29ya2VyLUFs
bG93ZWQgcGF0aCAoYWJzb2x1dGUgVVJMKScpOworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewor
ICBjb25zdCBzY3JpcHQgPSBidWlsZF9zY3JpcHRfdXJsKCcuLi9hbGxvd2VkLXBhdGgtd2l0aC1w
YXJlbnQnKTsKKyAgY29uc3Qgc2NvcGUgPSAnYWxsb3dlZC1wYXRoLXdpdGgtcGFyZW50JzsKKyAg
Y29uc3QgcmVnaXN0cmF0aW9uID0gYXdhaXQgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRf
cmVnaXN0ZXIoCisgICAgICB0LCBzY3JpcHQsIHNjb3BlKTsKKyAgYXNzZXJ0X3RydWUocmVnaXN0
cmF0aW9uIGluc3RhbmNlb2YgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbiwgJ3JlZ2lzdGVyZWQn
KTsKKyAgYXNzZXJ0X2VxdWFscyhyZWdpc3RyYXRpb24uc2NvcGUsIG5vcm1hbGl6ZVVSTChzY29w
ZSkpOworICByZXR1cm4gcmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIoKTsKK30sICdSZWdpc3Rlcmlu
ZyB3aXRoaW4gU2VydmljZS1Xb3JrZXItQWxsb3dlZCBwYXRoIHdpdGggcGFyZW50IHJlZmVyZW5j
ZScpOwogCi1yZWdpc3Rlcl90ZXN0KAotICAgIGJ1aWxkX3NjcmlwdF91cmwoJy4uL2FsbG93ZWQt
cGF0aC13aXRoLXBhcmVudCcpLAotICAgICdhbGxvd2VkLXBhdGgtd2l0aC1wYXJlbnQnLAotICAg
ICdSZWdpc3RlcmluZyB3aXRoaW4gU2VydmljZS1Xb3JrZXItQWxsb3dlZCBwYXRoIHdpdGggcGFy
ZW50IHJlZmVyZW5jZScpOworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25zdCBzY3Jp
cHQgPSBidWlsZF9zY3JpcHRfdXJsKCcuLi9hbGxvd2VkLXBhdGgnKTsKKyAgY29uc3Qgc2NvcGUg
PSAnL2Rpc2FsbG93ZWQtcGF0aCc7CisgIGF3YWl0IHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXIo
dCwgc2NvcGUpOworICByZXR1cm4gcHJvbWlzZV9yZWplY3RzKHQsCisgICAgICAnU2VjdXJpdHlF
cnJvcicsCisgICAgICBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3RlcihzY3JpcHQsIHtz
Y29wZTogc2NvcGV9KSwKKyAgICAgICdyZWdpc3RlciBzaG91bGQgZmFpbCcpOworfSwgJ1JlZ2lz
dGVyaW5nIG91dHNpZGUgU2VydmljZS1Xb3JrZXItQWxsb3dlZCBwYXRoJyk7CiAKLXJlZ2lzdGVy
X2ZhaWxfdGVzdCgKLSAgICBidWlsZF9zY3JpcHRfdXJsKCcuLi9hbGxvd2VkLXBhdGgnKSwKLSAg
ICAnL2Rpc2FsbG93ZWQtcGF0aCcsCi0gICAgJ1JlZ2lzdGVyaW5nIG91dHNpZGUgU2VydmljZS1X
b3JrZXItQWxsb3dlZCBwYXRoJyksCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0
IHNjcmlwdCA9IGJ1aWxkX3NjcmlwdF91cmwoJy4uL2FsbG93ZWQtcGF0aC13aXRoLXBhcmVudCcp
OworICBjb25zdCBzY29wZSA9ICcvYWxsb3dlZC1wYXRoLXdpdGgtcGFyZW50JzsKKyAgYXdhaXQg
c2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcih0LCBzY29wZSk7CisgIHJldHVybiBwcm9taXNlX3Jl
amVjdHModCwKKyAgICAgICdTZWN1cml0eUVycm9yJywKKyAgICAgIG5hdmlnYXRvci5zZXJ2aWNl
V29ya2VyLnJlZ2lzdGVyKHNjcmlwdCwge3Njb3BlOiBzY29wZX0pLAorICAgICAgJ3JlZ2lzdGVy
IHNob3VsZCBmYWlsJyk7Cit9LCAnUmVnaXN0ZXJpbmcgb3V0c2lkZSBTZXJ2aWNlLVdvcmtlci1B
bGxvd2VkIHBhdGggd2l0aCBwYXJlbnQgcmVmZXJlbmNlJyk7CiAKLXJlZ2lzdGVyX2ZhaWxfdGVz
dCgKLSAgICBidWlsZF9zY3JpcHRfdXJsKCcuLi9hbGxvd2VkLXBhdGgtd2l0aC1wYXJlbnQnKSwK
LSAgICAnL2FsbG93ZWQtcGF0aC13aXRoLXBhcmVudCcsCi0gICAgJ1JlZ2lzdGVyaW5nIG91dHNp
ZGUgU2VydmljZS1Xb3JrZXItQWxsb3dlZCBwYXRoIHdpdGggcGFyZW50IHJlZmVyZW5jZScpOwor
cHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25zdCBzY3JpcHQgPSBidWlsZF9zY3JpcHRf
dXJsKAorICAgICAgaG9zdF9pbmZvLkhUVFBTX1JFTU9URV9PUklHSU4gKyAnLycpOworICBjb25z
dCBzY29wZSA9ICdyZXNvdXJjZXMvdGhpcy1zY29wZS1pcy1ub3JtYWxseS1hbGxvd2VkJworICBj
b25zdCByZWdpc3RyYXRpb24gPSBhd2FpdCBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9y
ZWdpc3RlcigKKyAgICAgIHQsIHNjcmlwdCwgc2NvcGUpOworICBhc3NlcnRfdHJ1ZShyZWdpc3Ry
YXRpb24gaW5zdGFuY2VvZiBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLCAncmVnaXN0ZXJlZCcp
OworICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi5zY29wZSwgbm9ybWFsaXplVVJMKHNjb3Bl
KSk7CisgIHJldHVybiByZWdpc3RyYXRpb24udW5yZWdpc3RlcigpOworfSwgJ1NlcnZpY2UtV29y
a2VyLUFsbG93ZWQgaXMgY3Jvc3Mtb3JpZ2luIHRvIHNjcmlwdCwgcmVnaXN0ZXJpbmcgb24gYSBu
b3JtYWxseSBhbGxvd2VkIHNjb3BlJyk7CiAKLXJlZ2lzdGVyX2ZhaWxfdGVzdCgKLSAgICBidWls
ZF9zY3JpcHRfdXJsKGhvc3RfaW5mby5IVFRQU19SRU1PVEVfT1JJR0lOICsgJy8nKSwKLSAgICAn
cmVzb3VyY2VzL3RoaXMtc2NvcGUtaXMtbm9ybWFsbHktYWxsb3dlZCcsCi0gICAgJ1NlcnZpY2Ut
V29ya2VyLUFsbG93ZWQgaXMgY3Jvc3Mtb3JpZ2luIHRvIHNjcmlwdCwgcmVnaXN0ZXJpbmcgb24g
YSBub3JtYWxseSBhbGxvd2VkIHNjb3BlJyk7Citwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7Cisg
IGNvbnN0IHNjcmlwdCA9IGJ1aWxkX3NjcmlwdF91cmwoCisgICAgICBob3N0X2luZm8uSFRUUFNf
UkVNT1RFX09SSUdJTiArICcvJyk7CisgIGNvbnN0IHNjb3BlID0gJy90aGlzLXNjb3BlLWlzLW5v
cm1hbGx5LWRpc2FsbG93ZWQnCisgIGNvbnN0IHJlZ2lzdHJhdGlvbiA9IGF3YWl0IHNlcnZpY2Vf
d29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKAorICAgICAgdCwgc2NyaXB0LCBzY29wZSk7
CisgIGFzc2VydF90cnVlKHJlZ2lzdHJhdGlvbiBpbnN0YW5jZW9mIFNlcnZpY2VXb3JrZXJSZWdp
c3RyYXRpb24sICdyZWdpc3RlcmVkJyk7CisgIGFzc2VydF9lcXVhbHMocmVnaXN0cmF0aW9uLnNj
b3BlLCBub3JtYWxpemVVUkwoc2NvcGUpKTsKKyAgcmV0dXJuIHJlZ2lzdHJhdGlvbi51bnJlZ2lz
dGVyKCk7Cit9LCAnU2VydmljZS1Xb3JrZXItQWxsb3dlZCBpcyBjcm9zcy1vcmlnaW4gdG8gc2Ny
aXB0LCByZWdpc3RlcmluZyBvbiBhIG5vcm1hbGx5IGRpc2FsbG93ZWQgc2NvcGUnKTsKIAotcmVn
aXN0ZXJfZmFpbF90ZXN0KAotICAgIGJ1aWxkX3NjcmlwdF91cmwoaG9zdF9pbmZvLkhUVFBTX1JF
TU9URV9PUklHSU4gKyAnLycpLAotICAgICcvdGhpcy1zY29wZS1pcy1ub3JtYWxseS1kaXNhbGxv
d2VkJywKLSAgICAnU2VydmljZS1Xb3JrZXItQWxsb3dlZCBpcyBjcm9zcy1vcmlnaW4gdG8gc2Ny
aXB0LCByZWdpc3RlcmluZyBvbiBhIG5vcm1hbGx5IGRpc2FsbG93ZWQgc2NvcGUnKTsKK3Byb21p
c2VfdGVzdChhc3luYyB0ID0+IHsKKyAgY29uc3Qgc2NyaXB0ID0gYnVpbGRfc2NyaXB0X3VybCgK
KyAgICAgIGhvc3RfaW5mby5IVFRQU19SRU1PVEVfT1JJR0lOICsgJy9jcm9zcy1vcmlnaW4vJywK
KyAgICAgIGhvc3RfaW5mby5IVFRQU19SRU1PVEVfT1JJR0lOKTsKKyAgY29uc3Qgc2NvcGUgPSAn
L2Nyb3NzLW9yaWdpbi8nOworICBhd2FpdCBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyKHQsIHNj
b3BlKTsKKyAgcmV0dXJuIHByb21pc2VfcmVqZWN0cyh0LAorICAgICAgJ1NlY3VyaXR5RXJyb3In
LAorICAgICAgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoc2NyaXB0LCB7c2NvcGU6
IHNjb3BlfSksCisgICAgICAncmVnaXN0ZXIgc2hvdWxkIGZhaWwnKTsKK30sICdTZXJ2aWNlLVdv
cmtlci1BbGxvd2VkIGlzIGNyb3NzLW9yaWdpbiB0byBwYWdlLCBzYW1lLW9yaWdpbiB0byBzY3Jp
cHQnKTsKIAotcmVnaXN0ZXJfZmFpbF90ZXN0KAotICAgIGJ1aWxkX3NjcmlwdF91cmwoaG9zdF9p
bmZvLkhUVFBTX1JFTU9URV9PUklHSU4gKyAnL2Nyb3NzLW9yaWdpbi8nLAotICAgICAgICAgICAg
ICAgICAgICAgaG9zdF9pbmZvLkhUVFBTX1JFTU9URV9PUklHSU4pLAotICAgICcvY3Jvc3Mtb3Jp
Z2luLycsCi0gICAgJ1NlcnZpY2UtV29ya2VyLUFsbG93ZWQgaXMgY3Jvc3Mtb3JpZ2luIHRvIHBh
Z2UsIHNhbWUtb3JpZ2luIHRvIHNjcmlwdCcpOwogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUvcG9zdG1lc3NhZ2UuaHR0cHMu
aHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS9wb3N0bWVz
c2FnZS5odHRwcy5odG1sCmluZGV4IDk5ZGVkZWJmMmU1NmM3NDQ1MjhmZDE2OGMwNWI0ZmU3MzQ1
NjNjNTcuLjE3MDQ2ZWVkYzZiZDI1MjliNDUyZmUwM2EwZTllMmQ1MmMwYjJkNzAgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS9wb3N0bWVzc2Fn
ZS5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL1NlcnZpY2VXb3JrZXJHbG9iYWxT
Y29wZS9wb3N0bWVzc2FnZS5odHRwcy5odG1sCkBAIC0xMiwxMiArMTIsNyBAQCBwcm9taXNlX3Rl
c3QoZnVuY3Rpb24odCkgewogCiAgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJf
YW5kX3JlZ2lzdGVyKHQsIHNjcmlwdCwgc2NvcGUpCiAgICAgICAudGhlbihmdW5jdGlvbihyKSB7
Ci0gICAgICAgICAgdC5hZGRfY2xlYW51cChmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgcmV0
dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXIodCwgc2NvcGUpOwotICAgICAgICAgICAgfSk7
Ci0KICAgICAgICAgICByZWdpc3RyYXRpb24gPSByOwotCiAgICAgICAgICAgcmV0dXJuIHdhaXRf
Zm9yX3N0YXRlKHQsIHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7CiAgICAg
ICAgIH0pCiAgICAgICAudGhlbihmdW5jdGlvbigpIHsKQEAgLTMzLDYgKzI4LDcgQEAgcHJvbWlz
ZV90ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICAgICAgfSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKHJl
c3VsdCkgewogICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVzdWx0LCAnT0snKTsKKyAgICAgICAg
ICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfZG9uZSh0LCBzY29wZSk7CiAg
ICAgICAgIH0pOwogICB9LCAnUG9zdCBsb29wYmFjayBtZXNzYWdlcycpOwogCkBAIC00NSwxMCAr
NDEsNiBAQCBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewogCiAgICAgcmV0dXJuIHNlcnZpY2Vf
d29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHNjcmlwdDEsIHNjb3BlKQogICAgICAg
LnRoZW4oZnVuY3Rpb24ocikgewotICAgICAgICAgIHQuYWRkX2NsZWFudXAoZnVuY3Rpb24oKSB7
Ci0gICAgICAgICAgICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyKHQsIHNjb3Bl
KTsKLSAgICAgICAgICAgIH0pOwotCiAgICAgICAgICAgcmVnaXN0cmF0aW9uID0gcjsKICAgICAg
ICAgICByZXR1cm4gd2FpdF9mb3Jfc3RhdGUodCwgcmVnaXN0cmF0aW9uLmluc3RhbGxpbmcsICdh
Y3RpdmF0ZWQnKTsKICAgICAgICAgfSkKQEAgLTc3LDYgKzY5LDcgQEAgcHJvbWlzZV90ZXN0KGZ1
bmN0aW9uKHQpIHsKICAgICAgIC50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewogICAgICAgICAgIGFz
c2VydF9lcXVhbHMocmVzdWx0LCAnT0snKTsKICAgICAgICAgICBmcmFtZS5yZW1vdmUoKTsKKyAg
ICAgICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfZG9uZSh0LCBzY29w
ZSk7CiAgICAgICAgIH0pOwogICB9LCAnUG9zdCBtZXNzYWdlcyBhbW9uZyBzZXJ2aWNlIHdvcmtl
cnMnKTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvU2VydmljZVdvcmtlckdsb2Jh
bFNjb3BlL3VucmVnaXN0ZXIuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL1NlcnZpY2VX
b3JrZXJHbG9iYWxTY29wZS91bnJlZ2lzdGVyLmh0dHBzLmh0bWwKaW5kZXggMWExMjRkNzI3Njg3
ZWNmYzYyYmIxNDQzYmVkMjMxMzMxMjc2Mjk5Ny4uMzEzMzA5MTg4MDcxNzQ3ZmIxMzlkNmRjMGRi
ZTIwMTlkMGU3Mjc0OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvU2VydmljZVdvcmtl
ckdsb2JhbFNjb3BlL3VucmVnaXN0ZXIuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUvdW5yZWdpc3Rlci5odHRwcy5odG1sCkBAIC0xMSwx
MCArMTEsNiBAQCBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewogCiAgICAgcmV0dXJuIHNlcnZp
Y2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHNjcmlwdCwgc2NvcGUpCiAgICAg
ICAudGhlbihmdW5jdGlvbihyZWdpc3RyYXRpb24pIHsKLSAgICAgICAgICB0LmFkZF9jbGVhbnVw
KGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdp
c3Rlcih0LCBzY29wZSk7Ci0gICAgICAgICAgICB9KTsKLQogICAgICAgICAgIHJldHVybiB3YWl0
X2Zvcl9zdGF0ZSh0LCByZWdpc3RyYXRpb24uaW5zdGFsbGluZywgJ3JlZHVuZGFudCcpOwogICAg
ICAgICB9KQogICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7CkBAIC0yNSw2ICsyMSw3IEBAIHByb21p
c2VfdGVzdChmdW5jdGlvbih0KSB7CiAgICAgICAgICAgICByZXN1bHQsCiAgICAgICAgICAgICB1
bmRlZmluZWQsCiAgICAgICAgICAgICAnQWZ0ZXIgdW5yZWdpc3RlcigpLCB0aGUgcmVnaXN0cmF0
aW9uIHNob3VsZCBub3QgZm91bmQnKTsKKyAgICAgICAgICByZXR1cm4gc2VydmljZV93b3JrZXJf
dW5yZWdpc3Rlcl9hbmRfZG9uZSh0LCBzY29wZSk7CiAgICAgICAgIH0pOwogICB9LCAnVW5yZWdp
c3RlciBvbiBzY3JpcHQgZXZhbHVhdGlvbicpOwogCkBAIC0zNCwxMCArMzEsNiBAQCBwcm9taXNl
X3Rlc3QoZnVuY3Rpb24odCkgewogCiAgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0
ZXJfYW5kX3JlZ2lzdGVyKHQsIHNjcmlwdCwgc2NvcGUpCiAgICAgICAudGhlbihmdW5jdGlvbihy
ZWdpc3RyYXRpb24pIHsKLSAgICAgICAgICB0LmFkZF9jbGVhbnVwKGZ1bmN0aW9uKCkgewotICAg
ICAgICAgICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcih0LCBzY29wZSk7Ci0g
ICAgICAgICAgICB9KTsKLQogICAgICAgICAgIHJldHVybiB3YWl0X2Zvcl9zdGF0ZSh0LCByZWdp
c3RyYXRpb24uaW5zdGFsbGluZywgJ3JlZHVuZGFudCcpOwogICAgICAgICB9KQogICAgICAgLnRo
ZW4oZnVuY3Rpb24oKSB7CkBAIC00OCw2ICs0MSw3IEBAIHByb21pc2VfdGVzdChmdW5jdGlvbih0
KSB7CiAgICAgICAgICAgICByZXN1bHQsCiAgICAgICAgICAgICB1bmRlZmluZWQsCiAgICAgICAg
ICAgICAnQWZ0ZXIgdW5yZWdpc3RlcigpLCB0aGUgcmVnaXN0cmF0aW9uIHNob3VsZCBub3QgZm91
bmQnKTsKKyAgICAgICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfZG9u
ZSh0LCBzY29wZSk7CiAgICAgICAgIH0pOwogICB9LCAnVW5yZWdpc3RlciBvbiBpbnN0YWxsaW5n
IGV2ZW50Jyk7CiAKQEAgLTU3LDEwICs1MSw2IEBAIHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7
CiAKICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwg
c2NyaXB0LCBzY29wZSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKHJlZ2lzdHJhdGlvbikgewotICAg
ICAgICAgIHQuYWRkX2NsZWFudXAoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgIHJldHVybiBz
ZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyKHQsIHNjb3BlKTsKLSAgICAgICAgICAgIH0pOwotCiAg
ICAgICAgICAgcmV0dXJuIHdhaXRfZm9yX3N0YXRlKHQsIHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5n
LCAncmVkdW5kYW50Jyk7CiAgICAgICAgIH0pCiAgICAgICAudGhlbihmdW5jdGlvbigpIHsKQEAg
LTcxLDYgKzYxLDcgQEAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICAgICAgICAgIHJl
c3VsdCwKICAgICAgICAgICAgIHVuZGVmaW5lZCwKICAgICAgICAgICAgICdBZnRlciB1bnJlZ2lz
dGVyKCksIHRoZSByZWdpc3RyYXRpb24gc2hvdWxkIG5vdCBmb3VuZCcpOworICAgICAgICAgIHJl
dHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9kb25lKHQsIHNjb3BlKTsKICAgICAg
ICAgfSk7CiAgIH0sICdVbnJlZ2lzdGVyIG9uIGFjdGl2YXRlIGV2ZW50Jyk7CiAKQEAgLTgzLDEw
ICs3NCw2IEBAIHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7CiAKICAgICByZXR1cm4gc2Vydmlj
ZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgc2NyaXB0LCBzY29wZSkKICAgICAg
IC50aGVuKGZ1bmN0aW9uKHJlZ2lzdHJhdGlvbikgewotICAgICAgICAgIHQuYWRkX2NsZWFudXAo
ZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lz
dGVyKHQsIHNjb3BlKTsKLSAgICAgICAgICAgIH0pOwotCiAgICAgICAgICAgcmV0dXJuIHdhaXRf
Zm9yX3N0YXRlKHQsIHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7CiAgICAg
ICAgIH0pCiAgICAgICAudGhlbihmdW5jdGlvbigpIHsgcmV0dXJuIHdpdGhfaWZyYW1lKHNjb3Bl
KTsgfSkKQEAgLTEzMyw2ICsxMjAsNyBAQCBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewogCiAg
ICAgICAgICAgZnJhbWUucmVtb3ZlKCk7CiAgICAgICAgICAgbmV3X2ZyYW1lLnJlbW92ZSgpOwor
ICAgICAgICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9kb25lKHQsIHNj
b3BlKTsKICAgICAgICAgfSkKICAgfSwgJ1VucmVnaXN0ZXIgY29udHJvbGxpbmcgc2VydmljZSB3
b3JrZXInKTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvU2VydmljZVdvcmtlckds
b2JhbFNjb3BlL3VwZGF0ZS5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvU2VydmljZVdv
cmtlckdsb2JhbFNjb3BlL3VwZGF0ZS5odHRwcy5odG1sCmluZGV4IGE3ZGRlMjIzMzk3MmNiM2Mx
YjgyNTBmM2IwYTE4NDQxM2NkN2M1YTUuLmE5Mjg1YTFjOWUyZGJmYzM4YzU0N2UzMDMwYWY4YWQ5
YmEyOTJlNDIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL1NlcnZpY2VXb3JrZXJHbG9i
YWxTY29wZS91cGRhdGUuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9TZXJ2aWNl
V29ya2VyR2xvYmFsU2NvcGUvdXBkYXRlLmh0dHBzLmh0bWwKQEAgLTEzLDEwICsxMyw2IEBAIHBy
b21pc2VfdGVzdChmdW5jdGlvbih0KSB7CiAKICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5y
ZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgc2NyaXB0LCBzY29wZSkKICAgICAgIC50aGVuKGZ1bmN0
aW9uKHIpIHsKLSAgICAgICAgICB0LmFkZF9jbGVhbnVwKGZ1bmN0aW9uKCkgewotICAgICAgICAg
ICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcih0LCBzY29wZSk7Ci0gICAgICAg
ICAgICB9KTsKLQogICAgICAgICAgIHJlZ2lzdHJhdGlvbiA9IHI7CiAgICAgICAgICAgcmV0dXJu
IHdhaXRfZm9yX3N0YXRlKHQsIHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7
CiAgICAgICAgIH0pCkBAIC00Miw2ICszOCw3IEBAIHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7
CiAgICAgICAgICAgICAgICdldmVudHMgc2VlbiBieSB0aGUgd29ya2VyJyk7CiAgICAgICAgICAg
ZnJhbWUxLnJlbW92ZSgpOwogICAgICAgICAgIGZyYW1lMi5yZW1vdmUoKTsKKyAgICAgICAgICBy
ZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfZG9uZSh0LCBzY29wZSk7CiAgICAg
ICAgIH0pOwogICB9LCAnVXBkYXRlIGEgcmVnaXN0cmF0aW9uIG9uIFNlcnZpY2VXb3JrZXJHbG9i
YWxTY29wZScpOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9hYm91dC1ibGFuay1y
ZXBsYWNlbWVudC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvYWJvdXQtYmxhbmstcmVw
bGFjZW1lbnQuaHR0cHMuaHRtbAppbmRleCBiNmVmZTNlYzU2MjBkMWM4M2RlYjMwNWYyYzFlYmUw
MDhhNmEyM2UyLi5lMWZlZmFmMjkwZmU1MjE1OTBhNDYwOTQyZDRjM2Y2YzAwMjJjNzVmIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9hYm91dC1ibGFuay1yZXBsYWNlbWVudC5odHRwcy5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2Fib3V0LWJsYW5rLXJlcGxhY2VtZW50Lmh0dHBz
Lmh0bWwKQEAgLTYwLDkgKzYwLDYgQEAgZnVuY3Rpb24gZ2V0Q2xpZW50SWRCeVVSTCh3b3JrZXIs
IHVybCkgewogCiBhc3luYyBmdW5jdGlvbiBkb0FzeW5jVGVzdCh0LCBzY29wZSkgewogICBsZXQg
cmVnID0gYXdhaXQgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgd29y
a2VyLCBzY29wZSk7Ci0KLSAgdC5hZGRfY2xlYW51cCgoKSA9PiBzZXJ2aWNlX3dvcmtlcl91bnJl
Z2lzdGVyKHQsIHNjb3BlKSk7Ci0KICAgYXdhaXQgd2FpdF9mb3Jfc3RhdGUodCwgcmVnLmluc3Rh
bGxpbmcsICdhY3RpdmF0ZWQnKTsKIAogICAvLyBMb2FkIHRoZSBzY29wZSBhcyBhIGZyYW1lLiAg
V2UgZXhwZWN0IHRoaXMgaW4gdHVybiB0byBoYXZlIGEgbmVzdGVkCkBAIC05OSw2ICs5Niw3IEBA
IGFzeW5jIGZ1bmN0aW9uIGRvQXN5bmNUZXN0KHQsIHNjb3BlKSB7CiAgIH0KIAogICBmcmFtZS5y
ZW1vdmUoKTsKKyAgYXdhaXQgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfZG9uZSh0LCBz
Y29wZSk7CiB9CiAKIHByb21pc2VfdGVzdChhc3luYyBmdW5jdGlvbih0KSB7CkBAIC0xMjgsOSAr
MTI2LDYgQEAgcHJvbWlzZV90ZXN0KGFzeW5jIGZ1bmN0aW9uKHQpIHsKICAgY29uc3Qgc2NvcGUg
PSAncmVzb3VyY2VzL2Fib3V0LWJsYW5rLXJlcGxhY2VtZW50LXVuY29udHJvbGxlZC1uZXN0ZWQt
ZnJhbWUuaHRtbCc7CiAKICAgbGV0IHJlZyA9IGF3YWl0IHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0
ZXJfYW5kX3JlZ2lzdGVyKHQsIHdvcmtlciwgc2NvcGUpOwotCi0gIHQuYWRkX2NsZWFudXAoKCkg
PT4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcih0LCBzY29wZSkpOwotCiAgIGF3YWl0IHdhaXRf
Zm9yX3N0YXRlKHQsIHJlZy5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7CiAKICAgLy8gTG9hZCB0
aGUgc2NvcGUgYXMgYSBmcmFtZS4gIFdlIGV4cGVjdCB0aGlzIGluIHR1cm4gdG8gaGF2ZSBhIG5l
c3RlZApAQCAtMTUyLDYgKzE0Nyw3IEBAIHByb21pc2VfdGVzdChhc3luYyBmdW5jdGlvbih0KSB7
CiAgICAgICAgICAgICAgICAgJ25lc3RlZCBmcmFtZSBzaG91bGQgbm90IGJlIGNvbnRyb2xsZWQn
KTsKIAogICBmcmFtZS5yZW1vdmUoKTsKKyAgYXdhaXQgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rl
cl9hbmRfZG9uZSh0LCBzY29wZSk7CiB9LCAnSW5pdGlhbCBhYm91dDpibGFuayBpcyBjb250cm9s
bGVkLCBleHBvc2VkIHRvIGNsaWVudHMubWF0Y2hBbGwoKSwgYW5kICcgKwogICAgJ2ZpbmFsIENs
aWVudCBpcyBub3QgY29udHJvbGxlZCBieSBhIHNlcnZpY2Ugd29ya2VyLicpOwogCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9hY3RpdmF0ZS1ldmVudC1hZnRlci1pbnN0YWxsLXN0YXRl
LWNoYW5nZS5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvYWN0aXZhdGUtZXZlbnQtYWZ0
ZXItaW5zdGFsbC1zdGF0ZS1jaGFuZ2UuaHR0cHMuaHRtbAppbmRleCAwMTZhNTJjMTNjODJlYmJm
YjM2ZDQ4ODMwNDQ2Yjc5YjRlNzJmMTNlLi41N2ZjY2YxMzcxMmQ5N2MzMTY4NzQ3NDZmNzcwZmQ3
ZTc2ZjVlODk3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9hY3RpdmF0ZS1ldmVudC1h
ZnRlci1pbnN0YWxsLXN0YXRlLWNoYW5nZS5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL2FjdGl2YXRlLWV2ZW50LWFmdGVyLWluc3RhbGwtc3RhdGUtY2hhbmdlLmh0dHBzLmh0bWwK
QEAgLTExLDEwICsxMSw2IEBAIHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7CiAKICAgcmV0dXJu
IHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHNjcmlwdCwgc2NvcGUp
CiAgICAgLnRoZW4oZnVuY3Rpb24ocmVnaXN0cmF0aW9uKSB7Ci0gICAgICAgIHQuYWRkX2NsZWFu
dXAoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdp
c3Rlcih0LCBzY29wZSk7Ci0gICAgICAgICAgfSk7Ci0KICAgICAgICAgdmFyIHN3ID0gcmVnaXN0
cmF0aW9uLmluc3RhbGxpbmc7CiAKICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKHQuc3RlcF9m
dW5jKGZ1bmN0aW9uKHJlc29sdmUpIHsKQEAgLTI3LDYgKzIzLDkgQEAgcHJvbWlzZV90ZXN0KGZ1
bmN0aW9uKHQpIHsKICAgICAgICAgICB9KTsKICAgICAgICAgfSkpOwogICAgICAgfSkKKyAgICAu
dGhlbihmdW5jdGlvbigpIHsKKyAgICAgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0
ZXJfYW5kX2RvbmUodCwgc2NvcGUpOworICAgICAgfSkKICAgICAuY2F0Y2godW5yZWFjaGVkX3Jl
amVjdGlvbih0KSk7CiAgIH0sICdpbnN0YWxsZWQgZXZlbnQgc2hvdWxkIGJlIGZpcmVkIGJlZm9y
ZSBhY3RpdmF0aW5nIHNlcnZpY2Ugd29ya2VyJyk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL2FjdGl2YXRpb24tYWZ0ZXItcmVnaXN0cmF0aW9uLmh0dHBzLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9hY3RpdmF0aW9uLWFmdGVyLXJlZ2lzdHJhdGlvbi5odHRwcy5odG1sCmluZGV4
IDI5Zjk3ZTNlM2Y0YzBjZGEyMzIxNzc2Y2JmNDhmZWQ5MmQxYzkwYTEuLmZmMDk5MGRmNmJhOTli
ZTc5YjA2OWMyY2M3MGFkNzBjOTIwYmE0ZTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L2FjdGl2YXRpb24tYWZ0ZXItcmVnaXN0cmF0aW9uLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvYWN0aXZhdGlvbi1hZnRlci1yZWdpc3RyYXRpb24uaHR0cHMuaHRtbApAQCAtNSwy
NCArNSwyNSBAQAogPHNjcmlwdCBzcmM9InJlc291cmNlcy90ZXN0LWhlbHBlcnMuc3ViLmpzIj48
L3NjcmlwdD4KIDxib2R5PgogPHNjcmlwdD4KLXByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7Cit2
YXIgdCA9IGFzeW5jX3Rlc3QoJ2FjdGl2YXRpb24gb2NjdXJzIGFmdGVyIHJlZ2lzdHJhdGlvbicp
OwordC5zdGVwKGZ1bmN0aW9uKCkgewogICAgIHZhciBzY29wZSA9ICdyZXNvdXJjZXMvYmxhbmsu
aHRtbCc7CiAgICAgdmFyIHJlZ2lzdHJhdGlvbjsKIAotICAgIHJldHVybiBzZXJ2aWNlX3dvcmtl
cl91bnJlZ2lzdGVyX2FuZF9yZWdpc3RlcigKKyAgICBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVy
X2FuZF9yZWdpc3RlcigKICAgICAgICAgdCwgJ3Jlc291cmNlcy9lbXB0eS13b3JrZXIuanMnLCBz
Y29wZSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKHIpIHsKLSAgICAgICAgICB0LmFkZF9jbGVhbnVw
KGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdp
c3Rlcih0LCBzY29wZSk7Ci0gICAgICAgICAgICB9KTsKLQogICAgICAgICAgIHJlZ2lzdHJhdGlv
biA9IHI7CiAgICAgICAgICAgYXNzZXJ0X2VxdWFscygKICAgICAgICAgICAgICAgci5pbnN0YWxs
aW5nLnN0YXRlLAogICAgICAgICAgICAgICAnaW5zdGFsbGluZycsCiAgICAgICAgICAgICAgICd3
b3JrZXIgc2hvdWxkIGJlIGluIHRoZSAiaW5zdGFsbGluZyIgc3RhdGUgdXBvbiByZWdpc3RyYXRp
b24nKTsKICAgICAgICAgICByZXR1cm4gd2FpdF9mb3Jfc3RhdGUodCwgci5pbnN0YWxsaW5nLCAn
YWN0aXZhdGVkJyk7Ci0gICAgICAgIH0pOwotfSwgJ2FjdGl2YXRpb24gb2NjdXJzIGFmdGVyIHJl
Z2lzdHJhdGlvbicpOworICAgICAgICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfZG9uZSh0LCBzY29wZSk7CisgICAg
ICAgIH0pCisgICAgICAuY2F0Y2godW5yZWFjaGVkX3JlamVjdGlvbih0KSk7Cit9KTsKIDwvc2Ny
aXB0PgogPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvYWN0aXZhdGlvbi5o
dHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9hY3RpdmF0aW9uLmh0dHBzLWV4
cGVjdGVkLnR4dAppbmRleCA3MzM0ZDZiN2E3YWM0NGRhMTEyOGRmNWQ5NGZmOTg1NzJlNjMyODc4
Li5mMDJlNDg1MmJiMGFhYTc5YTUzMjVlODkzODc5MzYwNGY3M2IyZWFjIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci9hY3RpdmF0aW9uLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9hY3RpdmF0aW9uLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMSwzICsxLDQg
QEAKKyAKIAogUEFTUyBsb3NzIG9mIGNvbnRyb2xsZWVzIHRyaWdnZXJzIGFjdGl2YXRpb24gCiBQ
QVNTIGZpbmlzaGluZyBhIHJlcXVlc3QgdHJpZ2dlcnMgYWN0aXZhdGlvbiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL2FjdGl2YXRpb24uaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL2FjdGl2YXRpb24uaHR0cHMuaHRtbAppbmRleCAwMDdlY2FhZDc2Yzk1OTM1ZGQ1NzQ3MGM2
NjA1NzUzMDVkYzZiYWUxLi41NzU1NzU4ZTU3MTZkYmM2MDhlN2U3NzNiZjliODNhYjNmMmY3ZTkx
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9hY3RpdmF0aW9uLmh0dHBzLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvYWN0aXZhdGlvbi5odHRwcy5odG1sCkBAIC0xMTMsMTIgKzEx
MywxMCBAQCBwcm9taXNlX3Rlc3QodCA9PiB7CiAgICAgdmFyIHNjb3BlID0gJ3Jlc291cmNlcy9z
a2lwLXdhaXRpbmcnOwogICAgIHZhciB3b3JrZXJfdXJsID0gJ3Jlc291cmNlcy9taW50LW5ldy13
b3JrZXIucHk/c2tpcC13YWl0aW5nJzsKICAgICB2YXIgcmVnaXN0cmF0aW9uOwotICAgIHZhciBp
ZnJhbWU7CiAgICAgdmFyIG5ld193b3JrZXI7CiAgICAgcmV0dXJuIHNldHVwX2FjdGl2YXRpb25f
dGVzdCh0LCBzY29wZSwgd29ya2VyX3VybCkKICAgICAgIC50aGVuKHJlc3VsdCA9PiB7CiAgICAg
ICAgICAgcmVnaXN0cmF0aW9uID0gcmVzdWx0LnJlZ2lzdHJhdGlvbjsKLSAgICAgICAgICBpZnJh
bWUgPSByZXN1bHQuaWZyYW1lOwogICAgICAgICAgIC8vIEZpbmlzaCB0aGUgcmVxdWVzdC4gVGhl
IGlmcmFtZSBkb2VzIG5vdCBuZWVkIHRvIGJlIHJlbW92ZWQgYmVjYXVzZQogICAgICAgICAgIC8v
IHNraXBXYWl0aW5nKCkgd2FzIGNhbGxlZC4KICAgICAgICAgICBuZXdfd29ya2VyID0gcmVnaXN0
cmF0aW9uLndhaXRpbmc7CkBAIC0xMjgsOCArMTI2LDYgQEAgcHJvbWlzZV90ZXN0KHQgPT4gewog
ICAgICAgICB9KQogICAgICAgLnRoZW4oKCkgPT4gewogICAgICAgICAgIGFzc2VydF9lcXVhbHMo
cmVnaXN0cmF0aW9uLmFjdGl2ZSwgbmV3X3dvcmtlcik7Ci0gICAgICAgICAgLy8gUmVtb3ZlIHRo
ZSBpZnJhbWUuCi0gICAgICAgICAgaWZyYW1lLnJlbW92ZSgpOwogICAgICAgICB9KTsKICAgfSwg
J3NraXBXYWl0aW5nIGJ5cGFzc2VzIG5vIGNvbnRyb2xsZWUgcmVxdWlyZW1lbnQnKTsKIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvYXBwY2FjaGUtb3JkZXJpbmctbWFpbi5odHRwcy5o
dG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvYXBwY2FjaGUtb3JkZXJpbmctbWFpbi5odHRwcy5odG1s
CmluZGV4IGE4NjY3MWMxZmU0ZWM5NGNlYzg0ZDYzYmI3ZTMwOTIyYjAzY2YxMWEuLjYwOWQ2N2U0
NTA0Yzk0ODg3ODAzNjljMTVlMWI5NmZjMGJkMjAzOTQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL2FwcGNhY2hlLW9yZGVyaW5nLW1haW4uaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9hcHBjYWNoZS1vcmRlcmluZy1tYWluLmh0dHBzLmh0bWwKQEAgLTUsNiArNSw3IEBA
CiA8Ym9keT4KIDxzY3JpcHQ+CiAKK3ZhciBJTlNUQUxMX0FQUENBQ0hFX1VSTCA9ICJyZXNvdXJj
ZXMvYXBwY2FjaGUtb3JkZXJpbmcuaW5zdGFsbC5odG1sIjsKIHZhciBJU19BUFBDQUNIRURfVVJM
ID0gInJlc291cmNlcy9hcHBjYWNoZS1vcmRlcmluZy5pcy1hcHBjYWNoZWQuaHRtbCI7CiB2YXIg
U0VSVklDRV9XT1JLRVJfU0NPUEUgPSAicmVzb3VyY2VzL2FwcGNhY2hlLW9yZGVyaW5nIjsKIHZh
ciBTRVJWSUNFX1dPUktFUl9TQ1JJUFQgPSAicmVzb3VyY2VzL2VtcHR5LXdvcmtlci5qcyI7CkBA
IC0xNCw2ICsxNSwzMSBAQCB2YXIgcmVqZWN0X2luc3RhbGxfYXBwY2FjaGUgPSB1bmRlZmluZWQ7
CiAKIHZhciBmcmFtZXMgPSBbXTsKIAorLy8gQ2FsbGVkIGJ5IHRoZSBJTlNUQUxMX0FQUENBQ0hF
X1VSTCBjaGlsZCBmcmFtZS4KK2Z1bmN0aW9uIG5vdGlmeV9hcHBjYWNoZV9pbnN0YWxsZWQoc3Vj
Y2VzcykgeworICBpZiAoc3VjY2VzcykKKyAgICByZXNvbHZlX2luc3RhbGxfYXBwY2FjaGUoKTsK
KyAgZWxzZQorICAgIHJlamVjdF9pbnN0YWxsX2FwcGNhY2hlKCk7Cit9CisKK2Z1bmN0aW9uIGlu
c3RhbGxfYXBwY2FjaGUoKSB7CisgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZl
LCByZWplY3QpIHsKKyAgICAgIHZhciBmcmFtZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lm
cmFtZScpOworICAgICAgZnJhbWVzLnB1c2goZnJhbWUpOworICAgICAgZnJhbWUuc3JjID0gSU5T
VEFMTF9BUFBDQUNIRV9VUkw7CisgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGZyYW1l
KTsKKyAgICAgIHJlc29sdmVfaW5zdGFsbF9hcHBjYWNoZSA9IGZ1bmN0aW9uKCkgeworICAgICAg
ICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZnJhbWUpOworICAgICAgICAgIHJlc29sdmUo
KTsKKyAgICAgICAgfTsKKyAgICAgIHJlamVjdF9pbnN0YWxsX2FwcGNhY2hlID0gZnVuY3Rpb24o
KSB7CisgICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChmcmFtZSk7CisgICAgICAg
ICAgcmVqZWN0KCk7CisgICAgICAgIH07CisgIH0pOworfQorCiB2YXIgcmVzb2x2ZV9pc19hcHBj
YWNoZWQgPSB1bmRlZmluZWQ7CiAKIC8vIENhbGxlZCBieSB0aGUgSVNfQVBQQ0FDSEVEX1VSTCBj
aGlsZCBmcmFtZS4KQEAgLTM0LDEwICs2MCwxMCBAQCBmdW5jdGlvbiBpc19hcHBjYWNoZWQoKSB7
CiAgIH0pOwogfQogCi1wcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewotICAgIHJldHVybiBzZXJ2
aWNlX3dvcmtlcl91bnJlZ2lzdGVyKHQsIFNFUlZJQ0VfV09SS0VSX1NDT1BFKQorYXN5bmNfdGVz
dChmdW5jdGlvbih0KSB7CisgICAgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcih0LCBTRVJWSUNF
X1dPUktFUl9TQ09QRSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKCkgewotICAgICAgICAgIHJldHVy
biBpbnN0YWxsX2FwcGNhY2hlX29yZGVyaW5nX21hbmlmZXN0KCk7CisgICAgICAgICAgcmV0dXJu
IGluc3RhbGxfYXBwY2FjaGUoKTsKICAgICAgICAgfSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKCkg
ewogICAgICAgICAgIHJldHVybiBpc19hcHBjYWNoZWQoKTsKQEAgLTQ4LDEwICs3NCw2IEBAIHBy
b21pc2VfdGVzdChmdW5jdGlvbih0KSB7CiAgICAgICAgICAgICAgIHQsIFNFUlZJQ0VfV09SS0VS
X1NDUklQVCwgU0VSVklDRV9XT1JLRVJfU0NPUEUpOwogICAgICAgICB9KQogICAgICAgLnRoZW4o
ZnVuY3Rpb24ocikgewotICAgICAgICAgIHQuYWRkX2NsZWFudXAoZnVuY3Rpb24oKSB7Ci0gICAg
ICAgICAgICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyKHQsIFNFUlZJQ0VfV09S
S0VSX1NDT1BFKTsKLSAgICAgICAgICAgIH0pOwotCiAgICAgICAgICAgcmV0dXJuIHdhaXRfZm9y
X3N0YXRlKHQsIHIuaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOwogICAgICAgICB9KQogICAgICAg
LnRoZW4oZnVuY3Rpb24oKSB7CkBAIC02MCw3ICs4Miw5IEBAIHByb21pc2VfdGVzdChmdW5jdGlv
bih0KSB7CiAgICAgICAudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKICAgICAgICAgICBhc3NlcnRf
ZmFsc2UocmVzdWx0LCAnYnV0IHNlcnZpY2V3b3JrZXJzIHNob3VsZCB0YWtlIHByaW9yaXR5Jyk7
CiAgICAgICAgICAgZnJhbWVzLmZvckVhY2goZnVuY3Rpb24oZikgeyBmLnJlbW92ZSgpOyB9KTsK
LSAgICAgICAgfSk7CisgICAgICAgICAgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfZG9u
ZSh0LCBTRVJWSUNFX1dPUktFUl9TQ09QRSk7CisgICAgICAgIH0pCisgICAgICAuY2F0Y2godW5y
ZWFjaGVkX3JlamVjdGlvbih0KSk7CiAgIH0sICdzZXJ2aWNld29ya2VycyB0YWtlIHByaW9yaXR5
IG92ZXIgYXBwY2FjaGVzJyk7CiAKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvY2xhaW0tZmV0Y2gtd2l0aC1hcHBjYWNoZS5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9jbGFpbS1mZXRjaC13aXRoLWFwcGNhY2hlLmh0dHBzLWV4cGVjdGVkLnR4
dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGYyYzM5ZWUzOWUzMjU0ZDI1MzUxZDUw
ZGNkOTg5NjAwMjVmOTYzOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGFpbS1mZXRjaC13aXRoLWFwcGNhY2hlLmh0dHBz
LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDQgKzAsMCBAQAotQ09OU09MRSBNRVNT
QUdFOiBsaW5lIDE6IEFwcGxpY2F0aW9uQ2FjaGUgaXMgZGVwcmVjYXRlZC4gUGxlYXNlIHVzZSBT
ZXJ2aWNlV29ya2VycyBpbnN0ZWFkLgotCi1QQVNTIGZldGNoKCkgc2hvdWxkIGJlIGludGVyY2Vw
dGVkIGFmdGVyIHRoZSBjbGllbnQgaXMgY2xhaW1lZC4gCi0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL2NsYWltLWZldGNoLXdpdGgtYXBwY2FjaGUuaHR0cHMuaHRtbCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL2NsYWltLWZldGNoLXdpdGgtYXBwY2FjaGUuaHR0cHMuaHRtbApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggNDg5MGE4NGJhMTBmYTE4NmUyZTIxM2Q2NmQ1OGE0OTM3ZDJj
ODYwOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9jbGFpbS1mZXRjaC13aXRoLWFwcGNhY2hlLmh0dHBzLmh0bWwKKysrIC9k
ZXYvbnVsbApAQCAtMSw4MSArMCwwIEBACi08IWRvY3R5cGUgaHRtbD4KLTxtZXRhIGNoYXJzZXQ9
dXRmLTg+Ci08dGl0bGU+PC90aXRsZT4KLTxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGVzdC1oZWxwZXJzLnN1
Yi5qcyI+PC9zY3JpcHQ+Ci08Ym9keT4KLTxzY3JpcHQ+Ci0KLS8vIFRoaXMgdGVzdCBtYWtlcyBh
IGZyYW1lIGNvbnRyb2xsZWQgYnkgQXBwQ2FjaGUsIHRoZW4gcmVnaXN0ZXJzIGEgc2VydmljZQot
Ly8gd29ya2VyIHRoYXQgY2FsbHMgY2xhaW0oKSB0byBjb250cm9sIHRoZSBmcmFtZS4gQXBwQ2Fj
aGUgc2hvdWxkIGJlIGNvbXBsZXRlbHkKLS8vIGJ5cGFzc2VkIG9uY2UgdGhlIHNlcnZpY2Ugd29y
a2VyIGNsYWltcyB0aGUgZnJhbWUuCi0KLWNvbnN0IGZldGNoX3RleHQgPSBhc3luYyBmcmFtZSA9
PiB7Ci0gIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQKLSAgICBmcmFtZS5jb250ZW50V2luZG93LmZl
dGNoKCdhcHBjYWNoZS1vcmRlcmluZy5pcy1hcHBjYWNoZWQuanMnKTsKLSAgcmV0dXJuIGF3YWl0
IHJlc3BvbnNlLnRleHQoKTsKLX07Ci0KLWNvbnN0IGNoZWNrX2lzX2FwcGNhY2hlZCA9IGFzeW5j
IGZyYW1lID0+IHsKLSAgLy8gVGhpcyBzaG91bGQgRkFMTEJBQ0sgdG8gb3JkZXJpbmcuaXNfYXBw
Y2FjaGVkLmpzIGFzIGluIHRoZSBtYW5pZmVzdAotICAvLyBpZiB0aGUgYXBwY2FjaGUgaXMgZWZm
ZWN0aXZlLgotICBjb25zdCByZXNwb25zZSA9IGF3YWl0Ci0gICAgZnJhbWUuY29udGVudFdpbmRv
dy5mZXRjaCgnYXBwY2FjaGUtb3JkZXJpbmcuaXMtYXBwY2FjaGVkNDA0LmpzJyk7Ci0gIHJldHVy
biBhd2FpdCByZXNwb25zZS5vazsKLX07Ci0KLXByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKLSAg
Y29uc3Qgc2NvcGUgPSAncmVzb3VyY2VzLyc7Ci0gIGNvbnN0IHNjcmlwdCA9ICdyZXNvdXJjZXMv
Y2xhaW0td29ya2VyLmpzJzsKLQotICBhd2FpdCBpbnN0YWxsX2FwcGNhY2hlX29yZGVyaW5nX21h
bmlmZXN0KCk7Ci0KLSAgLy8gQ3JlYXRlIHRoZSB0ZXN0IGlmcmFtZS4KLSAgY29uc3QgZnJhbWUg
PSBhd2FpdCB3aXRoX2lmcmFtZSgncmVzb3VyY2VzL2JsYW5rLmh0bWwnKTsKLSAgdC5hZGRfY2xl
YW51cChhc3luYyAoKSA9PiB7Ci0gICAgaWYgKGZyYW1lKSBmcmFtZS5yZW1vdmUoKTsKLSAgICBy
ZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcih0LCBzY29wZSk7Ci0gIH0pOwotCi0gIC8v
IENoZWNrIHRoYXQgdGhlIGFwcGNhY2hlIGNvbnRyb2xzIHRoZSBmcmFtZS4KLSAgYXNzZXJ0X2Vx
dWFscyhhd2FpdCBjaGVja19pc19hcHBjYWNoZWQoZnJhbWUpLCB0cnVlLAotICAgICAgICAgICAg
ICAgICdBcHBDYWNoZSBzaG91bGQgYmUgcHJlc2VudCcpOwotCi0gIC8vIENoZWNrIHRoZSBjb250
cm9sbGVyIGFuZCB0ZXN0IHdpdGggZmV0Y2guCi0gIGFzc2VydF9lcXVhbHMoZnJhbWUuY29udGVu
dFdpbmRvdy5uYXZpZ2F0b3IuY29udHJvbGxlciwgdW5kZWZpbmVkLAotICAgICAgICAgICAgICAg
ICdTaG91bGQgaGF2ZSBubyBjb250cm9sbGVyLicpOwotICBhc3NlcnRfZXF1YWxzKGF3YWl0IGZl
dGNoX3RleHQoZnJhbWUpLCAndmFyIGlzX2FwcGNhY2hlZCA9IHRydWU7XG4nLAotICAgICAgICAg
ICAgICAgICdmZXRjaCgpIHNob3VsZCBub3QgYmUgaW50ZXJjZXB0ZWQuJyk7Ci0KLSAgLy8gUmVn
aXN0ZXIgYSBzZXJ2aWNlIHdvcmtlci4KLSAgbGV0IHJlZ2lzdHJhdGlvbiA9IGF3YWl0IHNlcnZp
Y2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHNjcmlwdCwgc2NvcGUpOwotICBj
b25zdCB3b3JrZXIgPSByZWdpc3RyYXRpb24uaW5zdGFsbGluZzsKLSAgYXdhaXQgd2FpdF9mb3Jf
c3RhdGUodCwgd29ya2VyLCAnYWN0aXZhdGVkJyk7Ci0KLSAgLy8gTGV0IHRoZSBzZXJ2aWNlIHdv
cmtlciBjbGFpbSB0aGUgaWZyYW1lLgotICBjb25zdCBjaGFubmVsID0gbmV3IE1lc3NhZ2VDaGFu
bmVsKCk7Ci0gIGNvbnN0IGNoZWNrX21lc3NhZ2UgPSBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHsK
LSAgICBjaGFubmVsLnBvcnQxLm9ubWVzc2FnZSA9IGFzeW5jIGUgPT4gewotICAgICAgYXNzZXJ0
X2VxdWFscyhlLmRhdGEsICdQQVNTJywgJ1dvcmtlciBjYWxsIHRvIGNsYWltKCkgc2hvdWxkIGZ1
bGZpbGwuJyk7Ci0gICAgICByZXNvbHZlKCk7Ci0gICAgfTsKLSAgfSk7Ci0gIHdvcmtlci5wb3N0
TWVzc2FnZSh7cG9ydDogY2hhbm5lbC5wb3J0Mn0sIFtjaGFubmVsLnBvcnQyXSk7Ci0gIGF3YWl0
IGNoZWNrX21lc3NhZ2U7Ci0KLSAgLy8gQ2hlY2sgdGhhdCB0aGUgYXBwY2FjaGUgZG9lcyBOT1Qg
Y29udHJvbCB0aGUgZnJhbWUuCi0gIGFzc2VydF9lcXVhbHMoYXdhaXQgY2hlY2tfaXNfYXBwY2Fj
aGVkKGZyYW1lKSwgZmFsc2UsCi0gICAgICAgICAgICAgICAgJ0FwcENhY2hlIHNob3VsZCBub3Qg
YmUgcHJlc2VudCcpOwotCi0gIC8vIENoZWNrIHRoZSBjb250cm9sbGVyIGFuZCB0ZXN0IHdpdGgg
ZmV0Y2guCi0gIHJlZ2lzdHJhdGlvbiA9IGF3YWl0Ci0gICAgZnJhbWUuY29udGVudFdpbmRvdy5u
YXZpZ2F0b3Iuc2VydmljZVdvcmtlci5nZXRSZWdpc3RyYXRpb24oc2NvcGUpOwotICBhc3NlcnRf
ZXF1YWxzKGZyYW1lLmNvbnRlbnRXaW5kb3cubmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuY29udHJv
bGxlciwKLSAgICAgICAgICAgICAgICByZWdpc3RyYXRpb24uYWN0aXZlLCAnaWZyYW1lIHNob3Vs
ZCBiZSBjbGFpbWVkLicpOwotICBhc3NlcnRfZXF1YWxzKGF3YWl0IGZldGNoX3RleHQoZnJhbWUp
LCAnSW50ZXJjZXB0ZWQhJywKLSAgICAgICAgICAgICAgICAnZmV0Y2goKSBzaG91bGQgYmUgaW50
ZXJjZXB0ZWQuJyk7Ci19LCAnZmV0Y2goKSBzaG91bGQgYmUgaW50ZXJjZXB0ZWQgYWZ0ZXIgdGhl
IGNsaWVudCBpcyBjbGFpbWVkLicpCi0KLTwvc2NyaXB0PgotPC9ib2R5PgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvY2xhaW0tZmV0Y2guaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL2NsYWltLWZldGNoLmh0dHBzLmh0bWwKaW5kZXggNDAwYjU5M2FjOTYxOTQyZjZlOTI3NGFl
ZTk4YmFjMjI4NTZlYWYyMi4uMDUwYzFlYTkyZWY2MGI4MjE1ZmFkOWNhYjUwNDY0NzI1NmFkNzI4
YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xhaW0tZmV0Y2guaHR0cHMuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGFpbS1mZXRjaC5odHRwcy5odG1sCkBAIC03LDgwICs3
LDYzIEBACiA8Ym9keT4KIDxzY3JpcHQ+CiAKLWFzeW5jIGZ1bmN0aW9uIHRyeV9mZXRjaChmZXRj
aF9mdW5jLCBwYXRoKSB7Ci0gIGxldCByZXNwb25zZTsKLSAgdHJ5IHsKLSAgIHJlc3BvbnNlID0g
YXdhaXQgZmV0Y2hfZnVuYyhwYXRoKTsKLSAgfSBjYXRjaCAoZXJyKSB7Ci0gICAgdGhyb3cgKGBm
ZXRjaCgpIHRocmV3OiAke2Vycn1gKTsKLSAgfQorcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsK
KyAgdmFyIGZyYW1lOworICB2YXIgcmVzb3VyY2UgPSAnc2ltcGxlLnR4dCc7CiAKLSAgbGV0IHJl
c3BvbnNlX3RleHQ7Ci0gIHRyeSB7Ci0gICByZXNwb25zZV90ZXh0ID0gYXdhaXQgcmVzcG9uc2Uu
dGV4dCgpOwotICB9IGNhdGNoIChlcnIpIHsKLSAgIHRocm93IChgdGV4dCgpIHRocmV3OiAke2Vy
cn1gKTsKLSAgfQorICB2YXIgd29ya2VyOworICB2YXIgc2NvcGUgPSAncmVzb3VyY2VzLyc7Cisg
IHZhciBzY3JpcHQgPSAncmVzb3VyY2VzL2NsYWltLXdvcmtlci5qcyc7CiAKLSAgcmV0dXJuIHJl
c3BvbnNlX3RleHQ7Ci19CisgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKQorICAgIC8vIENyZWF0
ZSB0aGUgdGVzdCBpZnJhbWUuCisgICAgLnRoZW4oKCkgPT4gd2l0aF9pZnJhbWUoJ3Jlc291cmNl
cy9ibGFuay5odG1sJykpCisgICAgLnRoZW4oZiA9PiBmcmFtZSA9IGYpCiAKLXByb21pc2VfdGVz
dChhc3luYyBmdW5jdGlvbih0KSB7Ci0gIGxldCBmcmFtZTsKLSAgY29uc3Qgc2NvcGUgPSAncmVz
b3VyY2VzLyc7Ci0gIGNvbnN0IHNjcmlwdCA9ICdyZXNvdXJjZXMvY2xhaW0td29ya2VyLmpzJzsK
LSAgdC5hZGRfY2xlYW51cChhc3luYyAoKSA9PiB7Ci0gICAgaWYgKGZyYW1lKQotICAgICAgZnJh
bWUucmVtb3ZlKCk7Ci0gICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXIodCwgc2Nv
cGUpOwotICB9KTsKKyAgICAvLyBDaGVjayB0aGUgY29udHJvbGxlciBhbmQgdGVzdCB3aXRoIGZl
dGNoLgorICAgIC50aGVuKCgpID0+IGFzc2VydF9lcXVhbHMoZnJhbWUuY29udGVudFdpbmRvdy5u
YXZpZ2F0b3IuY29udHJvbGxlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuZGVm
aW5lZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdTaG91bGQgaGF2ZSBubyBjb250
cm9sbGVyLicpKQorICAgIC50aGVuKCgpID0+IGZyYW1lLmNvbnRlbnRXaW5kb3cuZmV0Y2gocmVz
b3VyY2UpKQorICAgIC50aGVuKHJlc3BvbnNlID0+IHJlc3BvbnNlLnRleHQoKSkKKyAgICAudGhl
bihyZXNwb25zZV90ZXh0ID0+IGFzc2VydF9lcXVhbHMocmVzcG9uc2VfdGV4dCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Egc2ltcGxlIHRleHQgZmlsZVxuJywK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ZldGNoKCkgc2hvdWxk
IG5vdCBiZSBpbnRlcmNlcHRlZC4nKSkKIAotICBjb25zdCByZXNvdXJjZSA9ICdzaW1wbGUudHh0
JzsKKyAgICAvLyBSZWdpc3RlciBhIHNlcnZpY2Ugd29ya2VyLgorICAgIC50aGVuKCgpID0+IHNl
cnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHNjcmlwdCwgc2NvcGUpKQor
ICAgIC50aGVuKHIgPT4gd29ya2VyID0gci5pbnN0YWxsaW5nKQorICAgIC50aGVuKCgpID0+IHdh
aXRfZm9yX3N0YXRlKHQsIHdvcmtlciwgJ2FjdGl2YXRlZCcpKQogCi0gIC8vIENyZWF0ZSB0aGUg
dGVzdCBmcmFtZS4KLSAgYXdhaXQgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcih0LCBzY29wZSk7
Ci0gIGZyYW1lID0gYXdhaXQgd2l0aF9pZnJhbWUoJ3Jlc291cmNlcy9ibGFuay5odG1sJyk7Cisg
ICAgLy8gTGV0IHRoZSBzZXJ2aWNlIHdvcmtlciBjbGFpbSB0aGUgaWZyYW1lLgorICAgIC50aGVu
KCgpID0+IHsKKyAgICAgIHZhciBjaGFubmVsID0gbmV3IE1lc3NhZ2VDaGFubmVsKCk7CisgICAg
ICB2YXIgc2F3X21lc3NhZ2UgPSBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlKSB7CisgICAg
ICAgIGNoYW5uZWwucG9ydDEub25tZXNzYWdlID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewor
ICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS5kYXRhLCAnUEFTUycsCisgICAgICAgICAgICAgICAg
ICAgICAgICAnV29ya2VyIGNhbGwgdG8gY2xhaW0oKSBzaG91bGQgZnVsZmlsbC4nKTsKKyAgICAg
ICAgICByZXNvbHZlKCk7CisgICAgICAgIH0pOworICAgICAgfSk7CisgICAgICB3b3JrZXIucG9z
dE1lc3NhZ2Uoe3BvcnQ6IGNoYW5uZWwucG9ydDJ9LCBbY2hhbm5lbC5wb3J0Ml0pOworICAgICAg
cmV0dXJuIHNhd19tZXNzYWdlOworICAgIH0pCiAKLSAgLy8gQ2hlY2sgdGhlIGNvbnRyb2xsZXIg
YW5kIHRlc3Qgd2l0aCBmZXRjaC4KLSAgYXNzZXJ0X2VxdWFscyhmcmFtZS5jb250ZW50V2luZG93
Lm5hdmlnYXRvci5jb250cm9sbGVyLCB1bmRlZmluZWQsCi0gICAgICAgICAgICAgICAgJ1Nob3Vs
ZCBoYXZlIG5vIGNvbnRyb2xsZXIuJyk7Ci0gIGxldCByZXNwb25zZTsKLSAgdHJ5IHsKLSAgICBy
ZXNwb25zZSA9IGF3YWl0IHRyeV9mZXRjaChmcmFtZS5jb250ZW50V2luZG93LmZldGNoLCByZXNv
dXJjZSk7Ci0gIH0gY2F0Y2ggKGVycikgewotICAgIGFzc2VydF91bnJlYWNoZWQoYHVuY29udHJv
bGxlZCBmZXRjaCBmYWlsZWQ6ICR7ZXJyfWApOwotICB9Ci0gIGFzc2VydF9lcXVhbHMocmVzcG9u
c2UsICdhIHNpbXBsZSB0ZXh0IGZpbGVcbicsCi0gICAgICAgICAgICAgICAgJ2ZldGNoKCkgc2hv
dWxkIG5vdCBiZSBpbnRlcmNlcHRlZC4nKTsKKyAgICAvLyBDaGVjayB0aGUgY29udHJvbGxlciBh
bmQgdGVzdCB3aXRoIGZldGNoLgorICAgIC50aGVuKCgpID0+IGZyYW1lLmNvbnRlbnRXaW5kb3cu
bmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuZ2V0UmVnaXN0cmF0aW9uKHNjb3BlKSkKKyAgICAudGhl
bihyID0+IGFzc2VydF9lcXVhbHMoZnJhbWUuY29udGVudFdpbmRvdy5uYXZpZ2F0b3Iuc2Vydmlj
ZVdvcmtlci5jb250cm9sbGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICByLmFjdGl2
ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1Rlc3QgaWZyYW1lIHNob3VsZCBiZSBj
bGFpbWVkLicpKQorICAgIC50aGVuKCgpID0+IGZyYW1lLmNvbnRlbnRXaW5kb3cuZmV0Y2gocmVz
b3VyY2UpKQorICAgIC50aGVuKHJlc3BvbnNlID0+IHJlc3BvbnNlLnRleHQoKSkKKyAgICAudGhl
bihyZXNwb25zZV90ZXh0ID0+IGFzc2VydF9lcXVhbHMocmVzcG9uc2VfdGV4dCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0ludGVyY2VwdGVkIScsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmZXRjaCgpIHNob3VsZCBiZSBpbnRl
cmNlcHRlZC4nKSkKIAotICAvLyBSZWdpc3RlciBhIHNlcnZpY2Ugd29ya2VyLgotICBjb25zdCBy
ZWdpc3RyYXRpb24gPSBhd2FpdCBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3RlcihzY3Jp
cHQsIHtzY29wZX0pOwotICBjb25zdCB3b3JrZXIgPSByZWdpc3RyYXRpb24uaW5zdGFsbGluZzsK
LSAgYXdhaXQgd2FpdF9mb3Jfc3RhdGUodCwgd29ya2VyLCAnYWN0aXZhdGVkJyk7Ci0KLSAgLy8g
VGVsbCB0aGUgc2VydmljZSB3b3JrZXIgdG8gY2xhaW0gdGhlIGlmcmFtZS4KLSAgY29uc3Qgc2F3
X21lc3NhZ2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gewotICAgIGNvbnN0IGNoYW5uZWwg
PSBuZXcgTWVzc2FnZUNoYW5uZWwoKTsKLSAgICBjaGFubmVsLnBvcnQxLm9ubWVzc2FnZSA9IHQu
c3RlcF9mdW5jKChldmVudCkgPT4gewotICAgICAgcmVzb2x2ZShldmVudC5kYXRhKTsKLSAgICB9
KTsKLSAgICB3b3JrZXIucG9zdE1lc3NhZ2Uoe3BvcnQ6IGNoYW5uZWwucG9ydDJ9LCBbY2hhbm5l
bC5wb3J0Ml0pOwotICB9KTsKLSAgY29uc3QgZGF0YSA9IGF3YWl0IHNhd19tZXNzYWdlOwotICBh
c3NlcnRfZXF1YWxzKGRhdGEsICdQQVNTJywgJ1dvcmtlciBjYWxsIHRvIGNsYWltKCkgc2hvdWxk
IGZ1bGZpbGwuJyk7Ci0KLSAgLy8gQ2hlY2sgdGhlIGNvbnRyb2xsZXIgYW5kIHRlc3Qgd2l0aCBm
ZXRjaC4KLSAgY29uc3QgY29udHJvbGxlciA9IGZyYW1lLmNvbnRlbnRXaW5kb3cubmF2aWdhdG9y
LnNlcnZpY2VXb3JrZXIuY29udHJvbGxlcjsKLSAgYXNzZXJ0X3RydWUoY29udHJvbGxlciBpbnN0
YW5jZW9mIGZyYW1lLmNvbnRlbnRXaW5kb3cuU2VydmljZVdvcmtlciwKLSAgICAgICAgICAgICAg
J2lmcmFtZSBzaG91bGQgYmUgY29udHJvbGxlZC4nKTsKLSAgdHJ5IHsKLSAgICByZXNwb25zZSA9
IGF3YWl0IHRyeV9mZXRjaChmcmFtZS5jb250ZW50V2luZG93LmZldGNoLCByZXNvdXJjZSk7Ci0g
IH0gY2F0Y2ggKGVycikgewotICAgIGFzc2VydF91bnJlYWNoZWQoYGNvbnRyb2xsZWQgZmV0Y2gg
ZmFpbGVkOiAke2Vycn1gKTsKLSAgfQotICBhc3NlcnRfZXF1YWxzKHJlc3BvbnNlLCAnSW50ZXJj
ZXB0ZWQhJywKLSAgICAgICAgICAgICAgICAnZmV0Y2goKSBzaG91bGQgYmUgaW50ZXJjZXB0ZWQu
Jyk7Ci19LCAnZmV0Y2goKSBzaG91bGQgYmUgaW50ZXJjZXB0ZWQgYWZ0ZXIgdGhlIGNsaWVudCBp
cyBjbGFpbWVkLicpOworICAgIC8vIENsZWFudXAgdGhpcyB0ZXN0Y2FzZS4KKyAgICAudGhlbigo
KSA9PiBmcmFtZS5yZW1vdmUoKSkKKyAgICAudGhlbigoKSA9PiBzZXJ2aWNlX3dvcmtlcl91bnJl
Z2lzdGVyX2FuZF9kb25lKHQsIHNjb3BlKSk7Cit9LCAnZmV0Y2goKSBzaG91bGQgYmUgaW50ZXJj
ZXB0ZWQgYWZ0ZXIgdGhlIGNsaWVudCBpcyBjbGFpbWVkLicpCiAKIDwvc2NyaXB0PgogPC9ib2R5
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xhaW0tbm90LXVzaW5nLXJlZ2lzdHJh
dGlvbi5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xhaW0tbm90LXVzaW5nLXJlZ2lz
dHJhdGlvbi5odHRwcy5odG1sCmluZGV4IGZkNjFkMDViYTRlYThhMWM0MTZlYjZkNGIxMTI4Zjdi
NjViNGIzNWMuLjExMzhiNzQxOWNmYWE3OGQ5OWYxMTQxOTZmYjY4NzBhZmRmOGJkNjcgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsYWltLW5vdC11c2luZy1yZWdpc3RyYXRpb24uaHR0
cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGFpbS1ub3QtdXNpbmctcmVnaXN0cmF0
aW9uLmh0dHBzLmh0bWwKQEAgLTE1LDEwICsxNSw2IEBAIHByb21pc2VfdGVzdChmdW5jdGlvbih0
KSB7CiAgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKAog
ICAgICAgICB0LCBpbml0X3dvcmtlcl91cmwsIGluaXRfc2NvcGUpCiAgICAgICAudGhlbihmdW5j
dGlvbihyZWdpc3RyYXRpb24pIHsKLSAgICAgICAgICB0LmFkZF9jbGVhbnVwKGZ1bmN0aW9uKCkg
ewotICAgICAgICAgICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcih0LCBpbml0
X3Njb3BlKTsKLSAgICAgICAgICAgIH0pOwotCiAgICAgICAgICAgcmV0dXJuIHdhaXRfZm9yX3N0
YXRlKHQsIHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7CiAgICAgICAgIH0p
CiAgICAgICAudGhlbihmdW5jdGlvbigpIHsKQEAgLTM5LDEwICszNSw2IEBAIHByb21pc2VfdGVz
dChmdW5jdGlvbih0KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHtzY29wZTogY2xhaW1fc2NvcGV9KTsKICAgICAgICAgfSkKICAgICAgIC50aGVu
KGZ1bmN0aW9uKHJlZ2lzdHJhdGlvbikgewotICAgICAgICAgIHQuYWRkX2NsZWFudXAoZnVuY3Rp
b24oKSB7Ci0gICAgICAgICAgICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyKHQs
IGNsYWltX3Njb3BlKTsKLSAgICAgICAgICAgIH0pOwotCiAgICAgICAgICAgY2xhaW1fd29ya2Vy
ID0gcmVnaXN0cmF0aW9uLmluc3RhbGxpbmc7CiAgICAgICAgICAgY2xhaW1fcmVnaXN0cmF0aW9u
ID0gcmVnaXN0cmF0aW9uOwogICAgICAgICAgIHJldHVybiB3YWl0X2Zvcl9zdGF0ZSh0LCByZWdp
c3RyYXRpb24uaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOwpAQCAtNzUsNiArNjcsOSBAQCBwcm9t
aXNlX3Rlc3QoZnVuY3Rpb24odCkgewogICAgICAgICAgIGZyYW1lMS5yZW1vdmUoKTsKICAgICAg
ICAgICBmcmFtZTIucmVtb3ZlKCk7CiAgICAgICAgICAgcmV0dXJuIGNsYWltX3JlZ2lzdHJhdGlv
bi51bnJlZ2lzdGVyKCk7CisgICAgICAgIH0pCisgICAgICAudGhlbihmdW5jdGlvbigpIHsKKyAg
ICAgICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfZG9uZSh0LCBpbml0
X3Njb3BlKTsKICAgICAgICAgfSk7CiAgIH0sICdUZXN0IGNsYWltIGNsaWVudCB3aGljaCBpcyBu
b3QgdXNpbmcgcmVnaXN0cmF0aW9uJyk7CiAKQEAgLTkxLDEwICs4Niw2IEBAIHByb21pc2VfdGVz
dChmdW5jdGlvbih0KSB7CiAgICAgICAgICAgICAgIGNsYWltX3dvcmtlcl91cmwsIHtzY29wZTog
Y2xhaW1fc2NvcGV9KTsKICAgICAgICAgfSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKHJlZ2lzdHJh
dGlvbikgewotICAgICAgICAgIHQuYWRkX2NsZWFudXAoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAg
ICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyKHQsIGNsYWltX3Njb3BlKTsKLSAg
ICAgICAgICAgIH0pOwotCiAgICAgICAgICAgY2xhaW1fd29ya2VyID0gcmVnaXN0cmF0aW9uLmlu
c3RhbGxpbmc7CiAgICAgICAgICAgcmV0dXJuIHdhaXRfZm9yX3N0YXRlKHQsIHJlZ2lzdHJhdGlv
bi5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7CiAgICAgICAgIH0pCkBAIC0xMDMsMTAgKzk0LDYg
QEAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICAgICAgICAgICAgaW5zdGFsbGluZ193
b3JrZXJfdXJsLCB7c2NvcGU6IHNjb3BlfSk7CiAgICAgICAgIH0pCiAgICAgICAudGhlbihmdW5j
dGlvbigpIHsKLSAgICAgICAgICB0LmFkZF9jbGVhbnVwKGZ1bmN0aW9uKCkgewotICAgICAgICAg
ICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcih0LCBzY29wZSk7Ci0gICAgICAg
ICAgICB9KTsKLQogICAgICAgICAgIHZhciBjaGFubmVsID0gbmV3IE1lc3NhZ2VDaGFubmVsKCk7
CiAgICAgICAgICAgdmFyIHNhd19tZXNzYWdlID0gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2
ZSkgewogICAgICAgICAgICAgICBjaGFubmVsLnBvcnQxLm9ubWVzc2FnZSA9IHQuc3RlcF9mdW5j
KGZ1bmN0aW9uKGUpIHsKQEAgLTEyNCw2ICsxMTEsMTAgQEAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9u
KHQpIHsKICAgICAgICAgICAgICAgJ0ZyYW1lIHNob3VsZCBub3QgYmUgY2xhaW1lZCB3aGVuIGEg
bG9uZ2VyLW1hdGNoZWQgJyArCiAgICAgICAgICAgICAgICdyZWdpc3RyYXRpb24gZXhpc3RzJyk7
CiAgICAgICAgICAgZnJhbWUucmVtb3ZlKCk7CisgICAgICAgICAgcmV0dXJuIHNlcnZpY2Vfd29y
a2VyX3VucmVnaXN0ZXIodCwgY2xhaW1fc2NvcGUpOworICAgICAgICB9KQorICAgICAgLnRoZW4o
ZnVuY3Rpb24oKSB7CisgICAgICAgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJf
YW5kX2RvbmUodCwgc2NvcGUpOwogICAgICAgICB9KTsKICAgfSwgJ1Rlc3QgY2xhaW0gY2xpZW50
IHdoZW4gdGhlcmVcJ3MgYSBsb25nZXItbWF0Y2hlZCByZWdpc3RyYXRpb24gbm90ICcgKwogICAg
ICAnYWxyZWFkeSB1c2VkIGJ5IHRoZSBwYWdlJyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9jbGFpbS1zaGFyZWQtd29ya2VyLWZldGNoLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9jbGFpbS1zaGFyZWQtd29ya2VyLWZldGNoLmh0dHBzLmh0bWwKaW5kZXggZjVmNDQ4ODZi
YWEyYmZmM2JjN2I3ZTAxM2E4NTZhNmQ5MGNlYjI2Yy4uYTA3ZGI3Yjc1YzdhNGMyOWU5Y2U3NTYx
NTJjZDBkNGUyNjllODkxMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xhaW0tc2hh
cmVkLXdvcmtlci1mZXRjaC5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsYWlt
LXNoYXJlZC13b3JrZXItZmV0Y2guaHR0cHMuaHRtbApAQCAtMzAsMTMgKzMwLDkgQEAgcHJvbWlz
ZV90ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgJ2ZldGNoKCkgc2hvdWxkIG5vdCBiZSBpbnRlcmNlcHRlZC4nKSkKICAgICAvLyBSZWdp
c3RlciBhIHNlcnZpY2Ugd29ya2VyLgogICAgIC50aGVuKCgpID0+IHNlcnZpY2Vfd29ya2VyX3Vu
cmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHNjcmlwdCwgc2NvcGUpKQotICAgIC50aGVuKHIgPT4g
ewotICAgICAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXIo
dCwgc2NvcGUpKTsKKyAgICAudGhlbihyID0+IHdvcmtlciA9IHIuaW5zdGFsbGluZykKKyAgICAu
dGhlbigoKSA9PiB3YWl0X2Zvcl9zdGF0ZSh0LCB3b3JrZXIsICdhY3RpdmF0ZWQnKSkKIAotICAg
ICAgICB3b3JrZXIgPSByLmluc3RhbGxpbmc7Ci0KLSAgICAgICAgcmV0dXJuIHdhaXRfZm9yX3N0
YXRlKHQsIHdvcmtlciwgJ2FjdGl2YXRlZCcpCi0gICAgICB9KQogICAgIC8vIExldCB0aGUgc2Vy
dmljZSB3b3JrZXIgY2xhaW0gdGhlIGlmcmFtZSBhbmQgdGhlIHNoYXJlZCB3b3JrZXIuCiAgICAg
LnRoZW4oKCkgPT4gewogICAgICAgdmFyIGNoYW5uZWwgPSBuZXcgTWVzc2FnZUNoYW5uZWwoKTsK
QEAgLTY0LDcgKzYwLDggQEAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICAgICAgICAg
ICAgICAgICAgICAgICdmZXRjaCgpIGluIHRoZSBzaGFyZWQgd29ya2VyIHNob3VsZCBiZSBpbnRl
cmNlcHRlZC4nKSkKIAogICAgIC8vIENsZWFudXAgdGhpcyB0ZXN0Y2FzZS4KLSAgICAudGhlbigo
KSA9PiBmcmFtZS5yZW1vdmUoKSk7CisgICAgLnRoZW4oKCkgPT4gZnJhbWUucmVtb3ZlKCkpCisg
ICAgLnRoZW4oKCkgPT4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfZG9uZSh0LCBzY29w
ZSkpOwogfSwgJ2ZldGNoKCkgaW4gU2hhcmVkV29ya2VyIHNob3VsZCBiZSBpbnRlcmNlcHRlZCBh
ZnRlciB0aGUgY2xpZW50IGlzIGNsYWltZWQuJykKIAogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci9jbGFpbS11c2luZy1yZWdpc3RyYXRpb24uaHR0cHMuaHRtbCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL2NsYWltLXVzaW5nLXJlZ2lzdHJhdGlvbi5odHRwcy5odG1sCmluZGV4
IDhhMmE2ZmYyNWM4MmQ4ZDZkZTI2Y2NhNTIxZGE5OWY4ZWY2ZDVmYmYuLjdkNzdkMzg0ODM3ZDNj
NDEyNzhiZWE2ZjQxNGE2NzE5ZTgwZGM1MjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L2NsYWltLXVzaW5nLXJlZ2lzdHJhdGlvbi5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL2NsYWltLXVzaW5nLXJlZ2lzdHJhdGlvbi5odHRwcy5odG1sCkBAIC0xMywxMCArMTMsNiBA
QCBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewogICAgIHZhciB3b3JrZXIsIHN3X3JlZ2lzdHJh
dGlvbiwgZnJhbWU7CiAgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3Jl
Z2lzdGVyKHQsIHVybDEsIHNjb3BlKQogICAgICAgLnRoZW4oZnVuY3Rpb24ocmVnaXN0cmF0aW9u
KSB7Ci0gICAgICAgICAgdC5hZGRfY2xlYW51cChmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAg
cmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXIodCwgc2NvcGUpOwotICAgICAgICAgICAg
fSk7Ci0KICAgICAgICAgICByZXR1cm4gd2FpdF9mb3Jfc3RhdGUodCwgcmVnaXN0cmF0aW9uLmlu
c3RhbGxpbmcsICdhY3RpdmF0ZWQnKTsKICAgICAgICAgfSkKICAgICAgIC50aGVuKGZ1bmN0aW9u
KCkgewpAQCAtNTQsNiArNTAsOSBAQCBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewogICAgICAg
ICAgICAgICAnRnJhbWUxIGNvbnRyb2xsZXIgc2NyaXB0VVJMIHNob3VsZCBiZSBjaGFuZ2VkIHRv
IHVybDInKTsKICAgICAgICAgICBmcmFtZS5yZW1vdmUoKTsKICAgICAgICAgICByZXR1cm4gc3df
cmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIoKTsKKyAgICAgICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0
aW9uKCkgeworICAgICAgICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9k
b25lKHQsIHNjb3BlKTsKICAgICAgICAgfSk7CiAgIH0sICdUZXN0IHdvcmtlciBjbGFpbXMgY2xp
ZW50IHdoaWNoIGlzIHVzaW5nIGFub3RoZXIgcmVnaXN0cmF0aW9uJyk7CiAKQEAgLTY0LDEwICs2
Myw2IEBAIHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7CiAgICAgdmFyIGZyYW1lLCB3b3JrZXI7
CiAgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHVy
bDEsIHNjb3BlKQogICAgICAgLnRoZW4oZnVuY3Rpb24ocmVnaXN0cmF0aW9uKSB7Ci0gICAgICAg
ICAgdC5hZGRfY2xlYW51cChmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgcmV0dXJuIHNlcnZp
Y2Vfd29ya2VyX3VucmVnaXN0ZXIodCwgc2NvcGUpOwotICAgICAgICAgICAgfSk7Ci0KICAgICAg
ICAgICByZXR1cm4gd2FpdF9mb3Jfc3RhdGUodCwgcmVnaXN0cmF0aW9uLmluc3RhbGxpbmcsICdh
Y3RpdmF0ZWQnKTsKICAgICAgICAgfSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKCkgewpAQCAtOTYs
NiArOTEsNyBAQCBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewogICAgICAgICB9KQogICAgICAg
LnRoZW4oZnVuY3Rpb24oKSB7CiAgICAgICAgICAgZnJhbWUucmVtb3ZlKCk7CisgICAgICAgICAg
cmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX2RvbmUodCwgc2NvcGUpOwogICAg
ICAgICB9KTsKICAgfSwgJ1Rlc3QgZm9yIHRoZSB3YWl0aW5nIHdvcmtlciBjbGFpbXMgYSBjbGll
bnQgd2hpY2ggaXMgdXNpbmcgdGhlIHRoZSAnICsKICAgICAgJ3NhbWUgcmVnaXN0cmF0aW9uJyk7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGFpbS13b3JrZXItZmV0Y2guaHR0cHMt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xhaW0td29ya2VyLWZldGNoLmh0dHBz
LWV4cGVjdGVkLnR4dAppbmRleCA3YzI1ZGEwZWIwNTA3MzNkYjk0YTA4YzMyZTNhM2I4NjJkNTlh
MzZlLi42NDBhNGIxMjI3NDU1NGE2MjY4ODE2OTk2NmE1YzA0NGQ0M2VkYTdiIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9jbGFpbS13b3JrZXItZmV0Y2guaHR0cHMtZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsYWltLXdvcmtlci1mZXRjaC5odHRwcy1leHBlY3Rl
ZC50eHQKQEAgLTEsMyArMSw0IEBACisgCiAKIFBBU1MgZmV0Y2goKSBpbiBXb3JrZXIgc2hvdWxk
IGJlIGludGVyY2VwdGVkIGFmdGVyIHRoZSBjbGllbnQgaXMgY2xhaW1lZC4gCiBGQUlMIGZldGNo
KCkgaW4gbmVzdGVkIFdvcmtlciBzaG91bGQgYmUgaW50ZXJjZXB0ZWQgYWZ0ZXIgdGhlIGNsaWVu
dCBpcyBjbGFpbWVkLiBhc3NlcnRfZXF1YWxzOiBmZXRjaCgpIHNob3VsZCBub3QgYmUgaW50ZXJj
ZXB0ZWQuIGV4cGVjdGVkICJhIHNpbXBsZSB0ZXh0IGZpbGVcbiIgYnV0IGdvdCAiRmFpbDogdW5k
ZWZpbmVkIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xhaW0td29ya2VyLWZldGNo
Lmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGFpbS13b3JrZXItZmV0Y2guaHR0cHMu
aHRtbAppbmRleCA0YjQ5YTgxNTJhNDJjOWU0NTEwNDEzOWI0NmI5ZmE1Njc2MmRlNmJiLi5jMmMy
NTRjYTY1YzM2YWVhOTQyYThhNzdiZDYzMGYyYTY2ZGNmOTgyIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9jbGFpbS13b3JrZXItZmV0Y2guaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9jbGFpbS13b3JrZXItZmV0Y2guaHR0cHMuaHRtbApAQCAtMTUsMjIgKzE1LDIwIEBA
IHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7CiAgIHJldHVybiBydW5UZXN0KHQsICdyZXNvdXJj
ZXMvY2xhaW0tbmVzdGVkLXdvcmtlci1mZXRjaC1pZnJhbWUuaHRtbCcpOwogfSwgJ2ZldGNoKCkg
aW4gbmVzdGVkIFdvcmtlciBzaG91bGQgYmUgaW50ZXJjZXB0ZWQgYWZ0ZXIgdGhlIGNsaWVudCBp
cyBjbGFpbWVkLicpOwogCit2YXIgZnJhbWU7Cit2YXIgcmVnaXN0cmF0aW9uOworCiBmdW5jdGlv
biBydW5UZXN0KHQsIGlmcmFtZV91cmwpIHsKICAgdmFyIHJlc291cmNlID0gJ3NpbXBsZS50eHQn
OwogCi0gIHZhciBmcmFtZTsKLSAgdmFyIHJlZ2lzdHJhdGlvbjsKICAgdmFyIHdvcmtlcjsKICAg
dmFyIHNjb3BlID0gJ3Jlc291cmNlcy8nOwogICB2YXIgc2NyaXB0ID0gJ3Jlc291cmNlcy9jbGFp
bS13b3JrZXIuanMnOwogCi0gIHJldHVybiBQcm9taXNlLnJlc29sdmUoKQorICBjb25zdCB0ZXN0
X3Jlc3VsdCA9IFByb21pc2UucmVzb2x2ZSgpCiAgICAgLy8gQ3JlYXRlIHRoZSB0ZXN0IGlmcmFt
ZSB3aXRoIGEgZGVkaWNhdGVkIHdvcmtlci4KICAgICAudGhlbigoKSA9PiB3aXRoX2lmcmFtZShp
ZnJhbWVfdXJsKSkKLSAgICAudGhlbihmID0+IHsKLSAgICAgIHQuYWRkX2NsZWFudXAoKCkgPT4g
Zi5yZW1vdmUoKSk7Ci0gICAgICBmcmFtZSA9IGY7Ci0gICAgfSkKKyAgICAudGhlbihmID0+IGZy
YW1lID0gZikKIAogICAgIC8vIENoZWNrIHRoZSBjb250cm9sbGVyIGFuZCB0ZXN0IHdpdGggZmV0
Y2ggaW4gdGhlIHdvcmtlci4KICAgICAudGhlbigoKSA9PiBhc3NlcnRfZXF1YWxzKGZyYW1lLmNv
bnRlbnRXaW5kb3cubmF2aWdhdG9yLmNvbnRyb2xsZXIsCkBAIC00MiwxMCArNDAsNyBAQCBmdW5j
dGlvbiBydW5UZXN0KHQsIGlmcmFtZV91cmwpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgJ2ZldGNoKCkgc2hvdWxkIG5vdCBiZSBpbnRlcmNlcHRlZC4nKSkKICAg
ICAvLyBSZWdpc3RlciBhIHNlcnZpY2Ugd29ya2VyLgogICAgIC50aGVuKCgpID0+IHNlcnZpY2Vf
d29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHNjcmlwdCwgc2NvcGUpKQotICAgIC50
aGVuKHIgPT4gewotICAgICAgdC5hZGRfY2xlYW51cCgoKSA9PiByLnVucmVnaXN0ZXIoKSk7Ci0g
ICAgICB3b3JrZXIgPSByLmluc3RhbGxpbmc7Ci0gICAgfSkKKyAgICAudGhlbihyID0+IHdvcmtl
ciA9IHIuaW5zdGFsbGluZykKICAgICAudGhlbigoKSA9PiB3YWl0X2Zvcl9zdGF0ZSh0LCB3b3Jr
ZXIsICdhY3RpdmF0ZWQnKSkKIAogICAgIC8vIExldCB0aGUgc2VydmljZSB3b3JrZXIgY2xhaW0g
dGhlIGlmcmFtZSBhbmQgdGhlIHdvcmtlci4KQEAgLTc0LDYgKzY5LDE4IEBAIGZ1bmN0aW9uIHJ1
blRlc3QodCwgaWZyYW1lX3VybCkgewogICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVzcG9uc2Vf
dGV4dCwKICAgICAgICAgICAgICAgICAgICAgICAgICdJbnRlcmNlcHRlZCEnLAogICAgICAgICAg
ICAgICAgICAgICAgICAgJ2ZldGNoKCkgaW4gdGhlIHdvcmtlciBzaG91bGQgYmUgaW50ZXJjZXB0
ZWQuJykpOworCisgICAgLy8gQ2xlYW51cCB0aGlzIHRlc3RjYXNlLgorICAgIHJldHVybiBQcm9t
aXNlLnJlc29sdmUoKQorICAgICAgICAudGhlbihjbGVhbnVwLCBjbGVhbnVwKQorICAgICAgICAu
dGhlbigoKSA9PiB7IHJldHVybiB0ZXN0X3Jlc3VsdDsgfSk7Cit9CisKK2NvbnN0IGNsZWFudXAg
PSBhc3luYyAoKSA9PiB7CisgIGlmIChyZWdpc3RyYXRpb24pCisgICAgYXdhaXQgcmVnaXN0cmF0
aW9uLnVucmVnaXN0ZXIoKTsKKyAgaWYgKGZyYW1lKQorICAgIGZyYW1lLnJlbW92ZSgpOwogfQog
CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsaWVudC1pZC5odHRw
cy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xpZW50LWlkLmh0dHBzLmh0bWwKaW5kZXggYjkz
YjM0MTg5OTk5ZmUzN2Q4OWQyN2ZiYTFkNDQwMDk5NGIyNzZjYi4uYTUzYzEwYzk2OTE5MTkwNGI0
MjE0N2JiNTg3MWVlNzk3YjA4YjM2MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xp
ZW50LWlkLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xpZW50LWlkLmh0dHBz
Lmh0bWwKQEAgLTQsMTcgKzQsMTUgQEAKIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGVzdC1oZWxw
ZXJzLnN1Yi5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgordmFyIHRlc3Q7CiB2YXIgc2NvcGUgPSAn
cmVzb3VyY2VzL2JsYW5rLmh0bWw/Y2xpZW50LWlkJzsKIHZhciBmcmFtZTEsIGZyYW1lMjsKIAot
cHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKLSAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5y
ZWdpc3Rlcl9hbmRfcmVnaXN0ZXIoCithc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgICB0ZXN0
ID0gdDsKKyAgICBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3RlcigKICAgICAg
ICAgdCwgJ3Jlc291cmNlcy9jbGllbnQtaWQtd29ya2VyLmpzJywgc2NvcGUpCiAgICAgICAudGhl
bihmdW5jdGlvbihyZWdpc3RyYXRpb24pIHsKLSAgICAgICAgICB0LmFkZF9jbGVhbnVwKGZ1bmN0
aW9uKCkgewotICAgICAgICAgICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcih0
LCBzY29wZSk7Ci0gICAgICAgICAgICB9KTsKLQogICAgICAgICAgIHJldHVybiB3YWl0X2Zvcl9z
dGF0ZSh0LCByZWdpc3RyYXRpb24uaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOwogICAgICAgICB9
KQogICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7IHJldHVybiB3aXRoX2lmcmFtZShzY29wZSArICcj
MScpOyB9KQpAQCAtMjcsMTUgKzI1LDExIEBAIHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7CiAg
ICAgICAudGhlbihmdW5jdGlvbihmKSB7CiAgICAgICAgICAgZnJhbWUyID0gZjsKICAgICAgICAg
ICB2YXIgY2hhbm5lbCA9IG5ldyBNZXNzYWdlQ2hhbm5lbCgpOwotCi0gICAgICAgICAgcmV0dXJu
IG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgewotICAgICAgICAgICAgICBj
aGFubmVsLnBvcnQxLm9ubWVzc2FnZSA9IHJlc29sdmU7Ci0gICAgICAgICAgICAgIGNoYW5uZWwu
cG9ydDEub25tZXNzYWdlZXJyb3IgPSByZWplY3Q7Ci0gICAgICAgICAgICAgIGYuY29udGVudFdp
bmRvdy5uYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5jb250cm9sbGVyLnBvc3RNZXNzYWdlKAotICAg
ICAgICAgICAgICAgICAge3BvcnQ6Y2hhbm5lbC5wb3J0Mn0sIFtjaGFubmVsLnBvcnQyXSk7Ci0g
ICAgICAgICAgICB9KTsKKyAgICAgICAgICBjaGFubmVsLnBvcnQxLm9ubWVzc2FnZSA9IHQuc3Rl
cF9mdW5jKG9uX21lc3NhZ2UpOworICAgICAgICAgIGYuY29udGVudFdpbmRvdy5uYXZpZ2F0b3Iu
c2VydmljZVdvcmtlci5jb250cm9sbGVyLnBvc3RNZXNzYWdlKAorICAgICAgICAgICAgICB7cG9y
dDpjaGFubmVsLnBvcnQyfSwgW2NoYW5uZWwucG9ydDJdKTsKICAgICAgICAgfSkKLSAgICAgIC50
aGVuKG9uX21lc3NhZ2UpOworICAgICAgLmNhdGNoKHVucmVhY2hlZF9yZWplY3Rpb24odCkpOwog
ICB9LCAnQ2xpZW50LmlkIHJldHVybnMgdGhlIGNsaWVudFwncyBJRC4nKTsKIAogZnVuY3Rpb24g
b25fbWVzc2FnZShlKSB7CkBAIC01Niw1ICs1MCw2IEBAIGZ1bmN0aW9uIG9uX21lc3NhZ2UoZSkg
ewogICBhc3NlcnRfZXF1YWxzKGUuZGF0YVsxXSwgZS5kYXRhWzNdKTsKICAgZnJhbWUxLnJlbW92
ZSgpOwogICBmcmFtZTIucmVtb3ZlKCk7CisgIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5k
X2RvbmUodGVzdCwgc2NvcGUpOwogfQogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9jbGllbnRzLWdldC1jbGllbnQtdHlwZXMuaHR0cHMuaHRtbCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL2NsaWVudHMtZ2V0LWNsaWVudC10eXBlcy5odHRwcy5odG1sCmluZGV4IDYzZTNlNTFi
MzIwMmRlOTI3ZDg5ODMzYjMxMDM1NzkyMzY5YWVjMzkuLjg5N2UzNjg5ZWQzNGYxZjJhYmFmZmZi
NmU0YTZlNDc0MDhiZDFmMDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsaWVudHMt
Z2V0LWNsaWVudC10eXBlcy5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsaWVu
dHMtZ2V0LWNsaWVudC10eXBlcy5odHRwcy5odG1sCkBAIC05LDEzICs5LDExIEBAIHZhciBmcmFt
ZV91cmwgPSBzY29wZSArICctZnJhbWUuaHRtbCc7CiB2YXIgc2hhcmVkX3dvcmtlcl91cmwgPSBz
Y29wZSArICctc2hhcmVkLXdvcmtlci5qcyc7CiB2YXIgd29ya2VyX3VybCA9IHNjb3BlICsgJy13
b3JrZXIuanMnOwogdmFyIGNsaWVudF9pZHMgPSBbXTsKLXZhciByZWdpc3RyYXRpb247CiB2YXIg
ZnJhbWU7CiBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewogICAgIHJldHVybiBzZXJ2aWNlX3dv
cmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3RlcigKICAgICAgICAgdCwgJ3Jlc291cmNlcy9jbGll
bnRzLWdldC13b3JrZXIuanMnLCBzY29wZSkKLSAgICAgIC50aGVuKGZ1bmN0aW9uKHIpIHsKLSAg
ICAgICAgICByZWdpc3RyYXRpb24gPSByOworICAgICAgLnRoZW4oZnVuY3Rpb24ocmVnaXN0cmF0
aW9uKSB7CiAgICAgICAgICAgYWRkX2NvbXBsZXRpb25fY2FsbGJhY2soZnVuY3Rpb24oKSB7IHJl
Z2lzdHJhdGlvbi51bnJlZ2lzdGVyKCk7IH0pOwogICAgICAgICAgIHJldHVybiB3YWl0X2Zvcl9z
dGF0ZSh0LCByZWdpc3RyYXRpb24uaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOwogICAgICAgICB9
KQpAQCAtNjEsMTAgKzU5LDEyIEBAIHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7CiAgICAgICAg
IH0pCiAgICAgICAudGhlbihmdW5jdGlvbihjbGllbnRfaWQpIHsKICAgICAgICAgICBjbGllbnRf
aWRzLnB1c2goY2xpZW50X2lkKTsKKyAgICAgICAgICB2YXIgY2hhbm5lbCA9IG5ldyBNZXNzYWdl
Q2hhbm5lbCgpOwogICAgICAgICAgIHZhciBzYXdfbWVzc2FnZSA9IG5ldyBQcm9taXNlKGZ1bmN0
aW9uKHJlc29sdmUpIHsKLSAgICAgICAgICAgICAgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIub25t
ZXNzYWdlID0gcmVzb2x2ZTsKKyAgICAgICAgICAgICAgY2hhbm5lbC5wb3J0MS5vbm1lc3NhZ2Ug
PSByZXNvbHZlOwogICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgcmVnaXN0cmF0aW9uLmFjdGl2
ZS5wb3N0TWVzc2FnZSh7Y2xpZW50SWRzOiBjbGllbnRfaWRzfSk7CisgICAgICAgICAgZnJhbWUu
Y29udGVudFdpbmRvdy5uYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5jb250cm9sbGVyLnBvc3RNZXNz
YWdlKAorICAgICAgICAgICAgICB7cG9ydDogY2hhbm5lbC5wb3J0MiwgY2xpZW50SWRzOiBjbGll
bnRfaWRzfSwgW2NoYW5uZWwucG9ydDJdKTsKICAgICAgICAgICByZXR1cm4gc2F3X21lc3NhZ2U7
CiAgICAgICAgIH0pCiAgICAgICAudGhlbihmdW5jdGlvbihlKSB7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9jbGllbnRzLWdldC1yZXN1bHRpbmdDbGllbnRJZC5odHRwcy1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGllbnRzLWdldC1yZXN1bHRpbmdDbGllbnRJZC5o
dHRwcy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgyNzQ1ODZl
ODA3ZjJjMmQ3Zjg0YmRmNTVkNjFlYzE4N2Y4NjMwMDUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xpZW50cy1nZXQtcmVz
dWx0aW5nQ2xpZW50SWQuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsOCAr
MCwwIEBACi0KLVBBU1MgZ2xvYmFsIHNldHVwIAotRkFJTCBnZXQocmVzdWx0aW5nQ2xpZW50SWQp
IGZvciBzYW1lLW9yaWdpbiBkb2N1bWVudCBhc3NlcnRfZXF1YWxzOiBwcm9taXNlVmFsdWUgZXhw
ZWN0ZWQgImNsaWVudCIgYnV0IGdvdCAidW5kZWZpbmVkVmFsdWUiCi1GQUlMIGdldChyZXN1bHRp
bmdDbGllbnRJZCkgb24gY3Jvc3Mtb3JpZ2luIHJlZGlyZWN0IGFzc2VydF9lcXVhbHM6IGdldChl
dmVudC5yZXN1bHRpbmdDbGllbnRJZCkgaW4gdGhlIGZldGNoIGV2ZW50IHNob3VsZCBmdWxmaWxs
IGV4cGVjdGVkIChzdHJpbmcpICJmdWxmaWxsZWQiIGJ1dCBnb3QgKHVuZGVmaW5lZCkgdW5kZWZp
bmVkCi1GQUlMIGdldChyZXN1bHRpbmdDbGllbnRJZCkgZm9yIGRvY3VtZW50IHNhbmRib3hlZCBi
eSBDU1AgaGVhZGVyIGFzc2VydF9lcXVhbHM6IGdldChldmVudC5yZXN1bHRpbmdDbGllbnRJZCkg
aW4gdGhlIGZldGNoIGV2ZW50IHNob3VsZCBmdWxmaWxsIGV4cGVjdGVkIChzdHJpbmcpICJmdWxm
aWxsZWQiIGJ1dCBnb3QgKHVuZGVmaW5lZCkgdW5kZWZpbmVkCi1GQUlMIGdldChyZXN1bHRpbmdD
bGllbnRJZCkgZm9yIGRvY3VtZW50IHNhbmRib3hlZCBieSBDU1AgaGVhZGVyIHdpdGggYWxsb3ct
c2FtZS1vcmlnaW4gYXNzZXJ0X2VxdWFsczogZ2V0KGV2ZW50LnJlc3VsdGluZ0NsaWVudElkKSBp
biB0aGUgZmV0Y2ggZXZlbnQgc2hvdWxkIGZ1bGZpbGwgZXhwZWN0ZWQgKHN0cmluZykgImZ1bGZp
bGxlZCIgYnV0IGdvdCAodW5kZWZpbmVkKSB1bmRlZmluZWQKLVBBU1MgZ2xvYmFsIGNsZWFudXAg
Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsaWVudHMtZ2V0LXJlc3VsdGluZ0Ns
aWVudElkLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGllbnRzLWdldC1yZXN1bHRp
bmdDbGllbnRJZC5odHRwcy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzNDE5
Y2YxNGI1MjNkYjQxYWY3MGM3ODk2ZDRhYWE0OTc0NDFmYjliLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsaWVudHMtZ2V0
LXJlc3VsdGluZ0NsaWVudElkLmh0dHBzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxNzcgKzAs
MCBAQAotPCFET0NUWVBFIGh0bWw+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08dGl0bGU+VGVz
dCBjbGllbnRzLmdldChyZXN1bHRpbmdDbGllbnRJZCk8L3RpdGxlPgotPHNjcmlwdCBzcmM9Ii9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii9jb21tb24v
Z2V0LWhvc3QtaW5mby5zdWIuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy90
ZXN0LWhlbHBlcnMuc3ViLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1jb25zdCBzY29wZSA9ICJy
ZXNvdXJjZXMvIjsKLWxldCB3b3JrZXI7Ci0KLS8vIFNldHVwLiBLZWVwIHRoaXMgYXMgdGhlIGZp
cnN0IHByb21pc2VfdGVzdC4KLXByb21pc2VfdGVzdChhc3luYyAodCkgPT4gewotICBjb25zdCBy
ZWdpc3RyYXRpb24gPSBhd2FpdCBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rl
cigKLSAgICAgIHQsICdyZXNvdXJjZXMvZ2V0LXJlc3VsdGluZ0NsaWVudElkLXdvcmtlci5qcycs
Ci0gICAgICBzY29wZSk7Ci0gIHdvcmtlciA9IHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nOwotICBh
d2FpdCB3YWl0X2Zvcl9zdGF0ZSh0LCB3b3JrZXIsICdhY3RpdmF0ZWQnKTsKLX0sICdnbG9iYWwg
c2V0dXAnKTsKLQotLy8gU2VuZHMgfGNvbW1hbmR8IHRvIHRoZSB3b3JrZXIgYW5kIHJldHVybnMg
YSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgdG8gaXRzCi0vLyByZXNwb25zZS4gVGhlcmUgc2hvdWxk
IG9ubHkgYmUgb25lIGluZmxpZ2h0IGNvbW1hbmQgYXQgYSB0aW1lLgotYXN5bmMgZnVuY3Rpb24g
c2VuZENvbW1hbmQoY29tbWFuZCkgewotICBjb25zdCBzYXdfbWVzc2FnZSA9IG5ldyBQcm9taXNl
KChyZXNvbHZlKSA9PiB7Ci0gICAgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIub25tZXNzYWdlID0g
KGV2ZW50KSA9PiB7Ci0gICAgICByZXNvbHZlKGV2ZW50LmRhdGEpOwotICAgIH07Ci0gIH0pOwot
ICB3b3JrZXIucG9zdE1lc3NhZ2UoY29tbWFuZCk7Ci0gIHJldHVybiBzYXdfbWVzc2FnZTsKLX0K
LQotLy8gV3JhcHBlciBmb3IgJ3N0YXJ0VGVzdCcgY29tbWFuZC4gVGVsbHMgdGhlIHdvcmtlciBh
IHRlc3QgaXMgc3RhcnRpbmcsCi0vLyBzbyBpdCByZXNldHMgc3RhdGUgYW5kIGtlZXBzIGl0c2Vs
ZiBhbGl2ZSB1bnRpbCAnZmluaXNoVGVzdCcuCi1hc3luYyBmdW5jdGlvbiBzdGFydFRlc3QodCkg
ewotICBjb25zdCByZXN1bHQgPSBhd2FpdCBzZW5kQ29tbWFuZCh7Y29tbWFuZDogJ3N0YXJ0VGVz
dCd9KTsKLSAgYXNzZXJ0X2VxdWFscyhyZXN1bHQsICdvaycsICdzdGFydFRlc3QnKTsKLQotICB0
LmFkZF9jbGVhbnVwKGFzeW5jICgpID0+IHsKLSAgICByZXR1cm4gZmluaXNoVGVzdCgpOwotICB9
KTsKLX0KLQotLy8gV3JhcHBlciBmb3IgJ2ZpbmlzaFRlc3QnIGNvbW1hbmQuCi1hc3luYyBmdW5j
dGlvbiBmaW5pc2hUZXN0KCkgewotICBjb25zdCByZXN1bHQgPSBhd2FpdCBzZW5kQ29tbWFuZCh7
Y29tbWFuZDogJ2ZpbmlzaFRlc3QnfSk7Ci0gIGFzc2VydF9lcXVhbHMocmVzdWx0LCAnb2snLCAn
ZmluaXNoVGVzdCcpOwotfQotCi0vLyBXcmFwcGVyIGZvciAnZ2V0UmVzdWx0aW5nQ2xpZW50JyBj
b21tYW5kLiBUZWxscyB0aGUgd29ya2VyIHRvIHJldHVybgotLy8gY2xpZW50cy5nZXQoZXZlbnQu
cmVzdWx0aW5nQ2xpZW50SWQpIGZvciB0aGUgbmF2aWdhdGlvbiB0aGF0IG9jY3VycwotLy8gZHVy
aW5nIHRoaXMgdGVzdC4KLS8vCi0vLyBUaGUgcmV0dXJuIHZhbHVlIGRlc2NyaWJlcyBob3cgY2xp
ZW50cy5nZXQoKSBzZXR0bGVkLiBJdCBhbHNvIGluY2x1ZGVzCi0vLyB8cXVlcmllZElkfCB3aGlj
aCBpcyB0aGUgaWQgcGFzc2VkIHRvIGNsaWVudHMuZ2V0KCkgKHRoZSByZXN1bHRpbmdDbGllbnRJ
ZAotLy8gaW4gdGhpcyBjYXNlKS4KLS8vCi0vLyBFeGFtcGxlIHZhbHVlOgotLy8gewotLy8gICBx
dWVyaWVkSWQ6ICdhYmMnLAotLy8gICBwcm9taXNlU3RhdGU6IGZ1bGZpbGxlZCwKLS8vICAgcHJv
bWlzZVZhbHVlOiBjbGllbnQsCi0vLyAgIGNsaWVudDogewotLy8gICAgIGlkOiAnYWJjJywKLS8v
ICAgICB1cmw6ICcvL2V4YW1wbGUuY29tL2NsaWVudCcKLS8vICAgfQotLy8gfQotYXN5bmMgZnVu
Y3Rpb24gZ2V0UmVzdWx0aW5nQ2xpZW50KCkgewotICByZXR1cm4gc2VuZENvbW1hbmQoe2NvbW1h
bmQ6ICdnZXRSZXN1bHRpbmdDbGllbnQnfSk7Ci19Ci0KLS8vIFdyYXBwZXIgZm9yICdnZXRDbGll
bnQnIGNvbW1hbmQuIFRlbGxzIHRoZSB3b3JrZXIgdG8gcmV0dXJuCi0vLyBjbGllbnRzLmdldCh8
aWR8KS4gVGhlIHJldHVybiB2YWx1ZSBpcyBhcyBpbiB0aGUgZ2V0UmVzdWx0aW5nQ2xpZW50KCkK
LS8vIGRvY3VtZW50YXRpb24uCi1hc3luYyBmdW5jdGlvbiBnZXRDbGllbnQoaWQpIHsKLSAgcmV0
dXJuIHNlbmRDb21tYW5kKHtjb21tYW5kOiAnZ2V0Q2xpZW50JywgaWQ6IGlkfSk7Ci19Ci0KLS8v
IE5hdmlnYXRlcyB0byB8dXJsfC4gUmV0dXJucyB0aGUgcmVzdWx0IG9mIGNsaWVudHMuZ2V0KCkg
b24gdGhlCi0vLyByZXN1bHRpbmdDbGllbnRJZC4KLWFzeW5jIGZ1bmN0aW9uIG5hdmlnYXRlQW5k
R2V0UmVzdWx0aW5nQ2xpZW50KHQsIHVybCkgewotICBjb25zdCByZXN1bHRQcm9taXNlID0gZ2V0
UmVzdWx0aW5nQ2xpZW50KCk7Ci0gIGNvbnN0IGZyYW1lID0gYXdhaXQgd2l0aF9pZnJhbWUodXJs
KTsKLSAgdC5hZGRfY2xlYW51cCgoKSA9PiB7Ci0gICAgZnJhbWUucmVtb3ZlKCk7Ci0gIH0pOwot
ICBjb25zdCByZXN1bHQgPSBhd2FpdCByZXN1bHRQcm9taXNlOwotICBjb25zdCByZXN1bHRpbmdD
bGllbnRJZCA9IHJlc3VsdC5xdWVyaWVkSWQ7Ci0KLSAgLy8gRmlyc3QgdGVzdCBjbGllbnRzLmdl
dChldmVudC5yZXN1bHRpbmdDbGllbnRJZCkgaW5zaWRlIHRoZSBmZXRjaCBldmVudC4gVGhlCi0g
IC8vIGJlaGF2aW9yIG9mIHRoaXMgaXMgc3VidGxlIGR1ZSB0byB0aGUgdXNlIG9mIGlmcmFtZXMg
YW5kIGFib3V0OmJsYW5rCi0gIC8vIHJlcGxhY2VtZW50LiBUaGUgc3BlYyBwcm9iYWJseSByZXF1
aXJlcyB0aGF0IGl0IHJlc29sdmUgdG8gdGhlIG9yaWdpbmFsCi0gIC8vIGFib3V0OmJsYW5rIGNs
aWVudCwgYW5kIHRoYXQgbGF0ZXIgdGhhdCBjbGllbnQgc2hvdWxkIGJlIGRpc2NhcmRlZCBhZnRl
cgotICAvLyBsb2FkIGlmIHRoZSBsb2FkIHdhcyB0byBhbm90aGVyIG9yaWdpbi4gSW1wbGVtZW50
YXRpb25zIG1pZ2h0IGRpZmZlci4gRm9yCi0gIC8vIG5vdywgdGhpcyB0ZXN0IGp1c3QgYXNzZXJ0
cyB0aGF0IHRoZSBwcm9taXNlIHJlc29sdmVzLiBTZWUKLSAgLy8gaHR0cHM6Ly9naXRodWIuY29t
L3czYy9TZXJ2aWNlV29ya2VyL2lzc3Vlcy8xMzg1LgotICBhc3NlcnRfZXF1YWxzKHJlc3VsdC5w
cm9taXNlU3RhdGUsICdmdWxmaWxsZWQnLAotICAgICAgICAgICAgICAgICdnZXQoZXZlbnQucmVz
dWx0aW5nQ2xpZW50SWQpIGluIHRoZSBmZXRjaCBldmVudCBzaG91bGQgZnVsZmlsbCcpOwotCi0g
IC8vIFRlc3QgY2xpZW50cy5nZXQoKSBvbiB0aGUgcHJldmlvdXMgcmVzdWx0aW5nQ2xpZW50SWQg
YWdhaW4uIEJ5IHRoaXMKLSAgLy8gdGltZSB0aGUgbG9hZCBmaW5pc2hlZCwgc28gaXQncyBtb3Jl
IHN0cmFpZ2h0Zm9yd2FyZCBob3cgdGhpcyBwcm9taXNlCi0gIC8vIHNob3VsZCBzZXR0bGUuIFJl
dHVybiB0aGUgcmVzdWx0IG9mIHRoaXMgcHJvbWlzZS4KLSAgcmV0dXJuIGF3YWl0IGdldENsaWVu
dChyZXN1bHRpbmdDbGllbnRJZCk7Ci19Ci0KLS8vIFRlc3QgZ2V0KHJlc3VsdGluZ0NsaWVudElk
KSBpbiB0aGUgYmFzaWMgc2FtZS1vcmlnaW4gY2FzZS4KLXByb21pc2VfdGVzdChhc3luYyAodCkg
PT4gewotICBhd2FpdCBzdGFydFRlc3QodCk7Ci0KLSAgY29uc3QgdXJsID0gbmV3IFVSTCgncmVz
b3VyY2VzL2VtcHR5Lmh0bWwnLCB3aW5kb3cubG9jYXRpb24pOwotICBjb25zdCByZXN1bHQgPSBh
d2FpdCBuYXZpZ2F0ZUFuZEdldFJlc3VsdGluZ0NsaWVudCh0LCB1cmwpOwotICBhc3NlcnRfZXF1
YWxzKHJlc3VsdC5wcm9taXNlU3RhdGUsICdmdWxmaWxsZWQnLCAncHJvbWlzZVN0YXRlJyk7Ci0g
IGFzc2VydF9lcXVhbHMocmVzdWx0LnByb21pc2VWYWx1ZSwgJ2NsaWVudCcsICdwcm9taXNlVmFs
dWUnKTsKLSAgYXNzZXJ0X2VxdWFscyhyZXN1bHQuY2xpZW50LnVybCwgdXJsLmhyZWYsICdjbGll
bnQudXJsJywpOwotICBhc3NlcnRfZXF1YWxzKHJlc3VsdC5jbGllbnQuaWQsIHJlc3VsdC5xdWVy
aWVkSWQsICdjbGllbnQuaWQnKTsKLX0sICdnZXQocmVzdWx0aW5nQ2xpZW50SWQpIGZvciBzYW1l
LW9yaWdpbiBkb2N1bWVudCcpOwotCi0vLyBUZXN0IGdldChyZXN1bHRpbmdDbGllbnRJZCkgd2hl
biB0aGUgcmVzcG9uc2UgcmVkaXJlY3RzIHRvIGFub3RoZXIgb3JpZ2luLgotcHJvbWlzZV90ZXN0
KGFzeW5jICh0KSA9PiB7Ci0gIGF3YWl0IHN0YXJ0VGVzdCh0KTsKLQotICAvLyBOYXZpZ2F0ZSB0
byBhIFVSTCB0aGF0IHJlZGlyZWN0cyB0byBhbm90aGVyIG9yaWdpbi4KLSAgY29uc3QgYmFzZV91
cmwgPSBuZXcgVVJMKCcuJywgd2luZG93LmxvY2F0aW9uKTsKLSAgY29uc3QgaG9zdF9pbmZvID0g
Z2V0X2hvc3RfaW5mbygpOwotICBjb25zdCBvdGhlcl9vcmlnaW5fdXJsID0gbmV3IFVSTChiYXNl
X3VybC5wYXRobmFtZSArICdyZXNvdXJjZXMvZW1wdHkuaHRtbCcsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGhvc3RfaW5mb1snSFRUUFNfUkVNT1RFX09SSUdJTiddKTsKLSAg
Y29uc3QgdXJsID0gbmV3IFVSTCgncmVzb3VyY2VzL2VtcHR5Lmh0bWwnLCB3aW5kb3cubG9jYXRp
b24pOwotICBjb25zdCBwaXBlID0gYHN0YXR1cygzMDIpfGhlYWRlcihMb2NhdGlvbiwgJHtvdGhl
cl9vcmlnaW5fdXJsfSlgOwotICB1cmwuc2VhcmNoUGFyYW1zLnNldCgncGlwZScsIHBpcGUpOwot
Ci0gIC8vIFRoZSBvcmlnaW5hbCByZXNlcnZlZCBjbGllbnQgc2hvdWxkIGhhdmUgYmVlbiBkaXNj
YXJkZWQgb24gY3Jvc3Mtb3JpZ2luCi0gIC8vIHJlZGlyZWN0LgotICBjb25zdCByZXN1bHQgPSBh
d2FpdCBuYXZpZ2F0ZUFuZEdldFJlc3VsdGluZ0NsaWVudCh0LCB1cmwpOwotICBhc3NlcnRfZXF1
YWxzKHJlc3VsdC5wcm9taXNlU3RhdGUsICdmdWxmaWxsZWQnLCAncHJvbWlzZVN0YXRlJyk7Ci0g
IGFzc2VydF9lcXVhbHMocmVzdWx0LnByb21pc2VWYWx1ZSwgJ3VuZGVmaW5lZFZhbHVlJywgJ3By
b21pc2VWYWx1ZScpOwotfSwgJ2dldChyZXN1bHRpbmdDbGllbnRJZCkgb24gY3Jvc3Mtb3JpZ2lu
IHJlZGlyZWN0Jyk7Ci0KLS8vIFRlc3QgZ2V0KHJlc3VsdGluZ0NsaWVudElkKSB3aGVuIHRoZSBk
b2N1bWVudCBpcyBzYW5kYm94ZWQgdG8gYSB1bmlxdWUKLS8vIG9yaWdpbiB1c2luZyBhIENTUCBI
VFRQIHJlc3BvbnNlIGhlYWRlci4KLXByb21pc2VfdGVzdChhc3luYyAodCkgPT4gewotICBhd2Fp
dCBzdGFydFRlc3QodCk7Ci0KLSAgLy8gTmF2aWdhdGUgdG8gYSBVUkwgdGhhdCBoYXMgQ1NQIHNh
bmRib3hpbmcgc2V0IGluIHRoZSBIVFRQIHJlc3BvbnNlIGhlYWRlci4KLSAgY29uc3QgdXJsID0g
bmV3IFVSTCgncmVzb3VyY2VzL2VtcHR5Lmh0bWwnLCB3aW5kb3cubG9jYXRpb24pOwotICBjb25z
dCBwaXBlID0gJ2hlYWRlcihDb250ZW50LVNlY3VyaXR5LVBvbGljeSwgc2FuZGJveCknOwotICB1
cmwuc2VhcmNoUGFyYW1zLnNldCgncGlwZScsIHBpcGUpOwotCi0gIC8vIFRoZSBvcmlnaW5hbCBy
ZXNlcnZlZCBjbGllbnQgc2hvdWxkIGhhdmUgYmVlbiBkaXNjYXJkZWQgdXBvbiBsb2FkaW5nCi0g
IC8vIHRoZSBzYW5kYm94ZWQgZG9jdW1lbnQuCi0gIGNvbnN0IHJlc3VsdCA9IGF3YWl0IG5hdmln
YXRlQW5kR2V0UmVzdWx0aW5nQ2xpZW50KHQsIHVybCk7Ci0gIGFzc2VydF9lcXVhbHMocmVzdWx0
LnByb21pc2VTdGF0ZSwgJ2Z1bGZpbGxlZCcsICdwcm9taXNlU3RhdGUnKTsKLSAgYXNzZXJ0X2Vx
dWFscyhyZXN1bHQucHJvbWlzZVZhbHVlLCAndW5kZWZpbmVkVmFsdWUnLCAncHJvbWlzZVZhbHVl
Jyk7Ci19LCAnZ2V0KHJlc3VsdGluZ0NsaWVudElkKSBmb3IgZG9jdW1lbnQgc2FuZGJveGVkIGJ5
IENTUCBoZWFkZXInKTsKLQotLy8gVGVzdCBnZXQocmVzdWx0aW5nQ2xpZW50SWQpIHdoZW4gdGhl
IGRvY3VtZW50IGlzIHNhbmRib3hlZCB3aXRoCi0vLyBhbGxvdy1zYW1lLW9yaWdpbi4KLXByb21p
c2VfdGVzdChhc3luYyAodCkgPT4gewotICBhd2FpdCBzdGFydFRlc3QodCk7Ci0KLSAgLy8gTmF2
aWdhdGUgdG8gYSBVUkwgdGhhdCBoYXMgQ1NQIHNhbmRib3hpbmcgc2V0IGluIHRoZSBIVFRQIHJl
c3BvbnNlIGhlYWRlci4KLSAgY29uc3QgdXJsID0gbmV3IFVSTCgncmVzb3VyY2VzL2VtcHR5Lmh0
bWwnLCB3aW5kb3cubG9jYXRpb24pOwotICBjb25zdCBwaXBlID0gJ2hlYWRlcihDb250ZW50LVNl
Y3VyaXR5LVBvbGljeSwgc2FuZGJveCBhbGxvdy1zYW1lLW9yaWdpbiknOwotICB1cmwuc2VhcmNo
UGFyYW1zLnNldCgncGlwZScsIHBpcGUpOwotCi0gIC8vIFRoZSBjbGllbnQgc2hvdWxkIGJlIHRo
ZSBvcmlnaW5hbCByZXNlcnZlZCBjbGllbnQsIGFzIGl0J3Mgc2FtZS1vcmlnaW4uCi0gIGNvbnN0
IHJlc3VsdCA9IGF3YWl0IG5hdmlnYXRlQW5kR2V0UmVzdWx0aW5nQ2xpZW50KHQsIHVybCk7Ci0g
IGFzc2VydF9lcXVhbHMocmVzdWx0LnByb21pc2VTdGF0ZSwgJ2Z1bGZpbGxlZCcsICdwcm9taXNl
U3RhdGUnKTsKLSAgYXNzZXJ0X2VxdWFscyhyZXN1bHQucHJvbWlzZVZhbHVlLCAnY2xpZW50Jywg
J3Byb21pc2VWYWx1ZScpOwotICBhc3NlcnRfZXF1YWxzKHJlc3VsdC5jbGllbnQudXJsLCB1cmwu
aHJlZiwgJ2NsaWVudC51cmwnLCk7Ci0gIGFzc2VydF9lcXVhbHMocmVzdWx0LmNsaWVudC5pZCwg
cmVzdWx0LnF1ZXJpZWRJZCwgJ2NsaWVudC5pZCcpOwotfSwgJ2dldChyZXN1bHRpbmdDbGllbnRJ
ZCkgZm9yIGRvY3VtZW50IHNhbmRib3hlZCBieSBDU1AgaGVhZGVyIHdpdGggYWxsb3ctc2FtZS1v
cmlnaW4nKTsKLQotLy8gQ2xlYW51cC4gS2VlcCB0aGlzIGFzIHRoZSBsYXN0IHByb21pc2VfdGVz
dC4KLXByb21pc2VfdGVzdChhc3luYyAodCkgPT4gewotICByZXR1cm4gc2VydmljZV93b3JrZXJf
dW5yZWdpc3Rlcih0LCBzY29wZSk7Ci19LCAnZ2xvYmFsIGNsZWFudXAnKTsKLTwvc2NyaXB0Pgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xpZW50cy1nZXQuaHR0cHMtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xpZW50cy1nZXQuaHR0cHMtZXhwZWN0ZWQudHh0Cmlu
ZGV4IDBmOWM0MTFhOWI1NjU2ZDc1NDE5MzAxMWVmYjcxOGFiNTBlYzYzZDQuLjE3ZDE5ZTRhM2Jl
NDMwOTQ2ZDdlYjEyMzExODMzZDMwYzMwZjIwMTQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL2NsaWVudHMtZ2V0Lmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9jbGllbnRzLWdldC5odHRwcy1leHBlY3RlZC50eHQKQEAgLTEsNSArMSwzIEBACiAKIEZBSUwg
VGVzdCBDbGllbnRzLmdldCgpIGFzc2VydF9hcnJheV9lcXVhbHM6IHByb3BlcnR5IDEsIGV4cGVj
dGVkIGZhbHNlIGJ1dCBnb3QgdHJ1ZQotRkFJTCBUZXN0IHN1Y2Nlc3NmdWwgQ2xpZW50cy5nZXQo
RmV0Y2hFdmVudC5yZXN1bHRpbmdDbGllbnRJZCkgYXNzZXJ0X2ZhbHNlOiBDbGllbnRzLmdldChG
ZXRjaEV2ZW50LnJlc3VsdGluZ0NsaWVudElkKSByZXNvbHZlZCB3aXRoIGEgQ2xpZW50IGV4cGVj
dGVkIGZhbHNlIGdvdCB0cnVlCi1QQVNTIFRlc3QgdW5zdWNjZXNzZnVsIENsaWVudHMuZ2V0KEZl
dGNoRXZlbnQucmVzdWx0aW5nQ2xpZW50SWQpIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9jbGllbnRzLWdldC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xpZW50cy1n
ZXQuaHR0cHMuaHRtbAppbmRleCA0Y2ZiZjU5NWNhZGVlZWE1ZmM4YTUwODkxMjdjNTY4N2VjMTc0
ZjUzLi42OGM2ZDdmN2FjMDJhMzE2ODU2YTQwNWY2NTc5ZWIxOTFlNzM4OTI0IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9jbGllbnRzLWdldC5odHRwcy5odG1sCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL2NsaWVudHMtZ2V0Lmh0dHBzLmh0bWwKQEAgLTQsMTUxICs0LDY1IEBACiA8c2Ny
aXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CiA8c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL3Rlc3QtaGVscGVycy5zdWIuanMiPjwvc2NyaXB0PgogPHNjcmlw
dD4KK3ZhciBzY29wZSA9ICdyZXNvdXJjZXMvY2xpZW50cy1nZXQtZnJhbWUuaHRtbCc7Cit2YXIg
Y2xpZW50X2lkcyA9IFtdOwordmFyIGZyYW1lOworcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsK
KyAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIoCisgICAg
ICAgIHQsICdyZXNvdXJjZXMvY2xpZW50cy1nZXQtd29ya2VyLmpzJywgc2NvcGUpCisgICAgICAu
dGhlbihmdW5jdGlvbihyZWdpc3RyYXRpb24pIHsKKyAgICAgICAgICBhZGRfY29tcGxldGlvbl9j
YWxsYmFjayhmdW5jdGlvbigpIHsgcmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIoKTsgfSk7CisgICAg
ICAgICAgcmV0dXJuIHdhaXRfZm9yX3N0YXRlKHQsIHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLCAn
YWN0aXZhdGVkJyk7CisgICAgICAgIH0pCisgICAgICAudGhlbihmdW5jdGlvbigpIHsKKyAgICAg
ICAgICByZXR1cm4gd2l0aF9pZnJhbWUoc2NvcGUgKyAnIzEnKTsKKyAgICAgICAgfSkKKyAgICAg
IC50aGVuKGZ1bmN0aW9uKGZyYW1lMSkgeworICAgICAgICAgIGFkZF9jb21wbGV0aW9uX2NhbGxi
YWNrKGZ1bmN0aW9uKCkgeyBmcmFtZTEucmVtb3ZlKCk7IH0pOworICAgICAgICAgIGZyYW1lMS5m
b2N1cygpOworICAgICAgICAgIHJldHVybiB3YWl0X2Zvcl9jbGllbnRJZCgpOworICAgICAgICB9
KQorICAgICAgLnRoZW4oZnVuY3Rpb24oY2xpZW50X2lkKSB7CisgICAgICAgICAgY2xpZW50X2lk
cy5wdXNoKGNsaWVudF9pZCk7CisgICAgICAgICAgcmV0dXJuIHdpdGhfaWZyYW1lKHNjb3BlICsg
JyMyJyk7CisgICAgICAgIH0pCisgICAgICAudGhlbihmdW5jdGlvbihmcmFtZTIpIHsKKyAgICAg
ICAgICBmcmFtZSA9IGZyYW1lMjsKKyAgICAgICAgICBhZGRfY29tcGxldGlvbl9jYWxsYmFjayhm
dW5jdGlvbigpIHsgZnJhbWUyLnJlbW92ZSgpOyB9KTsKKyAgICAgICAgICByZXR1cm4gd2FpdF9m
b3JfY2xpZW50SWQoKTsKKyAgICAgICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKGNsaWVudF9p
ZCkgeworICAgICAgICAgIGNsaWVudF9pZHMucHVzaChjbGllbnRfaWQsICdpbnZhbGlkLWlkJyk7
CisgICAgICAgICAgdmFyIGNoYW5uZWwgPSBuZXcgTWVzc2FnZUNoYW5uZWwoKTsKKyAgICAgICAg
ICB2YXIgc2F3X21lc3NhZ2UgPSBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlKSB7CisgICAg
ICAgICAgICAgIGNoYW5uZWwucG9ydDEub25tZXNzYWdlID0gcmVzb2x2ZTsKKyAgICAgICAgICAg
IH0pOworICAgICAgICAgIGZyYW1lLmNvbnRlbnRXaW5kb3cubmF2aWdhdG9yLnNlcnZpY2VXb3Jr
ZXIuY29udHJvbGxlci5wb3N0TWVzc2FnZSgKKyAgICAgICAgICAgICAge3BvcnQ6IGNoYW5uZWwu
cG9ydDIsIGNsaWVudElkczogY2xpZW50X2lkc30sIFtjaGFubmVsLnBvcnQyXSk7CisgICAgICAg
ICAgcmV0dXJuIHNhd19tZXNzYWdlOworICAgICAgICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24o
ZSkgeworICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS5kYXRhLmxlbmd0aCwgMyk7CisgICAgICAg
ICAgYXNzZXJ0X2FycmF5X2VxdWFscyhlLmRhdGFbMF0sIGV4cGVjdGVkWzBdKTsKKyAgICAgICAg
ICBhc3NlcnRfYXJyYXlfZXF1YWxzKGUuZGF0YVsxXSwgZXhwZWN0ZWRbMV0pOworICAgICAgICAg
IGFzc2VydF9lcXVhbHMoZS5kYXRhWzJdLCBleHBlY3RlZFsyXSk7CisgICAgICAgIH0pOworICB9
LCAnVGVzdCBDbGllbnRzLmdldCgpJyk7CisKIGZ1bmN0aW9uIHdhaXRfZm9yX2NsaWVudElkKCkg
ewogICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7Ci0gICAg
d2luZG93Lm9ubWVzc2FnZSA9IGUgPT4gewotICAgICAgcmVzb2x2ZShlLmRhdGEuY2xpZW50SWQp
OwotICAgIH07Ci0gIH0pOworICAgICAgZnVuY3Rpb24gZ2V0X2NsaWVudF9pZChlKSB7CisgICAg
ICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgZ2V0X2NsaWVudF9pZCk7
CisgICAgICAgIHJlc29sdmUoZS5kYXRhLmNsaWVudElkKTsKKyAgICAgIH0KKyAgICAgIHdpbmRv
dy5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgZ2V0X2NsaWVudF9pZCwgZmFsc2UpOworICAg
IH0pOwogfQogCi1wcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7Ci0gIC8vIFJlZ2lzdGVyIHNlcnZp
Y2Ugd29ya2VyLgotICBjb25zdCBzY29wZSA9ICdyZXNvdXJjZXMvY2xpZW50cy1nZXQtZnJhbWUu
aHRtbCc7Ci0gIGNvbnN0IGNsaWVudF9pZHMgPSBbXTsKLSAgY29uc3QgcmVnaXN0cmF0aW9uID0g
YXdhaXQgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIoCi0gICAgdCwgJ3Jl
c291cmNlcy9jbGllbnRzLWdldC13b3JrZXIuanMnLCBzY29wZSk7Ci0gIHQuYWRkX2NsZWFudXAo
KCkgPT4gcmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIoKSk7Ci0gIGF3YWl0IHdhaXRfZm9yX3N0YXRl
KHQsIHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7Ci0KLSAgLy8gUHJlcGFy
ZSBmb3IgdGVzdCBjYXNlcy4KLSAgLy8gQ2FzZSAxOiBmcmFtZTEgd2hpY2ggaXMgZm9jdXNlZC4K
LSAgY29uc3QgZnJhbWUxID0gYXdhaXQgd2l0aF9pZnJhbWUoc2NvcGUgKyAnIzEnKTsKLSAgdC5h
ZGRfY2xlYW51cCgoKSA9PiBmcmFtZTEucmVtb3ZlKCkpOwotICBmcmFtZTEuZm9jdXMoKTsKLSAg
Y2xpZW50X2lkcy5wdXNoKGF3YWl0IHdhaXRfZm9yX2NsaWVudElkKCkpOwotICAvLyBDYXNlIDI6
IGZyYW1lMiB3aGljaCBpcyBub3QgZm9jdXNlZC4KLSAgY29uc3QgZnJhbWUyID0gYXdhaXQgd2l0
aF9pZnJhbWUoc2NvcGUgKyAnIzInKTsKLSAgdC5hZGRfY2xlYW51cCgoKSA9PiAgZnJhbWUyLnJl
bW92ZSgpKTsKLSAgY2xpZW50X2lkcy5wdXNoKGF3YWl0IHdhaXRfZm9yX2NsaWVudElkKCkpOwot
ICAvLyBDYXNlIDM6IGludmFsaWQgaWQuCi0gIGNsaWVudF9pZHMucHVzaCgnaW52YWxpZC1pZCcp
OwotCi0gIC8vIENhbGwgY2xpZW50cy5nZXQoKSBmb3IgZWFjaCBpZCBvbiB0aGUgc2VydmljZSB3
b3JrZXIuCi0gIGNvbnN0IG1lc3NhZ2VfZXZlbnQgPSBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZl
ID0+IHsKLSAgICBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5vbm1lc3NhZ2UgPSByZXNvbHZlOwot
ICAgIHJlZ2lzdHJhdGlvbi5hY3RpdmUucG9zdE1lc3NhZ2Uoe2NsaWVudElkczogY2xpZW50X2lk
c30pOwotICB9KTsKLQotICBjb25zdCBleHBlY3RlZCA9IFsKK3ZhciBleHBlY3RlZCA9IFsKICAg
ICAvLyB2aXNpYmlsaXR5U3RhdGUsIGZvY3VzZWQsIHVybCwgdHlwZSwgZnJhbWVUeXBlCiAgICAg
Wyd2aXNpYmxlJywgdHJ1ZSwgbm9ybWFsaXplVVJMKHNjb3BlKSArICcjMScsICd3aW5kb3cnLCAn
bmVzdGVkJ10sCiAgICAgWyd2aXNpYmxlJywgZmFsc2UsIG5vcm1hbGl6ZVVSTChzY29wZSkgKyAn
IzInLCAnd2luZG93JywgJ25lc3RlZCddLAogICAgIHVuZGVmaW5lZAotICBdOwotICBhc3NlcnRf
ZXF1YWxzKG1lc3NhZ2VfZXZlbnQuZGF0YS5sZW5ndGgsIDMpOwotICBhc3NlcnRfYXJyYXlfZXF1
YWxzKG1lc3NhZ2VfZXZlbnQuZGF0YVswXSwgZXhwZWN0ZWRbMF0pOwotICBhc3NlcnRfYXJyYXlf
ZXF1YWxzKG1lc3NhZ2VfZXZlbnQuZGF0YVsxXSwgZXhwZWN0ZWRbMV0pOwotICBhc3NlcnRfZXF1
YWxzKG1lc3NhZ2VfZXZlbnQuZGF0YVsyXSwgZXhwZWN0ZWRbMl0pOwotfSwgJ1Rlc3QgQ2xpZW50
cy5nZXQoKScpOwotCi1wcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7Ci0gIC8vIFJlZ2lzdGVyIHNl
cnZpY2Ugd29ya2VyLgotICBjb25zdCBzY29wZSA9ICdyZXNvdXJjZXMvc2ltcGxlLmh0bWwnOwot
ICBjb25zdCByZWdpc3RyYXRpb24gPSBhd2FpdCBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2Fu
ZF9yZWdpc3RlcigKLSAgICB0LCAncmVzb3VyY2VzL2NsaWVudHMtZ2V0LXJlc3VsdGluZ0NsaWVu
dElkLXdvcmtlci5qcycsIHNjb3BlKQotICB0LmFkZF9jbGVhbnVwKCgpID0+ICByZWdpc3RyYXRp
b24udW5yZWdpc3RlcigpKTsKLSAgYXdhaXQgd2FpdF9mb3Jfc3RhdGUodCwgcmVnaXN0cmF0aW9u
Lmluc3RhbGxpbmcsICdhY3RpdmF0ZWQnKTsKLSAgY29uc3Qgd29ya2VyID0gcmVnaXN0cmF0aW9u
LmFjdGl2ZTsKLQotICAvLyBMb2FkIGZyYW1lIHdpdGhpbiB0aGUgc2NvcGUuCi0gIGNvbnN0IGZy
YW1lID0gYXdhaXQgd2l0aF9pZnJhbWUoc2NvcGUpOwotICB0LmFkZF9jbGVhbnVwKCgpID0+IGZy
YW1lLnJlbW92ZSgpKTsKLSAgZnJhbWUuZm9jdXMoKTsKLQotICAvLyBHZXQgcmVzdWx0aW5nIGNs
aWVudCBpZC4KLSAgY29uc3QgcmVzdWx0aW5nQ2xpZW50SWQgPSBhd2FpdCBuZXcgUHJvbWlzZShy
ZXNvbHZlID0+IHsKLSAgICBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5vbm1lc3NhZ2UgPSBlID0+
IHsKLSAgICAgIGlmIChlLmRhdGEubXNnID09ICdnZXRSZXN1bHRpbmdDbGllbnRJZCcpIHsKLSAg
ICAgICAgcmVzb2x2ZShlLmRhdGEucmVzdWx0aW5nQ2xpZW50SWQpOwotICAgICAgfQotICAgIH07
Ci0gICAgd29ya2VyLnBvc3RNZXNzYWdlKHttc2c6ICdnZXRSZXN1bHRpbmdDbGllbnRJZCd9KTsK
LSAgfSk7Ci0KLSAgLy8gUXVlcnkgc2VydmljZSB3b3JrZXIgZm9yIGNsaWVudHMuZ2V0KHJlc3Vs
dGluZ0NsaWVudElkKS4KLSAgY29uc3QgaXNSZXN1bHRpbmdDbGllbnRVbmRlZmluZWQgPSBhd2Fp
dCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHsKLSAgICBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5v
bm1lc3NhZ2UgPSBlID0+IHsKLSAgICAgIGlmIChlLmRhdGEubXNnID09ICdnZXRJc1Jlc3VsdGlu
Z0NsaWVudFVuZGVmaW5lZCcpIHsKLSAgICAgICAgcmVzb2x2ZShlLmRhdGEuaXNSZXN1bHRpbmdD
bGllbnRVbmRlZmluZWQpOwotICAgICAgfQotICAgIH07Ci0gICAgd29ya2VyLnBvc3RNZXNzYWdl
KHttc2c6ICdnZXRJc1Jlc3VsdGluZ0NsaWVudFVuZGVmaW5lZCcsCi0gICAgICAgICAgICAgICAg
ICAgICAgICByZXN1bHRpbmdDbGllbnRJZH0pOwotICB9KTsKLQotICBhc3NlcnRfZmFsc2UoCi0g
ICAgaXNSZXN1bHRpbmdDbGllbnRVbmRlZmluZWQsCi0gICAgJ0NsaWVudHMuZ2V0KEZldGNoRXZl
bnQucmVzdWx0aW5nQ2xpZW50SWQpIHJlc29sdmVkIHdpdGggYSBDbGllbnQnKTsKLX0sICdUZXN0
IHN1Y2Nlc3NmdWwgQ2xpZW50cy5nZXQoRmV0Y2hFdmVudC5yZXN1bHRpbmdDbGllbnRJZCknKTsK
LQotcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewotICAvLyBSZWdpc3RlciBzZXJ2aWNlIHdvcmtl
ci4KLSAgY29uc3Qgc2NvcGUgPSAncmVzb3VyY2VzL3NpbXBsZS5odG1sP2ZhaWwnOwotICBjb25z
dCByZWdpc3RyYXRpb24gPSBhd2FpdCBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdp
c3RlcigKLSAgICB0LCAncmVzb3VyY2VzL2NsaWVudHMtZ2V0LXJlc3VsdGluZ0NsaWVudElkLXdv
cmtlci5qcycsIHNjb3BlKTsKLSAgdC5hZGRfY2xlYW51cCgoKSA9PiAgcmVnaXN0cmF0aW9uLnVu
cmVnaXN0ZXIoKSk7Ci0gIGF3YWl0IHdhaXRfZm9yX3N0YXRlKHQsIHJlZ2lzdHJhdGlvbi5pbnN0
YWxsaW5nLCAnYWN0aXZhdGVkJyk7Ci0KLSAgLy8gTG9hZCBmcmFtZSwgYW5kIGRlc3Ryb3kgaXQg
d2hpbGUgbG9hZGluZy4KLSAgY29uc3Qgd29ya2VyID0gcmVnaXN0cmF0aW9uLmFjdGl2ZTsKLSAg
bGV0IGZyYW1lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaWZyYW1lJyk7Ci0gIGZyYW1lLnNy
YyA9IHNjb3BlOwotICB0LmFkZF9jbGVhbnVwKCgpID0+IHsKLSAgICBpZiAoZnJhbWUpIHsKLSAg
ICAgIGZyYW1lLnJlbW92ZSgpOwotICAgIH0KLSAgfSk7Ci0KLSAgYXdhaXQgbmV3IFByb21pc2Uo
cmVzb2x2ZSA9PiB7Ci0gICAgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIub25tZXNzYWdlID0gZSA9
PiB7Ci0gICAgICAvLyBUaGUgc2VydmljZSB3b3JrZXIgcG9zdHMgYSBtZXNzYWdlIHRvIHJlbW92
ZSB0aGUgaWZyYW1lIGR1cmluZyBmZXRjaAotICAgICAgLy8gZXZlbnQuCi0gICAgICBpZiAoZS5k
YXRhLm1zZyA9PSAnZGVzdHJveVJlc3VsdGluZ0NsaWVudCcpIHsKLSAgICAgICAgZnJhbWUucmVt
b3ZlKCk7Ci0gICAgICAgIGZyYW1lID0gbnVsbDsKLSAgICAgICAgd29ya2VyLnBvc3RNZXNzYWdl
KHttc2c6ICdyZXN1bHRpbmdDbGllbnREZXN0cm95ZWQnfSk7Ci0gICAgICAgIHJlc29sdmUoKTsK
LSAgICAgIH0KLSAgICB9OwotICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZnJhbWUpOwot
ICB9KTsKLQotICByZXN1bHRpbmdEZXN0cm95ZWRDbGllbnRJZCA9IGF3YWl0IG5ldyBQcm9taXNl
KHJlc29sdmUgPT4gewotICAgIG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLm9ubWVzc2FnZSA9IGUg
PT4gewotICAgICAgLy8gVGhlIHdvcmtlciBzZW5kcyBhIG1lc3NhZ2UgYmFjayB3aGVuIGl0IHJl
Y2VpdmVzIHRoZSBtZXNzYWdlCi0gICAgICAvLyAncmVzdWx0aW5nQ2xpZW50RGVzdHJveWVkJyB3
aXRoIHRoZSByZXN1bHRpbmdDbGllbnRJZC4KLSAgICAgIGlmIChlLmRhdGEubXNnID09ICdyZXN1
bHRpbmdDbGllbnREZXN0cm95ZWRBY2snKSB7Ci0gICAgICAgIGFzc2VydF9lcXVhbHMoZnJhbWUs
IG51bGwsICdGcmFtZSBzaG91bGQgYmUgZGVzdHJveWVkIGF0IHRoaXMgcG9pbnQuJyk7Ci0gICAg
ICAgIHJlc29sdmUoZS5kYXRhLnJlc3VsdGluZ0Rlc3Ryb3llZENsaWVudElkKTsKLSAgICAgIH0K
LSAgICB9OwotICB9KTsKLQotICAvLyBRdWVyeSBzZXJ2aWNlIHdvcmtlciBmb3IgY2xpZW50cy5n
ZXQocmVzdWx0aW5nRGVzdHJveWVkQ2xpZW50SWQpLgotICBjb25zdCBpc1Jlc3VsdGluZ0NsaWVu
dFVuZGVmaW5lZCA9IGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gewotICAgIG5hdmlnYXRv
ci5zZXJ2aWNlV29ya2VyLm9ubWVzc2FnZSA9IGUgPT4gewotICAgICAgaWYgKGUuZGF0YS5tc2cg
PT0gJ2dldElzUmVzdWx0aW5nQ2xpZW50VW5kZWZpbmVkJykgewotICAgICAgICByZXNvbHZlKGUu
ZGF0YS5pc1Jlc3VsdGluZ0NsaWVudFVuZGVmaW5lZCk7Ci0gICAgICB9Ci0gICAgfTsKLSAgICB3
b3JrZXIucG9zdE1lc3NhZ2Uoe21zZzogJ2dldElzUmVzdWx0aW5nQ2xpZW50VW5kZWZpbmVkJywK
LSAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdGluZ0NsaWVudElkOiByZXN1bHRpbmdEZXN0
cm95ZWRDbGllbnRJZCB9KTsKLSAgfSk7Ci0KLSAgYXNzZXJ0X3RydWUoCi0gICAgaXNSZXN1bHRp
bmdDbGllbnRVbmRlZmluZWQsCi0gICAgJ0NsaWVudHMuZ2V0KEZldGNoRXZlbnQucmVzdWx0aW5n
Q2xpZW50SWQpIHJlc29sdmVkIHdpdGggYHVuZGVmaW5lZGAnKTsKLX0sICdUZXN0IHVuc3VjY2Vz
c2Z1bCBDbGllbnRzLmdldChGZXRjaEV2ZW50LnJlc3VsdGluZ0NsaWVudElkKScpOwotCitdOwog
PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGllbnRzLW1hdGNoYWxs
LWNsaWVudC10eXBlcy5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xpZW50cy1tYXRj
aGFsbC1jbGllbnQtdHlwZXMuaHR0cHMuaHRtbAppbmRleCBhMmE1NjgxNmE2NTBmYTU0ZDYwNzUw
NTVhNjRlMGYwMDllNTgyOWFjLi4yNDk2NzE3MmE4NGNhMGJmZWE3ZGIzMzdmYjVkOTVkOWNkNGZm
MTE0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGllbnRzLW1hdGNoYWxsLWNsaWVu
dC10eXBlcy5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsaWVudHMtbWF0Y2hh
bGwtY2xpZW50LXR5cGVzLmh0dHBzLmh0bWwKQEAgLTU0LDEwICs1NCw2IEBAIHByb21pc2VfdGVz
dChmdW5jdGlvbih0KSB7CiAgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5k
X3JlZ2lzdGVyKAogICAgICAgICB0LCAncmVzb3VyY2VzL2NsaWVudHMtbWF0Y2hhbGwtd29ya2Vy
LmpzJywgc2NvcGUpCiAgICAgICAudGhlbihmdW5jdGlvbihyZWdpc3RyYXRpb24pIHsKLSAgICAg
ICAgICB0LmFkZF9jbGVhbnVwKGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICByZXR1cm4gc2Vy
dmljZV93b3JrZXJfdW5yZWdpc3Rlcih0LCBzY29wZSk7Ci0gICAgICAgICAgICB9KTsKLQogICAg
ICAgICAgIHJldHVybiB3YWl0X2Zvcl9zdGF0ZSh0LCByZWdpc3RyYXRpb24uaW5zdGFsbGluZywg
J2FjdGl2YXRlZCcpOwogICAgICAgICB9KQogICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7IHJldHVy
biB3aXRoX2lmcmFtZShpZnJhbWVfdXJsKTsgfSkKQEAgLTcwLDcgKzY2LDkgQEAgcHJvbWlzZV90
ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICAgICAgfSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKCkgewog
ICAgICAgICAgIGZyYW1lLnJlbW92ZSgpOwotICAgICAgICB9KTsKKyAgICAgICAgICByZXR1cm4g
c2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfZG9uZSh0LCBzY29wZSk7CisgICAgICAgIH0p
CisgICAgICAuY2F0Y2godW5yZWFjaGVkX3JlamVjdGlvbih0KSk7CiAgIH0sICdWZXJpZnkgbWF0
Y2hBbGwoKSB3aXRoIHdpbmRvdyBjbGllbnQgdHlwZScpOwogCiBwcm9taXNlX3Rlc3QoZnVuY3Rp
b24odCkgewpAQCAtNzgsMTAgKzc2LDYgQEAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKICAg
ICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIoCiAgICAgICAg
IHQsICdyZXNvdXJjZXMvY2xpZW50cy1tYXRjaGFsbC13b3JrZXIuanMnLCBzY29wZSkKICAgICAg
IC50aGVuKGZ1bmN0aW9uKHJlZ2lzdHJhdGlvbikgewotICAgICAgICAgIHQuYWRkX2NsZWFudXAo
ZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lz
dGVyKHQsIHNjb3BlKTsKLSAgICAgICAgICAgIH0pOwotCiAgICAgICAgICAgcmV0dXJuIHdhaXRf
Zm9yX3N0YXRlKHQsIHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7CiAgICAg
ICAgIH0pCiAgICAgICAudGhlbihmdW5jdGlvbigpIHsgcmV0dXJuIHdpdGhfaWZyYW1lKGlmcmFt
ZV91cmwpOyB9KQpAQCAtMTE4LDYgKzExMiw3IEBAIHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7
CiAgICAgICAgIH0pCiAgICAgICAudGhlbihmdW5jdGlvbigpIHsKICAgICAgICAgICBmcmFtZS5y
ZW1vdmUoKTsKKyAgICAgICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRf
ZG9uZSh0LCBzY29wZSk7CiAgICAgICAgIH0pOwogfSwgJ1ZlcmlmeSBtYXRjaEFsbCgpIHdpdGgg
e3dpbmRvdywgc2hhcmVkd29ya2VyLCB3b3JrZXJ9IGNsaWVudCB0eXBlcycpOwogCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGllbnRzLW1hdGNoYWxsLWV4YWN0LWNvbnRyb2xsZXIu
aHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xpZW50cy1tYXRjaGFsbC1l
eGFjdC1jb250cm9sbGVyLmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCBlNDI0NzNlMWY0ZDdhYmQ3
ZjQwZjA5N2MyZmY4YWZiYzM1OTdkZjBjLi45MzBlYzMzYTQ1Zjg3ZTFkNzI4ZGZhNmJlNDExN2Nj
NjM3ZTQ5NGY2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGllbnRzLW1hdGNoYWxs
LWV4YWN0LWNvbnRyb2xsZXIuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL2NsaWVudHMtbWF0Y2hhbGwtZXhhY3QtY29udHJvbGxlci5odHRwcy1leHBlY3RlZC50eHQK
QEAgLTEsNCArMSw0IEBACiAKIAotRkFJTCBUZXN0IENsaWVudHMubWF0Y2hBbGwoKSB3aXRoIGV4
YWN0IGNvbnRyb2xsZXIgYXNzZXJ0X2FycmF5X2VxdWFsczogcHJvcGVydHkgMSwgZXhwZWN0ZWQg
ZmFsc2UgYnV0IGdvdCB0cnVlCitGQUlMIFRlc3QgQ2xpZW50cy5tYXRjaEFsbCgpIHdpdGggZXhh
Y3QgY29udHJvbGxlciBhc3NlcnRfdW5yZWFjaGVkOiB1bmV4cGVjdGVkIHJlamVjdGlvbjogYXNz
ZXJ0X2FycmF5X2VxdWFsczogcHJvcGVydHkgMSwgZXhwZWN0ZWQgZmFsc2UgYnV0IGdvdCB0cnVl
IFJlYWNoZWQgdW5yZWFjaGFibGUgY29kZQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9jbGllbnRzLW1hdGNoYWxsLWV4YWN0LWNvbnRyb2xsZXIuaHR0cHMuaHRtbCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL2NsaWVudHMtbWF0Y2hhbGwtZXhhY3QtY29udHJvbGxlci5odHRwcy5odG1sCmlu
ZGV4IGE2MWM4YWY3MDE5NmFjMjMwYzRiNzA4NTg2MmUxYmZmODQzM2ZlMzguLmVlNjBjNGE2MDc3
ZDc5OWMyNTU3ZTA5NjMyMjI4MWE3MjZkZjlkOGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL2NsaWVudHMtbWF0Y2hhbGwtZXhhY3QtY29udHJvbGxlci5odHRwcy5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL2NsaWVudHMtbWF0Y2hhbGwtZXhhY3QtY29udHJvbGxlci5odHRwcy5o
dG1sCkBAIC01LDYgKzUsNyBAQAogPHNjcmlwdCBzcmM9InJlc291cmNlcy90ZXN0LWhlbHBlcnMu
c3ViLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+CiBjb25zdCBzY29wZSA9ICdyZXNvdXJjZXMvYmxh
bmsuaHRtbD9jbGllbnRzLW1hdGNoQWxsJzsKK2NvbnN0IHQgPSBhc3luY190ZXN0KCdUZXN0IENs
aWVudHMubWF0Y2hBbGwoKSB3aXRoIGV4YWN0IGNvbnRyb2xsZXInKTsKIGxldCBmcmFtZXMgPSBb
XTsKIAogZnVuY3Rpb24gY2hlY2tXb3JrZXJDbGllbnRzKHdvcmtlciwgZXhwZWN0ZWQpIHsKQEAg
LTMyLDEyICszMywxMCBAQCBsZXQgZXhwZWN0ZWQgPSBbCiAgICAgWyd2aXNpYmxlJywgZmFsc2Us
IG5ldyBVUkwoc2NvcGUgKyAnIzInLCBsb2NhdGlvbikudG9TdHJpbmcoKSwgJ3dpbmRvdycsICdu
ZXN0ZWQnXQogXTsKIAotcHJvbWlzZV90ZXN0KHQgPT4gewordC5zdGVwKF8gPT4gewogICAgIGxl
dCBzY3JpcHQgPSAncmVzb3VyY2VzL2NsaWVudHMtbWF0Y2hhbGwtd29ya2VyLmpzJzsKLSAgICBy
ZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgc2NyaXB0LCBz
Y29wZSkKKyAgICBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCBzY3Jp
cHQsIHNjb3BlKQogICAgICAgLnRoZW4ocmVnaXN0cmF0aW9uID0+IHsKLSAgICAgICAgICB0LmFk
ZF9jbGVhbnVwKCgpID0+IHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXIodCwgc2NvcGUpKTsKLQog
ICAgICAgICAgIHJldHVybiB3YWl0X2Zvcl9zdGF0ZSh0LCByZWdpc3RyYXRpb24uaW5zdGFsbGlu
ZywgJ2FjdGl2YXRlZCcpOwogICAgICAgICB9KQogICAgICAgLnRoZW4oXyA9PiB3aXRoX2lmcmFt
ZShzY29wZSArICcjMScpICkKQEAgLTYyLDYgKzYxLDggQEAgcHJvbWlzZV90ZXN0KHQgPT4gewog
ICAgICAgICB9KQogICAgICAgLnRoZW4oXyA9PiB7CiAgICAgICAgICAgZnJhbWVzLmZvckVhY2go
ZiA9PiBmLnJlbW92ZSgpICk7Ci0gICAgICAgIH0pOwotfSwgJ1Rlc3QgQ2xpZW50cy5tYXRjaEFs
bCgpIHdpdGggZXhhY3QgY29udHJvbGxlcicpOworICAgICAgICAgIHNlcnZpY2Vfd29ya2VyX3Vu
cmVnaXN0ZXJfYW5kX2RvbmUodCwgc2NvcGUpOworICAgICAgICB9KQorICAgICAgLmNhdGNoKHVu
cmVhY2hlZF9yZWplY3Rpb24odCkpOworICB9KTsKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvY2xpZW50cy1tYXRjaGFsbC1pbmNsdWRlLXVuY29udHJvbGxlZC5odHRw
cy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xpZW50cy1tYXRjaGFsbC1pbmNsdWRlLXVuY29u
dHJvbGxlZC5odHRwcy5odG1sCmluZGV4IDlmMzRlNTcwOWViM2NiNjA3ZGNkMWI5MWVjODBiNTFj
MzcwNmRjYTYuLjUwYmQ4MTdmNTY4ODdlZDI4N2FjMTRjMTA4ZjhmM2Q3Y2I0ZWU2MzIgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsaWVudHMtbWF0Y2hhbGwtaW5jbHVkZS11bmNvbnRy
b2xsZWQuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGllbnRzLW1hdGNoYWxs
LWluY2x1ZGUtdW5jb250cm9sbGVkLmh0dHBzLmh0bWwKQEAgLTQsMTE0ICs0LDkwIEBACiA8c2Ny
aXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CiA8c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL3Rlc3QtaGVscGVycy5zdWIuanMiPjwvc2NyaXB0PgogPHNjcmlw
dD4KLWZ1bmN0aW9uIHRlc3RfbWF0Y2hhbGwoc2VydmljZV93b3JrZXIsIGV4cGVjdGVkLCBxdWVy
eV9vcHRpb25zKSB7Ci0gIGV4cGVjdGVkLnNvcnQoKGEsIGIpID0+IGFbMl0gPiBiWzJdID8gMSA6
IC0xKTsKLSAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsKLSAgICBj
b25zdCBjaGFubmVsID0gbmV3IE1lc3NhZ2VDaGFubmVsKCk7Ci0gICAgY2hhbm5lbC5wb3J0MS5v
bm1lc3NhZ2UgPSBlID0+IHsKLSAgICAgIGNvbnN0IGRhdGEgPSBlLmRhdGEuZmlsdGVyKGluZm8g
PT4gewotICAgICAgICByZXR1cm4gaW5mb1syXS5pbmRleE9mKCdjbGllbnRzLW1hdGNoYWxsJykg
PiAtMTsKLSAgICAgIH0pOwotICAgICAgZGF0YS5zb3J0KChhLCBiKSA9PiBhWzJdID4gYlsyXSA/
IDEgOiAtMSk7Ci0gICAgICBhc3NlcnRfZXF1YWxzKGRhdGEubGVuZ3RoLCBleHBlY3RlZC5sZW5n
dGgpOwotICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBkYXRhLmxlbmd0aDsgaSsrKQotICAgICAg
ICBhc3NlcnRfYXJyYXlfZXF1YWxzKGRhdGFbaV0sIGV4cGVjdGVkW2ldKTsKLSAgICAgIHJlc29s
dmUoKTsKLSAgICB9OwotICAgIHNlcnZpY2Vfd29ya2VyLnBvc3RNZXNzYWdlKHtwb3J0OmNoYW5u
ZWwucG9ydDIsIG9wdGlvbnM6cXVlcnlfb3B0aW9uc30sCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgW2NoYW5uZWwucG9ydDJdKTsKLSAgfSk7Ci19Cit2YXIgYmFzZV91cmwgPSAncmVz
b3VyY2VzL2JsYW5rLmh0bWwnOyAvLyBUaGlzIGlzIG91dC1vZi1zY29wZS4KK3ZhciBzY29wZSA9
IGJhc2VfdXJsICsgJz9jbGllbnRzLW1hdGNoQWxsLWluY2x1ZGVVbmNvbnRyb2xsZWQnOwordmFy
IGZyYW1lcyA9IFtdOwogCi0vLyBSdW4gY2xpZW50cy5tYXRjaEFsbCB3aXRob3V0IGFuZCB3aXRo
IGluY2x1ZGVVbmNvbnRyb2xsZWQ9dHJ1ZS4KLS8vIChXZSB3YW50IHRvIHJ1biB0aGUgdHdvIHRl
c3RzIHNlcXVlbnRpYWxseSBpbiB0aGUgc2FtZSBwcm9taXNlX3Rlc3QKLS8vIHNvIHRoYXQgd2Ug
Y2FuIHVzZSB0aGUgc2FtZSBzZXQgb2YgaWZyYW1lcyB3aXRob3V0IGludGVmZXJpbmcgZWFjaCBv
dGhlci4KLXByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKLSAgLy8gfGJhc2VfdXJsfCBpcyBvdXQt
b2Ytc2NvcGUuCi0gIGNvbnN0IGJhc2VfdXJsID0gJ3Jlc291cmNlcy9ibGFuay5odG1sP2NsaWVu
dHMtbWF0Y2hhbGwnOwotICBjb25zdCBzY29wZSA9IGJhc2VfdXJsICsgJy1pbmNsdWRlVW5jb250
cm9sbGVkJzsKLQotICBjb25zdCByZWdpc3RyYXRpb24gPQotICAgICAgYXdhaXQgc2VydmljZV93
b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIoCi0gICAgICAgICAgdCwgJ3Jlc291cmNlcy9j
bGllbnRzLW1hdGNoYWxsLXdvcmtlci5qcycsIHNjb3BlKTsKLSAgdC5hZGRfY2xlYW51cCgoKSA9
PiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyKHQsIHNjb3BlKSk7Ci0gIGNvbnN0IHNlcnZpY2Vf
d29ya2VyID0gcmVnaXN0cmF0aW9uLmluc3RhbGxpbmc7Ci0gIGF3YWl0IHdhaXRfZm9yX3N0YXRl
KHQsIHNlcnZpY2Vfd29ya2VyLCAnYWN0aXZhdGVkJyk7Ci0KLSAgLy8gQ3JlYXRlcyAzIGlmcmFt
ZXMsIDIgZm9yIGluLXNjb3BlIGFuZCAxIGZvciBvdXQtb2Ytc2NvcGUuCi0gIGxldCBmcmFtZXMg
PSBbXTsKLSAgZnJhbWVzLnB1c2goYXdhaXQgd2l0aF9pZnJhbWUoYmFzZV91cmwpKTsKLSAgZnJh
bWVzLnB1c2goYXdhaXQgd2l0aF9pZnJhbWUoc2NvcGUgKyAnIzEnKSk7Ci0gIGZyYW1lcy5wdXNo
KGF3YWl0IHdpdGhfaWZyYW1lKHNjb3BlICsgJyMyJykpOwotCi0gIC8vIE1ha2Ugc3VyZSB3ZSBo
YXZlIGZvY3VzIGZvciAnIzInIGZyYW1lIGFuZCBpdHMgcGFyZW50IHdpbmRvdy4KLSAgZnJhbWVz
WzJdLmZvY3VzKCk7Ci0gIGZyYW1lc1syXS5jb250ZW50V2luZG93LmZvY3VzKCk7CisvLyBDcmVh
dGVzIDMgaWZyYW1lcywgMiBmb3IgaW4tc2NvcGUgYW5kIDEgZm9yIG91dC1vZi1zY29wZS4KKy8v
IFRoZSBmcmFtZSBvcGVuZWQgZm9yIHNjb3BlICsgJyMyJyBpcyByZXR1cm5lZCB2aWEgYSBwcm9t
aXNlLgorZnVuY3Rpb24gY3JlYXRlX2lmcmFtZXMoc2NvcGUpIHsKKyAgcmV0dXJuIHdpdGhfaWZy
YW1lKGJhc2VfdXJsKQorICAgIC50aGVuKGZ1bmN0aW9uKGZyYW1lMCkgeworICAgICAgICBmcmFt
ZXMucHVzaChmcmFtZTApOworICAgICAgICByZXR1cm4gd2l0aF9pZnJhbWUoc2NvcGUgKyAnIzEn
KTsKKyAgICAgIH0pCisgICAgLnRoZW4oZnVuY3Rpb24oZnJhbWUxKSB7CisgICAgICAgIGZyYW1l
cy5wdXNoKGZyYW1lMSk7CisgICAgICAgIHJldHVybiB3aXRoX2lmcmFtZShzY29wZSArICcjMicp
OworICAgICAgfSkKKyAgICAudGhlbihmdW5jdGlvbihmcmFtZTIpIHsKKyAgICAgICAgZnJhbWVz
LnB1c2goZnJhbWUyKTsKKyAgICAgICAgcmV0dXJuIGZyYW1lMjsKKyAgICAgIH0pCit9CiAKLSAg
Y29uc3QgZXhwZWN0ZWRfd2l0aG91dF9pbmNsdWRlX3VuY29udHJvbGxlZCA9IFsKK3ZhciBleHBl
Y3RlZF93aXRob3V0X2luY2x1ZGVfdW5jb250cm9sbGVkID0gWwogICAgIC8vIHZpc2liaWxpdHlT
dGF0ZSwgZm9jdXNlZCwgdXJsLCB0eXBlLCBmcmFtZVR5cGUKICAgICBbJ3Zpc2libGUnLCBmYWxz
ZSwgbmV3IFVSTChzY29wZSArICcjMScsIGxvY2F0aW9uKS50b1N0cmluZygpLCAnd2luZG93Jywg
J25lc3RlZCddLAogICAgIFsndmlzaWJsZScsIHRydWUsIG5ldyBVUkwoc2NvcGUgKyAnIzInLCBs
b2NhdGlvbikudG9TdHJpbmcoKSwgJ3dpbmRvdycsICduZXN0ZWQnXQotICBdOwotICBjb25zdCBl
eHBlY3RlZF93aXRoX2luY2x1ZGVfdW5jb250cm9sbGVkID0gWworXTsKKwordmFyIGV4cGVjdGVk
X3dpdGhfaW5jbHVkZV91bmNvbnRyb2xsZWQgPSBbCiAgICAgLy8gdmlzaWJpbGl0eVN0YXRlLCBm
b2N1c2VkLCB1cmwsIHR5cGUsIGZyYW1lVHlwZQogICAgIFsndmlzaWJsZScsIHRydWUsIGxvY2F0
aW9uLmhyZWYsICd3aW5kb3cnLCAndG9wLWxldmVsJ10sCiAgICAgWyd2aXNpYmxlJywgZmFsc2Us
IG5ldyBVUkwoc2NvcGUgKyAnIzEnLCBsb2NhdGlvbikudG9TdHJpbmcoKSwgJ3dpbmRvdycsICdu
ZXN0ZWQnXSwKICAgICBbJ3Zpc2libGUnLCB0cnVlLCBuZXcgVVJMKHNjb3BlICsgJyMyJywgbG9j
YXRpb24pLnRvU3RyaW5nKCksICd3aW5kb3cnLCAnbmVzdGVkJ10sCiAgICAgWyd2aXNpYmxlJywg
ZmFsc2UsIG5ldyBVUkwoYmFzZV91cmwsIGxvY2F0aW9uKS50b1N0cmluZygpLCAnd2luZG93Jywg
J25lc3RlZCddCi0gIF07Ci0KLSAgYXdhaXQgdGVzdF9tYXRjaGFsbChzZXJ2aWNlX3dvcmtlciwg
ZXhwZWN0ZWRfd2l0aG91dF9pbmNsdWRlX3VuY29udHJvbGxlZCk7Ci0gIGF3YWl0IHRlc3RfbWF0
Y2hhbGwoc2VydmljZV93b3JrZXIsIGV4cGVjdGVkX3dpdGhfaW5jbHVkZV91bmNvbnRyb2xsZWQs
Ci0gICAgICAgICAgICAgICAgICAgICAgeyBpbmNsdWRlVW5jb250cm9sbGVkOiB0cnVlIH0pOwot
fSwgJ1ZlcmlmeSBtYXRjaEFsbCgpIHdpdGggd2luZG93cyByZXNwZWN0IGluY2x1ZGVVbmNvbnRy
b2xsZWQnKTsKK107CiAKLS8vIFRPRE86IEFkZCB0ZXN0cyBmb3IgY2xpZW50cy5tYXRjaEFsbCBm
b3IgZGVkaWNhdGVkIHdvcmtlcnMuCi0KLWFzeW5jIGZ1bmN0aW9uIGNyZWF0ZV9zaGFyZWRfd29y
a2VyKHNjcmlwdF91cmwpIHsKLSAgY29uc3Qgc2hhcmVkX3dvcmtlciA9IG5ldyBTaGFyZWRXb3Jr
ZXIoc2NyaXB0X3VybCk7Ci0gIGNvbnN0IG1zZ0V2ZW50ID0gYXdhaXQgbmV3IFByb21pc2UociA9
PiBzaGFyZWRfd29ya2VyLnBvcnQub25tZXNzYWdlID0gcik7Ci0gIGFzc2VydF9lcXVhbHMobXNn
RXZlbnQuZGF0YSwgJ3N0YXJ0ZWQnKTsKLSAgcmV0dXJuIHNoYXJlZF93b3JrZXI7CitmdW5jdGlv
biB0ZXN0X21hdGNoYWxsKGZyYW1lLCBleHBlY3RlZCwgcXVlcnlfb3B0aW9ucykgeworICAvLyBN
YWtlIHN1cmUgd2UgaGF2ZSBmb2N1cyBmb3IgJyMyJyBmcmFtZSBhbmQgaXRzIHBhcmVudCB3aW5k
b3cuCisgIGZyYW1lLmZvY3VzKCk7CisgIGZyYW1lLmNvbnRlbnRXaW5kb3cuZm9jdXMoKTsKKyAg
ZXhwZWN0ZWQuc29ydChmdW5jdGlvbihhLCBiKSB7IHJldHVybiBhWzJdID4gYlsyXSA/IDEgOiAt
MTsgfSk7CisgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsK
KyAgICB2YXIgY2hhbm5lbCA9IG5ldyBNZXNzYWdlQ2hhbm5lbCgpOworICAgIGNoYW5uZWwucG9y
dDEub25tZXNzYWdlID0gZnVuY3Rpb24oZSkgeworICAgICAgLy8gSWdub3JlIGhpZGRlbiBjbGll
bnRzIHdoaWNoIG1heSBiZSBjb21pbmcgZnJvbSBiYWNrZ3JvdW5kIHRhYnMsIG9yCisgICAgICAv
LyBjbGllbnRzIHVucmVsYXRlZCB0byB0aGlzIHRlc3QuCisgICAgICB2YXIgZGF0YSA9IGUuZGF0
YS5maWx0ZXIoZnVuY3Rpb24oaW5mbykgeworICAgICAgICByZXR1cm4gaW5mb1swXSA9PSAndmlz
aWJsZScgJiYKKyAgICAgICAgICAgICAgIGluZm9bMl0uaW5kZXhPZignc2VydmljZS13b3JrZXIn
KSA+IC0xOworICAgICAgfSk7CisgICAgICBkYXRhLnNvcnQoZnVuY3Rpb24oYSwgYikgeyByZXR1
cm4gYVsyXSA+IGJbMl0gPyAxIDogLTE7IH0pOworICAgICAgYXNzZXJ0X2VxdWFscyhkYXRhLmxl
bmd0aCwgZXhwZWN0ZWQubGVuZ3RoKTsKKyAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZGF0YS5s
ZW5ndGg7IGkrKykKKyAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhkYXRhW2ldLCBleHBlY3Rl
ZFtpXSk7CisgICAgICByZXNvbHZlKGZyYW1lKTsKKyAgICB9OworICAgIGZyYW1lLmNvbnRlbnRX
aW5kb3cubmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuY29udHJvbGxlci5wb3N0TWVzc2FnZSgKKyAg
ICAgICAge3BvcnQ6Y2hhbm5lbC5wb3J0Miwgb3B0aW9uczpxdWVyeV9vcHRpb25zfSwKKyAgICAg
ICAgW2NoYW5uZWwucG9ydDJdKTsKKyAgfSk7CiB9CiAKLS8vIFJ1biBjbGllbnRzLm1hdGNoQWxs
IGZvciBzaGFyZWQgd29ya2VycyB3aXRob3V0IGFuZCB3aXRoCi0vLyBpbmNsdWRlVW5jb250cm9s
bGVkPXRydWUuCi1wcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7Ci0gIGNvbnN0IHNjcmlwdF91cmwg
PSAncmVzb3VyY2VzL2NsaWVudHMtbWF0Y2hhbGwtY2xpZW50LXR5cGVzLXNoYXJlZC13b3JrZXIu
anMnOwotICBjb25zdCB1bmNvbnRyb2xsZWRfc2NyaXB0X3VybCA9Ci0gICAgICBuZXcgVVJMKHNj
cmlwdF91cmwgKyAnP3VuY29udHJvbGxlZCcsIGxvY2F0aW9uKS50b1N0cmluZygpOwotICBjb25z
dCBjb250cm9sbGVkX3NjcmlwdF91cmwgPQotICAgICAgbmV3IFVSTChzY3JpcHRfdXJsICsgJz9j
b250cm9sbGVkJywgbG9jYXRpb24pLnRvU3RyaW5nKCk7Ci0KLSAgLy8gU3RhcnQgYSBzaGFyZWQg
d29ya2VyIHRoYXQgaXMgbm90IGNvbnRyb2xsZWQgYnkgYSBzZXJ2aWNlIHdvcmtlci4KLSAgY29u
c3QgdW5jb250cm9sbGVkX3NoYXJlZF93b3JrZXIgPQotICAgICAgYXdhaXQgY3JlYXRlX3NoYXJl
ZF93b3JrZXIodW5jb250cm9sbGVkX3NjcmlwdF91cmwpOwotCi0gIC8vIFJlZ2lzdGVyIGEgc2Vy
dmljZSB3b3JrZXIuCi0gIGNvbnN0IHJlZ2lzdHJhdGlvbiA9Ci0gICAgICBhd2FpdCBzZXJ2aWNl
X3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3RlcigKLSAgICAgICAgICB0LCAncmVzb3VyY2Vz
L2NsaWVudHMtbWF0Y2hhbGwtd29ya2VyLmpzJywgc2NyaXB0X3VybCk7Ci0gIHQuYWRkX2NsZWFu
dXAoKCkgPT4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcih0LCBzY3JpcHRfdXJsKSk7Ci0gIGNv
bnN0IHNlcnZpY2Vfd29ya2VyID0gcmVnaXN0cmF0aW9uLmluc3RhbGxpbmc7Ci0gIGF3YWl0IHdh
aXRfZm9yX3N0YXRlKHQsIHNlcnZpY2Vfd29ya2VyLCAnYWN0aXZhdGVkJyk7Ci0KLSAgLy8gU3Rh
cnQgYW5vdGhlciBzaGFyZWQgd29ya2VyIGNvbnRyb2xsZWQgYnkgdGhlIHNlcnZpY2Ugd29ya2Vy
LgotICBhd2FpdCBjcmVhdGVfc2hhcmVkX3dvcmtlcihjb250cm9sbGVkX3NjcmlwdF91cmwpOwot
Ci0gIGNvbnN0IGV4cGVjdGVkX3dpdGhvdXRfaW5jbHVkZV91bmNvbnRyb2xsZWQgPSBbCi0gICAg
Ly8gdmlzaWJpbGl0eVN0YXRlLCBmb2N1c2VkLCB1cmwsIHR5cGUsIGZyYW1lVHlwZQotICAgIFt1
bmRlZmluZWQsIHVuZGVmaW5lZCwgY29udHJvbGxlZF9zY3JpcHRfdXJsLCAnc2hhcmVkd29ya2Vy
JywgJ25vbmUnXSwKLSAgXTsKLSAgY29uc3QgZXhwZWN0ZWRfd2l0aF9pbmNsdWRlX3VuY29udHJv
bGxlZCA9IFsKLSAgICAvLyB2aXNpYmlsaXR5U3RhdGUsIGZvY3VzZWQsIHVybCwgdHlwZSwgZnJh
bWVUeXBlCi0gICAgW3VuZGVmaW5lZCwgdW5kZWZpbmVkLCBjb250cm9sbGVkX3NjcmlwdF91cmws
ICdzaGFyZWR3b3JrZXInLCAnbm9uZSddLAotICAgIFt1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5j
b250cm9sbGVkX3NjcmlwdF91cmwsICdzaGFyZWR3b3JrZXInLCAnbm9uZSddLAotICBdOworLy8g
UnVuIGNsaWVudHMubWF0Y2hBbGwgd2l0aG91dCBhbmQgd2l0aCBpbmNsdWRlVW5jb250cm9sbGVk
PXRydWUuCisvLyAoV2Ugd2FudCB0byBydW4gdGhlIHR3byB0ZXN0cyBzZXF1ZW50aWFsbHkgaW4g
dGhlIHNhbWUgYXN5bmNfdGVzdAorLy8gc28gdGhhdCB3ZSBjYW4gdXNlIHRoZSBzYW1lIHNldCBv
ZiBpZnJhbWVzIHdpdGhvdXQgaW50ZWZlcmluZyBlYWNoIG90aGVyLgorYXN5bmNfdGVzdChmdW5j
dGlvbih0KSB7CisgICAgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIoCisg
ICAgICAgIHQsICdyZXNvdXJjZXMvY2xpZW50cy1tYXRjaGFsbC13b3JrZXIuanMnLCBzY29wZSkK
KyAgICAgIC50aGVuKGZ1bmN0aW9uKHJlZ2lzdHJhdGlvbikgeworICAgICAgICAgIHJldHVybiB3
YWl0X2Zvcl9zdGF0ZSh0LCByZWdpc3RyYXRpb24uaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOwor
ICAgICAgICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7IHJldHVybiBjcmVhdGVfaWZyYW1l
cyhzY29wZSk7IH0pCisgICAgICAudGhlbihmdW5jdGlvbihmcmFtZSkgeworICAgICAgICAgIHJl
dHVybiB0ZXN0X21hdGNoYWxsKGZyYW1lLCBleHBlY3RlZF93aXRob3V0X2luY2x1ZGVfdW5jb250
cm9sbGVkKTsKKyAgICAgICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKGZyYW1lKSB7CisgICAg
ICAgICAgcmV0dXJuIHRlc3RfbWF0Y2hhbGwoZnJhbWUsIGV4cGVjdGVkX3dpdGhfaW5jbHVkZV91
bmNvbnRyb2xsZWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2luY2x1ZGVVbmNv
bnRyb2xsZWQ6dHJ1ZX0pOworICAgICAgICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7Cisg
ICAgICAgICAgZnJhbWVzLmZvckVhY2goZnVuY3Rpb24oZikgeyBmLnJlbW92ZSgpIH0pOworICAg
ICAgICAgIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX2RvbmUodCwgc2NvcGUpOworICAg
ICAgICB9KQorICAgICAgLmNhdGNoKHVucmVhY2hlZF9yZWplY3Rpb24odCkpOworICB9LCAnVmVy
aWZ5IG1hdGNoQWxsKCkgcmVzcGVjdCBpbmNsdWRlVW5jb250cm9sbGVkJyk7CiAKLSAgYXdhaXQg
dGVzdF9tYXRjaGFsbChzZXJ2aWNlX3dvcmtlciwgZXhwZWN0ZWRfd2l0aG91dF9pbmNsdWRlX3Vu
Y29udHJvbGxlZCwKLSAgICAgICAgICAgICAgICAgICAgICB7IHR5cGU6ICdzaGFyZWR3b3JrZXIn
IH0pOwotICBhd2FpdCB0ZXN0X21hdGNoYWxsKHNlcnZpY2Vfd29ya2VyLCBleHBlY3RlZF93aXRo
X2luY2x1ZGVfdW5jb250cm9sbGVkLAotICAgICAgICAgICAgICAgICAgICAgIHsgaW5jbHVkZVVu
Y29udHJvbGxlZDogdHJ1ZSwgdHlwZTogJ3NoYXJlZHdvcmtlcicgfSk7Ci19LCAnVmVyaWZ5IG1h
dGNoQWxsKCkgd2l0aCBzaGFyZWQgd29ya2VycyByZXNwZWN0IGluY2x1ZGVVbmNvbnRyb2xsZWQn
KTsKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xpZW50cy1tYXRj
aGFsbC1vcmRlci5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xpZW50cy1tYXRjaGFs
bC1vcmRlci5odHRwcy5odG1sCmluZGV4IGVjNjUwZjIyNjRkZjUzMGJkMzRiMTE3MzdjNGIxZDll
ZDg3ZjRiNTYuLjJjMWU5NTZkMWQ4NGJmODJlMzc5ODI3ODE5MTRiYmFhNzJhNDIwNjIgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsaWVudHMtbWF0Y2hhbGwtb3JkZXIuaHR0cHMuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGllbnRzLW1hdGNoYWxsLW9yZGVyLmh0dHBzLmh0
bWwKQEAgLTEsNiArMSw1IEBACiA8IURPQ1RZUEUgaHRtbD4KIDx0aXRsZT5TZXJ2aWNlIFdvcmtl
cjogQ2xpZW50cy5tYXRjaEFsbCBvcmRlcmluZzwvdGl0bGU+Ci08bWV0YSBuYW1lPXRpbWVvdXQg
Y29udGVudD1sb25nPgogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwv
c2NyaXB0PgogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwv
c2NyaXB0PgogPHNjcmlwdCBzcmM9InJlc291cmNlcy90ZXN0LWhlbHBlcnMuc3ViLmpzIj48L3Nj
cmlwdD4KQEAgLTEyMyw4ICsxMjIsNiBAQCBmdW5jdGlvbiBtYXRjaEFsbE9yZGVyVGVzdCh0LCBv
cHRzKSB7CiAgIGxldCBmcmFtZVJlc3VsdExpc3Q7CiAgIGxldCBleHRyYVdpbmRvd1Jlc3VsdDsK
ICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHNjcmlw
dCwgb3B0cy5zY29wZSkudGhlbihzd3IgPT4gewotICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gc2Vy
dmljZV93b3JrZXJfdW5yZWdpc3Rlcih0LCBvcHRzLnNjb3BlKSk7Ci0KICAgICB3b3JrZXIgPSBz
d3IuaW5zdGFsbGluZzsKICAgICByZXR1cm4gd2FpdF9mb3Jfc3RhdGUodCwgd29ya2VyLCAnYWN0
aXZhdGVkJyk7CiAgIH0pLnRoZW4oXyA9PiB7CkBAIC0xNDUsNiArMTQyLDggQEAgZnVuY3Rpb24g
bWF0Y2hBbGxPcmRlclRlc3QodCwgb3B0cykgewogICB9KS50aGVuKF8gPT4gewogICAgIGZyYW1l
UmVzdWx0TGlzdC5mb3JFYWNoKHJlc3VsdCA9PiByZXN1bHQudG9wLnJlbW92ZSgpKTsKICAgICBl
eHRyYVdpbmRvd1Jlc3VsdC50b3AucmVtb3ZlKCk7CisgIH0pLnRoZW4oXyA9PiB7CisgICAgcmV0
dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX2RvbmUodCwgb3B0cy5zY29wZSk7CiAg
IH0pLmNhdGNoKGUgPT4gewogICAgIGlmIChmcmFtZVJlc3VsdExpc3QpIHsKICAgICAgIGZyYW1l
UmVzdWx0TGlzdC5mb3JFYWNoKHJlc3VsdCA9PiByZXN1bHQudG9wLnJlbW92ZSgpKTsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsaWVudHMtbWF0Y2hhbGwuaHR0cHMuaHRtbCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL2NsaWVudHMtbWF0Y2hhbGwuaHR0cHMuaHRtbAppbmRleCBjZTQ0ZjE5
MjRkNTQ5NTJhZmU0NDJiMTliZDBiNDZjNWY5Mjk1MWQ1Li4zNjI2OWI0ZDk4ZTJiNzJmNTU1MTgy
NjhjMWJjZmQxNGFiYjIxMjk5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGllbnRz
LW1hdGNoYWxsLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xpZW50cy1tYXRj
aGFsbC5odHRwcy5odG1sCkBAIC01LDE1ICs1LDEyIEBACiA8c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L3Rlc3QtaGVscGVycy5zdWIuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KIHZhciBzY29wZSA9ICdy
ZXNvdXJjZXMvYmxhbmsuaHRtbD9jbGllbnRzLW1hdGNoQWxsJzsKK3ZhciB0ID0gYXN5bmNfdGVz
dCgnVGVzdCBDbGllbnRzLm1hdGNoQWxsKCknKTsKIHZhciBmcmFtZXMgPSBbXTsKLXByb21pc2Vf
dGVzdChmdW5jdGlvbih0KSB7Ci0gICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJf
YW5kX3JlZ2lzdGVyKAordC5zdGVwKGZ1bmN0aW9uKCkgeworICAgIHNlcnZpY2Vfd29ya2VyX3Vu
cmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKAogICAgICAgICB0LCAncmVzb3VyY2VzL2NsaWVudHMtbWF0
Y2hhbGwtd29ya2VyLmpzJywgc2NvcGUpCiAgICAgICAudGhlbihmdW5jdGlvbihyZWdpc3RyYXRp
b24pIHsKLSAgICAgICAgICB0LmFkZF9jbGVhbnVwKGZ1bmN0aW9uKCkgewotICAgICAgICAgICAg
ICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcih0LCBzY29wZSk7Ci0gICAgICAgICAg
ICB9KTsKLQogICAgICAgICAgIHJldHVybiB3YWl0X2Zvcl9zdGF0ZSh0LCByZWdpc3RyYXRpb24u
aW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOwogICAgICAgICB9KQogICAgICAgLnRoZW4oZnVuY3Rp
b24oKSB7IHJldHVybiB3aXRoX2lmcmFtZShzY29wZSArICcjMScpOyB9KQpAQCAtMjUsMTUgKzIy
LDEyIEBAIHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7CiAgICAgICAudGhlbihmdW5jdGlvbihm
cmFtZTIpIHsKICAgICAgICAgICBmcmFtZXMucHVzaChmcmFtZTIpOwogICAgICAgICAgIHZhciBj
aGFubmVsID0gbmV3IE1lc3NhZ2VDaGFubmVsKCk7Ci0KLSAgICAgICAgICByZXR1cm4gbmV3IFBy
b21pc2UoZnVuY3Rpb24ocmVzb2x2ZSkgewotICAgICAgICAgICAgICBjaGFubmVsLnBvcnQxLm9u
bWVzc2FnZSA9IHJlc29sdmU7Ci0gICAgICAgICAgICAgIGZyYW1lMi5jb250ZW50V2luZG93Lm5h
dmlnYXRvci5zZXJ2aWNlV29ya2VyLmNvbnRyb2xsZXIucG9zdE1lc3NhZ2UoCi0gICAgICAgICAg
ICAgICAgICB7cG9ydDpjaGFubmVsLnBvcnQyfSwgW2NoYW5uZWwucG9ydDJdKTsKLSAgICAgICAg
ICAgIH0pOworICAgICAgICAgIGNoYW5uZWwucG9ydDEub25tZXNzYWdlID0gdC5zdGVwX2Z1bmMo
b25NZXNzYWdlKTsKKyAgICAgICAgICBmcmFtZTIuY29udGVudFdpbmRvdy5uYXZpZ2F0b3Iuc2Vy
dmljZVdvcmtlci5jb250cm9sbGVyLnBvc3RNZXNzYWdlKAorICAgICAgICAgICAgICB7cG9ydDpj
aGFubmVsLnBvcnQyfSwgW2NoYW5uZWwucG9ydDJdKTsKICAgICAgICAgfSkKLSAgICAgIC50aGVu
KG9uTWVzc2FnZSk7Ci19LCAnVGVzdCBDbGllbnRzLm1hdGNoQWxsKCknKTsKKyAgICAgIC5jYXRj
aCh1bnJlYWNoZWRfcmVqZWN0aW9uKHQpKTsKKyAgfSk7CiAKIHZhciBleHBlY3RlZCA9IFsKICAg
ICAvLyB2aXNpYmlsaXR5U3RhdGUsIGZvY3VzZWQsIHVybCwgdHlwZSwgZnJhbWVUeXBlCkBAIC00
Niw1ICs0MCw2IEBAIGZ1bmN0aW9uIG9uTWVzc2FnZShlKSB7CiAgIGFzc2VydF9hcnJheV9lcXVh
bHMoZS5kYXRhWzBdLCBleHBlY3RlZFswXSk7CiAgIGFzc2VydF9hcnJheV9lcXVhbHMoZS5kYXRh
WzFdLCBleHBlY3RlZFsxXSk7CiAgIGZyYW1lcy5mb3JFYWNoKGZ1bmN0aW9uKGYpIHsgZi5yZW1v
dmUoKTsgfSk7CisgIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX2RvbmUodCwgc2NvcGUp
OwogfQogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jb250cm9sbGVy
LW9uLWRpc2Nvbm5lY3QuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NvbnRyb2xsZXIt
b24tZGlzY29ubmVjdC5odHRwcy5odG1sCmluZGV4IGYyM2RmZTcxYmFjNTA1ZjFjYzM5NmJjYWIx
OTFkYmVlN2E2NDYxZjQuLjkyMGQxOTBlM2IyMDE0N2NmMTgzZjg5NjY0ZmY3ZWQ4NGE0ZWMzZGUg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NvbnRyb2xsZXItb24tZGlzY29ubmVjdC5o
dHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NvbnRyb2xsZXItb24tZGlzY29ubmVj
dC5odHRwcy5odG1sCkBAIC01LDI1ICs1LDIyIEBACiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Rl
c3QtaGVscGVycy5zdWIuanMiPjwvc2NyaXB0PgogPGJvZHk+CiA8c2NyaXB0PgotcHJvbWlzZV90
ZXN0KGZ1bmN0aW9uKHQpIHsKK3ZhciB0ID0gYXN5bmNfdGVzdCgnY29udHJvbGxlciBpcyBjbGVh
cmVkIG9uIGRpc2Nvbm5lY3RlZCB3aW5kb3cnKTsKK3Quc3RlcChmdW5jdGlvbigpIHsKICAgICB2
YXIgdXJsID0gJ3Jlc291cmNlcy9lbXB0eS13b3JrZXIuanMnOwogICAgIHZhciBzY29wZSA9ICdy
ZXNvdXJjZXMvYmxhbmsuaHRtbCc7CiAgICAgdmFyIHJlZ2lzdHJhdGlvbjsKICAgICB2YXIgY29u
dHJvbGxlcjsKICAgICB2YXIgZnJhbWU7Ci0gICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVn
aXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHVybCwgc2NvcGUpCi0gICAgICAudGhlbihmdW5jdGlvbihz
d3IpIHsKLSAgICAgICAgICB0LmFkZF9jbGVhbnVwKGZ1bmN0aW9uKCkgewotICAgICAgICAgICAg
ICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcih0LCBzY29wZSk7Ci0gICAgICAgICAg
ICB9KTsKLQorICAgIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHVy
bCwgc2NvcGUpCisgICAgICAudGhlbih0LnN0ZXBfZnVuYyhmdW5jdGlvbihzd3IpIHsKICAgICAg
ICAgICByZWdpc3RyYXRpb24gPSBzd3I7CiAgICAgICAgICAgcmV0dXJuIHdhaXRfZm9yX3N0YXRl
KHQsIHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7Ci0gICAgICAgIH0pCi0g
ICAgICAudGhlbihmdW5jdGlvbigpIHsKKyAgICAgICAgfSkpCisgICAgICAudGhlbih0LnN0ZXBf
ZnVuYyhmdW5jdGlvbigpIHsKICAgICAgICAgICByZXR1cm4gd2l0aF9pZnJhbWUoc2NvcGUpCi0g
ICAgICAgIH0pCi0gICAgICAudGhlbihmdW5jdGlvbihmKSB7CisgICAgICAgIH0pKQorICAgICAg
LnRoZW4odC5zdGVwX2Z1bmMoZnVuY3Rpb24oZikgewogICAgICAgICAgIGZyYW1lID0gZjsKICAg
ICAgICAgICB2YXIgdyA9IGZyYW1lLmNvbnRlbnRXaW5kb3c7CiAgICAgICAgICAgdmFyIHN3YyA9
IHcubmF2aWdhdG9yLnNlcnZpY2VXb3JrZXI7CkBAIC0zNCw3ICszMSwxMCBAQCBwcm9taXNlX3Rl
c3QoZnVuY3Rpb24odCkgewogCiAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzd2MuY29udHJvbGxl
ciwgbnVsbCwKICAgICAgICAgICAgICAgICAgICAgICAgICdkaXNjb25uZWN0ZWQgZnJhbWUgc2hv
dWxkIG5vdCBiZSBjb250cm9sbGVkJyk7Ci0gICAgICAgIH0pOwotfSwgJ2NvbnRyb2xsZXIgaXMg
Y2xlYXJlZCBvbiBkaXNjb25uZWN0ZWQgd2luZG93Jyk7CisKKyAgICAgICAgICBzZXJ2aWNlX3dv
cmtlcl91bnJlZ2lzdGVyX2FuZF9kb25lKHQsIHNjb3BlKTsKKyAgICAgICAgfSkpCisgICAgICAu
Y2F0Y2godW5yZWFjaGVkX3JlamVjdGlvbih0KSk7CisgIH0pOwogPC9zY3JpcHQ+CiA8L2JvZHk+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jb250cm9sbGVyLW9uLWxvYWQuaHR0cHMu
aHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NvbnRyb2xsZXItb24tbG9hZC5odHRwcy5odG1sCmlu
ZGV4IGU0YzVlNWY4MWY4MTM5ZTFjNzg4ZjA2OGY3MTZjZGJiMzY3ZmI4M2UuLjQ5Zjk4Nzk2MjZi
MGM1OTU3Yzc1ZTY0YzM0MjE1YzhlNWNjY2I1MzQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL2NvbnRyb2xsZXItb24tbG9hZC5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L2NvbnRyb2xsZXItb24tbG9hZC5odHRwcy5odG1sCkBAIC01LDI1ICs1LDIyIEBACiA8c2NyaXB0
IHNyYz0icmVzb3VyY2VzL3Rlc3QtaGVscGVycy5zdWIuanMiPjwvc2NyaXB0PgogPGJvZHk+CiA8
c2NyaXB0PgotcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKK3ZhciB0ID0gYXN5bmNfdGVzdCgn
Y29udHJvbGxlciBpcyBzZXQgZm9yIGEgY29udHJvbGxlZCBkb2N1bWVudCcpOwordC5zdGVwKGZ1
bmN0aW9uKCkgewogICAgIHZhciB1cmwgPSAncmVzb3VyY2VzL2VtcHR5LXdvcmtlci5qcyc7CiAg
ICAgdmFyIHNjb3BlID0gJ3Jlc291cmNlcy9ibGFuay5odG1sJzsKICAgICB2YXIgcmVnaXN0cmF0
aW9uOwogICAgIHZhciBjb250cm9sbGVyOwogICAgIHZhciBmcmFtZTsKLSAgICByZXR1cm4gc2Vy
dmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgdXJsLCBzY29wZSkKLSAgICAg
IC50aGVuKGZ1bmN0aW9uKHN3cikgewotICAgICAgICAgIHQuYWRkX2NsZWFudXAoZnVuY3Rpb24o
KSB7Ci0gICAgICAgICAgICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyKHQsIHNj
b3BlKTsKLSAgICAgICAgICAgIH0pOwotCisgICAgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9h
bmRfcmVnaXN0ZXIodCwgdXJsLCBzY29wZSkKKyAgICAgIC50aGVuKHQuc3RlcF9mdW5jKGZ1bmN0
aW9uKHN3cikgewogICAgICAgICAgIHJlZ2lzdHJhdGlvbiA9IHN3cjsKICAgICAgICAgICByZXR1
cm4gd2FpdF9mb3Jfc3RhdGUodCwgcmVnaXN0cmF0aW9uLmluc3RhbGxpbmcsICdhY3RpdmF0ZWQn
KTsKLSAgICAgICAgfSkKLSAgICAgIC50aGVuKGZ1bmN0aW9uKCkgeworICAgICAgICB9KSkKKyAg
ICAgIC50aGVuKHQuc3RlcF9mdW5jKGZ1bmN0aW9uKCkgewogICAgICAgICAgIHJldHVybiB3aXRo
X2lmcmFtZShzY29wZSk7Ci0gICAgICAgIH0pCi0gICAgICAudGhlbihmdW5jdGlvbihmKSB7Cisg
ICAgICAgIH0pKQorICAgICAgLnRoZW4odC5zdGVwX2Z1bmMoZnVuY3Rpb24oZikgewogICAgICAg
ICAgIGZyYW1lID0gZjsKICAgICAgICAgICB2YXIgdyA9IGZyYW1lLmNvbnRlbnRXaW5kb3c7CiAg
ICAgICAgICAgY29udHJvbGxlciA9IHcubmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuY29udHJvbGxl
cjsKQEAgLTM1LDEyICszMiwxNCBAQCBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewogICAgICAg
ICAgIGFzc2VydF9ub3RfZXF1YWxzKGNvbnRyb2xsZXIsIHJlZ2lzdHJhdGlvbi5hY3RpdmUpOwog
CiAgICAgICAgICAgcmV0dXJuIHcubmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuZ2V0UmVnaXN0cmF0
aW9uKCk7Ci0gICAgICAgIH0pCi0gICAgICAudGhlbihmdW5jdGlvbihmcmFtZVJlZ2lzdHJhdGlv
bikgeworICAgICAgICB9KSkKKyAgICAgIC50aGVuKHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGZyYW1l
UmVnaXN0cmF0aW9uKSB7CiAgICAgICAgICAgLy8gU1cgb2JqZWN0cyBmcm9tIHNhbWUgd2luZG93
IHNob3VsZCBiZSBlcXVhbAogICAgICAgICAgIGFzc2VydF9lcXVhbHMoZnJhbWVSZWdpc3RyYXRp
b24uYWN0aXZlLCBjb250cm9sbGVyKTsKICAgICAgICAgICBmcmFtZS5yZW1vdmUoKTsKLSAgICAg
ICAgfSk7Ci19LCAnY29udHJvbGxlciBpcyBzZXQgZm9yIGEgY29udHJvbGxlZCBkb2N1bWVudCcp
OworICAgICAgICAgIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX2RvbmUodCwgc2NvcGUp
OworICAgICAgICB9KSkKKyAgICAgIC5jYXRjaCh1bnJlYWNoZWRfcmVqZWN0aW9uKHQpKTsKKyAg
fSk7CiA8L3NjcmlwdD4KIDwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2Nv
bnRyb2xsZXItb24tcmVsb2FkLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jb250cm9s
bGVyLW9uLXJlbG9hZC5odHRwcy5odG1sCmluZGV4IDJlOTY2ZDQyNTc4OGMwYTAyYjFiYjI1YTRj
MDQ1MDg5ZmVkZTVjZTcuLmUwYmViNzI2MGJlMTE2MDg0MzlhYTE2YmNlMGMxNmEwMjVmMjQ4NTgg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NvbnRyb2xsZXItb24tcmVsb2FkLmh0dHBz
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY29udHJvbGxlci1vbi1yZWxvYWQuaHR0cHMu
aHRtbApAQCAtMTMsMTAgKzEzLDYgQEAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICB2
YXIgY29udHJvbGxlcjsKICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcih0LCBz
Y29wZSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKCkgewotICAgICAgICAgIHQuYWRkX2NsZWFudXAo
ZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lz
dGVyKHQsIHNjb3BlKTsKLSAgICAgICAgICAgIH0pOwotCiAgICAgICAgICAgcmV0dXJuIHdpdGhf
aWZyYW1lKHNjb3BlKTsKICAgICAgICAgfSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKGYpIHsKQEAg
LTUyLDYgKzQ4LDcgQEAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICAgIC50aGVuKGZ1
bmN0aW9uKGZyYW1lUmVnaXN0cmF0aW9uKSB7CiAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhmcmFt
ZVJlZ2lzdHJhdGlvbi5hY3RpdmUsIGNvbnRyb2xsZXIpOwogICAgICAgICAgIGZyYW1lLnJlbW92
ZSgpOworICAgICAgICAgIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX2RvbmUodCwgc2Nv
cGUpOwogICAgICAgICB9KTsKICAgfSwgJ2NvbnRyb2xsZXIgaXMgc2V0IHVwb24gcmVsb2FkIGFm
dGVyIHJlZ2lzdHJhdGlvbicpOwogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9kYXRhLXRyYW5zZmVyLWZpbGVzLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL2RhdGEtdHJhbnNmZXItZmlsZXMuaHR0cHMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA1OTM0MGZjOTY2YzY1OTRmOGU3Nzk4ZWY4OTNlMDAxMjkyNjEy
NWMwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL2RhdGEtdHJhbnNmZXItZmlsZXMuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyAv
ZGV2L251bGwKQEAgLTEsNSArMCwwIEBACi0KLQotCi1GQUlMIFBvc3RpbmcgYSBGaWxlIGluIGEg
bmF2aWdhdGlvbiBoYW5kbGVkIGJ5IGEgc2VydmljZSB3b3JrZXIgcHJvbWlzZV90ZXN0OiBVbmhh
bmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBmdW5jdGlvbiBp
cyBub3QgYSBjb25zdHJ1Y3RvciAoZXZhbHVhdGluZyAnbmV3IERhdGFUcmFuc2ZlcigpJykiCi0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2RhdGEtdHJhbnNmZXItZmlsZXMuaHR0cHMu
aHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2RhdGEtdHJhbnNmZXItZmlsZXMuaHR0cHMuaHRtbApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2M4YWI2ZTY3MjcyNmUxNjhiNDRkZmVlNWI0
NzIwMDEyZmZmZWUwYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9kYXRhLXRyYW5zZmVyLWZpbGVzLmh0dHBzLmh0bWwKKysr
IC9kZXYvbnVsbApAQCAtMSw0MSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxtZXRhIGNoYXJz
ZXQ9InV0Zi04Ij4KLTx0aXRsZT5Qb3N0IGEgZmlsZSBpbiBhIG5hdmlnYXRpb24gY29udHJvbGxl
ZCBieSBhIHNlcnZpY2Ugd29ya2VyPC90aXRsZT4KLTxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGVzdC1oZWxw
ZXJzLnN1Yi5qcyI+PC9zY3JpcHQ+Ci08Ym9keT4KLTxpZnJhbWUgaWQ9dGVzdGZyYW1lIG5hbWU9
dGVzdGZyYW1lPjwvaWZyYW1lPgotPGZvcm0gaWQ9dGVzdGZvcm0gbWV0aG9kPXBvc3QgYWN0aW9u
PSIvaHRtbC9zZW1hbnRpY3MvZm9ybXMvZm9ybS1zdWJtaXNzaW9uLTAvcmVzb3VyY2VzL2ZpbGUt
c3VibWlzc2lvbi5weSIgdGFyZ2V0PXRlc3RmcmFtZSBlbmN0eXBlPSJtdWx0aXBhcnQvZm9ybS1k
YXRhIj4KLTxpbnB1dCBuYW1lPXRlc3RpbnB1dCBpZD10ZXN0aW5wdXQgdHlwZT1maWxlPgotPC9m
b3JtPgotPHNjcmlwdD4KLS8vIFRlc3QgdGhhdCBEYXRhVHJhbnNmZXIgd2l0aCBhIEZpbGUgZW50
cnkgd29ya3Mgd2hlbiBwb3N0ZWQgdG8gYQotLy8gc2VydmljZSB3b3JrZXIgdGhhdCBmYWxscyBi
YWNrIHRvIG5ldHdvcmsuIFJlZ3Jlc3Npb24gdGVzdCBmb3IKLS8vIGh0dHBzOi8vY3JidWcuY29t
Lzk0NDE0NS4KLXByb21pc2VfdGVzdChhc3luYyAodCkgPT4gewotICBjb25zdCBzY29wZSA9ICcv
aHRtbC9zZW1hbnRpY3MvZm9ybXMvZm9ybS1zdWJtaXNzaW9uLTAvcmVzb3VyY2VzLyc7Ci0gIGNv
bnN0IGhlYWRlciA9IGBwaXBlPWhlYWRlcihTZXJ2aWNlLVdvcmtlci1BbGxvd2VkLCR7c2NvcGV9
KWA7Ci0gIGNvbnN0IHNjcmlwdCA9IGByZXNvdXJjZXMvZmV0Y2gtZXZlbnQtbmV0d29yay1mYWxs
YmFjay13b3JrZXIuanM/JHtoZWFkZXJ9YDsKLQotICBjb25zdCByZWdpc3RyYXRpb24gPSBhd2Fp
dCBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3RlcigKLSAgICAgIHQsIHNjcmlw
dCwgc2NvcGUpOwotICBhd2FpdCB3YWl0X2Zvcl9zdGF0ZSh0LCByZWdpc3RyYXRpb24uaW5zdGFs
bGluZywgJ2FjdGl2YXRlZCcpOwotCi0gIGNvbnN0IGRhdGFUcmFuc2ZlciA9IG5ldyBEYXRhVHJh
bnNmZXIoKTsKLSAgZGF0YVRyYW5zZmVyLml0ZW1zLmFkZChuZXcgRmlsZShbJ2Zvb2JhciddLCAn
bmFtZScpKTsKLSAgYXNzZXJ0X2VxdWFscygxLCBkYXRhVHJhbnNmZXIuZmlsZXMubGVuZ3RoKTsK
LQotICB0ZXN0aW5wdXQuZmlsZXMgPSBkYXRhVHJhbnNmZXIuZmlsZXM7Ci0gIHRlc3Rmb3JtLnN1
Ym1pdCgpOwotCi0gIGNvbnN0IGRhdGEgPSBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHsK
LSAgICBvbm1lc3NhZ2UgPSBlID0+IHsKLSAgICAgIGlmIChlLnNvdXJjZSAhPT0gdGVzdGZyYW1l
KSByZXR1cm47Ci0gICAgICByZXNvbHZlKGUuZGF0YSk7Ci0gICAgfTsKLSAgfSk7Ci0gIGFzc2Vy
dF9lcXVhbHMoZGF0YSwgIkZpZWxkU3RvcmFnZSgndGVzdGlucHV0JywgJ25hbWUnLCAnZm9vYmFy
JykiKTsKLX0sICdQb3N0aW5nIGEgRmlsZSBpbiBhIG5hdmlnYXRpb24gaGFuZGxlZCBieSBhIHNl
cnZpY2Ugd29ya2VyJyk7Ci08L3NjcmlwdD4KLTwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL2RldGFjaGVkLWNvbnRleHQuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvZGV0YWNoZWQtY29udGV4dC5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggZjU4YjYw
YTgzNzI2MmQzNzc2ODQ0MjQwZDAxODkzOTQ0ZjNkMjI2MC4uMWI3YTJjNjAyMDRmNmMyZDEwNDRh
N2IzZGQyNTNlYjEyOTRhNmZlOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZGV0YWNo
ZWQtY29udGV4dC5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZGV0
YWNoZWQtY29udGV4dC5odHRwcy1leHBlY3RlZC50eHQKQEAgLTEsMyArMSw0IEBACisgCiAKIFBB
U1MgYWNjZXNzaW5nIGEgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbiBmcm9tIGEgcmVtb3ZlZCBp
ZnJhbWUgCiBQQVNTIGFjY2Vzc2luZyBhIFNlcnZpY2VXb3JrZXIgb2JqZWN0IGZyb20gYSByZW1v
dmVkIGlmcmFtZSAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2RldGFjaGVkLWNvbnRl
eHQuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2RldGFjaGVkLWNvbnRleHQuaHR0cHMu
aHRtbAppbmRleCBmOTYzNzBkMjAxMDAwZDIwYTk1MDE2NmRjY2YyY2FmNzJiZDQ3M2MxLi41YWU0
ZGU4Y2M4MWUwYzM2NTBlYWFmNmI1NjU2MTkzZDRhMmNmOGIwIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9kZXRhY2hlZC1jb250ZXh0Lmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvZGV0YWNoZWQtY29udGV4dC5odHRwcy5odG1sCkBAIC01OSw3ICs1OSw2IEBAIHByb21p
c2VfdGVzdCh0ID0+IHsKICAgICAgIC50aGVuKCgpID0+IHsKICAgICAgICAgICBhc3NlcnRfZXF1
YWxzKHJlc29sdmVkQ291bnQsIDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAnbWV0aG9kcyBj
YWxsZWQgb24gYSBkZXRhY2hlZCByZWdpc3RyYXRpb24gc2hvdWxkIG5vdCByZXNvbHZlJyk7Ci0g
ICAgICAgICAgZnJhbWUucmVtb3ZlKCk7CiAgICAgICAgIH0pCiAgIH0sICdhY2Nlc3NpbmcgYSBT
ZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uIGZyb20gYSByZW1vdmVkIGlmcmFtZScpOwogCkBAIC0x
MDMsNyArMTAyLDYgQEAgcHJvbWlzZV90ZXN0KHQgPT4gewogICAgICAgICBhc3NlcnRfZXF1YWxz
KAogICAgICAgICAgICAgZ2V0X25hdmlnYXRvcigpLnNlcnZpY2VXb3JrZXIsCiAgICAgICAgICAg
ICBpZnJhbWUuY29udGVudFdpbmRvdy5uYXZpZ2F0b3Iuc2VydmljZVdvcmtlcik7Ci0gICAgICAg
IGlmcmFtZS5yZW1vdmUoKTsKICAgICAgIH0pOwogICB9LCAnYWNjZXNzaW5nIG5hdmlnYXRvci5z
ZXJ2aWNlV29ya2VyIG9uIGEgZGV0YWNoZWQgaWZyYW1lJyk7CiAKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL2V4dGVuZGFibGUtZXZlbnQtYXN5bmMtd2FpdHVudGlsLmh0dHBzLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2V4dGVuZGFibGUtZXZlbnQtYXN5bmMtd2FpdHVu
dGlsLmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCBmNzU3MDU1NDg0ZGUzOGQ4ZTU3ZDIzOWJkMTE4
NjViYzdlYmU1MjNjLi45MDJhOTc4NGQ3NjFkOTc3NmZmYjQ2MjEyZWM1NjMxOTcwNWFkZjRlIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9leHRlbmRhYmxlLWV2ZW50LWFzeW5jLXdhaXR1
bnRpbC5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZXh0ZW5kYWJs
ZS1ldmVudC1hc3luYy13YWl0dW50aWwuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0xLDE3ICsxLDEz
IEBACiAKIAotUEFTUyBUZXN0IGNhbGxpbmcgd2FpdFVudGlsIGluIGEgdGFzayBhdCB0aGUgZW5k
IG9mIHRoZSBldmVudCBoYW5kbGVyIHdpdGhvdXQgYW4gZXhpc3RpbmcgZXh0ZW5zaW9uIHRocm93
cyAKLVBBU1MgVGVzdCBjYWxsaW5nIHdhaXRVbnRpbCBpbiBhIG1pY3JvdGFzayBhdCB0aGUgZW5k
IG9mIHRoZSBldmVudCBoYW5kbGVyIHdpdGhvdXQgYW4gZXhpc3RpbmcgZXh0ZW5zaW9uIHN1Y2Vl
ZHMgCi1QQVNTIFRlc3QgY2FsbGluZyB3YWl0VW50aWwgaW4gYSBkaWZmZXJlbnQgdGFzayBhbiBl
eGlzdGluZyBleHRlbnNpb24gc3VjY2VlZHMgCi1QQVNTIFRlc3QgY2FsbGluZyB3YWl0VW50aWwg
YXQgdGhlIGVuZCBvZiBhbiBleGlzdGluZyBleHRlbnNpb24gcHJvbWlzZSBoYW5kbGVyIHN1Y2Nl
ZWRzIChldmVudCBpcyBzdGlsbCBiZWluZyBkaXNwYXRjaGVkKSAKLVBBU1MgVGVzdCBjYWxsaW5n
IHdhaXRVbnRpbCBpbiBhIG1pY3JvdGFzayBhdCB0aGUgZW5kIG9mIGFuIGV4aXN0aW5nIGV4dGVu
c2lvbiBwcm9taXNlIGhhbmRsZXIgc3VjY2VlZHMgKGV2ZW50IGlzIHN0aWxsIGJlaW5nIGRpc3Bh
dGNoZWQpIAotUEFTUyBUZXN0IGNhbGxpbmcgd2FpdFVudGlsIGluIGFuIGV4aXN0aW5nIGV4dGVu
c2lvbiBwcm9taXNlIGhhbmRsZXIgc3VjY2VlZHMgKGV2ZW50IGlzIG5vdCBiZWluZyBkaXNwYXRj
aGVkKSAKLVBBU1MgVGVzdCBjYWxsaW5nIHdhaXRVbnRpbCBpbiBhIG1pY3JvdGFzayBhdCB0aGUg
ZW5kIG9mIGFuIGV4aXN0aW5nIGV4dGVuc2lvbiBwcm9taXNlIGhhbmRsZXIgdGhyb3dzIChldmVu
dCBpcyBub3QgYmVpbmcgZGlzcGF0Y2hlZCkgCitQQVNTIFRlc3QgY2FsbGluZyB3YWl0VW50aWwg
aW4gYSBkaWZmZXJlbnQgdGFzayB3aXRob3V0IGFuIGV4aXN0aW5nIGV4dGVuc2lvbiB0aHJvd3Mg
CitGQUlMIFRlc3QgY2FsbGluZyB3YWl0VW50aWwgaW4gYSBkaWZmZXJlbnQgbWljcm90YXNrIHdp
dGhvdXQgYW4gZXhpc3RpbmcgZXh0ZW5zaW9uIHRocm93cyBhc3NlcnRfdW5yZWFjaGVkOiB1bmV4
cGVjdGVkIHJlamVjdGlvbjogYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIkludmFsaWRTdGF0ZUVy
cm9yIiBidXQgZ290ICJPSyIgUmVhY2hlZCB1bnJlYWNoYWJsZSBjb2RlCitQQVNTIFRlc3QgY2Fs
bGluZyB3YWl0VW50aWwgaW4gYSBkaWZmZXJlbnQgdGFzayB3aXRoIGFuIGV4aXN0aW5nIGV4dGVu
c2lvbiBzdWNjZWVkcyAKK1BBU1MgVGVzdCBjYWxsaW5nIHdhaXRVbnRpbCB3aXRoIGFuIGV4aXN0
aW5nIGV4dGVuc2lvbiBwcm9taXNlIGhhbmRsZXIgc3VjY2VlZHMgCitGQUlMIFRlc3QgY2FsbGlu
ZyB3YWl0VW50aWwgYXQgdGhlIGVuZCBvZiB0aGUgbWljcm90YXNrIHR1cm4gdGhyb3dzIGFzc2Vy
dF91bnJlYWNoZWQ6IHVuZXhwZWN0ZWQgcmVqZWN0aW9uOiBhc3NlcnRfZXF1YWxzOiBleHBlY3Rl
ZCAiSW52YWxpZFN0YXRlRXJyb3IiIGJ1dCBnb3QgIk9LIiBSZWFjaGVkIHVucmVhY2hhYmxlIGNv
ZGUKIFBBU1MgVGVzdCBjYWxsaW5nIHdhaXRVbnRpbCBhZnRlciB0aGUgY3VycmVudCBleHRlbnNp
b24gZXhwaXJlZCBpbiBhIGRpZmZlcmVudCB0YXNrIGZhaWxzIAogUEFTUyBUZXN0IGNhbGxpbmcg
d2FpdFVudGlsIG9uIGEgc2NyaXB0IGNvbnN0cnVjdGVkIEV4dGVuZGFibGVFdmVudCB0aHJvd3Mg
ZXhjZXB0aW9uIAogUEFTUyBUZXN0IGNhbGxpbmcgd2FpdFVudGlsIGFzeW5jaHJvbm91c2x5IHdp
dGggcGVuZGluZyByZXNwb25kV2l0aCBwcm9taXNlLiAKLVBBU1MgVGVzdCBjYWxsaW5nIHdhaXRV
bnRpbCBzeW5jaHJvbm91c2x5IGluc2lkZSBtaWNyb3Rhc2sgb2YgcmVzcG9uZFdpdGggcHJvbWlz
ZSAoZXZlbnQgaXMgYmVpbmcgZGlzcGF0Y2hlZCkuIAotUEFTUyBUZXN0IGNhbGxpbmcgd2FpdFVu
dGlsIGFzeW5jaHJvbm91c2x5IGluc2lkZSBtaWNyb3Rhc2sgb2YgcmVzcG9uZFdpdGggcHJvbWlz
ZSAoZXZlbnQgaXMgYmVpbmcgZGlzcGF0Y2hlZCkuIAotUEFTUyBUZXN0IGNhbGxpbmcgd2FpdFVu
dGlsIHN5bmNocm9ub3VzbHkgaW5zaWRlIG1pY3JvdGFzayBvZiByZXNwb25kV2l0aCBwcm9taXNl
IChldmVudCBpcyBub3QgYmVpbmcgZGlzcGF0Y2hlZCkuIAotUEFTUyBUZXN0IGNhbGxpbmcgd2Fp
dFVudGlsIGFzeW5jaHJvbm91c2x5IGluc2lkZSBtaWNyb3Rhc2sgb2YgcmVzcG9uZFdpdGggcHJv
bWlzZSAoZXZlbnQgaXMgbm90IGJlaW5nIGRpc3BhdGNoZWQpLiAKK1BBU1MgVGVzdCBjYWxsaW5n
IHdhaXRVbnRpbCBzeW5jaHJvbm91c2x5IGluc2lkZSBtaWNyb3Rhc2sgb2YgcmVzcG9uZFdpdGgg
cHJvbWlzZS4gCitGQUlMIFRlc3QgY2FsbGluZyB3YWl0VW50aWwgYXN5bmNocm9ub3VzbHkgaW5z
aWRlIG1pY3JvdGFzayBvZiByZXNwb25kV2l0aCBwcm9taXNlLiBhc3NlcnRfdW5yZWFjaGVkOiB1
bmV4cGVjdGVkIHJlamVjdGlvbjogYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIkludmFsaWRTdGF0
ZUVycm9yIiBidXQgZ290ICJPSyIgUmVhY2hlZCB1bnJlYWNoYWJsZSBjb2RlCiAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL2V4dGVuZGFibGUtZXZlbnQtYXN5bmMtd2FpdHVudGlsLmh0
dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9leHRlbmRhYmxlLWV2ZW50LWFzeW5jLXdhaXR1
bnRpbC5odHRwcy5odG1sCmluZGV4IDA0ZTk4MjY2YjRmMWEwYjZlYzU3MmUxYzMxN2FiODUyZmMy
ZTQ0ODAuLmJlNGVmYmJjMzQyMjJmNzA4Nzc1M2M3NTkyMGFlZTFlY2VkOTk4YjAgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL2V4dGVuZGFibGUtZXZlbnQtYXN5bmMtd2FpdHVudGlsLmh0
dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZXh0ZW5kYWJsZS1ldmVudC1hc3luYy13
YWl0dW50aWwuaHR0cHMuaHRtbApAQCAtMSw1ICsxLDQgQEAKIDwhRE9DVFlQRSBodG1sPgotPG1l
dGEgbmFtZT0idGltZW91dCIgY29udGVudD0ibG9uZyI+CiA8c2NyaXB0IHNyYz0iL3Jlc291cmNl
cy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLWhlbHBlcnMuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVz
dGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgpAQCAtMjMsMTkgKzIyLDE1IEBAIGZ1bmN0aW9u
IHN5bmNfbWVzc2FnZSh3b3JrZXIsIG1lc3NhZ2UsIHRyYW5zZmVyKSB7CiBmdW5jdGlvbiBydW5U
ZXN0KHRlc3QsIHN0ZXAsIHRlc3RCb2R5KSB7CiAgIHZhciBzY29wZSA9ICcuL3Jlc291cmNlcy8n
ICsgc3RlcDsKICAgdmFyIHNjcmlwdCA9ICdyZXNvdXJjZXMvZXh0ZW5kYWJsZS1ldmVudC1hc3lu
Yy13YWl0dW50aWwuanM/JyArIHNjb3BlOwotICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdp
c3Rlcl9hbmRfcmVnaXN0ZXIodGVzdCwgc2NyaXB0LCBzY29wZSkKKyAgc2VydmljZV93b3JrZXJf
dW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodGVzdCwgc2NyaXB0LCBzY29wZSkKICAgICAudGhlbihm
dW5jdGlvbihyZWdpc3RyYXRpb24pIHsKLSAgICAgICAgdGVzdC5hZGRfY2xlYW51cChmdW5jdGlv
bigpIHsKLSAgICAgICAgICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyKHRlc3Qs
IHNjb3BlKTsKLSAgICAgICAgICB9KTsKLQogICAgICAgICBsZXQgd29ya2VyID0gcmVnaXN0cmF0
aW9uLmluc3RhbGxpbmc7CiAgICAgICAgIHZhciBjaGFubmVsID0gbmV3IE1lc3NhZ2VDaGFubmVs
KCk7CiAgICAgICAgIHZhciBzYXdfbWVzc2FnZSA9IG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29s
dmUpIHsKICAgICAgICAgICBjaGFubmVsLnBvcnQxLm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGUpIHsg
cmVzb2x2ZShlLmRhdGEpOyB9CiAgICAgICAgIH0pOwogCi0gICAgICAgIHJldHVybiB3YWl0X2Zv
cl9zdGF0ZSh0ZXN0LCB3b3JrZXIsICdhY3RpdmF0ZWQnKQorICAgICAgICB3YWl0X2Zvcl9zdGF0
ZSh0ZXN0LCB3b3JrZXIsICdhY3RpdmF0ZWQnKQogICAgICAgICAgIC50aGVuKGZ1bmN0aW9uKCkg
ewogICAgICAgICAgICAgICByZXR1cm4gc3luY19tZXNzYWdlKHdvcmtlciwgeyBzdGVwOiAnaW5p
dCcsIHBvcnQ6IGNoYW5uZWwucG9ydDIgfSwKICAgICAgICAgICAgICAgICBbY2hhbm5lbC5wb3J0
Ml0pOwpAQCAtNDUsNyArNDAsOSBAQCBmdW5jdGlvbiBydW5UZXN0KHRlc3QsIHN0ZXAsIHRlc3RC
b2R5KSB7CiAgICAgICAgICAgLnRoZW4oZnVuY3Rpb24ob3V0cHV0KSB7CiAgICAgICAgICAgICAg
IGFzc2VydF9lcXVhbHMob3V0cHV0LnJlc3VsdCwgb3V0cHV0LmV4cGVjdGVkKTsKICAgICAgICAg
ICAgIH0pCi0gICAgICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7IHJldHVybiBzeW5jX21lc3NhZ2Uo
d29ya2VyLCB7IHN0ZXA6ICdkb25lJyB9KTsgfSk7CisgICAgICAgICAgLnRoZW4oZnVuY3Rpb24o
KSB7IHJldHVybiBzeW5jX21lc3NhZ2Uod29ya2VyLCB7IHN0ZXA6ICdkb25lJyB9KTsgfSkKKyAg
ICAgICAgICAudGhlbigoKSA9PiB7IHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX2RvbmUo
dGVzdCwgc2NvcGUpOyB9KQorICAgICAgICAgIC5jYXRjaCh1bnJlYWNoZWRfcmVqZWN0aW9uKHRl
c3QpKTsKICAgICAgIH0pOwogfQogCkBAIC01Myw2OCArNTAsNTIgQEAgZnVuY3Rpb24gbXNnX2V2
ZW50X3Rlc3Qoc2NvcGUsIHRlc3QpIHsKICAgdmFyIHRlc3RCb2R5ID0gZnVuY3Rpb24od29ya2Vy
KSB7CiAgICAgcmV0dXJuIHN5bmNfbWVzc2FnZSh3b3JrZXIsIHsgc3RlcDogc2NvcGUgfSk7CiAg
IH07Ci0gIHJldHVybiBydW5UZXN0KHRlc3QsIHNjb3BlLCB0ZXN0Qm9keSk7CisgIHJ1blRlc3Qo
dGVzdCwgc2NvcGUsIHRlc3RCb2R5KTsKIH0KIAotcHJvbWlzZV90ZXN0KG1zZ19ldmVudF90ZXN0
LmJpbmQodGhpcywgJ25vLWN1cnJlbnQtZXh0ZW5zaW9uLWRpZmZlcmVudC10YXNrJyksCi0gICdU
ZXN0IGNhbGxpbmcgd2FpdFVudGlsIGluIGEgdGFzayBhdCB0aGUgZW5kIG9mIHRoZSBldmVudCBo
YW5kbGVyIHdpdGhvdXQgYW4gZXhpc3RpbmcgZXh0ZW5zaW9uIHRocm93cycpOwotCi1wcm9taXNl
X3Rlc3QobXNnX2V2ZW50X3Rlc3QuYmluZCh0aGlzLCAnbm8tY3VycmVudC1leHRlbnNpb24tZGlm
ZmVyZW50LW1pY3JvdGFzaycpLAotICAnVGVzdCBjYWxsaW5nIHdhaXRVbnRpbCBpbiBhIG1pY3Jv
dGFzayBhdCB0aGUgZW5kIG9mIHRoZSBldmVudCBoYW5kbGVyIHdpdGhvdXQgYW4gZXhpc3Rpbmcg
ZXh0ZW5zaW9uIHN1Y2VlZHMnKTsKK2FzeW5jX3Rlc3QobXNnX2V2ZW50X3Rlc3QuYmluZCh0aGlz
LCAnbm8tY3VycmVudC1leHRlbnNpb24tZGlmZmVyZW50LXRhc2snKSwKKyAgJ1Rlc3QgY2FsbGlu
ZyB3YWl0VW50aWwgaW4gYSBkaWZmZXJlbnQgdGFzayB3aXRob3V0IGFuIGV4aXN0aW5nIGV4dGVu
c2lvbiB0aHJvd3MnKTsKIAotcHJvbWlzZV90ZXN0KG1zZ19ldmVudF90ZXN0LmJpbmQodGhpcywg
J2N1cnJlbnQtZXh0ZW5zaW9uLWRpZmZlcmVudC10YXNrJyksCi0gICdUZXN0IGNhbGxpbmcgd2Fp
dFVudGlsIGluIGEgZGlmZmVyZW50IHRhc2sgYW4gZXhpc3RpbmcgZXh0ZW5zaW9uIHN1Y2NlZWRz
Jyk7Cithc3luY190ZXN0KG1zZ19ldmVudF90ZXN0LmJpbmQodGhpcywgJ25vLWN1cnJlbnQtZXh0
ZW5zaW9uLWRpZmZlcmVudC1taWNyb3Rhc2snKSwKKyAgJ1Rlc3QgY2FsbGluZyB3YWl0VW50aWwg
aW4gYSBkaWZmZXJlbnQgbWljcm90YXNrIHdpdGhvdXQgYW4gZXhpc3RpbmcgZXh0ZW5zaW9uIHRo
cm93cycpOwogCi1wcm9taXNlX3Rlc3QobXNnX2V2ZW50X3Rlc3QuYmluZCh0aGlzLCAnZHVyaW5n
LWV2ZW50LWRpc3BhdGNoLWN1cnJlbnQtZXh0ZW5zaW9uLWV4cGlyZWQtc2FtZS1taWNyb3Rhc2st
dHVybicpLAotICAnVGVzdCBjYWxsaW5nIHdhaXRVbnRpbCBhdCB0aGUgZW5kIG9mIGFuIGV4aXN0
aW5nIGV4dGVuc2lvbiBwcm9taXNlIGhhbmRsZXIgc3VjY2VlZHMgKGV2ZW50IGlzIHN0aWxsIGJl
aW5nIGRpc3BhdGNoZWQpJyk7Cithc3luY190ZXN0KG1zZ19ldmVudF90ZXN0LmJpbmQodGhpcywg
J2N1cnJlbnQtZXh0ZW5zaW9uLWRpZmZlcmVudC10YXNrJyksCisgICdUZXN0IGNhbGxpbmcgd2Fp
dFVudGlsIGluIGEgZGlmZmVyZW50IHRhc2sgd2l0aCBhbiBleGlzdGluZyBleHRlbnNpb24gc3Vj
Y2VlZHMnKTsKIAotcHJvbWlzZV90ZXN0KG1zZ19ldmVudF90ZXN0LmJpbmQodGhpcywgJ2R1cmlu
Zy1ldmVudC1kaXNwYXRjaC1jdXJyZW50LWV4dGVuc2lvbi1leHBpcmVkLXNhbWUtbWljcm90YXNr
LXR1cm4tZXh0cmEnKSwKLSAgJ1Rlc3QgY2FsbGluZyB3YWl0VW50aWwgaW4gYSBtaWNyb3Rhc2sg
YXQgdGhlIGVuZCBvZiBhbiBleGlzdGluZyBleHRlbnNpb24gcHJvbWlzZSBoYW5kbGVyIHN1Y2Nl
ZWRzIChldmVudCBpcyBzdGlsbCBiZWluZyBkaXNwYXRjaGVkKScpOworYXN5bmNfdGVzdChtc2df
ZXZlbnRfdGVzdC5iaW5kKHRoaXMsICdjdXJyZW50LWV4dGVuc2lvbi1leHBpcmVkLXNhbWUtbWlj
cm90YXNrLXR1cm4nKSwKKyAgJ1Rlc3QgY2FsbGluZyB3YWl0VW50aWwgd2l0aCBhbiBleGlzdGlu
ZyBleHRlbnNpb24gcHJvbWlzZSBoYW5kbGVyIHN1Y2NlZWRzJyk7CiAKLXByb21pc2VfdGVzdCht
c2dfZXZlbnRfdGVzdC5iaW5kKHRoaXMsICdhZnRlci1ldmVudC1kaXNwYXRjaC1jdXJyZW50LWV4
dGVuc2lvbi1leHBpcmVkLXNhbWUtbWljcm90YXNrLXR1cm4nKSwKLSAgJ1Rlc3QgY2FsbGluZyB3
YWl0VW50aWwgaW4gYW4gZXhpc3RpbmcgZXh0ZW5zaW9uIHByb21pc2UgaGFuZGxlciBzdWNjZWVk
cyAoZXZlbnQgaXMgbm90IGJlaW5nIGRpc3BhdGNoZWQpJyk7CisvLyBUaGUgcHJvbWlzZSBoYW5k
bGVyIHdpbGwgcXVldWUgYSBuZXcgbWljcm90YXNrIGFmdGVyIHRoZSBjaGVjayBmb3IgbmV3Cisv
LyBleHRlbnNpb25zIHdhcyBwZXJmb3JtZWQuCithc3luY190ZXN0KG1zZ19ldmVudF90ZXN0LmJp
bmQodGhpcywgJ2N1cnJlbnQtZXh0ZW5zaW9uLWV4cGlyZWQtc2FtZS1taWNyb3Rhc2stdHVybi1l
eHRyYScpLAorICAnVGVzdCBjYWxsaW5nIHdhaXRVbnRpbCBhdCB0aGUgZW5kIG9mIHRoZSBtaWNy
b3Rhc2sgdHVybiB0aHJvd3MnKTsKIAotcHJvbWlzZV90ZXN0KG1zZ19ldmVudF90ZXN0LmJpbmQo
dGhpcywgJ2FmdGVyLWV2ZW50LWRpc3BhdGNoLWN1cnJlbnQtZXh0ZW5zaW9uLWV4cGlyZWQtc2Ft
ZS1taWNyb3Rhc2stdHVybi1leHRyYScpLAotICAnVGVzdCBjYWxsaW5nIHdhaXRVbnRpbCBpbiBh
IG1pY3JvdGFzayBhdCB0aGUgZW5kIG9mIGFuIGV4aXN0aW5nIGV4dGVuc2lvbiBwcm9taXNlIGhh
bmRsZXIgdGhyb3dzIChldmVudCBpcyBub3QgYmVpbmcgZGlzcGF0Y2hlZCknKTsKLQotcHJvbWlz
ZV90ZXN0KG1zZ19ldmVudF90ZXN0LmJpbmQodGhpcywgJ2N1cnJlbnQtZXh0ZW5zaW9uLWV4cGly
ZWQtZGlmZmVyZW50LXRhc2snKSwKK2FzeW5jX3Rlc3QobXNnX2V2ZW50X3Rlc3QuYmluZCh0aGlz
LCAnY3VycmVudC1leHRlbnNpb24tZXhwaXJlZC1kaWZmZXJlbnQtdGFzaycpLAogICAnVGVzdCBj
YWxsaW5nIHdhaXRVbnRpbCBhZnRlciB0aGUgY3VycmVudCBleHRlbnNpb24gZXhwaXJlZCBpbiBh
IGRpZmZlcmVudCB0YXNrIGZhaWxzJyk7CiAKLXByb21pc2VfdGVzdChtc2dfZXZlbnRfdGVzdC5i
aW5kKHRoaXMsICdzY3JpcHQtZXh0ZW5kYWJsZS1ldmVudCcpLAorYXN5bmNfdGVzdChtc2dfZXZl
bnRfdGVzdC5iaW5kKHRoaXMsICdzY3JpcHQtZXh0ZW5kYWJsZS1ldmVudCcpLAogICAnVGVzdCBj
YWxsaW5nIHdhaXRVbnRpbCBvbiBhIHNjcmlwdCBjb25zdHJ1Y3RlZCBFeHRlbmRhYmxlRXZlbnQg
dGhyb3dzIGV4Y2VwdGlvbicpOwogCi1wcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgeworYXN5bmNf
dGVzdChmdW5jdGlvbih0KSB7CiAgICAgdmFyIHRlc3RCb2R5ID0gZnVuY3Rpb24od29ya2VyKSB7
Ci0gICAgICByZXR1cm4gd2l0aF9pZnJhbWUoJy4vcmVzb3VyY2VzL3BlbmRpbmctcmVzcG9uZHdp
dGgtYXN5bmMtd2FpdHVudGlsJyk7CisgICAgICByZXR1cm4gd2l0aF9pZnJhbWUoJy4vcmVzb3Vy
Y2VzL3BlbmRpbmctcmVzcG9uZHdpdGgtYXN5bmMtd2FpdHVudGlsL2R1bW15Lmh0bWwnKTsKICAg
ICB9Ci0gICAgcmV0dXJuIHJ1blRlc3QodCwgJ3BlbmRpbmctcmVzcG9uZHdpdGgtYXN5bmMtd2Fp
dHVudGlsJywgdGVzdEJvZHkpOworICAgIHJ1blRlc3QodCwgJ3BlbmRpbmctcmVzcG9uZHdpdGgt
YXN5bmMtd2FpdHVudGlsJywgdGVzdEJvZHkpOwogICB9LCAnVGVzdCBjYWxsaW5nIHdhaXRVbnRp
bCBhc3luY2hyb25vdXNseSB3aXRoIHBlbmRpbmcgcmVzcG9uZFdpdGggcHJvbWlzZS4nKTsKIAot
cHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKK2FzeW5jX3Rlc3QoZnVuY3Rpb24odCkgewogICAg
IHZhciB0ZXN0Qm9keSA9IGZ1bmN0aW9uKHdvcmtlcikgewotICAgICAgcmV0dXJuIHdpdGhfaWZy
YW1lKCcuL3Jlc291cmNlcy9kdXJpbmctZXZlbnQtZGlzcGF0Y2gtcmVzcG9uZHdpdGgtbWljcm90
YXNrLXN5bmMtd2FpdHVudGlsJyk7CisgICAgICByZXR1cm4gd2l0aF9pZnJhbWUoJy4vcmVzb3Vy
Y2VzL3Jlc3BvbmR3aXRoLW1pY3JvdGFzay1zeW5jLXdhaXR1bnRpbC9kdW1teS5odG1sJyk7CiAg
ICAgfQotICAgIHJldHVybiBydW5UZXN0KHQsICdkdXJpbmctZXZlbnQtZGlzcGF0Y2gtcmVzcG9u
ZHdpdGgtbWljcm90YXNrLXN5bmMtd2FpdHVudGlsJywgdGVzdEJvZHkpOwotICB9LCAnVGVzdCBj
YWxsaW5nIHdhaXRVbnRpbCBzeW5jaHJvbm91c2x5IGluc2lkZSBtaWNyb3Rhc2sgb2YgcmVzcG9u
ZFdpdGggcHJvbWlzZSAoZXZlbnQgaXMgYmVpbmcgZGlzcGF0Y2hlZCkuJyk7CisgICAgcnVuVGVz
dCh0LCAncmVzcG9uZHdpdGgtbWljcm90YXNrLXN5bmMtd2FpdHVudGlsJywgdGVzdEJvZHkpOwor
ICB9LCAnVGVzdCBjYWxsaW5nIHdhaXRVbnRpbCBzeW5jaHJvbm91c2x5IGluc2lkZSBtaWNyb3Rh
c2sgb2YgcmVzcG9uZFdpdGggcHJvbWlzZS4nKTsKIAotcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQp
IHsKK2FzeW5jX3Rlc3QoZnVuY3Rpb24odCkgewogICAgIHZhciB0ZXN0Qm9keSA9IGZ1bmN0aW9u
KHdvcmtlcikgewotICAgICAgcmV0dXJuIHdpdGhfaWZyYW1lKCcuL3Jlc291cmNlcy9kdXJpbmct
ZXZlbnQtZGlzcGF0Y2gtcmVzcG9uZHdpdGgtbWljcm90YXNrLWFzeW5jLXdhaXR1bnRpbCcpOwor
ICAgICAgcmV0dXJuIHdpdGhfaWZyYW1lKCcuL3Jlc291cmNlcy9yZXNwb25kd2l0aC1taWNyb3Rh
c2stYXN5bmMtd2FpdHVudGlsL2R1bW15Lmh0bWwnKTsKICAgICB9Ci0gICAgcmV0dXJuIHJ1blRl
c3QodCwgJ2R1cmluZy1ldmVudC1kaXNwYXRjaC1yZXNwb25kd2l0aC1taWNyb3Rhc2stYXN5bmMt
d2FpdHVudGlsJywgdGVzdEJvZHkpOwotICB9LCAnVGVzdCBjYWxsaW5nIHdhaXRVbnRpbCBhc3lu
Y2hyb25vdXNseSBpbnNpZGUgbWljcm90YXNrIG9mIHJlc3BvbmRXaXRoIHByb21pc2UgKGV2ZW50
IGlzIGJlaW5nIGRpc3BhdGNoZWQpLicpOworICAgIHJ1blRlc3QodCwgJ3Jlc3BvbmR3aXRoLW1p
Y3JvdGFzay1hc3luYy13YWl0dW50aWwnLCB0ZXN0Qm9keSk7CisgIH0sICdUZXN0IGNhbGxpbmcg
d2FpdFVudGlsIGFzeW5jaHJvbm91c2x5IGluc2lkZSBtaWNyb3Rhc2sgb2YgcmVzcG9uZFdpdGgg
cHJvbWlzZS4nKTsKIAotcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKLSAgICB2YXIgdGVzdEJv
ZHkgPSBmdW5jdGlvbih3b3JrZXIpIHsKLSAgICAgIHJldHVybiB3aXRoX2lmcmFtZSgnLi9yZXNv
dXJjZXMvYWZ0ZXItZXZlbnQtZGlzcGF0Y2gtcmVzcG9uZHdpdGgtbWljcm90YXNrLXN5bmMtd2Fp
dHVudGlsJyk7Ci0gICAgfQotICAgIHJldHVybiBydW5UZXN0KHQsICdhZnRlci1ldmVudC1kaXNw
YXRjaC1yZXNwb25kd2l0aC1taWNyb3Rhc2stc3luYy13YWl0dW50aWwnLCB0ZXN0Qm9keSk7Ci0g
IH0sICdUZXN0IGNhbGxpbmcgd2FpdFVudGlsIHN5bmNocm9ub3VzbHkgaW5zaWRlIG1pY3JvdGFz
ayBvZiByZXNwb25kV2l0aCBwcm9taXNlIChldmVudCBpcyBub3QgYmVpbmcgZGlzcGF0Y2hlZCku
Jyk7CiAKLXByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7Ci0gICAgdmFyIHRlc3RCb2R5ID0gZnVu
Y3Rpb24od29ya2VyKSB7Ci0gICAgICByZXR1cm4gd2l0aF9pZnJhbWUoJy4vcmVzb3VyY2VzL2Fm
dGVyLWV2ZW50LWRpc3BhdGNoLXJlc3BvbmR3aXRoLW1pY3JvdGFzay1hc3luYy13YWl0dW50aWwn
KTsKLSAgICB9Ci0gICAgcmV0dXJuIHJ1blRlc3QodCwgJ2FmdGVyLWV2ZW50LWRpc3BhdGNoLXJl
c3BvbmR3aXRoLW1pY3JvdGFzay1hc3luYy13YWl0dW50aWwnLCB0ZXN0Qm9keSk7Ci0gIH0sICdU
ZXN0IGNhbGxpbmcgd2FpdFVudGlsIGFzeW5jaHJvbm91c2x5IGluc2lkZSBtaWNyb3Rhc2sgb2Yg
cmVzcG9uZFdpdGggcHJvbWlzZSAoZXZlbnQgaXMgbm90IGJlaW5nIGRpc3BhdGNoZWQpLicpOwog
PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9leHRlbmRhYmxlLWV2ZW50
LXdhaXR1bnRpbC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZXh0ZW5kYWJsZS1ldmVu
dC13YWl0dW50aWwuaHR0cHMuaHRtbAppbmRleCAzM2I0ZWFjNWMxODVlOTExMDIzMDk0ZjIxMGNl
NGRiOWI2ZGRkYWRiLi44ZTc5MGQwZWY1YWQ2ZDg1MTUzNDM2MmRlNTY0N2Q5NjY5OWE2NWY3IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9leHRlbmRhYmxlLWV2ZW50LXdhaXR1bnRpbC5o
dHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2V4dGVuZGFibGUtZXZlbnQtd2FpdHVu
dGlsLmh0dHBzLmh0bWwKQEAgLTYsODUgKzYsNzUgQEAKIDxzY3JpcHQ+CiBmdW5jdGlvbiBydW5U
ZXN0KHRlc3QsIHNjb3BlLCBvblJlZ2lzdGVyKSB7CiAgIHZhciBzY3JpcHQgPSAncmVzb3VyY2Vz
L2V4dGVuZGFibGUtZXZlbnQtd2FpdHVudGlsLmpzPycgKyBzY29wZTsKLSAgcmV0dXJuIHNlcnZp
Y2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHRlc3QsIHNjcmlwdCwgc2NvcGUpCisg
IHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHRlc3QsIHNjcmlwdCwgc2Nv
cGUpCiAgICAgLnRoZW4oZnVuY3Rpb24ocmVnaXN0cmF0aW9uKSB7Ci0gICAgICAgIHRlc3QuYWRk
X2NsZWFudXAoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICByZXR1cm4gc2VydmljZV93b3JrZXJf
dW5yZWdpc3Rlcih0ZXN0LCBzY29wZSk7Ci0gICAgICAgICAgfSk7Ci0KLSAgICAgICAgcmV0dXJu
IG9uUmVnaXN0ZXIocmVnaXN0cmF0aW9uLmluc3RhbGxpbmcpOworICAgICAgICBvblJlZ2lzdGVy
KHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nKTsKICAgICAgIH0pOwogfQogCiAvLyBTZW5kcyBhIFNZ
TiB0byB0aGUgd29ya2VyIGFuZCBhc3luY2hyb25vdXNseSBsaXN0ZW5zIGZvciBhbiBBQ0s7IHNl
dHMKIC8vIHxvYmouc3luY2VkfCB0byB0cnVlIG9uY2UgYWNrJ2QuCi1mdW5jdGlvbiBzeW5jV29y
a2VyKHdvcmtlciwgb2JqKSB7CitmdW5jdGlvbiBzeW5jV29ya2VyKHRlc3QsIHdvcmtlciwgb2Jq
KSB7CiAgIHZhciBjaGFubmVsID0gbmV3IE1lc3NhZ2VDaGFubmVsKCk7CiAgIHdvcmtlci5wb3N0
TWVzc2FnZSh7cG9ydDogY2hhbm5lbC5wb3J0Mn0sIFtjaGFubmVsLnBvcnQyXSk7CiAgIHJldHVy
biBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlKSB7Ci0gICAgICBjaGFubmVsLnBvcnQxLm9u
bWVzc2FnZSA9IHJlc29sdmU7Ci0gICAgfSkudGhlbihmdW5jdGlvbihlKSB7Ci0gICAgICB2YXIg
bWVzc2FnZSA9IGUuZGF0YTsKLSAgICAgIGFzc2VydF9lcXVhbHMobWVzc2FnZSwgJ1NZTkMnLAot
ICAgICAgICAgICAgICAgICAgICAnU2hvdWxkIHJlY2VpdmUgc3luYyBtZXNzYWdlIGZyb20gd29y
a2VyLicpOwotICAgICAgb2JqLnN5bmNlZCA9IHRydWU7Ci0gICAgICBjaGFubmVsLnBvcnQxLnBv
c3RNZXNzYWdlKCdBQ0snKTsKKyAgICAgIGNoYW5uZWwucG9ydDEub25tZXNzYWdlID0gdGVzdC5z
dGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgIHZhciBtZXNzYWdlID0gZS5kYXRhOwor
ICAgICAgICAgIGFzc2VydF9lcXVhbHMobWVzc2FnZSwgJ1NZTkMnLAorICAgICAgICAgICAgICAg
ICAgICAgICAgJ1Nob3VsZCByZWNlaXZlIHN5bmMgbWVzc2FnZSBmcm9tIHdvcmtlci4nKTsKKyAg
ICAgICAgICBvYmouc3luY2VkID0gdHJ1ZTsKKyAgICAgICAgICBjaGFubmVsLnBvcnQxLnBvc3RN
ZXNzYWdlKCdBQ0snKTsKKyAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgIH0pOwogICAgIH0p
OwogfQogCi1wcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgeworYXN5bmNfdGVzdChmdW5jdGlvbih0
KSB7CiAgICAgLy8gUGFzc2luZyBzY29wZSBhcyB0aGUgdGVzdCBzd2l0Y2ggZm9yIHdvcmtlciBz
Y3JpcHQuCiAgICAgdmFyIHNjb3BlID0gJ3Jlc291cmNlcy9pbnN0YWxsLWZ1bGZpbGxlZCc7CiAg
ICAgdmFyIG9uUmVnaXN0ZXIgPSBmdW5jdGlvbih3b3JrZXIpIHsKICAgICAgICAgdmFyIG9iaiA9
IHt9OwotCi0gICAgICAgIHJldHVybiBQcm9taXNlLmFsbChbCi0gICAgICAgICAgICBzeW5jV29y
a2VyKHdvcmtlciwgb2JqKSwKLSAgICAgICAgICAgIHdhaXRfZm9yX3N0YXRlKHQsIHdvcmtlciwg
J2luc3RhbGxlZCcpCi0gICAgICAgICAgXSkudGhlbihmdW5jdGlvbigpIHsKKyAgICAgICAgd2Fp
dF9mb3Jfc3RhdGUodCwgd29ya2VyLCAnaW5zdGFsbGVkJykKKyAgICAgICAgICAudGhlbihmdW5j
dGlvbigpIHsKICAgICAgICAgICAgICAgYXNzZXJ0X3RydWUoCiAgICAgICAgICAgICAgICAgb2Jq
LnN5bmNlZCwKICAgICAgICAgICAgICAgICAnc3RhdGUgc2hvdWxkIGJlICJpbnN0YWxsZWQiIGFm
dGVyIHRoZSB3YWl0VW50aWwgcHJvbWlzZSAnICsKICAgICAgICAgICAgICAgICAgICAgJ2ZvciAi
b25pbnN0YWxsIiBpcyBmdWxmaWxsZWQuJyk7CiAgICAgICAgICAgICAgIHNlcnZpY2Vfd29ya2Vy
X3VucmVnaXN0ZXJfYW5kX2RvbmUodCwgc2NvcGUpOwotICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICB9KQorICAgICAgICAgIC5jYXRjaCh1bnJlYWNoZWRfcmVqZWN0aW9uKHQpKTsKKyAgICAg
ICAgc3luY1dvcmtlcih0LCB3b3JrZXIsIG9iaik7CiAgICAgICB9OwotICAgIHJldHVybiBydW5U
ZXN0KHQsIHNjb3BlLCBvblJlZ2lzdGVyKTsKKyAgICBydW5UZXN0KHQsIHNjb3BlLCBvblJlZ2lz
dGVyKTsKICAgfSwgJ1Rlc3QgaW5zdGFsbCBldmVudCB3YWl0VW50aWwgZnVsZmlsbGVkJyk7CiAK
LXByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7Cithc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKICAg
ICB2YXIgc2NvcGUgPSAncmVzb3VyY2VzL2luc3RhbGwtbXVsdGlwbGUtZnVsZmlsbGVkJzsKICAg
ICB2YXIgb25SZWdpc3RlciA9IGZ1bmN0aW9uKHdvcmtlcikgewogICAgICAgICB2YXIgb2JqMSA9
IHt9OwogICAgICAgICB2YXIgb2JqMiA9IHt9OwotCi0gICAgICAgIHJldHVybiBQcm9taXNlLmFs
bChbCi0gICAgICAgICAgICBzeW5jV29ya2VyKHdvcmtlciwgb2JqMSksCi0gICAgICAgICAgICBz
eW5jV29ya2VyKHdvcmtlciwgb2JqMiksCi0gICAgICAgICAgICB3YWl0X2Zvcl9zdGF0ZSh0LCB3
b3JrZXIsICdpbnN0YWxsZWQnKQotICAgICAgICAgIF0pLnRoZW4oZnVuY3Rpb24oKSB7CisgICAg
ICAgIHdhaXRfZm9yX3N0YXRlKHQsIHdvcmtlciwgJ2luc3RhbGxlZCcpCisgICAgICAgICAgLnRo
ZW4oZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgIGFzc2VydF90cnVlKAogICAgICAgICAgICAg
ICAgIG9iajEuc3luY2VkICYmIG9iajIuc3luY2VkLAogICAgICAgICAgICAgICAgICdzdGF0ZSBz
aG91bGQgYmUgImluc3RhbGxlZCIgYWZ0ZXIgYWxsIHdhaXRVbnRpbCBwcm9taXNlcyAnICsKICAg
ICAgICAgICAgICAgICAgICAgJ2ZvciAib25pbnN0YWxsIiBhcmUgZnVsZmlsbGVkLicpOwotICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgICAgIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5k
X2RvbmUodCwgc2NvcGUpOworICAgICAgICAgICAgfSkKKyAgICAgICAgICAuY2F0Y2godW5yZWFj
aGVkX3JlamVjdGlvbih0KSk7CisgICAgICAgIHN5bmNXb3JrZXIodCwgd29ya2VyLCBvYmoxKTsK
KyAgICAgICAgc3luY1dvcmtlcih0LCB3b3JrZXIsIG9iajIpOwogICAgICAgfTsKLSAgICByZXR1
cm4gcnVuVGVzdCh0LCBzY29wZSwgb25SZWdpc3Rlcik7CisgICAgcnVuVGVzdCh0LCBzY29wZSwg
b25SZWdpc3Rlcik7CiAgIH0sICdUZXN0IEV4dGVuZGFibGVFdmVudCBtdWx0aXBsZSB3YWl0VW50
aWwgZnVsZmlsbGVkLicpOwogCi1wcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgeworYXN5bmNfdGVz
dChmdW5jdGlvbih0KSB7CiAgICAgdmFyIHNjb3BlID0gJ3Jlc291cmNlcy9pbnN0YWxsLXJlamVj
dC1wcmVjZWRlbmNlJzsKICAgICB2YXIgb25SZWdpc3RlciA9IGZ1bmN0aW9uKHdvcmtlcikgewog
ICAgICAgICB2YXIgb2JqMSA9IHt9OwogICAgICAgICB2YXIgb2JqMiA9IHt9OwotCi0gICAgICAg
IHJldHVybiBQcm9taXNlLmFsbChbCi0gICAgICAgICAgICBzeW5jV29ya2VyKHdvcmtlciwgb2Jq
MSkKLSAgICAgICAgICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgICAgICBz
eW5jV29ya2VyKHdvcmtlciwgb2JqMik7Ci0gICAgICAgICAgICAgICAgfSksCi0gICAgICAgICAg
ICB3YWl0X2Zvcl9zdGF0ZSh0LCB3b3JrZXIsICdyZWR1bmRhbnQnKQotICAgICAgICAgIF0pLnRo
ZW4oZnVuY3Rpb24oKSB7CisgICAgICAgIHdhaXRfZm9yX3N0YXRlKHQsIHdvcmtlciwgJ3JlZHVu
ZGFudCcpCisgICAgICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgIGFzc2Vy
dF90cnVlKAogICAgICAgICAgICAgICAgIG9iajEuc3luY2VkLAogICAgICAgICAgICAgICAgICdU
aGUgInJlZHVuZGFudCIgc3RhdGUgd2FzIGVudGVyZWQgYWZ0ZXIgdGhlIGZpcnN0ICJleHRlbmQg
JyArCkBAIC05NSw0NiArODUsNjEgQEAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICAg
ICAgICAgICAgICAnVGhlICJyZWR1bmRhbnQiIHN0YXRlIHdhcyBlbnRlcmVkIGFmdGVyIHRoZSB0
aGlyZCAiZXh0ZW5kICcgKwogICAgICAgICAgICAgICAgICAgJ2xpZmV0aW1lIHByb21pc2UiIHJl
c29sdmVkLicKICAgICAgICAgICAgICAgKTsKKyAgICAgICAgICAgICAgc2VydmljZV93b3JrZXJf
dW5yZWdpc3Rlcl9hbmRfZG9uZSh0LCBzY29wZSk7CisgICAgICAgICAgICB9KQorICAgICAgICAg
IC5jYXRjaCh1bnJlYWNoZWRfcmVqZWN0aW9uKHQpKTsKKworICAgICAgICBzeW5jV29ya2VyKHQs
IHdvcmtlciwgb2JqMSkKKyAgICAgICAgICAudGhlbihmdW5jdGlvbigpIHsKKyAgICAgICAgICAg
ICAgc3luY1dvcmtlcih0LCB3b3JrZXIsIG9iajIpOwogICAgICAgICAgICAgfSk7CiAgICAgICB9
OwotICAgIHJldHVybiBydW5UZXN0KHQsIHNjb3BlLCBvblJlZ2lzdGVyKTsKKyAgICBydW5UZXN0
KHQsIHNjb3BlLCBvblJlZ2lzdGVyKTsKICAgfSwgJ1Rlc3QgRXh0ZW5kYWJsZUV2ZW50IHdhaXRV
bnRpbCByZWplY3QgcHJlY2VkZW5jZS4nKTsKIAotcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsK
K2FzeW5jX3Rlc3QoZnVuY3Rpb24odCkgewogICAgIHZhciBzY29wZSA9ICdyZXNvdXJjZXMvYWN0
aXZhdGUtZnVsZmlsbGVkJzsKICAgICB2YXIgb25SZWdpc3RlciA9IGZ1bmN0aW9uKHdvcmtlcikg
ewogICAgICAgICB2YXIgb2JqID0ge307Ci0gICAgICAgIHJldHVybiB3YWl0X2Zvcl9zdGF0ZSh0
LCB3b3JrZXIsICdhY3RpdmF0aW5nJykKKyAgICAgICAgd2FpdF9mb3Jfc3RhdGUodCwgd29ya2Vy
LCAnYWN0aXZhdGluZycpCiAgICAgICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7Ci0gICAgICAgICAg
ICAgIHJldHVybiBQcm9taXNlLmFsbChbCi0gICAgICAgICAgICAgICAgc3luY1dvcmtlcih3b3Jr
ZXIsIG9iaiksCi0gICAgICAgICAgICAgICAgd2FpdF9mb3Jfc3RhdGUodCwgd29ya2VyLCAnYWN0
aXZhdGVkJykKLSAgICAgICAgICAgICAgXSk7CisgICAgICAgICAgICAgIHN5bmNXb3JrZXIodCwg
d29ya2VyLCBvYmopOworICAgICAgICAgICAgICByZXR1cm4gd2FpdF9mb3Jfc3RhdGUodCwgd29y
a2VyLCAnYWN0aXZhdGVkJyk7CiAgICAgICAgICAgICB9KQogICAgICAgICAgIC50aGVuKGZ1bmN0
aW9uKCkgewogICAgICAgICAgICAgICBhc3NlcnRfdHJ1ZSgKICAgICAgICAgICAgICAgICBvYmou
c3luY2VkLAogICAgICAgICAgICAgICAgICdzdGF0ZSBzaG91bGQgYmUgImFjdGl2YXRlZCIgYWZ0
ZXIgdGhlIHdhaXRVbnRpbCBwcm9taXNlICcgKwogICAgICAgICAgICAgICAgICAgICAnZm9yICJv
bmFjdGl2YXRlIiBpcyBmdWxmaWxsZWQuJyk7Ci0gICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
ICAgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfZG9uZSh0LCBzY29wZSk7CisgICAgICAg
ICAgICB9KQorICAgICAgICAgIC5jYXRjaCh1bnJlYWNoZWRfcmVqZWN0aW9uKHQpKTsKICAgICAg
IH07Ci0gICAgcmV0dXJuIHJ1blRlc3QodCwgc2NvcGUsIG9uUmVnaXN0ZXIpOworICAgIHJ1blRl
c3QodCwgc2NvcGUsIG9uUmVnaXN0ZXIpOwogICB9LCAnVGVzdCBhY3RpdmF0ZSBldmVudCB3YWl0
VW50aWwgZnVsZmlsbGVkJyk7CiAKLXByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7Cithc3luY190
ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICB2YXIgc2NvcGUgPSAncmVzb3VyY2VzL2luc3RhbGwtcmVq
ZWN0ZWQnOwogICAgIHZhciBvblJlZ2lzdGVyID0gZnVuY3Rpb24od29ya2VyKSB7Ci0gICAgICAg
IHJldHVybiB3YWl0X2Zvcl9zdGF0ZSh0LCB3b3JrZXIsICdyZWR1bmRhbnQnKTsKKyAgICAgICAg
d2FpdF9mb3Jfc3RhdGUodCwgd29ya2VyLCAncmVkdW5kYW50JykKKyAgICAgICAgICAudGhlbihm
dW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRf
ZG9uZSh0LCBzY29wZSk7CisgICAgICAgICAgICB9KQorICAgICAgICAgIC5jYXRjaCh1bnJlYWNo
ZWRfcmVqZWN0aW9uKHQpKTsKICAgICAgIH07Ci0gICAgcmV0dXJuIHJ1blRlc3QodCwgc2NvcGUs
IG9uUmVnaXN0ZXIpOworICAgIHJ1blRlc3QodCwgc2NvcGUsIG9uUmVnaXN0ZXIpOwogICB9LCAn
VGVzdCBpbnN0YWxsIGV2ZW50IHdhaXRVbnRpbCByZWplY3RlZCcpOwogCi1wcm9taXNlX3Rlc3Qo
ZnVuY3Rpb24odCkgeworYXN5bmNfdGVzdChmdW5jdGlvbih0KSB7CiAgICAgdmFyIHNjb3BlID0g
J3Jlc291cmNlcy9hY3RpdmF0ZS1yZWplY3RlZCc7CiAgICAgdmFyIG9uUmVnaXN0ZXIgPSBmdW5j
dGlvbih3b3JrZXIpIHsKLSAgICAgICAgcmV0dXJuIHdhaXRfZm9yX3N0YXRlKHQsIHdvcmtlciwg
J2FjdGl2YXRlZCcpOworICAgICAgICB3YWl0X2Zvcl9zdGF0ZSh0LCB3b3JrZXIsICdhY3RpdmF0
ZWQnKQorICAgICAgICAgIC50aGVuKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICBzZXJ2aWNl
X3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9kb25lKHQsIHNjb3BlKTsKKyAgICAgICAgICAgIH0pCisg
ICAgICAgICAgLmNhdGNoKHVucmVhY2hlZF9yZWplY3Rpb24odCkpOwogICAgICAgfTsKLSAgICBy
ZXR1cm4gcnVuVGVzdCh0LCBzY29wZSwgb25SZWdpc3Rlcik7CisgICAgcnVuVGVzdCh0LCBzY29w
ZSwgb25SZWdpc3Rlcik7CiAgIH0sICdUZXN0IGFjdGl2YXRlIGV2ZW50IHdhaXRVbnRpbCByZWpl
Y3RlZC4nKTsKIAogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRj
aC1hdWRpby10YWludGluZy5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9m
ZXRjaC1hdWRpby10YWludGluZy5odHRwcy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDQ5OGY0MTM3MDM3NzIyNmEzY2RkZjIzODFjZGNhZTU5NWE1NDBkZWQuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvZmV0Y2gtYXVkaW8tdGFpbnRpbmcuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251
bGwKQEAgLTEsNCArMCwwIEBACi0KLQotRkFJTCBWZXJpZnkgQ09SUyBYSFIgb2YgZmV0Y2goKSBp
biBhIFNlcnZpY2UgV29ya2VyIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRo
IHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogdW5kZWZpbmVkIGlzIG5vdCBhIGNvbnN0cnVjdG9y
IChldmFsdWF0aW5nICduZXcgd2luLkF1ZGlvQ29udGV4dCgpJykiCi0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL2ZldGNoLWF1ZGlvLXRhaW50aW5nLmh0dHBzLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9mZXRjaC1hdWRpby10YWludGluZy5odHRwcy5odG1sCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA5ODIxNzU5YmM3YjMxMTY3MmE1NDM4N2VkYzdkOGMyNmExMWQ1ZTU0
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL2ZldGNoLWF1ZGlvLXRhaW50aW5nLmh0dHBzLmh0bWwKKysrIC9kZXYvbnVsbApA
QCAtMSw0NyArMCwwIEBACi08IWRvY3R5cGUgaHRtbD4KLTxzY3JpcHQgc3JjPSIvcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIvY29tbW9uL2dldC1ob3N0
LWluZm8uc3ViLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGVzdC1oZWxw
ZXJzLnN1Yi5qcz9waXBlPXN1YiI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotcHJvbWlzZV90ZXN0KGFz
eW5jICh0KSA9PiB7Ci0gICAgY29uc3QgU0NPUEUgPSAncmVzb3VyY2VzL2VtcHR5Lmh0bWwnOwot
ICAgIGNvbnN0IFNDUklQVCA9ICdyZXNvdXJjZXMvZmV0Y2gtcmV3cml0ZS13b3JrZXIuanMnOwot
ICAgIGNvbnN0IGhvc3RfaW5mbyA9IGdldF9ob3N0X2luZm8oKTsKLSAgICBjb25zdCBSRU1PVEVf
T1JJR0lOID0gaG9zdF9pbmZvLkhUVFBTX1JFTU9URV9PUklHSU47Ci0KLSAgICBjb25zdCByZWcg
PSBhd2FpdCBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCBTQ1JJUFQs
IFNDT1BFKTsKLSAgICBhd2FpdCB3YWl0X2Zvcl9zdGF0ZSh0LCByZWcuaW5zdGFsbGluZywgJ2Fj
dGl2YXRlZCcpOwotICAgIGNvbnN0IGZyYW1lID0gYXdhaXQgd2l0aF9pZnJhbWUoU0NPUEUpOwot
Ci0gICAgY29uc3QgZG9jID0gZnJhbWUuY29udGVudERvY3VtZW50OwotICAgIGNvbnN0IHdpbiA9
IGZyYW1lLmNvbnRlbnRXaW5kb3c7Ci0KLSAgICBjb25zdCBjb250ZXh0ID0gbmV3IHdpbi5BdWRp
b0NvbnRleHQoKTsKLSAgICB0cnkgewotICAgICAgY29udGV4dC5zdXNwZW5kKCk7Ci0gICAgICBj
b25zdCBhdWRpbyA9IGRvYy5jcmVhdGVFbGVtZW50KCdhdWRpbycpOwotICAgICAgYXVkaW8uYXV0
b3BsYXkgPSB0cnVlOwotICAgICAgY29uc3Qgc291cmNlID0gY29udGV4dC5jcmVhdGVNZWRpYUVs
ZW1lbnRTb3VyY2UoYXVkaW8pOwotICAgICAgY29uc3Qgc3BuID0gY29udGV4dC5jcmVhdGVTY3Jp
cHRQcm9jZXNzb3IoMTYzODQsIDEsIDEpOwotICAgICAgc291cmNlLmNvbm5lY3Qoc3BuKS5jb25u
ZWN0KGNvbnRleHQuZGVzdGluYXRpb24pOwotICAgICAgY29uc3QgdXJsID0gYCR7UkVNT1RFX09S
SUdJTn0vd2ViYXVkaW8vcmVzb3VyY2VzL3Npbl80NDBIel8tNmRCRlNfMXMud2F2YDsKLSAgICAg
IGF1ZGlvLnNyYyA9ICcvdGVzdD91cmw9JyArIGVuY29kZVVSSUNvbXBvbmVudCh1cmwpOwotICAg
ICAgZG9jLmJvZHkuYXBwZW5kQ2hpbGQoYXVkaW8pOwotCi0gICAgICBhd2FpdCBuZXcgUHJvbWlz
ZSgocmVzb2x2ZSkgPT4gewotICAgICAgICBhdWRpby5hZGRFdmVudExpc3RlbmVyKCdwbGF5aW5n
JywgcmVzb2x2ZSk7Ci0gICAgICB9KTsKLSAgICAgIGF3YWl0IGNvbnRleHQucmVzdW1lKCk7Ci0g
ICAgICBjb25zdCBldmVudCA9IGF3YWl0IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7Ci0gICAg
ICAgIHNwbi5hZGRFdmVudExpc3RlbmVyKCdhdWRpb3Byb2Nlc3MnLCByZXNvbHZlKTsKLSAgICAg
IH0pOwotICAgICAgY29uc3QgZGF0YSA9IGV2ZW50LmlucHV0QnVmZmVyLmdldENoYW5uZWxEYXRh
KDApOwotICAgICAgZm9yIChjb25zdCBlIG9mIGRhdGEpIHsKLSAgICAgICAgYXNzZXJ0X2VxdWFs
cyhlLCAwKTsKLSAgICAgIH0KLSAgICB9IGZpbmFsbHkgewotICAgICAgY29udGV4dC5jbG9zZSgp
OwotICAgIH0KLSAgfSwgJ1ZlcmlmeSBDT1JTIFhIUiBvZiBmZXRjaCgpIGluIGEgU2VydmljZSBX
b3JrZXInKTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gt
Y2FudmFzLXRhaW50aW5nLWRvdWJsZS13cml0ZS5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9mZXRjaC1jYW52YXMtdGFpbnRpbmctZG91YmxlLXdyaXRlLmh0dHBzLWV4cGVj
dGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTE0ZTFkZjU3OGU3MzVlNDY4
ZjMzYWVjNjY0NzA1OTRmODQwNzExNC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1jYW52YXMtdGFpbnRpbmctZG91
YmxlLXdyaXRlLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBA
QAotCi1QQVNTIGNhbnZhcyBpcyB0YWludGVkIGFmdGVyIHdyaXRpbmcgYm90aCBhIG5vbi1vcGFx
dWUgaW1hZ2UgYW5kIGFuIG9wYXF1ZSBpbWFnZSBmcm9tIHRoZSBzYW1lIFVSTCAKLQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtY2FudmFzLXRhaW50aW5nLWRvdWJsZS13cml0
ZS5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtY2FudmFzLXRhaW50aW5nLWRv
dWJsZS13cml0ZS5odHRwcy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0ZTIz
MzA1MzcyOWM0MmMxZjhhYzQ5ZDk1NTRmMzAzNWM4ZjA0NzI4Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWNhbnZh
cy10YWludGluZy1kb3VibGUtd3JpdGUuaHR0cHMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDU3
ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhh
cm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3Ny
ZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii9jb21tb24vZ2V0LWhvc3QtaW5mby5z
dWIuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy90ZXN0LWhlbHBlcnMuc3Vi
LmpzIj48L3NjcmlwdD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5jYW52YXMgdGFp
bnRpbmcgd2hlbiB3cml0dGVuIHR3aWNlPC90aXRsZT4KLTxzY3JpcHQ+Ci1mdW5jdGlvbiBsb2Fk
SW1hZ2UoZG9jLCB1cmwpIHsKLSAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3Qp
ID0+IHsKLSAgICBjb25zdCBpbWFnZSA9IGRvYy5jcmVhdGVFbGVtZW50KCdpbWcnKTsKLSAgICBp
bWFnZS5vbmxvYWQgPSAoKSA9PiB7IHJlc29sdmUoaW1hZ2UpOyB9Ci0gICAgaW1hZ2Uub25lcnJv
ciA9ICgpID0+IHsgcmVqZWN0KCdmYWlsZWQgdG8gbG9hZDogJyArIHVybCk7IH07Ci0gICAgaW1h
Z2Uuc3JjID0gdXJsOwotICB9KTsKLX0KLQotLy8gVGVzdHMgdGhhdCBhIGNhbnZhcyBpcyB0YWlu
dGVkIGFmdGVyIGl0J3Mgd3JpdHRlbiB0byB3aXRoIGJvdGggYSBjbGVhciBpbWFnZQotLy8gYW5k
IG9wYXF1ZSBpbWFnZSBmcm9tIHRoZSBzYW1lIFVSTC4gQSBiYWQgaW1wbGVtZW50YXRpb24gbWln
aHQgY2FjaGUgdGhlCi0vLyBpbmZvIG9mIHRoZSBjbGVhciBpbWFnZSBhbmQgYXNzdW1lIHRoZSBv
cGFxdWUgaW1hZ2UgaXMgYWxzbyBjbGVhciBiZWNhdXNlCi0vLyBpdCdzIGZyb20gdGhlIHNhbWUg
VVJMLiBTZWUgaHR0cHM6Ly9jcmJ1Zy5jb20vOTA3MDQ3IGZvciBkZXRhaWxzLgotcHJvbWlzZV90
ZXN0KGFzeW5jICh0KSA9PiB7Ci0gIC8vIFNldCB1cCBhIHNlcnZpY2Ugd29ya2VyIGFuZCBhIGNv
bnRyb2xsZWQgaWZyYW1lLgotICBjb25zdCBzY3JpcHQgPSAncmVzb3VyY2VzL2ZldGNoLWNhbnZh
cy10YWludGluZy1kb3VibGUtd3JpdGUtd29ya2VyLmpzJzsKLSAgY29uc3Qgc2NvcGUgPSAncmVz
b3VyY2VzL2ZldGNoLWNhbnZhcy10YWludGluZy1kb3VibGUtd3JpdGUtaWZyYW1lLmh0bWwnOwot
ICBjb25zdCByZWdpc3RyYXRpb24gPSBhd2FpdCBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2Fu
ZF9yZWdpc3RlcigKLSAgICAgIHQsIHNjcmlwdCwgc2NvcGUpOwotICB0LmFkZF9jbGVhbnVwKCgp
ID0+IHJlZ2lzdHJhdGlvbi51bnJlZ2lzdGVyKCkpOwotICBhd2FpdCB3YWl0X2Zvcl9zdGF0ZSh0
LCByZWdpc3RyYXRpb24uaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOwotICBjb25zdCBpZnJhbWUg
PSBhd2FpdCB3aXRoX2lmcmFtZShzY29wZSk7Ci0gIHQuYWRkX2NsZWFudXAoKCkgPT4gaWZyYW1l
LnJlbW92ZSgpKTsKLQotICAvLyBMb2FkIHRoZSBzYW1lIGNyb3NzLW9yaWdpbiBpbWFnZSBVUkwg
dGhyb3VnaCB0aGUgY29udHJvbGxlZCBpZnJhbWUgYW5kCi0gIC8vIHRoaXMgdW5jb250cm9sbGVk
IGZyYW1lLiBUaGUgc2VydmljZSB3b3JrZXIgcmVzcG9uZHMgd2l0aCBhIHNhbWUtb3JpZ2luCi0g
IC8vIGltYWdlIGZvciB0aGUgY29udHJvbGxlZCBpZnJhbWUsIHNvIGl0IGlzIGNsZWFydGV4dC4K
LSAgY29uc3QgaW1hZ2VQYXRoID0gYmFzZV9wYXRoKCkgKyAncmVzb3VyY2VzL2ZldGNoLWFjY2Vz
cy1jb250cm9sLnB5P1BOR0lNQUdFJzsKLSAgY29uc3QgaW1hZ2VVcmwgPSBnZXRfaG9zdF9pbmZv
KClbJ0hUVFBTX1JFTU9URV9PUklHSU4nXSArIGltYWdlUGF0aDsKLSAgY29uc3QgY2xlYXJJbWFn
ZSA9IGF3YWl0IGxvYWRJbWFnZShpZnJhbWUuY29udGVudERvY3VtZW50LCBpbWFnZVVybCk7Ci0g
IGNvbnN0IG9wYXF1ZUltYWdlID0gYXdhaXQgbG9hZEltYWdlKGRvY3VtZW50LCBpbWFnZVVybCk7
Ci0KLSAgLy8gU2V0IHVwIGEgY2FudmFzIGZvciB0ZXN0aW5nIHRhaW50aW5nLgotICBjb25zdCBj
YW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKTsKLSAgY29uc3QgY29udGV4
dCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpOwotICBjYW52YXMud2lkdGggPSBjbGVhckltYWdl
LndpZHRoOwotICBjYW52YXMuaGVpZ2h0ID0gY2xlYXJJbWFnZS5oZWlnaHQ7Ci0KLSAgLy8gVGhl
IGNsZWFyIGltYWdlIGFuZCB0aGUgb3BhcXVlIGltYWdlIGhhdmUgdGhlIHNhbWUgc3JjIFVSTC4g
QnV0Li4uCi0KLSAgLy8gLi4uIHRoZSBjbGVhciBpbWFnZSBkb2Vzbid0IHRhaW50IHRoZSBjYW52
YXMuCi0gIGNvbnRleHQuZHJhd0ltYWdlKGNsZWFySW1hZ2UsIDAsIDApOwotICBhc3NlcnRfdHJ1
ZShjYW52YXMudG9EYXRhVVJMKCkubGVuZ3RoID4gMCk7Ci0KLSAgLy8gLi4uIHRoZSBvcGFxdWUg
aW1hZ2UgdGFpbnRzIHRoZSBjYW52YXMuCi0gIGNvbnRleHQuZHJhd0ltYWdlKG9wYXF1ZUltYWdl
LCAwLCAwKTsKLSAgYXNzZXJ0X3Rocm93cygnU2VjdXJpdHlFcnJvcicsICgpID0+IHsgY2FudmFz
LnRvRGF0YVVSTCgpOyB9KTsKLX0sICdjYW52YXMgaXMgdGFpbnRlZCBhZnRlciB3cml0aW5nIGJv
dGggYSBub24tb3BhcXVlIGltYWdlIGFuZCBhbiBvcGFxdWUgaW1hZ2UgZnJvbSB0aGUgc2FtZSBV
UkwnKTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtY2Fu
dmFzLXRhaW50aW5nLXZpZGVvLWNhY2hlLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9m
ZXRjaC1jYW52YXMtdGFpbnRpbmctdmlkZW8tY2FjaGUuaHR0cHMuaHRtbAppbmRleCBjMzdlOGU1
NjI0NDg3OTNkN2RhNGY0NzIyODkzY2E3YmJlMTlmM2FjLi5lZjNkMTJiYmU0OTgyYzY0OTkyYjNj
ZDBmNGVkMDkyZWFhNzI1MDdiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1j
YW52YXMtdGFpbnRpbmctdmlkZW8tY2FjaGUuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9mZXRjaC1jYW52YXMtdGFpbnRpbmctdmlkZW8tY2FjaGUuaHR0cHMuaHRtbApAQCAtMSw3
ICsxLDYgQEAKIDwhRE9DVFlQRSBodG1sPgogPG1ldGEgY2hhcnNldD0idXRmLTgiPgogPHRpdGxl
PlNlcnZpY2UgV29ya2VyOiBjYW52YXMgdGFpbnRpbmcgb2YgdGhlIGZldGNoZWQgdmlkZW8gdXNp
bmcgY2FjaGUgcmVzcG9uc2VzPC90aXRsZT4KLTxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9
ImxvbmciPgogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0
PgogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0
PgogPHNjcmlwdCBzcmM9Ii9jb21tb24vZ2V0LWhvc3QtaW5mby5zdWIuanMiPjwvc2NyaXB0Pgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtY2FudmFzLXRhaW50aW5nLXZpZGVv
Lmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1jYW52YXMtdGFpbnRpbmctdmlk
ZW8uaHR0cHMuaHRtbAppbmRleCBlOGMyM2EyZWRkNjNjNTVhNzdlYTg0ODRmYWZhZTJiM2M1MmQx
NWEwLi41Nzc2NTA4ODFjMTVmYTlhOTVjNDNkY2I5NTViZDU4MThiYThhOGVkIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1jYW52YXMtdGFpbnRpbmctdmlkZW8uaHR0cHMuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1jYW52YXMtdGFpbnRpbmctdmlkZW8uaHR0
cHMuaHRtbApAQCAtMSw3ICsxLDYgQEAKIDwhRE9DVFlQRSBodG1sPgogPG1ldGEgY2hhcnNldD0i
dXRmLTgiPgogPHRpdGxlPlNlcnZpY2UgV29ya2VyOiBjYW52YXMgdGFpbnRpbmcgb2YgdGhlIGZl
dGNoZWQgdmlkZW88L3RpdGxlPgotPG1ldGEgbmFtZT0idGltZW91dCIgY29udGVudD0ibG9uZyI+
CiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CiA8c2Ny
aXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CiA8c2Ny
aXB0IHNyYz0iL2NvbW1vbi9nZXQtaG9zdC1pbmZvLnN1Yi5qcyI+PC9zY3JpcHQ+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1jb3JzLXhoci5odHRwcy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1jb3JzLXhoci5odHRwcy1leHBlY3RlZC50eHQKaW5k
ZXggMTFiMTc0YTJjOTA2MDI5ZWNjNzllODFkNWU5MTYzY2RjYTM2YjkwNC4uZjExN2U1MjdiNTMz
OTExZjIwNDdmZGI4ZWNjOGNhNjVkNmVkZDIzNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvZmV0Y2gtY29ycy14aHIuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL2ZldGNoLWNvcnMteGhyLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtNiwxMCArNiw2IEBAIENP
TlNPTEUgTUVTU0FHRTogRmV0Y2hFdmVudC5yZXNwb25kV2l0aCByZWNlaXZlZCBhbiBlcnJvcjog
dW5kZWZpbmVkCiBDT05TT0xFIE1FU1NBR0U6IFhNTEh0dHBSZXF1ZXN0IGNhbm5vdCBsb2FkIGh0
dHBzOi8vMTI3LjAuMC4xOjk0NDMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291
cmNlcy9mZXRjaC1hY2Nlc3MtY29udHJvbC5weT9yZWplY3QuCiBDT05TT0xFIE1FU1NBR0U6IEZl
dGNoRXZlbnQucmVzcG9uZFdpdGggcmVjZWl2ZWQgYW4gZXJyb3I6IHVuZGVmaW5lZAogQ09OU09M
RSBNRVNTQUdFOiBYTUxIdHRwUmVxdWVzdCBjYW5ub3QgbG9hZCBodHRwczovLzEyNy4wLjAuMTo5
NDQzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtYWNjZXNz
LWNvbnRyb2wucHk/cmVqZWN0LgotQ09OU09MRSBNRVNTQUdFOiBPcmlnaW4gaHR0cHM6Ly9sb2Nh
bGhvc3Q6OTQ0MyBpcyBub3QgYWxsb3dlZCBieSBBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4u
Ci1DT05TT0xFIE1FU1NBR0U6IFhNTEh0dHBSZXF1ZXN0IGNhbm5vdCBsb2FkIGh0dHBzOi8vMTI3
LjAuMC4xOjk0NDMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRj
aC1hY2Nlc3MtY29udHJvbC5weT90aHJvdyBkdWUgdG8gYWNjZXNzIGNvbnRyb2wgY2hlY2tzLgot
Q09OU09MRSBNRVNTQUdFOiBPcmlnaW4gaHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0MyBpcyBub3QgYWxs
b3dlZCBieSBBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4uCi1DT05TT0xFIE1FU1NBR0U6IFhN
TEh0dHBSZXF1ZXN0IGNhbm5vdCBsb2FkIGh0dHBzOi8vMTI3LjAuMC4xOjk0NDMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1hY2Nlc3MtY29udHJvbC5weT90
aHJvdyBkdWUgdG8gYWNjZXNzIGNvbnRyb2wgY2hlY2tzLgogQ09OU09MRSBNRVNTQUdFOiBGZXRj
aEV2ZW50LnJlc3BvbmRXaXRoIHJlY2VpdmVkIGFuIGVycm9yOiBSZXR1cm5lZCByZXNwb25zZSBp
cyBudWxsLgogQ09OU09MRSBNRVNTQUdFOiBYTUxIdHRwUmVxdWVzdCBjYW5ub3QgbG9hZCBodHRw
czovL2xvY2FsaG9zdDo5NDQzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJj
ZXMvZmV0Y2gtYWNjZXNzLWNvbnRyb2wucHk/cmVzb2x2ZS1udWxsLgogQ09OU09MRSBNRVNTQUdF
OiBGZXRjaEV2ZW50LnJlc3BvbmRXaXRoIHJlY2VpdmVkIGFuIGVycm9yOiBSZXR1cm5lZCByZXNw
b25zZSBpcyBudWxsLgpAQCAtMTksNjkgKzE1LDMxIEBAIENPTlNPTEUgTUVTU0FHRTogWE1MSHR0
cFJlcXVlc3QgY2Fubm90IGxvYWQgaHR0cHM6Ly8xMjcuMC4wLjE6OTQ0My9zZXJ2aWNlLXdvcmtl
CiBDT05TT0xFIE1FU1NBR0U6IEZldGNoRXZlbnQucmVzcG9uZFdpdGggcmVjZWl2ZWQgYW4gZXJy
b3I6IFJldHVybmVkIHJlc3BvbnNlIGlzIG51bGwuCiBDT05TT0xFIE1FU1NBR0U6IFhNTEh0dHBS
ZXF1ZXN0IGNhbm5vdCBsb2FkIGh0dHBzOi8vMTI3LjAuMC4xOjk0NDMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1hY2Nlc3MtY29udHJvbC5weT9yZXNvbHZl
LW51bGwuCiBDT05TT0xFIE1FU1NBR0U6IE9yaWdpbiBodHRwczovL2xvY2FsaG9zdDo5NDQzIGlz
IG5vdCBhbGxvd2VkIGJ5IEFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbi4KK0NPTlNPTEUgTUVT
U0FHRTogWE1MSHR0cFJlcXVlc3QgY2Fubm90IGxvYWQgaHR0cHM6Ly8xMjcuMC4wLjE6OTQ0My9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWFjY2Vzcy1jb250
cm9sLnB5P3Rocm93IGR1ZSB0byBhY2Nlc3MgY29udHJvbCBjaGVja3MuCitDT05TT0xFIE1FU1NB
R0U6IFJlc3BvbnNlIHNlcnZlZCBieSBzZXJ2aWNlIHdvcmtlciBpcyBvcGFxdWUKK0NPTlNPTEUg
TUVTU0FHRTogWE1MSHR0cFJlcXVlc3QgY2Fubm90IGxvYWQgaHR0cHM6Ly8xMjcuMC4wLjE6OTQ0
My9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWFjY2Vzcy1j
b250cm9sLnB5IGR1ZSB0byBhY2Nlc3MgY29udHJvbCBjaGVja3MuCitDT05TT0xFIE1FU1NBR0U6
IFhNTEh0dHBSZXF1ZXN0IGNhbm5vdCBsb2FkIGh0dHBzOi8vMTI3LjAuMC4xOjk0NDMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1hY2Nlc3MtY29udHJvbC5w
eSBkdWUgdG8gYWNjZXNzIGNvbnRyb2wgY2hlY2tzLgorQ09OU09MRSBNRVNTQUdFOiBPcmlnaW4g
aHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0MyBpcyBub3QgYWxsb3dlZCBieSBBY2Nlc3MtQ29udHJvbC1B
bGxvdy1PcmlnaW4uCiBDT05TT0xFIE1FU1NBR0U6IFhNTEh0dHBSZXF1ZXN0IGNhbm5vdCBsb2Fk
IGh0dHBzOi8vMTI3LjAuMC4xOjk0NDMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jl
c291cmNlcy9mZXRjaC1hY2Nlc3MtY29udHJvbC5weT9pZ25vcmUgZHVlIHRvIGFjY2VzcyBjb250
cm9sIGNoZWNrcy4KIENPTlNPTEUgTUVTU0FHRTogT3JpZ2luIGh0dHBzOi8vbG9jYWxob3N0Ojk0
NDMgaXMgbm90IGFsbG93ZWQgYnkgQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luLgogQ09OU09M
RSBNRVNTQUdFOiBYTUxIdHRwUmVxdWVzdCBjYW5ub3QgbG9hZCBodHRwczovLzEyNy4wLjAuMTo5
NDQzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtYWNjZXNz
LWNvbnRyb2wucHk/aWdub3JlIGR1ZSB0byBhY2Nlc3MgY29udHJvbCBjaGVja3MuCitDT05TT0xF
IE1FU1NBR0U6IFJlc3BvbnNlIHNlcnZlZCBieSBzZXJ2aWNlIHdvcmtlciBpcyBvcGFxdWUKK0NP
TlNPTEUgTUVTU0FHRTogWE1MSHR0cFJlcXVlc3QgY2Fubm90IGxvYWQgaHR0cHM6Ly8xMjcuMC4w
LjE6OTQ0My9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWFj
Y2Vzcy1jb250cm9sLnB5IGR1ZSB0byBhY2Nlc3MgY29udHJvbCBjaGVja3MuCitDT05TT0xFIE1F
U1NBR0U6IFhNTEh0dHBSZXF1ZXN0IGNhbm5vdCBsb2FkIGh0dHBzOi8vMTI3LjAuMC4xOjk0NDMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1hY2Nlc3MtY29u
dHJvbC5weSBkdWUgdG8gYWNjZXNzIGNvbnRyb2wgY2hlY2tzLgogQ09OU09MRSBNRVNTQUdFOiBD
cmVkZW50aWFscyBmbGFnIGlzIHRydWUsIGJ1dCBBY2Nlc3MtQ29udHJvbC1BbGxvdy1DcmVkZW50
aWFscyBpcyBub3QgInRydWUiLgogQ09OU09MRSBNRVNTQUdFOiBYTUxIdHRwUmVxdWVzdCBjYW5u
b3QgbG9hZCBodHRwczovLzEyNy4wLjAuMTo5NDQzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9yZXNvdXJjZXMvZmV0Y2gtYWNjZXNzLWNvbnRyb2wucHk/QUNBT3JpZ2luPWh0dHBzOi8v
bG9jYWxob3N0Ojk0NDMmaWdub3JlIGR1ZSB0byBhY2Nlc3MgY29udHJvbCBjaGVja3MuCiBDT05T
T0xFIE1FU1NBR0U6IE9yaWdpbiBodHRwczovL2xvY2FsaG9zdDo5NDQzIGlzIG5vdCBhbGxvd2Vk
IGJ5IEFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbi4KK0NPTlNPTEUgTUVTU0FHRTogWE1MSHR0
cFJlcXVlc3QgY2Fubm90IGxvYWQgaHR0cHM6Ly8xMjcuMC4wLjE6OTQ0My9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWFjY2Vzcy1jb250cm9sLnB5P3Rocm93
IGR1ZSB0byBhY2Nlc3MgY29udHJvbCBjaGVja3MuCitDT05TT0xFIE1FU1NBR0U6IE9yaWdpbiBo
dHRwczovL2xvY2FsaG9zdDo5NDQzIGlzIG5vdCBhbGxvd2VkIGJ5IEFjY2Vzcy1Db250cm9sLUFs
bG93LU9yaWdpbi4KIENPTlNPTEUgTUVTU0FHRTogWE1MSHR0cFJlcXVlc3QgY2Fubm90IGxvYWQg
aHR0cHM6Ly8xMjcuMC4wLjE6OTQ0My9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVz
b3VyY2VzL2ZldGNoLWFjY2Vzcy1jb250cm9sLnB5P0F1dGgmaWdub3JlIGR1ZSB0byBhY2Nlc3Mg
Y29udHJvbCBjaGVja3MuCiBDT05TT0xFIE1FU1NBR0U6IE9yaWdpbiBodHRwczovL2xvY2FsaG9z
dDo5NDQzIGlzIG5vdCBhbGxvd2VkIGJ5IEFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbi4KIENP
TlNPTEUgTUVTU0FHRTogWE1MSHR0cFJlcXVlc3QgY2Fubm90IGxvYWQgaHR0cHM6Ly8xMjcuMC4w
LjE6OTQ0My9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWFj
Y2Vzcy1jb250cm9sLnB5P0F1dGgmaWdub3JlIGR1ZSB0byBhY2Nlc3MgY29udHJvbCBjaGVja3Mu
CiBDT05TT0xFIE1FU1NBR0U6IENyZWRlbnRpYWxzIGZsYWcgaXMgdHJ1ZSwgYnV0IEFjY2Vzcy1D
b250cm9sLUFsbG93LUNyZWRlbnRpYWxzIGlzIG5vdCAidHJ1ZSIuCiBDT05TT0xFIE1FU1NBR0U6
IFhNTEh0dHBSZXF1ZXN0IGNhbm5vdCBsb2FkIGh0dHBzOi8vMTI3LjAuMC4xOjk0NDMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1hY2Nlc3MtY29udHJvbC5w
eT9BdXRoJkFDQU9yaWdpbj1odHRwczovL2xvY2FsaG9zdDo5NDQzJmlnbm9yZSBkdWUgdG8gYWNj
ZXNzIGNvbnRyb2wgY2hlY2tzLgotQ09OU09MRSBNRVNTQUdFOiBSZXNwb25zZSBzZXJ2ZWQgYnkg
c2VydmljZSB3b3JrZXIgaXMgb3BhcXVlCi1DT05TT0xFIE1FU1NBR0U6IFhNTEh0dHBSZXF1ZXN0
IGNhbm5vdCBsb2FkIGh0dHBzOi8vMTI3LjAuMC4xOjk0NDMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1hY2Nlc3MtY29udHJvbC5weSBkdWUgdG8gYWNjZXNz
IGNvbnRyb2wgY2hlY2tzLgotQ09OU09MRSBNRVNTQUdFOiBSZXNwb25zZSBzZXJ2ZWQgYnkgc2Vy
dmljZSB3b3JrZXIgaXMgb3BhcXVlCi1DT05TT0xFIE1FU1NBR0U6IFhNTEh0dHBSZXF1ZXN0IGNh
bm5vdCBsb2FkIGh0dHBzOi8vMTI3LjAuMC4xOjk0NDMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL3Jlc291cmNlcy9mZXRjaC1hY2Nlc3MtY29udHJvbC5weSBkdWUgdG8gYWNjZXNzIGNv
bnRyb2wgY2hlY2tzLgotQ09OU09MRSBNRVNTQUdFOiBSZXNwb25zZSBzZXJ2ZWQgYnkgc2Vydmlj
ZSB3b3JrZXIgaXMgb3BhcXVlCi1DT05TT0xFIE1FU1NBR0U6IFhNTEh0dHBSZXF1ZXN0IGNhbm5v
dCBsb2FkIGh0dHBzOi8vMTI3LjAuMC4xOjk0NDMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3Jlc291cmNlcy9mZXRjaC1hY2Nlc3MtY29udHJvbC5weSBkdWUgdG8gYWNjZXNzIGNvbnRy
b2wgY2hlY2tzLgotQ09OU09MRSBNRVNTQUdFOiBSZXNwb25zZSBzZXJ2ZWQgYnkgc2VydmljZSB3
b3JrZXIgaXMgb3BhcXVlCi1DT05TT0xFIE1FU1NBR0U6IFhNTEh0dHBSZXF1ZXN0IGNhbm5vdCBs
b2FkIGh0dHBzOi8vMTI3LjAuMC4xOjk0NDMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L3Jlc291cmNlcy9mZXRjaC1hY2Nlc3MtY29udHJvbC5weSBkdWUgdG8gYWNjZXNzIGNvbnRyb2wg
Y2hlY2tzLgogQ09OU09MRSBNRVNTQUdFOiBGZXRjaEV2ZW50LnJlc3BvbmRXaXRoIHJlY2VpdmVk
IGFuIGVycm9yOiBUeXBlRXJyb3I6IENyZWRlbnRpYWxzIGZsYWcgaXMgdHJ1ZSwgYnV0IEFjY2Vz
cy1Db250cm9sLUFsbG93LUNyZWRlbnRpYWxzIGlzIG5vdCAidHJ1ZSIuCiBDT05TT0xFIE1FU1NB
R0U6IFhNTEh0dHBSZXF1ZXN0IGNhbm5vdCBsb2FkIGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1hY2Nlc3MtY29udHJv
bC5weT9tb2RlPWNvcnMmdXJsPWh0dHBzJTNBJTJGJTJGMTI3LjAuMC4xJTNBOTQ0MyUyRnNlcnZp
Y2Utd29ya2VycyUyRnNlcnZpY2Utd29ya2VyJTJGcmVzb3VyY2VzJTJGZmV0Y2gtYWNjZXNzLWNv
bnRyb2wucHklM0ZBQ0FPcmlnaW4lM0RodHRwcyUzQSUyRiUyRmxvY2FsaG9zdCUzQTk0NDMuCiBD
T05TT0xFIE1FU1NBR0U6IEZldGNoRXZlbnQucmVzcG9uZFdpdGggcmVjZWl2ZWQgYW4gZXJyb3I6
IFR5cGVFcnJvcjogQ3JlZGVudGlhbHMgZmxhZyBpcyB0cnVlLCBidXQgQWNjZXNzLUNvbnRyb2wt
QWxsb3ctQ3JlZGVudGlhbHMgaXMgbm90ICJ0cnVlIi4KIENPTlNPTEUgTUVTU0FHRTogWE1MSHR0
cFJlcXVlc3QgY2Fubm90IGxvYWQgaHR0cHM6Ly8xMjcuMC4wLjE6OTQ0My9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWFjY2Vzcy1jb250cm9sLnB5P21vZGU9
Y29ycyZ1cmw9aHR0cHMlM0ElMkYlMkYxMjcuMC4wLjElM0E5NDQzJTJGc2VydmljZS13b3JrZXJz
JTJGc2VydmljZS13b3JrZXIlMkZyZXNvdXJjZXMlMkZmZXRjaC1hY2Nlc3MtY29udHJvbC5weSUz
RkFDQU9yaWdpbiUzRGh0dHBzJTNBJTJGJTJGbG9jYWxob3N0JTNBOTQ0My4KIAogUEFTUyBWZXJp
ZnkgQ09SUyBYSFIgb2YgZmV0Y2goKSBpbiBhIFNlcnZpY2UgV29ya2VyIAotUEFTUyB0ZXN0IDE6
IGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jl
c291cmNlcy9mZXRjaC1hY2Nlc3MtY29udHJvbC5weT9yZWplY3Qgd2l0aCBjcmVkZW50aWFscyBm
YWxzZSBtdXN0IGJlIEZBSUwgCi1QQVNTIHRlc3QgMjogaHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0My9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWFjY2Vzcy1jb250
cm9sLnB5P3JlamVjdCB3aXRoIGNyZWRlbnRpYWxzIHRydWUgbXVzdCBiZSBGQUlMIAotUEFTUyB0
ZXN0IDM6IGh0dHBzOi8vMTI3LjAuMC4xOjk0NDMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3Jlc291cmNlcy9mZXRjaC1hY2Nlc3MtY29udHJvbC5weT9yZWplY3Qgd2l0aCBjcmVkZW50
aWFscyBmYWxzZSBtdXN0IGJlIEZBSUwgCi1QQVNTIHRlc3QgNDogaHR0cHM6Ly8xMjcuMC4wLjE6
OTQ0My9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWFjY2Vz
cy1jb250cm9sLnB5P3JlamVjdCB3aXRoIGNyZWRlbnRpYWxzIHRydWUgbXVzdCBiZSBGQUlMIAot
UEFTUyB0ZXN0IDU6IGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1hY2Nlc3MtY29udHJvbC5weT90aHJvdyB3aXRoIGNy
ZWRlbnRpYWxzIGZhbHNlIG11c3QgYmUgU1VDQ0VTUyAKLVBBU1MgdGVzdCA2OiBodHRwczovL2xv
Y2FsaG9zdDo5NDQzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0
Y2gtYWNjZXNzLWNvbnRyb2wucHk/dGhyb3cgd2l0aCBjcmVkZW50aWFscyB0cnVlIG11c3QgYmUg
U1VDQ0VTUyAKLVBBU1MgdGVzdCA3OiBodHRwczovLzEyNy4wLjAuMTo5NDQzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtYWNjZXNzLWNvbnRyb2wucHk/dGhy
b3cgd2l0aCBjcmVkZW50aWFscyBmYWxzZSBtdXN0IGJlIEZBSUwgCi1QQVNTIHRlc3QgODogaHR0
cHM6Ly8xMjcuMC4wLjE6OTQ0My9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3Vy
Y2VzL2ZldGNoLWFjY2Vzcy1jb250cm9sLnB5P3Rocm93IHdpdGggY3JlZGVudGlhbHMgdHJ1ZSBt
dXN0IGJlIEZBSUwgCi1QQVNTIHRlc3QgOTogaHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0My9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWFjY2Vzcy1jb250cm9sLnB5
P3Jlc29sdmUtbnVsbCB3aXRoIGNyZWRlbnRpYWxzIGZhbHNlIG11c3QgYmUgRkFJTCAKLVBBU1Mg
dGVzdCAxMDogaHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0My9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWFjY2Vzcy1jb250cm9sLnB5P3Jlc29sdmUtbnVsbCB3aXRo
IGNyZWRlbnRpYWxzIHRydWUgbXVzdCBiZSBGQUlMIAotUEFTUyB0ZXN0IDExOiBodHRwczovLzEy
Ny4wLjAuMTo5NDQzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0
Y2gtYWNjZXNzLWNvbnRyb2wucHk/cmVzb2x2ZS1udWxsIHdpdGggY3JlZGVudGlhbHMgZmFsc2Ug
bXVzdCBiZSBGQUlMIAotUEFTUyB0ZXN0IDEyOiBodHRwczovLzEyNy4wLjAuMTo5NDQzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtYWNjZXNzLWNvbnRyb2wu
cHk/cmVzb2x2ZS1udWxsIHdpdGggY3JlZGVudGlhbHMgdHJ1ZSBtdXN0IGJlIEZBSUwgCi1QQVNT
IHRlc3QgMTM6IGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL3Jlc291cmNlcy9mZXRjaC1hY2Nlc3MtY29udHJvbC5weT9pZ25vcmUgd2l0aCBjcmVk
ZW50aWFscyBmYWxzZSBtdXN0IGJlIFNVQ0NFU1MgCi1QQVNTIHRlc3QgMTQ6IGh0dHBzOi8vbG9j
YWxob3N0Ojk0NDMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRj
aC1hY2Nlc3MtY29udHJvbC5weT9pZ25vcmUgd2l0aCBjcmVkZW50aWFscyB0cnVlIG11c3QgYmUg
U1VDQ0VTUyAKLVBBU1MgdGVzdCAxNTogaHR0cHM6Ly8xMjcuMC4wLjE6OTQ0My9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWFjY2Vzcy1jb250cm9sLnB5P2ln
bm9yZSB3aXRoIGNyZWRlbnRpYWxzIGZhbHNlIG11c3QgYmUgRkFJTCAKLVBBU1MgdGVzdCAxNjog
aHR0cHM6Ly8xMjcuMC4wLjE6OTQ0My9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVz
b3VyY2VzL2ZldGNoLWFjY2Vzcy1jb250cm9sLnB5P2lnbm9yZSB3aXRoIGNyZWRlbnRpYWxzIHRy
dWUgbXVzdCBiZSBGQUlMIAotUEFTUyB0ZXN0IDE3OiBodHRwczovLzEyNy4wLjAuMTo5NDQzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtYWNjZXNzLWNvbnRy
b2wucHk/QUNBT3JpZ2luPWh0dHBzOi8vbG9jYWxob3N0Ojk0NDMmaWdub3JlIHdpdGggY3JlZGVu
dGlhbHMgZmFsc2UgbXVzdCBiZSBTVUNDRVNTIAotUEFTUyB0ZXN0IDE4OiBodHRwczovLzEyNy4w
LjAuMTo5NDQzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gt
YWNjZXNzLWNvbnRyb2wucHk/QUNBT3JpZ2luPWh0dHBzOi8vbG9jYWxob3N0Ojk0NDMmaWdub3Jl
IHdpdGggY3JlZGVudGlhbHMgdHJ1ZSBtdXN0IGJlIEZBSUwgCi1QQVNTIHRlc3QgMTk6IGh0dHBz
Oi8vMTI3LjAuMC4xOjk0NDMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNl
cy9mZXRjaC1hY2Nlc3MtY29udHJvbC5weT9BQ0FPcmlnaW49aHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0
MyZBQ0FDcmVkZW50aWFscz10cnVlJmlnbm9yZSB3aXRoIGNyZWRlbnRpYWxzIHRydWUgbXVzdCBi
ZSBTVUNDRVNTIAotUEFTUyB0ZXN0IDIwOiBodHRwczovL2xvY2FsaG9zdDo5NDQzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtYWNjZXNzLWNvbnRyb2wucHk/
QXV0aCZpZ25vcmUgd2l0aCBjcmVkZW50aWFscyBmYWxzZSBtdXN0IGJlIFNVQ0NFU1MgCi1QQVNT
IHRlc3QgMjE6IGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL3Jlc291cmNlcy9mZXRjaC1hY2Nlc3MtY29udHJvbC5weT9BdXRoJmlnbm9yZSB3aXRo
IGNyZWRlbnRpYWxzIHRydWUgbXVzdCBiZSBTVUNDRVNTIAotUEFTUyB0ZXN0IDIyOiBodHRwczov
LzEyNy4wLjAuMTo5NDQzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMv
ZmV0Y2gtYWNjZXNzLWNvbnRyb2wucHk/QXV0aCZpZ25vcmUgd2l0aCBjcmVkZW50aWFscyBmYWxz
ZSBtdXN0IGJlIEZBSUwgCi1QQVNTIHRlc3QgMjM6IGh0dHBzOi8vMTI3LjAuMC4xOjk0NDMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1hY2Nlc3MtY29udHJv
bC5weT9BdXRoJmlnbm9yZSB3aXRoIGNyZWRlbnRpYWxzIHRydWUgbXVzdCBiZSBGQUlMIAotUEFT
UyB0ZXN0IDI0OiBodHRwczovLzEyNy4wLjAuMTo5NDQzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtYWNjZXNzLWNvbnRyb2wucHk/QXV0aCZBQ0FPcmlnaW49
aHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0MyZpZ25vcmUgd2l0aCBjcmVkZW50aWFscyBmYWxzZSBtdXN0
IGJlIFNUQVRVUzQwMSAKLVBBU1MgdGVzdCAyNTogaHR0cHM6Ly8xMjcuMC4wLjE6OTQ0My9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWFjY2Vzcy1jb250cm9s
LnB5P0F1dGgmQUNBT3JpZ2luPWh0dHBzOi8vbG9jYWxob3N0Ojk0NDMmaWdub3JlIHdpdGggY3Jl
ZGVudGlhbHMgdHJ1ZSBtdXN0IGJlIEZBSUwgCi1QQVNTIHRlc3QgMjY6IGh0dHBzOi8vMTI3LjAu
MC4xOjk0NDMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1h
Y2Nlc3MtY29udHJvbC5weT9BdXRoJkFDQU9yaWdpbj1odHRwczovL2xvY2FsaG9zdDo5NDQzJkFD
QUNyZWRlbnRpYWxzPXRydWUmaWdub3JlIHdpdGggY3JlZGVudGlhbHMgdHJ1ZSBtdXN0IGJlIFNV
Q0NFU1MgCi1QQVNTIHRlc3QgMjc6IGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1hY2Nlc3MtY29udHJvbC5weT9tb2Rl
PXNhbWUtb3JpZ2luJnVybD1odHRwcyUzQSUyRiUyRmxvY2FsaG9zdCUzQTk0NDMlMkZzZXJ2aWNl
LXdvcmtlcnMlMkZzZXJ2aWNlLXdvcmtlciUyRnJlc291cmNlcyUyRmZldGNoLWFjY2Vzcy1jb250
cm9sLnB5IHdpdGggY3JlZGVudGlhbHMgZmFsc2UgbXVzdCBiZSBTVUNDRVNTIAotUEFTUyB0ZXN0
IDI4OiBodHRwczovL2xvY2FsaG9zdDo5NDQzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9yZXNvdXJjZXMvZmV0Y2gtYWNjZXNzLWNvbnRyb2wucHk/bW9kZT1zYW1lLW9yaWdpbiZ1cmw9
aHR0cHMlM0ElMkYlMkZsb2NhbGhvc3QlM0E5NDQzJTJGc2VydmljZS13b3JrZXJzJTJGc2Vydmlj
ZS13b3JrZXIlMkZyZXNvdXJjZXMlMkZmZXRjaC1hY2Nlc3MtY29udHJvbC5weSB3aXRoIGNyZWRl
bnRpYWxzIGZhbHNlIG11c3QgYmUgU1VDQ0VTUyAKLVBBU1MgdGVzdCAyOTogaHR0cHM6Ly8xMjcu
MC4wLjE6OTQ0My9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNo
LWFjY2Vzcy1jb250cm9sLnB5P21vZGU9c2FtZS1vcmlnaW4mdXJsPWh0dHBzJTNBJTJGJTJGbG9j
YWxob3N0JTNBOTQ0MyUyRnNlcnZpY2Utd29ya2VycyUyRnNlcnZpY2Utd29ya2VyJTJGcmVzb3Vy
Y2VzJTJGZmV0Y2gtYWNjZXNzLWNvbnRyb2wucHkgd2l0aCBjcmVkZW50aWFscyBmYWxzZSBtdXN0
IGJlIFNVQ0NFU1MgCi1QQVNTIHRlc3QgMzA6IGh0dHBzOi8vMTI3LjAuMC4xOjk0NDMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1hY2Nlc3MtY29udHJvbC5w
eT9tb2RlPXNhbWUtb3JpZ2luJnVybD1odHRwcyUzQSUyRiUyRmxvY2FsaG9zdCUzQTk0NDMlMkZz
ZXJ2aWNlLXdvcmtlcnMlMkZzZXJ2aWNlLXdvcmtlciUyRnJlc291cmNlcyUyRmZldGNoLWFjY2Vz
cy1jb250cm9sLnB5IHdpdGggY3JlZGVudGlhbHMgZmFsc2UgbXVzdCBiZSBTVUNDRVNTIAotUEFT
UyB0ZXN0IDMxOiBodHRwczovL2xvY2FsaG9zdDo5NDQzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtYWNjZXNzLWNvbnRyb2wucHk/bW9kZT1uby1jb3JzJnVy
bD1odHRwcyUzQSUyRiUyRjEyNy4wLjAuMSUzQTk0NDMlMkZzZXJ2aWNlLXdvcmtlcnMlMkZzZXJ2
aWNlLXdvcmtlciUyRnJlc291cmNlcyUyRmZldGNoLWFjY2Vzcy1jb250cm9sLnB5IHdpdGggY3Jl
ZGVudGlhbHMgZmFsc2UgbXVzdCBiZSBGQUlMIAotUEFTUyB0ZXN0IDMyOiBodHRwczovL2xvY2Fs
aG9zdDo5NDQzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gt
YWNjZXNzLWNvbnRyb2wucHk/bW9kZT1uby1jb3JzJnVybD1odHRwcyUzQSUyRiUyRjEyNy4wLjAu
MSUzQTk0NDMlMkZzZXJ2aWNlLXdvcmtlcnMlMkZzZXJ2aWNlLXdvcmtlciUyRnJlc291cmNlcyUy
RmZldGNoLWFjY2Vzcy1jb250cm9sLnB5IHdpdGggY3JlZGVudGlhbHMgZmFsc2UgbXVzdCBiZSBG
QUlMIAotUEFTUyB0ZXN0IDMzOiBodHRwczovLzEyNy4wLjAuMTo5NDQzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtYWNjZXNzLWNvbnRyb2wucHk/bW9kZT1u
by1jb3JzJnVybD1odHRwcyUzQSUyRiUyRjEyNy4wLjAuMSUzQTk0NDMlMkZzZXJ2aWNlLXdvcmtl
cnMlMkZzZXJ2aWNlLXdvcmtlciUyRnJlc291cmNlcyUyRmZldGNoLWFjY2Vzcy1jb250cm9sLnB5
IHdpdGggY3JlZGVudGlhbHMgZmFsc2UgbXVzdCBiZSBGQUlMIAotUEFTUyB0ZXN0IDM0OiBodHRw
czovLzEyNy4wLjAuMTo5NDQzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJj
ZXMvZmV0Y2gtYWNjZXNzLWNvbnRyb2wucHk/bW9kZT1uby1jb3JzJnVybD1odHRwcyUzQSUyRiUy
RjEyNy4wLjAuMSUzQTk0NDMlMkZzZXJ2aWNlLXdvcmtlcnMlMkZzZXJ2aWNlLXdvcmtlciUyRnJl
c291cmNlcyUyRmZldGNoLWFjY2Vzcy1jb250cm9sLnB5IHdpdGggY3JlZGVudGlhbHMgZmFsc2Ug
bXVzdCBiZSBGQUlMIAotUEFTUyB0ZXN0IDM1OiBodHRwczovL2xvY2FsaG9zdDo5NDQzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtYWNjZXNzLWNvbnRyb2wu
cHk/bW9kZT1jb3JzJnVybD1odHRwcyUzQSUyRiUyRjEyNy4wLjAuMSUzQTk0NDMlMkZzZXJ2aWNl
LXdvcmtlcnMlMkZzZXJ2aWNlLXdvcmtlciUyRnJlc291cmNlcyUyRmZldGNoLWFjY2Vzcy1jb250
cm9sLnB5JTNGQUNBT3JpZ2luJTNEaHR0cHMlM0ElMkYlMkZsb2NhbGhvc3QlM0E5NDQzIHdpdGgg
Y3JlZGVudGlhbHMgZmFsc2UgbXVzdCBiZSBTVUNDRVNTIAotUEFTUyB0ZXN0IDM2OiBodHRwczov
L2xvY2FsaG9zdDo5NDQzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMv
ZmV0Y2gtYWNjZXNzLWNvbnRyb2wucHk/bW9kZT1jb3JzJnVybD1odHRwcyUzQSUyRiUyRjEyNy4w
LjAuMSUzQTk0NDMlMkZzZXJ2aWNlLXdvcmtlcnMlMkZzZXJ2aWNlLXdvcmtlciUyRnJlc291cmNl
cyUyRmZldGNoLWFjY2Vzcy1jb250cm9sLnB5JTNGQUNBT3JpZ2luJTNEaHR0cHMlM0ElMkYlMkZs
b2NhbGhvc3QlM0E5NDQzIHdpdGggY3JlZGVudGlhbHMgdHJ1ZSBtdXN0IGJlIEZBSUwgCi1QQVNT
IHRlc3QgMzc6IGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL3Jlc291cmNlcy9mZXRjaC1hY2Nlc3MtY29udHJvbC5weT9tb2RlPWNvcnMmdXJsPWh0
dHBzJTNBJTJGJTJGMTI3LjAuMC4xJTNBOTQ0MyUyRnNlcnZpY2Utd29ya2VycyUyRnNlcnZpY2Ut
d29ya2VyJTJGcmVzb3VyY2VzJTJGZmV0Y2gtYWNjZXNzLWNvbnRyb2wucHklM0ZBQ0FPcmlnaW4l
M0RodHRwcyUzQSUyRiUyRmxvY2FsaG9zdCUzQTk0NDMlMjZBQ0FDcmVkZW50aWFscyUzRHRydWUg
d2l0aCBjcmVkZW50aWFscyB0cnVlIG11c3QgYmUgU1VDQ0VTUyAKLVBBU1MgdGVzdCAzODogaHR0
cHM6Ly8xMjcuMC4wLjE6OTQ0My9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3Vy
Y2VzL2ZldGNoLWFjY2Vzcy1jb250cm9sLnB5P21vZGU9Y29ycyZ1cmw9aHR0cHMlM0ElMkYlMkYx
MjcuMC4wLjElM0E5NDQzJTJGc2VydmljZS13b3JrZXJzJTJGc2VydmljZS13b3JrZXIlMkZyZXNv
dXJjZXMlMkZmZXRjaC1hY2Nlc3MtY29udHJvbC5weSUzRkFDQU9yaWdpbiUzRGh0dHBzJTNBJTJG
JTJGbG9jYWxob3N0JTNBOTQ0MyB3aXRoIGNyZWRlbnRpYWxzIGZhbHNlIG11c3QgYmUgU1VDQ0VT
UyAKLVBBU1MgdGVzdCAzOTogaHR0cHM6Ly8xMjcuMC4wLjE6OTQ0My9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWFjY2Vzcy1jb250cm9sLnB5P21vZGU9Y29y
cyZ1cmw9aHR0cHMlM0ElMkYlMkYxMjcuMC4wLjElM0E5NDQzJTJGc2VydmljZS13b3JrZXJzJTJG
c2VydmljZS13b3JrZXIlMkZyZXNvdXJjZXMlMkZmZXRjaC1hY2Nlc3MtY29udHJvbC5weSUzRkFD
QU9yaWdpbiUzRGh0dHBzJTNBJTJGJTJGbG9jYWxob3N0JTNBOTQ0MyB3aXRoIGNyZWRlbnRpYWxz
IHRydWUgbXVzdCBiZSBGQUlMIAotUEFTUyB0ZXN0IDQwOiBodHRwczovLzEyNy4wLjAuMTo5NDQz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtYWNjZXNzLWNv
bnRyb2wucHk/bW9kZT1jb3JzJnVybD1odHRwcyUzQSUyRiUyRjEyNy4wLjAuMSUzQTk0NDMlMkZz
ZXJ2aWNlLXdvcmtlcnMlMkZzZXJ2aWNlLXdvcmtlciUyRnJlc291cmNlcyUyRmZldGNoLWFjY2Vz
cy1jb250cm9sLnB5JTNGQUNBT3JpZ2luJTNEaHR0cHMlM0ElMkYlMkZsb2NhbGhvc3QlM0E5NDQz
JTI2QUNBQ3JlZGVudGlhbHMlM0R0cnVlIHdpdGggY3JlZGVudGlhbHMgdHJ1ZSBtdXN0IGJlIFNV
Q0NFU1MgCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWNvcnMteGhyLmh0
dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1jb3JzLXhoci5odHRwcy5odG1sCmlu
ZGV4IGY4ZmY0NDU2NzNiZDQyYmFmY2MyOWM0M2ViODY5NjdkYWMxZjk3OTIuLjUyMWMwMWM1OTRm
MjQ4OWI5NDVkNjc0OWViNmZiODAwMGVhMmI5MWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL2ZldGNoLWNvcnMteGhyLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0
Y2gtY29ycy14aHIuaHR0cHMuaHRtbApAQCAtNiw0NCArNiwzMyBAQAogPHNjcmlwdCBzcmM9InJl
c291cmNlcy90ZXN0LWhlbHBlcnMuc3ViLmpzP3BpcGU9c3ViIj48L3NjcmlwdD4KIDxib2R5Pgog
PHNjcmlwdD4KLXByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7Cithc3luY190ZXN0KGZ1bmN0aW9u
KHQpIHsKICAgICB2YXIgU0NPUEUgPSAncmVzb3VyY2VzL2ZldGNoLWNvcnMteGhyLWlmcmFtZS5o
dG1sJzsKICAgICB2YXIgU0NSSVBUID0gJ3Jlc291cmNlcy9mZXRjaC1yZXdyaXRlLXdvcmtlci5q
cyc7CiAgICAgdmFyIGhvc3RfaW5mbyA9IGdldF9ob3N0X2luZm8oKTsKIAotICAgIHJldHVybiBs
b2dpbl9odHRwcyh0KQorICAgIGxvZ2luX2h0dHBzKHQpCiAgICAgICAudGhlbihmdW5jdGlvbigp
IHsKICAgICAgICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0
ZXIodCwgU0NSSVBULCBTQ09QRSk7CiAgICAgICAgIH0pCiAgICAgICAudGhlbihmdW5jdGlvbihy
ZWdpc3RyYXRpb24pIHsKLSAgICAgICAgICB0LmFkZF9jbGVhbnVwKGZ1bmN0aW9uKCkgewotICAg
ICAgICAgICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcih0LCBTQ09QRSk7Ci0g
ICAgICAgICAgICB9KTsKLQogICAgICAgICAgIHJldHVybiB3YWl0X2Zvcl9zdGF0ZSh0LCByZWdp
c3RyYXRpb24uaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOwogICAgICAgICB9KQogICAgICAgLnRo
ZW4oZnVuY3Rpb24oKSB7IHJldHVybiB3aXRoX2lmcmFtZShTQ09QRSk7IH0pCiAgICAgICAudGhl
bihmdW5jdGlvbihmcmFtZSkgewotICAgICAgICAgIHQuYWRkX2NsZWFudXAoZnVuY3Rpb24oKSB7
Ci0gICAgICAgICAgICAgIGZyYW1lLnJlbW92ZSgpOwotICAgICAgICAgICAgfSk7Ci0KICAgICAg
ICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7CiAgICAg
ICAgICAgICAgIHZhciBjaGFubmVsID0gbmV3IE1lc3NhZ2VDaGFubmVsKCk7Ci0gICAgICAgICAg
ICAgIGNoYW5uZWwucG9ydDEub25tZXNzYWdlID0gKGV2ZW50KSA9PiB7Ci0gICAgICAgICAgICAg
ICAgICBpZiAoZXZlbnQuZGF0YSA9PT0gJ2RvbmUnKSB7Ci0gICAgICAgICAgICAgICAgICAgIHJl
c29sdmUoKTsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgICAgICAg
fQotICAgICAgICAgICAgICAgICAgdGVzdCgoKSA9PiB7Ci0gICAgICAgICAgICAgICAgICAgIGFz
c2VydF90cnVlKGV2ZW50LmRhdGEucmVzdWx0KTsKLSAgICAgICAgICAgICAgICAgIH0sIGV2ZW50
LmRhdGEudGVzdE5hbWUpOwotICAgICAgICAgICAgICB9OworICAgICAgICAgICAgICBjaGFubmVs
LnBvcnQxLm9ubWVzc2FnZSA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAg
ICAgICAgIGFzc2VydF9lcXVhbHMoZS5kYXRhLnJlc3VsdHMsICdmaW5pc2gnKTsKKyAgICAgICAg
ICAgICAgICAgIGZyYW1lLnJlbW92ZSgpOworICAgICAgICAgICAgICAgICAgc2VydmljZV93b3Jr
ZXJfdW5yZWdpc3Rlcl9hbmRfZG9uZSh0LCBTQ09QRSk7CisgICAgICAgICAgICAgICAgfSk7CiAg
ICAgICAgICAgICAgIGZyYW1lLmNvbnRlbnRXaW5kb3cucG9zdE1lc3NhZ2Uoe30sCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaG9zdF9pbmZvWydIVFRQU19P
UklHSU4nXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBb
Y2hhbm5lbC5wb3J0Ml0pOwogICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0pOworICAgICAgICB9
KQorICAgICAgLmNhdGNoKHVucmVhY2hlZF9yZWplY3Rpb24odCkpOwogICB9LCAnVmVyaWZ5IENP
UlMgWEhSIG9mIGZldGNoKCkgaW4gYSBTZXJ2aWNlIFdvcmtlcicpOwogPC9zY3JpcHQ+CiA8L2Jv
ZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1jc3AuaHR0cHMuaHRtbCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWNzcC5odHRwcy5odG1sCmluZGV4IDRmMTc2MjIwZDYx
MDBjNGVmYjFiZmRhODE3Yjg0Y2Y1ZjUzYTRmM2QuLjkxYTc3NGExMzNmZDZhMWU5NDJlMDAwMzRj
N2MwNTExNWVlMGRlYTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWNzcC5o
dHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWNzcC5odHRwcy5odG1sCkBA
IC0zMiwxMCArMzIsNiBAQCBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewogCiAgICAgcmV0dXJu
IHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIFNDUklQVCwgU0NPUEUp
CiAgICAgICAudGhlbihmdW5jdGlvbihyZWdpc3RyYXRpb24pIHsKLSAgICAgICAgICB0LmFkZF9j
bGVhbnVwKGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICByZXR1cm4gc2VydmljZV93b3JrZXJf
dW5yZWdpc3Rlcih0LCBTQ09QRSk7Ci0gICAgICAgICAgICB9KTsKLQogICAgICAgICAgIHJldHVy
biB3YWl0X2Zvcl9zdGF0ZSh0LCByZWdpc3RyYXRpb24uaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcp
OwogICAgICAgICB9KQogICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7CkBAIC0xMDksNiArMTA1LDcg
QEAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICAgICAgfSkKICAgICAgIC50aGVuKGZ1
bmN0aW9uKCkgewogICAgICAgICAgIGZyYW1lLnJlbW92ZSgpOworICAgICAgICAgIHNlcnZpY2Vf
d29ya2VyX3VucmVnaXN0ZXJfYW5kX2RvbmUodCwgU0NPUEUpOwogICAgICAgICB9KTsKICAgfSwg
J1ZlcmlmeSBDU1AgY29udHJvbCBvZiBmZXRjaCgpIGluIGEgU2VydmljZSBXb3JrZXInKTsKIDwv
c2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtZXZlbnQtYWZ0ZXIt
bmF2aWdhdGlvbi13aXRoaW4tcGFnZS5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0
Y2gtZXZlbnQtYWZ0ZXItbmF2aWdhdGlvbi13aXRoaW4tcGFnZS5odHRwcy5odG1sCmluZGV4IDQ4
MTJkOGE5MTU1MWVkYWU4NGI1ZTI4MDU4MDRmYzlkODg5OWYzZTkuLmRjZTFmNzk0ZmFiZWQ4MTc2
MWE4M2NmYTY4YzIzOTIwMTY4Zjk5ZmIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2Zl
dGNoLWV2ZW50LWFmdGVyLW5hdmlnYXRpb24td2l0aGluLXBhZ2UuaHR0cHMuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1ldmVudC1hZnRlci1uYXZpZ2F0aW9uLXdpdGhpbi1wYWdl
Lmh0dHBzLmh0bWwKQEAgLTE1LDEwICsxNSw2IEBAIHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7
CiAKICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwg
d29ya2VyLCBzY29wZSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKHJlZykgewotICAgICAgICAgIHQu
YWRkX2NsZWFudXAoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgIHJldHVybiBzZXJ2aWNlX3dv
cmtlcl91bnJlZ2lzdGVyKHQsIHNjb3BlKTsKLSAgICAgICAgICAgIH0pOwotCiAgICAgICAgICAg
cmV0dXJuIHdhaXRfZm9yX3N0YXRlKHQsIHJlZy5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7CiAg
ICAgICAgIH0pCiAgICAgICAudGhlbihmdW5jdGlvbigpIHsgcmV0dXJuIHdpdGhfaWZyYW1lKHNj
b3BlKTsgfSkKQEAgLTM0LDYgKzMwLDcgQEAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKICAg
ICAgIC50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlKSB7CiAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhy
ZXNwb25zZSwgJ2ludGVyY2VwdGVkIGJ5IHNlcnZpY2Ugd29ya2VyJyk7CiAgICAgICAgICAgZnJh
bWUucmVtb3ZlKCk7CisgICAgICAgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJf
YW5kX2RvbmUodCwgc2NvcGUpOwogICAgICAgICB9KQogICB9LCAnU2VydmljZSBXb3JrZXIgc2hv
dWxkIHJlc3BvbmQgdG8gZmV0Y2ggZXZlbnQgYWZ0ZXIgdGhlIGhhc2ggY2hhbmdlcycpOwogCkBA
IC00NiwxMCArNDMsNiBAQCBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewogCiAgICAgcmV0dXJu
IHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHdvcmtlciwgc2NvcGUp
CiAgICAgICAudGhlbihmdW5jdGlvbihyZWcpIHsKLSAgICAgICAgICB0LmFkZF9jbGVhbnVwKGZ1
bmN0aW9uKCkgewotICAgICAgICAgICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rl
cih0LCBzY29wZSk7Ci0gICAgICAgICAgICB9KTsKLQogICAgICAgICAgIHJldHVybiB3YWl0X2Zv
cl9zdGF0ZSh0LCByZWcuaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOwogICAgICAgICB9KQogICAg
ICAgLnRoZW4oZnVuY3Rpb24oKSB7IHJldHVybiB3aXRoX2lmcmFtZShzY29wZSk7IH0pCkBAIC02
NSw2ICs1OCw3IEBAIHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7CiAgICAgICAudGhlbihmdW5j
dGlvbihyZXNwb25zZSkgewogICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVzcG9uc2UsICdpbnRl
cmNlcHRlZCBieSBzZXJ2aWNlIHdvcmtlcicpOwogICAgICAgICAgIGZyYW1lLnJlbW92ZSgpOwor
ICAgICAgICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9kb25lKHQsIHNj
b3BlKTsKICAgICAgICAgfSkKICAgfSwgJ1NlcnZpY2UgV29ya2VyIHNob3VsZCByZXNwb25kIHRv
IGZldGNoIGV2ZW50IGFmdGVyIHRoZSBwdXNoU3RhdGUnKTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvZmV0Y2gtZXZlbnQtYXN5bmMtcmVzcG9uZC13aXRoLmh0dHBzLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWV2ZW50LWFzeW5jLXJlc3BvbmQtd2l0aC5o
dHRwcy1leHBlY3RlZC50eHQKaW5kZXggYTc4YjkwYTY3YTg1MzI0YWI3ZmFjM2Q1NmFlMGExZThh
NWYyMjhkOC4uN2UxMWJjZWQ2Zjg1MmZlOGFiZjdhNWIyZDgxOGQ2NWQzY2E0MmJlNiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtZXZlbnQtYXN5bmMtcmVzcG9uZC13aXRoLmh0
dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1ldmVudC1hc3lu
Yy1yZXNwb25kLXdpdGguaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0xLDYgKzEsMyBAQAogCi1QQVNT
IGdsb2JhbCBzZXR1cCAKLVBBU1MgcmVzcG9uZFdpdGggaW4gYSB0YXNrIHRocm93cyBJbnZhbGlk
U3RhdGVFcnJvciAKLVBBU1MgcmVzcG9uZFdpdGggaW4gYSBtaWNyb3Rhc2sgZG9lcyBub3QgdGhy
b3cgCi1QQVNTIGdsb2JhbCBjbGVhbnVwIAorUEFTUyBDYWxsaW5nIHJlc3BvbmRXaXRoIGFzeW5j
aHJvbm91c2x5IHRocm93cyBhbiBleGNlcHRpb24gCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL2ZldGNoLWV2ZW50LWFzeW5jLXJlc3BvbmQtd2l0aC5odHRwcy5odG1sIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvZmV0Y2gtZXZlbnQtYXN5bmMtcmVzcG9uZC13aXRoLmh0dHBzLmh0bWwKaW5k
ZXggZDkxNDdmODU0OTRjMjFlNTRkMzlhNGZkN2FmMTZlZmExYTEyNjM4NC4uYTJiOTNhY2ZjNWIy
NDBhMTQ4ZjA3YTMzYmQxYTBkMmE2Y2E3NTcxNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvZmV0Y2gtZXZlbnQtYXN5bmMtcmVzcG9uZC13aXRoLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvZmV0Y2gtZXZlbnQtYXN5bmMtcmVzcG9uZC13aXRoLmh0dHBzLmh0bWwKQEAg
LTEsNzMgKzEsMzMgQEAKIDwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08dGl0bGU+cmVzcG9uZFdp
dGggY2Fubm90IGJlIGNhbGxlZCBhc3luY2hyb25vdXNseTwvdGl0bGU+CiA8c2NyaXB0IHNyYz0i
L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iL3Jlc291
cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL3Rlc3QtaGVscGVycy5zdWIuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KLS8vIFRoaXMgZmls
ZSBoYXMgdGVzdHMgdGhhdCBjYWxsIHJlc3BvbmRXaXRoKCkgYXN5bmNocm9ub3VzbHkuCi0KLWxl
dCBmcmFtZTsKLWxldCB3b3JrZXI7Ci1jb25zdCBzY3JpcHQgPSAncmVzb3VyY2VzL2ZldGNoLWV2
ZW50LWFzeW5jLXJlc3BvbmQtd2l0aC13b3JrZXIuanMnOwotY29uc3Qgc2NvcGUgPSAncmVzb3Vy
Y2VzL3NpbXBsZS5odG1sJzsKLQotLy8gR2xvYmFsIHNldHVwOiB0aGlzIG11c3QgYmUgdGhlIGZp
cnN0IHByb21pc2VfdGVzdC4KLXByb21pc2VfdGVzdChhc3luYyAodCkgPT4gewotICBjb25zdCBy
ZWdpc3RyYXRpb24gPQotICAgICAgYXdhaXQgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRf
cmVnaXN0ZXIodCwgc2NyaXB0LCBzY29wZSk7Ci0gIHdvcmtlciA9IHJlZ2lzdHJhdGlvbi5pbnN0
YWxsaW5nOwotICBhd2FpdCB3YWl0X2Zvcl9zdGF0ZSh0LCB3b3JrZXIsICdhY3RpdmF0ZWQnKTsK
LSAgZnJhbWUgPSBhd2FpdCB3aXRoX2lmcmFtZShzY29wZSk7Ci19LCAnZ2xvYmFsIHNldHVwJyk7
Ci0KLS8vIFdhaXRzIGZvciBhIHNpbmdsZSBtZXNzYWdlIGZyb20gdGhlIHNlcnZpY2Ugd29ya2Vy
IGFuZCB0aGVuIHJlbW92ZXMgdGhlCi0vLyBtZXNzYWdlIGhhbmRsZXIuIE5vdCBzYWZlIGZvciBj
b25jdXJyZW50IHVzZS4KLWZ1bmN0aW9uIHdhaXRfZm9yX21lc3NhZ2UoKSB7Ci0gIHJldHVybiBu
ZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gewotICAgIGNvbnN0IGhhbmRsZXIgPSAoZXZlbnQpID0+
IHsKLSAgICAgIG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21l
c3NhZ2UnLCBoYW5kbGVyKTsKLSAgICAgIHJlc29sdmUoZXZlbnQuZGF0YSk7Ci0gICAgfTsKLSAg
ICBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgaGFu
ZGxlcik7Ci0gIH0pOwotfQotCi0vLyBEb2VzIG9uZSB0ZXN0IGNhc2UuIEl0IGZldGNoZXMgfHVy
bHwuIFRoZSBzZXJ2aWNlIHdvcmtlciBnZXRzIGEgZmV0Y2ggZXZlbnQKLS8vIGZvciB8dXJsfCBh
bmQgYXR0ZW1wdHMgdG8gY2FsbCByZXNwb25kV2l0aCgpIGFzeW5jaHJvbm91c2x5LiBJdCByZXBv
cnRzIGJhY2sKLS8vIHRvIHRoZSB0ZXN0IHdoZXRoZXIgYW4gZXhjZXB0aW9uIHdhcyB0aHJvd24u
Ci1hc3luYyBmdW5jdGlvbiBkb190ZXN0KHVybCkgewotICAvLyBTZW5kIGEgbWVzc2FnZSB0byB0
ZWxsIHRoZSB3b3JrZXIgYSBuZXcgdGVzdCBjYXNlIGlzIHN0YXJ0aW5nLgotICBjb25zdCBtZXNz
YWdlID0gd2FpdF9mb3JfbWVzc2FnZSgpOwotICB3b3JrZXIucG9zdE1lc3NhZ2UoJ2luaXRpYWxp
emVNZXNzYWdlSGFuZGxlcicpOwotICBjb25zdCByZXNwb25zZSA9IGF3YWl0IG1lc3NhZ2U7Ci0g
IGFzc2VydF9lcXVhbHMocmVzcG9uc2UsICdtZXNzYWdlSGFuZGxlckluaXRpYWxpemVkJyk7Ci0K
LSAgLy8gU3RhcnQgYSBmZXRjaC4KLSAgY29uc3QgZmV0Y2hQcm9taXNlID0gZnJhbWUuY29udGVu
dFdpbmRvdy5mZXRjaCh1cmwpOwotCi0gIC8vIFJlY2VpdmUgdGhlIHRlc3QgcmVzdWx0IGZyb20g
dGhlIHNlcnZpY2Ugd29ya2VyLgotICBjb25zdCByZXN1bHQgPSB3YWl0X2Zvcl9tZXNzYWdlKCk7
Ci0gIGF3YWl0IGZldGNoUHJvbWlzZS50aGVuKCgpPT4ge30sICgpID0+IHt9KTsKLSAgcmV0dXJu
IHJlc3VsdDsKLX07Ci0KLXByb21pc2VfdGVzdChhc3luYyAodCkgPT4gewotICBjb25zdCByZXN1
bHQgPSBhd2FpdCBkb190ZXN0KCdyZXNwb25kV2l0aC1pbi10YXNrJyk7Ci0gIGFzc2VydF90cnVl
KHJlc3VsdC5kaWRUaHJvdywgJ3Nob3VsZCB0aHJvdycpOwotICBhc3NlcnRfZXF1YWxzKHJlc3Vs
dC5lcnJvciwgJ0ludmFsaWRTdGF0ZUVycm9yJyk7Ci19LCAncmVzcG9uZFdpdGggaW4gYSB0YXNr
IHRocm93cyBJbnZhbGlkU3RhdGVFcnJvcicpOwotCi1wcm9taXNlX3Rlc3QoYXN5bmMgKHQpID0+
IHsKLSAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZG9fdGVzdCgncmVzcG9uZFdpdGgtaW4tbWljcm90
YXNrJyk7Ci0gIGFzc2VydF9lcXVhbHMocmVzdWx0LmRpZFRocm93LCBmYWxzZSwgJ3Nob3VsZCBu
b3QgdGhyb3cnKTsKLX0sICdyZXNwb25kV2l0aCBpbiBhIG1pY3JvdGFzayBkb2VzIG5vdCB0aHJv
dycpOwotCi0vLyBHbG9iYWwgY2xlYW51cDogdGhlIGZpbmFsIHByb21pc2VfdGVzdC4KLXByb21p
c2VfdGVzdChhc3luYyAodCkgPT4gewotICBpZiAoZnJhbWUpCi0gICAgZnJhbWUucmVtb3ZlKCk7
Ci0gIGF3YWl0IHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXIodCwgc2NvcGUpOwotfSwgJ2dsb2Jh
bCBjbGVhbnVwJyk7Citwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgeworICAgIHZhciBzY3JpcHQg
PSAncmVzb3VyY2VzL2ZldGNoLWV2ZW50LWFzeW5jLXJlc3BvbmQtd2l0aC13b3JrZXIuanMnOwor
ICAgIHZhciBzY29wZSA9ICdyZXNvdXJjZXMvc2ltcGxlLmh0bWwnOworCisgICAgcmV0dXJuIHNl
cnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHNjcmlwdCwgc2NvcGUpCisg
ICAgICAudGhlbihmdW5jdGlvbihyZWdpc3RyYXRpb24pIHsKKyAgICAgICAgICByZXR1cm4gd2Fp
dF9mb3Jfc3RhdGUodCwgcmVnaXN0cmF0aW9uLmluc3RhbGxpbmcsICdhY3RpdmF0ZWQnKTsKKyAg
ICAgICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKCkgeworICAgICAgICAgIHJldHVybiB3aXRo
X2lmcmFtZShzY29wZSk7CisgICAgICAgIH0pCisgICAgICAudGhlbihmdW5jdGlvbihmcmFtZSkg
eworICAgICAgICAgIGFkZF9jb21wbGV0aW9uX2NhbGxiYWNrKGZ1bmN0aW9uKCkgeyBmcmFtZS5y
ZW1vdmUoKTsgfSk7CisgICAgICAgICAgdmFyIGNoYW5uZWwgPSBuZXcgTWVzc2FnZUNoYW5uZWwo
KTsKKyAgICAgICAgICB2YXIgc2F3X21lc3NhZ2UgPSBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNv
bHZlKSB7CisgICAgICAgICAgICAgIGNoYW5uZWwucG9ydDEub25tZXNzYWdlID0gZnVuY3Rpb24o
ZSkgeyByZXNvbHZlKGUuZGF0YSk7IH0KKyAgICAgICAgICAgIH0pOworICAgICAgICAgIHZhciB3
b3JrZXIgPSBmcmFtZS5jb250ZW50V2luZG93Lm5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLmNvbnRy
b2xsZXI7CisKKyAgICAgICAgICB3b3JrZXIucG9zdE1lc3NhZ2Uoe3BvcnQ6IGNoYW5uZWwucG9y
dDJ9LCBbY2hhbm5lbC5wb3J0Ml0pOworICAgICAgICAgIHJldHVybiBzYXdfbWVzc2FnZTsKKyAg
ICAgICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKG1lc3NhZ2UpIHsKKyAgICAgICAgICBhc3Nl
cnRfZXF1YWxzKG1lc3NhZ2UsICdQQVNTJyk7CisgICAgICAgICAgcmV0dXJuIHNlcnZpY2Vfd29y
a2VyX3VucmVnaXN0ZXJfYW5kX2RvbmUodCwgc2NvcGUpOworICAgICAgICB9KQorICB9LCAnQ2Fs
bGluZyByZXNwb25kV2l0aCBhc3luY2hyb25vdXNseSB0aHJvd3MgYW4gZXhjZXB0aW9uJyk7CiA8
L3NjcmlwdD4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWV2
ZW50LW5ldHdvcmstZXJyb3IuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWV2
ZW50LW5ldHdvcmstZXJyb3IuaHR0cHMuaHRtbAppbmRleCBmZWEyYWQxZTNjMjZlZmZjYzlmZDdj
OGQ3YTY2OTE3ZTQyMDYwNmI0Li4yNTQ5MTllOTIzMjdhZWZkMTZlYjU3ODU1ZjgzMjIxY2JlOGQ3
ZWE2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1ldmVudC1uZXR3b3JrLWVy
cm9yLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtZXZlbnQtbmV0d29y
ay1lcnJvci5odHRwcy5odG1sCkBAIC0yMiwxMCArMjIsNiBAQCBwcm9taXNlX3Rlc3QoZnVuY3Rp
b24odCkgewogCiAgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lz
dGVyKHQsIHNjcmlwdCwgc2NvcGUpCiAgICAgICAudGhlbihmdW5jdGlvbihyZWdpc3RyYXRpb24p
IHsKLSAgICAgICAgICB0LmFkZF9jbGVhbnVwKGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICBy
ZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcih0LCBzY29wZSk7Ci0gICAgICAgICAgICB9
KTsKLQogICAgICAgICAgIHJldHVybiB3YWl0X2Zvcl9zdGF0ZSh0LCByZWdpc3RyYXRpb24uaW5z
dGFsbGluZywgJ2FjdGl2YXRlZCcpOwogICAgICAgICB9KQogICAgICAgLnRoZW4oZnVuY3Rpb24o
KSB7CkBAIC0zOCw2ICszNCw3IEBAIHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7CiAgICAgICAu
dGhlbihmdW5jdGlvbihyZXN1bHQpIHsKICAgICAgICAgICBmcmFtZS5yZW1vdmUoKTsKICAgICAg
ICAgICBhc3NlcnRfZXF1YWxzKHJlc3VsdCwgJ1BBU1MnKTsKKyAgICAgICAgICByZXR1cm4gc2Vy
dmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfZG9uZSh0LCBzY29wZSk7CiAgICAgICAgIH0pOwog
ICB9LCAnUmVqZWN0aW5nIHRoZSBmZXRjaCBldmVudCBvciB1c2luZyBwcmV2ZW50RGVmYXVsdCgp
IGNhdXNlcyBhIG5ldHdvcmsgJyArCiAgICAgICdlcnJvcicpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvZmV0Y2gtZXZlbnQtcmVmZXJyZXItcG9saWN5Lmh0dHBzLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWV2ZW50LXJlZmVycmVyLXBvbGljeS5odHRwcy1l
eHBlY3RlZC50eHQKaW5kZXggODJhYTVlMDBlODkxMTFiNzNlNzVmNzY0OGMyYjQxMTg4NTY5Mzc1
ZS4uYWY0ZDFmNWQ5MGMyNzUzNzdiZTRkMjUyNzQ2YjYyM2I2NzFkZjU5YiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvZmV0Y2gtZXZlbnQtcmVmZXJyZXItcG9saWN5Lmh0dHBzLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1ldmVudC1yZWZlcnJlci1wb2xp
Y3kuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0xLDEwICsxLDggQEAKLUNPTlNPTEUgTUVTU0FHRTog
bGluZSAyOTogW2Jsb2NrZWRdIFRoZSBwYWdlIGF0IGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWV2ZW50LXJlZmVycmVyLXBvbGljeS5o
dHRwcy5odG1sIHdhcyBub3QgYWxsb3dlZCB0byBkaXNwbGF5IGluc2VjdXJlIGNvbnRlbnQgZnJv
bSBodHRwOi8vbG9jYWxob3N0Ojg4MDAvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyLy9y
ZXNvdXJjZXMvc2ltcGxlLmh0bWw/cmVmZXJyZXJGdWxsLgorQ09OU09MRSBNRVNTQUdFOiBsaW5l
IDIyOiBbYmxvY2tlZF0gVGhlIHBhZ2UgYXQgaHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0My9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtZXZlbnQtcmVmZXJyZXItcG9saWN5Lmh0dHBz
Lmh0bWwgd2FzIG5vdCBhbGxvd2VkIHRvIGRpc3BsYXkgaW5zZWN1cmUgY29udGVudCBmcm9tIGh0
dHA6Ly9sb2NhbGhvc3Q6ODgwMC9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvL3Jlc291
cmNlcy9zaW1wbGUuaHRtbD9yZWZlcnJlckZ1bGwuCiAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAy
OTogTm90IGFsbG93ZWQgdG8gcmVxdWVzdCByZXNvdXJjZQotQ09OU09MRSBNRVNTQUdFOiBsaW5l
IDI5OiBGZXRjaCBBUEkgY2Fubm90IGxvYWQgaHR0cDovL2xvY2FsaG9zdDo4ODAwL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci8vcmVzb3VyY2VzL3NpbXBsZS5odG1sP3JlZmVycmVyRnVs
bCBkdWUgdG8gYWNjZXNzIGNvbnRyb2wgY2hlY2tzLgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDIy
OiBOb3QgYWxsb3dlZCB0byByZXF1ZXN0IHJlc291cmNlCitDT05TT0xFIE1FU1NBR0U6IGxpbmUg
MjI6IEZldGNoIEFQSSBjYW5ub3QgbG9hZCBodHRwOi8vbG9jYWxob3N0Ojg4MDAvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyLy9yZXNvdXJjZXMvc2ltcGxlLmh0bWw/cmVmZXJyZXJGdWxs
IGR1ZSB0byBhY2Nlc3MgY29udHJvbCBjaGVja3MuCiAKIAotRkFJTCBTZXJ2aWNlIFdvcmtlciBy
ZXNwb25kcyB0byBmZXRjaCBldmVudCB3aXRoIHRoZSByZWZlcnJlciBwb2xpY3kgcHJvbWlzZV90
ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBO
b3QgYWxsb3dlZCB0byByZXF1ZXN0IHJlc291cmNlIgotUEFTUyBTZXJ2aWNlIFdvcmtlciBzaG91
bGQgcmVzcG9uZCB0byBmZXRjaCB3aXRoIHRoZSBkZWZhdWx0IHJlZmVycmVyIHBvbGljeSAKLVBB
U1MgU2VydmljZSBXb3JrZXIgc2hvdWxkIHJlc3BvbmQgdG8gZmV0Y2ggd2l0aCB0aGUgcmVmZXJy
ZXIgVVJMIHdoZW4gYSBtZW1iZXIgb2YgUmVxdWVzdEluaXQgaXMgcHJlc2VudCAtIERlZmF1bHQg
UmVmZXJyZXIgCitGQUlMIFNlcnZpY2UgV29ya2VyIHJlc3BvbmRzIHRvIGZldGNoIGV2ZW50IHdp
dGggdGhlIHJlZmVycmVyIHBvbGljeSBhc3NlcnRfdW5yZWFjaGVkOiB1bmV4cGVjdGVkIHJlamVj
dGlvbjogTm90IGFsbG93ZWQgdG8gcmVxdWVzdCByZXNvdXJjZSBSZWFjaGVkIHVucmVhY2hhYmxl
IGNvZGUKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtZXZlbnQtcmVmZXJy
ZXItcG9saWN5Lmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1ldmVudC1yZWZl
cnJlci1wb2xpY3kuaHR0cHMuaHRtbAppbmRleCA4MDRmZDliNDIwNGM0MjI0Y2IxNTI2N2UyNzlk
NzRlODc3MGVmN2M5Li45YjY3ZmFjY2FjOGJhZmY4MWJiZmZkOTVlM2MzMzVkMDJjY2RmMjE2IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1ldmVudC1yZWZlcnJlci1wb2xpY3ku
aHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1ldmVudC1yZWZlcnJlci1w
b2xpY3kuaHR0cHMuaHRtbApAQCAtNywxOSArNywxMiBAQAogPHNjcmlwdD4KIHZhciB3b3JrZXIg
PSAncmVzb3VyY2VzL2ZldGNoLWV2ZW50LXRlc3Qtd29ya2VyLmpzJzsKIAotZnVuY3Rpb24gZG9f
dGVzdChyZWZlcnJlciwgdmFsdWUsIGV4cGVjdGVkLCBuYW1lKQotewotICAgIHRlc3QoKCkgPT4g
ewotICAgICAgICAgIGFzc2VydF9lcXVhbHModmFsdWUsIGV4cGVjdGVkKTsKLSAgICB9LCBuYW1l
ICsgKHJlZmVycmVyID8gIiAtIEN1c3RvbSBSZWZlcnJlciIgOiAiIC0gRGVmYXVsdCBSZWZlcnJl
ciIpKTsKLX0KLQogZnVuY3Rpb24gcnVuX3JlZmVycmVyX3BvbGljeV90ZXN0cyhmcmFtZSwgcmVm
ZXJyZXIsIGhyZWYsIG9yaWdpbikgewogICAgIHJldHVybiBmcmFtZS5jb250ZW50V2luZG93LmZl
dGNoKCdyZXNvdXJjZXMvc2ltcGxlLmh0bWw/cmVmZXJyZXJGdWxsJywKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB7bWV0aG9kOiAiR0VUIiwgcmVmZXJyZXI6IHJlZmVycmVy
fSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlKSB7IHJldHVybiByZXNwb25zZS50ZXh0
KCk7IH0pCiAgICAgICAudGhlbihmdW5jdGlvbihyZXNwb25zZV90ZXh0KSB7Ci0gICAgICAgICAg
ZG9fdGVzdChyZWZlcnJlciwKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKAogICAgICAgICAgICAg
cmVzcG9uc2VfdGV4dCwKICAgICAgICAgICAgICdSZWZlcnJlcjogJyArIGhyZWYgKyAnXG4nICsK
ICAgICAgICAgICAgICdSZWZlcnJlclBvbGljeTogbm8tcmVmZXJyZXItd2hlbi1kb3duZ3JhZGUn
LApAQCAtMzEsNyArMjQsNyBAQCBmdW5jdGlvbiBydW5fcmVmZXJyZXJfcG9saWN5X3Rlc3RzKGZy
YW1lLCByZWZlcnJlciwgaHJlZiwgb3JpZ2luKSB7CiAgICAgICAgIH0pCiAgICAgICAudGhlbihm
dW5jdGlvbihyZXNwb25zZSkgeyByZXR1cm4gcmVzcG9uc2UudGV4dCgpOyB9KQogICAgICAgLnRo
ZW4oZnVuY3Rpb24ocmVzcG9uc2VfdGV4dCkgewotICAgICAgICAgIGRvX3Rlc3QocmVmZXJyZXIs
CisgICAgICAgICAgYXNzZXJ0X2VxdWFscygKICAgICAgICAgICAgIHJlc3BvbnNlX3RleHQsCiAg
ICAgICAgICAgICAnUmVmZXJyZXI6IFxuJyArCiAgICAgICAgICAgICAnUmVmZXJyZXJQb2xpY3k6
IG5vLXJlZmVycmVyLXdoZW4tZG93bmdyYWRlJywKQEAgLTQxLDcgKzM0LDcgQEAgZnVuY3Rpb24g
cnVuX3JlZmVycmVyX3BvbGljeV90ZXN0cyhmcmFtZSwgcmVmZXJyZXIsIGhyZWYsIG9yaWdpbikg
ewogICAgICAgICB9KQogICAgICAgLnRoZW4oZnVuY3Rpb24ocmVzcG9uc2UpIHsgcmV0dXJuIHJl
c3BvbnNlLnRleHQoKTsgfSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlX3RleHQpIHsK
LSAgICAgICAgICBkb190ZXN0KHJlZmVycmVyLAorICAgICAgICAgIGFzc2VydF9lcXVhbHMoCiAg
ICAgICAgICAgICByZXNwb25zZV90ZXh0LAogICAgICAgICAgICAgJ1JlZmVycmVyOiAnICsgaHJl
ZiArICdcbicgKwogICAgICAgICAgICAgJ1JlZmVycmVyUG9saWN5OiBuby1yZWZlcnJlci13aGVu
LWRvd25ncmFkZScsCkBAIC01Myw3ICs0Niw3IEBAIGZ1bmN0aW9uIHJ1bl9yZWZlcnJlcl9wb2xp
Y3lfdGVzdHMoZnJhbWUsIHJlZmVycmVyLCBocmVmLCBvcmlnaW4pIHsKICAgICAgICAgfSkKICAg
ICAgIC50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlKSB7IHJldHVybiByZXNwb25zZS50ZXh0KCk7IH0p
CiAgICAgICAudGhlbihmdW5jdGlvbihyZXNwb25zZV90ZXh0KSB7Ci0gICAgICAgICAgZG9fdGVz
dChyZWZlcnJlciwKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKAogICAgICAgICAgICAgcmVzcG9u
c2VfdGV4dCwKICAgICAgICAgICAgICdSZWZlcnJlcjogXG4nICsKICAgICAgICAgICAgICdSZWZl
cnJlclBvbGljeTogbm8tcmVmZXJyZXItd2hlbi1kb3duZ3JhZGUnLApAQCAtNjMsNyArNTYsNyBA
QCBmdW5jdGlvbiBydW5fcmVmZXJyZXJfcG9saWN5X3Rlc3RzKGZyYW1lLCByZWZlcnJlciwgaHJl
Ziwgb3JpZ2luKSB7CiAgICAgICAgIH0pCiAgICAgICAudGhlbihmdW5jdGlvbihyZXNwb25zZSkg
eyByZXR1cm4gcmVzcG9uc2UudGV4dCgpOyB9KQogICAgICAgLnRoZW4oZnVuY3Rpb24ocmVzcG9u
c2VfdGV4dCkgewotICAgICAgICAgIGRvX3Rlc3QocmVmZXJyZXIsCisgICAgICAgICAgYXNzZXJ0
X2VxdWFscygKICAgICAgICAgICAgIHJlc3BvbnNlX3RleHQsCiAgICAgICAgICAgICAnUmVmZXJy
ZXI6ICcgKyBvcmlnaW4gKyAnLycgKyAnXG4nICsKICAgICAgICAgICAgICdSZWZlcnJlclBvbGlj
eTogb3JpZ2luJywKQEAgLTc1LDcgKzY4LDcgQEAgZnVuY3Rpb24gcnVuX3JlZmVycmVyX3BvbGlj
eV90ZXN0cyhmcmFtZSwgcmVmZXJyZXIsIGhyZWYsIG9yaWdpbikgewogICAgICAgICB9KQogICAg
ICAgLnRoZW4oZnVuY3Rpb24ocmVzcG9uc2UpIHsgcmV0dXJuIHJlc3BvbnNlLnRleHQoKTsgfSkK
ICAgICAgIC50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlX3RleHQpIHsKLSAgICAgICAgICBkb190ZXN0
KHJlZmVycmVyLAorICAgICAgICAgIGFzc2VydF9lcXVhbHMoCiAgICAgICAgICAgICByZXNwb25z
ZV90ZXh0LAogICAgICAgICAgICAgJ1JlZmVycmVyOiAnICsgb3JpZ2luICsgJy8nICsgJ1xuJyAr
CiAgICAgICAgICAgICAnUmVmZXJyZXJQb2xpY3k6IG9yaWdpbicsCkBAIC04NSw3ICs3OCw3IEBA
IGZ1bmN0aW9uIHJ1bl9yZWZlcnJlcl9wb2xpY3lfdGVzdHMoZnJhbWUsIHJlZmVycmVyLCBocmVm
LCBvcmlnaW4pIHsKICAgICAgICAgfSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlKSB7
IHJldHVybiByZXNwb25zZS50ZXh0KCk7IH0pCiAgICAgICAudGhlbihmdW5jdGlvbihyZXNwb25z
ZV90ZXh0KSB7Ci0gICAgICAgICAgZG9fdGVzdChyZWZlcnJlciwKKyAgICAgICAgICBhc3NlcnRf
ZXF1YWxzKAogICAgICAgICAgICAgcmVzcG9uc2VfdGV4dCwKICAgICAgICAgICAgICdSZWZlcnJl
cjogJyArIGhyZWYgKyAnXG4nICsKICAgICAgICAgICAgICdSZWZlcnJlclBvbGljeTogb3JpZ2lu
LXdoZW4tY3Jvc3Mtb3JpZ2luJywKQEAgLTk3LDcgKzkwLDcgQEAgZnVuY3Rpb24gcnVuX3JlZmVy
cmVyX3BvbGljeV90ZXN0cyhmcmFtZSwgcmVmZXJyZXIsIGhyZWYsIG9yaWdpbikgewogICAgICAg
ICB9KQogICAgICAgLnRoZW4oZnVuY3Rpb24ocmVzcG9uc2UpIHsgcmV0dXJuIHJlc3BvbnNlLnRl
eHQoKTsgfSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlX3RleHQpIHsKLSAgICAgICAg
ICBkb190ZXN0KHJlZmVycmVyLAorICAgICAgICAgIGFzc2VydF9lcXVhbHMoCiAgICAgICAgICAg
ICByZXNwb25zZV90ZXh0LAogICAgICAgICAgICAgJ1JlZmVycmVyOiAnICsgb3JpZ2luICsgJy8n
ICsgJ1xuJyArCiAgICAgICAgICAgICAnUmVmZXJyZXJQb2xpY3k6IG9yaWdpbi13aGVuLWNyb3Nz
LW9yaWdpbicsCkBAIC0xMDcsNyArMTAwLDcgQEAgZnVuY3Rpb24gcnVuX3JlZmVycmVyX3BvbGlj
eV90ZXN0cyhmcmFtZSwgcmVmZXJyZXIsIGhyZWYsIG9yaWdpbikgewogICAgICAgICB9KQogICAg
ICAgLnRoZW4oZnVuY3Rpb24ocmVzcG9uc2UpIHsgcmV0dXJuIHJlc3BvbnNlLnRleHQoKTsgfSkK
ICAgICAgIC50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlX3RleHQpIHsKLSAgICAgICAgICBkb190ZXN0
KHJlZmVycmVyLAorICAgICAgICAgIGFzc2VydF9lcXVhbHMoCiAgICAgICAgICAgICByZXNwb25z
ZV90ZXh0LAogICAgICAgICAgICAgJ1JlZmVycmVyOiAnICsgaHJlZiArICdcbicgKwogICAgICAg
ICAgICAgJ1JlZmVycmVyUG9saWN5OiBuby1yZWZlcnJlci13aGVuLWRvd25ncmFkZScsCkBAIC0x
MTksNyArMTEyLDcgQEAgZnVuY3Rpb24gcnVuX3JlZmVycmVyX3BvbGljeV90ZXN0cyhmcmFtZSwg
cmVmZXJyZXIsIGhyZWYsIG9yaWdpbikgewogICAgICAgICB9KQogICAgICAgLnRoZW4oZnVuY3Rp
b24ocmVzcG9uc2UpIHsgcmV0dXJuIHJlc3BvbnNlLnRleHQoKTsgfSkKICAgICAgIC50aGVuKGZ1
bmN0aW9uKHJlc3BvbnNlX3RleHQpIHsKLSAgICAgICAgICBkb190ZXN0KHJlZmVycmVyLAorICAg
ICAgICAgIGFzc2VydF9lcXVhbHMoCiAgICAgICAgICAgICByZXNwb25zZV90ZXh0LAogICAgICAg
ICAgICAgJ1JlZmVycmVyOiBcbicgKwogICAgICAgICAgICAgJ1JlZmVycmVyUG9saWN5OiBuby1y
ZWZlcnJlci13aGVuLWRvd25ncmFkZScsCkBAIC0xMzAsNyArMTIzLDcgQEAgZnVuY3Rpb24gcnVu
X3JlZmVycmVyX3BvbGljeV90ZXN0cyhmcmFtZSwgcmVmZXJyZXIsIGhyZWYsIG9yaWdpbikgewog
ICAgICAgICB9KQogICAgICAgLnRoZW4oZnVuY3Rpb24ocmVzcG9uc2UpIHsgcmV0dXJuIHJlc3Bv
bnNlLnRleHQoKTsgfSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlX3RleHQpIHsKLSAg
ICAgICAgICBkb190ZXN0KHJlZmVycmVyLAorICAgICAgICAgIGFzc2VydF9lcXVhbHMoCiAgICAg
ICAgICAgICByZXNwb25zZV90ZXh0LAogICAgICAgICAgICAgJ1JlZmVycmVyOiAnICsgaHJlZiAr
ICdcbicgKwogICAgICAgICAgICAgJ1JlZmVycmVyUG9saWN5OiB1bnNhZmUtdXJsJywKQEAgLTE0
MCw3ICsxMzMsNyBAQCBmdW5jdGlvbiBydW5fcmVmZXJyZXJfcG9saWN5X3Rlc3RzKGZyYW1lLCBy
ZWZlcnJlciwgaHJlZiwgb3JpZ2luKSB7CiAgICAgICAgIH0pCiAgICAgICAudGhlbihmdW5jdGlv
bihyZXNwb25zZSkgeyByZXR1cm4gcmVzcG9uc2UudGV4dCgpOyB9KQogICAgICAgLnRoZW4oZnVu
Y3Rpb24ocmVzcG9uc2VfdGV4dCkgewotICAgICAgICAgIGRvX3Rlc3QocmVmZXJyZXIsCisgICAg
ICAgICAgYXNzZXJ0X2VxdWFscygKICAgICAgICAgICAgIHJlc3BvbnNlX3RleHQsCiAgICAgICAg
ICAgICAnUmVmZXJyZXI6IFxuJyArCiAgICAgICAgICAgICAnUmVmZXJyZXJQb2xpY3k6IG5vLXJl
ZmVycmVyJywKQEAgLTE1MCw3ICsxNDMsNyBAQCBmdW5jdGlvbiBydW5fcmVmZXJyZXJfcG9saWN5
X3Rlc3RzKGZyYW1lLCByZWZlcnJlciwgaHJlZiwgb3JpZ2luKSB7CiAgICAgICAgIH0pCiAgICAg
ICAudGhlbihmdW5jdGlvbihyZXNwb25zZSkgeyByZXR1cm4gcmVzcG9uc2UudGV4dCgpOyB9KQog
ICAgICAgLnRoZW4oZnVuY3Rpb24ocmVzcG9uc2VfdGV4dCkgewotICAgICAgICAgIGRvX3Rlc3Qo
cmVmZXJyZXIsCisgICAgICAgICAgYXNzZXJ0X2VxdWFscygKICAgICAgICAgICAgIHJlc3BvbnNl
X3RleHQsCiAgICAgICAgICAgICAnUmVmZXJyZXI6ICcgKyBocmVmICsgJ1xuJyArCiAgICAgICAg
ICAgICAnUmVmZXJyZXJQb2xpY3k6IHNhbWUtb3JpZ2luJywKQEAgLTE2Miw3ICsxNTUsNyBAQCBm
dW5jdGlvbiBydW5fcmVmZXJyZXJfcG9saWN5X3Rlc3RzKGZyYW1lLCByZWZlcnJlciwgaHJlZiwg
b3JpZ2luKSB7CiAgICAgICAgIH0pCiAgICAgICAudGhlbihmdW5jdGlvbihyZXNwb25zZSkgeyBy
ZXR1cm4gcmVzcG9uc2UudGV4dCgpOyB9KQogICAgICAgLnRoZW4oZnVuY3Rpb24ocmVzcG9uc2Vf
dGV4dCkgewotICAgICAgICAgIGRvX3Rlc3QocmVmZXJyZXIsCisgICAgICAgICAgYXNzZXJ0X2Vx
dWFscygKICAgICAgICAgICAgIHJlc3BvbnNlX3RleHQsCiAgICAgICAgICAgICAnUmVmZXJyZXI6
IFxuJyArCiAgICAgICAgICAgICAnUmVmZXJyZXJQb2xpY3k6IHNhbWUtb3JpZ2luJywKQEAgLTE3
NCw3ICsxNjcsNyBAQCBmdW5jdGlvbiBydW5fcmVmZXJyZXJfcG9saWN5X3Rlc3RzKGZyYW1lLCBy
ZWZlcnJlciwgaHJlZiwgb3JpZ2luKSB7CiAgICAgICAgIH0pCiAgICAgICAudGhlbihmdW5jdGlv
bihyZXNwb25zZSkgeyByZXR1cm4gcmVzcG9uc2UudGV4dCgpOyB9KQogICAgICAgLnRoZW4oZnVu
Y3Rpb24ocmVzcG9uc2VfdGV4dCkgewotICAgICAgICAgIGRvX3Rlc3QocmVmZXJyZXIsCisgICAg
ICAgICAgYXNzZXJ0X2VxdWFscygKICAgICAgICAgICAgIHJlc3BvbnNlX3RleHQsCiAgICAgICAg
ICAgICAnUmVmZXJyZXI6ICcgKyBvcmlnaW4gKyAnLycgKyAnXG4nICsKICAgICAgICAgICAgICdS
ZWZlcnJlclBvbGljeTogc3RyaWN0LW9yaWdpbicsCkBAIC0xODQsNyArMTc3LDcgQEAgZnVuY3Rp
b24gcnVuX3JlZmVycmVyX3BvbGljeV90ZXN0cyhmcmFtZSwgcmVmZXJyZXIsIGhyZWYsIG9yaWdp
bikgewogICAgICAgICB9KQogICAgICAgLnRoZW4oZnVuY3Rpb24ocmVzcG9uc2UpIHsgcmV0dXJu
IHJlc3BvbnNlLnRleHQoKTsgfSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlX3RleHQp
IHsKLSAgICAgICAgICBkb190ZXN0KHJlZmVycmVyLAorICAgICAgICAgIGFzc2VydF9lcXVhbHMo
CiAgICAgICAgICAgICByZXNwb25zZV90ZXh0LAogICAgICAgICAgICAgJ1JlZmVycmVyOiAnICsg
b3JpZ2luICsgJy8nICsgJ1xuJyArCiAgICAgICAgICAgICAnUmVmZXJyZXJQb2xpY3k6IHN0cmlj
dC1vcmlnaW4nLApAQCAtMTk2LDcgKzE4OSw3IEBAIGZ1bmN0aW9uIHJ1bl9yZWZlcnJlcl9wb2xp
Y3lfdGVzdHMoZnJhbWUsIHJlZmVycmVyLCBocmVmLCBvcmlnaW4pIHsKICAgICAgICAgfSkKICAg
ICAgIC50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlKSB7IHJldHVybiByZXNwb25zZS50ZXh0KCk7IH0p
CiAgICAgICAudGhlbihmdW5jdGlvbihyZXNwb25zZV90ZXh0KSB7Ci0gICAgICAgICAgZG9fdGVz
dChyZWZlcnJlciwKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKAogICAgICAgICAgICAgcmVzcG9u
c2VfdGV4dCwKICAgICAgICAgICAgICdSZWZlcnJlcjogXG4nICsKICAgICAgICAgICAgICdSZWZl
cnJlclBvbGljeTogc3RyaWN0LW9yaWdpbicsCkBAIC0yMDYsNyArMTk5LDcgQEAgZnVuY3Rpb24g
cnVuX3JlZmVycmVyX3BvbGljeV90ZXN0cyhmcmFtZSwgcmVmZXJyZXIsIGhyZWYsIG9yaWdpbikg
ewogICAgICAgICB9KQogICAgICAgLnRoZW4oZnVuY3Rpb24ocmVzcG9uc2UpIHsgcmV0dXJuIHJl
c3BvbnNlLnRleHQoKTsgfSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlX3RleHQpIHsK
LSAgICAgICAgICBkb190ZXN0KHJlZmVycmVyLAorICAgICAgICAgIGFzc2VydF9lcXVhbHMoCiAg
ICAgICAgICAgICByZXNwb25zZV90ZXh0LAogICAgICAgICAgICAgJ1JlZmVycmVyOiAnICsgaHJl
ZiArICdcbicgKwogICAgICAgICAgICAgJ1JlZmVycmVyUG9saWN5OiBzdHJpY3Qtb3JpZ2luLXdo
ZW4tY3Jvc3Mtb3JpZ2luJywKQEAgLTIxOCw3ICsyMTEsNyBAQCBmdW5jdGlvbiBydW5fcmVmZXJy
ZXJfcG9saWN5X3Rlc3RzKGZyYW1lLCByZWZlcnJlciwgaHJlZiwgb3JpZ2luKSB7CiAgICAgICAg
IH0pCiAgICAgICAudGhlbihmdW5jdGlvbihyZXNwb25zZSkgeyByZXR1cm4gcmVzcG9uc2UudGV4
dCgpOyB9KQogICAgICAgLnRoZW4oZnVuY3Rpb24ocmVzcG9uc2VfdGV4dCkgewotICAgICAgICAg
IGRvX3Rlc3QocmVmZXJyZXIsCisgICAgICAgICAgYXNzZXJ0X2VxdWFscygKICAgICAgICAgICAg
IHJlc3BvbnNlX3RleHQsCiAgICAgICAgICAgICAnUmVmZXJyZXI6ICcgKyBvcmlnaW4gKyAnLycg
KyAnXG4nICsKICAgICAgICAgICAgICdSZWZlcnJlclBvbGljeTogc3RyaWN0LW9yaWdpbi13aGVu
LWNyb3NzLW9yaWdpbicsCkBAIC0yMzAsNyArMjIzLDcgQEAgZnVuY3Rpb24gcnVuX3JlZmVycmVy
X3BvbGljeV90ZXN0cyhmcmFtZSwgcmVmZXJyZXIsIGhyZWYsIG9yaWdpbikgewogICAgICAgICB9
KQogICAgICAgLnRoZW4oZnVuY3Rpb24ocmVzcG9uc2UpIHsgcmV0dXJuIHJlc3BvbnNlLnRleHQo
KTsgfSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlX3RleHQpIHsKLSAgICAgICAgICBk
b190ZXN0KHJlZmVycmVyLAorICAgICAgICAgIGFzc2VydF9lcXVhbHMoCiAgICAgICAgICAgICBy
ZXNwb25zZV90ZXh0LAogICAgICAgICAgICAgJ1JlZmVycmVyOiBcbicgKwogICAgICAgICAgICAg
J1JlZmVycmVyUG9saWN5OiBzdHJpY3Qtb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luJywKQEAgLTIz
OCwzNiArMjMxLDM1IEBAIGZ1bmN0aW9uIHJ1bl9yZWZlcnJlcl9wb2xpY3lfdGVzdHMoZnJhbWUs
IHJlZmVycmVyLCBocmVmLCBvcmlnaW4pIHsKICAgICAgICAgfSk7CiB9CiAKLXByb21pc2VfdGVz
dChmdW5jdGlvbih0KSB7Cithc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICB2YXIgc2NvcGUg
PSAncmVzb3VyY2VzL3NpbXBsZS5odG1sP3JlZmVycmVyUG9saWN5JzsKICAgICB2YXIgZnJhbWU7
Ci0gICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHdv
cmtlciwgc2NvcGUpCisgICAgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIo
dCwgd29ya2VyLCBzY29wZSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKHJlZykgewotICAgICAgICAg
IHQuYWRkX2NsZWFudXAoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgIHJldHVybiBzZXJ2aWNl
X3dvcmtlcl91bnJlZ2lzdGVyKHQsIHNjb3BlKTsKLSAgICAgICAgICAgIH0pOwotCiAgICAgICAg
ICAgcmV0dXJuIHdhaXRfZm9yX3N0YXRlKHQsIHJlZy5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7
CiAgICAgICAgIH0pCiAgICAgICAudGhlbihmdW5jdGlvbigpIHsgcmV0dXJuIHdpdGhfaWZyYW1l
KHNjb3BlKTsgfSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKGYpIHsKICAgICAgICAgICBmcmFtZSA9
IGY7Ci0gICAgICAgICAgdGVzdCgoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGZy
YW1lLmNvbnRlbnREb2N1bWVudC5ib2R5LnRleHRDb250ZW50LCAnUmVmZXJyZXJQb2xpY3k6IG5v
LXJlZmVycmVyLXdoZW4tZG93bmdyYWRlJyk7Ci0gICAgICAgICAgfSwgJ1NlcnZpY2UgV29ya2Vy
IHNob3VsZCByZXNwb25kIHRvIGZldGNoIHdpdGggdGhlIGRlZmF1bHQgcmVmZXJyZXIgcG9saWN5
Jyk7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscygKKyAgICAgICAgICAgIGZyYW1lLmNvbnRlbnRE
b2N1bWVudC5ib2R5LnRleHRDb250ZW50LAorICAgICAgICAgICAgJ1JlZmVycmVyUG9saWN5OiBu
by1yZWZlcnJlci13aGVuLWRvd25ncmFkZScsCisgICAgICAgICAgICAnU2VydmljZSBXb3JrZXIg
c2hvdWxkIHJlc3BvbmQgdG8gZmV0Y2ggd2l0aCB0aGUgZGVmYXVsdCByZWZlcnJlciBwb2xpY3kn
KTsKICAgICAgICAgICAvLyBGaXJzdCwgcnVuIHRoZSByZWZlcnJlciBwb2xpY3kgdGVzdHMgd2l0
aG91dCBwYXNzaW5nIGEgcmVmZXJyZXIgaW4gUmVxdWVzdEluaXQuCiAgICAgICAgICAgcmV0dXJu
IHJ1bl9yZWZlcnJlcl9wb2xpY3lfdGVzdHMoZnJhbWUsIHVuZGVmaW5lZCwgZnJhbWUuY29udGVu
dERvY3VtZW50LmxvY2F0aW9uLmhyZWYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZnJhbWUuY29udGVudERvY3VtZW50LmxvY2F0aW9uLm9yaWdpbik7CiAgICAg
ICAgIH0pCiAgICAgICAudGhlbihmdW5jdGlvbigpIHsKICAgICAgICAgICAvLyBOb3csIHJ1biB0
aGUgcmVmZXJyZXIgcG9saWN5IHRlc3RzIHdoaWxlIHBhc3NpbmcgYSByZWZlcnJlciBpbiBSZXF1
ZXN0SW5pdC4KLSAgICAgICAgICB2YXIgcmVmZXJyZXIgPSBnZXRfaG9zdF9pbmZvKClbJ0hUVFBT
X09SSUdJTiddICsgYmFzZV9wYXRoKCkgKyAncmVzb3VyY2VzL2Zha2UtcmVmZXJyZXInOworICAg
ICAgICAgIHZhciByZWZlcnJlciA9IGdldF9ob3N0X2luZm8oKVsnSFRUUFNfT1JJR0lOJ10gKyBi
YXNlX3BhdGgoKSArICdmYWtlLXJlZmVycmVyJzsKICAgICAgICAgICByZXR1cm4gcnVuX3JlZmVy
cmVyX3BvbGljeV90ZXN0cyhmcmFtZSwgJ2Zha2UtcmVmZXJyZXInLCByZWZlcnJlciwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcmFtZS5jb250ZW50RG9jdW1l
bnQubG9jYXRpb24ub3JpZ2luKTsKICAgICAgICAgfSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKCkg
ewogICAgICAgICAgIGZyYW1lLnJlbW92ZSgpOwotICAgICAgICB9KTsKKyAgICAgICAgICByZXR1
cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfZG9uZSh0LCBzY29wZSk7CisgICAgICAg
IH0pCisgICAgICAuY2F0Y2godW5yZWFjaGVkX3JlamVjdGlvbih0KSk7CiAgIH0sICdTZXJ2aWNl
IFdvcmtlciByZXNwb25kcyB0byBmZXRjaCBldmVudCB3aXRoIHRoZSByZWZlcnJlciBwb2xpY3kn
KTsKIAogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1ldmVu
dC1yZXNwb25kLXdpdGgtYXJndW1lbnQuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2Zl
dGNoLWV2ZW50LXJlc3BvbmQtd2l0aC1hcmd1bWVudC5odHRwcy5odG1sCmluZGV4IDA1ZTIyMTA1
MjQzZjcxMDI3M2Y1NmUyMTUwMjY1OWFkMTc4MWUyOGMuLmM3OGZiNzg0YTJmN2U0MTM1YzJiNDQy
OTA4MmRjMTU3ZDkzMDBmZmIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWV2
ZW50LXJlc3BvbmQtd2l0aC1hcmd1bWVudC5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL2ZldGNoLWV2ZW50LXJlc3BvbmQtd2l0aC1hcmd1bWVudC5odHRwcy5odG1sCkBAIC0yMiwx
MCArMjIsNiBAQCBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewogCiAgICAgcmV0dXJuIHNlcnZp
Y2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHNjcmlwdCwgc2NvcGUpCiAgICAg
ICAudGhlbihmdW5jdGlvbihyZWdpc3RyYXRpb24pIHsKLSAgICAgICAgICB0LmFkZF9jbGVhbnVw
KGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdp
c3Rlcih0LCBzY29wZSk7Ci0gICAgICAgICAgICB9KTsKLQogICAgICAgICAgIHJldHVybiB3YWl0
X2Zvcl9zdGF0ZSh0LCByZWdpc3RyYXRpb24uaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOwogICAg
ICAgICB9KQogICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7CkBAIC0zOCw2ICszNCw3IEBAIHByb21p
c2VfdGVzdChmdW5jdGlvbih0KSB7CiAgICAgICAudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKICAg
ICAgICAgICBmcmFtZS5yZW1vdmUoKTsKICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHJlc3VsdCwg
J1BBU1MnKTsKKyAgICAgICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRf
ZG9uZSh0LCBzY29wZSk7CiAgICAgICAgIH0pOwogICB9LCAncmVzcG9uZFdpdGgoKSB0YWtlcyBl
aXRoZXIgYSBSZXNwb25zZSBvciBhIHByb21pc2UgdGhhdCByZXNvbHZlcyAnICsKICAgICAgJ3dp
dGggYSBSZXNwb25zZS4gT3RoZXIgdmFsdWVzIHNob3VsZCByYWlzZSBhIG5ldHdvcmsgZXJyb3Iu
Jyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1ldmVudC1yZXNwb25kLXdp
dGgtYm9keS1sb2FkZWQtaW4tY2h1bmsuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2Zl
dGNoLWV2ZW50LXJlc3BvbmQtd2l0aC1ib2R5LWxvYWRlZC1pbi1jaHVuay5odHRwcy5odG1sCmlu
ZGV4IDkzMmY5MDMwYzUxY2U2ZTA5ZDRkYmEwOGYwZGFiMTlkZWM2ZThiMTUuLjgyNGI2ZjMyMTdi
ZTQ3ZmNiZDU1NjI2NGZlZjBjMzdlMmY1YmM1NzAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL2ZldGNoLWV2ZW50LXJlc3BvbmQtd2l0aC1ib2R5LWxvYWRlZC1pbi1jaHVuay5odHRwcy5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWV2ZW50LXJlc3BvbmQtd2l0aC1ib2R5
LWxvYWRlZC1pbi1jaHVuay5odHRwcy5odG1sCkBAIC0xLDcgKzEsNiBAQAogPCFET0NUWVBFIGh0
bWw+CiA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CiA8dGl0bGU+cmVzcG9uZFdpdGggd2l0aCBhIHJl
c3BvbnNlIHdob3NlIGJvZHkgaXMgYmVpbmcgbG9hZGVkIGZyb20gdGhlIG5ldHdvcmsgYnkgY2h1
bmtzPC90aXRsZT4KLTxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciPgogPHNjcmlw
dCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9
Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9
InJlc291cmNlcy90ZXN0LWhlbHBlcnMuc3ViLmpzIj48L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL2ZldGNoLWV2ZW50LXJlc3BvbmQtd2l0aC1zdG9wcy1wcm9wYWdhdGlv
bi5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtZXZlbnQtcmVzcG9uZC13aXRo
LXN0b3BzLXByb3BhZ2F0aW9uLmh0dHBzLmh0bWwKaW5kZXggMzFmZDYxNmI2ZDZmNTA5YjdkY2I2
YjU2ZjQ1ZTljMmUxMmU5YjhlNi4uY2Q2ODYxYTlkNDUzNjFhOWNiYWFiM2VhNjM5MjU3YTE0YWNj
YjM0OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtZXZlbnQtcmVzcG9uZC13
aXRoLXN0b3BzLXByb3BhZ2F0aW9uLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
ZmV0Y2gtZXZlbnQtcmVzcG9uZC13aXRoLXN0b3BzLXByb3BhZ2F0aW9uLmh0dHBzLmh0bWwKQEAg
LTEwLDEwICsxMCw2IEBAIHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7CiAKICAgICByZXR1cm4g
c2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgc2NyaXB0LCBzY29wZSkK
ICAgICAgIC50aGVuKGZ1bmN0aW9uKHJlZ2lzdHJhdGlvbikgewotICAgICAgICAgIHQuYWRkX2Ns
ZWFudXAoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91
bnJlZ2lzdGVyKHQsIHNjb3BlKTsKLSAgICAgICAgICAgIH0pOwotCiAgICAgICAgICAgcmV0dXJu
IHdhaXRfZm9yX3N0YXRlKHQsIHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7
CiAgICAgICAgIH0pCiAgICAgICAudGhlbihmdW5jdGlvbigpIHsKQEAgLTMyLDYgKzI4LDcgQEAg
cHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICAgICAgfSkKICAgICAgIC50aGVuKGZ1bmN0
aW9uKG1lc3NhZ2UpIHsKICAgICAgICAgICBhc3NlcnRfZXF1YWxzKG1lc3NhZ2UsICdQQVNTJyk7
CisgICAgICAgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX2RvbmUodCwg
c2NvcGUpOwogICAgICAgICB9KQogICB9LCAncmVzcG9uZFdpdGgoKSBpbnZva2VzIHN0b3BJbW1l
ZGlhdGVQcm9wYWdhdGlvbigpJyk7CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL2ZldGNoLWV2ZW50LXRocm93cy1hZnRlci1yZXNwb25kLXdpdGguaHR0cHMuaHRtbCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWV2ZW50LXRocm93cy1hZnRlci1yZXNwb25kLXdpdGgu
aHR0cHMuaHRtbAppbmRleCBkOThmYjIyZmY0MjMyNzFkZDg0NDYwMjAwZWJkYjYwNTczZWQ2Mzcx
Li45NjlhM2M5ZDA4ZmI2NmJmMDFjMWZhMmI1MTRiNDY0NmUyNjEzYjMwIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1ldmVudC10aHJvd3MtYWZ0ZXItcmVzcG9uZC13aXRoLmh0
dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtZXZlbnQtdGhyb3dzLWFmdGVy
LXJlc3BvbmQtd2l0aC5odHRwcy5odG1sCkBAIC0xMiwxMCArMTIsNiBAQCBwcm9taXNlX3Rlc3Qo
ZnVuY3Rpb24odCkgewogICAgIHZhciBpZnJhbWU7CiAgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2Vy
X3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHdvcmtlcnNjcmlwdCwgc2NvcGUpCiAgICAgICAu
dGhlbihmdW5jdGlvbihyZWcpIHsKLSAgICAgICAgICB0LmFkZF9jbGVhbnVwKGZ1bmN0aW9uKCkg
ewotICAgICAgICAgICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcih0LCBzY29w
ZSk7Ci0gICAgICAgICAgICB9KTsKLQogICAgICAgICAgIHJldHVybiB3YWl0X2Zvcl9zdGF0ZSh0
LCByZWcuaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpCiAgICAgICAgICAgICAudGhlbigoKSA9PiBy
ZWcuYWN0aXZlKTsKICAgICAgICAgfSkKQEAgLTMxLDYgKzI3LDcgQEAgcHJvbWlzZV90ZXN0KGZ1
bmN0aW9uKHQpIHsKICAgICAgICAgfSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKGZyYW1lKSB7CiAg
ICAgICAgIGFzc2VydF90cnVlKGZyYW1lLmNvbnRlbnREb2N1bWVudC5ib2R5LmlubmVySFRNTC5p
bmNsdWRlcygiaW50ZXJjZXB0ZWQiKSk7CisgICAgICAgIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0
ZXJfYW5kX2RvbmUodCwgc2NvcGUpOwogICAgICAgfSkKICAgfSwgJ0ZldGNoIGV2ZW50IGhhbmRs
ZXIgdGhyb3dzIGFmdGVyIGEgc3VjY2Vzc2Z1bCByZXNwb25kV2l0aCgpJyk7CiAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWV2ZW50Lmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL2ZldGNoLWV2ZW50Lmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCAwODc5
OTBiZjhkNGU4OWQ1ODVhZWI4MWFkY2Y2YTc2YmFlZDY2MTJkLi44YzBkOWE0MmYxYjdjNjFhYjg1
M2YxNDE5OGQ3NGUzZjA2NTI2MjExIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRj
aC1ldmVudC5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gt
ZXZlbnQuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC02LDcgKzYsNiBAQCBQQVNTIFNlcnZpY2UgV29y
a2VyIHJlc3BvbmRzIHRvIGZldGNoIGV2ZW50IHVzaW5nIHJlcXVlc3QgZnJhZ21lbnQgd2l0aCBz
dHJpbmcKIFBBU1MgU2VydmljZSBXb3JrZXIgcmVzcG9uZHMgdG8gZmV0Y2ggZXZlbnQgd2l0aCBi
bG9iIGJvZHkgCiBQQVNTIFNlcnZpY2UgV29ya2VyIHJlc3BvbmRzIHRvIGZldGNoIGV2ZW50IHdp
dGggdGhlIHJlZmVycmVyIFVSTCAKIFBBU1MgU2VydmljZSBXb3JrZXIgcmVzcG9uZHMgdG8gZmV0
Y2ggZXZlbnQgd2l0aCBhbiBleGlzdGluZyBjbGllbnQgaWQgCi1GQUlMIFNlcnZpY2UgV29ya2Vy
IHJlc3BvbmRzIHRvIGZldGNoIGV2ZW50IHdpdGggdGhlIGNvcnJlY3QgcmVzdWx0aW5nIGNsaWVu
dCBpZCBhc3NlcnRfZXF1YWxzOiBTZXJ2aWNlIFdvcmtlciBzaG91bGQgcmVzcG9uZCB3aXRoIGFu
IGVtcHR5IHJlc3VsdGluZyBjbGllbnQgaWQgZm9yIHN1YnJlc291cmNlIHJlcXVlc3RzIGV4cGVj
dGVkICJSZXN1bHRpbmcgQ2xpZW50IElEIE5vdCBGb3VuZCIgYnV0IGdvdCAiUmVzdWx0aW5nIENs
aWVudCBJRCBGb3VuZDogdW5kZWZpbmVkIgogUEFTUyBTZXJ2aWNlIFdvcmtlciBkb2VzIG5vdCBy
ZXNwb25kIHRvIGZldGNoIGV2ZW50IAogUEFTUyBTZXJ2aWNlIFdvcmtlciByZXNwb25kcyB0byBm
ZXRjaCBldmVudCB3aXRoIG51bGwgcmVzcG9uc2UgYm9keSAKIFBBU1MgU2VydmljZSBXb3JrZXIg
ZmV0Y2hlcyBvdGhlciBmaWxlIGluIGZldGNoIGV2ZW50IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvZmV0Y2gtZXZlbnQuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNo
LWV2ZW50Lmh0dHBzLmh0bWwKaW5kZXggMTY5YTBiMTdkNjIzMDMzNWZiMGM4Mzk4ODAzOTg3NWM4
MTVkOTllMS4uNzhlMDk5YjhiNTUzZWExNTBmMTcwYWNmYTk5ZDkxOTFjMzllMzMyNiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtZXZlbnQuaHR0cHMuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9mZXRjaC1ldmVudC5odHRwcy5odG1sCkBAIC0xMTYsNiArMTE2LDcgQEAg
cHJvbWlzZV90ZXN0KHQgPT4gewogICAgICAgICB9KQogICAgICAgLnRoZW4oZnVuY3Rpb24ocmVz
cG9uc2UpIHsgcmV0dXJuIHJlc3BvbnNlLnRleHQoKTsgfSkKICAgICAgIC50aGVuKGZ1bmN0aW9u
KHJlc3BvbnNlX3RleHQpIHsKKyAgICAgICAgICB2YXIgbmV3X2NsaWVudF9pZCA9IHJlc3BvbnNl
X3RleHQuc3Vic3RyKDE3KTsKICAgICAgICAgICBhc3NlcnRfZXF1YWxzKAogICAgICAgICAgICAg
cmVzcG9uc2VfdGV4dC5zdWJzdHIoMCwgMTUpLAogICAgICAgICAgICAgJ0NsaWVudCBJRCBGb3Vu
ZCcsCkBAIC0xMjMsMjggKzEyNCw2IEBAIHByb21pc2VfdGVzdCh0ID0+IHsKICAgICAgICAgfSk7
CiAgIH0sICdTZXJ2aWNlIFdvcmtlciByZXNwb25kcyB0byBmZXRjaCBldmVudCB3aXRoIGFuIGV4
aXN0aW5nIGNsaWVudCBpZCcpOwogCi1wcm9taXNlX3Rlc3QodCA9PiB7Ci0gICAgY29uc3QgcGFn
ZV91cmwgPSAncmVzb3VyY2VzL3NpbXBsZS5odG1sP3Jlc3VsdGluZ0NsaWVudElkJzsKLSAgICBj
b25zdCBleHBlY3RlZF9mb3VuZCA9ICdSZXN1bHRpbmcgQ2xpZW50IElEIEZvdW5kJzsKLSAgICBj
b25zdCBleHBlY3RlZF9ub3RfZm91bmQgPSAnUmVzdWx0aW5nIENsaWVudCBJRCBOb3QgRm91bmQn
OwotICAgIHJldHVybiB3aXRoX2lmcmFtZShwYWdlX3VybCkKLSAgICAgIC50aGVuKGZ1bmN0aW9u
KGZyYW1lKSB7Ci0gICAgICAgICAgdC5hZGRfY2xlYW51cCgoKSA9PiB7IGZyYW1lLnJlbW92ZSgp
OyB9KTsKLSAgICAgICAgICBhc3NlcnRfZXF1YWxzKAotICAgICAgICAgICAgZnJhbWUuY29udGVu
dERvY3VtZW50LmJvZHkudGV4dENvbnRlbnQuc3Vic3RyKDAsIGV4cGVjdGVkX2ZvdW5kLmxlbmd0
aCksCi0gICAgICAgICAgICBleHBlY3RlZF9mb3VuZCwKLSAgICAgICAgICAgICdTZXJ2aWNlIFdv
cmtlciBzaG91bGQgcmVzcG9uZCB3aXRoIGFuIGV4aXN0aW5nIHJlc3VsdGluZyBjbGllbnQgaWQg
Zm9yIG5vbi1zdWJyZXNvdXJjZSByZXF1ZXN0cycpOwotICAgICAgICAgIHJldHVybiBmcmFtZS5j
b250ZW50V2luZG93LmZldGNoKCdyZXNvdXJjZXMvb3RoZXIuaHRtbD9yZXN1bHRpbmdDbGllbnRJ
ZCcpOwotICAgICAgICB9KQotICAgICAgLnRoZW4oZnVuY3Rpb24ocmVzcG9uc2UpIHsgcmV0dXJu
IHJlc3BvbnNlLnRleHQoKTsgfSkKLSAgICAgIC50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlX3RleHQp
IHsKLSAgICAgICAgICBhc3NlcnRfZXF1YWxzKAotICAgICAgICAgICAgcmVzcG9uc2VfdGV4dC5z
dWJzdHIoMCksCi0gICAgICAgICAgICBleHBlY3RlZF9ub3RfZm91bmQsCi0gICAgICAgICAgICAn
U2VydmljZSBXb3JrZXIgc2hvdWxkIHJlc3BvbmQgd2l0aCBhbiBlbXB0eSByZXN1bHRpbmcgY2xp
ZW50IGlkIGZvciBzdWJyZXNvdXJjZSByZXF1ZXN0cycpOwotICAgICAgICB9KTsKLSAgfSwgJ1Nl
cnZpY2UgV29ya2VyIHJlc3BvbmRzIHRvIGZldGNoIGV2ZW50IHdpdGggdGhlIGNvcnJlY3QgcmVz
dWx0aW5nIGNsaWVudCBpZCcpOwotCiBwcm9taXNlX3Rlc3QodCA9PiB7CiAgICAgY29uc3QgcGFn
ZV91cmwgPSAncmVzb3VyY2VzL3NpbXBsZS5odG1sP2lnbm9yZSc7CiAgICAgcmV0dXJuIHdpdGhf
aWZyYW1lKHBhZ2VfdXJsKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtZnJh
bWUtcmVzb3VyY2UuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWZyYW1lLXJl
c291cmNlLmh0dHBzLmh0bWwKaW5kZXggYTMzMzA5ZjM0Zjk4NzJkYTUzNzkyMWExMWRmYzk2MWFj
MTQyYjBmOC4uMjE2OGUzZTBkNDU4NTFjYzZmMDU5OWE5ZTAzMjNlOWE5NmU1NjRlMiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtZnJhbWUtcmVzb3VyY2UuaHR0cHMuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1mcmFtZS1yZXNvdXJjZS5odHRwcy5odG1sCkBA
IC03MywxNSArNzMsMTEgQEAgZnVuY3Rpb24gZ2V0TG9hZGVkV2luZG93QXNPYmplY3Qod2luKSB7
CiAgICAgfSk7CiB9CiAKLXByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7Cithc3luY190ZXN0KGZ1
bmN0aW9uKHQpIHsKICAgICB2YXIgc2NvcGUgPSAncmVzb3VyY2VzL2ZldGNoLWZyYW1lLXJlc291
cmNlL2ZyYW1lLWJhc2ljJzsKICAgICB2YXIgZnJhbWU7Ci0gICAgcmV0dXJuIHNlcnZpY2Vfd29y
a2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHdvcmtlciwgc2NvcGUpCisgICAgc2Vydmlj
ZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgd29ya2VyLCBzY29wZSkKICAgICAg
IC50aGVuKGZ1bmN0aW9uKHJlZykgewotICAgICAgICAgIHQuYWRkX2NsZWFudXAoZnVuY3Rpb24o
KSB7Ci0gICAgICAgICAgICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyKHQsIHNj
b3BlKTsKLSAgICAgICAgICAgIH0pOwotCiAgICAgICAgICAgcmV0dXJuIHdhaXRfZm9yX3N0YXRl
KHQsIHJlZy5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7CiAgICAgICAgIH0pCiAgICAgICAudGhl
bihmdW5jdGlvbigpIHsKQEAgLTk4LDE4ICs5NCwxNiBAQCBwcm9taXNlX3Rlc3QoZnVuY3Rpb24o
dCkgewogICAgICAgICAgICAgJ3N1Y2Nlc3MnLAogICAgICAgICAgICAgJ0Jhc2ljIHR5cGUgcmVz
cG9uc2UgY291bGQgYmUgbG9hZGVkIGluIHRoZSBpZnJhbWUuJyk7CiAgICAgICAgICAgZnJhbWUu
cmVtb3ZlKCk7Ci0gICAgICAgIH0pOworICAgICAgICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91
bnJlZ2lzdGVyX2FuZF9kb25lKHQsIHNjb3BlKTsKKyAgICAgICAgfSkKKyAgICAgIC5jYXRjaCh1
bnJlYWNoZWRfcmVqZWN0aW9uKHQpKTsKICAgfSwgJ0Jhc2ljIHR5cGUgcmVzcG9uc2UgY291bGQg
YmUgbG9hZGVkIGluIHRoZSBpZnJhbWUuJyk7CiAKLXByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7
Cithc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICB2YXIgc2NvcGUgPSAncmVzb3VyY2VzL2Zl
dGNoLWZyYW1lLXJlc291cmNlL2ZyYW1lLWNvcnMnOwogICAgIHZhciBmcmFtZTsKLSAgICByZXR1
cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgd29ya2VyLCBzY29w
ZSkKKyAgICBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCB3b3JrZXIs
IHNjb3BlKQogICAgICAgLnRoZW4oZnVuY3Rpb24ocmVnKSB7Ci0gICAgICAgICAgdC5hZGRfY2xl
YW51cChmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3Vu
cmVnaXN0ZXIodCwgc2NvcGUpOwotICAgICAgICAgICAgfSk7Ci0KICAgICAgICAgICByZXR1cm4g
d2FpdF9mb3Jfc3RhdGUodCwgcmVnLmluc3RhbGxpbmcsICdhY3RpdmF0ZWQnKTsKICAgICAgICAg
fSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKCkgewpAQCAtMTI4LDE4ICsxMjIsMTYgQEAgcHJvbWlz
ZV90ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICAgICAgICAgICdzdWNjZXNzJywKICAgICAgICAgICAg
ICdDT1JTIHR5cGUgcmVzcG9uc2UgY291bGQgYmUgbG9hZGVkIGluIHRoZSBpZnJhbWUuJyk7CiAg
ICAgICAgICAgZnJhbWUucmVtb3ZlKCk7Ci0gICAgICAgIH0pOworICAgICAgICAgIHJldHVybiBz
ZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9kb25lKHQsIHNjb3BlKTsKKyAgICAgICAgfSkK
KyAgICAgIC5jYXRjaCh1bnJlYWNoZWRfcmVqZWN0aW9uKHQpKTsKICAgfSwgJ0NPUlMgdHlwZSBy
ZXNwb25zZSBjb3VsZCBiZSBsb2FkZWQgaW4gdGhlIGlmcmFtZS4nKTsKIAotcHJvbWlzZV90ZXN0
KGZ1bmN0aW9uKHQpIHsKK2FzeW5jX3Rlc3QoZnVuY3Rpb24odCkgewogICAgIHZhciBzY29wZSA9
ICdyZXNvdXJjZXMvZmV0Y2gtZnJhbWUtcmVzb3VyY2UvZnJhbWUtb3BhcXVlJzsKICAgICB2YXIg
ZnJhbWU7Ci0gICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVy
KHQsIHdvcmtlciwgc2NvcGUpCisgICAgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVn
aXN0ZXIodCwgd29ya2VyLCBzY29wZSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKHJlZykgewotICAg
ICAgICAgIHQuYWRkX2NsZWFudXAoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgIHJldHVybiBz
ZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyKHQsIHNjb3BlKTsKLSAgICAgICAgICAgIH0pOwotCiAg
ICAgICAgICAgcmV0dXJuIHdhaXRfZm9yX3N0YXRlKHQsIHJlZy5pbnN0YWxsaW5nLCAnYWN0aXZh
dGVkJyk7CiAgICAgICAgIH0pCiAgICAgICAudGhlbihmdW5jdGlvbigpIHsKQEAgLTE1NiwxNyAr
MTQ4LDE1IEBAIHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7CiAgICAgICAgICAgICBudWxsLAog
ICAgICAgICAgICAgJ09wYXF1ZSB0eXBlIHJlc3BvbnNlIGNvdWxkIG5vdCBiZSBsb2FkZWQgaW4g
dGhlIGlmcmFtZS4nKTsKICAgICAgICAgICBmcmFtZS5yZW1vdmUoKTsKLSAgICAgICAgfSk7Cisg
ICAgICAgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX2RvbmUodCwgc2Nv
cGUpOworICAgICAgICB9KQorICAgICAgLmNhdGNoKHVucmVhY2hlZF9yZWplY3Rpb24odCkpOwog
ICB9LCAnT3BhcXVlIHR5cGUgcmVzcG9uc2UgY291bGQgbm90IGJlIGxvYWRlZCBpbiB0aGUgaWZy
YW1lLicpOwogCi1wcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgeworYXN5bmNfdGVzdChmdW5jdGlv
bih0KSB7CiAgICAgdmFyIHNjb3BlID0gJ3Jlc291cmNlcy9mZXRjaC1mcmFtZS1yZXNvdXJjZS93
aW5kb3ctYmFzaWMnOwotICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9y
ZWdpc3Rlcih0LCB3b3JrZXIsIHNjb3BlKQorICAgIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJf
YW5kX3JlZ2lzdGVyKHQsIHdvcmtlciwgc2NvcGUpCiAgICAgICAudGhlbihmdW5jdGlvbihyZWcp
IHsKLSAgICAgICAgICB0LmFkZF9jbGVhbnVwKGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICBy
ZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcih0LCBzY29wZSk7Ci0gICAgICAgICAgICB9
KTsKLQogICAgICAgICAgIHJldHVybiB3YWl0X2Zvcl9zdGF0ZSh0LCByZWcuaW5zdGFsbGluZywg
J2FjdGl2YXRlZCcpOwogICAgICAgICB9KQogICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7CkBAIC0x
ODAsMTcgKzE3MCwxNSBAQCBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewogICAgICAgICAgICAg
cmVzdWx0Lmpzb25wUmVzdWx0LAogICAgICAgICAgICAgJ3N1Y2Nlc3MnLAogICAgICAgICAgICAg
J0Jhc2ljIHR5cGUgcmVzcG9uc2UgY291bGQgYmUgbG9hZGVkIGluIHRoZSBuZXcgd2luZG93Licp
OwotICAgICAgICB9KTsKKyAgICAgICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rl
cl9hbmRfZG9uZSh0LCBzY29wZSk7CisgICAgICAgIH0pCisgICAgICAuY2F0Y2godW5yZWFjaGVk
X3JlamVjdGlvbih0KSk7CiAgIH0sICdCYXNpYyB0eXBlIHJlc3BvbnNlIGNvdWxkIGJlIGxvYWRl
ZCBpbiB0aGUgbmV3IHdpbmRvdy4nKTsKIAotcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKK2Fz
eW5jX3Rlc3QoZnVuY3Rpb24odCkgewogICAgIHZhciBzY29wZSA9ICdyZXNvdXJjZXMvZmV0Y2gt
ZnJhbWUtcmVzb3VyY2Uvd2luZG93LWNvcnMnOwotICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91
bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCB3b3JrZXIsIHNjb3BlKQorICAgIHNlcnZpY2Vfd29y
a2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHdvcmtlciwgc2NvcGUpCiAgICAgICAudGhl
bihmdW5jdGlvbihyZWcpIHsKLSAgICAgICAgICB0LmFkZF9jbGVhbnVwKGZ1bmN0aW9uKCkgewot
ICAgICAgICAgICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcih0LCBzY29wZSk7
Ci0gICAgICAgICAgICB9KTsKLQogICAgICAgICAgIHJldHVybiB3YWl0X2Zvcl9zdGF0ZSh0LCBy
ZWcuaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOwogICAgICAgICB9KQogICAgICAgLnRoZW4oZnVu
Y3Rpb24oKSB7CkBAIC0yMDYsMTcgKzE5NCwxNSBAQCBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkg
ewogICAgICAgICAgICAgcmVzdWx0Lmpzb25wUmVzdWx0LAogICAgICAgICAgICAgJ3N1Y2Nlc3Mn
LAogICAgICAgICAgICAgJ0NPUlMgdHlwZSByZXNwb25zZSBjb3VsZCBiZSBsb2FkZWQgaW4gdGhl
IG5ldyB3aW5kb3cuJyk7Ci0gICAgICAgIH0pOworICAgICAgICAgIHJldHVybiBzZXJ2aWNlX3dv
cmtlcl91bnJlZ2lzdGVyX2FuZF9kb25lKHQsIHNjb3BlKTsKKyAgICAgICAgfSkKKyAgICAgIC5j
YXRjaCh1bnJlYWNoZWRfcmVqZWN0aW9uKHQpKTsKICAgfSwgJ0NPUlMgdHlwZSByZXNwb25zZSBj
b3VsZCBiZSBsb2FkZWQgaW4gdGhlIG5ldyB3aW5kb3cuJyk7CiAKLXByb21pc2VfdGVzdChmdW5j
dGlvbih0KSB7Cithc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICB2YXIgc2NvcGUgPSAncmVz
b3VyY2VzL2ZldGNoLWZyYW1lLXJlc291cmNlL3dpbmRvdy1vcGFxdWUnOwotICAgIHJldHVybiBz
ZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCB3b3JrZXIsIHNjb3BlKQor
ICAgIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHdvcmtlciwgc2Nv
cGUpCiAgICAgICAudGhlbihmdW5jdGlvbihyZWcpIHsKLSAgICAgICAgICB0LmFkZF9jbGVhbnVw
KGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdp
c3Rlcih0LCBzY29wZSk7Ci0gICAgICAgICAgICB9KTsKLQogICAgICAgICAgIHJldHVybiB3YWl0
X2Zvcl9zdGF0ZSh0LCByZWcuaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOwogICAgICAgICB9KQog
ICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7CkBAIC0yMzAsNyArMjE2LDkgQEAgcHJvbWlzZV90ZXN0
KGZ1bmN0aW9uKHQpIHsKICAgICAgICAgICAgIHJlc3VsdCwKICAgICAgICAgICAgIG51bGwsCiAg
ICAgICAgICAgICAnT3BhcXVlIHR5cGUgcmVzcG9uc2UgY291bGQgbm90IGJlIGxvYWRlZCBpbiB0
aGUgbmV3IHdpbmRvdy4nKTsKLSAgICAgICAgfSk7CisgICAgICAgICAgcmV0dXJuIHNlcnZpY2Vf
d29ya2VyX3VucmVnaXN0ZXJfYW5kX2RvbmUodCwgc2NvcGUpOworICAgICAgICB9KQorICAgICAg
LmNhdGNoKHVucmVhY2hlZF9yZWplY3Rpb24odCkpOwogICB9LCAnT3BhcXVlIHR5cGUgcmVzcG9u
c2UgY291bGQgbm90IGJlIGxvYWRlZCBpbiB0aGUgbmV3IHdpbmRvdy4nKTsKIDwvc2NyaXB0Pgog
PC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtaGVhZGVyLXZpc2li
aWxpdHkuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWhlYWRlci12aXNpYmls
aXR5Lmh0dHBzLmh0bWwKaW5kZXggMWY0ODEzYzRmOGU2ZDkzYTAyNGI0MzNkYjRjYjQ1NDk5YjY4
NDI1Zi4uMWNlYjE2NDY1M2I5NjM1OTk5Njc1Y2M4N2VhMTE0Nzk2ZWZlYWQ5ZCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtaGVhZGVyLXZpc2liaWxpdHkuaHR0cHMuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1oZWFkZXItdmlzaWJpbGl0eS5odHRwcy5odG1s
CkBAIC0xMSwxNCArMTEsMTAgQEAKICAgdmFyIGhvc3RfaW5mbyA9IGdldF9ob3N0X2luZm8oKTsK
ICAgdmFyIGZyYW1lOwogCi0gIHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7CisgIGFzeW5jX3Rl
c3QoZnVuY3Rpb24odCkgewogICAgIHZhciBzY29wZSA9ICdyZXNvdXJjZXMvZmV0Y2gtaGVhZGVy
LXZpc2liaWxpdHktaWZyYW1lLmh0bWwnOwotICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJl
Z2lzdGVyX2FuZF9yZWdpc3Rlcih0LCB3b3JrZXIsIHNjb3BlKQorICAgIHNlcnZpY2Vfd29ya2Vy
X3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHdvcmtlciwgc2NvcGUpCiAgICAgICAudGhlbihm
dW5jdGlvbihyZWcpIHsKLSAgICAgICAgdC5hZGRfY2xlYW51cChmdW5jdGlvbigpIHsKLSAgICAg
ICAgICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyKHQsIHNjb3BlKTsKLSAgICAg
ICAgICB9KTsKLQogICAgICAgICByZXR1cm4gd2FpdF9mb3Jfc3RhdGUodCwgcmVnLmluc3RhbGxp
bmcsICdhY3RpdmF0ZWQnKTsKICAgICAgIH0pCiAgICAgICAudGhlbihmdW5jdGlvbigpIHsKQEAg
LTQ4LDcgKzQ0LDkgQEAKICAgICAgIH0pCiAgICAgICAudGhlbihmdW5jdGlvbihyZXN1bHQpIHsK
ICAgICAgICAgZnJhbWUucmVtb3ZlKCk7Ci0gICAgICB9KTsKKyAgICAgICAgcmV0dXJuIHNlcnZp
Y2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX2RvbmUodCwgc2NvcGUpOworICAgICAgfSkKKyAgICAg
IC5jYXRjaCh1bnJlYWNoZWRfcmVqZWN0aW9uKHQpKTsKICAgfSwgJ1Zpc2liaWxpdHkgb2YgZGVm
YXVsdGVkIGhlYWRlcnMgZHVyaW5nIGludGVyY2VwdGlvbicpOwogPC9zY3JpcHQ+CiA8L2JvZHk+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1yZXF1ZXN0LWNzcy1iYXNlLXVy
bC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1yZXF1ZXN0LWNz
cy1iYXNlLXVybC5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggMmE3MzFlNGU3ODc5YTdhMmY0Njll
Mzk2NzYxMTRhODM3NzU1YzE5Yy4uNjJhZWE2NjE4NjUwMzUwMzAwNDE2NmJlNWMxM2U0MzExZmNk
MDc1ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtcmVxdWVzdC1jc3MtYmFz
ZS11cmwuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLXJl
cXVlc3QtY3NzLWJhc2UtdXJsLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMSw2ICsxLDQgQEAKIAot
UEFTUyBnbG9iYWwgc2V0dXAgCi1GQUlMIGJhc2UgVVJMIHdoZW4gc2VydmljZSB3b3JrZXIgZG9l
cyByZXNwb25kV2l0aChmZXRjaChyZXNwb25zZVVybCkpLiBhc3NlcnRfZXF1YWxzOiByZWZlcnJl
ciBleHBlY3RlZCAiaHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0My9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLXJlcXVlc3QtY3NzLWJhc2UtdXJsLXN0eWxlLmNzcz9m
ZXRjaCIgYnV0IGdvdCAiaHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0My9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLXJlcXVlc3QtY3NzLWJhc2UtdXJsLWlmcmFtZS5o
dG1sP2ZldGNoIgotRkFJTCBiYXNlIFVSTCB3aGVuIHNlcnZpY2Ugd29ya2VyIGRvZXMgcmVzcG9u
ZFdpdGgobmV3IFJlc3BvbnNlKCkpLiBhc3NlcnRfZXF1YWxzOiByZWZlcnJlciBleHBlY3RlZCAi
aHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0My9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVz
b3VyY2VzL3JlcXVlc3QtdXJsLXBhdGgvZmV0Y2gtcmVxdWVzdC1jc3MtYmFzZS11cmwtc3R5bGUu
Y3NzP25ld1Jlc3BvbnNlIiBidXQgZ290ICJodHRwczovL2xvY2FsaG9zdDo5NDQzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtcmVxdWVzdC1jc3MtYmFzZS11
cmwtaWZyYW1lLmh0bWw/bmV3UmVzcG9uc2UiCi1QQVNTIGNsZWFudXAgZ2xvYmFsIHN0YXRlIAor
CitGQUlMIENTUydzIGJhc2UgVVJMIG11c3QgYmUgdGhlIHJlcXVlc3QgVVJMIGV2ZW4gd2hlbiBm
ZXRjaGVkIGZyb20gb3RoZXIgVVJMLiBhc3NlcnRfZXF1YWxzOiBUaGUgYmFzZSBVUkwgd2hpbGUg
bG9hZGluZyB0aGUgaW1hZ2VzIHJlZmVycmVkIGZyb20gQ1NTIG11c3QgYmUgdGhlIHJlcXVlc3Qg
VVJMIG9mIENTUy4gZXhwZWN0ZWQgImh0dHBzOi8vbG9jYWxob3N0Ojk0NDMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9kdW1teS5wbmciIGJ1dCBnb3QgImh0dHBzOi8v
MTI3LjAuMC4xOjk0NDMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9k
dW1teS5wbmciCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLXJlcXVlc3Qt
Y3NzLWJhc2UtdXJsLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1yZXF1ZXN0
LWNzcy1iYXNlLXVybC5odHRwcy5odG1sCmluZGV4IGEwOGUwYzc0ODgxMzY0ZjdmZDI5ZDNlNmFj
MzMyYTdlMWQ5NGJmN2EuLjdjNjY1MjAzMDQ1Nzg2ZmRmMjU2NjgxMDNjN2UwOWU0Y2VmMmVkMjUg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLXJlcXVlc3QtY3NzLWJhc2UtdXJs
Lmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtcmVxdWVzdC1jc3MtYmFz
ZS11cmwuaHR0cHMuaHRtbApAQCAtMSw4NyArMSw1NiBAQAogPCFET0NUWVBFIGh0bWw+Ci08dGl0
bGU+U2VydmljZSBXb3JrZXI6IENTUydzIGJhc2UgVVJMIG11c3QgYmUgdGhlIHJlc3BvbnNlIFVS
TDwvdGl0bGU+Cis8dGl0bGU+U2VydmljZSBXb3JrZXI6IENTUydzIGJhc2UgVVJMIG11c3QgYmUg
dGhlIHJlcXVlc3QgVVJMIGV2ZW4gd2hlbiBmZXRjaGVkIGZyb20gb3RoZXIgVVJMPC90aXRsZT4K
IDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KIDxzY3Jp
cHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIvY29tbW9uL2dldC1ob3N0LWluZm8uc3ViLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQg
c3JjPSJyZXNvdXJjZXMvdGVzdC1oZWxwZXJzLnN1Yi5qcz9waXBlPXN1YiI+PC9zY3JpcHQ+CiA8
c2NyaXB0PgotY29uc3QgU0NPUEUgPSAncmVzb3VyY2VzL2ZldGNoLXJlcXVlc3QtY3NzLWJhc2Ut
dXJsLWlmcmFtZS5odG1sJzsKLWNvbnN0IFNDUklQVCA9ICdyZXNvdXJjZXMvZmV0Y2gtcmVxdWVz
dC1jc3MtYmFzZS11cmwtd29ya2VyLmpzJzsKLWxldCB3b3JrZXI7Ci0KLXZhciBzaWduYWxNZXNz
YWdlOwotZnVuY3Rpb24gZ2V0TmV4dE1lc3NhZ2UoKSB7Ci0gIHJldHVybiBuZXcgUHJvbWlzZShy
ZXNvbHZlID0+IHsgc2lnbmFsTWVzc2FnZSA9IHJlc29sdmU7IH0pOwotfQotCi1wcm9taXNlX3Rl
c3QoYXN5bmMgKHQpID0+IHsKLSAgY29uc3QgcmVnaXN0cmF0aW9uID0gYXdhaXQgc2VydmljZV93
b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIoCi0gICAgICB0LCBTQ1JJUFQsIFNDT1BFKTsK
LSAgd29ya2VyID0gcmVnaXN0cmF0aW9uLmluc3RhbGxpbmc7Ci0gIGF3YWl0IHdhaXRfZm9yX3N0
YXRlKHQsIHdvcmtlciwgJ2FjdGl2YXRlZCcpOwotfSwgJ2dsb2JhbCBzZXR1cCcpOwotCi0vLyBD
cmVhdGVzIGEgdGVzdCBjb25jZXJuaW5nIHRoZSBiYXNlIFVSTCBvZiBhIHN0eWxlc2hlZXQuIEl0
IGxvYWRzIGEKLS8vIHN0eWxlc2hlZXQgZnJvbSBhIGNvbnRyb2xsZWQgcGFnZS4gVGhlIHN0eWxl
c2hlZXQgbWFrZXMgYSBzdWJyZXNvdXJjZQotLy8gcmVxdWVzdCBmb3IgYW4gaW1hZ2UuIFRoZSBz
ZXJ2aWNlIHdvcmtlciBtZXNzYWdlcyBiYWNrIHRoZSBkZXRhaWxzIG9mIHRoZQotLy8gaW1hZ2Ug
cmVxdWVzdCBpbiBvcmRlciB0byB0ZXN0IHRoZSBiYXNlIFVSTC4KLS8vCi0vLyBUaGUgcmVxdWVz
dCBVUkwgZm9yIHRoZSBzdHlsZXNoZWV0IGlzIHVuZGVyICJyZXNvdXJjZXMvcmVxdWVzdC11cmwt
cGF0aC8iLgotLy8gVGhlIHNlcnZpY2Ugd29ya2VyIG1heSByZXNwb25kIGluIGEgd2F5IHN1Y2gg
dGhhdCB0aGUgcmVzcG9uc2UgVVJMIGlzCi0vLyBkaWZmZXJlbnQgdG8gdGhlIHJlcXVlc3QgVVJM
LgotZnVuY3Rpb24gYmFzZV91cmxfdGVzdChwYXJhbXMpIHsKLSAgcHJvbWlzZV90ZXN0KGFzeW5j
ICh0KSA9PiB7Ci0gICAgbGV0IGZyYW1lOwotICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gewotICAg
ICAgaWYgKGZyYW1lKQotICAgICAgICBmcmFtZS5yZW1vdmUoKTsKLSAgICB9KTsKLQotICAgIC8v
IEFzayB0aGUgc2VydmljZSB3b3JrZXIgdG8gbWVzc2FnZSB0aGlzIHBhZ2Ugb25jZSBpdCBnZXRz
IHRoZSByZXF1ZXN0Ci0gICAgLy8gZm9yIHRoZSBpbWFnZS4KLSAgICBsZXQgY2hhbm5lbCA9IG5l
dyBNZXNzYWdlQ2hhbm5lbCgpOwotICAgIGNvbnN0IHNhd1BvbmcgPSBnZXROZXh0TWVzc2FnZSgp
OwotICAgIGNoYW5uZWwucG9ydDEub25tZXNzYWdlID0gKGV2ZW50KSA9PiB7Ci0gICAgICBzaWdu
YWxNZXNzYWdlKGV2ZW50LmRhdGEpOwotICAgIH07Ci0gICAgd29ya2VyLnBvc3RNZXNzYWdlKHtw
b3J0OmNoYW5uZWwucG9ydDJ9LFtjaGFubmVsLnBvcnQyXSk7Ci0KLSAgICAvLyBJdCBzZW5kcyBh
IHBvbmcgYmFjayBpbW1lZGlhdGVseS4gVGhpcyBwaW5nL3BvbmcgcHJvdG9jb2wgaGVscHMgZGVm
bGFrZQotICAgIC8vIHRoZSB0ZXN0IGZvciBicm93c2VycyB3aGVyZSBtZXNzYWdlL2ZldGNoIG9y
ZGVyaW5nIGlzbid0IGd1YXJhbnRlZWQuCi0gICAgYXNzZXJ0X2VxdWFscygncG9uZycsIGF3YWl0
IHNhd1BvbmcpOwotCi0gICAgLy8gTG9hZCB0aGUgZnJhbWUgd2hpY2ggd2lsbCBsb2FkIHRoZSBz
dHlsZXNoZWV0IHRoYXQgbWFrZXMgdGhlIGltYWdlCi0gICAgLy8gcmVxdWVzdC4KLSAgICBjb25z
dCBzYXdSZXN1bHQgPSBnZXROZXh0TWVzc2FnZSgpOwotICAgIGZyYW1lID0gYXdhaXQgd2l0aF9p
ZnJhbWUocGFyYW1zLmZyYW1lUGF0aCk7Ci0gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgc2F3UmVz
dWx0OwotCi0gICAgLy8gVGVzdCB0aGUgaW1hZ2UgcmVxdWVzdC4KLSAgICBjb25zdCBiYXNlID0g
bmV3IFVSTCgnLicsIGRvY3VtZW50LmxvY2F0aW9uKS5ocmVmOwotICAgIGFzc2VydF9lcXVhbHMo
cmVzdWx0LnVybCwKLSAgICAgICAgICAgICAgICAgIGJhc2UgKyBwYXJhbXMuZXhwZWN0SW1hZ2VS
ZXF1ZXN0UGF0aCwKLSAgICAgICAgICAgICAgICAgICdyZXF1ZXN0Jyk7Ci0gICAgYXNzZXJ0X2Vx
dWFscyhyZXN1bHQucmVmZXJyZXIsCi0gICAgICAgICAgICAgICAgICBiYXNlICsgcGFyYW1zLmV4
cGVjdEltYWdlUmVxdWVzdFJlZmVycmVyLAotICAgICAgICAgICAgICAgICAgJ3JlZmVycmVyJyk7
Ci0gIH0sIHBhcmFtcy5kZXNjcmlwdGlvbik7Ci19Ci0KLWNvbnN0IGNzc0ZpbGUgPSAnZmV0Y2gt
cmVxdWVzdC1jc3MtYmFzZS11cmwtc3R5bGUuY3NzJzsKLQotYmFzZV91cmxfdGVzdCh7Ci0gIGZy
YW1lUGF0aDogU0NPUEUgKyAnP2ZldGNoJywKLSAgZXhwZWN0SW1hZ2VSZXF1ZXN0UGF0aDogJ3Jl
c291cmNlcy9kdW1teS5wbmcnLAotICBleHBlY3RJbWFnZVJlcXVlc3RSZWZlcnJlcjogYHJlc291
cmNlcy8ke2Nzc0ZpbGV9P2ZldGNoYCwKLSAgZGVzY3JpcHRpb246ICdiYXNlIFVSTCB3aGVuIHNl
cnZpY2Ugd29ya2VyIGRvZXMgcmVzcG9uZFdpdGgoZmV0Y2gocmVzcG9uc2VVcmwpKS4nfSk7Ci0K
LWJhc2VfdXJsX3Rlc3QoewotICBmcmFtZVBhdGg6IFNDT1BFICsgJz9uZXdSZXNwb25zZScsCi0g
IGV4cGVjdEltYWdlUmVxdWVzdFBhdGg6ICdyZXNvdXJjZXMvcmVxdWVzdC11cmwtcGF0aC9kdW1t
eS5wbmcnLAotICBleHBlY3RJbWFnZVJlcXVlc3RSZWZlcnJlcjogYHJlc291cmNlcy9yZXF1ZXN0
LXVybC1wYXRoLyR7Y3NzRmlsZX0/bmV3UmVzcG9uc2VgLAotICBkZXNjcmlwdGlvbjogJ2Jhc2Ug
VVJMIHdoZW4gc2VydmljZSB3b3JrZXIgZG9lcyByZXNwb25kV2l0aChuZXcgUmVzcG9uc2UoKSku
J30pOwotCi0vLyBDbGVhbnVwIHN0ZXA6IHRoaXMgbXVzdCBiZSB0aGUgbGFzdCBwcm9taXNlX3Rl
c3QuCi1wcm9taXNlX3Rlc3QoYXN5bmMgKHQpID0+IHsKLSAgcmV0dXJuIHNlcnZpY2Vfd29ya2Vy
X3VucmVnaXN0ZXIodCwgU0NPUEUpOwotfSwgJ2NsZWFudXAgZ2xvYmFsIHN0YXRlJyk7Cithc3lu
Y190ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgICB2YXIgU0NPUEUgPSAncmVzb3VyY2VzL2ZldGNoLXJl
cXVlc3QtY3NzLWJhc2UtdXJsLWlmcmFtZS5odG1sJzsKKyAgICB2YXIgU0NSSVBUID0gJ3Jlc291
cmNlcy9mZXRjaC1yZXF1ZXN0LWNzcy1iYXNlLXVybC13b3JrZXIuanMnOworICAgIHZhciB3b3Jr
ZXI7CisgICAgdmFyIHRlc3REb25lUHJvbWlzZTsKKworICAgIHJldHVybiBzZXJ2aWNlX3dvcmtl
cl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCBTQ1JJUFQsIFNDT1BFKQorICAgICAgLnRoZW4o
ZnVuY3Rpb24ocmVnaXN0cmF0aW9uKSB7CisgICAgICAgICAgd29ya2VyID0gcmVnaXN0cmF0aW9u
Lmluc3RhbGxpbmc7CisgICAgICAgICAgcmV0dXJuIHdhaXRfZm9yX3N0YXRlKHQsIHdvcmtlciwg
J2FjdGl2YXRlZCcpOworICAgICAgICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUpIHsKKyAgICAgICAgICAg
ICAgdmFyIGNoYW5uZWwgPSBuZXcgTWVzc2FnZUNoYW5uZWwoKTsKKyAgICAgICAgICAgICAgdGVz
dERvbmVQcm9taXNlID0gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZVRlc3REb25lKSB7Cisg
ICAgICAgICAgICAgICAgY2hhbm5lbC5wb3J0MS5vbm1lc3NhZ2UgPSB0LnN0ZXBfZnVuYyhmdW5j
dGlvbihtc2cpIHsKKyAgICAgICAgICAgICAgICAgIGlmIChtc2cuZGF0YS5yZWFkeSkgeworICAg
ICAgICAgICAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgIHZhciByZXN1bHQgPSBtc2cu
ZGF0YTsKKyAgICAgICAgICAgICAgICAgIHZhciBiYXNlID0gZ2V0X2hvc3RfaW5mbygpWydIVFRQ
U19PUklHSU4nXSArIGJhc2VfcGF0aCgpOworICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFs
cygKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LnVybCwKKyAgICAgICAgICAgICAgICAgICAg
YmFzZSArICdyZXNvdXJjZXMvZHVtbXkucG5nJywKKyAgICAgICAgICAgICAgICAgICAgJ1RoZSBi
YXNlIFVSTCB3aGlsZSBsb2FkaW5nIHRoZSBpbWFnZXMgcmVmZXJyZWQgZnJvbSBDU1MgJyArCisg
ICAgICAgICAgICAgICAgICAgICdtdXN0IGJlIHRoZSByZXF1ZXN0IFVSTCBvZiBDU1MuJyk7Cisg
ICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKAorICAgICAgICAgICAgICAgICAgICByZXN1
bHQucmVmZXJyZXIsCisgICAgICAgICAgICAgICAgICAgIGJhc2UgKyAncmVzb3VyY2VzL2ZldGNo
LXJlcXVlc3QtY3NzLWJhc2UtdXJsLXN0eWxlLmNzcycsCisgICAgICAgICAgICAgICAgICAgICdX
aGlsZSBsb2FkaW5nIHRoZSBpbWFnZSBkZWZpbmVkIGluIENTUyB0aGUgcmVmZXJyZXIgbXVzdCAn
ICsKKyAgICAgICAgICAgICAgICAgICAgJ2JlIHRoZSByZXF1ZXN0IFVSTCBvZiBDU1MuJyk7Cisg
ICAgICAgICAgICAgICAgICByZXNvbHZlVGVzdERvbmUoKTsKKyAgICAgICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgIHdvcmtlci5wb3N0TWVzc2FnZSgKKyAg
ICAgICAgICAgICAgICB7cG9ydDogY2hhbm5lbC5wb3J0Mn0sIFtjaGFubmVsLnBvcnQyXSk7Cisg
ICAgICAgICAgICB9KTsKKyAgICAgICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKCkgeyByZXR1
cm4gd2l0aF9pZnJhbWUoU0NPUEUpOyB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24oZikgeworICAg
ICAgICAgIHJldHVybiB0ZXN0RG9uZVByb21pc2UudGhlbihmdW5jdGlvbigpIHsKKyAgICAgICAg
ICAgIGYucmVtb3ZlKCk7CisgICAgICAgICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdp
c3Rlcl9hbmRfZG9uZSh0LCBTQ09QRSk7CisgICAgICAgICAgfSk7CisgICAgICAgIH0pCisgICAg
ICAuY2F0Y2godW5yZWFjaGVkX3JlamVjdGlvbih0KSk7CisgIH0sICdDU1NcJ3MgYmFzZSBVUkwg
bXVzdCBiZSB0aGUgcmVxdWVzdCBVUkwgZXZlbiB3aGVuIGZldGNoZWQgZnJvbSBvdGhlciBVUkwu
Jyk7CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLXJlcXVl
c3QtY3NzLWltYWdlcy5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtcmVxdWVz
dC1jc3MtaW1hZ2VzLmh0dHBzLmh0bWwKaW5kZXggOTU4ZGUxYWY4NWY0ZWU2YmE1OGI0N2RlMzg5
NzFmOWZmMmFhMmJhMC4uNmYzMjNjYWM4ZDExZDMzODEyODQ4YmViMWVjZTY1MWNmNDk0YmJiYyAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtcmVxdWVzdC1jc3MtaW1hZ2VzLmh0
dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtcmVxdWVzdC1jc3MtaW1hZ2Vz
Lmh0dHBzLmh0bWwKQEAgLTM1LDMwICszNSwyMCBAQCBmdW5jdGlvbiBjc3NfaW1hZ2Vfc2V0X3Rl
c3QoZXhwZWN0ZWRfcmVzdWx0cywgZnJhbWUsIHVybCwgdHlwZSwKICAgcmV0dXJuIGZyYW1lLmNv
bnRlbnRXaW5kb3cubG9hZF9jc3NfaW1hZ2Vfc2V0KHVybCwgdHlwZSk7CiB9CiAKLWZ1bmN0aW9u
IHdhaXRGb3JXb3JrZXIod29ya2VyKSB7CitmdW5jdGlvbiBjcmVhdGVfbWVzc2FnZV9wcm9taXNl
KHQsIGV4cGVjdGVkX3Jlc3VsdHMsIGZyYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB3b3JrZXIsIHRlc3RfY291bnQsIHNjb3BlKSB7CiAgIHJldHVybiBuZXcgUHJvbWlzZShm
dW5jdGlvbihyZXNvbHZlKSB7CiAgICAgdmFyIGNoYW5uZWwgPSBuZXcgTWVzc2FnZUNoYW5uZWwo
KTsKLSAgICBjaGFubmVsLnBvcnQxLmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCBmdW5jdGlv
bihtc2cpIHsKKyAgICBjaGFubmVsLnBvcnQxLm9ubWVzc2FnZSA9IHQuc3RlcF9mdW5jKGZ1bmN0
aW9uKG1zZykgewogICAgICAgaWYgKG1zZy5kYXRhLnJlYWR5KSB7Ci0gICAgICAgIHJlc29sdmUo
Y2hhbm5lbCk7CisgICAgICAgIHJlc29sdmUoKTsKKyAgICAgICAgcmV0dXJuOwogICAgICAgfQot
ICAgIH0pOwotICAgIGNoYW5uZWwucG9ydDEuc3RhcnQoKTsKLSAgICB3b3JrZXIucG9zdE1lc3Nh
Z2Uoe3BvcnQ6IGNoYW5uZWwucG9ydDJ9LCBbY2hhbm5lbC5wb3J0Ml0pOwotICB9KTsKLX0KLQot
ZnVuY3Rpb24gY3JlYXRlX21lc3NhZ2VfcHJvbWlzZShjaGFubmVsLCBleHBlY3RlZF9yZXN1bHRz
LCB3b3JrZXIsIHNjb3BlKSB7Ci0gIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZl
KSB7Ci0gICAgY2hhbm5lbC5wb3J0MS5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgZnVuY3Rp
b24obXNnKSB7CiAgICAgICB2YXIgcmVzdWx0ID0gbXNnLmRhdGE7Ci0gICAgICBpZiAoIWV4cGVj
dGVkX3Jlc3VsdHNbcmVzdWx0LnVybF0pIHsKKyAgICAgIHZhciBleHBlY3RlZCA9IGV4cGVjdGVk
X3Jlc3VsdHNbcmVzdWx0LnVybF07CisgICAgICBpZiAoIWV4cGVjdGVkKSB7CiAgICAgICAgIHJl
dHVybjsKICAgICAgIH0KLSAgICAgIHJlc29sdmUocmVzdWx0KTsKLSAgICB9KTsKLSAgfSkudGhl
bihmdW5jdGlvbihyZXN1bHQpIHsKLSAgICAgIHZhciBleHBlY3RlZCA9IGV4cGVjdGVkX3Jlc3Vs
dHNbcmVzdWx0LnVybF07CiAgICAgICBhc3NlcnRfZXF1YWxzKAogICAgICAgICAgIHJlc3VsdC5t
b2RlLCBleHBlY3RlZC5tb2RlLAogICAgICAgICAgICdtb2RlIG9mICcgKyBleHBlY3RlZC5tZXNz
YWdlICsgICcgbXVzdCBiZSAnICsKQEAgLTY3LDE0OCArNTcsMTIwIEBAIGZ1bmN0aW9uIGNyZWF0
ZV9tZXNzYWdlX3Byb21pc2UoY2hhbm5lbCwgZXhwZWN0ZWRfcmVzdWx0cywgd29ya2VyLCBzY29w
ZSkgewogICAgICAgICAgIHJlc3VsdC5jcmVkZW50aWFscywgZXhwZWN0ZWQuY3JlZGVudGlhbHMs
CiAgICAgICAgICAgJ2NyZWRlbnRpYWxzIG9mICcgKyBleHBlY3RlZC5tZXNzYWdlICsgICcgbXVz
dCBiZSAnICsKICAgICAgICAgICBleHBlY3RlZC5jcmVkZW50aWFscyArICcuJyk7CisgICAgICAt
LXRlc3RfY291bnQ7CiAgICAgICBkZWxldGUgZXhwZWN0ZWRfcmVzdWx0c1tyZXN1bHQudXJsXTsK
KyAgICAgIGlmICh0ZXN0X2NvdW50ID09IDApIHsKKyAgICAgICAgZnJhbWUucmVtb3ZlKCk7Cisg
ICAgICAgIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX2RvbmUodCwgc2NvcGUpOworICAg
ICAgfQogICAgIH0pOworICAgIHdvcmtlci5wb3N0TWVzc2FnZSgKKyAgICAgIHtwb3J0OiBjaGFu
bmVsLnBvcnQyfSwgW2NoYW5uZWwucG9ydDJdKTsKKyAgfSk7CiB9CiAKLXByb21pc2VfdGVzdChm
dW5jdGlvbih0KSB7Cithc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICB2YXIgc2NvcGUgPSBT
Q09QRSArICI/aW1nPWJhY2tncm91bmRJbWFnZSI7CisgICAgdmFyIHRlc3RfY291bnQgPSAyOwog
ICAgIHZhciBleHBlY3RlZF9yZXN1bHRzID0ge307CiAgICAgdmFyIHdvcmtlcjsKICAgICB2YXIg
ZnJhbWU7Ci0gICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVy
KHQsIFNDUklQVCwgc2NvcGUpCisgICAgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVn
aXN0ZXIodCwgU0NSSVBULCBzY29wZSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKHJlZ2lzdHJhdGlv
bikgewotICAgICAgICAgIHQuYWRkX2NsZWFudXAoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAg
IHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyKHQsIHNjb3BlKTsKLSAgICAgICAgICAg
IH0pOwotCiAgICAgICAgICAgd29ya2VyID0gcmVnaXN0cmF0aW9uLmluc3RhbGxpbmc7CiAgICAg
ICAgICAgcmV0dXJuIHdhaXRfZm9yX3N0YXRlKHQsIHdvcmtlciwgJ2FjdGl2YXRlZCcpOwogICAg
ICAgICB9KQogICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7IHJldHVybiB3aXRoX2lmcmFtZShzY29w
ZSk7IH0pCiAgICAgICAudGhlbihmdW5jdGlvbihmKSB7Ci0gICAgICAgICAgdC5hZGRfY2xlYW51
cChmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgZi5yZW1vdmUoKTsKLSAgICAgICAgICAgIH0p
OwogICAgICAgICAgIGZyYW1lID0gZjsKLSAgICAgICAgICByZXR1cm4gd2FpdEZvcldvcmtlcih3
b3JrZXIpOworICAgICAgICAgIHJldHVybiBjcmVhdGVfbWVzc2FnZV9wcm9taXNlKHQsIGV4cGVj
dGVkX3Jlc3VsdHMsIGZyYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHdvcmtlciwgdGVzdF9jb3VudCwgc2NvcGUpOwogICAgICAgICB9KQotICAgICAgLnRoZW4o
ZnVuY3Rpb24oY2hhbm5lbCkgewotICAgICAgICAgIGNzc19pbWFnZV90ZXN0KGV4cGVjdGVkX3Jl
c3VsdHMsIGZyYW1lLCBMT0NBTF9VUkwgKyBEYXRlLm5vdygpLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICdiYWNrZ3JvdW5kSW1hZ2UnLCAnbm8tY29ycycsICdpbmNsdWRlJyk7Ci0gICAgICAg
ICAgY3NzX2ltYWdlX3Rlc3QoZXhwZWN0ZWRfcmVzdWx0cywgZnJhbWUsIFJFTU9URV9VUkwgKyBE
YXRlLm5vdygpLAotICAgICAgICAgICAgICAgICAgICAgICAgJ2JhY2tncm91bmRJbWFnZScsICdu
by1jb3JzJywgJ2luY2x1ZGUnKTsKLQotICAgICAgICAgIHJldHVybiBQcm9taXNlLmFsbChbCi0g
ICAgICAgICAgICAgIGNyZWF0ZV9tZXNzYWdlX3Byb21pc2UoY2hhbm5lbCwgZXhwZWN0ZWRfcmVz
dWx0cywgd29ya2VyLCBzY29wZSksCi0gICAgICAgICAgICAgIGNyZWF0ZV9tZXNzYWdlX3Byb21p
c2UoY2hhbm5lbCwgZXhwZWN0ZWRfcmVzdWx0cywgd29ya2VyLCBzY29wZSkKLSAgICAgICAgICAg
IF0pOwotICAgICAgICB9KTsKKyAgICAgIC50aGVuKGZ1bmN0aW9uKCkgeworICAgICAgICBjc3Nf
aW1hZ2VfdGVzdChleHBlY3RlZF9yZXN1bHRzLCBmcmFtZSwgTE9DQUxfVVJMICsgRGF0ZS5ub3co
KSwKKyAgICAgICAgICAgICAgICAgICAgICAgJ2JhY2tncm91bmRJbWFnZScsICduby1jb3JzJywg
J2luY2x1ZGUnKTsKKyAgICAgICAgY3NzX2ltYWdlX3Rlc3QoZXhwZWN0ZWRfcmVzdWx0cywgZnJh
bWUsIFJFTU9URV9VUkwgKyBEYXRlLm5vdygpLAorICAgICAgICAgICAgICAgICAgICAgICdiYWNr
Z3JvdW5kSW1hZ2UnLCAnbm8tY29ycycsICdpbmNsdWRlJyk7CisgICAgICB9KQorICAgICAgLmNh
dGNoKHVucmVhY2hlZF9yZWplY3Rpb24odCkpOwogICB9LCAnVmVyaWZ5IEZldGNoRXZlbnQgZm9y
IGNzcyBpbWFnZSAoYmFja2dyb3VuZEltYWdlKS4nKTsKIAotcHJvbWlzZV90ZXN0KGZ1bmN0aW9u
KHQpIHsKK2FzeW5jX3Rlc3QoZnVuY3Rpb24odCkgewogICAgIHZhciBzY29wZSA9IFNDT1BFICsg
Ij9pbWc9c2hhcGVPdXRzaWRlIjsKKyAgICB2YXIgdGVzdF9jb3VudCA9IDI7CiAgICAgdmFyIGV4
cGVjdGVkX3Jlc3VsdHMgPSB7fTsKICAgICB2YXIgd29ya2VyOwogICAgIHZhciBmcmFtZTsKLSAg
ICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgU0NSSVBU
LCBzY29wZSkKKyAgICBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCBT
Q1JJUFQsIHNjb3BlKQogICAgICAgLnRoZW4oZnVuY3Rpb24ocmVnaXN0cmF0aW9uKSB7Ci0gICAg
ICAgICAgdC5hZGRfY2xlYW51cChmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgcmV0dXJuIHNl
cnZpY2Vfd29ya2VyX3VucmVnaXN0ZXIodCwgc2NvcGUpOwotICAgICAgICAgICAgfSk7Ci0KICAg
ICAgICAgICB3b3JrZXIgPSByZWdpc3RyYXRpb24uaW5zdGFsbGluZzsKICAgICAgICAgICByZXR1
cm4gd2FpdF9mb3Jfc3RhdGUodCwgd29ya2VyLCAnYWN0aXZhdGVkJyk7CiAgICAgICAgIH0pCiAg
ICAgICAudGhlbihmdW5jdGlvbigpIHsgcmV0dXJuIHdpdGhfaWZyYW1lKHNjb3BlKTsgfSkKICAg
ICAgIC50aGVuKGZ1bmN0aW9uKGYpIHsKLSAgICAgICAgICB0LmFkZF9jbGVhbnVwKGZ1bmN0aW9u
KCkgewotICAgICAgICAgICAgICBmLnJlbW92ZSgpOwotICAgICAgICAgICAgfSk7CiAgICAgICAg
ICAgZnJhbWUgPSBmOwotICAgICAgICAgIHJldHVybiB3YWl0Rm9yV29ya2VyKHdvcmtlcik7Cisg
ICAgICAgICAgcmV0dXJuIGNyZWF0ZV9tZXNzYWdlX3Byb21pc2UodCwgZXhwZWN0ZWRfcmVzdWx0
cywgZnJhbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd29ya2Vy
LCB0ZXN0X2NvdW50LCBzY29wZSk7CiAgICAgICAgIH0pCi0gICAgICAudGhlbihmdW5jdGlvbihj
aGFubmVsKSB7Ci0gICAgICAgICAgY3NzX2ltYWdlX3Rlc3QoZXhwZWN0ZWRfcmVzdWx0cywgZnJh
bWUsIExPQ0FMX1VSTCArIERhdGUubm93KCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgJ3No
YXBlT3V0c2lkZScsICdjb3JzJywgJ3NhbWUtb3JpZ2luJyk7Ci0gICAgICAgICAgY3NzX2ltYWdl
X3Rlc3QoZXhwZWN0ZWRfcmVzdWx0cywgZnJhbWUsIFJFTU9URV9VUkwgKyBEYXRlLm5vdygpLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICdzaGFwZU91dHNpZGUnLCAnY29ycycsICdzYW1lLW9y
aWdpbicpOwotCi0gICAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKFsKLSAgICAgICAgICAgICAg
Y3JlYXRlX21lc3NhZ2VfcHJvbWlzZShjaGFubmVsLCBleHBlY3RlZF9yZXN1bHRzLCB3b3JrZXIs
IHNjb3BlKSwKLSAgICAgICAgICAgICAgY3JlYXRlX21lc3NhZ2VfcHJvbWlzZShjaGFubmVsLCBl
eHBlY3RlZF9yZXN1bHRzLCB3b3JrZXIsIHNjb3BlKQotICAgICAgICAgICAgXSk7Ci0gICAgICB9
KTsKKyAgICAgIC50aGVuKGZ1bmN0aW9uKCkgeworICAgICAgICAgY3NzX2ltYWdlX3Rlc3QoZXhw
ZWN0ZWRfcmVzdWx0cywgZnJhbWUsIExPQ0FMX1VSTCArIERhdGUubm93KCksCisgICAgICAgICAg
ICAgICAgICAgICAgICAnc2hhcGVPdXRzaWRlJywgJ2NvcnMnLCAnc2FtZS1vcmlnaW4nKTsKKyAg
ICAgICAgIGNzc19pbWFnZV90ZXN0KGV4cGVjdGVkX3Jlc3VsdHMsIGZyYW1lLCBSRU1PVEVfVVJM
ICsgRGF0ZS5ub3coKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICdzaGFwZU91dHNpZGUnLCAn
Y29ycycsICdzYW1lLW9yaWdpbicpOworICAgICAgfSkKKyAgICAgIC5jYXRjaCh1bnJlYWNoZWRf
cmVqZWN0aW9uKHQpKTsKICAgfSwgJ1ZlcmlmeSBGZXRjaEV2ZW50IGZvciBjc3MgaW1hZ2UgKHNo
YXBlT3V0c2lkZSkuJyk7CiAKLXByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7Cithc3luY190ZXN0
KGZ1bmN0aW9uKHQpIHsKICAgICB2YXIgc2NvcGUgPSBTQ09QRSArICI/aW1nX3NldD1iYWNrZ3Jv
dW5kSW1hZ2UiOworICAgIHZhciB0ZXN0X2NvdW50ID0gMjsKICAgICB2YXIgZXhwZWN0ZWRfcmVz
dWx0cyA9IHt9OwogICAgIHZhciB3b3JrZXI7CiAgICAgdmFyIGZyYW1lOwotICAgIHJldHVybiBz
ZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCBTQ1JJUFQsIHNjb3BlKQor
ICAgIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIFNDUklQVCwgc2Nv
cGUpCiAgICAgICAudGhlbihmdW5jdGlvbihyZWdpc3RyYXRpb24pIHsKLSAgICAgICAgICB0LmFk
ZF9jbGVhbnVwKGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICByZXR1cm4gc2VydmljZV93b3Jr
ZXJfdW5yZWdpc3Rlcih0LCBzY29wZSk7Ci0gICAgICAgICAgICB9KTsKLQogICAgICAgICAgIHdv
cmtlciA9IHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nOwogICAgICAgICAgIHJldHVybiB3YWl0X2Zv
cl9zdGF0ZSh0LCB3b3JrZXIsICdhY3RpdmF0ZWQnKTsKICAgICAgICAgfSkKICAgICAgIC50aGVu
KGZ1bmN0aW9uKCkgeyByZXR1cm4gd2l0aF9pZnJhbWUoc2NvcGUpOyB9KQogICAgICAgLnRoZW4o
ZnVuY3Rpb24oZikgewotICAgICAgICAgIHQuYWRkX2NsZWFudXAoZnVuY3Rpb24oKSB7Ci0gICAg
ICAgICAgICAgIGYucmVtb3ZlKCk7OwotICAgICAgICAgICAgfSk7CiAgICAgICAgICAgZnJhbWUg
PSBmOwotICAgICAgICAgIHJldHVybiB3YWl0Rm9yV29ya2VyKHdvcmtlcik7CisgICAgICAgICAg
cmV0dXJuIGNyZWF0ZV9tZXNzYWdlX3Byb21pc2UodCwgZXhwZWN0ZWRfcmVzdWx0cywgZnJhbWUs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd29ya2VyLCB0ZXN0X2Nv
dW50LCBzY29wZSk7CiAgICAgICAgIH0pCi0gICAgICAudGhlbihmdW5jdGlvbihjaGFubmVsKSB7
Ci0gICAgICAgICAgY3NzX2ltYWdlX3NldF90ZXN0KGV4cGVjdGVkX3Jlc3VsdHMsIGZyYW1lLCBM
T0NBTF9VUkwgKyBEYXRlLm5vdygpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICdiYWNr
Z3JvdW5kSW1hZ2UnLCAnbm8tY29ycycsICdpbmNsdWRlJyk7Ci0gICAgICAgICAgY3NzX2ltYWdl
X3NldF90ZXN0KGV4cGVjdGVkX3Jlc3VsdHMsIGZyYW1lLCBSRU1PVEVfVVJMICsgRGF0ZS5ub3co
KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYmFja2dyb3VuZEltYWdlJywgJ25vLWNv
cnMnLCAnaW5jbHVkZScpOwotCi0gICAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKFsKLSAgICAg
ICAgICAgICAgY3JlYXRlX21lc3NhZ2VfcHJvbWlzZShjaGFubmVsLCBleHBlY3RlZF9yZXN1bHRz
LCB3b3JrZXIsIHNjb3BlKSwKLSAgICAgICAgICAgICAgY3JlYXRlX21lc3NhZ2VfcHJvbWlzZShj
aGFubmVsLCBleHBlY3RlZF9yZXN1bHRzLCB3b3JrZXIsIHNjb3BlKQotICAgICAgICAgICAgXSk7
Ci0gICAgICB9KTsKKyAgICAgIC50aGVuKGZ1bmN0aW9uKCkgeworICAgICAgICAgY3NzX2ltYWdl
X3NldF90ZXN0KGV4cGVjdGVkX3Jlc3VsdHMsIGZyYW1lLCBMT0NBTF9VUkwgKyBEYXRlLm5vdygp
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2JhY2tncm91bmRJbWFnZScsICduby1jb3Jz
JywgJ2luY2x1ZGUnKTsKKyAgICAgICAgIGNzc19pbWFnZV9zZXRfdGVzdChleHBlY3RlZF9yZXN1
bHRzLCBmcmFtZSwgUkVNT1RFX1VSTCArIERhdGUubm93KCksCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAnYmFja2dyb3VuZEltYWdlJywgJ25vLWNvcnMnLCAnaW5jbHVkZScpOworICAgICAg
fSkKKyAgICAgIC5jYXRjaCh1bnJlYWNoZWRfcmVqZWN0aW9uKHQpKTsKICAgfSwgJ1ZlcmlmeSBG
ZXRjaEV2ZW50IGZvciBjc3MgaW1hZ2Utc2V0IChiYWNrZ3JvdW5kSW1hZ2UpLicpOwogCi1wcm9t
aXNlX3Rlc3QoZnVuY3Rpb24odCkgeworYXN5bmNfdGVzdChmdW5jdGlvbih0KSB7CiAgICAgdmFy
IHNjb3BlID0gU0NPUEUgKyAiP2ltZ19zZXQ9c2hhcGVPdXRzaWRlIjsKKyAgICB2YXIgdGVzdF9j
b3VudCA9IDI7CiAgICAgdmFyIGV4cGVjdGVkX3Jlc3VsdHMgPSB7fTsKICAgICB2YXIgd29ya2Vy
OwogICAgIHZhciBmcmFtZTsKLSAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9h
bmRfcmVnaXN0ZXIodCwgU0NSSVBULCBzY29wZSkKKyAgICBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lz
dGVyX2FuZF9yZWdpc3Rlcih0LCBTQ1JJUFQsIHNjb3BlKQogICAgICAgLnRoZW4oZnVuY3Rpb24o
cmVnaXN0cmF0aW9uKSB7Ci0gICAgICAgICAgdC5hZGRfY2xlYW51cChmdW5jdGlvbigpIHsKLSAg
ICAgICAgICAgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXIodCwgc2NvcGUpOwot
ICAgICAgICAgICAgfSk7Ci0KICAgICAgICAgICB3b3JrZXIgPSByZWdpc3RyYXRpb24uaW5zdGFs
bGluZzsKICAgICAgICAgICByZXR1cm4gd2FpdF9mb3Jfc3RhdGUodCwgd29ya2VyLCAnYWN0aXZh
dGVkJyk7CiAgICAgICAgIH0pCiAgICAgICAudGhlbihmdW5jdGlvbigpIHsgcmV0dXJuIHdpdGhf
aWZyYW1lKHNjb3BlKTsgfSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKGYpIHsKLSAgICAgICAgICB0
LmFkZF9jbGVhbnVwKGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICBmLnJlbW92ZSgpOwotICAg
ICAgICAgICAgfSk7CiAgICAgICAgICAgZnJhbWUgPSBmOwotICAgICAgICAgIHJldHVybiB3YWl0
Rm9yV29ya2VyKHdvcmtlcik7CisgICAgICAgICAgcmV0dXJuIGNyZWF0ZV9tZXNzYWdlX3Byb21p
c2UodCwgZXhwZWN0ZWRfcmVzdWx0cywgZnJhbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgd29ya2VyLCB0ZXN0X2NvdW50LCBzY29wZSk7CiAgICAgICAgIH0pCi0g
ICAgICAudGhlbihmdW5jdGlvbihjaGFubmVsKSB7Ci0gICAgICAgICAgY3NzX2ltYWdlX3NldF90
ZXN0KGV4cGVjdGVkX3Jlc3VsdHMsIGZyYW1lLCBMT0NBTF9VUkwgKyBEYXRlLm5vdygpLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAnc2hhcGVPdXRzaWRlJywgJ2NvcnMnLCAnc2FtZS1v
cmlnaW4nKTsKLSAgICAgICAgICBjc3NfaW1hZ2Vfc2V0X3Rlc3QoZXhwZWN0ZWRfcmVzdWx0cywg
ZnJhbWUsIFJFTU9URV9VUkwgKyBEYXRlLm5vdygpLAorICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7
CisgICAgICAgICBjc3NfaW1hZ2Vfc2V0X3Rlc3QoZXhwZWN0ZWRfcmVzdWx0cywgZnJhbWUsIExP
Q0FMX1VSTCArIERhdGUubm93KCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NoYXBl
T3V0c2lkZScsICdjb3JzJywgJ3NhbWUtb3JpZ2luJyk7Ci0KLSAgICAgICAgICByZXR1cm4gUHJv
bWlzZS5hbGwoWwotICAgICAgICAgICAgICBjcmVhdGVfbWVzc2FnZV9wcm9taXNlKGNoYW5uZWws
IGV4cGVjdGVkX3Jlc3VsdHMsIHdvcmtlciwgc2NvcGUpLAotICAgICAgICAgICAgICBjcmVhdGVf
bWVzc2FnZV9wcm9taXNlKGNoYW5uZWwsIGV4cGVjdGVkX3Jlc3VsdHMsIHdvcmtlciwgc2NvcGUp
Ci0gICAgICAgICAgICBdKTsKLSAgICAgICAgfSk7CisgICAgICAgICBjc3NfaW1hZ2Vfc2V0X3Rl
c3QoZXhwZWN0ZWRfcmVzdWx0cywgZnJhbWUsIFJFTU9URV9VUkwgKyBEYXRlLm5vdygpLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgJ3NoYXBlT3V0c2lkZScsICdjb3JzJywgJ3NhbWUtb3Jp
Z2luJyk7CisgICAgICB9KQorICAgICAgLmNhdGNoKHVucmVhY2hlZF9yZWplY3Rpb24odCkpOwog
ICB9LCAnVmVyaWZ5IEZldGNoRXZlbnQgZm9yIGNzcyBpbWFnZS1zZXQgKHNoYXBlT3V0c2lkZSku
Jyk7CiAKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtcmVx
dWVzdC1odG1sLWltcG9ydHMuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
ZmV0Y2gtcmVxdWVzdC1odG1sLWltcG9ydHMuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IDk2ZDkx
ZDk1NDU2M2RhOTA0ODNjZTk5NTIxYWQwNTRiYzQ0NTRiY2UuLjliYjE0MmFkNDEwODRhNjZhNjE0
NmE2NTBlZTNiOTNhZTVmZDEyYmIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNo
LXJlcXVlc3QtaHRtbC1pbXBvcnRzLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9mZXRjaC1yZXF1ZXN0LWh0bWwtaW1wb3J0cy5odHRwcy1leHBlY3RlZC50eHQKQEAg
LTEsMyArMSwzIEBACiAKLUZBSUwgVmVyaWZ5IHRoZSBGZXRjaEV2ZW50IGZvciBIVE1MSW1wb3J0
cyBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJU
eXBlRXJyb3I6IHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdzYW1lLmdl
dEVsZW1lbnRCeUlkJykiCitGQUlMIFZlcmlmeSB0aGUgRmV0Y2hFdmVudCBmb3IgSFRNTEltcG9y
dHMgYXNzZXJ0X3VucmVhY2hlZDogdW5leHBlY3RlZCByZWplY3Rpb246IHVuZGVmaW5lZCBpcyBu
b3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdzYW1lLmdldEVsZW1lbnRCeUlkJykgUmVhY2hlZCB1
bnJlYWNoYWJsZSBjb2RlCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLXJl
cXVlc3QtaHRtbC1pbXBvcnRzLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1y
ZXF1ZXN0LWh0bWwtaW1wb3J0cy5odHRwcy5odG1sCmluZGV4IDdhMzlmYTg1Mjg0YWRkZWI4Yjhk
MTE0NGVmZGE3NGJkZmEwMTM0ZmUuLmIyZjU2ZGE5ZjAxNzI0YWEwYmEwNDQ1MzhjYzc3MzE2MjBh
YjdmOTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLXJlcXVlc3QtaHRtbC1p
bXBvcnRzLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtcmVxdWVzdC1o
dG1sLWltcG9ydHMuaHR0cHMuaHRtbApAQCAtNSwxNiArNSwxMiBAQAogPHNjcmlwdCBzcmM9Ii9j
b21tb24vZ2V0LWhvc3QtaW5mby5zdWIuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9InJlc291
cmNlcy90ZXN0LWhlbHBlcnMuc3ViLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+Ci1wcm9taXNlX3Rl
c3QoZnVuY3Rpb24odCkgeworYXN5bmNfdGVzdChmdW5jdGlvbih0KSB7CiAgICAgdmFyIFNDT1BF
ID0gJ3Jlc291cmNlcy9mZXRjaC1yZXF1ZXN0LWh0bWwtaW1wb3J0cy1pZnJhbWUuaHRtbCc7CiAg
ICAgdmFyIFNDUklQVCA9ICdyZXNvdXJjZXMvZmV0Y2gtcmVxdWVzdC1odG1sLWltcG9ydHMtd29y
a2VyLmpzJzsKICAgICB2YXIgaG9zdF9pbmZvID0gZ2V0X2hvc3RfaW5mbygpOwotICAgIHJldHVy
biBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCBTQ1JJUFQsIFNDT1BF
KQorICAgIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIFNDUklQVCwg
U0NPUEUpCiAgICAgICAudGhlbihmdW5jdGlvbihyZWdpc3RyYXRpb24pIHsKLSAgICAgICAgICB0
LmFkZF9jbGVhbnVwKGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICByZXR1cm4gc2VydmljZV93
b3JrZXJfdW5yZWdpc3Rlcih0LCBTQ09QRSk7Ci0gICAgICAgICAgICB9KTsKLQogICAgICAgICAg
IHJldHVybiB3YWl0X2Zvcl9zdGF0ZSh0LCByZWdpc3RyYXRpb24uaW5zdGFsbGluZywgJ2FjdGl2
YXRlZCcpOwogICAgICAgICB9KQogICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7IHJldHVybiB3aXRo
X2lmcmFtZShTQ09QRSk7IH0pCkBAIC02MCw2ICs1Niw5IEBAIHByb21pc2VfdGVzdChmdW5jdGlv
bih0KSB7CiAgICAgICAgICAgICAgICdtb2RlPWNvcnMgY3JlZGVudGlhbHM9c2FtZS1vcmlnaW4n
LAogICAgICAgICAgICAgICAnVGhlIHJlcXVlc3QgbW9kZSBhbmQgY3JlZGVudGlhbHMgZm9yIG90
aGVyIG9yaWdpbiBIVE1MSW1wb3J0ICcgKwogICAgICAgICAgICAgICAnZnJvbSBvdGhlciBvcmln
aW4gSFRNTEltcG9ydCBtdXN0IGJlIHNldCBjb3JyZWN0bHkuJyk7Ci0gICAgICAgIH0pOworCisg
ICAgICAgICAgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfZG9uZSh0LCBTQ09QRSk7Cisg
ICAgICAgIH0pCisgICAgICAuY2F0Y2godW5yZWFjaGVkX3JlamVjdGlvbih0KSk7CiAgIH0sICdW
ZXJpZnkgdGhlIEZldGNoRXZlbnQgZm9yIEhUTUxJbXBvcnRzJyk7CiA8L3NjcmlwdD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLXJlcXVlc3Qtbm8tZnJlc2huZXNzLWhlYWRl
cnMuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLXJlcXVlc3Qtbm8tZnJlc2hu
ZXNzLWhlYWRlcnMuaHR0cHMuaHRtbAppbmRleCAwM2I3ZDM1NzYxMGE5MDRlZDI2NGI2OTEwNTRi
NjAyNWY3ZmEyNDE0Li44MjliMGNmMjU5NGI1ODkyOWFkMjVkMDRlNTkwMDY2NGJiOTJkMTFlIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1yZXF1ZXN0LW5vLWZyZXNobmVzcy1o
ZWFkZXJzLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtcmVxdWVzdC1u
by1mcmVzaG5lc3MtaGVhZGVycy5odHRwcy5odG1sCkBAIC00LDE2ICs0LDEyIEBACiA8c2NyaXB0
IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0
IHNyYz0icmVzb3VyY2VzL3Rlc3QtaGVscGVycy5zdWIuanM/cGlwZT1zdWIiPjwvc2NyaXB0Pgog
PHNjcmlwdD4KLXByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7Cithc3luY190ZXN0KGZ1bmN0aW9u
KHQpIHsKICAgICB2YXIgU0NPUEUgPSAncmVzb3VyY2VzL2ZldGNoLXJlcXVlc3Qtbm8tZnJlc2hu
ZXNzLWhlYWRlcnMtaWZyYW1lLmh0bWwnOwogICAgIHZhciBTQ1JJUFQgPSAncmVzb3VyY2VzL2Zl
dGNoLXJlcXVlc3Qtbm8tZnJlc2huZXNzLWhlYWRlcnMtd29ya2VyLmpzJzsKICAgICB2YXIgd29y
a2VyOwotICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0
LCBTQ1JJUFQsIFNDT1BFKQorICAgIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lz
dGVyKHQsIFNDUklQVCwgU0NPUEUpCiAgICAgICAudGhlbihmdW5jdGlvbihyZWdpc3RyYXRpb24p
IHsKLSAgICAgICAgICB0LmFkZF9jbGVhbnVwKGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICBy
ZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcih0LCBTQ09QRSk7Ci0gICAgICAgICAgICB9
KTsKLQogICAgICAgICAgIHdvcmtlciA9IHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nOwogICAgICAg
ICAgIHJldHVybiB3YWl0X2Zvcl9zdGF0ZSh0LCB3b3JrZXIsICdhY3RpdmF0ZWQnKTsKICAgICAg
ICAgfSkKQEAgLTQyLDE0ICszOCwxNiBAQCBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewogICAg
ICAgICAgICAgJ2lmLW5vbmUtbWF0Y2gnOiB0cnVlLAogICAgICAgICAgICAgJ2lmLW1vZGlmaWVk
LXNpbmNlJzogdHJ1ZQogICAgICAgICAgIH07Ci0gICAgICAgICAgbXNnLmRhdGEucmVxdWVzdHMu
Zm9yRWFjaChmdW5jdGlvbihyZXF1ZXN0KSB7Ci0gICAgICAgICAgICAgIHJlcXVlc3QuaGVhZGVy
cy5mb3JFYWNoKGZ1bmN0aW9uKGhlYWRlcikgeworICAgICAgICAgIG1zZy5kYXRhLnJlcXVlc3Rz
LmZvckVhY2godC5zdGVwX2Z1bmMoZnVuY3Rpb24ocmVxdWVzdCkgeworICAgICAgICAgICAgICBy
ZXF1ZXN0LmhlYWRlcnMuZm9yRWFjaCh0LnN0ZXBfZnVuYyhmdW5jdGlvbihoZWFkZXIpIHsKICAg
ICAgICAgICAgICAgICAgIGFzc2VydF9mYWxzZSgKICAgICAgICAgICAgICAgICAgICAgICAhIWZy
ZXNobmVzc19oZWFkZXJzW2hlYWRlclswXV0sCiAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVy
WzBdICsgJyBoZWFkZXIgbXVzdCBub3QgYmUgc2V0IGluIHRoZSAnICsKICAgICAgICAgICAgICAg
ICAgICAgICAnRmV0Y2hFdmVudFwncyByZXF1ZXN0LiAodXJsID0gJyArIHJlcXVlc3QudXJsICsg
JyknKTsKLSAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIH0pCi0gICAgICAgIH0pOwor
ICAgICAgICAgICAgICAgIH0pKTsKKyAgICAgICAgICAgIH0pKQorICAgICAgICAgIHNlcnZpY2Vf
d29ya2VyX3VucmVnaXN0ZXJfYW5kX2RvbmUodCwgU0NPUEUpOworICAgICAgICB9KQorICAgICAg
LmNhdGNoKHVucmVhY2hlZF9yZWplY3Rpb24odCkpOwogICB9LCAnVGhlIGhlYWRlcnMgb2YgRmV0
Y2hFdmVudCBzaG91bGRuXCd0IGNvbnRhaW4gZnJlc2huZXNzIGhlYWRlcnMuJyk7CiA8L3Njcmlw
dD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLXJlcXVlc3QtcmVkaXJlY3Qu
aHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLXJlcXVlc3QtcmVkaXJlY3QuaHR0
cHMuaHRtbAppbmRleCA1N2ZiOGViNGM5NWQ1NGIyMGQ2NzQ3MjgyNzBlMTQwZGIwZjZiNDczLi5l
OGU5MGNmMWViMzdjZmNlOThmODAyYTBkZDI1YzI3MDI5MzhjY2IyIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9mZXRjaC1yZXF1ZXN0LXJlZGlyZWN0Lmh0dHBzLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvZmV0Y2gtcmVxdWVzdC1yZWRpcmVjdC5odHRwcy5odG1sCkBAIC03NCw4
ICs3NCw2IEBAIHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7CiAgICAgdmFyIGZyYW1lOwogICAg
IHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCBTQ1JJUFQs
IFNDT1BFKQogICAgICAgLnRoZW4oZnVuY3Rpb24ocmVnaXN0cmF0aW9uKSB7Ci0gICAgICAgICAg
dC5hZGRfY2xlYW51cCgoKSA9PiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyKHQsIFNDT1BFKSk7
Ci0KICAgICAgICAgICB3b3JrZXIgPSByZWdpc3RyYXRpb24uaW5zdGFsbGluZzsKICAgICAgICAg
ICByZXR1cm4gd2FpdF9mb3Jfc3RhdGUodCwgd29ya2VyLCAnYWN0aXZhdGVkJyk7CiAgICAgICAg
IH0pCkBAIC0xODMsNiArMTgxLDcgQEAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICAg
ICAgfSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKCkgewogICAgICAgICAgIGZyYW1lLnJlbW92ZSgp
OworICAgICAgICAgIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX2RvbmUodCwgU0NPUEUp
OwogICAgICAgICB9KTsKICAgfSwgJ1ZlcmlmeSByZWRpcmVjdCBtb2RlIG9mIEZldGNoIEFQSSBh
bmQgU2VydmljZVdvcmtlciBGZXRjaEV2ZW50LicpOwogCkBAIC0yMDksOCArMjA4LDYgQEAgcHJv
bWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICB2YXIgZnJhbWU7CiAgICAgcmV0dXJuIHNlcnZp
Y2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIFNDUklQVCwgU0NPUEUpCiAgICAg
ICAudGhlbihmdW5jdGlvbihyZWdpc3RyYXRpb24pIHsKLSAgICAgICAgICB0LmFkZF9jbGVhbnVw
KCgpID0+IHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXIodCwgU0NPUEUpKTsKLQogICAgICAgICAg
IHdvcmtlciA9IHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nOwogICAgICAgICAgIHJldHVybiB3YWl0
X2Zvcl9zdGF0ZSh0LCB3b3JrZXIsICdhY3RpdmF0ZWQnKTsKICAgICAgICAgfSkKQEAgLTI3OCw2
ICsyNzUsNyBAQCBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewogICAgICAgICB9KQogICAgICAg
LnRoZW4oZnVuY3Rpb24oKSB7CiAgICAgICAgICAgZnJhbWUucmVtb3ZlKCk7CisgICAgICAgICAg
c2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfZG9uZSh0LCBTQ09QRSk7CiAgICAgICAgIH0p
OwogICB9LCAnVmVyaWZ5IHJlZGlyZWN0ZWQgb2YgUmVzcG9uc2UoRmV0Y2ggQVBJKSBhbmQgU2Vy
dmljZVdvcmtlciBGZXRjaEV2ZW50LicpOwogCkBAIC0zMDQsOCArMzAyLDYgQEAgcHJvbWlzZV90
ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICB2YXIgZnJhbWU7CiAgICAgcmV0dXJuIHNlcnZpY2Vfd29y
a2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIFNDUklQVCwgU0NPUEUpCiAgICAgICAudGhl
bihmdW5jdGlvbihyZWdpc3RyYXRpb24pIHsKLSAgICAgICAgICB0LmFkZF9jbGVhbnVwKCgpID0+
IHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXIodCwgU0NPUEUpKTsKLQogICAgICAgICAgIHdvcmtl
ciA9IHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nOwogICAgICAgICAgIHJldHVybiB3YWl0X2Zvcl9z
dGF0ZSh0LCB3b3JrZXIsICdhY3RpdmF0ZWQnKTsKICAgICAgICAgfSkKQEAgLTM3OSw2ICszNzUs
NyBAQCBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewogICAgICAgICB9KQogICAgICAgLnRoZW4o
ZnVuY3Rpb24oKSB7CiAgICAgICAgICAgZnJhbWUucmVtb3ZlKCk7CisgICAgICAgICAgc2Vydmlj
ZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfZG9uZSh0LCBTQ09QRSk7CiAgICAgICAgIH0pOwogICB9
LCAnVmVyaWZ5IHJlZGlyZWN0ZWQgb2YgUmVzcG9uc2UoRmV0Y2ggQVBJKSwgQ2FjaGUgQVBJIGFu
ZCBTZXJ2aWNlV29ya2VyICcgKwogICAgICAnRmV0Y2hFdmVudC4nKTsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL2ZldGNoLXJlcXVlc3QteGhyLXN5bmMuaHR0cHMuaHRtbCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL2ZldGNoLXJlcXVlc3QteGhyLXN5bmMuaHR0cHMuaHRtbAppbmRleCBlYzI3
ZmI4OTgzNDNlNzBhYjI0NDg2OTgzMjEyZWY2YjU3NDRjZjE2Li5mMWU0ZmVjYzFiMzViYTE4Yjg5
YzU3MTBkZTVlZmQ5ZjZjMTE4M2MwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRj
aC1yZXF1ZXN0LXhoci1zeW5jLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0
Y2gtcmVxdWVzdC14aHItc3luYy5odHRwcy5odG1sCkBAIC0xNCw3ICsxNCw3IEBAIHByb21pc2Vf
dGVzdChmdW5jdGlvbih0KSB7CiAgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJf
YW5kX3JlZ2lzdGVyKHQsIHVybCwgc2NvcGUpCiAgICAgICAudGhlbihmdW5jdGlvbihyZWdpc3Ry
YXRpb24pIHsKICAgICAgICAgICB0LmFkZF9jbGVhbnVwKGZ1bmN0aW9uKCkgewotICAgICAgICAg
ICAgICByZXR1cm4gcmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIoKTsKKyAgICAgICAgICAgICAgcmVn
aXN0cmF0aW9uLnVucmVnaXN0ZXIoKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgICAgcmV0
dXJuIHdhaXRfZm9yX3N0YXRlKHQsIHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLCAnYWN0aXZhdGVk
Jyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1yZXNwb25zZS14aHIuaHR0
cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLXJlc3BvbnNlLXhoci5odHRwcy5odG1s
CmluZGV4IDg5MWViMDI5NDIyYjdiZjFjZDU3NTI3MGNmYTQ2MTZiYjgwZGEwYmMuLjc0MTczZThi
OWJkY2M3N2M1Zjg1ODMyZjg1YTVjNDQ4NTZiNzg1NjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL2ZldGNoLXJlc3BvbnNlLXhoci5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL2ZldGNoLXJlc3BvbnNlLXhoci5odHRwcy5odG1sCkBAIC01LDcgKzUsNyBAQAogPHNjcmlw
dCBzcmM9Ii9jb21tb24vZ2V0LWhvc3QtaW5mby5zdWIuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBz
cmM9InJlc291cmNlcy90ZXN0LWhlbHBlcnMuc3ViLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+Ci1w
cm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgeworYXN5bmNfdGVzdChmdW5jdGlvbih0KSB7CiAgICAg
dmFyIFNDT1BFID0gJ3Jlc291cmNlcy9mZXRjaC1yZXNwb25zZS14aHItaWZyYW1lLmh0dHBzLmh0
bWwnOwogICAgIHZhciBTQ1JJUFQgPSAncmVzb3VyY2VzL2ZldGNoLXJlc3BvbnNlLXhoci13b3Jr
ZXIuanMnOwogICAgIHZhciBob3N0X2luZm8gPSBnZXRfaG9zdF9pbmZvKCk7CkBAIC0xNiwxMiAr
MTYsOCBAQCBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewogICAgICAgZS5zb3VyY2UucG9zdE1l
c3NhZ2UoJ0FDSycsIGhvc3RfaW5mb1snSFRUUFNfT1JJR0lOJ10pOwogICAgIH0KIAotICAgIHJl
dHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCBTQ1JJUFQsIFND
T1BFKQorICAgIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIFNDUklQ
VCwgU0NPUEUpCiAgICAgICAudGhlbihmdW5jdGlvbihyZWdpc3RyYXRpb24pIHsKLSAgICAgICAg
ICB0LmFkZF9jbGVhbnVwKGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICByZXR1cm4gc2Vydmlj
ZV93b3JrZXJfdW5yZWdpc3Rlcih0LCBTQ09QRSk7Ci0gICAgICAgICAgICB9KTsKLQogICAgICAg
ICAgIHJldHVybiB3YWl0X2Zvcl9zdGF0ZSh0LCByZWdpc3RyYXRpb24uaW5zdGFsbGluZywgJ2Fj
dGl2YXRlZCcpOwogICAgICAgICB9KQogICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7IHJldHVybiB3
aXRoX2lmcmFtZShTQ09QRSk7IH0pCkBAIC0zMCwyMSArMjYsMTggQEAgcHJvbWlzZV90ZXN0KGZ1
bmN0aW9uKHQpIHsKIAogICAgICAgICAgIHQuYWRkX2NsZWFudXAoZnVuY3Rpb24oKSB7CiAgICAg
ICAgICAgICAgIGZyYW1lLnJlbW92ZSgpOworICAgICAgICAgICAgICBzZXJ2aWNlX3dvcmtlcl91
bnJlZ2lzdGVyX2FuZF9kb25lKHQsIFNDT1BFKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAg
ICAgY2hhbm5lbCA9IG5ldyBNZXNzYWdlQ2hhbm5lbCgpOwotICAgICAgICAgIHZhciBvblBvcnRN
c2cgPSBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlKSB7Ci0gICAgICAgICAgICAgIGNoYW5u
ZWwucG9ydDEub25tZXNzYWdlID0gcmVzb2x2ZTsKKyAgICAgICAgICBjaGFubmVsLnBvcnQxLm9u
bWVzc2FnZSA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgICAgYXNzZXJ0
X2VxdWFscyhlLmRhdGEucmVzdWx0cywgJ2ZpbmlzaCcpOworICAgICAgICAgICAgICB0LmRvbmUo
KTsKICAgICAgICAgICAgIH0pOwotCiAgICAgICAgICAgZnJhbWUuY29udGVudFdpbmRvdy5wb3N0
TWVzc2FnZSgnU1RBUlQnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaG9zdF9pbmZvWydIVFRQU19PUklHSU4nXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFtjaGFubmVsLnBvcnQyXSk7Ci0KLSAgICAgICAgICByZXR1cm4gb25Q
b3J0TXNnOwogICAgICAgICB9KQotICAgICAgLnRoZW4oZnVuY3Rpb24oZSkgewotICAgICAgICAg
IGFzc2VydF9lcXVhbHMoZS5kYXRhLnJlc3VsdHMsICdmaW5pc2gnKTsKLSAgICAgICAgfSk7Cisg
ICAgICAuY2F0Y2godW5yZWFjaGVkX3JlamVjdGlvbih0KSk7CiAgIH0sICdWZXJpZnkgdGhlIHJl
c3BvbnNlIG9mIEZldGNoRXZlbnQgdXNpbmcgWE1MSHR0cFJlcXVlc3QnKTsKIDwvc2NyaXB0Pgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtd2FpdHMtZm9yLWFjdGl2YXRlLmh0
dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC13YWl0cy1mb3ItYWN0aXZhdGUuaHR0
cHMuaHRtbAppbmRleCA4ODljNWVjN2JiYjkzNjc3MTUxMThmNzhhZTgxYTk5NDg1NmFkOTlmLi4y
YzlkNGE1OWRjMThkYzEyNWFiYzJmMjc5ZWY4ZTY1MTBkZGIzNDgzIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9mZXRjaC13YWl0cy1mb3ItYWN0aXZhdGUuaHR0cHMuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci9mZXRjaC13YWl0cy1mb3ItYWN0aXZhdGUuaHR0cHMuaHRtbApAQCAt
MTMsMTUgKzEzLDExIEBAIHZhciB3b3JrZXIgPSAncmVzb3VyY2VzL2ZldGNoLXdhaXRzLWZvci1h
Y3RpdmF0ZS13b3JrZXIuanMnOwogdmFyIGV4cGVjdGVkX3VybCA9IG5vcm1hbGl6ZVVSTCh3b3Jr
ZXIpOwogdmFyIHNjb3BlID0gJ3Jlc291cmNlcy9mZXRjaC13YWl0cy1mb3ItYWN0aXZhdGUvJzsK
IAotcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKK2FzeW5jX3Rlc3QoZnVuY3Rpb24odCkgewog
ICB2YXIgcmVnaXN0cmF0aW9uOwogICB2YXIgZnJhbWVMb2FkUHJvbWlzZTsKICAgdmFyIGZyYW1l
OwotICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgd29y
a2VyLCBzY29wZSkudGhlbihmdW5jdGlvbihyZWcpIHsKLSAgICB0LmFkZF9jbGVhbnVwKGZ1bmN0
aW9uKCkgewotICAgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXIodCwgc2NvcGUp
OwotICAgIH0pOwotCisgIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQs
IHdvcmtlciwgc2NvcGUpLnRoZW4oZnVuY3Rpb24ocmVnKSB7CiAgICAgcmVnaXN0cmF0aW9uID0g
cmVnOwogICAgIHJldHVybiB3YWl0X2Zvcl9zdGF0ZSh0LCByZWcuaW5zdGFsbGluZywgJ2FjdGl2
YXRpbmcnKTsKICAgfSkudGhlbihmdW5jdGlvbigpIHsKQEAgLTU5LDcgKzU1LDggQEAgcHJvbWlz
ZV90ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi5hY3Rp
dmUuc3RhdGUsICdhY3RpdmF0ZWQnLAogICAgICAgICAgICAgICAgICAgJ2FjdGl2ZSB3b3JrZXIg
c2hvdWxkIGJlIGluIGFjdGl2YXRlZCBzdGF0ZScpOwogICAgIGZyYW1lLnJlbW92ZSgpOwotICB9
KTsKKyAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfZG9uZSh0LCBzY29w
ZSk7CisgIH0pLmNhdGNoKHVucmVhY2hlZF9yZWplY3Rpb24odCkpOwogfSwgJ0ZldGNoIGV2ZW50
cyBzaG91bGQgd2FpdCBmb3IgdGhlIGFjdGl2YXRlIGV2ZW50IHRvIGNvbXBsZXRlLicpOwogCiA8
L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2dldHJlZ2lzdHJhdGlvbi5o
dHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9nZXRyZWdpc3RyYXRpb24uaHR0
cHMtZXhwZWN0ZWQudHh0CmluZGV4IDI1MTM1ZGQxOTgwOWFjNDVmYjQ3YmZiNDkxYzA4ZTU3NmYx
ZGI4MWIuLjkzOTY2NjJlOTQxNzM5ZWRhZjk0OWQzMmRlZTcxNDZlY2UwZTgxY2QgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL2dldHJlZ2lzdHJhdGlvbi5odHRwcy1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvZ2V0cmVnaXN0cmF0aW9uLmh0dHBzLWV4cGVjdGVkLnR4
dApAQCAtNCw1ICs0LDQgQEAgUEFTUyBSZWdpc3RlciB0aGVuIGdldFJlZ2lzdHJhdGlvbgogUEFT
UyBSZWdpc3RlciB0aGVuIGdldFJlZ2lzdHJhdGlvbiB3aXRoIGEgVVJMIGhhdmluZyBhIGZyYWdt
ZW50IAogUEFTUyBnZXRSZWdpc3RyYXRpb24gd2l0aCBhIGNyb3NzIG9yaWdpbiBVUkwgCiBQQVNT
IFJlZ2lzdGVyIHRoZW4gVW5yZWdpc3RlciB0aGVuIGdldFJlZ2lzdHJhdGlvbiAKLVBBU1MgUmVn
aXN0ZXIgdGhlbiBVbnJlZ2lzdGVyIHRoZW4gZ2V0UmVnaXN0cmF0aW9uIGluIGNvbnRyb2xsZWQg
aWZyYW1lIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9nZXRyZWdpc3RyYXRpb24u
aHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2dldHJlZ2lzdHJhdGlvbi5odHRwcy5odG1s
CmluZGV4IDYzNGMyZWZhMTI0NjFhODExZDhlNDYzNDVlY2UwMjk4MDg2ZjY0YjIuLmM4NmZkYTUw
ZDUyZTI3MGM3ZjhhMjFmMDM4OTFmYTYzMmQwMmZmYjggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL2dldHJlZ2lzdHJhdGlvbi5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L2dldHJlZ2lzdHJhdGlvbi5odHRwcy5odG1sCkBAIC0xNCwxNiArMTQsMTIgQEAgYXN5bmNfdGVz
dChmdW5jdGlvbih0KSB7CiAgICAgICAuY2F0Y2godW5yZWFjaGVkX3JlamVjdGlvbih0KSk7CiAg
IH0sICdnZXRSZWdpc3RyYXRpb24nKTsKIAotcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKK2Fz
eW5jX3Rlc3QoZnVuY3Rpb24odCkgewogICAgIHZhciBzY29wZSA9ICdyZXNvdXJjZXMvc2NvcGUv
Z2V0cmVnaXN0cmF0aW9uL25vcm1hbCc7CiAgICAgdmFyIHJlZ2lzdHJhdGlvbjsKLSAgICByZXR1
cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgJ3Jlc291cmNlcy9l
bXB0eS13b3JrZXIuanMnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzY29wZSkKKyAgICBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdp
c3Rlcih0LCAncmVzb3VyY2VzL2VtcHR5LXdvcmtlci5qcycsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc2NvcGUpCiAgICAgICAudGhlbihmdW5jdGlvbihyKSB7
Ci0gICAgICAgICAgdC5hZGRfY2xlYW51cChmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgcmV0
dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXIodCwgc2NvcGUpOwotICAgICAgICAgICAgfSk7
Ci0KICAgICAgICAgICByZWdpc3RyYXRpb24gPSByOwogICAgICAgICAgIHJldHVybiBuYXZpZ2F0
b3Iuc2VydmljZVdvcmtlci5nZXRSZWdpc3RyYXRpb24oc2NvcGUpOwogICAgICAgICB9KQpAQCAt
MzEsMjAgKzI3LDE4IEBAIHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7CiAgICAgICAgICAgYXNz
ZXJ0X2VxdWFscygKICAgICAgICAgICAgICAgdmFsdWUsIHJlZ2lzdHJhdGlvbiwKICAgICAgICAg
ICAgICAgJ2dldFJlZ2lzdHJhdGlvbiBzaG91bGQgcmVzb2x2ZSB0byB0aGUgc2FtZSByZWdpc3Ry
YXRpb24gb2JqZWN0Jyk7Ci0gICAgICAgIH0pOworICAgICAgICAgIHNlcnZpY2Vfd29ya2VyX3Vu
cmVnaXN0ZXJfYW5kX2RvbmUodCwgc2NvcGUpOworICAgICAgICB9KQorICAgICAgLmNhdGNoKHVu
cmVhY2hlZF9yZWplY3Rpb24odCkpOwogICB9LCAnUmVnaXN0ZXIgdGhlbiBnZXRSZWdpc3RyYXRp
b24nKTsKIAotcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKK2FzeW5jX3Rlc3QoZnVuY3Rpb24o
dCkgewogICAgIHZhciBzY29wZSA9ICdyZXNvdXJjZXMvc2NvcGUvZ2V0cmVnaXN0cmF0aW9uL3Vy
bC13aXRoLWZyYWdtZW50JzsKICAgICB2YXIgZG9jdW1lbnRVUkwgPSBzY29wZSArICcjcmVmJzsK
ICAgICB2YXIgcmVnaXN0cmF0aW9uOwotICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lz
dGVyX2FuZF9yZWdpc3Rlcih0LCAncmVzb3VyY2VzL2VtcHR5LXdvcmtlci5qcycsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjb3BlKQorICAgIHNl
cnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsICdyZXNvdXJjZXMvZW1wdHkt
d29ya2VyLmpzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz
Y29wZSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKHIpIHsKLSAgICAgICAgICB0LmFkZF9jbGVhbnVw
KGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdp
c3Rlcih0LCBzY29wZSk7Ci0gICAgICAgICAgICB9KTsKLQogICAgICAgICAgIHJlZ2lzdHJhdGlv
biA9IHI7CiAgICAgICAgICAgcmV0dXJuIG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLmdldFJlZ2lz
dHJhdGlvbihkb2N1bWVudFVSTCk7CiAgICAgICAgIH0pCkBAIC01Miw3ICs0Niw5IEBAIHByb21p
c2VfdGVzdChmdW5jdGlvbih0KSB7CiAgICAgICAgICAgYXNzZXJ0X2VxdWFscygKICAgICAgICAg
ICAgICAgdmFsdWUsIHJlZ2lzdHJhdGlvbiwKICAgICAgICAgICAgICAgJ2dldFJlZ2lzdHJhdGlv
biBzaG91bGQgcmVzb2x2ZSB0byB0aGUgc2FtZSByZWdpc3RyYXRpb24gb2JqZWN0Jyk7Ci0gICAg
ICAgIH0pOworICAgICAgICAgIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX2RvbmUodCwg
c2NvcGUpOworICAgICAgICB9KQorICAgICAgLmNhdGNoKHVucmVhY2hlZF9yZWplY3Rpb24odCkp
OwogICB9LCAnUmVnaXN0ZXIgdGhlbiBnZXRSZWdpc3RyYXRpb24gd2l0aCBhIFVSTCBoYXZpbmcg
YSBmcmFnbWVudCcpOwogCiBhc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKQEAgLTg4LDIxICs4NCw0
IEBAIGFzeW5jX3Rlc3QoZnVuY3Rpb24odCkgewogICAgICAgLmNhdGNoKHVucmVhY2hlZF9yZWpl
Y3Rpb24odCkpOwogICB9LCAnUmVnaXN0ZXIgdGhlbiBVbnJlZ2lzdGVyIHRoZW4gZ2V0UmVnaXN0
cmF0aW9uJyk7CiAKLQotcHJvbWlzZV90ZXN0KGFzeW5jIGZ1bmN0aW9uKHQpIHsKLSAgY29uc3Qg
c2NvcGUgPSAncmVzb3VyY2VzL3Njb3BlL2dldHJlZ2lzdHJhdGlvbi9yZWdpc3Rlci11bnJlZ2lz
dGVyJzsKLSAgY29uc3QgcmVnaXN0cmF0aW9uID0gYXdhaXQgc2VydmljZV93b3JrZXJfdW5yZWdp
c3Rlcl9hbmRfcmVnaXN0ZXIoCi0gICAgdCwgJ3Jlc291cmNlcy9lbXB0eS13b3JrZXIuanMnLCBz
Y29wZQotICApOwotCi0gIGNvbnN0IGZyYW1lID0gYXdhaXQgd2l0aF9pZnJhbWUoc2NvcGUpOwot
ICB0LmFkZF9jbGVhbnVwKCgpID0+IGZyYW1lLnJlbW92ZSgpKTsKLQotICBjb25zdCBmcmFtZU5h
diA9IGZyYW1lLmNvbnRlbnRXaW5kb3cubmF2aWdhdG9yOwotICBhd2FpdCByZWdpc3RyYXRpb24u
dW5yZWdpc3RlcigpOwotICBjb25zdCB2YWx1ZSA9IGF3YWl0IGZyYW1lTmF2LnNlcnZpY2VXb3Jr
ZXIuZ2V0UmVnaXN0cmF0aW9uKHNjb3BlKTsKLQotICBhc3NlcnRfZXF1YWxzKHZhbHVlLCB1bmRl
ZmluZWQsICdnZXRSZWdpc3RyYXRpb24gc2hvdWxkIHJlc29sdmUgd2l0aCB1bmRlZmluZWQnKTsK
LX0sICdSZWdpc3RlciB0aGVuIFVucmVnaXN0ZXIgdGhlbiBnZXRSZWdpc3RyYXRpb24gaW4gY29u
dHJvbGxlZCBpZnJhbWUnKTsKLQogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9pbXBvcnQtbW9kdWxlLXNjcmlwdHMuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvaW1wb3J0LW1vZHVsZS1zY3JpcHRzLmh0dHBzLWV4cGVjdGVkLnR4dApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDQyZTUwNzJjNjRmZGY3OTU0MTAyY2JlNjhjNTRiODRi
MTVmNWMwYi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci9pbXBvcnQtbW9kdWxlLXNjcmlwdHMuaHR0cHMtZXhwZWN0ZWQudHh0
CisrKyAvZGV2L251bGwKQEAgLTEsNCArMCwwIEBACi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMjc6
IFJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiB0ZXN0Q2FzZXMKLQotRkFJTCBU
ZXN0cyBmb3IgbW9kdWxlIGltcG9ydDogU2VydmljZVdvcmtlciBSZWZlcmVuY2VFcnJvcjogQ2Fu
J3QgZmluZCB2YXJpYWJsZTogdGVzdENhc2VzCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL2ltcG9ydC1tb2R1bGUtc2NyaXB0cy5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
aW1wb3J0LW1vZHVsZS1zY3JpcHRzLmh0dHBzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDdiY2E4ZGU2NGY1YmM5NjY0OTExYmQxYzVkYzg4MzU2NzY4MWFmYjguLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
aW1wb3J0LW1vZHVsZS1zY3JpcHRzLmh0dHBzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyOSAr
MCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5U
ZXN0cyBmb3IgbW9kdWxlIGltcG9ydDogU2VydmljZVdvcmtlcjwvdGl0bGU+Ci08c2NyaXB0IHNy
Yz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iL3Jl
c291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVz
b3VyY2VzL3Rlc3QtaGVscGVycy5zdWIuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii93b3Jr
ZXJzL21vZHVsZXMvcmVzb3VyY2VzL2ltcG9ydC10ZXN0LWNhc2VzLmpzIj48L3NjcmlwdD4KLTxi
b2R5PgotPHNjcmlwdD4KLWZ1bmN0aW9uIGltcG9ydF90ZXN0KHRlc3RDYXNlKSB7Ci0gIHByb21p
c2VfdGVzdChhc3luYyB0ID0+IHsKLSAgICBjb25zdCBtc2dQcm9taXNlID0gbmV3IFByb21pc2Uo
cmVzb2x2ZSA9PiB7Ci0gICAgICBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5vbm1lc3NhZ2UgPSBy
ZXNvbHZlOwotICAgIH0pOwotICAgIGF3YWl0IHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXIodCwg
dGVzdENhc2Uuc2NyaXB0VVJMKTsKLSAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHNlcnZpY2Vfd29y
a2VyX3VucmVnaXN0ZXIodCwgdGVzdENhc2Uuc2NyaXB0VVJMKSk7Ci0gICAgY29uc3QgcmVnaXN0
cmF0aW9uID0gYXdhaXQgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoCi0gICAgICB0
ZXN0Q2FzZS5zY3JpcHRVUkwsCi0gICAgICB7IHNjb3BlOiB0ZXN0Q2FzZS5zY3JpcHRVUkwsIHR5
cGU6ICdtb2R1bGUnIH0pOwotICAgIHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLnBvc3RNZXNzYWdl
KAotICAgICAgJ1NlbmQgbWVzc2FnZSBmb3IgdGVzdHMgZnJvbSBtYWluIHNjcmlwdC4nKTsKLSAg
ICBjb25zdCBtc2dFdmVudCA9IGF3YWl0IG1zZ1Byb21pc2U7Ci0gICAgYXNzZXJ0X2FycmF5X2Vx
dWFscyhtc2dFdmVudC5kYXRhLCB0ZXN0Q2FzZS5leHBlY3RhdGlvbik7Ci0gIH0sIHRlc3RDYXNl
LmRlc2NyaXB0aW9uKTsKLX0KLQotdGVzdENhc2VzLmZvckVhY2goaW1wb3J0X3Rlc3QpOwotPC9z
Y3JpcHQ+Ci08L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9pbXBvcnQtc2Ny
aXB0cy1taW1lLXR5cGVzLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2lt
cG9ydC1zY3JpcHRzLW1pbWUtdHlwZXMuaHR0cHMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA3YjFjZTM0MDQxNTQ0MGQxZDAwNDNlYTJjMjIyYzFkZjdhZWUxOTUy
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL2ltcG9ydC1zY3JpcHRzLW1pbWUtdHlwZXMuaHR0cHMtZXhwZWN0ZWQudHh0Cisr
KyAvZGV2L251bGwKQEAgLTEsMjIgKzAsMCBAQAotCi1QQVNTIEdsb2JhbCBzZXR1cCAKLVBBU1Mg
RmV0Y2ggaW1wb3J0U2NyaXB0cyB0ZXN0cyBmcm9tIHNlcnZpY2Ugd29ya2VyIAotUEFTUyBJbXBv
cnRpbmcgc2NyaXB0IHdpdGggbm8gTUlNRSB0eXBlICAKLVBBU1MgSW1wb3J0aW5nIHNjcmlwdCB3
aXRoIGJhZCBNSU1FIHR5cGUgdGV4dC9wbGFpbiAKLVBBU1MgSW1wb3J0aW5nIHNjcmlwdCB3aXRo
IHZhbGlkIEphdmFTY3JpcHQgTUlNRSB0eXBlIGFwcGxpY2F0aW9uL2VjbWFzY3JpcHQgCi1QQVNT
IEltcG9ydGluZyBzY3JpcHQgd2l0aCB2YWxpZCBKYXZhU2NyaXB0IE1JTUUgdHlwZSBhcHBsaWNh
dGlvbi9qYXZhc2NyaXB0IAotUEFTUyBJbXBvcnRpbmcgc2NyaXB0IHdpdGggdmFsaWQgSmF2YVNj
cmlwdCBNSU1FIHR5cGUgYXBwbGljYXRpb24veC1lY21hc2NyaXB0IAotUEFTUyBJbXBvcnRpbmcg
c2NyaXB0IHdpdGggdmFsaWQgSmF2YVNjcmlwdCBNSU1FIHR5cGUgYXBwbGljYXRpb24veC1qYXZh
c2NyaXB0IAotUEFTUyBJbXBvcnRpbmcgc2NyaXB0IHdpdGggdmFsaWQgSmF2YVNjcmlwdCBNSU1F
IHR5cGUgdGV4dC9lY21hc2NyaXB0IAotUEFTUyBJbXBvcnRpbmcgc2NyaXB0IHdpdGggdmFsaWQg
SmF2YVNjcmlwdCBNSU1FIHR5cGUgdGV4dC9qYXZhc2NyaXB0IAotUEFTUyBJbXBvcnRpbmcgc2Ny
aXB0IHdpdGggdmFsaWQgSmF2YVNjcmlwdCBNSU1FIHR5cGUgdGV4dC9qYXZhc2NyaXB0MS4wIAot
UEFTUyBJbXBvcnRpbmcgc2NyaXB0IHdpdGggdmFsaWQgSmF2YVNjcmlwdCBNSU1FIHR5cGUgdGV4
dC9qYXZhc2NyaXB0MS4xIAotUEFTUyBJbXBvcnRpbmcgc2NyaXB0IHdpdGggdmFsaWQgSmF2YVNj
cmlwdCBNSU1FIHR5cGUgdGV4dC9qYXZhc2NyaXB0MS4yIAotUEFTUyBJbXBvcnRpbmcgc2NyaXB0
IHdpdGggdmFsaWQgSmF2YVNjcmlwdCBNSU1FIHR5cGUgdGV4dC9qYXZhc2NyaXB0MS4zIAotUEFT
UyBJbXBvcnRpbmcgc2NyaXB0IHdpdGggdmFsaWQgSmF2YVNjcmlwdCBNSU1FIHR5cGUgdGV4dC9q
YXZhc2NyaXB0MS40IAotUEFTUyBJbXBvcnRpbmcgc2NyaXB0IHdpdGggdmFsaWQgSmF2YVNjcmlw
dCBNSU1FIHR5cGUgdGV4dC9qYXZhc2NyaXB0MS41IAotUEFTUyBJbXBvcnRpbmcgc2NyaXB0IHdp
dGggdmFsaWQgSmF2YVNjcmlwdCBNSU1FIHR5cGUgdGV4dC9qc2NyaXB0IAotUEFTUyBJbXBvcnRp
bmcgc2NyaXB0IHdpdGggdmFsaWQgSmF2YVNjcmlwdCBNSU1FIHR5cGUgdGV4dC9saXZlc2NyaXB0
IAotUEFTUyBJbXBvcnRpbmcgc2NyaXB0IHdpdGggdmFsaWQgSmF2YVNjcmlwdCBNSU1FIHR5cGUg
dGV4dC94LWVjbWFzY3JpcHQgCi1QQVNTIEltcG9ydGluZyBzY3JpcHQgd2l0aCB2YWxpZCBKYXZh
U2NyaXB0IE1JTUUgdHlwZSB0ZXh0L3gtamF2YXNjcmlwdCAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvaW1wb3J0LXNjcmlwdHMtbWltZS10eXBlcy5odHRwcy5odG1sIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvaW1wb3J0LXNjcmlwdHMtbWltZS10eXBlcy5odHRwcy5odG1sCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxNjc5ODMxZDBmMmI5OGFlZTIyODk4ZDgyMDM3M2U4MDA3
OWZiZTAwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL2ltcG9ydC1zY3JpcHRzLW1pbWUtdHlwZXMuaHR0cHMuaHRtbAorKysg
L2Rldi9udWxsCkBAIC0xLDMwICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPG1ldGEgY2hhcnNl
dD0idXRmLTgiPgotPHRpdGxlPlRlc3RzIGZvciBpbXBvcnRTY3JpcHRzOiBNSU1FIHR5cGVzPC90
aXRsZT4KLTxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGVzdC1oZWxwZXJzLnN1Yi5qcyI+PC9zY3JpcHQ+Ci08
Ym9keT4KLTxzY3JpcHQ+Ci0vKioKLSAqIFRlc3QgdGhhdCBhIFNlcnZpY2UgV29ya2VyJ3MgaW1w
b3J0U2NyaXB0KCkgb25seSBhY2NlcHRzIHZhbGlkIE1JTUUgdHlwZXMuCi0gKi8KLWxldCBzZXJ2
aWNlV29ya2VyID0gbnVsbDsKLQotcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewotICBjb25zdCBz
Y29wZSA9ICdyZXNvdXJjZXMvaW1wb3J0LXNjcmlwdHMtbWltZS10eXBlcyc7Ci0gIGNvbnN0IHJl
Z2lzdHJhdGlvbiA9IGF3YWl0IHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVy
KHQsCi0gICAgJ3Jlc291cmNlcy9pbXBvcnQtc2NyaXB0cy1taW1lLXR5cGVzLXdvcmtlci5qcycs
IHNjb3BlKTsKLQotICBhZGRfY29tcGxldGlvbl9jYWxsYmFjaygoKSA9PiB7IHJlZ2lzdHJhdGlv
bi51bnJlZ2lzdGVyKCk7IH0pOwotCi0gIGF3YWl0IHdhaXRfZm9yX3N0YXRlKHQsIHJlZ2lzdHJh
dGlvbi5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7Ci0KLSAgc2VydmljZVdvcmtlciA9IHJlZ2lz
dHJhdGlvbi5hY3RpdmU7Ci19LCAnR2xvYmFsIHNldHVwJyk7Ci0KLXByb21pc2VfdGVzdChhc3lu
YyB0ID0+IHsKLSAgYXdhaXQgZmV0Y2hfdGVzdHNfZnJvbV93b3JrZXIoc2VydmljZVdvcmtlcik7
Ci19LCAnRmV0Y2ggaW1wb3J0U2NyaXB0cyB0ZXN0cyBmcm9tIHNlcnZpY2Ugd29ya2VyJykKLTwv
c2NyaXB0PgotPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvaW1wb3J0LXNj
cmlwdHMtcmVzb3VyY2UtbWFwLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L2ltcG9ydC1zY3JpcHRzLXJlc291cmNlLW1hcC5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggZjgz
MWE4ZWQ3NGRlY2JkMWUyYzdlMjUwYzI0MWU5MzhlNDMxZmZkOS4uMmQ5NTdmMWRiNGY5MGY5NWRi
YzQyYmE1MmUzZDcyYWYzY2ZhNGJlNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvaW1w
b3J0LXNjcmlwdHMtcmVzb3VyY2UtbWFwLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9pbXBvcnQtc2NyaXB0cy1yZXNvdXJjZS1tYXAuaHR0cHMtZXhwZWN0ZWQudHh0
CkBAIC0xLDQgKzEsMyBAQAogCiBQQVNTIGltcG9ydCB0aGUgc2FtZSBzY3JpcHQgVVJMIG11bHRp
cGxlIHRpbWVzIAotUEFTUyBjYWxsIGltcG9ydFNjcmlwdHMoKSB3aXRoIG11bHRpcGxlIGFyZ3Vt
ZW50cyAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvaW1wb3J0LXNjcmlwdHMtcmVz
b3VyY2UtbWFwLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9pbXBvcnQtc2NyaXB0cy1y
ZXNvdXJjZS1tYXAuaHR0cHMuaHRtbAppbmRleCA0NzQyYmQwMTI2ODM2MDQ3N2JmNjA2MWY4NTA1
ZmU5YTNiN2NhZGI3Li5hNWUyNjc4NWZhYzRhYTEyNjc3NjJmZjU4YzQ4OTY5ZGM4YWNiMDE3IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9pbXBvcnQtc2NyaXB0cy1yZXNvdXJjZS1tYXAu
aHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9pbXBvcnQtc2NyaXB0cy1yZXNvdXJj
ZS1tYXAuaHR0cHMuaHRtbApAQCAtMSwzNCArMSwyMyBAQAogPCFET0NUWVBFIGh0bWw+Ci08bWV0
YSBjaGFyc2V0PSJ1dGYtOCIgLz4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KIDx0aXRsZT5UZXN0
cyBmb3IgaW1wb3J0U2NyaXB0czogc2NyaXB0IHJlc291cmNlIG1hcDwvdGl0bGU+CiA8c2NyaXB0
IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0i
L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL3Rlc3QtaGVscGVycy5zdWIuanMiPjwvc2NyaXB0PgogPGJvZHk+Ci0gIDxzY3Jp
cHQ+Ci0gICAgLy8gVGhpcyB0ZXN0IHJlZ2lzdGVycyBhIHdvcmtlciB0aGF0IGltcG9ydHMgYSBz
Y3JpcHQgbXVsdGlwbGUgdGltZXMuIFRoZQotICAgIC8vIHNjcmlwdCBzaG91bGQgYmUgc3RvcmVk
IG9uIHRoZSBmaXJzdCBpbXBvcnQgYW5kIHRoZXJlYWZ0ZXIgdGhhdCBzdG9yZWQKLSAgICAvLyBz
Y3JpcHQgc2hvdWxkIGJlIGxvYWRlZC4gVGhlIHdvcmtlciBhc3NlcnRzIHRoYXQgdGhlIHN0b3Jl
ZCBzY3JpcHQgd2FzCi0gICAgLy8gbG9hZGVkOyBpZiB0aGUgYXNzZXJ0IGZhaWxzIHRoZW4gcmVn
aXN0cmF0aW9uIGZhaWxzLgotCi0gICAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewotICAgICAg
Y29uc3QgU0NPUEUgPSAicmVzb3VyY2VzL2ltcG9ydC1zY3JpcHRzLXJlc291cmNlLW1hcCI7Ci0g
ICAgICBjb25zdCBTQ1JJUFQgPSAicmVzb3VyY2VzL2ltcG9ydC1zY3JpcHRzLXJlc291cmNlLW1h
cC13b3JrZXIuanMiOwotICAgICAgYXdhaXQgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcih0LCBT
Q09QRSk7Ci0gICAgICBjb25zdCByZWdpc3RyYXRpb24gPSBhd2FpdCBuYXZpZ2F0b3Iuc2Vydmlj
ZVdvcmtlci5yZWdpc3RlcihTQ1JJUFQsIHsKLSAgICAgICAgc2NvcGU6IFNDT1BFCi0gICAgICB9
KTsKLSAgICAgIGF3YWl0IHJlZ2lzdHJhdGlvbi51bnJlZ2lzdGVyKCk7Ci0gICAgfSwgImltcG9y
dCB0aGUgc2FtZSBzY3JpcHQgVVJMIG11bHRpcGxlIHRpbWVzIik7Ci0KLSAgICBwcm9taXNlX3Rl
c3QoYXN5bmMgdCA9PiB7Ci0gICAgICBjb25zdCBTQ09QRSA9ICJyZXNvdXJjZXMvaW1wb3J0LXNj
cmlwdHMtZGlmZi1yZXNvdXJjZS1tYXAiOwotICAgICAgY29uc3QgU0NSSVBUID0gInJlc291cmNl
cy9pbXBvcnQtc2NyaXB0cy1kaWZmLXJlc291cmNlLW1hcC13b3JrZXIuanMiOwotICAgICAgYXdh
aXQgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcih0LCBTQ09QRSk7Ci0gICAgICBjb25zdCByZWdp
c3RyYXRpb24gPSBhd2FpdCBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3RlcihTQ1JJUFQs
IHsKLSAgICAgICAgc2NvcGU6IFNDT1BFCi0gICAgICB9KTsKLSAgICAgIGF3YWl0IHJlZ2lzdHJh
dGlvbi51bnJlZ2lzdGVyKCk7Ci0gICAgfSwgImNhbGwgaW1wb3J0U2NyaXB0cygpIHdpdGggbXVs
dGlwbGUgYXJndW1lbnRzIik7Ci0gIDwvc2NyaXB0PgorPHNjcmlwdD4KKy8vIFRoaXMgdGVzdCBy
ZWdpc3RlcnMgYSB3b3JrZXIgdGhhdCBpbXBvcnRzIGEgc2NyaXB0IG11bHRpcGxlIHRpbWVzLiBU
aGUKKy8vIHNjcmlwdCBzaG91bGQgYmUgc3RvcmVkIG9uIHRoZSBmaXJzdCBpbXBvcnQgYW5kIHRo
ZXJlYWZ0ZXIgdGhhdCBzdG9yZWQKKy8vIHNjcmlwdCBzaG91bGQgYmUgbG9hZGVkLiBUaGUgd29y
a2VyIGFzc2VydHMgdGhhdCB0aGUgc3RvcmVkIHNjcmlwdCB3YXMKKy8vIGxvYWRlZDsgaWYgdGhl
IGFzc2VydCBmYWlscyB0aGVuIHJlZ2lzdHJhdGlvbiBmYWlscy4KK3Byb21pc2VfdGVzdCh0ID0+
IHsKKyAgICBjb25zdCBzY29wZSA9ICdyZXNvdXJjZXMvaW1wb3J0LXNjcmlwdHMtcmVzb3VyY2Ut
bWFwJzsKKyAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcih0LCBzY29wZSkKKyAg
ICAgIC50aGVuKCgpID0+IHsKKyAgICAgICAgICByZXR1cm4gbmF2aWdhdG9yLnNlcnZpY2VXb3Jr
ZXIucmVnaXN0ZXIoCisgICAgICAgICAgICAgICdyZXNvdXJjZXMvaW1wb3J0LXNjcmlwdHMtcmVz
b3VyY2UtbWFwLXdvcmtlci5qcycsIHtzY29wZTogc2NvcGV9KTsKKyAgICAgICAgfSkKKyAgICAg
IC50aGVuKHIgPT4gci51bnJlZ2lzdGVyKCkpOworICB9LCAnaW1wb3J0IHRoZSBzYW1lIHNjcmlw
dCBVUkwgbXVsdGlwbGUgdGltZXMnKTsKKzwvc2NyaXB0PgogPC9ib2R5PgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvaW50ZXJmYWNlcy13aW5kb3cuaHR0cHMuaHRtbCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL2ludGVyZmFjZXMtd2luZG93Lmh0dHBzLmh0bWwKaW5kZXggZjcwY2Y0MDkzMWRi
ODgzNTBjNWZiMGY1ZWJiMWZiZDEwZjkxN2RiYS4uODVkN2Y2NDY3ZWU5ODkwNWIxMjdhMDc1ZDRl
MmEyZDMzMTM5NWU3OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvaW50ZXJmYWNlcy13
aW5kb3cuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9pbnRlcmZhY2VzLXdpbmRv
dy5odHRwcy5odG1sCkBAIC0xLDYgKzEsNSBAQAogPCFET0NUWVBFIGh0bWw+CiA8dGl0bGU+U2Vy
dmljZSBXb3JrZXI6IEludGVyZmFjZXM8L3RpdGxlPgotPG1ldGEgbmFtZT0idGltZW91dCIgY29u
dGVudD0ibG9uZyI+CiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9z
Y3JpcHQ+CiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9z
Y3JpcHQ+CiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy9XZWJJRExQYXJzZXIuanMiPjwvc2NyaXB0
PgpAQCAtNDEsNyArNDAsNyBAQCBwcm9taXNlX3Rlc3QoYXN5bmMgKHQpID0+IHsKICAgICAgIHQs
ICdyZXNvdXJjZXMvZW1wdHktd29ya2VyLmpzJywgc2NvcGUpCiAgICAgLnRoZW4oZnVuY3Rpb24o
cmVnaXN0cmF0aW9uKSB7CiAgICAgICAgIHQuYWRkX2NsZWFudXAoZnVuY3Rpb24oKSB7Ci0gICAg
ICAgICAgICByZXR1cm4gcmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIoKTsKKyAgICAgICAgICAgIHJl
Z2lzdHJhdGlvbi51bnJlZ2lzdGVyKCk7CiAgICAgICAgICAgfSk7CiAKICAgICAgICAgd2luZG93
LnJlZ2lzdHJhdGlvbkluc3RhbmNlID0gcmVnaXN0cmF0aW9uOwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvaW52YWxpZC1ibG9idHlwZS5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvaW52YWxpZC1ibG9idHlwZS5odHRwcy5odG1sCmluZGV4IDFjNTkyMGZiMDM5MTAxYjE4ZmMz
YzM5ZTUzZjdjYmI5YjVlMWViZmMuLmI5OTQ4NTljMWM2ZTMyZjNmYzJhODQzMGVmM2JkZWM4MjM0
MjkyMjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ludmFsaWQtYmxvYnR5cGUuaHR0
cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9pbnZhbGlkLWJsb2J0eXBlLmh0dHBzLmh0
bWwKQEAgLTUsMzYgKzUsMjYgQEAKIDxzY3JpcHQgc3JjPSIvY29tbW9uL2dldC1ob3N0LWluZm8u
c3ViLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGVzdC1oZWxwZXJzLnN1
Yi5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgotcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKK2Fz
eW5jX3Rlc3QoZnVuY3Rpb24odCkgewogICAgIHZhciBTQ09QRSA9ICdyZXNvdXJjZXMvaW52YWxp
ZC1ibG9idHlwZS1pZnJhbWUuaHR0cHMuaHRtbCc7CiAgICAgdmFyIFNDUklQVCA9ICdyZXNvdXJj
ZXMvaW52YWxpZC1ibG9idHlwZS13b3JrZXIuanMnOwogICAgIHZhciBob3N0X2luZm8gPSBnZXRf
aG9zdF9pbmZvKCk7Ci0gICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3Jl
Z2lzdGVyKHQsIFNDUklQVCwgU0NPUEUpCisgICAgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9h
bmRfcmVnaXN0ZXIodCwgU0NSSVBULCBTQ09QRSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKHJlZ2lz
dHJhdGlvbikgewotICAgICAgICAgIHQuYWRkX2NsZWFudXAoZnVuY3Rpb24oKSB7Ci0gICAgICAg
ICAgICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyKHQsIFNDT1BFKTsKLSAgICAg
ICAgICAgIH0pOwotCiAgICAgICAgICAgcmV0dXJuIHdhaXRfZm9yX3N0YXRlKHQsIHJlZ2lzdHJh
dGlvbi5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7CiAgICAgICAgIH0pCiAgICAgICAudGhlbihm
dW5jdGlvbigpIHsgcmV0dXJuIHdpdGhfaWZyYW1lKFNDT1BFKTsgfSkKICAgICAgIC50aGVuKGZ1
bmN0aW9uKGZyYW1lKSB7Ci0gICAgICAgICAgdC5hZGRfY2xlYW51cChmdW5jdGlvbigpIHsKLSAg
ICAgICAgICAgICAgZnJhbWUucmVtb3ZlKCk7Ci0gICAgICAgICAgICB9KTsKLQogICAgICAgICAg
IHZhciBjaGFubmVsID0gbmV3IE1lc3NhZ2VDaGFubmVsKCk7Ci0gICAgICAgICAgdmFyIG9uTXNn
ID0gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSkgewotICAgICAgICAgICAgICBjaGFubmVs
LnBvcnQxLm9ubWVzc2FnZSA9IHJlc29sdmU7CisgICAgICAgICAgY2hhbm5lbC5wb3J0MS5vbm1l
c3NhZ2UgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICAgIGFzc2VydF9l
cXVhbHMoZS5kYXRhLnJlc3VsdHMsICdmaW5pc2gnKTsKKyAgICAgICAgICAgICAgZnJhbWUucmVt
b3ZlKCk7CisgICAgICAgICAgICAgIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX2RvbmUo
dCwgU0NPUEUpOwogICAgICAgICAgICAgfSk7Ci0KICAgICAgICAgICBmcmFtZS5jb250ZW50V2lu
ZG93LnBvc3RNZXNzYWdlKHt9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaG9zdF9pbmZvWydIVFRQU19PUklHSU4nXSwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFtjaGFubmVsLnBvcnQyXSk7Ci0gICAgICAgICAgcmV0dXJuIG9u
TXNnOwogICAgICAgICB9KQotICAgICAgLnRoZW4oZnVuY3Rpb24oZSkgewotICAgICAgICAgIGFz
c2VydF9lcXVhbHMoZS5kYXRhLnJlc3VsdHMsICdmaW5pc2gnKTsKLSAgICAgICAgfSk7CisgICAg
ICAuY2F0Y2godW5yZWFjaGVkX3JlamVjdGlvbih0KSk7CiAgIH0sICdWZXJpZnkgdGhlIHJlc3Bv
bnNlIG9mIEZldGNoRXZlbnQgdXNpbmcgWE1MSHR0cFJlcXVlc3QnKTsKIDwvc2NyaXB0PgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvaW52YWxpZC1oZWFkZXIuaHR0cHMuaHRtbCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL2ludmFsaWQtaGVhZGVyLmh0dHBzLmh0bWwKaW5kZXggMWJjOTc2OTc5
MDQ2YzEyN2FkM2QyZjQyODJjZTI5N2U5OTdiOTAzZC4uMDI1NmEzYTRjMTU4MmJkNTA1MjNkYjU3
NTBiYjI2NTliODE1OGExYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvaW52YWxpZC1o
ZWFkZXIuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9pbnZhbGlkLWhlYWRlci5o
dHRwcy5odG1sCkBAIC01LDM1ICs1LDI2IEBACiA8c2NyaXB0IHNyYz0iL2NvbW1vbi9nZXQtaG9z
dC1pbmZvLnN1Yi5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Rlc3QtaGVs
cGVycy5zdWIuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KLXByb21pc2VfdGVzdChmdW5jdGlvbih0
KSB7Cithc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICB2YXIgU0NPUEUgPSAncmVzb3VyY2Vz
L2ludmFsaWQtaGVhZGVyLWlmcmFtZS5odHRwcy5odG1sJzsKICAgICB2YXIgU0NSSVBUID0gJ3Jl
c291cmNlcy9pbnZhbGlkLWhlYWRlci13b3JrZXIuanMnOwogICAgIHZhciBob3N0X2luZm8gPSBn
ZXRfaG9zdF9pbmZvKCk7Ci0gICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5k
X3JlZ2lzdGVyKHQsIFNDUklQVCwgU0NPUEUpCisgICAgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rl
cl9hbmRfcmVnaXN0ZXIodCwgU0NSSVBULCBTQ09QRSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKHJl
Z2lzdHJhdGlvbikgewotICAgICAgICAgIHQuYWRkX2NsZWFudXAoZnVuY3Rpb24oKSB7Ci0gICAg
ICAgICAgICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyKHQsIFNDT1BFKTsKLSAg
ICAgICAgICAgIH0pOwotCiAgICAgICAgICAgcmV0dXJuIHdhaXRfZm9yX3N0YXRlKHQsIHJlZ2lz
dHJhdGlvbi5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7CiAgICAgICAgIH0pCiAgICAgICAudGhl
bihmdW5jdGlvbigpIHsgcmV0dXJuIHdpdGhfaWZyYW1lKFNDT1BFKTsgfSkKICAgICAgIC50aGVu
KGZ1bmN0aW9uKGZyYW1lKSB7Ci0gICAgICAgICAgdC5hZGRfY2xlYW51cChmdW5jdGlvbigpIHsK
LSAgICAgICAgICAgICAgZnJhbWUucmVtb3ZlKCk7Ci0gICAgICAgICAgICB9KTsKLQogICAgICAg
ICAgIHZhciBjaGFubmVsID0gbmV3IE1lc3NhZ2VDaGFubmVsKCk7Ci0gICAgICAgICAgdmFyIG9u
TXNnID0gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSkgewotICAgICAgICAgICAgICBjaGFu
bmVsLnBvcnQxLm9ubWVzc2FnZSA9IHJlc29sdmU7CisgICAgICAgICAgY2hhbm5lbC5wb3J0MS5v
bm1lc3NhZ2UgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICAgIGFzc2Vy
dF9lcXVhbHMoZS5kYXRhLnJlc3VsdHMsICdmaW5pc2gnKTsKKyAgICAgICAgICAgICAgZnJhbWUu
cmVtb3ZlKCk7CisgICAgICAgICAgICAgIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX2Rv
bmUodCwgU0NPUEUpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgICAgZnJhbWUuY29udGVudFdp
bmRvdy5wb3N0TWVzc2FnZSh7fSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGhvc3RfaW5mb1snSFRUUFNfT1JJR0lOJ10sCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBbY2hhbm5lbC5wb3J0Ml0pOwotICAgICAgICAgIHJldHVybiBv
bk1zZzsKICAgICAgICAgfSkKLSAgICAgIC50aGVuKGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICBh
c3NlcnRfZXF1YWxzKGUuZGF0YS5yZXN1bHRzLCAnZmluaXNoJyk7Ci0gICAgICAgIH0pOworICAg
ICAgLmNhdGNoKHVucmVhY2hlZF9yZWplY3Rpb24odCkpOwogICB9LCAnVmVyaWZ5IHRoZSByZXNw
b25zZSBvZiBGZXRjaEV2ZW50IHVzaW5nIFhNTEh0dHBSZXF1ZXN0Jyk7CiA8L3NjcmlwdD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2lzby1sYXRpbjEtaGVhZGVyLmh0dHBzLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9pc28tbGF0aW4xLWhlYWRlci5odHRwcy5odG1sCmluZGV4IGMy
N2E1ZjQ4YTViOWU5Mzg0YTVjOTEyOWQwMjg4NzYxYjBkZjljZDcuLmFkMGFiNTljNzc1NmU3ZDlk
MDhlZmIwMzUzNjI4MDQ1NjUxYTU5MGMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2lz
by1sYXRpbjEtaGVhZGVyLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvaXNvLWxh
dGluMS1oZWFkZXIuaHR0cHMuaHRtbApAQCAtNSwxNiArNSwxMiBAQAogPHNjcmlwdCBzcmM9Ii9j
b21tb24vZ2V0LWhvc3QtaW5mby5zdWIuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9InJlc291
cmNlcy90ZXN0LWhlbHBlcnMuc3ViLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+Ci1wcm9taXNlX3Rl
c3QoZnVuY3Rpb24odCkgeworYXN5bmNfdGVzdChmdW5jdGlvbih0KSB7CiAgICAgdmFyIFNDT1BF
ID0gJ3Jlc291cmNlcy9pc28tbGF0aW4xLWhlYWRlci1pZnJhbWUuaHRtbCc7CiAgICAgdmFyIFND
UklQVCA9ICdyZXNvdXJjZXMvaXNvLWxhdGluMS1oZWFkZXItd29ya2VyLmpzJzsKICAgICB2YXIg
aG9zdF9pbmZvID0gZ2V0X2hvc3RfaW5mbygpOwotICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91
bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCBTQ1JJUFQsIFNDT1BFKQorICAgIHNlcnZpY2Vfd29y
a2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIFNDUklQVCwgU0NPUEUpCiAgICAgICAudGhl
bihmdW5jdGlvbihyZWdpc3RyYXRpb24pIHsKLSAgICAgICAgICB0LmFkZF9jbGVhbnVwKGZ1bmN0
aW9uKCkgewotICAgICAgICAgICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcih0
LCBTQ09QRSk7Ci0gICAgICAgICAgICB9KTsKLQogICAgICAgICAgIHJldHVybiB3YWl0X2Zvcl9z
dGF0ZSh0LCByZWdpc3RyYXRpb24uaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOwogICAgICAgICB9
KQogICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7IHJldHVybiB3aXRoX2lmcmFtZShTQ09QRSk7IH0p
CkBAIC0yMywxOCArMTksMTQgQEAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICAgICAg
ICB0LmFkZF9jbGVhbnVwKGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICBmcmFtZS5yZW1vdmUo
KTsKICAgICAgICAgICAgIH0pOwotCi0gICAgICAgICAgdmFyIG9uTXNnID0gbmV3IFByb21pc2Uo
ZnVuY3Rpb24ocmVzb2x2ZSkgewotICAgICAgICAgICAgICBjaGFubmVsLnBvcnQxLm9ubWVzc2Fn
ZSA9IHJlc29sdmU7CisgICAgICAgICAgY2hhbm5lbC5wb3J0MS5vbm1lc3NhZ2UgPSB0LnN0ZXBf
ZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS5kYXRhLnJl
c3VsdHMsICdmaW5pc2gnKTsKKyAgICAgICAgICAgICAgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rl
cl9hbmRfZG9uZSh0LCBTQ09QRSk7CiAgICAgICAgICAgICB9KTsKLQogICAgICAgICAgIGZyYW1l
LmNvbnRlbnRXaW5kb3cucG9zdE1lc3NhZ2Uoe30sCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBob3N0X2luZm9bJ0hUVFBTX09SSUdJTiddLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NoYW5uZWwucG9ydDJdKTsKLSAgICAgICAg
ICByZXR1cm4gb25Nc2c7CiAgICAgICAgIH0pCi0gICAgICAudGhlbihmdW5jdGlvbihlKSB7Ci0g
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLmRhdGEucmVzdWx0cywgJ2ZpbmlzaCcpOwotICAgICAg
ICB9KTsKKyAgICAgIC5jYXRjaCh1bnJlYWNoZWRfcmVqZWN0aW9uKHQpKTsKICAgfSwgJ1Zlcmlm
eSB0aGUgcmVzcG9uc2Ugb2YgRmV0Y2hFdmVudCB1c2luZyBYTUxIdHRwUmVxdWVzdCcpOwogPC9z
Y3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9tdWx0aXBsZS11cGRhdGUuaHR0
cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL211bHRpcGxlLXVwZGF0ZS5odHRwcy5odG1sCmlu
ZGV4IDZhODNmNzNhMDU0ZjhhNTAyODRhZTliNTViYmE5Y2RlNGQ3NGMxMDguLjg0YWFjOTU4M2I5
MGIxY2FhOGYwOGI2MzZiOTk5NDk0MjMwNGVmZWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL211bHRpcGxlLXVwZGF0ZS5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL211
bHRpcGxlLXVwZGF0ZS5odHRwcy5odG1sCkBAIC0xNSwxMCArMTUsNiBAQCBwcm9taXNlX3Rlc3Qo
ZnVuY3Rpb24odCkgewogCiAgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5k
X3JlZ2lzdGVyKHQsIGV4cGVjdGVkX3VybCwgc2NvcGUpCiAgICAgICAudGhlbihmdW5jdGlvbihy
KSB7Ci0gICAgICAgICAgdC5hZGRfY2xlYW51cChmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAg
cmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXIodCwgc2NvcGUpOwotICAgICAgICAgICAg
fSk7Ci0KICAgICAgICAgICByZWdpc3RyYXRpb24gPSByOwogICAgICAgICAgIHJldHVybiB3YWl0
X2Zvcl9zdGF0ZSh0LCByZWdpc3RyYXRpb24uaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOwogICAg
ICAgICB9KQpAQCAtODksNiArODUsOCBAQCBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewogICAg
ICAgICAgICAgICAgICAgICAgICAgJ3dhaXRpbmcgc2hvdWxkIGJlIG51bGwgYWZ0ZXIgYWN0aXZh
dGVkLicpOwogICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVnaXN0cmF0aW9uLmFjdGl2ZS5zY3Jp
cHRVUkwsIGV4cGVjdGVkX3VybCwKICAgICAgICAgICAgICAgICAgICAgICAgICdhY3RpdmUgc2hv
dWxkIHN0aWxsIGV4aXN0IGFmdGVyIHVwZGF0ZSBmb3VuZC4nKTsKKworICAgICAgICAgIHJldHVy
biBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9kb25lKHQsIHNjb3BlKTsKICAgICAgICAg
fSk7CiAgIH0sICdUcmlnZ2VyIG11bHRpcGxlIHVwZGF0ZXMuJyk7CiA8L3NjcmlwdD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL25hdmlnYXRpb24tcmVkaXJlY3QuaHR0cHMuaHRtbCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL25hdmlnYXRpb24tcmVkaXJlY3QuaHR0cHMuaHRtbAppbmRleCBk
N2QzZDUyNTlhNDU0ZDkyM2QxZTg5MDA0ZmNmNTVjZTdlMmU2YmRhLi4wZjFkMzc3YTU3Y2ZjMDc4
MjEyY2MwYTA2OWQwMjgwZjg4MWI1MjYyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9u
YXZpZ2F0aW9uLXJlZGlyZWN0Lmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvbmF2
aWdhdGlvbi1yZWRpcmVjdC5odHRwcy5odG1sCkBAIC0xLDExICsxLDYgQEAKIDwhRE9DVFlQRSBo
dG1sPgogPHRpdGxlPlNlcnZpY2UgV29ya2VyOiBOYXZpZ2F0aW9uIHJlZGlyZWN0aW9uPC90aXRs
ZT4KIDxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciPgotPCEtLSBlbXB0eSB2YXJp
YW50IHRlc3RzIGRvY3VtZW50LmxvY2F0aW9uIGFuZCBpbnRlcmNlcHRlZCBVUkxzIC0tPgotPG1l
dGEgbmFtZT0idmFyaWFudCIgY29udGVudD0iIj4KLTwhLS0gY2xpZW50IHZhcmlhbnQgdGVzdHMg
dGhlIENsaWVudHMgQVBJIChyZXN1bHRpbmdDbGllbnRJZCBhbmQgQ2xpZW50LnVybCkgLS0+Ci08
bWV0YSBuYW1lPSJ2YXJpYW50IiBjb250ZW50PSI/Y2xpZW50Ij4KLQogPHNjcmlwdCBzcmM9Ii9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii9jb21tb24v
Z2V0LWhvc3QtaW5mby5zdWIuanMiPjwvc2NyaXB0PgpAQCAtNTUsNyArNTAsNyBAQCBwcm9taXNl
X3Rlc3QoYXN5bmMgdCAgPT4gewogICAgICAgd2FpdF9mb3Jfc3RhdGUodCwgd29ya2Vyc1sxXSwg
J2FjdGl2YXRlZCcpLAogICAgICAgLy8gVGhpcyBwcm9taXNlIHdpbGwgcmVzb2x2ZSB3aGVuIHx3
YWl0X2Zvcl93b3JrZXJfcHJvbWlzZXwKICAgICAgIC8vIGluIE9USEVSX09SSUdJTl9JRlJBTUVf
VVJMIHJlc29sdmVzLgotICAgICAgc2VuZF90b19pZnJhbWUob3RoZXJfb3JpZ2luX2ZyYW1lLCB7
Y29tbWFuZDogJ3dhaXRfZm9yX3dvcmtlcid9KV0pOworICAgICAgc2VuZF90b19pZnJhbWUob3Ro
ZXJfb3JpZ2luX2ZyYW1lLCAnd2FpdF9mb3Jfd29ya2VyJyldKTsKIH0sICdpbml0aWFsaXplIGds
b2JhbCBzdGF0ZScpOwogCiBmdW5jdGlvbiBnZXRfZWZmZWN0aXZlX3dvcmtlcihyZWdpc3RyYXRp
b24pIHsKQEAgLTcyLDIxNyArNjcsNDAgQEAgYXN5bmMgZnVuY3Rpb24gY2hlY2tfYWxsX2ludGVy
Y2VwdGVkX3VybHMoZXhwZWN0ZWRfdXJscykgewogICB1cmxzLnB1c2goYXdhaXQgZ2V0X2ludGVy
Y2VwdGVkX3VybHMod29ya2Vyc1swXSkpOwogICB1cmxzLnB1c2goYXdhaXQgZ2V0X2ludGVyY2Vw
dGVkX3VybHMod29ya2Vyc1sxXSkpOwogICAvLyBHZXRzIHRoZSByZXF1ZXN0IFVSTHMgd2hpY2gg
YXJlIGludGVyY2VwdGVkIGJ5IE9USEVSX09SSUdJTl9TQ09QRSdzCi0gIC8vIFNXLiBUaGlzIHBy
b21pc2Ugd2lsbCByZXNvbHZlIHdoZW4gZ2V0X3JlcXVlc3RfaW5mb3MoKSBpbgorICAvLyBTVy4g
VGhpcyBwcm9taXNlIHdpbGwgcmVzb2x2ZSB3aGVuIGdldF9pbnRlcmNlcHRlZF91cmxzKCkgaW4K
ICAgLy8gT1RIRVJfT1JJR0lOX0lGUkFNRV9VUkwgcmVzb2x2ZXMuCi0gIGNvbnN0IHJlcXVlc3Rf
aW5mb3MgPSBhd2FpdCBzZW5kX3RvX2lmcmFtZShvdGhlcl9vcmlnaW5fZnJhbWUsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Y29tbWFuZDogJ2dldF9yZXF1
ZXN0X2luZm9zJ30pOwotICB1cmxzLnB1c2gocmVxdWVzdF9pbmZvcy5tYXAoaW5mbyA9PiB7IHJl
dHVybiBpbmZvLnVybDsgfSkpOwotCisgIHVybHMucHVzaChhd2FpdCBzZW5kX3RvX2lmcmFtZShv
dGhlcl9vcmlnaW5fZnJhbWUsICdnZXRfaW50ZXJjZXB0ZWRfdXJscycpKTsKICAgYXNzZXJ0X29i
amVjdF9lcXVhbHModXJscywgZXhwZWN0ZWRfdXJscywgJ0ludGVyY2VwdGVkIFVSTHMgc2hvdWxk
IG1hdGNoLicpOwogfQogCi0vLyBDaGVja3MgfGNsaWVudHN8IHJldHVybmVkIGZyb20gYSB3b3Jr
ZXIuIE9ubHkgdGhlIGNsaWVudCBtYXRjaGluZwotLy8gfGV4cGVjdGVkX2ZpbmFsX2NsaWVudF90
YWd8IHNob3VsZCBiZSBmb3VuZC4gUmV0dXJucyB0cnVlIGlmIGEgY2xpZW50IHdhcwotLy8gZm91
bmQuIE5vdGUgdGhhdCB0aGUgZmluYWwgY2xpZW50IGlzIG5vdCBuZWNlc3NhcmlseSBmb3VuZCBi
eSB0aGlzIHdvcmtlciwKLS8vIGlmIHRoZSBjbGllbnQgaXMgY3Jvc3Mtb3JpZ2luLgotLy8KLS8v
IHxjbGllbnRzfCBpcyBhbiBvYmplY3QgbGlrZToKLS8vIHt4OiB7Zm91bmQ6IHRydWUsIGlkOiBp
ZDEsIHVybDogdXJsMX0sIGI6IHtmb3VuZDogZmFsc2V9fQotZnVuY3Rpb24gY2hlY2tfY2xpZW50
cyhjbGllbnRzLAotICAgICAgICAgICAgICAgICAgICAgICBleHBlY3RlZF9pZCwKLSAgICAgICAg
ICAgICAgICAgICAgICAgZXhwZWN0ZWRfdXJsLAotICAgICAgICAgICAgICAgICAgICAgICBleHBl
Y3RlZF9maW5hbF9jbGllbnRfdGFnLAotICAgICAgICAgICAgICAgICAgICAgICB3b3JrZXJfbmFt
ZSkgewotICBsZXQgZm91bmQgPSBmYWxzZTsKLSAgT2JqZWN0LmtleXMoY2xpZW50cykuZm9yRWFj
aChrZXkgPT4gewotICAgIGNvbnN0IGluZm8gPSBjbGllbnRzW2tleV07Ci0gICAgaWYgKGluZm8u
Zm91bmQpIHsKLSAgICAgIGFzc2VydF90cnVlKCEhZXhwZWN0ZWRfZmluYWxfY2xpZW50X3RhZywK
LSAgICAgICAgICAgICAgICAgIGAke3dvcmtlcl9uYW1lfSBjbGllbnQgdGFnIGV4aXN0c2ApOwot
ICAgICAgYXNzZXJ0X2VxdWFscyhrZXksIGV4cGVjdGVkX2ZpbmFsX2NsaWVudF90YWcsCi0gICAg
ICAgICAgICAgICAgICAgIGAke3dvcmtlcl9uYW1lfSBjbGllbnQgdGFnIG1hdGNoZXNgKTsKLSAg
ICAgIGFzc2VydF9lcXVhbHMoaW5mby5pZCwgZXhwZWN0ZWRfaWQsIGAke3dvcmtlcl9uYW1lfSBj
bGllbnQgaWRgKTsKLSAgICAgIGFzc2VydF9lcXVhbHMoaW5mby51cmwsIGV4cGVjdGVkX3VybCwg
YCR7d29ya2VyX25hbWV9IGNsaWVudCB1cmxgKTsKLSAgICAgIGZvdW5kID0gdHJ1ZTsKLSAgICB9
Ci0gIH0pOwotICByZXR1cm4gZm91bmQ7Ci19Ci0KLWZ1bmN0aW9uIGNoZWNrX3Jlc3VsdGluZ19j
bGllbnRfaWRzKGluZm9zLCBleHBlY3RlZF9pbmZvcywgYWN0dWFsX2lkcywgd29ya2VyKSB7Ci0g
IGFzc2VydF9lcXVhbHMoaW5mb3MubGVuZ3RoLCBleHBlY3RlZF9pbmZvcy5sZW5ndGgsCi0gICAg
ICAgICAgICAgICAgYHJlcXVlc3QgbGVuZ3RoIGZvciAke3dvcmtlcn1gKTsKLSAgZm9yICh2YXIg
aSA9IDA7IGkgPCBpbmZvcy5sZW5ndGg7IGkrKykgewotICAgIGNvbnN0IHRhZyA9IGV4cGVjdGVk
X2luZm9zW2ldLnJlc3VsdGluZ0NsaWVudElkVGFnOwotICAgIGNvbnN0IHVybCA9IGV4cGVjdGVk
X2luZm9zW2ldLnVybDsKLSAgICBjb25zdCBhY3R1YWxfaWQgPSBpbmZvc1tpXS5yZXN1bHRpbmdD
bGllbnRJZDsKLSAgICBjb25zdCBleHBlY3RlZF9pZCA9IGFjdHVhbF9pZHNbdGFnXTsKLSAgICBh
c3NlcnRfZXF1YWxzKHR5cGVvZihhY3R1YWxfaWQpLCAnc3RyaW5nJywKLSAgICAgICAgICAgICAg
ICAgIGByZXN1bHRpbmdDbGllbnRJZCBmb3IgJHt1cmx9IHJlcXVlc3QgdG8gJHt3b3JrZXJ9YCk7
Ci0gICAgaWYgKGV4cGVjdGVkX2lkKSB7Ci0gICAgICBhc3NlcnRfZXF1YWxzKGFjdHVhbF9pZCwg
ZXhwZWN0ZWRfaWQsCi0gICAgICAgICAgICAgICAgICAgIGByZXN1bHRpbmdDbGllbnRJZCBmb3Ig
JHt1cmx9IHJlcXVlc3QgdG8gJHt3b3JrZXJ9YCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgIGFjdHVh
bF9pZHNbdGFnXSA9IGFjdHVhbF9pZDsKLSAgICB9Ci0gIH0KLX0KLQogLy8gQ3JlYXRlcyBhbiBp
ZnJhbWUgYW5kIG5hdmlnYXRlcyB0byB8dXJsfCwgd2hpY2ggaXMgZXhwZWN0ZWQgdG8gc3RhcnQg
YSBjaGFpbgogLy8gb2YgcmVkaXJlY3RzLgogLy8gLSB8ZXhwZWN0ZWRfbGFzdF91cmx8IGlzIHRo
ZSBleHBlY3RlZCB3aW5kb3cubG9jYXRpb24gYWZ0ZXIgdGhlCiAvLyAgIG5hdmlnYXRpb24uCi0v
LwotLy8gLSB8ZXhwZWN0ZWRfcmVxdWVzdF9pbmZvc3wgaXMgdGhlIGV4cGVjdGVkIHJlcXVlc3Rz
IHRoYXQgdGhlIHNlcnZpY2Ugd29ya2VycwotLy8gICB3ZXJlIGRpc3BhdGNoZWQgZmV0Y2ggZXZl
bnRzIGZvci4gVGhlIGZvcm1hdCBpczoKKy8vIC0gfGV4cGVjdGVkX2ludGVyY2VwdGVkX3VybHN8
IGlzIHRoZSBleHBlY3RlZCBVUkxzIHRoYXQgdGhlIHNlcnZpY2UKKy8vICAgd29ya2VycyB3ZXJl
IGRpc3BhdGNoZWQgZmV0Y2ggZXZlbnRzIGZvci4gVGhlIGZvcm1hdCBpczoKIC8vICAgWwotLy8g
ICAgIFsKLS8vICAgICAgIC8vIFJlcXVlc3RzIHJlY2VpdmVkIGJ5IHdvcmtlcnNbMF0uCi0vLyAg
ICAgICB7dXJsOiB1cmwxLCByZXN1bHRpbmdDbGllbnRJZFRhZzogJ2EnfSwKLS8vICAgICAgIHt1
cmw6IHVybDIsIHJlc3VsdGluZ0NsaWVudElkVGFnOiAnYSd9Ci0vLyAgICAgXSwKLS8vICAgICBb
Ci0vLyAgICAgICAvLyBSZXF1ZXN0cyByZWNlaXZlZCBieSB3b3JrZXJzWzFdLgotLy8gICAgICAg
e3VybDogdXJsMywgcmVzdWx0aW5nQ2xpZW50SWRUYWc6ICdhJ30KLS8vICAgICBdLAotLy8gICAg
IFsKLS8vICAgICAgIC8vIFJlcXVlc3RzIHJlY2VpdmVkIGJ5IHRoZSBjcm9zcy1vcmlnaW4gd29y
a2VyLgotLy8gICAgICAge3VybDogdXJsNCwgcmVzdWx0aW5nQ2xpZW50SWRUYWc6ICd4J30KLS8v
ICAgICAgIHt1cmw6IHVybDUsIHJlc3VsdGluZ0NsaWVudElkVGFnOiAneCd9Ci0vLyAgICAgXQor
Ly8gICAgIFt1cmxzIGZyb20gd29ya2Vyc1swXV0sCisvLyAgICAgW3VybHMgZnJvbSB3b3JrZXJz
WzFdXSwKKy8vICAgICBbdXJscyBmcm9tIGNyb3NzLW9yaWdpbiB3b3JrZXJdCiAvLyAgIF0KLS8v
ICAgSGVyZSwgfHVybHwgaXMgfGV2ZW50LnJlcXVlc3QudXJsfCBhbmQgfHJlc3VsdGluZ0NsaWVu
dElkVGFnfCByZXByZXNlbnRzCi0vLyAgIHxldmVudC5yZXN1bHRpbmdDbGllbnRJZHwuIFNpbmNl
IHRoZSBhY3R1YWwgY2xpZW50IGlkcyBhcmUgbm90IGtub3duCi0vLyAgIGJlZm9yZWhhbmQsIHRo
ZSBleHBlY3RhdGlvbiBpc24ndCB0aGUgbGl0ZXJhbCBleHBlY3RlZCB2YWx1ZSwgYnV0IGFsbCBl
cXVhbAotLy8gICB0YWdzIG11c3QgbWFwIHRvIHRoZSBzYW1lIGFjdHVhbCBpZC4KLS8vCi0vLyAt
IHxleHBlY3RlZF9maW5hbF9jbGllbnRfdGFnfCBpcyB0aGUgcmVzdWx0aW5nQ2xpZW50SWRUYWcg
dGhhdCBpcwotLy8gICBleHBlY3RlZCB0byBtYXAgdG8gdGhlIGNyZWF0ZWQgY2xpZW50J3MgaWQu
IFRoaXMgaXMgbnVsbCBpZiB0aGVyZQotLy8gICBpcyBubyBzdWNoIHRhZywgd2hpY2ggY2FuIGhh
cHBlbiB3aGVuIHRoZSBmaW5hbCByZXF1ZXN0IHdhcyBhIGNyb3NzLW9yaWdpbgotLy8gICByZWRp
cmVjdCB0byBvdXQtc2NvcGUsIHNvIG5vIHdvcmtlciByZWNlaXZlZCBhIGZldGNoIGV2ZW50IHdo
b3NlCi0vLyAgIHJlc3VsdGluZ0NsaWVudElkIGlzIHRoZSBpZCBvZiB0aGUgcmVzdWx0aW5nIGNs
aWVudC4KLS8vCi0vLyBJbiB0aGUgZXhhbXBsZSBhYm92ZToKLS8vIC0gd29ya2Vyc1swXSByZWNl
aXZlcyB0d28gcmVxdWVzdHMgd2l0aCB0aGUgc2FtZSByZXN1bHRpbmdDbGllbnRJZC4KLS8vIC0g
d29ya2Vyc1sxXSByZWNlaXZlcyBvbmUgcmVxdWVzdCBhbHNvIHdpdGggdGhhdCByZXN1bHRpbmdD
bGllbnRJZC4KLS8vIC0gVGhlIGNyb3NzLW9yaWdpbiB3b3JrZXIgcmVjZWl2ZXMgdHdvIHJlcXVl
c3RzIHdpdGggdGhlIHNhbWUKLS8vICAgcmVzdWx0aW5nQ2xpZW50SWQgd2hpY2ggZGlmZmVycyBm
cm9tIHRoZSBwcmV2aW91cyBvbmUuCi0vLyAtIEFzc3VtaW5nIHxleHBlY3RlZF9maW5hbF9jbGll
bnRfdGFnfCBpcyAneCcsIHRoZW4gdGhlIGNyZWF0ZWQKLS8vICAgY2xpZW50IGhhcyB0aGUgaWQg
c2VlbiBieSB0aGUgY3Jvc3Mtb3JpZ2luIHdvcmtlciBhYm92ZS4KIGZ1bmN0aW9uIHJlZGlyZWN0
X3Rlc3QodXJsLAogICAgICAgICAgICAgICAgICAgICAgICBleHBlY3RlZF9sYXN0X3VybCwKLSAg
ICAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRfcmVxdWVzdF9pbmZvcywKLSAgICAgICAgICAg
ICAgICAgICAgICAgZXhwZWN0ZWRfZmluYWxfY2xpZW50X3RhZywKKyAgICAgICAgICAgICAgICAg
ICAgICAgZXhwZWN0ZWRfaW50ZXJjZXB0ZWRfdXJscywKICAgICAgICAgICAgICAgICAgICAgICAg
dGVzdF9uYW1lKSB7CiAgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICBjb25zdCBtZXNz
YWdlX3Byb21pc2UgPSBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHsKKyAgICAgICAgLy8gQSBtZXNz
YWdlIHdpdGggSUQgJ2xhc3RfdXJsJyB3aWxsIGJlIHNlbnQgZnJvbSB0aGUgaWZyYW1lLgorICAg
ICAgICBtZXNzYWdlX3Jlc29sdmVyc1snbGFzdF91cmwnXSA9IHJlc29sdmU7CisgICAgfSk7CiAg
ICAgY29uc3QgZnJhbWUgPSBhd2FpdCB3aXRoX2lmcmFtZSh1cmwpOwotICAgIHQuYWRkX2NsZWFu
dXAoKCkgPT4geyBmcmFtZS5yZW1vdmUoKTsgfSk7Ci0KLSAgICAvLyBTd2l0Y2ggb24gdmFyaWFu
dC4KLSAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24uc2VhcmNoID09ICc/Y2xpZW50JykgewotICAg
ICAgcmV0dXJuIGNsaWVudF92YXJpYW50X3Rlc3QodXJsLCBleHBlY3RlZF9sYXN0X3VybCwgZXhw
ZWN0ZWRfcmVxdWVzdF9pbmZvcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4
cGVjdGVkX2ZpbmFsX2NsaWVudF90YWcsIHRlc3RfbmFtZSk7Ci0gICAgfQotCi0gICAgcmV0dXJu
IGRlZmF1bHRfdmFyaWFudF90ZXN0KHVybCwgZXhwZWN0ZWRfbGFzdF91cmwsIGV4cGVjdGVkX3Jl
cXVlc3RfaW5mb3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyYW1lLCB0ZXN0
X25hbWUpOworICAgIGZyYW1lLnJlbW92ZSgpOworICAgIGF3YWl0IGNoZWNrX2FsbF9pbnRlcmNl
cHRlZF91cmxzKGV4cGVjdGVkX2ludGVyY2VwdGVkX3VybHMpOworICAgIGNvbnN0IGxhc3RfdXJs
ID0gYXdhaXQgbWVzc2FnZV9wcm9taXNlOworICAgIGFzc2VydF9lcXVhbHMobGFzdF91cmwsIGV4
cGVjdGVkX2xhc3RfdXJsLCAnTGFzdCBVUkwgc2hvdWxkIG1hdGNoLicpOwogICB9LCB0ZXN0X25h
bWUpOwogfQogCi0vLyBUaGUgZGVmYXVsdCB2YXJpYW50IHRlc3RzIHRoZSByZXF1ZXN0IGludGVy
Y2VwdGlvbiBjaGFpbiBhbmQKLS8vIHJlc3VsdGluZyBkb2N1bWVudC5sb2NhdGlvbi4KLWFzeW5j
IGZ1bmN0aW9uIGRlZmF1bHRfdmFyaWFudF90ZXN0KHVybCwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGV4cGVjdGVkX2xhc3RfdXJsLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZXhwZWN0ZWRfcmVxdWVzdF9pbmZvcywKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGZyYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdGVzdF9uYW1lKSB7Ci0gIGNvbnN0IGV4cGVjdGVkX2ludGVyY2VwdGVkX3VybHMgPSBl
eHBlY3RlZF9yZXF1ZXN0X2luZm9zLm1hcCgKLSAgICAgIHJlcXVlc3RzX2Zvcl93b3JrZXIgPT4g
ewotICAgIHJldHVybiByZXF1ZXN0c19mb3Jfd29ya2VyLm1hcChpbmZvID0+IHsKLSAgICAgIHJl
dHVybiBpbmZvLnVybDsKLSAgICB9KTsKLSAgfSk7Ci0gIGF3YWl0IGNoZWNrX2FsbF9pbnRlcmNl
cHRlZF91cmxzKGV4cGVjdGVkX2ludGVyY2VwdGVkX3VybHMpOwotICBjb25zdCBsYXN0X3VybCA9
IGF3YWl0IHNlbmRfdG9faWZyYW1lKGZyYW1lLCAnZ2V0TG9jYXRpb24nKTsKLSAgYXNzZXJ0X2Vx
dWFscyhsYXN0X3VybCwgZXhwZWN0ZWRfbGFzdF91cmwsICdMYXN0IFVSTCBzaG91bGQgbWF0Y2gu
Jyk7Ci19Ci0KLS8vIFRoZSAiY2xpZW50IiB2YXJpYW50IHRlc3RzIHRoZSBDbGllbnRzIEFQSSB1
c2luZyByZXN1bHRpbmdDbGllbnRJZC4KLWFzeW5jIGZ1bmN0aW9uIGNsaWVudF92YXJpYW50X3Rl
c3QodXJsLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBlY3RlZF9sYXN0
X3VybCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRfcmVxdWVz
dF9pbmZvcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRfZmlu
YWxfY2xpZW50X3RhZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9u
YW1lKSB7Ci0gIC8vIFJlcXVlc3QgaW5mb3MgaXMgYW4gYXJyYXkgbGlrZToKLSAgLy8gWwotICAv
LyAgIFt7dXJsOiB1cmwxLCByZXN1bHRpbmdDbGllbnRJZFRhZzogdGFnMX1dLAotICAvLyAgIFt7
dXJsOiB1cmwyLCByZXN1bHRpbmdDbGllbnRJZFRhZzogdGFnMn1dLAotICAvLyAgIFt7dXJsOiB1
cmwzOiByZXN1bHRpbmdDbGllbnRJZFRhZzogdGFnM31dCi0gIC8vIF0KLSAgY29uc3QgcmVxdWVz
dEluZm9zID0gYXdhaXQgZ2V0X2FsbF9yZXF1ZXN0X2luZm9zKCk7Ci0KLSAgLy8gV2UgY2hlY2sg
dGhlIGFjdHVhbCBpbmZvcyBhZ2FpbnN0IHRoZSBleHBlY3RlZCBvbmVzLCBhbmQgbGVhcm4gdGhl
Ci0gIC8vIGFjdHVhbCBpZHMgYXMgd2UgZ28uCi0gIGNvbnN0IGFjdHVhbF9pZHMgPSB7fTsKLSAg
Y2hlY2tfcmVzdWx0aW5nX2NsaWVudF9pZHMocmVxdWVzdEluZm9zWzBdLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBleHBlY3RlZF9yZXF1ZXN0X2luZm9zWzBdLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBhY3R1YWxfaWRzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAnd29ya2VyMCcpOwotICBjaGVja19yZXN1bHRpbmdfY2xpZW50X2lkcyhyZXF1ZXN0SW5mb3Nb
MV0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkX3JlcXVlc3RfaW5mb3Nb
MV0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdHVhbF9pZHMsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICd3b3JrZXIxJyk7Ci0gIGNoZWNrX3Jlc3VsdGluZ19jbGllbnRf
aWRzKHJlcXVlc3RJbmZvc1syXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwZWN0
ZWRfcmVxdWVzdF9pbmZvc1syXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0dWFs
X2lkcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Nyb3NzT3JpZ2luV29ya2VyJyk7
Ci0KLSAgLy8gTm93IHxhY3R1YWxfaWRzfCBtYXBzIHRhZyB0byBhY3R1YWwgaWQ6Ci0gIC8vIHt4
OiBpZDEsIGI6IGlkMiwgYzogaWQzfQotICAvLyBBc2sgZWFjaCB3b3JrZXIgdG8gdHJ5IHRvIHJl
c29sdmUgdGhlIGFjdHVhbCBpZHMgdG8gY2xpZW50cy4KLSAgLy8gT25seSB8ZXhwZWN0ZWRfZmlu
YWxfY2xpZW50X3RhZ3wgc2hvdWxkIHJlc29sdmUgdG8gYSBjbGllbnQuCi0gIGNvbnN0IGNsaWVu
dF9pbmZvcyA9IGF3YWl0IGdldF9hbGxfY2xpZW50cyhhY3R1YWxfaWRzKTsKLQotICAvLyBDbGll
bnQgaW5mb3MgaXMgYW4gb2JqZWN0IGxpa2U6Ci0gIC8vIHsKLSAgLy8gICB3b3JrZXIwOiB7eDog
e2ZvdW5kOiB0cnVlLCBpZDogaWQxLCB1cmw6IHVybDF9LCBiOiB7Zm91bmQ6IGZhbHNlfX0sCi0g
IC8vICAgd29ya2VyMToge3g6IHtmb3VuZDogdHJ1ZSwgaWQ6IGlkMSwgdXJsOiB1cmwxfX0sCi0g
IC8vICAgY3Jvc3NPcmlnaW5Xb3JrZXI6IHt4OiB7Zm91bmQ6IGZhbHNlfX0sIHtiOiB7Zm91bmQ6
IGZhbHNlfX0KLSAgLy8gfQotICAvLwotICAvLyBOb3cgY2hlY2sgZWFjaCBjbGllbnQgaW5mby4g
Y2hlY2tfY2xpZW50cygpIHZlcmlmaWVzIGVhY2ggaW5mbzogb25seQotICAvLyB8ZXhwZWN0ZWRf
ZmluYWxfY2xpZW50X3RhZ3wgc2hvdWxkIGV2ZXIgYmUgZm91bmQgYW5kIHRoZSBmb3VuZCBjbGll
bnQKLSAgLy8gc2hvdWxkIGhhdmUgdGhlIGV4cGVjdGVkIHVybCBhbmQgaWQuIEEgd3JpbmtsZSBp
cyB0aGF0IG5vdCBhbGwgd29ya2VycwotICAvLyB3aWxsIGZpbmQgdGhlIGNsaWVudCwgaWYgdGhl
eSBhcmUgY3Jvc3Mtb3JpZ2luIHRvIHRoZSBjbGllbnQuIFRoaXMKLSAgLy8gbWVhbnMgY2hlY2tf
Y2xpZW50cygpIHRyaXZpYWxseSBwYXNzZXMgaWYgbm8gY2xpZW50cyBhcmUgZm91bmQuIFNvCi0g
IC8vIGFkZGl0aW9uYWxseSBjaGVjayB0aGF0IGF0IGxlYXN0IG9uZSB3b3JrZXIgZm91bmQgdGhl
IGNsaWVudCAofGZvdW5kfCksCi0gIC8vIGlmIHRoYXQgd2FzIGV4cGVjdGVkICh8ZXhwZWN0X2Zv
dW5kfCkuCi0gIGxldCBmb3VuZCA9IGZhbHNlOwotICBjb25zdCBleHBlY3RfZm91bmQgPSAhIWV4
cGVjdGVkX2ZpbmFsX2NsaWVudF90YWc7Ci0gIGNvbnN0IGV4cGVjdGVkX2lkID0gYWN0dWFsX2lk
c1tleHBlY3RlZF9maW5hbF9jbGllbnRfdGFnXTsKLSAgZm91bmQgPSBjaGVja19jbGllbnRzKGNs
aWVudF9pbmZvcy53b3JrZXIwLAotICAgICAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRfaWQs
Ci0gICAgICAgICAgICAgICAgICAgICAgICBleHBlY3RlZF9sYXN0X3VybCwKLSAgICAgICAgICAg
ICAgICAgICAgICAgIGV4cGVjdGVkX2ZpbmFsX2NsaWVudF90YWcsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAnd29ya2VyMCcpOwotICBmb3VuZCA9IGNoZWNrX2NsaWVudHMoY2xpZW50X2luZm9z
LndvcmtlcjEsCi0gICAgICAgICAgICAgICAgICAgICAgICBleHBlY3RlZF9pZCwKLSAgICAgICAg
ICAgICAgICAgICAgICAgIGV4cGVjdGVkX2xhc3RfdXJsLAotICAgICAgICAgICAgICAgICAgICAg
ICAgZXhwZWN0ZWRfZmluYWxfY2xpZW50X3RhZywKLSAgICAgICAgICAgICAgICAgICAgICAgICd3
b3JrZXIxJykgfHwgZm91bmQ7Ci0gIGZvdW5kID0gY2hlY2tfY2xpZW50cyhjbGllbnRfaW5mb3Mu
Y3Jvc3NPcmlnaW5Xb3JrZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICBleHBlY3RlZF9pZCwK
LSAgICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkX2xhc3RfdXJsLAotICAgICAgICAgICAg
ICAgICAgICAgICAgZXhwZWN0ZWRfZmluYWxfY2xpZW50X3RhZywKLSAgICAgICAgICAgICAgICAg
ICAgICAgICdjcm9zc09yaWdpbldvcmtlcicpIHx8IGZvdW5kOwotICBhc3NlcnRfZXF1YWxzKGZv
dW5kLCBleHBlY3RfZm91bmQsICdjbGllbnQgZm91bmQnKTsKLQotICBpZiAoIWV4cGVjdF9mb3Vu
ZCkgewotICAgIC8vIFRPRE8oZmFsa2VuKTogQXNrIHRoZSBvdGhlciBvcmlnaW4gZnJhbWUgaWYg
aXQgaGFzIGEgY2xpZW50IG9mIHRoZQotICAgIC8vIGV4cGVjdGVkIFVSTC4KLSAgfQotfQotCiB3
aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIG9uX21lc3NhZ2UsIGZhbHNlKTsKIAog
ZnVuY3Rpb24gb25fbWVzc2FnZShlKSB7CkBAIC0zMDEsNTM2ICsxMTksMjk3IEBAIGZ1bmN0aW9u
IHNlbmRfdG9faWZyYW1lKGZyYW1lLCBtZXNzYWdlKSB7CiAgIHJldHVybiBuZXcgUHJvbWlzZShy
ZXNvbHZlID0+IHsKICAgICBtZXNzYWdlX3Jlc29sdmVyc1ttZXNzYWdlX2lkXSA9IHJlc29sdmU7
CiAgICAgZnJhbWUuY29udGVudFdpbmRvdy5wb3N0TWVzc2FnZSgKLSAgICAgICAge2lkOiBtZXNz
YWdlX2lkLCBtZXNzYWdlfSwKLSAgICAgICAgJyonKTsKLSAgfSk7Ci19Ci0KLWFzeW5jIGZ1bmN0
aW9uIGdldF9hbGxfY2xpZW50cyhhY3R1YWxfaWRzKSB7Ci0gIGNvbnN0IGNsaWVudF9pbmZvcyA9
IHt9OwotICBjbGllbnRfaW5mb3NbJ3dvcmtlcjAnXSA9IGF3YWl0IGdldF9jbGllbnRzKHdvcmtl
cnNbMF0sIGFjdHVhbF9pZHMpOwotICBjbGllbnRfaW5mb3NbJ3dvcmtlcjEnXSA9IGF3YWl0IGdl
dF9jbGllbnRzKHdvcmtlcnNbMV0sIGFjdHVhbF9pZHMpOwotICBjbGllbnRfaW5mb3NbJ2Nyb3Nz
T3JpZ2luV29ya2VyJ10gPQotICAgICAgYXdhaXQgc2VuZF90b19pZnJhbWUob3RoZXJfb3JpZ2lu
X2ZyYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAge2NvbW1hbmQ6ICdnZXRfY2xpZW50
cycsIGFjdHVhbF9pZHN9KTsKLSAgcmV0dXJuIGNsaWVudF9pbmZvczsKLX0KLQotZnVuY3Rpb24g
Z2V0X2NsaWVudHMod29ya2VyLCBhY3R1YWxfaWRzKSB7Ci0gIHJldHVybiBuZXcgUHJvbWlzZShy
ZXNvbHZlID0+IHsKLSAgICB2YXIgY2hhbm5lbCA9IG5ldyBNZXNzYWdlQ2hhbm5lbCgpOwotICAg
IGNoYW5uZWwucG9ydDEub25tZXNzYWdlID0gKG1zZykgPT4gewotICAgICAgcmVzb2x2ZShtc2cu
ZGF0YS5jbGllbnRzKTsKLSAgICB9OwotICAgIHdvcmtlci5wb3N0TWVzc2FnZSh7Y29tbWFuZDog
J2dldENsaWVudHMnLCBhY3R1YWxfaWRzLCBwb3J0OiBjaGFubmVsLnBvcnQyfSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgW2NoYW5uZWwucG9ydDJdKTsKKyAgICAgICAge2lkOiBtZXNzYWdlX2lk
LCBtZXNzYWdlOiBtZXNzYWdlfSwKKyAgICAgICAgaG9zdF9pbmZvWydIVFRQU19SRU1PVEVfT1JJ
R0lOJ10pOwogICB9KTsKIH0KIAotLy8gUmV0dXJucyBhbiBhcnJheSBvZiB0aGUgVVJMcyB0aGF0
IHx3b3JrZXJ8IHJlY2VpdmVkIGZldGNoIGV2ZW50cyBmb3I6Ci0vLyAgIFt1cmwxLCB1cmwyXQot
YXN5bmMgZnVuY3Rpb24gZ2V0X2ludGVyY2VwdGVkX3VybHMod29ya2VyKSB7Ci0gIGNvbnN0IGlu
Zm9zID0gYXdhaXQgZ2V0X3JlcXVlc3RfaW5mb3Mod29ya2VyKTsKLSAgcmV0dXJuIGluZm9zLm1h
cChpbmZvID0+IHsgcmV0dXJuIGluZm8udXJsOyB9KTsKLX0KLQotLy8gUmV0dXJucyB0aGUgcmVx
dWVzdHMgdGhhdCB8d29ya2VyfCByZWNlaXZlZCBmZXRjaCBldmVudHMgZm9yLiBUaGUgcmV0dXJu
Ci0vLyB2YWx1ZSBpcyBhbiBhcnJheSBvZiBmb3JtYXQ6Ci0vLyBbCi0vLyAgIHt1cmw6IHVybDEs
IHJlc3VsdGluZ0NsaWVudElkOiBpZH0sCi0vLyAgIHt1cmw6IHVybDIsIHJlc3VsdGluZ0NsaWVu
dElkOiBpZH0KLS8vIF0KLWZ1bmN0aW9uIGdldF9yZXF1ZXN0X2luZm9zKHdvcmtlcikgeworZnVu
Y3Rpb24gZ2V0X2ludGVyY2VwdGVkX3VybHMod29ya2VyKSB7CiAgIHJldHVybiBuZXcgUHJvbWlz
ZShyZXNvbHZlID0+IHsKICAgICB2YXIgY2hhbm5lbCA9IG5ldyBNZXNzYWdlQ2hhbm5lbCgpOwot
ICAgIGNoYW5uZWwucG9ydDEub25tZXNzYWdlID0gKG1zZykgPT4gewotICAgICAgcmVzb2x2ZSht
c2cuZGF0YS5yZXF1ZXN0SW5mb3MpOwotICAgIH07Ci0gICAgd29ya2VyLnBvc3RNZXNzYWdlKHtj
b21tYW5kOiAnZ2V0UmVxdWVzdEluZm9zJywgcG9ydDogY2hhbm5lbC5wb3J0Mn0sCi0gICAgICAg
ICAgICAgICAgICAgICAgIFtjaGFubmVsLnBvcnQyXSk7CisgICAgY2hhbm5lbC5wb3J0MS5vbm1l
c3NhZ2UgPSBmdW5jdGlvbihtc2cpIHsgcmVzb2x2ZShtc2cuZGF0YS51cmxzKTsgfTsKKyAgICB3
b3JrZXIucG9zdE1lc3NhZ2Uoe3BvcnQ6IGNoYW5uZWwucG9ydDJ9LCBbY2hhbm5lbC5wb3J0Ml0p
OwogICB9KTsKIH0KIAotLy8gUmV0dXJucyBhbiBhcnJheSBvZiB0aGUgcmVxdWVzdHMgdGhlIHdv
cmtlcnMgcmVjZWl2ZWQgZmV0Y2ggZXZlbnRzIGZvcjoKLS8vIFsKLS8vICAgLy8gUmVxdWVzdHMg
ZnJvbSB3b3JrZXJzWzBdLgotLy8gICBbCi0vLyAgICAge3VybDogdXJsMSwgcmVzdWx0aW5nQ2xp
ZW50SWRUYWc6IHRhZzF9LAotLy8gICAgIHt1cmw6IHVybDIsIHJlc3VsdGluZ0NsaWVudElkVGFn
OiB0YWcxfQotLy8gICBdLAotLy8KLS8vICAgLy8gUmVxdWVzdHMgZnJvbSB3b3JrZXJzWzFdLgot
Ly8gICBbe3VybDogdXJsMywgcmVzdWx0aW5nQ2xpZW50SWRUYWc6IHRhZzJ9XSwKLS8vCi0vLyAg
IC8vIFJlcXVlc3RzIGZyb20gdGhlIGNyb3NzLW9yaWdpbiB3b3JrZXIuCi0vLyAgIFtdCi0vLyBd
Ci1hc3luYyBmdW5jdGlvbiBnZXRfYWxsX3JlcXVlc3RfaW5mb3MoKSAgewotICBjb25zdCByZXF1
ZXN0X2luZm9zID0gW107Ci0gIHJlcXVlc3RfaW5mb3MucHVzaChhd2FpdCBnZXRfcmVxdWVzdF9p
bmZvcyh3b3JrZXJzWzBdKSk7Ci0gIHJlcXVlc3RfaW5mb3MucHVzaChhd2FpdCBnZXRfcmVxdWVz
dF9pbmZvcyh3b3JrZXJzWzFdKSk7Ci0gIHJlcXVlc3RfaW5mb3MucHVzaChhd2FpdCBzZW5kX3Rv
X2lmcmFtZShvdGhlcl9vcmlnaW5fZnJhbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB7Y29tbWFuZDogJ2dldF9yZXF1ZXN0X2luZm9zJ30pKTsKLSAgcmV0dXJu
IHJlcXVlc3RfaW5mb3M7Ci19Ci0KLWxldCB1cmw7Ci1sZXQgdXJsMTsKLWxldCB1cmwyOwotCiAv
LyBOb3JtYWwgcmVkaXJlY3QgKGZyb20gb3V0LXNjb3BlIHRvIGluLXNjb3BlKS4KLXVybCA9IFND
T1BFMTsKIHJlZGlyZWN0X3Rlc3QoCi0gICAgT1VUX1NDT1BFICsgJ3VybD0nICsgZW5jb2RlVVJJ
Q29tcG9uZW50KHVybCksCi0gICAgdXJsLAotICAgIFtbe3VybCwgcmVzdWx0aW5nQ2xpZW50SWRU
YWc6ICd4J31dLCBbXSwgW11dLAotICAgICd4JywKKyAgICBPVVRfU0NPUEUgKyAndXJsPScgKyBl
bmNvZGVVUklDb21wb25lbnQoU0NPUEUxKSwKKyAgICBTQ09QRTEsCisgICAgW1tTQ09QRTFdLCBb
XSwgW11dLAogICAgICdOb3JtYWwgcmVkaXJlY3QgdG8gc2FtZS1vcmlnaW4gc2NvcGUuJyk7Ci0K
LQotdXJsID0gU0NPUEUxICsgJyNyZWYnOwogcmVkaXJlY3RfdGVzdCgKICAgICBPVVRfU0NPUEUg
KyAndXJsPScgKyBlbmNvZGVVUklDb21wb25lbnQoU0NPUEUxKSArICcjcmVmJywKLSAgICB1cmws
Ci0gICAgW1t7dXJsLCByZXN1bHRpbmdDbGllbnRJZFRhZzogJ3gnfV0sIFtdLCBbXV0sCi0gICAg
J3gnLAorICAgIFNDT1BFMSArICcjcmVmJywKKyAgICBbW1NDT1BFMSArICcjcmVmJ10sIFtdLCBb
XV0sCiAgICAgJ05vcm1hbCByZWRpcmVjdCB0byBzYW1lLW9yaWdpbiBzY29wZSB3aXRoIGEgaGFz
aCBmcmFnbWVudC4nKTsKLQotdXJsID0gU0NPUEUxICsgJyNyZWYyJzsKIHJlZGlyZWN0X3Rlc3Qo
Ci0gICAgT1VUX1NDT1BFICsgJ3VybD0nICsgZW5jb2RlVVJJQ29tcG9uZW50KHVybCkgKyAnI3Jl
ZicsCi0gICAgdXJsLAotICAgIFtbe3VybCwgcmVzdWx0aW5nQ2xpZW50SWRUYWc6ICd4J31dLCBb
XSwgW11dLAotICAgICd4JywKKyAgICBPVVRfU0NPUEUgKyAndXJsPScgKyBlbmNvZGVVUklDb21w
b25lbnQoU0NPUEUxICsgJyNyZWYyJykgKyAnI3JlZicsCisgICAgU0NPUEUxICsgJyNyZWYyJywK
KyAgICBbW1NDT1BFMSArICcjcmVmMiddLCBbXSwgW11dLAogICAgICdOb3JtYWwgcmVkaXJlY3Qg
dG8gc2FtZS1vcmlnaW4gc2NvcGUgd2l0aCBkaWZmZXJlbnQgaGFzaCBmcmFnbWVudHMuJyk7Ci0K
LXVybCA9IE9USEVSX09SSUdJTl9TQ09QRTsKIHJlZGlyZWN0X3Rlc3QoCi0gICAgT1VUX1NDT1BF
ICsgJ3VybD0nICsgZW5jb2RlVVJJQ29tcG9uZW50KHVybCksCi0gICAgdXJsLAotICAgIFtbXSwg
W10sIFt7dXJsLCByZXN1bHRpbmdDbGllbnRJZFRhZzogJ3gnfV1dLAotICAgICd4JywKKyAgICBP
VVRfU0NPUEUgKyAndXJsPScgKyBlbmNvZGVVUklDb21wb25lbnQoT1RIRVJfT1JJR0lOX1NDT1BF
KSwKKyAgICBPVEhFUl9PUklHSU5fU0NPUEUsCisgICAgW1tdLCBbXSwgW09USEVSX09SSUdJTl9T
Q09QRV1dLAogICAgICdOb3JtYWwgcmVkaXJlY3QgdG8gb3RoZXItb3JpZ2luIHNjb3BlLicpOwog
CiAvLyBTVyBmYWxsYmFja2VkIHJlZGlyZWN0LiBTVyBkb2Vzbid0IGhhbmRsZSB0aGUgZmV0Y2gg
cmVxdWVzdC4KLXVybCA9IFNDT1BFMSArICd1cmw9JyArIGVuY29kZVVSSUNvbXBvbmVudChPVVRf
U0NPUEUpOwogcmVkaXJlY3RfdGVzdCgKLSAgICB1cmwsCisgICAgU0NPUEUxICsgJ3VybD0nICsg
ZW5jb2RlVVJJQ29tcG9uZW50KE9VVF9TQ09QRSksCiAgICAgT1VUX1NDT1BFLAotICAgIFtbe3Vy
bCwgcmVzdWx0aW5nQ2xpZW50SWRUYWc6ICd4J31dLCBbXSwgW11dLAotICAgICd4JywKKyAgICBb
W1NDT1BFMSArICd1cmw9JyArIGVuY29kZVVSSUNvbXBvbmVudChPVVRfU0NPUEUpXSwgW10sIFtd
XSwKICAgICAnU1ctZmFsbGJhY2tlZCByZWRpcmVjdCB0byBzYW1lLW9yaWdpbiBvdXQtc2NvcGUu
Jyk7Ci0KLXVybDEgPSBTQ09QRTEgKyAndXJsPScgKyBlbmNvZGVVUklDb21wb25lbnQoU0NPUEUx
KTsKLXVybDIgPSBTQ09QRTE7CiByZWRpcmVjdF90ZXN0KAotICAgIHVybDEsCi0gICAgdXJsMiwK
LSAgICBbCi0gICAgICBbCi0gICAgICAgIHt1cmw6IHVybDEsIHJlc3VsdGluZ0NsaWVudElkVGFn
OiAneCd9LAotICAgICAgICB7dXJsOiB1cmwyLCByZXN1bHRpbmdDbGllbnRJZFRhZzogJ3gnfQot
ICAgICAgXSwKLSAgICAgIFtdLAotICAgICAgW10KLSAgICBdLAotICAgICd4JywKKyAgICBTQ09Q
RTEgKyAndXJsPScgKyBlbmNvZGVVUklDb21wb25lbnQoU0NPUEUxKSwKKyAgICBTQ09QRTEsCisg
ICAgW1tTQ09QRTEgKyAndXJsPScgKyBlbmNvZGVVUklDb21wb25lbnQoU0NPUEUxKSwgU0NPUEUx
XSwgW10sIFtdXSwKICAgICAnU1ctZmFsbGJhY2tlZCByZWRpcmVjdCB0byBzYW1lLW9yaWdpbiBz
YW1lLXNjb3BlLicpOwotCi11cmwxID0gU0NPUEUxICsgJ3VybD0nICsgZW5jb2RlVVJJQ29tcG9u
ZW50KFNDT1BFMSkgKyAnI3JlZic7Ci11cmwyID0gU0NPUEUxICsgJyNyZWYnOwogcmVkaXJlY3Rf
dGVzdCgKLSAgICB1cmwxLAotICAgIHVybDIsCisgICAgU0NPUEUxICsgJ3VybD0nICsgZW5jb2Rl
VVJJQ29tcG9uZW50KFNDT1BFMSkgKyAnI3JlZicsCisgICAgU0NPUEUxICsgJyNyZWYnLAogICAg
IFsKLSAgICAgIFsKLSAgICAgICAge3VybDogdXJsMSwgcmVzdWx0aW5nQ2xpZW50SWRUYWc6ICd4
J30sCi0gICAgICAgIHt1cmw6IHVybDIsIHJlc3VsdGluZ0NsaWVudElkVGFnOiAneCd9Ci0gICAg
ICBdLAorICAgICAgW1NDT1BFMSArICd1cmw9JyArIGVuY29kZVVSSUNvbXBvbmVudChTQ09QRTEp
ICsgJyNyZWYnLCBTQ09QRTEgKyAnI3JlZiddLAogICAgICAgW10sCiAgICAgICBbXQogICAgIF0s
Ci0gICAgJ3gnLAogICAgICdTVy1mYWxsYmFja2VkIHJlZGlyZWN0IHRvIHNhbWUtb3JpZ2luIHNh
bWUtc2NvcGUgd2l0aCBhIGhhc2ggZnJhZ21lbnQuJyk7Ci0KLXVybDEgPSBTQ09QRTEgKyAndXJs
PScgKyBlbmNvZGVVUklDb21wb25lbnQoU0NPUEUxICsgJyNyZWYyJykgKyAnI3JlZic7Ci11cmwy
ID0gU0NPUEUxICsgJyNyZWYyJzsKIHJlZGlyZWN0X3Rlc3QoCi0gICAgdXJsMSwKLSAgICB1cmwy
LAorICAgIFNDT1BFMSArICd1cmw9JyArIGVuY29kZVVSSUNvbXBvbmVudChTQ09QRTEgKyAnI3Jl
ZjInKSArICcjcmVmJywKKyAgICBTQ09QRTEgKyAnI3JlZjInLAogICAgIFsKICAgICAgIFsKLSAg
ICAgICAge3VybDogdXJsMSwgcmVzdWx0aW5nQ2xpZW50SWRUYWc6ICd4J30sCi0gICAgICAgIHt1
cmw6IHVybDIsIHJlc3VsdGluZ0NsaWVudElkVGFnOiAneCd9CisgICAgICAgIFNDT1BFMSArICd1
cmw9JyArIGVuY29kZVVSSUNvbXBvbmVudChTQ09QRTEgKyAnI3JlZjInKSArICcjcmVmJywKKyAg
ICAgICAgU0NPUEUxICsgJyNyZWYyJwogICAgICAgXSwKICAgICAgIFtdLAogICAgICAgW10KICAg
ICBdLAotICAgICd4JywKICAgICAnU1ctZmFsbGJhY2tlZCByZWRpcmVjdCB0byBzYW1lLW9yaWdp
biBzYW1lLXNjb3BlIHdpdGggZGlmZmVyZW50IGhhc2ggJyArCiAgICAgJ2ZyYWdtZW50cy4nKTsK
LQotdXJsMSA9IFNDT1BFMSArICd1cmw9JyArIGVuY29kZVVSSUNvbXBvbmVudChTQ09QRTIpOwot
dXJsMiA9IFNDT1BFMjsKIHJlZGlyZWN0X3Rlc3QoCi0gICAgdXJsMSwKLSAgICB1cmwyLAotICAg
IFsKLSAgICAgIFt7dXJsOiB1cmwxLCByZXN1bHRpbmdDbGllbnRJZFRhZzogJ3gnfV0sCi0gICAg
ICBbe3VybDogdXJsMiwgcmVzdWx0aW5nQ2xpZW50SWRUYWc6ICd4J31dLAotICAgICAgW10KLSAg
ICBdLAotICAgICd4JywKKyAgICBTQ09QRTEgKyAndXJsPScgKyBlbmNvZGVVUklDb21wb25lbnQo
U0NPUEUyKSwKKyAgICBTQ09QRTIsCisgICAgW1tTQ09QRTEgKyAndXJsPScgKyBlbmNvZGVVUklD
b21wb25lbnQoU0NPUEUyKV0sIFtTQ09QRTJdLCBbXV0sCiAgICAgJ1NXLWZhbGxiYWNrZWQgcmVk
aXJlY3QgdG8gc2FtZS1vcmlnaW4gb3RoZXItc2NvcGUuJyk7Ci0KLXVybDEgPSBTQ09QRTEgKyAn
dXJsPScgKyBlbmNvZGVVUklDb21wb25lbnQoT1RIRVJfT1JJR0lOX09VVF9TQ09QRSk7Ci11cmwy
ID0gT1RIRVJfT1JJR0lOX09VVF9TQ09QRTsKIHJlZGlyZWN0X3Rlc3QoCi0gICAgdXJsMSwKLSAg
ICB1cmwyLAotICAgIFtbe3VybDogdXJsMSwgcmVzdWx0aW5nQ2xpZW50SWRUYWc6ICdhJ31dLCBb
XSwgW11dLAotICAgIG51bGwsCisgICAgU0NPUEUxICsgJ3VybD0nICsgZW5jb2RlVVJJQ29tcG9u
ZW50KE9USEVSX09SSUdJTl9PVVRfU0NPUEUpLAorICAgIE9USEVSX09SSUdJTl9PVVRfU0NPUEUs
CisgICAgW1tTQ09QRTEgKyAndXJsPScgKyBlbmNvZGVVUklDb21wb25lbnQoT1RIRVJfT1JJR0lO
X09VVF9TQ09QRSldLCBbXSwgW11dLAogICAgICdTVy1mYWxsYmFja2VkIHJlZGlyZWN0IHRvIG90
aGVyLW9yaWdpbiBvdXQtc2NvcGUuJyk7Ci0KLXVybDEgPSBTQ09QRTEgKyAndXJsPScgKyBlbmNv
ZGVVUklDb21wb25lbnQoT1RIRVJfT1JJR0lOX1NDT1BFKTsKLXVybDIgPSBPVEhFUl9PUklHSU5f
U0NPUEU7CiByZWRpcmVjdF90ZXN0KAotICAgIHVybDEsCi0gICAgdXJsMiwKKyAgICBTQ09QRTEg
KyAndXJsPScgKyBlbmNvZGVVUklDb21wb25lbnQoT1RIRVJfT1JJR0lOX1NDT1BFKSwKKyAgICBP
VEhFUl9PUklHSU5fU0NPUEUsCiAgICAgWwotICAgICAgW3t1cmw6IHVybDEsIHJlc3VsdGluZ0Ns
aWVudElkVGFnOiAnYSd9XSwKKyAgICAgIFtTQ09QRTEgKyAndXJsPScgKyBlbmNvZGVVUklDb21w
b25lbnQoT1RIRVJfT1JJR0lOX1NDT1BFKV0sCiAgICAgICBbXSwKLSAgICAgIFt7dXJsOiB1cmwy
LCByZXN1bHRpbmdDbGllbnRJZFRhZzogJ3gnfV0KKyAgICAgIFtPVEhFUl9PUklHSU5fU0NPUEVd
CiAgICAgXSwKLSAgICAneCcsCiAgICAgJ1NXLWZhbGxiYWNrZWQgcmVkaXJlY3QgdG8gb3RoZXIt
b3JpZ2luIGluLXNjb3BlLicpOwogCi0KLXVybDMgPSBTQ09QRTE7Ci11cmwyID0gT1RIRVJfT1JJ
R0lOX1NDT1BFICsgJ3VybD0nICsgZW5jb2RlVVJJQ29tcG9uZW50KHVybDMpOwotdXJsMSA9IFND
T1BFMSArICd1cmw9JyArIGVuY29kZVVSSUNvbXBvbmVudCh1cmwyKTsKLXJlZGlyZWN0X3Rlc3Qo
Ci0gICAgdXJsMSwKLSAgICB1cmwzLAotICAgIFsKLSAgICAgIFsKLSAgICAgICAge3VybDogdXJs
MSwgcmVzdWx0aW5nQ2xpZW50SWRUYWc6ICdhJ30sCi0gICAgICAgIHt1cmw6IHVybDMsIHJlc3Vs
dGluZ0NsaWVudElkVGFnOiAneCd9Ci0gICAgICBdLAotICAgICAgW10sCi0gICAgICBbe3VybDog
dXJsMiwgcmVzdWx0aW5nQ2xpZW50SWRUYWc6ICdiJ31dCi0gICAgXSwKLSAgICAneCcsCi0gICAg
J1NXLWZhbGxiYWNrZWQgcmVkaXJlY3QgdG8gb3RoZXItb3JpZ2luIGFuZCBiYWNrIHRvIHNhbWUt
b3JpZ2luLicpOwotCiAvLyBTVyBnZW5lcmF0ZWQgcmVkaXJlY3QuCiAvLyBTVzogZXZlbnQucmVz
cG9uZFdpdGgoUmVzcG9uc2UucmVkaXJlY3QocGFyYW1zWyd1cmwnXSkpOwotdXJsMSA9IFNDT1BF
MSArICdzdz1nZW4mdXJsPScgKyBlbmNvZGVVUklDb21wb25lbnQoT1VUX1NDT1BFKTsKLXVybDIg
PSBPVVRfU0NPUEU7CiByZWRpcmVjdF90ZXN0KAotICAgIHVybDEsCi0gICAgdXJsMiwKLSAgICBb
W3t1cmw6IHVybDEsIHJlc3VsdGluZ0NsaWVudElkVGFnOiAneCd9XSwgW10sIFtdXSwKLSAgICAn
eCcsCisgICAgU0NPUEUxICsgJ3N3PWdlbiZ1cmw9JyArIGVuY29kZVVSSUNvbXBvbmVudChPVVRf
U0NPUEUpLAorICAgIE9VVF9TQ09QRSwKKyAgICBbW1NDT1BFMSArICdzdz1nZW4mdXJsPScgKyBl
bmNvZGVVUklDb21wb25lbnQoT1VUX1NDT1BFKV0sIFtdLCBbXV0sCiAgICAgJ1NXLWdlbmVyYXRl
ZCByZWRpcmVjdCB0byBzYW1lLW9yaWdpbiBvdXQtc2NvcGUuJyk7Ci0KLXVybDEgPSBTQ09QRTEg
KyAnc3c9Z2VuJnVybD0nICsgZW5jb2RlVVJJQ29tcG9uZW50KE9VVF9TQ09QRSkgKyAnI3JlZic7
Ci11cmwyID0gT1VUX1NDT1BFICsgJyNyZWYnOwogcmVkaXJlY3RfdGVzdCgKLSAgICB1cmwxLAot
ICAgIHVybDIsCi0gICAgW1t7dXJsOiB1cmwxLCByZXN1bHRpbmdDbGllbnRJZFRhZzogJ3gnfV0s
IFtdLCBbXV0sCi0gICAgJ3gnLAorICAgIFNDT1BFMSArICdzdz1nZW4mdXJsPScgKyBlbmNvZGVV
UklDb21wb25lbnQoT1VUX1NDT1BFKSArICcjcmVmJywKKyAgICBPVVRfU0NPUEUgKyAnI3JlZics
CisgICAgWworICAgICAgW1NDT1BFMSArICdzdz1nZW4mdXJsPScgKyBlbmNvZGVVUklDb21wb25l
bnQoT1VUX1NDT1BFKSArICcjcmVmJ10sCisgICAgICBbXSwKKyAgICAgIFtdCisgICAgXSwKICAg
ICAnU1ctZ2VuZXJhdGVkIHJlZGlyZWN0IHRvIHNhbWUtb3JpZ2luIG91dC1zY29wZSB3aXRoIGEg
aGFzaCBmcmFnbWVudC4nKTsKLQotdXJsMSA9IFNDT1BFMSArICdzdz1nZW4mdXJsPScgKyBlbmNv
ZGVVUklDb21wb25lbnQoT1VUX1NDT1BFICsgJyNyZWYyJykgKyAnI3JlZic7Ci11cmwyID0gT1VU
X1NDT1BFICsgJyNyZWYyJzsKIHJlZGlyZWN0X3Rlc3QoCi0gICAgdXJsMSwKLSAgICB1cmwyLAot
ICAgIFtbe3VybDogdXJsMSwgcmVzdWx0aW5nQ2xpZW50SWRUYWc6ICd4J31dLCBbXSwgW11dLAot
ICAgICd4JywKLSAgICAnU1ctZ2VuZXJhdGVkIHJlZGlyZWN0IHRvIHNhbWUtb3JpZ2luIG91dC1z
Y29wZSB3aXRoIGRpZmZlcmVudCBoYXNoICcgKwotICAgICdmcmFnbWVudHMuJyk7Ci0KLXVybDEg
PSBTQ09QRTEgKyAnc3c9Z2VuJnVybD0nICsgZW5jb2RlVVJJQ29tcG9uZW50KFNDT1BFMSk7Ci11
cmwyID0gU0NPUEUxOwotcmVkaXJlY3RfdGVzdCgKLSAgICB1cmwxLAotICAgIHVybDIsCisgICAg
U0NPUEUxICsgJ3N3PWdlbiZ1cmw9JyArIGVuY29kZVVSSUNvbXBvbmVudChPVVRfU0NPUEUgKyAn
I3JlZjInKSArICcjcmVmJywKKyAgICBPVVRfU0NPUEUgKyAnI3JlZjInLAogICAgIFsKLSAgICAg
IFsKLSAgICAgICAge3VybDogdXJsMSwgcmVzdWx0aW5nQ2xpZW50SWRUYWc6ICd4J30sCi0gICAg
ICAgIHt1cmw6IHVybDIsIHJlc3VsdGluZ0NsaWVudElkVGFnOiAneCd9Ci0gICAgICBdLAorICAg
ICAgW1NDT1BFMSArICdzdz1nZW4mdXJsPScgKyBlbmNvZGVVUklDb21wb25lbnQoT1VUX1NDT1BF
ICsgJyNyZWYyJykgKyAnI3JlZiddLAogICAgICAgW10sCiAgICAgICBbXQogICAgIF0sCi0gICAg
J3gnLAorICAgICdTVy1nZW5lcmF0ZWQgcmVkaXJlY3QgdG8gc2FtZS1vcmlnaW4gb3V0LXNjb3Bl
IHdpdGggZGlmZmVyZW50IGhhc2ggJyArCisgICAgJ2ZyYWdtZW50cy4nKTsKK3JlZGlyZWN0X3Rl
c3QoCisgICAgU0NPUEUxICsgJ3N3PWdlbiZ1cmw9JyArIGVuY29kZVVSSUNvbXBvbmVudChTQ09Q
RTEpLAorICAgIFNDT1BFMSwKKyAgICBbW1NDT1BFMSArICdzdz1nZW4mdXJsPScgKyBlbmNvZGVV
UklDb21wb25lbnQoU0NPUEUxKSwgU0NPUEUxXSwgW10sIFtdXSwKICAgICAnU1ctZ2VuZXJhdGVk
IHJlZGlyZWN0IHRvIHNhbWUtb3JpZ2luIHNhbWUtc2NvcGUuJyk7Ci0KLXVybDEgPSBTQ09QRTEg
KyAnc3c9Z2VuJnVybD0nICsgZW5jb2RlVVJJQ29tcG9uZW50KFNDT1BFMik7Ci11cmwyID0gU0NP
UEUyOwogcmVkaXJlY3RfdGVzdCgKLSAgICB1cmwxLAotICAgIHVybDIsCisgICAgU0NPUEUxICsg
J3N3PWdlbiZ1cmw9JyArIGVuY29kZVVSSUNvbXBvbmVudChTQ09QRTIpLAorICAgIFNDT1BFMiwK
KyAgICBbW1NDT1BFMSArICdzdz1nZW4mdXJsPScgKyBlbmNvZGVVUklDb21wb25lbnQoU0NPUEUy
KV0sIFtTQ09QRTJdLCBbXV0sCisgICAgJ1NXLWdlbmVyYXRlZCByZWRpcmVjdCB0byBzYW1lLW9y
aWdpbiBvdGhlci1zY29wZS4nKTsKK3JlZGlyZWN0X3Rlc3QoCisgICAgU0NPUEUxICsgJ3N3PWdl
biZ1cmw9JyArIGVuY29kZVVSSUNvbXBvbmVudChPVEhFUl9PUklHSU5fT1VUX1NDT1BFKSwKKyAg
ICBPVEhFUl9PUklHSU5fT1VUX1NDT1BFLAogICAgIFsKLSAgICAgIFt7dXJsOiB1cmwxLCByZXN1
bHRpbmdDbGllbnRJZFRhZzogJ3gnfV0sCi0gICAgICBbe3VybDogdXJsMiwgcmVzdWx0aW5nQ2xp
ZW50SWRUYWc6ICd4J31dLAorICAgICAgW1NDT1BFMSArICdzdz1nZW4mdXJsPScgKyBlbmNvZGVV
UklDb21wb25lbnQoT1RIRVJfT1JJR0lOX09VVF9TQ09QRSldLAorICAgICAgW10sCiAgICAgICBb
XQogICAgIF0sCi0gICAgJ3gnLAotICAgICdTVy1nZW5lcmF0ZWQgcmVkaXJlY3QgdG8gc2FtZS1v
cmlnaW4gb3RoZXItc2NvcGUuJyk7Ci0KLXVybDEgPSBTQ09QRTEgKyAnc3c9Z2VuJnVybD0nICsg
ZW5jb2RlVVJJQ29tcG9uZW50KE9USEVSX09SSUdJTl9PVVRfU0NPUEUpOwotdXJsMiA9IE9USEVS
X09SSUdJTl9PVVRfU0NPUEU7Ci1yZWRpcmVjdF90ZXN0KAotICAgIHVybDEsCi0gICAgdXJsMiwK
LSAgICBbW3t1cmw6IHVybDEsIHJlc3VsdGluZ0NsaWVudElkVGFnOiAnYSd9XSwgW10sIFtdXSwK
LSAgICBudWxsLAogICAgICdTVy1nZW5lcmF0ZWQgcmVkaXJlY3QgdG8gb3RoZXItb3JpZ2luIG91
dC1zY29wZS4nKTsKLQotdXJsMSA9IFNDT1BFMSArICdzdz1nZW4mdXJsPScgKyBlbmNvZGVVUklD
b21wb25lbnQoT1RIRVJfT1JJR0lOX1NDT1BFKTsKLXVybDIgPSBPVEhFUl9PUklHSU5fU0NPUEU7
CiByZWRpcmVjdF90ZXN0KAotICAgIHVybDEsCi0gICAgdXJsMiwKKyAgICBTQ09QRTEgKyAnc3c9
Z2VuJnVybD0nICsgZW5jb2RlVVJJQ29tcG9uZW50KE9USEVSX09SSUdJTl9TQ09QRSksCisgICAg
T1RIRVJfT1JJR0lOX1NDT1BFLAogICAgIFsKLSAgICAgIFt7dXJsOiB1cmwxLCByZXN1bHRpbmdD
bGllbnRJZFRhZzogJ2EnfV0sCisgICAgICBbU0NPUEUxICsgJ3N3PWdlbiZ1cmw9JyArIGVuY29k
ZVVSSUNvbXBvbmVudChPVEhFUl9PUklHSU5fU0NPUEUpXSwKICAgICAgIFtdLAotICAgICAgW3t1
cmw6IHVybDIsIHJlc3VsdGluZ0NsaWVudElkVGFnOiAneCd9XQorICAgICAgW09USEVSX09SSUdJ
Tl9TQ09QRV0KICAgICBdLAotICAgICd4JywKICAgICAnU1ctZ2VuZXJhdGVkIHJlZGlyZWN0IHRv
IG90aGVyLW9yaWdpbiBpbi1zY29wZS4nKTsKIAotCiAvLyBTVyBmZXRjaGVkIHJlZGlyZWN0Lgog
Ly8gU1c6IGV2ZW50LnJlc3BvbmRXaXRoKGZldGNoKGV2ZW50LnJlcXVlc3QpKTsKLXVybDEgPSBT
Q09QRTEgKyAnc3c9ZmV0Y2gmdXJsPScgKyBlbmNvZGVVUklDb21wb25lbnQoT1VUX1NDT1BFKQot
dXJsMiA9IE9VVF9TQ09QRTsKIHJlZGlyZWN0X3Rlc3QoCi0gICAgdXJsMSwKLSAgICB1cmwyLAot
ICAgIFtbe3VybDogdXJsMSwgcmVzdWx0aW5nQ2xpZW50SWRUYWc6ICd4J31dLCBbXSwgW11dLAot
ICAgICd4JywKKyAgICBTQ09QRTEgKyAnc3c9ZmV0Y2gmdXJsPScgKyBlbmNvZGVVUklDb21wb25l
bnQoT1VUX1NDT1BFKSwKKyAgICBPVVRfU0NPUEUsCisgICAgW1tTQ09QRTEgKyAnc3c9ZmV0Y2gm
dXJsPScgKyBlbmNvZGVVUklDb21wb25lbnQoT1VUX1NDT1BFKV0sCisgICAgW10sCisgICAgW11d
LAogICAgICdTVy1mZXRjaGVkIHJlZGlyZWN0IHRvIHNhbWUtb3JpZ2luIG91dC1zY29wZS4nKTsK
LQotdXJsMSA9IFNDT1BFMSArICdzdz1mZXRjaCZ1cmw9JyArIGVuY29kZVVSSUNvbXBvbmVudChT
Q09QRTEpOwotdXJsMiA9IFNDT1BFMTsKIHJlZGlyZWN0X3Rlc3QoCi0gICAgdXJsMSwKLSAgICB1
cmwyLAotICAgIFsKLSAgICAgIFsKLSAgICAgICAge3VybDogdXJsMSwgcmVzdWx0aW5nQ2xpZW50
SWRUYWc6ICd4J30sCi0gICAgICAgIHt1cmw6IHVybDIsIHJlc3VsdGluZ0NsaWVudElkVGFnOiAn
eCd9Ci0gICAgICBdLAotICAgICAgW10sCi0gICAgICBbXQotICAgIF0sCi0gICAgJ3gnLAorICAg
IFNDT1BFMSArICdzdz1mZXRjaCZ1cmw9JyArIGVuY29kZVVSSUNvbXBvbmVudChTQ09QRTEpLAor
ICAgIFNDT1BFMSwKKyAgICBbW1NDT1BFMSArICdzdz1mZXRjaCZ1cmw9JyArIGVuY29kZVVSSUNv
bXBvbmVudChTQ09QRTEpLCBTQ09QRTFdLCBbXSwgW11dLAogICAgICdTVy1mZXRjaGVkIHJlZGly
ZWN0IHRvIHNhbWUtb3JpZ2luIHNhbWUtc2NvcGUuJyk7Ci0KLXVybDEgPSBTQ09QRTEgKyAnc3c9
ZmV0Y2gmdXJsPScgKyBlbmNvZGVVUklDb21wb25lbnQoU0NPUEUyKTsKLXVybDIgPSBTQ09QRTI7
CiByZWRpcmVjdF90ZXN0KAotICAgIHVybDEsCi0gICAgdXJsMiwKKyAgICBTQ09QRTEgKyAnc3c9
ZmV0Y2gmdXJsPScgKyBlbmNvZGVVUklDb21wb25lbnQoU0NPUEUyKSwKKyAgICBTQ09QRTIsCiAg
ICAgWwotICAgICAgW3t1cmw6IHVybDEsIHJlc3VsdGluZ0NsaWVudElkVGFnOiAneCd9XSwKLSAg
ICAgIFt7dXJsOiB1cmwyLCByZXN1bHRpbmdDbGllbnRJZFRhZzogJ3gnfV0sCisgICAgICBbU0NP
UEUxICsgJ3N3PWZldGNoJnVybD0nICsgZW5jb2RlVVJJQ29tcG9uZW50KFNDT1BFMildLAorICAg
ICAgW1NDT1BFMl0sCiAgICAgICBbXQogICAgIF0sCi0gICAgJ3gnLAogICAgICdTVy1mZXRjaGVk
IHJlZGlyZWN0IHRvIHNhbWUtb3JpZ2luIG90aGVyLXNjb3BlLicpOwotCi11cmwxID0gU0NPUEUx
ICsgJ3N3PWZldGNoJnVybD0nICsgZW5jb2RlVVJJQ29tcG9uZW50KE9USEVSX09SSUdJTl9PVVRf
U0NPUEUpOwotdXJsMiA9IE9USEVSX09SSUdJTl9PVVRfU0NPUEU7Ci1yZWRpcmVjdF90ZXN0KAot
ICAgIHVybDEsCi0gICAgdXJsMiwKLSAgICBbW3t1cmw6IHVybDEsIHJlc3VsdGluZ0NsaWVudElk
VGFnOiAnYSd9XSwgW10sIFtdXSwKLSAgICBudWxsLAotICAgICdTVy1mZXRjaGVkIHJlZGlyZWN0
IHRvIG90aGVyLW9yaWdpbiBvdXQtc2NvcGUuJyk7Ci0KLXVybDEgPSBTQ09QRTEgKyAnc3c9ZmV0
Y2gmdXJsPScgKyBlbmNvZGVVUklDb21wb25lbnQoT1RIRVJfT1JJR0lOX1NDT1BFKTsKLXVybDIg
PSBPVEhFUl9PUklHSU5fU0NPUEU7CiByZWRpcmVjdF90ZXN0KAotICAgIHVybDEsCi0gICAgdXJs
MiwKKyAgICBTQ09QRTEgKyAnc3c9ZmV0Y2gmdXJsPScgKyBlbmNvZGVVUklDb21wb25lbnQoT1RI
RVJfT1JJR0lOX09VVF9TQ09QRSksCisgICAgT1RIRVJfT1JJR0lOX09VVF9TQ09QRSwKICAgICBb
Ci0gICAgICBbe3VybDogdXJsMSwgcmVzdWx0aW5nQ2xpZW50SWRUYWc6ICdhJ31dLAorICAgICAg
W1NDT1BFMSArICdzdz1mZXRjaCZ1cmw9JyArIGVuY29kZVVSSUNvbXBvbmVudChPVEhFUl9PUklH
SU5fT1VUX1NDT1BFKV0sCiAgICAgICBbXSwKLSAgICAgIFt7dXJsOiB1cmwyLCByZXN1bHRpbmdD
bGllbnRJZFRhZzogJ3gnfV0KLSAgICBdLAotICAgICd4JywKLSAgICAnU1ctZmV0Y2hlZCByZWRp
cmVjdCB0byBvdGhlci1vcmlnaW4gaW4tc2NvcGUuJyk7Ci0KLQotLy8gU1cgcmVzcG9uZHMgd2l0
aCBhIGZldGNoIGZyb20gYSBkaWZmZXJlbnQgdXJsLgotLy8gU1c6IGV2ZW50LnJlc3BvbmRXaXRo
KGZldGNoKHBhcmFtc1sndXJsJ10pKTsKLXVybDIgPSBTQ09QRTE7Ci11cmwxID0gU0NPUEUxICsg
J3N3PWZldGNoLXVybCZ1cmw9JyArIGVuY29kZVVSSUNvbXBvbmVudCh1cmwyKTsKKyAgICAgIFtd
CisgICAgXSwgJ1NXLWZldGNoZWQgcmVkaXJlY3QgdG8gb3RoZXItb3JpZ2luIG91dC1zY29wZS4n
KTsKIHJlZGlyZWN0X3Rlc3QoCi0gICAgdXJsMSwKLSAgICB1cmwxLAorICAgIFNDT1BFMSArICdz
dz1mZXRjaCZ1cmw9JyArIGVuY29kZVVSSUNvbXBvbmVudChPVEhFUl9PUklHSU5fU0NPUEUpLAor
ICAgIE9USEVSX09SSUdJTl9TQ09QRSwKICAgICBbCi0gICAgICBbCi0gICAgICAgIHt1cmw6IHVy
bDEsIHJlc3VsdGluZ0NsaWVudElkVGFnOiAneCd9Ci0gICAgICBdLAorICAgICAgW1NDT1BFMSAr
ICdzdz1mZXRjaCZ1cmw9JyArIGVuY29kZVVSSUNvbXBvbmVudChPVEhFUl9PUklHSU5fU0NPUEUp
XSwKICAgICAgIFtdLAotICAgICAgW10KKyAgICAgIFtPVEhFUl9PUklHSU5fU0NPUEVdCiAgICAg
XSwKLSAgICAneCcsCi0gICAgJ1NXLWZldGNoZWQgcmVzcG9uc2UgZnJvbSBkaWZmZXJlbnQgVVJM
LCBzYW1lLW9yaWdpbiBzYW1lLXNjb3BlLicpOwotCisgICAgJ1NXLWZldGNoZWQgcmVkaXJlY3Qg
dG8gb3RoZXItb3JpZ2luIGluLXNjb3BlLicpOwogCiAvLyBPcGFxdWUgcmVkaXJlY3QuCiAvLyBT
VzogZXZlbnQucmVzcG9uZFdpdGgoZmV0Y2goCiAvLyAgICAgICAgIG5ldyBSZXF1ZXN0KGV2ZW50
LnJlcXVlc3QudXJsLCB7cmVkaXJlY3Q6ICdtYW51YWwnfSkpKTsKLXVybDEgPSBTQ09QRTEgKyAn
c3c9bWFudWFsJnVybD0nICsgZW5jb2RlVVJJQ29tcG9uZW50KE9VVF9TQ09QRSk7Ci11cmwyID0g
T1VUX1NDT1BFOwogcmVkaXJlY3RfdGVzdCgKLSAgICB1cmwxLAotICAgIHVybDIsCi0gICAgW1t7
dXJsOiB1cmwxLCByZXN1bHRpbmdDbGllbnRJZFRhZzogJ3gnfV0sIFtdLCBbXV0sCi0gICAgJ3gn
LAorICAgIFNDT1BFMSArICdzdz1tYW51YWwmdXJsPScgKyBlbmNvZGVVUklDb21wb25lbnQoT1VU
X1NDT1BFKSwKKyAgICBPVVRfU0NPUEUsCisgICAgW1tTQ09QRTEgKyAnc3c9bWFudWFsJnVybD0n
ICsgZW5jb2RlVVJJQ29tcG9uZW50KE9VVF9TQ09QRSldLCBbXSwgW11dLAogICAgICdSZWRpcmVj
dCB0byBzYW1lLW9yaWdpbiBvdXQtc2NvcGUgd2l0aCBvcGFxdWUgcmVkaXJlY3QgcmVzcG9uc2Uu
Jyk7Ci0KLXVybDEgPSBTQ09QRTEgKyAnc3c9bWFudWFsJnVybD0nICsgZW5jb2RlVVJJQ29tcG9u
ZW50KFNDT1BFMSk7Ci11cmwyID0gU0NPUEUxOwogcmVkaXJlY3RfdGVzdCgKLSAgICB1cmwxLAot
ICAgIHVybDIsCi0gICAgWwotICAgICAgWwotICAgICAgICB7dXJsOiB1cmwxLCByZXN1bHRpbmdD
bGllbnRJZFRhZzogJ3gnfSwKLSAgICAgICAge3VybDogdXJsMiwgcmVzdWx0aW5nQ2xpZW50SWRU
YWc6ICd4J30KLSAgICAgIF0sCi0gICAgICBbXSwKLSAgICAgIFtdCi0gICAgXSwKLSAgICAneCcs
CisgICAgU0NPUEUxICsgJ3N3PW1hbnVhbCZ1cmw9JyArIGVuY29kZVVSSUNvbXBvbmVudChTQ09Q
RTEpLAorICAgIFNDT1BFMSwKKyAgICBbW1NDT1BFMSArICdzdz1tYW51YWwmdXJsPScgKyBlbmNv
ZGVVUklDb21wb25lbnQoU0NPUEUxKSwgU0NPUEUxXSwgW10sIFtdXSwKICAgICAnUmVkaXJlY3Qg
dG8gc2FtZS1vcmlnaW4gc2FtZS1zY29wZSB3aXRoIG9wYXF1ZSByZWRpcmVjdCByZXNwb25zZS4n
KTsKLQotdXJsMSA9IFNDT1BFMSArICdzdz1tYW51YWwmdXJsPScgKyBlbmNvZGVVUklDb21wb25l
bnQoU0NPUEUyKTsKLXVybDIgPSBTQ09QRTI7CiByZWRpcmVjdF90ZXN0KAotICAgIHVybDEsCi0g
ICAgdXJsMiwKKyAgICBTQ09QRTEgKyAnc3c9bWFudWFsJnVybD0nICsgZW5jb2RlVVJJQ29tcG9u
ZW50KFNDT1BFMiksCisgICAgU0NPUEUyLAorICAgIFtbU0NPUEUxICsgJ3N3PW1hbnVhbCZ1cmw9
JyArIGVuY29kZVVSSUNvbXBvbmVudChTQ09QRTIpXSwgW1NDT1BFMl0sIFtdXSwKKyAgICAnUmVk
aXJlY3QgdG8gc2FtZS1vcmlnaW4gb3RoZXItc2NvcGUgd2l0aCBvcGFxdWUgcmVkaXJlY3QgcmVz
cG9uc2UuJyk7CityZWRpcmVjdF90ZXN0KAorICAgIFNDT1BFMSArICdzdz1tYW51YWwmdXJsPScg
KworICAgIGVuY29kZVVSSUNvbXBvbmVudChPVEhFUl9PUklHSU5fT1VUX1NDT1BFKSwKKyAgICBP
VEhFUl9PUklHSU5fT1VUX1NDT1BFLAogICAgIFsKLSAgICAgIFt7dXJsOiB1cmwxLCByZXN1bHRp
bmdDbGllbnRJZFRhZzogJ3gnfV0sCi0gICAgICBbe3VybDogdXJsMiwgcmVzdWx0aW5nQ2xpZW50
SWRUYWc6ICd4J31dLAorICAgICAgW1NDT1BFMSArICdzdz1tYW51YWwmdXJsPScgKyBlbmNvZGVV
UklDb21wb25lbnQoT1RIRVJfT1JJR0lOX09VVF9TQ09QRSldLAorICAgICAgW10sCiAgICAgICBb
XQogICAgIF0sCi0gICAgJ3gnLAotICAgICdSZWRpcmVjdCB0byBzYW1lLW9yaWdpbiBvdGhlci1z
Y29wZSB3aXRoIG9wYXF1ZSByZWRpcmVjdCByZXNwb25zZS4nKTsKLQotdXJsMSA9IFNDT1BFMSAr
ICdzdz1tYW51YWwmdXJsPScgKyBlbmNvZGVVUklDb21wb25lbnQoT1RIRVJfT1JJR0lOX09VVF9T
Q09QRSk7Ci11cmwyID0gT1RIRVJfT1JJR0lOX09VVF9TQ09QRTsKLXJlZGlyZWN0X3Rlc3QoCi0g
ICAgdXJsMSwKLSAgICB1cmwyLAotICAgIFtbe3VybDogdXJsMSwgcmVzdWx0aW5nQ2xpZW50SWRU
YWc6ICdhJ31dLCBbXSwgW11dLAotICAgIG51bGwsCiAgICAgJ1JlZGlyZWN0IHRvIG90aGVyLW9y
aWdpbiBvdXQtc2NvcGUgd2l0aCBvcGFxdWUgcmVkaXJlY3QgcmVzcG9uc2UuJyk7Ci0KLXVybDEg
PSBTQ09QRTEgKyAnc3c9bWFudWFsJnVybD0nICsgZW5jb2RlVVJJQ29tcG9uZW50KE9USEVSX09S
SUdJTl9TQ09QRSk7Ci11cmwyID0gT1RIRVJfT1JJR0lOX1NDT1BFOwogcmVkaXJlY3RfdGVzdCgK
LSAgICB1cmwxLAotICAgIHVybDIsCisgICAgU0NPUEUxICsgJ3N3PW1hbnVhbCZ1cmw9JyArIGVu
Y29kZVVSSUNvbXBvbmVudChPVEhFUl9PUklHSU5fU0NPUEUpLAorICAgIE9USEVSX09SSUdJTl9T
Q09QRSwKICAgICBbCi0gICAgICBbe3VybDogdXJsMSwgcmVzdWx0aW5nQ2xpZW50SWRUYWc6ICdh
J31dLAorICAgICAgW1NDT1BFMSArICdzdz1tYW51YWwmdXJsPScgKyBlbmNvZGVVUklDb21wb25l
bnQoT1RIRVJfT1JJR0lOX1NDT1BFKV0sCiAgICAgICBbXSwKLSAgICAgIFt7dXJsOiB1cmwyLCBy
ZXN1bHRpbmdDbGllbnRJZFRhZzogJ3gnfV0KKyAgICAgIFtPVEhFUl9PUklHSU5fU0NPUEVdCiAg
ICAgXSwKLSAgICAneCcsCiAgICAgJ1JlZGlyZWN0IHRvIG90aGVyLW9yaWdpbiBpbi1zY29wZSB3
aXRoIG9wYXF1ZSByZWRpcmVjdCByZXNwb25zZS4nKTsKLQotdXJsPSBTQ09QRTEgKyAnc3c9bWFu
dWFsJm5vTG9jYXRpb25SZWRpcmVjdCc7CiByZWRpcmVjdF90ZXN0KAotICAgIHVybCwgdXJsLCBb
W3t1cmwsIHJlc3VsdGluZ0NsaWVudElkVGFnOiAneCd9XSwgW10sIFtdXSwKLSAgICAneCcsCisg
ICAgU0NPUEUxICsgJ3N3PW1hbnVhbCZub0xvY2F0aW9uUmVkaXJlY3QnLAorICAgIFNDT1BFMSAr
ICdzdz1tYW51YWwmbm9Mb2NhdGlvblJlZGlyZWN0JywKKyAgICBbW1NDT1BFMSArICdzdz1tYW51
YWwmbm9Mb2NhdGlvblJlZGlyZWN0J10sIFtdLCBbXV0sCiAgICAgJ05vIGxvY2F0aW9uIHJlZGly
ZWN0IHJlc3BvbnNlLicpOwogCi0KIC8vIE9wYXF1ZSByZWRpcmVjdCBwYXNzZWQgdGhyb3VnaCBD
YWNoZS4KIC8vIFNXIHJlc3BvbmRzIHdpdGggYW4gb3BhcXVlIHJlZGlyZWN0cmVzcG9uc2UgZnJv
bSB0aGUgQ2FjaGUgQVBJLgotdXJsMSA9IFNDT1BFMSArICdzdz1tYW51YWxUaHJvdWdoQ2FjaGUm
dXJsPScgKyBlbmNvZGVVUklDb21wb25lbnQoT1VUX1NDT1BFKTsKLXVybDIgPSBPVVRfU0NPUEU7
CiByZWRpcmVjdF90ZXN0KAotICAgIHVybDEsCi0gICAgdXJsMiwKLSAgICBbW3t1cmw6IHVybDEs
IHJlc3VsdGluZ0NsaWVudElkVGFnOiAneCd9XSwgW10sIFtdXSwKLSAgICAneCcsCisgICAgU0NP
UEUxICsgJ3N3PW1hbnVhbFRocm91Z2hDYWNoZSZ1cmw9JyArIGVuY29kZVVSSUNvbXBvbmVudChP
VVRfU0NPUEUpLAorICAgIE9VVF9TQ09QRSwKKyAgICBbCisgICAgICBbU0NPUEUxICsgJ3N3PW1h
bnVhbFRocm91Z2hDYWNoZSZ1cmw9JyArIGVuY29kZVVSSUNvbXBvbmVudChPVVRfU0NPUEUpXSwK
KyAgICAgIFtdLAorICAgICAgW10KKyAgICBdLAogICAgICdSZWRpcmVjdCB0byBzYW1lLW9yaWdp
biBvdXQtc2NvcGUgd2l0aCBvcGFxdWUgcmVkaXJlY3QgcmVzcG9uc2Ugd2hpY2ggJyArCiAgICAg
J2lzIHBhc3NlZCB0aHJvdWdoIENhY2hlLicpOwotCi11cmwxID0gU0NPUEUxICsgJ3N3PW1hbnVh
bFRocm91Z2hDYWNoZSZ1cmw9JyArIGVuY29kZVVSSUNvbXBvbmVudChTQ09QRTEpOwotdXJsMiA9
IFNDT1BFMTsKIHJlZGlyZWN0X3Rlc3QoCi0gICAgdXJsMSwKLSAgICB1cmwyLAorICAgIFNDT1BF
MSArICdzdz1tYW51YWxUaHJvdWdoQ2FjaGUmdXJsPScgKyBlbmNvZGVVUklDb21wb25lbnQoU0NP
UEUxKSwKKyAgICBTQ09QRTEsCiAgICAgWwogICAgICAgWwotICAgICAgICB7dXJsOiB1cmwxLCBy
ZXN1bHRpbmdDbGllbnRJZFRhZzogJ3gnfSwKLSAgICAgICAge3VybDogdXJsMiwgcmVzdWx0aW5n
Q2xpZW50SWRUYWc6ICd4J30KKyAgICAgICAgU0NPUEUxICsgJ3N3PW1hbnVhbFRocm91Z2hDYWNo
ZSZ1cmw9JyArIGVuY29kZVVSSUNvbXBvbmVudChTQ09QRTEpLAorICAgICAgICBTQ09QRTEKICAg
ICAgIF0sCiAgICAgICBbXSwKICAgICAgIFtdCiAgICAgXSwKLSAgICAneCcsCiAgICAgJ1JlZGly
ZWN0IHRvIHNhbWUtb3JpZ2luIHNhbWUtc2NvcGUgd2l0aCBvcGFxdWUgcmVkaXJlY3QgcmVzcG9u
c2Ugd2hpY2ggJyArCiAgICAgJ2lzIHBhc3NlZCB0aHJvdWdoIENhY2hlLicpOwotCi11cmwxID0g
U0NPUEUxICsgJ3N3PW1hbnVhbFRocm91Z2hDYWNoZSZ1cmw9JyArIGVuY29kZVVSSUNvbXBvbmVu
dChTQ09QRTIpOwotdXJsMiA9IFNDT1BFMjsKIHJlZGlyZWN0X3Rlc3QoCi0gICAgdXJsMSwKLSAg
ICB1cmwyLAorICAgIFNDT1BFMSArICdzdz1tYW51YWxUaHJvdWdoQ2FjaGUmdXJsPScgKyBlbmNv
ZGVVUklDb21wb25lbnQoU0NPUEUyKSwKKyAgICBTQ09QRTIsCiAgICAgWwotICAgICAgW3t1cmw6
IHVybDEsIHJlc3VsdGluZ0NsaWVudElkVGFnOiAneCd9XSwKLSAgICAgIFt7dXJsOiB1cmwyLCBy
ZXN1bHRpbmdDbGllbnRJZFRhZzogJ3gnfV0sCisgICAgICBbU0NPUEUxICsgJ3N3PW1hbnVhbFRo
cm91Z2hDYWNoZSZ1cmw9JyArIGVuY29kZVVSSUNvbXBvbmVudChTQ09QRTIpXSwKKyAgICAgIFtT
Q09QRTJdLAogICAgICAgW10KICAgICBdLAotICAgICd4JywKICAgICAnUmVkaXJlY3QgdG8gc2Ft
ZS1vcmlnaW4gb3RoZXItc2NvcGUgd2l0aCBvcGFxdWUgcmVkaXJlY3QgcmVzcG9uc2Ugd2hpY2gg
JyArCiAgICAgJ2lzIHBhc3NlZCB0aHJvdWdoIENhY2hlLicpOwotCi11cmwxID0gU0NPUEUxICsg
J3N3PW1hbnVhbFRocm91Z2hDYWNoZSZ1cmw9JyArCi0gICAgICAgZW5jb2RlVVJJQ29tcG9uZW50
KE9USEVSX09SSUdJTl9PVVRfU0NPUEUpOwotdXJsMiA9IE9USEVSX09SSUdJTl9PVVRfU0NPUEU7
Ci1yZWRpcmVjdF90ZXN0KAotICAgIHVybDEsCi0gICAgdXJsMiwKLSAgICBbW3t1cmw6IHVybDEs
IHJlc3VsdGluZ0NsaWVudElkVGFnOiAnYSd9XSwgW10sIFtdXSwKLSAgICBudWxsLAorcmVkaXJl
Y3RfdGVzdCgKKyAgICBTQ09QRTEgKyAnc3c9bWFudWFsVGhyb3VnaENhY2hlJnVybD0nICsKKyAg
ICAgICAgZW5jb2RlVVJJQ29tcG9uZW50KE9USEVSX09SSUdJTl9PVVRfU0NPUEUpLAorICAgIE9U
SEVSX09SSUdJTl9PVVRfU0NPUEUsCisgICAgWworICAgICAgW1NDT1BFMSArICdzdz1tYW51YWxU
aHJvdWdoQ2FjaGUmdXJsPScgKworICAgICAgICAgIGVuY29kZVVSSUNvbXBvbmVudChPVEhFUl9P
UklHSU5fT1VUX1NDT1BFKQorICAgICAgXSwKKyAgICAgIFtdLAorICAgICAgW10KKyAgICBdLAog
ICAgICdSZWRpcmVjdCB0byBvdGhlci1vcmlnaW4gb3V0LXNjb3BlIHdpdGggb3BhcXVlIHJlZGly
ZWN0IHJlc3BvbnNlIHdoaWNoICcgKwogICAgICdpcyBwYXNzZWQgdGhyb3VnaCBDYWNoZS4nKTsK
LQotdXJsMSA9IFNDT1BFMSArICdzdz1tYW51YWxUaHJvdWdoQ2FjaGUmdXJsPScgKwotICAgICAg
IGVuY29kZVVSSUNvbXBvbmVudChPVEhFUl9PUklHSU5fU0NPUEUpOwotdXJsMiA9IE9USEVSX09S
SUdJTl9TQ09QRTsKIHJlZGlyZWN0X3Rlc3QoCi0gICAgdXJsMSwKLSAgICB1cmwyLAorICAgIFND
T1BFMSArICdzdz1tYW51YWxUaHJvdWdoQ2FjaGUmdXJsPScgKworICAgICAgICBlbmNvZGVVUklD
b21wb25lbnQoT1RIRVJfT1JJR0lOX1NDT1BFKSwKKyAgICBPVEhFUl9PUklHSU5fU0NPUEUsCiAg
ICAgWwotICAgICAgW3t1cmw6IHVybDEsIHJlc3VsdGluZ0NsaWVudElkVGFnOiAnYSd9XSwKLSAg
ICAgIFtdLAotICAgICAgW3t1cmw6IHVybDIsIHJlc3VsdGluZ0NsaWVudElkVGFnOiAneCd9XSwK
KyAgICAgIFtTQ09QRTEgKyAnc3c9bWFudWFsVGhyb3VnaENhY2hlJnVybD0nICsKKyAgICAgICAg
ICBlbmNvZGVVUklDb21wb25lbnQoT1RIRVJfT1JJR0lOX1NDT1BFKV0sCisgICAgICAgW10sCisg
ICAgICAgW09USEVSX09SSUdJTl9TQ09QRV0sCiAgICAgXSwKLSAgICAneCcsCiAgICAgJ1JlZGly
ZWN0IHRvIG90aGVyLW9yaWdpbiBpbi1zY29wZSB3aXRoIG9wYXF1ZSByZWRpcmVjdCByZXNwb25z
ZSB3aGljaCAnICsKICAgICAnaXMgcGFzc2VkIHRocm91Z2ggQ2FjaGUuJyk7Ci0KLXVybCA9IFND
T1BFMSArICdzdz1tYW51YWxUaHJvdWdoQ2FjaGUmbm9Mb2NhdGlvblJlZGlyZWN0JzsKIHJlZGly
ZWN0X3Rlc3QoCi0gICAgdXJsLAotICAgIHVybCwKLSAgICBbW3t1cmwsIHJlc3VsdGluZ0NsaWVu
dElkVGFnOiAneCd9XSwgW10sIFtdXSwKLSAgICAneCcsCisgICAgU0NPUEUxICsgJ3N3PW1hbnVh
bFRocm91Z2hDYWNoZSZub0xvY2F0aW9uUmVkaXJlY3QnLAorICAgIFNDT1BFMSArICdzdz1tYW51
YWxUaHJvdWdoQ2FjaGUmbm9Mb2NhdGlvblJlZGlyZWN0JywKKyAgICBbW1NDT1BFMSArICdzdz1t
YW51YWxUaHJvdWdoQ2FjaGUmbm9Mb2NhdGlvblJlZGlyZWN0J10sIFtdLCBbXV0sCiAgICAgJ05v
IGxvY2F0aW9uIHJlZGlyZWN0IHJlc3BvbnNlIHZpYSBDYWNoZS4nKTsKIAogLy8gQ2xlYW4gdXAg
dGhlIHRlc3QgZW52aXJvbm1lbnQuIFRoaXMgcHJvbWlzZV90ZXN0KCkgbmVlZHMgdG8gYmUgdGhl
IGxhc3Qgb25lLgpAQCAtODM5LDcgKzQxOCw3IEBAIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsK
ICAgICBpZiAocmVnaXN0cmF0aW9uKQogICAgICAgYXdhaXQgcmVnaXN0cmF0aW9uLnVucmVnaXN0
ZXIoKTsKICAgfSk7Ci0gIGF3YWl0IHNlbmRfdG9faWZyYW1lKG90aGVyX29yaWdpbl9mcmFtZSwg
e2NvbW1hbmQ6ICd1bnJlZ2lzdGVyJ30pOworICBhd2FpdCBzZW5kX3RvX2lmcmFtZShvdGhlcl9v
cmlnaW5fZnJhbWUsICd1bnJlZ2lzdGVyJyk7CiAgIG90aGVyX29yaWdpbl9mcmFtZS5yZW1vdmUo
KTsKIH0sICdjbGVhbiB1cCBnbG9iYWwgc3RhdGUnKTsKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvb25hY3RpdmF0ZS1zY3JpcHQtZXJyb3IuaHR0cHMuaHRtbCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL29uYWN0aXZhdGUtc2NyaXB0LWVycm9yLmh0dHBzLmh0bWwKaW5kZXgg
ZjVlODBiYjlhNDU2YmM1N2YyYTgyMWUxZmQ2OTExNGU2YWU4NjM4YS4uNmMxNjM1N2YzY2M1YWJh
MTgxZWUwNzk4YWM5ZmFkYzIzODhjM2YzYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
b25hY3RpdmF0ZS1zY3JpcHQtZXJyb3IuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9vbmFjdGl2YXRlLXNjcmlwdC1lcnJvci5odHRwcy5odG1sCkBAIC0zNSw3ICszNSw3IEBAIGZ1
bmN0aW9uIG1ha2VfdGVzdChuYW1lLCBzY3JpcHQpIHsKICAgICAgICAgICAgIHJlZ2lzdHJhdGlv
biA9IHI7CiAKICAgICAgICAgICAgIHQuYWRkX2NsZWFudXAoZnVuY3Rpb24oKSB7Ci0gICAgICAg
ICAgICAgICAgcmV0dXJuIHIudW5yZWdpc3RlcigpOworICAgICAgICAgICAgICAgIHIudW5yZWdp
c3RlcigpOwogICAgICAgICAgICAgICB9KTsKIAogICAgICAgICAgICAgcmV0dXJuIHdhaXRfZm9y
X2luc3RhbGwocmVnaXN0cmF0aW9uLmluc3RhbGxpbmcpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvcGVyZm9ybWFuY2UtdGltZWxpbmUuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3BlcmZvcm1hbmNlLXRpbWVsaW5lLmh0dHBzLmh0bWwKaW5kZXggMWZlMTlkYTUzYmU2YzQ2
MGNhZTVmMDY5Nzk0YmJkZWUzZjRhMGRhOC4uYjY2ZDRhODIxODYxYjZlNmUzN2U0N2I2NTJmMzI3
NTZjODA2MjA1OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcGVyZm9ybWFuY2UtdGlt
ZWxpbmUuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9wZXJmb3JtYW5jZS10aW1l
bGluZS5odHRwcy5odG1sCkBAIC0xNywxMSArMTcsNyBAQCBwcm9taXNlX3Rlc3QodCA9PiB7CiAg
IGxldCBzbG93VVJMID0gdXJsICsgJyZzbG93JzsKICAgbGV0IGZyYW1lOwogICByZXR1cm4gc2Vy
dmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgc2NyaXB0LCBzY29wZSkKLSAg
ICAudGhlbihyZWcgPT4gewotICAgICAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHNlcnZpY2Vfd29y
a2VyX3VucmVnaXN0ZXIodCwgc2NvcGUpKTsKLQotICAgICAgICByZXR1cm4gd2FpdF9mb3Jfc3Rh
dGUodCwgcmVnLmluc3RhbGxpbmcsICdhY3RpdmF0ZWQnKTsKLSAgICAgIH0pCisgICAgLnRoZW4o
cmVnID0+IHdhaXRfZm9yX3N0YXRlKHQsIHJlZy5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJykpCiAg
ICAgLnRoZW4oXyA9PiB3aXRoX2lmcmFtZShzY29wZSkpCiAgICAgLnRoZW4oZiA9PiB7CiAgICAg
ICBmcmFtZSA9IGY7CkBAIC00Myw2ICszOSw3IEBAIHByb21pc2VfdGVzdCh0ID0+IHsKICAgICAg
IGFzc2VydF9ncmVhdGVyX3RoYW4oc2xvd1VSTFRpbWUsIHVybFRpbWUgKyAxMDAwLAogICAgICAg
ICAgICAgICAgICAgJ1Nsb3cgc2VydmljZSB3b3JrZXIgcmVxdWVzdCBzaG91bGQgbWVhc3VyZSBp
bmNyZWFzZWQgZGVsYXkuJyk7CiAgICAgICBmcmFtZS5yZW1vdmUoKTsKKyAgICAgIHJldHVybiBz
ZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9kb25lKHQsIHNjb3BlKTsKICAgICB9KQogfSwg
J2VtcHR5IHNlcnZpY2Ugd29ya2VyIGZldGNoIGV2ZW50IGluY2x1ZGVkIGluIHBlcmZvcm1hbmNl
IHRpbWluZ3MnKTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcG9zdG1lc3NhZ2Ut
ZnJvbS13YWl0aW5nLXNlcnZpY2V3b3JrZXIuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L3Bvc3RtZXNzYWdlLWZyb20td2FpdGluZy1zZXJ2aWNld29ya2VyLmh0dHBzLmh0bWwKaW5kZXgg
MTE3ZGVmOWViMmE2YzEzMmQ0ZDNmNDRiMWNiMDdhZGNiOWVlZWY2MC4uNmQwYTVkMzI3NGQ0MTRi
ZmNhMDMzOTA1NDBjMjk0OTBjNjYzODg3OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
cG9zdG1lc3NhZ2UtZnJvbS13YWl0aW5nLXNlcnZpY2V3b3JrZXIuaHR0cHMuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci9wb3N0bWVzc2FnZS1mcm9tLXdhaXRpbmctc2VydmljZXdvcmtlci5o
dHRwcy5odG1sCkBAIC0xNiwxNSArMTYsMTMgQEAgZnVuY3Rpb24gZWNobyh3b3JrZXIsIGRhdGEp
IHsKICAgfSk7CiB9CiAKLXByb21pc2VfdGVzdCh0ID0+IHsKK2FzeW5jX3Rlc3QodCA9PiB7CiAg
IGxldCBzY3JpcHQgPSAncmVzb3VyY2VzL2VjaG8tbWVzc2FnZS10by1zb3VyY2Utd29ya2VyLmpz
JzsKICAgbGV0IHNjb3BlID0gJ3Jlc291cmNlcy9jbGllbnQtcG9zdG1lc3NhZ2UtZnJvbS13YWl0
LXNlcnZpY2V3b3JrZXInOwogICBsZXQgcmVnaXN0cmF0aW9uOwogICBsZXQgZnJhbWU7Ci0gIHJl
dHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCBzY3JpcHQsIHNj
b3BlKQorICBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCBzY3JpcHQs
IHNjb3BlKQogICAgIC50aGVuKHN3ciA9PiB7Ci0gICAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHNl
cnZpY2Vfd29ya2VyX3VucmVnaXN0ZXIodCwgc2NvcGUpKTsKLQogICAgICAgcmVnaXN0cmF0aW9u
ID0gc3dyOwogICAgICAgcmV0dXJuIHdhaXRfZm9yX3N0YXRlKHQsIHJlZ2lzdHJhdGlvbi5pbnN0
YWxsaW5nLCAnYWN0aXZhdGVkJyk7CiAgICAgfSkudGhlbihfID0+IHsKQEAgLTQ1LDYgKzQzLDcg
QEAgcHJvbWlzZV90ZXN0KHQgPT4gewogICAgICAgYXNzZXJ0X2VxdWFscyhldnQuc291cmNlLCBy
ZWdpc3RyYXRpb24uYWN0aXZlLAogICAgICAgICAgICAgICAgICAgICAnbWVzc2FnZSBldmVudCBz
b3VyY2Ugc2hvdWxkIGJlIGNvcnJlY3QnKTsKICAgICAgIGZyYW1lLnJlbW92ZSgpOwotICAgIH0p
OworICAgIH0pLnRoZW4oXyA9PiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9kb25lKHQs
IHNjb3BlKSApCisgICAgLmNhdGNoKHVucmVhY2hlZF9yZWplY3Rpb24odCkpOwogfSwgJ0NsaWVu
dC5wb3N0TWVzc2FnZSgpIGZyb20gd2FpdGluZyBzZXJ2aWNld29ya2VyLicpOwogPC9zY3JpcHQ+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9wb3N0bWVzc2FnZS10by1jbGllbnQtbWVz
c2FnZS1xdWV1ZS5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9wb3N0bWVz
c2FnZS10by1jbGllbnQtbWVzc2FnZS1xdWV1ZS5odHRwcy1leHBlY3RlZC50eHQKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI1YWFkYmEwMDRiYjc5OTM2YmFjNzFmNjEyNjFkMjQwZWNm
YjM1ZjguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvcG9zdG1lc3NhZ2UtdG8tY2xpZW50LW1lc3NhZ2UtcXVldWUuaHR0cHMt
ZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNyArMCwwIEBACi0KLVBBU1MgTWVzc2Fn
ZXMgZnJvbSBTZXJ2aWNlV29ya2VyIHRvIENsaWVudCBvbmx5IHJlY2VpdmVkIGFmdGVyIERPTUNv
bnRlbnRMb2FkZWQgZXZlbnQuIAotUEFTUyBNZXNzYWdlcyBmcm9tIFNlcnZpY2VXb3JrZXIgdG8g
Q2xpZW50IG9ubHkgcmVjZWl2ZWQgYWZ0ZXIgY2FsbGluZyBzdGFydE1lc3NhZ2VzKCkuIAotUEFT
UyBNZXNzYWdlcyBmcm9tIFNlcnZpY2VXb3JrZXIgdG8gQ2xpZW50IG9ubHkgcmVjZWl2ZWQgYWZ0
ZXIgc2V0dGluZyBvbm1lc3NhZ2UuIAotUEFTUyBNaWNyb3Rhc2tzIHJ1biBiZWZvcmUgZGlzcGF0
Y2hpbmcgbWVzc2FnZXMgYWZ0ZXIgY2FsbGluZyBzdGFydE1lc3NhZ2VzKCkuIAotUEFTUyBNaWNy
b3Rhc2tzIHJ1biBiZWZvcmUgZGlzcGF0Y2hpbmcgbWVzc2FnZXMgYWZ0ZXIgc2V0dGluZyBvbm1l
c3NhZ2UuIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9wb3N0bWVzc2FnZS10by1j
bGllbnQtbWVzc2FnZS1xdWV1ZS5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcG9zdG1l
c3NhZ2UtdG8tY2xpZW50LW1lc3NhZ2UtcXVldWUuaHR0cHMuaHRtbApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggODNlNWY0NTQwZDE0MTFlMmEyMTVlYmU1OWQyMDM3ZjM2OWM0ODYxNi4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9wb3N0bWVzc2FnZS10by1jbGllbnQtbWVzc2FnZS1xdWV1ZS5odHRwcy5odG1sCisr
KyAvZGV2L251bGwKQEAgLTEsMjEyICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPHRpdGxlPlNl
cnZpY2UgV29ya2VyOiBwb3N0TWVzc2FnZSB0byBDbGllbnQgKG1lc3NhZ2UgcXVldWUpPC90aXRs
ZT4KLTxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSIvY29tbW9uL2dldC1ob3N0LWluZm8uc3ViLmpzIj48L3NjcmlwdD4KLTxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvdGVzdC1oZWxwZXJzLnN1Yi5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
PgotLy8gVGhpcyBmdW5jdGlvbiBjcmVhdGVzIGEgbWVzc2FnZSBsaXN0ZW5lciB0aGF0IGNhcHR1
cmVzIGFsbCBtZXNzYWdlcwotLy8gc2VudCB0byB0aGlzIHdpbmRvdyBhbmQgbWF0Y2hlcyB0aGVt
IHdpdGggY29ycmVzcG9uZGluZyByZXF1ZXN0cy4KLS8vIFRoaXMgZnJlZXMgdGVzdCBjb2RlIGZy
b20gaGF2aW5nIHRvIHVzZSBjbHVua3kgY29uc3RydWN0cyBqdXN0IHRvCi0vLyBhdm9pZCByYWNl
IGNvbmRpdGlvbnMsIHNpbmNlIHRoZSByZWxhdGl2ZSBvcmRlciBvZiBtZXNzYWdlIGFuZAotLy8g
cmVxdWVzdCBhcnJpdmFsIGRvZXNuJ3QgbWF0dGVyLgotZnVuY3Rpb24gY3JlYXRlX21lc3NhZ2Vf
bGlzdGVuZXIodCkgewotICAgIGNvbnN0IGxpc3RlbmVyID0gewotICAgICAgICBtZXNzYWdlczog
bmV3IFNldCgpLAotICAgICAgICByZXF1ZXN0czogbmV3IFNldCgpLAotICAgICAgICB3YWl0Rm9y
OiBmdW5jdGlvbihwcmVkaWNhdGUpIHsKLSAgICAgICAgICAgIGZvciAoY29uc3QgZXZlbnQgb2Yg
dGhpcy5tZXNzYWdlcykgewotICAgICAgICAgICAgICAgIC8vIElmIGEgbWVzc2FnZSBzYXRpc2Z5
aW5nIHRoZSBwcmVkaWNhdGUgaGFzIGFscmVhZHkKLSAgICAgICAgICAgICAgICAvLyBhcnJpdmVk
LCBpdCBnZXRzIG1hdGNoZWQgdG8gdGhpcyByZXF1ZXN0LgotICAgICAgICAgICAgICAgIGlmIChw
cmVkaWNhdGUoZXZlbnQpKSB7Ci0gICAgICAgICAgICAgICAgICAgIHRoaXMubWVzc2FnZXMuZGVs
ZXRlKGV2ZW50KTsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShl
dmVudCk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAv
LyBJZiBubyBtYXRjaCB3YXMgZm91bmQsIHRoZSByZXF1ZXN0IGlzIHN0b3JlZCBhbmQgYQotICAg
ICAgICAgICAgLy8gcHJvbWlzZSBpcyByZXR1cm5lZC4KLSAgICAgICAgICAgIGNvbnN0IHJlcXVl
c3QgPSB7IHByZWRpY2F0ZSB9OwotICAgICAgICAgICAgY29uc3QgcHJvbWlzZSA9IG5ldyBQcm9t
aXNlKHJlc29sdmUgPT4gcmVxdWVzdC5yZXNvbHZlID0gcmVzb2x2ZSk7Ci0gICAgICAgICAgICB0
aGlzLnJlcXVlc3RzLmFkZChyZXF1ZXN0KTsKLSAgICAgICAgICAgIHJldHVybiBwcm9taXNlOwot
ICAgICAgICB9Ci0gICAgfTsKLSAgICB3aW5kb3cub25tZXNzYWdlID0gdC5zdGVwX2Z1bmMoZXZl
bnQgPT4gewotICAgICAgICBmb3IgKGNvbnN0IHJlcXVlc3Qgb2YgbGlzdGVuZXIucmVxdWVzdHMp
IHsKLSAgICAgICAgICAgIC8vIElmIHRoZSBuZXcgbWVzc2FnZSBtYXRjaGVzIGEgc3RvcmVkIHJl
cXVlc3QncwotICAgICAgICAgICAgLy8gcHJlZGljYXRlLCB0aGUgcmVxdWVzdCdzIHByb21pc2Ug
aXMgcmVzb2x2ZWQgd2l0aCB0aGlzCi0gICAgICAgICAgICAvLyBtZXNzYWdlLgotICAgICAgICAg
ICAgaWYgKHJlcXVlc3QucHJlZGljYXRlKGV2ZW50KSkgewotICAgICAgICAgICAgICAgIGxpc3Rl
bmVyLnJlcXVlc3RzLmRlbGV0ZShyZXF1ZXN0KTsKLSAgICAgICAgICAgICAgICByZXF1ZXN0LnJl
c29sdmUoZXZlbnQpOwotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIH0KLSAg
ICAgICAgfTsKLQotICAgICAgICAvLyBObyBvdXRzdGFuZGluZyByZXF1ZXN0IGZvciB0aGlzIG1l
c3NhZ2UsIHN0b3JlIGl0IGluIGNhc2UKLSAgICAgICAgLy8gaXQncyByZXF1ZXN0ZWQgbGF0ZXIu
Ci0gICAgICAgIGxpc3RlbmVyLm1lc3NhZ2VzLmFkZChldmVudCk7Ci0gICAgfSk7Ci0gICAgcmV0
dXJuIGxpc3RlbmVyOwotfQotCi1hc3luYyBmdW5jdGlvbiBzZXJ2aWNlX3dvcmtlcl9yZWdpc3Rl
cl9hbmRfYWN0aXZhdGUodCwgc2NyaXB0LCBzY29wZSkgewotICAgIGNvbnN0IHJlZ2lzdHJhdGlv
biA9IGF3YWl0IHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHNjcmlw
dCwgc2NvcGUpOwotICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcmVnaXN0cmF0aW9uLnVucmVnaXN0
ZXIoKSk7Ci0gICAgY29uc3Qgd29ya2VyID0gcmVnaXN0cmF0aW9uLmluc3RhbGxpbmc7Ci0gICAg
YXdhaXQgd2FpdF9mb3Jfc3RhdGUodCwgd29ya2VyLCAnYWN0aXZhdGVkJyk7Ci0gICAgcmV0dXJu
IHdvcmtlcjsKLX0KLQotLy8gQWRkIGFuIGlmcmFtZSAocGFyZW50KSB3aG9zZSBkb2N1bWVudCBj
b250YWlucyBhIG5lc3RlZCBpZnJhbWUKLS8vIChjaGlsZCksIHRoZW4gc2V0IHRoZSBjaGlsZCdz
IHNyYyBhdHRyaWJ1dGUgdG8gY2hpbGRfdXJsIGFuZCByZXR1cm4KLS8vIGl0cyBXaW5kb3cgKHdp
dGhvdXQgd2FpdGluZyBmb3IgaXQgdG8gZmluaXNoIGxvYWRpbmcpLgotYXN5bmMgZnVuY3Rpb24g
d2l0aF9uZXN0ZWRfaWZyYW1lcyh0LCBjaGlsZF91cmwpIHsKLSAgICBjb25zdCBwYXJlbnQgPSBh
d2FpdCB3aXRoX2lmcmFtZSgncmVzb3VyY2VzL25lc3RlZC1pZnJhbWUtcGFyZW50Lmh0bWw/cm9s
ZT1wYXJlbnQnKTsKLSAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBhcmVudC5yZW1vdmUoKSk7Ci0g
ICAgY29uc3QgY2hpbGQgPSBwYXJlbnQuY29udGVudFdpbmRvdy5kb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnY2hpbGQnKTsKLSAgICBjaGlsZC5zZXRBdHRyaWJ1dGUoJ3NyYycsIGNoaWxkX3VybCk7
Ci0gICAgcmV0dXJuIGNoaWxkLmNvbnRlbnRXaW5kb3c7Ci19Ci0KLS8vIFJldHVybnMgYSBwcmVk
aWNhdGUgbWF0Y2hpbmcgYSBmZXRjaCBtZXNzYWdlIHdpdGggdGhlIHNwZWNpZmllZAotLy8ga2V5
LgotZnVuY3Rpb24gZmV0Y2hfbWVzc2FnZShrZXkpIHsKLSAgICByZXR1cm4gZXZlbnQgPT4gZXZl
bnQuZGF0YS50eXBlID09PSAnZmV0Y2gnICYmIGV2ZW50LmRhdGEua2V5ID09PSBrZXk7Ci19Ci0K
LS8vIFJldHVybnMgYSBwcmVkaWNhdGUgbWF0Y2hpbmcgYSBwaW5nIG1lc3NhZ2Ugd2l0aCB0aGUg
c3BlY2lmaWVkCi0vLyBwYXlsb2FkLgotZnVuY3Rpb24gcGluZ19tZXNzYWdlKGRhdGEpIHsKLSAg
ICByZXR1cm4gZXZlbnQgPT4gZXZlbnQuZGF0YS50eXBlID09PSAncGluZycgJiYgZXZlbnQuZGF0
YS5kYXRhID09PSBkYXRhOwotfQotCi0vLyBBIGNsaWVudCBtZXNzYWdlIHF1ZXVlIHRlc3QgaXMg
YSB0ZXN0aGFybmVzcy5qcyB0ZXN0IHdpdGggc29tZQotLy8gYWRkaXRpb25hbCBzZXR1cDoKLS8v
IDEuIEEgbGlzdGVuZXIgKHNlZSBjcmVhdGVfbWVzc2FnZV9saXN0ZW5lcikKLS8vIDIuIEFuIGFj
dGl2ZSBzZXJ2aWNlIHdvcmtlcgotLy8gMy4gVHdvIG5lc3RlZCBpZnJhbWVzCi0vLyA0LiBBIHN0
YXRlIHRyYW5zaXRpb24gZnVuY3Rpb24gdGhhdCBjb250cm9scyB0aGUgb3JkZXIgb2YgZXZlbnRz
Ci0vLyAgICBkdXJpbmcgdGhlIHRlc3QKLWZ1bmN0aW9uIGNsaWVudF9tZXNzYWdlX3F1ZXVlX3Rl
c3QodXJsLCB0ZXN0X2Z1bmN0aW9uLCBkZXNjcmlwdGlvbikgewotICAgIHByb21pc2VfdGVzdChh
c3luYyB0ID0+IHsKLSAgICAgICAgdC5saXN0ZW5lciA9IGNyZWF0ZV9tZXNzYWdlX2xpc3RlbmVy
KHQpOwotCi0gICAgICAgIGNvbnN0IHNjcmlwdCA9ICdyZXNvdXJjZXMvc3RhbGxpbmctc2Vydmlj
ZS13b3JrZXIuanMnOwotICAgICAgICBjb25zdCBzY29wZSA9ICdyZXNvdXJjZXMvJzsKLSAgICAg
ICAgdC5zZXJ2aWNlX3dvcmtlciA9IGF3YWl0IHNlcnZpY2Vfd29ya2VyX3JlZ2lzdGVyX2FuZF9h
Y3RpdmF0ZSh0LCBzY3JpcHQsIHNjb3BlKTsKLQotICAgICAgICAvLyBXZSBjcmVhdGUgdHdvIG5l
c3RlZCBpZnJhbWVzIHN1Y2ggdGhhdCBib3RoIGFyZSBjb250cm9sbGVkIGJ5Ci0gICAgICAgIC8v
IHRoZSBuZXdseSBpbnN0YWxsZWQgc2VydmljZSB3b3JrZXIuCi0gICAgICAgIGNvbnN0IGNoaWxk
X3VybCA9IHVybCArICc/cm9sZT1jaGlsZCc7Ci0gICAgICAgIHQuZnJhbWUgPSBhd2FpdCB3aXRo
X25lc3RlZF9pZnJhbWVzKHQsIGNoaWxkX3VybCk7Ci0KLSAgICAgICAgdC5zdGF0ZV90cmFuc2l0
aW9uID0gYXN5bmMgZnVuY3Rpb24oZnJvbSwgdG8sIHNjcmlwdHMpIHsKLSAgICAgICAgICAgIC8v
IEEgc3RhdGUgdHJhbnNpdGlvbiBiZWdpbnMgd2l0aCB0aGUgY2hpbGQncyBwYXJzZXIKLSAgICAg
ICAgICAgIC8vIGZldGNoaW5nIGEgc2NyaXB0IGR1ZSB0byBhIDxzY3JpcHQ+IHRhZy4gVGhlIHJl
cXVlc3QKLSAgICAgICAgICAgIC8vIGFycml2ZXMgYXQgdGhlIHNlcnZpY2Ugd29ya2VyLCB3aGlj
aCBub3RpZmllcyB0aGUKLSAgICAgICAgICAgIC8vIHBhcmVudCwgd2hpY2ggaW4gdHVybiBub3Rp
ZmllcyB0aGUgdGVzdC4gTm90ZSB0aGF0IHRoZQotICAgICAgICAgICAgLy8gZXZlbnQgbG9vcCBr
ZWVwcyBzcGlubmluZyB3aGlsZSB0aGUgcGFyc2VyIGlzIHdhaXRpbmcuCi0gICAgICAgICAgICBj
b25zdCByZXF1ZXN0ID0gYXdhaXQgdGhpcy5saXN0ZW5lci53YWl0Rm9yKGZldGNoX21lc3NhZ2Uo
dG8pKTsKLQotICAgICAgICAgICAgLy8gVGhlIHRlc3QgaW5zdHJ1Y3RzIHRoZSBzZXJ2aWNlIHdv
cmtlciB0byBzZW5kIHR3byBwaW5nCi0gICAgICAgICAgICAvLyBtZXNzYWdlcyB0aHJvdWdoIHRo
ZSBDbGllbnQgaW50ZXJmYWNlOiBmaXJzdCB0byB0aGUKLSAgICAgICAgICAgIC8vIGNoaWxkLCB0
aGVuIHRvIHRoZSBwYXJlbnQuCi0gICAgICAgICAgICB0aGlzLnNlcnZpY2Vfd29ya2VyLnBvc3RN
ZXNzYWdlKGZyb20pOwotCi0gICAgICAgICAgICAvLyBXaGVuIHRoZSBwYXJlbnQgcmVjZWl2ZXMg
dGhlIHBpbmcgbWVzc2FnZSwgaXQgZm9yd2FyZHMKLSAgICAgICAgICAgIC8vIGl0IHRvIHRoZSB0
ZXN0LiBBc3N1bWluZyB0aGF0IG1lc3NhZ2VzIHRvIGJvdGggY2hpbGQKLSAgICAgICAgICAgIC8v
IGFuZCBwYXJlbnQgYXJlIG1hcHBlZCB0byB0aGUgc2FtZSB0YXNrIHF1ZXVlICh0aGlzIGlzCi0g
ICAgICAgICAgICAvLyBub3QgW3lldF0gcmVxdWlyZWQgYnkgdGhlIHNwZWMpLCByZWNlaXZpbmcg
dGhpcyBtZXNzYWdlCi0gICAgICAgICAgICAvLyBndWFyYW50ZWVzIHRoYXQgdGhlIGNoaWxkIGhh
cyBhbHJlYWR5IGRpc3BhdGNoZWQgaXRzCi0gICAgICAgICAgICAvLyBtZXNzYWdlIGlmIGl0IHdh
cyBhbGxvd2VkIHRvIGRvIHNvLgotICAgICAgICAgICAgYXdhaXQgdGhpcy5saXN0ZW5lci53YWl0
Rm9yKHBpbmdfbWVzc2FnZShmcm9tKSk7Ci0KLSAgICAgICAgICAgIC8vIEZpbmFsbHksIHJlcGx5
IHRvIHRoZSBzZXJ2aWNlIHdvcmtlcidzIGZldGNoCi0gICAgICAgICAgICAvLyBub3RpZmljYXRp
b24gd2l0aCB0aGUgc2NyaXB0IGl0IHNob3VsZCB1c2UgYXMgdGhlIGZldGNoCi0gICAgICAgICAg
ICAvLyByZXF1ZXN0J3MgcmVzcG9uc2UuIFRoaXMgaXMgYSBkZWZlbnNpdmUgbWVjaGFuaXNtIHRo
YXQKLSAgICAgICAgICAgIC8vIGVuc3VyZXMgdGhlIGNoaWxkJ3MgcGFyc2VyIHJlYWxseSBpcyBi
bG9ja2VkIHVudGlsIHRoZQotICAgICAgICAgICAgLy8gdGVzdCBpcyByZWFkeSB0byBjb250aW51
ZS4KLSAgICAgICAgICAgIHJlcXVlc3QucG9ydHNbMF0ucG9zdE1lc3NhZ2UoW2BzdGF0ZSA9ICck
e3RvfSc7YF0uY29uY2F0KHNjcmlwdHMpKTsKLSAgICAgICAgfTsKLQotICAgICAgICBhd2FpdCB0
ZXN0X2Z1bmN0aW9uKHQpOwotICAgIH0sIGRlc2NyaXB0aW9uKTsKLX0KLQotZnVuY3Rpb24gY2xp
ZW50X21lc3NhZ2VfcXVldWVfZW5hYmxlX3Rlc3QoCi0gICAgaW5zdGFsbF9zY3JpcHQsCi0gICAg
c3RhcnRfc2NyaXB0LAotICAgIGVhcmxpZXN0X2Rpc3BhdGNoLAotICAgIGRlc2NyaXB0aW9uKQot
ewotICAgIGZ1bmN0aW9uIGFzc2VydF9zdGF0ZV9sZXNzX3RoYW5fZXF1YWwoc3RhdGUxLCBzdGF0
ZTIsIGV4cGxhbmF0aW9uKSB7Ci0gICAgICAgIGNvbnN0IHN0YXRlcyA9IFsnaW5pdCcsICdpbnN0
YWxsJywgJ3N0YXJ0JywgJ2ZpbmlzaCcsICdsb2FkZWQnXTsKLSAgICAgICAgY29uc3QgaW5kZXgx
ID0gc3RhdGVzLmluZGV4T2Yoc3RhdGUxKTsKLSAgICAgICAgY29uc3QgaW5kZXgyID0gc3RhdGVz
LmluZGV4T2Yoc3RhdGUyKTsKLSAgICAgICAgaWYgKGluZGV4MSA+IGluZGV4MikKLSAgICAgICAg
ICBhc3NlcnRfdW5yZWFjaGVkKGV4cGxhbmF0aW9uKTsKLSAgICB9Ci0KLSAgICBjbGllbnRfbWVz
c2FnZV9xdWV1ZV90ZXN0KCdlbmFibGUtY2xpZW50LW1lc3NhZ2UtcXVldWUuaHRtbCcsIGFzeW5j
IHQgPT4gewotICAgICAgICAvLyBXaGlsZSBwYXJzaW5nIHRoZSBjaGlsZCdzIGRvY3VtZW50LCB0
aGUgY2hpbGQgdHJhbnNpdGlvbnMKLSAgICAgICAgLy8gZnJvbSB0aGUgJ2luaXQnIHN0YXRlIGFs
bCB0aGUgd2F5IHRvIHRoZSAnZmluaXNoJyBzdGF0ZS4KLSAgICAgICAgLy8gT25jZSBwYXJzaW5n
IGlzIGZpbmlzaGVkIGl0IHdvdWxkIGVudGVyIHRoZSBmaW5hbCAnbG9hZGVkJwotICAgICAgICAv
LyBzdGF0ZS4gQWxsIGJ1dCB0aGUgbGFzdCB0cmFuc2l0aW9uIHJlcXVpcmUgYXNzaXRhbmNlIGZy
b20KLSAgICAgICAgLy8gdGhlIHRlc3QuCi0gICAgICAgIGF3YWl0IHQuc3RhdGVfdHJhbnNpdGlv
bignaW5pdCcsICdpbnN0YWxsJywgW2luc3RhbGxfc2NyaXB0XSk7Ci0gICAgICAgIGF3YWl0IHQu
c3RhdGVfdHJhbnNpdGlvbignaW5zdGFsbCcsICdzdGFydCcsIFtzdGFydF9zY3JpcHRdKTsKLSAg
ICAgICAgYXdhaXQgdC5zdGF0ZV90cmFuc2l0aW9uKCdzdGFydCcsICdmaW5pc2gnLCBbXSk7Ci0K
LSAgICAgICAgLy8gV2FpdCBmb3IgYWxsIG1lc3NhZ2VzIHRvIGdldCBkaXNwYXRjaGVkIG9uIHRo
ZSBjaGlsZCdzCi0gICAgICAgIC8vIFNlcnZpY2VXb3JrZXJDb250YWluZXIgYW5kIHRoZW4gdmVy
aWZ5IHRoYXQgZWFjaCBtZXNzYWdlCi0gICAgICAgIC8vIHdhcyBkaXNwYXRjaGVkIGFmdGVyIHxl
YXJsaWVzdF9kaXNwYXRjaHwuCi0gICAgICAgIGNvbnN0IHJlcG9ydCA9IGF3YWl0IHQuZnJhbWUu
cmVwb3J0OwotICAgICAgICBbJ2luaXQnLCAnaW5zdGFsbCcsICdzdGFydCddLmZvckVhY2goc3Rh
dGUgPT4gewotICAgICAgICAgICAgY29uc3QgZXhwbGFuYXRpb24gPSBgTWVzc2FnZSBzZW50IGlu
IHN0YXRlICcke3N0YXRlfScgd2FzIGRpc3BhdGNoZWQgaW4gJyR7cmVwb3J0W3N0YXRlXX0nLCBz
aG91bGQgYmUgZGlzcGF0Y2hlZCBubyBlYXJsaWVyIHRoYW4gJyR7ZWFybGllc3RfZGlzcGF0Y2h9
J2A7Ci0gICAgICAgICAgICBhc3NlcnRfc3RhdGVfbGVzc190aGFuX2VxdWFsKGVhcmxpZXN0X2Rp
c3BhdGNoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBvcnRb
c3RhdGVdLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBsYW5h
dGlvbik7Ci0gICAgICAgIH0pOwotICAgIH0sIGRlc2NyaXB0aW9uKTsKLX0KLQotY29uc3QgZW1w
dHlfc2NyaXB0ID0gYGA7Ci0KLWNvbnN0IGFkZF9ldmVudF9saXN0ZW5lciA9Ci0gICAgYG5hdmln
YXRvci5zZXJ2aWNlV29ya2VyLmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCBoYW5kbGVfbWVz
c2FnZSk7YDsKLQotY29uc3Qgc2V0X29ubWVzc2FnZSA9IGBuYXZpZ2F0b3Iuc2VydmljZVdvcmtl
ci5vbm1lc3NhZ2UgPSBoYW5kbGVfbWVzc2FnZTtgOwotCi1jb25zdCBzdGFydF9tZXNzYWdlcyA9
IGBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5zdGFydE1lc3NhZ2VzKCk7YDsKLQotY2xpZW50X21l
c3NhZ2VfcXVldWVfZW5hYmxlX3Rlc3QoYWRkX2V2ZW50X2xpc3RlbmVyLCBlbXB0eV9zY3JpcHQs
ICdsb2FkZWQnLAotICAgICdNZXNzYWdlcyBmcm9tIFNlcnZpY2VXb3JrZXIgdG8gQ2xpZW50IG9u
bHkgcmVjZWl2ZWQgYWZ0ZXIgRE9NQ29udGVudExvYWRlZCBldmVudC4nKTsKLQotY2xpZW50X21l
c3NhZ2VfcXVldWVfZW5hYmxlX3Rlc3QoYWRkX2V2ZW50X2xpc3RlbmVyLCBzdGFydF9tZXNzYWdl
cywgJ3N0YXJ0JywKLSAgICAnTWVzc2FnZXMgZnJvbSBTZXJ2aWNlV29ya2VyIHRvIENsaWVudCBv
bmx5IHJlY2VpdmVkIGFmdGVyIGNhbGxpbmcgc3RhcnRNZXNzYWdlcygpLicpOwotCi1jbGllbnRf
bWVzc2FnZV9xdWV1ZV9lbmFibGVfdGVzdChzZXRfb25tZXNzYWdlLCBlbXB0eV9zY3JpcHQsICdp
bnN0YWxsJywKLSAgICAnTWVzc2FnZXMgZnJvbSBTZXJ2aWNlV29ya2VyIHRvIENsaWVudCBvbmx5
IHJlY2VpdmVkIGFmdGVyIHNldHRpbmcgb25tZXNzYWdlLicpOwotCi1jb25zdCByZXNvbHZlX21h
bnVhbF9wcm9taXNlID0gYHJlc29sdmVfbWFudWFsX3Byb21pc2UoKTtgCi0KLWFzeW5jIGZ1bmN0
aW9uIHRlc3RfbWljcm90YXNrc193aGVuX2NsaWVudF9tZXNzYWdlX3F1ZXVlX2VuYWJsZWQodCwg
c2NyaXB0cykgewotICAgIGF3YWl0IHQuc3RhdGVfdHJhbnNpdGlvbignaW5pdCcsICdzdGFydCcs
IHNjcmlwdHMuY29uY2F0KFtyZXNvbHZlX21hbnVhbF9wcm9taXNlXSkpOwotICAgIGxldCByZXN1
bHQgPSBhd2FpdCB0LmZyYW1lLnJlc3VsdDsKLSAgICBhc3NlcnRfZXF1YWxzKHJlc3VsdFswXSwg
J21pY3JvdGFzaycsICdUaGUgbWljcm90YXNrIHdhcyBleGVjdXRlZCBmaXJzdC4nKTsKLSAgICBh
c3NlcnRfZXF1YWxzKHJlc3VsdFsxXSwgJ21lc3NhZ2UnLCAnVGhlIG1lc3NhZ2Ugd2FzIGRpc3Bh
dGNoZWQuJyk7Ci19Ci0KLWNsaWVudF9tZXNzYWdlX3F1ZXVlX3Rlc3QoJ21lc3NhZ2UtdnMtbWlj
cm90YXNrLmh0bWwnLCB0ID0+IHsKLSAgICByZXR1cm4gdGVzdF9taWNyb3Rhc2tzX3doZW5fY2xp
ZW50X21lc3NhZ2VfcXVldWVfZW5hYmxlZCh0LCBbCi0gICAgICAgIGFkZF9ldmVudF9saXN0ZW5l
ciwKLSAgICAgICAgc3RhcnRfbWVzc2FnZXMsCi0gICAgXSk7Ci19LCAnTWljcm90YXNrcyBydW4g
YmVmb3JlIGRpc3BhdGNoaW5nIG1lc3NhZ2VzIGFmdGVyIGNhbGxpbmcgc3RhcnRNZXNzYWdlcygp
LicpOwotCi1jbGllbnRfbWVzc2FnZV9xdWV1ZV90ZXN0KCdtZXNzYWdlLXZzLW1pY3JvdGFzay5o
dG1sJywgdCA9PiB7Ci0gICAgcmV0dXJuIHRlc3RfbWljcm90YXNrc193aGVuX2NsaWVudF9tZXNz
YWdlX3F1ZXVlX2VuYWJsZWQodCwgW3NldF9vbm1lc3NhZ2VdKTsKLX0sICdNaWNyb3Rhc2tzIHJ1
biBiZWZvcmUgZGlzcGF0Y2hpbmcgbWVzc2FnZXMgYWZ0ZXIgc2V0dGluZyBvbm1lc3NhZ2UuJyk7
Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Bvc3RtZXNzYWdlLXRv
LWNsaWVudC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcG9zdG1lc3NhZ2UtdG8tY2xp
ZW50Lmh0dHBzLmh0bWwKaW5kZXggZjgzNGE0YmZmZTIwYzY5Y2JkNTdhZTRjNmJmOTIyMDgzZDM1
NTRkNi4uMTVkMmU4ODkzMzcwNzg4NjllM2MzZTk3ZDMxMjY0OWU2YThiZDhiMiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvcG9zdG1lc3NhZ2UtdG8tY2xpZW50Lmh0dHBzLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvcG9zdG1lc3NhZ2UtdG8tY2xpZW50Lmh0dHBzLmh0bWwKQEAg
LTUsMzggKzUsNTAgQEAKIDxzY3JpcHQgc3JjPSIvY29tbW9uL2dldC1ob3N0LWluZm8uc3ViLmpz
Ij48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGVzdC1oZWxwZXJzLnN1Yi5qcyI+
PC9zY3JpcHQ+CiA8c2NyaXB0PgotcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewotICBjb25zdCBz
Y3JpcHQgPSAncmVzb3VyY2VzL3Bvc3RtZXNzYWdlLXRvLWNsaWVudC13b3JrZXIuanMnOwotICBj
b25zdCBzY29wZSA9ICdyZXNvdXJjZXMvYmxhbmsuaHRtbCc7Citwcm9taXNlX3Rlc3QodCA9PiB7
CisgICAgdmFyIHNjcmlwdCA9ICdyZXNvdXJjZXMvcG9zdG1lc3NhZ2UtdG8tY2xpZW50LXdvcmtl
ci5qcyc7CisgICAgdmFyIHNjb3BlID0gJ3Jlc291cmNlcy9ibGFuay5odG1sJzsKKyAgICB2YXIg
dzsKIAotICBjb25zdCByZWdpc3RyYXRpb24gPQotICAgICAgYXdhaXQgc2VydmljZV93b3JrZXJf
dW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgc2NyaXB0LCBzY29wZSk7Ci0gIHQuYWRkX2NsZWFu
dXAoKCkgPT4gcmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIoKSk7Ci0gIGF3YWl0IHdhaXRfZm9yX3N0
YXRlKHQsIHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7Ci0gIGNvbnN0IGZy
YW1lID0gYXdhaXQgd2l0aF9pZnJhbWUoc2NvcGUpOwotICB0LmFkZF9jbGVhbnVwKCgpID0+IGZy
YW1lLnJlbW92ZSgpKTsKLSAgY29uc3QgdyA9IGZyYW1lLmNvbnRlbnRXaW5kb3c7CisgICAgcmV0
dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHNjcmlwdCwgc2Nv
cGUpCisgICAgICAudGhlbihyZWdpc3RyYXRpb24gPT4geworICAgICAgICAgIHQuYWRkX2NsZWFu
dXAoKCkgPT4gcmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIoKSk7CisgICAgICAgICAgcmV0dXJuIHdh
aXRfZm9yX3N0YXRlKHQsIHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7Cisg
ICAgICAgIH0pCisgICAgICAudGhlbigoKSA9PiB3aXRoX2lmcmFtZShzY29wZSkpCisgICAgICAu
dGhlbihmcmFtZSA9PiB7CisgICAgICAgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBmcmFtZS5yZW1v
dmUoKSk7CiAKLSAgdy5uYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5jb250cm9sbGVyLnBvc3RNZXNz
YWdlKCdwaW5nJyk7Ci0gIGxldCBlID0gYXdhaXQgbmV3IFByb21pc2UociA9PiB3Lm5hdmlnYXRv
ci5zZXJ2aWNlV29ya2VyLm9ubWVzc2FnZSA9IHIpOwotCi0gIGFzc2VydF9lcXVhbHMoZS5jb25z
dHJ1Y3Rvciwgdy5NZXNzYWdlRXZlbnQsCi0gICAgICAgICAgICAgICAgJ21lc3NhZ2UgZXZlbnRz
IHNob3VsZCB1c2UgTWVzc2FnZUV2ZW50IGludGVyZmFjZS4nKTsKLSAgYXNzZXJ0X2VxdWFscyhl
LnR5cGUsICdtZXNzYWdlJywgJ3R5cGUgc2hvdWxkIGJlICJtZXNzYWdlIi4nKTsKLSAgYXNzZXJ0
X2ZhbHNlKGUuYnViYmxlcywgJ21lc3NhZ2UgZXZlbnRzIHNob3VsZCBub3QgYnViYmxlLicpOwot
ICBhc3NlcnRfZmFsc2UoZS5jYW5jZWxhYmxlLCAnbWVzc2FnZSBldmVudHMgc2hvdWxkIG5vdCBi
ZSBjYW5jZWxhYmxlLicpOwotICBhc3NlcnRfZXF1YWxzKGUub3JpZ2luLCBsb2NhdGlvbi5vcmln
aW4sCi0gICAgICAgICAgICAgICAgJ29yaWdpbiBvZiBtZXNzYWdlIHNob3VsZCBiZSBvcmlnaW4g
b2YgU2VydmljZSBXb3JrZXIuJyk7Ci0gIGFzc2VydF9lcXVhbHMoZS5sYXN0RXZlbnRJZCwgJycs
Ci0gICAgICAgICAgICAgICAgJ2xhc3RFdmVudElkIHNob3VsZCBiZSBhbiBlbXB0eSBzdHJpbmcu
Jyk7Ci0gIGFzc2VydF9lcXVhbHMoZS5zb3VyY2UuY29uc3RydWN0b3IsIHcuU2VydmljZVdvcmtl
ciwKLSAgICAgICAgICAgICAgICAnc291cmNlIHNob3VsZCB1c2UgU2VydmljZVdvcmtlciBpbnRl
cmZhY2UuJyk7Ci0gIGFzc2VydF9lcXVhbHMoZS5zb3VyY2UsIHcubmF2aWdhdG9yLnNlcnZpY2VX
b3JrZXIuY29udHJvbGxlciwKLSAgICAgICAgICAgICAgICAnc291cmNlIHNob3VsZCBiZSB0aGUg
c2VydmljZSB3b3JrZXIgdGhhdCBzZW50IHRoZSBtZXNzYWdlLicpOwotICBhc3NlcnRfZXF1YWxz
KGUucG9ydHMubGVuZ3RoLCAwLCAncG9ydHMgc2hvdWxkIGJlIGFuIGVtcHR5IGFycmF5LicpOwot
ICBhc3NlcnRfZXF1YWxzKGUuZGF0YSwgJ1NlbmRpbmcgbWVzc2FnZSB2aWEgY2xpZW50cycpOwot
Ci0gIGUgPSBhd2FpdCBuZXcgUHJvbWlzZShyID0+IHcubmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIu
b25tZXNzYWdlID0gcik7Ci0gIGFzc2VydF9lcXVhbHMoZS5kYXRhLCAncXVpdCcpOwotfSwgJ3Bv
c3RNZXNzYWdlIGZyb20gU2VydmljZVdvcmtlciB0byBDbGllbnQuJyk7CisgICAgICAgICAgcmV0
dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4geworICAgICAgICAgICAgICB3ID0gZnJhbWUuY29u
dGVudFdpbmRvdzsKKyAgICAgICAgICAgICAgdy5uYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5vbm1l
c3NhZ2UgPSByZXNvbHZlOworICAgICAgICAgICAgICB3Lm5hdmlnYXRvci5zZXJ2aWNlV29ya2Vy
LmNvbnRyb2xsZXIucG9zdE1lc3NhZ2UoJ3BpbmcnKTsKKyAgICAgICAgICAgIH0pOworICAgICAg
ICB9KQorICAgICAgLnRoZW4oZSA9PiB7CisgICAgICAgICAgdmFyIG1lc3NhZ2UgPSBlLmRhdGE7
CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLmNvbnN0cnVjdG9yLCB3Lk1lc3NhZ2VFdmVudCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICdtZXNzYWdlIGV2ZW50cyBzaG91bGQgdXNlIE1lc3Nh
Z2VFdmVudCBpbnRlcmZhY2UuJyk7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnR5cGUsICdt
ZXNzYWdlJywgJ3R5cGUgc2hvdWxkIGJlICJtZXNzYWdlIi4nKTsKKyAgICAgICAgICBhc3NlcnRf
ZXF1YWxzKGUuYnViYmxlcywgZmFsc2UsICdtZXNzYWdlIGV2ZW50cyBzaG91bGQgbm90IGJ1YmJs
ZS4nKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUuY2FuY2VsYWJsZSwgZmFsc2UsCisgICAg
ICAgICAgICAgICAgICAgICAgICAnbWVzc2FnZSBldmVudHMgc2hvdWxkIG5vdCBiZSBjYW5jZWxh
YmxlLicpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMoCisgICAgICAgICAgICAgIGUub3JpZ2lu
LCBsb2NhdGlvbi5vcmlnaW4sCisgICAgICAgICAgICAgICdvcmlnaW4gb2YgbWVzc2FnZSBzaG91
bGQgYmUgb3JpZ2luIG9mIFNlcnZpY2UgV29ya2VyLicpOworICAgICAgICAgIGFzc2VydF9lcXVh
bHMoZS5sYXN0RXZlbnRJZCwgJycsCisgICAgICAgICAgICAgICAgICAgICAgICAnbGFzdEV2ZW50
SWQgc2hvdWxkIGJlIGFuIGVtcHR5IHN0cmluZy4nKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxz
KGUuc291cmNlLmNvbnN0cnVjdG9yLCB3LlNlcnZpY2VXb3JrZXIsCisgICAgICAgICAgICAgICAg
ICAgICAgICAnc291cmNlIHNob3VsZCB1c2UgU2VydmljZVdvcmtlciBpbnRlcmZhY2UuJyk7Cisg
ICAgICAgICAgYXNzZXJ0X2VxdWFscygKKyAgICAgICAgICAgICAgZS5zb3VyY2UsIHcubmF2aWdh
dG9yLnNlcnZpY2VXb3JrZXIuY29udHJvbGxlciwKKyAgICAgICAgICAgICAgJ3NvdXJjZSBzaG91
bGQgYmUgdGhlIHNlcnZpY2Ugd29ya2VyIHRoYXQgc2VudCB0aGUgbWVzc2FnZS4nKTsKKyAgICAg
ICAgICBhc3NlcnRfZXF1YWxzKGUucG9ydHMubGVuZ3RoLCAwLCAncG9ydHMgc2hvdWxkIGJlIGFu
IGVtcHR5IGFycmF5LicpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMobWVzc2FnZSwgJ1NlbmRp
bmcgbWVzc2FnZSB2aWEgY2xpZW50cycpOworICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShy
ZXNvbHZlID0+IHsKKyAgICAgICAgICAgICAgdy5uYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5vbm1l
c3NhZ2UgPSByZXNvbHZlOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pCisgICAgICAudGhl
bihlID0+IHsgYXNzZXJ0X2VxdWFscyhlLmRhdGEsICdxdWl0Jyk7IH0pOworICB9LCAncG9zdE1l
c3NhZ2UgZnJvbSBTZXJ2aWNlV29ya2VyIHRvIENsaWVudC4nKTsKIDwvc2NyaXB0PgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvcG9zdG1lc3NhZ2UuaHR0cHMtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvcG9zdG1lc3NhZ2UuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IDc5
YWJlNDIyNzY0OTg5ZDFkMTUxMGFkYjZiZGEyNmM3MWMwMWVhMDEuLjU2MTU0MWI2NzdkYzY0OTYz
NTgxYWVjMzAyOTUzYWNjMGRjOWNkY2UgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Bv
c3RtZXNzYWdlLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9wb3N0
bWVzc2FnZS5odHRwcy1leHBlY3RlZC50eHQKQEAgLTMsNSArMyw0IEBAIFBBU1MgcG9zdE1lc3Nh
Z2UgdG8gYSBTZXJ2aWNlV29ya2VyIChhbmQgYmFjayB2aWEgTWVzc2FnZVBvcnQpCiBQQVNTIHBv
c3RNZXNzYWdlIGEgdHJhbnNmZXJhYmxlIEFycmF5QnVmZmVyIGJldHdlZW4gU2VydmljZVdvcmtl
ciBhbmQgQ2xpZW50IAogUEFTUyBwb3N0TWVzc2FnZSBhIHRyYW5zZmVyYWJsZSBBcnJheUJ1ZmZl
ciBiZXR3ZWVuIFNlcnZpY2VXb3JrZXIgYW5kIENsaWVudCBvdmVyIE1lc3NhZ2VQb3J0IAogRkFJ
TCBwb3N0TWVzc2FnZSB3aXRoIGRpY3Rpb25hcnkgYSB0cmFuc2ZlcmFibGUgQXJyYXlCdWZmZXIg
YmV0d2VlbiBTZXJ2aWNlV29ya2VyIGFuZCBDbGllbnQgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQg
cmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBUeXBlIGVycm9yIgotRkFJ
TCBwb3N0TWVzc2FnZSB0byBhIHJlZHVuZGFudCB3b3JrZXIgcHJvbWlzZV90ZXN0OiBVbmhhbmRs
ZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiSW52YWxpZFN0YXRlRXJyb3I6IFNlcnZp
Y2UgV29ya2VyIHN0YXRlIGlzIHJlZHVuZGFudCIKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvcG9zdG1lc3NhZ2UuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Bvc3RtZXNz
YWdlLmh0dHBzLmh0bWwKaW5kZXggN2FiYjMwMjJmOTFhOGRhYTViZjBmOThmYTBkNDc5Mzc4MGY0
ODQ0Yy4uM2Q3M2FmZTk3OTYxMTRmNDJlNjE0MjkyZWY0YjE4MGRkNzhjZGVlNSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvcG9zdG1lc3NhZ2UuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9wb3N0bWVzc2FnZS5odHRwcy5odG1sCkBAIC0xMyw3ICsxMywxMSBAQCBwcm9t
aXNlX3Rlc3QodCA9PiB7CiAKICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9h
bmRfcmVnaXN0ZXIodCwgc2NyaXB0LCBzY29wZSkKICAgICAgIC50aGVuKHIgPT4gewotICAgICAg
ICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gci51bnJlZ2lzdGVyKCkpOworICAgICAgICAgIC8vIFRP
RE86IHJldHVybiB0aGUgUHJvbWlzZSBjcmVhdGVkIGJ5IGByLnVucmVnaXN0ZXJgb25jZQorICAg
ICAgICAgIC8vIGB0ZXN0aGFybmVzcy5qc2AgaGFzIGJlZW4gdXBkYXRlZCB0byBob25vciB0aGVu
YWJsZXMgcmV0dXJuZWQgYnkKKyAgICAgICAgICAvLyBjbGVhbnVwIGZ1bmN0aW9ucy4KKyAgICAg
ICAgICAvLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvcHVs
bC84NzQ4CisgICAgICAgICAgdC5hZGRfY2xlYW51cCgoKSA9PiB7IHIudW5yZWdpc3RlcigpOyB9
KTsKICAgICAgICAgICByZWdpc3RyYXRpb24gPSByOwogICAgICAgICAgIHdvcmtlciA9IHJlZ2lz
dHJhdGlvbi5pbnN0YWxsaW5nOwogCkBAIC0zOSw2ICs0MywxNSBAQCBwcm9taXNlX3Rlc3QodCA9
PiB7CiAgICAgICAudGhlbihlID0+IHsKICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUuZGF0YSwg
J3F1aXQnKTsKICAgICAgICAgICByZXR1cm4gcmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIoc2NvcGUp
OworICAgICAgICB9KQorICAgICAgLnRoZW4oKCkgPT4geyByZXR1cm4gd2FpdF9mb3Jfc3RhdGUo
dCwgd29ya2VyLCAncmVkdW5kYW50Jyk7IH0pCisgICAgICAudGhlbigoKSA9PiB7CisgICAgICAg
ICAgYXNzZXJ0X2VxdWFscyh3b3JrZXIuc3RhdGUsICdyZWR1bmRhbnQnKTsKKyAgICAgICAgICBh
c3NlcnRfdGhyb3dzKAorICAgICAgICAgICAge25hbWU6J0ludmFsaWRTdGF0ZUVycm9yJ30sCisg
ICAgICAgICAgICBmdW5jdGlvbigpIHsgd29ya2VyLnBvc3RNZXNzYWdlKCcnKTsgfSwKKyAgICAg
ICAgICAgICdDYWxsaW5nIHBvc3RNZXNzYWdlIG9uIGEgcmVkdW5kYW50IFNlcnZpY2VXb3JrZXIg
c2hvdWxkICcgKworICAgICAgICAgICAgICAgICd0aHJvdyBJbnZhbGlkU3RhdGVFcnJvci4nKTsK
ICAgICAgICAgfSk7CiAgIH0sICdwb3N0TWVzc2FnZSB0byBhIFNlcnZpY2VXb3JrZXIgKGFuZCBi
YWNrIHZpYSBNZXNzYWdlUG9ydCknKTsKIApAQCAtNTMsNyArNjYsMTEgQEAgcHJvbWlzZV90ZXN0
KHQgPT4gewogCiAgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lz
dGVyKHQsIHNjcmlwdCwgc2NvcGUpCiAgICAgICAudGhlbihyID0+IHsKLSAgICAgICAgICB0LmFk
ZF9jbGVhbnVwKCgpID0+IHIudW5yZWdpc3RlcigpKTsKKyAgICAgICAgICAvLyBUT0RPOiByZXR1
cm4gdGhlIFByb21pc2UgY3JlYXRlZCBieSBgci51bnJlZ2lzdGVyYG9uY2UKKyAgICAgICAgICAv
LyBgdGVzdGhhcm5lc3MuanNgIGhhcyBiZWVuIHVwZGF0ZWQgdG8gaG9ub3IgdGhlbmFibGVzIHJl
dHVybmVkIGJ5CisgICAgICAgICAgLy8gY2xlYW51cCBmdW5jdGlvbnMuCisgICAgICAgICAgLy8g
U2VlIGh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L3B1bGwvODc0OAor
ICAgICAgICAgIHQuYWRkX2NsZWFudXAoKCkgPT4geyByLnVucmVnaXN0ZXIoKTsgfSk7CiAKICAg
ICAgICAgICB2YXIgYWIgPSB0ZXh0X2VuY29kZXIuZW5jb2RlKG1lc3NhZ2UpOwogICAgICAgICAg
IGFzc2VydF9lcXVhbHMoYWIuYnl0ZUxlbmd0aCwgbWVzc2FnZS5sZW5ndGgpOwpAQCAtOTMsNyAr
MTEwLDExIEBAIHByb21pc2VfdGVzdCh0ID0+IHsKIAogICAgIHJldHVybiBzZXJ2aWNlX3dvcmtl
cl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCBzY3JpcHQsIHNjb3BlKQogICAgICAgLnRoZW4o
ciA9PiB7Ci0gICAgICAgICAgdC5hZGRfY2xlYW51cCgoKSA9PiByLnVucmVnaXN0ZXIoKSk7Cisg
ICAgICAgICAgLy8gVE9ETzogcmV0dXJuIHRoZSBQcm9taXNlIGNyZWF0ZWQgYnkgYHIudW5yZWdp
c3RlcmBvbmNlCisgICAgICAgICAgLy8gYHRlc3RoYXJuZXNzLmpzYCBoYXMgYmVlbiB1cGRhdGVk
IHRvIGhvbm9yIHRoZW5hYmxlcyByZXR1cm5lZCBieQorICAgICAgICAgIC8vIGNsZWFudXAgZnVu
Y3Rpb25zLgorICAgICAgICAgIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3Jt
LXRlc3RzL3dwdC9wdWxsLzg3NDgKKyAgICAgICAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHsgci51
bnJlZ2lzdGVyKCk7IH0pOwogCiAgICAgICAgICAgdmFyIGNoYW5uZWwgPSBuZXcgTWVzc2FnZUNo
YW5uZWw7CiAgICAgICAgICAgcG9ydCA9IGNoYW5uZWwucG9ydDE7CkBAIC0xNjksMzQgKzE5MCw0
IEBAIHByb21pc2VfdGVzdCh0ID0+IHsKICAgICAgICAgfSk7CiAgIH0sICdwb3N0TWVzc2FnZSB3
aXRoIGRpY3Rpb25hcnkgYSB0cmFuc2ZlcmFibGUgQXJyYXlCdWZmZXIgYmV0d2VlbiBTZXJ2aWNl
V29ya2VyIGFuZCBDbGllbnQnKTsKIAotICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7Ci0gICAg
Y29uc3QgZmlyc3RTY3JpcHQgPSAncmVzb3VyY2VzL3Bvc3RtZXNzYWdlLWVjaG8td29ya2VyLmpz
P29uZSc7Ci0gICAgY29uc3Qgc2Vjb25kU2NyaXB0ID0gJ3Jlc291cmNlcy9wb3N0bWVzc2FnZS1l
Y2hvLXdvcmtlci5qcz90d28nOwotICAgIGNvbnN0IHNjb3BlID0gJ3Jlc291cmNlcy8nOwotCi0g
ICAgY29uc3QgcmVnaXN0cmF0aW9uID0gYXdhaXQgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9h
bmRfcmVnaXN0ZXIodCwgZmlyc3RTY3JpcHQsIHNjb3BlKTsKLSAgICB0LmFkZF9jbGVhbnVwKCgp
ID0+IHJlZ2lzdHJhdGlvbi51bnJlZ2lzdGVyKCkpOwotICAgIGNvbnN0IGZpcnN0V29ya2VyID0g
cmVnaXN0cmF0aW9uLmluc3RhbGxpbmc7Ci0KLSAgICBjb25zdCBtZXNzYWdlUHJvbWlzZSA9IG5l
dyBQcm9taXNlKHJlc29sdmUgPT4gewotICAgICAgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuYWRk
RXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIChldmVudCkgPT4gewotICAgICAgICByZXNvbHZlKGV2
ZW50LmRhdGEpOwotICAgICAgfSwge29uY2U6IHRydWV9KTsKLSAgICB9KTsKLQotICAgIGF3YWl0
IHdhaXRfZm9yX3N0YXRlKHQsIGZpcnN0V29ya2VyLCAnYWN0aXZhdGVkJyk7Ci0gICAgYXdhaXQg
bmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoc2Vjb25kU2NyaXB0LCB7c2NvcGV9KTsK
LSAgICBjb25zdCBzZWNvbmRXb3JrZXIgPSByZWdpc3RyYXRpb24uaW5zdGFsbGluZzsKLSAgICBh
d2FpdCB3YWl0X2Zvcl9zdGF0ZSh0LCBmaXJzdFdvcmtlciwgJ3JlZHVuZGFudCcpOwotCi0gICAg
Ly8gcG9zdE1lc3NhZ2UoKSB0byBhIHJlZHVuZGFudCB3b3JrZXIgc2hvdWxkIGJlIGRyb3BwZWQg
c2lsZW50bHkuCi0gICAgLy8gSGlzdG9yaWNhbGx5LCB0aGlzIHRocmV3IGFuIGV4Y2VwdGlvbi4K
LSAgICBmaXJzdFdvcmtlci5wb3N0TWVzc2FnZSgnZmlyc3RXb3JrZXInKTsKLQotICAgIC8vIFRv
IHRlc3Qgc29tZXdoYXQgdGhhdCBpdCB3YXMgbm90IHJlY2VpdmVkLCBzZW5kIGEgbWVzc2FnZSB0
byBhbm90aGVyCi0gICAgLy8gd29ya2VyIGFuZCBjaGVjayB0aGF0IHdlIGdldCBhIHJlcGx5IGZv
ciB0aGF0IG9uZS4KLSAgICBzZWNvbmRXb3JrZXIucG9zdE1lc3NhZ2UoJ3NlY29uZFdvcmtlcicp
OwotICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBtZXNzYWdlUHJvbWlzZTsKLSAgICBhc3NlcnRfZXF1
YWxzKGRhdGEsICdzZWNvbmRXb3JrZXInKTsKLSAgfSwgJ3Bvc3RNZXNzYWdlIHRvIGEgcmVkdW5k
YW50IHdvcmtlcicpOwogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9y
ZWFkeS5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVhZHkuaHR0cHMuaHRtbAppbmRl
eCA2YzFlZDgyMmE4Nzc4Yzg0ZmYxNTFhNjgwZWQwYjRjNGZiZGI1M2NhLi5mZjVjNzkzZjJjMjIw
OGU5YWMyOThlNmI4MmFkZjc0NWFlNGM2NWU5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9yZWFkeS5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlYWR5Lmh0dHBzLmh0
bWwKQEAgLTI1MCw2OCArMjUwLDUxIEBAIHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7CiAgIH0s
ICdhY2Nlc3MgcmVhZHkgYWZ0ZXIgaXQgaGFzIGJlZW4gcmVzb2x2ZWQnKTsKIAogcHJvbWlzZV90
ZXN0KGFzeW5jIGZ1bmN0aW9uKHQpIHsKLSAgY29uc3QgdXJsMSA9ICdyZXNvdXJjZXMvZW1wdHkt
d29ya2VyLmpzJzsKLSAgY29uc3QgdXJsMiA9IHVybDEgKyAnPzInOwotICBjb25zdCBtYXRjaGVk
X3Njb3BlID0gJ3Jlc291cmNlcy9ibGFuay5odG1sP3JlYWR5LWFmdGVyLXVucmVnaXN0ZXInOwot
Ci0gIGNvbnN0IHJlZzEgPSBhd2FpdCBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdp
c3Rlcih0LCB1cmwxLCBtYXRjaGVkX3Njb3BlKTsKLSAgdC5hZGRfY2xlYW51cCgoKSA9PiByZWcx
LnVucmVnaXN0ZXIoKSk7Ci0KLSAgYXdhaXQgd2FpdF9mb3Jfc3RhdGUodCwgcmVnMS5pbnN0YWxs
aW5nLCAnYWN0aXZhdGluZycpOwotICAvLyBUaGlzIHJlZ2lzdHJhdGlvbiB3aWxsIHJlc29sdmUg
YWxsIHJlYWR5IHByb21pc2VzIGluIGNsaWVudHMgdGhhdCBtYXRjaCB0aGUgc2NvcGUuCi0gIC8v
IEJ1dCB0aGVyZSBhcmUgbm8gY2xpZW50cy4KLQotICBjb25zdCBmcmFtZSA9IGF3YWl0IHdpdGhf
aWZyYW1lKG1hdGNoZWRfc2NvcGUpOwotICB0LmFkZF9jbGVhbnVwKCgpID0+IGZyYW1lLnJlbW92
ZSgpKTsKLQotICBhd2FpdCByZWcxLnVucmVnaXN0ZXIoKTsKLQotICAvLyBBY2Nlc3MgdGhlIHJl
YWR5IHByb21pc2Ugd2hpbGUgdGhlIHJlZ2lzdHJhdGlvbiBpcyB1bnJlZ2lzdGVyaW5nLgotICBj
b25zdCByZWFkeVByb21pc2UgPSBmcmFtZS5jb250ZW50V2luZG93Lm5hdmlnYXRvci5zZXJ2aWNl
V29ya2VyLnJlYWR5OwotCi0gIC8vIENyZWF0ZSBhIG5ldyByZWdpc3RyYXRpb24uCi0gIGNvbnN0
IHJlZzIgPSBhd2FpdCBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3Rlcih1cmwyLCB7IHNj
b3BlOiBtYXRjaGVkX3Njb3BlIH0pOwotICB0LmFkZF9jbGVhbnVwKCgpID0+IHJlZzIudW5yZWdp
c3RlcigpKTsKLSAgLy8gVGhpcyByZWdpc3RyYXRpb24gd2lsbCByZXNvbHZlIGFsbCByZWFkeSBw
cm9taXNlcyBpbiBjbGllbnRzIHRoYXQgbWF0Y2ggdGhlIHNjb3BlLgotICAvLyBUaGF0IGluY2x1
ZGVzIGZyYW1lJ3MgY2xpZW50LgotCi0gIGNvbnN0IHJlYWR5UmVnID0gYXdhaXQgcmVhZHlQcm9t
aXNlOwotCi0gIGFzc2VydF9lcXVhbHMocmVhZHlSZWcuYWN0aXZlLnNjcmlwdFVSTCwgcmVnMi5h
Y3RpdmUuc2NyaXB0VVJMLCAnUmVzb2x2ZXMgd2l0aCB0aGUgc2Vjb25kIHJlZ2lzdHJhdGlvbicp
OwotICBhc3NlcnRfbm90X2VxdWFscyhyZWcxLCByZWcyLCAnUmVnaXN0cmF0aW9ucyBzaG91bGQg
YmUgZGlmZmVyZW50Jyk7Ci19LCAncmVzb2x2ZSByZWFkeSBhZnRlciB1bnJlZ2lzdGVyaW5nIGFu
ZCByZXJlZ2lzdGVyaW5nJyk7Ci0KLXByb21pc2VfdGVzdChhc3luYyBmdW5jdGlvbih0KSB7Ci0g
IGNvbnN0IHVybDEgPSAncmVzb3VyY2VzL2VtcHR5LXdvcmtlci5qcyc7Ci0gIGNvbnN0IHVybDIg
PSB1cmwxICsgJz8yJzsKLSAgY29uc3QgbWF0Y2hlZF9zY29wZSA9ICdyZXNvdXJjZXMvYmxhbmsu
aHRtbD9yZWFkeS1hZnRlci11bnJlZ2lzdGVyJzsKLQotICBjb25zdCBmcmFtZSA9IGF3YWl0IHdp
dGhfaWZyYW1lKG1hdGNoZWRfc2NvcGUpOwotICB0LmFkZF9jbGVhbnVwKCgpID0+IGZyYW1lLnJl
bW92ZSgpKTsKLQotICBjb25zdCByZWcxID0gYXdhaXQgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rl
cl9hbmRfcmVnaXN0ZXIodCwgdXJsMSwgbWF0Y2hlZF9zY29wZSk7Ci0gIHQuYWRkX2NsZWFudXAo
KCkgPT4gcmVnMS51bnJlZ2lzdGVyKCkpOwotCi0gIGF3YWl0IHdhaXRfZm9yX3N0YXRlKHQsIHJl
ZzEuaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOwotICAvLyBUaGlzIHJlZ2lzdHJhdGlvbiB3aWxs
IHJlc29sdmUgYWxsIHJlYWR5IHByb21pc2VzIGluIGNsaWVudHMgdGhhdCBtYXRjaCB0aGUgc2Nv
cGUuCi0gIC8vIFRoYXQgaW5jbHVkZXMgZnJhbWUncyBjbGllbnQuCi0KLSAgY29uc3QgcmVnMUFj
dGl2ZSA9IHJlZzEuYWN0aXZlOwotCi0gIGF3YWl0IHJlZzEudW5yZWdpc3RlcigpOwotCi0gIC8v
IEFjY2VzcyB0aGUgcmVhZHkgcHJvbWlzZSB3aGlsZSB0aGUgcmVnaXN0cmF0aW9uIGlzIHVucmVn
aXN0ZXJpbmcuCi0gIGNvbnN0IHJlYWR5UHJvbWlzZSA9IGZyYW1lLmNvbnRlbnRXaW5kb3cubmF2
aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVhZHk7Ci0KLSAgLy8gQ3JlYXRlIGEgbmV3IHJlZ2lzdHJh
dGlvbi4KLSAgY29uc3QgcmVnMiA9IGF3YWl0IG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lz
dGVyKHVybDIsIHsgc2NvcGU6IG1hdGNoZWRfc2NvcGUgfSk7Ci0gIHQuYWRkX2NsZWFudXAoKCkg
PT4gcmVnMi51bnJlZ2lzdGVyKCkpOwotICAvLyBUaGlzIHJlZ2lzdHJhdGlvbiB3aWxsIHJlc29s
dmUgYWxsIHJlYWR5IHByb21pc2VzIGluIGNsaWVudHMgdGhhdCBtYXRjaCB0aGUgc2NvcGUuCi0g
IC8vIFRoYXQgaW5jbHVkZXMgZnJhbWUncyBjbGllbnQsIGJ1dCBpdHMgcmVhZHkgcHJvbWlzZSBo
YXMgYWxyZWFkeSByZXNvbHZlZC4KLQotICBjb25zdCByZWFkeVJlZyA9IGF3YWl0IHJlYWR5UHJv
bWlzZTsKLQotICBhc3NlcnRfZXF1YWxzKHJlYWR5UmVnLmFjdGl2ZS5zY3JpcHRVUkwsIHJlZzFB
Y3RpdmUuc2NyaXB0VVJMLCAnUmVzb2x2ZXMgd2l0aCB0aGUgZmlyc3QgcmVnaXN0cmF0aW9uJyk7
Ci0gIGFzc2VydF9ub3RfZXF1YWxzKHJlZzEsIHJlZzIsICdSZWdpc3RyYXRpb25zIHNob3VsZCBi
ZSBkaWZmZXJlbnQnKTsKLX0sICdyZXNvbHZlIHJlYWR5IGJlZm9yZSB1bnJlZ2lzdGVyaW5nIGFu
ZCByZXJlZ2lzdGVyaW5nJyk7CisgICAgdmFyIHVybCA9ICdyZXNvdXJjZXMvZW1wdHktd29ya2Vy
LmpzJzsKKyAgICB2YXIgbWF0Y2hlZF9zY29wZSA9ICdyZXNvdXJjZXMvYmxhbmsuaHRtbD9yZWFk
eS1hZnRlci1yZXN1cnJlY3QnOworCisgICAgbGV0IHJlZzEgPSBhd2FpdCBzZXJ2aWNlX3dvcmtl
cl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCB1cmwsIG1hdGNoZWRfc2NvcGUpOworICAgIGFk
ZF9jb21wbGV0aW9uX2NhbGxiYWNrKGZ1bmN0aW9uKCkgeworICAgICAgICByZWcxLnVucmVnaXN0
ZXIoKTsKKyAgICAgIH0pOworICAgIGF3YWl0IHdhaXRfZm9yX3N0YXRlKHQsIHJlZzEuaW5zdGFs
bGluZywgJ2FjdGl2YXRlZCcpOworCisgICAgLy8gSG9sZCB0aGUgd29ya2VyIGFsaXZlIHdpdGgg
YSBjb250cm9sbGVkIHdvcmtlcgorICAgIGxldCBmcmFtZSA9IGF3YWl0IHdpdGhfaWZyYW1lKG1h
dGNoZWRfc2NvcGUpOworICAgIGFkZF9jb21wbGV0aW9uX2NhbGxiYWNrKGZ1bmN0aW9uKCkgewor
ICAgICAgICBmcmFtZS5yZW1vdmUoKTsKKyAgICAgIH0pOworCisgICAgLy8gRG9vbSB0aGUgcmVn
aXN0cmF0aW9uIGFzIHVuaW5zdGFsbGluZy4KKyAgICBhd2FpdCByZWcxLnVucmVnaXN0ZXIoKTsK
KworICAgIC8vIEFjY2VzcyB0aGUgcmVhZHkgcHJvbWlzZSB3aGlsZSB0aGUgcmVnaXN0cmF0aW9u
IGlzIGRvb21lZC4KKyAgICBsZXQgcmVhZHlQcm9taXNlID0gZnJhbWUuY29udGVudFdpbmRvdy5u
YXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWFkeTsKKworICAgIC8vIFJlc3VycmVjdCB0aGUgZG9v
bWVkIHJlZ2lzdHJhdGlvbjsKKyAgICBsZXQgcmVnMiA9IGF3YWl0IHNlcnZpY2Vfd29ya2VyX3Vu
cmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHVybCwgbWF0Y2hlZF9zY29wZSk7CisgICAgYXNzZXJ0
X2VxdWFscyhyZWcxLCByZWcyLCAnZXhpc3RpbmcgcmVnaXN0cmF0aW9uIHNob3VsZCBiZSByZXN1
cnJlY3RlZCcpOworCisgICAgLy8gV2UgYXJlIHRyeWluZyB0byB0ZXN0IGlmIHRoZSByZWFkeSBw
cm9taXNlIGV2ZXIgcmVzb2x2ZXMgaGVyZS4gIFVzZQorICAgIC8vIGFuIGV4cGxpY2l0IHRpbWVv
dXQgY2hlY2sgaGVyZSByYXRoZXIgdGhhbiBmb3JjaW5nIGEgZnVsbCBpbmZyYXN0cnVjdHVyZQor
ICAgIC8vIGxldmVsIHRpbWVvdXQuCisgICAgbGV0IHRpbWVvdXRJZDsKKyAgICBsZXQgdGltZW91
dFByb21pc2UgPSBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHsKKyAgICAgIHRpbWVvdXRJZCA9IHNl
dFRpbWVvdXQoXyA9PiB7CisgICAgICAgIHRpbWVvdXRJZCA9IG51bGw7CisgICAgICAgIHJlc29s
dmUoKTsKKyAgICAgIH0sIDUwMCk7CisgICAgfSk7CisKKyAgICAvLyBUaGlzIHNob3VsZCByZXNv
bHZlIGltbWVkaWF0ZWx5IHNpbmNlIHRoZXJlIGlzIGFuIGFsaXZlIHJlZ2lzdHJhdGlvbgorICAg
IC8vIHdpdGggYW4gYWN0aXZlIHByb21pc2UgZm9yIHRoZSBtYXRjaGluZyBzY29wZS4KKyAgICBh
d2FpdCBQcm9taXNlLnJhY2UoW3JlYWR5UHJvbWlzZSwgdGltZW91dFByb21pc2VdKTsKKworICAg
IGFzc2VydF9ub3RfZXF1YWxzKHRpbWVvdXRJZCwgbnVsbCwKKyAgICAgICAgICAgICAgICAgICAg
ICAncmVhZHkgcHJvbWlzZSBzaG91bGQgcmVzb2x2ZSBiZWZvcmUgdGltZW91dCcpOworICAgIGNs
ZWFyVGltZW91dCh0aW1lb3V0SWQpOworCisgICAgLy8gV2Ugc2hvdWxkIGdldCBoZXJlIGFuZCBu
b3QgdGltZSBvdXQuCisKKyAgfSwgJ2FjY2VzcyByZWFkeSBvbiB1bmluc3RhbGxpbmcgcmVnaXN0
cmF0aW9uIHRoYXQgaXMgcmVzdXJyZWN0ZWQnKTsKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvcmVkaXJlY3RlZC1yZXNwb25zZS5odHRwcy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci9yZWRpcmVjdGVkLXJlc3BvbnNlLmh0dHBzLWV4cGVjdGVkLnR4dApp
bmRleCA5ZDJmMjcwNmNhZmVlYjc0MDMwNTljYjM3MDZmMzQ5MDVjMmRmOTE3Li42YzY1MjA3NmE5
ZjAyNTEzZTFjYTlkZDFlNDdjY2Y5NTBmNTcwZTQzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9yZWRpcmVjdGVkLXJlc3BvbnNlLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9yZWRpcmVjdGVkLXJlc3BvbnNlLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMjgs
NyArMjgsNiBAQCBQQVNTIG1vZGU6ICJlcnJvciIsIGdlbmVyYXRlZCByZWRpcmVjdCByZXNwb25z
ZQogUEFTUyBtb2RlOiAibWFudWFsIiwgZ2VuZXJhdGVkIHJlZGlyZWN0IHJlc3BvbnNlIAogUEFT
UyBGZXRjaCBzaG91bGQgZm9sbG93IHRoZSByZWRpcmVjdCByZXNwb25zZSAyMCB0aW1lcyAKIFBB
U1MgRmV0Y2ggc2hvdWxkIG5vdCBmb2xsb3cgdGhlIHJlZGlyZWN0IHJlc3BvbnNlIDIxIHRpbWVz
LiAKLVBBU1MgVGhlIFVSTCBmb3IgdGhlIHNlcnZpY2Ugd29ya2VyIHJlZGlyZWN0ZWQgcmVxdWVz
dCBzaG91bGQgYmUgcHJvcGFnYXRlZCB0byByZXNwb25zZS4gCiBQQVNTIHJlc3RvcmUgZ2xvYmFs
IHN0YXRlIChzZXJ2aWNlIHdvcmtlciByZWdpc3RyYXRpb24pIAogUEFTUyByZXN0b3JlIGdsb2Jh
bCBzdGF0ZSAoY2FjaGVzKSAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVkaXJl
Y3RlZC1yZXNwb25zZS5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVkaXJlY3RlZC1y
ZXNwb25zZS5odHRwcy5odG1sCmluZGV4IDE3NmZjYjQ5NGI2NjRiYWU0M2ZlYmEwYzc5M2U1Mjg0
NWRmMzUyNTcuLmY3MzcwZTAyM2IxYWI0NDU0YjgzOWJjNmRhYTQzMmNmNTM5ZTFkN2YgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlZGlyZWN0ZWQtcmVzcG9uc2UuaHR0cHMuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZWRpcmVjdGVkLXJlc3BvbnNlLmh0dHBzLmh0bWwKQEAg
LTMzLDExICszMyw2IEBAIGZ1bmN0aW9uIHJlZGlyZWN0ZWRfdGVzdChvcHRpb25zKSB7CiAgICAg
ICAgIGFzc2VydF9lcXVhbHMoCiAgICAgICAgICAgICBjbG9uZWRfcmVzcG9uc2UucmVkaXJlY3Rl
ZCwgb3B0aW9ucy5leHBlY3RlZF9yZWRpcmVjdGVkLAogICAgICAgICAgICAgJ1RoZSByZWRpcmVj
dGVkIGZsYWcgb2YgY2xvbmVkIHJlc3BvbnNlIG11c3QgbWF0Y2guIFVSTDogJyArIG9wdGlvbnMu
dXJsKTsKLSAgICAgICAgaWYgKG9wdGlvbnMuZXhwZWN0ZWRfcmVzcG9uc2VfdXJsKSB7Ci0gICAg
ICAgICAgICBhc3NlcnRfZXF1YWxzKAotICAgICAgICAgICAgICAgIGNsb25lZF9yZXNwb25zZS51
cmwsIG9wdGlvbnMuZXhwZWN0ZWRfcmVzcG9uc2VfdXJsLAotICAgICAgICAgICAgICAgICdUaGUg
VVJMIGRvZXMgbm90IG1lZXQgZXhwZWN0YXRpb24uIFVSTDogJyArIG9wdGlvbnMudXJsKTsKLSAg
ICAgICAgfQogICAgICAgICByZXR1cm4gY2FjaGUucHV0KG9wdGlvbnMudXJsLCByZXNwb25zZSk7
CiAgICAgICB9KQogICAgIC50aGVuKF8gPT4gY2FjaGUubWF0Y2gob3B0aW9ucy51cmwpKQpAQCAt
NTQsMTUgKzQ5LDEyIEBAIGZ1bmN0aW9uIHJlZGlyZWN0ZWRfdGVzdChvcHRpb25zKSB7CiAgICAg
ICB9KTsKIH0KIAotYXN5bmMgZnVuY3Rpb24gdGFrZV9pbnRlcmNlcHRlZF91cmxzKCkgewotICBj
b25zdCBtZXNzYWdlID0gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsKLSAgICBsZXQgY2hhbm5l
bCA9IG5ldyBNZXNzYWdlQ2hhbm5lbCgpOwotICAgIGNoYW5uZWwucG9ydDEub25tZXNzYWdlID0g
bXNnID0+IHsgcmVzb2x2ZShtc2cuZGF0YS5yZXF1ZXN0SW5mb3MpOyB9OwotICAgIHdvcmtlci5w
b3N0TWVzc2FnZSh7Y29tbWFuZDogJ2dldFJlcXVlc3RJbmZvcycsIHBvcnQ6IGNoYW5uZWwucG9y
dDJ9LAotICAgICAgICAgICAgICAgICAgICAgICBbY2hhbm5lbC5wb3J0Ml0pOwotICB9KTsKLSAg
Y29uc3QgcmVxdWVzdF9pbmZvcyA9IGF3YWl0IG1lc3NhZ2U7Ci0gIHJldHVybiByZXF1ZXN0X2lu
Zm9zLm1hcChpbmZvID0+IHsgcmV0dXJuIGluZm8udXJsOyB9KTsKK2Z1bmN0aW9uIHRha2VfaW50
ZXJjZXB0ZWRfdXJscygpIHsKKyAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7Cisg
ICAgICBsZXQgY2hhbm5lbCA9IG5ldyBNZXNzYWdlQ2hhbm5lbCgpOworICAgICAgY2hhbm5lbC5w
b3J0MS5vbm1lc3NhZ2UgPSBtc2cgPT4geyByZXNvbHZlKG1zZy5kYXRhLnVybHMpOyB9OworICAg
ICAgd29ya2VyLnBvc3RNZXNzYWdlKHtwb3J0OiBjaGFubmVsLnBvcnQyfSwgW2NoYW5uZWwucG9y
dDJdKTsKKyAgICB9KTsKIH0KIAogZnVuY3Rpb24gY2hlY2tfaW50ZXJjZXB0ZWRfdXJscyhleHBl
Y3RlZF91cmxzKSB7CkBAIC0zNTMsMjMgKzM0NSw0IEBAIHByb21pc2VfdGVzdCh0ID0+IHNldHVw
X2FuZF9jbGVhbigpCiAgICAgICAgIH0pOwogICAgIH0pLAogICAnRmV0Y2ggc2hvdWxkIG5vdCBm
b2xsb3cgdGhlIHJlZGlyZWN0IHJlc3BvbnNlIDIxIHRpbWVzLicpOwotCi0vLyA9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0vLyBBIHRlc3Qg
Zm9yIHZlcmlmeWluZyB0aGUgdXJsIG9mIGEgc2VydmljZS13b3JrZXItcmVkaXJlY3RlZCByZXF1
ZXN0IGlzCi0vLyBwcm9wYWdhdGVkIHRvIHRoZSBvdXRlciByZXNwb25zZS4KLS8vID09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLXByb21pc2Vf
dGVzdCh0ID0+IHNldHVwX2FuZF9jbGVhbigpCi0gICAgLnRoZW4oKCkgPT4gewotICAgICAgY29u
c3QgdXJsID0gaG9zdF9pbmZvWydIVFRQU19PUklHSU4nXSArIGJhc2VfcGF0aCgpICsgJ2R1bW15
P3VybD0nICsKLSAgICAgICAgICAgICAgICAgIGVuY29kZVVSSUNvbXBvbmVudChUQVJHRVRfVVJM
KSArJyZzdz1mZXRjaC11cmwnOwotICAgICAgcmV0dXJuIHJlZGlyZWN0ZWRfdGVzdCh7dXJsOiB1
cmwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZXRjaF9vcHRpb246IHt9LAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZmV0Y2hfbWV0aG9kOiBmcmFtZS5jb250ZW50V2lu
ZG93LmZldGNoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRfdHlwZTog
J2Jhc2ljJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkX3JlZGlyZWN0
ZWQ6IGZhbHNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRfaW50ZXJj
ZXB0ZWRfdXJsczogW3VybF0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBlY3Rl
ZF9yZXNwb25zZV91cmw6IFRBUkdFVF9VUkx9KTsKLSAgICB9KSwKLSAgJ1RoZSBVUkwgZm9yIHRo
ZSBzZXJ2aWNlIHdvcmtlciByZWRpcmVjdGVkIHJlcXVlc3Qgc2hvdWxkIGJlIHByb3BhZ2F0ZWQg
dG8gJyArCi0gICdyZXNwb25zZS4nKTsKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvcmVmZXJlci5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVmZXJlci5o
dHRwcy5odG1sCmluZGV4IDA5NTdlNGM1MzMwMTY4YjA4MjM2ZmY3YzQzMTcwNmExZDkyY2MxYTQu
LjQzZmNjYmFkNTZjZjQ1MDRlOWU5ZGRhOTc0MmMxYzg2OWJiMGE1NTkgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL3JlZmVyZXIuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9yZWZlcmVyLmh0dHBzLmh0bWwKQEAgLTUsMzYgKzUsMjYgQEAKIDxzY3JpcHQgc3JjPSIvY29t
bW9uL2dldC1ob3N0LWluZm8uc3ViLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvdGVzdC1oZWxwZXJzLnN1Yi5qcz9waXBlPXN1YiI+PC9zY3JpcHQ+CiA8c2NyaXB0PgotcHJv
bWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKK2FzeW5jX3Rlc3QoZnVuY3Rpb24odCkgewogICAgIHZh
ciBTQ09QRSA9ICdyZXNvdXJjZXMvcmVmZXJlci1pZnJhbWUuaHRtbCc7CiAgICAgdmFyIFNDUklQ
VCA9ICdyZXNvdXJjZXMvZmV0Y2gtcmV3cml0ZS13b3JrZXIuanMnOwogICAgIHZhciBob3N0X2lu
Zm8gPSBnZXRfaG9zdF9pbmZvKCk7Ci0gICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0
ZXJfYW5kX3JlZ2lzdGVyKHQsIFNDUklQVCwgU0NPUEUpCisgICAgc2VydmljZV93b3JrZXJfdW5y
ZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgU0NSSVBULCBTQ09QRSkKICAgICAgIC50aGVuKGZ1bmN0
aW9uKHJlZ2lzdHJhdGlvbikgewotICAgICAgICAgIHQuYWRkX2NsZWFudXAoZnVuY3Rpb24oKSB7
Ci0gICAgICAgICAgICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyKHQsIFNDT1BF
KTsKLSAgICAgICAgICAgIH0pOwotCiAgICAgICAgICAgcmV0dXJuIHdhaXRfZm9yX3N0YXRlKHQs
IHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7CiAgICAgICAgIH0pCiAgICAg
ICAudGhlbihmdW5jdGlvbigpIHsgcmV0dXJuIHdpdGhfaWZyYW1lKFNDT1BFKTsgfSkKICAgICAg
IC50aGVuKGZ1bmN0aW9uKGZyYW1lKSB7CiAgICAgICAgICAgdmFyIGNoYW5uZWwgPSBuZXcgTWVz
c2FnZUNoYW5uZWwoKTsKLSAgICAgICAgICB0LmFkZF9jbGVhbnVwKGZ1bmN0aW9uKCkgeworICAg
ICAgICAgIGNoYW5uZWwucG9ydDEub25tZXNzYWdlID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkg
eworICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUuZGF0YS5yZXN1bHRzLCAnZmluaXNoJyk7
CiAgICAgICAgICAgICAgIGZyYW1lLnJlbW92ZSgpOworICAgICAgICAgICAgICBzZXJ2aWNlX3dv
cmtlcl91bnJlZ2lzdGVyX2FuZF9kb25lKHQsIFNDT1BFKTsKICAgICAgICAgICAgIH0pOwotCi0g
ICAgICAgICAgdmFyIG9uTXNnID0gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSkgewotICAg
ICAgICAgICAgICBjaGFubmVsLnBvcnQxLm9ubWVzc2FnZSA9IHJlc29sdmU7Ci0gICAgICAgICAg
ICB9KTsKLQogICAgICAgICAgIGZyYW1lLmNvbnRlbnRXaW5kb3cucG9zdE1lc3NhZ2Uoe30sCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBob3N0X2luZm9bJ0hUVFBT
X09SSUdJTiddLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2No
YW5uZWwucG9ydDJdKTsKLSAgICAgICAgICByZXR1cm4gb25Nc2c7CiAgICAgICAgIH0pCi0gICAg
ICAudGhlbihmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLmRhdGEucmVz
dWx0cywgJ2ZpbmlzaCcpOwotICAgICAgICB9KTsKKyAgICAgIC5jYXRjaCh1bnJlYWNoZWRfcmVq
ZWN0aW9uKHQpKTsKICAgfSwgJ1ZlcmlmeSB0aGUgcmVmZXJlcicpOwogPC9zY3JpcHQ+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZWdpc3Rlci1kZWZhdWx0LXNjb3BlLmh0dHBzLmh0
bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZWdpc3Rlci1kZWZhdWx0LXNjb3BlLmh0dHBzLmh0bWwK
aW5kZXggMWQ4NjU0OGViNWVlYjU3NTRjYTExMWRkNGM1NTg0MzIwMjIxNmIyZC4uZGMxMzZkNGU4
ZGQ3NGQzZjg1MTg4MGEyYmM0ZmY1ZjIxNWNhZjI1NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvcmVnaXN0ZXItZGVmYXVsdC1zY29wZS5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL3JlZ2lzdGVyLWRlZmF1bHQtc2NvcGUuaHR0cHMuaHRtbApAQCAtNTIsMTEgKzUyLDgg
QEAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICAgIH0pCiAgICAgICAudGhlbigKICAg
ICAgICAgZnVuY3Rpb24ocmVnaXN0cmF0aW9uKSB7Ci0gICAgICAgICAgdC5hZGRfY2xlYW51cChm
dW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0
ZXIodCwgcmVnaXN0cmF0aW9uLnNjb3BlKTsKLSAgICAgICAgICAgIH0pOwotCiAgICAgICAgICAg
YXNzZXJ0X3VucmVhY2hlZCgncmVnaXN0ZXIgc2hvdWxkIGZhaWwnKTsKKyAgICAgICAgICBzZXJ2
aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9kb25lKHQsIHJlZ2lzdHJhdGlvbi5zY29wZSk7CiAg
ICAgICAgIH0sCiAgICAgICAgIGZ1bmN0aW9uKGVycm9yKSB7CiAgICAgICAgICAgYXNzZXJ0X2Vx
dWFscyhlcnJvci5uYW1lLCAnU2VjdXJpdHlFcnJvcicsCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9yZWdpc3Rlci13YWl0LWZvcmV2ZXItaW4taW5zdGFsbC13b3JrZXIuaHR0cHMuaHRt
bCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlZ2lzdGVyLXdhaXQtZm9yZXZlci1pbi1pbnN0YWxsLXdv
cmtlci5odHRwcy5odG1sCmluZGV4IDA5MjBiNWNiMjIzZDUwZTMxZDA0NGE5MzIzZjU1YzFlNzdi
MTg4NTcuLmUyM2Y5ZjRmYzhlMzgwN2FkNjBjOTBiMDU1Zjc0YzM4ZDM4M2MyNGQgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlZ2lzdGVyLXdhaXQtZm9yZXZlci1pbi1pbnN0YWxsLXdv
cmtlci5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlZ2lzdGVyLXdhaXQtZm9y
ZXZlci1pbi1pbnN0YWxsLXdvcmtlci5odHRwcy5odG1sCkBAIC0xNiwxMCArMTYsNiBAQCBwcm9t
aXNlX3Rlc3QoZnVuY3Rpb24odCkgewogCiAgICAgcmV0dXJuIG5hdmlnYXRvci5zZXJ2aWNlV29y
a2VyLnJlZ2lzdGVyKGJhZF9zY3JpcHQsIHtzY29wZTogc2NvcGV9KQogICAgICAgLnRoZW4oZnVu
Y3Rpb24ocikgewotICAgICAgICAgIHQuYWRkX2NsZWFudXAoZnVuY3Rpb24oKSB7Ci0gICAgICAg
ICAgICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyKHQsIHNjb3BlKTsKLSAgICAg
ICAgICAgIH0pOwotCiAgICAgICAgICAgcmVnaXN0cmF0aW9uID0gcjsKICAgICAgICAgICBhc3Nl
cnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLnNjcmlwdFVSTCwKICAgICAgICAgICAg
ICAgICAgICAgICAgIG5vcm1hbGl6ZVVSTChiYWRfc2NyaXB0KSk7CkBAIC01MSw2ICs0Nyw5IEBA
IHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBub3Jt
YWxpemVVUkwoZ29vZF9zY3JpcHQpKTsKICAgICAgICAgICByZXR1cm4gd2FpdF9mb3Jfc3RhdGUo
dCwgcmVnaXN0cmF0aW9uLmluc3RhbGxpbmcsICdhY3RpdmF0ZWQnKTsKICAgICAgICAgfSkKKyAg
ICAgIC50aGVuKGZ1bmN0aW9uKCkgeworICAgICAgICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91
bnJlZ2lzdGVyX2FuZF9kb25lKHQsIHNjb3BlKTsKKyAgICAgICAgfSkKICAgfSwgJ3JlZ2lzdGVy
IHdvcmtlciB0aGF0IGNhbGxzIHdhaXRVbnRpbCB3aXRoIGEgcHJvbWlzZSB0aGF0IG5ldmVyICcg
KwogICAgICAncmVzb2x2ZXMgaW4gb25pbnN0YWxsJyk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL3JlZ2lzdHJhdGlvbi1lbmQtdG8tZW5kLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9yZWdpc3RyYXRpb24tZW5kLXRvLWVuZC5odHRwcy5odG1sCmluZGV4IDFhZjQ1ODJk
Mzg3NDEyZjQ3ZDgyYTk0YjJmZTcwNTBhNTk5NDY0NGEuLmU5MmI2NTAyZjA5YjFhOTMwOGI5NmU0
M2M2ZGM5NWY4MjVmYWM2OTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlZ2lzdHJh
dGlvbi1lbmQtdG8tZW5kLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVnaXN0
cmF0aW9uLWVuZC10by1lbmQuaHR0cHMuaHRtbApAQCAtMTEsMTEgKzExLDE2IEBAIHQuc3RlcChm
dW5jdGlvbigpIHsKICAgICB2YXIgc2VydmljZVdvcmtlclN0YXRlcyA9IFtdOwogICAgIHZhciBs
YXN0U2VydmljZVdvcmtlclN0YXRlID0gJyc7CiAgICAgdmFyIHJlY2VpdmVkTWVzc2FnZUZyb21Q
b3J0ID0gJyc7CisgICAgdmFyIGN1cnJlbnRDaGFuZ2VDb3VudCA9IDA7CiAKICAgICBhc3NlcnRf
dHJ1ZShuYXZpZ2F0b3Iuc2VydmljZVdvcmtlciBpbnN0YW5jZW9mIFNlcnZpY2VXb3JrZXJDb250
YWluZXIpOwogICAgIGFzc2VydF9lcXVhbHModHlwZW9mIG5hdmlnYXRvci5zZXJ2aWNlV29ya2Vy
LnJlZ2lzdGVyLCAnZnVuY3Rpb24nKTsKICAgICBhc3NlcnRfZXF1YWxzKHR5cGVvZiBuYXZpZ2F0
b3Iuc2VydmljZVdvcmtlci5nZXRSZWdpc3RyYXRpb24sICdmdW5jdGlvbicpOwogCisgICAgbmF2
aWdhdG9yLnNlcnZpY2VXb3JrZXIub25jdXJyZW50Y2hhbmdlID0gZnVuY3Rpb24oKSB7CisgICAg
ICAgICsrY3VycmVudENoYW5nZUNvdW50OworICAgIH07CisKICAgICBzZXJ2aWNlX3dvcmtlcl91
bnJlZ2lzdGVyX2FuZF9yZWdpc3RlcigKICAgICAgICAgdCwgJ3Jlc291cmNlcy9lbmQtdG8tZW5k
LXdvcmtlci5qcycsIHNjb3BlKQogICAgICAgLnRoZW4ob25SZWdpc3RlcikKQEAgLTcwLDYgKzc1
LDkgQEAgdC5zdGVwKGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBbJ2luc3RhbGxpbmcnLCAnaW5zdGFsbGVkJywgJ2FjdGl2YXRpbmcnLCAnYWN0aXZhdGVkJ10s
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdTZXJ2aWNlIHdvcmtlciBzaG91bGQg
cGFzcyB0aHJvdWdoIGFsbCBzdGF0ZXMnKTsKIAorICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhj
dXJyZW50Q2hhbmdlQ291bnQsIDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICdTaG91bGQg
bm90IHNlZSBjdXJyZW50IGNoYW5nZXMgc2luY2UgZG9jdW1lbnQgaXMgb3V0IG9mIHNjb3BlJyk7
CisKICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVjZWl2ZWRNZXNzYWdlRnJvbVBvcnQsICdB
Y2sgZm9yOiByZWdpc3RlcmluZyBkb2MnKTsKIAogICAgICAgICAgICAgdmFyIHNhd1JlZHVuZGFu
dCA9IG5ldyBQcm9taXNlKHQuc3RlcF9mdW5jKGZ1bmN0aW9uKHJlc29sdmUpIHsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlZ2lzdHJhdGlvbi1ldmVudHMuaHR0cHMuaHRtbCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL3JlZ2lzdHJhdGlvbi1ldmVudHMuaHR0cHMuaHRtbAppbmRleCA1YmNm
ZDY2ODQ2YmNlNWI5M2JmMDlkMDViNjVjMmUzNTJiNTFmZmFiLi45NzJjZTc0MTBiOTkyMmVkYjcw
NTJlYTViZTc0MGY4ZWY0ODkyZjE5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZWdp
c3RyYXRpb24tZXZlbnRzLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVnaXN0
cmF0aW9uLWV2ZW50cy5odHRwcy5odG1sCkBAIC00LDE3ICs0LDE1IEBACiA8c2NyaXB0IHNyYz0i
L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL3Rlc3QtaGVscGVycy5zdWIuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KLXByb21p
c2VfdGVzdChmdW5jdGlvbih0KSB7Cit2YXIgdCA9IGFzeW5jX3Rlc3QoJ1JlZ2lzdHJhdGlvbjog
ZXZlbnRzJyk7Cit0LnN0ZXAoZnVuY3Rpb24oKSB7CiAgICAgdmFyIHNjb3BlID0gJ3Jlc291cmNl
cy9pbi1zY29wZS8nOwotICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9y
ZWdpc3RlcigKKyAgICBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3RlcigKICAg
ICAgICAgdCwgJ3Jlc291cmNlcy9ldmVudHMtd29ya2VyLmpzJywgc2NvcGUpCi0gICAgICAudGhl
bihmdW5jdGlvbihyZWdpc3RyYXRpb24pIHsKLSAgICAgICAgICB0LmFkZF9jbGVhbnVwKGZ1bmN0
aW9uKCkgewotICAgICAgICAgICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcih0
LCBzY29wZSk7Ci0gICAgICAgICAgfSk7Ci0KLSAgICAgICAgICByZXR1cm4gb25SZWdpc3Rlcihy
ZWdpc3RyYXRpb24uaW5zdGFsbGluZyk7Ci0gICAgICAgIH0pOworICAgICAgLnRoZW4odC5zdGVw
X2Z1bmMoZnVuY3Rpb24ocmVnaXN0cmF0aW9uKSB7CisgICAgICAgICAgb25SZWdpc3RlcihyZWdp
c3RyYXRpb24uaW5zdGFsbGluZyk7CisgICAgICAgIH0pKQorICAgICAgLmNhdGNoKHVucmVhY2hl
ZF9yZWplY3Rpb24odCkpOwogCiAgICAgZnVuY3Rpb24gc2VuZE1lc3NhZ2VQb3J0KHdvcmtlciwg
ZnJvbSkgewogICAgICAgICB2YXIgbWVzc2FnZUNoYW5uZWwgPSBuZXcgTWVzc2FnZUNoYW5uZWwo
KTsKQEAgLTIzLDIwICsyMSwxNyBAQCBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewogICAgIH0K
IAogICAgIGZ1bmN0aW9uIG9uUmVnaXN0ZXIoc3cpIHsKLSAgICAgICAgcmV0dXJuIG5ldyBQcm9t
aXNlKGZ1bmN0aW9uKHJlc29sdmUpIHsKLSAgICAgICAgICAgIHN3Lm9uc3RhdGVjaGFuZ2UgPSBm
dW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICBpZiAoc3cuc3RhdGUgPT09ICdhY3RpdmF0ZWQn
KQotICAgICAgICAgICAgICAgICAgICByZXNvbHZlKCk7Ci0gICAgICAgICAgICB9OwotICAgICAg
ICB9KS50aGVuKGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1
bmN0aW9uKHJlc29sdmUpIHsKLSAgICAgICAgICAgICAgICBzZW5kTWVzc2FnZVBvcnQoc3csICdy
ZWdpc3RlcmluZyBkb2MnKS5vbm1lc3NhZ2UgPSByZXNvbHZlOwotICAgICAgICAgICAgfSk7Ci0g
ICAgICAgIH0pLnRoZW4oZnVuY3Rpb24oZSkgeworICAgICAgICBzdy5vbnN0YXRlY2hhbmdlID0g
dC5zdGVwX2Z1bmMoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBpZiAoc3cuc3RhdGUgIT09ICdh
Y3RpdmF0ZWQnKQorICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgc2VuZE1l
c3NhZ2VQb3J0KHN3LCAncmVnaXN0ZXJpbmcgZG9jJykub25tZXNzYWdlID0gdC5zdGVwX2Z1bmMo
ZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGUuZGF0
YS5ldmVudHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJ2luc3RhbGwn
LCAnYWN0aXZhdGUnXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1dvcmtl
ciBzaG91bGQgc2VlIGluc3RhbGwgdGhlbiBhY3RpdmF0ZSBldmVudHMnKTsKKyAgICAgICAgICAg
ICAgICBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9kb25lKHQsIHNjb3BlKTsKKyAgICAg
ICAgICAgIH0pOwogICAgICAgICB9KTsKICAgICB9Ci19LCAnUmVnaXN0cmF0aW9uOiBldmVudHMn
KTsKK30pOwogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZWdpc3Ry
YXRpb24tbWltZS10eXBlcy5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9y
ZWdpc3RyYXRpb24tbWltZS10eXBlcy5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggZGI3MmJhZmFm
N2I5NGNlMGUyYjljYzdmMGIyNzRlZWJjNzJkODM4MC4uNTM3YTJmN2JkNjIxMjRjYTQ5MWJlZjFh
NmY4NmFlYjlmODgyNTFmZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVnaXN0cmF0
aW9uLW1pbWUtdHlwZXMuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L3JlZ2lzdHJhdGlvbi1taW1lLXR5cGVzLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMSw4ICsxLDgg
QEAKIAogUEFTUyBSZWdpc3RlcmluZyBzY3JpcHQgd2l0aCBubyBNSU1FIHR5cGUgCiBQQVNTIFJl
Z2lzdGVyaW5nIHNjcmlwdCB3aXRoIGJhZCBNSU1FIHR5cGUgCi1QQVNTIFJlZ2lzdGVyaW5nIHNj
cmlwdCB0aGF0IGltcG9ydHMgc2NyaXB0IHdpdGggbm8gTUlNRSB0eXBlIAotUEFTUyBSZWdpc3Rl
cmluZyBzY3JpcHQgdGhhdCBpbXBvcnRzIHNjcmlwdCB3aXRoIGJhZCBNSU1FIHR5cGUgCitGQUlM
IFJlZ2lzdGVyaW5nIHNjcmlwdCB0aGF0IGltcG9ydHMgc2NyaXB0IHdpdGggbm8gTUlNRSB0eXBl
IGFzc2VydF90aHJvd3M6IFJlZ2lzdHJhdGlvbiBvZiBubyBNSU1FIHR5cGUgaW1wb3J0ZWQgc2Ny
aXB0IHNob3VsZCBmYWlsLiBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeyB0aHJvdyBlIH0iIHRocmV3
IG9iamVjdCAiVHlwZUVycm9yOiBOZXR3b3JrRXJyb3I6IG1pbWUgdHlwZSBpcyBub3QgYSBzdXBw
b3J0ZWQgSmF2YVNjcmlwdCBtaW1lIHR5cGUiIHRoYXQgaXMgbm90IGEgRE9NRXhjZXB0aW9uIFNl
Y3VyaXR5RXJyb3I6IHByb3BlcnR5ICJjb2RlIiBpcyBlcXVhbCB0byB1bmRlZmluZWQsIGV4cGVj
dGVkIDE4CitGQUlMIFJlZ2lzdGVyaW5nIHNjcmlwdCB0aGF0IGltcG9ydHMgc2NyaXB0IHdpdGgg
YmFkIE1JTUUgdHlwZSBhc3NlcnRfdGhyb3dzOiBSZWdpc3RyYXRpb24gb2YgcGxhaW4gdGV4dCBp
bXBvcnRlZCBzY3JpcHQgc2hvdWxkIGZhaWwuIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7IHRocm93
IGUgfSIgdGhyZXcgb2JqZWN0ICJUeXBlRXJyb3I6IE5ldHdvcmtFcnJvcjogbWltZSB0eXBlIGlz
IG5vdCBhIHN1cHBvcnRlZCBKYXZhU2NyaXB0IG1pbWUgdHlwZSIgdGhhdCBpcyBub3QgYSBET01F
eGNlcHRpb24gU2VjdXJpdHlFcnJvcjogcHJvcGVydHkgImNvZGUiIGlzIGVxdWFsIHRvIHVuZGVm
aW5lZCwgZXhwZWN0ZWQgMTgKIFBBU1MgUmVnaXN0ZXJpbmcgc2NyaXB0IHdpdGggZ29vZCBNSU1F
IHR5cGUgYXBwbGljYXRpb24vZWNtYXNjcmlwdCAKIFBBU1MgUmVnaXN0ZXJpbmcgc2NyaXB0IHRo
YXQgaW1wb3J0cyBzY3JpcHQgd2l0aCBnb29kIE1JTUUgdHlwZSBhcHBsaWNhdGlvbi9lY21hc2Ny
aXB0IAogUEFTUyBSZWdpc3RlcmluZyBzY3JpcHQgd2l0aCBnb29kIE1JTUUgdHlwZSBhcHBsaWNh
dGlvbi9qYXZhc2NyaXB0IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVnaXN0cmF0
aW9uLW1pbWUtdHlwZXMuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlZ2lzdHJhdGlv
bi1taW1lLXR5cGVzLmh0dHBzLmh0bWwKaW5kZXggYWE5ZDM4Y2VkYzk4OWM2MWM3MjY3YWNkNDE1
MGI4ODk3NDQ4NTVlMi4uOWFlNWYwOTU2ZmJhZmY1YzJkOTRjMjdlM2VmZDVkNDAyYWNhYzM2YSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVnaXN0cmF0aW9uLW1pbWUtdHlwZXMuaHR0
cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZWdpc3RyYXRpb24tbWltZS10eXBlcy5o
dHRwcy5odG1sCkBAIC0xLDYgKzEsNSBAQAogPCFET0NUWVBFIGh0bWw+CiA8dGl0bGU+U2Vydmlj
ZSBXb3JrZXI6IFJlZ2lzdHJhdGlvbiAoTUlNRSB0eXBlcyk8L3RpdGxlPgotPG1ldGEgbmFtZT0i
dGltZW91dCIgY29udGVudD0ibG9uZyI+CiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFy
bmVzcy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3Jl
cG9ydC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Rlc3QtaGVscGVycy5z
dWIuanMiPjwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVnaXN0cmF0
aW9uLXNjaGVkdWxlLWpvYi5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9y
ZWdpc3RyYXRpb24tc2NoZWR1bGUtam9iLmh0dHBzLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggYjE2OWJjZjFkYzg2MDQ4NTUxMWNkN2U0ZmFlMzA2M2FiZDJkMjlk
My4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9yZWdpc3RyYXRpb24tc2NoZWR1bGUtam9iLmh0dHBzLWV4cGVjdGVkLnR4dAor
KysgL2Rldi9udWxsCkBAIC0xLDQgKzAsMCBAQAotCi1GQUlMIGRpZmZlcmVudCBzY3JpcHRVUkwg
YW5kIHVwZGF0ZVZpYUNhY2hlIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRo
IHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogbnVsbCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0
aW5nICdyZWdpc3RyYXRpb24uaW5zdGFsbGluZy5zY3JpcHRVUkwnKSIKLUZBSUwgZGlmZmVyZW50
IHR5cGUgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgKHN0cmluZykgImNsYXNzaWMiIGJ1dCBnb3Qg
KHVuZGVmaW5lZCkgdW5kZWZpbmVkCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jl
Z2lzdHJhdGlvbi1zY2hlZHVsZS1qb2IuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jl
Z2lzdHJhdGlvbi1zY2hlZHVsZS1qb2IuaHR0cHMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMTg1ODllMGFhMGIzMmUxMzA5MzRhNjViMWIwNjVkNWM3Zjc5ZTM2ZS4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9yZWdpc3RyYXRpb24tc2NoZWR1bGUtam9iLmh0dHBzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAt
MSw2NyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0
aXRsZT5TZXJ2aWNlIFdvcmtlcjogU2NoZWR1bGUgSm9iIGFsZ29yaXRobTwvdGl0bGU+Ci08c2Ny
aXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL3Rlc3RoYXJuZXNzLWhlbHBlcnMuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4K
LS8vIFRlc3RzIGZvciBodHRwczovL3czYy5naXRodWIuaW8vU2VydmljZVdvcmtlci8jc2NoZWR1
bGUtam9iLWFsZ29yaXRobQotLy8gTm9uLWVxdWl2YWxlbnQgcmVnaXN0ZXIgam9icyBzaG91bGQg
bm90IGJlIGNvYWxlc2NlZC4KLWNvbnN0IHNjb3BlID0gJ3Jlc291cmNlcy8nOwotY29uc3Qgc2Ny
aXB0MSA9ICdyZXNvdXJjZXMvZW1wdHkuanMnOwotY29uc3Qgc2NyaXB0MiA9ICdyZXNvdXJjZXMv
ZW1wdHkuanM/Y2hhbmdlJzsKLQotYXN5bmMgZnVuY3Rpb24gY2xlYW51cCgpIHsKLSAgY29uc3Qg
cmVnaXN0cmF0aW9uID0gYXdhaXQgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuZ2V0UmVnaXN0cmF0
aW9uKHNjb3BlKTsKLSAgaWYgKHJlZ2lzdHJhdGlvbikKLSAgICBhd2FpdCByZWdpc3RyYXRpb24u
dW5yZWdpc3RlcigpOwotfQotCi1mdW5jdGlvbiBhYnNvbHV0ZV91cmwodXJsKSB7Ci0gIHJldHVy
biBuZXcgVVJMKHVybCwgc2VsZi5sb2NhdGlvbikudG9TdHJpbmcoKTsKLX0KLQotLy8gVGVzdCBz
Y3JpcHRVUkwgYW5kIHVwZGF0ZVZpYUNhY2hlLgotcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewot
ICBhd2FpdCBjbGVhbnVwKCk7Ci0gIHQuYWRkX2NsZWFudXAoY2xlYW51cCk7Ci0KLSAgLy8gQ2hl
Y2sgZGVmYXVsdHMuCi0gIGNvbnN0IHJlZ2lzdHJhdGlvbiA9IGF3YWl0Ci0gICAgICBuYXZpZ2F0
b3Iuc2VydmljZVdvcmtlci5yZWdpc3RlcihzY3JpcHQxLCB7c2NvcGV9KTsKLSAgYXNzZXJ0X2Vx
dWFscyhyZWdpc3RyYXRpb24udXBkYXRlVmlhQ2FjaGUsICdpbXBvcnRzJyk7Ci0KLSAgLy8gU2No
ZWR1bGUgc2V2ZXJhbCByZWdpc3RlciBqb2JzLgotICBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5y
ZWdpc3RlcihzY3JpcHQxLCB7c2NvcGV9KTsKLSAgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVn
aXN0ZXIoc2NyaXB0Miwge3Njb3BlfSk7Ci0gIGF3YWl0IG5hdmlnYXRvci5zZXJ2aWNlV29ya2Vy
LnJlZ2lzdGVyKHNjcmlwdDIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHtzY29wZSwgdXBkYXRlVmlhQ2FjaGU6ICdub25lJ30pOwotCi0gIC8vIE5vbmUgb2YgdGhl
IGNoYW5nZXMgc2hvdWxkIGhhdmUgYmVlbiBjb2FsZXNjZWQuCi0gIGFzc2VydF9lcXVhbHMocmVn
aXN0cmF0aW9uLmluc3RhbGxpbmcuc2NyaXB0VVJMLCBhYnNvbHV0ZV91cmwoc2NyaXB0MikpOwot
ICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi51cGRhdGVWaWFDYWNoZSwgJ25vbmUnKTsKLX0s
ICdkaWZmZXJlbnQgc2NyaXB0VVJMIGFuZCB1cGRhdGVWaWFDYWNoZScpOwotCi0vLyBUZXN0IHx0
eXBlfCBpbiBhbm90aGVyIHRlc3QgY2FzZSBiZWNhdXNlIG1vc3QgYnJvd3NlcnMgZG9uJ3Qgc3Vw
cG9ydCBpdC4KLXByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKLSAgY29uc3Qgc2NyaXB0MSA9ICdy
ZXNvdXJjZXMvZW1wdHkuanMnOwotICBjb25zdCBzY3JpcHQyID0gJ3Jlc291cmNlcy9lbXB0eS5q
cz9jaGFuZ2UnOwotCi0gIGF3YWl0IGNsZWFudXAoKTsKLSAgdC5hZGRfY2xlYW51cChjbGVhbnVw
KTsKLQotICAvLyBDaGVjayBkZWZhdWx0cy4KLSAgY29uc3QgcmVnaXN0cmF0aW9uID0gYXdhaXQK
LSAgICAgIG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKHNjcmlwdDEsIHtzY29wZX0p
OwotICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLnR5cGUsICdjbGFzc2lj
Jyk7Ci0KLSAgLy8gU2NoZWR1bGUgc2V2ZXJhbCByZWdpc3RlciBqb2JzLgotICBuYXZpZ2F0b3Iu
c2VydmljZVdvcmtlci5yZWdpc3RlcihzY3JpcHQxLCB7c2NvcGV9KTsKLSAgbmF2aWdhdG9yLnNl
cnZpY2VXb3JrZXIucmVnaXN0ZXIoc2NyaXB0Miwge3Njb3BlfSk7Ci0gIGF3YWl0IG5hdmlnYXRv
ci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKHNjcmlwdDIsIHtzY29wZSwgdHlwZTogJ21vZHVsZSd9
KTsKLQotICAvLyBOb25lIG9mIHRoZSBjaGFuZ2VzIHNob3VsZCBoYXZlIGJlZW4gY29hbGVzY2Vk
LgotICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLnNjcmlwdFVSTCwgYWJz
b2x1dGVfdXJsKHNjcmlwdDIpKTsKLSAgYXNzZXJ0X2VxdWFscyhyZWdpc3RyYXRpb24uaW5zdGFs
bGluZy50eXBlLCAnbW9kdWxlJyk7Ci19LCAnZGlmZmVyZW50IHR5cGUnKTsKLTwvc2NyaXB0Pgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVnaXN0cmF0aW9uLXNjb3BlLmh0dHBzLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlZ2lzdHJhdGlvbi1zY29wZS5odHRwcy1l
eHBlY3RlZC50eHQKaW5kZXggYWRjOTU5YWJlMDE4ZGFjM2M1YjdkMTRiNDEwZDI0MTJiZjllYTRi
OC4uZDRhNWFiMWE4NmI5YmMzMWU2ZTFkODczMmJmOGRlYmQxY2NkNWZhMiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvcmVnaXN0cmF0aW9uLXNjb3BlLmh0dHBzLWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZWdpc3RyYXRpb24tc2NvcGUuaHR0cHMtZXhwZWN0ZWQu
dHh0CkBAIC02LDUgKzYsNSBAQCBQQVNTIFNjb3BlIGluY2x1ZGluZyBub24tZXNjYXBlZCBtdWx0
aWJ5dGUgY2hhcmFjdGVycwogUEFTUyBTY29wZSBpbmNsdWRpbmcgc2VsZi1yZWZlcmVuY2UgCiBQ
QVNTIFNjb3BlIGluY2x1ZGluZyBwYXJlbnQtcmVmZXJlbmNlIAogUEFTUyBTY29wZSBpbmNsdWRp
bmcgY29uc2VjdXRpdmUgc2xhc2hlcyAKLVBBU1MgU2NvcGUgVVJMIGlzIHNhbWUtb3JpZ2luIGZp
bGVzeXN0ZW06IFVSTCAKK0ZBSUwgU2NvcGUgVVJMIGlzIHNhbWUtb3JpZ2luIGZpbGVzeXN0ZW06
IFVSTCBhc3NlcnRfdGhyb3dzOiBSZWdpc3RlcmluZyB3aXRoIHRoZSBzY29wZSB0aGF0IGhhcyBz
YW1lLW9yaWdpbiBmaWxlc3lzdGVtOiBVUkwgc2hvdWxkIGZhaWwgd2l0aCBTZWN1cml0eUVycm9y
LiBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeyB0aHJvdyBlIH0iIHRocmV3IG9iamVjdCAiVHlwZUVy
cm9yOiBTY29wZSBVUkwgcHJvdmlkZWQgdG8gc2VydmljZVdvcmtlci5yZWdpc3RlcigpIG11c3Qg
YmUgZWl0aGVyIEhUVFAgb3IgSFRUUFMiIHRoYXQgaXMgbm90IGEgRE9NRXhjZXB0aW9uIFNlY3Vy
aXR5RXJyb3I6IHByb3BlcnR5ICJjb2RlIiBpcyBlcXVhbCB0byB1bmRlZmluZWQsIGV4cGVjdGVk
IDE4CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlZ2lzdHJhdGlvbi1zZWN1cml0
eS1lcnJvci5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZWdpc3RyYXRp
b24tc2VjdXJpdHktZXJyb3IuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IGFhNzVlYzkzODQ0NzAw
Zjc1N2NkYzk5ZGQzNjIxMDZhNGZlYzk4YTguLjQ3OTY5ZTZiOWU4NGYzYzJlZmRmZDRkNDY1ODc1
MTFiNjQ4NDRjMmIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlZ2lzdHJhdGlvbi1z
ZWN1cml0eS1lcnJvci5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
cmVnaXN0cmF0aW9uLXNlY3VyaXR5LWVycm9yLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtNiw1ICs2
LDUgQEAgUEFTUyBSZWdpc3RlcmluZyBzY3JpcHQgb3V0c2lkZSBkb21haW4KIFBBU1MgUmVnaXN0
ZXJpbmcgcmVkaXJlY3RlZCBzY3JpcHQgCiBQQVNTIFNjb3BlIGluY2x1ZGluZyBwYXJlbnQtcmVm
ZXJlbmNlIGFuZCBub3QgdW5kZXIgdGhlIHNjcmlwdCBkaXJlY3RvcnkgCiBQQVNTIFNjcmlwdCBV
UkwgaW5jbHVkaW5nIGNvbnNlY3V0aXZlIHNsYXNoZXMgCi1QQVNTIFNjcmlwdCBVUkwgaXMgc2Ft
ZS1vcmlnaW4gZmlsZXN5c3RlbTogVVJMIAorRkFJTCBTY3JpcHQgVVJMIGlzIHNhbWUtb3JpZ2lu
IGZpbGVzeXN0ZW06IFVSTCBhc3NlcnRfdGhyb3dzOiBSZWdpc3RlcmluZyBhIHNjcmlwdCB3aGlj
aCBoYXMgc2FtZS1vcmlnaW4gZmlsZXN5c3RlbTogVVJMIHNob3VsZCBmYWlsIHdpdGggU2VjdXJp
dHlFcnJvci4gZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsgdGhyb3cgZSB9IiB0aHJldyBvYmplY3Qg
IlR5cGVFcnJvcjogc2VydmljZVdvcmtlci5yZWdpc3RlcigpIG11c3QgYmUgY2FsbGVkIHdpdGgg
YSBzY3JpcHQgVVJMIHdob3NlIHByb3RvY29sIGlzIGVpdGhlciBIVFRQIG9yIEhUVFBTIiB0aGF0
IGlzIG5vdCBhIERPTUV4Y2VwdGlvbiBTZWN1cml0eUVycm9yOiBwcm9wZXJ0eSAiY29kZSIgaXMg
ZXF1YWwgdG8gdW5kZWZpbmVkLCBleHBlY3RlZCAxOAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9yZWdpc3RyYXRpb24tc2VydmljZS13b3JrZXItYXR0cmlidXRlcy5odHRwcy5odG1s
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvcmVnaXN0cmF0aW9uLXNlcnZpY2Utd29ya2VyLWF0dHJpYnV0
ZXMuaHR0cHMuaHRtbAppbmRleCBmN2I1MmQ1ZGRjZWQxODYxM2NhMjI1Mzg2YmI1N2YyOGI5YmFj
ZDYyLi44ZmQ1NjZkYWRjNjJhNzhlZjA4MzZiYmM2MzAwMDQ3M2Y4ODRkN2M3IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9yZWdpc3RyYXRpb24tc2VydmljZS13b3JrZXItYXR0cmlidXRl
cy5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlZ2lzdHJhdGlvbi1zZXJ2aWNl
LXdvcmtlci1hdHRyaWJ1dGVzLmh0dHBzLmh0bWwKQEAgLTE0LDcgKzE0LDcgQEAgcHJvbWlzZV90
ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9h
bmRfcmVnaXN0ZXIodCwgd29ya2VyX3VybCwgc2NvcGUpCiAgICAgICAudGhlbihmdW5jdGlvbihy
KSB7CiAgICAgICAgICAgdC5hZGRfY2xlYW51cChmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAg
cmV0dXJuIHIudW5yZWdpc3RlcigpOworICAgICAgICAgICAgICByLnVucmVnaXN0ZXIoKTsKICAg
ICAgICAgICAgIH0pOwogICAgICAgICAgIHJlZ2lzdHJhdGlvbiA9IHI7CiAgICAgICAgICAgbmV3
ZXN0X3dvcmtlciA9IHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nOwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvcmVnaXN0cmF0aW9uLXVwZGF0ZXZpYWNhY2hlLmh0dHBzLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlZ2lzdHJhdGlvbi11cGRhdGV2aWFjYWNoZS5odHRwcy1l
eHBlY3RlZC50eHQKaW5kZXggYzZlODY3NTZjMDgzNWI4OGE2ODg4YmQwMTVkYTQ0NTUyNmI4MWFj
NC4uYzkwZDA5NDJkNGQ0NjYyMWUxZTVkYmNhYTUxMTBlYzgyMDA5ZTY1OSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvcmVnaXN0cmF0aW9uLXVwZGF0ZXZpYWNhY2hlLmh0dHBzLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZWdpc3RyYXRpb24tdXBkYXRldmlhY2Fj
aGUuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0yMyw1ICsyMyw0IEBAIFBBU1MgYWNjZXNzLXVwZGF0
ZVZpYUNhY2hlLWFmdGVyLXVucmVnaXN0ZXItdW5kZWZpbmVkCiBQQVNTIGFjY2Vzcy11cGRhdGVW
aWFDYWNoZS1hZnRlci11bnJlZ2lzdGVyLWltcG9ydHMgCiBQQVNTIGFjY2Vzcy11cGRhdGVWaWFD
YWNoZS1hZnRlci11bnJlZ2lzdGVyLWFsbCAKIFBBU1MgYWNjZXNzLXVwZGF0ZVZpYUNhY2hlLWFm
dGVyLXVucmVnaXN0ZXItbm9uZSAKLUZBSUwgdXBkYXRlVmlhQ2FjaGUgaXMgbm90IHVwZGF0ZWQg
aWYgcmVnaXN0ZXIoKSByZWplY3RzIGFzc2VydF9lcXVhbHM6IGFmdGVyIHVwZGF0ZSBhdHRlbXB0
IGV4cGVjdGVkICJpbXBvcnRzIiBidXQgZ290ICJub25lIgogCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9yZWdpc3RyYXRpb24tdXBkYXRldmlhY2FjaGUuaHR0cHMuaHRtbCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL3JlZ2lzdHJhdGlvbi11cGRhdGV2aWFjYWNoZS5odHRwcy5odG1sCmluZGV4
IDQyMzkwOGRiMGU0MjhkNjViNDhiOGI4ZDE2MTYyYTVlYmNmODcyNjguLmRiY2M2ZWFiMWY4MmE2
YjMzZWQ3ZDg4OWNiYTUxYmU1Yjk4NGI2MTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L3JlZ2lzdHJhdGlvbi11cGRhdGV2aWFjYWNoZS5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL3JlZ2lzdHJhdGlvbi11cGRhdGV2aWFjYWNoZS5odHRwcy5odG1sCkBAIC0xODQsMjEg
KzE4NCw0IEBACiAgICAgfSwgdGVzdE5hbWUpOwogICB9CiAKLSAgcHJvbWlzZV90ZXN0KGFzeW5j
IHQgPT4gewotICAgIGF3YWl0IGNsZWFudXAoKTsKLSAgICB0LmFkZF9jbGVhbnVwKGNsZWFudXAp
OwotCi0gICAgY29uc3QgcmVnaXN0cmF0aW9uID0gYXdhaXQgbmF2aWdhdG9yLnNlcnZpY2VXb3Jr
ZXIucmVnaXN0ZXIoCi0gICAgICAgICdyZXNvdXJjZXMvZW1wdHkuanMnLAotICAgICAgICB7c2Nv
cGU6IFNDT1BFfSk7Ci0gICAgYXNzZXJ0X2VxdWFscyhyZWdpc3RyYXRpb24udXBkYXRlVmlhQ2Fj
aGUsICdpbXBvcnRzJywKLSAgICAgICAgICAgICAgICAgICdiZWZvcmUgdXBkYXRlIGF0dGVtcHQn
KTsKLQotICAgIGNvbnN0IGZhaWwgPSBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3RlcigK
LSAgICAgICAgJ3Jlc291cmNlcy9tYWxmb3JtZWQtd29ya2VyLnB5P3BhcnNlLWVycm9yJywKLSAg
ICAgICAge3Njb3BlOiBTQ09QRSwgdXBkYXRlVmlhQ2FjaGU6ICdub25lJ30pOwotICAgIGF3YWl0
IHByb21pc2VfcmVqZWN0cyh0LCBuZXcgVHlwZUVycm9yKCksIGZhaWwpOwotICAgIGFzc2VydF9l
cXVhbHMocmVnaXN0cmF0aW9uLnVwZGF0ZVZpYUNhY2hlLCAnaW1wb3J0cycsCi0gICAgICAgICAg
ICAgICAgICAnYWZ0ZXIgdXBkYXRlIGF0dGVtcHQnKTsKLSAgfSwgJ3VwZGF0ZVZpYUNhY2hlIGlz
IG5vdCB1cGRhdGVkIGlmIHJlZ2lzdGVyKCkgcmVqZWN0cycpOwogPC9zY3JpcHQ+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZS10aW1pbmcuaHR0cHMuaHRtbCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL3Jlc291cmNlLXRpbWluZy5odHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEyM2Ji
Yzg3YzU3ZTg1N2E1MTdhYjc5MjcxN2YxY2Y2NWI5YTNhMTYKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZS10aW1pbmcuaHR0cHMuaHRtbApAQCAtMCwwICsxLDE0
NCBAQAorPCFET0NUWVBFIGh0bWw+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVz
cy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9y
dC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL2NvbW1vbi9nZXQtaG9zdC1pbmZvLnN1Yi5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Rlc3QtaGVscGVycy5zdWIuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1bmN0aW9uIHJlc291cmNlVXJsKHBhdGgpIHsKKyAgICBy
ZXR1cm4gZ2V0X2hvc3RfaW5mbygpWydIVFRQU19PUklHSU4nXSArIGJhc2VfcGF0aCgpICsgcGF0
aDsKK30KKworZnVuY3Rpb24gY3Jvc3NPcmlnaW5VcmwocGF0aCkgeworICAgIHJldHVybiBnZXRf
aG9zdF9pbmZvKClbJ0hUVFBTX1JFTU9URV9PUklHSU4nXSArIGJhc2VfcGF0aCgpICsgcGF0aDsK
K30KKworZnVuY3Rpb24gdmVyaWZ5KG9wdGlvbnMpIHsKKyAgICBjb25zdCB1cmwgPSBvcHRpb25z
Lm1vZGUgPT09ICdjcm9zcy1vcmlnaW4nID8gY3Jvc3NPcmlnaW5Vcmwob3B0aW9ucy5yZXNvdXJj
ZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiByZXNvdXJjZVVybChv
cHRpb25zLnJlc291cmNlKTsKKyAgICBjb25zdCBlbnRyeUxpc3QgPSBvcHRpb25zLnBlcmZvcm1h
bmNlLmdldEVudHJpZXNCeU5hbWUodXJsKTsKKyAgICBpZiAob3B0aW9ucy5zaG91bGRfbm9fcGVy
Zm9ybWFuY2VfZW50cnkpIHsKKyAgICAgICAgLy8gVGhlIHBlcmZvcm1hbmNlIHRpbWVsaW5lIG1h
eSBub3QgaGF2ZSBhbiBlbnRyeSBmb3IgYSByZXNvdXJjZQorICAgICAgICAvLyB3aGljaCBmYWls
ZWQgdG8gbG9hZC4KKyAgICAgICAgYXNzZXJ0X2VxdWFscyhlbnRyeUxpc3QubGVuZ3RoLCAwLCBv
cHRpb25zLmRlc2NyaXB0aW9uKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBhc3NlcnRf
ZXF1YWxzKGVudHJ5TGlzdC5sZW5ndGgsIDEsIG9wdGlvbnMuZGVzY3JpcHRpb24pOworICAgIGNv
bnN0IGVudHJ5ID0gZW50cnlMaXN0WzBdOworICAgIGFzc2VydF9lcXVhbHMoZW50cnkuZW50cnlU
eXBlLCAncmVzb3VyY2UnLCBvcHRpb25zLmRlc2NyaXB0aW9uKTsKKyAgICBhc3NlcnRfZ3JlYXRl
cl90aGFuKGVudHJ5LndvcmtlclN0YXJ0LCAwLCBvcHRpb25zLmRlc2NyaXB0aW9uKTsKKyAgICBh
c3NlcnRfZ3JlYXRlcl90aGFuX2VxdWFsKGVudHJ5LndvcmtlclN0YXJ0LCBlbnRyeS5zdGFydFRp
bWUsIG9wdGlvbnMuZGVzY3JpcHRpb24pOworICAgIGFzc2VydF9sZXNzX3RoYW5fZXF1YWwoZW50
cnkud29ya2VyU3RhcnQsIGVudHJ5LmZldGNoU3RhcnQsIG9wdGlvbnMuZGVzY3JpcHRpb24pOwor
ICAgIGlmIChvcHRpb25zLm1vZGUgPT09ICdjcm9zcy1vcmlnaW4nKSB7CisgICAgICBhc3NlcnRf
ZXF1YWxzKGVudHJ5LnJlc3BvbnNlU3RhcnQsIDAsIG9wdGlvbnMuZGVzY3JpcHRpb24pOworICAg
ICAgYXNzZXJ0X2dyZWF0ZXJfdGhhbl9lcXVhbChlbnRyeS5yZXNwb25zZUVuZCwgZW50cnkuZmV0
Y2hTdGFydCwgb3B0aW9ucy5kZXNjcmlwdGlvbik7CisgICAgfSBlbHNlIHsKKyAgICAgIGFzc2Vy
dF9ncmVhdGVyX3RoYW5fZXF1YWwoZW50cnkucmVzcG9uc2VTdGFydCwgZW50cnkuZmV0Y2hTdGFy
dCwgb3B0aW9ucy5kZXNjcmlwdGlvbik7CisgICAgICBhc3NlcnRfZ3JlYXRlcl90aGFuX2VxdWFs
KGVudHJ5LnJlc3BvbnNlRW5kLCBlbnRyeS5yZXNwb25zZVN0YXJ0LCBvcHRpb25zLmRlc2NyaXB0
aW9uKTsKKyAgICB9CisgICAgYXNzZXJ0X2dyZWF0ZXJfdGhhbihlbnRyeS5yZXNwb25zZUVuZCwg
ZW50cnkuZmV0Y2hTdGFydCwgb3B0aW9ucy5kZXNjcmlwdGlvbik7CisgICAgYXNzZXJ0X2dyZWF0
ZXJfdGhhbihlbnRyeS5kdXJhdGlvbiwgMCwgb3B0aW9ucy5kZXNjcmlwdGlvbik7CisgICAgaWYg
KG9wdGlvbnMucmVzb3VyY2UuaW5kZXhPZigncmVkaXJlY3QucHknKSAhPSAtMSkgeworICAgICAg
ICBhc3NlcnRfbGVzc190aGFuX2VxdWFsKGVudHJ5LndvcmtlclN0YXJ0LCBlbnRyeS5yZWRpcmVj
dFN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMuZGVzY3JpcHRp
b24pOworICAgIH0gZWxzZSB7CisgICAgICAgIGFzc2VydF9lcXVhbHMoZW50cnkucmVkaXJlY3RT
dGFydCwgMCwgb3B0aW9ucy5kZXNjcmlwdGlvbik7CisgICAgfQorfQorCitwcm9taXNlX3Rlc3Qo
ZnVuY3Rpb24odCkgeworICAgIGNvbnN0IHdvcmtlcl91cmwgPSAncmVzb3VyY2VzL3Jlc291cmNl
LXRpbWluZy13b3JrZXIuanMnOworICAgIGNvbnN0IHNjb3BlID0gJ3Jlc291cmNlcy9yZXNvdXJj
ZS10aW1pbmctaWZyYW1lLnN1Yi5odG1sJzsKKyAgICBsZXQgcmVnaXN0cmF0aW9uOworCisgICAg
cmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHdvcmtlcl91
cmwsIHNjb3BlKQorICAgICAgLnRoZW4oZnVuY3Rpb24ocikgeworICAgICAgICAgIHJlZ2lzdHJh
dGlvbiA9IHI7CisgICAgICAgICAgcmV0dXJuIHdhaXRfZm9yX3N0YXRlKHQsIHIuaW5zdGFsbGlu
ZywgJ2FjdGl2YXRlZCcpOworICAgICAgICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7Cisg
ICAgICAgICAgcmV0dXJuIHdpdGhfaWZyYW1lKHNjb3BlKTsKKyAgICAgICAgfSkKKyAgICAgIC50
aGVuKGZ1bmN0aW9uKGZyYW1lKSB7CisgICAgICAgICAgY29uc3QgcGVyZm9ybWFuY2UgPSBmcmFt
ZS5jb250ZW50V2luZG93LnBlcmZvcm1hbmNlOworICAgICAgICAgIHZlcmlmeSh7CisgICAgICAg
ICAgICAgIHBlcmZvcm1hbmNlOiBwZXJmb3JtYW5jZSwKKyAgICAgICAgICAgICAgcmVzb3VyY2U6
ICdyZXNvdXJjZXMvZHVtbXkuanMnLAorICAgICAgICAgICAgICBtb2RlOiAnc2FtZS1vcmlnaW4n
LAorICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ0dlbmVyYXRlZCByZXNwb25zZScsCisgICAg
ICAgICAgfSk7CisgICAgICAgICAgdmVyaWZ5KHsKKyAgICAgICAgICAgICAgcGVyZm9ybWFuY2U6
IHBlcmZvcm1hbmNlLAorICAgICAgICAgICAgICByZXNvdXJjZTogJ3Jlc291cmNlcy9lbXB0eS5q
cycsCisgICAgICAgICAgICAgIG1vZGU6ICdzYW1lLW9yaWdpbicsCisgICAgICAgICAgICAgIGRl
c2NyaXB0aW9uOiAnTmV0d29yayBmYWxsYmFjaycsCisgICAgICAgICAgfSk7CisgICAgICAgICAg
dmVyaWZ5KHsKKyAgICAgICAgICAgICAgcGVyZm9ybWFuY2U6IHBlcmZvcm1hbmNlLAorICAgICAg
ICAgICAgICByZXNvdXJjZTogJ3Jlc291cmNlcy9yZWRpcmVjdC5weT9SZWRpcmVjdD1lbXB0eS5q
cycsCisgICAgICAgICAgICAgIG1vZGU6ICdzYW1lLW9yaWdpbicsCisgICAgICAgICAgICAgIGRl
c2NyaXB0aW9uOiAnUmVkaXJlY3QnLAorICAgICAgICAgIH0pOworICAgICAgICAgIHZlcmlmeSh7
CisgICAgICAgICAgICAgIHBlcmZvcm1hbmNlOiBwZXJmb3JtYW5jZSwKKyAgICAgICAgICAgICAg
cmVzb3VyY2U6ICdyZXNvdXJjZXMvc3F1YXJlLnBuZycsCisgICAgICAgICAgICAgIG1vZGU6ICdz
YW1lLW9yaWdpbicsCisgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnTmV0d29yayBmYWxsYmFj
ayBpbWFnZScsCisgICAgICAgICAgfSk7CisgICAgICAgICAgLy8gVGVzdCB0aGF0IHdvcmtlciBz
dGFydCBpcyBhdmFpbGFibGUgb24gY3Jvc3Mtb3JpZ2luIG5vLWNvcnMKKyAgICAgICAgICAvLyBz
dWJyZXNvdXJjZXMuCisgICAgICAgICAgdmVyaWZ5KHsKKyAgICAgICAgICAgICAgcGVyZm9ybWFu
Y2U6IHBlcmZvcm1hbmNlLAorICAgICAgICAgICAgICByZXNvdXJjZTogJ3Jlc291cmNlcy9zcXVh
cmUucG5nJywKKyAgICAgICAgICAgICAgbW9kZTogJ2Nyb3NzLW9yaWdpbicsCisgICAgICAgICAg
ICAgIGRlc2NyaXB0aW9uOiAnTmV0d29yayBmYWxsYmFjayBjcm9zcy1vcmlnaW4gaW1hZ2UnLAor
ICAgICAgICAgIH0pOworCisgICAgICAgICAgLy8gVGVzdHMgZm9yIHJlc291Y2VzIHdoaWNoIGZh
aWxlZCB0byBsb2FkLgorICAgICAgICAgIHZlcmlmeSh7CisgICAgICAgICAgICAgIHBlcmZvcm1h
bmNlOiBwZXJmb3JtYW5jZSwKKyAgICAgICAgICAgICAgcmVzb3VyY2U6ICdyZXNvdXJjZXMvbWlz
c2luZy5qcGcnLAorICAgICAgICAgICAgICBtb2RlOiAnc2FtZS1vcmlnaW4nLAorICAgICAgICAg
ICAgICBkZXNjcmlwdGlvbjogJ05ldHdvcmsgZmFsbGJhY2sgbG9hZCBmYWlsdXJlJywKKyAgICAg
ICAgICAgICAgc2hvdWxkX25vX3BlcmZvcm1hbmNlX2VudHJ5OiB0cnVlLAorICAgICAgICAgIH0p
OworICAgICAgICAgIHZlcmlmeSh7CisgICAgICAgICAgICAgIHBlcmZvcm1hbmNlOiBwZXJmb3Jt
YW5jZSwKKyAgICAgICAgICAgICAgcmVzb3VyY2U6ICdyZXNvdXJjZXMvbWlzc2luZy5qcGcnLAor
ICAgICAgICAgICAgICBtb2RlOiAnY3Jvc3Mtb3JpZ2luJywKKyAgICAgICAgICAgICAgZGVzY3Jp
cHRpb246ICdOZXR3b3JrIGZhbGxiYWNrIGNyb3NzLW9yaWdpbiBsb2FkIGZhaWx1cmUnLAorICAg
ICAgICAgICAgICBzaG91bGRfbm9fcGVyZm9ybWFuY2VfZW50cnk6IHRydWUsCisgICAgICAgICAg
fSk7CisgICAgICAgICAgLy8gVGVzdHMgZm9yIHJlc3BvbmRXaXRoKGZldGNoKCkpLgorICAgICAg
ICAgIHZlcmlmeSh7CisgICAgICAgICAgICAgIHBlcmZvcm1hbmNlOiBwZXJmb3JtYW5jZSwKKyAg
ICAgICAgICAgICAgcmVzb3VyY2U6ICdyZXNvdXJjZXMvbWlzc2luZy5qcGc/U1dSZXNwb25kc1dp
dGhGZXRjaCcsCisgICAgICAgICAgICAgIG1vZGU6ICdzYW1lLW9yaWdpbicsCisgICAgICAgICAg
ICAgIGRlc2NyaXB0aW9uOiAnUmVzb3VyY2UgaW4gaWZyYW1lLCBub25leGlzdGVudCBidXQgcmVz
cG9uZGVkIHdpdGggZmV0Y2ggdG8gYW5vdGhlci4nLAorICAgICAgICAgIH0pOworICAgICAgICAg
IHZlcmlmeSh7CisgICAgICAgICAgICAgIHBlcmZvcm1hbmNlOiBwZXJmb3JtYW5jZSwKKyAgICAg
ICAgICAgICAgcmVzb3VyY2U6ICdyZXNvdXJjZXMvZHVtbXkudHh0P1NXRmV0Y2hlZCcsCisgICAg
ICAgICAgICAgIG1vZGU6ICdzYW1lLW9yaWdpbicsCisgICAgICAgICAgICAgIGRlc2NyaXB0aW9u
OiAnUmVzb3VyY2UgZmV0Y2hlZCBhcyByZXNwb25zZSBmcm9tIG1pc3NpbmcuanBnP1NXUmVzcG9u
ZHNXaXRoRmV0Y2guJywKKyAgICAgICAgICAgICAgc2hvdWxkX25vX3BlcmZvcm1hbmNlX2VudHJ5
OiB0cnVlLAorICAgICAgICAgIH0pOworICAgICAgICAgIC8vIFRlc3QgZm9yIGEgbm9ybWFsIHJl
c291cmNlIHRoYXQgaXMgdW5hZmZlY3RlZCBieSB0aGUgU2VydmljZSBXb3JrZXIuCisgICAgICAg
ICAgdmVyaWZ5KHsKKyAgICAgICAgICAgICAgcGVyZm9ybWFuY2U6IHBlcmZvcm1hbmNlLAorICAg
ICAgICAgICAgICByZXNvdXJjZTogJ3Jlc291cmNlcy9lbXB0eS13b3JrZXIuanMnLAorICAgICAg
ICAgICAgICBtb2RlOiAnc2FtZS1vcmlnaW4nLAorICAgICAgICAgICAgICBkZXNjcmlwdGlvbjog
J1Jlc291cmNlIHVudG91Y2hlZCBieSB0aGUgU2VydmljZSBXb3JrZXIuJywKKyAgICAgICAgICB9
KTsKKworICAgICAgICAgIGZyYW1lLnJlbW92ZSgpOworICAgICAgICAgIHJldHVybiByZWdpc3Ry
YXRpb24udW5yZWdpc3RlcigpOworICAgICAgfSk7Cit9LCAnQ29udHJvbGxlZCByZXNvdXJjZSBs
b2FkcycpOworCit0ZXN0KCgpID0+IHsKKyAgICBjb25zdCB1cmwgPSByZXNvdXJjZVVybCgncmVz
b3VyY2VzL3Rlc3QtaGVscGVycy5zdWIuanMnKTsKKyAgICBjb25zdCBlbnRyeSA9IHdpbmRvdy5w
ZXJmb3JtYW5jZS5nZXRFbnRyaWVzQnlOYW1lKHVybClbMF07CisgICAgYXNzZXJ0X2VxdWFscyhl
bnRyeS53b3JrZXJTdGFydCwgMCwgJ05vbi1jb250cm9sbGVkJyk7Cit9LCAnTm9uLWNvbnRyb2xs
ZWQgcmVzb3VyY2UgbG9hZHMnKTsKKworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9yZXNvdXJjZS10aW1pbmcuc3ViLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL3Jlc291cmNlLXRpbWluZy5zdWIuaHR0cHMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjNDFjMmI3ZTUzZmY3MjIxODI5YzYzZWI3NDJiODc1YmY5
YTE2NjJhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL3Jlc291cmNlLXRpbWluZy5zdWIuaHR0cHMtZXhwZWN0ZWQudHh0Cisr
KyAvZGV2L251bGwKQEAgLTEsNSArMCwwIEBACi0KLQotRkFJTCBDb250cm9sbGVkIHJlc291cmNl
IGxvYWRzIGFzc2VydF9ncmVhdGVyX3RoYW46IEdlbmVyYXRlZCByZXNwb25zZSBleHBlY3RlZCBh
IG51bWJlciBncmVhdGVyIHRoYW4gMCBidXQgZ290IDAKLVBBU1MgTm9uLWNvbnRyb2xsZWQgcmVz
b3VyY2UgbG9hZHMgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlLXRp
bWluZy5zdWIuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlLXRpbWluZy5z
dWIuaHR0cHMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjA1MDJjYWM3Mjc4
OTZjZTY3NGYzYjkzYTlkZDRjZmNiZjU0YjQxYi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZS10aW1pbmcuc3Vi
Lmh0dHBzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxNDMgKzAsMCBAQAotPCFET0NUWVBFIGh0
bWw+Ci08c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Rlc3QtaGVscGVycy5zdWIuanMiPjwvc2NyaXB0PgotPHNj
cmlwdD4KLWZ1bmN0aW9uIHJlc291cmNlVXJsKHBhdGgpIHsKLSAgICByZXR1cm4gImh0dHBzOi8v
e3tob3N0fX06e3twb3J0c1todHRwc11bMF19fSIgKyBiYXNlX3BhdGgoKSArIHBhdGg7Ci19Ci0K
LWZ1bmN0aW9uIGNyb3NzT3JpZ2luVXJsKHBhdGgpIHsKLSAgICByZXR1cm4gImh0dHBzOi8ve3to
b3N0c1thbHRdW119fTp7e3BvcnRzW2h0dHBzXVswXX19IiArIGJhc2VfcGF0aCgpICsgcGF0aDsK
LX0KLQotZnVuY3Rpb24gdmVyaWZ5KG9wdGlvbnMpIHsKLSAgICBjb25zdCB1cmwgPSBvcHRpb25z
Lm1vZGUgPT09ICdjcm9zcy1vcmlnaW4nID8gY3Jvc3NPcmlnaW5Vcmwob3B0aW9ucy5yZXNvdXJj
ZSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiByZXNvdXJjZVVybChv
cHRpb25zLnJlc291cmNlKTsKLSAgICBjb25zdCBlbnRyeUxpc3QgPSBvcHRpb25zLnBlcmZvcm1h
bmNlLmdldEVudHJpZXNCeU5hbWUodXJsLCAncmVzb3VyY2UnKTsKLSAgICBpZiAob3B0aW9ucy5z
aG91bGRfbm9fcGVyZm9ybWFuY2VfZW50cnkpIHsKLSAgICAgICAgLy8gVGhlIHBlcmZvcm1hbmNl
IHRpbWVsaW5lIG1heSBub3QgaGF2ZSBhbiBlbnRyeSBmb3IgYSByZXNvdXJjZQotICAgICAgICAv
LyB3aGljaCBmYWlsZWQgdG8gbG9hZC4KLSAgICAgICAgYXNzZXJ0X2VxdWFscyhlbnRyeUxpc3Qu
bGVuZ3RoLCAwLCBvcHRpb25zLmRlc2NyaXB0aW9uKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0K
LSAgICBhc3NlcnRfZXF1YWxzKGVudHJ5TGlzdC5sZW5ndGgsIDEsIG9wdGlvbnMuZGVzY3JpcHRp
b24pOwotICAgIGNvbnN0IGVudHJ5ID0gZW50cnlMaXN0WzBdOwotICAgIGFzc2VydF9lcXVhbHMo
ZW50cnkuZW50cnlUeXBlLCAncmVzb3VyY2UnLCBvcHRpb25zLmRlc2NyaXB0aW9uKTsKLSAgICBh
c3NlcnRfZ3JlYXRlcl90aGFuKGVudHJ5LndvcmtlclN0YXJ0LCAwLCBvcHRpb25zLmRlc2NyaXB0
aW9uKTsKLSAgICBhc3NlcnRfZ3JlYXRlcl90aGFuX2VxdWFsKGVudHJ5LndvcmtlclN0YXJ0LCBl
bnRyeS5zdGFydFRpbWUsIG9wdGlvbnMuZGVzY3JpcHRpb24pOwotICAgIGFzc2VydF9sZXNzX3Ro
YW5fZXF1YWwoZW50cnkud29ya2VyU3RhcnQsIGVudHJ5LmZldGNoU3RhcnQsIG9wdGlvbnMuZGVz
Y3JpcHRpb24pOwotICAgIGlmIChvcHRpb25zLm1vZGUgPT09ICdjcm9zcy1vcmlnaW4nKSB7Ci0g
ICAgICBhc3NlcnRfZXF1YWxzKGVudHJ5LnJlc3BvbnNlU3RhcnQsIDAsIG9wdGlvbnMuZGVzY3Jp
cHRpb24pOwotICAgICAgYXNzZXJ0X2dyZWF0ZXJfdGhhbl9lcXVhbChlbnRyeS5yZXNwb25zZUVu
ZCwgZW50cnkuZmV0Y2hTdGFydCwgb3B0aW9ucy5kZXNjcmlwdGlvbik7Ci0gICAgfSBlbHNlIHsK
LSAgICAgIGFzc2VydF9ncmVhdGVyX3RoYW5fZXF1YWwoZW50cnkucmVzcG9uc2VTdGFydCwgZW50
cnkuZmV0Y2hTdGFydCwgb3B0aW9ucy5kZXNjcmlwdGlvbik7Ci0gICAgICBhc3NlcnRfZ3JlYXRl
cl90aGFuX2VxdWFsKGVudHJ5LnJlc3BvbnNlRW5kLCBlbnRyeS5yZXNwb25zZVN0YXJ0LCBvcHRp
b25zLmRlc2NyaXB0aW9uKTsKLSAgICB9Ci0gICAgYXNzZXJ0X2dyZWF0ZXJfdGhhbihlbnRyeS5y
ZXNwb25zZUVuZCwgZW50cnkuZmV0Y2hTdGFydCwgb3B0aW9ucy5kZXNjcmlwdGlvbik7Ci0gICAg
YXNzZXJ0X2dyZWF0ZXJfdGhhbihlbnRyeS5kdXJhdGlvbiwgMCwgb3B0aW9ucy5kZXNjcmlwdGlv
bik7Ci0gICAgaWYgKG9wdGlvbnMucmVzb3VyY2UuaW5kZXhPZigncmVkaXJlY3QucHknKSAhPSAt
MSkgewotICAgICAgICBhc3NlcnRfbGVzc190aGFuX2VxdWFsKGVudHJ5LndvcmtlclN0YXJ0LCBl
bnRyeS5yZWRpcmVjdFN0YXJ0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlv
bnMuZGVzY3JpcHRpb24pOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIGFzc2VydF9lcXVhbHMoZW50
cnkucmVkaXJlY3RTdGFydCwgMCwgb3B0aW9ucy5kZXNjcmlwdGlvbik7Ci0gICAgfQotfQotCi1w
cm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewotICAgIGNvbnN0IHdvcmtlcl91cmwgPSAncmVzb3Vy
Y2VzL3Jlc291cmNlLXRpbWluZy13b3JrZXIuanMnOwotICAgIGNvbnN0IHNjb3BlID0gJ3Jlc291
cmNlcy9yZXNvdXJjZS10aW1pbmctaWZyYW1lLnN1Yi5odG1sJzsKLSAgICBsZXQgcmVnaXN0cmF0
aW9uOwotCi0gICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVy
KHQsIHdvcmtlcl91cmwsIHNjb3BlKQotICAgICAgLnRoZW4oZnVuY3Rpb24ocikgewotICAgICAg
ICAgIHJlZ2lzdHJhdGlvbiA9IHI7Ci0gICAgICAgICAgcmV0dXJuIHdhaXRfZm9yX3N0YXRlKHQs
IHIuaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOwotICAgICAgICB9KQotICAgICAgLnRoZW4oZnVu
Y3Rpb24oKSB7Ci0gICAgICAgICAgcmV0dXJuIHdpdGhfaWZyYW1lKHNjb3BlKTsKLSAgICAgICAg
fSkKLSAgICAgIC50aGVuKGZ1bmN0aW9uKGZyYW1lKSB7Ci0gICAgICAgICAgY29uc3QgcGVyZm9y
bWFuY2UgPSBmcmFtZS5jb250ZW50V2luZG93LnBlcmZvcm1hbmNlOwotICAgICAgICAgIHZlcmlm
eSh7Ci0gICAgICAgICAgICAgIHBlcmZvcm1hbmNlOiBwZXJmb3JtYW5jZSwKLSAgICAgICAgICAg
ICAgcmVzb3VyY2U6ICdyZXNvdXJjZXMvZHVtbXkuanMnLAotICAgICAgICAgICAgICBtb2RlOiAn
c2FtZS1vcmlnaW4nLAotICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ0dlbmVyYXRlZCByZXNw
b25zZScsCi0gICAgICAgICAgfSk7Ci0gICAgICAgICAgdmVyaWZ5KHsKLSAgICAgICAgICAgICAg
cGVyZm9ybWFuY2U6IHBlcmZvcm1hbmNlLAotICAgICAgICAgICAgICByZXNvdXJjZTogJ3Jlc291
cmNlcy9lbXB0eS5qcycsCi0gICAgICAgICAgICAgIG1vZGU6ICdzYW1lLW9yaWdpbicsCi0gICAg
ICAgICAgICAgIGRlc2NyaXB0aW9uOiAnTmV0d29yayBmYWxsYmFjaycsCi0gICAgICAgICAgfSk7
Ci0gICAgICAgICAgdmVyaWZ5KHsKLSAgICAgICAgICAgICAgcGVyZm9ybWFuY2U6IHBlcmZvcm1h
bmNlLAotICAgICAgICAgICAgICByZXNvdXJjZTogJ3Jlc291cmNlcy9yZWRpcmVjdC5weT9SZWRp
cmVjdD1lbXB0eS5qcycsCi0gICAgICAgICAgICAgIG1vZGU6ICdzYW1lLW9yaWdpbicsCi0gICAg
ICAgICAgICAgIGRlc2NyaXB0aW9uOiAnUmVkaXJlY3QnLAotICAgICAgICAgIH0pOwotICAgICAg
ICAgIHZlcmlmeSh7Ci0gICAgICAgICAgICAgIHBlcmZvcm1hbmNlOiBwZXJmb3JtYW5jZSwKLSAg
ICAgICAgICAgICAgcmVzb3VyY2U6ICdyZXNvdXJjZXMvc3F1YXJlLnBuZycsCi0gICAgICAgICAg
ICAgIG1vZGU6ICdzYW1lLW9yaWdpbicsCi0gICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnTmV0
d29yayBmYWxsYmFjayBpbWFnZScsCi0gICAgICAgICAgfSk7Ci0gICAgICAgICAgLy8gVGVzdCB0
aGF0IHdvcmtlciBzdGFydCBpcyBhdmFpbGFibGUgb24gY3Jvc3Mtb3JpZ2luIG5vLWNvcnMKLSAg
ICAgICAgICAvLyBzdWJyZXNvdXJjZXMuCi0gICAgICAgICAgdmVyaWZ5KHsKLSAgICAgICAgICAg
ICAgcGVyZm9ybWFuY2U6IHBlcmZvcm1hbmNlLAotICAgICAgICAgICAgICByZXNvdXJjZTogJ3Jl
c291cmNlcy9zcXVhcmUucG5nJywKLSAgICAgICAgICAgICAgbW9kZTogJ2Nyb3NzLW9yaWdpbics
Ci0gICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnTmV0d29yayBmYWxsYmFjayBjcm9zcy1vcmln
aW4gaW1hZ2UnLAotICAgICAgICAgIH0pOwotCi0gICAgICAgICAgLy8gVGVzdHMgZm9yIHJlc291
Y2VzIHdoaWNoIGZhaWxlZCB0byBsb2FkLgotICAgICAgICAgIHZlcmlmeSh7Ci0gICAgICAgICAg
ICAgIHBlcmZvcm1hbmNlOiBwZXJmb3JtYW5jZSwKLSAgICAgICAgICAgICAgcmVzb3VyY2U6ICdy
ZXNvdXJjZXMvbWlzc2luZy5qcGcnLAotICAgICAgICAgICAgICBtb2RlOiAnc2FtZS1vcmlnaW4n
LAotICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ05ldHdvcmsgZmFsbGJhY2sgbG9hZCBmYWls
dXJlJywKLSAgICAgICAgICAgICAgc2hvdWxkX25vX3BlcmZvcm1hbmNlX2VudHJ5OiB0cnVlLAot
ICAgICAgICAgIH0pOwotICAgICAgICAgIHZlcmlmeSh7Ci0gICAgICAgICAgICAgIHBlcmZvcm1h
bmNlOiBwZXJmb3JtYW5jZSwKLSAgICAgICAgICAgICAgcmVzb3VyY2U6ICdyZXNvdXJjZXMvbWlz
c2luZy5qcGcnLAotICAgICAgICAgICAgICBtb2RlOiAnY3Jvc3Mtb3JpZ2luJywKLSAgICAgICAg
ICAgICAgZGVzY3JpcHRpb246ICdOZXR3b3JrIGZhbGxiYWNrIGNyb3NzLW9yaWdpbiBsb2FkIGZh
aWx1cmUnLAotICAgICAgICAgICAgICBzaG91bGRfbm9fcGVyZm9ybWFuY2VfZW50cnk6IHRydWUs
Ci0gICAgICAgICAgfSk7Ci0gICAgICAgICAgLy8gVGVzdHMgZm9yIHJlc3BvbmRXaXRoKGZldGNo
KCkpLgotICAgICAgICAgIHZlcmlmeSh7Ci0gICAgICAgICAgICAgIHBlcmZvcm1hbmNlOiBwZXJm
b3JtYW5jZSwKLSAgICAgICAgICAgICAgcmVzb3VyY2U6ICdyZXNvdXJjZXMvbWlzc2luZy5qcGc/
U1dSZXNwb25kc1dpdGhGZXRjaCcsCi0gICAgICAgICAgICAgIG1vZGU6ICdzYW1lLW9yaWdpbics
Ci0gICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnUmVzb3VyY2UgaW4gaWZyYW1lLCBub25leGlz
dGVudCBidXQgcmVzcG9uZGVkIHdpdGggZmV0Y2ggdG8gYW5vdGhlci4nLAotICAgICAgICAgIH0p
OwotICAgICAgICAgIHZlcmlmeSh7Ci0gICAgICAgICAgICAgIHBlcmZvcm1hbmNlOiBwZXJmb3Jt
YW5jZSwKLSAgICAgICAgICAgICAgcmVzb3VyY2U6ICdyZXNvdXJjZXMvZHVtbXkudHh0P1NXRmV0
Y2hlZCcsCi0gICAgICAgICAgICAgIG1vZGU6ICdzYW1lLW9yaWdpbicsCi0gICAgICAgICAgICAg
IGRlc2NyaXB0aW9uOiAnUmVzb3VyY2UgZmV0Y2hlZCBhcyByZXNwb25zZSBmcm9tIG1pc3Npbmcu
anBnP1NXUmVzcG9uZHNXaXRoRmV0Y2guJywKLSAgICAgICAgICAgICAgc2hvdWxkX25vX3BlcmZv
cm1hbmNlX2VudHJ5OiB0cnVlLAotICAgICAgICAgIH0pOwotICAgICAgICAgIC8vIFRlc3QgZm9y
IGEgbm9ybWFsIHJlc291cmNlIHRoYXQgaXMgdW5hZmZlY3RlZCBieSB0aGUgU2VydmljZSBXb3Jr
ZXIuCi0gICAgICAgICAgdmVyaWZ5KHsKLSAgICAgICAgICAgICAgcGVyZm9ybWFuY2U6IHBlcmZv
cm1hbmNlLAotICAgICAgICAgICAgICByZXNvdXJjZTogJ3Jlc291cmNlcy9lbXB0eS13b3JrZXIu
anMnLAotICAgICAgICAgICAgICBtb2RlOiAnc2FtZS1vcmlnaW4nLAotICAgICAgICAgICAgICBk
ZXNjcmlwdGlvbjogJ1Jlc291cmNlIHVudG91Y2hlZCBieSB0aGUgU2VydmljZSBXb3JrZXIuJywK
LSAgICAgICAgICB9KTsKLQotICAgICAgICAgIGZyYW1lLnJlbW92ZSgpOwotICAgICAgICAgIHJl
dHVybiByZWdpc3RyYXRpb24udW5yZWdpc3RlcigpOwotICAgICAgfSk7Ci19LCAnQ29udHJvbGxl
ZCByZXNvdXJjZSBsb2FkcycpOwotCi10ZXN0KCgpID0+IHsKLSAgICBjb25zdCB1cmwgPSByZXNv
dXJjZVVybCgncmVzb3VyY2VzL3Rlc3QtaGVscGVycy5zdWIuanMnKTsKLSAgICBjb25zdCBlbnRy
eSA9IHdpbmRvdy5wZXJmb3JtYW5jZS5nZXRFbnRyaWVzQnlOYW1lKHVybCwgJ3Jlc291cmNlJylb
MF07Ci0gICAgYXNzZXJ0X2VxdWFscyhlbnRyeS53b3JrZXJTdGFydCwgMCwgJ05vbi1jb250cm9s
bGVkJyk7Ci19LCAnTm9uLWNvbnRyb2xsZWQgcmVzb3VyY2UgbG9hZHMnKTsKLQotPC9zY3JpcHQ+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvYWJvdXQtYmxhbmstcmVw
bGFjZW1lbnQtcGluZy1mcmFtZS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9hYm91
dC1ibGFuay1yZXBsYWNlbWVudC1waW5nLWZyYW1lLnB5CmluZGV4IGJiMDdjMjQxYWQ0OWE3NTM1
YmE2MmVlODY2NGE3NWM4YzU5Y2Q2NGMuLjU4ZmI0NDAzZjljNjU5N2QyNzA3YjFlMzI0MTE1NWZl
YzA3MTg5YTggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9hYm91dC1i
bGFuay1yZXBsYWNlbWVudC1waW5nLWZyYW1lLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jl
c291cmNlcy9hYm91dC1ibGFuay1yZXBsYWNlbWVudC1waW5nLWZyYW1lLnB5CkBAIC00MSw3ICs0
MSw2IEBAIGlmICh3aW4ubG9jYXRpb24uaHJlZiAhPT0gJ2Fib3V0OmJsYW5rJykgewogICAgICAg
fSk7CiAgICAgfQogICB9KTsKLSAgd2luLm5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnN0YXJ0TWVz
c2FnZXMoKTsKIH0KIDwvc2NyaXB0PgogPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvcmVzb3VyY2VzL2FwcGNhY2hlLW9yZGVyaW5nLm1hbmlmZXN0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvcmVzb3VyY2VzL2FwcGNhY2hlLW9yZGVyaW5nLm1hbmlmZXN0CmluZGV4IGU2NTk3Y2Ni
OGFjYjBkY2ViNGE5OTBjMzE0OGRlYmUzYzRmZjhmMjEuLjBkZWVkMGU5MWE4MDIxNDUyMDY3M2Mx
ODhhMzA5MGViYjY1N2Y2YzAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNl
cy9hcHBjYWNoZS1vcmRlcmluZy5tYW5pZmVzdAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNv
dXJjZXMvYXBwY2FjaGUtb3JkZXJpbmcubWFuaWZlc3QKQEAgLTEsNyArMSw2IEBACiBDQUNIRSBN
QU5JRkVTVAogCiBhcHBjYWNoZS1vcmRlcmluZy5pcy1hcHBjYWNoZWQuaHRtbAotYmxhbmsuaHRt
bAogCiBGQUxMQkFDSzoKIGFwcGNhY2hlLW9yZGVyaW5nLmlzLWFwcGNhY2hlZDQwNC5qcyBhcHBj
YWNoZS1vcmRlcmluZy5pcy1hcHBjYWNoZWQuanMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3Jlc291cmNlcy9jbGFpbS13b3JrZXIuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJj
ZXMvY2xhaW0td29ya2VyLmpzCmluZGV4IDE4MDA0MDc5NDc1ZTJiYmQ5ZDFhOGQyNWFlNGIyNmM3
NjM4ZGU1OGUuLjUzZjIxMGNmNzYzNDk5M2Y4NjMxMGNkZWZlYzlhMTVmZDZiNjk5YTAgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9jbGFpbS13b3JrZXIuanMKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2NsYWltLXdvcmtlci5qcwpAQCAtMTQsNiArMTQs
NSBAQCBzZWxmLmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCBmdW5jdGlvbihldmVudCkgewog
ICB9KTsKIAogc2VsZi5hZGRFdmVudExpc3RlbmVyKCdmZXRjaCcsIGZ1bmN0aW9uKGV2ZW50KSB7
Ci0gICAgaWYgKCEvNDA0Ly50ZXN0KGV2ZW50LnJlcXVlc3QudXJsKSkKLSAgICAgIGV2ZW50LnJl
c3BvbmRXaXRoKG5ldyBSZXNwb25zZSgnSW50ZXJjZXB0ZWQhJykpOwotICB9KTsKKyAgICBldmVu
dC5yZXNwb25kV2l0aChuZXcgUmVzcG9uc2UoJ0ludGVyY2VwdGVkIScpKTsKK30pOwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2NsYXNzaWMtd29ya2VyLmpzIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2NsYXNzaWMtd29ya2VyLmpzCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAzNmEzMmIxYTFmODRkYWFhYzI1MDMyMjYxYzgwZDE3M2NlN2JhODk5
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL3Jlc291cmNlcy9jbGFzc2ljLXdvcmtlci5qcworKysgL2Rldi9udWxsCkBAIC0x
ICswLDAgQEAKLWltcG9ydFNjcmlwdHMoJy4vaW1wb3J0ZWQtY2xhc3NpYy1zY3JpcHQuanMnKTsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9jbGllbnRzLWdldC1jcm9z
cy1vcmlnaW4tZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9jbGllbnRz
LWdldC1jcm9zcy1vcmlnaW4tZnJhbWUuaHRtbAppbmRleCBlMTZiYjExMTZkYzgxMGQyNzUwNzNl
MzYzZmEwZDdiNGZmYTQ2NjI5Li5lYWFkZTMyN2JjNTlkOGYyZTM4YzU2NzY2YzM5OTczZjFlYzQx
NDI2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvY2xpZW50cy1nZXQt
Y3Jvc3Mtb3JpZ2luLWZyYW1lLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2Vz
L2NsaWVudHMtZ2V0LWNyb3NzLW9yaWdpbi1mcmFtZS5odG1sCkBAIC0zOCwxMyArMzgsMTYgQEAg
d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCBmdW5jdGlvbihlKSB7CiAgICAgICB9
KQogICAgIC50aGVuKGZ1bmN0aW9uKGlmcmFtZSkgewogICAgICAgICBhZGRfY29tcGxldGlvbl9j
YWxsYmFjayhmdW5jdGlvbigpIHsgaWZyYW1lLnJlbW92ZSgpOyB9KTsKLSAgICAgICAgbmF2aWdh
dG9yLnNlcnZpY2VXb3JrZXIub25tZXNzYWdlID0gZnVuY3Rpb24oZSkgeworICAgICAgICB2YXIg
Y2hhbm5lbCA9IG5ldyBNZXNzYWdlQ2hhbm5lbCgpOworICAgICAgICBjaGFubmVsLnBvcnQxLm9u
bWVzc2FnZSA9IGZ1bmN0aW9uKGUpIHsKICAgICAgICAgICByZWdpc3RyYXRpb24udW5yZWdpc3Rl
cigpOwogICAgICAgICAgIHdpbmRvdy5wYXJlbnQucG9zdE1lc3NhZ2UoCiAgICAgICAgICAgICB7
IHR5cGU6ICdjbGllbnRJZCcsIHZhbHVlOiBlLmRhdGEgfSwgaG9zdF9pbmZvWydIVFRQU19PUklH
SU4nXQogICAgICAgICAgICk7CiAgICAgICAgIH07Ci0gICAgICAgIHJlZ2lzdHJhdGlvbi5hY3Rp
dmUucG9zdE1lc3NhZ2Uoe2NsaWVudElkczogY3Jvc3Nfb3JpZ2luX2NsaWVudF9pZHN9KTsKKyAg
ICAgICAgaWZyYW1lLmNvbnRlbnRXaW5kb3cubmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuY29udHJv
bGxlci5wb3N0TWVzc2FnZSgKKyAgICAgICAgICAgIHtwb3J0OmNoYW5uZWwucG9ydDIsIGNsaWVu
dElkczogY3Jvc3Nfb3JpZ2luX2NsaWVudF9pZHN9LAorICAgICAgICAgICAgW2NoYW5uZWwucG9y
dDJdKTsKICAgICAgIH0pOwogfSk7CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL3Jlc291cmNlcy9jbGllbnRzLWdldC1yZXN1bHRpbmdDbGllbnRJZC13b3JrZXIuanMg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvY2xpZW50cy1nZXQtcmVzdWx0aW5nQ2xpZW50
SWQtd29ya2VyLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1YTQ2ZmY5Y2Y0NDAx
MGM1ZjkzNzViYmI3YjI4NDkzMmJkMjFjY2E3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9jbGllbnRzLWdl
dC1yZXN1bHRpbmdDbGllbnRJZC13b3JrZXIuanMKKysrIC9kZXYvbnVsbApAQCAtMSw2MCArMCww
IEBACi1sZXQgc2F2ZWRQb3J0ID0gbnVsbDsKLWxldCBzYXZlZFJlc3VsdGluZ0NsaWVudElkID0g
bnVsbDsKLQotYXN5bmMgZnVuY3Rpb24gZ2V0VGVzdGluZ1BhZ2UoKSB7Ci0gIGNvbnN0IGNsaWVu
dExpc3QgPSBhd2FpdCBzZWxmLmNsaWVudHMubWF0Y2hBbGwoeyB0eXBlOiAnd2luZG93JywgaW5j
bHVkZVVuY29udHJvbGxlZDogdHJ1ZSB9KTsKLSAgZm9yIChsZXQgYyBvZiBjbGllbnRMaXN0KSB7
Ci0gICAgaWYgKGMudXJsLmVuZHNXaXRoKCdjbGllbnRzLWdldC5odHRwcy5odG1sJykpIHsKLSAg
ICAgIGMuZm9jdXMoKTsKLSAgICAgIHJldHVybiBjOwotICAgIH0KLSAgfQotICByZXR1cm4gbnVs
bDsKLX0KLQotYXN5bmMgZnVuY3Rpb24gZGVzdHJveVJlc3VsdGluZ0NsaWVudCh0ZXN0aW5nUGFn
ZSkgewotICBjb25zdCBkZXN0cm95ZWRQcm9taXNlID0gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7
Ci0gICAgc2VsZi5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgZSA9PiB7Ci0gICAgICBpZiAo
ZS5kYXRhLm1zZyA9PSAncmVzdWx0aW5nQ2xpZW50RGVzdHJveWVkJykgewotICAgICAgICByZXNv
bHZlKCk7Ci0gICAgICB9Ci0gICAgfSwge29uY2U6IHRydWV9KTsKLSAgfSk7Ci0gIHRlc3RpbmdQ
YWdlLnBvc3RNZXNzYWdlKHsgbXNnOiAnZGVzdHJveVJlc3VsdGluZ0NsaWVudCcgfSk7Ci0gIHJl
dHVybiBkZXN0cm95ZWRQcm9taXNlOwotfQotCi1zZWxmLmFkZEV2ZW50TGlzdGVuZXIoJ2ZldGNo
JywgYXN5bmMgKGUpID0+IHsKLSAgbGV0IHsgcmVzdWx0aW5nQ2xpZW50SWQgfSA9IGU7Ci0gIHNh
dmVkUmVzdWx0aW5nQ2xpZW50SWQgPSByZXN1bHRpbmdDbGllbnRJZDsKLQotICBpZiAoZS5yZXF1
ZXN0LnVybC5lbmRzV2l0aCgnc2ltcGxlLmh0bWw/ZmFpbCcpKSB7Ci0gICAgZS53YWl0VW50aWwo
KGFzeW5jICgpID0+IHsKLSAgICAgIGNvbnN0IHRlc3RpbmdQYWdlID0gYXdhaXQgZ2V0VGVzdGlu
Z1BhZ2UoKTsKLSAgICAgIGF3YWl0IGRlc3Ryb3lSZXN1bHRpbmdDbGllbnQodGVzdGluZ1BhZ2Up
OwotICAgICAgdGVzdGluZ1BhZ2UucG9zdE1lc3NhZ2UoeyBtc2c6ICdyZXN1bHRpbmdDbGllbnRE
ZXN0cm95ZWRBY2snLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRpbmdE
ZXN0cm95ZWRDbGllbnRJZDogc2F2ZWRSZXN1bHRpbmdDbGllbnRJZCB9KTsKLSAgICB9KSgpKTsK
LSAgICByZXR1cm47Ci0gIH0KLQotICBlLnJlc3BvbmRXaXRoKGZldGNoKGUucmVxdWVzdCkpOwot
fSk7Ci0KLXNlbGYuYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIChlKSA9PiB7Ci0gIGxldCB7
IG1zZywgcmVzdWx0aW5nQ2xpZW50SWQgfSA9IGUuZGF0YTsKLSAgZS53YWl0VW50aWwoKGFzeW5j
ICgpID0+IHsKLSAgICBpZiAobXNnID09ICdnZXRJc1Jlc3VsdGluZ0NsaWVudFVuZGVmaW5lZCcp
IHsKLSAgICAgIGNvbnN0IGNsaWVudCA9IGF3YWl0IHNlbGYuY2xpZW50cy5nZXQocmVzdWx0aW5n
Q2xpZW50SWQpOwotICAgICAgbGV0IGlzVW5kZWZpbmVkID0gdHlwZW9mIGNsaWVudCA9PSAndW5k
ZWZpbmVkJzsKLSAgICAgIGUuc291cmNlLnBvc3RNZXNzYWdlKHsgbXNnOiAnZ2V0SXNSZXN1bHRp
bmdDbGllbnRVbmRlZmluZWQnLAotICAgICAgICBpc1Jlc3VsdGluZ0NsaWVudFVuZGVmaW5lZDog
aXNVbmRlZmluZWQgfSk7Ci0gICAgICByZXR1cm47Ci0gICAgfQotICAgIGlmIChtc2cgPT0gJ2dl
dFJlc3VsdGluZ0NsaWVudElkJykgewotICAgICAgZS5zb3VyY2UucG9zdE1lc3NhZ2UoeyBtc2c6
ICdnZXRSZXN1bHRpbmdDbGllbnRJZCcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl
c3VsdGluZ0NsaWVudElkOiBzYXZlZFJlc3VsdGluZ0NsaWVudElkIH0pOwotICAgICAgcmV0dXJu
OwotICAgIH0KLSAgfSkoKSk7Ci19KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jl
c291cmNlcy9jbGllbnRzLWdldC13b3JrZXIuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJj
ZXMvY2xpZW50cy1nZXQtd29ya2VyLmpzCmluZGV4IDhlZmZhNTZjOThjOWY5MjEyMDE1NTMxMjEz
MDg1OTFlNzQzMWEyMDEuLjg3MzY4YWU3NjE3NTc1ZGE0MjgxYWZmNjc4YzI3YzJkMzcxMTg5NjYg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9jbGllbnRzLWdldC13b3Jr
ZXIuanMKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2NsaWVudHMtZ2V0LXdvcmtl
ci5qcwpAQCAtMTEsNiArMTEsNyBAQCBzZWxmLm9uZmV0Y2ggPSBmdW5jdGlvbihlKSB7CiB9Owog
CiBzZWxmLm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGUpIHsKKyAgdmFyIHBvcnQgPSBlLmRhdGEucG9y
dDsKICAgdmFyIGNsaWVudF9pZHMgPSBlLmRhdGEuY2xpZW50SWRzOwogICB2YXIgbWVzc2FnZSA9
IFtdOwogCkBAIC0yMiw3ICsyMyw3IEBAIHNlbGYub25tZXNzYWdlID0gZnVuY3Rpb24oZSkgewog
ICAgICAgICAgIC8vIE5vIG1hdGNoaW5nIGNsaWVudCBmb3IgYSBnaXZlbiBpZCBvciBhIG1hdGNo
ZWQgY2xpZW50IGlzIG9mZi1vcmlnaW4KICAgICAgICAgICAvLyBmcm9tIHRoZSBzZXJ2aWNlIHdv
cmtlci4KICAgICAgICAgICBpZiAoY2xpZW50cy5sZW5ndGggPT0gMSAmJiBjbGllbnRzWzBdID09
IHVuZGVmaW5lZCkgewotICAgICAgICAgICAgZS5zb3VyY2UucG9zdE1lc3NhZ2UoY2xpZW50c1sw
XSk7CisgICAgICAgICAgICBwb3J0LnBvc3RNZXNzYWdlKGNsaWVudHNbMF0pOwogICAgICAgICAg
IH0gZWxzZSB7CiAgICAgICAgICAgICBjbGllbnRzLmZvckVhY2goZnVuY3Rpb24oY2xpZW50KSB7
CiAgICAgICAgICAgICAgICAgaWYgKGNsaWVudCBpbnN0YW5jZW9mIENsaWVudCkgewpAQCAtMzUs
NyArMzYsNyBAQCBzZWxmLm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGUpIHsKICAgICAgICAgICAgICAg
ICAgIG1lc3NhZ2UucHVzaChjbGllbnQpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgfSk7Ci0gICAgICAgICAgICBlLnNvdXJjZS5wb3N0TWVzc2FnZShtZXNzYWdlKTsKKyAgICAg
ICAgICAgIHBvcnQucG9zdE1lc3NhZ2UobWVzc2FnZSk7CiAgICAgICAgICAgfQogICAgICAgICB9
KSk7CiB9OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2VuYWJsZS1j
bGllbnQtbWVzc2FnZS1xdWV1ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2Vu
YWJsZS1jbGllbnQtbWVzc2FnZS1xdWV1ZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA1MTJiZDE0YmM2N2Q0NmI5MDJlNjhlYjg3NzMxMDdkZTUyOWNjNzk4Li4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jl
c291cmNlcy9lbmFibGUtY2xpZW50LW1lc3NhZ2UtcXVldWUuaHRtbAorKysgL2Rldi9udWxsCkBA
IC0xLDM5ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPHNjcmlwdD4KLSAgLy8gVGhlIHN0YXRl
IHZhcmlhYmxlIGlzIHVzZWQgYnkgaGFuZGxlX21lc3NhZ2UgdG8gcmVjb3JkIHRoZSB0aW1lCi0g
IC8vIGF0IHdoaWNoIGEgbWVzc2FnZSB3YXMgaGFuZGxlZC4gSXQncyB1cGRhdGVkIGJ5IHRoZSBz
Y3JpcHRzCi0gIC8vIGxvYWRlZCBieSB0aGUgPHNjcmlwdD4gdGFncyBhdCB0aGUgYm90dG9tIG9m
IHRoZSBmaWxlIGFzIHdlbGwgYXMKLSAgLy8gYnkgdGhlIGV2ZW50IGxpc3RlbmVyIGFkZGVkIGhl
cmUuCi0gIHZhciBzdGF0ZSA9ICdpbml0JzsKLSAgYWRkRXZlbnRMaXN0ZW5lcignRE9NQ29udGVu
dExvYWRlZCcsICgpID0+IHN0YXRlID0gJ2xvYWRlZCcpOwotCi0gIC8vIFdlIGV4cGVjdCB0byBn
ZXQgdGhyZWUgcGluZyBtZXNzYWdlcyBmcm9tIHRoZSBzZXJ2aWNlIHdvcmtlci4KLSAgY29uc3Qg
ZXhwZWN0ZWQgPSBbJ2luaXQnLCAnaW5zdGFsbCcsICdzdGFydCddOwotICBsZXQgcHJvbWlzZXMg
PSB7fTsKLSAgbGV0IHJlc29sdmVycyA9IHt9OwotICBleHBlY3RlZC5mb3JFYWNoKG5hbWUgPT4g
ewotICAgIHByb21pc2VzW25hbWVdID0gbmV3IFByb21pc2UocmVzb2x2ZSA9PiByZXNvbHZlcnNb
bmFtZV0gPSByZXNvbHZlKTsKLSAgfSk7Ci0KLSAgLy8gT25jZSBhbGwgbWVzc2FnZXMgaGF2ZSBi
ZWVuIGRpc3BhdGNoZWQsIHRoZSBzdGF0ZSBpbiB3aGljaCBlYWNoCi0gIC8vIG9mIHRoZW0gd2Fz
IGRpc3BhdGNoZWQgaXMgcmVjb3JkZWQgaW4gdGhlIGRyYWZ0LiBBdCB0aGF0IHBvaW50Ci0gIC8v
IHRoZSBkcmFmdCBiZWNvbWVzIHRoZSBmaW5hbCByZXBvcnQuCi0gIHZhciBkcmFmdCA9IHt9Owot
ICB2YXIgcmVwb3J0ID0gUHJvbWlzZS5hbGwoT2JqZWN0LnZhbHVlcyhwcm9taXNlcykpLnRoZW4o
KCkgPT4gd2luZG93LmRyYWZ0KTsKLQotICAvLyBUaGlzIG1lc3NhZ2UgaGFuZGxlciBpcyBpbnN0
YWxsZWQgYnkgdGhlICdpbnN0YWxsJyBzY3JpcHQuCi0gIGZ1bmN0aW9uIGhhbmRsZV9tZXNzYWdl
KGV2ZW50KSB7Ci0gICAgY29uc3QgZGF0YSA9IGV2ZW50LmRhdGEuZGF0YTsKLSAgICBkcmFmdFtk
YXRhXSA9IHN0YXRlOwotICAgIHJlc29sdmVyc1tkYXRhXSgpOwotICB9Ci08L3NjcmlwdD4KLQot
PCEtLQotICBUaGUgY29udHJvbGxpbmcgc2VydmljZSB3b3JrZXIgd2lsbCBkZWxheSB0aGUgcmVz
cG9uc2UgdG8gdGhlc2UKLSAgZmV0Y2ggcmVxdWVzdHMgdW50aWwgdGhlIHRlc3QgaW5zdHJ1Y3Rz
IGl0IGhvdyB0byByZXBseS4gTm90ZSB0aGF0Ci0gIHRoZSBldmVudCBsb29wIGtlZXBzIHNwaW5u
aW5nIHdoaWxlIHRoZSBwYXJzZXIgaXMgYmxvY2tlZC4KLS0tPgotPHNjcmlwdCBzcmM9ImVtcHR5
LmpzP2tleT1pbnN0YWxsIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJlbXB0eS5qcz9rZXk9c3Rh
cnQiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9ImVtcHR5LmpzP2tleT1maW5pc2giPjwvc2NyaXB0
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2V4dGVuZGFibGUtZXZl
bnQtYXN5bmMtd2FpdHVudGlsLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2V4dGVu
ZGFibGUtZXZlbnQtYXN5bmMtd2FpdHVudGlsLmpzCmluZGV4IDhhOTc1YjBkMmU5YjA3ODljZTdh
YjdiMDU3NTdiNmQ5M2YyZWM0MDAuLmFiZjU0OTM0YTNiNDJlMTg5MDhhNzMwYmRmYTE0MGU2YjY5
MmM3YWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9leHRlbmRhYmxl
LWV2ZW50LWFzeW5jLXdhaXR1bnRpbC5qcworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJj
ZXMvZXh0ZW5kYWJsZS1ldmVudC1hc3luYy13YWl0dW50aWwuanMKQEAgLTEsMTIgKzEsNCBAQAot
Ly8gVGhpcyB3b3JrZXIgY2FsbHMgd2FpdFVudGlsKCkgYW5kIHJlc3BvbmRXaXRoKCkgYXN5bmNo
cm9ub3VzbHkgYW5kCi0vLyByZXBvcnRzIGJhY2sgdG8gdGhlIHRlc3Qgd2hldGhlciB0aGV5IHRo
cmV3LgotLy8KLS8vIFRoZXNlIHRlc3QgY2FzZXMgYXJlIGNvbmZ1c2luZy4gQmVhciBpbiBtaW5k
IHRoYXQgdGhlIGV2ZW50IGlzIGFjdGl2ZQotLy8gKGNhbGxpbmcgd2FpdFVudGlsKCkgaXMgYWxs
b3dlZCkgaWY6Ci0vLyAqIFRoZSBwZW5kaW5nIHByb21pc2UgY291bnQgaXMgbm90IDAsIG9yCi0v
LyAqIFRoZSBldmVudCBkaXNwYXRjaCBmbGFnIGlzIHNldC4KLQotLy8gQ29udHJvbGxlZCBieSAn
aW5pdCcvJ2RvbmUnIG1lc3NhZ2VzLgorLy8gY29udHJvbGxlZCBieSAnaW5pdCcvJ2RvbmUnIG1l
c3NhZ2VzLgogdmFyIHJlc29sdmVMb2NrUHJvbWlzZTsKIHZhciBwb3J0OwogCkBAIC0yMiw3MiAr
MTQsMzQgQEAgc2VsZi5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgZnVuY3Rpb24oZXZlbnQp
IHsKICAgICAgIGNhc2UgJ2RvbmUnOgogICAgICAgICByZXNvbHZlTG9ja1Byb21pc2UoKTsKICAg
ICAgICAgYnJlYWs7Ci0KLSAgICAgIC8vIFRocm93cyBiZWNhdXNlIHdhaXRVbnRpbCgpIGlzIGNh
bGxlZCBpbiBhIHRhc2sgYWZ0ZXIgZXZlbnQgZGlzcGF0Y2gKLSAgICAgIC8vIGZpbmlzaGVzLgog
ICAgICAgY2FzZSAnbm8tY3VycmVudC1leHRlbnNpb24tZGlmZmVyZW50LXRhc2snOgogICAgICAg
ICBhc3luY190YXNrX3dhaXR1bnRpbChldmVudCkudGhlbihyZXBvcnRSZXN1bHRFeHBlY3Rpbmco
J0ludmFsaWRTdGF0ZUVycm9yJykpOwogICAgICAgICBicmVhazsKLQotICAgICAgLy8gT0sgYmVj
YXVzZSB3YWl0VW50aWwoKSBpcyBjYWxsZWQgaW4gYSBtaWNyb3Rhc2sgdGhhdCBydW5zIGFmdGVy
IHRoZQotICAgICAgLy8gZXZlbnQgaGFuZGxlciBydW5zLCB3aGlsZSB0aGUgZXZlbnQgZGlzcGF0
Y2ggZmxhZyBpcyBzdGlsbCBzZXQuCiAgICAgICBjYXNlICduby1jdXJyZW50LWV4dGVuc2lvbi1k
aWZmZXJlbnQtbWljcm90YXNrJzoKLSAgICAgICAgYXN5bmNfbWljcm90YXNrX3dhaXR1bnRpbChl
dmVudCkudGhlbihyZXBvcnRSZXN1bHRFeHBlY3RpbmcoJ09LJykpOworICAgICAgICBhc3luY19t
aWNyb3Rhc2tfd2FpdHVudGlsKGV2ZW50KS50aGVuKHJlcG9ydFJlc3VsdEV4cGVjdGluZygnSW52
YWxpZFN0YXRlRXJyb3InKSk7CiAgICAgICAgIGJyZWFrOwotCi0gICAgICAvLyBPSyBiZWNhdXNl
IHRoZSBzZWNvbmQgd2FpdFVudGlsKCkgaXMgY2FsbGVkIHdoaWxlIHRoZSBmaXJzdCB3YWl0VW50
aWwoKQotICAgICAgLy8gcHJvbWlzZSBpcyBzdGlsbCBwZW5kaW5nLgogICAgICAgY2FzZSAnY3Vy
cmVudC1leHRlbnNpb24tZGlmZmVyZW50LXRhc2snOgogICAgICAgICBldmVudC53YWl0VW50aWwo
bmV3IFByb21pc2UoKHJlcykgPT4geyByZXNvbHZlVGVzdFByb21pc2UgPSByZXM7IH0pKTsKICAg
ICAgICAgYXN5bmNfdGFza193YWl0dW50aWwoZXZlbnQpLnRoZW4ocmVwb3J0UmVzdWx0RXhwZWN0
aW5nKCdPSycpKS50aGVuKHJlc29sdmVUZXN0UHJvbWlzZSk7CiAgICAgICAgIGJyZWFrOwotCi0g
ICAgICAvLyBPSyBiZWNhdXNlIGFsbCBwcm9taXNlcyBpbnZvbHZlZCByZXNvbHZlICJpbW1lZGlh
dGVseSIsIHNvIHRoZSBzZWNvbmQKLSAgICAgIC8vIHdhaXRVbnRpbCgpIGlzIGNhbGxlZCBkdXJp
bmcgdGhlIG1pY3JvdGFzayBjaGVja3BvaW50IGF0IHRoZSBlbmQgb2YKLSAgICAgIC8vIGV2ZW50
IGRpc3BhdGNoaW5nLCB3aGVuIHRoZSBldmVudCBkaXNwYXRjaCBmbGFnIGlzIHN0aWxsIHNldC4K
LSAgICAgIGNhc2UgJ2R1cmluZy1ldmVudC1kaXNwYXRjaC1jdXJyZW50LWV4dGVuc2lvbi1leHBp
cmVkLXNhbWUtbWljcm90YXNrLXR1cm4nOgorICAgICAgY2FzZSAnY3VycmVudC1leHRlbnNpb24t
ZXhwaXJlZC1zYW1lLW1pY3JvdGFzay10dXJuJzoKICAgICAgICAgd2FpdFByb21pc2UgPSBQcm9t
aXNlLnJlc29sdmUoKTsKICAgICAgICAgZXZlbnQud2FpdFVudGlsKHdhaXRQcm9taXNlKTsKICAg
ICAgICAgd2FpdFByb21pc2UudGhlbigoKSA9PiB7IHJldHVybiBzeW5jX3dhaXR1bnRpbChldmVu
dCk7IH0pCiAgICAgICAgICAgLnRoZW4ocmVwb3J0UmVzdWx0RXhwZWN0aW5nKCdPSycpKQogICAg
ICAgICBicmVhazsKLQotICAgICAgLy8gT0sgZm9yIHRoZSBzYW1lIHJlYXNvbiBhcyBhYm92ZS4K
LSAgICAgIGNhc2UgJ2R1cmluZy1ldmVudC1kaXNwYXRjaC1jdXJyZW50LWV4dGVuc2lvbi1leHBp
cmVkLXNhbWUtbWljcm90YXNrLXR1cm4tZXh0cmEnOgorICAgICAgY2FzZSAnY3VycmVudC1leHRl
bnNpb24tZXhwaXJlZC1zYW1lLW1pY3JvdGFzay10dXJuLWV4dHJhJzoKKyAgICAgICAgLy8gVGhl
IHByb21pc2UgaGFuZGxlciBxdWV1ZXMgYSBuZXcgbWljcm90YXNrICphZnRlciogdGhlIGNoZWNr
IGZvciBuZXcKKyAgICAgICAgLy8gZXh0ZW5zaW9ucyB3YXMgcGVyZm9ybWVkLgogICAgICAgICB3
YWl0UHJvbWlzZSA9IFByb21pc2UucmVzb2x2ZSgpOwogICAgICAgICBldmVudC53YWl0VW50aWwo
d2FpdFByb21pc2UpOwotICAgICAgICB3YWl0UHJvbWlzZS50aGVuKCgpID0+IHsgcmV0dXJuIGFz
eW5jX21pY3JvdGFza193YWl0dW50aWwoZXZlbnQpOyB9KQotICAgICAgICAgIC50aGVuKHJlcG9y
dFJlc3VsdEV4cGVjdGluZygnT0snKSkKLSAgICAgICAgYnJlYWs7Ci0KLQotICAgICAgLy8gT0sg
YmVjYXVzZSB0aGUgcGVuZGluZyBwcm9taXNlIGNvdW50IGlzIGRlY3JlbWVudGVkIGluIGEgbWlj
cm90YXNrCi0gICAgICAvLyBxdWV1ZWQgdXBvbiBmdWxmaWxsbWVudCBvZiB0aGUgZmlyc3Qgd2Fp
dFVudGlsKCkgcHJvbWlzZSwgc28gdGhlIHNlY29uZAotICAgICAgLy8gd2FpdFVudGlsKCkgaXMg
Y2FsbGVkIHdoaWxlIHRoZSBwZW5kaW5nIHByb21pc2UgY291bnQgaXMgc3RpbGwKLSAgICAgIC8v
IHBvc2l0aXZlLgotICAgICAgY2FzZSAnYWZ0ZXItZXZlbnQtZGlzcGF0Y2gtY3VycmVudC1leHRl
bnNpb24tZXhwaXJlZC1zYW1lLW1pY3JvdGFzay10dXJuJzoKLSAgICAgICAgd2FpdFByb21pc2Ug
PSBtYWtlTmV3VGFza1Byb21pc2UoKTsKLSAgICAgICAgZXZlbnQud2FpdFVudGlsKHdhaXRQcm9t
aXNlKTsKLSAgICAgICAgd2FpdFByb21pc2UudGhlbigoKSA9PiB7IHJldHVybiBzeW5jX3dhaXR1
bnRpbChldmVudCk7IH0pCi0gICAgICAgICAgLnRoZW4ocmVwb3J0UmVzdWx0RXhwZWN0aW5nKCdP
SycpKQotICAgICAgICBicmVhazsKLQotICAgICAgLy8gVGhyb3dzIGJlY2F1c2UgdGhlIHNlY29u
ZCB3YWl0VW50aWwoKSBpcyBjYWxsZWQgYWZ0ZXIgdGhlIHBlbmRpbmcKLSAgICAgIC8vIHByb21p
c2UgY291bnQgd2FzIGRlY3JlbWVudGVkIHRvIDAuCi0gICAgICBjYXNlICdhZnRlci1ldmVudC1k
aXNwYXRjaC1jdXJyZW50LWV4dGVuc2lvbi1leHBpcmVkLXNhbWUtbWljcm90YXNrLXR1cm4tZXh0
cmEnOgotICAgICAgICB3YWl0UHJvbWlzZSA9IG1ha2VOZXdUYXNrUHJvbWlzZSgpOwotICAgICAg
ICBldmVudC53YWl0VW50aWwod2FpdFByb21pc2UpOwogICAgICAgICB3YWl0UHJvbWlzZS50aGVu
KCgpID0+IHsgcmV0dXJuIGFzeW5jX21pY3JvdGFza193YWl0dW50aWwoZXZlbnQpOyB9KQogICAg
ICAgICAgIC50aGVuKHJlcG9ydFJlc3VsdEV4cGVjdGluZygnSW52YWxpZFN0YXRlRXJyb3InKSkK
ICAgICAgICAgYnJlYWs7Ci0KLSAgICAgIC8vIFRocm93cyBiZWNhdXNlIHRoZSBzZWNvbmQgd2Fp
dFVudGlsKCkgaXMgY2FsbGVkIGluIGEgbmV3IHRhc2ssIGFmdGVyCi0gICAgICAvLyBmaXJzdCB3
YWl0VW50aWwoKSBwcm9taXNlIHNldHRsZWQgYW5kIHRoZSBldmVudCBkaXNwYXRjaCBmbGFnIGlz
IHVuc2V0LgogICAgICAgY2FzZSAnY3VycmVudC1leHRlbnNpb24tZXhwaXJlZC1kaWZmZXJlbnQt
dGFzayc6CiAgICAgICAgIGV2ZW50LndhaXRVbnRpbChQcm9taXNlLnJlc29sdmUoKSk7CiAgICAg
ICAgIGFzeW5jX3Rhc2tfd2FpdHVudGlsKGV2ZW50KS50aGVuKHJlcG9ydFJlc3VsdEV4cGVjdGlu
ZygnSW52YWxpZFN0YXRlRXJyb3InKSk7CiAgICAgICAgIGJyZWFrOwotCiAgICAgICBjYXNlICdz
Y3JpcHQtZXh0ZW5kYWJsZS1ldmVudCc6CiAgICAgICAgIHNlbGYuZGlzcGF0Y2hFdmVudChuZXcg
RXh0ZW5kYWJsZUV2ZW50KCdub250cnVzdGVkZXZlbnQnKSk7CiAgICAgICAgIGJyZWFrOwpAQCAt
OTcsNjIgKzUxLDI1IEBAIHNlbGYuYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIGZ1bmN0aW9u
KGV2ZW50KSB7CiAgIH0pOwogCiBzZWxmLmFkZEV2ZW50TGlzdGVuZXIoJ2ZldGNoJywgZnVuY3Rp
b24oZXZlbnQpIHsKLSAgY29uc3QgcGF0aCA9IG5ldyBVUkwoZXZlbnQucmVxdWVzdC51cmwpLnBh
dGhuYW1lOwotICBjb25zdCBzdGVwID0gcGF0aC5zdWJzdHJpbmcocGF0aC5sYXN0SW5kZXhPZign
LycpICsgMSk7Ci0gIGxldCByZXNwb25zZTsKLSAgc3dpdGNoIChzdGVwKSB7Ci0gICAgLy8gT0sg
YmVjYXVzZSB3YWl0VW50aWwoKSBpcyBjYWxsZWQgd2hpbGUgdGhlIHJlc3BvbmRXaXRoKCkgcHJv
bWlzZSBpcyBzdGlsbAotICAgIC8vIHVuc2V0dGxlZCwgc28gdGhlIHBlbmRpbmcgcHJvbWlzZSBj
b3VudCBpcyBwb3NpdGl2ZS4KLSAgICBjYXNlICdwZW5kaW5nLXJlc3BvbmR3aXRoLWFzeW5jLXdh
aXR1bnRpbCc6CisgICAgaWYgKGV2ZW50LnJlcXVlc3QudXJsLmluZGV4T2YoJ3BlbmRpbmctcmVz
cG9uZHdpdGgtYXN5bmMtd2FpdHVudGlsJykgIT0gLTEpIHsKICAgICAgIHZhciByZXNvbHZlRmV0
Y2g7Ci0gICAgICByZXNwb25zZSA9IG5ldyBQcm9taXNlKChyZXMpID0+IHsgcmVzb2x2ZUZldGNo
ID0gcmVzOyB9KTsKKyAgICAgIGxldCByZXNwb25zZSA9IG5ldyBQcm9taXNlKChyZXMpID0+IHsg
cmVzb2x2ZUZldGNoID0gcmVzOyB9KTsKICAgICAgIGV2ZW50LnJlc3BvbmRXaXRoKHJlc3BvbnNl
KTsKICAgICAgIGFzeW5jX3Rhc2tfd2FpdHVudGlsKGV2ZW50KQogICAgICAgICAudGhlbihyZXBv
cnRSZXN1bHRFeHBlY3RpbmcoJ09LJykpCiAgICAgICAgIC50aGVuKCgpID0+IHsgcmVzb2x2ZUZl
dGNoKG5ldyBSZXNwb25zZSgnT0snKSk7IH0pOwotICAgICAgYnJlYWs7Ci0KLSAgICAvLyBPSyBi
ZWNhdXNlIGFsbCBwcm9taXNlcyBpbnZvbHZlZCByZXNvbHZlICJpbW1lZGlhdGVseSIsIHNvIHdh
aXRVbnRpbCgpIGlzCi0gICAgLy8gY2FsbGVkIGR1cmluZyB0aGUgbWljcm90YXNrIGNoZWNrcG9p
bnQgYXQgdGhlIGVuZCBvZiBldmVudCBkaXNwYXRjaGluZywKLSAgICAvLyB3aGVuIHRoZSBldmVu
dCBkaXNwYXRjaCBmbGFnIGlzIHN0aWxsIHNldC4KLSAgICBjYXNlICdkdXJpbmctZXZlbnQtZGlz
cGF0Y2gtcmVzcG9uZHdpdGgtbWljcm90YXNrLXN5bmMtd2FpdHVudGlsJzoKKyAgICB9IGVsc2Ug
aWYgKGV2ZW50LnJlcXVlc3QudXJsLmluZGV4T2YoJ3Jlc3BvbmR3aXRoLW1pY3JvdGFzay1zeW5j
LXdhaXR1bnRpbCcpICE9IC0xKSB7CiAgICAgICByZXNwb25zZSA9IFByb21pc2UucmVzb2x2ZShu
ZXcgUmVzcG9uc2UoJ1JFU1AnKSk7CiAgICAgICBldmVudC5yZXNwb25kV2l0aChyZXNwb25zZSk7
CiAgICAgICByZXNwb25zZS50aGVuKCgpID0+IHsgcmV0dXJuIHN5bmNfd2FpdHVudGlsKGV2ZW50
KTsgfSkKLSAgICAgICAgLnRoZW4ocmVwb3J0UmVzdWx0RXhwZWN0aW5nKCdPSycpKTsKLSAgICAg
IGJyZWFrOwotCi0gICAgLy8gT0sgYmVjYXVzZSBhbGwgcHJvbWlzZXMgaW52b2x2ZWQgcmVzb2x2
ZSAiaW1tZWRpYXRlbHkiLCBzbyB3YWl0VW50aWwoKSBpcwotICAgIC8vIGNhbGxlZCBkdXJpbmcg
dGhlIG1pY3JvdGFzayBjaGVja3BvaW50IGF0IHRoZSBlbmQgb2YgZXZlbnQgZGlzcGF0Y2hpbmcs
Ci0gICAgLy8gd2hlbiB0aGUgZXZlbnQgZGlzcGF0Y2ggZmxhZyBpcyBzdGlsbCBzZXQuCi0gICAg
Y2FzZSAnZHVyaW5nLWV2ZW50LWRpc3BhdGNoLXJlc3BvbmR3aXRoLW1pY3JvdGFzay1hc3luYy13
YWl0dW50aWwnOgorICAgICAgICAudGhlbihyZXBvcnRSZXN1bHRFeHBlY3RpbmcoJ09LJykpCisg
ICAgfSBlbHNlIGlmIChldmVudC5yZXF1ZXN0LnVybC5pbmRleE9mKCdyZXNwb25kd2l0aC1taWNy
b3Rhc2stYXN5bmMtd2FpdHVudGlsJykgIT0gLTEpIHsKICAgICAgIHJlc3BvbnNlID0gUHJvbWlz
ZS5yZXNvbHZlKG5ldyBSZXNwb25zZSgnUkVTUCcpKTsKICAgICAgIGV2ZW50LnJlc3BvbmRXaXRo
KHJlc3BvbnNlKTsKLSAgICAgIHJlc3BvbnNlLnRoZW4oKCkgPT4geyByZXR1cm4gYXN5bmNfbWlj
cm90YXNrX3dhaXR1bnRpbChldmVudCk7IH0pCi0gICAgICAgIC50aGVuKHJlcG9ydFJlc3VsdEV4
cGVjdGluZygnT0snKSk7Ci0gICAgICBicmVhazsKLQotICAgIC8vIE9LIGJlY2F1c2UgdGhlIHBl
bmRpbmcgcHJvbWlzZSBjb3VudCBpcyBkZWNyZW1lbnRlZCBpbiBhIG1pY3JvdGFzayBxdWV1ZWQK
LSAgICAvLyB1cG9uIGZ1bGZpbGxtZW50IG9mIHRoZSByZXNwb25kV2l0aCgpIHByb21pc2UsIHNv
IHdhaXRVbnRpbCgpIGlzIGNhbGxlZAotICAgIC8vIHdoaWxlIHRoZSBwZW5kaW5nIHByb21pc2Ug
Y291bnQgaXMgc3RpbGwgcG9zaXRpdmUuCi0gICAgY2FzZSAnYWZ0ZXItZXZlbnQtZGlzcGF0Y2gt
cmVzcG9uZHdpdGgtbWljcm90YXNrLXN5bmMtd2FpdHVudGlsJzoKLSAgICAgIHJlc3BvbnNlID0g
bWFrZU5ld1Rhc2tQcm9taXNlKCkudGhlbigoKSA9PiB7cmV0dXJuIG5ldyBSZXNwb25zZSgnUkVT
UCcpO30pOwotICAgICAgZXZlbnQucmVzcG9uZFdpdGgocmVzcG9uc2UpOwotICAgICAgcmVzcG9u
c2UudGhlbigoKSA9PiB7IHJldHVybiBzeW5jX3dhaXR1bnRpbChldmVudCk7IH0pCi0gICAgICAg
IC50aGVuKHJlcG9ydFJlc3VsdEV4cGVjdGluZygnT0snKSk7Ci0gICAgICBicmVhazsKLQotCi0g
ICAgLy8gVGhyb3dzIGJlY2F1c2Ugd2FpdFVudGlsKCkgaXMgY2FsbGVkIGFmdGVyIHRoZSBwZW5k
aW5nIHByb21pc2UgY291bnQgd2FzCi0gICAgLy8gZGVjcmVtZW50ZWQgdG8gMC4KLSAgICBjYXNl
ICdhZnRlci1ldmVudC1kaXNwYXRjaC1yZXNwb25kd2l0aC1taWNyb3Rhc2stYXN5bmMtd2FpdHVu
dGlsJzoKLSAgICAgIHJlc3BvbnNlID0gbWFrZU5ld1Rhc2tQcm9taXNlKCkudGhlbigoKSA9PiB7
cmV0dXJuIG5ldyBSZXNwb25zZSgnUkVTUCcpO30pOwotICAgICAgZXZlbnQucmVzcG9uZFdpdGgo
cmVzcG9uc2UpOwogICAgICAgcmVzcG9uc2UudGhlbigoKSA9PiB7IHJldHVybiBhc3luY19taWNy
b3Rhc2tfd2FpdHVudGlsKGV2ZW50KTsgfSkKICAgICAgICAgLnRoZW4ocmVwb3J0UmVzdWx0RXhw
ZWN0aW5nKCdJbnZhbGlkU3RhdGVFcnJvcicpKQotICAgICAgYnJlYWs7Ci0gIH0KLX0pOworICAg
IH0KKyAgfSk7CiAKIHNlbGYuYWRkRXZlbnRMaXN0ZW5lcignbm9udHJ1c3RlZGV2ZW50JywgZnVu
Y3Rpb24oZXZlbnQpIHsKICAgICBzeW5jX3dhaXR1bnRpbChldmVudCkudGhlbihyZXBvcnRSZXN1
bHRFeHBlY3RpbmcoJ0ludmFsaWRTdGF0ZUVycm9yJykpOwpAQCAtMjAxLDEwICsxMTgsMyBAQCBm
dW5jdGlvbiBhc3luY190YXNrX3dhaXR1bnRpbChldmVudCkgewogICAgIH0sIDApOwogICB9KTsK
IH0KLQotLy8gUmV0dXJucyBhIHByb21pc2UgdGhhdCBzZXR0bGVzIGluIGEgc2VwYXJhdGUgdGFz
ay4KLWZ1bmN0aW9uIG1ha2VOZXdUYXNrUHJvbWlzZSgpIHsKLSAgcmV0dXJuIG5ldyBQcm9taXNl
KHJlc29sdmUgPT4gewotICAgIHNldFRpbWVvdXQocmVzb2x2ZSwgMCk7Ci0gIH0pOwotfQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWNhbnZhcy10YWludGlu
Zy1kb3VibGUtd3JpdGUtd29ya2VyLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2Zl
dGNoLWNhbnZhcy10YWludGluZy1kb3VibGUtd3JpdGUtd29ya2VyLmpzCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAxNzcyM2RjZGRhMmYyZmFkYjlhYjBhYjRhMDBiMjhjMjRiODE1MjM0
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1jYW52YXMtdGFpbnRpbmctZG91YmxlLXdyaXRlLXdv
cmtlci5qcworKysgL2Rldi9udWxsCkBAIC0xLDcgKzAsMCBAQAotc2VsZi5hZGRFdmVudExpc3Rl
bmVyKCdmZXRjaCcsIChldmVudCkgPT4gewotICB1cmwgPSBuZXcgVVJMKGV2ZW50LnJlcXVlc3Qu
dXJsKTsKLSAgaWYgKHVybC5zZWFyY2ggPT0gJz9QTkdJTUFHRScpIHsKLSAgICBsb2NhbFVybCA9
IG5ldyBVUkwodXJsLnBhdGhuYW1lICsgdXJsLnNlYXJjaCwgc2VsZi5sb2NhdGlvbik7Ci0gICAg
ZXZlbnQucmVzcG9uZFdpdGgoZmV0Y2gobG9jYWxVcmwpKTsKLSAgfQotfSk7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtY29ycy14aHItaWZyYW1lLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtY29ycy14aHItaWZyYW1lLmh0bWwK
aW5kZXggZDg4YzUxMDNkMzViMTg4MDkzMjYwOGJlYTc1ZDIxYThkNjFjYzAzOC4uNTE5NTJhOTg4
ZWZlMDcwMDI3NmNlZmEwMzI4NjVjNDQyZGZjYjZjNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWNvcnMteGhyLWlmcmFtZS5odG1sCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1jb3JzLXhoci1pZnJhbWUuaHRtbApAQCAtMjYsMTAg
KzI2LDM4IEBAIGZ1bmN0aW9uIGNyZWF0ZV90ZXN0X2Nhc2VfcHJvbWlzZSh1cmwsIHdpdGhfY3Jl
ZGVudGlhbHMpIHsKICAgICB9KTsKIH0KIAotd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21lc3Nh
Z2UnLCBhc3luYyAoZXZ0KSA9PiB7CitmdW5jdGlvbiBjcmVhdGVfdGVzdF9wcm9taXNlKHVybCwg
d2l0aF9jcmVkZW50aWFscywgZXhwZWN0ZWRfcmVzdWx0KSB7CisgIHJldHVybiBuZXcgUHJvbWlz
ZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgIGNyZWF0ZV90ZXN0X2Nhc2VfcHJv
bWlzZSh1cmwsIHdpdGhfY3JlZGVudGlhbHMpCisgICAgICAgIC50aGVuKGZ1bmN0aW9uKHJlc3Vs
dCkgeworICAgICAgICAgIGlmIChyZXN1bHQgPT0gZXhwZWN0ZWRfcmVzdWx0KSB7CisgICAgICAg
ICAgICByZXNvbHZlKCk7CisgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJlamVjdCgn
UmVzdWx0IG9mIHVybDonICsgdXJsICsgJyAnICsKKyAgICAgICAgICAgICAgICAgICAnIHdpdGhf
Y3JlZGVudGlhbHM6ICcgKyB3aXRoX2NyZWRlbnRpYWxzICsgJyBtdXN0IGJlICcgKworICAgICAg
ICAgICAgICAgICAgIGV4cGVjdGVkX3Jlc3VsdCArICcgYnV0ICcgKyByZXN1bHQpOworICAgICAg
ICAgIH0KKyAgICAgICAgfSkKKyAgICB9KTsKK30KKworZnVuY3Rpb24gY3JlYXRlX3NlcmlhbF9w
cm9taXNlKHRlc3RfY2FzZXMpIHsKKyAgdmFyIHByb21pc2UgPSBQcm9taXNlLnJlc29sdmUoKTsK
KyAgdGVzdF9jYXNlcy5mb3JFYWNoKGZ1bmN0aW9uKHRlc3RfY2FzZSkgeworICAgICAgcHJvbWlz
ZSA9IHByb21pc2UudGhlbihmdW5jdGlvbigpIHsKKyAgICAgICAgICByZXR1cm4gY3JlYXRlX3Rl
c3RfcHJvbWlzZSh0ZXN0X2Nhc2VbMF0sIHRlc3RfY2FzZVsxXSwgdGVzdF9jYXNlWzJdKTsKKyAg
ICAgICAgfSk7CisgICAgfSk7CisgICAgcmV0dXJuIHByb21pc2U7Cit9CisKK3dpbmRvdy5hZGRF
dmVudExpc3RlbmVyKCdtZXNzYWdlJywgZnVuY3Rpb24oZXZ0KSB7CiAgICAgdmFyIHBvcnQgPSBl
dnQucG9ydHNbMF07CiAgICAgdmFyIHVybCA9IGhvc3RfaW5mb1snSFRUUFNfT1JJR0lOJ10gKyBw
YXRoOwogICAgIHZhciByZW1vdGVfdXJsID0gaG9zdF9pbmZvWydIVFRQU19SRU1PVEVfT1JJR0lO
J10gKyBwYXRoOworICAgIC8vIElmIHRoZSA0dGggdmFsdWUgb2YgdGhlIGl0ZW0gb2YgVEVTVF9D
QVNFUyBpcyB0cnVlLCB0aGUgdGVzdCBjYXNlIG91dHB1dHMKKyAgICAvLyB3YXJuaW5nIG1lc3Nh
Z2VzLiBTbyBzdWNoIHRlc3RzIG11c3QgYmUgZXhlY3V0ZWQgaW4gc2VyaWFsIHRvIG1hdGNoIHRo
ZQorICAgIC8vIGV4cGVjdGVkIG91dHB1dCB0ZXh0LgogICAgIHZhciBURVNUX0NBU0VTID0gWwog
ICAgICAgLy8gUmVqZWN0IHRlc3RzCiAgICAgICBbdXJsICsgJz9yZWplY3QnLCBmYWxzZSwgRkFJ
TF0sCkBAIC02Nyw4ICs5NSw4IEBAIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywg
YXN5bmMgKGV2dCkgPT4gewogICAgICAgLy8gQ3JlZGVudGlhbCB0ZXN0IChmYWxsYmFjaykKICAg
ICAgIFt1cmwgKyAnP0F1dGgmaWdub3JlJywgZmFsc2UsIFNVQ0NFU1NdLAogICAgICAgW3VybCAr
ICc/QXV0aCZpZ25vcmUnLCB0cnVlLCBTVUNDRVNTXSwKLSAgICAgIFtyZW1vdGVfdXJsICsgJz9B
dXRoJmlnbm9yZScsIGZhbHNlLCBGQUlMXSwKLSAgICAgIFtyZW1vdGVfdXJsICsgJz9BdXRoJmln
bm9yZScsIHRydWUsIEZBSUxdLAorICAgICAgW3JlbW90ZV91cmwgKyAnP0F1dGgmaWdub3JlJywg
ZmFsc2UsIEZBSUwsIHRydWVdLCAgLy8gRXhlY3V0ZWQgaW4gc2VyaWFsLgorICAgICAgW3JlbW90
ZV91cmwgKyAnP0F1dGgmaWdub3JlJywgdHJ1ZSwgRkFJTCwgdHJ1ZV0sICAvLyBFeGVjdXRlZCBp
biBzZXJpYWwuCiAgICAgICBbCiAgICAgICAgIHJlbW90ZV91cmwgKyAnP0F1dGgmQUNBT3JpZ2lu
PScgKyBob3N0X2luZm9bJ0hUVFBTX09SSUdJTiddICsgJyZpZ25vcmUnLAogICAgICAgICBmYWxz
ZSwgJ1NUQVRVUzQwMScKQEAgLTE1OCwxMyArMTg2LDI0IEBAIHdpbmRvdy5hZGRFdmVudExpc3Rl
bmVyKCdtZXNzYWdlJywgYXN5bmMgKGV2dCkgPT4gewogICAgICAgICB0cnVlLCBTVUNDRVNTCiAg
ICAgICBdCiAgICAgXTsKLQotICAgIGxldCBjb3VudGVyID0gMDsKLSAgICBmb3IgKGxldCB0ZXN0
IG9mIFRFU1RfQ0FTRVMpIHsKLSAgICAgIGxldCByZXN1bHQgPSBhd2FpdCBjcmVhdGVfdGVzdF9j
YXNlX3Byb21pc2UodGVzdFswXSwgdGVzdFsxXSk7Ci0gICAgICBsZXQgdGVzdE5hbWUgPSAndGVz
dCAnICsgKCsrY291bnRlcikgKyAnOiAnICsgdGVzdFswXSArICcgd2l0aCBjcmVkZW50aWFscyAn
ICsgdGVzdFsxXSArICcgbXVzdCBiZSAnICsgdGVzdFsyXTsKLSAgICAgIHBvcnQucG9zdE1lc3Nh
Z2Uoe3Rlc3ROYW1lOiB0ZXN0TmFtZSwgcmVzdWx0OiByZXN1bHQgPT09IHRlc3RbMl19KTsKKyAg
ICB2YXIgcHJvbWlzZXMgPSBbXTsKKyAgICB2YXIgc2VyaWFsX3Rlc3RzID0gW107CisgICAgZm9y
ICh2YXIgaSA9IDA7IGkgPCBURVNUX0NBU0VTLmxlbmd0aCA7ICsraSkgeworICAgICAgaWYgKCFU
RVNUX0NBU0VTW2ldWzNdKSB7CisgICAgICAgIHByb21pc2VzLnB1c2goY3JlYXRlX3Rlc3RfcHJv
bWlzZShURVNUX0NBU0VTW2ldWzBdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgVEVTVF9DQVNFU1tpXVsxXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFRFU1RfQ0FTRVNbaV1bMl0pKTsKKyAgICAgIH0gZWxzZSB7CisgICAgICAg
IHNlcmlhbF90ZXN0cy5wdXNoKFRFU1RfQ0FTRVNbaV0pOworICAgICAgfQogICAgIH0KLSAgICBw
b3J0LnBvc3RNZXNzYWdlKCdkb25lJyk7CisgICAgcHJvbWlzZXMucHVzaChjcmVhdGVfc2VyaWFs
X3Byb21pc2Uoc2VyaWFsX3Rlc3RzKSk7CisgICAgUHJvbWlzZS5hbGwocHJvbWlzZXMpCisgICAg
ICAudGhlbihmdW5jdGlvbigpIHsKKyAgICAgICAgICBwb3J0LnBvc3RNZXNzYWdlKHtyZXN1bHRz
OiAnZmluaXNoJ30pOworICAgICAgICB9KQorICAgICAgLmNhdGNoKGZ1bmN0aW9uKGUpIHsKKyAg
ICAgICAgICBwb3J0LnBvc3RNZXNzYWdlKHtyZXN1bHRzOiAnZmFpbHVyZTonICsgZX0pOworICAg
ICAgICB9KTsKICAgfSwgZmFsc2UpOwogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtZXZlbnQtYXN5bmMtcmVzcG9uZC13aXRoLXdvcmtlci5q
cyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1ldmVudC1hc3luYy1yZXNwb25k
LXdpdGgtd29ya2VyLmpzCmluZGV4IGRjM2YxYTFlOTg1NjNhZDFiNTkyNGM4MzE1YzBkNjRkMTdm
ZmJiZmQuLjdmNjZkMjBkZmMyZGZmMGFmMDFkZmEwN2Y4MjNjNjYwYjdhMWVjMWIgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1ldmVudC1hc3luYy1yZXNwb25k
LXdpdGgtd29ya2VyLmpzCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1l
dmVudC1hc3luYy1yZXNwb25kLXdpdGgtd29ya2VyLmpzCkBAIC0xLDY2ICsxLDE5IEBACi0vLyBU
aGlzIHdvcmtlciBhdHRlbXB0cyB0byBjYWxsIHJlc3BvbmRXaXRoKCkgYXN5bmNocm9ub3VzbHkg
YWZ0ZXIgdGhlCi0vLyBmZXRjaCBldmVudCBoYW5kbGVyIGZpbmlzaGVkLiBJdCByZXBvcnRzIGJh
Y2sgdG8gdGhlIHRlc3Qgd2hldGhlcgotLy8gYW4gZXhjZXB0aW9uIHdhcyB0aHJvd24uCit2YXIg
cmVzdWx0OwogCi0vLyBUaGVzZSBnZXQgcmVzZXQgYXQgdGhlIHN0YXJ0IG9mIGEgdGVzdCBjYXNl
LgotbGV0IHJlcG9ydFJlc3VsdDsKLQotLy8gVGhlIHRlc3QgcGFnZSBzZW5kcyBhIG1lc3NhZ2Ug
dG8gdGVsbCB1cyB0aGF0IGEgbmV3IHRlc3QgY2FzZSBpcyBzdGFydGluZy4KLS8vIFdlIGV4cGVj
dCBhIGZldGNoIGV2ZW50IGFmdGVyIHRoaXMuCi1zZWxmLmFkZEV2ZW50TGlzdGVuZXIoJ21lc3Nh
Z2UnLCAoZXZlbnQpID0+IHsKLSAgLy8gRW5zdXJlIHRlc3RzIHJ1biBtdXR1YWxseSBleGNsdXNp
dmUuCi0gIGlmIChyZXBvcnRSZXN1bHQpIHsKLSAgICBldmVudC5zb3VyY2UucG9zdE1lc3NhZ2Uo
J3Rlc3RBbHJlYWR5UnVubmluZycpOwotICAgIHJldHVybjsKLSAgfQotCi0gIGNvbnN0IHJlc3Vs
dFByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gewotICAgIHJlcG9ydFJlc3VsdCA9
IHJlc29sdmU7Ci0gICAgLy8gVGVsbCB0aGUgY2xpZW50IHRoYXQgZXZlcnl0aGluZyBpcyBpbml0
aWFsaXplZCBhbmQgdGhhdCBpdCdzIHNhZmUgdG8KLSAgICAvLyBwcm9jZWVkIHdpdGggdGhlIHRl
c3Qgd2l0aG91dCByZWx5aW5nIG9uIHRoZSBvcmRlciBvZiBldmVudHMgKHdoaWNoIHNvbWUKLSAg
ICAvLyBicm93c2VycyBsaWtlIENocm9tZSBtYXkgbm90IGd1YXJhbnRlZSkuCi0gICAgZXZlbnQu
c291cmNlLnBvc3RNZXNzYWdlKCdtZXNzYWdlSGFuZGxlckluaXRpYWxpemVkJyk7CitzZWxmLmFk
ZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCBmdW5jdGlvbihldmVudCkgeworICAgIGV2ZW50LmRh
dGEucG9ydC5wb3N0TWVzc2FnZShyZXN1bHQpOwogICB9KTsKIAotICAvLyBLZWVwIHRoZSB3b3Jr
ZXIgYWxpdmUgdW50aWwgdGhlIHRlc3QgY2FzZSBmaW5pc2hlcywgYW5kIHJlcG9ydAotICAvLyBi
YWNrIHRoZSByZXN1bHQgdG8gdGhlIHRlc3QgcGFnZS4KLSAgZXZlbnQud2FpdFVudGlsKHJlc3Vs
dFByb21pc2UudGhlbihyZXN1bHQgPT4gewotICAgIHJlcG9ydFJlc3VsdCA9IG51bGw7Ci0gICAg
ZXZlbnQuc291cmNlLnBvc3RNZXNzYWdlKHJlc3VsdCk7Ci0gIH0pKTsKLX0pOwotCi0vLyBDYWxs
cyByZXNwb25kV2l0aCgpIGFuZCByZXBvcnRzIGJhY2sgd2hldGhlciBhbiBleGNlcHRpb24gb2Nj
dXJyZWQuCi1mdW5jdGlvbiB0cnlSZXNwb25kV2l0aChldmVudCkgewotICB0cnkgewotICAgIGV2
ZW50LnJlc3BvbmRXaXRoKG5ldyBSZXNwb25zZSgpKTsKLSAgICByZXBvcnRSZXN1bHQoe2RpZFRo
cm93OiBmYWxzZX0pOwotICB9IGNhdGNoIChlcnJvcikgewotICAgIHJlcG9ydFJlc3VsdCh7ZGlk
VGhyb3c6IHRydWUsIGVycm9yOiBlcnJvci5uYW1lfSk7Ci0gIH0KLX0KLQotZnVuY3Rpb24gcmVz
cG9uZFdpdGhJblRhc2soZXZlbnQpIHsKLSAgc2V0VGltZW91dCgoKSA9PiB7Ci0gICAgdHJ5UmVz
cG9uZFdpdGgoZXZlbnQpOwotICB9LCAwKTsKLX0KLQotZnVuY3Rpb24gcmVzcG9uZFdpdGhJbk1p
Y3JvdGFzayhldmVudCkgewotICBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpID0+IHsKLSAgICB0
cnlSZXNwb25kV2l0aChldmVudCk7Ci0gIH0pOwotfQotCiBzZWxmLmFkZEV2ZW50TGlzdGVuZXIo
J2ZldGNoJywgZnVuY3Rpb24oZXZlbnQpIHsKLSAgY29uc3QgcGF0aCA9IG5ldyBVUkwoZXZlbnQu
cmVxdWVzdC51cmwpLnBhdGhuYW1lOwotICBjb25zdCB0ZXN0ID0gcGF0aC5zdWJzdHJpbmcocGF0
aC5sYXN0SW5kZXhPZignLycpICsgMSk7Ci0KLSAgLy8gSWYgdGhpcyBpcyBhIHRlc3QgY2FzZSwg
dHJ5IHJlc3BvbmRXaXRoKCkgYW5kIHJlcG9ydCBiYWNrIHRvIHRoZSB0ZXN0IHBhZ2UKLSAgLy8g
dGhlIHJlc3VsdC4KLSAgaWYgKHRlc3QgPT0gJ3Jlc3BvbmRXaXRoLWluLXRhc2snKSB7Ci0gICAg
cmVzcG9uZFdpdGhJblRhc2soZXZlbnQpOwotICB9IGVsc2UgaWYgKHRlc3QgPT0gJ3Jlc3BvbmRX
aXRoLWluLW1pY3JvdGFzaycpIHsKLSAgICByZXNwb25kV2l0aEluTWljcm90YXNrKGV2ZW50KTsK
LSAgfQotfSk7CisgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgdHJ5IHsKKyAg
ICAgICAgICBldmVudC5yZXNwb25kV2l0aChuZXcgUmVzcG9uc2UoKSk7CisgICAgICAgICAgcmVz
dWx0ID0gJ0ZBSUw6IGRpZCBub3QgdGhyb3cnOworICAgICAgICB9IGNhdGNoIChlcnJvcikgewor
ICAgICAgICAgIGlmIChlcnJvci5uYW1lID09ICdJbnZhbGlkU3RhdGVFcnJvcicpCisgICAgICAg
ICAgICByZXN1bHQgPSAnUEFTUyc7CisgICAgICAgICAgZWxzZQorICAgICAgICAgICAgcmVzdWx0
ID0gJ0ZBSUw6IFVuZXhwZWN0ZWQgZXhjZXB0aW9uOiAnICsgZXJyb3I7CisgICAgICAgIH0KKyAg
ICAgIH0sIDApOworICB9KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNl
cy9mZXRjaC1ldmVudC1uZXR3b3JrLWZhbGxiYWNrLXdvcmtlci5qcyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3Jlc291cmNlcy9mZXRjaC1ldmVudC1uZXR3b3JrLWZhbGxiYWNrLXdvcmtlci5qcwppbmRl
eCAzNzZiZGJlZDA1ZTE4NmY3YTEyNWMyZWY3Y2UyOTZiNmRkYjhiZWFlLi5kYWEyMDBjMmJhZGI4
Mjk2NGNjMzUwNjk5ODMyYTczMGI1MmM5MWE0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9yZXNvdXJjZXMvZmV0Y2gtZXZlbnQtbmV0d29yay1mYWxsYmFjay13b3JrZXIuanMKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWV2ZW50LW5ldHdvcmstZmFsbGJhY2st
d29ya2VyLmpzCkBAIC0xLDMgKzEsMyBAQAogc2VsZi5hZGRFdmVudExpc3RlbmVyKCdmZXRjaCcs
ICgpID0+IHsKLSAgLy8gRG8gbm90aGluZy4KLX0pOworICAgIC8vIERvIG5vdGhpbmcuCisgIH0p
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWV2ZW50LXRl
c3Qtd29ya2VyLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWV2ZW50LXRl
c3Qtd29ya2VyLmpzCmluZGV4IDBhNTJhODIwMWVhOTZkNTBkM2ZhNmVlMzAyZjZhYTkwYjQ0MzVk
YTYuLmQ1MDNhNjYwOWQ2OTU4MjFlMjA3MjE3ODExYjUzZjk1NzAyN2QxMTggMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1ldmVudC10ZXN0LXdvcmtlci5qcwor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtZXZlbnQtdGVzdC13b3JrZXIu
anMKQEAgLTM3LDE2ICszNyw2IEBAIGZ1bmN0aW9uIGhhbmRsZUNsaWVudElkKGV2ZW50KSB7CiAg
IGV2ZW50LnJlc3BvbmRXaXRoKG5ldyBSZXNwb25zZShib2R5KSk7CiB9CiAKLWZ1bmN0aW9uIGhh
bmRsZVJlc3VsdGluZ0NsaWVudElkKGV2ZW50KSB7Ci0gIHZhciBib2R5OwotICBpZiAoZXZlbnQu
cmVzdWx0aW5nQ2xpZW50SWQgIT09ICIiKSB7Ci0gICAgYm9keSA9ICdSZXN1bHRpbmcgQ2xpZW50
IElEIEZvdW5kOiAnICsgZXZlbnQucmVzdWx0aW5nQ2xpZW50SWQ7Ci0gIH0gZWxzZSB7Ci0gICAg
Ym9keSA9ICdSZXN1bHRpbmcgQ2xpZW50IElEIE5vdCBGb3VuZCc7Ci0gIH0KLSAgZXZlbnQucmVz
cG9uZFdpdGgobmV3IFJlc3BvbnNlKGJvZHkpKTsKLX0KLQogZnVuY3Rpb24gaGFuZGxlTnVsbEJv
ZHkoZXZlbnQpIHsKICAgZXZlbnQucmVzcG9uZFdpdGgobmV3IFJlc3BvbnNlKCkpOwogfQpAQCAt
MTY1LDcgKzE1NSw2IEBAIHNlbGYuYWRkRXZlbnRMaXN0ZW5lcignZmV0Y2gnLCBmdW5jdGlvbihl
dmVudCkgewogICAgICAgeyBwYXR0ZXJuOiAnP3JlZmVycmVyUG9saWN5JywgZm46IGhhbmRsZVJl
ZmVycmVyUG9saWN5IH0sCiAgICAgICB7IHBhdHRlcm46ICc/cmVmZXJyZXInLCBmbjogaGFuZGxl
UmVmZXJyZXIgfSwKICAgICAgIHsgcGF0dGVybjogJz9jbGllbnRJZCcsIGZuOiBoYW5kbGVDbGll
bnRJZCB9LAotICAgICAgeyBwYXR0ZXJuOiAnP3Jlc3VsdGluZ0NsaWVudElkJywgZm46IGhhbmRs
ZVJlc3VsdGluZ0NsaWVudElkIH0sCiAgICAgICB7IHBhdHRlcm46ICc/aWdub3JlJywgZm46IGZ1
bmN0aW9uKCkge30gfSwKICAgICAgIHsgcGF0dGVybjogJz9udWxsJywgZm46IGhhbmRsZU51bGxC
b2R5IH0sCiAgICAgICB7IHBhdHRlcm46ICc/ZmV0Y2gnLCBmbjogaGFuZGxlRmV0Y2ggfSwKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1yZXF1ZXN0LWNzcy1i
YXNlLXVybC1pZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1y
ZXF1ZXN0LWNzcy1iYXNlLXVybC1pZnJhbWUuaHRtbAppbmRleCA1MDRlMTA0MzU2NDIzMzBmYmVi
MjMzNDg1NWJiOWQzOTY2Mjc2NDY5Li4wZWRmMmU3Zjk2NTlhNWJhMmIyMDRjNzZlYzA0NTAzZWFj
YWMxNGE3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtcmVx
dWVzdC1jc3MtYmFzZS11cmwtaWZyYW1lLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVz
b3VyY2VzL2ZldGNoLXJlcXVlc3QtY3NzLWJhc2UtdXJsLWlmcmFtZS5odG1sCkBAIC0xLDIwICsx
IEBACi08aHRtbD4KLTxoZWFkPgotPHRpdGxlPmlmcmFtZSBmb3IgY3NzIGJhc2UgdXJsIHRlc3Q8
L3RpdGxlPgotPC9oZWFkPgotPGJvZHk+Ci08c2NyaXB0PgotLy8gTG9hZCBhIHN0eWxlc2hlZXQu
IENyZWF0ZSBpdCBkeW5hbWljYWxseSBzbyB3ZSBjYW4gY29uc3RydWN0IHRoZSBocmVmIFVSTAot
Ly8gZHluYW1pY2FsbHkuCi1jb25zdCBsaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbGlu
aycpOwotbGluay5yZWwgPSAnc3R5bGVzaGVldCc7Ci1saW5rLnR5cGUgPSAndGV4dC9jc3MnOwot
Ly8gQWRkICJyZXF1ZXN0LXVybC1wYXRoIiB0byB0aGUgcGF0aCB0byBoZWxwIGRpc3Rpbmd1aXNo
IHRoZSByZXF1ZXN0IFVSTCBmcm9tCi0vLyB0aGUgcmVzcG9uc2UgVVJMLiBBZGQgfGRvY3VtZW50
LmxvY2F0aW9uLnNlYXJjaHwgKGNob3NlbiBieSB0aGUgdGVzdCBtYWluCi0vLyBwYWdlKSB0byB0
ZWxsIHRoZSBzZXJ2aWNlIHdvcmtlciBob3cgdG8gcmVzcG9uZCB0byB0aGUgcmVxdWVzdC4KLWxp
bmsuaHJlZiA9ICdyZXF1ZXN0LXVybC1wYXRoL2ZldGNoLXJlcXVlc3QtY3NzLWJhc2UtdXJsLXN0
eWxlLmNzcycgKwotICAgIGRvY3VtZW50LmxvY2F0aW9uLnNlYXJjaDsKLWRvY3VtZW50LmhlYWQu
YXBwZW5kQ2hpbGQobGluayk7Ci08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KKzxsaW5rIGhy
ZWY9Ii4vZmV0Y2gtcmVxdWVzdC1jc3MtYmFzZS11cmwtc3R5bGUuY3NzIiByZWw9InN0eWxlc2hl
ZXQiIHR5cGU9InRleHQvY3NzIj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291
cmNlcy9mZXRjaC1yZXF1ZXN0LWNzcy1iYXNlLXVybC13b3JrZXIuanMgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9yZXNvdXJjZXMvZmV0Y2gtcmVxdWVzdC1jc3MtYmFzZS11cmwtd29ya2VyLmpzCmluZGV4
IGU4ZGJkMjcyNWM2OGY5MzI2YzQxYWU1ZTdiZGU2NTE1ODk3MGEyNzIuLjkxYzMyNTk5OGEzYjhk
NmE2MTA2YTgzNDkwM2UyMDU1OWUwZjAwNTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L3Jlc291cmNlcy9mZXRjaC1yZXF1ZXN0LWNzcy1iYXNlLXVybC13b3JrZXIuanMKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLXJlcXVlc3QtY3NzLWJhc2UtdXJsLXdvcmtl
ci5qcwpAQCAtMSw0NSArMSwyNyBAQAotbGV0IHNvdXJjZTsKLWxldCByZXNvbHZlRG9uZTsKLWxl
dCBkb25lID0gbmV3IFByb21pc2UocmVzb2x2ZSA9PiByZXNvbHZlRG9uZSA9IHJlc29sdmUpOwor
aW1wb3J0U2NyaXB0cygnL2NvbW1vbi9nZXQtaG9zdC1pbmZvLnN1Yi5qcycpOworaW1wb3J0U2Ny
aXB0cygndGVzdC1oZWxwZXJzLnN1Yi5qcycpOwogCi0vLyBUaGUgcGFnZSBtZXNzYWdlcyB0aGlz
IHdvcmtlciB0byBhc2sgZm9yIHRoZSByZXN1bHQuIEtlZXAgdGhlIHdvcmtlciBhbGl2ZQotLy8g
dmlhIHdhaXRVbnRpbCgpIHVudGlsIHRoZSByZXN1bHQgaXMgc2VudC4KLXNlbGYuYWRkRXZlbnRM
aXN0ZW5lcignbWVzc2FnZScsIGV2ZW50ID0+IHsKLSAgc291cmNlID0gZXZlbnQuZGF0YS5wb3J0
OwotICBzb3VyY2UucG9zdE1lc3NhZ2UoJ3BvbmcnKTsKLSAgZXZlbnQud2FpdFVudGlsKGRvbmUp
OwotfSk7Cit2YXIgcG9ydCA9IHVuZGVmaW5lZDsKIAotc2VsZi5hZGRFdmVudExpc3RlbmVyKCdm
ZXRjaCcsIGV2ZW50ID0+IHsKLSAgY29uc3QgdXJsID0gbmV3IFVSTChldmVudC5yZXF1ZXN0LnVy
bCk7Ci0KLSAgLy8gRm9yIHRoZSBDU1MgZmlsZSwgcmVzcG9uZCBpbiBhIHdheSB0aGF0IG1heSBj
aGFuZ2UgdGhlIHJlc3BvbnNlIFVSTCwKLSAgLy8gZGVwZW5kaW5nIG9uIHx1cmwuc2VhcmNofC4K
LSAgY29uc3QgY3NzUGF0aCA9ICdyZXF1ZXN0LXVybC1wYXRoL2ZldGNoLXJlcXVlc3QtY3NzLWJh
c2UtdXJsLXN0eWxlLmNzcyc7Ci0gIGlmICh1cmwucGF0aG5hbWUuaW5kZXhPZihjc3NQYXRoKSAh
PSAtMSkgewotICAgIC8vIFJlc3BvbmQgd2l0aCBhIGRpZmZlcmVudCBVUkwsIGRlbGV0aW5nICJy
ZXF1ZXN0LXVybC1wYXRoLyIuCi0gICAgaWYgKHVybC5zZWFyY2ggPT0gJz9mZXRjaCcpIHsKLSAg
ICAgIGV2ZW50LnJlc3BvbmRXaXRoKGZldGNoKCdmZXRjaC1yZXF1ZXN0LWNzcy1iYXNlLXVybC1z
dHlsZS5jc3MnKSk7Ci0gICAgfQotICAgIC8vIFJlc3BvbmQgd2l0aCBuZXcgUmVzcG9uc2UoKS4K
LSAgICBlbHNlIGlmICh1cmwuc2VhcmNoID09ICc/bmV3UmVzcG9uc2UnKSB7Ci0gICAgICBjb25z
dCBzdHlsZVN0cmluZyA9ICdib2R5IHsgYmFja2dyb3VuZC1pbWFnZTogdXJsKCIuL2R1bW15LnBu
ZyIpO30nOwotICAgICAgY29uc3QgaGVhZGVycyA9IHsnY29udGVudC10eXBlJzogJ3RleHQvY3Nz
J307Ci0gICAgICBldmVudC5yZXNwb25kV2l0aChuZXcgUmVzcG9uc2Uoc3R5bGVTdHJpbmcsIGhl
YWRlcnMpKTsKLSAgICB9CitzZWxmLm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGUpIHsKKyAgdmFyIG1l
c3NhZ2UgPSBlLmRhdGE7CisgIGlmICgncG9ydCcgaW4gbWVzc2FnZSkgeworICAgIHBvcnQgPSBt
ZXNzYWdlLnBvcnQ7CisgICAgcG9ydC5wb3N0TWVzc2FnZSh7cmVhZHk6IHRydWV9KTsKICAgfQor
fTsKIAotICAvLyBUaGUgaW1hZ2UgcmVxdWVzdCBpbmRpY2F0ZXMgd2hhdCB0aGUgYmFzZSBVUkwg
b2YgdGhlIENTUyB3YXMuIE1lc3NhZ2UgdGhlCi0gIC8vIHJlc3VsdCBiYWNrIHRvIHRoZSB0ZXN0
IHBhZ2UuCi0gIGVsc2UgaWYgKHVybC5wYXRobmFtZS5pbmRleE9mKCdkdW1teS5wbmcnKSAhPSAt
MSkgewotICAgIC8vIEZvciBzb21lIHJlYXNvbiB8c291cmNlfCBpcyB1bmRlZmluZWQgaGVyZSB3
aGVuIHJ1bm5pbmcgdGhlIHRlc3QgbWFudWFsbHkKLSAgICAvLyBpbiBGaXJlZm94LiBUaGUgdGVz
dCBhdXRob3IgZXhwZXJpbWVudGVkIHdpdGggYm90aCB1c2luZyBDbGllbnQKLSAgICAvLyAoZXZl
bnQuc291cmNlKSBhbmQgTWVzc2FnZVBvcnQgdG8gdHJ5IHRvIGdldCB0aGUgdGVzdCB0byBwYXNz
LCBidXQKLSAgICAvLyBmYWlsZWQuCi0gICAgc291cmNlLnBvc3RNZXNzYWdlKHsKLSAgICAgIHVy
bDogZXZlbnQucmVxdWVzdC51cmwsCi0gICAgICByZWZlcnJlcjogZXZlbnQucmVxdWVzdC5yZWZl
cnJlcgotICAgIH0pOwotICAgIHJlc29sdmVEb25lKCk7Ci0gIH0KLX0pOworc2VsZi5hZGRFdmVu
dExpc3RlbmVyKCdmZXRjaCcsIGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgdmFyIHVybCA9IGV2ZW50
LnJlcXVlc3QudXJsOworICAgIGlmICh1cmwuaW5kZXhPZignZmV0Y2gtcmVxdWVzdC1jc3MtYmFz
ZS11cmwtc3R5bGUuY3NzJykgIT0gLTEpIHsKKyAgICAgIGV2ZW50LnJlc3BvbmRXaXRoKGZldGNo
KAorICAgICAgICBnZXRfaG9zdF9pbmZvKClbJ0hUVFBTX1JFTU9URV9PUklHSU4nXSArIGJhc2Vf
cGF0aCgpICsKKyAgICAgICAgJ2ZldGNoLXJlcXVlc3QtY3NzLWJhc2UtdXJsLXN0eWxlLmNzcycs
CisgICAgICAgIHttb2RlOiAnbm8tY29ycyd9KSk7CisgICAgfSBlbHNlIGlmICh1cmwuaW5kZXhP
ZignZHVtbXkucG5nJykgIT0gLTEpIHsKKyAgICAgIHBvcnQucG9zdE1lc3NhZ2UoeworICAgICAg
ICAgIHVybDogZXZlbnQucmVxdWVzdC51cmwsCisgICAgICAgICAgcmVmZXJyZXI6IGV2ZW50LnJl
cXVlc3QucmVmZXJyZXIKKyAgICAgICAgfSk7CisgICAgfQorICB9KTsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9nZXQtcmVzdWx0aW5nQ2xpZW50SWQtd29ya2VyLmpz
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2dldC1yZXN1bHRpbmdDbGllbnRJZC13b3Jr
ZXIuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGYwZTZjN2JlY2FiNjEyNjQ5NmZl
ZmEzZjQwYTVlNzg4ZGM2NDc3NWIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2dldC1yZXN1bHRpbmdDbGll
bnRJZC13b3JrZXIuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxMDcgKzAsMCBAQAotLy8gVGhpcyB3
b3JrZXIgZXhwZWN0cyBhIGZldGNoIGV2ZW50IGZvciBhIG5hdmlnYXRpb24gYW5kIG1lc3NhZ2Vz
IGJhY2sgdGhlCi0vLyByZXN1bHQgb2YgY2xpZW50cy5nZXQoZXZlbnQucmVzdWx0aW5nQ2xpZW50
SWQpLgotCi0vLyBSZXNvbHZlcyB3aGVuIHRoZSB0ZXN0IGZpbmlzaGVzLgotbGV0IHRlc3RGaW5p
c2hQcm9taXNlOwotbGV0IHJlc29sdmVUZXN0RmluaXNoUHJvbWlzZTsKLWxldCByZWplY3RUZXN0
RmluaXNoUHJvbWlzZTsKLQotLy8gUmVzb2x2ZXMgdG8gY2xpZW50cy5nZXQoZXZlbnQucmVzdWx0
aW5nQ2xpZW50SWQpIGZyb20gdGhlIGZldGNoIGV2ZW50LgotbGV0IGdldFByb21pc2U7Ci1sZXQg
cmVzb2x2ZUdldFByb21pc2U7Ci1sZXQgcmVqZWN0R2V0UHJvbWlzZTsKLQotbGV0IHJlc3VsdGlu
Z0NsaWVudElkOwotCi1mdW5jdGlvbiBzdGFydFRlc3QoKSB7Ci0gIHRlc3RGaW5pc2hQcm9taXNl
ID0gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4gewotICAgIHJlc29sdmVUZXN0Rmlu
aXNoUHJvbWlzZSA9IHJlc29sdmU7Ci0gICAgcmVqZWN0VGVzdEZpbmlzaFByb21pc2UgPSByZWpl
Y3Q7Ci0gIH0pOwotCi0gIGdldFByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0
KSA9PiB7Ci0gICAgcmVzb2x2ZUdldFByb21pc2UgPSByZXNvbHZlOwotICAgIHJlamVjdEdldFBy
b21pc2UgPSByZWplY3Q7Ci0gIH0pOwotfQotCi1hc3luYyBmdW5jdGlvbiBkZXNjcmliZUdldFBy
b21pc2VSZXN1bHQocHJvbWlzZSkgewotICBjb25zdCByZXN1bHQgPSB7fTsKLQotICBhd2FpdCBw
cm9taXNlLnRoZW4oCi0gICAgKGNsaWVudCkgPT4gewotICAgICAgcmVzdWx0LnByb21pc2VTdGF0
ZSA9ICdmdWxmaWxsZWQnOwotICAgICAgaWYgKGNsaWVudCA9PT0gdW5kZWZpbmVkKSB7Ci0gICAg
ICAgIHJlc3VsdC5wcm9taXNlVmFsdWUgPSAndW5kZWZpbmVkVmFsdWUnOwotICAgICAgfSBlbHNl
IGlmIChjbGllbnQgaW5zdGFuY2VvZiBDbGllbnQpIHsKLSAgICAgICAgcmVzdWx0LnByb21pc2VW
YWx1ZSA9ICdjbGllbnQnOwotICAgICAgICByZXN1bHQuY2xpZW50ID0gewotICAgICAgICAgIGlk
OiAgY2xpZW50LmlkLAotICAgICAgICAgIHVybDogY2xpZW50LnVybAotICAgICAgICB9OwotICAg
ICAgfSBlbHNlIHsKLSAgICAgICAgcmVzdWx0LnByb21pc2VWYWx1ZSA9ICd1bmtub3duJzsKLSAg
ICAgIH0KLSAgICB9LAotICAgIChlcnJvcikgPT4gewotICAgICAgcmVzdWx0LnByb21pc2VTdGF0
ZSA9ICdyZWplY3RlZCc7Ci0gICAgfSk7Ci0KLSAgcmV0dXJuIHJlc3VsdDsKLX0KLQotYXN5bmMg
ZnVuY3Rpb24gaGFuZGxlR2V0UmVzdWx0aW5nQ2xpZW50KGV2ZW50KSB7Ci0gIC8vIE5vdGUgdGhh
dCB0aGlzIG1lc3NhZ2UgY2FuIGFycml2ZSBiZWZvcmUgfHJlc3VsdGluZ0NsaWVudElkfCBpcyBw
b3B1bGF0ZWQuCi0gIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGRlc2NyaWJlR2V0UHJvbWlzZVJlc3Vs
dChnZXRQcm9taXNlKTsKLSAgLy8gfHJlc3VsdGluZ0NsaWVudElkfCBtdXN0IGJlIHBvcHVsYXRl
ZCBieSBub3cuCi0gIHJlc3VsdC5xdWVyaWVkSWQgPSByZXN1bHRpbmdDbGllbnRJZDsKLSAgZXZl
bnQuc291cmNlLnBvc3RNZXNzYWdlKHJlc3VsdCk7Ci19OwotCi1hc3luYyBmdW5jdGlvbiBoYW5k
bGVHZXRDbGllbnQoZXZlbnQpIHsKLSAgY29uc3QgaWQgPSBldmVudC5kYXRhLmlkOwotICBjb25z
dCByZXN1bHQgPSBhd2FpdCBkZXNjcmliZUdldFByb21pc2VSZXN1bHQoc2VsZi5jbGllbnRzLmdl
dChpZCkpOwotICByZXN1bHQucXVlcmllZElkID0gaWQ7Ci0gIGV2ZW50LnNvdXJjZS5wb3N0TWVz
c2FnZShyZXN1bHQpOwotfTsKLQotc2VsZi5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgKGV2
ZW50KSA9PiB7Ci0gIGlmIChldmVudC5kYXRhLmNvbW1hbmQgPT0gJ3N0YXJ0VGVzdCcpIHsKLSAg
ICBzdGFydFRlc3QoKTsKLSAgICBldmVudC53YWl0VW50aWwodGVzdEZpbmlzaFByb21pc2UpOwot
ICAgIGV2ZW50LnNvdXJjZS5wb3N0TWVzc2FnZSgnb2snKTsKLSAgICByZXR1cm47Ci0gIH0KLQot
ICBpZiAoZXZlbnQuZGF0YS5jb21tYW5kID09ICdmaW5pc2hUZXN0JykgewotICAgIHJlc29sdmVU
ZXN0RmluaXNoUHJvbWlzZSgpOwotICAgIGV2ZW50LnNvdXJjZS5wb3N0TWVzc2FnZSgnb2snKTsK
LSAgICByZXR1cm47Ci0gIH0KLQotICBpZiAoZXZlbnQuZGF0YS5jb21tYW5kID09ICdnZXRSZXN1
bHRpbmdDbGllbnQnKSB7Ci0gICAgZXZlbnQud2FpdFVudGlsKGhhbmRsZUdldFJlc3VsdGluZ0Ns
aWVudChldmVudCkpOwotICAgIHJldHVybjsKLSAgfQotCi0gIGlmIChldmVudC5kYXRhLmNvbW1h
bmQgPT0gJ2dldENsaWVudCcpIHsKLSAgICBldmVudC53YWl0VW50aWwoaGFuZGxlR2V0Q2xpZW50
KGV2ZW50KSk7Ci0gICAgcmV0dXJuOwotICB9Ci19KTsKLQotYXN5bmMgZnVuY3Rpb24gaGFuZGxl
RmV0Y2goZXZlbnQpIHsKLSAgdHJ5IHsKLSAgICByZXN1bHRpbmdDbGllbnRJZCA9IGV2ZW50LnJl
c3VsdGluZ0NsaWVudElkOwotICAgIGNvbnN0IGNsaWVudCA9IGF3YWl0IHNlbGYuY2xpZW50cy5n
ZXQocmVzdWx0aW5nQ2xpZW50SWQpOwotICAgIHJlc29sdmVHZXRQcm9taXNlKGNsaWVudCk7Ci0g
IH0gY2F0Y2ggKGVycm9yKSB7Ci0gICAgcmVqZWN0R2V0UHJvbWlzZShlcnJvcik7Ci0gIH0KLX0K
LQotc2VsZi5hZGRFdmVudExpc3RlbmVyKCdmZXRjaCcsIChldmVudCkgPT4gewotICBpZiAoZXZl
bnQucmVxdWVzdC5tb2RlICE9ICduYXZpZ2F0ZScpCi0gICAgcmV0dXJuOwotICBldmVudC53YWl0
VW50aWwoaGFuZGxlRmV0Y2goZXZlbnQpKTsKLX0pOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvcmVzb3VyY2VzL2ltcG9ydC1yZWxhdGl2ZS54c2wgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9y
ZXNvdXJjZXMvaW1wb3J0LXJlbGF0aXZlLnhzbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDYzYTYyZDAzMTQzYTMyZjQ0MzY1YmYxZTdiMDhkMjgzYWU1Mjg5NS4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNv
dXJjZXMvaW1wb3J0LXJlbGF0aXZlLnhzbAorKysgL2Rldi9udWxsCkBAIC0xLDUgKzAsMCBAQAot
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KLQotPHhzbDpzdHlsZXNoZWV0
IHZlcnNpb249IjEuMCIgeG1sbnM6eHNsPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L1hTTC9UcmFu
c2Zvcm0iPgotICAgIDx4c2w6aW1wb3J0IGhyZWY9InhzbHQtcGFzcy54c2wiLz4KLTwveHNsOnN0
eWxlc2hlZXQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvaW1wb3J0
LXNjcmlwdHMtZGlmZi1yZXNvdXJjZS1tYXAtd29ya2VyLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
cmVzb3VyY2VzL2ltcG9ydC1zY3JpcHRzLWRpZmYtcmVzb3VyY2UtbWFwLXdvcmtlci5qcwpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGZkY2IwZmNmODBhZDdmMGRmZmEyODRjNWI3NzE3
OGJkYWQ5NWVmNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvaW1wb3J0LXNjcmlwdHMtZGlmZi1yZXNvdXJj
ZS1tYXAtd29ya2VyLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTAgKzAsMCBAQAotaW1wb3J0U2Ny
aXB0cygnL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcycpOwotCi1sZXQgZWNobzEgPSBudWxsOwot
bGV0IGVjaG8yID0gbnVsbDsKLWxldCBhcmcxID0gJ2ltcG9ydC1zY3JpcHRzLWdldC5weT9vdXRw
dXQ9ZWNobzEmbXNnPXRlc3QxJzsKLWxldCBhcmcyID0gJ2ltcG9ydC1zY3JpcHRzLWdldC5weT9v
dXRwdXQ9ZWNobzImbXNnPXRlc3QyJzsKLQotaW1wb3J0U2NyaXB0cyhhcmcxLCBhcmcyKTsKLWFz
c2VydF9lcXVhbHMoZWNobzEsICd0ZXN0MScpOwotYXNzZXJ0X2VxdWFscyhlY2hvMiwgJ3Rlc3Qy
Jyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvaW1wb3J0LXNjcmlw
dHMtZ2V0LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ltcG9ydC1zY3JpcHRzLWdl
dC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWUzNzZiYzA5Mjg4OWYxYjIzMTYy
OGVjN2MxNzMzOTY3NGQyODRmNC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvaW1wb3J0LXNjcmlwdHMtZ2V0
LnB5CisrKyAvZGV2L251bGwKQEAgLTEsNiArMCwwIEBACi1kZWYgbWFpbihyZXEsIHJlcyk6Ci0g
ICAgcmV0dXJuIChbCi0gICAgICAgICgnQ2FjaGUtQ29udHJvbCcsICduby1jYWNoZSwgbXVzdC1y
ZXZhbGlkYXRlJyksCi0gICAgICAgICgnUHJhZ21hJywgJ25vLWNhY2hlJyksCi0gICAgICAgICgn
Q29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2phdmFzY3JpcHQnKV0sCi0gICAgICAgICclcyA9
ICIlcyI7XG4nICUgKHJlcS5HRVRbJ291dHB1dCddLCByZXEuR0VUWydtc2cnXSkpCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvaW1wb3J0LXNjcmlwdHMtbWltZS10eXBl
cy13b3JrZXIuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvaW1wb3J0LXNjcmlwdHMt
bWltZS10eXBlcy13b3JrZXIuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJjNTg1
YWMxMDYwYTg4YzRmM2VlYWM2YjZhODFiYmI0ZTBjMzAyODAuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2lt
cG9ydC1zY3JpcHRzLW1pbWUtdHlwZXMtd29ya2VyLmpzCisrKyAvZGV2L251bGwKQEAgLTEsNDkg
KzAsMCBAQAotY29uc3QgYmFkTWltZVR5cGVzID0gWwotICBudWxsLCAgLy8gbm8gTUlNRSB0eXBl
Ci0gICd0ZXh0L3BsYWluJywKLV07Ci0KLWNvbnN0IHZhbGlkTWltZVR5cGVzID0gWwotICAnYXBw
bGljYXRpb24vZWNtYXNjcmlwdCcsCi0gICdhcHBsaWNhdGlvbi9qYXZhc2NyaXB0JywKLSAgJ2Fw
cGxpY2F0aW9uL3gtZWNtYXNjcmlwdCcsCi0gICdhcHBsaWNhdGlvbi94LWphdmFzY3JpcHQnLAot
ICAndGV4dC9lY21hc2NyaXB0JywKLSAgJ3RleHQvamF2YXNjcmlwdCcsCi0gICd0ZXh0L2phdmFz
Y3JpcHQxLjAnLAotICAndGV4dC9qYXZhc2NyaXB0MS4xJywKLSAgJ3RleHQvamF2YXNjcmlwdDEu
MicsCi0gICd0ZXh0L2phdmFzY3JpcHQxLjMnLAotICAndGV4dC9qYXZhc2NyaXB0MS40JywKLSAg
J3RleHQvamF2YXNjcmlwdDEuNScsCi0gICd0ZXh0L2pzY3JpcHQnLAotICAndGV4dC9saXZlc2Ny
aXB0JywKLSAgJ3RleHQveC1lY21hc2NyaXB0JywKLSAgJ3RleHQveC1qYXZhc2NyaXB0JywKLV07
Ci0KLWZ1bmN0aW9uIGltcG9ydFNjcmlwdHNXaXRoTWltZVR5cGUobWltZVR5cGUpIHsKLSAgaW1w
b3J0U2NyaXB0cyhgLi9taW1lLXR5cGUtd29ya2VyLnB5JHttaW1lVHlwZSA/ICc/bWltZT0nICsg
bWltZVR5cGUgOiAnJ31gKTsKLX0KLQotaW1wb3J0U2NyaXB0cygnL3Jlc291cmNlcy90ZXN0aGFy
bmVzcy5qcycpOwotCi1mb3IgKGNvbnN0IG1pbWVUeXBlIG9mIGJhZE1pbWVUeXBlcykgewotICB0
ZXN0KCgpID0+IHsKLSAgICBhc3NlcnRfdGhyb3dzKAotICAgICAgJ05ldHdvcmtFcnJvcicsCi0g
ICAgICAoKSA9PiB7IGltcG9ydFNjcmlwdHNXaXRoTWltZVR5cGUobWltZVR5cGUpOyB9LAotICAg
ICAgYGltcG9ydFNjcmlwdHMgd2l0aCAke21pbWVUeXBlID8gJ2JhZCcgOiAnbm8nfSBNSU1FIHR5
cGUgJHttaW1lVHlwZSB8fCAnJ30gdGhyb3dzIE5ldHdvcmtFcnJvcmAsCi0gICAgKTsKLSAgfSwg
YEltcG9ydGluZyBzY3JpcHQgd2l0aCAke21pbWVUeXBlID8gJ2JhZCcgOiAnbm8nfSBNSU1FIHR5
cGUgJHttaW1lVHlwZSB8fCAnJ31gKTsKLX0KLQotZm9yIChjb25zdCBtaW1lVHlwZSBvZiB2YWxp
ZE1pbWVUeXBlcykgewotICB0ZXN0KCgpID0+IHsKLSAgICB0cnkgewotICAgICAgaW1wb3J0U2Ny
aXB0c1dpdGhNaW1lVHlwZShtaW1lVHlwZSk7Ci0gICAgfSBjYXRjaCB7Ci0gICAgICBhc3NlcnRf
dW5yZWFjaGVkKGBpbXBvcnRTY3JpcHRzIHdpdGggTUlNRSB0eXBlICR7bWltZVR5cGV9IHNob3Vs
ZCBub3QgdGhyb3dgKTsKLSAgICB9Ci0gIH0sIGBJbXBvcnRpbmcgc2NyaXB0IHdpdGggdmFsaWQg
SmF2YVNjcmlwdCBNSU1FIHR5cGUgJHttaW1lVHlwZX1gKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL3Jlc291cmNlcy9pbXBvcnRlZC1jbGFzc2ljLXNjcmlwdC5qcyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL3Jlc291cmNlcy9pbXBvcnRlZC1jbGFzc2ljLXNjcmlwdC5qcwpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWZjNTIwNDA1MTM1ZTIxNTI5MGViZmVlMDA4ZjlmNzE5
NjA5NTVhOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvaW1wb3J0ZWQtY2xhc3NpYy1zY3JpcHQuanMKKysr
IC9kZXYvbnVsbApAQCAtMSArMCwwIEBACi1jb25zdCBpbXBvcnRlZCA9ICdBIGNsYXNzaWMgc2Ny
aXB0Lic7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvaW1wb3J0ZWQt
bW9kdWxlLXNjcmlwdC5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9pbXBvcnRlZC1t
b2R1bGUtc2NyaXB0LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1NmQxOTZkZjA0
MGY5YWRiOTk5Yzk0NDMyOWU2ZjE1NjlhYzg3NmZkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9pbXBvcnRl
ZC1tb2R1bGUtc2NyaXB0LmpzCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotZXhwb3J0IGNv
bnN0IGltcG9ydGVkID0gJ0EgbW9kdWxlIHNjcmlwdC4nOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvcmVzb3VyY2VzL21lc3NhZ2UtdnMtbWljcm90YXNrLmh0bWwgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9yZXNvdXJjZXMvbWVzc2FnZS12cy1taWNyb3Rhc2suaHRtbApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMmM0NWM1OWE0NzVhZTliMmU2YmMxNjhkYzc1YjMxZWFiOWQyMzFm
NC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9yZXNvdXJjZXMvbWVzc2FnZS12cy1taWNyb3Rhc2suaHRtbAorKysgL2Rldi9u
dWxsCkBAIC0xLDE4ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPHNjcmlwdD4KLSAgbGV0IGRy
YWZ0ID0gW107Ci0gIHZhciByZXNvbHZlX21hbnVhbF9wcm9taXNlOwotICBsZXQgbWFudWFsX3By
b21pc2UgPQotICAgIG5ldyBQcm9taXNlKHJlc29sdmUgPT4gcmVzb2x2ZV9tYW51YWxfcHJvbWlz
ZSA9IHJlc29sdmUpLnRoZW4oKCkgPT4gZHJhZnQucHVzaCgnbWljcm90YXNrJykpOwotCi0gIGxl
dCByZXNvbHZlX21lc3NhZ2VfcHJvbWlzZTsKLSAgbGV0IG1lc3NhZ2VfcHJvbWlzZSA9IG5ldyBQ
cm9taXNlKHJlc29sdmUgPT4gcmVzb2x2ZV9tZXNzYWdlX3Byb21pc2UgPSByZXNvbHZlKTsKLSAg
ZnVuY3Rpb24gaGFuZGxlX21lc3NhZ2UoZXZlbnQpIHsKLSAgICBkcmFmdC5wdXNoKCdtZXNzYWdl
Jyk7Ci0gICAgcmVzb2x2ZV9tZXNzYWdlX3Byb21pc2UoKTsKLSAgfQotCi0gIHZhciByZXN1bHQg
PSBQcm9taXNlLmFsbChbbWFudWFsX3Byb21pc2UsIG1lc3NhZ2VfcHJvbWlzZV0pLnRoZW4oKCkg
PT4gZHJhZnQpOwotPC9zY3JpcHQ+Ci0KLTxzY3JpcHQgc3JjPSJlbXB0eS5qcz9rZXk9c3RhcnQi
Pjwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL21vZHVs
ZS13b3JrZXIuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvbW9kdWxlLXdvcmtlci5q
cwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzg1ZmU3MTAxNTAzY2I0YzdjYTc3ZTk1
ZTAyMzQ1OWIyOTI2Nzc0MS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvbW9kdWxlLXdvcmtlci5qcworKysg
L2Rldi9udWxsCkBAIC0xICswLDAgQEAKLWltcG9ydCAqIGFzIG1vZHVsZSBmcm9tICcuL2ltcG9y
dGVkLW1vZHVsZS1zY3JpcHQuanMnOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVz
b3VyY2VzL25hdmlnYXRpb24tcmVkaXJlY3Qtb3RoZXItb3JpZ2luLmh0bWwgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9yZXNvdXJjZXMvbmF2aWdhdGlvbi1yZWRpcmVjdC1vdGhlci1vcmlnaW4uaHRtbApp
bmRleCBkODI1NzFkMWEzYzcxZTIzMjc0MDA5ZDE0N2U0MTBiMTBmZThkMjQ1Li5hOTQ4M2M2NTM0
NTc5YWMyZjM1NDlkNzljNzQ4OGZlZWYxMWE1YzY5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9yZXNvdXJjZXMvbmF2aWdhdGlvbi1yZWRpcmVjdC1vdGhlci1vcmlnaW4uaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvbmF2aWdhdGlvbi1yZWRpcmVjdC1vdGhlci1v
cmlnaW4uaHRtbApAQCAtMzMsMjggKzMzLDExIEBAIGZ1bmN0aW9uIHNlbmRfcmVzdWx0KG1lc3Nh
Z2VfaWQsIHJlc3VsdCkgewogICAgICAgaG9zdF9pbmZvWydIVFRQU19PUklHSU4nXSk7CiB9CiAK
LWZ1bmN0aW9uIGdldF9yZXF1ZXN0X2luZm9zKHdvcmtlcikgewotICByZXR1cm4gbmV3IFByb21p
c2UoZnVuY3Rpb24ocmVzb2x2ZSkgewotICAgIHZhciBjaGFubmVsID0gbmV3IE1lc3NhZ2VDaGFu
bmVsKCk7Ci0gICAgY2hhbm5lbC5wb3J0MS5vbm1lc3NhZ2UgPSAobXNnKSA9PiB7Ci0gICAgICBy
ZXNvbHZlKG1zZy5kYXRhLnJlcXVlc3RJbmZvcyk7Ci0gICAgfTsKLSAgICB3b3JrZXIucG9zdE1l
c3NhZ2Uoe2NvbW1hbmQ6ICdnZXRSZXF1ZXN0SW5mb3MnLCBwb3J0OiBjaGFubmVsLnBvcnQyfSwK
LSAgICAgICAgICAgICAgICAgICAgICAgW2NoYW5uZWwucG9ydDJdKTsKLSAgfSk7Ci19Ci0KLWZ1
bmN0aW9uIGdldF9jbGllbnRzKHdvcmtlciwgYWN0dWFsX2lkcykgeworZnVuY3Rpb24gZ2V0X2lu
dGVyY2VwdGVkX3VybHMod29ya2VyKSB7CiAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihy
ZXNvbHZlKSB7CiAgICAgICB2YXIgY2hhbm5lbCA9IG5ldyBNZXNzYWdlQ2hhbm5lbCgpOwotICAg
ICAgY2hhbm5lbC5wb3J0MS5vbm1lc3NhZ2UgPSAobXNnKSA9PiB7Ci0gICAgICAgIHJlc29sdmUo
bXNnLmRhdGEuY2xpZW50cyk7Ci0gICAgICB9OwotICAgICAgd29ya2VyLnBvc3RNZXNzYWdlKHsK
LSAgICAgICAgY29tbWFuZDogJ2dldENsaWVudHMnLAotICAgICAgICBhY3R1YWxfaWRzLAotICAg
ICAgICBwb3J0OiBjaGFubmVsLnBvcnQyCi0gICAgICB9LCBbY2hhbm5lbC5wb3J0Ml0pOworICAg
ICAgY2hhbm5lbC5wb3J0MS5vbm1lc3NhZ2UgPSBmdW5jdGlvbihtc2cpIHsgcmVzb2x2ZShtc2cu
ZGF0YS51cmxzKTsgfTsKKyAgICAgIHdvcmtlci5wb3N0TWVzc2FnZSh7cG9ydDogY2hhbm5lbC5w
b3J0Mn0sIFtjaGFubmVsLnBvcnQyXSk7CiAgICAgfSk7CiB9CiAKQEAgLTY1LDIwICs0OCwxNCBA
QCBmdW5jdGlvbiBvbl9tZXNzYWdlKGUpIHsKICAgICBjb25zb2xlLmVycm9yKCdpbnZhbGlkIG9y
aWdpbjogJyArIGUub3JpZ2luKTsKICAgICByZXR1cm47CiAgIH0KLSAgY29uc3QgY29tbWFuZCA9
IGUuZGF0YS5tZXNzYWdlLmNvbW1hbmQ7Ci0gIGlmIChjb21tYW5kID09ICd3YWl0X2Zvcl93b3Jr
ZXInKSB7CisgIGlmIChlLmRhdGEubWVzc2FnZSA9PSAnd2FpdF9mb3Jfd29ya2VyJykgewogICAg
IHdhaXRfZm9yX3dvcmtlcl9wcm9taXNlLnRoZW4oZnVuY3Rpb24oKSB7IHNlbmRfcmVzdWx0KGUu
ZGF0YS5pZCwgJ29rJyk7IH0pOwotICB9IGVsc2UgaWYgKGNvbW1hbmQgPT0gJ2dldF9yZXF1ZXN0
X2luZm9zJykgewotICAgIGdldF9yZXF1ZXN0X2luZm9zKHdvcmtlcikKLSAgICAgIC50aGVuKGZ1
bmN0aW9uKGRhdGEpIHsKLSAgICAgICAgICBzZW5kX3Jlc3VsdChlLmRhdGEuaWQsIGRhdGEpOwot
ICAgICAgICB9KTsKLSAgfSBlbHNlIGlmIChjb21tYW5kID09ICdnZXRfY2xpZW50cycpIHsKLSAg
ICBnZXRfY2xpZW50cyh3b3JrZXIsIGUuZGF0YS5tZXNzYWdlLmFjdHVhbF9pZHMpCi0gICAgICAu
dGhlbihmdW5jdGlvbihkYXRhKSB7Ci0gICAgICAgICAgc2VuZF9yZXN1bHQoZS5kYXRhLmlkLCBk
YXRhKTsKKyAgfSBlbHNlIGlmIChlLmRhdGEubWVzc2FnZSA9PSAnZ2V0X2ludGVyY2VwdGVkX3Vy
bHMnKSB7CisgICAgZ2V0X2ludGVyY2VwdGVkX3VybHMod29ya2VyKQorICAgICAgLnRoZW4oZnVu
Y3Rpb24odXJscykgeworICAgICAgICAgIHNlbmRfcmVzdWx0KGUuZGF0YS5pZCwgdXJscyk7CiAg
ICAgICAgIH0pOwotICB9IGVsc2UgaWYgKGNvbW1hbmQgPT0gJ3VucmVnaXN0ZXInKSB7CisgIH0g
ZWxzZSBpZiAoZS5kYXRhLm1lc3NhZ2UgPT0gJ3VucmVnaXN0ZXInKSB7CiAgICAgcmVnaXN0cmF0
aW9uLnVucmVnaXN0ZXIoKQogICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7CiAgICAgICAgICAgc2Vu
ZF9yZXN1bHQoZS5kYXRhLmlkLCAnb2snKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L3Jlc291cmNlcy9uYXZpZ2F0aW9uLXJlZGlyZWN0LW91dC1zY29wZS5weSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL3Jlc291cmNlcy9uYXZpZ2F0aW9uLXJlZGlyZWN0LW91dC1zY29wZS5weQppbmRleCAx
Njg1MDcyM2Y5NjhmZDNmYWM1MWEzM2M2ZTk4M2M0ZjAxM2E4ODIzLi45MDdjZWZhM2IxYWZhOTZh
NTVkNTQ5MzVhZDgzNTdiMjMyMTE4ZjliIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9y
ZXNvdXJjZXMvbmF2aWdhdGlvbi1yZWRpcmVjdC1vdXQtc2NvcGUucHkKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvcmVzb3VyY2VzL25hdmlnYXRpb24tcmVkaXJlY3Qtb3V0LXNjb3BlLnB5CkBAIC0x
MSwxMiArMTEsMTAgQEAgZGVmIG1haW4ocmVxdWVzdCwgcmVzcG9uc2UpOgogICAgIHJldHVybiBz
dGF0dXMsIFsoImNvbnRlbnQtdHlwZSIsICJ0ZXh0L2h0bWwiKV0sICcnJwogPCFET0NUWVBFIGh0
bWw+CiA8c2NyaXB0Pgotb25tZXNzYWdlID0gZXZlbnQgPT4gewogICB3aW5kb3cucGFyZW50LnBv
c3RNZXNzYWdlKAogICAgICAgewotICAgICAgICBpZDogZXZlbnQuZGF0YS5pZCwKKyAgICAgICAg
aWQ6ICdsYXN0X3VybCcsCiAgICAgICAgIHJlc3VsdDogbG9jYXRpb24uaHJlZgogICAgICAgfSwg
JyonKTsKLX07CiA8L3NjcmlwdD4KICcnJwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
cmVzb3VyY2VzL25hdmlnYXRpb24tcmVkaXJlY3Qtc2NvcGUxLnB5IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvcmVzb3VyY2VzL25hdmlnYXRpb24tcmVkaXJlY3Qtc2NvcGUxLnB5CmluZGV4IDE2ODUwNzIz
Zjk2OGZkM2ZhYzUxYTMzYzZlOTgzYzRmMDEzYTg4MjMuLjkwN2NlZmEzYjFhZmE5NmE1NWQ1NDkz
NWFkODM1N2IyMzIxMThmOWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNl
cy9uYXZpZ2F0aW9uLXJlZGlyZWN0LXNjb3BlMS5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9y
ZXNvdXJjZXMvbmF2aWdhdGlvbi1yZWRpcmVjdC1zY29wZTEucHkKQEAgLTExLDEyICsxMSwxMCBA
QCBkZWYgbWFpbihyZXF1ZXN0LCByZXNwb25zZSk6CiAgICAgcmV0dXJuIHN0YXR1cywgWygiY29u
dGVudC10eXBlIiwgInRleHQvaHRtbCIpXSwgJycnCiA8IURPQ1RZUEUgaHRtbD4KIDxzY3JpcHQ+
Ci1vbm1lc3NhZ2UgPSBldmVudCA9PiB7CiAgIHdpbmRvdy5wYXJlbnQucG9zdE1lc3NhZ2UoCiAg
ICAgICB7Ci0gICAgICAgIGlkOiBldmVudC5kYXRhLmlkLAorICAgICAgICBpZDogJ2xhc3RfdXJs
JywKICAgICAgICAgcmVzdWx0OiBsb2NhdGlvbi5ocmVmCiAgICAgICB9LCAnKicpOwotfTsKIDwv
c2NyaXB0PgogJycnCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvbmF2
aWdhdGlvbi1yZWRpcmVjdC1zY29wZTIucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMv
bmF2aWdhdGlvbi1yZWRpcmVjdC1zY29wZTIucHkKaW5kZXggMTY4NTA3MjNmOTY4ZmQzZmFjNTFh
MzNjNmU5ODNjNGYwMTNhODgyMy4uOTA3Y2VmYTNiMWFmYTk2YTU1ZDU0OTM1YWQ4MzU3YjIzMjEx
OGY5YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL25hdmlnYXRpb24t
cmVkaXJlY3Qtc2NvcGUyLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9uYXZp
Z2F0aW9uLXJlZGlyZWN0LXNjb3BlMi5weQpAQCAtMTEsMTIgKzExLDEwIEBAIGRlZiBtYWluKHJl
cXVlc3QsIHJlc3BvbnNlKToKICAgICByZXR1cm4gc3RhdHVzLCBbKCJjb250ZW50LXR5cGUiLCAi
dGV4dC9odG1sIildLCAnJycKIDwhRE9DVFlQRSBodG1sPgogPHNjcmlwdD4KLW9ubWVzc2FnZSA9
IGV2ZW50ID0+IHsKICAgd2luZG93LnBhcmVudC5wb3N0TWVzc2FnZSgKICAgICAgIHsKLSAgICAg
ICAgaWQ6IGV2ZW50LmRhdGEuaWQsCisgICAgICAgIGlkOiAnbGFzdF91cmwnLAogICAgICAgICBy
ZXN1bHQ6IGxvY2F0aW9uLmhyZWYKICAgICAgIH0sICcqJyk7Ci19OwogPC9zY3JpcHQ+CiAnJycK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9uZXN0ZWQtaWZyYW1lLXBh
cmVudC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL25lc3RlZC1pZnJhbWUtcGFy
ZW50Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDExNWFiMjZlMTIyMTAyNGIz
MDMxMzU2OWY0ODQ5NDJiMTBmNmRiYTAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL25lc3RlZC1pZnJhbWUt
cGFyZW50Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw1ICswLDAgQEAKLTwhRE9DVFlQRSBodG1s
PgotPHNjcmlwdD4KLSAgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIub25tZXNzYWdlID0gZXZlbnQg
PT4gcGFyZW50LnBvc3RNZXNzYWdlKGV2ZW50LmRhdGEsICcqJywgZXZlbnQucG9ydHMpOwotPC9z
Y3JpcHQ+Ci08aWZyYW1lIGlkPSdjaGlsZCc+PC9pZnJhbWU+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9yZXNvdXJjZXMvcGVyZm9ybWFuY2UtdGltZWxpbmUtd29ya2VyLmpzIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3BlcmZvcm1hbmNlLXRpbWVsaW5lLXdvcmtlci5qcwpp
bmRleCBjYWMzMjdjMzRiZjlkZjE4NDkxM2M1NjFiNTg0YjAzOGYzNTA0Yzk0Li5hNzUyYjQzNjUy
NGU2Mjg5NTllMzVjOWRlNzNlMTVjY2M3ZGQ3ODNmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9yZXNvdXJjZXMvcGVyZm9ybWFuY2UtdGltZWxpbmUtd29ya2VyLmpzCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL3Jlc291cmNlcy9wZXJmb3JtYW5jZS10aW1lbGluZS13b3JrZXIuanMKQEAg
LTQ0LDEzICs0NCwxOSBAQCBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odGVzdCkgewogICAgICAgICAg
ICAgICBhc3NlcnRfZ3JlYXRlcl90aGFuKGVudHJ5LnN0YXJ0VGltZSwgMCk7CiAgICAgICAgICAg
ICAgIGFzc2VydF9ncmVhdGVyX3RoYW4oZW50cnkucmVzcG9uc2VFbmQsIGVudHJ5LnN0YXJ0VGlt
ZSk7CiAgICAgICAgICAgfQotICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihy
ZXNvbHZlKSB7CisgICAgICAgICAgcmV0dXJuIFByb21pc2UucmFjZShbCisgICAgICAgICAgICBu
ZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlKSB7CiAgICAgICAgICAgICAgIHBlcmZvcm1hbmNl
Lm9ucmVzb3VyY2V0aW1pbmdidWZmZXJmdWxsID0gXyA9PiB7CiAgICAgICAgICAgICAgICAgcmVz
b2x2ZSgnYnVmZmVyZnVsbCcpOwogICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgIHBlcmZv
cm1hbmNlLnNldFJlc291cmNlVGltaW5nQnVmZmVyU2l6ZShleHBlY3RlZFJlc291cmNlcy5sZW5n
dGgpOwotICAgICAgICAgICAgICBmZXRjaCgnZHVtbXkudHh0Jyk7Ci0gICAgICAgICAgfSk7Cisg
ICAgICAgICAgICB9KSwKKworICAgICAgICAgICAgLy8gUmFjZSB0aGUgYnVmZmVyZnVsbCBldmVu
dCBhZ2FpbnN0IGFub3RoZXIgZmV0Y2guICBXZSBzaG91bGQgZ2V0IHRoZQorICAgICAgICAgICAg
Ly8gZXZlbnQgYmVmb3JlIHRoaXMgY29tcGxldGVzLiAgVGhpcyBhbGxvd3MgdXMgdG8gZGV0ZWN0
IGEgZmFpbHVyZQorICAgICAgICAgICAgLy8gdG8gZGlzcGF0Y2ggdGhlIGV2ZW50IHdpdGhvdXQg
dGltaW5nIG91dCB0aGUgZW50aXJlIHRlc3QuCisgICAgICAgICAgICBmZXRjaCgnZHVtbXkudHh0
JykudGhlbihyZXNwID0+IHJlc3AudGV4dCgpKQorICAgICAgICAgIF0pOwogICAgICAgICB9KQog
ICAgICAgLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7CiAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhy
ZXN1bHQsICdidWZmZXJmdWxsJyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNv
dXJjZXMvcG9zdG1lc3NhZ2UtZWNoby13b3JrZXIuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNv
dXJjZXMvcG9zdG1lc3NhZ2UtZWNoby13b3JrZXIuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGYwODhhZDEyNzgwNDI5N2NmOTgxZTYxYWNiMWMzM2VhN2IwNjIwYzQuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
cmVzb3VyY2VzL3Bvc3RtZXNzYWdlLWVjaG8td29ya2VyLmpzCisrKyAvZGV2L251bGwKQEAgLTEs
MyArMCwwIEBACi1zZWxmLmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCBldmVudCA9PiB7Ci0g
IGV2ZW50LnNvdXJjZS5wb3N0TWVzc2FnZShldmVudC5kYXRhKTsKLX0pOwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3JlZGlyZWN0LXdvcmtlci5qcyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL3Jlc291cmNlcy9yZWRpcmVjdC13b3JrZXIuanMKaW5kZXggZGRjYzJjZjU0Nzg5
NDIyOTJkYzhjNWUzMGQxNTZkYzQyODg2MzY1ZS4uN2U1ZWFkMTk0MTllMmM5YmRmNmJmMjIzZWM4
NGU2OTJlNTdjOGZlMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3Jl
ZGlyZWN0LXdvcmtlci5qcworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvcmVkaXJl
Y3Qtd29ya2VyLmpzCkBAIC01LDgwICs1LDIwIEBAIHZhciBjYWNoZU5hbWUgPSAndXJscy0nICsg
c2VsZi5yZWdpc3RyYXRpb24uc2NvcGU7CiAKIHZhciB3YWl0VW50aWxQcm9taXNlTGlzdCA9IFtd
OwogCi0vLyBTZW5kcyB0aGUgcmVxdWVzdHMgc2VlbiBieSB0aGlzIHdvcmtlci4gVGhlIG91dHB1
dCBpczoKLS8vIHsKLS8vICAgcmVxdWVzdEluZm9zOiBbCi0vLyAgICAge3VybDogdXJsMSwgcmVz
dWx0aW5nQ2xpZW50SWQ6IGlkMX0sCi0vLyAgICAge3VybDogdXJsMiwgcmVzdWx0aW5nQ2xpZW50
SWQ6IGlkMn0sCi0vLyAgIF0KLS8vIH0KLWFzeW5jIGZ1bmN0aW9uIGdldFJlcXVlc3RJbmZvcyhl
dmVudCkgewotICAvLyBXYWl0IGZvciBmZXRjaCBldmVudHMgdG8gZmluaXNoLgotICBhd2FpdCBQ
cm9taXNlLmFsbCh3YWl0VW50aWxQcm9taXNlTGlzdCk7Ci0gIHdhaXRVbnRpbFByb21pc2VMaXN0
ID0gW107Ci0KLSAgLy8gR2VuZXJhdGUgdGhlIG1lc3NhZ2UuCi0gIGNvbnN0IGNhY2hlID0gYXdh
aXQgY2FjaGVzLm9wZW4oY2FjaGVOYW1lKTsKLSAgY29uc3QgcmVxdWVzdExpc3QgPSBhd2FpdCBj
YWNoZS5rZXlzKCk7Ci0gIGNvbnN0IHJlcXVlc3RJbmZvcyA9IFtdOwotICBmb3IgKGxldCBpID0g
MDsgaSA8IHJlcXVlc3RMaXN0Lmxlbmd0aDsgaSsrKSB7Ci0gICAgY29uc3QgcmVzcG9uc2UgPSBh
d2FpdCBjYWNoZS5tYXRjaChyZXF1ZXN0TGlzdFtpXSk7Ci0gICAgY29uc3QgYm9keSA9IGF3YWl0
IHJlc3BvbnNlLmpzb24oKTsKLSAgICByZXF1ZXN0SW5mb3NbaV0gPSB7Ci0gICAgICB1cmw6IHJl
cXVlc3RMaXN0W2ldLnVybCwKLSAgICAgIHJlc3VsdGluZ0NsaWVudElkOiBib2R5LnJlc3VsdGlu
Z0NsaWVudElkCi0gICAgfTsKLSAgfQotICBhd2FpdCBjYWNoZXMuZGVsZXRlKGNhY2hlTmFtZSk7
Ci0KLSAgZXZlbnQuZGF0YS5wb3J0LnBvc3RNZXNzYWdlKHtyZXF1ZXN0SW5mb3N9KTsKLX0KLQot
Ly8gU2VuZHMgdGhlIHJlc3VsdHMgb2YgY2xpZW50cy5nZXQoaWQpIGZyb20gdGhpcyB3b3JrZXIu
IFRoZQotLy8gaW5wdXQgaXM6Ci0vLyB7Ci0vLyAgIGFjdHVhbF9pZHM6IHthOiBpZDEsIGI6IGlk
MiwgeDogaWQzfQotLy8gfQotLy8KLS8vIFRoZSBvdXRwdXQgaXM6Ci0vLyB7Ci0vLyAgIGNsaWVu
dHM6IHsKLS8vICAgICBhOiB7Zm91bmQ6IGZhbHNlfSwKLS8vICAgICBiOiB7Zm91bmQ6IGZhbHNl
fSwKLS8vICAgICB4OiB7Ci0vLyAgICAgICBpZDogaWQzLAotLy8gICAgICAgdXJsOiB1cmwxLAot
Ly8gICAgICAgZm91bmQ6IHRydWUKLS8vICAgIH0KLS8vICAgfQotLy8gfQotYXN5bmMgZnVuY3Rp
b24gZ2V0Q2xpZW50cyhldmVudCkgewotICAvLyB8YWN0dWFsX2lkc3wgaXMgbGlrZToKLSAgLy8g
e2E6IGlkMSwgYjogaWQyLCB4OiBpZDN9Ci0gIGNvbnN0IGFjdHVhbF9pZHMgPSBldmVudC5kYXRh
LmFjdHVhbF9pZHM7Ci0gIGNvbnN0IHJlc3VsdCA9IHt9Ci0gIGZvciAobGV0IGtleSBvZiBPYmpl
Y3Qua2V5cyhhY3R1YWxfaWRzKSkgewotICAgIGNvbnN0IGlkID0gYWN0dWFsX2lkc1trZXldOwot
ICAgIGNvbnN0IGNsaWVudCA9IGF3YWl0IHNlbGYuY2xpZW50cy5nZXQoaWQpOwotICAgIGlmIChj
bGllbnQgPT09IHVuZGVmaW5lZCkKLSAgICAgIHJlc3VsdFtrZXldID0ge2ZvdW5kOiBmYWxzZX07
Ci0gICAgZWxzZQotICAgICAgcmVzdWx0W2tleV0gPSB7Zm91bmQ6IHRydWUsIHVybDogY2xpZW50
LnVybCwgaWQ6IGNsaWVudC5pZH07Ci0gIH0KLSAgZXZlbnQuZGF0YS5wb3J0LnBvc3RNZXNzYWdl
KHtjbGllbnRzOiByZXN1bHR9KTsKLX0KLQotc2VsZi5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdl
JywgYXN5bmMgZnVuY3Rpb24oZXZlbnQpIHsKLSAgaWYgKGV2ZW50LmRhdGEuY29tbWFuZCA9PSAn
Z2V0UmVxdWVzdEluZm9zJykgewotICAgIGV2ZW50LndhaXRVbnRpbChnZXRSZXF1ZXN0SW5mb3Mo
ZXZlbnQpKTsKLSAgICByZXR1cm47Ci0gIH0KLQotICBpZiAoZXZlbnQuZGF0YS5jb21tYW5kID09
ICdnZXRDbGllbnRzJykgewotICAgIGV2ZW50LndhaXRVbnRpbChnZXRDbGllbnRzKGV2ZW50KSk7
Ci0gICAgcmV0dXJuOwotICB9Ci19KTsKK3NlbGYuYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScs
IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgdmFyIHVybHM7CisgICAgZXZlbnQud2FpdFVudGlsKFBy
b21pc2UuYWxsKHdhaXRVbnRpbFByb21pc2VMaXN0KS50aGVuKGZ1bmN0aW9uKCkgeworICAgICAg
d2FpdFVudGlsUHJvbWlzZUxpc3QgPSBbXTsKKyAgICAgIHJldHVybiBjYWNoZXMub3BlbihjYWNo
ZU5hbWUpOworICAgIH0pLnRoZW4oZnVuY3Rpb24oY2FjaGUpIHsKKyAgICAgIHJldHVybiBjYWNo
ZS5rZXlzKCk7CisgICAgfSkudGhlbihmdW5jdGlvbihyZXF1ZXN0TGlzdCkgeworICAgICAgdXJs
cyA9IHJlcXVlc3RMaXN0Lm1hcChmdW5jdGlvbihyZXF1ZXN0KSB7IHJldHVybiByZXF1ZXN0LnVy
bDsgfSk7CisgICAgICByZXR1cm4gY2FjaGVzLmRlbGV0ZShjYWNoZU5hbWUpOworICAgIH0pLnRo
ZW4oZnVuY3Rpb24oKSB7CisgICAgICBldmVudC5kYXRhLnBvcnQucG9zdE1lc3NhZ2Uoe3VybHM6
IHVybHN9KTsKKyAgICB9KSk7CisgIH0pOwogCiBmdW5jdGlvbiBnZXRfcXVlcnlfcGFyYW1zKHVy
bCkgewogICB2YXIgc2VhcmNoID0gKG5ldyBVUkwodXJsKSkuc2VhcmNoOwpAQCAtOTYsMTEgKzM2
LDcgQEAgZnVuY3Rpb24gZ2V0X3F1ZXJ5X3BhcmFtcyh1cmwpIHsKIAogc2VsZi5hZGRFdmVudExp
c3RlbmVyKCdmZXRjaCcsIGZ1bmN0aW9uKGV2ZW50KSB7CiAgICAgdmFyIHdhaXRVbnRpbFByb21p
c2UgPSBjYWNoZXMub3BlbihjYWNoZU5hbWUpLnRoZW4oZnVuY3Rpb24oY2FjaGUpIHsKLSAgICAg
IGNvbnN0IHJlc3BvbnNlQm9keSA9IHt9OwotICAgICAgcmVzcG9uc2VCb2R5WydyZXN1bHRpbmdD
bGllbnRJZCddID0gZXZlbnQucmVzdWx0aW5nQ2xpZW50SWQ7Ci0gICAgICBjb25zdCBoZWFkZXJz
ID0gbmV3IEhlYWRlcnMoeydDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbid9KTsKLSAg
ICAgIGNvbnN0IHJlc3BvbnNlID0gbmV3IFJlc3BvbnNlKEpTT04uc3RyaW5naWZ5KHJlc3BvbnNl
Qm9keSksIHtoZWFkZXJzfSk7Ci0gICAgICByZXR1cm4gY2FjaGUucHV0KGV2ZW50LnJlcXVlc3Qs
IHJlc3BvbnNlKTsKKyAgICAgIHJldHVybiBjYWNoZS5wdXQoZXZlbnQucmVxdWVzdCwgbmV3IFJl
c3BvbnNlKCkpOwogICAgIH0pOwogICAgIGV2ZW50LndhaXRVbnRpbCh3YWl0VW50aWxQcm9taXNl
KTsKIApAQCAtMTE0LDI1ICs1MCwyOCBAQCBzZWxmLmFkZEV2ZW50TGlzdGVuZXIoJ2ZldGNoJywg
ZnVuY3Rpb24oZXZlbnQpIHsKICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBldmVudC5yZXNw
b25kV2l0aCh3YWl0VW50aWxQcm9taXNlLnRoZW4oYXN5bmMgKCkgPT4geworICAgIGV2ZW50LnJl
c3BvbmRXaXRoKHdhaXRVbnRpbFByb21pc2UudGhlbihmdW5jdGlvbigpIHsKICAgICAgIGlmIChw
YXJhbXNbJ3N3J10gPT0gJ2dlbicpIHsKICAgICAgICAgcmV0dXJuIFJlc3BvbnNlLnJlZGlyZWN0
KHBhcmFtc1sndXJsJ10pOwogICAgICAgfSBlbHNlIGlmIChwYXJhbXNbJ3N3J10gPT0gJ2ZldGNo
JykgewogICAgICAgICByZXR1cm4gZmV0Y2goZXZlbnQucmVxdWVzdCk7Ci0gICAgICB9IGVsc2Ug
aWYgKHBhcmFtc1snc3cnXSA9PSAnZmV0Y2gtdXJsJykgewotICAgICAgICByZXR1cm4gZmV0Y2go
cGFyYW1zWyd1cmwnXSk7CiAgICAgICB9IGVsc2UgaWYgKHBhcmFtc1snc3cnXSA9PSAnZm9sbG93
JykgewogICAgICAgICByZXR1cm4gZmV0Y2gobmV3IFJlcXVlc3QoZXZlbnQucmVxdWVzdC51cmws
IHtyZWRpcmVjdDogJ2ZvbGxvdyd9KSk7CiAgICAgICB9IGVsc2UgaWYgKHBhcmFtc1snc3cnXSA9
PSAnbWFudWFsJykgewogICAgICAgICByZXR1cm4gZmV0Y2gobmV3IFJlcXVlc3QoZXZlbnQucmVx
dWVzdC51cmwsIHtyZWRpcmVjdDogJ21hbnVhbCd9KSk7CiAgICAgICB9IGVsc2UgaWYgKHBhcmFt
c1snc3cnXSA9PSAnbWFudWFsVGhyb3VnaENhY2hlJykgewotICAgICAgICBjb25zdCB1cmwgPSBl
dmVudC5yZXF1ZXN0LnVybDsKLSAgICAgICAgYXdhaXQgY2FjaGVzLmRlbGV0ZSh1cmwpCi0gICAg
ICAgIGNvbnN0IGNhY2hlID0gYXdhaXQgc2VsZi5jYWNoZXMub3Blbih1cmwpOwotICAgICAgICBj
b25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKG5ldyBSZXF1ZXN0KHVybCwge3JlZGlyZWN0OiAn
bWFudWFsJ30pKTsKLSAgICAgICAgYXdhaXQgY2FjaGUucHV0KGV2ZW50LnJlcXVlc3QsIHJlc3Bv
bnNlKTsKLSAgICAgICAgcmV0dXJuIGNhY2hlLm1hdGNoKHVybCk7CisgICAgICAgIHZhciB1cmwg
PSBldmVudC5yZXF1ZXN0LnVybDsKKyAgICAgICAgdmFyIGNhY2hlOworICAgICAgICByZXR1cm4g
Y2FjaGVzLmRlbGV0ZSh1cmwpCisgICAgICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7IHJldHVybiBz
ZWxmLmNhY2hlcy5vcGVuKHVybCk7IH0pCisgICAgICAgICAgLnRoZW4oZnVuY3Rpb24oYykgewor
ICAgICAgICAgICAgY2FjaGUgPSBjOworICAgICAgICAgICAgcmV0dXJuIGZldGNoKG5ldyBSZXF1
ZXN0KHVybCwge3JlZGlyZWN0OiAnbWFudWFsJ30pKTsKKyAgICAgICAgICB9KQorICAgICAgICAg
IC50aGVuKGZ1bmN0aW9uKHJlcykgeyByZXR1cm4gY2FjaGUucHV0KGV2ZW50LnJlcXVlc3QsIHJl
cyk7IH0pCisgICAgICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7IHJldHVybiBjYWNoZS5tYXRjaCh1
cmwpOyB9KTsKICAgICAgIH0KKwogICAgICAgLy8gdW5leHBlY3RlZC4uLiB0cmlnZ2VyIGFuIGlu
dGVyY2VwdGlvbiBmYWlsdXJlCiAgICAgfSkpOwogICB9KTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL3Jlc291cmNlcy9yZWdpc3RyYXRpb24tdGVzdHMtbWltZS10eXBlcy5qcyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9yZWdpc3RyYXRpb24tdGVzdHMtbWltZS10eXBlcy5q
cwppbmRleCAzZTQ4NTliOGIzOWIwOTU1ZTZjNTE1ZDM2N2UyZTdkNDRjNGYzYTc3Li4xYjhlYTli
ZTAwOGNlM2NmNDU5N2FhYTdlM2NhNmRkNjgwYWJkZDBiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9yZXNvdXJjZXMvcmVnaXN0cmF0aW9uLXRlc3RzLW1pbWUtdHlwZXMuanMKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3JlZ2lzdHJhdGlvbi10ZXN0cy1taW1lLXR5cGVz
LmpzCkBAIC0yMSwyMSArMjEsMTEgQEAgZnVuY3Rpb24gcmVnaXN0cmF0aW9uX3Rlc3RzX21pbWVf
dHlwZXMocmVnaXN0ZXJfbWV0aG9kLCBjaGVja19lcnJvcl90eXBlcykgewogICAgICAgICAgICdS
ZWdpc3RyYXRpb24gb2YgcGxhaW4gdGV4dCBzY3JpcHQgc2hvdWxkIGZhaWwuJyk7CiAgICAgfSwg
J1JlZ2lzdGVyaW5nIHNjcmlwdCB3aXRoIGJhZCBNSU1FIHR5cGUnKTsKIAotICAvKioKLSAgICog
U2VydmljZVdvcmtlckNvbnRhaW5lci5yZWdpc3RlcigpIHNob3VsZCB0aHJvdyBhIFR5cGVFcnJv
ciwgYWNjb3JkaW5nIHRvCi0gICAqIHN0ZXAgMTcuMSBvZiBodHRwczovL3czYy5naXRodWIuaW8v
U2VydmljZVdvcmtlci8jaW1wb3J0c2NyaXB0cwotICAgKgotICAgKiAiWzE3XSBJZiBhbiB1bmNh
dWdodCBydW50aW1lIHNjcmlwdCBlcnJvciBvY2N1cnMgZHVyaW5nIHRoZSBhYm92ZSBzdGVwLCB0
aGVuOgotICAgKiAgWzE3LjFdIEludm9rZSBSZWplY3QgSm9iIFByb21pc2Ugd2l0aCBqb2IgYW5k
IFR5cGVFcnJvciIKLSAgICoKLSAgICogKFdoZXJlIHRoZSAidW5jYXVnaHQgcnVudGltZSBzY3Jp
cHQgZXJyb3IiIGlzIHRocm93biBieSBhbiB1bnN1Y2Nlc3NmdWwKLSAgICogaW1wb3J0U2NyaXB0
cygpKQotICAgKi8KICAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICAgIHZhciBzY3Jp
cHQgPSAncmVzb3VyY2VzL2ltcG9ydC1taW1lLXR5cGUtd29ya2VyLnB5JzsKICAgICAgIHZhciBz
Y29wZSA9ICdyZXNvdXJjZXMvc2NvcGUvbm8tbWltZS10eXBlLXdvcmtlci8nOwogICAgICAgcmV0
dXJuIHByb21pc2VfcmVqZWN0cyh0LAotICAgICAgICAgIGNoZWNrX2Vycm9yX3R5cGVzID8gbmV3
IFR5cGVFcnJvcigpIDogbnVsbCwKKyAgICAgICAgICBjaGVja19lcnJvcl90eXBlcyA/ICdTZWN1
cml0eUVycm9yJyA6IG51bGwsCiAgICAgICAgICAgcmVnaXN0ZXJfbWV0aG9kKHNjcmlwdCwge3Nj
b3BlOiBzY29wZX0pLAogICAgICAgICAgICdSZWdpc3RyYXRpb24gb2Ygbm8gTUlNRSB0eXBlIGlt
cG9ydGVkIHNjcmlwdCBzaG91bGQgZmFpbC4nKTsKICAgICB9LCAnUmVnaXN0ZXJpbmcgc2NyaXB0
IHRoYXQgaW1wb3J0cyBzY3JpcHQgd2l0aCBubyBNSU1FIHR5cGUnKTsKQEAgLTQ0LDcgKzM0LDcg
QEAgZnVuY3Rpb24gcmVnaXN0cmF0aW9uX3Rlc3RzX21pbWVfdHlwZXMocmVnaXN0ZXJfbWV0aG9k
LCBjaGVja19lcnJvcl90eXBlcykgewogICAgICAgdmFyIHNjcmlwdCA9ICdyZXNvdXJjZXMvaW1w
b3J0LW1pbWUtdHlwZS13b3JrZXIucHk/bWltZT10ZXh0L3BsYWluJzsKICAgICAgIHZhciBzY29w
ZSA9ICdyZXNvdXJjZXMvc2NvcGUvYmFkLW1pbWUtdHlwZS13b3JrZXIvJzsKICAgICAgIHJldHVy
biBwcm9taXNlX3JlamVjdHModCwKLSAgICAgICAgICBjaGVja19lcnJvcl90eXBlcyA/IG5ldyBU
eXBlRXJyb3IoKSA6IG51bGwsCisgICAgICAgICAgY2hlY2tfZXJyb3JfdHlwZXMgPyAnU2VjdXJp
dHlFcnJvcicgOiBudWxsLAogICAgICAgICAgIHJlZ2lzdGVyX21ldGhvZChzY3JpcHQsIHtzY29w
ZTogc2NvcGV9KSwKICAgICAgICAgICAnUmVnaXN0cmF0aW9uIG9mIHBsYWluIHRleHQgaW1wb3J0
ZWQgc2NyaXB0IHNob3VsZCBmYWlsLicpOwogICAgIH0sICdSZWdpc3RlcmluZyBzY3JpcHQgdGhh
dCBpbXBvcnRzIHNjcmlwdCB3aXRoIGJhZCBNSU1FIHR5cGUnKTsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL3Jlc291cmNlcy9yZWdpc3RyYXRpb24tdGVzdHMtc2NvcGUuanMgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvcmVnaXN0cmF0aW9uLXRlc3RzLXNjb3BlLmpzCmluZGV4
IDZjMDk3YWQ4ZDFmOGI4ZjlhNGZlOTVmN2M2ZWJkMDRlZGI1Y2ZkOWMuLjUxYjBhYjRhZDUxYTNj
MGEyYTdiNjgzNDEzY2E2YWViYTdlYzYxOTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L3Jlc291cmNlcy9yZWdpc3RyYXRpb24tdGVzdHMtc2NvcGUuanMKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvcmVzb3VyY2VzL3JlZ2lzdHJhdGlvbi10ZXN0cy1zY29wZS5qcwpAQCAtOTQsOSArOTQs
OSBAQCBmdW5jdGlvbiByZWdpc3RyYXRpb25fdGVzdHNfc2NvcGUocmVnaXN0ZXJfbWV0aG9kLCBj
aGVja19lcnJvcl90eXBlcykgewogICAgICAgdmFyIHNjcmlwdCA9ICdyZXNvdXJjZXMvZW1wdHkt
d29ya2VyLmpzJzsKICAgICAgIHZhciBzY29wZSA9ICdmaWxlc3lzdGVtOicgKyBub3JtYWxpemVV
UkwoJ3Jlc291cmNlcy9zY29wZS9maWxlc3lzdGVtLXNjb3BlLXVybCcpOwogICAgICAgcmV0dXJu
IHByb21pc2VfcmVqZWN0cyh0LAotICAgICAgICAgIGNoZWNrX2Vycm9yX3R5cGVzID8gbmV3IFR5
cGVFcnJvciA6IG51bGwsCisgICAgICAgICAgY2hlY2tfZXJyb3JfdHlwZXMgPyAnU2VjdXJpdHlF
cnJvcicgOiBudWxsLAogICAgICAgICAgIHJlZ2lzdGVyX21ldGhvZChzY3JpcHQsIHtzY29wZTog
c2NvcGV9KSwKICAgICAgICAgICAnUmVnaXN0ZXJpbmcgd2l0aCB0aGUgc2NvcGUgdGhhdCBoYXMg
c2FtZS1vcmlnaW4gZmlsZXN5c3RlbTogVVJMICcgKwotICAgICAgICAgICAgICAnc2hvdWxkIGZh
aWwgd2l0aCBUeXBlRXJyb3IuJyk7CisgICAgICAgICAgICAgICdzaG91bGQgZmFpbCB3aXRoIFNl
Y3VyaXR5RXJyb3IuJyk7CiAgICAgfSwgJ1Njb3BlIFVSTCBpcyBzYW1lLW9yaWdpbiBmaWxlc3lz
dGVtOiBVUkwnKTsKIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9y
ZWdpc3RyYXRpb24tdGVzdHMtc2VjdXJpdHktZXJyb3IuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9y
ZXNvdXJjZXMvcmVnaXN0cmF0aW9uLXRlc3RzLXNlY3VyaXR5LWVycm9yLmpzCmluZGV4IGE3MmQz
YmFjMjkxYzZmNDJhY2YyNjQ5MjZiODU4YTBmMzk2NGVkNDIuLmM4NGJiNjZlMDQyZTEzNTQxNjVk
ZTNlZmQyOTFmMmFhMmI5N2I5YzUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291
cmNlcy9yZWdpc3RyYXRpb24tdGVzdHMtc2VjdXJpdHktZXJyb3IuanMKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvcmVzb3VyY2VzL3JlZ2lzdHJhdGlvbi10ZXN0cy1zZWN1cml0eS1lcnJvci5qcwpA
QCAtNzAsOSArNzAsOSBAQCBmdW5jdGlvbiByZWdpc3RyYXRpb25fdGVzdHNfc2VjdXJpdHlfZXJy
b3IocmVnaXN0ZXJfbWV0aG9kLCBjaGVja19lcnJvcl90eXBlcykgewogICAgICAgdmFyIHNjcmlw
dCA9ICdmaWxlc3lzdGVtOicgKyBub3JtYWxpemVVUkwoJ3Jlc291cmNlcy9lbXB0eS13b3JrZXIu
anMnKTsKICAgICAgIHZhciBzY29wZSA9ICdyZXNvdXJjZXMvc2NvcGUvZmlsZXN5c3RlbS1zY3Jp
cHQtdXJsJzsKICAgICAgIHJldHVybiBwcm9taXNlX3JlamVjdHModCwKLSAgICAgICAgICBjaGVj
a19lcnJvcl90eXBlcyA/IG5ldyBUeXBlRXJyb3IgOiBudWxsLAorICAgICAgICAgIGNoZWNrX2Vy
cm9yX3R5cGVzID8gJ1NlY3VyaXR5RXJyb3InIDogbnVsbCwKICAgICAgICAgICByZWdpc3Rlcl9t
ZXRob2Qoc2NyaXB0LCB7c2NvcGU6IHNjb3BlfSksCiAgICAgICAgICAgJ1JlZ2lzdGVyaW5nIGEg
c2NyaXB0IHdoaWNoIGhhcyBzYW1lLW9yaWdpbiBmaWxlc3lzdGVtOiBVUkwgc2hvdWxkICcgKwot
ICAgICAgICAgICAgICAnZmFpbCB3aXRoIFR5cGVFcnJvci4nKTsKKyAgICAgICAgICAgICAgJ2Zh
aWwgd2l0aCBTZWN1cml0eUVycm9yLicpOwogICAgIH0sICdTY3JpcHQgVVJMIGlzIHNhbWUtb3Jp
Z2luIGZpbGVzeXN0ZW06IFVSTCcpOwogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
cmVzb3VyY2VzL3Jlc291cmNlLXRpbWluZy1pZnJhbWUuc3ViLmh0bWwgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9yZXNvdXJjZXMvcmVzb3VyY2UtdGltaW5nLWlmcmFtZS5zdWIuaHRtbAppbmRleCA0MWJj
MmU3N2MxYjRhY2IzYTU3YTgzZjljOTg4OWY0ZTljNTM4MTAzLi40YjYyNjU3NmFiNDU2ZWFlMDJh
YTkyMjg4NGIwZDQ5MTdjYWVjYTE0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNv
dXJjZXMvcmVzb3VyY2UtdGltaW5nLWlmcmFtZS5zdWIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9yZXNvdXJjZXMvcmVzb3VyY2UtdGltaW5nLWlmcmFtZS5zdWIuaHRtbApAQCAtMyw4ICsz
LDggQEAKIDxzY3JpcHQgc3JjPSJkdW1teS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0icmVk
aXJlY3QucHk/UmVkaXJlY3Q9ZW1wdHkuanMiPjwvc2NyaXB0PgogPGltZyBzcmM9InNxdWFyZS5w
bmciPgotPGltZyBzcmM9Imh0dHBzOi8ve3tob3N0c1thbHRdW119fTp7e3BvcnRzW2h0dHBzXVsw
XX19L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvc3F1YXJlLnBuZyI+
Cis8aW1nIHNyYz0iaHR0cHM6Ly97e2RvbWFpbnNbd3d3MV19fTp7e3BvcnRzW2h0dHBzXVswXX19
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvc3F1YXJlLnBuZyI+CiA8
aW1nIHNyYz0ibWlzc2luZy5qcGciPgotPGltZyBzcmM9Imh0dHBzOi8ve3tob3N0c1thbHRdW119
fTp7e3BvcnRzW2h0dHBzXVswXX19L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNv
dXJjZXMvbWlzc2luZy5qcGciPgorPGltZyBzcmM9Imh0dHBzOi8ve3tkb21haW5zW3d3dzFdfX06
e3twb3J0c1todHRwc11bMF19fS9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3Vy
Y2VzL21pc3NpbmcuanBnIj4KIDxpbWcgc3JjPSdtaXNzaW5nLmpwZz9TV1Jlc3BvbmRzV2l0aEZl
dGNoJz4KIDxzY3JpcHQgc3JjPSdlbXB0eS13b3JrZXIuanMnPjwvc2NyaXB0PgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3NlcnZpY2Utd29ya2VyLWNzcC13b3JrZXIu
cHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvc2VydmljZS13b3JrZXItY3NwLXdvcmtl
ci5weQppbmRleCA5ZDJiMWYyZDgzNGY1MjM0NDdiMmNmZDM3M2JiMTc2ZjJlMGU4NTczLi41ZjA2
NDU0ZjE0NGQ1ODRkYmJlYzRlYzI0NTdmNWI1YmRkMTYxZmU2IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9yZXNvdXJjZXMvc2VydmljZS13b3JrZXItY3NwLXdvcmtlci5weQorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvc2VydmljZS13b3JrZXItY3NwLXdvcmtlci5weQpA
QCAtMTcsMTUgKzE3LDYgQEAgdGVzdChmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICAnSW1w
b3J0aW5nIHRoZSBvdGhlciBvcmlnaW5zIHNjcmlwdCBzaG91bGQgZmFpbC4nKTsKICAgfSwgJ2lt
cG9ydFNjcmlwdHMgdGVzdCBmb3IgZGVmYXVsdC1zcmMnKTsKIAotdGVzdChmdW5jdGlvbigpIHsK
LSAgICBhc3NlcnRfdGhyb3dzKEV2YWxFcnJvcigpLAotICAgICAgICAgICAgICAgICAgZnVuY3Rp
b24oKSB7IGV2YWwoJzEgKyAxJyk7IH0sCi0gICAgICAgICAgICAgICAgICAnZXZhbCgpIHNob3Vs
ZCB0aHJvdyBFdmFsRXJyb3IuJykKLSAgICBhc3NlcnRfdGhyb3dzKEV2YWxFcnJvcigpLAotICAg
ICAgICAgICAgICAgICAgZnVuY3Rpb24oKSB7IG5ldyBGdW5jdGlvbignMSArIDEnKTsgfSwKLSAg
ICAgICAgICAgICAgICAgICduZXcgRnVuY3Rpb24oKSBzaG91bGQgdGhyb3cgRXZhbEVycm9yLicp
Ci0gIH0sICdldmFsIHRlc3QgZm9yIGRlZmF1bHQtc3JjJyk7Ci0KIGFzeW5jX3Rlc3QoZnVuY3Rp
b24odCkgewogICAgIGZldGNoKGhvc3RfaW5mby5IVFRQU19SRU1PVEVfT1JJR0lOICsKICAgICAg
ICAgICBiYXNlX3BhdGgoKSArICdmZXRjaC1hY2Nlc3MtY29udHJvbC5weT9BQ0FPcmlnaW49Kics
CkBAIC03MiwxNSArNjMsNiBAQCB0ZXN0KGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICdJ
bXBvcnRpbmcgdGhlIG90aGVyIG9yaWdpbnMgc2NyaXB0IHNob3VsZCBmYWlsLicpOwogICB9LCAn
aW1wb3J0U2NyaXB0cyB0ZXN0IGZvciBzY3JpcHQtc3JjJyk7CiAKLXRlc3QoZnVuY3Rpb24oKSB7
Ci0gICAgYXNzZXJ0X3Rocm93cyhFdmFsRXJyb3IoKSwKLSAgICAgICAgICAgICAgICAgIGZ1bmN0
aW9uKCkgeyBldmFsKCcxICsgMScpOyB9LAotICAgICAgICAgICAgICAgICAgJ2V2YWwoKSBzaG91
bGQgdGhyb3cgRXZhbEVycm9yLicpCi0gICAgYXNzZXJ0X3Rocm93cyhFdmFsRXJyb3IoKSwKLSAg
ICAgICAgICAgICAgICAgIGZ1bmN0aW9uKCkgeyBuZXcgRnVuY3Rpb24oJzEgKyAxJyk7IH0sCi0g
ICAgICAgICAgICAgICAgICAnbmV3IEZ1bmN0aW9uKCkgc2hvdWxkIHRocm93IEV2YWxFcnJvci4n
KQotICB9LCAnZXZhbCB0ZXN0IGZvciBzY3JpcHQtc3JjJyk7Ci0KIGFzeW5jX3Rlc3QoZnVuY3Rp
b24odCkgewogICAgIGZldGNoKGhvc3RfaW5mby5IVFRQU19SRU1PVEVfT1JJR0lOICsKICAgICAg
ICAgICBiYXNlX3BhdGgoKSArICdmZXRjaC1hY2Nlc3MtY29udHJvbC5weT9BQ0FPcmlnaW49Kics
CkBAIC0xMjcsMTggKzEwOSw2IEBAIHRlc3QoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAg
ICdJbXBvcnRpbmcgdGhlIG90aGVyIG9yaWdpbnMgc2NyaXB0IHNob3VsZCBub3QgZmFpbC4nKTsK
ICAgfSwgJ2ltcG9ydFNjcmlwdHMgdGVzdCBmb3IgY29ubmVjdC1zcmMnKTsKIAotdGVzdChmdW5j
dGlvbigpIHsKLSAgICB2YXIgZXZhbF9mYWlsZWQgPSBmYWxzZTsKLSAgICB0cnkgewotICAgICAg
ZXZhbCgnMSArIDEnKTsKLSAgICAgIG5ldyBGdW5jdGlvbignMSArIDEnKTsKLSAgICB9IGNhdGNo
KGUpIHsKLSAgICAgIGV2YWxfZmFpbGVkID0gdHJ1ZTsKLSAgICB9Ci0gICAgYXNzZXJ0X2ZhbHNl
KGV2YWxfZmFpbGVkLAotICAgICAgICAgICAgICAgICAnY29ubmVjdC1zcmMgd2l0aG91dCB1bnNh
ZmUtZXZhbCBzaG91bGQgbm90IGJsb2NrIGV2YWwoKS4nKTsKLSAgfSwgJ2V2YWwgdGVzdCBmb3Ig
Y29ubmVjdC1zcmMnKTsKLQogYXN5bmNfdGVzdChmdW5jdGlvbih0KSB7CiAgICAgZmV0Y2goaG9z
dF9pbmZvLkhUVFBTX1JFTU9URV9PUklHSU4gKwogICAgICAgICAgIGJhc2VfcGF0aCgpICsgJ2Zl
dGNoLWFjY2Vzcy1jb250cm9sLnB5P0FDQU9yaWdpbj0qJywKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL3Jlc291cmNlcy9zZXJ2aWNlLXdvcmtlci1oZWFkZXIucHkgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9yZXNvdXJjZXMvc2VydmljZS13b3JrZXItaGVhZGVyLnB5CmluZGV4IDc0ZjU3YTcy
YTkwNDE3NjJmOWY1MDczMmQyY2U4OTBkODg5ODEwYzUuLjJlODJlNzgxMDdhZDRmNzBiM2U4OGQ3
MDAxMzkxOTVmOGE1YjAyOWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNl
cy9zZXJ2aWNlLXdvcmtlci1oZWFkZXIucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3Vy
Y2VzL3NlcnZpY2Utd29ya2VyLWhlYWRlci5weQpAQCAtMSwyMCArMSw3IEBACiBkZWYgbWFpbihy
ZXF1ZXN0LCByZXNwb25zZSk6CiAgIHNlcnZpY2Vfd29ya2VyX2hlYWRlciA9IHJlcXVlc3QuaGVh
ZGVycy5nZXQoJ3NlcnZpY2Utd29ya2VyJykKLQotICBpZiAnaGVhZGVyJyBpbiByZXF1ZXN0LkdF
VCBhbmQgc2VydmljZV93b3JrZXJfaGVhZGVyICE9ICdzY3JpcHQnOgorICBpZiBzZXJ2aWNlX3dv
cmtlcl9oZWFkZXIgPT0gJ3NjcmlwdCc6CisgICAgYm9keSA9ICcvLyBSZXF1ZXN0IGhhcyBgU2Vy
dmljZS1Xb3JrZXI6IHNjcmlwdGAgaGVhZGVyJworICAgIHJldHVybiAyMDAsIFsoJ0NvbnRlbnQt
VHlwZScsICdhcHBsaWNhdGlvbi9qYXZhc2NyaXB0JyldLCBib2R5CisgIGVsc2U6CiAgICAgcmV0
dXJuIDQwMCwgWygnQ29udGVudC1UeXBlJywgJ3RleHQvcGxhaW4nKV0sICdCYWQgUmVxdWVzdCcK
LQotICBpZiAnbm8taGVhZGVyJyBpbiByZXF1ZXN0LkdFVCBhbmQgc2VydmljZV93b3JrZXJfaGVh
ZGVyID09ICdzY3JpcHQnOgotICAgIHJldHVybiA0MDAsIFsoJ0NvbnRlbnQtVHlwZScsICd0ZXh0
L3BsYWluJyldLCAnQmFkIFJlcXVlc3QnCi0KLSAgIyBuby1jYWNoZSBpdHNlbGYgdG8gZW5zdXJl
IHRoZSB1c2VyIGFnZW50IGZpbmRzIGEgbmV3IHZlcnNpb24gZm9yIGVhY2gKLSAgIyB1cGRhdGUu
Ci0gIGhlYWRlcnMgPSBbKCdDYWNoZS1Db250cm9sJywgJ25vLWNhY2hlLCBtdXN0LXJldmFsaWRh
dGUnKSwKLSAgICAgICAgICAgICAoJ1ByYWdtYScsICduby1jYWNoZScpLAotICAgICAgICAgICAg
ICgnQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2phdmFzY3JpcHQnKV0KLSAgYm9keSA9ICcv
KiBUaGlzIGlzIGEgc2VydmljZSB3b3JrZXIgc2NyaXB0ICovXG4nCi0KLSAgaWYgJ2ltcG9ydCcg
aW4gcmVxdWVzdC5HRVQ6Ci0gICAgYm9keSArPSAiaW1wb3J0U2NyaXB0cygnJXMnKTsiICUgcmVx
dWVzdC5HRVRbJ2ltcG9ydCddCi0KLSAgcmV0dXJuIDIwMCwgaGVhZGVycywgYm9keQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3NraXAtd2FpdGluZy1pbnN0YWxsZWQt
d29ya2VyLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3NraXAtd2FpdGluZy1pbnN0
YWxsZWQtd29ya2VyLmpzCmluZGV4IDZmNzAwOGJkZGNkZmEwNDRkYmVkZDJlOGYyYWNlYjg5ZWM5
ODBhNzEuLmI0OGQ1MDJiMTM2MDY2M2I2MjA2M2I3YjBkYTBjOTZjZjYzODk5MmIgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9za2lwLXdhaXRpbmctaW5zdGFsbGVkLXdv
cmtlci5qcworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvc2tpcC13YWl0aW5nLWlu
c3RhbGxlZC13b3JrZXIuanMKQEAgLTIxLDcgKzIxLDcgQEAgc2VsZi5hZGRFdmVudExpc3RlbmVy
KCdtZXNzYWdlJywgZnVuY3Rpb24oZXZlbnQpIHsKIAogICAgICAgICAgIGlmIChzZWxmLnJlZ2lz
dHJhdGlvbi5hY3RpdmUuc3RhdGUgIT09ICdhY3RpdmF0aW5nJykgewogICAgICAgICAgICAgcG9y
dC5wb3N0TWVzc2FnZSgKLSAgICAgICAgICAgICAgICAnRkFJTDogUHJvbWlzZSBzaG91bGQgYmUg
cmVzb2x2ZWQgYmVmb3JlIFNlcnZpY2VXb3JrZXIjc3RhdGUgaXMgc2V0IHRvIGFjdGl2YXRlZCcp
OworICAgICAgICAgICAgICAgICdGQUlUTDogUHJvbWlzZSBzaG91bGQgYmUgcmVzb2x2ZWQgYmVm
b3JlIFNlcnZpY2VXb3JrZXIjc3RhdGUgaXMgc2V0IHRvIGFjdGl2YXRlZCcpOwogICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICAgIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
cmVzb3VyY2VzL3N0YWxsaW5nLXNlcnZpY2Utd29ya2VyLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
cmVzb3VyY2VzL3N0YWxsaW5nLXNlcnZpY2Utd29ya2VyLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBmZGYxZTZjYWMwNGUxNjUxZjMwZDk2MDg5N2RhODc0MGE0MGM5MTM4Li4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3Jlc291cmNlcy9zdGFsbGluZy1zZXJ2aWNlLXdvcmtlci5qcworKysgL2Rldi9udWxsCkBA
IC0xLDU0ICswLDAgQEAKLWFzeW5jIGZ1bmN0aW9uIHBvc3RfbWVzc2FnZV90b19jbGllbnQocm9s
ZSwgbWVzc2FnZSwgcG9ydHMpIHsKLSAgICAoYXdhaXQgY2xpZW50cy5tYXRjaEFsbCgpKS5mb3JF
YWNoKGNsaWVudCA9PiB7Ci0gICAgICAgIGlmIChuZXcgVVJMKGNsaWVudC51cmwpLnNlYXJjaFBh
cmFtcy5nZXQoJ3JvbGUnKSA9PT0gcm9sZSkgewotICAgICAgICAgICAgY2xpZW50LnBvc3RNZXNz
YWdlKG1lc3NhZ2UsIHBvcnRzKTsKLSAgICAgICAgfQotICAgIH0pOwotfQotCi1hc3luYyBmdW5j
dGlvbiBwb3N0X21lc3NhZ2VfdG9fY2hpbGQobWVzc2FnZSwgcG9ydHMpIHsKLSAgICBhd2FpdCBw
b3N0X21lc3NhZ2VfdG9fY2xpZW50KCdjaGlsZCcsIG1lc3NhZ2UsIHBvcnRzKTsKLX0KLQotZnVu
Y3Rpb24gcGluZ19tZXNzYWdlKGRhdGEpIHsKLSAgICByZXR1cm4geyB0eXBlOiAncGluZycsIGRh
dGEgfTsKLX0KLQotc2VsZi5vbm1lc3NhZ2UgPSBldmVudCA9PiB7Ci0gICAgY29uc3QgbWVzc2Fn
ZSA9IHBpbmdfbWVzc2FnZShldmVudC5kYXRhKTsKLSAgICBwb3N0X21lc3NhZ2VfdG9fY2hpbGQo
bWVzc2FnZSk7Ci0gICAgcG9zdF9tZXNzYWdlX3RvX3BhcmVudChtZXNzYWdlKTsKLX0KLQotYXN5
bmMgZnVuY3Rpb24gcG9zdF9tZXNzYWdlX3RvX3BhcmVudChtZXNzYWdlLCBwb3J0cykgewotICAg
IGF3YWl0IHBvc3RfbWVzc2FnZV90b19jbGllbnQoJ3BhcmVudCcsIG1lc3NhZ2UsIHBvcnRzKTsK
LX0KLQotZnVuY3Rpb24gZmV0Y2hfbWVzc2FnZShrZXkpIHsKLSAgICByZXR1cm4geyB0eXBlOiAn
ZmV0Y2gnLCBrZXkgfTsKLX0KLQotLy8gU2VuZCBhIG1lc3NhZ2UgdG8gdGhlIHBhcmVudCBhbG9u
ZyB3aXRoIGEgTWVzc2FnZVBvcnQgdG8gcmVzcG9uZAotLy8gd2l0aC4KLWZ1bmN0aW9uIHJlcG9y
dF9mZXRjaF9yZXF1ZXN0KGtleSkgewotICAgIGNvbnN0IGNoYW5uZWwgPSBuZXcgTWVzc2FnZUNo
YW5uZWwoKTsKLSAgICBjb25zdCByZXBseSA9IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gewotICAg
ICAgICBjaGFubmVsLnBvcnQxLm9ubWVzc2FnZSA9IHJlc29sdmU7Ci0gICAgfSkudGhlbihldmVu
dCA9PiBldmVudC5kYXRhKTsKLSAgICByZXR1cm4gcG9zdF9tZXNzYWdlX3RvX3BhcmVudChmZXRj
aF9tZXNzYWdlKGtleSksIFtjaGFubmVsLnBvcnQyXSkudGhlbigoKSA9PiByZXBseSk7Ci19Ci0K
LWZ1bmN0aW9uIHJlc3BvbmRfd2l0aF9zY3JpcHQoc2NyaXB0KSB7Ci0gICAgcmV0dXJuIG5ldyBS
ZXNwb25zZShuZXcgQmxvYihzY3JpcHQsIHsgdHlwZTogJ3RleHQvamF2YXNjcmlwdCcgfSkpOwot
fQotCi0vLyBXaGVuZXZlciBhIGNvbnRyb2xsZWQgZG9jdW1lbnQgcmVxdWVzdHMgYSBVUkwgd2l0
aCBhICdrZXknIHNlYXJjaAotLy8gcGFyYW1ldGVyIHdlIHJlcG9ydCB0aGUgcmVxdWVzdCB0byB0
aGUgcGFyZW50IGZyYW1lIGFuZCB3YWl0IGZvcgotLy8gYSByZXNwb25zZS4gVGhlIGNvbnRlbnQg
b2YgdGhlIHJlc3BvbnNlIGlzIHRoZW4gdXNlZCB0byByZXNwb25kIHRvCi0vLyB0aGUgZmV0Y2gg
cmVxdWVzdC4KLWFkZEV2ZW50TGlzdGVuZXIoJ2ZldGNoJywgZXZlbnQgPT4gewotICAgIGxldCBr
ZXkgPSBuZXcgVVJMKGV2ZW50LnJlcXVlc3QudXJsKS5zZWFyY2hQYXJhbXMuZ2V0KCdrZXknKTsK
LSAgICBpZiAoa2V5KSB7Ci0gICAgICAgIGV2ZW50LnJlc3BvbmRXaXRoKHJlcG9ydF9mZXRjaF9y
ZXF1ZXN0KGtleSkudGhlbihyZXNwb25kX3dpdGhfc2NyaXB0KSk7Ci0gICAgfQotfSk7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvdGVzdC1oZWxwZXJzLnN1Yi5qcyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy90ZXN0LWhlbHBlcnMuc3ViLmpzCmluZGV4IGFm
OGRhZDNhNWJlOGFhODMxOTAwYjE4M2FkN2VlOWExMDQxN2JhMWEuLjdlZmRlMzU0YThmOWIzYjE1
Nzk3MmRjYThlNWEzYzViNWViNDExNmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jl
c291cmNlcy90ZXN0LWhlbHBlcnMuc3ViLmpzCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291
cmNlcy90ZXN0LWhlbHBlcnMuc3ViLmpzCkBAIC03NSwxMSArNzUsOSBAQCBmdW5jdGlvbiB3YWl0
X2Zvcl91cGRhdGUodGVzdCwgcmVnaXN0cmF0aW9uKSB7CiAgIH0KIAogICByZXR1cm4gbmV3IFBy
b21pc2UodGVzdC5zdGVwX2Z1bmMoZnVuY3Rpb24ocmVzb2x2ZSkgewotICAgICAgdmFyIGhhbmRs
ZXIgPSB0ZXN0LnN0ZXBfZnVuYyhmdW5jdGlvbigpIHsKLSAgICAgICAgcmVnaXN0cmF0aW9uLnJl
bW92ZUV2ZW50TGlzdGVuZXIoJ3VwZGF0ZWZvdW5kJywgaGFuZGxlcik7Ci0gICAgICAgIHJlc29s
dmUocmVnaXN0cmF0aW9uLmluc3RhbGxpbmcpOwotICAgICAgfSk7Ci0gICAgICByZWdpc3RyYXRp
b24uYWRkRXZlbnRMaXN0ZW5lcigndXBkYXRlZm91bmQnLCBoYW5kbGVyKTsKKyAgICAgIHJlZ2lz
dHJhdGlvbi5hZGRFdmVudExpc3RlbmVyKCd1cGRhdGVmb3VuZCcsIHRlc3Quc3RlcF9mdW5jKGZ1
bmN0aW9uKCkgeworICAgICAgICAgIHJlc29sdmUocmVnaXN0cmF0aW9uLmluc3RhbGxpbmcpOwor
ICAgICAgICB9KSk7CiAgICAgfSkpOwogfQogCkBAIC0yNzgsMzMgKzI3NiwzIEBAIGFzeW5jIGZ1
bmN0aW9uIHdhaXRfZm9yX2FjdGl2YXRpb25fb25fZHVtbXlfc2NvcGUodCwgd2luZG93X29yX3dv
cmtlcmdsb2JhbHNjb3BlCiAgIGF3YWl0IHdhaXRfZm9yX3N0YXRlKHQsIHJlZ2lzdHJhdGlvbi5p
bnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7CiAgIGF3YWl0IHJlZ2lzdHJhdGlvbi51bnJlZ2lzdGVy
KCk7CiB9Ci0KLS8vIFRoaXMgaW5zdGFsbHMgcmVzb3VyY2VzL2FwcGNhY2hlLW9yZGVyaW5nLm1h
bmlmZXN0LgotZnVuY3Rpb24gaW5zdGFsbF9hcHBjYWNoZV9vcmRlcmluZ19tYW5pZmVzdCgpIHsK
LSAgbGV0IHJlc29sdmVfaW5zdGFsbF9hcHBjYWNoZTsKLSAgbGV0IHJlamVjdF9pbnN0YWxsX2Fw
cGNhY2hlOwotCi0gIC8vIFRoaXMgaXMgbm90aWZpZWQgYnkgdGhlIGNoaWxkIGlmcmFtZSwgaS5l
LiBhcHBjYWNoZS1vcmRlcmluZy5pbnN0YWxsLmh0bWwsCi0gIC8vIHRoYXQncyB0byBiZSBjcmVh
dGVkIGJlbG93LgotICB3aW5kb3cubm90aWZ5X2FwcGNhY2hlX2luc3RhbGxlZCA9IHN1Y2Nlc3Mg
PT4gewotICAgIGlmIChzdWNjZXNzKQotICAgICAgcmVzb2x2ZV9pbnN0YWxsX2FwcGNhY2hlKCk7
Ci0gICAgZWxzZQotICAgICAgcmVqZWN0X2luc3RhbGxfYXBwY2FjaGUoKTsKLSAgfTsKLQotICBy
ZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4gewotICAgICAgY29uc3QgZnJh
bWUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpZnJhbWUnKTsKLSAgICAgIGZyYW1lLnNyYyA9
ICdyZXNvdXJjZXMvYXBwY2FjaGUtb3JkZXJpbmcuaW5zdGFsbC5odG1sJzsKLSAgICAgIGRvY3Vt
ZW50LmJvZHkuYXBwZW5kQ2hpbGQoZnJhbWUpOwotICAgICAgcmVzb2x2ZV9pbnN0YWxsX2FwcGNh
Y2hlID0gZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChm
cmFtZSk7Ci0gICAgICAgICAgcmVzb2x2ZSgpOwotICAgICAgICB9OwotICAgICAgcmVqZWN0X2lu
c3RhbGxfYXBwY2FjaGUgPSBmdW5jdGlvbigpIHsKLSAgICAgICAgICBkb2N1bWVudC5ib2R5LnJl
bW92ZUNoaWxkKGZyYW1lKTsKLSAgICAgICAgICByZWplY3QoKTsKLSAgICAgICAgfTsKLSAgfSk7
Ci19Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy90ZXN0LXJlcXVl
c3QtaGVhZGVycy13b3JrZXIuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvdGVzdC1y
ZXF1ZXN0LWhlYWRlcnMtd29ya2VyLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3
MWFmZjVlNTAzNzQ1ZmFhMTM3NmRmYjM1OTExOTAyM2NiMWJjZmMxLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNl
cy90ZXN0LXJlcXVlc3QtaGVhZGVycy13b3JrZXIuanMKKysrIC9kZXYvbnVsbApAQCAtMSw3ICsw
LDAgQEAKLS8vIFRoZSBzZXJ2ZXIgaW5qZWN0cyB0aGUgcmVxdWVzdCBoZWFkZXJzIGhlcmUgYXMg
YSBKU09OIHN0cmluZy4KLWNvbnN0IGhlYWRlcnNBc0pzb24gPSBgJUhFQURFUlMlYDsKLWNvbnN0
IGhlYWRlcnMgPSBKU09OLnBhcnNlKGhlYWRlcnNBc0pzb24pOwotCi1zZWxmLmFkZEV2ZW50TGlz
dGVuZXIoJ21lc3NhZ2UnLCBhc3luYyAoZSkgPT4gewotICBlLnNvdXJjZS5wb3N0TWVzc2FnZSho
ZWFkZXJzKTsKLX0pOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3Rl
c3QtcmVxdWVzdC1oZWFkZXJzLXdvcmtlci5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNl
cy90ZXN0LXJlcXVlc3QtaGVhZGVycy13b3JrZXIucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDU2NjZmMTllNzkwNGIwMDdhYzVjM2U0ZWQ5NTYxN2Q5YWZmYTkyY2UuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
cmVzb3VyY2VzL3Rlc3QtcmVxdWVzdC1oZWFkZXJzLXdvcmtlci5weQorKysgL2Rldi9udWxsCkBA
IC0xLDE2ICswLDAgQEAKLWltcG9ydCBqc29uCi1pbXBvcnQgb3MKLQotZGVmIG1haW4ocmVxdWVz
dCwgcmVzcG9uc2UpOgotICBwYXRoID0gb3MucGF0aC5qb2luKG9zLnBhdGguZGlybmFtZShfX2Zp
bGVfXyksCi0gICAgICAgICAgICAgICAgICAgICAgInRlc3QtcmVxdWVzdC1oZWFkZXJzLXdvcmtl
ci5qcyIpCi0gIGJvZHkgPSBvcGVuKHBhdGgsICJyYiIpLnJlYWQoKQotCi0gIGRhdGEgPSB7a2V5
OnJlcXVlc3QuaGVhZGVyc1trZXldIGZvciBrZXksdmFsdWUgaW4gcmVxdWVzdC5oZWFkZXJzLml0
ZXJpdGVtcygpfQotICBib2R5ID0gYm9keS5yZXBsYWNlKCIlSEVBREVSUyUiLCBqc29uLmR1bXBz
KGRhdGEpKQotCi0gIGhlYWRlcnMgPSBbXQotICBoZWFkZXJzLmFwcGVuZCgoIkVUYWciLCAiZXRh
ZyIpKQotICBoZWFkZXJzLmFwcGVuZCgoIkNvbnRlbnQtVHlwZSIsICd0ZXh0L2phdmFzY3JpcHQn
KSkKLQotICByZXR1cm4gaGVhZGVycywgYm9keQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvcmVzb3VyY2VzL3RyaWNrbGUucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvdHJp
Y2tsZS5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzE5ZWNkMjFmNDUwM2NjZjJm
OTMyNmJkZjUzYzAxMDA4OWVlZTVkMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvdHJpY2tsZS5weQorKysg
L2Rldi9udWxsCkBAIC0xLDE0ICswLDAgQEAKLWltcG9ydCB0aW1lCi0KLWRlZiBtYWluKHJlcXVl
c3QsIHJlc3BvbnNlKToKLSAgICBkZWxheSA9IGZsb2F0KHJlcXVlc3QuR0VULmZpcnN0KCJtcyIs
IDUwMCkpIC8gMUUzCi0gICAgY291bnQgPSBpbnQocmVxdWVzdC5HRVQuZmlyc3QoImNvdW50Iiwg
NTApKQotICAgICMgUmVhZCByZXF1ZXN0IGJvZHkKLSAgICByZXF1ZXN0LmJvZHkKLSAgICB0aW1l
LnNsZWVwKGRlbGF5KQotICAgIHJlc3BvbnNlLmhlYWRlcnMuc2V0KCJDb250ZW50LXR5cGUiLCAi
dGV4dC9wbGFpbiIpCi0gICAgcmVzcG9uc2Uud3JpdGVfc3RhdHVzX2hlYWRlcnMoKQotICAgIHRp
bWUuc2xlZXAoZGVsYXkpOwotICAgIGZvciBpIGluIHhyYW5nZShjb3VudCk6Ci0gICAgICAgIHJl
c3BvbnNlLndyaXRlci53cml0ZV9jb250ZW50KCJURVNUX1RSSUNLTEVcbiIpCi0gICAgICAgIHRp
bWUuc2xlZXAoZGVsYXkpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMv
dXBkYXRlLWR1cmluZy1pbnN0YWxsYXRpb24td29ya2VyLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
cmVzb3VyY2VzL3VwZGF0ZS1kdXJpbmctaW5zdGFsbGF0aW9uLXdvcmtlci5qcwpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggM2Y4OTg4MWMwNDM4NDU5MGI4YjEzMmMzOTI5NzcyNTZiZmI4
NDdlZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvdXBkYXRlLWR1cmluZy1pbnN0YWxsYXRpb24td29ya2Vy
LmpzCisrKyAvZGV2L251bGwKQEAgLTEsNTcgKzAsMCBAQAotJ3VzZSBzdHJpY3QnOwotCi1jb25z
dCBpbnN0YWxsRXZlbnRGaXJlZCA9IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gewotICBzZWxmLmZp
cmVJbnN0YWxsRXZlbnQgPSByZXNvbHZlOwotfSk7Ci0KLWNvbnN0IGluc3RhbGxGaW5pc2hlZCA9
IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gewotICBzZWxmLmZpbmlzaEluc3RhbGwgPSByZXNvbHZl
OwotfSk7Ci0KLWFkZEV2ZW50TGlzdGVuZXIoJ2luc3RhbGwnLCBldmVudCA9PiB7Ci0gIGZpcmVJ
bnN0YWxsRXZlbnQoKTsKLSAgZXZlbnQud2FpdFVudGlsKGluc3RhbGxGaW5pc2hlZCk7Ci19KTsK
LQotYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIGV2ZW50ID0+IHsKLSAgLy8gVXNlIGEgZGVk
aWNhdGVkIE1lc3NhZ2VDaGFubmVsIGZvciBldmVyeSByZXF1ZXN0IHNvIHNlbmRlcnMgY2FuIHdh
aXQgZm9yCi0gIC8vIGluZGl2aWR1YWwgcmVxdWVzdHMgdG8gZmluaXNoLCBhbmQgY29uY3VycmVu
dCByZXF1ZXN0cyAodG8gZGlmZmVyZW50Ci0gIC8vIHdvcmtlcnMpIGRvbid0IGNhdXNlIHJhY2Ug
Y29uZGl0aW9ucy4KLSAgY29uc3QgcG9ydCA9IGV2ZW50LmRhdGE7Ci0gIHBvcnQub25tZXNzYWdl
ID0gKGV2ZW50KSA9PiB7Ci0gICAgc3dpdGNoIChldmVudC5kYXRhKSB7Ci0gICAgICBjYXNlICdh
d2FpdEluc3RhbGxFdmVudCc6Ci0gICAgICAgIGluc3RhbGxFdmVudEZpcmVkLnRoZW4oKCkgPT4g
ewotICAgICAgICAgICAgcG9ydC5wb3N0TWVzc2FnZSgnaW5zdGFsbEV2ZW50RmlyZWQnKTsKLSAg
ICAgICAgfSk7Ci0gICAgICAgIGJyZWFrOwotCi0gICAgICBjYXNlICdmaW5pc2hJbnN0YWxsJzoK
LSAgICAgICAgaW5zdGFsbEZpbmlzaGVkLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgcG9ydC5w
b3N0TWVzc2FnZSgnaW5zdGFsbEZpbmlzaGVkJyk7Ci0gICAgICAgIH0pOwotICAgICAgICBmaW5p
c2hJbnN0YWxsKCk7Ci0gICAgICAgIGJyZWFrOwotCi0gICAgICBjYXNlICdjYWxsVXBkYXRlJzog
ewotICAgICAgICBjb25zdCBjaGFubmVsID0gbmV3IE1lc3NhZ2VDaGFubmVsKCk7Ci0gICAgICAg
IHJlZ2lzdHJhdGlvbi51cGRhdGUoKS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGNoYW5uZWwu
cG9ydDIucG9zdE1lc3NhZ2UoewotICAgICAgICAgICAgICAgIHN1Y2Nlc3M6IHRydWUsCi0gICAg
ICAgICAgICB9KTsKLSAgICAgICAgfSkuY2F0Y2goKGV4Y2VwdGlvbikgPT4gewotICAgICAgICAg
ICAgY2hhbm5lbC5wb3J0Mi5wb3N0TWVzc2FnZSh7Ci0gICAgICAgICAgICAgICAgc3VjY2Vzczog
ZmFsc2UsCi0gICAgICAgICAgICAgICAgZXhjZXB0aW9uOiBleGNlcHRpb24ubmFtZSwKLSAgICAg
ICAgICAgIH0pOwotICAgICAgICB9KTsKLSAgICAgICAgcG9ydC5wb3N0TWVzc2FnZShjaGFubmVs
LnBvcnQxLCBbY2hhbm5lbC5wb3J0MV0pOwotICAgICAgICBicmVhazsKLSAgICAgIH0KLQotICAg
ICAgZGVmYXVsdDoKLSAgICAgICAgcG9ydC5wb3N0TWVzc2FnZSgnVW5leHBlY3RlZCBjb21tYW5k
ICcgKyBldmVudC5kYXRhKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotICB9OwotfSk7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvdXBkYXRlLWR1cmluZy1pbnN0YWxs
YXRpb24td29ya2VyLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3VwZGF0ZS1kdXJp
bmctaW5zdGFsbGF0aW9uLXdvcmtlci5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
OTVlNDUyMjAwN2MxZDJiZTE0MDQ1Zjc1ODJlYmUyYjUzNDdhYmQ4Ny4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJj
ZXMvdXBkYXRlLWR1cmluZy1pbnN0YWxsYXRpb24td29ya2VyLnB5CisrKyAvZGV2L251bGwKQEAg
LTEsMTEgKzAsMCBAQAotaW1wb3J0IHRpbWUKLQotZGVmIG1haW4ocmVxdWVzdCwgcmVzcG9uc2Up
OgotICAgIGhlYWRlcnMgPSBbKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vamF2YXNjcmlw
dCcpLAotICAgICAgICAgICAgICAgKCdDYWNoZS1Db250cm9sJywgJ21heC1hZ2U9MCcpXQotICAg
ICMgQWRkIHRpbWVzdGFtcCB0byB0aGUgd29ya2VyIHNvIHVwZGF0ZSgpIGZpbmRzIGEgbmV3IHdv
cmtlciBldmVyeSB0aW1lLgotICAgIGJvZHkgPSAnJycKLS8vICVzCi1pbXBvcnRTY3JpcHRzKCd1
cGRhdGUtZHVyaW5nLWluc3RhbGxhdGlvbi13b3JrZXIuanMnKTsKLSAgICAnJycuc3RyaXAoKSAl
IHRpbWUuY2xvY2soKQotICAgIHJldHVybiBoZWFkZXJzLCBib2R5CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvdXBkYXRlLWZldGNoLXdvcmtlci5weSBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL3Jlc291cmNlcy91cGRhdGUtZmV0Y2gtd29ya2VyLnB5CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBmMjhlMWMwOTRlNTAxZDE4MzdkYzc1ODVlNDRiOWI5ZTkzOGUzMzQ0
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL3Jlc291cmNlcy91cGRhdGUtZmV0Y2gtd29ya2VyLnB5CisrKyAvZGV2L251bGwK
QEAgLTEsMTkgKzAsMCBAQAotaW1wb3J0IHRpbWUKLQotZGVmIG1haW4ocmVxdWVzdCwgcmVzcG9u
c2UpOgotICAgICMgbm8tY2FjaGUgaXRzZWxmIHRvIGVuc3VyZSB0aGUgdXNlciBhZ2VudCBmaW5k
cyBhIG5ldyB2ZXJzaW9uIGZvciBlYWNoIHVwZGF0ZS4KLSAgICBoZWFkZXJzID0gWygnQ2FjaGUt
Q29udHJvbCcsICduby1jYWNoZSwgbXVzdC1yZXZhbGlkYXRlJyksCi0gICAgICAgICAgICAgICAo
J1ByYWdtYScsICduby1jYWNoZScpXQotCi0gICAgY29udGVudF90eXBlID0gJycKLSAgICBleHRy
YV9ib2R5ID0gJycKLQotICAgIGNvbnRlbnRfdHlwZSA9ICdhcHBsaWNhdGlvbi9qYXZhc2NyaXB0
JwotICAgIGhlYWRlcnMuYXBwZW5kKCgnQ29udGVudC1UeXBlJywgY29udGVudF90eXBlKSkKLQot
ICAgIGV4dHJhX2JvZHkgPSAic2VsZi5vbmZldGNoID0gKGV2ZW50KSA9PiB7IGV2ZW50LnJlc3Bv
bmRXaXRoKGZldGNoKGV2ZW50LnJlcXVlc3QpKTsgfTsiCi0KLSAgICAjIFJldHVybiBhIGRpZmZl
cmVudCBzY3JpcHQgZm9yIGVhY2ggYWNjZXNzLiAgVXNlIC50aW1lKCkgYW5kIC5jbG9jaygpIGZv
cgotICAgICMgYmVzdCB0aW1lIHJlc29sdXRpb24gYWNyb3NzIGRpZmZlcmVudCBwbGF0Zm9ybXMu
Ci0gICAgcmV0dXJuIGhlYWRlcnMsICcvKiAlcyAlcyAqLyAlcycgJSAodGltZS50aW1lKCksIHRp
bWUuY2xvY2soKSwgZXh0cmFfYm9keSkKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
cmVzb3VyY2VzL3VwZGF0ZS1taXNzaW5nLWltcG9ydC1zY3JpcHRzLWltcG9ydGVkLXdvcmtlci5w
eSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy91cGRhdGUtbWlzc2luZy1pbXBvcnQtc2Ny
aXB0cy1pbXBvcnRlZC13b3JrZXIucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJk
OTUzODdmYzkyMzNlZDEyZmEyNmIzNmYwNmE5OWY5Nzc1ZWQwOGIuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2Vz
L3VwZGF0ZS1taXNzaW5nLWltcG9ydC1zY3JpcHRzLWltcG9ydGVkLXdvcmtlci5weQorKysgL2Rl
di9udWxsCkBAIC0xLDkgKzAsMCBAQAotZGVmIG1haW4ocmVxdWVzdCwgcmVzcG9uc2UpOgotICAg
IGtleSA9IHJlcXVlc3QuR0VUWydrZXknXQotICAgIGFscmVhZHlfcmVxdWVzdGVkID0gcmVxdWVz
dC5zZXJ2ZXIuc3Rhc2gudGFrZShrZXkpCi0KLSAgICBpZiBhbHJlYWR5X3JlcXVlc3RlZCBpcyBO
b25lOgotICAgICAgICByZXF1ZXN0LnNlcnZlci5zdGFzaC5wdXQoa2V5LCBUcnVlKQotICAgICAg
ICByZXR1cm4gWygnQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2phdmFzY3JpcHQnKV0sICcv
LyBpbml0aWFsIHNjcmlwdCcKLQotICAgIHJlc3BvbnNlLnN0YXR1cyA9ICg0MDQsICdOb3QgZm91
bmQ6IHNob3VsZCBub3QgaGF2ZSBiZWVuIGFibGUgdG8gaW1wb3J0IHRoaXMgc2NyaXB0IHR3aWNl
IScpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvdXBkYXRlLW1pc3Np
bmctaW1wb3J0LXNjcmlwdHMtbWFpbi13b3JrZXIucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNv
dXJjZXMvdXBkYXRlLW1pc3NpbmctaW1wb3J0LXNjcmlwdHMtbWFpbi13b3JrZXIucHkKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGIxZDJmNmZjYjc4MjcxYmY1MzNlYzhlYzRhYTQxNWMy
MWM4ZDE1YzIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3VwZGF0ZS1taXNzaW5nLWltcG9ydC1zY3JpcHRz
LW1haW4td29ya2VyLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMTMgKzAsMCBAQAotZGVmIG1haW4o
cmVxdWVzdCwgcmVzcG9uc2UpOgotICAgIGtleSA9IHJlcXVlc3QuR0VUWydrZXknXQotICAgIGFs
cmVhZHlfcmVxdWVzdGVkID0gcmVxdWVzdC5zZXJ2ZXIuc3Rhc2gudGFrZShrZXkpCi0KLSAgICBo
ZWFkZXIgPSBbKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vamF2YXNjcmlwdCcpXQotICAg
IGluaXRpYWxfc2NyaXB0ID0gJ2ltcG9ydFNjcmlwdHMoIi4vdXBkYXRlLW1pc3NpbmctaW1wb3J0
LXNjcmlwdHMtaW1wb3J0ZWQtd29ya2VyLnB5P2tleT17MH0iKScuZm9ybWF0KGtleSkKLSAgICB1
cGRhdGVkX3NjcmlwdCA9ICcvLyByZW1vdmVkIGltcG9ydFNjcmlwdHMoKScKLQotICAgIGlmIGFs
cmVhZHlfcmVxdWVzdGVkIGlzIE5vbmU6Ci0gICAgICAgIHJlcXVlc3Quc2VydmVyLnN0YXNoLnB1
dChrZXksIFRydWUpCi0gICAgICAgIHJldHVybiBoZWFkZXIsIGluaXRpYWxfc2NyaXB0Ci0KLSAg
ICByZXR1cm4gaGVhZGVyLCB1cGRhdGVkX3NjcmlwdApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvcmVzb3VyY2VzL3VwZGF0ZS1yZWdpc3RyYXRpb24td2l0aC10eXBlLnB5IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvcmVzb3VyY2VzL3VwZGF0ZS1yZWdpc3RyYXRpb24td2l0aC10eXBlLnB5CmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0ZjZkNWFlMjgyMDBlMDljYmEwZTI1YzI3Njkx
NjhiYzE2MjJhMzYwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy91cGRhdGUtcmVnaXN0cmF0aW9uLXdpdGgt
dHlwZS5weQorKysgL2Rldi9udWxsCkBAIC0xLDMzICswLDAgQEAKLWRlZiBjbGFzc2ljX3Njcmlw
dCgpOgotICAgIHJldHVybiAiIiIKLSAgICAgIGltcG9ydFNjcmlwdHMoJy4vaW1wb3J0ZWQtY2xh
c3NpYy1zY3JpcHQuanMnKTsKLSAgICAgIHNlbGYub25tZXNzYWdlID0gZSA9PiB7Ci0gICAgICAg
IGUuc291cmNlLnBvc3RNZXNzYWdlKGltcG9ydGVkKTsKLSAgICAgIH07Ci0gICAgICAiIiIKLQot
ZGVmIG1vZHVsZV9zY3JpcHQoKToKLSAgICByZXR1cm4gIiIiCi0gICAgICBpbXBvcnQgKiBhcyBt
b2R1bGUgZnJvbSAnLi9pbXBvcnRlZC1tb2R1bGUtc2NyaXB0LmpzJzsKLSAgICAgIHNlbGYub25t
ZXNzYWdlID0gZSA9PiB7Ci0gICAgICAgIGUuc291cmNlLnBvc3RNZXNzYWdlKG1vZHVsZS5pbXBv
cnRlZCk7Ci0gICAgICB9OwotICAgICAgIiIiCi0KLSMgUmV0dXJucyB0aGUgY2xhc3NpYyBzY3Jp
cHQgZm9yIGEgZmlyc3QgcmVxdWVzdCBhbmQKLSMgcmV0dXJucyB0aGUgbW9kdWxlIHNjcmlwdCBm
b3Igc2Vjb25kIGFuZCBzdWJzZXF1ZW50IHJlcXVlc3RzLgotZGVmIG1haW4ocmVxdWVzdCwgcmVz
cG9uc2UpOgotICAgIGhlYWRlcnMgPSBbKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vamF2
YXNjcmlwdCcpLAotICAgICAgICAgICAgICAgKCdQcmFnbWEnLCAnbm8tc3RvcmUnKSwKLSAgICAg
ICAgICAgICAgICgnQ2FjaGUtQ29udHJvbCcsICduby1zdG9yZScpXQotCi0gICAgY2xhc3NpY19m
aXJzdCA9IHJlcXVlc3QuR0VUWydjbGFzc2ljX2ZpcnN0J10KLSAgICBrZXkgPSByZXF1ZXN0LkdF
VFsna2V5J10KLSAgICByZXF1ZXN0ZWRfb25jZSA9IHJlcXVlc3Quc2VydmVyLnN0YXNoLnRha2Uo
a2V5KQotICAgIGlmIHJlcXVlc3RlZF9vbmNlIGlzIE5vbmU6Ci0gICAgICAgIHJlcXVlc3Quc2Vy
dmVyLnN0YXNoLnB1dChrZXksIFRydWUpCi0gICAgICAgIGJvZHkgPSBjbGFzc2ljX3NjcmlwdCgp
IGlmIGNsYXNzaWNfZmlyc3QgPT0gJzEnIGVsc2UgbW9kdWxlX3NjcmlwdCgpCi0gICAgZWxzZToK
LSAgICAgICAgYm9keSA9IG1vZHVsZV9zY3JpcHQoKSBpZiBjbGFzc2ljX2ZpcnN0ID09ICcxJyBl
bHNlIGNsYXNzaWNfc2NyaXB0KCkKLQotICAgIHJldHVybiAyMDAsIGhlYWRlcnMsIGJvZHkKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy93M2MtaW1wb3J0LmxvZyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy93M2MtaW1wb3J0LmxvZwppbmRleCA5ZWJjOGJjMzFm
ZmNjZGU3NzM2M2U5ODYxMTczZDI1ZTc1YTJkMjAyLi5hMWY3NTA5NzFhOWUzMjcxYzIwYWRkNDFk
OTJjNzRjMjJmNGY2MGU3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMv
dzNjLWltcG9ydC5sb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3czYy1pbXBv
cnQubG9nCkBAIC0zOCw3ICszOCw2IEBAIExpc3Qgb2YgZmlsZXM6CiAvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvcmVzb3VyY2VzL2NsYWltLXdvcmtlci1mZXRjaC1pZnJhbWUuaHRtbAogL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL3Jlc291cmNlcy9jbGFpbS13b3JrZXItZmV0Y2gtd29ya2VyLmpzCiAvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvcmVzb3VyY2VzL2NsYWltLXdvcmtlci5qcwotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jl
c291cmNlcy9jbGFzc2ljLXdvcmtlci5qcwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9j
bGllbnQtaWQtd29ya2VyLmpzCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2NsaWVudC1u
YXZpZ2F0ZS1mcmFtZS5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2NsaWVudC1u
YXZpZ2F0ZS13b3JrZXIuanMKQEAgLTUwLDcgKzQ5LDYgQEAgTGlzdCBvZiBmaWxlczoKIC9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvY2xpZW50cy1nZXQtY3Jvc3Mtb3JpZ2luLWZyYW1lLmh0
bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvY2xpZW50cy1nZXQtZnJhbWUuaHRtbAog
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9jbGllbnRzLWdldC1vdGhlci1vcmlnaW4uaHRt
bAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9jbGllbnRzLWdldC1yZXN1bHRpbmdDbGll
bnRJZC13b3JrZXIuanMKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvY2xpZW50cy1nZXQt
d29ya2VyLmpzCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2NsaWVudHMtbWF0Y2hhbGwt
Y2xpZW50LXR5cGVzLWRlZGljYXRlZC13b3JrZXIuanMKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNv
dXJjZXMvY2xpZW50cy1tYXRjaGFsbC1jbGllbnQtdHlwZXMtaWZyYW1lLmh0bWwKQEAgLTc3LDcg
Kzc1LDYgQEAgTGlzdCBvZiBmaWxlczoKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZW1w
dHktd29ya2VyLmpzCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2VtcHR5Lmh0bWwKIC9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZW1wdHkuanMKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9y
ZXNvdXJjZXMvZW5hYmxlLWNsaWVudC1tZXNzYWdlLXF1ZXVlLmh0bWwKIC9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9yZXNvdXJjZXMvZW5kLXRvLWVuZC13b3JrZXIuanMKIC9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9y
ZXNvdXJjZXMvZXZlbnRzLXdvcmtlci5qcwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9l
eHRlbmRhYmxlLWV2ZW50LWFzeW5jLXdhaXR1bnRpbC5qcwpAQCAtODUsNyArODIsNiBAQCBMaXN0
IG9mIGZpbGVzOgogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mYWlsLW9uLWZldGNoLXdv
cmtlci5qcwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1hY2Nlc3MtY29udHJv
bC1sb2dpbi5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWFjY2Vzcy1j
b250cm9sLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWNhbnZhcy10YWlu
dGluZy1kb3VibGUtd3JpdGUtd29ya2VyLmpzCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2Vz
L2ZldGNoLWNhbnZhcy10YWludGluZy1pZnJhbWUuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jl
c291cmNlcy9mZXRjaC1jYW52YXMtdGFpbnRpbmctdGVzdHMuanMKIC9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9yZXNvdXJjZXMvZmV0Y2gtY29ycy1leHBvc2VkLWhlYWRlci1uYW1lcy13b3JrZXIuanMKQEAg
LTE0NiwyMyArMTQyLDE2IEBAIExpc3Qgb2YgZmlsZXM6CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVz
b3VyY2VzL2ZldGNoLXJld3JpdGUtd29ya2VyLmpzCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3Vy
Y2VzL2ZldGNoLXdhaXRzLWZvci1hY3RpdmF0ZS13b3JrZXIuanMKIC9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9yZXNvdXJjZXMvZnJhbWUtZm9yLWdldHJlZ2lzdHJhdGlvbnMuaHRtbAotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL3Jlc291cmNlcy9nZXQtcmVzdWx0aW5nQ2xpZW50SWQtd29ya2VyLmpzCiAvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvcmVzb3VyY2VzL2h0dHAtdG8taHR0cHMtcmVkaXJlY3QtYW5kLXJlZ2lzdGVy
LWlmcmFtZS5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2lmcmFtZS13aXRoLWlt
YWdlLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvaW1tdXRhYmxlLXByb3RvdHlw
ZS1zZXJ2aWNld29ya2VyLmpzCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ltcG9ydC1t
aW1lLXR5cGUtd29ya2VyLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ltcG9ydC1y
ZWxhdGl2ZS54c2wKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvaW1wb3J0LXNjcmlwdHMt
ZGlmZi1yZXNvdXJjZS1tYXAtd29ya2VyLmpzCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2Vz
L2ltcG9ydC1zY3JpcHRzLWVjaG8ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvaW1w
b3J0LXNjcmlwdHMtZ2V0LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ltcG9ydC1z
Y3JpcHRzLW1pbWUtdHlwZXMtd29ya2VyLmpzCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2Vz
L2ltcG9ydC1zY3JpcHRzLXJlZGlyZWN0LWltcG9ydC5qcwogL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jl
c291cmNlcy9pbXBvcnQtc2NyaXB0cy1yZWRpcmVjdC13b3JrZXIuanMKIC9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9yZXNvdXJjZXMvaW1wb3J0LXNjcmlwdHMtcmVzb3VyY2UtbWFwLXdvcmtlci5qcwogL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9pbXBvcnQtc2NyaXB0cy11cGRhdGVkLWZsYWctd29y
a2VyLmpzCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ltcG9ydC1zY3JpcHRzLXZlcnNp
b24ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvaW1wb3J0ZWQtY2xhc3NpYy1zY3Jp
cHQuanMKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvaW1wb3J0ZWQtbW9kdWxlLXNjcmlw
dC5qcwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9pbmRleGVkZGItd29ya2VyLmpzCiAv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2luc3RhbGwtZXZlbnQtdHlwZS13b3JrZXIuanMK
IC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvaW5zdGFsbC13b3JrZXIuaHRtbApAQCAtMTgx
LDExICsxNzAsOSBAQCBMaXN0IG9mIGZpbGVzOgogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNl
cy9sb2NhbC11cmwtaW5oZXJpdC1jb250cm9sbGVyLXdvcmtlci5qcwogL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3Jlc291cmNlcy9tYWxmb3JtZWQtaHR0cC1yZXNwb25zZS5hc2lzCiAvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvcmVzb3VyY2VzL21hbGZvcm1lZC13b3JrZXIucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9y
ZXNvdXJjZXMvbWVzc2FnZS12cy1taWNyb3Rhc2suaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jl
c291cmNlcy9taW1lLXNuaWZmaW5nLXdvcmtlci5qcwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291
cmNlcy9taW1lLXR5cGUtd29ya2VyLnB5CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL21p
bnQtbmV3LXdvcmtlci5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9tb2R1bGUtd29y
a2VyLmpzCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL211bHRpcGFydC1pbWFnZS1pZnJh
bWUuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9tdWx0aXBhcnQtaW1hZ2Utd29y
a2VyLmpzCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL211bHRpcGFydC1pbWFnZS5weQpA
QCAtMTk5LDcgKzE4Niw2IEBAIExpc3Qgb2YgZmlsZXM6CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVz
b3VyY2VzL25hdmlnYXRpb24tcmVkaXJlY3QtdG8taHR0cC1pZnJhbWUuaHRtbAogL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL3Jlc291cmNlcy9uYXZpZ2F0aW9uLXJlZGlyZWN0LXRvLWh0dHAtd29ya2VyLmpz
CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL25hdmlnYXRpb24tdGltaW5nLXdvcmtlci5q
cwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9uZXN0ZWQtaWZyYW1lLXBhcmVudC5odG1s
CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL25lc3RlZF9sb2FkX3dvcmtlci5qcwogL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9ub3RpZmljYXRpb25faWNvbi5weQogL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL3Jlc291cmNlcy9vYmplY3QtaW1hZ2UtaXMtbm90LWludGVyY2VwdGVkLWlmcmFt
ZS5odG1sCkBAIC0yMjUsNyArMjExLDYgQEAgTGlzdCBvZiBmaWxlczoKIC9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9yZXNvdXJjZXMvcGVyZm9ybWFuY2UtdGltZWxpbmUtd29ya2VyLmpzCiAvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvcmVzb3VyY2VzL3Bvc3RtZXNzYWdlLWJsb2ItdXJsLmpzCiAvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvcmVzb3VyY2VzL3Bvc3RtZXNzYWdlLWRpY3Rpb25hcnktdHJhbnNmZXJhYmxlcy13b3Jr
ZXIuanMKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvcG9zdG1lc3NhZ2UtZWNoby13b3Jr
ZXIuanMKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvcG9zdG1lc3NhZ2UtbXNncG9ydC10
by1jbGllbnQtd29ya2VyLmpzCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3Bvc3RtZXNz
YWdlLXRvLWNsaWVudC13b3JrZXIuanMKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvcG9z
dG1lc3NhZ2UtdHJhbnNmZXJhYmxlcy13b3JrZXIuanMKQEAgLTI3NiwyNSArMjYxLDE1IEBAIExp
c3Qgb2YgZmlsZXM6CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3NraXAtd2FpdGluZy13
b3JrZXIuanMKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvc3F1YXJlLnBuZwogL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL3Jlc291cmNlcy9zcXVhcmUucG5nLnN1Yi5oZWFkZXJzCi0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvcmVzb3VyY2VzL3N0YWxsaW5nLXNlcnZpY2Utd29ya2VyLmpzCiAvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvcmVzb3VyY2VzL3N1Y2Nlc3MucHkKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJj
ZXMvdGVzdC1oZWxwZXJzLnN1Yi5qcwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy90ZXN0
LXJlcXVlc3QtaGVhZGVycy13b3JrZXIuanMKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMv
dGVzdC1yZXF1ZXN0LWhlYWRlcnMtd29ya2VyLnB5CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzLWhlbHBlcnMuanMKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMv
dHJpY2tsZS5weQogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy91bnJlZ2lzdGVyLWNvbnRy
b2xsZXItcGFnZS5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3VwZGF0ZS1jbGFp
bS13b3JrZXIucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvdXBkYXRlLWR1cmluZy1p
bnN0YWxsYXRpb24td29ya2VyLmpzCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3VwZGF0
ZS1kdXJpbmctaW5zdGFsbGF0aW9uLXdvcmtlci5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291
cmNlcy91cGRhdGUtZmV0Y2gtd29ya2VyLnB5CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2Vz
L3VwZGF0ZS1tYXgtYWdlZC13b3JrZXItaW1wb3J0ZWQtc2NyaXB0LnB5CiAvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvcmVzb3VyY2VzL3VwZGF0ZS1tYXgtYWdlZC13b3JrZXIucHkKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9yZXNvdXJjZXMvdXBkYXRlLW1pc3NpbmctaW1wb3J0LXNjcmlwdHMtaW1wb3J0ZWQtd29y
a2VyLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3VwZGF0ZS1taXNzaW5nLWltcG9y
dC1zY3JpcHRzLW1haW4td29ya2VyLnB5CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3Vw
ZGF0ZS1ub2Nvb2tpZS13b3JrZXIucHkKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvdXBk
YXRlLXJlY292ZXJ5LXdvcmtlci5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy91cGRh
dGUtcmVnaXN0cmF0aW9uLXdpdGgtdHlwZS5weQogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNl
cy91cGRhdGUtd29ya2VyLnB5CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3VwZGF0ZV9z
aGVsbC5weQogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy92dHQtZnJhbWUuaHRtbApAQCAt
MzEwLDggKzI4NSwzIEBAIExpc3Qgb2YgZmlsZXM6CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3Vy
Y2VzL3dvcmtlci1sb2FkLWludGVyY2VwdG9yLmpzCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3Vy
Y2VzL3dvcmtlci10ZXN0aGFybmVzcy5qcwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy93
b3JrZXJfaW50ZXJjZXB0aW9uX3JlZGlyZWN0X3dlYndvcmtlci5weQotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3Jlc291cmNlcy94aHItaWZyYW1lLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJj
ZXMveGhyLXJlc3BvbnNlLXVybC13b3JrZXIuanMKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJj
ZXMveHNsLWJhc2UtdXJsLWlmcmFtZS54bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMv
eHNsLWJhc2UtdXJsLXdvcmtlci5qcwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy94c2x0
LXBhc3MueHNsCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvd29ya2Vy
LWludGVyY2VwdGlvbi1pZnJhbWUuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291
cmNlcy93b3JrZXItaW50ZXJjZXB0aW9uLWlmcmFtZS5odHRwcy5odG1sCmluZGV4IDg0MjA0YTNl
ZTVkZjFmYzNhNzE3ODQyMTUwNzFiMTRmMGM2NWY5ZjIuLmFiMTBhMDc4ZjNkNjdhOGMyMTNiODUx
MWI4ZmY1ZmZjZGU5MjM3NWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNl
cy93b3JrZXItaW50ZXJjZXB0aW9uLWlmcmFtZS5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL3Jlc291cmNlcy93b3JrZXItaW50ZXJjZXB0aW9uLWlmcmFtZS5odHRwcy5odG1sCkBA
IC0xLDUgKzEsNCBAQAogPHNjcmlwdCBzcmM9Ii9jb21tb24vZ2V0LWhvc3QtaW5mby5zdWIuanMi
Pjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2Ny
aXB0PgogPHNjcmlwdCBzcmM9InRlc3QtaGVscGVycy5zdWIuanM/cGlwZT1zdWIiPjwvc2NyaXB0
PgogPHNjcmlwdD4KIHZhciBob3N0X2luZm8gPSBnZXRfaG9zdF9pbmZvKCk7CkBAIC0xMiw3ICsx
MSw3IEBAIGZ1bmN0aW9uIGJvaWxlcnBsYXRlX3Rlc3QodXJsLCBtc2cpIHsKICAgICAgICAgICB3
b3JrZXIucG9zdE1lc3NhZ2UobXNnKTsKICAgICAgICAgfSkKICAgICAgIC50aGVuKGZ1bmN0aW9u
KGRhdGEpIHsKLSAgICAgICAgICBhc3NlcnRfZXF1YWxzKGRhdGEsICJUaGlzIGxvYWQgd2FzIHN1
Y2Nlc3NmdWxseSBpbnRlcmNlcHRlZC4iKTsKKyAgICAgICAgICB3aW5kb3cucGFyZW50LnBvc3RN
ZXNzYWdlKHtyZXN1bHRzOiBkYXRhfSwgaG9zdF9pbmZvWydIVFRQU19PUklHSU4nXSk7CiAgICAg
ICAgIH0pOwogfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvd29y
a2VyLWxvYWQtaW50ZXJjZXB0b3IuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvd29y
a2VyLWxvYWQtaW50ZXJjZXB0b3IuanMKaW5kZXggYTVmNjVjMzIxNmU0NDYzMmZmMDUyYmFjMDQ0
ODMxNmYyNWQ0NDNjNi4uNjk1Nzc3YTUxNGY2NTYyOGIyNWY3NjU0OTk3MGRkZmJjODU0ZmVlMyAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3dvcmtlci1sb2FkLWludGVy
Y2VwdG9yLmpzCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy93b3JrZXItbG9hZC1p
bnRlcmNlcHRvci5qcwpAQCAtOCw4ICs4LDYgQEAgc2VsZi5vbmZldGNoID0gZnVuY3Rpb24oZXZl
bnQpIHsKICAgICBpZiAodXJsLmluZGV4T2YoInN5bnRoZXNpemVkLXJlc3BvbnNlLnR4dCIpICE9
IC0xKSB7CiAgICAgICAgIGV2ZW50LnJlc3BvbmRXaXRoKG5ldyBSZXNwb25zZShyZXNwb25zZV90
ZXh0KSk7CiAgICAgfSBlbHNlIGlmICh1cmwuaW5kZXhPZigic3ludGhlc2l6ZWQtcmVzcG9uc2Uu
anMiKSAhPSAtMSkgewotICAgICAgZXZlbnQucmVzcG9uZFdpdGgobmV3IFJlc3BvbnNlKAotICAg
ICAgICAgIHJlc3BvbnNlX3NjcmlwdCwKLSAgICAgICAgICB7aGVhZGVyczogeydDb250ZW50LVR5
cGUnOiAnYXBwbGljYXRpb24vamF2YXNjcmlwdCd9fSkpOworICAgICAgICBldmVudC5yZXNwb25k
V2l0aChuZXcgUmVzcG9uc2UocmVzcG9uc2Vfc2NyaXB0KSk7CiAgICAgfQogfTsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy93b3JrZXItdGVzdGhhcm5lc3MuanMgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvd29ya2VyLXRlc3RoYXJuZXNzLmpzCmluZGV4IDcz
ZTk3YmUxZWFhNDRiYmU5NmY4ODAxZTBjNzZjMzc3NzJhYzdkMWYuLmZkZjU4NjhlMzNlMmZlMzUz
NDQ4MThlYzNmMWEyZTA2OGI5MDk5NmQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jl
c291cmNlcy93b3JrZXItdGVzdGhhcm5lc3MuanMKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVz
b3VyY2VzL3dvcmtlci10ZXN0aGFybmVzcy5qcwpAQCAtMjAsNyArMjAsNyBAQCBpbXBvcnRTY3Jp
cHRzKCcvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzJyk7CiAgICAgdmFyIGNhY2hlX25hbWUgPSBz
ZWxmLmxvY2F0aW9uLnBhdGhuYW1lICsgJy8nICsgdW5pcXVpZmllcjsKIAogICAgIHRlc3QuYWRk
X2NsZWFudXAoZnVuY3Rpb24oKSB7Ci0gICAgICAgIHJldHVybiBzZWxmLmNhY2hlcy5kZWxldGUo
Y2FjaGVfbmFtZSk7CisgICAgICAgIHNlbGYuY2FjaGVzLmRlbGV0ZShjYWNoZV9uYW1lKTsKICAg
ICAgIH0pOwogCiAgICAgcmV0dXJuIHNlbGYuY2FjaGVzLmRlbGV0ZShjYWNoZV9uYW1lKQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3hoci1pZnJhbWUuaHRtbCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy94aHItaWZyYW1lLmh0bWwKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDRjNTdiYmJjNjU4OWQ5NzM4OTI0YjBhY2I5MWI0NDBlZmMxNDE2MjIu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvcmVzb3VyY2VzL3hoci1pZnJhbWUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDIz
ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHRpdGxl
PmlmcmFtZSBmb3IgeGhyIHRlc3RzPC90aXRsZT4KLTxzY3JpcHQ+Ci1hc3luYyBmdW5jdGlvbiB4
aHIodXJsLCBvcHRpb25zKSB7Ci0gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0
KSA9PiB7Ci0gICAgY29uc3QgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7Ci0gICAgY29uc3Qg
b3B0cyA9IG9wdGlvbnMgPyBvcHRpb25zIDoge307Ci0gICAgeGhyLm9ubG9hZCA9ICgpID0+IHsK
LSAgICAgIHJlc29sdmUoeGhyKTsKLSAgICB9OwotICAgIHhoci5vbmVycm9yID0gKCkgPT4gewot
ICAgICAgcmVqZWN0KCd4aHIgZmFpbGVkJyk7Ci0gICAgfTsKLQotICAgIHhoci5vcGVuKCdHRVQn
LCB1cmwpOwotICAgIGlmIChvcHRzLnJlc3BvbnNlVHlwZSkgewotICAgICAgeGhyLnJlc3BvbnNl
VHlwZSA9IG9wdHMucmVzcG9uc2VUeXBlOwotICAgIH0KLSAgICB4aHIuc2VuZCgpOwotICB9KTsK
LX0KLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3ho
ci1yZXNwb25zZS11cmwtd29ya2VyLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3ho
ci1yZXNwb25zZS11cmwtd29ya2VyLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5
MDZhZDUwMDViNTlhMTEzMDUyMzdmYzU5MGZkZjM4NDA3Yjc2Mzc5Li4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNl
cy94aHItcmVzcG9uc2UtdXJsLXdvcmtlci5qcworKysgL2Rldi9udWxsCkBAIC0xLDMyICswLDAg
QEAKLS8vIFNlcnZpY2Ugd29ya2VyIGZvciB0aGUgeGhyLXJlc3BvbnNlLXVybCB0ZXN0LgotCi1z
ZWxmLmFkZEV2ZW50TGlzdGVuZXIoJ2ZldGNoJywgZXZlbnQgPT4gewotICBjb25zdCB1cmwgPSBu
ZXcgVVJMKGV2ZW50LnJlcXVlc3QudXJsKTsKLSAgY29uc3QgcmVzcG9uZFdpdGggPSB1cmwuc2Vh
cmNoUGFyYW1zLmdldCgncmVzcG9uZFdpdGgnKTsKLSAgaWYgKCFyZXNwb25kV2l0aCkKLSAgICBy
ZXR1cm47Ci0KLSAgaWYgKHJlc3BvbmRXaXRoID09ICdmZXRjaCcpIHsKLSAgICBjb25zdCB0YXJn
ZXQgPSB1cmwuc2VhcmNoUGFyYW1zLmdldCgndXJsJyk7Ci0gICAgZXZlbnQucmVzcG9uZFdpdGgo
ZmV0Y2godGFyZ2V0KSk7Ci0gICAgcmV0dXJuOwotICB9Ci0KLSAgaWYgKHJlc3BvbmRXaXRoID09
ICdzdHJpbmcnKSB7Ci0gICAgY29uc3QgaGVhZGVycyA9IHsnY29udGVudC10eXBlJzogJ3RleHQv
cGxhaW4nfTsKLSAgICBldmVudC5yZXNwb25kV2l0aChuZXcgUmVzcG9uc2UoJ2hlbGxvJywge2hl
YWRlcnN9KSk7Ci0gICAgcmV0dXJuOwotICB9Ci0KLSAgaWYgKHJlc3BvbmRXaXRoID09ICdkb2N1
bWVudCcpIHsKLSAgICBjb25zdCBkb2MgPSBgCi0gICAgICAgIDwhRE9DVFlQRSBodG1sPgotICAg
ICAgICA8aHRtbD4KLSAgICAgICAgPHRpdGxlPmhpPC90aXRsZT4KLSAgICAgICAgPGJvZHk+aGVs
bG88L2JvZHk+Ci0gICAgICAgIDwvaHRtbD5gOwotICAgIGNvbnN0IGhlYWRlcnMgPSB7J2NvbnRl
bnQtdHlwZSc6ICd0ZXh0L2h0bWwnfTsKLSAgICBldmVudC5yZXNwb25kV2l0aChuZXcgUmVzcG9u
c2UoZG9jLCB7aGVhZGVyc30pKTsKLSAgICByZXR1cm47Ci0gIH0KLX0pOwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3hzbC1iYXNlLXVybC1pZnJhbWUueG1sIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3hzbC1iYXNlLXVybC1pZnJhbWUueG1sCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwNjVhMDdhY2IyODQ4MjFkZGUxY2JlYTg2ODA3ODFhNTI0
ZjIxYmMyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy94c2wtYmFzZS11cmwtaWZyYW1lLnhtbAorKysgL2Rl
di9udWxsCkBAIC0xLDUgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIj8+Ci08P3htbC1zdHls
ZXNoZWV0IHR5cGU9InRleHQveHNsIiBocmVmPSJyZXNvdXJjZXMvcmVxdWVzdC11cmwtcGF0aC9p
bXBvcnQtcmVsYXRpdmUueHNsIj8+Ci08c3R5bGVzaGVldC10ZXN0PgotVGhpcyB0ZXN0cyBhIHN0
eWxlc2hlZXQgd2hpY2ggaGFzIGEgeHNsOmltcG9ydCB3aXRoIGEgcmVsYXRpdmUgVVJMLgotPC9z
dHlsZXNoZWV0LXRlc3Q+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMv
eHNsLWJhc2UtdXJsLXdvcmtlci5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy94c2wt
YmFzZS11cmwtd29ya2VyLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1MGUyYjE4
NDJmZmM3ZjJlZjIwMTc4NDY0MDZlYjY3ZWQ5NDkxZWFkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy94c2wt
YmFzZS11cmwtd29ya2VyLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTIgKzAsMCBAQAotc2VsZi5h
ZGRFdmVudExpc3RlbmVyKCdmZXRjaCcsIGV2ZW50ID0+IHsKLSAgY29uc3QgdXJsID0gbmV3IFVS
TChldmVudC5yZXF1ZXN0LnVybCk7Ci0KLSAgLy8gRm9yIHRoZSBpbXBvcnQtcmVsYXRpdmUueHNs
IGZpbGUsIHJlc3BvbmQgaW4gYSB3YXkgdGhhdCBjaGFuZ2VzIHRoZQotICAvLyByZXNwb25zZSBV
UkwuIFRoaXMgaXMgZXhwZWN0ZWQgdG8gY2hhbmdlIHRoZSBiYXNlIFVSTCBhbmQgYWxsb3cgdGhl
IGltcG9ydAotICAvLyBmcm9tIHRoZSBmaWxlIHRvIHN1Y2NlZWQuCi0gIGNvbnN0IHBhdGggPSAn
cmVxdWVzdC11cmwtcGF0aC9pbXBvcnQtcmVsYXRpdmUueHNsJzsKLSAgaWYgKHVybC5wYXRobmFt
ZS5pbmRleE9mKHBhdGgpICE9IC0xKSB7Ci0gICAgLy8gUmVzcG9uZCB3aXRoIGEgZGlmZmVyZW50
IFVSTCwgZGVsZXRpbmcgInJlcXVlc3QtdXJsLXBhdGgvIi4KLSAgICBldmVudC5yZXNwb25kV2l0
aChmZXRjaCgnaW1wb3J0LXJlbGF0aXZlLnhzbCcpKTsKLSAgfQotfSk7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMveHNsdC1wYXNzLnhzbCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3Jlc291cmNlcy94c2x0LXBhc3MueHNsCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAyY2Q3ZjJmOGY4NmEyM2Q0NjRiMzBmZWFiMDkzOTkzMTEzNDgxMGNjLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291
cmNlcy94c2x0LXBhc3MueHNsCisrKyAvZGV2L251bGwKQEAgLTEsMTEgKzAsMCBAQAotPD94bWwg
dmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KLQotPHhzbDpzdHlsZXNoZWV0IHZlcnNp
b249IjEuMCIgeG1sbnM6eHNsPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L1hTTC9UcmFuc2Zvcm0i
PgotICA8eHNsOnRlbXBsYXRlIG1hdGNoPSIvIj4KLSAgICA8aHRtbD4KLSAgICAgIDxib2R5Pgot
ICAgICAgICAgICA8cD5QQVNTPC9wPgotICAgICAgPC9ib2R5PgotICAgIDwvaHRtbD4KLSAgPC94
c2w6dGVtcGxhdGU+Ci08L3hzbDpzdHlsZXNoZWV0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvc2VydmljZS13b3JrZXItY3NwLWNvbm5lY3QuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvc2VydmljZS13b3JrZXItY3NwLWNvbm5lY3QuaHR0cHMtZXhwZWN0ZWQu
dHh0CmluZGV4IGU2ZjVhNTI0NDMxMzAyMjRmOTg3ZGExOGQ5YTc3MzYyZWNlZWYwODguLmY2MWQy
NjI3MGIzNjFiOWEyMGQ5MDk5MjNkM2MzNTY2ZmZhOGMwZGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL3NlcnZpY2Utd29ya2VyLWNzcC1jb25uZWN0Lmh0dHBzLWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9zZXJ2aWNlLXdvcmtlci1jc3AtY29ubmVjdC5odHRwcy1l
eHBlY3RlZC50eHQKQEAgLTEsNyArMSw2IEBACiAKIFBBU1MgQ1NQIHRlc3QgZm9yIGNvbm5lY3Qt
c3JjIGluIFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSAKIFBBU1MgaW1wb3J0U2NyaXB0cyB0ZXN0
IGZvciBjb25uZWN0LXNyYyAKLVBBU1MgZXZhbCB0ZXN0IGZvciBjb25uZWN0LXNyYyAKIFBBU1Mg
RmV0Y2ggdGVzdCBmb3IgY29ubmVjdC1zcmMgCiBQQVNTIFJlZGlyZWN0ZWQgZmV0Y2ggdGVzdCBm
b3IgY29ubmVjdC1zcmMgCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3NlcnZpY2Ut
d29ya2VyLWNzcC1kZWZhdWx0Lmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L3NlcnZpY2Utd29ya2VyLWNzcC1kZWZhdWx0Lmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCA3NmY5
MTg2Y2Y5YmUwYzM2ZGE3MmJjM2JjMDRlZDU2ZGM2NDNkOGMyLi5mNDE4Y2I4MzViY2FkZWFiM2Q4
ZTQ1OTBmNmVmMGJlYjQ5YzQ2YWJlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9zZXJ2
aWNlLXdvcmtlci1jc3AtZGVmYXVsdC5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvc2VydmljZS13b3JrZXItY3NwLWRlZmF1bHQuaHR0cHMtZXhwZWN0ZWQudHh0CkBA
IC0xLDcgKzEsNiBAQAogCiBQQVNTIENTUCB0ZXN0IGZvciBkZWZhdWx0LXNyYyBpbiBTZXJ2aWNl
V29ya2VyR2xvYmFsU2NvcGUgCiBQQVNTIGltcG9ydFNjcmlwdHMgdGVzdCBmb3IgZGVmYXVsdC1z
cmMgCi1QQVNTIGV2YWwgdGVzdCBmb3IgZGVmYXVsdC1zcmMgCiBQQVNTIEZldGNoIHRlc3QgZm9y
IGRlZmF1bHQtc3JjIAogUEFTUyBSZWRpcmVjdGVkIGZldGNoIHRlc3QgZm9yIGRlZmF1bHQtc3Jj
IAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9zZXJ2aWNlLXdvcmtlci1jc3Atc2Ny
aXB0Lmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3NlcnZpY2Utd29ya2Vy
LWNzcC1zY3JpcHQuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IDE1MzM4OGE4MGNiZmJjMjYzMDli
ZWZlNTgyMDYwNTZhZTYxNzI0ZDYuLmQzN2E3YjVkN2IzZTMxYmJmNTBmNmVjYTFlY2RiYWVmZWI4
NWU4N2EgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3NlcnZpY2Utd29ya2VyLWNzcC1z
Y3JpcHQuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3NlcnZpY2Ut
d29ya2VyLWNzcC1zY3JpcHQuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0xLDcgKzEsNiBAQAogCiBQ
QVNTIENTUCB0ZXN0IGZvciBzY3JpcHQtc3JjIGluIFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSAK
IFBBU1MgaW1wb3J0U2NyaXB0cyB0ZXN0IGZvciBzY3JpcHQtc3JjIAotUEFTUyBldmFsIHRlc3Qg
Zm9yIHNjcmlwdC1zcmMgCiBQQVNTIEZldGNoIHRlc3QgZm9yIHNjcmlwdC1zcmMgCiBQQVNTIFJl
ZGlyZWN0ZWQgZmV0Y2ggdGVzdCBmb3Igc2NyaXB0LXNyYyAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvc2VydmljZS13b3JrZXItaGVhZGVyLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL3NlcnZpY2Utd29ya2VyLWhlYWRlci5odHRwcy1leHBlY3RlZC50eHQK
aW5kZXggMDMyNGQ3N2VhMTVhYzQ3NmJhMmJmMzQ2NmU4Mjk2MjU5MDExMTNkNC4uNzQ2MzI2NGJh
NGE3ZjljMjBjZmMwZTkzNDU0MzJkNTQzYWM0NDA1NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvc2VydmljZS13b3JrZXItaGVhZGVyLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9zZXJ2aWNlLXdvcmtlci1oZWFkZXIuaHR0cHMtZXhwZWN0ZWQudHh0CkBA
IC0xLDMgKzEsMyBAQAogCi1QQVNTIEEgcmVxdWVzdCB0byBmZXRjaCBzZXJ2aWNlIHdvcmtlciBt
YWluIHNjcmlwdCBzaG91bGQgaGF2ZSBTZXJ2aWNlLVdvcmtlciBoZWFkZXIgYW5kIGltcG9ydGVk
IHNjcmlwdHMgc2hvdWxkIG5vdCBoYXZlIG9uZSAKK1BBU1MgQSByZXF1ZXN0IHRvIGZldGNoIHNl
cnZpY2Ugd29ya2VyIHNjcmlwdCBzaG91bGQgaGF2ZSBTZXJ2aWNlLVdvcmtlciBoZWFkZXIgCiAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3NlcnZpY2Utd29ya2VyLWhlYWRlci5odHRw
cy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvc2VydmljZS13b3JrZXItaGVhZGVyLmh0dHBzLmh0
bWwKaW5kZXggZmI5MDJjZDFiNDU1ZDEzMGM4OTljZjA2YmYwNWMzMjE4NGQyYjU0My4uMjU4NDQ4
NWM2NWFiNjBlOGI0MjljM2RiNjZmYzQzYTgxNTdhOGVkNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvc2VydmljZS13b3JrZXItaGVhZGVyLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvc2VydmljZS13b3JrZXItaGVhZGVyLmh0dHBzLmh0bWwKQEAgLTUsMTkgKzUsMTQg
QEAKIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGVzdC1oZWxwZXJzLnN1Yi5qcyI+PC9zY3JpcHQ+
CiA8c2NyaXB0PgogCi1wcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7Ci0gIGNvbnN0IHNjcmlwdCA9
ICdyZXNvdXJjZXMvc2VydmljZS13b3JrZXItaGVhZGVyLnB5JwotICAgICsgJz9oZWFkZXImaW1w
b3J0PXNlcnZpY2Utd29ya2VyLWhlYWRlci5weT9uby1oZWFkZXInOworcHJvbWlzZV90ZXN0KHQg
PT4geworICBjb25zdCBzY3JpcHQgPSAncmVzb3VyY2VzL3NlcnZpY2Utd29ya2VyLWhlYWRlci5w
eSc7CiAgIGNvbnN0IHNjb3BlID0gJ3Jlc291cmNlcy9zZXJ2aWNlLXdvcmtlci1oZWFkZXInOwot
ICBjb25zdCBleHBlY3RlZF91cmwgPSBub3JtYWxpemVVUkwoc2NyaXB0KTsKLSAgY29uc3QgcmVn
aXN0cmF0aW9uID0KLSAgICBhd2FpdCBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdp
c3Rlcih0LCBzY3JpcHQsIHNjb3BlKTsKLSAgdC5hZGRfY2xlYW51cCgoKSA9PiByZWdpc3RyYXRp
b24udW5yZWdpc3RlcigpKTsKLSAgYXNzZXJ0X3RydWUocmVnaXN0cmF0aW9uIGluc3RhbmNlb2Yg
U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbik7Ci0KLSAgYXdhaXQgd2FpdF9mb3Jfc3RhdGUodCwg
cmVnaXN0cmF0aW9uLmluc3RhbGxpbmcsICdhY3RpdmF0ZWQnKTsKLSAgYXdhaXQgcmVnaXN0cmF0
aW9uLnVwZGF0ZSgpOwotfSwgJ0EgcmVxdWVzdCB0byBmZXRjaCBzZXJ2aWNlIHdvcmtlciBtYWlu
IHNjcmlwdCBzaG91bGQgaGF2ZSBTZXJ2aWNlLVdvcmtlciAnCi0gICsgJ2hlYWRlciBhbmQgaW1w
b3J0ZWQgc2NyaXB0cyBzaG91bGQgbm90IGhhdmUgb25lJyk7CisgIHJldHVybiBzZXJ2aWNlX3dv
cmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCBzY3JpcHQsIHNjb3BlKQorICAgIC50aGVu
KHJlZ2lzdHJhdGlvbiA9PiB7CisgICAgICBhc3NlcnRfdHJ1ZShyZWdpc3RyYXRpb24gaW5zdGFu
Y2VvZiBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uKTsKKyAgICAgIHJldHVybiByZWdpc3RyYXRp
b24udW5yZWdpc3RlcigpOworICAgIH0pOworfSwgJ0EgcmVxdWVzdCB0byBmZXRjaCBzZXJ2aWNl
IHdvcmtlciBzY3JpcHQgc2hvdWxkIGhhdmUgU2VydmljZS1Xb3JrZXIgaGVhZGVyJyk7CiAKIDwv
c2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvc2VydmljZXdvcmtlci1tZXNz
YWdlLWV2ZW50LWhpc3RvcmljYWwuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3NlcnZp
Y2V3b3JrZXItbWVzc2FnZS1ldmVudC1oaXN0b3JpY2FsLmh0dHBzLmh0bWwKaW5kZXggZmFjOGYy
MDc2ZmI2NDg3MDU1MDIzNmRkMjc0NzA5MDJjZGJlMDQwYy4uMmY3ODBhNjA0MjgyZGMyODFlYmU3
NWE5NjRlZDI0ZjgzMmEyNGUzYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvc2Vydmlj
ZXdvcmtlci1tZXNzYWdlLWV2ZW50LWhpc3RvcmljYWwuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9zZXJ2aWNld29ya2VyLW1lc3NhZ2UtZXZlbnQtaGlzdG9yaWNhbC5odHRwcy5o
dG1sCkBAIC0xMCwxMCArMTAsNiBAQCBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewogICAgIHZh
ciB1cmwgPSAncmVzb3VyY2VzL3Bvc3RtZXNzYWdlLXRvLWNsaWVudC13b3JrZXIuanMnOwogICAg
IHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCB1cmwsIHNj
b3BlKQogICAgICAgLnRoZW4oZnVuY3Rpb24ocikgewotICAgICAgICAgIHQuYWRkX2NsZWFudXAo
ZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lz
dGVyKHQsIHNjb3BlKTsKLSAgICAgICAgICAgIH0pOwotCiAgICAgICAgICAgcmV0dXJuIHdhaXRf
Zm9yX3N0YXRlKHQsIHIuaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOwogICAgICAgICB9KQogICAg
ICAgLnRoZW4oZnVuY3Rpb24oKSB7CkBAIC0zOSw2ICszNSw5IEBAIHByb21pc2VfdGVzdChmdW5j
dGlvbih0KSB7CiAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgIHdvcmtlci5wb3N0
TWVzc2FnZSgnUElORycpOwogICAgICAgICAgICAgfSk7CisgICAgICAgIH0pCisgICAgICAudGhl
bihmdW5jdGlvbigpIHsKKyAgICAgICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rl
cl9hbmRfZG9uZSh0LCBzY29wZSk7CiAgICAgICAgIH0pOwogICB9LCAnVGVzdCBNZXNzYWdlRXZl
bnQgc3VwcGxhbnRzIFNlcnZpY2VXb3JrZXJNZXNzYWdlRXZlbnQuJyk7CiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL3NoYXJlZC13b3JrZXItY29udHJvbGxlZC5odHRwcy5odG1sIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvc2hhcmVkLXdvcmtlci1jb250cm9sbGVkLmh0dHBzLmh0bWwKaW5k
ZXggMDMyMGMwMmE0ZmEyYjgwNjZiYzZmNjAzYmY3YWJjM2VlZmUxYzNiMy4uMzNkNTJlMDExOTlj
MmJkYzBlODVkZjdkODEwNmRkZDk3MGFhZTA4MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvc2hhcmVkLXdvcmtlci1jb250cm9sbGVkLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvc2hhcmVkLXdvcmtlci1jb250cm9sbGVkLmh0dHBzLmh0bWwKQEAgLTEyLDEwICsxMiw2
IEBAIHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7CiAKICAgICByZXR1cm4gc2VydmljZV93b3Jr
ZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgc2VydmljZV93b3JrZXIsIHNjb3BlKQogICAg
ICAgLnRoZW4oZnVuY3Rpb24ocikgewotICAgICAgICAgIHQuYWRkX2NsZWFudXAoZnVuY3Rpb24o
KSB7Ci0gICAgICAgICAgICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyKHQsIHNj
b3BlKTsKLSAgICAgICAgICAgIH0pOwotCiAgICAgICAgICAgcmV0dXJuIHdhaXRfZm9yX3N0YXRl
KHQsIHIuaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOwogICAgICAgICB9KQogICAgICAgLnRoZW4o
ZnVuY3Rpb24oKSB7CkBAIC0yOCw2ICsyNCw3IEBAIHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7
CiAgICAgICAgIH0pCiAgICAgICAudGhlbihmdW5jdGlvbihkYXRhKSB7CiAgICAgICAgICAgYXNz
ZXJ0X2VxdWFscyhkYXRhLCAnaW50ZXJjZXB0ZWQgYnkgc2VydmljZSB3b3JrZXInKTsKKyAgICAg
ICAgICBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9kb25lKHQsIHNjb3BlKTsKICAgICAg
ICAgfSk7CiAgIH0sICdWZXJpZnkgc3VicmVzb3VyY2UgbG9hZHMgaW4gU2hhcmVkV29ya2VyIGFy
ZSBjb250cm9sbGVkIGJ5IGEgU2VydmljZSBXb3JrZXInKTsKIApAQCAtMzgsMTAgKzM1LDYgQEAg
cHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKIAogICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91
bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCBzZXJ2aWNlX3dvcmtlciwgc2NvcGUpCiAgICAgICAu
dGhlbihmdW5jdGlvbihyKSB7Ci0gICAgICAgICAgdC5hZGRfY2xlYW51cChmdW5jdGlvbigpIHsK
LSAgICAgICAgICAgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXIodCwgc2NvcGUp
OwotICAgICAgICAgICAgfSk7Ci0KICAgICAgICAgICByZXR1cm4gd2FpdF9mb3Jfc3RhdGUodCwg
ci5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7CiAgICAgICAgIH0pCiAgICAgICAudGhlbihmdW5j
dGlvbigpIHsKQEAgLTU0LDYgKzQ3LDcgQEAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKICAg
ICAgICAgfSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKGRhdGEpIHsKICAgICAgICAgICBhc3NlcnRf
ZXF1YWxzKGRhdGEsICd3b3JrZXIgbG9hZGluZyBpbnRlcmNlcHRlZCBieSBzZXJ2aWNlIHdvcmtl
cicpOworICAgICAgICAgIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX2RvbmUodCwgc2Nv
cGUpOwogICAgICAgICB9KTsKICAgfSwgJ1ZlcmlmeSBTaGFyZWRXb3JrZXIgY29uc3RydWN0aW9u
IGlzIGNvbnRyb2xsZWQgYnkgYSBTZXJ2aWNlIFdvcmtlcicpOwogCkBAIC02NCwxMCArNTgsNiBA
QCBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewogCiAgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2Vy
X3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHNlcnZpY2Vfd29ya2VyLCBzY29wZSkKICAgICAg
IC50aGVuKGZ1bmN0aW9uKHIpIHsKLSAgICAgICAgICB0LmFkZF9jbGVhbnVwKGZ1bmN0aW9uKCkg
ewotICAgICAgICAgICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcih0LCBzY29w
ZSk7Ci0gICAgICAgICAgICB9KTsKLQogICAgICAgICAgIHJldHVybiB3YWl0X2Zvcl9zdGF0ZSh0
LCByLmluc3RhbGxpbmcsICdhY3RpdmF0ZWQnKTsKICAgICAgICAgfSkKICAgICAgIC50aGVuKGZ1
bmN0aW9uKCkgewpAQCAtODAsNiArNzAsNyBAQCBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewog
ICAgICAgICB9KQogICAgICAgLnRoZW4oZnVuY3Rpb24oZGF0YSkgewogICAgICAgICAgIGFzc2Vy
dF9lcXVhbHMoZGF0YSwgJ3dvcmtlciBsb2FkaW5nIGludGVyY2VwdGVkIGJ5IHNlcnZpY2Ugd29y
a2VyJyk7CisgICAgICAgICAgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfZG9uZSh0LCBz
Y29wZSk7CiAgICAgICAgIH0pOwogICB9LCAnVmVyaWZ5IGltcG9ydFNjcmlwdHMgZnJvbSBTaGFy
ZWRXb3JrZXIgaXMgY29udHJvbGxlZCBieSBhIFNlcnZpY2UgV29ya2VyJyk7CiA8L3NjcmlwdD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3NraXAtd2FpdGluZy1pbnN0YWxsZWQuaHR0
cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvc2tpcC13YWl0aW5nLWluc3RhbGxl
ZC5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggMmZhYjhmYjY4ZGMxMjA2OTIzNTU1ZmIwMjA2NjMx
ZjhjOGRhZDczYi4uMTIwZWRkZGNmZTRhOTE3NjhhNmJiZTljZWU0NzRjNmFmMTU0NWZlYyAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvc2tpcC13YWl0aW5nLWluc3RhbGxlZC5odHRwcy1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvc2tpcC13YWl0aW5nLWluc3RhbGxl
ZC5odHRwcy1leHBlY3RlZC50eHQKQEAgLTEsMyArMSw0IEBACiAKLVBBU1MgVGVzdCBza2lwV2Fp
dGluZyB3aGVuIGEgaW5zdGFsbGVkIHdvcmtlciBpcyB3YWl0aW5nIAorCitGQUlMIFRlc3Qgc2tp
cFdhaXRpbmcgd2hlbiBhIGluc3RhbGxlZCB3b3JrZXIgaXMgd2FpdGluZyBhc3NlcnRfZXF1YWxz
OiBza2lwV2FpdGluZyBwcm9taXNlIHNob3VsZCBiZSByZXNvbHZlZCB3aXRoIHVuZGVmaW5lZCBl
eHBlY3RlZCAiUEFTUyIgYnV0IGdvdCAiRkFJVEw6IFByb21pc2Ugc2hvdWxkIGJlIHJlc29sdmVk
IGJlZm9yZSBTZXJ2aWNlV29ya2VyI3N0YXRlIGlzIHNldCB0byBhY3RpdmF0ZWQiCiAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3NraXAtd2FpdGluZy1pbnN0YWxsZWQuaHR0cHMuaHRt
bCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3NraXAtd2FpdGluZy1pbnN0YWxsZWQuaHR0cHMuaHRtbApp
bmRleCBiNjA0ZjY1MWIzYzFkZWIzOGQ4OTFjNzczOTRhOGYxNzVhMTljMzRlLi4yMWUyNmJlNTEy
ODQ1NGVlMDUxNDNiMTBiODAzOWNlYjk1YTQ4Y2Q1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9za2lwLXdhaXRpbmctaW5zdGFsbGVkLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvc2tpcC13YWl0aW5nLWluc3RhbGxlZC5odHRwcy5odG1sCkBAIC0zMywxMCArMzMsNiBA
QCBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewogICAgICAgfSk7CiAgICAgcmV0dXJuIHNlcnZp
Y2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHVybDEsIHNjb3BlKQogICAgICAg
LnRoZW4oZnVuY3Rpb24ocikgewotICAgICAgICAgIHQuYWRkX2NsZWFudXAoZnVuY3Rpb24oKSB7
Ci0gICAgICAgICAgICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyKHQsIHNjb3Bl
KTsKLSAgICAgICAgICAgIH0pOwotCiAgICAgICAgICAgcmV0dXJuIHdhaXRfZm9yX3N0YXRlKHQs
IHIuaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOwogICAgICAgICB9KQogICAgICAgLnRoZW4oZnVu
Y3Rpb24oKSB7CkBAIC02NCw2ICs2MCw3IEBAIHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7CiAg
ICAgICAgIH0pCiAgICAgICAudGhlbihmdW5jdGlvbigpIHsKICAgICAgICAgICBmcmFtZS5yZW1v
dmUoKTsKKyAgICAgICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfZG9u
ZSh0LCBzY29wZSk7CiAgICAgICAgIH0pOwogICB9LCAnVGVzdCBza2lwV2FpdGluZyB3aGVuIGEg
aW5zdGFsbGVkIHdvcmtlciBpcyB3YWl0aW5nJyk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL3NraXAtd2FpdGluZy11c2luZy1yZWdpc3RyYXRpb24uaHR0cHMuaHRtbCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL3NraXAtd2FpdGluZy11c2luZy1yZWdpc3RyYXRpb24uaHR0cHMuaHRtbApp
bmRleCA0MTJlZTJhNDQzOGUyMzI4ZjY5MzM3ODkzNDY1YzRhNjZjNjcxY2U2Li5hOWMzOThhMjYw
Njc2ZDk3NmYwYWFjMGNhNDk1YWExYTZjOTRlNjMxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9za2lwLXdhaXRpbmctdXNpbmctcmVnaXN0cmF0aW9uLmh0dHBzLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvc2tpcC13YWl0aW5nLXVzaW5nLXJlZ2lzdHJhdGlvbi5odHRwcy5odG1s
CkBAIC0xLDYgKzEsNSBAQAogPCFET0NUWVBFIGh0bWw+CiA8dGl0bGU+U2VydmljZSBXb3JrZXI6
IFNraXAgd2FpdGluZyB1c2luZyByZWdpc3RyYXRpb248L3RpdGxlPgotPG1ldGEgbmFtZT0idGlt
ZW91dCIgY29udGVudD0ibG9uZyI+CiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVz
cy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9y
dC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Rlc3QtaGVscGVycy5zdWIu
anMiPjwvc2NyaXB0PgpAQCAtNTIsMTQgKzUxLDE0IEBAIHByb21pc2VfdGVzdChmdW5jdGlvbih0
KSB7CiAgICAgICAudGhlbihmdW5jdGlvbihyZWdpc3RyYXRpb24pIHsKICAgICAgICAgICBzd19y
ZWdpc3RyYXRpb24gPSByZWdpc3RyYXRpb247CiAgICAgICAgICAgdC5hZGRfY2xlYW51cChmdW5j
dGlvbigpIHsKLSAgICAgICAgICAgICAgcmV0dXJuIHJlZ2lzdHJhdGlvbi51bnJlZ2lzdGVyKCk7
CisgICAgICAgICAgICAgIHJlZ2lzdHJhdGlvbi51bnJlZ2lzdGVyKCk7CiAgICAgICAgICAgICB9
KTsKICAgICAgICAgICByZXR1cm4gc2F3X2NvbnRyb2xsZXJjaGFuZ2VkOwogICAgICAgICB9KQog
ICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7CiAgICAgICAgICAgYXNzZXJ0X25vdF9lcXVhbHMoc3df
cmVnaXN0cmF0aW9uLmFjdGl2ZSwgbnVsbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAn
UmVnaXN0cmF0aW9uIGFjdGl2ZSB3b3JrZXIgc2hvdWxkIG5vdCBiZSBudWxsJyk7Ci0gICAgICAg
ICAgcmV0dXJuIGZldGNoX3Rlc3RzX2Zyb21fd29ya2VyKHN3X3JlZ2lzdHJhdGlvbi5hY3RpdmUp
OworICAgICAgICAgIGZldGNoX3Rlc3RzX2Zyb21fd29ya2VyKHN3X3JlZ2lzdHJhdGlvbi5hY3Rp
dmUpOwogICAgICAgICB9KTsKICAgfSwgJ1Rlc3Qgc2tpcFdhaXRpbmcgd2hpbGUgYSBjbGllbnQg
aXMgdXNpbmcgdGhlIHJlZ2lzdHJhdGlvbicpOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9za2lwLXdhaXRpbmctd2l0aG91dC11c2luZy1yZWdpc3RyYXRpb24uaHR0cHMuaHRtbCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL3NraXAtd2FpdGluZy13aXRob3V0LXVzaW5nLXJlZ2lzdHJhdGlv
bi5odHRwcy5odG1sCmluZGV4IGNlZDY0ZTVmNjdmYjY2N2U1YzIzMzA1NWFkOTIwZGJkYTAzMzYz
MzYuLmRiZTJiZGU3OGQzYzBiNGJkNjg5NjcxODhkNjY4YzQ1NTcxNDEyMWYgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL3NraXAtd2FpdGluZy13aXRob3V0LXVzaW5nLXJlZ2lzdHJhdGlv
bi5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3NraXAtd2FpdGluZy13aXRob3V0
LXVzaW5nLXJlZ2lzdHJhdGlvbi5odHRwcy5odG1sCkBAIC0xLDYgKzEsNSBAQAogPCFET0NUWVBF
IGh0bWw+CiA8dGl0bGU+U2VydmljZSBXb3JrZXI6IFNraXAgd2FpdGluZyB3aXRob3V0IHVzaW5n
IHJlZ2lzdHJhdGlvbjwvdGl0bGU+Ci08bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25n
Ij4KIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KIDxz
Y3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KIDxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvdGVzdC1oZWxwZXJzLnN1Yi5qcyI+PC9zY3JpcHQ+CkBAIC0y
OCw3ICsyNyw3IEBAIHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7CiAgICAgICAudGhlbihmdW5j
dGlvbihyZWdpc3RyYXRpb24pIHsKICAgICAgICAgICBzd19yZWdpc3RyYXRpb24gPSByZWdpc3Ry
YXRpb247CiAgICAgICAgICAgdC5hZGRfY2xlYW51cChmdW5jdGlvbigpIHsKLSAgICAgICAgICAg
ICAgcmV0dXJuIHJlZ2lzdHJhdGlvbi51bnJlZ2lzdGVyKCk7CisgICAgICAgICAgICAgIHJlZ2lz
dHJhdGlvbi51bnJlZ2lzdGVyKCk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgICByZXR1cm4g
d2FpdF9mb3Jfc3RhdGUodCwgcmVnaXN0cmF0aW9uLmluc3RhbGxpbmcsICdhY3RpdmF0ZWQnKTsK
ICAgICAgICAgfSkKQEAgLTM3LDcgKzM2LDcgQEAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsK
ICAgICAgICAgICAgICAgICAgICAgICAgICdEb2N1bWVudCBjb250cm9sbGVyIHNob3VsZCBzdGls
bCBiZSBudWxsJyk7CiAgICAgICAgICAgYXNzZXJ0X25vdF9lcXVhbHMoc3dfcmVnaXN0cmF0aW9u
LmFjdGl2ZSwgbnVsbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnUmVnaXN0cmF0aW9u
IGFjdGl2ZSB3b3JrZXIgc2hvdWxkIG5vdCBiZSBudWxsJyk7Ci0gICAgICAgICAgcmV0dXJuIGZl
dGNoX3Rlc3RzX2Zyb21fd29ya2VyKHN3X3JlZ2lzdHJhdGlvbi5hY3RpdmUpOworICAgICAgICAg
IGZldGNoX3Rlc3RzX2Zyb21fd29ya2VyKHN3X3JlZ2lzdHJhdGlvbi5hY3RpdmUpOwogICAgICAg
ICB9KTsKICAgfSwgJ1Rlc3Qgc2tpcFdhaXRpbmcgd2hpbGUgYSBjbGllbnQgaXMgbm90IGJlaW5n
IGNvbnRyb2xsZWQnKTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvc2tpcC13YWl0
aW5nLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9za2lwLXdhaXRpbmcuaHR0cHMuaHRt
bAppbmRleCBmODM5MmZjOTU1YjQ2Y2RkOWYxZGViNWE3MzE5YjhmM2YzNWQ5MWRkLi40OGI1YThj
OWFlZWI0MDY0OGM0ZDI5NTQ5MmQ0YTQ0Yjk1N2Q3ODhmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9za2lwLXdhaXRpbmcuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9z
a2lwLXdhaXRpbmcuaHR0cHMuaHRtbApAQCAtMTQsMTAgKzE0LDYgQEAgcHJvbWlzZV90ZXN0KGZ1
bmN0aW9uKHQpIHsKICAgICB2YXIgc3dfcmVnaXN0cmF0aW9uLCBhY3RpdmF0ZWRfd29ya2VyLCB3
YWl0aW5nX3dvcmtlcjsKICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRf
cmVnaXN0ZXIodCwgdXJsMSwgc2NvcGUpCiAgICAgICAudGhlbihmdW5jdGlvbihyZWdpc3RyYXRp
b24pIHsKLSAgICAgICAgICB0LmFkZF9jbGVhbnVwKGZ1bmN0aW9uKCkgewotICAgICAgICAgICAg
ICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcih0LCBzY29wZSk7Ci0gICAgICAgICAg
ICB9KTsKLQogICAgICAgICAgIHN3X3JlZ2lzdHJhdGlvbiA9IHJlZ2lzdHJhdGlvbjsKICAgICAg
ICAgICByZXR1cm4gd2FpdF9mb3Jfc3RhdGUodCwgcmVnaXN0cmF0aW9uLmluc3RhbGxpbmcsICdh
Y3RpdmF0ZWQnKTsKICAgICAgICAgfSkKQEAgLTUyLDYgKzQ4LDcgQEAgcHJvbWlzZV90ZXN0KGZ1
bmN0aW9uKHQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICdXb3JrZXIgd2l0aCB1cmwyIHNo
b3VsZCBiZSByZWR1bmRhbnQnKTsKICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHN3X3JlZ2lzdHJh
dGlvbi5hY3RpdmUuc2NyaXB0VVJMLCBub3JtYWxpemVVUkwodXJsMyksCiAgICAgICAgICAgICAg
ICAgICAgICAgICAnV29ya2VyIHdpdGggdXJsMyBzaG91bGQgYmUgYWN0aXZhdGVkJyk7CisgICAg
ICAgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX2RvbmUodCwgc2NvcGUp
OwogICAgICAgICB9KTsKICAgfSwgJ1Rlc3Qgc2tpcFdhaXRpbmcgd2l0aCBib3RoIGFjdGl2ZSBh
bmQgd2FpdGluZyB3b3JrZXJzJyk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3N0
YXRlLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9zdGF0ZS5odHRwcy5odG1sCmluZGV4
IDczNThlNThmZjE0YTc0ZTA0NTE0ZWI5NDMyMTUxNTc2Y2Y2MmI5MDUuLjM4MTAzNjJlMDUzMzA1
NjlmOTdiNzYxMmNhZTFjOTNmODEzNWNmMzggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L3N0YXRlLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvc3RhdGUuaHR0cHMuaHRt
bApAQCAtNCwyNCArNCwyMSBAQAogPHNjcmlwdCBzcmM9InJlc291cmNlcy90ZXN0LWhlbHBlcnMu
c3ViLmpzIj48L3NjcmlwdD4KIDxib2R5PgogPHNjcmlwdD4KLXByb21pc2VfdGVzdChmdW5jdGlv
biAodCkgeworKGZ1bmN0aW9uICgpIHsKKyAgICB2YXIgdCA9IGFzeW5jX3Rlc3QoJ1NlcnZpY2Ug
V29ya2VyIHN0YXRlIHByb3BlcnR5IGFuZCAic3RhdGVjaGFuZ2UiIGV2ZW50Jyk7CiAgICAgdmFy
IGN1cnJlbnRTdGF0ZSA9ICd0ZXN0LWlzLXN0YXJ0aW5nJzsKICAgICB2YXIgc2NvcGUgPSAncmVz
b3VyY2VzL3N0YXRlLyc7CiAKLSAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9h
bmRfcmVnaXN0ZXIoCisgICAgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIo
CiAgICAgICAgIHQsICdyZXNvdXJjZXMvZW1wdHktd29ya2VyLmpzJywgc2NvcGUpCi0gICAgICAu
dGhlbihmdW5jdGlvbihyZWdpc3RyYXRpb24pIHsKLSAgICAgICAgICB0LmFkZF9jbGVhbnVwKGZ1
bmN0aW9uKCkgewotICAgICAgICAgICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rl
cih0LCBzY29wZSk7Ci0gICAgICAgICAgICB9KTsKLQorICAgICAgLnRoZW4odC5zdGVwX2Z1bmMo
ZnVuY3Rpb24ocmVnaXN0cmF0aW9uKSB7CiAgICAgICAgICAgdmFyIHN3ID0gcmVnaXN0cmF0aW9u
Lmluc3RhbGxpbmc7Ci0KKyAgICAgICAgICBzdy5hZGRFdmVudExpc3RlbmVyKCdzdGF0ZWNoYW5n
ZScsIHQuc3RlcF9mdW5jKG9uU3RhdGVDaGFuZ2Uoc3cpKSk7CiAgICAgICAgICAgYXNzZXJ0X2Vx
dWFscyhzdy5zdGF0ZSwgJ2luc3RhbGxpbmcnLAogICAgICAgICAgICAgICAgICAgICAgICAgJ3Ro
ZSBzZXJ2aWNlIHdvcmtlciBzaG91bGQgYmUgaW4gImluc3RhbGxpbmciIHN0YXRlLicpOwogICAg
ICAgICAgIGNoZWNrU3RhdGVUcmFuc2l0aW9uKHN3LnN0YXRlKTsKLSAgICAgICAgICByZXR1cm4g
b25TdGF0ZUNoYW5nZShzdyk7Ci0gICAgICAgIH0pOworICAgICAgICB9KSkKKyAgICAgIC5jYXRj
aCh1bnJlYWNoZWRfcmVqZWN0aW9uKHQpKTsKIAogICAgIGZ1bmN0aW9uIGNoZWNrU3RhdGVUcmFu
c2l0aW9uKG5ld1N0YXRlKSB7CiAgICAgICAgIHN3aXRjaCAoY3VycmVudFN0YXRlKSB7CkBAIC01
Miw5ICs0OSw3IEBAIHByb21pc2VfdGVzdChmdW5jdGlvbiAodCkgewogICAgIH0KIAogICAgIGZ1
bmN0aW9uIG9uU3RhdGVDaGFuZ2UoZXhwZWN0ZWRUYXJnZXQpIHsKLSAgICAgIHJldHVybiBuZXcg
UHJvbWlzZShmdW5jdGlvbihyZXNvbHZlKSB7Ci0gICAgICAgICAgICBleHBlY3RlZFRhcmdldC5h
ZGRFdmVudExpc3RlbmVyKCdzdGF0ZWNoYW5nZScsIHJlc29sdmUpOwotICAgICAgICAgIH0pLnRo
ZW4oZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKGV2ZW50KSB7CiAg
ICAgICAgICAgICBhc3NlcnRfdHJ1ZShldmVudC50YXJnZXQgaW5zdGFuY2VvZiBTZXJ2aWNlV29y
a2VyLAogICAgICAgICAgICAgICAgICAgICAgICAgJ3RoZSB0YXJnZXQgb2YgdGhlIHN0YXRlY2hh
bmdlIGV2ZW50IHNob3VsZCBiZSBhICcgKwogICAgICAgICAgICAgICAgICAgICAgICAgJ1NlcnZp
Y2VXb3JrZXIuJyk7CkBAIC02Niw5ICs2MSw5IEBAIHByb21pc2VfdGVzdChmdW5jdGlvbiAodCkg
ewogCiAgICAgICAgICAgICBjaGVja1N0YXRlVHJhbnNpdGlvbihldmVudC50YXJnZXQuc3RhdGUp
OwogCi0gICAgICAgICAgICBpZiAoZXZlbnQudGFyZ2V0LnN0YXRlICE9ICdhY3RpdmF0ZWQnKQot
ICAgICAgICAgICAgICAgIHJldHVybiBvblN0YXRlQ2hhbmdlKGV4cGVjdGVkVGFyZ2V0KTsKLSAg
ICAgICAgICB9KTsKKyAgICAgICAgICAgIGlmIChldmVudC50YXJnZXQuc3RhdGUgPT0gJ2FjdGl2
YXRlZCcpCisgICAgICAgICAgICAgICAgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfZG9u
ZSh0LCBzY29wZSk7CisgICAgICAgIH07CiAgICAgfQotfSwgJ1NlcnZpY2UgV29ya2VyIHN0YXRl
IHByb3BlcnR5IGFuZCAic3RhdGVjaGFuZ2UiIGV2ZW50Jyk7Cit9KCkpOwogPC9zY3JpcHQ+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9zeW5jZWQtc3RhdGUuaHR0cHMuaHRtbCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL3N5bmNlZC1zdGF0ZS5odHRwcy5odG1sCmluZGV4IDBlOWY2M2E5YTJl
NTI4ZTdmZmI4Zjk5MTNlZGZmYzhlMDI5NGFkOTguLmM0YTliNjY1NWNiMDY2MGE3OGEyN2M1MjM1
OTFjNDk1M2QzYjc3YTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3N5bmNlZC1zdGF0
ZS5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3N5bmNlZC1zdGF0ZS5odHRwcy5o
dG1sCkBAIC0zMyw3ICszMyw3IEBAIHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7CiAgICAgICAg
ICAgd29ya2VyID0gcmVnaXN0cmF0aW9uLmluc3RhbGxpbmc7CiAKICAgICAgICAgICB0LmFkZF9j
bGVhbnVwKGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICByZXR1cm4gci51bnJlZ2lzdGVyKCk7
CisgICAgICAgICAgICAgIHIudW5yZWdpc3RlcigpOwogICAgICAgICAgICAgfSk7CiAKICAgICAg
ICAgICByZXR1cm4gbmV4dENoYW5nZSh3b3JrZXIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvdW5jb250cm9sbGVkLXBhZ2UuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Vu
Y29udHJvbGxlZC1wYWdlLmh0dHBzLmh0bWwKaW5kZXggZTIyY2E4ZjBhOTFhZGY5ZmJjZjY0Yzc3
Y2QzZDFkNGRmMjc5NTZmMy4uYTk1MjNhNTRjZGNlMjdjY2RkYjU4NjAxMjExMDFjZGQxYmRiNTBj
YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdW5jb250cm9sbGVkLXBhZ2UuaHR0cHMu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91bmNvbnRyb2xsZWQtcGFnZS5odHRwcy5odG1s
CkBAIC0xOSwxNCArMTksMTAgQEAgZnVuY3Rpb24gZmV0Y2hfdXJsKHVybCkgewogfQogdmFyIHdv
cmtlciA9ICdyZXNvdXJjZXMvZmFpbC1vbi1mZXRjaC13b3JrZXIuanMnOwogCi1wcm9taXNlX3Rl
c3QoZnVuY3Rpb24odCkgeworYXN5bmNfdGVzdChmdW5jdGlvbih0KSB7CiAgICAgdmFyIHNjb3Bl
ID0gJ3Jlc291cmNlcy9zY29wZS91bmNvbnRyb2xsZWQtcGFnZS8nOwotICAgIHJldHVybiBzZXJ2
aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCB3b3JrZXIsIHNjb3BlKQorICAg
IHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHdvcmtlciwgc2NvcGUp
CiAgICAgICAudGhlbihmdW5jdGlvbihyZWcpIHsKLSAgICAgICAgICB0LmFkZF9jbGVhbnVwKGZ1
bmN0aW9uKCkgewotICAgICAgICAgICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rl
cih0LCBzY29wZSk7Ci0gICAgICAgICAgICB9KTsKLQogICAgICAgICAgIHJldHVybiB3YWl0X2Zv
cl9zdGF0ZSh0LCByZWcuaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOwogICAgICAgICB9KQogICAg
ICAgLnRoZW4oZnVuY3Rpb24oKSB7CkBAIC0zNCw2ICszMCwxMCBAQCBwcm9taXNlX3Rlc3QoZnVu
Y3Rpb24odCkgewogICAgICAgICB9KQogICAgICAgLnRoZW4oZnVuY3Rpb24odGV4dCkgewogICAg
ICAgICAgIGFzc2VydF9lcXVhbHModGV4dCwgJ2Egc2ltcGxlIHRleHQgZmlsZVxuJyk7Ci0gICAg
ICAgIH0pOworICAgICAgICAgIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX2RvbmUodCwg
c2NvcGUpOworICAgICAgICB9KQorICAgICAgLmNhdGNoKHQuc3RlcF9mdW5jKGZ1bmN0aW9uKHJl
YXNvbikgeworICAgICAgICAgIGFzc2VydF91bnJlYWNoZWQocmVhc29uLm1lc3NhZ2UpOworICAg
ICAgICB9KSk7CiAgIH0sICdGZXRjaCBldmVudHMgc2hvdWxkIG5vdCBnbyB0aHJvdWdoIHVuY29u
dHJvbGxlZCBwYWdlLicpOwogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci91bnJlZ2lzdGVyLXRoZW4tcmVnaXN0ZXItbmV3LXNjcmlwdC5odHRwcy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci91bnJlZ2lzdGVyLXRoZW4tcmVnaXN0ZXItbmV3LXNjcmlwdC5o
dHRwcy1leHBlY3RlZC50eHQKaW5kZXggMTk4OGZlZTczOGZkMWQyN2QxZjdjMDVkN2FkZGRlNjdk
NDc3ZTZiYS4uNjk1YmNiYzA1MmNiMmJkMzQ3NTQzMzg3MTVkNjI4OTRlN2YyODk4MiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvdW5yZWdpc3Rlci10aGVuLXJlZ2lzdGVyLW5ldy1zY3Jp
cHQuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VucmVnaXN0ZXIt
dGhlbi1yZWdpc3Rlci1uZXctc2NyaXB0Lmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMSw1ICsxLDYg
QEAKIAotUEFTUyBSZWdpc3RlcmluZyBhIG5ldyBzY3JpcHQgVVJMIHdoaWxlIGFuIHVucmVnaXN0
ZXJlZCByZWdpc3RyYXRpb24gaXMgaW4gdXNlIAotUEFTUyBSZWdpc3RlcmluZyBhIG5ldyBzY3Jp
cHQgVVJMIHRoYXQgNDA0cyBkb2VzIG5vdCByZXN1cnJlY3QgdW5yZWdpc3RlcmVkIHJlZ2lzdHJh
dGlvbiAKLVBBU1MgUmVnaXN0ZXJpbmcgYSBuZXcgc2NyaXB0IFVSTCB0aGF0IGZhaWxzIHRvIGlu
c3RhbGwgZG9lcyBub3QgcmVzdXJyZWN0IHVucmVnaXN0ZXJlZCByZWdpc3RyYXRpb24gCisKK0ZB
SUwgUmVnaXN0ZXJpbmcgYSBuZXcgc2NyaXB0IFVSTCB3aGlsZSBhbiB1bnJlZ2lzdGVyZWQgcmVn
aXN0cmF0aW9uIGlzIGluIHVzZSBhc3NlcnRfdW5yZWFjaGVkOiB1bmV4cGVjdGVkIHJlamVjdGlv
bjogbnVsbCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdyZWdpc3RyYXRpb24uaW5zdGFs
bGluZy5zY3JpcHRVUkwnKSBSZWFjaGVkIHVucmVhY2hhYmxlIGNvZGUKK0ZBSUwgUmVnaXN0ZXJp
bmcgYSBuZXcgc2NyaXB0IFVSTCB0aGF0IDQwNHMgZG9lcyByZXN1cnJlY3QgYW4gdW5yZWdpc3Rl
cmVkIHJlZ2lzdHJhdGlvbiBhc3NlcnRfdW5yZWFjaGVkOiB1bmV4cGVjdGVkIHJlamVjdGlvbjog
bnVsbCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdmcmFtZS5jb250ZW50V2luZG93Lm5h
dmlnYXRvci5zZXJ2aWNlV29ya2VyLmNvbnRyb2xsZXIuc2NyaXB0VVJMJykgUmVhY2hlZCB1bnJl
YWNoYWJsZSBjb2RlCitGQUlMIFJlZ2lzdGVyaW5nIGEgbmV3IHNjcmlwdCBVUkwgdGhhdCBmYWls
cyB0byBpbnN0YWxsIGRvZXMgcmVzdXJyZWN0IGFuIHVucmVnaXN0ZXJlZCByZWdpc3RyYXRpb24g
YXNzZXJ0X3VucmVhY2hlZDogdW5leHBlY3RlZCByZWplY3Rpb246IG51bGwgaXMgbm90IGFuIG9i
amVjdCAoZXZhbHVhdGluZyAncmVnaXN0cmF0aW9uLmFjdGl2ZS5zY3JpcHRVUkwnKSBSZWFjaGVk
IHVucmVhY2hhYmxlIGNvZGUKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdW5yZWdp
c3Rlci10aGVuLXJlZ2lzdGVyLW5ldy1zY3JpcHQuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3VucmVnaXN0ZXItdGhlbi1yZWdpc3Rlci1uZXctc2NyaXB0Lmh0dHBzLmh0bWwKaW5kZXgg
NDQ0YTVjMzY1Nzc2YmVhZjNmMTg2MjM0MTM0NGU5NWI3NTNhZmNhZS4uNTgyMTMyYTc0MmZjOWJi
MGZiYTYyZWUwMjUzNTZmOTgzOTM4ZGExYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
dW5yZWdpc3Rlci10aGVuLXJlZ2lzdGVyLW5ldy1zY3JpcHQuaHR0cHMuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci91bnJlZ2lzdGVyLXRoZW4tcmVnaXN0ZXItbmV3LXNjcmlwdC5odHRwcy5o
dG1sCkBAIC01LDEzMiArNSwxODAgQEAKIDxzY3JpcHQ+CiB2YXIgd29ya2VyX3VybCA9ICdyZXNv
dXJjZXMvZW1wdHktd29ya2VyLmpzJzsKIAotcHJvbWlzZV90ZXN0KGFzeW5jIGZ1bmN0aW9uKHQp
IHsKLSAgY29uc3Qgc2NvcGUgPSAncmVzb3VyY2VzL3Njb3BlL3VucmVnaXN0ZXItdGhlbi1yZWdp
c3Rlci1uZXctc2NyaXB0LXRoYXQtZXhpc3RzJzsKLSAgY29uc3QgcmVnaXN0cmF0aW9uID0gYXdh
aXQgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgd29ya2VyX3VybCwg
c2NvcGUpOwotICB0LmFkZF9jbGVhbnVwKCgpID0+IHJlZ2lzdHJhdGlvbi51bnJlZ2lzdGVyKCkp
OwotCi0gIGNvbnN0IG5ld1dvcmtlclVSTCA9IHdvcmtlcl91cmwgKyAnP25ldyc7Ci0gIGF3YWl0
IHdhaXRfZm9yX3N0YXRlKHQsIHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7
Ci0KLSAgY29uc3QgaWZyYW1lID0gYXdhaXQgd2l0aF9pZnJhbWUoc2NvcGUpOwotICB0LmFkZF9j
bGVhbnVwKCgpID0+IGlmcmFtZS5yZW1vdmUoKSk7Ci0KLSAgYXdhaXQgcmVnaXN0cmF0aW9uLnVu
cmVnaXN0ZXIoKTsKLQotICBjb25zdCBuZXdSZWdpc3RyYXRpb24gPSBhd2FpdCBuYXZpZ2F0b3Iu
c2VydmljZVdvcmtlci5yZWdpc3RlcihuZXdXb3JrZXJVUkwsIHsgc2NvcGUgfSk7Ci0gIHQuYWRk
X2NsZWFudXAoKCkgPT4gbmV3UmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIoKSk7Ci0KLSAgYXNzZXJ0
X2VxdWFscygKLSAgICByZWdpc3RyYXRpb24uaW5zdGFsbGluZywKLSAgICBudWxsLAotICAgICdi
ZWZvcmUgYWN0aXZhdGVkIHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nJwotICApOwotICBhc3NlcnRf
ZXF1YWxzKAotICAgIHJlZ2lzdHJhdGlvbi53YWl0aW5nLAotICAgIG51bGwsCi0gICAgJ2JlZm9y
ZSBhY3RpdmF0ZWQgcmVnaXN0cmF0aW9uLndhaXRpbmcnCi0gICk7Ci0gIGFzc2VydF9lcXVhbHMo
Ci0gICAgcmVnaXN0cmF0aW9uLmFjdGl2ZS5zY3JpcHRVUkwsCi0gICAgbm9ybWFsaXplVVJMKHdv
cmtlcl91cmwpLAotICAgICdiZWZvcmUgYWN0aXZhdGVkIHJlZ2lzdHJhdGlvbi5hY3RpdmUnCi0g
ICk7Ci0gIGFzc2VydF9lcXVhbHMoCi0gICAgbmV3UmVnaXN0cmF0aW9uLmluc3RhbGxpbmcuc2Ny
aXB0VVJMLAotICAgIG5vcm1hbGl6ZVVSTChuZXdXb3JrZXJVUkwpLAotICAgICdiZWZvcmUgYWN0
aXZhdGVkIG5ld1JlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nJwotICApOwotICBhc3NlcnRfZXF1YWxz
KAotICAgIG5ld1JlZ2lzdHJhdGlvbi53YWl0aW5nLAotICAgIG51bGwsCi0gICAgJ2JlZm9yZSBh
Y3RpdmF0ZWQgbmV3UmVnaXN0cmF0aW9uLndhaXRpbmcnCi0gICk7Ci0gIGFzc2VydF9lcXVhbHMo
Ci0gICAgbmV3UmVnaXN0cmF0aW9uLmFjdGl2ZSwKLSAgICBudWxsLAotICAgICdiZWZvcmUgYWN0
aXZhdGVkIG5ld1JlZ2lzdHJhdGlvbi5hY3RpdmUnCi0gICk7Ci0gIGlmcmFtZS5yZW1vdmUoKTsK
LQotICBhd2FpdCB3YWl0X2Zvcl9zdGF0ZSh0LCBuZXdSZWdpc3RyYXRpb24uaW5zdGFsbGluZywg
J2FjdGl2YXRlZCcpOwotCi0gIGFzc2VydF9lcXVhbHMoCi0gICAgbmV3UmVnaXN0cmF0aW9uLmlu
c3RhbGxpbmcsCi0gICAgbnVsbCwKLSAgICAnYWZ0ZXIgYWN0aXZhdGVkIG5ld1JlZ2lzdHJhdGlv
bi5pbnN0YWxsaW5nJwotICApOwotICBhc3NlcnRfZXF1YWxzKAotICAgIG5ld1JlZ2lzdHJhdGlv
bi53YWl0aW5nLAotICAgIG51bGwsCi0gICAgJ2FmdGVyIGFjdGl2YXRlZCBuZXdSZWdpc3RyYXRp
b24ud2FpdGluZycKLSAgKTsKLSAgYXNzZXJ0X2VxdWFscygKLSAgICBuZXdSZWdpc3RyYXRpb24u
YWN0aXZlLnNjcmlwdFVSTCwKLSAgICBub3JtYWxpemVVUkwobmV3V29ya2VyVVJMKSwKLSAgICAn
YWZ0ZXIgYWN0aXZhdGVkIG5ld1JlZ2lzdHJhdGlvbi5hY3RpdmUnCi0gICk7Ci0KLSAgY29uc3Qg
bmV3SWZyYW1lID0gYXdhaXQgd2l0aF9pZnJhbWUoc2NvcGUpOwotICB0LmFkZF9jbGVhbnVwKCgp
ID0+IG5ld0lmcmFtZS5yZW1vdmUoKSk7Ci0KLSAgYXNzZXJ0X2VxdWFscygKLSAgICBuZXdJZnJh
bWUuY29udGVudFdpbmRvdy5uYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5jb250cm9sbGVyLnNjcmlw
dFVSTCwKLSAgICBub3JtYWxpemVVUkwobmV3V29ya2VyVVJMKSwKLSAgICAndGhlIG5ldyB3b3Jr
ZXIgc2hvdWxkIGNvbnRyb2wgYSBuZXcgZG9jdW1lbnQnCi0gICk7Cithc3luY190ZXN0KGZ1bmN0
aW9uKHQpIHsKKyAgICB2YXIgc2NvcGUgPSAncmVzb3VyY2VzL3Njb3BlL3VucmVnaXN0ZXItdGhl
bi1yZWdpc3Rlci1uZXctc2NyaXB0LXRoYXQtZXhpc3RzJzsKKyAgICB2YXIgbmV3X3dvcmtlcl91
cmwgPSB3b3JrZXJfdXJsICsgJz9uZXcnOworICAgIHZhciBpZnJhbWU7CisgICAgdmFyIHJlZ2lz
dHJhdGlvbjsKKyAgICB2YXIgbmV3X3JlZ2lzdHJhdGlvbjsKKworICAgIHNlcnZpY2Vfd29ya2Vy
X3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHdvcmtlcl91cmwsIHNjb3BlKQorICAgICAgLnRo
ZW4oZnVuY3Rpb24ocikgeworICAgICAgICAgIHJlZ2lzdHJhdGlvbiA9IHI7CisgICAgICAgICAg
cmV0dXJuIHdhaXRfZm9yX3N0YXRlKHQsIHIuaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOworICAg
ICAgICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7CisgICAgICAgICAgcmV0dXJuIHdpdGhf
aWZyYW1lKHNjb3BlKTsKKyAgICAgICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKGZyYW1lKSB7
CisgICAgICAgICAgaWZyYW1lID0gZnJhbWU7CisgICAgICAgICAgcmV0dXJuIHJlZ2lzdHJhdGlv
bi51bnJlZ2lzdGVyKCk7CisgICAgICAgIH0pCisgICAgICAudGhlbihmdW5jdGlvbigpIHsKKyAg
ICAgICAgICByZXR1cm4gbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIobmV3X3dvcmtl
cl91cmwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHsgc2NvcGU6IHNjb3BlIH0pOworICAgICAgICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24ocikg
eworICAgICAgICAgIG5ld19yZWdpc3RyYXRpb24gPSByOworICAgICAgICAgIGFzc2VydF9lcXVh
bHMocmVnaXN0cmF0aW9uLmluc3RhbGxpbmcuc2NyaXB0VVJMLAorICAgICAgICAgICAgICAgICAg
ICAgICAgbm9ybWFsaXplVVJMKG5ld193b3JrZXJfdXJsKSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICdiZWZvcmUgYWN0aXZhdGVkIHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nJyk7CisgICAgICAg
ICAgYXNzZXJ0X2VxdWFscyhyZWdpc3RyYXRpb24ud2FpdGluZywgbnVsbCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICdiZWZvcmUgYWN0aXZhdGVkIHJlZ2lzdHJhdGlvbi53YWl0aW5nJyk7Cisg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhyZWdpc3RyYXRpb24uYWN0aXZlLnNjcmlwdFVSTCwgbm9y
bWFsaXplVVJMKHdvcmtlcl91cmwpLAorICAgICAgICAgICAgICAgICAgICAgICAgJ2JlZm9yZSBh
Y3RpdmF0ZWQgcmVnaXN0cmF0aW9uLmFjdGl2ZScpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMo
bmV3X3JlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLnNjcmlwdFVSTCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgIG5vcm1hbGl6ZVVSTChuZXdfd29ya2VyX3VybCksCisgICAgICAgICAgICAgICAgICAg
ICAgICAnYmVmb3JlIGFjdGl2YXRlZCBuZXdfcmVnaXN0cmF0aW9uLmluc3RhbGxpbmcnKTsKKyAg
ICAgICAgICBhc3NlcnRfZXF1YWxzKG5ld19yZWdpc3RyYXRpb24ud2FpdGluZywgbnVsbCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICdiZWZvcmUgYWN0aXZhdGVkIG5ld19yZWdpc3RyYXRpb24u
d2FpdGluZycpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMobmV3X3JlZ2lzdHJhdGlvbi5hY3Rp
dmUuc2NyaXB0VVJMLAorICAgICAgICAgICAgICAgICAgICAgICAgbm9ybWFsaXplVVJMKHdvcmtl
cl91cmwpLAorICAgICAgICAgICAgICAgICAgICAgICAgJ2JlZm9yZSBhY3RpdmF0ZWQgbmV3X3Jl
Z2lzdHJhdGlvbi5hY3RpdmUnKTsKKyAgICAgICAgICBpZnJhbWUucmVtb3ZlKCk7CisgICAgICAg
ICAgcmV0dXJuIHdhaXRfZm9yX3N0YXRlKHQsIHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLCAnYWN0
aXZhdGVkJyk7CisgICAgICAgIH0pCisgICAgICAudGhlbihmdW5jdGlvbigpIHsKKyAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKG5ld19yZWdpc3RyYXRpb24uaW5zdGFsbGluZywgbnVsbCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICdhZnRlciBhY3RpdmF0ZWQgbmV3X3JlZ2lzdHJhdGlvbi5pbnN0
YWxsaW5nJyk7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhuZXdfcmVnaXN0cmF0aW9uLndhaXRp
bmcsIG51bGwsCisgICAgICAgICAgICAgICAgICAgICAgICAnYWZ0ZXIgYWN0aXZhdGVkIG5ld19y
ZWdpc3RyYXRpb24ud2FpdGluZycpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMobmV3X3JlZ2lz
dHJhdGlvbi5hY3RpdmUuc2NyaXB0VVJMLAorICAgICAgICAgICAgICAgICAgICAgICAgbm9ybWFs
aXplVVJMKG5ld193b3JrZXJfdXJsKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICdhZnRlciBh
Y3RpdmF0ZWQgbmV3X3JlZ2lzdHJhdGlvbi5hY3RpdmUnKTsKKyAgICAgICAgICByZXR1cm4gd2l0
aF9pZnJhbWUoc2NvcGUpOworICAgICAgICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24oZnJhbWUp
IHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKAorICAgICAgICAgICAgICBmcmFtZS5jb250ZW50
V2luZG93Lm5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLmNvbnRyb2xsZXIuc2NyaXB0VVJMLAorICAg
ICAgICAgICAgICBub3JtYWxpemVVUkwobmV3X3dvcmtlcl91cmwpLAorICAgICAgICAgICAgICAn
dGhlIG5ldyB3b3JrZXIgc2hvdWxkIGNvbnRyb2wgYSBuZXcgZG9jdW1lbnQnKTsKKyAgICAgICAg
ICBmcmFtZS5yZW1vdmUoKTsKKyAgICAgICAgICByZXR1cm4gcmVnaXN0cmF0aW9uLnVucmVnaXN0
ZXIoKTsKKyAgICAgICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKCkgeworICAgICAgICAgIHQu
ZG9uZSgpOworICAgICAgICB9KQorICAgICAgLmNhdGNoKHVucmVhY2hlZF9yZWplY3Rpb24odCkp
OwogfSwgJ1JlZ2lzdGVyaW5nIGEgbmV3IHNjcmlwdCBVUkwgd2hpbGUgYW4gdW5yZWdpc3RlcmVk
IHJlZ2lzdHJhdGlvbiBpcyBpbiB1c2UnKTsKIAotcHJvbWlzZV90ZXN0KGFzeW5jIGZ1bmN0aW9u
KHQpIHsKLSAgY29uc3Qgc2NvcGUgPSAncmVzb3VyY2VzL3Njb3BlL3VucmVnaXN0ZXItdGhlbi1y
ZWdpc3Rlci1uZXctc2NyaXB0LXRoYXQtNDA0cyc7Ci0gIGNvbnN0IHJlZ2lzdHJhdGlvbiA9IGF3
YWl0IHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHdvcmtlcl91cmws
IHNjb3BlKTsKLSAgdC5hZGRfY2xlYW51cCgoKSA9PiByZWdpc3RyYXRpb24udW5yZWdpc3Rlcigp
KTsKLQotICBhd2FpdCB3YWl0X2Zvcl9zdGF0ZSh0LCByZWdpc3RyYXRpb24uaW5zdGFsbGluZywg
J2FjdGl2YXRlZCcpOwotCi0gIGNvbnN0IGlmcmFtZSA9IGF3YWl0IHdpdGhfaWZyYW1lKHNjb3Bl
KTsKLSAgdC5hZGRfY2xlYW51cCgoKSA9PiBpZnJhbWUucmVtb3ZlKCkpOwotCi0gIGF3YWl0IHJl
Z2lzdHJhdGlvbi51bnJlZ2lzdGVyKCk7Ci0KLSAgYXdhaXQgcHJvbWlzZV9yZWplY3RzKAotICAg
IHQsIG5ldyBUeXBlRXJyb3IoKSwKLSAgICBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3Rl
cigndGhpcy13aWxsLTQwNCcsIHsgc2NvcGUgfSkKLSAgKTsKLQotICBhc3NlcnRfZXF1YWxzKHJl
Z2lzdHJhdGlvbi5pbnN0YWxsaW5nLCBudWxsLCAncmVnaXN0cmF0aW9uLmluc3RhbGxpbmcnKTsK
LSAgYXNzZXJ0X2VxdWFscyhyZWdpc3RyYXRpb24ud2FpdGluZywgbnVsbCwgJ3JlZ2lzdHJhdGlv
bi53YWl0aW5nJyk7Ci0gIGFzc2VydF9lcXVhbHMocmVnaXN0cmF0aW9uLmFjdGl2ZS5zY3JpcHRV
UkwsIG5vcm1hbGl6ZVVSTCh3b3JrZXJfdXJsKSwgJ3JlZ2lzdHJhdGlvbi5hY3RpdmUnKTsKLQot
ICBjb25zdCBuZXdJZnJhbWUgPSBhd2FpdCB3aXRoX2lmcmFtZShzY29wZSk7Ci0gIHQuYWRkX2Ns
ZWFudXAoKCkgPT4gbmV3SWZyYW1lLnJlbW92ZSgpKTsKLQotICBhc3NlcnRfZXF1YWxzKG5ld0lm
cmFtZS5jb250ZW50V2luZG93Lm5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLmNvbnRyb2xsZXIsIG51
bGwsICdEb2N1bWVudCBzaG91bGQgbm90IGJlIGNvbnRyb2xsZWQnKTsKLX0sICdSZWdpc3Rlcmlu
ZyBhIG5ldyBzY3JpcHQgVVJMIHRoYXQgNDA0cyBkb2VzIG5vdCByZXN1cnJlY3QgdW5yZWdpc3Rl
cmVkIHJlZ2lzdHJhdGlvbicpOwotCi1wcm9taXNlX3Rlc3QoYXN5bmMgZnVuY3Rpb24odCkgewot
ICBjb25zdCBzY29wZSA9ICdyZXNvdXJjZXMvc2NvcGUvdW5yZWdpc3Rlci10aGVuLXJlZ2lzdGVy
LXJlamVjdC1pbnN0YWxsLXdvcmtlcic7Ci0gIGNvbnN0IHJlZ2lzdHJhdGlvbiA9IGF3YWl0IHNl
cnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHdvcmtlcl91cmwsIHNjb3Bl
KTsKLSAgdC5hZGRfY2xlYW51cCgoKSA9PiByZWdpc3RyYXRpb24udW5yZWdpc3RlcigpKTsKLQot
ICBhd2FpdCB3YWl0X2Zvcl9zdGF0ZSh0LCByZWdpc3RyYXRpb24uaW5zdGFsbGluZywgJ2FjdGl2
YXRlZCcpOwotCi0gIGNvbnN0IGlmcmFtZSA9IGF3YWl0IHdpdGhfaWZyYW1lKHNjb3BlKTsKLSAg
dC5hZGRfY2xlYW51cCgoKSA9PiBpZnJhbWUucmVtb3ZlKCkpOwotCi0gIGF3YWl0IHJlZ2lzdHJh
dGlvbi51bnJlZ2lzdGVyKCk7Ci0KLSAgY29uc3QgbmV3UmVnaXN0cmF0aW9uID0gYXdhaXQgbmF2
aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoCi0gICAgJ3Jlc291cmNlcy9yZWplY3QtaW5z
dGFsbC13b3JrZXIuanMnLCB7IHNjb3BlIH0KLSAgKTsKLSAgdC5hZGRfY2xlYW51cCgoKSA9PiBu
ZXdSZWdpc3RyYXRpb24udW5yZWdpc3RlcigpKTsKLQotICBhd2FpdCB3YWl0X2Zvcl9zdGF0ZSh0
LCBuZXdSZWdpc3RyYXRpb24uaW5zdGFsbGluZywgJ3JlZHVuZGFudCcpOwotCi0gIGFzc2VydF9l
cXVhbHMocmVnaXN0cmF0aW9uLmluc3RhbGxpbmcsIG51bGwsICdyZWdpc3RyYXRpb24uaW5zdGFs
bGluZycpOwotICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi53YWl0aW5nLCBudWxsLCAncmVn
aXN0cmF0aW9uLndhaXRpbmcnKTsKLSAgYXNzZXJ0X2VxdWFscyhyZWdpc3RyYXRpb24uYWN0aXZl
LnNjcmlwdFVSTCwgbm9ybWFsaXplVVJMKHdvcmtlcl91cmwpLAotICAgICAgICAgICAgICAgICdy
ZWdpc3RyYXRpb24uYWN0aXZlJyk7Ci0gIGFzc2VydF9ub3RfZXF1YWxzKHJlZ2lzdHJhdGlvbiwg
bmV3UmVnaXN0cmF0aW9uLCAnTmV3IHJlZ2lzdHJhdGlvbiBpcyBkaWZmZXJlbnQnKTsKLX0sICdS
ZWdpc3RlcmluZyBhIG5ldyBzY3JpcHQgVVJMIHRoYXQgZmFpbHMgdG8gaW5zdGFsbCBkb2VzIG5v
dCByZXN1cnJlY3QgdW5yZWdpc3RlcmVkIHJlZ2lzdHJhdGlvbicpOworYXN5bmNfdGVzdChmdW5j
dGlvbih0KSB7CisgICAgdmFyIHNjb3BlID0gJ3Jlc291cmNlcy9zY29wZS91bnJlZ2lzdGVyLXRo
ZW4tcmVnaXN0ZXItbmV3LXNjcmlwdC10aGF0LTQwNHMnOworICAgIHZhciBpZnJhbWU7CisgICAg
dmFyIHJlZ2lzdHJhdGlvbjsKKworICAgIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3Jl
Z2lzdGVyKHQsIHdvcmtlcl91cmwsIHNjb3BlKQorICAgICAgLnRoZW4oZnVuY3Rpb24ocikgewor
ICAgICAgICAgIHJlZ2lzdHJhdGlvbiA9IHI7CisgICAgICAgICAgcmV0dXJuIHdhaXRfZm9yX3N0
YXRlKHQsIHIuaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOworICAgICAgICB9KQorICAgICAgLnRo
ZW4oZnVuY3Rpb24oKSB7CisgICAgICAgICAgcmV0dXJuIHdpdGhfaWZyYW1lKHNjb3BlKTsKKyAg
ICAgICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKGZyYW1lKSB7CisgICAgICAgICAgaWZyYW1l
ID0gZnJhbWU7CisgICAgICAgICAgcmV0dXJuIHJlZ2lzdHJhdGlvbi51bnJlZ2lzdGVyKCk7Cisg
ICAgICAgIH0pCisgICAgICAudGhlbihmdW5jdGlvbigpIHsKKyAgICAgICAgICAvLyBTdGVwIDUu
MSBvZiBSZWdpc3RlciBjbGVhcnMgdGhlIHVuaW5zdGFsbCBmbGFnIGJlZm9yZSBmZXRjaGluZwor
ICAgICAgICAgIC8vIHRoZSBzY3JpcHQ6CisgICAgICAgICAgLy8KKyAgICAgICAgICAvLyAgaHR0
cHM6Ly93M2MuZ2l0aHViLmlvL1NlcnZpY2VXb3JrZXIvI3JlZ2lzdGVyLWFsZ29yaXRobQorICAg
ICAgICAgIHZhciBwcm9taXNlID0gbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoJ3Ro
aXMtd2lsbC00MDQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgeyBzY29wZTogc2NvcGUgfSk7CisgICAgICAgICAgcmV0dXJuIHByb21p
c2U7CisgICAgICAgIH0pCisgICAgICAudGhlbigKKyAgICAgICAgZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgYXNzZXJ0X3VucmVhY2hlZCgncmVnaXN0ZXIgc2hvdWxkIHJlamVjdCB0aGUgcHJvbWlz
ZScpOworICAgICAgICB9LAorICAgICAgICBmdW5jdGlvbigpIHsKKyAgICAgICAgICBhc3NlcnRf
ZXF1YWxzKHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLCBudWxsLAorICAgICAgICAgICAgICAgICAg
ICAgICAgJ3JlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nJyk7CisgICAgICAgICAgYXNzZXJ0X2VxdWFs
cyhyZWdpc3RyYXRpb24ud2FpdGluZywgbnVsbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICdy
ZWdpc3RyYXRpb24ud2FpdGluZycpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVnaXN0cmF0
aW9uLmFjdGl2ZS5zY3JpcHRVUkwsIG5vcm1hbGl6ZVVSTCh3b3JrZXJfdXJsKSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICdyZWdpc3RyYXRpb24uYWN0aXZlJyk7CisgICAgICAgICAgaWZyYW1l
LnJlbW92ZSgpOworICAgICAgICAgIHJldHVybiB3aXRoX2lmcmFtZShzY29wZSk7CisgICAgICAg
IH0pCisgICAgICAudGhlbihmdW5jdGlvbihmcmFtZSkgeworICAgICAgICAgIGFzc2VydF9lcXVh
bHMoCisgICAgICAgICAgICAgIGZyYW1lLmNvbnRlbnRXaW5kb3cubmF2aWdhdG9yLnNlcnZpY2VX
b3JrZXIuY29udHJvbGxlci5zY3JpcHRVUkwsCisgICAgICAgICAgICAgIG5vcm1hbGl6ZVVSTCh3
b3JrZXJfdXJsKSwKKyAgICAgICAgICAgICAgJ3RoZSBvcmlnaW5hbCB3b3JrZXIgc2hvdWxkIGNv
bnRyb2wgYSBuZXcgZG9jdW1lbnQnKTsKKyAgICAgICAgICBmcmFtZS5yZW1vdmUoKTsKKyAgICAg
ICAgICByZXR1cm4gcmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIoKTsKKyAgICAgICAgfSkKKyAgICAg
IC50aGVuKGZ1bmN0aW9uKCkgeworICAgICAgICAgIHQuZG9uZSgpOworICAgICAgICB9KQorICAg
ICAgLmNhdGNoKHVucmVhY2hlZF9yZWplY3Rpb24odCkpOworfSwgJ1JlZ2lzdGVyaW5nIGEgbmV3
IHNjcmlwdCBVUkwgdGhhdCA0MDRzIGRvZXMgcmVzdXJyZWN0IGFuICcgKworICAgICAgICd1bnJl
Z2lzdGVyZWQgcmVnaXN0cmF0aW9uJyk7CisKK2FzeW5jX3Rlc3QoZnVuY3Rpb24odCkgeworICAg
IHZhciBzY29wZSA9ICdyZXNvdXJjZXMvc2NvcGUvdW5yZWdpc3Rlci10aGVuLXJlZ2lzdGVyLXJl
amVjdC1pbnN0YWxsLXdvcmtlcic7CisgICAgdmFyIGlmcmFtZTsKKyAgICB2YXIgcmVnaXN0cmF0
aW9uOworCisgICAgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgd29y
a2VyX3VybCwgc2NvcGUpCisgICAgICAudGhlbihmdW5jdGlvbihyKSB7CisgICAgICAgICAgcmVn
aXN0cmF0aW9uID0gcjsKKyAgICAgICAgICByZXR1cm4gd2FpdF9mb3Jfc3RhdGUodCwgci5pbnN0
YWxsaW5nLCAnYWN0aXZhdGVkJyk7CisgICAgICAgIH0pCisgICAgICAudGhlbihmdW5jdGlvbigp
IHsKKyAgICAgICAgICByZXR1cm4gd2l0aF9pZnJhbWUoc2NvcGUpOworICAgICAgICB9KQorICAg
ICAgLnRoZW4oZnVuY3Rpb24oZnJhbWUpIHsKKyAgICAgICAgICBpZnJhbWUgPSBmcmFtZTsKKyAg
ICAgICAgICByZXR1cm4gcmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIoKTsKKyAgICAgICAgfSkKKyAg
ICAgIC50aGVuKGZ1bmN0aW9uKCkgeworICAgICAgICAgIC8vIFN0ZXAgNS4xIG9mIFJlZ2lzdGVy
IGNsZWFycyB0aGUgdW5pbnN0YWxsIGZsYWcgYmVmb3JlIGZpcmluZworICAgICAgICAgIC8vIHRo
ZSBpbnN0YWxsIGV2ZW50OgorICAgICAgICAgIC8vCisgICAgICAgICAgLy8gIGh0dHBzOi8vdzNj
LmdpdGh1Yi5pby9TZXJ2aWNlV29ya2VyLyNyZWdpc3Rlci1hbGdvcml0aG0KKyAgICAgICAgICB2
YXIgcHJvbWlzZSA9IG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKAorICAgICAgICAg
ICAgICAncmVzb3VyY2VzL3JlamVjdC1pbnN0YWxsLXdvcmtlci5qcycsIHsgc2NvcGU6IHNjb3Bl
IH0pOworICAgICAgICAgIHJldHVybiBwcm9taXNlOworICAgICAgICB9KQorICAgICAgLnRoZW4o
ZnVuY3Rpb24ocikgeworICAgICAgICAgIHJlZ2lzdHJhdGlvbiA9IHI7CisgICAgICAgICAgcmV0
dXJuIHdhaXRfZm9yX3N0YXRlKHQsIHIuaW5zdGFsbGluZywgJ3JlZHVuZGFudCcpOworICAgICAg
ICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhy
ZWdpc3RyYXRpb24uaW5zdGFsbGluZywgbnVsbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICdy
ZWdpc3RyYXRpb24uaW5zdGFsbGluZycpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVnaXN0
cmF0aW9uLndhaXRpbmcsIG51bGwsCisgICAgICAgICAgICAgICAgICAgICAgICAncmVnaXN0cmF0
aW9uLndhaXRpbmcnKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi5hY3Rp
dmUuc2NyaXB0VVJMLCBub3JtYWxpemVVUkwod29ya2VyX3VybCksCisgICAgICAgICAgICAgICAg
ICAgICAgICAncmVnaXN0cmF0aW9uLmFjdGl2ZScpOworICAgICAgICAgIGlmcmFtZS5yZW1vdmUo
KTsKKyAgICAgICAgICByZXR1cm4gd2l0aF9pZnJhbWUoc2NvcGUpOworICAgICAgICB9KQorICAg
ICAgLnRoZW4oZnVuY3Rpb24oZnJhbWUpIHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKAorICAg
ICAgICAgICAgICBmcmFtZS5jb250ZW50V2luZG93Lm5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLmNv
bnRyb2xsZXIuc2NyaXB0VVJMLAorICAgICAgICAgICAgICBub3JtYWxpemVVUkwod29ya2VyX3Vy
bCksCisgICAgICAgICAgICAgICd0aGUgb3JpZ2luYWwgd29ya2VyIHNob3VsZCBjb250cm9sIGEg
bmV3IGRvY3VtZW50Jyk7CisgICAgICAgICAgZnJhbWUucmVtb3ZlKCk7CisgICAgICAgICAgcmV0
dXJuIHJlZ2lzdHJhdGlvbi51bnJlZ2lzdGVyKCk7CisgICAgICAgIH0pCisgICAgICAudGhlbihm
dW5jdGlvbigpIHsKKyAgICAgICAgICB0LmRvbmUoKTsKKyAgICAgICAgfSkKKyAgICAgIC5jYXRj
aCh1bnJlYWNoZWRfcmVqZWN0aW9uKHQpKTsKKyAgfSwgJ1JlZ2lzdGVyaW5nIGEgbmV3IHNjcmlw
dCBVUkwgdGhhdCBmYWlscyB0byBpbnN0YWxsIGRvZXMgcmVzdXJyZWN0ICcgKworICAgICAgICdh
biB1bnJlZ2lzdGVyZWQgcmVnaXN0cmF0aW9uJyk7CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL3VucmVnaXN0ZXItdGhlbi1yZWdpc3Rlci5odHRwcy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci91bnJlZ2lzdGVyLXRoZW4tcmVnaXN0ZXIuaHR0cHMtZXhw
ZWN0ZWQudHh0CmluZGV4IDVmYTk5YzMyOTIyNTM5OTVjOTA1ZTZlN2M0MDMyZmM1YmU2MGYwZTEu
LmMyNzhjOWU2ODExMjYwMGU2YmVlY2Q1MWIzMTQxMjJkMDRiMDQ4YzUgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL3VucmVnaXN0ZXItdGhlbi1yZWdpc3Rlci5odHRwcy1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdW5yZWdpc3Rlci10aGVuLXJlZ2lzdGVyLmh0dHBz
LWV4cGVjdGVkLnR4dApAQCAtMSw2ICsxLDggQEAKIAorCiBQQVNTIFVucmVnaXN0ZXIgdGhlbiBy
ZWdpc3RlciByZXNvbHZlcyB0byBhIG5ldyB2YWx1ZSAKLVBBU1MgVW5yZWdpc3RlciB0aGVuIHJl
Z2lzdGVyIGRvZXMgbm90IHJlc29sdmUgdG8gdGhlIG9yaWdpbmFsIHZhbHVlIGV2ZW4gaWYgdGhl
IHJlZ2lzdHJhdGlvbiBpcyBpbiB1c2UuIAotUEFTUyBVbnJlZ2lzdGVyIHRoZW4gcmVnaXN0ZXIg
ZG9lcyBub3QgYWZmZWN0IGV4aXN0aW5nIGNvbnRyb2xsZWUgCi1QQVNTIFVucmVnaXN0ZXIgdGhl
biByZWdpc3RlciBkb2VzIG5vdCByZXN1cnJlY3QgdGhlIHJlZ2lzdHJhdGlvbiAKK0ZBSUwgVW5y
ZWdpc3RlciB0aGVuIHJlZ2lzdGVyIHJlc29sdmVzIHRvIHRoZSBvcmlnaW5hbCB2YWx1ZSBpZiB0
aGUgcmVnaXN0cmF0aW9uIGlzIGluIHVzZS4gYXNzZXJ0X3VucmVhY2hlZDogdW5leHBlY3RlZCBy
ZWplY3Rpb246IGFzc2VydF9lcXVhbHM6IG5ldyByZWdpc3RyYXRpb24gc2hvdWxkIHJlc29sdmUg
dG8gdGhlIHNhbWUgcmVnaXN0cmF0aW9uIGV4cGVjdGVkIG9iamVjdCAiW29iamVjdCBTZXJ2aWNl
V29ya2VyUmVnaXN0cmF0aW9uXSIgYnV0IGdvdCBvYmplY3QgIltvYmplY3QgU2VydmljZVdvcmtl
clJlZ2lzdHJhdGlvbl0iIFJlYWNoZWQgdW5yZWFjaGFibGUgY29kZQorUEFTUyBSZWxvYWRpbmcg
dGhlIGxhc3QgY29udHJvbGxlZCBpZnJhbWUgYWZ0ZXIgdW5yZWdpc3RyYXRpb24gc2hvdWxkIGVu
c3VyZSB0aGUgZGVsZXRpb24gb2YgdGhlIHJlZ2lzdHJhdGlvbiAKK0ZBSUwgVW5yZWdpc3RlciB0
aGVuIHJlZ2lzdGVyIGRvZXMgbm90IGFmZmVjdCBleGlzdGluZyBjb250cm9sbGVlIGFzc2VydF91
bnJlYWNoZWQ6IHVuZXhwZWN0ZWQgcmVqZWN0aW9uOiBhc3NlcnRfZXF1YWxzOiBpbnN0YWxsaW5n
IHZlcnNpb24gaXMgbnVsbCBleHBlY3RlZCBudWxsIGJ1dCBnb3Qgb2JqZWN0ICJbb2JqZWN0IFNl
cnZpY2VXb3JrZXJdIiBSZWFjaGVkIHVucmVhY2hhYmxlIGNvZGUKK1BBU1MgVW5yZWdpc3RlciB0
aGVuIHJlZ2lzdGVyIHJlc3VycmVjdHMgdGhlIHJlZ2lzdHJhdGlvbiAKIApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvdW5yZWdpc3Rlci10aGVuLXJlZ2lzdGVyLmh0dHBzLmh0bWwgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci91bnJlZ2lzdGVyLXRoZW4tcmVnaXN0ZXIuaHR0cHMuaHRtbAppbmRl
eCBiNjE2MDhjODQxOWZkNGYzNjJkZWU1MzMwNDA0ZTI3NDNhMmYwNWY2Li42YzBhMGFlY2YzZjU2
MmE1NmVkZjdmZjY1YWNiOWZjZDY3NWNkZmE2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci91bnJlZ2lzdGVyLXRoZW4tcmVnaXN0ZXIuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci91bnJlZ2lzdGVyLXRoZW4tcmVnaXN0ZXIuaHR0cHMuaHRtbApAQCAtNSw1MyArNSwxMDMg
QEAKIDxzY3JpcHQ+CiB2YXIgd29ya2VyX3VybCA9ICdyZXNvdXJjZXMvZW1wdHktd29ya2VyLmpz
JzsKIAotcHJvbWlzZV90ZXN0KGFzeW5jIGZ1bmN0aW9uKHQpIHsKLSAgICBjb25zdCBzY29wZSA9
ICdyZXNvdXJjZXMvc2NvcGUvcmUtcmVnaXN0ZXItcmVzb2x2ZXMtdG8tbmV3LXZhbHVlJzsKLSAg
ICBjb25zdCByZWdpc3RyYXRpb24gPSBhd2FpdCBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2Fu
ZF9yZWdpc3Rlcih0LCB3b3JrZXJfdXJsLCBzY29wZSk7Ci0gICAgdC5hZGRfY2xlYW51cCgoKSA9
PiByZWdpc3RyYXRpb24udW5yZWdpc3RlcigpKTsKLQotICAgIGF3YWl0IHdhaXRfZm9yX3N0YXRl
KHQsIHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7Ci0gICAgYXdhaXQgcmVn
aXN0cmF0aW9uLnVucmVnaXN0ZXIoKTsKLSAgICBjb25zdCBuZXdSZWdpc3RyYXRpb24gPSBhd2Fp
dCBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3Rlcih3b3JrZXJfdXJsLCB7IHNjb3BlIH0p
OwotICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gbmV3UmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIoKSk7
Cithc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgICB2YXIgc2NvcGUgPSAncmVzb3VyY2VzL3Nj
b3BlL3JlLXJlZ2lzdGVyLXJlc29sdmVzLXRvLW5ldy12YWx1ZSc7CisgICAgdmFyIHJlZ2lzdHJh
dGlvbjsKIAotICAgIGFzc2VydF9ub3RfZXF1YWxzKAotICAgICAgcmVnaXN0cmF0aW9uLCBuZXdS
ZWdpc3RyYXRpb24sCi0gICAgICAncmVnaXN0ZXIgc2hvdWxkIHJlc29sdmUgdG8gYSBuZXcgdmFs
dWUnCi0gICAgKTsKKyAgICBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0
LCB3b3JrZXJfdXJsLCBzY29wZSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKHIpIHsKKyAgICAgICAg
ICByZWdpc3RyYXRpb24gPSByOworICAgICAgICAgIHJldHVybiB3YWl0X2Zvcl9zdGF0ZSh0LCBy
Lmluc3RhbGxpbmcsICdhY3RpdmF0ZWQnKTsKKyAgICAgICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0
aW9uKCkgeworICAgICAgICAgIHJldHVybiByZWdpc3RyYXRpb24udW5yZWdpc3RlcigpOworICAg
ICAgICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7CisgICAgICAgICAgcmV0dXJuIG5hdmln
YXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKHdvcmtlcl91cmwsIHsgc2NvcGU6IHNjb3BlIH0p
OworICAgICAgICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24obmV3X3JlZ2lzdHJhdGlvbikgewor
ICAgICAgICAgIGFzc2VydF9ub3RfZXF1YWxzKHJlZ2lzdHJhdGlvbiwgbmV3X3JlZ2lzdHJhdGlv
biwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAncmVnaXN0ZXIgc2hvdWxkIHJlc29sdmUg
dG8gYSBuZXcgdmFsdWUnKTsKKyAgICAgICAgICBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2Fu
ZF9kb25lKHQsIHNjb3BlKTsKKyAgICAgICAgfSkKKyAgICAgIC5jYXRjaCh1bnJlYWNoZWRfcmVq
ZWN0aW9uKHQpKTsKICAgfSwgJ1VucmVnaXN0ZXIgdGhlbiByZWdpc3RlciByZXNvbHZlcyB0byBh
IG5ldyB2YWx1ZScpOwogCi1wcm9taXNlX3Rlc3QoYXN5bmMgZnVuY3Rpb24odCkgewotICBjb25z
dCBzY29wZSA9ICdyZXNvdXJjZXMvc2NvcGUvcmUtcmVnaXN0ZXItd2hpbGUtb2xkLXJlZ2lzdHJh
dGlvbi1pbi11c2UnOwotICBjb25zdCByZWdpc3RyYXRpb24gPSBhd2FpdCBzZXJ2aWNlX3dvcmtl
cl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCB3b3JrZXJfdXJsLCBzY29wZSk7Ci0gIHQuYWRk
X2NsZWFudXAoKCkgPT4gcmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIoKSk7Ci0KLSAgYXdhaXQgd2Fp
dF9mb3Jfc3RhdGUodCwgcmVnaXN0cmF0aW9uLmluc3RhbGxpbmcsICdhY3RpdmF0ZWQnKTsKLSAg
Y29uc3QgZnJhbWUgPSBhd2FpdCB3aXRoX2lmcmFtZShzY29wZSk7Ci0gIHQuYWRkX2NsZWFudXAo
KCkgPT4gZnJhbWUucmVtb3ZlKCkpOworYXN5bmNfdGVzdChmdW5jdGlvbih0KSB7CisgICAgdmFy
IHNjb3BlID0gJ3Jlc291cmNlcy9zY29wZS9yZS1yZWdpc3Rlci13aGlsZS1vbGQtcmVnaXN0cmF0
aW9uLWluLXVzZSc7CisgICAgdmFyIHJlZ2lzdHJhdGlvbjsKIAotICBhd2FpdCByZWdpc3RyYXRp
b24udW5yZWdpc3RlcigpOwotICBjb25zdCBuZXdSZWdpc3RyYXRpb24gPSBhd2FpdCBuYXZpZ2F0
b3Iuc2VydmljZVdvcmtlci5yZWdpc3Rlcih3b3JrZXJfdXJsLCB7IHNjb3BlIH0pOwotICB0LmFk
ZF9jbGVhbnVwKCgpID0+IG5ld1JlZ2lzdHJhdGlvbi51bnJlZ2lzdGVyKCkpOworICAgIHNlcnZp
Y2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHdvcmtlcl91cmwsIHNjb3BlKQor
ICAgICAgLnRoZW4oZnVuY3Rpb24ocikgeworICAgICAgICAgIHJlZ2lzdHJhdGlvbiA9IHI7Cisg
ICAgICAgICAgcmV0dXJuIHdhaXRfZm9yX3N0YXRlKHQsIHIuaW5zdGFsbGluZywgJ2FjdGl2YXRl
ZCcpOworICAgICAgICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7CisgICAgICAgICAgcmV0
dXJuIHdpdGhfaWZyYW1lKHNjb3BlKTsKKyAgICAgICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9u
KGZyYW1lKSB7CisgICAgICAgICAgcmV0dXJuIHJlZ2lzdHJhdGlvbi51bnJlZ2lzdGVyKCk7Cisg
ICAgICAgIH0pCisgICAgICAudGhlbihmdW5jdGlvbigpIHsKKyAgICAgICAgICByZXR1cm4gbmF2
aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIod29ya2VyX3VybCwgeyBzY29wZTogc2NvcGUg
fSk7CisgICAgICAgIH0pCisgICAgICAudGhlbihmdW5jdGlvbihuZXdfcmVnaXN0cmF0aW9uKSB7
CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhyZWdpc3RyYXRpb24sIG5ld19yZWdpc3RyYXRpb24s
CisgICAgICAgICAgICAgICAgICAgICAgICAnbmV3IHJlZ2lzdHJhdGlvbiBzaG91bGQgcmVzb2x2
ZSB0byB0aGUgc2FtZSByZWdpc3RyYXRpb24nKTsKKyAgICAgICAgICBzZXJ2aWNlX3dvcmtlcl91
bnJlZ2lzdGVyX2FuZF9kb25lKHQsIHNjb3BlKTsKKyAgICAgICAgfSkKKyAgICAgIC5jYXRjaCh1
bnJlYWNoZWRfcmVqZWN0aW9uKHQpKTsKKyAgfSwgJ1VucmVnaXN0ZXIgdGhlbiByZWdpc3RlciBy
ZXNvbHZlcyB0byB0aGUgb3JpZ2luYWwgdmFsdWUgaWYgdGhlICcgKworICAgICAgICAgJ3JlZ2lz
dHJhdGlvbiBpcyBpbiB1c2UuJyk7CiAKLSAgYXNzZXJ0X25vdF9lcXVhbHMoCi0gICAgcmVnaXN0
cmF0aW9uLCBuZXdSZWdpc3RyYXRpb24sCi0gICAgJ1VucmVnaXN0ZXIgYW5kIHJlZ2lzdGVyIHNo
b3VsZCBhbHdheXMgY3JlYXRlIGEgbmV3IHJlZ2lzdHJhdGlvbicKLSAgKTsKLX0sICdVbnJlZ2lz
dGVyIHRoZW4gcmVnaXN0ZXIgZG9lcyBub3QgcmVzb2x2ZSB0byB0aGUgb3JpZ2luYWwgdmFsdWUg
ZXZlbiBpZiB0aGUgcmVnaXN0cmF0aW9uIGlzIGluIHVzZS4nKTsKK2FzeW5jX3Rlc3QoZnVuY3Rp
b24odCkgeworICAgIHZhciBzY29wZSA9ICdyZXNvdXJjZXMvc2NvcGUvY29tcGxldGUtdW5yZWdp
c3RyYXRpb24tZm9sbG93ZWQtYnktJyArCisgICAgICAgICAgICAgICAgJ3JlbG9hZGluZy1jb250
cm9sbGVlLWlmcmFtZSc7CisgICAgdmFyIHJlZ2lzdHJhdGlvbjsKKyAgICB2YXIgZnJhbWU7Cisg
ICAgdmFyIHNlcnZpY2Vfd29ya2VyOworICAgIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5k
X3JlZ2lzdGVyKHQsIHdvcmtlcl91cmwsIHNjb3BlKQorICAgICAgLnRoZW4oZnVuY3Rpb24ocikg
eworICAgICAgICAgIHJlZ2lzdHJhdGlvbiA9IHI7CisgICAgICAgICAgcmV0dXJuIHdhaXRfZm9y
X3N0YXRlKHQsIHIuaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOworICAgICAgICB9KQorICAgICAg
LnRoZW4oZnVuY3Rpb24oKSB7CisgICAgICAgICAgcmV0dXJuIHdpdGhfaWZyYW1lKHNjb3BlKTsK
KyAgICAgICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKGYpIHsKKyAgICAgICAgICBmcmFtZSA9
IGY7CisgICAgICAgICAgcmV0dXJuIHJlZ2lzdHJhdGlvbi51bnJlZ2lzdGVyKCk7CisgICAgICAg
IH0pCisgICAgICAudGhlbihmdW5jdGlvbigpIHsKKyAgICAgICAgICByZXR1cm4gbmV3IFByb21p
c2UoZnVuY3Rpb24ocmVzb2x2ZSkgeworICAgICAgICAgICAgICBmcmFtZS5vbmxvYWQgPSByZXNv
bHZlOworICAgICAgICAgICAgICBmcmFtZS5jb250ZW50V2luZG93LmxvY2F0aW9uLnJlbG9hZCgp
OworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pCisgICAgICAudGhlbihmdW5jdGlvbigpIHsK
KyAgICAgICAgICB2YXIgYyA9IGZyYW1lLmNvbnRlbnRXaW5kb3cubmF2aWdhdG9yLnNlcnZpY2VX
b3JrZXIuY29udHJvbGxlcjsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKGMsIG51bGwsICdhIHBh
Z2UgYWZ0ZXIgdW5yZWdpc3RyYXRpb24gc2hvdWxkIG5vdCBiZSAnICsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICdjb250cm9sbGVkIGJ5IHNlcnZpY2Ugd29ya2VyJyk7CisgICAg
ICAgICAgcmV0dXJuIG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLmdldFJlZ2lzdHJhdGlvbihzY29w
ZSk7CisgICAgICAgIH0pCisgICAgICAudGhlbihmdW5jdGlvbihyKSB7CisgICAgICAgICAgYXNz
ZXJ0X2VxdWFscyhyLCB1bmRlZmluZWQsICdnZXRSZWdpc3RyYXRpb24gc2hvdWxkIHJldHVybiAn
ICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3VuZGVmaW5lZCBhZnRl
ciB1bnJlZ2lzdHJhdGlvbicpOworICAgICAgICAgIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJf
YW5kX2RvbmUodCwgc2NvcGUpOworICAgICAgICB9KQorICAgICAgLmNhdGNoKHVucmVhY2hlZF9y
ZWplY3Rpb24odCkpOworfSwgJ1JlbG9hZGluZyB0aGUgbGFzdCBjb250cm9sbGVkIGlmcmFtZSBh
ZnRlciB1bnJlZ2lzdHJhdGlvbiBzaG91bGQgZW5zdXJlICcgKworICAgJ3RoZSBkZWxldGlvbiBv
ZiB0aGUgcmVnaXN0cmF0aW9uJyk7CiAKLXByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7Cithc3lu
Y190ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICB2YXIgc2NvcGUgPSAncmVzb3VyY2VzL3Njb3BlL3Jl
LXJlZ2lzdGVyLWRvZXMtbm90LWFmZmVjdC1leGlzdGluZy1jb250cm9sbGVlJzsKICAgICB2YXIg
aWZyYW1lOwogICAgIHZhciByZWdpc3RyYXRpb247CiAgICAgdmFyIGNvbnRyb2xsZXI7CiAKLSAg
ICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgd29ya2Vy
X3VybCwgc2NvcGUpCisgICAgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIo
dCwgd29ya2VyX3VybCwgc2NvcGUpCiAgICAgICAudGhlbihmdW5jdGlvbihyKSB7Ci0gICAgICAg
ICAgdC5hZGRfY2xlYW51cChmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIHJldHVybiBzZXJ2aWNl
X3dvcmtlcl91bnJlZ2lzdGVyKHQsIHNjb3BlKTsKLSAgICAgICAgICB9KTsKLQogICAgICAgICAg
IHJlZ2lzdHJhdGlvbiA9IHI7CiAgICAgICAgICAgcmV0dXJuIHdhaXRfZm9yX3N0YXRlKHQsIHIu
aW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOwogICAgICAgICB9KQpAQCAtNjYsNyArMTE2LDcgQEAg
cHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICAgIC50aGVuKGZ1bmN0aW9uKCkgewogICAg
ICAgICAgIHJldHVybiBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3Rlcih3b3JrZXJfdXJs
LCB7IHNjb3BlOiBzY29wZSB9KTsKICAgICAgICAgfSkKLSAgICAgIC50aGVuKGZ1bmN0aW9uKG5l
d1JlZ2lzdHJhdGlvbikgeworICAgICAgLnRoZW4oZnVuY3Rpb24ocmVnaXN0cmF0aW9uKSB7CiAg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhyZWdpc3RyYXRpb24uaW5zdGFsbGluZywgbnVsbCwKICAg
ICAgICAgICAgICAgICAgICAgICAgICdpbnN0YWxsaW5nIHZlcnNpb24gaXMgbnVsbCcpOwogICAg
ICAgICAgIGFzc2VydF9lcXVhbHMocmVnaXN0cmF0aW9uLndhaXRpbmcsIG51bGwsICd3YWl0aW5n
IHZlcnNpb24gaXMgbnVsbCcpOwpAQCAtNzUsMzMgKzEyNSw0MiBAQCBwcm9taXNlX3Rlc3QoZnVu
Y3Rpb24odCkgewogICAgICAgICAgICAgICBjb250cm9sbGVyLAogICAgICAgICAgICAgICAndGhl
IHdvcmtlciBmcm9tIHRoZSBmaXJzdCByZWdpc3RyYXRpb24gaXMgdGhlIGNvbnRyb2xsZXInKTsK
ICAgICAgICAgICBpZnJhbWUucmVtb3ZlKCk7Ci0gICAgICAgIH0pOworICAgICAgICAgIHNlcnZp
Y2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX2RvbmUodCwgc2NvcGUpOworICAgICAgICB9KQorICAg
ICAgLmNhdGNoKHVucmVhY2hlZF9yZWplY3Rpb24odCkpOwogICB9LCAnVW5yZWdpc3RlciB0aGVu
IHJlZ2lzdGVyIGRvZXMgbm90IGFmZmVjdCBleGlzdGluZyBjb250cm9sbGVlJyk7CiAKLXByb21p
c2VfdGVzdChhc3luYyBmdW5jdGlvbih0KSB7Ci0gIGNvbnN0IHNjb3BlID0gJ3Jlc291cmNlcy9z
Y29wZS9yZXN1cnJlY3Rpb24nOwotICBjb25zdCBhbHRXb3JrZXJVUkwgPSB3b3JrZXJfdXJsICsg
Jz9hbHQnOwotICBjb25zdCByZWdpc3RyYXRpb24gPSBhd2FpdCBzZXJ2aWNlX3dvcmtlcl91bnJl
Z2lzdGVyX2FuZF9yZWdpc3Rlcih0LCB3b3JrZXJfdXJsLCBzY29wZSk7Ci0gIHQuYWRkX2NsZWFu
dXAoKCkgPT4gcmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIoKSk7Ci0KLSAgYXdhaXQgd2FpdF9mb3Jf
c3RhdGUodCwgcmVnaXN0cmF0aW9uLmluc3RhbGxpbmcsICdhY3RpdmF0aW5nJyk7Ci0gIGNvbnN0
IGlmcmFtZSA9IGF3YWl0IHdpdGhfaWZyYW1lKHNjb3BlKTsKLSAgdC5hZGRfY2xlYW51cCgoKSA9
PiBpZnJhbWUucmVtb3ZlKCkpOwotCi0gIGF3YWl0IHJlZ2lzdHJhdGlvbi51bnJlZ2lzdGVyKCk7
Ci0gIGNvbnN0IG5ld1JlZ2lzdHJhdGlvbiA9IGF3YWl0IG5hdmlnYXRvci5zZXJ2aWNlV29ya2Vy
LnJlZ2lzdGVyKGFsdFdvcmtlclVSTCwgeyBzY29wZSB9KTsKLSAgdC5hZGRfY2xlYW51cCgoKSA9
PiBuZXdSZWdpc3RyYXRpb24udW5yZWdpc3RlcigpKTsKLQotICBhc3NlcnRfZXF1YWxzKG5ld1Jl
Z2lzdHJhdGlvbi5hY3RpdmUsIG51bGwsICdSZWdpc3RyYXRpb24gaXMgbmV3Jyk7Ci0KLSAgYXdh
aXQgd2FpdF9mb3Jfc3RhdGUodCwgbmV3UmVnaXN0cmF0aW9uLmluc3RhbGxpbmcsICdhY3RpdmF0
aW5nJyk7Ci0KLSAgY29uc3QgbmV3SWZyYW1lID0gYXdhaXQgd2l0aF9pZnJhbWUoc2NvcGUpOwot
ICB0LmFkZF9jbGVhbnVwKCgpID0+IG5ld0lmcmFtZS5yZW1vdmUoKSk7Ci0KLSAgY29uc3QgaWZy
YW1lQ29udHJvbGxlciA9IGlmcmFtZS5jb250ZW50V2luZG93Lm5hdmlnYXRvci5zZXJ2aWNlV29y
a2VyLmNvbnRyb2xsZXI7Ci0gIGNvbnN0IG5ld0lmcmFtZUNvbnRyb2xsZXIgPSBuZXdJZnJhbWUu
Y29udGVudFdpbmRvdy5uYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5jb250cm9sbGVyOworYXN5bmNf
dGVzdChmdW5jdGlvbih0KSB7CisgICAgdmFyIHNjb3BlID0gJ3Jlc291cmNlcy9zY29wZS9yZXN1
cnJlY3Rpb24nOworICAgIHZhciBpZnJhbWU7CisgICAgdmFyIHJlZ2lzdHJhdGlvbjsKIAotICBh
c3NlcnRfbm90X2VxdWFscyhpZnJhbWVDb250cm9sbGVyLCBuZXdJZnJhbWVDb250cm9sbGVyLCAn
aWZyYW1lcyBoYXZlIGRpZmZlcmVudCBjb250cm9sbGVycycpOwotfSwgJ1VucmVnaXN0ZXIgdGhl
biByZWdpc3RlciBkb2VzIG5vdCByZXN1cnJlY3QgdGhlIHJlZ2lzdHJhdGlvbicpOworICAgIHNl
cnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHdvcmtlcl91cmwsIHNjb3Bl
KQorICAgICAgLnRoZW4oZnVuY3Rpb24ocikgeworICAgICAgICAgIHJlZ2lzdHJhdGlvbiA9IHI7
CisgICAgICAgICAgcmV0dXJuIHdhaXRfZm9yX3N0YXRlKHQsIHIuaW5zdGFsbGluZywgJ2FjdGl2
YXRlZCcpOworICAgICAgICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7CisgICAgICAgICAg
cmV0dXJuIHdpdGhfaWZyYW1lKHNjb3BlKTsKKyAgICAgICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0
aW9uKGZyYW1lKSB7CisgICAgICAgICAgaWZyYW1lID0gZnJhbWU7CisgICAgICAgICAgcmV0dXJu
IHJlZ2lzdHJhdGlvbi51bnJlZ2lzdGVyKCk7CisgICAgICAgIH0pCisgICAgICAudGhlbihmdW5j
dGlvbigpIHsKKyAgICAgICAgICByZXR1cm4gbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0
ZXIod29ya2VyX3VybCwgeyBzY29wZTogc2NvcGUgfSk7CisgICAgICAgIH0pCisgICAgICAudGhl
bihmdW5jdGlvbigpIHsKKyAgICAgICAgICBpZnJhbWUucmVtb3ZlKCk7CisgICAgICAgICAgcmV0
dXJuIHdpdGhfaWZyYW1lKHNjb3BlKTsKKyAgICAgICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9u
KGZyYW1lKSB7CisgICAgICAgICAgYXNzZXJ0X25vdF9lcXVhbHMoCisgICAgICAgICAgICAgIGZy
YW1lLmNvbnRlbnRXaW5kb3cubmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuY29udHJvbGxlciwgbnVs
bCwKKyAgICAgICAgICAgICAgJ2RvY3VtZW50IHNob3VsZCBoYXZlIGEgY29udHJvbGxlcicpOwor
ICAgICAgICAgIGZyYW1lLnJlbW92ZSgpOworICAgICAgICAgIHNlcnZpY2Vfd29ya2VyX3VucmVn
aXN0ZXJfYW5kX2RvbmUodCwgc2NvcGUpOworICAgICAgICB9KQorICAgICAgLmNhdGNoKHVucmVh
Y2hlZF9yZWplY3Rpb24odCkpOworICB9LCAnVW5yZWdpc3RlciB0aGVuIHJlZ2lzdGVyIHJlc3Vy
cmVjdHMgdGhlIHJlZ2lzdHJhdGlvbicpOwogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci91cGRhdGUtYWZ0ZXItbmF2aWdhdGlvbi1yZWRpcmVjdC5odHRwcy5odG1sIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvdXBkYXRlLWFmdGVyLW5hdmlnYXRpb24tcmVkaXJlY3QuaHR0cHMu
aHRtbAppbmRleCA2ZTgyMWZlNDc5ZjI3M2Y3YjE3ZmQ4ZDkxZTY4MWVjZDI4M2E5MzNkLi4zMjFl
NDBjYTk0NWU3MmE1MWQ2ZjQ5OTRkZWYyYjFkMWFlZjk5NzUxIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci91cGRhdGUtYWZ0ZXItbmF2aWdhdGlvbi1yZWRpcmVjdC5odHRwcy5odG1sCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0ZS1hZnRlci1uYXZpZ2F0aW9uLXJlZGlyZWN0Lmh0
dHBzLmh0bWwKQEAgLTEsNyArMSw2IEBACiA8IURPQ1RZUEUgaHRtbD4KIDxtZXRhIGNoYXJzZXQ9
InV0Zi04Ij4KIDx0aXRsZT5TZXJ2aWNlIFdvcmtlcjogVXBkYXRlIHNob3VsZCBiZSB0cmlnZ2Vy
ZWQgYWZ0ZXIgcmVkaXJlY3RzIGR1cmluZyBuYXZpZ2F0aW9uPC90aXRsZT4KLTxtZXRhIG5hbWU9
InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciPgogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhh
cm5lc3MuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3Ny
ZXBvcnQuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9InJlc291cmNlcy90ZXN0LWhlbHBlcnMu
c3ViLmpzIj48L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0ZS1h
ZnRlci1vbmVkYXkuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0ZS1hZnRlci1v
bmVkYXkuaHR0cHMuaHRtbAppbmRleCBkOWI5ZmNmYjhkYjM3ZWEzYjBkNTcxMjUwYjIyYjg4Y2E3
MzU0NzcyLi4wODA2NWQyMmNlNDZjYzhhM2I1OTE2ZjFjMDUzZjQ3N2Y0NDE0Njk4IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUtYWZ0ZXItb25lZGF5Lmh0dHBzLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLWFmdGVyLW9uZWRheS5odHRwcy5odG1sCkBAIC0x
NywxMCArMTcsNiBAQCBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewogCiAgICAgcmV0dXJuIHNl
cnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIGV4cGVjdGVkX3VybCwgc2Nv
cGUpCiAgICAgICAudGhlbihmdW5jdGlvbihyKSB7Ci0gICAgICAgICAgdC5hZGRfY2xlYW51cChm
dW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0
ZXIodCwgc2NvcGUpOwotICAgICAgICAgICAgfSk7Ci0KICAgICAgICAgICByZWdpc3RyYXRpb24g
PSByOwogICAgICAgICAgIHJldHVybiB3YWl0X2Zvcl9zdGF0ZSh0LCByZWdpc3RyYXRpb24uaW5z
dGFsbGluZywgJ2FjdGl2YXRlZCcpOwogICAgICAgICB9KQpAQCAtNDUsNiArNDEsNyBAQCBwcm9t
aXNlX3Rlc3QoZnVuY3Rpb24odCkgewogICAgICAgIH0pCiAgICAgICAgLnRoZW4oZnVuY3Rpb24o
KSB7CiAgICAgICAgICAgZnJhbWUucmVtb3ZlKCk7CisgICAgICAgICAgcmV0dXJuIHNlcnZpY2Vf
d29ya2VyX3VucmVnaXN0ZXJfYW5kX2RvbmUodCwgc2NvcGUpOwogICAgICAgIH0pCiAgIH0sICdV
cGRhdGUgc2hvdWxkIGJlIHRyaWdnZXJlZCBhZnRlciBhIGZ1bmN0aW9uYWwgZXZlbnQgd2hlbiBs
YXN0IHVwZGF0ZSB0aW1lIGlzIG92ZXIgMjQgaG91cnMnKTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvdXBkYXRlLWJ5dGVjaGVjay5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvdXBkYXRlLWJ5dGVjaGVjay5odHRwcy5odG1sCmluZGV4IDY2MjhkYmE2ZWU3ZDExYWUwY2Q0
NTk0MWM3MjZkZjAxN2FmYjkzMzYuLmVjM2QxNWFiZWMwOWNhNWY1ZTNkYjllMmM4YWMyZTkwNDBm
ZmU3ZmUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0ZS1ieXRlY2hlY2suaHR0
cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUtYnl0ZWNoZWNrLmh0dHBzLmh0
bWwKQEAgLTEsNyArMSw2IEBACiA8IWRvY3R5cGUgaHRtbD4KIDxtZXRhIGNoYXJzZXQ9dXRmLTg+
CiA8dGl0bGU+PC90aXRsZT4KLTxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciPgog
PHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgogPHNjcmlw
dCBzcmM9InJlc291cmNlcy90ZXN0aGFybmVzcy1oZWxwZXJzLmpzIj48L3NjcmlwdD4KIDxzY3Jp
cHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KQEAgLTQ0
LDExICs0Myw4IEBAIHNldHRpbmdzLnJlZHVjZSgocCwgcykgPT4gewogICAgIHJldHVybiBQcm9t
aXNlLnJlc29sdmUoKQogICAgICAgLy8gUmVnaXN0ZXIgYSBzZXJ2aWNlIHdvcmtlci4KICAgICAg
IC50aGVuKF8gPT4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgc2Ny
aXB0LCBzY29wZSkpCi0gICAgICAudGhlbihyID0+IHsKLSAgICAgICAgdC5hZGRfY2xlYW51cCgo
KSA9PiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyKHQsIHNjb3BlKSk7Ci0gICAgICAgIHN3ciA9
IHI7Ci0gICAgICAgIHJldHVybiB3YWl0X2Zvcl91cGRhdGUodCwgc3dyKTsKLSAgICAgIH0pCisg
ICAgICAudGhlbihyID0+IHN3ciA9IHIpCisgICAgICAudGhlbihfID0+IHdhaXRfZm9yX3VwZGF0
ZSh0LCBzd3IpKQogICAgICAgLnRoZW4odyA9PiBzdyA9IHcpCiAgICAgICAudGhlbihfID0+IHdh
aXRfZm9yX3N0YXRlKHQsIHN3LCAnYWN0aXZhdGVkJykpCiAgICAgICAudGhlbihfID0+IGFzc2Vy
dF9hcnJheV9lcXVhbHMoW3N3ci5hY3RpdmUsCkBAIC02OCw3ICs2NCwxMCBAQCBzZXR0aW5ncy5y
ZWR1Y2UoKHAsIHMpID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN3ci53YWl0
aW5nLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3dyLmluc3RhbGxpbmddLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBbc3csIG51bGwsIG51bGxdKTsKLSAgICAgIH0pOwor
ICAgICAgfSkKKworICAgICAgLy8gVW5yZWdpc3RlciB0aGUgc2VydmljZSB3b3JrZXIuCisgICAg
ICAudGhlbihfID0+IHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX2RvbmUodCwgc2NvcGUp
KTsKICAgfSwgYFRlc3QoY29yczogJHtzLmNvcnN9LCBtYWluOiAke3MubWFpbn0sIGltcG9ydGVk
OiAke3MuaW1wb3J0ZWR9KWApKTsKIH0sIFByb21pc2UucmVzb2x2ZSgpKTsKIApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLW1pc3NpbmctaW1wb3J0LXNjcmlwdHMuaHR0cHMt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLW1pc3NpbmctaW1wb3J0LXNj
cmlwdHMuaHR0cHMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4
ZGY4YmY4Y2NlNTE3ZjRjYmQ2NGZkM2M2ZTI3ZmZmODAzMWYxZDBkLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0ZS1t
aXNzaW5nLWltcG9ydC1zY3JpcHRzLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBA
IC0xLDQgKzAsMCBAQAotCi1QQVNTIEluaXRpYWxpemUgZ2xvYmFsIHN0YXRlIAotUEFTUyBVcGRh
dGUgc2VydmljZSB3b3JrZXIgd2l0aCBuZXcgc2NyaXB0IHRoYXQncyBtaXNzaW5nIGltcG9ydFNj
cmlwdHMoKSAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLW1pc3Npbmct
aW1wb3J0LXNjcmlwdHMuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0ZS1taXNz
aW5nLWltcG9ydC1zY3JpcHRzLmh0dHBzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDY2ZThiZmFjNzUxZTgzNWFmOGU1NDNmYzUyODk2OTdjMTVhYzExOGQuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBk
YXRlLW1pc3NpbmctaW1wb3J0LXNjcmlwdHMuaHR0cHMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0x
LDMzICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPHRpdGxlPlNlcnZpY2UgV29ya2VyOiB1cGRh
dGUgd2l0aCBtaXNzaW5nIGltcG9ydFNjcmlwdHM8L3RpdGxlPgotPHNjcmlwdCBzcmM9Ii9yZXNv
dXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMv
dGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy90
ZXN0LWhlbHBlcnMuc3ViLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIvY29tbW9uL3V0aWxz
LmpzIj48L3NjcmlwdD4KLTxib2R5PgotPHNjcmlwdD4KLS8qKgotICogVGVzdCBTZXJ2aWNlV29y
a2VyUmVnaXN0cmF0aW9uLnVwZGF0ZSgpIHdoZW4gaW1wb3J0U2NyaXB0cyBpbiBhIHNlcnZpY2Ug
d29ya2VyCi0gKiBzY3JpcHQgaXMgbm8gbG9uZ2VyIGF2YWlsYWJsZSAoYnV0IHdhcyBpbml0aWFs
bHkpLgotICovCi1sZXQgcmVnaXN0cmF0aW9uID0gbnVsbDsKLQotcHJvbWlzZV90ZXN0KGFzeW5j
ICh0ZXN0KSA9PiB7Ci0gIGNvbnN0IHNjcmlwdCA9IGByZXNvdXJjZXMvdXBkYXRlLW1pc3Npbmct
aW1wb3J0LXNjcmlwdHMtbWFpbi13b3JrZXIucHk/a2V5PSR7dG9rZW4oKX1gOwotICBjb25zdCBz
Y29wZSA9ICdyZXNvdXJjZXMvdXBkYXRlLW1pc3NpbmctaW1wb3J0LXNjcmlwdHMnOwotCi0gIHJl
Z2lzdHJhdGlvbiA9IGF3YWl0IHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVy
KHRlc3QsIHNjcmlwdCwgc2NvcGUpOwotCi0gIGFkZF9jb21wbGV0aW9uX2NhbGxiYWNrKCgpID0+
IHsgcmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIoKTsgfSk7Ci0KLSAgYXdhaXQgd2FpdF9mb3Jfc3Rh
dGUodGVzdCwgcmVnaXN0cmF0aW9uLmluc3RhbGxpbmcsICdhY3RpdmF0ZWQnKTsKLX0sICdJbml0
aWFsaXplIGdsb2JhbCBzdGF0ZScpOwotCi1wcm9taXNlX3Rlc3QodGVzdCA9PiB7Ci0gIHJldHVy
biBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHsKLSAgICByZWdpc3RyYXRpb24uYWRkRXZlbnRMaXN0
ZW5lcigndXBkYXRlZm91bmQnLCByZXNvbHZlKTsKLSAgICByZWdpc3RyYXRpb24udXBkYXRlKCk7
Ci0gIH0pOwotfSwgJ1VwZGF0ZSBzZXJ2aWNlIHdvcmtlciB3aXRoIG5ldyBzY3JpcHQgdGhhdFwn
cyBtaXNzaW5nIGltcG9ydFNjcmlwdHMoKScpOwotPC9zY3JpcHQ+Ci08L2JvZHk+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUtbm8tY2FjaGUtcmVxdWVzdC1oZWFkZXJzLmh0
dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0ZS1uby1jYWNoZS1yZXF1
ZXN0LWhlYWRlcnMuaHR0cHMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBiNTUxNmQ2NDYxMWQ5YTI5ZTEyZmU2ZWFjZWZjZTFhNmNmZTBiNDAyLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Vw
ZGF0ZS1uby1jYWNoZS1yZXF1ZXN0LWhlYWRlcnMuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyAvZGV2
L251bGwKQEAgLTEsMyArMCwwIEBACi0KLVBBU1MgaGVhZGVycyBpbiBuby1jYWNoZSBtb2RlIAot
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUtbm8tY2FjaGUtcmVxdWVzdC1o
ZWFkZXJzLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUtbm8tY2FjaGUtcmVx
dWVzdC1oZWFkZXJzLmh0dHBzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZl
YmFkNGI3YjEwYmNkZjE3NmMxNTQzZmQ3MTFhZWUzMWQ1NTQ3YjcuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLW5v
LWNhY2hlLXJlcXVlc3QtaGVhZGVycy5odHRwcy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDgg
KzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08dGl0bGU+
VGVzdCB0aGF0IGNhY2hlIGlzIGJlaW5nIGJ5cGFzc2VkL3ZhbGlkYXRlZCBpbiBuby1jYWNoZSBt
b2RlIG9uIHVwZGF0ZTwvdGl0bGU+Ci08c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVz
cy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9y
dC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Rlc3QtaGVscGVycy5zdWIu
anMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLS8vIFRlc3RzIGEgc2VydmljZSB3b3JrZXIgc2NyaXB0
IGZldGNoIGR1cmluZyBhbiB1cGRhdGUgY2hlY2sgd2hpY2gKLS8vIGJ5cGFzc2VzL3ZhbGlkYXRl
cyB0aGUgYnJvd3NlciBjYWNoZS4gVGhlIGZldGNoIHNob3VsZCBoYXZlIHRoZQotLy8gJ2lmLW5v
bmUtbWF0Y2gnIHJlcXVlc3QgaGVhZGVyLgotLy8KLS8vIFRoaXMgdGVzdHMgdGhlIFVwZGF0ZSBz
dGVwOgotLy8gICJTZXQgcmVxdWVzdOKAmXMgY2FjaGUgbW9kZSB0byAibm8tY2FjaGUiIGlmIGFu
eSBvZiB0aGUgZm9sbG93aW5nIGFyZSB0cnVlLi4uIgotLy8gaHR0cHM6Ly93M2MuZ2l0aHViLmlv
L1NlcnZpY2VXb3JrZXIvI3VwZGF0ZS1hbGdvcml0aG0KLS8vCi0vLyBUaGUgdGVzdCB3b3JrcyBi
eSByZWdpc3RlcmluZyBhIHNlcnZpY2Ugd29ya2VyIHdpdGggfHVwZGF0ZVZpYUNhY2hlfAotLy8g
c2V0IHRvICJub25lIi4gSXQgdGhlbiBkb2VzIGFuIHVwZGF0ZS4gVGhlIHRlc3Qgc2VydmVyIHJl
c3BvbmRzIHdpdGgKLS8vIGFuIHVwZGF0ZWQgd29ya2VyIHNjcmlwdCB0aGF0IHJlbWVtYmVycyB0
aGUgaHR0cCByZXF1ZXN0IGhlYWRlcnMuCi0vLyBUaGUgdXBkYXRlZCB3b3JrZXIgcmVwb3J0cyBi
YWNrIHRoZXNlIGhlYWRlcnMgdG8gdGhlIHRlc3QgcGFnZS4KLXByb21pc2VfdGVzdChhc3luYyAo
dCkgPT4gewotICBjb25zdCBzY3JpcHQgPSAicmVzb3VyY2VzL3Rlc3QtcmVxdWVzdC1oZWFkZXJz
LXdvcmtlci5weSI7Ci0gIGNvbnN0IHNjb3BlID0gInJlc291cmNlcy8iOwotCi0gIC8vIFJlZ2lz
dGVyIHRoZSBzZXJ2aWNlIHdvcmtlci4KLSAgYXdhaXQgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rl
cih0LCBzY29wZSk7Ci0gIGNvbnN0IHJlZ2lzdHJhdGlvbiA9IGF3YWl0IG5hdmlnYXRvci5zZXJ2
aWNlV29ya2VyLnJlZ2lzdGVyKAotICAgICAgc2NyaXB0LCB7c2NvcGUsIHVwZGF0ZVZpYUNhY2hl
OiAnbm9uZSd9KTsKLSAgYXdhaXQgd2FpdF9mb3Jfc3RhdGUodCwgcmVnaXN0cmF0aW9uLmluc3Rh
bGxpbmcsICdhY3RpdmF0ZWQnKTsKLQotICAvLyBEbyBhbiB1cGRhdGUuCi0gIGF3YWl0IHJlZ2lz
dHJhdGlvbi51cGRhdGUoKTsKLQotICAvLyBBc2sgdGhlIG5ldyB3b3JrZXIgd2hhdCB0aGUgcmVx
dWVzdCBoZWFkZXJzIHdlcmUuCi0gIGNvbnN0IG5ld1dvcmtlciA9IHJlZ2lzdHJhdGlvbi5pbnN0
YWxsaW5nOwotICBjb25zdCBzYXdNZXNzYWdlID0gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsK
LSAgICBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5vbm1lc3NhZ2UgPSAoZXZlbnQpID0+IHsKLSAg
ICAgIHJlc29sdmUoZXZlbnQuZGF0YSk7Ci0gICAgfTsKLSAgfSk7Ci0gIG5ld1dvcmtlci5wb3N0
TWVzc2FnZSgnZ2V0SGVhZGVycycpOwotICBjb25zdCByZXN1bHQgPSBhd2FpdCBzYXdNZXNzYWdl
OwotCi0gIC8vIFRlc3QgdGhlIHJlc3VsdC4KLSAgYXNzZXJ0X2VxdWFscyhyZXN1bHRbJ3NlcnZp
Y2Utd29ya2VyJ10sICdzY3JpcHQnKTsKLSAgYXNzZXJ0X2VxdWFscyhyZXN1bHRbJ2lmLW5vbmUt
bWF0Y2gnXSwgJ2V0YWcnKTsKLX0sICdoZWFkZXJzIGluIG5vLWNhY2hlIG1vZGUnKTsKLQotPC9z
Y3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUtbm90LWFsbG93ZWQu
aHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLW5vdC1hbGxvd2Vk
Lmh0dHBzLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzk1OWFj
ZDViYmFmODk5MjI0YjcyNDliMWI2YjZkMzBkNjQ5ZmIyMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUtbm90LWFs
bG93ZWQuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNiArMCwwIEBACi0K
LUhhcm5lc3MgRXJyb3IgKFRJTUVPVVQpLCBtZXNzYWdlID0gbnVsbAotCi1QQVNTIFNlcnZpY2VX
b3JrZXJSZWdpc3RyYXRpb24udXBkYXRlKCkgZnJvbSBjbGllbnQgdGhyb3dzIHdoaWxlIGluc3Rh
bGxpbmcgc2VydmljZSB3b3JrZXIuIAotVElNRU9VVCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9u
LnVwZGF0ZSgpIGZyb20gaW5zdGFsbGluZyBzZXJ2aWNlIHdvcmtlciB0aHJvd3MuIFRlc3QgdGlt
ZWQgb3V0Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0ZS1ub3QtYWxsb3dl
ZC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLW5vdC1hbGxvd2VkLmh0dHBz
Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBhNTRhYTkzNTAzODJiYjA4MmY0
MDdhMWVhMzBiMjY1NTc1YmFhZTkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLW5vdC1hbGxvd2VkLmh0dHBzLmh0
bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxNDAgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08c2Ny
aXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNy
Yz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL3Rlc3QtaGVscGVycy5zdWIuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLSd1
c2Ugc3RyaWN0JzsKLQotZnVuY3Rpb24gc2VuZF9tZXNzYWdlX3RvX3dvcmtlcl9hbmRfd2FpdF9m
b3JfcmVzcG9uc2Uod29ya2VyLCBtZXNzYWdlKSB7Ci0gIHJldHVybiBuZXcgUHJvbWlzZShyZXNv
bHZlID0+IHsKLSAgICAvLyBVc2UgYSBkZWRpY2F0ZWQgY2hhbm5lbCBmb3IgZXZlcnkgcmVxdWVz
dCB0byBhdm9pZCByYWNlIGNvbmRpdGlvbnMgb24KLSAgICAvLyBjb25jdXJyZW50IHJlcXVlc3Rz
LgotICAgIGNvbnN0IGNoYW5uZWwgPSBuZXcgTWVzc2FnZUNoYW5uZWwoKTsKLSAgICB3b3JrZXIu
cG9zdE1lc3NhZ2UoY2hhbm5lbC5wb3J0MSwgW2NoYW5uZWwucG9ydDFdKTsKLQotICAgIGxldCBt
ZXNzYWdlUmVjZWl2ZWQgPSBmYWxzZTsKLSAgICBjaGFubmVsLnBvcnQyLm9ubWVzc2FnZSA9IGV2
ZW50ID0+IHsKLSAgICAgIGFzc2VydF9mYWxzZShtZXNzYWdlUmVjZWl2ZWQsICdBbHJlYWR5IHJl
Y2VpdmVkIHJlc3BvbnNlIGZvciAnICsgbWVzc2FnZSk7Ci0gICAgICBtZXNzYWdlUmVjZWl2ZWQg
PSB0cnVlOwotICAgICAgcmVzb2x2ZShldmVudC5kYXRhKTsKLSAgICB9OwotICAgIGNoYW5uZWwu
cG9ydDIucG9zdE1lc3NhZ2UobWVzc2FnZSk7Ci0gIH0pOwotfQotCi1hc3luYyBmdW5jdGlvbiBl
bnN1cmVfaW5zdGFsbF9ldmVudF9maXJlZCh3b3JrZXIpIHsKLSAgY29uc3QgcmVzcG9uc2UgPSBh
d2FpdCBzZW5kX21lc3NhZ2VfdG9fd29ya2VyX2FuZF93YWl0X2Zvcl9yZXNwb25zZSh3b3JrZXIs
ICdhd2FpdEluc3RhbGxFdmVudCcpOwotICBhc3NlcnRfZXF1YWxzKCdpbnN0YWxsRXZlbnRGaXJl
ZCcsIHJlc3BvbnNlKTsKLSAgYXNzZXJ0X2VxdWFscygnaW5zdGFsbGluZycsIHdvcmtlci5zdGF0
ZSwgJ0V4cGVjdGVkIHdvcmtlciB0byBiZSBpbnN0YWxsaW5nLicpOwotfQotCi1hc3luYyBmdW5j
dGlvbiBmaW5pc2hfaW5zdGFsbCh3b3JrZXIpIHsKLSAgYXdhaXQgZW5zdXJlX2luc3RhbGxfZXZl
bnRfZmlyZWQod29ya2VyKTsKLSAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBzZW5kX21lc3NhZ2Vf
dG9fd29ya2VyX2FuZF93YWl0X2Zvcl9yZXNwb25zZSh3b3JrZXIsICdmaW5pc2hJbnN0YWxsJyk7
Ci0gIGFzc2VydF9lcXVhbHMoJ2luc3RhbGxGaW5pc2hlZCcsIHJlc3BvbnNlKTsKLX0KLQotYXN5
bmMgZnVuY3Rpb24gYWN0aXZhdGVfc2VydmljZV93b3JrZXIodCwgd29ya2VyKSB7Ci0gIGF3YWl0
IGZpbmlzaF9pbnN0YWxsKHdvcmtlcik7Ci0gIC8vIEJ5IHdhaXRpbmcgZm9yIGJvdGggc3RhdGVz
IGF0IHRoZSBzYW1lIHRpbWUsIHRoZSB0ZXN0IGZhaWxzCi0gIC8vIHF1aWNrbHkgaWYgdGhlIGlu
c3RhbGxhdGlvbiBmYWlscywgYXZvaWRpbmcgYSB0aW1lb3V0LgotICBhd2FpdCBQcm9taXNlLnJh
Y2UoW3dhaXRfZm9yX3N0YXRlKHQsIHdvcmtlciwgJ2FjdGl2YXRlZCcpLAotICAgICAgICAgICAg
ICAgICAgICAgIHdhaXRfZm9yX3N0YXRlKHQsIHdvcmtlciwgJ3JlZHVuZGFudCcpXSk7Ci0gIGFz
c2VydF9lcXVhbHMoJ2FjdGl2YXRlZCcsIHdvcmtlci5zdGF0ZSwgJ1NlcnZpY2Ugd29ya2VyIHNo
b3VsZCBiZSBhY3RpdmF0ZWQuJyk7Ci19Ci0KLWFzeW5jIGZ1bmN0aW9uIHVwZGF0ZV93aXRoaW5f
c2VydmljZV93b3JrZXIod29ya2VyKSB7Ci0gIC8vIFRoaXMgZnVuY3Rpb24gcmV0dXJucyBhIFBy
b21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHVwZGF0ZSgpCi0gIC8vIGhhcyBiZWVuIGNhbGxlZCBi
dXQgaXMgbm90IG5lY2Vzc2FyaWx5IGZpbmlzaGVkIHlldC4KLSAgLy8gQ2FsbCBmaW5pc2goKSBv
biB0aGUgcmV0dXJuZWQgb2JqZWN0IHRvIHdhaXQgZm9yIHVwZGF0ZSgpIHNldHRsZS4KLSAgY29u
c3QgcG9ydCA9IGF3YWl0IHNlbmRfbWVzc2FnZV90b193b3JrZXJfYW5kX3dhaXRfZm9yX3Jlc3Bv
bnNlKHdvcmtlciwgJ2NhbGxVcGRhdGUnKTsKLSAgbGV0IG1lc3NhZ2VSZWNlaXZlZCA9IGZhbHNl
OwotICByZXR1cm4gewotICAgIGZpbmlzaDogKCkgPT4gewotICAgICAgcmV0dXJuIG5ldyBQcm9t
aXNlKHJlc29sdmUgPT4gewotICAgICAgICBwb3J0Lm9ubWVzc2FnZSA9IGV2ZW50ID0+IHsKLSAg
ICAgICAgICBhc3NlcnRfZmFsc2UobWVzc2FnZVJlY2VpdmVkLCAnVXBkYXRlIGFscmVhZHkgZmlu
aXNoZWQuJyk7Ci0gICAgICAgICAgbWVzc2FnZVJlY2VpdmVkID0gdHJ1ZTsKLSAgICAgICAgICBy
ZXNvbHZlKGV2ZW50LmRhdGEpOwotICAgICAgICB9OwotICAgICAgfSk7Ci0gICAgfSwKLSAgfTsK
LX0KLQotYXN5bmMgZnVuY3Rpb24gdXBkYXRlX2Zyb21fY2xpZW50X2FuZF9hd2FpdF9pbnN0YWxs
aW5nX3ZlcnNpb24odGVzdCwgcmVnaXN0cmF0aW9uKSB7Ci0gIGNvbnN0IHVwZGF0ZWZvdW5kID0g
d2FpdF9mb3JfdXBkYXRlKHRlc3QsIHJlZ2lzdHJhdGlvbik7Ci0gIHJlZ2lzdHJhdGlvbi51cGRh
dGUoKTsKLSAgYXdhaXQgdXBkYXRlZm91bmQ7Ci0gIHJldHVybiByZWdpc3RyYXRpb24uaW5zdGFs
bGluZzsKLX0KLQotYXN5bmMgZnVuY3Rpb24gc3Bpbl91cF9zZXJ2aWNlX3dvcmtlcih0ZXN0KSB7
Ci0gIGNvbnN0IHNjcmlwdCA9ICdyZXNvdXJjZXMvdXBkYXRlLWR1cmluZy1pbnN0YWxsYXRpb24t
d29ya2VyLnB5JzsKLSAgY29uc3Qgc2NvcGUgPSAncmVzb3VyY2VzL2JsYW5rLmh0bWwnOwotCi0g
IGNvbnN0IHJlZ2lzdHJhdGlvbiA9IGF3YWl0IHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5k
X3JlZ2lzdGVyKHRlc3QsIHNjcmlwdCwgc2NvcGUpOwotICB0ZXN0LmFkZF9jbGVhbnVwKGFzeW5j
ICgpID0+IHsKLSAgICBpZiAocmVnaXN0cmF0aW9uLmluc3RhbGxpbmcpIHsKLSAgICAgIC8vIElm
IHRoZXJlIGlzIGFuIGluc3RhbGxpbmcgd29ya2VyLCB3ZSBuZWVkIHRvIGZpbmlzaCBpbnN0YWxs
aW5nIGl0LgotICAgICAgLy8gT3RoZXJ3aXNlLCB0aGUgdGVzdHMgZmFpbHMgd2l0aCBhbiB0aW1l
b3V0IGJlY2F1c2UgdW5yZWdpc3RlcigpIGJsb2NrcwotICAgICAgLy8gdW50aWwgdGhlIGluc3Rh
bGwtZXZlbnQtaGFuZGxlciBmaW5pc2hlcy4KLSAgICAgIGNvbnN0IHdvcmtlciA9IHJlZ2lzdHJh
dGlvbi5pbnN0YWxsaW5nOwotICAgICAgYXdhaXQgc2VuZF9tZXNzYWdlX3RvX3dvcmtlcl9hbmRf
d2FpdF9mb3JfcmVzcG9uc2Uod29ya2VyLCAnYXdhaXRJbnN0YWxsRXZlbnQnKTsKLSAgICAgIGF3
YWl0IHNlbmRfbWVzc2FnZV90b193b3JrZXJfYW5kX3dhaXRfZm9yX3Jlc3BvbnNlKHdvcmtlciwg
J2ZpbmlzaEluc3RhbGwnKTsKLSAgICB9Ci0gICAgcmV0dXJuIHJlZ2lzdHJhdGlvbi51bnJlZ2lz
dGVyKCk7Ci0gIH0pOwotCi0gIHJldHVybiByZWdpc3RyYXRpb247Ci19Ci0KLXByb21pc2VfdGVz
dChhc3luYyB0ID0+IHsKLSAgY29uc3QgcmVnaXN0cmF0aW9uID0gYXdhaXQgc3Bpbl91cF9zZXJ2
aWNlX3dvcmtlcih0KTsKLSAgY29uc3Qgd29ya2VyID0gcmVnaXN0cmF0aW9uLmluc3RhbGxpbmc7
Ci0gIGF3YWl0IGVuc3VyZV9pbnN0YWxsX2V2ZW50X2ZpcmVkKHdvcmtlcik7Ci0KLSAgY29uc3Qg
cmVzdWx0ID0gcmVnaXN0cmF0aW9uLnVwZGF0ZSgpOwotICBhd2FpdCBhY3RpdmF0ZV9zZXJ2aWNl
X3dvcmtlcih0LCB3b3JrZXIpOwotICByZXR1cm4gcmVzdWx0OwotfSwgJ1NlcnZpY2VXb3JrZXJS
ZWdpc3RyYXRpb24udXBkYXRlKCkgZnJvbSBjbGllbnQgc3VjY2VlZHMgd2hpbGUgaW5zdGFsbGlu
ZyBzZXJ2aWNlIHdvcmtlci4nKTsKLQotcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewotICBjb25z
dCByZWdpc3RyYXRpb24gPSBhd2FpdCBzcGluX3VwX3NlcnZpY2Vfd29ya2VyKHQpOwotICBjb25z
dCB3b3JrZXIgPSByZWdpc3RyYXRpb24uaW5zdGFsbGluZzsKLSAgYXdhaXQgZW5zdXJlX2luc3Rh
bGxfZXZlbnRfZmlyZWQod29ya2VyKTsKLQotICAvLyBBZGQgZXZlbnQgbGlzdGVuZXIgdG8gZmFp
bCB0aGUgdGVzdCBpZiB1cGRhdGUoKSBzdWNjZWVkcy4KLSAgY29uc3QgdXBkYXRlZm91bmQgPSB0
LnN0ZXBfZnVuYyhhc3luYyAoKSA9PiB7Ci0gICAgcmVnaXN0cmF0aW9uLnJlbW92ZUV2ZW50TGlz
dGVuZXIoJ3VwZGF0ZWZvdW5kJywgdXBkYXRlZm91bmQpOwotICAgIC8vIEFjdGl2YXRlIG5ldyB3
b3JrZXIgc28gbm9uLWNvbXBsaWFudCBicm93c2VycyBkb24ndCBmYWlsIHdpdGggdGltZW91dC4K
LSAgICBhd2FpdCBhY3RpdmF0ZV9zZXJ2aWNlX3dvcmtlcih0LCByZWdpc3RyYXRpb24uaW5zdGFs
bGluZyk7Ci0gICAgYXNzZXJ0X3VucmVhY2hlZCgidXBkYXRlKCkgc2hvdWxkIGhhdmUgZmFpbGVk
Iik7Ci0gIH0pOwotICByZWdpc3RyYXRpb24uYWRkRXZlbnRMaXN0ZW5lcigndXBkYXRlZm91bmQn
LCB1cGRhdGVmb3VuZCk7Ci0KLSAgY29uc3QgdXBkYXRlID0gYXdhaXQgdXBkYXRlX3dpdGhpbl9z
ZXJ2aWNlX3dvcmtlcih3b3JrZXIpOwotICAvLyBBY3RpdmF0ZSB3b3JrZXIgdG8gZW5zdXJlIHVw
ZGF0ZSgpIGZpbmlzaGVzIGFuZCB0aGUgdGVzdCBkb2Vzbid0IHRpbWVvdXQKLSAgLy8gaW4gbm9u
LWNvbXBsaWFudCBicm93c2Vycy4KLSAgYXdhaXQgYWN0aXZhdGVfc2VydmljZV93b3JrZXIodCwg
d29ya2VyKTsKLQotICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHVwZGF0ZS5maW5pc2goKTsKLSAg
YXNzZXJ0X2ZhbHNlKHJlc3BvbnNlLnN1Y2Nlc3MsICd1cGRhdGUoKSBzaG91bGQgaGF2ZSBmYWls
ZWQuJyk7Ci0gIGFzc2VydF9lcXVhbHMoJ0ludmFsaWRTdGF0ZUVycm9yJywgcmVzcG9uc2UuZXhj
ZXB0aW9uLCAndXBkYXRlKCkgc2hvdWxkIGhhdmUgdGhyb3duIEludmFsaWRTdGF0ZUVycm9yLicp
OwotfSwgJ1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24udXBkYXRlKCkgZnJvbSBpbnN0YWxsaW5n
IHNlcnZpY2Ugd29ya2VyIHRocm93cy4nKTsKLQotcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewot
ICBjb25zdCByZWdpc3RyYXRpb24gPSBhd2FpdCBzcGluX3VwX3NlcnZpY2Vfd29ya2VyKHQpOwot
ICBjb25zdCB3b3JrZXIxID0gcmVnaXN0cmF0aW9uLmluc3RhbGxpbmc7Ci0gIGF3YWl0IGFjdGl2
YXRlX3NlcnZpY2Vfd29ya2VyKHQsIHdvcmtlcjEpOwotCi0gIGNvbnN0IHdvcmtlcjIgPSBhd2Fp
dCB1cGRhdGVfZnJvbV9jbGllbnRfYW5kX2F3YWl0X2luc3RhbGxpbmdfdmVyc2lvbih0LCByZWdp
c3RyYXRpb24pOwotICBhd2FpdCBlbnN1cmVfaW5zdGFsbF9ldmVudF9maXJlZCh3b3JrZXIyKTsK
LQotICBjb25zdCB1cGRhdGUgPSBhd2FpdCB1cGRhdGVfd2l0aGluX3NlcnZpY2Vfd29ya2VyKHdv
cmtlcjEpOwotICAvLyBBY3RpdmF0ZSB0aGUgbmV3IHZlcnNpb24gc28gdGhhdCB1cGRhdGUoKSBm
aW5pc2hlcyBhbmQgdGhlIHRlc3QgZG9lc24ndCB0aW1lb3V0LgotICBhd2FpdCBhY3RpdmF0ZV9z
ZXJ2aWNlX3dvcmtlcih0LCB3b3JrZXIyKTsKLSAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB1cGRh
dGUuZmluaXNoKCk7Ci0gIGFzc2VydF90cnVlKHJlc3BvbnNlLnN1Y2Nlc3MsICd1cGRhdGUoKSBm
cm9tIGFjdGl2ZSBzZXJ2aWNlIHdvcmtlciBzaG91bGQgaGF2ZSBzdWNjZWVkZWQuJyk7Ci19LCAn
U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbi51cGRhdGUoKSBmcm9tIGFjdGl2ZSBzZXJ2aWNlIHdv
cmtlciBzdWNjZWVkcyB3aGlsZSBpbnN0YWxsaW5nIHNlcnZpY2Ugd29ya2VyLicpOwotPC9zY3Jp
cHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUtb24tbmF2aWdhdGlvbi5o
dHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUtb24tbmF2aWdhdGlv
bi5odHRwcy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI3MTUy
NjI1ZDVlOTcwMzMwNmEwNTljZWEwMDA1OWYxZTA0MzIwYTguLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLW9uLW5h
dmlnYXRpb24uaHR0cHMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBA
Ci0KLVBBU1MgVGhlIGFjdGl2ZSBzZXJ2aWNlIHdvcmtlciBpbiBjaGFyZ2Ugb2YgYSBuYXZpZ2F0
aW9uIGxvYWQgc2hvdWxkIG5vdCBiZSB0ZXJtaW5hdGVkIGFzIHBhcnQgb2YgdXBkYXRpbmcgdGhl
IHJlZ2lzdHJhdGlvbiAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLW9u
LW5hdmlnYXRpb24uaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0ZS1vbi1uYXZp
Z2F0aW9uLmh0dHBzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDUyNzM0MjBi
OTBmYzk3ZmNkNDQxYWMwNTdhOTllZTViMzFjODRhMzAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLW9uLW5hdmln
YXRpb24uaHR0cHMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDIwICswLDAgQEAKLTwhRE9DVFlQ
RSBodG1sPgotPHRpdGxlPlVwZGF0ZSBvbiBuYXZpZ2F0aW9uPC90aXRsZT4KLTxzY3JpcHQgc3Jj
PScvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzJz48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPScvcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzJz48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSdyZXNv
dXJjZXMvdGVzdC1oZWxwZXJzLnN1Yi5qcyc+PC9zY3JpcHQ+Ci08c2NyaXB0PgotcHJvbWlzZV90
ZXN0KGFzeW5jICh0KSA9PiB7Ci0gICAgdmFyIHNjcmlwdCA9ICdyZXNvdXJjZXMvdXBkYXRlLWZl
dGNoLXdvcmtlci5weSc7Ci0gICAgdmFyIHNjb3BlID0gJ3Jlc291cmNlcy90cmlja2xlLnB5P21z
PTEwMDAmY291bnQ9MSc7Ci0KLSAgICBjb25zdCByZWdpc3RyYXRpb24gPSBhd2FpdCBzZXJ2aWNl
X3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCBzY3JpcHQsIHNjb3BlKTsKLSAgICB0
LmFkZF9jbGVhbnVwKCgpID0+IHJlZ2lzdHJhdGlvbi51bnJlZ2lzdGVyKCkpOwotCi0gICAgaWYg
KHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nKQotICAgICAgICBhd2FpdCB3YWl0X2Zvcl9zdGF0ZSh0
LCByZWdpc3RyYXRpb24uaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOwotCi0gICAgY29uc3QgZnJh
bWUgPSBhd2FpdCB3aXRoX2lmcmFtZShzY29wZSk7Ci0gICAgdC5hZGRfY2xlYW51cCgoKSA9PiBm
cmFtZS5yZW1vdmUoKSk7Ci19LCAnVGhlIGFjdGl2ZSBzZXJ2aWNlIHdvcmtlciBpbiBjaGFyZ2Ug
b2YgYSBuYXZpZ2F0aW9uIGxvYWQgc2hvdWxkIG5vdCBiZSB0ZXJtaW5hdGVkIGFzIHBhcnQgb2Yg
dXBkYXRpbmcgdGhlIHJlZ2lzdHJhdGlvbicpOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci91cGRhdGUtcmVjb3ZlcnkuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3VwZGF0ZS1yZWNvdmVyeS5odHRwcy5odG1sCmluZGV4IDE3NjA4ZDJlZjc5MGUyZWE5N2E0
M2Y1NmI4NmEyOGVmMGU2NDc2MDQuLjNiM2Q5NTViMTQyYmZmNjdjM2QyYzJhMmQxNzQyODg4YzY2
MWM2OWQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0ZS1yZWNvdmVyeS5odHRw
cy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0ZS1yZWNvdmVyeS5odHRwcy5odG1s
CkBAIC01LDcgKzUsNyBAQAogPHNjcmlwdCBzcmM9InJlc291cmNlcy90ZXN0aGFybmVzcy1oZWxw
ZXJzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGVzdC1oZWxwZXJzLnN1
Yi5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgotcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKK2Fz
eW5jX3Rlc3QoZnVuY3Rpb24odCkgewogICAgIHZhciBzY29wZSA9ICdyZXNvdXJjZXMvc2ltcGxl
LnR4dCc7CiAgICAgdmFyIHdvcmtlcl91cmwgPSAncmVzb3VyY2VzL3VwZGF0ZS1yZWNvdmVyeS13
b3JrZXIucHknOwogICAgIHZhciBleHBlY3RlZF91cmwgPSBub3JtYWxpemVVUkwod29ya2VyX3Vy
bCk7CkBAIC00NiwxMiArNDYsOCBAQCBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewogICAgICAg
fSk7CiAgICAgfQogCi0gICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3Jl
Z2lzdGVyKHQsIHdvcmtlcl91cmwsIHNjb3BlKQorICAgIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0
ZXJfYW5kX3JlZ2lzdGVyKHQsIHdvcmtlcl91cmwsIHNjb3BlKQogICAgICAgLnRoZW4oZnVuY3Rp
b24ocikgewotICAgICAgICAgIHQuYWRkX2NsZWFudXAoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAg
ICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyKHQsIHNjb3BlKTsKLSAgICAgICAg
ICAgIH0pOwotCiAgICAgICAgICAgcmVnaXN0cmF0aW9uID0gcjsKICAgICAgICAgICByZXR1cm4g
d2FpdF9mb3Jfc3RhdGUodCwgcmVnaXN0cmF0aW9uLmluc3RhbGxpbmcsICdhY3RpdmF0ZWQnKTsK
ICAgICAgICAgfSkKQEAgLTY4LDYgKzY0LDggQEAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsK
ICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGZyYW1lLmNvbnRlbnRXaW5kb3cubmF2aWdhdG9yLnNl
cnZpY2VXb3JrZXIuY29udHJvbGxlci5zY3JpcHRVUkwsCiAgICAgICAgICAgICAgICAgICAgICAg
ICBleHBlY3RlZF91cmwpOwogICAgICAgICAgIGZyYW1lLnJlbW92ZSgpOwotICAgICAgICB9KTsK
KyAgICAgICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfZG9uZSh0LCBz
Y29wZSk7CisgICAgICAgIH0pCisgICAgICAuY2F0Y2godW5yZWFjaGVkX3JlamVjdGlvbih0KSk7
CiAgIH0sICdSZWNvdmVyIGZyb20gYSBiYWQgc2VydmljZSB3b3JrZXIgYnkgdXBkYXRpbmcgYWZ0
ZXIgYSBmYWlsZWQgbmF2aWdhdGlvbi4nKTsKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvdXBkYXRlLXJlZ2lzdHJhdGlvbi13aXRoLXR5cGUuaHR0cHMtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLXJlZ2lzdHJhdGlvbi13aXRoLXR5cGUuaHR0
cHMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzMjdiNzcwNzA0
ZmViNzZhMWU0YTM3OGZmZmM1N2Q2MTlmODE1MmU1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0ZS1yZWdpc3RyYXRp
b24td2l0aC10eXBlLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDkgKzAs
MCBAQAotCi1GQUlMIFVwZGF0ZSB0aGUgcmVnaXN0cmF0aW9uIHdpdGggYSBkaWZmZXJlbnQgc2Ny
aXB0IHR5cGUgKGNsYXNzaWMgPT4gbW9kdWxlKS4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVq
ZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBudWxsIGlzIG5vdCBhbiBvYmpl
Y3QgKGV2YWx1YXRpbmcgJ3NlY29uZFdvcmtlci5wb3N0TWVzc2FnZScpIgotRkFJTCBVcGRhdGUg
dGhlIHJlZ2lzdHJhdGlvbiB3aXRoIGEgZGlmZmVyZW50IHNjcmlwdCB0eXBlIChtb2R1bGUgPT4g
Y2xhc3NpYykuIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBv
YmplY3QgIlR5cGVFcnJvcjogU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgdG9rZW4gJyonLiBpbXBv
cnQgY2FsbCBleHBlY3RzIGV4YWN0bHkgb25lIGFyZ3VtZW50LiIKLVBBU1MgVXBkYXRlIHRoZSBy
ZWdpc3RyYXRpb24gd2l0aCBhIGRpZmZlcmVudCBzY3JpcHQgdHlwZSAoY2xhc3NpYyA9PiBtb2R1
bGUpIGFuZCB3aXRoIGEgc2FtZSBtYWluIHNjcmlwdC4gCi1QQVNTIFVwZGF0ZSB0aGUgcmVnaXN0
cmF0aW9uIHdpdGggYSBkaWZmZXJlbnQgc2NyaXB0IHR5cGUgKG1vZHVsZSA9PiBjbGFzc2ljKSBh
bmQgd2l0aCBhIHNhbWUgbWFpbiBzY3JpcHQuIAotUEFTUyBEb2VzIG5vdCB1cGRhdGUgdGhlIHJl
Z2lzdHJhdGlvbiB3aXRoIHRoZSBzYW1lIHNjcmlwdCB0eXBlIGFuZCB0aGUgc2FtZSBtYWluIHNj
cmlwdC4gCi1GQUlMIFVwZGF0ZSB0aGUgcmVnaXN0cmF0aW9uIHdpdGggYSBkaWZmZXJlbnQgc2Ny
aXB0IHR5cGUgKGNsYXNzaWMgPT4gbW9kdWxlKSBhbmQgd2l0aCBhIHNhbWUgbWFpbiBzY3JpcHQu
IEV4cGVjdCBldmFsdWF0aW9uIGZhaWxlZC4gYXNzZXJ0X3VucmVhY2hlZDogU2hvdWxkIGhhdmUg
cmVqZWN0ZWQ6IFJlZ2lzdGVyaW5nIHdpdGggaW52YWxpZCBldmFsdWF0aW9uIHNob3VsZCBiZSBm
YWlsZWQuIFJlYWNoZWQgdW5yZWFjaGFibGUgY29kZQotRkFJTCBVcGRhdGUgdGhlIHJlZ2lzdHJh
dGlvbiB3aXRoIGEgZGlmZmVyZW50IHNjcmlwdCB0eXBlIChtb2R1bGUgPT4gY2xhc3NpYykgYW5k
IHdpdGggYSBzYW1lIG1haW4gc2NyaXB0LiBFeHBlY3QgZXZhbHVhdGlvbiBmYWlsZWQuIHByb21p
c2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJv
cjogU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgdG9rZW4gJyonLiBpbXBvcnQgY2FsbCBleHBlY3Rz
IGV4YWN0bHkgb25lIGFyZ3VtZW50LiIKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
dXBkYXRlLXJlZ2lzdHJhdGlvbi13aXRoLXR5cGUuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3VwZGF0ZS1yZWdpc3RyYXRpb24td2l0aC10eXBlLmh0dHBzLmh0bWwKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGU3ZDM2OTI4MTJlYjhhMjRmMjUzYjg3ZTE1N2Y0YTQzNjZlMzA5
OGUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvdXBkYXRlLXJlZ2lzdHJhdGlvbi13aXRoLXR5cGUuaHR0cHMuaHRtbAorKysg
L2Rldi9udWxsCkBAIC0xLDIwOCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxtZXRhIGNoYXJz
ZXQ9InV0Zi04Ij4KLTx0aXRsZT5TZXJ2aWNlIFdvcmtlcjogVXBkYXRlIHRoZSByZWdpc3RyYXRp
b24gd2l0aCBhIGRpZmZlcmVudCBzY3JpcHQgdHlwZS48L3RpdGxlPgotPCEtLSBjb21tb24uanMg
aXMgZm9yIGd1aWQoKSAtLT4KLTxzY3JpcHQgc3JjPSIvY29tbW9uL3NlY3VyaXR5LWZlYXR1cmVz
L3Jlc291cmNlcy9jb21tb24uanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMv
dGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhh
cm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy90ZXN0LWhl
bHBlcnMuc3ViLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0vLyBUaGUgZm9sbG93aW5nIHR3byB0
ZXN0cyBjaGVjayB0aGF0IGEgcmVnaXN0cmF0aW9uIGlzIHVwZGF0ZWQgY29ycmVjdGx5Ci0vLyB3
aXRoIGRpZmZlcmVudCBzY3JpcHQgdHlwZS4gQXQgZmlyc3QgU2VydmljZSBXb3JrZXIgaXMgcmVn
aXN0ZXJlZCBhcwotLy8gY2xhc3NpYyBzY3JpcHQgdHlwZSwgdGhlbiBpdCBpcyByZS1yZWdpc3Rl
cmVkIGFzIG1vZHVsZSBzY3JpcHQgdHlwZSwKLS8vIGFuZCB2aWNlIHZlcnNhLiBBIG1haW4gc2Ny
aXB0IGlzIGFsc28gdXBkYXRlZCBhdCB0aGUgc2FtZSB0aW1lLgotcHJvbWlzZV90ZXN0KGFzeW5j
IHQgPT4gewotICBjb25zdCBrZXkgPSBndWlkKCk7Ci0gIGNvbnN0IHNjcmlwdCA9IGByZXNvdXJj
ZXMvdXBkYXRlLXJlZ2lzdHJhdGlvbi13aXRoLXR5cGUucHk/Y2xhc3NpY19maXJzdD0xJmtleT0k
e2tleX1gOwotICBjb25zdCBzY29wZSA9ICdyZXNvdXJjZXMvdXBkYXRlLXJlZ2lzdHJhdGlvbi13
aXRoLXR5cGUnOwotICBhd2FpdCBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyKHQsIHNjb3BlKTsK
LSAgdC5hZGRfY2xlYW51cCgoKSA9PiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyKHQsIHNjb3Bl
KSk7Ci0KLSAgLy8gUmVnaXN0ZXIgd2l0aCBjbGFzc2ljIHNjcmlwdCB0eXBlLgotICBjb25zdCBm
aXJzdFJlZ2lzdHJhdGlvbiA9IGF3YWl0IG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVy
KHNjcmlwdCwgewotICAgIHNjb3BlOiBzY29wZSwKLSAgICB0eXBlOiAnY2xhc3NpYycKLSAgfSk7
Ci0gIGNvbnN0IGZpcnN0V29ya2VyID0gZmlyc3RSZWdpc3RyYXRpb24uaW5zdGFsbGluZzsKLSAg
YXdhaXQgd2FpdF9mb3Jfc3RhdGUodCwgZmlyc3RXb3JrZXIsICdhY3RpdmF0ZWQnKTsKLSAgZmly
c3RXb3JrZXIucG9zdE1lc3NhZ2UoJyAnKTsKLSAgbGV0IG1zZ0V2ZW50ID0gYXdhaXQgbmV3IFBy
b21pc2UociA9PiBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5vbm1lc3NhZ2UgPSByKTsKLSAgYXNz
ZXJ0X2VxdWFscyhtc2dFdmVudC5kYXRhLCAnQSBjbGFzc2ljIHNjcmlwdC4nKTsKLQotICAvLyBS
ZS1yZWdpc3RlciB3aXRoIG1vZHVsZSBzY3JpcHQgdHlwZS4KLSAgY29uc3Qgc2Vjb25kUmVnaXN0
cmF0aW9uID0gYXdhaXQgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoc2NyaXB0LCB7
Ci0gICAgc2NvcGU6IHNjb3BlLAotICAgIHR5cGU6ICdtb2R1bGUnCi0gIH0pOwotICBjb25zdCBz
ZWNvbmRXb3JrZXIgPSBzZWNvbmRSZWdpc3RyYXRpb24uaW5zdGFsbGluZzsKLSAgc2Vjb25kV29y
a2VyLnBvc3RNZXNzYWdlKCcgJyk7Ci0gIG1zZ0V2ZW50ID0gYXdhaXQgbmV3IFByb21pc2UociA9
PiBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5vbm1lc3NhZ2UgPSByKTsKLSAgYXNzZXJ0X2VxdWFs
cyhtc2dFdmVudC5kYXRhLCAnQSBtb2R1bGUgc2NyaXB0LicpOwotCi0gIGFzc2VydF9ub3RfZXF1
YWxzKGZpcnN0V29ya2VyLCBzZWNvbmRXb3JrZXIpOwotICBhc3NlcnRfZXF1YWxzKGZpcnN0UmVn
aXN0cmF0aW9uLCBzZWNvbmRSZWdpc3RyYXRpb24pOwotfSwgJ1VwZGF0ZSB0aGUgcmVnaXN0cmF0
aW9uIHdpdGggYSBkaWZmZXJlbnQgc2NyaXB0IHR5cGUgKGNsYXNzaWMgPT4gbW9kdWxlKS4nKTsK
LQotcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewotICBjb25zdCBrZXkgPSBndWlkKCk7Ci0gIGNv
bnN0IHNjcmlwdCA9IGByZXNvdXJjZXMvdXBkYXRlLXJlZ2lzdHJhdGlvbi13aXRoLXR5cGUucHk/
Y2xhc3NpY19maXJzdD0wJmtleT0ke2tleX1gOwotICBjb25zdCBzY29wZSA9ICdyZXNvdXJjZXMv
dXBkYXRlLXJlZ2lzdHJhdGlvbi13aXRoLXR5cGUnOwotICBhd2FpdCBzZXJ2aWNlX3dvcmtlcl91
bnJlZ2lzdGVyKHQsIHNjb3BlKTsKLSAgdC5hZGRfY2xlYW51cCgoKSA9PiBzZXJ2aWNlX3dvcmtl
cl91bnJlZ2lzdGVyKHQsIHNjb3BlKSk7Ci0KLSAgLy8gUmVnaXN0ZXIgd2l0aCBtb2R1bGUgc2Ny
aXB0IHR5cGUuCi0gIGNvbnN0IGZpcnN0UmVnaXN0cmF0aW9uID0gYXdhaXQgbmF2aWdhdG9yLnNl
cnZpY2VXb3JrZXIucmVnaXN0ZXIoc2NyaXB0LCB7Ci0gICAgc2NvcGU6IHNjb3BlLAotICAgIHR5
cGU6ICdtb2R1bGUnCi0gIH0pOwotICBjb25zdCBmaXJzdFdvcmtlciA9IGZpcnN0UmVnaXN0cmF0
aW9uLmluc3RhbGxpbmc7Ci0gIGF3YWl0IHdhaXRfZm9yX3N0YXRlKHQsIGZpcnN0V29ya2VyLCAn
YWN0aXZhdGVkJyk7Ci0gIGZpcnN0V29ya2VyLnBvc3RNZXNzYWdlKCcgJyk7Ci0gIGxldCBtc2dF
dmVudCA9IGF3YWl0IG5ldyBQcm9taXNlKHIgPT4gbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIub25t
ZXNzYWdlID0gcik7Ci0gIGFzc2VydF9lcXVhbHMobXNnRXZlbnQuZGF0YSwgJ0EgbW9kdWxlIHNj
cmlwdC4nKTsKLQotICAvLyBSZS1yZWdpc3RlciB3aXRoIGNsYXNzaWMgc2NyaXB0IHR5cGUuCi0g
IGNvbnN0IHNlY29uZFJlZ2lzdHJhdGlvbiA9IGF3YWl0IG5hdmlnYXRvci5zZXJ2aWNlV29ya2Vy
LnJlZ2lzdGVyKHNjcmlwdCwgewotICAgIHNjb3BlOiBzY29wZSwKLSAgICB0eXBlOiAnY2xhc3Np
YycKLSAgfSk7Ci0gIGNvbnN0IHNlY29uZFdvcmtlciA9IHNlY29uZFJlZ2lzdHJhdGlvbi5pbnN0
YWxsaW5nOwotICBzZWNvbmRXb3JrZXIucG9zdE1lc3NhZ2UoJyAnKTsKLSAgbXNnRXZlbnQgPSBh
d2FpdCBuZXcgUHJvbWlzZShyID0+IG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLm9ubWVzc2FnZSA9
IHIpOwotICBhc3NlcnRfZXF1YWxzKG1zZ0V2ZW50LmRhdGEsICdBIGNsYXNzaWMgc2NyaXB0Licp
OwotCi0gIGFzc2VydF9ub3RfZXF1YWxzKGZpcnN0V29ya2VyLCBzZWNvbmRXb3JrZXIpOwotICBh
c3NlcnRfZXF1YWxzKGZpcnN0UmVnaXN0cmF0aW9uLCBzZWNvbmRSZWdpc3RyYXRpb24pOwotfSwg
J1VwZGF0ZSB0aGUgcmVnaXN0cmF0aW9uIHdpdGggYSBkaWZmZXJlbnQgc2NyaXB0IHR5cGUgKG1v
ZHVsZSA9PiBjbGFzc2ljKS4nKTsKLQotLy8gVGhlIGZvbGxvd2luZyB0d28gdGVzdHMgY2hhbmdl
IHRoZSBzY3JpcHQgdHlwZSB3aGlsZSBrZWVwaW5nCi0vLyB0aGUgc2NyaXB0IGlkZW50aWNhbC4K
LXByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKLSAgY29uc3Qgc2NyaXB0ID0gJ3Jlc291cmNlcy9l
bXB0eS13b3JrZXIuanMnOwotICBjb25zdCBzY29wZSA9ICdyZXNvdXJjZXMvdXBkYXRlLXJlZ2lz
dHJhdGlvbi13aXRoLXR5cGUnOwotICBhd2FpdCBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyKHQs
IHNjb3BlKTsKLSAgdC5hZGRfY2xlYW51cCgoKSA9PiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVy
KHQsIHNjb3BlKSk7Ci0KLSAgLy8gUmVnaXN0ZXIgd2l0aCBjbGFzc2ljIHNjcmlwdCB0eXBlLgot
ICBjb25zdCBmaXJzdFJlZ2lzdHJhdGlvbiA9IGF3YWl0IG5hdmlnYXRvci5zZXJ2aWNlV29ya2Vy
LnJlZ2lzdGVyKHNjcmlwdCwgewotICAgIHNjb3BlOiBzY29wZSwKLSAgICB0eXBlOiAnY2xhc3Np
YycKLSAgfSk7Ci0gIGNvbnN0IGZpcnN0V29ya2VyID0gZmlyc3RSZWdpc3RyYXRpb24uaW5zdGFs
bGluZzsKLSAgYXdhaXQgd2FpdF9mb3Jfc3RhdGUodCwgZmlyc3RXb3JrZXIsICdhY3RpdmF0ZWQn
KTsKLQotICAvLyBSZS1yZWdpc3RlciB3aXRoIG1vZHVsZSBzY3JpcHQgdHlwZS4KLSAgY29uc3Qg
c2Vjb25kUmVnaXN0cmF0aW9uID0gYXdhaXQgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0
ZXIoc2NyaXB0LCB7Ci0gICAgc2NvcGU6IHNjb3BlLAotICAgIHR5cGU6ICdtb2R1bGUnCi0gIH0p
OwotICBjb25zdCBzZWNvbmRXb3JrZXIgPSBzZWNvbmRSZWdpc3RyYXRpb24uaW5zdGFsbGluZzsK
LQotICBhc3NlcnRfbm90X2VxdWFscyhmaXJzdFdvcmtlciwgc2Vjb25kV29ya2VyKTsKLSAgYXNz
ZXJ0X2VxdWFscyhmaXJzdFJlZ2lzdHJhdGlvbiwgc2Vjb25kUmVnaXN0cmF0aW9uKTsKLX0sICdV
cGRhdGUgdGhlIHJlZ2lzdHJhdGlvbiB3aXRoIGEgZGlmZmVyZW50IHNjcmlwdCB0eXBlIChjbGFz
c2ljID0+IG1vZHVsZSkgJwotICAgICsgJ2FuZCB3aXRoIGEgc2FtZSBtYWluIHNjcmlwdC4nKTsK
LQotcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewotICBjb25zdCBzY3JpcHQgPSAncmVzb3VyY2Vz
L2VtcHR5LXdvcmtlci5qcyc7Ci0gIGNvbnN0IHNjb3BlID0gJ3Jlc291cmNlcy91cGRhdGUtcmVn
aXN0cmF0aW9uLXdpdGgtdHlwZSc7Ci0gIGF3YWl0IHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXIo
dCwgc2NvcGUpOwotICB0LmFkZF9jbGVhbnVwKCgpID0+IHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0
ZXIodCwgc2NvcGUpKTsKLQotICAvLyBSZWdpc3RlciB3aXRoIG1vZHVsZSBzY3JpcHQgdHlwZS4K
LSAgY29uc3QgZmlyc3RSZWdpc3RyYXRpb24gPSBhd2FpdCBuYXZpZ2F0b3Iuc2VydmljZVdvcmtl
ci5yZWdpc3RlcihzY3JpcHQsIHsKLSAgICBzY29wZTogc2NvcGUsCi0gICAgdHlwZTogJ21vZHVs
ZScKLSAgfSk7Ci0gIGNvbnN0IGZpcnN0V29ya2VyID0gZmlyc3RSZWdpc3RyYXRpb24uaW5zdGFs
bGluZzsKLSAgYXdhaXQgd2FpdF9mb3Jfc3RhdGUodCwgZmlyc3RXb3JrZXIsICdhY3RpdmF0ZWQn
KTsKLQotICAvLyBSZS1yZWdpc3RlciB3aXRoIGNsYXNzaWMgc2NyaXB0IHR5cGUuCi0gIGNvbnN0
IHNlY29uZFJlZ2lzdHJhdGlvbiA9IGF3YWl0IG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lz
dGVyKHNjcmlwdCwgewotICAgIHNjb3BlOiBzY29wZSwKLSAgICB0eXBlOiAnY2xhc3NpYycKLSAg
fSk7Ci0gIGNvbnN0IHNlY29uZFdvcmtlciA9IHNlY29uZFJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5n
OwotCi0gIGFzc2VydF9ub3RfZXF1YWxzKGZpcnN0V29ya2VyLCBzZWNvbmRXb3JrZXIpOwotICBh
c3NlcnRfZXF1YWxzKGZpcnN0UmVnaXN0cmF0aW9uLCBzZWNvbmRSZWdpc3RyYXRpb24pOwotfSwg
J1VwZGF0ZSB0aGUgcmVnaXN0cmF0aW9uIHdpdGggYSBkaWZmZXJlbnQgc2NyaXB0IHR5cGUgKG1v
ZHVsZSA9PiBjbGFzc2ljKSAnCi0gICAgKyAnYW5kIHdpdGggYSBzYW1lIG1haW4gc2NyaXB0Licp
OwotCi0vLyBUaGlzIHRlc3QgY2hlY2tzIHRoYXQgYSByZWdpc3RyYXRpb24gaXMgbm90IHVwZGF0
ZWQgd2l0aCB0aGUgc2FtZSBzY3JpcHQKLS8vIHR5cGUgYW5kIHRoZSBzYW1lIG1haW4gc2NyaXB0
LgotcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewotICBjb25zdCBzY3JpcHQgPSAncmVzb3VyY2Vz
L2VtcHR5LXdvcmtlci5qcyc7Ci0gIGNvbnN0IHNjb3BlID0gJ3Jlc291cmNlcy91cGRhdGUtcmVn
aXN0cmF0aW9uLXdpdGgtdHlwZSc7Ci0gIGF3YWl0IHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXIo
dCwgc2NvcGUpOwotICB0LmFkZF9jbGVhbnVwKCgpID0+IHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0
ZXIodCwgc2NvcGUpKTsKLQotICAvLyBSZWdpc3RlciB3aXRoIG1vZHVsZSBzY3JpcHQgdHlwZS4K
LSAgY29uc3QgZmlyc3RSZWdpc3RyYXRpb24gPSBhd2FpdCBuYXZpZ2F0b3Iuc2VydmljZVdvcmtl
ci5yZWdpc3RlcihzY3JpcHQsIHsKLSAgICBzY29wZTogc2NvcGUsCi0gICAgdHlwZTogJ21vZHVs
ZScKLSAgfSk7Ci0gIGF3YWl0IHdhaXRfZm9yX3N0YXRlKHQsIGZpcnN0UmVnaXN0cmF0aW9uLmlu
c3RhbGxpbmcsICdhY3RpdmF0ZWQnKTsKLQotICAvLyBSZS1yZWdpc3RlciB3aXRoIG1vZHVsZSBz
Y3JpcHQgdHlwZS4KLSAgY29uc3Qgc2Vjb25kUmVnaXN0cmF0aW9uID0gYXdhaXQgbmF2aWdhdG9y
LnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoc2NyaXB0LCB7Ci0gICAgc2NvcGU6IHNjb3BlLAotICAg
IHR5cGU6ICdtb2R1bGUnCi0gIH0pOwotICBhc3NlcnRfZXF1YWxzKHNlY29uZFJlZ2lzdHJhdGlv
bi5pbnN0YWxsaW5nLCBudWxsKTsKLQotICBhc3NlcnRfZXF1YWxzKGZpcnN0UmVnaXN0cmF0aW9u
LCBzZWNvbmRSZWdpc3RyYXRpb24pOwotfSwgJ0RvZXMgbm90IHVwZGF0ZSB0aGUgcmVnaXN0cmF0
aW9uIHdpdGggdGhlIHNhbWUgc2NyaXB0IHR5cGUgYW5kICcKLSAgICArICd0aGUgc2FtZSBtYWlu
IHNjcmlwdC4nKTsKLQotLy8gSW4gdGhlIGNhc2UgKGNsYXNzaWMgPT4gbW9kdWxlKSwgYSB3b3Jr
ZXIgc2NyaXB0IGNvbnRhaW5zIGltcG9ydFNjcmlwdHMoKQotLy8gdGhhdCBpcyBkaXNhbGxvd2Vk
IG9uIG1vZHVsZSBzY3JpcHRzLCBzbyB0aGUgc2Vjb25kIHJlZ2lzdHJhdGlvbiBpcwotLy8gZXhw
ZWN0ZWQgdG8gZmFpbCBzY3JpcHQgZXZhbHVhdGlvbi4KLXByb21pc2VfdGVzdChhc3luYyB0ID0+
IHsKLSAgY29uc3Qgc2NyaXB0ID0gJ3Jlc291cmNlcy9jbGFzc2ljLXdvcmtlci5qcyc7Ci0gIGNv
bnN0IHNjb3BlID0gJ3Jlc291cmNlcy91cGRhdGUtcmVnaXN0cmF0aW9uLXdpdGgtdHlwZSc7Ci0g
IGF3YWl0IHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXIodCwgc2NvcGUpOwotICB0LmFkZF9jbGVh
bnVwKCgpID0+IHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXIodCwgc2NvcGUpKTsKLQotICAvLyBS
ZWdpc3RlciB3aXRoIGNsYXNzaWMgc2NyaXB0IHR5cGUuCi0gIGNvbnN0IGZpcnN0UmVnaXN0cmF0
aW9uID0gYXdhaXQgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoc2NyaXB0LCB7Ci0g
ICAgc2NvcGU6IHNjb3BlLAotICAgIHR5cGU6ICdjbGFzc2ljJwotICB9KTsKLSAgYXNzZXJ0X25v
dF9lcXVhbHMoZmlyc3RSZWdpc3RyYXRpb24uaW5zdGFsbGluZywgbnVsbCk7Ci0gIGF3YWl0IHdh
aXRfZm9yX3N0YXRlKHQsIGZpcnN0UmVnaXN0cmF0aW9uLmluc3RhbGxpbmcsICdhY3RpdmF0ZWQn
KTsKLQotICAvLyBSZS1yZWdpc3RlciB3aXRoIG1vZHVsZSBzY3JpcHQgdHlwZSBhbmQgZXhwZWN0
IFR5cGVFcnJvci4KLSAgcmV0dXJuIHByb21pc2VfcmVqZWN0cyh0LCBuZXcgVHlwZUVycm9yLCBu
YXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3RlcihzY3JpcHQsIHsKLSAgICBzY29wZTogc2Nv
cGUsCi0gICAgdHlwZTogJ21vZHVsZScKLSAgfSksICdSZWdpc3RlcmluZyB3aXRoIGludmFsaWQg
ZXZhbHVhdGlvbiBzaG91bGQgYmUgZmFpbGVkLicpOwotfSwgJ1VwZGF0ZSB0aGUgcmVnaXN0cmF0
aW9uIHdpdGggYSBkaWZmZXJlbnQgc2NyaXB0IHR5cGUgKGNsYXNzaWMgPT4gbW9kdWxlKSAnCi0g
ICAgKyAnYW5kIHdpdGggYSBzYW1lIG1haW4gc2NyaXB0LiBFeHBlY3QgZXZhbHVhdGlvbiBmYWls
ZWQuJyk7Ci0KLS8vIEluIHRoZSBjYXNlIChtb2R1bGUgPT4gY2xhc3NpYyksIGEgd29ya2VyIHNj
cmlwdCBjb250YWlucyBzdGF0aWMtaW1wb3J0Ci0vLyB0aGF0IGlzIGRpc2FsbG93ZWQgb24gY2xh
c3NpYyBzY3JpcHRzLCBzbyB0aGUgc2Vjb25kIHJlZ2lzdHJhdGlvbiBpcwotLy8gZXhwZWN0ZWQg
dG8gZmFpbCBzY3JpcHQgZXZhbHVhdGlvbi4KLXByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKLSAg
Y29uc3Qgc2NyaXB0ID0gJ3Jlc291cmNlcy9tb2R1bGUtd29ya2VyLmpzJzsKLSAgY29uc3Qgc2Nv
cGUgPSAncmVzb3VyY2VzL3VwZGF0ZS1yZWdpc3RyYXRpb24td2l0aC10eXBlJzsKLSAgYXdhaXQg
c2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcih0LCBzY29wZSk7Ci0gIHQuYWRkX2NsZWFudXAoKCkg
PT4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcih0LCBzY29wZSkpOwotCi0gIC8vIFJlZ2lzdGVy
IHdpdGggbW9kdWxlIHNjcmlwdCB0eXBlLgotICBjb25zdCBmaXJzdFJlZ2lzdHJhdGlvbiA9IGF3
YWl0IG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKHNjcmlwdCwgewotICAgIHNjb3Bl
OiBzY29wZSwKLSAgICB0eXBlOiAnbW9kdWxlJwotICB9KTsKLSAgYXNzZXJ0X25vdF9lcXVhbHMo
Zmlyc3RSZWdpc3RyYXRpb24uaW5zdGFsbGluZywgbnVsbCk7Ci0gIGF3YWl0IHdhaXRfZm9yX3N0
YXRlKHQsIGZpcnN0UmVnaXN0cmF0aW9uLmluc3RhbGxpbmcsICdhY3RpdmF0ZWQnKTsKLQotICAv
LyBSZS1yZWdpc3RlciB3aXRoIGNsYXNzaWMgc2NyaXB0IHR5cGUgYW5kIGV4cGVjdCBUeXBlRXJy
b3IuCi0gIHJldHVybiBwcm9taXNlX3JlamVjdHModCwgbmV3IFR5cGVFcnJvciwgbmF2aWdhdG9y
LnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoc2NyaXB0LCB7Ci0gICAgc2NvcGU6IHNjb3BlLAotICAg
IHR5cGU6ICdjbGFzc2ljJwotICB9KSwgJ1JlZ2lzdGVyaW5nIHdpdGggaW52YWxpZCBldmFsdWF0
aW9uIHNob3VsZCBiZSBmYWlsZWQuJyk7Ci19LCAnVXBkYXRlIHRoZSByZWdpc3RyYXRpb24gd2l0
aCBhIGRpZmZlcmVudCBzY3JpcHQgdHlwZSAobW9kdWxlID0+IGNsYXNzaWMpICcKLSAgICArICdh
bmQgd2l0aCBhIHNhbWUgbWFpbiBzY3JpcHQuIEV4cGVjdCBldmFsdWF0aW9uIGZhaWxlZC4nKTsK
LTwvc2NyaXB0PgotPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdzNjLWlt
cG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci93M2MtaW1wb3J0LmxvZwppbmRleCBhMzNlZjA1
YjRiYzA3NzI4YjE5ODc2M2ZlOWJmZjE0NDkzZGU4YTBmLi5hMDY4Zjg2MjA1OTIwNjZiMjE2MDg3
ZWMxYjI1YjZhZDZkMzAyOWQ0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci93M2MtaW1w
b3J0LmxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci93M2MtaW1wb3J0LmxvZwpAQCAtMjIsNyAr
MjIsNiBAQCBMaXN0IG9mIGZpbGVzOgogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2FjdGl2ZS5odHRwcy5o
dG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvYXBwY2FjaGUtb3JkZXJpbmctbWFpbi5odHRwcy5odG1s
CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvY2xhaW0tYWZmZWN0LW90aGVyLXJlZ2lzdHJhdGlvbi5odHRw
cy5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xhaW0tZmV0Y2gtd2l0aC1hcHBjYWNoZS5odHRw
cy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xhaW0tZmV0Y2guaHR0cHMuaHRtbAogL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL2NsYWltLW5vdC11c2luZy1yZWdpc3RyYXRpb24uaHR0cHMuaHRtbAogL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL2NsYWltLXNoYXJlZC13b3JrZXItZmV0Y2guaHR0cHMuaHRtbApAQCAt
MzMsNyArMzIsNiBAQCBMaXN0IG9mIGZpbGVzOgogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsaWVudC1u
YXZpZ2F0ZS5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xpZW50cy1nZXQtY2xpZW50
LXR5cGVzLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGllbnRzLWdldC1jcm9zcy1v
cmlnaW4uaHR0cHMuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsaWVudHMtZ2V0LXJlc3VsdGlu
Z0NsaWVudElkLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGllbnRzLWdldC5odHRw
cy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xpZW50cy1tYXRjaGFsbC1jbGllbnQtdHlwZXMu
aHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsaWVudHMtbWF0Y2hhbGwtZXhhY3QtY29u
dHJvbGxlci5odHRwcy5odG1sCkBAIC00NSwxNCArNDMsMTEgQEAgTGlzdCBvZiBmaWxlczoKIC9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci9jb250cm9sbGVyLW9uLWxvYWQuaHR0cHMuaHRtbAogL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL2NvbnRyb2xsZXItb24tcmVsb2FkLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9jb250cm9sbGVyLXdpdGgtbm8tZmV0Y2gtZXZlbnQtaGFuZGxlci5odHRwcy5odG1sCi0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvZGF0YS10cmFuc2Zlci1maWxlcy5odHRwcy5odG1sCiAvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvZGVkaWNhdGVkLXdvcmtlci1zZXJ2aWNlLXdvcmtlci1pbnRlcmNlcHRpb24u
aHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2RldGFjaGVkLWNvbnRleHQuaHR0cHMuaHRt
bAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL2VtYmVkLWFuZC1vYmplY3QtYXJlLW5vdC1pbnRlcmNlcHRl
ZC5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZXh0ZW5kYWJsZS1ldmVudC1hc3luYy13
YWl0dW50aWwuaHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2V4dGVuZGFibGUtZXZlbnQt
d2FpdHVudGlsLmh0dHBzLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1hdWRpby10YWlu
dGluZy5odHRwcy5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtY2FudmFzLXRhaW50aW5n
LWRvdWJsZS13cml0ZS5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtY2FudmFz
LXRhaW50aW5nLWltYWdlLWNhY2hlLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRj
aC1jYW52YXMtdGFpbnRpbmctaW1hZ2UuaHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2Zl
dGNoLWNhbnZhcy10YWludGluZy12aWRlby1jYWNoZS5odHRwcy5odG1sCkBAIC0xMDQsOCArOTks
NiBAQCBMaXN0IG9mIGZpbGVzOgogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2dldHJlZ2lzdHJhdGlvbnMu
aHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2h0dHAtdG8taHR0cHMtcmVkaXJlY3QtYW5k
LXJlZ2lzdGVyLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9pbW11dGFibGUtcHJvdG90
eXBlLXNlcnZpY2V3b3JrZXIuaHR0cHMuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ltcG9ydC1t
b2R1bGUtc2NyaXB0cy5odHRwcy5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvaW1wb3J0LXNjcmlw
dHMtbWltZS10eXBlcy5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvaW1wb3J0LXNjcmlw
dHMtcmVkaXJlY3QuaHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ltcG9ydC1zY3JpcHRz
LXJlc291cmNlLW1hcC5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvaW1wb3J0LXNjcmlw
dHMtdXBkYXRlZC1mbGFnLmh0dHBzLmh0bWwKQEAgLTEzNCw3ICsxMjcsNiBAQCBMaXN0IG9mIGZp
bGVzOgogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Bvc3RtZXNzYWdlLWJsb2ItdXJsLmh0dHBzLmh0bWwK
IC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9wb3N0bWVzc2FnZS1mcm9tLXdhaXRpbmctc2VydmljZXdvcmtl
ci5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcG9zdG1lc3NhZ2UtbXNncG9ydC10by1j
bGllbnQuaHR0cHMuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Bvc3RtZXNzYWdlLXRvLWNsaWVu
dC1tZXNzYWdlLXF1ZXVlLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9wb3N0bWVzc2Fn
ZS10by1jbGllbnQuaHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Bvc3RtZXNzYWdlLmh0
dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZWFkeS5odHRwcy5odG1sCkBAIC0xNTAsNyAr
MTQyLDYgQEAgTGlzdCBvZiBmaWxlczoKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZWdpc3RyYXRpb24t
ZXZlbnRzLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZWdpc3RyYXRpb24taWZyYW1l
Lmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZWdpc3RyYXRpb24tbWltZS10eXBlcy5o
dHRwcy5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVnaXN0cmF0aW9uLXNjaGVkdWxlLWpvYi5o
dHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVnaXN0cmF0aW9uLXNjb3BlLmh0dHBzLmh0
bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZWdpc3RyYXRpb24tc2NyaXB0LXVybC5odHRwcy5odG1s
CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvcmVnaXN0cmF0aW9uLXNjcmlwdC5odHRwcy5odG1sCkBAIC0x
NjAsNyArMTUxLDcgQEAgTGlzdCBvZiBmaWxlczoKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZWplY3Rp
b25zLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXF1ZXN0LWVuZC10by1lbmQuaHR0
cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlLXRpbWluZy1jcm9zcy1vcmlnaW4u
aHR0cHMuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlLXRpbWluZy5zdWIuaHR0cHMu
aHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlLXRpbWluZy5odHRwcy5odG1sCiAvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvcmVzcG9uZC13aXRoLWJvZHktYWNjZXNzZWQtcmVzcG9uc2UuaHR0cHMu
aHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3NhbmRib3hlZC1pZnJhbWUtZmV0Y2gtZXZlbnQuaHR0
cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3NhbmRib3hlZC1pZnJhbWUtbmF2aWdhdG9yLXNl
cnZpY2V3b3JrZXIuaHR0cHMuaHRtbApAQCAtMTg5LDEyICsxODAsNyBAQCBMaXN0IG9mIGZpbGVz
OgogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0ZS1hZnRlci1uYXZpZ2F0aW9uLXJlZGlyZWN0Lmh0
dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUtYWZ0ZXItb25lZGF5Lmh0dHBzLmh0
bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUtYnl0ZWNoZWNrLmh0dHBzLmh0bWwKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci91cGRhdGUtbWlzc2luZy1pbXBvcnQtc2NyaXB0cy5odHRwcy5odG1sCi0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvdXBkYXRlLW5vLWNhY2hlLXJlcXVlc3QtaGVhZGVycy5odHRwcy5o
dG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLW5vdC1hbGxvd2VkLmh0dHBzLmh0bWwKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci91cGRhdGUtb24tbmF2aWdhdGlvbi5odHRwcy5odG1sCiAvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvdXBkYXRlLXJlY292ZXJ5Lmh0dHBzLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci91cGRhdGUtcmVnaXN0cmF0aW9uLXdpdGgtdHlwZS5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvdXBkYXRlLXJlc3VsdC5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRl
Lmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci93YWl0aW5nLmh0dHBzLmh0bWwKQEAgLTIw
Niw1ICsxOTIsMyBAQCBMaXN0IG9mIGZpbGVzOgogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3dvcmtlci1p
bi1zYW5kYm94ZWQtaWZyYW1lLWJ5LWNzcC1mZXRjaC1ldmVudC5odHRwcy5odG1sCiAvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvd29ya2VyLWludGVyY2VwdGlvbi1yZWRpcmVjdC5odHRwcy5odG1sCiAvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvd29ya2VyLWludGVyY2VwdGlvbi5odHRwcy5odG1sCi0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIveGhyLXJlc3BvbnNlLXVybC5odHRwcy5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
eHNsLWJhc2UtdXJsLmh0dHBzLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3dl
YnNvY2tldC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci93ZWJzb2NrZXQu
aHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IGNjZDM3NmZiZDE0MGU2Y2MyNTFhNTIwNjQyNzMwZGMx
YTllODY3OGYuLjAwYWUzNDMxNGU3MmRmZmNhNDI1Y2UzMTI0NjJmMzBiZGI2MWE3YTkgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3dlYnNvY2tldC5odHRwcy1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvd2Vic29ja2V0Lmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMSw2
ICsxLDQgQEAKLUNPTlNPTEUgTUVTU0FHRTogV2ViU29ja2V0IG5ldHdvcmsgZXJyb3I6IE9TU3Rh
dHVzIEVycm9yIC05ODA3OiBJbnZhbGlkIGNlcnRpZmljYXRlIGNoYWluIAotQ09OU09MRSBNRVNT
QUdFOiBXZWJTb2NrZXQgbmV0d29yayBlcnJvcjogT1NTdGF0dXMgRXJyb3IgLTk4MDc6IEludmFs
aWQgY2VydGlmaWNhdGUgY2hhaW4gCiAKIAotRkFJTCBWZXJpZnkgV2ViU29ja2V0IGhhbmRzaGFr
ZSBjaGFubmVsIGRvZXMgbm90IGdldCBpbnRlcmNlcHRlZCBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxl
ZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJbb2JqZWN0IEV2ZW50XSIKK1BBU1MgVmVy
aWZ5IFdlYlNvY2tldCBoYW5kc2hha2UgY2hhbm5lbCBkb2VzIG5vdCBnZXQgaW50ZXJjZXB0ZWQg
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3dlYnNvY2tldC5odHRwcy5odG1sIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvd2Vic29ja2V0Lmh0dHBzLmh0bWwKaW5kZXggY2JmZWQ0NTZhOWRj
NmJkZmRiZDE5Nzg5OTEyMTAxYWIxMTE3YjFlZi4uYjljNTI2ZDUwZmI5OWFiYmFmY2IyYjhkNGYw
MGMyMjY3YjI1YzQ3NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvd2Vic29ja2V0Lmh0
dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvd2Vic29ja2V0Lmh0dHBzLmh0bWwKQEAg
LTYsNyArNiw3IEBACiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Rlc3QtaGVscGVycy5zdWIuanM/
cGlwZT1zdWIiPjwvc2NyaXB0PgogPHNjcmlwdD4KIAotcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQp
IHsKK2FzeW5jX3Rlc3QoZnVuY3Rpb24odCkgewogICAgIHZhciBwYXRoID0gbmV3IFVSTCgiLiIs
IHdpbmRvdy5sb2NhdGlvbikucGF0aG5hbWUKICAgICB2YXIgdXJsID0gJ3Jlc291cmNlcy93ZWJz
b2NrZXQuanMnOwogICAgIHZhciBzY29wZSA9ICdyZXNvdXJjZXMvYmxhbmsuaHRtbD93ZWJzb2Nr
ZXQnOwpAQCAtMTQsMTIgKzE0LDggQEAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICB2
YXIgZnJhbWVVUkwgPSBob3N0X2luZm9bJ0hUVFBTX09SSUdJTiddICsgcGF0aCArIHNjb3BlOwog
ICAgIHZhciBmcmFtZTsKIAotICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2Fu
ZF9yZWdpc3Rlcih0LCB1cmwsIHNjb3BlKQorICAgIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJf
YW5kX3JlZ2lzdGVyKHQsIHVybCwgc2NvcGUpCiAgICAgICAudGhlbihmdW5jdGlvbihyZWdpc3Ry
YXRpb24pIHsKLSAgICAgICAgICB0LmFkZF9jbGVhbnVwKGZ1bmN0aW9uKCkgewotICAgICAgICAg
ICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcih0LCBzY29wZSk7Ci0gICAgICAg
ICAgICB9KTsKLQogICAgICAgICAgIHJldHVybiB3YWl0X2Zvcl9zdGF0ZSh0LCByZWdpc3RyYXRp
b24uaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOwogICAgICAgICB9KQogICAgICAgLnRoZW4oZnVu
Y3Rpb24oKSB7IHJldHVybiB3aXRoX2lmcmFtZShmcmFtZVVSTCk7IH0pCkBAIC0yOCwxOCArMjQs
MjMgQEAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICAgICAgICByZXR1cm4gd2Vic29j
a2V0KHQsIGZyYW1lKTsKICAgICAgICAgfSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKCkgewotICAg
ICAgICAgIHZhciBjaGFubmVsID0gbmV3IE1lc3NhZ2VDaGFubmVsKCk7Ci0gICAgICAgICAgcmV0
dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUpIHsKLSAgICAgICAgICAgIGNoYW5uZWwu
cG9ydDEub25tZXNzYWdlID0gcmVzb2x2ZTsKKyAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2Uo
ZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7CisgICAgICAgICAgICBmdW5jdGlvbiBvbk1lc3Nh
Z2UoZSkgeworICAgICAgICAgICAgICBmb3IgKHZhciB1cmwgaW4gZS5kYXRhLnVybHMpIHsKKyAg
ICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHVybC5pbmRleE9mKGdldF93ZWJzb2NrZXRfdXJs
KCkpLCAtMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJPYnNlcnZlZCBhbiB1bmV4
cGVjdGVkIEZldGNoRXZlbnQgZm9yIHRoZSBXZWJTb2NrZXQgaGFuZHNoYWtlIik7CisgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgdC5kb25lKCk7CisgICAgICAgICAgICB9CisgICAgICAg
ICAgICB2YXIgY2hhbm5lbCA9IG5ldyBNZXNzYWdlQ2hhbm5lbCgpOworICAgICAgICAgICAgY2hh
bm5lbC5wb3J0MS5vbm1lc3NhZ2UgPSB0LnN0ZXBfZnVuYyhvbk1lc3NhZ2UpOwogICAgICAgICAg
ICAgZnJhbWUuY29udGVudFdpbmRvdy5uYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5jb250cm9sbGVy
LnBvc3RNZXNzYWdlKHtwb3J0OiBjaGFubmVsLnBvcnQyfSwgW2NoYW5uZWwucG9ydDJdKTsKICAg
ICAgICAgICB9KTsKICAgICAgICAgfSkKLSAgICAgIC50aGVuKGZ1bmN0aW9uKGUpIHsKLSAgICAg
ICAgICBmb3IgKHZhciB1cmwgaW4gZS5kYXRhLnVybHMpIHsKLSAgICAgICAgICAgIGFzc2VydF9l
cXVhbHModXJsLmluZGV4T2YoZ2V0X3dlYnNvY2tldF91cmwoKSksIC0xLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAiT2JzZXJ2ZWQgYW4gdW5leHBlY3RlZCBGZXRjaEV2ZW50IGZvciB0aGUg
V2ViU29ja2V0IGhhbmRzaGFrZSIpOwotICAgICAgICAgIH0KKyAgICAgIC50aGVuKGZ1bmN0aW9u
KCkgewogICAgICAgICAgIGZyYW1lLnJlbW92ZSgpOwotICAgICAgICB9KTsKKyAgICAgICAgICBy
ZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfZG9uZSh0LCBzY29wZSk7CisgICAg
ICAgIH0pCisgICAgICAuY2F0Y2godW5yZWFjaGVkX3JlamVjdGlvbih0KSk7CiAgIH0sICdWZXJp
ZnkgV2ViU29ja2V0IGhhbmRzaGFrZSBjaGFubmVsIGRvZXMgbm90IGdldCBpbnRlcmNlcHRlZCcp
OwogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci93aW5kb3djbGllbnQt
bmF2aWdhdGUuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3dpbmRvd2NsaWVudC1uYXZp
Z2F0ZS5odHRwcy5odG1sCmluZGV4IGU2MmMxYWMzYWE0MGUwYzQxMmE3MzZlNzlhNzc1MTUzNDgz
OThhMmMuLjhlYTI3OWVmMDc1ZTVlNmM4OTA0OTY2YjAwNWYwYmFmMGQ3NWJjYTkgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3dpbmRvd2NsaWVudC1uYXZpZ2F0ZS5odHRwcy5odG1sCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3dpbmRvd2NsaWVudC1uYXZpZ2F0ZS5odHRwcy5odG1sCkBA
IC0xMDksNyArMTA5LDcgQEAgZnVuY3Rpb24gbmF2aWdhdGVfdGVzdChvdmVycmlkZV9wYXJhbWV0
ZXJzKSB7CiAgICAgICAgIH0pOwogICAgIH0KIAotICAgIHRlc3QuYWRkX2NsZWFudXAoZnVuY3Rp
b24oKSB7CisgICAgdmFyIGNsZWFudXAgPSBmdW5jdGlvbigpIHsKICAgICAgIGlmIChjbGllbnRf
ZnJhbWUgJiYgY2xpZW50X2ZyYW1lKSB7CiAgICAgICAgIGNsaWVudF9mcmFtZS5yZW1vdmUoKTsK
ICAgICAgIH0KQEAgLTEyNyw5ICsxMjcsOSBAQCBmdW5jdGlvbiBuYXZpZ2F0ZV90ZXN0KG92ZXJy
aWRlX3BhcmFtZXRlcnMpIHsKICAgICAgIGlmIChyZWdpc3RyYXRpb24pIHsKICAgICAgICAgcmV0
dXJuIHJlZ2lzdHJhdGlvbi51bnJlZ2lzdGVyKCk7CiAgICAgICB9Ci0gICAgfSk7CisgICAgfTsK
IAotICAgIHJldHVybiB3aXRoX2lmcmFtZShwYXJhbWV0ZXJzLnNyY191cmwpCisgICAgdmFyIHRl
c3RfYm9keSA9IHdpdGhfaWZyYW1lKHBhcmFtZXRlcnMuc3JjX3VybCkKICAgICAgIC50aGVuKGZ1
bmN0aW9uKGZyYW1lKSB7CiAgICAgICAgICAgY2xpZW50X2ZyYW1lID0gZnJhbWU7CiAgICAgICAg
ICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKApAQCAtMTYx
LDYgKzE2MSwxNyBAQCBmdW5jdGlvbiBuYXZpZ2F0ZV90ZXN0KG92ZXJyaWRlX3BhcmFtZXRlcnMp
IHsKICAgICAgIC50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlKSB7CiAgICAgICAgICAgYXNzZXJ0X2Vx
dWFscyhyZXNwb25zZS5kYXRhLCBwYXJhbWV0ZXJzLmV4cGVjdGVkKTsKICAgICAgICAgfSk7CisK
KyAgICAvLyBFbnN1cmUgdGhhdCB0ZXN0ICJjbGVhbiB1cCIgaXMgZGVmZXJyZWQgdW50aWwgYWZ0
ZXIgdGhlIHRlc3QgYm9keQorICAgIC8vIGV4ZWN1dGVzLiBgVGVzdCNhZGRfY2xlYW51cGAgY2Fu
bm90IGJlIHVzZWQgZm9yIHRoaXMgcHVycG9zZSBiZWNhdXNlIHRoZQorICAgIC8vIG9wZXJhdGlv
biBpcyBhc3luY2hyb25vdXMsIGFuZCBgYWRkX2NsZWFudXBgIGRvZXMgbm90IHN1cHBvcnQKKyAg
ICAvLyBhc3luY2hyb25vdXMgb3BlcmF0aW9ucyBhdCB0aGUgdGltZSBvZiB0aGlzIHdyaXRpbmcu
IFNlZQorICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2lz
c3Vlcy82MDc1CisgICAgLy8gRW5zdXJlIGFsc28gdGhhdCB0ZXN0IGZhaWx1cmUgaXMgbm90IGhp
ZGRlbiBieSBzdWNjZXNzZnVsIGNsZWFudXAKKyAgICAvLyBvcGVyYXRpb24uCisgICAgcmV0dXJu
IHRlc3RfYm9keQorICAgICAgLnRoZW4oY2xlYW51cCwgY2xlYW51cCkKKyAgICAgIC50aGVuKGZ1
bmN0aW9uKCkgeyByZXR1cm4gdGVzdF9ib2R5OyB9KTsKICAgfSwgcGFyYW1ldGVycy5kZXNjcmlw
dGlvbik7CiB9CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3dvcmtl
ci1jbGllbnQtaWQuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvd29ya2Vy
LWNsaWVudC1pZC5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggMTBjOWUyNGQ5OTdkOTY5ODc3NDM1
YjBmZjYxZjEwMjY4NzBmNjEyMi4uZmE3NzU4ODdlMmJiOTQxNzMxMjg4MDY4ZDM3YTNjYTdiZmZi
ZmIwZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvd29ya2VyLWNsaWVudC1pZC5odHRw
cy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvd29ya2VyLWNsaWVudC1pZC5o
dHRwcy1leHBlY3RlZC50eHQKQEAgLTEsMyArMSwzIEBACiAKLUZBSUwgVmVyaWZ5IHdvcmtlcnMg
aGF2ZSBhIHVuaXF1ZSBjbGllbnQgaWQgc2VwYXJhdGUgZnJvbSB0aGVpciBvd25pbmcgZG9jdW1l
bnRzIHdpbmRvdyBhc3NlcnRfbm90X2VxdWFsczogZnJhbWUgYW5kIHdvcmtlciBjbGllbnQgaWRz
IHNob3VsZCBiZSBkaWZmZXJlbnQgZ290IGRpc2FsbG93ZWQgdmFsdWUgIjEtMTkiCitGQUlMIFZl
cmlmeSB3b3JrZXJzIGhhdmUgYSB1bmlxdWUgY2xpZW50IGlkIHNlcGFyYXRlIGZyb20gdGhlaXIg
b3duaW5nIGRvY3VtZW50cyB3aW5kb3cgYXNzZXJ0X25vdF9lcXVhbHM6IGZyYW1lIGFuZCB3b3Jr
ZXIgY2xpZW50IGlkcyBzaG91bGQgYmUgZGlmZmVyZW50IGdvdCBkaXNhbGxvd2VkIHZhbHVlICI0
LTMwODciCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3dvcmtlci1pbnRlcmNlcHRp
b24uaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvd29ya2VyLWludGVyY2Vw
dGlvbi5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggYjRlZDRlZTlhMTc0NWVjMzI4MTZhZGMxZGNk
Y2JiZmE4ZjcxYzAyOS4uNDVlMjI5ZTcyODFjZTBlMTBhZDM3NmU4ZDVjZTJlNDgyMDc1OTIwOSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvd29ya2VyLWludGVyY2VwdGlvbi5odHRwcy1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvd29ya2VyLWludGVyY2VwdGlvbi5o
dHRwcy1leHBlY3RlZC50eHQKQEAgLTEsOCArMSw4IEBACi1DT05TT0xFIE1FU1NBR0U6IGxpbmUg
MTogUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IFdvcmtlcgorCiAKIEZBSUwg
VmVyaWZ5IHdvcmtlciBzY3JpcHQgZnJvbSB1bmNvbnRyb2xsZWQgZG9jdW1lbnQgaXMgaW50ZXJj
ZXB0ZWQgYnkgU2VydmljZSBXb3JrZXIgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9u
IHdpdGggdmFsdWU6IHVuZGVmaW5lZAogRkFJTCBWZXJpZnkgd29ya2VyIHNjcmlwdCBpbnRlcmNl
cHRlZCBieSBzYW1lLW9yaWdpbiByZXNwb25zZSBzdWNjZWVkcyBwcm9taXNlX3Rlc3Q6IFVuaGFu
ZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogdW5kZWZpbmVkCiBQQVNTIFZlcmlmeSB3b3JrZXIg
c2NyaXB0IGludGVyY2VwdGVkIGJ5IGNvcnMgcmVzcG9uc2UgZmFpbHMgCiBQQVNTIFZlcmlmeSB3
b3JrZXIgc2NyaXB0IGludGVyY2VwdGVkIGJ5IG5vLWNvcnMgY3Jvc3Mtb3JpZ2luIHJlc3BvbnNl
IGZhaWxzIAotRkFJTCBWZXJpZnkgd29ya2VyIGxvYWRzIGZyb20gY29udHJvbGxlZCBkb2N1bWVu
dCBhcmUgaW50ZXJjZXB0ZWQgYnkgU2VydmljZSBXb3JrZXIgYXNzZXJ0X2VxdWFsczogZXhwZWN0
ZWQgImZpbmlzaCIgYnV0IGdvdCAiZmFpbHVyZTpbb2JqZWN0IEVycm9yRXZlbnRdIgorUEFTUyBW
ZXJpZnkgd29ya2VyIGxvYWRzIGZyb20gY29udHJvbGxlZCBkb2N1bWVudCBhcmUgaW50ZXJjZXB0
ZWQgYnkgU2VydmljZSBXb3JrZXIgCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3dv
cmtlci1pbnRlcmNlcHRpb24uaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3dvcmtlci1p
bnRlcmNlcHRpb24uaHR0cHMuaHRtbAppbmRleCA3YjI5NDEyNjNiZjc1NmMzM2U2ZDE1YjM2ZWQ5
NjU0OGY4ODZjNmMyLi40ZjE0NzQ2ZDkxN2Y5ZThmNDFkZmNhODVlMTY2OWRkZTUwZDU2OGM0IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci93b3JrZXItaW50ZXJjZXB0aW9uLmh0dHBzLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvd29ya2VyLWludGVyY2VwdGlvbi5odHRwcy5odG1s
CkBAIC0xMiwxMCArMTIsNiBAQCBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewogCiAgICAgcmV0
dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHNlcnZpY2Vfd29y
a2VyLCBzY29wZSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKHIpIHsKLSAgICAgICAgICB0LmFkZF9j
bGVhbnVwKGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICByZXR1cm4gc2VydmljZV93b3JrZXJf
dW5yZWdpc3Rlcih0LCBzY29wZSk7Ci0gICAgICAgICAgICB9KTsKLQogICAgICAgICAgIHJldHVy
biB3YWl0X2Zvcl9zdGF0ZSh0LCByLmluc3RhbGxpbmcsICdhY3RpdmF0ZWQnKTsKICAgICAgICAg
fSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKCkgewpAQCAtMzIsNiArMjgsNyBAQCBwcm9taXNlX3Rl
c3QoZnVuY3Rpb24odCkgewogICAgICAgICB9KQogICAgICAgLnRoZW4oZnVuY3Rpb24oZGF0YSkg
ewogICAgICAgICAgIGFzc2VydF9lcXVhbHMoZGF0YSwgJ3dvcmtlciBsb2FkaW5nIGludGVyY2Vw
dGVkIGJ5IHNlcnZpY2Ugd29ya2VyJyk7CisgICAgICAgICAgc2VydmljZV93b3JrZXJfdW5yZWdp
c3Rlcl9hbmRfZG9uZSh0LCBzY29wZSk7CiAgICAgICAgIH0pOwogICB9LCAnVmVyaWZ5IHdvcmtl
ciBzY3JpcHQgZnJvbSB1bmNvbnRyb2xsZWQgZG9jdW1lbnQgaXMgaW50ZXJjZXB0ZWQgYnkgU2Vy
dmljZSBXb3JrZXInKTsKIApAQCAtNDIsMTAgKzM5LDYgQEAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9u
KHQpIHsKIAogICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rl
cih0LCBzZXJ2aWNlX3dvcmtlciwgc2NvcGUpCiAgICAgICAudGhlbihmdW5jdGlvbihyKSB7Ci0g
ICAgICAgICAgdC5hZGRfY2xlYW51cChmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgcmV0dXJu
IHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXIodCwgc2NvcGUpOwotICAgICAgICAgICAgfSk7Ci0K
ICAgICAgICAgICByZXR1cm4gd2FpdF9mb3Jfc3RhdGUodCwgci5pbnN0YWxsaW5nLCAnYWN0aXZh
dGVkJyk7CiAgICAgICAgIH0pCiAgICAgICAudGhlbihmdW5jdGlvbigpIHsKQEAgLTYyLDYgKzU1
LDcgQEAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICAgICAgfSkKICAgICAgIC50aGVu
KGZ1bmN0aW9uKGRhdGEpIHsKICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGRhdGEsICdkdW1teS13
b3JrZXItc2NyaXB0IGxvYWRlZCcpOworICAgICAgICAgIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0
ZXJfYW5kX2RvbmUodCwgc2NvcGUpOwogICAgICAgICB9KTsKICAgfSwgJ1ZlcmlmeSB3b3JrZXIg
c2NyaXB0IGludGVyY2VwdGVkIGJ5IHNhbWUtb3JpZ2luIHJlc3BvbnNlIHN1Y2NlZWRzJyk7CiAK
QEAgLTc1LDEwICs2OSwyNyBAQCBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewogICAgICAgICAg
IHJldHVybiB3YWl0X2Zvcl9zdGF0ZSh0LCByLmluc3RhbGxpbmcsICdhY3RpdmF0ZWQnKTsKICAg
ICAgICAgfSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKCkgewotICAgICAgICAgIHZhciB3ID0gbmV3
IFdvcmtlcih3b3JrZXJfdXJsKTsKLSAgICAgICAgICB2YXIgd2F0Y2hlciA9IG5ldyBFdmVudFdh
dGNoZXIodCwgdywgWydtZXNzYWdlJywgJ2Vycm9yJ10pOwotICAgICAgICAgIHJldHVybiB3YXRj
aGVyLndhaXRfZm9yKCdlcnJvcicpOwotICAgICAgICB9KTsKKyAgICAgICAgICByZXR1cm4gbmV3
IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7CisgICAgICAgICAgICAgIHZhciB3
ID0gbmV3IFdvcmtlcih3b3JrZXJfdXJsKTsKKyAgICAgICAgICAgICAgdy5vbm1lc3NhZ2UgPSBm
dW5jdGlvbihlKSB7CisgICAgICAgICAgICAgICAgcmVzb2x2ZShlLmRhdGEpOworICAgICAgICAg
ICAgICB9CisKKyAgICAgICAgICAgICAgdy5vbmVycm9yID0gZnVuY3Rpb24oZSkgeworICAgICAg
ICAgICAgICAgIHJlamVjdChlLm1lc3NhZ2UpOworICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICB9KTsKKyAgICAgICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKGRhdGEpIHsKKyAgICAgICAg
ICBhc3NlcnRfdW5yZWFjaGVkKCdpbnRlcmNlcHRlZCBjb3JzIHJlc3BvbnNlIHRvIGEgc2FtZS1v
cmlnaW4gbW9kZSAnICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICd3b3JrZXIgbG9hZCBz
aG91bGQgZmFpbCcpOworICAgICAgICAgIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX2Rv
bmUodCwgc2NvcGUpOworICAgICAgICB9KQorICAgICAgLmNhdGNoKGZ1bmN0aW9uKGUpIHsKKyAg
ICAgICAgICBhc3NlcnRfdHJ1ZSh0cnVlLCAnaW50ZXJjZXB0ZWQgY29ycyByZXNwb25zZSB0byBh
IHNhbWUtb3JpZ2luIG1vZGUgJyArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3dvcmtl
ciBsb2FkIHNob3VsZCBmYWlsJyk7CisgICAgICAgICAgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rl
cl9hbmRfZG9uZSh0LCBzY29wZSk7CisgICAgICAgfSk7CiAgIH0sICdWZXJpZnkgd29ya2VyIHNj
cmlwdCBpbnRlcmNlcHRlZCBieSBjb3JzIHJlc3BvbnNlIGZhaWxzJyk7CiAKIHByb21pc2VfdGVz
dChmdW5jdGlvbih0KSB7CkBAIC04OCwxNyArOTksMjkgQEAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9u
KHQpIHsKIAogICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rl
cih0LCBzZXJ2aWNlX3dvcmtlciwgc2NvcGUpCiAgICAgICAudGhlbihmdW5jdGlvbihyKSB7Ci0g
ICAgICAgICAgdC5hZGRfY2xlYW51cChmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgcmV0dXJu
IHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXIodCwgc2NvcGUpOwotICAgICAgICAgICAgfSk7Ci0K
ICAgICAgICAgICByZXR1cm4gd2FpdF9mb3Jfc3RhdGUodCwgci5pbnN0YWxsaW5nLCAnYWN0aXZh
dGVkJyk7CiAgICAgICAgIH0pCiAgICAgICAudGhlbihmdW5jdGlvbigpIHsKLSAgICAgICAgICB2
YXIgdyA9IG5ldyBXb3JrZXIod29ya2VyX3VybCk7Ci0gICAgICAgICAgdmFyIHdhdGNoZXIgPSBu
ZXcgRXZlbnRXYXRjaGVyKHQsIHcsIFsnbWVzc2FnZScsICdlcnJvciddKTsKLSAgICAgICAgICBy
ZXR1cm4gd2F0Y2hlci53YWl0X2ZvcignZXJyb3InKTsKLSAgICAgICAgfSk7CisgICAgICAgICAg
cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgeworICAgICAgICAg
ICAgICB2YXIgdyA9IG5ldyBXb3JrZXIod29ya2VyX3VybCk7CisgICAgICAgICAgICAgIHcub25t
ZXNzYWdlID0gZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgICAgIHJlc29sdmUoZS5kYXRhKTsK
KyAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgIHcub25lcnJvciA9IGZ1bmN0aW9uKGUp
IHsKKyAgICAgICAgICAgICAgICByZWplY3QoZSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRy
dWU7CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0pOworICAgICAgICB9KQorICAgICAg
LnRoZW4oZnVuY3Rpb24oZGF0YSkgeworICAgICAgICAgIGFzc2VydF91bnJlYWNoZWQoJ2ludGVy
Y2VwdGVkIG5vLWNvcnMgd29ya2VyIGxvYWQgc2hvdWxkIGZhaWwnKTsKKyAgICAgICAgICBzZXJ2
aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9kb25lKHQsIHNjb3BlKTsKKyAgICAgICAgfSkKKyAg
ICAgIC5jYXRjaChmdW5jdGlvbihlKSB7CisgICAgICAgICAgYXNzZXJ0X3RydWUodHJ1ZSwgJ2lu
dGVyY2VwdGVkIG5vLWNvcnMgd29ya2VyIGxvYWQgc2hvdWxkIGZhaWwnKTsKKyAgICAgICAgICBz
ZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9kb25lKHQsIHNjb3BlKTsKKyAgICAgICB9KTsK
ICAgfSwgJ1ZlcmlmeSB3b3JrZXIgc2NyaXB0IGludGVyY2VwdGVkIGJ5IG5vLWNvcnMgY3Jvc3Mt
b3JpZ2luIHJlc3BvbnNlIGZhaWxzJyk7CiAKIHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7CkBA
IC0xMDYsMTIgKzEyOSwxNCBAQCBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewogICAgIHZhciBz
ZXJ2aWNlX3dvcmtlciA9ICdyZXNvdXJjZXMvd29ya2VyLWxvYWQtaW50ZXJjZXB0b3IuanMnOwog
ICAgIHZhciBzY29wZSA9ICdyZXNvdXJjZXMvJzsKIAorICAgIHdpbmRvdy5hZGRFdmVudExpc3Rl
bmVyKCdtZXNzYWdlJywgdC5zdGVwX2Z1bmMob25fbWVzc2FnZSksIGZhbHNlKTsKKyAgICBmdW5j
dGlvbiBvbl9tZXNzYWdlKGUpIHsKKyAgICAgIGFzc2VydF9lcXVhbHMoZS5kYXRhLnJlc3VsdHMs
ICJUaGlzIGxvYWQgd2FzIHN1Y2Nlc3NmdWxseSBpbnRlcmNlcHRlZC4iKTsKKyAgICAgIHQuZG9u
ZSgpOworICAgIH0KKwogICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9y
ZWdpc3Rlcih0LCBzZXJ2aWNlX3dvcmtlciwgc2NvcGUpCiAgICAgICAudGhlbihmdW5jdGlvbihy
KSB7Ci0gICAgICAgICAgdC5hZGRfY2xlYW51cChmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAg
cmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXIodCwgc2NvcGUpOwotICAgICAgICAgICAg
fSk7Ci0KICAgICAgICAgICByZXR1cm4gd2FpdF9mb3Jfc3RhdGUodCwgci5pbnN0YWxsaW5nLCAn
YWN0aXZhdGVkJyk7CiAgICAgICAgIH0pCiAgICAgICAudGhlbihmdW5jdGlvbigpIHsgcmV0dXJu
IHdpdGhfaWZyYW1lKHN1YmRvY191cmwpOyB9KQpAQCAtMTI4LDYgKzE1Myw3IEBAIHByb21pc2Vf
dGVzdChmdW5jdGlvbih0KSB7CiAgICAgICAgIH0pCiAgICAgICAudGhlbihmdW5jdGlvbihkYXRh
KSB7CiAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhkYXRhLnJlc3VsdHMsICdmaW5pc2gnKTsKKyAg
ICAgICAgICBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9kb25lKHQsIHNjb3BlKTsKICAg
ICAgICAgfSk7CiAgIH0sICdWZXJpZnkgd29ya2VyIGxvYWRzIGZyb20gY29udHJvbGxlZCBkb2N1
bWVudCBhcmUgaW50ZXJjZXB0ZWQgYnkgU2VydmljZSBXb3JrZXInKTsKIApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIveGhyLXJlc3BvbnNlLXVybC5odHRwcy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci94aHItcmVzcG9uc2UtdXJsLmh0dHBzLWV4cGVjdGVkLnR4dApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzMxZmM1NTZhNTBmODZlYzI0Mjk2ODM1YTZmZmMx
ZGUzZmU2ZjUwMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci94aHItcmVzcG9uc2UtdXJsLmh0dHBzLWV4cGVjdGVkLnR4dAor
KysgL2Rldi9udWxsCkBAIC0xLDggKzAsMCBAQAotCi1QQVNTIGdsb2JhbCBzZXR1cCAKLVBBU1Mg
WEhSIHJlc3BvbnNlVVJMIHNob3VsZCBiZSB0aGUgcmVzcG9uc2UgVVJMIAotUEFTUyBYSFIgcmVz
cG9uc2VVUkwgc2hvdWxkIGJlIHRoZSByZXNwb25zZSBVUkwgKGdlbmVyYXRlZCByZXNwb25zZSkg
Ci1GQUlMIFhIUiBEb2N1bWVudCBzaG91bGQgdXNlIHRoZSByZXNwb25zZSBVUkwgYXNzZXJ0X2Vx
dWFsczogcmVzcG9uc2VYTUwuVVJMIGV4cGVjdGVkICJodHRwczovL2xvY2FsaG9zdDo5NDQzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvYmxhbmsuaHRtbCIgYnV0IGdv
dCAiaHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0My9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
dGVzdD9yZXNwb25kV2l0aD1mZXRjaCZ1cmw9aHR0cHMlM0ElMkYlMkZsb2NhbGhvc3QlM0E5NDQz
JTJGc2VydmljZS13b3JrZXJzJTJGc2VydmljZS13b3JrZXIlMkZyZXNvdXJjZXMlMkZibGFuay5o
dG1sIgotUEFTUyBYSFIgRG9jdW1lbnQgc2hvdWxkIHVzZSB0aGUgcmVzcG9uc2UgVVJMIChnZW5l
cmF0ZWQgcmVzcG9uc2UpIAotUEFTUyBnbG9iYWwgY2xlYW51cCAKLQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIveGhyLXJlc3BvbnNlLXVybC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIveGhyLXJlc3BvbnNlLXVybC5odHRwcy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAxYWQyY2UzODUxY2M3YmNlMjQxMjBkZDgwYmRmNTQ2NjI3ODFhYzY2Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L3hoci1yZXNwb25zZS11cmwuaHR0cHMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDEwMyArMCww
IEBACi08IURPQ1RZUEUgaHRtbD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5TZXJ2
aWNlIFdvcmtlcjogWEhSIHJlc3BvbnNlVVJMIHVzZXMgdGhlIHJlc3BvbnNlIHVybDwvdGl0bGU+
Ci08c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL3Rlc3QtaGVscGVycy5zdWIuanMiPjwvc2NyaXB0PgotPHNjcmlw
dD4KLWNvbnN0IHNjb3BlID0gJ3Jlc291cmNlcy94aHItaWZyYW1lLmh0bWwnOwotY29uc3Qgc2Ny
aXB0ID0gJ3Jlc291cmNlcy94aHItcmVzcG9uc2UtdXJsLXdvcmtlci5qcyc7Ci1sZXQgaWZyYW1l
OwotCi1mdW5jdGlvbiBidWlsZF91cmwob3B0aW9ucykgewotICBjb25zdCB1cmwgPSBuZXcgVVJM
KCd0ZXN0Jywgd2luZG93LmxvY2F0aW9uKTsKLSAgY29uc3Qgb3B0cyA9IG9wdGlvbnMgPyBvcHRp
b25zIDoge307Ci0gIGlmIChvcHRzLnJlc3BvbmRXaXRoKQotICAgIHVybC5zZWFyY2hQYXJhbXMu
c2V0KCdyZXNwb25kV2l0aCcsIG9wdHMucmVzcG9uZFdpdGgpOwotICBpZiAob3B0cy51cmwpCi0g
ICAgdXJsLnNlYXJjaFBhcmFtcy5zZXQoJ3VybCcsIG9wdHMudXJsLmhyZWYpOwotICByZXR1cm4g
dXJsLmhyZWY7Ci19Ci0KLXByb21pc2VfdGVzdChhc3luYyAodCkgPT4gewotICBjb25zdCByZWdp
c3RyYXRpb24gPQotICAgICAgYXdhaXQgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVn
aXN0ZXIodCwgc2NyaXB0LCBzY29wZSk7Ci0gIGF3YWl0IHdhaXRfZm9yX3N0YXRlKHQsIHJlZ2lz
dHJhdGlvbi5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7Ci0gIGlmcmFtZSA9IGF3YWl0IHdpdGhf
aWZyYW1lKHNjb3BlKTsKLX0sICdnbG9iYWwgc2V0dXAnKTsKLQotLy8gVGVzdCB0aGF0IFhNTEh0
dHBSZXF1ZXN0LnJlc3BvbnNlVVJMIHVzZXMgdGhlIHJlc3BvbnNlIFVSTCBmcm9tIHRoZSBzZXJ2
aWNlCi0vLyB3b3JrZXIuCi1wcm9taXNlX3Rlc3QoYXN5bmMgKHQpID0+IHsKLSAgLy8gQnVpbGQg
YSBVUkwgdGhhdCB0ZWxscyB0aGUgc2VydmljZSB3b3JrZXIgdG8gcmVzcG9uZFdpdGgoZmV0Y2go
fHRhcmdldHwpKS4KLSAgY29uc3QgdGFyZ2V0ID0gbmV3IFVSTCgncmVzb3VyY2VzL2R1bW15LnR4
dCcsIHdpbmRvdy5sb2NhdGlvbik7Ci0gIGNvbnN0IHVybCA9IGJ1aWxkX3VybCh7Ci0gICAgcmVz
cG9uZFdpdGg6ICdmZXRjaCcsCi0gICAgdXJsOiB0YXJnZXQKLSAgfSk7Ci0KLSAgLy8gUGVyZm9y
bSB0aGUgWEhSLgotICBjb25zdCB4aHIgPSBhd2FpdCBpZnJhbWUuY29udGVudFdpbmRvdy54aHIo
dXJsKTsKLSAgYXNzZXJ0X2VxdWFscyh4aHIucmVzcG9uc2VVUkwsIHRhcmdldC5ocmVmLCAncmVz
cG9uc2VVUkwnKTsKLX0sICdYSFIgcmVzcG9uc2VVUkwgc2hvdWxkIGJlIHRoZSByZXNwb25zZSBV
UkwnKTsKLQotLy8gU2FtZSBhcyBhYm92ZSB3aXRoIGEgZ2VuZXJhdGVkIHJlc3BvbnNlLgotcHJv
bWlzZV90ZXN0KGFzeW5jICh0KSA9PiB7Ci0gIC8vIEJ1aWxkIGEgVVJMIHRoYXQgdGVsbHMgdGhl
IHNlcnZpY2Ugd29ya2VyIHRvIHJlc3BvbmRXaXRoKG5ldyBSZXNwb25zZSgpKS4KLSAgY29uc3Qg
dXJsID0gYnVpbGRfdXJsKHtyZXNwb25kV2l0aDogJ3N0cmluZyd9KTsKLQotICAvLyBQZXJmb3Jt
IHRoZSBYSFIuCi0gIGNvbnN0IHhociA9IGF3YWl0IGlmcmFtZS5jb250ZW50V2luZG93Lnhocih1
cmwpOwotICBhc3NlcnRfZXF1YWxzKHhoci5yZXNwb25zZVVSTCwgdXJsLCAncmVzcG9uc2VVUkwn
KTsKLX0sICdYSFIgcmVzcG9uc2VVUkwgc2hvdWxkIGJlIHRoZSByZXNwb25zZSBVUkwgKGdlbmVy
YXRlZCByZXNwb25zZSknKTsKLQotLy8gVGVzdCB0aGF0IFhNTEh0dHBSZXF1ZXN0LnJlc3BvbnNl
WE1MIGlzIGEgRG9jdW1lbnQgd2hvc2UgVVJMIGlzIHRoZQotLy8gcmVzcG9uc2UgVVJMIGZyb20g
dGhlIHNlcnZpY2Ugd29ya2VyLgotcHJvbWlzZV90ZXN0KGFzeW5jICh0KSA9PiB7Ci0gIC8vIEJ1
aWxkIGEgVVJMIHRoYXQgdGVsbHMgdGhlIHNlcnZpY2Ugd29ya2VyIHRvIHJlc3BvbmRXaXRoKGZl
dGNoKHx0YXJnZXR8KSkuCi0gIGNvbnN0IHRhcmdldCA9IG5ldyBVUkwoJ3Jlc291cmNlcy9ibGFu
ay5odG1sJywgd2luZG93LmxvY2F0aW9uKTsKLSAgY29uc3QgdXJsID0gYnVpbGRfdXJsKHsKLSAg
ICByZXNwb25kV2l0aDogJ2ZldGNoJywKLSAgICB1cmw6IHRhcmdldAotICB9KTsKLQotICAvLyBQ
ZXJmb3JtIHRoZSBYSFIuCi0gIGNvbnN0IHhociA9IGF3YWl0IGlmcmFtZS5jb250ZW50V2luZG93
Lnhocih1cmwsIHtyZXNwb25zZVR5cGU6ICdkb2N1bWVudCd9KTsKLSAgYXNzZXJ0X2VxdWFscyh4
aHIucmVzcG9uc2VVUkwsIHRhcmdldC5ocmVmLCAncmVzcG9uc2VVUkwnKTsKLQotICAvLyBUaGUg
ZG9jdW1lbnQncyBVUkwgdXNlcyB0aGUgcmVzcG9uc2UgVVJMOgotICAvLyAiU2V0IHxkb2N1bWVu
dHzigJlzIFVSTCB0byB8cmVzcG9uc2V84oCZcyB1cmwuIgotICAvLyBodHRwczovL3hoci5zcGVj
LndoYXR3Zy5vcmcvI2RvY3VtZW50LXJlc3BvbnNlCi0gIGFzc2VydF9lcXVhbHMoeGhyLnJlc3Bv
bnNlWE1MLlVSTCwgdGFyZ2V0LmhyZWYsICdyZXNwb25zZVhNTC5VUkwnKTsKLQotICAvLyBUaGUg
ZG9jdW1lbnQncyBiYXNlIFVSTCBmYWxscyBiYWNrIHRvIHRoZSBkb2N1bWVudCBVUkw6Ci0gIC8v
IGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3VybHMtYW5kLWZldGNoaW5n
Lmh0bWwjZG9jdW1lbnQtYmFzZS11cmwKLSAgYXNzZXJ0X2VxdWFscyh4aHIucmVzcG9uc2VYTUwu
YmFzZVVSSSwgdGFyZ2V0LmhyZWYsICdyZXNwb25zZVhNTC5iYXNlVVJJJyk7Ci19LCAnWEhSIERv
Y3VtZW50IHNob3VsZCB1c2UgdGhlIHJlc3BvbnNlIFVSTCcpOwotCi0vLyBTYW1lIGFzIGFib3Zl
IHdpdGggYSBnZW5lcmF0ZWQgcmVzcG9uc2UgZnJvbSB0aGUgc2VydmljZSB3b3JrZXIuCi1wcm9t
aXNlX3Rlc3QoYXN5bmMgKHQpID0+IHsKLSAgLy8gQnVpbGQgYSBVUkwgdGhhdCB0ZWxscyB0aGUg
c2VydmljZSB3b3JrZXIgdG8KLSAgLy8gcmVzcG9uZFdpdGgobmV3IFJlc3BvbnNlKCkpIHdpdGgg
YSBkb2N1bWVudCByZXNwb25zZS4KLSAgY29uc3QgdXJsID0gYnVpbGRfdXJsKHtyZXNwb25kV2l0
aDogJ2RvY3VtZW50J30pOwotCi0gIC8vIFBlcmZvcm0gdGhlIFhIUi4KLSAgY29uc3QgeGhyID0g
YXdhaXQgaWZyYW1lLmNvbnRlbnRXaW5kb3cueGhyKHVybCwge3Jlc3BvbnNlVHlwZTogJ2RvY3Vt
ZW50J30pOwotICBhc3NlcnRfZXF1YWxzKHhoci5yZXNwb25zZVVSTCwgdXJsLCAncmVzcG9uc2VV
UkwnKTsKLQotICAvLyBUaGUgZG9jdW1lbnQncyBVUkwgdXNlcyB0aGUgcmVzcG9uc2UgVVJMLCB3
aGljaCBpcyB0aGUgcmVxdWVzdCBVUkw6Ci0gIC8vICJTZXQgfGRvY3VtZW50fOKAmXMgVVJMIHRv
IHxyZXNwb25zZXzigJlzIHVybC4iCi0gIC8vIGh0dHBzOi8veGhyLnNwZWMud2hhdHdnLm9yZy8j
ZG9jdW1lbnQtcmVzcG9uc2UKLSAgYXNzZXJ0X2VxdWFscyh4aHIucmVzcG9uc2VYTUwuVVJMLCB1
cmwsICdyZXNwb25zZVhNTC5VUkwnKTsKLQotICAvLyBUaGUgZG9jdW1lbnQncyBiYXNlIFVSTCBm
YWxscyBiYWNrIHRvIHRoZSBkb2N1bWVudCBVUkw6Ci0gIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndo
YXR3Zy5vcmcvbXVsdGlwYWdlL3VybHMtYW5kLWZldGNoaW5nLmh0bWwjZG9jdW1lbnQtYmFzZS11
cmwKLSAgYXNzZXJ0X2VxdWFscyh4aHIucmVzcG9uc2VYTUwuYmFzZVVSSSwgdXJsLCAncmVzcG9u
c2VYTUwuYmFzZVVSSScpOwotfSwgJ1hIUiBEb2N1bWVudCBzaG91bGQgdXNlIHRoZSByZXNwb25z
ZSBVUkwgKGdlbmVyYXRlZCByZXNwb25zZSknKTsKLQotcHJvbWlzZV90ZXN0KGFzeW5jICh0KSA9
PiB7Ci0gIGlmIChpZnJhbWUpCi0gICAgaWZyYW1lLnJlbW92ZSgpOwotICBhd2FpdCBzZXJ2aWNl
X3dvcmtlcl91bnJlZ2lzdGVyKHQsIHNjb3BlKTsKLX0sICdnbG9iYWwgY2xlYW51cCcpOwotPC9z
Y3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci94c2wtYmFzZS11cmwuaHR0cHMt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIveHNsLWJhc2UtdXJsLmh0dHBzLWV4cGVj
dGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjU5YmU2OTEyZDM0ZmQ4ZTEw
MmFkY2NkOTA0ZTE0MjQ5NzA4NjkxZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci94c2wtYmFzZS11cmwuaHR0cHMtZXhwZWN0
ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi0KLVBBU1MgYmFzZSBVUkwgd2hl
biBzZXJ2aWNlIHdvcmtlciBkb2VzIHJlc3BvbmRXaXRoKGZldGNoKHJlc3BvbnNlVXJsKSkgCi0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3hzbC1iYXNlLXVybC5odHRwcy5odG1sIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIveHNsLWJhc2UtdXJsLmh0dHBzLmh0bWwKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDFkM2MzNjQwOGE2NmE3Nzg1Yjg4NGM5Y2RjMzlkY2QyODIwZjlhZjAu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIveHNsLWJhc2UtdXJsLmh0dHBzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzMiAr
MCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5T
ZXJ2aWNlIFdvcmtlcjogWFNMJ3MgYmFzZSBVUkwgbXVzdCBiZSB0aGUgcmVzcG9uc2UgVVJMPC90
aXRsZT4KLTxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGVzdC1oZWxwZXJzLnN1Yi5qcz9waXBlPXN1YiI+PC9z
Y3JpcHQ+Ci08c2NyaXB0PgotLy8gVGhpcyB0ZXN0IGxvYWRzIGFuIFhNTCBkb2N1bWVudCB3aGlj
aCBpcyBjb250cm9sbGVkIGEgc2VydmljZSB3b3JrZXIuIFRoZQotLy8gZG9jdW1lbnQgbG9hZHMg
YSBzdHlsZXNoZWV0IGFuZCBhIHNlcnZpY2Ugd29ya2VyIHJlc3BvbmRzIHdpdGggYW5vdGhlciBV
UkwuCi0vLyBUaGUgc3R5bGVzaGVldCBpbXBvcnRzIGEgcmVsYXRpdmUgVVJMIHRvIHRlc3QgdGhh
dCB0aGUgYmFzZSBVUkwgaXMgdGhlCi0vLyByZXNwb25zZSBVUkwgZnJvbSB0aGUgc2VydmljZSB3
b3JrZXIuCi1wcm9taXNlX3Rlc3QoYXN5bmMgKHQpID0+IHsKLSAgY29uc3QgU0NPUEUgPSAncmVz
b3VyY2VzL3hzbC1iYXNlLXVybC1pZnJhbWUueG1sJzsKLSAgY29uc3QgU0NSSVBUID0gJ3Jlc291
cmNlcy94c2wtYmFzZS11cmwtd29ya2VyLmpzJzsKLSAgbGV0IHdvcmtlcjsKLSAgbGV0IGZyYW1l
OwotCi0gIHQuYWRkX2NsZWFudXAoKCkgPT4gewotICAgIGlmIChmcmFtZSkKLSAgICAgIGZyYW1l
LnJlbW92ZSgpOwotICAgIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXIodCwgU0NPUEUpOwotICB9
KTsKLQotICBjb25zdCByZWdpc3RyYXRpb24gPSBhd2FpdCBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lz
dGVyX2FuZF9yZWdpc3RlcigKLSAgICAgIHQsIFNDUklQVCwgU0NPUEUpOwotICB3b3JrZXIgPSBy
ZWdpc3RyYXRpb24uaW5zdGFsbGluZzsKLSAgYXdhaXQgd2FpdF9mb3Jfc3RhdGUodCwgd29ya2Vy
LCAnYWN0aXZhdGVkJyk7Ci0KLSAgZnJhbWUgPSBhd2FpdCB3aXRoX2lmcmFtZShTQ09QRSk7Ci0g
IGFzc2VydF9lcXVhbHMoZnJhbWUuY29udGVudERvY3VtZW50LmJvZHkudGV4dENvbnRlbnQsICdQ
QVNTJyk7Ci19LCAnYmFzZSBVUkwgd2hlbiBzZXJ2aWNlIHdvcmtlciBkb2VzIHJlc3BvbmRXaXRo
KGZldGNoKHJlc3BvbnNlVXJsKSknKTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9p
b3MvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA3MzAwZDlmOTJhMjgzN2EyMDUxOTkzNGJmMDM1YWQy
OWQyNzYwNjYyLi4zYzBmNTBhYzgzMGE2NjE0OWY5YzM3ZDA3NTU2MGQ0NGVjMWQxNGEzIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucworKysgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMzIwMywxMCArMzIw
Myw2IEBAIHdlYmtpdC5vcmcvYi8xOTA3NjQgZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy1kb3Rz
LXBvc2l0aW9uLTMuaHRtbCBbIFNraXAgXQogCiB3ZWJraXQub3JnL2IvMTkyMjc5IGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jl
Z2lzdGVyLWNsb3NlZC13aW5kb3cuaHR0cHMuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCiAKLXdlYmtp
dC5vcmcvYi8xOTIyNTAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLW1pc3NpbmctaW1wb3J0LXNjcmlwdHMuaHR0cHMu
aHRtbCBbIFBhc3MgRmFpbHVyZSBdCi0KLXdlYmtpdC5vcmcvYi8xOTIzOTggaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRl
LXJlZ2lzdHJhdGlvbi13aXRoLXR5cGUuaHR0cHMuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCi0KIHdl
YmtpdC5vcmcvYi8xOTE3MDQgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvd2luZG93Y2xpZW50LW5hdmlnYXRlLmh0dHBzLmh0bWwg
WyBQYXNzIEZhaWx1cmUgXQogCiB3ZWJraXQub3JnL2IvMTkzOTU1IGNvbXBvc2l0aW5nL2lmcmFt
ZXMvcmVtb3ZlLXJlaW5zZXJ0LXdlYnZpZXctd2l0aC1pZnJhbWUuaHRtbCBbIFNraXAgXQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>378327</attachid>
            <date>2019-09-08 09:58:49 -0700</date>
            <delta_ts>2019-09-08 17:11:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201589-20190908095834.patch</filename>
            <type>text/plain</type>
            <size>569955</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5NjI5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggY2U3MTRhOWFmMmU0NDczZjc2NzM5
MzY2N2ZiYTEwNDFjMzYxNmNkOC4uYjI4ZWUwNWY4YWUzMzFhYzM0YzllZTY2YjJjYzQ1MGI4Nzkw
MjJlYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDE5LTA5LTA4ICBDaHJpcyBEdW1leiAgPGNk
dW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUmVzeW5jIHNlcnZpY2Ugd29ya2VycyBXUFQgdGVz
dHMgZnJvbSB1cHN0cmVhbQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjAxNTg5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBUZXN0RXhwZWN0YXRpb25zOgorCiAyMDE5LTA5LTA3ICBDaHJpcyBEdW1leiAg
PGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHBvc3RNZXNzYWdl
IGJ1ZmZlcmluZyBiZXR3ZWVuIHRoZSBzZXJ2aWNlIHdvcmtlciBhbmQgd2luZG93CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRleCBjYjQ2MzU1YmY0ZDE0ZjdjZGEyMzE3NGVlMWIzMDVl
OTBmODc4OTNlLi5mNzdiZTcyMmVkNzc1YjBjNGQzNjdiYmZhOTNjMjYxYmZkOWE3ZWY0IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNTUgQEAKKzIwMTktMDktMDgg
IENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBSZXN5bmMgc2Vydmlj
ZSB3b3JrZXJzIFdQVCB0ZXN0cyBmcm9tIHVwc3RyZWFtCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDE1ODkKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZXN5bmMgc2VydmljZSB3b3JrZXJzIFdQVCB0ZXN0
cyBmcm9tIHVwc3RyZWFtIDgyMGYwZjg2MDQ3ZTZlMjY0MDFlLgorCisgICAgICAgICogd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9TZXJ2aWNlLVdvcmtl
ci1BbGxvd2VkLWhlYWRlci5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9TZXJ2aWNlLVdvcmtlci1B
bGxvd2VkLWhlYWRlci5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlL3Bv
c3RtZXNzYWdlLmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUvdW5yZWdp
c3Rlci5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlL3VwZGF0ZS5odHRw
cy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvYWJvdXQtYmxhbmstcmVwbGFjZW1lbnQuaHR0cHMuaHRtbDoKKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2FjdGl2
YXRlLWV2ZW50LWFmdGVyLWluc3RhbGwtc3RhdGUtY2hhbmdlLmh0dHBzLmh0bWw6CisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9hY3Rp
dmF0aW9uLWFmdGVyLXJlZ2lzdHJhdGlvbi5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvYWN0aXZhdGlvbi5odHRw
cy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9hY3RpdmF0aW9uLmh0dHBzLmh0bWw6CisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9hcHBjYWNoZS1v
cmRlcmluZy1tYWluLmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGFpbS1mZXRjaC13aXRoLWFwcGNhY2hlLmh0
dHBzLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsYWltLWZldGNoLXdpdGgtYXBwY2FjaGUu
aHR0cHMuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsYWltLWZldGNoLmh0dHBzLmh0bWw6CisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGFp
bS1ub3QtdXNpbmctcmVnaXN0cmF0aW9uLmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGFpbS1zaGFyZWQtd29y
a2VyLWZldGNoLmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGFpbS11c2luZy1yZWdpc3RyYXRpb24uaHR0cHMu
aHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL2NsYWltLXdvcmtlci1mZXRjaC5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGFp
bS13b3JrZXItZmV0Y2guaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsaWVudC1pZC5odHRwcy5odG1sOgorICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
Y2xpZW50cy1nZXQtY2xpZW50LXR5cGVzLmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGllbnRzLWdldC1yZXN1
bHRpbmdDbGllbnRJZC5odHRwcy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGllbnRzLWdl
dC1yZXN1bHRpbmdDbGllbnRJZC5odHRwcy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xpZW50cy1nZXQu
aHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xpZW50cy1nZXQuaHR0cHMuaHRtbDoKKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsaWVu
dHMtbWF0Y2hhbGwtY2xpZW50LXR5cGVzLmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGllbnRzLW1hdGNoYWxs
LWV4YWN0LWNvbnRyb2xsZXIuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xpZW50cy1tYXRjaGFs
bC1leGFjdC1jb250cm9sbGVyLmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGllbnRzLW1hdGNoYWxsLWluY2x1
ZGUtdW5jb250cm9sbGVkLmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGllbnRzLW1hdGNoYWxsLW9yZGVyLmh0
dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9jbGllbnRzLW1hdGNoYWxsLmh0dHBzLmh0bWw6CisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jb250cm9sbGVy
LW9uLWRpc2Nvbm5lY3QuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NvbnRyb2xsZXItb24tbG9hZC5odHRwcy5o
dG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvY29udHJvbGxlci1vbi1yZWxvYWQuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2RhdGEtdHJhbnNm
ZXItZmlsZXMuaHR0cHMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZGF0YS10cmFuc2Zlci1m
aWxlcy5odHRwcy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZGV0YWNoZWQtY29udGV4dC5odHRwcy1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9kZXRhY2hlZC1jb250ZXh0Lmh0dHBzLmh0bWw6CisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9leHRlbmRhYmxl
LWV2ZW50LWFzeW5jLXdhaXR1bnRpbC5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9leHRlbmRhYmxl
LWV2ZW50LWFzeW5jLXdhaXR1bnRpbC5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZXh0ZW5kYWJsZS1ldmVudC13
YWl0dW50aWwuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWF1ZGlvLXRhaW50aW5nLmh0dHBzLWV4cGVj
dGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWF1ZGlvLXRhaW50aW5nLmh0dHBzLmh0bWw6IFJl
bW92ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9mZXRjaC1jYW52YXMtdGFpbnRpbmctZG91YmxlLXdyaXRlLmh0dHBzLWV4cGVj
dGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWNhbnZhcy10YWludGluZy1kb3VibGUtd3JpdGUu
aHR0cHMuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWNhbnZhcy10YWludGluZy12aWRlby1jYWNo
ZS5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvZmV0Y2gtY2FudmFzLXRhaW50aW5nLXZpZGVvLmh0dHBzLmh0bWw6
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9mZXRjaC1jb3JzLXhoci5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1jb3JzLXho
ci5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvZmV0Y2gtY3NwLmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1ldmVudC1h
ZnRlci1uYXZpZ2F0aW9uLXdpdGhpbi1wYWdlLmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1ldmVudC1h
c3luYy1yZXNwb25kLXdpdGguaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtZXZlbnQtYXN5
bmMtcmVzcG9uZC13aXRoLmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1ldmVudC1uZXR3b3JrLWVycm9y
Lmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1ldmVudC1yZWZlcnJlci1wb2xpY3kuaHR0cHMtZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvZmV0Y2gtZXZlbnQtcmVmZXJyZXItcG9saWN5Lmh0dHBzLmh0bWw6CisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9m
ZXRjaC1ldmVudC1yZXNwb25kLXdpdGgtYXJndW1lbnQuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWV2
ZW50LXJlc3BvbmQtd2l0aC1ib2R5LWxvYWRlZC1pbi1jaHVuay5odHRwcy5odG1sOgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0
Y2gtZXZlbnQtcmVzcG9uZC13aXRoLXN0b3BzLXByb3BhZ2F0aW9uLmh0dHBzLmh0bWw6CisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9m
ZXRjaC1ldmVudC10aHJvd3MtYWZ0ZXItcmVzcG9uZC13aXRoLmh0dHBzLmh0bWw6CisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRj
aC1ldmVudC5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1ldmVudC5odHRwcy5odG1sOgor
ICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvZmV0Y2gtZnJhbWUtcmVzb3VyY2UuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWhlYWRlci12aXNp
YmlsaXR5Lmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1yZXF1ZXN0LWNzcy1iYXNlLXVybC5odHRwcy1l
eHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1yZXF1ZXN0LWNzcy1iYXNlLXVybC5odHRwcy5odG1sOgor
ICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvZmV0Y2gtcmVxdWVzdC1jc3MtaW1hZ2VzLmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1yZXF1ZXN0
LWh0bWwtaW1wb3J0cy5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1yZXF1ZXN0LWh0bWwt
aW1wb3J0cy5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtcmVxdWVzdC1uby1mcmVzaG5lc3MtaGVhZGVy
cy5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvZmV0Y2gtcmVxdWVzdC1yZWRpcmVjdC5odHRwcy5odG1sOgorICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
ZmV0Y2gtcmVxdWVzdC14aHItc3luYy5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtcmVzcG9uc2UteGhy
Lmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci9mZXRjaC13YWl0cy1mb3ItYWN0aXZhdGUuaHR0cHMuaHRtbDoKKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L2dldHJlZ2lzdHJhdGlvbi5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9nZXRyZWdpc3RyYXRpb24u
aHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL2ltcG9ydC1tb2R1bGUtc2NyaXB0cy5odHRwcy1leHBlY3RlZC50eHQ6
IFJlbW92ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9pbXBvcnQtbW9kdWxlLXNjcmlwdHMuaHR0cHMuaHRtbDogUmVtb3ZlZC4K
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL2ltcG9ydC1zY3JpcHRzLW1pbWUtdHlwZXMuaHR0cHMtZXhwZWN0ZWQudHh0OiBSZW1vdmVk
LgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvaW1wb3J0LXNjcmlwdHMtbWltZS10eXBlcy5odHRwcy5odG1sOiBSZW1vdmVkLgorICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
aW1wb3J0LXNjcmlwdHMtcmVzb3VyY2UtbWFwLmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ltcG9y
dC1zY3JpcHRzLXJlc291cmNlLW1hcC5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvaW50ZXJmYWNlcy13aW5kb3cu
aHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL2ludmFsaWQtYmxvYnR5cGUuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ludmFsaWQt
aGVhZGVyLmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9pc28tbGF0aW4xLWhlYWRlci5odHRwcy5odG1sOgorICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
bXVsdGlwbGUtdXBkYXRlLmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9uYXZpZ2F0aW9uLXJlZGlyZWN0Lmh0dHBz
Lmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9vbmFjdGl2YXRlLXNjcmlwdC1lcnJvci5odHRwcy5odG1sOgorICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcGVyZm9y
bWFuY2UtdGltZWxpbmUuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Bvc3RtZXNzYWdlLWZyb20td2FpdGluZy1z
ZXJ2aWNld29ya2VyLmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9wb3N0bWVzc2FnZS10by1jbGllbnQtbWVzc2Fn
ZS1xdWV1ZS5odHRwcy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9wb3N0bWVzc2FnZS10by1j
bGllbnQtbWVzc2FnZS1xdWV1ZS5odHRwcy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcG9zdG1lc3NhZ2Ut
dG8tY2xpZW50Lmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9wb3N0bWVzc2FnZS5odHRwcy1leHBlY3RlZC50eHQ6
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9wb3N0bWVzc2FnZS5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVhZHkuaHR0cHMuaHRtbDoKKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jl
ZGlyZWN0ZWQtcmVzcG9uc2UuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVkaXJlY3RlZC1yZXNw
b25zZS5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvcmVmZXJlci5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVnaXN0ZXItZGVm
YXVsdC1zY29wZS5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVnaXN0ZXItd2FpdC1mb3JldmVyLWluLWluc3Rh
bGwtd29ya2VyLmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZWdpc3RyYXRpb24tZW5kLXRvLWVuZC5odHRwcy5o
dG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvcmVnaXN0cmF0aW9uLWV2ZW50cy5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVnaXN0cmF0aW9u
LW1pbWUtdHlwZXMuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVnaXN0cmF0aW9uLW1pbWUtdHlw
ZXMuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL3JlZ2lzdHJhdGlvbi1zY2hlZHVsZS1qb2IuaHR0cHMtZXhwZWN0
ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvcmVnaXN0cmF0aW9uLXNjaGVkdWxlLWpvYi5odHRwcy5odG1s
OiBSZW1vdmVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvcmVnaXN0cmF0aW9uLXNjb3BlLmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L3JlZ2lzdHJhdGlvbi1zZWN1cml0eS1lcnJvci5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZWdp
c3RyYXRpb24tc2VydmljZS13b3JrZXItYXR0cmlidXRlcy5odHRwcy5odG1sOgorICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVnaXN0
cmF0aW9uLXVwZGF0ZXZpYWNhY2hlLmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlZ2lzdHJhdGlv
bi11cGRhdGV2aWFjYWNoZS5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2UtdGltaW5nLmh0dHBzLmh0
bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZS10aW1pbmcuc3ViLmh0
dHBzLmh0bWwuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9yZXNvdXJjZS10aW1pbmcuc3ViLmh0dHBzLWV4cGVjdGVkLnR4dDogUmVt
b3ZlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL3Jlc291cmNlcy9hYm91dC1ibGFuay1yZXBsYWNlbWVudC1waW5nLWZyYW1lLnB5
OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvcmVzb3VyY2VzL2FwcGNhY2hlLW9yZGVyaW5nLm1hbmlmZXN0OgorICAgICAgICAqIHdl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2Vz
L2NsYWltLXdvcmtlci5qczoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9jbGFzc2ljLXdvcmtlci5qczogUmVtb3Zl
ZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL3Jlc291cmNlcy9jbGllbnRzLWdldC1jcm9zcy1vcmlnaW4tZnJhbWUuaHRtbDoKKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L3Jlc291cmNlcy9jbGllbnRzLWdldC1yZXN1bHRpbmdDbGllbnRJZC13b3JrZXIuanM6IFJlbW92
ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9yZXNvdXJjZXMvY2xpZW50cy1nZXQtd29ya2VyLmpzOgorICAgICAgICAoc2VsZi5v
bm1lc3NhZ2UpOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2VuYWJsZS1jbGllbnQtbWVzc2FnZS1xdWV1ZS5odG1s
OiBSZW1vdmVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2V4dGVuZGFibGUtZXZlbnQtYXN5bmMtd2FpdHVudGls
LmpzOgorICAgICAgICAoc3dpdGNoKToKKyAgICAgICAgKGV2ZW50LnJlcXVlc3QudXJsLmluZGV4
T2YpOgorICAgICAgICAoZWxzZS5ldmVudC5yZXF1ZXN0LnVybC5pbmRleE9mKToKKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291
cmNlcy9mZXRjaC1jYW52YXMtdGFpbnRpbmctZG91YmxlLXdyaXRlLXdvcmtlci5qczogUmVtb3Zl
ZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL3Jlc291cmNlcy9mZXRjaC1jb3JzLXhoci1pZnJhbWUuaHRtbDoKKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNl
cy9mZXRjaC1ldmVudC1hc3luYy1yZXNwb25kLXdpdGgtd29ya2VyLmpzOgorICAgICAgICAoc2V0
VGltZW91dCk6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtZXZlbnQtbmV0d29yay1mYWxsYmFjay13b3Jr
ZXIuanM6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtZXZlbnQtdGVzdC13b3JrZXIuanM6CisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNv
dXJjZXMvZmV0Y2gtcmVxdWVzdC1jc3MtYmFzZS11cmwtaWZyYW1lLmh0bWw6CisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJj
ZXMvZmV0Y2gtcmVxdWVzdC1jc3MtYmFzZS11cmwtd29ya2VyLmpzOgorICAgICAgICAoc2VsZi5v
bm1lc3NhZ2UpOgorICAgICAgICAodXJsLmluZGV4T2YpOgorICAgICAgICAoZWxzZS51cmwuaW5k
ZXhPZik6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9yZXNvdXJjZXMvZ2V0LXJlc3VsdGluZ0NsaWVudElkLXdvcmtlci5qczogUmVt
b3ZlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL3Jlc291cmNlcy9pbXBvcnQtcmVsYXRpdmUueHNsOiBSZW1vdmVkLgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVz
b3VyY2VzL2ltcG9ydC1zY3JpcHRzLWRpZmYtcmVzb3VyY2UtbWFwLXdvcmtlci5qczogUmVtb3Zl
ZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL3Jlc291cmNlcy9pbXBvcnQtc2NyaXB0cy1nZXQucHk6IFJlbW92ZWQuCisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNv
dXJjZXMvaW1wb3J0LXNjcmlwdHMtbWltZS10eXBlcy13b3JrZXIuanM6IFJlbW92ZWQuCisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9y
ZXNvdXJjZXMvaW1wb3J0ZWQtY2xhc3NpYy1zY3JpcHQuanM6IFJlbW92ZWQuCisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJj
ZXMvaW1wb3J0ZWQtbW9kdWxlLXNjcmlwdC5qczogUmVtb3ZlZC4KKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9tZXNz
YWdlLXZzLW1pY3JvdGFzay5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL21vZHVsZS13b3Jr
ZXIuanM6IFJlbW92ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvbmF2aWdhdGlvbi1yZWRpcmVjdC1vdGhlci1v
cmlnaW4uaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9uYXZpZ2F0aW9uLXJlZGlyZWN0LW91dC1zY29wZS5w
eToKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL3Jlc291cmNlcy9uYXZpZ2F0aW9uLXJlZGlyZWN0LXNjb3BlMS5weToKKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291
cmNlcy9uYXZpZ2F0aW9uLXJlZGlyZWN0LXNjb3BlMi5weToKKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9uZXN0ZWQt
aWZyYW1lLXBhcmVudC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3BlcmZvcm1hbmNlLXRp
bWVsaW5lLXdvcmtlci5qczoKKyAgICAgICAgKHByb21pc2VfdGVzdC4pOgorICAgICAgICAocHJv
bWlzZV90ZXN0KToKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9wb3N0bWVzc2FnZS1lY2hvLXdvcmtlci5qczogUmVt
b3ZlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL3Jlc291cmNlcy9yZWRpcmVjdC13b3JrZXIuanM6CisgICAgICAgIChldmVudC53
YWl0VW50aWwuUHJvbWlzZS5hbGwud2FpdFVudGlsUHJvbWlzZUxpc3QudGhlbik6CisgICAgICAg
ICh0aGVuKToKKyAgICAgICAgKHdhaXRVbnRpbFByb21pc2UuY2FjaGVzLm9wZW4uY2FjaGVOYW1l
LnRoZW4pOgorICAgICAgICAoZXZlbnQucmVzcG9uZFdpdGgud2FpdFVudGlsUHJvbWlzZS50aGVu
KToKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL3Jlc291cmNlcy9yZWdpc3RyYXRpb24tdGVzdHMtbWltZS10eXBlcy5qczoKKyAgICAg
ICAgKHJlZ2lzdHJhdGlvbl90ZXN0c19taW1lX3R5cGVzKToKKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9yZWdpc3Ry
YXRpb24tdGVzdHMtc2NvcGUuanM6CisgICAgICAgIChyZWdpc3RyYXRpb25fdGVzdHNfc2NvcGUp
OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvcmVzb3VyY2VzL3JlZ2lzdHJhdGlvbi10ZXN0cy1zZWN1cml0eS1lcnJvci5qczoKKyAg
ICAgICAgKHJlZ2lzdHJhdGlvbl90ZXN0c19zZWN1cml0eV9lcnJvcik6CisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMv
cmVzb3VyY2UtdGltaW5nLWlmcmFtZS5zdWIuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9zZXJ2aWNlLXdv
cmtlci1jc3Atd29ya2VyLnB5OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3NlcnZpY2Utd29ya2VyLWhlYWRlci5w
eToKKyAgICAgICAgKG1haW4pOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3NraXAtd2FpdGluZy1pbnN0YWxsZWQt
d29ya2VyLmpzOgorICAgICAgICAoZXZlbnQud2FpdFVudGlsLnNlbGYuc2tpcFdhaXRpbmcudGhl
bik6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9yZXNvdXJjZXMvc3RhbGxpbmctc2VydmljZS13b3JrZXIuanM6IFJlbW92ZWQuCisg
ICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9yZXNvdXJjZXMvdGVzdC1oZWxwZXJzLnN1Yi5qczoKKyAgICAgICAgKHdhaXRfZm9yX3VwZGF0
ZSk6CisgICAgICAgIChhc3luYy53YWl0X2Zvcl9hY3RpdmF0aW9uX29uX2R1bW15X3Njb3BlKToK
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3Jlc291cmNlcy90ZXN0LXJlcXVlc3QtaGVhZGVycy13b3JrZXIuanM6IFJlbW92ZWQuCisg
ICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9yZXNvdXJjZXMvdGVzdC1yZXF1ZXN0LWhlYWRlcnMtd29ya2VyLnB5OiBSZW1vdmVkLgorICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
cmVzb3VyY2VzL3RyaWNrbGUucHk6IFJlbW92ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvdXBkYXRlLWR1cmlu
Zy1pbnN0YWxsYXRpb24td29ya2VyLmpzOiBSZW1vdmVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3VwZGF0ZS1k
dXJpbmctaW5zdGFsbGF0aW9uLXdvcmtlci5weTogUmVtb3ZlZC4KKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy91cGRh
dGUtZmV0Y2gtd29ya2VyLnB5OiBSZW1vdmVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3VwZGF0ZS1taXNzaW5n
LWltcG9ydC1zY3JpcHRzLWltcG9ydGVkLXdvcmtlci5weTogUmVtb3ZlZC4KKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNl
cy91cGRhdGUtbWlzc2luZy1pbXBvcnQtc2NyaXB0cy1tYWluLXdvcmtlci5weTogUmVtb3ZlZC4K
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3Jlc291cmNlcy91cGRhdGUtcmVnaXN0cmF0aW9uLXdpdGgtdHlwZS5weTogUmVtb3ZlZC4K
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3Jlc291cmNlcy93M2MtaW1wb3J0LmxvZzoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy93b3JrZXItaW50ZXJj
ZXB0aW9uLWlmcmFtZS5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3dvcmtlci1sb2FkLWludGVy
Y2VwdG9yLmpzOgorICAgICAgICAoc2VsZi5vbmZldGNoKToKKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy93b3JrZXIt
dGVzdGhhcm5lc3MuanM6CisgICAgICAgIChjcmVhdGVfdGVtcG9yYXJ5X2NhY2hlKToKKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jl
c291cmNlcy94aHItaWZyYW1lLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMveGhyLXJlc3Bv
bnNlLXVybC13b3JrZXIuanM6IFJlbW92ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMveHNsLWJhc2UtdXJsLWlm
cmFtZS54bWw6IFJlbW92ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMveHNsLWJhc2UtdXJsLXdvcmtlci5qczog
UmVtb3ZlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL3Jlc291cmNlcy94c2x0LXBhc3MueHNsOiBSZW1vdmVkLgorICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvc2Vydmlj
ZS13b3JrZXItY3NwLWNvbm5lY3QuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvc2VydmljZS13b3Jr
ZXItY3NwLWRlZmF1bHQuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvc2VydmljZS13b3JrZXItY3Nw
LXNjcmlwdC5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9zZXJ2aWNlLXdvcmtlci1oZWFkZXIuaHR0
cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvc2VydmljZS13b3JrZXItaGVhZGVyLmh0dHBzLmh0bWw6Cisg
ICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9zZXJ2aWNld29ya2VyLW1lc3NhZ2UtZXZlbnQtaGlzdG9yaWNhbC5odHRwcy5odG1sOgorICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
c2hhcmVkLXdvcmtlci1jb250cm9sbGVkLmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9za2lwLXdhaXRpbmctaW5z
dGFsbGVkLmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3NraXAtd2FpdGluZy1pbnN0YWxsZWQuaHR0
cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL3NraXAtd2FpdGluZy11c2luZy1yZWdpc3RyYXRpb24uaHR0cHMuaHRtbDoK
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3NraXAtd2FpdGluZy13aXRob3V0LXVzaW5nLXJlZ2lzdHJhdGlvbi5odHRwcy5odG1sOgor
ICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvc2tpcC13YWl0aW5nLmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9zdGF0ZS5odHRwcy5odG1sOgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvc3lu
Y2VkLXN0YXRlLmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91bmNvbnRyb2xsZWQtcGFnZS5odHRwcy5odG1sOgor
ICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvdW5yZWdpc3Rlci10aGVuLXJlZ2lzdGVyLW5ldy1zY3JpcHQuaHR0cHMtZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvdW5yZWdpc3Rlci10aGVuLXJlZ2lzdGVyLW5ldy1zY3JpcHQuaHR0cHMuaHRtbDoKKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L3VucmVnaXN0ZXItdGhlbi1yZWdpc3Rlci5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91bnJlZ2lz
dGVyLXRoZW4tcmVnaXN0ZXIuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0ZS1hZnRlci1uYXZpZ2F0aW9u
LXJlZGlyZWN0Lmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUtYWZ0ZXItb25lZGF5Lmh0dHBzLmh0bWw6
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci91cGRhdGUtYnl0ZWNoZWNrLmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUtbWlzc2luZy1pbXBv
cnQtc2NyaXB0cy5odHRwcy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUtbWlzc2lu
Zy1pbXBvcnQtc2NyaXB0cy5odHRwcy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLW5vLWNhY2hl
LXJlcXVlc3QtaGVhZGVycy5odHRwcy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUt
bm8tY2FjaGUtcmVxdWVzdC1oZWFkZXJzLmh0dHBzLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUt
bm90LWFsbG93ZWQuaHR0cHMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLW5vdC1h
bGxvd2VkLmh0dHBzLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUtb24tbmF2aWdhdGlvbi5odHRw
cy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUtb24tbmF2aWdhdGlvbi5odHRwcy5o
dG1sOiBSZW1vdmVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvdXBkYXRlLXJlY292ZXJ5Lmh0dHBzLmh0bWw6CisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUt
cmVnaXN0cmF0aW9uLXdpdGgtdHlwZS5odHRwcy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91
cGRhdGUtcmVnaXN0cmF0aW9uLXdpdGgtdHlwZS5odHRwcy5odG1sOiBSZW1vdmVkLgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdzNj
LWltcG9ydC5sb2c6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci93ZWJzb2NrZXQuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvd2Vic29j
a2V0Lmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci93aW5kb3djbGllbnQtbmF2aWdhdGUuaHR0cHMuaHRtbDoKKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L3dvcmtlci1jbGllbnQtaWQuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvd29ya2VyLWludGVyY2Vw
dGlvbi5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci93b3JrZXItaW50ZXJjZXB0aW9uLmh0dHBzLmh0
bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci94aHItcmVzcG9uc2UtdXJsLmh0dHBzLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L3hoci1yZXNwb25zZS11cmwuaHR0cHMuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3hzbC1iYXNlLXVybC5o
dHRwcy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci94c2wtYmFzZS11cmwuaHR0cHMuaHRtbDog
UmVtb3ZlZC4KKwogMjAxOS0wOS0wNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgog
CiAgICAgICAgIEFkZCBzdXBwb3J0IGZvciBwb3N0TWVzc2FnZSBidWZmZXJpbmcgYmV0d2VlbiB0
aGUgc2VydmljZSB3b3JrZXIgYW5kIHdpbmRvdwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvVGVz
dEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggOWYxNDM0
YzBiMDEzZmJmM2NkNjYzN2QzODc5NTM1Njk1ODYyNDA2NC4uNjIwMWViNTEyNTcxMjA0NDExNWFk
NzcxNDFhYjg3NDNiODUyZmUzNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0
aW9ucworKysgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCkBAIC0yMTEsMTMgKzIxMSwx
MSBAQCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9mZXRjaC1taXhlZC1jb250ZQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvbXVsdGlwYXJ0LWltYWdlLmh0dHBz
Lmh0bWwgWyBTa2lwIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3NraXAtd2FpdGluZy11c2luZy1yZWdpc3RyYXRpb24uaHR0
cHMuaHRtbCBbIFNraXAgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvc2tpcC13YWl0aW5nLXdpdGhvdXQtdXNpbmctcmVnaXN0
cmF0aW9uLmh0dHBzLmh0bWwgWyBTa2lwIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0ZS1ub3QtYWxsb3dlZC5odHRw
cy5odG1sIFsgU2tpcCBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci93b3JrZXItaW4tc2FuZGJveGVkLWlmcmFtZS1ieS1jc3At
ZmV0Y2gtZXZlbnQuaHR0cHMuaHRtbCBbIFNraXAgXQogWyBEZWJ1ZyBdIGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlYWR5Lmh0
dHBzLmh0bWwgWyBTa2lwIF0KIAogIyBOZXdseSBpbXBvcnRlZCBzZXJ2aWNlIHdvcmtlciB0ZXN0
cyB0aGF0IGFyZSBmbGFreS4KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL25hdmlnYXRpb24tcmVkaXJlY3QtdG8taHR0cC5odHRw
cy5odG1sIFsgUGFzcyBGYWlsdXJlIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlLXRpbWluZy5zdWIuaHR0cHMu
aHRtbCBbIFBhc3MgRmFpbHVyZSBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci93b3JrZXItY2xpZW50LWlkLmh0dHBzLmh0bWwg
WyBQYXNzIEZhaWx1cmUgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy94aHIvZXZl
bnQtdGltZW91dC1vcmRlci5odG0gWyBQYXNzIEZhaWx1cmUgXQogCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9TZXJ2aWNlLVdvcmtlci1BbGxvd2VkLWhlYWRlci5odHRwcy1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9TZXJ2aWNlLVdvcmtlci1BbGxvd2VkLWhlYWRlci5o
dHRwcy1leHBlY3RlZC50eHQKaW5kZXggNjE4YjkyZDllYWQyMDc1ZGQzODMyNWFlNjY2MzVlM2Y1
MWFiNDc2OS4uZTE3NTllMDgzZDMxNTUxNWJlMDcxYzFiMTg0MjNiMGIyMDBlYTlhNCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvU2VydmljZS1Xb3JrZXItQWxsb3dlZC1oZWFkZXIuaHR0
cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL1NlcnZpY2UtV29ya2VyLUFs
bG93ZWQtaGVhZGVyLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtNCw3ICs0LDcgQEAgUEFTUyBSZWdp
c3RlcmluZyB3aXRoaW4gU2VydmljZS1Xb3JrZXItQWxsb3dlZCBwYXRoIChhYnNvbHV0ZSBVUkwp
CiBQQVNTIFJlZ2lzdGVyaW5nIHdpdGhpbiBTZXJ2aWNlLVdvcmtlci1BbGxvd2VkIHBhdGggd2l0
aCBwYXJlbnQgcmVmZXJlbmNlIAogUEFTUyBSZWdpc3RlcmluZyBvdXRzaWRlIFNlcnZpY2UtV29y
a2VyLUFsbG93ZWQgcGF0aCAKIFBBU1MgUmVnaXN0ZXJpbmcgb3V0c2lkZSBTZXJ2aWNlLVdvcmtl
ci1BbGxvd2VkIHBhdGggd2l0aCBwYXJlbnQgcmVmZXJlbmNlIAotRkFJTCBTZXJ2aWNlLVdvcmtl
ci1BbGxvd2VkIGlzIGNyb3NzLW9yaWdpbiB0byBzY3JpcHQsIHJlZ2lzdGVyaW5nIG9uIGEgbm9y
bWFsbHkgYWxsb3dlZCBzY29wZSBhc3NlcnRfdW5yZWFjaGVkOiBTaG91bGQgaGF2ZSByZWplY3Rl
ZDogdW5kZWZpbmVkIFJlYWNoZWQgdW5yZWFjaGFibGUgY29kZQotRkFJTCBTZXJ2aWNlLVdvcmtl
ci1BbGxvd2VkIGlzIGNyb3NzLW9yaWdpbiB0byBzY3JpcHQsIHJlZ2lzdGVyaW5nIG9uIGEgbm9y
bWFsbHkgZGlzYWxsb3dlZCBzY29wZSBhc3NlcnRfdW5yZWFjaGVkOiBTaG91bGQgaGF2ZSByZWpl
Y3RlZDogdW5kZWZpbmVkIFJlYWNoZWQgdW5yZWFjaGFibGUgY29kZQorUEFTUyBTZXJ2aWNlLVdv
cmtlci1BbGxvd2VkIGlzIGNyb3NzLW9yaWdpbiB0byBzY3JpcHQsIHJlZ2lzdGVyaW5nIG9uIGEg
bm9ybWFsbHkgYWxsb3dlZCBzY29wZSAKK1BBU1MgU2VydmljZS1Xb3JrZXItQWxsb3dlZCBpcyBj
cm9zcy1vcmlnaW4gdG8gc2NyaXB0LCByZWdpc3RlcmluZyBvbiBhIG5vcm1hbGx5IGRpc2FsbG93
ZWQgc2NvcGUgCiBQQVNTIFNlcnZpY2UtV29ya2VyLUFsbG93ZWQgaXMgY3Jvc3Mtb3JpZ2luIHRv
IHBhZ2UsIHNhbWUtb3JpZ2luIHRvIHNjcmlwdCAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvU2VydmljZS1Xb3JrZXItQWxsb3dlZC1oZWFkZXIuaHR0cHMuaHRtbCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL1NlcnZpY2UtV29ya2VyLUFsbG93ZWQtaGVhZGVyLmh0dHBzLmh0bWwKaW5kZXgg
OTA0NWMwZjRlNzkxMTkyYzQzMmQ5OTE1NjY2NjI5MmY4ZGY0MmFiMy4uMzE2MDY3Y2MwNjY3OTU3
MDg2NmNkMWNjZjY3ZjI3M2NjZTU3YTE1YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
U2VydmljZS1Xb3JrZXItQWxsb3dlZC1oZWFkZXIuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9TZXJ2aWNlLVdvcmtlci1BbGxvd2VkLWhlYWRlci5odHRwcy5odG1sCkBAIC0xNyw3
MiArMTcsODggQEAgZnVuY3Rpb24gYnVpbGRfc2NyaXB0X3VybChhbGxvd2VkX3BhdGgsIG9yaWdp
bikgewogICByZXR1cm4gYCR7dXJsfT9waXBlPWhlYWRlcihTZXJ2aWNlLVdvcmtlci1BbGxvd2Vk
LCR7YWxsb3dlZF9wYXRofSlgOwogfQogCi0vLyByZWdpc3Rlcl90ZXN0IGlzIGEgcHJvbWlzZV90
ZXN0IHRoYXQgcmVnaXN0ZXJzIGEgc2VydmljZSB3b3JrZXIuCi1mdW5jdGlvbiByZWdpc3Rlcl90
ZXN0KHNjcmlwdCwgc2NvcGUsIGRlc2NyaXB0aW9uKSB7Ci0gIHByb21pc2VfdGVzdChhc3luYyB0
ID0+IHsKLSAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHsKLSAgICAgIHJldHVybiBzZXJ2aWNlX3dv
cmtlcl91bnJlZ2lzdGVyKHQsIHNjb3BlKTsKLSAgICB9KTsKK3Byb21pc2VfdGVzdChhc3luYyB0
ID0+IHsKKyAgY29uc3Qgc2NyaXB0ID0gYnVpbGRfc2NyaXB0X3VybCgnL2FsbG93ZWQtcGF0aCcp
OworICBjb25zdCBzY29wZSA9ICcvYWxsb3dlZC1wYXRoJzsKKyAgY29uc3QgcmVnaXN0cmF0aW9u
ID0gYXdhaXQgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIoCisgICAgICB0
LCBzY3JpcHQsIHNjb3BlKTsKKyAgYXNzZXJ0X3RydWUocmVnaXN0cmF0aW9uIGluc3RhbmNlb2Yg
U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbiwgJ3JlZ2lzdGVyZWQnKTsKKyAgYXNzZXJ0X2VxdWFs
cyhyZWdpc3RyYXRpb24uc2NvcGUsIG5vcm1hbGl6ZVVSTChzY29wZSkpOworICByZXR1cm4gcmVn
aXN0cmF0aW9uLnVucmVnaXN0ZXIoKTsKK30sICdSZWdpc3RlcmluZyB3aXRoaW4gU2VydmljZS1X
b3JrZXItQWxsb3dlZCBwYXRoJyk7CiAKLSAgICBjb25zdCByZWdpc3RyYXRpb24gPSBhd2FpdCBz
ZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3RlcigKLSAgICAgICAgdCwgc2NyaXB0
LCBzY29wZSk7Ci0gICAgYXNzZXJ0X3RydWUocmVnaXN0cmF0aW9uIGluc3RhbmNlb2YgU2Vydmlj
ZVdvcmtlclJlZ2lzdHJhdGlvbiwgJ3JlZ2lzdGVyZWQnKTsKLSAgICBhc3NlcnRfZXF1YWxzKHJl
Z2lzdHJhdGlvbi5zY29wZSwgbm9ybWFsaXplVVJMKHNjb3BlKSk7Ci0gIH0sIGRlc2NyaXB0aW9u
KTsKLX0KLQotLy8gcmVnaXN0ZXJfZmFpbF90ZXN0IGlzIGxpa2UgcmVnaXN0ZXJfdGVzdCBidXQg
ZXhwZWN0cyBhIFNlY3VyaXR5RXJyb3IuCi1mdW5jdGlvbiByZWdpc3Rlcl9mYWlsX3Rlc3Qoc2Ny
aXB0LCBzY29wZSwgZGVzY3JpcHRpb24pIHsKLSAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewot
ICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gewotICAgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3Vu
cmVnaXN0ZXIodCwgc2NvcGUpOwotICAgIH0pOwotCi0gICAgYXdhaXQgc2VydmljZV93b3JrZXJf
dW5yZWdpc3Rlcih0LCBzY29wZSk7Ci0gICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzKHQsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICdTZWN1cml0eUVycm9yJywKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoc2NyaXB0LCB7c2NvcGV9
KSk7Ci0gIH0sIGRlc2NyaXB0aW9uKTsKLX0KLQotcmVnaXN0ZXJfdGVzdCgKLSAgICBidWlsZF9z
Y3JpcHRfdXJsKCcvYWxsb3dlZC1wYXRoJyksCi0gICAgJy9hbGxvd2VkLXBhdGgnLAotICAgICdS
ZWdpc3RlcmluZyB3aXRoaW4gU2VydmljZS1Xb3JrZXItQWxsb3dlZCBwYXRoJyk7Citwcm9taXNl
X3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0IHNjcmlwdCA9IGJ1aWxkX3NjcmlwdF91cmwobmV3
IFVSTCgnL2FsbG93ZWQtcGF0aCcsIGRvY3VtZW50LmxvY2F0aW9uKSk7CisgIGNvbnN0IHNjb3Bl
ID0gJy9hbGxvd2VkLXBhdGgnOworICBjb25zdCByZWdpc3RyYXRpb24gPSBhd2FpdCBzZXJ2aWNl
X3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3RlcigKKyAgICAgIHQsIHNjcmlwdCwgc2NvcGUp
OworICBhc3NlcnRfdHJ1ZShyZWdpc3RyYXRpb24gaW5zdGFuY2VvZiBTZXJ2aWNlV29ya2VyUmVn
aXN0cmF0aW9uLCAncmVnaXN0ZXJlZCcpOworICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi5z
Y29wZSwgbm9ybWFsaXplVVJMKHNjb3BlKSk7CisgIHJldHVybiByZWdpc3RyYXRpb24udW5yZWdp
c3RlcigpOworfSwgJ1JlZ2lzdGVyaW5nIHdpdGhpbiBTZXJ2aWNlLVdvcmtlci1BbGxvd2VkIHBh
dGggKGFic29sdXRlIFVSTCknKTsKIAotcmVnaXN0ZXJfdGVzdCgKLSAgICBidWlsZF9zY3JpcHRf
dXJsKG5ldyBVUkwoJy9hbGxvd2VkLXBhdGgnLCBkb2N1bWVudC5sb2NhdGlvbikpLAotICAgICcv
YWxsb3dlZC1wYXRoJywKLSAgICAnUmVnaXN0ZXJpbmcgd2l0aGluIFNlcnZpY2UtV29ya2VyLUFs
bG93ZWQgcGF0aCAoYWJzb2x1dGUgVVJMKScpOworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewor
ICBjb25zdCBzY3JpcHQgPSBidWlsZF9zY3JpcHRfdXJsKCcuLi9hbGxvd2VkLXBhdGgtd2l0aC1w
YXJlbnQnKTsKKyAgY29uc3Qgc2NvcGUgPSAnYWxsb3dlZC1wYXRoLXdpdGgtcGFyZW50JzsKKyAg
Y29uc3QgcmVnaXN0cmF0aW9uID0gYXdhaXQgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRf
cmVnaXN0ZXIoCisgICAgICB0LCBzY3JpcHQsIHNjb3BlKTsKKyAgYXNzZXJ0X3RydWUocmVnaXN0
cmF0aW9uIGluc3RhbmNlb2YgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbiwgJ3JlZ2lzdGVyZWQn
KTsKKyAgYXNzZXJ0X2VxdWFscyhyZWdpc3RyYXRpb24uc2NvcGUsIG5vcm1hbGl6ZVVSTChzY29w
ZSkpOworICByZXR1cm4gcmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIoKTsKK30sICdSZWdpc3Rlcmlu
ZyB3aXRoaW4gU2VydmljZS1Xb3JrZXItQWxsb3dlZCBwYXRoIHdpdGggcGFyZW50IHJlZmVyZW5j
ZScpOwogCi1yZWdpc3Rlcl90ZXN0KAotICAgIGJ1aWxkX3NjcmlwdF91cmwoJy4uL2FsbG93ZWQt
cGF0aC13aXRoLXBhcmVudCcpLAotICAgICdhbGxvd2VkLXBhdGgtd2l0aC1wYXJlbnQnLAotICAg
ICdSZWdpc3RlcmluZyB3aXRoaW4gU2VydmljZS1Xb3JrZXItQWxsb3dlZCBwYXRoIHdpdGggcGFy
ZW50IHJlZmVyZW5jZScpOworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25zdCBzY3Jp
cHQgPSBidWlsZF9zY3JpcHRfdXJsKCcuLi9hbGxvd2VkLXBhdGgnKTsKKyAgY29uc3Qgc2NvcGUg
PSAnL2Rpc2FsbG93ZWQtcGF0aCc7CisgIGF3YWl0IHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXIo
dCwgc2NvcGUpOworICByZXR1cm4gcHJvbWlzZV9yZWplY3RzKHQsCisgICAgICAnU2VjdXJpdHlF
cnJvcicsCisgICAgICBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3RlcihzY3JpcHQsIHtz
Y29wZTogc2NvcGV9KSwKKyAgICAgICdyZWdpc3RlciBzaG91bGQgZmFpbCcpOworfSwgJ1JlZ2lz
dGVyaW5nIG91dHNpZGUgU2VydmljZS1Xb3JrZXItQWxsb3dlZCBwYXRoJyk7CiAKLXJlZ2lzdGVy
X2ZhaWxfdGVzdCgKLSAgICBidWlsZF9zY3JpcHRfdXJsKCcuLi9hbGxvd2VkLXBhdGgnKSwKLSAg
ICAnL2Rpc2FsbG93ZWQtcGF0aCcsCi0gICAgJ1JlZ2lzdGVyaW5nIG91dHNpZGUgU2VydmljZS1X
b3JrZXItQWxsb3dlZCBwYXRoJyksCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0
IHNjcmlwdCA9IGJ1aWxkX3NjcmlwdF91cmwoJy4uL2FsbG93ZWQtcGF0aC13aXRoLXBhcmVudCcp
OworICBjb25zdCBzY29wZSA9ICcvYWxsb3dlZC1wYXRoLXdpdGgtcGFyZW50JzsKKyAgYXdhaXQg
c2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcih0LCBzY29wZSk7CisgIHJldHVybiBwcm9taXNlX3Jl
amVjdHModCwKKyAgICAgICdTZWN1cml0eUVycm9yJywKKyAgICAgIG5hdmlnYXRvci5zZXJ2aWNl
V29ya2VyLnJlZ2lzdGVyKHNjcmlwdCwge3Njb3BlOiBzY29wZX0pLAorICAgICAgJ3JlZ2lzdGVy
IHNob3VsZCBmYWlsJyk7Cit9LCAnUmVnaXN0ZXJpbmcgb3V0c2lkZSBTZXJ2aWNlLVdvcmtlci1B
bGxvd2VkIHBhdGggd2l0aCBwYXJlbnQgcmVmZXJlbmNlJyk7CiAKLXJlZ2lzdGVyX2ZhaWxfdGVz
dCgKLSAgICBidWlsZF9zY3JpcHRfdXJsKCcuLi9hbGxvd2VkLXBhdGgtd2l0aC1wYXJlbnQnKSwK
LSAgICAnL2FsbG93ZWQtcGF0aC13aXRoLXBhcmVudCcsCi0gICAgJ1JlZ2lzdGVyaW5nIG91dHNp
ZGUgU2VydmljZS1Xb3JrZXItQWxsb3dlZCBwYXRoIHdpdGggcGFyZW50IHJlZmVyZW5jZScpOwor
cHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25zdCBzY3JpcHQgPSBidWlsZF9zY3JpcHRf
dXJsKAorICAgICAgaG9zdF9pbmZvLkhUVFBTX1JFTU9URV9PUklHSU4gKyAnLycpOworICBjb25z
dCBzY29wZSA9ICdyZXNvdXJjZXMvdGhpcy1zY29wZS1pcy1ub3JtYWxseS1hbGxvd2VkJworICBj
b25zdCByZWdpc3RyYXRpb24gPSBhd2FpdCBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9y
ZWdpc3RlcigKKyAgICAgIHQsIHNjcmlwdCwgc2NvcGUpOworICBhc3NlcnRfdHJ1ZShyZWdpc3Ry
YXRpb24gaW5zdGFuY2VvZiBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLCAncmVnaXN0ZXJlZCcp
OworICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi5zY29wZSwgbm9ybWFsaXplVVJMKHNjb3Bl
KSk7CisgIHJldHVybiByZWdpc3RyYXRpb24udW5yZWdpc3RlcigpOworfSwgJ1NlcnZpY2UtV29y
a2VyLUFsbG93ZWQgaXMgY3Jvc3Mtb3JpZ2luIHRvIHNjcmlwdCwgcmVnaXN0ZXJpbmcgb24gYSBu
b3JtYWxseSBhbGxvd2VkIHNjb3BlJyk7CiAKLXJlZ2lzdGVyX2ZhaWxfdGVzdCgKLSAgICBidWls
ZF9zY3JpcHRfdXJsKGhvc3RfaW5mby5IVFRQU19SRU1PVEVfT1JJR0lOICsgJy8nKSwKLSAgICAn
cmVzb3VyY2VzL3RoaXMtc2NvcGUtaXMtbm9ybWFsbHktYWxsb3dlZCcsCi0gICAgJ1NlcnZpY2Ut
V29ya2VyLUFsbG93ZWQgaXMgY3Jvc3Mtb3JpZ2luIHRvIHNjcmlwdCwgcmVnaXN0ZXJpbmcgb24g
YSBub3JtYWxseSBhbGxvd2VkIHNjb3BlJyk7Citwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7Cisg
IGNvbnN0IHNjcmlwdCA9IGJ1aWxkX3NjcmlwdF91cmwoCisgICAgICBob3N0X2luZm8uSFRUUFNf
UkVNT1RFX09SSUdJTiArICcvJyk7CisgIGNvbnN0IHNjb3BlID0gJy90aGlzLXNjb3BlLWlzLW5v
cm1hbGx5LWRpc2FsbG93ZWQnCisgIGNvbnN0IHJlZ2lzdHJhdGlvbiA9IGF3YWl0IHNlcnZpY2Vf
d29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKAorICAgICAgdCwgc2NyaXB0LCBzY29wZSk7
CisgIGFzc2VydF90cnVlKHJlZ2lzdHJhdGlvbiBpbnN0YW5jZW9mIFNlcnZpY2VXb3JrZXJSZWdp
c3RyYXRpb24sICdyZWdpc3RlcmVkJyk7CisgIGFzc2VydF9lcXVhbHMocmVnaXN0cmF0aW9uLnNj
b3BlLCBub3JtYWxpemVVUkwoc2NvcGUpKTsKKyAgcmV0dXJuIHJlZ2lzdHJhdGlvbi51bnJlZ2lz
dGVyKCk7Cit9LCAnU2VydmljZS1Xb3JrZXItQWxsb3dlZCBpcyBjcm9zcy1vcmlnaW4gdG8gc2Ny
aXB0LCByZWdpc3RlcmluZyBvbiBhIG5vcm1hbGx5IGRpc2FsbG93ZWQgc2NvcGUnKTsKIAotcmVn
aXN0ZXJfZmFpbF90ZXN0KAotICAgIGJ1aWxkX3NjcmlwdF91cmwoaG9zdF9pbmZvLkhUVFBTX1JF
TU9URV9PUklHSU4gKyAnLycpLAotICAgICcvdGhpcy1zY29wZS1pcy1ub3JtYWxseS1kaXNhbGxv
d2VkJywKLSAgICAnU2VydmljZS1Xb3JrZXItQWxsb3dlZCBpcyBjcm9zcy1vcmlnaW4gdG8gc2Ny
aXB0LCByZWdpc3RlcmluZyBvbiBhIG5vcm1hbGx5IGRpc2FsbG93ZWQgc2NvcGUnKTsKK3Byb21p
c2VfdGVzdChhc3luYyB0ID0+IHsKKyAgY29uc3Qgc2NyaXB0ID0gYnVpbGRfc2NyaXB0X3VybCgK
KyAgICAgIGhvc3RfaW5mby5IVFRQU19SRU1PVEVfT1JJR0lOICsgJy9jcm9zcy1vcmlnaW4vJywK
KyAgICAgIGhvc3RfaW5mby5IVFRQU19SRU1PVEVfT1JJR0lOKTsKKyAgY29uc3Qgc2NvcGUgPSAn
L2Nyb3NzLW9yaWdpbi8nOworICBhd2FpdCBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyKHQsIHNj
b3BlKTsKKyAgcmV0dXJuIHByb21pc2VfcmVqZWN0cyh0LAorICAgICAgJ1NlY3VyaXR5RXJyb3In
LAorICAgICAgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoc2NyaXB0LCB7c2NvcGU6
IHNjb3BlfSksCisgICAgICAncmVnaXN0ZXIgc2hvdWxkIGZhaWwnKTsKK30sICdTZXJ2aWNlLVdv
cmtlci1BbGxvd2VkIGlzIGNyb3NzLW9yaWdpbiB0byBwYWdlLCBzYW1lLW9yaWdpbiB0byBzY3Jp
cHQnKTsKIAotcmVnaXN0ZXJfZmFpbF90ZXN0KAotICAgIGJ1aWxkX3NjcmlwdF91cmwoaG9zdF9p
bmZvLkhUVFBTX1JFTU9URV9PUklHSU4gKyAnL2Nyb3NzLW9yaWdpbi8nLAotICAgICAgICAgICAg
ICAgICAgICAgaG9zdF9pbmZvLkhUVFBTX1JFTU9URV9PUklHSU4pLAotICAgICcvY3Jvc3Mtb3Jp
Z2luLycsCi0gICAgJ1NlcnZpY2UtV29ya2VyLUFsbG93ZWQgaXMgY3Jvc3Mtb3JpZ2luIHRvIHBh
Z2UsIHNhbWUtb3JpZ2luIHRvIHNjcmlwdCcpOwogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUvcG9zdG1lc3NhZ2UuaHR0cHMu
aHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS9wb3N0bWVz
c2FnZS5odHRwcy5odG1sCmluZGV4IDk5ZGVkZWJmMmU1NmM3NDQ1MjhmZDE2OGMwNWI0ZmU3MzQ1
NjNjNTcuLjE3MDQ2ZWVkYzZiZDI1MjliNDUyZmUwM2EwZTllMmQ1MmMwYjJkNzAgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS9wb3N0bWVzc2Fn
ZS5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL1NlcnZpY2VXb3JrZXJHbG9iYWxT
Y29wZS9wb3N0bWVzc2FnZS5odHRwcy5odG1sCkBAIC0xMiwxMiArMTIsNyBAQCBwcm9taXNlX3Rl
c3QoZnVuY3Rpb24odCkgewogCiAgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJf
YW5kX3JlZ2lzdGVyKHQsIHNjcmlwdCwgc2NvcGUpCiAgICAgICAudGhlbihmdW5jdGlvbihyKSB7
Ci0gICAgICAgICAgdC5hZGRfY2xlYW51cChmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgcmV0
dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXIodCwgc2NvcGUpOwotICAgICAgICAgICAgfSk7
Ci0KICAgICAgICAgICByZWdpc3RyYXRpb24gPSByOwotCiAgICAgICAgICAgcmV0dXJuIHdhaXRf
Zm9yX3N0YXRlKHQsIHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7CiAgICAg
ICAgIH0pCiAgICAgICAudGhlbihmdW5jdGlvbigpIHsKQEAgLTMzLDYgKzI4LDcgQEAgcHJvbWlz
ZV90ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICAgICAgfSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKHJl
c3VsdCkgewogICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVzdWx0LCAnT0snKTsKKyAgICAgICAg
ICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfZG9uZSh0LCBzY29wZSk7CiAg
ICAgICAgIH0pOwogICB9LCAnUG9zdCBsb29wYmFjayBtZXNzYWdlcycpOwogCkBAIC00NSwxMCAr
NDEsNiBAQCBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewogCiAgICAgcmV0dXJuIHNlcnZpY2Vf
d29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHNjcmlwdDEsIHNjb3BlKQogICAgICAg
LnRoZW4oZnVuY3Rpb24ocikgewotICAgICAgICAgIHQuYWRkX2NsZWFudXAoZnVuY3Rpb24oKSB7
Ci0gICAgICAgICAgICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyKHQsIHNjb3Bl
KTsKLSAgICAgICAgICAgIH0pOwotCiAgICAgICAgICAgcmVnaXN0cmF0aW9uID0gcjsKICAgICAg
ICAgICByZXR1cm4gd2FpdF9mb3Jfc3RhdGUodCwgcmVnaXN0cmF0aW9uLmluc3RhbGxpbmcsICdh
Y3RpdmF0ZWQnKTsKICAgICAgICAgfSkKQEAgLTc3LDYgKzY5LDcgQEAgcHJvbWlzZV90ZXN0KGZ1
bmN0aW9uKHQpIHsKICAgICAgIC50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewogICAgICAgICAgIGFz
c2VydF9lcXVhbHMocmVzdWx0LCAnT0snKTsKICAgICAgICAgICBmcmFtZS5yZW1vdmUoKTsKKyAg
ICAgICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfZG9uZSh0LCBzY29w
ZSk7CiAgICAgICAgIH0pOwogICB9LCAnUG9zdCBtZXNzYWdlcyBhbW9uZyBzZXJ2aWNlIHdvcmtl
cnMnKTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvU2VydmljZVdvcmtlckdsb2Jh
bFNjb3BlL3VucmVnaXN0ZXIuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL1NlcnZpY2VX
b3JrZXJHbG9iYWxTY29wZS91bnJlZ2lzdGVyLmh0dHBzLmh0bWwKaW5kZXggMWExMjRkNzI3Njg3
ZWNmYzYyYmIxNDQzYmVkMjMxMzMxMjc2Mjk5Ny4uMzEzMzA5MTg4MDcxNzQ3ZmIxMzlkNmRjMGRi
ZTIwMTlkMGU3Mjc0OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvU2VydmljZVdvcmtl
ckdsb2JhbFNjb3BlL3VucmVnaXN0ZXIuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUvdW5yZWdpc3Rlci5odHRwcy5odG1sCkBAIC0xMSwx
MCArMTEsNiBAQCBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewogCiAgICAgcmV0dXJuIHNlcnZp
Y2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHNjcmlwdCwgc2NvcGUpCiAgICAg
ICAudGhlbihmdW5jdGlvbihyZWdpc3RyYXRpb24pIHsKLSAgICAgICAgICB0LmFkZF9jbGVhbnVw
KGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdp
c3Rlcih0LCBzY29wZSk7Ci0gICAgICAgICAgICB9KTsKLQogICAgICAgICAgIHJldHVybiB3YWl0
X2Zvcl9zdGF0ZSh0LCByZWdpc3RyYXRpb24uaW5zdGFsbGluZywgJ3JlZHVuZGFudCcpOwogICAg
ICAgICB9KQogICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7CkBAIC0yNSw2ICsyMSw3IEBAIHByb21p
c2VfdGVzdChmdW5jdGlvbih0KSB7CiAgICAgICAgICAgICByZXN1bHQsCiAgICAgICAgICAgICB1
bmRlZmluZWQsCiAgICAgICAgICAgICAnQWZ0ZXIgdW5yZWdpc3RlcigpLCB0aGUgcmVnaXN0cmF0
aW9uIHNob3VsZCBub3QgZm91bmQnKTsKKyAgICAgICAgICByZXR1cm4gc2VydmljZV93b3JrZXJf
dW5yZWdpc3Rlcl9hbmRfZG9uZSh0LCBzY29wZSk7CiAgICAgICAgIH0pOwogICB9LCAnVW5yZWdp
c3RlciBvbiBzY3JpcHQgZXZhbHVhdGlvbicpOwogCkBAIC0zNCwxMCArMzEsNiBAQCBwcm9taXNl
X3Rlc3QoZnVuY3Rpb24odCkgewogCiAgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0
ZXJfYW5kX3JlZ2lzdGVyKHQsIHNjcmlwdCwgc2NvcGUpCiAgICAgICAudGhlbihmdW5jdGlvbihy
ZWdpc3RyYXRpb24pIHsKLSAgICAgICAgICB0LmFkZF9jbGVhbnVwKGZ1bmN0aW9uKCkgewotICAg
ICAgICAgICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcih0LCBzY29wZSk7Ci0g
ICAgICAgICAgICB9KTsKLQogICAgICAgICAgIHJldHVybiB3YWl0X2Zvcl9zdGF0ZSh0LCByZWdp
c3RyYXRpb24uaW5zdGFsbGluZywgJ3JlZHVuZGFudCcpOwogICAgICAgICB9KQogICAgICAgLnRo
ZW4oZnVuY3Rpb24oKSB7CkBAIC00OCw2ICs0MSw3IEBAIHByb21pc2VfdGVzdChmdW5jdGlvbih0
KSB7CiAgICAgICAgICAgICByZXN1bHQsCiAgICAgICAgICAgICB1bmRlZmluZWQsCiAgICAgICAg
ICAgICAnQWZ0ZXIgdW5yZWdpc3RlcigpLCB0aGUgcmVnaXN0cmF0aW9uIHNob3VsZCBub3QgZm91
bmQnKTsKKyAgICAgICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfZG9u
ZSh0LCBzY29wZSk7CiAgICAgICAgIH0pOwogICB9LCAnVW5yZWdpc3RlciBvbiBpbnN0YWxsaW5n
IGV2ZW50Jyk7CiAKQEAgLTU3LDEwICs1MSw2IEBAIHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7
CiAKICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwg
c2NyaXB0LCBzY29wZSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKHJlZ2lzdHJhdGlvbikgewotICAg
ICAgICAgIHQuYWRkX2NsZWFudXAoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgIHJldHVybiBz
ZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyKHQsIHNjb3BlKTsKLSAgICAgICAgICAgIH0pOwotCiAg
ICAgICAgICAgcmV0dXJuIHdhaXRfZm9yX3N0YXRlKHQsIHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5n
LCAncmVkdW5kYW50Jyk7CiAgICAgICAgIH0pCiAgICAgICAudGhlbihmdW5jdGlvbigpIHsKQEAg
LTcxLDYgKzYxLDcgQEAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICAgICAgICAgIHJl
c3VsdCwKICAgICAgICAgICAgIHVuZGVmaW5lZCwKICAgICAgICAgICAgICdBZnRlciB1bnJlZ2lz
dGVyKCksIHRoZSByZWdpc3RyYXRpb24gc2hvdWxkIG5vdCBmb3VuZCcpOworICAgICAgICAgIHJl
dHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9kb25lKHQsIHNjb3BlKTsKICAgICAg
ICAgfSk7CiAgIH0sICdVbnJlZ2lzdGVyIG9uIGFjdGl2YXRlIGV2ZW50Jyk7CiAKQEAgLTgzLDEw
ICs3NCw2IEBAIHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7CiAKICAgICByZXR1cm4gc2Vydmlj
ZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgc2NyaXB0LCBzY29wZSkKICAgICAg
IC50aGVuKGZ1bmN0aW9uKHJlZ2lzdHJhdGlvbikgewotICAgICAgICAgIHQuYWRkX2NsZWFudXAo
ZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lz
dGVyKHQsIHNjb3BlKTsKLSAgICAgICAgICAgIH0pOwotCiAgICAgICAgICAgcmV0dXJuIHdhaXRf
Zm9yX3N0YXRlKHQsIHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7CiAgICAg
ICAgIH0pCiAgICAgICAudGhlbihmdW5jdGlvbigpIHsgcmV0dXJuIHdpdGhfaWZyYW1lKHNjb3Bl
KTsgfSkKQEAgLTEzMyw2ICsxMjAsNyBAQCBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewogCiAg
ICAgICAgICAgZnJhbWUucmVtb3ZlKCk7CiAgICAgICAgICAgbmV3X2ZyYW1lLnJlbW92ZSgpOwor
ICAgICAgICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9kb25lKHQsIHNj
b3BlKTsKICAgICAgICAgfSkKICAgfSwgJ1VucmVnaXN0ZXIgY29udHJvbGxpbmcgc2VydmljZSB3
b3JrZXInKTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvU2VydmljZVdvcmtlckds
b2JhbFNjb3BlL3VwZGF0ZS5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvU2VydmljZVdv
cmtlckdsb2JhbFNjb3BlL3VwZGF0ZS5odHRwcy5odG1sCmluZGV4IGE3ZGRlMjIzMzk3MmNiM2Mx
YjgyNTBmM2IwYTE4NDQxM2NkN2M1YTUuLmE5Mjg1YTFjOWUyZGJmYzM4YzU0N2UzMDMwYWY4YWQ5
YmEyOTJlNDIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL1NlcnZpY2VXb3JrZXJHbG9i
YWxTY29wZS91cGRhdGUuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9TZXJ2aWNl
V29ya2VyR2xvYmFsU2NvcGUvdXBkYXRlLmh0dHBzLmh0bWwKQEAgLTEzLDEwICsxMyw2IEBAIHBy
b21pc2VfdGVzdChmdW5jdGlvbih0KSB7CiAKICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5y
ZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgc2NyaXB0LCBzY29wZSkKICAgICAgIC50aGVuKGZ1bmN0
aW9uKHIpIHsKLSAgICAgICAgICB0LmFkZF9jbGVhbnVwKGZ1bmN0aW9uKCkgewotICAgICAgICAg
ICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcih0LCBzY29wZSk7Ci0gICAgICAg
ICAgICB9KTsKLQogICAgICAgICAgIHJlZ2lzdHJhdGlvbiA9IHI7CiAgICAgICAgICAgcmV0dXJu
IHdhaXRfZm9yX3N0YXRlKHQsIHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7
CiAgICAgICAgIH0pCkBAIC00Miw2ICszOCw3IEBAIHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7
CiAgICAgICAgICAgICAgICdldmVudHMgc2VlbiBieSB0aGUgd29ya2VyJyk7CiAgICAgICAgICAg
ZnJhbWUxLnJlbW92ZSgpOwogICAgICAgICAgIGZyYW1lMi5yZW1vdmUoKTsKKyAgICAgICAgICBy
ZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfZG9uZSh0LCBzY29wZSk7CiAgICAg
ICAgIH0pOwogICB9LCAnVXBkYXRlIGEgcmVnaXN0cmF0aW9uIG9uIFNlcnZpY2VXb3JrZXJHbG9i
YWxTY29wZScpOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9hYm91dC1ibGFuay1y
ZXBsYWNlbWVudC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvYWJvdXQtYmxhbmstcmVw
bGFjZW1lbnQuaHR0cHMuaHRtbAppbmRleCBiNmVmZTNlYzU2MjBkMWM4M2RlYjMwNWYyYzFlYmUw
MDhhNmEyM2UyLi5lMWZlZmFmMjkwZmU1MjE1OTBhNDYwOTQyZDRjM2Y2YzAwMjJjNzVmIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9hYm91dC1ibGFuay1yZXBsYWNlbWVudC5odHRwcy5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2Fib3V0LWJsYW5rLXJlcGxhY2VtZW50Lmh0dHBz
Lmh0bWwKQEAgLTYwLDkgKzYwLDYgQEAgZnVuY3Rpb24gZ2V0Q2xpZW50SWRCeVVSTCh3b3JrZXIs
IHVybCkgewogCiBhc3luYyBmdW5jdGlvbiBkb0FzeW5jVGVzdCh0LCBzY29wZSkgewogICBsZXQg
cmVnID0gYXdhaXQgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgd29y
a2VyLCBzY29wZSk7Ci0KLSAgdC5hZGRfY2xlYW51cCgoKSA9PiBzZXJ2aWNlX3dvcmtlcl91bnJl
Z2lzdGVyKHQsIHNjb3BlKSk7Ci0KICAgYXdhaXQgd2FpdF9mb3Jfc3RhdGUodCwgcmVnLmluc3Rh
bGxpbmcsICdhY3RpdmF0ZWQnKTsKIAogICAvLyBMb2FkIHRoZSBzY29wZSBhcyBhIGZyYW1lLiAg
V2UgZXhwZWN0IHRoaXMgaW4gdHVybiB0byBoYXZlIGEgbmVzdGVkCkBAIC05OSw2ICs5Niw3IEBA
IGFzeW5jIGZ1bmN0aW9uIGRvQXN5bmNUZXN0KHQsIHNjb3BlKSB7CiAgIH0KIAogICBmcmFtZS5y
ZW1vdmUoKTsKKyAgYXdhaXQgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfZG9uZSh0LCBz
Y29wZSk7CiB9CiAKIHByb21pc2VfdGVzdChhc3luYyBmdW5jdGlvbih0KSB7CkBAIC0xMjgsOSAr
MTI2LDYgQEAgcHJvbWlzZV90ZXN0KGFzeW5jIGZ1bmN0aW9uKHQpIHsKICAgY29uc3Qgc2NvcGUg
PSAncmVzb3VyY2VzL2Fib3V0LWJsYW5rLXJlcGxhY2VtZW50LXVuY29udHJvbGxlZC1uZXN0ZWQt
ZnJhbWUuaHRtbCc7CiAKICAgbGV0IHJlZyA9IGF3YWl0IHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0
ZXJfYW5kX3JlZ2lzdGVyKHQsIHdvcmtlciwgc2NvcGUpOwotCi0gIHQuYWRkX2NsZWFudXAoKCkg
PT4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcih0LCBzY29wZSkpOwotCiAgIGF3YWl0IHdhaXRf
Zm9yX3N0YXRlKHQsIHJlZy5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7CiAKICAgLy8gTG9hZCB0
aGUgc2NvcGUgYXMgYSBmcmFtZS4gIFdlIGV4cGVjdCB0aGlzIGluIHR1cm4gdG8gaGF2ZSBhIG5l
c3RlZApAQCAtMTUyLDYgKzE0Nyw3IEBAIHByb21pc2VfdGVzdChhc3luYyBmdW5jdGlvbih0KSB7
CiAgICAgICAgICAgICAgICAgJ25lc3RlZCBmcmFtZSBzaG91bGQgbm90IGJlIGNvbnRyb2xsZWQn
KTsKIAogICBmcmFtZS5yZW1vdmUoKTsKKyAgYXdhaXQgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rl
cl9hbmRfZG9uZSh0LCBzY29wZSk7CiB9LCAnSW5pdGlhbCBhYm91dDpibGFuayBpcyBjb250cm9s
bGVkLCBleHBvc2VkIHRvIGNsaWVudHMubWF0Y2hBbGwoKSwgYW5kICcgKwogICAgJ2ZpbmFsIENs
aWVudCBpcyBub3QgY29udHJvbGxlZCBieSBhIHNlcnZpY2Ugd29ya2VyLicpOwogCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9hY3RpdmF0ZS1ldmVudC1hZnRlci1pbnN0YWxsLXN0YXRl
LWNoYW5nZS5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvYWN0aXZhdGUtZXZlbnQtYWZ0
ZXItaW5zdGFsbC1zdGF0ZS1jaGFuZ2UuaHR0cHMuaHRtbAppbmRleCAwMTZhNTJjMTNjODJlYmJm
YjM2ZDQ4ODMwNDQ2Yjc5YjRlNzJmMTNlLi41N2ZjY2YxMzcxMmQ5N2MzMTY4NzQ3NDZmNzcwZmQ3
ZTc2ZjVlODk3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9hY3RpdmF0ZS1ldmVudC1h
ZnRlci1pbnN0YWxsLXN0YXRlLWNoYW5nZS5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL2FjdGl2YXRlLWV2ZW50LWFmdGVyLWluc3RhbGwtc3RhdGUtY2hhbmdlLmh0dHBzLmh0bWwK
QEAgLTExLDEwICsxMSw2IEBAIHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7CiAKICAgcmV0dXJu
IHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHNjcmlwdCwgc2NvcGUp
CiAgICAgLnRoZW4oZnVuY3Rpb24ocmVnaXN0cmF0aW9uKSB7Ci0gICAgICAgIHQuYWRkX2NsZWFu
dXAoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdp
c3Rlcih0LCBzY29wZSk7Ci0gICAgICAgICAgfSk7Ci0KICAgICAgICAgdmFyIHN3ID0gcmVnaXN0
cmF0aW9uLmluc3RhbGxpbmc7CiAKICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKHQuc3RlcF9m
dW5jKGZ1bmN0aW9uKHJlc29sdmUpIHsKQEAgLTI3LDYgKzIzLDkgQEAgcHJvbWlzZV90ZXN0KGZ1
bmN0aW9uKHQpIHsKICAgICAgICAgICB9KTsKICAgICAgICAgfSkpOwogICAgICAgfSkKKyAgICAu
dGhlbihmdW5jdGlvbigpIHsKKyAgICAgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0
ZXJfYW5kX2RvbmUodCwgc2NvcGUpOworICAgICAgfSkKICAgICAuY2F0Y2godW5yZWFjaGVkX3Jl
amVjdGlvbih0KSk7CiAgIH0sICdpbnN0YWxsZWQgZXZlbnQgc2hvdWxkIGJlIGZpcmVkIGJlZm9y
ZSBhY3RpdmF0aW5nIHNlcnZpY2Ugd29ya2VyJyk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL2FjdGl2YXRpb24tYWZ0ZXItcmVnaXN0cmF0aW9uLmh0dHBzLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9hY3RpdmF0aW9uLWFmdGVyLXJlZ2lzdHJhdGlvbi5odHRwcy5odG1sCmluZGV4
IDI5Zjk3ZTNlM2Y0YzBjZGEyMzIxNzc2Y2JmNDhmZWQ5MmQxYzkwYTEuLmZmMDk5MGRmNmJhOTli
ZTc5YjA2OWMyY2M3MGFkNzBjOTIwYmE0ZTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L2FjdGl2YXRpb24tYWZ0ZXItcmVnaXN0cmF0aW9uLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvYWN0aXZhdGlvbi1hZnRlci1yZWdpc3RyYXRpb24uaHR0cHMuaHRtbApAQCAtNSwy
NCArNSwyNSBAQAogPHNjcmlwdCBzcmM9InJlc291cmNlcy90ZXN0LWhlbHBlcnMuc3ViLmpzIj48
L3NjcmlwdD4KIDxib2R5PgogPHNjcmlwdD4KLXByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7Cit2
YXIgdCA9IGFzeW5jX3Rlc3QoJ2FjdGl2YXRpb24gb2NjdXJzIGFmdGVyIHJlZ2lzdHJhdGlvbicp
OwordC5zdGVwKGZ1bmN0aW9uKCkgewogICAgIHZhciBzY29wZSA9ICdyZXNvdXJjZXMvYmxhbmsu
aHRtbCc7CiAgICAgdmFyIHJlZ2lzdHJhdGlvbjsKIAotICAgIHJldHVybiBzZXJ2aWNlX3dvcmtl
cl91bnJlZ2lzdGVyX2FuZF9yZWdpc3RlcigKKyAgICBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVy
X2FuZF9yZWdpc3RlcigKICAgICAgICAgdCwgJ3Jlc291cmNlcy9lbXB0eS13b3JrZXIuanMnLCBz
Y29wZSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKHIpIHsKLSAgICAgICAgICB0LmFkZF9jbGVhbnVw
KGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdp
c3Rlcih0LCBzY29wZSk7Ci0gICAgICAgICAgICB9KTsKLQogICAgICAgICAgIHJlZ2lzdHJhdGlv
biA9IHI7CiAgICAgICAgICAgYXNzZXJ0X2VxdWFscygKICAgICAgICAgICAgICAgci5pbnN0YWxs
aW5nLnN0YXRlLAogICAgICAgICAgICAgICAnaW5zdGFsbGluZycsCiAgICAgICAgICAgICAgICd3
b3JrZXIgc2hvdWxkIGJlIGluIHRoZSAiaW5zdGFsbGluZyIgc3RhdGUgdXBvbiByZWdpc3RyYXRp
b24nKTsKICAgICAgICAgICByZXR1cm4gd2FpdF9mb3Jfc3RhdGUodCwgci5pbnN0YWxsaW5nLCAn
YWN0aXZhdGVkJyk7Ci0gICAgICAgIH0pOwotfSwgJ2FjdGl2YXRpb24gb2NjdXJzIGFmdGVyIHJl
Z2lzdHJhdGlvbicpOworICAgICAgICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfZG9uZSh0LCBzY29wZSk7CisgICAg
ICAgIH0pCisgICAgICAuY2F0Y2godW5yZWFjaGVkX3JlamVjdGlvbih0KSk7Cit9KTsKIDwvc2Ny
aXB0PgogPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvYWN0aXZhdGlvbi5o
dHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9hY3RpdmF0aW9uLmh0dHBzLWV4
cGVjdGVkLnR4dAppbmRleCA3MzM0ZDZiN2E3YWM0NGRhMTEyOGRmNWQ5NGZmOTg1NzJlNjMyODc4
Li5mMDJlNDg1MmJiMGFhYTc5YTUzMjVlODkzODc5MzYwNGY3M2IyZWFjIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci9hY3RpdmF0aW9uLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9hY3RpdmF0aW9uLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMSwzICsxLDQg
QEAKKyAKIAogUEFTUyBsb3NzIG9mIGNvbnRyb2xsZWVzIHRyaWdnZXJzIGFjdGl2YXRpb24gCiBQ
QVNTIGZpbmlzaGluZyBhIHJlcXVlc3QgdHJpZ2dlcnMgYWN0aXZhdGlvbiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL2FjdGl2YXRpb24uaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL2FjdGl2YXRpb24uaHR0cHMuaHRtbAppbmRleCAwMDdlY2FhZDc2Yzk1OTM1ZGQ1NzQ3MGM2
NjA1NzUzMDVkYzZiYWUxLi41NzU1NzU4ZTU3MTZkYmM2MDhlN2U3NzNiZjliODNhYjNmMmY3ZTkx
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9hY3RpdmF0aW9uLmh0dHBzLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvYWN0aXZhdGlvbi5odHRwcy5odG1sCkBAIC0xMTMsMTIgKzEx
MywxMCBAQCBwcm9taXNlX3Rlc3QodCA9PiB7CiAgICAgdmFyIHNjb3BlID0gJ3Jlc291cmNlcy9z
a2lwLXdhaXRpbmcnOwogICAgIHZhciB3b3JrZXJfdXJsID0gJ3Jlc291cmNlcy9taW50LW5ldy13
b3JrZXIucHk/c2tpcC13YWl0aW5nJzsKICAgICB2YXIgcmVnaXN0cmF0aW9uOwotICAgIHZhciBp
ZnJhbWU7CiAgICAgdmFyIG5ld193b3JrZXI7CiAgICAgcmV0dXJuIHNldHVwX2FjdGl2YXRpb25f
dGVzdCh0LCBzY29wZSwgd29ya2VyX3VybCkKICAgICAgIC50aGVuKHJlc3VsdCA9PiB7CiAgICAg
ICAgICAgcmVnaXN0cmF0aW9uID0gcmVzdWx0LnJlZ2lzdHJhdGlvbjsKLSAgICAgICAgICBpZnJh
bWUgPSByZXN1bHQuaWZyYW1lOwogICAgICAgICAgIC8vIEZpbmlzaCB0aGUgcmVxdWVzdC4gVGhl
IGlmcmFtZSBkb2VzIG5vdCBuZWVkIHRvIGJlIHJlbW92ZWQgYmVjYXVzZQogICAgICAgICAgIC8v
IHNraXBXYWl0aW5nKCkgd2FzIGNhbGxlZC4KICAgICAgICAgICBuZXdfd29ya2VyID0gcmVnaXN0
cmF0aW9uLndhaXRpbmc7CkBAIC0xMjgsOCArMTI2LDYgQEAgcHJvbWlzZV90ZXN0KHQgPT4gewog
ICAgICAgICB9KQogICAgICAgLnRoZW4oKCkgPT4gewogICAgICAgICAgIGFzc2VydF9lcXVhbHMo
cmVnaXN0cmF0aW9uLmFjdGl2ZSwgbmV3X3dvcmtlcik7Ci0gICAgICAgICAgLy8gUmVtb3ZlIHRo
ZSBpZnJhbWUuCi0gICAgICAgICAgaWZyYW1lLnJlbW92ZSgpOwogICAgICAgICB9KTsKICAgfSwg
J3NraXBXYWl0aW5nIGJ5cGFzc2VzIG5vIGNvbnRyb2xsZWUgcmVxdWlyZW1lbnQnKTsKIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvYXBwY2FjaGUtb3JkZXJpbmctbWFpbi5odHRwcy5o
dG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvYXBwY2FjaGUtb3JkZXJpbmctbWFpbi5odHRwcy5odG1s
CmluZGV4IGE4NjY3MWMxZmU0ZWM5NGNlYzg0ZDYzYmI3ZTMwOTIyYjAzY2YxMWEuLjYwOWQ2N2U0
NTA0Yzk0ODg3ODAzNjljMTVlMWI5NmZjMGJkMjAzOTQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL2FwcGNhY2hlLW9yZGVyaW5nLW1haW4uaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9hcHBjYWNoZS1vcmRlcmluZy1tYWluLmh0dHBzLmh0bWwKQEAgLTUsNiArNSw3IEBA
CiA8Ym9keT4KIDxzY3JpcHQ+CiAKK3ZhciBJTlNUQUxMX0FQUENBQ0hFX1VSTCA9ICJyZXNvdXJj
ZXMvYXBwY2FjaGUtb3JkZXJpbmcuaW5zdGFsbC5odG1sIjsKIHZhciBJU19BUFBDQUNIRURfVVJM
ID0gInJlc291cmNlcy9hcHBjYWNoZS1vcmRlcmluZy5pcy1hcHBjYWNoZWQuaHRtbCI7CiB2YXIg
U0VSVklDRV9XT1JLRVJfU0NPUEUgPSAicmVzb3VyY2VzL2FwcGNhY2hlLW9yZGVyaW5nIjsKIHZh
ciBTRVJWSUNFX1dPUktFUl9TQ1JJUFQgPSAicmVzb3VyY2VzL2VtcHR5LXdvcmtlci5qcyI7CkBA
IC0xNCw2ICsxNSwzMSBAQCB2YXIgcmVqZWN0X2luc3RhbGxfYXBwY2FjaGUgPSB1bmRlZmluZWQ7
CiAKIHZhciBmcmFtZXMgPSBbXTsKIAorLy8gQ2FsbGVkIGJ5IHRoZSBJTlNUQUxMX0FQUENBQ0hF
X1VSTCBjaGlsZCBmcmFtZS4KK2Z1bmN0aW9uIG5vdGlmeV9hcHBjYWNoZV9pbnN0YWxsZWQoc3Vj
Y2VzcykgeworICBpZiAoc3VjY2VzcykKKyAgICByZXNvbHZlX2luc3RhbGxfYXBwY2FjaGUoKTsK
KyAgZWxzZQorICAgIHJlamVjdF9pbnN0YWxsX2FwcGNhY2hlKCk7Cit9CisKK2Z1bmN0aW9uIGlu
c3RhbGxfYXBwY2FjaGUoKSB7CisgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZl
LCByZWplY3QpIHsKKyAgICAgIHZhciBmcmFtZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lm
cmFtZScpOworICAgICAgZnJhbWVzLnB1c2goZnJhbWUpOworICAgICAgZnJhbWUuc3JjID0gSU5T
VEFMTF9BUFBDQUNIRV9VUkw7CisgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGZyYW1l
KTsKKyAgICAgIHJlc29sdmVfaW5zdGFsbF9hcHBjYWNoZSA9IGZ1bmN0aW9uKCkgeworICAgICAg
ICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZnJhbWUpOworICAgICAgICAgIHJlc29sdmUo
KTsKKyAgICAgICAgfTsKKyAgICAgIHJlamVjdF9pbnN0YWxsX2FwcGNhY2hlID0gZnVuY3Rpb24o
KSB7CisgICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChmcmFtZSk7CisgICAgICAg
ICAgcmVqZWN0KCk7CisgICAgICAgIH07CisgIH0pOworfQorCiB2YXIgcmVzb2x2ZV9pc19hcHBj
YWNoZWQgPSB1bmRlZmluZWQ7CiAKIC8vIENhbGxlZCBieSB0aGUgSVNfQVBQQ0FDSEVEX1VSTCBj
aGlsZCBmcmFtZS4KQEAgLTM0LDEwICs2MCwxMCBAQCBmdW5jdGlvbiBpc19hcHBjYWNoZWQoKSB7
CiAgIH0pOwogfQogCi1wcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewotICAgIHJldHVybiBzZXJ2
aWNlX3dvcmtlcl91bnJlZ2lzdGVyKHQsIFNFUlZJQ0VfV09SS0VSX1NDT1BFKQorYXN5bmNfdGVz
dChmdW5jdGlvbih0KSB7CisgICAgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcih0LCBTRVJWSUNF
X1dPUktFUl9TQ09QRSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKCkgewotICAgICAgICAgIHJldHVy
biBpbnN0YWxsX2FwcGNhY2hlX29yZGVyaW5nX21hbmlmZXN0KCk7CisgICAgICAgICAgcmV0dXJu
IGluc3RhbGxfYXBwY2FjaGUoKTsKICAgICAgICAgfSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKCkg
ewogICAgICAgICAgIHJldHVybiBpc19hcHBjYWNoZWQoKTsKQEAgLTQ4LDEwICs3NCw2IEBAIHBy
b21pc2VfdGVzdChmdW5jdGlvbih0KSB7CiAgICAgICAgICAgICAgIHQsIFNFUlZJQ0VfV09SS0VS
X1NDUklQVCwgU0VSVklDRV9XT1JLRVJfU0NPUEUpOwogICAgICAgICB9KQogICAgICAgLnRoZW4o
ZnVuY3Rpb24ocikgewotICAgICAgICAgIHQuYWRkX2NsZWFudXAoZnVuY3Rpb24oKSB7Ci0gICAg
ICAgICAgICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyKHQsIFNFUlZJQ0VfV09S
S0VSX1NDT1BFKTsKLSAgICAgICAgICAgIH0pOwotCiAgICAgICAgICAgcmV0dXJuIHdhaXRfZm9y
X3N0YXRlKHQsIHIuaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOwogICAgICAgICB9KQogICAgICAg
LnRoZW4oZnVuY3Rpb24oKSB7CkBAIC02MCw3ICs4Miw5IEBAIHByb21pc2VfdGVzdChmdW5jdGlv
bih0KSB7CiAgICAgICAudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKICAgICAgICAgICBhc3NlcnRf
ZmFsc2UocmVzdWx0LCAnYnV0IHNlcnZpY2V3b3JrZXJzIHNob3VsZCB0YWtlIHByaW9yaXR5Jyk7
CiAgICAgICAgICAgZnJhbWVzLmZvckVhY2goZnVuY3Rpb24oZikgeyBmLnJlbW92ZSgpOyB9KTsK
LSAgICAgICAgfSk7CisgICAgICAgICAgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfZG9u
ZSh0LCBTRVJWSUNFX1dPUktFUl9TQ09QRSk7CisgICAgICAgIH0pCisgICAgICAuY2F0Y2godW5y
ZWFjaGVkX3JlamVjdGlvbih0KSk7CiAgIH0sICdzZXJ2aWNld29ya2VycyB0YWtlIHByaW9yaXR5
IG92ZXIgYXBwY2FjaGVzJyk7CiAKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvY2xhaW0tZmV0Y2gtd2l0aC1hcHBjYWNoZS5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9jbGFpbS1mZXRjaC13aXRoLWFwcGNhY2hlLmh0dHBzLWV4cGVjdGVkLnR4
dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGYyYzM5ZWUzOWUzMjU0ZDI1MzUxZDUw
ZGNkOTg5NjAwMjVmOTYzOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGFpbS1mZXRjaC13aXRoLWFwcGNhY2hlLmh0dHBz
LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDQgKzAsMCBAQAotQ09OU09MRSBNRVNT
QUdFOiBsaW5lIDE6IEFwcGxpY2F0aW9uQ2FjaGUgaXMgZGVwcmVjYXRlZC4gUGxlYXNlIHVzZSBT
ZXJ2aWNlV29ya2VycyBpbnN0ZWFkLgotCi1QQVNTIGZldGNoKCkgc2hvdWxkIGJlIGludGVyY2Vw
dGVkIGFmdGVyIHRoZSBjbGllbnQgaXMgY2xhaW1lZC4gCi0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL2NsYWltLWZldGNoLXdpdGgtYXBwY2FjaGUuaHR0cHMuaHRtbCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL2NsYWltLWZldGNoLXdpdGgtYXBwY2FjaGUuaHR0cHMuaHRtbApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggNDg5MGE4NGJhMTBmYTE4NmUyZTIxM2Q2NmQ1OGE0OTM3ZDJj
ODYwOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9jbGFpbS1mZXRjaC13aXRoLWFwcGNhY2hlLmh0dHBzLmh0bWwKKysrIC9k
ZXYvbnVsbApAQCAtMSw4MSArMCwwIEBACi08IWRvY3R5cGUgaHRtbD4KLTxtZXRhIGNoYXJzZXQ9
dXRmLTg+Ci08dGl0bGU+PC90aXRsZT4KLTxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGVzdC1oZWxwZXJzLnN1
Yi5qcyI+PC9zY3JpcHQ+Ci08Ym9keT4KLTxzY3JpcHQ+Ci0KLS8vIFRoaXMgdGVzdCBtYWtlcyBh
IGZyYW1lIGNvbnRyb2xsZWQgYnkgQXBwQ2FjaGUsIHRoZW4gcmVnaXN0ZXJzIGEgc2VydmljZQot
Ly8gd29ya2VyIHRoYXQgY2FsbHMgY2xhaW0oKSB0byBjb250cm9sIHRoZSBmcmFtZS4gQXBwQ2Fj
aGUgc2hvdWxkIGJlIGNvbXBsZXRlbHkKLS8vIGJ5cGFzc2VkIG9uY2UgdGhlIHNlcnZpY2Ugd29y
a2VyIGNsYWltcyB0aGUgZnJhbWUuCi0KLWNvbnN0IGZldGNoX3RleHQgPSBhc3luYyBmcmFtZSA9
PiB7Ci0gIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQKLSAgICBmcmFtZS5jb250ZW50V2luZG93LmZl
dGNoKCdhcHBjYWNoZS1vcmRlcmluZy5pcy1hcHBjYWNoZWQuanMnKTsKLSAgcmV0dXJuIGF3YWl0
IHJlc3BvbnNlLnRleHQoKTsKLX07Ci0KLWNvbnN0IGNoZWNrX2lzX2FwcGNhY2hlZCA9IGFzeW5j
IGZyYW1lID0+IHsKLSAgLy8gVGhpcyBzaG91bGQgRkFMTEJBQ0sgdG8gb3JkZXJpbmcuaXNfYXBw
Y2FjaGVkLmpzIGFzIGluIHRoZSBtYW5pZmVzdAotICAvLyBpZiB0aGUgYXBwY2FjaGUgaXMgZWZm
ZWN0aXZlLgotICBjb25zdCByZXNwb25zZSA9IGF3YWl0Ci0gICAgZnJhbWUuY29udGVudFdpbmRv
dy5mZXRjaCgnYXBwY2FjaGUtb3JkZXJpbmcuaXMtYXBwY2FjaGVkNDA0LmpzJyk7Ci0gIHJldHVy
biBhd2FpdCByZXNwb25zZS5vazsKLX07Ci0KLXByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKLSAg
Y29uc3Qgc2NvcGUgPSAncmVzb3VyY2VzLyc7Ci0gIGNvbnN0IHNjcmlwdCA9ICdyZXNvdXJjZXMv
Y2xhaW0td29ya2VyLmpzJzsKLQotICBhd2FpdCBpbnN0YWxsX2FwcGNhY2hlX29yZGVyaW5nX21h
bmlmZXN0KCk7Ci0KLSAgLy8gQ3JlYXRlIHRoZSB0ZXN0IGlmcmFtZS4KLSAgY29uc3QgZnJhbWUg
PSBhd2FpdCB3aXRoX2lmcmFtZSgncmVzb3VyY2VzL2JsYW5rLmh0bWwnKTsKLSAgdC5hZGRfY2xl
YW51cChhc3luYyAoKSA9PiB7Ci0gICAgaWYgKGZyYW1lKSBmcmFtZS5yZW1vdmUoKTsKLSAgICBy
ZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcih0LCBzY29wZSk7Ci0gIH0pOwotCi0gIC8v
IENoZWNrIHRoYXQgdGhlIGFwcGNhY2hlIGNvbnRyb2xzIHRoZSBmcmFtZS4KLSAgYXNzZXJ0X2Vx
dWFscyhhd2FpdCBjaGVja19pc19hcHBjYWNoZWQoZnJhbWUpLCB0cnVlLAotICAgICAgICAgICAg
ICAgICdBcHBDYWNoZSBzaG91bGQgYmUgcHJlc2VudCcpOwotCi0gIC8vIENoZWNrIHRoZSBjb250
cm9sbGVyIGFuZCB0ZXN0IHdpdGggZmV0Y2guCi0gIGFzc2VydF9lcXVhbHMoZnJhbWUuY29udGVu
dFdpbmRvdy5uYXZpZ2F0b3IuY29udHJvbGxlciwgdW5kZWZpbmVkLAotICAgICAgICAgICAgICAg
ICdTaG91bGQgaGF2ZSBubyBjb250cm9sbGVyLicpOwotICBhc3NlcnRfZXF1YWxzKGF3YWl0IGZl
dGNoX3RleHQoZnJhbWUpLCAndmFyIGlzX2FwcGNhY2hlZCA9IHRydWU7XG4nLAotICAgICAgICAg
ICAgICAgICdmZXRjaCgpIHNob3VsZCBub3QgYmUgaW50ZXJjZXB0ZWQuJyk7Ci0KLSAgLy8gUmVn
aXN0ZXIgYSBzZXJ2aWNlIHdvcmtlci4KLSAgbGV0IHJlZ2lzdHJhdGlvbiA9IGF3YWl0IHNlcnZp
Y2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHNjcmlwdCwgc2NvcGUpOwotICBj
b25zdCB3b3JrZXIgPSByZWdpc3RyYXRpb24uaW5zdGFsbGluZzsKLSAgYXdhaXQgd2FpdF9mb3Jf
c3RhdGUodCwgd29ya2VyLCAnYWN0aXZhdGVkJyk7Ci0KLSAgLy8gTGV0IHRoZSBzZXJ2aWNlIHdv
cmtlciBjbGFpbSB0aGUgaWZyYW1lLgotICBjb25zdCBjaGFubmVsID0gbmV3IE1lc3NhZ2VDaGFu
bmVsKCk7Ci0gIGNvbnN0IGNoZWNrX21lc3NhZ2UgPSBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHsK
LSAgICBjaGFubmVsLnBvcnQxLm9ubWVzc2FnZSA9IGFzeW5jIGUgPT4gewotICAgICAgYXNzZXJ0
X2VxdWFscyhlLmRhdGEsICdQQVNTJywgJ1dvcmtlciBjYWxsIHRvIGNsYWltKCkgc2hvdWxkIGZ1
bGZpbGwuJyk7Ci0gICAgICByZXNvbHZlKCk7Ci0gICAgfTsKLSAgfSk7Ci0gIHdvcmtlci5wb3N0
TWVzc2FnZSh7cG9ydDogY2hhbm5lbC5wb3J0Mn0sIFtjaGFubmVsLnBvcnQyXSk7Ci0gIGF3YWl0
IGNoZWNrX21lc3NhZ2U7Ci0KLSAgLy8gQ2hlY2sgdGhhdCB0aGUgYXBwY2FjaGUgZG9lcyBOT1Qg
Y29udHJvbCB0aGUgZnJhbWUuCi0gIGFzc2VydF9lcXVhbHMoYXdhaXQgY2hlY2tfaXNfYXBwY2Fj
aGVkKGZyYW1lKSwgZmFsc2UsCi0gICAgICAgICAgICAgICAgJ0FwcENhY2hlIHNob3VsZCBub3Qg
YmUgcHJlc2VudCcpOwotCi0gIC8vIENoZWNrIHRoZSBjb250cm9sbGVyIGFuZCB0ZXN0IHdpdGgg
ZmV0Y2guCi0gIHJlZ2lzdHJhdGlvbiA9IGF3YWl0Ci0gICAgZnJhbWUuY29udGVudFdpbmRvdy5u
YXZpZ2F0b3Iuc2VydmljZVdvcmtlci5nZXRSZWdpc3RyYXRpb24oc2NvcGUpOwotICBhc3NlcnRf
ZXF1YWxzKGZyYW1lLmNvbnRlbnRXaW5kb3cubmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuY29udHJv
bGxlciwKLSAgICAgICAgICAgICAgICByZWdpc3RyYXRpb24uYWN0aXZlLCAnaWZyYW1lIHNob3Vs
ZCBiZSBjbGFpbWVkLicpOwotICBhc3NlcnRfZXF1YWxzKGF3YWl0IGZldGNoX3RleHQoZnJhbWUp
LCAnSW50ZXJjZXB0ZWQhJywKLSAgICAgICAgICAgICAgICAnZmV0Y2goKSBzaG91bGQgYmUgaW50
ZXJjZXB0ZWQuJyk7Ci19LCAnZmV0Y2goKSBzaG91bGQgYmUgaW50ZXJjZXB0ZWQgYWZ0ZXIgdGhl
IGNsaWVudCBpcyBjbGFpbWVkLicpCi0KLTwvc2NyaXB0PgotPC9ib2R5PgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvY2xhaW0tZmV0Y2guaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL2NsYWltLWZldGNoLmh0dHBzLmh0bWwKaW5kZXggNDAwYjU5M2FjOTYxOTQyZjZlOTI3NGFl
ZTk4YmFjMjI4NTZlYWYyMi4uMDUwYzFlYTkyZWY2MGI4MjE1ZmFkOWNhYjUwNDY0NzI1NmFkNzI4
YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xhaW0tZmV0Y2guaHR0cHMuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGFpbS1mZXRjaC5odHRwcy5odG1sCkBAIC03LDgwICs3
LDYzIEBACiA8Ym9keT4KIDxzY3JpcHQ+CiAKLWFzeW5jIGZ1bmN0aW9uIHRyeV9mZXRjaChmZXRj
aF9mdW5jLCBwYXRoKSB7Ci0gIGxldCByZXNwb25zZTsKLSAgdHJ5IHsKLSAgIHJlc3BvbnNlID0g
YXdhaXQgZmV0Y2hfZnVuYyhwYXRoKTsKLSAgfSBjYXRjaCAoZXJyKSB7Ci0gICAgdGhyb3cgKGBm
ZXRjaCgpIHRocmV3OiAke2Vycn1gKTsKLSAgfQorcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsK
KyAgdmFyIGZyYW1lOworICB2YXIgcmVzb3VyY2UgPSAnc2ltcGxlLnR4dCc7CiAKLSAgbGV0IHJl
c3BvbnNlX3RleHQ7Ci0gIHRyeSB7Ci0gICByZXNwb25zZV90ZXh0ID0gYXdhaXQgcmVzcG9uc2Uu
dGV4dCgpOwotICB9IGNhdGNoIChlcnIpIHsKLSAgIHRocm93IChgdGV4dCgpIHRocmV3OiAke2Vy
cn1gKTsKLSAgfQorICB2YXIgd29ya2VyOworICB2YXIgc2NvcGUgPSAncmVzb3VyY2VzLyc7Cisg
IHZhciBzY3JpcHQgPSAncmVzb3VyY2VzL2NsYWltLXdvcmtlci5qcyc7CiAKLSAgcmV0dXJuIHJl
c3BvbnNlX3RleHQ7Ci19CisgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKQorICAgIC8vIENyZWF0
ZSB0aGUgdGVzdCBpZnJhbWUuCisgICAgLnRoZW4oKCkgPT4gd2l0aF9pZnJhbWUoJ3Jlc291cmNl
cy9ibGFuay5odG1sJykpCisgICAgLnRoZW4oZiA9PiBmcmFtZSA9IGYpCiAKLXByb21pc2VfdGVz
dChhc3luYyBmdW5jdGlvbih0KSB7Ci0gIGxldCBmcmFtZTsKLSAgY29uc3Qgc2NvcGUgPSAncmVz
b3VyY2VzLyc7Ci0gIGNvbnN0IHNjcmlwdCA9ICdyZXNvdXJjZXMvY2xhaW0td29ya2VyLmpzJzsK
LSAgdC5hZGRfY2xlYW51cChhc3luYyAoKSA9PiB7Ci0gICAgaWYgKGZyYW1lKQotICAgICAgZnJh
bWUucmVtb3ZlKCk7Ci0gICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXIodCwgc2Nv
cGUpOwotICB9KTsKKyAgICAvLyBDaGVjayB0aGUgY29udHJvbGxlciBhbmQgdGVzdCB3aXRoIGZl
dGNoLgorICAgIC50aGVuKCgpID0+IGFzc2VydF9lcXVhbHMoZnJhbWUuY29udGVudFdpbmRvdy5u
YXZpZ2F0b3IuY29udHJvbGxlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuZGVm
aW5lZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdTaG91bGQgaGF2ZSBubyBjb250
cm9sbGVyLicpKQorICAgIC50aGVuKCgpID0+IGZyYW1lLmNvbnRlbnRXaW5kb3cuZmV0Y2gocmVz
b3VyY2UpKQorICAgIC50aGVuKHJlc3BvbnNlID0+IHJlc3BvbnNlLnRleHQoKSkKKyAgICAudGhl
bihyZXNwb25zZV90ZXh0ID0+IGFzc2VydF9lcXVhbHMocmVzcG9uc2VfdGV4dCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Egc2ltcGxlIHRleHQgZmlsZVxuJywK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ZldGNoKCkgc2hvdWxk
IG5vdCBiZSBpbnRlcmNlcHRlZC4nKSkKIAotICBjb25zdCByZXNvdXJjZSA9ICdzaW1wbGUudHh0
JzsKKyAgICAvLyBSZWdpc3RlciBhIHNlcnZpY2Ugd29ya2VyLgorICAgIC50aGVuKCgpID0+IHNl
cnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHNjcmlwdCwgc2NvcGUpKQor
ICAgIC50aGVuKHIgPT4gd29ya2VyID0gci5pbnN0YWxsaW5nKQorICAgIC50aGVuKCgpID0+IHdh
aXRfZm9yX3N0YXRlKHQsIHdvcmtlciwgJ2FjdGl2YXRlZCcpKQogCi0gIC8vIENyZWF0ZSB0aGUg
dGVzdCBmcmFtZS4KLSAgYXdhaXQgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcih0LCBzY29wZSk7
Ci0gIGZyYW1lID0gYXdhaXQgd2l0aF9pZnJhbWUoJ3Jlc291cmNlcy9ibGFuay5odG1sJyk7Cisg
ICAgLy8gTGV0IHRoZSBzZXJ2aWNlIHdvcmtlciBjbGFpbSB0aGUgaWZyYW1lLgorICAgIC50aGVu
KCgpID0+IHsKKyAgICAgIHZhciBjaGFubmVsID0gbmV3IE1lc3NhZ2VDaGFubmVsKCk7CisgICAg
ICB2YXIgc2F3X21lc3NhZ2UgPSBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlKSB7CisgICAg
ICAgIGNoYW5uZWwucG9ydDEub25tZXNzYWdlID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewor
ICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS5kYXRhLCAnUEFTUycsCisgICAgICAgICAgICAgICAg
ICAgICAgICAnV29ya2VyIGNhbGwgdG8gY2xhaW0oKSBzaG91bGQgZnVsZmlsbC4nKTsKKyAgICAg
ICAgICByZXNvbHZlKCk7CisgICAgICAgIH0pOworICAgICAgfSk7CisgICAgICB3b3JrZXIucG9z
dE1lc3NhZ2Uoe3BvcnQ6IGNoYW5uZWwucG9ydDJ9LCBbY2hhbm5lbC5wb3J0Ml0pOworICAgICAg
cmV0dXJuIHNhd19tZXNzYWdlOworICAgIH0pCiAKLSAgLy8gQ2hlY2sgdGhlIGNvbnRyb2xsZXIg
YW5kIHRlc3Qgd2l0aCBmZXRjaC4KLSAgYXNzZXJ0X2VxdWFscyhmcmFtZS5jb250ZW50V2luZG93
Lm5hdmlnYXRvci5jb250cm9sbGVyLCB1bmRlZmluZWQsCi0gICAgICAgICAgICAgICAgJ1Nob3Vs
ZCBoYXZlIG5vIGNvbnRyb2xsZXIuJyk7Ci0gIGxldCByZXNwb25zZTsKLSAgdHJ5IHsKLSAgICBy
ZXNwb25zZSA9IGF3YWl0IHRyeV9mZXRjaChmcmFtZS5jb250ZW50V2luZG93LmZldGNoLCByZXNv
dXJjZSk7Ci0gIH0gY2F0Y2ggKGVycikgewotICAgIGFzc2VydF91bnJlYWNoZWQoYHVuY29udHJv
bGxlZCBmZXRjaCBmYWlsZWQ6ICR7ZXJyfWApOwotICB9Ci0gIGFzc2VydF9lcXVhbHMocmVzcG9u
c2UsICdhIHNpbXBsZSB0ZXh0IGZpbGVcbicsCi0gICAgICAgICAgICAgICAgJ2ZldGNoKCkgc2hv
dWxkIG5vdCBiZSBpbnRlcmNlcHRlZC4nKTsKKyAgICAvLyBDaGVjayB0aGUgY29udHJvbGxlciBh
bmQgdGVzdCB3aXRoIGZldGNoLgorICAgIC50aGVuKCgpID0+IGZyYW1lLmNvbnRlbnRXaW5kb3cu
bmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuZ2V0UmVnaXN0cmF0aW9uKHNjb3BlKSkKKyAgICAudGhl
bihyID0+IGFzc2VydF9lcXVhbHMoZnJhbWUuY29udGVudFdpbmRvdy5uYXZpZ2F0b3Iuc2Vydmlj
ZVdvcmtlci5jb250cm9sbGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICByLmFjdGl2
ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1Rlc3QgaWZyYW1lIHNob3VsZCBiZSBj
bGFpbWVkLicpKQorICAgIC50aGVuKCgpID0+IGZyYW1lLmNvbnRlbnRXaW5kb3cuZmV0Y2gocmVz
b3VyY2UpKQorICAgIC50aGVuKHJlc3BvbnNlID0+IHJlc3BvbnNlLnRleHQoKSkKKyAgICAudGhl
bihyZXNwb25zZV90ZXh0ID0+IGFzc2VydF9lcXVhbHMocmVzcG9uc2VfdGV4dCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0ludGVyY2VwdGVkIScsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmZXRjaCgpIHNob3VsZCBiZSBpbnRl
cmNlcHRlZC4nKSkKIAotICAvLyBSZWdpc3RlciBhIHNlcnZpY2Ugd29ya2VyLgotICBjb25zdCBy
ZWdpc3RyYXRpb24gPSBhd2FpdCBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3RlcihzY3Jp
cHQsIHtzY29wZX0pOwotICBjb25zdCB3b3JrZXIgPSByZWdpc3RyYXRpb24uaW5zdGFsbGluZzsK
LSAgYXdhaXQgd2FpdF9mb3Jfc3RhdGUodCwgd29ya2VyLCAnYWN0aXZhdGVkJyk7Ci0KLSAgLy8g
VGVsbCB0aGUgc2VydmljZSB3b3JrZXIgdG8gY2xhaW0gdGhlIGlmcmFtZS4KLSAgY29uc3Qgc2F3
X21lc3NhZ2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gewotICAgIGNvbnN0IGNoYW5uZWwg
PSBuZXcgTWVzc2FnZUNoYW5uZWwoKTsKLSAgICBjaGFubmVsLnBvcnQxLm9ubWVzc2FnZSA9IHQu
c3RlcF9mdW5jKChldmVudCkgPT4gewotICAgICAgcmVzb2x2ZShldmVudC5kYXRhKTsKLSAgICB9
KTsKLSAgICB3b3JrZXIucG9zdE1lc3NhZ2Uoe3BvcnQ6IGNoYW5uZWwucG9ydDJ9LCBbY2hhbm5l
bC5wb3J0Ml0pOwotICB9KTsKLSAgY29uc3QgZGF0YSA9IGF3YWl0IHNhd19tZXNzYWdlOwotICBh
c3NlcnRfZXF1YWxzKGRhdGEsICdQQVNTJywgJ1dvcmtlciBjYWxsIHRvIGNsYWltKCkgc2hvdWxk
IGZ1bGZpbGwuJyk7Ci0KLSAgLy8gQ2hlY2sgdGhlIGNvbnRyb2xsZXIgYW5kIHRlc3Qgd2l0aCBm
ZXRjaC4KLSAgY29uc3QgY29udHJvbGxlciA9IGZyYW1lLmNvbnRlbnRXaW5kb3cubmF2aWdhdG9y
LnNlcnZpY2VXb3JrZXIuY29udHJvbGxlcjsKLSAgYXNzZXJ0X3RydWUoY29udHJvbGxlciBpbnN0
YW5jZW9mIGZyYW1lLmNvbnRlbnRXaW5kb3cuU2VydmljZVdvcmtlciwKLSAgICAgICAgICAgICAg
J2lmcmFtZSBzaG91bGQgYmUgY29udHJvbGxlZC4nKTsKLSAgdHJ5IHsKLSAgICByZXNwb25zZSA9
IGF3YWl0IHRyeV9mZXRjaChmcmFtZS5jb250ZW50V2luZG93LmZldGNoLCByZXNvdXJjZSk7Ci0g
IH0gY2F0Y2ggKGVycikgewotICAgIGFzc2VydF91bnJlYWNoZWQoYGNvbnRyb2xsZWQgZmV0Y2gg
ZmFpbGVkOiAke2Vycn1gKTsKLSAgfQotICBhc3NlcnRfZXF1YWxzKHJlc3BvbnNlLCAnSW50ZXJj
ZXB0ZWQhJywKLSAgICAgICAgICAgICAgICAnZmV0Y2goKSBzaG91bGQgYmUgaW50ZXJjZXB0ZWQu
Jyk7Ci19LCAnZmV0Y2goKSBzaG91bGQgYmUgaW50ZXJjZXB0ZWQgYWZ0ZXIgdGhlIGNsaWVudCBp
cyBjbGFpbWVkLicpOworICAgIC8vIENsZWFudXAgdGhpcyB0ZXN0Y2FzZS4KKyAgICAudGhlbigo
KSA9PiBmcmFtZS5yZW1vdmUoKSkKKyAgICAudGhlbigoKSA9PiBzZXJ2aWNlX3dvcmtlcl91bnJl
Z2lzdGVyX2FuZF9kb25lKHQsIHNjb3BlKSk7Cit9LCAnZmV0Y2goKSBzaG91bGQgYmUgaW50ZXJj
ZXB0ZWQgYWZ0ZXIgdGhlIGNsaWVudCBpcyBjbGFpbWVkLicpCiAKIDwvc2NyaXB0PgogPC9ib2R5
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xhaW0tbm90LXVzaW5nLXJlZ2lzdHJh
dGlvbi5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xhaW0tbm90LXVzaW5nLXJlZ2lz
dHJhdGlvbi5odHRwcy5odG1sCmluZGV4IGZkNjFkMDViYTRlYThhMWM0MTZlYjZkNGIxMTI4Zjdi
NjViNGIzNWMuLjExMzhiNzQxOWNmYWE3OGQ5OWYxMTQxOTZmYjY4NzBhZmRmOGJkNjcgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsYWltLW5vdC11c2luZy1yZWdpc3RyYXRpb24uaHR0
cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGFpbS1ub3QtdXNpbmctcmVnaXN0cmF0
aW9uLmh0dHBzLmh0bWwKQEAgLTE1LDEwICsxNSw2IEBAIHByb21pc2VfdGVzdChmdW5jdGlvbih0
KSB7CiAgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKAog
ICAgICAgICB0LCBpbml0X3dvcmtlcl91cmwsIGluaXRfc2NvcGUpCiAgICAgICAudGhlbihmdW5j
dGlvbihyZWdpc3RyYXRpb24pIHsKLSAgICAgICAgICB0LmFkZF9jbGVhbnVwKGZ1bmN0aW9uKCkg
ewotICAgICAgICAgICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcih0LCBpbml0
X3Njb3BlKTsKLSAgICAgICAgICAgIH0pOwotCiAgICAgICAgICAgcmV0dXJuIHdhaXRfZm9yX3N0
YXRlKHQsIHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7CiAgICAgICAgIH0p
CiAgICAgICAudGhlbihmdW5jdGlvbigpIHsKQEAgLTM5LDEwICszNSw2IEBAIHByb21pc2VfdGVz
dChmdW5jdGlvbih0KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHtzY29wZTogY2xhaW1fc2NvcGV9KTsKICAgICAgICAgfSkKICAgICAgIC50aGVu
KGZ1bmN0aW9uKHJlZ2lzdHJhdGlvbikgewotICAgICAgICAgIHQuYWRkX2NsZWFudXAoZnVuY3Rp
b24oKSB7Ci0gICAgICAgICAgICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyKHQs
IGNsYWltX3Njb3BlKTsKLSAgICAgICAgICAgIH0pOwotCiAgICAgICAgICAgY2xhaW1fd29ya2Vy
ID0gcmVnaXN0cmF0aW9uLmluc3RhbGxpbmc7CiAgICAgICAgICAgY2xhaW1fcmVnaXN0cmF0aW9u
ID0gcmVnaXN0cmF0aW9uOwogICAgICAgICAgIHJldHVybiB3YWl0X2Zvcl9zdGF0ZSh0LCByZWdp
c3RyYXRpb24uaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOwpAQCAtNzUsNiArNjcsOSBAQCBwcm9t
aXNlX3Rlc3QoZnVuY3Rpb24odCkgewogICAgICAgICAgIGZyYW1lMS5yZW1vdmUoKTsKICAgICAg
ICAgICBmcmFtZTIucmVtb3ZlKCk7CiAgICAgICAgICAgcmV0dXJuIGNsYWltX3JlZ2lzdHJhdGlv
bi51bnJlZ2lzdGVyKCk7CisgICAgICAgIH0pCisgICAgICAudGhlbihmdW5jdGlvbigpIHsKKyAg
ICAgICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfZG9uZSh0LCBpbml0
X3Njb3BlKTsKICAgICAgICAgfSk7CiAgIH0sICdUZXN0IGNsYWltIGNsaWVudCB3aGljaCBpcyBu
b3QgdXNpbmcgcmVnaXN0cmF0aW9uJyk7CiAKQEAgLTkxLDEwICs4Niw2IEBAIHByb21pc2VfdGVz
dChmdW5jdGlvbih0KSB7CiAgICAgICAgICAgICAgIGNsYWltX3dvcmtlcl91cmwsIHtzY29wZTog
Y2xhaW1fc2NvcGV9KTsKICAgICAgICAgfSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKHJlZ2lzdHJh
dGlvbikgewotICAgICAgICAgIHQuYWRkX2NsZWFudXAoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAg
ICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyKHQsIGNsYWltX3Njb3BlKTsKLSAg
ICAgICAgICAgIH0pOwotCiAgICAgICAgICAgY2xhaW1fd29ya2VyID0gcmVnaXN0cmF0aW9uLmlu
c3RhbGxpbmc7CiAgICAgICAgICAgcmV0dXJuIHdhaXRfZm9yX3N0YXRlKHQsIHJlZ2lzdHJhdGlv
bi5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7CiAgICAgICAgIH0pCkBAIC0xMDMsMTAgKzk0LDYg
QEAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICAgICAgICAgICAgaW5zdGFsbGluZ193
b3JrZXJfdXJsLCB7c2NvcGU6IHNjb3BlfSk7CiAgICAgICAgIH0pCiAgICAgICAudGhlbihmdW5j
dGlvbigpIHsKLSAgICAgICAgICB0LmFkZF9jbGVhbnVwKGZ1bmN0aW9uKCkgewotICAgICAgICAg
ICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcih0LCBzY29wZSk7Ci0gICAgICAg
ICAgICB9KTsKLQogICAgICAgICAgIHZhciBjaGFubmVsID0gbmV3IE1lc3NhZ2VDaGFubmVsKCk7
CiAgICAgICAgICAgdmFyIHNhd19tZXNzYWdlID0gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2
ZSkgewogICAgICAgICAgICAgICBjaGFubmVsLnBvcnQxLm9ubWVzc2FnZSA9IHQuc3RlcF9mdW5j
KGZ1bmN0aW9uKGUpIHsKQEAgLTEyNCw2ICsxMTEsMTAgQEAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9u
KHQpIHsKICAgICAgICAgICAgICAgJ0ZyYW1lIHNob3VsZCBub3QgYmUgY2xhaW1lZCB3aGVuIGEg
bG9uZ2VyLW1hdGNoZWQgJyArCiAgICAgICAgICAgICAgICdyZWdpc3RyYXRpb24gZXhpc3RzJyk7
CiAgICAgICAgICAgZnJhbWUucmVtb3ZlKCk7CisgICAgICAgICAgcmV0dXJuIHNlcnZpY2Vfd29y
a2VyX3VucmVnaXN0ZXIodCwgY2xhaW1fc2NvcGUpOworICAgICAgICB9KQorICAgICAgLnRoZW4o
ZnVuY3Rpb24oKSB7CisgICAgICAgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJf
YW5kX2RvbmUodCwgc2NvcGUpOwogICAgICAgICB9KTsKICAgfSwgJ1Rlc3QgY2xhaW0gY2xpZW50
IHdoZW4gdGhlcmVcJ3MgYSBsb25nZXItbWF0Y2hlZCByZWdpc3RyYXRpb24gbm90ICcgKwogICAg
ICAnYWxyZWFkeSB1c2VkIGJ5IHRoZSBwYWdlJyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9jbGFpbS1zaGFyZWQtd29ya2VyLWZldGNoLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9jbGFpbS1zaGFyZWQtd29ya2VyLWZldGNoLmh0dHBzLmh0bWwKaW5kZXggZjVmNDQ4ODZi
YWEyYmZmM2JjN2I3ZTAxM2E4NTZhNmQ5MGNlYjI2Yy4uYTA3ZGI3Yjc1YzdhNGMyOWU5Y2U3NTYx
NTJjZDBkNGUyNjllODkxMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xhaW0tc2hh
cmVkLXdvcmtlci1mZXRjaC5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsYWlt
LXNoYXJlZC13b3JrZXItZmV0Y2guaHR0cHMuaHRtbApAQCAtMzAsMTMgKzMwLDkgQEAgcHJvbWlz
ZV90ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgJ2ZldGNoKCkgc2hvdWxkIG5vdCBiZSBpbnRlcmNlcHRlZC4nKSkKICAgICAvLyBSZWdp
c3RlciBhIHNlcnZpY2Ugd29ya2VyLgogICAgIC50aGVuKCgpID0+IHNlcnZpY2Vfd29ya2VyX3Vu
cmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHNjcmlwdCwgc2NvcGUpKQotICAgIC50aGVuKHIgPT4g
ewotICAgICAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXIo
dCwgc2NvcGUpKTsKKyAgICAudGhlbihyID0+IHdvcmtlciA9IHIuaW5zdGFsbGluZykKKyAgICAu
dGhlbigoKSA9PiB3YWl0X2Zvcl9zdGF0ZSh0LCB3b3JrZXIsICdhY3RpdmF0ZWQnKSkKIAotICAg
ICAgICB3b3JrZXIgPSByLmluc3RhbGxpbmc7Ci0KLSAgICAgICAgcmV0dXJuIHdhaXRfZm9yX3N0
YXRlKHQsIHdvcmtlciwgJ2FjdGl2YXRlZCcpCi0gICAgICB9KQogICAgIC8vIExldCB0aGUgc2Vy
dmljZSB3b3JrZXIgY2xhaW0gdGhlIGlmcmFtZSBhbmQgdGhlIHNoYXJlZCB3b3JrZXIuCiAgICAg
LnRoZW4oKCkgPT4gewogICAgICAgdmFyIGNoYW5uZWwgPSBuZXcgTWVzc2FnZUNoYW5uZWwoKTsK
QEAgLTY0LDcgKzYwLDggQEAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICAgICAgICAg
ICAgICAgICAgICAgICdmZXRjaCgpIGluIHRoZSBzaGFyZWQgd29ya2VyIHNob3VsZCBiZSBpbnRl
cmNlcHRlZC4nKSkKIAogICAgIC8vIENsZWFudXAgdGhpcyB0ZXN0Y2FzZS4KLSAgICAudGhlbigo
KSA9PiBmcmFtZS5yZW1vdmUoKSk7CisgICAgLnRoZW4oKCkgPT4gZnJhbWUucmVtb3ZlKCkpCisg
ICAgLnRoZW4oKCkgPT4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfZG9uZSh0LCBzY29w
ZSkpOwogfSwgJ2ZldGNoKCkgaW4gU2hhcmVkV29ya2VyIHNob3VsZCBiZSBpbnRlcmNlcHRlZCBh
ZnRlciB0aGUgY2xpZW50IGlzIGNsYWltZWQuJykKIAogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci9jbGFpbS11c2luZy1yZWdpc3RyYXRpb24uaHR0cHMuaHRtbCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL2NsYWltLXVzaW5nLXJlZ2lzdHJhdGlvbi5odHRwcy5odG1sCmluZGV4
IDhhMmE2ZmYyNWM4MmQ4ZDZkZTI2Y2NhNTIxZGE5OWY4ZWY2ZDVmYmYuLjdkNzdkMzg0ODM3ZDNj
NDEyNzhiZWE2ZjQxNGE2NzE5ZTgwZGM1MjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L2NsYWltLXVzaW5nLXJlZ2lzdHJhdGlvbi5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL2NsYWltLXVzaW5nLXJlZ2lzdHJhdGlvbi5odHRwcy5odG1sCkBAIC0xMywxMCArMTMsNiBA
QCBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewogICAgIHZhciB3b3JrZXIsIHN3X3JlZ2lzdHJh
dGlvbiwgZnJhbWU7CiAgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3Jl
Z2lzdGVyKHQsIHVybDEsIHNjb3BlKQogICAgICAgLnRoZW4oZnVuY3Rpb24ocmVnaXN0cmF0aW9u
KSB7Ci0gICAgICAgICAgdC5hZGRfY2xlYW51cChmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAg
cmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXIodCwgc2NvcGUpOwotICAgICAgICAgICAg
fSk7Ci0KICAgICAgICAgICByZXR1cm4gd2FpdF9mb3Jfc3RhdGUodCwgcmVnaXN0cmF0aW9uLmlu
c3RhbGxpbmcsICdhY3RpdmF0ZWQnKTsKICAgICAgICAgfSkKICAgICAgIC50aGVuKGZ1bmN0aW9u
KCkgewpAQCAtNTQsNiArNTAsOSBAQCBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewogICAgICAg
ICAgICAgICAnRnJhbWUxIGNvbnRyb2xsZXIgc2NyaXB0VVJMIHNob3VsZCBiZSBjaGFuZ2VkIHRv
IHVybDInKTsKICAgICAgICAgICBmcmFtZS5yZW1vdmUoKTsKICAgICAgICAgICByZXR1cm4gc3df
cmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIoKTsKKyAgICAgICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0
aW9uKCkgeworICAgICAgICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9k
b25lKHQsIHNjb3BlKTsKICAgICAgICAgfSk7CiAgIH0sICdUZXN0IHdvcmtlciBjbGFpbXMgY2xp
ZW50IHdoaWNoIGlzIHVzaW5nIGFub3RoZXIgcmVnaXN0cmF0aW9uJyk7CiAKQEAgLTY0LDEwICs2
Myw2IEBAIHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7CiAgICAgdmFyIGZyYW1lLCB3b3JrZXI7
CiAgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHVy
bDEsIHNjb3BlKQogICAgICAgLnRoZW4oZnVuY3Rpb24ocmVnaXN0cmF0aW9uKSB7Ci0gICAgICAg
ICAgdC5hZGRfY2xlYW51cChmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgcmV0dXJuIHNlcnZp
Y2Vfd29ya2VyX3VucmVnaXN0ZXIodCwgc2NvcGUpOwotICAgICAgICAgICAgfSk7Ci0KICAgICAg
ICAgICByZXR1cm4gd2FpdF9mb3Jfc3RhdGUodCwgcmVnaXN0cmF0aW9uLmluc3RhbGxpbmcsICdh
Y3RpdmF0ZWQnKTsKICAgICAgICAgfSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKCkgewpAQCAtOTYs
NiArOTEsNyBAQCBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewogICAgICAgICB9KQogICAgICAg
LnRoZW4oZnVuY3Rpb24oKSB7CiAgICAgICAgICAgZnJhbWUucmVtb3ZlKCk7CisgICAgICAgICAg
cmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX2RvbmUodCwgc2NvcGUpOwogICAg
ICAgICB9KTsKICAgfSwgJ1Rlc3QgZm9yIHRoZSB3YWl0aW5nIHdvcmtlciBjbGFpbXMgYSBjbGll
bnQgd2hpY2ggaXMgdXNpbmcgdGhlIHRoZSAnICsKICAgICAgJ3NhbWUgcmVnaXN0cmF0aW9uJyk7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGFpbS13b3JrZXItZmV0Y2guaHR0cHMt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xhaW0td29ya2VyLWZldGNoLmh0dHBz
LWV4cGVjdGVkLnR4dAppbmRleCA3YzI1ZGEwZWIwNTA3MzNkYjk0YTA4YzMyZTNhM2I4NjJkNTlh
MzZlLi42NDBhNGIxMjI3NDU1NGE2MjY4ODE2OTk2NmE1YzA0NGQ0M2VkYTdiIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9jbGFpbS13b3JrZXItZmV0Y2guaHR0cHMtZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsYWltLXdvcmtlci1mZXRjaC5odHRwcy1leHBlY3Rl
ZC50eHQKQEAgLTEsMyArMSw0IEBACisgCiAKIFBBU1MgZmV0Y2goKSBpbiBXb3JrZXIgc2hvdWxk
IGJlIGludGVyY2VwdGVkIGFmdGVyIHRoZSBjbGllbnQgaXMgY2xhaW1lZC4gCiBGQUlMIGZldGNo
KCkgaW4gbmVzdGVkIFdvcmtlciBzaG91bGQgYmUgaW50ZXJjZXB0ZWQgYWZ0ZXIgdGhlIGNsaWVu
dCBpcyBjbGFpbWVkLiBhc3NlcnRfZXF1YWxzOiBmZXRjaCgpIHNob3VsZCBub3QgYmUgaW50ZXJj
ZXB0ZWQuIGV4cGVjdGVkICJhIHNpbXBsZSB0ZXh0IGZpbGVcbiIgYnV0IGdvdCAiRmFpbDogdW5k
ZWZpbmVkIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xhaW0td29ya2VyLWZldGNo
Lmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGFpbS13b3JrZXItZmV0Y2guaHR0cHMu
aHRtbAppbmRleCA0YjQ5YTgxNTJhNDJjOWU0NTEwNDEzOWI0NmI5ZmE1Njc2MmRlNmJiLi5jMmMy
NTRjYTY1YzM2YWVhOTQyYThhNzdiZDYzMGYyYTY2ZGNmOTgyIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9jbGFpbS13b3JrZXItZmV0Y2guaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9jbGFpbS13b3JrZXItZmV0Y2guaHR0cHMuaHRtbApAQCAtMTUsMjIgKzE1LDIwIEBA
IHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7CiAgIHJldHVybiBydW5UZXN0KHQsICdyZXNvdXJj
ZXMvY2xhaW0tbmVzdGVkLXdvcmtlci1mZXRjaC1pZnJhbWUuaHRtbCcpOwogfSwgJ2ZldGNoKCkg
aW4gbmVzdGVkIFdvcmtlciBzaG91bGQgYmUgaW50ZXJjZXB0ZWQgYWZ0ZXIgdGhlIGNsaWVudCBp
cyBjbGFpbWVkLicpOwogCit2YXIgZnJhbWU7Cit2YXIgcmVnaXN0cmF0aW9uOworCiBmdW5jdGlv
biBydW5UZXN0KHQsIGlmcmFtZV91cmwpIHsKICAgdmFyIHJlc291cmNlID0gJ3NpbXBsZS50eHQn
OwogCi0gIHZhciBmcmFtZTsKLSAgdmFyIHJlZ2lzdHJhdGlvbjsKICAgdmFyIHdvcmtlcjsKICAg
dmFyIHNjb3BlID0gJ3Jlc291cmNlcy8nOwogICB2YXIgc2NyaXB0ID0gJ3Jlc291cmNlcy9jbGFp
bS13b3JrZXIuanMnOwogCi0gIHJldHVybiBQcm9taXNlLnJlc29sdmUoKQorICBjb25zdCB0ZXN0
X3Jlc3VsdCA9IFByb21pc2UucmVzb2x2ZSgpCiAgICAgLy8gQ3JlYXRlIHRoZSB0ZXN0IGlmcmFt
ZSB3aXRoIGEgZGVkaWNhdGVkIHdvcmtlci4KICAgICAudGhlbigoKSA9PiB3aXRoX2lmcmFtZShp
ZnJhbWVfdXJsKSkKLSAgICAudGhlbihmID0+IHsKLSAgICAgIHQuYWRkX2NsZWFudXAoKCkgPT4g
Zi5yZW1vdmUoKSk7Ci0gICAgICBmcmFtZSA9IGY7Ci0gICAgfSkKKyAgICAudGhlbihmID0+IGZy
YW1lID0gZikKIAogICAgIC8vIENoZWNrIHRoZSBjb250cm9sbGVyIGFuZCB0ZXN0IHdpdGggZmV0
Y2ggaW4gdGhlIHdvcmtlci4KICAgICAudGhlbigoKSA9PiBhc3NlcnRfZXF1YWxzKGZyYW1lLmNv
bnRlbnRXaW5kb3cubmF2aWdhdG9yLmNvbnRyb2xsZXIsCkBAIC00MiwxMCArNDAsNyBAQCBmdW5j
dGlvbiBydW5UZXN0KHQsIGlmcmFtZV91cmwpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgJ2ZldGNoKCkgc2hvdWxkIG5vdCBiZSBpbnRlcmNlcHRlZC4nKSkKICAg
ICAvLyBSZWdpc3RlciBhIHNlcnZpY2Ugd29ya2VyLgogICAgIC50aGVuKCgpID0+IHNlcnZpY2Vf
d29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHNjcmlwdCwgc2NvcGUpKQotICAgIC50
aGVuKHIgPT4gewotICAgICAgdC5hZGRfY2xlYW51cCgoKSA9PiByLnVucmVnaXN0ZXIoKSk7Ci0g
ICAgICB3b3JrZXIgPSByLmluc3RhbGxpbmc7Ci0gICAgfSkKKyAgICAudGhlbihyID0+IHdvcmtl
ciA9IHIuaW5zdGFsbGluZykKICAgICAudGhlbigoKSA9PiB3YWl0X2Zvcl9zdGF0ZSh0LCB3b3Jr
ZXIsICdhY3RpdmF0ZWQnKSkKIAogICAgIC8vIExldCB0aGUgc2VydmljZSB3b3JrZXIgY2xhaW0g
dGhlIGlmcmFtZSBhbmQgdGhlIHdvcmtlci4KQEAgLTc0LDYgKzY5LDE4IEBAIGZ1bmN0aW9uIHJ1
blRlc3QodCwgaWZyYW1lX3VybCkgewogICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVzcG9uc2Vf
dGV4dCwKICAgICAgICAgICAgICAgICAgICAgICAgICdJbnRlcmNlcHRlZCEnLAogICAgICAgICAg
ICAgICAgICAgICAgICAgJ2ZldGNoKCkgaW4gdGhlIHdvcmtlciBzaG91bGQgYmUgaW50ZXJjZXB0
ZWQuJykpOworCisgICAgLy8gQ2xlYW51cCB0aGlzIHRlc3RjYXNlLgorICAgIHJldHVybiBQcm9t
aXNlLnJlc29sdmUoKQorICAgICAgICAudGhlbihjbGVhbnVwLCBjbGVhbnVwKQorICAgICAgICAu
dGhlbigoKSA9PiB7IHJldHVybiB0ZXN0X3Jlc3VsdDsgfSk7Cit9CisKK2NvbnN0IGNsZWFudXAg
PSBhc3luYyAoKSA9PiB7CisgIGlmIChyZWdpc3RyYXRpb24pCisgICAgYXdhaXQgcmVnaXN0cmF0
aW9uLnVucmVnaXN0ZXIoKTsKKyAgaWYgKGZyYW1lKQorICAgIGZyYW1lLnJlbW92ZSgpOwogfQog
CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsaWVudC1pZC5odHRw
cy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xpZW50LWlkLmh0dHBzLmh0bWwKaW5kZXggYjkz
YjM0MTg5OTk5ZmUzN2Q4OWQyN2ZiYTFkNDQwMDk5NGIyNzZjYi4uYTUzYzEwYzk2OTE5MTkwNGI0
MjE0N2JiNTg3MWVlNzk3YjA4YjM2MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xp
ZW50LWlkLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xpZW50LWlkLmh0dHBz
Lmh0bWwKQEAgLTQsMTcgKzQsMTUgQEAKIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGVzdC1oZWxw
ZXJzLnN1Yi5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgordmFyIHRlc3Q7CiB2YXIgc2NvcGUgPSAn
cmVzb3VyY2VzL2JsYW5rLmh0bWw/Y2xpZW50LWlkJzsKIHZhciBmcmFtZTEsIGZyYW1lMjsKIAot
cHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKLSAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5y
ZWdpc3Rlcl9hbmRfcmVnaXN0ZXIoCithc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgICB0ZXN0
ID0gdDsKKyAgICBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3RlcigKICAgICAg
ICAgdCwgJ3Jlc291cmNlcy9jbGllbnQtaWQtd29ya2VyLmpzJywgc2NvcGUpCiAgICAgICAudGhl
bihmdW5jdGlvbihyZWdpc3RyYXRpb24pIHsKLSAgICAgICAgICB0LmFkZF9jbGVhbnVwKGZ1bmN0
aW9uKCkgewotICAgICAgICAgICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcih0
LCBzY29wZSk7Ci0gICAgICAgICAgICB9KTsKLQogICAgICAgICAgIHJldHVybiB3YWl0X2Zvcl9z
dGF0ZSh0LCByZWdpc3RyYXRpb24uaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOwogICAgICAgICB9
KQogICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7IHJldHVybiB3aXRoX2lmcmFtZShzY29wZSArICcj
MScpOyB9KQpAQCAtMjcsMTUgKzI1LDExIEBAIHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7CiAg
ICAgICAudGhlbihmdW5jdGlvbihmKSB7CiAgICAgICAgICAgZnJhbWUyID0gZjsKICAgICAgICAg
ICB2YXIgY2hhbm5lbCA9IG5ldyBNZXNzYWdlQ2hhbm5lbCgpOwotCi0gICAgICAgICAgcmV0dXJu
IG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgewotICAgICAgICAgICAgICBj
aGFubmVsLnBvcnQxLm9ubWVzc2FnZSA9IHJlc29sdmU7Ci0gICAgICAgICAgICAgIGNoYW5uZWwu
cG9ydDEub25tZXNzYWdlZXJyb3IgPSByZWplY3Q7Ci0gICAgICAgICAgICAgIGYuY29udGVudFdp
bmRvdy5uYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5jb250cm9sbGVyLnBvc3RNZXNzYWdlKAotICAg
ICAgICAgICAgICAgICAge3BvcnQ6Y2hhbm5lbC5wb3J0Mn0sIFtjaGFubmVsLnBvcnQyXSk7Ci0g
ICAgICAgICAgICB9KTsKKyAgICAgICAgICBjaGFubmVsLnBvcnQxLm9ubWVzc2FnZSA9IHQuc3Rl
cF9mdW5jKG9uX21lc3NhZ2UpOworICAgICAgICAgIGYuY29udGVudFdpbmRvdy5uYXZpZ2F0b3Iu
c2VydmljZVdvcmtlci5jb250cm9sbGVyLnBvc3RNZXNzYWdlKAorICAgICAgICAgICAgICB7cG9y
dDpjaGFubmVsLnBvcnQyfSwgW2NoYW5uZWwucG9ydDJdKTsKICAgICAgICAgfSkKLSAgICAgIC50
aGVuKG9uX21lc3NhZ2UpOworICAgICAgLmNhdGNoKHVucmVhY2hlZF9yZWplY3Rpb24odCkpOwog
ICB9LCAnQ2xpZW50LmlkIHJldHVybnMgdGhlIGNsaWVudFwncyBJRC4nKTsKIAogZnVuY3Rpb24g
b25fbWVzc2FnZShlKSB7CkBAIC01Niw1ICs1MCw2IEBAIGZ1bmN0aW9uIG9uX21lc3NhZ2UoZSkg
ewogICBhc3NlcnRfZXF1YWxzKGUuZGF0YVsxXSwgZS5kYXRhWzNdKTsKICAgZnJhbWUxLnJlbW92
ZSgpOwogICBmcmFtZTIucmVtb3ZlKCk7CisgIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5k
X2RvbmUodGVzdCwgc2NvcGUpOwogfQogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9jbGllbnRzLWdldC1jbGllbnQtdHlwZXMuaHR0cHMuaHRtbCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL2NsaWVudHMtZ2V0LWNsaWVudC10eXBlcy5odHRwcy5odG1sCmluZGV4IDYzZTNlNTFi
MzIwMmRlOTI3ZDg5ODMzYjMxMDM1NzkyMzY5YWVjMzkuLjg5N2UzNjg5ZWQzNGYxZjJhYmFmZmZi
NmU0YTZlNDc0MDhiZDFmMDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsaWVudHMt
Z2V0LWNsaWVudC10eXBlcy5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsaWVu
dHMtZ2V0LWNsaWVudC10eXBlcy5odHRwcy5odG1sCkBAIC05LDEzICs5LDExIEBAIHZhciBmcmFt
ZV91cmwgPSBzY29wZSArICctZnJhbWUuaHRtbCc7CiB2YXIgc2hhcmVkX3dvcmtlcl91cmwgPSBz
Y29wZSArICctc2hhcmVkLXdvcmtlci5qcyc7CiB2YXIgd29ya2VyX3VybCA9IHNjb3BlICsgJy13
b3JrZXIuanMnOwogdmFyIGNsaWVudF9pZHMgPSBbXTsKLXZhciByZWdpc3RyYXRpb247CiB2YXIg
ZnJhbWU7CiBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewogICAgIHJldHVybiBzZXJ2aWNlX3dv
cmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3RlcigKICAgICAgICAgdCwgJ3Jlc291cmNlcy9jbGll
bnRzLWdldC13b3JrZXIuanMnLCBzY29wZSkKLSAgICAgIC50aGVuKGZ1bmN0aW9uKHIpIHsKLSAg
ICAgICAgICByZWdpc3RyYXRpb24gPSByOworICAgICAgLnRoZW4oZnVuY3Rpb24ocmVnaXN0cmF0
aW9uKSB7CiAgICAgICAgICAgYWRkX2NvbXBsZXRpb25fY2FsbGJhY2soZnVuY3Rpb24oKSB7IHJl
Z2lzdHJhdGlvbi51bnJlZ2lzdGVyKCk7IH0pOwogICAgICAgICAgIHJldHVybiB3YWl0X2Zvcl9z
dGF0ZSh0LCByZWdpc3RyYXRpb24uaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOwogICAgICAgICB9
KQpAQCAtNjEsMTAgKzU5LDEyIEBAIHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7CiAgICAgICAg
IH0pCiAgICAgICAudGhlbihmdW5jdGlvbihjbGllbnRfaWQpIHsKICAgICAgICAgICBjbGllbnRf
aWRzLnB1c2goY2xpZW50X2lkKTsKKyAgICAgICAgICB2YXIgY2hhbm5lbCA9IG5ldyBNZXNzYWdl
Q2hhbm5lbCgpOwogICAgICAgICAgIHZhciBzYXdfbWVzc2FnZSA9IG5ldyBQcm9taXNlKGZ1bmN0
aW9uKHJlc29sdmUpIHsKLSAgICAgICAgICAgICAgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIub25t
ZXNzYWdlID0gcmVzb2x2ZTsKKyAgICAgICAgICAgICAgY2hhbm5lbC5wb3J0MS5vbm1lc3NhZ2Ug
PSByZXNvbHZlOwogICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgcmVnaXN0cmF0aW9uLmFjdGl2
ZS5wb3N0TWVzc2FnZSh7Y2xpZW50SWRzOiBjbGllbnRfaWRzfSk7CisgICAgICAgICAgZnJhbWUu
Y29udGVudFdpbmRvdy5uYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5jb250cm9sbGVyLnBvc3RNZXNz
YWdlKAorICAgICAgICAgICAgICB7cG9ydDogY2hhbm5lbC5wb3J0MiwgY2xpZW50SWRzOiBjbGll
bnRfaWRzfSwgW2NoYW5uZWwucG9ydDJdKTsKICAgICAgICAgICByZXR1cm4gc2F3X21lc3NhZ2U7
CiAgICAgICAgIH0pCiAgICAgICAudGhlbihmdW5jdGlvbihlKSB7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9jbGllbnRzLWdldC1yZXN1bHRpbmdDbGllbnRJZC5odHRwcy1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGllbnRzLWdldC1yZXN1bHRpbmdDbGllbnRJZC5o
dHRwcy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgyNzQ1ODZl
ODA3ZjJjMmQ3Zjg0YmRmNTVkNjFlYzE4N2Y4NjMwMDUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xpZW50cy1nZXQtcmVz
dWx0aW5nQ2xpZW50SWQuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsOCAr
MCwwIEBACi0KLVBBU1MgZ2xvYmFsIHNldHVwIAotRkFJTCBnZXQocmVzdWx0aW5nQ2xpZW50SWQp
IGZvciBzYW1lLW9yaWdpbiBkb2N1bWVudCBhc3NlcnRfZXF1YWxzOiBwcm9taXNlVmFsdWUgZXhw
ZWN0ZWQgImNsaWVudCIgYnV0IGdvdCAidW5kZWZpbmVkVmFsdWUiCi1GQUlMIGdldChyZXN1bHRp
bmdDbGllbnRJZCkgb24gY3Jvc3Mtb3JpZ2luIHJlZGlyZWN0IGFzc2VydF9lcXVhbHM6IGdldChl
dmVudC5yZXN1bHRpbmdDbGllbnRJZCkgaW4gdGhlIGZldGNoIGV2ZW50IHNob3VsZCBmdWxmaWxs
IGV4cGVjdGVkIChzdHJpbmcpICJmdWxmaWxsZWQiIGJ1dCBnb3QgKHVuZGVmaW5lZCkgdW5kZWZp
bmVkCi1GQUlMIGdldChyZXN1bHRpbmdDbGllbnRJZCkgZm9yIGRvY3VtZW50IHNhbmRib3hlZCBi
eSBDU1AgaGVhZGVyIGFzc2VydF9lcXVhbHM6IGdldChldmVudC5yZXN1bHRpbmdDbGllbnRJZCkg
aW4gdGhlIGZldGNoIGV2ZW50IHNob3VsZCBmdWxmaWxsIGV4cGVjdGVkIChzdHJpbmcpICJmdWxm
aWxsZWQiIGJ1dCBnb3QgKHVuZGVmaW5lZCkgdW5kZWZpbmVkCi1GQUlMIGdldChyZXN1bHRpbmdD
bGllbnRJZCkgZm9yIGRvY3VtZW50IHNhbmRib3hlZCBieSBDU1AgaGVhZGVyIHdpdGggYWxsb3ct
c2FtZS1vcmlnaW4gYXNzZXJ0X2VxdWFsczogZ2V0KGV2ZW50LnJlc3VsdGluZ0NsaWVudElkKSBp
biB0aGUgZmV0Y2ggZXZlbnQgc2hvdWxkIGZ1bGZpbGwgZXhwZWN0ZWQgKHN0cmluZykgImZ1bGZp
bGxlZCIgYnV0IGdvdCAodW5kZWZpbmVkKSB1bmRlZmluZWQKLVBBU1MgZ2xvYmFsIGNsZWFudXAg
Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsaWVudHMtZ2V0LXJlc3VsdGluZ0Ns
aWVudElkLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGllbnRzLWdldC1yZXN1bHRp
bmdDbGllbnRJZC5odHRwcy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzNDE5
Y2YxNGI1MjNkYjQxYWY3MGM3ODk2ZDRhYWE0OTc0NDFmYjliLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsaWVudHMtZ2V0
LXJlc3VsdGluZ0NsaWVudElkLmh0dHBzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxNzcgKzAs
MCBAQAotPCFET0NUWVBFIGh0bWw+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08dGl0bGU+VGVz
dCBjbGllbnRzLmdldChyZXN1bHRpbmdDbGllbnRJZCk8L3RpdGxlPgotPHNjcmlwdCBzcmM9Ii9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii9jb21tb24v
Z2V0LWhvc3QtaW5mby5zdWIuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy90
ZXN0LWhlbHBlcnMuc3ViLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1jb25zdCBzY29wZSA9ICJy
ZXNvdXJjZXMvIjsKLWxldCB3b3JrZXI7Ci0KLS8vIFNldHVwLiBLZWVwIHRoaXMgYXMgdGhlIGZp
cnN0IHByb21pc2VfdGVzdC4KLXByb21pc2VfdGVzdChhc3luYyAodCkgPT4gewotICBjb25zdCBy
ZWdpc3RyYXRpb24gPSBhd2FpdCBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rl
cigKLSAgICAgIHQsICdyZXNvdXJjZXMvZ2V0LXJlc3VsdGluZ0NsaWVudElkLXdvcmtlci5qcycs
Ci0gICAgICBzY29wZSk7Ci0gIHdvcmtlciA9IHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nOwotICBh
d2FpdCB3YWl0X2Zvcl9zdGF0ZSh0LCB3b3JrZXIsICdhY3RpdmF0ZWQnKTsKLX0sICdnbG9iYWwg
c2V0dXAnKTsKLQotLy8gU2VuZHMgfGNvbW1hbmR8IHRvIHRoZSB3b3JrZXIgYW5kIHJldHVybnMg
YSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgdG8gaXRzCi0vLyByZXNwb25zZS4gVGhlcmUgc2hvdWxk
IG9ubHkgYmUgb25lIGluZmxpZ2h0IGNvbW1hbmQgYXQgYSB0aW1lLgotYXN5bmMgZnVuY3Rpb24g
c2VuZENvbW1hbmQoY29tbWFuZCkgewotICBjb25zdCBzYXdfbWVzc2FnZSA9IG5ldyBQcm9taXNl
KChyZXNvbHZlKSA9PiB7Ci0gICAgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIub25tZXNzYWdlID0g
KGV2ZW50KSA9PiB7Ci0gICAgICByZXNvbHZlKGV2ZW50LmRhdGEpOwotICAgIH07Ci0gIH0pOwot
ICB3b3JrZXIucG9zdE1lc3NhZ2UoY29tbWFuZCk7Ci0gIHJldHVybiBzYXdfbWVzc2FnZTsKLX0K
LQotLy8gV3JhcHBlciBmb3IgJ3N0YXJ0VGVzdCcgY29tbWFuZC4gVGVsbHMgdGhlIHdvcmtlciBh
IHRlc3QgaXMgc3RhcnRpbmcsCi0vLyBzbyBpdCByZXNldHMgc3RhdGUgYW5kIGtlZXBzIGl0c2Vs
ZiBhbGl2ZSB1bnRpbCAnZmluaXNoVGVzdCcuCi1hc3luYyBmdW5jdGlvbiBzdGFydFRlc3QodCkg
ewotICBjb25zdCByZXN1bHQgPSBhd2FpdCBzZW5kQ29tbWFuZCh7Y29tbWFuZDogJ3N0YXJ0VGVz
dCd9KTsKLSAgYXNzZXJ0X2VxdWFscyhyZXN1bHQsICdvaycsICdzdGFydFRlc3QnKTsKLQotICB0
LmFkZF9jbGVhbnVwKGFzeW5jICgpID0+IHsKLSAgICByZXR1cm4gZmluaXNoVGVzdCgpOwotICB9
KTsKLX0KLQotLy8gV3JhcHBlciBmb3IgJ2ZpbmlzaFRlc3QnIGNvbW1hbmQuCi1hc3luYyBmdW5j
dGlvbiBmaW5pc2hUZXN0KCkgewotICBjb25zdCByZXN1bHQgPSBhd2FpdCBzZW5kQ29tbWFuZCh7
Y29tbWFuZDogJ2ZpbmlzaFRlc3QnfSk7Ci0gIGFzc2VydF9lcXVhbHMocmVzdWx0LCAnb2snLCAn
ZmluaXNoVGVzdCcpOwotfQotCi0vLyBXcmFwcGVyIGZvciAnZ2V0UmVzdWx0aW5nQ2xpZW50JyBj
b21tYW5kLiBUZWxscyB0aGUgd29ya2VyIHRvIHJldHVybgotLy8gY2xpZW50cy5nZXQoZXZlbnQu
cmVzdWx0aW5nQ2xpZW50SWQpIGZvciB0aGUgbmF2aWdhdGlvbiB0aGF0IG9jY3VycwotLy8gZHVy
aW5nIHRoaXMgdGVzdC4KLS8vCi0vLyBUaGUgcmV0dXJuIHZhbHVlIGRlc2NyaWJlcyBob3cgY2xp
ZW50cy5nZXQoKSBzZXR0bGVkLiBJdCBhbHNvIGluY2x1ZGVzCi0vLyB8cXVlcmllZElkfCB3aGlj
aCBpcyB0aGUgaWQgcGFzc2VkIHRvIGNsaWVudHMuZ2V0KCkgKHRoZSByZXN1bHRpbmdDbGllbnRJ
ZAotLy8gaW4gdGhpcyBjYXNlKS4KLS8vCi0vLyBFeGFtcGxlIHZhbHVlOgotLy8gewotLy8gICBx
dWVyaWVkSWQ6ICdhYmMnLAotLy8gICBwcm9taXNlU3RhdGU6IGZ1bGZpbGxlZCwKLS8vICAgcHJv
bWlzZVZhbHVlOiBjbGllbnQsCi0vLyAgIGNsaWVudDogewotLy8gICAgIGlkOiAnYWJjJywKLS8v
ICAgICB1cmw6ICcvL2V4YW1wbGUuY29tL2NsaWVudCcKLS8vICAgfQotLy8gfQotYXN5bmMgZnVu
Y3Rpb24gZ2V0UmVzdWx0aW5nQ2xpZW50KCkgewotICByZXR1cm4gc2VuZENvbW1hbmQoe2NvbW1h
bmQ6ICdnZXRSZXN1bHRpbmdDbGllbnQnfSk7Ci19Ci0KLS8vIFdyYXBwZXIgZm9yICdnZXRDbGll
bnQnIGNvbW1hbmQuIFRlbGxzIHRoZSB3b3JrZXIgdG8gcmV0dXJuCi0vLyBjbGllbnRzLmdldCh8
aWR8KS4gVGhlIHJldHVybiB2YWx1ZSBpcyBhcyBpbiB0aGUgZ2V0UmVzdWx0aW5nQ2xpZW50KCkK
LS8vIGRvY3VtZW50YXRpb24uCi1hc3luYyBmdW5jdGlvbiBnZXRDbGllbnQoaWQpIHsKLSAgcmV0
dXJuIHNlbmRDb21tYW5kKHtjb21tYW5kOiAnZ2V0Q2xpZW50JywgaWQ6IGlkfSk7Ci19Ci0KLS8v
IE5hdmlnYXRlcyB0byB8dXJsfC4gUmV0dXJucyB0aGUgcmVzdWx0IG9mIGNsaWVudHMuZ2V0KCkg
b24gdGhlCi0vLyByZXN1bHRpbmdDbGllbnRJZC4KLWFzeW5jIGZ1bmN0aW9uIG5hdmlnYXRlQW5k
R2V0UmVzdWx0aW5nQ2xpZW50KHQsIHVybCkgewotICBjb25zdCByZXN1bHRQcm9taXNlID0gZ2V0
UmVzdWx0aW5nQ2xpZW50KCk7Ci0gIGNvbnN0IGZyYW1lID0gYXdhaXQgd2l0aF9pZnJhbWUodXJs
KTsKLSAgdC5hZGRfY2xlYW51cCgoKSA9PiB7Ci0gICAgZnJhbWUucmVtb3ZlKCk7Ci0gIH0pOwot
ICBjb25zdCByZXN1bHQgPSBhd2FpdCByZXN1bHRQcm9taXNlOwotICBjb25zdCByZXN1bHRpbmdD
bGllbnRJZCA9IHJlc3VsdC5xdWVyaWVkSWQ7Ci0KLSAgLy8gRmlyc3QgdGVzdCBjbGllbnRzLmdl
dChldmVudC5yZXN1bHRpbmdDbGllbnRJZCkgaW5zaWRlIHRoZSBmZXRjaCBldmVudC4gVGhlCi0g
IC8vIGJlaGF2aW9yIG9mIHRoaXMgaXMgc3VidGxlIGR1ZSB0byB0aGUgdXNlIG9mIGlmcmFtZXMg
YW5kIGFib3V0OmJsYW5rCi0gIC8vIHJlcGxhY2VtZW50LiBUaGUgc3BlYyBwcm9iYWJseSByZXF1
aXJlcyB0aGF0IGl0IHJlc29sdmUgdG8gdGhlIG9yaWdpbmFsCi0gIC8vIGFib3V0OmJsYW5rIGNs
aWVudCwgYW5kIHRoYXQgbGF0ZXIgdGhhdCBjbGllbnQgc2hvdWxkIGJlIGRpc2NhcmRlZCBhZnRl
cgotICAvLyBsb2FkIGlmIHRoZSBsb2FkIHdhcyB0byBhbm90aGVyIG9yaWdpbi4gSW1wbGVtZW50
YXRpb25zIG1pZ2h0IGRpZmZlci4gRm9yCi0gIC8vIG5vdywgdGhpcyB0ZXN0IGp1c3QgYXNzZXJ0
cyB0aGF0IHRoZSBwcm9taXNlIHJlc29sdmVzLiBTZWUKLSAgLy8gaHR0cHM6Ly9naXRodWIuY29t
L3czYy9TZXJ2aWNlV29ya2VyL2lzc3Vlcy8xMzg1LgotICBhc3NlcnRfZXF1YWxzKHJlc3VsdC5w
cm9taXNlU3RhdGUsICdmdWxmaWxsZWQnLAotICAgICAgICAgICAgICAgICdnZXQoZXZlbnQucmVz
dWx0aW5nQ2xpZW50SWQpIGluIHRoZSBmZXRjaCBldmVudCBzaG91bGQgZnVsZmlsbCcpOwotCi0g
IC8vIFRlc3QgY2xpZW50cy5nZXQoKSBvbiB0aGUgcHJldmlvdXMgcmVzdWx0aW5nQ2xpZW50SWQg
YWdhaW4uIEJ5IHRoaXMKLSAgLy8gdGltZSB0aGUgbG9hZCBmaW5pc2hlZCwgc28gaXQncyBtb3Jl
IHN0cmFpZ2h0Zm9yd2FyZCBob3cgdGhpcyBwcm9taXNlCi0gIC8vIHNob3VsZCBzZXR0bGUuIFJl
dHVybiB0aGUgcmVzdWx0IG9mIHRoaXMgcHJvbWlzZS4KLSAgcmV0dXJuIGF3YWl0IGdldENsaWVu
dChyZXN1bHRpbmdDbGllbnRJZCk7Ci19Ci0KLS8vIFRlc3QgZ2V0KHJlc3VsdGluZ0NsaWVudElk
KSBpbiB0aGUgYmFzaWMgc2FtZS1vcmlnaW4gY2FzZS4KLXByb21pc2VfdGVzdChhc3luYyAodCkg
PT4gewotICBhd2FpdCBzdGFydFRlc3QodCk7Ci0KLSAgY29uc3QgdXJsID0gbmV3IFVSTCgncmVz
b3VyY2VzL2VtcHR5Lmh0bWwnLCB3aW5kb3cubG9jYXRpb24pOwotICBjb25zdCByZXN1bHQgPSBh
d2FpdCBuYXZpZ2F0ZUFuZEdldFJlc3VsdGluZ0NsaWVudCh0LCB1cmwpOwotICBhc3NlcnRfZXF1
YWxzKHJlc3VsdC5wcm9taXNlU3RhdGUsICdmdWxmaWxsZWQnLCAncHJvbWlzZVN0YXRlJyk7Ci0g
IGFzc2VydF9lcXVhbHMocmVzdWx0LnByb21pc2VWYWx1ZSwgJ2NsaWVudCcsICdwcm9taXNlVmFs
dWUnKTsKLSAgYXNzZXJ0X2VxdWFscyhyZXN1bHQuY2xpZW50LnVybCwgdXJsLmhyZWYsICdjbGll
bnQudXJsJywpOwotICBhc3NlcnRfZXF1YWxzKHJlc3VsdC5jbGllbnQuaWQsIHJlc3VsdC5xdWVy
aWVkSWQsICdjbGllbnQuaWQnKTsKLX0sICdnZXQocmVzdWx0aW5nQ2xpZW50SWQpIGZvciBzYW1l
LW9yaWdpbiBkb2N1bWVudCcpOwotCi0vLyBUZXN0IGdldChyZXN1bHRpbmdDbGllbnRJZCkgd2hl
biB0aGUgcmVzcG9uc2UgcmVkaXJlY3RzIHRvIGFub3RoZXIgb3JpZ2luLgotcHJvbWlzZV90ZXN0
KGFzeW5jICh0KSA9PiB7Ci0gIGF3YWl0IHN0YXJ0VGVzdCh0KTsKLQotICAvLyBOYXZpZ2F0ZSB0
byBhIFVSTCB0aGF0IHJlZGlyZWN0cyB0byBhbm90aGVyIG9yaWdpbi4KLSAgY29uc3QgYmFzZV91
cmwgPSBuZXcgVVJMKCcuJywgd2luZG93LmxvY2F0aW9uKTsKLSAgY29uc3QgaG9zdF9pbmZvID0g
Z2V0X2hvc3RfaW5mbygpOwotICBjb25zdCBvdGhlcl9vcmlnaW5fdXJsID0gbmV3IFVSTChiYXNl
X3VybC5wYXRobmFtZSArICdyZXNvdXJjZXMvZW1wdHkuaHRtbCcsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGhvc3RfaW5mb1snSFRUUFNfUkVNT1RFX09SSUdJTiddKTsKLSAg
Y29uc3QgdXJsID0gbmV3IFVSTCgncmVzb3VyY2VzL2VtcHR5Lmh0bWwnLCB3aW5kb3cubG9jYXRp
b24pOwotICBjb25zdCBwaXBlID0gYHN0YXR1cygzMDIpfGhlYWRlcihMb2NhdGlvbiwgJHtvdGhl
cl9vcmlnaW5fdXJsfSlgOwotICB1cmwuc2VhcmNoUGFyYW1zLnNldCgncGlwZScsIHBpcGUpOwot
Ci0gIC8vIFRoZSBvcmlnaW5hbCByZXNlcnZlZCBjbGllbnQgc2hvdWxkIGhhdmUgYmVlbiBkaXNj
YXJkZWQgb24gY3Jvc3Mtb3JpZ2luCi0gIC8vIHJlZGlyZWN0LgotICBjb25zdCByZXN1bHQgPSBh
d2FpdCBuYXZpZ2F0ZUFuZEdldFJlc3VsdGluZ0NsaWVudCh0LCB1cmwpOwotICBhc3NlcnRfZXF1
YWxzKHJlc3VsdC5wcm9taXNlU3RhdGUsICdmdWxmaWxsZWQnLCAncHJvbWlzZVN0YXRlJyk7Ci0g
IGFzc2VydF9lcXVhbHMocmVzdWx0LnByb21pc2VWYWx1ZSwgJ3VuZGVmaW5lZFZhbHVlJywgJ3By
b21pc2VWYWx1ZScpOwotfSwgJ2dldChyZXN1bHRpbmdDbGllbnRJZCkgb24gY3Jvc3Mtb3JpZ2lu
IHJlZGlyZWN0Jyk7Ci0KLS8vIFRlc3QgZ2V0KHJlc3VsdGluZ0NsaWVudElkKSB3aGVuIHRoZSBk
b2N1bWVudCBpcyBzYW5kYm94ZWQgdG8gYSB1bmlxdWUKLS8vIG9yaWdpbiB1c2luZyBhIENTUCBI
VFRQIHJlc3BvbnNlIGhlYWRlci4KLXByb21pc2VfdGVzdChhc3luYyAodCkgPT4gewotICBhd2Fp
dCBzdGFydFRlc3QodCk7Ci0KLSAgLy8gTmF2aWdhdGUgdG8gYSBVUkwgdGhhdCBoYXMgQ1NQIHNh
bmRib3hpbmcgc2V0IGluIHRoZSBIVFRQIHJlc3BvbnNlIGhlYWRlci4KLSAgY29uc3QgdXJsID0g
bmV3IFVSTCgncmVzb3VyY2VzL2VtcHR5Lmh0bWwnLCB3aW5kb3cubG9jYXRpb24pOwotICBjb25z
dCBwaXBlID0gJ2hlYWRlcihDb250ZW50LVNlY3VyaXR5LVBvbGljeSwgc2FuZGJveCknOwotICB1
cmwuc2VhcmNoUGFyYW1zLnNldCgncGlwZScsIHBpcGUpOwotCi0gIC8vIFRoZSBvcmlnaW5hbCBy
ZXNlcnZlZCBjbGllbnQgc2hvdWxkIGhhdmUgYmVlbiBkaXNjYXJkZWQgdXBvbiBsb2FkaW5nCi0g
IC8vIHRoZSBzYW5kYm94ZWQgZG9jdW1lbnQuCi0gIGNvbnN0IHJlc3VsdCA9IGF3YWl0IG5hdmln
YXRlQW5kR2V0UmVzdWx0aW5nQ2xpZW50KHQsIHVybCk7Ci0gIGFzc2VydF9lcXVhbHMocmVzdWx0
LnByb21pc2VTdGF0ZSwgJ2Z1bGZpbGxlZCcsICdwcm9taXNlU3RhdGUnKTsKLSAgYXNzZXJ0X2Vx
dWFscyhyZXN1bHQucHJvbWlzZVZhbHVlLCAndW5kZWZpbmVkVmFsdWUnLCAncHJvbWlzZVZhbHVl
Jyk7Ci19LCAnZ2V0KHJlc3VsdGluZ0NsaWVudElkKSBmb3IgZG9jdW1lbnQgc2FuZGJveGVkIGJ5
IENTUCBoZWFkZXInKTsKLQotLy8gVGVzdCBnZXQocmVzdWx0aW5nQ2xpZW50SWQpIHdoZW4gdGhl
IGRvY3VtZW50IGlzIHNhbmRib3hlZCB3aXRoCi0vLyBhbGxvdy1zYW1lLW9yaWdpbi4KLXByb21p
c2VfdGVzdChhc3luYyAodCkgPT4gewotICBhd2FpdCBzdGFydFRlc3QodCk7Ci0KLSAgLy8gTmF2
aWdhdGUgdG8gYSBVUkwgdGhhdCBoYXMgQ1NQIHNhbmRib3hpbmcgc2V0IGluIHRoZSBIVFRQIHJl
c3BvbnNlIGhlYWRlci4KLSAgY29uc3QgdXJsID0gbmV3IFVSTCgncmVzb3VyY2VzL2VtcHR5Lmh0
bWwnLCB3aW5kb3cubG9jYXRpb24pOwotICBjb25zdCBwaXBlID0gJ2hlYWRlcihDb250ZW50LVNl
Y3VyaXR5LVBvbGljeSwgc2FuZGJveCBhbGxvdy1zYW1lLW9yaWdpbiknOwotICB1cmwuc2VhcmNo
UGFyYW1zLnNldCgncGlwZScsIHBpcGUpOwotCi0gIC8vIFRoZSBjbGllbnQgc2hvdWxkIGJlIHRo
ZSBvcmlnaW5hbCByZXNlcnZlZCBjbGllbnQsIGFzIGl0J3Mgc2FtZS1vcmlnaW4uCi0gIGNvbnN0
IHJlc3VsdCA9IGF3YWl0IG5hdmlnYXRlQW5kR2V0UmVzdWx0aW5nQ2xpZW50KHQsIHVybCk7Ci0g
IGFzc2VydF9lcXVhbHMocmVzdWx0LnByb21pc2VTdGF0ZSwgJ2Z1bGZpbGxlZCcsICdwcm9taXNl
U3RhdGUnKTsKLSAgYXNzZXJ0X2VxdWFscyhyZXN1bHQucHJvbWlzZVZhbHVlLCAnY2xpZW50Jywg
J3Byb21pc2VWYWx1ZScpOwotICBhc3NlcnRfZXF1YWxzKHJlc3VsdC5jbGllbnQudXJsLCB1cmwu
aHJlZiwgJ2NsaWVudC51cmwnLCk7Ci0gIGFzc2VydF9lcXVhbHMocmVzdWx0LmNsaWVudC5pZCwg
cmVzdWx0LnF1ZXJpZWRJZCwgJ2NsaWVudC5pZCcpOwotfSwgJ2dldChyZXN1bHRpbmdDbGllbnRJ
ZCkgZm9yIGRvY3VtZW50IHNhbmRib3hlZCBieSBDU1AgaGVhZGVyIHdpdGggYWxsb3ctc2FtZS1v
cmlnaW4nKTsKLQotLy8gQ2xlYW51cC4gS2VlcCB0aGlzIGFzIHRoZSBsYXN0IHByb21pc2VfdGVz
dC4KLXByb21pc2VfdGVzdChhc3luYyAodCkgPT4gewotICByZXR1cm4gc2VydmljZV93b3JrZXJf
dW5yZWdpc3Rlcih0LCBzY29wZSk7Ci19LCAnZ2xvYmFsIGNsZWFudXAnKTsKLTwvc2NyaXB0Pgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xpZW50cy1nZXQuaHR0cHMtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xpZW50cy1nZXQuaHR0cHMtZXhwZWN0ZWQudHh0Cmlu
ZGV4IDBmOWM0MTFhOWI1NjU2ZDc1NDE5MzAxMWVmYjcxOGFiNTBlYzYzZDQuLjE3ZDE5ZTRhM2Jl
NDMwOTQ2ZDdlYjEyMzExODMzZDMwYzMwZjIwMTQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL2NsaWVudHMtZ2V0Lmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9jbGllbnRzLWdldC5odHRwcy1leHBlY3RlZC50eHQKQEAgLTEsNSArMSwzIEBACiAKIEZBSUwg
VGVzdCBDbGllbnRzLmdldCgpIGFzc2VydF9hcnJheV9lcXVhbHM6IHByb3BlcnR5IDEsIGV4cGVj
dGVkIGZhbHNlIGJ1dCBnb3QgdHJ1ZQotRkFJTCBUZXN0IHN1Y2Nlc3NmdWwgQ2xpZW50cy5nZXQo
RmV0Y2hFdmVudC5yZXN1bHRpbmdDbGllbnRJZCkgYXNzZXJ0X2ZhbHNlOiBDbGllbnRzLmdldChG
ZXRjaEV2ZW50LnJlc3VsdGluZ0NsaWVudElkKSByZXNvbHZlZCB3aXRoIGEgQ2xpZW50IGV4cGVj
dGVkIGZhbHNlIGdvdCB0cnVlCi1QQVNTIFRlc3QgdW5zdWNjZXNzZnVsIENsaWVudHMuZ2V0KEZl
dGNoRXZlbnQucmVzdWx0aW5nQ2xpZW50SWQpIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9jbGllbnRzLWdldC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xpZW50cy1n
ZXQuaHR0cHMuaHRtbAppbmRleCA0Y2ZiZjU5NWNhZGVlZWE1ZmM4YTUwODkxMjdjNTY4N2VjMTc0
ZjUzLi42OGM2ZDdmN2FjMDJhMzE2ODU2YTQwNWY2NTc5ZWIxOTFlNzM4OTI0IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9jbGllbnRzLWdldC5odHRwcy5odG1sCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL2NsaWVudHMtZ2V0Lmh0dHBzLmh0bWwKQEAgLTQsMTUxICs0LDY1IEBACiA8c2Ny
aXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CiA8c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL3Rlc3QtaGVscGVycy5zdWIuanMiPjwvc2NyaXB0PgogPHNjcmlw
dD4KK3ZhciBzY29wZSA9ICdyZXNvdXJjZXMvY2xpZW50cy1nZXQtZnJhbWUuaHRtbCc7Cit2YXIg
Y2xpZW50X2lkcyA9IFtdOwordmFyIGZyYW1lOworcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsK
KyAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIoCisgICAg
ICAgIHQsICdyZXNvdXJjZXMvY2xpZW50cy1nZXQtd29ya2VyLmpzJywgc2NvcGUpCisgICAgICAu
dGhlbihmdW5jdGlvbihyZWdpc3RyYXRpb24pIHsKKyAgICAgICAgICBhZGRfY29tcGxldGlvbl9j
YWxsYmFjayhmdW5jdGlvbigpIHsgcmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIoKTsgfSk7CisgICAg
ICAgICAgcmV0dXJuIHdhaXRfZm9yX3N0YXRlKHQsIHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLCAn
YWN0aXZhdGVkJyk7CisgICAgICAgIH0pCisgICAgICAudGhlbihmdW5jdGlvbigpIHsKKyAgICAg
ICAgICByZXR1cm4gd2l0aF9pZnJhbWUoc2NvcGUgKyAnIzEnKTsKKyAgICAgICAgfSkKKyAgICAg
IC50aGVuKGZ1bmN0aW9uKGZyYW1lMSkgeworICAgICAgICAgIGFkZF9jb21wbGV0aW9uX2NhbGxi
YWNrKGZ1bmN0aW9uKCkgeyBmcmFtZTEucmVtb3ZlKCk7IH0pOworICAgICAgICAgIGZyYW1lMS5m
b2N1cygpOworICAgICAgICAgIHJldHVybiB3YWl0X2Zvcl9jbGllbnRJZCgpOworICAgICAgICB9
KQorICAgICAgLnRoZW4oZnVuY3Rpb24oY2xpZW50X2lkKSB7CisgICAgICAgICAgY2xpZW50X2lk
cy5wdXNoKGNsaWVudF9pZCk7CisgICAgICAgICAgcmV0dXJuIHdpdGhfaWZyYW1lKHNjb3BlICsg
JyMyJyk7CisgICAgICAgIH0pCisgICAgICAudGhlbihmdW5jdGlvbihmcmFtZTIpIHsKKyAgICAg
ICAgICBmcmFtZSA9IGZyYW1lMjsKKyAgICAgICAgICBhZGRfY29tcGxldGlvbl9jYWxsYmFjayhm
dW5jdGlvbigpIHsgZnJhbWUyLnJlbW92ZSgpOyB9KTsKKyAgICAgICAgICByZXR1cm4gd2FpdF9m
b3JfY2xpZW50SWQoKTsKKyAgICAgICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKGNsaWVudF9p
ZCkgeworICAgICAgICAgIGNsaWVudF9pZHMucHVzaChjbGllbnRfaWQsICdpbnZhbGlkLWlkJyk7
CisgICAgICAgICAgdmFyIGNoYW5uZWwgPSBuZXcgTWVzc2FnZUNoYW5uZWwoKTsKKyAgICAgICAg
ICB2YXIgc2F3X21lc3NhZ2UgPSBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlKSB7CisgICAg
ICAgICAgICAgIGNoYW5uZWwucG9ydDEub25tZXNzYWdlID0gcmVzb2x2ZTsKKyAgICAgICAgICAg
IH0pOworICAgICAgICAgIGZyYW1lLmNvbnRlbnRXaW5kb3cubmF2aWdhdG9yLnNlcnZpY2VXb3Jr
ZXIuY29udHJvbGxlci5wb3N0TWVzc2FnZSgKKyAgICAgICAgICAgICAge3BvcnQ6IGNoYW5uZWwu
cG9ydDIsIGNsaWVudElkczogY2xpZW50X2lkc30sIFtjaGFubmVsLnBvcnQyXSk7CisgICAgICAg
ICAgcmV0dXJuIHNhd19tZXNzYWdlOworICAgICAgICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24o
ZSkgeworICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS5kYXRhLmxlbmd0aCwgMyk7CisgICAgICAg
ICAgYXNzZXJ0X2FycmF5X2VxdWFscyhlLmRhdGFbMF0sIGV4cGVjdGVkWzBdKTsKKyAgICAgICAg
ICBhc3NlcnRfYXJyYXlfZXF1YWxzKGUuZGF0YVsxXSwgZXhwZWN0ZWRbMV0pOworICAgICAgICAg
IGFzc2VydF9lcXVhbHMoZS5kYXRhWzJdLCBleHBlY3RlZFsyXSk7CisgICAgICAgIH0pOworICB9
LCAnVGVzdCBDbGllbnRzLmdldCgpJyk7CisKIGZ1bmN0aW9uIHdhaXRfZm9yX2NsaWVudElkKCkg
ewogICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7Ci0gICAg
d2luZG93Lm9ubWVzc2FnZSA9IGUgPT4gewotICAgICAgcmVzb2x2ZShlLmRhdGEuY2xpZW50SWQp
OwotICAgIH07Ci0gIH0pOworICAgICAgZnVuY3Rpb24gZ2V0X2NsaWVudF9pZChlKSB7CisgICAg
ICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgZ2V0X2NsaWVudF9pZCk7
CisgICAgICAgIHJlc29sdmUoZS5kYXRhLmNsaWVudElkKTsKKyAgICAgIH0KKyAgICAgIHdpbmRv
dy5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgZ2V0X2NsaWVudF9pZCwgZmFsc2UpOworICAg
IH0pOwogfQogCi1wcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7Ci0gIC8vIFJlZ2lzdGVyIHNlcnZp
Y2Ugd29ya2VyLgotICBjb25zdCBzY29wZSA9ICdyZXNvdXJjZXMvY2xpZW50cy1nZXQtZnJhbWUu
aHRtbCc7Ci0gIGNvbnN0IGNsaWVudF9pZHMgPSBbXTsKLSAgY29uc3QgcmVnaXN0cmF0aW9uID0g
YXdhaXQgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIoCi0gICAgdCwgJ3Jl
c291cmNlcy9jbGllbnRzLWdldC13b3JrZXIuanMnLCBzY29wZSk7Ci0gIHQuYWRkX2NsZWFudXAo
KCkgPT4gcmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIoKSk7Ci0gIGF3YWl0IHdhaXRfZm9yX3N0YXRl
KHQsIHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7Ci0KLSAgLy8gUHJlcGFy
ZSBmb3IgdGVzdCBjYXNlcy4KLSAgLy8gQ2FzZSAxOiBmcmFtZTEgd2hpY2ggaXMgZm9jdXNlZC4K
LSAgY29uc3QgZnJhbWUxID0gYXdhaXQgd2l0aF9pZnJhbWUoc2NvcGUgKyAnIzEnKTsKLSAgdC5h
ZGRfY2xlYW51cCgoKSA9PiBmcmFtZTEucmVtb3ZlKCkpOwotICBmcmFtZTEuZm9jdXMoKTsKLSAg
Y2xpZW50X2lkcy5wdXNoKGF3YWl0IHdhaXRfZm9yX2NsaWVudElkKCkpOwotICAvLyBDYXNlIDI6
IGZyYW1lMiB3aGljaCBpcyBub3QgZm9jdXNlZC4KLSAgY29uc3QgZnJhbWUyID0gYXdhaXQgd2l0
aF9pZnJhbWUoc2NvcGUgKyAnIzInKTsKLSAgdC5hZGRfY2xlYW51cCgoKSA9PiAgZnJhbWUyLnJl
bW92ZSgpKTsKLSAgY2xpZW50X2lkcy5wdXNoKGF3YWl0IHdhaXRfZm9yX2NsaWVudElkKCkpOwot
ICAvLyBDYXNlIDM6IGludmFsaWQgaWQuCi0gIGNsaWVudF9pZHMucHVzaCgnaW52YWxpZC1pZCcp
OwotCi0gIC8vIENhbGwgY2xpZW50cy5nZXQoKSBmb3IgZWFjaCBpZCBvbiB0aGUgc2VydmljZSB3
b3JrZXIuCi0gIGNvbnN0IG1lc3NhZ2VfZXZlbnQgPSBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZl
ID0+IHsKLSAgICBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5vbm1lc3NhZ2UgPSByZXNvbHZlOwot
ICAgIHJlZ2lzdHJhdGlvbi5hY3RpdmUucG9zdE1lc3NhZ2Uoe2NsaWVudElkczogY2xpZW50X2lk
c30pOwotICB9KTsKLQotICBjb25zdCBleHBlY3RlZCA9IFsKK3ZhciBleHBlY3RlZCA9IFsKICAg
ICAvLyB2aXNpYmlsaXR5U3RhdGUsIGZvY3VzZWQsIHVybCwgdHlwZSwgZnJhbWVUeXBlCiAgICAg
Wyd2aXNpYmxlJywgdHJ1ZSwgbm9ybWFsaXplVVJMKHNjb3BlKSArICcjMScsICd3aW5kb3cnLCAn
bmVzdGVkJ10sCiAgICAgWyd2aXNpYmxlJywgZmFsc2UsIG5vcm1hbGl6ZVVSTChzY29wZSkgKyAn
IzInLCAnd2luZG93JywgJ25lc3RlZCddLAogICAgIHVuZGVmaW5lZAotICBdOwotICBhc3NlcnRf
ZXF1YWxzKG1lc3NhZ2VfZXZlbnQuZGF0YS5sZW5ndGgsIDMpOwotICBhc3NlcnRfYXJyYXlfZXF1
YWxzKG1lc3NhZ2VfZXZlbnQuZGF0YVswXSwgZXhwZWN0ZWRbMF0pOwotICBhc3NlcnRfYXJyYXlf
ZXF1YWxzKG1lc3NhZ2VfZXZlbnQuZGF0YVsxXSwgZXhwZWN0ZWRbMV0pOwotICBhc3NlcnRfZXF1
YWxzKG1lc3NhZ2VfZXZlbnQuZGF0YVsyXSwgZXhwZWN0ZWRbMl0pOwotfSwgJ1Rlc3QgQ2xpZW50
cy5nZXQoKScpOwotCi1wcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7Ci0gIC8vIFJlZ2lzdGVyIHNl
cnZpY2Ugd29ya2VyLgotICBjb25zdCBzY29wZSA9ICdyZXNvdXJjZXMvc2ltcGxlLmh0bWwnOwot
ICBjb25zdCByZWdpc3RyYXRpb24gPSBhd2FpdCBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2Fu
ZF9yZWdpc3RlcigKLSAgICB0LCAncmVzb3VyY2VzL2NsaWVudHMtZ2V0LXJlc3VsdGluZ0NsaWVu
dElkLXdvcmtlci5qcycsIHNjb3BlKQotICB0LmFkZF9jbGVhbnVwKCgpID0+ICByZWdpc3RyYXRp
b24udW5yZWdpc3RlcigpKTsKLSAgYXdhaXQgd2FpdF9mb3Jfc3RhdGUodCwgcmVnaXN0cmF0aW9u
Lmluc3RhbGxpbmcsICdhY3RpdmF0ZWQnKTsKLSAgY29uc3Qgd29ya2VyID0gcmVnaXN0cmF0aW9u
LmFjdGl2ZTsKLQotICAvLyBMb2FkIGZyYW1lIHdpdGhpbiB0aGUgc2NvcGUuCi0gIGNvbnN0IGZy
YW1lID0gYXdhaXQgd2l0aF9pZnJhbWUoc2NvcGUpOwotICB0LmFkZF9jbGVhbnVwKCgpID0+IGZy
YW1lLnJlbW92ZSgpKTsKLSAgZnJhbWUuZm9jdXMoKTsKLQotICAvLyBHZXQgcmVzdWx0aW5nIGNs
aWVudCBpZC4KLSAgY29uc3QgcmVzdWx0aW5nQ2xpZW50SWQgPSBhd2FpdCBuZXcgUHJvbWlzZShy
ZXNvbHZlID0+IHsKLSAgICBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5vbm1lc3NhZ2UgPSBlID0+
IHsKLSAgICAgIGlmIChlLmRhdGEubXNnID09ICdnZXRSZXN1bHRpbmdDbGllbnRJZCcpIHsKLSAg
ICAgICAgcmVzb2x2ZShlLmRhdGEucmVzdWx0aW5nQ2xpZW50SWQpOwotICAgICAgfQotICAgIH07
Ci0gICAgd29ya2VyLnBvc3RNZXNzYWdlKHttc2c6ICdnZXRSZXN1bHRpbmdDbGllbnRJZCd9KTsK
LSAgfSk7Ci0KLSAgLy8gUXVlcnkgc2VydmljZSB3b3JrZXIgZm9yIGNsaWVudHMuZ2V0KHJlc3Vs
dGluZ0NsaWVudElkKS4KLSAgY29uc3QgaXNSZXN1bHRpbmdDbGllbnRVbmRlZmluZWQgPSBhd2Fp
dCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHsKLSAgICBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5v
bm1lc3NhZ2UgPSBlID0+IHsKLSAgICAgIGlmIChlLmRhdGEubXNnID09ICdnZXRJc1Jlc3VsdGlu
Z0NsaWVudFVuZGVmaW5lZCcpIHsKLSAgICAgICAgcmVzb2x2ZShlLmRhdGEuaXNSZXN1bHRpbmdD
bGllbnRVbmRlZmluZWQpOwotICAgICAgfQotICAgIH07Ci0gICAgd29ya2VyLnBvc3RNZXNzYWdl
KHttc2c6ICdnZXRJc1Jlc3VsdGluZ0NsaWVudFVuZGVmaW5lZCcsCi0gICAgICAgICAgICAgICAg
ICAgICAgICByZXN1bHRpbmdDbGllbnRJZH0pOwotICB9KTsKLQotICBhc3NlcnRfZmFsc2UoCi0g
ICAgaXNSZXN1bHRpbmdDbGllbnRVbmRlZmluZWQsCi0gICAgJ0NsaWVudHMuZ2V0KEZldGNoRXZl
bnQucmVzdWx0aW5nQ2xpZW50SWQpIHJlc29sdmVkIHdpdGggYSBDbGllbnQnKTsKLX0sICdUZXN0
IHN1Y2Nlc3NmdWwgQ2xpZW50cy5nZXQoRmV0Y2hFdmVudC5yZXN1bHRpbmdDbGllbnRJZCknKTsK
LQotcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewotICAvLyBSZWdpc3RlciBzZXJ2aWNlIHdvcmtl
ci4KLSAgY29uc3Qgc2NvcGUgPSAncmVzb3VyY2VzL3NpbXBsZS5odG1sP2ZhaWwnOwotICBjb25z
dCByZWdpc3RyYXRpb24gPSBhd2FpdCBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdp
c3RlcigKLSAgICB0LCAncmVzb3VyY2VzL2NsaWVudHMtZ2V0LXJlc3VsdGluZ0NsaWVudElkLXdv
cmtlci5qcycsIHNjb3BlKTsKLSAgdC5hZGRfY2xlYW51cCgoKSA9PiAgcmVnaXN0cmF0aW9uLnVu
cmVnaXN0ZXIoKSk7Ci0gIGF3YWl0IHdhaXRfZm9yX3N0YXRlKHQsIHJlZ2lzdHJhdGlvbi5pbnN0
YWxsaW5nLCAnYWN0aXZhdGVkJyk7Ci0KLSAgLy8gTG9hZCBmcmFtZSwgYW5kIGRlc3Ryb3kgaXQg
d2hpbGUgbG9hZGluZy4KLSAgY29uc3Qgd29ya2VyID0gcmVnaXN0cmF0aW9uLmFjdGl2ZTsKLSAg
bGV0IGZyYW1lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaWZyYW1lJyk7Ci0gIGZyYW1lLnNy
YyA9IHNjb3BlOwotICB0LmFkZF9jbGVhbnVwKCgpID0+IHsKLSAgICBpZiAoZnJhbWUpIHsKLSAg
ICAgIGZyYW1lLnJlbW92ZSgpOwotICAgIH0KLSAgfSk7Ci0KLSAgYXdhaXQgbmV3IFByb21pc2Uo
cmVzb2x2ZSA9PiB7Ci0gICAgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIub25tZXNzYWdlID0gZSA9
PiB7Ci0gICAgICAvLyBUaGUgc2VydmljZSB3b3JrZXIgcG9zdHMgYSBtZXNzYWdlIHRvIHJlbW92
ZSB0aGUgaWZyYW1lIGR1cmluZyBmZXRjaAotICAgICAgLy8gZXZlbnQuCi0gICAgICBpZiAoZS5k
YXRhLm1zZyA9PSAnZGVzdHJveVJlc3VsdGluZ0NsaWVudCcpIHsKLSAgICAgICAgZnJhbWUucmVt
b3ZlKCk7Ci0gICAgICAgIGZyYW1lID0gbnVsbDsKLSAgICAgICAgd29ya2VyLnBvc3RNZXNzYWdl
KHttc2c6ICdyZXN1bHRpbmdDbGllbnREZXN0cm95ZWQnfSk7Ci0gICAgICAgIHJlc29sdmUoKTsK
LSAgICAgIH0KLSAgICB9OwotICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZnJhbWUpOwot
ICB9KTsKLQotICByZXN1bHRpbmdEZXN0cm95ZWRDbGllbnRJZCA9IGF3YWl0IG5ldyBQcm9taXNl
KHJlc29sdmUgPT4gewotICAgIG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLm9ubWVzc2FnZSA9IGUg
PT4gewotICAgICAgLy8gVGhlIHdvcmtlciBzZW5kcyBhIG1lc3NhZ2UgYmFjayB3aGVuIGl0IHJl
Y2VpdmVzIHRoZSBtZXNzYWdlCi0gICAgICAvLyAncmVzdWx0aW5nQ2xpZW50RGVzdHJveWVkJyB3
aXRoIHRoZSByZXN1bHRpbmdDbGllbnRJZC4KLSAgICAgIGlmIChlLmRhdGEubXNnID09ICdyZXN1
bHRpbmdDbGllbnREZXN0cm95ZWRBY2snKSB7Ci0gICAgICAgIGFzc2VydF9lcXVhbHMoZnJhbWUs
IG51bGwsICdGcmFtZSBzaG91bGQgYmUgZGVzdHJveWVkIGF0IHRoaXMgcG9pbnQuJyk7Ci0gICAg
ICAgIHJlc29sdmUoZS5kYXRhLnJlc3VsdGluZ0Rlc3Ryb3llZENsaWVudElkKTsKLSAgICAgIH0K
LSAgICB9OwotICB9KTsKLQotICAvLyBRdWVyeSBzZXJ2aWNlIHdvcmtlciBmb3IgY2xpZW50cy5n
ZXQocmVzdWx0aW5nRGVzdHJveWVkQ2xpZW50SWQpLgotICBjb25zdCBpc1Jlc3VsdGluZ0NsaWVu
dFVuZGVmaW5lZCA9IGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gewotICAgIG5hdmlnYXRv
ci5zZXJ2aWNlV29ya2VyLm9ubWVzc2FnZSA9IGUgPT4gewotICAgICAgaWYgKGUuZGF0YS5tc2cg
PT0gJ2dldElzUmVzdWx0aW5nQ2xpZW50VW5kZWZpbmVkJykgewotICAgICAgICByZXNvbHZlKGUu
ZGF0YS5pc1Jlc3VsdGluZ0NsaWVudFVuZGVmaW5lZCk7Ci0gICAgICB9Ci0gICAgfTsKLSAgICB3
b3JrZXIucG9zdE1lc3NhZ2Uoe21zZzogJ2dldElzUmVzdWx0aW5nQ2xpZW50VW5kZWZpbmVkJywK
LSAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdGluZ0NsaWVudElkOiByZXN1bHRpbmdEZXN0
cm95ZWRDbGllbnRJZCB9KTsKLSAgfSk7Ci0KLSAgYXNzZXJ0X3RydWUoCi0gICAgaXNSZXN1bHRp
bmdDbGllbnRVbmRlZmluZWQsCi0gICAgJ0NsaWVudHMuZ2V0KEZldGNoRXZlbnQucmVzdWx0aW5n
Q2xpZW50SWQpIHJlc29sdmVkIHdpdGggYHVuZGVmaW5lZGAnKTsKLX0sICdUZXN0IHVuc3VjY2Vz
c2Z1bCBDbGllbnRzLmdldChGZXRjaEV2ZW50LnJlc3VsdGluZ0NsaWVudElkKScpOwotCitdOwog
PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGllbnRzLW1hdGNoYWxs
LWNsaWVudC10eXBlcy5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xpZW50cy1tYXRj
aGFsbC1jbGllbnQtdHlwZXMuaHR0cHMuaHRtbAppbmRleCBhMmE1NjgxNmE2NTBmYTU0ZDYwNzUw
NTVhNjRlMGYwMDllNTgyOWFjLi4yNDk2NzE3MmE4NGNhMGJmZWE3ZGIzMzdmYjVkOTVkOWNkNGZm
MTE0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGllbnRzLW1hdGNoYWxsLWNsaWVu
dC10eXBlcy5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsaWVudHMtbWF0Y2hh
bGwtY2xpZW50LXR5cGVzLmh0dHBzLmh0bWwKQEAgLTU0LDEwICs1NCw2IEBAIHByb21pc2VfdGVz
dChmdW5jdGlvbih0KSB7CiAgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5k
X3JlZ2lzdGVyKAogICAgICAgICB0LCAncmVzb3VyY2VzL2NsaWVudHMtbWF0Y2hhbGwtd29ya2Vy
LmpzJywgc2NvcGUpCiAgICAgICAudGhlbihmdW5jdGlvbihyZWdpc3RyYXRpb24pIHsKLSAgICAg
ICAgICB0LmFkZF9jbGVhbnVwKGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICByZXR1cm4gc2Vy
dmljZV93b3JrZXJfdW5yZWdpc3Rlcih0LCBzY29wZSk7Ci0gICAgICAgICAgICB9KTsKLQogICAg
ICAgICAgIHJldHVybiB3YWl0X2Zvcl9zdGF0ZSh0LCByZWdpc3RyYXRpb24uaW5zdGFsbGluZywg
J2FjdGl2YXRlZCcpOwogICAgICAgICB9KQogICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7IHJldHVy
biB3aXRoX2lmcmFtZShpZnJhbWVfdXJsKTsgfSkKQEAgLTcwLDcgKzY2LDkgQEAgcHJvbWlzZV90
ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICAgICAgfSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKCkgewog
ICAgICAgICAgIGZyYW1lLnJlbW92ZSgpOwotICAgICAgICB9KTsKKyAgICAgICAgICByZXR1cm4g
c2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfZG9uZSh0LCBzY29wZSk7CisgICAgICAgIH0p
CisgICAgICAuY2F0Y2godW5yZWFjaGVkX3JlamVjdGlvbih0KSk7CiAgIH0sICdWZXJpZnkgbWF0
Y2hBbGwoKSB3aXRoIHdpbmRvdyBjbGllbnQgdHlwZScpOwogCiBwcm9taXNlX3Rlc3QoZnVuY3Rp
b24odCkgewpAQCAtNzgsMTAgKzc2LDYgQEAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKICAg
ICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIoCiAgICAgICAg
IHQsICdyZXNvdXJjZXMvY2xpZW50cy1tYXRjaGFsbC13b3JrZXIuanMnLCBzY29wZSkKICAgICAg
IC50aGVuKGZ1bmN0aW9uKHJlZ2lzdHJhdGlvbikgewotICAgICAgICAgIHQuYWRkX2NsZWFudXAo
ZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lz
dGVyKHQsIHNjb3BlKTsKLSAgICAgICAgICAgIH0pOwotCiAgICAgICAgICAgcmV0dXJuIHdhaXRf
Zm9yX3N0YXRlKHQsIHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7CiAgICAg
ICAgIH0pCiAgICAgICAudGhlbihmdW5jdGlvbigpIHsgcmV0dXJuIHdpdGhfaWZyYW1lKGlmcmFt
ZV91cmwpOyB9KQpAQCAtMTE4LDYgKzExMiw3IEBAIHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7
CiAgICAgICAgIH0pCiAgICAgICAudGhlbihmdW5jdGlvbigpIHsKICAgICAgICAgICBmcmFtZS5y
ZW1vdmUoKTsKKyAgICAgICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRf
ZG9uZSh0LCBzY29wZSk7CiAgICAgICAgIH0pOwogfSwgJ1ZlcmlmeSBtYXRjaEFsbCgpIHdpdGgg
e3dpbmRvdywgc2hhcmVkd29ya2VyLCB3b3JrZXJ9IGNsaWVudCB0eXBlcycpOwogCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGllbnRzLW1hdGNoYWxsLWV4YWN0LWNvbnRyb2xsZXIu
aHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xpZW50cy1tYXRjaGFsbC1l
eGFjdC1jb250cm9sbGVyLmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCBlNDI0NzNlMWY0ZDdhYmQ3
ZjQwZjA5N2MyZmY4YWZiYzM1OTdkZjBjLi45MzBlYzMzYTQ1Zjg3ZTFkNzI4ZGZhNmJlNDExN2Nj
NjM3ZTQ5NGY2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGllbnRzLW1hdGNoYWxs
LWV4YWN0LWNvbnRyb2xsZXIuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL2NsaWVudHMtbWF0Y2hhbGwtZXhhY3QtY29udHJvbGxlci5odHRwcy1leHBlY3RlZC50eHQK
QEAgLTEsNCArMSw0IEBACiAKIAotRkFJTCBUZXN0IENsaWVudHMubWF0Y2hBbGwoKSB3aXRoIGV4
YWN0IGNvbnRyb2xsZXIgYXNzZXJ0X2FycmF5X2VxdWFsczogcHJvcGVydHkgMSwgZXhwZWN0ZWQg
ZmFsc2UgYnV0IGdvdCB0cnVlCitGQUlMIFRlc3QgQ2xpZW50cy5tYXRjaEFsbCgpIHdpdGggZXhh
Y3QgY29udHJvbGxlciBhc3NlcnRfdW5yZWFjaGVkOiB1bmV4cGVjdGVkIHJlamVjdGlvbjogYXNz
ZXJ0X2FycmF5X2VxdWFsczogcHJvcGVydHkgMSwgZXhwZWN0ZWQgZmFsc2UgYnV0IGdvdCB0cnVl
IFJlYWNoZWQgdW5yZWFjaGFibGUgY29kZQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9jbGllbnRzLW1hdGNoYWxsLWV4YWN0LWNvbnRyb2xsZXIuaHR0cHMuaHRtbCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL2NsaWVudHMtbWF0Y2hhbGwtZXhhY3QtY29udHJvbGxlci5odHRwcy5odG1sCmlu
ZGV4IGE2MWM4YWY3MDE5NmFjMjMwYzRiNzA4NTg2MmUxYmZmODQzM2ZlMzguLmVlNjBjNGE2MDc3
ZDc5OWMyNTU3ZTA5NjMyMjI4MWE3MjZkZjlkOGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL2NsaWVudHMtbWF0Y2hhbGwtZXhhY3QtY29udHJvbGxlci5odHRwcy5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL2NsaWVudHMtbWF0Y2hhbGwtZXhhY3QtY29udHJvbGxlci5odHRwcy5o
dG1sCkBAIC01LDYgKzUsNyBAQAogPHNjcmlwdCBzcmM9InJlc291cmNlcy90ZXN0LWhlbHBlcnMu
c3ViLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+CiBjb25zdCBzY29wZSA9ICdyZXNvdXJjZXMvYmxh
bmsuaHRtbD9jbGllbnRzLW1hdGNoQWxsJzsKK2NvbnN0IHQgPSBhc3luY190ZXN0KCdUZXN0IENs
aWVudHMubWF0Y2hBbGwoKSB3aXRoIGV4YWN0IGNvbnRyb2xsZXInKTsKIGxldCBmcmFtZXMgPSBb
XTsKIAogZnVuY3Rpb24gY2hlY2tXb3JrZXJDbGllbnRzKHdvcmtlciwgZXhwZWN0ZWQpIHsKQEAg
LTMyLDEyICszMywxMCBAQCBsZXQgZXhwZWN0ZWQgPSBbCiAgICAgWyd2aXNpYmxlJywgZmFsc2Us
IG5ldyBVUkwoc2NvcGUgKyAnIzInLCBsb2NhdGlvbikudG9TdHJpbmcoKSwgJ3dpbmRvdycsICdu
ZXN0ZWQnXQogXTsKIAotcHJvbWlzZV90ZXN0KHQgPT4gewordC5zdGVwKF8gPT4gewogICAgIGxl
dCBzY3JpcHQgPSAncmVzb3VyY2VzL2NsaWVudHMtbWF0Y2hhbGwtd29ya2VyLmpzJzsKLSAgICBy
ZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgc2NyaXB0LCBz
Y29wZSkKKyAgICBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCBzY3Jp
cHQsIHNjb3BlKQogICAgICAgLnRoZW4ocmVnaXN0cmF0aW9uID0+IHsKLSAgICAgICAgICB0LmFk
ZF9jbGVhbnVwKCgpID0+IHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXIodCwgc2NvcGUpKTsKLQog
ICAgICAgICAgIHJldHVybiB3YWl0X2Zvcl9zdGF0ZSh0LCByZWdpc3RyYXRpb24uaW5zdGFsbGlu
ZywgJ2FjdGl2YXRlZCcpOwogICAgICAgICB9KQogICAgICAgLnRoZW4oXyA9PiB3aXRoX2lmcmFt
ZShzY29wZSArICcjMScpICkKQEAgLTYyLDYgKzYxLDggQEAgcHJvbWlzZV90ZXN0KHQgPT4gewog
ICAgICAgICB9KQogICAgICAgLnRoZW4oXyA9PiB7CiAgICAgICAgICAgZnJhbWVzLmZvckVhY2go
ZiA9PiBmLnJlbW92ZSgpICk7Ci0gICAgICAgIH0pOwotfSwgJ1Rlc3QgQ2xpZW50cy5tYXRjaEFs
bCgpIHdpdGggZXhhY3QgY29udHJvbGxlcicpOworICAgICAgICAgIHNlcnZpY2Vfd29ya2VyX3Vu
cmVnaXN0ZXJfYW5kX2RvbmUodCwgc2NvcGUpOworICAgICAgICB9KQorICAgICAgLmNhdGNoKHVu
cmVhY2hlZF9yZWplY3Rpb24odCkpOworICB9KTsKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvY2xpZW50cy1tYXRjaGFsbC1pbmNsdWRlLXVuY29udHJvbGxlZC5odHRw
cy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xpZW50cy1tYXRjaGFsbC1pbmNsdWRlLXVuY29u
dHJvbGxlZC5odHRwcy5odG1sCmluZGV4IDlmMzRlNTcwOWViM2NiNjA3ZGNkMWI5MWVjODBiNTFj
MzcwNmRjYTYuLjUwYmQ4MTdmNTY4ODdlZDI4N2FjMTRjMTA4ZjhmM2Q3Y2I0ZWU2MzIgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsaWVudHMtbWF0Y2hhbGwtaW5jbHVkZS11bmNvbnRy
b2xsZWQuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGllbnRzLW1hdGNoYWxs
LWluY2x1ZGUtdW5jb250cm9sbGVkLmh0dHBzLmh0bWwKQEAgLTQsMTE0ICs0LDkwIEBACiA8c2Ny
aXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CiA8c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL3Rlc3QtaGVscGVycy5zdWIuanMiPjwvc2NyaXB0PgogPHNjcmlw
dD4KLWZ1bmN0aW9uIHRlc3RfbWF0Y2hhbGwoc2VydmljZV93b3JrZXIsIGV4cGVjdGVkLCBxdWVy
eV9vcHRpb25zKSB7Ci0gIGV4cGVjdGVkLnNvcnQoKGEsIGIpID0+IGFbMl0gPiBiWzJdID8gMSA6
IC0xKTsKLSAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsKLSAgICBj
b25zdCBjaGFubmVsID0gbmV3IE1lc3NhZ2VDaGFubmVsKCk7Ci0gICAgY2hhbm5lbC5wb3J0MS5v
bm1lc3NhZ2UgPSBlID0+IHsKLSAgICAgIGNvbnN0IGRhdGEgPSBlLmRhdGEuZmlsdGVyKGluZm8g
PT4gewotICAgICAgICByZXR1cm4gaW5mb1syXS5pbmRleE9mKCdjbGllbnRzLW1hdGNoYWxsJykg
PiAtMTsKLSAgICAgIH0pOwotICAgICAgZGF0YS5zb3J0KChhLCBiKSA9PiBhWzJdID4gYlsyXSA/
IDEgOiAtMSk7Ci0gICAgICBhc3NlcnRfZXF1YWxzKGRhdGEubGVuZ3RoLCBleHBlY3RlZC5sZW5n
dGgpOwotICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBkYXRhLmxlbmd0aDsgaSsrKQotICAgICAg
ICBhc3NlcnRfYXJyYXlfZXF1YWxzKGRhdGFbaV0sIGV4cGVjdGVkW2ldKTsKLSAgICAgIHJlc29s
dmUoKTsKLSAgICB9OwotICAgIHNlcnZpY2Vfd29ya2VyLnBvc3RNZXNzYWdlKHtwb3J0OmNoYW5u
ZWwucG9ydDIsIG9wdGlvbnM6cXVlcnlfb3B0aW9uc30sCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgW2NoYW5uZWwucG9ydDJdKTsKLSAgfSk7Ci19Cit2YXIgYmFzZV91cmwgPSAncmVz
b3VyY2VzL2JsYW5rLmh0bWwnOyAvLyBUaGlzIGlzIG91dC1vZi1zY29wZS4KK3ZhciBzY29wZSA9
IGJhc2VfdXJsICsgJz9jbGllbnRzLW1hdGNoQWxsLWluY2x1ZGVVbmNvbnRyb2xsZWQnOwordmFy
IGZyYW1lcyA9IFtdOwogCi0vLyBSdW4gY2xpZW50cy5tYXRjaEFsbCB3aXRob3V0IGFuZCB3aXRo
IGluY2x1ZGVVbmNvbnRyb2xsZWQ9dHJ1ZS4KLS8vIChXZSB3YW50IHRvIHJ1biB0aGUgdHdvIHRl
c3RzIHNlcXVlbnRpYWxseSBpbiB0aGUgc2FtZSBwcm9taXNlX3Rlc3QKLS8vIHNvIHRoYXQgd2Ug
Y2FuIHVzZSB0aGUgc2FtZSBzZXQgb2YgaWZyYW1lcyB3aXRob3V0IGludGVmZXJpbmcgZWFjaCBv
dGhlci4KLXByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKLSAgLy8gfGJhc2VfdXJsfCBpcyBvdXQt
b2Ytc2NvcGUuCi0gIGNvbnN0IGJhc2VfdXJsID0gJ3Jlc291cmNlcy9ibGFuay5odG1sP2NsaWVu
dHMtbWF0Y2hhbGwnOwotICBjb25zdCBzY29wZSA9IGJhc2VfdXJsICsgJy1pbmNsdWRlVW5jb250
cm9sbGVkJzsKLQotICBjb25zdCByZWdpc3RyYXRpb24gPQotICAgICAgYXdhaXQgc2VydmljZV93
b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIoCi0gICAgICAgICAgdCwgJ3Jlc291cmNlcy9j
bGllbnRzLW1hdGNoYWxsLXdvcmtlci5qcycsIHNjb3BlKTsKLSAgdC5hZGRfY2xlYW51cCgoKSA9
PiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyKHQsIHNjb3BlKSk7Ci0gIGNvbnN0IHNlcnZpY2Vf
d29ya2VyID0gcmVnaXN0cmF0aW9uLmluc3RhbGxpbmc7Ci0gIGF3YWl0IHdhaXRfZm9yX3N0YXRl
KHQsIHNlcnZpY2Vfd29ya2VyLCAnYWN0aXZhdGVkJyk7Ci0KLSAgLy8gQ3JlYXRlcyAzIGlmcmFt
ZXMsIDIgZm9yIGluLXNjb3BlIGFuZCAxIGZvciBvdXQtb2Ytc2NvcGUuCi0gIGxldCBmcmFtZXMg
PSBbXTsKLSAgZnJhbWVzLnB1c2goYXdhaXQgd2l0aF9pZnJhbWUoYmFzZV91cmwpKTsKLSAgZnJh
bWVzLnB1c2goYXdhaXQgd2l0aF9pZnJhbWUoc2NvcGUgKyAnIzEnKSk7Ci0gIGZyYW1lcy5wdXNo
KGF3YWl0IHdpdGhfaWZyYW1lKHNjb3BlICsgJyMyJykpOwotCi0gIC8vIE1ha2Ugc3VyZSB3ZSBo
YXZlIGZvY3VzIGZvciAnIzInIGZyYW1lIGFuZCBpdHMgcGFyZW50IHdpbmRvdy4KLSAgZnJhbWVz
WzJdLmZvY3VzKCk7Ci0gIGZyYW1lc1syXS5jb250ZW50V2luZG93LmZvY3VzKCk7CisvLyBDcmVh
dGVzIDMgaWZyYW1lcywgMiBmb3IgaW4tc2NvcGUgYW5kIDEgZm9yIG91dC1vZi1zY29wZS4KKy8v
IFRoZSBmcmFtZSBvcGVuZWQgZm9yIHNjb3BlICsgJyMyJyBpcyByZXR1cm5lZCB2aWEgYSBwcm9t
aXNlLgorZnVuY3Rpb24gY3JlYXRlX2lmcmFtZXMoc2NvcGUpIHsKKyAgcmV0dXJuIHdpdGhfaWZy
YW1lKGJhc2VfdXJsKQorICAgIC50aGVuKGZ1bmN0aW9uKGZyYW1lMCkgeworICAgICAgICBmcmFt
ZXMucHVzaChmcmFtZTApOworICAgICAgICByZXR1cm4gd2l0aF9pZnJhbWUoc2NvcGUgKyAnIzEn
KTsKKyAgICAgIH0pCisgICAgLnRoZW4oZnVuY3Rpb24oZnJhbWUxKSB7CisgICAgICAgIGZyYW1l
cy5wdXNoKGZyYW1lMSk7CisgICAgICAgIHJldHVybiB3aXRoX2lmcmFtZShzY29wZSArICcjMicp
OworICAgICAgfSkKKyAgICAudGhlbihmdW5jdGlvbihmcmFtZTIpIHsKKyAgICAgICAgZnJhbWVz
LnB1c2goZnJhbWUyKTsKKyAgICAgICAgcmV0dXJuIGZyYW1lMjsKKyAgICAgIH0pCit9CiAKLSAg
Y29uc3QgZXhwZWN0ZWRfd2l0aG91dF9pbmNsdWRlX3VuY29udHJvbGxlZCA9IFsKK3ZhciBleHBl
Y3RlZF93aXRob3V0X2luY2x1ZGVfdW5jb250cm9sbGVkID0gWwogICAgIC8vIHZpc2liaWxpdHlT
dGF0ZSwgZm9jdXNlZCwgdXJsLCB0eXBlLCBmcmFtZVR5cGUKICAgICBbJ3Zpc2libGUnLCBmYWxz
ZSwgbmV3IFVSTChzY29wZSArICcjMScsIGxvY2F0aW9uKS50b1N0cmluZygpLCAnd2luZG93Jywg
J25lc3RlZCddLAogICAgIFsndmlzaWJsZScsIHRydWUsIG5ldyBVUkwoc2NvcGUgKyAnIzInLCBs
b2NhdGlvbikudG9TdHJpbmcoKSwgJ3dpbmRvdycsICduZXN0ZWQnXQotICBdOwotICBjb25zdCBl
eHBlY3RlZF93aXRoX2luY2x1ZGVfdW5jb250cm9sbGVkID0gWworXTsKKwordmFyIGV4cGVjdGVk
X3dpdGhfaW5jbHVkZV91bmNvbnRyb2xsZWQgPSBbCiAgICAgLy8gdmlzaWJpbGl0eVN0YXRlLCBm
b2N1c2VkLCB1cmwsIHR5cGUsIGZyYW1lVHlwZQogICAgIFsndmlzaWJsZScsIHRydWUsIGxvY2F0
aW9uLmhyZWYsICd3aW5kb3cnLCAndG9wLWxldmVsJ10sCiAgICAgWyd2aXNpYmxlJywgZmFsc2Us
IG5ldyBVUkwoc2NvcGUgKyAnIzEnLCBsb2NhdGlvbikudG9TdHJpbmcoKSwgJ3dpbmRvdycsICdu
ZXN0ZWQnXSwKICAgICBbJ3Zpc2libGUnLCB0cnVlLCBuZXcgVVJMKHNjb3BlICsgJyMyJywgbG9j
YXRpb24pLnRvU3RyaW5nKCksICd3aW5kb3cnLCAnbmVzdGVkJ10sCiAgICAgWyd2aXNpYmxlJywg
ZmFsc2UsIG5ldyBVUkwoYmFzZV91cmwsIGxvY2F0aW9uKS50b1N0cmluZygpLCAnd2luZG93Jywg
J25lc3RlZCddCi0gIF07Ci0KLSAgYXdhaXQgdGVzdF9tYXRjaGFsbChzZXJ2aWNlX3dvcmtlciwg
ZXhwZWN0ZWRfd2l0aG91dF9pbmNsdWRlX3VuY29udHJvbGxlZCk7Ci0gIGF3YWl0IHRlc3RfbWF0
Y2hhbGwoc2VydmljZV93b3JrZXIsIGV4cGVjdGVkX3dpdGhfaW5jbHVkZV91bmNvbnRyb2xsZWQs
Ci0gICAgICAgICAgICAgICAgICAgICAgeyBpbmNsdWRlVW5jb250cm9sbGVkOiB0cnVlIH0pOwot
fSwgJ1ZlcmlmeSBtYXRjaEFsbCgpIHdpdGggd2luZG93cyByZXNwZWN0IGluY2x1ZGVVbmNvbnRy
b2xsZWQnKTsKK107CiAKLS8vIFRPRE86IEFkZCB0ZXN0cyBmb3IgY2xpZW50cy5tYXRjaEFsbCBm
b3IgZGVkaWNhdGVkIHdvcmtlcnMuCi0KLWFzeW5jIGZ1bmN0aW9uIGNyZWF0ZV9zaGFyZWRfd29y
a2VyKHNjcmlwdF91cmwpIHsKLSAgY29uc3Qgc2hhcmVkX3dvcmtlciA9IG5ldyBTaGFyZWRXb3Jr
ZXIoc2NyaXB0X3VybCk7Ci0gIGNvbnN0IG1zZ0V2ZW50ID0gYXdhaXQgbmV3IFByb21pc2UociA9
PiBzaGFyZWRfd29ya2VyLnBvcnQub25tZXNzYWdlID0gcik7Ci0gIGFzc2VydF9lcXVhbHMobXNn
RXZlbnQuZGF0YSwgJ3N0YXJ0ZWQnKTsKLSAgcmV0dXJuIHNoYXJlZF93b3JrZXI7CitmdW5jdGlv
biB0ZXN0X21hdGNoYWxsKGZyYW1lLCBleHBlY3RlZCwgcXVlcnlfb3B0aW9ucykgeworICAvLyBN
YWtlIHN1cmUgd2UgaGF2ZSBmb2N1cyBmb3IgJyMyJyBmcmFtZSBhbmQgaXRzIHBhcmVudCB3aW5k
b3cuCisgIGZyYW1lLmZvY3VzKCk7CisgIGZyYW1lLmNvbnRlbnRXaW5kb3cuZm9jdXMoKTsKKyAg
ZXhwZWN0ZWQuc29ydChmdW5jdGlvbihhLCBiKSB7IHJldHVybiBhWzJdID4gYlsyXSA/IDEgOiAt
MTsgfSk7CisgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsK
KyAgICB2YXIgY2hhbm5lbCA9IG5ldyBNZXNzYWdlQ2hhbm5lbCgpOworICAgIGNoYW5uZWwucG9y
dDEub25tZXNzYWdlID0gZnVuY3Rpb24oZSkgeworICAgICAgLy8gSWdub3JlIGhpZGRlbiBjbGll
bnRzIHdoaWNoIG1heSBiZSBjb21pbmcgZnJvbSBiYWNrZ3JvdW5kIHRhYnMsIG9yCisgICAgICAv
LyBjbGllbnRzIHVucmVsYXRlZCB0byB0aGlzIHRlc3QuCisgICAgICB2YXIgZGF0YSA9IGUuZGF0
YS5maWx0ZXIoZnVuY3Rpb24oaW5mbykgeworICAgICAgICByZXR1cm4gaW5mb1swXSA9PSAndmlz
aWJsZScgJiYKKyAgICAgICAgICAgICAgIGluZm9bMl0uaW5kZXhPZignc2VydmljZS13b3JrZXIn
KSA+IC0xOworICAgICAgfSk7CisgICAgICBkYXRhLnNvcnQoZnVuY3Rpb24oYSwgYikgeyByZXR1
cm4gYVsyXSA+IGJbMl0gPyAxIDogLTE7IH0pOworICAgICAgYXNzZXJ0X2VxdWFscyhkYXRhLmxl
bmd0aCwgZXhwZWN0ZWQubGVuZ3RoKTsKKyAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZGF0YS5s
ZW5ndGg7IGkrKykKKyAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhkYXRhW2ldLCBleHBlY3Rl
ZFtpXSk7CisgICAgICByZXNvbHZlKGZyYW1lKTsKKyAgICB9OworICAgIGZyYW1lLmNvbnRlbnRX
aW5kb3cubmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuY29udHJvbGxlci5wb3N0TWVzc2FnZSgKKyAg
ICAgICAge3BvcnQ6Y2hhbm5lbC5wb3J0Miwgb3B0aW9uczpxdWVyeV9vcHRpb25zfSwKKyAgICAg
ICAgW2NoYW5uZWwucG9ydDJdKTsKKyAgfSk7CiB9CiAKLS8vIFJ1biBjbGllbnRzLm1hdGNoQWxs
IGZvciBzaGFyZWQgd29ya2VycyB3aXRob3V0IGFuZCB3aXRoCi0vLyBpbmNsdWRlVW5jb250cm9s
bGVkPXRydWUuCi1wcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7Ci0gIGNvbnN0IHNjcmlwdF91cmwg
PSAncmVzb3VyY2VzL2NsaWVudHMtbWF0Y2hhbGwtY2xpZW50LXR5cGVzLXNoYXJlZC13b3JrZXIu
anMnOwotICBjb25zdCB1bmNvbnRyb2xsZWRfc2NyaXB0X3VybCA9Ci0gICAgICBuZXcgVVJMKHNj
cmlwdF91cmwgKyAnP3VuY29udHJvbGxlZCcsIGxvY2F0aW9uKS50b1N0cmluZygpOwotICBjb25z
dCBjb250cm9sbGVkX3NjcmlwdF91cmwgPQotICAgICAgbmV3IFVSTChzY3JpcHRfdXJsICsgJz9j
b250cm9sbGVkJywgbG9jYXRpb24pLnRvU3RyaW5nKCk7Ci0KLSAgLy8gU3RhcnQgYSBzaGFyZWQg
d29ya2VyIHRoYXQgaXMgbm90IGNvbnRyb2xsZWQgYnkgYSBzZXJ2aWNlIHdvcmtlci4KLSAgY29u
c3QgdW5jb250cm9sbGVkX3NoYXJlZF93b3JrZXIgPQotICAgICAgYXdhaXQgY3JlYXRlX3NoYXJl
ZF93b3JrZXIodW5jb250cm9sbGVkX3NjcmlwdF91cmwpOwotCi0gIC8vIFJlZ2lzdGVyIGEgc2Vy
dmljZSB3b3JrZXIuCi0gIGNvbnN0IHJlZ2lzdHJhdGlvbiA9Ci0gICAgICBhd2FpdCBzZXJ2aWNl
X3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3RlcigKLSAgICAgICAgICB0LCAncmVzb3VyY2Vz
L2NsaWVudHMtbWF0Y2hhbGwtd29ya2VyLmpzJywgc2NyaXB0X3VybCk7Ci0gIHQuYWRkX2NsZWFu
dXAoKCkgPT4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcih0LCBzY3JpcHRfdXJsKSk7Ci0gIGNv
bnN0IHNlcnZpY2Vfd29ya2VyID0gcmVnaXN0cmF0aW9uLmluc3RhbGxpbmc7Ci0gIGF3YWl0IHdh
aXRfZm9yX3N0YXRlKHQsIHNlcnZpY2Vfd29ya2VyLCAnYWN0aXZhdGVkJyk7Ci0KLSAgLy8gU3Rh
cnQgYW5vdGhlciBzaGFyZWQgd29ya2VyIGNvbnRyb2xsZWQgYnkgdGhlIHNlcnZpY2Ugd29ya2Vy
LgotICBhd2FpdCBjcmVhdGVfc2hhcmVkX3dvcmtlcihjb250cm9sbGVkX3NjcmlwdF91cmwpOwot
Ci0gIGNvbnN0IGV4cGVjdGVkX3dpdGhvdXRfaW5jbHVkZV91bmNvbnRyb2xsZWQgPSBbCi0gICAg
Ly8gdmlzaWJpbGl0eVN0YXRlLCBmb2N1c2VkLCB1cmwsIHR5cGUsIGZyYW1lVHlwZQotICAgIFt1
bmRlZmluZWQsIHVuZGVmaW5lZCwgY29udHJvbGxlZF9zY3JpcHRfdXJsLCAnc2hhcmVkd29ya2Vy
JywgJ25vbmUnXSwKLSAgXTsKLSAgY29uc3QgZXhwZWN0ZWRfd2l0aF9pbmNsdWRlX3VuY29udHJv
bGxlZCA9IFsKLSAgICAvLyB2aXNpYmlsaXR5U3RhdGUsIGZvY3VzZWQsIHVybCwgdHlwZSwgZnJh
bWVUeXBlCi0gICAgW3VuZGVmaW5lZCwgdW5kZWZpbmVkLCBjb250cm9sbGVkX3NjcmlwdF91cmws
ICdzaGFyZWR3b3JrZXInLCAnbm9uZSddLAotICAgIFt1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5j
b250cm9sbGVkX3NjcmlwdF91cmwsICdzaGFyZWR3b3JrZXInLCAnbm9uZSddLAotICBdOworLy8g
UnVuIGNsaWVudHMubWF0Y2hBbGwgd2l0aG91dCBhbmQgd2l0aCBpbmNsdWRlVW5jb250cm9sbGVk
PXRydWUuCisvLyAoV2Ugd2FudCB0byBydW4gdGhlIHR3byB0ZXN0cyBzZXF1ZW50aWFsbHkgaW4g
dGhlIHNhbWUgYXN5bmNfdGVzdAorLy8gc28gdGhhdCB3ZSBjYW4gdXNlIHRoZSBzYW1lIHNldCBv
ZiBpZnJhbWVzIHdpdGhvdXQgaW50ZWZlcmluZyBlYWNoIG90aGVyLgorYXN5bmNfdGVzdChmdW5j
dGlvbih0KSB7CisgICAgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIoCisg
ICAgICAgIHQsICdyZXNvdXJjZXMvY2xpZW50cy1tYXRjaGFsbC13b3JrZXIuanMnLCBzY29wZSkK
KyAgICAgIC50aGVuKGZ1bmN0aW9uKHJlZ2lzdHJhdGlvbikgeworICAgICAgICAgIHJldHVybiB3
YWl0X2Zvcl9zdGF0ZSh0LCByZWdpc3RyYXRpb24uaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOwor
ICAgICAgICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7IHJldHVybiBjcmVhdGVfaWZyYW1l
cyhzY29wZSk7IH0pCisgICAgICAudGhlbihmdW5jdGlvbihmcmFtZSkgeworICAgICAgICAgIHJl
dHVybiB0ZXN0X21hdGNoYWxsKGZyYW1lLCBleHBlY3RlZF93aXRob3V0X2luY2x1ZGVfdW5jb250
cm9sbGVkKTsKKyAgICAgICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKGZyYW1lKSB7CisgICAg
ICAgICAgcmV0dXJuIHRlc3RfbWF0Y2hhbGwoZnJhbWUsIGV4cGVjdGVkX3dpdGhfaW5jbHVkZV91
bmNvbnRyb2xsZWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2luY2x1ZGVVbmNv
bnRyb2xsZWQ6dHJ1ZX0pOworICAgICAgICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7Cisg
ICAgICAgICAgZnJhbWVzLmZvckVhY2goZnVuY3Rpb24oZikgeyBmLnJlbW92ZSgpIH0pOworICAg
ICAgICAgIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX2RvbmUodCwgc2NvcGUpOworICAg
ICAgICB9KQorICAgICAgLmNhdGNoKHVucmVhY2hlZF9yZWplY3Rpb24odCkpOworICB9LCAnVmVy
aWZ5IG1hdGNoQWxsKCkgcmVzcGVjdCBpbmNsdWRlVW5jb250cm9sbGVkJyk7CiAKLSAgYXdhaXQg
dGVzdF9tYXRjaGFsbChzZXJ2aWNlX3dvcmtlciwgZXhwZWN0ZWRfd2l0aG91dF9pbmNsdWRlX3Vu
Y29udHJvbGxlZCwKLSAgICAgICAgICAgICAgICAgICAgICB7IHR5cGU6ICdzaGFyZWR3b3JrZXIn
IH0pOwotICBhd2FpdCB0ZXN0X21hdGNoYWxsKHNlcnZpY2Vfd29ya2VyLCBleHBlY3RlZF93aXRo
X2luY2x1ZGVfdW5jb250cm9sbGVkLAotICAgICAgICAgICAgICAgICAgICAgIHsgaW5jbHVkZVVu
Y29udHJvbGxlZDogdHJ1ZSwgdHlwZTogJ3NoYXJlZHdvcmtlcicgfSk7Ci19LCAnVmVyaWZ5IG1h
dGNoQWxsKCkgd2l0aCBzaGFyZWQgd29ya2VycyByZXNwZWN0IGluY2x1ZGVVbmNvbnRyb2xsZWQn
KTsKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xpZW50cy1tYXRj
aGFsbC1vcmRlci5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xpZW50cy1tYXRjaGFs
bC1vcmRlci5odHRwcy5odG1sCmluZGV4IGVjNjUwZjIyNjRkZjUzMGJkMzRiMTE3MzdjNGIxZDll
ZDg3ZjRiNTYuLjJjMWU5NTZkMWQ4NGJmODJlMzc5ODI3ODE5MTRiYmFhNzJhNDIwNjIgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsaWVudHMtbWF0Y2hhbGwtb3JkZXIuaHR0cHMuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGllbnRzLW1hdGNoYWxsLW9yZGVyLmh0dHBzLmh0
bWwKQEAgLTEsNiArMSw1IEBACiA8IURPQ1RZUEUgaHRtbD4KIDx0aXRsZT5TZXJ2aWNlIFdvcmtl
cjogQ2xpZW50cy5tYXRjaEFsbCBvcmRlcmluZzwvdGl0bGU+Ci08bWV0YSBuYW1lPXRpbWVvdXQg
Y29udGVudD1sb25nPgogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwv
c2NyaXB0PgogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwv
c2NyaXB0PgogPHNjcmlwdCBzcmM9InJlc291cmNlcy90ZXN0LWhlbHBlcnMuc3ViLmpzIj48L3Nj
cmlwdD4KQEAgLTEyMyw4ICsxMjIsNiBAQCBmdW5jdGlvbiBtYXRjaEFsbE9yZGVyVGVzdCh0LCBv
cHRzKSB7CiAgIGxldCBmcmFtZVJlc3VsdExpc3Q7CiAgIGxldCBleHRyYVdpbmRvd1Jlc3VsdDsK
ICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHNjcmlw
dCwgb3B0cy5zY29wZSkudGhlbihzd3IgPT4gewotICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gc2Vy
dmljZV93b3JrZXJfdW5yZWdpc3Rlcih0LCBvcHRzLnNjb3BlKSk7Ci0KICAgICB3b3JrZXIgPSBz
d3IuaW5zdGFsbGluZzsKICAgICByZXR1cm4gd2FpdF9mb3Jfc3RhdGUodCwgd29ya2VyLCAnYWN0
aXZhdGVkJyk7CiAgIH0pLnRoZW4oXyA9PiB7CkBAIC0xNDUsNiArMTQyLDggQEAgZnVuY3Rpb24g
bWF0Y2hBbGxPcmRlclRlc3QodCwgb3B0cykgewogICB9KS50aGVuKF8gPT4gewogICAgIGZyYW1l
UmVzdWx0TGlzdC5mb3JFYWNoKHJlc3VsdCA9PiByZXN1bHQudG9wLnJlbW92ZSgpKTsKICAgICBl
eHRyYVdpbmRvd1Jlc3VsdC50b3AucmVtb3ZlKCk7CisgIH0pLnRoZW4oXyA9PiB7CisgICAgcmV0
dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX2RvbmUodCwgb3B0cy5zY29wZSk7CiAg
IH0pLmNhdGNoKGUgPT4gewogICAgIGlmIChmcmFtZVJlc3VsdExpc3QpIHsKICAgICAgIGZyYW1l
UmVzdWx0TGlzdC5mb3JFYWNoKHJlc3VsdCA9PiByZXN1bHQudG9wLnJlbW92ZSgpKTsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsaWVudHMtbWF0Y2hhbGwuaHR0cHMuaHRtbCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL2NsaWVudHMtbWF0Y2hhbGwuaHR0cHMuaHRtbAppbmRleCBjZTQ0ZjE5
MjRkNTQ5NTJhZmU0NDJiMTliZDBiNDZjNWY5Mjk1MWQ1Li4zNjI2OWI0ZDk4ZTJiNzJmNTU1MTgy
NjhjMWJjZmQxNGFiYjIxMjk5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGllbnRz
LW1hdGNoYWxsLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xpZW50cy1tYXRj
aGFsbC5odHRwcy5odG1sCkBAIC01LDE1ICs1LDEyIEBACiA8c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L3Rlc3QtaGVscGVycy5zdWIuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KIHZhciBzY29wZSA9ICdy
ZXNvdXJjZXMvYmxhbmsuaHRtbD9jbGllbnRzLW1hdGNoQWxsJzsKK3ZhciB0ID0gYXN5bmNfdGVz
dCgnVGVzdCBDbGllbnRzLm1hdGNoQWxsKCknKTsKIHZhciBmcmFtZXMgPSBbXTsKLXByb21pc2Vf
dGVzdChmdW5jdGlvbih0KSB7Ci0gICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJf
YW5kX3JlZ2lzdGVyKAordC5zdGVwKGZ1bmN0aW9uKCkgeworICAgIHNlcnZpY2Vfd29ya2VyX3Vu
cmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKAogICAgICAgICB0LCAncmVzb3VyY2VzL2NsaWVudHMtbWF0
Y2hhbGwtd29ya2VyLmpzJywgc2NvcGUpCiAgICAgICAudGhlbihmdW5jdGlvbihyZWdpc3RyYXRp
b24pIHsKLSAgICAgICAgICB0LmFkZF9jbGVhbnVwKGZ1bmN0aW9uKCkgewotICAgICAgICAgICAg
ICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcih0LCBzY29wZSk7Ci0gICAgICAgICAg
ICB9KTsKLQogICAgICAgICAgIHJldHVybiB3YWl0X2Zvcl9zdGF0ZSh0LCByZWdpc3RyYXRpb24u
aW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOwogICAgICAgICB9KQogICAgICAgLnRoZW4oZnVuY3Rp
b24oKSB7IHJldHVybiB3aXRoX2lmcmFtZShzY29wZSArICcjMScpOyB9KQpAQCAtMjUsMTUgKzIy
LDEyIEBAIHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7CiAgICAgICAudGhlbihmdW5jdGlvbihm
cmFtZTIpIHsKICAgICAgICAgICBmcmFtZXMucHVzaChmcmFtZTIpOwogICAgICAgICAgIHZhciBj
aGFubmVsID0gbmV3IE1lc3NhZ2VDaGFubmVsKCk7Ci0KLSAgICAgICAgICByZXR1cm4gbmV3IFBy
b21pc2UoZnVuY3Rpb24ocmVzb2x2ZSkgewotICAgICAgICAgICAgICBjaGFubmVsLnBvcnQxLm9u
bWVzc2FnZSA9IHJlc29sdmU7Ci0gICAgICAgICAgICAgIGZyYW1lMi5jb250ZW50V2luZG93Lm5h
dmlnYXRvci5zZXJ2aWNlV29ya2VyLmNvbnRyb2xsZXIucG9zdE1lc3NhZ2UoCi0gICAgICAgICAg
ICAgICAgICB7cG9ydDpjaGFubmVsLnBvcnQyfSwgW2NoYW5uZWwucG9ydDJdKTsKLSAgICAgICAg
ICAgIH0pOworICAgICAgICAgIGNoYW5uZWwucG9ydDEub25tZXNzYWdlID0gdC5zdGVwX2Z1bmMo
b25NZXNzYWdlKTsKKyAgICAgICAgICBmcmFtZTIuY29udGVudFdpbmRvdy5uYXZpZ2F0b3Iuc2Vy
dmljZVdvcmtlci5jb250cm9sbGVyLnBvc3RNZXNzYWdlKAorICAgICAgICAgICAgICB7cG9ydDpj
aGFubmVsLnBvcnQyfSwgW2NoYW5uZWwucG9ydDJdKTsKICAgICAgICAgfSkKLSAgICAgIC50aGVu
KG9uTWVzc2FnZSk7Ci19LCAnVGVzdCBDbGllbnRzLm1hdGNoQWxsKCknKTsKKyAgICAgIC5jYXRj
aCh1bnJlYWNoZWRfcmVqZWN0aW9uKHQpKTsKKyAgfSk7CiAKIHZhciBleHBlY3RlZCA9IFsKICAg
ICAvLyB2aXNpYmlsaXR5U3RhdGUsIGZvY3VzZWQsIHVybCwgdHlwZSwgZnJhbWVUeXBlCkBAIC00
Niw1ICs0MCw2IEBAIGZ1bmN0aW9uIG9uTWVzc2FnZShlKSB7CiAgIGFzc2VydF9hcnJheV9lcXVh
bHMoZS5kYXRhWzBdLCBleHBlY3RlZFswXSk7CiAgIGFzc2VydF9hcnJheV9lcXVhbHMoZS5kYXRh
WzFdLCBleHBlY3RlZFsxXSk7CiAgIGZyYW1lcy5mb3JFYWNoKGZ1bmN0aW9uKGYpIHsgZi5yZW1v
dmUoKTsgfSk7CisgIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX2RvbmUodCwgc2NvcGUp
OwogfQogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jb250cm9sbGVy
LW9uLWRpc2Nvbm5lY3QuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NvbnRyb2xsZXIt
b24tZGlzY29ubmVjdC5odHRwcy5odG1sCmluZGV4IGYyM2RmZTcxYmFjNTA1ZjFjYzM5NmJjYWIx
OTFkYmVlN2E2NDYxZjQuLjkyMGQxOTBlM2IyMDE0N2NmMTgzZjg5NjY0ZmY3ZWQ4NGE0ZWMzZGUg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NvbnRyb2xsZXItb24tZGlzY29ubmVjdC5o
dHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NvbnRyb2xsZXItb24tZGlzY29ubmVj
dC5odHRwcy5odG1sCkBAIC01LDI1ICs1LDIyIEBACiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Rl
c3QtaGVscGVycy5zdWIuanMiPjwvc2NyaXB0PgogPGJvZHk+CiA8c2NyaXB0PgotcHJvbWlzZV90
ZXN0KGZ1bmN0aW9uKHQpIHsKK3ZhciB0ID0gYXN5bmNfdGVzdCgnY29udHJvbGxlciBpcyBjbGVh
cmVkIG9uIGRpc2Nvbm5lY3RlZCB3aW5kb3cnKTsKK3Quc3RlcChmdW5jdGlvbigpIHsKICAgICB2
YXIgdXJsID0gJ3Jlc291cmNlcy9lbXB0eS13b3JrZXIuanMnOwogICAgIHZhciBzY29wZSA9ICdy
ZXNvdXJjZXMvYmxhbmsuaHRtbCc7CiAgICAgdmFyIHJlZ2lzdHJhdGlvbjsKICAgICB2YXIgY29u
dHJvbGxlcjsKICAgICB2YXIgZnJhbWU7Ci0gICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVn
aXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHVybCwgc2NvcGUpCi0gICAgICAudGhlbihmdW5jdGlvbihz
d3IpIHsKLSAgICAgICAgICB0LmFkZF9jbGVhbnVwKGZ1bmN0aW9uKCkgewotICAgICAgICAgICAg
ICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcih0LCBzY29wZSk7Ci0gICAgICAgICAg
ICB9KTsKLQorICAgIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHVy
bCwgc2NvcGUpCisgICAgICAudGhlbih0LnN0ZXBfZnVuYyhmdW5jdGlvbihzd3IpIHsKICAgICAg
ICAgICByZWdpc3RyYXRpb24gPSBzd3I7CiAgICAgICAgICAgcmV0dXJuIHdhaXRfZm9yX3N0YXRl
KHQsIHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7Ci0gICAgICAgIH0pCi0g
ICAgICAudGhlbihmdW5jdGlvbigpIHsKKyAgICAgICAgfSkpCisgICAgICAudGhlbih0LnN0ZXBf
ZnVuYyhmdW5jdGlvbigpIHsKICAgICAgICAgICByZXR1cm4gd2l0aF9pZnJhbWUoc2NvcGUpCi0g
ICAgICAgIH0pCi0gICAgICAudGhlbihmdW5jdGlvbihmKSB7CisgICAgICAgIH0pKQorICAgICAg
LnRoZW4odC5zdGVwX2Z1bmMoZnVuY3Rpb24oZikgewogICAgICAgICAgIGZyYW1lID0gZjsKICAg
ICAgICAgICB2YXIgdyA9IGZyYW1lLmNvbnRlbnRXaW5kb3c7CiAgICAgICAgICAgdmFyIHN3YyA9
IHcubmF2aWdhdG9yLnNlcnZpY2VXb3JrZXI7CkBAIC0zNCw3ICszMSwxMCBAQCBwcm9taXNlX3Rl
c3QoZnVuY3Rpb24odCkgewogCiAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzd2MuY29udHJvbGxl
ciwgbnVsbCwKICAgICAgICAgICAgICAgICAgICAgICAgICdkaXNjb25uZWN0ZWQgZnJhbWUgc2hv
dWxkIG5vdCBiZSBjb250cm9sbGVkJyk7Ci0gICAgICAgIH0pOwotfSwgJ2NvbnRyb2xsZXIgaXMg
Y2xlYXJlZCBvbiBkaXNjb25uZWN0ZWQgd2luZG93Jyk7CisKKyAgICAgICAgICBzZXJ2aWNlX3dv
cmtlcl91bnJlZ2lzdGVyX2FuZF9kb25lKHQsIHNjb3BlKTsKKyAgICAgICAgfSkpCisgICAgICAu
Y2F0Y2godW5yZWFjaGVkX3JlamVjdGlvbih0KSk7CisgIH0pOwogPC9zY3JpcHQ+CiA8L2JvZHk+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jb250cm9sbGVyLW9uLWxvYWQuaHR0cHMu
aHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NvbnRyb2xsZXItb24tbG9hZC5odHRwcy5odG1sCmlu
ZGV4IGU0YzVlNWY4MWY4MTM5ZTFjNzg4ZjA2OGY3MTZjZGJiMzY3ZmI4M2UuLjQ5Zjk4Nzk2MjZi
MGM1OTU3Yzc1ZTY0YzM0MjE1YzhlNWNjY2I1MzQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL2NvbnRyb2xsZXItb24tbG9hZC5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L2NvbnRyb2xsZXItb24tbG9hZC5odHRwcy5odG1sCkBAIC01LDI1ICs1LDIyIEBACiA8c2NyaXB0
IHNyYz0icmVzb3VyY2VzL3Rlc3QtaGVscGVycy5zdWIuanMiPjwvc2NyaXB0PgogPGJvZHk+CiA8
c2NyaXB0PgotcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKK3ZhciB0ID0gYXN5bmNfdGVzdCgn
Y29udHJvbGxlciBpcyBzZXQgZm9yIGEgY29udHJvbGxlZCBkb2N1bWVudCcpOwordC5zdGVwKGZ1
bmN0aW9uKCkgewogICAgIHZhciB1cmwgPSAncmVzb3VyY2VzL2VtcHR5LXdvcmtlci5qcyc7CiAg
ICAgdmFyIHNjb3BlID0gJ3Jlc291cmNlcy9ibGFuay5odG1sJzsKICAgICB2YXIgcmVnaXN0cmF0
aW9uOwogICAgIHZhciBjb250cm9sbGVyOwogICAgIHZhciBmcmFtZTsKLSAgICByZXR1cm4gc2Vy
dmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgdXJsLCBzY29wZSkKLSAgICAg
IC50aGVuKGZ1bmN0aW9uKHN3cikgewotICAgICAgICAgIHQuYWRkX2NsZWFudXAoZnVuY3Rpb24o
KSB7Ci0gICAgICAgICAgICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyKHQsIHNj
b3BlKTsKLSAgICAgICAgICAgIH0pOwotCisgICAgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9h
bmRfcmVnaXN0ZXIodCwgdXJsLCBzY29wZSkKKyAgICAgIC50aGVuKHQuc3RlcF9mdW5jKGZ1bmN0
aW9uKHN3cikgewogICAgICAgICAgIHJlZ2lzdHJhdGlvbiA9IHN3cjsKICAgICAgICAgICByZXR1
cm4gd2FpdF9mb3Jfc3RhdGUodCwgcmVnaXN0cmF0aW9uLmluc3RhbGxpbmcsICdhY3RpdmF0ZWQn
KTsKLSAgICAgICAgfSkKLSAgICAgIC50aGVuKGZ1bmN0aW9uKCkgeworICAgICAgICB9KSkKKyAg
ICAgIC50aGVuKHQuc3RlcF9mdW5jKGZ1bmN0aW9uKCkgewogICAgICAgICAgIHJldHVybiB3aXRo
X2lmcmFtZShzY29wZSk7Ci0gICAgICAgIH0pCi0gICAgICAudGhlbihmdW5jdGlvbihmKSB7Cisg
ICAgICAgIH0pKQorICAgICAgLnRoZW4odC5zdGVwX2Z1bmMoZnVuY3Rpb24oZikgewogICAgICAg
ICAgIGZyYW1lID0gZjsKICAgICAgICAgICB2YXIgdyA9IGZyYW1lLmNvbnRlbnRXaW5kb3c7CiAg
ICAgICAgICAgY29udHJvbGxlciA9IHcubmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuY29udHJvbGxl
cjsKQEAgLTM1LDEyICszMiwxNCBAQCBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewogICAgICAg
ICAgIGFzc2VydF9ub3RfZXF1YWxzKGNvbnRyb2xsZXIsIHJlZ2lzdHJhdGlvbi5hY3RpdmUpOwog
CiAgICAgICAgICAgcmV0dXJuIHcubmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuZ2V0UmVnaXN0cmF0
aW9uKCk7Ci0gICAgICAgIH0pCi0gICAgICAudGhlbihmdW5jdGlvbihmcmFtZVJlZ2lzdHJhdGlv
bikgeworICAgICAgICB9KSkKKyAgICAgIC50aGVuKHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGZyYW1l
UmVnaXN0cmF0aW9uKSB7CiAgICAgICAgICAgLy8gU1cgb2JqZWN0cyBmcm9tIHNhbWUgd2luZG93
IHNob3VsZCBiZSBlcXVhbAogICAgICAgICAgIGFzc2VydF9lcXVhbHMoZnJhbWVSZWdpc3RyYXRp
b24uYWN0aXZlLCBjb250cm9sbGVyKTsKICAgICAgICAgICBmcmFtZS5yZW1vdmUoKTsKLSAgICAg
ICAgfSk7Ci19LCAnY29udHJvbGxlciBpcyBzZXQgZm9yIGEgY29udHJvbGxlZCBkb2N1bWVudCcp
OworICAgICAgICAgIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX2RvbmUodCwgc2NvcGUp
OworICAgICAgICB9KSkKKyAgICAgIC5jYXRjaCh1bnJlYWNoZWRfcmVqZWN0aW9uKHQpKTsKKyAg
fSk7CiA8L3NjcmlwdD4KIDwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2Nv
bnRyb2xsZXItb24tcmVsb2FkLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jb250cm9s
bGVyLW9uLXJlbG9hZC5odHRwcy5odG1sCmluZGV4IDJlOTY2ZDQyNTc4OGMwYTAyYjFiYjI1YTRj
MDQ1MDg5ZmVkZTVjZTcuLmUwYmViNzI2MGJlMTE2MDg0MzlhYTE2YmNlMGMxNmEwMjVmMjQ4NTgg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NvbnRyb2xsZXItb24tcmVsb2FkLmh0dHBz
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY29udHJvbGxlci1vbi1yZWxvYWQuaHR0cHMu
aHRtbApAQCAtMTMsMTAgKzEzLDYgQEAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICB2
YXIgY29udHJvbGxlcjsKICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcih0LCBz
Y29wZSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKCkgewotICAgICAgICAgIHQuYWRkX2NsZWFudXAo
ZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lz
dGVyKHQsIHNjb3BlKTsKLSAgICAgICAgICAgIH0pOwotCiAgICAgICAgICAgcmV0dXJuIHdpdGhf
aWZyYW1lKHNjb3BlKTsKICAgICAgICAgfSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKGYpIHsKQEAg
LTUyLDYgKzQ4LDcgQEAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICAgIC50aGVuKGZ1
bmN0aW9uKGZyYW1lUmVnaXN0cmF0aW9uKSB7CiAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhmcmFt
ZVJlZ2lzdHJhdGlvbi5hY3RpdmUsIGNvbnRyb2xsZXIpOwogICAgICAgICAgIGZyYW1lLnJlbW92
ZSgpOworICAgICAgICAgIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX2RvbmUodCwgc2Nv
cGUpOwogICAgICAgICB9KTsKICAgfSwgJ2NvbnRyb2xsZXIgaXMgc2V0IHVwb24gcmVsb2FkIGFm
dGVyIHJlZ2lzdHJhdGlvbicpOwogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9kYXRhLXRyYW5zZmVyLWZpbGVzLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL2RhdGEtdHJhbnNmZXItZmlsZXMuaHR0cHMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA1OTM0MGZjOTY2YzY1OTRmOGU3Nzk4ZWY4OTNlMDAxMjkyNjEy
NWMwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL2RhdGEtdHJhbnNmZXItZmlsZXMuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyAv
ZGV2L251bGwKQEAgLTEsNSArMCwwIEBACi0KLQotCi1GQUlMIFBvc3RpbmcgYSBGaWxlIGluIGEg
bmF2aWdhdGlvbiBoYW5kbGVkIGJ5IGEgc2VydmljZSB3b3JrZXIgcHJvbWlzZV90ZXN0OiBVbmhh
bmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBmdW5jdGlvbiBp
cyBub3QgYSBjb25zdHJ1Y3RvciAoZXZhbHVhdGluZyAnbmV3IERhdGFUcmFuc2ZlcigpJykiCi0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2RhdGEtdHJhbnNmZXItZmlsZXMuaHR0cHMu
aHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2RhdGEtdHJhbnNmZXItZmlsZXMuaHR0cHMuaHRtbApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2M4YWI2ZTY3MjcyNmUxNjhiNDRkZmVlNWI0
NzIwMDEyZmZmZWUwYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9kYXRhLXRyYW5zZmVyLWZpbGVzLmh0dHBzLmh0bWwKKysr
IC9kZXYvbnVsbApAQCAtMSw0MSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxtZXRhIGNoYXJz
ZXQ9InV0Zi04Ij4KLTx0aXRsZT5Qb3N0IGEgZmlsZSBpbiBhIG5hdmlnYXRpb24gY29udHJvbGxl
ZCBieSBhIHNlcnZpY2Ugd29ya2VyPC90aXRsZT4KLTxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGVzdC1oZWxw
ZXJzLnN1Yi5qcyI+PC9zY3JpcHQ+Ci08Ym9keT4KLTxpZnJhbWUgaWQ9dGVzdGZyYW1lIG5hbWU9
dGVzdGZyYW1lPjwvaWZyYW1lPgotPGZvcm0gaWQ9dGVzdGZvcm0gbWV0aG9kPXBvc3QgYWN0aW9u
PSIvaHRtbC9zZW1hbnRpY3MvZm9ybXMvZm9ybS1zdWJtaXNzaW9uLTAvcmVzb3VyY2VzL2ZpbGUt
c3VibWlzc2lvbi5weSIgdGFyZ2V0PXRlc3RmcmFtZSBlbmN0eXBlPSJtdWx0aXBhcnQvZm9ybS1k
YXRhIj4KLTxpbnB1dCBuYW1lPXRlc3RpbnB1dCBpZD10ZXN0aW5wdXQgdHlwZT1maWxlPgotPC9m
b3JtPgotPHNjcmlwdD4KLS8vIFRlc3QgdGhhdCBEYXRhVHJhbnNmZXIgd2l0aCBhIEZpbGUgZW50
cnkgd29ya3Mgd2hlbiBwb3N0ZWQgdG8gYQotLy8gc2VydmljZSB3b3JrZXIgdGhhdCBmYWxscyBi
YWNrIHRvIG5ldHdvcmsuIFJlZ3Jlc3Npb24gdGVzdCBmb3IKLS8vIGh0dHBzOi8vY3JidWcuY29t
Lzk0NDE0NS4KLXByb21pc2VfdGVzdChhc3luYyAodCkgPT4gewotICBjb25zdCBzY29wZSA9ICcv
aHRtbC9zZW1hbnRpY3MvZm9ybXMvZm9ybS1zdWJtaXNzaW9uLTAvcmVzb3VyY2VzLyc7Ci0gIGNv
bnN0IGhlYWRlciA9IGBwaXBlPWhlYWRlcihTZXJ2aWNlLVdvcmtlci1BbGxvd2VkLCR7c2NvcGV9
KWA7Ci0gIGNvbnN0IHNjcmlwdCA9IGByZXNvdXJjZXMvZmV0Y2gtZXZlbnQtbmV0d29yay1mYWxs
YmFjay13b3JrZXIuanM/JHtoZWFkZXJ9YDsKLQotICBjb25zdCByZWdpc3RyYXRpb24gPSBhd2Fp
dCBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3RlcigKLSAgICAgIHQsIHNjcmlw
dCwgc2NvcGUpOwotICBhd2FpdCB3YWl0X2Zvcl9zdGF0ZSh0LCByZWdpc3RyYXRpb24uaW5zdGFs
bGluZywgJ2FjdGl2YXRlZCcpOwotCi0gIGNvbnN0IGRhdGFUcmFuc2ZlciA9IG5ldyBEYXRhVHJh
bnNmZXIoKTsKLSAgZGF0YVRyYW5zZmVyLml0ZW1zLmFkZChuZXcgRmlsZShbJ2Zvb2JhciddLCAn
bmFtZScpKTsKLSAgYXNzZXJ0X2VxdWFscygxLCBkYXRhVHJhbnNmZXIuZmlsZXMubGVuZ3RoKTsK
LQotICB0ZXN0aW5wdXQuZmlsZXMgPSBkYXRhVHJhbnNmZXIuZmlsZXM7Ci0gIHRlc3Rmb3JtLnN1
Ym1pdCgpOwotCi0gIGNvbnN0IGRhdGEgPSBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHsK
LSAgICBvbm1lc3NhZ2UgPSBlID0+IHsKLSAgICAgIGlmIChlLnNvdXJjZSAhPT0gdGVzdGZyYW1l
KSByZXR1cm47Ci0gICAgICByZXNvbHZlKGUuZGF0YSk7Ci0gICAgfTsKLSAgfSk7Ci0gIGFzc2Vy
dF9lcXVhbHMoZGF0YSwgIkZpZWxkU3RvcmFnZSgndGVzdGlucHV0JywgJ25hbWUnLCAnZm9vYmFy
JykiKTsKLX0sICdQb3N0aW5nIGEgRmlsZSBpbiBhIG5hdmlnYXRpb24gaGFuZGxlZCBieSBhIHNl
cnZpY2Ugd29ya2VyJyk7Ci08L3NjcmlwdD4KLTwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL2RldGFjaGVkLWNvbnRleHQuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvZGV0YWNoZWQtY29udGV4dC5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggZjU4YjYw
YTgzNzI2MmQzNzc2ODQ0MjQwZDAxODkzOTQ0ZjNkMjI2MC4uMWI3YTJjNjAyMDRmNmMyZDEwNDRh
N2IzZGQyNTNlYjEyOTRhNmZlOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZGV0YWNo
ZWQtY29udGV4dC5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZGV0
YWNoZWQtY29udGV4dC5odHRwcy1leHBlY3RlZC50eHQKQEAgLTEsMyArMSw0IEBACisgCiAKIFBB
U1MgYWNjZXNzaW5nIGEgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbiBmcm9tIGEgcmVtb3ZlZCBp
ZnJhbWUgCiBQQVNTIGFjY2Vzc2luZyBhIFNlcnZpY2VXb3JrZXIgb2JqZWN0IGZyb20gYSByZW1v
dmVkIGlmcmFtZSAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2RldGFjaGVkLWNvbnRl
eHQuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2RldGFjaGVkLWNvbnRleHQuaHR0cHMu
aHRtbAppbmRleCBmOTYzNzBkMjAxMDAwZDIwYTk1MDE2NmRjY2YyY2FmNzJiZDQ3M2MxLi41YWU0
ZGU4Y2M4MWUwYzM2NTBlYWFmNmI1NjU2MTkzZDRhMmNmOGIwIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9kZXRhY2hlZC1jb250ZXh0Lmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvZGV0YWNoZWQtY29udGV4dC5odHRwcy5odG1sCkBAIC01OSw3ICs1OSw2IEBAIHByb21p
c2VfdGVzdCh0ID0+IHsKICAgICAgIC50aGVuKCgpID0+IHsKICAgICAgICAgICBhc3NlcnRfZXF1
YWxzKHJlc29sdmVkQ291bnQsIDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAnbWV0aG9kcyBj
YWxsZWQgb24gYSBkZXRhY2hlZCByZWdpc3RyYXRpb24gc2hvdWxkIG5vdCByZXNvbHZlJyk7Ci0g
ICAgICAgICAgZnJhbWUucmVtb3ZlKCk7CiAgICAgICAgIH0pCiAgIH0sICdhY2Nlc3NpbmcgYSBT
ZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uIGZyb20gYSByZW1vdmVkIGlmcmFtZScpOwogCkBAIC0x
MDMsNyArMTAyLDYgQEAgcHJvbWlzZV90ZXN0KHQgPT4gewogICAgICAgICBhc3NlcnRfZXF1YWxz
KAogICAgICAgICAgICAgZ2V0X25hdmlnYXRvcigpLnNlcnZpY2VXb3JrZXIsCiAgICAgICAgICAg
ICBpZnJhbWUuY29udGVudFdpbmRvdy5uYXZpZ2F0b3Iuc2VydmljZVdvcmtlcik7Ci0gICAgICAg
IGlmcmFtZS5yZW1vdmUoKTsKICAgICAgIH0pOwogICB9LCAnYWNjZXNzaW5nIG5hdmlnYXRvci5z
ZXJ2aWNlV29ya2VyIG9uIGEgZGV0YWNoZWQgaWZyYW1lJyk7CiAKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL2V4dGVuZGFibGUtZXZlbnQtYXN5bmMtd2FpdHVudGlsLmh0dHBzLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2V4dGVuZGFibGUtZXZlbnQtYXN5bmMtd2FpdHVu
dGlsLmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCBmNzU3MDU1NDg0ZGUzOGQ4ZTU3ZDIzOWJkMTE4
NjViYzdlYmU1MjNjLi45MDJhOTc4NGQ3NjFkOTc3NmZmYjQ2MjEyZWM1NjMxOTcwNWFkZjRlIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9leHRlbmRhYmxlLWV2ZW50LWFzeW5jLXdhaXR1
bnRpbC5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZXh0ZW5kYWJs
ZS1ldmVudC1hc3luYy13YWl0dW50aWwuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0xLDE3ICsxLDEz
IEBACiAKIAotUEFTUyBUZXN0IGNhbGxpbmcgd2FpdFVudGlsIGluIGEgdGFzayBhdCB0aGUgZW5k
IG9mIHRoZSBldmVudCBoYW5kbGVyIHdpdGhvdXQgYW4gZXhpc3RpbmcgZXh0ZW5zaW9uIHRocm93
cyAKLVBBU1MgVGVzdCBjYWxsaW5nIHdhaXRVbnRpbCBpbiBhIG1pY3JvdGFzayBhdCB0aGUgZW5k
IG9mIHRoZSBldmVudCBoYW5kbGVyIHdpdGhvdXQgYW4gZXhpc3RpbmcgZXh0ZW5zaW9uIHN1Y2Vl
ZHMgCi1QQVNTIFRlc3QgY2FsbGluZyB3YWl0VW50aWwgaW4gYSBkaWZmZXJlbnQgdGFzayBhbiBl
eGlzdGluZyBleHRlbnNpb24gc3VjY2VlZHMgCi1QQVNTIFRlc3QgY2FsbGluZyB3YWl0VW50aWwg
YXQgdGhlIGVuZCBvZiBhbiBleGlzdGluZyBleHRlbnNpb24gcHJvbWlzZSBoYW5kbGVyIHN1Y2Nl
ZWRzIChldmVudCBpcyBzdGlsbCBiZWluZyBkaXNwYXRjaGVkKSAKLVBBU1MgVGVzdCBjYWxsaW5n
IHdhaXRVbnRpbCBpbiBhIG1pY3JvdGFzayBhdCB0aGUgZW5kIG9mIGFuIGV4aXN0aW5nIGV4dGVu
c2lvbiBwcm9taXNlIGhhbmRsZXIgc3VjY2VlZHMgKGV2ZW50IGlzIHN0aWxsIGJlaW5nIGRpc3Bh
dGNoZWQpIAotUEFTUyBUZXN0IGNhbGxpbmcgd2FpdFVudGlsIGluIGFuIGV4aXN0aW5nIGV4dGVu
c2lvbiBwcm9taXNlIGhhbmRsZXIgc3VjY2VlZHMgKGV2ZW50IGlzIG5vdCBiZWluZyBkaXNwYXRj
aGVkKSAKLVBBU1MgVGVzdCBjYWxsaW5nIHdhaXRVbnRpbCBpbiBhIG1pY3JvdGFzayBhdCB0aGUg
ZW5kIG9mIGFuIGV4aXN0aW5nIGV4dGVuc2lvbiBwcm9taXNlIGhhbmRsZXIgdGhyb3dzIChldmVu
dCBpcyBub3QgYmVpbmcgZGlzcGF0Y2hlZCkgCitQQVNTIFRlc3QgY2FsbGluZyB3YWl0VW50aWwg
aW4gYSBkaWZmZXJlbnQgdGFzayB3aXRob3V0IGFuIGV4aXN0aW5nIGV4dGVuc2lvbiB0aHJvd3Mg
CitGQUlMIFRlc3QgY2FsbGluZyB3YWl0VW50aWwgaW4gYSBkaWZmZXJlbnQgbWljcm90YXNrIHdp
dGhvdXQgYW4gZXhpc3RpbmcgZXh0ZW5zaW9uIHRocm93cyBhc3NlcnRfdW5yZWFjaGVkOiB1bmV4
cGVjdGVkIHJlamVjdGlvbjogYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIkludmFsaWRTdGF0ZUVy
cm9yIiBidXQgZ290ICJPSyIgUmVhY2hlZCB1bnJlYWNoYWJsZSBjb2RlCitQQVNTIFRlc3QgY2Fs
bGluZyB3YWl0VW50aWwgaW4gYSBkaWZmZXJlbnQgdGFzayB3aXRoIGFuIGV4aXN0aW5nIGV4dGVu
c2lvbiBzdWNjZWVkcyAKK1BBU1MgVGVzdCBjYWxsaW5nIHdhaXRVbnRpbCB3aXRoIGFuIGV4aXN0
aW5nIGV4dGVuc2lvbiBwcm9taXNlIGhhbmRsZXIgc3VjY2VlZHMgCitGQUlMIFRlc3QgY2FsbGlu
ZyB3YWl0VW50aWwgYXQgdGhlIGVuZCBvZiB0aGUgbWljcm90YXNrIHR1cm4gdGhyb3dzIGFzc2Vy
dF91bnJlYWNoZWQ6IHVuZXhwZWN0ZWQgcmVqZWN0aW9uOiBhc3NlcnRfZXF1YWxzOiBleHBlY3Rl
ZCAiSW52YWxpZFN0YXRlRXJyb3IiIGJ1dCBnb3QgIk9LIiBSZWFjaGVkIHVucmVhY2hhYmxlIGNv
ZGUKIFBBU1MgVGVzdCBjYWxsaW5nIHdhaXRVbnRpbCBhZnRlciB0aGUgY3VycmVudCBleHRlbnNp
b24gZXhwaXJlZCBpbiBhIGRpZmZlcmVudCB0YXNrIGZhaWxzIAogUEFTUyBUZXN0IGNhbGxpbmcg
d2FpdFVudGlsIG9uIGEgc2NyaXB0IGNvbnN0cnVjdGVkIEV4dGVuZGFibGVFdmVudCB0aHJvd3Mg
ZXhjZXB0aW9uIAogUEFTUyBUZXN0IGNhbGxpbmcgd2FpdFVudGlsIGFzeW5jaHJvbm91c2x5IHdp
dGggcGVuZGluZyByZXNwb25kV2l0aCBwcm9taXNlLiAKLVBBU1MgVGVzdCBjYWxsaW5nIHdhaXRV
bnRpbCBzeW5jaHJvbm91c2x5IGluc2lkZSBtaWNyb3Rhc2sgb2YgcmVzcG9uZFdpdGggcHJvbWlz
ZSAoZXZlbnQgaXMgYmVpbmcgZGlzcGF0Y2hlZCkuIAotUEFTUyBUZXN0IGNhbGxpbmcgd2FpdFVu
dGlsIGFzeW5jaHJvbm91c2x5IGluc2lkZSBtaWNyb3Rhc2sgb2YgcmVzcG9uZFdpdGggcHJvbWlz
ZSAoZXZlbnQgaXMgYmVpbmcgZGlzcGF0Y2hlZCkuIAotUEFTUyBUZXN0IGNhbGxpbmcgd2FpdFVu
dGlsIHN5bmNocm9ub3VzbHkgaW5zaWRlIG1pY3JvdGFzayBvZiByZXNwb25kV2l0aCBwcm9taXNl
IChldmVudCBpcyBub3QgYmVpbmcgZGlzcGF0Y2hlZCkuIAotUEFTUyBUZXN0IGNhbGxpbmcgd2Fp
dFVudGlsIGFzeW5jaHJvbm91c2x5IGluc2lkZSBtaWNyb3Rhc2sgb2YgcmVzcG9uZFdpdGggcHJv
bWlzZSAoZXZlbnQgaXMgbm90IGJlaW5nIGRpc3BhdGNoZWQpLiAKK1BBU1MgVGVzdCBjYWxsaW5n
IHdhaXRVbnRpbCBzeW5jaHJvbm91c2x5IGluc2lkZSBtaWNyb3Rhc2sgb2YgcmVzcG9uZFdpdGgg
cHJvbWlzZS4gCitGQUlMIFRlc3QgY2FsbGluZyB3YWl0VW50aWwgYXN5bmNocm9ub3VzbHkgaW5z
aWRlIG1pY3JvdGFzayBvZiByZXNwb25kV2l0aCBwcm9taXNlLiBhc3NlcnRfdW5yZWFjaGVkOiB1
bmV4cGVjdGVkIHJlamVjdGlvbjogYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIkludmFsaWRTdGF0
ZUVycm9yIiBidXQgZ290ICJPSyIgUmVhY2hlZCB1bnJlYWNoYWJsZSBjb2RlCiAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL2V4dGVuZGFibGUtZXZlbnQtYXN5bmMtd2FpdHVudGlsLmh0
dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9leHRlbmRhYmxlLWV2ZW50LWFzeW5jLXdhaXR1
bnRpbC5odHRwcy5odG1sCmluZGV4IDA0ZTk4MjY2YjRmMWEwYjZlYzU3MmUxYzMxN2FiODUyZmMy
ZTQ0ODAuLmJlNGVmYmJjMzQyMjJmNzA4Nzc1M2M3NTkyMGFlZTFlY2VkOTk4YjAgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL2V4dGVuZGFibGUtZXZlbnQtYXN5bmMtd2FpdHVudGlsLmh0
dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZXh0ZW5kYWJsZS1ldmVudC1hc3luYy13
YWl0dW50aWwuaHR0cHMuaHRtbApAQCAtMSw1ICsxLDQgQEAKIDwhRE9DVFlQRSBodG1sPgotPG1l
dGEgbmFtZT0idGltZW91dCIgY29udGVudD0ibG9uZyI+CiA8c2NyaXB0IHNyYz0iL3Jlc291cmNl
cy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLWhlbHBlcnMuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVz
dGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgpAQCAtMjMsMTkgKzIyLDE1IEBAIGZ1bmN0aW9u
IHN5bmNfbWVzc2FnZSh3b3JrZXIsIG1lc3NhZ2UsIHRyYW5zZmVyKSB7CiBmdW5jdGlvbiBydW5U
ZXN0KHRlc3QsIHN0ZXAsIHRlc3RCb2R5KSB7CiAgIHZhciBzY29wZSA9ICcuL3Jlc291cmNlcy8n
ICsgc3RlcDsKICAgdmFyIHNjcmlwdCA9ICdyZXNvdXJjZXMvZXh0ZW5kYWJsZS1ldmVudC1hc3lu
Yy13YWl0dW50aWwuanM/JyArIHNjb3BlOwotICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdp
c3Rlcl9hbmRfcmVnaXN0ZXIodGVzdCwgc2NyaXB0LCBzY29wZSkKKyAgc2VydmljZV93b3JrZXJf
dW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodGVzdCwgc2NyaXB0LCBzY29wZSkKICAgICAudGhlbihm
dW5jdGlvbihyZWdpc3RyYXRpb24pIHsKLSAgICAgICAgdGVzdC5hZGRfY2xlYW51cChmdW5jdGlv
bigpIHsKLSAgICAgICAgICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyKHRlc3Qs
IHNjb3BlKTsKLSAgICAgICAgICB9KTsKLQogICAgICAgICBsZXQgd29ya2VyID0gcmVnaXN0cmF0
aW9uLmluc3RhbGxpbmc7CiAgICAgICAgIHZhciBjaGFubmVsID0gbmV3IE1lc3NhZ2VDaGFubmVs
KCk7CiAgICAgICAgIHZhciBzYXdfbWVzc2FnZSA9IG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29s
dmUpIHsKICAgICAgICAgICBjaGFubmVsLnBvcnQxLm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGUpIHsg
cmVzb2x2ZShlLmRhdGEpOyB9CiAgICAgICAgIH0pOwogCi0gICAgICAgIHJldHVybiB3YWl0X2Zv
cl9zdGF0ZSh0ZXN0LCB3b3JrZXIsICdhY3RpdmF0ZWQnKQorICAgICAgICB3YWl0X2Zvcl9zdGF0
ZSh0ZXN0LCB3b3JrZXIsICdhY3RpdmF0ZWQnKQogICAgICAgICAgIC50aGVuKGZ1bmN0aW9uKCkg
ewogICAgICAgICAgICAgICByZXR1cm4gc3luY19tZXNzYWdlKHdvcmtlciwgeyBzdGVwOiAnaW5p
dCcsIHBvcnQ6IGNoYW5uZWwucG9ydDIgfSwKICAgICAgICAgICAgICAgICBbY2hhbm5lbC5wb3J0
Ml0pOwpAQCAtNDUsNyArNDAsOSBAQCBmdW5jdGlvbiBydW5UZXN0KHRlc3QsIHN0ZXAsIHRlc3RC
b2R5KSB7CiAgICAgICAgICAgLnRoZW4oZnVuY3Rpb24ob3V0cHV0KSB7CiAgICAgICAgICAgICAg
IGFzc2VydF9lcXVhbHMob3V0cHV0LnJlc3VsdCwgb3V0cHV0LmV4cGVjdGVkKTsKICAgICAgICAg
ICAgIH0pCi0gICAgICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7IHJldHVybiBzeW5jX21lc3NhZ2Uo
d29ya2VyLCB7IHN0ZXA6ICdkb25lJyB9KTsgfSk7CisgICAgICAgICAgLnRoZW4oZnVuY3Rpb24o
KSB7IHJldHVybiBzeW5jX21lc3NhZ2Uod29ya2VyLCB7IHN0ZXA6ICdkb25lJyB9KTsgfSkKKyAg
ICAgICAgICAudGhlbigoKSA9PiB7IHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX2RvbmUo
dGVzdCwgc2NvcGUpOyB9KQorICAgICAgICAgIC5jYXRjaCh1bnJlYWNoZWRfcmVqZWN0aW9uKHRl
c3QpKTsKICAgICAgIH0pOwogfQogCkBAIC01Myw2OCArNTAsNTIgQEAgZnVuY3Rpb24gbXNnX2V2
ZW50X3Rlc3Qoc2NvcGUsIHRlc3QpIHsKICAgdmFyIHRlc3RCb2R5ID0gZnVuY3Rpb24od29ya2Vy
KSB7CiAgICAgcmV0dXJuIHN5bmNfbWVzc2FnZSh3b3JrZXIsIHsgc3RlcDogc2NvcGUgfSk7CiAg
IH07Ci0gIHJldHVybiBydW5UZXN0KHRlc3QsIHNjb3BlLCB0ZXN0Qm9keSk7CisgIHJ1blRlc3Qo
dGVzdCwgc2NvcGUsIHRlc3RCb2R5KTsKIH0KIAotcHJvbWlzZV90ZXN0KG1zZ19ldmVudF90ZXN0
LmJpbmQodGhpcywgJ25vLWN1cnJlbnQtZXh0ZW5zaW9uLWRpZmZlcmVudC10YXNrJyksCi0gICdU
ZXN0IGNhbGxpbmcgd2FpdFVudGlsIGluIGEgdGFzayBhdCB0aGUgZW5kIG9mIHRoZSBldmVudCBo
YW5kbGVyIHdpdGhvdXQgYW4gZXhpc3RpbmcgZXh0ZW5zaW9uIHRocm93cycpOwotCi1wcm9taXNl
X3Rlc3QobXNnX2V2ZW50X3Rlc3QuYmluZCh0aGlzLCAnbm8tY3VycmVudC1leHRlbnNpb24tZGlm
ZmVyZW50LW1pY3JvdGFzaycpLAotICAnVGVzdCBjYWxsaW5nIHdhaXRVbnRpbCBpbiBhIG1pY3Jv
dGFzayBhdCB0aGUgZW5kIG9mIHRoZSBldmVudCBoYW5kbGVyIHdpdGhvdXQgYW4gZXhpc3Rpbmcg
ZXh0ZW5zaW9uIHN1Y2VlZHMnKTsKK2FzeW5jX3Rlc3QobXNnX2V2ZW50X3Rlc3QuYmluZCh0aGlz
LCAnbm8tY3VycmVudC1leHRlbnNpb24tZGlmZmVyZW50LXRhc2snKSwKKyAgJ1Rlc3QgY2FsbGlu
ZyB3YWl0VW50aWwgaW4gYSBkaWZmZXJlbnQgdGFzayB3aXRob3V0IGFuIGV4aXN0aW5nIGV4dGVu
c2lvbiB0aHJvd3MnKTsKIAotcHJvbWlzZV90ZXN0KG1zZ19ldmVudF90ZXN0LmJpbmQodGhpcywg
J2N1cnJlbnQtZXh0ZW5zaW9uLWRpZmZlcmVudC10YXNrJyksCi0gICdUZXN0IGNhbGxpbmcgd2Fp
dFVudGlsIGluIGEgZGlmZmVyZW50IHRhc2sgYW4gZXhpc3RpbmcgZXh0ZW5zaW9uIHN1Y2NlZWRz
Jyk7Cithc3luY190ZXN0KG1zZ19ldmVudF90ZXN0LmJpbmQodGhpcywgJ25vLWN1cnJlbnQtZXh0
ZW5zaW9uLWRpZmZlcmVudC1taWNyb3Rhc2snKSwKKyAgJ1Rlc3QgY2FsbGluZyB3YWl0VW50aWwg
aW4gYSBkaWZmZXJlbnQgbWljcm90YXNrIHdpdGhvdXQgYW4gZXhpc3RpbmcgZXh0ZW5zaW9uIHRo
cm93cycpOwogCi1wcm9taXNlX3Rlc3QobXNnX2V2ZW50X3Rlc3QuYmluZCh0aGlzLCAnZHVyaW5n
LWV2ZW50LWRpc3BhdGNoLWN1cnJlbnQtZXh0ZW5zaW9uLWV4cGlyZWQtc2FtZS1taWNyb3Rhc2st
dHVybicpLAotICAnVGVzdCBjYWxsaW5nIHdhaXRVbnRpbCBhdCB0aGUgZW5kIG9mIGFuIGV4aXN0
aW5nIGV4dGVuc2lvbiBwcm9taXNlIGhhbmRsZXIgc3VjY2VlZHMgKGV2ZW50IGlzIHN0aWxsIGJl
aW5nIGRpc3BhdGNoZWQpJyk7Cithc3luY190ZXN0KG1zZ19ldmVudF90ZXN0LmJpbmQodGhpcywg
J2N1cnJlbnQtZXh0ZW5zaW9uLWRpZmZlcmVudC10YXNrJyksCisgICdUZXN0IGNhbGxpbmcgd2Fp
dFVudGlsIGluIGEgZGlmZmVyZW50IHRhc2sgd2l0aCBhbiBleGlzdGluZyBleHRlbnNpb24gc3Vj
Y2VlZHMnKTsKIAotcHJvbWlzZV90ZXN0KG1zZ19ldmVudF90ZXN0LmJpbmQodGhpcywgJ2R1cmlu
Zy1ldmVudC1kaXNwYXRjaC1jdXJyZW50LWV4dGVuc2lvbi1leHBpcmVkLXNhbWUtbWljcm90YXNr
LXR1cm4tZXh0cmEnKSwKLSAgJ1Rlc3QgY2FsbGluZyB3YWl0VW50aWwgaW4gYSBtaWNyb3Rhc2sg
YXQgdGhlIGVuZCBvZiBhbiBleGlzdGluZyBleHRlbnNpb24gcHJvbWlzZSBoYW5kbGVyIHN1Y2Nl
ZWRzIChldmVudCBpcyBzdGlsbCBiZWluZyBkaXNwYXRjaGVkKScpOworYXN5bmNfdGVzdChtc2df
ZXZlbnRfdGVzdC5iaW5kKHRoaXMsICdjdXJyZW50LWV4dGVuc2lvbi1leHBpcmVkLXNhbWUtbWlj
cm90YXNrLXR1cm4nKSwKKyAgJ1Rlc3QgY2FsbGluZyB3YWl0VW50aWwgd2l0aCBhbiBleGlzdGlu
ZyBleHRlbnNpb24gcHJvbWlzZSBoYW5kbGVyIHN1Y2NlZWRzJyk7CiAKLXByb21pc2VfdGVzdCht
c2dfZXZlbnRfdGVzdC5iaW5kKHRoaXMsICdhZnRlci1ldmVudC1kaXNwYXRjaC1jdXJyZW50LWV4
dGVuc2lvbi1leHBpcmVkLXNhbWUtbWljcm90YXNrLXR1cm4nKSwKLSAgJ1Rlc3QgY2FsbGluZyB3
YWl0VW50aWwgaW4gYW4gZXhpc3RpbmcgZXh0ZW5zaW9uIHByb21pc2UgaGFuZGxlciBzdWNjZWVk
cyAoZXZlbnQgaXMgbm90IGJlaW5nIGRpc3BhdGNoZWQpJyk7CisvLyBUaGUgcHJvbWlzZSBoYW5k
bGVyIHdpbGwgcXVldWUgYSBuZXcgbWljcm90YXNrIGFmdGVyIHRoZSBjaGVjayBmb3IgbmV3Cisv
LyBleHRlbnNpb25zIHdhcyBwZXJmb3JtZWQuCithc3luY190ZXN0KG1zZ19ldmVudF90ZXN0LmJp
bmQodGhpcywgJ2N1cnJlbnQtZXh0ZW5zaW9uLWV4cGlyZWQtc2FtZS1taWNyb3Rhc2stdHVybi1l
eHRyYScpLAorICAnVGVzdCBjYWxsaW5nIHdhaXRVbnRpbCBhdCB0aGUgZW5kIG9mIHRoZSBtaWNy
b3Rhc2sgdHVybiB0aHJvd3MnKTsKIAotcHJvbWlzZV90ZXN0KG1zZ19ldmVudF90ZXN0LmJpbmQo
dGhpcywgJ2FmdGVyLWV2ZW50LWRpc3BhdGNoLWN1cnJlbnQtZXh0ZW5zaW9uLWV4cGlyZWQtc2Ft
ZS1taWNyb3Rhc2stdHVybi1leHRyYScpLAotICAnVGVzdCBjYWxsaW5nIHdhaXRVbnRpbCBpbiBh
IG1pY3JvdGFzayBhdCB0aGUgZW5kIG9mIGFuIGV4aXN0aW5nIGV4dGVuc2lvbiBwcm9taXNlIGhh
bmRsZXIgdGhyb3dzIChldmVudCBpcyBub3QgYmVpbmcgZGlzcGF0Y2hlZCknKTsKLQotcHJvbWlz
ZV90ZXN0KG1zZ19ldmVudF90ZXN0LmJpbmQodGhpcywgJ2N1cnJlbnQtZXh0ZW5zaW9uLWV4cGly
ZWQtZGlmZmVyZW50LXRhc2snKSwKK2FzeW5jX3Rlc3QobXNnX2V2ZW50X3Rlc3QuYmluZCh0aGlz
LCAnY3VycmVudC1leHRlbnNpb24tZXhwaXJlZC1kaWZmZXJlbnQtdGFzaycpLAogICAnVGVzdCBj
YWxsaW5nIHdhaXRVbnRpbCBhZnRlciB0aGUgY3VycmVudCBleHRlbnNpb24gZXhwaXJlZCBpbiBh
IGRpZmZlcmVudCB0YXNrIGZhaWxzJyk7CiAKLXByb21pc2VfdGVzdChtc2dfZXZlbnRfdGVzdC5i
aW5kKHRoaXMsICdzY3JpcHQtZXh0ZW5kYWJsZS1ldmVudCcpLAorYXN5bmNfdGVzdChtc2dfZXZl
bnRfdGVzdC5iaW5kKHRoaXMsICdzY3JpcHQtZXh0ZW5kYWJsZS1ldmVudCcpLAogICAnVGVzdCBj
YWxsaW5nIHdhaXRVbnRpbCBvbiBhIHNjcmlwdCBjb25zdHJ1Y3RlZCBFeHRlbmRhYmxlRXZlbnQg
dGhyb3dzIGV4Y2VwdGlvbicpOwogCi1wcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgeworYXN5bmNf
dGVzdChmdW5jdGlvbih0KSB7CiAgICAgdmFyIHRlc3RCb2R5ID0gZnVuY3Rpb24od29ya2VyKSB7
Ci0gICAgICByZXR1cm4gd2l0aF9pZnJhbWUoJy4vcmVzb3VyY2VzL3BlbmRpbmctcmVzcG9uZHdp
dGgtYXN5bmMtd2FpdHVudGlsJyk7CisgICAgICByZXR1cm4gd2l0aF9pZnJhbWUoJy4vcmVzb3Vy
Y2VzL3BlbmRpbmctcmVzcG9uZHdpdGgtYXN5bmMtd2FpdHVudGlsL2R1bW15Lmh0bWwnKTsKICAg
ICB9Ci0gICAgcmV0dXJuIHJ1blRlc3QodCwgJ3BlbmRpbmctcmVzcG9uZHdpdGgtYXN5bmMtd2Fp
dHVudGlsJywgdGVzdEJvZHkpOworICAgIHJ1blRlc3QodCwgJ3BlbmRpbmctcmVzcG9uZHdpdGgt
YXN5bmMtd2FpdHVudGlsJywgdGVzdEJvZHkpOwogICB9LCAnVGVzdCBjYWxsaW5nIHdhaXRVbnRp
bCBhc3luY2hyb25vdXNseSB3aXRoIHBlbmRpbmcgcmVzcG9uZFdpdGggcHJvbWlzZS4nKTsKIAot
cHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKK2FzeW5jX3Rlc3QoZnVuY3Rpb24odCkgewogICAg
IHZhciB0ZXN0Qm9keSA9IGZ1bmN0aW9uKHdvcmtlcikgewotICAgICAgcmV0dXJuIHdpdGhfaWZy
YW1lKCcuL3Jlc291cmNlcy9kdXJpbmctZXZlbnQtZGlzcGF0Y2gtcmVzcG9uZHdpdGgtbWljcm90
YXNrLXN5bmMtd2FpdHVudGlsJyk7CisgICAgICByZXR1cm4gd2l0aF9pZnJhbWUoJy4vcmVzb3Vy
Y2VzL3Jlc3BvbmR3aXRoLW1pY3JvdGFzay1zeW5jLXdhaXR1bnRpbC9kdW1teS5odG1sJyk7CiAg
ICAgfQotICAgIHJldHVybiBydW5UZXN0KHQsICdkdXJpbmctZXZlbnQtZGlzcGF0Y2gtcmVzcG9u
ZHdpdGgtbWljcm90YXNrLXN5bmMtd2FpdHVudGlsJywgdGVzdEJvZHkpOwotICB9LCAnVGVzdCBj
YWxsaW5nIHdhaXRVbnRpbCBzeW5jaHJvbm91c2x5IGluc2lkZSBtaWNyb3Rhc2sgb2YgcmVzcG9u
ZFdpdGggcHJvbWlzZSAoZXZlbnQgaXMgYmVpbmcgZGlzcGF0Y2hlZCkuJyk7CisgICAgcnVuVGVz
dCh0LCAncmVzcG9uZHdpdGgtbWljcm90YXNrLXN5bmMtd2FpdHVudGlsJywgdGVzdEJvZHkpOwor
ICB9LCAnVGVzdCBjYWxsaW5nIHdhaXRVbnRpbCBzeW5jaHJvbm91c2x5IGluc2lkZSBtaWNyb3Rh
c2sgb2YgcmVzcG9uZFdpdGggcHJvbWlzZS4nKTsKIAotcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQp
IHsKK2FzeW5jX3Rlc3QoZnVuY3Rpb24odCkgewogICAgIHZhciB0ZXN0Qm9keSA9IGZ1bmN0aW9u
KHdvcmtlcikgewotICAgICAgcmV0dXJuIHdpdGhfaWZyYW1lKCcuL3Jlc291cmNlcy9kdXJpbmct
ZXZlbnQtZGlzcGF0Y2gtcmVzcG9uZHdpdGgtbWljcm90YXNrLWFzeW5jLXdhaXR1bnRpbCcpOwor
ICAgICAgcmV0dXJuIHdpdGhfaWZyYW1lKCcuL3Jlc291cmNlcy9yZXNwb25kd2l0aC1taWNyb3Rh
c2stYXN5bmMtd2FpdHVudGlsL2R1bW15Lmh0bWwnKTsKICAgICB9Ci0gICAgcmV0dXJuIHJ1blRl
c3QodCwgJ2R1cmluZy1ldmVudC1kaXNwYXRjaC1yZXNwb25kd2l0aC1taWNyb3Rhc2stYXN5bmMt
d2FpdHVudGlsJywgdGVzdEJvZHkpOwotICB9LCAnVGVzdCBjYWxsaW5nIHdhaXRVbnRpbCBhc3lu
Y2hyb25vdXNseSBpbnNpZGUgbWljcm90YXNrIG9mIHJlc3BvbmRXaXRoIHByb21pc2UgKGV2ZW50
IGlzIGJlaW5nIGRpc3BhdGNoZWQpLicpOworICAgIHJ1blRlc3QodCwgJ3Jlc3BvbmR3aXRoLW1p
Y3JvdGFzay1hc3luYy13YWl0dW50aWwnLCB0ZXN0Qm9keSk7CisgIH0sICdUZXN0IGNhbGxpbmcg
d2FpdFVudGlsIGFzeW5jaHJvbm91c2x5IGluc2lkZSBtaWNyb3Rhc2sgb2YgcmVzcG9uZFdpdGgg
cHJvbWlzZS4nKTsKIAotcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKLSAgICB2YXIgdGVzdEJv
ZHkgPSBmdW5jdGlvbih3b3JrZXIpIHsKLSAgICAgIHJldHVybiB3aXRoX2lmcmFtZSgnLi9yZXNv
dXJjZXMvYWZ0ZXItZXZlbnQtZGlzcGF0Y2gtcmVzcG9uZHdpdGgtbWljcm90YXNrLXN5bmMtd2Fp
dHVudGlsJyk7Ci0gICAgfQotICAgIHJldHVybiBydW5UZXN0KHQsICdhZnRlci1ldmVudC1kaXNw
YXRjaC1yZXNwb25kd2l0aC1taWNyb3Rhc2stc3luYy13YWl0dW50aWwnLCB0ZXN0Qm9keSk7Ci0g
IH0sICdUZXN0IGNhbGxpbmcgd2FpdFVudGlsIHN5bmNocm9ub3VzbHkgaW5zaWRlIG1pY3JvdGFz
ayBvZiByZXNwb25kV2l0aCBwcm9taXNlIChldmVudCBpcyBub3QgYmVpbmcgZGlzcGF0Y2hlZCku
Jyk7CiAKLXByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7Ci0gICAgdmFyIHRlc3RCb2R5ID0gZnVu
Y3Rpb24od29ya2VyKSB7Ci0gICAgICByZXR1cm4gd2l0aF9pZnJhbWUoJy4vcmVzb3VyY2VzL2Fm
dGVyLWV2ZW50LWRpc3BhdGNoLXJlc3BvbmR3aXRoLW1pY3JvdGFzay1hc3luYy13YWl0dW50aWwn
KTsKLSAgICB9Ci0gICAgcmV0dXJuIHJ1blRlc3QodCwgJ2FmdGVyLWV2ZW50LWRpc3BhdGNoLXJl
c3BvbmR3aXRoLW1pY3JvdGFzay1hc3luYy13YWl0dW50aWwnLCB0ZXN0Qm9keSk7Ci0gIH0sICdU
ZXN0IGNhbGxpbmcgd2FpdFVudGlsIGFzeW5jaHJvbm91c2x5IGluc2lkZSBtaWNyb3Rhc2sgb2Yg
cmVzcG9uZFdpdGggcHJvbWlzZSAoZXZlbnQgaXMgbm90IGJlaW5nIGRpc3BhdGNoZWQpLicpOwog
PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9leHRlbmRhYmxlLWV2ZW50
LXdhaXR1bnRpbC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZXh0ZW5kYWJsZS1ldmVu
dC13YWl0dW50aWwuaHR0cHMuaHRtbAppbmRleCAzM2I0ZWFjNWMxODVlOTExMDIzMDk0ZjIxMGNl
NGRiOWI2ZGRkYWRiLi44ZTc5MGQwZWY1YWQ2ZDg1MTUzNDM2MmRlNTY0N2Q5NjY5OWE2NWY3IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9leHRlbmRhYmxlLWV2ZW50LXdhaXR1bnRpbC5o
dHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2V4dGVuZGFibGUtZXZlbnQtd2FpdHVu
dGlsLmh0dHBzLmh0bWwKQEAgLTYsODUgKzYsNzUgQEAKIDxzY3JpcHQ+CiBmdW5jdGlvbiBydW5U
ZXN0KHRlc3QsIHNjb3BlLCBvblJlZ2lzdGVyKSB7CiAgIHZhciBzY3JpcHQgPSAncmVzb3VyY2Vz
L2V4dGVuZGFibGUtZXZlbnQtd2FpdHVudGlsLmpzPycgKyBzY29wZTsKLSAgcmV0dXJuIHNlcnZp
Y2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHRlc3QsIHNjcmlwdCwgc2NvcGUpCisg
IHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHRlc3QsIHNjcmlwdCwgc2Nv
cGUpCiAgICAgLnRoZW4oZnVuY3Rpb24ocmVnaXN0cmF0aW9uKSB7Ci0gICAgICAgIHRlc3QuYWRk
X2NsZWFudXAoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICByZXR1cm4gc2VydmljZV93b3JrZXJf
dW5yZWdpc3Rlcih0ZXN0LCBzY29wZSk7Ci0gICAgICAgICAgfSk7Ci0KLSAgICAgICAgcmV0dXJu
IG9uUmVnaXN0ZXIocmVnaXN0cmF0aW9uLmluc3RhbGxpbmcpOworICAgICAgICBvblJlZ2lzdGVy
KHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nKTsKICAgICAgIH0pOwogfQogCiAvLyBTZW5kcyBhIFNZ
TiB0byB0aGUgd29ya2VyIGFuZCBhc3luY2hyb25vdXNseSBsaXN0ZW5zIGZvciBhbiBBQ0s7IHNl
dHMKIC8vIHxvYmouc3luY2VkfCB0byB0cnVlIG9uY2UgYWNrJ2QuCi1mdW5jdGlvbiBzeW5jV29y
a2VyKHdvcmtlciwgb2JqKSB7CitmdW5jdGlvbiBzeW5jV29ya2VyKHRlc3QsIHdvcmtlciwgb2Jq
KSB7CiAgIHZhciBjaGFubmVsID0gbmV3IE1lc3NhZ2VDaGFubmVsKCk7CiAgIHdvcmtlci5wb3N0
TWVzc2FnZSh7cG9ydDogY2hhbm5lbC5wb3J0Mn0sIFtjaGFubmVsLnBvcnQyXSk7CiAgIHJldHVy
biBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlKSB7Ci0gICAgICBjaGFubmVsLnBvcnQxLm9u
bWVzc2FnZSA9IHJlc29sdmU7Ci0gICAgfSkudGhlbihmdW5jdGlvbihlKSB7Ci0gICAgICB2YXIg
bWVzc2FnZSA9IGUuZGF0YTsKLSAgICAgIGFzc2VydF9lcXVhbHMobWVzc2FnZSwgJ1NZTkMnLAot
ICAgICAgICAgICAgICAgICAgICAnU2hvdWxkIHJlY2VpdmUgc3luYyBtZXNzYWdlIGZyb20gd29y
a2VyLicpOwotICAgICAgb2JqLnN5bmNlZCA9IHRydWU7Ci0gICAgICBjaGFubmVsLnBvcnQxLnBv
c3RNZXNzYWdlKCdBQ0snKTsKKyAgICAgIGNoYW5uZWwucG9ydDEub25tZXNzYWdlID0gdGVzdC5z
dGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgIHZhciBtZXNzYWdlID0gZS5kYXRhOwor
ICAgICAgICAgIGFzc2VydF9lcXVhbHMobWVzc2FnZSwgJ1NZTkMnLAorICAgICAgICAgICAgICAg
ICAgICAgICAgJ1Nob3VsZCByZWNlaXZlIHN5bmMgbWVzc2FnZSBmcm9tIHdvcmtlci4nKTsKKyAg
ICAgICAgICBvYmouc3luY2VkID0gdHJ1ZTsKKyAgICAgICAgICBjaGFubmVsLnBvcnQxLnBvc3RN
ZXNzYWdlKCdBQ0snKTsKKyAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgIH0pOwogICAgIH0p
OwogfQogCi1wcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgeworYXN5bmNfdGVzdChmdW5jdGlvbih0
KSB7CiAgICAgLy8gUGFzc2luZyBzY29wZSBhcyB0aGUgdGVzdCBzd2l0Y2ggZm9yIHdvcmtlciBz
Y3JpcHQuCiAgICAgdmFyIHNjb3BlID0gJ3Jlc291cmNlcy9pbnN0YWxsLWZ1bGZpbGxlZCc7CiAg
ICAgdmFyIG9uUmVnaXN0ZXIgPSBmdW5jdGlvbih3b3JrZXIpIHsKICAgICAgICAgdmFyIG9iaiA9
IHt9OwotCi0gICAgICAgIHJldHVybiBQcm9taXNlLmFsbChbCi0gICAgICAgICAgICBzeW5jV29y
a2VyKHdvcmtlciwgb2JqKSwKLSAgICAgICAgICAgIHdhaXRfZm9yX3N0YXRlKHQsIHdvcmtlciwg
J2luc3RhbGxlZCcpCi0gICAgICAgICAgXSkudGhlbihmdW5jdGlvbigpIHsKKyAgICAgICAgd2Fp
dF9mb3Jfc3RhdGUodCwgd29ya2VyLCAnaW5zdGFsbGVkJykKKyAgICAgICAgICAudGhlbihmdW5j
dGlvbigpIHsKICAgICAgICAgICAgICAgYXNzZXJ0X3RydWUoCiAgICAgICAgICAgICAgICAgb2Jq
LnN5bmNlZCwKICAgICAgICAgICAgICAgICAnc3RhdGUgc2hvdWxkIGJlICJpbnN0YWxsZWQiIGFm
dGVyIHRoZSB3YWl0VW50aWwgcHJvbWlzZSAnICsKICAgICAgICAgICAgICAgICAgICAgJ2ZvciAi
b25pbnN0YWxsIiBpcyBmdWxmaWxsZWQuJyk7CiAgICAgICAgICAgICAgIHNlcnZpY2Vfd29ya2Vy
X3VucmVnaXN0ZXJfYW5kX2RvbmUodCwgc2NvcGUpOwotICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICB9KQorICAgICAgICAgIC5jYXRjaCh1bnJlYWNoZWRfcmVqZWN0aW9uKHQpKTsKKyAgICAg
ICAgc3luY1dvcmtlcih0LCB3b3JrZXIsIG9iaik7CiAgICAgICB9OwotICAgIHJldHVybiBydW5U
ZXN0KHQsIHNjb3BlLCBvblJlZ2lzdGVyKTsKKyAgICBydW5UZXN0KHQsIHNjb3BlLCBvblJlZ2lz
dGVyKTsKICAgfSwgJ1Rlc3QgaW5zdGFsbCBldmVudCB3YWl0VW50aWwgZnVsZmlsbGVkJyk7CiAK
LXByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7Cithc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKICAg
ICB2YXIgc2NvcGUgPSAncmVzb3VyY2VzL2luc3RhbGwtbXVsdGlwbGUtZnVsZmlsbGVkJzsKICAg
ICB2YXIgb25SZWdpc3RlciA9IGZ1bmN0aW9uKHdvcmtlcikgewogICAgICAgICB2YXIgb2JqMSA9
IHt9OwogICAgICAgICB2YXIgb2JqMiA9IHt9OwotCi0gICAgICAgIHJldHVybiBQcm9taXNlLmFs
bChbCi0gICAgICAgICAgICBzeW5jV29ya2VyKHdvcmtlciwgb2JqMSksCi0gICAgICAgICAgICBz
eW5jV29ya2VyKHdvcmtlciwgb2JqMiksCi0gICAgICAgICAgICB3YWl0X2Zvcl9zdGF0ZSh0LCB3
b3JrZXIsICdpbnN0YWxsZWQnKQotICAgICAgICAgIF0pLnRoZW4oZnVuY3Rpb24oKSB7CisgICAg
ICAgIHdhaXRfZm9yX3N0YXRlKHQsIHdvcmtlciwgJ2luc3RhbGxlZCcpCisgICAgICAgICAgLnRo
ZW4oZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgIGFzc2VydF90cnVlKAogICAgICAgICAgICAg
ICAgIG9iajEuc3luY2VkICYmIG9iajIuc3luY2VkLAogICAgICAgICAgICAgICAgICdzdGF0ZSBz
aG91bGQgYmUgImluc3RhbGxlZCIgYWZ0ZXIgYWxsIHdhaXRVbnRpbCBwcm9taXNlcyAnICsKICAg
ICAgICAgICAgICAgICAgICAgJ2ZvciAib25pbnN0YWxsIiBhcmUgZnVsZmlsbGVkLicpOwotICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgICAgIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5k
X2RvbmUodCwgc2NvcGUpOworICAgICAgICAgICAgfSkKKyAgICAgICAgICAuY2F0Y2godW5yZWFj
aGVkX3JlamVjdGlvbih0KSk7CisgICAgICAgIHN5bmNXb3JrZXIodCwgd29ya2VyLCBvYmoxKTsK
KyAgICAgICAgc3luY1dvcmtlcih0LCB3b3JrZXIsIG9iajIpOwogICAgICAgfTsKLSAgICByZXR1
cm4gcnVuVGVzdCh0LCBzY29wZSwgb25SZWdpc3Rlcik7CisgICAgcnVuVGVzdCh0LCBzY29wZSwg
b25SZWdpc3Rlcik7CiAgIH0sICdUZXN0IEV4dGVuZGFibGVFdmVudCBtdWx0aXBsZSB3YWl0VW50
aWwgZnVsZmlsbGVkLicpOwogCi1wcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgeworYXN5bmNfdGVz
dChmdW5jdGlvbih0KSB7CiAgICAgdmFyIHNjb3BlID0gJ3Jlc291cmNlcy9pbnN0YWxsLXJlamVj
dC1wcmVjZWRlbmNlJzsKICAgICB2YXIgb25SZWdpc3RlciA9IGZ1bmN0aW9uKHdvcmtlcikgewog
ICAgICAgICB2YXIgb2JqMSA9IHt9OwogICAgICAgICB2YXIgb2JqMiA9IHt9OwotCi0gICAgICAg
IHJldHVybiBQcm9taXNlLmFsbChbCi0gICAgICAgICAgICBzeW5jV29ya2VyKHdvcmtlciwgb2Jq
MSkKLSAgICAgICAgICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgICAgICBz
eW5jV29ya2VyKHdvcmtlciwgb2JqMik7Ci0gICAgICAgICAgICAgICAgfSksCi0gICAgICAgICAg
ICB3YWl0X2Zvcl9zdGF0ZSh0LCB3b3JrZXIsICdyZWR1bmRhbnQnKQotICAgICAgICAgIF0pLnRo
ZW4oZnVuY3Rpb24oKSB7CisgICAgICAgIHdhaXRfZm9yX3N0YXRlKHQsIHdvcmtlciwgJ3JlZHVu
ZGFudCcpCisgICAgICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgIGFzc2Vy
dF90cnVlKAogICAgICAgICAgICAgICAgIG9iajEuc3luY2VkLAogICAgICAgICAgICAgICAgICdU
aGUgInJlZHVuZGFudCIgc3RhdGUgd2FzIGVudGVyZWQgYWZ0ZXIgdGhlIGZpcnN0ICJleHRlbmQg
JyArCkBAIC05NSw0NiArODUsNjEgQEAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICAg
ICAgICAgICAgICAnVGhlICJyZWR1bmRhbnQiIHN0YXRlIHdhcyBlbnRlcmVkIGFmdGVyIHRoZSB0
aGlyZCAiZXh0ZW5kICcgKwogICAgICAgICAgICAgICAgICAgJ2xpZmV0aW1lIHByb21pc2UiIHJl
c29sdmVkLicKICAgICAgICAgICAgICAgKTsKKyAgICAgICAgICAgICAgc2VydmljZV93b3JrZXJf
dW5yZWdpc3Rlcl9hbmRfZG9uZSh0LCBzY29wZSk7CisgICAgICAgICAgICB9KQorICAgICAgICAg
IC5jYXRjaCh1bnJlYWNoZWRfcmVqZWN0aW9uKHQpKTsKKworICAgICAgICBzeW5jV29ya2VyKHQs
IHdvcmtlciwgb2JqMSkKKyAgICAgICAgICAudGhlbihmdW5jdGlvbigpIHsKKyAgICAgICAgICAg
ICAgc3luY1dvcmtlcih0LCB3b3JrZXIsIG9iajIpOwogICAgICAgICAgICAgfSk7CiAgICAgICB9
OwotICAgIHJldHVybiBydW5UZXN0KHQsIHNjb3BlLCBvblJlZ2lzdGVyKTsKKyAgICBydW5UZXN0
KHQsIHNjb3BlLCBvblJlZ2lzdGVyKTsKICAgfSwgJ1Rlc3QgRXh0ZW5kYWJsZUV2ZW50IHdhaXRV
bnRpbCByZWplY3QgcHJlY2VkZW5jZS4nKTsKIAotcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsK
K2FzeW5jX3Rlc3QoZnVuY3Rpb24odCkgewogICAgIHZhciBzY29wZSA9ICdyZXNvdXJjZXMvYWN0
aXZhdGUtZnVsZmlsbGVkJzsKICAgICB2YXIgb25SZWdpc3RlciA9IGZ1bmN0aW9uKHdvcmtlcikg
ewogICAgICAgICB2YXIgb2JqID0ge307Ci0gICAgICAgIHJldHVybiB3YWl0X2Zvcl9zdGF0ZSh0
LCB3b3JrZXIsICdhY3RpdmF0aW5nJykKKyAgICAgICAgd2FpdF9mb3Jfc3RhdGUodCwgd29ya2Vy
LCAnYWN0aXZhdGluZycpCiAgICAgICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7Ci0gICAgICAgICAg
ICAgIHJldHVybiBQcm9taXNlLmFsbChbCi0gICAgICAgICAgICAgICAgc3luY1dvcmtlcih3b3Jr
ZXIsIG9iaiksCi0gICAgICAgICAgICAgICAgd2FpdF9mb3Jfc3RhdGUodCwgd29ya2VyLCAnYWN0
aXZhdGVkJykKLSAgICAgICAgICAgICAgXSk7CisgICAgICAgICAgICAgIHN5bmNXb3JrZXIodCwg
d29ya2VyLCBvYmopOworICAgICAgICAgICAgICByZXR1cm4gd2FpdF9mb3Jfc3RhdGUodCwgd29y
a2VyLCAnYWN0aXZhdGVkJyk7CiAgICAgICAgICAgICB9KQogICAgICAgICAgIC50aGVuKGZ1bmN0
aW9uKCkgewogICAgICAgICAgICAgICBhc3NlcnRfdHJ1ZSgKICAgICAgICAgICAgICAgICBvYmou
c3luY2VkLAogICAgICAgICAgICAgICAgICdzdGF0ZSBzaG91bGQgYmUgImFjdGl2YXRlZCIgYWZ0
ZXIgdGhlIHdhaXRVbnRpbCBwcm9taXNlICcgKwogICAgICAgICAgICAgICAgICAgICAnZm9yICJv
bmFjdGl2YXRlIiBpcyBmdWxmaWxsZWQuJyk7Ci0gICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
ICAgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfZG9uZSh0LCBzY29wZSk7CisgICAgICAg
ICAgICB9KQorICAgICAgICAgIC5jYXRjaCh1bnJlYWNoZWRfcmVqZWN0aW9uKHQpKTsKICAgICAg
IH07Ci0gICAgcmV0dXJuIHJ1blRlc3QodCwgc2NvcGUsIG9uUmVnaXN0ZXIpOworICAgIHJ1blRl
c3QodCwgc2NvcGUsIG9uUmVnaXN0ZXIpOwogICB9LCAnVGVzdCBhY3RpdmF0ZSBldmVudCB3YWl0
VW50aWwgZnVsZmlsbGVkJyk7CiAKLXByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7Cithc3luY190
ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICB2YXIgc2NvcGUgPSAncmVzb3VyY2VzL2luc3RhbGwtcmVq
ZWN0ZWQnOwogICAgIHZhciBvblJlZ2lzdGVyID0gZnVuY3Rpb24od29ya2VyKSB7Ci0gICAgICAg
IHJldHVybiB3YWl0X2Zvcl9zdGF0ZSh0LCB3b3JrZXIsICdyZWR1bmRhbnQnKTsKKyAgICAgICAg
d2FpdF9mb3Jfc3RhdGUodCwgd29ya2VyLCAncmVkdW5kYW50JykKKyAgICAgICAgICAudGhlbihm
dW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRf
ZG9uZSh0LCBzY29wZSk7CisgICAgICAgICAgICB9KQorICAgICAgICAgIC5jYXRjaCh1bnJlYWNo
ZWRfcmVqZWN0aW9uKHQpKTsKICAgICAgIH07Ci0gICAgcmV0dXJuIHJ1blRlc3QodCwgc2NvcGUs
IG9uUmVnaXN0ZXIpOworICAgIHJ1blRlc3QodCwgc2NvcGUsIG9uUmVnaXN0ZXIpOwogICB9LCAn
VGVzdCBpbnN0YWxsIGV2ZW50IHdhaXRVbnRpbCByZWplY3RlZCcpOwogCi1wcm9taXNlX3Rlc3Qo
ZnVuY3Rpb24odCkgeworYXN5bmNfdGVzdChmdW5jdGlvbih0KSB7CiAgICAgdmFyIHNjb3BlID0g
J3Jlc291cmNlcy9hY3RpdmF0ZS1yZWplY3RlZCc7CiAgICAgdmFyIG9uUmVnaXN0ZXIgPSBmdW5j
dGlvbih3b3JrZXIpIHsKLSAgICAgICAgcmV0dXJuIHdhaXRfZm9yX3N0YXRlKHQsIHdvcmtlciwg
J2FjdGl2YXRlZCcpOworICAgICAgICB3YWl0X2Zvcl9zdGF0ZSh0LCB3b3JrZXIsICdhY3RpdmF0
ZWQnKQorICAgICAgICAgIC50aGVuKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICBzZXJ2aWNl
X3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9kb25lKHQsIHNjb3BlKTsKKyAgICAgICAgICAgIH0pCisg
ICAgICAgICAgLmNhdGNoKHVucmVhY2hlZF9yZWplY3Rpb24odCkpOwogICAgICAgfTsKLSAgICBy
ZXR1cm4gcnVuVGVzdCh0LCBzY29wZSwgb25SZWdpc3Rlcik7CisgICAgcnVuVGVzdCh0LCBzY29w
ZSwgb25SZWdpc3Rlcik7CiAgIH0sICdUZXN0IGFjdGl2YXRlIGV2ZW50IHdhaXRVbnRpbCByZWpl
Y3RlZC4nKTsKIAogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRj
aC1hdWRpby10YWludGluZy5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9m
ZXRjaC1hdWRpby10YWludGluZy5odHRwcy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDQ5OGY0MTM3MDM3NzIyNmEzY2RkZjIzODFjZGNhZTU5NWE1NDBkZWQuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvZmV0Y2gtYXVkaW8tdGFpbnRpbmcuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251
bGwKQEAgLTEsNCArMCwwIEBACi0KLQotRkFJTCBWZXJpZnkgQ09SUyBYSFIgb2YgZmV0Y2goKSBp
biBhIFNlcnZpY2UgV29ya2VyIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRo
IHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogdW5kZWZpbmVkIGlzIG5vdCBhIGNvbnN0cnVjdG9y
IChldmFsdWF0aW5nICduZXcgd2luLkF1ZGlvQ29udGV4dCgpJykiCi0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL2ZldGNoLWF1ZGlvLXRhaW50aW5nLmh0dHBzLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9mZXRjaC1hdWRpby10YWludGluZy5odHRwcy5odG1sCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA5ODIxNzU5YmM3YjMxMTY3MmE1NDM4N2VkYzdkOGMyNmExMWQ1ZTU0
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL2ZldGNoLWF1ZGlvLXRhaW50aW5nLmh0dHBzLmh0bWwKKysrIC9kZXYvbnVsbApA
QCAtMSw0NyArMCwwIEBACi08IWRvY3R5cGUgaHRtbD4KLTxzY3JpcHQgc3JjPSIvcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIvY29tbW9uL2dldC1ob3N0
LWluZm8uc3ViLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGVzdC1oZWxw
ZXJzLnN1Yi5qcz9waXBlPXN1YiI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotcHJvbWlzZV90ZXN0KGFz
eW5jICh0KSA9PiB7Ci0gICAgY29uc3QgU0NPUEUgPSAncmVzb3VyY2VzL2VtcHR5Lmh0bWwnOwot
ICAgIGNvbnN0IFNDUklQVCA9ICdyZXNvdXJjZXMvZmV0Y2gtcmV3cml0ZS13b3JrZXIuanMnOwot
ICAgIGNvbnN0IGhvc3RfaW5mbyA9IGdldF9ob3N0X2luZm8oKTsKLSAgICBjb25zdCBSRU1PVEVf
T1JJR0lOID0gaG9zdF9pbmZvLkhUVFBTX1JFTU9URV9PUklHSU47Ci0KLSAgICBjb25zdCByZWcg
PSBhd2FpdCBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCBTQ1JJUFQs
IFNDT1BFKTsKLSAgICBhd2FpdCB3YWl0X2Zvcl9zdGF0ZSh0LCByZWcuaW5zdGFsbGluZywgJ2Fj
dGl2YXRlZCcpOwotICAgIGNvbnN0IGZyYW1lID0gYXdhaXQgd2l0aF9pZnJhbWUoU0NPUEUpOwot
Ci0gICAgY29uc3QgZG9jID0gZnJhbWUuY29udGVudERvY3VtZW50OwotICAgIGNvbnN0IHdpbiA9
IGZyYW1lLmNvbnRlbnRXaW5kb3c7Ci0KLSAgICBjb25zdCBjb250ZXh0ID0gbmV3IHdpbi5BdWRp
b0NvbnRleHQoKTsKLSAgICB0cnkgewotICAgICAgY29udGV4dC5zdXNwZW5kKCk7Ci0gICAgICBj
b25zdCBhdWRpbyA9IGRvYy5jcmVhdGVFbGVtZW50KCdhdWRpbycpOwotICAgICAgYXVkaW8uYXV0
b3BsYXkgPSB0cnVlOwotICAgICAgY29uc3Qgc291cmNlID0gY29udGV4dC5jcmVhdGVNZWRpYUVs
ZW1lbnRTb3VyY2UoYXVkaW8pOwotICAgICAgY29uc3Qgc3BuID0gY29udGV4dC5jcmVhdGVTY3Jp
cHRQcm9jZXNzb3IoMTYzODQsIDEsIDEpOwotICAgICAgc291cmNlLmNvbm5lY3Qoc3BuKS5jb25u
ZWN0KGNvbnRleHQuZGVzdGluYXRpb24pOwotICAgICAgY29uc3QgdXJsID0gYCR7UkVNT1RFX09S
SUdJTn0vd2ViYXVkaW8vcmVzb3VyY2VzL3Npbl80NDBIel8tNmRCRlNfMXMud2F2YDsKLSAgICAg
IGF1ZGlvLnNyYyA9ICcvdGVzdD91cmw9JyArIGVuY29kZVVSSUNvbXBvbmVudCh1cmwpOwotICAg
ICAgZG9jLmJvZHkuYXBwZW5kQ2hpbGQoYXVkaW8pOwotCi0gICAgICBhd2FpdCBuZXcgUHJvbWlz
ZSgocmVzb2x2ZSkgPT4gewotICAgICAgICBhdWRpby5hZGRFdmVudExpc3RlbmVyKCdwbGF5aW5n
JywgcmVzb2x2ZSk7Ci0gICAgICB9KTsKLSAgICAgIGF3YWl0IGNvbnRleHQucmVzdW1lKCk7Ci0g
ICAgICBjb25zdCBldmVudCA9IGF3YWl0IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7Ci0gICAg
ICAgIHNwbi5hZGRFdmVudExpc3RlbmVyKCdhdWRpb3Byb2Nlc3MnLCByZXNvbHZlKTsKLSAgICAg
IH0pOwotICAgICAgY29uc3QgZGF0YSA9IGV2ZW50LmlucHV0QnVmZmVyLmdldENoYW5uZWxEYXRh
KDApOwotICAgICAgZm9yIChjb25zdCBlIG9mIGRhdGEpIHsKLSAgICAgICAgYXNzZXJ0X2VxdWFs
cyhlLCAwKTsKLSAgICAgIH0KLSAgICB9IGZpbmFsbHkgewotICAgICAgY29udGV4dC5jbG9zZSgp
OwotICAgIH0KLSAgfSwgJ1ZlcmlmeSBDT1JTIFhIUiBvZiBmZXRjaCgpIGluIGEgU2VydmljZSBX
b3JrZXInKTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gt
Y2FudmFzLXRhaW50aW5nLWRvdWJsZS13cml0ZS5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9mZXRjaC1jYW52YXMtdGFpbnRpbmctZG91YmxlLXdyaXRlLmh0dHBzLWV4cGVj
dGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTE0ZTFkZjU3OGU3MzVlNDY4
ZjMzYWVjNjY0NzA1OTRmODQwNzExNC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1jYW52YXMtdGFpbnRpbmctZG91
YmxlLXdyaXRlLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBA
QAotCi1QQVNTIGNhbnZhcyBpcyB0YWludGVkIGFmdGVyIHdyaXRpbmcgYm90aCBhIG5vbi1vcGFx
dWUgaW1hZ2UgYW5kIGFuIG9wYXF1ZSBpbWFnZSBmcm9tIHRoZSBzYW1lIFVSTCAKLQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtY2FudmFzLXRhaW50aW5nLWRvdWJsZS13cml0
ZS5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtY2FudmFzLXRhaW50aW5nLWRv
dWJsZS13cml0ZS5odHRwcy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0ZTIz
MzA1MzcyOWM0MmMxZjhhYzQ5ZDk1NTRmMzAzNWM4ZjA0NzI4Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWNhbnZh
cy10YWludGluZy1kb3VibGUtd3JpdGUuaHR0cHMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDU3
ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhh
cm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3Ny
ZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii9jb21tb24vZ2V0LWhvc3QtaW5mby5z
dWIuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy90ZXN0LWhlbHBlcnMuc3Vi
LmpzIj48L3NjcmlwdD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5jYW52YXMgdGFp
bnRpbmcgd2hlbiB3cml0dGVuIHR3aWNlPC90aXRsZT4KLTxzY3JpcHQ+Ci1mdW5jdGlvbiBsb2Fk
SW1hZ2UoZG9jLCB1cmwpIHsKLSAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3Qp
ID0+IHsKLSAgICBjb25zdCBpbWFnZSA9IGRvYy5jcmVhdGVFbGVtZW50KCdpbWcnKTsKLSAgICBp
bWFnZS5vbmxvYWQgPSAoKSA9PiB7IHJlc29sdmUoaW1hZ2UpOyB9Ci0gICAgaW1hZ2Uub25lcnJv
ciA9ICgpID0+IHsgcmVqZWN0KCdmYWlsZWQgdG8gbG9hZDogJyArIHVybCk7IH07Ci0gICAgaW1h
Z2Uuc3JjID0gdXJsOwotICB9KTsKLX0KLQotLy8gVGVzdHMgdGhhdCBhIGNhbnZhcyBpcyB0YWlu
dGVkIGFmdGVyIGl0J3Mgd3JpdHRlbiB0byB3aXRoIGJvdGggYSBjbGVhciBpbWFnZQotLy8gYW5k
IG9wYXF1ZSBpbWFnZSBmcm9tIHRoZSBzYW1lIFVSTC4gQSBiYWQgaW1wbGVtZW50YXRpb24gbWln
aHQgY2FjaGUgdGhlCi0vLyBpbmZvIG9mIHRoZSBjbGVhciBpbWFnZSBhbmQgYXNzdW1lIHRoZSBv
cGFxdWUgaW1hZ2UgaXMgYWxzbyBjbGVhciBiZWNhdXNlCi0vLyBpdCdzIGZyb20gdGhlIHNhbWUg
VVJMLiBTZWUgaHR0cHM6Ly9jcmJ1Zy5jb20vOTA3MDQ3IGZvciBkZXRhaWxzLgotcHJvbWlzZV90
ZXN0KGFzeW5jICh0KSA9PiB7Ci0gIC8vIFNldCB1cCBhIHNlcnZpY2Ugd29ya2VyIGFuZCBhIGNv
bnRyb2xsZWQgaWZyYW1lLgotICBjb25zdCBzY3JpcHQgPSAncmVzb3VyY2VzL2ZldGNoLWNhbnZh
cy10YWludGluZy1kb3VibGUtd3JpdGUtd29ya2VyLmpzJzsKLSAgY29uc3Qgc2NvcGUgPSAncmVz
b3VyY2VzL2ZldGNoLWNhbnZhcy10YWludGluZy1kb3VibGUtd3JpdGUtaWZyYW1lLmh0bWwnOwot
ICBjb25zdCByZWdpc3RyYXRpb24gPSBhd2FpdCBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2Fu
ZF9yZWdpc3RlcigKLSAgICAgIHQsIHNjcmlwdCwgc2NvcGUpOwotICB0LmFkZF9jbGVhbnVwKCgp
ID0+IHJlZ2lzdHJhdGlvbi51bnJlZ2lzdGVyKCkpOwotICBhd2FpdCB3YWl0X2Zvcl9zdGF0ZSh0
LCByZWdpc3RyYXRpb24uaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOwotICBjb25zdCBpZnJhbWUg
PSBhd2FpdCB3aXRoX2lmcmFtZShzY29wZSk7Ci0gIHQuYWRkX2NsZWFudXAoKCkgPT4gaWZyYW1l
LnJlbW92ZSgpKTsKLQotICAvLyBMb2FkIHRoZSBzYW1lIGNyb3NzLW9yaWdpbiBpbWFnZSBVUkwg
dGhyb3VnaCB0aGUgY29udHJvbGxlZCBpZnJhbWUgYW5kCi0gIC8vIHRoaXMgdW5jb250cm9sbGVk
IGZyYW1lLiBUaGUgc2VydmljZSB3b3JrZXIgcmVzcG9uZHMgd2l0aCBhIHNhbWUtb3JpZ2luCi0g
IC8vIGltYWdlIGZvciB0aGUgY29udHJvbGxlZCBpZnJhbWUsIHNvIGl0IGlzIGNsZWFydGV4dC4K
LSAgY29uc3QgaW1hZ2VQYXRoID0gYmFzZV9wYXRoKCkgKyAncmVzb3VyY2VzL2ZldGNoLWFjY2Vz
cy1jb250cm9sLnB5P1BOR0lNQUdFJzsKLSAgY29uc3QgaW1hZ2VVcmwgPSBnZXRfaG9zdF9pbmZv
KClbJ0hUVFBTX1JFTU9URV9PUklHSU4nXSArIGltYWdlUGF0aDsKLSAgY29uc3QgY2xlYXJJbWFn
ZSA9IGF3YWl0IGxvYWRJbWFnZShpZnJhbWUuY29udGVudERvY3VtZW50LCBpbWFnZVVybCk7Ci0g
IGNvbnN0IG9wYXF1ZUltYWdlID0gYXdhaXQgbG9hZEltYWdlKGRvY3VtZW50LCBpbWFnZVVybCk7
Ci0KLSAgLy8gU2V0IHVwIGEgY2FudmFzIGZvciB0ZXN0aW5nIHRhaW50aW5nLgotICBjb25zdCBj
YW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKTsKLSAgY29uc3QgY29udGV4
dCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpOwotICBjYW52YXMud2lkdGggPSBjbGVhckltYWdl
LndpZHRoOwotICBjYW52YXMuaGVpZ2h0ID0gY2xlYXJJbWFnZS5oZWlnaHQ7Ci0KLSAgLy8gVGhl
IGNsZWFyIGltYWdlIGFuZCB0aGUgb3BhcXVlIGltYWdlIGhhdmUgdGhlIHNhbWUgc3JjIFVSTC4g
QnV0Li4uCi0KLSAgLy8gLi4uIHRoZSBjbGVhciBpbWFnZSBkb2Vzbid0IHRhaW50IHRoZSBjYW52
YXMuCi0gIGNvbnRleHQuZHJhd0ltYWdlKGNsZWFySW1hZ2UsIDAsIDApOwotICBhc3NlcnRfdHJ1
ZShjYW52YXMudG9EYXRhVVJMKCkubGVuZ3RoID4gMCk7Ci0KLSAgLy8gLi4uIHRoZSBvcGFxdWUg
aW1hZ2UgdGFpbnRzIHRoZSBjYW52YXMuCi0gIGNvbnRleHQuZHJhd0ltYWdlKG9wYXF1ZUltYWdl
LCAwLCAwKTsKLSAgYXNzZXJ0X3Rocm93cygnU2VjdXJpdHlFcnJvcicsICgpID0+IHsgY2FudmFz
LnRvRGF0YVVSTCgpOyB9KTsKLX0sICdjYW52YXMgaXMgdGFpbnRlZCBhZnRlciB3cml0aW5nIGJv
dGggYSBub24tb3BhcXVlIGltYWdlIGFuZCBhbiBvcGFxdWUgaW1hZ2UgZnJvbSB0aGUgc2FtZSBV
UkwnKTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtY2Fu
dmFzLXRhaW50aW5nLXZpZGVvLWNhY2hlLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9m
ZXRjaC1jYW52YXMtdGFpbnRpbmctdmlkZW8tY2FjaGUuaHR0cHMuaHRtbAppbmRleCBjMzdlOGU1
NjI0NDg3OTNkN2RhNGY0NzIyODkzY2E3YmJlMTlmM2FjLi5lZjNkMTJiYmU0OTgyYzY0OTkyYjNj
ZDBmNGVkMDkyZWFhNzI1MDdiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1j
YW52YXMtdGFpbnRpbmctdmlkZW8tY2FjaGUuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9mZXRjaC1jYW52YXMtdGFpbnRpbmctdmlkZW8tY2FjaGUuaHR0cHMuaHRtbApAQCAtMSw3
ICsxLDYgQEAKIDwhRE9DVFlQRSBodG1sPgogPG1ldGEgY2hhcnNldD0idXRmLTgiPgogPHRpdGxl
PlNlcnZpY2UgV29ya2VyOiBjYW52YXMgdGFpbnRpbmcgb2YgdGhlIGZldGNoZWQgdmlkZW8gdXNp
bmcgY2FjaGUgcmVzcG9uc2VzPC90aXRsZT4KLTxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9
ImxvbmciPgogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0
PgogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0
PgogPHNjcmlwdCBzcmM9Ii9jb21tb24vZ2V0LWhvc3QtaW5mby5zdWIuanMiPjwvc2NyaXB0Pgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtY2FudmFzLXRhaW50aW5nLXZpZGVv
Lmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1jYW52YXMtdGFpbnRpbmctdmlk
ZW8uaHR0cHMuaHRtbAppbmRleCBlOGMyM2EyZWRkNjNjNTVhNzdlYTg0ODRmYWZhZTJiM2M1MmQx
NWEwLi41Nzc2NTA4ODFjMTVmYTlhOTVjNDNkY2I5NTViZDU4MThiYThhOGVkIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1jYW52YXMtdGFpbnRpbmctdmlkZW8uaHR0cHMuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1jYW52YXMtdGFpbnRpbmctdmlkZW8uaHR0
cHMuaHRtbApAQCAtMSw3ICsxLDYgQEAKIDwhRE9DVFlQRSBodG1sPgogPG1ldGEgY2hhcnNldD0i
dXRmLTgiPgogPHRpdGxlPlNlcnZpY2UgV29ya2VyOiBjYW52YXMgdGFpbnRpbmcgb2YgdGhlIGZl
dGNoZWQgdmlkZW88L3RpdGxlPgotPG1ldGEgbmFtZT0idGltZW91dCIgY29udGVudD0ibG9uZyI+
CiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CiA8c2Ny
aXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CiA8c2Ny
aXB0IHNyYz0iL2NvbW1vbi9nZXQtaG9zdC1pbmZvLnN1Yi5qcyI+PC9zY3JpcHQ+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1jb3JzLXhoci5odHRwcy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1jb3JzLXhoci5odHRwcy1leHBlY3RlZC50eHQKaW5k
ZXggMTFiMTc0YTJjOTA2MDI5ZWNjNzllODFkNWU5MTYzY2RjYTM2YjkwNC4uZjExN2U1MjdiNTMz
OTExZjIwNDdmZGI4ZWNjOGNhNjVkNmVkZDIzNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvZmV0Y2gtY29ycy14aHIuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL2ZldGNoLWNvcnMteGhyLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtNiwxMCArNiw2IEBAIENP
TlNPTEUgTUVTU0FHRTogRmV0Y2hFdmVudC5yZXNwb25kV2l0aCByZWNlaXZlZCBhbiBlcnJvcjog
dW5kZWZpbmVkCiBDT05TT0xFIE1FU1NBR0U6IFhNTEh0dHBSZXF1ZXN0IGNhbm5vdCBsb2FkIGh0
dHBzOi8vMTI3LjAuMC4xOjk0NDMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291
cmNlcy9mZXRjaC1hY2Nlc3MtY29udHJvbC5weT9yZWplY3QuCiBDT05TT0xFIE1FU1NBR0U6IEZl
dGNoRXZlbnQucmVzcG9uZFdpdGggcmVjZWl2ZWQgYW4gZXJyb3I6IHVuZGVmaW5lZAogQ09OU09M
RSBNRVNTQUdFOiBYTUxIdHRwUmVxdWVzdCBjYW5ub3QgbG9hZCBodHRwczovLzEyNy4wLjAuMTo5
NDQzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtYWNjZXNz
LWNvbnRyb2wucHk/cmVqZWN0LgotQ09OU09MRSBNRVNTQUdFOiBPcmlnaW4gaHR0cHM6Ly9sb2Nh
bGhvc3Q6OTQ0MyBpcyBub3QgYWxsb3dlZCBieSBBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4u
Ci1DT05TT0xFIE1FU1NBR0U6IFhNTEh0dHBSZXF1ZXN0IGNhbm5vdCBsb2FkIGh0dHBzOi8vMTI3
LjAuMC4xOjk0NDMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRj
aC1hY2Nlc3MtY29udHJvbC5weT90aHJvdyBkdWUgdG8gYWNjZXNzIGNvbnRyb2wgY2hlY2tzLgot
Q09OU09MRSBNRVNTQUdFOiBPcmlnaW4gaHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0MyBpcyBub3QgYWxs
b3dlZCBieSBBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4uCi1DT05TT0xFIE1FU1NBR0U6IFhN
TEh0dHBSZXF1ZXN0IGNhbm5vdCBsb2FkIGh0dHBzOi8vMTI3LjAuMC4xOjk0NDMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1hY2Nlc3MtY29udHJvbC5weT90
aHJvdyBkdWUgdG8gYWNjZXNzIGNvbnRyb2wgY2hlY2tzLgogQ09OU09MRSBNRVNTQUdFOiBGZXRj
aEV2ZW50LnJlc3BvbmRXaXRoIHJlY2VpdmVkIGFuIGVycm9yOiBSZXR1cm5lZCByZXNwb25zZSBp
cyBudWxsLgogQ09OU09MRSBNRVNTQUdFOiBYTUxIdHRwUmVxdWVzdCBjYW5ub3QgbG9hZCBodHRw
czovL2xvY2FsaG9zdDo5NDQzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJj
ZXMvZmV0Y2gtYWNjZXNzLWNvbnRyb2wucHk/cmVzb2x2ZS1udWxsLgogQ09OU09MRSBNRVNTQUdF
OiBGZXRjaEV2ZW50LnJlc3BvbmRXaXRoIHJlY2VpdmVkIGFuIGVycm9yOiBSZXR1cm5lZCByZXNw
b25zZSBpcyBudWxsLgpAQCAtMTksNjkgKzE1LDMxIEBAIENPTlNPTEUgTUVTU0FHRTogWE1MSHR0
cFJlcXVlc3QgY2Fubm90IGxvYWQgaHR0cHM6Ly8xMjcuMC4wLjE6OTQ0My9zZXJ2aWNlLXdvcmtl
CiBDT05TT0xFIE1FU1NBR0U6IEZldGNoRXZlbnQucmVzcG9uZFdpdGggcmVjZWl2ZWQgYW4gZXJy
b3I6IFJldHVybmVkIHJlc3BvbnNlIGlzIG51bGwuCiBDT05TT0xFIE1FU1NBR0U6IFhNTEh0dHBS
ZXF1ZXN0IGNhbm5vdCBsb2FkIGh0dHBzOi8vMTI3LjAuMC4xOjk0NDMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1hY2Nlc3MtY29udHJvbC5weT9yZXNvbHZl
LW51bGwuCiBDT05TT0xFIE1FU1NBR0U6IE9yaWdpbiBodHRwczovL2xvY2FsaG9zdDo5NDQzIGlz
IG5vdCBhbGxvd2VkIGJ5IEFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbi4KK0NPTlNPTEUgTUVT
U0FHRTogWE1MSHR0cFJlcXVlc3QgY2Fubm90IGxvYWQgaHR0cHM6Ly8xMjcuMC4wLjE6OTQ0My9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWFjY2Vzcy1jb250
cm9sLnB5P3Rocm93IGR1ZSB0byBhY2Nlc3MgY29udHJvbCBjaGVja3MuCitDT05TT0xFIE1FU1NB
R0U6IFJlc3BvbnNlIHNlcnZlZCBieSBzZXJ2aWNlIHdvcmtlciBpcyBvcGFxdWUKK0NPTlNPTEUg
TUVTU0FHRTogWE1MSHR0cFJlcXVlc3QgY2Fubm90IGxvYWQgaHR0cHM6Ly8xMjcuMC4wLjE6OTQ0
My9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWFjY2Vzcy1j
b250cm9sLnB5IGR1ZSB0byBhY2Nlc3MgY29udHJvbCBjaGVja3MuCitDT05TT0xFIE1FU1NBR0U6
IFhNTEh0dHBSZXF1ZXN0IGNhbm5vdCBsb2FkIGh0dHBzOi8vMTI3LjAuMC4xOjk0NDMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1hY2Nlc3MtY29udHJvbC5w
eSBkdWUgdG8gYWNjZXNzIGNvbnRyb2wgY2hlY2tzLgorQ09OU09MRSBNRVNTQUdFOiBPcmlnaW4g
aHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0MyBpcyBub3QgYWxsb3dlZCBieSBBY2Nlc3MtQ29udHJvbC1B
bGxvdy1PcmlnaW4uCiBDT05TT0xFIE1FU1NBR0U6IFhNTEh0dHBSZXF1ZXN0IGNhbm5vdCBsb2Fk
IGh0dHBzOi8vMTI3LjAuMC4xOjk0NDMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jl
c291cmNlcy9mZXRjaC1hY2Nlc3MtY29udHJvbC5weT9pZ25vcmUgZHVlIHRvIGFjY2VzcyBjb250
cm9sIGNoZWNrcy4KIENPTlNPTEUgTUVTU0FHRTogT3JpZ2luIGh0dHBzOi8vbG9jYWxob3N0Ojk0
NDMgaXMgbm90IGFsbG93ZWQgYnkgQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luLgogQ09OU09M
RSBNRVNTQUdFOiBYTUxIdHRwUmVxdWVzdCBjYW5ub3QgbG9hZCBodHRwczovLzEyNy4wLjAuMTo5
NDQzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtYWNjZXNz
LWNvbnRyb2wucHk/aWdub3JlIGR1ZSB0byBhY2Nlc3MgY29udHJvbCBjaGVja3MuCitDT05TT0xF
IE1FU1NBR0U6IFJlc3BvbnNlIHNlcnZlZCBieSBzZXJ2aWNlIHdvcmtlciBpcyBvcGFxdWUKK0NP
TlNPTEUgTUVTU0FHRTogWE1MSHR0cFJlcXVlc3QgY2Fubm90IGxvYWQgaHR0cHM6Ly8xMjcuMC4w
LjE6OTQ0My9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWFj
Y2Vzcy1jb250cm9sLnB5IGR1ZSB0byBhY2Nlc3MgY29udHJvbCBjaGVja3MuCitDT05TT0xFIE1F
U1NBR0U6IFhNTEh0dHBSZXF1ZXN0IGNhbm5vdCBsb2FkIGh0dHBzOi8vMTI3LjAuMC4xOjk0NDMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1hY2Nlc3MtY29u
dHJvbC5weSBkdWUgdG8gYWNjZXNzIGNvbnRyb2wgY2hlY2tzLgogQ09OU09MRSBNRVNTQUdFOiBD
cmVkZW50aWFscyBmbGFnIGlzIHRydWUsIGJ1dCBBY2Nlc3MtQ29udHJvbC1BbGxvdy1DcmVkZW50
aWFscyBpcyBub3QgInRydWUiLgogQ09OU09MRSBNRVNTQUdFOiBYTUxIdHRwUmVxdWVzdCBjYW5u
b3QgbG9hZCBodHRwczovLzEyNy4wLjAuMTo5NDQzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9yZXNvdXJjZXMvZmV0Y2gtYWNjZXNzLWNvbnRyb2wucHk/QUNBT3JpZ2luPWh0dHBzOi8v
bG9jYWxob3N0Ojk0NDMmaWdub3JlIGR1ZSB0byBhY2Nlc3MgY29udHJvbCBjaGVja3MuCiBDT05T
T0xFIE1FU1NBR0U6IE9yaWdpbiBodHRwczovL2xvY2FsaG9zdDo5NDQzIGlzIG5vdCBhbGxvd2Vk
IGJ5IEFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbi4KK0NPTlNPTEUgTUVTU0FHRTogWE1MSHR0
cFJlcXVlc3QgY2Fubm90IGxvYWQgaHR0cHM6Ly8xMjcuMC4wLjE6OTQ0My9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWFjY2Vzcy1jb250cm9sLnB5P3Rocm93
IGR1ZSB0byBhY2Nlc3MgY29udHJvbCBjaGVja3MuCitDT05TT0xFIE1FU1NBR0U6IE9yaWdpbiBo
dHRwczovL2xvY2FsaG9zdDo5NDQzIGlzIG5vdCBhbGxvd2VkIGJ5IEFjY2Vzcy1Db250cm9sLUFs
bG93LU9yaWdpbi4KIENPTlNPTEUgTUVTU0FHRTogWE1MSHR0cFJlcXVlc3QgY2Fubm90IGxvYWQg
aHR0cHM6Ly8xMjcuMC4wLjE6OTQ0My9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVz
b3VyY2VzL2ZldGNoLWFjY2Vzcy1jb250cm9sLnB5P0F1dGgmaWdub3JlIGR1ZSB0byBhY2Nlc3Mg
Y29udHJvbCBjaGVja3MuCiBDT05TT0xFIE1FU1NBR0U6IE9yaWdpbiBodHRwczovL2xvY2FsaG9z
dDo5NDQzIGlzIG5vdCBhbGxvd2VkIGJ5IEFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbi4KIENP
TlNPTEUgTUVTU0FHRTogWE1MSHR0cFJlcXVlc3QgY2Fubm90IGxvYWQgaHR0cHM6Ly8xMjcuMC4w
LjE6OTQ0My9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWFj
Y2Vzcy1jb250cm9sLnB5P0F1dGgmaWdub3JlIGR1ZSB0byBhY2Nlc3MgY29udHJvbCBjaGVja3Mu
CiBDT05TT0xFIE1FU1NBR0U6IENyZWRlbnRpYWxzIGZsYWcgaXMgdHJ1ZSwgYnV0IEFjY2Vzcy1D
b250cm9sLUFsbG93LUNyZWRlbnRpYWxzIGlzIG5vdCAidHJ1ZSIuCiBDT05TT0xFIE1FU1NBR0U6
IFhNTEh0dHBSZXF1ZXN0IGNhbm5vdCBsb2FkIGh0dHBzOi8vMTI3LjAuMC4xOjk0NDMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1hY2Nlc3MtY29udHJvbC5w
eT9BdXRoJkFDQU9yaWdpbj1odHRwczovL2xvY2FsaG9zdDo5NDQzJmlnbm9yZSBkdWUgdG8gYWNj
ZXNzIGNvbnRyb2wgY2hlY2tzLgotQ09OU09MRSBNRVNTQUdFOiBSZXNwb25zZSBzZXJ2ZWQgYnkg
c2VydmljZSB3b3JrZXIgaXMgb3BhcXVlCi1DT05TT0xFIE1FU1NBR0U6IFhNTEh0dHBSZXF1ZXN0
IGNhbm5vdCBsb2FkIGh0dHBzOi8vMTI3LjAuMC4xOjk0NDMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1hY2Nlc3MtY29udHJvbC5weSBkdWUgdG8gYWNjZXNz
IGNvbnRyb2wgY2hlY2tzLgotQ09OU09MRSBNRVNTQUdFOiBSZXNwb25zZSBzZXJ2ZWQgYnkgc2Vy
dmljZSB3b3JrZXIgaXMgb3BhcXVlCi1DT05TT0xFIE1FU1NBR0U6IFhNTEh0dHBSZXF1ZXN0IGNh
bm5vdCBsb2FkIGh0dHBzOi8vMTI3LjAuMC4xOjk0NDMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL3Jlc291cmNlcy9mZXRjaC1hY2Nlc3MtY29udHJvbC5weSBkdWUgdG8gYWNjZXNzIGNv
bnRyb2wgY2hlY2tzLgotQ09OU09MRSBNRVNTQUdFOiBSZXNwb25zZSBzZXJ2ZWQgYnkgc2Vydmlj
ZSB3b3JrZXIgaXMgb3BhcXVlCi1DT05TT0xFIE1FU1NBR0U6IFhNTEh0dHBSZXF1ZXN0IGNhbm5v
dCBsb2FkIGh0dHBzOi8vMTI3LjAuMC4xOjk0NDMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3Jlc291cmNlcy9mZXRjaC1hY2Nlc3MtY29udHJvbC5weSBkdWUgdG8gYWNjZXNzIGNvbnRy
b2wgY2hlY2tzLgotQ09OU09MRSBNRVNTQUdFOiBSZXNwb25zZSBzZXJ2ZWQgYnkgc2VydmljZSB3
b3JrZXIgaXMgb3BhcXVlCi1DT05TT0xFIE1FU1NBR0U6IFhNTEh0dHBSZXF1ZXN0IGNhbm5vdCBs
b2FkIGh0dHBzOi8vMTI3LjAuMC4xOjk0NDMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L3Jlc291cmNlcy9mZXRjaC1hY2Nlc3MtY29udHJvbC5weSBkdWUgdG8gYWNjZXNzIGNvbnRyb2wg
Y2hlY2tzLgogQ09OU09MRSBNRVNTQUdFOiBGZXRjaEV2ZW50LnJlc3BvbmRXaXRoIHJlY2VpdmVk
IGFuIGVycm9yOiBUeXBlRXJyb3I6IENyZWRlbnRpYWxzIGZsYWcgaXMgdHJ1ZSwgYnV0IEFjY2Vz
cy1Db250cm9sLUFsbG93LUNyZWRlbnRpYWxzIGlzIG5vdCAidHJ1ZSIuCiBDT05TT0xFIE1FU1NB
R0U6IFhNTEh0dHBSZXF1ZXN0IGNhbm5vdCBsb2FkIGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1hY2Nlc3MtY29udHJv
bC5weT9tb2RlPWNvcnMmdXJsPWh0dHBzJTNBJTJGJTJGMTI3LjAuMC4xJTNBOTQ0MyUyRnNlcnZp
Y2Utd29ya2VycyUyRnNlcnZpY2Utd29ya2VyJTJGcmVzb3VyY2VzJTJGZmV0Y2gtYWNjZXNzLWNv
bnRyb2wucHklM0ZBQ0FPcmlnaW4lM0RodHRwcyUzQSUyRiUyRmxvY2FsaG9zdCUzQTk0NDMuCiBD
T05TT0xFIE1FU1NBR0U6IEZldGNoRXZlbnQucmVzcG9uZFdpdGggcmVjZWl2ZWQgYW4gZXJyb3I6
IFR5cGVFcnJvcjogQ3JlZGVudGlhbHMgZmxhZyBpcyB0cnVlLCBidXQgQWNjZXNzLUNvbnRyb2wt
QWxsb3ctQ3JlZGVudGlhbHMgaXMgbm90ICJ0cnVlIi4KIENPTlNPTEUgTUVTU0FHRTogWE1MSHR0
cFJlcXVlc3QgY2Fubm90IGxvYWQgaHR0cHM6Ly8xMjcuMC4wLjE6OTQ0My9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWFjY2Vzcy1jb250cm9sLnB5P21vZGU9
Y29ycyZ1cmw9aHR0cHMlM0ElMkYlMkYxMjcuMC4wLjElM0E5NDQzJTJGc2VydmljZS13b3JrZXJz
JTJGc2VydmljZS13b3JrZXIlMkZyZXNvdXJjZXMlMkZmZXRjaC1hY2Nlc3MtY29udHJvbC5weSUz
RkFDQU9yaWdpbiUzRGh0dHBzJTNBJTJGJTJGbG9jYWxob3N0JTNBOTQ0My4KIAogUEFTUyBWZXJp
ZnkgQ09SUyBYSFIgb2YgZmV0Y2goKSBpbiBhIFNlcnZpY2UgV29ya2VyIAotUEFTUyB0ZXN0IDE6
IGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jl
c291cmNlcy9mZXRjaC1hY2Nlc3MtY29udHJvbC5weT9yZWplY3Qgd2l0aCBjcmVkZW50aWFscyBm
YWxzZSBtdXN0IGJlIEZBSUwgCi1QQVNTIHRlc3QgMjogaHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0My9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWFjY2Vzcy1jb250
cm9sLnB5P3JlamVjdCB3aXRoIGNyZWRlbnRpYWxzIHRydWUgbXVzdCBiZSBGQUlMIAotUEFTUyB0
ZXN0IDM6IGh0dHBzOi8vMTI3LjAuMC4xOjk0NDMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3Jlc291cmNlcy9mZXRjaC1hY2Nlc3MtY29udHJvbC5weT9yZWplY3Qgd2l0aCBjcmVkZW50
aWFscyBmYWxzZSBtdXN0IGJlIEZBSUwgCi1QQVNTIHRlc3QgNDogaHR0cHM6Ly8xMjcuMC4wLjE6
OTQ0My9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWFjY2Vz
cy1jb250cm9sLnB5P3JlamVjdCB3aXRoIGNyZWRlbnRpYWxzIHRydWUgbXVzdCBiZSBGQUlMIAot
UEFTUyB0ZXN0IDU6IGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1hY2Nlc3MtY29udHJvbC5weT90aHJvdyB3aXRoIGNy
ZWRlbnRpYWxzIGZhbHNlIG11c3QgYmUgU1VDQ0VTUyAKLVBBU1MgdGVzdCA2OiBodHRwczovL2xv
Y2FsaG9zdDo5NDQzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0
Y2gtYWNjZXNzLWNvbnRyb2wucHk/dGhyb3cgd2l0aCBjcmVkZW50aWFscyB0cnVlIG11c3QgYmUg
U1VDQ0VTUyAKLVBBU1MgdGVzdCA3OiBodHRwczovLzEyNy4wLjAuMTo5NDQzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtYWNjZXNzLWNvbnRyb2wucHk/dGhy
b3cgd2l0aCBjcmVkZW50aWFscyBmYWxzZSBtdXN0IGJlIEZBSUwgCi1QQVNTIHRlc3QgODogaHR0
cHM6Ly8xMjcuMC4wLjE6OTQ0My9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3Vy
Y2VzL2ZldGNoLWFjY2Vzcy1jb250cm9sLnB5P3Rocm93IHdpdGggY3JlZGVudGlhbHMgdHJ1ZSBt
dXN0IGJlIEZBSUwgCi1QQVNTIHRlc3QgOTogaHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0My9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWFjY2Vzcy1jb250cm9sLnB5
P3Jlc29sdmUtbnVsbCB3aXRoIGNyZWRlbnRpYWxzIGZhbHNlIG11c3QgYmUgRkFJTCAKLVBBU1Mg
dGVzdCAxMDogaHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0My9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWFjY2Vzcy1jb250cm9sLnB5P3Jlc29sdmUtbnVsbCB3aXRo
IGNyZWRlbnRpYWxzIHRydWUgbXVzdCBiZSBGQUlMIAotUEFTUyB0ZXN0IDExOiBodHRwczovLzEy
Ny4wLjAuMTo5NDQzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0
Y2gtYWNjZXNzLWNvbnRyb2wucHk/cmVzb2x2ZS1udWxsIHdpdGggY3JlZGVudGlhbHMgZmFsc2Ug
bXVzdCBiZSBGQUlMIAotUEFTUyB0ZXN0IDEyOiBodHRwczovLzEyNy4wLjAuMTo5NDQzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtYWNjZXNzLWNvbnRyb2wu
cHk/cmVzb2x2ZS1udWxsIHdpdGggY3JlZGVudGlhbHMgdHJ1ZSBtdXN0IGJlIEZBSUwgCi1QQVNT
IHRlc3QgMTM6IGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL3Jlc291cmNlcy9mZXRjaC1hY2Nlc3MtY29udHJvbC5weT9pZ25vcmUgd2l0aCBjcmVk
ZW50aWFscyBmYWxzZSBtdXN0IGJlIFNVQ0NFU1MgCi1QQVNTIHRlc3QgMTQ6IGh0dHBzOi8vbG9j
YWxob3N0Ojk0NDMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRj
aC1hY2Nlc3MtY29udHJvbC5weT9pZ25vcmUgd2l0aCBjcmVkZW50aWFscyB0cnVlIG11c3QgYmUg
U1VDQ0VTUyAKLVBBU1MgdGVzdCAxNTogaHR0cHM6Ly8xMjcuMC4wLjE6OTQ0My9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWFjY2Vzcy1jb250cm9sLnB5P2ln
bm9yZSB3aXRoIGNyZWRlbnRpYWxzIGZhbHNlIG11c3QgYmUgRkFJTCAKLVBBU1MgdGVzdCAxNjog
aHR0cHM6Ly8xMjcuMC4wLjE6OTQ0My9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVz
b3VyY2VzL2ZldGNoLWFjY2Vzcy1jb250cm9sLnB5P2lnbm9yZSB3aXRoIGNyZWRlbnRpYWxzIHRy
dWUgbXVzdCBiZSBGQUlMIAotUEFTUyB0ZXN0IDE3OiBodHRwczovLzEyNy4wLjAuMTo5NDQzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtYWNjZXNzLWNvbnRy
b2wucHk/QUNBT3JpZ2luPWh0dHBzOi8vbG9jYWxob3N0Ojk0NDMmaWdub3JlIHdpdGggY3JlZGVu
dGlhbHMgZmFsc2UgbXVzdCBiZSBTVUNDRVNTIAotUEFTUyB0ZXN0IDE4OiBodHRwczovLzEyNy4w
LjAuMTo5NDQzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gt
YWNjZXNzLWNvbnRyb2wucHk/QUNBT3JpZ2luPWh0dHBzOi8vbG9jYWxob3N0Ojk0NDMmaWdub3Jl
IHdpdGggY3JlZGVudGlhbHMgdHJ1ZSBtdXN0IGJlIEZBSUwgCi1QQVNTIHRlc3QgMTk6IGh0dHBz
Oi8vMTI3LjAuMC4xOjk0NDMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNl
cy9mZXRjaC1hY2Nlc3MtY29udHJvbC5weT9BQ0FPcmlnaW49aHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0
MyZBQ0FDcmVkZW50aWFscz10cnVlJmlnbm9yZSB3aXRoIGNyZWRlbnRpYWxzIHRydWUgbXVzdCBi
ZSBTVUNDRVNTIAotUEFTUyB0ZXN0IDIwOiBodHRwczovL2xvY2FsaG9zdDo5NDQzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtYWNjZXNzLWNvbnRyb2wucHk/
QXV0aCZpZ25vcmUgd2l0aCBjcmVkZW50aWFscyBmYWxzZSBtdXN0IGJlIFNVQ0NFU1MgCi1QQVNT
IHRlc3QgMjE6IGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL3Jlc291cmNlcy9mZXRjaC1hY2Nlc3MtY29udHJvbC5weT9BdXRoJmlnbm9yZSB3aXRo
IGNyZWRlbnRpYWxzIHRydWUgbXVzdCBiZSBTVUNDRVNTIAotUEFTUyB0ZXN0IDIyOiBodHRwczov
LzEyNy4wLjAuMTo5NDQzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMv
ZmV0Y2gtYWNjZXNzLWNvbnRyb2wucHk/QXV0aCZpZ25vcmUgd2l0aCBjcmVkZW50aWFscyBmYWxz
ZSBtdXN0IGJlIEZBSUwgCi1QQVNTIHRlc3QgMjM6IGh0dHBzOi8vMTI3LjAuMC4xOjk0NDMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1hY2Nlc3MtY29udHJv
bC5weT9BdXRoJmlnbm9yZSB3aXRoIGNyZWRlbnRpYWxzIHRydWUgbXVzdCBiZSBGQUlMIAotUEFT
UyB0ZXN0IDI0OiBodHRwczovLzEyNy4wLjAuMTo5NDQzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtYWNjZXNzLWNvbnRyb2wucHk/QXV0aCZBQ0FPcmlnaW49
aHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0MyZpZ25vcmUgd2l0aCBjcmVkZW50aWFscyBmYWxzZSBtdXN0
IGJlIFNUQVRVUzQwMSAKLVBBU1MgdGVzdCAyNTogaHR0cHM6Ly8xMjcuMC4wLjE6OTQ0My9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWFjY2Vzcy1jb250cm9s
LnB5P0F1dGgmQUNBT3JpZ2luPWh0dHBzOi8vbG9jYWxob3N0Ojk0NDMmaWdub3JlIHdpdGggY3Jl
ZGVudGlhbHMgdHJ1ZSBtdXN0IGJlIEZBSUwgCi1QQVNTIHRlc3QgMjY6IGh0dHBzOi8vMTI3LjAu
MC4xOjk0NDMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1h
Y2Nlc3MtY29udHJvbC5weT9BdXRoJkFDQU9yaWdpbj1odHRwczovL2xvY2FsaG9zdDo5NDQzJkFD
QUNyZWRlbnRpYWxzPXRydWUmaWdub3JlIHdpdGggY3JlZGVudGlhbHMgdHJ1ZSBtdXN0IGJlIFNV
Q0NFU1MgCi1QQVNTIHRlc3QgMjc6IGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1hY2Nlc3MtY29udHJvbC5weT9tb2Rl
PXNhbWUtb3JpZ2luJnVybD1odHRwcyUzQSUyRiUyRmxvY2FsaG9zdCUzQTk0NDMlMkZzZXJ2aWNl
LXdvcmtlcnMlMkZzZXJ2aWNlLXdvcmtlciUyRnJlc291cmNlcyUyRmZldGNoLWFjY2Vzcy1jb250
cm9sLnB5IHdpdGggY3JlZGVudGlhbHMgZmFsc2UgbXVzdCBiZSBTVUNDRVNTIAotUEFTUyB0ZXN0
IDI4OiBodHRwczovL2xvY2FsaG9zdDo5NDQzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9yZXNvdXJjZXMvZmV0Y2gtYWNjZXNzLWNvbnRyb2wucHk/bW9kZT1zYW1lLW9yaWdpbiZ1cmw9
aHR0cHMlM0ElMkYlMkZsb2NhbGhvc3QlM0E5NDQzJTJGc2VydmljZS13b3JrZXJzJTJGc2Vydmlj
ZS13b3JrZXIlMkZyZXNvdXJjZXMlMkZmZXRjaC1hY2Nlc3MtY29udHJvbC5weSB3aXRoIGNyZWRl
bnRpYWxzIGZhbHNlIG11c3QgYmUgU1VDQ0VTUyAKLVBBU1MgdGVzdCAyOTogaHR0cHM6Ly8xMjcu
MC4wLjE6OTQ0My9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNo
LWFjY2Vzcy1jb250cm9sLnB5P21vZGU9c2FtZS1vcmlnaW4mdXJsPWh0dHBzJTNBJTJGJTJGbG9j
YWxob3N0JTNBOTQ0MyUyRnNlcnZpY2Utd29ya2VycyUyRnNlcnZpY2Utd29ya2VyJTJGcmVzb3Vy
Y2VzJTJGZmV0Y2gtYWNjZXNzLWNvbnRyb2wucHkgd2l0aCBjcmVkZW50aWFscyBmYWxzZSBtdXN0
IGJlIFNVQ0NFU1MgCi1QQVNTIHRlc3QgMzA6IGh0dHBzOi8vMTI3LjAuMC4xOjk0NDMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1hY2Nlc3MtY29udHJvbC5w
eT9tb2RlPXNhbWUtb3JpZ2luJnVybD1odHRwcyUzQSUyRiUyRmxvY2FsaG9zdCUzQTk0NDMlMkZz
ZXJ2aWNlLXdvcmtlcnMlMkZzZXJ2aWNlLXdvcmtlciUyRnJlc291cmNlcyUyRmZldGNoLWFjY2Vz
cy1jb250cm9sLnB5IHdpdGggY3JlZGVudGlhbHMgZmFsc2UgbXVzdCBiZSBTVUNDRVNTIAotUEFT
UyB0ZXN0IDMxOiBodHRwczovL2xvY2FsaG9zdDo5NDQzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtYWNjZXNzLWNvbnRyb2wucHk/bW9kZT1uby1jb3JzJnVy
bD1odHRwcyUzQSUyRiUyRjEyNy4wLjAuMSUzQTk0NDMlMkZzZXJ2aWNlLXdvcmtlcnMlMkZzZXJ2
aWNlLXdvcmtlciUyRnJlc291cmNlcyUyRmZldGNoLWFjY2Vzcy1jb250cm9sLnB5IHdpdGggY3Jl
ZGVudGlhbHMgZmFsc2UgbXVzdCBiZSBGQUlMIAotUEFTUyB0ZXN0IDMyOiBodHRwczovL2xvY2Fs
aG9zdDo5NDQzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gt
YWNjZXNzLWNvbnRyb2wucHk/bW9kZT1uby1jb3JzJnVybD1odHRwcyUzQSUyRiUyRjEyNy4wLjAu
MSUzQTk0NDMlMkZzZXJ2aWNlLXdvcmtlcnMlMkZzZXJ2aWNlLXdvcmtlciUyRnJlc291cmNlcyUy
RmZldGNoLWFjY2Vzcy1jb250cm9sLnB5IHdpdGggY3JlZGVudGlhbHMgZmFsc2UgbXVzdCBiZSBG
QUlMIAotUEFTUyB0ZXN0IDMzOiBodHRwczovLzEyNy4wLjAuMTo5NDQzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtYWNjZXNzLWNvbnRyb2wucHk/bW9kZT1u
by1jb3JzJnVybD1odHRwcyUzQSUyRiUyRjEyNy4wLjAuMSUzQTk0NDMlMkZzZXJ2aWNlLXdvcmtl
cnMlMkZzZXJ2aWNlLXdvcmtlciUyRnJlc291cmNlcyUyRmZldGNoLWFjY2Vzcy1jb250cm9sLnB5
IHdpdGggY3JlZGVudGlhbHMgZmFsc2UgbXVzdCBiZSBGQUlMIAotUEFTUyB0ZXN0IDM0OiBodHRw
czovLzEyNy4wLjAuMTo5NDQzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJj
ZXMvZmV0Y2gtYWNjZXNzLWNvbnRyb2wucHk/bW9kZT1uby1jb3JzJnVybD1odHRwcyUzQSUyRiUy
RjEyNy4wLjAuMSUzQTk0NDMlMkZzZXJ2aWNlLXdvcmtlcnMlMkZzZXJ2aWNlLXdvcmtlciUyRnJl
c291cmNlcyUyRmZldGNoLWFjY2Vzcy1jb250cm9sLnB5IHdpdGggY3JlZGVudGlhbHMgZmFsc2Ug
bXVzdCBiZSBGQUlMIAotUEFTUyB0ZXN0IDM1OiBodHRwczovL2xvY2FsaG9zdDo5NDQzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtYWNjZXNzLWNvbnRyb2wu
cHk/bW9kZT1jb3JzJnVybD1odHRwcyUzQSUyRiUyRjEyNy4wLjAuMSUzQTk0NDMlMkZzZXJ2aWNl
LXdvcmtlcnMlMkZzZXJ2aWNlLXdvcmtlciUyRnJlc291cmNlcyUyRmZldGNoLWFjY2Vzcy1jb250
cm9sLnB5JTNGQUNBT3JpZ2luJTNEaHR0cHMlM0ElMkYlMkZsb2NhbGhvc3QlM0E5NDQzIHdpdGgg
Y3JlZGVudGlhbHMgZmFsc2UgbXVzdCBiZSBTVUNDRVNTIAotUEFTUyB0ZXN0IDM2OiBodHRwczov
L2xvY2FsaG9zdDo5NDQzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMv
ZmV0Y2gtYWNjZXNzLWNvbnRyb2wucHk/bW9kZT1jb3JzJnVybD1odHRwcyUzQSUyRiUyRjEyNy4w
LjAuMSUzQTk0NDMlMkZzZXJ2aWNlLXdvcmtlcnMlMkZzZXJ2aWNlLXdvcmtlciUyRnJlc291cmNl
cyUyRmZldGNoLWFjY2Vzcy1jb250cm9sLnB5JTNGQUNBT3JpZ2luJTNEaHR0cHMlM0ElMkYlMkZs
b2NhbGhvc3QlM0E5NDQzIHdpdGggY3JlZGVudGlhbHMgdHJ1ZSBtdXN0IGJlIEZBSUwgCi1QQVNT
IHRlc3QgMzc6IGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL3Jlc291cmNlcy9mZXRjaC1hY2Nlc3MtY29udHJvbC5weT9tb2RlPWNvcnMmdXJsPWh0
dHBzJTNBJTJGJTJGMTI3LjAuMC4xJTNBOTQ0MyUyRnNlcnZpY2Utd29ya2VycyUyRnNlcnZpY2Ut
d29ya2VyJTJGcmVzb3VyY2VzJTJGZmV0Y2gtYWNjZXNzLWNvbnRyb2wucHklM0ZBQ0FPcmlnaW4l
M0RodHRwcyUzQSUyRiUyRmxvY2FsaG9zdCUzQTk0NDMlMjZBQ0FDcmVkZW50aWFscyUzRHRydWUg
d2l0aCBjcmVkZW50aWFscyB0cnVlIG11c3QgYmUgU1VDQ0VTUyAKLVBBU1MgdGVzdCAzODogaHR0
cHM6Ly8xMjcuMC4wLjE6OTQ0My9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3Vy
Y2VzL2ZldGNoLWFjY2Vzcy1jb250cm9sLnB5P21vZGU9Y29ycyZ1cmw9aHR0cHMlM0ElMkYlMkYx
MjcuMC4wLjElM0E5NDQzJTJGc2VydmljZS13b3JrZXJzJTJGc2VydmljZS13b3JrZXIlMkZyZXNv
dXJjZXMlMkZmZXRjaC1hY2Nlc3MtY29udHJvbC5weSUzRkFDQU9yaWdpbiUzRGh0dHBzJTNBJTJG
JTJGbG9jYWxob3N0JTNBOTQ0MyB3aXRoIGNyZWRlbnRpYWxzIGZhbHNlIG11c3QgYmUgU1VDQ0VT
UyAKLVBBU1MgdGVzdCAzOTogaHR0cHM6Ly8xMjcuMC4wLjE6OTQ0My9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWFjY2Vzcy1jb250cm9sLnB5P21vZGU9Y29y
cyZ1cmw9aHR0cHMlM0ElMkYlMkYxMjcuMC4wLjElM0E5NDQzJTJGc2VydmljZS13b3JrZXJzJTJG
c2VydmljZS13b3JrZXIlMkZyZXNvdXJjZXMlMkZmZXRjaC1hY2Nlc3MtY29udHJvbC5weSUzRkFD
QU9yaWdpbiUzRGh0dHBzJTNBJTJGJTJGbG9jYWxob3N0JTNBOTQ0MyB3aXRoIGNyZWRlbnRpYWxz
IHRydWUgbXVzdCBiZSBGQUlMIAotUEFTUyB0ZXN0IDQwOiBodHRwczovLzEyNy4wLjAuMTo5NDQz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtYWNjZXNzLWNv
bnRyb2wucHk/bW9kZT1jb3JzJnVybD1odHRwcyUzQSUyRiUyRjEyNy4wLjAuMSUzQTk0NDMlMkZz
ZXJ2aWNlLXdvcmtlcnMlMkZzZXJ2aWNlLXdvcmtlciUyRnJlc291cmNlcyUyRmZldGNoLWFjY2Vz
cy1jb250cm9sLnB5JTNGQUNBT3JpZ2luJTNEaHR0cHMlM0ElMkYlMkZsb2NhbGhvc3QlM0E5NDQz
JTI2QUNBQ3JlZGVudGlhbHMlM0R0cnVlIHdpdGggY3JlZGVudGlhbHMgdHJ1ZSBtdXN0IGJlIFNV
Q0NFU1MgCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWNvcnMteGhyLmh0
dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1jb3JzLXhoci5odHRwcy5odG1sCmlu
ZGV4IGY4ZmY0NDU2NzNiZDQyYmFmY2MyOWM0M2ViODY5NjdkYWMxZjk3OTIuLjUyMWMwMWM1OTRm
MjQ4OWI5NDVkNjc0OWViNmZiODAwMGVhMmI5MWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL2ZldGNoLWNvcnMteGhyLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0
Y2gtY29ycy14aHIuaHR0cHMuaHRtbApAQCAtNiw0NCArNiwzMyBAQAogPHNjcmlwdCBzcmM9InJl
c291cmNlcy90ZXN0LWhlbHBlcnMuc3ViLmpzP3BpcGU9c3ViIj48L3NjcmlwdD4KIDxib2R5Pgog
PHNjcmlwdD4KLXByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7Cithc3luY190ZXN0KGZ1bmN0aW9u
KHQpIHsKICAgICB2YXIgU0NPUEUgPSAncmVzb3VyY2VzL2ZldGNoLWNvcnMteGhyLWlmcmFtZS5o
dG1sJzsKICAgICB2YXIgU0NSSVBUID0gJ3Jlc291cmNlcy9mZXRjaC1yZXdyaXRlLXdvcmtlci5q
cyc7CiAgICAgdmFyIGhvc3RfaW5mbyA9IGdldF9ob3N0X2luZm8oKTsKIAotICAgIHJldHVybiBs
b2dpbl9odHRwcyh0KQorICAgIGxvZ2luX2h0dHBzKHQpCiAgICAgICAudGhlbihmdW5jdGlvbigp
IHsKICAgICAgICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0
ZXIodCwgU0NSSVBULCBTQ09QRSk7CiAgICAgICAgIH0pCiAgICAgICAudGhlbihmdW5jdGlvbihy
ZWdpc3RyYXRpb24pIHsKLSAgICAgICAgICB0LmFkZF9jbGVhbnVwKGZ1bmN0aW9uKCkgewotICAg
ICAgICAgICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcih0LCBTQ09QRSk7Ci0g
ICAgICAgICAgICB9KTsKLQogICAgICAgICAgIHJldHVybiB3YWl0X2Zvcl9zdGF0ZSh0LCByZWdp
c3RyYXRpb24uaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOwogICAgICAgICB9KQogICAgICAgLnRo
ZW4oZnVuY3Rpb24oKSB7IHJldHVybiB3aXRoX2lmcmFtZShTQ09QRSk7IH0pCiAgICAgICAudGhl
bihmdW5jdGlvbihmcmFtZSkgewotICAgICAgICAgIHQuYWRkX2NsZWFudXAoZnVuY3Rpb24oKSB7
Ci0gICAgICAgICAgICAgIGZyYW1lLnJlbW92ZSgpOwotICAgICAgICAgICAgfSk7Ci0KICAgICAg
ICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7CiAgICAg
ICAgICAgICAgIHZhciBjaGFubmVsID0gbmV3IE1lc3NhZ2VDaGFubmVsKCk7Ci0gICAgICAgICAg
ICAgIGNoYW5uZWwucG9ydDEub25tZXNzYWdlID0gKGV2ZW50KSA9PiB7Ci0gICAgICAgICAgICAg
ICAgICBpZiAoZXZlbnQuZGF0YSA9PT0gJ2RvbmUnKSB7Ci0gICAgICAgICAgICAgICAgICAgIHJl
c29sdmUoKTsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgICAgICAg
fQotICAgICAgICAgICAgICAgICAgdGVzdCgoKSA9PiB7Ci0gICAgICAgICAgICAgICAgICAgIGFz
c2VydF90cnVlKGV2ZW50LmRhdGEucmVzdWx0KTsKLSAgICAgICAgICAgICAgICAgIH0sIGV2ZW50
LmRhdGEudGVzdE5hbWUpOwotICAgICAgICAgICAgICB9OworICAgICAgICAgICAgICBjaGFubmVs
LnBvcnQxLm9ubWVzc2FnZSA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAg
ICAgICAgIGFzc2VydF9lcXVhbHMoZS5kYXRhLnJlc3VsdHMsICdmaW5pc2gnKTsKKyAgICAgICAg
ICAgICAgICAgIGZyYW1lLnJlbW92ZSgpOworICAgICAgICAgICAgICAgICAgc2VydmljZV93b3Jr
ZXJfdW5yZWdpc3Rlcl9hbmRfZG9uZSh0LCBTQ09QRSk7CisgICAgICAgICAgICAgICAgfSk7CiAg
ICAgICAgICAgICAgIGZyYW1lLmNvbnRlbnRXaW5kb3cucG9zdE1lc3NhZ2Uoe30sCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaG9zdF9pbmZvWydIVFRQU19P
UklHSU4nXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBb
Y2hhbm5lbC5wb3J0Ml0pOwogICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0pOworICAgICAgICB9
KQorICAgICAgLmNhdGNoKHVucmVhY2hlZF9yZWplY3Rpb24odCkpOwogICB9LCAnVmVyaWZ5IENP
UlMgWEhSIG9mIGZldGNoKCkgaW4gYSBTZXJ2aWNlIFdvcmtlcicpOwogPC9zY3JpcHQ+CiA8L2Jv
ZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1jc3AuaHR0cHMuaHRtbCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWNzcC5odHRwcy5odG1sCmluZGV4IDRmMTc2MjIwZDYx
MDBjNGVmYjFiZmRhODE3Yjg0Y2Y1ZjUzYTRmM2QuLjkxYTc3NGExMzNmZDZhMWU5NDJlMDAwMzRj
N2MwNTExNWVlMGRlYTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWNzcC5o
dHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWNzcC5odHRwcy5odG1sCkBA
IC0zMiwxMCArMzIsNiBAQCBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewogCiAgICAgcmV0dXJu
IHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIFNDUklQVCwgU0NPUEUp
CiAgICAgICAudGhlbihmdW5jdGlvbihyZWdpc3RyYXRpb24pIHsKLSAgICAgICAgICB0LmFkZF9j
bGVhbnVwKGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICByZXR1cm4gc2VydmljZV93b3JrZXJf
dW5yZWdpc3Rlcih0LCBTQ09QRSk7Ci0gICAgICAgICAgICB9KTsKLQogICAgICAgICAgIHJldHVy
biB3YWl0X2Zvcl9zdGF0ZSh0LCByZWdpc3RyYXRpb24uaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcp
OwogICAgICAgICB9KQogICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7CkBAIC0xMDksNiArMTA1LDcg
QEAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICAgICAgfSkKICAgICAgIC50aGVuKGZ1
bmN0aW9uKCkgewogICAgICAgICAgIGZyYW1lLnJlbW92ZSgpOworICAgICAgICAgIHNlcnZpY2Vf
d29ya2VyX3VucmVnaXN0ZXJfYW5kX2RvbmUodCwgU0NPUEUpOwogICAgICAgICB9KTsKICAgfSwg
J1ZlcmlmeSBDU1AgY29udHJvbCBvZiBmZXRjaCgpIGluIGEgU2VydmljZSBXb3JrZXInKTsKIDwv
c2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtZXZlbnQtYWZ0ZXIt
bmF2aWdhdGlvbi13aXRoaW4tcGFnZS5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0
Y2gtZXZlbnQtYWZ0ZXItbmF2aWdhdGlvbi13aXRoaW4tcGFnZS5odHRwcy5odG1sCmluZGV4IDQ4
MTJkOGE5MTU1MWVkYWU4NGI1ZTI4MDU4MDRmYzlkODg5OWYzZTkuLmRjZTFmNzk0ZmFiZWQ4MTc2
MWE4M2NmYTY4YzIzOTIwMTY4Zjk5ZmIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2Zl
dGNoLWV2ZW50LWFmdGVyLW5hdmlnYXRpb24td2l0aGluLXBhZ2UuaHR0cHMuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1ldmVudC1hZnRlci1uYXZpZ2F0aW9uLXdpdGhpbi1wYWdl
Lmh0dHBzLmh0bWwKQEAgLTE1LDEwICsxNSw2IEBAIHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7
CiAKICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwg
d29ya2VyLCBzY29wZSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKHJlZykgewotICAgICAgICAgIHQu
YWRkX2NsZWFudXAoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgIHJldHVybiBzZXJ2aWNlX3dv
cmtlcl91bnJlZ2lzdGVyKHQsIHNjb3BlKTsKLSAgICAgICAgICAgIH0pOwotCiAgICAgICAgICAg
cmV0dXJuIHdhaXRfZm9yX3N0YXRlKHQsIHJlZy5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7CiAg
ICAgICAgIH0pCiAgICAgICAudGhlbihmdW5jdGlvbigpIHsgcmV0dXJuIHdpdGhfaWZyYW1lKHNj
b3BlKTsgfSkKQEAgLTM0LDYgKzMwLDcgQEAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKICAg
ICAgIC50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlKSB7CiAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhy
ZXNwb25zZSwgJ2ludGVyY2VwdGVkIGJ5IHNlcnZpY2Ugd29ya2VyJyk7CiAgICAgICAgICAgZnJh
bWUucmVtb3ZlKCk7CisgICAgICAgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJf
YW5kX2RvbmUodCwgc2NvcGUpOwogICAgICAgICB9KQogICB9LCAnU2VydmljZSBXb3JrZXIgc2hv
dWxkIHJlc3BvbmQgdG8gZmV0Y2ggZXZlbnQgYWZ0ZXIgdGhlIGhhc2ggY2hhbmdlcycpOwogCkBA
IC00NiwxMCArNDMsNiBAQCBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewogCiAgICAgcmV0dXJu
IHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHdvcmtlciwgc2NvcGUp
CiAgICAgICAudGhlbihmdW5jdGlvbihyZWcpIHsKLSAgICAgICAgICB0LmFkZF9jbGVhbnVwKGZ1
bmN0aW9uKCkgewotICAgICAgICAgICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rl
cih0LCBzY29wZSk7Ci0gICAgICAgICAgICB9KTsKLQogICAgICAgICAgIHJldHVybiB3YWl0X2Zv
cl9zdGF0ZSh0LCByZWcuaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOwogICAgICAgICB9KQogICAg
ICAgLnRoZW4oZnVuY3Rpb24oKSB7IHJldHVybiB3aXRoX2lmcmFtZShzY29wZSk7IH0pCkBAIC02
NSw2ICs1OCw3IEBAIHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7CiAgICAgICAudGhlbihmdW5j
dGlvbihyZXNwb25zZSkgewogICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVzcG9uc2UsICdpbnRl
cmNlcHRlZCBieSBzZXJ2aWNlIHdvcmtlcicpOwogICAgICAgICAgIGZyYW1lLnJlbW92ZSgpOwor
ICAgICAgICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9kb25lKHQsIHNj
b3BlKTsKICAgICAgICAgfSkKICAgfSwgJ1NlcnZpY2UgV29ya2VyIHNob3VsZCByZXNwb25kIHRv
IGZldGNoIGV2ZW50IGFmdGVyIHRoZSBwdXNoU3RhdGUnKTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvZmV0Y2gtZXZlbnQtYXN5bmMtcmVzcG9uZC13aXRoLmh0dHBzLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWV2ZW50LWFzeW5jLXJlc3BvbmQtd2l0aC5o
dHRwcy1leHBlY3RlZC50eHQKaW5kZXggYTc4YjkwYTY3YTg1MzI0YWI3ZmFjM2Q1NmFlMGExZThh
NWYyMjhkOC4uN2UxMWJjZWQ2Zjg1MmZlOGFiZjdhNWIyZDgxOGQ2NWQzY2E0MmJlNiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtZXZlbnQtYXN5bmMtcmVzcG9uZC13aXRoLmh0
dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1ldmVudC1hc3lu
Yy1yZXNwb25kLXdpdGguaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0xLDYgKzEsMyBAQAogCi1QQVNT
IGdsb2JhbCBzZXR1cCAKLVBBU1MgcmVzcG9uZFdpdGggaW4gYSB0YXNrIHRocm93cyBJbnZhbGlk
U3RhdGVFcnJvciAKLVBBU1MgcmVzcG9uZFdpdGggaW4gYSBtaWNyb3Rhc2sgZG9lcyBub3QgdGhy
b3cgCi1QQVNTIGdsb2JhbCBjbGVhbnVwIAorUEFTUyBDYWxsaW5nIHJlc3BvbmRXaXRoIGFzeW5j
aHJvbm91c2x5IHRocm93cyBhbiBleGNlcHRpb24gCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL2ZldGNoLWV2ZW50LWFzeW5jLXJlc3BvbmQtd2l0aC5odHRwcy5odG1sIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvZmV0Y2gtZXZlbnQtYXN5bmMtcmVzcG9uZC13aXRoLmh0dHBzLmh0bWwKaW5k
ZXggZDkxNDdmODU0OTRjMjFlNTRkMzlhNGZkN2FmMTZlZmExYTEyNjM4NC4uYTJiOTNhY2ZjNWIy
NDBhMTQ4ZjA3YTMzYmQxYTBkMmE2Y2E3NTcxNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvZmV0Y2gtZXZlbnQtYXN5bmMtcmVzcG9uZC13aXRoLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvZmV0Y2gtZXZlbnQtYXN5bmMtcmVzcG9uZC13aXRoLmh0dHBzLmh0bWwKQEAg
LTEsNzMgKzEsMzMgQEAKIDwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08dGl0bGU+cmVzcG9uZFdp
dGggY2Fubm90IGJlIGNhbGxlZCBhc3luY2hyb25vdXNseTwvdGl0bGU+CiA8c2NyaXB0IHNyYz0i
L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iL3Jlc291
cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL3Rlc3QtaGVscGVycy5zdWIuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KLS8vIFRoaXMgZmls
ZSBoYXMgdGVzdHMgdGhhdCBjYWxsIHJlc3BvbmRXaXRoKCkgYXN5bmNocm9ub3VzbHkuCi0KLWxl
dCBmcmFtZTsKLWxldCB3b3JrZXI7Ci1jb25zdCBzY3JpcHQgPSAncmVzb3VyY2VzL2ZldGNoLWV2
ZW50LWFzeW5jLXJlc3BvbmQtd2l0aC13b3JrZXIuanMnOwotY29uc3Qgc2NvcGUgPSAncmVzb3Vy
Y2VzL3NpbXBsZS5odG1sJzsKLQotLy8gR2xvYmFsIHNldHVwOiB0aGlzIG11c3QgYmUgdGhlIGZp
cnN0IHByb21pc2VfdGVzdC4KLXByb21pc2VfdGVzdChhc3luYyAodCkgPT4gewotICBjb25zdCBy
ZWdpc3RyYXRpb24gPQotICAgICAgYXdhaXQgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRf
cmVnaXN0ZXIodCwgc2NyaXB0LCBzY29wZSk7Ci0gIHdvcmtlciA9IHJlZ2lzdHJhdGlvbi5pbnN0
YWxsaW5nOwotICBhd2FpdCB3YWl0X2Zvcl9zdGF0ZSh0LCB3b3JrZXIsICdhY3RpdmF0ZWQnKTsK
LSAgZnJhbWUgPSBhd2FpdCB3aXRoX2lmcmFtZShzY29wZSk7Ci19LCAnZ2xvYmFsIHNldHVwJyk7
Ci0KLS8vIFdhaXRzIGZvciBhIHNpbmdsZSBtZXNzYWdlIGZyb20gdGhlIHNlcnZpY2Ugd29ya2Vy
IGFuZCB0aGVuIHJlbW92ZXMgdGhlCi0vLyBtZXNzYWdlIGhhbmRsZXIuIE5vdCBzYWZlIGZvciBj
b25jdXJyZW50IHVzZS4KLWZ1bmN0aW9uIHdhaXRfZm9yX21lc3NhZ2UoKSB7Ci0gIHJldHVybiBu
ZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gewotICAgIGNvbnN0IGhhbmRsZXIgPSAoZXZlbnQpID0+
IHsKLSAgICAgIG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21l
c3NhZ2UnLCBoYW5kbGVyKTsKLSAgICAgIHJlc29sdmUoZXZlbnQuZGF0YSk7Ci0gICAgfTsKLSAg
ICBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgaGFu
ZGxlcik7Ci0gIH0pOwotfQotCi0vLyBEb2VzIG9uZSB0ZXN0IGNhc2UuIEl0IGZldGNoZXMgfHVy
bHwuIFRoZSBzZXJ2aWNlIHdvcmtlciBnZXRzIGEgZmV0Y2ggZXZlbnQKLS8vIGZvciB8dXJsfCBh
bmQgYXR0ZW1wdHMgdG8gY2FsbCByZXNwb25kV2l0aCgpIGFzeW5jaHJvbm91c2x5LiBJdCByZXBv
cnRzIGJhY2sKLS8vIHRvIHRoZSB0ZXN0IHdoZXRoZXIgYW4gZXhjZXB0aW9uIHdhcyB0aHJvd24u
Ci1hc3luYyBmdW5jdGlvbiBkb190ZXN0KHVybCkgewotICAvLyBTZW5kIGEgbWVzc2FnZSB0byB0
ZWxsIHRoZSB3b3JrZXIgYSBuZXcgdGVzdCBjYXNlIGlzIHN0YXJ0aW5nLgotICBjb25zdCBtZXNz
YWdlID0gd2FpdF9mb3JfbWVzc2FnZSgpOwotICB3b3JrZXIucG9zdE1lc3NhZ2UoJ2luaXRpYWxp
emVNZXNzYWdlSGFuZGxlcicpOwotICBjb25zdCByZXNwb25zZSA9IGF3YWl0IG1lc3NhZ2U7Ci0g
IGFzc2VydF9lcXVhbHMocmVzcG9uc2UsICdtZXNzYWdlSGFuZGxlckluaXRpYWxpemVkJyk7Ci0K
LSAgLy8gU3RhcnQgYSBmZXRjaC4KLSAgY29uc3QgZmV0Y2hQcm9taXNlID0gZnJhbWUuY29udGVu
dFdpbmRvdy5mZXRjaCh1cmwpOwotCi0gIC8vIFJlY2VpdmUgdGhlIHRlc3QgcmVzdWx0IGZyb20g
dGhlIHNlcnZpY2Ugd29ya2VyLgotICBjb25zdCByZXN1bHQgPSB3YWl0X2Zvcl9tZXNzYWdlKCk7
Ci0gIGF3YWl0IGZldGNoUHJvbWlzZS50aGVuKCgpPT4ge30sICgpID0+IHt9KTsKLSAgcmV0dXJu
IHJlc3VsdDsKLX07Ci0KLXByb21pc2VfdGVzdChhc3luYyAodCkgPT4gewotICBjb25zdCByZXN1
bHQgPSBhd2FpdCBkb190ZXN0KCdyZXNwb25kV2l0aC1pbi10YXNrJyk7Ci0gIGFzc2VydF90cnVl
KHJlc3VsdC5kaWRUaHJvdywgJ3Nob3VsZCB0aHJvdycpOwotICBhc3NlcnRfZXF1YWxzKHJlc3Vs
dC5lcnJvciwgJ0ludmFsaWRTdGF0ZUVycm9yJyk7Ci19LCAncmVzcG9uZFdpdGggaW4gYSB0YXNr
IHRocm93cyBJbnZhbGlkU3RhdGVFcnJvcicpOwotCi1wcm9taXNlX3Rlc3QoYXN5bmMgKHQpID0+
IHsKLSAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZG9fdGVzdCgncmVzcG9uZFdpdGgtaW4tbWljcm90
YXNrJyk7Ci0gIGFzc2VydF9lcXVhbHMocmVzdWx0LmRpZFRocm93LCBmYWxzZSwgJ3Nob3VsZCBu
b3QgdGhyb3cnKTsKLX0sICdyZXNwb25kV2l0aCBpbiBhIG1pY3JvdGFzayBkb2VzIG5vdCB0aHJv
dycpOwotCi0vLyBHbG9iYWwgY2xlYW51cDogdGhlIGZpbmFsIHByb21pc2VfdGVzdC4KLXByb21p
c2VfdGVzdChhc3luYyAodCkgPT4gewotICBpZiAoZnJhbWUpCi0gICAgZnJhbWUucmVtb3ZlKCk7
Ci0gIGF3YWl0IHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXIodCwgc2NvcGUpOwotfSwgJ2dsb2Jh
bCBjbGVhbnVwJyk7Citwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgeworICAgIHZhciBzY3JpcHQg
PSAncmVzb3VyY2VzL2ZldGNoLWV2ZW50LWFzeW5jLXJlc3BvbmQtd2l0aC13b3JrZXIuanMnOwor
ICAgIHZhciBzY29wZSA9ICdyZXNvdXJjZXMvc2ltcGxlLmh0bWwnOworCisgICAgcmV0dXJuIHNl
cnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHNjcmlwdCwgc2NvcGUpCisg
ICAgICAudGhlbihmdW5jdGlvbihyZWdpc3RyYXRpb24pIHsKKyAgICAgICAgICByZXR1cm4gd2Fp
dF9mb3Jfc3RhdGUodCwgcmVnaXN0cmF0aW9uLmluc3RhbGxpbmcsICdhY3RpdmF0ZWQnKTsKKyAg
ICAgICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKCkgeworICAgICAgICAgIHJldHVybiB3aXRo
X2lmcmFtZShzY29wZSk7CisgICAgICAgIH0pCisgICAgICAudGhlbihmdW5jdGlvbihmcmFtZSkg
eworICAgICAgICAgIGFkZF9jb21wbGV0aW9uX2NhbGxiYWNrKGZ1bmN0aW9uKCkgeyBmcmFtZS5y
ZW1vdmUoKTsgfSk7CisgICAgICAgICAgdmFyIGNoYW5uZWwgPSBuZXcgTWVzc2FnZUNoYW5uZWwo
KTsKKyAgICAgICAgICB2YXIgc2F3X21lc3NhZ2UgPSBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNv
bHZlKSB7CisgICAgICAgICAgICAgIGNoYW5uZWwucG9ydDEub25tZXNzYWdlID0gZnVuY3Rpb24o
ZSkgeyByZXNvbHZlKGUuZGF0YSk7IH0KKyAgICAgICAgICAgIH0pOworICAgICAgICAgIHZhciB3
b3JrZXIgPSBmcmFtZS5jb250ZW50V2luZG93Lm5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLmNvbnRy
b2xsZXI7CisKKyAgICAgICAgICB3b3JrZXIucG9zdE1lc3NhZ2Uoe3BvcnQ6IGNoYW5uZWwucG9y
dDJ9LCBbY2hhbm5lbC5wb3J0Ml0pOworICAgICAgICAgIHJldHVybiBzYXdfbWVzc2FnZTsKKyAg
ICAgICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKG1lc3NhZ2UpIHsKKyAgICAgICAgICBhc3Nl
cnRfZXF1YWxzKG1lc3NhZ2UsICdQQVNTJyk7CisgICAgICAgICAgcmV0dXJuIHNlcnZpY2Vfd29y
a2VyX3VucmVnaXN0ZXJfYW5kX2RvbmUodCwgc2NvcGUpOworICAgICAgICB9KQorICB9LCAnQ2Fs
bGluZyByZXNwb25kV2l0aCBhc3luY2hyb25vdXNseSB0aHJvd3MgYW4gZXhjZXB0aW9uJyk7CiA8
L3NjcmlwdD4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWV2
ZW50LW5ldHdvcmstZXJyb3IuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWV2
ZW50LW5ldHdvcmstZXJyb3IuaHR0cHMuaHRtbAppbmRleCBmZWEyYWQxZTNjMjZlZmZjYzlmZDdj
OGQ3YTY2OTE3ZTQyMDYwNmI0Li4yNTQ5MTllOTIzMjdhZWZkMTZlYjU3ODU1ZjgzMjIxY2JlOGQ3
ZWE2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1ldmVudC1uZXR3b3JrLWVy
cm9yLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtZXZlbnQtbmV0d29y
ay1lcnJvci5odHRwcy5odG1sCkBAIC0yMiwxMCArMjIsNiBAQCBwcm9taXNlX3Rlc3QoZnVuY3Rp
b24odCkgewogCiAgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lz
dGVyKHQsIHNjcmlwdCwgc2NvcGUpCiAgICAgICAudGhlbihmdW5jdGlvbihyZWdpc3RyYXRpb24p
IHsKLSAgICAgICAgICB0LmFkZF9jbGVhbnVwKGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICBy
ZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcih0LCBzY29wZSk7Ci0gICAgICAgICAgICB9
KTsKLQogICAgICAgICAgIHJldHVybiB3YWl0X2Zvcl9zdGF0ZSh0LCByZWdpc3RyYXRpb24uaW5z
dGFsbGluZywgJ2FjdGl2YXRlZCcpOwogICAgICAgICB9KQogICAgICAgLnRoZW4oZnVuY3Rpb24o
KSB7CkBAIC0zOCw2ICszNCw3IEBAIHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7CiAgICAgICAu
dGhlbihmdW5jdGlvbihyZXN1bHQpIHsKICAgICAgICAgICBmcmFtZS5yZW1vdmUoKTsKICAgICAg
ICAgICBhc3NlcnRfZXF1YWxzKHJlc3VsdCwgJ1BBU1MnKTsKKyAgICAgICAgICByZXR1cm4gc2Vy
dmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfZG9uZSh0LCBzY29wZSk7CiAgICAgICAgIH0pOwog
ICB9LCAnUmVqZWN0aW5nIHRoZSBmZXRjaCBldmVudCBvciB1c2luZyBwcmV2ZW50RGVmYXVsdCgp
IGNhdXNlcyBhIG5ldHdvcmsgJyArCiAgICAgICdlcnJvcicpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvZmV0Y2gtZXZlbnQtcmVmZXJyZXItcG9saWN5Lmh0dHBzLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWV2ZW50LXJlZmVycmVyLXBvbGljeS5odHRwcy1l
eHBlY3RlZC50eHQKaW5kZXggODJhYTVlMDBlODkxMTFiNzNlNzVmNzY0OGMyYjQxMTg4NTY5Mzc1
ZS4uYWY0ZDFmNWQ5MGMyNzUzNzdiZTRkMjUyNzQ2YjYyM2I2NzFkZjU5YiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvZmV0Y2gtZXZlbnQtcmVmZXJyZXItcG9saWN5Lmh0dHBzLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1ldmVudC1yZWZlcnJlci1wb2xp
Y3kuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0xLDEwICsxLDggQEAKLUNPTlNPTEUgTUVTU0FHRTog
bGluZSAyOTogW2Jsb2NrZWRdIFRoZSBwYWdlIGF0IGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWV2ZW50LXJlZmVycmVyLXBvbGljeS5o
dHRwcy5odG1sIHdhcyBub3QgYWxsb3dlZCB0byBkaXNwbGF5IGluc2VjdXJlIGNvbnRlbnQgZnJv
bSBodHRwOi8vbG9jYWxob3N0Ojg4MDAvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyLy9y
ZXNvdXJjZXMvc2ltcGxlLmh0bWw/cmVmZXJyZXJGdWxsLgorQ09OU09MRSBNRVNTQUdFOiBsaW5l
IDIyOiBbYmxvY2tlZF0gVGhlIHBhZ2UgYXQgaHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0My9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtZXZlbnQtcmVmZXJyZXItcG9saWN5Lmh0dHBz
Lmh0bWwgd2FzIG5vdCBhbGxvd2VkIHRvIGRpc3BsYXkgaW5zZWN1cmUgY29udGVudCBmcm9tIGh0
dHA6Ly9sb2NhbGhvc3Q6ODgwMC9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvL3Jlc291
cmNlcy9zaW1wbGUuaHRtbD9yZWZlcnJlckZ1bGwuCiAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAy
OTogTm90IGFsbG93ZWQgdG8gcmVxdWVzdCByZXNvdXJjZQotQ09OU09MRSBNRVNTQUdFOiBsaW5l
IDI5OiBGZXRjaCBBUEkgY2Fubm90IGxvYWQgaHR0cDovL2xvY2FsaG9zdDo4ODAwL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci8vcmVzb3VyY2VzL3NpbXBsZS5odG1sP3JlZmVycmVyRnVs
bCBkdWUgdG8gYWNjZXNzIGNvbnRyb2wgY2hlY2tzLgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDIy
OiBOb3QgYWxsb3dlZCB0byByZXF1ZXN0IHJlc291cmNlCitDT05TT0xFIE1FU1NBR0U6IGxpbmUg
MjI6IEZldGNoIEFQSSBjYW5ub3QgbG9hZCBodHRwOi8vbG9jYWxob3N0Ojg4MDAvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyLy9yZXNvdXJjZXMvc2ltcGxlLmh0bWw/cmVmZXJyZXJGdWxs
IGR1ZSB0byBhY2Nlc3MgY29udHJvbCBjaGVja3MuCiAKIAotRkFJTCBTZXJ2aWNlIFdvcmtlciBy
ZXNwb25kcyB0byBmZXRjaCBldmVudCB3aXRoIHRoZSByZWZlcnJlciBwb2xpY3kgcHJvbWlzZV90
ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBO
b3QgYWxsb3dlZCB0byByZXF1ZXN0IHJlc291cmNlIgotUEFTUyBTZXJ2aWNlIFdvcmtlciBzaG91
bGQgcmVzcG9uZCB0byBmZXRjaCB3aXRoIHRoZSBkZWZhdWx0IHJlZmVycmVyIHBvbGljeSAKLVBB
U1MgU2VydmljZSBXb3JrZXIgc2hvdWxkIHJlc3BvbmQgdG8gZmV0Y2ggd2l0aCB0aGUgcmVmZXJy
ZXIgVVJMIHdoZW4gYSBtZW1iZXIgb2YgUmVxdWVzdEluaXQgaXMgcHJlc2VudCAtIERlZmF1bHQg
UmVmZXJyZXIgCitGQUlMIFNlcnZpY2UgV29ya2VyIHJlc3BvbmRzIHRvIGZldGNoIGV2ZW50IHdp
dGggdGhlIHJlZmVycmVyIHBvbGljeSBhc3NlcnRfdW5yZWFjaGVkOiB1bmV4cGVjdGVkIHJlamVj
dGlvbjogTm90IGFsbG93ZWQgdG8gcmVxdWVzdCByZXNvdXJjZSBSZWFjaGVkIHVucmVhY2hhYmxl
IGNvZGUKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtZXZlbnQtcmVmZXJy
ZXItcG9saWN5Lmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1ldmVudC1yZWZl
cnJlci1wb2xpY3kuaHR0cHMuaHRtbAppbmRleCA4MDRmZDliNDIwNGM0MjI0Y2IxNTI2N2UyNzlk
NzRlODc3MGVmN2M5Li45YjY3ZmFjY2FjOGJhZmY4MWJiZmZkOTVlM2MzMzVkMDJjY2RmMjE2IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1ldmVudC1yZWZlcnJlci1wb2xpY3ku
aHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1ldmVudC1yZWZlcnJlci1w
b2xpY3kuaHR0cHMuaHRtbApAQCAtNywxOSArNywxMiBAQAogPHNjcmlwdD4KIHZhciB3b3JrZXIg
PSAncmVzb3VyY2VzL2ZldGNoLWV2ZW50LXRlc3Qtd29ya2VyLmpzJzsKIAotZnVuY3Rpb24gZG9f
dGVzdChyZWZlcnJlciwgdmFsdWUsIGV4cGVjdGVkLCBuYW1lKQotewotICAgIHRlc3QoKCkgPT4g
ewotICAgICAgICAgIGFzc2VydF9lcXVhbHModmFsdWUsIGV4cGVjdGVkKTsKLSAgICB9LCBuYW1l
ICsgKHJlZmVycmVyID8gIiAtIEN1c3RvbSBSZWZlcnJlciIgOiAiIC0gRGVmYXVsdCBSZWZlcnJl
ciIpKTsKLX0KLQogZnVuY3Rpb24gcnVuX3JlZmVycmVyX3BvbGljeV90ZXN0cyhmcmFtZSwgcmVm
ZXJyZXIsIGhyZWYsIG9yaWdpbikgewogICAgIHJldHVybiBmcmFtZS5jb250ZW50V2luZG93LmZl
dGNoKCdyZXNvdXJjZXMvc2ltcGxlLmh0bWw/cmVmZXJyZXJGdWxsJywKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB7bWV0aG9kOiAiR0VUIiwgcmVmZXJyZXI6IHJlZmVycmVy
fSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlKSB7IHJldHVybiByZXNwb25zZS50ZXh0
KCk7IH0pCiAgICAgICAudGhlbihmdW5jdGlvbihyZXNwb25zZV90ZXh0KSB7Ci0gICAgICAgICAg
ZG9fdGVzdChyZWZlcnJlciwKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKAogICAgICAgICAgICAg
cmVzcG9uc2VfdGV4dCwKICAgICAgICAgICAgICdSZWZlcnJlcjogJyArIGhyZWYgKyAnXG4nICsK
ICAgICAgICAgICAgICdSZWZlcnJlclBvbGljeTogbm8tcmVmZXJyZXItd2hlbi1kb3duZ3JhZGUn
LApAQCAtMzEsNyArMjQsNyBAQCBmdW5jdGlvbiBydW5fcmVmZXJyZXJfcG9saWN5X3Rlc3RzKGZy
YW1lLCByZWZlcnJlciwgaHJlZiwgb3JpZ2luKSB7CiAgICAgICAgIH0pCiAgICAgICAudGhlbihm
dW5jdGlvbihyZXNwb25zZSkgeyByZXR1cm4gcmVzcG9uc2UudGV4dCgpOyB9KQogICAgICAgLnRo
ZW4oZnVuY3Rpb24ocmVzcG9uc2VfdGV4dCkgewotICAgICAgICAgIGRvX3Rlc3QocmVmZXJyZXIs
CisgICAgICAgICAgYXNzZXJ0X2VxdWFscygKICAgICAgICAgICAgIHJlc3BvbnNlX3RleHQsCiAg
ICAgICAgICAgICAnUmVmZXJyZXI6IFxuJyArCiAgICAgICAgICAgICAnUmVmZXJyZXJQb2xpY3k6
IG5vLXJlZmVycmVyLXdoZW4tZG93bmdyYWRlJywKQEAgLTQxLDcgKzM0LDcgQEAgZnVuY3Rpb24g
cnVuX3JlZmVycmVyX3BvbGljeV90ZXN0cyhmcmFtZSwgcmVmZXJyZXIsIGhyZWYsIG9yaWdpbikg
ewogICAgICAgICB9KQogICAgICAgLnRoZW4oZnVuY3Rpb24ocmVzcG9uc2UpIHsgcmV0dXJuIHJl
c3BvbnNlLnRleHQoKTsgfSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlX3RleHQpIHsK
LSAgICAgICAgICBkb190ZXN0KHJlZmVycmVyLAorICAgICAgICAgIGFzc2VydF9lcXVhbHMoCiAg
ICAgICAgICAgICByZXNwb25zZV90ZXh0LAogICAgICAgICAgICAgJ1JlZmVycmVyOiAnICsgaHJl
ZiArICdcbicgKwogICAgICAgICAgICAgJ1JlZmVycmVyUG9saWN5OiBuby1yZWZlcnJlci13aGVu
LWRvd25ncmFkZScsCkBAIC01Myw3ICs0Niw3IEBAIGZ1bmN0aW9uIHJ1bl9yZWZlcnJlcl9wb2xp
Y3lfdGVzdHMoZnJhbWUsIHJlZmVycmVyLCBocmVmLCBvcmlnaW4pIHsKICAgICAgICAgfSkKICAg
ICAgIC50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlKSB7IHJldHVybiByZXNwb25zZS50ZXh0KCk7IH0p
CiAgICAgICAudGhlbihmdW5jdGlvbihyZXNwb25zZV90ZXh0KSB7Ci0gICAgICAgICAgZG9fdGVz
dChyZWZlcnJlciwKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKAogICAgICAgICAgICAgcmVzcG9u
c2VfdGV4dCwKICAgICAgICAgICAgICdSZWZlcnJlcjogXG4nICsKICAgICAgICAgICAgICdSZWZl
cnJlclBvbGljeTogbm8tcmVmZXJyZXItd2hlbi1kb3duZ3JhZGUnLApAQCAtNjMsNyArNTYsNyBA
QCBmdW5jdGlvbiBydW5fcmVmZXJyZXJfcG9saWN5X3Rlc3RzKGZyYW1lLCByZWZlcnJlciwgaHJl
Ziwgb3JpZ2luKSB7CiAgICAgICAgIH0pCiAgICAgICAudGhlbihmdW5jdGlvbihyZXNwb25zZSkg
eyByZXR1cm4gcmVzcG9uc2UudGV4dCgpOyB9KQogICAgICAgLnRoZW4oZnVuY3Rpb24ocmVzcG9u
c2VfdGV4dCkgewotICAgICAgICAgIGRvX3Rlc3QocmVmZXJyZXIsCisgICAgICAgICAgYXNzZXJ0
X2VxdWFscygKICAgICAgICAgICAgIHJlc3BvbnNlX3RleHQsCiAgICAgICAgICAgICAnUmVmZXJy
ZXI6ICcgKyBvcmlnaW4gKyAnLycgKyAnXG4nICsKICAgICAgICAgICAgICdSZWZlcnJlclBvbGlj
eTogb3JpZ2luJywKQEAgLTc1LDcgKzY4LDcgQEAgZnVuY3Rpb24gcnVuX3JlZmVycmVyX3BvbGlj
eV90ZXN0cyhmcmFtZSwgcmVmZXJyZXIsIGhyZWYsIG9yaWdpbikgewogICAgICAgICB9KQogICAg
ICAgLnRoZW4oZnVuY3Rpb24ocmVzcG9uc2UpIHsgcmV0dXJuIHJlc3BvbnNlLnRleHQoKTsgfSkK
ICAgICAgIC50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlX3RleHQpIHsKLSAgICAgICAgICBkb190ZXN0
KHJlZmVycmVyLAorICAgICAgICAgIGFzc2VydF9lcXVhbHMoCiAgICAgICAgICAgICByZXNwb25z
ZV90ZXh0LAogICAgICAgICAgICAgJ1JlZmVycmVyOiAnICsgb3JpZ2luICsgJy8nICsgJ1xuJyAr
CiAgICAgICAgICAgICAnUmVmZXJyZXJQb2xpY3k6IG9yaWdpbicsCkBAIC04NSw3ICs3OCw3IEBA
IGZ1bmN0aW9uIHJ1bl9yZWZlcnJlcl9wb2xpY3lfdGVzdHMoZnJhbWUsIHJlZmVycmVyLCBocmVm
LCBvcmlnaW4pIHsKICAgICAgICAgfSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlKSB7
IHJldHVybiByZXNwb25zZS50ZXh0KCk7IH0pCiAgICAgICAudGhlbihmdW5jdGlvbihyZXNwb25z
ZV90ZXh0KSB7Ci0gICAgICAgICAgZG9fdGVzdChyZWZlcnJlciwKKyAgICAgICAgICBhc3NlcnRf
ZXF1YWxzKAogICAgICAgICAgICAgcmVzcG9uc2VfdGV4dCwKICAgICAgICAgICAgICdSZWZlcnJl
cjogJyArIGhyZWYgKyAnXG4nICsKICAgICAgICAgICAgICdSZWZlcnJlclBvbGljeTogb3JpZ2lu
LXdoZW4tY3Jvc3Mtb3JpZ2luJywKQEAgLTk3LDcgKzkwLDcgQEAgZnVuY3Rpb24gcnVuX3JlZmVy
cmVyX3BvbGljeV90ZXN0cyhmcmFtZSwgcmVmZXJyZXIsIGhyZWYsIG9yaWdpbikgewogICAgICAg
ICB9KQogICAgICAgLnRoZW4oZnVuY3Rpb24ocmVzcG9uc2UpIHsgcmV0dXJuIHJlc3BvbnNlLnRl
eHQoKTsgfSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlX3RleHQpIHsKLSAgICAgICAg
ICBkb190ZXN0KHJlZmVycmVyLAorICAgICAgICAgIGFzc2VydF9lcXVhbHMoCiAgICAgICAgICAg
ICByZXNwb25zZV90ZXh0LAogICAgICAgICAgICAgJ1JlZmVycmVyOiAnICsgb3JpZ2luICsgJy8n
ICsgJ1xuJyArCiAgICAgICAgICAgICAnUmVmZXJyZXJQb2xpY3k6IG9yaWdpbi13aGVuLWNyb3Nz
LW9yaWdpbicsCkBAIC0xMDcsNyArMTAwLDcgQEAgZnVuY3Rpb24gcnVuX3JlZmVycmVyX3BvbGlj
eV90ZXN0cyhmcmFtZSwgcmVmZXJyZXIsIGhyZWYsIG9yaWdpbikgewogICAgICAgICB9KQogICAg
ICAgLnRoZW4oZnVuY3Rpb24ocmVzcG9uc2UpIHsgcmV0dXJuIHJlc3BvbnNlLnRleHQoKTsgfSkK
ICAgICAgIC50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlX3RleHQpIHsKLSAgICAgICAgICBkb190ZXN0
KHJlZmVycmVyLAorICAgICAgICAgIGFzc2VydF9lcXVhbHMoCiAgICAgICAgICAgICByZXNwb25z
ZV90ZXh0LAogICAgICAgICAgICAgJ1JlZmVycmVyOiAnICsgaHJlZiArICdcbicgKwogICAgICAg
ICAgICAgJ1JlZmVycmVyUG9saWN5OiBuby1yZWZlcnJlci13aGVuLWRvd25ncmFkZScsCkBAIC0x
MTksNyArMTEyLDcgQEAgZnVuY3Rpb24gcnVuX3JlZmVycmVyX3BvbGljeV90ZXN0cyhmcmFtZSwg
cmVmZXJyZXIsIGhyZWYsIG9yaWdpbikgewogICAgICAgICB9KQogICAgICAgLnRoZW4oZnVuY3Rp
b24ocmVzcG9uc2UpIHsgcmV0dXJuIHJlc3BvbnNlLnRleHQoKTsgfSkKICAgICAgIC50aGVuKGZ1
bmN0aW9uKHJlc3BvbnNlX3RleHQpIHsKLSAgICAgICAgICBkb190ZXN0KHJlZmVycmVyLAorICAg
ICAgICAgIGFzc2VydF9lcXVhbHMoCiAgICAgICAgICAgICByZXNwb25zZV90ZXh0LAogICAgICAg
ICAgICAgJ1JlZmVycmVyOiBcbicgKwogICAgICAgICAgICAgJ1JlZmVycmVyUG9saWN5OiBuby1y
ZWZlcnJlci13aGVuLWRvd25ncmFkZScsCkBAIC0xMzAsNyArMTIzLDcgQEAgZnVuY3Rpb24gcnVu
X3JlZmVycmVyX3BvbGljeV90ZXN0cyhmcmFtZSwgcmVmZXJyZXIsIGhyZWYsIG9yaWdpbikgewog
ICAgICAgICB9KQogICAgICAgLnRoZW4oZnVuY3Rpb24ocmVzcG9uc2UpIHsgcmV0dXJuIHJlc3Bv
bnNlLnRleHQoKTsgfSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlX3RleHQpIHsKLSAg
ICAgICAgICBkb190ZXN0KHJlZmVycmVyLAorICAgICAgICAgIGFzc2VydF9lcXVhbHMoCiAgICAg
ICAgICAgICByZXNwb25zZV90ZXh0LAogICAgICAgICAgICAgJ1JlZmVycmVyOiAnICsgaHJlZiAr
ICdcbicgKwogICAgICAgICAgICAgJ1JlZmVycmVyUG9saWN5OiB1bnNhZmUtdXJsJywKQEAgLTE0
MCw3ICsxMzMsNyBAQCBmdW5jdGlvbiBydW5fcmVmZXJyZXJfcG9saWN5X3Rlc3RzKGZyYW1lLCBy
ZWZlcnJlciwgaHJlZiwgb3JpZ2luKSB7CiAgICAgICAgIH0pCiAgICAgICAudGhlbihmdW5jdGlv
bihyZXNwb25zZSkgeyByZXR1cm4gcmVzcG9uc2UudGV4dCgpOyB9KQogICAgICAgLnRoZW4oZnVu
Y3Rpb24ocmVzcG9uc2VfdGV4dCkgewotICAgICAgICAgIGRvX3Rlc3QocmVmZXJyZXIsCisgICAg
ICAgICAgYXNzZXJ0X2VxdWFscygKICAgICAgICAgICAgIHJlc3BvbnNlX3RleHQsCiAgICAgICAg
ICAgICAnUmVmZXJyZXI6IFxuJyArCiAgICAgICAgICAgICAnUmVmZXJyZXJQb2xpY3k6IG5vLXJl
ZmVycmVyJywKQEAgLTE1MCw3ICsxNDMsNyBAQCBmdW5jdGlvbiBydW5fcmVmZXJyZXJfcG9saWN5
X3Rlc3RzKGZyYW1lLCByZWZlcnJlciwgaHJlZiwgb3JpZ2luKSB7CiAgICAgICAgIH0pCiAgICAg
ICAudGhlbihmdW5jdGlvbihyZXNwb25zZSkgeyByZXR1cm4gcmVzcG9uc2UudGV4dCgpOyB9KQog
ICAgICAgLnRoZW4oZnVuY3Rpb24ocmVzcG9uc2VfdGV4dCkgewotICAgICAgICAgIGRvX3Rlc3Qo
cmVmZXJyZXIsCisgICAgICAgICAgYXNzZXJ0X2VxdWFscygKICAgICAgICAgICAgIHJlc3BvbnNl
X3RleHQsCiAgICAgICAgICAgICAnUmVmZXJyZXI6ICcgKyBocmVmICsgJ1xuJyArCiAgICAgICAg
ICAgICAnUmVmZXJyZXJQb2xpY3k6IHNhbWUtb3JpZ2luJywKQEAgLTE2Miw3ICsxNTUsNyBAQCBm
dW5jdGlvbiBydW5fcmVmZXJyZXJfcG9saWN5X3Rlc3RzKGZyYW1lLCByZWZlcnJlciwgaHJlZiwg
b3JpZ2luKSB7CiAgICAgICAgIH0pCiAgICAgICAudGhlbihmdW5jdGlvbihyZXNwb25zZSkgeyBy
ZXR1cm4gcmVzcG9uc2UudGV4dCgpOyB9KQogICAgICAgLnRoZW4oZnVuY3Rpb24ocmVzcG9uc2Vf
dGV4dCkgewotICAgICAgICAgIGRvX3Rlc3QocmVmZXJyZXIsCisgICAgICAgICAgYXNzZXJ0X2Vx
dWFscygKICAgICAgICAgICAgIHJlc3BvbnNlX3RleHQsCiAgICAgICAgICAgICAnUmVmZXJyZXI6
IFxuJyArCiAgICAgICAgICAgICAnUmVmZXJyZXJQb2xpY3k6IHNhbWUtb3JpZ2luJywKQEAgLTE3
NCw3ICsxNjcsNyBAQCBmdW5jdGlvbiBydW5fcmVmZXJyZXJfcG9saWN5X3Rlc3RzKGZyYW1lLCBy
ZWZlcnJlciwgaHJlZiwgb3JpZ2luKSB7CiAgICAgICAgIH0pCiAgICAgICAudGhlbihmdW5jdGlv
bihyZXNwb25zZSkgeyByZXR1cm4gcmVzcG9uc2UudGV4dCgpOyB9KQogICAgICAgLnRoZW4oZnVu
Y3Rpb24ocmVzcG9uc2VfdGV4dCkgewotICAgICAgICAgIGRvX3Rlc3QocmVmZXJyZXIsCisgICAg
ICAgICAgYXNzZXJ0X2VxdWFscygKICAgICAgICAgICAgIHJlc3BvbnNlX3RleHQsCiAgICAgICAg
ICAgICAnUmVmZXJyZXI6ICcgKyBvcmlnaW4gKyAnLycgKyAnXG4nICsKICAgICAgICAgICAgICdS
ZWZlcnJlclBvbGljeTogc3RyaWN0LW9yaWdpbicsCkBAIC0xODQsNyArMTc3LDcgQEAgZnVuY3Rp
b24gcnVuX3JlZmVycmVyX3BvbGljeV90ZXN0cyhmcmFtZSwgcmVmZXJyZXIsIGhyZWYsIG9yaWdp
bikgewogICAgICAgICB9KQogICAgICAgLnRoZW4oZnVuY3Rpb24ocmVzcG9uc2UpIHsgcmV0dXJu
IHJlc3BvbnNlLnRleHQoKTsgfSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlX3RleHQp
IHsKLSAgICAgICAgICBkb190ZXN0KHJlZmVycmVyLAorICAgICAgICAgIGFzc2VydF9lcXVhbHMo
CiAgICAgICAgICAgICByZXNwb25zZV90ZXh0LAogICAgICAgICAgICAgJ1JlZmVycmVyOiAnICsg
b3JpZ2luICsgJy8nICsgJ1xuJyArCiAgICAgICAgICAgICAnUmVmZXJyZXJQb2xpY3k6IHN0cmlj
dC1vcmlnaW4nLApAQCAtMTk2LDcgKzE4OSw3IEBAIGZ1bmN0aW9uIHJ1bl9yZWZlcnJlcl9wb2xp
Y3lfdGVzdHMoZnJhbWUsIHJlZmVycmVyLCBocmVmLCBvcmlnaW4pIHsKICAgICAgICAgfSkKICAg
ICAgIC50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlKSB7IHJldHVybiByZXNwb25zZS50ZXh0KCk7IH0p
CiAgICAgICAudGhlbihmdW5jdGlvbihyZXNwb25zZV90ZXh0KSB7Ci0gICAgICAgICAgZG9fdGVz
dChyZWZlcnJlciwKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKAogICAgICAgICAgICAgcmVzcG9u
c2VfdGV4dCwKICAgICAgICAgICAgICdSZWZlcnJlcjogXG4nICsKICAgICAgICAgICAgICdSZWZl
cnJlclBvbGljeTogc3RyaWN0LW9yaWdpbicsCkBAIC0yMDYsNyArMTk5LDcgQEAgZnVuY3Rpb24g
cnVuX3JlZmVycmVyX3BvbGljeV90ZXN0cyhmcmFtZSwgcmVmZXJyZXIsIGhyZWYsIG9yaWdpbikg
ewogICAgICAgICB9KQogICAgICAgLnRoZW4oZnVuY3Rpb24ocmVzcG9uc2UpIHsgcmV0dXJuIHJl
c3BvbnNlLnRleHQoKTsgfSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlX3RleHQpIHsK
LSAgICAgICAgICBkb190ZXN0KHJlZmVycmVyLAorICAgICAgICAgIGFzc2VydF9lcXVhbHMoCiAg
ICAgICAgICAgICByZXNwb25zZV90ZXh0LAogICAgICAgICAgICAgJ1JlZmVycmVyOiAnICsgaHJl
ZiArICdcbicgKwogICAgICAgICAgICAgJ1JlZmVycmVyUG9saWN5OiBzdHJpY3Qtb3JpZ2luLXdo
ZW4tY3Jvc3Mtb3JpZ2luJywKQEAgLTIxOCw3ICsyMTEsNyBAQCBmdW5jdGlvbiBydW5fcmVmZXJy
ZXJfcG9saWN5X3Rlc3RzKGZyYW1lLCByZWZlcnJlciwgaHJlZiwgb3JpZ2luKSB7CiAgICAgICAg
IH0pCiAgICAgICAudGhlbihmdW5jdGlvbihyZXNwb25zZSkgeyByZXR1cm4gcmVzcG9uc2UudGV4
dCgpOyB9KQogICAgICAgLnRoZW4oZnVuY3Rpb24ocmVzcG9uc2VfdGV4dCkgewotICAgICAgICAg
IGRvX3Rlc3QocmVmZXJyZXIsCisgICAgICAgICAgYXNzZXJ0X2VxdWFscygKICAgICAgICAgICAg
IHJlc3BvbnNlX3RleHQsCiAgICAgICAgICAgICAnUmVmZXJyZXI6ICcgKyBvcmlnaW4gKyAnLycg
KyAnXG4nICsKICAgICAgICAgICAgICdSZWZlcnJlclBvbGljeTogc3RyaWN0LW9yaWdpbi13aGVu
LWNyb3NzLW9yaWdpbicsCkBAIC0yMzAsNyArMjIzLDcgQEAgZnVuY3Rpb24gcnVuX3JlZmVycmVy
X3BvbGljeV90ZXN0cyhmcmFtZSwgcmVmZXJyZXIsIGhyZWYsIG9yaWdpbikgewogICAgICAgICB9
KQogICAgICAgLnRoZW4oZnVuY3Rpb24ocmVzcG9uc2UpIHsgcmV0dXJuIHJlc3BvbnNlLnRleHQo
KTsgfSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlX3RleHQpIHsKLSAgICAgICAgICBk
b190ZXN0KHJlZmVycmVyLAorICAgICAgICAgIGFzc2VydF9lcXVhbHMoCiAgICAgICAgICAgICBy
ZXNwb25zZV90ZXh0LAogICAgICAgICAgICAgJ1JlZmVycmVyOiBcbicgKwogICAgICAgICAgICAg
J1JlZmVycmVyUG9saWN5OiBzdHJpY3Qtb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luJywKQEAgLTIz
OCwzNiArMjMxLDM1IEBAIGZ1bmN0aW9uIHJ1bl9yZWZlcnJlcl9wb2xpY3lfdGVzdHMoZnJhbWUs
IHJlZmVycmVyLCBocmVmLCBvcmlnaW4pIHsKICAgICAgICAgfSk7CiB9CiAKLXByb21pc2VfdGVz
dChmdW5jdGlvbih0KSB7Cithc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICB2YXIgc2NvcGUg
PSAncmVzb3VyY2VzL3NpbXBsZS5odG1sP3JlZmVycmVyUG9saWN5JzsKICAgICB2YXIgZnJhbWU7
Ci0gICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHdv
cmtlciwgc2NvcGUpCisgICAgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIo
dCwgd29ya2VyLCBzY29wZSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKHJlZykgewotICAgICAgICAg
IHQuYWRkX2NsZWFudXAoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgIHJldHVybiBzZXJ2aWNl
X3dvcmtlcl91bnJlZ2lzdGVyKHQsIHNjb3BlKTsKLSAgICAgICAgICAgIH0pOwotCiAgICAgICAg
ICAgcmV0dXJuIHdhaXRfZm9yX3N0YXRlKHQsIHJlZy5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7
CiAgICAgICAgIH0pCiAgICAgICAudGhlbihmdW5jdGlvbigpIHsgcmV0dXJuIHdpdGhfaWZyYW1l
KHNjb3BlKTsgfSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKGYpIHsKICAgICAgICAgICBmcmFtZSA9
IGY7Ci0gICAgICAgICAgdGVzdCgoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGZy
YW1lLmNvbnRlbnREb2N1bWVudC5ib2R5LnRleHRDb250ZW50LCAnUmVmZXJyZXJQb2xpY3k6IG5v
LXJlZmVycmVyLXdoZW4tZG93bmdyYWRlJyk7Ci0gICAgICAgICAgfSwgJ1NlcnZpY2UgV29ya2Vy
IHNob3VsZCByZXNwb25kIHRvIGZldGNoIHdpdGggdGhlIGRlZmF1bHQgcmVmZXJyZXIgcG9saWN5
Jyk7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscygKKyAgICAgICAgICAgIGZyYW1lLmNvbnRlbnRE
b2N1bWVudC5ib2R5LnRleHRDb250ZW50LAorICAgICAgICAgICAgJ1JlZmVycmVyUG9saWN5OiBu
by1yZWZlcnJlci13aGVuLWRvd25ncmFkZScsCisgICAgICAgICAgICAnU2VydmljZSBXb3JrZXIg
c2hvdWxkIHJlc3BvbmQgdG8gZmV0Y2ggd2l0aCB0aGUgZGVmYXVsdCByZWZlcnJlciBwb2xpY3kn
KTsKICAgICAgICAgICAvLyBGaXJzdCwgcnVuIHRoZSByZWZlcnJlciBwb2xpY3kgdGVzdHMgd2l0
aG91dCBwYXNzaW5nIGEgcmVmZXJyZXIgaW4gUmVxdWVzdEluaXQuCiAgICAgICAgICAgcmV0dXJu
IHJ1bl9yZWZlcnJlcl9wb2xpY3lfdGVzdHMoZnJhbWUsIHVuZGVmaW5lZCwgZnJhbWUuY29udGVu
dERvY3VtZW50LmxvY2F0aW9uLmhyZWYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZnJhbWUuY29udGVudERvY3VtZW50LmxvY2F0aW9uLm9yaWdpbik7CiAgICAg
ICAgIH0pCiAgICAgICAudGhlbihmdW5jdGlvbigpIHsKICAgICAgICAgICAvLyBOb3csIHJ1biB0
aGUgcmVmZXJyZXIgcG9saWN5IHRlc3RzIHdoaWxlIHBhc3NpbmcgYSByZWZlcnJlciBpbiBSZXF1
ZXN0SW5pdC4KLSAgICAgICAgICB2YXIgcmVmZXJyZXIgPSBnZXRfaG9zdF9pbmZvKClbJ0hUVFBT
X09SSUdJTiddICsgYmFzZV9wYXRoKCkgKyAncmVzb3VyY2VzL2Zha2UtcmVmZXJyZXInOworICAg
ICAgICAgIHZhciByZWZlcnJlciA9IGdldF9ob3N0X2luZm8oKVsnSFRUUFNfT1JJR0lOJ10gKyBi
YXNlX3BhdGgoKSArICdmYWtlLXJlZmVycmVyJzsKICAgICAgICAgICByZXR1cm4gcnVuX3JlZmVy
cmVyX3BvbGljeV90ZXN0cyhmcmFtZSwgJ2Zha2UtcmVmZXJyZXInLCByZWZlcnJlciwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcmFtZS5jb250ZW50RG9jdW1l
bnQubG9jYXRpb24ub3JpZ2luKTsKICAgICAgICAgfSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKCkg
ewogICAgICAgICAgIGZyYW1lLnJlbW92ZSgpOwotICAgICAgICB9KTsKKyAgICAgICAgICByZXR1
cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfZG9uZSh0LCBzY29wZSk7CisgICAgICAg
IH0pCisgICAgICAuY2F0Y2godW5yZWFjaGVkX3JlamVjdGlvbih0KSk7CiAgIH0sICdTZXJ2aWNl
IFdvcmtlciByZXNwb25kcyB0byBmZXRjaCBldmVudCB3aXRoIHRoZSByZWZlcnJlciBwb2xpY3kn
KTsKIAogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1ldmVu
dC1yZXNwb25kLXdpdGgtYXJndW1lbnQuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2Zl
dGNoLWV2ZW50LXJlc3BvbmQtd2l0aC1hcmd1bWVudC5odHRwcy5odG1sCmluZGV4IDA1ZTIyMTA1
MjQzZjcxMDI3M2Y1NmUyMTUwMjY1OWFkMTc4MWUyOGMuLmM3OGZiNzg0YTJmN2U0MTM1YzJiNDQy
OTA4MmRjMTU3ZDkzMDBmZmIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWV2
ZW50LXJlc3BvbmQtd2l0aC1hcmd1bWVudC5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL2ZldGNoLWV2ZW50LXJlc3BvbmQtd2l0aC1hcmd1bWVudC5odHRwcy5odG1sCkBAIC0yMiwx
MCArMjIsNiBAQCBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewogCiAgICAgcmV0dXJuIHNlcnZp
Y2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHNjcmlwdCwgc2NvcGUpCiAgICAg
ICAudGhlbihmdW5jdGlvbihyZWdpc3RyYXRpb24pIHsKLSAgICAgICAgICB0LmFkZF9jbGVhbnVw
KGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdp
c3Rlcih0LCBzY29wZSk7Ci0gICAgICAgICAgICB9KTsKLQogICAgICAgICAgIHJldHVybiB3YWl0
X2Zvcl9zdGF0ZSh0LCByZWdpc3RyYXRpb24uaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOwogICAg
ICAgICB9KQogICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7CkBAIC0zOCw2ICszNCw3IEBAIHByb21p
c2VfdGVzdChmdW5jdGlvbih0KSB7CiAgICAgICAudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKICAg
ICAgICAgICBmcmFtZS5yZW1vdmUoKTsKICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHJlc3VsdCwg
J1BBU1MnKTsKKyAgICAgICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRf
ZG9uZSh0LCBzY29wZSk7CiAgICAgICAgIH0pOwogICB9LCAncmVzcG9uZFdpdGgoKSB0YWtlcyBl
aXRoZXIgYSBSZXNwb25zZSBvciBhIHByb21pc2UgdGhhdCByZXNvbHZlcyAnICsKICAgICAgJ3dp
dGggYSBSZXNwb25zZS4gT3RoZXIgdmFsdWVzIHNob3VsZCByYWlzZSBhIG5ldHdvcmsgZXJyb3Iu
Jyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1ldmVudC1yZXNwb25kLXdp
dGgtYm9keS1sb2FkZWQtaW4tY2h1bmsuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2Zl
dGNoLWV2ZW50LXJlc3BvbmQtd2l0aC1ib2R5LWxvYWRlZC1pbi1jaHVuay5odHRwcy5odG1sCmlu
ZGV4IDkzMmY5MDMwYzUxY2U2ZTA5ZDRkYmEwOGYwZGFiMTlkZWM2ZThiMTUuLjgyNGI2ZjMyMTdi
ZTQ3ZmNiZDU1NjI2NGZlZjBjMzdlMmY1YmM1NzAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL2ZldGNoLWV2ZW50LXJlc3BvbmQtd2l0aC1ib2R5LWxvYWRlZC1pbi1jaHVuay5odHRwcy5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWV2ZW50LXJlc3BvbmQtd2l0aC1ib2R5
LWxvYWRlZC1pbi1jaHVuay5odHRwcy5odG1sCkBAIC0xLDcgKzEsNiBAQAogPCFET0NUWVBFIGh0
bWw+CiA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CiA8dGl0bGU+cmVzcG9uZFdpdGggd2l0aCBhIHJl
c3BvbnNlIHdob3NlIGJvZHkgaXMgYmVpbmcgbG9hZGVkIGZyb20gdGhlIG5ldHdvcmsgYnkgY2h1
bmtzPC90aXRsZT4KLTxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciPgogPHNjcmlw
dCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9
Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9
InJlc291cmNlcy90ZXN0LWhlbHBlcnMuc3ViLmpzIj48L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL2ZldGNoLWV2ZW50LXJlc3BvbmQtd2l0aC1zdG9wcy1wcm9wYWdhdGlv
bi5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtZXZlbnQtcmVzcG9uZC13aXRo
LXN0b3BzLXByb3BhZ2F0aW9uLmh0dHBzLmh0bWwKaW5kZXggMzFmZDYxNmI2ZDZmNTA5YjdkY2I2
YjU2ZjQ1ZTljMmUxMmU5YjhlNi4uY2Q2ODYxYTlkNDUzNjFhOWNiYWFiM2VhNjM5MjU3YTE0YWNj
YjM0OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtZXZlbnQtcmVzcG9uZC13
aXRoLXN0b3BzLXByb3BhZ2F0aW9uLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
ZmV0Y2gtZXZlbnQtcmVzcG9uZC13aXRoLXN0b3BzLXByb3BhZ2F0aW9uLmh0dHBzLmh0bWwKQEAg
LTEwLDEwICsxMCw2IEBAIHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7CiAKICAgICByZXR1cm4g
c2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgc2NyaXB0LCBzY29wZSkK
ICAgICAgIC50aGVuKGZ1bmN0aW9uKHJlZ2lzdHJhdGlvbikgewotICAgICAgICAgIHQuYWRkX2Ns
ZWFudXAoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91
bnJlZ2lzdGVyKHQsIHNjb3BlKTsKLSAgICAgICAgICAgIH0pOwotCiAgICAgICAgICAgcmV0dXJu
IHdhaXRfZm9yX3N0YXRlKHQsIHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7
CiAgICAgICAgIH0pCiAgICAgICAudGhlbihmdW5jdGlvbigpIHsKQEAgLTMyLDYgKzI4LDcgQEAg
cHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICAgICAgfSkKICAgICAgIC50aGVuKGZ1bmN0
aW9uKG1lc3NhZ2UpIHsKICAgICAgICAgICBhc3NlcnRfZXF1YWxzKG1lc3NhZ2UsICdQQVNTJyk7
CisgICAgICAgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX2RvbmUodCwg
c2NvcGUpOwogICAgICAgICB9KQogICB9LCAncmVzcG9uZFdpdGgoKSBpbnZva2VzIHN0b3BJbW1l
ZGlhdGVQcm9wYWdhdGlvbigpJyk7CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL2ZldGNoLWV2ZW50LXRocm93cy1hZnRlci1yZXNwb25kLXdpdGguaHR0cHMuaHRtbCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWV2ZW50LXRocm93cy1hZnRlci1yZXNwb25kLXdpdGgu
aHR0cHMuaHRtbAppbmRleCBkOThmYjIyZmY0MjMyNzFkZDg0NDYwMjAwZWJkYjYwNTczZWQ2Mzcx
Li45NjlhM2M5ZDA4ZmI2NmJmMDFjMWZhMmI1MTRiNDY0NmUyNjEzYjMwIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1ldmVudC10aHJvd3MtYWZ0ZXItcmVzcG9uZC13aXRoLmh0
dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtZXZlbnQtdGhyb3dzLWFmdGVy
LXJlc3BvbmQtd2l0aC5odHRwcy5odG1sCkBAIC0xMiwxMCArMTIsNiBAQCBwcm9taXNlX3Rlc3Qo
ZnVuY3Rpb24odCkgewogICAgIHZhciBpZnJhbWU7CiAgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2Vy
X3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHdvcmtlcnNjcmlwdCwgc2NvcGUpCiAgICAgICAu
dGhlbihmdW5jdGlvbihyZWcpIHsKLSAgICAgICAgICB0LmFkZF9jbGVhbnVwKGZ1bmN0aW9uKCkg
ewotICAgICAgICAgICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcih0LCBzY29w
ZSk7Ci0gICAgICAgICAgICB9KTsKLQogICAgICAgICAgIHJldHVybiB3YWl0X2Zvcl9zdGF0ZSh0
LCByZWcuaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpCiAgICAgICAgICAgICAudGhlbigoKSA9PiBy
ZWcuYWN0aXZlKTsKICAgICAgICAgfSkKQEAgLTMxLDYgKzI3LDcgQEAgcHJvbWlzZV90ZXN0KGZ1
bmN0aW9uKHQpIHsKICAgICAgICAgfSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKGZyYW1lKSB7CiAg
ICAgICAgIGFzc2VydF90cnVlKGZyYW1lLmNvbnRlbnREb2N1bWVudC5ib2R5LmlubmVySFRNTC5p
bmNsdWRlcygiaW50ZXJjZXB0ZWQiKSk7CisgICAgICAgIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0
ZXJfYW5kX2RvbmUodCwgc2NvcGUpOwogICAgICAgfSkKICAgfSwgJ0ZldGNoIGV2ZW50IGhhbmRs
ZXIgdGhyb3dzIGFmdGVyIGEgc3VjY2Vzc2Z1bCByZXNwb25kV2l0aCgpJyk7CiAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWV2ZW50Lmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL2ZldGNoLWV2ZW50Lmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCAwODc5
OTBiZjhkNGU4OWQ1ODVhZWI4MWFkY2Y2YTc2YmFlZDY2MTJkLi44YzBkOWE0MmYxYjdjNjFhYjg1
M2YxNDE5OGQ3NGUzZjA2NTI2MjExIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRj
aC1ldmVudC5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gt
ZXZlbnQuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC02LDcgKzYsNiBAQCBQQVNTIFNlcnZpY2UgV29y
a2VyIHJlc3BvbmRzIHRvIGZldGNoIGV2ZW50IHVzaW5nIHJlcXVlc3QgZnJhZ21lbnQgd2l0aCBz
dHJpbmcKIFBBU1MgU2VydmljZSBXb3JrZXIgcmVzcG9uZHMgdG8gZmV0Y2ggZXZlbnQgd2l0aCBi
bG9iIGJvZHkgCiBQQVNTIFNlcnZpY2UgV29ya2VyIHJlc3BvbmRzIHRvIGZldGNoIGV2ZW50IHdp
dGggdGhlIHJlZmVycmVyIFVSTCAKIFBBU1MgU2VydmljZSBXb3JrZXIgcmVzcG9uZHMgdG8gZmV0
Y2ggZXZlbnQgd2l0aCBhbiBleGlzdGluZyBjbGllbnQgaWQgCi1GQUlMIFNlcnZpY2UgV29ya2Vy
IHJlc3BvbmRzIHRvIGZldGNoIGV2ZW50IHdpdGggdGhlIGNvcnJlY3QgcmVzdWx0aW5nIGNsaWVu
dCBpZCBhc3NlcnRfZXF1YWxzOiBTZXJ2aWNlIFdvcmtlciBzaG91bGQgcmVzcG9uZCB3aXRoIGFu
IGVtcHR5IHJlc3VsdGluZyBjbGllbnQgaWQgZm9yIHN1YnJlc291cmNlIHJlcXVlc3RzIGV4cGVj
dGVkICJSZXN1bHRpbmcgQ2xpZW50IElEIE5vdCBGb3VuZCIgYnV0IGdvdCAiUmVzdWx0aW5nIENs
aWVudCBJRCBGb3VuZDogdW5kZWZpbmVkIgogUEFTUyBTZXJ2aWNlIFdvcmtlciBkb2VzIG5vdCBy
ZXNwb25kIHRvIGZldGNoIGV2ZW50IAogUEFTUyBTZXJ2aWNlIFdvcmtlciByZXNwb25kcyB0byBm
ZXRjaCBldmVudCB3aXRoIG51bGwgcmVzcG9uc2UgYm9keSAKIFBBU1MgU2VydmljZSBXb3JrZXIg
ZmV0Y2hlcyBvdGhlciBmaWxlIGluIGZldGNoIGV2ZW50IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvZmV0Y2gtZXZlbnQuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNo
LWV2ZW50Lmh0dHBzLmh0bWwKaW5kZXggMTY5YTBiMTdkNjIzMDMzNWZiMGM4Mzk4ODAzOTg3NWM4
MTVkOTllMS4uNzhlMDk5YjhiNTUzZWExNTBmMTcwYWNmYTk5ZDkxOTFjMzllMzMyNiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtZXZlbnQuaHR0cHMuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9mZXRjaC1ldmVudC5odHRwcy5odG1sCkBAIC0xMTYsNiArMTE2LDcgQEAg
cHJvbWlzZV90ZXN0KHQgPT4gewogICAgICAgICB9KQogICAgICAgLnRoZW4oZnVuY3Rpb24ocmVz
cG9uc2UpIHsgcmV0dXJuIHJlc3BvbnNlLnRleHQoKTsgfSkKICAgICAgIC50aGVuKGZ1bmN0aW9u
KHJlc3BvbnNlX3RleHQpIHsKKyAgICAgICAgICB2YXIgbmV3X2NsaWVudF9pZCA9IHJlc3BvbnNl
X3RleHQuc3Vic3RyKDE3KTsKICAgICAgICAgICBhc3NlcnRfZXF1YWxzKAogICAgICAgICAgICAg
cmVzcG9uc2VfdGV4dC5zdWJzdHIoMCwgMTUpLAogICAgICAgICAgICAgJ0NsaWVudCBJRCBGb3Vu
ZCcsCkBAIC0xMjMsMjggKzEyNCw2IEBAIHByb21pc2VfdGVzdCh0ID0+IHsKICAgICAgICAgfSk7
CiAgIH0sICdTZXJ2aWNlIFdvcmtlciByZXNwb25kcyB0byBmZXRjaCBldmVudCB3aXRoIGFuIGV4
aXN0aW5nIGNsaWVudCBpZCcpOwogCi1wcm9taXNlX3Rlc3QodCA9PiB7Ci0gICAgY29uc3QgcGFn
ZV91cmwgPSAncmVzb3VyY2VzL3NpbXBsZS5odG1sP3Jlc3VsdGluZ0NsaWVudElkJzsKLSAgICBj
b25zdCBleHBlY3RlZF9mb3VuZCA9ICdSZXN1bHRpbmcgQ2xpZW50IElEIEZvdW5kJzsKLSAgICBj
b25zdCBleHBlY3RlZF9ub3RfZm91bmQgPSAnUmVzdWx0aW5nIENsaWVudCBJRCBOb3QgRm91bmQn
OwotICAgIHJldHVybiB3aXRoX2lmcmFtZShwYWdlX3VybCkKLSAgICAgIC50aGVuKGZ1bmN0aW9u
KGZyYW1lKSB7Ci0gICAgICAgICAgdC5hZGRfY2xlYW51cCgoKSA9PiB7IGZyYW1lLnJlbW92ZSgp
OyB9KTsKLSAgICAgICAgICBhc3NlcnRfZXF1YWxzKAotICAgICAgICAgICAgZnJhbWUuY29udGVu
dERvY3VtZW50LmJvZHkudGV4dENvbnRlbnQuc3Vic3RyKDAsIGV4cGVjdGVkX2ZvdW5kLmxlbmd0
aCksCi0gICAgICAgICAgICBleHBlY3RlZF9mb3VuZCwKLSAgICAgICAgICAgICdTZXJ2aWNlIFdv
cmtlciBzaG91bGQgcmVzcG9uZCB3aXRoIGFuIGV4aXN0aW5nIHJlc3VsdGluZyBjbGllbnQgaWQg
Zm9yIG5vbi1zdWJyZXNvdXJjZSByZXF1ZXN0cycpOwotICAgICAgICAgIHJldHVybiBmcmFtZS5j
b250ZW50V2luZG93LmZldGNoKCdyZXNvdXJjZXMvb3RoZXIuaHRtbD9yZXN1bHRpbmdDbGllbnRJ
ZCcpOwotICAgICAgICB9KQotICAgICAgLnRoZW4oZnVuY3Rpb24ocmVzcG9uc2UpIHsgcmV0dXJu
IHJlc3BvbnNlLnRleHQoKTsgfSkKLSAgICAgIC50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlX3RleHQp
IHsKLSAgICAgICAgICBhc3NlcnRfZXF1YWxzKAotICAgICAgICAgICAgcmVzcG9uc2VfdGV4dC5z
dWJzdHIoMCksCi0gICAgICAgICAgICBleHBlY3RlZF9ub3RfZm91bmQsCi0gICAgICAgICAgICAn
U2VydmljZSBXb3JrZXIgc2hvdWxkIHJlc3BvbmQgd2l0aCBhbiBlbXB0eSByZXN1bHRpbmcgY2xp
ZW50IGlkIGZvciBzdWJyZXNvdXJjZSByZXF1ZXN0cycpOwotICAgICAgICB9KTsKLSAgfSwgJ1Nl
cnZpY2UgV29ya2VyIHJlc3BvbmRzIHRvIGZldGNoIGV2ZW50IHdpdGggdGhlIGNvcnJlY3QgcmVz
dWx0aW5nIGNsaWVudCBpZCcpOwotCiBwcm9taXNlX3Rlc3QodCA9PiB7CiAgICAgY29uc3QgcGFn
ZV91cmwgPSAncmVzb3VyY2VzL3NpbXBsZS5odG1sP2lnbm9yZSc7CiAgICAgcmV0dXJuIHdpdGhf
aWZyYW1lKHBhZ2VfdXJsKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtZnJh
bWUtcmVzb3VyY2UuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWZyYW1lLXJl
c291cmNlLmh0dHBzLmh0bWwKaW5kZXggYTMzMzA5ZjM0Zjk4NzJkYTUzNzkyMWExMWRmYzk2MWFj
MTQyYjBmOC4uMjE2OGUzZTBkNDU4NTFjYzZmMDU5OWE5ZTAzMjNlOWE5NmU1NjRlMiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtZnJhbWUtcmVzb3VyY2UuaHR0cHMuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1mcmFtZS1yZXNvdXJjZS5odHRwcy5odG1sCkBA
IC03MywxNSArNzMsMTEgQEAgZnVuY3Rpb24gZ2V0TG9hZGVkV2luZG93QXNPYmplY3Qod2luKSB7
CiAgICAgfSk7CiB9CiAKLXByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7Cithc3luY190ZXN0KGZ1
bmN0aW9uKHQpIHsKICAgICB2YXIgc2NvcGUgPSAncmVzb3VyY2VzL2ZldGNoLWZyYW1lLXJlc291
cmNlL2ZyYW1lLWJhc2ljJzsKICAgICB2YXIgZnJhbWU7Ci0gICAgcmV0dXJuIHNlcnZpY2Vfd29y
a2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHdvcmtlciwgc2NvcGUpCisgICAgc2Vydmlj
ZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgd29ya2VyLCBzY29wZSkKICAgICAg
IC50aGVuKGZ1bmN0aW9uKHJlZykgewotICAgICAgICAgIHQuYWRkX2NsZWFudXAoZnVuY3Rpb24o
KSB7Ci0gICAgICAgICAgICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyKHQsIHNj
b3BlKTsKLSAgICAgICAgICAgIH0pOwotCiAgICAgICAgICAgcmV0dXJuIHdhaXRfZm9yX3N0YXRl
KHQsIHJlZy5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7CiAgICAgICAgIH0pCiAgICAgICAudGhl
bihmdW5jdGlvbigpIHsKQEAgLTk4LDE4ICs5NCwxNiBAQCBwcm9taXNlX3Rlc3QoZnVuY3Rpb24o
dCkgewogICAgICAgICAgICAgJ3N1Y2Nlc3MnLAogICAgICAgICAgICAgJ0Jhc2ljIHR5cGUgcmVz
cG9uc2UgY291bGQgYmUgbG9hZGVkIGluIHRoZSBpZnJhbWUuJyk7CiAgICAgICAgICAgZnJhbWUu
cmVtb3ZlKCk7Ci0gICAgICAgIH0pOworICAgICAgICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91
bnJlZ2lzdGVyX2FuZF9kb25lKHQsIHNjb3BlKTsKKyAgICAgICAgfSkKKyAgICAgIC5jYXRjaCh1
bnJlYWNoZWRfcmVqZWN0aW9uKHQpKTsKICAgfSwgJ0Jhc2ljIHR5cGUgcmVzcG9uc2UgY291bGQg
YmUgbG9hZGVkIGluIHRoZSBpZnJhbWUuJyk7CiAKLXByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7
Cithc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICB2YXIgc2NvcGUgPSAncmVzb3VyY2VzL2Zl
dGNoLWZyYW1lLXJlc291cmNlL2ZyYW1lLWNvcnMnOwogICAgIHZhciBmcmFtZTsKLSAgICByZXR1
cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgd29ya2VyLCBzY29w
ZSkKKyAgICBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCB3b3JrZXIs
IHNjb3BlKQogICAgICAgLnRoZW4oZnVuY3Rpb24ocmVnKSB7Ci0gICAgICAgICAgdC5hZGRfY2xl
YW51cChmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3Vu
cmVnaXN0ZXIodCwgc2NvcGUpOwotICAgICAgICAgICAgfSk7Ci0KICAgICAgICAgICByZXR1cm4g
d2FpdF9mb3Jfc3RhdGUodCwgcmVnLmluc3RhbGxpbmcsICdhY3RpdmF0ZWQnKTsKICAgICAgICAg
fSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKCkgewpAQCAtMTI4LDE4ICsxMjIsMTYgQEAgcHJvbWlz
ZV90ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICAgICAgICAgICdzdWNjZXNzJywKICAgICAgICAgICAg
ICdDT1JTIHR5cGUgcmVzcG9uc2UgY291bGQgYmUgbG9hZGVkIGluIHRoZSBpZnJhbWUuJyk7CiAg
ICAgICAgICAgZnJhbWUucmVtb3ZlKCk7Ci0gICAgICAgIH0pOworICAgICAgICAgIHJldHVybiBz
ZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9kb25lKHQsIHNjb3BlKTsKKyAgICAgICAgfSkK
KyAgICAgIC5jYXRjaCh1bnJlYWNoZWRfcmVqZWN0aW9uKHQpKTsKICAgfSwgJ0NPUlMgdHlwZSBy
ZXNwb25zZSBjb3VsZCBiZSBsb2FkZWQgaW4gdGhlIGlmcmFtZS4nKTsKIAotcHJvbWlzZV90ZXN0
KGZ1bmN0aW9uKHQpIHsKK2FzeW5jX3Rlc3QoZnVuY3Rpb24odCkgewogICAgIHZhciBzY29wZSA9
ICdyZXNvdXJjZXMvZmV0Y2gtZnJhbWUtcmVzb3VyY2UvZnJhbWUtb3BhcXVlJzsKICAgICB2YXIg
ZnJhbWU7Ci0gICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVy
KHQsIHdvcmtlciwgc2NvcGUpCisgICAgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVn
aXN0ZXIodCwgd29ya2VyLCBzY29wZSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKHJlZykgewotICAg
ICAgICAgIHQuYWRkX2NsZWFudXAoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgIHJldHVybiBz
ZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyKHQsIHNjb3BlKTsKLSAgICAgICAgICAgIH0pOwotCiAg
ICAgICAgICAgcmV0dXJuIHdhaXRfZm9yX3N0YXRlKHQsIHJlZy5pbnN0YWxsaW5nLCAnYWN0aXZh
dGVkJyk7CiAgICAgICAgIH0pCiAgICAgICAudGhlbihmdW5jdGlvbigpIHsKQEAgLTE1NiwxNyAr
MTQ4LDE1IEBAIHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7CiAgICAgICAgICAgICBudWxsLAog
ICAgICAgICAgICAgJ09wYXF1ZSB0eXBlIHJlc3BvbnNlIGNvdWxkIG5vdCBiZSBsb2FkZWQgaW4g
dGhlIGlmcmFtZS4nKTsKICAgICAgICAgICBmcmFtZS5yZW1vdmUoKTsKLSAgICAgICAgfSk7Cisg
ICAgICAgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX2RvbmUodCwgc2Nv
cGUpOworICAgICAgICB9KQorICAgICAgLmNhdGNoKHVucmVhY2hlZF9yZWplY3Rpb24odCkpOwog
ICB9LCAnT3BhcXVlIHR5cGUgcmVzcG9uc2UgY291bGQgbm90IGJlIGxvYWRlZCBpbiB0aGUgaWZy
YW1lLicpOwogCi1wcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgeworYXN5bmNfdGVzdChmdW5jdGlv
bih0KSB7CiAgICAgdmFyIHNjb3BlID0gJ3Jlc291cmNlcy9mZXRjaC1mcmFtZS1yZXNvdXJjZS93
aW5kb3ctYmFzaWMnOwotICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9y
ZWdpc3Rlcih0LCB3b3JrZXIsIHNjb3BlKQorICAgIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJf
YW5kX3JlZ2lzdGVyKHQsIHdvcmtlciwgc2NvcGUpCiAgICAgICAudGhlbihmdW5jdGlvbihyZWcp
IHsKLSAgICAgICAgICB0LmFkZF9jbGVhbnVwKGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICBy
ZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcih0LCBzY29wZSk7Ci0gICAgICAgICAgICB9
KTsKLQogICAgICAgICAgIHJldHVybiB3YWl0X2Zvcl9zdGF0ZSh0LCByZWcuaW5zdGFsbGluZywg
J2FjdGl2YXRlZCcpOwogICAgICAgICB9KQogICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7CkBAIC0x
ODAsMTcgKzE3MCwxNSBAQCBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewogICAgICAgICAgICAg
cmVzdWx0Lmpzb25wUmVzdWx0LAogICAgICAgICAgICAgJ3N1Y2Nlc3MnLAogICAgICAgICAgICAg
J0Jhc2ljIHR5cGUgcmVzcG9uc2UgY291bGQgYmUgbG9hZGVkIGluIHRoZSBuZXcgd2luZG93Licp
OwotICAgICAgICB9KTsKKyAgICAgICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rl
cl9hbmRfZG9uZSh0LCBzY29wZSk7CisgICAgICAgIH0pCisgICAgICAuY2F0Y2godW5yZWFjaGVk
X3JlamVjdGlvbih0KSk7CiAgIH0sICdCYXNpYyB0eXBlIHJlc3BvbnNlIGNvdWxkIGJlIGxvYWRl
ZCBpbiB0aGUgbmV3IHdpbmRvdy4nKTsKIAotcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKK2Fz
eW5jX3Rlc3QoZnVuY3Rpb24odCkgewogICAgIHZhciBzY29wZSA9ICdyZXNvdXJjZXMvZmV0Y2gt
ZnJhbWUtcmVzb3VyY2Uvd2luZG93LWNvcnMnOwotICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91
bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCB3b3JrZXIsIHNjb3BlKQorICAgIHNlcnZpY2Vfd29y
a2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHdvcmtlciwgc2NvcGUpCiAgICAgICAudGhl
bihmdW5jdGlvbihyZWcpIHsKLSAgICAgICAgICB0LmFkZF9jbGVhbnVwKGZ1bmN0aW9uKCkgewot
ICAgICAgICAgICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcih0LCBzY29wZSk7
Ci0gICAgICAgICAgICB9KTsKLQogICAgICAgICAgIHJldHVybiB3YWl0X2Zvcl9zdGF0ZSh0LCBy
ZWcuaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOwogICAgICAgICB9KQogICAgICAgLnRoZW4oZnVu
Y3Rpb24oKSB7CkBAIC0yMDYsMTcgKzE5NCwxNSBAQCBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkg
ewogICAgICAgICAgICAgcmVzdWx0Lmpzb25wUmVzdWx0LAogICAgICAgICAgICAgJ3N1Y2Nlc3Mn
LAogICAgICAgICAgICAgJ0NPUlMgdHlwZSByZXNwb25zZSBjb3VsZCBiZSBsb2FkZWQgaW4gdGhl
IG5ldyB3aW5kb3cuJyk7Ci0gICAgICAgIH0pOworICAgICAgICAgIHJldHVybiBzZXJ2aWNlX3dv
cmtlcl91bnJlZ2lzdGVyX2FuZF9kb25lKHQsIHNjb3BlKTsKKyAgICAgICAgfSkKKyAgICAgIC5j
YXRjaCh1bnJlYWNoZWRfcmVqZWN0aW9uKHQpKTsKICAgfSwgJ0NPUlMgdHlwZSByZXNwb25zZSBj
b3VsZCBiZSBsb2FkZWQgaW4gdGhlIG5ldyB3aW5kb3cuJyk7CiAKLXByb21pc2VfdGVzdChmdW5j
dGlvbih0KSB7Cithc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICB2YXIgc2NvcGUgPSAncmVz
b3VyY2VzL2ZldGNoLWZyYW1lLXJlc291cmNlL3dpbmRvdy1vcGFxdWUnOwotICAgIHJldHVybiBz
ZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCB3b3JrZXIsIHNjb3BlKQor
ICAgIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHdvcmtlciwgc2Nv
cGUpCiAgICAgICAudGhlbihmdW5jdGlvbihyZWcpIHsKLSAgICAgICAgICB0LmFkZF9jbGVhbnVw
KGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdp
c3Rlcih0LCBzY29wZSk7Ci0gICAgICAgICAgICB9KTsKLQogICAgICAgICAgIHJldHVybiB3YWl0
X2Zvcl9zdGF0ZSh0LCByZWcuaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOwogICAgICAgICB9KQog
ICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7CkBAIC0yMzAsNyArMjE2LDkgQEAgcHJvbWlzZV90ZXN0
KGZ1bmN0aW9uKHQpIHsKICAgICAgICAgICAgIHJlc3VsdCwKICAgICAgICAgICAgIG51bGwsCiAg
ICAgICAgICAgICAnT3BhcXVlIHR5cGUgcmVzcG9uc2UgY291bGQgbm90IGJlIGxvYWRlZCBpbiB0
aGUgbmV3IHdpbmRvdy4nKTsKLSAgICAgICAgfSk7CisgICAgICAgICAgcmV0dXJuIHNlcnZpY2Vf
d29ya2VyX3VucmVnaXN0ZXJfYW5kX2RvbmUodCwgc2NvcGUpOworICAgICAgICB9KQorICAgICAg
LmNhdGNoKHVucmVhY2hlZF9yZWplY3Rpb24odCkpOwogICB9LCAnT3BhcXVlIHR5cGUgcmVzcG9u
c2UgY291bGQgbm90IGJlIGxvYWRlZCBpbiB0aGUgbmV3IHdpbmRvdy4nKTsKIDwvc2NyaXB0Pgog
PC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtaGVhZGVyLXZpc2li
aWxpdHkuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWhlYWRlci12aXNpYmls
aXR5Lmh0dHBzLmh0bWwKaW5kZXggMWY0ODEzYzRmOGU2ZDkzYTAyNGI0MzNkYjRjYjQ1NDk5YjY4
NDI1Zi4uMWNlYjE2NDY1M2I5NjM1OTk5Njc1Y2M4N2VhMTE0Nzk2ZWZlYWQ5ZCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtaGVhZGVyLXZpc2liaWxpdHkuaHR0cHMuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1oZWFkZXItdmlzaWJpbGl0eS5odHRwcy5odG1s
CkBAIC0xMSwxNCArMTEsMTAgQEAKICAgdmFyIGhvc3RfaW5mbyA9IGdldF9ob3N0X2luZm8oKTsK
ICAgdmFyIGZyYW1lOwogCi0gIHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7CisgIGFzeW5jX3Rl
c3QoZnVuY3Rpb24odCkgewogICAgIHZhciBzY29wZSA9ICdyZXNvdXJjZXMvZmV0Y2gtaGVhZGVy
LXZpc2liaWxpdHktaWZyYW1lLmh0bWwnOwotICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJl
Z2lzdGVyX2FuZF9yZWdpc3Rlcih0LCB3b3JrZXIsIHNjb3BlKQorICAgIHNlcnZpY2Vfd29ya2Vy
X3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHdvcmtlciwgc2NvcGUpCiAgICAgICAudGhlbihm
dW5jdGlvbihyZWcpIHsKLSAgICAgICAgdC5hZGRfY2xlYW51cChmdW5jdGlvbigpIHsKLSAgICAg
ICAgICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyKHQsIHNjb3BlKTsKLSAgICAg
ICAgICB9KTsKLQogICAgICAgICByZXR1cm4gd2FpdF9mb3Jfc3RhdGUodCwgcmVnLmluc3RhbGxp
bmcsICdhY3RpdmF0ZWQnKTsKICAgICAgIH0pCiAgICAgICAudGhlbihmdW5jdGlvbigpIHsKQEAg
LTQ4LDcgKzQ0LDkgQEAKICAgICAgIH0pCiAgICAgICAudGhlbihmdW5jdGlvbihyZXN1bHQpIHsK
ICAgICAgICAgZnJhbWUucmVtb3ZlKCk7Ci0gICAgICB9KTsKKyAgICAgICAgcmV0dXJuIHNlcnZp
Y2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX2RvbmUodCwgc2NvcGUpOworICAgICAgfSkKKyAgICAg
IC5jYXRjaCh1bnJlYWNoZWRfcmVqZWN0aW9uKHQpKTsKICAgfSwgJ1Zpc2liaWxpdHkgb2YgZGVm
YXVsdGVkIGhlYWRlcnMgZHVyaW5nIGludGVyY2VwdGlvbicpOwogPC9zY3JpcHQ+CiA8L2JvZHk+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1yZXF1ZXN0LWNzcy1iYXNlLXVy
bC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1yZXF1ZXN0LWNz
cy1iYXNlLXVybC5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggMmE3MzFlNGU3ODc5YTdhMmY0Njll
Mzk2NzYxMTRhODM3NzU1YzE5Yy4uNjJhZWE2NjE4NjUwMzUwMzAwNDE2NmJlNWMxM2U0MzExZmNk
MDc1ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtcmVxdWVzdC1jc3MtYmFz
ZS11cmwuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLXJl
cXVlc3QtY3NzLWJhc2UtdXJsLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMSw2ICsxLDQgQEAKIAot
UEFTUyBnbG9iYWwgc2V0dXAgCi1GQUlMIGJhc2UgVVJMIHdoZW4gc2VydmljZSB3b3JrZXIgZG9l
cyByZXNwb25kV2l0aChmZXRjaChyZXNwb25zZVVybCkpLiBhc3NlcnRfZXF1YWxzOiByZWZlcnJl
ciBleHBlY3RlZCAiaHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0My9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLXJlcXVlc3QtY3NzLWJhc2UtdXJsLXN0eWxlLmNzcz9m
ZXRjaCIgYnV0IGdvdCAiaHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0My9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLXJlcXVlc3QtY3NzLWJhc2UtdXJsLWlmcmFtZS5o
dG1sP2ZldGNoIgotRkFJTCBiYXNlIFVSTCB3aGVuIHNlcnZpY2Ugd29ya2VyIGRvZXMgcmVzcG9u
ZFdpdGgobmV3IFJlc3BvbnNlKCkpLiBhc3NlcnRfZXF1YWxzOiByZWZlcnJlciBleHBlY3RlZCAi
aHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0My9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVz
b3VyY2VzL3JlcXVlc3QtdXJsLXBhdGgvZmV0Y2gtcmVxdWVzdC1jc3MtYmFzZS11cmwtc3R5bGUu
Y3NzP25ld1Jlc3BvbnNlIiBidXQgZ290ICJodHRwczovL2xvY2FsaG9zdDo5NDQzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtcmVxdWVzdC1jc3MtYmFzZS11
cmwtaWZyYW1lLmh0bWw/bmV3UmVzcG9uc2UiCi1QQVNTIGNsZWFudXAgZ2xvYmFsIHN0YXRlIAor
CitGQUlMIENTUydzIGJhc2UgVVJMIG11c3QgYmUgdGhlIHJlcXVlc3QgVVJMIGV2ZW4gd2hlbiBm
ZXRjaGVkIGZyb20gb3RoZXIgVVJMLiBhc3NlcnRfZXF1YWxzOiBUaGUgYmFzZSBVUkwgd2hpbGUg
bG9hZGluZyB0aGUgaW1hZ2VzIHJlZmVycmVkIGZyb20gQ1NTIG11c3QgYmUgdGhlIHJlcXVlc3Qg
VVJMIG9mIENTUy4gZXhwZWN0ZWQgImh0dHBzOi8vbG9jYWxob3N0Ojk0NDMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9kdW1teS5wbmciIGJ1dCBnb3QgImh0dHBzOi8v
MTI3LjAuMC4xOjk0NDMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9k
dW1teS5wbmciCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLXJlcXVlc3Qt
Y3NzLWJhc2UtdXJsLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1yZXF1ZXN0
LWNzcy1iYXNlLXVybC5odHRwcy5odG1sCmluZGV4IGEwOGUwYzc0ODgxMzY0ZjdmZDI5ZDNlNmFj
MzMyYTdlMWQ5NGJmN2EuLjdjNjY1MjAzMDQ1Nzg2ZmRmMjU2NjgxMDNjN2UwOWU0Y2VmMmVkMjUg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLXJlcXVlc3QtY3NzLWJhc2UtdXJs
Lmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtcmVxdWVzdC1jc3MtYmFz
ZS11cmwuaHR0cHMuaHRtbApAQCAtMSw4NyArMSw1NiBAQAogPCFET0NUWVBFIGh0bWw+Ci08dGl0
bGU+U2VydmljZSBXb3JrZXI6IENTUydzIGJhc2UgVVJMIG11c3QgYmUgdGhlIHJlc3BvbnNlIFVS
TDwvdGl0bGU+Cis8dGl0bGU+U2VydmljZSBXb3JrZXI6IENTUydzIGJhc2UgVVJMIG11c3QgYmUg
dGhlIHJlcXVlc3QgVVJMIGV2ZW4gd2hlbiBmZXRjaGVkIGZyb20gb3RoZXIgVVJMPC90aXRsZT4K
IDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KIDxzY3Jp
cHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIvY29tbW9uL2dldC1ob3N0LWluZm8uc3ViLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQg
c3JjPSJyZXNvdXJjZXMvdGVzdC1oZWxwZXJzLnN1Yi5qcz9waXBlPXN1YiI+PC9zY3JpcHQ+CiA8
c2NyaXB0PgotY29uc3QgU0NPUEUgPSAncmVzb3VyY2VzL2ZldGNoLXJlcXVlc3QtY3NzLWJhc2Ut
dXJsLWlmcmFtZS5odG1sJzsKLWNvbnN0IFNDUklQVCA9ICdyZXNvdXJjZXMvZmV0Y2gtcmVxdWVz
dC1jc3MtYmFzZS11cmwtd29ya2VyLmpzJzsKLWxldCB3b3JrZXI7Ci0KLXZhciBzaWduYWxNZXNz
YWdlOwotZnVuY3Rpb24gZ2V0TmV4dE1lc3NhZ2UoKSB7Ci0gIHJldHVybiBuZXcgUHJvbWlzZShy
ZXNvbHZlID0+IHsgc2lnbmFsTWVzc2FnZSA9IHJlc29sdmU7IH0pOwotfQotCi1wcm9taXNlX3Rl
c3QoYXN5bmMgKHQpID0+IHsKLSAgY29uc3QgcmVnaXN0cmF0aW9uID0gYXdhaXQgc2VydmljZV93
b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIoCi0gICAgICB0LCBTQ1JJUFQsIFNDT1BFKTsK
LSAgd29ya2VyID0gcmVnaXN0cmF0aW9uLmluc3RhbGxpbmc7Ci0gIGF3YWl0IHdhaXRfZm9yX3N0
YXRlKHQsIHdvcmtlciwgJ2FjdGl2YXRlZCcpOwotfSwgJ2dsb2JhbCBzZXR1cCcpOwotCi0vLyBD
cmVhdGVzIGEgdGVzdCBjb25jZXJuaW5nIHRoZSBiYXNlIFVSTCBvZiBhIHN0eWxlc2hlZXQuIEl0
IGxvYWRzIGEKLS8vIHN0eWxlc2hlZXQgZnJvbSBhIGNvbnRyb2xsZWQgcGFnZS4gVGhlIHN0eWxl
c2hlZXQgbWFrZXMgYSBzdWJyZXNvdXJjZQotLy8gcmVxdWVzdCBmb3IgYW4gaW1hZ2UuIFRoZSBz
ZXJ2aWNlIHdvcmtlciBtZXNzYWdlcyBiYWNrIHRoZSBkZXRhaWxzIG9mIHRoZQotLy8gaW1hZ2Ug
cmVxdWVzdCBpbiBvcmRlciB0byB0ZXN0IHRoZSBiYXNlIFVSTC4KLS8vCi0vLyBUaGUgcmVxdWVz
dCBVUkwgZm9yIHRoZSBzdHlsZXNoZWV0IGlzIHVuZGVyICJyZXNvdXJjZXMvcmVxdWVzdC11cmwt
cGF0aC8iLgotLy8gVGhlIHNlcnZpY2Ugd29ya2VyIG1heSByZXNwb25kIGluIGEgd2F5IHN1Y2gg
dGhhdCB0aGUgcmVzcG9uc2UgVVJMIGlzCi0vLyBkaWZmZXJlbnQgdG8gdGhlIHJlcXVlc3QgVVJM
LgotZnVuY3Rpb24gYmFzZV91cmxfdGVzdChwYXJhbXMpIHsKLSAgcHJvbWlzZV90ZXN0KGFzeW5j
ICh0KSA9PiB7Ci0gICAgbGV0IGZyYW1lOwotICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gewotICAg
ICAgaWYgKGZyYW1lKQotICAgICAgICBmcmFtZS5yZW1vdmUoKTsKLSAgICB9KTsKLQotICAgIC8v
IEFzayB0aGUgc2VydmljZSB3b3JrZXIgdG8gbWVzc2FnZSB0aGlzIHBhZ2Ugb25jZSBpdCBnZXRz
IHRoZSByZXF1ZXN0Ci0gICAgLy8gZm9yIHRoZSBpbWFnZS4KLSAgICBsZXQgY2hhbm5lbCA9IG5l
dyBNZXNzYWdlQ2hhbm5lbCgpOwotICAgIGNvbnN0IHNhd1BvbmcgPSBnZXROZXh0TWVzc2FnZSgp
OwotICAgIGNoYW5uZWwucG9ydDEub25tZXNzYWdlID0gKGV2ZW50KSA9PiB7Ci0gICAgICBzaWdu
YWxNZXNzYWdlKGV2ZW50LmRhdGEpOwotICAgIH07Ci0gICAgd29ya2VyLnBvc3RNZXNzYWdlKHtw
b3J0OmNoYW5uZWwucG9ydDJ9LFtjaGFubmVsLnBvcnQyXSk7Ci0KLSAgICAvLyBJdCBzZW5kcyBh
IHBvbmcgYmFjayBpbW1lZGlhdGVseS4gVGhpcyBwaW5nL3BvbmcgcHJvdG9jb2wgaGVscHMgZGVm
bGFrZQotICAgIC8vIHRoZSB0ZXN0IGZvciBicm93c2VycyB3aGVyZSBtZXNzYWdlL2ZldGNoIG9y
ZGVyaW5nIGlzbid0IGd1YXJhbnRlZWQuCi0gICAgYXNzZXJ0X2VxdWFscygncG9uZycsIGF3YWl0
IHNhd1BvbmcpOwotCi0gICAgLy8gTG9hZCB0aGUgZnJhbWUgd2hpY2ggd2lsbCBsb2FkIHRoZSBz
dHlsZXNoZWV0IHRoYXQgbWFrZXMgdGhlIGltYWdlCi0gICAgLy8gcmVxdWVzdC4KLSAgICBjb25z
dCBzYXdSZXN1bHQgPSBnZXROZXh0TWVzc2FnZSgpOwotICAgIGZyYW1lID0gYXdhaXQgd2l0aF9p
ZnJhbWUocGFyYW1zLmZyYW1lUGF0aCk7Ci0gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgc2F3UmVz
dWx0OwotCi0gICAgLy8gVGVzdCB0aGUgaW1hZ2UgcmVxdWVzdC4KLSAgICBjb25zdCBiYXNlID0g
bmV3IFVSTCgnLicsIGRvY3VtZW50LmxvY2F0aW9uKS5ocmVmOwotICAgIGFzc2VydF9lcXVhbHMo
cmVzdWx0LnVybCwKLSAgICAgICAgICAgICAgICAgIGJhc2UgKyBwYXJhbXMuZXhwZWN0SW1hZ2VS
ZXF1ZXN0UGF0aCwKLSAgICAgICAgICAgICAgICAgICdyZXF1ZXN0Jyk7Ci0gICAgYXNzZXJ0X2Vx
dWFscyhyZXN1bHQucmVmZXJyZXIsCi0gICAgICAgICAgICAgICAgICBiYXNlICsgcGFyYW1zLmV4
cGVjdEltYWdlUmVxdWVzdFJlZmVycmVyLAotICAgICAgICAgICAgICAgICAgJ3JlZmVycmVyJyk7
Ci0gIH0sIHBhcmFtcy5kZXNjcmlwdGlvbik7Ci19Ci0KLWNvbnN0IGNzc0ZpbGUgPSAnZmV0Y2gt
cmVxdWVzdC1jc3MtYmFzZS11cmwtc3R5bGUuY3NzJzsKLQotYmFzZV91cmxfdGVzdCh7Ci0gIGZy
YW1lUGF0aDogU0NPUEUgKyAnP2ZldGNoJywKLSAgZXhwZWN0SW1hZ2VSZXF1ZXN0UGF0aDogJ3Jl
c291cmNlcy9kdW1teS5wbmcnLAotICBleHBlY3RJbWFnZVJlcXVlc3RSZWZlcnJlcjogYHJlc291
cmNlcy8ke2Nzc0ZpbGV9P2ZldGNoYCwKLSAgZGVzY3JpcHRpb246ICdiYXNlIFVSTCB3aGVuIHNl
cnZpY2Ugd29ya2VyIGRvZXMgcmVzcG9uZFdpdGgoZmV0Y2gocmVzcG9uc2VVcmwpKS4nfSk7Ci0K
LWJhc2VfdXJsX3Rlc3QoewotICBmcmFtZVBhdGg6IFNDT1BFICsgJz9uZXdSZXNwb25zZScsCi0g
IGV4cGVjdEltYWdlUmVxdWVzdFBhdGg6ICdyZXNvdXJjZXMvcmVxdWVzdC11cmwtcGF0aC9kdW1t
eS5wbmcnLAotICBleHBlY3RJbWFnZVJlcXVlc3RSZWZlcnJlcjogYHJlc291cmNlcy9yZXF1ZXN0
LXVybC1wYXRoLyR7Y3NzRmlsZX0/bmV3UmVzcG9uc2VgLAotICBkZXNjcmlwdGlvbjogJ2Jhc2Ug
VVJMIHdoZW4gc2VydmljZSB3b3JrZXIgZG9lcyByZXNwb25kV2l0aChuZXcgUmVzcG9uc2UoKSku
J30pOwotCi0vLyBDbGVhbnVwIHN0ZXA6IHRoaXMgbXVzdCBiZSB0aGUgbGFzdCBwcm9taXNlX3Rl
c3QuCi1wcm9taXNlX3Rlc3QoYXN5bmMgKHQpID0+IHsKLSAgcmV0dXJuIHNlcnZpY2Vfd29ya2Vy
X3VucmVnaXN0ZXIodCwgU0NPUEUpOwotfSwgJ2NsZWFudXAgZ2xvYmFsIHN0YXRlJyk7Cithc3lu
Y190ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgICB2YXIgU0NPUEUgPSAncmVzb3VyY2VzL2ZldGNoLXJl
cXVlc3QtY3NzLWJhc2UtdXJsLWlmcmFtZS5odG1sJzsKKyAgICB2YXIgU0NSSVBUID0gJ3Jlc291
cmNlcy9mZXRjaC1yZXF1ZXN0LWNzcy1iYXNlLXVybC13b3JrZXIuanMnOworICAgIHZhciB3b3Jr
ZXI7CisgICAgdmFyIHRlc3REb25lUHJvbWlzZTsKKworICAgIHJldHVybiBzZXJ2aWNlX3dvcmtl
cl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCBTQ1JJUFQsIFNDT1BFKQorICAgICAgLnRoZW4o
ZnVuY3Rpb24ocmVnaXN0cmF0aW9uKSB7CisgICAgICAgICAgd29ya2VyID0gcmVnaXN0cmF0aW9u
Lmluc3RhbGxpbmc7CisgICAgICAgICAgcmV0dXJuIHdhaXRfZm9yX3N0YXRlKHQsIHdvcmtlciwg
J2FjdGl2YXRlZCcpOworICAgICAgICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUpIHsKKyAgICAgICAgICAg
ICAgdmFyIGNoYW5uZWwgPSBuZXcgTWVzc2FnZUNoYW5uZWwoKTsKKyAgICAgICAgICAgICAgdGVz
dERvbmVQcm9taXNlID0gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZVRlc3REb25lKSB7Cisg
ICAgICAgICAgICAgICAgY2hhbm5lbC5wb3J0MS5vbm1lc3NhZ2UgPSB0LnN0ZXBfZnVuYyhmdW5j
dGlvbihtc2cpIHsKKyAgICAgICAgICAgICAgICAgIGlmIChtc2cuZGF0YS5yZWFkeSkgeworICAg
ICAgICAgICAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgIHZhciByZXN1bHQgPSBtc2cu
ZGF0YTsKKyAgICAgICAgICAgICAgICAgIHZhciBiYXNlID0gZ2V0X2hvc3RfaW5mbygpWydIVFRQ
U19PUklHSU4nXSArIGJhc2VfcGF0aCgpOworICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFs
cygKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LnVybCwKKyAgICAgICAgICAgICAgICAgICAg
YmFzZSArICdyZXNvdXJjZXMvZHVtbXkucG5nJywKKyAgICAgICAgICAgICAgICAgICAgJ1RoZSBi
YXNlIFVSTCB3aGlsZSBsb2FkaW5nIHRoZSBpbWFnZXMgcmVmZXJyZWQgZnJvbSBDU1MgJyArCisg
ICAgICAgICAgICAgICAgICAgICdtdXN0IGJlIHRoZSByZXF1ZXN0IFVSTCBvZiBDU1MuJyk7Cisg
ICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKAorICAgICAgICAgICAgICAgICAgICByZXN1
bHQucmVmZXJyZXIsCisgICAgICAgICAgICAgICAgICAgIGJhc2UgKyAncmVzb3VyY2VzL2ZldGNo
LXJlcXVlc3QtY3NzLWJhc2UtdXJsLXN0eWxlLmNzcycsCisgICAgICAgICAgICAgICAgICAgICdX
aGlsZSBsb2FkaW5nIHRoZSBpbWFnZSBkZWZpbmVkIGluIENTUyB0aGUgcmVmZXJyZXIgbXVzdCAn
ICsKKyAgICAgICAgICAgICAgICAgICAgJ2JlIHRoZSByZXF1ZXN0IFVSTCBvZiBDU1MuJyk7Cisg
ICAgICAgICAgICAgICAgICByZXNvbHZlVGVzdERvbmUoKTsKKyAgICAgICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgIHdvcmtlci5wb3N0TWVzc2FnZSgKKyAg
ICAgICAgICAgICAgICB7cG9ydDogY2hhbm5lbC5wb3J0Mn0sIFtjaGFubmVsLnBvcnQyXSk7Cisg
ICAgICAgICAgICB9KTsKKyAgICAgICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKCkgeyByZXR1
cm4gd2l0aF9pZnJhbWUoU0NPUEUpOyB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24oZikgeworICAg
ICAgICAgIHJldHVybiB0ZXN0RG9uZVByb21pc2UudGhlbihmdW5jdGlvbigpIHsKKyAgICAgICAg
ICAgIGYucmVtb3ZlKCk7CisgICAgICAgICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdp
c3Rlcl9hbmRfZG9uZSh0LCBTQ09QRSk7CisgICAgICAgICAgfSk7CisgICAgICAgIH0pCisgICAg
ICAuY2F0Y2godW5yZWFjaGVkX3JlamVjdGlvbih0KSk7CisgIH0sICdDU1NcJ3MgYmFzZSBVUkwg
bXVzdCBiZSB0aGUgcmVxdWVzdCBVUkwgZXZlbiB3aGVuIGZldGNoZWQgZnJvbSBvdGhlciBVUkwu
Jyk7CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLXJlcXVl
c3QtY3NzLWltYWdlcy5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtcmVxdWVz
dC1jc3MtaW1hZ2VzLmh0dHBzLmh0bWwKaW5kZXggOTU4ZGUxYWY4NWY0ZWU2YmE1OGI0N2RlMzg5
NzFmOWZmMmFhMmJhMC4uNmYzMjNjYWM4ZDExZDMzODEyODQ4YmViMWVjZTY1MWNmNDk0YmJiYyAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtcmVxdWVzdC1jc3MtaW1hZ2VzLmh0
dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtcmVxdWVzdC1jc3MtaW1hZ2Vz
Lmh0dHBzLmh0bWwKQEAgLTM1LDMwICszNSwyMCBAQCBmdW5jdGlvbiBjc3NfaW1hZ2Vfc2V0X3Rl
c3QoZXhwZWN0ZWRfcmVzdWx0cywgZnJhbWUsIHVybCwgdHlwZSwKICAgcmV0dXJuIGZyYW1lLmNv
bnRlbnRXaW5kb3cubG9hZF9jc3NfaW1hZ2Vfc2V0KHVybCwgdHlwZSk7CiB9CiAKLWZ1bmN0aW9u
IHdhaXRGb3JXb3JrZXIod29ya2VyKSB7CitmdW5jdGlvbiBjcmVhdGVfbWVzc2FnZV9wcm9taXNl
KHQsIGV4cGVjdGVkX3Jlc3VsdHMsIGZyYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB3b3JrZXIsIHRlc3RfY291bnQsIHNjb3BlKSB7CiAgIHJldHVybiBuZXcgUHJvbWlzZShm
dW5jdGlvbihyZXNvbHZlKSB7CiAgICAgdmFyIGNoYW5uZWwgPSBuZXcgTWVzc2FnZUNoYW5uZWwo
KTsKLSAgICBjaGFubmVsLnBvcnQxLmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCBmdW5jdGlv
bihtc2cpIHsKKyAgICBjaGFubmVsLnBvcnQxLm9ubWVzc2FnZSA9IHQuc3RlcF9mdW5jKGZ1bmN0
aW9uKG1zZykgewogICAgICAgaWYgKG1zZy5kYXRhLnJlYWR5KSB7Ci0gICAgICAgIHJlc29sdmUo
Y2hhbm5lbCk7CisgICAgICAgIHJlc29sdmUoKTsKKyAgICAgICAgcmV0dXJuOwogICAgICAgfQot
ICAgIH0pOwotICAgIGNoYW5uZWwucG9ydDEuc3RhcnQoKTsKLSAgICB3b3JrZXIucG9zdE1lc3Nh
Z2Uoe3BvcnQ6IGNoYW5uZWwucG9ydDJ9LCBbY2hhbm5lbC5wb3J0Ml0pOwotICB9KTsKLX0KLQot
ZnVuY3Rpb24gY3JlYXRlX21lc3NhZ2VfcHJvbWlzZShjaGFubmVsLCBleHBlY3RlZF9yZXN1bHRz
LCB3b3JrZXIsIHNjb3BlKSB7Ci0gIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZl
KSB7Ci0gICAgY2hhbm5lbC5wb3J0MS5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgZnVuY3Rp
b24obXNnKSB7CiAgICAgICB2YXIgcmVzdWx0ID0gbXNnLmRhdGE7Ci0gICAgICBpZiAoIWV4cGVj
dGVkX3Jlc3VsdHNbcmVzdWx0LnVybF0pIHsKKyAgICAgIHZhciBleHBlY3RlZCA9IGV4cGVjdGVk
X3Jlc3VsdHNbcmVzdWx0LnVybF07CisgICAgICBpZiAoIWV4cGVjdGVkKSB7CiAgICAgICAgIHJl
dHVybjsKICAgICAgIH0KLSAgICAgIHJlc29sdmUocmVzdWx0KTsKLSAgICB9KTsKLSAgfSkudGhl
bihmdW5jdGlvbihyZXN1bHQpIHsKLSAgICAgIHZhciBleHBlY3RlZCA9IGV4cGVjdGVkX3Jlc3Vs
dHNbcmVzdWx0LnVybF07CiAgICAgICBhc3NlcnRfZXF1YWxzKAogICAgICAgICAgIHJlc3VsdC5t
b2RlLCBleHBlY3RlZC5tb2RlLAogICAgICAgICAgICdtb2RlIG9mICcgKyBleHBlY3RlZC5tZXNz
YWdlICsgICcgbXVzdCBiZSAnICsKQEAgLTY3LDE0OCArNTcsMTIwIEBAIGZ1bmN0aW9uIGNyZWF0
ZV9tZXNzYWdlX3Byb21pc2UoY2hhbm5lbCwgZXhwZWN0ZWRfcmVzdWx0cywgd29ya2VyLCBzY29w
ZSkgewogICAgICAgICAgIHJlc3VsdC5jcmVkZW50aWFscywgZXhwZWN0ZWQuY3JlZGVudGlhbHMs
CiAgICAgICAgICAgJ2NyZWRlbnRpYWxzIG9mICcgKyBleHBlY3RlZC5tZXNzYWdlICsgICcgbXVz
dCBiZSAnICsKICAgICAgICAgICBleHBlY3RlZC5jcmVkZW50aWFscyArICcuJyk7CisgICAgICAt
LXRlc3RfY291bnQ7CiAgICAgICBkZWxldGUgZXhwZWN0ZWRfcmVzdWx0c1tyZXN1bHQudXJsXTsK
KyAgICAgIGlmICh0ZXN0X2NvdW50ID09IDApIHsKKyAgICAgICAgZnJhbWUucmVtb3ZlKCk7Cisg
ICAgICAgIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX2RvbmUodCwgc2NvcGUpOworICAg
ICAgfQogICAgIH0pOworICAgIHdvcmtlci5wb3N0TWVzc2FnZSgKKyAgICAgIHtwb3J0OiBjaGFu
bmVsLnBvcnQyfSwgW2NoYW5uZWwucG9ydDJdKTsKKyAgfSk7CiB9CiAKLXByb21pc2VfdGVzdChm
dW5jdGlvbih0KSB7Cithc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICB2YXIgc2NvcGUgPSBT
Q09QRSArICI/aW1nPWJhY2tncm91bmRJbWFnZSI7CisgICAgdmFyIHRlc3RfY291bnQgPSAyOwog
ICAgIHZhciBleHBlY3RlZF9yZXN1bHRzID0ge307CiAgICAgdmFyIHdvcmtlcjsKICAgICB2YXIg
ZnJhbWU7Ci0gICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVy
KHQsIFNDUklQVCwgc2NvcGUpCisgICAgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVn
aXN0ZXIodCwgU0NSSVBULCBzY29wZSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKHJlZ2lzdHJhdGlv
bikgewotICAgICAgICAgIHQuYWRkX2NsZWFudXAoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAg
IHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyKHQsIHNjb3BlKTsKLSAgICAgICAgICAg
IH0pOwotCiAgICAgICAgICAgd29ya2VyID0gcmVnaXN0cmF0aW9uLmluc3RhbGxpbmc7CiAgICAg
ICAgICAgcmV0dXJuIHdhaXRfZm9yX3N0YXRlKHQsIHdvcmtlciwgJ2FjdGl2YXRlZCcpOwogICAg
ICAgICB9KQogICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7IHJldHVybiB3aXRoX2lmcmFtZShzY29w
ZSk7IH0pCiAgICAgICAudGhlbihmdW5jdGlvbihmKSB7Ci0gICAgICAgICAgdC5hZGRfY2xlYW51
cChmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgZi5yZW1vdmUoKTsKLSAgICAgICAgICAgIH0p
OwogICAgICAgICAgIGZyYW1lID0gZjsKLSAgICAgICAgICByZXR1cm4gd2FpdEZvcldvcmtlcih3
b3JrZXIpOworICAgICAgICAgIHJldHVybiBjcmVhdGVfbWVzc2FnZV9wcm9taXNlKHQsIGV4cGVj
dGVkX3Jlc3VsdHMsIGZyYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHdvcmtlciwgdGVzdF9jb3VudCwgc2NvcGUpOwogICAgICAgICB9KQotICAgICAgLnRoZW4o
ZnVuY3Rpb24oY2hhbm5lbCkgewotICAgICAgICAgIGNzc19pbWFnZV90ZXN0KGV4cGVjdGVkX3Jl
c3VsdHMsIGZyYW1lLCBMT0NBTF9VUkwgKyBEYXRlLm5vdygpLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICdiYWNrZ3JvdW5kSW1hZ2UnLCAnbm8tY29ycycsICdpbmNsdWRlJyk7Ci0gICAgICAg
ICAgY3NzX2ltYWdlX3Rlc3QoZXhwZWN0ZWRfcmVzdWx0cywgZnJhbWUsIFJFTU9URV9VUkwgKyBE
YXRlLm5vdygpLAotICAgICAgICAgICAgICAgICAgICAgICAgJ2JhY2tncm91bmRJbWFnZScsICdu
by1jb3JzJywgJ2luY2x1ZGUnKTsKLQotICAgICAgICAgIHJldHVybiBQcm9taXNlLmFsbChbCi0g
ICAgICAgICAgICAgIGNyZWF0ZV9tZXNzYWdlX3Byb21pc2UoY2hhbm5lbCwgZXhwZWN0ZWRfcmVz
dWx0cywgd29ya2VyLCBzY29wZSksCi0gICAgICAgICAgICAgIGNyZWF0ZV9tZXNzYWdlX3Byb21p
c2UoY2hhbm5lbCwgZXhwZWN0ZWRfcmVzdWx0cywgd29ya2VyLCBzY29wZSkKLSAgICAgICAgICAg
IF0pOwotICAgICAgICB9KTsKKyAgICAgIC50aGVuKGZ1bmN0aW9uKCkgeworICAgICAgICBjc3Nf
aW1hZ2VfdGVzdChleHBlY3RlZF9yZXN1bHRzLCBmcmFtZSwgTE9DQUxfVVJMICsgRGF0ZS5ub3co
KSwKKyAgICAgICAgICAgICAgICAgICAgICAgJ2JhY2tncm91bmRJbWFnZScsICduby1jb3JzJywg
J2luY2x1ZGUnKTsKKyAgICAgICAgY3NzX2ltYWdlX3Rlc3QoZXhwZWN0ZWRfcmVzdWx0cywgZnJh
bWUsIFJFTU9URV9VUkwgKyBEYXRlLm5vdygpLAorICAgICAgICAgICAgICAgICAgICAgICdiYWNr
Z3JvdW5kSW1hZ2UnLCAnbm8tY29ycycsICdpbmNsdWRlJyk7CisgICAgICB9KQorICAgICAgLmNh
dGNoKHVucmVhY2hlZF9yZWplY3Rpb24odCkpOwogICB9LCAnVmVyaWZ5IEZldGNoRXZlbnQgZm9y
IGNzcyBpbWFnZSAoYmFja2dyb3VuZEltYWdlKS4nKTsKIAotcHJvbWlzZV90ZXN0KGZ1bmN0aW9u
KHQpIHsKK2FzeW5jX3Rlc3QoZnVuY3Rpb24odCkgewogICAgIHZhciBzY29wZSA9IFNDT1BFICsg
Ij9pbWc9c2hhcGVPdXRzaWRlIjsKKyAgICB2YXIgdGVzdF9jb3VudCA9IDI7CiAgICAgdmFyIGV4
cGVjdGVkX3Jlc3VsdHMgPSB7fTsKICAgICB2YXIgd29ya2VyOwogICAgIHZhciBmcmFtZTsKLSAg
ICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgU0NSSVBU
LCBzY29wZSkKKyAgICBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCBT
Q1JJUFQsIHNjb3BlKQogICAgICAgLnRoZW4oZnVuY3Rpb24ocmVnaXN0cmF0aW9uKSB7Ci0gICAg
ICAgICAgdC5hZGRfY2xlYW51cChmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgcmV0dXJuIHNl
cnZpY2Vfd29ya2VyX3VucmVnaXN0ZXIodCwgc2NvcGUpOwotICAgICAgICAgICAgfSk7Ci0KICAg
ICAgICAgICB3b3JrZXIgPSByZWdpc3RyYXRpb24uaW5zdGFsbGluZzsKICAgICAgICAgICByZXR1
cm4gd2FpdF9mb3Jfc3RhdGUodCwgd29ya2VyLCAnYWN0aXZhdGVkJyk7CiAgICAgICAgIH0pCiAg
ICAgICAudGhlbihmdW5jdGlvbigpIHsgcmV0dXJuIHdpdGhfaWZyYW1lKHNjb3BlKTsgfSkKICAg
ICAgIC50aGVuKGZ1bmN0aW9uKGYpIHsKLSAgICAgICAgICB0LmFkZF9jbGVhbnVwKGZ1bmN0aW9u
KCkgewotICAgICAgICAgICAgICBmLnJlbW92ZSgpOwotICAgICAgICAgICAgfSk7CiAgICAgICAg
ICAgZnJhbWUgPSBmOwotICAgICAgICAgIHJldHVybiB3YWl0Rm9yV29ya2VyKHdvcmtlcik7Cisg
ICAgICAgICAgcmV0dXJuIGNyZWF0ZV9tZXNzYWdlX3Byb21pc2UodCwgZXhwZWN0ZWRfcmVzdWx0
cywgZnJhbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd29ya2Vy
LCB0ZXN0X2NvdW50LCBzY29wZSk7CiAgICAgICAgIH0pCi0gICAgICAudGhlbihmdW5jdGlvbihj
aGFubmVsKSB7Ci0gICAgICAgICAgY3NzX2ltYWdlX3Rlc3QoZXhwZWN0ZWRfcmVzdWx0cywgZnJh
bWUsIExPQ0FMX1VSTCArIERhdGUubm93KCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgJ3No
YXBlT3V0c2lkZScsICdjb3JzJywgJ3NhbWUtb3JpZ2luJyk7Ci0gICAgICAgICAgY3NzX2ltYWdl
X3Rlc3QoZXhwZWN0ZWRfcmVzdWx0cywgZnJhbWUsIFJFTU9URV9VUkwgKyBEYXRlLm5vdygpLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICdzaGFwZU91dHNpZGUnLCAnY29ycycsICdzYW1lLW9y
aWdpbicpOwotCi0gICAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKFsKLSAgICAgICAgICAgICAg
Y3JlYXRlX21lc3NhZ2VfcHJvbWlzZShjaGFubmVsLCBleHBlY3RlZF9yZXN1bHRzLCB3b3JrZXIs
IHNjb3BlKSwKLSAgICAgICAgICAgICAgY3JlYXRlX21lc3NhZ2VfcHJvbWlzZShjaGFubmVsLCBl
eHBlY3RlZF9yZXN1bHRzLCB3b3JrZXIsIHNjb3BlKQotICAgICAgICAgICAgXSk7Ci0gICAgICB9
KTsKKyAgICAgIC50aGVuKGZ1bmN0aW9uKCkgeworICAgICAgICAgY3NzX2ltYWdlX3Rlc3QoZXhw
ZWN0ZWRfcmVzdWx0cywgZnJhbWUsIExPQ0FMX1VSTCArIERhdGUubm93KCksCisgICAgICAgICAg
ICAgICAgICAgICAgICAnc2hhcGVPdXRzaWRlJywgJ2NvcnMnLCAnc2FtZS1vcmlnaW4nKTsKKyAg
ICAgICAgIGNzc19pbWFnZV90ZXN0KGV4cGVjdGVkX3Jlc3VsdHMsIGZyYW1lLCBSRU1PVEVfVVJM
ICsgRGF0ZS5ub3coKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICdzaGFwZU91dHNpZGUnLCAn
Y29ycycsICdzYW1lLW9yaWdpbicpOworICAgICAgfSkKKyAgICAgIC5jYXRjaCh1bnJlYWNoZWRf
cmVqZWN0aW9uKHQpKTsKICAgfSwgJ1ZlcmlmeSBGZXRjaEV2ZW50IGZvciBjc3MgaW1hZ2UgKHNo
YXBlT3V0c2lkZSkuJyk7CiAKLXByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7Cithc3luY190ZXN0
KGZ1bmN0aW9uKHQpIHsKICAgICB2YXIgc2NvcGUgPSBTQ09QRSArICI/aW1nX3NldD1iYWNrZ3Jv
dW5kSW1hZ2UiOworICAgIHZhciB0ZXN0X2NvdW50ID0gMjsKICAgICB2YXIgZXhwZWN0ZWRfcmVz
dWx0cyA9IHt9OwogICAgIHZhciB3b3JrZXI7CiAgICAgdmFyIGZyYW1lOwotICAgIHJldHVybiBz
ZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCBTQ1JJUFQsIHNjb3BlKQor
ICAgIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIFNDUklQVCwgc2Nv
cGUpCiAgICAgICAudGhlbihmdW5jdGlvbihyZWdpc3RyYXRpb24pIHsKLSAgICAgICAgICB0LmFk
ZF9jbGVhbnVwKGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICByZXR1cm4gc2VydmljZV93b3Jr
ZXJfdW5yZWdpc3Rlcih0LCBzY29wZSk7Ci0gICAgICAgICAgICB9KTsKLQogICAgICAgICAgIHdv
cmtlciA9IHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nOwogICAgICAgICAgIHJldHVybiB3YWl0X2Zv
cl9zdGF0ZSh0LCB3b3JrZXIsICdhY3RpdmF0ZWQnKTsKICAgICAgICAgfSkKICAgICAgIC50aGVu
KGZ1bmN0aW9uKCkgeyByZXR1cm4gd2l0aF9pZnJhbWUoc2NvcGUpOyB9KQogICAgICAgLnRoZW4o
ZnVuY3Rpb24oZikgewotICAgICAgICAgIHQuYWRkX2NsZWFudXAoZnVuY3Rpb24oKSB7Ci0gICAg
ICAgICAgICAgIGYucmVtb3ZlKCk7OwotICAgICAgICAgICAgfSk7CiAgICAgICAgICAgZnJhbWUg
PSBmOwotICAgICAgICAgIHJldHVybiB3YWl0Rm9yV29ya2VyKHdvcmtlcik7CisgICAgICAgICAg
cmV0dXJuIGNyZWF0ZV9tZXNzYWdlX3Byb21pc2UodCwgZXhwZWN0ZWRfcmVzdWx0cywgZnJhbWUs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd29ya2VyLCB0ZXN0X2Nv
dW50LCBzY29wZSk7CiAgICAgICAgIH0pCi0gICAgICAudGhlbihmdW5jdGlvbihjaGFubmVsKSB7
Ci0gICAgICAgICAgY3NzX2ltYWdlX3NldF90ZXN0KGV4cGVjdGVkX3Jlc3VsdHMsIGZyYW1lLCBM
T0NBTF9VUkwgKyBEYXRlLm5vdygpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICdiYWNr
Z3JvdW5kSW1hZ2UnLCAnbm8tY29ycycsICdpbmNsdWRlJyk7Ci0gICAgICAgICAgY3NzX2ltYWdl
X3NldF90ZXN0KGV4cGVjdGVkX3Jlc3VsdHMsIGZyYW1lLCBSRU1PVEVfVVJMICsgRGF0ZS5ub3co
KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYmFja2dyb3VuZEltYWdlJywgJ25vLWNv
cnMnLCAnaW5jbHVkZScpOwotCi0gICAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKFsKLSAgICAg
ICAgICAgICAgY3JlYXRlX21lc3NhZ2VfcHJvbWlzZShjaGFubmVsLCBleHBlY3RlZF9yZXN1bHRz
LCB3b3JrZXIsIHNjb3BlKSwKLSAgICAgICAgICAgICAgY3JlYXRlX21lc3NhZ2VfcHJvbWlzZShj
aGFubmVsLCBleHBlY3RlZF9yZXN1bHRzLCB3b3JrZXIsIHNjb3BlKQotICAgICAgICAgICAgXSk7
Ci0gICAgICB9KTsKKyAgICAgIC50aGVuKGZ1bmN0aW9uKCkgeworICAgICAgICAgY3NzX2ltYWdl
X3NldF90ZXN0KGV4cGVjdGVkX3Jlc3VsdHMsIGZyYW1lLCBMT0NBTF9VUkwgKyBEYXRlLm5vdygp
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2JhY2tncm91bmRJbWFnZScsICduby1jb3Jz
JywgJ2luY2x1ZGUnKTsKKyAgICAgICAgIGNzc19pbWFnZV9zZXRfdGVzdChleHBlY3RlZF9yZXN1
bHRzLCBmcmFtZSwgUkVNT1RFX1VSTCArIERhdGUubm93KCksCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAnYmFja2dyb3VuZEltYWdlJywgJ25vLWNvcnMnLCAnaW5jbHVkZScpOworICAgICAg
fSkKKyAgICAgIC5jYXRjaCh1bnJlYWNoZWRfcmVqZWN0aW9uKHQpKTsKICAgfSwgJ1ZlcmlmeSBG
ZXRjaEV2ZW50IGZvciBjc3MgaW1hZ2Utc2V0IChiYWNrZ3JvdW5kSW1hZ2UpLicpOwogCi1wcm9t
aXNlX3Rlc3QoZnVuY3Rpb24odCkgeworYXN5bmNfdGVzdChmdW5jdGlvbih0KSB7CiAgICAgdmFy
IHNjb3BlID0gU0NPUEUgKyAiP2ltZ19zZXQ9c2hhcGVPdXRzaWRlIjsKKyAgICB2YXIgdGVzdF9j
b3VudCA9IDI7CiAgICAgdmFyIGV4cGVjdGVkX3Jlc3VsdHMgPSB7fTsKICAgICB2YXIgd29ya2Vy
OwogICAgIHZhciBmcmFtZTsKLSAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9h
bmRfcmVnaXN0ZXIodCwgU0NSSVBULCBzY29wZSkKKyAgICBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lz
dGVyX2FuZF9yZWdpc3Rlcih0LCBTQ1JJUFQsIHNjb3BlKQogICAgICAgLnRoZW4oZnVuY3Rpb24o
cmVnaXN0cmF0aW9uKSB7Ci0gICAgICAgICAgdC5hZGRfY2xlYW51cChmdW5jdGlvbigpIHsKLSAg
ICAgICAgICAgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXIodCwgc2NvcGUpOwot
ICAgICAgICAgICAgfSk7Ci0KICAgICAgICAgICB3b3JrZXIgPSByZWdpc3RyYXRpb24uaW5zdGFs
bGluZzsKICAgICAgICAgICByZXR1cm4gd2FpdF9mb3Jfc3RhdGUodCwgd29ya2VyLCAnYWN0aXZh
dGVkJyk7CiAgICAgICAgIH0pCiAgICAgICAudGhlbihmdW5jdGlvbigpIHsgcmV0dXJuIHdpdGhf
aWZyYW1lKHNjb3BlKTsgfSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKGYpIHsKLSAgICAgICAgICB0
LmFkZF9jbGVhbnVwKGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICBmLnJlbW92ZSgpOwotICAg
ICAgICAgICAgfSk7CiAgICAgICAgICAgZnJhbWUgPSBmOwotICAgICAgICAgIHJldHVybiB3YWl0
Rm9yV29ya2VyKHdvcmtlcik7CisgICAgICAgICAgcmV0dXJuIGNyZWF0ZV9tZXNzYWdlX3Byb21p
c2UodCwgZXhwZWN0ZWRfcmVzdWx0cywgZnJhbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgd29ya2VyLCB0ZXN0X2NvdW50LCBzY29wZSk7CiAgICAgICAgIH0pCi0g
ICAgICAudGhlbihmdW5jdGlvbihjaGFubmVsKSB7Ci0gICAgICAgICAgY3NzX2ltYWdlX3NldF90
ZXN0KGV4cGVjdGVkX3Jlc3VsdHMsIGZyYW1lLCBMT0NBTF9VUkwgKyBEYXRlLm5vdygpLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAnc2hhcGVPdXRzaWRlJywgJ2NvcnMnLCAnc2FtZS1v
cmlnaW4nKTsKLSAgICAgICAgICBjc3NfaW1hZ2Vfc2V0X3Rlc3QoZXhwZWN0ZWRfcmVzdWx0cywg
ZnJhbWUsIFJFTU9URV9VUkwgKyBEYXRlLm5vdygpLAorICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7
CisgICAgICAgICBjc3NfaW1hZ2Vfc2V0X3Rlc3QoZXhwZWN0ZWRfcmVzdWx0cywgZnJhbWUsIExP
Q0FMX1VSTCArIERhdGUubm93KCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NoYXBl
T3V0c2lkZScsICdjb3JzJywgJ3NhbWUtb3JpZ2luJyk7Ci0KLSAgICAgICAgICByZXR1cm4gUHJv
bWlzZS5hbGwoWwotICAgICAgICAgICAgICBjcmVhdGVfbWVzc2FnZV9wcm9taXNlKGNoYW5uZWws
IGV4cGVjdGVkX3Jlc3VsdHMsIHdvcmtlciwgc2NvcGUpLAotICAgICAgICAgICAgICBjcmVhdGVf
bWVzc2FnZV9wcm9taXNlKGNoYW5uZWwsIGV4cGVjdGVkX3Jlc3VsdHMsIHdvcmtlciwgc2NvcGUp
Ci0gICAgICAgICAgICBdKTsKLSAgICAgICAgfSk7CisgICAgICAgICBjc3NfaW1hZ2Vfc2V0X3Rl
c3QoZXhwZWN0ZWRfcmVzdWx0cywgZnJhbWUsIFJFTU9URV9VUkwgKyBEYXRlLm5vdygpLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgJ3NoYXBlT3V0c2lkZScsICdjb3JzJywgJ3NhbWUtb3Jp
Z2luJyk7CisgICAgICB9KQorICAgICAgLmNhdGNoKHVucmVhY2hlZF9yZWplY3Rpb24odCkpOwog
ICB9LCAnVmVyaWZ5IEZldGNoRXZlbnQgZm9yIGNzcyBpbWFnZS1zZXQgKHNoYXBlT3V0c2lkZSku
Jyk7CiAKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtcmVx
dWVzdC1odG1sLWltcG9ydHMuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
ZmV0Y2gtcmVxdWVzdC1odG1sLWltcG9ydHMuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IDk2ZDkx
ZDk1NDU2M2RhOTA0ODNjZTk5NTIxYWQwNTRiYzQ0NTRiY2UuLjliYjE0MmFkNDEwODRhNjZhNjE0
NmE2NTBlZTNiOTNhZTVmZDEyYmIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNo
LXJlcXVlc3QtaHRtbC1pbXBvcnRzLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9mZXRjaC1yZXF1ZXN0LWh0bWwtaW1wb3J0cy5odHRwcy1leHBlY3RlZC50eHQKQEAg
LTEsMyArMSwzIEBACiAKLUZBSUwgVmVyaWZ5IHRoZSBGZXRjaEV2ZW50IGZvciBIVE1MSW1wb3J0
cyBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJU
eXBlRXJyb3I6IHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdzYW1lLmdl
dEVsZW1lbnRCeUlkJykiCitGQUlMIFZlcmlmeSB0aGUgRmV0Y2hFdmVudCBmb3IgSFRNTEltcG9y
dHMgYXNzZXJ0X3VucmVhY2hlZDogdW5leHBlY3RlZCByZWplY3Rpb246IHVuZGVmaW5lZCBpcyBu
b3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdzYW1lLmdldEVsZW1lbnRCeUlkJykgUmVhY2hlZCB1
bnJlYWNoYWJsZSBjb2RlCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLXJl
cXVlc3QtaHRtbC1pbXBvcnRzLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1y
ZXF1ZXN0LWh0bWwtaW1wb3J0cy5odHRwcy5odG1sCmluZGV4IDdhMzlmYTg1Mjg0YWRkZWI4Yjhk
MTE0NGVmZGE3NGJkZmEwMTM0ZmUuLmIyZjU2ZGE5ZjAxNzI0YWEwYmEwNDQ1MzhjYzc3MzE2MjBh
YjdmOTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLXJlcXVlc3QtaHRtbC1p
bXBvcnRzLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtcmVxdWVzdC1o
dG1sLWltcG9ydHMuaHR0cHMuaHRtbApAQCAtNSwxNiArNSwxMiBAQAogPHNjcmlwdCBzcmM9Ii9j
b21tb24vZ2V0LWhvc3QtaW5mby5zdWIuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9InJlc291
cmNlcy90ZXN0LWhlbHBlcnMuc3ViLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+Ci1wcm9taXNlX3Rl
c3QoZnVuY3Rpb24odCkgeworYXN5bmNfdGVzdChmdW5jdGlvbih0KSB7CiAgICAgdmFyIFNDT1BF
ID0gJ3Jlc291cmNlcy9mZXRjaC1yZXF1ZXN0LWh0bWwtaW1wb3J0cy1pZnJhbWUuaHRtbCc7CiAg
ICAgdmFyIFNDUklQVCA9ICdyZXNvdXJjZXMvZmV0Y2gtcmVxdWVzdC1odG1sLWltcG9ydHMtd29y
a2VyLmpzJzsKICAgICB2YXIgaG9zdF9pbmZvID0gZ2V0X2hvc3RfaW5mbygpOwotICAgIHJldHVy
biBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCBTQ1JJUFQsIFNDT1BF
KQorICAgIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIFNDUklQVCwg
U0NPUEUpCiAgICAgICAudGhlbihmdW5jdGlvbihyZWdpc3RyYXRpb24pIHsKLSAgICAgICAgICB0
LmFkZF9jbGVhbnVwKGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICByZXR1cm4gc2VydmljZV93
b3JrZXJfdW5yZWdpc3Rlcih0LCBTQ09QRSk7Ci0gICAgICAgICAgICB9KTsKLQogICAgICAgICAg
IHJldHVybiB3YWl0X2Zvcl9zdGF0ZSh0LCByZWdpc3RyYXRpb24uaW5zdGFsbGluZywgJ2FjdGl2
YXRlZCcpOwogICAgICAgICB9KQogICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7IHJldHVybiB3aXRo
X2lmcmFtZShTQ09QRSk7IH0pCkBAIC02MCw2ICs1Niw5IEBAIHByb21pc2VfdGVzdChmdW5jdGlv
bih0KSB7CiAgICAgICAgICAgICAgICdtb2RlPWNvcnMgY3JlZGVudGlhbHM9c2FtZS1vcmlnaW4n
LAogICAgICAgICAgICAgICAnVGhlIHJlcXVlc3QgbW9kZSBhbmQgY3JlZGVudGlhbHMgZm9yIG90
aGVyIG9yaWdpbiBIVE1MSW1wb3J0ICcgKwogICAgICAgICAgICAgICAnZnJvbSBvdGhlciBvcmln
aW4gSFRNTEltcG9ydCBtdXN0IGJlIHNldCBjb3JyZWN0bHkuJyk7Ci0gICAgICAgIH0pOworCisg
ICAgICAgICAgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfZG9uZSh0LCBTQ09QRSk7Cisg
ICAgICAgIH0pCisgICAgICAuY2F0Y2godW5yZWFjaGVkX3JlamVjdGlvbih0KSk7CiAgIH0sICdW
ZXJpZnkgdGhlIEZldGNoRXZlbnQgZm9yIEhUTUxJbXBvcnRzJyk7CiA8L3NjcmlwdD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLXJlcXVlc3Qtbm8tZnJlc2huZXNzLWhlYWRl
cnMuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLXJlcXVlc3Qtbm8tZnJlc2hu
ZXNzLWhlYWRlcnMuaHR0cHMuaHRtbAppbmRleCAwM2I3ZDM1NzYxMGE5MDRlZDI2NGI2OTEwNTRi
NjAyNWY3ZmEyNDE0Li44MjliMGNmMjU5NGI1ODkyOWFkMjVkMDRlNTkwMDY2NGJiOTJkMTFlIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1yZXF1ZXN0LW5vLWZyZXNobmVzcy1o
ZWFkZXJzLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtcmVxdWVzdC1u
by1mcmVzaG5lc3MtaGVhZGVycy5odHRwcy5odG1sCkBAIC00LDE2ICs0LDEyIEBACiA8c2NyaXB0
IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0
IHNyYz0icmVzb3VyY2VzL3Rlc3QtaGVscGVycy5zdWIuanM/cGlwZT1zdWIiPjwvc2NyaXB0Pgog
PHNjcmlwdD4KLXByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7Cithc3luY190ZXN0KGZ1bmN0aW9u
KHQpIHsKICAgICB2YXIgU0NPUEUgPSAncmVzb3VyY2VzL2ZldGNoLXJlcXVlc3Qtbm8tZnJlc2hu
ZXNzLWhlYWRlcnMtaWZyYW1lLmh0bWwnOwogICAgIHZhciBTQ1JJUFQgPSAncmVzb3VyY2VzL2Zl
dGNoLXJlcXVlc3Qtbm8tZnJlc2huZXNzLWhlYWRlcnMtd29ya2VyLmpzJzsKICAgICB2YXIgd29y
a2VyOwotICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0
LCBTQ1JJUFQsIFNDT1BFKQorICAgIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lz
dGVyKHQsIFNDUklQVCwgU0NPUEUpCiAgICAgICAudGhlbihmdW5jdGlvbihyZWdpc3RyYXRpb24p
IHsKLSAgICAgICAgICB0LmFkZF9jbGVhbnVwKGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICBy
ZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcih0LCBTQ09QRSk7Ci0gICAgICAgICAgICB9
KTsKLQogICAgICAgICAgIHdvcmtlciA9IHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nOwogICAgICAg
ICAgIHJldHVybiB3YWl0X2Zvcl9zdGF0ZSh0LCB3b3JrZXIsICdhY3RpdmF0ZWQnKTsKICAgICAg
ICAgfSkKQEAgLTQyLDE0ICszOCwxNiBAQCBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewogICAg
ICAgICAgICAgJ2lmLW5vbmUtbWF0Y2gnOiB0cnVlLAogICAgICAgICAgICAgJ2lmLW1vZGlmaWVk
LXNpbmNlJzogdHJ1ZQogICAgICAgICAgIH07Ci0gICAgICAgICAgbXNnLmRhdGEucmVxdWVzdHMu
Zm9yRWFjaChmdW5jdGlvbihyZXF1ZXN0KSB7Ci0gICAgICAgICAgICAgIHJlcXVlc3QuaGVhZGVy
cy5mb3JFYWNoKGZ1bmN0aW9uKGhlYWRlcikgeworICAgICAgICAgIG1zZy5kYXRhLnJlcXVlc3Rz
LmZvckVhY2godC5zdGVwX2Z1bmMoZnVuY3Rpb24ocmVxdWVzdCkgeworICAgICAgICAgICAgICBy
ZXF1ZXN0LmhlYWRlcnMuZm9yRWFjaCh0LnN0ZXBfZnVuYyhmdW5jdGlvbihoZWFkZXIpIHsKICAg
ICAgICAgICAgICAgICAgIGFzc2VydF9mYWxzZSgKICAgICAgICAgICAgICAgICAgICAgICAhIWZy
ZXNobmVzc19oZWFkZXJzW2hlYWRlclswXV0sCiAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVy
WzBdICsgJyBoZWFkZXIgbXVzdCBub3QgYmUgc2V0IGluIHRoZSAnICsKICAgICAgICAgICAgICAg
ICAgICAgICAnRmV0Y2hFdmVudFwncyByZXF1ZXN0LiAodXJsID0gJyArIHJlcXVlc3QudXJsICsg
JyknKTsKLSAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIH0pCi0gICAgICAgIH0pOwor
ICAgICAgICAgICAgICAgIH0pKTsKKyAgICAgICAgICAgIH0pKQorICAgICAgICAgIHNlcnZpY2Vf
d29ya2VyX3VucmVnaXN0ZXJfYW5kX2RvbmUodCwgU0NPUEUpOworICAgICAgICB9KQorICAgICAg
LmNhdGNoKHVucmVhY2hlZF9yZWplY3Rpb24odCkpOwogICB9LCAnVGhlIGhlYWRlcnMgb2YgRmV0
Y2hFdmVudCBzaG91bGRuXCd0IGNvbnRhaW4gZnJlc2huZXNzIGhlYWRlcnMuJyk7CiA8L3Njcmlw
dD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLXJlcXVlc3QtcmVkaXJlY3Qu
aHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLXJlcXVlc3QtcmVkaXJlY3QuaHR0
cHMuaHRtbAppbmRleCA1N2ZiOGViNGM5NWQ1NGIyMGQ2NzQ3MjgyNzBlMTQwZGIwZjZiNDczLi5l
OGU5MGNmMWViMzdjZmNlOThmODAyYTBkZDI1YzI3MDI5MzhjY2IyIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9mZXRjaC1yZXF1ZXN0LXJlZGlyZWN0Lmh0dHBzLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvZmV0Y2gtcmVxdWVzdC1yZWRpcmVjdC5odHRwcy5odG1sCkBAIC03NCw4
ICs3NCw2IEBAIHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7CiAgICAgdmFyIGZyYW1lOwogICAg
IHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCBTQ1JJUFQs
IFNDT1BFKQogICAgICAgLnRoZW4oZnVuY3Rpb24ocmVnaXN0cmF0aW9uKSB7Ci0gICAgICAgICAg
dC5hZGRfY2xlYW51cCgoKSA9PiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyKHQsIFNDT1BFKSk7
Ci0KICAgICAgICAgICB3b3JrZXIgPSByZWdpc3RyYXRpb24uaW5zdGFsbGluZzsKICAgICAgICAg
ICByZXR1cm4gd2FpdF9mb3Jfc3RhdGUodCwgd29ya2VyLCAnYWN0aXZhdGVkJyk7CiAgICAgICAg
IH0pCkBAIC0xODMsNiArMTgxLDcgQEAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICAg
ICAgfSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKCkgewogICAgICAgICAgIGZyYW1lLnJlbW92ZSgp
OworICAgICAgICAgIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX2RvbmUodCwgU0NPUEUp
OwogICAgICAgICB9KTsKICAgfSwgJ1ZlcmlmeSByZWRpcmVjdCBtb2RlIG9mIEZldGNoIEFQSSBh
bmQgU2VydmljZVdvcmtlciBGZXRjaEV2ZW50LicpOwogCkBAIC0yMDksOCArMjA4LDYgQEAgcHJv
bWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICB2YXIgZnJhbWU7CiAgICAgcmV0dXJuIHNlcnZp
Y2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIFNDUklQVCwgU0NPUEUpCiAgICAg
ICAudGhlbihmdW5jdGlvbihyZWdpc3RyYXRpb24pIHsKLSAgICAgICAgICB0LmFkZF9jbGVhbnVw
KCgpID0+IHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXIodCwgU0NPUEUpKTsKLQogICAgICAgICAg
IHdvcmtlciA9IHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nOwogICAgICAgICAgIHJldHVybiB3YWl0
X2Zvcl9zdGF0ZSh0LCB3b3JrZXIsICdhY3RpdmF0ZWQnKTsKICAgICAgICAgfSkKQEAgLTI3OCw2
ICsyNzUsNyBAQCBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewogICAgICAgICB9KQogICAgICAg
LnRoZW4oZnVuY3Rpb24oKSB7CiAgICAgICAgICAgZnJhbWUucmVtb3ZlKCk7CisgICAgICAgICAg
c2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfZG9uZSh0LCBTQ09QRSk7CiAgICAgICAgIH0p
OwogICB9LCAnVmVyaWZ5IHJlZGlyZWN0ZWQgb2YgUmVzcG9uc2UoRmV0Y2ggQVBJKSBhbmQgU2Vy
dmljZVdvcmtlciBGZXRjaEV2ZW50LicpOwogCkBAIC0zMDQsOCArMzAyLDYgQEAgcHJvbWlzZV90
ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICB2YXIgZnJhbWU7CiAgICAgcmV0dXJuIHNlcnZpY2Vfd29y
a2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIFNDUklQVCwgU0NPUEUpCiAgICAgICAudGhl
bihmdW5jdGlvbihyZWdpc3RyYXRpb24pIHsKLSAgICAgICAgICB0LmFkZF9jbGVhbnVwKCgpID0+
IHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXIodCwgU0NPUEUpKTsKLQogICAgICAgICAgIHdvcmtl
ciA9IHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nOwogICAgICAgICAgIHJldHVybiB3YWl0X2Zvcl9z
dGF0ZSh0LCB3b3JrZXIsICdhY3RpdmF0ZWQnKTsKICAgICAgICAgfSkKQEAgLTM3OSw2ICszNzUs
NyBAQCBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewogICAgICAgICB9KQogICAgICAgLnRoZW4o
ZnVuY3Rpb24oKSB7CiAgICAgICAgICAgZnJhbWUucmVtb3ZlKCk7CisgICAgICAgICAgc2Vydmlj
ZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfZG9uZSh0LCBTQ09QRSk7CiAgICAgICAgIH0pOwogICB9
LCAnVmVyaWZ5IHJlZGlyZWN0ZWQgb2YgUmVzcG9uc2UoRmV0Y2ggQVBJKSwgQ2FjaGUgQVBJIGFu
ZCBTZXJ2aWNlV29ya2VyICcgKwogICAgICAnRmV0Y2hFdmVudC4nKTsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL2ZldGNoLXJlcXVlc3QteGhyLXN5bmMuaHR0cHMuaHRtbCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL2ZldGNoLXJlcXVlc3QteGhyLXN5bmMuaHR0cHMuaHRtbAppbmRleCBlYzI3
ZmI4OTgzNDNlNzBhYjI0NDg2OTgzMjEyZWY2YjU3NDRjZjE2Li5mMWU0ZmVjYzFiMzViYTE4Yjg5
YzU3MTBkZTVlZmQ5ZjZjMTE4M2MwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRj
aC1yZXF1ZXN0LXhoci1zeW5jLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0
Y2gtcmVxdWVzdC14aHItc3luYy5odHRwcy5odG1sCkBAIC0xNCw3ICsxNCw3IEBAIHByb21pc2Vf
dGVzdChmdW5jdGlvbih0KSB7CiAgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJf
YW5kX3JlZ2lzdGVyKHQsIHVybCwgc2NvcGUpCiAgICAgICAudGhlbihmdW5jdGlvbihyZWdpc3Ry
YXRpb24pIHsKICAgICAgICAgICB0LmFkZF9jbGVhbnVwKGZ1bmN0aW9uKCkgewotICAgICAgICAg
ICAgICByZXR1cm4gcmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIoKTsKKyAgICAgICAgICAgICAgcmVn
aXN0cmF0aW9uLnVucmVnaXN0ZXIoKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgICAgcmV0
dXJuIHdhaXRfZm9yX3N0YXRlKHQsIHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLCAnYWN0aXZhdGVk
Jyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1yZXNwb25zZS14aHIuaHR0
cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLXJlc3BvbnNlLXhoci5odHRwcy5odG1s
CmluZGV4IDg5MWViMDI5NDIyYjdiZjFjZDU3NTI3MGNmYTQ2MTZiYjgwZGEwYmMuLjc0MTczZThi
OWJkY2M3N2M1Zjg1ODMyZjg1YTVjNDQ4NTZiNzg1NjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL2ZldGNoLXJlc3BvbnNlLXhoci5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL2ZldGNoLXJlc3BvbnNlLXhoci5odHRwcy5odG1sCkBAIC01LDcgKzUsNyBAQAogPHNjcmlw
dCBzcmM9Ii9jb21tb24vZ2V0LWhvc3QtaW5mby5zdWIuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBz
cmM9InJlc291cmNlcy90ZXN0LWhlbHBlcnMuc3ViLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+Ci1w
cm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgeworYXN5bmNfdGVzdChmdW5jdGlvbih0KSB7CiAgICAg
dmFyIFNDT1BFID0gJ3Jlc291cmNlcy9mZXRjaC1yZXNwb25zZS14aHItaWZyYW1lLmh0dHBzLmh0
bWwnOwogICAgIHZhciBTQ1JJUFQgPSAncmVzb3VyY2VzL2ZldGNoLXJlc3BvbnNlLXhoci13b3Jr
ZXIuanMnOwogICAgIHZhciBob3N0X2luZm8gPSBnZXRfaG9zdF9pbmZvKCk7CkBAIC0xNiwxMiAr
MTYsOCBAQCBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewogICAgICAgZS5zb3VyY2UucG9zdE1l
c3NhZ2UoJ0FDSycsIGhvc3RfaW5mb1snSFRUUFNfT1JJR0lOJ10pOwogICAgIH0KIAotICAgIHJl
dHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCBTQ1JJUFQsIFND
T1BFKQorICAgIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIFNDUklQ
VCwgU0NPUEUpCiAgICAgICAudGhlbihmdW5jdGlvbihyZWdpc3RyYXRpb24pIHsKLSAgICAgICAg
ICB0LmFkZF9jbGVhbnVwKGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICByZXR1cm4gc2Vydmlj
ZV93b3JrZXJfdW5yZWdpc3Rlcih0LCBTQ09QRSk7Ci0gICAgICAgICAgICB9KTsKLQogICAgICAg
ICAgIHJldHVybiB3YWl0X2Zvcl9zdGF0ZSh0LCByZWdpc3RyYXRpb24uaW5zdGFsbGluZywgJ2Fj
dGl2YXRlZCcpOwogICAgICAgICB9KQogICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7IHJldHVybiB3
aXRoX2lmcmFtZShTQ09QRSk7IH0pCkBAIC0zMCwyMSArMjYsMTggQEAgcHJvbWlzZV90ZXN0KGZ1
bmN0aW9uKHQpIHsKIAogICAgICAgICAgIHQuYWRkX2NsZWFudXAoZnVuY3Rpb24oKSB7CiAgICAg
ICAgICAgICAgIGZyYW1lLnJlbW92ZSgpOworICAgICAgICAgICAgICBzZXJ2aWNlX3dvcmtlcl91
bnJlZ2lzdGVyX2FuZF9kb25lKHQsIFNDT1BFKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAg
ICAgY2hhbm5lbCA9IG5ldyBNZXNzYWdlQ2hhbm5lbCgpOwotICAgICAgICAgIHZhciBvblBvcnRN
c2cgPSBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlKSB7Ci0gICAgICAgICAgICAgIGNoYW5u
ZWwucG9ydDEub25tZXNzYWdlID0gcmVzb2x2ZTsKKyAgICAgICAgICBjaGFubmVsLnBvcnQxLm9u
bWVzc2FnZSA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgICAgYXNzZXJ0
X2VxdWFscyhlLmRhdGEucmVzdWx0cywgJ2ZpbmlzaCcpOworICAgICAgICAgICAgICB0LmRvbmUo
KTsKICAgICAgICAgICAgIH0pOwotCiAgICAgICAgICAgZnJhbWUuY29udGVudFdpbmRvdy5wb3N0
TWVzc2FnZSgnU1RBUlQnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaG9zdF9pbmZvWydIVFRQU19PUklHSU4nXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFtjaGFubmVsLnBvcnQyXSk7Ci0KLSAgICAgICAgICByZXR1cm4gb25Q
b3J0TXNnOwogICAgICAgICB9KQotICAgICAgLnRoZW4oZnVuY3Rpb24oZSkgewotICAgICAgICAg
IGFzc2VydF9lcXVhbHMoZS5kYXRhLnJlc3VsdHMsICdmaW5pc2gnKTsKLSAgICAgICAgfSk7Cisg
ICAgICAuY2F0Y2godW5yZWFjaGVkX3JlamVjdGlvbih0KSk7CiAgIH0sICdWZXJpZnkgdGhlIHJl
c3BvbnNlIG9mIEZldGNoRXZlbnQgdXNpbmcgWE1MSHR0cFJlcXVlc3QnKTsKIDwvc2NyaXB0Pgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtd2FpdHMtZm9yLWFjdGl2YXRlLmh0
dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC13YWl0cy1mb3ItYWN0aXZhdGUuaHR0
cHMuaHRtbAppbmRleCA4ODljNWVjN2JiYjkzNjc3MTUxMThmNzhhZTgxYTk5NDg1NmFkOTlmLi4y
YzlkNGE1OWRjMThkYzEyNWFiYzJmMjc5ZWY4ZTY1MTBkZGIzNDgzIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9mZXRjaC13YWl0cy1mb3ItYWN0aXZhdGUuaHR0cHMuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci9mZXRjaC13YWl0cy1mb3ItYWN0aXZhdGUuaHR0cHMuaHRtbApAQCAt
MTMsMTUgKzEzLDExIEBAIHZhciB3b3JrZXIgPSAncmVzb3VyY2VzL2ZldGNoLXdhaXRzLWZvci1h
Y3RpdmF0ZS13b3JrZXIuanMnOwogdmFyIGV4cGVjdGVkX3VybCA9IG5vcm1hbGl6ZVVSTCh3b3Jr
ZXIpOwogdmFyIHNjb3BlID0gJ3Jlc291cmNlcy9mZXRjaC13YWl0cy1mb3ItYWN0aXZhdGUvJzsK
IAotcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKK2FzeW5jX3Rlc3QoZnVuY3Rpb24odCkgewog
ICB2YXIgcmVnaXN0cmF0aW9uOwogICB2YXIgZnJhbWVMb2FkUHJvbWlzZTsKICAgdmFyIGZyYW1l
OwotICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgd29y
a2VyLCBzY29wZSkudGhlbihmdW5jdGlvbihyZWcpIHsKLSAgICB0LmFkZF9jbGVhbnVwKGZ1bmN0
aW9uKCkgewotICAgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXIodCwgc2NvcGUp
OwotICAgIH0pOwotCisgIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQs
IHdvcmtlciwgc2NvcGUpLnRoZW4oZnVuY3Rpb24ocmVnKSB7CiAgICAgcmVnaXN0cmF0aW9uID0g
cmVnOwogICAgIHJldHVybiB3YWl0X2Zvcl9zdGF0ZSh0LCByZWcuaW5zdGFsbGluZywgJ2FjdGl2
YXRpbmcnKTsKICAgfSkudGhlbihmdW5jdGlvbigpIHsKQEAgLTU5LDcgKzU1LDggQEAgcHJvbWlz
ZV90ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi5hY3Rp
dmUuc3RhdGUsICdhY3RpdmF0ZWQnLAogICAgICAgICAgICAgICAgICAgJ2FjdGl2ZSB3b3JrZXIg
c2hvdWxkIGJlIGluIGFjdGl2YXRlZCBzdGF0ZScpOwogICAgIGZyYW1lLnJlbW92ZSgpOwotICB9
KTsKKyAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfZG9uZSh0LCBzY29w
ZSk7CisgIH0pLmNhdGNoKHVucmVhY2hlZF9yZWplY3Rpb24odCkpOwogfSwgJ0ZldGNoIGV2ZW50
cyBzaG91bGQgd2FpdCBmb3IgdGhlIGFjdGl2YXRlIGV2ZW50IHRvIGNvbXBsZXRlLicpOwogCiA8
L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2dldHJlZ2lzdHJhdGlvbi5o
dHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9nZXRyZWdpc3RyYXRpb24uaHR0
cHMtZXhwZWN0ZWQudHh0CmluZGV4IDI1MTM1ZGQxOTgwOWFjNDVmYjQ3YmZiNDkxYzA4ZTU3NmYx
ZGI4MWIuLjkzOTY2NjJlOTQxNzM5ZWRhZjk0OWQzMmRlZTcxNDZlY2UwZTgxY2QgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL2dldHJlZ2lzdHJhdGlvbi5odHRwcy1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvZ2V0cmVnaXN0cmF0aW9uLmh0dHBzLWV4cGVjdGVkLnR4
dApAQCAtNCw1ICs0LDQgQEAgUEFTUyBSZWdpc3RlciB0aGVuIGdldFJlZ2lzdHJhdGlvbgogUEFT
UyBSZWdpc3RlciB0aGVuIGdldFJlZ2lzdHJhdGlvbiB3aXRoIGEgVVJMIGhhdmluZyBhIGZyYWdt
ZW50IAogUEFTUyBnZXRSZWdpc3RyYXRpb24gd2l0aCBhIGNyb3NzIG9yaWdpbiBVUkwgCiBQQVNT
IFJlZ2lzdGVyIHRoZW4gVW5yZWdpc3RlciB0aGVuIGdldFJlZ2lzdHJhdGlvbiAKLVBBU1MgUmVn
aXN0ZXIgdGhlbiBVbnJlZ2lzdGVyIHRoZW4gZ2V0UmVnaXN0cmF0aW9uIGluIGNvbnRyb2xsZWQg
aWZyYW1lIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9nZXRyZWdpc3RyYXRpb24u
aHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2dldHJlZ2lzdHJhdGlvbi5odHRwcy5odG1s
CmluZGV4IDYzNGMyZWZhMTI0NjFhODExZDhlNDYzNDVlY2UwMjk4MDg2ZjY0YjIuLmM4NmZkYTUw
ZDUyZTI3MGM3ZjhhMjFmMDM4OTFmYTYzMmQwMmZmYjggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL2dldHJlZ2lzdHJhdGlvbi5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L2dldHJlZ2lzdHJhdGlvbi5odHRwcy5odG1sCkBAIC0xNCwxNiArMTQsMTIgQEAgYXN5bmNfdGVz
dChmdW5jdGlvbih0KSB7CiAgICAgICAuY2F0Y2godW5yZWFjaGVkX3JlamVjdGlvbih0KSk7CiAg
IH0sICdnZXRSZWdpc3RyYXRpb24nKTsKIAotcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKK2Fz
eW5jX3Rlc3QoZnVuY3Rpb24odCkgewogICAgIHZhciBzY29wZSA9ICdyZXNvdXJjZXMvc2NvcGUv
Z2V0cmVnaXN0cmF0aW9uL25vcm1hbCc7CiAgICAgdmFyIHJlZ2lzdHJhdGlvbjsKLSAgICByZXR1
cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgJ3Jlc291cmNlcy9l
bXB0eS13b3JrZXIuanMnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzY29wZSkKKyAgICBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdp
c3Rlcih0LCAncmVzb3VyY2VzL2VtcHR5LXdvcmtlci5qcycsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc2NvcGUpCiAgICAgICAudGhlbihmdW5jdGlvbihyKSB7
Ci0gICAgICAgICAgdC5hZGRfY2xlYW51cChmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgcmV0
dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXIodCwgc2NvcGUpOwotICAgICAgICAgICAgfSk7
Ci0KICAgICAgICAgICByZWdpc3RyYXRpb24gPSByOwogICAgICAgICAgIHJldHVybiBuYXZpZ2F0
b3Iuc2VydmljZVdvcmtlci5nZXRSZWdpc3RyYXRpb24oc2NvcGUpOwogICAgICAgICB9KQpAQCAt
MzEsMjAgKzI3LDE4IEBAIHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7CiAgICAgICAgICAgYXNz
ZXJ0X2VxdWFscygKICAgICAgICAgICAgICAgdmFsdWUsIHJlZ2lzdHJhdGlvbiwKICAgICAgICAg
ICAgICAgJ2dldFJlZ2lzdHJhdGlvbiBzaG91bGQgcmVzb2x2ZSB0byB0aGUgc2FtZSByZWdpc3Ry
YXRpb24gb2JqZWN0Jyk7Ci0gICAgICAgIH0pOworICAgICAgICAgIHNlcnZpY2Vfd29ya2VyX3Vu
cmVnaXN0ZXJfYW5kX2RvbmUodCwgc2NvcGUpOworICAgICAgICB9KQorICAgICAgLmNhdGNoKHVu
cmVhY2hlZF9yZWplY3Rpb24odCkpOwogICB9LCAnUmVnaXN0ZXIgdGhlbiBnZXRSZWdpc3RyYXRp
b24nKTsKIAotcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKK2FzeW5jX3Rlc3QoZnVuY3Rpb24o
dCkgewogICAgIHZhciBzY29wZSA9ICdyZXNvdXJjZXMvc2NvcGUvZ2V0cmVnaXN0cmF0aW9uL3Vy
bC13aXRoLWZyYWdtZW50JzsKICAgICB2YXIgZG9jdW1lbnRVUkwgPSBzY29wZSArICcjcmVmJzsK
ICAgICB2YXIgcmVnaXN0cmF0aW9uOwotICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lz
dGVyX2FuZF9yZWdpc3Rlcih0LCAncmVzb3VyY2VzL2VtcHR5LXdvcmtlci5qcycsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjb3BlKQorICAgIHNl
cnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsICdyZXNvdXJjZXMvZW1wdHkt
d29ya2VyLmpzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz
Y29wZSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKHIpIHsKLSAgICAgICAgICB0LmFkZF9jbGVhbnVw
KGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdp
c3Rlcih0LCBzY29wZSk7Ci0gICAgICAgICAgICB9KTsKLQogICAgICAgICAgIHJlZ2lzdHJhdGlv
biA9IHI7CiAgICAgICAgICAgcmV0dXJuIG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLmdldFJlZ2lz
dHJhdGlvbihkb2N1bWVudFVSTCk7CiAgICAgICAgIH0pCkBAIC01Miw3ICs0Niw5IEBAIHByb21p
c2VfdGVzdChmdW5jdGlvbih0KSB7CiAgICAgICAgICAgYXNzZXJ0X2VxdWFscygKICAgICAgICAg
ICAgICAgdmFsdWUsIHJlZ2lzdHJhdGlvbiwKICAgICAgICAgICAgICAgJ2dldFJlZ2lzdHJhdGlv
biBzaG91bGQgcmVzb2x2ZSB0byB0aGUgc2FtZSByZWdpc3RyYXRpb24gb2JqZWN0Jyk7Ci0gICAg
ICAgIH0pOworICAgICAgICAgIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX2RvbmUodCwg
c2NvcGUpOworICAgICAgICB9KQorICAgICAgLmNhdGNoKHVucmVhY2hlZF9yZWplY3Rpb24odCkp
OwogICB9LCAnUmVnaXN0ZXIgdGhlbiBnZXRSZWdpc3RyYXRpb24gd2l0aCBhIFVSTCBoYXZpbmcg
YSBmcmFnbWVudCcpOwogCiBhc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKQEAgLTg4LDIxICs4NCw0
IEBAIGFzeW5jX3Rlc3QoZnVuY3Rpb24odCkgewogICAgICAgLmNhdGNoKHVucmVhY2hlZF9yZWpl
Y3Rpb24odCkpOwogICB9LCAnUmVnaXN0ZXIgdGhlbiBVbnJlZ2lzdGVyIHRoZW4gZ2V0UmVnaXN0
cmF0aW9uJyk7CiAKLQotcHJvbWlzZV90ZXN0KGFzeW5jIGZ1bmN0aW9uKHQpIHsKLSAgY29uc3Qg
c2NvcGUgPSAncmVzb3VyY2VzL3Njb3BlL2dldHJlZ2lzdHJhdGlvbi9yZWdpc3Rlci11bnJlZ2lz
dGVyJzsKLSAgY29uc3QgcmVnaXN0cmF0aW9uID0gYXdhaXQgc2VydmljZV93b3JrZXJfdW5yZWdp
c3Rlcl9hbmRfcmVnaXN0ZXIoCi0gICAgdCwgJ3Jlc291cmNlcy9lbXB0eS13b3JrZXIuanMnLCBz
Y29wZQotICApOwotCi0gIGNvbnN0IGZyYW1lID0gYXdhaXQgd2l0aF9pZnJhbWUoc2NvcGUpOwot
ICB0LmFkZF9jbGVhbnVwKCgpID0+IGZyYW1lLnJlbW92ZSgpKTsKLQotICBjb25zdCBmcmFtZU5h
diA9IGZyYW1lLmNvbnRlbnRXaW5kb3cubmF2aWdhdG9yOwotICBhd2FpdCByZWdpc3RyYXRpb24u
dW5yZWdpc3RlcigpOwotICBjb25zdCB2YWx1ZSA9IGF3YWl0IGZyYW1lTmF2LnNlcnZpY2VXb3Jr
ZXIuZ2V0UmVnaXN0cmF0aW9uKHNjb3BlKTsKLQotICBhc3NlcnRfZXF1YWxzKHZhbHVlLCB1bmRl
ZmluZWQsICdnZXRSZWdpc3RyYXRpb24gc2hvdWxkIHJlc29sdmUgd2l0aCB1bmRlZmluZWQnKTsK
LX0sICdSZWdpc3RlciB0aGVuIFVucmVnaXN0ZXIgdGhlbiBnZXRSZWdpc3RyYXRpb24gaW4gY29u
dHJvbGxlZCBpZnJhbWUnKTsKLQogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9pbXBvcnQtbW9kdWxlLXNjcmlwdHMuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvaW1wb3J0LW1vZHVsZS1zY3JpcHRzLmh0dHBzLWV4cGVjdGVkLnR4dApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDQyZTUwNzJjNjRmZGY3OTU0MTAyY2JlNjhjNTRiODRi
MTVmNWMwYi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci9pbXBvcnQtbW9kdWxlLXNjcmlwdHMuaHR0cHMtZXhwZWN0ZWQudHh0
CisrKyAvZGV2L251bGwKQEAgLTEsNCArMCwwIEBACi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMjc6
IFJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiB0ZXN0Q2FzZXMKLQotRkFJTCBU
ZXN0cyBmb3IgbW9kdWxlIGltcG9ydDogU2VydmljZVdvcmtlciBSZWZlcmVuY2VFcnJvcjogQ2Fu
J3QgZmluZCB2YXJpYWJsZTogdGVzdENhc2VzCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL2ltcG9ydC1tb2R1bGUtc2NyaXB0cy5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
aW1wb3J0LW1vZHVsZS1zY3JpcHRzLmh0dHBzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDdiY2E4ZGU2NGY1YmM5NjY0OTExYmQxYzVkYzg4MzU2NzY4MWFmYjguLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
aW1wb3J0LW1vZHVsZS1zY3JpcHRzLmh0dHBzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyOSAr
MCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5U
ZXN0cyBmb3IgbW9kdWxlIGltcG9ydDogU2VydmljZVdvcmtlcjwvdGl0bGU+Ci08c2NyaXB0IHNy
Yz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iL3Jl
c291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVz
b3VyY2VzL3Rlc3QtaGVscGVycy5zdWIuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii93b3Jr
ZXJzL21vZHVsZXMvcmVzb3VyY2VzL2ltcG9ydC10ZXN0LWNhc2VzLmpzIj48L3NjcmlwdD4KLTxi
b2R5PgotPHNjcmlwdD4KLWZ1bmN0aW9uIGltcG9ydF90ZXN0KHRlc3RDYXNlKSB7Ci0gIHByb21p
c2VfdGVzdChhc3luYyB0ID0+IHsKLSAgICBjb25zdCBtc2dQcm9taXNlID0gbmV3IFByb21pc2Uo
cmVzb2x2ZSA9PiB7Ci0gICAgICBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5vbm1lc3NhZ2UgPSBy
ZXNvbHZlOwotICAgIH0pOwotICAgIGF3YWl0IHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXIodCwg
dGVzdENhc2Uuc2NyaXB0VVJMKTsKLSAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHNlcnZpY2Vfd29y
a2VyX3VucmVnaXN0ZXIodCwgdGVzdENhc2Uuc2NyaXB0VVJMKSk7Ci0gICAgY29uc3QgcmVnaXN0
cmF0aW9uID0gYXdhaXQgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoCi0gICAgICB0
ZXN0Q2FzZS5zY3JpcHRVUkwsCi0gICAgICB7IHNjb3BlOiB0ZXN0Q2FzZS5zY3JpcHRVUkwsIHR5
cGU6ICdtb2R1bGUnIH0pOwotICAgIHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLnBvc3RNZXNzYWdl
KAotICAgICAgJ1NlbmQgbWVzc2FnZSBmb3IgdGVzdHMgZnJvbSBtYWluIHNjcmlwdC4nKTsKLSAg
ICBjb25zdCBtc2dFdmVudCA9IGF3YWl0IG1zZ1Byb21pc2U7Ci0gICAgYXNzZXJ0X2FycmF5X2Vx
dWFscyhtc2dFdmVudC5kYXRhLCB0ZXN0Q2FzZS5leHBlY3RhdGlvbik7Ci0gIH0sIHRlc3RDYXNl
LmRlc2NyaXB0aW9uKTsKLX0KLQotdGVzdENhc2VzLmZvckVhY2goaW1wb3J0X3Rlc3QpOwotPC9z
Y3JpcHQ+Ci08L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9pbXBvcnQtc2Ny
aXB0cy1taW1lLXR5cGVzLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2lt
cG9ydC1zY3JpcHRzLW1pbWUtdHlwZXMuaHR0cHMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA3YjFjZTM0MDQxNTQ0MGQxZDAwNDNlYTJjMjIyYzFkZjdhZWUxOTUy
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL2ltcG9ydC1zY3JpcHRzLW1pbWUtdHlwZXMuaHR0cHMtZXhwZWN0ZWQudHh0Cisr
KyAvZGV2L251bGwKQEAgLTEsMjIgKzAsMCBAQAotCi1QQVNTIEdsb2JhbCBzZXR1cCAKLVBBU1Mg
RmV0Y2ggaW1wb3J0U2NyaXB0cyB0ZXN0cyBmcm9tIHNlcnZpY2Ugd29ya2VyIAotUEFTUyBJbXBv
cnRpbmcgc2NyaXB0IHdpdGggbm8gTUlNRSB0eXBlICAKLVBBU1MgSW1wb3J0aW5nIHNjcmlwdCB3
aXRoIGJhZCBNSU1FIHR5cGUgdGV4dC9wbGFpbiAKLVBBU1MgSW1wb3J0aW5nIHNjcmlwdCB3aXRo
IHZhbGlkIEphdmFTY3JpcHQgTUlNRSB0eXBlIGFwcGxpY2F0aW9uL2VjbWFzY3JpcHQgCi1QQVNT
IEltcG9ydGluZyBzY3JpcHQgd2l0aCB2YWxpZCBKYXZhU2NyaXB0IE1JTUUgdHlwZSBhcHBsaWNh
dGlvbi9qYXZhc2NyaXB0IAotUEFTUyBJbXBvcnRpbmcgc2NyaXB0IHdpdGggdmFsaWQgSmF2YVNj
cmlwdCBNSU1FIHR5cGUgYXBwbGljYXRpb24veC1lY21hc2NyaXB0IAotUEFTUyBJbXBvcnRpbmcg
c2NyaXB0IHdpdGggdmFsaWQgSmF2YVNjcmlwdCBNSU1FIHR5cGUgYXBwbGljYXRpb24veC1qYXZh
c2NyaXB0IAotUEFTUyBJbXBvcnRpbmcgc2NyaXB0IHdpdGggdmFsaWQgSmF2YVNjcmlwdCBNSU1F
IHR5cGUgdGV4dC9lY21hc2NyaXB0IAotUEFTUyBJbXBvcnRpbmcgc2NyaXB0IHdpdGggdmFsaWQg
SmF2YVNjcmlwdCBNSU1FIHR5cGUgdGV4dC9qYXZhc2NyaXB0IAotUEFTUyBJbXBvcnRpbmcgc2Ny
aXB0IHdpdGggdmFsaWQgSmF2YVNjcmlwdCBNSU1FIHR5cGUgdGV4dC9qYXZhc2NyaXB0MS4wIAot
UEFTUyBJbXBvcnRpbmcgc2NyaXB0IHdpdGggdmFsaWQgSmF2YVNjcmlwdCBNSU1FIHR5cGUgdGV4
dC9qYXZhc2NyaXB0MS4xIAotUEFTUyBJbXBvcnRpbmcgc2NyaXB0IHdpdGggdmFsaWQgSmF2YVNj
cmlwdCBNSU1FIHR5cGUgdGV4dC9qYXZhc2NyaXB0MS4yIAotUEFTUyBJbXBvcnRpbmcgc2NyaXB0
IHdpdGggdmFsaWQgSmF2YVNjcmlwdCBNSU1FIHR5cGUgdGV4dC9qYXZhc2NyaXB0MS4zIAotUEFT
UyBJbXBvcnRpbmcgc2NyaXB0IHdpdGggdmFsaWQgSmF2YVNjcmlwdCBNSU1FIHR5cGUgdGV4dC9q
YXZhc2NyaXB0MS40IAotUEFTUyBJbXBvcnRpbmcgc2NyaXB0IHdpdGggdmFsaWQgSmF2YVNjcmlw
dCBNSU1FIHR5cGUgdGV4dC9qYXZhc2NyaXB0MS41IAotUEFTUyBJbXBvcnRpbmcgc2NyaXB0IHdp
dGggdmFsaWQgSmF2YVNjcmlwdCBNSU1FIHR5cGUgdGV4dC9qc2NyaXB0IAotUEFTUyBJbXBvcnRp
bmcgc2NyaXB0IHdpdGggdmFsaWQgSmF2YVNjcmlwdCBNSU1FIHR5cGUgdGV4dC9saXZlc2NyaXB0
IAotUEFTUyBJbXBvcnRpbmcgc2NyaXB0IHdpdGggdmFsaWQgSmF2YVNjcmlwdCBNSU1FIHR5cGUg
dGV4dC94LWVjbWFzY3JpcHQgCi1QQVNTIEltcG9ydGluZyBzY3JpcHQgd2l0aCB2YWxpZCBKYXZh
U2NyaXB0IE1JTUUgdHlwZSB0ZXh0L3gtamF2YXNjcmlwdCAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvaW1wb3J0LXNjcmlwdHMtbWltZS10eXBlcy5odHRwcy5odG1sIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvaW1wb3J0LXNjcmlwdHMtbWltZS10eXBlcy5odHRwcy5odG1sCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxNjc5ODMxZDBmMmI5OGFlZTIyODk4ZDgyMDM3M2U4MDA3
OWZiZTAwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL2ltcG9ydC1zY3JpcHRzLW1pbWUtdHlwZXMuaHR0cHMuaHRtbAorKysg
L2Rldi9udWxsCkBAIC0xLDMwICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPG1ldGEgY2hhcnNl
dD0idXRmLTgiPgotPHRpdGxlPlRlc3RzIGZvciBpbXBvcnRTY3JpcHRzOiBNSU1FIHR5cGVzPC90
aXRsZT4KLTxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGVzdC1oZWxwZXJzLnN1Yi5qcyI+PC9zY3JpcHQ+Ci08
Ym9keT4KLTxzY3JpcHQ+Ci0vKioKLSAqIFRlc3QgdGhhdCBhIFNlcnZpY2UgV29ya2VyJ3MgaW1w
b3J0U2NyaXB0KCkgb25seSBhY2NlcHRzIHZhbGlkIE1JTUUgdHlwZXMuCi0gKi8KLWxldCBzZXJ2
aWNlV29ya2VyID0gbnVsbDsKLQotcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewotICBjb25zdCBz
Y29wZSA9ICdyZXNvdXJjZXMvaW1wb3J0LXNjcmlwdHMtbWltZS10eXBlcyc7Ci0gIGNvbnN0IHJl
Z2lzdHJhdGlvbiA9IGF3YWl0IHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVy
KHQsCi0gICAgJ3Jlc291cmNlcy9pbXBvcnQtc2NyaXB0cy1taW1lLXR5cGVzLXdvcmtlci5qcycs
IHNjb3BlKTsKLQotICBhZGRfY29tcGxldGlvbl9jYWxsYmFjaygoKSA9PiB7IHJlZ2lzdHJhdGlv
bi51bnJlZ2lzdGVyKCk7IH0pOwotCi0gIGF3YWl0IHdhaXRfZm9yX3N0YXRlKHQsIHJlZ2lzdHJh
dGlvbi5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7Ci0KLSAgc2VydmljZVdvcmtlciA9IHJlZ2lz
dHJhdGlvbi5hY3RpdmU7Ci19LCAnR2xvYmFsIHNldHVwJyk7Ci0KLXByb21pc2VfdGVzdChhc3lu
YyB0ID0+IHsKLSAgYXdhaXQgZmV0Y2hfdGVzdHNfZnJvbV93b3JrZXIoc2VydmljZVdvcmtlcik7
Ci19LCAnRmV0Y2ggaW1wb3J0U2NyaXB0cyB0ZXN0cyBmcm9tIHNlcnZpY2Ugd29ya2VyJykKLTwv
c2NyaXB0PgotPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvaW1wb3J0LXNj
cmlwdHMtcmVzb3VyY2UtbWFwLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L2ltcG9ydC1zY3JpcHRzLXJlc291cmNlLW1hcC5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggZjgz
MWE4ZWQ3NGRlY2JkMWUyYzdlMjUwYzI0MWU5MzhlNDMxZmZkOS4uMmQ5NTdmMWRiNGY5MGY5NWRi
YzQyYmE1MmUzZDcyYWYzY2ZhNGJlNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvaW1w
b3J0LXNjcmlwdHMtcmVzb3VyY2UtbWFwLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9pbXBvcnQtc2NyaXB0cy1yZXNvdXJjZS1tYXAuaHR0cHMtZXhwZWN0ZWQudHh0
CkBAIC0xLDQgKzEsMyBAQAogCiBQQVNTIGltcG9ydCB0aGUgc2FtZSBzY3JpcHQgVVJMIG11bHRp
cGxlIHRpbWVzIAotUEFTUyBjYWxsIGltcG9ydFNjcmlwdHMoKSB3aXRoIG11bHRpcGxlIGFyZ3Vt
ZW50cyAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvaW1wb3J0LXNjcmlwdHMtcmVz
b3VyY2UtbWFwLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9pbXBvcnQtc2NyaXB0cy1y
ZXNvdXJjZS1tYXAuaHR0cHMuaHRtbAppbmRleCA0NzQyYmQwMTI2ODM2MDQ3N2JmNjA2MWY4NTA1
ZmU5YTNiN2NhZGI3Li5hNWUyNjc4NWZhYzRhYTEyNjc3NjJmZjU4YzQ4OTY5ZGM4YWNiMDE3IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9pbXBvcnQtc2NyaXB0cy1yZXNvdXJjZS1tYXAu
aHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9pbXBvcnQtc2NyaXB0cy1yZXNvdXJj
ZS1tYXAuaHR0cHMuaHRtbApAQCAtMSwzNCArMSwyMyBAQAogPCFET0NUWVBFIGh0bWw+Ci08bWV0
YSBjaGFyc2V0PSJ1dGYtOCIgLz4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KIDx0aXRsZT5UZXN0
cyBmb3IgaW1wb3J0U2NyaXB0czogc2NyaXB0IHJlc291cmNlIG1hcDwvdGl0bGU+CiA8c2NyaXB0
IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0i
L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL3Rlc3QtaGVscGVycy5zdWIuanMiPjwvc2NyaXB0PgogPGJvZHk+Ci0gIDxzY3Jp
cHQ+Ci0gICAgLy8gVGhpcyB0ZXN0IHJlZ2lzdGVycyBhIHdvcmtlciB0aGF0IGltcG9ydHMgYSBz
Y3JpcHQgbXVsdGlwbGUgdGltZXMuIFRoZQotICAgIC8vIHNjcmlwdCBzaG91bGQgYmUgc3RvcmVk
IG9uIHRoZSBmaXJzdCBpbXBvcnQgYW5kIHRoZXJlYWZ0ZXIgdGhhdCBzdG9yZWQKLSAgICAvLyBz
Y3JpcHQgc2hvdWxkIGJlIGxvYWRlZC4gVGhlIHdvcmtlciBhc3NlcnRzIHRoYXQgdGhlIHN0b3Jl
ZCBzY3JpcHQgd2FzCi0gICAgLy8gbG9hZGVkOyBpZiB0aGUgYXNzZXJ0IGZhaWxzIHRoZW4gcmVn
aXN0cmF0aW9uIGZhaWxzLgotCi0gICAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewotICAgICAg
Y29uc3QgU0NPUEUgPSAicmVzb3VyY2VzL2ltcG9ydC1zY3JpcHRzLXJlc291cmNlLW1hcCI7Ci0g
ICAgICBjb25zdCBTQ1JJUFQgPSAicmVzb3VyY2VzL2ltcG9ydC1zY3JpcHRzLXJlc291cmNlLW1h
cC13b3JrZXIuanMiOwotICAgICAgYXdhaXQgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcih0LCBT
Q09QRSk7Ci0gICAgICBjb25zdCByZWdpc3RyYXRpb24gPSBhd2FpdCBuYXZpZ2F0b3Iuc2Vydmlj
ZVdvcmtlci5yZWdpc3RlcihTQ1JJUFQsIHsKLSAgICAgICAgc2NvcGU6IFNDT1BFCi0gICAgICB9
KTsKLSAgICAgIGF3YWl0IHJlZ2lzdHJhdGlvbi51bnJlZ2lzdGVyKCk7Ci0gICAgfSwgImltcG9y
dCB0aGUgc2FtZSBzY3JpcHQgVVJMIG11bHRpcGxlIHRpbWVzIik7Ci0KLSAgICBwcm9taXNlX3Rl
c3QoYXN5bmMgdCA9PiB7Ci0gICAgICBjb25zdCBTQ09QRSA9ICJyZXNvdXJjZXMvaW1wb3J0LXNj
cmlwdHMtZGlmZi1yZXNvdXJjZS1tYXAiOwotICAgICAgY29uc3QgU0NSSVBUID0gInJlc291cmNl
cy9pbXBvcnQtc2NyaXB0cy1kaWZmLXJlc291cmNlLW1hcC13b3JrZXIuanMiOwotICAgICAgYXdh
aXQgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcih0LCBTQ09QRSk7Ci0gICAgICBjb25zdCByZWdp
c3RyYXRpb24gPSBhd2FpdCBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3RlcihTQ1JJUFQs
IHsKLSAgICAgICAgc2NvcGU6IFNDT1BFCi0gICAgICB9KTsKLSAgICAgIGF3YWl0IHJlZ2lzdHJh
dGlvbi51bnJlZ2lzdGVyKCk7Ci0gICAgfSwgImNhbGwgaW1wb3J0U2NyaXB0cygpIHdpdGggbXVs
dGlwbGUgYXJndW1lbnRzIik7Ci0gIDwvc2NyaXB0PgorPHNjcmlwdD4KKy8vIFRoaXMgdGVzdCBy
ZWdpc3RlcnMgYSB3b3JrZXIgdGhhdCBpbXBvcnRzIGEgc2NyaXB0IG11bHRpcGxlIHRpbWVzLiBU
aGUKKy8vIHNjcmlwdCBzaG91bGQgYmUgc3RvcmVkIG9uIHRoZSBmaXJzdCBpbXBvcnQgYW5kIHRo
ZXJlYWZ0ZXIgdGhhdCBzdG9yZWQKKy8vIHNjcmlwdCBzaG91bGQgYmUgbG9hZGVkLiBUaGUgd29y
a2VyIGFzc2VydHMgdGhhdCB0aGUgc3RvcmVkIHNjcmlwdCB3YXMKKy8vIGxvYWRlZDsgaWYgdGhl
IGFzc2VydCBmYWlscyB0aGVuIHJlZ2lzdHJhdGlvbiBmYWlscy4KK3Byb21pc2VfdGVzdCh0ID0+
IHsKKyAgICBjb25zdCBzY29wZSA9ICdyZXNvdXJjZXMvaW1wb3J0LXNjcmlwdHMtcmVzb3VyY2Ut
bWFwJzsKKyAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcih0LCBzY29wZSkKKyAg
ICAgIC50aGVuKCgpID0+IHsKKyAgICAgICAgICByZXR1cm4gbmF2aWdhdG9yLnNlcnZpY2VXb3Jr
ZXIucmVnaXN0ZXIoCisgICAgICAgICAgICAgICdyZXNvdXJjZXMvaW1wb3J0LXNjcmlwdHMtcmVz
b3VyY2UtbWFwLXdvcmtlci5qcycsIHtzY29wZTogc2NvcGV9KTsKKyAgICAgICAgfSkKKyAgICAg
IC50aGVuKHIgPT4gci51bnJlZ2lzdGVyKCkpOworICB9LCAnaW1wb3J0IHRoZSBzYW1lIHNjcmlw
dCBVUkwgbXVsdGlwbGUgdGltZXMnKTsKKzwvc2NyaXB0PgogPC9ib2R5PgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvaW50ZXJmYWNlcy13aW5kb3cuaHR0cHMuaHRtbCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL2ludGVyZmFjZXMtd2luZG93Lmh0dHBzLmh0bWwKaW5kZXggZjcwY2Y0MDkzMWRi
ODgzNTBjNWZiMGY1ZWJiMWZiZDEwZjkxN2RiYS4uODVkN2Y2NDY3ZWU5ODkwNWIxMjdhMDc1ZDRl
MmEyZDMzMTM5NWU3OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvaW50ZXJmYWNlcy13
aW5kb3cuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9pbnRlcmZhY2VzLXdpbmRv
dy5odHRwcy5odG1sCkBAIC0xLDYgKzEsNSBAQAogPCFET0NUWVBFIGh0bWw+CiA8dGl0bGU+U2Vy
dmljZSBXb3JrZXI6IEludGVyZmFjZXM8L3RpdGxlPgotPG1ldGEgbmFtZT0idGltZW91dCIgY29u
dGVudD0ibG9uZyI+CiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9z
Y3JpcHQ+CiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9z
Y3JpcHQ+CiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy9XZWJJRExQYXJzZXIuanMiPjwvc2NyaXB0
PgpAQCAtNDEsNyArNDAsNyBAQCBwcm9taXNlX3Rlc3QoYXN5bmMgKHQpID0+IHsKICAgICAgIHQs
ICdyZXNvdXJjZXMvZW1wdHktd29ya2VyLmpzJywgc2NvcGUpCiAgICAgLnRoZW4oZnVuY3Rpb24o
cmVnaXN0cmF0aW9uKSB7CiAgICAgICAgIHQuYWRkX2NsZWFudXAoZnVuY3Rpb24oKSB7Ci0gICAg
ICAgICAgICByZXR1cm4gcmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIoKTsKKyAgICAgICAgICAgIHJl
Z2lzdHJhdGlvbi51bnJlZ2lzdGVyKCk7CiAgICAgICAgICAgfSk7CiAKICAgICAgICAgd2luZG93
LnJlZ2lzdHJhdGlvbkluc3RhbmNlID0gcmVnaXN0cmF0aW9uOwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvaW52YWxpZC1ibG9idHlwZS5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvaW52YWxpZC1ibG9idHlwZS5odHRwcy5odG1sCmluZGV4IDFjNTkyMGZiMDM5MTAxYjE4ZmMz
YzM5ZTUzZjdjYmI5YjVlMWViZmMuLmI5OTQ4NTljMWM2ZTMyZjNmYzJhODQzMGVmM2JkZWM4MjM0
MjkyMjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ludmFsaWQtYmxvYnR5cGUuaHR0
cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9pbnZhbGlkLWJsb2J0eXBlLmh0dHBzLmh0
bWwKQEAgLTUsMzYgKzUsMjYgQEAKIDxzY3JpcHQgc3JjPSIvY29tbW9uL2dldC1ob3N0LWluZm8u
c3ViLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGVzdC1oZWxwZXJzLnN1
Yi5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgotcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKK2Fz
eW5jX3Rlc3QoZnVuY3Rpb24odCkgewogICAgIHZhciBTQ09QRSA9ICdyZXNvdXJjZXMvaW52YWxp
ZC1ibG9idHlwZS1pZnJhbWUuaHR0cHMuaHRtbCc7CiAgICAgdmFyIFNDUklQVCA9ICdyZXNvdXJj
ZXMvaW52YWxpZC1ibG9idHlwZS13b3JrZXIuanMnOwogICAgIHZhciBob3N0X2luZm8gPSBnZXRf
aG9zdF9pbmZvKCk7Ci0gICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3Jl
Z2lzdGVyKHQsIFNDUklQVCwgU0NPUEUpCisgICAgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9h
bmRfcmVnaXN0ZXIodCwgU0NSSVBULCBTQ09QRSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKHJlZ2lz
dHJhdGlvbikgewotICAgICAgICAgIHQuYWRkX2NsZWFudXAoZnVuY3Rpb24oKSB7Ci0gICAgICAg
ICAgICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyKHQsIFNDT1BFKTsKLSAgICAg
ICAgICAgIH0pOwotCiAgICAgICAgICAgcmV0dXJuIHdhaXRfZm9yX3N0YXRlKHQsIHJlZ2lzdHJh
dGlvbi5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7CiAgICAgICAgIH0pCiAgICAgICAudGhlbihm
dW5jdGlvbigpIHsgcmV0dXJuIHdpdGhfaWZyYW1lKFNDT1BFKTsgfSkKICAgICAgIC50aGVuKGZ1
bmN0aW9uKGZyYW1lKSB7Ci0gICAgICAgICAgdC5hZGRfY2xlYW51cChmdW5jdGlvbigpIHsKLSAg
ICAgICAgICAgICAgZnJhbWUucmVtb3ZlKCk7Ci0gICAgICAgICAgICB9KTsKLQogICAgICAgICAg
IHZhciBjaGFubmVsID0gbmV3IE1lc3NhZ2VDaGFubmVsKCk7Ci0gICAgICAgICAgdmFyIG9uTXNn
ID0gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSkgewotICAgICAgICAgICAgICBjaGFubmVs
LnBvcnQxLm9ubWVzc2FnZSA9IHJlc29sdmU7CisgICAgICAgICAgY2hhbm5lbC5wb3J0MS5vbm1l
c3NhZ2UgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICAgIGFzc2VydF9l
cXVhbHMoZS5kYXRhLnJlc3VsdHMsICdmaW5pc2gnKTsKKyAgICAgICAgICAgICAgZnJhbWUucmVt
b3ZlKCk7CisgICAgICAgICAgICAgIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX2RvbmUo
dCwgU0NPUEUpOwogICAgICAgICAgICAgfSk7Ci0KICAgICAgICAgICBmcmFtZS5jb250ZW50V2lu
ZG93LnBvc3RNZXNzYWdlKHt9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaG9zdF9pbmZvWydIVFRQU19PUklHSU4nXSwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFtjaGFubmVsLnBvcnQyXSk7Ci0gICAgICAgICAgcmV0dXJuIG9u
TXNnOwogICAgICAgICB9KQotICAgICAgLnRoZW4oZnVuY3Rpb24oZSkgewotICAgICAgICAgIGFz
c2VydF9lcXVhbHMoZS5kYXRhLnJlc3VsdHMsICdmaW5pc2gnKTsKLSAgICAgICAgfSk7CisgICAg
ICAuY2F0Y2godW5yZWFjaGVkX3JlamVjdGlvbih0KSk7CiAgIH0sICdWZXJpZnkgdGhlIHJlc3Bv
bnNlIG9mIEZldGNoRXZlbnQgdXNpbmcgWE1MSHR0cFJlcXVlc3QnKTsKIDwvc2NyaXB0PgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvaW52YWxpZC1oZWFkZXIuaHR0cHMuaHRtbCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL2ludmFsaWQtaGVhZGVyLmh0dHBzLmh0bWwKaW5kZXggMWJjOTc2OTc5
MDQ2YzEyN2FkM2QyZjQyODJjZTI5N2U5OTdiOTAzZC4uMDI1NmEzYTRjMTU4MmJkNTA1MjNkYjU3
NTBiYjI2NTliODE1OGExYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvaW52YWxpZC1o
ZWFkZXIuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9pbnZhbGlkLWhlYWRlci5o
dHRwcy5odG1sCkBAIC01LDM1ICs1LDI2IEBACiA8c2NyaXB0IHNyYz0iL2NvbW1vbi9nZXQtaG9z
dC1pbmZvLnN1Yi5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Rlc3QtaGVs
cGVycy5zdWIuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KLXByb21pc2VfdGVzdChmdW5jdGlvbih0
KSB7Cithc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICB2YXIgU0NPUEUgPSAncmVzb3VyY2Vz
L2ludmFsaWQtaGVhZGVyLWlmcmFtZS5odHRwcy5odG1sJzsKICAgICB2YXIgU0NSSVBUID0gJ3Jl
c291cmNlcy9pbnZhbGlkLWhlYWRlci13b3JrZXIuanMnOwogICAgIHZhciBob3N0X2luZm8gPSBn
ZXRfaG9zdF9pbmZvKCk7Ci0gICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5k
X3JlZ2lzdGVyKHQsIFNDUklQVCwgU0NPUEUpCisgICAgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rl
cl9hbmRfcmVnaXN0ZXIodCwgU0NSSVBULCBTQ09QRSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKHJl
Z2lzdHJhdGlvbikgewotICAgICAgICAgIHQuYWRkX2NsZWFudXAoZnVuY3Rpb24oKSB7Ci0gICAg
ICAgICAgICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyKHQsIFNDT1BFKTsKLSAg
ICAgICAgICAgIH0pOwotCiAgICAgICAgICAgcmV0dXJuIHdhaXRfZm9yX3N0YXRlKHQsIHJlZ2lz
dHJhdGlvbi5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7CiAgICAgICAgIH0pCiAgICAgICAudGhl
bihmdW5jdGlvbigpIHsgcmV0dXJuIHdpdGhfaWZyYW1lKFNDT1BFKTsgfSkKICAgICAgIC50aGVu
KGZ1bmN0aW9uKGZyYW1lKSB7Ci0gICAgICAgICAgdC5hZGRfY2xlYW51cChmdW5jdGlvbigpIHsK
LSAgICAgICAgICAgICAgZnJhbWUucmVtb3ZlKCk7Ci0gICAgICAgICAgICB9KTsKLQogICAgICAg
ICAgIHZhciBjaGFubmVsID0gbmV3IE1lc3NhZ2VDaGFubmVsKCk7Ci0gICAgICAgICAgdmFyIG9u
TXNnID0gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSkgewotICAgICAgICAgICAgICBjaGFu
bmVsLnBvcnQxLm9ubWVzc2FnZSA9IHJlc29sdmU7CisgICAgICAgICAgY2hhbm5lbC5wb3J0MS5v
bm1lc3NhZ2UgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICAgIGFzc2Vy
dF9lcXVhbHMoZS5kYXRhLnJlc3VsdHMsICdmaW5pc2gnKTsKKyAgICAgICAgICAgICAgZnJhbWUu
cmVtb3ZlKCk7CisgICAgICAgICAgICAgIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX2Rv
bmUodCwgU0NPUEUpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgICAgZnJhbWUuY29udGVudFdp
bmRvdy5wb3N0TWVzc2FnZSh7fSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGhvc3RfaW5mb1snSFRUUFNfT1JJR0lOJ10sCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBbY2hhbm5lbC5wb3J0Ml0pOwotICAgICAgICAgIHJldHVybiBv
bk1zZzsKICAgICAgICAgfSkKLSAgICAgIC50aGVuKGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICBh
c3NlcnRfZXF1YWxzKGUuZGF0YS5yZXN1bHRzLCAnZmluaXNoJyk7Ci0gICAgICAgIH0pOworICAg
ICAgLmNhdGNoKHVucmVhY2hlZF9yZWplY3Rpb24odCkpOwogICB9LCAnVmVyaWZ5IHRoZSByZXNw
b25zZSBvZiBGZXRjaEV2ZW50IHVzaW5nIFhNTEh0dHBSZXF1ZXN0Jyk7CiA8L3NjcmlwdD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2lzby1sYXRpbjEtaGVhZGVyLmh0dHBzLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9pc28tbGF0aW4xLWhlYWRlci5odHRwcy5odG1sCmluZGV4IGMy
N2E1ZjQ4YTViOWU5Mzg0YTVjOTEyOWQwMjg4NzYxYjBkZjljZDcuLmFkMGFiNTljNzc1NmU3ZDlk
MDhlZmIwMzUzNjI4MDQ1NjUxYTU5MGMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2lz
by1sYXRpbjEtaGVhZGVyLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvaXNvLWxh
dGluMS1oZWFkZXIuaHR0cHMuaHRtbApAQCAtNSwxNiArNSwxMiBAQAogPHNjcmlwdCBzcmM9Ii9j
b21tb24vZ2V0LWhvc3QtaW5mby5zdWIuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9InJlc291
cmNlcy90ZXN0LWhlbHBlcnMuc3ViLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+Ci1wcm9taXNlX3Rl
c3QoZnVuY3Rpb24odCkgeworYXN5bmNfdGVzdChmdW5jdGlvbih0KSB7CiAgICAgdmFyIFNDT1BF
ID0gJ3Jlc291cmNlcy9pc28tbGF0aW4xLWhlYWRlci1pZnJhbWUuaHRtbCc7CiAgICAgdmFyIFND
UklQVCA9ICdyZXNvdXJjZXMvaXNvLWxhdGluMS1oZWFkZXItd29ya2VyLmpzJzsKICAgICB2YXIg
aG9zdF9pbmZvID0gZ2V0X2hvc3RfaW5mbygpOwotICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91
bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCBTQ1JJUFQsIFNDT1BFKQorICAgIHNlcnZpY2Vfd29y
a2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIFNDUklQVCwgU0NPUEUpCiAgICAgICAudGhl
bihmdW5jdGlvbihyZWdpc3RyYXRpb24pIHsKLSAgICAgICAgICB0LmFkZF9jbGVhbnVwKGZ1bmN0
aW9uKCkgewotICAgICAgICAgICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcih0
LCBTQ09QRSk7Ci0gICAgICAgICAgICB9KTsKLQogICAgICAgICAgIHJldHVybiB3YWl0X2Zvcl9z
dGF0ZSh0LCByZWdpc3RyYXRpb24uaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOwogICAgICAgICB9
KQogICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7IHJldHVybiB3aXRoX2lmcmFtZShTQ09QRSk7IH0p
CkBAIC0yMywxOCArMTksMTQgQEAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICAgICAg
ICB0LmFkZF9jbGVhbnVwKGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICBmcmFtZS5yZW1vdmUo
KTsKICAgICAgICAgICAgIH0pOwotCi0gICAgICAgICAgdmFyIG9uTXNnID0gbmV3IFByb21pc2Uo
ZnVuY3Rpb24ocmVzb2x2ZSkgewotICAgICAgICAgICAgICBjaGFubmVsLnBvcnQxLm9ubWVzc2Fn
ZSA9IHJlc29sdmU7CisgICAgICAgICAgY2hhbm5lbC5wb3J0MS5vbm1lc3NhZ2UgPSB0LnN0ZXBf
ZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS5kYXRhLnJl
c3VsdHMsICdmaW5pc2gnKTsKKyAgICAgICAgICAgICAgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rl
cl9hbmRfZG9uZSh0LCBTQ09QRSk7CiAgICAgICAgICAgICB9KTsKLQogICAgICAgICAgIGZyYW1l
LmNvbnRlbnRXaW5kb3cucG9zdE1lc3NhZ2Uoe30sCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBob3N0X2luZm9bJ0hUVFBTX09SSUdJTiddLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NoYW5uZWwucG9ydDJdKTsKLSAgICAgICAg
ICByZXR1cm4gb25Nc2c7CiAgICAgICAgIH0pCi0gICAgICAudGhlbihmdW5jdGlvbihlKSB7Ci0g
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLmRhdGEucmVzdWx0cywgJ2ZpbmlzaCcpOwotICAgICAg
ICB9KTsKKyAgICAgIC5jYXRjaCh1bnJlYWNoZWRfcmVqZWN0aW9uKHQpKTsKICAgfSwgJ1Zlcmlm
eSB0aGUgcmVzcG9uc2Ugb2YgRmV0Y2hFdmVudCB1c2luZyBYTUxIdHRwUmVxdWVzdCcpOwogPC9z
Y3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9tdWx0aXBsZS11cGRhdGUuaHR0
cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL211bHRpcGxlLXVwZGF0ZS5odHRwcy5odG1sCmlu
ZGV4IDZhODNmNzNhMDU0ZjhhNTAyODRhZTliNTViYmE5Y2RlNGQ3NGMxMDguLjg0YWFjOTU4M2I5
MGIxY2FhOGYwOGI2MzZiOTk5NDk0MjMwNGVmZWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL211bHRpcGxlLXVwZGF0ZS5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL211
bHRpcGxlLXVwZGF0ZS5odHRwcy5odG1sCkBAIC0xNSwxMCArMTUsNiBAQCBwcm9taXNlX3Rlc3Qo
ZnVuY3Rpb24odCkgewogCiAgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5k
X3JlZ2lzdGVyKHQsIGV4cGVjdGVkX3VybCwgc2NvcGUpCiAgICAgICAudGhlbihmdW5jdGlvbihy
KSB7Ci0gICAgICAgICAgdC5hZGRfY2xlYW51cChmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAg
cmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXIodCwgc2NvcGUpOwotICAgICAgICAgICAg
fSk7Ci0KICAgICAgICAgICByZWdpc3RyYXRpb24gPSByOwogICAgICAgICAgIHJldHVybiB3YWl0
X2Zvcl9zdGF0ZSh0LCByZWdpc3RyYXRpb24uaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOwogICAg
ICAgICB9KQpAQCAtODksNiArODUsOCBAQCBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewogICAg
ICAgICAgICAgICAgICAgICAgICAgJ3dhaXRpbmcgc2hvdWxkIGJlIG51bGwgYWZ0ZXIgYWN0aXZh
dGVkLicpOwogICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVnaXN0cmF0aW9uLmFjdGl2ZS5zY3Jp
cHRVUkwsIGV4cGVjdGVkX3VybCwKICAgICAgICAgICAgICAgICAgICAgICAgICdhY3RpdmUgc2hv
dWxkIHN0aWxsIGV4aXN0IGFmdGVyIHVwZGF0ZSBmb3VuZC4nKTsKKworICAgICAgICAgIHJldHVy
biBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9kb25lKHQsIHNjb3BlKTsKICAgICAgICAg
fSk7CiAgIH0sICdUcmlnZ2VyIG11bHRpcGxlIHVwZGF0ZXMuJyk7CiA8L3NjcmlwdD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL25hdmlnYXRpb24tcmVkaXJlY3QuaHR0cHMuaHRtbCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL25hdmlnYXRpb24tcmVkaXJlY3QuaHR0cHMuaHRtbAppbmRleCBk
N2QzZDUyNTlhNDU0ZDkyM2QxZTg5MDA0ZmNmNTVjZTdlMmU2YmRhLi4wZjFkMzc3YTU3Y2ZjMDc4
MjEyY2MwYTA2OWQwMjgwZjg4MWI1MjYyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9u
YXZpZ2F0aW9uLXJlZGlyZWN0Lmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvbmF2
aWdhdGlvbi1yZWRpcmVjdC5odHRwcy5odG1sCkBAIC0xLDExICsxLDYgQEAKIDwhRE9DVFlQRSBo
dG1sPgogPHRpdGxlPlNlcnZpY2UgV29ya2VyOiBOYXZpZ2F0aW9uIHJlZGlyZWN0aW9uPC90aXRs
ZT4KIDxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciPgotPCEtLSBlbXB0eSB2YXJp
YW50IHRlc3RzIGRvY3VtZW50LmxvY2F0aW9uIGFuZCBpbnRlcmNlcHRlZCBVUkxzIC0tPgotPG1l
dGEgbmFtZT0idmFyaWFudCIgY29udGVudD0iIj4KLTwhLS0gY2xpZW50IHZhcmlhbnQgdGVzdHMg
dGhlIENsaWVudHMgQVBJIChyZXN1bHRpbmdDbGllbnRJZCBhbmQgQ2xpZW50LnVybCkgLS0+Ci08
bWV0YSBuYW1lPSJ2YXJpYW50IiBjb250ZW50PSI/Y2xpZW50Ij4KLQogPHNjcmlwdCBzcmM9Ii9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii9jb21tb24v
Z2V0LWhvc3QtaW5mby5zdWIuanMiPjwvc2NyaXB0PgpAQCAtNTUsNyArNTAsNyBAQCBwcm9taXNl
X3Rlc3QoYXN5bmMgdCAgPT4gewogICAgICAgd2FpdF9mb3Jfc3RhdGUodCwgd29ya2Vyc1sxXSwg
J2FjdGl2YXRlZCcpLAogICAgICAgLy8gVGhpcyBwcm9taXNlIHdpbGwgcmVzb2x2ZSB3aGVuIHx3
YWl0X2Zvcl93b3JrZXJfcHJvbWlzZXwKICAgICAgIC8vIGluIE9USEVSX09SSUdJTl9JRlJBTUVf
VVJMIHJlc29sdmVzLgotICAgICAgc2VuZF90b19pZnJhbWUob3RoZXJfb3JpZ2luX2ZyYW1lLCB7
Y29tbWFuZDogJ3dhaXRfZm9yX3dvcmtlcid9KV0pOworICAgICAgc2VuZF90b19pZnJhbWUob3Ro
ZXJfb3JpZ2luX2ZyYW1lLCAnd2FpdF9mb3Jfd29ya2VyJyldKTsKIH0sICdpbml0aWFsaXplIGds
b2JhbCBzdGF0ZScpOwogCiBmdW5jdGlvbiBnZXRfZWZmZWN0aXZlX3dvcmtlcihyZWdpc3RyYXRp
b24pIHsKQEAgLTcyLDIxNyArNjcsNDAgQEAgYXN5bmMgZnVuY3Rpb24gY2hlY2tfYWxsX2ludGVy
Y2VwdGVkX3VybHMoZXhwZWN0ZWRfdXJscykgewogICB1cmxzLnB1c2goYXdhaXQgZ2V0X2ludGVy
Y2VwdGVkX3VybHMod29ya2Vyc1swXSkpOwogICB1cmxzLnB1c2goYXdhaXQgZ2V0X2ludGVyY2Vw
dGVkX3VybHMod29ya2Vyc1sxXSkpOwogICAvLyBHZXRzIHRoZSByZXF1ZXN0IFVSTHMgd2hpY2gg
YXJlIGludGVyY2VwdGVkIGJ5IE9USEVSX09SSUdJTl9TQ09QRSdzCi0gIC8vIFNXLiBUaGlzIHBy
b21pc2Ugd2lsbCByZXNvbHZlIHdoZW4gZ2V0X3JlcXVlc3RfaW5mb3MoKSBpbgorICAvLyBTVy4g
VGhpcyBwcm9taXNlIHdpbGwgcmVzb2x2ZSB3aGVuIGdldF9pbnRlcmNlcHRlZF91cmxzKCkgaW4K
ICAgLy8gT1RIRVJfT1JJR0lOX0lGUkFNRV9VUkwgcmVzb2x2ZXMuCi0gIGNvbnN0IHJlcXVlc3Rf
aW5mb3MgPSBhd2FpdCBzZW5kX3RvX2lmcmFtZShvdGhlcl9vcmlnaW5fZnJhbWUsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Y29tbWFuZDogJ2dldF9yZXF1
ZXN0X2luZm9zJ30pOwotICB1cmxzLnB1c2gocmVxdWVzdF9pbmZvcy5tYXAoaW5mbyA9PiB7IHJl
dHVybiBpbmZvLnVybDsgfSkpOwotCisgIHVybHMucHVzaChhd2FpdCBzZW5kX3RvX2lmcmFtZShv
dGhlcl9vcmlnaW5fZnJhbWUsICdnZXRfaW50ZXJjZXB0ZWRfdXJscycpKTsKICAgYXNzZXJ0X29i
amVjdF9lcXVhbHModXJscywgZXhwZWN0ZWRfdXJscywgJ0ludGVyY2VwdGVkIFVSTHMgc2hvdWxk
IG1hdGNoLicpOwogfQogCi0vLyBDaGVja3MgfGNsaWVudHN8IHJldHVybmVkIGZyb20gYSB3b3Jr
ZXIuIE9ubHkgdGhlIGNsaWVudCBtYXRjaGluZwotLy8gfGV4cGVjdGVkX2ZpbmFsX2NsaWVudF90
YWd8IHNob3VsZCBiZSBmb3VuZC4gUmV0dXJucyB0cnVlIGlmIGEgY2xpZW50IHdhcwotLy8gZm91
bmQuIE5vdGUgdGhhdCB0aGUgZmluYWwgY2xpZW50IGlzIG5vdCBuZWNlc3NhcmlseSBmb3VuZCBi
eSB0aGlzIHdvcmtlciwKLS8vIGlmIHRoZSBjbGllbnQgaXMgY3Jvc3Mtb3JpZ2luLgotLy8KLS8v
IHxjbGllbnRzfCBpcyBhbiBvYmplY3QgbGlrZToKLS8vIHt4OiB7Zm91bmQ6IHRydWUsIGlkOiBp
ZDEsIHVybDogdXJsMX0sIGI6IHtmb3VuZDogZmFsc2V9fQotZnVuY3Rpb24gY2hlY2tfY2xpZW50
cyhjbGllbnRzLAotICAgICAgICAgICAgICAgICAgICAgICBleHBlY3RlZF9pZCwKLSAgICAgICAg
ICAgICAgICAgICAgICAgZXhwZWN0ZWRfdXJsLAotICAgICAgICAgICAgICAgICAgICAgICBleHBl
Y3RlZF9maW5hbF9jbGllbnRfdGFnLAotICAgICAgICAgICAgICAgICAgICAgICB3b3JrZXJfbmFt
ZSkgewotICBsZXQgZm91bmQgPSBmYWxzZTsKLSAgT2JqZWN0LmtleXMoY2xpZW50cykuZm9yRWFj
aChrZXkgPT4gewotICAgIGNvbnN0IGluZm8gPSBjbGllbnRzW2tleV07Ci0gICAgaWYgKGluZm8u
Zm91bmQpIHsKLSAgICAgIGFzc2VydF90cnVlKCEhZXhwZWN0ZWRfZmluYWxfY2xpZW50X3RhZywK
LSAgICAgICAgICAgICAgICAgIGAke3dvcmtlcl9uYW1lfSBjbGllbnQgdGFnIGV4aXN0c2ApOwot
ICAgICAgYXNzZXJ0X2VxdWFscyhrZXksIGV4cGVjdGVkX2ZpbmFsX2NsaWVudF90YWcsCi0gICAg
ICAgICAgICAgICAgICAgIGAke3dvcmtlcl9uYW1lfSBjbGllbnQgdGFnIG1hdGNoZXNgKTsKLSAg
ICAgIGFzc2VydF9lcXVhbHMoaW5mby5pZCwgZXhwZWN0ZWRfaWQsIGAke3dvcmtlcl9uYW1lfSBj
bGllbnQgaWRgKTsKLSAgICAgIGFzc2VydF9lcXVhbHMoaW5mby51cmwsIGV4cGVjdGVkX3VybCwg
YCR7d29ya2VyX25hbWV9IGNsaWVudCB1cmxgKTsKLSAgICAgIGZvdW5kID0gdHJ1ZTsKLSAgICB9
Ci0gIH0pOwotICByZXR1cm4gZm91bmQ7Ci19Ci0KLWZ1bmN0aW9uIGNoZWNrX3Jlc3VsdGluZ19j
bGllbnRfaWRzKGluZm9zLCBleHBlY3RlZF9pbmZvcywgYWN0dWFsX2lkcywgd29ya2VyKSB7Ci0g
IGFzc2VydF9lcXVhbHMoaW5mb3MubGVuZ3RoLCBleHBlY3RlZF9pbmZvcy5sZW5ndGgsCi0gICAg
ICAgICAgICAgICAgYHJlcXVlc3QgbGVuZ3RoIGZvciAke3dvcmtlcn1gKTsKLSAgZm9yICh2YXIg
aSA9IDA7IGkgPCBpbmZvcy5sZW5ndGg7IGkrKykgewotICAgIGNvbnN0IHRhZyA9IGV4cGVjdGVk
X2luZm9zW2ldLnJlc3VsdGluZ0NsaWVudElkVGFnOwotICAgIGNvbnN0IHVybCA9IGV4cGVjdGVk
X2luZm9zW2ldLnVybDsKLSAgICBjb25zdCBhY3R1YWxfaWQgPSBpbmZvc1tpXS5yZXN1bHRpbmdD
bGllbnRJZDsKLSAgICBjb25zdCBleHBlY3RlZF9pZCA9IGFjdHVhbF9pZHNbdGFnXTsKLSAgICBh
c3NlcnRfZXF1YWxzKHR5cGVvZihhY3R1YWxfaWQpLCAnc3RyaW5nJywKLSAgICAgICAgICAgICAg
ICAgIGByZXN1bHRpbmdDbGllbnRJZCBmb3IgJHt1cmx9IHJlcXVlc3QgdG8gJHt3b3JrZXJ9YCk7
Ci0gICAgaWYgKGV4cGVjdGVkX2lkKSB7Ci0gICAgICBhc3NlcnRfZXF1YWxzKGFjdHVhbF9pZCwg
ZXhwZWN0ZWRfaWQsCi0gICAgICAgICAgICAgICAgICAgIGByZXN1bHRpbmdDbGllbnRJZCBmb3Ig
JHt1cmx9IHJlcXVlc3QgdG8gJHt3b3JrZXJ9YCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgIGFjdHVh
bF9pZHNbdGFnXSA9IGFjdHVhbF9pZDsKLSAgICB9Ci0gIH0KLX0KLQogLy8gQ3JlYXRlcyBhbiBp
ZnJhbWUgYW5kIG5hdmlnYXRlcyB0byB8dXJsfCwgd2hpY2ggaXMgZXhwZWN0ZWQgdG8gc3RhcnQg
YSBjaGFpbgogLy8gb2YgcmVkaXJlY3RzLgogLy8gLSB8ZXhwZWN0ZWRfbGFzdF91cmx8IGlzIHRo
ZSBleHBlY3RlZCB3aW5kb3cubG9jYXRpb24gYWZ0ZXIgdGhlCiAvLyAgIG5hdmlnYXRpb24uCi0v
LwotLy8gLSB8ZXhwZWN0ZWRfcmVxdWVzdF9pbmZvc3wgaXMgdGhlIGV4cGVjdGVkIHJlcXVlc3Rz
IHRoYXQgdGhlIHNlcnZpY2Ugd29ya2VycwotLy8gICB3ZXJlIGRpc3BhdGNoZWQgZmV0Y2ggZXZl
bnRzIGZvci4gVGhlIGZvcm1hdCBpczoKKy8vIC0gfGV4cGVjdGVkX2ludGVyY2VwdGVkX3VybHN8
IGlzIHRoZSBleHBlY3RlZCBVUkxzIHRoYXQgdGhlIHNlcnZpY2UKKy8vICAgd29ya2VycyB3ZXJl
IGRpc3BhdGNoZWQgZmV0Y2ggZXZlbnRzIGZvci4gVGhlIGZvcm1hdCBpczoKIC8vICAgWwotLy8g
ICAgIFsKLS8vICAgICAgIC8vIFJlcXVlc3RzIHJlY2VpdmVkIGJ5IHdvcmtlcnNbMF0uCi0vLyAg
ICAgICB7dXJsOiB1cmwxLCByZXN1bHRpbmdDbGllbnRJZFRhZzogJ2EnfSwKLS8vICAgICAgIHt1
cmw6IHVybDIsIHJlc3VsdGluZ0NsaWVudElkVGFnOiAnYSd9Ci0vLyAgICAgXSwKLS8vICAgICBb
Ci0vLyAgICAgICAvLyBSZXF1ZXN0cyByZWNlaXZlZCBieSB3b3JrZXJzWzFdLgotLy8gICAgICAg
e3VybDogdXJsMywgcmVzdWx0aW5nQ2xpZW50SWRUYWc6ICdhJ30KLS8vICAgICBdLAotLy8gICAg
IFsKLS8vICAgICAgIC8vIFJlcXVlc3RzIHJlY2VpdmVkIGJ5IHRoZSBjcm9zcy1vcmlnaW4gd29y
a2VyLgotLy8gICAgICAge3VybDogdXJsNCwgcmVzdWx0aW5nQ2xpZW50SWRUYWc6ICd4J30KLS8v
ICAgICAgIHt1cmw6IHVybDUsIHJlc3VsdGluZ0NsaWVudElkVGFnOiAneCd9Ci0vLyAgICAgXQor
Ly8gICAgIFt1cmxzIGZyb20gd29ya2Vyc1swXV0sCisvLyAgICAgW3VybHMgZnJvbSB3b3JrZXJz
WzFdXSwKKy8vICAgICBbdXJscyBmcm9tIGNyb3NzLW9yaWdpbiB3b3JrZXJdCiAvLyAgIF0KLS8v
ICAgSGVyZSwgfHVybHwgaXMgfGV2ZW50LnJlcXVlc3QudXJsfCBhbmQgfHJlc3VsdGluZ0NsaWVu
dElkVGFnfCByZXByZXNlbnRzCi0vLyAgIHxldmVudC5yZXN1bHRpbmdDbGllbnRJZHwuIFNpbmNl
IHRoZSBhY3R1YWwgY2xpZW50IGlkcyBhcmUgbm90IGtub3duCi0vLyAgIGJlZm9yZWhhbmQsIHRo
ZSBleHBlY3RhdGlvbiBpc24ndCB0aGUgbGl0ZXJhbCBleHBlY3RlZCB2YWx1ZSwgYnV0IGFsbCBl
cXVhbAotLy8gICB0YWdzIG11c3QgbWFwIHRvIHRoZSBzYW1lIGFjdHVhbCBpZC4KLS8vCi0vLyAt
IHxleHBlY3RlZF9maW5hbF9jbGllbnRfdGFnfCBpcyB0aGUgcmVzdWx0aW5nQ2xpZW50SWRUYWcg
dGhhdCBpcwotLy8gICBleHBlY3RlZCB0byBtYXAgdG8gdGhlIGNyZWF0ZWQgY2xpZW50J3MgaWQu
IFRoaXMgaXMgbnVsbCBpZiB0aGVyZQotLy8gICBpcyBubyBzdWNoIHRhZywgd2hpY2ggY2FuIGhh
cHBlbiB3aGVuIHRoZSBmaW5hbCByZXF1ZXN0IHdhcyBhIGNyb3NzLW9yaWdpbgotLy8gICByZWRp
cmVjdCB0byBvdXQtc2NvcGUsIHNvIG5vIHdvcmtlciByZWNlaXZlZCBhIGZldGNoIGV2ZW50IHdo
b3NlCi0vLyAgIHJlc3VsdGluZ0NsaWVudElkIGlzIHRoZSBpZCBvZiB0aGUgcmVzdWx0aW5nIGNs
aWVudC4KLS8vCi0vLyBJbiB0aGUgZXhhbXBsZSBhYm92ZToKLS8vIC0gd29ya2Vyc1swXSByZWNl
aXZlcyB0d28gcmVxdWVzdHMgd2l0aCB0aGUgc2FtZSByZXN1bHRpbmdDbGllbnRJZC4KLS8vIC0g
d29ya2Vyc1sxXSByZWNlaXZlcyBvbmUgcmVxdWVzdCBhbHNvIHdpdGggdGhhdCByZXN1bHRpbmdD
bGllbnRJZC4KLS8vIC0gVGhlIGNyb3NzLW9yaWdpbiB3b3JrZXIgcmVjZWl2ZXMgdHdvIHJlcXVl
c3RzIHdpdGggdGhlIHNhbWUKLS8vICAgcmVzdWx0aW5nQ2xpZW50SWQgd2hpY2ggZGlmZmVycyBm
cm9tIHRoZSBwcmV2aW91cyBvbmUuCi0vLyAtIEFzc3VtaW5nIHxleHBlY3RlZF9maW5hbF9jbGll
bnRfdGFnfCBpcyAneCcsIHRoZW4gdGhlIGNyZWF0ZWQKLS8vICAgY2xpZW50IGhhcyB0aGUgaWQg
c2VlbiBieSB0aGUgY3Jvc3Mtb3JpZ2luIHdvcmtlciBhYm92ZS4KIGZ1bmN0aW9uIHJlZGlyZWN0
X3Rlc3QodXJsLAogICAgICAgICAgICAgICAgICAgICAgICBleHBlY3RlZF9sYXN0X3VybCwKLSAg
ICAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRfcmVxdWVzdF9pbmZvcywKLSAgICAgICAgICAg
ICAgICAgICAgICAgZXhwZWN0ZWRfZmluYWxfY2xpZW50X3RhZywKKyAgICAgICAgICAgICAgICAg
ICAgICAgZXhwZWN0ZWRfaW50ZXJjZXB0ZWRfdXJscywKICAgICAgICAgICAgICAgICAgICAgICAg
dGVzdF9uYW1lKSB7CiAgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICBjb25zdCBtZXNz
YWdlX3Byb21pc2UgPSBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHsKKyAgICAgICAgLy8gQSBtZXNz
YWdlIHdpdGggSUQgJ2xhc3RfdXJsJyB3aWxsIGJlIHNlbnQgZnJvbSB0aGUgaWZyYW1lLgorICAg
ICAgICBtZXNzYWdlX3Jlc29sdmVyc1snbGFzdF91cmwnXSA9IHJlc29sdmU7CisgICAgfSk7CiAg
ICAgY29uc3QgZnJhbWUgPSBhd2FpdCB3aXRoX2lmcmFtZSh1cmwpOwotICAgIHQuYWRkX2NsZWFu
dXAoKCkgPT4geyBmcmFtZS5yZW1vdmUoKTsgfSk7Ci0KLSAgICAvLyBTd2l0Y2ggb24gdmFyaWFu
dC4KLSAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24uc2VhcmNoID09ICc/Y2xpZW50JykgewotICAg
ICAgcmV0dXJuIGNsaWVudF92YXJpYW50X3Rlc3QodXJsLCBleHBlY3RlZF9sYXN0X3VybCwgZXhw
ZWN0ZWRfcmVxdWVzdF9pbmZvcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4
cGVjdGVkX2ZpbmFsX2NsaWVudF90YWcsIHRlc3RfbmFtZSk7Ci0gICAgfQotCi0gICAgcmV0dXJu
IGRlZmF1bHRfdmFyaWFudF90ZXN0KHVybCwgZXhwZWN0ZWRfbGFzdF91cmwsIGV4cGVjdGVkX3Jl
cXVlc3RfaW5mb3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyYW1lLCB0ZXN0
X25hbWUpOworICAgIGZyYW1lLnJlbW92ZSgpOworICAgIGF3YWl0IGNoZWNrX2FsbF9pbnRlcmNl
cHRlZF91cmxzKGV4cGVjdGVkX2ludGVyY2VwdGVkX3VybHMpOworICAgIGNvbnN0IGxhc3RfdXJs
ID0gYXdhaXQgbWVzc2FnZV9wcm9taXNlOworICAgIGFzc2VydF9lcXVhbHMobGFzdF91cmwsIGV4
cGVjdGVkX2xhc3RfdXJsLCAnTGFzdCBVUkwgc2hvdWxkIG1hdGNoLicpOwogICB9LCB0ZXN0X25h
bWUpOwogfQogCi0vLyBUaGUgZGVmYXVsdCB2YXJpYW50IHRlc3RzIHRoZSByZXF1ZXN0IGludGVy
Y2VwdGlvbiBjaGFpbiBhbmQKLS8vIHJlc3VsdGluZyBkb2N1bWVudC5sb2NhdGlvbi4KLWFzeW5j
IGZ1bmN0aW9uIGRlZmF1bHRfdmFyaWFudF90ZXN0KHVybCwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGV4cGVjdGVkX2xhc3RfdXJsLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZXhwZWN0ZWRfcmVxdWVzdF9pbmZvcywKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGZyYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdGVzdF9uYW1lKSB7Ci0gIGNvbnN0IGV4cGVjdGVkX2ludGVyY2VwdGVkX3VybHMgPSBl
eHBlY3RlZF9yZXF1ZXN0X2luZm9zLm1hcCgKLSAgICAgIHJlcXVlc3RzX2Zvcl93b3JrZXIgPT4g
ewotICAgIHJldHVybiByZXF1ZXN0c19mb3Jfd29ya2VyLm1hcChpbmZvID0+IHsKLSAgICAgIHJl
dHVybiBpbmZvLnVybDsKLSAgICB9KTsKLSAgfSk7Ci0gIGF3YWl0IGNoZWNrX2FsbF9pbnRlcmNl
cHRlZF91cmxzKGV4cGVjdGVkX2ludGVyY2VwdGVkX3VybHMpOwotICBjb25zdCBsYXN0X3VybCA9
IGF3YWl0IHNlbmRfdG9faWZyYW1lKGZyYW1lLCAnZ2V0TG9jYXRpb24nKTsKLSAgYXNzZXJ0X2Vx
dWFscyhsYXN0X3VybCwgZXhwZWN0ZWRfbGFzdF91cmwsICdMYXN0IFVSTCBzaG91bGQgbWF0Y2gu
Jyk7Ci19Ci0KLS8vIFRoZSAiY2xpZW50IiB2YXJpYW50IHRlc3RzIHRoZSBDbGllbnRzIEFQSSB1
c2luZyByZXN1bHRpbmdDbGllbnRJZC4KLWFzeW5jIGZ1bmN0aW9uIGNsaWVudF92YXJpYW50X3Rl
c3QodXJsLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBlY3RlZF9sYXN0
X3VybCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRfcmVxdWVz
dF9pbmZvcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRfZmlu
YWxfY2xpZW50X3RhZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9u
YW1lKSB7Ci0gIC8vIFJlcXVlc3QgaW5mb3MgaXMgYW4gYXJyYXkgbGlrZToKLSAgLy8gWwotICAv
LyAgIFt7dXJsOiB1cmwxLCByZXN1bHRpbmdDbGllbnRJZFRhZzogdGFnMX1dLAotICAvLyAgIFt7
dXJsOiB1cmwyLCByZXN1bHRpbmdDbGllbnRJZFRhZzogdGFnMn1dLAotICAvLyAgIFt7dXJsOiB1
cmwzOiByZXN1bHRpbmdDbGllbnRJZFRhZzogdGFnM31dCi0gIC8vIF0KLSAgY29uc3QgcmVxdWVz
dEluZm9zID0gYXdhaXQgZ2V0X2FsbF9yZXF1ZXN0X2luZm9zKCk7Ci0KLSAgLy8gV2UgY2hlY2sg
dGhlIGFjdHVhbCBpbmZvcyBhZ2FpbnN0IHRoZSBleHBlY3RlZCBvbmVzLCBhbmQgbGVhcm4gdGhl
Ci0gIC8vIGFjdHVhbCBpZHMgYXMgd2UgZ28uCi0gIGNvbnN0IGFjdHVhbF9pZHMgPSB7fTsKLSAg
Y2hlY2tfcmVzdWx0aW5nX2NsaWVudF9pZHMocmVxdWVzdEluZm9zWzBdLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBleHBlY3RlZF9yZXF1ZXN0X2luZm9zWzBdLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBhY3R1YWxfaWRzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAnd29ya2VyMCcpOwotICBjaGVja19yZXN1bHRpbmdfY2xpZW50X2lkcyhyZXF1ZXN0SW5mb3Nb
MV0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkX3JlcXVlc3RfaW5mb3Nb
MV0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdHVhbF9pZHMsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICd3b3JrZXIxJyk7Ci0gIGNoZWNrX3Jlc3VsdGluZ19jbGllbnRf
aWRzKHJlcXVlc3RJbmZvc1syXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwZWN0
ZWRfcmVxdWVzdF9pbmZvc1syXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0dWFs
X2lkcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Nyb3NzT3JpZ2luV29ya2VyJyk7
Ci0KLSAgLy8gTm93IHxhY3R1YWxfaWRzfCBtYXBzIHRhZyB0byBhY3R1YWwgaWQ6Ci0gIC8vIHt4
OiBpZDEsIGI6IGlkMiwgYzogaWQzfQotICAvLyBBc2sgZWFjaCB3b3JrZXIgdG8gdHJ5IHRvIHJl
c29sdmUgdGhlIGFjdHVhbCBpZHMgdG8gY2xpZW50cy4KLSAgLy8gT25seSB8ZXhwZWN0ZWRfZmlu
YWxfY2xpZW50X3RhZ3wgc2hvdWxkIHJlc29sdmUgdG8gYSBjbGllbnQuCi0gIGNvbnN0IGNsaWVu
dF9pbmZvcyA9IGF3YWl0IGdldF9hbGxfY2xpZW50cyhhY3R1YWxfaWRzKTsKLQotICAvLyBDbGll
bnQgaW5mb3MgaXMgYW4gb2JqZWN0IGxpa2U6Ci0gIC8vIHsKLSAgLy8gICB3b3JrZXIwOiB7eDog
e2ZvdW5kOiB0cnVlLCBpZDogaWQxLCB1cmw6IHVybDF9LCBiOiB7Zm91bmQ6IGZhbHNlfX0sCi0g
IC8vICAgd29ya2VyMToge3g6IHtmb3VuZDogdHJ1ZSwgaWQ6IGlkMSwgdXJsOiB1cmwxfX0sCi0g
IC8vICAgY3Jvc3NPcmlnaW5Xb3JrZXI6IHt4OiB7Zm91bmQ6IGZhbHNlfX0sIHtiOiB7Zm91bmQ6
IGZhbHNlfX0KLSAgLy8gfQotICAvLwotICAvLyBOb3cgY2hlY2sgZWFjaCBjbGllbnQgaW5mby4g
Y2hlY2tfY2xpZW50cygpIHZlcmlmaWVzIGVhY2ggaW5mbzogb25seQotICAvLyB8ZXhwZWN0ZWRf
ZmluYWxfY2xpZW50X3RhZ3wgc2hvdWxkIGV2ZXIgYmUgZm91bmQgYW5kIHRoZSBmb3VuZCBjbGll
bnQKLSAgLy8gc2hvdWxkIGhhdmUgdGhlIGV4cGVjdGVkIHVybCBhbmQgaWQuIEEgd3JpbmtsZSBp
cyB0aGF0IG5vdCBhbGwgd29ya2VycwotICAvLyB3aWxsIGZpbmQgdGhlIGNsaWVudCwgaWYgdGhl
eSBhcmUgY3Jvc3Mtb3JpZ2luIHRvIHRoZSBjbGllbnQuIFRoaXMKLSAgLy8gbWVhbnMgY2hlY2tf
Y2xpZW50cygpIHRyaXZpYWxseSBwYXNzZXMgaWYgbm8gY2xpZW50cyBhcmUgZm91bmQuIFNvCi0g
IC8vIGFkZGl0aW9uYWxseSBjaGVjayB0aGF0IGF0IGxlYXN0IG9uZSB3b3JrZXIgZm91bmQgdGhl
IGNsaWVudCAofGZvdW5kfCksCi0gIC8vIGlmIHRoYXQgd2FzIGV4cGVjdGVkICh8ZXhwZWN0X2Zv
dW5kfCkuCi0gIGxldCBmb3VuZCA9IGZhbHNlOwotICBjb25zdCBleHBlY3RfZm91bmQgPSAhIWV4
cGVjdGVkX2ZpbmFsX2NsaWVudF90YWc7Ci0gIGNvbnN0IGV4cGVjdGVkX2lkID0gYWN0dWFsX2lk
c1tleHBlY3RlZF9maW5hbF9jbGllbnRfdGFnXTsKLSAgZm91bmQgPSBjaGVja19jbGllbnRzKGNs
aWVudF9pbmZvcy53b3JrZXIwLAotICAgICAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRfaWQs
Ci0gICAgICAgICAgICAgICAgICAgICAgICBleHBlY3RlZF9sYXN0X3VybCwKLSAgICAgICAgICAg
ICAgICAgICAgICAgIGV4cGVjdGVkX2ZpbmFsX2NsaWVudF90YWcsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAnd29ya2VyMCcpOwotICBmb3VuZCA9IGNoZWNrX2NsaWVudHMoY2xpZW50X2luZm9z
LndvcmtlcjEsCi0gICAgICAgICAgICAgICAgICAgICAgICBleHBlY3RlZF9pZCwKLSAgICAgICAg
ICAgICAgICAgICAgICAgIGV4cGVjdGVkX2xhc3RfdXJsLAotICAgICAgICAgICAgICAgICAgICAg
ICAgZXhwZWN0ZWRfZmluYWxfY2xpZW50X3RhZywKLSAgICAgICAgICAgICAgICAgICAgICAgICd3
b3JrZXIxJykgfHwgZm91bmQ7Ci0gIGZvdW5kID0gY2hlY2tfY2xpZW50cyhjbGllbnRfaW5mb3Mu
Y3Jvc3NPcmlnaW5Xb3JrZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICBleHBlY3RlZF9pZCwK
LSAgICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkX2xhc3RfdXJsLAotICAgICAgICAgICAg
ICAgICAgICAgICAgZXhwZWN0ZWRfZmluYWxfY2xpZW50X3RhZywKLSAgICAgICAgICAgICAgICAg
ICAgICAgICdjcm9zc09yaWdpbldvcmtlcicpIHx8IGZvdW5kOwotICBhc3NlcnRfZXF1YWxzKGZv
dW5kLCBleHBlY3RfZm91bmQsICdjbGllbnQgZm91bmQnKTsKLQotICBpZiAoIWV4cGVjdF9mb3Vu
ZCkgewotICAgIC8vIFRPRE8oZmFsa2VuKTogQXNrIHRoZSBvdGhlciBvcmlnaW4gZnJhbWUgaWYg
aXQgaGFzIGEgY2xpZW50IG9mIHRoZQotICAgIC8vIGV4cGVjdGVkIFVSTC4KLSAgfQotfQotCiB3
aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIG9uX21lc3NhZ2UsIGZhbHNlKTsKIAog
ZnVuY3Rpb24gb25fbWVzc2FnZShlKSB7CkBAIC0zMDEsNTM2ICsxMTksMjk3IEBAIGZ1bmN0aW9u
IHNlbmRfdG9faWZyYW1lKGZyYW1lLCBtZXNzYWdlKSB7CiAgIHJldHVybiBuZXcgUHJvbWlzZShy
ZXNvbHZlID0+IHsKICAgICBtZXNzYWdlX3Jlc29sdmVyc1ttZXNzYWdlX2lkXSA9IHJlc29sdmU7
CiAgICAgZnJhbWUuY29udGVudFdpbmRvdy5wb3N0TWVzc2FnZSgKLSAgICAgICAge2lkOiBtZXNz
YWdlX2lkLCBtZXNzYWdlfSwKLSAgICAgICAgJyonKTsKLSAgfSk7Ci19Ci0KLWFzeW5jIGZ1bmN0
aW9uIGdldF9hbGxfY2xpZW50cyhhY3R1YWxfaWRzKSB7Ci0gIGNvbnN0IGNsaWVudF9pbmZvcyA9
IHt9OwotICBjbGllbnRfaW5mb3NbJ3dvcmtlcjAnXSA9IGF3YWl0IGdldF9jbGllbnRzKHdvcmtl
cnNbMF0sIGFjdHVhbF9pZHMpOwotICBjbGllbnRfaW5mb3NbJ3dvcmtlcjEnXSA9IGF3YWl0IGdl
dF9jbGllbnRzKHdvcmtlcnNbMV0sIGFjdHVhbF9pZHMpOwotICBjbGllbnRfaW5mb3NbJ2Nyb3Nz
T3JpZ2luV29ya2VyJ10gPQotICAgICAgYXdhaXQgc2VuZF90b19pZnJhbWUob3RoZXJfb3JpZ2lu
X2ZyYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAge2NvbW1hbmQ6ICdnZXRfY2xpZW50
cycsIGFjdHVhbF9pZHN9KTsKLSAgcmV0dXJuIGNsaWVudF9pbmZvczsKLX0KLQotZnVuY3Rpb24g
Z2V0X2NsaWVudHMod29ya2VyLCBhY3R1YWxfaWRzKSB7Ci0gIHJldHVybiBuZXcgUHJvbWlzZShy
ZXNvbHZlID0+IHsKLSAgICB2YXIgY2hhbm5lbCA9IG5ldyBNZXNzYWdlQ2hhbm5lbCgpOwotICAg
IGNoYW5uZWwucG9ydDEub25tZXNzYWdlID0gKG1zZykgPT4gewotICAgICAgcmVzb2x2ZShtc2cu
ZGF0YS5jbGllbnRzKTsKLSAgICB9OwotICAgIHdvcmtlci5wb3N0TWVzc2FnZSh7Y29tbWFuZDog
J2dldENsaWVudHMnLCBhY3R1YWxfaWRzLCBwb3J0OiBjaGFubmVsLnBvcnQyfSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgW2NoYW5uZWwucG9ydDJdKTsKKyAgICAgICAge2lkOiBtZXNzYWdlX2lk
LCBtZXNzYWdlOiBtZXNzYWdlfSwKKyAgICAgICAgaG9zdF9pbmZvWydIVFRQU19SRU1PVEVfT1JJ
R0lOJ10pOwogICB9KTsKIH0KIAotLy8gUmV0dXJucyBhbiBhcnJheSBvZiB0aGUgVVJMcyB0aGF0
IHx3b3JrZXJ8IHJlY2VpdmVkIGZldGNoIGV2ZW50cyBmb3I6Ci0vLyAgIFt1cmwxLCB1cmwyXQot
YXN5bmMgZnVuY3Rpb24gZ2V0X2ludGVyY2VwdGVkX3VybHMod29ya2VyKSB7Ci0gIGNvbnN0IGlu
Zm9zID0gYXdhaXQgZ2V0X3JlcXVlc3RfaW5mb3Mod29ya2VyKTsKLSAgcmV0dXJuIGluZm9zLm1h
cChpbmZvID0+IHsgcmV0dXJuIGluZm8udXJsOyB9KTsKLX0KLQotLy8gUmV0dXJucyB0aGUgcmVx
dWVzdHMgdGhhdCB8d29ya2VyfCByZWNlaXZlZCBmZXRjaCBldmVudHMgZm9yLiBUaGUgcmV0dXJu
Ci0vLyB2YWx1ZSBpcyBhbiBhcnJheSBvZiBmb3JtYXQ6Ci0vLyBbCi0vLyAgIHt1cmw6IHVybDEs
IHJlc3VsdGluZ0NsaWVudElkOiBpZH0sCi0vLyAgIHt1cmw6IHVybDIsIHJlc3VsdGluZ0NsaWVu
dElkOiBpZH0KLS8vIF0KLWZ1bmN0aW9uIGdldF9yZXF1ZXN0X2luZm9zKHdvcmtlcikgeworZnVu
Y3Rpb24gZ2V0X2ludGVyY2VwdGVkX3VybHMod29ya2VyKSB7CiAgIHJldHVybiBuZXcgUHJvbWlz
ZShyZXNvbHZlID0+IHsKICAgICB2YXIgY2hhbm5lbCA9IG5ldyBNZXNzYWdlQ2hhbm5lbCgpOwot
ICAgIGNoYW5uZWwucG9ydDEub25tZXNzYWdlID0gKG1zZykgPT4gewotICAgICAgcmVzb2x2ZSht
c2cuZGF0YS5yZXF1ZXN0SW5mb3MpOwotICAgIH07Ci0gICAgd29ya2VyLnBvc3RNZXNzYWdlKHtj
b21tYW5kOiAnZ2V0UmVxdWVzdEluZm9zJywgcG9ydDogY2hhbm5lbC5wb3J0Mn0sCi0gICAgICAg
ICAgICAgICAgICAgICAgIFtjaGFubmVsLnBvcnQyXSk7CisgICAgY2hhbm5lbC5wb3J0MS5vbm1l
c3NhZ2UgPSBmdW5jdGlvbihtc2cpIHsgcmVzb2x2ZShtc2cuZGF0YS51cmxzKTsgfTsKKyAgICB3
b3JrZXIucG9zdE1lc3NhZ2Uoe3BvcnQ6IGNoYW5uZWwucG9ydDJ9LCBbY2hhbm5lbC5wb3J0Ml0p
OwogICB9KTsKIH0KIAotLy8gUmV0dXJucyBhbiBhcnJheSBvZiB0aGUgcmVxdWVzdHMgdGhlIHdv
cmtlcnMgcmVjZWl2ZWQgZmV0Y2ggZXZlbnRzIGZvcjoKLS8vIFsKLS8vICAgLy8gUmVxdWVzdHMg
ZnJvbSB3b3JrZXJzWzBdLgotLy8gICBbCi0vLyAgICAge3VybDogdXJsMSwgcmVzdWx0aW5nQ2xp
ZW50SWRUYWc6IHRhZzF9LAotLy8gICAgIHt1cmw6IHVybDIsIHJlc3VsdGluZ0NsaWVudElkVGFn
OiB0YWcxfQotLy8gICBdLAotLy8KLS8vICAgLy8gUmVxdWVzdHMgZnJvbSB3b3JrZXJzWzFdLgot
Ly8gICBbe3VybDogdXJsMywgcmVzdWx0aW5nQ2xpZW50SWRUYWc6IHRhZzJ9XSwKLS8vCi0vLyAg
IC8vIFJlcXVlc3RzIGZyb20gdGhlIGNyb3NzLW9yaWdpbiB3b3JrZXIuCi0vLyAgIFtdCi0vLyBd
Ci1hc3luYyBmdW5jdGlvbiBnZXRfYWxsX3JlcXVlc3RfaW5mb3MoKSAgewotICBjb25zdCByZXF1
ZXN0X2luZm9zID0gW107Ci0gIHJlcXVlc3RfaW5mb3MucHVzaChhd2FpdCBnZXRfcmVxdWVzdF9p
bmZvcyh3b3JrZXJzWzBdKSk7Ci0gIHJlcXVlc3RfaW5mb3MucHVzaChhd2FpdCBnZXRfcmVxdWVz
dF9pbmZvcyh3b3JrZXJzWzFdKSk7Ci0gIHJlcXVlc3RfaW5mb3MucHVzaChhd2FpdCBzZW5kX3Rv
X2lmcmFtZShvdGhlcl9vcmlnaW5fZnJhbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB7Y29tbWFuZDogJ2dldF9yZXF1ZXN0X2luZm9zJ30pKTsKLSAgcmV0dXJu
IHJlcXVlc3RfaW5mb3M7Ci19Ci0KLWxldCB1cmw7Ci1sZXQgdXJsMTsKLWxldCB1cmwyOwotCiAv
LyBOb3JtYWwgcmVkaXJlY3QgKGZyb20gb3V0LXNjb3BlIHRvIGluLXNjb3BlKS4KLXVybCA9IFND
T1BFMTsKIHJlZGlyZWN0X3Rlc3QoCi0gICAgT1VUX1NDT1BFICsgJ3VybD0nICsgZW5jb2RlVVJJ
Q29tcG9uZW50KHVybCksCi0gICAgdXJsLAotICAgIFtbe3VybCwgcmVzdWx0aW5nQ2xpZW50SWRU
YWc6ICd4J31dLCBbXSwgW11dLAotICAgICd4JywKKyAgICBPVVRfU0NPUEUgKyAndXJsPScgKyBl
bmNvZGVVUklDb21wb25lbnQoU0NPUEUxKSwKKyAgICBTQ09QRTEsCisgICAgW1tTQ09QRTFdLCBb
XSwgW11dLAogICAgICdOb3JtYWwgcmVkaXJlY3QgdG8gc2FtZS1vcmlnaW4gc2NvcGUuJyk7Ci0K
LQotdXJsID0gU0NPUEUxICsgJyNyZWYnOwogcmVkaXJlY3RfdGVzdCgKICAgICBPVVRfU0NPUEUg
KyAndXJsPScgKyBlbmNvZGVVUklDb21wb25lbnQoU0NPUEUxKSArICcjcmVmJywKLSAgICB1cmws
Ci0gICAgW1t7dXJsLCByZXN1bHRpbmdDbGllbnRJZFRhZzogJ3gnfV0sIFtdLCBbXV0sCi0gICAg
J3gnLAorICAgIFNDT1BFMSArICcjcmVmJywKKyAgICBbW1NDT1BFMSArICcjcmVmJ10sIFtdLCBb
XV0sCiAgICAgJ05vcm1hbCByZWRpcmVjdCB0byBzYW1lLW9yaWdpbiBzY29wZSB3aXRoIGEgaGFz
aCBmcmFnbWVudC4nKTsKLQotdXJsID0gU0NPUEUxICsgJyNyZWYyJzsKIHJlZGlyZWN0X3Rlc3Qo
Ci0gICAgT1VUX1NDT1BFICsgJ3VybD0nICsgZW5jb2RlVVJJQ29tcG9uZW50KHVybCkgKyAnI3Jl
ZicsCi0gICAgdXJsLAotICAgIFtbe3VybCwgcmVzdWx0aW5nQ2xpZW50SWRUYWc6ICd4J31dLCBb
XSwgW11dLAotICAgICd4JywKKyAgICBPVVRfU0NPUEUgKyAndXJsPScgKyBlbmNvZGVVUklDb21w
b25lbnQoU0NPUEUxICsgJyNyZWYyJykgKyAnI3JlZicsCisgICAgU0NPUEUxICsgJyNyZWYyJywK
KyAgICBbW1NDT1BFMSArICcjcmVmMiddLCBbXSwgW11dLAogICAgICdOb3JtYWwgcmVkaXJlY3Qg
dG8gc2FtZS1vcmlnaW4gc2NvcGUgd2l0aCBkaWZmZXJlbnQgaGFzaCBmcmFnbWVudHMuJyk7Ci0K
LXVybCA9IE9USEVSX09SSUdJTl9TQ09QRTsKIHJlZGlyZWN0X3Rlc3QoCi0gICAgT1VUX1NDT1BF
ICsgJ3VybD0nICsgZW5jb2RlVVJJQ29tcG9uZW50KHVybCksCi0gICAgdXJsLAotICAgIFtbXSwg
W10sIFt7dXJsLCByZXN1bHRpbmdDbGllbnRJZFRhZzogJ3gnfV1dLAotICAgICd4JywKKyAgICBP
VVRfU0NPUEUgKyAndXJsPScgKyBlbmNvZGVVUklDb21wb25lbnQoT1RIRVJfT1JJR0lOX1NDT1BF
KSwKKyAgICBPVEhFUl9PUklHSU5fU0NPUEUsCisgICAgW1tdLCBbXSwgW09USEVSX09SSUdJTl9T
Q09QRV1dLAogICAgICdOb3JtYWwgcmVkaXJlY3QgdG8gb3RoZXItb3JpZ2luIHNjb3BlLicpOwog
CiAvLyBTVyBmYWxsYmFja2VkIHJlZGlyZWN0LiBTVyBkb2Vzbid0IGhhbmRsZSB0aGUgZmV0Y2gg
cmVxdWVzdC4KLXVybCA9IFNDT1BFMSArICd1cmw9JyArIGVuY29kZVVSSUNvbXBvbmVudChPVVRf
U0NPUEUpOwogcmVkaXJlY3RfdGVzdCgKLSAgICB1cmwsCisgICAgU0NPUEUxICsgJ3VybD0nICsg
ZW5jb2RlVVJJQ29tcG9uZW50KE9VVF9TQ09QRSksCiAgICAgT1VUX1NDT1BFLAotICAgIFtbe3Vy
bCwgcmVzdWx0aW5nQ2xpZW50SWRUYWc6ICd4J31dLCBbXSwgW11dLAotICAgICd4JywKKyAgICBb
W1NDT1BFMSArICd1cmw9JyArIGVuY29kZVVSSUNvbXBvbmVudChPVVRfU0NPUEUpXSwgW10sIFtd
XSwKICAgICAnU1ctZmFsbGJhY2tlZCByZWRpcmVjdCB0byBzYW1lLW9yaWdpbiBvdXQtc2NvcGUu
Jyk7Ci0KLXVybDEgPSBTQ09QRTEgKyAndXJsPScgKyBlbmNvZGVVUklDb21wb25lbnQoU0NPUEUx
KTsKLXVybDIgPSBTQ09QRTE7CiByZWRpcmVjdF90ZXN0KAotICAgIHVybDEsCi0gICAgdXJsMiwK
LSAgICBbCi0gICAgICBbCi0gICAgICAgIHt1cmw6IHVybDEsIHJlc3VsdGluZ0NsaWVudElkVGFn
OiAneCd9LAotICAgICAgICB7dXJsOiB1cmwyLCByZXN1bHRpbmdDbGllbnRJZFRhZzogJ3gnfQot
ICAgICAgXSwKLSAgICAgIFtdLAotICAgICAgW10KLSAgICBdLAotICAgICd4JywKKyAgICBTQ09Q
RTEgKyAndXJsPScgKyBlbmNvZGVVUklDb21wb25lbnQoU0NPUEUxKSwKKyAgICBTQ09QRTEsCisg
ICAgW1tTQ09QRTEgKyAndXJsPScgKyBlbmNvZGVVUklDb21wb25lbnQoU0NPUEUxKSwgU0NPUEUx
XSwgW10sIFtdXSwKICAgICAnU1ctZmFsbGJhY2tlZCByZWRpcmVjdCB0byBzYW1lLW9yaWdpbiBz
YW1lLXNjb3BlLicpOwotCi11cmwxID0gU0NPUEUxICsgJ3VybD0nICsgZW5jb2RlVVJJQ29tcG9u
ZW50KFNDT1BFMSkgKyAnI3JlZic7Ci11cmwyID0gU0NPUEUxICsgJyNyZWYnOwogcmVkaXJlY3Rf
dGVzdCgKLSAgICB1cmwxLAotICAgIHVybDIsCisgICAgU0NPUEUxICsgJ3VybD0nICsgZW5jb2Rl
VVJJQ29tcG9uZW50KFNDT1BFMSkgKyAnI3JlZicsCisgICAgU0NPUEUxICsgJyNyZWYnLAogICAg
IFsKLSAgICAgIFsKLSAgICAgICAge3VybDogdXJsMSwgcmVzdWx0aW5nQ2xpZW50SWRUYWc6ICd4
J30sCi0gICAgICAgIHt1cmw6IHVybDIsIHJlc3VsdGluZ0NsaWVudElkVGFnOiAneCd9Ci0gICAg
ICBdLAorICAgICAgW1NDT1BFMSArICd1cmw9JyArIGVuY29kZVVSSUNvbXBvbmVudChTQ09QRTEp
ICsgJyNyZWYnLCBTQ09QRTEgKyAnI3JlZiddLAogICAgICAgW10sCiAgICAgICBbXQogICAgIF0s
Ci0gICAgJ3gnLAogICAgICdTVy1mYWxsYmFja2VkIHJlZGlyZWN0IHRvIHNhbWUtb3JpZ2luIHNh
bWUtc2NvcGUgd2l0aCBhIGhhc2ggZnJhZ21lbnQuJyk7Ci0KLXVybDEgPSBTQ09QRTEgKyAndXJs
PScgKyBlbmNvZGVVUklDb21wb25lbnQoU0NPUEUxICsgJyNyZWYyJykgKyAnI3JlZic7Ci11cmwy
ID0gU0NPUEUxICsgJyNyZWYyJzsKIHJlZGlyZWN0X3Rlc3QoCi0gICAgdXJsMSwKLSAgICB1cmwy
LAorICAgIFNDT1BFMSArICd1cmw9JyArIGVuY29kZVVSSUNvbXBvbmVudChTQ09QRTEgKyAnI3Jl
ZjInKSArICcjcmVmJywKKyAgICBTQ09QRTEgKyAnI3JlZjInLAogICAgIFsKICAgICAgIFsKLSAg
ICAgICAge3VybDogdXJsMSwgcmVzdWx0aW5nQ2xpZW50SWRUYWc6ICd4J30sCi0gICAgICAgIHt1
cmw6IHVybDIsIHJlc3VsdGluZ0NsaWVudElkVGFnOiAneCd9CisgICAgICAgIFNDT1BFMSArICd1
cmw9JyArIGVuY29kZVVSSUNvbXBvbmVudChTQ09QRTEgKyAnI3JlZjInKSArICcjcmVmJywKKyAg
ICAgICAgU0NPUEUxICsgJyNyZWYyJwogICAgICAgXSwKICAgICAgIFtdLAogICAgICAgW10KICAg
ICBdLAotICAgICd4JywKICAgICAnU1ctZmFsbGJhY2tlZCByZWRpcmVjdCB0byBzYW1lLW9yaWdp
biBzYW1lLXNjb3BlIHdpdGggZGlmZmVyZW50IGhhc2ggJyArCiAgICAgJ2ZyYWdtZW50cy4nKTsK
LQotdXJsMSA9IFNDT1BFMSArICd1cmw9JyArIGVuY29kZVVSSUNvbXBvbmVudChTQ09QRTIpOwot
dXJsMiA9IFNDT1BFMjsKIHJlZGlyZWN0X3Rlc3QoCi0gICAgdXJsMSwKLSAgICB1cmwyLAotICAg
IFsKLSAgICAgIFt7dXJsOiB1cmwxLCByZXN1bHRpbmdDbGllbnRJZFRhZzogJ3gnfV0sCi0gICAg
ICBbe3VybDogdXJsMiwgcmVzdWx0aW5nQ2xpZW50SWRUYWc6ICd4J31dLAotICAgICAgW10KLSAg
ICBdLAotICAgICd4JywKKyAgICBTQ09QRTEgKyAndXJsPScgKyBlbmNvZGVVUklDb21wb25lbnQo
U0NPUEUyKSwKKyAgICBTQ09QRTIsCisgICAgW1tTQ09QRTEgKyAndXJsPScgKyBlbmNvZGVVUklD
b21wb25lbnQoU0NPUEUyKV0sIFtTQ09QRTJdLCBbXV0sCiAgICAgJ1NXLWZhbGxiYWNrZWQgcmVk
aXJlY3QgdG8gc2FtZS1vcmlnaW4gb3RoZXItc2NvcGUuJyk7Ci0KLXVybDEgPSBTQ09QRTEgKyAn
dXJsPScgKyBlbmNvZGVVUklDb21wb25lbnQoT1RIRVJfT1JJR0lOX09VVF9TQ09QRSk7Ci11cmwy
ID0gT1RIRVJfT1JJR0lOX09VVF9TQ09QRTsKIHJlZGlyZWN0X3Rlc3QoCi0gICAgdXJsMSwKLSAg
ICB1cmwyLAotICAgIFtbe3VybDogdXJsMSwgcmVzdWx0aW5nQ2xpZW50SWRUYWc6ICdhJ31dLCBb
XSwgW11dLAotICAgIG51bGwsCisgICAgU0NPUEUxICsgJ3VybD0nICsgZW5jb2RlVVJJQ29tcG9u
ZW50KE9USEVSX09SSUdJTl9PVVRfU0NPUEUpLAorICAgIE9USEVSX09SSUdJTl9PVVRfU0NPUEUs
CisgICAgW1tTQ09QRTEgKyAndXJsPScgKyBlbmNvZGVVUklDb21wb25lbnQoT1RIRVJfT1JJR0lO
X09VVF9TQ09QRSldLCBbXSwgW11dLAogICAgICdTVy1mYWxsYmFja2VkIHJlZGlyZWN0IHRvIG90
aGVyLW9yaWdpbiBvdXQtc2NvcGUuJyk7Ci0KLXVybDEgPSBTQ09QRTEgKyAndXJsPScgKyBlbmNv
ZGVVUklDb21wb25lbnQoT1RIRVJfT1JJR0lOX1NDT1BFKTsKLXVybDIgPSBPVEhFUl9PUklHSU5f
U0NPUEU7CiByZWRpcmVjdF90ZXN0KAotICAgIHVybDEsCi0gICAgdXJsMiwKKyAgICBTQ09QRTEg
KyAndXJsPScgKyBlbmNvZGVVUklDb21wb25lbnQoT1RIRVJfT1JJR0lOX1NDT1BFKSwKKyAgICBP
VEhFUl9PUklHSU5fU0NPUEUsCiAgICAgWwotICAgICAgW3t1cmw6IHVybDEsIHJlc3VsdGluZ0Ns
aWVudElkVGFnOiAnYSd9XSwKKyAgICAgIFtTQ09QRTEgKyAndXJsPScgKyBlbmNvZGVVUklDb21w
b25lbnQoT1RIRVJfT1JJR0lOX1NDT1BFKV0sCiAgICAgICBbXSwKLSAgICAgIFt7dXJsOiB1cmwy
LCByZXN1bHRpbmdDbGllbnRJZFRhZzogJ3gnfV0KKyAgICAgIFtPVEhFUl9PUklHSU5fU0NPUEVd
CiAgICAgXSwKLSAgICAneCcsCiAgICAgJ1NXLWZhbGxiYWNrZWQgcmVkaXJlY3QgdG8gb3RoZXIt
b3JpZ2luIGluLXNjb3BlLicpOwogCi0KLXVybDMgPSBTQ09QRTE7Ci11cmwyID0gT1RIRVJfT1JJ
R0lOX1NDT1BFICsgJ3VybD0nICsgZW5jb2RlVVJJQ29tcG9uZW50KHVybDMpOwotdXJsMSA9IFND
T1BFMSArICd1cmw9JyArIGVuY29kZVVSSUNvbXBvbmVudCh1cmwyKTsKLXJlZGlyZWN0X3Rlc3Qo
Ci0gICAgdXJsMSwKLSAgICB1cmwzLAotICAgIFsKLSAgICAgIFsKLSAgICAgICAge3VybDogdXJs
MSwgcmVzdWx0aW5nQ2xpZW50SWRUYWc6ICdhJ30sCi0gICAgICAgIHt1cmw6IHVybDMsIHJlc3Vs
dGluZ0NsaWVudElkVGFnOiAneCd9Ci0gICAgICBdLAotICAgICAgW10sCi0gICAgICBbe3VybDog
dXJsMiwgcmVzdWx0aW5nQ2xpZW50SWRUYWc6ICdiJ31dCi0gICAgXSwKLSAgICAneCcsCi0gICAg
J1NXLWZhbGxiYWNrZWQgcmVkaXJlY3QgdG8gb3RoZXItb3JpZ2luIGFuZCBiYWNrIHRvIHNhbWUt
b3JpZ2luLicpOwotCiAvLyBTVyBnZW5lcmF0ZWQgcmVkaXJlY3QuCiAvLyBTVzogZXZlbnQucmVz
cG9uZFdpdGgoUmVzcG9uc2UucmVkaXJlY3QocGFyYW1zWyd1cmwnXSkpOwotdXJsMSA9IFNDT1BF
MSArICdzdz1nZW4mdXJsPScgKyBlbmNvZGVVUklDb21wb25lbnQoT1VUX1NDT1BFKTsKLXVybDIg
PSBPVVRfU0NPUEU7CiByZWRpcmVjdF90ZXN0KAotICAgIHVybDEsCi0gICAgdXJsMiwKLSAgICBb
W3t1cmw6IHVybDEsIHJlc3VsdGluZ0NsaWVudElkVGFnOiAneCd9XSwgW10sIFtdXSwKLSAgICAn
eCcsCisgICAgU0NPUEUxICsgJ3N3PWdlbiZ1cmw9JyArIGVuY29kZVVSSUNvbXBvbmVudChPVVRf
U0NPUEUpLAorICAgIE9VVF9TQ09QRSwKKyAgICBbW1NDT1BFMSArICdzdz1nZW4mdXJsPScgKyBl
bmNvZGVVUklDb21wb25lbnQoT1VUX1NDT1BFKV0sIFtdLCBbXV0sCiAgICAgJ1NXLWdlbmVyYXRl
ZCByZWRpcmVjdCB0byBzYW1lLW9yaWdpbiBvdXQtc2NvcGUuJyk7Ci0KLXVybDEgPSBTQ09QRTEg
KyAnc3c9Z2VuJnVybD0nICsgZW5jb2RlVVJJQ29tcG9uZW50KE9VVF9TQ09QRSkgKyAnI3JlZic7
Ci11cmwyID0gT1VUX1NDT1BFICsgJyNyZWYnOwogcmVkaXJlY3RfdGVzdCgKLSAgICB1cmwxLAot
ICAgIHVybDIsCi0gICAgW1t7dXJsOiB1cmwxLCByZXN1bHRpbmdDbGllbnRJZFRhZzogJ3gnfV0s
IFtdLCBbXV0sCi0gICAgJ3gnLAorICAgIFNDT1BFMSArICdzdz1nZW4mdXJsPScgKyBlbmNvZGVV
UklDb21wb25lbnQoT1VUX1NDT1BFKSArICcjcmVmJywKKyAgICBPVVRfU0NPUEUgKyAnI3JlZics
CisgICAgWworICAgICAgW1NDT1BFMSArICdzdz1nZW4mdXJsPScgKyBlbmNvZGVVUklDb21wb25l
bnQoT1VUX1NDT1BFKSArICcjcmVmJ10sCisgICAgICBbXSwKKyAgICAgIFtdCisgICAgXSwKICAg
ICAnU1ctZ2VuZXJhdGVkIHJlZGlyZWN0IHRvIHNhbWUtb3JpZ2luIG91dC1zY29wZSB3aXRoIGEg
aGFzaCBmcmFnbWVudC4nKTsKLQotdXJsMSA9IFNDT1BFMSArICdzdz1nZW4mdXJsPScgKyBlbmNv
ZGVVUklDb21wb25lbnQoT1VUX1NDT1BFICsgJyNyZWYyJykgKyAnI3JlZic7Ci11cmwyID0gT1VU
X1NDT1BFICsgJyNyZWYyJzsKIHJlZGlyZWN0X3Rlc3QoCi0gICAgdXJsMSwKLSAgICB1cmwyLAot
ICAgIFtbe3VybDogdXJsMSwgcmVzdWx0aW5nQ2xpZW50SWRUYWc6ICd4J31dLCBbXSwgW11dLAot
ICAgICd4JywKLSAgICAnU1ctZ2VuZXJhdGVkIHJlZGlyZWN0IHRvIHNhbWUtb3JpZ2luIG91dC1z
Y29wZSB3aXRoIGRpZmZlcmVudCBoYXNoICcgKwotICAgICdmcmFnbWVudHMuJyk7Ci0KLXVybDEg
PSBTQ09QRTEgKyAnc3c9Z2VuJnVybD0nICsgZW5jb2RlVVJJQ29tcG9uZW50KFNDT1BFMSk7Ci11
cmwyID0gU0NPUEUxOwotcmVkaXJlY3RfdGVzdCgKLSAgICB1cmwxLAotICAgIHVybDIsCisgICAg
U0NPUEUxICsgJ3N3PWdlbiZ1cmw9JyArIGVuY29kZVVSSUNvbXBvbmVudChPVVRfU0NPUEUgKyAn
I3JlZjInKSArICcjcmVmJywKKyAgICBPVVRfU0NPUEUgKyAnI3JlZjInLAogICAgIFsKLSAgICAg
IFsKLSAgICAgICAge3VybDogdXJsMSwgcmVzdWx0aW5nQ2xpZW50SWRUYWc6ICd4J30sCi0gICAg
ICAgIHt1cmw6IHVybDIsIHJlc3VsdGluZ0NsaWVudElkVGFnOiAneCd9Ci0gICAgICBdLAorICAg
ICAgW1NDT1BFMSArICdzdz1nZW4mdXJsPScgKyBlbmNvZGVVUklDb21wb25lbnQoT1VUX1NDT1BF
ICsgJyNyZWYyJykgKyAnI3JlZiddLAogICAgICAgW10sCiAgICAgICBbXQogICAgIF0sCi0gICAg
J3gnLAorICAgICdTVy1nZW5lcmF0ZWQgcmVkaXJlY3QgdG8gc2FtZS1vcmlnaW4gb3V0LXNjb3Bl
IHdpdGggZGlmZmVyZW50IGhhc2ggJyArCisgICAgJ2ZyYWdtZW50cy4nKTsKK3JlZGlyZWN0X3Rl
c3QoCisgICAgU0NPUEUxICsgJ3N3PWdlbiZ1cmw9JyArIGVuY29kZVVSSUNvbXBvbmVudChTQ09Q
RTEpLAorICAgIFNDT1BFMSwKKyAgICBbW1NDT1BFMSArICdzdz1nZW4mdXJsPScgKyBlbmNvZGVV
UklDb21wb25lbnQoU0NPUEUxKSwgU0NPUEUxXSwgW10sIFtdXSwKICAgICAnU1ctZ2VuZXJhdGVk
IHJlZGlyZWN0IHRvIHNhbWUtb3JpZ2luIHNhbWUtc2NvcGUuJyk7Ci0KLXVybDEgPSBTQ09QRTEg
KyAnc3c9Z2VuJnVybD0nICsgZW5jb2RlVVJJQ29tcG9uZW50KFNDT1BFMik7Ci11cmwyID0gU0NP
UEUyOwogcmVkaXJlY3RfdGVzdCgKLSAgICB1cmwxLAotICAgIHVybDIsCisgICAgU0NPUEUxICsg
J3N3PWdlbiZ1cmw9JyArIGVuY29kZVVSSUNvbXBvbmVudChTQ09QRTIpLAorICAgIFNDT1BFMiwK
KyAgICBbW1NDT1BFMSArICdzdz1nZW4mdXJsPScgKyBlbmNvZGVVUklDb21wb25lbnQoU0NPUEUy
KV0sIFtTQ09QRTJdLCBbXV0sCisgICAgJ1NXLWdlbmVyYXRlZCByZWRpcmVjdCB0byBzYW1lLW9y
aWdpbiBvdGhlci1zY29wZS4nKTsKK3JlZGlyZWN0X3Rlc3QoCisgICAgU0NPUEUxICsgJ3N3PWdl
biZ1cmw9JyArIGVuY29kZVVSSUNvbXBvbmVudChPVEhFUl9PUklHSU5fT1VUX1NDT1BFKSwKKyAg
ICBPVEhFUl9PUklHSU5fT1VUX1NDT1BFLAogICAgIFsKLSAgICAgIFt7dXJsOiB1cmwxLCByZXN1
bHRpbmdDbGllbnRJZFRhZzogJ3gnfV0sCi0gICAgICBbe3VybDogdXJsMiwgcmVzdWx0aW5nQ2xp
ZW50SWRUYWc6ICd4J31dLAorICAgICAgW1NDT1BFMSArICdzdz1nZW4mdXJsPScgKyBlbmNvZGVV
UklDb21wb25lbnQoT1RIRVJfT1JJR0lOX09VVF9TQ09QRSldLAorICAgICAgW10sCiAgICAgICBb
XQogICAgIF0sCi0gICAgJ3gnLAotICAgICdTVy1nZW5lcmF0ZWQgcmVkaXJlY3QgdG8gc2FtZS1v
cmlnaW4gb3RoZXItc2NvcGUuJyk7Ci0KLXVybDEgPSBTQ09QRTEgKyAnc3c9Z2VuJnVybD0nICsg
ZW5jb2RlVVJJQ29tcG9uZW50KE9USEVSX09SSUdJTl9PVVRfU0NPUEUpOwotdXJsMiA9IE9USEVS
X09SSUdJTl9PVVRfU0NPUEU7Ci1yZWRpcmVjdF90ZXN0KAotICAgIHVybDEsCi0gICAgdXJsMiwK
LSAgICBbW3t1cmw6IHVybDEsIHJlc3VsdGluZ0NsaWVudElkVGFnOiAnYSd9XSwgW10sIFtdXSwK
LSAgICBudWxsLAogICAgICdTVy1nZW5lcmF0ZWQgcmVkaXJlY3QgdG8gb3RoZXItb3JpZ2luIG91
dC1zY29wZS4nKTsKLQotdXJsMSA9IFNDT1BFMSArICdzdz1nZW4mdXJsPScgKyBlbmNvZGVVUklD
b21wb25lbnQoT1RIRVJfT1JJR0lOX1NDT1BFKTsKLXVybDIgPSBPVEhFUl9PUklHSU5fU0NPUEU7
CiByZWRpcmVjdF90ZXN0KAotICAgIHVybDEsCi0gICAgdXJsMiwKKyAgICBTQ09QRTEgKyAnc3c9
Z2VuJnVybD0nICsgZW5jb2RlVVJJQ29tcG9uZW50KE9USEVSX09SSUdJTl9TQ09QRSksCisgICAg
T1RIRVJfT1JJR0lOX1NDT1BFLAogICAgIFsKLSAgICAgIFt7dXJsOiB1cmwxLCByZXN1bHRpbmdD
bGllbnRJZFRhZzogJ2EnfV0sCisgICAgICBbU0NPUEUxICsgJ3N3PWdlbiZ1cmw9JyArIGVuY29k
ZVVSSUNvbXBvbmVudChPVEhFUl9PUklHSU5fU0NPUEUpXSwKICAgICAgIFtdLAotICAgICAgW3t1
cmw6IHVybDIsIHJlc3VsdGluZ0NsaWVudElkVGFnOiAneCd9XQorICAgICAgW09USEVSX09SSUdJ
Tl9TQ09QRV0KICAgICBdLAotICAgICd4JywKICAgICAnU1ctZ2VuZXJhdGVkIHJlZGlyZWN0IHRv
IG90aGVyLW9yaWdpbiBpbi1zY29wZS4nKTsKIAotCiAvLyBTVyBmZXRjaGVkIHJlZGlyZWN0Lgog
Ly8gU1c6IGV2ZW50LnJlc3BvbmRXaXRoKGZldGNoKGV2ZW50LnJlcXVlc3QpKTsKLXVybDEgPSBT
Q09QRTEgKyAnc3c9ZmV0Y2gmdXJsPScgKyBlbmNvZGVVUklDb21wb25lbnQoT1VUX1NDT1BFKQot
dXJsMiA9IE9VVF9TQ09QRTsKIHJlZGlyZWN0X3Rlc3QoCi0gICAgdXJsMSwKLSAgICB1cmwyLAot
ICAgIFtbe3VybDogdXJsMSwgcmVzdWx0aW5nQ2xpZW50SWRUYWc6ICd4J31dLCBbXSwgW11dLAot
ICAgICd4JywKKyAgICBTQ09QRTEgKyAnc3c9ZmV0Y2gmdXJsPScgKyBlbmNvZGVVUklDb21wb25l
bnQoT1VUX1NDT1BFKSwKKyAgICBPVVRfU0NPUEUsCisgICAgW1tTQ09QRTEgKyAnc3c9ZmV0Y2gm
dXJsPScgKyBlbmNvZGVVUklDb21wb25lbnQoT1VUX1NDT1BFKV0sCisgICAgW10sCisgICAgW11d
LAogICAgICdTVy1mZXRjaGVkIHJlZGlyZWN0IHRvIHNhbWUtb3JpZ2luIG91dC1zY29wZS4nKTsK
LQotdXJsMSA9IFNDT1BFMSArICdzdz1mZXRjaCZ1cmw9JyArIGVuY29kZVVSSUNvbXBvbmVudChT
Q09QRTEpOwotdXJsMiA9IFNDT1BFMTsKIHJlZGlyZWN0X3Rlc3QoCi0gICAgdXJsMSwKLSAgICB1
cmwyLAotICAgIFsKLSAgICAgIFsKLSAgICAgICAge3VybDogdXJsMSwgcmVzdWx0aW5nQ2xpZW50
SWRUYWc6ICd4J30sCi0gICAgICAgIHt1cmw6IHVybDIsIHJlc3VsdGluZ0NsaWVudElkVGFnOiAn
eCd9Ci0gICAgICBdLAotICAgICAgW10sCi0gICAgICBbXQotICAgIF0sCi0gICAgJ3gnLAorICAg
IFNDT1BFMSArICdzdz1mZXRjaCZ1cmw9JyArIGVuY29kZVVSSUNvbXBvbmVudChTQ09QRTEpLAor
ICAgIFNDT1BFMSwKKyAgICBbW1NDT1BFMSArICdzdz1mZXRjaCZ1cmw9JyArIGVuY29kZVVSSUNv
bXBvbmVudChTQ09QRTEpLCBTQ09QRTFdLCBbXSwgW11dLAogICAgICdTVy1mZXRjaGVkIHJlZGly
ZWN0IHRvIHNhbWUtb3JpZ2luIHNhbWUtc2NvcGUuJyk7Ci0KLXVybDEgPSBTQ09QRTEgKyAnc3c9
ZmV0Y2gmdXJsPScgKyBlbmNvZGVVUklDb21wb25lbnQoU0NPUEUyKTsKLXVybDIgPSBTQ09QRTI7
CiByZWRpcmVjdF90ZXN0KAotICAgIHVybDEsCi0gICAgdXJsMiwKKyAgICBTQ09QRTEgKyAnc3c9
ZmV0Y2gmdXJsPScgKyBlbmNvZGVVUklDb21wb25lbnQoU0NPUEUyKSwKKyAgICBTQ09QRTIsCiAg
ICAgWwotICAgICAgW3t1cmw6IHVybDEsIHJlc3VsdGluZ0NsaWVudElkVGFnOiAneCd9XSwKLSAg
ICAgIFt7dXJsOiB1cmwyLCByZXN1bHRpbmdDbGllbnRJZFRhZzogJ3gnfV0sCisgICAgICBbU0NP
UEUxICsgJ3N3PWZldGNoJnVybD0nICsgZW5jb2RlVVJJQ29tcG9uZW50KFNDT1BFMildLAorICAg
ICAgW1NDT1BFMl0sCiAgICAgICBbXQogICAgIF0sCi0gICAgJ3gnLAogICAgICdTVy1mZXRjaGVk
IHJlZGlyZWN0IHRvIHNhbWUtb3JpZ2luIG90aGVyLXNjb3BlLicpOwotCi11cmwxID0gU0NPUEUx
ICsgJ3N3PWZldGNoJnVybD0nICsgZW5jb2RlVVJJQ29tcG9uZW50KE9USEVSX09SSUdJTl9PVVRf
U0NPUEUpOwotdXJsMiA9IE9USEVSX09SSUdJTl9PVVRfU0NPUEU7Ci1yZWRpcmVjdF90ZXN0KAot
ICAgIHVybDEsCi0gICAgdXJsMiwKLSAgICBbW3t1cmw6IHVybDEsIHJlc3VsdGluZ0NsaWVudElk
VGFnOiAnYSd9XSwgW10sIFtdXSwKLSAgICBudWxsLAotICAgICdTVy1mZXRjaGVkIHJlZGlyZWN0
IHRvIG90aGVyLW9yaWdpbiBvdXQtc2NvcGUuJyk7Ci0KLXVybDEgPSBTQ09QRTEgKyAnc3c9ZmV0
Y2gmdXJsPScgKyBlbmNvZGVVUklDb21wb25lbnQoT1RIRVJfT1JJR0lOX1NDT1BFKTsKLXVybDIg
PSBPVEhFUl9PUklHSU5fU0NPUEU7CiByZWRpcmVjdF90ZXN0KAotICAgIHVybDEsCi0gICAgdXJs
MiwKKyAgICBTQ09QRTEgKyAnc3c9ZmV0Y2gmdXJsPScgKyBlbmNvZGVVUklDb21wb25lbnQoT1RI
RVJfT1JJR0lOX09VVF9TQ09QRSksCisgICAgT1RIRVJfT1JJR0lOX09VVF9TQ09QRSwKICAgICBb
Ci0gICAgICBbe3VybDogdXJsMSwgcmVzdWx0aW5nQ2xpZW50SWRUYWc6ICdhJ31dLAorICAgICAg
W1NDT1BFMSArICdzdz1mZXRjaCZ1cmw9JyArIGVuY29kZVVSSUNvbXBvbmVudChPVEhFUl9PUklH
SU5fT1VUX1NDT1BFKV0sCiAgICAgICBbXSwKLSAgICAgIFt7dXJsOiB1cmwyLCByZXN1bHRpbmdD
bGllbnRJZFRhZzogJ3gnfV0KLSAgICBdLAotICAgICd4JywKLSAgICAnU1ctZmV0Y2hlZCByZWRp
cmVjdCB0byBvdGhlci1vcmlnaW4gaW4tc2NvcGUuJyk7Ci0KLQotLy8gU1cgcmVzcG9uZHMgd2l0
aCBhIGZldGNoIGZyb20gYSBkaWZmZXJlbnQgdXJsLgotLy8gU1c6IGV2ZW50LnJlc3BvbmRXaXRo
KGZldGNoKHBhcmFtc1sndXJsJ10pKTsKLXVybDIgPSBTQ09QRTE7Ci11cmwxID0gU0NPUEUxICsg
J3N3PWZldGNoLXVybCZ1cmw9JyArIGVuY29kZVVSSUNvbXBvbmVudCh1cmwyKTsKKyAgICAgIFtd
CisgICAgXSwgJ1NXLWZldGNoZWQgcmVkaXJlY3QgdG8gb3RoZXItb3JpZ2luIG91dC1zY29wZS4n
KTsKIHJlZGlyZWN0X3Rlc3QoCi0gICAgdXJsMSwKLSAgICB1cmwxLAorICAgIFNDT1BFMSArICdz
dz1mZXRjaCZ1cmw9JyArIGVuY29kZVVSSUNvbXBvbmVudChPVEhFUl9PUklHSU5fU0NPUEUpLAor
ICAgIE9USEVSX09SSUdJTl9TQ09QRSwKICAgICBbCi0gICAgICBbCi0gICAgICAgIHt1cmw6IHVy
bDEsIHJlc3VsdGluZ0NsaWVudElkVGFnOiAneCd9Ci0gICAgICBdLAorICAgICAgW1NDT1BFMSAr
ICdzdz1mZXRjaCZ1cmw9JyArIGVuY29kZVVSSUNvbXBvbmVudChPVEhFUl9PUklHSU5fU0NPUEUp
XSwKICAgICAgIFtdLAotICAgICAgW10KKyAgICAgIFtPVEhFUl9PUklHSU5fU0NPUEVdCiAgICAg
XSwKLSAgICAneCcsCi0gICAgJ1NXLWZldGNoZWQgcmVzcG9uc2UgZnJvbSBkaWZmZXJlbnQgVVJM
LCBzYW1lLW9yaWdpbiBzYW1lLXNjb3BlLicpOwotCisgICAgJ1NXLWZldGNoZWQgcmVkaXJlY3Qg
dG8gb3RoZXItb3JpZ2luIGluLXNjb3BlLicpOwogCiAvLyBPcGFxdWUgcmVkaXJlY3QuCiAvLyBT
VzogZXZlbnQucmVzcG9uZFdpdGgoZmV0Y2goCiAvLyAgICAgICAgIG5ldyBSZXF1ZXN0KGV2ZW50
LnJlcXVlc3QudXJsLCB7cmVkaXJlY3Q6ICdtYW51YWwnfSkpKTsKLXVybDEgPSBTQ09QRTEgKyAn
c3c9bWFudWFsJnVybD0nICsgZW5jb2RlVVJJQ29tcG9uZW50KE9VVF9TQ09QRSk7Ci11cmwyID0g
T1VUX1NDT1BFOwogcmVkaXJlY3RfdGVzdCgKLSAgICB1cmwxLAotICAgIHVybDIsCi0gICAgW1t7
dXJsOiB1cmwxLCByZXN1bHRpbmdDbGllbnRJZFRhZzogJ3gnfV0sIFtdLCBbXV0sCi0gICAgJ3gn
LAorICAgIFNDT1BFMSArICdzdz1tYW51YWwmdXJsPScgKyBlbmNvZGVVUklDb21wb25lbnQoT1VU
X1NDT1BFKSwKKyAgICBPVVRfU0NPUEUsCisgICAgW1tTQ09QRTEgKyAnc3c9bWFudWFsJnVybD0n
ICsgZW5jb2RlVVJJQ29tcG9uZW50KE9VVF9TQ09QRSldLCBbXSwgW11dLAogICAgICdSZWRpcmVj
dCB0byBzYW1lLW9yaWdpbiBvdXQtc2NvcGUgd2l0aCBvcGFxdWUgcmVkaXJlY3QgcmVzcG9uc2Uu
Jyk7Ci0KLXVybDEgPSBTQ09QRTEgKyAnc3c9bWFudWFsJnVybD0nICsgZW5jb2RlVVJJQ29tcG9u
ZW50KFNDT1BFMSk7Ci11cmwyID0gU0NPUEUxOwogcmVkaXJlY3RfdGVzdCgKLSAgICB1cmwxLAot
ICAgIHVybDIsCi0gICAgWwotICAgICAgWwotICAgICAgICB7dXJsOiB1cmwxLCByZXN1bHRpbmdD
bGllbnRJZFRhZzogJ3gnfSwKLSAgICAgICAge3VybDogdXJsMiwgcmVzdWx0aW5nQ2xpZW50SWRU
YWc6ICd4J30KLSAgICAgIF0sCi0gICAgICBbXSwKLSAgICAgIFtdCi0gICAgXSwKLSAgICAneCcs
CisgICAgU0NPUEUxICsgJ3N3PW1hbnVhbCZ1cmw9JyArIGVuY29kZVVSSUNvbXBvbmVudChTQ09Q
RTEpLAorICAgIFNDT1BFMSwKKyAgICBbW1NDT1BFMSArICdzdz1tYW51YWwmdXJsPScgKyBlbmNv
ZGVVUklDb21wb25lbnQoU0NPUEUxKSwgU0NPUEUxXSwgW10sIFtdXSwKICAgICAnUmVkaXJlY3Qg
dG8gc2FtZS1vcmlnaW4gc2FtZS1zY29wZSB3aXRoIG9wYXF1ZSByZWRpcmVjdCByZXNwb25zZS4n
KTsKLQotdXJsMSA9IFNDT1BFMSArICdzdz1tYW51YWwmdXJsPScgKyBlbmNvZGVVUklDb21wb25l
bnQoU0NPUEUyKTsKLXVybDIgPSBTQ09QRTI7CiByZWRpcmVjdF90ZXN0KAotICAgIHVybDEsCi0g
ICAgdXJsMiwKKyAgICBTQ09QRTEgKyAnc3c9bWFudWFsJnVybD0nICsgZW5jb2RlVVJJQ29tcG9u
ZW50KFNDT1BFMiksCisgICAgU0NPUEUyLAorICAgIFtbU0NPUEUxICsgJ3N3PW1hbnVhbCZ1cmw9
JyArIGVuY29kZVVSSUNvbXBvbmVudChTQ09QRTIpXSwgW1NDT1BFMl0sIFtdXSwKKyAgICAnUmVk
aXJlY3QgdG8gc2FtZS1vcmlnaW4gb3RoZXItc2NvcGUgd2l0aCBvcGFxdWUgcmVkaXJlY3QgcmVz
cG9uc2UuJyk7CityZWRpcmVjdF90ZXN0KAorICAgIFNDT1BFMSArICdzdz1tYW51YWwmdXJsPScg
KworICAgIGVuY29kZVVSSUNvbXBvbmVudChPVEhFUl9PUklHSU5fT1VUX1NDT1BFKSwKKyAgICBP
VEhFUl9PUklHSU5fT1VUX1NDT1BFLAogICAgIFsKLSAgICAgIFt7dXJsOiB1cmwxLCByZXN1bHRp
bmdDbGllbnRJZFRhZzogJ3gnfV0sCi0gICAgICBbe3VybDogdXJsMiwgcmVzdWx0aW5nQ2xpZW50
SWRUYWc6ICd4J31dLAorICAgICAgW1NDT1BFMSArICdzdz1tYW51YWwmdXJsPScgKyBlbmNvZGVV
UklDb21wb25lbnQoT1RIRVJfT1JJR0lOX09VVF9TQ09QRSldLAorICAgICAgW10sCiAgICAgICBb
XQogICAgIF0sCi0gICAgJ3gnLAotICAgICdSZWRpcmVjdCB0byBzYW1lLW9yaWdpbiBvdGhlci1z
Y29wZSB3aXRoIG9wYXF1ZSByZWRpcmVjdCByZXNwb25zZS4nKTsKLQotdXJsMSA9IFNDT1BFMSAr
ICdzdz1tYW51YWwmdXJsPScgKyBlbmNvZGVVUklDb21wb25lbnQoT1RIRVJfT1JJR0lOX09VVF9T
Q09QRSk7Ci11cmwyID0gT1RIRVJfT1JJR0lOX09VVF9TQ09QRTsKLXJlZGlyZWN0X3Rlc3QoCi0g
ICAgdXJsMSwKLSAgICB1cmwyLAotICAgIFtbe3VybDogdXJsMSwgcmVzdWx0aW5nQ2xpZW50SWRU
YWc6ICdhJ31dLCBbXSwgW11dLAotICAgIG51bGwsCiAgICAgJ1JlZGlyZWN0IHRvIG90aGVyLW9y
aWdpbiBvdXQtc2NvcGUgd2l0aCBvcGFxdWUgcmVkaXJlY3QgcmVzcG9uc2UuJyk7Ci0KLXVybDEg
PSBTQ09QRTEgKyAnc3c9bWFudWFsJnVybD0nICsgZW5jb2RlVVJJQ29tcG9uZW50KE9USEVSX09S
SUdJTl9TQ09QRSk7Ci11cmwyID0gT1RIRVJfT1JJR0lOX1NDT1BFOwogcmVkaXJlY3RfdGVzdCgK
LSAgICB1cmwxLAotICAgIHVybDIsCisgICAgU0NPUEUxICsgJ3N3PW1hbnVhbCZ1cmw9JyArIGVu
Y29kZVVSSUNvbXBvbmVudChPVEhFUl9PUklHSU5fU0NPUEUpLAorICAgIE9USEVSX09SSUdJTl9T
Q09QRSwKICAgICBbCi0gICAgICBbe3VybDogdXJsMSwgcmVzdWx0aW5nQ2xpZW50SWRUYWc6ICdh
J31dLAorICAgICAgW1NDT1BFMSArICdzdz1tYW51YWwmdXJsPScgKyBlbmNvZGVVUklDb21wb25l
bnQoT1RIRVJfT1JJR0lOX1NDT1BFKV0sCiAgICAgICBbXSwKLSAgICAgIFt7dXJsOiB1cmwyLCBy
ZXN1bHRpbmdDbGllbnRJZFRhZzogJ3gnfV0KKyAgICAgIFtPVEhFUl9PUklHSU5fU0NPUEVdCiAg
ICAgXSwKLSAgICAneCcsCiAgICAgJ1JlZGlyZWN0IHRvIG90aGVyLW9yaWdpbiBpbi1zY29wZSB3
aXRoIG9wYXF1ZSByZWRpcmVjdCByZXNwb25zZS4nKTsKLQotdXJsPSBTQ09QRTEgKyAnc3c9bWFu
dWFsJm5vTG9jYXRpb25SZWRpcmVjdCc7CiByZWRpcmVjdF90ZXN0KAotICAgIHVybCwgdXJsLCBb
W3t1cmwsIHJlc3VsdGluZ0NsaWVudElkVGFnOiAneCd9XSwgW10sIFtdXSwKLSAgICAneCcsCisg
ICAgU0NPUEUxICsgJ3N3PW1hbnVhbCZub0xvY2F0aW9uUmVkaXJlY3QnLAorICAgIFNDT1BFMSAr
ICdzdz1tYW51YWwmbm9Mb2NhdGlvblJlZGlyZWN0JywKKyAgICBbW1NDT1BFMSArICdzdz1tYW51
YWwmbm9Mb2NhdGlvblJlZGlyZWN0J10sIFtdLCBbXV0sCiAgICAgJ05vIGxvY2F0aW9uIHJlZGly
ZWN0IHJlc3BvbnNlLicpOwogCi0KIC8vIE9wYXF1ZSByZWRpcmVjdCBwYXNzZWQgdGhyb3VnaCBD
YWNoZS4KIC8vIFNXIHJlc3BvbmRzIHdpdGggYW4gb3BhcXVlIHJlZGlyZWN0cmVzcG9uc2UgZnJv
bSB0aGUgQ2FjaGUgQVBJLgotdXJsMSA9IFNDT1BFMSArICdzdz1tYW51YWxUaHJvdWdoQ2FjaGUm
dXJsPScgKyBlbmNvZGVVUklDb21wb25lbnQoT1VUX1NDT1BFKTsKLXVybDIgPSBPVVRfU0NPUEU7
CiByZWRpcmVjdF90ZXN0KAotICAgIHVybDEsCi0gICAgdXJsMiwKLSAgICBbW3t1cmw6IHVybDEs
IHJlc3VsdGluZ0NsaWVudElkVGFnOiAneCd9XSwgW10sIFtdXSwKLSAgICAneCcsCisgICAgU0NP
UEUxICsgJ3N3PW1hbnVhbFRocm91Z2hDYWNoZSZ1cmw9JyArIGVuY29kZVVSSUNvbXBvbmVudChP
VVRfU0NPUEUpLAorICAgIE9VVF9TQ09QRSwKKyAgICBbCisgICAgICBbU0NPUEUxICsgJ3N3PW1h
bnVhbFRocm91Z2hDYWNoZSZ1cmw9JyArIGVuY29kZVVSSUNvbXBvbmVudChPVVRfU0NPUEUpXSwK
KyAgICAgIFtdLAorICAgICAgW10KKyAgICBdLAogICAgICdSZWRpcmVjdCB0byBzYW1lLW9yaWdp
biBvdXQtc2NvcGUgd2l0aCBvcGFxdWUgcmVkaXJlY3QgcmVzcG9uc2Ugd2hpY2ggJyArCiAgICAg
J2lzIHBhc3NlZCB0aHJvdWdoIENhY2hlLicpOwotCi11cmwxID0gU0NPUEUxICsgJ3N3PW1hbnVh
bFRocm91Z2hDYWNoZSZ1cmw9JyArIGVuY29kZVVSSUNvbXBvbmVudChTQ09QRTEpOwotdXJsMiA9
IFNDT1BFMTsKIHJlZGlyZWN0X3Rlc3QoCi0gICAgdXJsMSwKLSAgICB1cmwyLAorICAgIFNDT1BF
MSArICdzdz1tYW51YWxUaHJvdWdoQ2FjaGUmdXJsPScgKyBlbmNvZGVVUklDb21wb25lbnQoU0NP
UEUxKSwKKyAgICBTQ09QRTEsCiAgICAgWwogICAgICAgWwotICAgICAgICB7dXJsOiB1cmwxLCBy
ZXN1bHRpbmdDbGllbnRJZFRhZzogJ3gnfSwKLSAgICAgICAge3VybDogdXJsMiwgcmVzdWx0aW5n
Q2xpZW50SWRUYWc6ICd4J30KKyAgICAgICAgU0NPUEUxICsgJ3N3PW1hbnVhbFRocm91Z2hDYWNo
ZSZ1cmw9JyArIGVuY29kZVVSSUNvbXBvbmVudChTQ09QRTEpLAorICAgICAgICBTQ09QRTEKICAg
ICAgIF0sCiAgICAgICBbXSwKICAgICAgIFtdCiAgICAgXSwKLSAgICAneCcsCiAgICAgJ1JlZGly
ZWN0IHRvIHNhbWUtb3JpZ2luIHNhbWUtc2NvcGUgd2l0aCBvcGFxdWUgcmVkaXJlY3QgcmVzcG9u
c2Ugd2hpY2ggJyArCiAgICAgJ2lzIHBhc3NlZCB0aHJvdWdoIENhY2hlLicpOwotCi11cmwxID0g
U0NPUEUxICsgJ3N3PW1hbnVhbFRocm91Z2hDYWNoZSZ1cmw9JyArIGVuY29kZVVSSUNvbXBvbmVu
dChTQ09QRTIpOwotdXJsMiA9IFNDT1BFMjsKIHJlZGlyZWN0X3Rlc3QoCi0gICAgdXJsMSwKLSAg
ICB1cmwyLAorICAgIFNDT1BFMSArICdzdz1tYW51YWxUaHJvdWdoQ2FjaGUmdXJsPScgKyBlbmNv
ZGVVUklDb21wb25lbnQoU0NPUEUyKSwKKyAgICBTQ09QRTIsCiAgICAgWwotICAgICAgW3t1cmw6
IHVybDEsIHJlc3VsdGluZ0NsaWVudElkVGFnOiAneCd9XSwKLSAgICAgIFt7dXJsOiB1cmwyLCBy
ZXN1bHRpbmdDbGllbnRJZFRhZzogJ3gnfV0sCisgICAgICBbU0NPUEUxICsgJ3N3PW1hbnVhbFRo
cm91Z2hDYWNoZSZ1cmw9JyArIGVuY29kZVVSSUNvbXBvbmVudChTQ09QRTIpXSwKKyAgICAgIFtT
Q09QRTJdLAogICAgICAgW10KICAgICBdLAotICAgICd4JywKICAgICAnUmVkaXJlY3QgdG8gc2Ft
ZS1vcmlnaW4gb3RoZXItc2NvcGUgd2l0aCBvcGFxdWUgcmVkaXJlY3QgcmVzcG9uc2Ugd2hpY2gg
JyArCiAgICAgJ2lzIHBhc3NlZCB0aHJvdWdoIENhY2hlLicpOwotCi11cmwxID0gU0NPUEUxICsg
J3N3PW1hbnVhbFRocm91Z2hDYWNoZSZ1cmw9JyArCi0gICAgICAgZW5jb2RlVVJJQ29tcG9uZW50
KE9USEVSX09SSUdJTl9PVVRfU0NPUEUpOwotdXJsMiA9IE9USEVSX09SSUdJTl9PVVRfU0NPUEU7
Ci1yZWRpcmVjdF90ZXN0KAotICAgIHVybDEsCi0gICAgdXJsMiwKLSAgICBbW3t1cmw6IHVybDEs
IHJlc3VsdGluZ0NsaWVudElkVGFnOiAnYSd9XSwgW10sIFtdXSwKLSAgICBudWxsLAorcmVkaXJl
Y3RfdGVzdCgKKyAgICBTQ09QRTEgKyAnc3c9bWFudWFsVGhyb3VnaENhY2hlJnVybD0nICsKKyAg
ICAgICAgZW5jb2RlVVJJQ29tcG9uZW50KE9USEVSX09SSUdJTl9PVVRfU0NPUEUpLAorICAgIE9U
SEVSX09SSUdJTl9PVVRfU0NPUEUsCisgICAgWworICAgICAgW1NDT1BFMSArICdzdz1tYW51YWxU
aHJvdWdoQ2FjaGUmdXJsPScgKworICAgICAgICAgIGVuY29kZVVSSUNvbXBvbmVudChPVEhFUl9P
UklHSU5fT1VUX1NDT1BFKQorICAgICAgXSwKKyAgICAgIFtdLAorICAgICAgW10KKyAgICBdLAog
ICAgICdSZWRpcmVjdCB0byBvdGhlci1vcmlnaW4gb3V0LXNjb3BlIHdpdGggb3BhcXVlIHJlZGly
ZWN0IHJlc3BvbnNlIHdoaWNoICcgKwogICAgICdpcyBwYXNzZWQgdGhyb3VnaCBDYWNoZS4nKTsK
LQotdXJsMSA9IFNDT1BFMSArICdzdz1tYW51YWxUaHJvdWdoQ2FjaGUmdXJsPScgKwotICAgICAg
IGVuY29kZVVSSUNvbXBvbmVudChPVEhFUl9PUklHSU5fU0NPUEUpOwotdXJsMiA9IE9USEVSX09S
SUdJTl9TQ09QRTsKIHJlZGlyZWN0X3Rlc3QoCi0gICAgdXJsMSwKLSAgICB1cmwyLAorICAgIFND
T1BFMSArICdzdz1tYW51YWxUaHJvdWdoQ2FjaGUmdXJsPScgKworICAgICAgICBlbmNvZGVVUklD
b21wb25lbnQoT1RIRVJfT1JJR0lOX1NDT1BFKSwKKyAgICBPVEhFUl9PUklHSU5fU0NPUEUsCiAg
ICAgWwotICAgICAgW3t1cmw6IHVybDEsIHJlc3VsdGluZ0NsaWVudElkVGFnOiAnYSd9XSwKLSAg
ICAgIFtdLAotICAgICAgW3t1cmw6IHVybDIsIHJlc3VsdGluZ0NsaWVudElkVGFnOiAneCd9XSwK
KyAgICAgIFtTQ09QRTEgKyAnc3c9bWFudWFsVGhyb3VnaENhY2hlJnVybD0nICsKKyAgICAgICAg
ICBlbmNvZGVVUklDb21wb25lbnQoT1RIRVJfT1JJR0lOX1NDT1BFKV0sCisgICAgICAgW10sCisg
ICAgICAgW09USEVSX09SSUdJTl9TQ09QRV0sCiAgICAgXSwKLSAgICAneCcsCiAgICAgJ1JlZGly
ZWN0IHRvIG90aGVyLW9yaWdpbiBpbi1zY29wZSB3aXRoIG9wYXF1ZSByZWRpcmVjdCByZXNwb25z
ZSB3aGljaCAnICsKICAgICAnaXMgcGFzc2VkIHRocm91Z2ggQ2FjaGUuJyk7Ci0KLXVybCA9IFND
T1BFMSArICdzdz1tYW51YWxUaHJvdWdoQ2FjaGUmbm9Mb2NhdGlvblJlZGlyZWN0JzsKIHJlZGly
ZWN0X3Rlc3QoCi0gICAgdXJsLAotICAgIHVybCwKLSAgICBbW3t1cmwsIHJlc3VsdGluZ0NsaWVu
dElkVGFnOiAneCd9XSwgW10sIFtdXSwKLSAgICAneCcsCisgICAgU0NPUEUxICsgJ3N3PW1hbnVh
bFRocm91Z2hDYWNoZSZub0xvY2F0aW9uUmVkaXJlY3QnLAorICAgIFNDT1BFMSArICdzdz1tYW51
YWxUaHJvdWdoQ2FjaGUmbm9Mb2NhdGlvblJlZGlyZWN0JywKKyAgICBbW1NDT1BFMSArICdzdz1t
YW51YWxUaHJvdWdoQ2FjaGUmbm9Mb2NhdGlvblJlZGlyZWN0J10sIFtdLCBbXV0sCiAgICAgJ05v
IGxvY2F0aW9uIHJlZGlyZWN0IHJlc3BvbnNlIHZpYSBDYWNoZS4nKTsKIAogLy8gQ2xlYW4gdXAg
dGhlIHRlc3QgZW52aXJvbm1lbnQuIFRoaXMgcHJvbWlzZV90ZXN0KCkgbmVlZHMgdG8gYmUgdGhl
IGxhc3Qgb25lLgpAQCAtODM5LDcgKzQxOCw3IEBAIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsK
ICAgICBpZiAocmVnaXN0cmF0aW9uKQogICAgICAgYXdhaXQgcmVnaXN0cmF0aW9uLnVucmVnaXN0
ZXIoKTsKICAgfSk7Ci0gIGF3YWl0IHNlbmRfdG9faWZyYW1lKG90aGVyX29yaWdpbl9mcmFtZSwg
e2NvbW1hbmQ6ICd1bnJlZ2lzdGVyJ30pOworICBhd2FpdCBzZW5kX3RvX2lmcmFtZShvdGhlcl9v
cmlnaW5fZnJhbWUsICd1bnJlZ2lzdGVyJyk7CiAgIG90aGVyX29yaWdpbl9mcmFtZS5yZW1vdmUo
KTsKIH0sICdjbGVhbiB1cCBnbG9iYWwgc3RhdGUnKTsKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvb25hY3RpdmF0ZS1zY3JpcHQtZXJyb3IuaHR0cHMuaHRtbCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL29uYWN0aXZhdGUtc2NyaXB0LWVycm9yLmh0dHBzLmh0bWwKaW5kZXgg
ZjVlODBiYjlhNDU2YmM1N2YyYTgyMWUxZmQ2OTExNGU2YWU4NjM4YS4uNmMxNjM1N2YzY2M1YWJh
MTgxZWUwNzk4YWM5ZmFkYzIzODhjM2YzYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
b25hY3RpdmF0ZS1zY3JpcHQtZXJyb3IuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9vbmFjdGl2YXRlLXNjcmlwdC1lcnJvci5odHRwcy5odG1sCkBAIC0zNSw3ICszNSw3IEBAIGZ1
bmN0aW9uIG1ha2VfdGVzdChuYW1lLCBzY3JpcHQpIHsKICAgICAgICAgICAgIHJlZ2lzdHJhdGlv
biA9IHI7CiAKICAgICAgICAgICAgIHQuYWRkX2NsZWFudXAoZnVuY3Rpb24oKSB7Ci0gICAgICAg
ICAgICAgICAgcmV0dXJuIHIudW5yZWdpc3RlcigpOworICAgICAgICAgICAgICAgIHIudW5yZWdp
c3RlcigpOwogICAgICAgICAgICAgICB9KTsKIAogICAgICAgICAgICAgcmV0dXJuIHdhaXRfZm9y
X2luc3RhbGwocmVnaXN0cmF0aW9uLmluc3RhbGxpbmcpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvcGVyZm9ybWFuY2UtdGltZWxpbmUuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3BlcmZvcm1hbmNlLXRpbWVsaW5lLmh0dHBzLmh0bWwKaW5kZXggMWZlMTlkYTUzYmU2YzQ2
MGNhZTVmMDY5Nzk0YmJkZWUzZjRhMGRhOC4uYjY2ZDRhODIxODYxYjZlNmUzN2U0N2I2NTJmMzI3
NTZjODA2MjA1OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcGVyZm9ybWFuY2UtdGlt
ZWxpbmUuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9wZXJmb3JtYW5jZS10aW1l
bGluZS5odHRwcy5odG1sCkBAIC0xNywxMSArMTcsNyBAQCBwcm9taXNlX3Rlc3QodCA9PiB7CiAg
IGxldCBzbG93VVJMID0gdXJsICsgJyZzbG93JzsKICAgbGV0IGZyYW1lOwogICByZXR1cm4gc2Vy
dmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgc2NyaXB0LCBzY29wZSkKLSAg
ICAudGhlbihyZWcgPT4gewotICAgICAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHNlcnZpY2Vfd29y
a2VyX3VucmVnaXN0ZXIodCwgc2NvcGUpKTsKLQotICAgICAgICByZXR1cm4gd2FpdF9mb3Jfc3Rh
dGUodCwgcmVnLmluc3RhbGxpbmcsICdhY3RpdmF0ZWQnKTsKLSAgICAgIH0pCisgICAgLnRoZW4o
cmVnID0+IHdhaXRfZm9yX3N0YXRlKHQsIHJlZy5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJykpCiAg
ICAgLnRoZW4oXyA9PiB3aXRoX2lmcmFtZShzY29wZSkpCiAgICAgLnRoZW4oZiA9PiB7CiAgICAg
ICBmcmFtZSA9IGY7CkBAIC00Myw2ICszOSw3IEBAIHByb21pc2VfdGVzdCh0ID0+IHsKICAgICAg
IGFzc2VydF9ncmVhdGVyX3RoYW4oc2xvd1VSTFRpbWUsIHVybFRpbWUgKyAxMDAwLAogICAgICAg
ICAgICAgICAgICAgJ1Nsb3cgc2VydmljZSB3b3JrZXIgcmVxdWVzdCBzaG91bGQgbWVhc3VyZSBp
bmNyZWFzZWQgZGVsYXkuJyk7CiAgICAgICBmcmFtZS5yZW1vdmUoKTsKKyAgICAgIHJldHVybiBz
ZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9kb25lKHQsIHNjb3BlKTsKICAgICB9KQogfSwg
J2VtcHR5IHNlcnZpY2Ugd29ya2VyIGZldGNoIGV2ZW50IGluY2x1ZGVkIGluIHBlcmZvcm1hbmNl
IHRpbWluZ3MnKTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcG9zdG1lc3NhZ2Ut
ZnJvbS13YWl0aW5nLXNlcnZpY2V3b3JrZXIuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L3Bvc3RtZXNzYWdlLWZyb20td2FpdGluZy1zZXJ2aWNld29ya2VyLmh0dHBzLmh0bWwKaW5kZXgg
MTE3ZGVmOWViMmE2YzEzMmQ0ZDNmNDRiMWNiMDdhZGNiOWVlZWY2MC4uNmQwYTVkMzI3NGQ0MTRi
ZmNhMDMzOTA1NDBjMjk0OTBjNjYzODg3OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
cG9zdG1lc3NhZ2UtZnJvbS13YWl0aW5nLXNlcnZpY2V3b3JrZXIuaHR0cHMuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci9wb3N0bWVzc2FnZS1mcm9tLXdhaXRpbmctc2VydmljZXdvcmtlci5o
dHRwcy5odG1sCkBAIC0xNiwxNSArMTYsMTMgQEAgZnVuY3Rpb24gZWNobyh3b3JrZXIsIGRhdGEp
IHsKICAgfSk7CiB9CiAKLXByb21pc2VfdGVzdCh0ID0+IHsKK2FzeW5jX3Rlc3QodCA9PiB7CiAg
IGxldCBzY3JpcHQgPSAncmVzb3VyY2VzL2VjaG8tbWVzc2FnZS10by1zb3VyY2Utd29ya2VyLmpz
JzsKICAgbGV0IHNjb3BlID0gJ3Jlc291cmNlcy9jbGllbnQtcG9zdG1lc3NhZ2UtZnJvbS13YWl0
LXNlcnZpY2V3b3JrZXInOwogICBsZXQgcmVnaXN0cmF0aW9uOwogICBsZXQgZnJhbWU7Ci0gIHJl
dHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCBzY3JpcHQsIHNj
b3BlKQorICBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCBzY3JpcHQs
IHNjb3BlKQogICAgIC50aGVuKHN3ciA9PiB7Ci0gICAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHNl
cnZpY2Vfd29ya2VyX3VucmVnaXN0ZXIodCwgc2NvcGUpKTsKLQogICAgICAgcmVnaXN0cmF0aW9u
ID0gc3dyOwogICAgICAgcmV0dXJuIHdhaXRfZm9yX3N0YXRlKHQsIHJlZ2lzdHJhdGlvbi5pbnN0
YWxsaW5nLCAnYWN0aXZhdGVkJyk7CiAgICAgfSkudGhlbihfID0+IHsKQEAgLTQ1LDYgKzQzLDcg
QEAgcHJvbWlzZV90ZXN0KHQgPT4gewogICAgICAgYXNzZXJ0X2VxdWFscyhldnQuc291cmNlLCBy
ZWdpc3RyYXRpb24uYWN0aXZlLAogICAgICAgICAgICAgICAgICAgICAnbWVzc2FnZSBldmVudCBz
b3VyY2Ugc2hvdWxkIGJlIGNvcnJlY3QnKTsKICAgICAgIGZyYW1lLnJlbW92ZSgpOwotICAgIH0p
OworICAgIH0pLnRoZW4oXyA9PiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9kb25lKHQs
IHNjb3BlKSApCisgICAgLmNhdGNoKHVucmVhY2hlZF9yZWplY3Rpb24odCkpOwogfSwgJ0NsaWVu
dC5wb3N0TWVzc2FnZSgpIGZyb20gd2FpdGluZyBzZXJ2aWNld29ya2VyLicpOwogPC9zY3JpcHQ+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9wb3N0bWVzc2FnZS10by1jbGllbnQtbWVz
c2FnZS1xdWV1ZS5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9wb3N0bWVz
c2FnZS10by1jbGllbnQtbWVzc2FnZS1xdWV1ZS5odHRwcy1leHBlY3RlZC50eHQKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI1YWFkYmEwMDRiYjc5OTM2YmFjNzFmNjEyNjFkMjQwZWNm
YjM1ZjguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvcG9zdG1lc3NhZ2UtdG8tY2xpZW50LW1lc3NhZ2UtcXVldWUuaHR0cHMt
ZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNyArMCwwIEBACi0KLVBBU1MgTWVzc2Fn
ZXMgZnJvbSBTZXJ2aWNlV29ya2VyIHRvIENsaWVudCBvbmx5IHJlY2VpdmVkIGFmdGVyIERPTUNv
bnRlbnRMb2FkZWQgZXZlbnQuIAotUEFTUyBNZXNzYWdlcyBmcm9tIFNlcnZpY2VXb3JrZXIgdG8g
Q2xpZW50IG9ubHkgcmVjZWl2ZWQgYWZ0ZXIgY2FsbGluZyBzdGFydE1lc3NhZ2VzKCkuIAotUEFT
UyBNZXNzYWdlcyBmcm9tIFNlcnZpY2VXb3JrZXIgdG8gQ2xpZW50IG9ubHkgcmVjZWl2ZWQgYWZ0
ZXIgc2V0dGluZyBvbm1lc3NhZ2UuIAotUEFTUyBNaWNyb3Rhc2tzIHJ1biBiZWZvcmUgZGlzcGF0
Y2hpbmcgbWVzc2FnZXMgYWZ0ZXIgY2FsbGluZyBzdGFydE1lc3NhZ2VzKCkuIAotUEFTUyBNaWNy
b3Rhc2tzIHJ1biBiZWZvcmUgZGlzcGF0Y2hpbmcgbWVzc2FnZXMgYWZ0ZXIgc2V0dGluZyBvbm1l
c3NhZ2UuIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9wb3N0bWVzc2FnZS10by1j
bGllbnQtbWVzc2FnZS1xdWV1ZS5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcG9zdG1l
c3NhZ2UtdG8tY2xpZW50LW1lc3NhZ2UtcXVldWUuaHR0cHMuaHRtbApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggODNlNWY0NTQwZDE0MTFlMmEyMTVlYmU1OWQyMDM3ZjM2OWM0ODYxNi4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9wb3N0bWVzc2FnZS10by1jbGllbnQtbWVzc2FnZS1xdWV1ZS5odHRwcy5odG1sCisr
KyAvZGV2L251bGwKQEAgLTEsMjEyICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPHRpdGxlPlNl
cnZpY2UgV29ya2VyOiBwb3N0TWVzc2FnZSB0byBDbGllbnQgKG1lc3NhZ2UgcXVldWUpPC90aXRs
ZT4KLTxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSIvY29tbW9uL2dldC1ob3N0LWluZm8uc3ViLmpzIj48L3NjcmlwdD4KLTxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvdGVzdC1oZWxwZXJzLnN1Yi5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
PgotLy8gVGhpcyBmdW5jdGlvbiBjcmVhdGVzIGEgbWVzc2FnZSBsaXN0ZW5lciB0aGF0IGNhcHR1
cmVzIGFsbCBtZXNzYWdlcwotLy8gc2VudCB0byB0aGlzIHdpbmRvdyBhbmQgbWF0Y2hlcyB0aGVt
IHdpdGggY29ycmVzcG9uZGluZyByZXF1ZXN0cy4KLS8vIFRoaXMgZnJlZXMgdGVzdCBjb2RlIGZy
b20gaGF2aW5nIHRvIHVzZSBjbHVua3kgY29uc3RydWN0cyBqdXN0IHRvCi0vLyBhdm9pZCByYWNl
IGNvbmRpdGlvbnMsIHNpbmNlIHRoZSByZWxhdGl2ZSBvcmRlciBvZiBtZXNzYWdlIGFuZAotLy8g
cmVxdWVzdCBhcnJpdmFsIGRvZXNuJ3QgbWF0dGVyLgotZnVuY3Rpb24gY3JlYXRlX21lc3NhZ2Vf
bGlzdGVuZXIodCkgewotICAgIGNvbnN0IGxpc3RlbmVyID0gewotICAgICAgICBtZXNzYWdlczog
bmV3IFNldCgpLAotICAgICAgICByZXF1ZXN0czogbmV3IFNldCgpLAotICAgICAgICB3YWl0Rm9y
OiBmdW5jdGlvbihwcmVkaWNhdGUpIHsKLSAgICAgICAgICAgIGZvciAoY29uc3QgZXZlbnQgb2Yg
dGhpcy5tZXNzYWdlcykgewotICAgICAgICAgICAgICAgIC8vIElmIGEgbWVzc2FnZSBzYXRpc2Z5
aW5nIHRoZSBwcmVkaWNhdGUgaGFzIGFscmVhZHkKLSAgICAgICAgICAgICAgICAvLyBhcnJpdmVk
LCBpdCBnZXRzIG1hdGNoZWQgdG8gdGhpcyByZXF1ZXN0LgotICAgICAgICAgICAgICAgIGlmIChw
cmVkaWNhdGUoZXZlbnQpKSB7Ci0gICAgICAgICAgICAgICAgICAgIHRoaXMubWVzc2FnZXMuZGVs
ZXRlKGV2ZW50KTsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShl
dmVudCk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAv
LyBJZiBubyBtYXRjaCB3YXMgZm91bmQsIHRoZSByZXF1ZXN0IGlzIHN0b3JlZCBhbmQgYQotICAg
ICAgICAgICAgLy8gcHJvbWlzZSBpcyByZXR1cm5lZC4KLSAgICAgICAgICAgIGNvbnN0IHJlcXVl
c3QgPSB7IHByZWRpY2F0ZSB9OwotICAgICAgICAgICAgY29uc3QgcHJvbWlzZSA9IG5ldyBQcm9t
aXNlKHJlc29sdmUgPT4gcmVxdWVzdC5yZXNvbHZlID0gcmVzb2x2ZSk7Ci0gICAgICAgICAgICB0
aGlzLnJlcXVlc3RzLmFkZChyZXF1ZXN0KTsKLSAgICAgICAgICAgIHJldHVybiBwcm9taXNlOwot
ICAgICAgICB9Ci0gICAgfTsKLSAgICB3aW5kb3cub25tZXNzYWdlID0gdC5zdGVwX2Z1bmMoZXZl
bnQgPT4gewotICAgICAgICBmb3IgKGNvbnN0IHJlcXVlc3Qgb2YgbGlzdGVuZXIucmVxdWVzdHMp
IHsKLSAgICAgICAgICAgIC8vIElmIHRoZSBuZXcgbWVzc2FnZSBtYXRjaGVzIGEgc3RvcmVkIHJl
cXVlc3QncwotICAgICAgICAgICAgLy8gcHJlZGljYXRlLCB0aGUgcmVxdWVzdCdzIHByb21pc2Ug
aXMgcmVzb2x2ZWQgd2l0aCB0aGlzCi0gICAgICAgICAgICAvLyBtZXNzYWdlLgotICAgICAgICAg
ICAgaWYgKHJlcXVlc3QucHJlZGljYXRlKGV2ZW50KSkgewotICAgICAgICAgICAgICAgIGxpc3Rl
bmVyLnJlcXVlc3RzLmRlbGV0ZShyZXF1ZXN0KTsKLSAgICAgICAgICAgICAgICByZXF1ZXN0LnJl
c29sdmUoZXZlbnQpOwotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIH0KLSAg
ICAgICAgfTsKLQotICAgICAgICAvLyBObyBvdXRzdGFuZGluZyByZXF1ZXN0IGZvciB0aGlzIG1l
c3NhZ2UsIHN0b3JlIGl0IGluIGNhc2UKLSAgICAgICAgLy8gaXQncyByZXF1ZXN0ZWQgbGF0ZXIu
Ci0gICAgICAgIGxpc3RlbmVyLm1lc3NhZ2VzLmFkZChldmVudCk7Ci0gICAgfSk7Ci0gICAgcmV0
dXJuIGxpc3RlbmVyOwotfQotCi1hc3luYyBmdW5jdGlvbiBzZXJ2aWNlX3dvcmtlcl9yZWdpc3Rl
cl9hbmRfYWN0aXZhdGUodCwgc2NyaXB0LCBzY29wZSkgewotICAgIGNvbnN0IHJlZ2lzdHJhdGlv
biA9IGF3YWl0IHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHNjcmlw
dCwgc2NvcGUpOwotICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcmVnaXN0cmF0aW9uLnVucmVnaXN0
ZXIoKSk7Ci0gICAgY29uc3Qgd29ya2VyID0gcmVnaXN0cmF0aW9uLmluc3RhbGxpbmc7Ci0gICAg
YXdhaXQgd2FpdF9mb3Jfc3RhdGUodCwgd29ya2VyLCAnYWN0aXZhdGVkJyk7Ci0gICAgcmV0dXJu
IHdvcmtlcjsKLX0KLQotLy8gQWRkIGFuIGlmcmFtZSAocGFyZW50KSB3aG9zZSBkb2N1bWVudCBj
b250YWlucyBhIG5lc3RlZCBpZnJhbWUKLS8vIChjaGlsZCksIHRoZW4gc2V0IHRoZSBjaGlsZCdz
IHNyYyBhdHRyaWJ1dGUgdG8gY2hpbGRfdXJsIGFuZCByZXR1cm4KLS8vIGl0cyBXaW5kb3cgKHdp
dGhvdXQgd2FpdGluZyBmb3IgaXQgdG8gZmluaXNoIGxvYWRpbmcpLgotYXN5bmMgZnVuY3Rpb24g
d2l0aF9uZXN0ZWRfaWZyYW1lcyh0LCBjaGlsZF91cmwpIHsKLSAgICBjb25zdCBwYXJlbnQgPSBh
d2FpdCB3aXRoX2lmcmFtZSgncmVzb3VyY2VzL25lc3RlZC1pZnJhbWUtcGFyZW50Lmh0bWw/cm9s
ZT1wYXJlbnQnKTsKLSAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBhcmVudC5yZW1vdmUoKSk7Ci0g
ICAgY29uc3QgY2hpbGQgPSBwYXJlbnQuY29udGVudFdpbmRvdy5kb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnY2hpbGQnKTsKLSAgICBjaGlsZC5zZXRBdHRyaWJ1dGUoJ3NyYycsIGNoaWxkX3VybCk7
Ci0gICAgcmV0dXJuIGNoaWxkLmNvbnRlbnRXaW5kb3c7Ci19Ci0KLS8vIFJldHVybnMgYSBwcmVk
aWNhdGUgbWF0Y2hpbmcgYSBmZXRjaCBtZXNzYWdlIHdpdGggdGhlIHNwZWNpZmllZAotLy8ga2V5
LgotZnVuY3Rpb24gZmV0Y2hfbWVzc2FnZShrZXkpIHsKLSAgICByZXR1cm4gZXZlbnQgPT4gZXZl
bnQuZGF0YS50eXBlID09PSAnZmV0Y2gnICYmIGV2ZW50LmRhdGEua2V5ID09PSBrZXk7Ci19Ci0K
LS8vIFJldHVybnMgYSBwcmVkaWNhdGUgbWF0Y2hpbmcgYSBwaW5nIG1lc3NhZ2Ugd2l0aCB0aGUg
c3BlY2lmaWVkCi0vLyBwYXlsb2FkLgotZnVuY3Rpb24gcGluZ19tZXNzYWdlKGRhdGEpIHsKLSAg
ICByZXR1cm4gZXZlbnQgPT4gZXZlbnQuZGF0YS50eXBlID09PSAncGluZycgJiYgZXZlbnQuZGF0
YS5kYXRhID09PSBkYXRhOwotfQotCi0vLyBBIGNsaWVudCBtZXNzYWdlIHF1ZXVlIHRlc3QgaXMg
YSB0ZXN0aGFybmVzcy5qcyB0ZXN0IHdpdGggc29tZQotLy8gYWRkaXRpb25hbCBzZXR1cDoKLS8v
IDEuIEEgbGlzdGVuZXIgKHNlZSBjcmVhdGVfbWVzc2FnZV9saXN0ZW5lcikKLS8vIDIuIEFuIGFj
dGl2ZSBzZXJ2aWNlIHdvcmtlcgotLy8gMy4gVHdvIG5lc3RlZCBpZnJhbWVzCi0vLyA0LiBBIHN0
YXRlIHRyYW5zaXRpb24gZnVuY3Rpb24gdGhhdCBjb250cm9scyB0aGUgb3JkZXIgb2YgZXZlbnRz
Ci0vLyAgICBkdXJpbmcgdGhlIHRlc3QKLWZ1bmN0aW9uIGNsaWVudF9tZXNzYWdlX3F1ZXVlX3Rl
c3QodXJsLCB0ZXN0X2Z1bmN0aW9uLCBkZXNjcmlwdGlvbikgewotICAgIHByb21pc2VfdGVzdChh
c3luYyB0ID0+IHsKLSAgICAgICAgdC5saXN0ZW5lciA9IGNyZWF0ZV9tZXNzYWdlX2xpc3RlbmVy
KHQpOwotCi0gICAgICAgIGNvbnN0IHNjcmlwdCA9ICdyZXNvdXJjZXMvc3RhbGxpbmctc2Vydmlj
ZS13b3JrZXIuanMnOwotICAgICAgICBjb25zdCBzY29wZSA9ICdyZXNvdXJjZXMvJzsKLSAgICAg
ICAgdC5zZXJ2aWNlX3dvcmtlciA9IGF3YWl0IHNlcnZpY2Vfd29ya2VyX3JlZ2lzdGVyX2FuZF9h
Y3RpdmF0ZSh0LCBzY3JpcHQsIHNjb3BlKTsKLQotICAgICAgICAvLyBXZSBjcmVhdGUgdHdvIG5l
c3RlZCBpZnJhbWVzIHN1Y2ggdGhhdCBib3RoIGFyZSBjb250cm9sbGVkIGJ5Ci0gICAgICAgIC8v
IHRoZSBuZXdseSBpbnN0YWxsZWQgc2VydmljZSB3b3JrZXIuCi0gICAgICAgIGNvbnN0IGNoaWxk
X3VybCA9IHVybCArICc/cm9sZT1jaGlsZCc7Ci0gICAgICAgIHQuZnJhbWUgPSBhd2FpdCB3aXRo
X25lc3RlZF9pZnJhbWVzKHQsIGNoaWxkX3VybCk7Ci0KLSAgICAgICAgdC5zdGF0ZV90cmFuc2l0
aW9uID0gYXN5bmMgZnVuY3Rpb24oZnJvbSwgdG8sIHNjcmlwdHMpIHsKLSAgICAgICAgICAgIC8v
IEEgc3RhdGUgdHJhbnNpdGlvbiBiZWdpbnMgd2l0aCB0aGUgY2hpbGQncyBwYXJzZXIKLSAgICAg
ICAgICAgIC8vIGZldGNoaW5nIGEgc2NyaXB0IGR1ZSB0byBhIDxzY3JpcHQ+IHRhZy4gVGhlIHJl
cXVlc3QKLSAgICAgICAgICAgIC8vIGFycml2ZXMgYXQgdGhlIHNlcnZpY2Ugd29ya2VyLCB3aGlj
aCBub3RpZmllcyB0aGUKLSAgICAgICAgICAgIC8vIHBhcmVudCwgd2hpY2ggaW4gdHVybiBub3Rp
ZmllcyB0aGUgdGVzdC4gTm90ZSB0aGF0IHRoZQotICAgICAgICAgICAgLy8gZXZlbnQgbG9vcCBr
ZWVwcyBzcGlubmluZyB3aGlsZSB0aGUgcGFyc2VyIGlzIHdhaXRpbmcuCi0gICAgICAgICAgICBj
b25zdCByZXF1ZXN0ID0gYXdhaXQgdGhpcy5saXN0ZW5lci53YWl0Rm9yKGZldGNoX21lc3NhZ2Uo
dG8pKTsKLQotICAgICAgICAgICAgLy8gVGhlIHRlc3QgaW5zdHJ1Y3RzIHRoZSBzZXJ2aWNlIHdv
cmtlciB0byBzZW5kIHR3byBwaW5nCi0gICAgICAgICAgICAvLyBtZXNzYWdlcyB0aHJvdWdoIHRo
ZSBDbGllbnQgaW50ZXJmYWNlOiBmaXJzdCB0byB0aGUKLSAgICAgICAgICAgIC8vIGNoaWxkLCB0
aGVuIHRvIHRoZSBwYXJlbnQuCi0gICAgICAgICAgICB0aGlzLnNlcnZpY2Vfd29ya2VyLnBvc3RN
ZXNzYWdlKGZyb20pOwotCi0gICAgICAgICAgICAvLyBXaGVuIHRoZSBwYXJlbnQgcmVjZWl2ZXMg
dGhlIHBpbmcgbWVzc2FnZSwgaXQgZm9yd2FyZHMKLSAgICAgICAgICAgIC8vIGl0IHRvIHRoZSB0
ZXN0LiBBc3N1bWluZyB0aGF0IG1lc3NhZ2VzIHRvIGJvdGggY2hpbGQKLSAgICAgICAgICAgIC8v
IGFuZCBwYXJlbnQgYXJlIG1hcHBlZCB0byB0aGUgc2FtZSB0YXNrIHF1ZXVlICh0aGlzIGlzCi0g
ICAgICAgICAgICAvLyBub3QgW3lldF0gcmVxdWlyZWQgYnkgdGhlIHNwZWMpLCByZWNlaXZpbmcg
dGhpcyBtZXNzYWdlCi0gICAgICAgICAgICAvLyBndWFyYW50ZWVzIHRoYXQgdGhlIGNoaWxkIGhh
cyBhbHJlYWR5IGRpc3BhdGNoZWQgaXRzCi0gICAgICAgICAgICAvLyBtZXNzYWdlIGlmIGl0IHdh
cyBhbGxvd2VkIHRvIGRvIHNvLgotICAgICAgICAgICAgYXdhaXQgdGhpcy5saXN0ZW5lci53YWl0
Rm9yKHBpbmdfbWVzc2FnZShmcm9tKSk7Ci0KLSAgICAgICAgICAgIC8vIEZpbmFsbHksIHJlcGx5
IHRvIHRoZSBzZXJ2aWNlIHdvcmtlcidzIGZldGNoCi0gICAgICAgICAgICAvLyBub3RpZmljYXRp
b24gd2l0aCB0aGUgc2NyaXB0IGl0IHNob3VsZCB1c2UgYXMgdGhlIGZldGNoCi0gICAgICAgICAg
ICAvLyByZXF1ZXN0J3MgcmVzcG9uc2UuIFRoaXMgaXMgYSBkZWZlbnNpdmUgbWVjaGFuaXNtIHRo
YXQKLSAgICAgICAgICAgIC8vIGVuc3VyZXMgdGhlIGNoaWxkJ3MgcGFyc2VyIHJlYWxseSBpcyBi
bG9ja2VkIHVudGlsIHRoZQotICAgICAgICAgICAgLy8gdGVzdCBpcyByZWFkeSB0byBjb250aW51
ZS4KLSAgICAgICAgICAgIHJlcXVlc3QucG9ydHNbMF0ucG9zdE1lc3NhZ2UoW2BzdGF0ZSA9ICck
e3RvfSc7YF0uY29uY2F0KHNjcmlwdHMpKTsKLSAgICAgICAgfTsKLQotICAgICAgICBhd2FpdCB0
ZXN0X2Z1bmN0aW9uKHQpOwotICAgIH0sIGRlc2NyaXB0aW9uKTsKLX0KLQotZnVuY3Rpb24gY2xp
ZW50X21lc3NhZ2VfcXVldWVfZW5hYmxlX3Rlc3QoCi0gICAgaW5zdGFsbF9zY3JpcHQsCi0gICAg
c3RhcnRfc2NyaXB0LAotICAgIGVhcmxpZXN0X2Rpc3BhdGNoLAotICAgIGRlc2NyaXB0aW9uKQot
ewotICAgIGZ1bmN0aW9uIGFzc2VydF9zdGF0ZV9sZXNzX3RoYW5fZXF1YWwoc3RhdGUxLCBzdGF0
ZTIsIGV4cGxhbmF0aW9uKSB7Ci0gICAgICAgIGNvbnN0IHN0YXRlcyA9IFsnaW5pdCcsICdpbnN0
YWxsJywgJ3N0YXJ0JywgJ2ZpbmlzaCcsICdsb2FkZWQnXTsKLSAgICAgICAgY29uc3QgaW5kZXgx
ID0gc3RhdGVzLmluZGV4T2Yoc3RhdGUxKTsKLSAgICAgICAgY29uc3QgaW5kZXgyID0gc3RhdGVz
LmluZGV4T2Yoc3RhdGUyKTsKLSAgICAgICAgaWYgKGluZGV4MSA+IGluZGV4MikKLSAgICAgICAg
ICBhc3NlcnRfdW5yZWFjaGVkKGV4cGxhbmF0aW9uKTsKLSAgICB9Ci0KLSAgICBjbGllbnRfbWVz
c2FnZV9xdWV1ZV90ZXN0KCdlbmFibGUtY2xpZW50LW1lc3NhZ2UtcXVldWUuaHRtbCcsIGFzeW5j
IHQgPT4gewotICAgICAgICAvLyBXaGlsZSBwYXJzaW5nIHRoZSBjaGlsZCdzIGRvY3VtZW50LCB0
aGUgY2hpbGQgdHJhbnNpdGlvbnMKLSAgICAgICAgLy8gZnJvbSB0aGUgJ2luaXQnIHN0YXRlIGFs
bCB0aGUgd2F5IHRvIHRoZSAnZmluaXNoJyBzdGF0ZS4KLSAgICAgICAgLy8gT25jZSBwYXJzaW5n
IGlzIGZpbmlzaGVkIGl0IHdvdWxkIGVudGVyIHRoZSBmaW5hbCAnbG9hZGVkJwotICAgICAgICAv
LyBzdGF0ZS4gQWxsIGJ1dCB0aGUgbGFzdCB0cmFuc2l0aW9uIHJlcXVpcmUgYXNzaXRhbmNlIGZy
b20KLSAgICAgICAgLy8gdGhlIHRlc3QuCi0gICAgICAgIGF3YWl0IHQuc3RhdGVfdHJhbnNpdGlv
bignaW5pdCcsICdpbnN0YWxsJywgW2luc3RhbGxfc2NyaXB0XSk7Ci0gICAgICAgIGF3YWl0IHQu
c3RhdGVfdHJhbnNpdGlvbignaW5zdGFsbCcsICdzdGFydCcsIFtzdGFydF9zY3JpcHRdKTsKLSAg
ICAgICAgYXdhaXQgdC5zdGF0ZV90cmFuc2l0aW9uKCdzdGFydCcsICdmaW5pc2gnLCBbXSk7Ci0K
LSAgICAgICAgLy8gV2FpdCBmb3IgYWxsIG1lc3NhZ2VzIHRvIGdldCBkaXNwYXRjaGVkIG9uIHRo
ZSBjaGlsZCdzCi0gICAgICAgIC8vIFNlcnZpY2VXb3JrZXJDb250YWluZXIgYW5kIHRoZW4gdmVy
aWZ5IHRoYXQgZWFjaCBtZXNzYWdlCi0gICAgICAgIC8vIHdhcyBkaXNwYXRjaGVkIGFmdGVyIHxl
YXJsaWVzdF9kaXNwYXRjaHwuCi0gICAgICAgIGNvbnN0IHJlcG9ydCA9IGF3YWl0IHQuZnJhbWUu
cmVwb3J0OwotICAgICAgICBbJ2luaXQnLCAnaW5zdGFsbCcsICdzdGFydCddLmZvckVhY2goc3Rh
dGUgPT4gewotICAgICAgICAgICAgY29uc3QgZXhwbGFuYXRpb24gPSBgTWVzc2FnZSBzZW50IGlu
IHN0YXRlICcke3N0YXRlfScgd2FzIGRpc3BhdGNoZWQgaW4gJyR7cmVwb3J0W3N0YXRlXX0nLCBz
aG91bGQgYmUgZGlzcGF0Y2hlZCBubyBlYXJsaWVyIHRoYW4gJyR7ZWFybGllc3RfZGlzcGF0Y2h9
J2A7Ci0gICAgICAgICAgICBhc3NlcnRfc3RhdGVfbGVzc190aGFuX2VxdWFsKGVhcmxpZXN0X2Rp
c3BhdGNoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBvcnRb
c3RhdGVdLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBsYW5h
dGlvbik7Ci0gICAgICAgIH0pOwotICAgIH0sIGRlc2NyaXB0aW9uKTsKLX0KLQotY29uc3QgZW1w
dHlfc2NyaXB0ID0gYGA7Ci0KLWNvbnN0IGFkZF9ldmVudF9saXN0ZW5lciA9Ci0gICAgYG5hdmln
YXRvci5zZXJ2aWNlV29ya2VyLmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCBoYW5kbGVfbWVz
c2FnZSk7YDsKLQotY29uc3Qgc2V0X29ubWVzc2FnZSA9IGBuYXZpZ2F0b3Iuc2VydmljZVdvcmtl
ci5vbm1lc3NhZ2UgPSBoYW5kbGVfbWVzc2FnZTtgOwotCi1jb25zdCBzdGFydF9tZXNzYWdlcyA9
IGBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5zdGFydE1lc3NhZ2VzKCk7YDsKLQotY2xpZW50X21l
c3NhZ2VfcXVldWVfZW5hYmxlX3Rlc3QoYWRkX2V2ZW50X2xpc3RlbmVyLCBlbXB0eV9zY3JpcHQs
ICdsb2FkZWQnLAotICAgICdNZXNzYWdlcyBmcm9tIFNlcnZpY2VXb3JrZXIgdG8gQ2xpZW50IG9u
bHkgcmVjZWl2ZWQgYWZ0ZXIgRE9NQ29udGVudExvYWRlZCBldmVudC4nKTsKLQotY2xpZW50X21l
c3NhZ2VfcXVldWVfZW5hYmxlX3Rlc3QoYWRkX2V2ZW50X2xpc3RlbmVyLCBzdGFydF9tZXNzYWdl
cywgJ3N0YXJ0JywKLSAgICAnTWVzc2FnZXMgZnJvbSBTZXJ2aWNlV29ya2VyIHRvIENsaWVudCBv
bmx5IHJlY2VpdmVkIGFmdGVyIGNhbGxpbmcgc3RhcnRNZXNzYWdlcygpLicpOwotCi1jbGllbnRf
bWVzc2FnZV9xdWV1ZV9lbmFibGVfdGVzdChzZXRfb25tZXNzYWdlLCBlbXB0eV9zY3JpcHQsICdp
bnN0YWxsJywKLSAgICAnTWVzc2FnZXMgZnJvbSBTZXJ2aWNlV29ya2VyIHRvIENsaWVudCBvbmx5
IHJlY2VpdmVkIGFmdGVyIHNldHRpbmcgb25tZXNzYWdlLicpOwotCi1jb25zdCByZXNvbHZlX21h
bnVhbF9wcm9taXNlID0gYHJlc29sdmVfbWFudWFsX3Byb21pc2UoKTtgCi0KLWFzeW5jIGZ1bmN0
aW9uIHRlc3RfbWljcm90YXNrc193aGVuX2NsaWVudF9tZXNzYWdlX3F1ZXVlX2VuYWJsZWQodCwg
c2NyaXB0cykgewotICAgIGF3YWl0IHQuc3RhdGVfdHJhbnNpdGlvbignaW5pdCcsICdzdGFydCcs
IHNjcmlwdHMuY29uY2F0KFtyZXNvbHZlX21hbnVhbF9wcm9taXNlXSkpOwotICAgIGxldCByZXN1
bHQgPSBhd2FpdCB0LmZyYW1lLnJlc3VsdDsKLSAgICBhc3NlcnRfZXF1YWxzKHJlc3VsdFswXSwg
J21pY3JvdGFzaycsICdUaGUgbWljcm90YXNrIHdhcyBleGVjdXRlZCBmaXJzdC4nKTsKLSAgICBh
c3NlcnRfZXF1YWxzKHJlc3VsdFsxXSwgJ21lc3NhZ2UnLCAnVGhlIG1lc3NhZ2Ugd2FzIGRpc3Bh
dGNoZWQuJyk7Ci19Ci0KLWNsaWVudF9tZXNzYWdlX3F1ZXVlX3Rlc3QoJ21lc3NhZ2UtdnMtbWlj
cm90YXNrLmh0bWwnLCB0ID0+IHsKLSAgICByZXR1cm4gdGVzdF9taWNyb3Rhc2tzX3doZW5fY2xp
ZW50X21lc3NhZ2VfcXVldWVfZW5hYmxlZCh0LCBbCi0gICAgICAgIGFkZF9ldmVudF9saXN0ZW5l
ciwKLSAgICAgICAgc3RhcnRfbWVzc2FnZXMsCi0gICAgXSk7Ci19LCAnTWljcm90YXNrcyBydW4g
YmVmb3JlIGRpc3BhdGNoaW5nIG1lc3NhZ2VzIGFmdGVyIGNhbGxpbmcgc3RhcnRNZXNzYWdlcygp
LicpOwotCi1jbGllbnRfbWVzc2FnZV9xdWV1ZV90ZXN0KCdtZXNzYWdlLXZzLW1pY3JvdGFzay5o
dG1sJywgdCA9PiB7Ci0gICAgcmV0dXJuIHRlc3RfbWljcm90YXNrc193aGVuX2NsaWVudF9tZXNz
YWdlX3F1ZXVlX2VuYWJsZWQodCwgW3NldF9vbm1lc3NhZ2VdKTsKLX0sICdNaWNyb3Rhc2tzIHJ1
biBiZWZvcmUgZGlzcGF0Y2hpbmcgbWVzc2FnZXMgYWZ0ZXIgc2V0dGluZyBvbm1lc3NhZ2UuJyk7
Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Bvc3RtZXNzYWdlLXRv
LWNsaWVudC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcG9zdG1lc3NhZ2UtdG8tY2xp
ZW50Lmh0dHBzLmh0bWwKaW5kZXggZjgzNGE0YmZmZTIwYzY5Y2JkNTdhZTRjNmJmOTIyMDgzZDM1
NTRkNi4uMTVkMmU4ODkzMzcwNzg4NjllM2MzZTk3ZDMxMjY0OWU2YThiZDhiMiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvcG9zdG1lc3NhZ2UtdG8tY2xpZW50Lmh0dHBzLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvcG9zdG1lc3NhZ2UtdG8tY2xpZW50Lmh0dHBzLmh0bWwKQEAg
LTUsMzggKzUsNTAgQEAKIDxzY3JpcHQgc3JjPSIvY29tbW9uL2dldC1ob3N0LWluZm8uc3ViLmpz
Ij48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGVzdC1oZWxwZXJzLnN1Yi5qcyI+
PC9zY3JpcHQ+CiA8c2NyaXB0PgotcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewotICBjb25zdCBz
Y3JpcHQgPSAncmVzb3VyY2VzL3Bvc3RtZXNzYWdlLXRvLWNsaWVudC13b3JrZXIuanMnOwotICBj
b25zdCBzY29wZSA9ICdyZXNvdXJjZXMvYmxhbmsuaHRtbCc7Citwcm9taXNlX3Rlc3QodCA9PiB7
CisgICAgdmFyIHNjcmlwdCA9ICdyZXNvdXJjZXMvcG9zdG1lc3NhZ2UtdG8tY2xpZW50LXdvcmtl
ci5qcyc7CisgICAgdmFyIHNjb3BlID0gJ3Jlc291cmNlcy9ibGFuay5odG1sJzsKKyAgICB2YXIg
dzsKIAotICBjb25zdCByZWdpc3RyYXRpb24gPQotICAgICAgYXdhaXQgc2VydmljZV93b3JrZXJf
dW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgc2NyaXB0LCBzY29wZSk7Ci0gIHQuYWRkX2NsZWFu
dXAoKCkgPT4gcmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIoKSk7Ci0gIGF3YWl0IHdhaXRfZm9yX3N0
YXRlKHQsIHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7Ci0gIGNvbnN0IGZy
YW1lID0gYXdhaXQgd2l0aF9pZnJhbWUoc2NvcGUpOwotICB0LmFkZF9jbGVhbnVwKCgpID0+IGZy
YW1lLnJlbW92ZSgpKTsKLSAgY29uc3QgdyA9IGZyYW1lLmNvbnRlbnRXaW5kb3c7CisgICAgcmV0
dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHNjcmlwdCwgc2Nv
cGUpCisgICAgICAudGhlbihyZWdpc3RyYXRpb24gPT4geworICAgICAgICAgIHQuYWRkX2NsZWFu
dXAoKCkgPT4gcmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIoKSk7CisgICAgICAgICAgcmV0dXJuIHdh
aXRfZm9yX3N0YXRlKHQsIHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7Cisg
ICAgICAgIH0pCisgICAgICAudGhlbigoKSA9PiB3aXRoX2lmcmFtZShzY29wZSkpCisgICAgICAu
dGhlbihmcmFtZSA9PiB7CisgICAgICAgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBmcmFtZS5yZW1v
dmUoKSk7CiAKLSAgdy5uYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5jb250cm9sbGVyLnBvc3RNZXNz
YWdlKCdwaW5nJyk7Ci0gIGxldCBlID0gYXdhaXQgbmV3IFByb21pc2UociA9PiB3Lm5hdmlnYXRv
ci5zZXJ2aWNlV29ya2VyLm9ubWVzc2FnZSA9IHIpOwotCi0gIGFzc2VydF9lcXVhbHMoZS5jb25z
dHJ1Y3Rvciwgdy5NZXNzYWdlRXZlbnQsCi0gICAgICAgICAgICAgICAgJ21lc3NhZ2UgZXZlbnRz
IHNob3VsZCB1c2UgTWVzc2FnZUV2ZW50IGludGVyZmFjZS4nKTsKLSAgYXNzZXJ0X2VxdWFscyhl
LnR5cGUsICdtZXNzYWdlJywgJ3R5cGUgc2hvdWxkIGJlICJtZXNzYWdlIi4nKTsKLSAgYXNzZXJ0
X2ZhbHNlKGUuYnViYmxlcywgJ21lc3NhZ2UgZXZlbnRzIHNob3VsZCBub3QgYnViYmxlLicpOwot
ICBhc3NlcnRfZmFsc2UoZS5jYW5jZWxhYmxlLCAnbWVzc2FnZSBldmVudHMgc2hvdWxkIG5vdCBi
ZSBjYW5jZWxhYmxlLicpOwotICBhc3NlcnRfZXF1YWxzKGUub3JpZ2luLCBsb2NhdGlvbi5vcmln
aW4sCi0gICAgICAgICAgICAgICAgJ29yaWdpbiBvZiBtZXNzYWdlIHNob3VsZCBiZSBvcmlnaW4g
b2YgU2VydmljZSBXb3JrZXIuJyk7Ci0gIGFzc2VydF9lcXVhbHMoZS5sYXN0RXZlbnRJZCwgJycs
Ci0gICAgICAgICAgICAgICAgJ2xhc3RFdmVudElkIHNob3VsZCBiZSBhbiBlbXB0eSBzdHJpbmcu
Jyk7Ci0gIGFzc2VydF9lcXVhbHMoZS5zb3VyY2UuY29uc3RydWN0b3IsIHcuU2VydmljZVdvcmtl
ciwKLSAgICAgICAgICAgICAgICAnc291cmNlIHNob3VsZCB1c2UgU2VydmljZVdvcmtlciBpbnRl
cmZhY2UuJyk7Ci0gIGFzc2VydF9lcXVhbHMoZS5zb3VyY2UsIHcubmF2aWdhdG9yLnNlcnZpY2VX
b3JrZXIuY29udHJvbGxlciwKLSAgICAgICAgICAgICAgICAnc291cmNlIHNob3VsZCBiZSB0aGUg
c2VydmljZSB3b3JrZXIgdGhhdCBzZW50IHRoZSBtZXNzYWdlLicpOwotICBhc3NlcnRfZXF1YWxz
KGUucG9ydHMubGVuZ3RoLCAwLCAncG9ydHMgc2hvdWxkIGJlIGFuIGVtcHR5IGFycmF5LicpOwot
ICBhc3NlcnRfZXF1YWxzKGUuZGF0YSwgJ1NlbmRpbmcgbWVzc2FnZSB2aWEgY2xpZW50cycpOwot
Ci0gIGUgPSBhd2FpdCBuZXcgUHJvbWlzZShyID0+IHcubmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIu
b25tZXNzYWdlID0gcik7Ci0gIGFzc2VydF9lcXVhbHMoZS5kYXRhLCAncXVpdCcpOwotfSwgJ3Bv
c3RNZXNzYWdlIGZyb20gU2VydmljZVdvcmtlciB0byBDbGllbnQuJyk7CisgICAgICAgICAgcmV0
dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4geworICAgICAgICAgICAgICB3ID0gZnJhbWUuY29u
dGVudFdpbmRvdzsKKyAgICAgICAgICAgICAgdy5uYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5vbm1l
c3NhZ2UgPSByZXNvbHZlOworICAgICAgICAgICAgICB3Lm5hdmlnYXRvci5zZXJ2aWNlV29ya2Vy
LmNvbnRyb2xsZXIucG9zdE1lc3NhZ2UoJ3BpbmcnKTsKKyAgICAgICAgICAgIH0pOworICAgICAg
ICB9KQorICAgICAgLnRoZW4oZSA9PiB7CisgICAgICAgICAgdmFyIG1lc3NhZ2UgPSBlLmRhdGE7
CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLmNvbnN0cnVjdG9yLCB3Lk1lc3NhZ2VFdmVudCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICdtZXNzYWdlIGV2ZW50cyBzaG91bGQgdXNlIE1lc3Nh
Z2VFdmVudCBpbnRlcmZhY2UuJyk7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnR5cGUsICdt
ZXNzYWdlJywgJ3R5cGUgc2hvdWxkIGJlICJtZXNzYWdlIi4nKTsKKyAgICAgICAgICBhc3NlcnRf
ZXF1YWxzKGUuYnViYmxlcywgZmFsc2UsICdtZXNzYWdlIGV2ZW50cyBzaG91bGQgbm90IGJ1YmJs
ZS4nKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUuY2FuY2VsYWJsZSwgZmFsc2UsCisgICAg
ICAgICAgICAgICAgICAgICAgICAnbWVzc2FnZSBldmVudHMgc2hvdWxkIG5vdCBiZSBjYW5jZWxh
YmxlLicpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMoCisgICAgICAgICAgICAgIGUub3JpZ2lu
LCBsb2NhdGlvbi5vcmlnaW4sCisgICAgICAgICAgICAgICdvcmlnaW4gb2YgbWVzc2FnZSBzaG91
bGQgYmUgb3JpZ2luIG9mIFNlcnZpY2UgV29ya2VyLicpOworICAgICAgICAgIGFzc2VydF9lcXVh
bHMoZS5sYXN0RXZlbnRJZCwgJycsCisgICAgICAgICAgICAgICAgICAgICAgICAnbGFzdEV2ZW50
SWQgc2hvdWxkIGJlIGFuIGVtcHR5IHN0cmluZy4nKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxz
KGUuc291cmNlLmNvbnN0cnVjdG9yLCB3LlNlcnZpY2VXb3JrZXIsCisgICAgICAgICAgICAgICAg
ICAgICAgICAnc291cmNlIHNob3VsZCB1c2UgU2VydmljZVdvcmtlciBpbnRlcmZhY2UuJyk7Cisg
ICAgICAgICAgYXNzZXJ0X2VxdWFscygKKyAgICAgICAgICAgICAgZS5zb3VyY2UsIHcubmF2aWdh
dG9yLnNlcnZpY2VXb3JrZXIuY29udHJvbGxlciwKKyAgICAgICAgICAgICAgJ3NvdXJjZSBzaG91
bGQgYmUgdGhlIHNlcnZpY2Ugd29ya2VyIHRoYXQgc2VudCB0aGUgbWVzc2FnZS4nKTsKKyAgICAg
ICAgICBhc3NlcnRfZXF1YWxzKGUucG9ydHMubGVuZ3RoLCAwLCAncG9ydHMgc2hvdWxkIGJlIGFu
IGVtcHR5IGFycmF5LicpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMobWVzc2FnZSwgJ1NlbmRp
bmcgbWVzc2FnZSB2aWEgY2xpZW50cycpOworICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShy
ZXNvbHZlID0+IHsKKyAgICAgICAgICAgICAgdy5uYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5vbm1l
c3NhZ2UgPSByZXNvbHZlOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pCisgICAgICAudGhl
bihlID0+IHsgYXNzZXJ0X2VxdWFscyhlLmRhdGEsICdxdWl0Jyk7IH0pOworICB9LCAncG9zdE1l
c3NhZ2UgZnJvbSBTZXJ2aWNlV29ya2VyIHRvIENsaWVudC4nKTsKIDwvc2NyaXB0PgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvcG9zdG1lc3NhZ2UuaHR0cHMtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvcG9zdG1lc3NhZ2UuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IDc5
YWJlNDIyNzY0OTg5ZDFkMTUxMGFkYjZiZGEyNmM3MWMwMWVhMDEuLjU2MTU0MWI2NzdkYzY0OTYz
NTgxYWVjMzAyOTUzYWNjMGRjOWNkY2UgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Bv
c3RtZXNzYWdlLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9wb3N0
bWVzc2FnZS5odHRwcy1leHBlY3RlZC50eHQKQEAgLTMsNSArMyw0IEBAIFBBU1MgcG9zdE1lc3Nh
Z2UgdG8gYSBTZXJ2aWNlV29ya2VyIChhbmQgYmFjayB2aWEgTWVzc2FnZVBvcnQpCiBQQVNTIHBv
c3RNZXNzYWdlIGEgdHJhbnNmZXJhYmxlIEFycmF5QnVmZmVyIGJldHdlZW4gU2VydmljZVdvcmtl
ciBhbmQgQ2xpZW50IAogUEFTUyBwb3N0TWVzc2FnZSBhIHRyYW5zZmVyYWJsZSBBcnJheUJ1ZmZl
ciBiZXR3ZWVuIFNlcnZpY2VXb3JrZXIgYW5kIENsaWVudCBvdmVyIE1lc3NhZ2VQb3J0IAogRkFJ
TCBwb3N0TWVzc2FnZSB3aXRoIGRpY3Rpb25hcnkgYSB0cmFuc2ZlcmFibGUgQXJyYXlCdWZmZXIg
YmV0d2VlbiBTZXJ2aWNlV29ya2VyIGFuZCBDbGllbnQgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQg
cmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBUeXBlIGVycm9yIgotRkFJ
TCBwb3N0TWVzc2FnZSB0byBhIHJlZHVuZGFudCB3b3JrZXIgcHJvbWlzZV90ZXN0OiBVbmhhbmRs
ZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiSW52YWxpZFN0YXRlRXJyb3I6IFNlcnZp
Y2UgV29ya2VyIHN0YXRlIGlzIHJlZHVuZGFudCIKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvcG9zdG1lc3NhZ2UuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Bvc3RtZXNz
YWdlLmh0dHBzLmh0bWwKaW5kZXggN2FiYjMwMjJmOTFhOGRhYTViZjBmOThmYTBkNDc5Mzc4MGY0
ODQ0Yy4uM2Q3M2FmZTk3OTYxMTRmNDJlNjE0MjkyZWY0YjE4MGRkNzhjZGVlNSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvcG9zdG1lc3NhZ2UuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9wb3N0bWVzc2FnZS5odHRwcy5odG1sCkBAIC0xMyw3ICsxMywxMSBAQCBwcm9t
aXNlX3Rlc3QodCA9PiB7CiAKICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9h
bmRfcmVnaXN0ZXIodCwgc2NyaXB0LCBzY29wZSkKICAgICAgIC50aGVuKHIgPT4gewotICAgICAg
ICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gci51bnJlZ2lzdGVyKCkpOworICAgICAgICAgIC8vIFRP
RE86IHJldHVybiB0aGUgUHJvbWlzZSBjcmVhdGVkIGJ5IGByLnVucmVnaXN0ZXJgb25jZQorICAg
ICAgICAgIC8vIGB0ZXN0aGFybmVzcy5qc2AgaGFzIGJlZW4gdXBkYXRlZCB0byBob25vciB0aGVu
YWJsZXMgcmV0dXJuZWQgYnkKKyAgICAgICAgICAvLyBjbGVhbnVwIGZ1bmN0aW9ucy4KKyAgICAg
ICAgICAvLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvcHVs
bC84NzQ4CisgICAgICAgICAgdC5hZGRfY2xlYW51cCgoKSA9PiB7IHIudW5yZWdpc3RlcigpOyB9
KTsKICAgICAgICAgICByZWdpc3RyYXRpb24gPSByOwogICAgICAgICAgIHdvcmtlciA9IHJlZ2lz
dHJhdGlvbi5pbnN0YWxsaW5nOwogCkBAIC0zOSw2ICs0MywxNSBAQCBwcm9taXNlX3Rlc3QodCA9
PiB7CiAgICAgICAudGhlbihlID0+IHsKICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUuZGF0YSwg
J3F1aXQnKTsKICAgICAgICAgICByZXR1cm4gcmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIoc2NvcGUp
OworICAgICAgICB9KQorICAgICAgLnRoZW4oKCkgPT4geyByZXR1cm4gd2FpdF9mb3Jfc3RhdGUo
dCwgd29ya2VyLCAncmVkdW5kYW50Jyk7IH0pCisgICAgICAudGhlbigoKSA9PiB7CisgICAgICAg
ICAgYXNzZXJ0X2VxdWFscyh3b3JrZXIuc3RhdGUsICdyZWR1bmRhbnQnKTsKKyAgICAgICAgICBh
c3NlcnRfdGhyb3dzKAorICAgICAgICAgICAge25hbWU6J0ludmFsaWRTdGF0ZUVycm9yJ30sCisg
ICAgICAgICAgICBmdW5jdGlvbigpIHsgd29ya2VyLnBvc3RNZXNzYWdlKCcnKTsgfSwKKyAgICAg
ICAgICAgICdDYWxsaW5nIHBvc3RNZXNzYWdlIG9uIGEgcmVkdW5kYW50IFNlcnZpY2VXb3JrZXIg
c2hvdWxkICcgKworICAgICAgICAgICAgICAgICd0aHJvdyBJbnZhbGlkU3RhdGVFcnJvci4nKTsK
ICAgICAgICAgfSk7CiAgIH0sICdwb3N0TWVzc2FnZSB0byBhIFNlcnZpY2VXb3JrZXIgKGFuZCBi
YWNrIHZpYSBNZXNzYWdlUG9ydCknKTsKIApAQCAtNTMsNyArNjYsMTEgQEAgcHJvbWlzZV90ZXN0
KHQgPT4gewogCiAgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lz
dGVyKHQsIHNjcmlwdCwgc2NvcGUpCiAgICAgICAudGhlbihyID0+IHsKLSAgICAgICAgICB0LmFk
ZF9jbGVhbnVwKCgpID0+IHIudW5yZWdpc3RlcigpKTsKKyAgICAgICAgICAvLyBUT0RPOiByZXR1
cm4gdGhlIFByb21pc2UgY3JlYXRlZCBieSBgci51bnJlZ2lzdGVyYG9uY2UKKyAgICAgICAgICAv
LyBgdGVzdGhhcm5lc3MuanNgIGhhcyBiZWVuIHVwZGF0ZWQgdG8gaG9ub3IgdGhlbmFibGVzIHJl
dHVybmVkIGJ5CisgICAgICAgICAgLy8gY2xlYW51cCBmdW5jdGlvbnMuCisgICAgICAgICAgLy8g
U2VlIGh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L3B1bGwvODc0OAor
ICAgICAgICAgIHQuYWRkX2NsZWFudXAoKCkgPT4geyByLnVucmVnaXN0ZXIoKTsgfSk7CiAKICAg
ICAgICAgICB2YXIgYWIgPSB0ZXh0X2VuY29kZXIuZW5jb2RlKG1lc3NhZ2UpOwogICAgICAgICAg
IGFzc2VydF9lcXVhbHMoYWIuYnl0ZUxlbmd0aCwgbWVzc2FnZS5sZW5ndGgpOwpAQCAtOTMsNyAr
MTEwLDExIEBAIHByb21pc2VfdGVzdCh0ID0+IHsKIAogICAgIHJldHVybiBzZXJ2aWNlX3dvcmtl
cl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCBzY3JpcHQsIHNjb3BlKQogICAgICAgLnRoZW4o
ciA9PiB7Ci0gICAgICAgICAgdC5hZGRfY2xlYW51cCgoKSA9PiByLnVucmVnaXN0ZXIoKSk7Cisg
ICAgICAgICAgLy8gVE9ETzogcmV0dXJuIHRoZSBQcm9taXNlIGNyZWF0ZWQgYnkgYHIudW5yZWdp
c3RlcmBvbmNlCisgICAgICAgICAgLy8gYHRlc3RoYXJuZXNzLmpzYCBoYXMgYmVlbiB1cGRhdGVk
IHRvIGhvbm9yIHRoZW5hYmxlcyByZXR1cm5lZCBieQorICAgICAgICAgIC8vIGNsZWFudXAgZnVu
Y3Rpb25zLgorICAgICAgICAgIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3Jt
LXRlc3RzL3dwdC9wdWxsLzg3NDgKKyAgICAgICAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHsgci51
bnJlZ2lzdGVyKCk7IH0pOwogCiAgICAgICAgICAgdmFyIGNoYW5uZWwgPSBuZXcgTWVzc2FnZUNo
YW5uZWw7CiAgICAgICAgICAgcG9ydCA9IGNoYW5uZWwucG9ydDE7CkBAIC0xNjksMzQgKzE5MCw0
IEBAIHByb21pc2VfdGVzdCh0ID0+IHsKICAgICAgICAgfSk7CiAgIH0sICdwb3N0TWVzc2FnZSB3
aXRoIGRpY3Rpb25hcnkgYSB0cmFuc2ZlcmFibGUgQXJyYXlCdWZmZXIgYmV0d2VlbiBTZXJ2aWNl
V29ya2VyIGFuZCBDbGllbnQnKTsKIAotICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7Ci0gICAg
Y29uc3QgZmlyc3RTY3JpcHQgPSAncmVzb3VyY2VzL3Bvc3RtZXNzYWdlLWVjaG8td29ya2VyLmpz
P29uZSc7Ci0gICAgY29uc3Qgc2Vjb25kU2NyaXB0ID0gJ3Jlc291cmNlcy9wb3N0bWVzc2FnZS1l
Y2hvLXdvcmtlci5qcz90d28nOwotICAgIGNvbnN0IHNjb3BlID0gJ3Jlc291cmNlcy8nOwotCi0g
ICAgY29uc3QgcmVnaXN0cmF0aW9uID0gYXdhaXQgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9h
bmRfcmVnaXN0ZXIodCwgZmlyc3RTY3JpcHQsIHNjb3BlKTsKLSAgICB0LmFkZF9jbGVhbnVwKCgp
ID0+IHJlZ2lzdHJhdGlvbi51bnJlZ2lzdGVyKCkpOwotICAgIGNvbnN0IGZpcnN0V29ya2VyID0g
cmVnaXN0cmF0aW9uLmluc3RhbGxpbmc7Ci0KLSAgICBjb25zdCBtZXNzYWdlUHJvbWlzZSA9IG5l
dyBQcm9taXNlKHJlc29sdmUgPT4gewotICAgICAgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuYWRk
RXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIChldmVudCkgPT4gewotICAgICAgICByZXNvbHZlKGV2
ZW50LmRhdGEpOwotICAgICAgfSwge29uY2U6IHRydWV9KTsKLSAgICB9KTsKLQotICAgIGF3YWl0
IHdhaXRfZm9yX3N0YXRlKHQsIGZpcnN0V29ya2VyLCAnYWN0aXZhdGVkJyk7Ci0gICAgYXdhaXQg
bmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoc2Vjb25kU2NyaXB0LCB7c2NvcGV9KTsK
LSAgICBjb25zdCBzZWNvbmRXb3JrZXIgPSByZWdpc3RyYXRpb24uaW5zdGFsbGluZzsKLSAgICBh
d2FpdCB3YWl0X2Zvcl9zdGF0ZSh0LCBmaXJzdFdvcmtlciwgJ3JlZHVuZGFudCcpOwotCi0gICAg
Ly8gcG9zdE1lc3NhZ2UoKSB0byBhIHJlZHVuZGFudCB3b3JrZXIgc2hvdWxkIGJlIGRyb3BwZWQg
c2lsZW50bHkuCi0gICAgLy8gSGlzdG9yaWNhbGx5LCB0aGlzIHRocmV3IGFuIGV4Y2VwdGlvbi4K
LSAgICBmaXJzdFdvcmtlci5wb3N0TWVzc2FnZSgnZmlyc3RXb3JrZXInKTsKLQotICAgIC8vIFRv
IHRlc3Qgc29tZXdoYXQgdGhhdCBpdCB3YXMgbm90IHJlY2VpdmVkLCBzZW5kIGEgbWVzc2FnZSB0
byBhbm90aGVyCi0gICAgLy8gd29ya2VyIGFuZCBjaGVjayB0aGF0IHdlIGdldCBhIHJlcGx5IGZv
ciB0aGF0IG9uZS4KLSAgICBzZWNvbmRXb3JrZXIucG9zdE1lc3NhZ2UoJ3NlY29uZFdvcmtlcicp
OwotICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBtZXNzYWdlUHJvbWlzZTsKLSAgICBhc3NlcnRfZXF1
YWxzKGRhdGEsICdzZWNvbmRXb3JrZXInKTsKLSAgfSwgJ3Bvc3RNZXNzYWdlIHRvIGEgcmVkdW5k
YW50IHdvcmtlcicpOwogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9y
ZWFkeS5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVhZHkuaHR0cHMuaHRtbAppbmRl
eCA2YzFlZDgyMmE4Nzc4Yzg0ZmYxNTFhNjgwZWQwYjRjNGZiZGI1M2NhLi5mZjVjNzkzZjJjMjIw
OGU5YWMyOThlNmI4MmFkZjc0NWFlNGM2NWU5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9yZWFkeS5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlYWR5Lmh0dHBzLmh0
bWwKQEAgLTI1MCw2OCArMjUwLDUxIEBAIHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7CiAgIH0s
ICdhY2Nlc3MgcmVhZHkgYWZ0ZXIgaXQgaGFzIGJlZW4gcmVzb2x2ZWQnKTsKIAogcHJvbWlzZV90
ZXN0KGFzeW5jIGZ1bmN0aW9uKHQpIHsKLSAgY29uc3QgdXJsMSA9ICdyZXNvdXJjZXMvZW1wdHkt
d29ya2VyLmpzJzsKLSAgY29uc3QgdXJsMiA9IHVybDEgKyAnPzInOwotICBjb25zdCBtYXRjaGVk
X3Njb3BlID0gJ3Jlc291cmNlcy9ibGFuay5odG1sP3JlYWR5LWFmdGVyLXVucmVnaXN0ZXInOwot
Ci0gIGNvbnN0IHJlZzEgPSBhd2FpdCBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdp
c3Rlcih0LCB1cmwxLCBtYXRjaGVkX3Njb3BlKTsKLSAgdC5hZGRfY2xlYW51cCgoKSA9PiByZWcx
LnVucmVnaXN0ZXIoKSk7Ci0KLSAgYXdhaXQgd2FpdF9mb3Jfc3RhdGUodCwgcmVnMS5pbnN0YWxs
aW5nLCAnYWN0aXZhdGluZycpOwotICAvLyBUaGlzIHJlZ2lzdHJhdGlvbiB3aWxsIHJlc29sdmUg
YWxsIHJlYWR5IHByb21pc2VzIGluIGNsaWVudHMgdGhhdCBtYXRjaCB0aGUgc2NvcGUuCi0gIC8v
IEJ1dCB0aGVyZSBhcmUgbm8gY2xpZW50cy4KLQotICBjb25zdCBmcmFtZSA9IGF3YWl0IHdpdGhf
aWZyYW1lKG1hdGNoZWRfc2NvcGUpOwotICB0LmFkZF9jbGVhbnVwKCgpID0+IGZyYW1lLnJlbW92
ZSgpKTsKLQotICBhd2FpdCByZWcxLnVucmVnaXN0ZXIoKTsKLQotICAvLyBBY2Nlc3MgdGhlIHJl
YWR5IHByb21pc2Ugd2hpbGUgdGhlIHJlZ2lzdHJhdGlvbiBpcyB1bnJlZ2lzdGVyaW5nLgotICBj
b25zdCByZWFkeVByb21pc2UgPSBmcmFtZS5jb250ZW50V2luZG93Lm5hdmlnYXRvci5zZXJ2aWNl
V29ya2VyLnJlYWR5OwotCi0gIC8vIENyZWF0ZSBhIG5ldyByZWdpc3RyYXRpb24uCi0gIGNvbnN0
IHJlZzIgPSBhd2FpdCBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3Rlcih1cmwyLCB7IHNj
b3BlOiBtYXRjaGVkX3Njb3BlIH0pOwotICB0LmFkZF9jbGVhbnVwKCgpID0+IHJlZzIudW5yZWdp
c3RlcigpKTsKLSAgLy8gVGhpcyByZWdpc3RyYXRpb24gd2lsbCByZXNvbHZlIGFsbCByZWFkeSBw
cm9taXNlcyBpbiBjbGllbnRzIHRoYXQgbWF0Y2ggdGhlIHNjb3BlLgotICAvLyBUaGF0IGluY2x1
ZGVzIGZyYW1lJ3MgY2xpZW50LgotCi0gIGNvbnN0IHJlYWR5UmVnID0gYXdhaXQgcmVhZHlQcm9t
aXNlOwotCi0gIGFzc2VydF9lcXVhbHMocmVhZHlSZWcuYWN0aXZlLnNjcmlwdFVSTCwgcmVnMi5h
Y3RpdmUuc2NyaXB0VVJMLCAnUmVzb2x2ZXMgd2l0aCB0aGUgc2Vjb25kIHJlZ2lzdHJhdGlvbicp
OwotICBhc3NlcnRfbm90X2VxdWFscyhyZWcxLCByZWcyLCAnUmVnaXN0cmF0aW9ucyBzaG91bGQg
YmUgZGlmZmVyZW50Jyk7Ci19LCAncmVzb2x2ZSByZWFkeSBhZnRlciB1bnJlZ2lzdGVyaW5nIGFu
ZCByZXJlZ2lzdGVyaW5nJyk7Ci0KLXByb21pc2VfdGVzdChhc3luYyBmdW5jdGlvbih0KSB7Ci0g
IGNvbnN0IHVybDEgPSAncmVzb3VyY2VzL2VtcHR5LXdvcmtlci5qcyc7Ci0gIGNvbnN0IHVybDIg
PSB1cmwxICsgJz8yJzsKLSAgY29uc3QgbWF0Y2hlZF9zY29wZSA9ICdyZXNvdXJjZXMvYmxhbmsu
aHRtbD9yZWFkeS1hZnRlci11bnJlZ2lzdGVyJzsKLQotICBjb25zdCBmcmFtZSA9IGF3YWl0IHdp
dGhfaWZyYW1lKG1hdGNoZWRfc2NvcGUpOwotICB0LmFkZF9jbGVhbnVwKCgpID0+IGZyYW1lLnJl
bW92ZSgpKTsKLQotICBjb25zdCByZWcxID0gYXdhaXQgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rl
cl9hbmRfcmVnaXN0ZXIodCwgdXJsMSwgbWF0Y2hlZF9zY29wZSk7Ci0gIHQuYWRkX2NsZWFudXAo
KCkgPT4gcmVnMS51bnJlZ2lzdGVyKCkpOwotCi0gIGF3YWl0IHdhaXRfZm9yX3N0YXRlKHQsIHJl
ZzEuaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOwotICAvLyBUaGlzIHJlZ2lzdHJhdGlvbiB3aWxs
IHJlc29sdmUgYWxsIHJlYWR5IHByb21pc2VzIGluIGNsaWVudHMgdGhhdCBtYXRjaCB0aGUgc2Nv
cGUuCi0gIC8vIFRoYXQgaW5jbHVkZXMgZnJhbWUncyBjbGllbnQuCi0KLSAgY29uc3QgcmVnMUFj
dGl2ZSA9IHJlZzEuYWN0aXZlOwotCi0gIGF3YWl0IHJlZzEudW5yZWdpc3RlcigpOwotCi0gIC8v
IEFjY2VzcyB0aGUgcmVhZHkgcHJvbWlzZSB3aGlsZSB0aGUgcmVnaXN0cmF0aW9uIGlzIHVucmVn
aXN0ZXJpbmcuCi0gIGNvbnN0IHJlYWR5UHJvbWlzZSA9IGZyYW1lLmNvbnRlbnRXaW5kb3cubmF2
aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVhZHk7Ci0KLSAgLy8gQ3JlYXRlIGEgbmV3IHJlZ2lzdHJh
dGlvbi4KLSAgY29uc3QgcmVnMiA9IGF3YWl0IG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lz
dGVyKHVybDIsIHsgc2NvcGU6IG1hdGNoZWRfc2NvcGUgfSk7Ci0gIHQuYWRkX2NsZWFudXAoKCkg
PT4gcmVnMi51bnJlZ2lzdGVyKCkpOwotICAvLyBUaGlzIHJlZ2lzdHJhdGlvbiB3aWxsIHJlc29s
dmUgYWxsIHJlYWR5IHByb21pc2VzIGluIGNsaWVudHMgdGhhdCBtYXRjaCB0aGUgc2NvcGUuCi0g
IC8vIFRoYXQgaW5jbHVkZXMgZnJhbWUncyBjbGllbnQsIGJ1dCBpdHMgcmVhZHkgcHJvbWlzZSBo
YXMgYWxyZWFkeSByZXNvbHZlZC4KLQotICBjb25zdCByZWFkeVJlZyA9IGF3YWl0IHJlYWR5UHJv
bWlzZTsKLQotICBhc3NlcnRfZXF1YWxzKHJlYWR5UmVnLmFjdGl2ZS5zY3JpcHRVUkwsIHJlZzFB
Y3RpdmUuc2NyaXB0VVJMLCAnUmVzb2x2ZXMgd2l0aCB0aGUgZmlyc3QgcmVnaXN0cmF0aW9uJyk7
Ci0gIGFzc2VydF9ub3RfZXF1YWxzKHJlZzEsIHJlZzIsICdSZWdpc3RyYXRpb25zIHNob3VsZCBi
ZSBkaWZmZXJlbnQnKTsKLX0sICdyZXNvbHZlIHJlYWR5IGJlZm9yZSB1bnJlZ2lzdGVyaW5nIGFu
ZCByZXJlZ2lzdGVyaW5nJyk7CisgICAgdmFyIHVybCA9ICdyZXNvdXJjZXMvZW1wdHktd29ya2Vy
LmpzJzsKKyAgICB2YXIgbWF0Y2hlZF9zY29wZSA9ICdyZXNvdXJjZXMvYmxhbmsuaHRtbD9yZWFk
eS1hZnRlci1yZXN1cnJlY3QnOworCisgICAgbGV0IHJlZzEgPSBhd2FpdCBzZXJ2aWNlX3dvcmtl
cl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCB1cmwsIG1hdGNoZWRfc2NvcGUpOworICAgIGFk
ZF9jb21wbGV0aW9uX2NhbGxiYWNrKGZ1bmN0aW9uKCkgeworICAgICAgICByZWcxLnVucmVnaXN0
ZXIoKTsKKyAgICAgIH0pOworICAgIGF3YWl0IHdhaXRfZm9yX3N0YXRlKHQsIHJlZzEuaW5zdGFs
bGluZywgJ2FjdGl2YXRlZCcpOworCisgICAgLy8gSG9sZCB0aGUgd29ya2VyIGFsaXZlIHdpdGgg
YSBjb250cm9sbGVkIHdvcmtlcgorICAgIGxldCBmcmFtZSA9IGF3YWl0IHdpdGhfaWZyYW1lKG1h
dGNoZWRfc2NvcGUpOworICAgIGFkZF9jb21wbGV0aW9uX2NhbGxiYWNrKGZ1bmN0aW9uKCkgewor
ICAgICAgICBmcmFtZS5yZW1vdmUoKTsKKyAgICAgIH0pOworCisgICAgLy8gRG9vbSB0aGUgcmVn
aXN0cmF0aW9uIGFzIHVuaW5zdGFsbGluZy4KKyAgICBhd2FpdCByZWcxLnVucmVnaXN0ZXIoKTsK
KworICAgIC8vIEFjY2VzcyB0aGUgcmVhZHkgcHJvbWlzZSB3aGlsZSB0aGUgcmVnaXN0cmF0aW9u
IGlzIGRvb21lZC4KKyAgICBsZXQgcmVhZHlQcm9taXNlID0gZnJhbWUuY29udGVudFdpbmRvdy5u
YXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWFkeTsKKworICAgIC8vIFJlc3VycmVjdCB0aGUgZG9v
bWVkIHJlZ2lzdHJhdGlvbjsKKyAgICBsZXQgcmVnMiA9IGF3YWl0IHNlcnZpY2Vfd29ya2VyX3Vu
cmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHVybCwgbWF0Y2hlZF9zY29wZSk7CisgICAgYXNzZXJ0
X2VxdWFscyhyZWcxLCByZWcyLCAnZXhpc3RpbmcgcmVnaXN0cmF0aW9uIHNob3VsZCBiZSByZXN1
cnJlY3RlZCcpOworCisgICAgLy8gV2UgYXJlIHRyeWluZyB0byB0ZXN0IGlmIHRoZSByZWFkeSBw
cm9taXNlIGV2ZXIgcmVzb2x2ZXMgaGVyZS4gIFVzZQorICAgIC8vIGFuIGV4cGxpY2l0IHRpbWVv
dXQgY2hlY2sgaGVyZSByYXRoZXIgdGhhbiBmb3JjaW5nIGEgZnVsbCBpbmZyYXN0cnVjdHVyZQor
ICAgIC8vIGxldmVsIHRpbWVvdXQuCisgICAgbGV0IHRpbWVvdXRJZDsKKyAgICBsZXQgdGltZW91
dFByb21pc2UgPSBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHsKKyAgICAgIHRpbWVvdXRJZCA9IHNl
dFRpbWVvdXQoXyA9PiB7CisgICAgICAgIHRpbWVvdXRJZCA9IG51bGw7CisgICAgICAgIHJlc29s
dmUoKTsKKyAgICAgIH0sIDUwMCk7CisgICAgfSk7CisKKyAgICAvLyBUaGlzIHNob3VsZCByZXNv
bHZlIGltbWVkaWF0ZWx5IHNpbmNlIHRoZXJlIGlzIGFuIGFsaXZlIHJlZ2lzdHJhdGlvbgorICAg
IC8vIHdpdGggYW4gYWN0aXZlIHByb21pc2UgZm9yIHRoZSBtYXRjaGluZyBzY29wZS4KKyAgICBh
d2FpdCBQcm9taXNlLnJhY2UoW3JlYWR5UHJvbWlzZSwgdGltZW91dFByb21pc2VdKTsKKworICAg
IGFzc2VydF9ub3RfZXF1YWxzKHRpbWVvdXRJZCwgbnVsbCwKKyAgICAgICAgICAgICAgICAgICAg
ICAncmVhZHkgcHJvbWlzZSBzaG91bGQgcmVzb2x2ZSBiZWZvcmUgdGltZW91dCcpOworICAgIGNs
ZWFyVGltZW91dCh0aW1lb3V0SWQpOworCisgICAgLy8gV2Ugc2hvdWxkIGdldCBoZXJlIGFuZCBu
b3QgdGltZSBvdXQuCisKKyAgfSwgJ2FjY2VzcyByZWFkeSBvbiB1bmluc3RhbGxpbmcgcmVnaXN0
cmF0aW9uIHRoYXQgaXMgcmVzdXJyZWN0ZWQnKTsKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvcmVkaXJlY3RlZC1yZXNwb25zZS5odHRwcy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci9yZWRpcmVjdGVkLXJlc3BvbnNlLmh0dHBzLWV4cGVjdGVkLnR4dApp
bmRleCA5ZDJmMjcwNmNhZmVlYjc0MDMwNTljYjM3MDZmMzQ5MDVjMmRmOTE3Li42YzY1MjA3NmE5
ZjAyNTEzZTFjYTlkZDFlNDdjY2Y5NTBmNTcwZTQzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9yZWRpcmVjdGVkLXJlc3BvbnNlLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9yZWRpcmVjdGVkLXJlc3BvbnNlLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMjgs
NyArMjgsNiBAQCBQQVNTIG1vZGU6ICJlcnJvciIsIGdlbmVyYXRlZCByZWRpcmVjdCByZXNwb25z
ZQogUEFTUyBtb2RlOiAibWFudWFsIiwgZ2VuZXJhdGVkIHJlZGlyZWN0IHJlc3BvbnNlIAogUEFT
UyBGZXRjaCBzaG91bGQgZm9sbG93IHRoZSByZWRpcmVjdCByZXNwb25zZSAyMCB0aW1lcyAKIFBB
U1MgRmV0Y2ggc2hvdWxkIG5vdCBmb2xsb3cgdGhlIHJlZGlyZWN0IHJlc3BvbnNlIDIxIHRpbWVz
LiAKLVBBU1MgVGhlIFVSTCBmb3IgdGhlIHNlcnZpY2Ugd29ya2VyIHJlZGlyZWN0ZWQgcmVxdWVz
dCBzaG91bGQgYmUgcHJvcGFnYXRlZCB0byByZXNwb25zZS4gCiBQQVNTIHJlc3RvcmUgZ2xvYmFs
IHN0YXRlIChzZXJ2aWNlIHdvcmtlciByZWdpc3RyYXRpb24pIAogUEFTUyByZXN0b3JlIGdsb2Jh
bCBzdGF0ZSAoY2FjaGVzKSAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVkaXJl
Y3RlZC1yZXNwb25zZS5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVkaXJlY3RlZC1y
ZXNwb25zZS5odHRwcy5odG1sCmluZGV4IDE3NmZjYjQ5NGI2NjRiYWU0M2ZlYmEwYzc5M2U1Mjg0
NWRmMzUyNTcuLmY3MzcwZTAyM2IxYWI0NDU0YjgzOWJjNmRhYTQzMmNmNTM5ZTFkN2YgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlZGlyZWN0ZWQtcmVzcG9uc2UuaHR0cHMuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZWRpcmVjdGVkLXJlc3BvbnNlLmh0dHBzLmh0bWwKQEAg
LTMzLDExICszMyw2IEBAIGZ1bmN0aW9uIHJlZGlyZWN0ZWRfdGVzdChvcHRpb25zKSB7CiAgICAg
ICAgIGFzc2VydF9lcXVhbHMoCiAgICAgICAgICAgICBjbG9uZWRfcmVzcG9uc2UucmVkaXJlY3Rl
ZCwgb3B0aW9ucy5leHBlY3RlZF9yZWRpcmVjdGVkLAogICAgICAgICAgICAgJ1RoZSByZWRpcmVj
dGVkIGZsYWcgb2YgY2xvbmVkIHJlc3BvbnNlIG11c3QgbWF0Y2guIFVSTDogJyArIG9wdGlvbnMu
dXJsKTsKLSAgICAgICAgaWYgKG9wdGlvbnMuZXhwZWN0ZWRfcmVzcG9uc2VfdXJsKSB7Ci0gICAg
ICAgICAgICBhc3NlcnRfZXF1YWxzKAotICAgICAgICAgICAgICAgIGNsb25lZF9yZXNwb25zZS51
cmwsIG9wdGlvbnMuZXhwZWN0ZWRfcmVzcG9uc2VfdXJsLAotICAgICAgICAgICAgICAgICdUaGUg
VVJMIGRvZXMgbm90IG1lZXQgZXhwZWN0YXRpb24uIFVSTDogJyArIG9wdGlvbnMudXJsKTsKLSAg
ICAgICAgfQogICAgICAgICByZXR1cm4gY2FjaGUucHV0KG9wdGlvbnMudXJsLCByZXNwb25zZSk7
CiAgICAgICB9KQogICAgIC50aGVuKF8gPT4gY2FjaGUubWF0Y2gob3B0aW9ucy51cmwpKQpAQCAt
NTQsMTUgKzQ5LDEyIEBAIGZ1bmN0aW9uIHJlZGlyZWN0ZWRfdGVzdChvcHRpb25zKSB7CiAgICAg
ICB9KTsKIH0KIAotYXN5bmMgZnVuY3Rpb24gdGFrZV9pbnRlcmNlcHRlZF91cmxzKCkgewotICBj
b25zdCBtZXNzYWdlID0gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsKLSAgICBsZXQgY2hhbm5l
bCA9IG5ldyBNZXNzYWdlQ2hhbm5lbCgpOwotICAgIGNoYW5uZWwucG9ydDEub25tZXNzYWdlID0g
bXNnID0+IHsgcmVzb2x2ZShtc2cuZGF0YS5yZXF1ZXN0SW5mb3MpOyB9OwotICAgIHdvcmtlci5w
b3N0TWVzc2FnZSh7Y29tbWFuZDogJ2dldFJlcXVlc3RJbmZvcycsIHBvcnQ6IGNoYW5uZWwucG9y
dDJ9LAotICAgICAgICAgICAgICAgICAgICAgICBbY2hhbm5lbC5wb3J0Ml0pOwotICB9KTsKLSAg
Y29uc3QgcmVxdWVzdF9pbmZvcyA9IGF3YWl0IG1lc3NhZ2U7Ci0gIHJldHVybiByZXF1ZXN0X2lu
Zm9zLm1hcChpbmZvID0+IHsgcmV0dXJuIGluZm8udXJsOyB9KTsKK2Z1bmN0aW9uIHRha2VfaW50
ZXJjZXB0ZWRfdXJscygpIHsKKyAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7Cisg
ICAgICBsZXQgY2hhbm5lbCA9IG5ldyBNZXNzYWdlQ2hhbm5lbCgpOworICAgICAgY2hhbm5lbC5w
b3J0MS5vbm1lc3NhZ2UgPSBtc2cgPT4geyByZXNvbHZlKG1zZy5kYXRhLnVybHMpOyB9OworICAg
ICAgd29ya2VyLnBvc3RNZXNzYWdlKHtwb3J0OiBjaGFubmVsLnBvcnQyfSwgW2NoYW5uZWwucG9y
dDJdKTsKKyAgICB9KTsKIH0KIAogZnVuY3Rpb24gY2hlY2tfaW50ZXJjZXB0ZWRfdXJscyhleHBl
Y3RlZF91cmxzKSB7CkBAIC0zNTMsMjMgKzM0NSw0IEBAIHByb21pc2VfdGVzdCh0ID0+IHNldHVw
X2FuZF9jbGVhbigpCiAgICAgICAgIH0pOwogICAgIH0pLAogICAnRmV0Y2ggc2hvdWxkIG5vdCBm
b2xsb3cgdGhlIHJlZGlyZWN0IHJlc3BvbnNlIDIxIHRpbWVzLicpOwotCi0vLyA9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0vLyBBIHRlc3Qg
Zm9yIHZlcmlmeWluZyB0aGUgdXJsIG9mIGEgc2VydmljZS13b3JrZXItcmVkaXJlY3RlZCByZXF1
ZXN0IGlzCi0vLyBwcm9wYWdhdGVkIHRvIHRoZSBvdXRlciByZXNwb25zZS4KLS8vID09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLXByb21pc2Vf
dGVzdCh0ID0+IHNldHVwX2FuZF9jbGVhbigpCi0gICAgLnRoZW4oKCkgPT4gewotICAgICAgY29u
c3QgdXJsID0gaG9zdF9pbmZvWydIVFRQU19PUklHSU4nXSArIGJhc2VfcGF0aCgpICsgJ2R1bW15
P3VybD0nICsKLSAgICAgICAgICAgICAgICAgIGVuY29kZVVSSUNvbXBvbmVudChUQVJHRVRfVVJM
KSArJyZzdz1mZXRjaC11cmwnOwotICAgICAgcmV0dXJuIHJlZGlyZWN0ZWRfdGVzdCh7dXJsOiB1
cmwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZXRjaF9vcHRpb246IHt9LAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZmV0Y2hfbWV0aG9kOiBmcmFtZS5jb250ZW50V2lu
ZG93LmZldGNoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRfdHlwZTog
J2Jhc2ljJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkX3JlZGlyZWN0
ZWQ6IGZhbHNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRfaW50ZXJj
ZXB0ZWRfdXJsczogW3VybF0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBlY3Rl
ZF9yZXNwb25zZV91cmw6IFRBUkdFVF9VUkx9KTsKLSAgICB9KSwKLSAgJ1RoZSBVUkwgZm9yIHRo
ZSBzZXJ2aWNlIHdvcmtlciByZWRpcmVjdGVkIHJlcXVlc3Qgc2hvdWxkIGJlIHByb3BhZ2F0ZWQg
dG8gJyArCi0gICdyZXNwb25zZS4nKTsKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvcmVmZXJlci5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVmZXJlci5o
dHRwcy5odG1sCmluZGV4IDA5NTdlNGM1MzMwMTY4YjA4MjM2ZmY3YzQzMTcwNmExZDkyY2MxYTQu
LjQzZmNjYmFkNTZjZjQ1MDRlOWU5ZGRhOTc0MmMxYzg2OWJiMGE1NTkgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL3JlZmVyZXIuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9yZWZlcmVyLmh0dHBzLmh0bWwKQEAgLTUsMzYgKzUsMjYgQEAKIDxzY3JpcHQgc3JjPSIvY29t
bW9uL2dldC1ob3N0LWluZm8uc3ViLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvdGVzdC1oZWxwZXJzLnN1Yi5qcz9waXBlPXN1YiI+PC9zY3JpcHQ+CiA8c2NyaXB0PgotcHJv
bWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKK2FzeW5jX3Rlc3QoZnVuY3Rpb24odCkgewogICAgIHZh
ciBTQ09QRSA9ICdyZXNvdXJjZXMvcmVmZXJlci1pZnJhbWUuaHRtbCc7CiAgICAgdmFyIFNDUklQ
VCA9ICdyZXNvdXJjZXMvZmV0Y2gtcmV3cml0ZS13b3JrZXIuanMnOwogICAgIHZhciBob3N0X2lu
Zm8gPSBnZXRfaG9zdF9pbmZvKCk7Ci0gICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0
ZXJfYW5kX3JlZ2lzdGVyKHQsIFNDUklQVCwgU0NPUEUpCisgICAgc2VydmljZV93b3JrZXJfdW5y
ZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgU0NSSVBULCBTQ09QRSkKICAgICAgIC50aGVuKGZ1bmN0
aW9uKHJlZ2lzdHJhdGlvbikgewotICAgICAgICAgIHQuYWRkX2NsZWFudXAoZnVuY3Rpb24oKSB7
Ci0gICAgICAgICAgICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyKHQsIFNDT1BF
KTsKLSAgICAgICAgICAgIH0pOwotCiAgICAgICAgICAgcmV0dXJuIHdhaXRfZm9yX3N0YXRlKHQs
IHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7CiAgICAgICAgIH0pCiAgICAg
ICAudGhlbihmdW5jdGlvbigpIHsgcmV0dXJuIHdpdGhfaWZyYW1lKFNDT1BFKTsgfSkKICAgICAg
IC50aGVuKGZ1bmN0aW9uKGZyYW1lKSB7CiAgICAgICAgICAgdmFyIGNoYW5uZWwgPSBuZXcgTWVz
c2FnZUNoYW5uZWwoKTsKLSAgICAgICAgICB0LmFkZF9jbGVhbnVwKGZ1bmN0aW9uKCkgeworICAg
ICAgICAgIGNoYW5uZWwucG9ydDEub25tZXNzYWdlID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkg
eworICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUuZGF0YS5yZXN1bHRzLCAnZmluaXNoJyk7
CiAgICAgICAgICAgICAgIGZyYW1lLnJlbW92ZSgpOworICAgICAgICAgICAgICBzZXJ2aWNlX3dv
cmtlcl91bnJlZ2lzdGVyX2FuZF9kb25lKHQsIFNDT1BFKTsKICAgICAgICAgICAgIH0pOwotCi0g
ICAgICAgICAgdmFyIG9uTXNnID0gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSkgewotICAg
ICAgICAgICAgICBjaGFubmVsLnBvcnQxLm9ubWVzc2FnZSA9IHJlc29sdmU7Ci0gICAgICAgICAg
ICB9KTsKLQogICAgICAgICAgIGZyYW1lLmNvbnRlbnRXaW5kb3cucG9zdE1lc3NhZ2Uoe30sCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBob3N0X2luZm9bJ0hUVFBT
X09SSUdJTiddLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2No
YW5uZWwucG9ydDJdKTsKLSAgICAgICAgICByZXR1cm4gb25Nc2c7CiAgICAgICAgIH0pCi0gICAg
ICAudGhlbihmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLmRhdGEucmVz
dWx0cywgJ2ZpbmlzaCcpOwotICAgICAgICB9KTsKKyAgICAgIC5jYXRjaCh1bnJlYWNoZWRfcmVq
ZWN0aW9uKHQpKTsKICAgfSwgJ1ZlcmlmeSB0aGUgcmVmZXJlcicpOwogPC9zY3JpcHQ+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZWdpc3Rlci1kZWZhdWx0LXNjb3BlLmh0dHBzLmh0
bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZWdpc3Rlci1kZWZhdWx0LXNjb3BlLmh0dHBzLmh0bWwK
aW5kZXggMWQ4NjU0OGViNWVlYjU3NTRjYTExMWRkNGM1NTg0MzIwMjIxNmIyZC4uZGMxMzZkNGU4
ZGQ3NGQzZjg1MTg4MGEyYmM0ZmY1ZjIxNWNhZjI1NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvcmVnaXN0ZXItZGVmYXVsdC1zY29wZS5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL3JlZ2lzdGVyLWRlZmF1bHQtc2NvcGUuaHR0cHMuaHRtbApAQCAtNTIsMTEgKzUyLDgg
QEAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICAgIH0pCiAgICAgICAudGhlbigKICAg
ICAgICAgZnVuY3Rpb24ocmVnaXN0cmF0aW9uKSB7Ci0gICAgICAgICAgdC5hZGRfY2xlYW51cChm
dW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0
ZXIodCwgcmVnaXN0cmF0aW9uLnNjb3BlKTsKLSAgICAgICAgICAgIH0pOwotCiAgICAgICAgICAg
YXNzZXJ0X3VucmVhY2hlZCgncmVnaXN0ZXIgc2hvdWxkIGZhaWwnKTsKKyAgICAgICAgICBzZXJ2
aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9kb25lKHQsIHJlZ2lzdHJhdGlvbi5zY29wZSk7CiAg
ICAgICAgIH0sCiAgICAgICAgIGZ1bmN0aW9uKGVycm9yKSB7CiAgICAgICAgICAgYXNzZXJ0X2Vx
dWFscyhlcnJvci5uYW1lLCAnU2VjdXJpdHlFcnJvcicsCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9yZWdpc3Rlci13YWl0LWZvcmV2ZXItaW4taW5zdGFsbC13b3JrZXIuaHR0cHMuaHRt
bCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlZ2lzdGVyLXdhaXQtZm9yZXZlci1pbi1pbnN0YWxsLXdv
cmtlci5odHRwcy5odG1sCmluZGV4IDA5MjBiNWNiMjIzZDUwZTMxZDA0NGE5MzIzZjU1YzFlNzdi
MTg4NTcuLmUyM2Y5ZjRmYzhlMzgwN2FkNjBjOTBiMDU1Zjc0YzM4ZDM4M2MyNGQgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlZ2lzdGVyLXdhaXQtZm9yZXZlci1pbi1pbnN0YWxsLXdv
cmtlci5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlZ2lzdGVyLXdhaXQtZm9y
ZXZlci1pbi1pbnN0YWxsLXdvcmtlci5odHRwcy5odG1sCkBAIC0xNiwxMCArMTYsNiBAQCBwcm9t
aXNlX3Rlc3QoZnVuY3Rpb24odCkgewogCiAgICAgcmV0dXJuIG5hdmlnYXRvci5zZXJ2aWNlV29y
a2VyLnJlZ2lzdGVyKGJhZF9zY3JpcHQsIHtzY29wZTogc2NvcGV9KQogICAgICAgLnRoZW4oZnVu
Y3Rpb24ocikgewotICAgICAgICAgIHQuYWRkX2NsZWFudXAoZnVuY3Rpb24oKSB7Ci0gICAgICAg
ICAgICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyKHQsIHNjb3BlKTsKLSAgICAg
ICAgICAgIH0pOwotCiAgICAgICAgICAgcmVnaXN0cmF0aW9uID0gcjsKICAgICAgICAgICBhc3Nl
cnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLnNjcmlwdFVSTCwKICAgICAgICAgICAg
ICAgICAgICAgICAgIG5vcm1hbGl6ZVVSTChiYWRfc2NyaXB0KSk7CkBAIC01MSw2ICs0Nyw5IEBA
IHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBub3Jt
YWxpemVVUkwoZ29vZF9zY3JpcHQpKTsKICAgICAgICAgICByZXR1cm4gd2FpdF9mb3Jfc3RhdGUo
dCwgcmVnaXN0cmF0aW9uLmluc3RhbGxpbmcsICdhY3RpdmF0ZWQnKTsKICAgICAgICAgfSkKKyAg
ICAgIC50aGVuKGZ1bmN0aW9uKCkgeworICAgICAgICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91
bnJlZ2lzdGVyX2FuZF9kb25lKHQsIHNjb3BlKTsKKyAgICAgICAgfSkKICAgfSwgJ3JlZ2lzdGVy
IHdvcmtlciB0aGF0IGNhbGxzIHdhaXRVbnRpbCB3aXRoIGEgcHJvbWlzZSB0aGF0IG5ldmVyICcg
KwogICAgICAncmVzb2x2ZXMgaW4gb25pbnN0YWxsJyk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL3JlZ2lzdHJhdGlvbi1lbmQtdG8tZW5kLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9yZWdpc3RyYXRpb24tZW5kLXRvLWVuZC5odHRwcy5odG1sCmluZGV4IDFhZjQ1ODJk
Mzg3NDEyZjQ3ZDgyYTk0YjJmZTcwNTBhNTk5NDY0NGEuLmU5MmI2NTAyZjA5YjFhOTMwOGI5NmU0
M2M2ZGM5NWY4MjVmYWM2OTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlZ2lzdHJh
dGlvbi1lbmQtdG8tZW5kLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVnaXN0
cmF0aW9uLWVuZC10by1lbmQuaHR0cHMuaHRtbApAQCAtMTEsMTEgKzExLDE2IEBAIHQuc3RlcChm
dW5jdGlvbigpIHsKICAgICB2YXIgc2VydmljZVdvcmtlclN0YXRlcyA9IFtdOwogICAgIHZhciBs
YXN0U2VydmljZVdvcmtlclN0YXRlID0gJyc7CiAgICAgdmFyIHJlY2VpdmVkTWVzc2FnZUZyb21Q
b3J0ID0gJyc7CisgICAgdmFyIGN1cnJlbnRDaGFuZ2VDb3VudCA9IDA7CiAKICAgICBhc3NlcnRf
dHJ1ZShuYXZpZ2F0b3Iuc2VydmljZVdvcmtlciBpbnN0YW5jZW9mIFNlcnZpY2VXb3JrZXJDb250
YWluZXIpOwogICAgIGFzc2VydF9lcXVhbHModHlwZW9mIG5hdmlnYXRvci5zZXJ2aWNlV29ya2Vy
LnJlZ2lzdGVyLCAnZnVuY3Rpb24nKTsKICAgICBhc3NlcnRfZXF1YWxzKHR5cGVvZiBuYXZpZ2F0
b3Iuc2VydmljZVdvcmtlci5nZXRSZWdpc3RyYXRpb24sICdmdW5jdGlvbicpOwogCisgICAgbmF2
aWdhdG9yLnNlcnZpY2VXb3JrZXIub25jdXJyZW50Y2hhbmdlID0gZnVuY3Rpb24oKSB7CisgICAg
ICAgICsrY3VycmVudENoYW5nZUNvdW50OworICAgIH07CisKICAgICBzZXJ2aWNlX3dvcmtlcl91
bnJlZ2lzdGVyX2FuZF9yZWdpc3RlcigKICAgICAgICAgdCwgJ3Jlc291cmNlcy9lbmQtdG8tZW5k
LXdvcmtlci5qcycsIHNjb3BlKQogICAgICAgLnRoZW4ob25SZWdpc3RlcikKQEAgLTcwLDYgKzc1
LDkgQEAgdC5zdGVwKGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBbJ2luc3RhbGxpbmcnLCAnaW5zdGFsbGVkJywgJ2FjdGl2YXRpbmcnLCAnYWN0aXZhdGVkJ10s
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdTZXJ2aWNlIHdvcmtlciBzaG91bGQg
cGFzcyB0aHJvdWdoIGFsbCBzdGF0ZXMnKTsKIAorICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhj
dXJyZW50Q2hhbmdlQ291bnQsIDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICdTaG91bGQg
bm90IHNlZSBjdXJyZW50IGNoYW5nZXMgc2luY2UgZG9jdW1lbnQgaXMgb3V0IG9mIHNjb3BlJyk7
CisKICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVjZWl2ZWRNZXNzYWdlRnJvbVBvcnQsICdB
Y2sgZm9yOiByZWdpc3RlcmluZyBkb2MnKTsKIAogICAgICAgICAgICAgdmFyIHNhd1JlZHVuZGFu
dCA9IG5ldyBQcm9taXNlKHQuc3RlcF9mdW5jKGZ1bmN0aW9uKHJlc29sdmUpIHsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlZ2lzdHJhdGlvbi1ldmVudHMuaHR0cHMuaHRtbCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL3JlZ2lzdHJhdGlvbi1ldmVudHMuaHR0cHMuaHRtbAppbmRleCA1YmNm
ZDY2ODQ2YmNlNWI5M2JmMDlkMDViNjVjMmUzNTJiNTFmZmFiLi45NzJjZTc0MTBiOTkyMmVkYjcw
NTJlYTViZTc0MGY4ZWY0ODkyZjE5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZWdp
c3RyYXRpb24tZXZlbnRzLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVnaXN0
cmF0aW9uLWV2ZW50cy5odHRwcy5odG1sCkBAIC00LDE3ICs0LDE1IEBACiA8c2NyaXB0IHNyYz0i
L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL3Rlc3QtaGVscGVycy5zdWIuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KLXByb21p
c2VfdGVzdChmdW5jdGlvbih0KSB7Cit2YXIgdCA9IGFzeW5jX3Rlc3QoJ1JlZ2lzdHJhdGlvbjog
ZXZlbnRzJyk7Cit0LnN0ZXAoZnVuY3Rpb24oKSB7CiAgICAgdmFyIHNjb3BlID0gJ3Jlc291cmNl
cy9pbi1zY29wZS8nOwotICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9y
ZWdpc3RlcigKKyAgICBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3RlcigKICAg
ICAgICAgdCwgJ3Jlc291cmNlcy9ldmVudHMtd29ya2VyLmpzJywgc2NvcGUpCi0gICAgICAudGhl
bihmdW5jdGlvbihyZWdpc3RyYXRpb24pIHsKLSAgICAgICAgICB0LmFkZF9jbGVhbnVwKGZ1bmN0
aW9uKCkgewotICAgICAgICAgICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcih0
LCBzY29wZSk7Ci0gICAgICAgICAgfSk7Ci0KLSAgICAgICAgICByZXR1cm4gb25SZWdpc3Rlcihy
ZWdpc3RyYXRpb24uaW5zdGFsbGluZyk7Ci0gICAgICAgIH0pOworICAgICAgLnRoZW4odC5zdGVw
X2Z1bmMoZnVuY3Rpb24ocmVnaXN0cmF0aW9uKSB7CisgICAgICAgICAgb25SZWdpc3RlcihyZWdp
c3RyYXRpb24uaW5zdGFsbGluZyk7CisgICAgICAgIH0pKQorICAgICAgLmNhdGNoKHVucmVhY2hl
ZF9yZWplY3Rpb24odCkpOwogCiAgICAgZnVuY3Rpb24gc2VuZE1lc3NhZ2VQb3J0KHdvcmtlciwg
ZnJvbSkgewogICAgICAgICB2YXIgbWVzc2FnZUNoYW5uZWwgPSBuZXcgTWVzc2FnZUNoYW5uZWwo
KTsKQEAgLTIzLDIwICsyMSwxNyBAQCBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewogICAgIH0K
IAogICAgIGZ1bmN0aW9uIG9uUmVnaXN0ZXIoc3cpIHsKLSAgICAgICAgcmV0dXJuIG5ldyBQcm9t
aXNlKGZ1bmN0aW9uKHJlc29sdmUpIHsKLSAgICAgICAgICAgIHN3Lm9uc3RhdGVjaGFuZ2UgPSBm
dW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICBpZiAoc3cuc3RhdGUgPT09ICdhY3RpdmF0ZWQn
KQotICAgICAgICAgICAgICAgICAgICByZXNvbHZlKCk7Ci0gICAgICAgICAgICB9OwotICAgICAg
ICB9KS50aGVuKGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1
bmN0aW9uKHJlc29sdmUpIHsKLSAgICAgICAgICAgICAgICBzZW5kTWVzc2FnZVBvcnQoc3csICdy
ZWdpc3RlcmluZyBkb2MnKS5vbm1lc3NhZ2UgPSByZXNvbHZlOwotICAgICAgICAgICAgfSk7Ci0g
ICAgICAgIH0pLnRoZW4oZnVuY3Rpb24oZSkgeworICAgICAgICBzdy5vbnN0YXRlY2hhbmdlID0g
dC5zdGVwX2Z1bmMoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBpZiAoc3cuc3RhdGUgIT09ICdh
Y3RpdmF0ZWQnKQorICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgc2VuZE1l
c3NhZ2VQb3J0KHN3LCAncmVnaXN0ZXJpbmcgZG9jJykub25tZXNzYWdlID0gdC5zdGVwX2Z1bmMo
ZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGUuZGF0
YS5ldmVudHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJ2luc3RhbGwn
LCAnYWN0aXZhdGUnXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1dvcmtl
ciBzaG91bGQgc2VlIGluc3RhbGwgdGhlbiBhY3RpdmF0ZSBldmVudHMnKTsKKyAgICAgICAgICAg
ICAgICBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9kb25lKHQsIHNjb3BlKTsKKyAgICAg
ICAgICAgIH0pOwogICAgICAgICB9KTsKICAgICB9Ci19LCAnUmVnaXN0cmF0aW9uOiBldmVudHMn
KTsKK30pOwogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZWdpc3Ry
YXRpb24tbWltZS10eXBlcy5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9y
ZWdpc3RyYXRpb24tbWltZS10eXBlcy5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggZGI3MmJhZmFm
N2I5NGNlMGUyYjljYzdmMGIyNzRlZWJjNzJkODM4MC4uNTM3YTJmN2JkNjIxMjRjYTQ5MWJlZjFh
NmY4NmFlYjlmODgyNTFmZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVnaXN0cmF0
aW9uLW1pbWUtdHlwZXMuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L3JlZ2lzdHJhdGlvbi1taW1lLXR5cGVzLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMSw4ICsxLDgg
QEAKIAogUEFTUyBSZWdpc3RlcmluZyBzY3JpcHQgd2l0aCBubyBNSU1FIHR5cGUgCiBQQVNTIFJl
Z2lzdGVyaW5nIHNjcmlwdCB3aXRoIGJhZCBNSU1FIHR5cGUgCi1QQVNTIFJlZ2lzdGVyaW5nIHNj
cmlwdCB0aGF0IGltcG9ydHMgc2NyaXB0IHdpdGggbm8gTUlNRSB0eXBlIAotUEFTUyBSZWdpc3Rl
cmluZyBzY3JpcHQgdGhhdCBpbXBvcnRzIHNjcmlwdCB3aXRoIGJhZCBNSU1FIHR5cGUgCitGQUlM
IFJlZ2lzdGVyaW5nIHNjcmlwdCB0aGF0IGltcG9ydHMgc2NyaXB0IHdpdGggbm8gTUlNRSB0eXBl
IGFzc2VydF90aHJvd3M6IFJlZ2lzdHJhdGlvbiBvZiBubyBNSU1FIHR5cGUgaW1wb3J0ZWQgc2Ny
aXB0IHNob3VsZCBmYWlsLiBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeyB0aHJvdyBlIH0iIHRocmV3
IG9iamVjdCAiVHlwZUVycm9yOiBOZXR3b3JrRXJyb3I6IG1pbWUgdHlwZSBpcyBub3QgYSBzdXBw
b3J0ZWQgSmF2YVNjcmlwdCBtaW1lIHR5cGUiIHRoYXQgaXMgbm90IGEgRE9NRXhjZXB0aW9uIFNl
Y3VyaXR5RXJyb3I6IHByb3BlcnR5ICJjb2RlIiBpcyBlcXVhbCB0byB1bmRlZmluZWQsIGV4cGVj
dGVkIDE4CitGQUlMIFJlZ2lzdGVyaW5nIHNjcmlwdCB0aGF0IGltcG9ydHMgc2NyaXB0IHdpdGgg
YmFkIE1JTUUgdHlwZSBhc3NlcnRfdGhyb3dzOiBSZWdpc3RyYXRpb24gb2YgcGxhaW4gdGV4dCBp
bXBvcnRlZCBzY3JpcHQgc2hvdWxkIGZhaWwuIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7IHRocm93
IGUgfSIgdGhyZXcgb2JqZWN0ICJUeXBlRXJyb3I6IE5ldHdvcmtFcnJvcjogbWltZSB0eXBlIGlz
IG5vdCBhIHN1cHBvcnRlZCBKYXZhU2NyaXB0IG1pbWUgdHlwZSIgdGhhdCBpcyBub3QgYSBET01F
eGNlcHRpb24gU2VjdXJpdHlFcnJvcjogcHJvcGVydHkgImNvZGUiIGlzIGVxdWFsIHRvIHVuZGVm
aW5lZCwgZXhwZWN0ZWQgMTgKIFBBU1MgUmVnaXN0ZXJpbmcgc2NyaXB0IHdpdGggZ29vZCBNSU1F
IHR5cGUgYXBwbGljYXRpb24vZWNtYXNjcmlwdCAKIFBBU1MgUmVnaXN0ZXJpbmcgc2NyaXB0IHRo
YXQgaW1wb3J0cyBzY3JpcHQgd2l0aCBnb29kIE1JTUUgdHlwZSBhcHBsaWNhdGlvbi9lY21hc2Ny
aXB0IAogUEFTUyBSZWdpc3RlcmluZyBzY3JpcHQgd2l0aCBnb29kIE1JTUUgdHlwZSBhcHBsaWNh
dGlvbi9qYXZhc2NyaXB0IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVnaXN0cmF0
aW9uLW1pbWUtdHlwZXMuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlZ2lzdHJhdGlv
bi1taW1lLXR5cGVzLmh0dHBzLmh0bWwKaW5kZXggYWE5ZDM4Y2VkYzk4OWM2MWM3MjY3YWNkNDE1
MGI4ODk3NDQ4NTVlMi4uOWFlNWYwOTU2ZmJhZmY1YzJkOTRjMjdlM2VmZDVkNDAyYWNhYzM2YSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVnaXN0cmF0aW9uLW1pbWUtdHlwZXMuaHR0
cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZWdpc3RyYXRpb24tbWltZS10eXBlcy5o
dHRwcy5odG1sCkBAIC0xLDYgKzEsNSBAQAogPCFET0NUWVBFIGh0bWw+CiA8dGl0bGU+U2Vydmlj
ZSBXb3JrZXI6IFJlZ2lzdHJhdGlvbiAoTUlNRSB0eXBlcyk8L3RpdGxlPgotPG1ldGEgbmFtZT0i
dGltZW91dCIgY29udGVudD0ibG9uZyI+CiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFy
bmVzcy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3Jl
cG9ydC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Rlc3QtaGVscGVycy5z
dWIuanMiPjwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVnaXN0cmF0
aW9uLXNjaGVkdWxlLWpvYi5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9y
ZWdpc3RyYXRpb24tc2NoZWR1bGUtam9iLmh0dHBzLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggYjE2OWJjZjFkYzg2MDQ4NTUxMWNkN2U0ZmFlMzA2M2FiZDJkMjlk
My4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9yZWdpc3RyYXRpb24tc2NoZWR1bGUtam9iLmh0dHBzLWV4cGVjdGVkLnR4dAor
KysgL2Rldi9udWxsCkBAIC0xLDQgKzAsMCBAQAotCi1GQUlMIGRpZmZlcmVudCBzY3JpcHRVUkwg
YW5kIHVwZGF0ZVZpYUNhY2hlIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRo
IHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogbnVsbCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0
aW5nICdyZWdpc3RyYXRpb24uaW5zdGFsbGluZy5zY3JpcHRVUkwnKSIKLUZBSUwgZGlmZmVyZW50
IHR5cGUgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgKHN0cmluZykgImNsYXNzaWMiIGJ1dCBnb3Qg
KHVuZGVmaW5lZCkgdW5kZWZpbmVkCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jl
Z2lzdHJhdGlvbi1zY2hlZHVsZS1qb2IuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jl
Z2lzdHJhdGlvbi1zY2hlZHVsZS1qb2IuaHR0cHMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMTg1ODllMGFhMGIzMmUxMzA5MzRhNjViMWIwNjVkNWM3Zjc5ZTM2ZS4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9yZWdpc3RyYXRpb24tc2NoZWR1bGUtam9iLmh0dHBzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAt
MSw2NyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0
aXRsZT5TZXJ2aWNlIFdvcmtlcjogU2NoZWR1bGUgSm9iIGFsZ29yaXRobTwvdGl0bGU+Ci08c2Ny
aXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL3Rlc3RoYXJuZXNzLWhlbHBlcnMuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4K
LS8vIFRlc3RzIGZvciBodHRwczovL3czYy5naXRodWIuaW8vU2VydmljZVdvcmtlci8jc2NoZWR1
bGUtam9iLWFsZ29yaXRobQotLy8gTm9uLWVxdWl2YWxlbnQgcmVnaXN0ZXIgam9icyBzaG91bGQg
bm90IGJlIGNvYWxlc2NlZC4KLWNvbnN0IHNjb3BlID0gJ3Jlc291cmNlcy8nOwotY29uc3Qgc2Ny
aXB0MSA9ICdyZXNvdXJjZXMvZW1wdHkuanMnOwotY29uc3Qgc2NyaXB0MiA9ICdyZXNvdXJjZXMv
ZW1wdHkuanM/Y2hhbmdlJzsKLQotYXN5bmMgZnVuY3Rpb24gY2xlYW51cCgpIHsKLSAgY29uc3Qg
cmVnaXN0cmF0aW9uID0gYXdhaXQgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuZ2V0UmVnaXN0cmF0
aW9uKHNjb3BlKTsKLSAgaWYgKHJlZ2lzdHJhdGlvbikKLSAgICBhd2FpdCByZWdpc3RyYXRpb24u
dW5yZWdpc3RlcigpOwotfQotCi1mdW5jdGlvbiBhYnNvbHV0ZV91cmwodXJsKSB7Ci0gIHJldHVy
biBuZXcgVVJMKHVybCwgc2VsZi5sb2NhdGlvbikudG9TdHJpbmcoKTsKLX0KLQotLy8gVGVzdCBz
Y3JpcHRVUkwgYW5kIHVwZGF0ZVZpYUNhY2hlLgotcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewot
ICBhd2FpdCBjbGVhbnVwKCk7Ci0gIHQuYWRkX2NsZWFudXAoY2xlYW51cCk7Ci0KLSAgLy8gQ2hl
Y2sgZGVmYXVsdHMuCi0gIGNvbnN0IHJlZ2lzdHJhdGlvbiA9IGF3YWl0Ci0gICAgICBuYXZpZ2F0
b3Iuc2VydmljZVdvcmtlci5yZWdpc3RlcihzY3JpcHQxLCB7c2NvcGV9KTsKLSAgYXNzZXJ0X2Vx
dWFscyhyZWdpc3RyYXRpb24udXBkYXRlVmlhQ2FjaGUsICdpbXBvcnRzJyk7Ci0KLSAgLy8gU2No
ZWR1bGUgc2V2ZXJhbCByZWdpc3RlciBqb2JzLgotICBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5y
ZWdpc3RlcihzY3JpcHQxLCB7c2NvcGV9KTsKLSAgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVn
aXN0ZXIoc2NyaXB0Miwge3Njb3BlfSk7Ci0gIGF3YWl0IG5hdmlnYXRvci5zZXJ2aWNlV29ya2Vy
LnJlZ2lzdGVyKHNjcmlwdDIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHtzY29wZSwgdXBkYXRlVmlhQ2FjaGU6ICdub25lJ30pOwotCi0gIC8vIE5vbmUgb2YgdGhl
IGNoYW5nZXMgc2hvdWxkIGhhdmUgYmVlbiBjb2FsZXNjZWQuCi0gIGFzc2VydF9lcXVhbHMocmVn
aXN0cmF0aW9uLmluc3RhbGxpbmcuc2NyaXB0VVJMLCBhYnNvbHV0ZV91cmwoc2NyaXB0MikpOwot
ICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi51cGRhdGVWaWFDYWNoZSwgJ25vbmUnKTsKLX0s
ICdkaWZmZXJlbnQgc2NyaXB0VVJMIGFuZCB1cGRhdGVWaWFDYWNoZScpOwotCi0vLyBUZXN0IHx0
eXBlfCBpbiBhbm90aGVyIHRlc3QgY2FzZSBiZWNhdXNlIG1vc3QgYnJvd3NlcnMgZG9uJ3Qgc3Vw
cG9ydCBpdC4KLXByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKLSAgY29uc3Qgc2NyaXB0MSA9ICdy
ZXNvdXJjZXMvZW1wdHkuanMnOwotICBjb25zdCBzY3JpcHQyID0gJ3Jlc291cmNlcy9lbXB0eS5q
cz9jaGFuZ2UnOwotCi0gIGF3YWl0IGNsZWFudXAoKTsKLSAgdC5hZGRfY2xlYW51cChjbGVhbnVw
KTsKLQotICAvLyBDaGVjayBkZWZhdWx0cy4KLSAgY29uc3QgcmVnaXN0cmF0aW9uID0gYXdhaXQK
LSAgICAgIG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKHNjcmlwdDEsIHtzY29wZX0p
OwotICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLnR5cGUsICdjbGFzc2lj
Jyk7Ci0KLSAgLy8gU2NoZWR1bGUgc2V2ZXJhbCByZWdpc3RlciBqb2JzLgotICBuYXZpZ2F0b3Iu
c2VydmljZVdvcmtlci5yZWdpc3RlcihzY3JpcHQxLCB7c2NvcGV9KTsKLSAgbmF2aWdhdG9yLnNl
cnZpY2VXb3JrZXIucmVnaXN0ZXIoc2NyaXB0Miwge3Njb3BlfSk7Ci0gIGF3YWl0IG5hdmlnYXRv
ci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKHNjcmlwdDIsIHtzY29wZSwgdHlwZTogJ21vZHVsZSd9
KTsKLQotICAvLyBOb25lIG9mIHRoZSBjaGFuZ2VzIHNob3VsZCBoYXZlIGJlZW4gY29hbGVzY2Vk
LgotICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLnNjcmlwdFVSTCwgYWJz
b2x1dGVfdXJsKHNjcmlwdDIpKTsKLSAgYXNzZXJ0X2VxdWFscyhyZWdpc3RyYXRpb24uaW5zdGFs
bGluZy50eXBlLCAnbW9kdWxlJyk7Ci19LCAnZGlmZmVyZW50IHR5cGUnKTsKLTwvc2NyaXB0Pgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVnaXN0cmF0aW9uLXNjb3BlLmh0dHBzLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlZ2lzdHJhdGlvbi1zY29wZS5odHRwcy1l
eHBlY3RlZC50eHQKaW5kZXggYWRjOTU5YWJlMDE4ZGFjM2M1YjdkMTRiNDEwZDI0MTJiZjllYTRi
OC4uZDRhNWFiMWE4NmI5YmMzMWU2ZTFkODczMmJmOGRlYmQxY2NkNWZhMiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvcmVnaXN0cmF0aW9uLXNjb3BlLmh0dHBzLWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZWdpc3RyYXRpb24tc2NvcGUuaHR0cHMtZXhwZWN0ZWQu
dHh0CkBAIC02LDUgKzYsNSBAQCBQQVNTIFNjb3BlIGluY2x1ZGluZyBub24tZXNjYXBlZCBtdWx0
aWJ5dGUgY2hhcmFjdGVycwogUEFTUyBTY29wZSBpbmNsdWRpbmcgc2VsZi1yZWZlcmVuY2UgCiBQ
QVNTIFNjb3BlIGluY2x1ZGluZyBwYXJlbnQtcmVmZXJlbmNlIAogUEFTUyBTY29wZSBpbmNsdWRp
bmcgY29uc2VjdXRpdmUgc2xhc2hlcyAKLVBBU1MgU2NvcGUgVVJMIGlzIHNhbWUtb3JpZ2luIGZp
bGVzeXN0ZW06IFVSTCAKK0ZBSUwgU2NvcGUgVVJMIGlzIHNhbWUtb3JpZ2luIGZpbGVzeXN0ZW06
IFVSTCBhc3NlcnRfdGhyb3dzOiBSZWdpc3RlcmluZyB3aXRoIHRoZSBzY29wZSB0aGF0IGhhcyBz
YW1lLW9yaWdpbiBmaWxlc3lzdGVtOiBVUkwgc2hvdWxkIGZhaWwgd2l0aCBTZWN1cml0eUVycm9y
LiBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeyB0aHJvdyBlIH0iIHRocmV3IG9iamVjdCAiVHlwZUVy
cm9yOiBTY29wZSBVUkwgcHJvdmlkZWQgdG8gc2VydmljZVdvcmtlci5yZWdpc3RlcigpIG11c3Qg
YmUgZWl0aGVyIEhUVFAgb3IgSFRUUFMiIHRoYXQgaXMgbm90IGEgRE9NRXhjZXB0aW9uIFNlY3Vy
aXR5RXJyb3I6IHByb3BlcnR5ICJjb2RlIiBpcyBlcXVhbCB0byB1bmRlZmluZWQsIGV4cGVjdGVk
IDE4CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlZ2lzdHJhdGlvbi1zZWN1cml0
eS1lcnJvci5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZWdpc3RyYXRp
b24tc2VjdXJpdHktZXJyb3IuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IGFhNzVlYzkzODQ0NzAw
Zjc1N2NkYzk5ZGQzNjIxMDZhNGZlYzk4YTguLjQ3OTY5ZTZiOWU4NGYzYzJlZmRmZDRkNDY1ODc1
MTFiNjQ4NDRjMmIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlZ2lzdHJhdGlvbi1z
ZWN1cml0eS1lcnJvci5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
cmVnaXN0cmF0aW9uLXNlY3VyaXR5LWVycm9yLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtNiw1ICs2
LDUgQEAgUEFTUyBSZWdpc3RlcmluZyBzY3JpcHQgb3V0c2lkZSBkb21haW4KIFBBU1MgUmVnaXN0
ZXJpbmcgcmVkaXJlY3RlZCBzY3JpcHQgCiBQQVNTIFNjb3BlIGluY2x1ZGluZyBwYXJlbnQtcmVm
ZXJlbmNlIGFuZCBub3QgdW5kZXIgdGhlIHNjcmlwdCBkaXJlY3RvcnkgCiBQQVNTIFNjcmlwdCBV
UkwgaW5jbHVkaW5nIGNvbnNlY3V0aXZlIHNsYXNoZXMgCi1QQVNTIFNjcmlwdCBVUkwgaXMgc2Ft
ZS1vcmlnaW4gZmlsZXN5c3RlbTogVVJMIAorRkFJTCBTY3JpcHQgVVJMIGlzIHNhbWUtb3JpZ2lu
IGZpbGVzeXN0ZW06IFVSTCBhc3NlcnRfdGhyb3dzOiBSZWdpc3RlcmluZyBhIHNjcmlwdCB3aGlj
aCBoYXMgc2FtZS1vcmlnaW4gZmlsZXN5c3RlbTogVVJMIHNob3VsZCBmYWlsIHdpdGggU2VjdXJp
dHlFcnJvci4gZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsgdGhyb3cgZSB9IiB0aHJldyBvYmplY3Qg
IlR5cGVFcnJvcjogc2VydmljZVdvcmtlci5yZWdpc3RlcigpIG11c3QgYmUgY2FsbGVkIHdpdGgg
YSBzY3JpcHQgVVJMIHdob3NlIHByb3RvY29sIGlzIGVpdGhlciBIVFRQIG9yIEhUVFBTIiB0aGF0
IGlzIG5vdCBhIERPTUV4Y2VwdGlvbiBTZWN1cml0eUVycm9yOiBwcm9wZXJ0eSAiY29kZSIgaXMg
ZXF1YWwgdG8gdW5kZWZpbmVkLCBleHBlY3RlZCAxOAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9yZWdpc3RyYXRpb24tc2VydmljZS13b3JrZXItYXR0cmlidXRlcy5odHRwcy5odG1s
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvcmVnaXN0cmF0aW9uLXNlcnZpY2Utd29ya2VyLWF0dHJpYnV0
ZXMuaHR0cHMuaHRtbAppbmRleCBmN2I1MmQ1ZGRjZWQxODYxM2NhMjI1Mzg2YmI1N2YyOGI5YmFj
ZDYyLi44ZmQ1NjZkYWRjNjJhNzhlZjA4MzZiYmM2MzAwMDQ3M2Y4ODRkN2M3IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9yZWdpc3RyYXRpb24tc2VydmljZS13b3JrZXItYXR0cmlidXRl
cy5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlZ2lzdHJhdGlvbi1zZXJ2aWNl
LXdvcmtlci1hdHRyaWJ1dGVzLmh0dHBzLmh0bWwKQEAgLTE0LDcgKzE0LDcgQEAgcHJvbWlzZV90
ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9h
bmRfcmVnaXN0ZXIodCwgd29ya2VyX3VybCwgc2NvcGUpCiAgICAgICAudGhlbihmdW5jdGlvbihy
KSB7CiAgICAgICAgICAgdC5hZGRfY2xlYW51cChmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAg
cmV0dXJuIHIudW5yZWdpc3RlcigpOworICAgICAgICAgICAgICByLnVucmVnaXN0ZXIoKTsKICAg
ICAgICAgICAgIH0pOwogICAgICAgICAgIHJlZ2lzdHJhdGlvbiA9IHI7CiAgICAgICAgICAgbmV3
ZXN0X3dvcmtlciA9IHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nOwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvcmVnaXN0cmF0aW9uLXVwZGF0ZXZpYWNhY2hlLmh0dHBzLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlZ2lzdHJhdGlvbi11cGRhdGV2aWFjYWNoZS5odHRwcy1l
eHBlY3RlZC50eHQKaW5kZXggYzZlODY3NTZjMDgzNWI4OGE2ODg4YmQwMTVkYTQ0NTUyNmI4MWFj
NC4uYzkwZDA5NDJkNGQ0NjYyMWUxZTVkYmNhYTUxMTBlYzgyMDA5ZTY1OSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvcmVnaXN0cmF0aW9uLXVwZGF0ZXZpYWNhY2hlLmh0dHBzLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZWdpc3RyYXRpb24tdXBkYXRldmlhY2Fj
aGUuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0yMyw1ICsyMyw0IEBAIFBBU1MgYWNjZXNzLXVwZGF0
ZVZpYUNhY2hlLWFmdGVyLXVucmVnaXN0ZXItdW5kZWZpbmVkCiBQQVNTIGFjY2Vzcy11cGRhdGVW
aWFDYWNoZS1hZnRlci11bnJlZ2lzdGVyLWltcG9ydHMgCiBQQVNTIGFjY2Vzcy11cGRhdGVWaWFD
YWNoZS1hZnRlci11bnJlZ2lzdGVyLWFsbCAKIFBBU1MgYWNjZXNzLXVwZGF0ZVZpYUNhY2hlLWFm
dGVyLXVucmVnaXN0ZXItbm9uZSAKLUZBSUwgdXBkYXRlVmlhQ2FjaGUgaXMgbm90IHVwZGF0ZWQg
aWYgcmVnaXN0ZXIoKSByZWplY3RzIGFzc2VydF9lcXVhbHM6IGFmdGVyIHVwZGF0ZSBhdHRlbXB0
IGV4cGVjdGVkICJpbXBvcnRzIiBidXQgZ290ICJub25lIgogCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9yZWdpc3RyYXRpb24tdXBkYXRldmlhY2FjaGUuaHR0cHMuaHRtbCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL3JlZ2lzdHJhdGlvbi11cGRhdGV2aWFjYWNoZS5odHRwcy5odG1sCmluZGV4
IDQyMzkwOGRiMGU0MjhkNjViNDhiOGI4ZDE2MTYyYTVlYmNmODcyNjguLmRiY2M2ZWFiMWY4MmE2
YjMzZWQ3ZDg4OWNiYTUxYmU1Yjk4NGI2MTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L3JlZ2lzdHJhdGlvbi11cGRhdGV2aWFjYWNoZS5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL3JlZ2lzdHJhdGlvbi11cGRhdGV2aWFjYWNoZS5odHRwcy5odG1sCkBAIC0xODQsMjEg
KzE4NCw0IEBACiAgICAgfSwgdGVzdE5hbWUpOwogICB9CiAKLSAgcHJvbWlzZV90ZXN0KGFzeW5j
IHQgPT4gewotICAgIGF3YWl0IGNsZWFudXAoKTsKLSAgICB0LmFkZF9jbGVhbnVwKGNsZWFudXAp
OwotCi0gICAgY29uc3QgcmVnaXN0cmF0aW9uID0gYXdhaXQgbmF2aWdhdG9yLnNlcnZpY2VXb3Jr
ZXIucmVnaXN0ZXIoCi0gICAgICAgICdyZXNvdXJjZXMvZW1wdHkuanMnLAotICAgICAgICB7c2Nv
cGU6IFNDT1BFfSk7Ci0gICAgYXNzZXJ0X2VxdWFscyhyZWdpc3RyYXRpb24udXBkYXRlVmlhQ2Fj
aGUsICdpbXBvcnRzJywKLSAgICAgICAgICAgICAgICAgICdiZWZvcmUgdXBkYXRlIGF0dGVtcHQn
KTsKLQotICAgIGNvbnN0IGZhaWwgPSBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3RlcigK
LSAgICAgICAgJ3Jlc291cmNlcy9tYWxmb3JtZWQtd29ya2VyLnB5P3BhcnNlLWVycm9yJywKLSAg
ICAgICAge3Njb3BlOiBTQ09QRSwgdXBkYXRlVmlhQ2FjaGU6ICdub25lJ30pOwotICAgIGF3YWl0
IHByb21pc2VfcmVqZWN0cyh0LCBuZXcgVHlwZUVycm9yKCksIGZhaWwpOwotICAgIGFzc2VydF9l
cXVhbHMocmVnaXN0cmF0aW9uLnVwZGF0ZVZpYUNhY2hlLCAnaW1wb3J0cycsCi0gICAgICAgICAg
ICAgICAgICAnYWZ0ZXIgdXBkYXRlIGF0dGVtcHQnKTsKLSAgfSwgJ3VwZGF0ZVZpYUNhY2hlIGlz
IG5vdCB1cGRhdGVkIGlmIHJlZ2lzdGVyKCkgcmVqZWN0cycpOwogPC9zY3JpcHQ+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZS10aW1pbmcuaHR0cHMtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2UtdGltaW5nLmh0dHBzLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi44YzAwZGQyMDViOGNjODkxNzlhOGI2NzdmNDU3OTliMGVjZjY3MGM0Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2UtdGltaW5nLmh0dHBzLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDkgQEAKK0Jsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVS
TCBodHRwczovL3d3dzEubG9jYWxob3N0Ojk0NDMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3Jlc291cmNlcy9zcXVhcmUucG5nCitCbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwg
aHR0cHM6Ly93d3cxLmxvY2FsaG9zdDo5NDQzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9yZXNvdXJjZXMvbWlzc2luZy5qcGcKK0Jsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBo
dHRwczovL3d3dzEubG9jYWxob3N0Ojk0NDMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L3Jlc291cmNlcy9zcXVhcmUucG5nCitCbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0
cHM6Ly93d3cxLmxvY2FsaG9zdDo5NDQzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9y
ZXNvdXJjZXMvbWlzc2luZy5qcGcKKworCitGQUlMIENvbnRyb2xsZWQgcmVzb3VyY2UgbG9hZHMg
YXNzZXJ0X2dyZWF0ZXJfdGhhbjogR2VuZXJhdGVkIHJlc3BvbnNlIGV4cGVjdGVkIGEgbnVtYmVy
IGdyZWF0ZXIgdGhhbiAwIGJ1dCBnb3QgMAorUEFTUyBOb24tY29udHJvbGxlZCByZXNvdXJjZSBs
b2FkcyAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2UtdGltaW5nLmh0
dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZS10aW1pbmcuaHR0cHMuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4xMjNiYmM4N2M1N2U4NTdhNTE3YWI3OTI3MTdmMWNmNjViOWEzYTE2Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2UtdGltaW5nLmh0dHBzLmh0
bWwKQEAgLTAsMCArMSwxNDQgQEAKKzwhRE9DVFlQRSBodG1sPgorPHNjcmlwdCBzcmM9Ii9yZXNv
dXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMv
dGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9jb21tb24vZ2V0
LWhvc3QtaW5mby5zdWIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy90ZXN0
LWhlbHBlcnMuc3ViLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitmdW5jdGlvbiByZXNvdXJjZVVy
bChwYXRoKSB7CisgICAgcmV0dXJuIGdldF9ob3N0X2luZm8oKVsnSFRUUFNfT1JJR0lOJ10gKyBi
YXNlX3BhdGgoKSArIHBhdGg7Cit9CisKK2Z1bmN0aW9uIGNyb3NzT3JpZ2luVXJsKHBhdGgpIHsK
KyAgICByZXR1cm4gZ2V0X2hvc3RfaW5mbygpWydIVFRQU19SRU1PVEVfT1JJR0lOJ10gKyBiYXNl
X3BhdGgoKSArIHBhdGg7Cit9CisKK2Z1bmN0aW9uIHZlcmlmeShvcHRpb25zKSB7CisgICAgY29u
c3QgdXJsID0gb3B0aW9ucy5tb2RlID09PSAnY3Jvc3Mtb3JpZ2luJyA/IGNyb3NzT3JpZ2luVXJs
KG9wdGlvbnMucmVzb3VyY2UpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDogcmVzb3VyY2VVcmwob3B0aW9ucy5yZXNvdXJjZSk7CisgICAgY29uc3QgZW50cnlMaXN0ID0g
b3B0aW9ucy5wZXJmb3JtYW5jZS5nZXRFbnRyaWVzQnlOYW1lKHVybCk7CisgICAgaWYgKG9wdGlv
bnMuc2hvdWxkX25vX3BlcmZvcm1hbmNlX2VudHJ5KSB7CisgICAgICAgIC8vIFRoZSBwZXJmb3Jt
YW5jZSB0aW1lbGluZSBtYXkgbm90IGhhdmUgYW4gZW50cnkgZm9yIGEgcmVzb3VyY2UKKyAgICAg
ICAgLy8gd2hpY2ggZmFpbGVkIHRvIGxvYWQuCisgICAgICAgIGFzc2VydF9lcXVhbHMoZW50cnlM
aXN0Lmxlbmd0aCwgMCwgb3B0aW9ucy5kZXNjcmlwdGlvbik7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisgICAgYXNzZXJ0X2VxdWFscyhlbnRyeUxpc3QubGVuZ3RoLCAxLCBvcHRpb25zLmRlc2Ny
aXB0aW9uKTsKKyAgICBjb25zdCBlbnRyeSA9IGVudHJ5TGlzdFswXTsKKyAgICBhc3NlcnRfZXF1
YWxzKGVudHJ5LmVudHJ5VHlwZSwgJ3Jlc291cmNlJywgb3B0aW9ucy5kZXNjcmlwdGlvbik7Cisg
ICAgYXNzZXJ0X2dyZWF0ZXJfdGhhbihlbnRyeS53b3JrZXJTdGFydCwgMCwgb3B0aW9ucy5kZXNj
cmlwdGlvbik7CisgICAgYXNzZXJ0X2dyZWF0ZXJfdGhhbl9lcXVhbChlbnRyeS53b3JrZXJTdGFy
dCwgZW50cnkuc3RhcnRUaW1lLCBvcHRpb25zLmRlc2NyaXB0aW9uKTsKKyAgICBhc3NlcnRfbGVz
c190aGFuX2VxdWFsKGVudHJ5LndvcmtlclN0YXJ0LCBlbnRyeS5mZXRjaFN0YXJ0LCBvcHRpb25z
LmRlc2NyaXB0aW9uKTsKKyAgICBpZiAob3B0aW9ucy5tb2RlID09PSAnY3Jvc3Mtb3JpZ2luJykg
eworICAgICAgYXNzZXJ0X2VxdWFscyhlbnRyeS5yZXNwb25zZVN0YXJ0LCAwLCBvcHRpb25zLmRl
c2NyaXB0aW9uKTsKKyAgICAgIGFzc2VydF9ncmVhdGVyX3RoYW5fZXF1YWwoZW50cnkucmVzcG9u
c2VFbmQsIGVudHJ5LmZldGNoU3RhcnQsIG9wdGlvbnMuZGVzY3JpcHRpb24pOworICAgIH0gZWxz
ZSB7CisgICAgICBhc3NlcnRfZ3JlYXRlcl90aGFuX2VxdWFsKGVudHJ5LnJlc3BvbnNlU3RhcnQs
IGVudHJ5LmZldGNoU3RhcnQsIG9wdGlvbnMuZGVzY3JpcHRpb24pOworICAgICAgYXNzZXJ0X2dy
ZWF0ZXJfdGhhbl9lcXVhbChlbnRyeS5yZXNwb25zZUVuZCwgZW50cnkucmVzcG9uc2VTdGFydCwg
b3B0aW9ucy5kZXNjcmlwdGlvbik7CisgICAgfQorICAgIGFzc2VydF9ncmVhdGVyX3RoYW4oZW50
cnkucmVzcG9uc2VFbmQsIGVudHJ5LmZldGNoU3RhcnQsIG9wdGlvbnMuZGVzY3JpcHRpb24pOwor
ICAgIGFzc2VydF9ncmVhdGVyX3RoYW4oZW50cnkuZHVyYXRpb24sIDAsIG9wdGlvbnMuZGVzY3Jp
cHRpb24pOworICAgIGlmIChvcHRpb25zLnJlc291cmNlLmluZGV4T2YoJ3JlZGlyZWN0LnB5Jykg
IT0gLTEpIHsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbl9lcXVhbChlbnRyeS53b3JrZXJTdGFy
dCwgZW50cnkucmVkaXJlY3RTdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBv
cHRpb25zLmRlc2NyaXB0aW9uKTsKKyAgICB9IGVsc2UgeworICAgICAgICBhc3NlcnRfZXF1YWxz
KGVudHJ5LnJlZGlyZWN0U3RhcnQsIDAsIG9wdGlvbnMuZGVzY3JpcHRpb24pOworICAgIH0KK30K
KworcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgICBjb25zdCB3b3JrZXJfdXJsID0gJ3Jl
c291cmNlcy9yZXNvdXJjZS10aW1pbmctd29ya2VyLmpzJzsKKyAgICBjb25zdCBzY29wZSA9ICdy
ZXNvdXJjZXMvcmVzb3VyY2UtdGltaW5nLWlmcmFtZS5zdWIuaHRtbCc7CisgICAgbGV0IHJlZ2lz
dHJhdGlvbjsKKworICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdp
c3Rlcih0LCB3b3JrZXJfdXJsLCBzY29wZSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKHIpIHsKKyAg
ICAgICAgICByZWdpc3RyYXRpb24gPSByOworICAgICAgICAgIHJldHVybiB3YWl0X2Zvcl9zdGF0
ZSh0LCByLmluc3RhbGxpbmcsICdhY3RpdmF0ZWQnKTsKKyAgICAgICAgfSkKKyAgICAgIC50aGVu
KGZ1bmN0aW9uKCkgeworICAgICAgICAgIHJldHVybiB3aXRoX2lmcmFtZShzY29wZSk7CisgICAg
ICAgIH0pCisgICAgICAudGhlbihmdW5jdGlvbihmcmFtZSkgeworICAgICAgICAgIGNvbnN0IHBl
cmZvcm1hbmNlID0gZnJhbWUuY29udGVudFdpbmRvdy5wZXJmb3JtYW5jZTsKKyAgICAgICAgICB2
ZXJpZnkoeworICAgICAgICAgICAgICBwZXJmb3JtYW5jZTogcGVyZm9ybWFuY2UsCisgICAgICAg
ICAgICAgIHJlc291cmNlOiAncmVzb3VyY2VzL2R1bW15LmpzJywKKyAgICAgICAgICAgICAgbW9k
ZTogJ3NhbWUtb3JpZ2luJywKKyAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdHZW5lcmF0ZWQg
cmVzcG9uc2UnLAorICAgICAgICAgIH0pOworICAgICAgICAgIHZlcmlmeSh7CisgICAgICAgICAg
ICAgIHBlcmZvcm1hbmNlOiBwZXJmb3JtYW5jZSwKKyAgICAgICAgICAgICAgcmVzb3VyY2U6ICdy
ZXNvdXJjZXMvZW1wdHkuanMnLAorICAgICAgICAgICAgICBtb2RlOiAnc2FtZS1vcmlnaW4nLAor
ICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ05ldHdvcmsgZmFsbGJhY2snLAorICAgICAgICAg
IH0pOworICAgICAgICAgIHZlcmlmeSh7CisgICAgICAgICAgICAgIHBlcmZvcm1hbmNlOiBwZXJm
b3JtYW5jZSwKKyAgICAgICAgICAgICAgcmVzb3VyY2U6ICdyZXNvdXJjZXMvcmVkaXJlY3QucHk/
UmVkaXJlY3Q9ZW1wdHkuanMnLAorICAgICAgICAgICAgICBtb2RlOiAnc2FtZS1vcmlnaW4nLAor
ICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ1JlZGlyZWN0JywKKyAgICAgICAgICB9KTsKKyAg
ICAgICAgICB2ZXJpZnkoeworICAgICAgICAgICAgICBwZXJmb3JtYW5jZTogcGVyZm9ybWFuY2Us
CisgICAgICAgICAgICAgIHJlc291cmNlOiAncmVzb3VyY2VzL3NxdWFyZS5wbmcnLAorICAgICAg
ICAgICAgICBtb2RlOiAnc2FtZS1vcmlnaW4nLAorICAgICAgICAgICAgICBkZXNjcmlwdGlvbjog
J05ldHdvcmsgZmFsbGJhY2sgaW1hZ2UnLAorICAgICAgICAgIH0pOworICAgICAgICAgIC8vIFRl
c3QgdGhhdCB3b3JrZXIgc3RhcnQgaXMgYXZhaWxhYmxlIG9uIGNyb3NzLW9yaWdpbiBuby1jb3Jz
CisgICAgICAgICAgLy8gc3VicmVzb3VyY2VzLgorICAgICAgICAgIHZlcmlmeSh7CisgICAgICAg
ICAgICAgIHBlcmZvcm1hbmNlOiBwZXJmb3JtYW5jZSwKKyAgICAgICAgICAgICAgcmVzb3VyY2U6
ICdyZXNvdXJjZXMvc3F1YXJlLnBuZycsCisgICAgICAgICAgICAgIG1vZGU6ICdjcm9zcy1vcmln
aW4nLAorICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ05ldHdvcmsgZmFsbGJhY2sgY3Jvc3Mt
b3JpZ2luIGltYWdlJywKKyAgICAgICAgICB9KTsKKworICAgICAgICAgIC8vIFRlc3RzIGZvciBy
ZXNvdWNlcyB3aGljaCBmYWlsZWQgdG8gbG9hZC4KKyAgICAgICAgICB2ZXJpZnkoeworICAgICAg
ICAgICAgICBwZXJmb3JtYW5jZTogcGVyZm9ybWFuY2UsCisgICAgICAgICAgICAgIHJlc291cmNl
OiAncmVzb3VyY2VzL21pc3NpbmcuanBnJywKKyAgICAgICAgICAgICAgbW9kZTogJ3NhbWUtb3Jp
Z2luJywKKyAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdOZXR3b3JrIGZhbGxiYWNrIGxvYWQg
ZmFpbHVyZScsCisgICAgICAgICAgICAgIHNob3VsZF9ub19wZXJmb3JtYW5jZV9lbnRyeTogdHJ1
ZSwKKyAgICAgICAgICB9KTsKKyAgICAgICAgICB2ZXJpZnkoeworICAgICAgICAgICAgICBwZXJm
b3JtYW5jZTogcGVyZm9ybWFuY2UsCisgICAgICAgICAgICAgIHJlc291cmNlOiAncmVzb3VyY2Vz
L21pc3NpbmcuanBnJywKKyAgICAgICAgICAgICAgbW9kZTogJ2Nyb3NzLW9yaWdpbicsCisgICAg
ICAgICAgICAgIGRlc2NyaXB0aW9uOiAnTmV0d29yayBmYWxsYmFjayBjcm9zcy1vcmlnaW4gbG9h
ZCBmYWlsdXJlJywKKyAgICAgICAgICAgICAgc2hvdWxkX25vX3BlcmZvcm1hbmNlX2VudHJ5OiB0
cnVlLAorICAgICAgICAgIH0pOworICAgICAgICAgIC8vIFRlc3RzIGZvciByZXNwb25kV2l0aChm
ZXRjaCgpKS4KKyAgICAgICAgICB2ZXJpZnkoeworICAgICAgICAgICAgICBwZXJmb3JtYW5jZTog
cGVyZm9ybWFuY2UsCisgICAgICAgICAgICAgIHJlc291cmNlOiAncmVzb3VyY2VzL21pc3Npbmcu
anBnP1NXUmVzcG9uZHNXaXRoRmV0Y2gnLAorICAgICAgICAgICAgICBtb2RlOiAnc2FtZS1vcmln
aW4nLAorICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ1Jlc291cmNlIGluIGlmcmFtZSwgbm9u
ZXhpc3RlbnQgYnV0IHJlc3BvbmRlZCB3aXRoIGZldGNoIHRvIGFub3RoZXIuJywKKyAgICAgICAg
ICB9KTsKKyAgICAgICAgICB2ZXJpZnkoeworICAgICAgICAgICAgICBwZXJmb3JtYW5jZTogcGVy
Zm9ybWFuY2UsCisgICAgICAgICAgICAgIHJlc291cmNlOiAncmVzb3VyY2VzL2R1bW15LnR4dD9T
V0ZldGNoZWQnLAorICAgICAgICAgICAgICBtb2RlOiAnc2FtZS1vcmlnaW4nLAorICAgICAgICAg
ICAgICBkZXNjcmlwdGlvbjogJ1Jlc291cmNlIGZldGNoZWQgYXMgcmVzcG9uc2UgZnJvbSBtaXNz
aW5nLmpwZz9TV1Jlc3BvbmRzV2l0aEZldGNoLicsCisgICAgICAgICAgICAgIHNob3VsZF9ub19w
ZXJmb3JtYW5jZV9lbnRyeTogdHJ1ZSwKKyAgICAgICAgICB9KTsKKyAgICAgICAgICAvLyBUZXN0
IGZvciBhIG5vcm1hbCByZXNvdXJjZSB0aGF0IGlzIHVuYWZmZWN0ZWQgYnkgdGhlIFNlcnZpY2Ug
V29ya2VyLgorICAgICAgICAgIHZlcmlmeSh7CisgICAgICAgICAgICAgIHBlcmZvcm1hbmNlOiBw
ZXJmb3JtYW5jZSwKKyAgICAgICAgICAgICAgcmVzb3VyY2U6ICdyZXNvdXJjZXMvZW1wdHktd29y
a2VyLmpzJywKKyAgICAgICAgICAgICAgbW9kZTogJ3NhbWUtb3JpZ2luJywKKyAgICAgICAgICAg
ICAgZGVzY3JpcHRpb246ICdSZXNvdXJjZSB1bnRvdWNoZWQgYnkgdGhlIFNlcnZpY2UgV29ya2Vy
LicsCisgICAgICAgICAgfSk7CisKKyAgICAgICAgICBmcmFtZS5yZW1vdmUoKTsKKyAgICAgICAg
ICByZXR1cm4gcmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIoKTsKKyAgICAgIH0pOworfSwgJ0NvbnRy
b2xsZWQgcmVzb3VyY2UgbG9hZHMnKTsKKwordGVzdCgoKSA9PiB7CisgICAgY29uc3QgdXJsID0g
cmVzb3VyY2VVcmwoJ3Jlc291cmNlcy90ZXN0LWhlbHBlcnMuc3ViLmpzJyk7CisgICAgY29uc3Qg
ZW50cnkgPSB3aW5kb3cucGVyZm9ybWFuY2UuZ2V0RW50cmllc0J5TmFtZSh1cmwpWzBdOworICAg
IGFzc2VydF9lcXVhbHMoZW50cnkud29ya2VyU3RhcnQsIDAsICdOb24tY29udHJvbGxlZCcpOwor
fSwgJ05vbi1jb250cm9sbGVkIHJlc291cmNlIGxvYWRzJyk7CisKKzwvc2NyaXB0PgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2UtdGltaW5nLnN1Yi5odHRwcy1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZS10aW1pbmcuc3ViLmh0dHBzLWV4cGVj
dGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzQxYzJiN2U1M2ZmNzIyMTgy
OWM2M2ViNzQyYjg3NWJmOWExNjYyYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZS10aW1pbmcuc3ViLmh0dHBz
LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDUgKzAsMCBAQAotCi0KLUZBSUwgQ29u
dHJvbGxlZCByZXNvdXJjZSBsb2FkcyBhc3NlcnRfZ3JlYXRlcl90aGFuOiBHZW5lcmF0ZWQgcmVz
cG9uc2UgZXhwZWN0ZWQgYSBudW1iZXIgZ3JlYXRlciB0aGFuIDAgYnV0IGdvdCAwCi1QQVNTIE5v
bi1jb250cm9sbGVkIHJlc291cmNlIGxvYWRzIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9yZXNvdXJjZS10aW1pbmcuc3ViLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9y
ZXNvdXJjZS10aW1pbmcuc3ViLmh0dHBzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGYwNTAyY2FjNzI3ODk2Y2U2NzRmM2I5M2E5ZGQ0Y2ZjYmY1NGI0MWIuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVz
b3VyY2UtdGltaW5nLnN1Yi5odHRwcy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTQzICswLDAg
QEAKLTwhRE9DVFlQRSBodG1sPgotPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3Mu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy90ZXN0LWhlbHBlcnMuc3ViLmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1mdW5jdGlvbiByZXNvdXJjZVVybChwYXRoKSB7Ci0gICAg
cmV0dXJuICJodHRwczovL3t7aG9zdH19Ont7cG9ydHNbaHR0cHNdWzBdfX0iICsgYmFzZV9wYXRo
KCkgKyBwYXRoOwotfQotCi1mdW5jdGlvbiBjcm9zc09yaWdpblVybChwYXRoKSB7Ci0gICAgcmV0
dXJuICJodHRwczovL3t7aG9zdHNbYWx0XVtdfX06e3twb3J0c1todHRwc11bMF19fSIgKyBiYXNl
X3BhdGgoKSArIHBhdGg7Ci19Ci0KLWZ1bmN0aW9uIHZlcmlmeShvcHRpb25zKSB7Ci0gICAgY29u
c3QgdXJsID0gb3B0aW9ucy5tb2RlID09PSAnY3Jvc3Mtb3JpZ2luJyA/IGNyb3NzT3JpZ2luVXJs
KG9wdGlvbnMucmVzb3VyY2UpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDogcmVzb3VyY2VVcmwob3B0aW9ucy5yZXNvdXJjZSk7Ci0gICAgY29uc3QgZW50cnlMaXN0ID0g
b3B0aW9ucy5wZXJmb3JtYW5jZS5nZXRFbnRyaWVzQnlOYW1lKHVybCwgJ3Jlc291cmNlJyk7Ci0g
ICAgaWYgKG9wdGlvbnMuc2hvdWxkX25vX3BlcmZvcm1hbmNlX2VudHJ5KSB7Ci0gICAgICAgIC8v
IFRoZSBwZXJmb3JtYW5jZSB0aW1lbGluZSBtYXkgbm90IGhhdmUgYW4gZW50cnkgZm9yIGEgcmVz
b3VyY2UKLSAgICAgICAgLy8gd2hpY2ggZmFpbGVkIHRvIGxvYWQuCi0gICAgICAgIGFzc2VydF9l
cXVhbHMoZW50cnlMaXN0Lmxlbmd0aCwgMCwgb3B0aW9ucy5kZXNjcmlwdGlvbik7Ci0gICAgICAg
IHJldHVybjsKLSAgICB9Ci0gICAgYXNzZXJ0X2VxdWFscyhlbnRyeUxpc3QubGVuZ3RoLCAxLCBv
cHRpb25zLmRlc2NyaXB0aW9uKTsKLSAgICBjb25zdCBlbnRyeSA9IGVudHJ5TGlzdFswXTsKLSAg
ICBhc3NlcnRfZXF1YWxzKGVudHJ5LmVudHJ5VHlwZSwgJ3Jlc291cmNlJywgb3B0aW9ucy5kZXNj
cmlwdGlvbik7Ci0gICAgYXNzZXJ0X2dyZWF0ZXJfdGhhbihlbnRyeS53b3JrZXJTdGFydCwgMCwg
b3B0aW9ucy5kZXNjcmlwdGlvbik7Ci0gICAgYXNzZXJ0X2dyZWF0ZXJfdGhhbl9lcXVhbChlbnRy
eS53b3JrZXJTdGFydCwgZW50cnkuc3RhcnRUaW1lLCBvcHRpb25zLmRlc2NyaXB0aW9uKTsKLSAg
ICBhc3NlcnRfbGVzc190aGFuX2VxdWFsKGVudHJ5LndvcmtlclN0YXJ0LCBlbnRyeS5mZXRjaFN0
YXJ0LCBvcHRpb25zLmRlc2NyaXB0aW9uKTsKLSAgICBpZiAob3B0aW9ucy5tb2RlID09PSAnY3Jv
c3Mtb3JpZ2luJykgewotICAgICAgYXNzZXJ0X2VxdWFscyhlbnRyeS5yZXNwb25zZVN0YXJ0LCAw
LCBvcHRpb25zLmRlc2NyaXB0aW9uKTsKLSAgICAgIGFzc2VydF9ncmVhdGVyX3RoYW5fZXF1YWwo
ZW50cnkucmVzcG9uc2VFbmQsIGVudHJ5LmZldGNoU3RhcnQsIG9wdGlvbnMuZGVzY3JpcHRpb24p
OwotICAgIH0gZWxzZSB7Ci0gICAgICBhc3NlcnRfZ3JlYXRlcl90aGFuX2VxdWFsKGVudHJ5LnJl
c3BvbnNlU3RhcnQsIGVudHJ5LmZldGNoU3RhcnQsIG9wdGlvbnMuZGVzY3JpcHRpb24pOwotICAg
ICAgYXNzZXJ0X2dyZWF0ZXJfdGhhbl9lcXVhbChlbnRyeS5yZXNwb25zZUVuZCwgZW50cnkucmVz
cG9uc2VTdGFydCwgb3B0aW9ucy5kZXNjcmlwdGlvbik7Ci0gICAgfQotICAgIGFzc2VydF9ncmVh
dGVyX3RoYW4oZW50cnkucmVzcG9uc2VFbmQsIGVudHJ5LmZldGNoU3RhcnQsIG9wdGlvbnMuZGVz
Y3JpcHRpb24pOwotICAgIGFzc2VydF9ncmVhdGVyX3RoYW4oZW50cnkuZHVyYXRpb24sIDAsIG9w
dGlvbnMuZGVzY3JpcHRpb24pOwotICAgIGlmIChvcHRpb25zLnJlc291cmNlLmluZGV4T2YoJ3Jl
ZGlyZWN0LnB5JykgIT0gLTEpIHsKLSAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbl9lcXVhbChlbnRy
eS53b3JrZXJTdGFydCwgZW50cnkucmVkaXJlY3RTdGFydCwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBvcHRpb25zLmRlc2NyaXB0aW9uKTsKLSAgICB9IGVsc2UgewotICAgICAgICBh
c3NlcnRfZXF1YWxzKGVudHJ5LnJlZGlyZWN0U3RhcnQsIDAsIG9wdGlvbnMuZGVzY3JpcHRpb24p
OwotICAgIH0KLX0KLQotcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKLSAgICBjb25zdCB3b3Jr
ZXJfdXJsID0gJ3Jlc291cmNlcy9yZXNvdXJjZS10aW1pbmctd29ya2VyLmpzJzsKLSAgICBjb25z
dCBzY29wZSA9ICdyZXNvdXJjZXMvcmVzb3VyY2UtdGltaW5nLWlmcmFtZS5zdWIuaHRtbCc7Ci0g
ICAgbGV0IHJlZ2lzdHJhdGlvbjsKLQotICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lz
dGVyX2FuZF9yZWdpc3Rlcih0LCB3b3JrZXJfdXJsLCBzY29wZSkKLSAgICAgIC50aGVuKGZ1bmN0
aW9uKHIpIHsKLSAgICAgICAgICByZWdpc3RyYXRpb24gPSByOwotICAgICAgICAgIHJldHVybiB3
YWl0X2Zvcl9zdGF0ZSh0LCByLmluc3RhbGxpbmcsICdhY3RpdmF0ZWQnKTsKLSAgICAgICAgfSkK
LSAgICAgIC50aGVuKGZ1bmN0aW9uKCkgewotICAgICAgICAgIHJldHVybiB3aXRoX2lmcmFtZShz
Y29wZSk7Ci0gICAgICAgIH0pCi0gICAgICAudGhlbihmdW5jdGlvbihmcmFtZSkgewotICAgICAg
ICAgIGNvbnN0IHBlcmZvcm1hbmNlID0gZnJhbWUuY29udGVudFdpbmRvdy5wZXJmb3JtYW5jZTsK
LSAgICAgICAgICB2ZXJpZnkoewotICAgICAgICAgICAgICBwZXJmb3JtYW5jZTogcGVyZm9ybWFu
Y2UsCi0gICAgICAgICAgICAgIHJlc291cmNlOiAncmVzb3VyY2VzL2R1bW15LmpzJywKLSAgICAg
ICAgICAgICAgbW9kZTogJ3NhbWUtb3JpZ2luJywKLSAgICAgICAgICAgICAgZGVzY3JpcHRpb246
ICdHZW5lcmF0ZWQgcmVzcG9uc2UnLAotICAgICAgICAgIH0pOwotICAgICAgICAgIHZlcmlmeSh7
Ci0gICAgICAgICAgICAgIHBlcmZvcm1hbmNlOiBwZXJmb3JtYW5jZSwKLSAgICAgICAgICAgICAg
cmVzb3VyY2U6ICdyZXNvdXJjZXMvZW1wdHkuanMnLAotICAgICAgICAgICAgICBtb2RlOiAnc2Ft
ZS1vcmlnaW4nLAotICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ05ldHdvcmsgZmFsbGJhY2sn
LAotICAgICAgICAgIH0pOwotICAgICAgICAgIHZlcmlmeSh7Ci0gICAgICAgICAgICAgIHBlcmZv
cm1hbmNlOiBwZXJmb3JtYW5jZSwKLSAgICAgICAgICAgICAgcmVzb3VyY2U6ICdyZXNvdXJjZXMv
cmVkaXJlY3QucHk/UmVkaXJlY3Q9ZW1wdHkuanMnLAotICAgICAgICAgICAgICBtb2RlOiAnc2Ft
ZS1vcmlnaW4nLAotICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ1JlZGlyZWN0JywKLSAgICAg
ICAgICB9KTsKLSAgICAgICAgICB2ZXJpZnkoewotICAgICAgICAgICAgICBwZXJmb3JtYW5jZTog
cGVyZm9ybWFuY2UsCi0gICAgICAgICAgICAgIHJlc291cmNlOiAncmVzb3VyY2VzL3NxdWFyZS5w
bmcnLAotICAgICAgICAgICAgICBtb2RlOiAnc2FtZS1vcmlnaW4nLAotICAgICAgICAgICAgICBk
ZXNjcmlwdGlvbjogJ05ldHdvcmsgZmFsbGJhY2sgaW1hZ2UnLAotICAgICAgICAgIH0pOwotICAg
ICAgICAgIC8vIFRlc3QgdGhhdCB3b3JrZXIgc3RhcnQgaXMgYXZhaWxhYmxlIG9uIGNyb3NzLW9y
aWdpbiBuby1jb3JzCi0gICAgICAgICAgLy8gc3VicmVzb3VyY2VzLgotICAgICAgICAgIHZlcmlm
eSh7Ci0gICAgICAgICAgICAgIHBlcmZvcm1hbmNlOiBwZXJmb3JtYW5jZSwKLSAgICAgICAgICAg
ICAgcmVzb3VyY2U6ICdyZXNvdXJjZXMvc3F1YXJlLnBuZycsCi0gICAgICAgICAgICAgIG1vZGU6
ICdjcm9zcy1vcmlnaW4nLAotICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ05ldHdvcmsgZmFs
bGJhY2sgY3Jvc3Mtb3JpZ2luIGltYWdlJywKLSAgICAgICAgICB9KTsKLQotICAgICAgICAgIC8v
IFRlc3RzIGZvciByZXNvdWNlcyB3aGljaCBmYWlsZWQgdG8gbG9hZC4KLSAgICAgICAgICB2ZXJp
ZnkoewotICAgICAgICAgICAgICBwZXJmb3JtYW5jZTogcGVyZm9ybWFuY2UsCi0gICAgICAgICAg
ICAgIHJlc291cmNlOiAncmVzb3VyY2VzL21pc3NpbmcuanBnJywKLSAgICAgICAgICAgICAgbW9k
ZTogJ3NhbWUtb3JpZ2luJywKLSAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdOZXR3b3JrIGZh
bGxiYWNrIGxvYWQgZmFpbHVyZScsCi0gICAgICAgICAgICAgIHNob3VsZF9ub19wZXJmb3JtYW5j
ZV9lbnRyeTogdHJ1ZSwKLSAgICAgICAgICB9KTsKLSAgICAgICAgICB2ZXJpZnkoewotICAgICAg
ICAgICAgICBwZXJmb3JtYW5jZTogcGVyZm9ybWFuY2UsCi0gICAgICAgICAgICAgIHJlc291cmNl
OiAncmVzb3VyY2VzL21pc3NpbmcuanBnJywKLSAgICAgICAgICAgICAgbW9kZTogJ2Nyb3NzLW9y
aWdpbicsCi0gICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnTmV0d29yayBmYWxsYmFjayBjcm9z
cy1vcmlnaW4gbG9hZCBmYWlsdXJlJywKLSAgICAgICAgICAgICAgc2hvdWxkX25vX3BlcmZvcm1h
bmNlX2VudHJ5OiB0cnVlLAotICAgICAgICAgIH0pOwotICAgICAgICAgIC8vIFRlc3RzIGZvciBy
ZXNwb25kV2l0aChmZXRjaCgpKS4KLSAgICAgICAgICB2ZXJpZnkoewotICAgICAgICAgICAgICBw
ZXJmb3JtYW5jZTogcGVyZm9ybWFuY2UsCi0gICAgICAgICAgICAgIHJlc291cmNlOiAncmVzb3Vy
Y2VzL21pc3NpbmcuanBnP1NXUmVzcG9uZHNXaXRoRmV0Y2gnLAotICAgICAgICAgICAgICBtb2Rl
OiAnc2FtZS1vcmlnaW4nLAotICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ1Jlc291cmNlIGlu
IGlmcmFtZSwgbm9uZXhpc3RlbnQgYnV0IHJlc3BvbmRlZCB3aXRoIGZldGNoIHRvIGFub3RoZXIu
JywKLSAgICAgICAgICB9KTsKLSAgICAgICAgICB2ZXJpZnkoewotICAgICAgICAgICAgICBwZXJm
b3JtYW5jZTogcGVyZm9ybWFuY2UsCi0gICAgICAgICAgICAgIHJlc291cmNlOiAncmVzb3VyY2Vz
L2R1bW15LnR4dD9TV0ZldGNoZWQnLAotICAgICAgICAgICAgICBtb2RlOiAnc2FtZS1vcmlnaW4n
LAotICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ1Jlc291cmNlIGZldGNoZWQgYXMgcmVzcG9u
c2UgZnJvbSBtaXNzaW5nLmpwZz9TV1Jlc3BvbmRzV2l0aEZldGNoLicsCi0gICAgICAgICAgICAg
IHNob3VsZF9ub19wZXJmb3JtYW5jZV9lbnRyeTogdHJ1ZSwKLSAgICAgICAgICB9KTsKLSAgICAg
ICAgICAvLyBUZXN0IGZvciBhIG5vcm1hbCByZXNvdXJjZSB0aGF0IGlzIHVuYWZmZWN0ZWQgYnkg
dGhlIFNlcnZpY2UgV29ya2VyLgotICAgICAgICAgIHZlcmlmeSh7Ci0gICAgICAgICAgICAgIHBl
cmZvcm1hbmNlOiBwZXJmb3JtYW5jZSwKLSAgICAgICAgICAgICAgcmVzb3VyY2U6ICdyZXNvdXJj
ZXMvZW1wdHktd29ya2VyLmpzJywKLSAgICAgICAgICAgICAgbW9kZTogJ3NhbWUtb3JpZ2luJywK
LSAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdSZXNvdXJjZSB1bnRvdWNoZWQgYnkgdGhlIFNl
cnZpY2UgV29ya2VyLicsCi0gICAgICAgICAgfSk7Ci0KLSAgICAgICAgICBmcmFtZS5yZW1vdmUo
KTsKLSAgICAgICAgICByZXR1cm4gcmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIoKTsKLSAgICAgIH0p
OwotfSwgJ0NvbnRyb2xsZWQgcmVzb3VyY2UgbG9hZHMnKTsKLQotdGVzdCgoKSA9PiB7Ci0gICAg
Y29uc3QgdXJsID0gcmVzb3VyY2VVcmwoJ3Jlc291cmNlcy90ZXN0LWhlbHBlcnMuc3ViLmpzJyk7
Ci0gICAgY29uc3QgZW50cnkgPSB3aW5kb3cucGVyZm9ybWFuY2UuZ2V0RW50cmllc0J5TmFtZSh1
cmwsICdyZXNvdXJjZScpWzBdOwotICAgIGFzc2VydF9lcXVhbHMoZW50cnkud29ya2VyU3RhcnQs
IDAsICdOb24tY29udHJvbGxlZCcpOwotfSwgJ05vbi1jb250cm9sbGVkIHJlc291cmNlIGxvYWRz
Jyk7Ci0KLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2Vz
L2Fib3V0LWJsYW5rLXJlcGxhY2VtZW50LXBpbmctZnJhbWUucHkgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9yZXNvdXJjZXMvYWJvdXQtYmxhbmstcmVwbGFjZW1lbnQtcGluZy1mcmFtZS5weQppbmRleCBi
YjA3YzI0MWFkNDlhNzUzNWJhNjJlZTg2NjRhNzVjOGM1OWNkNjRjLi41OGZiNDQwM2Y5YzY1OTdk
MjcwN2IxZTMyNDExNTVmZWMwNzE4OWE4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9y
ZXNvdXJjZXMvYWJvdXQtYmxhbmstcmVwbGFjZW1lbnQtcGluZy1mcmFtZS5weQorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvYWJvdXQtYmxhbmstcmVwbGFjZW1lbnQtcGluZy1mcmFt
ZS5weQpAQCAtNDEsNyArNDEsNiBAQCBpZiAod2luLmxvY2F0aW9uLmhyZWYgIT09ICdhYm91dDpi
bGFuaycpIHsKICAgICAgIH0pOwogICAgIH0KICAgfSk7Ci0gIHdpbi5uYXZpZ2F0b3Iuc2Vydmlj
ZVdvcmtlci5zdGFydE1lc3NhZ2VzKCk7CiB9CiA8L3NjcmlwdD4KIDwvYm9keT4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9hcHBjYWNoZS1vcmRlcmluZy5tYW5pZmVz
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9hcHBjYWNoZS1vcmRlcmluZy5tYW5pZmVz
dAppbmRleCBlNjU5N2NjYjhhY2IwZGNlYjRhOTkwYzMxNDhkZWJlM2M0ZmY4ZjIxLi4wZGVlZDBl
OTFhODAyMTQ1MjA2NzNjMTg4YTMwOTBlYmI2NTdmNmMwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9yZXNvdXJjZXMvYXBwY2FjaGUtb3JkZXJpbmcubWFuaWZlc3QKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvcmVzb3VyY2VzL2FwcGNhY2hlLW9yZGVyaW5nLm1hbmlmZXN0CkBAIC0xLDcg
KzEsNiBAQAogQ0FDSEUgTUFOSUZFU1QKIAogYXBwY2FjaGUtb3JkZXJpbmcuaXMtYXBwY2FjaGVk
Lmh0bWwKLWJsYW5rLmh0bWwKIAogRkFMTEJBQ0s6CiBhcHBjYWNoZS1vcmRlcmluZy5pcy1hcHBj
YWNoZWQ0MDQuanMgYXBwY2FjaGUtb3JkZXJpbmcuaXMtYXBwY2FjaGVkLmpzCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvY2xhaW0td29ya2VyLmpzIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvcmVzb3VyY2VzL2NsYWltLXdvcmtlci5qcwppbmRleCAxODAwNDA3OTQ3NWUyYmJk
OWQxYThkMjVhZTRiMjZjNzYzOGRlNThlLi41M2YyMTBjZjc2MzQ5OTNmODYzMTBjZGVmZWM5YTE1
ZmQ2YjY5OWEwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvY2xhaW0t
d29ya2VyLmpzCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9jbGFpbS13b3JrZXIu
anMKQEAgLTE0LDYgKzE0LDUgQEAgc2VsZi5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgZnVu
Y3Rpb24oZXZlbnQpIHsKICAgfSk7CiAKIHNlbGYuYWRkRXZlbnRMaXN0ZW5lcignZmV0Y2gnLCBm
dW5jdGlvbihldmVudCkgewotICAgIGlmICghLzQwNC8udGVzdChldmVudC5yZXF1ZXN0LnVybCkp
Ci0gICAgICBldmVudC5yZXNwb25kV2l0aChuZXcgUmVzcG9uc2UoJ0ludGVyY2VwdGVkIScpKTsK
LSAgfSk7CisgICAgZXZlbnQucmVzcG9uZFdpdGgobmV3IFJlc3BvbnNlKCdJbnRlcmNlcHRlZCEn
KSk7Cit9KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9jbGFzc2lj
LXdvcmtlci5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9jbGFzc2ljLXdvcmtlci5q
cwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzZhMzJiMWExZjg0ZGFhYWMyNTAzMjI2
MWM4MGQxNzNjZTdiYTg5OS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvY2xhc3NpYy13b3JrZXIuanMKKysr
IC9kZXYvbnVsbApAQCAtMSArMCwwIEBACi1pbXBvcnRTY3JpcHRzKCcuL2ltcG9ydGVkLWNsYXNz
aWMtc2NyaXB0LmpzJyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMv
Y2xpZW50cy1nZXQtY3Jvc3Mtb3JpZ2luLWZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9y
ZXNvdXJjZXMvY2xpZW50cy1nZXQtY3Jvc3Mtb3JpZ2luLWZyYW1lLmh0bWwKaW5kZXggZTE2YmIx
MTE2ZGM4MTBkMjc1MDczZTM2M2ZhMGQ3YjRmZmE0NjYyOS4uZWFhZGUzMjdiYzU5ZDhmMmUzOGM1
Njc2NmMzOTk3M2YxZWM0MTQyNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3Vy
Y2VzL2NsaWVudHMtZ2V0LWNyb3NzLW9yaWdpbi1mcmFtZS5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL3Jlc291cmNlcy9jbGllbnRzLWdldC1jcm9zcy1vcmlnaW4tZnJhbWUuaHRtbApAQCAt
MzgsMTMgKzM4LDE2IEBAIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgZnVuY3Rp
b24oZSkgewogICAgICAgfSkKICAgICAudGhlbihmdW5jdGlvbihpZnJhbWUpIHsKICAgICAgICAg
YWRkX2NvbXBsZXRpb25fY2FsbGJhY2soZnVuY3Rpb24oKSB7IGlmcmFtZS5yZW1vdmUoKTsgfSk7
Ci0gICAgICAgIG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGUp
IHsKKyAgICAgICAgdmFyIGNoYW5uZWwgPSBuZXcgTWVzc2FnZUNoYW5uZWwoKTsKKyAgICAgICAg
Y2hhbm5lbC5wb3J0MS5vbm1lc3NhZ2UgPSBmdW5jdGlvbihlKSB7CiAgICAgICAgICAgcmVnaXN0
cmF0aW9uLnVucmVnaXN0ZXIoKTsKICAgICAgICAgICB3aW5kb3cucGFyZW50LnBvc3RNZXNzYWdl
KAogICAgICAgICAgICAgeyB0eXBlOiAnY2xpZW50SWQnLCB2YWx1ZTogZS5kYXRhIH0sIGhvc3Rf
aW5mb1snSFRUUFNfT1JJR0lOJ10KICAgICAgICAgICApOwogICAgICAgICB9OwotICAgICAgICBy
ZWdpc3RyYXRpb24uYWN0aXZlLnBvc3RNZXNzYWdlKHtjbGllbnRJZHM6IGNyb3NzX29yaWdpbl9j
bGllbnRfaWRzfSk7CisgICAgICAgIGlmcmFtZS5jb250ZW50V2luZG93Lm5hdmlnYXRvci5zZXJ2
aWNlV29ya2VyLmNvbnRyb2xsZXIucG9zdE1lc3NhZ2UoCisgICAgICAgICAgICB7cG9ydDpjaGFu
bmVsLnBvcnQyLCBjbGllbnRJZHM6IGNyb3NzX29yaWdpbl9jbGllbnRfaWRzfSwKKyAgICAgICAg
ICAgIFtjaGFubmVsLnBvcnQyXSk7CiAgICAgICB9KTsKIH0pOwogPC9zY3JpcHQ+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvY2xpZW50cy1nZXQtcmVzdWx0aW5nQ2xp
ZW50SWQtd29ya2VyLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2NsaWVudHMtZ2V0
LXJlc3VsdGluZ0NsaWVudElkLXdvcmtlci5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggNWE0NmZmOWNmNDQwMTBjNWY5Mzc1YmJiN2IyODQ5MzJiZDIxY2NhNy4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNv
dXJjZXMvY2xpZW50cy1nZXQtcmVzdWx0aW5nQ2xpZW50SWQtd29ya2VyLmpzCisrKyAvZGV2L251
bGwKQEAgLTEsNjAgKzAsMCBAQAotbGV0IHNhdmVkUG9ydCA9IG51bGw7Ci1sZXQgc2F2ZWRSZXN1
bHRpbmdDbGllbnRJZCA9IG51bGw7Ci0KLWFzeW5jIGZ1bmN0aW9uIGdldFRlc3RpbmdQYWdlKCkg
ewotICBjb25zdCBjbGllbnRMaXN0ID0gYXdhaXQgc2VsZi5jbGllbnRzLm1hdGNoQWxsKHsgdHlw
ZTogJ3dpbmRvdycsIGluY2x1ZGVVbmNvbnRyb2xsZWQ6IHRydWUgfSk7Ci0gIGZvciAobGV0IGMg
b2YgY2xpZW50TGlzdCkgewotICAgIGlmIChjLnVybC5lbmRzV2l0aCgnY2xpZW50cy1nZXQuaHR0
cHMuaHRtbCcpKSB7Ci0gICAgICBjLmZvY3VzKCk7Ci0gICAgICByZXR1cm4gYzsKLSAgICB9Ci0g
IH0KLSAgcmV0dXJuIG51bGw7Ci19Ci0KLWFzeW5jIGZ1bmN0aW9uIGRlc3Ryb3lSZXN1bHRpbmdD
bGllbnQodGVzdGluZ1BhZ2UpIHsKLSAgY29uc3QgZGVzdHJveWVkUHJvbWlzZSA9IG5ldyBQcm9t
aXNlKHJlc29sdmUgPT4gewotICAgIHNlbGYuYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIGUg
PT4gewotICAgICAgaWYgKGUuZGF0YS5tc2cgPT0gJ3Jlc3VsdGluZ0NsaWVudERlc3Ryb3llZCcp
IHsKLSAgICAgICAgcmVzb2x2ZSgpOwotICAgICAgfQotICAgIH0sIHtvbmNlOiB0cnVlfSk7Ci0g
IH0pOwotICB0ZXN0aW5nUGFnZS5wb3N0TWVzc2FnZSh7IG1zZzogJ2Rlc3Ryb3lSZXN1bHRpbmdD
bGllbnQnIH0pOwotICByZXR1cm4gZGVzdHJveWVkUHJvbWlzZTsKLX0KLQotc2VsZi5hZGRFdmVu
dExpc3RlbmVyKCdmZXRjaCcsIGFzeW5jIChlKSA9PiB7Ci0gIGxldCB7IHJlc3VsdGluZ0NsaWVu
dElkIH0gPSBlOwotICBzYXZlZFJlc3VsdGluZ0NsaWVudElkID0gcmVzdWx0aW5nQ2xpZW50SWQ7
Ci0KLSAgaWYgKGUucmVxdWVzdC51cmwuZW5kc1dpdGgoJ3NpbXBsZS5odG1sP2ZhaWwnKSkgewot
ICAgIGUud2FpdFVudGlsKChhc3luYyAoKSA9PiB7Ci0gICAgICBjb25zdCB0ZXN0aW5nUGFnZSA9
IGF3YWl0IGdldFRlc3RpbmdQYWdlKCk7Ci0gICAgICBhd2FpdCBkZXN0cm95UmVzdWx0aW5nQ2xp
ZW50KHRlc3RpbmdQYWdlKTsKLSAgICAgIHRlc3RpbmdQYWdlLnBvc3RNZXNzYWdlKHsgbXNnOiAn
cmVzdWx0aW5nQ2xpZW50RGVzdHJveWVkQWNrJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcmVzdWx0aW5nRGVzdHJveWVkQ2xpZW50SWQ6IHNhdmVkUmVzdWx0aW5nQ2xpZW50SWQg
fSk7Ci0gICAgfSkoKSk7Ci0gICAgcmV0dXJuOwotICB9Ci0KLSAgZS5yZXNwb25kV2l0aChmZXRj
aChlLnJlcXVlc3QpKTsKLX0pOwotCi1zZWxmLmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCAo
ZSkgPT4gewotICBsZXQgeyBtc2csIHJlc3VsdGluZ0NsaWVudElkIH0gPSBlLmRhdGE7Ci0gIGUu
d2FpdFVudGlsKChhc3luYyAoKSA9PiB7Ci0gICAgaWYgKG1zZyA9PSAnZ2V0SXNSZXN1bHRpbmdD
bGllbnRVbmRlZmluZWQnKSB7Ci0gICAgICBjb25zdCBjbGllbnQgPSBhd2FpdCBzZWxmLmNsaWVu
dHMuZ2V0KHJlc3VsdGluZ0NsaWVudElkKTsKLSAgICAgIGxldCBpc1VuZGVmaW5lZCA9IHR5cGVv
ZiBjbGllbnQgPT0gJ3VuZGVmaW5lZCc7Ci0gICAgICBlLnNvdXJjZS5wb3N0TWVzc2FnZSh7IG1z
ZzogJ2dldElzUmVzdWx0aW5nQ2xpZW50VW5kZWZpbmVkJywKLSAgICAgICAgaXNSZXN1bHRpbmdD
bGllbnRVbmRlZmluZWQ6IGlzVW5kZWZpbmVkIH0pOwotICAgICAgcmV0dXJuOwotICAgIH0KLSAg
ICBpZiAobXNnID09ICdnZXRSZXN1bHRpbmdDbGllbnRJZCcpIHsKLSAgICAgIGUuc291cmNlLnBv
c3RNZXNzYWdlKHsgbXNnOiAnZ2V0UmVzdWx0aW5nQ2xpZW50SWQnLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICByZXN1bHRpbmdDbGllbnRJZDogc2F2ZWRSZXN1bHRpbmdDbGllbnRJZCB9
KTsKLSAgICAgIHJldHVybjsKLSAgICB9Ci0gIH0pKCkpOwotfSk7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvY2xpZW50cy1nZXQtd29ya2VyLmpzIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvcmVzb3VyY2VzL2NsaWVudHMtZ2V0LXdvcmtlci5qcwppbmRleCA4ZWZmYTU2Yzk4
YzlmOTIxMjAxNTUzMTIxMzA4NTkxZTc0MzFhMjAxLi44NzM2OGFlNzYxNzU3NWRhNDI4MWFmZjY3
OGMyN2MyZDM3MTE4OTY2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMv
Y2xpZW50cy1nZXQtd29ya2VyLmpzCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9j
bGllbnRzLWdldC13b3JrZXIuanMKQEAgLTExLDYgKzExLDcgQEAgc2VsZi5vbmZldGNoID0gZnVu
Y3Rpb24oZSkgewogfTsKIAogc2VsZi5vbm1lc3NhZ2UgPSBmdW5jdGlvbihlKSB7CisgIHZhciBw
b3J0ID0gZS5kYXRhLnBvcnQ7CiAgIHZhciBjbGllbnRfaWRzID0gZS5kYXRhLmNsaWVudElkczsK
ICAgdmFyIG1lc3NhZ2UgPSBbXTsKIApAQCAtMjIsNyArMjMsNyBAQCBzZWxmLm9ubWVzc2FnZSA9
IGZ1bmN0aW9uKGUpIHsKICAgICAgICAgICAvLyBObyBtYXRjaGluZyBjbGllbnQgZm9yIGEgZ2l2
ZW4gaWQgb3IgYSBtYXRjaGVkIGNsaWVudCBpcyBvZmYtb3JpZ2luCiAgICAgICAgICAgLy8gZnJv
bSB0aGUgc2VydmljZSB3b3JrZXIuCiAgICAgICAgICAgaWYgKGNsaWVudHMubGVuZ3RoID09IDEg
JiYgY2xpZW50c1swXSA9PSB1bmRlZmluZWQpIHsKLSAgICAgICAgICAgIGUuc291cmNlLnBvc3RN
ZXNzYWdlKGNsaWVudHNbMF0pOworICAgICAgICAgICAgcG9ydC5wb3N0TWVzc2FnZShjbGllbnRz
WzBdKTsKICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgY2xpZW50cy5mb3JFYWNoKGZ1
bmN0aW9uKGNsaWVudCkgewogICAgICAgICAgICAgICAgIGlmIChjbGllbnQgaW5zdGFuY2VvZiBD
bGllbnQpIHsKQEAgLTM1LDcgKzM2LDcgQEAgc2VsZi5vbm1lc3NhZ2UgPSBmdW5jdGlvbihlKSB7
CiAgICAgICAgICAgICAgICAgICBtZXNzYWdlLnB1c2goY2xpZW50KTsKICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgZS5zb3VyY2UucG9zdE1lc3NhZ2Uo
bWVzc2FnZSk7CisgICAgICAgICAgICBwb3J0LnBvc3RNZXNzYWdlKG1lc3NhZ2UpOwogICAgICAg
ICAgIH0KICAgICAgICAgfSkpOwogfTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jl
c291cmNlcy9lbmFibGUtY2xpZW50LW1lc3NhZ2UtcXVldWUuaHRtbCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3Jlc291cmNlcy9lbmFibGUtY2xpZW50LW1lc3NhZ2UtcXVldWUuaHRtbApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggNTEyYmQxNGJjNjdkNDZiOTAyZTY4ZWI4NzczMTA3ZGU1Mjlj
Yzc5OC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZW5hYmxlLWNsaWVudC1tZXNzYWdlLXF1ZXVlLmh0bWwK
KysrIC9kZXYvbnVsbApAQCAtMSwzOSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxzY3JpcHQ+
Ci0gIC8vIFRoZSBzdGF0ZSB2YXJpYWJsZSBpcyB1c2VkIGJ5IGhhbmRsZV9tZXNzYWdlIHRvIHJl
Y29yZCB0aGUgdGltZQotICAvLyBhdCB3aGljaCBhIG1lc3NhZ2Ugd2FzIGhhbmRsZWQuIEl0J3Mg
dXBkYXRlZCBieSB0aGUgc2NyaXB0cwotICAvLyBsb2FkZWQgYnkgdGhlIDxzY3JpcHQ+IHRhZ3Mg
YXQgdGhlIGJvdHRvbSBvZiB0aGUgZmlsZSBhcyB3ZWxsIGFzCi0gIC8vIGJ5IHRoZSBldmVudCBs
aXN0ZW5lciBhZGRlZCBoZXJlLgotICB2YXIgc3RhdGUgPSAnaW5pdCc7Ci0gIGFkZEV2ZW50TGlz
dGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCAoKSA9PiBzdGF0ZSA9ICdsb2FkZWQnKTsKLQotICAv
LyBXZSBleHBlY3QgdG8gZ2V0IHRocmVlIHBpbmcgbWVzc2FnZXMgZnJvbSB0aGUgc2VydmljZSB3
b3JrZXIuCi0gIGNvbnN0IGV4cGVjdGVkID0gWydpbml0JywgJ2luc3RhbGwnLCAnc3RhcnQnXTsK
LSAgbGV0IHByb21pc2VzID0ge307Ci0gIGxldCByZXNvbHZlcnMgPSB7fTsKLSAgZXhwZWN0ZWQu
Zm9yRWFjaChuYW1lID0+IHsKLSAgICBwcm9taXNlc1tuYW1lXSA9IG5ldyBQcm9taXNlKHJlc29s
dmUgPT4gcmVzb2x2ZXJzW25hbWVdID0gcmVzb2x2ZSk7Ci0gIH0pOwotCi0gIC8vIE9uY2UgYWxs
IG1lc3NhZ2VzIGhhdmUgYmVlbiBkaXNwYXRjaGVkLCB0aGUgc3RhdGUgaW4gd2hpY2ggZWFjaAot
ICAvLyBvZiB0aGVtIHdhcyBkaXNwYXRjaGVkIGlzIHJlY29yZGVkIGluIHRoZSBkcmFmdC4gQXQg
dGhhdCBwb2ludAotICAvLyB0aGUgZHJhZnQgYmVjb21lcyB0aGUgZmluYWwgcmVwb3J0LgotICB2
YXIgZHJhZnQgPSB7fTsKLSAgdmFyIHJlcG9ydCA9IFByb21pc2UuYWxsKE9iamVjdC52YWx1ZXMo
cHJvbWlzZXMpKS50aGVuKCgpID0+IHdpbmRvdy5kcmFmdCk7Ci0KLSAgLy8gVGhpcyBtZXNzYWdl
IGhhbmRsZXIgaXMgaW5zdGFsbGVkIGJ5IHRoZSAnaW5zdGFsbCcgc2NyaXB0LgotICBmdW5jdGlv
biBoYW5kbGVfbWVzc2FnZShldmVudCkgewotICAgIGNvbnN0IGRhdGEgPSBldmVudC5kYXRhLmRh
dGE7Ci0gICAgZHJhZnRbZGF0YV0gPSBzdGF0ZTsKLSAgICByZXNvbHZlcnNbZGF0YV0oKTsKLSAg
fQotPC9zY3JpcHQ+Ci0KLTwhLS0KLSAgVGhlIGNvbnRyb2xsaW5nIHNlcnZpY2Ugd29ya2VyIHdp
bGwgZGVsYXkgdGhlIHJlc3BvbnNlIHRvIHRoZXNlCi0gIGZldGNoIHJlcXVlc3RzIHVudGlsIHRo
ZSB0ZXN0IGluc3RydWN0cyBpdCBob3cgdG8gcmVwbHkuIE5vdGUgdGhhdAotICB0aGUgZXZlbnQg
bG9vcCBrZWVwcyBzcGlubmluZyB3aGlsZSB0aGUgcGFyc2VyIGlzIGJsb2NrZWQuCi0tLT4KLTxz
Y3JpcHQgc3JjPSJlbXB0eS5qcz9rZXk9aW5zdGFsbCI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0i
ZW1wdHkuanM/a2V5PXN0YXJ0Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJlbXB0eS5qcz9rZXk9
ZmluaXNoIj48L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNl
cy9leHRlbmRhYmxlLWV2ZW50LWFzeW5jLXdhaXR1bnRpbC5qcyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L3Jlc291cmNlcy9leHRlbmRhYmxlLWV2ZW50LWFzeW5jLXdhaXR1bnRpbC5qcwppbmRleCA4YTk3
NWIwZDJlOWIwNzg5Y2U3YWI3YjA1NzU3YjZkOTNmMmVjNDAwLi5hYmY1NDkzNGEzYjQyZTE4OTA4
YTczMGJkZmExNDBlNmI2OTJjN2FlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNv
dXJjZXMvZXh0ZW5kYWJsZS1ldmVudC1hc3luYy13YWl0dW50aWwuanMKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvcmVzb3VyY2VzL2V4dGVuZGFibGUtZXZlbnQtYXN5bmMtd2FpdHVudGlsLmpzCkBA
IC0xLDEyICsxLDQgQEAKLS8vIFRoaXMgd29ya2VyIGNhbGxzIHdhaXRVbnRpbCgpIGFuZCByZXNw
b25kV2l0aCgpIGFzeW5jaHJvbm91c2x5IGFuZAotLy8gcmVwb3J0cyBiYWNrIHRvIHRoZSB0ZXN0
IHdoZXRoZXIgdGhleSB0aHJldy4KLS8vCi0vLyBUaGVzZSB0ZXN0IGNhc2VzIGFyZSBjb25mdXNp
bmcuIEJlYXIgaW4gbWluZCB0aGF0IHRoZSBldmVudCBpcyBhY3RpdmUKLS8vIChjYWxsaW5nIHdh
aXRVbnRpbCgpIGlzIGFsbG93ZWQpIGlmOgotLy8gKiBUaGUgcGVuZGluZyBwcm9taXNlIGNvdW50
IGlzIG5vdCAwLCBvcgotLy8gKiBUaGUgZXZlbnQgZGlzcGF0Y2ggZmxhZyBpcyBzZXQuCi0KLS8v
IENvbnRyb2xsZWQgYnkgJ2luaXQnLydkb25lJyBtZXNzYWdlcy4KKy8vIGNvbnRyb2xsZWQgYnkg
J2luaXQnLydkb25lJyBtZXNzYWdlcy4KIHZhciByZXNvbHZlTG9ja1Byb21pc2U7CiB2YXIgcG9y
dDsKIApAQCAtMjIsNzIgKzE0LDM0IEBAIHNlbGYuYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScs
IGZ1bmN0aW9uKGV2ZW50KSB7CiAgICAgICBjYXNlICdkb25lJzoKICAgICAgICAgcmVzb2x2ZUxv
Y2tQcm9taXNlKCk7CiAgICAgICAgIGJyZWFrOwotCi0gICAgICAvLyBUaHJvd3MgYmVjYXVzZSB3
YWl0VW50aWwoKSBpcyBjYWxsZWQgaW4gYSB0YXNrIGFmdGVyIGV2ZW50IGRpc3BhdGNoCi0gICAg
ICAvLyBmaW5pc2hlcy4KICAgICAgIGNhc2UgJ25vLWN1cnJlbnQtZXh0ZW5zaW9uLWRpZmZlcmVu
dC10YXNrJzoKICAgICAgICAgYXN5bmNfdGFza193YWl0dW50aWwoZXZlbnQpLnRoZW4ocmVwb3J0
UmVzdWx0RXhwZWN0aW5nKCdJbnZhbGlkU3RhdGVFcnJvcicpKTsKICAgICAgICAgYnJlYWs7Ci0K
LSAgICAgIC8vIE9LIGJlY2F1c2Ugd2FpdFVudGlsKCkgaXMgY2FsbGVkIGluIGEgbWljcm90YXNr
IHRoYXQgcnVucyBhZnRlciB0aGUKLSAgICAgIC8vIGV2ZW50IGhhbmRsZXIgcnVucywgd2hpbGUg
dGhlIGV2ZW50IGRpc3BhdGNoIGZsYWcgaXMgc3RpbGwgc2V0LgogICAgICAgY2FzZSAnbm8tY3Vy
cmVudC1leHRlbnNpb24tZGlmZmVyZW50LW1pY3JvdGFzayc6Ci0gICAgICAgIGFzeW5jX21pY3Jv
dGFza193YWl0dW50aWwoZXZlbnQpLnRoZW4ocmVwb3J0UmVzdWx0RXhwZWN0aW5nKCdPSycpKTsK
KyAgICAgICAgYXN5bmNfbWljcm90YXNrX3dhaXR1bnRpbChldmVudCkudGhlbihyZXBvcnRSZXN1
bHRFeHBlY3RpbmcoJ0ludmFsaWRTdGF0ZUVycm9yJykpOwogICAgICAgICBicmVhazsKLQotICAg
ICAgLy8gT0sgYmVjYXVzZSB0aGUgc2Vjb25kIHdhaXRVbnRpbCgpIGlzIGNhbGxlZCB3aGlsZSB0
aGUgZmlyc3Qgd2FpdFVudGlsKCkKLSAgICAgIC8vIHByb21pc2UgaXMgc3RpbGwgcGVuZGluZy4K
ICAgICAgIGNhc2UgJ2N1cnJlbnQtZXh0ZW5zaW9uLWRpZmZlcmVudC10YXNrJzoKICAgICAgICAg
ZXZlbnQud2FpdFVudGlsKG5ldyBQcm9taXNlKChyZXMpID0+IHsgcmVzb2x2ZVRlc3RQcm9taXNl
ID0gcmVzOyB9KSk7CiAgICAgICAgIGFzeW5jX3Rhc2tfd2FpdHVudGlsKGV2ZW50KS50aGVuKHJl
cG9ydFJlc3VsdEV4cGVjdGluZygnT0snKSkudGhlbihyZXNvbHZlVGVzdFByb21pc2UpOwogICAg
ICAgICBicmVhazsKLQotICAgICAgLy8gT0sgYmVjYXVzZSBhbGwgcHJvbWlzZXMgaW52b2x2ZWQg
cmVzb2x2ZSAiaW1tZWRpYXRlbHkiLCBzbyB0aGUgc2Vjb25kCi0gICAgICAvLyB3YWl0VW50aWwo
KSBpcyBjYWxsZWQgZHVyaW5nIHRoZSBtaWNyb3Rhc2sgY2hlY2twb2ludCBhdCB0aGUgZW5kIG9m
Ci0gICAgICAvLyBldmVudCBkaXNwYXRjaGluZywgd2hlbiB0aGUgZXZlbnQgZGlzcGF0Y2ggZmxh
ZyBpcyBzdGlsbCBzZXQuCi0gICAgICBjYXNlICdkdXJpbmctZXZlbnQtZGlzcGF0Y2gtY3VycmVu
dC1leHRlbnNpb24tZXhwaXJlZC1zYW1lLW1pY3JvdGFzay10dXJuJzoKKyAgICAgIGNhc2UgJ2N1
cnJlbnQtZXh0ZW5zaW9uLWV4cGlyZWQtc2FtZS1taWNyb3Rhc2stdHVybic6CiAgICAgICAgIHdh
aXRQcm9taXNlID0gUHJvbWlzZS5yZXNvbHZlKCk7CiAgICAgICAgIGV2ZW50LndhaXRVbnRpbCh3
YWl0UHJvbWlzZSk7CiAgICAgICAgIHdhaXRQcm9taXNlLnRoZW4oKCkgPT4geyByZXR1cm4gc3lu
Y193YWl0dW50aWwoZXZlbnQpOyB9KQogICAgICAgICAgIC50aGVuKHJlcG9ydFJlc3VsdEV4cGVj
dGluZygnT0snKSkKICAgICAgICAgYnJlYWs7Ci0KLSAgICAgIC8vIE9LIGZvciB0aGUgc2FtZSBy
ZWFzb24gYXMgYWJvdmUuCi0gICAgICBjYXNlICdkdXJpbmctZXZlbnQtZGlzcGF0Y2gtY3VycmVu
dC1leHRlbnNpb24tZXhwaXJlZC1zYW1lLW1pY3JvdGFzay10dXJuLWV4dHJhJzoKKyAgICAgIGNh
c2UgJ2N1cnJlbnQtZXh0ZW5zaW9uLWV4cGlyZWQtc2FtZS1taWNyb3Rhc2stdHVybi1leHRyYSc6
CisgICAgICAgIC8vIFRoZSBwcm9taXNlIGhhbmRsZXIgcXVldWVzIGEgbmV3IG1pY3JvdGFzayAq
YWZ0ZXIqIHRoZSBjaGVjayBmb3IgbmV3CisgICAgICAgIC8vIGV4dGVuc2lvbnMgd2FzIHBlcmZv
cm1lZC4KICAgICAgICAgd2FpdFByb21pc2UgPSBQcm9taXNlLnJlc29sdmUoKTsKICAgICAgICAg
ZXZlbnQud2FpdFVudGlsKHdhaXRQcm9taXNlKTsKLSAgICAgICAgd2FpdFByb21pc2UudGhlbigo
KSA9PiB7IHJldHVybiBhc3luY19taWNyb3Rhc2tfd2FpdHVudGlsKGV2ZW50KTsgfSkKLSAgICAg
ICAgICAudGhlbihyZXBvcnRSZXN1bHRFeHBlY3RpbmcoJ09LJykpCi0gICAgICAgIGJyZWFrOwot
Ci0KLSAgICAgIC8vIE9LIGJlY2F1c2UgdGhlIHBlbmRpbmcgcHJvbWlzZSBjb3VudCBpcyBkZWNy
ZW1lbnRlZCBpbiBhIG1pY3JvdGFzawotICAgICAgLy8gcXVldWVkIHVwb24gZnVsZmlsbG1lbnQg
b2YgdGhlIGZpcnN0IHdhaXRVbnRpbCgpIHByb21pc2UsIHNvIHRoZSBzZWNvbmQKLSAgICAgIC8v
IHdhaXRVbnRpbCgpIGlzIGNhbGxlZCB3aGlsZSB0aGUgcGVuZGluZyBwcm9taXNlIGNvdW50IGlz
IHN0aWxsCi0gICAgICAvLyBwb3NpdGl2ZS4KLSAgICAgIGNhc2UgJ2FmdGVyLWV2ZW50LWRpc3Bh
dGNoLWN1cnJlbnQtZXh0ZW5zaW9uLWV4cGlyZWQtc2FtZS1taWNyb3Rhc2stdHVybic6Ci0gICAg
ICAgIHdhaXRQcm9taXNlID0gbWFrZU5ld1Rhc2tQcm9taXNlKCk7Ci0gICAgICAgIGV2ZW50Lndh
aXRVbnRpbCh3YWl0UHJvbWlzZSk7Ci0gICAgICAgIHdhaXRQcm9taXNlLnRoZW4oKCkgPT4geyBy
ZXR1cm4gc3luY193YWl0dW50aWwoZXZlbnQpOyB9KQotICAgICAgICAgIC50aGVuKHJlcG9ydFJl
c3VsdEV4cGVjdGluZygnT0snKSkKLSAgICAgICAgYnJlYWs7Ci0KLSAgICAgIC8vIFRocm93cyBi
ZWNhdXNlIHRoZSBzZWNvbmQgd2FpdFVudGlsKCkgaXMgY2FsbGVkIGFmdGVyIHRoZSBwZW5kaW5n
Ci0gICAgICAvLyBwcm9taXNlIGNvdW50IHdhcyBkZWNyZW1lbnRlZCB0byAwLgotICAgICAgY2Fz
ZSAnYWZ0ZXItZXZlbnQtZGlzcGF0Y2gtY3VycmVudC1leHRlbnNpb24tZXhwaXJlZC1zYW1lLW1p
Y3JvdGFzay10dXJuLWV4dHJhJzoKLSAgICAgICAgd2FpdFByb21pc2UgPSBtYWtlTmV3VGFza1By
b21pc2UoKTsKLSAgICAgICAgZXZlbnQud2FpdFVudGlsKHdhaXRQcm9taXNlKTsKICAgICAgICAg
d2FpdFByb21pc2UudGhlbigoKSA9PiB7IHJldHVybiBhc3luY19taWNyb3Rhc2tfd2FpdHVudGls
KGV2ZW50KTsgfSkKICAgICAgICAgICAudGhlbihyZXBvcnRSZXN1bHRFeHBlY3RpbmcoJ0ludmFs
aWRTdGF0ZUVycm9yJykpCiAgICAgICAgIGJyZWFrOwotCi0gICAgICAvLyBUaHJvd3MgYmVjYXVz
ZSB0aGUgc2Vjb25kIHdhaXRVbnRpbCgpIGlzIGNhbGxlZCBpbiBhIG5ldyB0YXNrLCBhZnRlcgot
ICAgICAgLy8gZmlyc3Qgd2FpdFVudGlsKCkgcHJvbWlzZSBzZXR0bGVkIGFuZCB0aGUgZXZlbnQg
ZGlzcGF0Y2ggZmxhZyBpcyB1bnNldC4KICAgICAgIGNhc2UgJ2N1cnJlbnQtZXh0ZW5zaW9uLWV4
cGlyZWQtZGlmZmVyZW50LXRhc2snOgogICAgICAgICBldmVudC53YWl0VW50aWwoUHJvbWlzZS5y
ZXNvbHZlKCkpOwogICAgICAgICBhc3luY190YXNrX3dhaXR1bnRpbChldmVudCkudGhlbihyZXBv
cnRSZXN1bHRFeHBlY3RpbmcoJ0ludmFsaWRTdGF0ZUVycm9yJykpOwogICAgICAgICBicmVhazsK
LQogICAgICAgY2FzZSAnc2NyaXB0LWV4dGVuZGFibGUtZXZlbnQnOgogICAgICAgICBzZWxmLmRp
c3BhdGNoRXZlbnQobmV3IEV4dGVuZGFibGVFdmVudCgnbm9udHJ1c3RlZGV2ZW50JykpOwogICAg
ICAgICBicmVhazsKQEAgLTk3LDYyICs1MSwyNSBAQCBzZWxmLmFkZEV2ZW50TGlzdGVuZXIoJ21l
c3NhZ2UnLCBmdW5jdGlvbihldmVudCkgewogICB9KTsKIAogc2VsZi5hZGRFdmVudExpc3RlbmVy
KCdmZXRjaCcsIGZ1bmN0aW9uKGV2ZW50KSB7Ci0gIGNvbnN0IHBhdGggPSBuZXcgVVJMKGV2ZW50
LnJlcXVlc3QudXJsKS5wYXRobmFtZTsKLSAgY29uc3Qgc3RlcCA9IHBhdGguc3Vic3RyaW5nKHBh
dGgubGFzdEluZGV4T2YoJy8nKSArIDEpOwotICBsZXQgcmVzcG9uc2U7Ci0gIHN3aXRjaCAoc3Rl
cCkgewotICAgIC8vIE9LIGJlY2F1c2Ugd2FpdFVudGlsKCkgaXMgY2FsbGVkIHdoaWxlIHRoZSBy
ZXNwb25kV2l0aCgpIHByb21pc2UgaXMgc3RpbGwKLSAgICAvLyB1bnNldHRsZWQsIHNvIHRoZSBw
ZW5kaW5nIHByb21pc2UgY291bnQgaXMgcG9zaXRpdmUuCi0gICAgY2FzZSAncGVuZGluZy1yZXNw
b25kd2l0aC1hc3luYy13YWl0dW50aWwnOgorICAgIGlmIChldmVudC5yZXF1ZXN0LnVybC5pbmRl
eE9mKCdwZW5kaW5nLXJlc3BvbmR3aXRoLWFzeW5jLXdhaXR1bnRpbCcpICE9IC0xKSB7CiAgICAg
ICB2YXIgcmVzb2x2ZUZldGNoOwotICAgICAgcmVzcG9uc2UgPSBuZXcgUHJvbWlzZSgocmVzKSA9
PiB7IHJlc29sdmVGZXRjaCA9IHJlczsgfSk7CisgICAgICBsZXQgcmVzcG9uc2UgPSBuZXcgUHJv
bWlzZSgocmVzKSA9PiB7IHJlc29sdmVGZXRjaCA9IHJlczsgfSk7CiAgICAgICBldmVudC5yZXNw
b25kV2l0aChyZXNwb25zZSk7CiAgICAgICBhc3luY190YXNrX3dhaXR1bnRpbChldmVudCkKICAg
ICAgICAgLnRoZW4ocmVwb3J0UmVzdWx0RXhwZWN0aW5nKCdPSycpKQogICAgICAgICAudGhlbigo
KSA9PiB7IHJlc29sdmVGZXRjaChuZXcgUmVzcG9uc2UoJ09LJykpOyB9KTsKLSAgICAgIGJyZWFr
OwotCi0gICAgLy8gT0sgYmVjYXVzZSBhbGwgcHJvbWlzZXMgaW52b2x2ZWQgcmVzb2x2ZSAiaW1t
ZWRpYXRlbHkiLCBzbyB3YWl0VW50aWwoKSBpcwotICAgIC8vIGNhbGxlZCBkdXJpbmcgdGhlIG1p
Y3JvdGFzayBjaGVja3BvaW50IGF0IHRoZSBlbmQgb2YgZXZlbnQgZGlzcGF0Y2hpbmcsCi0gICAg
Ly8gd2hlbiB0aGUgZXZlbnQgZGlzcGF0Y2ggZmxhZyBpcyBzdGlsbCBzZXQuCi0gICAgY2FzZSAn
ZHVyaW5nLWV2ZW50LWRpc3BhdGNoLXJlc3BvbmR3aXRoLW1pY3JvdGFzay1zeW5jLXdhaXR1bnRp
bCc6CisgICAgfSBlbHNlIGlmIChldmVudC5yZXF1ZXN0LnVybC5pbmRleE9mKCdyZXNwb25kd2l0
aC1taWNyb3Rhc2stc3luYy13YWl0dW50aWwnKSAhPSAtMSkgewogICAgICAgcmVzcG9uc2UgPSBQ
cm9taXNlLnJlc29sdmUobmV3IFJlc3BvbnNlKCdSRVNQJykpOwogICAgICAgZXZlbnQucmVzcG9u
ZFdpdGgocmVzcG9uc2UpOwogICAgICAgcmVzcG9uc2UudGhlbigoKSA9PiB7IHJldHVybiBzeW5j
X3dhaXR1bnRpbChldmVudCk7IH0pCi0gICAgICAgIC50aGVuKHJlcG9ydFJlc3VsdEV4cGVjdGlu
ZygnT0snKSk7Ci0gICAgICBicmVhazsKLQotICAgIC8vIE9LIGJlY2F1c2UgYWxsIHByb21pc2Vz
IGludm9sdmVkIHJlc29sdmUgImltbWVkaWF0ZWx5Iiwgc28gd2FpdFVudGlsKCkgaXMKLSAgICAv
LyBjYWxsZWQgZHVyaW5nIHRoZSBtaWNyb3Rhc2sgY2hlY2twb2ludCBhdCB0aGUgZW5kIG9mIGV2
ZW50IGRpc3BhdGNoaW5nLAotICAgIC8vIHdoZW4gdGhlIGV2ZW50IGRpc3BhdGNoIGZsYWcgaXMg
c3RpbGwgc2V0LgotICAgIGNhc2UgJ2R1cmluZy1ldmVudC1kaXNwYXRjaC1yZXNwb25kd2l0aC1t
aWNyb3Rhc2stYXN5bmMtd2FpdHVudGlsJzoKKyAgICAgICAgLnRoZW4ocmVwb3J0UmVzdWx0RXhw
ZWN0aW5nKCdPSycpKQorICAgIH0gZWxzZSBpZiAoZXZlbnQucmVxdWVzdC51cmwuaW5kZXhPZign
cmVzcG9uZHdpdGgtbWljcm90YXNrLWFzeW5jLXdhaXR1bnRpbCcpICE9IC0xKSB7CiAgICAgICBy
ZXNwb25zZSA9IFByb21pc2UucmVzb2x2ZShuZXcgUmVzcG9uc2UoJ1JFU1AnKSk7CiAgICAgICBl
dmVudC5yZXNwb25kV2l0aChyZXNwb25zZSk7Ci0gICAgICByZXNwb25zZS50aGVuKCgpID0+IHsg
cmV0dXJuIGFzeW5jX21pY3JvdGFza193YWl0dW50aWwoZXZlbnQpOyB9KQotICAgICAgICAudGhl
bihyZXBvcnRSZXN1bHRFeHBlY3RpbmcoJ09LJykpOwotICAgICAgYnJlYWs7Ci0KLSAgICAvLyBP
SyBiZWNhdXNlIHRoZSBwZW5kaW5nIHByb21pc2UgY291bnQgaXMgZGVjcmVtZW50ZWQgaW4gYSBt
aWNyb3Rhc2sgcXVldWVkCi0gICAgLy8gdXBvbiBmdWxmaWxsbWVudCBvZiB0aGUgcmVzcG9uZFdp
dGgoKSBwcm9taXNlLCBzbyB3YWl0VW50aWwoKSBpcyBjYWxsZWQKLSAgICAvLyB3aGlsZSB0aGUg
cGVuZGluZyBwcm9taXNlIGNvdW50IGlzIHN0aWxsIHBvc2l0aXZlLgotICAgIGNhc2UgJ2FmdGVy
LWV2ZW50LWRpc3BhdGNoLXJlc3BvbmR3aXRoLW1pY3JvdGFzay1zeW5jLXdhaXR1bnRpbCc6Ci0g
ICAgICByZXNwb25zZSA9IG1ha2VOZXdUYXNrUHJvbWlzZSgpLnRoZW4oKCkgPT4ge3JldHVybiBu
ZXcgUmVzcG9uc2UoJ1JFU1AnKTt9KTsKLSAgICAgIGV2ZW50LnJlc3BvbmRXaXRoKHJlc3BvbnNl
KTsKLSAgICAgIHJlc3BvbnNlLnRoZW4oKCkgPT4geyByZXR1cm4gc3luY193YWl0dW50aWwoZXZl
bnQpOyB9KQotICAgICAgICAudGhlbihyZXBvcnRSZXN1bHRFeHBlY3RpbmcoJ09LJykpOwotICAg
ICAgYnJlYWs7Ci0KLQotICAgIC8vIFRocm93cyBiZWNhdXNlIHdhaXRVbnRpbCgpIGlzIGNhbGxl
ZCBhZnRlciB0aGUgcGVuZGluZyBwcm9taXNlIGNvdW50IHdhcwotICAgIC8vIGRlY3JlbWVudGVk
IHRvIDAuCi0gICAgY2FzZSAnYWZ0ZXItZXZlbnQtZGlzcGF0Y2gtcmVzcG9uZHdpdGgtbWljcm90
YXNrLWFzeW5jLXdhaXR1bnRpbCc6Ci0gICAgICByZXNwb25zZSA9IG1ha2VOZXdUYXNrUHJvbWlz
ZSgpLnRoZW4oKCkgPT4ge3JldHVybiBuZXcgUmVzcG9uc2UoJ1JFU1AnKTt9KTsKLSAgICAgIGV2
ZW50LnJlc3BvbmRXaXRoKHJlc3BvbnNlKTsKICAgICAgIHJlc3BvbnNlLnRoZW4oKCkgPT4geyBy
ZXR1cm4gYXN5bmNfbWljcm90YXNrX3dhaXR1bnRpbChldmVudCk7IH0pCiAgICAgICAgIC50aGVu
KHJlcG9ydFJlc3VsdEV4cGVjdGluZygnSW52YWxpZFN0YXRlRXJyb3InKSkKLSAgICAgIGJyZWFr
OwotICB9Ci19KTsKKyAgICB9CisgIH0pOwogCiBzZWxmLmFkZEV2ZW50TGlzdGVuZXIoJ25vbnRy
dXN0ZWRldmVudCcsIGZ1bmN0aW9uKGV2ZW50KSB7CiAgICAgc3luY193YWl0dW50aWwoZXZlbnQp
LnRoZW4ocmVwb3J0UmVzdWx0RXhwZWN0aW5nKCdJbnZhbGlkU3RhdGVFcnJvcicpKTsKQEAgLTIw
MSwxMCArMTE4LDMgQEAgZnVuY3Rpb24gYXN5bmNfdGFza193YWl0dW50aWwoZXZlbnQpIHsKICAg
ICB9LCAwKTsKICAgfSk7CiB9Ci0KLS8vIFJldHVybnMgYSBwcm9taXNlIHRoYXQgc2V0dGxlcyBp
biBhIHNlcGFyYXRlIHRhc2suCi1mdW5jdGlvbiBtYWtlTmV3VGFza1Byb21pc2UoKSB7Ci0gIHJl
dHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHsKLSAgICBzZXRUaW1lb3V0KHJlc29sdmUsIDAp
OwotICB9KTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRj
aC1jYW52YXMtdGFpbnRpbmctZG91YmxlLXdyaXRlLXdvcmtlci5qcyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3Jlc291cmNlcy9mZXRjaC1jYW52YXMtdGFpbnRpbmctZG91YmxlLXdyaXRlLXdvcmtlci5q
cwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTc3MjNkY2RkYTJmMmZhZGI5YWIwYWI0
YTAwYjI4YzI0YjgxNTIzNC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtY2FudmFzLXRhaW50aW5n
LWRvdWJsZS13cml0ZS13b3JrZXIuanMKKysrIC9kZXYvbnVsbApAQCAtMSw3ICswLDAgQEAKLXNl
bGYuYWRkRXZlbnRMaXN0ZW5lcignZmV0Y2gnLCAoZXZlbnQpID0+IHsKLSAgdXJsID0gbmV3IFVS
TChldmVudC5yZXF1ZXN0LnVybCk7Ci0gIGlmICh1cmwuc2VhcmNoID09ICc/UE5HSU1BR0UnKSB7
Ci0gICAgbG9jYWxVcmwgPSBuZXcgVVJMKHVybC5wYXRobmFtZSArIHVybC5zZWFyY2gsIHNlbGYu
bG9jYXRpb24pOwotICAgIGV2ZW50LnJlc3BvbmRXaXRoKGZldGNoKGxvY2FsVXJsKSk7Ci0gIH0K
LX0pOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWNvcnMt
eGhyLWlmcmFtZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWNvcnMt
eGhyLWlmcmFtZS5odG1sCmluZGV4IGQ4OGM1MTAzZDM1YjE4ODA5MzI2MDhiZWE3NWQyMWE4ZDYx
Y2MwMzguLjUxOTUyYTk4OGVmZTA3MDAyNzZjZWZhMDMyODY1YzQ0MmRmY2I2YzYgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1jb3JzLXhoci1pZnJhbWUuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtY29ycy14aHItaWZyYW1l
Lmh0bWwKQEAgLTI2LDEwICsyNiwzOCBAQCBmdW5jdGlvbiBjcmVhdGVfdGVzdF9jYXNlX3Byb21p
c2UodXJsLCB3aXRoX2NyZWRlbnRpYWxzKSB7CiAgICAgfSk7CiB9CiAKLXdpbmRvdy5hZGRFdmVu
dExpc3RlbmVyKCdtZXNzYWdlJywgYXN5bmMgKGV2dCkgPT4geworZnVuY3Rpb24gY3JlYXRlX3Rl
c3RfcHJvbWlzZSh1cmwsIHdpdGhfY3JlZGVudGlhbHMsIGV4cGVjdGVkX3Jlc3VsdCkgeworICBy
ZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7CisgICAgICBjcmVh
dGVfdGVzdF9jYXNlX3Byb21pc2UodXJsLCB3aXRoX2NyZWRlbnRpYWxzKQorICAgICAgICAudGhl
bihmdW5jdGlvbihyZXN1bHQpIHsKKyAgICAgICAgICBpZiAocmVzdWx0ID09IGV4cGVjdGVkX3Jl
c3VsdCkgeworICAgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgICAgIH0gZWxzZSB7CisgICAg
ICAgICAgICByZWplY3QoJ1Jlc3VsdCBvZiB1cmw6JyArIHVybCArICcgJyArCisgICAgICAgICAg
ICAgICAgICAgJyB3aXRoX2NyZWRlbnRpYWxzOiAnICsgd2l0aF9jcmVkZW50aWFscyArICcgbXVz
dCBiZSAnICsKKyAgICAgICAgICAgICAgICAgICBleHBlY3RlZF9yZXN1bHQgKyAnIGJ1dCAnICsg
cmVzdWx0KTsKKyAgICAgICAgICB9CisgICAgICAgIH0pCisgICAgfSk7Cit9CisKK2Z1bmN0aW9u
IGNyZWF0ZV9zZXJpYWxfcHJvbWlzZSh0ZXN0X2Nhc2VzKSB7CisgIHZhciBwcm9taXNlID0gUHJv
bWlzZS5yZXNvbHZlKCk7CisgIHRlc3RfY2FzZXMuZm9yRWFjaChmdW5jdGlvbih0ZXN0X2Nhc2Up
IHsKKyAgICAgIHByb21pc2UgPSBwcm9taXNlLnRoZW4oZnVuY3Rpb24oKSB7CisgICAgICAgICAg
cmV0dXJuIGNyZWF0ZV90ZXN0X3Byb21pc2UodGVzdF9jYXNlWzBdLCB0ZXN0X2Nhc2VbMV0sIHRl
c3RfY2FzZVsyXSk7CisgICAgICAgIH0pOworICAgIH0pOworICAgIHJldHVybiBwcm9taXNlOwor
fQorCit3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIGZ1bmN0aW9uKGV2dCkgewog
ICAgIHZhciBwb3J0ID0gZXZ0LnBvcnRzWzBdOwogICAgIHZhciB1cmwgPSBob3N0X2luZm9bJ0hU
VFBTX09SSUdJTiddICsgcGF0aDsKICAgICB2YXIgcmVtb3RlX3VybCA9IGhvc3RfaW5mb1snSFRU
UFNfUkVNT1RFX09SSUdJTiddICsgcGF0aDsKKyAgICAvLyBJZiB0aGUgNHRoIHZhbHVlIG9mIHRo
ZSBpdGVtIG9mIFRFU1RfQ0FTRVMgaXMgdHJ1ZSwgdGhlIHRlc3QgY2FzZSBvdXRwdXRzCisgICAg
Ly8gd2FybmluZyBtZXNzYWdlcy4gU28gc3VjaCB0ZXN0cyBtdXN0IGJlIGV4ZWN1dGVkIGluIHNl
cmlhbCB0byBtYXRjaCB0aGUKKyAgICAvLyBleHBlY3RlZCBvdXRwdXQgdGV4dC4KICAgICB2YXIg
VEVTVF9DQVNFUyA9IFsKICAgICAgIC8vIFJlamVjdCB0ZXN0cwogICAgICAgW3VybCArICc/cmVq
ZWN0JywgZmFsc2UsIEZBSUxdLApAQCAtNjcsOCArOTUsOCBAQCB3aW5kb3cuYWRkRXZlbnRMaXN0
ZW5lcignbWVzc2FnZScsIGFzeW5jIChldnQpID0+IHsKICAgICAgIC8vIENyZWRlbnRpYWwgdGVz
dCAoZmFsbGJhY2spCiAgICAgICBbdXJsICsgJz9BdXRoJmlnbm9yZScsIGZhbHNlLCBTVUNDRVNT
XSwKICAgICAgIFt1cmwgKyAnP0F1dGgmaWdub3JlJywgdHJ1ZSwgU1VDQ0VTU10sCi0gICAgICBb
cmVtb3RlX3VybCArICc/QXV0aCZpZ25vcmUnLCBmYWxzZSwgRkFJTF0sCi0gICAgICBbcmVtb3Rl
X3VybCArICc/QXV0aCZpZ25vcmUnLCB0cnVlLCBGQUlMXSwKKyAgICAgIFtyZW1vdGVfdXJsICsg
Jz9BdXRoJmlnbm9yZScsIGZhbHNlLCBGQUlMLCB0cnVlXSwgIC8vIEV4ZWN1dGVkIGluIHNlcmlh
bC4KKyAgICAgIFtyZW1vdGVfdXJsICsgJz9BdXRoJmlnbm9yZScsIHRydWUsIEZBSUwsIHRydWVd
LCAgLy8gRXhlY3V0ZWQgaW4gc2VyaWFsLgogICAgICAgWwogICAgICAgICByZW1vdGVfdXJsICsg
Jz9BdXRoJkFDQU9yaWdpbj0nICsgaG9zdF9pbmZvWydIVFRQU19PUklHSU4nXSArICcmaWdub3Jl
JywKICAgICAgICAgZmFsc2UsICdTVEFUVVM0MDEnCkBAIC0xNTgsMTMgKzE4NiwyNCBAQCB3aW5k
b3cuYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIGFzeW5jIChldnQpID0+IHsKICAgICAgICAg
dHJ1ZSwgU1VDQ0VTUwogICAgICAgXQogICAgIF07Ci0KLSAgICBsZXQgY291bnRlciA9IDA7Ci0g
ICAgZm9yIChsZXQgdGVzdCBvZiBURVNUX0NBU0VTKSB7Ci0gICAgICBsZXQgcmVzdWx0ID0gYXdh
aXQgY3JlYXRlX3Rlc3RfY2FzZV9wcm9taXNlKHRlc3RbMF0sIHRlc3RbMV0pOwotICAgICAgbGV0
IHRlc3ROYW1lID0gJ3Rlc3QgJyArICgrK2NvdW50ZXIpICsgJzogJyArIHRlc3RbMF0gKyAnIHdp
dGggY3JlZGVudGlhbHMgJyArIHRlc3RbMV0gKyAnIG11c3QgYmUgJyArIHRlc3RbMl07Ci0gICAg
ICBwb3J0LnBvc3RNZXNzYWdlKHt0ZXN0TmFtZTogdGVzdE5hbWUsIHJlc3VsdDogcmVzdWx0ID09
PSB0ZXN0WzJdfSk7CisgICAgdmFyIHByb21pc2VzID0gW107CisgICAgdmFyIHNlcmlhbF90ZXN0
cyA9IFtdOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgVEVTVF9DQVNFUy5sZW5ndGggOyArK2kp
IHsKKyAgICAgIGlmICghVEVTVF9DQVNFU1tpXVszXSkgeworICAgICAgICBwcm9taXNlcy5wdXNo
KGNyZWF0ZV90ZXN0X3Byb21pc2UoVEVTVF9DQVNFU1tpXVswXSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFRFU1RfQ0FTRVNbaV1bMV0sCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBURVNUX0NBU0VTW2ldWzJdKSk7CisgICAgICB9
IGVsc2UgeworICAgICAgICBzZXJpYWxfdGVzdHMucHVzaChURVNUX0NBU0VTW2ldKTsKKyAgICAg
IH0KICAgICB9Ci0gICAgcG9ydC5wb3N0TWVzc2FnZSgnZG9uZScpOworICAgIHByb21pc2VzLnB1
c2goY3JlYXRlX3NlcmlhbF9wcm9taXNlKHNlcmlhbF90ZXN0cykpOworICAgIFByb21pc2UuYWxs
KHByb21pc2VzKQorICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7CisgICAgICAgICAgcG9ydC5wb3N0
TWVzc2FnZSh7cmVzdWx0czogJ2ZpbmlzaCd9KTsKKyAgICAgICAgfSkKKyAgICAgIC5jYXRjaChm
dW5jdGlvbihlKSB7CisgICAgICAgICAgcG9ydC5wb3N0TWVzc2FnZSh7cmVzdWx0czogJ2ZhaWx1
cmU6JyArIGV9KTsKKyAgICAgICAgfSk7CiAgIH0sIGZhbHNlKTsKIDwvc2NyaXB0PgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWV2ZW50LWFzeW5jLXJlc3Bv
bmQtd2l0aC13b3JrZXIuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtZXZl
bnQtYXN5bmMtcmVzcG9uZC13aXRoLXdvcmtlci5qcwppbmRleCBkYzNmMWExZTk4NTYzYWQxYjU5
MjRjODMxNWMwZDY0ZDE3ZmZiYmZkLi43ZjY2ZDIwZGZjMmRmZjBhZjAxZGZhMDdmODIzYzY2MGI3
YTFlYzFiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtZXZl
bnQtYXN5bmMtcmVzcG9uZC13aXRoLXdvcmtlci5qcworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9y
ZXNvdXJjZXMvZmV0Y2gtZXZlbnQtYXN5bmMtcmVzcG9uZC13aXRoLXdvcmtlci5qcwpAQCAtMSw2
NiArMSwxOSBAQAotLy8gVGhpcyB3b3JrZXIgYXR0ZW1wdHMgdG8gY2FsbCByZXNwb25kV2l0aCgp
IGFzeW5jaHJvbm91c2x5IGFmdGVyIHRoZQotLy8gZmV0Y2ggZXZlbnQgaGFuZGxlciBmaW5pc2hl
ZC4gSXQgcmVwb3J0cyBiYWNrIHRvIHRoZSB0ZXN0IHdoZXRoZXIKLS8vIGFuIGV4Y2VwdGlvbiB3
YXMgdGhyb3duLgordmFyIHJlc3VsdDsKIAotLy8gVGhlc2UgZ2V0IHJlc2V0IGF0IHRoZSBzdGFy
dCBvZiBhIHRlc3QgY2FzZS4KLWxldCByZXBvcnRSZXN1bHQ7Ci0KLS8vIFRoZSB0ZXN0IHBhZ2Ug
c2VuZHMgYSBtZXNzYWdlIHRvIHRlbGwgdXMgdGhhdCBhIG5ldyB0ZXN0IGNhc2UgaXMgc3RhcnRp
bmcuCi0vLyBXZSBleHBlY3QgYSBmZXRjaCBldmVudCBhZnRlciB0aGlzLgotc2VsZi5hZGRFdmVu
dExpc3RlbmVyKCdtZXNzYWdlJywgKGV2ZW50KSA9PiB7Ci0gIC8vIEVuc3VyZSB0ZXN0cyBydW4g
bXV0dWFsbHkgZXhjbHVzaXZlLgotICBpZiAocmVwb3J0UmVzdWx0KSB7Ci0gICAgZXZlbnQuc291
cmNlLnBvc3RNZXNzYWdlKCd0ZXN0QWxyZWFkeVJ1bm5pbmcnKTsKLSAgICByZXR1cm47Ci0gIH0K
LQotICBjb25zdCByZXN1bHRQcm9taXNlID0gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsKLSAg
ICByZXBvcnRSZXN1bHQgPSByZXNvbHZlOwotICAgIC8vIFRlbGwgdGhlIGNsaWVudCB0aGF0IGV2
ZXJ5dGhpbmcgaXMgaW5pdGlhbGl6ZWQgYW5kIHRoYXQgaXQncyBzYWZlIHRvCi0gICAgLy8gcHJv
Y2VlZCB3aXRoIHRoZSB0ZXN0IHdpdGhvdXQgcmVseWluZyBvbiB0aGUgb3JkZXIgb2YgZXZlbnRz
ICh3aGljaCBzb21lCi0gICAgLy8gYnJvd3NlcnMgbGlrZSBDaHJvbWUgbWF5IG5vdCBndWFyYW50
ZWUpLgotICAgIGV2ZW50LnNvdXJjZS5wb3N0TWVzc2FnZSgnbWVzc2FnZUhhbmRsZXJJbml0aWFs
aXplZCcpOworc2VsZi5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgZnVuY3Rpb24oZXZlbnQp
IHsKKyAgICBldmVudC5kYXRhLnBvcnQucG9zdE1lc3NhZ2UocmVzdWx0KTsKICAgfSk7CiAKLSAg
Ly8gS2VlcCB0aGUgd29ya2VyIGFsaXZlIHVudGlsIHRoZSB0ZXN0IGNhc2UgZmluaXNoZXMsIGFu
ZCByZXBvcnQKLSAgLy8gYmFjayB0aGUgcmVzdWx0IHRvIHRoZSB0ZXN0IHBhZ2UuCi0gIGV2ZW50
LndhaXRVbnRpbChyZXN1bHRQcm9taXNlLnRoZW4ocmVzdWx0ID0+IHsKLSAgICByZXBvcnRSZXN1
bHQgPSBudWxsOwotICAgIGV2ZW50LnNvdXJjZS5wb3N0TWVzc2FnZShyZXN1bHQpOwotICB9KSk7
Ci19KTsKLQotLy8gQ2FsbHMgcmVzcG9uZFdpdGgoKSBhbmQgcmVwb3J0cyBiYWNrIHdoZXRoZXIg
YW4gZXhjZXB0aW9uIG9jY3VycmVkLgotZnVuY3Rpb24gdHJ5UmVzcG9uZFdpdGgoZXZlbnQpIHsK
LSAgdHJ5IHsKLSAgICBldmVudC5yZXNwb25kV2l0aChuZXcgUmVzcG9uc2UoKSk7Ci0gICAgcmVw
b3J0UmVzdWx0KHtkaWRUaHJvdzogZmFsc2V9KTsKLSAgfSBjYXRjaCAoZXJyb3IpIHsKLSAgICBy
ZXBvcnRSZXN1bHQoe2RpZFRocm93OiB0cnVlLCBlcnJvcjogZXJyb3IubmFtZX0pOwotICB9Ci19
Ci0KLWZ1bmN0aW9uIHJlc3BvbmRXaXRoSW5UYXNrKGV2ZW50KSB7Ci0gIHNldFRpbWVvdXQoKCkg
PT4gewotICAgIHRyeVJlc3BvbmRXaXRoKGV2ZW50KTsKLSAgfSwgMCk7Ci19Ci0KLWZ1bmN0aW9u
IHJlc3BvbmRXaXRoSW5NaWNyb3Rhc2soZXZlbnQpIHsKLSAgUHJvbWlzZS5yZXNvbHZlKCkudGhl
bigoKSA9PiB7Ci0gICAgdHJ5UmVzcG9uZFdpdGgoZXZlbnQpOwotICB9KTsKLX0KLQogc2VsZi5h
ZGRFdmVudExpc3RlbmVyKCdmZXRjaCcsIGZ1bmN0aW9uKGV2ZW50KSB7Ci0gIGNvbnN0IHBhdGgg
PSBuZXcgVVJMKGV2ZW50LnJlcXVlc3QudXJsKS5wYXRobmFtZTsKLSAgY29uc3QgdGVzdCA9IHBh
dGguc3Vic3RyaW5nKHBhdGgubGFzdEluZGV4T2YoJy8nKSArIDEpOwotCi0gIC8vIElmIHRoaXMg
aXMgYSB0ZXN0IGNhc2UsIHRyeSByZXNwb25kV2l0aCgpIGFuZCByZXBvcnQgYmFjayB0byB0aGUg
dGVzdCBwYWdlCi0gIC8vIHRoZSByZXN1bHQuCi0gIGlmICh0ZXN0ID09ICdyZXNwb25kV2l0aC1p
bi10YXNrJykgewotICAgIHJlc3BvbmRXaXRoSW5UYXNrKGV2ZW50KTsKLSAgfSBlbHNlIGlmICh0
ZXN0ID09ICdyZXNwb25kV2l0aC1pbi1taWNyb3Rhc2snKSB7Ci0gICAgcmVzcG9uZFdpdGhJbk1p
Y3JvdGFzayhldmVudCk7Ci0gIH0KLX0pOworICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7Cisg
ICAgICAgIHRyeSB7CisgICAgICAgICAgZXZlbnQucmVzcG9uZFdpdGgobmV3IFJlc3BvbnNlKCkp
OworICAgICAgICAgIHJlc3VsdCA9ICdGQUlMOiBkaWQgbm90IHRocm93JzsKKyAgICAgICAgfSBj
YXRjaCAoZXJyb3IpIHsKKyAgICAgICAgICBpZiAoZXJyb3IubmFtZSA9PSAnSW52YWxpZFN0YXRl
RXJyb3InKQorICAgICAgICAgICAgcmVzdWx0ID0gJ1BBU1MnOworICAgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgIHJlc3VsdCA9ICdGQUlMOiBVbmV4cGVjdGVkIGV4Y2VwdGlvbjogJyArIGVycm9y
OworICAgICAgICB9CisgICAgICB9LCAwKTsKKyAgfSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtZXZlbnQtbmV0d29yay1mYWxsYmFjay13b3JrZXIuanMg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtZXZlbnQtbmV0d29yay1mYWxsYmFj
ay13b3JrZXIuanMKaW5kZXggMzc2YmRiZWQwNWUxODZmN2ExMjVjMmVmN2NlMjk2YjZkZGI4YmVh
ZS4uZGFhMjAwYzJiYWRiODI5NjRjYzM1MDY5OTgzMmE3MzBiNTJjOTFhNCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWV2ZW50LW5ldHdvcmstZmFsbGJhY2st
d29ya2VyLmpzCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1ldmVudC1u
ZXR3b3JrLWZhbGxiYWNrLXdvcmtlci5qcwpAQCAtMSwzICsxLDMgQEAKIHNlbGYuYWRkRXZlbnRM
aXN0ZW5lcignZmV0Y2gnLCAoKSA9PiB7Ci0gIC8vIERvIG5vdGhpbmcuCi19KTsKKyAgICAvLyBE
byBub3RoaW5nLgorICB9KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNl
cy9mZXRjaC1ldmVudC10ZXN0LXdvcmtlci5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNl
cy9mZXRjaC1ldmVudC10ZXN0LXdvcmtlci5qcwppbmRleCAwYTUyYTgyMDFlYTk2ZDUwZDNmYTZl
ZTMwMmY2YWE5MGI0NDM1ZGE2Li5kNTAzYTY2MDlkNjk1ODIxZTIwNzIxNzgxMWI1M2Y5NTcwMjdk
MTE4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtZXZlbnQt
dGVzdC13b3JrZXIuanMKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWV2
ZW50LXRlc3Qtd29ya2VyLmpzCkBAIC0zNywxNiArMzcsNiBAQCBmdW5jdGlvbiBoYW5kbGVDbGll
bnRJZChldmVudCkgewogICBldmVudC5yZXNwb25kV2l0aChuZXcgUmVzcG9uc2UoYm9keSkpOwog
fQogCi1mdW5jdGlvbiBoYW5kbGVSZXN1bHRpbmdDbGllbnRJZChldmVudCkgewotICB2YXIgYm9k
eTsKLSAgaWYgKGV2ZW50LnJlc3VsdGluZ0NsaWVudElkICE9PSAiIikgewotICAgIGJvZHkgPSAn
UmVzdWx0aW5nIENsaWVudCBJRCBGb3VuZDogJyArIGV2ZW50LnJlc3VsdGluZ0NsaWVudElkOwot
ICB9IGVsc2UgewotICAgIGJvZHkgPSAnUmVzdWx0aW5nIENsaWVudCBJRCBOb3QgRm91bmQnOwot
ICB9Ci0gIGV2ZW50LnJlc3BvbmRXaXRoKG5ldyBSZXNwb25zZShib2R5KSk7Ci19Ci0KIGZ1bmN0
aW9uIGhhbmRsZU51bGxCb2R5KGV2ZW50KSB7CiAgIGV2ZW50LnJlc3BvbmRXaXRoKG5ldyBSZXNw
b25zZSgpKTsKIH0KQEAgLTE2NSw3ICsxNTUsNiBAQCBzZWxmLmFkZEV2ZW50TGlzdGVuZXIoJ2Zl
dGNoJywgZnVuY3Rpb24oZXZlbnQpIHsKICAgICAgIHsgcGF0dGVybjogJz9yZWZlcnJlclBvbGlj
eScsIGZuOiBoYW5kbGVSZWZlcnJlclBvbGljeSB9LAogICAgICAgeyBwYXR0ZXJuOiAnP3JlZmVy
cmVyJywgZm46IGhhbmRsZVJlZmVycmVyIH0sCiAgICAgICB7IHBhdHRlcm46ICc/Y2xpZW50SWQn
LCBmbjogaGFuZGxlQ2xpZW50SWQgfSwKLSAgICAgIHsgcGF0dGVybjogJz9yZXN1bHRpbmdDbGll
bnRJZCcsIGZuOiBoYW5kbGVSZXN1bHRpbmdDbGllbnRJZCB9LAogICAgICAgeyBwYXR0ZXJuOiAn
P2lnbm9yZScsIGZuOiBmdW5jdGlvbigpIHt9IH0sCiAgICAgICB7IHBhdHRlcm46ICc/bnVsbCcs
IGZuOiBoYW5kbGVOdWxsQm9keSB9LAogICAgICAgeyBwYXR0ZXJuOiAnP2ZldGNoJywgZm46IGhh
bmRsZUZldGNoIH0sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0
Y2gtcmVxdWVzdC1jc3MtYmFzZS11cmwtaWZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9y
ZXNvdXJjZXMvZmV0Y2gtcmVxdWVzdC1jc3MtYmFzZS11cmwtaWZyYW1lLmh0bWwKaW5kZXggNTA0
ZTEwNDM1NjQyMzMwZmJlYjIzMzQ4NTViYjlkMzk2NjI3NjQ2OS4uMGVkZjJlN2Y5NjU5YTViYTJi
MjA0Yzc2ZWMwNDUwM2VhY2FjMTRhNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVz
b3VyY2VzL2ZldGNoLXJlcXVlc3QtY3NzLWJhc2UtdXJsLWlmcmFtZS5odG1sCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1yZXF1ZXN0LWNzcy1iYXNlLXVybC1pZnJhbWUu
aHRtbApAQCAtMSwyMCArMSBAQAotPGh0bWw+Ci08aGVhZD4KLTx0aXRsZT5pZnJhbWUgZm9yIGNz
cyBiYXNlIHVybCB0ZXN0PC90aXRsZT4KLTwvaGVhZD4KLTxib2R5PgotPHNjcmlwdD4KLS8vIExv
YWQgYSBzdHlsZXNoZWV0LiBDcmVhdGUgaXQgZHluYW1pY2FsbHkgc28gd2UgY2FuIGNvbnN0cnVj
dCB0aGUgaHJlZiBVUkwKLS8vIGR5bmFtaWNhbGx5LgotY29uc3QgbGluayA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoJ2xpbmsnKTsKLWxpbmsucmVsID0gJ3N0eWxlc2hlZXQnOwotbGluay50eXBl
ID0gJ3RleHQvY3NzJzsKLS8vIEFkZCAicmVxdWVzdC11cmwtcGF0aCIgdG8gdGhlIHBhdGggdG8g
aGVscCBkaXN0aW5ndWlzaCB0aGUgcmVxdWVzdCBVUkwgZnJvbQotLy8gdGhlIHJlc3BvbnNlIFVS
TC4gQWRkIHxkb2N1bWVudC5sb2NhdGlvbi5zZWFyY2h8IChjaG9zZW4gYnkgdGhlIHRlc3QgbWFp
bgotLy8gcGFnZSkgdG8gdGVsbCB0aGUgc2VydmljZSB3b3JrZXIgaG93IHRvIHJlc3BvbmQgdG8g
dGhlIHJlcXVlc3QuCi1saW5rLmhyZWYgPSAncmVxdWVzdC11cmwtcGF0aC9mZXRjaC1yZXF1ZXN0
LWNzcy1iYXNlLXVybC1zdHlsZS5jc3MnICsKLSAgICBkb2N1bWVudC5sb2NhdGlvbi5zZWFyY2g7
Ci1kb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKGxpbmspOwotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08
L2h0bWw+Cis8bGluayBocmVmPSIuL2ZldGNoLXJlcXVlc3QtY3NzLWJhc2UtdXJsLXN0eWxlLmNz
cyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyI+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtcmVxdWVzdC1jc3MtYmFzZS11cmwtd29ya2VyLmpz
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLXJlcXVlc3QtY3NzLWJhc2UtdXJs
LXdvcmtlci5qcwppbmRleCBlOGRiZDI3MjVjNjhmOTMyNmM0MWFlNWU3YmRlNjUxNTg5NzBhMjcy
Li45MWMzMjU5OThhM2I4ZDZhNjEwNmE4MzQ5MDNlMjA1NTllMGYwMDU1IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtcmVxdWVzdC1jc3MtYmFzZS11cmwtd29y
a2VyLmpzCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1yZXF1ZXN0LWNz
cy1iYXNlLXVybC13b3JrZXIuanMKQEAgLTEsNDUgKzEsMjcgQEAKLWxldCBzb3VyY2U7Ci1sZXQg
cmVzb2x2ZURvbmU7Ci1sZXQgZG9uZSA9IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gcmVzb2x2ZURv
bmUgPSByZXNvbHZlKTsKK2ltcG9ydFNjcmlwdHMoJy9jb21tb24vZ2V0LWhvc3QtaW5mby5zdWIu
anMnKTsKK2ltcG9ydFNjcmlwdHMoJ3Rlc3QtaGVscGVycy5zdWIuanMnKTsKIAotLy8gVGhlIHBh
Z2UgbWVzc2FnZXMgdGhpcyB3b3JrZXIgdG8gYXNrIGZvciB0aGUgcmVzdWx0LiBLZWVwIHRoZSB3
b3JrZXIgYWxpdmUKLS8vIHZpYSB3YWl0VW50aWwoKSB1bnRpbCB0aGUgcmVzdWx0IGlzIHNlbnQu
Ci1zZWxmLmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCBldmVudCA9PiB7Ci0gIHNvdXJjZSA9
IGV2ZW50LmRhdGEucG9ydDsKLSAgc291cmNlLnBvc3RNZXNzYWdlKCdwb25nJyk7Ci0gIGV2ZW50
LndhaXRVbnRpbChkb25lKTsKLX0pOwordmFyIHBvcnQgPSB1bmRlZmluZWQ7CiAKLXNlbGYuYWRk
RXZlbnRMaXN0ZW5lcignZmV0Y2gnLCBldmVudCA9PiB7Ci0gIGNvbnN0IHVybCA9IG5ldyBVUkwo
ZXZlbnQucmVxdWVzdC51cmwpOwotCi0gIC8vIEZvciB0aGUgQ1NTIGZpbGUsIHJlc3BvbmQgaW4g
YSB3YXkgdGhhdCBtYXkgY2hhbmdlIHRoZSByZXNwb25zZSBVUkwsCi0gIC8vIGRlcGVuZGluZyBv
biB8dXJsLnNlYXJjaHwuCi0gIGNvbnN0IGNzc1BhdGggPSAncmVxdWVzdC11cmwtcGF0aC9mZXRj
aC1yZXF1ZXN0LWNzcy1iYXNlLXVybC1zdHlsZS5jc3MnOwotICBpZiAodXJsLnBhdGhuYW1lLmlu
ZGV4T2YoY3NzUGF0aCkgIT0gLTEpIHsKLSAgICAvLyBSZXNwb25kIHdpdGggYSBkaWZmZXJlbnQg
VVJMLCBkZWxldGluZyAicmVxdWVzdC11cmwtcGF0aC8iLgotICAgIGlmICh1cmwuc2VhcmNoID09
ICc/ZmV0Y2gnKSB7Ci0gICAgICBldmVudC5yZXNwb25kV2l0aChmZXRjaCgnZmV0Y2gtcmVxdWVz
dC1jc3MtYmFzZS11cmwtc3R5bGUuY3NzJykpOwotICAgIH0KLSAgICAvLyBSZXNwb25kIHdpdGgg
bmV3IFJlc3BvbnNlKCkuCi0gICAgZWxzZSBpZiAodXJsLnNlYXJjaCA9PSAnP25ld1Jlc3BvbnNl
JykgewotICAgICAgY29uc3Qgc3R5bGVTdHJpbmcgPSAnYm9keSB7IGJhY2tncm91bmQtaW1hZ2U6
IHVybCgiLi9kdW1teS5wbmciKTt9JzsKLSAgICAgIGNvbnN0IGhlYWRlcnMgPSB7J2NvbnRlbnQt
dHlwZSc6ICd0ZXh0L2Nzcyd9OwotICAgICAgZXZlbnQucmVzcG9uZFdpdGgobmV3IFJlc3BvbnNl
KHN0eWxlU3RyaW5nLCBoZWFkZXJzKSk7Ci0gICAgfQorc2VsZi5vbm1lc3NhZ2UgPSBmdW5jdGlv
bihlKSB7CisgIHZhciBtZXNzYWdlID0gZS5kYXRhOworICBpZiAoJ3BvcnQnIGluIG1lc3NhZ2Up
IHsKKyAgICBwb3J0ID0gbWVzc2FnZS5wb3J0OworICAgIHBvcnQucG9zdE1lc3NhZ2Uoe3JlYWR5
OiB0cnVlfSk7CiAgIH0KK307CiAKLSAgLy8gVGhlIGltYWdlIHJlcXVlc3QgaW5kaWNhdGVzIHdo
YXQgdGhlIGJhc2UgVVJMIG9mIHRoZSBDU1Mgd2FzLiBNZXNzYWdlIHRoZQotICAvLyByZXN1bHQg
YmFjayB0byB0aGUgdGVzdCBwYWdlLgotICBlbHNlIGlmICh1cmwucGF0aG5hbWUuaW5kZXhPZign
ZHVtbXkucG5nJykgIT0gLTEpIHsKLSAgICAvLyBGb3Igc29tZSByZWFzb24gfHNvdXJjZXwgaXMg
dW5kZWZpbmVkIGhlcmUgd2hlbiBydW5uaW5nIHRoZSB0ZXN0IG1hbnVhbGx5Ci0gICAgLy8gaW4g
RmlyZWZveC4gVGhlIHRlc3QgYXV0aG9yIGV4cGVyaW1lbnRlZCB3aXRoIGJvdGggdXNpbmcgQ2xp
ZW50Ci0gICAgLy8gKGV2ZW50LnNvdXJjZSkgYW5kIE1lc3NhZ2VQb3J0IHRvIHRyeSB0byBnZXQg
dGhlIHRlc3QgdG8gcGFzcywgYnV0Ci0gICAgLy8gZmFpbGVkLgotICAgIHNvdXJjZS5wb3N0TWVz
c2FnZSh7Ci0gICAgICB1cmw6IGV2ZW50LnJlcXVlc3QudXJsLAotICAgICAgcmVmZXJyZXI6IGV2
ZW50LnJlcXVlc3QucmVmZXJyZXIKLSAgICB9KTsKLSAgICByZXNvbHZlRG9uZSgpOwotICB9Ci19
KTsKK3NlbGYuYWRkRXZlbnRMaXN0ZW5lcignZmV0Y2gnLCBmdW5jdGlvbihldmVudCkgeworICAg
IHZhciB1cmwgPSBldmVudC5yZXF1ZXN0LnVybDsKKyAgICBpZiAodXJsLmluZGV4T2YoJ2ZldGNo
LXJlcXVlc3QtY3NzLWJhc2UtdXJsLXN0eWxlLmNzcycpICE9IC0xKSB7CisgICAgICBldmVudC5y
ZXNwb25kV2l0aChmZXRjaCgKKyAgICAgICAgZ2V0X2hvc3RfaW5mbygpWydIVFRQU19SRU1PVEVf
T1JJR0lOJ10gKyBiYXNlX3BhdGgoKSArCisgICAgICAgICdmZXRjaC1yZXF1ZXN0LWNzcy1iYXNl
LXVybC1zdHlsZS5jc3MnLAorICAgICAgICB7bW9kZTogJ25vLWNvcnMnfSkpOworICAgIH0gZWxz
ZSBpZiAodXJsLmluZGV4T2YoJ2R1bW15LnBuZycpICE9IC0xKSB7CisgICAgICBwb3J0LnBvc3RN
ZXNzYWdlKHsKKyAgICAgICAgICB1cmw6IGV2ZW50LnJlcXVlc3QudXJsLAorICAgICAgICAgIHJl
ZmVycmVyOiBldmVudC5yZXF1ZXN0LnJlZmVycmVyCisgICAgICAgIH0pOworICAgIH0KKyAgfSk7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZ2V0LXJlc3VsdGluZ0Ns
aWVudElkLXdvcmtlci5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9nZXQtcmVzdWx0
aW5nQ2xpZW50SWQtd29ya2VyLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmMGU2
YzdiZWNhYjYxMjY0OTZmZWZhM2Y0MGE1ZTc4OGRjNjQ3NzViLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9n
ZXQtcmVzdWx0aW5nQ2xpZW50SWQtd29ya2VyLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTA3ICsw
LDAgQEAKLS8vIFRoaXMgd29ya2VyIGV4cGVjdHMgYSBmZXRjaCBldmVudCBmb3IgYSBuYXZpZ2F0
aW9uIGFuZCBtZXNzYWdlcyBiYWNrIHRoZQotLy8gcmVzdWx0IG9mIGNsaWVudHMuZ2V0KGV2ZW50
LnJlc3VsdGluZ0NsaWVudElkKS4KLQotLy8gUmVzb2x2ZXMgd2hlbiB0aGUgdGVzdCBmaW5pc2hl
cy4KLWxldCB0ZXN0RmluaXNoUHJvbWlzZTsKLWxldCByZXNvbHZlVGVzdEZpbmlzaFByb21pc2U7
Ci1sZXQgcmVqZWN0VGVzdEZpbmlzaFByb21pc2U7Ci0KLS8vIFJlc29sdmVzIHRvIGNsaWVudHMu
Z2V0KGV2ZW50LnJlc3VsdGluZ0NsaWVudElkKSBmcm9tIHRoZSBmZXRjaCBldmVudC4KLWxldCBn
ZXRQcm9taXNlOwotbGV0IHJlc29sdmVHZXRQcm9taXNlOwotbGV0IHJlamVjdEdldFByb21pc2U7
Ci0KLWxldCByZXN1bHRpbmdDbGllbnRJZDsKLQotZnVuY3Rpb24gc3RhcnRUZXN0KCkgewotICB0
ZXN0RmluaXNoUHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsKLSAg
ICByZXNvbHZlVGVzdEZpbmlzaFByb21pc2UgPSByZXNvbHZlOwotICAgIHJlamVjdFRlc3RGaW5p
c2hQcm9taXNlID0gcmVqZWN0OwotICB9KTsKLQotICBnZXRQcm9taXNlID0gbmV3IFByb21pc2Uo
KHJlc29sdmUsIHJlamVjdCkgPT4gewotICAgIHJlc29sdmVHZXRQcm9taXNlID0gcmVzb2x2ZTsK
LSAgICByZWplY3RHZXRQcm9taXNlID0gcmVqZWN0OwotICB9KTsKLX0KLQotYXN5bmMgZnVuY3Rp
b24gZGVzY3JpYmVHZXRQcm9taXNlUmVzdWx0KHByb21pc2UpIHsKLSAgY29uc3QgcmVzdWx0ID0g
e307Ci0KLSAgYXdhaXQgcHJvbWlzZS50aGVuKAotICAgIChjbGllbnQpID0+IHsKLSAgICAgIHJl
c3VsdC5wcm9taXNlU3RhdGUgPSAnZnVsZmlsbGVkJzsKLSAgICAgIGlmIChjbGllbnQgPT09IHVu
ZGVmaW5lZCkgewotICAgICAgICByZXN1bHQucHJvbWlzZVZhbHVlID0gJ3VuZGVmaW5lZFZhbHVl
JzsKLSAgICAgIH0gZWxzZSBpZiAoY2xpZW50IGluc3RhbmNlb2YgQ2xpZW50KSB7Ci0gICAgICAg
IHJlc3VsdC5wcm9taXNlVmFsdWUgPSAnY2xpZW50JzsKLSAgICAgICAgcmVzdWx0LmNsaWVudCA9
IHsKLSAgICAgICAgICBpZDogIGNsaWVudC5pZCwKLSAgICAgICAgICB1cmw6IGNsaWVudC51cmwK
LSAgICAgICAgfTsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIHJlc3VsdC5wcm9taXNlVmFsdWUg
PSAndW5rbm93bic7Ci0gICAgICB9Ci0gICAgfSwKLSAgICAoZXJyb3IpID0+IHsKLSAgICAgIHJl
c3VsdC5wcm9taXNlU3RhdGUgPSAncmVqZWN0ZWQnOwotICAgIH0pOwotCi0gIHJldHVybiByZXN1
bHQ7Ci19Ci0KLWFzeW5jIGZ1bmN0aW9uIGhhbmRsZUdldFJlc3VsdGluZ0NsaWVudChldmVudCkg
ewotICAvLyBOb3RlIHRoYXQgdGhpcyBtZXNzYWdlIGNhbiBhcnJpdmUgYmVmb3JlIHxyZXN1bHRp
bmdDbGllbnRJZHwgaXMgcG9wdWxhdGVkLgotICBjb25zdCByZXN1bHQgPSBhd2FpdCBkZXNjcmli
ZUdldFByb21pc2VSZXN1bHQoZ2V0UHJvbWlzZSk7Ci0gIC8vIHxyZXN1bHRpbmdDbGllbnRJZHwg
bXVzdCBiZSBwb3B1bGF0ZWQgYnkgbm93LgotICByZXN1bHQucXVlcmllZElkID0gcmVzdWx0aW5n
Q2xpZW50SWQ7Ci0gIGV2ZW50LnNvdXJjZS5wb3N0TWVzc2FnZShyZXN1bHQpOwotfTsKLQotYXN5
bmMgZnVuY3Rpb24gaGFuZGxlR2V0Q2xpZW50KGV2ZW50KSB7Ci0gIGNvbnN0IGlkID0gZXZlbnQu
ZGF0YS5pZDsKLSAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZGVzY3JpYmVHZXRQcm9taXNlUmVzdWx0
KHNlbGYuY2xpZW50cy5nZXQoaWQpKTsKLSAgcmVzdWx0LnF1ZXJpZWRJZCA9IGlkOwotICBldmVu
dC5zb3VyY2UucG9zdE1lc3NhZ2UocmVzdWx0KTsKLX07Ci0KLXNlbGYuYWRkRXZlbnRMaXN0ZW5l
cignbWVzc2FnZScsIChldmVudCkgPT4gewotICBpZiAoZXZlbnQuZGF0YS5jb21tYW5kID09ICdz
dGFydFRlc3QnKSB7Ci0gICAgc3RhcnRUZXN0KCk7Ci0gICAgZXZlbnQud2FpdFVudGlsKHRlc3RG
aW5pc2hQcm9taXNlKTsKLSAgICBldmVudC5zb3VyY2UucG9zdE1lc3NhZ2UoJ29rJyk7Ci0gICAg
cmV0dXJuOwotICB9Ci0KLSAgaWYgKGV2ZW50LmRhdGEuY29tbWFuZCA9PSAnZmluaXNoVGVzdCcp
IHsKLSAgICByZXNvbHZlVGVzdEZpbmlzaFByb21pc2UoKTsKLSAgICBldmVudC5zb3VyY2UucG9z
dE1lc3NhZ2UoJ29rJyk7Ci0gICAgcmV0dXJuOwotICB9Ci0KLSAgaWYgKGV2ZW50LmRhdGEuY29t
bWFuZCA9PSAnZ2V0UmVzdWx0aW5nQ2xpZW50JykgewotICAgIGV2ZW50LndhaXRVbnRpbChoYW5k
bGVHZXRSZXN1bHRpbmdDbGllbnQoZXZlbnQpKTsKLSAgICByZXR1cm47Ci0gIH0KLQotICBpZiAo
ZXZlbnQuZGF0YS5jb21tYW5kID09ICdnZXRDbGllbnQnKSB7Ci0gICAgZXZlbnQud2FpdFVudGls
KGhhbmRsZUdldENsaWVudChldmVudCkpOwotICAgIHJldHVybjsKLSAgfQotfSk7Ci0KLWFzeW5j
IGZ1bmN0aW9uIGhhbmRsZUZldGNoKGV2ZW50KSB7Ci0gIHRyeSB7Ci0gICAgcmVzdWx0aW5nQ2xp
ZW50SWQgPSBldmVudC5yZXN1bHRpbmdDbGllbnRJZDsKLSAgICBjb25zdCBjbGllbnQgPSBhd2Fp
dCBzZWxmLmNsaWVudHMuZ2V0KHJlc3VsdGluZ0NsaWVudElkKTsKLSAgICByZXNvbHZlR2V0UHJv
bWlzZShjbGllbnQpOwotICB9IGNhdGNoIChlcnJvcikgewotICAgIHJlamVjdEdldFByb21pc2Uo
ZXJyb3IpOwotICB9Ci19Ci0KLXNlbGYuYWRkRXZlbnRMaXN0ZW5lcignZmV0Y2gnLCAoZXZlbnQp
ID0+IHsKLSAgaWYgKGV2ZW50LnJlcXVlc3QubW9kZSAhPSAnbmF2aWdhdGUnKQotICAgIHJldHVy
bjsKLSAgZXZlbnQud2FpdFVudGlsKGhhbmRsZUZldGNoKGV2ZW50KSk7Ci19KTsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9pbXBvcnQtcmVsYXRpdmUueHNsIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ltcG9ydC1yZWxhdGl2ZS54c2wKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDA2M2E2MmQwMzE0M2EzMmY0NDM2NWJmMWU3YjA4ZDI4M2FlNTI4
OTUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvcmVzb3VyY2VzL2ltcG9ydC1yZWxhdGl2ZS54c2wKKysrIC9kZXYvbnVsbApA
QCAtMSw1ICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Ci0K
LTx4c2w6c3R5bGVzaGVldCB2ZXJzaW9uPSIxLjAiIHhtbG5zOnhzbD0iaHR0cDovL3d3dy53My5v
cmcvMTk5OS9YU0wvVHJhbnNmb3JtIj4KLSAgICA8eHNsOmltcG9ydCBocmVmPSJ4c2x0LXBhc3Mu
eHNsIi8+Ci08L3hzbDpzdHlsZXNoZWV0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
cmVzb3VyY2VzL2ltcG9ydC1zY3JpcHRzLWRpZmYtcmVzb3VyY2UtbWFwLXdvcmtlci5qcyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9pbXBvcnQtc2NyaXB0cy1kaWZmLXJlc291cmNlLW1h
cC13b3JrZXIuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBmZGNiMGZjZjgwYWQ3
ZjBkZmZhMjg0YzViNzcxNzhiZGFkOTVlZjYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ltcG9ydC1zY3Jp
cHRzLWRpZmYtcmVzb3VyY2UtbWFwLXdvcmtlci5qcworKysgL2Rldi9udWxsCkBAIC0xLDEwICsw
LDAgQEAKLWltcG9ydFNjcmlwdHMoJy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMnKTsKLQotbGV0
IGVjaG8xID0gbnVsbDsKLWxldCBlY2hvMiA9IG51bGw7Ci1sZXQgYXJnMSA9ICdpbXBvcnQtc2Ny
aXB0cy1nZXQucHk/b3V0cHV0PWVjaG8xJm1zZz10ZXN0MSc7Ci1sZXQgYXJnMiA9ICdpbXBvcnQt
c2NyaXB0cy1nZXQucHk/b3V0cHV0PWVjaG8yJm1zZz10ZXN0Mic7Ci0KLWltcG9ydFNjcmlwdHMo
YXJnMSwgYXJnMik7Ci1hc3NlcnRfZXF1YWxzKGVjaG8xLCAndGVzdDEnKTsKLWFzc2VydF9lcXVh
bHMoZWNobzIsICd0ZXN0MicpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3Vy
Y2VzL2ltcG9ydC1zY3JpcHRzLWdldC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9p
bXBvcnQtc2NyaXB0cy1nZXQucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDllMzc2
YmMwOTI4ODlmMWIyMzE2MjhlYzdjMTczMzk2NzRkMjg0ZjQuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2lt
cG9ydC1zY3JpcHRzLWdldC5weQorKysgL2Rldi9udWxsCkBAIC0xLDYgKzAsMCBAQAotZGVmIG1h
aW4ocmVxLCByZXMpOgotICAgIHJldHVybiAoWwotICAgICAgICAoJ0NhY2hlLUNvbnRyb2wnLCAn
bm8tY2FjaGUsIG11c3QtcmV2YWxpZGF0ZScpLAotICAgICAgICAoJ1ByYWdtYScsICduby1jYWNo
ZScpLAotICAgICAgICAoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qYXZhc2NyaXB0Jyld
LAotICAgICAgICAnJXMgPSAiJXMiO1xuJyAlIChyZXEuR0VUWydvdXRwdXQnXSwgcmVxLkdFVFsn
bXNnJ10pKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ltcG9ydC1z
Y3JpcHRzLW1pbWUtdHlwZXMtd29ya2VyLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2Vz
L2ltcG9ydC1zY3JpcHRzLW1pbWUtdHlwZXMtd29ya2VyLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAyYzU4NWFjMTA2MGE4OGM0ZjNlZWFjNmI2YTgxYmJiNGUwYzMwMjgwLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3Jlc291cmNlcy9pbXBvcnQtc2NyaXB0cy1taW1lLXR5cGVzLXdvcmtlci5qcworKysgL2Rl
di9udWxsCkBAIC0xLDQ5ICswLDAgQEAKLWNvbnN0IGJhZE1pbWVUeXBlcyA9IFsKLSAgbnVsbCwg
IC8vIG5vIE1JTUUgdHlwZQotICAndGV4dC9wbGFpbicsCi1dOwotCi1jb25zdCB2YWxpZE1pbWVU
eXBlcyA9IFsKLSAgJ2FwcGxpY2F0aW9uL2VjbWFzY3JpcHQnLAotICAnYXBwbGljYXRpb24vamF2
YXNjcmlwdCcsCi0gICdhcHBsaWNhdGlvbi94LWVjbWFzY3JpcHQnLAotICAnYXBwbGljYXRpb24v
eC1qYXZhc2NyaXB0JywKLSAgJ3RleHQvZWNtYXNjcmlwdCcsCi0gICd0ZXh0L2phdmFzY3JpcHQn
LAotICAndGV4dC9qYXZhc2NyaXB0MS4wJywKLSAgJ3RleHQvamF2YXNjcmlwdDEuMScsCi0gICd0
ZXh0L2phdmFzY3JpcHQxLjInLAotICAndGV4dC9qYXZhc2NyaXB0MS4zJywKLSAgJ3RleHQvamF2
YXNjcmlwdDEuNCcsCi0gICd0ZXh0L2phdmFzY3JpcHQxLjUnLAotICAndGV4dC9qc2NyaXB0JywK
LSAgJ3RleHQvbGl2ZXNjcmlwdCcsCi0gICd0ZXh0L3gtZWNtYXNjcmlwdCcsCi0gICd0ZXh0L3gt
amF2YXNjcmlwdCcsCi1dOwotCi1mdW5jdGlvbiBpbXBvcnRTY3JpcHRzV2l0aE1pbWVUeXBlKG1p
bWVUeXBlKSB7Ci0gIGltcG9ydFNjcmlwdHMoYC4vbWltZS10eXBlLXdvcmtlci5weSR7bWltZVR5
cGUgPyAnP21pbWU9JyArIG1pbWVUeXBlIDogJyd9YCk7Ci19Ci0KLWltcG9ydFNjcmlwdHMoJy9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMnKTsKLQotZm9yIChjb25zdCBtaW1lVHlwZSBvZiBiYWRN
aW1lVHlwZXMpIHsKLSAgdGVzdCgoKSA9PiB7Ci0gICAgYXNzZXJ0X3Rocm93cygKLSAgICAgICdO
ZXR3b3JrRXJyb3InLAotICAgICAgKCkgPT4geyBpbXBvcnRTY3JpcHRzV2l0aE1pbWVUeXBlKG1p
bWVUeXBlKTsgfSwKLSAgICAgIGBpbXBvcnRTY3JpcHRzIHdpdGggJHttaW1lVHlwZSA/ICdiYWQn
IDogJ25vJ30gTUlNRSB0eXBlICR7bWltZVR5cGUgfHwgJyd9IHRocm93cyBOZXR3b3JrRXJyb3Jg
LAotICAgICk7Ci0gIH0sIGBJbXBvcnRpbmcgc2NyaXB0IHdpdGggJHttaW1lVHlwZSA/ICdiYWQn
IDogJ25vJ30gTUlNRSB0eXBlICR7bWltZVR5cGUgfHwgJyd9YCk7Ci19Ci0KLWZvciAoY29uc3Qg
bWltZVR5cGUgb2YgdmFsaWRNaW1lVHlwZXMpIHsKLSAgdGVzdCgoKSA9PiB7Ci0gICAgdHJ5IHsK
LSAgICAgIGltcG9ydFNjcmlwdHNXaXRoTWltZVR5cGUobWltZVR5cGUpOwotICAgIH0gY2F0Y2gg
ewotICAgICAgYXNzZXJ0X3VucmVhY2hlZChgaW1wb3J0U2NyaXB0cyB3aXRoIE1JTUUgdHlwZSAk
e21pbWVUeXBlfSBzaG91bGQgbm90IHRocm93YCk7Ci0gICAgfQotICB9LCBgSW1wb3J0aW5nIHNj
cmlwdCB3aXRoIHZhbGlkIEphdmFTY3JpcHQgTUlNRSB0eXBlICR7bWltZVR5cGV9YCk7Ci19CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvaW1wb3J0ZWQtY2xhc3NpYy1z
Y3JpcHQuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvaW1wb3J0ZWQtY2xhc3NpYy1z
Y3JpcHQuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVmYzUyMDQwNTEzNWUyMTUy
OTBlYmZlZTAwOGY5ZjcxOTYwOTU1YTguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ltcG9ydGVkLWNsYXNz
aWMtc2NyaXB0LmpzCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotY29uc3QgaW1wb3J0ZWQg
PSAnQSBjbGFzc2ljIHNjcmlwdC4nOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVz
b3VyY2VzL2ltcG9ydGVkLW1vZHVsZS1zY3JpcHQuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNv
dXJjZXMvaW1wb3J0ZWQtbW9kdWxlLXNjcmlwdC5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggNTZkMTk2ZGYwNDBmOWFkYjk5OWM5NDQzMjllNmYxNTY5YWM4NzZmZC4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9y
ZXNvdXJjZXMvaW1wb3J0ZWQtbW9kdWxlLXNjcmlwdC5qcworKysgL2Rldi9udWxsCkBAIC0xICsw
LDAgQEAKLWV4cG9ydCBjb25zdCBpbXBvcnRlZCA9ICdBIG1vZHVsZSBzY3JpcHQuJzsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9tZXNzYWdlLXZzLW1pY3JvdGFzay5o
dG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL21lc3NhZ2UtdnMtbWljcm90YXNrLmh0
bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJjNDVjNTlhNDc1YWU5YjJlNmJjMTY4
ZGM3NWIzMWVhYjlkMjMxZjQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL21lc3NhZ2UtdnMtbWljcm90YXNr
Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxOCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxz
Y3JpcHQ+Ci0gIGxldCBkcmFmdCA9IFtdOwotICB2YXIgcmVzb2x2ZV9tYW51YWxfcHJvbWlzZTsK
LSAgbGV0IG1hbnVhbF9wcm9taXNlID0KLSAgICBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHJlc29s
dmVfbWFudWFsX3Byb21pc2UgPSByZXNvbHZlKS50aGVuKCgpID0+IGRyYWZ0LnB1c2goJ21pY3Jv
dGFzaycpKTsKLQotICBsZXQgcmVzb2x2ZV9tZXNzYWdlX3Byb21pc2U7Ci0gIGxldCBtZXNzYWdl
X3Byb21pc2UgPSBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHJlc29sdmVfbWVzc2FnZV9wcm9taXNl
ID0gcmVzb2x2ZSk7Ci0gIGZ1bmN0aW9uIGhhbmRsZV9tZXNzYWdlKGV2ZW50KSB7Ci0gICAgZHJh
ZnQucHVzaCgnbWVzc2FnZScpOwotICAgIHJlc29sdmVfbWVzc2FnZV9wcm9taXNlKCk7Ci0gIH0K
LQotICB2YXIgcmVzdWx0ID0gUHJvbWlzZS5hbGwoW21hbnVhbF9wcm9taXNlLCBtZXNzYWdlX3By
b21pc2VdKS50aGVuKCgpID0+IGRyYWZ0KTsKLTwvc2NyaXB0PgotCi08c2NyaXB0IHNyYz0iZW1w
dHkuanM/a2V5PXN0YXJ0Ij48L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L3Jlc291cmNlcy9tb2R1bGUtd29ya2VyLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2Vz
L21vZHVsZS13b3JrZXIuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM4NWZlNzEw
MTUwM2NiNGM3Y2E3N2U5NWUwMjM0NTliMjkyNjc3NDEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL21vZHVs
ZS13b3JrZXIuanMKKysrIC9kZXYvbnVsbApAQCAtMSArMCwwIEBACi1pbXBvcnQgKiBhcyBtb2R1
bGUgZnJvbSAnLi9pbXBvcnRlZC1tb2R1bGUtc2NyaXB0LmpzJzsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL3Jlc291cmNlcy9uYXZpZ2F0aW9uLXJlZGlyZWN0LW90aGVyLW9yaWdpbi5o
dG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL25hdmlnYXRpb24tcmVkaXJlY3Qtb3Ro
ZXItb3JpZ2luLmh0bWwKaW5kZXggZDgyNTcxZDFhM2M3MWUyMzI3NDAwOWQxNDdlNDEwYjEwZmU4
ZDI0NS4uYTk0ODNjNjUzNDU3OWFjMmYzNTQ5ZDc5Yzc0ODhmZWVmMTFhNWM2OSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL25hdmlnYXRpb24tcmVkaXJlY3Qtb3RoZXIt
b3JpZ2luLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL25hdmlnYXRpb24t
cmVkaXJlY3Qtb3RoZXItb3JpZ2luLmh0bWwKQEAgLTMzLDI4ICszMywxMSBAQCBmdW5jdGlvbiBz
ZW5kX3Jlc3VsdChtZXNzYWdlX2lkLCByZXN1bHQpIHsKICAgICAgIGhvc3RfaW5mb1snSFRUUFNf
T1JJR0lOJ10pOwogfQogCi1mdW5jdGlvbiBnZXRfcmVxdWVzdF9pbmZvcyh3b3JrZXIpIHsKLSAg
cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUpIHsKLSAgICB2YXIgY2hhbm5lbCA9
IG5ldyBNZXNzYWdlQ2hhbm5lbCgpOwotICAgIGNoYW5uZWwucG9ydDEub25tZXNzYWdlID0gKG1z
ZykgPT4gewotICAgICAgcmVzb2x2ZShtc2cuZGF0YS5yZXF1ZXN0SW5mb3MpOwotICAgIH07Ci0g
ICAgd29ya2VyLnBvc3RNZXNzYWdlKHtjb21tYW5kOiAnZ2V0UmVxdWVzdEluZm9zJywgcG9ydDog
Y2hhbm5lbC5wb3J0Mn0sCi0gICAgICAgICAgICAgICAgICAgICAgIFtjaGFubmVsLnBvcnQyXSk7
Ci0gIH0pOwotfQotCi1mdW5jdGlvbiBnZXRfY2xpZW50cyh3b3JrZXIsIGFjdHVhbF9pZHMpIHsK
K2Z1bmN0aW9uIGdldF9pbnRlcmNlcHRlZF91cmxzKHdvcmtlcikgewogICByZXR1cm4gbmV3IFBy
b21pc2UoZnVuY3Rpb24ocmVzb2x2ZSkgewogICAgICAgdmFyIGNoYW5uZWwgPSBuZXcgTWVzc2Fn
ZUNoYW5uZWwoKTsKLSAgICAgIGNoYW5uZWwucG9ydDEub25tZXNzYWdlID0gKG1zZykgPT4gewot
ICAgICAgICByZXNvbHZlKG1zZy5kYXRhLmNsaWVudHMpOwotICAgICAgfTsKLSAgICAgIHdvcmtl
ci5wb3N0TWVzc2FnZSh7Ci0gICAgICAgIGNvbW1hbmQ6ICdnZXRDbGllbnRzJywKLSAgICAgICAg
YWN0dWFsX2lkcywKLSAgICAgICAgcG9ydDogY2hhbm5lbC5wb3J0MgotICAgICAgfSwgW2NoYW5u
ZWwucG9ydDJdKTsKKyAgICAgIGNoYW5uZWwucG9ydDEub25tZXNzYWdlID0gZnVuY3Rpb24obXNn
KSB7IHJlc29sdmUobXNnLmRhdGEudXJscyk7IH07CisgICAgICB3b3JrZXIucG9zdE1lc3NhZ2Uo
e3BvcnQ6IGNoYW5uZWwucG9ydDJ9LCBbY2hhbm5lbC5wb3J0Ml0pOwogICAgIH0pOwogfQogCkBA
IC02NSwyMCArNDgsMTQgQEAgZnVuY3Rpb24gb25fbWVzc2FnZShlKSB7CiAgICAgY29uc29sZS5l
cnJvcignaW52YWxpZCBvcmlnaW46ICcgKyBlLm9yaWdpbik7CiAgICAgcmV0dXJuOwogICB9Ci0g
IGNvbnN0IGNvbW1hbmQgPSBlLmRhdGEubWVzc2FnZS5jb21tYW5kOwotICBpZiAoY29tbWFuZCA9
PSAnd2FpdF9mb3Jfd29ya2VyJykgeworICBpZiAoZS5kYXRhLm1lc3NhZ2UgPT0gJ3dhaXRfZm9y
X3dvcmtlcicpIHsKICAgICB3YWl0X2Zvcl93b3JrZXJfcHJvbWlzZS50aGVuKGZ1bmN0aW9uKCkg
eyBzZW5kX3Jlc3VsdChlLmRhdGEuaWQsICdvaycpOyB9KTsKLSAgfSBlbHNlIGlmIChjb21tYW5k
ID09ICdnZXRfcmVxdWVzdF9pbmZvcycpIHsKLSAgICBnZXRfcmVxdWVzdF9pbmZvcyh3b3JrZXIp
Ci0gICAgICAudGhlbihmdW5jdGlvbihkYXRhKSB7Ci0gICAgICAgICAgc2VuZF9yZXN1bHQoZS5k
YXRhLmlkLCBkYXRhKTsKLSAgICAgICAgfSk7Ci0gIH0gZWxzZSBpZiAoY29tbWFuZCA9PSAnZ2V0
X2NsaWVudHMnKSB7Ci0gICAgZ2V0X2NsaWVudHMod29ya2VyLCBlLmRhdGEubWVzc2FnZS5hY3R1
YWxfaWRzKQotICAgICAgLnRoZW4oZnVuY3Rpb24oZGF0YSkgewotICAgICAgICAgIHNlbmRfcmVz
dWx0KGUuZGF0YS5pZCwgZGF0YSk7CisgIH0gZWxzZSBpZiAoZS5kYXRhLm1lc3NhZ2UgPT0gJ2dl
dF9pbnRlcmNlcHRlZF91cmxzJykgeworICAgIGdldF9pbnRlcmNlcHRlZF91cmxzKHdvcmtlcikK
KyAgICAgIC50aGVuKGZ1bmN0aW9uKHVybHMpIHsKKyAgICAgICAgICBzZW5kX3Jlc3VsdChlLmRh
dGEuaWQsIHVybHMpOwogICAgICAgICB9KTsKLSAgfSBlbHNlIGlmIChjb21tYW5kID09ICd1bnJl
Z2lzdGVyJykgeworICB9IGVsc2UgaWYgKGUuZGF0YS5tZXNzYWdlID09ICd1bnJlZ2lzdGVyJykg
ewogICAgIHJlZ2lzdHJhdGlvbi51bnJlZ2lzdGVyKCkKICAgICAgIC50aGVuKGZ1bmN0aW9uKCkg
ewogICAgICAgICAgIHNlbmRfcmVzdWx0KGUuZGF0YS5pZCwgJ29rJyk7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvbmF2aWdhdGlvbi1yZWRpcmVjdC1vdXQtc2NvcGUu
cHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvbmF2aWdhdGlvbi1yZWRpcmVjdC1vdXQt
c2NvcGUucHkKaW5kZXggMTY4NTA3MjNmOTY4ZmQzZmFjNTFhMzNjNmU5ODNjNGYwMTNhODgyMy4u
OTA3Y2VmYTNiMWFmYTk2YTU1ZDU0OTM1YWQ4MzU3YjIzMjExOGY5YiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvcmVzb3VyY2VzL25hdmlnYXRpb24tcmVkaXJlY3Qtb3V0LXNjb3BlLnB5
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9uYXZpZ2F0aW9uLXJlZGlyZWN0LW91
dC1zY29wZS5weQpAQCAtMTEsMTIgKzExLDEwIEBAIGRlZiBtYWluKHJlcXVlc3QsIHJlc3BvbnNl
KToKICAgICByZXR1cm4gc3RhdHVzLCBbKCJjb250ZW50LXR5cGUiLCAidGV4dC9odG1sIildLCAn
JycKIDwhRE9DVFlQRSBodG1sPgogPHNjcmlwdD4KLW9ubWVzc2FnZSA9IGV2ZW50ID0+IHsKICAg
d2luZG93LnBhcmVudC5wb3N0TWVzc2FnZSgKICAgICAgIHsKLSAgICAgICAgaWQ6IGV2ZW50LmRh
dGEuaWQsCisgICAgICAgIGlkOiAnbGFzdF91cmwnLAogICAgICAgICByZXN1bHQ6IGxvY2F0aW9u
LmhyZWYKICAgICAgIH0sICcqJyk7Ci19OwogPC9zY3JpcHQ+CiAnJycKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9uYXZpZ2F0aW9uLXJlZGlyZWN0LXNjb3BlMS5weSBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9uYXZpZ2F0aW9uLXJlZGlyZWN0LXNjb3BlMS5w
eQppbmRleCAxNjg1MDcyM2Y5NjhmZDNmYWM1MWEzM2M2ZTk4M2M0ZjAxM2E4ODIzLi45MDdjZWZh
M2IxYWZhOTZhNTVkNTQ5MzVhZDgzNTdiMjMyMTE4ZjliIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9yZXNvdXJjZXMvbmF2aWdhdGlvbi1yZWRpcmVjdC1zY29wZTEucHkKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvcmVzb3VyY2VzL25hdmlnYXRpb24tcmVkaXJlY3Qtc2NvcGUxLnB5CkBA
IC0xMSwxMiArMTEsMTAgQEAgZGVmIG1haW4ocmVxdWVzdCwgcmVzcG9uc2UpOgogICAgIHJldHVy
biBzdGF0dXMsIFsoImNvbnRlbnQtdHlwZSIsICJ0ZXh0L2h0bWwiKV0sICcnJwogPCFET0NUWVBF
IGh0bWw+CiA8c2NyaXB0Pgotb25tZXNzYWdlID0gZXZlbnQgPT4gewogICB3aW5kb3cucGFyZW50
LnBvc3RNZXNzYWdlKAogICAgICAgewotICAgICAgICBpZDogZXZlbnQuZGF0YS5pZCwKKyAgICAg
ICAgaWQ6ICdsYXN0X3VybCcsCiAgICAgICAgIHJlc3VsdDogbG9jYXRpb24uaHJlZgogICAgICAg
fSwgJyonKTsKLX07CiA8L3NjcmlwdD4KICcnJwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvcmVzb3VyY2VzL25hdmlnYXRpb24tcmVkaXJlY3Qtc2NvcGUyLnB5IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvcmVzb3VyY2VzL25hdmlnYXRpb24tcmVkaXJlY3Qtc2NvcGUyLnB5CmluZGV4IDE2ODUw
NzIzZjk2OGZkM2ZhYzUxYTMzYzZlOTgzYzRmMDEzYTg4MjMuLjkwN2NlZmEzYjFhZmE5NmE1NWQ1
NDkzNWFkODM1N2IyMzIxMThmOWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291
cmNlcy9uYXZpZ2F0aW9uLXJlZGlyZWN0LXNjb3BlMi5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9yZXNvdXJjZXMvbmF2aWdhdGlvbi1yZWRpcmVjdC1zY29wZTIucHkKQEAgLTExLDEyICsxMSwx
MCBAQCBkZWYgbWFpbihyZXF1ZXN0LCByZXNwb25zZSk6CiAgICAgcmV0dXJuIHN0YXR1cywgWygi
Y29udGVudC10eXBlIiwgInRleHQvaHRtbCIpXSwgJycnCiA8IURPQ1RZUEUgaHRtbD4KIDxzY3Jp
cHQ+Ci1vbm1lc3NhZ2UgPSBldmVudCA9PiB7CiAgIHdpbmRvdy5wYXJlbnQucG9zdE1lc3NhZ2Uo
CiAgICAgICB7Ci0gICAgICAgIGlkOiBldmVudC5kYXRhLmlkLAorICAgICAgICBpZDogJ2xhc3Rf
dXJsJywKICAgICAgICAgcmVzdWx0OiBsb2NhdGlvbi5ocmVmCiAgICAgICB9LCAnKicpOwotfTsK
IDwvc2NyaXB0PgogJycnCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMv
bmVzdGVkLWlmcmFtZS1wYXJlbnQuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9u
ZXN0ZWQtaWZyYW1lLXBhcmVudC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAx
MTVhYjI2ZTEyMjEwMjRiMzAzMTM1NjlmNDg0OTQyYjEwZjZkYmEwLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNl
cy9uZXN0ZWQtaWZyYW1lLXBhcmVudC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNSArMCwwIEBA
Ci08IURPQ1RZUEUgaHRtbD4KLTxzY3JpcHQ+Ci0gIG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLm9u
bWVzc2FnZSA9IGV2ZW50ID0+IHBhcmVudC5wb3N0TWVzc2FnZShldmVudC5kYXRhLCAnKicsIGV2
ZW50LnBvcnRzKTsKLTwvc2NyaXB0PgotPGlmcmFtZSBpZD0nY2hpbGQnPjwvaWZyYW1lPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3BlcmZvcm1hbmNlLXRpbWVsaW5l
LXdvcmtlci5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9wZXJmb3JtYW5jZS10aW1l
bGluZS13b3JrZXIuanMKaW5kZXggY2FjMzI3YzM0YmY5ZGYxODQ5MTNjNTYxYjU4NGIwMzhmMzUw
NGM5NC4uYTc1MmI0MzY1MjRlNjI4OTU5ZTM1YzlkZTczZTE1Y2NjN2RkNzgzZiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3BlcmZvcm1hbmNlLXRpbWVsaW5lLXdvcmtl
ci5qcworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvcGVyZm9ybWFuY2UtdGltZWxp
bmUtd29ya2VyLmpzCkBAIC00NCwxMyArNDQsMTkgQEAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHRl
c3QpIHsKICAgICAgICAgICAgICAgYXNzZXJ0X2dyZWF0ZXJfdGhhbihlbnRyeS5zdGFydFRpbWUs
IDApOwogICAgICAgICAgICAgICBhc3NlcnRfZ3JlYXRlcl90aGFuKGVudHJ5LnJlc3BvbnNlRW5k
LCBlbnRyeS5zdGFydFRpbWUpOwogICAgICAgICAgIH0KLSAgICAgICAgICByZXR1cm4gbmV3IFBy
b21pc2UoZnVuY3Rpb24ocmVzb2x2ZSkgeworICAgICAgICAgIHJldHVybiBQcm9taXNlLnJhY2Uo
WworICAgICAgICAgICAgbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSkgewogICAgICAgICAg
ICAgICBwZXJmb3JtYW5jZS5vbnJlc291cmNldGltaW5nYnVmZmVyZnVsbCA9IF8gPT4gewogICAg
ICAgICAgICAgICAgIHJlc29sdmUoJ2J1ZmZlcmZ1bGwnKTsKICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgICBwZXJmb3JtYW5jZS5zZXRSZXNvdXJjZVRpbWluZ0J1ZmZlclNpemUoZXhwZWN0
ZWRSZXNvdXJjZXMubGVuZ3RoKTsKLSAgICAgICAgICAgICAgZmV0Y2goJ2R1bW15LnR4dCcpOwot
ICAgICAgICAgIH0pOworICAgICAgICAgICAgfSksCisKKyAgICAgICAgICAgIC8vIFJhY2UgdGhl
IGJ1ZmZlcmZ1bGwgZXZlbnQgYWdhaW5zdCBhbm90aGVyIGZldGNoLiAgV2Ugc2hvdWxkIGdldCB0
aGUKKyAgICAgICAgICAgIC8vIGV2ZW50IGJlZm9yZSB0aGlzIGNvbXBsZXRlcy4gIFRoaXMgYWxs
b3dzIHVzIHRvIGRldGVjdCBhIGZhaWx1cmUKKyAgICAgICAgICAgIC8vIHRvIGRpc3BhdGNoIHRo
ZSBldmVudCB3aXRob3V0IHRpbWluZyBvdXQgdGhlIGVudGlyZSB0ZXN0LgorICAgICAgICAgICAg
ZmV0Y2goJ2R1bW15LnR4dCcpLnRoZW4ocmVzcCA9PiByZXNwLnRleHQoKSkKKyAgICAgICAgICBd
KTsKICAgICAgICAgfSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewogICAgICAgICAg
IGFzc2VydF9lcXVhbHMocmVzdWx0LCAnYnVmZmVyZnVsbCcpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvcmVzb3VyY2VzL3Bvc3RtZXNzYWdlLWVjaG8td29ya2VyLmpzIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvcmVzb3VyY2VzL3Bvc3RtZXNzYWdlLWVjaG8td29ya2VyLmpzCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmMDg4YWQxMjc4MDQyOTdjZjk4MWU2MWFjYjFjMzNlYTdi
MDYyMGM0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9wb3N0bWVzc2FnZS1lY2hvLXdvcmtlci5qcworKysg
L2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotc2VsZi5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdl
JywgZXZlbnQgPT4gewotICBldmVudC5zb3VyY2UucG9zdE1lc3NhZ2UoZXZlbnQuZGF0YSk7Ci19
KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9yZWRpcmVjdC13b3Jr
ZXIuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvcmVkaXJlY3Qtd29ya2VyLmpzCmlu
ZGV4IGRkY2MyY2Y1NDc4OTQyMjkyZGM4YzVlMzBkMTU2ZGM0Mjg4NjM2NWUuLjdlNWVhZDE5NDE5
ZTJjOWJkZjZiZjIyM2VjODRlNjkyZTU3YzhmZTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3Jlc291cmNlcy9yZWRpcmVjdC13b3JrZXIuanMKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
cmVzb3VyY2VzL3JlZGlyZWN0LXdvcmtlci5qcwpAQCAtNSw4MCArNSwyMCBAQCB2YXIgY2FjaGVO
YW1lID0gJ3VybHMtJyArIHNlbGYucmVnaXN0cmF0aW9uLnNjb3BlOwogCiB2YXIgd2FpdFVudGls
UHJvbWlzZUxpc3QgPSBbXTsKIAotLy8gU2VuZHMgdGhlIHJlcXVlc3RzIHNlZW4gYnkgdGhpcyB3
b3JrZXIuIFRoZSBvdXRwdXQgaXM6Ci0vLyB7Ci0vLyAgIHJlcXVlc3RJbmZvczogWwotLy8gICAg
IHt1cmw6IHVybDEsIHJlc3VsdGluZ0NsaWVudElkOiBpZDF9LAotLy8gICAgIHt1cmw6IHVybDIs
IHJlc3VsdGluZ0NsaWVudElkOiBpZDJ9LAotLy8gICBdCi0vLyB9Ci1hc3luYyBmdW5jdGlvbiBn
ZXRSZXF1ZXN0SW5mb3MoZXZlbnQpIHsKLSAgLy8gV2FpdCBmb3IgZmV0Y2ggZXZlbnRzIHRvIGZp
bmlzaC4KLSAgYXdhaXQgUHJvbWlzZS5hbGwod2FpdFVudGlsUHJvbWlzZUxpc3QpOwotICB3YWl0
VW50aWxQcm9taXNlTGlzdCA9IFtdOwotCi0gIC8vIEdlbmVyYXRlIHRoZSBtZXNzYWdlLgotICBj
b25zdCBjYWNoZSA9IGF3YWl0IGNhY2hlcy5vcGVuKGNhY2hlTmFtZSk7Ci0gIGNvbnN0IHJlcXVl
c3RMaXN0ID0gYXdhaXQgY2FjaGUua2V5cygpOwotICBjb25zdCByZXF1ZXN0SW5mb3MgPSBbXTsK
LSAgZm9yIChsZXQgaSA9IDA7IGkgPCByZXF1ZXN0TGlzdC5sZW5ndGg7IGkrKykgewotICAgIGNv
bnN0IHJlc3BvbnNlID0gYXdhaXQgY2FjaGUubWF0Y2gocmVxdWVzdExpc3RbaV0pOwotICAgIGNv
bnN0IGJvZHkgPSBhd2FpdCByZXNwb25zZS5qc29uKCk7Ci0gICAgcmVxdWVzdEluZm9zW2ldID0g
ewotICAgICAgdXJsOiByZXF1ZXN0TGlzdFtpXS51cmwsCi0gICAgICByZXN1bHRpbmdDbGllbnRJ
ZDogYm9keS5yZXN1bHRpbmdDbGllbnRJZAotICAgIH07Ci0gIH0KLSAgYXdhaXQgY2FjaGVzLmRl
bGV0ZShjYWNoZU5hbWUpOwotCi0gIGV2ZW50LmRhdGEucG9ydC5wb3N0TWVzc2FnZSh7cmVxdWVz
dEluZm9zfSk7Ci19Ci0KLS8vIFNlbmRzIHRoZSByZXN1bHRzIG9mIGNsaWVudHMuZ2V0KGlkKSBm
cm9tIHRoaXMgd29ya2VyLiBUaGUKLS8vIGlucHV0IGlzOgotLy8gewotLy8gICBhY3R1YWxfaWRz
OiB7YTogaWQxLCBiOiBpZDIsIHg6IGlkM30KLS8vIH0KLS8vCi0vLyBUaGUgb3V0cHV0IGlzOgot
Ly8gewotLy8gICBjbGllbnRzOiB7Ci0vLyAgICAgYToge2ZvdW5kOiBmYWxzZX0sCi0vLyAgICAg
Yjoge2ZvdW5kOiBmYWxzZX0sCi0vLyAgICAgeDogewotLy8gICAgICAgaWQ6IGlkMywKLS8vICAg
ICAgIHVybDogdXJsMSwKLS8vICAgICAgIGZvdW5kOiB0cnVlCi0vLyAgICB9Ci0vLyAgIH0KLS8v
IH0KLWFzeW5jIGZ1bmN0aW9uIGdldENsaWVudHMoZXZlbnQpIHsKLSAgLy8gfGFjdHVhbF9pZHN8
IGlzIGxpa2U6Ci0gIC8vIHthOiBpZDEsIGI6IGlkMiwgeDogaWQzfQotICBjb25zdCBhY3R1YWxf
aWRzID0gZXZlbnQuZGF0YS5hY3R1YWxfaWRzOwotICBjb25zdCByZXN1bHQgPSB7fQotICBmb3Ig
KGxldCBrZXkgb2YgT2JqZWN0LmtleXMoYWN0dWFsX2lkcykpIHsKLSAgICBjb25zdCBpZCA9IGFj
dHVhbF9pZHNba2V5XTsKLSAgICBjb25zdCBjbGllbnQgPSBhd2FpdCBzZWxmLmNsaWVudHMuZ2V0
KGlkKTsKLSAgICBpZiAoY2xpZW50ID09PSB1bmRlZmluZWQpCi0gICAgICByZXN1bHRba2V5XSA9
IHtmb3VuZDogZmFsc2V9OwotICAgIGVsc2UKLSAgICAgIHJlc3VsdFtrZXldID0ge2ZvdW5kOiB0
cnVlLCB1cmw6IGNsaWVudC51cmwsIGlkOiBjbGllbnQuaWR9OwotICB9Ci0gIGV2ZW50LmRhdGEu
cG9ydC5wb3N0TWVzc2FnZSh7Y2xpZW50czogcmVzdWx0fSk7Ci19Ci0KLXNlbGYuYWRkRXZlbnRM
aXN0ZW5lcignbWVzc2FnZScsIGFzeW5jIGZ1bmN0aW9uKGV2ZW50KSB7Ci0gIGlmIChldmVudC5k
YXRhLmNvbW1hbmQgPT0gJ2dldFJlcXVlc3RJbmZvcycpIHsKLSAgICBldmVudC53YWl0VW50aWwo
Z2V0UmVxdWVzdEluZm9zKGV2ZW50KSk7Ci0gICAgcmV0dXJuOwotICB9Ci0KLSAgaWYgKGV2ZW50
LmRhdGEuY29tbWFuZCA9PSAnZ2V0Q2xpZW50cycpIHsKLSAgICBldmVudC53YWl0VW50aWwoZ2V0
Q2xpZW50cyhldmVudCkpOwotICAgIHJldHVybjsKLSAgfQotfSk7CitzZWxmLmFkZEV2ZW50TGlz
dGVuZXIoJ21lc3NhZ2UnLCBmdW5jdGlvbihldmVudCkgeworICAgIHZhciB1cmxzOworICAgIGV2
ZW50LndhaXRVbnRpbChQcm9taXNlLmFsbCh3YWl0VW50aWxQcm9taXNlTGlzdCkudGhlbihmdW5j
dGlvbigpIHsKKyAgICAgIHdhaXRVbnRpbFByb21pc2VMaXN0ID0gW107CisgICAgICByZXR1cm4g
Y2FjaGVzLm9wZW4oY2FjaGVOYW1lKTsKKyAgICB9KS50aGVuKGZ1bmN0aW9uKGNhY2hlKSB7Cisg
ICAgICByZXR1cm4gY2FjaGUua2V5cygpOworICAgIH0pLnRoZW4oZnVuY3Rpb24ocmVxdWVzdExp
c3QpIHsKKyAgICAgIHVybHMgPSByZXF1ZXN0TGlzdC5tYXAoZnVuY3Rpb24ocmVxdWVzdCkgeyBy
ZXR1cm4gcmVxdWVzdC51cmw7IH0pOworICAgICAgcmV0dXJuIGNhY2hlcy5kZWxldGUoY2FjaGVO
YW1lKTsKKyAgICB9KS50aGVuKGZ1bmN0aW9uKCkgeworICAgICAgZXZlbnQuZGF0YS5wb3J0LnBv
c3RNZXNzYWdlKHt1cmxzOiB1cmxzfSk7CisgICAgfSkpOworICB9KTsKIAogZnVuY3Rpb24gZ2V0
X3F1ZXJ5X3BhcmFtcyh1cmwpIHsKICAgdmFyIHNlYXJjaCA9IChuZXcgVVJMKHVybCkpLnNlYXJj
aDsKQEAgLTk2LDExICszNiw3IEBAIGZ1bmN0aW9uIGdldF9xdWVyeV9wYXJhbXModXJsKSB7CiAK
IHNlbGYuYWRkRXZlbnRMaXN0ZW5lcignZmV0Y2gnLCBmdW5jdGlvbihldmVudCkgewogICAgIHZh
ciB3YWl0VW50aWxQcm9taXNlID0gY2FjaGVzLm9wZW4oY2FjaGVOYW1lKS50aGVuKGZ1bmN0aW9u
KGNhY2hlKSB7Ci0gICAgICBjb25zdCByZXNwb25zZUJvZHkgPSB7fTsKLSAgICAgIHJlc3BvbnNl
Qm9keVsncmVzdWx0aW5nQ2xpZW50SWQnXSA9IGV2ZW50LnJlc3VsdGluZ0NsaWVudElkOwotICAg
ICAgY29uc3QgaGVhZGVycyA9IG5ldyBIZWFkZXJzKHsnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0
aW9uL2pzb24nfSk7Ci0gICAgICBjb25zdCByZXNwb25zZSA9IG5ldyBSZXNwb25zZShKU09OLnN0
cmluZ2lmeShyZXNwb25zZUJvZHkpLCB7aGVhZGVyc30pOwotICAgICAgcmV0dXJuIGNhY2hlLnB1
dChldmVudC5yZXF1ZXN0LCByZXNwb25zZSk7CisgICAgICByZXR1cm4gY2FjaGUucHV0KGV2ZW50
LnJlcXVlc3QsIG5ldyBSZXNwb25zZSgpKTsKICAgICB9KTsKICAgICBldmVudC53YWl0VW50aWwo
d2FpdFVudGlsUHJvbWlzZSk7CiAKQEAgLTExNCwyNSArNTAsMjggQEAgc2VsZi5hZGRFdmVudExp
c3RlbmVyKCdmZXRjaCcsIGZ1bmN0aW9uKGV2ZW50KSB7CiAgICAgICByZXR1cm47CiAgICAgfQog
Ci0gICAgZXZlbnQucmVzcG9uZFdpdGgod2FpdFVudGlsUHJvbWlzZS50aGVuKGFzeW5jICgpID0+
IHsKKyAgICBldmVudC5yZXNwb25kV2l0aCh3YWl0VW50aWxQcm9taXNlLnRoZW4oZnVuY3Rpb24o
KSB7CiAgICAgICBpZiAocGFyYW1zWydzdyddID09ICdnZW4nKSB7CiAgICAgICAgIHJldHVybiBS
ZXNwb25zZS5yZWRpcmVjdChwYXJhbXNbJ3VybCddKTsKICAgICAgIH0gZWxzZSBpZiAocGFyYW1z
WydzdyddID09ICdmZXRjaCcpIHsKICAgICAgICAgcmV0dXJuIGZldGNoKGV2ZW50LnJlcXVlc3Qp
OwotICAgICAgfSBlbHNlIGlmIChwYXJhbXNbJ3N3J10gPT0gJ2ZldGNoLXVybCcpIHsKLSAgICAg
ICAgcmV0dXJuIGZldGNoKHBhcmFtc1sndXJsJ10pOwogICAgICAgfSBlbHNlIGlmIChwYXJhbXNb
J3N3J10gPT0gJ2ZvbGxvdycpIHsKICAgICAgICAgcmV0dXJuIGZldGNoKG5ldyBSZXF1ZXN0KGV2
ZW50LnJlcXVlc3QudXJsLCB7cmVkaXJlY3Q6ICdmb2xsb3cnfSkpOwogICAgICAgfSBlbHNlIGlm
IChwYXJhbXNbJ3N3J10gPT0gJ21hbnVhbCcpIHsKICAgICAgICAgcmV0dXJuIGZldGNoKG5ldyBS
ZXF1ZXN0KGV2ZW50LnJlcXVlc3QudXJsLCB7cmVkaXJlY3Q6ICdtYW51YWwnfSkpOwogICAgICAg
fSBlbHNlIGlmIChwYXJhbXNbJ3N3J10gPT0gJ21hbnVhbFRocm91Z2hDYWNoZScpIHsKLSAgICAg
ICAgY29uc3QgdXJsID0gZXZlbnQucmVxdWVzdC51cmw7Ci0gICAgICAgIGF3YWl0IGNhY2hlcy5k
ZWxldGUodXJsKQotICAgICAgICBjb25zdCBjYWNoZSA9IGF3YWl0IHNlbGYuY2FjaGVzLm9wZW4o
dXJsKTsKLSAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChuZXcgUmVxdWVzdCh1
cmwsIHtyZWRpcmVjdDogJ21hbnVhbCd9KSk7Ci0gICAgICAgIGF3YWl0IGNhY2hlLnB1dChldmVu
dC5yZXF1ZXN0LCByZXNwb25zZSk7Ci0gICAgICAgIHJldHVybiBjYWNoZS5tYXRjaCh1cmwpOwor
ICAgICAgICB2YXIgdXJsID0gZXZlbnQucmVxdWVzdC51cmw7CisgICAgICAgIHZhciBjYWNoZTsK
KyAgICAgICAgcmV0dXJuIGNhY2hlcy5kZWxldGUodXJsKQorICAgICAgICAgIC50aGVuKGZ1bmN0
aW9uKCkgeyByZXR1cm4gc2VsZi5jYWNoZXMub3Blbih1cmwpOyB9KQorICAgICAgICAgIC50aGVu
KGZ1bmN0aW9uKGMpIHsKKyAgICAgICAgICAgIGNhY2hlID0gYzsKKyAgICAgICAgICAgIHJldHVy
biBmZXRjaChuZXcgUmVxdWVzdCh1cmwsIHtyZWRpcmVjdDogJ21hbnVhbCd9KSk7CisgICAgICAg
ICAgfSkKKyAgICAgICAgICAudGhlbihmdW5jdGlvbihyZXMpIHsgcmV0dXJuIGNhY2hlLnB1dChl
dmVudC5yZXF1ZXN0LCByZXMpOyB9KQorICAgICAgICAgIC50aGVuKGZ1bmN0aW9uKCkgeyByZXR1
cm4gY2FjaGUubWF0Y2godXJsKTsgfSk7CiAgICAgICB9CisKICAgICAgIC8vIHVuZXhwZWN0ZWQu
Li4gdHJpZ2dlciBhbiBpbnRlcmNlcHRpb24gZmFpbHVyZQogICAgIH0pKTsKICAgfSk7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvcmVnaXN0cmF0aW9uLXRlc3RzLW1p
bWUtdHlwZXMuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvcmVnaXN0cmF0aW9uLXRl
c3RzLW1pbWUtdHlwZXMuanMKaW5kZXggM2U0ODU5YjhiMzliMDk1NWU2YzUxNWQzNjdlMmU3ZDQ0
YzRmM2E3Ny4uMWI4ZWE5YmUwMDhjZTNjZjQ1OTdhYWE3ZTNjYTZkZDY4MGFiZGQwYiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3JlZ2lzdHJhdGlvbi10ZXN0cy1taW1l
LXR5cGVzLmpzCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9yZWdpc3RyYXRpb24t
dGVzdHMtbWltZS10eXBlcy5qcwpAQCAtMjEsMjEgKzIxLDExIEBAIGZ1bmN0aW9uIHJlZ2lzdHJh
dGlvbl90ZXN0c19taW1lX3R5cGVzKHJlZ2lzdGVyX21ldGhvZCwgY2hlY2tfZXJyb3JfdHlwZXMp
IHsKICAgICAgICAgICAnUmVnaXN0cmF0aW9uIG9mIHBsYWluIHRleHQgc2NyaXB0IHNob3VsZCBm
YWlsLicpOwogICAgIH0sICdSZWdpc3RlcmluZyBzY3JpcHQgd2l0aCBiYWQgTUlNRSB0eXBlJyk7
CiAKLSAgLyoqCi0gICAqIFNlcnZpY2VXb3JrZXJDb250YWluZXIucmVnaXN0ZXIoKSBzaG91bGQg
dGhyb3cgYSBUeXBlRXJyb3IsIGFjY29yZGluZyB0bwotICAgKiBzdGVwIDE3LjEgb2YgaHR0cHM6
Ly93M2MuZ2l0aHViLmlvL1NlcnZpY2VXb3JrZXIvI2ltcG9ydHNjcmlwdHMKLSAgICoKLSAgICog
IlsxN10gSWYgYW4gdW5jYXVnaHQgcnVudGltZSBzY3JpcHQgZXJyb3Igb2NjdXJzIGR1cmluZyB0
aGUgYWJvdmUgc3RlcCwgdGhlbjoKLSAgICogIFsxNy4xXSBJbnZva2UgUmVqZWN0IEpvYiBQcm9t
aXNlIHdpdGggam9iIGFuZCBUeXBlRXJyb3IiCi0gICAqCi0gICAqIChXaGVyZSB0aGUgInVuY2F1
Z2h0IHJ1bnRpbWUgc2NyaXB0IGVycm9yIiBpcyB0aHJvd24gYnkgYW4gdW5zdWNjZXNzZnVsCi0g
ICAqIGltcG9ydFNjcmlwdHMoKSkKLSAgICovCiAgIHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7
CiAgICAgICB2YXIgc2NyaXB0ID0gJ3Jlc291cmNlcy9pbXBvcnQtbWltZS10eXBlLXdvcmtlci5w
eSc7CiAgICAgICB2YXIgc2NvcGUgPSAncmVzb3VyY2VzL3Njb3BlL25vLW1pbWUtdHlwZS13b3Jr
ZXIvJzsKICAgICAgIHJldHVybiBwcm9taXNlX3JlamVjdHModCwKLSAgICAgICAgICBjaGVja19l
cnJvcl90eXBlcyA/IG5ldyBUeXBlRXJyb3IoKSA6IG51bGwsCisgICAgICAgICAgY2hlY2tfZXJy
b3JfdHlwZXMgPyAnU2VjdXJpdHlFcnJvcicgOiBudWxsLAogICAgICAgICAgIHJlZ2lzdGVyX21l
dGhvZChzY3JpcHQsIHtzY29wZTogc2NvcGV9KSwKICAgICAgICAgICAnUmVnaXN0cmF0aW9uIG9m
IG5vIE1JTUUgdHlwZSBpbXBvcnRlZCBzY3JpcHQgc2hvdWxkIGZhaWwuJyk7CiAgICAgfSwgJ1Jl
Z2lzdGVyaW5nIHNjcmlwdCB0aGF0IGltcG9ydHMgc2NyaXB0IHdpdGggbm8gTUlNRSB0eXBlJyk7
CkBAIC00NCw3ICszNCw3IEBAIGZ1bmN0aW9uIHJlZ2lzdHJhdGlvbl90ZXN0c19taW1lX3R5cGVz
KHJlZ2lzdGVyX21ldGhvZCwgY2hlY2tfZXJyb3JfdHlwZXMpIHsKICAgICAgIHZhciBzY3JpcHQg
PSAncmVzb3VyY2VzL2ltcG9ydC1taW1lLXR5cGUtd29ya2VyLnB5P21pbWU9dGV4dC9wbGFpbic7
CiAgICAgICB2YXIgc2NvcGUgPSAncmVzb3VyY2VzL3Njb3BlL2JhZC1taW1lLXR5cGUtd29ya2Vy
Lyc7CiAgICAgICByZXR1cm4gcHJvbWlzZV9yZWplY3RzKHQsCi0gICAgICAgICAgY2hlY2tfZXJy
b3JfdHlwZXMgPyBuZXcgVHlwZUVycm9yKCkgOiBudWxsLAorICAgICAgICAgIGNoZWNrX2Vycm9y
X3R5cGVzID8gJ1NlY3VyaXR5RXJyb3InIDogbnVsbCwKICAgICAgICAgICByZWdpc3Rlcl9tZXRo
b2Qoc2NyaXB0LCB7c2NvcGU6IHNjb3BlfSksCiAgICAgICAgICAgJ1JlZ2lzdHJhdGlvbiBvZiBw
bGFpbiB0ZXh0IGltcG9ydGVkIHNjcmlwdCBzaG91bGQgZmFpbC4nKTsKICAgICB9LCAnUmVnaXN0
ZXJpbmcgc2NyaXB0IHRoYXQgaW1wb3J0cyBzY3JpcHQgd2l0aCBiYWQgTUlNRSB0eXBlJyk7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvcmVnaXN0cmF0aW9uLXRlc3Rz
LXNjb3BlLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3JlZ2lzdHJhdGlvbi10ZXN0
cy1zY29wZS5qcwppbmRleCA2YzA5N2FkOGQxZjhiOGY5YTRmZTk1ZjdjNmViZDA0ZWRiNWNmZDlj
Li41MWIwYWI0YWQ1MWEzYzBhMmE3YjY4MzQxM2NhNmFlYmE3ZWM2MTkxIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvcmVnaXN0cmF0aW9uLXRlc3RzLXNjb3BlLmpzCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9yZWdpc3RyYXRpb24tdGVzdHMtc2NvcGUu
anMKQEAgLTk0LDkgKzk0LDkgQEAgZnVuY3Rpb24gcmVnaXN0cmF0aW9uX3Rlc3RzX3Njb3BlKHJl
Z2lzdGVyX21ldGhvZCwgY2hlY2tfZXJyb3JfdHlwZXMpIHsKICAgICAgIHZhciBzY3JpcHQgPSAn
cmVzb3VyY2VzL2VtcHR5LXdvcmtlci5qcyc7CiAgICAgICB2YXIgc2NvcGUgPSAnZmlsZXN5c3Rl
bTonICsgbm9ybWFsaXplVVJMKCdyZXNvdXJjZXMvc2NvcGUvZmlsZXN5c3RlbS1zY29wZS11cmwn
KTsKICAgICAgIHJldHVybiBwcm9taXNlX3JlamVjdHModCwKLSAgICAgICAgICBjaGVja19lcnJv
cl90eXBlcyA/IG5ldyBUeXBlRXJyb3IgOiBudWxsLAorICAgICAgICAgIGNoZWNrX2Vycm9yX3R5
cGVzID8gJ1NlY3VyaXR5RXJyb3InIDogbnVsbCwKICAgICAgICAgICByZWdpc3Rlcl9tZXRob2Qo
c2NyaXB0LCB7c2NvcGU6IHNjb3BlfSksCiAgICAgICAgICAgJ1JlZ2lzdGVyaW5nIHdpdGggdGhl
IHNjb3BlIHRoYXQgaGFzIHNhbWUtb3JpZ2luIGZpbGVzeXN0ZW06IFVSTCAnICsKLSAgICAgICAg
ICAgICAgJ3Nob3VsZCBmYWlsIHdpdGggVHlwZUVycm9yLicpOworICAgICAgICAgICAgICAnc2hv
dWxkIGZhaWwgd2l0aCBTZWN1cml0eUVycm9yLicpOwogICAgIH0sICdTY29wZSBVUkwgaXMgc2Ft
ZS1vcmlnaW4gZmlsZXN5c3RlbTogVVJMJyk7CiB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9yZXNvdXJjZXMvcmVnaXN0cmF0aW9uLXRlc3RzLXNlY3VyaXR5LWVycm9yLmpzIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3JlZ2lzdHJhdGlvbi10ZXN0cy1zZWN1cml0eS1lcnJv
ci5qcwppbmRleCBhNzJkM2JhYzI5MWM2ZjQyYWNmMjY0OTI2Yjg1OGEwZjM5NjRlZDQyLi5jODRi
YjY2ZTA0MmUxMzU0MTY1ZGUzZWZkMjkxZjJhYTJiOTdiOWM1IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9yZXNvdXJjZXMvcmVnaXN0cmF0aW9uLXRlc3RzLXNlY3VyaXR5LWVycm9yLmpz
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9yZWdpc3RyYXRpb24tdGVzdHMtc2Vj
dXJpdHktZXJyb3IuanMKQEAgLTcwLDkgKzcwLDkgQEAgZnVuY3Rpb24gcmVnaXN0cmF0aW9uX3Rl
c3RzX3NlY3VyaXR5X2Vycm9yKHJlZ2lzdGVyX21ldGhvZCwgY2hlY2tfZXJyb3JfdHlwZXMpIHsK
ICAgICAgIHZhciBzY3JpcHQgPSAnZmlsZXN5c3RlbTonICsgbm9ybWFsaXplVVJMKCdyZXNvdXJj
ZXMvZW1wdHktd29ya2VyLmpzJyk7CiAgICAgICB2YXIgc2NvcGUgPSAncmVzb3VyY2VzL3Njb3Bl
L2ZpbGVzeXN0ZW0tc2NyaXB0LXVybCc7CiAgICAgICByZXR1cm4gcHJvbWlzZV9yZWplY3RzKHQs
Ci0gICAgICAgICAgY2hlY2tfZXJyb3JfdHlwZXMgPyBuZXcgVHlwZUVycm9yIDogbnVsbCwKKyAg
ICAgICAgICBjaGVja19lcnJvcl90eXBlcyA/ICdTZWN1cml0eUVycm9yJyA6IG51bGwsCiAgICAg
ICAgICAgcmVnaXN0ZXJfbWV0aG9kKHNjcmlwdCwge3Njb3BlOiBzY29wZX0pLAogICAgICAgICAg
ICdSZWdpc3RlcmluZyBhIHNjcmlwdCB3aGljaCBoYXMgc2FtZS1vcmlnaW4gZmlsZXN5c3RlbTog
VVJMIHNob3VsZCAnICsKLSAgICAgICAgICAgICAgJ2ZhaWwgd2l0aCBUeXBlRXJyb3IuJyk7Cisg
ICAgICAgICAgICAgICdmYWlsIHdpdGggU2VjdXJpdHlFcnJvci4nKTsKICAgICB9LCAnU2NyaXB0
IFVSTCBpcyBzYW1lLW9yaWdpbiBmaWxlc3lzdGVtOiBVUkwnKTsKIH0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9yZXNvdXJjZS10aW1pbmctaWZyYW1lLnN1Yi5odG1s
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3Jlc291cmNlLXRpbWluZy1pZnJhbWUuc3Vi
Lmh0bWwKaW5kZXggNDFiYzJlNzdjMWI0YWNiM2E1N2E4M2Y5Yzk4ODlmNGU5YzUzODEwMy4uNGI2
MjY1NzZhYjQ1NmVhZTAyYWE5MjI4ODRiMGQ0OTE3Y2FlY2ExNCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvcmVzb3VyY2VzL3Jlc291cmNlLXRpbWluZy1pZnJhbWUuc3ViLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3Jlc291cmNlLXRpbWluZy1pZnJhbWUuc3Vi
Lmh0bWwKQEAgLTMsOCArMyw4IEBACiA8c2NyaXB0IHNyYz0iZHVtbXkuanMiPjwvc2NyaXB0Pgog
PHNjcmlwdCBzcmM9InJlZGlyZWN0LnB5P1JlZGlyZWN0PWVtcHR5LmpzIj48L3NjcmlwdD4KIDxp
bWcgc3JjPSJzcXVhcmUucG5nIj4KLTxpbWcgc3JjPSJodHRwczovL3t7aG9zdHNbYWx0XVtdfX06
e3twb3J0c1todHRwc11bMF19fS9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3Vy
Y2VzL3NxdWFyZS5wbmciPgorPGltZyBzcmM9Imh0dHBzOi8ve3tkb21haW5zW3d3dzFdfX06e3tw
b3J0c1todHRwc11bMF19fS9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2Vz
L3NxdWFyZS5wbmciPgogPGltZyBzcmM9Im1pc3NpbmcuanBnIj4KLTxpbWcgc3JjPSJodHRwczov
L3t7aG9zdHNbYWx0XVtdfX06e3twb3J0c1todHRwc11bMF19fS9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvcmVzb3VyY2VzL21pc3NpbmcuanBnIj4KKzxpbWcgc3JjPSJodHRwczovL3t7
ZG9tYWluc1t3d3cxXX19Ont7cG9ydHNbaHR0cHNdWzBdfX0vc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL3Jlc291cmNlcy9taXNzaW5nLmpwZyI+CiA8aW1nIHNyYz0nbWlzc2luZy5qcGc/
U1dSZXNwb25kc1dpdGhGZXRjaCc+CiA8c2NyaXB0IHNyYz0nZW1wdHktd29ya2VyLmpzJz48L3Nj
cmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9zZXJ2aWNlLXdv
cmtlci1jc3Atd29ya2VyLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3NlcnZpY2Ut
d29ya2VyLWNzcC13b3JrZXIucHkKaW5kZXggOWQyYjFmMmQ4MzRmNTIzNDQ3YjJjZmQzNzNiYjE3
NmYyZTBlODU3My4uNWYwNjQ1NGYxNDRkNTg0ZGJiZWM0ZWMyNDU3ZjViNWJkZDE2MWZlNiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3NlcnZpY2Utd29ya2VyLWNzcC13
b3JrZXIucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3NlcnZpY2Utd29ya2Vy
LWNzcC13b3JrZXIucHkKQEAgLTE3LDE1ICsxNyw2IEBAIHRlc3QoZnVuY3Rpb24oKSB7CiAgICAg
ICAgICAgICAgICAgJ0ltcG9ydGluZyB0aGUgb3RoZXIgb3JpZ2lucyBzY3JpcHQgc2hvdWxkIGZh
aWwuJyk7CiAgIH0sICdpbXBvcnRTY3JpcHRzIHRlc3QgZm9yIGRlZmF1bHQtc3JjJyk7CiAKLXRl
c3QoZnVuY3Rpb24oKSB7Ci0gICAgYXNzZXJ0X3Rocm93cyhFdmFsRXJyb3IoKSwKLSAgICAgICAg
ICAgICAgICAgIGZ1bmN0aW9uKCkgeyBldmFsKCcxICsgMScpOyB9LAotICAgICAgICAgICAgICAg
ICAgJ2V2YWwoKSBzaG91bGQgdGhyb3cgRXZhbEVycm9yLicpCi0gICAgYXNzZXJ0X3Rocm93cyhF
dmFsRXJyb3IoKSwKLSAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uKCkgeyBuZXcgRnVuY3Rpb24o
JzEgKyAxJyk7IH0sCi0gICAgICAgICAgICAgICAgICAnbmV3IEZ1bmN0aW9uKCkgc2hvdWxkIHRo
cm93IEV2YWxFcnJvci4nKQotICB9LCAnZXZhbCB0ZXN0IGZvciBkZWZhdWx0LXNyYycpOwotCiBh
c3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICBmZXRjaChob3N0X2luZm8uSFRUUFNfUkVNT1RF
X09SSUdJTiArCiAgICAgICAgICAgYmFzZV9wYXRoKCkgKyAnZmV0Y2gtYWNjZXNzLWNvbnRyb2wu
cHk/QUNBT3JpZ2luPSonLApAQCAtNzIsMTUgKzYzLDYgQEAgdGVzdChmdW5jdGlvbigpIHsKICAg
ICAgICAgICAgICAgICAnSW1wb3J0aW5nIHRoZSBvdGhlciBvcmlnaW5zIHNjcmlwdCBzaG91bGQg
ZmFpbC4nKTsKICAgfSwgJ2ltcG9ydFNjcmlwdHMgdGVzdCBmb3Igc2NyaXB0LXNyYycpOwogCi10
ZXN0KGZ1bmN0aW9uKCkgewotICAgIGFzc2VydF90aHJvd3MoRXZhbEVycm9yKCksCi0gICAgICAg
ICAgICAgICAgICBmdW5jdGlvbigpIHsgZXZhbCgnMSArIDEnKTsgfSwKLSAgICAgICAgICAgICAg
ICAgICdldmFsKCkgc2hvdWxkIHRocm93IEV2YWxFcnJvci4nKQotICAgIGFzc2VydF90aHJvd3Mo
RXZhbEVycm9yKCksCi0gICAgICAgICAgICAgICAgICBmdW5jdGlvbigpIHsgbmV3IEZ1bmN0aW9u
KCcxICsgMScpOyB9LAotICAgICAgICAgICAgICAgICAgJ25ldyBGdW5jdGlvbigpIHNob3VsZCB0
aHJvdyBFdmFsRXJyb3IuJykKLSAgfSwgJ2V2YWwgdGVzdCBmb3Igc2NyaXB0LXNyYycpOwotCiBh
c3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICBmZXRjaChob3N0X2luZm8uSFRUUFNfUkVNT1RF
X09SSUdJTiArCiAgICAgICAgICAgYmFzZV9wYXRoKCkgKyAnZmV0Y2gtYWNjZXNzLWNvbnRyb2wu
cHk/QUNBT3JpZ2luPSonLApAQCAtMTI3LDE4ICsxMDksNiBAQCB0ZXN0KGZ1bmN0aW9uKCkgewog
ICAgICAgICAgICAgICAgICAnSW1wb3J0aW5nIHRoZSBvdGhlciBvcmlnaW5zIHNjcmlwdCBzaG91
bGQgbm90IGZhaWwuJyk7CiAgIH0sICdpbXBvcnRTY3JpcHRzIHRlc3QgZm9yIGNvbm5lY3Qtc3Jj
Jyk7CiAKLXRlc3QoZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGV2YWxfZmFpbGVkID0gZmFsc2U7Ci0g
ICAgdHJ5IHsKLSAgICAgIGV2YWwoJzEgKyAxJyk7Ci0gICAgICBuZXcgRnVuY3Rpb24oJzEgKyAx
Jyk7Ci0gICAgfSBjYXRjaChlKSB7Ci0gICAgICBldmFsX2ZhaWxlZCA9IHRydWU7Ci0gICAgfQot
ICAgIGFzc2VydF9mYWxzZShldmFsX2ZhaWxlZCwKLSAgICAgICAgICAgICAgICAgJ2Nvbm5lY3Qt
c3JjIHdpdGhvdXQgdW5zYWZlLWV2YWwgc2hvdWxkIG5vdCBibG9jayBldmFsKCkuJyk7Ci0gIH0s
ICdldmFsIHRlc3QgZm9yIGNvbm5lY3Qtc3JjJyk7Ci0KIGFzeW5jX3Rlc3QoZnVuY3Rpb24odCkg
ewogICAgIGZldGNoKGhvc3RfaW5mby5IVFRQU19SRU1PVEVfT1JJR0lOICsKICAgICAgICAgICBi
YXNlX3BhdGgoKSArICdmZXRjaC1hY2Nlc3MtY29udHJvbC5weT9BQ0FPcmlnaW49KicsCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvc2VydmljZS13b3JrZXItaGVhZGVy
LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3NlcnZpY2Utd29ya2VyLWhlYWRlci5w
eQppbmRleCA3NGY1N2E3MmE5MDQxNzYyZjlmNTA3MzJkMmNlODkwZDg4OTgxMGM1Li4yZTgyZTc4
MTA3YWQ0ZjcwYjNlODhkNzAwMTM5MTk1ZjhhNWIwMjllIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9yZXNvdXJjZXMvc2VydmljZS13b3JrZXItaGVhZGVyLnB5CisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL3Jlc291cmNlcy9zZXJ2aWNlLXdvcmtlci1oZWFkZXIucHkKQEAgLTEsMjAgKzEs
NyBAQAogZGVmIG1haW4ocmVxdWVzdCwgcmVzcG9uc2UpOgogICBzZXJ2aWNlX3dvcmtlcl9oZWFk
ZXIgPSByZXF1ZXN0LmhlYWRlcnMuZ2V0KCdzZXJ2aWNlLXdvcmtlcicpCi0KLSAgaWYgJ2hlYWRl
cicgaW4gcmVxdWVzdC5HRVQgYW5kIHNlcnZpY2Vfd29ya2VyX2hlYWRlciAhPSAnc2NyaXB0JzoK
KyAgaWYgc2VydmljZV93b3JrZXJfaGVhZGVyID09ICdzY3JpcHQnOgorICAgIGJvZHkgPSAnLy8g
UmVxdWVzdCBoYXMgYFNlcnZpY2UtV29ya2VyOiBzY3JpcHRgIGhlYWRlcicKKyAgICByZXR1cm4g
MjAwLCBbKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vamF2YXNjcmlwdCcpXSwgYm9keQor
ICBlbHNlOgogICAgIHJldHVybiA0MDAsIFsoJ0NvbnRlbnQtVHlwZScsICd0ZXh0L3BsYWluJyld
LCAnQmFkIFJlcXVlc3QnCi0KLSAgaWYgJ25vLWhlYWRlcicgaW4gcmVxdWVzdC5HRVQgYW5kIHNl
cnZpY2Vfd29ya2VyX2hlYWRlciA9PSAnc2NyaXB0JzoKLSAgICByZXR1cm4gNDAwLCBbKCdDb250
ZW50LVR5cGUnLCAndGV4dC9wbGFpbicpXSwgJ0JhZCBSZXF1ZXN0JwotCi0gICMgbm8tY2FjaGUg
aXRzZWxmIHRvIGVuc3VyZSB0aGUgdXNlciBhZ2VudCBmaW5kcyBhIG5ldyB2ZXJzaW9uIGZvciBl
YWNoCi0gICMgdXBkYXRlLgotICBoZWFkZXJzID0gWygnQ2FjaGUtQ29udHJvbCcsICduby1jYWNo
ZSwgbXVzdC1yZXZhbGlkYXRlJyksCi0gICAgICAgICAgICAgKCdQcmFnbWEnLCAnbm8tY2FjaGUn
KSwKLSAgICAgICAgICAgICAoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qYXZhc2NyaXB0
JyldCi0gIGJvZHkgPSAnLyogVGhpcyBpcyBhIHNlcnZpY2Ugd29ya2VyIHNjcmlwdCAqL1xuJwot
Ci0gIGlmICdpbXBvcnQnIGluIHJlcXVlc3QuR0VUOgotICAgIGJvZHkgKz0gImltcG9ydFNjcmlw
dHMoJyVzJyk7IiAlIHJlcXVlc3QuR0VUWydpbXBvcnQnXQotCi0gIHJldHVybiAyMDAsIGhlYWRl
cnMsIGJvZHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9za2lwLXdh
aXRpbmctaW5zdGFsbGVkLXdvcmtlci5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9z
a2lwLXdhaXRpbmctaW5zdGFsbGVkLXdvcmtlci5qcwppbmRleCA2ZjcwMDhiZGRjZGZhMDQ0ZGJl
ZGQyZThmMmFjZWI4OWVjOTgwYTcxLi5iNDhkNTAyYjEzNjA2NjNiNjIwNjNiN2IwZGEwYzk2Y2Y2
Mzg5OTJiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvc2tpcC13YWl0
aW5nLWluc3RhbGxlZC13b3JrZXIuanMKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2Vz
L3NraXAtd2FpdGluZy1pbnN0YWxsZWQtd29ya2VyLmpzCkBAIC0yMSw3ICsyMSw3IEBAIHNlbGYu
YWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIGZ1bmN0aW9uKGV2ZW50KSB7CiAKICAgICAgICAg
ICBpZiAoc2VsZi5yZWdpc3RyYXRpb24uYWN0aXZlLnN0YXRlICE9PSAnYWN0aXZhdGluZycpIHsK
ICAgICAgICAgICAgIHBvcnQucG9zdE1lc3NhZ2UoCi0gICAgICAgICAgICAgICAgJ0ZBSUw6IFBy
b21pc2Ugc2hvdWxkIGJlIHJlc29sdmVkIGJlZm9yZSBTZXJ2aWNlV29ya2VyI3N0YXRlIGlzIHNl
dCB0byBhY3RpdmF0ZWQnKTsKKyAgICAgICAgICAgICAgICAnRkFJVEw6IFByb21pc2Ugc2hvdWxk
IGJlIHJlc29sdmVkIGJlZm9yZSBTZXJ2aWNlV29ya2VyI3N0YXRlIGlzIHNldCB0byBhY3RpdmF0
ZWQnKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9zdGFsbGluZy1zZXJ2aWNlLXdvcmtlci5qcyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9zdGFsbGluZy1zZXJ2aWNlLXdvcmtlci5qcwpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmRmMWU2Y2FjMDRlMTY1MWYzMGQ5NjA4OTdkYTg3
NDBhNDBjOTEzOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvc3RhbGxpbmctc2VydmljZS13b3JrZXIuanMK
KysrIC9kZXYvbnVsbApAQCAtMSw1NCArMCwwIEBACi1hc3luYyBmdW5jdGlvbiBwb3N0X21lc3Nh
Z2VfdG9fY2xpZW50KHJvbGUsIG1lc3NhZ2UsIHBvcnRzKSB7Ci0gICAgKGF3YWl0IGNsaWVudHMu
bWF0Y2hBbGwoKSkuZm9yRWFjaChjbGllbnQgPT4gewotICAgICAgICBpZiAobmV3IFVSTChjbGll
bnQudXJsKS5zZWFyY2hQYXJhbXMuZ2V0KCdyb2xlJykgPT09IHJvbGUpIHsKLSAgICAgICAgICAg
IGNsaWVudC5wb3N0TWVzc2FnZShtZXNzYWdlLCBwb3J0cyk7Ci0gICAgICAgIH0KLSAgICB9KTsK
LX0KLQotYXN5bmMgZnVuY3Rpb24gcG9zdF9tZXNzYWdlX3RvX2NoaWxkKG1lc3NhZ2UsIHBvcnRz
KSB7Ci0gICAgYXdhaXQgcG9zdF9tZXNzYWdlX3RvX2NsaWVudCgnY2hpbGQnLCBtZXNzYWdlLCBw
b3J0cyk7Ci19Ci0KLWZ1bmN0aW9uIHBpbmdfbWVzc2FnZShkYXRhKSB7Ci0gICAgcmV0dXJuIHsg
dHlwZTogJ3BpbmcnLCBkYXRhIH07Ci19Ci0KLXNlbGYub25tZXNzYWdlID0gZXZlbnQgPT4gewot
ICAgIGNvbnN0IG1lc3NhZ2UgPSBwaW5nX21lc3NhZ2UoZXZlbnQuZGF0YSk7Ci0gICAgcG9zdF9t
ZXNzYWdlX3RvX2NoaWxkKG1lc3NhZ2UpOwotICAgIHBvc3RfbWVzc2FnZV90b19wYXJlbnQobWVz
c2FnZSk7Ci19Ci0KLWFzeW5jIGZ1bmN0aW9uIHBvc3RfbWVzc2FnZV90b19wYXJlbnQobWVzc2Fn
ZSwgcG9ydHMpIHsKLSAgICBhd2FpdCBwb3N0X21lc3NhZ2VfdG9fY2xpZW50KCdwYXJlbnQnLCBt
ZXNzYWdlLCBwb3J0cyk7Ci19Ci0KLWZ1bmN0aW9uIGZldGNoX21lc3NhZ2Uoa2V5KSB7Ci0gICAg
cmV0dXJuIHsgdHlwZTogJ2ZldGNoJywga2V5IH07Ci19Ci0KLS8vIFNlbmQgYSBtZXNzYWdlIHRv
IHRoZSBwYXJlbnQgYWxvbmcgd2l0aCBhIE1lc3NhZ2VQb3J0IHRvIHJlc3BvbmQKLS8vIHdpdGgu
Ci1mdW5jdGlvbiByZXBvcnRfZmV0Y2hfcmVxdWVzdChrZXkpIHsKLSAgICBjb25zdCBjaGFubmVs
ID0gbmV3IE1lc3NhZ2VDaGFubmVsKCk7Ci0gICAgY29uc3QgcmVwbHkgPSBuZXcgUHJvbWlzZShy
ZXNvbHZlID0+IHsKLSAgICAgICAgY2hhbm5lbC5wb3J0MS5vbm1lc3NhZ2UgPSByZXNvbHZlOwot
ICAgIH0pLnRoZW4oZXZlbnQgPT4gZXZlbnQuZGF0YSk7Ci0gICAgcmV0dXJuIHBvc3RfbWVzc2Fn
ZV90b19wYXJlbnQoZmV0Y2hfbWVzc2FnZShrZXkpLCBbY2hhbm5lbC5wb3J0Ml0pLnRoZW4oKCkg
PT4gcmVwbHkpOwotfQotCi1mdW5jdGlvbiByZXNwb25kX3dpdGhfc2NyaXB0KHNjcmlwdCkgewot
ICAgIHJldHVybiBuZXcgUmVzcG9uc2UobmV3IEJsb2Ioc2NyaXB0LCB7IHR5cGU6ICd0ZXh0L2ph
dmFzY3JpcHQnIH0pKTsKLX0KLQotLy8gV2hlbmV2ZXIgYSBjb250cm9sbGVkIGRvY3VtZW50IHJl
cXVlc3RzIGEgVVJMIHdpdGggYSAna2V5JyBzZWFyY2gKLS8vIHBhcmFtZXRlciB3ZSByZXBvcnQg
dGhlIHJlcXVlc3QgdG8gdGhlIHBhcmVudCBmcmFtZSBhbmQgd2FpdCBmb3IKLS8vIGEgcmVzcG9u
c2UuIFRoZSBjb250ZW50IG9mIHRoZSByZXNwb25zZSBpcyB0aGVuIHVzZWQgdG8gcmVzcG9uZCB0
bwotLy8gdGhlIGZldGNoIHJlcXVlc3QuCi1hZGRFdmVudExpc3RlbmVyKCdmZXRjaCcsIGV2ZW50
ID0+IHsKLSAgICBsZXQga2V5ID0gbmV3IFVSTChldmVudC5yZXF1ZXN0LnVybCkuc2VhcmNoUGFy
YW1zLmdldCgna2V5Jyk7Ci0gICAgaWYgKGtleSkgewotICAgICAgICBldmVudC5yZXNwb25kV2l0
aChyZXBvcnRfZmV0Y2hfcmVxdWVzdChrZXkpLnRoZW4ocmVzcG9uZF93aXRoX3NjcmlwdCkpOwot
ICAgIH0KLX0pOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3Rlc3Qt
aGVscGVycy5zdWIuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvdGVzdC1oZWxwZXJz
LnN1Yi5qcwppbmRleCBhZjhkYWQzYTViZThhYTgzMTkwMGIxODNhZDdlZTlhMTA0MTdiYTFhLi43
ZWZkZTM1NGE4ZjliM2IxNTc5NzJkY2E4ZTVhM2M1YjVlYjQxMTZhIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvdGVzdC1oZWxwZXJzLnN1Yi5qcworKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9yZXNvdXJjZXMvdGVzdC1oZWxwZXJzLnN1Yi5qcwpAQCAtNzUsMTEgKzc1LDkg
QEAgZnVuY3Rpb24gd2FpdF9mb3JfdXBkYXRlKHRlc3QsIHJlZ2lzdHJhdGlvbikgewogICB9CiAK
ICAgcmV0dXJuIG5ldyBQcm9taXNlKHRlc3Quc3RlcF9mdW5jKGZ1bmN0aW9uKHJlc29sdmUpIHsK
LSAgICAgIHZhciBoYW5kbGVyID0gdGVzdC5zdGVwX2Z1bmMoZnVuY3Rpb24oKSB7Ci0gICAgICAg
IHJlZ2lzdHJhdGlvbi5yZW1vdmVFdmVudExpc3RlbmVyKCd1cGRhdGVmb3VuZCcsIGhhbmRsZXIp
OwotICAgICAgICByZXNvbHZlKHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nKTsKLSAgICAgIH0pOwot
ICAgICAgcmVnaXN0cmF0aW9uLmFkZEV2ZW50TGlzdGVuZXIoJ3VwZGF0ZWZvdW5kJywgaGFuZGxl
cik7CisgICAgICByZWdpc3RyYXRpb24uYWRkRXZlbnRMaXN0ZW5lcigndXBkYXRlZm91bmQnLCB0
ZXN0LnN0ZXBfZnVuYyhmdW5jdGlvbigpIHsKKyAgICAgICAgICByZXNvbHZlKHJlZ2lzdHJhdGlv
bi5pbnN0YWxsaW5nKTsKKyAgICAgICAgfSkpOwogICAgIH0pKTsKIH0KIApAQCAtMjc4LDMzICsy
NzYsMyBAQCBhc3luYyBmdW5jdGlvbiB3YWl0X2Zvcl9hY3RpdmF0aW9uX29uX2R1bW15X3Njb3Bl
KHQsIHdpbmRvd19vcl93b3JrZXJnbG9iYWxzY29wZQogICBhd2FpdCB3YWl0X2Zvcl9zdGF0ZSh0
LCByZWdpc3RyYXRpb24uaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOwogICBhd2FpdCByZWdpc3Ry
YXRpb24udW5yZWdpc3RlcigpOwogfQotCi0vLyBUaGlzIGluc3RhbGxzIHJlc291cmNlcy9hcHBj
YWNoZS1vcmRlcmluZy5tYW5pZmVzdC4KLWZ1bmN0aW9uIGluc3RhbGxfYXBwY2FjaGVfb3JkZXJp
bmdfbWFuaWZlc3QoKSB7Ci0gIGxldCByZXNvbHZlX2luc3RhbGxfYXBwY2FjaGU7Ci0gIGxldCBy
ZWplY3RfaW5zdGFsbF9hcHBjYWNoZTsKLQotICAvLyBUaGlzIGlzIG5vdGlmaWVkIGJ5IHRoZSBj
aGlsZCBpZnJhbWUsIGkuZS4gYXBwY2FjaGUtb3JkZXJpbmcuaW5zdGFsbC5odG1sLAotICAvLyB0
aGF0J3MgdG8gYmUgY3JlYXRlZCBiZWxvdy4KLSAgd2luZG93Lm5vdGlmeV9hcHBjYWNoZV9pbnN0
YWxsZWQgPSBzdWNjZXNzID0+IHsKLSAgICBpZiAoc3VjY2VzcykKLSAgICAgIHJlc29sdmVfaW5z
dGFsbF9hcHBjYWNoZSgpOwotICAgIGVsc2UKLSAgICAgIHJlamVjdF9pbnN0YWxsX2FwcGNhY2hl
KCk7Ci0gIH07Ci0KLSAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsK
LSAgICAgIGNvbnN0IGZyYW1lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaWZyYW1lJyk7Ci0g
ICAgICBmcmFtZS5zcmMgPSAncmVzb3VyY2VzL2FwcGNhY2hlLW9yZGVyaW5nLmluc3RhbGwuaHRt
bCc7Ci0gICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGZyYW1lKTsKLSAgICAgIHJlc29s
dmVfaW5zdGFsbF9hcHBjYWNoZSA9IGZ1bmN0aW9uKCkgewotICAgICAgICAgIGRvY3VtZW50LmJv
ZHkucmVtb3ZlQ2hpbGQoZnJhbWUpOwotICAgICAgICAgIHJlc29sdmUoKTsKLSAgICAgICAgfTsK
LSAgICAgIHJlamVjdF9pbnN0YWxsX2FwcGNhY2hlID0gZnVuY3Rpb24oKSB7Ci0gICAgICAgICAg
ZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChmcmFtZSk7Ci0gICAgICAgICAgcmVqZWN0KCk7Ci0g
ICAgICAgIH07Ci0gIH0pOwotfQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNv
dXJjZXMvdGVzdC1yZXF1ZXN0LWhlYWRlcnMtd29ya2VyLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
cmVzb3VyY2VzL3Rlc3QtcmVxdWVzdC1oZWFkZXJzLXdvcmtlci5qcwpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggNzFhZmY1ZTUwMzc0NWZhYTEzNzZkZmIzNTkxMTkwMjNjYjFiY2ZjMS4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9yZXNvdXJjZXMvdGVzdC1yZXF1ZXN0LWhlYWRlcnMtd29ya2VyLmpzCisrKyAvZGV2
L251bGwKQEAgLTEsNyArMCwwIEBACi0vLyBUaGUgc2VydmVyIGluamVjdHMgdGhlIHJlcXVlc3Qg
aGVhZGVycyBoZXJlIGFzIGEgSlNPTiBzdHJpbmcuCi1jb25zdCBoZWFkZXJzQXNKc29uID0gYCVI
RUFERVJTJWA7Ci1jb25zdCBoZWFkZXJzID0gSlNPTi5wYXJzZShoZWFkZXJzQXNKc29uKTsKLQot
c2VsZi5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgYXN5bmMgKGUpID0+IHsKLSAgZS5zb3Vy
Y2UucG9zdE1lc3NhZ2UoaGVhZGVycyk7Ci19KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3Jlc291cmNlcy90ZXN0LXJlcXVlc3QtaGVhZGVycy13b3JrZXIucHkgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9yZXNvdXJjZXMvdGVzdC1yZXF1ZXN0LWhlYWRlcnMtd29ya2VyLnB5CmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1NjY2ZjE5ZTc5MDRiMDA3YWM1YzNlNGVkOTU2MTdkOWFm
ZmE5MmNlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy90ZXN0LXJlcXVlc3QtaGVhZGVycy13b3JrZXIucHkK
KysrIC9kZXYvbnVsbApAQCAtMSwxNiArMCwwIEBACi1pbXBvcnQganNvbgotaW1wb3J0IG9zCi0K
LWRlZiBtYWluKHJlcXVlc3QsIHJlc3BvbnNlKToKLSAgcGF0aCA9IG9zLnBhdGguam9pbihvcy5w
YXRoLmRpcm5hbWUoX19maWxlX18pLAotICAgICAgICAgICAgICAgICAgICAgICJ0ZXN0LXJlcXVl
c3QtaGVhZGVycy13b3JrZXIuanMiKQotICBib2R5ID0gb3BlbihwYXRoLCAicmIiKS5yZWFkKCkK
LQotICBkYXRhID0ge2tleTpyZXF1ZXN0LmhlYWRlcnNba2V5XSBmb3Iga2V5LHZhbHVlIGluIHJl
cXVlc3QuaGVhZGVycy5pdGVyaXRlbXMoKX0KLSAgYm9keSA9IGJvZHkucmVwbGFjZSgiJUhFQURF
UlMlIiwganNvbi5kdW1wcyhkYXRhKSkKLQotICBoZWFkZXJzID0gW10KLSAgaGVhZGVycy5hcHBl
bmQoKCJFVGFnIiwgImV0YWciKSkKLSAgaGVhZGVycy5hcHBlbmQoKCJDb250ZW50LVR5cGUiLCAn
dGV4dC9qYXZhc2NyaXB0JykpCi0KLSAgcmV0dXJuIGhlYWRlcnMsIGJvZHkKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy90cmlja2xlLnB5IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvcmVzb3VyY2VzL3RyaWNrbGUucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMx
OWVjZDIxZjQ1MDNjY2YyZjkzMjZiZGY1M2MwMTAwODllZWU1ZDIuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2Vz
L3RyaWNrbGUucHkKKysrIC9kZXYvbnVsbApAQCAtMSwxNCArMCwwIEBACi1pbXBvcnQgdGltZQot
Ci1kZWYgbWFpbihyZXF1ZXN0LCByZXNwb25zZSk6Ci0gICAgZGVsYXkgPSBmbG9hdChyZXF1ZXN0
LkdFVC5maXJzdCgibXMiLCA1MDApKSAvIDFFMwotICAgIGNvdW50ID0gaW50KHJlcXVlc3QuR0VU
LmZpcnN0KCJjb3VudCIsIDUwKSkKLSAgICAjIFJlYWQgcmVxdWVzdCBib2R5Ci0gICAgcmVxdWVz
dC5ib2R5Ci0gICAgdGltZS5zbGVlcChkZWxheSkKLSAgICByZXNwb25zZS5oZWFkZXJzLnNldCgi
Q29udGVudC10eXBlIiwgInRleHQvcGxhaW4iKQotICAgIHJlc3BvbnNlLndyaXRlX3N0YXR1c19o
ZWFkZXJzKCkKLSAgICB0aW1lLnNsZWVwKGRlbGF5KTsKLSAgICBmb3IgaSBpbiB4cmFuZ2UoY291
bnQpOgotICAgICAgICByZXNwb25zZS53cml0ZXIud3JpdGVfY29udGVudCgiVEVTVF9UUklDS0xF
XG4iKQotICAgICAgICB0aW1lLnNsZWVwKGRlbGF5KQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvcmVzb3VyY2VzL3VwZGF0ZS1kdXJpbmctaW5zdGFsbGF0aW9uLXdvcmtlci5qcyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy91cGRhdGUtZHVyaW5nLWluc3RhbGxhdGlvbi13b3Jr
ZXIuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNmODk4ODFjMDQzODQ1OTBiOGIx
MzJjMzkyOTc3MjU2YmZiODQ3ZWQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3VwZGF0ZS1kdXJpbmctaW5z
dGFsbGF0aW9uLXdvcmtlci5qcworKysgL2Rldi9udWxsCkBAIC0xLDU3ICswLDAgQEAKLSd1c2Ug
c3RyaWN0JzsKLQotY29uc3QgaW5zdGFsbEV2ZW50RmlyZWQgPSBuZXcgUHJvbWlzZShyZXNvbHZl
ID0+IHsKLSAgc2VsZi5maXJlSW5zdGFsbEV2ZW50ID0gcmVzb2x2ZTsKLX0pOwotCi1jb25zdCBp
bnN0YWxsRmluaXNoZWQgPSBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHsKLSAgc2VsZi5maW5pc2hJ
bnN0YWxsID0gcmVzb2x2ZTsKLX0pOwotCi1hZGRFdmVudExpc3RlbmVyKCdpbnN0YWxsJywgZXZl
bnQgPT4gewotICBmaXJlSW5zdGFsbEV2ZW50KCk7Ci0gIGV2ZW50LndhaXRVbnRpbChpbnN0YWxs
RmluaXNoZWQpOwotfSk7Ci0KLWFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCBldmVudCA9PiB7
Ci0gIC8vIFVzZSBhIGRlZGljYXRlZCBNZXNzYWdlQ2hhbm5lbCBmb3IgZXZlcnkgcmVxdWVzdCBz
byBzZW5kZXJzIGNhbiB3YWl0IGZvcgotICAvLyBpbmRpdmlkdWFsIHJlcXVlc3RzIHRvIGZpbmlz
aCwgYW5kIGNvbmN1cnJlbnQgcmVxdWVzdHMgKHRvIGRpZmZlcmVudAotICAvLyB3b3JrZXJzKSBk
b24ndCBjYXVzZSByYWNlIGNvbmRpdGlvbnMuCi0gIGNvbnN0IHBvcnQgPSBldmVudC5kYXRhOwot
ICBwb3J0Lm9ubWVzc2FnZSA9IChldmVudCkgPT4gewotICAgIHN3aXRjaCAoZXZlbnQuZGF0YSkg
ewotICAgICAgY2FzZSAnYXdhaXRJbnN0YWxsRXZlbnQnOgotICAgICAgICBpbnN0YWxsRXZlbnRG
aXJlZC50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIHBvcnQucG9zdE1lc3NhZ2UoJ2luc3RhbGxF
dmVudEZpcmVkJyk7Ci0gICAgICAgIH0pOwotICAgICAgICBicmVhazsKLQotICAgICAgY2FzZSAn
ZmluaXNoSW5zdGFsbCc6Ci0gICAgICAgIGluc3RhbGxGaW5pc2hlZC50aGVuKCgpID0+IHsKLSAg
ICAgICAgICAgIHBvcnQucG9zdE1lc3NhZ2UoJ2luc3RhbGxGaW5pc2hlZCcpOwotICAgICAgICB9
KTsKLSAgICAgICAgZmluaXNoSW5zdGFsbCgpOwotICAgICAgICBicmVhazsKLQotICAgICAgY2Fz
ZSAnY2FsbFVwZGF0ZSc6IHsKLSAgICAgICAgY29uc3QgY2hhbm5lbCA9IG5ldyBNZXNzYWdlQ2hh
bm5lbCgpOwotICAgICAgICByZWdpc3RyYXRpb24udXBkYXRlKCkudGhlbigoKSA9PiB7Ci0gICAg
ICAgICAgICBjaGFubmVsLnBvcnQyLnBvc3RNZXNzYWdlKHsKLSAgICAgICAgICAgICAgICBzdWNj
ZXNzOiB0cnVlLAotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0pLmNhdGNoKChleGNlcHRpb24p
ID0+IHsKLSAgICAgICAgICAgIGNoYW5uZWwucG9ydDIucG9zdE1lc3NhZ2UoewotICAgICAgICAg
ICAgICAgIHN1Y2Nlc3M6IGZhbHNlLAotICAgICAgICAgICAgICAgIGV4Y2VwdGlvbjogZXhjZXB0
aW9uLm5hbWUsCi0gICAgICAgICAgICB9KTsKLSAgICAgICAgfSk7Ci0gICAgICAgIHBvcnQucG9z
dE1lc3NhZ2UoY2hhbm5lbC5wb3J0MSwgW2NoYW5uZWwucG9ydDFdKTsKLSAgICAgICAgYnJlYWs7
Ci0gICAgICB9Ci0KLSAgICAgIGRlZmF1bHQ6Ci0gICAgICAgIHBvcnQucG9zdE1lc3NhZ2UoJ1Vu
ZXhwZWN0ZWQgY29tbWFuZCAnICsgZXZlbnQuZGF0YSk7Ci0gICAgICAgIGJyZWFrOwotICAgIH0K
LSAgfTsKLX0pOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3VwZGF0
ZS1kdXJpbmctaW5zdGFsbGF0aW9uLXdvcmtlci5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291
cmNlcy91cGRhdGUtZHVyaW5nLWluc3RhbGxhdGlvbi13b3JrZXIucHkKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDk1ZTQ1MjIwMDdjMWQyYmUxNDA0NWY3NTgyZWJlMmI1MzQ3YWJkODcu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvcmVzb3VyY2VzL3VwZGF0ZS1kdXJpbmctaW5zdGFsbGF0aW9uLXdvcmtlci5weQor
KysgL2Rldi9udWxsCkBAIC0xLDExICswLDAgQEAKLWltcG9ydCB0aW1lCi0KLWRlZiBtYWluKHJl
cXVlc3QsIHJlc3BvbnNlKToKLSAgICBoZWFkZXJzID0gWygnQ29udGVudC1UeXBlJywgJ2FwcGxp
Y2F0aW9uL2phdmFzY3JpcHQnKSwKLSAgICAgICAgICAgICAgICgnQ2FjaGUtQ29udHJvbCcsICdt
YXgtYWdlPTAnKV0KLSAgICAjIEFkZCB0aW1lc3RhbXAgdG8gdGhlIHdvcmtlciBzbyB1cGRhdGUo
KSBmaW5kcyBhIG5ldyB3b3JrZXIgZXZlcnkgdGltZS4KLSAgICBib2R5ID0gJycnCi0vLyAlcwot
aW1wb3J0U2NyaXB0cygndXBkYXRlLWR1cmluZy1pbnN0YWxsYXRpb24td29ya2VyLmpzJyk7Ci0g
ICAgJycnLnN0cmlwKCkgJSB0aW1lLmNsb2NrKCkKLSAgICByZXR1cm4gaGVhZGVycywgYm9keQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3VwZGF0ZS1mZXRjaC13b3Jr
ZXIucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvdXBkYXRlLWZldGNoLXdvcmtlci5w
eQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjI4ZTFjMDk0ZTUwMWQxODM3ZGM3NTg1
ZTQ0YjliOWU5MzhlMzM0NC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvdXBkYXRlLWZldGNoLXdvcmtlci5w
eQorKysgL2Rldi9udWxsCkBAIC0xLDE5ICswLDAgQEAKLWltcG9ydCB0aW1lCi0KLWRlZiBtYWlu
KHJlcXVlc3QsIHJlc3BvbnNlKToKLSAgICAjIG5vLWNhY2hlIGl0c2VsZiB0byBlbnN1cmUgdGhl
IHVzZXIgYWdlbnQgZmluZHMgYSBuZXcgdmVyc2lvbiBmb3IgZWFjaCB1cGRhdGUuCi0gICAgaGVh
ZGVycyA9IFsoJ0NhY2hlLUNvbnRyb2wnLCAnbm8tY2FjaGUsIG11c3QtcmV2YWxpZGF0ZScpLAot
ICAgICAgICAgICAgICAgKCdQcmFnbWEnLCAnbm8tY2FjaGUnKV0KLQotICAgIGNvbnRlbnRfdHlw
ZSA9ICcnCi0gICAgZXh0cmFfYm9keSA9ICcnCi0KLSAgICBjb250ZW50X3R5cGUgPSAnYXBwbGlj
YXRpb24vamF2YXNjcmlwdCcKLSAgICBoZWFkZXJzLmFwcGVuZCgoJ0NvbnRlbnQtVHlwZScsIGNv
bnRlbnRfdHlwZSkpCi0KLSAgICBleHRyYV9ib2R5ID0gInNlbGYub25mZXRjaCA9IChldmVudCkg
PT4geyBldmVudC5yZXNwb25kV2l0aChmZXRjaChldmVudC5yZXF1ZXN0KSk7IH07IgotCi0gICAg
IyBSZXR1cm4gYSBkaWZmZXJlbnQgc2NyaXB0IGZvciBlYWNoIGFjY2Vzcy4gIFVzZSAudGltZSgp
IGFuZCAuY2xvY2soKSBmb3IKLSAgICAjIGJlc3QgdGltZSByZXNvbHV0aW9uIGFjcm9zcyBkaWZm
ZXJlbnQgcGxhdGZvcm1zLgotICAgIHJldHVybiBoZWFkZXJzLCAnLyogJXMgJXMgKi8gJXMnICUg
KHRpbWUudGltZSgpLCB0aW1lLmNsb2NrKCksIGV4dHJhX2JvZHkpCi0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy91cGRhdGUtbWlzc2luZy1pbXBvcnQtc2NyaXB0cy1p
bXBvcnRlZC13b3JrZXIucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvdXBkYXRlLW1p
c3NpbmctaW1wb3J0LXNjcmlwdHMtaW1wb3J0ZWQtd29ya2VyLnB5CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAyZDk1Mzg3ZmM5MjMzZWQxMmZhMjZiMzZmMDZhOTlmOTc3NWVkMDhiLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL3Jlc291cmNlcy91cGRhdGUtbWlzc2luZy1pbXBvcnQtc2NyaXB0cy1pbXBvcnRlZC13
b3JrZXIucHkKKysrIC9kZXYvbnVsbApAQCAtMSw5ICswLDAgQEAKLWRlZiBtYWluKHJlcXVlc3Qs
IHJlc3BvbnNlKToKLSAgICBrZXkgPSByZXF1ZXN0LkdFVFsna2V5J10KLSAgICBhbHJlYWR5X3Jl
cXVlc3RlZCA9IHJlcXVlc3Quc2VydmVyLnN0YXNoLnRha2Uoa2V5KQotCi0gICAgaWYgYWxyZWFk
eV9yZXF1ZXN0ZWQgaXMgTm9uZToKLSAgICAgICAgcmVxdWVzdC5zZXJ2ZXIuc3Rhc2gucHV0KGtl
eSwgVHJ1ZSkKLSAgICAgICAgcmV0dXJuIFsoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9q
YXZhc2NyaXB0JyldLCAnLy8gaW5pdGlhbCBzY3JpcHQnCi0KLSAgICByZXNwb25zZS5zdGF0dXMg
PSAoNDA0LCAnTm90IGZvdW5kOiBzaG91bGQgbm90IGhhdmUgYmVlbiBhYmxlIHRvIGltcG9ydCB0
aGlzIHNjcmlwdCB0d2ljZSEnKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3Vy
Y2VzL3VwZGF0ZS1taXNzaW5nLWltcG9ydC1zY3JpcHRzLW1haW4td29ya2VyLnB5IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvcmVzb3VyY2VzL3VwZGF0ZS1taXNzaW5nLWltcG9ydC1zY3JpcHRzLW1haW4t
d29ya2VyLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiMWQyZjZmY2I3ODI3MWJm
NTMzZWM4ZWM0YWE0MTVjMjFjOGQxNWMyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy91cGRhdGUtbWlzc2lu
Zy1pbXBvcnQtc2NyaXB0cy1tYWluLXdvcmtlci5weQorKysgL2Rldi9udWxsCkBAIC0xLDEzICsw
LDAgQEAKLWRlZiBtYWluKHJlcXVlc3QsIHJlc3BvbnNlKToKLSAgICBrZXkgPSByZXF1ZXN0LkdF
VFsna2V5J10KLSAgICBhbHJlYWR5X3JlcXVlc3RlZCA9IHJlcXVlc3Quc2VydmVyLnN0YXNoLnRh
a2Uoa2V5KQotCi0gICAgaGVhZGVyID0gWygnQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2ph
dmFzY3JpcHQnKV0KLSAgICBpbml0aWFsX3NjcmlwdCA9ICdpbXBvcnRTY3JpcHRzKCIuL3VwZGF0
ZS1taXNzaW5nLWltcG9ydC1zY3JpcHRzLWltcG9ydGVkLXdvcmtlci5weT9rZXk9ezB9IiknLmZv
cm1hdChrZXkpCi0gICAgdXBkYXRlZF9zY3JpcHQgPSAnLy8gcmVtb3ZlZCBpbXBvcnRTY3JpcHRz
KCknCi0KLSAgICBpZiBhbHJlYWR5X3JlcXVlc3RlZCBpcyBOb25lOgotICAgICAgICByZXF1ZXN0
LnNlcnZlci5zdGFzaC5wdXQoa2V5LCBUcnVlKQotICAgICAgICByZXR1cm4gaGVhZGVyLCBpbml0
aWFsX3NjcmlwdAotCi0gICAgcmV0dXJuIGhlYWRlciwgdXBkYXRlZF9zY3JpcHQKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy91cGRhdGUtcmVnaXN0cmF0aW9uLXdpdGgt
dHlwZS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy91cGRhdGUtcmVnaXN0cmF0aW9u
LXdpdGgtdHlwZS5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGY2ZDVhZTI4MjAw
ZTA5Y2JhMGUyNWMyNzY5MTY4YmMxNjIyYTM2MC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvdXBkYXRlLXJl
Z2lzdHJhdGlvbi13aXRoLXR5cGUucHkKKysrIC9kZXYvbnVsbApAQCAtMSwzMyArMCwwIEBACi1k
ZWYgY2xhc3NpY19zY3JpcHQoKToKLSAgICByZXR1cm4gIiIiCi0gICAgICBpbXBvcnRTY3JpcHRz
KCcuL2ltcG9ydGVkLWNsYXNzaWMtc2NyaXB0LmpzJyk7Ci0gICAgICBzZWxmLm9ubWVzc2FnZSA9
IGUgPT4gewotICAgICAgICBlLnNvdXJjZS5wb3N0TWVzc2FnZShpbXBvcnRlZCk7Ci0gICAgICB9
OwotICAgICAgIiIiCi0KLWRlZiBtb2R1bGVfc2NyaXB0KCk6Ci0gICAgcmV0dXJuICIiIgotICAg
ICAgaW1wb3J0ICogYXMgbW9kdWxlIGZyb20gJy4vaW1wb3J0ZWQtbW9kdWxlLXNjcmlwdC5qcyc7
Ci0gICAgICBzZWxmLm9ubWVzc2FnZSA9IGUgPT4gewotICAgICAgICBlLnNvdXJjZS5wb3N0TWVz
c2FnZShtb2R1bGUuaW1wb3J0ZWQpOwotICAgICAgfTsKLSAgICAgICIiIgotCi0jIFJldHVybnMg
dGhlIGNsYXNzaWMgc2NyaXB0IGZvciBhIGZpcnN0IHJlcXVlc3QgYW5kCi0jIHJldHVybnMgdGhl
IG1vZHVsZSBzY3JpcHQgZm9yIHNlY29uZCBhbmQgc3Vic2VxdWVudCByZXF1ZXN0cy4KLWRlZiBt
YWluKHJlcXVlc3QsIHJlc3BvbnNlKToKLSAgICBoZWFkZXJzID0gWygnQ29udGVudC1UeXBlJywg
J2FwcGxpY2F0aW9uL2phdmFzY3JpcHQnKSwKLSAgICAgICAgICAgICAgICgnUHJhZ21hJywgJ25v
LXN0b3JlJyksCi0gICAgICAgICAgICAgICAoJ0NhY2hlLUNvbnRyb2wnLCAnbm8tc3RvcmUnKV0K
LQotICAgIGNsYXNzaWNfZmlyc3QgPSByZXF1ZXN0LkdFVFsnY2xhc3NpY19maXJzdCddCi0gICAg
a2V5ID0gcmVxdWVzdC5HRVRbJ2tleSddCi0gICAgcmVxdWVzdGVkX29uY2UgPSByZXF1ZXN0LnNl
cnZlci5zdGFzaC50YWtlKGtleSkKLSAgICBpZiByZXF1ZXN0ZWRfb25jZSBpcyBOb25lOgotICAg
ICAgICByZXF1ZXN0LnNlcnZlci5zdGFzaC5wdXQoa2V5LCBUcnVlKQotICAgICAgICBib2R5ID0g
Y2xhc3NpY19zY3JpcHQoKSBpZiBjbGFzc2ljX2ZpcnN0ID09ICcxJyBlbHNlIG1vZHVsZV9zY3Jp
cHQoKQotICAgIGVsc2U6Ci0gICAgICAgIGJvZHkgPSBtb2R1bGVfc2NyaXB0KCkgaWYgY2xhc3Np
Y19maXJzdCA9PSAnMScgZWxzZSBjbGFzc2ljX3NjcmlwdCgpCi0KLSAgICByZXR1cm4gMjAwLCBo
ZWFkZXJzLCBib2R5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvdzNj
LWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvdzNjLWltcG9ydC5sb2cK
aW5kZXggOWViYzhiYzMxZmZjY2RlNzczNjNlOTg2MTE3M2QyNWU3NWEyZDIwMi4uYTFmNzUwOTcx
YTllMzI3MWMyMGFkZDQxZDkyYzc0YzIyZjRmNjBlNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvcmVzb3VyY2VzL3czYy1pbXBvcnQubG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jl
c291cmNlcy93M2MtaW1wb3J0LmxvZwpAQCAtMzgsNyArMzgsNiBAQCBMaXN0IG9mIGZpbGVzOgog
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9jbGFpbS13b3JrZXItZmV0Y2gtaWZyYW1lLmh0
bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvY2xhaW0td29ya2VyLWZldGNoLXdvcmtl
ci5qcwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9jbGFpbS13b3JrZXIuanMKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvY2xhc3NpYy13b3JrZXIuanMKIC9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9yZXNvdXJjZXMvY2xpZW50LWlkLXdvcmtlci5qcwogL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jl
c291cmNlcy9jbGllbnQtbmF2aWdhdGUtZnJhbWUuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jl
c291cmNlcy9jbGllbnQtbmF2aWdhdGUtd29ya2VyLmpzCkBAIC01MCw3ICs0OSw2IEBAIExpc3Qg
b2YgZmlsZXM6CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2NsaWVudHMtZ2V0LWNyb3Nz
LW9yaWdpbi1mcmFtZS5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2NsaWVudHMt
Z2V0LWZyYW1lLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvY2xpZW50cy1nZXQt
b3RoZXItb3JpZ2luLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvY2xpZW50cy1n
ZXQtcmVzdWx0aW5nQ2xpZW50SWQtd29ya2VyLmpzCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3Vy
Y2VzL2NsaWVudHMtZ2V0LXdvcmtlci5qcwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9j
bGllbnRzLW1hdGNoYWxsLWNsaWVudC10eXBlcy1kZWRpY2F0ZWQtd29ya2VyLmpzCiAvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvcmVzb3VyY2VzL2NsaWVudHMtbWF0Y2hhbGwtY2xpZW50LXR5cGVzLWlmcmFt
ZS5odG1sCkBAIC03Nyw3ICs3NSw2IEBAIExpc3Qgb2YgZmlsZXM6CiAvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvcmVzb3VyY2VzL2VtcHR5LXdvcmtlci5qcwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNl
cy9lbXB0eS5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2VtcHR5LmpzCi0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2VuYWJsZS1jbGllbnQtbWVzc2FnZS1xdWV1ZS5odG1s
CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2VuZC10by1lbmQtd29ya2VyLmpzCiAvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2V2ZW50cy13b3JrZXIuanMKIC9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9yZXNvdXJjZXMvZXh0ZW5kYWJsZS1ldmVudC1hc3luYy13YWl0dW50aWwuanMKQEAgLTg1
LDcgKzgyLDYgQEAgTGlzdCBvZiBmaWxlczoKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMv
ZmFpbC1vbi1mZXRjaC13b3JrZXIuanMKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0
Y2gtYWNjZXNzLWNvbnRyb2wtbG9naW4uaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNl
cy9mZXRjaC1hY2Nlc3MtY29udHJvbC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9m
ZXRjaC1jYW52YXMtdGFpbnRpbmctZG91YmxlLXdyaXRlLXdvcmtlci5qcwogL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL3Jlc291cmNlcy9mZXRjaC1jYW52YXMtdGFpbnRpbmctaWZyYW1lLmh0bWwKIC9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtY2FudmFzLXRhaW50aW5nLXRlc3RzLmpzCiAv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWNvcnMtZXhwb3NlZC1oZWFkZXItbmFt
ZXMtd29ya2VyLmpzCkBAIC0xNDYsMjMgKzE0MiwxNiBAQCBMaXN0IG9mIGZpbGVzOgogL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1yZXdyaXRlLXdvcmtlci5qcwogL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC13YWl0cy1mb3ItYWN0aXZhdGUtd29ya2VyLmpzCiAv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZyYW1lLWZvci1nZXRyZWdpc3RyYXRpb25zLmh0
bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZ2V0LXJlc3VsdGluZ0NsaWVudElkLXdv
cmtlci5qcwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9odHRwLXRvLWh0dHBzLXJlZGly
ZWN0LWFuZC1yZWdpc3Rlci1pZnJhbWUuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNl
cy9pZnJhbWUtd2l0aC1pbWFnZS5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2lt
bXV0YWJsZS1wcm90b3R5cGUtc2VydmljZXdvcmtlci5qcwogL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jl
c291cmNlcy9pbXBvcnQtbWltZS10eXBlLXdvcmtlci5weQotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jl
c291cmNlcy9pbXBvcnQtcmVsYXRpdmUueHNsCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2Vz
L2ltcG9ydC1zY3JpcHRzLWRpZmYtcmVzb3VyY2UtbWFwLXdvcmtlci5qcwogL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL3Jlc291cmNlcy9pbXBvcnQtc2NyaXB0cy1lY2hvLnB5Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvcmVzb3VyY2VzL2ltcG9ydC1zY3JpcHRzLWdldC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jl
c291cmNlcy9pbXBvcnQtc2NyaXB0cy1taW1lLXR5cGVzLXdvcmtlci5qcwogL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL3Jlc291cmNlcy9pbXBvcnQtc2NyaXB0cy1yZWRpcmVjdC1pbXBvcnQuanMKIC9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvaW1wb3J0LXNjcmlwdHMtcmVkaXJlY3Qtd29ya2VyLmpz
CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ltcG9ydC1zY3JpcHRzLXJlc291cmNlLW1h
cC13b3JrZXIuanMKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvaW1wb3J0LXNjcmlwdHMt
dXBkYXRlZC1mbGFnLXdvcmtlci5qcwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9pbXBv
cnQtc2NyaXB0cy12ZXJzaW9uLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ltcG9y
dGVkLWNsYXNzaWMtc2NyaXB0LmpzCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ltcG9y
dGVkLW1vZHVsZS1zY3JpcHQuanMKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvaW5kZXhl
ZGRiLXdvcmtlci5qcwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9pbnN0YWxsLWV2ZW50
LXR5cGUtd29ya2VyLmpzCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2luc3RhbGwtd29y
a2VyLmh0bWwKQEAgLTE4MSwxMSArMTcwLDkgQEAgTGlzdCBvZiBmaWxlczoKIC9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9yZXNvdXJjZXMvbG9jYWwtdXJsLWluaGVyaXQtY29udHJvbGxlci13b3JrZXIuanMK
IC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvbWFsZm9ybWVkLWh0dHAtcmVzcG9uc2UuYXNp
cwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9tYWxmb3JtZWQtd29ya2VyLnB5Ci0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvcmVzb3VyY2VzL21lc3NhZ2UtdnMtbWljcm90YXNrLmh0bWwKIC9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvbWltZS1zbmlmZmluZy13b3JrZXIuanMKIC9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9yZXNvdXJjZXMvbWltZS10eXBlLXdvcmtlci5weQogL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3Jlc291cmNlcy9taW50LW5ldy13b3JrZXIucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNv
dXJjZXMvbW9kdWxlLXdvcmtlci5qcwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9tdWx0
aXBhcnQtaW1hZ2UtaWZyYW1lLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvbXVs
dGlwYXJ0LWltYWdlLXdvcmtlci5qcwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9tdWx0
aXBhcnQtaW1hZ2UucHkKQEAgLTE5OSw3ICsxODYsNiBAQCBMaXN0IG9mIGZpbGVzOgogL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL3Jlc291cmNlcy9uYXZpZ2F0aW9uLXJlZGlyZWN0LXRvLWh0dHAtaWZyYW1l
Lmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvbmF2aWdhdGlvbi1yZWRpcmVjdC10
by1odHRwLXdvcmtlci5qcwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9uYXZpZ2F0aW9u
LXRpbWluZy13b3JrZXIuanMKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvbmVzdGVkLWlm
cmFtZS1wYXJlbnQuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9uZXN0ZWRfbG9h
ZF93b3JrZXIuanMKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvbm90aWZpY2F0aW9uX2lj
b24ucHkKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvb2JqZWN0LWltYWdlLWlzLW5vdC1p
bnRlcmNlcHRlZC1pZnJhbWUuaHRtbApAQCAtMjI1LDcgKzIxMSw2IEBAIExpc3Qgb2YgZmlsZXM6
CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3BlcmZvcm1hbmNlLXRpbWVsaW5lLXdvcmtl
ci5qcwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9wb3N0bWVzc2FnZS1ibG9iLXVybC5q
cwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9wb3N0bWVzc2FnZS1kaWN0aW9uYXJ5LXRy
YW5zZmVyYWJsZXMtd29ya2VyLmpzCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3Bvc3Rt
ZXNzYWdlLWVjaG8td29ya2VyLmpzCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3Bvc3Rt
ZXNzYWdlLW1zZ3BvcnQtdG8tY2xpZW50LXdvcmtlci5qcwogL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jl
c291cmNlcy9wb3N0bWVzc2FnZS10by1jbGllbnQtd29ya2VyLmpzCiAvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvcmVzb3VyY2VzL3Bvc3RtZXNzYWdlLXRyYW5zZmVyYWJsZXMtd29ya2VyLmpzCkBAIC0yNzYs
MjUgKzI2MSwxNSBAQCBMaXN0IG9mIGZpbGVzOgogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNl
cy9za2lwLXdhaXRpbmctd29ya2VyLmpzCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3Nx
dWFyZS5wbmcKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvc3F1YXJlLnBuZy5zdWIuaGVh
ZGVycwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9zdGFsbGluZy1zZXJ2aWNlLXdvcmtl
ci5qcwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9zdWNjZXNzLnB5CiAvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvcmVzb3VyY2VzL3Rlc3QtaGVscGVycy5zdWIuanMKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9yZXNvdXJjZXMvdGVzdC1yZXF1ZXN0LWhlYWRlcnMtd29ya2VyLmpzCi0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvcmVzb3VyY2VzL3Rlc3QtcmVxdWVzdC1oZWFkZXJzLXdvcmtlci5weQogL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL3Jlc291cmNlcy90ZXN0aGFybmVzcy1oZWxwZXJzLmpzCi0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvcmVzb3VyY2VzL3RyaWNrbGUucHkKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMv
dW5yZWdpc3Rlci1jb250cm9sbGVyLXBhZ2UuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291
cmNlcy91cGRhdGUtY2xhaW0td29ya2VyLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2Vz
L3VwZGF0ZS1kdXJpbmctaW5zdGFsbGF0aW9uLXdvcmtlci5qcwotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L3Jlc291cmNlcy91cGRhdGUtZHVyaW5nLWluc3RhbGxhdGlvbi13b3JrZXIucHkKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9yZXNvdXJjZXMvdXBkYXRlLWZldGNoLXdvcmtlci5weQogL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL3Jlc291cmNlcy91cGRhdGUtbWF4LWFnZWQtd29ya2VyLWltcG9ydGVkLXNjcmlwdC5w
eQogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy91cGRhdGUtbWF4LWFnZWQtd29ya2VyLnB5
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3VwZGF0ZS1taXNzaW5nLWltcG9ydC1zY3Jp
cHRzLWltcG9ydGVkLXdvcmtlci5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy91cGRh
dGUtbWlzc2luZy1pbXBvcnQtc2NyaXB0cy1tYWluLXdvcmtlci5weQogL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3Jlc291cmNlcy91cGRhdGUtbm9jb29raWUtd29ya2VyLnB5CiAvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvcmVzb3VyY2VzL3VwZGF0ZS1yZWNvdmVyeS13b3JrZXIucHkKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9yZXNvdXJjZXMvdXBkYXRlLXJlZ2lzdHJhdGlvbi13aXRoLXR5cGUucHkKIC9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9yZXNvdXJjZXMvdXBkYXRlLXdvcmtlci5weQogL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jl
c291cmNlcy91cGRhdGVfc2hlbGwucHkKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvdnR0
LWZyYW1lLmh0bWwKQEAgLTMxMCw4ICsyODUsMyBAQCBMaXN0IG9mIGZpbGVzOgogL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL3Jlc291cmNlcy93b3JrZXItbG9hZC1pbnRlcmNlcHRvci5qcwogL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL3Jlc291cmNlcy93b3JrZXItdGVzdGhhcm5lc3MuanMKIC9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9yZXNvdXJjZXMvd29ya2VyX2ludGVyY2VwdGlvbl9yZWRpcmVjdF93ZWJ3b3JrZXIucHkK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMveGhyLWlmcmFtZS5odG1sCi0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvcmVzb3VyY2VzL3hoci1yZXNwb25zZS11cmwtd29ya2VyLmpzCi0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvcmVzb3VyY2VzL3hzbC1iYXNlLXVybC1pZnJhbWUueG1sCi0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvcmVzb3VyY2VzL3hzbC1iYXNlLXVybC13b3JrZXIuanMKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9yZXNvdXJjZXMveHNsdC1wYXNzLnhzbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
cmVzb3VyY2VzL3dvcmtlci1pbnRlcmNlcHRpb24taWZyYW1lLmh0dHBzLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9yZXNvdXJjZXMvd29ya2VyLWludGVyY2VwdGlvbi1pZnJhbWUuaHR0cHMuaHRt
bAppbmRleCA4NDIwNGEzZWU1ZGYxZmMzYTcxNzg0MjE1MDcxYjE0ZjBjNjVmOWYyLi5hYjEwYTA3
OGYzZDY3YThjMjEzYjg1MTFiOGZmNWZmY2RlOTIzNzViIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9yZXNvdXJjZXMvd29ya2VyLWludGVyY2VwdGlvbi1pZnJhbWUuaHR0cHMuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvd29ya2VyLWludGVyY2VwdGlvbi1pZnJh
bWUuaHR0cHMuaHRtbApAQCAtMSw1ICsxLDQgQEAKIDxzY3JpcHQgc3JjPSIvY29tbW9uL2dldC1o
b3N0LWluZm8uc3ViLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJ0ZXN0LWhlbHBlcnMuc3ViLmpzP3Bp
cGU9c3ViIj48L3NjcmlwdD4KIDxzY3JpcHQ+CiB2YXIgaG9zdF9pbmZvID0gZ2V0X2hvc3RfaW5m
bygpOwpAQCAtMTIsNyArMTEsNyBAQCBmdW5jdGlvbiBib2lsZXJwbGF0ZV90ZXN0KHVybCwgbXNn
KSB7CiAgICAgICAgICAgd29ya2VyLnBvc3RNZXNzYWdlKG1zZyk7CiAgICAgICAgIH0pCiAgICAg
ICAudGhlbihmdW5jdGlvbihkYXRhKSB7Ci0gICAgICAgICAgYXNzZXJ0X2VxdWFscyhkYXRhLCAi
VGhpcyBsb2FkIHdhcyBzdWNjZXNzZnVsbHkgaW50ZXJjZXB0ZWQuIik7CisgICAgICAgICAgd2lu
ZG93LnBhcmVudC5wb3N0TWVzc2FnZSh7cmVzdWx0czogZGF0YX0sIGhvc3RfaW5mb1snSFRUUFNf
T1JJR0lOJ10pOwogICAgICAgICB9KTsKIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvcmVzb3VyY2VzL3dvcmtlci1sb2FkLWludGVyY2VwdG9yLmpzIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvcmVzb3VyY2VzL3dvcmtlci1sb2FkLWludGVyY2VwdG9yLmpzCmluZGV4IGE1ZjY1YzMyMTZl
NDQ2MzJmZjA1MmJhYzA0NDgzMTZmMjVkNDQzYzYuLjY5NTc3N2E1MTRmNjU2MjhiMjVmNzY1NDk5
NzBkZGZiYzg1NGZlZTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy93
b3JrZXItbG9hZC1pbnRlcmNlcHRvci5qcworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJj
ZXMvd29ya2VyLWxvYWQtaW50ZXJjZXB0b3IuanMKQEAgLTgsOCArOCw2IEBAIHNlbGYub25mZXRj
aCA9IGZ1bmN0aW9uKGV2ZW50KSB7CiAgICAgaWYgKHVybC5pbmRleE9mKCJzeW50aGVzaXplZC1y
ZXNwb25zZS50eHQiKSAhPSAtMSkgewogICAgICAgICBldmVudC5yZXNwb25kV2l0aChuZXcgUmVz
cG9uc2UocmVzcG9uc2VfdGV4dCkpOwogICAgIH0gZWxzZSBpZiAodXJsLmluZGV4T2YoInN5bnRo
ZXNpemVkLXJlc3BvbnNlLmpzIikgIT0gLTEpIHsKLSAgICAgIGV2ZW50LnJlc3BvbmRXaXRoKG5l
dyBSZXNwb25zZSgKLSAgICAgICAgICByZXNwb25zZV9zY3JpcHQsCi0gICAgICAgICAge2hlYWRl
cnM6IHsnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2phdmFzY3JpcHQnfX0pKTsKKyAgICAg
ICAgZXZlbnQucmVzcG9uZFdpdGgobmV3IFJlc3BvbnNlKHJlc3BvbnNlX3NjcmlwdCkpOwogICAg
IH0KIH07CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvd29ya2VyLXRl
c3RoYXJuZXNzLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3dvcmtlci10ZXN0aGFy
bmVzcy5qcwppbmRleCA3M2U5N2JlMWVhYTQ0YmJlOTZmODgwMWUwYzc2YzM3NzcyYWM3ZDFmLi5m
ZGY1ODY4ZTMzZTJmZTM1MzQ0ODE4ZWMzZjFhMmUwNjhiOTA5OTZkIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvd29ya2VyLXRlc3RoYXJuZXNzLmpzCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL3Jlc291cmNlcy93b3JrZXItdGVzdGhhcm5lc3MuanMKQEAgLTIwLDcgKzIw
LDcgQEAgaW1wb3J0U2NyaXB0cygnL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcycpOwogICAgIHZh
ciBjYWNoZV9uYW1lID0gc2VsZi5sb2NhdGlvbi5wYXRobmFtZSArICcvJyArIHVuaXF1aWZpZXI7
CiAKICAgICB0ZXN0LmFkZF9jbGVhbnVwKGZ1bmN0aW9uKCkgewotICAgICAgICByZXR1cm4gc2Vs
Zi5jYWNoZXMuZGVsZXRlKGNhY2hlX25hbWUpOworICAgICAgICBzZWxmLmNhY2hlcy5kZWxldGUo
Y2FjaGVfbmFtZSk7CiAgICAgICB9KTsKIAogICAgIHJldHVybiBzZWxmLmNhY2hlcy5kZWxldGUo
Y2FjaGVfbmFtZSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy94aHIt
aWZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMveGhyLWlmcmFtZS5odG1s
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0YzU3YmJiYzY1ODlkOTczODkyNGIwYWNi
OTFiNDQwZWZjMTQxNjIyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy94aHItaWZyYW1lLmh0bWwKKysrIC9k
ZXYvbnVsbApAQCAtMSwyMyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxtZXRhIGNoYXJzZXQ9
InV0Zi04Ij4KLTx0aXRsZT5pZnJhbWUgZm9yIHhociB0ZXN0czwvdGl0bGU+Ci08c2NyaXB0Pgot
YXN5bmMgZnVuY3Rpb24geGhyKHVybCwgb3B0aW9ucykgewotICByZXR1cm4gbmV3IFByb21pc2Uo
KHJlc29sdmUsIHJlamVjdCkgPT4gewotICAgIGNvbnN0IHhociA9IG5ldyBYTUxIdHRwUmVxdWVz
dCgpOwotICAgIGNvbnN0IG9wdHMgPSBvcHRpb25zID8gb3B0aW9ucyA6IHt9OwotICAgIHhoci5v
bmxvYWQgPSAoKSA9PiB7Ci0gICAgICByZXNvbHZlKHhocik7Ci0gICAgfTsKLSAgICB4aHIub25l
cnJvciA9ICgpID0+IHsKLSAgICAgIHJlamVjdCgneGhyIGZhaWxlZCcpOwotICAgIH07Ci0KLSAg
ICB4aHIub3BlbignR0VUJywgdXJsKTsKLSAgICBpZiAob3B0cy5yZXNwb25zZVR5cGUpIHsKLSAg
ICAgIHhoci5yZXNwb25zZVR5cGUgPSBvcHRzLnJlc3BvbnNlVHlwZTsKLSAgICB9Ci0gICAgeGhy
LnNlbmQoKTsKLSAgfSk7Ci19Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3Jlc291cmNlcy94aHItcmVzcG9uc2UtdXJsLXdvcmtlci5qcyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3Jlc291cmNlcy94aHItcmVzcG9uc2UtdXJsLXdvcmtlci5qcwpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggOTA2YWQ1MDA1YjU5YTExMzA1MjM3ZmM1OTBmZGYzODQwN2I3NjM3OS4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9yZXNvdXJjZXMveGhyLXJlc3BvbnNlLXVybC13b3JrZXIuanMKKysrIC9kZXYvbnVs
bApAQCAtMSwzMiArMCwwIEBACi0vLyBTZXJ2aWNlIHdvcmtlciBmb3IgdGhlIHhoci1yZXNwb25z
ZS11cmwgdGVzdC4KLQotc2VsZi5hZGRFdmVudExpc3RlbmVyKCdmZXRjaCcsIGV2ZW50ID0+IHsK
LSAgY29uc3QgdXJsID0gbmV3IFVSTChldmVudC5yZXF1ZXN0LnVybCk7Ci0gIGNvbnN0IHJlc3Bv
bmRXaXRoID0gdXJsLnNlYXJjaFBhcmFtcy5nZXQoJ3Jlc3BvbmRXaXRoJyk7Ci0gIGlmICghcmVz
cG9uZFdpdGgpCi0gICAgcmV0dXJuOwotCi0gIGlmIChyZXNwb25kV2l0aCA9PSAnZmV0Y2gnKSB7
Ci0gICAgY29uc3QgdGFyZ2V0ID0gdXJsLnNlYXJjaFBhcmFtcy5nZXQoJ3VybCcpOwotICAgIGV2
ZW50LnJlc3BvbmRXaXRoKGZldGNoKHRhcmdldCkpOwotICAgIHJldHVybjsKLSAgfQotCi0gIGlm
IChyZXNwb25kV2l0aCA9PSAnc3RyaW5nJykgewotICAgIGNvbnN0IGhlYWRlcnMgPSB7J2NvbnRl
bnQtdHlwZSc6ICd0ZXh0L3BsYWluJ307Ci0gICAgZXZlbnQucmVzcG9uZFdpdGgobmV3IFJlc3Bv
bnNlKCdoZWxsbycsIHtoZWFkZXJzfSkpOwotICAgIHJldHVybjsKLSAgfQotCi0gIGlmIChyZXNw
b25kV2l0aCA9PSAnZG9jdW1lbnQnKSB7Ci0gICAgY29uc3QgZG9jID0gYAotICAgICAgICA8IURP
Q1RZUEUgaHRtbD4KLSAgICAgICAgPGh0bWw+Ci0gICAgICAgIDx0aXRsZT5oaTwvdGl0bGU+Ci0g
ICAgICAgIDxib2R5PmhlbGxvPC9ib2R5PgotICAgICAgICA8L2h0bWw+YDsKLSAgICBjb25zdCBo
ZWFkZXJzID0geydjb250ZW50LXR5cGUnOiAndGV4dC9odG1sJ307Ci0gICAgZXZlbnQucmVzcG9u
ZFdpdGgobmV3IFJlc3BvbnNlKGRvYywge2hlYWRlcnN9KSk7Ci0gICAgcmV0dXJuOwotICB9Ci19
KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy94c2wtYmFzZS11cmwt
aWZyYW1lLnhtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy94c2wtYmFzZS11cmwtaWZy
YW1lLnhtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDY1YTA3YWNiMjg0ODIxZGRl
MWNiZWE4NjgwNzgxYTUyNGYyMWJjMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMveHNsLWJhc2UtdXJsLWlm
cmFtZS54bWwKKysrIC9kZXYvbnVsbApAQCAtMSw1ICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEu
MCI/PgotPD94bWwtc3R5bGVzaGVldCB0eXBlPSJ0ZXh0L3hzbCIgaHJlZj0icmVzb3VyY2VzL3Jl
cXVlc3QtdXJsLXBhdGgvaW1wb3J0LXJlbGF0aXZlLnhzbCI/PgotPHN0eWxlc2hlZXQtdGVzdD4K
LVRoaXMgdGVzdHMgYSBzdHlsZXNoZWV0IHdoaWNoIGhhcyBhIHhzbDppbXBvcnQgd2l0aCBhIHJl
bGF0aXZlIFVSTC4KLTwvc3R5bGVzaGVldC10ZXN0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvcmVzb3VyY2VzL3hzbC1iYXNlLXVybC13b3JrZXIuanMgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9yZXNvdXJjZXMveHNsLWJhc2UtdXJsLXdvcmtlci5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggNTBlMmIxODQyZmZjN2YyZWYyMDE3ODQ2NDA2ZWI2N2VkOTQ5MWVhZC4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9yZXNvdXJjZXMveHNsLWJhc2UtdXJsLXdvcmtlci5qcworKysgL2Rldi9udWxsCkBAIC0xLDEy
ICswLDAgQEAKLXNlbGYuYWRkRXZlbnRMaXN0ZW5lcignZmV0Y2gnLCBldmVudCA9PiB7Ci0gIGNv
bnN0IHVybCA9IG5ldyBVUkwoZXZlbnQucmVxdWVzdC51cmwpOwotCi0gIC8vIEZvciB0aGUgaW1w
b3J0LXJlbGF0aXZlLnhzbCBmaWxlLCByZXNwb25kIGluIGEgd2F5IHRoYXQgY2hhbmdlcyB0aGUK
LSAgLy8gcmVzcG9uc2UgVVJMLiBUaGlzIGlzIGV4cGVjdGVkIHRvIGNoYW5nZSB0aGUgYmFzZSBV
UkwgYW5kIGFsbG93IHRoZSBpbXBvcnQKLSAgLy8gZnJvbSB0aGUgZmlsZSB0byBzdWNjZWVkLgot
ICBjb25zdCBwYXRoID0gJ3JlcXVlc3QtdXJsLXBhdGgvaW1wb3J0LXJlbGF0aXZlLnhzbCc7Ci0g
IGlmICh1cmwucGF0aG5hbWUuaW5kZXhPZihwYXRoKSAhPSAtMSkgewotICAgIC8vIFJlc3BvbmQg
d2l0aCBhIGRpZmZlcmVudCBVUkwsIGRlbGV0aW5nICJyZXF1ZXN0LXVybC1wYXRoLyIuCi0gICAg
ZXZlbnQucmVzcG9uZFdpdGgoZmV0Y2goJ2ltcG9ydC1yZWxhdGl2ZS54c2wnKSk7Ci0gIH0KLX0p
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3hzbHQtcGFzcy54c2wg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMveHNsdC1wYXNzLnhzbApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMmNkN2YyZjhmODZhMjNkNDY0YjMwZmVhYjA5Mzk5MzExMzQ4MTBj
Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9yZXNvdXJjZXMveHNsdC1wYXNzLnhzbAorKysgL2Rldi9udWxsCkBAIC0xLDEx
ICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Ci0KLTx4c2w6
c3R5bGVzaGVldCB2ZXJzaW9uPSIxLjAiIHhtbG5zOnhzbD0iaHR0cDovL3d3dy53My5vcmcvMTk5
OS9YU0wvVHJhbnNmb3JtIj4KLSAgPHhzbDp0ZW1wbGF0ZSBtYXRjaD0iLyI+Ci0gICAgPGh0bWw+
Ci0gICAgICA8Ym9keT4KLSAgICAgICAgICAgPHA+UEFTUzwvcD4KLSAgICAgIDwvYm9keT4KLSAg
ICA8L2h0bWw+Ci0gIDwveHNsOnRlbXBsYXRlPgotPC94c2w6c3R5bGVzaGVldD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3NlcnZpY2Utd29ya2VyLWNzcC1jb25uZWN0Lmh0dHBzLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3NlcnZpY2Utd29ya2VyLWNzcC1jb25uZWN0
Lmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCBlNmY1YTUyNDQzMTMwMjI0Zjk4N2RhMThkOWE3NzM2
MmVjZWVmMDg4Li5mNjFkMjYyNzBiMzYxYjlhMjBkOTA5OTIzZDNjMzU2NmZmYThjMGRlIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9zZXJ2aWNlLXdvcmtlci1jc3AtY29ubmVjdC5odHRw
cy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvc2VydmljZS13b3JrZXItY3Nw
LWNvbm5lY3QuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0xLDcgKzEsNiBAQAogCiBQQVNTIENTUCB0
ZXN0IGZvciBjb25uZWN0LXNyYyBpbiBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUgCiBQQVNTIGlt
cG9ydFNjcmlwdHMgdGVzdCBmb3IgY29ubmVjdC1zcmMgCi1QQVNTIGV2YWwgdGVzdCBmb3IgY29u
bmVjdC1zcmMgCiBQQVNTIEZldGNoIHRlc3QgZm9yIGNvbm5lY3Qtc3JjIAogUEFTUyBSZWRpcmVj
dGVkIGZldGNoIHRlc3QgZm9yIGNvbm5lY3Qtc3JjIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9zZXJ2aWNlLXdvcmtlci1jc3AtZGVmYXVsdC5odHRwcy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci9zZXJ2aWNlLXdvcmtlci1jc3AtZGVmYXVsdC5odHRwcy1leHBlY3Rl
ZC50eHQKaW5kZXggNzZmOTE4NmNmOWJlMGMzNmRhNzJiYzNiYzA0ZWQ1NmRjNjQzZDhjMi4uZjQx
OGNiODM1YmNhZGVhYjNkOGU0NTkwZjZlZjBiZWI0OWM0NmFiZSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvc2VydmljZS13b3JrZXItY3NwLWRlZmF1bHQuaHR0cHMtZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3NlcnZpY2Utd29ya2VyLWNzcC1kZWZhdWx0Lmh0dHBz
LWV4cGVjdGVkLnR4dApAQCAtMSw3ICsxLDYgQEAKIAogUEFTUyBDU1AgdGVzdCBmb3IgZGVmYXVs
dC1zcmMgaW4gU2VydmljZVdvcmtlckdsb2JhbFNjb3BlIAogUEFTUyBpbXBvcnRTY3JpcHRzIHRl
c3QgZm9yIGRlZmF1bHQtc3JjIAotUEFTUyBldmFsIHRlc3QgZm9yIGRlZmF1bHQtc3JjIAogUEFT
UyBGZXRjaCB0ZXN0IGZvciBkZWZhdWx0LXNyYyAKIFBBU1MgUmVkaXJlY3RlZCBmZXRjaCB0ZXN0
IGZvciBkZWZhdWx0LXNyYyAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvc2Vydmlj
ZS13b3JrZXItY3NwLXNjcmlwdC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9zZXJ2aWNlLXdvcmtlci1jc3Atc2NyaXB0Lmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCAxNTMz
ODhhODBjYmZiYzI2MzA5YmVmZTU4MjA2MDU2YWU2MTcyNGQ2Li5kMzdhN2I1ZDdiM2UzMWJiZjUw
ZjZlY2ExZWNkYmFlZmViODVlODdhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9zZXJ2
aWNlLXdvcmtlci1jc3Atc2NyaXB0Lmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9zZXJ2aWNlLXdvcmtlci1jc3Atc2NyaXB0Lmh0dHBzLWV4cGVjdGVkLnR4dApAQCAt
MSw3ICsxLDYgQEAKIAogUEFTUyBDU1AgdGVzdCBmb3Igc2NyaXB0LXNyYyBpbiBTZXJ2aWNlV29y
a2VyR2xvYmFsU2NvcGUgCiBQQVNTIGltcG9ydFNjcmlwdHMgdGVzdCBmb3Igc2NyaXB0LXNyYyAK
LVBBU1MgZXZhbCB0ZXN0IGZvciBzY3JpcHQtc3JjIAogUEFTUyBGZXRjaCB0ZXN0IGZvciBzY3Jp
cHQtc3JjIAogUEFTUyBSZWRpcmVjdGVkIGZldGNoIHRlc3QgZm9yIHNjcmlwdC1zcmMgCiAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3NlcnZpY2Utd29ya2VyLWhlYWRlci5odHRwcy1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9zZXJ2aWNlLXdvcmtlci1oZWFkZXIuaHR0
cHMtZXhwZWN0ZWQudHh0CmluZGV4IDAzMjRkNzdlYTE1YWM0NzZiYTJiZjM0NjZlODI5NjI1OTAx
MTEzZDQuLjc0NjMyNjRiYTRhN2Y5YzIwY2ZjMGU5MzQ1NDMyZDU0M2FjNDQwNTQgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3NlcnZpY2Utd29ya2VyLWhlYWRlci5odHRwcy1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvc2VydmljZS13b3JrZXItaGVhZGVyLmh0dHBz
LWV4cGVjdGVkLnR4dApAQCAtMSwzICsxLDMgQEAKIAotUEFTUyBBIHJlcXVlc3QgdG8gZmV0Y2gg
c2VydmljZSB3b3JrZXIgbWFpbiBzY3JpcHQgc2hvdWxkIGhhdmUgU2VydmljZS1Xb3JrZXIgaGVh
ZGVyIGFuZCBpbXBvcnRlZCBzY3JpcHRzIHNob3VsZCBub3QgaGF2ZSBvbmUgCitQQVNTIEEgcmVx
dWVzdCB0byBmZXRjaCBzZXJ2aWNlIHdvcmtlciBzY3JpcHQgc2hvdWxkIGhhdmUgU2VydmljZS1X
b3JrZXIgaGVhZGVyIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9zZXJ2aWNlLXdv
cmtlci1oZWFkZXIuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3NlcnZpY2Utd29ya2Vy
LWhlYWRlci5odHRwcy5odG1sCmluZGV4IGZiOTAyY2QxYjQ1NWQxMzBjODk5Y2YwNmJmMDVjMzIx
ODRkMmI1NDMuLjI1ODQ0ODVjNjVhYjYwZThiNDI5YzNkYjY2ZmM0M2E4MTU3YThlZDUgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3NlcnZpY2Utd29ya2VyLWhlYWRlci5odHRwcy5odG1s
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3NlcnZpY2Utd29ya2VyLWhlYWRlci5odHRwcy5odG1s
CkBAIC01LDE5ICs1LDE0IEBACiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Rlc3QtaGVscGVycy5z
dWIuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KIAotcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewot
ICBjb25zdCBzY3JpcHQgPSAncmVzb3VyY2VzL3NlcnZpY2Utd29ya2VyLWhlYWRlci5weScKLSAg
ICArICc/aGVhZGVyJmltcG9ydD1zZXJ2aWNlLXdvcmtlci1oZWFkZXIucHk/bm8taGVhZGVyJzsK
K3Byb21pc2VfdGVzdCh0ID0+IHsKKyAgY29uc3Qgc2NyaXB0ID0gJ3Jlc291cmNlcy9zZXJ2aWNl
LXdvcmtlci1oZWFkZXIucHknOwogICBjb25zdCBzY29wZSA9ICdyZXNvdXJjZXMvc2VydmljZS13
b3JrZXItaGVhZGVyJzsKLSAgY29uc3QgZXhwZWN0ZWRfdXJsID0gbm9ybWFsaXplVVJMKHNjcmlw
dCk7Ci0gIGNvbnN0IHJlZ2lzdHJhdGlvbiA9Ci0gICAgYXdhaXQgc2VydmljZV93b3JrZXJfdW5y
ZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgc2NyaXB0LCBzY29wZSk7Ci0gIHQuYWRkX2NsZWFudXAo
KCkgPT4gcmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIoKSk7Ci0gIGFzc2VydF90cnVlKHJlZ2lzdHJh
dGlvbiBpbnN0YW5jZW9mIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24pOwotCi0gIGF3YWl0IHdh
aXRfZm9yX3N0YXRlKHQsIHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7Ci0g
IGF3YWl0IHJlZ2lzdHJhdGlvbi51cGRhdGUoKTsKLX0sICdBIHJlcXVlc3QgdG8gZmV0Y2ggc2Vy
dmljZSB3b3JrZXIgbWFpbiBzY3JpcHQgc2hvdWxkIGhhdmUgU2VydmljZS1Xb3JrZXIgJwotICAr
ICdoZWFkZXIgYW5kIGltcG9ydGVkIHNjcmlwdHMgc2hvdWxkIG5vdCBoYXZlIG9uZScpOworICBy
ZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgc2NyaXB0LCBz
Y29wZSkKKyAgICAudGhlbihyZWdpc3RyYXRpb24gPT4geworICAgICAgYXNzZXJ0X3RydWUocmVn
aXN0cmF0aW9uIGluc3RhbmNlb2YgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbik7CisgICAgICBy
ZXR1cm4gcmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIoKTsKKyAgICB9KTsKK30sICdBIHJlcXVlc3Qg
dG8gZmV0Y2ggc2VydmljZSB3b3JrZXIgc2NyaXB0IHNob3VsZCBoYXZlIFNlcnZpY2UtV29ya2Vy
IGhlYWRlcicpOwogCiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Nl
cnZpY2V3b3JrZXItbWVzc2FnZS1ldmVudC1oaXN0b3JpY2FsLmh0dHBzLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9zZXJ2aWNld29ya2VyLW1lc3NhZ2UtZXZlbnQtaGlzdG9yaWNhbC5odHRwcy5o
dG1sCmluZGV4IGZhYzhmMjA3NmZiNjQ4NzA1NTAyMzZkZDI3NDcwOTAyY2RiZTA0MGMuLjJmNzgw
YTYwNDI4MmRjMjgxZWJlNzVhOTY0ZWQyNGY4MzJhMjRlM2EgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL3NlcnZpY2V3b3JrZXItbWVzc2FnZS1ldmVudC1oaXN0b3JpY2FsLmh0dHBzLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvc2VydmljZXdvcmtlci1tZXNzYWdlLWV2ZW50LWhp
c3RvcmljYWwuaHR0cHMuaHRtbApAQCAtMTAsMTAgKzEwLDYgQEAgcHJvbWlzZV90ZXN0KGZ1bmN0
aW9uKHQpIHsKICAgICB2YXIgdXJsID0gJ3Jlc291cmNlcy9wb3N0bWVzc2FnZS10by1jbGllbnQt
d29ya2VyLmpzJzsKICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVn
aXN0ZXIodCwgdXJsLCBzY29wZSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKHIpIHsKLSAgICAgICAg
ICB0LmFkZF9jbGVhbnVwKGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICByZXR1cm4gc2Vydmlj
ZV93b3JrZXJfdW5yZWdpc3Rlcih0LCBzY29wZSk7Ci0gICAgICAgICAgICB9KTsKLQogICAgICAg
ICAgIHJldHVybiB3YWl0X2Zvcl9zdGF0ZSh0LCByLmluc3RhbGxpbmcsICdhY3RpdmF0ZWQnKTsK
ICAgICAgICAgfSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKCkgewpAQCAtMzksNiArMzUsOSBAQCBw
cm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewogICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAg
ICAgICB3b3JrZXIucG9zdE1lc3NhZ2UoJ1BJTkcnKTsKICAgICAgICAgICAgIH0pOworICAgICAg
ICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7CisgICAgICAgICAgcmV0dXJuIHNlcnZpY2Vf
d29ya2VyX3VucmVnaXN0ZXJfYW5kX2RvbmUodCwgc2NvcGUpOwogICAgICAgICB9KTsKICAgfSwg
J1Rlc3QgTWVzc2FnZUV2ZW50IHN1cHBsYW50cyBTZXJ2aWNlV29ya2VyTWVzc2FnZUV2ZW50Licp
OwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9zaGFyZWQtd29ya2VyLWNvbnRyb2xs
ZWQuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3NoYXJlZC13b3JrZXItY29udHJvbGxl
ZC5odHRwcy5odG1sCmluZGV4IDAzMjBjMDJhNGZhMmI4MDY2YmM2ZjYwM2JmN2FiYzNlZWZlMWMz
YjMuLjMzZDUyZTAxMTk5YzJiZGMwZTg1ZGY3ZDgxMDZkZGQ5NzBhYWUwODIgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL3NoYXJlZC13b3JrZXItY29udHJvbGxlZC5odHRwcy5odG1sCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3NoYXJlZC13b3JrZXItY29udHJvbGxlZC5odHRwcy5odG1s
CkBAIC0xMiwxMCArMTIsNiBAQCBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewogCiAgICAgcmV0
dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHNlcnZpY2Vfd29y
a2VyLCBzY29wZSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKHIpIHsKLSAgICAgICAgICB0LmFkZF9j
bGVhbnVwKGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICByZXR1cm4gc2VydmljZV93b3JrZXJf
dW5yZWdpc3Rlcih0LCBzY29wZSk7Ci0gICAgICAgICAgICB9KTsKLQogICAgICAgICAgIHJldHVy
biB3YWl0X2Zvcl9zdGF0ZSh0LCByLmluc3RhbGxpbmcsICdhY3RpdmF0ZWQnKTsKICAgICAgICAg
fSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKCkgewpAQCAtMjgsNiArMjQsNyBAQCBwcm9taXNlX3Rl
c3QoZnVuY3Rpb24odCkgewogICAgICAgICB9KQogICAgICAgLnRoZW4oZnVuY3Rpb24oZGF0YSkg
ewogICAgICAgICAgIGFzc2VydF9lcXVhbHMoZGF0YSwgJ2ludGVyY2VwdGVkIGJ5IHNlcnZpY2Ug
d29ya2VyJyk7CisgICAgICAgICAgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfZG9uZSh0
LCBzY29wZSk7CiAgICAgICAgIH0pOwogICB9LCAnVmVyaWZ5IHN1YnJlc291cmNlIGxvYWRzIGlu
IFNoYXJlZFdvcmtlciBhcmUgY29udHJvbGxlZCBieSBhIFNlcnZpY2UgV29ya2VyJyk7CiAKQEAg
LTM4LDEwICszNSw2IEBAIHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7CiAKICAgICByZXR1cm4g
c2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgc2VydmljZV93b3JrZXIs
IHNjb3BlKQogICAgICAgLnRoZW4oZnVuY3Rpb24ocikgewotICAgICAgICAgIHQuYWRkX2NsZWFu
dXAoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJl
Z2lzdGVyKHQsIHNjb3BlKTsKLSAgICAgICAgICAgIH0pOwotCiAgICAgICAgICAgcmV0dXJuIHdh
aXRfZm9yX3N0YXRlKHQsIHIuaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOwogICAgICAgICB9KQog
ICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7CkBAIC01NCw2ICs0Nyw3IEBAIHByb21pc2VfdGVzdChm
dW5jdGlvbih0KSB7CiAgICAgICAgIH0pCiAgICAgICAudGhlbihmdW5jdGlvbihkYXRhKSB7CiAg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhkYXRhLCAnd29ya2VyIGxvYWRpbmcgaW50ZXJjZXB0ZWQg
Ynkgc2VydmljZSB3b3JrZXInKTsKKyAgICAgICAgICBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVy
X2FuZF9kb25lKHQsIHNjb3BlKTsKICAgICAgICAgfSk7CiAgIH0sICdWZXJpZnkgU2hhcmVkV29y
a2VyIGNvbnN0cnVjdGlvbiBpcyBjb250cm9sbGVkIGJ5IGEgU2VydmljZSBXb3JrZXInKTsKIApA
QCAtNjQsMTAgKzU4LDYgQEAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKIAogICAgIHJldHVy
biBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCBzZXJ2aWNlX3dvcmtl
ciwgc2NvcGUpCiAgICAgICAudGhlbihmdW5jdGlvbihyKSB7Ci0gICAgICAgICAgdC5hZGRfY2xl
YW51cChmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3Vu
cmVnaXN0ZXIodCwgc2NvcGUpOwotICAgICAgICAgICAgfSk7Ci0KICAgICAgICAgICByZXR1cm4g
d2FpdF9mb3Jfc3RhdGUodCwgci5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7CiAgICAgICAgIH0p
CiAgICAgICAudGhlbihmdW5jdGlvbigpIHsKQEAgLTgwLDYgKzcwLDcgQEAgcHJvbWlzZV90ZXN0
KGZ1bmN0aW9uKHQpIHsKICAgICAgICAgfSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKGRhdGEpIHsK
ICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGRhdGEsICd3b3JrZXIgbG9hZGluZyBpbnRlcmNlcHRl
ZCBieSBzZXJ2aWNlIHdvcmtlcicpOworICAgICAgICAgIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0
ZXJfYW5kX2RvbmUodCwgc2NvcGUpOwogICAgICAgICB9KTsKICAgfSwgJ1ZlcmlmeSBpbXBvcnRT
Y3JpcHRzIGZyb20gU2hhcmVkV29ya2VyIGlzIGNvbnRyb2xsZWQgYnkgYSBTZXJ2aWNlIFdvcmtl
cicpOwogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9za2lwLXdhaXRp
bmctaW5zdGFsbGVkLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3NraXAt
d2FpdGluZy1pbnN0YWxsZWQuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IDJmYWI4ZmI2OGRjMTIw
NjkyMzU1NWZiMDIwNjYzMWY4YzhkYWQ3M2IuLjEyMGVkZGRjZmU0YTkxNzY4YTZiYmU5Y2VlNDc0
YzZhZjE1NDVmZWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3NraXAtd2FpdGluZy1p
bnN0YWxsZWQuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3NraXAt
d2FpdGluZy1pbnN0YWxsZWQuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsNCBAQAogCi1Q
QVNTIFRlc3Qgc2tpcFdhaXRpbmcgd2hlbiBhIGluc3RhbGxlZCB3b3JrZXIgaXMgd2FpdGluZyAK
KworRkFJTCBUZXN0IHNraXBXYWl0aW5nIHdoZW4gYSBpbnN0YWxsZWQgd29ya2VyIGlzIHdhaXRp
bmcgYXNzZXJ0X2VxdWFsczogc2tpcFdhaXRpbmcgcHJvbWlzZSBzaG91bGQgYmUgcmVzb2x2ZWQg
d2l0aCB1bmRlZmluZWQgZXhwZWN0ZWQgIlBBU1MiIGJ1dCBnb3QgIkZBSVRMOiBQcm9taXNlIHNo
b3VsZCBiZSByZXNvbHZlZCBiZWZvcmUgU2VydmljZVdvcmtlciNzdGF0ZSBpcyBzZXQgdG8gYWN0
aXZhdGVkIgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9za2lwLXdhaXRpbmctaW5z
dGFsbGVkLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9za2lwLXdhaXRpbmctaW5zdGFs
bGVkLmh0dHBzLmh0bWwKaW5kZXggYjYwNGY2NTFiM2MxZGViMzhkODkxYzc3Mzk0YThmMTc1YTE5
YzM0ZS4uMjFlMjZiZTUxMjg0NTRlZTA1MTQzYjEwYjgwMzljZWI5NWE0OGNkNSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvc2tpcC13YWl0aW5nLWluc3RhbGxlZC5odHRwcy5odG1sCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3NraXAtd2FpdGluZy1pbnN0YWxsZWQuaHR0cHMuaHRtbApA
QCAtMzMsMTAgKzMzLDYgQEAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICAgIH0pOwog
ICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCB1cmwx
LCBzY29wZSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKHIpIHsKLSAgICAgICAgICB0LmFkZF9jbGVh
bnVwKGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5y
ZWdpc3Rlcih0LCBzY29wZSk7Ci0gICAgICAgICAgICB9KTsKLQogICAgICAgICAgIHJldHVybiB3
YWl0X2Zvcl9zdGF0ZSh0LCByLmluc3RhbGxpbmcsICdhY3RpdmF0ZWQnKTsKICAgICAgICAgfSkK
ICAgICAgIC50aGVuKGZ1bmN0aW9uKCkgewpAQCAtNjQsNiArNjAsNyBAQCBwcm9taXNlX3Rlc3Qo
ZnVuY3Rpb24odCkgewogICAgICAgICB9KQogICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7CiAgICAg
ICAgICAgZnJhbWUucmVtb3ZlKCk7CisgICAgICAgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3Vu
cmVnaXN0ZXJfYW5kX2RvbmUodCwgc2NvcGUpOwogICAgICAgICB9KTsKICAgfSwgJ1Rlc3Qgc2tp
cFdhaXRpbmcgd2hlbiBhIGluc3RhbGxlZCB3b3JrZXIgaXMgd2FpdGluZycpOwogCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9za2lwLXdhaXRpbmctdXNpbmctcmVnaXN0cmF0aW9uLmh0
dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9za2lwLXdhaXRpbmctdXNpbmctcmVnaXN0cmF0
aW9uLmh0dHBzLmh0bWwKaW5kZXggNDEyZWUyYTQ0MzhlMjMyOGY2OTMzNzg5MzQ2NWM0YTY2YzY3
MWNlNi4uYTljMzk4YTI2MDY3NmQ5NzZmMGFhYzBjYTQ5NWFhMWE2Yzk0ZTYzMSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvc2tpcC13YWl0aW5nLXVzaW5nLXJlZ2lzdHJhdGlvbi5odHRw
cy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3NraXAtd2FpdGluZy11c2luZy1yZWdpc3Ry
YXRpb24uaHR0cHMuaHRtbApAQCAtMSw2ICsxLDUgQEAKIDwhRE9DVFlQRSBodG1sPgogPHRpdGxl
PlNlcnZpY2UgV29ya2VyOiBTa2lwIHdhaXRpbmcgdXNpbmcgcmVnaXN0cmF0aW9uPC90aXRsZT4K
LTxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciPgogPHNjcmlwdCBzcmM9Ii9yZXNv
dXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMv
dGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9InJlc291cmNlcy90
ZXN0LWhlbHBlcnMuc3ViLmpzIj48L3NjcmlwdD4KQEAgLTUyLDE0ICs1MSwxNCBAQCBwcm9taXNl
X3Rlc3QoZnVuY3Rpb24odCkgewogICAgICAgLnRoZW4oZnVuY3Rpb24ocmVnaXN0cmF0aW9uKSB7
CiAgICAgICAgICAgc3dfcmVnaXN0cmF0aW9uID0gcmVnaXN0cmF0aW9uOwogICAgICAgICAgIHQu
YWRkX2NsZWFudXAoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgIHJldHVybiByZWdpc3RyYXRp
b24udW5yZWdpc3RlcigpOworICAgICAgICAgICAgICByZWdpc3RyYXRpb24udW5yZWdpc3Rlcigp
OwogICAgICAgICAgICAgfSk7CiAgICAgICAgICAgcmV0dXJuIHNhd19jb250cm9sbGVyY2hhbmdl
ZDsKICAgICAgICAgfSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKCkgewogICAgICAgICAgIGFzc2Vy
dF9ub3RfZXF1YWxzKHN3X3JlZ2lzdHJhdGlvbi5hY3RpdmUsIG51bGwsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgJ1JlZ2lzdHJhdGlvbiBhY3RpdmUgd29ya2VyIHNob3VsZCBub3QgYmUg
bnVsbCcpOwotICAgICAgICAgIHJldHVybiBmZXRjaF90ZXN0c19mcm9tX3dvcmtlcihzd19yZWdp
c3RyYXRpb24uYWN0aXZlKTsKKyAgICAgICAgICBmZXRjaF90ZXN0c19mcm9tX3dvcmtlcihzd19y
ZWdpc3RyYXRpb24uYWN0aXZlKTsKICAgICAgICAgfSk7CiAgIH0sICdUZXN0IHNraXBXYWl0aW5n
IHdoaWxlIGEgY2xpZW50IGlzIHVzaW5nIHRoZSByZWdpc3RyYXRpb24nKTsKIApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvc2tpcC13YWl0aW5nLXdpdGhvdXQtdXNpbmctcmVnaXN0cmF0
aW9uLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9za2lwLXdhaXRpbmctd2l0aG91dC11
c2luZy1yZWdpc3RyYXRpb24uaHR0cHMuaHRtbAppbmRleCBjZWQ2NGU1ZjY3ZmI2NjdlNWMyMzMw
NTVhZDkyMGRiZGEwMzM2MzM2Li5kYmUyYmRlNzhkM2MwYjRiZDY4OTY3MTg4ZDY2OGM0NTU3MTQx
MjFmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9za2lwLXdhaXRpbmctd2l0aG91dC11
c2luZy1yZWdpc3RyYXRpb24uaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9za2lw
LXdhaXRpbmctd2l0aG91dC11c2luZy1yZWdpc3RyYXRpb24uaHR0cHMuaHRtbApAQCAtMSw2ICsx
LDUgQEAKIDwhRE9DVFlQRSBodG1sPgogPHRpdGxlPlNlcnZpY2UgV29ya2VyOiBTa2lwIHdhaXRp
bmcgd2l0aG91dCB1c2luZyByZWdpc3RyYXRpb248L3RpdGxlPgotPG1ldGEgbmFtZT0idGltZW91
dCIgY29udGVudD0ibG9uZyI+CiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5q
cyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5q
cyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Rlc3QtaGVscGVycy5zdWIuanMi
Pjwvc2NyaXB0PgpAQCAtMjgsNyArMjcsNyBAQCBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewog
ICAgICAgLnRoZW4oZnVuY3Rpb24ocmVnaXN0cmF0aW9uKSB7CiAgICAgICAgICAgc3dfcmVnaXN0
cmF0aW9uID0gcmVnaXN0cmF0aW9uOwogICAgICAgICAgIHQuYWRkX2NsZWFudXAoZnVuY3Rpb24o
KSB7Ci0gICAgICAgICAgICAgIHJldHVybiByZWdpc3RyYXRpb24udW5yZWdpc3RlcigpOworICAg
ICAgICAgICAgICByZWdpc3RyYXRpb24udW5yZWdpc3RlcigpOwogICAgICAgICAgICAgfSk7CiAg
ICAgICAgICAgcmV0dXJuIHdhaXRfZm9yX3N0YXRlKHQsIHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5n
LCAnYWN0aXZhdGVkJyk7CiAgICAgICAgIH0pCkBAIC0zNyw3ICszNiw3IEBAIHByb21pc2VfdGVz
dChmdW5jdGlvbih0KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAnRG9jdW1lbnQgY29udHJv
bGxlciBzaG91bGQgc3RpbGwgYmUgbnVsbCcpOwogICAgICAgICAgIGFzc2VydF9ub3RfZXF1YWxz
KHN3X3JlZ2lzdHJhdGlvbi5hY3RpdmUsIG51bGwsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgJ1JlZ2lzdHJhdGlvbiBhY3RpdmUgd29ya2VyIHNob3VsZCBub3QgYmUgbnVsbCcpOwotICAg
ICAgICAgIHJldHVybiBmZXRjaF90ZXN0c19mcm9tX3dvcmtlcihzd19yZWdpc3RyYXRpb24uYWN0
aXZlKTsKKyAgICAgICAgICBmZXRjaF90ZXN0c19mcm9tX3dvcmtlcihzd19yZWdpc3RyYXRpb24u
YWN0aXZlKTsKICAgICAgICAgfSk7CiAgIH0sICdUZXN0IHNraXBXYWl0aW5nIHdoaWxlIGEgY2xp
ZW50IGlzIG5vdCBiZWluZyBjb250cm9sbGVkJyk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL3NraXAtd2FpdGluZy5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvc2tpcC13
YWl0aW5nLmh0dHBzLmh0bWwKaW5kZXggZjgzOTJmYzk1NWI0NmNkZDlmMWRlYjVhNzMxOWI4ZjNm
MzVkOTFkZC4uNDhiNWE4YzlhZWViNDA2NDhjNGQyOTU0OTJkNGE0NGI5NTdkNzg4ZiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvc2tpcC13YWl0aW5nLmh0dHBzLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvc2tpcC13YWl0aW5nLmh0dHBzLmh0bWwKQEAgLTE0LDEwICsxNCw2IEBA
IHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7CiAgICAgdmFyIHN3X3JlZ2lzdHJhdGlvbiwgYWN0
aXZhdGVkX3dvcmtlciwgd2FpdGluZ193b3JrZXI7CiAgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2Vy
X3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHVybDEsIHNjb3BlKQogICAgICAgLnRoZW4oZnVu
Y3Rpb24ocmVnaXN0cmF0aW9uKSB7Ci0gICAgICAgICAgdC5hZGRfY2xlYW51cChmdW5jdGlvbigp
IHsKLSAgICAgICAgICAgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXIodCwgc2Nv
cGUpOwotICAgICAgICAgICAgfSk7Ci0KICAgICAgICAgICBzd19yZWdpc3RyYXRpb24gPSByZWdp
c3RyYXRpb247CiAgICAgICAgICAgcmV0dXJuIHdhaXRfZm9yX3N0YXRlKHQsIHJlZ2lzdHJhdGlv
bi5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7CiAgICAgICAgIH0pCkBAIC01Miw2ICs0OCw3IEBA
IHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAnV29y
a2VyIHdpdGggdXJsMiBzaG91bGQgYmUgcmVkdW5kYW50Jyk7CiAgICAgICAgICAgYXNzZXJ0X2Vx
dWFscyhzd19yZWdpc3RyYXRpb24uYWN0aXZlLnNjcmlwdFVSTCwgbm9ybWFsaXplVVJMKHVybDMp
LAogICAgICAgICAgICAgICAgICAgICAgICAgJ1dvcmtlciB3aXRoIHVybDMgc2hvdWxkIGJlIGFj
dGl2YXRlZCcpOworICAgICAgICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2Fu
ZF9kb25lKHQsIHNjb3BlKTsKICAgICAgICAgfSk7CiAgIH0sICdUZXN0IHNraXBXYWl0aW5nIHdp
dGggYm90aCBhY3RpdmUgYW5kIHdhaXRpbmcgd29ya2VycycpOwogCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9zdGF0ZS5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvc3RhdGUu
aHR0cHMuaHRtbAppbmRleCA3MzU4ZTU4ZmYxNGE3NGUwNDUxNGViOTQzMjE1MTU3NmNmNjJiOTA1
Li4zODEwMzYyZTA1MzMwNTY5Zjk3Yjc2MTJjYWUxYzkzZjgxMzVjZjM4IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci9zdGF0ZS5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L3N0YXRlLmh0dHBzLmh0bWwKQEAgLTQsMjQgKzQsMjEgQEAKIDxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvdGVzdC1oZWxwZXJzLnN1Yi5qcyI+PC9zY3JpcHQ+CiA8Ym9keT4KIDxzY3JpcHQ+Ci1wcm9t
aXNlX3Rlc3QoZnVuY3Rpb24gKHQpIHsKKyhmdW5jdGlvbiAoKSB7CisgICAgdmFyIHQgPSBhc3lu
Y190ZXN0KCdTZXJ2aWNlIFdvcmtlciBzdGF0ZSBwcm9wZXJ0eSBhbmQgInN0YXRlY2hhbmdlIiBl
dmVudCcpOwogICAgIHZhciBjdXJyZW50U3RhdGUgPSAndGVzdC1pcy1zdGFydGluZyc7CiAgICAg
dmFyIHNjb3BlID0gJ3Jlc291cmNlcy9zdGF0ZS8nOwogCi0gICAgcmV0dXJuIHNlcnZpY2Vfd29y
a2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKAorICAgIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0
ZXJfYW5kX3JlZ2lzdGVyKAogICAgICAgICB0LCAncmVzb3VyY2VzL2VtcHR5LXdvcmtlci5qcycs
IHNjb3BlKQotICAgICAgLnRoZW4oZnVuY3Rpb24ocmVnaXN0cmF0aW9uKSB7Ci0gICAgICAgICAg
dC5hZGRfY2xlYW51cChmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgcmV0dXJuIHNlcnZpY2Vf
d29ya2VyX3VucmVnaXN0ZXIodCwgc2NvcGUpOwotICAgICAgICAgICAgfSk7Ci0KKyAgICAgIC50
aGVuKHQuc3RlcF9mdW5jKGZ1bmN0aW9uKHJlZ2lzdHJhdGlvbikgewogICAgICAgICAgIHZhciBz
dyA9IHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nOwotCisgICAgICAgICAgc3cuYWRkRXZlbnRMaXN0
ZW5lcignc3RhdGVjaGFuZ2UnLCB0LnN0ZXBfZnVuYyhvblN0YXRlQ2hhbmdlKHN3KSkpOwogICAg
ICAgICAgIGFzc2VydF9lcXVhbHMoc3cuc3RhdGUsICdpbnN0YWxsaW5nJywKICAgICAgICAgICAg
ICAgICAgICAgICAgICd0aGUgc2VydmljZSB3b3JrZXIgc2hvdWxkIGJlIGluICJpbnN0YWxsaW5n
IiBzdGF0ZS4nKTsKICAgICAgICAgICBjaGVja1N0YXRlVHJhbnNpdGlvbihzdy5zdGF0ZSk7Ci0g
ICAgICAgICAgcmV0dXJuIG9uU3RhdGVDaGFuZ2Uoc3cpOwotICAgICAgICB9KTsKKyAgICAgICAg
fSkpCisgICAgICAuY2F0Y2godW5yZWFjaGVkX3JlamVjdGlvbih0KSk7CiAKICAgICBmdW5jdGlv
biBjaGVja1N0YXRlVHJhbnNpdGlvbihuZXdTdGF0ZSkgewogICAgICAgICBzd2l0Y2ggKGN1cnJl
bnRTdGF0ZSkgewpAQCAtNTIsOSArNDksNyBAQCBwcm9taXNlX3Rlc3QoZnVuY3Rpb24gKHQpIHsK
ICAgICB9CiAKICAgICBmdW5jdGlvbiBvblN0YXRlQ2hhbmdlKGV4cGVjdGVkVGFyZ2V0KSB7Ci0g
ICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSkgewotICAgICAgICAgICAg
ZXhwZWN0ZWRUYXJnZXQuYWRkRXZlbnRMaXN0ZW5lcignc3RhdGVjaGFuZ2UnLCByZXNvbHZlKTsK
LSAgICAgICAgICB9KS50aGVuKGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgIHJldHVybiBmdW5j
dGlvbihldmVudCkgewogICAgICAgICAgICAgYXNzZXJ0X3RydWUoZXZlbnQudGFyZ2V0IGluc3Rh
bmNlb2YgU2VydmljZVdvcmtlciwKICAgICAgICAgICAgICAgICAgICAgICAgICd0aGUgdGFyZ2V0
IG9mIHRoZSBzdGF0ZWNoYW5nZSBldmVudCBzaG91bGQgYmUgYSAnICsKICAgICAgICAgICAgICAg
ICAgICAgICAgICdTZXJ2aWNlV29ya2VyLicpOwpAQCAtNjYsOSArNjEsOSBAQCBwcm9taXNlX3Rl
c3QoZnVuY3Rpb24gKHQpIHsKIAogICAgICAgICAgICAgY2hlY2tTdGF0ZVRyYW5zaXRpb24oZXZl
bnQudGFyZ2V0LnN0YXRlKTsKIAotICAgICAgICAgICAgaWYgKGV2ZW50LnRhcmdldC5zdGF0ZSAh
PSAnYWN0aXZhdGVkJykKLSAgICAgICAgICAgICAgICByZXR1cm4gb25TdGF0ZUNoYW5nZShleHBl
Y3RlZFRhcmdldCk7Ci0gICAgICAgICAgfSk7CisgICAgICAgICAgICBpZiAoZXZlbnQudGFyZ2V0
LnN0YXRlID09ICdhY3RpdmF0ZWQnKQorICAgICAgICAgICAgICAgIHNlcnZpY2Vfd29ya2VyX3Vu
cmVnaXN0ZXJfYW5kX2RvbmUodCwgc2NvcGUpOworICAgICAgICB9OwogICAgIH0KLX0sICdTZXJ2
aWNlIFdvcmtlciBzdGF0ZSBwcm9wZXJ0eSBhbmQgInN0YXRlY2hhbmdlIiBldmVudCcpOworfSgp
KTsKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvc3luY2VkLXN0YXRl
Lmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9zeW5jZWQtc3RhdGUuaHR0cHMuaHRtbApp
bmRleCAwZTlmNjNhOWEyZTUyOGU3ZmZiOGY5OTEzZWRmZmM4ZTAyOTRhZDk4Li5jNGE5YjY2NTVj
YjA2NjBhNzhhMjdjNTIzNTkxYzQ5NTNkM2I3N2E5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9zeW5jZWQtc3RhdGUuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9zeW5j
ZWQtc3RhdGUuaHR0cHMuaHRtbApAQCAtMzMsNyArMzMsNyBAQCBwcm9taXNlX3Rlc3QoZnVuY3Rp
b24odCkgewogICAgICAgICAgIHdvcmtlciA9IHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nOwogCiAg
ICAgICAgICAgdC5hZGRfY2xlYW51cChmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgcmV0dXJu
IHIudW5yZWdpc3RlcigpOworICAgICAgICAgICAgICByLnVucmVnaXN0ZXIoKTsKICAgICAgICAg
ICAgIH0pOwogCiAgICAgICAgICAgcmV0dXJuIG5leHRDaGFuZ2Uod29ya2VyKTsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VuY29udHJvbGxlZC1wYWdlLmh0dHBzLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci91bmNvbnRyb2xsZWQtcGFnZS5odHRwcy5odG1sCmluZGV4IGUyMmNhOGYw
YTkxYWRmOWZiY2Y2NGM3N2NkM2QxZDRkZjI3OTU2ZjMuLmE5NTIzYTU0Y2RjZTI3Y2NkZGI1ODYw
MTIxMTAxY2RkMWJkYjUwY2MgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VuY29udHJv
bGxlZC1wYWdlLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdW5jb250cm9sbGVk
LXBhZ2UuaHR0cHMuaHRtbApAQCAtMTksMTQgKzE5LDEwIEBAIGZ1bmN0aW9uIGZldGNoX3VybCh1
cmwpIHsKIH0KIHZhciB3b3JrZXIgPSAncmVzb3VyY2VzL2ZhaWwtb24tZmV0Y2gtd29ya2VyLmpz
JzsKIAotcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKK2FzeW5jX3Rlc3QoZnVuY3Rpb24odCkg
ewogICAgIHZhciBzY29wZSA9ICdyZXNvdXJjZXMvc2NvcGUvdW5jb250cm9sbGVkLXBhZ2UvJzsK
LSAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgd29y
a2VyLCBzY29wZSkKKyAgICBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0
LCB3b3JrZXIsIHNjb3BlKQogICAgICAgLnRoZW4oZnVuY3Rpb24ocmVnKSB7Ci0gICAgICAgICAg
dC5hZGRfY2xlYW51cChmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgcmV0dXJuIHNlcnZpY2Vf
d29ya2VyX3VucmVnaXN0ZXIodCwgc2NvcGUpOwotICAgICAgICAgICAgfSk7Ci0KICAgICAgICAg
ICByZXR1cm4gd2FpdF9mb3Jfc3RhdGUodCwgcmVnLmluc3RhbGxpbmcsICdhY3RpdmF0ZWQnKTsK
ICAgICAgICAgfSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKCkgewpAQCAtMzQsNiArMzAsMTAgQEAg
cHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICAgICAgfSkKICAgICAgIC50aGVuKGZ1bmN0
aW9uKHRleHQpIHsKICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHRleHQsICdhIHNpbXBsZSB0ZXh0
IGZpbGVcbicpOwotICAgICAgICB9KTsKKyAgICAgICAgICBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lz
dGVyX2FuZF9kb25lKHQsIHNjb3BlKTsKKyAgICAgICAgfSkKKyAgICAgIC5jYXRjaCh0LnN0ZXBf
ZnVuYyhmdW5jdGlvbihyZWFzb24pIHsKKyAgICAgICAgICBhc3NlcnRfdW5yZWFjaGVkKHJlYXNv
bi5tZXNzYWdlKTsKKyAgICAgICAgfSkpOwogICB9LCAnRmV0Y2ggZXZlbnRzIHNob3VsZCBub3Qg
Z28gdGhyb3VnaCB1bmNvbnRyb2xsZWQgcGFnZS4nKTsKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvdW5yZWdpc3Rlci10aGVuLXJlZ2lzdGVyLW5ldy1zY3JpcHQuaHR0
cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdW5yZWdpc3Rlci10aGVuLXJlZ2lz
dGVyLW5ldy1zY3JpcHQuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IDE5ODhmZWU3MzhmZDFkMjdk
MWY3YzA1ZDdhZGRkZTY3ZDQ3N2U2YmEuLjY5NWJjYmMwNTJjYjJiZDM0NzU0MzM4NzE1ZDYyODk0
ZTdmMjg5ODIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VucmVnaXN0ZXItdGhlbi1y
ZWdpc3Rlci1uZXctc2NyaXB0Lmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci91bnJlZ2lzdGVyLXRoZW4tcmVnaXN0ZXItbmV3LXNjcmlwdC5odHRwcy1leHBlY3RlZC50
eHQKQEAgLTEsNSArMSw2IEBACiAKLVBBU1MgUmVnaXN0ZXJpbmcgYSBuZXcgc2NyaXB0IFVSTCB3
aGlsZSBhbiB1bnJlZ2lzdGVyZWQgcmVnaXN0cmF0aW9uIGlzIGluIHVzZSAKLVBBU1MgUmVnaXN0
ZXJpbmcgYSBuZXcgc2NyaXB0IFVSTCB0aGF0IDQwNHMgZG9lcyBub3QgcmVzdXJyZWN0IHVucmVn
aXN0ZXJlZCByZWdpc3RyYXRpb24gCi1QQVNTIFJlZ2lzdGVyaW5nIGEgbmV3IHNjcmlwdCBVUkwg
dGhhdCBmYWlscyB0byBpbnN0YWxsIGRvZXMgbm90IHJlc3VycmVjdCB1bnJlZ2lzdGVyZWQgcmVn
aXN0cmF0aW9uIAorCitGQUlMIFJlZ2lzdGVyaW5nIGEgbmV3IHNjcmlwdCBVUkwgd2hpbGUgYW4g
dW5yZWdpc3RlcmVkIHJlZ2lzdHJhdGlvbiBpcyBpbiB1c2UgYXNzZXJ0X3VucmVhY2hlZDogdW5l
eHBlY3RlZCByZWplY3Rpb246IG51bGwgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAncmVn
aXN0cmF0aW9uLmluc3RhbGxpbmcuc2NyaXB0VVJMJykgUmVhY2hlZCB1bnJlYWNoYWJsZSBjb2Rl
CitGQUlMIFJlZ2lzdGVyaW5nIGEgbmV3IHNjcmlwdCBVUkwgdGhhdCA0MDRzIGRvZXMgcmVzdXJy
ZWN0IGFuIHVucmVnaXN0ZXJlZCByZWdpc3RyYXRpb24gYXNzZXJ0X3VucmVhY2hlZDogdW5leHBl
Y3RlZCByZWplY3Rpb246IG51bGwgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnZnJhbWUu
Y29udGVudFdpbmRvdy5uYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5jb250cm9sbGVyLnNjcmlwdFVS
TCcpIFJlYWNoZWQgdW5yZWFjaGFibGUgY29kZQorRkFJTCBSZWdpc3RlcmluZyBhIG5ldyBzY3Jp
cHQgVVJMIHRoYXQgZmFpbHMgdG8gaW5zdGFsbCBkb2VzIHJlc3VycmVjdCBhbiB1bnJlZ2lzdGVy
ZWQgcmVnaXN0cmF0aW9uIGFzc2VydF91bnJlYWNoZWQ6IHVuZXhwZWN0ZWQgcmVqZWN0aW9uOiBu
dWxsIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ3JlZ2lzdHJhdGlvbi5hY3RpdmUuc2Ny
aXB0VVJMJykgUmVhY2hlZCB1bnJlYWNoYWJsZSBjb2RlCiAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL3VucmVnaXN0ZXItdGhlbi1yZWdpc3Rlci1uZXctc2NyaXB0Lmh0dHBzLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci91bnJlZ2lzdGVyLXRoZW4tcmVnaXN0ZXItbmV3LXNjcmlwdC5o
dHRwcy5odG1sCmluZGV4IDQ0NGE1YzM2NTc3NmJlYWYzZjE4NjIzNDEzNDRlOTViNzUzYWZjYWUu
LjU4MjEzMmE3NDJmYzliYjBmYmE2MmVlMDI1MzU2Zjk4MzkzOGRhMWIgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL3VucmVnaXN0ZXItdGhlbi1yZWdpc3Rlci1uZXctc2NyaXB0Lmh0dHBz
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdW5yZWdpc3Rlci10aGVuLXJlZ2lzdGVyLW5l
dy1zY3JpcHQuaHR0cHMuaHRtbApAQCAtNSwxMzIgKzUsMTgwIEBACiA8c2NyaXB0PgogdmFyIHdv
cmtlcl91cmwgPSAncmVzb3VyY2VzL2VtcHR5LXdvcmtlci5qcyc7CiAKLXByb21pc2VfdGVzdChh
c3luYyBmdW5jdGlvbih0KSB7Ci0gIGNvbnN0IHNjb3BlID0gJ3Jlc291cmNlcy9zY29wZS91bnJl
Z2lzdGVyLXRoZW4tcmVnaXN0ZXItbmV3LXNjcmlwdC10aGF0LWV4aXN0cyc7Ci0gIGNvbnN0IHJl
Z2lzdHJhdGlvbiA9IGF3YWl0IHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVy
KHQsIHdvcmtlcl91cmwsIHNjb3BlKTsKLSAgdC5hZGRfY2xlYW51cCgoKSA9PiByZWdpc3RyYXRp
b24udW5yZWdpc3RlcigpKTsKLQotICBjb25zdCBuZXdXb3JrZXJVUkwgPSB3b3JrZXJfdXJsICsg
Jz9uZXcnOwotICBhd2FpdCB3YWl0X2Zvcl9zdGF0ZSh0LCByZWdpc3RyYXRpb24uaW5zdGFsbGlu
ZywgJ2FjdGl2YXRlZCcpOwotCi0gIGNvbnN0IGlmcmFtZSA9IGF3YWl0IHdpdGhfaWZyYW1lKHNj
b3BlKTsKLSAgdC5hZGRfY2xlYW51cCgoKSA9PiBpZnJhbWUucmVtb3ZlKCkpOwotCi0gIGF3YWl0
IHJlZ2lzdHJhdGlvbi51bnJlZ2lzdGVyKCk7Ci0KLSAgY29uc3QgbmV3UmVnaXN0cmF0aW9uID0g
YXdhaXQgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIobmV3V29ya2VyVVJMLCB7IHNj
b3BlIH0pOwotICB0LmFkZF9jbGVhbnVwKCgpID0+IG5ld1JlZ2lzdHJhdGlvbi51bnJlZ2lzdGVy
KCkpOwotCi0gIGFzc2VydF9lcXVhbHMoCi0gICAgcmVnaXN0cmF0aW9uLmluc3RhbGxpbmcsCi0g
ICAgbnVsbCwKLSAgICAnYmVmb3JlIGFjdGl2YXRlZCByZWdpc3RyYXRpb24uaW5zdGFsbGluZycK
LSAgKTsKLSAgYXNzZXJ0X2VxdWFscygKLSAgICByZWdpc3RyYXRpb24ud2FpdGluZywKLSAgICBu
dWxsLAotICAgICdiZWZvcmUgYWN0aXZhdGVkIHJlZ2lzdHJhdGlvbi53YWl0aW5nJwotICApOwot
ICBhc3NlcnRfZXF1YWxzKAotICAgIHJlZ2lzdHJhdGlvbi5hY3RpdmUuc2NyaXB0VVJMLAotICAg
IG5vcm1hbGl6ZVVSTCh3b3JrZXJfdXJsKSwKLSAgICAnYmVmb3JlIGFjdGl2YXRlZCByZWdpc3Ry
YXRpb24uYWN0aXZlJwotICApOwotICBhc3NlcnRfZXF1YWxzKAotICAgIG5ld1JlZ2lzdHJhdGlv
bi5pbnN0YWxsaW5nLnNjcmlwdFVSTCwKLSAgICBub3JtYWxpemVVUkwobmV3V29ya2VyVVJMKSwK
LSAgICAnYmVmb3JlIGFjdGl2YXRlZCBuZXdSZWdpc3RyYXRpb24uaW5zdGFsbGluZycKLSAgKTsK
LSAgYXNzZXJ0X2VxdWFscygKLSAgICBuZXdSZWdpc3RyYXRpb24ud2FpdGluZywKLSAgICBudWxs
LAotICAgICdiZWZvcmUgYWN0aXZhdGVkIG5ld1JlZ2lzdHJhdGlvbi53YWl0aW5nJwotICApOwot
ICBhc3NlcnRfZXF1YWxzKAotICAgIG5ld1JlZ2lzdHJhdGlvbi5hY3RpdmUsCi0gICAgbnVsbCwK
LSAgICAnYmVmb3JlIGFjdGl2YXRlZCBuZXdSZWdpc3RyYXRpb24uYWN0aXZlJwotICApOwotICBp
ZnJhbWUucmVtb3ZlKCk7Ci0KLSAgYXdhaXQgd2FpdF9mb3Jfc3RhdGUodCwgbmV3UmVnaXN0cmF0
aW9uLmluc3RhbGxpbmcsICdhY3RpdmF0ZWQnKTsKLQotICBhc3NlcnRfZXF1YWxzKAotICAgIG5l
d1JlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLAotICAgIG51bGwsCi0gICAgJ2FmdGVyIGFjdGl2YXRl
ZCBuZXdSZWdpc3RyYXRpb24uaW5zdGFsbGluZycKLSAgKTsKLSAgYXNzZXJ0X2VxdWFscygKLSAg
ICBuZXdSZWdpc3RyYXRpb24ud2FpdGluZywKLSAgICBudWxsLAotICAgICdhZnRlciBhY3RpdmF0
ZWQgbmV3UmVnaXN0cmF0aW9uLndhaXRpbmcnCi0gICk7Ci0gIGFzc2VydF9lcXVhbHMoCi0gICAg
bmV3UmVnaXN0cmF0aW9uLmFjdGl2ZS5zY3JpcHRVUkwsCi0gICAgbm9ybWFsaXplVVJMKG5ld1dv
cmtlclVSTCksCi0gICAgJ2FmdGVyIGFjdGl2YXRlZCBuZXdSZWdpc3RyYXRpb24uYWN0aXZlJwot
ICApOwotCi0gIGNvbnN0IG5ld0lmcmFtZSA9IGF3YWl0IHdpdGhfaWZyYW1lKHNjb3BlKTsKLSAg
dC5hZGRfY2xlYW51cCgoKSA9PiBuZXdJZnJhbWUucmVtb3ZlKCkpOwotCi0gIGFzc2VydF9lcXVh
bHMoCi0gICAgbmV3SWZyYW1lLmNvbnRlbnRXaW5kb3cubmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIu
Y29udHJvbGxlci5zY3JpcHRVUkwsCi0gICAgbm9ybWFsaXplVVJMKG5ld1dvcmtlclVSTCksCi0g
ICAgJ3RoZSBuZXcgd29ya2VyIHNob3VsZCBjb250cm9sIGEgbmV3IGRvY3VtZW50JwotICApOwor
YXN5bmNfdGVzdChmdW5jdGlvbih0KSB7CisgICAgdmFyIHNjb3BlID0gJ3Jlc291cmNlcy9zY29w
ZS91bnJlZ2lzdGVyLXRoZW4tcmVnaXN0ZXItbmV3LXNjcmlwdC10aGF0LWV4aXN0cyc7CisgICAg
dmFyIG5ld193b3JrZXJfdXJsID0gd29ya2VyX3VybCArICc/bmV3JzsKKyAgICB2YXIgaWZyYW1l
OworICAgIHZhciByZWdpc3RyYXRpb247CisgICAgdmFyIG5ld19yZWdpc3RyYXRpb247CisKKyAg
ICBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCB3b3JrZXJfdXJsLCBz
Y29wZSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKHIpIHsKKyAgICAgICAgICByZWdpc3RyYXRpb24g
PSByOworICAgICAgICAgIHJldHVybiB3YWl0X2Zvcl9zdGF0ZSh0LCByLmluc3RhbGxpbmcsICdh
Y3RpdmF0ZWQnKTsKKyAgICAgICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKCkgeworICAgICAg
ICAgIHJldHVybiB3aXRoX2lmcmFtZShzY29wZSk7CisgICAgICAgIH0pCisgICAgICAudGhlbihm
dW5jdGlvbihmcmFtZSkgeworICAgICAgICAgIGlmcmFtZSA9IGZyYW1lOworICAgICAgICAgIHJl
dHVybiByZWdpc3RyYXRpb24udW5yZWdpc3RlcigpOworICAgICAgICB9KQorICAgICAgLnRoZW4o
ZnVuY3Rpb24oKSB7CisgICAgICAgICAgcmV0dXJuIG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJl
Z2lzdGVyKG5ld193b3JrZXJfdXJsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB7IHNjb3BlOiBzY29wZSB9KTsKKyAgICAgICAgfSkKKyAgICAgIC50
aGVuKGZ1bmN0aW9uKHIpIHsKKyAgICAgICAgICBuZXdfcmVnaXN0cmF0aW9uID0gcjsKKyAgICAg
ICAgICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLnNjcmlwdFVSTCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgIG5vcm1hbGl6ZVVSTChuZXdfd29ya2VyX3VybCksCisgICAg
ICAgICAgICAgICAgICAgICAgICAnYmVmb3JlIGFjdGl2YXRlZCByZWdpc3RyYXRpb24uaW5zdGFs
bGluZycpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVnaXN0cmF0aW9uLndhaXRpbmcsIG51
bGwsCisgICAgICAgICAgICAgICAgICAgICAgICAnYmVmb3JlIGFjdGl2YXRlZCByZWdpc3RyYXRp
b24ud2FpdGluZycpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVnaXN0cmF0aW9uLmFjdGl2
ZS5zY3JpcHRVUkwsIG5vcm1hbGl6ZVVSTCh3b3JrZXJfdXJsKSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICdiZWZvcmUgYWN0aXZhdGVkIHJlZ2lzdHJhdGlvbi5hY3RpdmUnKTsKKyAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKG5ld19yZWdpc3RyYXRpb24uaW5zdGFsbGluZy5zY3JpcHRVUkwsCisg
ICAgICAgICAgICAgICAgICAgICAgICBub3JtYWxpemVVUkwobmV3X3dvcmtlcl91cmwpLAorICAg
ICAgICAgICAgICAgICAgICAgICAgJ2JlZm9yZSBhY3RpdmF0ZWQgbmV3X3JlZ2lzdHJhdGlvbi5p
bnN0YWxsaW5nJyk7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhuZXdfcmVnaXN0cmF0aW9uLndh
aXRpbmcsIG51bGwsCisgICAgICAgICAgICAgICAgICAgICAgICAnYmVmb3JlIGFjdGl2YXRlZCBu
ZXdfcmVnaXN0cmF0aW9uLndhaXRpbmcnKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKG5ld19y
ZWdpc3RyYXRpb24uYWN0aXZlLnNjcmlwdFVSTCwKKyAgICAgICAgICAgICAgICAgICAgICAgIG5v
cm1hbGl6ZVVSTCh3b3JrZXJfdXJsKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICdiZWZvcmUg
YWN0aXZhdGVkIG5ld19yZWdpc3RyYXRpb24uYWN0aXZlJyk7CisgICAgICAgICAgaWZyYW1lLnJl
bW92ZSgpOworICAgICAgICAgIHJldHVybiB3YWl0X2Zvcl9zdGF0ZSh0LCByZWdpc3RyYXRpb24u
aW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOworICAgICAgICB9KQorICAgICAgLnRoZW4oZnVuY3Rp
b24oKSB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhuZXdfcmVnaXN0cmF0aW9uLmluc3RhbGxp
bmcsIG51bGwsCisgICAgICAgICAgICAgICAgICAgICAgICAnYWZ0ZXIgYWN0aXZhdGVkIG5ld19y
ZWdpc3RyYXRpb24uaW5zdGFsbGluZycpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMobmV3X3Jl
Z2lzdHJhdGlvbi53YWl0aW5nLCBudWxsLAorICAgICAgICAgICAgICAgICAgICAgICAgJ2FmdGVy
IGFjdGl2YXRlZCBuZXdfcmVnaXN0cmF0aW9uLndhaXRpbmcnKTsKKyAgICAgICAgICBhc3NlcnRf
ZXF1YWxzKG5ld19yZWdpc3RyYXRpb24uYWN0aXZlLnNjcmlwdFVSTCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgIG5vcm1hbGl6ZVVSTChuZXdfd29ya2VyX3VybCksCisgICAgICAgICAgICAgICAg
ICAgICAgICAnYWZ0ZXIgYWN0aXZhdGVkIG5ld19yZWdpc3RyYXRpb24uYWN0aXZlJyk7CisgICAg
ICAgICAgcmV0dXJuIHdpdGhfaWZyYW1lKHNjb3BlKTsKKyAgICAgICAgfSkKKyAgICAgIC50aGVu
KGZ1bmN0aW9uKGZyYW1lKSB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscygKKyAgICAgICAgICAg
ICAgZnJhbWUuY29udGVudFdpbmRvdy5uYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5jb250cm9sbGVy
LnNjcmlwdFVSTCwKKyAgICAgICAgICAgICAgbm9ybWFsaXplVVJMKG5ld193b3JrZXJfdXJsKSwK
KyAgICAgICAgICAgICAgJ3RoZSBuZXcgd29ya2VyIHNob3VsZCBjb250cm9sIGEgbmV3IGRvY3Vt
ZW50Jyk7CisgICAgICAgICAgZnJhbWUucmVtb3ZlKCk7CisgICAgICAgICAgcmV0dXJuIHJlZ2lz
dHJhdGlvbi51bnJlZ2lzdGVyKCk7CisgICAgICAgIH0pCisgICAgICAudGhlbihmdW5jdGlvbigp
IHsKKyAgICAgICAgICB0LmRvbmUoKTsKKyAgICAgICAgfSkKKyAgICAgIC5jYXRjaCh1bnJlYWNo
ZWRfcmVqZWN0aW9uKHQpKTsKIH0sICdSZWdpc3RlcmluZyBhIG5ldyBzY3JpcHQgVVJMIHdoaWxl
IGFuIHVucmVnaXN0ZXJlZCByZWdpc3RyYXRpb24gaXMgaW4gdXNlJyk7CiAKLXByb21pc2VfdGVz
dChhc3luYyBmdW5jdGlvbih0KSB7Ci0gIGNvbnN0IHNjb3BlID0gJ3Jlc291cmNlcy9zY29wZS91
bnJlZ2lzdGVyLXRoZW4tcmVnaXN0ZXItbmV3LXNjcmlwdC10aGF0LTQwNHMnOwotICBjb25zdCBy
ZWdpc3RyYXRpb24gPSBhd2FpdCBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rl
cih0LCB3b3JrZXJfdXJsLCBzY29wZSk7Ci0gIHQuYWRkX2NsZWFudXAoKCkgPT4gcmVnaXN0cmF0
aW9uLnVucmVnaXN0ZXIoKSk7Ci0KLSAgYXdhaXQgd2FpdF9mb3Jfc3RhdGUodCwgcmVnaXN0cmF0
aW9uLmluc3RhbGxpbmcsICdhY3RpdmF0ZWQnKTsKLQotICBjb25zdCBpZnJhbWUgPSBhd2FpdCB3
aXRoX2lmcmFtZShzY29wZSk7Ci0gIHQuYWRkX2NsZWFudXAoKCkgPT4gaWZyYW1lLnJlbW92ZSgp
KTsKLQotICBhd2FpdCByZWdpc3RyYXRpb24udW5yZWdpc3RlcigpOwotCi0gIGF3YWl0IHByb21p
c2VfcmVqZWN0cygKLSAgICB0LCBuZXcgVHlwZUVycm9yKCksCi0gICAgbmF2aWdhdG9yLnNlcnZp
Y2VXb3JrZXIucmVnaXN0ZXIoJ3RoaXMtd2lsbC00MDQnLCB7IHNjb3BlIH0pCi0gICk7Ci0KLSAg
YXNzZXJ0X2VxdWFscyhyZWdpc3RyYXRpb24uaW5zdGFsbGluZywgbnVsbCwgJ3JlZ2lzdHJhdGlv
bi5pbnN0YWxsaW5nJyk7Ci0gIGFzc2VydF9lcXVhbHMocmVnaXN0cmF0aW9uLndhaXRpbmcsIG51
bGwsICdyZWdpc3RyYXRpb24ud2FpdGluZycpOwotICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlv
bi5hY3RpdmUuc2NyaXB0VVJMLCBub3JtYWxpemVVUkwod29ya2VyX3VybCksICdyZWdpc3RyYXRp
b24uYWN0aXZlJyk7Ci0KLSAgY29uc3QgbmV3SWZyYW1lID0gYXdhaXQgd2l0aF9pZnJhbWUoc2Nv
cGUpOwotICB0LmFkZF9jbGVhbnVwKCgpID0+IG5ld0lmcmFtZS5yZW1vdmUoKSk7Ci0KLSAgYXNz
ZXJ0X2VxdWFscyhuZXdJZnJhbWUuY29udGVudFdpbmRvdy5uYXZpZ2F0b3Iuc2VydmljZVdvcmtl
ci5jb250cm9sbGVyLCBudWxsLCAnRG9jdW1lbnQgc2hvdWxkIG5vdCBiZSBjb250cm9sbGVkJyk7
Ci19LCAnUmVnaXN0ZXJpbmcgYSBuZXcgc2NyaXB0IFVSTCB0aGF0IDQwNHMgZG9lcyBub3QgcmVz
dXJyZWN0IHVucmVnaXN0ZXJlZCByZWdpc3RyYXRpb24nKTsKLQotcHJvbWlzZV90ZXN0KGFzeW5j
IGZ1bmN0aW9uKHQpIHsKLSAgY29uc3Qgc2NvcGUgPSAncmVzb3VyY2VzL3Njb3BlL3VucmVnaXN0
ZXItdGhlbi1yZWdpc3Rlci1yZWplY3QtaW5zdGFsbC13b3JrZXInOwotICBjb25zdCByZWdpc3Ry
YXRpb24gPSBhd2FpdCBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCB3
b3JrZXJfdXJsLCBzY29wZSk7Ci0gIHQuYWRkX2NsZWFudXAoKCkgPT4gcmVnaXN0cmF0aW9uLnVu
cmVnaXN0ZXIoKSk7Ci0KLSAgYXdhaXQgd2FpdF9mb3Jfc3RhdGUodCwgcmVnaXN0cmF0aW9uLmlu
c3RhbGxpbmcsICdhY3RpdmF0ZWQnKTsKLQotICBjb25zdCBpZnJhbWUgPSBhd2FpdCB3aXRoX2lm
cmFtZShzY29wZSk7Ci0gIHQuYWRkX2NsZWFudXAoKCkgPT4gaWZyYW1lLnJlbW92ZSgpKTsKLQot
ICBhd2FpdCByZWdpc3RyYXRpb24udW5yZWdpc3RlcigpOwotCi0gIGNvbnN0IG5ld1JlZ2lzdHJh
dGlvbiA9IGF3YWl0IG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKAotICAgICdyZXNv
dXJjZXMvcmVqZWN0LWluc3RhbGwtd29ya2VyLmpzJywgeyBzY29wZSB9Ci0gICk7Ci0gIHQuYWRk
X2NsZWFudXAoKCkgPT4gbmV3UmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIoKSk7Ci0KLSAgYXdhaXQg
d2FpdF9mb3Jfc3RhdGUodCwgbmV3UmVnaXN0cmF0aW9uLmluc3RhbGxpbmcsICdyZWR1bmRhbnQn
KTsKLQotICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLCBudWxsLCAncmVn
aXN0cmF0aW9uLmluc3RhbGxpbmcnKTsKLSAgYXNzZXJ0X2VxdWFscyhyZWdpc3RyYXRpb24ud2Fp
dGluZywgbnVsbCwgJ3JlZ2lzdHJhdGlvbi53YWl0aW5nJyk7Ci0gIGFzc2VydF9lcXVhbHMocmVn
aXN0cmF0aW9uLmFjdGl2ZS5zY3JpcHRVUkwsIG5vcm1hbGl6ZVVSTCh3b3JrZXJfdXJsKSwKLSAg
ICAgICAgICAgICAgICAncmVnaXN0cmF0aW9uLmFjdGl2ZScpOwotICBhc3NlcnRfbm90X2VxdWFs
cyhyZWdpc3RyYXRpb24sIG5ld1JlZ2lzdHJhdGlvbiwgJ05ldyByZWdpc3RyYXRpb24gaXMgZGlm
ZmVyZW50Jyk7Ci19LCAnUmVnaXN0ZXJpbmcgYSBuZXcgc2NyaXB0IFVSTCB0aGF0IGZhaWxzIHRv
IGluc3RhbGwgZG9lcyBub3QgcmVzdXJyZWN0IHVucmVnaXN0ZXJlZCByZWdpc3RyYXRpb24nKTsK
K2FzeW5jX3Rlc3QoZnVuY3Rpb24odCkgeworICAgIHZhciBzY29wZSA9ICdyZXNvdXJjZXMvc2Nv
cGUvdW5yZWdpc3Rlci10aGVuLXJlZ2lzdGVyLW5ldy1zY3JpcHQtdGhhdC00MDRzJzsKKyAgICB2
YXIgaWZyYW1lOworICAgIHZhciByZWdpc3RyYXRpb247CisKKyAgICBzZXJ2aWNlX3dvcmtlcl91
bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCB3b3JrZXJfdXJsLCBzY29wZSkKKyAgICAgIC50aGVu
KGZ1bmN0aW9uKHIpIHsKKyAgICAgICAgICByZWdpc3RyYXRpb24gPSByOworICAgICAgICAgIHJl
dHVybiB3YWl0X2Zvcl9zdGF0ZSh0LCByLmluc3RhbGxpbmcsICdhY3RpdmF0ZWQnKTsKKyAgICAg
ICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKCkgeworICAgICAgICAgIHJldHVybiB3aXRoX2lm
cmFtZShzY29wZSk7CisgICAgICAgIH0pCisgICAgICAudGhlbihmdW5jdGlvbihmcmFtZSkgewor
ICAgICAgICAgIGlmcmFtZSA9IGZyYW1lOworICAgICAgICAgIHJldHVybiByZWdpc3RyYXRpb24u
dW5yZWdpc3RlcigpOworICAgICAgICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgLy8gU3RlcCA1LjEgb2YgUmVnaXN0ZXIgY2xlYXJzIHRoZSB1bmluc3RhbGwgZmxhZyBi
ZWZvcmUgZmV0Y2hpbmcKKyAgICAgICAgICAvLyB0aGUgc2NyaXB0OgorICAgICAgICAgIC8vCisg
ICAgICAgICAgLy8gIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9TZXJ2aWNlV29ya2VyLyNyZWdpc3Rl
ci1hbGdvcml0aG0KKyAgICAgICAgICB2YXIgcHJvbWlzZSA9IG5hdmlnYXRvci5zZXJ2aWNlV29y
a2VyLnJlZ2lzdGVyKCd0aGlzLXdpbGwtNDA0JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgc2NvcGU6IHNjb3BlIH0pOworICAgICAg
ICAgIHJldHVybiBwcm9taXNlOworICAgICAgICB9KQorICAgICAgLnRoZW4oCisgICAgICAgIGZ1
bmN0aW9uKCkgeworICAgICAgICAgIGFzc2VydF91bnJlYWNoZWQoJ3JlZ2lzdGVyIHNob3VsZCBy
ZWplY3QgdGhlIHByb21pc2UnKTsKKyAgICAgICAgfSwKKyAgICAgICAgZnVuY3Rpb24oKSB7Cisg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhyZWdpc3RyYXRpb24uaW5zdGFsbGluZywgbnVsbCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICdyZWdpc3RyYXRpb24uaW5zdGFsbGluZycpOworICAgICAg
ICAgIGFzc2VydF9lcXVhbHMocmVnaXN0cmF0aW9uLndhaXRpbmcsIG51bGwsCisgICAgICAgICAg
ICAgICAgICAgICAgICAncmVnaXN0cmF0aW9uLndhaXRpbmcnKTsKKyAgICAgICAgICBhc3NlcnRf
ZXF1YWxzKHJlZ2lzdHJhdGlvbi5hY3RpdmUuc2NyaXB0VVJMLCBub3JtYWxpemVVUkwod29ya2Vy
X3VybCksCisgICAgICAgICAgICAgICAgICAgICAgICAncmVnaXN0cmF0aW9uLmFjdGl2ZScpOwor
ICAgICAgICAgIGlmcmFtZS5yZW1vdmUoKTsKKyAgICAgICAgICByZXR1cm4gd2l0aF9pZnJhbWUo
c2NvcGUpOworICAgICAgICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24oZnJhbWUpIHsKKyAgICAg
ICAgICBhc3NlcnRfZXF1YWxzKAorICAgICAgICAgICAgICBmcmFtZS5jb250ZW50V2luZG93Lm5h
dmlnYXRvci5zZXJ2aWNlV29ya2VyLmNvbnRyb2xsZXIuc2NyaXB0VVJMLAorICAgICAgICAgICAg
ICBub3JtYWxpemVVUkwod29ya2VyX3VybCksCisgICAgICAgICAgICAgICd0aGUgb3JpZ2luYWwg
d29ya2VyIHNob3VsZCBjb250cm9sIGEgbmV3IGRvY3VtZW50Jyk7CisgICAgICAgICAgZnJhbWUu
cmVtb3ZlKCk7CisgICAgICAgICAgcmV0dXJuIHJlZ2lzdHJhdGlvbi51bnJlZ2lzdGVyKCk7Cisg
ICAgICAgIH0pCisgICAgICAudGhlbihmdW5jdGlvbigpIHsKKyAgICAgICAgICB0LmRvbmUoKTsK
KyAgICAgICAgfSkKKyAgICAgIC5jYXRjaCh1bnJlYWNoZWRfcmVqZWN0aW9uKHQpKTsKK30sICdS
ZWdpc3RlcmluZyBhIG5ldyBzY3JpcHQgVVJMIHRoYXQgNDA0cyBkb2VzIHJlc3VycmVjdCBhbiAn
ICsKKyAgICAgICAndW5yZWdpc3RlcmVkIHJlZ2lzdHJhdGlvbicpOworCithc3luY190ZXN0KGZ1
bmN0aW9uKHQpIHsKKyAgICB2YXIgc2NvcGUgPSAncmVzb3VyY2VzL3Njb3BlL3VucmVnaXN0ZXIt
dGhlbi1yZWdpc3Rlci1yZWplY3QtaW5zdGFsbC13b3JrZXInOworICAgIHZhciBpZnJhbWU7Cisg
ICAgdmFyIHJlZ2lzdHJhdGlvbjsKKworICAgIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5k
X3JlZ2lzdGVyKHQsIHdvcmtlcl91cmwsIHNjb3BlKQorICAgICAgLnRoZW4oZnVuY3Rpb24ocikg
eworICAgICAgICAgIHJlZ2lzdHJhdGlvbiA9IHI7CisgICAgICAgICAgcmV0dXJuIHdhaXRfZm9y
X3N0YXRlKHQsIHIuaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOworICAgICAgICB9KQorICAgICAg
LnRoZW4oZnVuY3Rpb24oKSB7CisgICAgICAgICAgcmV0dXJuIHdpdGhfaWZyYW1lKHNjb3BlKTsK
KyAgICAgICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKGZyYW1lKSB7CisgICAgICAgICAgaWZy
YW1lID0gZnJhbWU7CisgICAgICAgICAgcmV0dXJuIHJlZ2lzdHJhdGlvbi51bnJlZ2lzdGVyKCk7
CisgICAgICAgIH0pCisgICAgICAudGhlbihmdW5jdGlvbigpIHsKKyAgICAgICAgICAvLyBTdGVw
IDUuMSBvZiBSZWdpc3RlciBjbGVhcnMgdGhlIHVuaW5zdGFsbCBmbGFnIGJlZm9yZSBmaXJpbmcK
KyAgICAgICAgICAvLyB0aGUgaW5zdGFsbCBldmVudDoKKyAgICAgICAgICAvLworICAgICAgICAg
IC8vICBodHRwczovL3czYy5naXRodWIuaW8vU2VydmljZVdvcmtlci8jcmVnaXN0ZXItYWxnb3Jp
dGhtCisgICAgICAgICAgdmFyIHByb21pc2UgPSBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdp
c3RlcigKKyAgICAgICAgICAgICAgJ3Jlc291cmNlcy9yZWplY3QtaW5zdGFsbC13b3JrZXIuanMn
LCB7IHNjb3BlOiBzY29wZSB9KTsKKyAgICAgICAgICByZXR1cm4gcHJvbWlzZTsKKyAgICAgICAg
fSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKHIpIHsKKyAgICAgICAgICByZWdpc3RyYXRpb24gPSBy
OworICAgICAgICAgIHJldHVybiB3YWl0X2Zvcl9zdGF0ZSh0LCByLmluc3RhbGxpbmcsICdyZWR1
bmRhbnQnKTsKKyAgICAgICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKCkgeworICAgICAgICAg
IGFzc2VydF9lcXVhbHMocmVnaXN0cmF0aW9uLmluc3RhbGxpbmcsIG51bGwsCisgICAgICAgICAg
ICAgICAgICAgICAgICAncmVnaXN0cmF0aW9uLmluc3RhbGxpbmcnKTsKKyAgICAgICAgICBhc3Nl
cnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi53YWl0aW5nLCBudWxsLAorICAgICAgICAgICAgICAgICAg
ICAgICAgJ3JlZ2lzdHJhdGlvbi53YWl0aW5nJyk7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhy
ZWdpc3RyYXRpb24uYWN0aXZlLnNjcmlwdFVSTCwgbm9ybWFsaXplVVJMKHdvcmtlcl91cmwpLAor
ICAgICAgICAgICAgICAgICAgICAgICAgJ3JlZ2lzdHJhdGlvbi5hY3RpdmUnKTsKKyAgICAgICAg
ICBpZnJhbWUucmVtb3ZlKCk7CisgICAgICAgICAgcmV0dXJuIHdpdGhfaWZyYW1lKHNjb3BlKTsK
KyAgICAgICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKGZyYW1lKSB7CisgICAgICAgICAgYXNz
ZXJ0X2VxdWFscygKKyAgICAgICAgICAgICAgZnJhbWUuY29udGVudFdpbmRvdy5uYXZpZ2F0b3Iu
c2VydmljZVdvcmtlci5jb250cm9sbGVyLnNjcmlwdFVSTCwKKyAgICAgICAgICAgICAgbm9ybWFs
aXplVVJMKHdvcmtlcl91cmwpLAorICAgICAgICAgICAgICAndGhlIG9yaWdpbmFsIHdvcmtlciBz
aG91bGQgY29udHJvbCBhIG5ldyBkb2N1bWVudCcpOworICAgICAgICAgIGZyYW1lLnJlbW92ZSgp
OworICAgICAgICAgIHJldHVybiByZWdpc3RyYXRpb24udW5yZWdpc3RlcigpOworICAgICAgICB9
KQorICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7CisgICAgICAgICAgdC5kb25lKCk7CisgICAgICAg
IH0pCisgICAgICAuY2F0Y2godW5yZWFjaGVkX3JlamVjdGlvbih0KSk7CisgIH0sICdSZWdpc3Rl
cmluZyBhIG5ldyBzY3JpcHQgVVJMIHRoYXQgZmFpbHMgdG8gaW5zdGFsbCBkb2VzIHJlc3VycmVj
dCAnICsKKyAgICAgICAnYW4gdW5yZWdpc3RlcmVkIHJlZ2lzdHJhdGlvbicpOwogPC9zY3JpcHQ+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91bnJlZ2lzdGVyLXRoZW4tcmVnaXN0ZXIu
aHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdW5yZWdpc3Rlci10aGVuLXJl
Z2lzdGVyLmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCA1ZmE5OWMzMjkyMjUzOTk1YzkwNWU2ZTdj
NDAzMmZjNWJlNjBmMGUxLi5jMjc4YzllNjgxMTI2MDBlNmJlZWNkNTFiMzE0MTIyZDA0YjA0OGM1
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91bnJlZ2lzdGVyLXRoZW4tcmVnaXN0ZXIu
aHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VucmVnaXN0ZXItdGhl
bi1yZWdpc3Rlci5odHRwcy1leHBlY3RlZC50eHQKQEAgLTEsNiArMSw4IEBACiAKKwogUEFTUyBV
bnJlZ2lzdGVyIHRoZW4gcmVnaXN0ZXIgcmVzb2x2ZXMgdG8gYSBuZXcgdmFsdWUgCi1QQVNTIFVu
cmVnaXN0ZXIgdGhlbiByZWdpc3RlciBkb2VzIG5vdCByZXNvbHZlIHRvIHRoZSBvcmlnaW5hbCB2
YWx1ZSBldmVuIGlmIHRoZSByZWdpc3RyYXRpb24gaXMgaW4gdXNlLiAKLVBBU1MgVW5yZWdpc3Rl
ciB0aGVuIHJlZ2lzdGVyIGRvZXMgbm90IGFmZmVjdCBleGlzdGluZyBjb250cm9sbGVlIAotUEFT
UyBVbnJlZ2lzdGVyIHRoZW4gcmVnaXN0ZXIgZG9lcyBub3QgcmVzdXJyZWN0IHRoZSByZWdpc3Ry
YXRpb24gCitGQUlMIFVucmVnaXN0ZXIgdGhlbiByZWdpc3RlciByZXNvbHZlcyB0byB0aGUgb3Jp
Z2luYWwgdmFsdWUgaWYgdGhlIHJlZ2lzdHJhdGlvbiBpcyBpbiB1c2UuIGFzc2VydF91bnJlYWNo
ZWQ6IHVuZXhwZWN0ZWQgcmVqZWN0aW9uOiBhc3NlcnRfZXF1YWxzOiBuZXcgcmVnaXN0cmF0aW9u
IHNob3VsZCByZXNvbHZlIHRvIHRoZSBzYW1lIHJlZ2lzdHJhdGlvbiBleHBlY3RlZCBvYmplY3Qg
IltvYmplY3QgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbl0iIGJ1dCBnb3Qgb2JqZWN0ICJbb2Jq
ZWN0IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25dIiBSZWFjaGVkIHVucmVhY2hhYmxlIGNvZGUK
K1BBU1MgUmVsb2FkaW5nIHRoZSBsYXN0IGNvbnRyb2xsZWQgaWZyYW1lIGFmdGVyIHVucmVnaXN0
cmF0aW9uIHNob3VsZCBlbnN1cmUgdGhlIGRlbGV0aW9uIG9mIHRoZSByZWdpc3RyYXRpb24gCitG
QUlMIFVucmVnaXN0ZXIgdGhlbiByZWdpc3RlciBkb2VzIG5vdCBhZmZlY3QgZXhpc3RpbmcgY29u
dHJvbGxlZSBhc3NlcnRfdW5yZWFjaGVkOiB1bmV4cGVjdGVkIHJlamVjdGlvbjogYXNzZXJ0X2Vx
dWFsczogaW5zdGFsbGluZyB2ZXJzaW9uIGlzIG51bGwgZXhwZWN0ZWQgbnVsbCBidXQgZ290IG9i
amVjdCAiW29iamVjdCBTZXJ2aWNlV29ya2VyXSIgUmVhY2hlZCB1bnJlYWNoYWJsZSBjb2RlCitQ
QVNTIFVucmVnaXN0ZXIgdGhlbiByZWdpc3RlciByZXN1cnJlY3RzIHRoZSByZWdpc3RyYXRpb24g
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VucmVnaXN0ZXItdGhlbi1yZWdpc3Rl
ci5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdW5yZWdpc3Rlci10aGVuLXJlZ2lzdGVy
Lmh0dHBzLmh0bWwKaW5kZXggYjYxNjA4Yzg0MTlmZDRmMzYyZGVlNTMzMDQwNGUyNzQzYTJmMDVm
Ni4uNmMwYTBhZWNmM2Y1NjJhNTZlZGY3ZmY2NWFjYjlmY2Q2NzVjZGZhNiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvdW5yZWdpc3Rlci10aGVuLXJlZ2lzdGVyLmh0dHBzLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvdW5yZWdpc3Rlci10aGVuLXJlZ2lzdGVyLmh0dHBzLmh0bWwK
QEAgLTUsNTMgKzUsMTAzIEBACiA8c2NyaXB0PgogdmFyIHdvcmtlcl91cmwgPSAncmVzb3VyY2Vz
L2VtcHR5LXdvcmtlci5qcyc7CiAKLXByb21pc2VfdGVzdChhc3luYyBmdW5jdGlvbih0KSB7Ci0g
ICAgY29uc3Qgc2NvcGUgPSAncmVzb3VyY2VzL3Njb3BlL3JlLXJlZ2lzdGVyLXJlc29sdmVzLXRv
LW5ldy12YWx1ZSc7Ci0gICAgY29uc3QgcmVnaXN0cmF0aW9uID0gYXdhaXQgc2VydmljZV93b3Jr
ZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgd29ya2VyX3VybCwgc2NvcGUpOwotICAgIHQu
YWRkX2NsZWFudXAoKCkgPT4gcmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIoKSk7Ci0KLSAgICBhd2Fp
dCB3YWl0X2Zvcl9zdGF0ZSh0LCByZWdpc3RyYXRpb24uaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcp
OwotICAgIGF3YWl0IHJlZ2lzdHJhdGlvbi51bnJlZ2lzdGVyKCk7Ci0gICAgY29uc3QgbmV3UmVn
aXN0cmF0aW9uID0gYXdhaXQgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIod29ya2Vy
X3VybCwgeyBzY29wZSB9KTsKLSAgICB0LmFkZF9jbGVhbnVwKCgpID0+IG5ld1JlZ2lzdHJhdGlv
bi51bnJlZ2lzdGVyKCkpOworYXN5bmNfdGVzdChmdW5jdGlvbih0KSB7CisgICAgdmFyIHNjb3Bl
ID0gJ3Jlc291cmNlcy9zY29wZS9yZS1yZWdpc3Rlci1yZXNvbHZlcy10by1uZXctdmFsdWUnOwor
ICAgIHZhciByZWdpc3RyYXRpb247CiAKLSAgICBhc3NlcnRfbm90X2VxdWFscygKLSAgICAgIHJl
Z2lzdHJhdGlvbiwgbmV3UmVnaXN0cmF0aW9uLAotICAgICAgJ3JlZ2lzdGVyIHNob3VsZCByZXNv
bHZlIHRvIGEgbmV3IHZhbHVlJwotICAgICk7CisgICAgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rl
cl9hbmRfcmVnaXN0ZXIodCwgd29ya2VyX3VybCwgc2NvcGUpCisgICAgICAudGhlbihmdW5jdGlv
bihyKSB7CisgICAgICAgICAgcmVnaXN0cmF0aW9uID0gcjsKKyAgICAgICAgICByZXR1cm4gd2Fp
dF9mb3Jfc3RhdGUodCwgci5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7CisgICAgICAgIH0pCisg
ICAgICAudGhlbihmdW5jdGlvbigpIHsKKyAgICAgICAgICByZXR1cm4gcmVnaXN0cmF0aW9uLnVu
cmVnaXN0ZXIoKTsKKyAgICAgICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKCkgeworICAgICAg
ICAgIHJldHVybiBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3Rlcih3b3JrZXJfdXJsLCB7
IHNjb3BlOiBzY29wZSB9KTsKKyAgICAgICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKG5ld19y
ZWdpc3RyYXRpb24pIHsKKyAgICAgICAgICBhc3NlcnRfbm90X2VxdWFscyhyZWdpc3RyYXRpb24s
IG5ld19yZWdpc3RyYXRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3JlZ2lzdGVy
IHNob3VsZCByZXNvbHZlIHRvIGEgbmV3IHZhbHVlJyk7CisgICAgICAgICAgc2VydmljZV93b3Jr
ZXJfdW5yZWdpc3Rlcl9hbmRfZG9uZSh0LCBzY29wZSk7CisgICAgICAgIH0pCisgICAgICAuY2F0
Y2godW5yZWFjaGVkX3JlamVjdGlvbih0KSk7CiAgIH0sICdVbnJlZ2lzdGVyIHRoZW4gcmVnaXN0
ZXIgcmVzb2x2ZXMgdG8gYSBuZXcgdmFsdWUnKTsKIAotcHJvbWlzZV90ZXN0KGFzeW5jIGZ1bmN0
aW9uKHQpIHsKLSAgY29uc3Qgc2NvcGUgPSAncmVzb3VyY2VzL3Njb3BlL3JlLXJlZ2lzdGVyLXdo
aWxlLW9sZC1yZWdpc3RyYXRpb24taW4tdXNlJzsKLSAgY29uc3QgcmVnaXN0cmF0aW9uID0gYXdh
aXQgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgd29ya2VyX3VybCwg
c2NvcGUpOwotICB0LmFkZF9jbGVhbnVwKCgpID0+IHJlZ2lzdHJhdGlvbi51bnJlZ2lzdGVyKCkp
OwotCi0gIGF3YWl0IHdhaXRfZm9yX3N0YXRlKHQsIHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLCAn
YWN0aXZhdGVkJyk7Ci0gIGNvbnN0IGZyYW1lID0gYXdhaXQgd2l0aF9pZnJhbWUoc2NvcGUpOwot
ICB0LmFkZF9jbGVhbnVwKCgpID0+IGZyYW1lLnJlbW92ZSgpKTsKK2FzeW5jX3Rlc3QoZnVuY3Rp
b24odCkgeworICAgIHZhciBzY29wZSA9ICdyZXNvdXJjZXMvc2NvcGUvcmUtcmVnaXN0ZXItd2hp
bGUtb2xkLXJlZ2lzdHJhdGlvbi1pbi11c2UnOworICAgIHZhciByZWdpc3RyYXRpb247CiAKLSAg
YXdhaXQgcmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIoKTsKLSAgY29uc3QgbmV3UmVnaXN0cmF0aW9u
ID0gYXdhaXQgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIod29ya2VyX3VybCwgeyBz
Y29wZSB9KTsKLSAgdC5hZGRfY2xlYW51cCgoKSA9PiBuZXdSZWdpc3RyYXRpb24udW5yZWdpc3Rl
cigpKTsKKyAgICBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCB3b3Jr
ZXJfdXJsLCBzY29wZSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKHIpIHsKKyAgICAgICAgICByZWdp
c3RyYXRpb24gPSByOworICAgICAgICAgIHJldHVybiB3YWl0X2Zvcl9zdGF0ZSh0LCByLmluc3Rh
bGxpbmcsICdhY3RpdmF0ZWQnKTsKKyAgICAgICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKCkg
eworICAgICAgICAgIHJldHVybiB3aXRoX2lmcmFtZShzY29wZSk7CisgICAgICAgIH0pCisgICAg
ICAudGhlbihmdW5jdGlvbihmcmFtZSkgeworICAgICAgICAgIHJldHVybiByZWdpc3RyYXRpb24u
dW5yZWdpc3RlcigpOworICAgICAgICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgcmV0dXJuIG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKHdvcmtlcl91cmws
IHsgc2NvcGU6IHNjb3BlIH0pOworICAgICAgICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24obmV3
X3JlZ2lzdHJhdGlvbikgeworICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVnaXN0cmF0aW9uLCBu
ZXdfcmVnaXN0cmF0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgJ25ldyByZWdpc3RyYXRp
b24gc2hvdWxkIHJlc29sdmUgdG8gdGhlIHNhbWUgcmVnaXN0cmF0aW9uJyk7CisgICAgICAgICAg
c2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfZG9uZSh0LCBzY29wZSk7CisgICAgICAgIH0p
CisgICAgICAuY2F0Y2godW5yZWFjaGVkX3JlamVjdGlvbih0KSk7CisgIH0sICdVbnJlZ2lzdGVy
IHRoZW4gcmVnaXN0ZXIgcmVzb2x2ZXMgdG8gdGhlIG9yaWdpbmFsIHZhbHVlIGlmIHRoZSAnICsK
KyAgICAgICAgICdyZWdpc3RyYXRpb24gaXMgaW4gdXNlLicpOwogCi0gIGFzc2VydF9ub3RfZXF1
YWxzKAotICAgIHJlZ2lzdHJhdGlvbiwgbmV3UmVnaXN0cmF0aW9uLAotICAgICdVbnJlZ2lzdGVy
IGFuZCByZWdpc3RlciBzaG91bGQgYWx3YXlzIGNyZWF0ZSBhIG5ldyByZWdpc3RyYXRpb24nCi0g
ICk7Ci19LCAnVW5yZWdpc3RlciB0aGVuIHJlZ2lzdGVyIGRvZXMgbm90IHJlc29sdmUgdG8gdGhl
IG9yaWdpbmFsIHZhbHVlIGV2ZW4gaWYgdGhlIHJlZ2lzdHJhdGlvbiBpcyBpbiB1c2UuJyk7Cith
c3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgICB2YXIgc2NvcGUgPSAncmVzb3VyY2VzL3Njb3Bl
L2NvbXBsZXRlLXVucmVnaXN0cmF0aW9uLWZvbGxvd2VkLWJ5LScgKworICAgICAgICAgICAgICAg
ICdyZWxvYWRpbmctY29udHJvbGxlZS1pZnJhbWUnOworICAgIHZhciByZWdpc3RyYXRpb247Cisg
ICAgdmFyIGZyYW1lOworICAgIHZhciBzZXJ2aWNlX3dvcmtlcjsKKyAgICBzZXJ2aWNlX3dvcmtl
cl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCB3b3JrZXJfdXJsLCBzY29wZSkKKyAgICAgIC50
aGVuKGZ1bmN0aW9uKHIpIHsKKyAgICAgICAgICByZWdpc3RyYXRpb24gPSByOworICAgICAgICAg
IHJldHVybiB3YWl0X2Zvcl9zdGF0ZSh0LCByLmluc3RhbGxpbmcsICdhY3RpdmF0ZWQnKTsKKyAg
ICAgICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKCkgeworICAgICAgICAgIHJldHVybiB3aXRo
X2lmcmFtZShzY29wZSk7CisgICAgICAgIH0pCisgICAgICAudGhlbihmdW5jdGlvbihmKSB7Cisg
ICAgICAgICAgZnJhbWUgPSBmOworICAgICAgICAgIHJldHVybiByZWdpc3RyYXRpb24udW5yZWdp
c3RlcigpOworICAgICAgICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7CisgICAgICAgICAg
cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUpIHsKKyAgICAgICAgICAgICAgZnJh
bWUub25sb2FkID0gcmVzb2x2ZTsKKyAgICAgICAgICAgICAgZnJhbWUuY29udGVudFdpbmRvdy5s
b2NhdGlvbi5yZWxvYWQoKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KQorICAgICAgLnRo
ZW4oZnVuY3Rpb24oKSB7CisgICAgICAgICAgdmFyIGMgPSBmcmFtZS5jb250ZW50V2luZG93Lm5h
dmlnYXRvci5zZXJ2aWNlV29ya2VyLmNvbnRyb2xsZXI7CisgICAgICAgICAgYXNzZXJ0X2VxdWFs
cyhjLCBudWxsLCAnYSBwYWdlIGFmdGVyIHVucmVnaXN0cmF0aW9uIHNob3VsZCBub3QgYmUgJyAr
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY29udHJvbGxlZCBieSBzZXJ2aWNl
IHdvcmtlcicpOworICAgICAgICAgIHJldHVybiBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5nZXRS
ZWdpc3RyYXRpb24oc2NvcGUpOworICAgICAgICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24ocikg
eworICAgICAgICAgIGFzc2VydF9lcXVhbHMociwgdW5kZWZpbmVkLCAnZ2V0UmVnaXN0cmF0aW9u
IHNob3VsZCByZXR1cm4gJyArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICd1bmRlZmluZWQgYWZ0ZXIgdW5yZWdpc3RyYXRpb24nKTsKKyAgICAgICAgICBzZXJ2aWNlX3dv
cmtlcl91bnJlZ2lzdGVyX2FuZF9kb25lKHQsIHNjb3BlKTsKKyAgICAgICAgfSkKKyAgICAgIC5j
YXRjaCh1bnJlYWNoZWRfcmVqZWN0aW9uKHQpKTsKK30sICdSZWxvYWRpbmcgdGhlIGxhc3QgY29u
dHJvbGxlZCBpZnJhbWUgYWZ0ZXIgdW5yZWdpc3RyYXRpb24gc2hvdWxkIGVuc3VyZSAnICsKKyAg
ICd0aGUgZGVsZXRpb24gb2YgdGhlIHJlZ2lzdHJhdGlvbicpOwogCi1wcm9taXNlX3Rlc3QoZnVu
Y3Rpb24odCkgeworYXN5bmNfdGVzdChmdW5jdGlvbih0KSB7CiAgICAgdmFyIHNjb3BlID0gJ3Jl
c291cmNlcy9zY29wZS9yZS1yZWdpc3Rlci1kb2VzLW5vdC1hZmZlY3QtZXhpc3RpbmctY29udHJv
bGxlZSc7CiAgICAgdmFyIGlmcmFtZTsKICAgICB2YXIgcmVnaXN0cmF0aW9uOwogICAgIHZhciBj
b250cm9sbGVyOwogCi0gICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3Jl
Z2lzdGVyKHQsIHdvcmtlcl91cmwsIHNjb3BlKQorICAgIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0
ZXJfYW5kX3JlZ2lzdGVyKHQsIHdvcmtlcl91cmwsIHNjb3BlKQogICAgICAgLnRoZW4oZnVuY3Rp
b24ocikgewotICAgICAgICAgIHQuYWRkX2NsZWFudXAoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAg
ICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcih0LCBzY29wZSk7Ci0gICAgICAgICAg
fSk7Ci0KICAgICAgICAgICByZWdpc3RyYXRpb24gPSByOwogICAgICAgICAgIHJldHVybiB3YWl0
X2Zvcl9zdGF0ZSh0LCByLmluc3RhbGxpbmcsICdhY3RpdmF0ZWQnKTsKICAgICAgICAgfSkKQEAg
LTY2LDcgKzExNiw3IEBAIHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7CiAgICAgICAudGhlbihm
dW5jdGlvbigpIHsKICAgICAgICAgICByZXR1cm4gbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVn
aXN0ZXIod29ya2VyX3VybCwgeyBzY29wZTogc2NvcGUgfSk7CiAgICAgICAgIH0pCi0gICAgICAu
dGhlbihmdW5jdGlvbihuZXdSZWdpc3RyYXRpb24pIHsKKyAgICAgIC50aGVuKGZ1bmN0aW9uKHJl
Z2lzdHJhdGlvbikgewogICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVnaXN0cmF0aW9uLmluc3Rh
bGxpbmcsIG51bGwsCiAgICAgICAgICAgICAgICAgICAgICAgICAnaW5zdGFsbGluZyB2ZXJzaW9u
IGlzIG51bGwnKTsKICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi53YWl0aW5n
LCBudWxsLCAnd2FpdGluZyB2ZXJzaW9uIGlzIG51bGwnKTsKQEAgLTc1LDMzICsxMjUsNDIgQEAg
cHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICAgICAgICAgICAgY29udHJvbGxlciwKICAg
ICAgICAgICAgICAgJ3RoZSB3b3JrZXIgZnJvbSB0aGUgZmlyc3QgcmVnaXN0cmF0aW9uIGlzIHRo
ZSBjb250cm9sbGVyJyk7CiAgICAgICAgICAgaWZyYW1lLnJlbW92ZSgpOwotICAgICAgICB9KTsK
KyAgICAgICAgICBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9kb25lKHQsIHNjb3BlKTsK
KyAgICAgICAgfSkKKyAgICAgIC5jYXRjaCh1bnJlYWNoZWRfcmVqZWN0aW9uKHQpKTsKICAgfSwg
J1VucmVnaXN0ZXIgdGhlbiByZWdpc3RlciBkb2VzIG5vdCBhZmZlY3QgZXhpc3RpbmcgY29udHJv
bGxlZScpOwogCi1wcm9taXNlX3Rlc3QoYXN5bmMgZnVuY3Rpb24odCkgewotICBjb25zdCBzY29w
ZSA9ICdyZXNvdXJjZXMvc2NvcGUvcmVzdXJyZWN0aW9uJzsKLSAgY29uc3QgYWx0V29ya2VyVVJM
ID0gd29ya2VyX3VybCArICc/YWx0JzsKLSAgY29uc3QgcmVnaXN0cmF0aW9uID0gYXdhaXQgc2Vy
dmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgd29ya2VyX3VybCwgc2NvcGUp
OwotICB0LmFkZF9jbGVhbnVwKCgpID0+IHJlZ2lzdHJhdGlvbi51bnJlZ2lzdGVyKCkpOwotCi0g
IGF3YWl0IHdhaXRfZm9yX3N0YXRlKHQsIHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLCAnYWN0aXZh
dGluZycpOwotICBjb25zdCBpZnJhbWUgPSBhd2FpdCB3aXRoX2lmcmFtZShzY29wZSk7Ci0gIHQu
YWRkX2NsZWFudXAoKCkgPT4gaWZyYW1lLnJlbW92ZSgpKTsKLQotICBhd2FpdCByZWdpc3RyYXRp
b24udW5yZWdpc3RlcigpOwotICBjb25zdCBuZXdSZWdpc3RyYXRpb24gPSBhd2FpdCBuYXZpZ2F0
b3Iuc2VydmljZVdvcmtlci5yZWdpc3RlcihhbHRXb3JrZXJVUkwsIHsgc2NvcGUgfSk7Ci0gIHQu
YWRkX2NsZWFudXAoKCkgPT4gbmV3UmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIoKSk7Ci0KLSAgYXNz
ZXJ0X2VxdWFscyhuZXdSZWdpc3RyYXRpb24uYWN0aXZlLCBudWxsLCAnUmVnaXN0cmF0aW9uIGlz
IG5ldycpOwotCi0gIGF3YWl0IHdhaXRfZm9yX3N0YXRlKHQsIG5ld1JlZ2lzdHJhdGlvbi5pbnN0
YWxsaW5nLCAnYWN0aXZhdGluZycpOwotCi0gIGNvbnN0IG5ld0lmcmFtZSA9IGF3YWl0IHdpdGhf
aWZyYW1lKHNjb3BlKTsKLSAgdC5hZGRfY2xlYW51cCgoKSA9PiBuZXdJZnJhbWUucmVtb3ZlKCkp
OwotCi0gIGNvbnN0IGlmcmFtZUNvbnRyb2xsZXIgPSBpZnJhbWUuY29udGVudFdpbmRvdy5uYXZp
Z2F0b3Iuc2VydmljZVdvcmtlci5jb250cm9sbGVyOwotICBjb25zdCBuZXdJZnJhbWVDb250cm9s
bGVyID0gbmV3SWZyYW1lLmNvbnRlbnRXaW5kb3cubmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuY29u
dHJvbGxlcjsKK2FzeW5jX3Rlc3QoZnVuY3Rpb24odCkgeworICAgIHZhciBzY29wZSA9ICdyZXNv
dXJjZXMvc2NvcGUvcmVzdXJyZWN0aW9uJzsKKyAgICB2YXIgaWZyYW1lOworICAgIHZhciByZWdp
c3RyYXRpb247CiAKLSAgYXNzZXJ0X25vdF9lcXVhbHMoaWZyYW1lQ29udHJvbGxlciwgbmV3SWZy
YW1lQ29udHJvbGxlciwgJ2lmcmFtZXMgaGF2ZSBkaWZmZXJlbnQgY29udHJvbGxlcnMnKTsKLX0s
ICdVbnJlZ2lzdGVyIHRoZW4gcmVnaXN0ZXIgZG9lcyBub3QgcmVzdXJyZWN0IHRoZSByZWdpc3Ry
YXRpb24nKTsKKyAgICBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCB3
b3JrZXJfdXJsLCBzY29wZSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKHIpIHsKKyAgICAgICAgICBy
ZWdpc3RyYXRpb24gPSByOworICAgICAgICAgIHJldHVybiB3YWl0X2Zvcl9zdGF0ZSh0LCByLmlu
c3RhbGxpbmcsICdhY3RpdmF0ZWQnKTsKKyAgICAgICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9u
KCkgeworICAgICAgICAgIHJldHVybiB3aXRoX2lmcmFtZShzY29wZSk7CisgICAgICAgIH0pCisg
ICAgICAudGhlbihmdW5jdGlvbihmcmFtZSkgeworICAgICAgICAgIGlmcmFtZSA9IGZyYW1lOwor
ICAgICAgICAgIHJldHVybiByZWdpc3RyYXRpb24udW5yZWdpc3RlcigpOworICAgICAgICB9KQor
ICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7CisgICAgICAgICAgcmV0dXJuIG5hdmlnYXRvci5zZXJ2
aWNlV29ya2VyLnJlZ2lzdGVyKHdvcmtlcl91cmwsIHsgc2NvcGU6IHNjb3BlIH0pOworICAgICAg
ICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7CisgICAgICAgICAgaWZyYW1lLnJlbW92ZSgp
OworICAgICAgICAgIHJldHVybiB3aXRoX2lmcmFtZShzY29wZSk7CisgICAgICAgIH0pCisgICAg
ICAudGhlbihmdW5jdGlvbihmcmFtZSkgeworICAgICAgICAgIGFzc2VydF9ub3RfZXF1YWxzKAor
ICAgICAgICAgICAgICBmcmFtZS5jb250ZW50V2luZG93Lm5hdmlnYXRvci5zZXJ2aWNlV29ya2Vy
LmNvbnRyb2xsZXIsIG51bGwsCisgICAgICAgICAgICAgICdkb2N1bWVudCBzaG91bGQgaGF2ZSBh
IGNvbnRyb2xsZXInKTsKKyAgICAgICAgICBmcmFtZS5yZW1vdmUoKTsKKyAgICAgICAgICBzZXJ2
aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9kb25lKHQsIHNjb3BlKTsKKyAgICAgICAgfSkKKyAg
ICAgIC5jYXRjaCh1bnJlYWNoZWRfcmVqZWN0aW9uKHQpKTsKKyAgfSwgJ1VucmVnaXN0ZXIgdGhl
biByZWdpc3RlciByZXN1cnJlY3RzIHRoZSByZWdpc3RyYXRpb24nKTsKIDwvc2NyaXB0PgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLWFmdGVyLW5hdmlnYXRpb24tcmVkaXJl
Y3QuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0ZS1hZnRlci1uYXZpZ2F0aW9u
LXJlZGlyZWN0Lmh0dHBzLmh0bWwKaW5kZXggNmU4MjFmZTQ3OWYyNzNmN2IxN2ZkOGQ5MWU2ODFl
Y2QyODNhOTMzZC4uMzIxZTQwY2E5NDVlNzJhNTFkNmY0OTk0ZGVmMmIxZDFhZWY5OTc1MSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLWFmdGVyLW5hdmlnYXRpb24tcmVkaXJl
Y3QuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUtYWZ0ZXItbmF2aWdh
dGlvbi1yZWRpcmVjdC5odHRwcy5odG1sCkBAIC0xLDcgKzEsNiBAQAogPCFET0NUWVBFIGh0bWw+
CiA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CiA8dGl0bGU+U2VydmljZSBXb3JrZXI6IFVwZGF0ZSBz
aG91bGQgYmUgdHJpZ2dlcmVkIGFmdGVyIHJlZGlyZWN0cyBkdXJpbmcgbmF2aWdhdGlvbjwvdGl0
bGU+Ci08bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIj4KIDxzY3JpcHQgc3JjPSIv
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIvcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvdGVzdC1oZWxwZXJzLnN1Yi5qcyI+PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci91cGRhdGUtYWZ0ZXItb25lZGF5Lmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci91cGRhdGUtYWZ0ZXItb25lZGF5Lmh0dHBzLmh0bWwKaW5kZXggZDliOWZjZmI4ZGIzN2VhM2Iw
ZDU3MTI1MGIyMmI4OGNhNzM1NDc3Mi4uMDgwNjVkMjJjZTQ2Y2M4YTNiNTkxNmYxYzA1M2Y0Nzdm
NDQxNDY5OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLWFmdGVyLW9uZWRh
eS5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0ZS1hZnRlci1vbmVkYXku
aHR0cHMuaHRtbApAQCAtMTcsMTAgKzE3LDYgQEAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsK
IAogICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCBl
eHBlY3RlZF91cmwsIHNjb3BlKQogICAgICAgLnRoZW4oZnVuY3Rpb24ocikgewotICAgICAgICAg
IHQuYWRkX2NsZWFudXAoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgIHJldHVybiBzZXJ2aWNl
X3dvcmtlcl91bnJlZ2lzdGVyKHQsIHNjb3BlKTsKLSAgICAgICAgICAgIH0pOwotCiAgICAgICAg
ICAgcmVnaXN0cmF0aW9uID0gcjsKICAgICAgICAgICByZXR1cm4gd2FpdF9mb3Jfc3RhdGUodCwg
cmVnaXN0cmF0aW9uLmluc3RhbGxpbmcsICdhY3RpdmF0ZWQnKTsKICAgICAgICAgfSkKQEAgLTQ1
LDYgKzQxLDcgQEAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICAgICB9KQogICAgICAg
IC50aGVuKGZ1bmN0aW9uKCkgewogICAgICAgICAgIGZyYW1lLnJlbW92ZSgpOworICAgICAgICAg
IHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9kb25lKHQsIHNjb3BlKTsKICAg
ICAgICB9KQogICB9LCAnVXBkYXRlIHNob3VsZCBiZSB0cmlnZ2VyZWQgYWZ0ZXIgYSBmdW5jdGlv
bmFsIGV2ZW50IHdoZW4gbGFzdCB1cGRhdGUgdGltZSBpcyBvdmVyIDI0IGhvdXJzJyk7CiAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0ZS1ieXRlY2hlY2suaHR0cHMuaHRtbCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0ZS1ieXRlY2hlY2suaHR0cHMuaHRtbAppbmRleCA2NjI4
ZGJhNmVlN2QxMWFlMGNkNDU5NDFjNzI2ZGYwMTdhZmI5MzM2Li5lYzNkMTVhYmVjMDljYTVmNWUz
ZGI5ZTJjOGFjMmU5MDQwZmZlN2ZlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRh
dGUtYnl0ZWNoZWNrLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLWJ5
dGVjaGVjay5odHRwcy5odG1sCkBAIC0xLDcgKzEsNiBAQAogPCFkb2N0eXBlIGh0bWw+CiA8bWV0
YSBjaGFyc2V0PXV0Zi04PgogPHRpdGxlPjwvdGl0bGU+Ci08bWV0YSBuYW1lPSJ0aW1lb3V0IiBj
b250ZW50PSJsb25nIj4KIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48
L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGVzdGhhcm5lc3MtaGVscGVycy5qcyI+
PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+
PC9zY3JpcHQ+CkBAIC00NCwxMSArNDMsOCBAQCBzZXR0aW5ncy5yZWR1Y2UoKHAsIHMpID0+IHsK
ICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCkKICAgICAgIC8vIFJlZ2lzdGVyIGEgc2Vydmlj
ZSB3b3JrZXIuCiAgICAgICAudGhlbihfID0+IHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5k
X3JlZ2lzdGVyKHQsIHNjcmlwdCwgc2NvcGUpKQotICAgICAgLnRoZW4ociA9PiB7Ci0gICAgICAg
IHQuYWRkX2NsZWFudXAoKCkgPT4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcih0LCBzY29wZSkp
OwotICAgICAgICBzd3IgPSByOwotICAgICAgICByZXR1cm4gd2FpdF9mb3JfdXBkYXRlKHQsIHN3
cik7Ci0gICAgICB9KQorICAgICAgLnRoZW4ociA9PiBzd3IgPSByKQorICAgICAgLnRoZW4oXyA9
PiB3YWl0X2Zvcl91cGRhdGUodCwgc3dyKSkKICAgICAgIC50aGVuKHcgPT4gc3cgPSB3KQogICAg
ICAgLnRoZW4oXyA9PiB3YWl0X2Zvcl9zdGF0ZSh0LCBzdywgJ2FjdGl2YXRlZCcpKQogICAgICAg
LnRoZW4oXyA9PiBhc3NlcnRfYXJyYXlfZXF1YWxzKFtzd3IuYWN0aXZlLApAQCAtNjgsNyArNjQs
MTAgQEAgc2V0dGluZ3MucmVkdWNlKChwLCBzKSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzd3Iud2FpdGluZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN3ci5p
bnN0YWxsaW5nXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N3LCBudWxsLCBudWxs
XSk7Ci0gICAgICB9KTsKKyAgICAgIH0pCisKKyAgICAgIC8vIFVucmVnaXN0ZXIgdGhlIHNlcnZp
Y2Ugd29ya2VyLgorICAgICAgLnRoZW4oXyA9PiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2Fu
ZF9kb25lKHQsIHNjb3BlKSk7CiAgIH0sIGBUZXN0KGNvcnM6ICR7cy5jb3JzfSwgbWFpbjogJHtz
Lm1haW59LCBpbXBvcnRlZDogJHtzLmltcG9ydGVkfSlgKSk7CiB9LCBQcm9taXNlLnJlc29sdmUo
KSk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0ZS1taXNzaW5nLWltcG9y
dC1zY3JpcHRzLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0ZS1t
aXNzaW5nLWltcG9ydC1zY3JpcHRzLmh0dHBzLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggOGRmOGJmOGNjZTUxN2Y0Y2JkNjRmZDNjNmUyN2ZmZjgwMzFmMWQwZC4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci91cGRhdGUtbWlzc2luZy1pbXBvcnQtc2NyaXB0cy5odHRwcy1leHBlY3RlZC50eHQK
KysrIC9kZXYvbnVsbApAQCAtMSw0ICswLDAgQEAKLQotUEFTUyBJbml0aWFsaXplIGdsb2JhbCBz
dGF0ZSAKLVBBU1MgVXBkYXRlIHNlcnZpY2Ugd29ya2VyIHdpdGggbmV3IHNjcmlwdCB0aGF0J3Mg
bWlzc2luZyBpbXBvcnRTY3JpcHRzKCkgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L3VwZGF0ZS1taXNzaW5nLWltcG9ydC1zY3JpcHRzLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci91cGRhdGUtbWlzc2luZy1pbXBvcnQtc2NyaXB0cy5odHRwcy5odG1sCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA2NmU4YmZhYzc1MWU4MzVhZjhlNTQzZmM1Mjg5Njk3YzE1YWMx
MThkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL3VwZGF0ZS1taXNzaW5nLWltcG9ydC1zY3JpcHRzLmh0dHBzLmh0bWwKKysr
IC9kZXYvbnVsbApAQCAtMSwzMyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTx0aXRsZT5TZXJ2
aWNlIFdvcmtlcjogdXBkYXRlIHdpdGggbWlzc2luZyBpbXBvcnRTY3JpcHRzPC90aXRsZT4KLTxz
Y3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQg
c3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQg
c3JjPSJyZXNvdXJjZXMvdGVzdC1oZWxwZXJzLnN1Yi5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNy
Yz0iL2NvbW1vbi91dGlscy5qcyI+PC9zY3JpcHQ+Ci08Ym9keT4KLTxzY3JpcHQ+Ci0vKioKLSAq
IFRlc3QgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbi51cGRhdGUoKSB3aGVuIGltcG9ydFNjcmlw
dHMgaW4gYSBzZXJ2aWNlIHdvcmtlcgotICogc2NyaXB0IGlzIG5vIGxvbmdlciBhdmFpbGFibGUg
KGJ1dCB3YXMgaW5pdGlhbGx5KS4KLSAqLwotbGV0IHJlZ2lzdHJhdGlvbiA9IG51bGw7Ci0KLXBy
b21pc2VfdGVzdChhc3luYyAodGVzdCkgPT4gewotICBjb25zdCBzY3JpcHQgPSBgcmVzb3VyY2Vz
L3VwZGF0ZS1taXNzaW5nLWltcG9ydC1zY3JpcHRzLW1haW4td29ya2VyLnB5P2tleT0ke3Rva2Vu
KCl9YDsKLSAgY29uc3Qgc2NvcGUgPSAncmVzb3VyY2VzL3VwZGF0ZS1taXNzaW5nLWltcG9ydC1z
Y3JpcHRzJzsKLQotICByZWdpc3RyYXRpb24gPSBhd2FpdCBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lz
dGVyX2FuZF9yZWdpc3Rlcih0ZXN0LCBzY3JpcHQsIHNjb3BlKTsKLQotICBhZGRfY29tcGxldGlv
bl9jYWxsYmFjaygoKSA9PiB7IHJlZ2lzdHJhdGlvbi51bnJlZ2lzdGVyKCk7IH0pOwotCi0gIGF3
YWl0IHdhaXRfZm9yX3N0YXRlKHRlc3QsIHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLCAnYWN0aXZh
dGVkJyk7Ci19LCAnSW5pdGlhbGl6ZSBnbG9iYWwgc3RhdGUnKTsKLQotcHJvbWlzZV90ZXN0KHRl
c3QgPT4gewotICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7Ci0gICAgcmVnaXN0cmF0
aW9uLmFkZEV2ZW50TGlzdGVuZXIoJ3VwZGF0ZWZvdW5kJywgcmVzb2x2ZSk7Ci0gICAgcmVnaXN0
cmF0aW9uLnVwZGF0ZSgpOwotICB9KTsKLX0sICdVcGRhdGUgc2VydmljZSB3b3JrZXIgd2l0aCBu
ZXcgc2NyaXB0IHRoYXRcJ3MgbWlzc2luZyBpbXBvcnRTY3JpcHRzKCknKTsKLTwvc2NyaXB0Pgot
PC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLW5vLWNhY2hlLXJl
cXVlc3QtaGVhZGVycy5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRh
dGUtbm8tY2FjaGUtcmVxdWVzdC1oZWFkZXJzLmh0dHBzLWV4cGVjdGVkLnR4dApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggYjU1MTZkNjQ2MTFkOWEyOWUxMmZlNmVhY2VmY2UxYTZjZmUw
YjQwMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci91cGRhdGUtbm8tY2FjaGUtcmVxdWVzdC1oZWFkZXJzLmh0dHBzLWV4cGVj
dGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotCi1QQVNTIGhlYWRlcnMgaW4g
bm8tY2FjaGUgbW9kZSAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLW5v
LWNhY2hlLXJlcXVlc3QtaGVhZGVycy5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBk
YXRlLW5vLWNhY2hlLXJlcXVlc3QtaGVhZGVycy5odHRwcy5odG1sCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA2ZWJhZDRiN2IxMGJjZGYxNzZjMTU0M2ZkNzExYWVlMzFkNTU0N2I3Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL3VwZGF0ZS1uby1jYWNoZS1yZXF1ZXN0LWhlYWRlcnMuaHR0cHMuaHRtbAorKysgL2Rl
di9udWxsCkBAIC0xLDQ4ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPG1ldGEgY2hhcnNldD0i
dXRmLTgiPgotPHRpdGxlPlRlc3QgdGhhdCBjYWNoZSBpcyBiZWluZyBieXBhc3NlZC92YWxpZGF0
ZWQgaW4gbm8tY2FjaGUgbW9kZSBvbiB1cGRhdGU8L3RpdGxlPgotPHNjcmlwdCBzcmM9Ii9yZXNv
dXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMv
dGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy90
ZXN0LWhlbHBlcnMuc3ViLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0vLyBUZXN0cyBhIHNlcnZp
Y2Ugd29ya2VyIHNjcmlwdCBmZXRjaCBkdXJpbmcgYW4gdXBkYXRlIGNoZWNrIHdoaWNoCi0vLyBi
eXBhc3Nlcy92YWxpZGF0ZXMgdGhlIGJyb3dzZXIgY2FjaGUuIFRoZSBmZXRjaCBzaG91bGQgaGF2
ZSB0aGUKLS8vICdpZi1ub25lLW1hdGNoJyByZXF1ZXN0IGhlYWRlci4KLS8vCi0vLyBUaGlzIHRl
c3RzIHRoZSBVcGRhdGUgc3RlcDoKLS8vICAiU2V0IHJlcXVlc3TigJlzIGNhY2hlIG1vZGUgdG8g
Im5vLWNhY2hlIiBpZiBhbnkgb2YgdGhlIGZvbGxvd2luZyBhcmUgdHJ1ZS4uLiIKLS8vIGh0dHBz
Oi8vdzNjLmdpdGh1Yi5pby9TZXJ2aWNlV29ya2VyLyN1cGRhdGUtYWxnb3JpdGhtCi0vLwotLy8g
VGhlIHRlc3Qgd29ya3MgYnkgcmVnaXN0ZXJpbmcgYSBzZXJ2aWNlIHdvcmtlciB3aXRoIHx1cGRh
dGVWaWFDYWNoZXwKLS8vIHNldCB0byAibm9uZSIuIEl0IHRoZW4gZG9lcyBhbiB1cGRhdGUuIFRo
ZSB0ZXN0IHNlcnZlciByZXNwb25kcyB3aXRoCi0vLyBhbiB1cGRhdGVkIHdvcmtlciBzY3JpcHQg
dGhhdCByZW1lbWJlcnMgdGhlIGh0dHAgcmVxdWVzdCBoZWFkZXJzLgotLy8gVGhlIHVwZGF0ZWQg
d29ya2VyIHJlcG9ydHMgYmFjayB0aGVzZSBoZWFkZXJzIHRvIHRoZSB0ZXN0IHBhZ2UuCi1wcm9t
aXNlX3Rlc3QoYXN5bmMgKHQpID0+IHsKLSAgY29uc3Qgc2NyaXB0ID0gInJlc291cmNlcy90ZXN0
LXJlcXVlc3QtaGVhZGVycy13b3JrZXIucHkiOwotICBjb25zdCBzY29wZSA9ICJyZXNvdXJjZXMv
IjsKLQotICAvLyBSZWdpc3RlciB0aGUgc2VydmljZSB3b3JrZXIuCi0gIGF3YWl0IHNlcnZpY2Vf
d29ya2VyX3VucmVnaXN0ZXIodCwgc2NvcGUpOwotICBjb25zdCByZWdpc3RyYXRpb24gPSBhd2Fp
dCBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3RlcigKLSAgICAgIHNjcmlwdCwge3Njb3Bl
LCB1cGRhdGVWaWFDYWNoZTogJ25vbmUnfSk7Ci0gIGF3YWl0IHdhaXRfZm9yX3N0YXRlKHQsIHJl
Z2lzdHJhdGlvbi5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7Ci0KLSAgLy8gRG8gYW4gdXBkYXRl
LgotICBhd2FpdCByZWdpc3RyYXRpb24udXBkYXRlKCk7Ci0KLSAgLy8gQXNrIHRoZSBuZXcgd29y
a2VyIHdoYXQgdGhlIHJlcXVlc3QgaGVhZGVycyB3ZXJlLgotICBjb25zdCBuZXdXb3JrZXIgPSBy
ZWdpc3RyYXRpb24uaW5zdGFsbGluZzsKLSAgY29uc3Qgc2F3TWVzc2FnZSA9IG5ldyBQcm9taXNl
KChyZXNvbHZlKSA9PiB7Ci0gICAgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIub25tZXNzYWdlID0g
KGV2ZW50KSA9PiB7Ci0gICAgICByZXNvbHZlKGV2ZW50LmRhdGEpOwotICAgIH07Ci0gIH0pOwot
ICBuZXdXb3JrZXIucG9zdE1lc3NhZ2UoJ2dldEhlYWRlcnMnKTsKLSAgY29uc3QgcmVzdWx0ID0g
YXdhaXQgc2F3TWVzc2FnZTsKLQotICAvLyBUZXN0IHRoZSByZXN1bHQuCi0gIGFzc2VydF9lcXVh
bHMocmVzdWx0WydzZXJ2aWNlLXdvcmtlciddLCAnc2NyaXB0Jyk7Ci0gIGFzc2VydF9lcXVhbHMo
cmVzdWx0WydpZi1ub25lLW1hdGNoJ10sICdldGFnJyk7Ci19LCAnaGVhZGVycyBpbiBuby1jYWNo
ZSBtb2RlJyk7Ci0KLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBk
YXRlLW5vdC1hbGxvd2VkLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Vw
ZGF0ZS1ub3QtYWxsb3dlZC5odHRwcy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGM5NTlhY2Q1YmJhZjg5OTIyNGI3MjQ5YjFiNmI2ZDMwZDY0OWZiMjEuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvdXBkYXRlLW5vdC1hbGxvd2VkLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBA
IC0xLDYgKzAsMCBAQAotCi1IYXJuZXNzIEVycm9yIChUSU1FT1VUKSwgbWVzc2FnZSA9IG51bGwK
LQotUEFTUyBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLnVwZGF0ZSgpIGZyb20gY2xpZW50IHRo
cm93cyB3aGlsZSBpbnN0YWxsaW5nIHNlcnZpY2Ugd29ya2VyLiAKLVRJTUVPVVQgU2VydmljZVdv
cmtlclJlZ2lzdHJhdGlvbi51cGRhdGUoKSBmcm9tIGluc3RhbGxpbmcgc2VydmljZSB3b3JrZXIg
dGhyb3dzLiBUZXN0IHRpbWVkIG91dAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91
cGRhdGUtbm90LWFsbG93ZWQuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0ZS1u
b3QtYWxsb3dlZC5odHRwcy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwYTU0
YWE5MzUwMzgyYmIwODJmNDA3YTFlYTMwYjI2NTU3NWJhYWU5Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0ZS1ub3Qt
YWxsb3dlZC5odHRwcy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTQwICswLDAgQEAKLTwhRE9D
VFlQRSBodG1sPgotPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2Ny
aXB0PgotPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2Ny
aXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy90ZXN0LWhlbHBlcnMuc3ViLmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLWZ1bmN0aW9uIHNlbmRfbWVzc2FnZV90b193
b3JrZXJfYW5kX3dhaXRfZm9yX3Jlc3BvbnNlKHdvcmtlciwgbWVzc2FnZSkgewotICByZXR1cm4g
bmV3IFByb21pc2UocmVzb2x2ZSA9PiB7Ci0gICAgLy8gVXNlIGEgZGVkaWNhdGVkIGNoYW5uZWwg
Zm9yIGV2ZXJ5IHJlcXVlc3QgdG8gYXZvaWQgcmFjZSBjb25kaXRpb25zIG9uCi0gICAgLy8gY29u
Y3VycmVudCByZXF1ZXN0cy4KLSAgICBjb25zdCBjaGFubmVsID0gbmV3IE1lc3NhZ2VDaGFubmVs
KCk7Ci0gICAgd29ya2VyLnBvc3RNZXNzYWdlKGNoYW5uZWwucG9ydDEsIFtjaGFubmVsLnBvcnQx
XSk7Ci0KLSAgICBsZXQgbWVzc2FnZVJlY2VpdmVkID0gZmFsc2U7Ci0gICAgY2hhbm5lbC5wb3J0
Mi5vbm1lc3NhZ2UgPSBldmVudCA9PiB7Ci0gICAgICBhc3NlcnRfZmFsc2UobWVzc2FnZVJlY2Vp
dmVkLCAnQWxyZWFkeSByZWNlaXZlZCByZXNwb25zZSBmb3IgJyArIG1lc3NhZ2UpOwotICAgICAg
bWVzc2FnZVJlY2VpdmVkID0gdHJ1ZTsKLSAgICAgIHJlc29sdmUoZXZlbnQuZGF0YSk7Ci0gICAg
fTsKLSAgICBjaGFubmVsLnBvcnQyLnBvc3RNZXNzYWdlKG1lc3NhZ2UpOwotICB9KTsKLX0KLQot
YXN5bmMgZnVuY3Rpb24gZW5zdXJlX2luc3RhbGxfZXZlbnRfZmlyZWQod29ya2VyKSB7Ci0gIGNv
bnN0IHJlc3BvbnNlID0gYXdhaXQgc2VuZF9tZXNzYWdlX3RvX3dvcmtlcl9hbmRfd2FpdF9mb3Jf
cmVzcG9uc2Uod29ya2VyLCAnYXdhaXRJbnN0YWxsRXZlbnQnKTsKLSAgYXNzZXJ0X2VxdWFscygn
aW5zdGFsbEV2ZW50RmlyZWQnLCByZXNwb25zZSk7Ci0gIGFzc2VydF9lcXVhbHMoJ2luc3RhbGxp
bmcnLCB3b3JrZXIuc3RhdGUsICdFeHBlY3RlZCB3b3JrZXIgdG8gYmUgaW5zdGFsbGluZy4nKTsK
LX0KLQotYXN5bmMgZnVuY3Rpb24gZmluaXNoX2luc3RhbGwod29ya2VyKSB7Ci0gIGF3YWl0IGVu
c3VyZV9pbnN0YWxsX2V2ZW50X2ZpcmVkKHdvcmtlcik7Ci0gIGNvbnN0IHJlc3BvbnNlID0gYXdh
aXQgc2VuZF9tZXNzYWdlX3RvX3dvcmtlcl9hbmRfd2FpdF9mb3JfcmVzcG9uc2Uod29ya2VyLCAn
ZmluaXNoSW5zdGFsbCcpOwotICBhc3NlcnRfZXF1YWxzKCdpbnN0YWxsRmluaXNoZWQnLCByZXNw
b25zZSk7Ci19Ci0KLWFzeW5jIGZ1bmN0aW9uIGFjdGl2YXRlX3NlcnZpY2Vfd29ya2VyKHQsIHdv
cmtlcikgewotICBhd2FpdCBmaW5pc2hfaW5zdGFsbCh3b3JrZXIpOwotICAvLyBCeSB3YWl0aW5n
IGZvciBib3RoIHN0YXRlcyBhdCB0aGUgc2FtZSB0aW1lLCB0aGUgdGVzdCBmYWlscwotICAvLyBx
dWlja2x5IGlmIHRoZSBpbnN0YWxsYXRpb24gZmFpbHMsIGF2b2lkaW5nIGEgdGltZW91dC4KLSAg
YXdhaXQgUHJvbWlzZS5yYWNlKFt3YWl0X2Zvcl9zdGF0ZSh0LCB3b3JrZXIsICdhY3RpdmF0ZWQn
KSwKLSAgICAgICAgICAgICAgICAgICAgICB3YWl0X2Zvcl9zdGF0ZSh0LCB3b3JrZXIsICdyZWR1
bmRhbnQnKV0pOwotICBhc3NlcnRfZXF1YWxzKCdhY3RpdmF0ZWQnLCB3b3JrZXIuc3RhdGUsICdT
ZXJ2aWNlIHdvcmtlciBzaG91bGQgYmUgYWN0aXZhdGVkLicpOwotfQotCi1hc3luYyBmdW5jdGlv
biB1cGRhdGVfd2l0aGluX3NlcnZpY2Vfd29ya2VyKHdvcmtlcikgewotICAvLyBUaGlzIGZ1bmN0
aW9uIHJldHVybnMgYSBQcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB1cGRhdGUoKQotICAvLyBo
YXMgYmVlbiBjYWxsZWQgYnV0IGlzIG5vdCBuZWNlc3NhcmlseSBmaW5pc2hlZCB5ZXQuCi0gIC8v
IENhbGwgZmluaXNoKCkgb24gdGhlIHJldHVybmVkIG9iamVjdCB0byB3YWl0IGZvciB1cGRhdGUo
KSBzZXR0bGUuCi0gIGNvbnN0IHBvcnQgPSBhd2FpdCBzZW5kX21lc3NhZ2VfdG9fd29ya2VyX2Fu
ZF93YWl0X2Zvcl9yZXNwb25zZSh3b3JrZXIsICdjYWxsVXBkYXRlJyk7Ci0gIGxldCBtZXNzYWdl
UmVjZWl2ZWQgPSBmYWxzZTsKLSAgcmV0dXJuIHsKLSAgICBmaW5pc2g6ICgpID0+IHsKLSAgICAg
IHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHsKLSAgICAgICAgcG9ydC5vbm1lc3NhZ2Ug
PSBldmVudCA9PiB7Ci0gICAgICAgICAgYXNzZXJ0X2ZhbHNlKG1lc3NhZ2VSZWNlaXZlZCwgJ1Vw
ZGF0ZSBhbHJlYWR5IGZpbmlzaGVkLicpOwotICAgICAgICAgIG1lc3NhZ2VSZWNlaXZlZCA9IHRy
dWU7Ci0gICAgICAgICAgcmVzb2x2ZShldmVudC5kYXRhKTsKLSAgICAgICAgfTsKLSAgICAgIH0p
OwotICAgIH0sCi0gIH07Ci19Ci0KLWFzeW5jIGZ1bmN0aW9uIHVwZGF0ZV9mcm9tX2NsaWVudF9h
bmRfYXdhaXRfaW5zdGFsbGluZ192ZXJzaW9uKHRlc3QsIHJlZ2lzdHJhdGlvbikgewotICBjb25z
dCB1cGRhdGVmb3VuZCA9IHdhaXRfZm9yX3VwZGF0ZSh0ZXN0LCByZWdpc3RyYXRpb24pOwotICBy
ZWdpc3RyYXRpb24udXBkYXRlKCk7Ci0gIGF3YWl0IHVwZGF0ZWZvdW5kOwotICByZXR1cm4gcmVn
aXN0cmF0aW9uLmluc3RhbGxpbmc7Ci19Ci0KLWFzeW5jIGZ1bmN0aW9uIHNwaW5fdXBfc2Vydmlj
ZV93b3JrZXIodGVzdCkgewotICBjb25zdCBzY3JpcHQgPSAncmVzb3VyY2VzL3VwZGF0ZS1kdXJp
bmctaW5zdGFsbGF0aW9uLXdvcmtlci5weSc7Ci0gIGNvbnN0IHNjb3BlID0gJ3Jlc291cmNlcy9i
bGFuay5odG1sJzsKLQotICBjb25zdCByZWdpc3RyYXRpb24gPSBhd2FpdCBzZXJ2aWNlX3dvcmtl
cl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0ZXN0LCBzY3JpcHQsIHNjb3BlKTsKLSAgdGVzdC5h
ZGRfY2xlYW51cChhc3luYyAoKSA9PiB7Ci0gICAgaWYgKHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5n
KSB7Ci0gICAgICAvLyBJZiB0aGVyZSBpcyBhbiBpbnN0YWxsaW5nIHdvcmtlciwgd2UgbmVlZCB0
byBmaW5pc2ggaW5zdGFsbGluZyBpdC4KLSAgICAgIC8vIE90aGVyd2lzZSwgdGhlIHRlc3RzIGZh
aWxzIHdpdGggYW4gdGltZW91dCBiZWNhdXNlIHVucmVnaXN0ZXIoKSBibG9ja3MKLSAgICAgIC8v
IHVudGlsIHRoZSBpbnN0YWxsLWV2ZW50LWhhbmRsZXIgZmluaXNoZXMuCi0gICAgICBjb25zdCB3
b3JrZXIgPSByZWdpc3RyYXRpb24uaW5zdGFsbGluZzsKLSAgICAgIGF3YWl0IHNlbmRfbWVzc2Fn
ZV90b193b3JrZXJfYW5kX3dhaXRfZm9yX3Jlc3BvbnNlKHdvcmtlciwgJ2F3YWl0SW5zdGFsbEV2
ZW50Jyk7Ci0gICAgICBhd2FpdCBzZW5kX21lc3NhZ2VfdG9fd29ya2VyX2FuZF93YWl0X2Zvcl9y
ZXNwb25zZSh3b3JrZXIsICdmaW5pc2hJbnN0YWxsJyk7Ci0gICAgfQotICAgIHJldHVybiByZWdp
c3RyYXRpb24udW5yZWdpc3RlcigpOwotICB9KTsKLQotICByZXR1cm4gcmVnaXN0cmF0aW9uOwot
fQotCi1wcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7Ci0gIGNvbnN0IHJlZ2lzdHJhdGlvbiA9IGF3
YWl0IHNwaW5fdXBfc2VydmljZV93b3JrZXIodCk7Ci0gIGNvbnN0IHdvcmtlciA9IHJlZ2lzdHJh
dGlvbi5pbnN0YWxsaW5nOwotICBhd2FpdCBlbnN1cmVfaW5zdGFsbF9ldmVudF9maXJlZCh3b3Jr
ZXIpOwotCi0gIGNvbnN0IHJlc3VsdCA9IHJlZ2lzdHJhdGlvbi51cGRhdGUoKTsKLSAgYXdhaXQg
YWN0aXZhdGVfc2VydmljZV93b3JrZXIodCwgd29ya2VyKTsKLSAgcmV0dXJuIHJlc3VsdDsKLX0s
ICdTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLnVwZGF0ZSgpIGZyb20gY2xpZW50IHN1Y2NlZWRz
IHdoaWxlIGluc3RhbGxpbmcgc2VydmljZSB3b3JrZXIuJyk7Ci0KLXByb21pc2VfdGVzdChhc3lu
YyB0ID0+IHsKLSAgY29uc3QgcmVnaXN0cmF0aW9uID0gYXdhaXQgc3Bpbl91cF9zZXJ2aWNlX3dv
cmtlcih0KTsKLSAgY29uc3Qgd29ya2VyID0gcmVnaXN0cmF0aW9uLmluc3RhbGxpbmc7Ci0gIGF3
YWl0IGVuc3VyZV9pbnN0YWxsX2V2ZW50X2ZpcmVkKHdvcmtlcik7Ci0KLSAgLy8gQWRkIGV2ZW50
IGxpc3RlbmVyIHRvIGZhaWwgdGhlIHRlc3QgaWYgdXBkYXRlKCkgc3VjY2VlZHMuCi0gIGNvbnN0
IHVwZGF0ZWZvdW5kID0gdC5zdGVwX2Z1bmMoYXN5bmMgKCkgPT4gewotICAgIHJlZ2lzdHJhdGlv
bi5yZW1vdmVFdmVudExpc3RlbmVyKCd1cGRhdGVmb3VuZCcsIHVwZGF0ZWZvdW5kKTsKLSAgICAv
LyBBY3RpdmF0ZSBuZXcgd29ya2VyIHNvIG5vbi1jb21wbGlhbnQgYnJvd3NlcnMgZG9uJ3QgZmFp
bCB3aXRoIHRpbWVvdXQuCi0gICAgYXdhaXQgYWN0aXZhdGVfc2VydmljZV93b3JrZXIodCwgcmVn
aXN0cmF0aW9uLmluc3RhbGxpbmcpOwotICAgIGFzc2VydF91bnJlYWNoZWQoInVwZGF0ZSgpIHNo
b3VsZCBoYXZlIGZhaWxlZCIpOwotICB9KTsKLSAgcmVnaXN0cmF0aW9uLmFkZEV2ZW50TGlzdGVu
ZXIoJ3VwZGF0ZWZvdW5kJywgdXBkYXRlZm91bmQpOwotCi0gIGNvbnN0IHVwZGF0ZSA9IGF3YWl0
IHVwZGF0ZV93aXRoaW5fc2VydmljZV93b3JrZXIod29ya2VyKTsKLSAgLy8gQWN0aXZhdGUgd29y
a2VyIHRvIGVuc3VyZSB1cGRhdGUoKSBmaW5pc2hlcyBhbmQgdGhlIHRlc3QgZG9lc24ndCB0aW1l
b3V0Ci0gIC8vIGluIG5vbi1jb21wbGlhbnQgYnJvd3NlcnMuCi0gIGF3YWl0IGFjdGl2YXRlX3Nl
cnZpY2Vfd29ya2VyKHQsIHdvcmtlcik7Ci0KLSAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB1cGRh
dGUuZmluaXNoKCk7Ci0gIGFzc2VydF9mYWxzZShyZXNwb25zZS5zdWNjZXNzLCAndXBkYXRlKCkg
c2hvdWxkIGhhdmUgZmFpbGVkLicpOwotICBhc3NlcnRfZXF1YWxzKCdJbnZhbGlkU3RhdGVFcnJv
cicsIHJlc3BvbnNlLmV4Y2VwdGlvbiwgJ3VwZGF0ZSgpIHNob3VsZCBoYXZlIHRocm93biBJbnZh
bGlkU3RhdGVFcnJvci4nKTsKLX0sICdTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLnVwZGF0ZSgp
IGZyb20gaW5zdGFsbGluZyBzZXJ2aWNlIHdvcmtlciB0aHJvd3MuJyk7Ci0KLXByb21pc2VfdGVz
dChhc3luYyB0ID0+IHsKLSAgY29uc3QgcmVnaXN0cmF0aW9uID0gYXdhaXQgc3Bpbl91cF9zZXJ2
aWNlX3dvcmtlcih0KTsKLSAgY29uc3Qgd29ya2VyMSA9IHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5n
OwotICBhd2FpdCBhY3RpdmF0ZV9zZXJ2aWNlX3dvcmtlcih0LCB3b3JrZXIxKTsKLQotICBjb25z
dCB3b3JrZXIyID0gYXdhaXQgdXBkYXRlX2Zyb21fY2xpZW50X2FuZF9hd2FpdF9pbnN0YWxsaW5n
X3ZlcnNpb24odCwgcmVnaXN0cmF0aW9uKTsKLSAgYXdhaXQgZW5zdXJlX2luc3RhbGxfZXZlbnRf
ZmlyZWQod29ya2VyMik7Ci0KLSAgY29uc3QgdXBkYXRlID0gYXdhaXQgdXBkYXRlX3dpdGhpbl9z
ZXJ2aWNlX3dvcmtlcih3b3JrZXIxKTsKLSAgLy8gQWN0aXZhdGUgdGhlIG5ldyB2ZXJzaW9uIHNv
IHRoYXQgdXBkYXRlKCkgZmluaXNoZXMgYW5kIHRoZSB0ZXN0IGRvZXNuJ3QgdGltZW91dC4KLSAg
YXdhaXQgYWN0aXZhdGVfc2VydmljZV93b3JrZXIodCwgd29ya2VyMik7Ci0gIGNvbnN0IHJlc3Bv
bnNlID0gYXdhaXQgdXBkYXRlLmZpbmlzaCgpOwotICBhc3NlcnRfdHJ1ZShyZXNwb25zZS5zdWNj
ZXNzLCAndXBkYXRlKCkgZnJvbSBhY3RpdmUgc2VydmljZSB3b3JrZXIgc2hvdWxkIGhhdmUgc3Vj
Y2VlZGVkLicpOwotfSwgJ1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24udXBkYXRlKCkgZnJvbSBh
Y3RpdmUgc2VydmljZSB3b3JrZXIgc3VjY2VlZHMgd2hpbGUgaW5zdGFsbGluZyBzZXJ2aWNlIHdv
cmtlci4nKTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRl
LW9uLW5hdmlnYXRpb24uaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBk
YXRlLW9uLW5hdmlnYXRpb24uaHR0cHMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAyNzE1MjYyNWQ1ZTk3MDMzMDZhMDU5Y2VhMDAwNTlmMWUwNDMyMGE4Li4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3VwZGF0ZS1vbi1uYXZpZ2F0aW9uLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxs
CkBAIC0xLDMgKzAsMCBAQAotCi1QQVNTIFRoZSBhY3RpdmUgc2VydmljZSB3b3JrZXIgaW4gY2hh
cmdlIG9mIGEgbmF2aWdhdGlvbiBsb2FkIHNob3VsZCBub3QgYmUgdGVybWluYXRlZCBhcyBwYXJ0
IG9mIHVwZGF0aW5nIHRoZSByZWdpc3RyYXRpb24gCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL3VwZGF0ZS1vbi1uYXZpZ2F0aW9uLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci91cGRhdGUtb24tbmF2aWdhdGlvbi5odHRwcy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA1MjczNDIwYjkwZmM5N2ZjZDQ0MWFjMDU3YTk5ZWU1YjMxYzg0YTMwLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L3VwZGF0ZS1vbi1uYXZpZ2F0aW9uLmh0dHBzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyMCAr
MCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTx0aXRsZT5VcGRhdGUgb24gbmF2aWdhdGlvbjwvdGl0
bGU+Ci08c2NyaXB0IHNyYz0nL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyc+PC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0nL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyc+PC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0ncmVzb3VyY2VzL3Rlc3QtaGVscGVycy5zdWIuanMnPjwvc2NyaXB0PgotPHNj
cmlwdD4KLXByb21pc2VfdGVzdChhc3luYyAodCkgPT4gewotICAgIHZhciBzY3JpcHQgPSAncmVz
b3VyY2VzL3VwZGF0ZS1mZXRjaC13b3JrZXIucHknOwotICAgIHZhciBzY29wZSA9ICdyZXNvdXJj
ZXMvdHJpY2tsZS5weT9tcz0xMDAwJmNvdW50PTEnOwotCi0gICAgY29uc3QgcmVnaXN0cmF0aW9u
ID0gYXdhaXQgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgc2NyaXB0
LCBzY29wZSk7Ci0gICAgdC5hZGRfY2xlYW51cCgoKSA9PiByZWdpc3RyYXRpb24udW5yZWdpc3Rl
cigpKTsKLQotICAgIGlmIChyZWdpc3RyYXRpb24uaW5zdGFsbGluZykKLSAgICAgICAgYXdhaXQg
d2FpdF9mb3Jfc3RhdGUodCwgcmVnaXN0cmF0aW9uLmluc3RhbGxpbmcsICdhY3RpdmF0ZWQnKTsK
LQotICAgIGNvbnN0IGZyYW1lID0gYXdhaXQgd2l0aF9pZnJhbWUoc2NvcGUpOwotICAgIHQuYWRk
X2NsZWFudXAoKCkgPT4gZnJhbWUucmVtb3ZlKCkpOwotfSwgJ1RoZSBhY3RpdmUgc2VydmljZSB3
b3JrZXIgaW4gY2hhcmdlIG9mIGEgbmF2aWdhdGlvbiBsb2FkIHNob3VsZCBub3QgYmUgdGVybWlu
YXRlZCBhcyBwYXJ0IG9mIHVwZGF0aW5nIHRoZSByZWdpc3RyYXRpb24nKTsKLTwvc2NyaXB0Pgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLXJlY292ZXJ5Lmh0dHBzLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUtcmVjb3ZlcnkuaHR0cHMuaHRtbAppbmRleCAxNzYw
OGQyZWY3OTBlMmVhOTdhNDNmNTZiODZhMjhlZjBlNjQ3NjA0Li4zYjNkOTU1YjE0MmJmZjY3YzNk
MmMyYTJkMTc0Mjg4OGM2NjFjNjlkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRh
dGUtcmVjb3ZlcnkuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUtcmVj
b3ZlcnkuaHR0cHMuaHRtbApAQCAtNSw3ICs1LDcgQEAKIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
dGVzdGhhcm5lc3MtaGVscGVycy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L3Rlc3QtaGVscGVycy5zdWIuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KLXByb21pc2VfdGVzdChm
dW5jdGlvbih0KSB7Cithc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICB2YXIgc2NvcGUgPSAn
cmVzb3VyY2VzL3NpbXBsZS50eHQnOwogICAgIHZhciB3b3JrZXJfdXJsID0gJ3Jlc291cmNlcy91
cGRhdGUtcmVjb3Zlcnktd29ya2VyLnB5JzsKICAgICB2YXIgZXhwZWN0ZWRfdXJsID0gbm9ybWFs
aXplVVJMKHdvcmtlcl91cmwpOwpAQCAtNDYsMTIgKzQ2LDggQEAgcHJvbWlzZV90ZXN0KGZ1bmN0
aW9uKHQpIHsKICAgICAgIH0pOwogICAgIH0KIAotICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91
bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCB3b3JrZXJfdXJsLCBzY29wZSkKKyAgICBzZXJ2aWNl
X3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCB3b3JrZXJfdXJsLCBzY29wZSkKICAg
ICAgIC50aGVuKGZ1bmN0aW9uKHIpIHsKLSAgICAgICAgICB0LmFkZF9jbGVhbnVwKGZ1bmN0aW9u
KCkgewotICAgICAgICAgICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcih0LCBz
Y29wZSk7Ci0gICAgICAgICAgICB9KTsKLQogICAgICAgICAgIHJlZ2lzdHJhdGlvbiA9IHI7CiAg
ICAgICAgICAgcmV0dXJuIHdhaXRfZm9yX3N0YXRlKHQsIHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5n
LCAnYWN0aXZhdGVkJyk7CiAgICAgICAgIH0pCkBAIC02OCw2ICs2NCw4IEBAIHByb21pc2VfdGVz
dChmdW5jdGlvbih0KSB7CiAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhmcmFtZS5jb250ZW50V2lu
ZG93Lm5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLmNvbnRyb2xsZXIuc2NyaXB0VVJMLAogICAgICAg
ICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRfdXJsKTsKICAgICAgICAgICBmcmFtZS5yZW1vdmUo
KTsKLSAgICAgICAgfSk7CisgICAgICAgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0
ZXJfYW5kX2RvbmUodCwgc2NvcGUpOworICAgICAgICB9KQorICAgICAgLmNhdGNoKHVucmVhY2hl
ZF9yZWplY3Rpb24odCkpOwogICB9LCAnUmVjb3ZlciBmcm9tIGEgYmFkIHNlcnZpY2Ugd29ya2Vy
IGJ5IHVwZGF0aW5nIGFmdGVyIGEgZmFpbGVkIG5hdmlnYXRpb24uJyk7CiA8L3NjcmlwdD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0ZS1yZWdpc3RyYXRpb24td2l0aC10eXBl
Lmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0ZS1yZWdpc3RyYXRp
b24td2l0aC10eXBlLmh0dHBzLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMzI3Yjc3MDcwNGZlYjc2YTFlNGEzNzhmZmZjNTdkNjE5ZjgxNTJlNS4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91
cGRhdGUtcmVnaXN0cmF0aW9uLXdpdGgtdHlwZS5odHRwcy1leHBlY3RlZC50eHQKKysrIC9kZXYv
bnVsbApAQCAtMSw5ICswLDAgQEAKLQotRkFJTCBVcGRhdGUgdGhlIHJlZ2lzdHJhdGlvbiB3aXRo
IGEgZGlmZmVyZW50IHNjcmlwdCB0eXBlIChjbGFzc2ljID0+IG1vZHVsZSkuIHByb21pc2VfdGVz
dDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogbnVs
bCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdzZWNvbmRXb3JrZXIucG9zdE1lc3NhZ2Un
KSIKLUZBSUwgVXBkYXRlIHRoZSByZWdpc3RyYXRpb24gd2l0aCBhIGRpZmZlcmVudCBzY3JpcHQg
dHlwZSAobW9kdWxlID0+IGNsYXNzaWMpLiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rp
b24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IFN5bnRheEVycm9yOiBVbmV4cGVjdGVk
IHRva2VuICcqJy4gaW1wb3J0IGNhbGwgZXhwZWN0cyBleGFjdGx5IG9uZSBhcmd1bWVudC4iCi1Q
QVNTIFVwZGF0ZSB0aGUgcmVnaXN0cmF0aW9uIHdpdGggYSBkaWZmZXJlbnQgc2NyaXB0IHR5cGUg
KGNsYXNzaWMgPT4gbW9kdWxlKSBhbmQgd2l0aCBhIHNhbWUgbWFpbiBzY3JpcHQuIAotUEFTUyBV
cGRhdGUgdGhlIHJlZ2lzdHJhdGlvbiB3aXRoIGEgZGlmZmVyZW50IHNjcmlwdCB0eXBlIChtb2R1
bGUgPT4gY2xhc3NpYykgYW5kIHdpdGggYSBzYW1lIG1haW4gc2NyaXB0LiAKLVBBU1MgRG9lcyBu
b3QgdXBkYXRlIHRoZSByZWdpc3RyYXRpb24gd2l0aCB0aGUgc2FtZSBzY3JpcHQgdHlwZSBhbmQg
dGhlIHNhbWUgbWFpbiBzY3JpcHQuIAotRkFJTCBVcGRhdGUgdGhlIHJlZ2lzdHJhdGlvbiB3aXRo
IGEgZGlmZmVyZW50IHNjcmlwdCB0eXBlIChjbGFzc2ljID0+IG1vZHVsZSkgYW5kIHdpdGggYSBz
YW1lIG1haW4gc2NyaXB0LiBFeHBlY3QgZXZhbHVhdGlvbiBmYWlsZWQuIGFzc2VydF91bnJlYWNo
ZWQ6IFNob3VsZCBoYXZlIHJlamVjdGVkOiBSZWdpc3RlcmluZyB3aXRoIGludmFsaWQgZXZhbHVh
dGlvbiBzaG91bGQgYmUgZmFpbGVkLiBSZWFjaGVkIHVucmVhY2hhYmxlIGNvZGUKLUZBSUwgVXBk
YXRlIHRoZSByZWdpc3RyYXRpb24gd2l0aCBhIGRpZmZlcmVudCBzY3JpcHQgdHlwZSAobW9kdWxl
ID0+IGNsYXNzaWMpIGFuZCB3aXRoIGEgc2FtZSBtYWluIHNjcmlwdC4gRXhwZWN0IGV2YWx1YXRp
b24gZmFpbGVkLiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTog
b2JqZWN0ICJUeXBlRXJyb3I6IFN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHRva2VuICcqJy4gaW1w
b3J0IGNhbGwgZXhwZWN0cyBleGFjdGx5IG9uZSBhcmd1bWVudC4iCi0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL3VwZGF0ZS1yZWdpc3RyYXRpb24td2l0aC10eXBlLmh0dHBzLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUtcmVnaXN0cmF0aW9uLXdpdGgtdHlwZS5odHRwcy5o
dG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlN2QzNjkyODEyZWI4YTI0ZjI1M2I4
N2UxNTdmNGE0MzY2ZTMwOThlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0ZS1yZWdpc3RyYXRpb24td2l0aC10eXBl
Lmh0dHBzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyMDggKzAsMCBAQAotPCFET0NUWVBFIGh0
bWw+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08dGl0bGU+U2VydmljZSBXb3JrZXI6IFVwZGF0
ZSB0aGUgcmVnaXN0cmF0aW9uIHdpdGggYSBkaWZmZXJlbnQgc2NyaXB0IHR5cGUuPC90aXRsZT4K
LTwhLS0gY29tbW9uLmpzIGlzIGZvciBndWlkKCkgLS0+Ci08c2NyaXB0IHNyYz0iL2NvbW1vbi9z
ZWN1cml0eS1mZWF0dXJlcy9yZXNvdXJjZXMvY29tbW9uLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQg
c3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIv
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvdGVzdC1oZWxwZXJzLnN1Yi5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotLy8gVGhl
IGZvbGxvd2luZyB0d28gdGVzdHMgY2hlY2sgdGhhdCBhIHJlZ2lzdHJhdGlvbiBpcyB1cGRhdGVk
IGNvcnJlY3RseQotLy8gd2l0aCBkaWZmZXJlbnQgc2NyaXB0IHR5cGUuIEF0IGZpcnN0IFNlcnZp
Y2UgV29ya2VyIGlzIHJlZ2lzdGVyZWQgYXMKLS8vIGNsYXNzaWMgc2NyaXB0IHR5cGUsIHRoZW4g
aXQgaXMgcmUtcmVnaXN0ZXJlZCBhcyBtb2R1bGUgc2NyaXB0IHR5cGUsCi0vLyBhbmQgdmljZSB2
ZXJzYS4gQSBtYWluIHNjcmlwdCBpcyBhbHNvIHVwZGF0ZWQgYXQgdGhlIHNhbWUgdGltZS4KLXBy
b21pc2VfdGVzdChhc3luYyB0ID0+IHsKLSAgY29uc3Qga2V5ID0gZ3VpZCgpOwotICBjb25zdCBz
Y3JpcHQgPSBgcmVzb3VyY2VzL3VwZGF0ZS1yZWdpc3RyYXRpb24td2l0aC10eXBlLnB5P2NsYXNz
aWNfZmlyc3Q9MSZrZXk9JHtrZXl9YDsKLSAgY29uc3Qgc2NvcGUgPSAncmVzb3VyY2VzL3VwZGF0
ZS1yZWdpc3RyYXRpb24td2l0aC10eXBlJzsKLSAgYXdhaXQgc2VydmljZV93b3JrZXJfdW5yZWdp
c3Rlcih0LCBzY29wZSk7Ci0gIHQuYWRkX2NsZWFudXAoKCkgPT4gc2VydmljZV93b3JrZXJfdW5y
ZWdpc3Rlcih0LCBzY29wZSkpOwotCi0gIC8vIFJlZ2lzdGVyIHdpdGggY2xhc3NpYyBzY3JpcHQg
dHlwZS4KLSAgY29uc3QgZmlyc3RSZWdpc3RyYXRpb24gPSBhd2FpdCBuYXZpZ2F0b3Iuc2Vydmlj
ZVdvcmtlci5yZWdpc3RlcihzY3JpcHQsIHsKLSAgICBzY29wZTogc2NvcGUsCi0gICAgdHlwZTog
J2NsYXNzaWMnCi0gIH0pOwotICBjb25zdCBmaXJzdFdvcmtlciA9IGZpcnN0UmVnaXN0cmF0aW9u
Lmluc3RhbGxpbmc7Ci0gIGF3YWl0IHdhaXRfZm9yX3N0YXRlKHQsIGZpcnN0V29ya2VyLCAnYWN0
aXZhdGVkJyk7Ci0gIGZpcnN0V29ya2VyLnBvc3RNZXNzYWdlKCcgJyk7Ci0gIGxldCBtc2dFdmVu
dCA9IGF3YWl0IG5ldyBQcm9taXNlKHIgPT4gbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIub25tZXNz
YWdlID0gcik7Ci0gIGFzc2VydF9lcXVhbHMobXNnRXZlbnQuZGF0YSwgJ0EgY2xhc3NpYyBzY3Jp
cHQuJyk7Ci0KLSAgLy8gUmUtcmVnaXN0ZXIgd2l0aCBtb2R1bGUgc2NyaXB0IHR5cGUuCi0gIGNv
bnN0IHNlY29uZFJlZ2lzdHJhdGlvbiA9IGF3YWl0IG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJl
Z2lzdGVyKHNjcmlwdCwgewotICAgIHNjb3BlOiBzY29wZSwKLSAgICB0eXBlOiAnbW9kdWxlJwot
ICB9KTsKLSAgY29uc3Qgc2Vjb25kV29ya2VyID0gc2Vjb25kUmVnaXN0cmF0aW9uLmluc3RhbGxp
bmc7Ci0gIHNlY29uZFdvcmtlci5wb3N0TWVzc2FnZSgnICcpOwotICBtc2dFdmVudCA9IGF3YWl0
IG5ldyBQcm9taXNlKHIgPT4gbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIub25tZXNzYWdlID0gcik7
Ci0gIGFzc2VydF9lcXVhbHMobXNnRXZlbnQuZGF0YSwgJ0EgbW9kdWxlIHNjcmlwdC4nKTsKLQot
ICBhc3NlcnRfbm90X2VxdWFscyhmaXJzdFdvcmtlciwgc2Vjb25kV29ya2VyKTsKLSAgYXNzZXJ0
X2VxdWFscyhmaXJzdFJlZ2lzdHJhdGlvbiwgc2Vjb25kUmVnaXN0cmF0aW9uKTsKLX0sICdVcGRh
dGUgdGhlIHJlZ2lzdHJhdGlvbiB3aXRoIGEgZGlmZmVyZW50IHNjcmlwdCB0eXBlIChjbGFzc2lj
ID0+IG1vZHVsZSkuJyk7Ci0KLXByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKLSAgY29uc3Qga2V5
ID0gZ3VpZCgpOwotICBjb25zdCBzY3JpcHQgPSBgcmVzb3VyY2VzL3VwZGF0ZS1yZWdpc3RyYXRp
b24td2l0aC10eXBlLnB5P2NsYXNzaWNfZmlyc3Q9MCZrZXk9JHtrZXl9YDsKLSAgY29uc3Qgc2Nv
cGUgPSAncmVzb3VyY2VzL3VwZGF0ZS1yZWdpc3RyYXRpb24td2l0aC10eXBlJzsKLSAgYXdhaXQg
c2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcih0LCBzY29wZSk7Ci0gIHQuYWRkX2NsZWFudXAoKCkg
PT4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcih0LCBzY29wZSkpOwotCi0gIC8vIFJlZ2lzdGVy
IHdpdGggbW9kdWxlIHNjcmlwdCB0eXBlLgotICBjb25zdCBmaXJzdFJlZ2lzdHJhdGlvbiA9IGF3
YWl0IG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKHNjcmlwdCwgewotICAgIHNjb3Bl
OiBzY29wZSwKLSAgICB0eXBlOiAnbW9kdWxlJwotICB9KTsKLSAgY29uc3QgZmlyc3RXb3JrZXIg
PSBmaXJzdFJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nOwotICBhd2FpdCB3YWl0X2Zvcl9zdGF0ZSh0
LCBmaXJzdFdvcmtlciwgJ2FjdGl2YXRlZCcpOwotICBmaXJzdFdvcmtlci5wb3N0TWVzc2FnZSgn
ICcpOwotICBsZXQgbXNnRXZlbnQgPSBhd2FpdCBuZXcgUHJvbWlzZShyID0+IG5hdmlnYXRvci5z
ZXJ2aWNlV29ya2VyLm9ubWVzc2FnZSA9IHIpOwotICBhc3NlcnRfZXF1YWxzKG1zZ0V2ZW50LmRh
dGEsICdBIG1vZHVsZSBzY3JpcHQuJyk7Ci0KLSAgLy8gUmUtcmVnaXN0ZXIgd2l0aCBjbGFzc2lj
IHNjcmlwdCB0eXBlLgotICBjb25zdCBzZWNvbmRSZWdpc3RyYXRpb24gPSBhd2FpdCBuYXZpZ2F0
b3Iuc2VydmljZVdvcmtlci5yZWdpc3RlcihzY3JpcHQsIHsKLSAgICBzY29wZTogc2NvcGUsCi0g
ICAgdHlwZTogJ2NsYXNzaWMnCi0gIH0pOwotICBjb25zdCBzZWNvbmRXb3JrZXIgPSBzZWNvbmRS
ZWdpc3RyYXRpb24uaW5zdGFsbGluZzsKLSAgc2Vjb25kV29ya2VyLnBvc3RNZXNzYWdlKCcgJyk7
Ci0gIG1zZ0V2ZW50ID0gYXdhaXQgbmV3IFByb21pc2UociA9PiBuYXZpZ2F0b3Iuc2VydmljZVdv
cmtlci5vbm1lc3NhZ2UgPSByKTsKLSAgYXNzZXJ0X2VxdWFscyhtc2dFdmVudC5kYXRhLCAnQSBj
bGFzc2ljIHNjcmlwdC4nKTsKLQotICBhc3NlcnRfbm90X2VxdWFscyhmaXJzdFdvcmtlciwgc2Vj
b25kV29ya2VyKTsKLSAgYXNzZXJ0X2VxdWFscyhmaXJzdFJlZ2lzdHJhdGlvbiwgc2Vjb25kUmVn
aXN0cmF0aW9uKTsKLX0sICdVcGRhdGUgdGhlIHJlZ2lzdHJhdGlvbiB3aXRoIGEgZGlmZmVyZW50
IHNjcmlwdCB0eXBlIChtb2R1bGUgPT4gY2xhc3NpYykuJyk7Ci0KLS8vIFRoZSBmb2xsb3dpbmcg
dHdvIHRlc3RzIGNoYW5nZSB0aGUgc2NyaXB0IHR5cGUgd2hpbGUga2VlcGluZwotLy8gdGhlIHNj
cmlwdCBpZGVudGljYWwuCi1wcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7Ci0gIGNvbnN0IHNjcmlw
dCA9ICdyZXNvdXJjZXMvZW1wdHktd29ya2VyLmpzJzsKLSAgY29uc3Qgc2NvcGUgPSAncmVzb3Vy
Y2VzL3VwZGF0ZS1yZWdpc3RyYXRpb24td2l0aC10eXBlJzsKLSAgYXdhaXQgc2VydmljZV93b3Jr
ZXJfdW5yZWdpc3Rlcih0LCBzY29wZSk7Ci0gIHQuYWRkX2NsZWFudXAoKCkgPT4gc2VydmljZV93
b3JrZXJfdW5yZWdpc3Rlcih0LCBzY29wZSkpOwotCi0gIC8vIFJlZ2lzdGVyIHdpdGggY2xhc3Np
YyBzY3JpcHQgdHlwZS4KLSAgY29uc3QgZmlyc3RSZWdpc3RyYXRpb24gPSBhd2FpdCBuYXZpZ2F0
b3Iuc2VydmljZVdvcmtlci5yZWdpc3RlcihzY3JpcHQsIHsKLSAgICBzY29wZTogc2NvcGUsCi0g
ICAgdHlwZTogJ2NsYXNzaWMnCi0gIH0pOwotICBjb25zdCBmaXJzdFdvcmtlciA9IGZpcnN0UmVn
aXN0cmF0aW9uLmluc3RhbGxpbmc7Ci0gIGF3YWl0IHdhaXRfZm9yX3N0YXRlKHQsIGZpcnN0V29y
a2VyLCAnYWN0aXZhdGVkJyk7Ci0KLSAgLy8gUmUtcmVnaXN0ZXIgd2l0aCBtb2R1bGUgc2NyaXB0
IHR5cGUuCi0gIGNvbnN0IHNlY29uZFJlZ2lzdHJhdGlvbiA9IGF3YWl0IG5hdmlnYXRvci5zZXJ2
aWNlV29ya2VyLnJlZ2lzdGVyKHNjcmlwdCwgewotICAgIHNjb3BlOiBzY29wZSwKLSAgICB0eXBl
OiAnbW9kdWxlJwotICB9KTsKLSAgY29uc3Qgc2Vjb25kV29ya2VyID0gc2Vjb25kUmVnaXN0cmF0
aW9uLmluc3RhbGxpbmc7Ci0KLSAgYXNzZXJ0X25vdF9lcXVhbHMoZmlyc3RXb3JrZXIsIHNlY29u
ZFdvcmtlcik7Ci0gIGFzc2VydF9lcXVhbHMoZmlyc3RSZWdpc3RyYXRpb24sIHNlY29uZFJlZ2lz
dHJhdGlvbik7Ci19LCAnVXBkYXRlIHRoZSByZWdpc3RyYXRpb24gd2l0aCBhIGRpZmZlcmVudCBz
Y3JpcHQgdHlwZSAoY2xhc3NpYyA9PiBtb2R1bGUpICcKLSAgICArICdhbmQgd2l0aCBhIHNhbWUg
bWFpbiBzY3JpcHQuJyk7Ci0KLXByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKLSAgY29uc3Qgc2Ny
aXB0ID0gJ3Jlc291cmNlcy9lbXB0eS13b3JrZXIuanMnOwotICBjb25zdCBzY29wZSA9ICdyZXNv
dXJjZXMvdXBkYXRlLXJlZ2lzdHJhdGlvbi13aXRoLXR5cGUnOwotICBhd2FpdCBzZXJ2aWNlX3dv
cmtlcl91bnJlZ2lzdGVyKHQsIHNjb3BlKTsKLSAgdC5hZGRfY2xlYW51cCgoKSA9PiBzZXJ2aWNl
X3dvcmtlcl91bnJlZ2lzdGVyKHQsIHNjb3BlKSk7Ci0KLSAgLy8gUmVnaXN0ZXIgd2l0aCBtb2R1
bGUgc2NyaXB0IHR5cGUuCi0gIGNvbnN0IGZpcnN0UmVnaXN0cmF0aW9uID0gYXdhaXQgbmF2aWdh
dG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoc2NyaXB0LCB7Ci0gICAgc2NvcGU6IHNjb3BlLAot
ICAgIHR5cGU6ICdtb2R1bGUnCi0gIH0pOwotICBjb25zdCBmaXJzdFdvcmtlciA9IGZpcnN0UmVn
aXN0cmF0aW9uLmluc3RhbGxpbmc7Ci0gIGF3YWl0IHdhaXRfZm9yX3N0YXRlKHQsIGZpcnN0V29y
a2VyLCAnYWN0aXZhdGVkJyk7Ci0KLSAgLy8gUmUtcmVnaXN0ZXIgd2l0aCBjbGFzc2ljIHNjcmlw
dCB0eXBlLgotICBjb25zdCBzZWNvbmRSZWdpc3RyYXRpb24gPSBhd2FpdCBuYXZpZ2F0b3Iuc2Vy
dmljZVdvcmtlci5yZWdpc3RlcihzY3JpcHQsIHsKLSAgICBzY29wZTogc2NvcGUsCi0gICAgdHlw
ZTogJ2NsYXNzaWMnCi0gIH0pOwotICBjb25zdCBzZWNvbmRXb3JrZXIgPSBzZWNvbmRSZWdpc3Ry
YXRpb24uaW5zdGFsbGluZzsKLQotICBhc3NlcnRfbm90X2VxdWFscyhmaXJzdFdvcmtlciwgc2Vj
b25kV29ya2VyKTsKLSAgYXNzZXJ0X2VxdWFscyhmaXJzdFJlZ2lzdHJhdGlvbiwgc2Vjb25kUmVn
aXN0cmF0aW9uKTsKLX0sICdVcGRhdGUgdGhlIHJlZ2lzdHJhdGlvbiB3aXRoIGEgZGlmZmVyZW50
IHNjcmlwdCB0eXBlIChtb2R1bGUgPT4gY2xhc3NpYykgJwotICAgICsgJ2FuZCB3aXRoIGEgc2Ft
ZSBtYWluIHNjcmlwdC4nKTsKLQotLy8gVGhpcyB0ZXN0IGNoZWNrcyB0aGF0IGEgcmVnaXN0cmF0
aW9uIGlzIG5vdCB1cGRhdGVkIHdpdGggdGhlIHNhbWUgc2NyaXB0Ci0vLyB0eXBlIGFuZCB0aGUg
c2FtZSBtYWluIHNjcmlwdC4KLXByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKLSAgY29uc3Qgc2Ny
aXB0ID0gJ3Jlc291cmNlcy9lbXB0eS13b3JrZXIuanMnOwotICBjb25zdCBzY29wZSA9ICdyZXNv
dXJjZXMvdXBkYXRlLXJlZ2lzdHJhdGlvbi13aXRoLXR5cGUnOwotICBhd2FpdCBzZXJ2aWNlX3dv
cmtlcl91bnJlZ2lzdGVyKHQsIHNjb3BlKTsKLSAgdC5hZGRfY2xlYW51cCgoKSA9PiBzZXJ2aWNl
X3dvcmtlcl91bnJlZ2lzdGVyKHQsIHNjb3BlKSk7Ci0KLSAgLy8gUmVnaXN0ZXIgd2l0aCBtb2R1
bGUgc2NyaXB0IHR5cGUuCi0gIGNvbnN0IGZpcnN0UmVnaXN0cmF0aW9uID0gYXdhaXQgbmF2aWdh
dG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoc2NyaXB0LCB7Ci0gICAgc2NvcGU6IHNjb3BlLAot
ICAgIHR5cGU6ICdtb2R1bGUnCi0gIH0pOwotICBhd2FpdCB3YWl0X2Zvcl9zdGF0ZSh0LCBmaXJz
dFJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7Ci0KLSAgLy8gUmUtcmVnaXN0
ZXIgd2l0aCBtb2R1bGUgc2NyaXB0IHR5cGUuCi0gIGNvbnN0IHNlY29uZFJlZ2lzdHJhdGlvbiA9
IGF3YWl0IG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKHNjcmlwdCwgewotICAgIHNj
b3BlOiBzY29wZSwKLSAgICB0eXBlOiAnbW9kdWxlJwotICB9KTsKLSAgYXNzZXJ0X2VxdWFscyhz
ZWNvbmRSZWdpc3RyYXRpb24uaW5zdGFsbGluZywgbnVsbCk7Ci0KLSAgYXNzZXJ0X2VxdWFscyhm
aXJzdFJlZ2lzdHJhdGlvbiwgc2Vjb25kUmVnaXN0cmF0aW9uKTsKLX0sICdEb2VzIG5vdCB1cGRh
dGUgdGhlIHJlZ2lzdHJhdGlvbiB3aXRoIHRoZSBzYW1lIHNjcmlwdCB0eXBlIGFuZCAnCi0gICAg
KyAndGhlIHNhbWUgbWFpbiBzY3JpcHQuJyk7Ci0KLS8vIEluIHRoZSBjYXNlIChjbGFzc2ljID0+
IG1vZHVsZSksIGEgd29ya2VyIHNjcmlwdCBjb250YWlucyBpbXBvcnRTY3JpcHRzKCkKLS8vIHRo
YXQgaXMgZGlzYWxsb3dlZCBvbiBtb2R1bGUgc2NyaXB0cywgc28gdGhlIHNlY29uZCByZWdpc3Ry
YXRpb24gaXMKLS8vIGV4cGVjdGVkIHRvIGZhaWwgc2NyaXB0IGV2YWx1YXRpb24uCi1wcm9taXNl
X3Rlc3QoYXN5bmMgdCA9PiB7Ci0gIGNvbnN0IHNjcmlwdCA9ICdyZXNvdXJjZXMvY2xhc3NpYy13
b3JrZXIuanMnOwotICBjb25zdCBzY29wZSA9ICdyZXNvdXJjZXMvdXBkYXRlLXJlZ2lzdHJhdGlv
bi13aXRoLXR5cGUnOwotICBhd2FpdCBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyKHQsIHNjb3Bl
KTsKLSAgdC5hZGRfY2xlYW51cCgoKSA9PiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyKHQsIHNj
b3BlKSk7Ci0KLSAgLy8gUmVnaXN0ZXIgd2l0aCBjbGFzc2ljIHNjcmlwdCB0eXBlLgotICBjb25z
dCBmaXJzdFJlZ2lzdHJhdGlvbiA9IGF3YWl0IG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lz
dGVyKHNjcmlwdCwgewotICAgIHNjb3BlOiBzY29wZSwKLSAgICB0eXBlOiAnY2xhc3NpYycKLSAg
fSk7Ci0gIGFzc2VydF9ub3RfZXF1YWxzKGZpcnN0UmVnaXN0cmF0aW9uLmluc3RhbGxpbmcsIG51
bGwpOwotICBhd2FpdCB3YWl0X2Zvcl9zdGF0ZSh0LCBmaXJzdFJlZ2lzdHJhdGlvbi5pbnN0YWxs
aW5nLCAnYWN0aXZhdGVkJyk7Ci0KLSAgLy8gUmUtcmVnaXN0ZXIgd2l0aCBtb2R1bGUgc2NyaXB0
IHR5cGUgYW5kIGV4cGVjdCBUeXBlRXJyb3IuCi0gIHJldHVybiBwcm9taXNlX3JlamVjdHModCwg
bmV3IFR5cGVFcnJvciwgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoc2NyaXB0LCB7
Ci0gICAgc2NvcGU6IHNjb3BlLAotICAgIHR5cGU6ICdtb2R1bGUnCi0gIH0pLCAnUmVnaXN0ZXJp
bmcgd2l0aCBpbnZhbGlkIGV2YWx1YXRpb24gc2hvdWxkIGJlIGZhaWxlZC4nKTsKLX0sICdVcGRh
dGUgdGhlIHJlZ2lzdHJhdGlvbiB3aXRoIGEgZGlmZmVyZW50IHNjcmlwdCB0eXBlIChjbGFzc2lj
ID0+IG1vZHVsZSkgJwotICAgICsgJ2FuZCB3aXRoIGEgc2FtZSBtYWluIHNjcmlwdC4gRXhwZWN0
IGV2YWx1YXRpb24gZmFpbGVkLicpOwotCi0vLyBJbiB0aGUgY2FzZSAobW9kdWxlID0+IGNsYXNz
aWMpLCBhIHdvcmtlciBzY3JpcHQgY29udGFpbnMgc3RhdGljLWltcG9ydAotLy8gdGhhdCBpcyBk
aXNhbGxvd2VkIG9uIGNsYXNzaWMgc2NyaXB0cywgc28gdGhlIHNlY29uZCByZWdpc3RyYXRpb24g
aXMKLS8vIGV4cGVjdGVkIHRvIGZhaWwgc2NyaXB0IGV2YWx1YXRpb24uCi1wcm9taXNlX3Rlc3Qo
YXN5bmMgdCA9PiB7Ci0gIGNvbnN0IHNjcmlwdCA9ICdyZXNvdXJjZXMvbW9kdWxlLXdvcmtlci5q
cyc7Ci0gIGNvbnN0IHNjb3BlID0gJ3Jlc291cmNlcy91cGRhdGUtcmVnaXN0cmF0aW9uLXdpdGgt
dHlwZSc7Ci0gIGF3YWl0IHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXIodCwgc2NvcGUpOwotICB0
LmFkZF9jbGVhbnVwKCgpID0+IHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXIodCwgc2NvcGUpKTsK
LQotICAvLyBSZWdpc3RlciB3aXRoIG1vZHVsZSBzY3JpcHQgdHlwZS4KLSAgY29uc3QgZmlyc3RS
ZWdpc3RyYXRpb24gPSBhd2FpdCBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3RlcihzY3Jp
cHQsIHsKLSAgICBzY29wZTogc2NvcGUsCi0gICAgdHlwZTogJ21vZHVsZScKLSAgfSk7Ci0gIGFz
c2VydF9ub3RfZXF1YWxzKGZpcnN0UmVnaXN0cmF0aW9uLmluc3RhbGxpbmcsIG51bGwpOwotICBh
d2FpdCB3YWl0X2Zvcl9zdGF0ZSh0LCBmaXJzdFJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLCAnYWN0
aXZhdGVkJyk7Ci0KLSAgLy8gUmUtcmVnaXN0ZXIgd2l0aCBjbGFzc2ljIHNjcmlwdCB0eXBlIGFu
ZCBleHBlY3QgVHlwZUVycm9yLgotICByZXR1cm4gcHJvbWlzZV9yZWplY3RzKHQsIG5ldyBUeXBl
RXJyb3IsIG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKHNjcmlwdCwgewotICAgIHNj
b3BlOiBzY29wZSwKLSAgICB0eXBlOiAnY2xhc3NpYycKLSAgfSksICdSZWdpc3RlcmluZyB3aXRo
IGludmFsaWQgZXZhbHVhdGlvbiBzaG91bGQgYmUgZmFpbGVkLicpOwotfSwgJ1VwZGF0ZSB0aGUg
cmVnaXN0cmF0aW9uIHdpdGggYSBkaWZmZXJlbnQgc2NyaXB0IHR5cGUgKG1vZHVsZSA9PiBjbGFz
c2ljKSAnCi0gICAgKyAnYW5kIHdpdGggYSBzYW1lIG1haW4gc2NyaXB0LiBFeHBlY3QgZXZhbHVh
dGlvbiBmYWlsZWQuJyk7Ci08L3NjcmlwdD4KLTwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdzNjLWltcG9ydC5s
b2cKaW5kZXggYTMzZWYwNWI0YmMwNzcyOGIxOTg3NjNmZTliZmYxNDQ5M2RlOGEwZi4uYTA2OGY4
NjIwNTkyMDY2YjIxNjA4N2VjMWIyNWI2YWQ2ZDMwMjlkNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvdzNjLWltcG9ydC5sb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdzNjLWltcG9y
dC5sb2cKQEAgLTIyLDcgKzIyLDYgQEAgTGlzdCBvZiBmaWxlczoKIC9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9hY3RpdmUuaHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2FwcGNhY2hlLW9yZGVyaW5n
LW1haW4uaHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsYWltLWFmZmVjdC1vdGhlci1y
ZWdpc3RyYXRpb24uaHR0cHMuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsYWltLWZldGNoLXdp
dGgtYXBwY2FjaGUuaHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsYWltLWZldGNoLmh0
dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGFpbS1ub3QtdXNpbmctcmVnaXN0cmF0aW9u
Lmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGFpbS1zaGFyZWQtd29ya2VyLWZldGNo
Lmh0dHBzLmh0bWwKQEAgLTMzLDcgKzMyLDYgQEAgTGlzdCBvZiBmaWxlczoKIC9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9jbGllbnQtbmF2aWdhdGUuaHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2Ns
aWVudHMtZ2V0LWNsaWVudC10eXBlcy5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xp
ZW50cy1nZXQtY3Jvc3Mtb3JpZ2luLmh0dHBzLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGll
bnRzLWdldC1yZXN1bHRpbmdDbGllbnRJZC5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
Y2xpZW50cy1nZXQuaHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsaWVudHMtbWF0Y2hh
bGwtY2xpZW50LXR5cGVzLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGllbnRzLW1h
dGNoYWxsLWV4YWN0LWNvbnRyb2xsZXIuaHR0cHMuaHRtbApAQCAtNDUsMTQgKzQzLDExIEBAIExp
c3Qgb2YgZmlsZXM6CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY29udHJvbGxlci1vbi1sb2FkLmh0dHBz
Lmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jb250cm9sbGVyLW9uLXJlbG9hZC5odHRwcy5odG1s
CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvY29udHJvbGxlci13aXRoLW5vLWZldGNoLWV2ZW50LWhhbmRs
ZXIuaHR0cHMuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2RhdGEtdHJhbnNmZXItZmlsZXMuaHR0
cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2RlZGljYXRlZC13b3JrZXItc2VydmljZS13b3Jr
ZXItaW50ZXJjZXB0aW9uLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9kZXRhY2hlZC1j
b250ZXh0Lmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9lbWJlZC1hbmQtb2JqZWN0LWFy
ZS1ub3QtaW50ZXJjZXB0ZWQuaHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2V4dGVuZGFi
bGUtZXZlbnQtYXN5bmMtd2FpdHVudGlsLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9l
eHRlbmRhYmxlLWV2ZW50LXdhaXR1bnRpbC5odHRwcy5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
ZmV0Y2gtYXVkaW8tdGFpbnRpbmcuaHR0cHMuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNo
LWNhbnZhcy10YWludGluZy1kb3VibGUtd3JpdGUuaHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL2ZldGNoLWNhbnZhcy10YWludGluZy1pbWFnZS1jYWNoZS5odHRwcy5odG1sCiAvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvZmV0Y2gtY2FudmFzLXRhaW50aW5nLWltYWdlLmh0dHBzLmh0bWwKIC9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9mZXRjaC1jYW52YXMtdGFpbnRpbmctdmlkZW8tY2FjaGUuaHR0cHMuaHRt
bApAQCAtMTA0LDggKzk5LDYgQEAgTGlzdCBvZiBmaWxlczoKIC9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9n
ZXRyZWdpc3RyYXRpb25zLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9odHRwLXRvLWh0
dHBzLXJlZGlyZWN0LWFuZC1yZWdpc3Rlci5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
aW1tdXRhYmxlLXByb3RvdHlwZS1zZXJ2aWNld29ya2VyLmh0dHBzLmh0bWwKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9pbXBvcnQtbW9kdWxlLXNjcmlwdHMuaHR0cHMuaHRtbAotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL2ltcG9ydC1zY3JpcHRzLW1pbWUtdHlwZXMuaHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL2ltcG9ydC1zY3JpcHRzLXJlZGlyZWN0Lmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9pbXBvcnQtc2NyaXB0cy1yZXNvdXJjZS1tYXAuaHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL2ltcG9ydC1zY3JpcHRzLXVwZGF0ZWQtZmxhZy5odHRwcy5odG1sCkBAIC0xMzQsNyArMTI3
LDYgQEAgTGlzdCBvZiBmaWxlczoKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9wb3N0bWVzc2FnZS1ibG9i
LXVybC5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcG9zdG1lc3NhZ2UtZnJvbS13YWl0
aW5nLXNlcnZpY2V3b3JrZXIuaHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Bvc3RtZXNz
YWdlLW1zZ3BvcnQtdG8tY2xpZW50Lmh0dHBzLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9wb3N0
bWVzc2FnZS10by1jbGllbnQtbWVzc2FnZS1xdWV1ZS5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvcG9zdG1lc3NhZ2UtdG8tY2xpZW50Lmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9wb3N0bWVzc2FnZS5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVhZHkuaHR0cHMu
aHRtbApAQCAtMTUwLDcgKzE0Miw2IEBAIExpc3Qgb2YgZmlsZXM6CiAvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvcmVnaXN0cmF0aW9uLWV2ZW50cy5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVn
aXN0cmF0aW9uLWlmcmFtZS5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVnaXN0cmF0
aW9uLW1pbWUtdHlwZXMuaHR0cHMuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlZ2lzdHJhdGlv
bi1zY2hlZHVsZS1qb2IuaHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlZ2lzdHJhdGlv
bi1zY29wZS5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVnaXN0cmF0aW9uLXNjcmlw
dC11cmwuaHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlZ2lzdHJhdGlvbi1zY3JpcHQu
aHR0cHMuaHRtbApAQCAtMTYwLDcgKzE1MSw3IEBAIExpc3Qgb2YgZmlsZXM6CiAvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvcmVqZWN0aW9ucy5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVxdWVz
dC1lbmQtdG8tZW5kLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZS10aW1p
bmctY3Jvc3Mtb3JpZ2luLmh0dHBzLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZS10
aW1pbmcuc3ViLmh0dHBzLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZS10aW1pbmcu
aHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc3BvbmQtd2l0aC1ib2R5LWFjY2Vzc2Vk
LXJlc3BvbnNlLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9zYW5kYm94ZWQtaWZyYW1l
LWZldGNoLWV2ZW50Lmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9zYW5kYm94ZWQtaWZy
YW1lLW5hdmlnYXRvci1zZXJ2aWNld29ya2VyLmh0dHBzLmh0bWwKQEAgLTE4OSwxMiArMTgwLDcg
QEAgTGlzdCBvZiBmaWxlczoKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUtYWZ0ZXItbmF2aWdh
dGlvbi1yZWRpcmVjdC5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLWFmdGVy
LW9uZWRheS5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLWJ5dGVjaGVjay5o
dHRwcy5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLW1pc3NpbmctaW1wb3J0LXNjcmlw
dHMuaHR0cHMuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0ZS1uby1jYWNoZS1yZXF1ZXN0
LWhlYWRlcnMuaHR0cHMuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0ZS1ub3QtYWxsb3dl
ZC5odHRwcy5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLW9uLW5hdmlnYXRpb24uaHR0
cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0ZS1yZWNvdmVyeS5odHRwcy5odG1sCi0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvdXBkYXRlLXJlZ2lzdHJhdGlvbi13aXRoLXR5cGUuaHR0cHMuaHRt
bAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0ZS1yZXN1bHQuaHR0cHMuaHRtbAogL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL3VwZGF0ZS5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvd2FpdGluZy5o
dHRwcy5odG1sCkBAIC0yMDYsNSArMTkyLDMgQEAgTGlzdCBvZiBmaWxlczoKIC9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci93b3JrZXItaW4tc2FuZGJveGVkLWlmcmFtZS1ieS1jc3AtZmV0Y2gtZXZlbnQuaHR0
cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3dvcmtlci1pbnRlcmNlcHRpb24tcmVkaXJlY3Qu
aHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3dvcmtlci1pbnRlcmNlcHRpb24uaHR0cHMu
aHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3hoci1yZXNwb25zZS11cmwuaHR0cHMuaHRtbAotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL3hzbC1iYXNlLXVybC5odHRwcy5odG1sCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci93ZWJzb2NrZXQuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvd2Vic29ja2V0Lmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCBjY2QzNzZmYmQxNDBlNmNj
MjUxYTUyMDY0MjczMGRjMWE5ZTg2NzhmLi4wMGFlMzQzMTRlNzJkZmZjYTQyNWNlMzEyNDYyZjMw
YmRiNjFhN2E5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci93ZWJzb2NrZXQuaHR0cHMt
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3dlYnNvY2tldC5odHRwcy1leHBl
Y3RlZC50eHQKQEAgLTEsNiArMSw0IEBACi1DT05TT0xFIE1FU1NBR0U6IFdlYlNvY2tldCBuZXR3
b3JrIGVycm9yOiBPU1N0YXR1cyBFcnJvciAtOTgwNzogSW52YWxpZCBjZXJ0aWZpY2F0ZSBjaGFp
biAKLUNPTlNPTEUgTUVTU0FHRTogV2ViU29ja2V0IG5ldHdvcmsgZXJyb3I6IE9TU3RhdHVzIEVy
cm9yIC05ODA3OiBJbnZhbGlkIGNlcnRpZmljYXRlIGNoYWluIAogCiAKLUZBSUwgVmVyaWZ5IFdl
YlNvY2tldCBoYW5kc2hha2UgY2hhbm5lbCBkb2VzIG5vdCBnZXQgaW50ZXJjZXB0ZWQgcHJvbWlz
ZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiW29iamVjdCBF
dmVudF0iCitQQVNTIFZlcmlmeSBXZWJTb2NrZXQgaGFuZHNoYWtlIGNoYW5uZWwgZG9lcyBub3Qg
Z2V0IGludGVyY2VwdGVkIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci93ZWJzb2Nr
ZXQuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3dlYnNvY2tldC5odHRwcy5odG1sCmlu
ZGV4IGNiZmVkNDU2YTlkYzZiZGZkYmQxOTc4OTkxMjEwMWFiMTExN2IxZWYuLmI5YzUyNmQ1MGZi
OTlhYmJhZmNiMmI4ZDRmMDBjMjI2N2IyNWM0NzQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3dlYnNvY2tldC5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3dlYnNvY2tl
dC5odHRwcy5odG1sCkBAIC02LDcgKzYsNyBAQAogPHNjcmlwdCBzcmM9InJlc291cmNlcy90ZXN0
LWhlbHBlcnMuc3ViLmpzP3BpcGU9c3ViIj48L3NjcmlwdD4KIDxzY3JpcHQ+CiAKLXByb21pc2Vf
dGVzdChmdW5jdGlvbih0KSB7Cithc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICB2YXIgcGF0
aCA9IG5ldyBVUkwoIi4iLCB3aW5kb3cubG9jYXRpb24pLnBhdGhuYW1lCiAgICAgdmFyIHVybCA9
ICdyZXNvdXJjZXMvd2Vic29ja2V0LmpzJzsKICAgICB2YXIgc2NvcGUgPSAncmVzb3VyY2VzL2Js
YW5rLmh0bWw/d2Vic29ja2V0JzsKQEAgLTE0LDEyICsxNCw4IEBAIHByb21pc2VfdGVzdChmdW5j
dGlvbih0KSB7CiAgICAgdmFyIGZyYW1lVVJMID0gaG9zdF9pbmZvWydIVFRQU19PUklHSU4nXSAr
IHBhdGggKyBzY29wZTsKICAgICB2YXIgZnJhbWU7CiAKLSAgICByZXR1cm4gc2VydmljZV93b3Jr
ZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgdXJsLCBzY29wZSkKKyAgICBzZXJ2aWNlX3dv
cmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCB1cmwsIHNjb3BlKQogICAgICAgLnRoZW4o
ZnVuY3Rpb24ocmVnaXN0cmF0aW9uKSB7Ci0gICAgICAgICAgdC5hZGRfY2xlYW51cChmdW5jdGlv
bigpIHsKLSAgICAgICAgICAgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXIodCwg
c2NvcGUpOwotICAgICAgICAgICAgfSk7Ci0KICAgICAgICAgICByZXR1cm4gd2FpdF9mb3Jfc3Rh
dGUodCwgcmVnaXN0cmF0aW9uLmluc3RhbGxpbmcsICdhY3RpdmF0ZWQnKTsKICAgICAgICAgfSkK
ICAgICAgIC50aGVuKGZ1bmN0aW9uKCkgeyByZXR1cm4gd2l0aF9pZnJhbWUoZnJhbWVVUkwpOyB9
KQpAQCAtMjgsMTggKzI0LDIzIEBAIHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7CiAgICAgICAg
ICAgcmV0dXJuIHdlYnNvY2tldCh0LCBmcmFtZSk7CiAgICAgICAgIH0pCiAgICAgICAudGhlbihm
dW5jdGlvbigpIHsKLSAgICAgICAgICB2YXIgY2hhbm5lbCA9IG5ldyBNZXNzYWdlQ2hhbm5lbCgp
OwotICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlKSB7Ci0gICAg
ICAgICAgICBjaGFubmVsLnBvcnQxLm9ubWVzc2FnZSA9IHJlc29sdmU7CisgICAgICAgICAgcmV0
dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgeworICAgICAgICAgICAg
ZnVuY3Rpb24gb25NZXNzYWdlKGUpIHsKKyAgICAgICAgICAgICAgZm9yICh2YXIgdXJsIGluIGUu
ZGF0YS51cmxzKSB7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyh1cmwuaW5kZXhPZihn
ZXRfd2Vic29ja2V0X3VybCgpKSwgLTEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
T2JzZXJ2ZWQgYW4gdW5leHBlY3RlZCBGZXRjaEV2ZW50IGZvciB0aGUgV2ViU29ja2V0IGhhbmRz
aGFrZSIpOworICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIHQuZG9uZSgpOworICAgICAg
ICAgICAgfQorICAgICAgICAgICAgdmFyIGNoYW5uZWwgPSBuZXcgTWVzc2FnZUNoYW5uZWwoKTsK
KyAgICAgICAgICAgIGNoYW5uZWwucG9ydDEub25tZXNzYWdlID0gdC5zdGVwX2Z1bmMob25NZXNz
YWdlKTsKICAgICAgICAgICAgIGZyYW1lLmNvbnRlbnRXaW5kb3cubmF2aWdhdG9yLnNlcnZpY2VX
b3JrZXIuY29udHJvbGxlci5wb3N0TWVzc2FnZSh7cG9ydDogY2hhbm5lbC5wb3J0Mn0sIFtjaGFu
bmVsLnBvcnQyXSk7CiAgICAgICAgICAgfSk7CiAgICAgICAgIH0pCi0gICAgICAudGhlbihmdW5j
dGlvbihlKSB7Ci0gICAgICAgICAgZm9yICh2YXIgdXJsIGluIGUuZGF0YS51cmxzKSB7Ci0gICAg
ICAgICAgICBhc3NlcnRfZXF1YWxzKHVybC5pbmRleE9mKGdldF93ZWJzb2NrZXRfdXJsKCkpLCAt
MSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIk9ic2VydmVkIGFuIHVuZXhwZWN0ZWQgRmV0
Y2hFdmVudCBmb3IgdGhlIFdlYlNvY2tldCBoYW5kc2hha2UiKTsKLSAgICAgICAgICB9CisgICAg
ICAudGhlbihmdW5jdGlvbigpIHsKICAgICAgICAgICBmcmFtZS5yZW1vdmUoKTsKLSAgICAgICAg
fSk7CisgICAgICAgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX2RvbmUo
dCwgc2NvcGUpOworICAgICAgICB9KQorICAgICAgLmNhdGNoKHVucmVhY2hlZF9yZWplY3Rpb24o
dCkpOwogICB9LCAnVmVyaWZ5IFdlYlNvY2tldCBoYW5kc2hha2UgY2hhbm5lbCBkb2VzIG5vdCBn
ZXQgaW50ZXJjZXB0ZWQnKTsKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvd2luZG93Y2xpZW50LW5hdmlnYXRlLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci93
aW5kb3djbGllbnQtbmF2aWdhdGUuaHR0cHMuaHRtbAppbmRleCBlNjJjMWFjM2FhNDBlMGM0MTJh
NzM2ZTc5YTc3NTE1MzQ4Mzk4YTJjLi44ZWEyNzllZjA3NWU1ZTZjODkwNDk2NmIwMDVmMGJhZjBk
NzViY2E5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci93aW5kb3djbGllbnQtbmF2aWdh
dGUuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci93aW5kb3djbGllbnQtbmF2aWdh
dGUuaHR0cHMuaHRtbApAQCAtMTA5LDcgKzEwOSw3IEBAIGZ1bmN0aW9uIG5hdmlnYXRlX3Rlc3Qo
b3ZlcnJpZGVfcGFyYW1ldGVycykgewogICAgICAgICB9KTsKICAgICB9CiAKLSAgICB0ZXN0LmFk
ZF9jbGVhbnVwKGZ1bmN0aW9uKCkgeworICAgIHZhciBjbGVhbnVwID0gZnVuY3Rpb24oKSB7CiAg
ICAgICBpZiAoY2xpZW50X2ZyYW1lICYmIGNsaWVudF9mcmFtZSkgewogICAgICAgICBjbGllbnRf
ZnJhbWUucmVtb3ZlKCk7CiAgICAgICB9CkBAIC0xMjcsOSArMTI3LDkgQEAgZnVuY3Rpb24gbmF2
aWdhdGVfdGVzdChvdmVycmlkZV9wYXJhbWV0ZXJzKSB7CiAgICAgICBpZiAocmVnaXN0cmF0aW9u
KSB7CiAgICAgICAgIHJldHVybiByZWdpc3RyYXRpb24udW5yZWdpc3RlcigpOwogICAgICAgfQot
ICAgIH0pOworICAgIH07CiAKLSAgICByZXR1cm4gd2l0aF9pZnJhbWUocGFyYW1ldGVycy5zcmNf
dXJsKQorICAgIHZhciB0ZXN0X2JvZHkgPSB3aXRoX2lmcmFtZShwYXJhbWV0ZXJzLnNyY191cmwp
CiAgICAgICAudGhlbihmdW5jdGlvbihmcmFtZSkgewogICAgICAgICAgIGNsaWVudF9mcmFtZSA9
IGZyYW1lOwogICAgICAgICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9y
ZWdpc3RlcigKQEAgLTE2MSw2ICsxNjEsMTcgQEAgZnVuY3Rpb24gbmF2aWdhdGVfdGVzdChvdmVy
cmlkZV9wYXJhbWV0ZXJzKSB7CiAgICAgICAudGhlbihmdW5jdGlvbihyZXNwb25zZSkgewogICAg
ICAgICAgIGFzc2VydF9lcXVhbHMocmVzcG9uc2UuZGF0YSwgcGFyYW1ldGVycy5leHBlY3RlZCk7
CiAgICAgICAgIH0pOworCisgICAgLy8gRW5zdXJlIHRoYXQgdGVzdCAiY2xlYW4gdXAiIGlzIGRl
ZmVycmVkIHVudGlsIGFmdGVyIHRoZSB0ZXN0IGJvZHkKKyAgICAvLyBleGVjdXRlcy4gYFRlc3Qj
YWRkX2NsZWFudXBgIGNhbm5vdCBiZSB1c2VkIGZvciB0aGlzIHB1cnBvc2UgYmVjYXVzZSB0aGUK
KyAgICAvLyBvcGVyYXRpb24gaXMgYXN5bmNocm9ub3VzLCBhbmQgYGFkZF9jbGVhbnVwYCBkb2Vz
IG5vdCBzdXBwb3J0CisgICAgLy8gYXN5bmNocm9ub3VzIG9wZXJhdGlvbnMgYXQgdGhlIHRpbWUg
b2YgdGhpcyB3cml0aW5nLiBTZWUKKyAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRm
b3JtLXRlc3RzL3dwdC9pc3N1ZXMvNjA3NQorICAgIC8vIEVuc3VyZSBhbHNvIHRoYXQgdGVzdCBm
YWlsdXJlIGlzIG5vdCBoaWRkZW4gYnkgc3VjY2Vzc2Z1bCBjbGVhbnVwCisgICAgLy8gb3BlcmF0
aW9uLgorICAgIHJldHVybiB0ZXN0X2JvZHkKKyAgICAgIC50aGVuKGNsZWFudXAsIGNsZWFudXAp
CisgICAgICAudGhlbihmdW5jdGlvbigpIHsgcmV0dXJuIHRlc3RfYm9keTsgfSk7CiAgIH0sIHBh
cmFtZXRlcnMuZGVzY3JpcHRpb24pOwogfQogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci93b3JrZXItY2xpZW50LWlkLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL3dvcmtlci1jbGllbnQtaWQuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IDEwYzll
MjRkOTk3ZDk2OTg3NzQzNWIwZmY2MWYxMDI2ODcwZjYxMjIuLmZhNzc1ODg3ZTJiYjk0MTczMTI4
ODA2OGQzN2EzY2E3YmZmYmZiMGQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3dvcmtl
ci1jbGllbnQtaWQuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3dv
cmtlci1jbGllbnQtaWQuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsMyBAQAogCi1GQUlM
IFZlcmlmeSB3b3JrZXJzIGhhdmUgYSB1bmlxdWUgY2xpZW50IGlkIHNlcGFyYXRlIGZyb20gdGhl
aXIgb3duaW5nIGRvY3VtZW50cyB3aW5kb3cgYXNzZXJ0X25vdF9lcXVhbHM6IGZyYW1lIGFuZCB3
b3JrZXIgY2xpZW50IGlkcyBzaG91bGQgYmUgZGlmZmVyZW50IGdvdCBkaXNhbGxvd2VkIHZhbHVl
ICIxLTE5IgorRkFJTCBWZXJpZnkgd29ya2VycyBoYXZlIGEgdW5pcXVlIGNsaWVudCBpZCBzZXBh
cmF0ZSBmcm9tIHRoZWlyIG93bmluZyBkb2N1bWVudHMgd2luZG93IGFzc2VydF9ub3RfZXF1YWxz
OiBmcmFtZSBhbmQgd29ya2VyIGNsaWVudCBpZHMgc2hvdWxkIGJlIGRpZmZlcmVudCBnb3QgZGlz
YWxsb3dlZCB2YWx1ZSAiNC0zMDg3IgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci93
b3JrZXItaW50ZXJjZXB0aW9uLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L3dvcmtlci1pbnRlcmNlcHRpb24uaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IGI0ZWQ0ZWU5YTE3
NDVlYzMyODE2YWRjMWRjZGNiYmZhOGY3MWMwMjkuLjQ1ZTIyOWU3MjgxY2UwZTEwYWQzNzZlOGQ1
Y2UyZTQ4MjA3NTkyMDkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3dvcmtlci1pbnRl
cmNlcHRpb24uaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3dvcmtl
ci1pbnRlcmNlcHRpb24uaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0xLDggKzEsOCBAQAotQ09OU09M
RSBNRVNTQUdFOiBsaW5lIDE6IFJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBX
b3JrZXIKKwogCiBGQUlMIFZlcmlmeSB3b3JrZXIgc2NyaXB0IGZyb20gdW5jb250cm9sbGVkIGRv
Y3VtZW50IGlzIGludGVyY2VwdGVkIGJ5IFNlcnZpY2UgV29ya2VyIHByb21pc2VfdGVzdDogVW5o
YW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiB1bmRlZmluZWQKIEZBSUwgVmVyaWZ5IHdvcmtl
ciBzY3JpcHQgaW50ZXJjZXB0ZWQgYnkgc2FtZS1vcmlnaW4gcmVzcG9uc2Ugc3VjY2VlZHMgcHJv
bWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IHVuZGVmaW5lZAogUEFT
UyBWZXJpZnkgd29ya2VyIHNjcmlwdCBpbnRlcmNlcHRlZCBieSBjb3JzIHJlc3BvbnNlIGZhaWxz
IAogUEFTUyBWZXJpZnkgd29ya2VyIHNjcmlwdCBpbnRlcmNlcHRlZCBieSBuby1jb3JzIGNyb3Nz
LW9yaWdpbiByZXNwb25zZSBmYWlscyAKLUZBSUwgVmVyaWZ5IHdvcmtlciBsb2FkcyBmcm9tIGNv
bnRyb2xsZWQgZG9jdW1lbnQgYXJlIGludGVyY2VwdGVkIGJ5IFNlcnZpY2UgV29ya2VyIGFzc2Vy
dF9lcXVhbHM6IGV4cGVjdGVkICJmaW5pc2giIGJ1dCBnb3QgImZhaWx1cmU6W29iamVjdCBFcnJv
ckV2ZW50XSIKK1BBU1MgVmVyaWZ5IHdvcmtlciBsb2FkcyBmcm9tIGNvbnRyb2xsZWQgZG9jdW1l
bnQgYXJlIGludGVyY2VwdGVkIGJ5IFNlcnZpY2UgV29ya2VyIAogCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci93b3JrZXItaW50ZXJjZXB0aW9uLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci93b3JrZXItaW50ZXJjZXB0aW9uLmh0dHBzLmh0bWwKaW5kZXggN2IyOTQxMjYzYmY3
NTZjMzNlNmQxNWIzNmVkOTY1NDhmODg2YzZjMi4uNGYxNDc0NmQ5MTdmOWU4ZjQxZGZjYTg1ZTE2
NjlkZGU1MGQ1NjhjNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvd29ya2VyLWludGVy
Y2VwdGlvbi5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3dvcmtlci1pbnRlcmNl
cHRpb24uaHR0cHMuaHRtbApAQCAtMTIsMTAgKzEyLDYgQEAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9u
KHQpIHsKIAogICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rl
cih0LCBzZXJ2aWNlX3dvcmtlciwgc2NvcGUpCiAgICAgICAudGhlbihmdW5jdGlvbihyKSB7Ci0g
ICAgICAgICAgdC5hZGRfY2xlYW51cChmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgcmV0dXJu
IHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXIodCwgc2NvcGUpOwotICAgICAgICAgICAgfSk7Ci0K
ICAgICAgICAgICByZXR1cm4gd2FpdF9mb3Jfc3RhdGUodCwgci5pbnN0YWxsaW5nLCAnYWN0aXZh
dGVkJyk7CiAgICAgICAgIH0pCiAgICAgICAudGhlbihmdW5jdGlvbigpIHsKQEAgLTMyLDYgKzI4
LDcgQEAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICAgICAgfSkKICAgICAgIC50aGVu
KGZ1bmN0aW9uKGRhdGEpIHsKICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGRhdGEsICd3b3JrZXIg
bG9hZGluZyBpbnRlcmNlcHRlZCBieSBzZXJ2aWNlIHdvcmtlcicpOworICAgICAgICAgIHNlcnZp
Y2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX2RvbmUodCwgc2NvcGUpOwogICAgICAgICB9KTsKICAg
fSwgJ1ZlcmlmeSB3b3JrZXIgc2NyaXB0IGZyb20gdW5jb250cm9sbGVkIGRvY3VtZW50IGlzIGlu
dGVyY2VwdGVkIGJ5IFNlcnZpY2UgV29ya2VyJyk7CiAKQEAgLTQyLDEwICszOSw2IEBAIHByb21p
c2VfdGVzdChmdW5jdGlvbih0KSB7CiAKICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdp
c3Rlcl9hbmRfcmVnaXN0ZXIodCwgc2VydmljZV93b3JrZXIsIHNjb3BlKQogICAgICAgLnRoZW4o
ZnVuY3Rpb24ocikgewotICAgICAgICAgIHQuYWRkX2NsZWFudXAoZnVuY3Rpb24oKSB7Ci0gICAg
ICAgICAgICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyKHQsIHNjb3BlKTsKLSAg
ICAgICAgICAgIH0pOwotCiAgICAgICAgICAgcmV0dXJuIHdhaXRfZm9yX3N0YXRlKHQsIHIuaW5z
dGFsbGluZywgJ2FjdGl2YXRlZCcpOwogICAgICAgICB9KQogICAgICAgLnRoZW4oZnVuY3Rpb24o
KSB7CkBAIC02Miw2ICs1NSw3IEBAIHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7CiAgICAgICAg
IH0pCiAgICAgICAudGhlbihmdW5jdGlvbihkYXRhKSB7CiAgICAgICAgICAgYXNzZXJ0X2VxdWFs
cyhkYXRhLCAnZHVtbXktd29ya2VyLXNjcmlwdCBsb2FkZWQnKTsKKyAgICAgICAgICBzZXJ2aWNl
X3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9kb25lKHQsIHNjb3BlKTsKICAgICAgICAgfSk7CiAgIH0s
ICdWZXJpZnkgd29ya2VyIHNjcmlwdCBpbnRlcmNlcHRlZCBieSBzYW1lLW9yaWdpbiByZXNwb25z
ZSBzdWNjZWVkcycpOwogCkBAIC03NSwxMCArNjksMjcgQEAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9u
KHQpIHsKICAgICAgICAgICByZXR1cm4gd2FpdF9mb3Jfc3RhdGUodCwgci5pbnN0YWxsaW5nLCAn
YWN0aXZhdGVkJyk7CiAgICAgICAgIH0pCiAgICAgICAudGhlbihmdW5jdGlvbigpIHsKLSAgICAg
ICAgICB2YXIgdyA9IG5ldyBXb3JrZXIod29ya2VyX3VybCk7Ci0gICAgICAgICAgdmFyIHdhdGNo
ZXIgPSBuZXcgRXZlbnRXYXRjaGVyKHQsIHcsIFsnbWVzc2FnZScsICdlcnJvciddKTsKLSAgICAg
ICAgICByZXR1cm4gd2F0Y2hlci53YWl0X2ZvcignZXJyb3InKTsKLSAgICAgICAgfSk7CisgICAg
ICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgeworICAg
ICAgICAgICAgICB2YXIgdyA9IG5ldyBXb3JrZXIod29ya2VyX3VybCk7CisgICAgICAgICAgICAg
IHcub25tZXNzYWdlID0gZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgICAgIHJlc29sdmUoZS5k
YXRhKTsKKyAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgIHcub25lcnJvciA9IGZ1bmN0
aW9uKGUpIHsKKyAgICAgICAgICAgICAgICByZWplY3QoZS5tZXNzYWdlKTsKKyAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgfSk7CisgICAgICAgIH0pCisgICAgICAudGhlbihmdW5jdGlvbihk
YXRhKSB7CisgICAgICAgICAgYXNzZXJ0X3VucmVhY2hlZCgnaW50ZXJjZXB0ZWQgY29ycyByZXNw
b25zZSB0byBhIHNhbWUtb3JpZ2luIG1vZGUgJyArCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAnd29ya2VyIGxvYWQgc2hvdWxkIGZhaWwnKTsKKyAgICAgICAgICBzZXJ2aWNlX3dvcmtlcl91
bnJlZ2lzdGVyX2FuZF9kb25lKHQsIHNjb3BlKTsKKyAgICAgICAgfSkKKyAgICAgIC5jYXRjaChm
dW5jdGlvbihlKSB7CisgICAgICAgICAgYXNzZXJ0X3RydWUodHJ1ZSwgJ2ludGVyY2VwdGVkIGNv
cnMgcmVzcG9uc2UgdG8gYSBzYW1lLW9yaWdpbiBtb2RlICcgKworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICd3b3JrZXIgbG9hZCBzaG91bGQgZmFpbCcpOworICAgICAgICAgIHNlcnZpY2Vf
d29ya2VyX3VucmVnaXN0ZXJfYW5kX2RvbmUodCwgc2NvcGUpOworICAgICAgIH0pOwogICB9LCAn
VmVyaWZ5IHdvcmtlciBzY3JpcHQgaW50ZXJjZXB0ZWQgYnkgY29ycyByZXNwb25zZSBmYWlscycp
OwogCiBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewpAQCAtODgsMTcgKzk5LDI5IEBAIHByb21p
c2VfdGVzdChmdW5jdGlvbih0KSB7CiAKICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdp
c3Rlcl9hbmRfcmVnaXN0ZXIodCwgc2VydmljZV93b3JrZXIsIHNjb3BlKQogICAgICAgLnRoZW4o
ZnVuY3Rpb24ocikgewotICAgICAgICAgIHQuYWRkX2NsZWFudXAoZnVuY3Rpb24oKSB7Ci0gICAg
ICAgICAgICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyKHQsIHNjb3BlKTsKLSAg
ICAgICAgICAgIH0pOwotCiAgICAgICAgICAgcmV0dXJuIHdhaXRfZm9yX3N0YXRlKHQsIHIuaW5z
dGFsbGluZywgJ2FjdGl2YXRlZCcpOwogICAgICAgICB9KQogICAgICAgLnRoZW4oZnVuY3Rpb24o
KSB7Ci0gICAgICAgICAgdmFyIHcgPSBuZXcgV29ya2VyKHdvcmtlcl91cmwpOwotICAgICAgICAg
IHZhciB3YXRjaGVyID0gbmV3IEV2ZW50V2F0Y2hlcih0LCB3LCBbJ21lc3NhZ2UnLCAnZXJyb3In
XSk7Ci0gICAgICAgICAgcmV0dXJuIHdhdGNoZXIud2FpdF9mb3IoJ2Vycm9yJyk7Ci0gICAgICAg
IH0pOworICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWpl
Y3QpIHsKKyAgICAgICAgICAgICAgdmFyIHcgPSBuZXcgV29ya2VyKHdvcmtlcl91cmwpOworICAg
ICAgICAgICAgICB3Lm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgICAgICBy
ZXNvbHZlKGUuZGF0YSk7CisgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICB3Lm9uZXJy
b3IgPSBmdW5jdGlvbihlKSB7CisgICAgICAgICAgICAgICAgcmVqZWN0KGUpOworICAgICAgICAg
ICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9KTsKKyAg
ICAgICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKGRhdGEpIHsKKyAgICAgICAgICBhc3NlcnRf
dW5yZWFjaGVkKCdpbnRlcmNlcHRlZCBuby1jb3JzIHdvcmtlciBsb2FkIHNob3VsZCBmYWlsJyk7
CisgICAgICAgICAgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfZG9uZSh0LCBzY29wZSk7
CisgICAgICAgIH0pCisgICAgICAuY2F0Y2goZnVuY3Rpb24oZSkgeworICAgICAgICAgIGFzc2Vy
dF90cnVlKHRydWUsICdpbnRlcmNlcHRlZCBuby1jb3JzIHdvcmtlciBsb2FkIHNob3VsZCBmYWls
Jyk7CisgICAgICAgICAgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfZG9uZSh0LCBzY29w
ZSk7CisgICAgICAgfSk7CiAgIH0sICdWZXJpZnkgd29ya2VyIHNjcmlwdCBpbnRlcmNlcHRlZCBi
eSBuby1jb3JzIGNyb3NzLW9yaWdpbiByZXNwb25zZSBmYWlscycpOwogCiBwcm9taXNlX3Rlc3Qo
ZnVuY3Rpb24odCkgewpAQCAtMTA2LDEyICsxMjksMTQgQEAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9u
KHQpIHsKICAgICB2YXIgc2VydmljZV93b3JrZXIgPSAncmVzb3VyY2VzL3dvcmtlci1sb2FkLWlu
dGVyY2VwdG9yLmpzJzsKICAgICB2YXIgc2NvcGUgPSAncmVzb3VyY2VzLyc7CiAKKyAgICB3aW5k
b3cuYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIHQuc3RlcF9mdW5jKG9uX21lc3NhZ2UpLCBm
YWxzZSk7CisgICAgZnVuY3Rpb24gb25fbWVzc2FnZShlKSB7CisgICAgICBhc3NlcnRfZXF1YWxz
KGUuZGF0YS5yZXN1bHRzLCAiVGhpcyBsb2FkIHdhcyBzdWNjZXNzZnVsbHkgaW50ZXJjZXB0ZWQu
Iik7CisgICAgICB0LmRvbmUoKTsKKyAgICB9CisKICAgICByZXR1cm4gc2VydmljZV93b3JrZXJf
dW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgc2VydmljZV93b3JrZXIsIHNjb3BlKQogICAgICAg
LnRoZW4oZnVuY3Rpb24ocikgewotICAgICAgICAgIHQuYWRkX2NsZWFudXAoZnVuY3Rpb24oKSB7
Ci0gICAgICAgICAgICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyKHQsIHNjb3Bl
KTsKLSAgICAgICAgICAgIH0pOwotCiAgICAgICAgICAgcmV0dXJuIHdhaXRfZm9yX3N0YXRlKHQs
IHIuaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOwogICAgICAgICB9KQogICAgICAgLnRoZW4oZnVu
Y3Rpb24oKSB7IHJldHVybiB3aXRoX2lmcmFtZShzdWJkb2NfdXJsKTsgfSkKQEAgLTEyOCw2ICsx
NTMsNyBAQCBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewogICAgICAgICB9KQogICAgICAgLnRo
ZW4oZnVuY3Rpb24oZGF0YSkgewogICAgICAgICAgIGFzc2VydF9lcXVhbHMoZGF0YS5yZXN1bHRz
LCAnZmluaXNoJyk7CisgICAgICAgICAgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfZG9u
ZSh0LCBzY29wZSk7CiAgICAgICAgIH0pOwogICB9LCAnVmVyaWZ5IHdvcmtlciBsb2FkcyBmcm9t
IGNvbnRyb2xsZWQgZG9jdW1lbnQgYXJlIGludGVyY2VwdGVkIGJ5IFNlcnZpY2UgV29ya2VyJyk7
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3hoci1yZXNwb25zZS11cmwuaHR0cHMt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIveGhyLXJlc3BvbnNlLXVybC5odHRwcy1l
eHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGMzMWZjNTU2YTUwZjg2
ZWMyNDI5NjgzNWE2ZmZjMWRlM2ZlNmY1MDMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIveGhyLXJlc3BvbnNlLXVybC5odHRw
cy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw4ICswLDAgQEAKLQotUEFTUyBnbG9i
YWwgc2V0dXAgCi1QQVNTIFhIUiByZXNwb25zZVVSTCBzaG91bGQgYmUgdGhlIHJlc3BvbnNlIFVS
TCAKLVBBU1MgWEhSIHJlc3BvbnNlVVJMIHNob3VsZCBiZSB0aGUgcmVzcG9uc2UgVVJMIChnZW5l
cmF0ZWQgcmVzcG9uc2UpIAotRkFJTCBYSFIgRG9jdW1lbnQgc2hvdWxkIHVzZSB0aGUgcmVzcG9u
c2UgVVJMIGFzc2VydF9lcXVhbHM6IHJlc3BvbnNlWE1MLlVSTCBleHBlY3RlZCAiaHR0cHM6Ly9s
b2NhbGhvc3Q6OTQ0My9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2Js
YW5rLmh0bWwiIGJ1dCBnb3QgImh0dHBzOi8vbG9jYWxob3N0Ojk0NDMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL3Rlc3Q/cmVzcG9uZFdpdGg9ZmV0Y2gmdXJsPWh0dHBzJTNBJTJGJTJG
bG9jYWxob3N0JTNBOTQ0MyUyRnNlcnZpY2Utd29ya2VycyUyRnNlcnZpY2Utd29ya2VyJTJGcmVz
b3VyY2VzJTJGYmxhbmsuaHRtbCIKLVBBU1MgWEhSIERvY3VtZW50IHNob3VsZCB1c2UgdGhlIHJl
c3BvbnNlIFVSTCAoZ2VuZXJhdGVkIHJlc3BvbnNlKSAKLVBBU1MgZ2xvYmFsIGNsZWFudXAgCi0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3hoci1yZXNwb25zZS11cmwuaHR0cHMuaHRt
bCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3hoci1yZXNwb25zZS11cmwuaHR0cHMuaHRtbApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWFkMmNlMzg1MWNjN2JjZTI0MTIwZGQ4MGJkZjU0NjYy
NzgxYWM2Ni4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci94aHItcmVzcG9uc2UtdXJsLmh0dHBzLmh0bWwKKysrIC9kZXYvbnVs
bApAQCAtMSwxMDMgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08bWV0YSBjaGFyc2V0PSJ1dGYt
OCI+Ci08dGl0bGU+U2VydmljZSBXb3JrZXI6IFhIUiByZXNwb25zZVVSTCB1c2VzIHRoZSByZXNw
b25zZSB1cmw8L3RpdGxlPgotPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMi
Pjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMi
Pjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy90ZXN0LWhlbHBlcnMuc3ViLmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQ+Ci1jb25zdCBzY29wZSA9ICdyZXNvdXJjZXMveGhyLWlmcmFtZS5o
dG1sJzsKLWNvbnN0IHNjcmlwdCA9ICdyZXNvdXJjZXMveGhyLXJlc3BvbnNlLXVybC13b3JrZXIu
anMnOwotbGV0IGlmcmFtZTsKLQotZnVuY3Rpb24gYnVpbGRfdXJsKG9wdGlvbnMpIHsKLSAgY29u
c3QgdXJsID0gbmV3IFVSTCgndGVzdCcsIHdpbmRvdy5sb2NhdGlvbik7Ci0gIGNvbnN0IG9wdHMg
PSBvcHRpb25zID8gb3B0aW9ucyA6IHt9OwotICBpZiAob3B0cy5yZXNwb25kV2l0aCkKLSAgICB1
cmwuc2VhcmNoUGFyYW1zLnNldCgncmVzcG9uZFdpdGgnLCBvcHRzLnJlc3BvbmRXaXRoKTsKLSAg
aWYgKG9wdHMudXJsKQotICAgIHVybC5zZWFyY2hQYXJhbXMuc2V0KCd1cmwnLCBvcHRzLnVybC5o
cmVmKTsKLSAgcmV0dXJuIHVybC5ocmVmOwotfQotCi1wcm9taXNlX3Rlc3QoYXN5bmMgKHQpID0+
IHsKLSAgY29uc3QgcmVnaXN0cmF0aW9uID0KLSAgICAgIGF3YWl0IHNlcnZpY2Vfd29ya2VyX3Vu
cmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHNjcmlwdCwgc2NvcGUpOwotICBhd2FpdCB3YWl0X2Zv
cl9zdGF0ZSh0LCByZWdpc3RyYXRpb24uaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOwotICBpZnJh
bWUgPSBhd2FpdCB3aXRoX2lmcmFtZShzY29wZSk7Ci19LCAnZ2xvYmFsIHNldHVwJyk7Ci0KLS8v
IFRlc3QgdGhhdCBYTUxIdHRwUmVxdWVzdC5yZXNwb25zZVVSTCB1c2VzIHRoZSByZXNwb25zZSBV
UkwgZnJvbSB0aGUgc2VydmljZQotLy8gd29ya2VyLgotcHJvbWlzZV90ZXN0KGFzeW5jICh0KSA9
PiB7Ci0gIC8vIEJ1aWxkIGEgVVJMIHRoYXQgdGVsbHMgdGhlIHNlcnZpY2Ugd29ya2VyIHRvIHJl
c3BvbmRXaXRoKGZldGNoKHx0YXJnZXR8KSkuCi0gIGNvbnN0IHRhcmdldCA9IG5ldyBVUkwoJ3Jl
c291cmNlcy9kdW1teS50eHQnLCB3aW5kb3cubG9jYXRpb24pOwotICBjb25zdCB1cmwgPSBidWls
ZF91cmwoewotICAgIHJlc3BvbmRXaXRoOiAnZmV0Y2gnLAotICAgIHVybDogdGFyZ2V0Ci0gIH0p
OwotCi0gIC8vIFBlcmZvcm0gdGhlIFhIUi4KLSAgY29uc3QgeGhyID0gYXdhaXQgaWZyYW1lLmNv
bnRlbnRXaW5kb3cueGhyKHVybCk7Ci0gIGFzc2VydF9lcXVhbHMoeGhyLnJlc3BvbnNlVVJMLCB0
YXJnZXQuaHJlZiwgJ3Jlc3BvbnNlVVJMJyk7Ci19LCAnWEhSIHJlc3BvbnNlVVJMIHNob3VsZCBi
ZSB0aGUgcmVzcG9uc2UgVVJMJyk7Ci0KLS8vIFNhbWUgYXMgYWJvdmUgd2l0aCBhIGdlbmVyYXRl
ZCByZXNwb25zZS4KLXByb21pc2VfdGVzdChhc3luYyAodCkgPT4gewotICAvLyBCdWlsZCBhIFVS
TCB0aGF0IHRlbGxzIHRoZSBzZXJ2aWNlIHdvcmtlciB0byByZXNwb25kV2l0aChuZXcgUmVzcG9u
c2UoKSkuCi0gIGNvbnN0IHVybCA9IGJ1aWxkX3VybCh7cmVzcG9uZFdpdGg6ICdzdHJpbmcnfSk7
Ci0KLSAgLy8gUGVyZm9ybSB0aGUgWEhSLgotICBjb25zdCB4aHIgPSBhd2FpdCBpZnJhbWUuY29u
dGVudFdpbmRvdy54aHIodXJsKTsKLSAgYXNzZXJ0X2VxdWFscyh4aHIucmVzcG9uc2VVUkwsIHVy
bCwgJ3Jlc3BvbnNlVVJMJyk7Ci19LCAnWEhSIHJlc3BvbnNlVVJMIHNob3VsZCBiZSB0aGUgcmVz
cG9uc2UgVVJMIChnZW5lcmF0ZWQgcmVzcG9uc2UpJyk7Ci0KLS8vIFRlc3QgdGhhdCBYTUxIdHRw
UmVxdWVzdC5yZXNwb25zZVhNTCBpcyBhIERvY3VtZW50IHdob3NlIFVSTCBpcyB0aGUKLS8vIHJl
c3BvbnNlIFVSTCBmcm9tIHRoZSBzZXJ2aWNlIHdvcmtlci4KLXByb21pc2VfdGVzdChhc3luYyAo
dCkgPT4gewotICAvLyBCdWlsZCBhIFVSTCB0aGF0IHRlbGxzIHRoZSBzZXJ2aWNlIHdvcmtlciB0
byByZXNwb25kV2l0aChmZXRjaCh8dGFyZ2V0fCkpLgotICBjb25zdCB0YXJnZXQgPSBuZXcgVVJM
KCdyZXNvdXJjZXMvYmxhbmsuaHRtbCcsIHdpbmRvdy5sb2NhdGlvbik7Ci0gIGNvbnN0IHVybCA9
IGJ1aWxkX3VybCh7Ci0gICAgcmVzcG9uZFdpdGg6ICdmZXRjaCcsCi0gICAgdXJsOiB0YXJnZXQK
LSAgfSk7Ci0KLSAgLy8gUGVyZm9ybSB0aGUgWEhSLgotICBjb25zdCB4aHIgPSBhd2FpdCBpZnJh
bWUuY29udGVudFdpbmRvdy54aHIodXJsLCB7cmVzcG9uc2VUeXBlOiAnZG9jdW1lbnQnfSk7Ci0g
IGFzc2VydF9lcXVhbHMoeGhyLnJlc3BvbnNlVVJMLCB0YXJnZXQuaHJlZiwgJ3Jlc3BvbnNlVVJM
Jyk7Ci0KLSAgLy8gVGhlIGRvY3VtZW50J3MgVVJMIHVzZXMgdGhlIHJlc3BvbnNlIFVSTDoKLSAg
Ly8gIlNldCB8ZG9jdW1lbnR84oCZcyBVUkwgdG8gfHJlc3BvbnNlfOKAmXMgdXJsLiIKLSAgLy8g
aHR0cHM6Ly94aHIuc3BlYy53aGF0d2cub3JnLyNkb2N1bWVudC1yZXNwb25zZQotICBhc3NlcnRf
ZXF1YWxzKHhoci5yZXNwb25zZVhNTC5VUkwsIHRhcmdldC5ocmVmLCAncmVzcG9uc2VYTUwuVVJM
Jyk7Ci0KLSAgLy8gVGhlIGRvY3VtZW50J3MgYmFzZSBVUkwgZmFsbHMgYmFjayB0byB0aGUgZG9j
dW1lbnQgVVJMOgotICAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS91
cmxzLWFuZC1mZXRjaGluZy5odG1sI2RvY3VtZW50LWJhc2UtdXJsCi0gIGFzc2VydF9lcXVhbHMo
eGhyLnJlc3BvbnNlWE1MLmJhc2VVUkksIHRhcmdldC5ocmVmLCAncmVzcG9uc2VYTUwuYmFzZVVS
SScpOwotfSwgJ1hIUiBEb2N1bWVudCBzaG91bGQgdXNlIHRoZSByZXNwb25zZSBVUkwnKTsKLQot
Ly8gU2FtZSBhcyBhYm92ZSB3aXRoIGEgZ2VuZXJhdGVkIHJlc3BvbnNlIGZyb20gdGhlIHNlcnZp
Y2Ugd29ya2VyLgotcHJvbWlzZV90ZXN0KGFzeW5jICh0KSA9PiB7Ci0gIC8vIEJ1aWxkIGEgVVJM
IHRoYXQgdGVsbHMgdGhlIHNlcnZpY2Ugd29ya2VyIHRvCi0gIC8vIHJlc3BvbmRXaXRoKG5ldyBS
ZXNwb25zZSgpKSB3aXRoIGEgZG9jdW1lbnQgcmVzcG9uc2UuCi0gIGNvbnN0IHVybCA9IGJ1aWxk
X3VybCh7cmVzcG9uZFdpdGg6ICdkb2N1bWVudCd9KTsKLQotICAvLyBQZXJmb3JtIHRoZSBYSFIu
Ci0gIGNvbnN0IHhociA9IGF3YWl0IGlmcmFtZS5jb250ZW50V2luZG93Lnhocih1cmwsIHtyZXNw
b25zZVR5cGU6ICdkb2N1bWVudCd9KTsKLSAgYXNzZXJ0X2VxdWFscyh4aHIucmVzcG9uc2VVUkws
IHVybCwgJ3Jlc3BvbnNlVVJMJyk7Ci0KLSAgLy8gVGhlIGRvY3VtZW50J3MgVVJMIHVzZXMgdGhl
IHJlc3BvbnNlIFVSTCwgd2hpY2ggaXMgdGhlIHJlcXVlc3QgVVJMOgotICAvLyAiU2V0IHxkb2N1
bWVudHzigJlzIFVSTCB0byB8cmVzcG9uc2V84oCZcyB1cmwuIgotICAvLyBodHRwczovL3hoci5z
cGVjLndoYXR3Zy5vcmcvI2RvY3VtZW50LXJlc3BvbnNlCi0gIGFzc2VydF9lcXVhbHMoeGhyLnJl
c3BvbnNlWE1MLlVSTCwgdXJsLCAncmVzcG9uc2VYTUwuVVJMJyk7Ci0KLSAgLy8gVGhlIGRvY3Vt
ZW50J3MgYmFzZSBVUkwgZmFsbHMgYmFjayB0byB0aGUgZG9jdW1lbnQgVVJMOgotICAvLyBodHRw
czovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS91cmxzLWFuZC1mZXRjaGluZy5odG1s
I2RvY3VtZW50LWJhc2UtdXJsCi0gIGFzc2VydF9lcXVhbHMoeGhyLnJlc3BvbnNlWE1MLmJhc2VV
UkksIHVybCwgJ3Jlc3BvbnNlWE1MLmJhc2VVUkknKTsKLX0sICdYSFIgRG9jdW1lbnQgc2hvdWxk
IHVzZSB0aGUgcmVzcG9uc2UgVVJMIChnZW5lcmF0ZWQgcmVzcG9uc2UpJyk7Ci0KLXByb21pc2Vf
dGVzdChhc3luYyAodCkgPT4gewotICBpZiAoaWZyYW1lKQotICAgIGlmcmFtZS5yZW1vdmUoKTsK
LSAgYXdhaXQgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcih0LCBzY29wZSk7Ci19LCAnZ2xvYmFs
IGNsZWFudXAnKTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIveHNs
LWJhc2UtdXJsLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3hzbC1iYXNl
LXVybC5odHRwcy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI1
OWJlNjkxMmQzNGZkOGUxMDJhZGNjZDkwNGUxNDI0OTcwODY5MWYuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIveHNsLWJhc2Ut
dXJsLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotCi1Q
QVNTIGJhc2UgVVJMIHdoZW4gc2VydmljZSB3b3JrZXIgZG9lcyByZXNwb25kV2l0aChmZXRjaChy
ZXNwb25zZVVybCkpIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci94c2wtYmFzZS11
cmwuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3hzbC1iYXNlLXVybC5odHRwcy5odG1s
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxZDNjMzY0MDhhNjZhNzc4NWI4ODRjOWNk
YzM5ZGNkMjgyMGY5YWYwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3hzbC1iYXNlLXVybC5odHRwcy5odG1sCisrKyAvZGV2
L251bGwKQEAgLTEsMzIgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08bWV0YSBjaGFyc2V0PSJ1
dGYtOCI+Ci08dGl0bGU+U2VydmljZSBXb3JrZXI6IFhTTCdzIGJhc2UgVVJMIG11c3QgYmUgdGhl
IHJlc3BvbnNlIFVSTDwvdGl0bGU+Ci08c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVz
cy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9y
dC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Rlc3QtaGVscGVycy5zdWIu
anM/cGlwZT1zdWIiPjwvc2NyaXB0PgotPHNjcmlwdD4KLS8vIFRoaXMgdGVzdCBsb2FkcyBhbiBY
TUwgZG9jdW1lbnQgd2hpY2ggaXMgY29udHJvbGxlZCBhIHNlcnZpY2Ugd29ya2VyLiBUaGUKLS8v
IGRvY3VtZW50IGxvYWRzIGEgc3R5bGVzaGVldCBhbmQgYSBzZXJ2aWNlIHdvcmtlciByZXNwb25k
cyB3aXRoIGFub3RoZXIgVVJMLgotLy8gVGhlIHN0eWxlc2hlZXQgaW1wb3J0cyBhIHJlbGF0aXZl
IFVSTCB0byB0ZXN0IHRoYXQgdGhlIGJhc2UgVVJMIGlzIHRoZQotLy8gcmVzcG9uc2UgVVJMIGZy
b20gdGhlIHNlcnZpY2Ugd29ya2VyLgotcHJvbWlzZV90ZXN0KGFzeW5jICh0KSA9PiB7Ci0gIGNv
bnN0IFNDT1BFID0gJ3Jlc291cmNlcy94c2wtYmFzZS11cmwtaWZyYW1lLnhtbCc7Ci0gIGNvbnN0
IFNDUklQVCA9ICdyZXNvdXJjZXMveHNsLWJhc2UtdXJsLXdvcmtlci5qcyc7Ci0gIGxldCB3b3Jr
ZXI7Ci0gIGxldCBmcmFtZTsKLQotICB0LmFkZF9jbGVhbnVwKCgpID0+IHsKLSAgICBpZiAoZnJh
bWUpCi0gICAgICBmcmFtZS5yZW1vdmUoKTsKLSAgICBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVy
KHQsIFNDT1BFKTsKLSAgfSk7Ci0KLSAgY29uc3QgcmVnaXN0cmF0aW9uID0gYXdhaXQgc2Vydmlj
ZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIoCi0gICAgICB0LCBTQ1JJUFQsIFNDT1BF
KTsKLSAgd29ya2VyID0gcmVnaXN0cmF0aW9uLmluc3RhbGxpbmc7Ci0gIGF3YWl0IHdhaXRfZm9y
X3N0YXRlKHQsIHdvcmtlciwgJ2FjdGl2YXRlZCcpOwotCi0gIGZyYW1lID0gYXdhaXQgd2l0aF9p
ZnJhbWUoU0NPUEUpOwotICBhc3NlcnRfZXF1YWxzKGZyYW1lLmNvbnRlbnREb2N1bWVudC5ib2R5
LnRleHRDb250ZW50LCAnUEFTUycpOwotfSwgJ2Jhc2UgVVJMIHdoZW4gc2VydmljZSB3b3JrZXIg
ZG9lcyByZXNwb25kV2l0aChmZXRjaChyZXNwb25zZVVybCkpJyk7Ci08L3NjcmlwdD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggNzMwMGQ5ZjkyYTI4Mzdh
MjA1MTk5MzRiZjAzNWFkMjlkMjc2MDY2Mi4uM2MwZjUwYWM4MzBhNjYxNDlmOWMzN2QwNzU1NjBk
NDRlYzFkMTRhMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBl
Y3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMK
QEAgLTMyMDMsMTAgKzMyMDMsNiBAQCB3ZWJraXQub3JnL2IvMTkwNzY0IGVkaXRpbmcvc3BlbGxp
bmcvc3BlbGxpbmctZG90cy1wb3NpdGlvbi0zLmh0bWwgWyBTa2lwIF0KIAogd2Via2l0Lm9yZy9i
LzE5MjI3OSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9yZWdpc3Rlci1jbG9zZWQtd2luZG93Lmh0dHBzLmh0bWwgWyBQYXNzIEZh
aWx1cmUgXQogCi13ZWJraXQub3JnL2IvMTkyMjUwIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0ZS1taXNzaW5nLWltcG9y
dC1zY3JpcHRzLmh0dHBzLmh0bWwgWyBQYXNzIEZhaWx1cmUgXQotCi13ZWJraXQub3JnL2IvMTky
Mzk4IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL3VwZGF0ZS1yZWdpc3RyYXRpb24td2l0aC10eXBlLmh0dHBzLmh0bWwgWyBQYXNz
IEZhaWx1cmUgXQotCiB3ZWJraXQub3JnL2IvMTkxNzA0IGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3dpbmRvd2NsaWVudC1uYXZp
Z2F0ZS5odHRwcy5odG1sIFsgUGFzcyBGYWlsdXJlIF0KIAogd2Via2l0Lm9yZy9iLzE5Mzk1NSBj
b21wb3NpdGluZy9pZnJhbWVzL3JlbW92ZS1yZWluc2VydC13ZWJ2aWV3LXdpdGgtaWZyYW1lLmh0
bWwgWyBTa2lwIF0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>378340</attachid>
            <date>2019-09-08 17:11:44 -0700</date>
            <delta_ts>2019-09-09 09:35:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201589-20190908171128.patch</filename>
            <type>text/plain</type>
            <size>570124</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5NjI5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggY2U3MTRhOWFmMmU0NDczZjc2NzM5
MzY2N2ZiYTEwNDFjMzYxNmNkOC4uYjI4ZWUwNWY4YWUzMzFhYzM0YzllZTY2YjJjYzQ1MGI4Nzkw
MjJlYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDE5LTA5LTA4ICBDaHJpcyBEdW1leiAgPGNk
dW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUmVzeW5jIHNlcnZpY2Ugd29ya2VycyBXUFQgdGVz
dHMgZnJvbSB1cHN0cmVhbQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjAxNTg5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBUZXN0RXhwZWN0YXRpb25zOgorCiAyMDE5LTA5LTA3ICBDaHJpcyBEdW1leiAg
PGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHBvc3RNZXNzYWdl
IGJ1ZmZlcmluZyBiZXR3ZWVuIHRoZSBzZXJ2aWNlIHdvcmtlciBhbmQgd2luZG93CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRleCBjYjQ2MzU1YmY0ZDE0ZjdjZGEyMzE3NGVlMWIzMDVl
OTBmODc4OTNlLi5mNzdiZTcyMmVkNzc1YjBjNGQzNjdiYmZhOTNjMjYxYmZkOWE3ZWY0IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNTUgQEAKKzIwMTktMDktMDgg
IENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBSZXN5bmMgc2Vydmlj
ZSB3b3JrZXJzIFdQVCB0ZXN0cyBmcm9tIHVwc3RyZWFtCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDE1ODkKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZXN5bmMgc2VydmljZSB3b3JrZXJzIFdQVCB0ZXN0
cyBmcm9tIHVwc3RyZWFtIDgyMGYwZjg2MDQ3ZTZlMjY0MDFlLgorCisgICAgICAgICogd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9TZXJ2aWNlLVdvcmtl
ci1BbGxvd2VkLWhlYWRlci5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9TZXJ2aWNlLVdvcmtlci1B
bGxvd2VkLWhlYWRlci5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlL3Bv
c3RtZXNzYWdlLmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUvdW5yZWdp
c3Rlci5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlL3VwZGF0ZS5odHRw
cy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvYWJvdXQtYmxhbmstcmVwbGFjZW1lbnQuaHR0cHMuaHRtbDoKKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2FjdGl2
YXRlLWV2ZW50LWFmdGVyLWluc3RhbGwtc3RhdGUtY2hhbmdlLmh0dHBzLmh0bWw6CisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9hY3Rp
dmF0aW9uLWFmdGVyLXJlZ2lzdHJhdGlvbi5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvYWN0aXZhdGlvbi5odHRw
cy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9hY3RpdmF0aW9uLmh0dHBzLmh0bWw6CisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9hcHBjYWNoZS1v
cmRlcmluZy1tYWluLmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGFpbS1mZXRjaC13aXRoLWFwcGNhY2hlLmh0
dHBzLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsYWltLWZldGNoLXdpdGgtYXBwY2FjaGUu
aHR0cHMuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsYWltLWZldGNoLmh0dHBzLmh0bWw6CisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGFp
bS1ub3QtdXNpbmctcmVnaXN0cmF0aW9uLmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGFpbS1zaGFyZWQtd29y
a2VyLWZldGNoLmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGFpbS11c2luZy1yZWdpc3RyYXRpb24uaHR0cHMu
aHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL2NsYWltLXdvcmtlci1mZXRjaC5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGFp
bS13b3JrZXItZmV0Y2guaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsaWVudC1pZC5odHRwcy5odG1sOgorICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
Y2xpZW50cy1nZXQtY2xpZW50LXR5cGVzLmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGllbnRzLWdldC1yZXN1
bHRpbmdDbGllbnRJZC5odHRwcy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGllbnRzLWdl
dC1yZXN1bHRpbmdDbGllbnRJZC5odHRwcy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xpZW50cy1nZXQu
aHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xpZW50cy1nZXQuaHR0cHMuaHRtbDoKKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsaWVu
dHMtbWF0Y2hhbGwtY2xpZW50LXR5cGVzLmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGllbnRzLW1hdGNoYWxs
LWV4YWN0LWNvbnRyb2xsZXIuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xpZW50cy1tYXRjaGFs
bC1leGFjdC1jb250cm9sbGVyLmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGllbnRzLW1hdGNoYWxsLWluY2x1
ZGUtdW5jb250cm9sbGVkLmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGllbnRzLW1hdGNoYWxsLW9yZGVyLmh0
dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9jbGllbnRzLW1hdGNoYWxsLmh0dHBzLmh0bWw6CisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jb250cm9sbGVy
LW9uLWRpc2Nvbm5lY3QuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NvbnRyb2xsZXItb24tbG9hZC5odHRwcy5o
dG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvY29udHJvbGxlci1vbi1yZWxvYWQuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2RhdGEtdHJhbnNm
ZXItZmlsZXMuaHR0cHMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZGF0YS10cmFuc2Zlci1m
aWxlcy5odHRwcy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZGV0YWNoZWQtY29udGV4dC5odHRwcy1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9kZXRhY2hlZC1jb250ZXh0Lmh0dHBzLmh0bWw6CisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9leHRlbmRhYmxl
LWV2ZW50LWFzeW5jLXdhaXR1bnRpbC5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9leHRlbmRhYmxl
LWV2ZW50LWFzeW5jLXdhaXR1bnRpbC5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZXh0ZW5kYWJsZS1ldmVudC13
YWl0dW50aWwuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWF1ZGlvLXRhaW50aW5nLmh0dHBzLWV4cGVj
dGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWF1ZGlvLXRhaW50aW5nLmh0dHBzLmh0bWw6IFJl
bW92ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9mZXRjaC1jYW52YXMtdGFpbnRpbmctZG91YmxlLXdyaXRlLmh0dHBzLWV4cGVj
dGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWNhbnZhcy10YWludGluZy1kb3VibGUtd3JpdGUu
aHR0cHMuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWNhbnZhcy10YWludGluZy12aWRlby1jYWNo
ZS5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvZmV0Y2gtY2FudmFzLXRhaW50aW5nLXZpZGVvLmh0dHBzLmh0bWw6
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9mZXRjaC1jb3JzLXhoci5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1jb3JzLXho
ci5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvZmV0Y2gtY3NwLmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1ldmVudC1h
ZnRlci1uYXZpZ2F0aW9uLXdpdGhpbi1wYWdlLmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1ldmVudC1h
c3luYy1yZXNwb25kLXdpdGguaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtZXZlbnQtYXN5
bmMtcmVzcG9uZC13aXRoLmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1ldmVudC1uZXR3b3JrLWVycm9y
Lmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1ldmVudC1yZWZlcnJlci1wb2xpY3kuaHR0cHMtZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvZmV0Y2gtZXZlbnQtcmVmZXJyZXItcG9saWN5Lmh0dHBzLmh0bWw6CisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9m
ZXRjaC1ldmVudC1yZXNwb25kLXdpdGgtYXJndW1lbnQuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWV2
ZW50LXJlc3BvbmQtd2l0aC1ib2R5LWxvYWRlZC1pbi1jaHVuay5odHRwcy5odG1sOgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0
Y2gtZXZlbnQtcmVzcG9uZC13aXRoLXN0b3BzLXByb3BhZ2F0aW9uLmh0dHBzLmh0bWw6CisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9m
ZXRjaC1ldmVudC10aHJvd3MtYWZ0ZXItcmVzcG9uZC13aXRoLmh0dHBzLmh0bWw6CisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRj
aC1ldmVudC5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1ldmVudC5odHRwcy5odG1sOgor
ICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvZmV0Y2gtZnJhbWUtcmVzb3VyY2UuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWhlYWRlci12aXNp
YmlsaXR5Lmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1yZXF1ZXN0LWNzcy1iYXNlLXVybC5odHRwcy1l
eHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1yZXF1ZXN0LWNzcy1iYXNlLXVybC5odHRwcy5odG1sOgor
ICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvZmV0Y2gtcmVxdWVzdC1jc3MtaW1hZ2VzLmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1yZXF1ZXN0
LWh0bWwtaW1wb3J0cy5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1yZXF1ZXN0LWh0bWwt
aW1wb3J0cy5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtcmVxdWVzdC1uby1mcmVzaG5lc3MtaGVhZGVy
cy5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvZmV0Y2gtcmVxdWVzdC1yZWRpcmVjdC5odHRwcy5odG1sOgorICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
ZmV0Y2gtcmVxdWVzdC14aHItc3luYy5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtcmVzcG9uc2UteGhy
Lmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci9mZXRjaC13YWl0cy1mb3ItYWN0aXZhdGUuaHR0cHMuaHRtbDoKKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L2dldHJlZ2lzdHJhdGlvbi5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9nZXRyZWdpc3RyYXRpb24u
aHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL2ltcG9ydC1tb2R1bGUtc2NyaXB0cy5odHRwcy1leHBlY3RlZC50eHQ6
IFJlbW92ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9pbXBvcnQtbW9kdWxlLXNjcmlwdHMuaHR0cHMuaHRtbDogUmVtb3ZlZC4K
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL2ltcG9ydC1zY3JpcHRzLW1pbWUtdHlwZXMuaHR0cHMtZXhwZWN0ZWQudHh0OiBSZW1vdmVk
LgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvaW1wb3J0LXNjcmlwdHMtbWltZS10eXBlcy5odHRwcy5odG1sOiBSZW1vdmVkLgorICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
aW1wb3J0LXNjcmlwdHMtcmVzb3VyY2UtbWFwLmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ltcG9y
dC1zY3JpcHRzLXJlc291cmNlLW1hcC5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvaW50ZXJmYWNlcy13aW5kb3cu
aHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL2ludmFsaWQtYmxvYnR5cGUuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ludmFsaWQt
aGVhZGVyLmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9pc28tbGF0aW4xLWhlYWRlci5odHRwcy5odG1sOgorICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
bXVsdGlwbGUtdXBkYXRlLmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9uYXZpZ2F0aW9uLXJlZGlyZWN0Lmh0dHBz
Lmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9vbmFjdGl2YXRlLXNjcmlwdC1lcnJvci5odHRwcy5odG1sOgorICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcGVyZm9y
bWFuY2UtdGltZWxpbmUuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Bvc3RtZXNzYWdlLWZyb20td2FpdGluZy1z
ZXJ2aWNld29ya2VyLmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9wb3N0bWVzc2FnZS10by1jbGllbnQtbWVzc2Fn
ZS1xdWV1ZS5odHRwcy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9wb3N0bWVzc2FnZS10by1j
bGllbnQtbWVzc2FnZS1xdWV1ZS5odHRwcy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcG9zdG1lc3NhZ2Ut
dG8tY2xpZW50Lmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9wb3N0bWVzc2FnZS5odHRwcy1leHBlY3RlZC50eHQ6
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9wb3N0bWVzc2FnZS5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVhZHkuaHR0cHMuaHRtbDoKKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jl
ZGlyZWN0ZWQtcmVzcG9uc2UuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVkaXJlY3RlZC1yZXNw
b25zZS5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvcmVmZXJlci5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVnaXN0ZXItZGVm
YXVsdC1zY29wZS5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVnaXN0ZXItd2FpdC1mb3JldmVyLWluLWluc3Rh
bGwtd29ya2VyLmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZWdpc3RyYXRpb24tZW5kLXRvLWVuZC5odHRwcy5o
dG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvcmVnaXN0cmF0aW9uLWV2ZW50cy5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVnaXN0cmF0aW9u
LW1pbWUtdHlwZXMuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVnaXN0cmF0aW9uLW1pbWUtdHlw
ZXMuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL3JlZ2lzdHJhdGlvbi1zY2hlZHVsZS1qb2IuaHR0cHMtZXhwZWN0
ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvcmVnaXN0cmF0aW9uLXNjaGVkdWxlLWpvYi5odHRwcy5odG1s
OiBSZW1vdmVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvcmVnaXN0cmF0aW9uLXNjb3BlLmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L3JlZ2lzdHJhdGlvbi1zZWN1cml0eS1lcnJvci5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZWdp
c3RyYXRpb24tc2VydmljZS13b3JrZXItYXR0cmlidXRlcy5odHRwcy5odG1sOgorICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVnaXN0
cmF0aW9uLXVwZGF0ZXZpYWNhY2hlLmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlZ2lzdHJhdGlv
bi11cGRhdGV2aWFjYWNoZS5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2UtdGltaW5nLmh0dHBzLmh0
bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZS10aW1pbmcuc3ViLmh0
dHBzLmh0bWwuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9yZXNvdXJjZS10aW1pbmcuc3ViLmh0dHBzLWV4cGVjdGVkLnR4dDogUmVt
b3ZlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL3Jlc291cmNlcy9hYm91dC1ibGFuay1yZXBsYWNlbWVudC1waW5nLWZyYW1lLnB5
OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvcmVzb3VyY2VzL2FwcGNhY2hlLW9yZGVyaW5nLm1hbmlmZXN0OgorICAgICAgICAqIHdl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2Vz
L2NsYWltLXdvcmtlci5qczoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9jbGFzc2ljLXdvcmtlci5qczogUmVtb3Zl
ZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL3Jlc291cmNlcy9jbGllbnRzLWdldC1jcm9zcy1vcmlnaW4tZnJhbWUuaHRtbDoKKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L3Jlc291cmNlcy9jbGllbnRzLWdldC1yZXN1bHRpbmdDbGllbnRJZC13b3JrZXIuanM6IFJlbW92
ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9yZXNvdXJjZXMvY2xpZW50cy1nZXQtd29ya2VyLmpzOgorICAgICAgICAoc2VsZi5v
bm1lc3NhZ2UpOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2VuYWJsZS1jbGllbnQtbWVzc2FnZS1xdWV1ZS5odG1s
OiBSZW1vdmVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2V4dGVuZGFibGUtZXZlbnQtYXN5bmMtd2FpdHVudGls
LmpzOgorICAgICAgICAoc3dpdGNoKToKKyAgICAgICAgKGV2ZW50LnJlcXVlc3QudXJsLmluZGV4
T2YpOgorICAgICAgICAoZWxzZS5ldmVudC5yZXF1ZXN0LnVybC5pbmRleE9mKToKKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291
cmNlcy9mZXRjaC1jYW52YXMtdGFpbnRpbmctZG91YmxlLXdyaXRlLXdvcmtlci5qczogUmVtb3Zl
ZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL3Jlc291cmNlcy9mZXRjaC1jb3JzLXhoci1pZnJhbWUuaHRtbDoKKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNl
cy9mZXRjaC1ldmVudC1hc3luYy1yZXNwb25kLXdpdGgtd29ya2VyLmpzOgorICAgICAgICAoc2V0
VGltZW91dCk6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtZXZlbnQtbmV0d29yay1mYWxsYmFjay13b3Jr
ZXIuanM6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtZXZlbnQtdGVzdC13b3JrZXIuanM6CisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNv
dXJjZXMvZmV0Y2gtcmVxdWVzdC1jc3MtYmFzZS11cmwtaWZyYW1lLmh0bWw6CisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJj
ZXMvZmV0Y2gtcmVxdWVzdC1jc3MtYmFzZS11cmwtd29ya2VyLmpzOgorICAgICAgICAoc2VsZi5v
bm1lc3NhZ2UpOgorICAgICAgICAodXJsLmluZGV4T2YpOgorICAgICAgICAoZWxzZS51cmwuaW5k
ZXhPZik6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9yZXNvdXJjZXMvZ2V0LXJlc3VsdGluZ0NsaWVudElkLXdvcmtlci5qczogUmVt
b3ZlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL3Jlc291cmNlcy9pbXBvcnQtcmVsYXRpdmUueHNsOiBSZW1vdmVkLgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVz
b3VyY2VzL2ltcG9ydC1zY3JpcHRzLWRpZmYtcmVzb3VyY2UtbWFwLXdvcmtlci5qczogUmVtb3Zl
ZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL3Jlc291cmNlcy9pbXBvcnQtc2NyaXB0cy1nZXQucHk6IFJlbW92ZWQuCisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNv
dXJjZXMvaW1wb3J0LXNjcmlwdHMtbWltZS10eXBlcy13b3JrZXIuanM6IFJlbW92ZWQuCisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9y
ZXNvdXJjZXMvaW1wb3J0ZWQtY2xhc3NpYy1zY3JpcHQuanM6IFJlbW92ZWQuCisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJj
ZXMvaW1wb3J0ZWQtbW9kdWxlLXNjcmlwdC5qczogUmVtb3ZlZC4KKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9tZXNz
YWdlLXZzLW1pY3JvdGFzay5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL21vZHVsZS13b3Jr
ZXIuanM6IFJlbW92ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvbmF2aWdhdGlvbi1yZWRpcmVjdC1vdGhlci1v
cmlnaW4uaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9uYXZpZ2F0aW9uLXJlZGlyZWN0LW91dC1zY29wZS5w
eToKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL3Jlc291cmNlcy9uYXZpZ2F0aW9uLXJlZGlyZWN0LXNjb3BlMS5weToKKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291
cmNlcy9uYXZpZ2F0aW9uLXJlZGlyZWN0LXNjb3BlMi5weToKKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9uZXN0ZWQt
aWZyYW1lLXBhcmVudC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3BlcmZvcm1hbmNlLXRp
bWVsaW5lLXdvcmtlci5qczoKKyAgICAgICAgKHByb21pc2VfdGVzdC4pOgorICAgICAgICAocHJv
bWlzZV90ZXN0KToKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9wb3N0bWVzc2FnZS1lY2hvLXdvcmtlci5qczogUmVt
b3ZlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL3Jlc291cmNlcy9yZWRpcmVjdC13b3JrZXIuanM6CisgICAgICAgIChldmVudC53
YWl0VW50aWwuUHJvbWlzZS5hbGwud2FpdFVudGlsUHJvbWlzZUxpc3QudGhlbik6CisgICAgICAg
ICh0aGVuKToKKyAgICAgICAgKHdhaXRVbnRpbFByb21pc2UuY2FjaGVzLm9wZW4uY2FjaGVOYW1l
LnRoZW4pOgorICAgICAgICAoZXZlbnQucmVzcG9uZFdpdGgud2FpdFVudGlsUHJvbWlzZS50aGVu
KToKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL3Jlc291cmNlcy9yZWdpc3RyYXRpb24tdGVzdHMtbWltZS10eXBlcy5qczoKKyAgICAg
ICAgKHJlZ2lzdHJhdGlvbl90ZXN0c19taW1lX3R5cGVzKToKKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9yZWdpc3Ry
YXRpb24tdGVzdHMtc2NvcGUuanM6CisgICAgICAgIChyZWdpc3RyYXRpb25fdGVzdHNfc2NvcGUp
OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvcmVzb3VyY2VzL3JlZ2lzdHJhdGlvbi10ZXN0cy1zZWN1cml0eS1lcnJvci5qczoKKyAg
ICAgICAgKHJlZ2lzdHJhdGlvbl90ZXN0c19zZWN1cml0eV9lcnJvcik6CisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMv
cmVzb3VyY2UtdGltaW5nLWlmcmFtZS5zdWIuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9zZXJ2aWNlLXdv
cmtlci1jc3Atd29ya2VyLnB5OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3NlcnZpY2Utd29ya2VyLWhlYWRlci5w
eToKKyAgICAgICAgKG1haW4pOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3NraXAtd2FpdGluZy1pbnN0YWxsZWQt
d29ya2VyLmpzOgorICAgICAgICAoZXZlbnQud2FpdFVudGlsLnNlbGYuc2tpcFdhaXRpbmcudGhl
bik6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9yZXNvdXJjZXMvc3RhbGxpbmctc2VydmljZS13b3JrZXIuanM6IFJlbW92ZWQuCisg
ICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9yZXNvdXJjZXMvdGVzdC1oZWxwZXJzLnN1Yi5qczoKKyAgICAgICAgKHdhaXRfZm9yX3VwZGF0
ZSk6CisgICAgICAgIChhc3luYy53YWl0X2Zvcl9hY3RpdmF0aW9uX29uX2R1bW15X3Njb3BlKToK
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3Jlc291cmNlcy90ZXN0LXJlcXVlc3QtaGVhZGVycy13b3JrZXIuanM6IFJlbW92ZWQuCisg
ICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9yZXNvdXJjZXMvdGVzdC1yZXF1ZXN0LWhlYWRlcnMtd29ya2VyLnB5OiBSZW1vdmVkLgorICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
cmVzb3VyY2VzL3RyaWNrbGUucHk6IFJlbW92ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvdXBkYXRlLWR1cmlu
Zy1pbnN0YWxsYXRpb24td29ya2VyLmpzOiBSZW1vdmVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3VwZGF0ZS1k
dXJpbmctaW5zdGFsbGF0aW9uLXdvcmtlci5weTogUmVtb3ZlZC4KKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy91cGRh
dGUtZmV0Y2gtd29ya2VyLnB5OiBSZW1vdmVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3VwZGF0ZS1taXNzaW5n
LWltcG9ydC1zY3JpcHRzLWltcG9ydGVkLXdvcmtlci5weTogUmVtb3ZlZC4KKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNl
cy91cGRhdGUtbWlzc2luZy1pbXBvcnQtc2NyaXB0cy1tYWluLXdvcmtlci5weTogUmVtb3ZlZC4K
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3Jlc291cmNlcy91cGRhdGUtcmVnaXN0cmF0aW9uLXdpdGgtdHlwZS5weTogUmVtb3ZlZC4K
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3Jlc291cmNlcy93M2MtaW1wb3J0LmxvZzoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy93b3JrZXItaW50ZXJj
ZXB0aW9uLWlmcmFtZS5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3dvcmtlci1sb2FkLWludGVy
Y2VwdG9yLmpzOgorICAgICAgICAoc2VsZi5vbmZldGNoKToKKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy93b3JrZXIt
dGVzdGhhcm5lc3MuanM6CisgICAgICAgIChjcmVhdGVfdGVtcG9yYXJ5X2NhY2hlKToKKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jl
c291cmNlcy94aHItaWZyYW1lLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMveGhyLXJlc3Bv
bnNlLXVybC13b3JrZXIuanM6IFJlbW92ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMveHNsLWJhc2UtdXJsLWlm
cmFtZS54bWw6IFJlbW92ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMveHNsLWJhc2UtdXJsLXdvcmtlci5qczog
UmVtb3ZlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL3Jlc291cmNlcy94c2x0LXBhc3MueHNsOiBSZW1vdmVkLgorICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvc2Vydmlj
ZS13b3JrZXItY3NwLWNvbm5lY3QuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvc2VydmljZS13b3Jr
ZXItY3NwLWRlZmF1bHQuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvc2VydmljZS13b3JrZXItY3Nw
LXNjcmlwdC5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9zZXJ2aWNlLXdvcmtlci1oZWFkZXIuaHR0
cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvc2VydmljZS13b3JrZXItaGVhZGVyLmh0dHBzLmh0bWw6Cisg
ICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9zZXJ2aWNld29ya2VyLW1lc3NhZ2UtZXZlbnQtaGlzdG9yaWNhbC5odHRwcy5odG1sOgorICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
c2hhcmVkLXdvcmtlci1jb250cm9sbGVkLmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9za2lwLXdhaXRpbmctaW5z
dGFsbGVkLmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3NraXAtd2FpdGluZy1pbnN0YWxsZWQuaHR0
cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL3NraXAtd2FpdGluZy11c2luZy1yZWdpc3RyYXRpb24uaHR0cHMuaHRtbDoK
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3NraXAtd2FpdGluZy13aXRob3V0LXVzaW5nLXJlZ2lzdHJhdGlvbi5odHRwcy5odG1sOgor
ICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvc2tpcC13YWl0aW5nLmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9zdGF0ZS5odHRwcy5odG1sOgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvc3lu
Y2VkLXN0YXRlLmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91bmNvbnRyb2xsZWQtcGFnZS5odHRwcy5odG1sOgor
ICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvdW5yZWdpc3Rlci10aGVuLXJlZ2lzdGVyLW5ldy1zY3JpcHQuaHR0cHMtZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvdW5yZWdpc3Rlci10aGVuLXJlZ2lzdGVyLW5ldy1zY3JpcHQuaHR0cHMuaHRtbDoKKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L3VucmVnaXN0ZXItdGhlbi1yZWdpc3Rlci5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91bnJlZ2lz
dGVyLXRoZW4tcmVnaXN0ZXIuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0ZS1hZnRlci1uYXZpZ2F0aW9u
LXJlZGlyZWN0Lmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUtYWZ0ZXItb25lZGF5Lmh0dHBzLmh0bWw6
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci91cGRhdGUtYnl0ZWNoZWNrLmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUtbWlzc2luZy1pbXBv
cnQtc2NyaXB0cy5odHRwcy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUtbWlzc2lu
Zy1pbXBvcnQtc2NyaXB0cy5odHRwcy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLW5vLWNhY2hl
LXJlcXVlc3QtaGVhZGVycy5odHRwcy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUt
bm8tY2FjaGUtcmVxdWVzdC1oZWFkZXJzLmh0dHBzLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUt
bm90LWFsbG93ZWQuaHR0cHMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLW5vdC1h
bGxvd2VkLmh0dHBzLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUtb24tbmF2aWdhdGlvbi5odHRw
cy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUtb24tbmF2aWdhdGlvbi5odHRwcy5o
dG1sOiBSZW1vdmVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvdXBkYXRlLXJlY292ZXJ5Lmh0dHBzLmh0bWw6CisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUt
cmVnaXN0cmF0aW9uLXdpdGgtdHlwZS5odHRwcy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91
cGRhdGUtcmVnaXN0cmF0aW9uLXdpdGgtdHlwZS5odHRwcy5odG1sOiBSZW1vdmVkLgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdzNj
LWltcG9ydC5sb2c6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci93ZWJzb2NrZXQuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvd2Vic29j
a2V0Lmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci93aW5kb3djbGllbnQtbmF2aWdhdGUuaHR0cHMuaHRtbDoKKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L3dvcmtlci1jbGllbnQtaWQuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvd29ya2VyLWludGVyY2Vw
dGlvbi5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci93b3JrZXItaW50ZXJjZXB0aW9uLmh0dHBzLmh0
bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci94aHItcmVzcG9uc2UtdXJsLmh0dHBzLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L3hoci1yZXNwb25zZS11cmwuaHR0cHMuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3hzbC1iYXNlLXVybC5o
dHRwcy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci94c2wtYmFzZS11cmwuaHR0cHMuaHRtbDog
UmVtb3ZlZC4KKwogMjAxOS0wOS0wNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgog
CiAgICAgICAgIEFkZCBzdXBwb3J0IGZvciBwb3N0TWVzc2FnZSBidWZmZXJpbmcgYmV0d2VlbiB0
aGUgc2VydmljZSB3b3JrZXIgYW5kIHdpbmRvdwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvVGVz
dEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggOWYxNDM0
YzBiMDEzZmJmM2NkNjYzN2QzODc5NTM1Njk1ODYyNDA2NC4uMGEyMzZlYzc5Y2RkZjVlZjhkYTUw
N2Q5ZWY3ZmMyMWI1ZmEyNzVhYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0
aW9ucworKysgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCkBAIC0yMTEsMTMgKzIxMSwx
MSBAQCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9mZXRjaC1taXhlZC1jb250ZQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvbXVsdGlwYXJ0LWltYWdlLmh0dHBz
Lmh0bWwgWyBTa2lwIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3NraXAtd2FpdGluZy11c2luZy1yZWdpc3RyYXRpb24uaHR0
cHMuaHRtbCBbIFNraXAgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvc2tpcC13YWl0aW5nLXdpdGhvdXQtdXNpbmctcmVnaXN0
cmF0aW9uLmh0dHBzLmh0bWwgWyBTa2lwIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0ZS1ub3QtYWxsb3dlZC5odHRw
cy5odG1sIFsgU2tpcCBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci93b3JrZXItaW4tc2FuZGJveGVkLWlmcmFtZS1ieS1jc3At
ZmV0Y2gtZXZlbnQuaHR0cHMuaHRtbCBbIFNraXAgXQogWyBEZWJ1ZyBdIGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlYWR5Lmh0
dHBzLmh0bWwgWyBTa2lwIF0KIAogIyBOZXdseSBpbXBvcnRlZCBzZXJ2aWNlIHdvcmtlciB0ZXN0
cyB0aGF0IGFyZSBmbGFreS4KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL25hdmlnYXRpb24tcmVkaXJlY3QtdG8taHR0cC5odHRw
cy5odG1sIFsgUGFzcyBGYWlsdXJlIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlLXRpbWluZy5zdWIuaHR0cHMu
aHRtbCBbIFBhc3MgRmFpbHVyZSBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci93b3JrZXItY2xpZW50LWlkLmh0dHBzLmh0bWwg
WyBQYXNzIEZhaWx1cmUgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy94aHIvZXZl
bnQtdGltZW91dC1vcmRlci5odG0gWyBQYXNzIEZhaWx1cmUgXQogCkBAIC0yNjYsNiArMjY0LDcg
QEAgd2Via2l0Lm9yZy9iLzE4ODI0NiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmsKICMgQ29uc29sZSBsb2cgbGluZXMgbWF5IGFwcGVh
ciBpbiBhIGRpZmZlcmVudCBvcmRlciBzbyB3ZSBzaWxlbmNlIHRoZW0uCiBpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvaGlzdG9yeS90aGUtbG9jYXRpb24taW50
ZXJmYWNlL2xvY2F0aW9uLXByb3RvY29sLXNldHRlci1ub24tYnJva2VuLmh0bWwgWyBEdW1wSlND
b25zb2xlTG9nSW5TdGRFcnIgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1s
L2Jyb3dzZXJzL2hpc3RvcnkvdGhlLWxvY2F0aW9uLWludGVyZmFjZS9sb2NhdGlvbi1wcm90b2Nv
bC1zZXR0ZXItbm9uLWJyb2tlbi13ZWlyZC5odG1sIFsgRHVtcEpTQ29uc29sZUxvZ0luU3RkRXJy
IF0KK2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL2ZldGNoLWNvcnMteGhyLmh0dHBzLmh0bWwgWyBEdW1wSlNDb25zb2xlTG9nSW5T
dGRFcnIgXQogCiAjIE5ld2x5IGltcG9ydGVkIFdQVCB0ZXN0cyB0aGF0IGFyZSB0aW1pbmcgb3V0
LgogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL2hpc3Rvcnkv
dGhlLWxvY2F0aW9uLWludGVyZmFjZS9sb2NhdGlvbi1vcmlnaW4taWRuYS5zdWIud2luZG93Lmh0
bWwgWyBTa2lwIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL1NlcnZpY2UtV29ya2Vy
LUFsbG93ZWQtaGVhZGVyLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL1Nl
cnZpY2UtV29ya2VyLUFsbG93ZWQtaGVhZGVyLmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCA2MThi
OTJkOWVhZDIwNzVkZDM4MzI1YWU2NjYzNWUzZjUxYWI0NzY5Li5lMTc1OWUwODNkMzE1NTE1YmUw
NzFjMWIxODQyM2IwYjIwMGVhOWE0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9TZXJ2
aWNlLVdvcmtlci1BbGxvd2VkLWhlYWRlci5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvU2VydmljZS1Xb3JrZXItQWxsb3dlZC1oZWFkZXIuaHR0cHMtZXhwZWN0ZWQu
dHh0CkBAIC00LDcgKzQsNyBAQCBQQVNTIFJlZ2lzdGVyaW5nIHdpdGhpbiBTZXJ2aWNlLVdvcmtl
ci1BbGxvd2VkIHBhdGggKGFic29sdXRlIFVSTCkKIFBBU1MgUmVnaXN0ZXJpbmcgd2l0aGluIFNl
cnZpY2UtV29ya2VyLUFsbG93ZWQgcGF0aCB3aXRoIHBhcmVudCByZWZlcmVuY2UgCiBQQVNTIFJl
Z2lzdGVyaW5nIG91dHNpZGUgU2VydmljZS1Xb3JrZXItQWxsb3dlZCBwYXRoIAogUEFTUyBSZWdp
c3RlcmluZyBvdXRzaWRlIFNlcnZpY2UtV29ya2VyLUFsbG93ZWQgcGF0aCB3aXRoIHBhcmVudCBy
ZWZlcmVuY2UgCi1GQUlMIFNlcnZpY2UtV29ya2VyLUFsbG93ZWQgaXMgY3Jvc3Mtb3JpZ2luIHRv
IHNjcmlwdCwgcmVnaXN0ZXJpbmcgb24gYSBub3JtYWxseSBhbGxvd2VkIHNjb3BlIGFzc2VydF91
bnJlYWNoZWQ6IFNob3VsZCBoYXZlIHJlamVjdGVkOiB1bmRlZmluZWQgUmVhY2hlZCB1bnJlYWNo
YWJsZSBjb2RlCi1GQUlMIFNlcnZpY2UtV29ya2VyLUFsbG93ZWQgaXMgY3Jvc3Mtb3JpZ2luIHRv
IHNjcmlwdCwgcmVnaXN0ZXJpbmcgb24gYSBub3JtYWxseSBkaXNhbGxvd2VkIHNjb3BlIGFzc2Vy
dF91bnJlYWNoZWQ6IFNob3VsZCBoYXZlIHJlamVjdGVkOiB1bmRlZmluZWQgUmVhY2hlZCB1bnJl
YWNoYWJsZSBjb2RlCitQQVNTIFNlcnZpY2UtV29ya2VyLUFsbG93ZWQgaXMgY3Jvc3Mtb3JpZ2lu
IHRvIHNjcmlwdCwgcmVnaXN0ZXJpbmcgb24gYSBub3JtYWxseSBhbGxvd2VkIHNjb3BlIAorUEFT
UyBTZXJ2aWNlLVdvcmtlci1BbGxvd2VkIGlzIGNyb3NzLW9yaWdpbiB0byBzY3JpcHQsIHJlZ2lz
dGVyaW5nIG9uIGEgbm9ybWFsbHkgZGlzYWxsb3dlZCBzY29wZSAKIFBBU1MgU2VydmljZS1Xb3Jr
ZXItQWxsb3dlZCBpcyBjcm9zcy1vcmlnaW4gdG8gcGFnZSwgc2FtZS1vcmlnaW4gdG8gc2NyaXB0
IAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9TZXJ2aWNlLVdvcmtlci1BbGxvd2Vk
LWhlYWRlci5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvU2VydmljZS1Xb3JrZXItQWxs
b3dlZC1oZWFkZXIuaHR0cHMuaHRtbAppbmRleCA5MDQ1YzBmNGU3OTExOTJjNDMyZDk5MTU2NjY2
MjkyZjhkZjQyYWIzLi4zMTYwNjdjYzA2Njc5NTcwODY2Y2QxY2NmNjdmMjczY2NlNTdhMTViIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9TZXJ2aWNlLVdvcmtlci1BbGxvd2VkLWhlYWRl
ci5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL1NlcnZpY2UtV29ya2VyLUFsbG93
ZWQtaGVhZGVyLmh0dHBzLmh0bWwKQEAgLTE3LDcyICsxNyw4OCBAQCBmdW5jdGlvbiBidWlsZF9z
Y3JpcHRfdXJsKGFsbG93ZWRfcGF0aCwgb3JpZ2luKSB7CiAgIHJldHVybiBgJHt1cmx9P3BpcGU9
aGVhZGVyKFNlcnZpY2UtV29ya2VyLUFsbG93ZWQsJHthbGxvd2VkX3BhdGh9KWA7CiB9CiAKLS8v
IHJlZ2lzdGVyX3Rlc3QgaXMgYSBwcm9taXNlX3Rlc3QgdGhhdCByZWdpc3RlcnMgYSBzZXJ2aWNl
IHdvcmtlci4KLWZ1bmN0aW9uIHJlZ2lzdGVyX3Rlc3Qoc2NyaXB0LCBzY29wZSwgZGVzY3JpcHRp
b24pIHsKLSAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewotICAgIHQuYWRkX2NsZWFudXAoKCkg
PT4gewotICAgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXIodCwgc2NvcGUpOwot
ICAgIH0pOworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25zdCBzY3JpcHQgPSBidWls
ZF9zY3JpcHRfdXJsKCcvYWxsb3dlZC1wYXRoJyk7CisgIGNvbnN0IHNjb3BlID0gJy9hbGxvd2Vk
LXBhdGgnOworICBjb25zdCByZWdpc3RyYXRpb24gPSBhd2FpdCBzZXJ2aWNlX3dvcmtlcl91bnJl
Z2lzdGVyX2FuZF9yZWdpc3RlcigKKyAgICAgIHQsIHNjcmlwdCwgc2NvcGUpOworICBhc3NlcnRf
dHJ1ZShyZWdpc3RyYXRpb24gaW5zdGFuY2VvZiBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLCAn
cmVnaXN0ZXJlZCcpOworICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi5zY29wZSwgbm9ybWFs
aXplVVJMKHNjb3BlKSk7CisgIHJldHVybiByZWdpc3RyYXRpb24udW5yZWdpc3RlcigpOworfSwg
J1JlZ2lzdGVyaW5nIHdpdGhpbiBTZXJ2aWNlLVdvcmtlci1BbGxvd2VkIHBhdGgnKTsKIAotICAg
IGNvbnN0IHJlZ2lzdHJhdGlvbiA9IGF3YWl0IHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5k
X3JlZ2lzdGVyKAotICAgICAgICB0LCBzY3JpcHQsIHNjb3BlKTsKLSAgICBhc3NlcnRfdHJ1ZShy
ZWdpc3RyYXRpb24gaW5zdGFuY2VvZiBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLCAncmVnaXN0
ZXJlZCcpOwotICAgIGFzc2VydF9lcXVhbHMocmVnaXN0cmF0aW9uLnNjb3BlLCBub3JtYWxpemVV
Ukwoc2NvcGUpKTsKLSAgfSwgZGVzY3JpcHRpb24pOwotfQotCi0vLyByZWdpc3Rlcl9mYWlsX3Rl
c3QgaXMgbGlrZSByZWdpc3Rlcl90ZXN0IGJ1dCBleHBlY3RzIGEgU2VjdXJpdHlFcnJvci4KLWZ1
bmN0aW9uIHJlZ2lzdGVyX2ZhaWxfdGVzdChzY3JpcHQsIHNjb3BlLCBkZXNjcmlwdGlvbikgewot
ICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7Ci0gICAgdC5hZGRfY2xlYW51cCgoKSA9PiB7Ci0g
ICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcih0LCBzY29wZSk7Ci0gICAgfSk7
Ci0KLSAgICBhd2FpdCBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyKHQsIHNjb3BlKTsKLSAgICBh
d2FpdCBwcm9taXNlX3JlamVjdHModCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgJ1NlY3Vy
aXR5RXJyb3InLAotICAgICAgICAgICAgICAgICAgICAgICAgICBuYXZpZ2F0b3Iuc2VydmljZVdv
cmtlci5yZWdpc3RlcihzY3JpcHQsIHtzY29wZX0pKTsKLSAgfSwgZGVzY3JpcHRpb24pOwotfQot
Ci1yZWdpc3Rlcl90ZXN0KAotICAgIGJ1aWxkX3NjcmlwdF91cmwoJy9hbGxvd2VkLXBhdGgnKSwK
LSAgICAnL2FsbG93ZWQtcGF0aCcsCi0gICAgJ1JlZ2lzdGVyaW5nIHdpdGhpbiBTZXJ2aWNlLVdv
cmtlci1BbGxvd2VkIHBhdGgnKTsKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgY29uc3Qg
c2NyaXB0ID0gYnVpbGRfc2NyaXB0X3VybChuZXcgVVJMKCcvYWxsb3dlZC1wYXRoJywgZG9jdW1l
bnQubG9jYXRpb24pKTsKKyAgY29uc3Qgc2NvcGUgPSAnL2FsbG93ZWQtcGF0aCc7CisgIGNvbnN0
IHJlZ2lzdHJhdGlvbiA9IGF3YWl0IHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lz
dGVyKAorICAgICAgdCwgc2NyaXB0LCBzY29wZSk7CisgIGFzc2VydF90cnVlKHJlZ2lzdHJhdGlv
biBpbnN0YW5jZW9mIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24sICdyZWdpc3RlcmVkJyk7Cisg
IGFzc2VydF9lcXVhbHMocmVnaXN0cmF0aW9uLnNjb3BlLCBub3JtYWxpemVVUkwoc2NvcGUpKTsK
KyAgcmV0dXJuIHJlZ2lzdHJhdGlvbi51bnJlZ2lzdGVyKCk7Cit9LCAnUmVnaXN0ZXJpbmcgd2l0
aGluIFNlcnZpY2UtV29ya2VyLUFsbG93ZWQgcGF0aCAoYWJzb2x1dGUgVVJMKScpOwogCi1yZWdp
c3Rlcl90ZXN0KAotICAgIGJ1aWxkX3NjcmlwdF91cmwobmV3IFVSTCgnL2FsbG93ZWQtcGF0aCcs
IGRvY3VtZW50LmxvY2F0aW9uKSksCi0gICAgJy9hbGxvd2VkLXBhdGgnLAotICAgICdSZWdpc3Rl
cmluZyB3aXRoaW4gU2VydmljZS1Xb3JrZXItQWxsb3dlZCBwYXRoIChhYnNvbHV0ZSBVUkwpJyk7
Citwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0IHNjcmlwdCA9IGJ1aWxkX3Njcmlw
dF91cmwoJy4uL2FsbG93ZWQtcGF0aC13aXRoLXBhcmVudCcpOworICBjb25zdCBzY29wZSA9ICdh
bGxvd2VkLXBhdGgtd2l0aC1wYXJlbnQnOworICBjb25zdCByZWdpc3RyYXRpb24gPSBhd2FpdCBz
ZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3RlcigKKyAgICAgIHQsIHNjcmlwdCwg
c2NvcGUpOworICBhc3NlcnRfdHJ1ZShyZWdpc3RyYXRpb24gaW5zdGFuY2VvZiBTZXJ2aWNlV29y
a2VyUmVnaXN0cmF0aW9uLCAncmVnaXN0ZXJlZCcpOworICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJh
dGlvbi5zY29wZSwgbm9ybWFsaXplVVJMKHNjb3BlKSk7CisgIHJldHVybiByZWdpc3RyYXRpb24u
dW5yZWdpc3RlcigpOworfSwgJ1JlZ2lzdGVyaW5nIHdpdGhpbiBTZXJ2aWNlLVdvcmtlci1BbGxv
d2VkIHBhdGggd2l0aCBwYXJlbnQgcmVmZXJlbmNlJyk7CiAKLXJlZ2lzdGVyX3Rlc3QoCi0gICAg
YnVpbGRfc2NyaXB0X3VybCgnLi4vYWxsb3dlZC1wYXRoLXdpdGgtcGFyZW50JyksCi0gICAgJ2Fs
bG93ZWQtcGF0aC13aXRoLXBhcmVudCcsCi0gICAgJ1JlZ2lzdGVyaW5nIHdpdGhpbiBTZXJ2aWNl
LVdvcmtlci1BbGxvd2VkIHBhdGggd2l0aCBwYXJlbnQgcmVmZXJlbmNlJyk7Citwcm9taXNlX3Rl
c3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0IHNjcmlwdCA9IGJ1aWxkX3NjcmlwdF91cmwoJy4uL2Fs
bG93ZWQtcGF0aCcpOworICBjb25zdCBzY29wZSA9ICcvZGlzYWxsb3dlZC1wYXRoJzsKKyAgYXdh
aXQgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcih0LCBzY29wZSk7CisgIHJldHVybiBwcm9taXNl
X3JlamVjdHModCwKKyAgICAgICdTZWN1cml0eUVycm9yJywKKyAgICAgIG5hdmlnYXRvci5zZXJ2
aWNlV29ya2VyLnJlZ2lzdGVyKHNjcmlwdCwge3Njb3BlOiBzY29wZX0pLAorICAgICAgJ3JlZ2lz
dGVyIHNob3VsZCBmYWlsJyk7Cit9LCAnUmVnaXN0ZXJpbmcgb3V0c2lkZSBTZXJ2aWNlLVdvcmtl
ci1BbGxvd2VkIHBhdGgnKTsKIAotcmVnaXN0ZXJfZmFpbF90ZXN0KAotICAgIGJ1aWxkX3Njcmlw
dF91cmwoJy4uL2FsbG93ZWQtcGF0aCcpLAotICAgICcvZGlzYWxsb3dlZC1wYXRoJywKLSAgICAn
UmVnaXN0ZXJpbmcgb3V0c2lkZSBTZXJ2aWNlLVdvcmtlci1BbGxvd2VkIHBhdGgnKSwKK3Byb21p
c2VfdGVzdChhc3luYyB0ID0+IHsKKyAgY29uc3Qgc2NyaXB0ID0gYnVpbGRfc2NyaXB0X3VybCgn
Li4vYWxsb3dlZC1wYXRoLXdpdGgtcGFyZW50Jyk7CisgIGNvbnN0IHNjb3BlID0gJy9hbGxvd2Vk
LXBhdGgtd2l0aC1wYXJlbnQnOworICBhd2FpdCBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyKHQs
IHNjb3BlKTsKKyAgcmV0dXJuIHByb21pc2VfcmVqZWN0cyh0LAorICAgICAgJ1NlY3VyaXR5RXJy
b3InLAorICAgICAgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoc2NyaXB0LCB7c2Nv
cGU6IHNjb3BlfSksCisgICAgICAncmVnaXN0ZXIgc2hvdWxkIGZhaWwnKTsKK30sICdSZWdpc3Rl
cmluZyBvdXRzaWRlIFNlcnZpY2UtV29ya2VyLUFsbG93ZWQgcGF0aCB3aXRoIHBhcmVudCByZWZl
cmVuY2UnKTsKIAotcmVnaXN0ZXJfZmFpbF90ZXN0KAotICAgIGJ1aWxkX3NjcmlwdF91cmwoJy4u
L2FsbG93ZWQtcGF0aC13aXRoLXBhcmVudCcpLAotICAgICcvYWxsb3dlZC1wYXRoLXdpdGgtcGFy
ZW50JywKLSAgICAnUmVnaXN0ZXJpbmcgb3V0c2lkZSBTZXJ2aWNlLVdvcmtlci1BbGxvd2VkIHBh
dGggd2l0aCBwYXJlbnQgcmVmZXJlbmNlJyk7Citwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7Cisg
IGNvbnN0IHNjcmlwdCA9IGJ1aWxkX3NjcmlwdF91cmwoCisgICAgICBob3N0X2luZm8uSFRUUFNf
UkVNT1RFX09SSUdJTiArICcvJyk7CisgIGNvbnN0IHNjb3BlID0gJ3Jlc291cmNlcy90aGlzLXNj
b3BlLWlzLW5vcm1hbGx5LWFsbG93ZWQnCisgIGNvbnN0IHJlZ2lzdHJhdGlvbiA9IGF3YWl0IHNl
cnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKAorICAgICAgdCwgc2NyaXB0LCBz
Y29wZSk7CisgIGFzc2VydF90cnVlKHJlZ2lzdHJhdGlvbiBpbnN0YW5jZW9mIFNlcnZpY2VXb3Jr
ZXJSZWdpc3RyYXRpb24sICdyZWdpc3RlcmVkJyk7CisgIGFzc2VydF9lcXVhbHMocmVnaXN0cmF0
aW9uLnNjb3BlLCBub3JtYWxpemVVUkwoc2NvcGUpKTsKKyAgcmV0dXJuIHJlZ2lzdHJhdGlvbi51
bnJlZ2lzdGVyKCk7Cit9LCAnU2VydmljZS1Xb3JrZXItQWxsb3dlZCBpcyBjcm9zcy1vcmlnaW4g
dG8gc2NyaXB0LCByZWdpc3RlcmluZyBvbiBhIG5vcm1hbGx5IGFsbG93ZWQgc2NvcGUnKTsKIAot
cmVnaXN0ZXJfZmFpbF90ZXN0KAotICAgIGJ1aWxkX3NjcmlwdF91cmwoaG9zdF9pbmZvLkhUVFBT
X1JFTU9URV9PUklHSU4gKyAnLycpLAotICAgICdyZXNvdXJjZXMvdGhpcy1zY29wZS1pcy1ub3Jt
YWxseS1hbGxvd2VkJywKLSAgICAnU2VydmljZS1Xb3JrZXItQWxsb3dlZCBpcyBjcm9zcy1vcmln
aW4gdG8gc2NyaXB0LCByZWdpc3RlcmluZyBvbiBhIG5vcm1hbGx5IGFsbG93ZWQgc2NvcGUnKTsK
K3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgY29uc3Qgc2NyaXB0ID0gYnVpbGRfc2NyaXB0
X3VybCgKKyAgICAgIGhvc3RfaW5mby5IVFRQU19SRU1PVEVfT1JJR0lOICsgJy8nKTsKKyAgY29u
c3Qgc2NvcGUgPSAnL3RoaXMtc2NvcGUtaXMtbm9ybWFsbHktZGlzYWxsb3dlZCcKKyAgY29uc3Qg
cmVnaXN0cmF0aW9uID0gYXdhaXQgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0
ZXIoCisgICAgICB0LCBzY3JpcHQsIHNjb3BlKTsKKyAgYXNzZXJ0X3RydWUocmVnaXN0cmF0aW9u
IGluc3RhbmNlb2YgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbiwgJ3JlZ2lzdGVyZWQnKTsKKyAg
YXNzZXJ0X2VxdWFscyhyZWdpc3RyYXRpb24uc2NvcGUsIG5vcm1hbGl6ZVVSTChzY29wZSkpOwor
ICByZXR1cm4gcmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIoKTsKK30sICdTZXJ2aWNlLVdvcmtlci1B
bGxvd2VkIGlzIGNyb3NzLW9yaWdpbiB0byBzY3JpcHQsIHJlZ2lzdGVyaW5nIG9uIGEgbm9ybWFs
bHkgZGlzYWxsb3dlZCBzY29wZScpOwogCi1yZWdpc3Rlcl9mYWlsX3Rlc3QoCi0gICAgYnVpbGRf
c2NyaXB0X3VybChob3N0X2luZm8uSFRUUFNfUkVNT1RFX09SSUdJTiArICcvJyksCi0gICAgJy90
aGlzLXNjb3BlLWlzLW5vcm1hbGx5LWRpc2FsbG93ZWQnLAotICAgICdTZXJ2aWNlLVdvcmtlci1B
bGxvd2VkIGlzIGNyb3NzLW9yaWdpbiB0byBzY3JpcHQsIHJlZ2lzdGVyaW5nIG9uIGEgbm9ybWFs
bHkgZGlzYWxsb3dlZCBzY29wZScpOworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25z
dCBzY3JpcHQgPSBidWlsZF9zY3JpcHRfdXJsKAorICAgICAgaG9zdF9pbmZvLkhUVFBTX1JFTU9U
RV9PUklHSU4gKyAnL2Nyb3NzLW9yaWdpbi8nLAorICAgICAgaG9zdF9pbmZvLkhUVFBTX1JFTU9U
RV9PUklHSU4pOworICBjb25zdCBzY29wZSA9ICcvY3Jvc3Mtb3JpZ2luLyc7CisgIGF3YWl0IHNl
cnZpY2Vfd29ya2VyX3VucmVnaXN0ZXIodCwgc2NvcGUpOworICByZXR1cm4gcHJvbWlzZV9yZWpl
Y3RzKHQsCisgICAgICAnU2VjdXJpdHlFcnJvcicsCisgICAgICBuYXZpZ2F0b3Iuc2VydmljZVdv
cmtlci5yZWdpc3RlcihzY3JpcHQsIHtzY29wZTogc2NvcGV9KSwKKyAgICAgICdyZWdpc3RlciBz
aG91bGQgZmFpbCcpOworfSwgJ1NlcnZpY2UtV29ya2VyLUFsbG93ZWQgaXMgY3Jvc3Mtb3JpZ2lu
IHRvIHBhZ2UsIHNhbWUtb3JpZ2luIHRvIHNjcmlwdCcpOwogCi1yZWdpc3Rlcl9mYWlsX3Rlc3Qo
Ci0gICAgYnVpbGRfc2NyaXB0X3VybChob3N0X2luZm8uSFRUUFNfUkVNT1RFX09SSUdJTiArICcv
Y3Jvc3Mtb3JpZ2luLycsCi0gICAgICAgICAgICAgICAgICAgICBob3N0X2luZm8uSFRUUFNfUkVN
T1RFX09SSUdJTiksCi0gICAgJy9jcm9zcy1vcmlnaW4vJywKLSAgICAnU2VydmljZS1Xb3JrZXIt
QWxsb3dlZCBpcyBjcm9zcy1vcmlnaW4gdG8gcGFnZSwgc2FtZS1vcmlnaW4gdG8gc2NyaXB0Jyk7
CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL1NlcnZpY2VXb3JrZXJH
bG9iYWxTY29wZS9wb3N0bWVzc2FnZS5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvU2Vy
dmljZVdvcmtlckdsb2JhbFNjb3BlL3Bvc3RtZXNzYWdlLmh0dHBzLmh0bWwKaW5kZXggOTlkZWRl
YmYyZTU2Yzc0NDUyOGZkMTY4YzA1YjRmZTczNDU2M2M1Ny4uMTcwNDZlZWRjNmJkMjUyOWI0NTJm
ZTAzYTBlOWUyZDUyYzBiMmQ3MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvU2Vydmlj
ZVdvcmtlckdsb2JhbFNjb3BlL3Bvc3RtZXNzYWdlLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlL3Bvc3RtZXNzYWdlLmh0dHBzLmh0bWwK
QEAgLTEyLDEyICsxMiw3IEBAIHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7CiAKICAgICByZXR1
cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgc2NyaXB0LCBzY29w
ZSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKHIpIHsKLSAgICAgICAgICB0LmFkZF9jbGVhbnVwKGZ1
bmN0aW9uKCkgewotICAgICAgICAgICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rl
cih0LCBzY29wZSk7Ci0gICAgICAgICAgICB9KTsKLQogICAgICAgICAgIHJlZ2lzdHJhdGlvbiA9
IHI7Ci0KICAgICAgICAgICByZXR1cm4gd2FpdF9mb3Jfc3RhdGUodCwgcmVnaXN0cmF0aW9uLmlu
c3RhbGxpbmcsICdhY3RpdmF0ZWQnKTsKICAgICAgICAgfSkKICAgICAgIC50aGVuKGZ1bmN0aW9u
KCkgewpAQCAtMzMsNiArMjgsNyBAQCBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewogICAgICAg
ICB9KQogICAgICAgLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7CiAgICAgICAgICAgYXNzZXJ0X2Vx
dWFscyhyZXN1bHQsICdPSycpOworICAgICAgICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJl
Z2lzdGVyX2FuZF9kb25lKHQsIHNjb3BlKTsKICAgICAgICAgfSk7CiAgIH0sICdQb3N0IGxvb3Bi
YWNrIG1lc3NhZ2VzJyk7CiAKQEAgLTQ1LDEwICs0MSw2IEBAIHByb21pc2VfdGVzdChmdW5jdGlv
bih0KSB7CiAKICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0
ZXIodCwgc2NyaXB0MSwgc2NvcGUpCiAgICAgICAudGhlbihmdW5jdGlvbihyKSB7Ci0gICAgICAg
ICAgdC5hZGRfY2xlYW51cChmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgcmV0dXJuIHNlcnZp
Y2Vfd29ya2VyX3VucmVnaXN0ZXIodCwgc2NvcGUpOwotICAgICAgICAgICAgfSk7Ci0KICAgICAg
ICAgICByZWdpc3RyYXRpb24gPSByOwogICAgICAgICAgIHJldHVybiB3YWl0X2Zvcl9zdGF0ZSh0
LCByZWdpc3RyYXRpb24uaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOwogICAgICAgICB9KQpAQCAt
NzcsNiArNjksNyBAQCBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewogICAgICAgLnRoZW4oZnVu
Y3Rpb24ocmVzdWx0KSB7CiAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhyZXN1bHQsICdPSycpOwog
ICAgICAgICAgIGZyYW1lLnJlbW92ZSgpOworICAgICAgICAgIHJldHVybiBzZXJ2aWNlX3dvcmtl
cl91bnJlZ2lzdGVyX2FuZF9kb25lKHQsIHNjb3BlKTsKICAgICAgICAgfSk7CiAgIH0sICdQb3N0
IG1lc3NhZ2VzIGFtb25nIHNlcnZpY2Ugd29ya2VycycpOwogCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUvdW5yZWdpc3Rlci5odHRwcy5odG1s
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlL3VucmVnaXN0ZXIu
aHR0cHMuaHRtbAppbmRleCAxYTEyNGQ3Mjc2ODdlY2ZjNjJiYjE0NDNiZWQyMzEzMzEyNzYyOTk3
Li4zMTMzMDkxODgwNzE3NDdmYjEzOWQ2ZGMwZGJlMjAxOWQwZTcyNzQ4IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUvdW5yZWdpc3Rlci5odHRw
cy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS91
bnJlZ2lzdGVyLmh0dHBzLmh0bWwKQEAgLTExLDEwICsxMSw2IEBAIHByb21pc2VfdGVzdChmdW5j
dGlvbih0KSB7CiAKICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVn
aXN0ZXIodCwgc2NyaXB0LCBzY29wZSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKHJlZ2lzdHJhdGlv
bikgewotICAgICAgICAgIHQuYWRkX2NsZWFudXAoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAg
IHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyKHQsIHNjb3BlKTsKLSAgICAgICAgICAg
IH0pOwotCiAgICAgICAgICAgcmV0dXJuIHdhaXRfZm9yX3N0YXRlKHQsIHJlZ2lzdHJhdGlvbi5p
bnN0YWxsaW5nLCAncmVkdW5kYW50Jyk7CiAgICAgICAgIH0pCiAgICAgICAudGhlbihmdW5jdGlv
bigpIHsKQEAgLTI1LDYgKzIxLDcgQEAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICAg
ICAgICAgIHJlc3VsdCwKICAgICAgICAgICAgIHVuZGVmaW5lZCwKICAgICAgICAgICAgICdBZnRl
ciB1bnJlZ2lzdGVyKCksIHRoZSByZWdpc3RyYXRpb24gc2hvdWxkIG5vdCBmb3VuZCcpOworICAg
ICAgICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9kb25lKHQsIHNjb3Bl
KTsKICAgICAgICAgfSk7CiAgIH0sICdVbnJlZ2lzdGVyIG9uIHNjcmlwdCBldmFsdWF0aW9uJyk7
CiAKQEAgLTM0LDEwICszMSw2IEBAIHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7CiAKICAgICBy
ZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgc2NyaXB0LCBz
Y29wZSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKHJlZ2lzdHJhdGlvbikgewotICAgICAgICAgIHQu
YWRkX2NsZWFudXAoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgIHJldHVybiBzZXJ2aWNlX3dv
cmtlcl91bnJlZ2lzdGVyKHQsIHNjb3BlKTsKLSAgICAgICAgICAgIH0pOwotCiAgICAgICAgICAg
cmV0dXJuIHdhaXRfZm9yX3N0YXRlKHQsIHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLCAncmVkdW5k
YW50Jyk7CiAgICAgICAgIH0pCiAgICAgICAudGhlbihmdW5jdGlvbigpIHsKQEAgLTQ4LDYgKzQx
LDcgQEAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICAgICAgICAgIHJlc3VsdCwKICAg
ICAgICAgICAgIHVuZGVmaW5lZCwKICAgICAgICAgICAgICdBZnRlciB1bnJlZ2lzdGVyKCksIHRo
ZSByZWdpc3RyYXRpb24gc2hvdWxkIG5vdCBmb3VuZCcpOworICAgICAgICAgIHJldHVybiBzZXJ2
aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9kb25lKHQsIHNjb3BlKTsKICAgICAgICAgfSk7CiAg
IH0sICdVbnJlZ2lzdGVyIG9uIGluc3RhbGxpbmcgZXZlbnQnKTsKIApAQCAtNTcsMTAgKzUxLDYg
QEAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKIAogICAgIHJldHVybiBzZXJ2aWNlX3dvcmtl
cl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCBzY3JpcHQsIHNjb3BlKQogICAgICAgLnRoZW4o
ZnVuY3Rpb24ocmVnaXN0cmF0aW9uKSB7Ci0gICAgICAgICAgdC5hZGRfY2xlYW51cChmdW5jdGlv
bigpIHsKLSAgICAgICAgICAgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXIodCwg
c2NvcGUpOwotICAgICAgICAgICAgfSk7Ci0KICAgICAgICAgICByZXR1cm4gd2FpdF9mb3Jfc3Rh
dGUodCwgcmVnaXN0cmF0aW9uLmluc3RhbGxpbmcsICdyZWR1bmRhbnQnKTsKICAgICAgICAgfSkK
ICAgICAgIC50aGVuKGZ1bmN0aW9uKCkgewpAQCAtNzEsNiArNjEsNyBAQCBwcm9taXNlX3Rlc3Qo
ZnVuY3Rpb24odCkgewogICAgICAgICAgICAgcmVzdWx0LAogICAgICAgICAgICAgdW5kZWZpbmVk
LAogICAgICAgICAgICAgJ0FmdGVyIHVucmVnaXN0ZXIoKSwgdGhlIHJlZ2lzdHJhdGlvbiBzaG91
bGQgbm90IGZvdW5kJyk7CisgICAgICAgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0
ZXJfYW5kX2RvbmUodCwgc2NvcGUpOwogICAgICAgICB9KTsKICAgfSwgJ1VucmVnaXN0ZXIgb24g
YWN0aXZhdGUgZXZlbnQnKTsKIApAQCAtODMsMTAgKzc0LDYgQEAgcHJvbWlzZV90ZXN0KGZ1bmN0
aW9uKHQpIHsKIAogICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdp
c3Rlcih0LCBzY3JpcHQsIHNjb3BlKQogICAgICAgLnRoZW4oZnVuY3Rpb24ocmVnaXN0cmF0aW9u
KSB7Ci0gICAgICAgICAgdC5hZGRfY2xlYW51cChmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAg
cmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXIodCwgc2NvcGUpOwotICAgICAgICAgICAg
fSk7Ci0KICAgICAgICAgICByZXR1cm4gd2FpdF9mb3Jfc3RhdGUodCwgcmVnaXN0cmF0aW9uLmlu
c3RhbGxpbmcsICdhY3RpdmF0ZWQnKTsKICAgICAgICAgfSkKICAgICAgIC50aGVuKGZ1bmN0aW9u
KCkgeyByZXR1cm4gd2l0aF9pZnJhbWUoc2NvcGUpOyB9KQpAQCAtMTMzLDYgKzEyMCw3IEBAIHBy
b21pc2VfdGVzdChmdW5jdGlvbih0KSB7CiAKICAgICAgICAgICBmcmFtZS5yZW1vdmUoKTsKICAg
ICAgICAgICBuZXdfZnJhbWUucmVtb3ZlKCk7CisgICAgICAgICAgcmV0dXJuIHNlcnZpY2Vfd29y
a2VyX3VucmVnaXN0ZXJfYW5kX2RvbmUodCwgc2NvcGUpOwogICAgICAgICB9KQogICB9LCAnVW5y
ZWdpc3RlciBjb250cm9sbGluZyBzZXJ2aWNlIHdvcmtlcicpOwogCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUvdXBkYXRlLmh0dHBzLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUvdXBkYXRlLmh0dHBz
Lmh0bWwKaW5kZXggYTdkZGUyMjMzOTcyY2IzYzFiODI1MGYzYjBhMTg0NDEzY2Q3YzVhNS4uYTky
ODVhMWM5ZTJkYmZjMzhjNTQ3ZTMwMzBhZjhhZDliYTI5MmU0MiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlL3VwZGF0ZS5odHRwcy5odG1sCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS91cGRhdGUuaHR0
cHMuaHRtbApAQCAtMTMsMTAgKzEzLDYgQEAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKIAog
ICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCBzY3Jp
cHQsIHNjb3BlKQogICAgICAgLnRoZW4oZnVuY3Rpb24ocikgewotICAgICAgICAgIHQuYWRkX2Ns
ZWFudXAoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91
bnJlZ2lzdGVyKHQsIHNjb3BlKTsKLSAgICAgICAgICAgIH0pOwotCiAgICAgICAgICAgcmVnaXN0
cmF0aW9uID0gcjsKICAgICAgICAgICByZXR1cm4gd2FpdF9mb3Jfc3RhdGUodCwgcmVnaXN0cmF0
aW9uLmluc3RhbGxpbmcsICdhY3RpdmF0ZWQnKTsKICAgICAgICAgfSkKQEAgLTQyLDYgKzM4LDcg
QEAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICAgICAgICAgICAgJ2V2ZW50cyBzZWVu
IGJ5IHRoZSB3b3JrZXInKTsKICAgICAgICAgICBmcmFtZTEucmVtb3ZlKCk7CiAgICAgICAgICAg
ZnJhbWUyLnJlbW92ZSgpOworICAgICAgICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lz
dGVyX2FuZF9kb25lKHQsIHNjb3BlKTsKICAgICAgICAgfSk7CiAgIH0sICdVcGRhdGUgYSByZWdp
c3RyYXRpb24gb24gU2VydmljZVdvcmtlckdsb2JhbFNjb3BlJyk7CiAKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL2Fib3V0LWJsYW5rLXJlcGxhY2VtZW50Lmh0dHBzLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9hYm91dC1ibGFuay1yZXBsYWNlbWVudC5odHRwcy5odG1sCmluZGV4IGI2
ZWZlM2VjNTYyMGQxYzgzZGViMzA1ZjJjMWViZTAwOGE2YTIzZTIuLmUxZmVmYWYyOTBmZTUyMTU5
MGE0NjA5NDJkNGMzZjZjMDAyMmM3NWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2Fi
b3V0LWJsYW5rLXJlcGxhY2VtZW50Lmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
YWJvdXQtYmxhbmstcmVwbGFjZW1lbnQuaHR0cHMuaHRtbApAQCAtNjAsOSArNjAsNiBAQCBmdW5j
dGlvbiBnZXRDbGllbnRJZEJ5VVJMKHdvcmtlciwgdXJsKSB7CiAKIGFzeW5jIGZ1bmN0aW9uIGRv
QXN5bmNUZXN0KHQsIHNjb3BlKSB7CiAgIGxldCByZWcgPSBhd2FpdCBzZXJ2aWNlX3dvcmtlcl91
bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCB3b3JrZXIsIHNjb3BlKTsKLQotICB0LmFkZF9jbGVh
bnVwKCgpID0+IHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXIodCwgc2NvcGUpKTsKLQogICBhd2Fp
dCB3YWl0X2Zvcl9zdGF0ZSh0LCByZWcuaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOwogCiAgIC8v
IExvYWQgdGhlIHNjb3BlIGFzIGEgZnJhbWUuICBXZSBleHBlY3QgdGhpcyBpbiB0dXJuIHRvIGhh
dmUgYSBuZXN0ZWQKQEAgLTk5LDYgKzk2LDcgQEAgYXN5bmMgZnVuY3Rpb24gZG9Bc3luY1Rlc3Qo
dCwgc2NvcGUpIHsKICAgfQogCiAgIGZyYW1lLnJlbW92ZSgpOworICBhd2FpdCBzZXJ2aWNlX3dv
cmtlcl91bnJlZ2lzdGVyX2FuZF9kb25lKHQsIHNjb3BlKTsKIH0KIAogcHJvbWlzZV90ZXN0KGFz
eW5jIGZ1bmN0aW9uKHQpIHsKQEAgLTEyOCw5ICsxMjYsNiBAQCBwcm9taXNlX3Rlc3QoYXN5bmMg
ZnVuY3Rpb24odCkgewogICBjb25zdCBzY29wZSA9ICdyZXNvdXJjZXMvYWJvdXQtYmxhbmstcmVw
bGFjZW1lbnQtdW5jb250cm9sbGVkLW5lc3RlZC1mcmFtZS5odG1sJzsKIAogICBsZXQgcmVnID0g
YXdhaXQgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgd29ya2VyLCBz
Y29wZSk7Ci0KLSAgdC5hZGRfY2xlYW51cCgoKSA9PiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVy
KHQsIHNjb3BlKSk7Ci0KICAgYXdhaXQgd2FpdF9mb3Jfc3RhdGUodCwgcmVnLmluc3RhbGxpbmcs
ICdhY3RpdmF0ZWQnKTsKIAogICAvLyBMb2FkIHRoZSBzY29wZSBhcyBhIGZyYW1lLiAgV2UgZXhw
ZWN0IHRoaXMgaW4gdHVybiB0byBoYXZlIGEgbmVzdGVkCkBAIC0xNTIsNiArMTQ3LDcgQEAgcHJv
bWlzZV90ZXN0KGFzeW5jIGZ1bmN0aW9uKHQpIHsKICAgICAgICAgICAgICAgICAnbmVzdGVkIGZy
YW1lIHNob3VsZCBub3QgYmUgY29udHJvbGxlZCcpOwogCiAgIGZyYW1lLnJlbW92ZSgpOworICBh
d2FpdCBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9kb25lKHQsIHNjb3BlKTsKIH0sICdJ
bml0aWFsIGFib3V0OmJsYW5rIGlzIGNvbnRyb2xsZWQsIGV4cG9zZWQgdG8gY2xpZW50cy5tYXRj
aEFsbCgpLCBhbmQgJyArCiAgICAnZmluYWwgQ2xpZW50IGlzIG5vdCBjb250cm9sbGVkIGJ5IGEg
c2VydmljZSB3b3JrZXIuJyk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2FjdGl2
YXRlLWV2ZW50LWFmdGVyLWluc3RhbGwtc3RhdGUtY2hhbmdlLmh0dHBzLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9hY3RpdmF0ZS1ldmVudC1hZnRlci1pbnN0YWxsLXN0YXRlLWNoYW5nZS5odHRw
cy5odG1sCmluZGV4IDAxNmE1MmMxM2M4MmViYmZiMzZkNDg4MzA0NDZiNzliNGU3MmYxM2UuLjU3
ZmNjZjEzNzEyZDk3YzMxNjg3NDc0NmY3NzBmZDdlNzZmNWU4OTcgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL2FjdGl2YXRlLWV2ZW50LWFmdGVyLWluc3RhbGwtc3RhdGUtY2hhbmdlLmh0
dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvYWN0aXZhdGUtZXZlbnQtYWZ0ZXItaW5z
dGFsbC1zdGF0ZS1jaGFuZ2UuaHR0cHMuaHRtbApAQCAtMTEsMTAgKzExLDYgQEAgcHJvbWlzZV90
ZXN0KGZ1bmN0aW9uKHQpIHsKIAogICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9h
bmRfcmVnaXN0ZXIodCwgc2NyaXB0LCBzY29wZSkKICAgICAudGhlbihmdW5jdGlvbihyZWdpc3Ry
YXRpb24pIHsKLSAgICAgICAgdC5hZGRfY2xlYW51cChmdW5jdGlvbigpIHsKLSAgICAgICAgICAg
IHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyKHQsIHNjb3BlKTsKLSAgICAgICAgICB9
KTsKLQogICAgICAgICB2YXIgc3cgPSByZWdpc3RyYXRpb24uaW5zdGFsbGluZzsKIAogICAgICAg
ICByZXR1cm4gbmV3IFByb21pc2UodC5zdGVwX2Z1bmMoZnVuY3Rpb24ocmVzb2x2ZSkgewpAQCAt
MjcsNiArMjMsOSBAQCBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewogICAgICAgICAgIH0pOwog
ICAgICAgICB9KSk7CiAgICAgICB9KQorICAgIC50aGVuKGZ1bmN0aW9uKCkgeworICAgICAgICBy
ZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfZG9uZSh0LCBzY29wZSk7CisgICAg
ICB9KQogICAgIC5jYXRjaCh1bnJlYWNoZWRfcmVqZWN0aW9uKHQpKTsKICAgfSwgJ2luc3RhbGxl
ZCBldmVudCBzaG91bGQgYmUgZmlyZWQgYmVmb3JlIGFjdGl2YXRpbmcgc2VydmljZSB3b3JrZXIn
KTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvYWN0aXZhdGlvbi1hZnRlci1yZWdp
c3RyYXRpb24uaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2FjdGl2YXRpb24tYWZ0ZXIt
cmVnaXN0cmF0aW9uLmh0dHBzLmh0bWwKaW5kZXggMjlmOTdlM2UzZjRjMGNkYTIzMjE3NzZjYmY0
OGZlZDkyZDFjOTBhMS4uZmYwOTkwZGY2YmE5OWJlNzliMDY5YzJjYzcwYWQ3MGM5MjBiYTRlMCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvYWN0aXZhdGlvbi1hZnRlci1yZWdpc3RyYXRp
b24uaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9hY3RpdmF0aW9uLWFmdGVyLXJl
Z2lzdHJhdGlvbi5odHRwcy5odG1sCkBAIC01LDI0ICs1LDI1IEBACiA8c2NyaXB0IHNyYz0icmVz
b3VyY2VzL3Rlc3QtaGVscGVycy5zdWIuanMiPjwvc2NyaXB0PgogPGJvZHk+CiA8c2NyaXB0Pgot
cHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKK3ZhciB0ID0gYXN5bmNfdGVzdCgnYWN0aXZhdGlv
biBvY2N1cnMgYWZ0ZXIgcmVnaXN0cmF0aW9uJyk7Cit0LnN0ZXAoZnVuY3Rpb24oKSB7CiAgICAg
dmFyIHNjb3BlID0gJ3Jlc291cmNlcy9ibGFuay5odG1sJzsKICAgICB2YXIgcmVnaXN0cmF0aW9u
OwogCi0gICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKAor
ICAgIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKAogICAgICAgICB0LCAn
cmVzb3VyY2VzL2VtcHR5LXdvcmtlci5qcycsIHNjb3BlKQogICAgICAgLnRoZW4oZnVuY3Rpb24o
cikgewotICAgICAgICAgIHQuYWRkX2NsZWFudXAoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAg
IHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyKHQsIHNjb3BlKTsKLSAgICAgICAgICAg
IH0pOwotCiAgICAgICAgICAgcmVnaXN0cmF0aW9uID0gcjsKICAgICAgICAgICBhc3NlcnRfZXF1
YWxzKAogICAgICAgICAgICAgICByLmluc3RhbGxpbmcuc3RhdGUsCiAgICAgICAgICAgICAgICdp
bnN0YWxsaW5nJywKICAgICAgICAgICAgICAgJ3dvcmtlciBzaG91bGQgYmUgaW4gdGhlICJpbnN0
YWxsaW5nIiBzdGF0ZSB1cG9uIHJlZ2lzdHJhdGlvbicpOwogICAgICAgICAgIHJldHVybiB3YWl0
X2Zvcl9zdGF0ZSh0LCByLmluc3RhbGxpbmcsICdhY3RpdmF0ZWQnKTsKLSAgICAgICAgfSk7Ci19
LCAnYWN0aXZhdGlvbiBvY2N1cnMgYWZ0ZXIgcmVnaXN0cmF0aW9uJyk7CisgICAgICAgIH0pCisg
ICAgICAudGhlbihmdW5jdGlvbigpIHsKKyAgICAgICAgICBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lz
dGVyX2FuZF9kb25lKHQsIHNjb3BlKTsKKyAgICAgICAgfSkKKyAgICAgIC5jYXRjaCh1bnJlYWNo
ZWRfcmVqZWN0aW9uKHQpKTsKK30pOwogPC9zY3JpcHQ+CiA8L2JvZHk+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci9hY3RpdmF0aW9uLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL2FjdGl2YXRpb24uaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IDczMzRkNmI3YTdh
YzQ0ZGExMTI4ZGY1ZDk0ZmY5ODU3MmU2MzI4NzguLmYwMmU0ODUyYmIwYWFhNzlhNTMyNWU4OTM4
NzkzNjA0ZjczYjJlYWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2FjdGl2YXRpb24u
aHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2FjdGl2YXRpb24uaHR0
cHMtZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsNCBAQAorIAogCiBQQVNTIGxvc3Mgb2YgY29udHJv
bGxlZXMgdHJpZ2dlcnMgYWN0aXZhdGlvbiAKIFBBU1MgZmluaXNoaW5nIGEgcmVxdWVzdCB0cmln
Z2VycyBhY3RpdmF0aW9uIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvYWN0aXZhdGlv
bi5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvYWN0aXZhdGlvbi5odHRwcy5odG1sCmlu
ZGV4IDAwN2VjYWFkNzZjOTU5MzVkZDU3NDcwYzY2MDU3NTMwNWRjNmJhZTEuLjU3NTU3NThlNTcx
NmRiYzYwOGU3ZTc3M2JmOWI4M2FiM2YyZjdlOTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL2FjdGl2YXRpb24uaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9hY3RpdmF0
aW9uLmh0dHBzLmh0bWwKQEAgLTExMywxMiArMTEzLDEwIEBAIHByb21pc2VfdGVzdCh0ID0+IHsK
ICAgICB2YXIgc2NvcGUgPSAncmVzb3VyY2VzL3NraXAtd2FpdGluZyc7CiAgICAgdmFyIHdvcmtl
cl91cmwgPSAncmVzb3VyY2VzL21pbnQtbmV3LXdvcmtlci5weT9za2lwLXdhaXRpbmcnOwogICAg
IHZhciByZWdpc3RyYXRpb247Ci0gICAgdmFyIGlmcmFtZTsKICAgICB2YXIgbmV3X3dvcmtlcjsK
ICAgICByZXR1cm4gc2V0dXBfYWN0aXZhdGlvbl90ZXN0KHQsIHNjb3BlLCB3b3JrZXJfdXJsKQog
ICAgICAgLnRoZW4ocmVzdWx0ID0+IHsKICAgICAgICAgICByZWdpc3RyYXRpb24gPSByZXN1bHQu
cmVnaXN0cmF0aW9uOwotICAgICAgICAgIGlmcmFtZSA9IHJlc3VsdC5pZnJhbWU7CiAgICAgICAg
ICAgLy8gRmluaXNoIHRoZSByZXF1ZXN0LiBUaGUgaWZyYW1lIGRvZXMgbm90IG5lZWQgdG8gYmUg
cmVtb3ZlZCBiZWNhdXNlCiAgICAgICAgICAgLy8gc2tpcFdhaXRpbmcoKSB3YXMgY2FsbGVkLgog
ICAgICAgICAgIG5ld193b3JrZXIgPSByZWdpc3RyYXRpb24ud2FpdGluZzsKQEAgLTEyOCw4ICsx
MjYsNiBAQCBwcm9taXNlX3Rlc3QodCA9PiB7CiAgICAgICAgIH0pCiAgICAgICAudGhlbigoKSA9
PiB7CiAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhyZWdpc3RyYXRpb24uYWN0aXZlLCBuZXdfd29y
a2VyKTsKLSAgICAgICAgICAvLyBSZW1vdmUgdGhlIGlmcmFtZS4KLSAgICAgICAgICBpZnJhbWUu
cmVtb3ZlKCk7CiAgICAgICAgIH0pOwogICB9LCAnc2tpcFdhaXRpbmcgYnlwYXNzZXMgbm8gY29u
dHJvbGxlZSByZXF1aXJlbWVudCcpOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9h
cHBjYWNoZS1vcmRlcmluZy1tYWluLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9hcHBj
YWNoZS1vcmRlcmluZy1tYWluLmh0dHBzLmh0bWwKaW5kZXggYTg2NjcxYzFmZTRlYzk0Y2VjODRk
NjNiYjdlMzA5MjJiMDNjZjExYS4uNjA5ZDY3ZTQ1MDRjOTQ4ODc4MDM2OWMxNWUxYjk2ZmMwYmQy
MDM5NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvYXBwY2FjaGUtb3JkZXJpbmctbWFp
bi5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2FwcGNhY2hlLW9yZGVyaW5nLW1h
aW4uaHR0cHMuaHRtbApAQCAtNSw2ICs1LDcgQEAKIDxib2R5PgogPHNjcmlwdD4KIAordmFyIElO
U1RBTExfQVBQQ0FDSEVfVVJMID0gInJlc291cmNlcy9hcHBjYWNoZS1vcmRlcmluZy5pbnN0YWxs
Lmh0bWwiOwogdmFyIElTX0FQUENBQ0hFRF9VUkwgPSAicmVzb3VyY2VzL2FwcGNhY2hlLW9yZGVy
aW5nLmlzLWFwcGNhY2hlZC5odG1sIjsKIHZhciBTRVJWSUNFX1dPUktFUl9TQ09QRSA9ICJyZXNv
dXJjZXMvYXBwY2FjaGUtb3JkZXJpbmciOwogdmFyIFNFUlZJQ0VfV09SS0VSX1NDUklQVCA9ICJy
ZXNvdXJjZXMvZW1wdHktd29ya2VyLmpzIjsKQEAgLTE0LDYgKzE1LDMxIEBAIHZhciByZWplY3Rf
aW5zdGFsbF9hcHBjYWNoZSA9IHVuZGVmaW5lZDsKIAogdmFyIGZyYW1lcyA9IFtdOwogCisvLyBD
YWxsZWQgYnkgdGhlIElOU1RBTExfQVBQQ0FDSEVfVVJMIGNoaWxkIGZyYW1lLgorZnVuY3Rpb24g
bm90aWZ5X2FwcGNhY2hlX2luc3RhbGxlZChzdWNjZXNzKSB7CisgIGlmIChzdWNjZXNzKQorICAg
IHJlc29sdmVfaW5zdGFsbF9hcHBjYWNoZSgpOworICBlbHNlCisgICAgcmVqZWN0X2luc3RhbGxf
YXBwY2FjaGUoKTsKK30KKworZnVuY3Rpb24gaW5zdGFsbF9hcHBjYWNoZSgpIHsKKyAgcmV0dXJu
IG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgeworICAgICAgdmFyIGZyYW1l
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaWZyYW1lJyk7CisgICAgICBmcmFtZXMucHVzaChm
cmFtZSk7CisgICAgICBmcmFtZS5zcmMgPSBJTlNUQUxMX0FQUENBQ0hFX1VSTDsKKyAgICAgIGRv
Y3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZnJhbWUpOworICAgICAgcmVzb2x2ZV9pbnN0YWxsX2Fw
cGNhY2hlID0gZnVuY3Rpb24oKSB7CisgICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGls
ZChmcmFtZSk7CisgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgICB9OworICAgICAgcmVqZWN0
X2luc3RhbGxfYXBwY2FjaGUgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgICBkb2N1bWVudC5ib2R5
LnJlbW92ZUNoaWxkKGZyYW1lKTsKKyAgICAgICAgICByZWplY3QoKTsKKyAgICAgICAgfTsKKyAg
fSk7Cit9CisKIHZhciByZXNvbHZlX2lzX2FwcGNhY2hlZCA9IHVuZGVmaW5lZDsKIAogLy8gQ2Fs
bGVkIGJ5IHRoZSBJU19BUFBDQUNIRURfVVJMIGNoaWxkIGZyYW1lLgpAQCAtMzQsMTAgKzYwLDEw
IEBAIGZ1bmN0aW9uIGlzX2FwcGNhY2hlZCgpIHsKICAgfSk7CiB9CiAKLXByb21pc2VfdGVzdChm
dW5jdGlvbih0KSB7Ci0gICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXIodCwgU0VS
VklDRV9XT1JLRVJfU0NPUEUpCithc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgICBzZXJ2aWNl
X3dvcmtlcl91bnJlZ2lzdGVyKHQsIFNFUlZJQ0VfV09SS0VSX1NDT1BFKQogICAgICAgLnRoZW4o
ZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgcmV0dXJuIGluc3RhbGxfYXBwY2FjaGVfb3JkZXJpbmdf
bWFuaWZlc3QoKTsKKyAgICAgICAgICByZXR1cm4gaW5zdGFsbF9hcHBjYWNoZSgpOwogICAgICAg
ICB9KQogICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7CiAgICAgICAgICAgcmV0dXJuIGlzX2FwcGNh
Y2hlZCgpOwpAQCAtNDgsMTAgKzc0LDYgQEAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKICAg
ICAgICAgICAgICAgdCwgU0VSVklDRV9XT1JLRVJfU0NSSVBULCBTRVJWSUNFX1dPUktFUl9TQ09Q
RSk7CiAgICAgICAgIH0pCiAgICAgICAudGhlbihmdW5jdGlvbihyKSB7Ci0gICAgICAgICAgdC5h
ZGRfY2xlYW51cChmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgcmV0dXJuIHNlcnZpY2Vfd29y
a2VyX3VucmVnaXN0ZXIodCwgU0VSVklDRV9XT1JLRVJfU0NPUEUpOwotICAgICAgICAgICAgfSk7
Ci0KICAgICAgICAgICByZXR1cm4gd2FpdF9mb3Jfc3RhdGUodCwgci5pbnN0YWxsaW5nLCAnYWN0
aXZhdGVkJyk7CiAgICAgICAgIH0pCiAgICAgICAudGhlbihmdW5jdGlvbigpIHsKQEAgLTYwLDcg
KzgyLDkgQEAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICAgIC50aGVuKGZ1bmN0aW9u
KHJlc3VsdCkgewogICAgICAgICAgIGFzc2VydF9mYWxzZShyZXN1bHQsICdidXQgc2VydmljZXdv
cmtlcnMgc2hvdWxkIHRha2UgcHJpb3JpdHknKTsKICAgICAgICAgICBmcmFtZXMuZm9yRWFjaChm
dW5jdGlvbihmKSB7IGYucmVtb3ZlKCk7IH0pOwotICAgICAgICB9KTsKKyAgICAgICAgICBzZXJ2
aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9kb25lKHQsIFNFUlZJQ0VfV09SS0VSX1NDT1BFKTsK
KyAgICAgICAgfSkKKyAgICAgIC5jYXRjaCh1bnJlYWNoZWRfcmVqZWN0aW9uKHQpKTsKICAgfSwg
J3NlcnZpY2V3b3JrZXJzIHRha2UgcHJpb3JpdHkgb3ZlciBhcHBjYWNoZXMnKTsKIAogPC9zY3Jp
cHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGFpbS1mZXRjaC13aXRoLWFwcGNh
Y2hlLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsYWltLWZldGNoLXdp
dGgtYXBwY2FjaGUuaHR0cHMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA4ZjJjMzllZTM5ZTMyNTRkMjUzNTFkNTBkY2Q5ODk2MDAyNWY5NjM5Li4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2Ns
YWltLWZldGNoLXdpdGgtYXBwY2FjaGUuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwK
QEAgLTEsNCArMCwwIEBACi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTogQXBwbGljYXRpb25DYWNo
ZSBpcyBkZXByZWNhdGVkLiBQbGVhc2UgdXNlIFNlcnZpY2VXb3JrZXJzIGluc3RlYWQuCi0KLVBB
U1MgZmV0Y2goKSBzaG91bGQgYmUgaW50ZXJjZXB0ZWQgYWZ0ZXIgdGhlIGNsaWVudCBpcyBjbGFp
bWVkLiAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xhaW0tZmV0Y2gtd2l0aC1h
cHBjYWNoZS5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xhaW0tZmV0Y2gtd2l0aC1h
cHBjYWNoZS5odHRwcy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0ODkwYTg0
YmExMGZhMTg2ZTJlMjEzZDY2ZDU4YTQ5MzdkMmM4NjA5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsYWltLWZldGNoLXdp
dGgtYXBwY2FjaGUuaHR0cHMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDgxICswLDAgQEAKLTwh
ZG9jdHlwZSBodG1sPgotPG1ldGEgY2hhcnNldD11dGYtOD4KLTx0aXRsZT48L3RpdGxlPgotPHNj
cmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9InJlc291cmNlcy90ZXN0LWhlbHBlcnMuc3ViLmpzIj48L3NjcmlwdD4KLTxib2R5PgotPHNj
cmlwdD4KLQotLy8gVGhpcyB0ZXN0IG1ha2VzIGEgZnJhbWUgY29udHJvbGxlZCBieSBBcHBDYWNo
ZSwgdGhlbiByZWdpc3RlcnMgYSBzZXJ2aWNlCi0vLyB3b3JrZXIgdGhhdCBjYWxscyBjbGFpbSgp
IHRvIGNvbnRyb2wgdGhlIGZyYW1lLiBBcHBDYWNoZSBzaG91bGQgYmUgY29tcGxldGVseQotLy8g
YnlwYXNzZWQgb25jZSB0aGUgc2VydmljZSB3b3JrZXIgY2xhaW1zIHRoZSBmcmFtZS4KLQotY29u
c3QgZmV0Y2hfdGV4dCA9IGFzeW5jIGZyYW1lID0+IHsKLSAgY29uc3QgcmVzcG9uc2UgPSBhd2Fp
dAotICAgIGZyYW1lLmNvbnRlbnRXaW5kb3cuZmV0Y2goJ2FwcGNhY2hlLW9yZGVyaW5nLmlzLWFw
cGNhY2hlZC5qcycpOwotICByZXR1cm4gYXdhaXQgcmVzcG9uc2UudGV4dCgpOwotfTsKLQotY29u
c3QgY2hlY2tfaXNfYXBwY2FjaGVkID0gYXN5bmMgZnJhbWUgPT4gewotICAvLyBUaGlzIHNob3Vs
ZCBGQUxMQkFDSyB0byBvcmRlcmluZy5pc19hcHBjYWNoZWQuanMgYXMgaW4gdGhlIG1hbmlmZXN0
Ci0gIC8vIGlmIHRoZSBhcHBjYWNoZSBpcyBlZmZlY3RpdmUuCi0gIGNvbnN0IHJlc3BvbnNlID0g
YXdhaXQKLSAgICBmcmFtZS5jb250ZW50V2luZG93LmZldGNoKCdhcHBjYWNoZS1vcmRlcmluZy5p
cy1hcHBjYWNoZWQ0MDQuanMnKTsKLSAgcmV0dXJuIGF3YWl0IHJlc3BvbnNlLm9rOwotfTsKLQot
cHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewotICBjb25zdCBzY29wZSA9ICdyZXNvdXJjZXMvJzsK
LSAgY29uc3Qgc2NyaXB0ID0gJ3Jlc291cmNlcy9jbGFpbS13b3JrZXIuanMnOwotCi0gIGF3YWl0
IGluc3RhbGxfYXBwY2FjaGVfb3JkZXJpbmdfbWFuaWZlc3QoKTsKLQotICAvLyBDcmVhdGUgdGhl
IHRlc3QgaWZyYW1lLgotICBjb25zdCBmcmFtZSA9IGF3YWl0IHdpdGhfaWZyYW1lKCdyZXNvdXJj
ZXMvYmxhbmsuaHRtbCcpOwotICB0LmFkZF9jbGVhbnVwKGFzeW5jICgpID0+IHsKLSAgICBpZiAo
ZnJhbWUpIGZyYW1lLnJlbW92ZSgpOwotICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lz
dGVyKHQsIHNjb3BlKTsKLSAgfSk7Ci0KLSAgLy8gQ2hlY2sgdGhhdCB0aGUgYXBwY2FjaGUgY29u
dHJvbHMgdGhlIGZyYW1lLgotICBhc3NlcnRfZXF1YWxzKGF3YWl0IGNoZWNrX2lzX2FwcGNhY2hl
ZChmcmFtZSksIHRydWUsCi0gICAgICAgICAgICAgICAgJ0FwcENhY2hlIHNob3VsZCBiZSBwcmVz
ZW50Jyk7Ci0KLSAgLy8gQ2hlY2sgdGhlIGNvbnRyb2xsZXIgYW5kIHRlc3Qgd2l0aCBmZXRjaC4K
LSAgYXNzZXJ0X2VxdWFscyhmcmFtZS5jb250ZW50V2luZG93Lm5hdmlnYXRvci5jb250cm9sbGVy
LCB1bmRlZmluZWQsCi0gICAgICAgICAgICAgICAgJ1Nob3VsZCBoYXZlIG5vIGNvbnRyb2xsZXIu
Jyk7Ci0gIGFzc2VydF9lcXVhbHMoYXdhaXQgZmV0Y2hfdGV4dChmcmFtZSksICd2YXIgaXNfYXBw
Y2FjaGVkID0gdHJ1ZTtcbicsCi0gICAgICAgICAgICAgICAgJ2ZldGNoKCkgc2hvdWxkIG5vdCBi
ZSBpbnRlcmNlcHRlZC4nKTsKLQotICAvLyBSZWdpc3RlciBhIHNlcnZpY2Ugd29ya2VyLgotICBs
ZXQgcmVnaXN0cmF0aW9uID0gYXdhaXQgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVn
aXN0ZXIodCwgc2NyaXB0LCBzY29wZSk7Ci0gIGNvbnN0IHdvcmtlciA9IHJlZ2lzdHJhdGlvbi5p
bnN0YWxsaW5nOwotICBhd2FpdCB3YWl0X2Zvcl9zdGF0ZSh0LCB3b3JrZXIsICdhY3RpdmF0ZWQn
KTsKLQotICAvLyBMZXQgdGhlIHNlcnZpY2Ugd29ya2VyIGNsYWltIHRoZSBpZnJhbWUuCi0gIGNv
bnN0IGNoYW5uZWwgPSBuZXcgTWVzc2FnZUNoYW5uZWwoKTsKLSAgY29uc3QgY2hlY2tfbWVzc2Fn
ZSA9IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gewotICAgIGNoYW5uZWwucG9ydDEub25tZXNzYWdl
ID0gYXN5bmMgZSA9PiB7Ci0gICAgICBhc3NlcnRfZXF1YWxzKGUuZGF0YSwgJ1BBU1MnLCAnV29y
a2VyIGNhbGwgdG8gY2xhaW0oKSBzaG91bGQgZnVsZmlsbC4nKTsKLSAgICAgIHJlc29sdmUoKTsK
LSAgICB9OwotICB9KTsKLSAgd29ya2VyLnBvc3RNZXNzYWdlKHtwb3J0OiBjaGFubmVsLnBvcnQy
fSwgW2NoYW5uZWwucG9ydDJdKTsKLSAgYXdhaXQgY2hlY2tfbWVzc2FnZTsKLQotICAvLyBDaGVj
ayB0aGF0IHRoZSBhcHBjYWNoZSBkb2VzIE5PVCBjb250cm9sIHRoZSBmcmFtZS4KLSAgYXNzZXJ0
X2VxdWFscyhhd2FpdCBjaGVja19pc19hcHBjYWNoZWQoZnJhbWUpLCBmYWxzZSwKLSAgICAgICAg
ICAgICAgICAnQXBwQ2FjaGUgc2hvdWxkIG5vdCBiZSBwcmVzZW50Jyk7Ci0KLSAgLy8gQ2hlY2sg
dGhlIGNvbnRyb2xsZXIgYW5kIHRlc3Qgd2l0aCBmZXRjaC4KLSAgcmVnaXN0cmF0aW9uID0gYXdh
aXQKLSAgICBmcmFtZS5jb250ZW50V2luZG93Lm5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLmdldFJl
Z2lzdHJhdGlvbihzY29wZSk7Ci0gIGFzc2VydF9lcXVhbHMoZnJhbWUuY29udGVudFdpbmRvdy5u
YXZpZ2F0b3Iuc2VydmljZVdvcmtlci5jb250cm9sbGVyLAotICAgICAgICAgICAgICAgIHJlZ2lz
dHJhdGlvbi5hY3RpdmUsICdpZnJhbWUgc2hvdWxkIGJlIGNsYWltZWQuJyk7Ci0gIGFzc2VydF9l
cXVhbHMoYXdhaXQgZmV0Y2hfdGV4dChmcmFtZSksICdJbnRlcmNlcHRlZCEnLAotICAgICAgICAg
ICAgICAgICdmZXRjaCgpIHNob3VsZCBiZSBpbnRlcmNlcHRlZC4nKTsKLX0sICdmZXRjaCgpIHNo
b3VsZCBiZSBpbnRlcmNlcHRlZCBhZnRlciB0aGUgY2xpZW50IGlzIGNsYWltZWQuJykKLQotPC9z
Y3JpcHQ+Ci08L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGFpbS1mZXRj
aC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xhaW0tZmV0Y2guaHR0cHMuaHRtbApp
bmRleCA0MDBiNTkzYWM5NjE5NDJmNmU5Mjc0YWVlOThiYWMyMjg1NmVhZjIyLi4wNTBjMWVhOTJl
ZjYwYjgyMTVmYWQ5Y2FiNTA0NjQ3MjU2YWQ3MjhhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9jbGFpbS1mZXRjaC5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsYWlt
LWZldGNoLmh0dHBzLmh0bWwKQEAgLTcsODAgKzcsNjMgQEAKIDxib2R5PgogPHNjcmlwdD4KIAot
YXN5bmMgZnVuY3Rpb24gdHJ5X2ZldGNoKGZldGNoX2Z1bmMsIHBhdGgpIHsKLSAgbGV0IHJlc3Bv
bnNlOwotICB0cnkgewotICAgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaF9mdW5jKHBhdGgpOwotICB9
IGNhdGNoIChlcnIpIHsKLSAgICB0aHJvdyAoYGZldGNoKCkgdGhyZXc6ICR7ZXJyfWApOwotICB9
Citwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgeworICB2YXIgZnJhbWU7CisgIHZhciByZXNvdXJj
ZSA9ICdzaW1wbGUudHh0JzsKIAotICBsZXQgcmVzcG9uc2VfdGV4dDsKLSAgdHJ5IHsKLSAgIHJl
c3BvbnNlX3RleHQgPSBhd2FpdCByZXNwb25zZS50ZXh0KCk7Ci0gIH0gY2F0Y2ggKGVycikgewot
ICAgdGhyb3cgKGB0ZXh0KCkgdGhyZXc6ICR7ZXJyfWApOwotICB9CisgIHZhciB3b3JrZXI7Cisg
IHZhciBzY29wZSA9ICdyZXNvdXJjZXMvJzsKKyAgdmFyIHNjcmlwdCA9ICdyZXNvdXJjZXMvY2xh
aW0td29ya2VyLmpzJzsKIAotICByZXR1cm4gcmVzcG9uc2VfdGV4dDsKLX0KKyAgcmV0dXJuIFBy
b21pc2UucmVzb2x2ZSgpCisgICAgLy8gQ3JlYXRlIHRoZSB0ZXN0IGlmcmFtZS4KKyAgICAudGhl
bigoKSA9PiB3aXRoX2lmcmFtZSgncmVzb3VyY2VzL2JsYW5rLmh0bWwnKSkKKyAgICAudGhlbihm
ID0+IGZyYW1lID0gZikKIAotcHJvbWlzZV90ZXN0KGFzeW5jIGZ1bmN0aW9uKHQpIHsKLSAgbGV0
IGZyYW1lOwotICBjb25zdCBzY29wZSA9ICdyZXNvdXJjZXMvJzsKLSAgY29uc3Qgc2NyaXB0ID0g
J3Jlc291cmNlcy9jbGFpbS13b3JrZXIuanMnOwotICB0LmFkZF9jbGVhbnVwKGFzeW5jICgpID0+
IHsKLSAgICBpZiAoZnJhbWUpCi0gICAgICBmcmFtZS5yZW1vdmUoKTsKLSAgICByZXR1cm4gc2Vy
dmljZV93b3JrZXJfdW5yZWdpc3Rlcih0LCBzY29wZSk7Ci0gIH0pOworICAgIC8vIENoZWNrIHRo
ZSBjb250cm9sbGVyIGFuZCB0ZXN0IHdpdGggZmV0Y2guCisgICAgLnRoZW4oKCkgPT4gYXNzZXJ0
X2VxdWFscyhmcmFtZS5jb250ZW50V2luZG93Lm5hdmlnYXRvci5jb250cm9sbGVyLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdW5kZWZpbmVkLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgJ1Nob3VsZCBoYXZlIG5vIGNvbnRyb2xsZXIuJykpCisgICAgLnRoZW4oKCkgPT4g
ZnJhbWUuY29udGVudFdpbmRvdy5mZXRjaChyZXNvdXJjZSkpCisgICAgLnRoZW4ocmVzcG9uc2Ug
PT4gcmVzcG9uc2UudGV4dCgpKQorICAgIC50aGVuKHJlc3BvbnNlX3RleHQgPT4gYXNzZXJ0X2Vx
dWFscyhyZXNwb25zZV90ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAnYSBzaW1wbGUgdGV4dCBmaWxlXG4nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAnZmV0Y2goKSBzaG91bGQgbm90IGJlIGludGVyY2VwdGVkLicpKQogCi0g
IGNvbnN0IHJlc291cmNlID0gJ3NpbXBsZS50eHQnOworICAgIC8vIFJlZ2lzdGVyIGEgc2Vydmlj
ZSB3b3JrZXIuCisgICAgLnRoZW4oKCkgPT4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRf
cmVnaXN0ZXIodCwgc2NyaXB0LCBzY29wZSkpCisgICAgLnRoZW4ociA9PiB3b3JrZXIgPSByLmlu
c3RhbGxpbmcpCisgICAgLnRoZW4oKCkgPT4gd2FpdF9mb3Jfc3RhdGUodCwgd29ya2VyLCAnYWN0
aXZhdGVkJykpCiAKLSAgLy8gQ3JlYXRlIHRoZSB0ZXN0IGZyYW1lLgotICBhd2FpdCBzZXJ2aWNl
X3dvcmtlcl91bnJlZ2lzdGVyKHQsIHNjb3BlKTsKLSAgZnJhbWUgPSBhd2FpdCB3aXRoX2lmcmFt
ZSgncmVzb3VyY2VzL2JsYW5rLmh0bWwnKTsKKyAgICAvLyBMZXQgdGhlIHNlcnZpY2Ugd29ya2Vy
IGNsYWltIHRoZSBpZnJhbWUuCisgICAgLnRoZW4oKCkgPT4geworICAgICAgdmFyIGNoYW5uZWwg
PSBuZXcgTWVzc2FnZUNoYW5uZWwoKTsKKyAgICAgIHZhciBzYXdfbWVzc2FnZSA9IG5ldyBQcm9t
aXNlKGZ1bmN0aW9uKHJlc29sdmUpIHsKKyAgICAgICAgY2hhbm5lbC5wb3J0MS5vbm1lc3NhZ2Ug
PSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLmRh
dGEsICdQQVNTJywKKyAgICAgICAgICAgICAgICAgICAgICAgICdXb3JrZXIgY2FsbCB0byBjbGFp
bSgpIHNob3VsZCBmdWxmaWxsLicpOworICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgICAgfSk7
CisgICAgICB9KTsKKyAgICAgIHdvcmtlci5wb3N0TWVzc2FnZSh7cG9ydDogY2hhbm5lbC5wb3J0
Mn0sIFtjaGFubmVsLnBvcnQyXSk7CisgICAgICByZXR1cm4gc2F3X21lc3NhZ2U7CisgICAgfSkK
IAotICAvLyBDaGVjayB0aGUgY29udHJvbGxlciBhbmQgdGVzdCB3aXRoIGZldGNoLgotICBhc3Nl
cnRfZXF1YWxzKGZyYW1lLmNvbnRlbnRXaW5kb3cubmF2aWdhdG9yLmNvbnRyb2xsZXIsIHVuZGVm
aW5lZCwKLSAgICAgICAgICAgICAgICAnU2hvdWxkIGhhdmUgbm8gY29udHJvbGxlci4nKTsKLSAg
bGV0IHJlc3BvbnNlOwotICB0cnkgewotICAgIHJlc3BvbnNlID0gYXdhaXQgdHJ5X2ZldGNoKGZy
YW1lLmNvbnRlbnRXaW5kb3cuZmV0Y2gsIHJlc291cmNlKTsKLSAgfSBjYXRjaCAoZXJyKSB7Ci0g
ICAgYXNzZXJ0X3VucmVhY2hlZChgdW5jb250cm9sbGVkIGZldGNoIGZhaWxlZDogJHtlcnJ9YCk7
Ci0gIH0KLSAgYXNzZXJ0X2VxdWFscyhyZXNwb25zZSwgJ2Egc2ltcGxlIHRleHQgZmlsZVxuJywK
LSAgICAgICAgICAgICAgICAnZmV0Y2goKSBzaG91bGQgbm90IGJlIGludGVyY2VwdGVkLicpOwor
ICAgIC8vIENoZWNrIHRoZSBjb250cm9sbGVyIGFuZCB0ZXN0IHdpdGggZmV0Y2guCisgICAgLnRo
ZW4oKCkgPT4gZnJhbWUuY29udGVudFdpbmRvdy5uYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5nZXRS
ZWdpc3RyYXRpb24oc2NvcGUpKQorICAgIC50aGVuKHIgPT4gYXNzZXJ0X2VxdWFscyhmcmFtZS5j
b250ZW50V2luZG93Lm5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLmNvbnRyb2xsZXIsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHIuYWN0aXZlLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAnVGVzdCBpZnJhbWUgc2hvdWxkIGJlIGNsYWltZWQuJykpCisgICAgLnRoZW4oKCkgPT4g
ZnJhbWUuY29udGVudFdpbmRvdy5mZXRjaChyZXNvdXJjZSkpCisgICAgLnRoZW4ocmVzcG9uc2Ug
PT4gcmVzcG9uc2UudGV4dCgpKQorICAgIC50aGVuKHJlc3BvbnNlX3RleHQgPT4gYXNzZXJ0X2Vx
dWFscyhyZXNwb25zZV90ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAnSW50ZXJjZXB0ZWQhJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgJ2ZldGNoKCkgc2hvdWxkIGJlIGludGVyY2VwdGVkLicpKQogCi0gIC8vIFJlZ2lzdGVy
IGEgc2VydmljZSB3b3JrZXIuCi0gIGNvbnN0IHJlZ2lzdHJhdGlvbiA9IGF3YWl0IG5hdmlnYXRv
ci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKHNjcmlwdCwge3Njb3BlfSk7Ci0gIGNvbnN0IHdvcmtl
ciA9IHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nOwotICBhd2FpdCB3YWl0X2Zvcl9zdGF0ZSh0LCB3
b3JrZXIsICdhY3RpdmF0ZWQnKTsKLQotICAvLyBUZWxsIHRoZSBzZXJ2aWNlIHdvcmtlciB0byBj
bGFpbSB0aGUgaWZyYW1lLgotICBjb25zdCBzYXdfbWVzc2FnZSA9IG5ldyBQcm9taXNlKChyZXNv
bHZlKSA9PiB7Ci0gICAgY29uc3QgY2hhbm5lbCA9IG5ldyBNZXNzYWdlQ2hhbm5lbCgpOwotICAg
IGNoYW5uZWwucG9ydDEub25tZXNzYWdlID0gdC5zdGVwX2Z1bmMoKGV2ZW50KSA9PiB7Ci0gICAg
ICByZXNvbHZlKGV2ZW50LmRhdGEpOwotICAgIH0pOwotICAgIHdvcmtlci5wb3N0TWVzc2FnZSh7
cG9ydDogY2hhbm5lbC5wb3J0Mn0sIFtjaGFubmVsLnBvcnQyXSk7Ci0gIH0pOwotICBjb25zdCBk
YXRhID0gYXdhaXQgc2F3X21lc3NhZ2U7Ci0gIGFzc2VydF9lcXVhbHMoZGF0YSwgJ1BBU1MnLCAn
V29ya2VyIGNhbGwgdG8gY2xhaW0oKSBzaG91bGQgZnVsZmlsbC4nKTsKLQotICAvLyBDaGVjayB0
aGUgY29udHJvbGxlciBhbmQgdGVzdCB3aXRoIGZldGNoLgotICBjb25zdCBjb250cm9sbGVyID0g
ZnJhbWUuY29udGVudFdpbmRvdy5uYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5jb250cm9sbGVyOwot
ICBhc3NlcnRfdHJ1ZShjb250cm9sbGVyIGluc3RhbmNlb2YgZnJhbWUuY29udGVudFdpbmRvdy5T
ZXJ2aWNlV29ya2VyLAotICAgICAgICAgICAgICAnaWZyYW1lIHNob3VsZCBiZSBjb250cm9sbGVk
LicpOwotICB0cnkgewotICAgIHJlc3BvbnNlID0gYXdhaXQgdHJ5X2ZldGNoKGZyYW1lLmNvbnRl
bnRXaW5kb3cuZmV0Y2gsIHJlc291cmNlKTsKLSAgfSBjYXRjaCAoZXJyKSB7Ci0gICAgYXNzZXJ0
X3VucmVhY2hlZChgY29udHJvbGxlZCBmZXRjaCBmYWlsZWQ6ICR7ZXJyfWApOwotICB9Ci0gIGFz
c2VydF9lcXVhbHMocmVzcG9uc2UsICdJbnRlcmNlcHRlZCEnLAotICAgICAgICAgICAgICAgICdm
ZXRjaCgpIHNob3VsZCBiZSBpbnRlcmNlcHRlZC4nKTsKLX0sICdmZXRjaCgpIHNob3VsZCBiZSBp
bnRlcmNlcHRlZCBhZnRlciB0aGUgY2xpZW50IGlzIGNsYWltZWQuJyk7CisgICAgLy8gQ2xlYW51
cCB0aGlzIHRlc3RjYXNlLgorICAgIC50aGVuKCgpID0+IGZyYW1lLnJlbW92ZSgpKQorICAgIC50
aGVuKCgpID0+IHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX2RvbmUodCwgc2NvcGUpKTsK
K30sICdmZXRjaCgpIHNob3VsZCBiZSBpbnRlcmNlcHRlZCBhZnRlciB0aGUgY2xpZW50IGlzIGNs
YWltZWQuJykKIAogPC9zY3JpcHQ+CiA8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9jbGFpbS1ub3QtdXNpbmctcmVnaXN0cmF0aW9uLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9jbGFpbS1ub3QtdXNpbmctcmVnaXN0cmF0aW9uLmh0dHBzLmh0bWwKaW5kZXggZmQ2
MWQwNWJhNGVhOGExYzQxNmViNmQ0YjExMjhmN2I2NWI0YjM1Yy4uMTEzOGI3NDE5Y2ZhYTc4ZDk5
ZjExNDE5NmZiNjg3MGFmZGY4YmQ2NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xh
aW0tbm90LXVzaW5nLXJlZ2lzdHJhdGlvbi5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL2NsYWltLW5vdC11c2luZy1yZWdpc3RyYXRpb24uaHR0cHMuaHRtbApAQCAtMTUsMTAgKzE1
LDYgQEAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICByZXR1cm4gc2VydmljZV93b3Jr
ZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIoCiAgICAgICAgIHQsIGluaXRfd29ya2VyX3VybCwg
aW5pdF9zY29wZSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKHJlZ2lzdHJhdGlvbikgewotICAgICAg
ICAgIHQuYWRkX2NsZWFudXAoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgIHJldHVybiBzZXJ2
aWNlX3dvcmtlcl91bnJlZ2lzdGVyKHQsIGluaXRfc2NvcGUpOwotICAgICAgICAgICAgfSk7Ci0K
ICAgICAgICAgICByZXR1cm4gd2FpdF9mb3Jfc3RhdGUodCwgcmVnaXN0cmF0aW9uLmluc3RhbGxp
bmcsICdhY3RpdmF0ZWQnKTsKICAgICAgICAgfSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKCkgewpA
QCAtMzksMTAgKzM1LDYgQEAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3Njb3BlOiBjbGFpbV9zY29w
ZX0pOwogICAgICAgICB9KQogICAgICAgLnRoZW4oZnVuY3Rpb24ocmVnaXN0cmF0aW9uKSB7Ci0g
ICAgICAgICAgdC5hZGRfY2xlYW51cChmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgcmV0dXJu
IHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXIodCwgY2xhaW1fc2NvcGUpOwotICAgICAgICAgICAg
fSk7Ci0KICAgICAgICAgICBjbGFpbV93b3JrZXIgPSByZWdpc3RyYXRpb24uaW5zdGFsbGluZzsK
ICAgICAgICAgICBjbGFpbV9yZWdpc3RyYXRpb24gPSByZWdpc3RyYXRpb247CiAgICAgICAgICAg
cmV0dXJuIHdhaXRfZm9yX3N0YXRlKHQsIHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLCAnYWN0aXZh
dGVkJyk7CkBAIC03NSw2ICs2Nyw5IEBAIHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7CiAgICAg
ICAgICAgZnJhbWUxLnJlbW92ZSgpOwogICAgICAgICAgIGZyYW1lMi5yZW1vdmUoKTsKICAgICAg
ICAgICByZXR1cm4gY2xhaW1fcmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIoKTsKKyAgICAgICAgfSkK
KyAgICAgIC50aGVuKGZ1bmN0aW9uKCkgeworICAgICAgICAgIHJldHVybiBzZXJ2aWNlX3dvcmtl
cl91bnJlZ2lzdGVyX2FuZF9kb25lKHQsIGluaXRfc2NvcGUpOwogICAgICAgICB9KTsKICAgfSwg
J1Rlc3QgY2xhaW0gY2xpZW50IHdoaWNoIGlzIG5vdCB1c2luZyByZWdpc3RyYXRpb24nKTsKIApA
QCAtOTEsMTAgKzg2LDYgQEAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICAgICAgICAg
ICAgY2xhaW1fd29ya2VyX3VybCwge3Njb3BlOiBjbGFpbV9zY29wZX0pOwogICAgICAgICB9KQog
ICAgICAgLnRoZW4oZnVuY3Rpb24ocmVnaXN0cmF0aW9uKSB7Ci0gICAgICAgICAgdC5hZGRfY2xl
YW51cChmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3Vu
cmVnaXN0ZXIodCwgY2xhaW1fc2NvcGUpOwotICAgICAgICAgICAgfSk7Ci0KICAgICAgICAgICBj
bGFpbV93b3JrZXIgPSByZWdpc3RyYXRpb24uaW5zdGFsbGluZzsKICAgICAgICAgICByZXR1cm4g
d2FpdF9mb3Jfc3RhdGUodCwgcmVnaXN0cmF0aW9uLmluc3RhbGxpbmcsICdhY3RpdmF0ZWQnKTsK
ICAgICAgICAgfSkKQEAgLTEwMywxMCArOTQsNiBAQCBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkg
ewogICAgICAgICAgICAgICBpbnN0YWxsaW5nX3dvcmtlcl91cmwsIHtzY29wZTogc2NvcGV9KTsK
ICAgICAgICAgfSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKCkgewotICAgICAgICAgIHQuYWRkX2Ns
ZWFudXAoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91
bnJlZ2lzdGVyKHQsIHNjb3BlKTsKLSAgICAgICAgICAgIH0pOwotCiAgICAgICAgICAgdmFyIGNo
YW5uZWwgPSBuZXcgTWVzc2FnZUNoYW5uZWwoKTsKICAgICAgICAgICB2YXIgc2F3X21lc3NhZ2Ug
PSBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlKSB7CiAgICAgICAgICAgICAgIGNoYW5uZWwu
cG9ydDEub25tZXNzYWdlID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewpAQCAtMTI0LDYgKzEx
MSwxMCBAQCBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewogICAgICAgICAgICAgICAnRnJhbWUg
c2hvdWxkIG5vdCBiZSBjbGFpbWVkIHdoZW4gYSBsb25nZXItbWF0Y2hlZCAnICsKICAgICAgICAg
ICAgICAgJ3JlZ2lzdHJhdGlvbiBleGlzdHMnKTsKICAgICAgICAgICBmcmFtZS5yZW1vdmUoKTsK
KyAgICAgICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcih0LCBjbGFpbV9zY29w
ZSk7CisgICAgICAgIH0pCisgICAgICAudGhlbihmdW5jdGlvbigpIHsKKyAgICAgICAgICByZXR1
cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfZG9uZSh0LCBzY29wZSk7CiAgICAgICAg
IH0pOwogICB9LCAnVGVzdCBjbGFpbSBjbGllbnQgd2hlbiB0aGVyZVwncyBhIGxvbmdlci1tYXRj
aGVkIHJlZ2lzdHJhdGlvbiBub3QgJyArCiAgICAgICdhbHJlYWR5IHVzZWQgYnkgdGhlIHBhZ2Un
KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsYWltLXNoYXJlZC13b3JrZXItZmV0
Y2guaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsYWltLXNoYXJlZC13b3JrZXItZmV0
Y2guaHR0cHMuaHRtbAppbmRleCBmNWY0NDg4NmJhYTJiZmYzYmM3YjdlMDEzYTg1NmE2ZDkwY2Vi
MjZjLi5hMDdkYjdiNzVjN2E0YzI5ZTljZTc1NjE1MmNkMGQ0ZTI2OWU4OTEyIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9jbGFpbS1zaGFyZWQtd29ya2VyLWZldGNoLmh0dHBzLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xhaW0tc2hhcmVkLXdvcmtlci1mZXRjaC5odHRwcy5o
dG1sCkBAIC0zMCwxMyArMzAsOSBAQCBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZmV0Y2goKSBzaG91bGQgbm90IGJl
IGludGVyY2VwdGVkLicpKQogICAgIC8vIFJlZ2lzdGVyIGEgc2VydmljZSB3b3JrZXIuCiAgICAg
LnRoZW4oKCkgPT4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgc2Ny
aXB0LCBzY29wZSkpCi0gICAgLnRoZW4ociA9PiB7Ci0gICAgICAgIHQuYWRkX2NsZWFudXAoKCkg
PT4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcih0LCBzY29wZSkpOworICAgIC50aGVuKHIgPT4g
d29ya2VyID0gci5pbnN0YWxsaW5nKQorICAgIC50aGVuKCgpID0+IHdhaXRfZm9yX3N0YXRlKHQs
IHdvcmtlciwgJ2FjdGl2YXRlZCcpKQogCi0gICAgICAgIHdvcmtlciA9IHIuaW5zdGFsbGluZzsK
LQotICAgICAgICByZXR1cm4gd2FpdF9mb3Jfc3RhdGUodCwgd29ya2VyLCAnYWN0aXZhdGVkJykK
LSAgICAgIH0pCiAgICAgLy8gTGV0IHRoZSBzZXJ2aWNlIHdvcmtlciBjbGFpbSB0aGUgaWZyYW1l
IGFuZCB0aGUgc2hhcmVkIHdvcmtlci4KICAgICAudGhlbigoKSA9PiB7CiAgICAgICB2YXIgY2hh
bm5lbCA9IG5ldyBNZXNzYWdlQ2hhbm5lbCgpOwpAQCAtNjQsNyArNjAsOCBAQCBwcm9taXNlX3Rl
c3QoZnVuY3Rpb24odCkgewogICAgICAgICAgICAgICAgICAgICAgICAgJ2ZldGNoKCkgaW4gdGhl
IHNoYXJlZCB3b3JrZXIgc2hvdWxkIGJlIGludGVyY2VwdGVkLicpKQogCiAgICAgLy8gQ2xlYW51
cCB0aGlzIHRlc3RjYXNlLgotICAgIC50aGVuKCgpID0+IGZyYW1lLnJlbW92ZSgpKTsKKyAgICAu
dGhlbigoKSA9PiBmcmFtZS5yZW1vdmUoKSkKKyAgICAudGhlbigoKSA9PiBzZXJ2aWNlX3dvcmtl
cl91bnJlZ2lzdGVyX2FuZF9kb25lKHQsIHNjb3BlKSk7CiB9LCAnZmV0Y2goKSBpbiBTaGFyZWRX
b3JrZXIgc2hvdWxkIGJlIGludGVyY2VwdGVkIGFmdGVyIHRoZSBjbGllbnQgaXMgY2xhaW1lZC4n
KQogCiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsYWltLXVzaW5n
LXJlZ2lzdHJhdGlvbi5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xhaW0tdXNpbmct
cmVnaXN0cmF0aW9uLmh0dHBzLmh0bWwKaW5kZXggOGEyYTZmZjI1YzgyZDhkNmRlMjZjY2E1MjFk
YTk5ZjhlZjZkNWZiZi4uN2Q3N2QzODQ4MzdkM2M0MTI3OGJlYTZmNDE0YTY3MTllODBkYzUyMCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xhaW0tdXNpbmctcmVnaXN0cmF0aW9uLmh0
dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xhaW0tdXNpbmctcmVnaXN0cmF0aW9u
Lmh0dHBzLmh0bWwKQEAgLTEzLDEwICsxMyw2IEBAIHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7
CiAgICAgdmFyIHdvcmtlciwgc3dfcmVnaXN0cmF0aW9uLCBmcmFtZTsKICAgICByZXR1cm4gc2Vy
dmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgdXJsMSwgc2NvcGUpCiAgICAg
ICAudGhlbihmdW5jdGlvbihyZWdpc3RyYXRpb24pIHsKLSAgICAgICAgICB0LmFkZF9jbGVhbnVw
KGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdp
c3Rlcih0LCBzY29wZSk7Ci0gICAgICAgICAgICB9KTsKLQogICAgICAgICAgIHJldHVybiB3YWl0
X2Zvcl9zdGF0ZSh0LCByZWdpc3RyYXRpb24uaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOwogICAg
ICAgICB9KQogICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7CkBAIC01NCw2ICs1MCw5IEBAIHByb21p
c2VfdGVzdChmdW5jdGlvbih0KSB7CiAgICAgICAgICAgICAgICdGcmFtZTEgY29udHJvbGxlciBz
Y3JpcHRVUkwgc2hvdWxkIGJlIGNoYW5nZWQgdG8gdXJsMicpOwogICAgICAgICAgIGZyYW1lLnJl
bW92ZSgpOwogICAgICAgICAgIHJldHVybiBzd19yZWdpc3RyYXRpb24udW5yZWdpc3RlcigpOwor
ICAgICAgICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7CisgICAgICAgICAgcmV0dXJuIHNl
cnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX2RvbmUodCwgc2NvcGUpOwogICAgICAgICB9KTsK
ICAgfSwgJ1Rlc3Qgd29ya2VyIGNsYWltcyBjbGllbnQgd2hpY2ggaXMgdXNpbmcgYW5vdGhlciBy
ZWdpc3RyYXRpb24nKTsKIApAQCAtNjQsMTAgKzYzLDYgQEAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9u
KHQpIHsKICAgICB2YXIgZnJhbWUsIHdvcmtlcjsKICAgICByZXR1cm4gc2VydmljZV93b3JrZXJf
dW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgdXJsMSwgc2NvcGUpCiAgICAgICAudGhlbihmdW5j
dGlvbihyZWdpc3RyYXRpb24pIHsKLSAgICAgICAgICB0LmFkZF9jbGVhbnVwKGZ1bmN0aW9uKCkg
ewotICAgICAgICAgICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcih0LCBzY29w
ZSk7Ci0gICAgICAgICAgICB9KTsKLQogICAgICAgICAgIHJldHVybiB3YWl0X2Zvcl9zdGF0ZSh0
LCByZWdpc3RyYXRpb24uaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOwogICAgICAgICB9KQogICAg
ICAgLnRoZW4oZnVuY3Rpb24oKSB7CkBAIC05Niw2ICs5MSw3IEBAIHByb21pc2VfdGVzdChmdW5j
dGlvbih0KSB7CiAgICAgICAgIH0pCiAgICAgICAudGhlbihmdW5jdGlvbigpIHsKICAgICAgICAg
ICBmcmFtZS5yZW1vdmUoKTsKKyAgICAgICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdp
c3Rlcl9hbmRfZG9uZSh0LCBzY29wZSk7CiAgICAgICAgIH0pOwogICB9LCAnVGVzdCBmb3IgdGhl
IHdhaXRpbmcgd29ya2VyIGNsYWltcyBhIGNsaWVudCB3aGljaCBpcyB1c2luZyB0aGUgdGhlICcg
KwogICAgICAnc2FtZSByZWdpc3RyYXRpb24nKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL2NsYWltLXdvcmtlci1mZXRjaC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9jbGFpbS13b3JrZXItZmV0Y2guaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IDdjMjVkYTBl
YjA1MDczM2RiOTRhMDhjMzJlM2EzYjg2MmQ1OWEzNmUuLjY0MGE0YjEyMjc0NTU0YTYyNjg4MTY5
OTY2YTVjMDQ0ZDQzZWRhN2IgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsYWltLXdv
cmtlci1mZXRjaC5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xh
aW0td29ya2VyLWZldGNoLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMSwzICsxLDQgQEAKKyAKIAog
UEFTUyBmZXRjaCgpIGluIFdvcmtlciBzaG91bGQgYmUgaW50ZXJjZXB0ZWQgYWZ0ZXIgdGhlIGNs
aWVudCBpcyBjbGFpbWVkLiAKIEZBSUwgZmV0Y2goKSBpbiBuZXN0ZWQgV29ya2VyIHNob3VsZCBi
ZSBpbnRlcmNlcHRlZCBhZnRlciB0aGUgY2xpZW50IGlzIGNsYWltZWQuIGFzc2VydF9lcXVhbHM6
IGZldGNoKCkgc2hvdWxkIG5vdCBiZSBpbnRlcmNlcHRlZC4gZXhwZWN0ZWQgImEgc2ltcGxlIHRl
eHQgZmlsZVxuIiBidXQgZ290ICJGYWlsOiB1bmRlZmluZWQiCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9jbGFpbS13b3JrZXItZmV0Y2guaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL2NsYWltLXdvcmtlci1mZXRjaC5odHRwcy5odG1sCmluZGV4IDRiNDlhODE1MmE0MmM5ZTQ1
MTA0MTM5YjQ2YjlmYTU2NzYyZGU2YmIuLmMyYzI1NGNhNjVjMzZhZWE5NDJhOGE3N2JkNjMwZjJh
NjZkY2Y5ODIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsYWltLXdvcmtlci1mZXRj
aC5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsYWltLXdvcmtlci1mZXRjaC5o
dHRwcy5odG1sCkBAIC0xNSwyMiArMTUsMjAgQEAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsK
ICAgcmV0dXJuIHJ1blRlc3QodCwgJ3Jlc291cmNlcy9jbGFpbS1uZXN0ZWQtd29ya2VyLWZldGNo
LWlmcmFtZS5odG1sJyk7CiB9LCAnZmV0Y2goKSBpbiBuZXN0ZWQgV29ya2VyIHNob3VsZCBiZSBp
bnRlcmNlcHRlZCBhZnRlciB0aGUgY2xpZW50IGlzIGNsYWltZWQuJyk7CiAKK3ZhciBmcmFtZTsK
K3ZhciByZWdpc3RyYXRpb247CisKIGZ1bmN0aW9uIHJ1blRlc3QodCwgaWZyYW1lX3VybCkgewog
ICB2YXIgcmVzb3VyY2UgPSAnc2ltcGxlLnR4dCc7CiAKLSAgdmFyIGZyYW1lOwotICB2YXIgcmVn
aXN0cmF0aW9uOwogICB2YXIgd29ya2VyOwogICB2YXIgc2NvcGUgPSAncmVzb3VyY2VzLyc7CiAg
IHZhciBzY3JpcHQgPSAncmVzb3VyY2VzL2NsYWltLXdvcmtlci5qcyc7CiAKLSAgcmV0dXJuIFBy
b21pc2UucmVzb2x2ZSgpCisgIGNvbnN0IHRlc3RfcmVzdWx0ID0gUHJvbWlzZS5yZXNvbHZlKCkK
ICAgICAvLyBDcmVhdGUgdGhlIHRlc3QgaWZyYW1lIHdpdGggYSBkZWRpY2F0ZWQgd29ya2VyLgog
ICAgIC50aGVuKCgpID0+IHdpdGhfaWZyYW1lKGlmcmFtZV91cmwpKQotICAgIC50aGVuKGYgPT4g
ewotICAgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBmLnJlbW92ZSgpKTsKLSAgICAgIGZyYW1lID0g
ZjsKLSAgICB9KQorICAgIC50aGVuKGYgPT4gZnJhbWUgPSBmKQogCiAgICAgLy8gQ2hlY2sgdGhl
IGNvbnRyb2xsZXIgYW5kIHRlc3Qgd2l0aCBmZXRjaCBpbiB0aGUgd29ya2VyLgogICAgIC50aGVu
KCgpID0+IGFzc2VydF9lcXVhbHMoZnJhbWUuY29udGVudFdpbmRvdy5uYXZpZ2F0b3IuY29udHJv
bGxlciwKQEAgLTQyLDEwICs0MCw3IEBAIGZ1bmN0aW9uIHJ1blRlc3QodCwgaWZyYW1lX3VybCkg
ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZmV0Y2goKSBzaG91
bGQgbm90IGJlIGludGVyY2VwdGVkLicpKQogICAgIC8vIFJlZ2lzdGVyIGEgc2VydmljZSB3b3Jr
ZXIuCiAgICAgLnRoZW4oKCkgPT4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0
ZXIodCwgc2NyaXB0LCBzY29wZSkpCi0gICAgLnRoZW4ociA9PiB7Ci0gICAgICB0LmFkZF9jbGVh
bnVwKCgpID0+IHIudW5yZWdpc3RlcigpKTsKLSAgICAgIHdvcmtlciA9IHIuaW5zdGFsbGluZzsK
LSAgICB9KQorICAgIC50aGVuKHIgPT4gd29ya2VyID0gci5pbnN0YWxsaW5nKQogICAgIC50aGVu
KCgpID0+IHdhaXRfZm9yX3N0YXRlKHQsIHdvcmtlciwgJ2FjdGl2YXRlZCcpKQogCiAgICAgLy8g
TGV0IHRoZSBzZXJ2aWNlIHdvcmtlciBjbGFpbSB0aGUgaWZyYW1lIGFuZCB0aGUgd29ya2VyLgpA
QCAtNzQsNiArNjksMTggQEAgZnVuY3Rpb24gcnVuVGVzdCh0LCBpZnJhbWVfdXJsKSB7CiAgICAg
ICAgICAgYXNzZXJ0X2VxdWFscyhyZXNwb25zZV90ZXh0LAogICAgICAgICAgICAgICAgICAgICAg
ICAgJ0ludGVyY2VwdGVkIScsCiAgICAgICAgICAgICAgICAgICAgICAgICAnZmV0Y2goKSBpbiB0
aGUgd29ya2VyIHNob3VsZCBiZSBpbnRlcmNlcHRlZC4nKSk7CisKKyAgICAvLyBDbGVhbnVwIHRo
aXMgdGVzdGNhc2UuCisgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpCisgICAgICAgIC50aGVu
KGNsZWFudXAsIGNsZWFudXApCisgICAgICAgIC50aGVuKCgpID0+IHsgcmV0dXJuIHRlc3RfcmVz
dWx0OyB9KTsKK30KKworY29uc3QgY2xlYW51cCA9IGFzeW5jICgpID0+IHsKKyAgaWYgKHJlZ2lz
dHJhdGlvbikKKyAgICBhd2FpdCByZWdpc3RyYXRpb24udW5yZWdpc3RlcigpOworICBpZiAoZnJh
bWUpCisgICAgZnJhbWUucmVtb3ZlKCk7CiB9CiAKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvY2xpZW50LWlkLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9j
bGllbnQtaWQuaHR0cHMuaHRtbAppbmRleCBiOTNiMzQxODk5OTlmZTM3ZDg5ZDI3ZmJhMWQ0NDAw
OTk0YjI3NmNiLi5hNTNjMTBjOTY5MTkxOTA0YjQyMTQ3YmI1ODcxZWU3OTdiMDhiMzYyIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGllbnQtaWQuaHR0cHMuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9jbGllbnQtaWQuaHR0cHMuaHRtbApAQCAtNCwxNyArNCwxNSBAQAogPHNj
cmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgogPHNj
cmlwdCBzcmM9InJlc291cmNlcy90ZXN0LWhlbHBlcnMuc3ViLmpzIj48L3NjcmlwdD4KIDxzY3Jp
cHQ+Cit2YXIgdGVzdDsKIHZhciBzY29wZSA9ICdyZXNvdXJjZXMvYmxhbmsuaHRtbD9jbGllbnQt
aWQnOwogdmFyIGZyYW1lMSwgZnJhbWUyOwogCi1wcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewot
ICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3RlcigKK2FzeW5j
X3Rlc3QoZnVuY3Rpb24odCkgeworICAgIHRlc3QgPSB0OworICAgIHNlcnZpY2Vfd29ya2VyX3Vu
cmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKAogICAgICAgICB0LCAncmVzb3VyY2VzL2NsaWVudC1pZC13
b3JrZXIuanMnLCBzY29wZSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKHJlZ2lzdHJhdGlvbikgewot
ICAgICAgICAgIHQuYWRkX2NsZWFudXAoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgIHJldHVy
biBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyKHQsIHNjb3BlKTsKLSAgICAgICAgICAgIH0pOwot
CiAgICAgICAgICAgcmV0dXJuIHdhaXRfZm9yX3N0YXRlKHQsIHJlZ2lzdHJhdGlvbi5pbnN0YWxs
aW5nLCAnYWN0aXZhdGVkJyk7CiAgICAgICAgIH0pCiAgICAgICAudGhlbihmdW5jdGlvbigpIHsg
cmV0dXJuIHdpdGhfaWZyYW1lKHNjb3BlICsgJyMxJyk7IH0pCkBAIC0yNywxNSArMjUsMTEgQEAg
cHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICAgIC50aGVuKGZ1bmN0aW9uKGYpIHsKICAg
ICAgICAgICBmcmFtZTIgPSBmOwogICAgICAgICAgIHZhciBjaGFubmVsID0gbmV3IE1lc3NhZ2VD
aGFubmVsKCk7Ci0KLSAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2
ZSwgcmVqZWN0KSB7Ci0gICAgICAgICAgICAgIGNoYW5uZWwucG9ydDEub25tZXNzYWdlID0gcmVz
b2x2ZTsKLSAgICAgICAgICAgICAgY2hhbm5lbC5wb3J0MS5vbm1lc3NhZ2VlcnJvciA9IHJlamVj
dDsKLSAgICAgICAgICAgICAgZi5jb250ZW50V2luZG93Lm5hdmlnYXRvci5zZXJ2aWNlV29ya2Vy
LmNvbnRyb2xsZXIucG9zdE1lc3NhZ2UoCi0gICAgICAgICAgICAgICAgICB7cG9ydDpjaGFubmVs
LnBvcnQyfSwgW2NoYW5uZWwucG9ydDJdKTsKLSAgICAgICAgICAgIH0pOworICAgICAgICAgIGNo
YW5uZWwucG9ydDEub25tZXNzYWdlID0gdC5zdGVwX2Z1bmMob25fbWVzc2FnZSk7CisgICAgICAg
ICAgZi5jb250ZW50V2luZG93Lm5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLmNvbnRyb2xsZXIucG9z
dE1lc3NhZ2UoCisgICAgICAgICAgICAgIHtwb3J0OmNoYW5uZWwucG9ydDJ9LCBbY2hhbm5lbC5w
b3J0Ml0pOwogICAgICAgICB9KQotICAgICAgLnRoZW4ob25fbWVzc2FnZSk7CisgICAgICAuY2F0
Y2godW5yZWFjaGVkX3JlamVjdGlvbih0KSk7CiAgIH0sICdDbGllbnQuaWQgcmV0dXJucyB0aGUg
Y2xpZW50XCdzIElELicpOwogCiBmdW5jdGlvbiBvbl9tZXNzYWdlKGUpIHsKQEAgLTU2LDUgKzUw
LDYgQEAgZnVuY3Rpb24gb25fbWVzc2FnZShlKSB7CiAgIGFzc2VydF9lcXVhbHMoZS5kYXRhWzFd
LCBlLmRhdGFbM10pOwogICBmcmFtZTEucmVtb3ZlKCk7CiAgIGZyYW1lMi5yZW1vdmUoKTsKKyAg
c2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfZG9uZSh0ZXN0LCBzY29wZSk7CiB9CiA8L3Nj
cmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsaWVudHMtZ2V0LWNsaWVudC10
eXBlcy5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xpZW50cy1nZXQtY2xpZW50LXR5
cGVzLmh0dHBzLmh0bWwKaW5kZXggNjNlM2U1MWIzMjAyZGU5MjdkODk4MzNiMzEwMzU3OTIzNjlh
ZWMzOS4uODk3ZTM2ODllZDM0ZjFmMmFiYWZmZmI2ZTRhNmU0NzQwOGJkMWYwMyAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvY2xpZW50cy1nZXQtY2xpZW50LXR5cGVzLmh0dHBzLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xpZW50cy1nZXQtY2xpZW50LXR5cGVzLmh0dHBzLmh0
bWwKQEAgLTksMTMgKzksMTEgQEAgdmFyIGZyYW1lX3VybCA9IHNjb3BlICsgJy1mcmFtZS5odG1s
JzsKIHZhciBzaGFyZWRfd29ya2VyX3VybCA9IHNjb3BlICsgJy1zaGFyZWQtd29ya2VyLmpzJzsK
IHZhciB3b3JrZXJfdXJsID0gc2NvcGUgKyAnLXdvcmtlci5qcyc7CiB2YXIgY2xpZW50X2lkcyA9
IFtdOwotdmFyIHJlZ2lzdHJhdGlvbjsKIHZhciBmcmFtZTsKIHByb21pc2VfdGVzdChmdW5jdGlv
bih0KSB7CiAgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVy
KAogICAgICAgICB0LCAncmVzb3VyY2VzL2NsaWVudHMtZ2V0LXdvcmtlci5qcycsIHNjb3BlKQot
ICAgICAgLnRoZW4oZnVuY3Rpb24ocikgewotICAgICAgICAgIHJlZ2lzdHJhdGlvbiA9IHI7Cisg
ICAgICAudGhlbihmdW5jdGlvbihyZWdpc3RyYXRpb24pIHsKICAgICAgICAgICBhZGRfY29tcGxl
dGlvbl9jYWxsYmFjayhmdW5jdGlvbigpIHsgcmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIoKTsgfSk7
CiAgICAgICAgICAgcmV0dXJuIHdhaXRfZm9yX3N0YXRlKHQsIHJlZ2lzdHJhdGlvbi5pbnN0YWxs
aW5nLCAnYWN0aXZhdGVkJyk7CiAgICAgICAgIH0pCkBAIC02MSwxMCArNTksMTIgQEAgcHJvbWlz
ZV90ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICAgICAgfSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKGNs
aWVudF9pZCkgewogICAgICAgICAgIGNsaWVudF9pZHMucHVzaChjbGllbnRfaWQpOworICAgICAg
ICAgIHZhciBjaGFubmVsID0gbmV3IE1lc3NhZ2VDaGFubmVsKCk7CiAgICAgICAgICAgdmFyIHNh
d19tZXNzYWdlID0gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSkgewotICAgICAgICAgICAg
ICBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5vbm1lc3NhZ2UgPSByZXNvbHZlOworICAgICAgICAg
ICAgICBjaGFubmVsLnBvcnQxLm9ubWVzc2FnZSA9IHJlc29sdmU7CiAgICAgICAgICAgICB9KTsK
LSAgICAgICAgICByZWdpc3RyYXRpb24uYWN0aXZlLnBvc3RNZXNzYWdlKHtjbGllbnRJZHM6IGNs
aWVudF9pZHN9KTsKKyAgICAgICAgICBmcmFtZS5jb250ZW50V2luZG93Lm5hdmlnYXRvci5zZXJ2
aWNlV29ya2VyLmNvbnRyb2xsZXIucG9zdE1lc3NhZ2UoCisgICAgICAgICAgICAgIHtwb3J0OiBj
aGFubmVsLnBvcnQyLCBjbGllbnRJZHM6IGNsaWVudF9pZHN9LCBbY2hhbm5lbC5wb3J0Ml0pOwog
ICAgICAgICAgIHJldHVybiBzYXdfbWVzc2FnZTsKICAgICAgICAgfSkKICAgICAgIC50aGVuKGZ1
bmN0aW9uKGUpIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsaWVudHMtZ2V0LXJl
c3VsdGluZ0NsaWVudElkLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2Ns
aWVudHMtZ2V0LXJlc3VsdGluZ0NsaWVudElkLmh0dHBzLWV4cGVjdGVkLnR4dApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggODI3NDU4NmU4MDdmMmMyZDdmODRiZGY1NWQ2MWVjMTg3Zjg2
MzAwNS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9jbGllbnRzLWdldC1yZXN1bHRpbmdDbGllbnRJZC5odHRwcy1leHBlY3Rl
ZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw4ICswLDAgQEAKLQotUEFTUyBnbG9iYWwgc2V0dXAg
Ci1GQUlMIGdldChyZXN1bHRpbmdDbGllbnRJZCkgZm9yIHNhbWUtb3JpZ2luIGRvY3VtZW50IGFz
c2VydF9lcXVhbHM6IHByb21pc2VWYWx1ZSBleHBlY3RlZCAiY2xpZW50IiBidXQgZ290ICJ1bmRl
ZmluZWRWYWx1ZSIKLUZBSUwgZ2V0KHJlc3VsdGluZ0NsaWVudElkKSBvbiBjcm9zcy1vcmlnaW4g
cmVkaXJlY3QgYXNzZXJ0X2VxdWFsczogZ2V0KGV2ZW50LnJlc3VsdGluZ0NsaWVudElkKSBpbiB0
aGUgZmV0Y2ggZXZlbnQgc2hvdWxkIGZ1bGZpbGwgZXhwZWN0ZWQgKHN0cmluZykgImZ1bGZpbGxl
ZCIgYnV0IGdvdCAodW5kZWZpbmVkKSB1bmRlZmluZWQKLUZBSUwgZ2V0KHJlc3VsdGluZ0NsaWVu
dElkKSBmb3IgZG9jdW1lbnQgc2FuZGJveGVkIGJ5IENTUCBoZWFkZXIgYXNzZXJ0X2VxdWFsczog
Z2V0KGV2ZW50LnJlc3VsdGluZ0NsaWVudElkKSBpbiB0aGUgZmV0Y2ggZXZlbnQgc2hvdWxkIGZ1
bGZpbGwgZXhwZWN0ZWQgKHN0cmluZykgImZ1bGZpbGxlZCIgYnV0IGdvdCAodW5kZWZpbmVkKSB1
bmRlZmluZWQKLUZBSUwgZ2V0KHJlc3VsdGluZ0NsaWVudElkKSBmb3IgZG9jdW1lbnQgc2FuZGJv
eGVkIGJ5IENTUCBoZWFkZXIgd2l0aCBhbGxvdy1zYW1lLW9yaWdpbiBhc3NlcnRfZXF1YWxzOiBn
ZXQoZXZlbnQucmVzdWx0aW5nQ2xpZW50SWQpIGluIHRoZSBmZXRjaCBldmVudCBzaG91bGQgZnVs
ZmlsbCBleHBlY3RlZCAoc3RyaW5nKSAiZnVsZmlsbGVkIiBidXQgZ290ICh1bmRlZmluZWQpIHVu
ZGVmaW5lZAotUEFTUyBnbG9iYWwgY2xlYW51cCAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvY2xpZW50cy1nZXQtcmVzdWx0aW5nQ2xpZW50SWQuaHR0cHMuaHRtbCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL2NsaWVudHMtZ2V0LXJlc3VsdGluZ0NsaWVudElkLmh0dHBzLmh0bWwKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM0MTljZjE0YjUyM2RiNDFhZjcwYzc4OTZkNGFhYTQ5
NzQ0MWZiOWIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvY2xpZW50cy1nZXQtcmVzdWx0aW5nQ2xpZW50SWQuaHR0cHMuaHRt
bAorKysgL2Rldi9udWxsCkBAIC0xLDE3NyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxtZXRh
IGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5UZXN0IGNsaWVudHMuZ2V0KHJlc3VsdGluZ0NsaWVu
dElkKTwvdGl0bGU+Ci08c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz0iL2NvbW1vbi9nZXQtaG9zdC1pbmZvLnN1Yi5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Rlc3QtaGVscGVycy5zdWIuanMiPjwvc2NyaXB0
PgotPHNjcmlwdD4KLWNvbnN0IHNjb3BlID0gInJlc291cmNlcy8iOwotbGV0IHdvcmtlcjsKLQot
Ly8gU2V0dXAuIEtlZXAgdGhpcyBhcyB0aGUgZmlyc3QgcHJvbWlzZV90ZXN0LgotcHJvbWlzZV90
ZXN0KGFzeW5jICh0KSA9PiB7Ci0gIGNvbnN0IHJlZ2lzdHJhdGlvbiA9IGF3YWl0IHNlcnZpY2Vf
d29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKAotICAgICAgdCwgJ3Jlc291cmNlcy9nZXQt
cmVzdWx0aW5nQ2xpZW50SWQtd29ya2VyLmpzJywKLSAgICAgIHNjb3BlKTsKLSAgd29ya2VyID0g
cmVnaXN0cmF0aW9uLmluc3RhbGxpbmc7Ci0gIGF3YWl0IHdhaXRfZm9yX3N0YXRlKHQsIHdvcmtl
ciwgJ2FjdGl2YXRlZCcpOwotfSwgJ2dsb2JhbCBzZXR1cCcpOwotCi0vLyBTZW5kcyB8Y29tbWFu
ZHwgdG8gdGhlIHdvcmtlciBhbmQgcmV0dXJucyBhIHByb21pc2UgdGhhdCByZXNvbHZlcyB0byBp
dHMKLS8vIHJlc3BvbnNlLiBUaGVyZSBzaG91bGQgb25seSBiZSBvbmUgaW5mbGlnaHQgY29tbWFu
ZCBhdCBhIHRpbWUuCi1hc3luYyBmdW5jdGlvbiBzZW5kQ29tbWFuZChjb21tYW5kKSB7Ci0gIGNv
bnN0IHNhd19tZXNzYWdlID0gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsKLSAgICBuYXZpZ2F0
b3Iuc2VydmljZVdvcmtlci5vbm1lc3NhZ2UgPSAoZXZlbnQpID0+IHsKLSAgICAgIHJlc29sdmUo
ZXZlbnQuZGF0YSk7Ci0gICAgfTsKLSAgfSk7Ci0gIHdvcmtlci5wb3N0TWVzc2FnZShjb21tYW5k
KTsKLSAgcmV0dXJuIHNhd19tZXNzYWdlOwotfQotCi0vLyBXcmFwcGVyIGZvciAnc3RhcnRUZXN0
JyBjb21tYW5kLiBUZWxscyB0aGUgd29ya2VyIGEgdGVzdCBpcyBzdGFydGluZywKLS8vIHNvIGl0
IHJlc2V0cyBzdGF0ZSBhbmQga2VlcHMgaXRzZWxmIGFsaXZlIHVudGlsICdmaW5pc2hUZXN0Jy4K
LWFzeW5jIGZ1bmN0aW9uIHN0YXJ0VGVzdCh0KSB7Ci0gIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHNl
bmRDb21tYW5kKHtjb21tYW5kOiAnc3RhcnRUZXN0J30pOwotICBhc3NlcnRfZXF1YWxzKHJlc3Vs
dCwgJ29rJywgJ3N0YXJ0VGVzdCcpOwotCi0gIHQuYWRkX2NsZWFudXAoYXN5bmMgKCkgPT4gewot
ICAgIHJldHVybiBmaW5pc2hUZXN0KCk7Ci0gIH0pOwotfQotCi0vLyBXcmFwcGVyIGZvciAnZmlu
aXNoVGVzdCcgY29tbWFuZC4KLWFzeW5jIGZ1bmN0aW9uIGZpbmlzaFRlc3QoKSB7Ci0gIGNvbnN0
IHJlc3VsdCA9IGF3YWl0IHNlbmRDb21tYW5kKHtjb21tYW5kOiAnZmluaXNoVGVzdCd9KTsKLSAg
YXNzZXJ0X2VxdWFscyhyZXN1bHQsICdvaycsICdmaW5pc2hUZXN0Jyk7Ci19Ci0KLS8vIFdyYXBw
ZXIgZm9yICdnZXRSZXN1bHRpbmdDbGllbnQnIGNvbW1hbmQuIFRlbGxzIHRoZSB3b3JrZXIgdG8g
cmV0dXJuCi0vLyBjbGllbnRzLmdldChldmVudC5yZXN1bHRpbmdDbGllbnRJZCkgZm9yIHRoZSBu
YXZpZ2F0aW9uIHRoYXQgb2NjdXJzCi0vLyBkdXJpbmcgdGhpcyB0ZXN0LgotLy8KLS8vIFRoZSBy
ZXR1cm4gdmFsdWUgZGVzY3JpYmVzIGhvdyBjbGllbnRzLmdldCgpIHNldHRsZWQuIEl0IGFsc28g
aW5jbHVkZXMKLS8vIHxxdWVyaWVkSWR8IHdoaWNoIGlzIHRoZSBpZCBwYXNzZWQgdG8gY2xpZW50
cy5nZXQoKSAodGhlIHJlc3VsdGluZ0NsaWVudElkCi0vLyBpbiB0aGlzIGNhc2UpLgotLy8KLS8v
IEV4YW1wbGUgdmFsdWU6Ci0vLyB7Ci0vLyAgIHF1ZXJpZWRJZDogJ2FiYycsCi0vLyAgIHByb21p
c2VTdGF0ZTogZnVsZmlsbGVkLAotLy8gICBwcm9taXNlVmFsdWU6IGNsaWVudCwKLS8vICAgY2xp
ZW50OiB7Ci0vLyAgICAgaWQ6ICdhYmMnLAotLy8gICAgIHVybDogJy8vZXhhbXBsZS5jb20vY2xp
ZW50JwotLy8gICB9Ci0vLyB9Ci1hc3luYyBmdW5jdGlvbiBnZXRSZXN1bHRpbmdDbGllbnQoKSB7
Ci0gIHJldHVybiBzZW5kQ29tbWFuZCh7Y29tbWFuZDogJ2dldFJlc3VsdGluZ0NsaWVudCd9KTsK
LX0KLQotLy8gV3JhcHBlciBmb3IgJ2dldENsaWVudCcgY29tbWFuZC4gVGVsbHMgdGhlIHdvcmtl
ciB0byByZXR1cm4KLS8vIGNsaWVudHMuZ2V0KHxpZHwpLiBUaGUgcmV0dXJuIHZhbHVlIGlzIGFz
IGluIHRoZSBnZXRSZXN1bHRpbmdDbGllbnQoKQotLy8gZG9jdW1lbnRhdGlvbi4KLWFzeW5jIGZ1
bmN0aW9uIGdldENsaWVudChpZCkgewotICByZXR1cm4gc2VuZENvbW1hbmQoe2NvbW1hbmQ6ICdn
ZXRDbGllbnQnLCBpZDogaWR9KTsKLX0KLQotLy8gTmF2aWdhdGVzIHRvIHx1cmx8LiBSZXR1cm5z
IHRoZSByZXN1bHQgb2YgY2xpZW50cy5nZXQoKSBvbiB0aGUKLS8vIHJlc3VsdGluZ0NsaWVudElk
LgotYXN5bmMgZnVuY3Rpb24gbmF2aWdhdGVBbmRHZXRSZXN1bHRpbmdDbGllbnQodCwgdXJsKSB7
Ci0gIGNvbnN0IHJlc3VsdFByb21pc2UgPSBnZXRSZXN1bHRpbmdDbGllbnQoKTsKLSAgY29uc3Qg
ZnJhbWUgPSBhd2FpdCB3aXRoX2lmcmFtZSh1cmwpOwotICB0LmFkZF9jbGVhbnVwKCgpID0+IHsK
LSAgICBmcmFtZS5yZW1vdmUoKTsKLSAgfSk7Ci0gIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHJlc3Vs
dFByb21pc2U7Ci0gIGNvbnN0IHJlc3VsdGluZ0NsaWVudElkID0gcmVzdWx0LnF1ZXJpZWRJZDsK
LQotICAvLyBGaXJzdCB0ZXN0IGNsaWVudHMuZ2V0KGV2ZW50LnJlc3VsdGluZ0NsaWVudElkKSBp
bnNpZGUgdGhlIGZldGNoIGV2ZW50LiBUaGUKLSAgLy8gYmVoYXZpb3Igb2YgdGhpcyBpcyBzdWJ0
bGUgZHVlIHRvIHRoZSB1c2Ugb2YgaWZyYW1lcyBhbmQgYWJvdXQ6YmxhbmsKLSAgLy8gcmVwbGFj
ZW1lbnQuIFRoZSBzcGVjIHByb2JhYmx5IHJlcXVpcmVzIHRoYXQgaXQgcmVzb2x2ZSB0byB0aGUg
b3JpZ2luYWwKLSAgLy8gYWJvdXQ6YmxhbmsgY2xpZW50LCBhbmQgdGhhdCBsYXRlciB0aGF0IGNs
aWVudCBzaG91bGQgYmUgZGlzY2FyZGVkIGFmdGVyCi0gIC8vIGxvYWQgaWYgdGhlIGxvYWQgd2Fz
IHRvIGFub3RoZXIgb3JpZ2luLiBJbXBsZW1lbnRhdGlvbnMgbWlnaHQgZGlmZmVyLiBGb3IKLSAg
Ly8gbm93LCB0aGlzIHRlc3QganVzdCBhc3NlcnRzIHRoYXQgdGhlIHByb21pc2UgcmVzb2x2ZXMu
IFNlZQotICAvLyBodHRwczovL2dpdGh1Yi5jb20vdzNjL1NlcnZpY2VXb3JrZXIvaXNzdWVzLzEz
ODUuCi0gIGFzc2VydF9lcXVhbHMocmVzdWx0LnByb21pc2VTdGF0ZSwgJ2Z1bGZpbGxlZCcsCi0g
ICAgICAgICAgICAgICAgJ2dldChldmVudC5yZXN1bHRpbmdDbGllbnRJZCkgaW4gdGhlIGZldGNo
IGV2ZW50IHNob3VsZCBmdWxmaWxsJyk7Ci0KLSAgLy8gVGVzdCBjbGllbnRzLmdldCgpIG9uIHRo
ZSBwcmV2aW91cyByZXN1bHRpbmdDbGllbnRJZCBhZ2Fpbi4gQnkgdGhpcwotICAvLyB0aW1lIHRo
ZSBsb2FkIGZpbmlzaGVkLCBzbyBpdCdzIG1vcmUgc3RyYWlnaHRmb3J3YXJkIGhvdyB0aGlzIHBy
b21pc2UKLSAgLy8gc2hvdWxkIHNldHRsZS4gUmV0dXJuIHRoZSByZXN1bHQgb2YgdGhpcyBwcm9t
aXNlLgotICByZXR1cm4gYXdhaXQgZ2V0Q2xpZW50KHJlc3VsdGluZ0NsaWVudElkKTsKLX0KLQot
Ly8gVGVzdCBnZXQocmVzdWx0aW5nQ2xpZW50SWQpIGluIHRoZSBiYXNpYyBzYW1lLW9yaWdpbiBj
YXNlLgotcHJvbWlzZV90ZXN0KGFzeW5jICh0KSA9PiB7Ci0gIGF3YWl0IHN0YXJ0VGVzdCh0KTsK
LQotICBjb25zdCB1cmwgPSBuZXcgVVJMKCdyZXNvdXJjZXMvZW1wdHkuaHRtbCcsIHdpbmRvdy5s
b2NhdGlvbik7Ci0gIGNvbnN0IHJlc3VsdCA9IGF3YWl0IG5hdmlnYXRlQW5kR2V0UmVzdWx0aW5n
Q2xpZW50KHQsIHVybCk7Ci0gIGFzc2VydF9lcXVhbHMocmVzdWx0LnByb21pc2VTdGF0ZSwgJ2Z1
bGZpbGxlZCcsICdwcm9taXNlU3RhdGUnKTsKLSAgYXNzZXJ0X2VxdWFscyhyZXN1bHQucHJvbWlz
ZVZhbHVlLCAnY2xpZW50JywgJ3Byb21pc2VWYWx1ZScpOwotICBhc3NlcnRfZXF1YWxzKHJlc3Vs
dC5jbGllbnQudXJsLCB1cmwuaHJlZiwgJ2NsaWVudC51cmwnLCk7Ci0gIGFzc2VydF9lcXVhbHMo
cmVzdWx0LmNsaWVudC5pZCwgcmVzdWx0LnF1ZXJpZWRJZCwgJ2NsaWVudC5pZCcpOwotfSwgJ2dl
dChyZXN1bHRpbmdDbGllbnRJZCkgZm9yIHNhbWUtb3JpZ2luIGRvY3VtZW50Jyk7Ci0KLS8vIFRl
c3QgZ2V0KHJlc3VsdGluZ0NsaWVudElkKSB3aGVuIHRoZSByZXNwb25zZSByZWRpcmVjdHMgdG8g
YW5vdGhlciBvcmlnaW4uCi1wcm9taXNlX3Rlc3QoYXN5bmMgKHQpID0+IHsKLSAgYXdhaXQgc3Rh
cnRUZXN0KHQpOwotCi0gIC8vIE5hdmlnYXRlIHRvIGEgVVJMIHRoYXQgcmVkaXJlY3RzIHRvIGFu
b3RoZXIgb3JpZ2luLgotICBjb25zdCBiYXNlX3VybCA9IG5ldyBVUkwoJy4nLCB3aW5kb3cubG9j
YXRpb24pOwotICBjb25zdCBob3N0X2luZm8gPSBnZXRfaG9zdF9pbmZvKCk7Ci0gIGNvbnN0IG90
aGVyX29yaWdpbl91cmwgPSBuZXcgVVJMKGJhc2VfdXJsLnBhdGhuYW1lICsgJ3Jlc291cmNlcy9l
bXB0eS5odG1sJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaG9zdF9pbmZv
WydIVFRQU19SRU1PVEVfT1JJR0lOJ10pOwotICBjb25zdCB1cmwgPSBuZXcgVVJMKCdyZXNvdXJj
ZXMvZW1wdHkuaHRtbCcsIHdpbmRvdy5sb2NhdGlvbik7Ci0gIGNvbnN0IHBpcGUgPSBgc3RhdHVz
KDMwMil8aGVhZGVyKExvY2F0aW9uLCAke290aGVyX29yaWdpbl91cmx9KWA7Ci0gIHVybC5zZWFy
Y2hQYXJhbXMuc2V0KCdwaXBlJywgcGlwZSk7Ci0KLSAgLy8gVGhlIG9yaWdpbmFsIHJlc2VydmVk
IGNsaWVudCBzaG91bGQgaGF2ZSBiZWVuIGRpc2NhcmRlZCBvbiBjcm9zcy1vcmlnaW4KLSAgLy8g
cmVkaXJlY3QuCi0gIGNvbnN0IHJlc3VsdCA9IGF3YWl0IG5hdmlnYXRlQW5kR2V0UmVzdWx0aW5n
Q2xpZW50KHQsIHVybCk7Ci0gIGFzc2VydF9lcXVhbHMocmVzdWx0LnByb21pc2VTdGF0ZSwgJ2Z1
bGZpbGxlZCcsICdwcm9taXNlU3RhdGUnKTsKLSAgYXNzZXJ0X2VxdWFscyhyZXN1bHQucHJvbWlz
ZVZhbHVlLCAndW5kZWZpbmVkVmFsdWUnLCAncHJvbWlzZVZhbHVlJyk7Ci19LCAnZ2V0KHJlc3Vs
dGluZ0NsaWVudElkKSBvbiBjcm9zcy1vcmlnaW4gcmVkaXJlY3QnKTsKLQotLy8gVGVzdCBnZXQo
cmVzdWx0aW5nQ2xpZW50SWQpIHdoZW4gdGhlIGRvY3VtZW50IGlzIHNhbmRib3hlZCB0byBhIHVu
aXF1ZQotLy8gb3JpZ2luIHVzaW5nIGEgQ1NQIEhUVFAgcmVzcG9uc2UgaGVhZGVyLgotcHJvbWlz
ZV90ZXN0KGFzeW5jICh0KSA9PiB7Ci0gIGF3YWl0IHN0YXJ0VGVzdCh0KTsKLQotICAvLyBOYXZp
Z2F0ZSB0byBhIFVSTCB0aGF0IGhhcyBDU1Agc2FuZGJveGluZyBzZXQgaW4gdGhlIEhUVFAgcmVz
cG9uc2UgaGVhZGVyLgotICBjb25zdCB1cmwgPSBuZXcgVVJMKCdyZXNvdXJjZXMvZW1wdHkuaHRt
bCcsIHdpbmRvdy5sb2NhdGlvbik7Ci0gIGNvbnN0IHBpcGUgPSAnaGVhZGVyKENvbnRlbnQtU2Vj
dXJpdHktUG9saWN5LCBzYW5kYm94KSc7Ci0gIHVybC5zZWFyY2hQYXJhbXMuc2V0KCdwaXBlJywg
cGlwZSk7Ci0KLSAgLy8gVGhlIG9yaWdpbmFsIHJlc2VydmVkIGNsaWVudCBzaG91bGQgaGF2ZSBi
ZWVuIGRpc2NhcmRlZCB1cG9uIGxvYWRpbmcKLSAgLy8gdGhlIHNhbmRib3hlZCBkb2N1bWVudC4K
LSAgY29uc3QgcmVzdWx0ID0gYXdhaXQgbmF2aWdhdGVBbmRHZXRSZXN1bHRpbmdDbGllbnQodCwg
dXJsKTsKLSAgYXNzZXJ0X2VxdWFscyhyZXN1bHQucHJvbWlzZVN0YXRlLCAnZnVsZmlsbGVkJywg
J3Byb21pc2VTdGF0ZScpOwotICBhc3NlcnRfZXF1YWxzKHJlc3VsdC5wcm9taXNlVmFsdWUsICd1
bmRlZmluZWRWYWx1ZScsICdwcm9taXNlVmFsdWUnKTsKLX0sICdnZXQocmVzdWx0aW5nQ2xpZW50
SWQpIGZvciBkb2N1bWVudCBzYW5kYm94ZWQgYnkgQ1NQIGhlYWRlcicpOwotCi0vLyBUZXN0IGdl
dChyZXN1bHRpbmdDbGllbnRJZCkgd2hlbiB0aGUgZG9jdW1lbnQgaXMgc2FuZGJveGVkIHdpdGgK
LS8vIGFsbG93LXNhbWUtb3JpZ2luLgotcHJvbWlzZV90ZXN0KGFzeW5jICh0KSA9PiB7Ci0gIGF3
YWl0IHN0YXJ0VGVzdCh0KTsKLQotICAvLyBOYXZpZ2F0ZSB0byBhIFVSTCB0aGF0IGhhcyBDU1Ag
c2FuZGJveGluZyBzZXQgaW4gdGhlIEhUVFAgcmVzcG9uc2UgaGVhZGVyLgotICBjb25zdCB1cmwg
PSBuZXcgVVJMKCdyZXNvdXJjZXMvZW1wdHkuaHRtbCcsIHdpbmRvdy5sb2NhdGlvbik7Ci0gIGNv
bnN0IHBpcGUgPSAnaGVhZGVyKENvbnRlbnQtU2VjdXJpdHktUG9saWN5LCBzYW5kYm94IGFsbG93
LXNhbWUtb3JpZ2luKSc7Ci0gIHVybC5zZWFyY2hQYXJhbXMuc2V0KCdwaXBlJywgcGlwZSk7Ci0K
LSAgLy8gVGhlIGNsaWVudCBzaG91bGQgYmUgdGhlIG9yaWdpbmFsIHJlc2VydmVkIGNsaWVudCwg
YXMgaXQncyBzYW1lLW9yaWdpbi4KLSAgY29uc3QgcmVzdWx0ID0gYXdhaXQgbmF2aWdhdGVBbmRH
ZXRSZXN1bHRpbmdDbGllbnQodCwgdXJsKTsKLSAgYXNzZXJ0X2VxdWFscyhyZXN1bHQucHJvbWlz
ZVN0YXRlLCAnZnVsZmlsbGVkJywgJ3Byb21pc2VTdGF0ZScpOwotICBhc3NlcnRfZXF1YWxzKHJl
c3VsdC5wcm9taXNlVmFsdWUsICdjbGllbnQnLCAncHJvbWlzZVZhbHVlJyk7Ci0gIGFzc2VydF9l
cXVhbHMocmVzdWx0LmNsaWVudC51cmwsIHVybC5ocmVmLCAnY2xpZW50LnVybCcsKTsKLSAgYXNz
ZXJ0X2VxdWFscyhyZXN1bHQuY2xpZW50LmlkLCByZXN1bHQucXVlcmllZElkLCAnY2xpZW50Lmlk
Jyk7Ci19LCAnZ2V0KHJlc3VsdGluZ0NsaWVudElkKSBmb3IgZG9jdW1lbnQgc2FuZGJveGVkIGJ5
IENTUCBoZWFkZXIgd2l0aCBhbGxvdy1zYW1lLW9yaWdpbicpOwotCi0vLyBDbGVhbnVwLiBLZWVw
IHRoaXMgYXMgdGhlIGxhc3QgcHJvbWlzZV90ZXN0LgotcHJvbWlzZV90ZXN0KGFzeW5jICh0KSA9
PiB7Ci0gIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyKHQsIHNjb3BlKTsKLX0sICdn
bG9iYWwgY2xlYW51cCcpOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9jbGllbnRzLWdldC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGll
bnRzLWdldC5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggMGY5YzQxMWE5YjU2NTZkNzU0MTkzMDEx
ZWZiNzE4YWI1MGVjNjNkNC4uMTdkMTllNGEzYmU0MzA5NDZkN2ViMTIzMTE4MzNkMzBjMzBmMjAx
NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xpZW50cy1nZXQuaHR0cHMtZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsaWVudHMtZ2V0Lmh0dHBzLWV4cGVjdGVk
LnR4dApAQCAtMSw1ICsxLDMgQEAKIAogRkFJTCBUZXN0IENsaWVudHMuZ2V0KCkgYXNzZXJ0X2Fy
cmF5X2VxdWFsczogcHJvcGVydHkgMSwgZXhwZWN0ZWQgZmFsc2UgYnV0IGdvdCB0cnVlCi1GQUlM
IFRlc3Qgc3VjY2Vzc2Z1bCBDbGllbnRzLmdldChGZXRjaEV2ZW50LnJlc3VsdGluZ0NsaWVudElk
KSBhc3NlcnRfZmFsc2U6IENsaWVudHMuZ2V0KEZldGNoRXZlbnQucmVzdWx0aW5nQ2xpZW50SWQp
IHJlc29sdmVkIHdpdGggYSBDbGllbnQgZXhwZWN0ZWQgZmFsc2UgZ290IHRydWUKLVBBU1MgVGVz
dCB1bnN1Y2Nlc3NmdWwgQ2xpZW50cy5nZXQoRmV0Y2hFdmVudC5yZXN1bHRpbmdDbGllbnRJZCkg
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsaWVudHMtZ2V0Lmh0dHBzLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9jbGllbnRzLWdldC5odHRwcy5odG1sCmluZGV4IDRjZmJmNTk1
Y2FkZWVlYTVmYzhhNTA4OTEyN2M1Njg3ZWMxNzRmNTMuLjY4YzZkN2Y3YWMwMmEzMTY4NTZhNDA1
ZjY1NzllYjE5MWU3Mzg5MjQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsaWVudHMt
Z2V0Lmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xpZW50cy1nZXQuaHR0cHMu
aHRtbApAQCAtNCwxNTEgKzQsNjUgQEAKIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGVzdC1oZWxw
ZXJzLnN1Yi5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgordmFyIHNjb3BlID0gJ3Jlc291cmNlcy9j
bGllbnRzLWdldC1mcmFtZS5odG1sJzsKK3ZhciBjbGllbnRfaWRzID0gW107Cit2YXIgZnJhbWU7
Citwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgeworICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91
bnJlZ2lzdGVyX2FuZF9yZWdpc3RlcigKKyAgICAgICAgdCwgJ3Jlc291cmNlcy9jbGllbnRzLWdl
dC13b3JrZXIuanMnLCBzY29wZSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKHJlZ2lzdHJhdGlvbikg
eworICAgICAgICAgIGFkZF9jb21wbGV0aW9uX2NhbGxiYWNrKGZ1bmN0aW9uKCkgeyByZWdpc3Ry
YXRpb24udW5yZWdpc3RlcigpOyB9KTsKKyAgICAgICAgICByZXR1cm4gd2FpdF9mb3Jfc3RhdGUo
dCwgcmVnaXN0cmF0aW9uLmluc3RhbGxpbmcsICdhY3RpdmF0ZWQnKTsKKyAgICAgICAgfSkKKyAg
ICAgIC50aGVuKGZ1bmN0aW9uKCkgeworICAgICAgICAgIHJldHVybiB3aXRoX2lmcmFtZShzY29w
ZSArICcjMScpOworICAgICAgICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24oZnJhbWUxKSB7Cisg
ICAgICAgICAgYWRkX2NvbXBsZXRpb25fY2FsbGJhY2soZnVuY3Rpb24oKSB7IGZyYW1lMS5yZW1v
dmUoKTsgfSk7CisgICAgICAgICAgZnJhbWUxLmZvY3VzKCk7CisgICAgICAgICAgcmV0dXJuIHdh
aXRfZm9yX2NsaWVudElkKCk7CisgICAgICAgIH0pCisgICAgICAudGhlbihmdW5jdGlvbihjbGll
bnRfaWQpIHsKKyAgICAgICAgICBjbGllbnRfaWRzLnB1c2goY2xpZW50X2lkKTsKKyAgICAgICAg
ICByZXR1cm4gd2l0aF9pZnJhbWUoc2NvcGUgKyAnIzInKTsKKyAgICAgICAgfSkKKyAgICAgIC50
aGVuKGZ1bmN0aW9uKGZyYW1lMikgeworICAgICAgICAgIGZyYW1lID0gZnJhbWUyOworICAgICAg
ICAgIGFkZF9jb21wbGV0aW9uX2NhbGxiYWNrKGZ1bmN0aW9uKCkgeyBmcmFtZTIucmVtb3ZlKCk7
IH0pOworICAgICAgICAgIHJldHVybiB3YWl0X2Zvcl9jbGllbnRJZCgpOworICAgICAgICB9KQor
ICAgICAgLnRoZW4oZnVuY3Rpb24oY2xpZW50X2lkKSB7CisgICAgICAgICAgY2xpZW50X2lkcy5w
dXNoKGNsaWVudF9pZCwgJ2ludmFsaWQtaWQnKTsKKyAgICAgICAgICB2YXIgY2hhbm5lbCA9IG5l
dyBNZXNzYWdlQ2hhbm5lbCgpOworICAgICAgICAgIHZhciBzYXdfbWVzc2FnZSA9IG5ldyBQcm9t
aXNlKGZ1bmN0aW9uKHJlc29sdmUpIHsKKyAgICAgICAgICAgICAgY2hhbm5lbC5wb3J0MS5vbm1l
c3NhZ2UgPSByZXNvbHZlOworICAgICAgICAgICAgfSk7CisgICAgICAgICAgZnJhbWUuY29udGVu
dFdpbmRvdy5uYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5jb250cm9sbGVyLnBvc3RNZXNzYWdlKAor
ICAgICAgICAgICAgICB7cG9ydDogY2hhbm5lbC5wb3J0MiwgY2xpZW50SWRzOiBjbGllbnRfaWRz
fSwgW2NoYW5uZWwucG9ydDJdKTsKKyAgICAgICAgICByZXR1cm4gc2F3X21lc3NhZ2U7CisgICAg
ICAgIH0pCisgICAgICAudGhlbihmdW5jdGlvbihlKSB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFs
cyhlLmRhdGEubGVuZ3RoLCAzKTsKKyAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGUuZGF0
YVswXSwgZXhwZWN0ZWRbMF0pOworICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoZS5kYXRh
WzFdLCBleHBlY3RlZFsxXSk7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLmRhdGFbMl0sIGV4
cGVjdGVkWzJdKTsKKyAgICAgICAgfSk7CisgIH0sICdUZXN0IENsaWVudHMuZ2V0KCknKTsKKwog
ZnVuY3Rpb24gd2FpdF9mb3JfY2xpZW50SWQoKSB7CiAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5j
dGlvbihyZXNvbHZlLCByZWplY3QpIHsKLSAgICB3aW5kb3cub25tZXNzYWdlID0gZSA9PiB7Ci0g
ICAgICByZXNvbHZlKGUuZGF0YS5jbGllbnRJZCk7Ci0gICAgfTsKLSAgfSk7CisgICAgICBmdW5j
dGlvbiBnZXRfY2xpZW50X2lkKGUpIHsKKyAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVu
ZXIoJ21lc3NhZ2UnLCBnZXRfY2xpZW50X2lkKTsKKyAgICAgICAgcmVzb2x2ZShlLmRhdGEuY2xp
ZW50SWQpOworICAgICAgfQorICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2Un
LCBnZXRfY2xpZW50X2lkLCBmYWxzZSk7CisgICAgfSk7CiB9CiAKLXByb21pc2VfdGVzdChhc3lu
YyB0ID0+IHsKLSAgLy8gUmVnaXN0ZXIgc2VydmljZSB3b3JrZXIuCi0gIGNvbnN0IHNjb3BlID0g
J3Jlc291cmNlcy9jbGllbnRzLWdldC1mcmFtZS5odG1sJzsKLSAgY29uc3QgY2xpZW50X2lkcyA9
IFtdOwotICBjb25zdCByZWdpc3RyYXRpb24gPSBhd2FpdCBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lz
dGVyX2FuZF9yZWdpc3RlcigKLSAgICB0LCAncmVzb3VyY2VzL2NsaWVudHMtZ2V0LXdvcmtlci5q
cycsIHNjb3BlKTsKLSAgdC5hZGRfY2xlYW51cCgoKSA9PiByZWdpc3RyYXRpb24udW5yZWdpc3Rl
cigpKTsKLSAgYXdhaXQgd2FpdF9mb3Jfc3RhdGUodCwgcmVnaXN0cmF0aW9uLmluc3RhbGxpbmcs
ICdhY3RpdmF0ZWQnKTsKLQotICAvLyBQcmVwYXJlIGZvciB0ZXN0IGNhc2VzLgotICAvLyBDYXNl
IDE6IGZyYW1lMSB3aGljaCBpcyBmb2N1c2VkLgotICBjb25zdCBmcmFtZTEgPSBhd2FpdCB3aXRo
X2lmcmFtZShzY29wZSArICcjMScpOwotICB0LmFkZF9jbGVhbnVwKCgpID0+IGZyYW1lMS5yZW1v
dmUoKSk7Ci0gIGZyYW1lMS5mb2N1cygpOwotICBjbGllbnRfaWRzLnB1c2goYXdhaXQgd2FpdF9m
b3JfY2xpZW50SWQoKSk7Ci0gIC8vIENhc2UgMjogZnJhbWUyIHdoaWNoIGlzIG5vdCBmb2N1c2Vk
LgotICBjb25zdCBmcmFtZTIgPSBhd2FpdCB3aXRoX2lmcmFtZShzY29wZSArICcjMicpOwotICB0
LmFkZF9jbGVhbnVwKCgpID0+ICBmcmFtZTIucmVtb3ZlKCkpOwotICBjbGllbnRfaWRzLnB1c2go
YXdhaXQgd2FpdF9mb3JfY2xpZW50SWQoKSk7Ci0gIC8vIENhc2UgMzogaW52YWxpZCBpZC4KLSAg
Y2xpZW50X2lkcy5wdXNoKCdpbnZhbGlkLWlkJyk7Ci0KLSAgLy8gQ2FsbCBjbGllbnRzLmdldCgp
IGZvciBlYWNoIGlkIG9uIHRoZSBzZXJ2aWNlIHdvcmtlci4KLSAgY29uc3QgbWVzc2FnZV9ldmVu
dCA9IGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gewotICAgIG5hdmlnYXRvci5zZXJ2aWNl
V29ya2VyLm9ubWVzc2FnZSA9IHJlc29sdmU7Ci0gICAgcmVnaXN0cmF0aW9uLmFjdGl2ZS5wb3N0
TWVzc2FnZSh7Y2xpZW50SWRzOiBjbGllbnRfaWRzfSk7Ci0gIH0pOwotCi0gIGNvbnN0IGV4cGVj
dGVkID0gWwordmFyIGV4cGVjdGVkID0gWwogICAgIC8vIHZpc2liaWxpdHlTdGF0ZSwgZm9jdXNl
ZCwgdXJsLCB0eXBlLCBmcmFtZVR5cGUKICAgICBbJ3Zpc2libGUnLCB0cnVlLCBub3JtYWxpemVV
Ukwoc2NvcGUpICsgJyMxJywgJ3dpbmRvdycsICduZXN0ZWQnXSwKICAgICBbJ3Zpc2libGUnLCBm
YWxzZSwgbm9ybWFsaXplVVJMKHNjb3BlKSArICcjMicsICd3aW5kb3cnLCAnbmVzdGVkJ10sCiAg
ICAgdW5kZWZpbmVkCi0gIF07Ci0gIGFzc2VydF9lcXVhbHMobWVzc2FnZV9ldmVudC5kYXRhLmxl
bmd0aCwgMyk7Ci0gIGFzc2VydF9hcnJheV9lcXVhbHMobWVzc2FnZV9ldmVudC5kYXRhWzBdLCBl
eHBlY3RlZFswXSk7Ci0gIGFzc2VydF9hcnJheV9lcXVhbHMobWVzc2FnZV9ldmVudC5kYXRhWzFd
LCBleHBlY3RlZFsxXSk7Ci0gIGFzc2VydF9lcXVhbHMobWVzc2FnZV9ldmVudC5kYXRhWzJdLCBl
eHBlY3RlZFsyXSk7Ci19LCAnVGVzdCBDbGllbnRzLmdldCgpJyk7Ci0KLXByb21pc2VfdGVzdChh
c3luYyB0ID0+IHsKLSAgLy8gUmVnaXN0ZXIgc2VydmljZSB3b3JrZXIuCi0gIGNvbnN0IHNjb3Bl
ID0gJ3Jlc291cmNlcy9zaW1wbGUuaHRtbCc7Ci0gIGNvbnN0IHJlZ2lzdHJhdGlvbiA9IGF3YWl0
IHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKAotICAgIHQsICdyZXNvdXJj
ZXMvY2xpZW50cy1nZXQtcmVzdWx0aW5nQ2xpZW50SWQtd29ya2VyLmpzJywgc2NvcGUpCi0gIHQu
YWRkX2NsZWFudXAoKCkgPT4gIHJlZ2lzdHJhdGlvbi51bnJlZ2lzdGVyKCkpOwotICBhd2FpdCB3
YWl0X2Zvcl9zdGF0ZSh0LCByZWdpc3RyYXRpb24uaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOwot
ICBjb25zdCB3b3JrZXIgPSByZWdpc3RyYXRpb24uYWN0aXZlOwotCi0gIC8vIExvYWQgZnJhbWUg
d2l0aGluIHRoZSBzY29wZS4KLSAgY29uc3QgZnJhbWUgPSBhd2FpdCB3aXRoX2lmcmFtZShzY29w
ZSk7Ci0gIHQuYWRkX2NsZWFudXAoKCkgPT4gZnJhbWUucmVtb3ZlKCkpOwotICBmcmFtZS5mb2N1
cygpOwotCi0gIC8vIEdldCByZXN1bHRpbmcgY2xpZW50IGlkLgotICBjb25zdCByZXN1bHRpbmdD
bGllbnRJZCA9IGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gewotICAgIG5hdmlnYXRvci5z
ZXJ2aWNlV29ya2VyLm9ubWVzc2FnZSA9IGUgPT4gewotICAgICAgaWYgKGUuZGF0YS5tc2cgPT0g
J2dldFJlc3VsdGluZ0NsaWVudElkJykgewotICAgICAgICByZXNvbHZlKGUuZGF0YS5yZXN1bHRp
bmdDbGllbnRJZCk7Ci0gICAgICB9Ci0gICAgfTsKLSAgICB3b3JrZXIucG9zdE1lc3NhZ2Uoe21z
ZzogJ2dldFJlc3VsdGluZ0NsaWVudElkJ30pOwotICB9KTsKLQotICAvLyBRdWVyeSBzZXJ2aWNl
IHdvcmtlciBmb3IgY2xpZW50cy5nZXQocmVzdWx0aW5nQ2xpZW50SWQpLgotICBjb25zdCBpc1Jl
c3VsdGluZ0NsaWVudFVuZGVmaW5lZCA9IGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gewot
ICAgIG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLm9ubWVzc2FnZSA9IGUgPT4gewotICAgICAgaWYg
KGUuZGF0YS5tc2cgPT0gJ2dldElzUmVzdWx0aW5nQ2xpZW50VW5kZWZpbmVkJykgewotICAgICAg
ICByZXNvbHZlKGUuZGF0YS5pc1Jlc3VsdGluZ0NsaWVudFVuZGVmaW5lZCk7Ci0gICAgICB9Ci0g
ICAgfTsKLSAgICB3b3JrZXIucG9zdE1lc3NhZ2Uoe21zZzogJ2dldElzUmVzdWx0aW5nQ2xpZW50
VW5kZWZpbmVkJywKLSAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdGluZ0NsaWVudElkfSk7
Ci0gIH0pOwotCi0gIGFzc2VydF9mYWxzZSgKLSAgICBpc1Jlc3VsdGluZ0NsaWVudFVuZGVmaW5l
ZCwKLSAgICAnQ2xpZW50cy5nZXQoRmV0Y2hFdmVudC5yZXN1bHRpbmdDbGllbnRJZCkgcmVzb2x2
ZWQgd2l0aCBhIENsaWVudCcpOwotfSwgJ1Rlc3Qgc3VjY2Vzc2Z1bCBDbGllbnRzLmdldChGZXRj
aEV2ZW50LnJlc3VsdGluZ0NsaWVudElkKScpOwotCi1wcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7
Ci0gIC8vIFJlZ2lzdGVyIHNlcnZpY2Ugd29ya2VyLgotICBjb25zdCBzY29wZSA9ICdyZXNvdXJj
ZXMvc2ltcGxlLmh0bWw/ZmFpbCc7Ci0gIGNvbnN0IHJlZ2lzdHJhdGlvbiA9IGF3YWl0IHNlcnZp
Y2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKAotICAgIHQsICdyZXNvdXJjZXMvY2xp
ZW50cy1nZXQtcmVzdWx0aW5nQ2xpZW50SWQtd29ya2VyLmpzJywgc2NvcGUpOwotICB0LmFkZF9j
bGVhbnVwKCgpID0+ICByZWdpc3RyYXRpb24udW5yZWdpc3RlcigpKTsKLSAgYXdhaXQgd2FpdF9m
b3Jfc3RhdGUodCwgcmVnaXN0cmF0aW9uLmluc3RhbGxpbmcsICdhY3RpdmF0ZWQnKTsKLQotICAv
LyBMb2FkIGZyYW1lLCBhbmQgZGVzdHJveSBpdCB3aGlsZSBsb2FkaW5nLgotICBjb25zdCB3b3Jr
ZXIgPSByZWdpc3RyYXRpb24uYWN0aXZlOwotICBsZXQgZnJhbWUgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCdpZnJhbWUnKTsKLSAgZnJhbWUuc3JjID0gc2NvcGU7Ci0gIHQuYWRkX2NsZWFudXAo
KCkgPT4gewotICAgIGlmIChmcmFtZSkgewotICAgICAgZnJhbWUucmVtb3ZlKCk7Ci0gICAgfQot
ICB9KTsKLQotICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHsKLSAgICBuYXZpZ2F0b3Iu
c2VydmljZVdvcmtlci5vbm1lc3NhZ2UgPSBlID0+IHsKLSAgICAgIC8vIFRoZSBzZXJ2aWNlIHdv
cmtlciBwb3N0cyBhIG1lc3NhZ2UgdG8gcmVtb3ZlIHRoZSBpZnJhbWUgZHVyaW5nIGZldGNoCi0g
ICAgICAvLyBldmVudC4KLSAgICAgIGlmIChlLmRhdGEubXNnID09ICdkZXN0cm95UmVzdWx0aW5n
Q2xpZW50JykgewotICAgICAgICBmcmFtZS5yZW1vdmUoKTsKLSAgICAgICAgZnJhbWUgPSBudWxs
OwotICAgICAgICB3b3JrZXIucG9zdE1lc3NhZ2Uoe21zZzogJ3Jlc3VsdGluZ0NsaWVudERlc3Ry
b3llZCd9KTsKLSAgICAgICAgcmVzb2x2ZSgpOwotICAgICAgfQotICAgIH07Ci0gICAgZG9jdW1l
bnQuYm9keS5hcHBlbmRDaGlsZChmcmFtZSk7Ci0gIH0pOwotCi0gIHJlc3VsdGluZ0Rlc3Ryb3ll
ZENsaWVudElkID0gYXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7Ci0gICAgbmF2aWdhdG9y
LnNlcnZpY2VXb3JrZXIub25tZXNzYWdlID0gZSA9PiB7Ci0gICAgICAvLyBUaGUgd29ya2VyIHNl
bmRzIGEgbWVzc2FnZSBiYWNrIHdoZW4gaXQgcmVjZWl2ZXMgdGhlIG1lc3NhZ2UKLSAgICAgIC8v
ICdyZXN1bHRpbmdDbGllbnREZXN0cm95ZWQnIHdpdGggdGhlIHJlc3VsdGluZ0NsaWVudElkLgot
ICAgICAgaWYgKGUuZGF0YS5tc2cgPT0gJ3Jlc3VsdGluZ0NsaWVudERlc3Ryb3llZEFjaycpIHsK
LSAgICAgICAgYXNzZXJ0X2VxdWFscyhmcmFtZSwgbnVsbCwgJ0ZyYW1lIHNob3VsZCBiZSBkZXN0
cm95ZWQgYXQgdGhpcyBwb2ludC4nKTsKLSAgICAgICAgcmVzb2x2ZShlLmRhdGEucmVzdWx0aW5n
RGVzdHJveWVkQ2xpZW50SWQpOwotICAgICAgfQotICAgIH07Ci0gIH0pOwotCi0gIC8vIFF1ZXJ5
IHNlcnZpY2Ugd29ya2VyIGZvciBjbGllbnRzLmdldChyZXN1bHRpbmdEZXN0cm95ZWRDbGllbnRJ
ZCkuCi0gIGNvbnN0IGlzUmVzdWx0aW5nQ2xpZW50VW5kZWZpbmVkID0gYXdhaXQgbmV3IFByb21p
c2UocmVzb2x2ZSA9PiB7Ci0gICAgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIub25tZXNzYWdlID0g
ZSA9PiB7Ci0gICAgICBpZiAoZS5kYXRhLm1zZyA9PSAnZ2V0SXNSZXN1bHRpbmdDbGllbnRVbmRl
ZmluZWQnKSB7Ci0gICAgICAgIHJlc29sdmUoZS5kYXRhLmlzUmVzdWx0aW5nQ2xpZW50VW5kZWZp
bmVkKTsKLSAgICAgIH0KLSAgICB9OwotICAgIHdvcmtlci5wb3N0TWVzc2FnZSh7bXNnOiAnZ2V0
SXNSZXN1bHRpbmdDbGllbnRVbmRlZmluZWQnLAotICAgICAgICAgICAgICAgICAgICAgICAgcmVz
dWx0aW5nQ2xpZW50SWQ6IHJlc3VsdGluZ0Rlc3Ryb3llZENsaWVudElkIH0pOwotICB9KTsKLQot
ICBhc3NlcnRfdHJ1ZSgKLSAgICBpc1Jlc3VsdGluZ0NsaWVudFVuZGVmaW5lZCwKLSAgICAnQ2xp
ZW50cy5nZXQoRmV0Y2hFdmVudC5yZXN1bHRpbmdDbGllbnRJZCkgcmVzb2x2ZWQgd2l0aCBgdW5k
ZWZpbmVkYCcpOwotfSwgJ1Rlc3QgdW5zdWNjZXNzZnVsIENsaWVudHMuZ2V0KEZldGNoRXZlbnQu
cmVzdWx0aW5nQ2xpZW50SWQpJyk7Ci0KK107CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL2NsaWVudHMtbWF0Y2hhbGwtY2xpZW50LXR5cGVzLmh0dHBzLmh0bWwgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci9jbGllbnRzLW1hdGNoYWxsLWNsaWVudC10eXBlcy5odHRwcy5odG1s
CmluZGV4IGEyYTU2ODE2YTY1MGZhNTRkNjA3NTA1NWE2NGUwZjAwOWU1ODI5YWMuLjI0OTY3MTcy
YTg0Y2EwYmZlYTdkYjMzN2ZiNWQ5NWQ5Y2Q0ZmYxMTQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL2NsaWVudHMtbWF0Y2hhbGwtY2xpZW50LXR5cGVzLmh0dHBzLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvY2xpZW50cy1tYXRjaGFsbC1jbGllbnQtdHlwZXMuaHR0cHMuaHRtbApA
QCAtNTQsMTAgKzU0LDYgQEAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICByZXR1cm4g
c2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIoCiAgICAgICAgIHQsICdyZXNv
dXJjZXMvY2xpZW50cy1tYXRjaGFsbC13b3JrZXIuanMnLCBzY29wZSkKICAgICAgIC50aGVuKGZ1
bmN0aW9uKHJlZ2lzdHJhdGlvbikgewotICAgICAgICAgIHQuYWRkX2NsZWFudXAoZnVuY3Rpb24o
KSB7Ci0gICAgICAgICAgICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyKHQsIHNj
b3BlKTsKLSAgICAgICAgICAgIH0pOwotCiAgICAgICAgICAgcmV0dXJuIHdhaXRfZm9yX3N0YXRl
KHQsIHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7CiAgICAgICAgIH0pCiAg
ICAgICAudGhlbihmdW5jdGlvbigpIHsgcmV0dXJuIHdpdGhfaWZyYW1lKGlmcmFtZV91cmwpOyB9
KQpAQCAtNzAsNyArNjYsOSBAQCBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewogICAgICAgICB9
KQogICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7CiAgICAgICAgICAgZnJhbWUucmVtb3ZlKCk7Ci0g
ICAgICAgIH0pOworICAgICAgICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2Fu
ZF9kb25lKHQsIHNjb3BlKTsKKyAgICAgICAgfSkKKyAgICAgIC5jYXRjaCh1bnJlYWNoZWRfcmVq
ZWN0aW9uKHQpKTsKICAgfSwgJ1ZlcmlmeSBtYXRjaEFsbCgpIHdpdGggd2luZG93IGNsaWVudCB0
eXBlJyk7CiAKIHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7CkBAIC03OCwxMCArNzYsNiBAQCBw
cm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewogICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJl
Z2lzdGVyX2FuZF9yZWdpc3RlcigKICAgICAgICAgdCwgJ3Jlc291cmNlcy9jbGllbnRzLW1hdGNo
YWxsLXdvcmtlci5qcycsIHNjb3BlKQogICAgICAgLnRoZW4oZnVuY3Rpb24ocmVnaXN0cmF0aW9u
KSB7Ci0gICAgICAgICAgdC5hZGRfY2xlYW51cChmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAg
cmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXIodCwgc2NvcGUpOwotICAgICAgICAgICAg
fSk7Ci0KICAgICAgICAgICByZXR1cm4gd2FpdF9mb3Jfc3RhdGUodCwgcmVnaXN0cmF0aW9uLmlu
c3RhbGxpbmcsICdhY3RpdmF0ZWQnKTsKICAgICAgICAgfSkKICAgICAgIC50aGVuKGZ1bmN0aW9u
KCkgeyByZXR1cm4gd2l0aF9pZnJhbWUoaWZyYW1lX3VybCk7IH0pCkBAIC0xMTgsNiArMTEyLDcg
QEAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICAgICAgfSkKICAgICAgIC50aGVuKGZ1
bmN0aW9uKCkgewogICAgICAgICAgIGZyYW1lLnJlbW92ZSgpOworICAgICAgICAgIHJldHVybiBz
ZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9kb25lKHQsIHNjb3BlKTsKICAgICAgICAgfSk7
CiB9LCAnVmVyaWZ5IG1hdGNoQWxsKCkgd2l0aCB7d2luZG93LCBzaGFyZWR3b3JrZXIsIHdvcmtl
cn0gY2xpZW50IHR5cGVzJyk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsaWVu
dHMtbWF0Y2hhbGwtZXhhY3QtY29udHJvbGxlci5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9jbGllbnRzLW1hdGNoYWxsLWV4YWN0LWNvbnRyb2xsZXIuaHR0cHMtZXhwZWN0
ZWQudHh0CmluZGV4IGU0MjQ3M2UxZjRkN2FiZDdmNDBmMDk3YzJmZjhhZmJjMzU5N2RmMGMuLjkz
MGVjMzNhNDVmODdlMWQ3MjhkZmE2YmU0MTE3Y2M2MzdlNDk0ZjYgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL2NsaWVudHMtbWF0Y2hhbGwtZXhhY3QtY29udHJvbGxlci5odHRwcy1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xpZW50cy1tYXRjaGFsbC1leGFjdC1j
b250cm9sbGVyLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDQgQEAKIAogCi1GQUlMIFRl
c3QgQ2xpZW50cy5tYXRjaEFsbCgpIHdpdGggZXhhY3QgY29udHJvbGxlciBhc3NlcnRfYXJyYXlf
ZXF1YWxzOiBwcm9wZXJ0eSAxLCBleHBlY3RlZCBmYWxzZSBidXQgZ290IHRydWUKK0ZBSUwgVGVz
dCBDbGllbnRzLm1hdGNoQWxsKCkgd2l0aCBleGFjdCBjb250cm9sbGVyIGFzc2VydF91bnJlYWNo
ZWQ6IHVuZXhwZWN0ZWQgcmVqZWN0aW9uOiBhc3NlcnRfYXJyYXlfZXF1YWxzOiBwcm9wZXJ0eSAx
LCBleHBlY3RlZCBmYWxzZSBidXQgZ290IHRydWUgUmVhY2hlZCB1bnJlYWNoYWJsZSBjb2RlCiAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsaWVudHMtbWF0Y2hhbGwtZXhhY3QtY29u
dHJvbGxlci5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xpZW50cy1tYXRjaGFsbC1l
eGFjdC1jb250cm9sbGVyLmh0dHBzLmh0bWwKaW5kZXggYTYxYzhhZjcwMTk2YWMyMzBjNGI3MDg1
ODYyZTFiZmY4NDMzZmUzOC4uZWU2MGM0YTYwNzdkNzk5YzI1NTdlMDk2MzIyMjgxYTcyNmRmOWQ4
YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xpZW50cy1tYXRjaGFsbC1leGFjdC1j
b250cm9sbGVyLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xpZW50cy1tYXRj
aGFsbC1leGFjdC1jb250cm9sbGVyLmh0dHBzLmh0bWwKQEAgLTUsNiArNSw3IEBACiA8c2NyaXB0
IHNyYz0icmVzb3VyY2VzL3Rlc3QtaGVscGVycy5zdWIuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4K
IGNvbnN0IHNjb3BlID0gJ3Jlc291cmNlcy9ibGFuay5odG1sP2NsaWVudHMtbWF0Y2hBbGwnOwor
Y29uc3QgdCA9IGFzeW5jX3Rlc3QoJ1Rlc3QgQ2xpZW50cy5tYXRjaEFsbCgpIHdpdGggZXhhY3Qg
Y29udHJvbGxlcicpOwogbGV0IGZyYW1lcyA9IFtdOwogCiBmdW5jdGlvbiBjaGVja1dvcmtlckNs
aWVudHMod29ya2VyLCBleHBlY3RlZCkgewpAQCAtMzIsMTIgKzMzLDEwIEBAIGxldCBleHBlY3Rl
ZCA9IFsKICAgICBbJ3Zpc2libGUnLCBmYWxzZSwgbmV3IFVSTChzY29wZSArICcjMicsIGxvY2F0
aW9uKS50b1N0cmluZygpLCAnd2luZG93JywgJ25lc3RlZCddCiBdOwogCi1wcm9taXNlX3Rlc3Qo
dCA9PiB7Cit0LnN0ZXAoXyA9PiB7CiAgICAgbGV0IHNjcmlwdCA9ICdyZXNvdXJjZXMvY2xpZW50
cy1tYXRjaGFsbC13b3JrZXIuanMnOwotICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lz
dGVyX2FuZF9yZWdpc3Rlcih0LCBzY3JpcHQsIHNjb3BlKQorICAgIHNlcnZpY2Vfd29ya2VyX3Vu
cmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHNjcmlwdCwgc2NvcGUpCiAgICAgICAudGhlbihyZWdp
c3RyYXRpb24gPT4gewotICAgICAgICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gc2VydmljZV93b3Jr
ZXJfdW5yZWdpc3Rlcih0LCBzY29wZSkpOwotCiAgICAgICAgICAgcmV0dXJuIHdhaXRfZm9yX3N0
YXRlKHQsIHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7CiAgICAgICAgIH0p
CiAgICAgICAudGhlbihfID0+IHdpdGhfaWZyYW1lKHNjb3BlICsgJyMxJykgKQpAQCAtNjIsNiAr
NjEsOCBAQCBwcm9taXNlX3Rlc3QodCA9PiB7CiAgICAgICAgIH0pCiAgICAgICAudGhlbihfID0+
IHsKICAgICAgICAgICBmcmFtZXMuZm9yRWFjaChmID0+IGYucmVtb3ZlKCkgKTsKLSAgICAgICAg
fSk7Ci19LCAnVGVzdCBDbGllbnRzLm1hdGNoQWxsKCkgd2l0aCBleGFjdCBjb250cm9sbGVyJyk7
CisgICAgICAgICAgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfZG9uZSh0LCBzY29wZSk7
CisgICAgICAgIH0pCisgICAgICAuY2F0Y2godW5yZWFjaGVkX3JlamVjdGlvbih0KSk7CisgIH0p
OwogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGllbnRzLW1hdGNo
YWxsLWluY2x1ZGUtdW5jb250cm9sbGVkLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9j
bGllbnRzLW1hdGNoYWxsLWluY2x1ZGUtdW5jb250cm9sbGVkLmh0dHBzLmh0bWwKaW5kZXggOWYz
NGU1NzA5ZWIzY2I2MDdkY2QxYjkxZWM4MGI1MWMzNzA2ZGNhNi4uNTBiZDgxN2Y1Njg4N2VkMjg3
YWMxNGMxMDhmOGYzZDdjYjRlZTYzMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xp
ZW50cy1tYXRjaGFsbC1pbmNsdWRlLXVuY29udHJvbGxlZC5odHRwcy5odG1sCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL2NsaWVudHMtbWF0Y2hhbGwtaW5jbHVkZS11bmNvbnRyb2xsZWQuaHR0cHMu
aHRtbApAQCAtNCwxMTQgKzQsOTAgQEAKIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGVzdC1oZWxw
ZXJzLnN1Yi5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgotZnVuY3Rpb24gdGVzdF9tYXRjaGFsbChz
ZXJ2aWNlX3dvcmtlciwgZXhwZWN0ZWQsIHF1ZXJ5X29wdGlvbnMpIHsKLSAgZXhwZWN0ZWQuc29y
dCgoYSwgYikgPT4gYVsyXSA+IGJbMl0gPyAxIDogLTEpOwotICByZXR1cm4gbmV3IFByb21pc2Uo
KHJlc29sdmUsIHJlamVjdCkgPT4gewotICAgIGNvbnN0IGNoYW5uZWwgPSBuZXcgTWVzc2FnZUNo
YW5uZWwoKTsKLSAgICBjaGFubmVsLnBvcnQxLm9ubWVzc2FnZSA9IGUgPT4gewotICAgICAgY29u
c3QgZGF0YSA9IGUuZGF0YS5maWx0ZXIoaW5mbyA9PiB7Ci0gICAgICAgIHJldHVybiBpbmZvWzJd
LmluZGV4T2YoJ2NsaWVudHMtbWF0Y2hhbGwnKSA+IC0xOwotICAgICAgfSk7Ci0gICAgICBkYXRh
LnNvcnQoKGEsIGIpID0+IGFbMl0gPiBiWzJdID8gMSA6IC0xKTsKLSAgICAgIGFzc2VydF9lcXVh
bHMoZGF0YS5sZW5ndGgsIGV4cGVjdGVkLmxlbmd0aCk7Ci0gICAgICBmb3IgKGxldCBpID0gMDsg
aSA8IGRhdGEubGVuZ3RoOyBpKyspCi0gICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoZGF0YVtp
XSwgZXhwZWN0ZWRbaV0pOwotICAgICAgcmVzb2x2ZSgpOwotICAgIH07Ci0gICAgc2VydmljZV93
b3JrZXIucG9zdE1lc3NhZ2Uoe3BvcnQ6Y2hhbm5lbC5wb3J0Miwgb3B0aW9uczpxdWVyeV9vcHRp
b25zfSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2hhbm5lbC5wb3J0Ml0pOwot
ICB9KTsKLX0KK3ZhciBiYXNlX3VybCA9ICdyZXNvdXJjZXMvYmxhbmsuaHRtbCc7IC8vIFRoaXMg
aXMgb3V0LW9mLXNjb3BlLgordmFyIHNjb3BlID0gYmFzZV91cmwgKyAnP2NsaWVudHMtbWF0Y2hB
bGwtaW5jbHVkZVVuY29udHJvbGxlZCc7Cit2YXIgZnJhbWVzID0gW107CiAKLS8vIFJ1biBjbGll
bnRzLm1hdGNoQWxsIHdpdGhvdXQgYW5kIHdpdGggaW5jbHVkZVVuY29udHJvbGxlZD10cnVlLgot
Ly8gKFdlIHdhbnQgdG8gcnVuIHRoZSB0d28gdGVzdHMgc2VxdWVudGlhbGx5IGluIHRoZSBzYW1l
IHByb21pc2VfdGVzdAotLy8gc28gdGhhdCB3ZSBjYW4gdXNlIHRoZSBzYW1lIHNldCBvZiBpZnJh
bWVzIHdpdGhvdXQgaW50ZWZlcmluZyBlYWNoIG90aGVyLgotcHJvbWlzZV90ZXN0KGFzeW5jIHQg
PT4gewotICAvLyB8YmFzZV91cmx8IGlzIG91dC1vZi1zY29wZS4KLSAgY29uc3QgYmFzZV91cmwg
PSAncmVzb3VyY2VzL2JsYW5rLmh0bWw/Y2xpZW50cy1tYXRjaGFsbCc7Ci0gIGNvbnN0IHNjb3Bl
ID0gYmFzZV91cmwgKyAnLWluY2x1ZGVVbmNvbnRyb2xsZWQnOwotCi0gIGNvbnN0IHJlZ2lzdHJh
dGlvbiA9Ci0gICAgICBhd2FpdCBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rl
cigKLSAgICAgICAgICB0LCAncmVzb3VyY2VzL2NsaWVudHMtbWF0Y2hhbGwtd29ya2VyLmpzJywg
c2NvcGUpOwotICB0LmFkZF9jbGVhbnVwKCgpID0+IHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXIo
dCwgc2NvcGUpKTsKLSAgY29uc3Qgc2VydmljZV93b3JrZXIgPSByZWdpc3RyYXRpb24uaW5zdGFs
bGluZzsKLSAgYXdhaXQgd2FpdF9mb3Jfc3RhdGUodCwgc2VydmljZV93b3JrZXIsICdhY3RpdmF0
ZWQnKTsKLQotICAvLyBDcmVhdGVzIDMgaWZyYW1lcywgMiBmb3IgaW4tc2NvcGUgYW5kIDEgZm9y
IG91dC1vZi1zY29wZS4KLSAgbGV0IGZyYW1lcyA9IFtdOwotICBmcmFtZXMucHVzaChhd2FpdCB3
aXRoX2lmcmFtZShiYXNlX3VybCkpOwotICBmcmFtZXMucHVzaChhd2FpdCB3aXRoX2lmcmFtZShz
Y29wZSArICcjMScpKTsKLSAgZnJhbWVzLnB1c2goYXdhaXQgd2l0aF9pZnJhbWUoc2NvcGUgKyAn
IzInKSk7Ci0KLSAgLy8gTWFrZSBzdXJlIHdlIGhhdmUgZm9jdXMgZm9yICcjMicgZnJhbWUgYW5k
IGl0cyBwYXJlbnQgd2luZG93LgotICBmcmFtZXNbMl0uZm9jdXMoKTsKLSAgZnJhbWVzWzJdLmNv
bnRlbnRXaW5kb3cuZm9jdXMoKTsKKy8vIENyZWF0ZXMgMyBpZnJhbWVzLCAyIGZvciBpbi1zY29w
ZSBhbmQgMSBmb3Igb3V0LW9mLXNjb3BlLgorLy8gVGhlIGZyYW1lIG9wZW5lZCBmb3Igc2NvcGUg
KyAnIzInIGlzIHJldHVybmVkIHZpYSBhIHByb21pc2UuCitmdW5jdGlvbiBjcmVhdGVfaWZyYW1l
cyhzY29wZSkgeworICByZXR1cm4gd2l0aF9pZnJhbWUoYmFzZV91cmwpCisgICAgLnRoZW4oZnVu
Y3Rpb24oZnJhbWUwKSB7CisgICAgICAgIGZyYW1lcy5wdXNoKGZyYW1lMCk7CisgICAgICAgIHJl
dHVybiB3aXRoX2lmcmFtZShzY29wZSArICcjMScpOworICAgICAgfSkKKyAgICAudGhlbihmdW5j
dGlvbihmcmFtZTEpIHsKKyAgICAgICAgZnJhbWVzLnB1c2goZnJhbWUxKTsKKyAgICAgICAgcmV0
dXJuIHdpdGhfaWZyYW1lKHNjb3BlICsgJyMyJyk7CisgICAgICB9KQorICAgIC50aGVuKGZ1bmN0
aW9uKGZyYW1lMikgeworICAgICAgICBmcmFtZXMucHVzaChmcmFtZTIpOworICAgICAgICByZXR1
cm4gZnJhbWUyOworICAgICAgfSkKK30KIAotICBjb25zdCBleHBlY3RlZF93aXRob3V0X2luY2x1
ZGVfdW5jb250cm9sbGVkID0gWwordmFyIGV4cGVjdGVkX3dpdGhvdXRfaW5jbHVkZV91bmNvbnRy
b2xsZWQgPSBbCiAgICAgLy8gdmlzaWJpbGl0eVN0YXRlLCBmb2N1c2VkLCB1cmwsIHR5cGUsIGZy
YW1lVHlwZQogICAgIFsndmlzaWJsZScsIGZhbHNlLCBuZXcgVVJMKHNjb3BlICsgJyMxJywgbG9j
YXRpb24pLnRvU3RyaW5nKCksICd3aW5kb3cnLCAnbmVzdGVkJ10sCiAgICAgWyd2aXNpYmxlJywg
dHJ1ZSwgbmV3IFVSTChzY29wZSArICcjMicsIGxvY2F0aW9uKS50b1N0cmluZygpLCAnd2luZG93
JywgJ25lc3RlZCddCi0gIF07Ci0gIGNvbnN0IGV4cGVjdGVkX3dpdGhfaW5jbHVkZV91bmNvbnRy
b2xsZWQgPSBbCitdOworCit2YXIgZXhwZWN0ZWRfd2l0aF9pbmNsdWRlX3VuY29udHJvbGxlZCA9
IFsKICAgICAvLyB2aXNpYmlsaXR5U3RhdGUsIGZvY3VzZWQsIHVybCwgdHlwZSwgZnJhbWVUeXBl
CiAgICAgWyd2aXNpYmxlJywgdHJ1ZSwgbG9jYXRpb24uaHJlZiwgJ3dpbmRvdycsICd0b3AtbGV2
ZWwnXSwKICAgICBbJ3Zpc2libGUnLCBmYWxzZSwgbmV3IFVSTChzY29wZSArICcjMScsIGxvY2F0
aW9uKS50b1N0cmluZygpLCAnd2luZG93JywgJ25lc3RlZCddLAogICAgIFsndmlzaWJsZScsIHRy
dWUsIG5ldyBVUkwoc2NvcGUgKyAnIzInLCBsb2NhdGlvbikudG9TdHJpbmcoKSwgJ3dpbmRvdycs
ICduZXN0ZWQnXSwKICAgICBbJ3Zpc2libGUnLCBmYWxzZSwgbmV3IFVSTChiYXNlX3VybCwgbG9j
YXRpb24pLnRvU3RyaW5nKCksICd3aW5kb3cnLCAnbmVzdGVkJ10KLSAgXTsKLQotICBhd2FpdCB0
ZXN0X21hdGNoYWxsKHNlcnZpY2Vfd29ya2VyLCBleHBlY3RlZF93aXRob3V0X2luY2x1ZGVfdW5j
b250cm9sbGVkKTsKLSAgYXdhaXQgdGVzdF9tYXRjaGFsbChzZXJ2aWNlX3dvcmtlciwgZXhwZWN0
ZWRfd2l0aF9pbmNsdWRlX3VuY29udHJvbGxlZCwKLSAgICAgICAgICAgICAgICAgICAgICB7IGlu
Y2x1ZGVVbmNvbnRyb2xsZWQ6IHRydWUgfSk7Ci19LCAnVmVyaWZ5IG1hdGNoQWxsKCkgd2l0aCB3
aW5kb3dzIHJlc3BlY3QgaW5jbHVkZVVuY29udHJvbGxlZCcpOworXTsKIAotLy8gVE9ETzogQWRk
IHRlc3RzIGZvciBjbGllbnRzLm1hdGNoQWxsIGZvciBkZWRpY2F0ZWQgd29ya2Vycy4KLQotYXN5
bmMgZnVuY3Rpb24gY3JlYXRlX3NoYXJlZF93b3JrZXIoc2NyaXB0X3VybCkgewotICBjb25zdCBz
aGFyZWRfd29ya2VyID0gbmV3IFNoYXJlZFdvcmtlcihzY3JpcHRfdXJsKTsKLSAgY29uc3QgbXNn
RXZlbnQgPSBhd2FpdCBuZXcgUHJvbWlzZShyID0+IHNoYXJlZF93b3JrZXIucG9ydC5vbm1lc3Nh
Z2UgPSByKTsKLSAgYXNzZXJ0X2VxdWFscyhtc2dFdmVudC5kYXRhLCAnc3RhcnRlZCcpOwotICBy
ZXR1cm4gc2hhcmVkX3dvcmtlcjsKK2Z1bmN0aW9uIHRlc3RfbWF0Y2hhbGwoZnJhbWUsIGV4cGVj
dGVkLCBxdWVyeV9vcHRpb25zKSB7CisgIC8vIE1ha2Ugc3VyZSB3ZSBoYXZlIGZvY3VzIGZvciAn
IzInIGZyYW1lIGFuZCBpdHMgcGFyZW50IHdpbmRvdy4KKyAgZnJhbWUuZm9jdXMoKTsKKyAgZnJh
bWUuY29udGVudFdpbmRvdy5mb2N1cygpOworICBleHBlY3RlZC5zb3J0KGZ1bmN0aW9uKGEsIGIp
IHsgcmV0dXJuIGFbMl0gPiBiWzJdID8gMSA6IC0xOyB9KTsKKyAgcmV0dXJuIG5ldyBQcm9taXNl
KGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgeworICAgIHZhciBjaGFubmVsID0gbmV3IE1lc3Nh
Z2VDaGFubmVsKCk7CisgICAgY2hhbm5lbC5wb3J0MS5vbm1lc3NhZ2UgPSBmdW5jdGlvbihlKSB7
CisgICAgICAvLyBJZ25vcmUgaGlkZGVuIGNsaWVudHMgd2hpY2ggbWF5IGJlIGNvbWluZyBmcm9t
IGJhY2tncm91bmQgdGFicywgb3IKKyAgICAgIC8vIGNsaWVudHMgdW5yZWxhdGVkIHRvIHRoaXMg
dGVzdC4KKyAgICAgIHZhciBkYXRhID0gZS5kYXRhLmZpbHRlcihmdW5jdGlvbihpbmZvKSB7Cisg
ICAgICAgIHJldHVybiBpbmZvWzBdID09ICd2aXNpYmxlJyAmJgorICAgICAgICAgICAgICAgaW5m
b1syXS5pbmRleE9mKCdzZXJ2aWNlLXdvcmtlcicpID4gLTE7CisgICAgICB9KTsKKyAgICAgIGRh
dGEuc29ydChmdW5jdGlvbihhLCBiKSB7IHJldHVybiBhWzJdID4gYlsyXSA/IDEgOiAtMTsgfSk7
CisgICAgICBhc3NlcnRfZXF1YWxzKGRhdGEubGVuZ3RoLCBleHBlY3RlZC5sZW5ndGgpOworICAg
ICAgZm9yICh2YXIgaSA9IDA7IGkgPCBkYXRhLmxlbmd0aDsgaSsrKQorICAgICAgICBhc3NlcnRf
YXJyYXlfZXF1YWxzKGRhdGFbaV0sIGV4cGVjdGVkW2ldKTsKKyAgICAgIHJlc29sdmUoZnJhbWUp
OworICAgIH07CisgICAgZnJhbWUuY29udGVudFdpbmRvdy5uYXZpZ2F0b3Iuc2VydmljZVdvcmtl
ci5jb250cm9sbGVyLnBvc3RNZXNzYWdlKAorICAgICAgICB7cG9ydDpjaGFubmVsLnBvcnQyLCBv
cHRpb25zOnF1ZXJ5X29wdGlvbnN9LAorICAgICAgICBbY2hhbm5lbC5wb3J0Ml0pOworICB9KTsK
IH0KIAotLy8gUnVuIGNsaWVudHMubWF0Y2hBbGwgZm9yIHNoYXJlZCB3b3JrZXJzIHdpdGhvdXQg
YW5kIHdpdGgKLS8vIGluY2x1ZGVVbmNvbnRyb2xsZWQ9dHJ1ZS4KLXByb21pc2VfdGVzdChhc3lu
YyB0ID0+IHsKLSAgY29uc3Qgc2NyaXB0X3VybCA9ICdyZXNvdXJjZXMvY2xpZW50cy1tYXRjaGFs
bC1jbGllbnQtdHlwZXMtc2hhcmVkLXdvcmtlci5qcyc7Ci0gIGNvbnN0IHVuY29udHJvbGxlZF9z
Y3JpcHRfdXJsID0KLSAgICAgIG5ldyBVUkwoc2NyaXB0X3VybCArICc/dW5jb250cm9sbGVkJywg
bG9jYXRpb24pLnRvU3RyaW5nKCk7Ci0gIGNvbnN0IGNvbnRyb2xsZWRfc2NyaXB0X3VybCA9Ci0g
ICAgICBuZXcgVVJMKHNjcmlwdF91cmwgKyAnP2NvbnRyb2xsZWQnLCBsb2NhdGlvbikudG9TdHJp
bmcoKTsKLQotICAvLyBTdGFydCBhIHNoYXJlZCB3b3JrZXIgdGhhdCBpcyBub3QgY29udHJvbGxl
ZCBieSBhIHNlcnZpY2Ugd29ya2VyLgotICBjb25zdCB1bmNvbnRyb2xsZWRfc2hhcmVkX3dvcmtl
ciA9Ci0gICAgICBhd2FpdCBjcmVhdGVfc2hhcmVkX3dvcmtlcih1bmNvbnRyb2xsZWRfc2NyaXB0
X3VybCk7Ci0KLSAgLy8gUmVnaXN0ZXIgYSBzZXJ2aWNlIHdvcmtlci4KLSAgY29uc3QgcmVnaXN0
cmF0aW9uID0KLSAgICAgIGF3YWl0IHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lz
dGVyKAotICAgICAgICAgIHQsICdyZXNvdXJjZXMvY2xpZW50cy1tYXRjaGFsbC13b3JrZXIuanMn
LCBzY3JpcHRfdXJsKTsKLSAgdC5hZGRfY2xlYW51cCgoKSA9PiBzZXJ2aWNlX3dvcmtlcl91bnJl
Z2lzdGVyKHQsIHNjcmlwdF91cmwpKTsKLSAgY29uc3Qgc2VydmljZV93b3JrZXIgPSByZWdpc3Ry
YXRpb24uaW5zdGFsbGluZzsKLSAgYXdhaXQgd2FpdF9mb3Jfc3RhdGUodCwgc2VydmljZV93b3Jr
ZXIsICdhY3RpdmF0ZWQnKTsKLQotICAvLyBTdGFydCBhbm90aGVyIHNoYXJlZCB3b3JrZXIgY29u
dHJvbGxlZCBieSB0aGUgc2VydmljZSB3b3JrZXIuCi0gIGF3YWl0IGNyZWF0ZV9zaGFyZWRfd29y
a2VyKGNvbnRyb2xsZWRfc2NyaXB0X3VybCk7Ci0KLSAgY29uc3QgZXhwZWN0ZWRfd2l0aG91dF9p
bmNsdWRlX3VuY29udHJvbGxlZCA9IFsKLSAgICAvLyB2aXNpYmlsaXR5U3RhdGUsIGZvY3VzZWQs
IHVybCwgdHlwZSwgZnJhbWVUeXBlCi0gICAgW3VuZGVmaW5lZCwgdW5kZWZpbmVkLCBjb250cm9s
bGVkX3NjcmlwdF91cmwsICdzaGFyZWR3b3JrZXInLCAnbm9uZSddLAotICBdOwotICBjb25zdCBl
eHBlY3RlZF93aXRoX2luY2x1ZGVfdW5jb250cm9sbGVkID0gWwotICAgIC8vIHZpc2liaWxpdHlT
dGF0ZSwgZm9jdXNlZCwgdXJsLCB0eXBlLCBmcmFtZVR5cGUKLSAgICBbdW5kZWZpbmVkLCB1bmRl
ZmluZWQsIGNvbnRyb2xsZWRfc2NyaXB0X3VybCwgJ3NoYXJlZHdvcmtlcicsICdub25lJ10sCi0g
ICAgW3VuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmNvbnRyb2xsZWRfc2NyaXB0X3VybCwgJ3NoYXJl
ZHdvcmtlcicsICdub25lJ10sCi0gIF07CisvLyBSdW4gY2xpZW50cy5tYXRjaEFsbCB3aXRob3V0
IGFuZCB3aXRoIGluY2x1ZGVVbmNvbnRyb2xsZWQ9dHJ1ZS4KKy8vIChXZSB3YW50IHRvIHJ1biB0
aGUgdHdvIHRlc3RzIHNlcXVlbnRpYWxseSBpbiB0aGUgc2FtZSBhc3luY190ZXN0CisvLyBzbyB0
aGF0IHdlIGNhbiB1c2UgdGhlIHNhbWUgc2V0IG9mIGlmcmFtZXMgd2l0aG91dCBpbnRlZmVyaW5n
IGVhY2ggb3RoZXIuCithc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgICBzZXJ2aWNlX3dvcmtl
cl91bnJlZ2lzdGVyX2FuZF9yZWdpc3RlcigKKyAgICAgICAgdCwgJ3Jlc291cmNlcy9jbGllbnRz
LW1hdGNoYWxsLXdvcmtlci5qcycsIHNjb3BlKQorICAgICAgLnRoZW4oZnVuY3Rpb24ocmVnaXN0
cmF0aW9uKSB7CisgICAgICAgICAgcmV0dXJuIHdhaXRfZm9yX3N0YXRlKHQsIHJlZ2lzdHJhdGlv
bi5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7CisgICAgICAgIH0pCisgICAgICAudGhlbihmdW5j
dGlvbigpIHsgcmV0dXJuIGNyZWF0ZV9pZnJhbWVzKHNjb3BlKTsgfSkKKyAgICAgIC50aGVuKGZ1
bmN0aW9uKGZyYW1lKSB7CisgICAgICAgICAgcmV0dXJuIHRlc3RfbWF0Y2hhbGwoZnJhbWUsIGV4
cGVjdGVkX3dpdGhvdXRfaW5jbHVkZV91bmNvbnRyb2xsZWQpOworICAgICAgICB9KQorICAgICAg
LnRoZW4oZnVuY3Rpb24oZnJhbWUpIHsKKyAgICAgICAgICByZXR1cm4gdGVzdF9tYXRjaGFsbChm
cmFtZSwgZXhwZWN0ZWRfd2l0aF9pbmNsdWRlX3VuY29udHJvbGxlZCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB7aW5jbHVkZVVuY29udHJvbGxlZDp0cnVlfSk7CisgICAgICAgIH0p
CisgICAgICAudGhlbihmdW5jdGlvbigpIHsKKyAgICAgICAgICBmcmFtZXMuZm9yRWFjaChmdW5j
dGlvbihmKSB7IGYucmVtb3ZlKCkgfSk7CisgICAgICAgICAgc2VydmljZV93b3JrZXJfdW5yZWdp
c3Rlcl9hbmRfZG9uZSh0LCBzY29wZSk7CisgICAgICAgIH0pCisgICAgICAuY2F0Y2godW5yZWFj
aGVkX3JlamVjdGlvbih0KSk7CisgIH0sICdWZXJpZnkgbWF0Y2hBbGwoKSByZXNwZWN0IGluY2x1
ZGVVbmNvbnRyb2xsZWQnKTsKIAotICBhd2FpdCB0ZXN0X21hdGNoYWxsKHNlcnZpY2Vfd29ya2Vy
LCBleHBlY3RlZF93aXRob3V0X2luY2x1ZGVfdW5jb250cm9sbGVkLAotICAgICAgICAgICAgICAg
ICAgICAgIHsgdHlwZTogJ3NoYXJlZHdvcmtlcicgfSk7Ci0gIGF3YWl0IHRlc3RfbWF0Y2hhbGwo
c2VydmljZV93b3JrZXIsIGV4cGVjdGVkX3dpdGhfaW5jbHVkZV91bmNvbnRyb2xsZWQsCi0gICAg
ICAgICAgICAgICAgICAgICAgeyBpbmNsdWRlVW5jb250cm9sbGVkOiB0cnVlLCB0eXBlOiAnc2hh
cmVkd29ya2VyJyB9KTsKLX0sICdWZXJpZnkgbWF0Y2hBbGwoKSB3aXRoIHNoYXJlZCB3b3JrZXJz
IHJlc3BlY3QgaW5jbHVkZVVuY29udHJvbGxlZCcpOwogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci9jbGllbnRzLW1hdGNoYWxsLW9yZGVyLmh0dHBzLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9jbGllbnRzLW1hdGNoYWxsLW9yZGVyLmh0dHBzLmh0bWwKaW5kZXggZWM2
NTBmMjI2NGRmNTMwYmQzNGIxMTczN2M0YjFkOWVkODdmNGI1Ni4uMmMxZTk1NmQxZDg0YmY4MmUz
Nzk4Mjc4MTkxNGJiYWE3MmE0MjA2MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xp
ZW50cy1tYXRjaGFsbC1vcmRlci5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2Ns
aWVudHMtbWF0Y2hhbGwtb3JkZXIuaHR0cHMuaHRtbApAQCAtMSw2ICsxLDUgQEAKIDwhRE9DVFlQ
RSBodG1sPgogPHRpdGxlPlNlcnZpY2UgV29ya2VyOiBDbGllbnRzLm1hdGNoQWxsIG9yZGVyaW5n
PC90aXRsZT4KLTxtZXRhIG5hbWU9dGltZW91dCBjb250ZW50PWxvbmc+CiA8c2NyaXB0IHNyYz0i
L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iL3Jlc291
cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL3Rlc3QtaGVscGVycy5zdWIuanMiPjwvc2NyaXB0PgpAQCAtMTIzLDggKzEyMiw2IEBAIGZ1
bmN0aW9uIG1hdGNoQWxsT3JkZXJUZXN0KHQsIG9wdHMpIHsKICAgbGV0IGZyYW1lUmVzdWx0TGlz
dDsKICAgbGV0IGV4dHJhV2luZG93UmVzdWx0OwogICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5y
ZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgc2NyaXB0LCBvcHRzLnNjb3BlKS50aGVuKHN3ciA9PiB7
Ci0gICAgdC5hZGRfY2xlYW51cCgoKSA9PiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyKHQsIG9w
dHMuc2NvcGUpKTsKLQogICAgIHdvcmtlciA9IHN3ci5pbnN0YWxsaW5nOwogICAgIHJldHVybiB3
YWl0X2Zvcl9zdGF0ZSh0LCB3b3JrZXIsICdhY3RpdmF0ZWQnKTsKICAgfSkudGhlbihfID0+IHsK
QEAgLTE0NSw2ICsxNDIsOCBAQCBmdW5jdGlvbiBtYXRjaEFsbE9yZGVyVGVzdCh0LCBvcHRzKSB7
CiAgIH0pLnRoZW4oXyA9PiB7CiAgICAgZnJhbWVSZXN1bHRMaXN0LmZvckVhY2gocmVzdWx0ID0+
IHJlc3VsdC50b3AucmVtb3ZlKCkpOwogICAgIGV4dHJhV2luZG93UmVzdWx0LnRvcC5yZW1vdmUo
KTsKKyAgfSkudGhlbihfID0+IHsKKyAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rl
cl9hbmRfZG9uZSh0LCBvcHRzLnNjb3BlKTsKICAgfSkuY2F0Y2goZSA9PiB7CiAgICAgaWYgKGZy
YW1lUmVzdWx0TGlzdCkgewogICAgICAgZnJhbWVSZXN1bHRMaXN0LmZvckVhY2gocmVzdWx0ID0+
IHJlc3VsdC50b3AucmVtb3ZlKCkpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xp
ZW50cy1tYXRjaGFsbC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xpZW50cy1tYXRj
aGFsbC5odHRwcy5odG1sCmluZGV4IGNlNDRmMTkyNGQ1NDk1MmFmZTQ0MmIxOWJkMGI0NmM1Zjky
OTUxZDUuLjM2MjY5YjRkOThlMmI3MmY1NTUxODI2OGMxYmNmZDE0YWJiMjEyOTkgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsaWVudHMtbWF0Y2hhbGwuaHR0cHMuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci9jbGllbnRzLW1hdGNoYWxsLmh0dHBzLmh0bWwKQEAgLTUsMTUgKzUs
MTIgQEAKIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGVzdC1oZWxwZXJzLnN1Yi5qcyI+PC9zY3Jp
cHQ+CiA8c2NyaXB0PgogdmFyIHNjb3BlID0gJ3Jlc291cmNlcy9ibGFuay5odG1sP2NsaWVudHMt
bWF0Y2hBbGwnOwordmFyIHQgPSBhc3luY190ZXN0KCdUZXN0IENsaWVudHMubWF0Y2hBbGwoKScp
OwogdmFyIGZyYW1lcyA9IFtdOwotcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKLSAgICByZXR1
cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIoCit0LnN0ZXAoZnVuY3Rp
b24oKSB7CisgICAgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIoCiAgICAg
ICAgIHQsICdyZXNvdXJjZXMvY2xpZW50cy1tYXRjaGFsbC13b3JrZXIuanMnLCBzY29wZSkKICAg
ICAgIC50aGVuKGZ1bmN0aW9uKHJlZ2lzdHJhdGlvbikgewotICAgICAgICAgIHQuYWRkX2NsZWFu
dXAoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJl
Z2lzdGVyKHQsIHNjb3BlKTsKLSAgICAgICAgICAgIH0pOwotCiAgICAgICAgICAgcmV0dXJuIHdh
aXRfZm9yX3N0YXRlKHQsIHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7CiAg
ICAgICAgIH0pCiAgICAgICAudGhlbihmdW5jdGlvbigpIHsgcmV0dXJuIHdpdGhfaWZyYW1lKHNj
b3BlICsgJyMxJyk7IH0pCkBAIC0yNSwxNSArMjIsMTIgQEAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9u
KHQpIHsKICAgICAgIC50aGVuKGZ1bmN0aW9uKGZyYW1lMikgewogICAgICAgICAgIGZyYW1lcy5w
dXNoKGZyYW1lMik7CiAgICAgICAgICAgdmFyIGNoYW5uZWwgPSBuZXcgTWVzc2FnZUNoYW5uZWwo
KTsKLQotICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlKSB7Ci0g
ICAgICAgICAgICAgIGNoYW5uZWwucG9ydDEub25tZXNzYWdlID0gcmVzb2x2ZTsKLSAgICAgICAg
ICAgICAgZnJhbWUyLmNvbnRlbnRXaW5kb3cubmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuY29udHJv
bGxlci5wb3N0TWVzc2FnZSgKLSAgICAgICAgICAgICAgICAgIHtwb3J0OmNoYW5uZWwucG9ydDJ9
LCBbY2hhbm5lbC5wb3J0Ml0pOwotICAgICAgICAgICAgfSk7CisgICAgICAgICAgY2hhbm5lbC5w
b3J0MS5vbm1lc3NhZ2UgPSB0LnN0ZXBfZnVuYyhvbk1lc3NhZ2UpOworICAgICAgICAgIGZyYW1l
Mi5jb250ZW50V2luZG93Lm5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLmNvbnRyb2xsZXIucG9zdE1l
c3NhZ2UoCisgICAgICAgICAgICAgIHtwb3J0OmNoYW5uZWwucG9ydDJ9LCBbY2hhbm5lbC5wb3J0
Ml0pOwogICAgICAgICB9KQotICAgICAgLnRoZW4ob25NZXNzYWdlKTsKLX0sICdUZXN0IENsaWVu
dHMubWF0Y2hBbGwoKScpOworICAgICAgLmNhdGNoKHVucmVhY2hlZF9yZWplY3Rpb24odCkpOwor
ICB9KTsKIAogdmFyIGV4cGVjdGVkID0gWwogICAgIC8vIHZpc2liaWxpdHlTdGF0ZSwgZm9jdXNl
ZCwgdXJsLCB0eXBlLCBmcmFtZVR5cGUKQEAgLTQ2LDUgKzQwLDYgQEAgZnVuY3Rpb24gb25NZXNz
YWdlKGUpIHsKICAgYXNzZXJ0X2FycmF5X2VxdWFscyhlLmRhdGFbMF0sIGV4cGVjdGVkWzBdKTsK
ICAgYXNzZXJ0X2FycmF5X2VxdWFscyhlLmRhdGFbMV0sIGV4cGVjdGVkWzFdKTsKICAgZnJhbWVz
LmZvckVhY2goZnVuY3Rpb24oZikgeyBmLnJlbW92ZSgpOyB9KTsKKyAgc2VydmljZV93b3JrZXJf
dW5yZWdpc3Rlcl9hbmRfZG9uZSh0LCBzY29wZSk7CiB9CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL2NvbnRyb2xsZXItb24tZGlzY29ubmVjdC5odHRwcy5odG1sIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvY29udHJvbGxlci1vbi1kaXNjb25uZWN0Lmh0dHBzLmh0bWwKaW5k
ZXggZjIzZGZlNzFiYWM1MDVmMWNjMzk2YmNhYjE5MWRiZWU3YTY0NjFmNC4uOTIwZDE5MGUzYjIw
MTQ3Y2YxODNmODk2NjRmZjdlZDg0YTRlYzNkZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvY29udHJvbGxlci1vbi1kaXNjb25uZWN0Lmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvY29udHJvbGxlci1vbi1kaXNjb25uZWN0Lmh0dHBzLmh0bWwKQEAgLTUsMjUgKzUsMjIg
QEAKIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGVzdC1oZWxwZXJzLnN1Yi5qcyI+PC9zY3JpcHQ+
CiA8Ym9keT4KIDxzY3JpcHQ+Ci1wcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewordmFyIHQgPSBh
c3luY190ZXN0KCdjb250cm9sbGVyIGlzIGNsZWFyZWQgb24gZGlzY29ubmVjdGVkIHdpbmRvdycp
OwordC5zdGVwKGZ1bmN0aW9uKCkgewogICAgIHZhciB1cmwgPSAncmVzb3VyY2VzL2VtcHR5LXdv
cmtlci5qcyc7CiAgICAgdmFyIHNjb3BlID0gJ3Jlc291cmNlcy9ibGFuay5odG1sJzsKICAgICB2
YXIgcmVnaXN0cmF0aW9uOwogICAgIHZhciBjb250cm9sbGVyOwogICAgIHZhciBmcmFtZTsKLSAg
ICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgdXJsLCBz
Y29wZSkKLSAgICAgIC50aGVuKGZ1bmN0aW9uKHN3cikgewotICAgICAgICAgIHQuYWRkX2NsZWFu
dXAoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJl
Z2lzdGVyKHQsIHNjb3BlKTsKLSAgICAgICAgICAgIH0pOwotCisgICAgc2VydmljZV93b3JrZXJf
dW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgdXJsLCBzY29wZSkKKyAgICAgIC50aGVuKHQuc3Rl
cF9mdW5jKGZ1bmN0aW9uKHN3cikgewogICAgICAgICAgIHJlZ2lzdHJhdGlvbiA9IHN3cjsKICAg
ICAgICAgICByZXR1cm4gd2FpdF9mb3Jfc3RhdGUodCwgcmVnaXN0cmF0aW9uLmluc3RhbGxpbmcs
ICdhY3RpdmF0ZWQnKTsKLSAgICAgICAgfSkKLSAgICAgIC50aGVuKGZ1bmN0aW9uKCkgeworICAg
ICAgICB9KSkKKyAgICAgIC50aGVuKHQuc3RlcF9mdW5jKGZ1bmN0aW9uKCkgewogICAgICAgICAg
IHJldHVybiB3aXRoX2lmcmFtZShzY29wZSkKLSAgICAgICAgfSkKLSAgICAgIC50aGVuKGZ1bmN0
aW9uKGYpIHsKKyAgICAgICAgfSkpCisgICAgICAudGhlbih0LnN0ZXBfZnVuYyhmdW5jdGlvbihm
KSB7CiAgICAgICAgICAgZnJhbWUgPSBmOwogICAgICAgICAgIHZhciB3ID0gZnJhbWUuY29udGVu
dFdpbmRvdzsKICAgICAgICAgICB2YXIgc3djID0gdy5uYXZpZ2F0b3Iuc2VydmljZVdvcmtlcjsK
QEAgLTM0LDcgKzMxLDEwIEBAIHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7CiAKICAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKHN3Yy5jb250cm9sbGVyLCBudWxsLAogICAgICAgICAgICAgICAgICAg
ICAgICAgJ2Rpc2Nvbm5lY3RlZCBmcmFtZSBzaG91bGQgbm90IGJlIGNvbnRyb2xsZWQnKTsKLSAg
ICAgICAgfSk7Ci19LCAnY29udHJvbGxlciBpcyBjbGVhcmVkIG9uIGRpc2Nvbm5lY3RlZCB3aW5k
b3cnKTsKKworICAgICAgICAgIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX2RvbmUodCwg
c2NvcGUpOworICAgICAgICB9KSkKKyAgICAgIC5jYXRjaCh1bnJlYWNoZWRfcmVqZWN0aW9uKHQp
KTsKKyAgfSk7CiA8L3NjcmlwdD4KIDwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL2NvbnRyb2xsZXItb24tbG9hZC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY29u
dHJvbGxlci1vbi1sb2FkLmh0dHBzLmh0bWwKaW5kZXggZTRjNWU1ZjgxZjgxMzllMWM3ODhmMDY4
ZjcxNmNkYmIzNjdmYjgzZS4uNDlmOTg3OTYyNmIwYzU5NTdjNzVlNjRjMzQyMTVjOGU1Y2NjYjUz
NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY29udHJvbGxlci1vbi1sb2FkLmh0dHBz
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY29udHJvbGxlci1vbi1sb2FkLmh0dHBzLmh0
bWwKQEAgLTUsMjUgKzUsMjIgQEAKIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGVzdC1oZWxwZXJz
LnN1Yi5qcyI+PC9zY3JpcHQ+CiA8Ym9keT4KIDxzY3JpcHQ+Ci1wcm9taXNlX3Rlc3QoZnVuY3Rp
b24odCkgewordmFyIHQgPSBhc3luY190ZXN0KCdjb250cm9sbGVyIGlzIHNldCBmb3IgYSBjb250
cm9sbGVkIGRvY3VtZW50Jyk7Cit0LnN0ZXAoZnVuY3Rpb24oKSB7CiAgICAgdmFyIHVybCA9ICdy
ZXNvdXJjZXMvZW1wdHktd29ya2VyLmpzJzsKICAgICB2YXIgc2NvcGUgPSAncmVzb3VyY2VzL2Js
YW5rLmh0bWwnOwogICAgIHZhciByZWdpc3RyYXRpb247CiAgICAgdmFyIGNvbnRyb2xsZXI7CiAg
ICAgdmFyIGZyYW1lOwotICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9y
ZWdpc3Rlcih0LCB1cmwsIHNjb3BlKQotICAgICAgLnRoZW4oZnVuY3Rpb24oc3dyKSB7Ci0gICAg
ICAgICAgdC5hZGRfY2xlYW51cChmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgcmV0dXJuIHNl
cnZpY2Vfd29ya2VyX3VucmVnaXN0ZXIodCwgc2NvcGUpOwotICAgICAgICAgICAgfSk7Ci0KKyAg
ICBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCB1cmwsIHNjb3BlKQor
ICAgICAgLnRoZW4odC5zdGVwX2Z1bmMoZnVuY3Rpb24oc3dyKSB7CiAgICAgICAgICAgcmVnaXN0
cmF0aW9uID0gc3dyOwogICAgICAgICAgIHJldHVybiB3YWl0X2Zvcl9zdGF0ZSh0LCByZWdpc3Ry
YXRpb24uaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOwotICAgICAgICB9KQotICAgICAgLnRoZW4o
ZnVuY3Rpb24oKSB7CisgICAgICAgIH0pKQorICAgICAgLnRoZW4odC5zdGVwX2Z1bmMoZnVuY3Rp
b24oKSB7CiAgICAgICAgICAgcmV0dXJuIHdpdGhfaWZyYW1lKHNjb3BlKTsKLSAgICAgICAgfSkK
LSAgICAgIC50aGVuKGZ1bmN0aW9uKGYpIHsKKyAgICAgICAgfSkpCisgICAgICAudGhlbih0LnN0
ZXBfZnVuYyhmdW5jdGlvbihmKSB7CiAgICAgICAgICAgZnJhbWUgPSBmOwogICAgICAgICAgIHZh
ciB3ID0gZnJhbWUuY29udGVudFdpbmRvdzsKICAgICAgICAgICBjb250cm9sbGVyID0gdy5uYXZp
Z2F0b3Iuc2VydmljZVdvcmtlci5jb250cm9sbGVyOwpAQCAtMzUsMTIgKzMyLDE0IEBAIHByb21p
c2VfdGVzdChmdW5jdGlvbih0KSB7CiAgICAgICAgICAgYXNzZXJ0X25vdF9lcXVhbHMoY29udHJv
bGxlciwgcmVnaXN0cmF0aW9uLmFjdGl2ZSk7CiAKICAgICAgICAgICByZXR1cm4gdy5uYXZpZ2F0
b3Iuc2VydmljZVdvcmtlci5nZXRSZWdpc3RyYXRpb24oKTsKLSAgICAgICAgfSkKLSAgICAgIC50
aGVuKGZ1bmN0aW9uKGZyYW1lUmVnaXN0cmF0aW9uKSB7CisgICAgICAgIH0pKQorICAgICAgLnRo
ZW4odC5zdGVwX2Z1bmMoZnVuY3Rpb24oZnJhbWVSZWdpc3RyYXRpb24pIHsKICAgICAgICAgICAv
LyBTVyBvYmplY3RzIGZyb20gc2FtZSB3aW5kb3cgc2hvdWxkIGJlIGVxdWFsCiAgICAgICAgICAg
YXNzZXJ0X2VxdWFscyhmcmFtZVJlZ2lzdHJhdGlvbi5hY3RpdmUsIGNvbnRyb2xsZXIpOwogICAg
ICAgICAgIGZyYW1lLnJlbW92ZSgpOwotICAgICAgICB9KTsKLX0sICdjb250cm9sbGVyIGlzIHNl
dCBmb3IgYSBjb250cm9sbGVkIGRvY3VtZW50Jyk7CisgICAgICAgICAgc2VydmljZV93b3JrZXJf
dW5yZWdpc3Rlcl9hbmRfZG9uZSh0LCBzY29wZSk7CisgICAgICAgIH0pKQorICAgICAgLmNhdGNo
KHVucmVhY2hlZF9yZWplY3Rpb24odCkpOworICB9KTsKIDwvc2NyaXB0PgogPC9ib2R5PgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY29udHJvbGxlci1vbi1yZWxvYWQuaHR0cHMuaHRt
bCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NvbnRyb2xsZXItb24tcmVsb2FkLmh0dHBzLmh0bWwKaW5k
ZXggMmU5NjZkNDI1Nzg4YzBhMDJiMWJiMjVhNGMwNDUwODlmZWRlNWNlNy4uZTBiZWI3MjYwYmUx
MTYwODQzOWFhMTZiY2UwYzE2YTAyNWYyNDg1OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvY29udHJvbGxlci1vbi1yZWxvYWQuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9jb250cm9sbGVyLW9uLXJlbG9hZC5odHRwcy5odG1sCkBAIC0xMywxMCArMTMsNiBAQCBwcm9t
aXNlX3Rlc3QoZnVuY3Rpb24odCkgewogICAgIHZhciBjb250cm9sbGVyOwogICAgIHJldHVybiBz
ZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyKHQsIHNjb3BlKQogICAgICAgLnRoZW4oZnVuY3Rpb24o
KSB7Ci0gICAgICAgICAgdC5hZGRfY2xlYW51cChmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAg
cmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXIodCwgc2NvcGUpOwotICAgICAgICAgICAg
fSk7Ci0KICAgICAgICAgICByZXR1cm4gd2l0aF9pZnJhbWUoc2NvcGUpOwogICAgICAgICB9KQog
ICAgICAgLnRoZW4oZnVuY3Rpb24oZikgewpAQCAtNTIsNiArNDgsNyBAQCBwcm9taXNlX3Rlc3Qo
ZnVuY3Rpb24odCkgewogICAgICAgLnRoZW4oZnVuY3Rpb24oZnJhbWVSZWdpc3RyYXRpb24pIHsK
ICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGZyYW1lUmVnaXN0cmF0aW9uLmFjdGl2ZSwgY29udHJv
bGxlcik7CiAgICAgICAgICAgZnJhbWUucmVtb3ZlKCk7CisgICAgICAgICAgc2VydmljZV93b3Jr
ZXJfdW5yZWdpc3Rlcl9hbmRfZG9uZSh0LCBzY29wZSk7CiAgICAgICAgIH0pOwogICB9LCAnY29u
dHJvbGxlciBpcyBzZXQgdXBvbiByZWxvYWQgYWZ0ZXIgcmVnaXN0cmF0aW9uJyk7CiA8L3Njcmlw
dD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2RhdGEtdHJhbnNmZXItZmlsZXMuaHR0
cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZGF0YS10cmFuc2Zlci1maWxlcy5o
dHRwcy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU5MzQwZmM5
NjZjNjU5NGY4ZTc3OThlZjg5M2UwMDEyOTI2MTI1YzAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZGF0YS10cmFuc2Zlci1m
aWxlcy5odHRwcy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw1ICswLDAgQEAKLQot
Ci0KLUZBSUwgUG9zdGluZyBhIEZpbGUgaW4gYSBuYXZpZ2F0aW9uIGhhbmRsZWQgYnkgYSBzZXJ2
aWNlIHdvcmtlciBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTog
b2JqZWN0ICJUeXBlRXJyb3I6IGZ1bmN0aW9uIGlzIG5vdCBhIGNvbnN0cnVjdG9yIChldmFsdWF0
aW5nICduZXcgRGF0YVRyYW5zZmVyKCknKSIKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvZGF0YS10cmFuc2Zlci1maWxlcy5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZGF0
YS10cmFuc2Zlci1maWxlcy5odHRwcy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBjYzhhYjZlNjcyNzI2ZTE2OGI0NGRmZWU1YjQ3MjAwMTJmZmZlZTBhLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2RhdGEt
dHJhbnNmZXItZmlsZXMuaHR0cHMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQxICswLDAgQEAK
LTwhRE9DVFlQRSBodG1sPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHRpdGxlPlBvc3QgYSBm
aWxlIGluIGEgbmF2aWdhdGlvbiBjb250cm9sbGVkIGJ5IGEgc2VydmljZSB3b3JrZXI8L3RpdGxl
PgotPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9InJlc291cmNlcy90ZXN0LWhlbHBlcnMuc3ViLmpzIj48L3NjcmlwdD4KLTxib2R5
PgotPGlmcmFtZSBpZD10ZXN0ZnJhbWUgbmFtZT10ZXN0ZnJhbWU+PC9pZnJhbWU+Ci08Zm9ybSBp
ZD10ZXN0Zm9ybSBtZXRob2Q9cG9zdCBhY3Rpb249Ii9odG1sL3NlbWFudGljcy9mb3Jtcy9mb3Jt
LXN1Ym1pc3Npb24tMC9yZXNvdXJjZXMvZmlsZS1zdWJtaXNzaW9uLnB5IiB0YXJnZXQ9dGVzdGZy
YW1lIGVuY3R5cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiPgotPGlucHV0IG5hbWU9dGVzdGlucHV0
IGlkPXRlc3RpbnB1dCB0eXBlPWZpbGU+Ci08L2Zvcm0+Ci08c2NyaXB0PgotLy8gVGVzdCB0aGF0
IERhdGFUcmFuc2ZlciB3aXRoIGEgRmlsZSBlbnRyeSB3b3JrcyB3aGVuIHBvc3RlZCB0byBhCi0v
LyBzZXJ2aWNlIHdvcmtlciB0aGF0IGZhbGxzIGJhY2sgdG8gbmV0d29yay4gUmVncmVzc2lvbiB0
ZXN0IGZvcgotLy8gaHR0cHM6Ly9jcmJ1Zy5jb20vOTQ0MTQ1LgotcHJvbWlzZV90ZXN0KGFzeW5j
ICh0KSA9PiB7Ci0gIGNvbnN0IHNjb3BlID0gJy9odG1sL3NlbWFudGljcy9mb3Jtcy9mb3JtLXN1
Ym1pc3Npb24tMC9yZXNvdXJjZXMvJzsKLSAgY29uc3QgaGVhZGVyID0gYHBpcGU9aGVhZGVyKFNl
cnZpY2UtV29ya2VyLUFsbG93ZWQsJHtzY29wZX0pYDsKLSAgY29uc3Qgc2NyaXB0ID0gYHJlc291
cmNlcy9mZXRjaC1ldmVudC1uZXR3b3JrLWZhbGxiYWNrLXdvcmtlci5qcz8ke2hlYWRlcn1gOwot
Ci0gIGNvbnN0IHJlZ2lzdHJhdGlvbiA9IGF3YWl0IHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJf
YW5kX3JlZ2lzdGVyKAotICAgICAgdCwgc2NyaXB0LCBzY29wZSk7Ci0gIGF3YWl0IHdhaXRfZm9y
X3N0YXRlKHQsIHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7Ci0KLSAgY29u
c3QgZGF0YVRyYW5zZmVyID0gbmV3IERhdGFUcmFuc2ZlcigpOwotICBkYXRhVHJhbnNmZXIuaXRl
bXMuYWRkKG5ldyBGaWxlKFsnZm9vYmFyJ10sICduYW1lJykpOwotICBhc3NlcnRfZXF1YWxzKDEs
IGRhdGFUcmFuc2Zlci5maWxlcy5sZW5ndGgpOwotCi0gIHRlc3RpbnB1dC5maWxlcyA9IGRhdGFU
cmFuc2Zlci5maWxlczsKLSAgdGVzdGZvcm0uc3VibWl0KCk7Ci0KLSAgY29uc3QgZGF0YSA9IGF3
YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gewotICAgIG9ubWVzc2FnZSA9IGUgPT4gewotICAg
ICAgaWYgKGUuc291cmNlICE9PSB0ZXN0ZnJhbWUpIHJldHVybjsKLSAgICAgIHJlc29sdmUoZS5k
YXRhKTsKLSAgICB9OwotICB9KTsKLSAgYXNzZXJ0X2VxdWFscyhkYXRhLCAiRmllbGRTdG9yYWdl
KCd0ZXN0aW5wdXQnLCAnbmFtZScsICdmb29iYXInKSIpOwotfSwgJ1Bvc3RpbmcgYSBGaWxlIGlu
IGEgbmF2aWdhdGlvbiBoYW5kbGVkIGJ5IGEgc2VydmljZSB3b3JrZXInKTsKLTwvc2NyaXB0Pgot
PC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZGV0YWNoZWQtY29udGV4dC5o
dHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9kZXRhY2hlZC1jb250ZXh0Lmh0
dHBzLWV4cGVjdGVkLnR4dAppbmRleCBmNThiNjBhODM3MjYyZDM3NzY4NDQyNDBkMDE4OTM5NDRm
M2QyMjYwLi4xYjdhMmM2MDIwNGY2YzJkMTA0NGE3YjNkZDI1M2ViMTI5NGE2ZmU4IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9kZXRhY2hlZC1jb250ZXh0Lmh0dHBzLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9kZXRhY2hlZC1jb250ZXh0Lmh0dHBzLWV4cGVjdGVk
LnR4dApAQCAtMSwzICsxLDQgQEAKKyAKIAogUEFTUyBhY2Nlc3NpbmcgYSBTZXJ2aWNlV29ya2Vy
UmVnaXN0cmF0aW9uIGZyb20gYSByZW1vdmVkIGlmcmFtZSAKIFBBU1MgYWNjZXNzaW5nIGEgU2Vy
dmljZVdvcmtlciBvYmplY3QgZnJvbSBhIHJlbW92ZWQgaWZyYW1lIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvZGV0YWNoZWQtY29udGV4dC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvZGV0YWNoZWQtY29udGV4dC5odHRwcy5odG1sCmluZGV4IGY5NjM3MGQyMDEwMDBkMjBh
OTUwMTY2ZGNjZjJjYWY3MmJkNDczYzEuLjVhZTRkZThjYzgxZTBjMzY1MGVhYWY2YjU2NTYxOTNk
NGEyY2Y4YjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2RldGFjaGVkLWNvbnRleHQu
aHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9kZXRhY2hlZC1jb250ZXh0Lmh0dHBz
Lmh0bWwKQEAgLTU5LDcgKzU5LDYgQEAgcHJvbWlzZV90ZXN0KHQgPT4gewogICAgICAgLnRoZW4o
KCkgPT4gewogICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVzb2x2ZWRDb3VudCwgMCwKICAgICAg
ICAgICAgICAgICAgICAgICAgICdtZXRob2RzIGNhbGxlZCBvbiBhIGRldGFjaGVkIHJlZ2lzdHJh
dGlvbiBzaG91bGQgbm90IHJlc29sdmUnKTsKLSAgICAgICAgICBmcmFtZS5yZW1vdmUoKTsKICAg
ICAgICAgfSkKICAgfSwgJ2FjY2Vzc2luZyBhIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24gZnJv
bSBhIHJlbW92ZWQgaWZyYW1lJyk7CiAKQEAgLTEwMyw3ICsxMDIsNiBAQCBwcm9taXNlX3Rlc3Qo
dCA9PiB7CiAgICAgICAgIGFzc2VydF9lcXVhbHMoCiAgICAgICAgICAgICBnZXRfbmF2aWdhdG9y
KCkuc2VydmljZVdvcmtlciwKICAgICAgICAgICAgIGlmcmFtZS5jb250ZW50V2luZG93Lm5hdmln
YXRvci5zZXJ2aWNlV29ya2VyKTsKLSAgICAgICAgaWZyYW1lLnJlbW92ZSgpOwogICAgICAgfSk7
CiAgIH0sICdhY2Nlc3NpbmcgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIgb24gYSBkZXRhY2hlZCBp
ZnJhbWUnKTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZXh0ZW5kYWJsZS1ldmVu
dC1hc3luYy13YWl0dW50aWwuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
ZXh0ZW5kYWJsZS1ldmVudC1hc3luYy13YWl0dW50aWwuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4
IGY3NTcwNTU0ODRkZTM4ZDhlNTdkMjM5YmQxMTg2NWJjN2ViZTUyM2MuLjkwMmE5Nzg0ZDc2MWQ5
Nzc2ZmZiNDYyMTJlYzU2MzE5NzA1YWRmNGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L2V4dGVuZGFibGUtZXZlbnQtYXN5bmMtd2FpdHVudGlsLmh0dHBzLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9leHRlbmRhYmxlLWV2ZW50LWFzeW5jLXdhaXR1bnRpbC5odHRw
cy1leHBlY3RlZC50eHQKQEAgLTEsMTcgKzEsMTMgQEAKIAogCi1QQVNTIFRlc3QgY2FsbGluZyB3
YWl0VW50aWwgaW4gYSB0YXNrIGF0IHRoZSBlbmQgb2YgdGhlIGV2ZW50IGhhbmRsZXIgd2l0aG91
dCBhbiBleGlzdGluZyBleHRlbnNpb24gdGhyb3dzIAotUEFTUyBUZXN0IGNhbGxpbmcgd2FpdFVu
dGlsIGluIGEgbWljcm90YXNrIGF0IHRoZSBlbmQgb2YgdGhlIGV2ZW50IGhhbmRsZXIgd2l0aG91
dCBhbiBleGlzdGluZyBleHRlbnNpb24gc3VjZWVkcyAKLVBBU1MgVGVzdCBjYWxsaW5nIHdhaXRV
bnRpbCBpbiBhIGRpZmZlcmVudCB0YXNrIGFuIGV4aXN0aW5nIGV4dGVuc2lvbiBzdWNjZWVkcyAK
LVBBU1MgVGVzdCBjYWxsaW5nIHdhaXRVbnRpbCBhdCB0aGUgZW5kIG9mIGFuIGV4aXN0aW5nIGV4
dGVuc2lvbiBwcm9taXNlIGhhbmRsZXIgc3VjY2VlZHMgKGV2ZW50IGlzIHN0aWxsIGJlaW5nIGRp
c3BhdGNoZWQpIAotUEFTUyBUZXN0IGNhbGxpbmcgd2FpdFVudGlsIGluIGEgbWljcm90YXNrIGF0
IHRoZSBlbmQgb2YgYW4gZXhpc3RpbmcgZXh0ZW5zaW9uIHByb21pc2UgaGFuZGxlciBzdWNjZWVk
cyAoZXZlbnQgaXMgc3RpbGwgYmVpbmcgZGlzcGF0Y2hlZCkgCi1QQVNTIFRlc3QgY2FsbGluZyB3
YWl0VW50aWwgaW4gYW4gZXhpc3RpbmcgZXh0ZW5zaW9uIHByb21pc2UgaGFuZGxlciBzdWNjZWVk
cyAoZXZlbnQgaXMgbm90IGJlaW5nIGRpc3BhdGNoZWQpIAotUEFTUyBUZXN0IGNhbGxpbmcgd2Fp
dFVudGlsIGluIGEgbWljcm90YXNrIGF0IHRoZSBlbmQgb2YgYW4gZXhpc3RpbmcgZXh0ZW5zaW9u
IHByb21pc2UgaGFuZGxlciB0aHJvd3MgKGV2ZW50IGlzIG5vdCBiZWluZyBkaXNwYXRjaGVkKSAK
K1BBU1MgVGVzdCBjYWxsaW5nIHdhaXRVbnRpbCBpbiBhIGRpZmZlcmVudCB0YXNrIHdpdGhvdXQg
YW4gZXhpc3RpbmcgZXh0ZW5zaW9uIHRocm93cyAKK0ZBSUwgVGVzdCBjYWxsaW5nIHdhaXRVbnRp
bCBpbiBhIGRpZmZlcmVudCBtaWNyb3Rhc2sgd2l0aG91dCBhbiBleGlzdGluZyBleHRlbnNpb24g
dGhyb3dzIGFzc2VydF91bnJlYWNoZWQ6IHVuZXhwZWN0ZWQgcmVqZWN0aW9uOiBhc3NlcnRfZXF1
YWxzOiBleHBlY3RlZCAiSW52YWxpZFN0YXRlRXJyb3IiIGJ1dCBnb3QgIk9LIiBSZWFjaGVkIHVu
cmVhY2hhYmxlIGNvZGUKK1BBU1MgVGVzdCBjYWxsaW5nIHdhaXRVbnRpbCBpbiBhIGRpZmZlcmVu
dCB0YXNrIHdpdGggYW4gZXhpc3RpbmcgZXh0ZW5zaW9uIHN1Y2NlZWRzIAorUEFTUyBUZXN0IGNh
bGxpbmcgd2FpdFVudGlsIHdpdGggYW4gZXhpc3RpbmcgZXh0ZW5zaW9uIHByb21pc2UgaGFuZGxl
ciBzdWNjZWVkcyAKK0ZBSUwgVGVzdCBjYWxsaW5nIHdhaXRVbnRpbCBhdCB0aGUgZW5kIG9mIHRo
ZSBtaWNyb3Rhc2sgdHVybiB0aHJvd3MgYXNzZXJ0X3VucmVhY2hlZDogdW5leHBlY3RlZCByZWpl
Y3Rpb246IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJJbnZhbGlkU3RhdGVFcnJvciIgYnV0IGdv
dCAiT0siIFJlYWNoZWQgdW5yZWFjaGFibGUgY29kZQogUEFTUyBUZXN0IGNhbGxpbmcgd2FpdFVu
dGlsIGFmdGVyIHRoZSBjdXJyZW50IGV4dGVuc2lvbiBleHBpcmVkIGluIGEgZGlmZmVyZW50IHRh
c2sgZmFpbHMgCiBQQVNTIFRlc3QgY2FsbGluZyB3YWl0VW50aWwgb24gYSBzY3JpcHQgY29uc3Ry
dWN0ZWQgRXh0ZW5kYWJsZUV2ZW50IHRocm93cyBleGNlcHRpb24gCiBQQVNTIFRlc3QgY2FsbGlu
ZyB3YWl0VW50aWwgYXN5bmNocm9ub3VzbHkgd2l0aCBwZW5kaW5nIHJlc3BvbmRXaXRoIHByb21p
c2UuIAotUEFTUyBUZXN0IGNhbGxpbmcgd2FpdFVudGlsIHN5bmNocm9ub3VzbHkgaW5zaWRlIG1p
Y3JvdGFzayBvZiByZXNwb25kV2l0aCBwcm9taXNlIChldmVudCBpcyBiZWluZyBkaXNwYXRjaGVk
KS4gCi1QQVNTIFRlc3QgY2FsbGluZyB3YWl0VW50aWwgYXN5bmNocm9ub3VzbHkgaW5zaWRlIG1p
Y3JvdGFzayBvZiByZXNwb25kV2l0aCBwcm9taXNlIChldmVudCBpcyBiZWluZyBkaXNwYXRjaGVk
KS4gCi1QQVNTIFRlc3QgY2FsbGluZyB3YWl0VW50aWwgc3luY2hyb25vdXNseSBpbnNpZGUgbWlj
cm90YXNrIG9mIHJlc3BvbmRXaXRoIHByb21pc2UgKGV2ZW50IGlzIG5vdCBiZWluZyBkaXNwYXRj
aGVkKS4gCi1QQVNTIFRlc3QgY2FsbGluZyB3YWl0VW50aWwgYXN5bmNocm9ub3VzbHkgaW5zaWRl
IG1pY3JvdGFzayBvZiByZXNwb25kV2l0aCBwcm9taXNlIChldmVudCBpcyBub3QgYmVpbmcgZGlz
cGF0Y2hlZCkuIAorUEFTUyBUZXN0IGNhbGxpbmcgd2FpdFVudGlsIHN5bmNocm9ub3VzbHkgaW5z
aWRlIG1pY3JvdGFzayBvZiByZXNwb25kV2l0aCBwcm9taXNlLiAKK0ZBSUwgVGVzdCBjYWxsaW5n
IHdhaXRVbnRpbCBhc3luY2hyb25vdXNseSBpbnNpZGUgbWljcm90YXNrIG9mIHJlc3BvbmRXaXRo
IHByb21pc2UuIGFzc2VydF91bnJlYWNoZWQ6IHVuZXhwZWN0ZWQgcmVqZWN0aW9uOiBhc3NlcnRf
ZXF1YWxzOiBleHBlY3RlZCAiSW52YWxpZFN0YXRlRXJyb3IiIGJ1dCBnb3QgIk9LIiBSZWFjaGVk
IHVucmVhY2hhYmxlIGNvZGUKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZXh0ZW5k
YWJsZS1ldmVudC1hc3luYy13YWl0dW50aWwuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L2V4dGVuZGFibGUtZXZlbnQtYXN5bmMtd2FpdHVudGlsLmh0dHBzLmh0bWwKaW5kZXggMDRlOTgy
NjZiNGYxYTBiNmVjNTcyZTFjMzE3YWI4NTJmYzJlNDQ4MC4uYmU0ZWZiYmMzNDIyMmY3MDg3NzUz
Yzc1OTIwYWVlMWVjZWQ5OThiMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZXh0ZW5k
YWJsZS1ldmVudC1hc3luYy13YWl0dW50aWwuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9leHRlbmRhYmxlLWV2ZW50LWFzeW5jLXdhaXR1bnRpbC5odHRwcy5odG1sCkBAIC0xLDUg
KzEsNCBAQAogPCFET0NUWVBFIGh0bWw+Ci08bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJs
b25nIj4KIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4K
IDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGVzdGhhcm5lc3MtaGVscGVycy5qcyI+PC9zY3JpcHQ+
CiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+
CkBAIC0yMywxOSArMjIsMTUgQEAgZnVuY3Rpb24gc3luY19tZXNzYWdlKHdvcmtlciwgbWVzc2Fn
ZSwgdHJhbnNmZXIpIHsKIGZ1bmN0aW9uIHJ1blRlc3QodGVzdCwgc3RlcCwgdGVzdEJvZHkpIHsK
ICAgdmFyIHNjb3BlID0gJy4vcmVzb3VyY2VzLycgKyBzdGVwOwogICB2YXIgc2NyaXB0ID0gJ3Jl
c291cmNlcy9leHRlbmRhYmxlLWV2ZW50LWFzeW5jLXdhaXR1bnRpbC5qcz8nICsgc2NvcGU7Ci0g
IHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0ZXN0LCBzY3Jp
cHQsIHNjb3BlKQorICBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0ZXN0
LCBzY3JpcHQsIHNjb3BlKQogICAgIC50aGVuKGZ1bmN0aW9uKHJlZ2lzdHJhdGlvbikgewotICAg
ICAgICB0ZXN0LmFkZF9jbGVhbnVwKGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgcmV0dXJuIHNl
cnZpY2Vfd29ya2VyX3VucmVnaXN0ZXIodGVzdCwgc2NvcGUpOwotICAgICAgICAgIH0pOwotCiAg
ICAgICAgIGxldCB3b3JrZXIgPSByZWdpc3RyYXRpb24uaW5zdGFsbGluZzsKICAgICAgICAgdmFy
IGNoYW5uZWwgPSBuZXcgTWVzc2FnZUNoYW5uZWwoKTsKICAgICAgICAgdmFyIHNhd19tZXNzYWdl
ID0gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSkgewogICAgICAgICAgIGNoYW5uZWwucG9y
dDEub25tZXNzYWdlID0gZnVuY3Rpb24oZSkgeyByZXNvbHZlKGUuZGF0YSk7IH0KICAgICAgICAg
fSk7CiAKLSAgICAgICAgcmV0dXJuIHdhaXRfZm9yX3N0YXRlKHRlc3QsIHdvcmtlciwgJ2FjdGl2
YXRlZCcpCisgICAgICAgIHdhaXRfZm9yX3N0YXRlKHRlc3QsIHdvcmtlciwgJ2FjdGl2YXRlZCcp
CiAgICAgICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgIHJldHVybiBzeW5j
X21lc3NhZ2Uod29ya2VyLCB7IHN0ZXA6ICdpbml0JywgcG9ydDogY2hhbm5lbC5wb3J0MiB9LAog
ICAgICAgICAgICAgICAgIFtjaGFubmVsLnBvcnQyXSk7CkBAIC00NSw3ICs0MCw5IEBAIGZ1bmN0
aW9uIHJ1blRlc3QodGVzdCwgc3RlcCwgdGVzdEJvZHkpIHsKICAgICAgICAgICAudGhlbihmdW5j
dGlvbihvdXRwdXQpIHsKICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhvdXRwdXQucmVzdWx0
LCBvdXRwdXQuZXhwZWN0ZWQpOwogICAgICAgICAgICAgfSkKLSAgICAgICAgICAudGhlbihmdW5j
dGlvbigpIHsgcmV0dXJuIHN5bmNfbWVzc2FnZSh3b3JrZXIsIHsgc3RlcDogJ2RvbmUnIH0pOyB9
KTsKKyAgICAgICAgICAudGhlbihmdW5jdGlvbigpIHsgcmV0dXJuIHN5bmNfbWVzc2FnZSh3b3Jr
ZXIsIHsgc3RlcDogJ2RvbmUnIH0pOyB9KQorICAgICAgICAgIC50aGVuKCgpID0+IHsgc2Vydmlj
ZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfZG9uZSh0ZXN0LCBzY29wZSk7IH0pCisgICAgICAgICAg
LmNhdGNoKHVucmVhY2hlZF9yZWplY3Rpb24odGVzdCkpOwogICAgICAgfSk7CiB9CiAKQEAgLTUz
LDY4ICs1MCw1MiBAQCBmdW5jdGlvbiBtc2dfZXZlbnRfdGVzdChzY29wZSwgdGVzdCkgewogICB2
YXIgdGVzdEJvZHkgPSBmdW5jdGlvbih3b3JrZXIpIHsKICAgICByZXR1cm4gc3luY19tZXNzYWdl
KHdvcmtlciwgeyBzdGVwOiBzY29wZSB9KTsKICAgfTsKLSAgcmV0dXJuIHJ1blRlc3QodGVzdCwg
c2NvcGUsIHRlc3RCb2R5KTsKKyAgcnVuVGVzdCh0ZXN0LCBzY29wZSwgdGVzdEJvZHkpOwogfQog
Ci1wcm9taXNlX3Rlc3QobXNnX2V2ZW50X3Rlc3QuYmluZCh0aGlzLCAnbm8tY3VycmVudC1leHRl
bnNpb24tZGlmZmVyZW50LXRhc2snKSwKLSAgJ1Rlc3QgY2FsbGluZyB3YWl0VW50aWwgaW4gYSB0
YXNrIGF0IHRoZSBlbmQgb2YgdGhlIGV2ZW50IGhhbmRsZXIgd2l0aG91dCBhbiBleGlzdGluZyBl
eHRlbnNpb24gdGhyb3dzJyk7Ci0KLXByb21pc2VfdGVzdChtc2dfZXZlbnRfdGVzdC5iaW5kKHRo
aXMsICduby1jdXJyZW50LWV4dGVuc2lvbi1kaWZmZXJlbnQtbWljcm90YXNrJyksCi0gICdUZXN0
IGNhbGxpbmcgd2FpdFVudGlsIGluIGEgbWljcm90YXNrIGF0IHRoZSBlbmQgb2YgdGhlIGV2ZW50
IGhhbmRsZXIgd2l0aG91dCBhbiBleGlzdGluZyBleHRlbnNpb24gc3VjZWVkcycpOworYXN5bmNf
dGVzdChtc2dfZXZlbnRfdGVzdC5iaW5kKHRoaXMsICduby1jdXJyZW50LWV4dGVuc2lvbi1kaWZm
ZXJlbnQtdGFzaycpLAorICAnVGVzdCBjYWxsaW5nIHdhaXRVbnRpbCBpbiBhIGRpZmZlcmVudCB0
YXNrIHdpdGhvdXQgYW4gZXhpc3RpbmcgZXh0ZW5zaW9uIHRocm93cycpOwogCi1wcm9taXNlX3Rl
c3QobXNnX2V2ZW50X3Rlc3QuYmluZCh0aGlzLCAnY3VycmVudC1leHRlbnNpb24tZGlmZmVyZW50
LXRhc2snKSwKLSAgJ1Rlc3QgY2FsbGluZyB3YWl0VW50aWwgaW4gYSBkaWZmZXJlbnQgdGFzayBh
biBleGlzdGluZyBleHRlbnNpb24gc3VjY2VlZHMnKTsKK2FzeW5jX3Rlc3QobXNnX2V2ZW50X3Rl
c3QuYmluZCh0aGlzLCAnbm8tY3VycmVudC1leHRlbnNpb24tZGlmZmVyZW50LW1pY3JvdGFzaycp
LAorICAnVGVzdCBjYWxsaW5nIHdhaXRVbnRpbCBpbiBhIGRpZmZlcmVudCBtaWNyb3Rhc2sgd2l0
aG91dCBhbiBleGlzdGluZyBleHRlbnNpb24gdGhyb3dzJyk7CiAKLXByb21pc2VfdGVzdChtc2df
ZXZlbnRfdGVzdC5iaW5kKHRoaXMsICdkdXJpbmctZXZlbnQtZGlzcGF0Y2gtY3VycmVudC1leHRl
bnNpb24tZXhwaXJlZC1zYW1lLW1pY3JvdGFzay10dXJuJyksCi0gICdUZXN0IGNhbGxpbmcgd2Fp
dFVudGlsIGF0IHRoZSBlbmQgb2YgYW4gZXhpc3RpbmcgZXh0ZW5zaW9uIHByb21pc2UgaGFuZGxl
ciBzdWNjZWVkcyAoZXZlbnQgaXMgc3RpbGwgYmVpbmcgZGlzcGF0Y2hlZCknKTsKK2FzeW5jX3Rl
c3QobXNnX2V2ZW50X3Rlc3QuYmluZCh0aGlzLCAnY3VycmVudC1leHRlbnNpb24tZGlmZmVyZW50
LXRhc2snKSwKKyAgJ1Rlc3QgY2FsbGluZyB3YWl0VW50aWwgaW4gYSBkaWZmZXJlbnQgdGFzayB3
aXRoIGFuIGV4aXN0aW5nIGV4dGVuc2lvbiBzdWNjZWVkcycpOwogCi1wcm9taXNlX3Rlc3QobXNn
X2V2ZW50X3Rlc3QuYmluZCh0aGlzLCAnZHVyaW5nLWV2ZW50LWRpc3BhdGNoLWN1cnJlbnQtZXh0
ZW5zaW9uLWV4cGlyZWQtc2FtZS1taWNyb3Rhc2stdHVybi1leHRyYScpLAotICAnVGVzdCBjYWxs
aW5nIHdhaXRVbnRpbCBpbiBhIG1pY3JvdGFzayBhdCB0aGUgZW5kIG9mIGFuIGV4aXN0aW5nIGV4
dGVuc2lvbiBwcm9taXNlIGhhbmRsZXIgc3VjY2VlZHMgKGV2ZW50IGlzIHN0aWxsIGJlaW5nIGRp
c3BhdGNoZWQpJyk7Cithc3luY190ZXN0KG1zZ19ldmVudF90ZXN0LmJpbmQodGhpcywgJ2N1cnJl
bnQtZXh0ZW5zaW9uLWV4cGlyZWQtc2FtZS1taWNyb3Rhc2stdHVybicpLAorICAnVGVzdCBjYWxs
aW5nIHdhaXRVbnRpbCB3aXRoIGFuIGV4aXN0aW5nIGV4dGVuc2lvbiBwcm9taXNlIGhhbmRsZXIg
c3VjY2VlZHMnKTsKIAotcHJvbWlzZV90ZXN0KG1zZ19ldmVudF90ZXN0LmJpbmQodGhpcywgJ2Fm
dGVyLWV2ZW50LWRpc3BhdGNoLWN1cnJlbnQtZXh0ZW5zaW9uLWV4cGlyZWQtc2FtZS1taWNyb3Rh
c2stdHVybicpLAotICAnVGVzdCBjYWxsaW5nIHdhaXRVbnRpbCBpbiBhbiBleGlzdGluZyBleHRl
bnNpb24gcHJvbWlzZSBoYW5kbGVyIHN1Y2NlZWRzIChldmVudCBpcyBub3QgYmVpbmcgZGlzcGF0
Y2hlZCknKTsKKy8vIFRoZSBwcm9taXNlIGhhbmRsZXIgd2lsbCBxdWV1ZSBhIG5ldyBtaWNyb3Rh
c2sgYWZ0ZXIgdGhlIGNoZWNrIGZvciBuZXcKKy8vIGV4dGVuc2lvbnMgd2FzIHBlcmZvcm1lZC4K
K2FzeW5jX3Rlc3QobXNnX2V2ZW50X3Rlc3QuYmluZCh0aGlzLCAnY3VycmVudC1leHRlbnNpb24t
ZXhwaXJlZC1zYW1lLW1pY3JvdGFzay10dXJuLWV4dHJhJyksCisgICdUZXN0IGNhbGxpbmcgd2Fp
dFVudGlsIGF0IHRoZSBlbmQgb2YgdGhlIG1pY3JvdGFzayB0dXJuIHRocm93cycpOwogCi1wcm9t
aXNlX3Rlc3QobXNnX2V2ZW50X3Rlc3QuYmluZCh0aGlzLCAnYWZ0ZXItZXZlbnQtZGlzcGF0Y2gt
Y3VycmVudC1leHRlbnNpb24tZXhwaXJlZC1zYW1lLW1pY3JvdGFzay10dXJuLWV4dHJhJyksCi0g
ICdUZXN0IGNhbGxpbmcgd2FpdFVudGlsIGluIGEgbWljcm90YXNrIGF0IHRoZSBlbmQgb2YgYW4g
ZXhpc3RpbmcgZXh0ZW5zaW9uIHByb21pc2UgaGFuZGxlciB0aHJvd3MgKGV2ZW50IGlzIG5vdCBi
ZWluZyBkaXNwYXRjaGVkKScpOwotCi1wcm9taXNlX3Rlc3QobXNnX2V2ZW50X3Rlc3QuYmluZCh0
aGlzLCAnY3VycmVudC1leHRlbnNpb24tZXhwaXJlZC1kaWZmZXJlbnQtdGFzaycpLAorYXN5bmNf
dGVzdChtc2dfZXZlbnRfdGVzdC5iaW5kKHRoaXMsICdjdXJyZW50LWV4dGVuc2lvbi1leHBpcmVk
LWRpZmZlcmVudC10YXNrJyksCiAgICdUZXN0IGNhbGxpbmcgd2FpdFVudGlsIGFmdGVyIHRoZSBj
dXJyZW50IGV4dGVuc2lvbiBleHBpcmVkIGluIGEgZGlmZmVyZW50IHRhc2sgZmFpbHMnKTsKIAot
cHJvbWlzZV90ZXN0KG1zZ19ldmVudF90ZXN0LmJpbmQodGhpcywgJ3NjcmlwdC1leHRlbmRhYmxl
LWV2ZW50JyksCithc3luY190ZXN0KG1zZ19ldmVudF90ZXN0LmJpbmQodGhpcywgJ3NjcmlwdC1l
eHRlbmRhYmxlLWV2ZW50JyksCiAgICdUZXN0IGNhbGxpbmcgd2FpdFVudGlsIG9uIGEgc2NyaXB0
IGNvbnN0cnVjdGVkIEV4dGVuZGFibGVFdmVudCB0aHJvd3MgZXhjZXB0aW9uJyk7CiAKLXByb21p
c2VfdGVzdChmdW5jdGlvbih0KSB7Cithc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICB2YXIg
dGVzdEJvZHkgPSBmdW5jdGlvbih3b3JrZXIpIHsKLSAgICAgIHJldHVybiB3aXRoX2lmcmFtZSgn
Li9yZXNvdXJjZXMvcGVuZGluZy1yZXNwb25kd2l0aC1hc3luYy13YWl0dW50aWwnKTsKKyAgICAg
IHJldHVybiB3aXRoX2lmcmFtZSgnLi9yZXNvdXJjZXMvcGVuZGluZy1yZXNwb25kd2l0aC1hc3lu
Yy13YWl0dW50aWwvZHVtbXkuaHRtbCcpOwogICAgIH0KLSAgICByZXR1cm4gcnVuVGVzdCh0LCAn
cGVuZGluZy1yZXNwb25kd2l0aC1hc3luYy13YWl0dW50aWwnLCB0ZXN0Qm9keSk7CisgICAgcnVu
VGVzdCh0LCAncGVuZGluZy1yZXNwb25kd2l0aC1hc3luYy13YWl0dW50aWwnLCB0ZXN0Qm9keSk7
CiAgIH0sICdUZXN0IGNhbGxpbmcgd2FpdFVudGlsIGFzeW5jaHJvbm91c2x5IHdpdGggcGVuZGlu
ZyByZXNwb25kV2l0aCBwcm9taXNlLicpOwogCi1wcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewor
YXN5bmNfdGVzdChmdW5jdGlvbih0KSB7CiAgICAgdmFyIHRlc3RCb2R5ID0gZnVuY3Rpb24od29y
a2VyKSB7Ci0gICAgICByZXR1cm4gd2l0aF9pZnJhbWUoJy4vcmVzb3VyY2VzL2R1cmluZy1ldmVu
dC1kaXNwYXRjaC1yZXNwb25kd2l0aC1taWNyb3Rhc2stc3luYy13YWl0dW50aWwnKTsKKyAgICAg
IHJldHVybiB3aXRoX2lmcmFtZSgnLi9yZXNvdXJjZXMvcmVzcG9uZHdpdGgtbWljcm90YXNrLXN5
bmMtd2FpdHVudGlsL2R1bW15Lmh0bWwnKTsKICAgICB9Ci0gICAgcmV0dXJuIHJ1blRlc3QodCwg
J2R1cmluZy1ldmVudC1kaXNwYXRjaC1yZXNwb25kd2l0aC1taWNyb3Rhc2stc3luYy13YWl0dW50
aWwnLCB0ZXN0Qm9keSk7Ci0gIH0sICdUZXN0IGNhbGxpbmcgd2FpdFVudGlsIHN5bmNocm9ub3Vz
bHkgaW5zaWRlIG1pY3JvdGFzayBvZiByZXNwb25kV2l0aCBwcm9taXNlIChldmVudCBpcyBiZWlu
ZyBkaXNwYXRjaGVkKS4nKTsKKyAgICBydW5UZXN0KHQsICdyZXNwb25kd2l0aC1taWNyb3Rhc2st
c3luYy13YWl0dW50aWwnLCB0ZXN0Qm9keSk7CisgIH0sICdUZXN0IGNhbGxpbmcgd2FpdFVudGls
IHN5bmNocm9ub3VzbHkgaW5zaWRlIG1pY3JvdGFzayBvZiByZXNwb25kV2l0aCBwcm9taXNlLicp
OwogCi1wcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgeworYXN5bmNfdGVzdChmdW5jdGlvbih0KSB7
CiAgICAgdmFyIHRlc3RCb2R5ID0gZnVuY3Rpb24od29ya2VyKSB7Ci0gICAgICByZXR1cm4gd2l0
aF9pZnJhbWUoJy4vcmVzb3VyY2VzL2R1cmluZy1ldmVudC1kaXNwYXRjaC1yZXNwb25kd2l0aC1t
aWNyb3Rhc2stYXN5bmMtd2FpdHVudGlsJyk7CisgICAgICByZXR1cm4gd2l0aF9pZnJhbWUoJy4v
cmVzb3VyY2VzL3Jlc3BvbmR3aXRoLW1pY3JvdGFzay1hc3luYy13YWl0dW50aWwvZHVtbXkuaHRt
bCcpOwogICAgIH0KLSAgICByZXR1cm4gcnVuVGVzdCh0LCAnZHVyaW5nLWV2ZW50LWRpc3BhdGNo
LXJlc3BvbmR3aXRoLW1pY3JvdGFzay1hc3luYy13YWl0dW50aWwnLCB0ZXN0Qm9keSk7Ci0gIH0s
ICdUZXN0IGNhbGxpbmcgd2FpdFVudGlsIGFzeW5jaHJvbm91c2x5IGluc2lkZSBtaWNyb3Rhc2sg
b2YgcmVzcG9uZFdpdGggcHJvbWlzZSAoZXZlbnQgaXMgYmVpbmcgZGlzcGF0Y2hlZCkuJyk7Cisg
ICAgcnVuVGVzdCh0LCAncmVzcG9uZHdpdGgtbWljcm90YXNrLWFzeW5jLXdhaXR1bnRpbCcsIHRl
c3RCb2R5KTsKKyAgfSwgJ1Rlc3QgY2FsbGluZyB3YWl0VW50aWwgYXN5bmNocm9ub3VzbHkgaW5z
aWRlIG1pY3JvdGFzayBvZiByZXNwb25kV2l0aCBwcm9taXNlLicpOwogCi1wcm9taXNlX3Rlc3Qo
ZnVuY3Rpb24odCkgewotICAgIHZhciB0ZXN0Qm9keSA9IGZ1bmN0aW9uKHdvcmtlcikgewotICAg
ICAgcmV0dXJuIHdpdGhfaWZyYW1lKCcuL3Jlc291cmNlcy9hZnRlci1ldmVudC1kaXNwYXRjaC1y
ZXNwb25kd2l0aC1taWNyb3Rhc2stc3luYy13YWl0dW50aWwnKTsKLSAgICB9Ci0gICAgcmV0dXJu
IHJ1blRlc3QodCwgJ2FmdGVyLWV2ZW50LWRpc3BhdGNoLXJlc3BvbmR3aXRoLW1pY3JvdGFzay1z
eW5jLXdhaXR1bnRpbCcsIHRlc3RCb2R5KTsKLSAgfSwgJ1Rlc3QgY2FsbGluZyB3YWl0VW50aWwg
c3luY2hyb25vdXNseSBpbnNpZGUgbWljcm90YXNrIG9mIHJlc3BvbmRXaXRoIHByb21pc2UgKGV2
ZW50IGlzIG5vdCBiZWluZyBkaXNwYXRjaGVkKS4nKTsKIAotcHJvbWlzZV90ZXN0KGZ1bmN0aW9u
KHQpIHsKLSAgICB2YXIgdGVzdEJvZHkgPSBmdW5jdGlvbih3b3JrZXIpIHsKLSAgICAgIHJldHVy
biB3aXRoX2lmcmFtZSgnLi9yZXNvdXJjZXMvYWZ0ZXItZXZlbnQtZGlzcGF0Y2gtcmVzcG9uZHdp
dGgtbWljcm90YXNrLWFzeW5jLXdhaXR1bnRpbCcpOwotICAgIH0KLSAgICByZXR1cm4gcnVuVGVz
dCh0LCAnYWZ0ZXItZXZlbnQtZGlzcGF0Y2gtcmVzcG9uZHdpdGgtbWljcm90YXNrLWFzeW5jLXdh
aXR1bnRpbCcsIHRlc3RCb2R5KTsKLSAgfSwgJ1Rlc3QgY2FsbGluZyB3YWl0VW50aWwgYXN5bmNo
cm9ub3VzbHkgaW5zaWRlIG1pY3JvdGFzayBvZiByZXNwb25kV2l0aCBwcm9taXNlIChldmVudCBp
cyBub3QgYmVpbmcgZGlzcGF0Y2hlZCkuJyk7CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL2V4dGVuZGFibGUtZXZlbnQtd2FpdHVudGlsLmh0dHBzLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9leHRlbmRhYmxlLWV2ZW50LXdhaXR1bnRpbC5odHRwcy5odG1sCmluZGV4
IDMzYjRlYWM1YzE4NWU5MTEwMjMwOTRmMjEwY2U0ZGI5YjZkZGRhZGIuLjhlNzkwZDBlZjVhZDZk
ODUxNTM0MzYyZGU1NjQ3ZDk2Njk5YTY1ZjcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L2V4dGVuZGFibGUtZXZlbnQtd2FpdHVudGlsLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvZXh0ZW5kYWJsZS1ldmVudC13YWl0dW50aWwuaHR0cHMuaHRtbApAQCAtNiw4NSArNiw3
NSBAQAogPHNjcmlwdD4KIGZ1bmN0aW9uIHJ1blRlc3QodGVzdCwgc2NvcGUsIG9uUmVnaXN0ZXIp
IHsKICAgdmFyIHNjcmlwdCA9ICdyZXNvdXJjZXMvZXh0ZW5kYWJsZS1ldmVudC13YWl0dW50aWwu
anM/JyArIHNjb3BlOwotICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVn
aXN0ZXIodGVzdCwgc2NyaXB0LCBzY29wZSkKKyAgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9h
bmRfcmVnaXN0ZXIodGVzdCwgc2NyaXB0LCBzY29wZSkKICAgICAudGhlbihmdW5jdGlvbihyZWdp
c3RyYXRpb24pIHsKLSAgICAgICAgdGVzdC5hZGRfY2xlYW51cChmdW5jdGlvbigpIHsKLSAgICAg
ICAgICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyKHRlc3QsIHNjb3BlKTsKLSAg
ICAgICAgICB9KTsKLQotICAgICAgICByZXR1cm4gb25SZWdpc3RlcihyZWdpc3RyYXRpb24uaW5z
dGFsbGluZyk7CisgICAgICAgIG9uUmVnaXN0ZXIocmVnaXN0cmF0aW9uLmluc3RhbGxpbmcpOwog
ICAgICAgfSk7CiB9CiAKIC8vIFNlbmRzIGEgU1lOIHRvIHRoZSB3b3JrZXIgYW5kIGFzeW5jaHJv
bm91c2x5IGxpc3RlbnMgZm9yIGFuIEFDSzsgc2V0cwogLy8gfG9iai5zeW5jZWR8IHRvIHRydWUg
b25jZSBhY2snZC4KLWZ1bmN0aW9uIHN5bmNXb3JrZXIod29ya2VyLCBvYmopIHsKK2Z1bmN0aW9u
IHN5bmNXb3JrZXIodGVzdCwgd29ya2VyLCBvYmopIHsKICAgdmFyIGNoYW5uZWwgPSBuZXcgTWVz
c2FnZUNoYW5uZWwoKTsKICAgd29ya2VyLnBvc3RNZXNzYWdlKHtwb3J0OiBjaGFubmVsLnBvcnQy
fSwgW2NoYW5uZWwucG9ydDJdKTsKICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29s
dmUpIHsKLSAgICAgIGNoYW5uZWwucG9ydDEub25tZXNzYWdlID0gcmVzb2x2ZTsKLSAgICB9KS50
aGVuKGZ1bmN0aW9uKGUpIHsKLSAgICAgIHZhciBtZXNzYWdlID0gZS5kYXRhOwotICAgICAgYXNz
ZXJ0X2VxdWFscyhtZXNzYWdlLCAnU1lOQycsCi0gICAgICAgICAgICAgICAgICAgICdTaG91bGQg
cmVjZWl2ZSBzeW5jIG1lc3NhZ2UgZnJvbSB3b3JrZXIuJyk7Ci0gICAgICBvYmouc3luY2VkID0g
dHJ1ZTsKLSAgICAgIGNoYW5uZWwucG9ydDEucG9zdE1lc3NhZ2UoJ0FDSycpOworICAgICAgY2hh
bm5lbC5wb3J0MS5vbm1lc3NhZ2UgPSB0ZXN0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAg
ICAgICAgdmFyIG1lc3NhZ2UgPSBlLmRhdGE7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhtZXNz
YWdlLCAnU1lOQycsCisgICAgICAgICAgICAgICAgICAgICAgICAnU2hvdWxkIHJlY2VpdmUgc3lu
YyBtZXNzYWdlIGZyb20gd29ya2VyLicpOworICAgICAgICAgIG9iai5zeW5jZWQgPSB0cnVlOwor
ICAgICAgICAgIGNoYW5uZWwucG9ydDEucG9zdE1lc3NhZ2UoJ0FDSycpOworICAgICAgICAgIHJl
c29sdmUoKTsKKyAgICAgICAgfSk7CiAgICAgfSk7CiB9CiAKLXByb21pc2VfdGVzdChmdW5jdGlv
bih0KSB7Cithc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICAvLyBQYXNzaW5nIHNjb3BlIGFz
IHRoZSB0ZXN0IHN3aXRjaCBmb3Igd29ya2VyIHNjcmlwdC4KICAgICB2YXIgc2NvcGUgPSAncmVz
b3VyY2VzL2luc3RhbGwtZnVsZmlsbGVkJzsKICAgICB2YXIgb25SZWdpc3RlciA9IGZ1bmN0aW9u
KHdvcmtlcikgewogICAgICAgICB2YXIgb2JqID0ge307Ci0KLSAgICAgICAgcmV0dXJuIFByb21p
c2UuYWxsKFsKLSAgICAgICAgICAgIHN5bmNXb3JrZXIod29ya2VyLCBvYmopLAotICAgICAgICAg
ICAgd2FpdF9mb3Jfc3RhdGUodCwgd29ya2VyLCAnaW5zdGFsbGVkJykKLSAgICAgICAgICBdKS50
aGVuKGZ1bmN0aW9uKCkgeworICAgICAgICB3YWl0X2Zvcl9zdGF0ZSh0LCB3b3JrZXIsICdpbnN0
YWxsZWQnKQorICAgICAgICAgIC50aGVuKGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICBhc3Nl
cnRfdHJ1ZSgKICAgICAgICAgICAgICAgICBvYmouc3luY2VkLAogICAgICAgICAgICAgICAgICdz
dGF0ZSBzaG91bGQgYmUgImluc3RhbGxlZCIgYWZ0ZXIgdGhlIHdhaXRVbnRpbCBwcm9taXNlICcg
KwogICAgICAgICAgICAgICAgICAgICAnZm9yICJvbmluc3RhbGwiIGlzIGZ1bGZpbGxlZC4nKTsK
ICAgICAgICAgICAgICAgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfZG9uZSh0LCBzY29w
ZSk7Ci0gICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0pCisgICAgICAgICAgLmNhdGNoKHVu
cmVhY2hlZF9yZWplY3Rpb24odCkpOworICAgICAgICBzeW5jV29ya2VyKHQsIHdvcmtlciwgb2Jq
KTsKICAgICAgIH07Ci0gICAgcmV0dXJuIHJ1blRlc3QodCwgc2NvcGUsIG9uUmVnaXN0ZXIpOwor
ICAgIHJ1blRlc3QodCwgc2NvcGUsIG9uUmVnaXN0ZXIpOwogICB9LCAnVGVzdCBpbnN0YWxsIGV2
ZW50IHdhaXRVbnRpbCBmdWxmaWxsZWQnKTsKIAotcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsK
K2FzeW5jX3Rlc3QoZnVuY3Rpb24odCkgewogICAgIHZhciBzY29wZSA9ICdyZXNvdXJjZXMvaW5z
dGFsbC1tdWx0aXBsZS1mdWxmaWxsZWQnOwogICAgIHZhciBvblJlZ2lzdGVyID0gZnVuY3Rpb24o
d29ya2VyKSB7CiAgICAgICAgIHZhciBvYmoxID0ge307CiAgICAgICAgIHZhciBvYmoyID0ge307
Ci0KLSAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKFsKLSAgICAgICAgICAgIHN5bmNXb3JrZXIo
d29ya2VyLCBvYmoxKSwKLSAgICAgICAgICAgIHN5bmNXb3JrZXIod29ya2VyLCBvYmoyKSwKLSAg
ICAgICAgICAgIHdhaXRfZm9yX3N0YXRlKHQsIHdvcmtlciwgJ2luc3RhbGxlZCcpCi0gICAgICAg
ICAgXSkudGhlbihmdW5jdGlvbigpIHsKKyAgICAgICAgd2FpdF9mb3Jfc3RhdGUodCwgd29ya2Vy
LCAnaW5zdGFsbGVkJykKKyAgICAgICAgICAudGhlbihmdW5jdGlvbigpIHsKICAgICAgICAgICAg
ICAgYXNzZXJ0X3RydWUoCiAgICAgICAgICAgICAgICAgb2JqMS5zeW5jZWQgJiYgb2JqMi5zeW5j
ZWQsCiAgICAgICAgICAgICAgICAgJ3N0YXRlIHNob3VsZCBiZSAiaW5zdGFsbGVkIiBhZnRlciBh
bGwgd2FpdFVudGlsIHByb21pc2VzICcgKwogICAgICAgICAgICAgICAgICAgICAnZm9yICJvbmlu
c3RhbGwiIGFyZSBmdWxmaWxsZWQuJyk7Ci0gICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAg
c2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfZG9uZSh0LCBzY29wZSk7CisgICAgICAgICAg
ICB9KQorICAgICAgICAgIC5jYXRjaCh1bnJlYWNoZWRfcmVqZWN0aW9uKHQpKTsKKyAgICAgICAg
c3luY1dvcmtlcih0LCB3b3JrZXIsIG9iajEpOworICAgICAgICBzeW5jV29ya2VyKHQsIHdvcmtl
ciwgb2JqMik7CiAgICAgICB9OwotICAgIHJldHVybiBydW5UZXN0KHQsIHNjb3BlLCBvblJlZ2lz
dGVyKTsKKyAgICBydW5UZXN0KHQsIHNjb3BlLCBvblJlZ2lzdGVyKTsKICAgfSwgJ1Rlc3QgRXh0
ZW5kYWJsZUV2ZW50IG11bHRpcGxlIHdhaXRVbnRpbCBmdWxmaWxsZWQuJyk7CiAKLXByb21pc2Vf
dGVzdChmdW5jdGlvbih0KSB7Cithc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICB2YXIgc2Nv
cGUgPSAncmVzb3VyY2VzL2luc3RhbGwtcmVqZWN0LXByZWNlZGVuY2UnOwogICAgIHZhciBvblJl
Z2lzdGVyID0gZnVuY3Rpb24od29ya2VyKSB7CiAgICAgICAgIHZhciBvYmoxID0ge307CiAgICAg
ICAgIHZhciBvYmoyID0ge307Ci0KLSAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKFsKLSAgICAg
ICAgICAgIHN5bmNXb3JrZXIod29ya2VyLCBvYmoxKQotICAgICAgICAgICAgICAudGhlbihmdW5j
dGlvbigpIHsKLSAgICAgICAgICAgICAgICAgIHN5bmNXb3JrZXIod29ya2VyLCBvYmoyKTsKLSAg
ICAgICAgICAgICAgICB9KSwKLSAgICAgICAgICAgIHdhaXRfZm9yX3N0YXRlKHQsIHdvcmtlciwg
J3JlZHVuZGFudCcpCi0gICAgICAgICAgXSkudGhlbihmdW5jdGlvbigpIHsKKyAgICAgICAgd2Fp
dF9mb3Jfc3RhdGUodCwgd29ya2VyLCAncmVkdW5kYW50JykKKyAgICAgICAgICAudGhlbihmdW5j
dGlvbigpIHsKICAgICAgICAgICAgICAgYXNzZXJ0X3RydWUoCiAgICAgICAgICAgICAgICAgb2Jq
MS5zeW5jZWQsCiAgICAgICAgICAgICAgICAgJ1RoZSAicmVkdW5kYW50IiBzdGF0ZSB3YXMgZW50
ZXJlZCBhZnRlciB0aGUgZmlyc3QgImV4dGVuZCAnICsKQEAgLTk1LDQ2ICs4NSw2MSBAQCBwcm9t
aXNlX3Rlc3QoZnVuY3Rpb24odCkgewogICAgICAgICAgICAgICAgICdUaGUgInJlZHVuZGFudCIg
c3RhdGUgd2FzIGVudGVyZWQgYWZ0ZXIgdGhlIHRoaXJkICJleHRlbmQgJyArCiAgICAgICAgICAg
ICAgICAgICAnbGlmZXRpbWUgcHJvbWlzZSIgcmVzb2x2ZWQuJwogICAgICAgICAgICAgICApOwor
ICAgICAgICAgICAgICBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9kb25lKHQsIHNjb3Bl
KTsKKyAgICAgICAgICAgIH0pCisgICAgICAgICAgLmNhdGNoKHVucmVhY2hlZF9yZWplY3Rpb24o
dCkpOworCisgICAgICAgIHN5bmNXb3JrZXIodCwgd29ya2VyLCBvYmoxKQorICAgICAgICAgIC50
aGVuKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICBzeW5jV29ya2VyKHQsIHdvcmtlciwgb2Jq
Mik7CiAgICAgICAgICAgICB9KTsKICAgICAgIH07Ci0gICAgcmV0dXJuIHJ1blRlc3QodCwgc2Nv
cGUsIG9uUmVnaXN0ZXIpOworICAgIHJ1blRlc3QodCwgc2NvcGUsIG9uUmVnaXN0ZXIpOwogICB9
LCAnVGVzdCBFeHRlbmRhYmxlRXZlbnQgd2FpdFVudGlsIHJlamVjdCBwcmVjZWRlbmNlLicpOwog
Ci1wcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgeworYXN5bmNfdGVzdChmdW5jdGlvbih0KSB7CiAg
ICAgdmFyIHNjb3BlID0gJ3Jlc291cmNlcy9hY3RpdmF0ZS1mdWxmaWxsZWQnOwogICAgIHZhciBv
blJlZ2lzdGVyID0gZnVuY3Rpb24od29ya2VyKSB7CiAgICAgICAgIHZhciBvYmogPSB7fTsKLSAg
ICAgICAgcmV0dXJuIHdhaXRfZm9yX3N0YXRlKHQsIHdvcmtlciwgJ2FjdGl2YXRpbmcnKQorICAg
ICAgICB3YWl0X2Zvcl9zdGF0ZSh0LCB3b3JrZXIsICdhY3RpdmF0aW5nJykKICAgICAgICAgICAu
dGhlbihmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKFsKLSAg
ICAgICAgICAgICAgICBzeW5jV29ya2VyKHdvcmtlciwgb2JqKSwKLSAgICAgICAgICAgICAgICB3
YWl0X2Zvcl9zdGF0ZSh0LCB3b3JrZXIsICdhY3RpdmF0ZWQnKQotICAgICAgICAgICAgICBdKTsK
KyAgICAgICAgICAgICAgc3luY1dvcmtlcih0LCB3b3JrZXIsIG9iaik7CisgICAgICAgICAgICAg
IHJldHVybiB3YWl0X2Zvcl9zdGF0ZSh0LCB3b3JrZXIsICdhY3RpdmF0ZWQnKTsKICAgICAgICAg
ICAgIH0pCiAgICAgICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgIGFzc2Vy
dF90cnVlKAogICAgICAgICAgICAgICAgIG9iai5zeW5jZWQsCiAgICAgICAgICAgICAgICAgJ3N0
YXRlIHNob3VsZCBiZSAiYWN0aXZhdGVkIiBhZnRlciB0aGUgd2FpdFVudGlsIHByb21pc2UgJyAr
CiAgICAgICAgICAgICAgICAgICAgICdmb3IgIm9uYWN0aXZhdGUiIGlzIGZ1bGZpbGxlZC4nKTsK
LSAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVy
X2FuZF9kb25lKHQsIHNjb3BlKTsKKyAgICAgICAgICAgIH0pCisgICAgICAgICAgLmNhdGNoKHVu
cmVhY2hlZF9yZWplY3Rpb24odCkpOwogICAgICAgfTsKLSAgICByZXR1cm4gcnVuVGVzdCh0LCBz
Y29wZSwgb25SZWdpc3Rlcik7CisgICAgcnVuVGVzdCh0LCBzY29wZSwgb25SZWdpc3Rlcik7CiAg
IH0sICdUZXN0IGFjdGl2YXRlIGV2ZW50IHdhaXRVbnRpbCBmdWxmaWxsZWQnKTsKIAotcHJvbWlz
ZV90ZXN0KGZ1bmN0aW9uKHQpIHsKK2FzeW5jX3Rlc3QoZnVuY3Rpb24odCkgewogICAgIHZhciBz
Y29wZSA9ICdyZXNvdXJjZXMvaW5zdGFsbC1yZWplY3RlZCc7CiAgICAgdmFyIG9uUmVnaXN0ZXIg
PSBmdW5jdGlvbih3b3JrZXIpIHsKLSAgICAgICAgcmV0dXJuIHdhaXRfZm9yX3N0YXRlKHQsIHdv
cmtlciwgJ3JlZHVuZGFudCcpOworICAgICAgICB3YWl0X2Zvcl9zdGF0ZSh0LCB3b3JrZXIsICdy
ZWR1bmRhbnQnKQorICAgICAgICAgIC50aGVuKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICBz
ZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9kb25lKHQsIHNjb3BlKTsKKyAgICAgICAgICAg
IH0pCisgICAgICAgICAgLmNhdGNoKHVucmVhY2hlZF9yZWplY3Rpb24odCkpOwogICAgICAgfTsK
LSAgICByZXR1cm4gcnVuVGVzdCh0LCBzY29wZSwgb25SZWdpc3Rlcik7CisgICAgcnVuVGVzdCh0
LCBzY29wZSwgb25SZWdpc3Rlcik7CiAgIH0sICdUZXN0IGluc3RhbGwgZXZlbnQgd2FpdFVudGls
IHJlamVjdGVkJyk7CiAKLXByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7Cithc3luY190ZXN0KGZ1
bmN0aW9uKHQpIHsKICAgICB2YXIgc2NvcGUgPSAncmVzb3VyY2VzL2FjdGl2YXRlLXJlamVjdGVk
JzsKICAgICB2YXIgb25SZWdpc3RlciA9IGZ1bmN0aW9uKHdvcmtlcikgewotICAgICAgICByZXR1
cm4gd2FpdF9mb3Jfc3RhdGUodCwgd29ya2VyLCAnYWN0aXZhdGVkJyk7CisgICAgICAgIHdhaXRf
Zm9yX3N0YXRlKHQsIHdvcmtlciwgJ2FjdGl2YXRlZCcpCisgICAgICAgICAgLnRoZW4oZnVuY3Rp
b24oKSB7CisgICAgICAgICAgICAgIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX2RvbmUo
dCwgc2NvcGUpOworICAgICAgICAgICAgfSkKKyAgICAgICAgICAuY2F0Y2godW5yZWFjaGVkX3Jl
amVjdGlvbih0KSk7CiAgICAgICB9OwotICAgIHJldHVybiBydW5UZXN0KHQsIHNjb3BlLCBvblJl
Z2lzdGVyKTsKKyAgICBydW5UZXN0KHQsIHNjb3BlLCBvblJlZ2lzdGVyKTsKICAgfSwgJ1Rlc3Qg
YWN0aXZhdGUgZXZlbnQgd2FpdFVudGlsIHJlamVjdGVkLicpOwogCiA8L3NjcmlwdD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWF1ZGlvLXRhaW50aW5nLmh0dHBzLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWF1ZGlvLXRhaW50aW5nLmh0dHBzLWV4
cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDk4ZjQxMzcwMzc3MjI2
YTNjZGRmMjM4MWNkY2FlNTk1YTU0MGRlZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1hdWRpby10YWludGluZy5o
dHRwcy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw0ICswLDAgQEAKLQotCi1GQUlM
IFZlcmlmeSBDT1JTIFhIUiBvZiBmZXRjaCgpIGluIGEgU2VydmljZSBXb3JrZXIgcHJvbWlzZV90
ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiB1
bmRlZmluZWQgaXMgbm90IGEgY29uc3RydWN0b3IgKGV2YWx1YXRpbmcgJ25ldyB3aW4uQXVkaW9D
b250ZXh0KCknKSIKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtYXVkaW8t
dGFpbnRpbmcuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWF1ZGlvLXRhaW50
aW5nLmh0dHBzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk4MjE3NTliYzdi
MzExNjcyYTU0Mzg3ZWRjN2Q4YzI2YTExZDVlNTQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtYXVkaW8tdGFpbnRp
bmcuaHR0cHMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQ3ICswLDAgQEAKLTwhZG9jdHlwZSBo
dG1sPgotPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdCBzcmM9Ii9jb21tb24vZ2V0LWhvc3QtaW5mby5zdWIuanMiPjwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9InJlc291cmNlcy90ZXN0LWhlbHBlcnMuc3ViLmpzP3BpcGU9c3ViIj48L3Njcmlw
dD4KLTxzY3JpcHQ+Ci1wcm9taXNlX3Rlc3QoYXN5bmMgKHQpID0+IHsKLSAgICBjb25zdCBTQ09Q
RSA9ICdyZXNvdXJjZXMvZW1wdHkuaHRtbCc7Ci0gICAgY29uc3QgU0NSSVBUID0gJ3Jlc291cmNl
cy9mZXRjaC1yZXdyaXRlLXdvcmtlci5qcyc7Ci0gICAgY29uc3QgaG9zdF9pbmZvID0gZ2V0X2hv
c3RfaW5mbygpOwotICAgIGNvbnN0IFJFTU9URV9PUklHSU4gPSBob3N0X2luZm8uSFRUUFNfUkVN
T1RFX09SSUdJTjsKLQotICAgIGNvbnN0IHJlZyA9IGF3YWl0IHNlcnZpY2Vfd29ya2VyX3VucmVn
aXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIFNDUklQVCwgU0NPUEUpOwotICAgIGF3YWl0IHdhaXRfZm9y
X3N0YXRlKHQsIHJlZy5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7Ci0gICAgY29uc3QgZnJhbWUg
PSBhd2FpdCB3aXRoX2lmcmFtZShTQ09QRSk7Ci0KLSAgICBjb25zdCBkb2MgPSBmcmFtZS5jb250
ZW50RG9jdW1lbnQ7Ci0gICAgY29uc3Qgd2luID0gZnJhbWUuY29udGVudFdpbmRvdzsKLQotICAg
IGNvbnN0IGNvbnRleHQgPSBuZXcgd2luLkF1ZGlvQ29udGV4dCgpOwotICAgIHRyeSB7Ci0gICAg
ICBjb250ZXh0LnN1c3BlbmQoKTsKLSAgICAgIGNvbnN0IGF1ZGlvID0gZG9jLmNyZWF0ZUVsZW1l
bnQoJ2F1ZGlvJyk7Ci0gICAgICBhdWRpby5hdXRvcGxheSA9IHRydWU7Ci0gICAgICBjb25zdCBz
b3VyY2UgPSBjb250ZXh0LmNyZWF0ZU1lZGlhRWxlbWVudFNvdXJjZShhdWRpbyk7Ci0gICAgICBj
b25zdCBzcG4gPSBjb250ZXh0LmNyZWF0ZVNjcmlwdFByb2Nlc3NvcigxNjM4NCwgMSwgMSk7Ci0g
ICAgICBzb3VyY2UuY29ubmVjdChzcG4pLmNvbm5lY3QoY29udGV4dC5kZXN0aW5hdGlvbik7Ci0g
ICAgICBjb25zdCB1cmwgPSBgJHtSRU1PVEVfT1JJR0lOfS93ZWJhdWRpby9yZXNvdXJjZXMvc2lu
XzQ0MEh6Xy02ZEJGU18xcy53YXZgOwotICAgICAgYXVkaW8uc3JjID0gJy90ZXN0P3VybD0nICsg
ZW5jb2RlVVJJQ29tcG9uZW50KHVybCk7Ci0gICAgICBkb2MuYm9keS5hcHBlbmRDaGlsZChhdWRp
byk7Ci0KLSAgICAgIGF3YWl0IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7Ci0gICAgICAgIGF1
ZGlvLmFkZEV2ZW50TGlzdGVuZXIoJ3BsYXlpbmcnLCByZXNvbHZlKTsKLSAgICAgIH0pOwotICAg
ICAgYXdhaXQgY29udGV4dC5yZXN1bWUoKTsKLSAgICAgIGNvbnN0IGV2ZW50ID0gYXdhaXQgbmV3
IFByb21pc2UoKHJlc29sdmUpID0+IHsKLSAgICAgICAgc3BuLmFkZEV2ZW50TGlzdGVuZXIoJ2F1
ZGlvcHJvY2VzcycsIHJlc29sdmUpOwotICAgICAgfSk7Ci0gICAgICBjb25zdCBkYXRhID0gZXZl
bnQuaW5wdXRCdWZmZXIuZ2V0Q2hhbm5lbERhdGEoMCk7Ci0gICAgICBmb3IgKGNvbnN0IGUgb2Yg
ZGF0YSkgewotICAgICAgICBhc3NlcnRfZXF1YWxzKGUsIDApOwotICAgICAgfQotICAgIH0gZmlu
YWxseSB7Ci0gICAgICBjb250ZXh0LmNsb3NlKCk7Ci0gICAgfQotICB9LCAnVmVyaWZ5IENPUlMg
WEhSIG9mIGZldGNoKCkgaW4gYSBTZXJ2aWNlIFdvcmtlcicpOwotPC9zY3JpcHQ+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1jYW52YXMtdGFpbnRpbmctZG91YmxlLXdyaXRl
Lmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWNhbnZhcy10YWlu
dGluZy1kb3VibGUtd3JpdGUuaHR0cHMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA5MTRlMWRmNTc4ZTczNWU0NjhmMzNhZWM2NjQ3MDU5NGY4NDA3MTE0Li4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL2ZldGNoLWNhbnZhcy10YWludGluZy1kb3VibGUtd3JpdGUuaHR0cHMtZXhwZWN0ZWQudHh0
CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi0KLVBBU1MgY2FudmFzIGlzIHRhaW50ZWQg
YWZ0ZXIgd3JpdGluZyBib3RoIGEgbm9uLW9wYXF1ZSBpbWFnZSBhbmQgYW4gb3BhcXVlIGltYWdl
IGZyb20gdGhlIHNhbWUgVVJMIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRj
aC1jYW52YXMtdGFpbnRpbmctZG91YmxlLXdyaXRlLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9mZXRjaC1jYW52YXMtdGFpbnRpbmctZG91YmxlLXdyaXRlLmh0dHBzLmh0bWwKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRlMjMzMDUzNzI5YzQyYzFmOGFjNDlkOTU1NGYzMDM1
YzhmMDQ3MjguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvZmV0Y2gtY2FudmFzLXRhaW50aW5nLWRvdWJsZS13cml0ZS5odHRw
cy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNTcgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08
c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0iL2NvbW1vbi9nZXQtaG9zdC1pbmZvLnN1Yi5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL3Rlc3QtaGVscGVycy5zdWIuanMiPjwvc2NyaXB0PgotPG1ldGEgY2hhcnNl
dD0idXRmLTgiPgotPHRpdGxlPmNhbnZhcyB0YWludGluZyB3aGVuIHdyaXR0ZW4gdHdpY2U8L3Rp
dGxlPgotPHNjcmlwdD4KLWZ1bmN0aW9uIGxvYWRJbWFnZShkb2MsIHVybCkgewotICByZXR1cm4g
bmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4gewotICAgIGNvbnN0IGltYWdlID0gZG9j
LmNyZWF0ZUVsZW1lbnQoJ2ltZycpOwotICAgIGltYWdlLm9ubG9hZCA9ICgpID0+IHsgcmVzb2x2
ZShpbWFnZSk7IH0KLSAgICBpbWFnZS5vbmVycm9yID0gKCkgPT4geyByZWplY3QoJ2ZhaWxlZCB0
byBsb2FkOiAnICsgdXJsKTsgfTsKLSAgICBpbWFnZS5zcmMgPSB1cmw7Ci0gIH0pOwotfQotCi0v
LyBUZXN0cyB0aGF0IGEgY2FudmFzIGlzIHRhaW50ZWQgYWZ0ZXIgaXQncyB3cml0dGVuIHRvIHdp
dGggYm90aCBhIGNsZWFyIGltYWdlCi0vLyBhbmQgb3BhcXVlIGltYWdlIGZyb20gdGhlIHNhbWUg
VVJMLiBBIGJhZCBpbXBsZW1lbnRhdGlvbiBtaWdodCBjYWNoZSB0aGUKLS8vIGluZm8gb2YgdGhl
IGNsZWFyIGltYWdlIGFuZCBhc3N1bWUgdGhlIG9wYXF1ZSBpbWFnZSBpcyBhbHNvIGNsZWFyIGJl
Y2F1c2UKLS8vIGl0J3MgZnJvbSB0aGUgc2FtZSBVUkwuIFNlZSBodHRwczovL2NyYnVnLmNvbS85
MDcwNDcgZm9yIGRldGFpbHMuCi1wcm9taXNlX3Rlc3QoYXN5bmMgKHQpID0+IHsKLSAgLy8gU2V0
IHVwIGEgc2VydmljZSB3b3JrZXIgYW5kIGEgY29udHJvbGxlZCBpZnJhbWUuCi0gIGNvbnN0IHNj
cmlwdCA9ICdyZXNvdXJjZXMvZmV0Y2gtY2FudmFzLXRhaW50aW5nLWRvdWJsZS13cml0ZS13b3Jr
ZXIuanMnOwotICBjb25zdCBzY29wZSA9ICdyZXNvdXJjZXMvZmV0Y2gtY2FudmFzLXRhaW50aW5n
LWRvdWJsZS13cml0ZS1pZnJhbWUuaHRtbCc7Ci0gIGNvbnN0IHJlZ2lzdHJhdGlvbiA9IGF3YWl0
IHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKAotICAgICAgdCwgc2NyaXB0
LCBzY29wZSk7Ci0gIHQuYWRkX2NsZWFudXAoKCkgPT4gcmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIo
KSk7Ci0gIGF3YWl0IHdhaXRfZm9yX3N0YXRlKHQsIHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLCAn
YWN0aXZhdGVkJyk7Ci0gIGNvbnN0IGlmcmFtZSA9IGF3YWl0IHdpdGhfaWZyYW1lKHNjb3BlKTsK
LSAgdC5hZGRfY2xlYW51cCgoKSA9PiBpZnJhbWUucmVtb3ZlKCkpOwotCi0gIC8vIExvYWQgdGhl
IHNhbWUgY3Jvc3Mtb3JpZ2luIGltYWdlIFVSTCB0aHJvdWdoIHRoZSBjb250cm9sbGVkIGlmcmFt
ZSBhbmQKLSAgLy8gdGhpcyB1bmNvbnRyb2xsZWQgZnJhbWUuIFRoZSBzZXJ2aWNlIHdvcmtlciBy
ZXNwb25kcyB3aXRoIGEgc2FtZS1vcmlnaW4KLSAgLy8gaW1hZ2UgZm9yIHRoZSBjb250cm9sbGVk
IGlmcmFtZSwgc28gaXQgaXMgY2xlYXJ0ZXh0LgotICBjb25zdCBpbWFnZVBhdGggPSBiYXNlX3Bh
dGgoKSArICdyZXNvdXJjZXMvZmV0Y2gtYWNjZXNzLWNvbnRyb2wucHk/UE5HSU1BR0UnOwotICBj
b25zdCBpbWFnZVVybCA9IGdldF9ob3N0X2luZm8oKVsnSFRUUFNfUkVNT1RFX09SSUdJTiddICsg
aW1hZ2VQYXRoOwotICBjb25zdCBjbGVhckltYWdlID0gYXdhaXQgbG9hZEltYWdlKGlmcmFtZS5j
b250ZW50RG9jdW1lbnQsIGltYWdlVXJsKTsKLSAgY29uc3Qgb3BhcXVlSW1hZ2UgPSBhd2FpdCBs
b2FkSW1hZ2UoZG9jdW1lbnQsIGltYWdlVXJsKTsKLQotICAvLyBTZXQgdXAgYSBjYW52YXMgZm9y
IHRlc3RpbmcgdGFpbnRpbmcuCi0gIGNvbnN0IGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoJ2NhbnZhcycpOwotICBjb25zdCBjb250ZXh0ID0gY2FudmFzLmdldENvbnRleHQoJzJkJyk7
Ci0gIGNhbnZhcy53aWR0aCA9IGNsZWFySW1hZ2Uud2lkdGg7Ci0gIGNhbnZhcy5oZWlnaHQgPSBj
bGVhckltYWdlLmhlaWdodDsKLQotICAvLyBUaGUgY2xlYXIgaW1hZ2UgYW5kIHRoZSBvcGFxdWUg
aW1hZ2UgaGF2ZSB0aGUgc2FtZSBzcmMgVVJMLiBCdXQuLi4KLQotICAvLyAuLi4gdGhlIGNsZWFy
IGltYWdlIGRvZXNuJ3QgdGFpbnQgdGhlIGNhbnZhcy4KLSAgY29udGV4dC5kcmF3SW1hZ2UoY2xl
YXJJbWFnZSwgMCwgMCk7Ci0gIGFzc2VydF90cnVlKGNhbnZhcy50b0RhdGFVUkwoKS5sZW5ndGgg
PiAwKTsKLQotICAvLyAuLi4gdGhlIG9wYXF1ZSBpbWFnZSB0YWludHMgdGhlIGNhbnZhcy4KLSAg
Y29udGV4dC5kcmF3SW1hZ2Uob3BhcXVlSW1hZ2UsIDAsIDApOwotICBhc3NlcnRfdGhyb3dzKCdT
ZWN1cml0eUVycm9yJywgKCkgPT4geyBjYW52YXMudG9EYXRhVVJMKCk7IH0pOwotfSwgJ2NhbnZh
cyBpcyB0YWludGVkIGFmdGVyIHdyaXRpbmcgYm90aCBhIG5vbi1vcGFxdWUgaW1hZ2UgYW5kIGFu
IG9wYXF1ZSBpbWFnZSBmcm9tIHRoZSBzYW1lIFVSTCcpOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1jYW52YXMtdGFpbnRpbmctdmlkZW8tY2FjaGUuaHR0
cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWNhbnZhcy10YWludGluZy12aWRlby1j
YWNoZS5odHRwcy5odG1sCmluZGV4IGMzN2U4ZTU2MjQ0ODc5M2Q3ZGE0ZjQ3MjI4OTNjYTdiYmUx
OWYzYWMuLmVmM2QxMmJiZTQ5ODJjNjQ5OTJiM2NkMGY0ZWQwOTJlYWE3MjUwN2IgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWNhbnZhcy10YWludGluZy12aWRlby1jYWNoZS5o
dHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWNhbnZhcy10YWludGluZy12
aWRlby1jYWNoZS5odHRwcy5odG1sCkBAIC0xLDcgKzEsNiBAQAogPCFET0NUWVBFIGh0bWw+CiA8
bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CiA8dGl0bGU+U2VydmljZSBXb3JrZXI6IGNhbnZhcyB0YWlu
dGluZyBvZiB0aGUgZmV0Y2hlZCB2aWRlbyB1c2luZyBjYWNoZSByZXNwb25zZXM8L3RpdGxlPgot
PG1ldGEgbmFtZT0idGltZW91dCIgY29udGVudD0ibG9uZyI+CiA8c2NyaXB0IHNyYz0iL3Jlc291
cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90
ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iL2NvbW1vbi9nZXQt
aG9zdC1pbmZvLnN1Yi5qcyI+PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9mZXRjaC1jYW52YXMtdGFpbnRpbmctdmlkZW8uaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL2ZldGNoLWNhbnZhcy10YWludGluZy12aWRlby5odHRwcy5odG1sCmluZGV4IGU4YzIzYTJl
ZGQ2M2M1NWE3N2VhODQ4NGZhZmFlMmIzYzUyZDE1YTAuLjU3NzY1MDg4MWMxNWZhOWE5NWM0M2Rj
Yjk1NWJkNTgxOGJhOGE4ZWQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWNh
bnZhcy10YWludGluZy12aWRlby5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2Zl
dGNoLWNhbnZhcy10YWludGluZy12aWRlby5odHRwcy5odG1sCkBAIC0xLDcgKzEsNiBAQAogPCFE
T0NUWVBFIGh0bWw+CiA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CiA8dGl0bGU+U2VydmljZSBXb3Jr
ZXI6IGNhbnZhcyB0YWludGluZyBvZiB0aGUgZmV0Y2hlZCB2aWRlbzwvdGl0bGU+Ci08bWV0YSBu
YW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIj4KIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIvY29tbW9uL2dldC1ob3N0LWlu
Zm8uc3ViLmpzIj48L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNo
LWNvcnMteGhyLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWNv
cnMteGhyLmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCAxMWIxNzRhMmM5MDYwMjllY2M3OWU4MWQ1
ZTkxNjNjZGNhMzZiOTA0Li43YzY1NGIwNTkzZjY3MzEwOTJhYzExMTc1NzYzYjQ3MDRlZTQ5NWM5
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1jb3JzLXhoci5odHRwcy1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtY29ycy14aHIuaHR0cHMtZXhw
ZWN0ZWQudHh0CkBAIC0xLDg3ICsxLDMgQEAKLUNPTlNPTEUgTUVTU0FHRTogRmV0Y2hFdmVudC5y
ZXNwb25kV2l0aCByZWNlaXZlZCBhbiBlcnJvcjogdW5kZWZpbmVkCi1DT05TT0xFIE1FU1NBR0U6
IFhNTEh0dHBSZXF1ZXN0IGNhbm5vdCBsb2FkIGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1hY2Nlc3MtY29udHJvbC5w
eT9yZWplY3QuCi1DT05TT0xFIE1FU1NBR0U6IEZldGNoRXZlbnQucmVzcG9uZFdpdGggcmVjZWl2
ZWQgYW4gZXJyb3I6IHVuZGVmaW5lZAotQ09OU09MRSBNRVNTQUdFOiBYTUxIdHRwUmVxdWVzdCBj
YW5ub3QgbG9hZCBodHRwczovL2xvY2FsaG9zdDo5NDQzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtYWNjZXNzLWNvbnRyb2wucHk/cmVqZWN0LgotQ09OU09M
RSBNRVNTQUdFOiBGZXRjaEV2ZW50LnJlc3BvbmRXaXRoIHJlY2VpdmVkIGFuIGVycm9yOiB1bmRl
ZmluZWQKLUNPTlNPTEUgTUVTU0FHRTogWE1MSHR0cFJlcXVlc3QgY2Fubm90IGxvYWQgaHR0cHM6
Ly8xMjcuMC4wLjE6OTQ0My9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2Vz
L2ZldGNoLWFjY2Vzcy1jb250cm9sLnB5P3JlamVjdC4KLUNPTlNPTEUgTUVTU0FHRTogRmV0Y2hF
dmVudC5yZXNwb25kV2l0aCByZWNlaXZlZCBhbiBlcnJvcjogdW5kZWZpbmVkCi1DT05TT0xFIE1F
U1NBR0U6IFhNTEh0dHBSZXF1ZXN0IGNhbm5vdCBsb2FkIGh0dHBzOi8vMTI3LjAuMC4xOjk0NDMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1hY2Nlc3MtY29u
dHJvbC5weT9yZWplY3QuCi1DT05TT0xFIE1FU1NBR0U6IE9yaWdpbiBodHRwczovL2xvY2FsaG9z
dDo5NDQzIGlzIG5vdCBhbGxvd2VkIGJ5IEFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbi4KLUNP
TlNPTEUgTUVTU0FHRTogWE1MSHR0cFJlcXVlc3QgY2Fubm90IGxvYWQgaHR0cHM6Ly8xMjcuMC4w
LjE6OTQ0My9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWFj
Y2Vzcy1jb250cm9sLnB5P3Rocm93IGR1ZSB0byBhY2Nlc3MgY29udHJvbCBjaGVja3MuCi1DT05T
T0xFIE1FU1NBR0U6IE9yaWdpbiBodHRwczovL2xvY2FsaG9zdDo5NDQzIGlzIG5vdCBhbGxvd2Vk
IGJ5IEFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbi4KLUNPTlNPTEUgTUVTU0FHRTogWE1MSHR0
cFJlcXVlc3QgY2Fubm90IGxvYWQgaHR0cHM6Ly8xMjcuMC4wLjE6OTQ0My9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWFjY2Vzcy1jb250cm9sLnB5P3Rocm93
IGR1ZSB0byBhY2Nlc3MgY29udHJvbCBjaGVja3MuCi1DT05TT0xFIE1FU1NBR0U6IEZldGNoRXZl
bnQucmVzcG9uZFdpdGggcmVjZWl2ZWQgYW4gZXJyb3I6IFJldHVybmVkIHJlc3BvbnNlIGlzIG51
bGwuCi1DT05TT0xFIE1FU1NBR0U6IFhNTEh0dHBSZXF1ZXN0IGNhbm5vdCBsb2FkIGh0dHBzOi8v
bG9jYWxob3N0Ojk0NDMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9m
ZXRjaC1hY2Nlc3MtY29udHJvbC5weT9yZXNvbHZlLW51bGwuCi1DT05TT0xFIE1FU1NBR0U6IEZl
dGNoRXZlbnQucmVzcG9uZFdpdGggcmVjZWl2ZWQgYW4gZXJyb3I6IFJldHVybmVkIHJlc3BvbnNl
IGlzIG51bGwuCi1DT05TT0xFIE1FU1NBR0U6IFhNTEh0dHBSZXF1ZXN0IGNhbm5vdCBsb2FkIGh0
dHBzOi8vbG9jYWxob3N0Ojk0NDMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291
cmNlcy9mZXRjaC1hY2Nlc3MtY29udHJvbC5weT9yZXNvbHZlLW51bGwuCi1DT05TT0xFIE1FU1NB
R0U6IEZldGNoRXZlbnQucmVzcG9uZFdpdGggcmVjZWl2ZWQgYW4gZXJyb3I6IFJldHVybmVkIHJl
c3BvbnNlIGlzIG51bGwuCi1DT05TT0xFIE1FU1NBR0U6IFhNTEh0dHBSZXF1ZXN0IGNhbm5vdCBs
b2FkIGh0dHBzOi8vMTI3LjAuMC4xOjk0NDMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L3Jlc291cmNlcy9mZXRjaC1hY2Nlc3MtY29udHJvbC5weT9yZXNvbHZlLW51bGwuCi1DT05TT0xF
IE1FU1NBR0U6IEZldGNoRXZlbnQucmVzcG9uZFdpdGggcmVjZWl2ZWQgYW4gZXJyb3I6IFJldHVy
bmVkIHJlc3BvbnNlIGlzIG51bGwuCi1DT05TT0xFIE1FU1NBR0U6IFhNTEh0dHBSZXF1ZXN0IGNh
bm5vdCBsb2FkIGh0dHBzOi8vMTI3LjAuMC4xOjk0NDMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL3Jlc291cmNlcy9mZXRjaC1hY2Nlc3MtY29udHJvbC5weT9yZXNvbHZlLW51bGwuCi1D
T05TT0xFIE1FU1NBR0U6IE9yaWdpbiBodHRwczovL2xvY2FsaG9zdDo5NDQzIGlzIG5vdCBhbGxv
d2VkIGJ5IEFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbi4KLUNPTlNPTEUgTUVTU0FHRTogWE1M
SHR0cFJlcXVlc3QgY2Fubm90IGxvYWQgaHR0cHM6Ly8xMjcuMC4wLjE6OTQ0My9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWFjY2Vzcy1jb250cm9sLnB5P2ln
bm9yZSBkdWUgdG8gYWNjZXNzIGNvbnRyb2wgY2hlY2tzLgotQ09OU09MRSBNRVNTQUdFOiBPcmln
aW4gaHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0MyBpcyBub3QgYWxsb3dlZCBieSBBY2Nlc3MtQ29udHJv
bC1BbGxvdy1PcmlnaW4uCi1DT05TT0xFIE1FU1NBR0U6IFhNTEh0dHBSZXF1ZXN0IGNhbm5vdCBs
b2FkIGh0dHBzOi8vMTI3LjAuMC4xOjk0NDMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L3Jlc291cmNlcy9mZXRjaC1hY2Nlc3MtY29udHJvbC5weT9pZ25vcmUgZHVlIHRvIGFjY2VzcyBj
b250cm9sIGNoZWNrcy4KLUNPTlNPTEUgTUVTU0FHRTogQ3JlZGVudGlhbHMgZmxhZyBpcyB0cnVl
LCBidXQgQWNjZXNzLUNvbnRyb2wtQWxsb3ctQ3JlZGVudGlhbHMgaXMgbm90ICJ0cnVlIi4KLUNP
TlNPTEUgTUVTU0FHRTogWE1MSHR0cFJlcXVlc3QgY2Fubm90IGxvYWQgaHR0cHM6Ly8xMjcuMC4w
LjE6OTQ0My9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWFj
Y2Vzcy1jb250cm9sLnB5P0FDQU9yaWdpbj1odHRwczovL2xvY2FsaG9zdDo5NDQzJmlnbm9yZSBk
dWUgdG8gYWNjZXNzIGNvbnRyb2wgY2hlY2tzLgotQ09OU09MRSBNRVNTQUdFOiBPcmlnaW4gaHR0
cHM6Ly9sb2NhbGhvc3Q6OTQ0MyBpcyBub3QgYWxsb3dlZCBieSBBY2Nlc3MtQ29udHJvbC1BbGxv
dy1PcmlnaW4uCi1DT05TT0xFIE1FU1NBR0U6IFhNTEh0dHBSZXF1ZXN0IGNhbm5vdCBsb2FkIGh0
dHBzOi8vMTI3LjAuMC4xOjk0NDMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291
cmNlcy9mZXRjaC1hY2Nlc3MtY29udHJvbC5weT9BdXRoJmlnbm9yZSBkdWUgdG8gYWNjZXNzIGNv
bnRyb2wgY2hlY2tzLgotQ09OU09MRSBNRVNTQUdFOiBPcmlnaW4gaHR0cHM6Ly9sb2NhbGhvc3Q6
OTQ0MyBpcyBub3QgYWxsb3dlZCBieSBBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4uCi1DT05T
T0xFIE1FU1NBR0U6IFhNTEh0dHBSZXF1ZXN0IGNhbm5vdCBsb2FkIGh0dHBzOi8vMTI3LjAuMC4x
Ojk0NDMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1hY2Nl
c3MtY29udHJvbC5weT9BdXRoJmlnbm9yZSBkdWUgdG8gYWNjZXNzIGNvbnRyb2wgY2hlY2tzLgot
Q09OU09MRSBNRVNTQUdFOiBDcmVkZW50aWFscyBmbGFnIGlzIHRydWUsIGJ1dCBBY2Nlc3MtQ29u
dHJvbC1BbGxvdy1DcmVkZW50aWFscyBpcyBub3QgInRydWUiLgotQ09OU09MRSBNRVNTQUdFOiBY
TUxIdHRwUmVxdWVzdCBjYW5ub3QgbG9hZCBodHRwczovLzEyNy4wLjAuMTo5NDQzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtYWNjZXNzLWNvbnRyb2wucHk/
QXV0aCZBQ0FPcmlnaW49aHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0MyZpZ25vcmUgZHVlIHRvIGFjY2Vz
cyBjb250cm9sIGNoZWNrcy4KLUNPTlNPTEUgTUVTU0FHRTogUmVzcG9uc2Ugc2VydmVkIGJ5IHNl
cnZpY2Ugd29ya2VyIGlzIG9wYXF1ZQotQ09OU09MRSBNRVNTQUdFOiBYTUxIdHRwUmVxdWVzdCBj
YW5ub3QgbG9hZCBodHRwczovLzEyNy4wLjAuMTo5NDQzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtYWNjZXNzLWNvbnRyb2wucHkgZHVlIHRvIGFjY2VzcyBj
b250cm9sIGNoZWNrcy4KLUNPTlNPTEUgTUVTU0FHRTogUmVzcG9uc2Ugc2VydmVkIGJ5IHNlcnZp
Y2Ugd29ya2VyIGlzIG9wYXF1ZQotQ09OU09MRSBNRVNTQUdFOiBYTUxIdHRwUmVxdWVzdCBjYW5u
b3QgbG9hZCBodHRwczovLzEyNy4wLjAuMTo5NDQzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9yZXNvdXJjZXMvZmV0Y2gtYWNjZXNzLWNvbnRyb2wucHkgZHVlIHRvIGFjY2VzcyBjb250
cm9sIGNoZWNrcy4KLUNPTlNPTEUgTUVTU0FHRTogUmVzcG9uc2Ugc2VydmVkIGJ5IHNlcnZpY2Ug
d29ya2VyIGlzIG9wYXF1ZQotQ09OU09MRSBNRVNTQUdFOiBYTUxIdHRwUmVxdWVzdCBjYW5ub3Qg
bG9hZCBodHRwczovLzEyNy4wLjAuMTo5NDQzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9yZXNvdXJjZXMvZmV0Y2gtYWNjZXNzLWNvbnRyb2wucHkgZHVlIHRvIGFjY2VzcyBjb250cm9s
IGNoZWNrcy4KLUNPTlNPTEUgTUVTU0FHRTogUmVzcG9uc2Ugc2VydmVkIGJ5IHNlcnZpY2Ugd29y
a2VyIGlzIG9wYXF1ZQotQ09OU09MRSBNRVNTQUdFOiBYTUxIdHRwUmVxdWVzdCBjYW5ub3QgbG9h
ZCBodHRwczovLzEyNy4wLjAuMTo5NDQzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9y
ZXNvdXJjZXMvZmV0Y2gtYWNjZXNzLWNvbnRyb2wucHkgZHVlIHRvIGFjY2VzcyBjb250cm9sIGNo
ZWNrcy4KLUNPTlNPTEUgTUVTU0FHRTogRmV0Y2hFdmVudC5yZXNwb25kV2l0aCByZWNlaXZlZCBh
biBlcnJvcjogVHlwZUVycm9yOiBDcmVkZW50aWFscyBmbGFnIGlzIHRydWUsIGJ1dCBBY2Nlc3Mt
Q29udHJvbC1BbGxvdy1DcmVkZW50aWFscyBpcyBub3QgInRydWUiLgotQ09OU09MRSBNRVNTQUdF
OiBYTUxIdHRwUmVxdWVzdCBjYW5ub3QgbG9hZCBodHRwczovL2xvY2FsaG9zdDo5NDQzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtYWNjZXNzLWNvbnRyb2wu
cHk/bW9kZT1jb3JzJnVybD1odHRwcyUzQSUyRiUyRjEyNy4wLjAuMSUzQTk0NDMlMkZzZXJ2aWNl
LXdvcmtlcnMlMkZzZXJ2aWNlLXdvcmtlciUyRnJlc291cmNlcyUyRmZldGNoLWFjY2Vzcy1jb250
cm9sLnB5JTNGQUNBT3JpZ2luJTNEaHR0cHMlM0ElMkYlMkZsb2NhbGhvc3QlM0E5NDQzLgotQ09O
U09MRSBNRVNTQUdFOiBGZXRjaEV2ZW50LnJlc3BvbmRXaXRoIHJlY2VpdmVkIGFuIGVycm9yOiBU
eXBlRXJyb3I6IENyZWRlbnRpYWxzIGZsYWcgaXMgdHJ1ZSwgYnV0IEFjY2Vzcy1Db250cm9sLUFs
bG93LUNyZWRlbnRpYWxzIGlzIG5vdCAidHJ1ZSIuCi1DT05TT0xFIE1FU1NBR0U6IFhNTEh0dHBS
ZXF1ZXN0IGNhbm5vdCBsb2FkIGh0dHBzOi8vMTI3LjAuMC4xOjk0NDMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1hY2Nlc3MtY29udHJvbC5weT9tb2RlPWNv
cnMmdXJsPWh0dHBzJTNBJTJGJTJGMTI3LjAuMC4xJTNBOTQ0MyUyRnNlcnZpY2Utd29ya2VycyUy
RnNlcnZpY2Utd29ya2VyJTJGcmVzb3VyY2VzJTJGZmV0Y2gtYWNjZXNzLWNvbnRyb2wucHklM0ZB
Q0FPcmlnaW4lM0RodHRwcyUzQSUyRiUyRmxvY2FsaG9zdCUzQTk0NDMuCiAKIFBBU1MgVmVyaWZ5
IENPUlMgWEhSIG9mIGZldGNoKCkgaW4gYSBTZXJ2aWNlIFdvcmtlciAKLVBBU1MgdGVzdCAxOiBo
dHRwczovL2xvY2FsaG9zdDo5NDQzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNv
dXJjZXMvZmV0Y2gtYWNjZXNzLWNvbnRyb2wucHk/cmVqZWN0IHdpdGggY3JlZGVudGlhbHMgZmFs
c2UgbXVzdCBiZSBGQUlMIAotUEFTUyB0ZXN0IDI6IGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1hY2Nlc3MtY29udHJv
bC5weT9yZWplY3Qgd2l0aCBjcmVkZW50aWFscyB0cnVlIG11c3QgYmUgRkFJTCAKLVBBU1MgdGVz
dCAzOiBodHRwczovLzEyNy4wLjAuMTo5NDQzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9yZXNvdXJjZXMvZmV0Y2gtYWNjZXNzLWNvbnRyb2wucHk/cmVqZWN0IHdpdGggY3JlZGVudGlh
bHMgZmFsc2UgbXVzdCBiZSBGQUlMIAotUEFTUyB0ZXN0IDQ6IGh0dHBzOi8vMTI3LjAuMC4xOjk0
NDMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1hY2Nlc3Mt
Y29udHJvbC5weT9yZWplY3Qgd2l0aCBjcmVkZW50aWFscyB0cnVlIG11c3QgYmUgRkFJTCAKLVBB
U1MgdGVzdCA1OiBodHRwczovL2xvY2FsaG9zdDo5NDQzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtYWNjZXNzLWNvbnRyb2wucHk/dGhyb3cgd2l0aCBjcmVk
ZW50aWFscyBmYWxzZSBtdXN0IGJlIFNVQ0NFU1MgCi1QQVNTIHRlc3QgNjogaHR0cHM6Ly9sb2Nh
bGhvc3Q6OTQ0My9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNo
LWFjY2Vzcy1jb250cm9sLnB5P3Rocm93IHdpdGggY3JlZGVudGlhbHMgdHJ1ZSBtdXN0IGJlIFNV
Q0NFU1MgCi1QQVNTIHRlc3QgNzogaHR0cHM6Ly8xMjcuMC4wLjE6OTQ0My9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWFjY2Vzcy1jb250cm9sLnB5P3Rocm93
IHdpdGggY3JlZGVudGlhbHMgZmFsc2UgbXVzdCBiZSBGQUlMIAotUEFTUyB0ZXN0IDg6IGh0dHBz
Oi8vMTI3LjAuMC4xOjk0NDMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNl
cy9mZXRjaC1hY2Nlc3MtY29udHJvbC5weT90aHJvdyB3aXRoIGNyZWRlbnRpYWxzIHRydWUgbXVz
dCBiZSBGQUlMIAotUEFTUyB0ZXN0IDk6IGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1hY2Nlc3MtY29udHJvbC5weT9y
ZXNvbHZlLW51bGwgd2l0aCBjcmVkZW50aWFscyBmYWxzZSBtdXN0IGJlIEZBSUwgCi1QQVNTIHRl
c3QgMTA6IGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3Jlc291cmNlcy9mZXRjaC1hY2Nlc3MtY29udHJvbC5weT9yZXNvbHZlLW51bGwgd2l0aCBj
cmVkZW50aWFscyB0cnVlIG11c3QgYmUgRkFJTCAKLVBBU1MgdGVzdCAxMTogaHR0cHM6Ly8xMjcu
MC4wLjE6OTQ0My9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNo
LWFjY2Vzcy1jb250cm9sLnB5P3Jlc29sdmUtbnVsbCB3aXRoIGNyZWRlbnRpYWxzIGZhbHNlIG11
c3QgYmUgRkFJTCAKLVBBU1MgdGVzdCAxMjogaHR0cHM6Ly8xMjcuMC4wLjE6OTQ0My9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWFjY2Vzcy1jb250cm9sLnB5
P3Jlc29sdmUtbnVsbCB3aXRoIGNyZWRlbnRpYWxzIHRydWUgbXVzdCBiZSBGQUlMIAotUEFTUyB0
ZXN0IDEzOiBodHRwczovL2xvY2FsaG9zdDo5NDQzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9yZXNvdXJjZXMvZmV0Y2gtYWNjZXNzLWNvbnRyb2wucHk/aWdub3JlIHdpdGggY3JlZGVu
dGlhbHMgZmFsc2UgbXVzdCBiZSBTVUNDRVNTIAotUEFTUyB0ZXN0IDE0OiBodHRwczovL2xvY2Fs
aG9zdDo5NDQzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gt
YWNjZXNzLWNvbnRyb2wucHk/aWdub3JlIHdpdGggY3JlZGVudGlhbHMgdHJ1ZSBtdXN0IGJlIFNV
Q0NFU1MgCi1QQVNTIHRlc3QgMTU6IGh0dHBzOi8vMTI3LjAuMC4xOjk0NDMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1hY2Nlc3MtY29udHJvbC5weT9pZ25v
cmUgd2l0aCBjcmVkZW50aWFscyBmYWxzZSBtdXN0IGJlIEZBSUwgCi1QQVNTIHRlc3QgMTY6IGh0
dHBzOi8vMTI3LjAuMC4xOjk0NDMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291
cmNlcy9mZXRjaC1hY2Nlc3MtY29udHJvbC5weT9pZ25vcmUgd2l0aCBjcmVkZW50aWFscyB0cnVl
IG11c3QgYmUgRkFJTCAKLVBBU1MgdGVzdCAxNzogaHR0cHM6Ly8xMjcuMC4wLjE6OTQ0My9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWFjY2Vzcy1jb250cm9s
LnB5P0FDQU9yaWdpbj1odHRwczovL2xvY2FsaG9zdDo5NDQzJmlnbm9yZSB3aXRoIGNyZWRlbnRp
YWxzIGZhbHNlIG11c3QgYmUgU1VDQ0VTUyAKLVBBU1MgdGVzdCAxODogaHR0cHM6Ly8xMjcuMC4w
LjE6OTQ0My9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWFj
Y2Vzcy1jb250cm9sLnB5P0FDQU9yaWdpbj1odHRwczovL2xvY2FsaG9zdDo5NDQzJmlnbm9yZSB3
aXRoIGNyZWRlbnRpYWxzIHRydWUgbXVzdCBiZSBGQUlMIAotUEFTUyB0ZXN0IDE5OiBodHRwczov
LzEyNy4wLjAuMTo5NDQzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMv
ZmV0Y2gtYWNjZXNzLWNvbnRyb2wucHk/QUNBT3JpZ2luPWh0dHBzOi8vbG9jYWxob3N0Ojk0NDMm
QUNBQ3JlZGVudGlhbHM9dHJ1ZSZpZ25vcmUgd2l0aCBjcmVkZW50aWFscyB0cnVlIG11c3QgYmUg
U1VDQ0VTUyAKLVBBU1MgdGVzdCAyMDogaHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0My9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWFjY2Vzcy1jb250cm9sLnB5P0F1
dGgmaWdub3JlIHdpdGggY3JlZGVudGlhbHMgZmFsc2UgbXVzdCBiZSBTVUNDRVNTIAotUEFTUyB0
ZXN0IDIxOiBodHRwczovL2xvY2FsaG9zdDo5NDQzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9yZXNvdXJjZXMvZmV0Y2gtYWNjZXNzLWNvbnRyb2wucHk/QXV0aCZpZ25vcmUgd2l0aCBj
cmVkZW50aWFscyB0cnVlIG11c3QgYmUgU1VDQ0VTUyAKLVBBU1MgdGVzdCAyMjogaHR0cHM6Ly8x
MjcuMC4wLjE6OTQ0My9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2Zl
dGNoLWFjY2Vzcy1jb250cm9sLnB5P0F1dGgmaWdub3JlIHdpdGggY3JlZGVudGlhbHMgZmFsc2Ug
bXVzdCBiZSBGQUlMIAotUEFTUyB0ZXN0IDIzOiBodHRwczovLzEyNy4wLjAuMTo5NDQzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtYWNjZXNzLWNvbnRyb2wu
cHk/QXV0aCZpZ25vcmUgd2l0aCBjcmVkZW50aWFscyB0cnVlIG11c3QgYmUgRkFJTCAKLVBBU1Mg
dGVzdCAyNDogaHR0cHM6Ly8xMjcuMC4wLjE6OTQ0My9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWFjY2Vzcy1jb250cm9sLnB5P0F1dGgmQUNBT3JpZ2luPWh0
dHBzOi8vbG9jYWxob3N0Ojk0NDMmaWdub3JlIHdpdGggY3JlZGVudGlhbHMgZmFsc2UgbXVzdCBi
ZSBTVEFUVVM0MDEgCi1QQVNTIHRlc3QgMjU6IGh0dHBzOi8vMTI3LjAuMC4xOjk0NDMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1hY2Nlc3MtY29udHJvbC5w
eT9BdXRoJkFDQU9yaWdpbj1odHRwczovL2xvY2FsaG9zdDo5NDQzJmlnbm9yZSB3aXRoIGNyZWRl
bnRpYWxzIHRydWUgbXVzdCBiZSBGQUlMIAotUEFTUyB0ZXN0IDI2OiBodHRwczovLzEyNy4wLjAu
MTo5NDQzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtYWNj
ZXNzLWNvbnRyb2wucHk/QXV0aCZBQ0FPcmlnaW49aHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0MyZBQ0FD
cmVkZW50aWFscz10cnVlJmlnbm9yZSB3aXRoIGNyZWRlbnRpYWxzIHRydWUgbXVzdCBiZSBTVUND
RVNTIAotUEFTUyB0ZXN0IDI3OiBodHRwczovL2xvY2FsaG9zdDo5NDQzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtYWNjZXNzLWNvbnRyb2wucHk/bW9kZT1z
YW1lLW9yaWdpbiZ1cmw9aHR0cHMlM0ElMkYlMkZsb2NhbGhvc3QlM0E5NDQzJTJGc2VydmljZS13
b3JrZXJzJTJGc2VydmljZS13b3JrZXIlMkZyZXNvdXJjZXMlMkZmZXRjaC1hY2Nlc3MtY29udHJv
bC5weSB3aXRoIGNyZWRlbnRpYWxzIGZhbHNlIG11c3QgYmUgU1VDQ0VTUyAKLVBBU1MgdGVzdCAy
ODogaHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0My9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
cmVzb3VyY2VzL2ZldGNoLWFjY2Vzcy1jb250cm9sLnB5P21vZGU9c2FtZS1vcmlnaW4mdXJsPWh0
dHBzJTNBJTJGJTJGbG9jYWxob3N0JTNBOTQ0MyUyRnNlcnZpY2Utd29ya2VycyUyRnNlcnZpY2Ut
d29ya2VyJTJGcmVzb3VyY2VzJTJGZmV0Y2gtYWNjZXNzLWNvbnRyb2wucHkgd2l0aCBjcmVkZW50
aWFscyBmYWxzZSBtdXN0IGJlIFNVQ0NFU1MgCi1QQVNTIHRlc3QgMjk6IGh0dHBzOi8vMTI3LjAu
MC4xOjk0NDMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1h
Y2Nlc3MtY29udHJvbC5weT9tb2RlPXNhbWUtb3JpZ2luJnVybD1odHRwcyUzQSUyRiUyRmxvY2Fs
aG9zdCUzQTk0NDMlMkZzZXJ2aWNlLXdvcmtlcnMlMkZzZXJ2aWNlLXdvcmtlciUyRnJlc291cmNl
cyUyRmZldGNoLWFjY2Vzcy1jb250cm9sLnB5IHdpdGggY3JlZGVudGlhbHMgZmFsc2UgbXVzdCBi
ZSBTVUNDRVNTIAotUEFTUyB0ZXN0IDMwOiBodHRwczovLzEyNy4wLjAuMTo5NDQzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtYWNjZXNzLWNvbnRyb2wucHk/
bW9kZT1zYW1lLW9yaWdpbiZ1cmw9aHR0cHMlM0ElMkYlMkZsb2NhbGhvc3QlM0E5NDQzJTJGc2Vy
dmljZS13b3JrZXJzJTJGc2VydmljZS13b3JrZXIlMkZyZXNvdXJjZXMlMkZmZXRjaC1hY2Nlc3Mt
Y29udHJvbC5weSB3aXRoIGNyZWRlbnRpYWxzIGZhbHNlIG11c3QgYmUgU1VDQ0VTUyAKLVBBU1Mg
dGVzdCAzMTogaHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0My9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWFjY2Vzcy1jb250cm9sLnB5P21vZGU9bm8tY29ycyZ1cmw9
aHR0cHMlM0ElMkYlMkYxMjcuMC4wLjElM0E5NDQzJTJGc2VydmljZS13b3JrZXJzJTJGc2Vydmlj
ZS13b3JrZXIlMkZyZXNvdXJjZXMlMkZmZXRjaC1hY2Nlc3MtY29udHJvbC5weSB3aXRoIGNyZWRl
bnRpYWxzIGZhbHNlIG11c3QgYmUgRkFJTCAKLVBBU1MgdGVzdCAzMjogaHR0cHM6Ly9sb2NhbGhv
c3Q6OTQ0My9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWFj
Y2Vzcy1jb250cm9sLnB5P21vZGU9bm8tY29ycyZ1cmw9aHR0cHMlM0ElMkYlMkYxMjcuMC4wLjEl
M0E5NDQzJTJGc2VydmljZS13b3JrZXJzJTJGc2VydmljZS13b3JrZXIlMkZyZXNvdXJjZXMlMkZm
ZXRjaC1hY2Nlc3MtY29udHJvbC5weSB3aXRoIGNyZWRlbnRpYWxzIGZhbHNlIG11c3QgYmUgRkFJ
TCAKLVBBU1MgdGVzdCAzMzogaHR0cHM6Ly8xMjcuMC4wLjE6OTQ0My9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWFjY2Vzcy1jb250cm9sLnB5P21vZGU9bm8t
Y29ycyZ1cmw9aHR0cHMlM0ElMkYlMkYxMjcuMC4wLjElM0E5NDQzJTJGc2VydmljZS13b3JrZXJz
JTJGc2VydmljZS13b3JrZXIlMkZyZXNvdXJjZXMlMkZmZXRjaC1hY2Nlc3MtY29udHJvbC5weSB3
aXRoIGNyZWRlbnRpYWxzIGZhbHNlIG11c3QgYmUgRkFJTCAKLVBBU1MgdGVzdCAzNDogaHR0cHM6
Ly8xMjcuMC4wLjE6OTQ0My9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2Vz
L2ZldGNoLWFjY2Vzcy1jb250cm9sLnB5P21vZGU9bm8tY29ycyZ1cmw9aHR0cHMlM0ElMkYlMkYx
MjcuMC4wLjElM0E5NDQzJTJGc2VydmljZS13b3JrZXJzJTJGc2VydmljZS13b3JrZXIlMkZyZXNv
dXJjZXMlMkZmZXRjaC1hY2Nlc3MtY29udHJvbC5weSB3aXRoIGNyZWRlbnRpYWxzIGZhbHNlIG11
c3QgYmUgRkFJTCAKLVBBU1MgdGVzdCAzNTogaHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0My9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWFjY2Vzcy1jb250cm9sLnB5
P21vZGU9Y29ycyZ1cmw9aHR0cHMlM0ElMkYlMkYxMjcuMC4wLjElM0E5NDQzJTJGc2VydmljZS13
b3JrZXJzJTJGc2VydmljZS13b3JrZXIlMkZyZXNvdXJjZXMlMkZmZXRjaC1hY2Nlc3MtY29udHJv
bC5weSUzRkFDQU9yaWdpbiUzRGh0dHBzJTNBJTJGJTJGbG9jYWxob3N0JTNBOTQ0MyB3aXRoIGNy
ZWRlbnRpYWxzIGZhbHNlIG11c3QgYmUgU1VDQ0VTUyAKLVBBU1MgdGVzdCAzNjogaHR0cHM6Ly9s
b2NhbGhvc3Q6OTQ0My9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2Zl
dGNoLWFjY2Vzcy1jb250cm9sLnB5P21vZGU9Y29ycyZ1cmw9aHR0cHMlM0ElMkYlMkYxMjcuMC4w
LjElM0E5NDQzJTJGc2VydmljZS13b3JrZXJzJTJGc2VydmljZS13b3JrZXIlMkZyZXNvdXJjZXMl
MkZmZXRjaC1hY2Nlc3MtY29udHJvbC5weSUzRkFDQU9yaWdpbiUzRGh0dHBzJTNBJTJGJTJGbG9j
YWxob3N0JTNBOTQ0MyB3aXRoIGNyZWRlbnRpYWxzIHRydWUgbXVzdCBiZSBGQUlMIAotUEFTUyB0
ZXN0IDM3OiBodHRwczovL2xvY2FsaG9zdDo5NDQzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9yZXNvdXJjZXMvZmV0Y2gtYWNjZXNzLWNvbnRyb2wucHk/bW9kZT1jb3JzJnVybD1odHRw
cyUzQSUyRiUyRjEyNy4wLjAuMSUzQTk0NDMlMkZzZXJ2aWNlLXdvcmtlcnMlMkZzZXJ2aWNlLXdv
cmtlciUyRnJlc291cmNlcyUyRmZldGNoLWFjY2Vzcy1jb250cm9sLnB5JTNGQUNBT3JpZ2luJTNE
aHR0cHMlM0ElMkYlMkZsb2NhbGhvc3QlM0E5NDQzJTI2QUNBQ3JlZGVudGlhbHMlM0R0cnVlIHdp
dGggY3JlZGVudGlhbHMgdHJ1ZSBtdXN0IGJlIFNVQ0NFU1MgCi1QQVNTIHRlc3QgMzg6IGh0dHBz
Oi8vMTI3LjAuMC4xOjk0NDMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNl
cy9mZXRjaC1hY2Nlc3MtY29udHJvbC5weT9tb2RlPWNvcnMmdXJsPWh0dHBzJTNBJTJGJTJGMTI3
LjAuMC4xJTNBOTQ0MyUyRnNlcnZpY2Utd29ya2VycyUyRnNlcnZpY2Utd29ya2VyJTJGcmVzb3Vy
Y2VzJTJGZmV0Y2gtYWNjZXNzLWNvbnRyb2wucHklM0ZBQ0FPcmlnaW4lM0RodHRwcyUzQSUyRiUy
RmxvY2FsaG9zdCUzQTk0NDMgd2l0aCBjcmVkZW50aWFscyBmYWxzZSBtdXN0IGJlIFNVQ0NFU1Mg
Ci1QQVNTIHRlc3QgMzk6IGh0dHBzOi8vMTI3LjAuMC4xOjk0NDMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1hY2Nlc3MtY29udHJvbC5weT9tb2RlPWNvcnMm
dXJsPWh0dHBzJTNBJTJGJTJGMTI3LjAuMC4xJTNBOTQ0MyUyRnNlcnZpY2Utd29ya2VycyUyRnNl
cnZpY2Utd29ya2VyJTJGcmVzb3VyY2VzJTJGZmV0Y2gtYWNjZXNzLWNvbnRyb2wucHklM0ZBQ0FP
cmlnaW4lM0RodHRwcyUzQSUyRiUyRmxvY2FsaG9zdCUzQTk0NDMgd2l0aCBjcmVkZW50aWFscyB0
cnVlIG11c3QgYmUgRkFJTCAKLVBBU1MgdGVzdCA0MDogaHR0cHM6Ly8xMjcuMC4wLjE6OTQ0My9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWFjY2Vzcy1jb250
cm9sLnB5P21vZGU9Y29ycyZ1cmw9aHR0cHMlM0ElMkYlMkYxMjcuMC4wLjElM0E5NDQzJTJGc2Vy
dmljZS13b3JrZXJzJTJGc2VydmljZS13b3JrZXIlMkZyZXNvdXJjZXMlMkZmZXRjaC1hY2Nlc3Mt
Y29udHJvbC5weSUzRkFDQU9yaWdpbiUzRGh0dHBzJTNBJTJGJTJGbG9jYWxob3N0JTNBOTQ0MyUy
NkFDQUNyZWRlbnRpYWxzJTNEdHJ1ZSB3aXRoIGNyZWRlbnRpYWxzIHRydWUgbXVzdCBiZSBTVUND
RVNTIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1jb3JzLXhoci5odHRw
cy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtY29ycy14aHIuaHR0cHMuaHRtbAppbmRl
eCBmOGZmNDQ1NjczYmQ0MmJhZmNjMjljNDNlYjg2OTY3ZGFjMWY5NzkyLi41MjFjMDFjNTk0ZjI0
ODliOTQ1ZDY3NDllYjZmYjgwMDBlYTJiOTFjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9mZXRjaC1jb3JzLXhoci5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNo
LWNvcnMteGhyLmh0dHBzLmh0bWwKQEAgLTYsNDQgKzYsMzMgQEAKIDxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvdGVzdC1oZWxwZXJzLnN1Yi5qcz9waXBlPXN1YiI+PC9zY3JpcHQ+CiA8Ym9keT4KIDxz
Y3JpcHQ+Ci1wcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgeworYXN5bmNfdGVzdChmdW5jdGlvbih0
KSB7CiAgICAgdmFyIFNDT1BFID0gJ3Jlc291cmNlcy9mZXRjaC1jb3JzLXhoci1pZnJhbWUuaHRt
bCc7CiAgICAgdmFyIFNDUklQVCA9ICdyZXNvdXJjZXMvZmV0Y2gtcmV3cml0ZS13b3JrZXIuanMn
OwogICAgIHZhciBob3N0X2luZm8gPSBnZXRfaG9zdF9pbmZvKCk7CiAKLSAgICByZXR1cm4gbG9n
aW5faHR0cHModCkKKyAgICBsb2dpbl9odHRwcyh0KQogICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7
CiAgICAgICAgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVy
KHQsIFNDUklQVCwgU0NPUEUpOwogICAgICAgICB9KQogICAgICAgLnRoZW4oZnVuY3Rpb24ocmVn
aXN0cmF0aW9uKSB7Ci0gICAgICAgICAgdC5hZGRfY2xlYW51cChmdW5jdGlvbigpIHsKLSAgICAg
ICAgICAgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXIodCwgU0NPUEUpOwotICAg
ICAgICAgICAgfSk7Ci0KICAgICAgICAgICByZXR1cm4gd2FpdF9mb3Jfc3RhdGUodCwgcmVnaXN0
cmF0aW9uLmluc3RhbGxpbmcsICdhY3RpdmF0ZWQnKTsKICAgICAgICAgfSkKICAgICAgIC50aGVu
KGZ1bmN0aW9uKCkgeyByZXR1cm4gd2l0aF9pZnJhbWUoU0NPUEUpOyB9KQogICAgICAgLnRoZW4o
ZnVuY3Rpb24oZnJhbWUpIHsKLSAgICAgICAgICB0LmFkZF9jbGVhbnVwKGZ1bmN0aW9uKCkgewot
ICAgICAgICAgICAgICBmcmFtZS5yZW1vdmUoKTsKLSAgICAgICAgICAgIH0pOwotCiAgICAgICAg
ICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgewogICAgICAg
ICAgICAgICB2YXIgY2hhbm5lbCA9IG5ldyBNZXNzYWdlQ2hhbm5lbCgpOwotICAgICAgICAgICAg
ICBjaGFubmVsLnBvcnQxLm9ubWVzc2FnZSA9IChldmVudCkgPT4gewotICAgICAgICAgICAgICAg
ICAgaWYgKGV2ZW50LmRhdGEgPT09ICdkb25lJykgewotICAgICAgICAgICAgICAgICAgICByZXNv
bHZlKCk7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgICAgICAgIHRlc3QoKCkgPT4gewotICAgICAgICAgICAgICAgICAgICBhc3Nl
cnRfdHJ1ZShldmVudC5kYXRhLnJlc3VsdCk7Ci0gICAgICAgICAgICAgICAgICB9LCBldmVudC5k
YXRhLnRlc3ROYW1lKTsKLSAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgICAgY2hhbm5lbC5w
b3J0MS5vbm1lc3NhZ2UgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICAg
ICAgICBhc3NlcnRfZXF1YWxzKGUuZGF0YS5yZXN1bHRzLCAnZmluaXNoJyk7CisgICAgICAgICAg
ICAgICAgICBmcmFtZS5yZW1vdmUoKTsKKyAgICAgICAgICAgICAgICAgIHNlcnZpY2Vfd29ya2Vy
X3VucmVnaXN0ZXJfYW5kX2RvbmUodCwgU0NPUEUpOworICAgICAgICAgICAgICAgIH0pOwogICAg
ICAgICAgICAgICBmcmFtZS5jb250ZW50V2luZG93LnBvc3RNZXNzYWdlKHt9LAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhvc3RfaW5mb1snSFRUUFNfT1JJ
R0lOJ10sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2No
YW5uZWwucG9ydDJdKTsKICAgICAgICAgICAgIH0pOwotICAgICAgICB9KTsKKyAgICAgICAgfSkK
KyAgICAgIC5jYXRjaCh1bnJlYWNoZWRfcmVqZWN0aW9uKHQpKTsKICAgfSwgJ1ZlcmlmeSBDT1JT
IFhIUiBvZiBmZXRjaCgpIGluIGEgU2VydmljZSBXb3JrZXInKTsKIDwvc2NyaXB0PgogPC9ib2R5
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtY3NwLmh0dHBzLmh0bWwgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1jc3AuaHR0cHMuaHRtbAppbmRleCA0ZjE3NjIyMGQ2MTAw
YzRlZmIxYmZkYTgxN2I4NGNmNWY1M2E0ZjNkLi45MWE3NzRhMTMzZmQ2YTFlOTQyZTAwMDM0Yzdj
MDUxMTVlZTBkZWEyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1jc3AuaHR0
cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1jc3AuaHR0cHMuaHRtbApAQCAt
MzIsMTAgKzMyLDYgQEAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKIAogICAgIHJldHVybiBz
ZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCBTQ1JJUFQsIFNDT1BFKQog
ICAgICAgLnRoZW4oZnVuY3Rpb24ocmVnaXN0cmF0aW9uKSB7Ci0gICAgICAgICAgdC5hZGRfY2xl
YW51cChmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3Vu
cmVnaXN0ZXIodCwgU0NPUEUpOwotICAgICAgICAgICAgfSk7Ci0KICAgICAgICAgICByZXR1cm4g
d2FpdF9mb3Jfc3RhdGUodCwgcmVnaXN0cmF0aW9uLmluc3RhbGxpbmcsICdhY3RpdmF0ZWQnKTsK
ICAgICAgICAgfSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKCkgewpAQCAtMTA5LDYgKzEwNSw3IEBA
IHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7CiAgICAgICAgIH0pCiAgICAgICAudGhlbihmdW5j
dGlvbigpIHsKICAgICAgICAgICBmcmFtZS5yZW1vdmUoKTsKKyAgICAgICAgICBzZXJ2aWNlX3dv
cmtlcl91bnJlZ2lzdGVyX2FuZF9kb25lKHQsIFNDT1BFKTsKICAgICAgICAgfSk7CiAgIH0sICdW
ZXJpZnkgQ1NQIGNvbnRyb2wgb2YgZmV0Y2goKSBpbiBhIFNlcnZpY2UgV29ya2VyJyk7CiA8L3Nj
cmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWV2ZW50LWFmdGVyLW5h
dmlnYXRpb24td2l0aGluLXBhZ2UuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNo
LWV2ZW50LWFmdGVyLW5hdmlnYXRpb24td2l0aGluLXBhZ2UuaHR0cHMuaHRtbAppbmRleCA0ODEy
ZDhhOTE1NTFlZGFlODRiNWUyODA1ODA0ZmM5ZDg4OTlmM2U5Li5kY2UxZjc5NGZhYmVkODE3NjFh
ODNjZmE2OGMyMzkyMDE2OGY5OWZiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRj
aC1ldmVudC1hZnRlci1uYXZpZ2F0aW9uLXdpdGhpbi1wYWdlLmh0dHBzLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvZmV0Y2gtZXZlbnQtYWZ0ZXItbmF2aWdhdGlvbi13aXRoaW4tcGFnZS5o
dHRwcy5odG1sCkBAIC0xNSwxMCArMTUsNiBAQCBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewog
CiAgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHdv
cmtlciwgc2NvcGUpCiAgICAgICAudGhlbihmdW5jdGlvbihyZWcpIHsKLSAgICAgICAgICB0LmFk
ZF9jbGVhbnVwKGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICByZXR1cm4gc2VydmljZV93b3Jr
ZXJfdW5yZWdpc3Rlcih0LCBzY29wZSk7Ci0gICAgICAgICAgICB9KTsKLQogICAgICAgICAgIHJl
dHVybiB3YWl0X2Zvcl9zdGF0ZSh0LCByZWcuaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOwogICAg
ICAgICB9KQogICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7IHJldHVybiB3aXRoX2lmcmFtZShzY29w
ZSk7IH0pCkBAIC0zNCw2ICszMCw3IEBAIHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7CiAgICAg
ICAudGhlbihmdW5jdGlvbihyZXNwb25zZSkgewogICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVz
cG9uc2UsICdpbnRlcmNlcHRlZCBieSBzZXJ2aWNlIHdvcmtlcicpOwogICAgICAgICAgIGZyYW1l
LnJlbW92ZSgpOworICAgICAgICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2Fu
ZF9kb25lKHQsIHNjb3BlKTsKICAgICAgICAgfSkKICAgfSwgJ1NlcnZpY2UgV29ya2VyIHNob3Vs
ZCByZXNwb25kIHRvIGZldGNoIGV2ZW50IGFmdGVyIHRoZSBoYXNoIGNoYW5nZXMnKTsKIApAQCAt
NDYsMTAgKzQzLDYgQEAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKIAogICAgIHJldHVybiBz
ZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCB3b3JrZXIsIHNjb3BlKQog
ICAgICAgLnRoZW4oZnVuY3Rpb24ocmVnKSB7Ci0gICAgICAgICAgdC5hZGRfY2xlYW51cChmdW5j
dGlvbigpIHsKLSAgICAgICAgICAgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXIo
dCwgc2NvcGUpOwotICAgICAgICAgICAgfSk7Ci0KICAgICAgICAgICByZXR1cm4gd2FpdF9mb3Jf
c3RhdGUodCwgcmVnLmluc3RhbGxpbmcsICdhY3RpdmF0ZWQnKTsKICAgICAgICAgfSkKICAgICAg
IC50aGVuKGZ1bmN0aW9uKCkgeyByZXR1cm4gd2l0aF9pZnJhbWUoc2NvcGUpOyB9KQpAQCAtNjUs
NiArNTgsNyBAQCBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewogICAgICAgLnRoZW4oZnVuY3Rp
b24ocmVzcG9uc2UpIHsKICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHJlc3BvbnNlLCAnaW50ZXJj
ZXB0ZWQgYnkgc2VydmljZSB3b3JrZXInKTsKICAgICAgICAgICBmcmFtZS5yZW1vdmUoKTsKKyAg
ICAgICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfZG9uZSh0LCBzY29w
ZSk7CiAgICAgICAgIH0pCiAgIH0sICdTZXJ2aWNlIFdvcmtlciBzaG91bGQgcmVzcG9uZCB0byBm
ZXRjaCBldmVudCBhZnRlciB0aGUgcHVzaFN0YXRlJyk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL2ZldGNoLWV2ZW50LWFzeW5jLXJlc3BvbmQtd2l0aC5odHRwcy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1ldmVudC1hc3luYy1yZXNwb25kLXdpdGguaHR0
cHMtZXhwZWN0ZWQudHh0CmluZGV4IGE3OGI5MGE2N2E4NTMyNGFiN2ZhYzNkNTZhZTBhMWU4YTVm
MjI4ZDguLjdlMTFiY2VkNmY4NTJmZThhYmY3YTViMmQ4MThkNjVkM2NhNDJiZTYgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWV2ZW50LWFzeW5jLXJlc3BvbmQtd2l0aC5odHRw
cy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtZXZlbnQtYXN5bmMt
cmVzcG9uZC13aXRoLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMSw2ICsxLDMgQEAKIAotUEFTUyBn
bG9iYWwgc2V0dXAgCi1QQVNTIHJlc3BvbmRXaXRoIGluIGEgdGFzayB0aHJvd3MgSW52YWxpZFN0
YXRlRXJyb3IgCi1QQVNTIHJlc3BvbmRXaXRoIGluIGEgbWljcm90YXNrIGRvZXMgbm90IHRocm93
IAotUEFTUyBnbG9iYWwgY2xlYW51cCAKK1BBU1MgQ2FsbGluZyByZXNwb25kV2l0aCBhc3luY2hy
b25vdXNseSB0aHJvd3MgYW4gZXhjZXB0aW9uIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9mZXRjaC1ldmVudC1hc3luYy1yZXNwb25kLXdpdGguaHR0cHMuaHRtbCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL2ZldGNoLWV2ZW50LWFzeW5jLXJlc3BvbmQtd2l0aC5odHRwcy5odG1sCmluZGV4
IGQ5MTQ3Zjg1NDk0YzIxZTU0ZDM5YTRmZDdhZjE2ZWZhMWExMjYzODQuLmEyYjkzYWNmYzViMjQw
YTE0OGYwN2EzM2JkMWEwZDJhNmNhNzU3MTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L2ZldGNoLWV2ZW50LWFzeW5jLXJlc3BvbmQtd2l0aC5odHRwcy5odG1sCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL2ZldGNoLWV2ZW50LWFzeW5jLXJlc3BvbmQtd2l0aC5odHRwcy5odG1sCkBAIC0x
LDczICsxLDMzIEBACiA8IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPHRpdGxlPnJlc3BvbmRXaXRo
IGNhbm5vdCBiZSBjYWxsZWQgYXN5bmNocm9ub3VzbHk8L3RpdGxlPgogPHNjcmlwdCBzcmM9Ii9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9InJlc291cmNl
cy90ZXN0LWhlbHBlcnMuc3ViLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+Ci0vLyBUaGlzIGZpbGUg
aGFzIHRlc3RzIHRoYXQgY2FsbCByZXNwb25kV2l0aCgpIGFzeW5jaHJvbm91c2x5LgotCi1sZXQg
ZnJhbWU7Ci1sZXQgd29ya2VyOwotY29uc3Qgc2NyaXB0ID0gJ3Jlc291cmNlcy9mZXRjaC1ldmVu
dC1hc3luYy1yZXNwb25kLXdpdGgtd29ya2VyLmpzJzsKLWNvbnN0IHNjb3BlID0gJ3Jlc291cmNl
cy9zaW1wbGUuaHRtbCc7Ci0KLS8vIEdsb2JhbCBzZXR1cDogdGhpcyBtdXN0IGJlIHRoZSBmaXJz
dCBwcm9taXNlX3Rlc3QuCi1wcm9taXNlX3Rlc3QoYXN5bmMgKHQpID0+IHsKLSAgY29uc3QgcmVn
aXN0cmF0aW9uID0KLSAgICAgIGF3YWl0IHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3Jl
Z2lzdGVyKHQsIHNjcmlwdCwgc2NvcGUpOwotICB3b3JrZXIgPSByZWdpc3RyYXRpb24uaW5zdGFs
bGluZzsKLSAgYXdhaXQgd2FpdF9mb3Jfc3RhdGUodCwgd29ya2VyLCAnYWN0aXZhdGVkJyk7Ci0g
IGZyYW1lID0gYXdhaXQgd2l0aF9pZnJhbWUoc2NvcGUpOwotfSwgJ2dsb2JhbCBzZXR1cCcpOwot
Ci0vLyBXYWl0cyBmb3IgYSBzaW5nbGUgbWVzc2FnZSBmcm9tIHRoZSBzZXJ2aWNlIHdvcmtlciBh
bmQgdGhlbiByZW1vdmVzIHRoZQotLy8gbWVzc2FnZSBoYW5kbGVyLiBOb3Qgc2FmZSBmb3IgY29u
Y3VycmVudCB1c2UuCi1mdW5jdGlvbiB3YWl0X2Zvcl9tZXNzYWdlKCkgewotICByZXR1cm4gbmV3
IFByb21pc2UoKHJlc29sdmUpID0+IHsKLSAgICBjb25zdCBoYW5kbGVyID0gKGV2ZW50KSA9PiB7
Ci0gICAgICBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZW1vdmVFdmVudExpc3RlbmVyKCdtZXNz
YWdlJywgaGFuZGxlcik7Ci0gICAgICByZXNvbHZlKGV2ZW50LmRhdGEpOwotICAgIH07Ci0gICAg
bmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIGhhbmRs
ZXIpOwotICB9KTsKLX0KLQotLy8gRG9lcyBvbmUgdGVzdCBjYXNlLiBJdCBmZXRjaGVzIHx1cmx8
LiBUaGUgc2VydmljZSB3b3JrZXIgZ2V0cyBhIGZldGNoIGV2ZW50Ci0vLyBmb3IgfHVybHwgYW5k
IGF0dGVtcHRzIHRvIGNhbGwgcmVzcG9uZFdpdGgoKSBhc3luY2hyb25vdXNseS4gSXQgcmVwb3J0
cyBiYWNrCi0vLyB0byB0aGUgdGVzdCB3aGV0aGVyIGFuIGV4Y2VwdGlvbiB3YXMgdGhyb3duLgot
YXN5bmMgZnVuY3Rpb24gZG9fdGVzdCh1cmwpIHsKLSAgLy8gU2VuZCBhIG1lc3NhZ2UgdG8gdGVs
bCB0aGUgd29ya2VyIGEgbmV3IHRlc3QgY2FzZSBpcyBzdGFydGluZy4KLSAgY29uc3QgbWVzc2Fn
ZSA9IHdhaXRfZm9yX21lc3NhZ2UoKTsKLSAgd29ya2VyLnBvc3RNZXNzYWdlKCdpbml0aWFsaXpl
TWVzc2FnZUhhbmRsZXInKTsKLSAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBtZXNzYWdlOwotICBh
c3NlcnRfZXF1YWxzKHJlc3BvbnNlLCAnbWVzc2FnZUhhbmRsZXJJbml0aWFsaXplZCcpOwotCi0g
IC8vIFN0YXJ0IGEgZmV0Y2guCi0gIGNvbnN0IGZldGNoUHJvbWlzZSA9IGZyYW1lLmNvbnRlbnRX
aW5kb3cuZmV0Y2godXJsKTsKLQotICAvLyBSZWNlaXZlIHRoZSB0ZXN0IHJlc3VsdCBmcm9tIHRo
ZSBzZXJ2aWNlIHdvcmtlci4KLSAgY29uc3QgcmVzdWx0ID0gd2FpdF9mb3JfbWVzc2FnZSgpOwot
ICBhd2FpdCBmZXRjaFByb21pc2UudGhlbigoKT0+IHt9LCAoKSA9PiB7fSk7Ci0gIHJldHVybiBy
ZXN1bHQ7Ci19OwotCi1wcm9taXNlX3Rlc3QoYXN5bmMgKHQpID0+IHsKLSAgY29uc3QgcmVzdWx0
ID0gYXdhaXQgZG9fdGVzdCgncmVzcG9uZFdpdGgtaW4tdGFzaycpOwotICBhc3NlcnRfdHJ1ZShy
ZXN1bHQuZGlkVGhyb3csICdzaG91bGQgdGhyb3cnKTsKLSAgYXNzZXJ0X2VxdWFscyhyZXN1bHQu
ZXJyb3IsICdJbnZhbGlkU3RhdGVFcnJvcicpOwotfSwgJ3Jlc3BvbmRXaXRoIGluIGEgdGFzayB0
aHJvd3MgSW52YWxpZFN0YXRlRXJyb3InKTsKLQotcHJvbWlzZV90ZXN0KGFzeW5jICh0KSA9PiB7
Ci0gIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGRvX3Rlc3QoJ3Jlc3BvbmRXaXRoLWluLW1pY3JvdGFz
aycpOwotICBhc3NlcnRfZXF1YWxzKHJlc3VsdC5kaWRUaHJvdywgZmFsc2UsICdzaG91bGQgbm90
IHRocm93Jyk7Ci19LCAncmVzcG9uZFdpdGggaW4gYSBtaWNyb3Rhc2sgZG9lcyBub3QgdGhyb3cn
KTsKLQotLy8gR2xvYmFsIGNsZWFudXA6IHRoZSBmaW5hbCBwcm9taXNlX3Rlc3QuCi1wcm9taXNl
X3Rlc3QoYXN5bmMgKHQpID0+IHsKLSAgaWYgKGZyYW1lKQotICAgIGZyYW1lLnJlbW92ZSgpOwot
ICBhd2FpdCBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyKHQsIHNjb3BlKTsKLX0sICdnbG9iYWwg
Y2xlYW51cCcpOworcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgICB2YXIgc2NyaXB0ID0g
J3Jlc291cmNlcy9mZXRjaC1ldmVudC1hc3luYy1yZXNwb25kLXdpdGgtd29ya2VyLmpzJzsKKyAg
ICB2YXIgc2NvcGUgPSAncmVzb3VyY2VzL3NpbXBsZS5odG1sJzsKKworICAgIHJldHVybiBzZXJ2
aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCBzY3JpcHQsIHNjb3BlKQorICAg
ICAgLnRoZW4oZnVuY3Rpb24ocmVnaXN0cmF0aW9uKSB7CisgICAgICAgICAgcmV0dXJuIHdhaXRf
Zm9yX3N0YXRlKHQsIHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7CisgICAg
ICAgIH0pCisgICAgICAudGhlbihmdW5jdGlvbigpIHsKKyAgICAgICAgICByZXR1cm4gd2l0aF9p
ZnJhbWUoc2NvcGUpOworICAgICAgICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24oZnJhbWUpIHsK
KyAgICAgICAgICBhZGRfY29tcGxldGlvbl9jYWxsYmFjayhmdW5jdGlvbigpIHsgZnJhbWUucmVt
b3ZlKCk7IH0pOworICAgICAgICAgIHZhciBjaGFubmVsID0gbmV3IE1lc3NhZ2VDaGFubmVsKCk7
CisgICAgICAgICAgdmFyIHNhd19tZXNzYWdlID0gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2
ZSkgeworICAgICAgICAgICAgICBjaGFubmVsLnBvcnQxLm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGUp
IHsgcmVzb2x2ZShlLmRhdGEpOyB9CisgICAgICAgICAgICB9KTsKKyAgICAgICAgICB2YXIgd29y
a2VyID0gZnJhbWUuY29udGVudFdpbmRvdy5uYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5jb250cm9s
bGVyOworCisgICAgICAgICAgd29ya2VyLnBvc3RNZXNzYWdlKHtwb3J0OiBjaGFubmVsLnBvcnQy
fSwgW2NoYW5uZWwucG9ydDJdKTsKKyAgICAgICAgICByZXR1cm4gc2F3X21lc3NhZ2U7CisgICAg
ICAgIH0pCisgICAgICAudGhlbihmdW5jdGlvbihtZXNzYWdlKSB7CisgICAgICAgICAgYXNzZXJ0
X2VxdWFscyhtZXNzYWdlLCAnUEFTUycpOworICAgICAgICAgIHJldHVybiBzZXJ2aWNlX3dvcmtl
cl91bnJlZ2lzdGVyX2FuZF9kb25lKHQsIHNjb3BlKTsKKyAgICAgICAgfSkKKyAgfSwgJ0NhbGxp
bmcgcmVzcG9uZFdpdGggYXN5bmNocm9ub3VzbHkgdGhyb3dzIGFuIGV4Y2VwdGlvbicpOwogPC9z
Y3JpcHQ+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1ldmVu
dC1uZXR3b3JrLWVycm9yLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1ldmVu
dC1uZXR3b3JrLWVycm9yLmh0dHBzLmh0bWwKaW5kZXggZmVhMmFkMWUzYzI2ZWZmY2M5ZmQ3Yzhk
N2E2NjkxN2U0MjA2MDZiNC4uMjU0OTE5ZTkyMzI3YWVmZDE2ZWI1Nzg1NWY4MzIyMWNiZThkN2Vh
NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtZXZlbnQtbmV0d29yay1lcnJv
ci5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWV2ZW50LW5ldHdvcmst
ZXJyb3IuaHR0cHMuaHRtbApAQCAtMjIsMTAgKzIyLDYgQEAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9u
KHQpIHsKIAogICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rl
cih0LCBzY3JpcHQsIHNjb3BlKQogICAgICAgLnRoZW4oZnVuY3Rpb24ocmVnaXN0cmF0aW9uKSB7
Ci0gICAgICAgICAgdC5hZGRfY2xlYW51cChmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgcmV0
dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXIodCwgc2NvcGUpOwotICAgICAgICAgICAgfSk7
Ci0KICAgICAgICAgICByZXR1cm4gd2FpdF9mb3Jfc3RhdGUodCwgcmVnaXN0cmF0aW9uLmluc3Rh
bGxpbmcsICdhY3RpdmF0ZWQnKTsKICAgICAgICAgfSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKCkg
ewpAQCAtMzgsNiArMzQsNyBAQCBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewogICAgICAgLnRo
ZW4oZnVuY3Rpb24ocmVzdWx0KSB7CiAgICAgICAgICAgZnJhbWUucmVtb3ZlKCk7CiAgICAgICAg
ICAgYXNzZXJ0X2VxdWFscyhyZXN1bHQsICdQQVNTJyk7CisgICAgICAgICAgcmV0dXJuIHNlcnZp
Y2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX2RvbmUodCwgc2NvcGUpOwogICAgICAgICB9KTsKICAg
fSwgJ1JlamVjdGluZyB0aGUgZmV0Y2ggZXZlbnQgb3IgdXNpbmcgcHJldmVudERlZmF1bHQoKSBj
YXVzZXMgYSBuZXR3b3JrICcgKwogICAgICAnZXJyb3InKTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL2ZldGNoLWV2ZW50LXJlZmVycmVyLXBvbGljeS5odHRwcy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1ldmVudC1yZWZlcnJlci1wb2xpY3kuaHR0cHMtZXhw
ZWN0ZWQudHh0CmluZGV4IDgyYWE1ZTAwZTg5MTExYjczZTc1Zjc2NDhjMmI0MTE4ODU2OTM3NWUu
LmFmNGQxZjVkOTBjMjc1Mzc3YmU0ZDI1Mjc0NmI2MjNiNjcxZGY1OWIgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL2ZldGNoLWV2ZW50LXJlZmVycmVyLXBvbGljeS5odHRwcy1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtZXZlbnQtcmVmZXJyZXItcG9saWN5
Lmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMSwxMCArMSw4IEBACi1DT05TT0xFIE1FU1NBR0U6IGxp
bmUgMjk6IFtibG9ja2VkXSBUaGUgcGFnZSBhdCBodHRwczovL2xvY2FsaG9zdDo5NDQzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1ldmVudC1yZWZlcnJlci1wb2xpY3kuaHR0
cHMuaHRtbCB3YXMgbm90IGFsbG93ZWQgdG8gZGlzcGxheSBpbnNlY3VyZSBjb250ZW50IGZyb20g
aHR0cDovL2xvY2FsaG9zdDo4ODAwL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci8vcmVz
b3VyY2VzL3NpbXBsZS5odG1sP3JlZmVycmVyRnVsbC4KK0NPTlNPTEUgTUVTU0FHRTogbGluZSAy
MjogW2Jsb2NrZWRdIFRoZSBwYWdlIGF0IGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWV2ZW50LXJlZmVycmVyLXBvbGljeS5odHRwcy5o
dG1sIHdhcyBub3QgYWxsb3dlZCB0byBkaXNwbGF5IGluc2VjdXJlIGNvbnRlbnQgZnJvbSBodHRw
Oi8vbG9jYWxob3N0Ojg4MDAvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyLy9yZXNvdXJj
ZXMvc2ltcGxlLmh0bWw/cmVmZXJyZXJGdWxsLgogCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMjk6
IE5vdCBhbGxvd2VkIHRvIHJlcXVlc3QgcmVzb3VyY2UKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAy
OTogRmV0Y2ggQVBJIGNhbm5vdCBsb2FkIGh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvL3Jlc291cmNlcy9zaW1wbGUuaHRtbD9yZWZlcnJlckZ1bGwg
ZHVlIHRvIGFjY2VzcyBjb250cm9sIGNoZWNrcy4KK0NPTlNPTEUgTUVTU0FHRTogbGluZSAyMjog
Tm90IGFsbG93ZWQgdG8gcmVxdWVzdCByZXNvdXJjZQorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDIy
OiBGZXRjaCBBUEkgY2Fubm90IGxvYWQgaHR0cDovL2xvY2FsaG9zdDo4ODAwL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci8vcmVzb3VyY2VzL3NpbXBsZS5odG1sP3JlZmVycmVyRnVsbCBk
dWUgdG8gYWNjZXNzIGNvbnRyb2wgY2hlY2tzLgogCiAKLUZBSUwgU2VydmljZSBXb3JrZXIgcmVz
cG9uZHMgdG8gZmV0Y2ggZXZlbnQgd2l0aCB0aGUgcmVmZXJyZXIgcG9saWN5IHByb21pc2VfdGVz
dDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogTm90
IGFsbG93ZWQgdG8gcmVxdWVzdCByZXNvdXJjZSIKLVBBU1MgU2VydmljZSBXb3JrZXIgc2hvdWxk
IHJlc3BvbmQgdG8gZmV0Y2ggd2l0aCB0aGUgZGVmYXVsdCByZWZlcnJlciBwb2xpY3kgCi1QQVNT
IFNlcnZpY2UgV29ya2VyIHNob3VsZCByZXNwb25kIHRvIGZldGNoIHdpdGggdGhlIHJlZmVycmVy
IFVSTCB3aGVuIGEgbWVtYmVyIG9mIFJlcXVlc3RJbml0IGlzIHByZXNlbnQgLSBEZWZhdWx0IFJl
ZmVycmVyIAorRkFJTCBTZXJ2aWNlIFdvcmtlciByZXNwb25kcyB0byBmZXRjaCBldmVudCB3aXRo
IHRoZSByZWZlcnJlciBwb2xpY3kgYXNzZXJ0X3VucmVhY2hlZDogdW5leHBlY3RlZCByZWplY3Rp
b246IE5vdCBhbGxvd2VkIHRvIHJlcXVlc3QgcmVzb3VyY2UgUmVhY2hlZCB1bnJlYWNoYWJsZSBj
b2RlCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWV2ZW50LXJlZmVycmVy
LXBvbGljeS5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtZXZlbnQtcmVmZXJy
ZXItcG9saWN5Lmh0dHBzLmh0bWwKaW5kZXggODA0ZmQ5YjQyMDRjNDIyNGNiMTUyNjdlMjc5ZDc0
ZTg3NzBlZjdjOS4uOWI2N2ZhY2NhYzhiYWZmODFiYmZmZDk1ZTNjMzM1ZDAyY2NkZjIxNiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtZXZlbnQtcmVmZXJyZXItcG9saWN5Lmh0
dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtZXZlbnQtcmVmZXJyZXItcG9s
aWN5Lmh0dHBzLmh0bWwKQEAgLTcsMTkgKzcsMTIgQEAKIDxzY3JpcHQ+CiB2YXIgd29ya2VyID0g
J3Jlc291cmNlcy9mZXRjaC1ldmVudC10ZXN0LXdvcmtlci5qcyc7CiAKLWZ1bmN0aW9uIGRvX3Rl
c3QocmVmZXJyZXIsIHZhbHVlLCBleHBlY3RlZCwgbmFtZSkKLXsKLSAgICB0ZXN0KCgpID0+IHsK
LSAgICAgICAgICBhc3NlcnRfZXF1YWxzKHZhbHVlLCBleHBlY3RlZCk7Ci0gICAgfSwgbmFtZSAr
IChyZWZlcnJlciA/ICIgLSBDdXN0b20gUmVmZXJyZXIiIDogIiAtIERlZmF1bHQgUmVmZXJyZXIi
KSk7Ci19Ci0KIGZ1bmN0aW9uIHJ1bl9yZWZlcnJlcl9wb2xpY3lfdGVzdHMoZnJhbWUsIHJlZmVy
cmVyLCBocmVmLCBvcmlnaW4pIHsKICAgICByZXR1cm4gZnJhbWUuY29udGVudFdpbmRvdy5mZXRj
aCgncmVzb3VyY2VzL3NpbXBsZS5odG1sP3JlZmVycmVyRnVsbCcsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAge21ldGhvZDogIkdFVCIsIHJlZmVycmVyOiByZWZlcnJlcn0p
CiAgICAgICAudGhlbihmdW5jdGlvbihyZXNwb25zZSkgeyByZXR1cm4gcmVzcG9uc2UudGV4dCgp
OyB9KQogICAgICAgLnRoZW4oZnVuY3Rpb24ocmVzcG9uc2VfdGV4dCkgewotICAgICAgICAgIGRv
X3Rlc3QocmVmZXJyZXIsCisgICAgICAgICAgYXNzZXJ0X2VxdWFscygKICAgICAgICAgICAgIHJl
c3BvbnNlX3RleHQsCiAgICAgICAgICAgICAnUmVmZXJyZXI6ICcgKyBocmVmICsgJ1xuJyArCiAg
ICAgICAgICAgICAnUmVmZXJyZXJQb2xpY3k6IG5vLXJlZmVycmVyLXdoZW4tZG93bmdyYWRlJywK
QEAgLTMxLDcgKzI0LDcgQEAgZnVuY3Rpb24gcnVuX3JlZmVycmVyX3BvbGljeV90ZXN0cyhmcmFt
ZSwgcmVmZXJyZXIsIGhyZWYsIG9yaWdpbikgewogICAgICAgICB9KQogICAgICAgLnRoZW4oZnVu
Y3Rpb24ocmVzcG9uc2UpIHsgcmV0dXJuIHJlc3BvbnNlLnRleHQoKTsgfSkKICAgICAgIC50aGVu
KGZ1bmN0aW9uKHJlc3BvbnNlX3RleHQpIHsKLSAgICAgICAgICBkb190ZXN0KHJlZmVycmVyLAor
ICAgICAgICAgIGFzc2VydF9lcXVhbHMoCiAgICAgICAgICAgICByZXNwb25zZV90ZXh0LAogICAg
ICAgICAgICAgJ1JlZmVycmVyOiBcbicgKwogICAgICAgICAgICAgJ1JlZmVycmVyUG9saWN5OiBu
by1yZWZlcnJlci13aGVuLWRvd25ncmFkZScsCkBAIC00MSw3ICszNCw3IEBAIGZ1bmN0aW9uIHJ1
bl9yZWZlcnJlcl9wb2xpY3lfdGVzdHMoZnJhbWUsIHJlZmVycmVyLCBocmVmLCBvcmlnaW4pIHsK
ICAgICAgICAgfSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlKSB7IHJldHVybiByZXNw
b25zZS50ZXh0KCk7IH0pCiAgICAgICAudGhlbihmdW5jdGlvbihyZXNwb25zZV90ZXh0KSB7Ci0g
ICAgICAgICAgZG9fdGVzdChyZWZlcnJlciwKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKAogICAg
ICAgICAgICAgcmVzcG9uc2VfdGV4dCwKICAgICAgICAgICAgICdSZWZlcnJlcjogJyArIGhyZWYg
KyAnXG4nICsKICAgICAgICAgICAgICdSZWZlcnJlclBvbGljeTogbm8tcmVmZXJyZXItd2hlbi1k
b3duZ3JhZGUnLApAQCAtNTMsNyArNDYsNyBAQCBmdW5jdGlvbiBydW5fcmVmZXJyZXJfcG9saWN5
X3Rlc3RzKGZyYW1lLCByZWZlcnJlciwgaHJlZiwgb3JpZ2luKSB7CiAgICAgICAgIH0pCiAgICAg
ICAudGhlbihmdW5jdGlvbihyZXNwb25zZSkgeyByZXR1cm4gcmVzcG9uc2UudGV4dCgpOyB9KQog
ICAgICAgLnRoZW4oZnVuY3Rpb24ocmVzcG9uc2VfdGV4dCkgewotICAgICAgICAgIGRvX3Rlc3Qo
cmVmZXJyZXIsCisgICAgICAgICAgYXNzZXJ0X2VxdWFscygKICAgICAgICAgICAgIHJlc3BvbnNl
X3RleHQsCiAgICAgICAgICAgICAnUmVmZXJyZXI6IFxuJyArCiAgICAgICAgICAgICAnUmVmZXJy
ZXJQb2xpY3k6IG5vLXJlZmVycmVyLXdoZW4tZG93bmdyYWRlJywKQEAgLTYzLDcgKzU2LDcgQEAg
ZnVuY3Rpb24gcnVuX3JlZmVycmVyX3BvbGljeV90ZXN0cyhmcmFtZSwgcmVmZXJyZXIsIGhyZWYs
IG9yaWdpbikgewogICAgICAgICB9KQogICAgICAgLnRoZW4oZnVuY3Rpb24ocmVzcG9uc2UpIHsg
cmV0dXJuIHJlc3BvbnNlLnRleHQoKTsgfSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKHJlc3BvbnNl
X3RleHQpIHsKLSAgICAgICAgICBkb190ZXN0KHJlZmVycmVyLAorICAgICAgICAgIGFzc2VydF9l
cXVhbHMoCiAgICAgICAgICAgICByZXNwb25zZV90ZXh0LAogICAgICAgICAgICAgJ1JlZmVycmVy
OiAnICsgb3JpZ2luICsgJy8nICsgJ1xuJyArCiAgICAgICAgICAgICAnUmVmZXJyZXJQb2xpY3k6
IG9yaWdpbicsCkBAIC03NSw3ICs2OCw3IEBAIGZ1bmN0aW9uIHJ1bl9yZWZlcnJlcl9wb2xpY3lf
dGVzdHMoZnJhbWUsIHJlZmVycmVyLCBocmVmLCBvcmlnaW4pIHsKICAgICAgICAgfSkKICAgICAg
IC50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlKSB7IHJldHVybiByZXNwb25zZS50ZXh0KCk7IH0pCiAg
ICAgICAudGhlbihmdW5jdGlvbihyZXNwb25zZV90ZXh0KSB7Ci0gICAgICAgICAgZG9fdGVzdChy
ZWZlcnJlciwKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKAogICAgICAgICAgICAgcmVzcG9uc2Vf
dGV4dCwKICAgICAgICAgICAgICdSZWZlcnJlcjogJyArIG9yaWdpbiArICcvJyArICdcbicgKwog
ICAgICAgICAgICAgJ1JlZmVycmVyUG9saWN5OiBvcmlnaW4nLApAQCAtODUsNyArNzgsNyBAQCBm
dW5jdGlvbiBydW5fcmVmZXJyZXJfcG9saWN5X3Rlc3RzKGZyYW1lLCByZWZlcnJlciwgaHJlZiwg
b3JpZ2luKSB7CiAgICAgICAgIH0pCiAgICAgICAudGhlbihmdW5jdGlvbihyZXNwb25zZSkgeyBy
ZXR1cm4gcmVzcG9uc2UudGV4dCgpOyB9KQogICAgICAgLnRoZW4oZnVuY3Rpb24ocmVzcG9uc2Vf
dGV4dCkgewotICAgICAgICAgIGRvX3Rlc3QocmVmZXJyZXIsCisgICAgICAgICAgYXNzZXJ0X2Vx
dWFscygKICAgICAgICAgICAgIHJlc3BvbnNlX3RleHQsCiAgICAgICAgICAgICAnUmVmZXJyZXI6
ICcgKyBocmVmICsgJ1xuJyArCiAgICAgICAgICAgICAnUmVmZXJyZXJQb2xpY3k6IG9yaWdpbi13
aGVuLWNyb3NzLW9yaWdpbicsCkBAIC05Nyw3ICs5MCw3IEBAIGZ1bmN0aW9uIHJ1bl9yZWZlcnJl
cl9wb2xpY3lfdGVzdHMoZnJhbWUsIHJlZmVycmVyLCBocmVmLCBvcmlnaW4pIHsKICAgICAgICAg
fSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlKSB7IHJldHVybiByZXNwb25zZS50ZXh0
KCk7IH0pCiAgICAgICAudGhlbihmdW5jdGlvbihyZXNwb25zZV90ZXh0KSB7Ci0gICAgICAgICAg
ZG9fdGVzdChyZWZlcnJlciwKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKAogICAgICAgICAgICAg
cmVzcG9uc2VfdGV4dCwKICAgICAgICAgICAgICdSZWZlcnJlcjogJyArIG9yaWdpbiArICcvJyAr
ICdcbicgKwogICAgICAgICAgICAgJ1JlZmVycmVyUG9saWN5OiBvcmlnaW4td2hlbi1jcm9zcy1v
cmlnaW4nLApAQCAtMTA3LDcgKzEwMCw3IEBAIGZ1bmN0aW9uIHJ1bl9yZWZlcnJlcl9wb2xpY3lf
dGVzdHMoZnJhbWUsIHJlZmVycmVyLCBocmVmLCBvcmlnaW4pIHsKICAgICAgICAgfSkKICAgICAg
IC50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlKSB7IHJldHVybiByZXNwb25zZS50ZXh0KCk7IH0pCiAg
ICAgICAudGhlbihmdW5jdGlvbihyZXNwb25zZV90ZXh0KSB7Ci0gICAgICAgICAgZG9fdGVzdChy
ZWZlcnJlciwKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKAogICAgICAgICAgICAgcmVzcG9uc2Vf
dGV4dCwKICAgICAgICAgICAgICdSZWZlcnJlcjogJyArIGhyZWYgKyAnXG4nICsKICAgICAgICAg
ICAgICdSZWZlcnJlclBvbGljeTogbm8tcmVmZXJyZXItd2hlbi1kb3duZ3JhZGUnLApAQCAtMTE5
LDcgKzExMiw3IEBAIGZ1bmN0aW9uIHJ1bl9yZWZlcnJlcl9wb2xpY3lfdGVzdHMoZnJhbWUsIHJl
ZmVycmVyLCBocmVmLCBvcmlnaW4pIHsKICAgICAgICAgfSkKICAgICAgIC50aGVuKGZ1bmN0aW9u
KHJlc3BvbnNlKSB7IHJldHVybiByZXNwb25zZS50ZXh0KCk7IH0pCiAgICAgICAudGhlbihmdW5j
dGlvbihyZXNwb25zZV90ZXh0KSB7Ci0gICAgICAgICAgZG9fdGVzdChyZWZlcnJlciwKKyAgICAg
ICAgICBhc3NlcnRfZXF1YWxzKAogICAgICAgICAgICAgcmVzcG9uc2VfdGV4dCwKICAgICAgICAg
ICAgICdSZWZlcnJlcjogXG4nICsKICAgICAgICAgICAgICdSZWZlcnJlclBvbGljeTogbm8tcmVm
ZXJyZXItd2hlbi1kb3duZ3JhZGUnLApAQCAtMTMwLDcgKzEyMyw3IEBAIGZ1bmN0aW9uIHJ1bl9y
ZWZlcnJlcl9wb2xpY3lfdGVzdHMoZnJhbWUsIHJlZmVycmVyLCBocmVmLCBvcmlnaW4pIHsKICAg
ICAgICAgfSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlKSB7IHJldHVybiByZXNwb25z
ZS50ZXh0KCk7IH0pCiAgICAgICAudGhlbihmdW5jdGlvbihyZXNwb25zZV90ZXh0KSB7Ci0gICAg
ICAgICAgZG9fdGVzdChyZWZlcnJlciwKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKAogICAgICAg
ICAgICAgcmVzcG9uc2VfdGV4dCwKICAgICAgICAgICAgICdSZWZlcnJlcjogJyArIGhyZWYgKyAn
XG4nICsKICAgICAgICAgICAgICdSZWZlcnJlclBvbGljeTogdW5zYWZlLXVybCcsCkBAIC0xNDAs
NyArMTMzLDcgQEAgZnVuY3Rpb24gcnVuX3JlZmVycmVyX3BvbGljeV90ZXN0cyhmcmFtZSwgcmVm
ZXJyZXIsIGhyZWYsIG9yaWdpbikgewogICAgICAgICB9KQogICAgICAgLnRoZW4oZnVuY3Rpb24o
cmVzcG9uc2UpIHsgcmV0dXJuIHJlc3BvbnNlLnRleHQoKTsgfSkKICAgICAgIC50aGVuKGZ1bmN0
aW9uKHJlc3BvbnNlX3RleHQpIHsKLSAgICAgICAgICBkb190ZXN0KHJlZmVycmVyLAorICAgICAg
ICAgIGFzc2VydF9lcXVhbHMoCiAgICAgICAgICAgICByZXNwb25zZV90ZXh0LAogICAgICAgICAg
ICAgJ1JlZmVycmVyOiBcbicgKwogICAgICAgICAgICAgJ1JlZmVycmVyUG9saWN5OiBuby1yZWZl
cnJlcicsCkBAIC0xNTAsNyArMTQzLDcgQEAgZnVuY3Rpb24gcnVuX3JlZmVycmVyX3BvbGljeV90
ZXN0cyhmcmFtZSwgcmVmZXJyZXIsIGhyZWYsIG9yaWdpbikgewogICAgICAgICB9KQogICAgICAg
LnRoZW4oZnVuY3Rpb24ocmVzcG9uc2UpIHsgcmV0dXJuIHJlc3BvbnNlLnRleHQoKTsgfSkKICAg
ICAgIC50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlX3RleHQpIHsKLSAgICAgICAgICBkb190ZXN0KHJl
ZmVycmVyLAorICAgICAgICAgIGFzc2VydF9lcXVhbHMoCiAgICAgICAgICAgICByZXNwb25zZV90
ZXh0LAogICAgICAgICAgICAgJ1JlZmVycmVyOiAnICsgaHJlZiArICdcbicgKwogICAgICAgICAg
ICAgJ1JlZmVycmVyUG9saWN5OiBzYW1lLW9yaWdpbicsCkBAIC0xNjIsNyArMTU1LDcgQEAgZnVu
Y3Rpb24gcnVuX3JlZmVycmVyX3BvbGljeV90ZXN0cyhmcmFtZSwgcmVmZXJyZXIsIGhyZWYsIG9y
aWdpbikgewogICAgICAgICB9KQogICAgICAgLnRoZW4oZnVuY3Rpb24ocmVzcG9uc2UpIHsgcmV0
dXJuIHJlc3BvbnNlLnRleHQoKTsgfSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlX3Rl
eHQpIHsKLSAgICAgICAgICBkb190ZXN0KHJlZmVycmVyLAorICAgICAgICAgIGFzc2VydF9lcXVh
bHMoCiAgICAgICAgICAgICByZXNwb25zZV90ZXh0LAogICAgICAgICAgICAgJ1JlZmVycmVyOiBc
bicgKwogICAgICAgICAgICAgJ1JlZmVycmVyUG9saWN5OiBzYW1lLW9yaWdpbicsCkBAIC0xNzQs
NyArMTY3LDcgQEAgZnVuY3Rpb24gcnVuX3JlZmVycmVyX3BvbGljeV90ZXN0cyhmcmFtZSwgcmVm
ZXJyZXIsIGhyZWYsIG9yaWdpbikgewogICAgICAgICB9KQogICAgICAgLnRoZW4oZnVuY3Rpb24o
cmVzcG9uc2UpIHsgcmV0dXJuIHJlc3BvbnNlLnRleHQoKTsgfSkKICAgICAgIC50aGVuKGZ1bmN0
aW9uKHJlc3BvbnNlX3RleHQpIHsKLSAgICAgICAgICBkb190ZXN0KHJlZmVycmVyLAorICAgICAg
ICAgIGFzc2VydF9lcXVhbHMoCiAgICAgICAgICAgICByZXNwb25zZV90ZXh0LAogICAgICAgICAg
ICAgJ1JlZmVycmVyOiAnICsgb3JpZ2luICsgJy8nICsgJ1xuJyArCiAgICAgICAgICAgICAnUmVm
ZXJyZXJQb2xpY3k6IHN0cmljdC1vcmlnaW4nLApAQCAtMTg0LDcgKzE3Nyw3IEBAIGZ1bmN0aW9u
IHJ1bl9yZWZlcnJlcl9wb2xpY3lfdGVzdHMoZnJhbWUsIHJlZmVycmVyLCBocmVmLCBvcmlnaW4p
IHsKICAgICAgICAgfSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlKSB7IHJldHVybiBy
ZXNwb25zZS50ZXh0KCk7IH0pCiAgICAgICAudGhlbihmdW5jdGlvbihyZXNwb25zZV90ZXh0KSB7
Ci0gICAgICAgICAgZG9fdGVzdChyZWZlcnJlciwKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKAog
ICAgICAgICAgICAgcmVzcG9uc2VfdGV4dCwKICAgICAgICAgICAgICdSZWZlcnJlcjogJyArIG9y
aWdpbiArICcvJyArICdcbicgKwogICAgICAgICAgICAgJ1JlZmVycmVyUG9saWN5OiBzdHJpY3Qt
b3JpZ2luJywKQEAgLTE5Niw3ICsxODksNyBAQCBmdW5jdGlvbiBydW5fcmVmZXJyZXJfcG9saWN5
X3Rlc3RzKGZyYW1lLCByZWZlcnJlciwgaHJlZiwgb3JpZ2luKSB7CiAgICAgICAgIH0pCiAgICAg
ICAudGhlbihmdW5jdGlvbihyZXNwb25zZSkgeyByZXR1cm4gcmVzcG9uc2UudGV4dCgpOyB9KQog
ICAgICAgLnRoZW4oZnVuY3Rpb24ocmVzcG9uc2VfdGV4dCkgewotICAgICAgICAgIGRvX3Rlc3Qo
cmVmZXJyZXIsCisgICAgICAgICAgYXNzZXJ0X2VxdWFscygKICAgICAgICAgICAgIHJlc3BvbnNl
X3RleHQsCiAgICAgICAgICAgICAnUmVmZXJyZXI6IFxuJyArCiAgICAgICAgICAgICAnUmVmZXJy
ZXJQb2xpY3k6IHN0cmljdC1vcmlnaW4nLApAQCAtMjA2LDcgKzE5OSw3IEBAIGZ1bmN0aW9uIHJ1
bl9yZWZlcnJlcl9wb2xpY3lfdGVzdHMoZnJhbWUsIHJlZmVycmVyLCBocmVmLCBvcmlnaW4pIHsK
ICAgICAgICAgfSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlKSB7IHJldHVybiByZXNw
b25zZS50ZXh0KCk7IH0pCiAgICAgICAudGhlbihmdW5jdGlvbihyZXNwb25zZV90ZXh0KSB7Ci0g
ICAgICAgICAgZG9fdGVzdChyZWZlcnJlciwKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKAogICAg
ICAgICAgICAgcmVzcG9uc2VfdGV4dCwKICAgICAgICAgICAgICdSZWZlcnJlcjogJyArIGhyZWYg
KyAnXG4nICsKICAgICAgICAgICAgICdSZWZlcnJlclBvbGljeTogc3RyaWN0LW9yaWdpbi13aGVu
LWNyb3NzLW9yaWdpbicsCkBAIC0yMTgsNyArMjExLDcgQEAgZnVuY3Rpb24gcnVuX3JlZmVycmVy
X3BvbGljeV90ZXN0cyhmcmFtZSwgcmVmZXJyZXIsIGhyZWYsIG9yaWdpbikgewogICAgICAgICB9
KQogICAgICAgLnRoZW4oZnVuY3Rpb24ocmVzcG9uc2UpIHsgcmV0dXJuIHJlc3BvbnNlLnRleHQo
KTsgfSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlX3RleHQpIHsKLSAgICAgICAgICBk
b190ZXN0KHJlZmVycmVyLAorICAgICAgICAgIGFzc2VydF9lcXVhbHMoCiAgICAgICAgICAgICBy
ZXNwb25zZV90ZXh0LAogICAgICAgICAgICAgJ1JlZmVycmVyOiAnICsgb3JpZ2luICsgJy8nICsg
J1xuJyArCiAgICAgICAgICAgICAnUmVmZXJyZXJQb2xpY3k6IHN0cmljdC1vcmlnaW4td2hlbi1j
cm9zcy1vcmlnaW4nLApAQCAtMjMwLDcgKzIyMyw3IEBAIGZ1bmN0aW9uIHJ1bl9yZWZlcnJlcl9w
b2xpY3lfdGVzdHMoZnJhbWUsIHJlZmVycmVyLCBocmVmLCBvcmlnaW4pIHsKICAgICAgICAgfSkK
ICAgICAgIC50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlKSB7IHJldHVybiByZXNwb25zZS50ZXh0KCk7
IH0pCiAgICAgICAudGhlbihmdW5jdGlvbihyZXNwb25zZV90ZXh0KSB7Ci0gICAgICAgICAgZG9f
dGVzdChyZWZlcnJlciwKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKAogICAgICAgICAgICAgcmVz
cG9uc2VfdGV4dCwKICAgICAgICAgICAgICdSZWZlcnJlcjogXG4nICsKICAgICAgICAgICAgICdS
ZWZlcnJlclBvbGljeTogc3RyaWN0LW9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbicsCkBAIC0yMzgs
MzYgKzIzMSwzNSBAQCBmdW5jdGlvbiBydW5fcmVmZXJyZXJfcG9saWN5X3Rlc3RzKGZyYW1lLCBy
ZWZlcnJlciwgaHJlZiwgb3JpZ2luKSB7CiAgICAgICAgIH0pOwogfQogCi1wcm9taXNlX3Rlc3Qo
ZnVuY3Rpb24odCkgeworYXN5bmNfdGVzdChmdW5jdGlvbih0KSB7CiAgICAgdmFyIHNjb3BlID0g
J3Jlc291cmNlcy9zaW1wbGUuaHRtbD9yZWZlcnJlclBvbGljeSc7CiAgICAgdmFyIGZyYW1lOwot
ICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCB3b3Jr
ZXIsIHNjb3BlKQorICAgIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQs
IHdvcmtlciwgc2NvcGUpCiAgICAgICAudGhlbihmdW5jdGlvbihyZWcpIHsKLSAgICAgICAgICB0
LmFkZF9jbGVhbnVwKGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICByZXR1cm4gc2VydmljZV93
b3JrZXJfdW5yZWdpc3Rlcih0LCBzY29wZSk7Ci0gICAgICAgICAgICB9KTsKLQogICAgICAgICAg
IHJldHVybiB3YWl0X2Zvcl9zdGF0ZSh0LCByZWcuaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOwog
ICAgICAgICB9KQogICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7IHJldHVybiB3aXRoX2lmcmFtZShz
Y29wZSk7IH0pCiAgICAgICAudGhlbihmdW5jdGlvbihmKSB7CiAgICAgICAgICAgZnJhbWUgPSBm
OwotICAgICAgICAgIHRlc3QoKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhmcmFt
ZS5jb250ZW50RG9jdW1lbnQuYm9keS50ZXh0Q29udGVudCwgJ1JlZmVycmVyUG9saWN5OiBuby1y
ZWZlcnJlci13aGVuLWRvd25ncmFkZScpOwotICAgICAgICAgIH0sICdTZXJ2aWNlIFdvcmtlciBz
aG91bGQgcmVzcG9uZCB0byBmZXRjaCB3aXRoIHRoZSBkZWZhdWx0IHJlZmVycmVyIHBvbGljeScp
OworICAgICAgICAgIGFzc2VydF9lcXVhbHMoCisgICAgICAgICAgICBmcmFtZS5jb250ZW50RG9j
dW1lbnQuYm9keS50ZXh0Q29udGVudCwKKyAgICAgICAgICAgICdSZWZlcnJlclBvbGljeTogbm8t
cmVmZXJyZXItd2hlbi1kb3duZ3JhZGUnLAorICAgICAgICAgICAgJ1NlcnZpY2UgV29ya2VyIHNo
b3VsZCByZXNwb25kIHRvIGZldGNoIHdpdGggdGhlIGRlZmF1bHQgcmVmZXJyZXIgcG9saWN5Jyk7
CiAgICAgICAgICAgLy8gRmlyc3QsIHJ1biB0aGUgcmVmZXJyZXIgcG9saWN5IHRlc3RzIHdpdGhv
dXQgcGFzc2luZyBhIHJlZmVycmVyIGluIFJlcXVlc3RJbml0LgogICAgICAgICAgIHJldHVybiBy
dW5fcmVmZXJyZXJfcG9saWN5X3Rlc3RzKGZyYW1lLCB1bmRlZmluZWQsIGZyYW1lLmNvbnRlbnRE
b2N1bWVudC5sb2NhdGlvbi5ocmVmLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGZyYW1lLmNvbnRlbnREb2N1bWVudC5sb2NhdGlvbi5vcmlnaW4pOwogICAgICAg
ICB9KQogICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7CiAgICAgICAgICAgLy8gTm93LCBydW4gdGhl
IHJlZmVycmVyIHBvbGljeSB0ZXN0cyB3aGlsZSBwYXNzaW5nIGEgcmVmZXJyZXIgaW4gUmVxdWVz
dEluaXQuCi0gICAgICAgICAgdmFyIHJlZmVycmVyID0gZ2V0X2hvc3RfaW5mbygpWydIVFRQU19P
UklHSU4nXSArIGJhc2VfcGF0aCgpICsgJ3Jlc291cmNlcy9mYWtlLXJlZmVycmVyJzsKKyAgICAg
ICAgICB2YXIgcmVmZXJyZXIgPSBnZXRfaG9zdF9pbmZvKClbJ0hUVFBTX09SSUdJTiddICsgYmFz
ZV9wYXRoKCkgKyAnZmFrZS1yZWZlcnJlcic7CiAgICAgICAgICAgcmV0dXJuIHJ1bl9yZWZlcnJl
cl9wb2xpY3lfdGVzdHMoZnJhbWUsICdmYWtlLXJlZmVycmVyJywgcmVmZXJyZXIsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJhbWUuY29udGVudERvY3VtZW50
LmxvY2F0aW9uLm9yaWdpbik7CiAgICAgICAgIH0pCiAgICAgICAudGhlbihmdW5jdGlvbigpIHsK
ICAgICAgICAgICBmcmFtZS5yZW1vdmUoKTsKLSAgICAgICAgfSk7CisgICAgICAgICAgcmV0dXJu
IHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX2RvbmUodCwgc2NvcGUpOworICAgICAgICB9
KQorICAgICAgLmNhdGNoKHVucmVhY2hlZF9yZWplY3Rpb24odCkpOwogICB9LCAnU2VydmljZSBX
b3JrZXIgcmVzcG9uZHMgdG8gZmV0Y2ggZXZlbnQgd2l0aCB0aGUgcmVmZXJyZXIgcG9saWN5Jyk7
CiAKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtZXZlbnQt
cmVzcG9uZC13aXRoLWFyZ3VtZW50Lmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRj
aC1ldmVudC1yZXNwb25kLXdpdGgtYXJndW1lbnQuaHR0cHMuaHRtbAppbmRleCAwNWUyMjEwNTI0
M2Y3MTAyNzNmNTZlMjE1MDI2NTlhZDE3ODFlMjhjLi5jNzhmYjc4NGEyZjdlNDEzNWMyYjQ0Mjkw
ODJkYzE1N2Q5MzAwZmZiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1ldmVu
dC1yZXNwb25kLXdpdGgtYXJndW1lbnQuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9mZXRjaC1ldmVudC1yZXNwb25kLXdpdGgtYXJndW1lbnQuaHR0cHMuaHRtbApAQCAtMjIsMTAg
KzIyLDYgQEAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKIAogICAgIHJldHVybiBzZXJ2aWNl
X3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCBzY3JpcHQsIHNjb3BlKQogICAgICAg
LnRoZW4oZnVuY3Rpb24ocmVnaXN0cmF0aW9uKSB7Ci0gICAgICAgICAgdC5hZGRfY2xlYW51cChm
dW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0
ZXIodCwgc2NvcGUpOwotICAgICAgICAgICAgfSk7Ci0KICAgICAgICAgICByZXR1cm4gd2FpdF9m
b3Jfc3RhdGUodCwgcmVnaXN0cmF0aW9uLmluc3RhbGxpbmcsICdhY3RpdmF0ZWQnKTsKICAgICAg
ICAgfSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKCkgewpAQCAtMzgsNiArMzQsNyBAQCBwcm9taXNl
X3Rlc3QoZnVuY3Rpb24odCkgewogICAgICAgLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7CiAgICAg
ICAgICAgZnJhbWUucmVtb3ZlKCk7CiAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhyZXN1bHQsICdQ
QVNTJyk7CisgICAgICAgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX2Rv
bmUodCwgc2NvcGUpOwogICAgICAgICB9KTsKICAgfSwgJ3Jlc3BvbmRXaXRoKCkgdGFrZXMgZWl0
aGVyIGEgUmVzcG9uc2Ugb3IgYSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgJyArCiAgICAgICd3aXRo
IGEgUmVzcG9uc2UuIE90aGVyIHZhbHVlcyBzaG91bGQgcmFpc2UgYSBuZXR3b3JrIGVycm9yLicp
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtZXZlbnQtcmVzcG9uZC13aXRo
LWJvZHktbG9hZGVkLWluLWNodW5rLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRj
aC1ldmVudC1yZXNwb25kLXdpdGgtYm9keS1sb2FkZWQtaW4tY2h1bmsuaHR0cHMuaHRtbAppbmRl
eCA5MzJmOTAzMGM1MWNlNmUwOWQ0ZGJhMDhmMGRhYjE5ZGVjNmU4YjE1Li44MjRiNmYzMjE3YmU0
N2ZjYmQ1NTYyNjRmZWYwYzM3ZTJmNWJjNTcwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9mZXRjaC1ldmVudC1yZXNwb25kLXdpdGgtYm9keS1sb2FkZWQtaW4tY2h1bmsuaHR0cHMuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1ldmVudC1yZXNwb25kLXdpdGgtYm9keS1s
b2FkZWQtaW4tY2h1bmsuaHR0cHMuaHRtbApAQCAtMSw3ICsxLDYgQEAKIDwhRE9DVFlQRSBodG1s
PgogPG1ldGEgY2hhcnNldD0idXRmLTgiPgogPHRpdGxlPnJlc3BvbmRXaXRoIHdpdGggYSByZXNw
b25zZSB3aG9zZSBib2R5IGlzIGJlaW5nIGxvYWRlZCBmcm9tIHRoZSBuZXR3b3JrIGJ5IGNodW5r
czwvdGl0bGU+Ci08bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIj4KIDxzY3JpcHQg
c3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIv
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvdGVzdC1oZWxwZXJzLnN1Yi5qcyI+PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9mZXRjaC1ldmVudC1yZXNwb25kLXdpdGgtc3RvcHMtcHJvcGFnYXRpb24u
aHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWV2ZW50LXJlc3BvbmQtd2l0aC1z
dG9wcy1wcm9wYWdhdGlvbi5odHRwcy5odG1sCmluZGV4IDMxZmQ2MTZiNmQ2ZjUwOWI3ZGNiNmI1
NmY0NWU5YzJlMTJlOWI4ZTYuLmNkNjg2MWE5ZDQ1MzYxYTljYmFhYjNlYTYzOTI1N2ExNGFjY2Iz
NDkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWV2ZW50LXJlc3BvbmQtd2l0
aC1zdG9wcy1wcm9wYWdhdGlvbi5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2Zl
dGNoLWV2ZW50LXJlc3BvbmQtd2l0aC1zdG9wcy1wcm9wYWdhdGlvbi5odHRwcy5odG1sCkBAIC0x
MCwxMCArMTAsNiBAQCBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewogCiAgICAgcmV0dXJuIHNl
cnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHNjcmlwdCwgc2NvcGUpCiAg
ICAgICAudGhlbihmdW5jdGlvbihyZWdpc3RyYXRpb24pIHsKLSAgICAgICAgICB0LmFkZF9jbGVh
bnVwKGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5y
ZWdpc3Rlcih0LCBzY29wZSk7Ci0gICAgICAgICAgICB9KTsKLQogICAgICAgICAgIHJldHVybiB3
YWl0X2Zvcl9zdGF0ZSh0LCByZWdpc3RyYXRpb24uaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOwog
ICAgICAgICB9KQogICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7CkBAIC0zMiw2ICsyOCw3IEBAIHBy
b21pc2VfdGVzdChmdW5jdGlvbih0KSB7CiAgICAgICAgIH0pCiAgICAgICAudGhlbihmdW5jdGlv
bihtZXNzYWdlKSB7CiAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhtZXNzYWdlLCAnUEFTUycpOwor
ICAgICAgICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9kb25lKHQsIHNj
b3BlKTsKICAgICAgICAgfSkKICAgfSwgJ3Jlc3BvbmRXaXRoKCkgaW52b2tlcyBzdG9wSW1tZWRp
YXRlUHJvcGFnYXRpb24oKScpOwogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9mZXRjaC1ldmVudC10aHJvd3MtYWZ0ZXItcmVzcG9uZC13aXRoLmh0dHBzLmh0bWwgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1ldmVudC10aHJvd3MtYWZ0ZXItcmVzcG9uZC13aXRoLmh0
dHBzLmh0bWwKaW5kZXggZDk4ZmIyMmZmNDIzMjcxZGQ4NDQ2MDIwMGViZGI2MDU3M2VkNjM3MS4u
OTY5YTNjOWQwOGZiNjZiZjAxYzFmYTJiNTE0YjQ2NDZlMjYxM2IzMCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvZmV0Y2gtZXZlbnQtdGhyb3dzLWFmdGVyLXJlc3BvbmQtd2l0aC5odHRw
cy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWV2ZW50LXRocm93cy1hZnRlci1y
ZXNwb25kLXdpdGguaHR0cHMuaHRtbApAQCAtMTIsMTAgKzEyLDYgQEAgcHJvbWlzZV90ZXN0KGZ1
bmN0aW9uKHQpIHsKICAgICB2YXIgaWZyYW1lOwogICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91
bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCB3b3JrZXJzY3JpcHQsIHNjb3BlKQogICAgICAgLnRo
ZW4oZnVuY3Rpb24ocmVnKSB7Ci0gICAgICAgICAgdC5hZGRfY2xlYW51cChmdW5jdGlvbigpIHsK
LSAgICAgICAgICAgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXIodCwgc2NvcGUp
OwotICAgICAgICAgICAgfSk7Ci0KICAgICAgICAgICByZXR1cm4gd2FpdF9mb3Jfc3RhdGUodCwg
cmVnLmluc3RhbGxpbmcsICdhY3RpdmF0ZWQnKQogICAgICAgICAgICAgLnRoZW4oKCkgPT4gcmVn
LmFjdGl2ZSk7CiAgICAgICAgIH0pCkBAIC0zMSw2ICsyNyw3IEBAIHByb21pc2VfdGVzdChmdW5j
dGlvbih0KSB7CiAgICAgICAgIH0pCiAgICAgICAudGhlbihmdW5jdGlvbihmcmFtZSkgewogICAg
ICAgICBhc3NlcnRfdHJ1ZShmcmFtZS5jb250ZW50RG9jdW1lbnQuYm9keS5pbm5lckhUTUwuaW5j
bHVkZXMoImludGVyY2VwdGVkIikpOworICAgICAgICBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVy
X2FuZF9kb25lKHQsIHNjb3BlKTsKICAgICAgIH0pCiAgIH0sICdGZXRjaCBldmVudCBoYW5kbGVy
IHRocm93cyBhZnRlciBhIHN1Y2Nlc3NmdWwgcmVzcG9uZFdpdGgoKScpOwogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1ldmVudC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9mZXRjaC1ldmVudC5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggMDg3OTkw
YmY4ZDRlODlkNTg1YWViODFhZGNmNmE3NmJhZWQ2NjEyZC4uOGMwZDlhNDJmMWI3YzYxYWI4NTNm
MTQxOThkNzRlM2YwNjUyNjIxMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gt
ZXZlbnQuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWV2
ZW50Lmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtNiw3ICs2LDYgQEAgUEFTUyBTZXJ2aWNlIFdvcmtl
ciByZXNwb25kcyB0byBmZXRjaCBldmVudCB1c2luZyByZXF1ZXN0IGZyYWdtZW50IHdpdGggc3Ry
aW5nCiBQQVNTIFNlcnZpY2UgV29ya2VyIHJlc3BvbmRzIHRvIGZldGNoIGV2ZW50IHdpdGggYmxv
YiBib2R5IAogUEFTUyBTZXJ2aWNlIFdvcmtlciByZXNwb25kcyB0byBmZXRjaCBldmVudCB3aXRo
IHRoZSByZWZlcnJlciBVUkwgCiBQQVNTIFNlcnZpY2UgV29ya2VyIHJlc3BvbmRzIHRvIGZldGNo
IGV2ZW50IHdpdGggYW4gZXhpc3RpbmcgY2xpZW50IGlkIAotRkFJTCBTZXJ2aWNlIFdvcmtlciBy
ZXNwb25kcyB0byBmZXRjaCBldmVudCB3aXRoIHRoZSBjb3JyZWN0IHJlc3VsdGluZyBjbGllbnQg
aWQgYXNzZXJ0X2VxdWFsczogU2VydmljZSBXb3JrZXIgc2hvdWxkIHJlc3BvbmQgd2l0aCBhbiBl
bXB0eSByZXN1bHRpbmcgY2xpZW50IGlkIGZvciBzdWJyZXNvdXJjZSByZXF1ZXN0cyBleHBlY3Rl
ZCAiUmVzdWx0aW5nIENsaWVudCBJRCBOb3QgRm91bmQiIGJ1dCBnb3QgIlJlc3VsdGluZyBDbGll
bnQgSUQgRm91bmQ6IHVuZGVmaW5lZCIKIFBBU1MgU2VydmljZSBXb3JrZXIgZG9lcyBub3QgcmVz
cG9uZCB0byBmZXRjaCBldmVudCAKIFBBU1MgU2VydmljZSBXb3JrZXIgcmVzcG9uZHMgdG8gZmV0
Y2ggZXZlbnQgd2l0aCBudWxsIHJlc3BvbnNlIGJvZHkgCiBQQVNTIFNlcnZpY2UgV29ya2VyIGZl
dGNoZXMgb3RoZXIgZmlsZSBpbiBmZXRjaCBldmVudCAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL2ZldGNoLWV2ZW50Lmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1l
dmVudC5odHRwcy5odG1sCmluZGV4IDE2OWEwYjE3ZDYyMzAzMzVmYjBjODM5ODgwMzk4NzVjODE1
ZDk5ZTEuLjc4ZTA5OWI4YjU1M2VhMTUwZjE3MGFjZmE5OWQ5MTkxYzM5ZTMzMjYgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWV2ZW50Lmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvZmV0Y2gtZXZlbnQuaHR0cHMuaHRtbApAQCAtMTE2LDYgKzExNiw3IEBAIHBy
b21pc2VfdGVzdCh0ID0+IHsKICAgICAgICAgfSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKHJlc3Bv
bnNlKSB7IHJldHVybiByZXNwb25zZS50ZXh0KCk7IH0pCiAgICAgICAudGhlbihmdW5jdGlvbihy
ZXNwb25zZV90ZXh0KSB7CisgICAgICAgICAgdmFyIG5ld19jbGllbnRfaWQgPSByZXNwb25zZV90
ZXh0LnN1YnN0cigxNyk7CiAgICAgICAgICAgYXNzZXJ0X2VxdWFscygKICAgICAgICAgICAgIHJl
c3BvbnNlX3RleHQuc3Vic3RyKDAsIDE1KSwKICAgICAgICAgICAgICdDbGllbnQgSUQgRm91bmQn
LApAQCAtMTIzLDI4ICsxMjQsNiBAQCBwcm9taXNlX3Rlc3QodCA9PiB7CiAgICAgICAgIH0pOwog
ICB9LCAnU2VydmljZSBXb3JrZXIgcmVzcG9uZHMgdG8gZmV0Y2ggZXZlbnQgd2l0aCBhbiBleGlz
dGluZyBjbGllbnQgaWQnKTsKIAotcHJvbWlzZV90ZXN0KHQgPT4gewotICAgIGNvbnN0IHBhZ2Vf
dXJsID0gJ3Jlc291cmNlcy9zaW1wbGUuaHRtbD9yZXN1bHRpbmdDbGllbnRJZCc7Ci0gICAgY29u
c3QgZXhwZWN0ZWRfZm91bmQgPSAnUmVzdWx0aW5nIENsaWVudCBJRCBGb3VuZCc7Ci0gICAgY29u
c3QgZXhwZWN0ZWRfbm90X2ZvdW5kID0gJ1Jlc3VsdGluZyBDbGllbnQgSUQgTm90IEZvdW5kJzsK
LSAgICByZXR1cm4gd2l0aF9pZnJhbWUocGFnZV91cmwpCi0gICAgICAudGhlbihmdW5jdGlvbihm
cmFtZSkgewotICAgICAgICAgIHQuYWRkX2NsZWFudXAoKCkgPT4geyBmcmFtZS5yZW1vdmUoKTsg
fSk7Ci0gICAgICAgICAgYXNzZXJ0X2VxdWFscygKLSAgICAgICAgICAgIGZyYW1lLmNvbnRlbnRE
b2N1bWVudC5ib2R5LnRleHRDb250ZW50LnN1YnN0cigwLCBleHBlY3RlZF9mb3VuZC5sZW5ndGgp
LAotICAgICAgICAgICAgZXhwZWN0ZWRfZm91bmQsCi0gICAgICAgICAgICAnU2VydmljZSBXb3Jr
ZXIgc2hvdWxkIHJlc3BvbmQgd2l0aCBhbiBleGlzdGluZyByZXN1bHRpbmcgY2xpZW50IGlkIGZv
ciBub24tc3VicmVzb3VyY2UgcmVxdWVzdHMnKTsKLSAgICAgICAgICByZXR1cm4gZnJhbWUuY29u
dGVudFdpbmRvdy5mZXRjaCgncmVzb3VyY2VzL290aGVyLmh0bWw/cmVzdWx0aW5nQ2xpZW50SWQn
KTsKLSAgICAgICAgfSkKLSAgICAgIC50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlKSB7IHJldHVybiBy
ZXNwb25zZS50ZXh0KCk7IH0pCi0gICAgICAudGhlbihmdW5jdGlvbihyZXNwb25zZV90ZXh0KSB7
Ci0gICAgICAgICAgYXNzZXJ0X2VxdWFscygKLSAgICAgICAgICAgIHJlc3BvbnNlX3RleHQuc3Vi
c3RyKDApLAotICAgICAgICAgICAgZXhwZWN0ZWRfbm90X2ZvdW5kLAotICAgICAgICAgICAgJ1Nl
cnZpY2UgV29ya2VyIHNob3VsZCByZXNwb25kIHdpdGggYW4gZW1wdHkgcmVzdWx0aW5nIGNsaWVu
dCBpZCBmb3Igc3VicmVzb3VyY2UgcmVxdWVzdHMnKTsKLSAgICAgICAgfSk7Ci0gIH0sICdTZXJ2
aWNlIFdvcmtlciByZXNwb25kcyB0byBmZXRjaCBldmVudCB3aXRoIHRoZSBjb3JyZWN0IHJlc3Vs
dGluZyBjbGllbnQgaWQnKTsKLQogcHJvbWlzZV90ZXN0KHQgPT4gewogICAgIGNvbnN0IHBhZ2Vf
dXJsID0gJ3Jlc291cmNlcy9zaW1wbGUuaHRtbD9pZ25vcmUnOwogICAgIHJldHVybiB3aXRoX2lm
cmFtZShwYWdlX3VybCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWZyYW1l
LXJlc291cmNlLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1mcmFtZS1yZXNv
dXJjZS5odHRwcy5odG1sCmluZGV4IGEzMzMwOWYzNGY5ODcyZGE1Mzc5MjFhMTFkZmM5NjFhYzE0
MmIwZjguLjIxNjhlM2UwZDQ1ODUxY2M2ZjA1OTlhOWUwMzIzZTlhOTZlNTY0ZTIgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWZyYW1lLXJlc291cmNlLmh0dHBzLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtZnJhbWUtcmVzb3VyY2UuaHR0cHMuaHRtbApAQCAt
NzMsMTUgKzczLDExIEBAIGZ1bmN0aW9uIGdldExvYWRlZFdpbmRvd0FzT2JqZWN0KHdpbikgewog
ICAgIH0pOwogfQogCi1wcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgeworYXN5bmNfdGVzdChmdW5j
dGlvbih0KSB7CiAgICAgdmFyIHNjb3BlID0gJ3Jlc291cmNlcy9mZXRjaC1mcmFtZS1yZXNvdXJj
ZS9mcmFtZS1iYXNpYyc7CiAgICAgdmFyIGZyYW1lOwotICAgIHJldHVybiBzZXJ2aWNlX3dvcmtl
cl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCB3b3JrZXIsIHNjb3BlKQorICAgIHNlcnZpY2Vf
d29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHdvcmtlciwgc2NvcGUpCiAgICAgICAu
dGhlbihmdW5jdGlvbihyZWcpIHsKLSAgICAgICAgICB0LmFkZF9jbGVhbnVwKGZ1bmN0aW9uKCkg
ewotICAgICAgICAgICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcih0LCBzY29w
ZSk7Ci0gICAgICAgICAgICB9KTsKLQogICAgICAgICAgIHJldHVybiB3YWl0X2Zvcl9zdGF0ZSh0
LCByZWcuaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOwogICAgICAgICB9KQogICAgICAgLnRoZW4o
ZnVuY3Rpb24oKSB7CkBAIC05OCwxOCArOTQsMTYgQEAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQp
IHsKICAgICAgICAgICAgICdzdWNjZXNzJywKICAgICAgICAgICAgICdCYXNpYyB0eXBlIHJlc3Bv
bnNlIGNvdWxkIGJlIGxvYWRlZCBpbiB0aGUgaWZyYW1lLicpOwogICAgICAgICAgIGZyYW1lLnJl
bW92ZSgpOwotICAgICAgICB9KTsKKyAgICAgICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5y
ZWdpc3Rlcl9hbmRfZG9uZSh0LCBzY29wZSk7CisgICAgICAgIH0pCisgICAgICAuY2F0Y2godW5y
ZWFjaGVkX3JlamVjdGlvbih0KSk7CiAgIH0sICdCYXNpYyB0eXBlIHJlc3BvbnNlIGNvdWxkIGJl
IGxvYWRlZCBpbiB0aGUgaWZyYW1lLicpOwogCi1wcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewor
YXN5bmNfdGVzdChmdW5jdGlvbih0KSB7CiAgICAgdmFyIHNjb3BlID0gJ3Jlc291cmNlcy9mZXRj
aC1mcmFtZS1yZXNvdXJjZS9mcmFtZS1jb3JzJzsKICAgICB2YXIgZnJhbWU7Ci0gICAgcmV0dXJu
IHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHdvcmtlciwgc2NvcGUp
CisgICAgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgd29ya2VyLCBz
Y29wZSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKHJlZykgewotICAgICAgICAgIHQuYWRkX2NsZWFu
dXAoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJl
Z2lzdGVyKHQsIHNjb3BlKTsKLSAgICAgICAgICAgIH0pOwotCiAgICAgICAgICAgcmV0dXJuIHdh
aXRfZm9yX3N0YXRlKHQsIHJlZy5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7CiAgICAgICAgIH0p
CiAgICAgICAudGhlbihmdW5jdGlvbigpIHsKQEAgLTEyOCwxOCArMTIyLDE2IEBAIHByb21pc2Vf
dGVzdChmdW5jdGlvbih0KSB7CiAgICAgICAgICAgICAnc3VjY2VzcycsCiAgICAgICAgICAgICAn
Q09SUyB0eXBlIHJlc3BvbnNlIGNvdWxkIGJlIGxvYWRlZCBpbiB0aGUgaWZyYW1lLicpOwogICAg
ICAgICAgIGZyYW1lLnJlbW92ZSgpOwotICAgICAgICB9KTsKKyAgICAgICAgICByZXR1cm4gc2Vy
dmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfZG9uZSh0LCBzY29wZSk7CisgICAgICAgIH0pCisg
ICAgICAuY2F0Y2godW5yZWFjaGVkX3JlamVjdGlvbih0KSk7CiAgIH0sICdDT1JTIHR5cGUgcmVz
cG9uc2UgY291bGQgYmUgbG9hZGVkIGluIHRoZSBpZnJhbWUuJyk7CiAKLXByb21pc2VfdGVzdChm
dW5jdGlvbih0KSB7Cithc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICB2YXIgc2NvcGUgPSAn
cmVzb3VyY2VzL2ZldGNoLWZyYW1lLXJlc291cmNlL2ZyYW1lLW9wYXF1ZSc7CiAgICAgdmFyIGZy
YW1lOwotICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0
LCB3b3JrZXIsIHNjb3BlKQorICAgIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lz
dGVyKHQsIHdvcmtlciwgc2NvcGUpCiAgICAgICAudGhlbihmdW5jdGlvbihyZWcpIHsKLSAgICAg
ICAgICB0LmFkZF9jbGVhbnVwKGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICByZXR1cm4gc2Vy
dmljZV93b3JrZXJfdW5yZWdpc3Rlcih0LCBzY29wZSk7Ci0gICAgICAgICAgICB9KTsKLQogICAg
ICAgICAgIHJldHVybiB3YWl0X2Zvcl9zdGF0ZSh0LCByZWcuaW5zdGFsbGluZywgJ2FjdGl2YXRl
ZCcpOwogICAgICAgICB9KQogICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7CkBAIC0xNTYsMTcgKzE0
OCwxNSBAQCBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewogICAgICAgICAgICAgbnVsbCwKICAg
ICAgICAgICAgICdPcGFxdWUgdHlwZSByZXNwb25zZSBjb3VsZCBub3QgYmUgbG9hZGVkIGluIHRo
ZSBpZnJhbWUuJyk7CiAgICAgICAgICAgZnJhbWUucmVtb3ZlKCk7Ci0gICAgICAgIH0pOworICAg
ICAgICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9kb25lKHQsIHNjb3Bl
KTsKKyAgICAgICAgfSkKKyAgICAgIC5jYXRjaCh1bnJlYWNoZWRfcmVqZWN0aW9uKHQpKTsKICAg
fSwgJ09wYXF1ZSB0eXBlIHJlc3BvbnNlIGNvdWxkIG5vdCBiZSBsb2FkZWQgaW4gdGhlIGlmcmFt
ZS4nKTsKIAotcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKK2FzeW5jX3Rlc3QoZnVuY3Rpb24o
dCkgewogICAgIHZhciBzY29wZSA9ICdyZXNvdXJjZXMvZmV0Y2gtZnJhbWUtcmVzb3VyY2Uvd2lu
ZG93LWJhc2ljJzsKLSAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVn
aXN0ZXIodCwgd29ya2VyLCBzY29wZSkKKyAgICBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2Fu
ZF9yZWdpc3Rlcih0LCB3b3JrZXIsIHNjb3BlKQogICAgICAgLnRoZW4oZnVuY3Rpb24ocmVnKSB7
Ci0gICAgICAgICAgdC5hZGRfY2xlYW51cChmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgcmV0
dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXIodCwgc2NvcGUpOwotICAgICAgICAgICAgfSk7
Ci0KICAgICAgICAgICByZXR1cm4gd2FpdF9mb3Jfc3RhdGUodCwgcmVnLmluc3RhbGxpbmcsICdh
Y3RpdmF0ZWQnKTsKICAgICAgICAgfSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKCkgewpAQCAtMTgw
LDE3ICsxNzAsMTUgQEAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICAgICAgICAgIHJl
c3VsdC5qc29ucFJlc3VsdCwKICAgICAgICAgICAgICdzdWNjZXNzJywKICAgICAgICAgICAgICdC
YXNpYyB0eXBlIHJlc3BvbnNlIGNvdWxkIGJlIGxvYWRlZCBpbiB0aGUgbmV3IHdpbmRvdy4nKTsK
LSAgICAgICAgfSk7CisgICAgICAgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJf
YW5kX2RvbmUodCwgc2NvcGUpOworICAgICAgICB9KQorICAgICAgLmNhdGNoKHVucmVhY2hlZF9y
ZWplY3Rpb24odCkpOwogICB9LCAnQmFzaWMgdHlwZSByZXNwb25zZSBjb3VsZCBiZSBsb2FkZWQg
aW4gdGhlIG5ldyB3aW5kb3cuJyk7CiAKLXByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7Cithc3lu
Y190ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICB2YXIgc2NvcGUgPSAncmVzb3VyY2VzL2ZldGNoLWZy
YW1lLXJlc291cmNlL3dpbmRvdy1jb3JzJzsKLSAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5y
ZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgd29ya2VyLCBzY29wZSkKKyAgICBzZXJ2aWNlX3dvcmtl
cl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCB3b3JrZXIsIHNjb3BlKQogICAgICAgLnRoZW4o
ZnVuY3Rpb24ocmVnKSB7Ci0gICAgICAgICAgdC5hZGRfY2xlYW51cChmdW5jdGlvbigpIHsKLSAg
ICAgICAgICAgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXIodCwgc2NvcGUpOwot
ICAgICAgICAgICAgfSk7Ci0KICAgICAgICAgICByZXR1cm4gd2FpdF9mb3Jfc3RhdGUodCwgcmVn
Lmluc3RhbGxpbmcsICdhY3RpdmF0ZWQnKTsKICAgICAgICAgfSkKICAgICAgIC50aGVuKGZ1bmN0
aW9uKCkgewpAQCAtMjA2LDE3ICsxOTQsMTUgQEAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsK
ICAgICAgICAgICAgIHJlc3VsdC5qc29ucFJlc3VsdCwKICAgICAgICAgICAgICdzdWNjZXNzJywK
ICAgICAgICAgICAgICdDT1JTIHR5cGUgcmVzcG9uc2UgY291bGQgYmUgbG9hZGVkIGluIHRoZSBu
ZXcgd2luZG93LicpOwotICAgICAgICB9KTsKKyAgICAgICAgICByZXR1cm4gc2VydmljZV93b3Jr
ZXJfdW5yZWdpc3Rlcl9hbmRfZG9uZSh0LCBzY29wZSk7CisgICAgICAgIH0pCisgICAgICAuY2F0
Y2godW5yZWFjaGVkX3JlamVjdGlvbih0KSk7CiAgIH0sICdDT1JTIHR5cGUgcmVzcG9uc2UgY291
bGQgYmUgbG9hZGVkIGluIHRoZSBuZXcgd2luZG93LicpOwogCi1wcm9taXNlX3Rlc3QoZnVuY3Rp
b24odCkgeworYXN5bmNfdGVzdChmdW5jdGlvbih0KSB7CiAgICAgdmFyIHNjb3BlID0gJ3Jlc291
cmNlcy9mZXRjaC1mcmFtZS1yZXNvdXJjZS93aW5kb3ctb3BhcXVlJzsKLSAgICByZXR1cm4gc2Vy
dmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgd29ya2VyLCBzY29wZSkKKyAg
ICBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCB3b3JrZXIsIHNjb3Bl
KQogICAgICAgLnRoZW4oZnVuY3Rpb24ocmVnKSB7Ci0gICAgICAgICAgdC5hZGRfY2xlYW51cChm
dW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0
ZXIodCwgc2NvcGUpOwotICAgICAgICAgICAgfSk7Ci0KICAgICAgICAgICByZXR1cm4gd2FpdF9m
b3Jfc3RhdGUodCwgcmVnLmluc3RhbGxpbmcsICdhY3RpdmF0ZWQnKTsKICAgICAgICAgfSkKICAg
ICAgIC50aGVuKGZ1bmN0aW9uKCkgewpAQCAtMjMwLDcgKzIxNiw5IEBAIHByb21pc2VfdGVzdChm
dW5jdGlvbih0KSB7CiAgICAgICAgICAgICByZXN1bHQsCiAgICAgICAgICAgICBudWxsLAogICAg
ICAgICAgICAgJ09wYXF1ZSB0eXBlIHJlc3BvbnNlIGNvdWxkIG5vdCBiZSBsb2FkZWQgaW4gdGhl
IG5ldyB3aW5kb3cuJyk7Ci0gICAgICAgIH0pOworICAgICAgICAgIHJldHVybiBzZXJ2aWNlX3dv
cmtlcl91bnJlZ2lzdGVyX2FuZF9kb25lKHQsIHNjb3BlKTsKKyAgICAgICAgfSkKKyAgICAgIC5j
YXRjaCh1bnJlYWNoZWRfcmVqZWN0aW9uKHQpKTsKICAgfSwgJ09wYXF1ZSB0eXBlIHJlc3BvbnNl
IGNvdWxkIG5vdCBiZSBsb2FkZWQgaW4gdGhlIG5ldyB3aW5kb3cuJyk7CiA8L3NjcmlwdD4KIDwv
Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWhlYWRlci12aXNpYmls
aXR5Lmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1oZWFkZXItdmlzaWJpbGl0
eS5odHRwcy5odG1sCmluZGV4IDFmNDgxM2M0ZjhlNmQ5M2EwMjRiNDMzZGI0Y2I0NTQ5OWI2ODQy
NWYuLjFjZWIxNjQ2NTNiOTYzNTk5OTY3NWNjODdlYTExNDc5NmVmZWFkOWQgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWhlYWRlci12aXNpYmlsaXR5Lmh0dHBzLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtaGVhZGVyLXZpc2liaWxpdHkuaHR0cHMuaHRtbApA
QCAtMTEsMTQgKzExLDEwIEBACiAgIHZhciBob3N0X2luZm8gPSBnZXRfaG9zdF9pbmZvKCk7CiAg
IHZhciBmcmFtZTsKIAotICBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgeworICBhc3luY190ZXN0
KGZ1bmN0aW9uKHQpIHsKICAgICB2YXIgc2NvcGUgPSAncmVzb3VyY2VzL2ZldGNoLWhlYWRlci12
aXNpYmlsaXR5LWlmcmFtZS5odG1sJzsKLSAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdp
c3Rlcl9hbmRfcmVnaXN0ZXIodCwgd29ya2VyLCBzY29wZSkKKyAgICBzZXJ2aWNlX3dvcmtlcl91
bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCB3b3JrZXIsIHNjb3BlKQogICAgICAgLnRoZW4oZnVu
Y3Rpb24ocmVnKSB7Ci0gICAgICAgIHQuYWRkX2NsZWFudXAoZnVuY3Rpb24oKSB7Ci0gICAgICAg
ICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcih0LCBzY29wZSk7Ci0gICAgICAg
ICAgfSk7Ci0KICAgICAgICAgcmV0dXJuIHdhaXRfZm9yX3N0YXRlKHQsIHJlZy5pbnN0YWxsaW5n
LCAnYWN0aXZhdGVkJyk7CiAgICAgICB9KQogICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7CkBAIC00
OCw3ICs0NCw5IEBACiAgICAgICB9KQogICAgICAgLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7CiAg
ICAgICAgIGZyYW1lLnJlbW92ZSgpOwotICAgICAgfSk7CisgICAgICAgIHJldHVybiBzZXJ2aWNl
X3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9kb25lKHQsIHNjb3BlKTsKKyAgICAgIH0pCisgICAgICAu
Y2F0Y2godW5yZWFjaGVkX3JlamVjdGlvbih0KSk7CiAgIH0sICdWaXNpYmlsaXR5IG9mIGRlZmF1
bHRlZCBoZWFkZXJzIGR1cmluZyBpbnRlcmNlcHRpb24nKTsKIDwvc2NyaXB0PgogPC9ib2R5Pgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtcmVxdWVzdC1jc3MtYmFzZS11cmwu
aHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtcmVxdWVzdC1jc3Mt
YmFzZS11cmwuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IDJhNzMxZTRlNzg3OWE3YTJmNDY5ZTM5
Njc2MTE0YTgzNzc1NWMxOWMuLjYyYWVhNjYxODY1MDM1MDMwMDQxNjZiZTVjMTNlNDMxMWZjZDA3
NWQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLXJlcXVlc3QtY3NzLWJhc2Ut
dXJsLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1yZXF1
ZXN0LWNzcy1iYXNlLXVybC5odHRwcy1leHBlY3RlZC50eHQKQEAgLTEsNiArMSw0IEBACiAKLVBB
U1MgZ2xvYmFsIHNldHVwIAotRkFJTCBiYXNlIFVSTCB3aGVuIHNlcnZpY2Ugd29ya2VyIGRvZXMg
cmVzcG9uZFdpdGgoZmV0Y2gocmVzcG9uc2VVcmwpKS4gYXNzZXJ0X2VxdWFsczogcmVmZXJyZXIg
ZXhwZWN0ZWQgImh0dHBzOi8vbG9jYWxob3N0Ojk0NDMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL3Jlc291cmNlcy9mZXRjaC1yZXF1ZXN0LWNzcy1iYXNlLXVybC1zdHlsZS5jc3M/ZmV0
Y2giIGJ1dCBnb3QgImh0dHBzOi8vbG9jYWxob3N0Ojk0NDMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1yZXF1ZXN0LWNzcy1iYXNlLXVybC1pZnJhbWUuaHRt
bD9mZXRjaCIKLUZBSUwgYmFzZSBVUkwgd2hlbiBzZXJ2aWNlIHdvcmtlciBkb2VzIHJlc3BvbmRX
aXRoKG5ldyBSZXNwb25zZSgpKS4gYXNzZXJ0X2VxdWFsczogcmVmZXJyZXIgZXhwZWN0ZWQgImh0
dHBzOi8vbG9jYWxob3N0Ojk0NDMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291
cmNlcy9yZXF1ZXN0LXVybC1wYXRoL2ZldGNoLXJlcXVlc3QtY3NzLWJhc2UtdXJsLXN0eWxlLmNz
cz9uZXdSZXNwb25zZSIgYnV0IGdvdCAiaHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0My9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLXJlcXVlc3QtY3NzLWJhc2UtdXJs
LWlmcmFtZS5odG1sP25ld1Jlc3BvbnNlIgotUEFTUyBjbGVhbnVwIGdsb2JhbCBzdGF0ZSAKKwor
RkFJTCBDU1MncyBiYXNlIFVSTCBtdXN0IGJlIHRoZSByZXF1ZXN0IFVSTCBldmVuIHdoZW4gZmV0
Y2hlZCBmcm9tIG90aGVyIFVSTC4gYXNzZXJ0X2VxdWFsczogVGhlIGJhc2UgVVJMIHdoaWxlIGxv
YWRpbmcgdGhlIGltYWdlcyByZWZlcnJlZCBmcm9tIENTUyBtdXN0IGJlIHRoZSByZXF1ZXN0IFVS
TCBvZiBDU1MuIGV4cGVjdGVkICJodHRwczovL2xvY2FsaG9zdDo5NDQzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZHVtbXkucG5nIiBidXQgZ290ICJodHRwczovLzEy
Ny4wLjAuMTo5NDQzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZHVt
bXkucG5nIgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1yZXF1ZXN0LWNz
cy1iYXNlLXVybC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtcmVxdWVzdC1j
c3MtYmFzZS11cmwuaHR0cHMuaHRtbAppbmRleCBhMDhlMGM3NDg4MTM2NGY3ZmQyOWQzZTZhYzMz
MmE3ZTFkOTRiZjdhLi43YzY2NTIwMzA0NTc4NmZkZjI1NjY4MTAzYzdlMDllNGNlZjJlZDI1IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1yZXF1ZXN0LWNzcy1iYXNlLXVybC5o
dHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLXJlcXVlc3QtY3NzLWJhc2Ut
dXJsLmh0dHBzLmh0bWwKQEAgLTEsODcgKzEsNTYgQEAKIDwhRE9DVFlQRSBodG1sPgotPHRpdGxl
PlNlcnZpY2UgV29ya2VyOiBDU1MncyBiYXNlIFVSTCBtdXN0IGJlIHRoZSByZXNwb25zZSBVUkw8
L3RpdGxlPgorPHRpdGxlPlNlcnZpY2UgV29ya2VyOiBDU1MncyBiYXNlIFVSTCBtdXN0IGJlIHRo
ZSByZXF1ZXN0IFVSTCBldmVuIHdoZW4gZmV0Y2hlZCBmcm9tIG90aGVyIFVSTDwvdGl0bGU+CiA8
c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0
IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iL2NvbW1vbi9nZXQtaG9zdC1pbmZvLnN1Yi5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL3Rlc3QtaGVscGVycy5zdWIuanM/cGlwZT1zdWIiPjwvc2NyaXB0PgogPHNj
cmlwdD4KLWNvbnN0IFNDT1BFID0gJ3Jlc291cmNlcy9mZXRjaC1yZXF1ZXN0LWNzcy1iYXNlLXVy
bC1pZnJhbWUuaHRtbCc7Ci1jb25zdCBTQ1JJUFQgPSAncmVzb3VyY2VzL2ZldGNoLXJlcXVlc3Qt
Y3NzLWJhc2UtdXJsLXdvcmtlci5qcyc7Ci1sZXQgd29ya2VyOwotCi12YXIgc2lnbmFsTWVzc2Fn
ZTsKLWZ1bmN0aW9uIGdldE5leHRNZXNzYWdlKCkgewotICByZXR1cm4gbmV3IFByb21pc2UocmVz
b2x2ZSA9PiB7IHNpZ25hbE1lc3NhZ2UgPSByZXNvbHZlOyB9KTsKLX0KLQotcHJvbWlzZV90ZXN0
KGFzeW5jICh0KSA9PiB7Ci0gIGNvbnN0IHJlZ2lzdHJhdGlvbiA9IGF3YWl0IHNlcnZpY2Vfd29y
a2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKAotICAgICAgdCwgU0NSSVBULCBTQ09QRSk7Ci0g
IHdvcmtlciA9IHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nOwotICBhd2FpdCB3YWl0X2Zvcl9zdGF0
ZSh0LCB3b3JrZXIsICdhY3RpdmF0ZWQnKTsKLX0sICdnbG9iYWwgc2V0dXAnKTsKLQotLy8gQ3Jl
YXRlcyBhIHRlc3QgY29uY2VybmluZyB0aGUgYmFzZSBVUkwgb2YgYSBzdHlsZXNoZWV0LiBJdCBs
b2FkcyBhCi0vLyBzdHlsZXNoZWV0IGZyb20gYSBjb250cm9sbGVkIHBhZ2UuIFRoZSBzdHlsZXNo
ZWV0IG1ha2VzIGEgc3VicmVzb3VyY2UKLS8vIHJlcXVlc3QgZm9yIGFuIGltYWdlLiBUaGUgc2Vy
dmljZSB3b3JrZXIgbWVzc2FnZXMgYmFjayB0aGUgZGV0YWlscyBvZiB0aGUKLS8vIGltYWdlIHJl
cXVlc3QgaW4gb3JkZXIgdG8gdGVzdCB0aGUgYmFzZSBVUkwuCi0vLwotLy8gVGhlIHJlcXVlc3Qg
VVJMIGZvciB0aGUgc3R5bGVzaGVldCBpcyB1bmRlciAicmVzb3VyY2VzL3JlcXVlc3QtdXJsLXBh
dGgvIi4KLS8vIFRoZSBzZXJ2aWNlIHdvcmtlciBtYXkgcmVzcG9uZCBpbiBhIHdheSBzdWNoIHRo
YXQgdGhlIHJlc3BvbnNlIFVSTCBpcwotLy8gZGlmZmVyZW50IHRvIHRoZSByZXF1ZXN0IFVSTC4K
LWZ1bmN0aW9uIGJhc2VfdXJsX3Rlc3QocGFyYW1zKSB7Ci0gIHByb21pc2VfdGVzdChhc3luYyAo
dCkgPT4gewotICAgIGxldCBmcmFtZTsKLSAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHsKLSAgICAg
IGlmIChmcmFtZSkKLSAgICAgICAgZnJhbWUucmVtb3ZlKCk7Ci0gICAgfSk7Ci0KLSAgICAvLyBB
c2sgdGhlIHNlcnZpY2Ugd29ya2VyIHRvIG1lc3NhZ2UgdGhpcyBwYWdlIG9uY2UgaXQgZ2V0cyB0
aGUgcmVxdWVzdAotICAgIC8vIGZvciB0aGUgaW1hZ2UuCi0gICAgbGV0IGNoYW5uZWwgPSBuZXcg
TWVzc2FnZUNoYW5uZWwoKTsKLSAgICBjb25zdCBzYXdQb25nID0gZ2V0TmV4dE1lc3NhZ2UoKTsK
LSAgICBjaGFubmVsLnBvcnQxLm9ubWVzc2FnZSA9IChldmVudCkgPT4gewotICAgICAgc2lnbmFs
TWVzc2FnZShldmVudC5kYXRhKTsKLSAgICB9OwotICAgIHdvcmtlci5wb3N0TWVzc2FnZSh7cG9y
dDpjaGFubmVsLnBvcnQyfSxbY2hhbm5lbC5wb3J0Ml0pOwotCi0gICAgLy8gSXQgc2VuZHMgYSBw
b25nIGJhY2sgaW1tZWRpYXRlbHkuIFRoaXMgcGluZy9wb25nIHByb3RvY29sIGhlbHBzIGRlZmxh
a2UKLSAgICAvLyB0aGUgdGVzdCBmb3IgYnJvd3NlcnMgd2hlcmUgbWVzc2FnZS9mZXRjaCBvcmRl
cmluZyBpc24ndCBndWFyYW50ZWVkLgotICAgIGFzc2VydF9lcXVhbHMoJ3BvbmcnLCBhd2FpdCBz
YXdQb25nKTsKLQotICAgIC8vIExvYWQgdGhlIGZyYW1lIHdoaWNoIHdpbGwgbG9hZCB0aGUgc3R5
bGVzaGVldCB0aGF0IG1ha2VzIHRoZSBpbWFnZQotICAgIC8vIHJlcXVlc3QuCi0gICAgY29uc3Qg
c2F3UmVzdWx0ID0gZ2V0TmV4dE1lc3NhZ2UoKTsKLSAgICBmcmFtZSA9IGF3YWl0IHdpdGhfaWZy
YW1lKHBhcmFtcy5mcmFtZVBhdGgpOwotICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHNhd1Jlc3Vs
dDsKLQotICAgIC8vIFRlc3QgdGhlIGltYWdlIHJlcXVlc3QuCi0gICAgY29uc3QgYmFzZSA9IG5l
dyBVUkwoJy4nLCBkb2N1bWVudC5sb2NhdGlvbikuaHJlZjsKLSAgICBhc3NlcnRfZXF1YWxzKHJl
c3VsdC51cmwsCi0gICAgICAgICAgICAgICAgICBiYXNlICsgcGFyYW1zLmV4cGVjdEltYWdlUmVx
dWVzdFBhdGgsCi0gICAgICAgICAgICAgICAgICAncmVxdWVzdCcpOwotICAgIGFzc2VydF9lcXVh
bHMocmVzdWx0LnJlZmVycmVyLAotICAgICAgICAgICAgICAgICAgYmFzZSArIHBhcmFtcy5leHBl
Y3RJbWFnZVJlcXVlc3RSZWZlcnJlciwKLSAgICAgICAgICAgICAgICAgICdyZWZlcnJlcicpOwot
ICB9LCBwYXJhbXMuZGVzY3JpcHRpb24pOwotfQotCi1jb25zdCBjc3NGaWxlID0gJ2ZldGNoLXJl
cXVlc3QtY3NzLWJhc2UtdXJsLXN0eWxlLmNzcyc7Ci0KLWJhc2VfdXJsX3Rlc3QoewotICBmcmFt
ZVBhdGg6IFNDT1BFICsgJz9mZXRjaCcsCi0gIGV4cGVjdEltYWdlUmVxdWVzdFBhdGg6ICdyZXNv
dXJjZXMvZHVtbXkucG5nJywKLSAgZXhwZWN0SW1hZ2VSZXF1ZXN0UmVmZXJyZXI6IGByZXNvdXJj
ZXMvJHtjc3NGaWxlfT9mZXRjaGAsCi0gIGRlc2NyaXB0aW9uOiAnYmFzZSBVUkwgd2hlbiBzZXJ2
aWNlIHdvcmtlciBkb2VzIHJlc3BvbmRXaXRoKGZldGNoKHJlc3BvbnNlVXJsKSkuJ30pOwotCi1i
YXNlX3VybF90ZXN0KHsKLSAgZnJhbWVQYXRoOiBTQ09QRSArICc/bmV3UmVzcG9uc2UnLAotICBl
eHBlY3RJbWFnZVJlcXVlc3RQYXRoOiAncmVzb3VyY2VzL3JlcXVlc3QtdXJsLXBhdGgvZHVtbXku
cG5nJywKLSAgZXhwZWN0SW1hZ2VSZXF1ZXN0UmVmZXJyZXI6IGByZXNvdXJjZXMvcmVxdWVzdC11
cmwtcGF0aC8ke2Nzc0ZpbGV9P25ld1Jlc3BvbnNlYCwKLSAgZGVzY3JpcHRpb246ICdiYXNlIFVS
TCB3aGVuIHNlcnZpY2Ugd29ya2VyIGRvZXMgcmVzcG9uZFdpdGgobmV3IFJlc3BvbnNlKCkpLid9
KTsKLQotLy8gQ2xlYW51cCBzdGVwOiB0aGlzIG11c3QgYmUgdGhlIGxhc3QgcHJvbWlzZV90ZXN0
LgotcHJvbWlzZV90ZXN0KGFzeW5jICh0KSA9PiB7Ci0gIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91
bnJlZ2lzdGVyKHQsIFNDT1BFKTsKLX0sICdjbGVhbnVwIGdsb2JhbCBzdGF0ZScpOworYXN5bmNf
dGVzdChmdW5jdGlvbih0KSB7CisgICAgdmFyIFNDT1BFID0gJ3Jlc291cmNlcy9mZXRjaC1yZXF1
ZXN0LWNzcy1iYXNlLXVybC1pZnJhbWUuaHRtbCc7CisgICAgdmFyIFNDUklQVCA9ICdyZXNvdXJj
ZXMvZmV0Y2gtcmVxdWVzdC1jc3MtYmFzZS11cmwtd29ya2VyLmpzJzsKKyAgICB2YXIgd29ya2Vy
OworICAgIHZhciB0ZXN0RG9uZVByb21pc2U7CisKKyAgICByZXR1cm4gc2VydmljZV93b3JrZXJf
dW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgU0NSSVBULCBTQ09QRSkKKyAgICAgIC50aGVuKGZ1
bmN0aW9uKHJlZ2lzdHJhdGlvbikgeworICAgICAgICAgIHdvcmtlciA9IHJlZ2lzdHJhdGlvbi5p
bnN0YWxsaW5nOworICAgICAgICAgIHJldHVybiB3YWl0X2Zvcl9zdGF0ZSh0LCB3b3JrZXIsICdh
Y3RpdmF0ZWQnKTsKKyAgICAgICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKCkgeworICAgICAg
ICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlKSB7CisgICAgICAgICAgICAg
IHZhciBjaGFubmVsID0gbmV3IE1lc3NhZ2VDaGFubmVsKCk7CisgICAgICAgICAgICAgIHRlc3RE
b25lUHJvbWlzZSA9IG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmVUZXN0RG9uZSkgeworICAg
ICAgICAgICAgICAgIGNoYW5uZWwucG9ydDEub25tZXNzYWdlID0gdC5zdGVwX2Z1bmMoZnVuY3Rp
b24obXNnKSB7CisgICAgICAgICAgICAgICAgICBpZiAobXNnLmRhdGEucmVhZHkpIHsKKyAgICAg
ICAgICAgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgICAgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICB2YXIgcmVzdWx0ID0gbXNnLmRh
dGE7CisgICAgICAgICAgICAgICAgICB2YXIgYmFzZSA9IGdldF9ob3N0X2luZm8oKVsnSFRUUFNf
T1JJR0lOJ10gKyBiYXNlX3BhdGgoKTsKKyAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMo
CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC51cmwsCisgICAgICAgICAgICAgICAgICAgIGJh
c2UgKyAncmVzb3VyY2VzL2R1bW15LnBuZycsCisgICAgICAgICAgICAgICAgICAgICdUaGUgYmFz
ZSBVUkwgd2hpbGUgbG9hZGluZyB0aGUgaW1hZ2VzIHJlZmVycmVkIGZyb20gQ1NTICcgKworICAg
ICAgICAgICAgICAgICAgICAnbXVzdCBiZSB0aGUgcmVxdWVzdCBVUkwgb2YgQ1NTLicpOworICAg
ICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscygKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0
LnJlZmVycmVyLAorICAgICAgICAgICAgICAgICAgICBiYXNlICsgJ3Jlc291cmNlcy9mZXRjaC1y
ZXF1ZXN0LWNzcy1iYXNlLXVybC1zdHlsZS5jc3MnLAorICAgICAgICAgICAgICAgICAgICAnV2hp
bGUgbG9hZGluZyB0aGUgaW1hZ2UgZGVmaW5lZCBpbiBDU1MgdGhlIHJlZmVycmVyIG11c3QgJyAr
CisgICAgICAgICAgICAgICAgICAgICdiZSB0aGUgcmVxdWVzdCBVUkwgb2YgQ1NTLicpOworICAg
ICAgICAgICAgICAgICAgcmVzb2x2ZVRlc3REb25lKCk7CisgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICB3b3JrZXIucG9zdE1lc3NhZ2UoCisgICAg
ICAgICAgICAgICAge3BvcnQ6IGNoYW5uZWwucG9ydDJ9LCBbY2hhbm5lbC5wb3J0Ml0pOworICAg
ICAgICAgICAgfSk7CisgICAgICAgIH0pCisgICAgICAudGhlbihmdW5jdGlvbigpIHsgcmV0dXJu
IHdpdGhfaWZyYW1lKFNDT1BFKTsgfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKGYpIHsKKyAgICAg
ICAgICByZXR1cm4gdGVzdERvbmVQcm9taXNlLnRoZW4oZnVuY3Rpb24oKSB7CisgICAgICAgICAg
ICBmLnJlbW92ZSgpOworICAgICAgICAgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0
ZXJfYW5kX2RvbmUodCwgU0NPUEUpOworICAgICAgICAgIH0pOworICAgICAgICB9KQorICAgICAg
LmNhdGNoKHVucmVhY2hlZF9yZWplY3Rpb24odCkpOworICB9LCAnQ1NTXCdzIGJhc2UgVVJMIG11
c3QgYmUgdGhlIHJlcXVlc3QgVVJMIGV2ZW4gd2hlbiBmZXRjaGVkIGZyb20gb3RoZXIgVVJMLicp
OwogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1yZXF1ZXN0
LWNzcy1pbWFnZXMuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLXJlcXVlc3Qt
Y3NzLWltYWdlcy5odHRwcy5odG1sCmluZGV4IDk1OGRlMWFmODVmNGVlNmJhNThiNDdkZTM4OTcx
ZjlmZjJhYTJiYTAuLjZmMzIzY2FjOGQxMWQzMzgxMjg0OGJlYjFlY2U2NTFjZjQ5NGJiYmMgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLXJlcXVlc3QtY3NzLWltYWdlcy5odHRw
cy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLXJlcXVlc3QtY3NzLWltYWdlcy5o
dHRwcy5odG1sCkBAIC0zNSwzMCArMzUsMjAgQEAgZnVuY3Rpb24gY3NzX2ltYWdlX3NldF90ZXN0
KGV4cGVjdGVkX3Jlc3VsdHMsIGZyYW1lLCB1cmwsIHR5cGUsCiAgIHJldHVybiBmcmFtZS5jb250
ZW50V2luZG93LmxvYWRfY3NzX2ltYWdlX3NldCh1cmwsIHR5cGUpOwogfQogCi1mdW5jdGlvbiB3
YWl0Rm9yV29ya2VyKHdvcmtlcikgeworZnVuY3Rpb24gY3JlYXRlX21lc3NhZ2VfcHJvbWlzZSh0
LCBleHBlY3RlZF9yZXN1bHRzLCBmcmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgd29ya2VyLCB0ZXN0X2NvdW50LCBzY29wZSkgewogICByZXR1cm4gbmV3IFByb21pc2UoZnVu
Y3Rpb24ocmVzb2x2ZSkgewogICAgIHZhciBjaGFubmVsID0gbmV3IE1lc3NhZ2VDaGFubmVsKCk7
Ci0gICAgY2hhbm5lbC5wb3J0MS5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgZnVuY3Rpb24o
bXNnKSB7CisgICAgY2hhbm5lbC5wb3J0MS5vbm1lc3NhZ2UgPSB0LnN0ZXBfZnVuYyhmdW5jdGlv
bihtc2cpIHsKICAgICAgIGlmIChtc2cuZGF0YS5yZWFkeSkgewotICAgICAgICByZXNvbHZlKGNo
YW5uZWwpOworICAgICAgICByZXNvbHZlKCk7CisgICAgICAgIHJldHVybjsKICAgICAgIH0KLSAg
ICB9KTsKLSAgICBjaGFubmVsLnBvcnQxLnN0YXJ0KCk7Ci0gICAgd29ya2VyLnBvc3RNZXNzYWdl
KHtwb3J0OiBjaGFubmVsLnBvcnQyfSwgW2NoYW5uZWwucG9ydDJdKTsKLSAgfSk7Ci19Ci0KLWZ1
bmN0aW9uIGNyZWF0ZV9tZXNzYWdlX3Byb21pc2UoY2hhbm5lbCwgZXhwZWN0ZWRfcmVzdWx0cywg
d29ya2VyLCBzY29wZSkgewotICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSkg
ewotICAgIGNoYW5uZWwucG9ydDEuYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIGZ1bmN0aW9u
KG1zZykgewogICAgICAgdmFyIHJlc3VsdCA9IG1zZy5kYXRhOwotICAgICAgaWYgKCFleHBlY3Rl
ZF9yZXN1bHRzW3Jlc3VsdC51cmxdKSB7CisgICAgICB2YXIgZXhwZWN0ZWQgPSBleHBlY3RlZF9y
ZXN1bHRzW3Jlc3VsdC51cmxdOworICAgICAgaWYgKCFleHBlY3RlZCkgewogICAgICAgICByZXR1
cm47CiAgICAgICB9Ci0gICAgICByZXNvbHZlKHJlc3VsdCk7Ci0gICAgfSk7Ci0gIH0pLnRoZW4o
ZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAgICB2YXIgZXhwZWN0ZWQgPSBleHBlY3RlZF9yZXN1bHRz
W3Jlc3VsdC51cmxdOwogICAgICAgYXNzZXJ0X2VxdWFscygKICAgICAgICAgICByZXN1bHQubW9k
ZSwgZXhwZWN0ZWQubW9kZSwKICAgICAgICAgICAnbW9kZSBvZiAnICsgZXhwZWN0ZWQubWVzc2Fn
ZSArICAnIG11c3QgYmUgJyArCkBAIC02NywxNDggKzU3LDEyMCBAQCBmdW5jdGlvbiBjcmVhdGVf
bWVzc2FnZV9wcm9taXNlKGNoYW5uZWwsIGV4cGVjdGVkX3Jlc3VsdHMsIHdvcmtlciwgc2NvcGUp
IHsKICAgICAgICAgICByZXN1bHQuY3JlZGVudGlhbHMsIGV4cGVjdGVkLmNyZWRlbnRpYWxzLAog
ICAgICAgICAgICdjcmVkZW50aWFscyBvZiAnICsgZXhwZWN0ZWQubWVzc2FnZSArICAnIG11c3Qg
YmUgJyArCiAgICAgICAgICAgZXhwZWN0ZWQuY3JlZGVudGlhbHMgKyAnLicpOworICAgICAgLS10
ZXN0X2NvdW50OwogICAgICAgZGVsZXRlIGV4cGVjdGVkX3Jlc3VsdHNbcmVzdWx0LnVybF07Cisg
ICAgICBpZiAodGVzdF9jb3VudCA9PSAwKSB7CisgICAgICAgIGZyYW1lLnJlbW92ZSgpOworICAg
ICAgICBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9kb25lKHQsIHNjb3BlKTsKKyAgICAg
IH0KICAgICB9KTsKKyAgICB3b3JrZXIucG9zdE1lc3NhZ2UoCisgICAgICB7cG9ydDogY2hhbm5l
bC5wb3J0Mn0sIFtjaGFubmVsLnBvcnQyXSk7CisgIH0pOwogfQogCi1wcm9taXNlX3Rlc3QoZnVu
Y3Rpb24odCkgeworYXN5bmNfdGVzdChmdW5jdGlvbih0KSB7CiAgICAgdmFyIHNjb3BlID0gU0NP
UEUgKyAiP2ltZz1iYWNrZ3JvdW5kSW1hZ2UiOworICAgIHZhciB0ZXN0X2NvdW50ID0gMjsKICAg
ICB2YXIgZXhwZWN0ZWRfcmVzdWx0cyA9IHt9OwogICAgIHZhciB3b3JrZXI7CiAgICAgdmFyIGZy
YW1lOwotICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0
LCBTQ1JJUFQsIHNjb3BlKQorICAgIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lz
dGVyKHQsIFNDUklQVCwgc2NvcGUpCiAgICAgICAudGhlbihmdW5jdGlvbihyZWdpc3RyYXRpb24p
IHsKLSAgICAgICAgICB0LmFkZF9jbGVhbnVwKGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICBy
ZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcih0LCBzY29wZSk7Ci0gICAgICAgICAgICB9
KTsKLQogICAgICAgICAgIHdvcmtlciA9IHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nOwogICAgICAg
ICAgIHJldHVybiB3YWl0X2Zvcl9zdGF0ZSh0LCB3b3JrZXIsICdhY3RpdmF0ZWQnKTsKICAgICAg
ICAgfSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKCkgeyByZXR1cm4gd2l0aF9pZnJhbWUoc2NvcGUp
OyB9KQogICAgICAgLnRoZW4oZnVuY3Rpb24oZikgewotICAgICAgICAgIHQuYWRkX2NsZWFudXAo
ZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgIGYucmVtb3ZlKCk7Ci0gICAgICAgICAgICB9KTsK
ICAgICAgICAgICBmcmFtZSA9IGY7Ci0gICAgICAgICAgcmV0dXJuIHdhaXRGb3JXb3JrZXIod29y
a2VyKTsKKyAgICAgICAgICByZXR1cm4gY3JlYXRlX21lc3NhZ2VfcHJvbWlzZSh0LCBleHBlY3Rl
ZF9yZXN1bHRzLCBmcmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB3b3JrZXIsIHRlc3RfY291bnQsIHNjb3BlKTsKICAgICAgICAgfSkKLSAgICAgIC50aGVuKGZ1
bmN0aW9uKGNoYW5uZWwpIHsKLSAgICAgICAgICBjc3NfaW1hZ2VfdGVzdChleHBlY3RlZF9yZXN1
bHRzLCBmcmFtZSwgTE9DQUxfVVJMICsgRGF0ZS5ub3coKSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAnYmFja2dyb3VuZEltYWdlJywgJ25vLWNvcnMnLCAnaW5jbHVkZScpOwotICAgICAgICAg
IGNzc19pbWFnZV90ZXN0KGV4cGVjdGVkX3Jlc3VsdHMsIGZyYW1lLCBSRU1PVEVfVVJMICsgRGF0
ZS5ub3coKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICdiYWNrZ3JvdW5kSW1hZ2UnLCAnbm8t
Y29ycycsICdpbmNsdWRlJyk7Ci0KLSAgICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwoWwotICAg
ICAgICAgICAgICBjcmVhdGVfbWVzc2FnZV9wcm9taXNlKGNoYW5uZWwsIGV4cGVjdGVkX3Jlc3Vs
dHMsIHdvcmtlciwgc2NvcGUpLAotICAgICAgICAgICAgICBjcmVhdGVfbWVzc2FnZV9wcm9taXNl
KGNoYW5uZWwsIGV4cGVjdGVkX3Jlc3VsdHMsIHdvcmtlciwgc2NvcGUpCi0gICAgICAgICAgICBd
KTsKLSAgICAgICAgfSk7CisgICAgICAudGhlbihmdW5jdGlvbigpIHsKKyAgICAgICAgY3NzX2lt
YWdlX3Rlc3QoZXhwZWN0ZWRfcmVzdWx0cywgZnJhbWUsIExPQ0FMX1VSTCArIERhdGUubm93KCks
CisgICAgICAgICAgICAgICAgICAgICAgICdiYWNrZ3JvdW5kSW1hZ2UnLCAnbm8tY29ycycsICdp
bmNsdWRlJyk7CisgICAgICAgIGNzc19pbWFnZV90ZXN0KGV4cGVjdGVkX3Jlc3VsdHMsIGZyYW1l
LCBSRU1PVEVfVVJMICsgRGF0ZS5ub3coKSwKKyAgICAgICAgICAgICAgICAgICAgICAnYmFja2dy
b3VuZEltYWdlJywgJ25vLWNvcnMnLCAnaW5jbHVkZScpOworICAgICAgfSkKKyAgICAgIC5jYXRj
aCh1bnJlYWNoZWRfcmVqZWN0aW9uKHQpKTsKICAgfSwgJ1ZlcmlmeSBGZXRjaEV2ZW50IGZvciBj
c3MgaW1hZ2UgKGJhY2tncm91bmRJbWFnZSkuJyk7CiAKLXByb21pc2VfdGVzdChmdW5jdGlvbih0
KSB7Cithc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICB2YXIgc2NvcGUgPSBTQ09QRSArICI/
aW1nPXNoYXBlT3V0c2lkZSI7CisgICAgdmFyIHRlc3RfY291bnQgPSAyOwogICAgIHZhciBleHBl
Y3RlZF9yZXN1bHRzID0ge307CiAgICAgdmFyIHdvcmtlcjsKICAgICB2YXIgZnJhbWU7Ci0gICAg
cmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIFNDUklQVCwg
c2NvcGUpCisgICAgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgU0NS
SVBULCBzY29wZSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKHJlZ2lzdHJhdGlvbikgewotICAgICAg
ICAgIHQuYWRkX2NsZWFudXAoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgIHJldHVybiBzZXJ2
aWNlX3dvcmtlcl91bnJlZ2lzdGVyKHQsIHNjb3BlKTsKLSAgICAgICAgICAgIH0pOwotCiAgICAg
ICAgICAgd29ya2VyID0gcmVnaXN0cmF0aW9uLmluc3RhbGxpbmc7CiAgICAgICAgICAgcmV0dXJu
IHdhaXRfZm9yX3N0YXRlKHQsIHdvcmtlciwgJ2FjdGl2YXRlZCcpOwogICAgICAgICB9KQogICAg
ICAgLnRoZW4oZnVuY3Rpb24oKSB7IHJldHVybiB3aXRoX2lmcmFtZShzY29wZSk7IH0pCiAgICAg
ICAudGhlbihmdW5jdGlvbihmKSB7Ci0gICAgICAgICAgdC5hZGRfY2xlYW51cChmdW5jdGlvbigp
IHsKLSAgICAgICAgICAgICAgZi5yZW1vdmUoKTsKLSAgICAgICAgICAgIH0pOwogICAgICAgICAg
IGZyYW1lID0gZjsKLSAgICAgICAgICByZXR1cm4gd2FpdEZvcldvcmtlcih3b3JrZXIpOworICAg
ICAgICAgIHJldHVybiBjcmVhdGVfbWVzc2FnZV9wcm9taXNlKHQsIGV4cGVjdGVkX3Jlc3VsdHMs
IGZyYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdvcmtlciwg
dGVzdF9jb3VudCwgc2NvcGUpOwogICAgICAgICB9KQotICAgICAgLnRoZW4oZnVuY3Rpb24oY2hh
bm5lbCkgewotICAgICAgICAgIGNzc19pbWFnZV90ZXN0KGV4cGVjdGVkX3Jlc3VsdHMsIGZyYW1l
LCBMT0NBTF9VUkwgKyBEYXRlLm5vdygpLAotICAgICAgICAgICAgICAgICAgICAgICAgICdzaGFw
ZU91dHNpZGUnLCAnY29ycycsICdzYW1lLW9yaWdpbicpOwotICAgICAgICAgIGNzc19pbWFnZV90
ZXN0KGV4cGVjdGVkX3Jlc3VsdHMsIGZyYW1lLCBSRU1PVEVfVVJMICsgRGF0ZS5ub3coKSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAnc2hhcGVPdXRzaWRlJywgJ2NvcnMnLCAnc2FtZS1vcmln
aW4nKTsKLQotICAgICAgICAgIHJldHVybiBQcm9taXNlLmFsbChbCi0gICAgICAgICAgICAgIGNy
ZWF0ZV9tZXNzYWdlX3Byb21pc2UoY2hhbm5lbCwgZXhwZWN0ZWRfcmVzdWx0cywgd29ya2VyLCBz
Y29wZSksCi0gICAgICAgICAgICAgIGNyZWF0ZV9tZXNzYWdlX3Byb21pc2UoY2hhbm5lbCwgZXhw
ZWN0ZWRfcmVzdWx0cywgd29ya2VyLCBzY29wZSkKLSAgICAgICAgICAgIF0pOwotICAgICAgfSk7
CisgICAgICAudGhlbihmdW5jdGlvbigpIHsKKyAgICAgICAgIGNzc19pbWFnZV90ZXN0KGV4cGVj
dGVkX3Jlc3VsdHMsIGZyYW1lLCBMT0NBTF9VUkwgKyBEYXRlLm5vdygpLAorICAgICAgICAgICAg
ICAgICAgICAgICAgJ3NoYXBlT3V0c2lkZScsICdjb3JzJywgJ3NhbWUtb3JpZ2luJyk7CisgICAg
ICAgICBjc3NfaW1hZ2VfdGVzdChleHBlY3RlZF9yZXN1bHRzLCBmcmFtZSwgUkVNT1RFX1VSTCAr
IERhdGUubm93KCksCisgICAgICAgICAgICAgICAgICAgICAgICAnc2hhcGVPdXRzaWRlJywgJ2Nv
cnMnLCAnc2FtZS1vcmlnaW4nKTsKKyAgICAgIH0pCisgICAgICAuY2F0Y2godW5yZWFjaGVkX3Jl
amVjdGlvbih0KSk7CiAgIH0sICdWZXJpZnkgRmV0Y2hFdmVudCBmb3IgY3NzIGltYWdlIChzaGFw
ZU91dHNpZGUpLicpOwogCi1wcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgeworYXN5bmNfdGVzdChm
dW5jdGlvbih0KSB7CiAgICAgdmFyIHNjb3BlID0gU0NPUEUgKyAiP2ltZ19zZXQ9YmFja2dyb3Vu
ZEltYWdlIjsKKyAgICB2YXIgdGVzdF9jb3VudCA9IDI7CiAgICAgdmFyIGV4cGVjdGVkX3Jlc3Vs
dHMgPSB7fTsKICAgICB2YXIgd29ya2VyOwogICAgIHZhciBmcmFtZTsKLSAgICByZXR1cm4gc2Vy
dmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgU0NSSVBULCBzY29wZSkKKyAg
ICBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCBTQ1JJUFQsIHNjb3Bl
KQogICAgICAgLnRoZW4oZnVuY3Rpb24ocmVnaXN0cmF0aW9uKSB7Ci0gICAgICAgICAgdC5hZGRf
Y2xlYW51cChmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2Vy
X3VucmVnaXN0ZXIodCwgc2NvcGUpOwotICAgICAgICAgICAgfSk7Ci0KICAgICAgICAgICB3b3Jr
ZXIgPSByZWdpc3RyYXRpb24uaW5zdGFsbGluZzsKICAgICAgICAgICByZXR1cm4gd2FpdF9mb3Jf
c3RhdGUodCwgd29ya2VyLCAnYWN0aXZhdGVkJyk7CiAgICAgICAgIH0pCiAgICAgICAudGhlbihm
dW5jdGlvbigpIHsgcmV0dXJuIHdpdGhfaWZyYW1lKHNjb3BlKTsgfSkKICAgICAgIC50aGVuKGZ1
bmN0aW9uKGYpIHsKLSAgICAgICAgICB0LmFkZF9jbGVhbnVwKGZ1bmN0aW9uKCkgewotICAgICAg
ICAgICAgICBmLnJlbW92ZSgpOzsKLSAgICAgICAgICAgIH0pOwogICAgICAgICAgIGZyYW1lID0g
ZjsKLSAgICAgICAgICByZXR1cm4gd2FpdEZvcldvcmtlcih3b3JrZXIpOworICAgICAgICAgIHJl
dHVybiBjcmVhdGVfbWVzc2FnZV9wcm9taXNlKHQsIGV4cGVjdGVkX3Jlc3VsdHMsIGZyYW1lLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdvcmtlciwgdGVzdF9jb3Vu
dCwgc2NvcGUpOwogICAgICAgICB9KQotICAgICAgLnRoZW4oZnVuY3Rpb24oY2hhbm5lbCkgewot
ICAgICAgICAgIGNzc19pbWFnZV9zZXRfdGVzdChleHBlY3RlZF9yZXN1bHRzLCBmcmFtZSwgTE9D
QUxfVVJMICsgRGF0ZS5ub3coKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYmFja2dy
b3VuZEltYWdlJywgJ25vLWNvcnMnLCAnaW5jbHVkZScpOwotICAgICAgICAgIGNzc19pbWFnZV9z
ZXRfdGVzdChleHBlY3RlZF9yZXN1bHRzLCBmcmFtZSwgUkVNT1RFX1VSTCArIERhdGUubm93KCks
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2JhY2tncm91bmRJbWFnZScsICduby1jb3Jz
JywgJ2luY2x1ZGUnKTsKLQotICAgICAgICAgIHJldHVybiBQcm9taXNlLmFsbChbCi0gICAgICAg
ICAgICAgIGNyZWF0ZV9tZXNzYWdlX3Byb21pc2UoY2hhbm5lbCwgZXhwZWN0ZWRfcmVzdWx0cywg
d29ya2VyLCBzY29wZSksCi0gICAgICAgICAgICAgIGNyZWF0ZV9tZXNzYWdlX3Byb21pc2UoY2hh
bm5lbCwgZXhwZWN0ZWRfcmVzdWx0cywgd29ya2VyLCBzY29wZSkKLSAgICAgICAgICAgIF0pOwot
ICAgICAgfSk7CisgICAgICAudGhlbihmdW5jdGlvbigpIHsKKyAgICAgICAgIGNzc19pbWFnZV9z
ZXRfdGVzdChleHBlY3RlZF9yZXN1bHRzLCBmcmFtZSwgTE9DQUxfVVJMICsgRGF0ZS5ub3coKSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICdiYWNrZ3JvdW5kSW1hZ2UnLCAnbm8tY29ycycs
ICdpbmNsdWRlJyk7CisgICAgICAgICBjc3NfaW1hZ2Vfc2V0X3Rlc3QoZXhwZWN0ZWRfcmVzdWx0
cywgZnJhbWUsIFJFTU9URV9VUkwgKyBEYXRlLm5vdygpLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgJ2JhY2tncm91bmRJbWFnZScsICduby1jb3JzJywgJ2luY2x1ZGUnKTsKKyAgICAgIH0p
CisgICAgICAuY2F0Y2godW5yZWFjaGVkX3JlamVjdGlvbih0KSk7CiAgIH0sICdWZXJpZnkgRmV0
Y2hFdmVudCBmb3IgY3NzIGltYWdlLXNldCAoYmFja2dyb3VuZEltYWdlKS4nKTsKIAotcHJvbWlz
ZV90ZXN0KGZ1bmN0aW9uKHQpIHsKK2FzeW5jX3Rlc3QoZnVuY3Rpb24odCkgewogICAgIHZhciBz
Y29wZSA9IFNDT1BFICsgIj9pbWdfc2V0PXNoYXBlT3V0c2lkZSI7CisgICAgdmFyIHRlc3RfY291
bnQgPSAyOwogICAgIHZhciBleHBlY3RlZF9yZXN1bHRzID0ge307CiAgICAgdmFyIHdvcmtlcjsK
ICAgICB2YXIgZnJhbWU7Ci0gICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5k
X3JlZ2lzdGVyKHQsIFNDUklQVCwgc2NvcGUpCisgICAgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rl
cl9hbmRfcmVnaXN0ZXIodCwgU0NSSVBULCBzY29wZSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKHJl
Z2lzdHJhdGlvbikgewotICAgICAgICAgIHQuYWRkX2NsZWFudXAoZnVuY3Rpb24oKSB7Ci0gICAg
ICAgICAgICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyKHQsIHNjb3BlKTsKLSAg
ICAgICAgICAgIH0pOwotCiAgICAgICAgICAgd29ya2VyID0gcmVnaXN0cmF0aW9uLmluc3RhbGxp
bmc7CiAgICAgICAgICAgcmV0dXJuIHdhaXRfZm9yX3N0YXRlKHQsIHdvcmtlciwgJ2FjdGl2YXRl
ZCcpOwogICAgICAgICB9KQogICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7IHJldHVybiB3aXRoX2lm
cmFtZShzY29wZSk7IH0pCiAgICAgICAudGhlbihmdW5jdGlvbihmKSB7Ci0gICAgICAgICAgdC5h
ZGRfY2xlYW51cChmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgZi5yZW1vdmUoKTsKLSAgICAg
ICAgICAgIH0pOwogICAgICAgICAgIGZyYW1lID0gZjsKLSAgICAgICAgICByZXR1cm4gd2FpdEZv
cldvcmtlcih3b3JrZXIpOworICAgICAgICAgIHJldHVybiBjcmVhdGVfbWVzc2FnZV9wcm9taXNl
KHQsIGV4cGVjdGVkX3Jlc3VsdHMsIGZyYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHdvcmtlciwgdGVzdF9jb3VudCwgc2NvcGUpOwogICAgICAgICB9KQotICAg
ICAgLnRoZW4oZnVuY3Rpb24oY2hhbm5lbCkgewotICAgICAgICAgIGNzc19pbWFnZV9zZXRfdGVz
dChleHBlY3RlZF9yZXN1bHRzLCBmcmFtZSwgTE9DQUxfVVJMICsgRGF0ZS5ub3coKSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgJ3NoYXBlT3V0c2lkZScsICdjb3JzJywgJ3NhbWUtb3Jp
Z2luJyk7Ci0gICAgICAgICAgY3NzX2ltYWdlX3NldF90ZXN0KGV4cGVjdGVkX3Jlc3VsdHMsIGZy
YW1lLCBSRU1PVEVfVVJMICsgRGF0ZS5ub3coKSwKKyAgICAgIC50aGVuKGZ1bmN0aW9uKCkgewor
ICAgICAgICAgY3NzX2ltYWdlX3NldF90ZXN0KGV4cGVjdGVkX3Jlc3VsdHMsIGZyYW1lLCBMT0NB
TF9VUkwgKyBEYXRlLm5vdygpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzaGFwZU91
dHNpZGUnLCAnY29ycycsICdzYW1lLW9yaWdpbicpOwotCi0gICAgICAgICAgcmV0dXJuIFByb21p
c2UuYWxsKFsKLSAgICAgICAgICAgICAgY3JlYXRlX21lc3NhZ2VfcHJvbWlzZShjaGFubmVsLCBl
eHBlY3RlZF9yZXN1bHRzLCB3b3JrZXIsIHNjb3BlKSwKLSAgICAgICAgICAgICAgY3JlYXRlX21l
c3NhZ2VfcHJvbWlzZShjaGFubmVsLCBleHBlY3RlZF9yZXN1bHRzLCB3b3JrZXIsIHNjb3BlKQot
ICAgICAgICAgICAgXSk7Ci0gICAgICAgIH0pOworICAgICAgICAgY3NzX2ltYWdlX3NldF90ZXN0
KGV4cGVjdGVkX3Jlc3VsdHMsIGZyYW1lLCBSRU1PVEVfVVJMICsgRGF0ZS5ub3coKSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICdzaGFwZU91dHNpZGUnLCAnY29ycycsICdzYW1lLW9yaWdp
bicpOworICAgICAgfSkKKyAgICAgIC5jYXRjaCh1bnJlYWNoZWRfcmVqZWN0aW9uKHQpKTsKICAg
fSwgJ1ZlcmlmeSBGZXRjaEV2ZW50IGZvciBjc3MgaW1hZ2Utc2V0IChzaGFwZU91dHNpZGUpLicp
OwogCiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLXJlcXVl
c3QtaHRtbC1pbXBvcnRzLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2Zl
dGNoLXJlcXVlc3QtaHRtbC1pbXBvcnRzLmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCA5NmQ5MWQ5
NTQ1NjNkYTkwNDgzY2U5OTUyMWFkMDU0YmM0NDU0YmNlLi45YmIxNDJhZDQxMDg0YTY2YTYxNDZh
NjUwZWUzYjkzYWU1ZmQxMmJiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1y
ZXF1ZXN0LWh0bWwtaW1wb3J0cy5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvZmV0Y2gtcmVxdWVzdC1odG1sLWltcG9ydHMuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0x
LDMgKzEsMyBAQAogCi1GQUlMIFZlcmlmeSB0aGUgRmV0Y2hFdmVudCBmb3IgSFRNTEltcG9ydHMg
cHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlw
ZUVycm9yOiB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnc2FtZS5nZXRF
bGVtZW50QnlJZCcpIgorRkFJTCBWZXJpZnkgdGhlIEZldGNoRXZlbnQgZm9yIEhUTUxJbXBvcnRz
IGFzc2VydF91bnJlYWNoZWQ6IHVuZXhwZWN0ZWQgcmVqZWN0aW9uOiB1bmRlZmluZWQgaXMgbm90
IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnc2FtZS5nZXRFbGVtZW50QnlJZCcpIFJlYWNoZWQgdW5y
ZWFjaGFibGUgY29kZQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1yZXF1
ZXN0LWh0bWwtaW1wb3J0cy5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtcmVx
dWVzdC1odG1sLWltcG9ydHMuaHR0cHMuaHRtbAppbmRleCA3YTM5ZmE4NTI4NGFkZGViOGI4ZDEx
NDRlZmRhNzRiZGZhMDEzNGZlLi5iMmY1NmRhOWYwMTcyNGFhMGJhMDQ0NTM4Y2M3NzMxNjIwYWI3
ZjkxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1yZXF1ZXN0LWh0bWwtaW1w
b3J0cy5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLXJlcXVlc3QtaHRt
bC1pbXBvcnRzLmh0dHBzLmh0bWwKQEAgLTUsMTYgKzUsMTIgQEAKIDxzY3JpcHQgc3JjPSIvY29t
bW9uL2dldC1ob3N0LWluZm8uc3ViLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvdGVzdC1oZWxwZXJzLnN1Yi5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgotcHJvbWlzZV90ZXN0
KGZ1bmN0aW9uKHQpIHsKK2FzeW5jX3Rlc3QoZnVuY3Rpb24odCkgewogICAgIHZhciBTQ09QRSA9
ICdyZXNvdXJjZXMvZmV0Y2gtcmVxdWVzdC1odG1sLWltcG9ydHMtaWZyYW1lLmh0bWwnOwogICAg
IHZhciBTQ1JJUFQgPSAncmVzb3VyY2VzL2ZldGNoLXJlcXVlc3QtaHRtbC1pbXBvcnRzLXdvcmtl
ci5qcyc7CiAgICAgdmFyIGhvc3RfaW5mbyA9IGdldF9ob3N0X2luZm8oKTsKLSAgICByZXR1cm4g
c2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgU0NSSVBULCBTQ09QRSkK
KyAgICBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCBTQ1JJUFQsIFND
T1BFKQogICAgICAgLnRoZW4oZnVuY3Rpb24ocmVnaXN0cmF0aW9uKSB7Ci0gICAgICAgICAgdC5h
ZGRfY2xlYW51cChmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgcmV0dXJuIHNlcnZpY2Vfd29y
a2VyX3VucmVnaXN0ZXIodCwgU0NPUEUpOwotICAgICAgICAgICAgfSk7Ci0KICAgICAgICAgICBy
ZXR1cm4gd2FpdF9mb3Jfc3RhdGUodCwgcmVnaXN0cmF0aW9uLmluc3RhbGxpbmcsICdhY3RpdmF0
ZWQnKTsKICAgICAgICAgfSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKCkgeyByZXR1cm4gd2l0aF9p
ZnJhbWUoU0NPUEUpOyB9KQpAQCAtNjAsNiArNTYsOSBAQCBwcm9taXNlX3Rlc3QoZnVuY3Rpb24o
dCkgewogICAgICAgICAgICAgICAnbW9kZT1jb3JzIGNyZWRlbnRpYWxzPXNhbWUtb3JpZ2luJywK
ICAgICAgICAgICAgICAgJ1RoZSByZXF1ZXN0IG1vZGUgYW5kIGNyZWRlbnRpYWxzIGZvciBvdGhl
ciBvcmlnaW4gSFRNTEltcG9ydCAnICsKICAgICAgICAgICAgICAgJ2Zyb20gb3RoZXIgb3JpZ2lu
IEhUTUxJbXBvcnQgbXVzdCBiZSBzZXQgY29ycmVjdGx5LicpOwotICAgICAgICB9KTsKKworICAg
ICAgICAgIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX2RvbmUodCwgU0NPUEUpOworICAg
ICAgICB9KQorICAgICAgLmNhdGNoKHVucmVhY2hlZF9yZWplY3Rpb24odCkpOwogICB9LCAnVmVy
aWZ5IHRoZSBGZXRjaEV2ZW50IGZvciBIVE1MSW1wb3J0cycpOwogPC9zY3JpcHQ+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1yZXF1ZXN0LW5vLWZyZXNobmVzcy1oZWFkZXJz
Lmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1yZXF1ZXN0LW5vLWZyZXNobmVz
cy1oZWFkZXJzLmh0dHBzLmh0bWwKaW5kZXggMDNiN2QzNTc2MTBhOTA0ZWQyNjRiNjkxMDU0YjYw
MjVmN2ZhMjQxNC4uODI5YjBjZjI1OTRiNTg5MjlhZDI1ZDA0ZTU5MDA2NjRiYjkyZDExZSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtcmVxdWVzdC1uby1mcmVzaG5lc3MtaGVh
ZGVycy5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLXJlcXVlc3Qtbm8t
ZnJlc2huZXNzLWhlYWRlcnMuaHR0cHMuaHRtbApAQCAtNCwxNiArNCwxMiBAQAogPHNjcmlwdCBz
cmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBz
cmM9InJlc291cmNlcy90ZXN0LWhlbHBlcnMuc3ViLmpzP3BpcGU9c3ViIj48L3NjcmlwdD4KIDxz
Y3JpcHQ+Ci1wcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgeworYXN5bmNfdGVzdChmdW5jdGlvbih0
KSB7CiAgICAgdmFyIFNDT1BFID0gJ3Jlc291cmNlcy9mZXRjaC1yZXF1ZXN0LW5vLWZyZXNobmVz
cy1oZWFkZXJzLWlmcmFtZS5odG1sJzsKICAgICB2YXIgU0NSSVBUID0gJ3Jlc291cmNlcy9mZXRj
aC1yZXF1ZXN0LW5vLWZyZXNobmVzcy1oZWFkZXJzLXdvcmtlci5qcyc7CiAgICAgdmFyIHdvcmtl
cjsKLSAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwg
U0NSSVBULCBTQ09QRSkKKyAgICBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rl
cih0LCBTQ1JJUFQsIFNDT1BFKQogICAgICAgLnRoZW4oZnVuY3Rpb24ocmVnaXN0cmF0aW9uKSB7
Ci0gICAgICAgICAgdC5hZGRfY2xlYW51cChmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgcmV0
dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXIodCwgU0NPUEUpOwotICAgICAgICAgICAgfSk7
Ci0KICAgICAgICAgICB3b3JrZXIgPSByZWdpc3RyYXRpb24uaW5zdGFsbGluZzsKICAgICAgICAg
ICByZXR1cm4gd2FpdF9mb3Jfc3RhdGUodCwgd29ya2VyLCAnYWN0aXZhdGVkJyk7CiAgICAgICAg
IH0pCkBAIC00MiwxNCArMzgsMTYgQEAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICAg
ICAgICAgICdpZi1ub25lLW1hdGNoJzogdHJ1ZSwKICAgICAgICAgICAgICdpZi1tb2RpZmllZC1z
aW5jZSc6IHRydWUKICAgICAgICAgICB9OwotICAgICAgICAgIG1zZy5kYXRhLnJlcXVlc3RzLmZv
ckVhY2goZnVuY3Rpb24ocmVxdWVzdCkgewotICAgICAgICAgICAgICByZXF1ZXN0LmhlYWRlcnMu
Zm9yRWFjaChmdW5jdGlvbihoZWFkZXIpIHsKKyAgICAgICAgICBtc2cuZGF0YS5yZXF1ZXN0cy5m
b3JFYWNoKHQuc3RlcF9mdW5jKGZ1bmN0aW9uKHJlcXVlc3QpIHsKKyAgICAgICAgICAgICAgcmVx
dWVzdC5oZWFkZXJzLmZvckVhY2godC5zdGVwX2Z1bmMoZnVuY3Rpb24oaGVhZGVyKSB7CiAgICAg
ICAgICAgICAgICAgICBhc3NlcnRfZmFsc2UoCiAgICAgICAgICAgICAgICAgICAgICAgISFmcmVz
aG5lc3NfaGVhZGVyc1toZWFkZXJbMF1dLAogICAgICAgICAgICAgICAgICAgICAgIGhlYWRlclsw
XSArICcgaGVhZGVyIG11c3Qgbm90IGJlIHNldCBpbiB0aGUgJyArCiAgICAgICAgICAgICAgICAg
ICAgICAgJ0ZldGNoRXZlbnRcJ3MgcmVxdWVzdC4gKHVybCA9ICcgKyByZXF1ZXN0LnVybCArICcp
Jyk7Ci0gICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICB9KQotICAgICAgICB9KTsKKyAg
ICAgICAgICAgICAgICB9KSk7CisgICAgICAgICAgICB9KSkKKyAgICAgICAgICBzZXJ2aWNlX3dv
cmtlcl91bnJlZ2lzdGVyX2FuZF9kb25lKHQsIFNDT1BFKTsKKyAgICAgICAgfSkKKyAgICAgIC5j
YXRjaCh1bnJlYWNoZWRfcmVqZWN0aW9uKHQpKTsKICAgfSwgJ1RoZSBoZWFkZXJzIG9mIEZldGNo
RXZlbnQgc2hvdWxkblwndCBjb250YWluIGZyZXNobmVzcyBoZWFkZXJzLicpOwogPC9zY3JpcHQ+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1yZXF1ZXN0LXJlZGlyZWN0Lmh0
dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1yZXF1ZXN0LXJlZGlyZWN0Lmh0dHBz
Lmh0bWwKaW5kZXggNTdmYjhlYjRjOTVkNTRiMjBkNjc0NzI4MjcwZTE0MGRiMGY2YjQ3My4uZThl
OTBjZjFlYjM3Y2ZjZTk4ZjgwMmEwZGQyNWMyNzAyOTM4Y2NiMiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvZmV0Y2gtcmVxdWVzdC1yZWRpcmVjdC5odHRwcy5odG1sCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL2ZldGNoLXJlcXVlc3QtcmVkaXJlY3QuaHR0cHMuaHRtbApAQCAtNzQsOCAr
NzQsNiBAQCBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewogICAgIHZhciBmcmFtZTsKICAgICBy
ZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgU0NSSVBULCBT
Q09QRSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKHJlZ2lzdHJhdGlvbikgewotICAgICAgICAgIHQu
YWRkX2NsZWFudXAoKCkgPT4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcih0LCBTQ09QRSkpOwot
CiAgICAgICAgICAgd29ya2VyID0gcmVnaXN0cmF0aW9uLmluc3RhbGxpbmc7CiAgICAgICAgICAg
cmV0dXJuIHdhaXRfZm9yX3N0YXRlKHQsIHdvcmtlciwgJ2FjdGl2YXRlZCcpOwogICAgICAgICB9
KQpAQCAtMTgzLDYgKzE4MSw3IEBAIHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7CiAgICAgICAg
IH0pCiAgICAgICAudGhlbihmdW5jdGlvbigpIHsKICAgICAgICAgICBmcmFtZS5yZW1vdmUoKTsK
KyAgICAgICAgICBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9kb25lKHQsIFNDT1BFKTsK
ICAgICAgICAgfSk7CiAgIH0sICdWZXJpZnkgcmVkaXJlY3QgbW9kZSBvZiBGZXRjaCBBUEkgYW5k
IFNlcnZpY2VXb3JrZXIgRmV0Y2hFdmVudC4nKTsKIApAQCAtMjA5LDggKzIwOCw2IEBAIHByb21p
c2VfdGVzdChmdW5jdGlvbih0KSB7CiAgICAgdmFyIGZyYW1lOwogICAgIHJldHVybiBzZXJ2aWNl
X3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCBTQ1JJUFQsIFNDT1BFKQogICAgICAg
LnRoZW4oZnVuY3Rpb24ocmVnaXN0cmF0aW9uKSB7Ci0gICAgICAgICAgdC5hZGRfY2xlYW51cCgo
KSA9PiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyKHQsIFNDT1BFKSk7Ci0KICAgICAgICAgICB3
b3JrZXIgPSByZWdpc3RyYXRpb24uaW5zdGFsbGluZzsKICAgICAgICAgICByZXR1cm4gd2FpdF9m
b3Jfc3RhdGUodCwgd29ya2VyLCAnYWN0aXZhdGVkJyk7CiAgICAgICAgIH0pCkBAIC0yNzgsNiAr
Mjc1LDcgQEAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICAgICAgfSkKICAgICAgIC50
aGVuKGZ1bmN0aW9uKCkgewogICAgICAgICAgIGZyYW1lLnJlbW92ZSgpOworICAgICAgICAgIHNl
cnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX2RvbmUodCwgU0NPUEUpOwogICAgICAgICB9KTsK
ICAgfSwgJ1ZlcmlmeSByZWRpcmVjdGVkIG9mIFJlc3BvbnNlKEZldGNoIEFQSSkgYW5kIFNlcnZp
Y2VXb3JrZXIgRmV0Y2hFdmVudC4nKTsKIApAQCAtMzA0LDggKzMwMiw2IEBAIHByb21pc2VfdGVz
dChmdW5jdGlvbih0KSB7CiAgICAgdmFyIGZyYW1lOwogICAgIHJldHVybiBzZXJ2aWNlX3dvcmtl
cl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCBTQ1JJUFQsIFNDT1BFKQogICAgICAgLnRoZW4o
ZnVuY3Rpb24ocmVnaXN0cmF0aW9uKSB7Ci0gICAgICAgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBz
ZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyKHQsIFNDT1BFKSk7Ci0KICAgICAgICAgICB3b3JrZXIg
PSByZWdpc3RyYXRpb24uaW5zdGFsbGluZzsKICAgICAgICAgICByZXR1cm4gd2FpdF9mb3Jfc3Rh
dGUodCwgd29ya2VyLCAnYWN0aXZhdGVkJyk7CiAgICAgICAgIH0pCkBAIC0zNzksNiArMzc1LDcg
QEAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICAgICAgfSkKICAgICAgIC50aGVuKGZ1
bmN0aW9uKCkgewogICAgICAgICAgIGZyYW1lLnJlbW92ZSgpOworICAgICAgICAgIHNlcnZpY2Vf
d29ya2VyX3VucmVnaXN0ZXJfYW5kX2RvbmUodCwgU0NPUEUpOwogICAgICAgICB9KTsKICAgfSwg
J1ZlcmlmeSByZWRpcmVjdGVkIG9mIFJlc3BvbnNlKEZldGNoIEFQSSksIENhY2hlIEFQSSBhbmQg
U2VydmljZVdvcmtlciAnICsKICAgICAgJ0ZldGNoRXZlbnQuJyk7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9mZXRjaC1yZXF1ZXN0LXhoci1zeW5jLmh0dHBzLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9mZXRjaC1yZXF1ZXN0LXhoci1zeW5jLmh0dHBzLmh0bWwKaW5kZXggZWMyN2Zi
ODk4MzQzZTcwYWIyNDQ4Njk4MzIxMmVmNmI1NzQ0Y2YxNi4uZjFlNGZlY2MxYjM1YmExOGI4OWM1
NzEwZGU1ZWZkOWY2YzExODNjMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gt
cmVxdWVzdC14aHItc3luYy5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNo
LXJlcXVlc3QteGhyLXN5bmMuaHR0cHMuaHRtbApAQCAtMTQsNyArMTQsNyBAQCBwcm9taXNlX3Rl
c3QoZnVuY3Rpb24odCkgewogICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2Fu
ZF9yZWdpc3Rlcih0LCB1cmwsIHNjb3BlKQogICAgICAgLnRoZW4oZnVuY3Rpb24ocmVnaXN0cmF0
aW9uKSB7CiAgICAgICAgICAgdC5hZGRfY2xlYW51cChmdW5jdGlvbigpIHsKLSAgICAgICAgICAg
ICAgcmV0dXJuIHJlZ2lzdHJhdGlvbi51bnJlZ2lzdGVyKCk7CisgICAgICAgICAgICAgIHJlZ2lz
dHJhdGlvbi51bnJlZ2lzdGVyKCk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICAgIHJldHVy
biB3YWl0X2Zvcl9zdGF0ZSh0LCByZWdpc3RyYXRpb24uaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcp
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtcmVzcG9uc2UteGhyLmh0dHBz
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1yZXNwb25zZS14aHIuaHR0cHMuaHRtbApp
bmRleCA4OTFlYjAyOTQyMmI3YmYxY2Q1NzUyNzBjZmE0NjE2YmI4MGRhMGJjLi43NDE3M2U4Yjli
ZGNjNzdjNWY4NTgzMmY4NWE1YzQ0ODU2Yjc4NTY1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9mZXRjaC1yZXNwb25zZS14aHIuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9mZXRjaC1yZXNwb25zZS14aHIuaHR0cHMuaHRtbApAQCAtNSw3ICs1LDcgQEAKIDxzY3JpcHQg
c3JjPSIvY29tbW9uL2dldC1ob3N0LWluZm8uc3ViLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvdGVzdC1oZWxwZXJzLnN1Yi5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgotcHJv
bWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKK2FzeW5jX3Rlc3QoZnVuY3Rpb24odCkgewogICAgIHZh
ciBTQ09QRSA9ICdyZXNvdXJjZXMvZmV0Y2gtcmVzcG9uc2UteGhyLWlmcmFtZS5odHRwcy5odG1s
JzsKICAgICB2YXIgU0NSSVBUID0gJ3Jlc291cmNlcy9mZXRjaC1yZXNwb25zZS14aHItd29ya2Vy
LmpzJzsKICAgICB2YXIgaG9zdF9pbmZvID0gZ2V0X2hvc3RfaW5mbygpOwpAQCAtMTYsMTIgKzE2
LDggQEAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICAgIGUuc291cmNlLnBvc3RNZXNz
YWdlKCdBQ0snLCBob3N0X2luZm9bJ0hUVFBTX09SSUdJTiddKTsKICAgICB9CiAKLSAgICByZXR1
cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgU0NSSVBULCBTQ09Q
RSkKKyAgICBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCBTQ1JJUFQs
IFNDT1BFKQogICAgICAgLnRoZW4oZnVuY3Rpb24ocmVnaXN0cmF0aW9uKSB7Ci0gICAgICAgICAg
dC5hZGRfY2xlYW51cChmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgcmV0dXJuIHNlcnZpY2Vf
d29ya2VyX3VucmVnaXN0ZXIodCwgU0NPUEUpOwotICAgICAgICAgICAgfSk7Ci0KICAgICAgICAg
ICByZXR1cm4gd2FpdF9mb3Jfc3RhdGUodCwgcmVnaXN0cmF0aW9uLmluc3RhbGxpbmcsICdhY3Rp
dmF0ZWQnKTsKICAgICAgICAgfSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKCkgeyByZXR1cm4gd2l0
aF9pZnJhbWUoU0NPUEUpOyB9KQpAQCAtMzAsMjEgKzI2LDE4IEBAIHByb21pc2VfdGVzdChmdW5j
dGlvbih0KSB7CiAKICAgICAgICAgICB0LmFkZF9jbGVhbnVwKGZ1bmN0aW9uKCkgewogICAgICAg
ICAgICAgICBmcmFtZS5yZW1vdmUoKTsKKyAgICAgICAgICAgICAgc2VydmljZV93b3JrZXJfdW5y
ZWdpc3Rlcl9hbmRfZG9uZSh0LCBTQ09QRSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICAg
IGNoYW5uZWwgPSBuZXcgTWVzc2FnZUNoYW5uZWwoKTsKLSAgICAgICAgICB2YXIgb25Qb3J0TXNn
ID0gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSkgewotICAgICAgICAgICAgICBjaGFubmVs
LnBvcnQxLm9ubWVzc2FnZSA9IHJlc29sdmU7CisgICAgICAgICAgY2hhbm5lbC5wb3J0MS5vbm1l
c3NhZ2UgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICAgIGFzc2VydF9l
cXVhbHMoZS5kYXRhLnJlc3VsdHMsICdmaW5pc2gnKTsKKyAgICAgICAgICAgICAgdC5kb25lKCk7
CiAgICAgICAgICAgICB9KTsKLQogICAgICAgICAgIGZyYW1lLmNvbnRlbnRXaW5kb3cucG9zdE1l
c3NhZ2UoJ1NUQVJUJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGhvc3RfaW5mb1snSFRUUFNfT1JJR0lOJ10sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBbY2hhbm5lbC5wb3J0Ml0pOwotCi0gICAgICAgICAgcmV0dXJuIG9uUG9y
dE1zZzsKICAgICAgICAgfSkKLSAgICAgIC50aGVuKGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICBh
c3NlcnRfZXF1YWxzKGUuZGF0YS5yZXN1bHRzLCAnZmluaXNoJyk7Ci0gICAgICAgIH0pOworICAg
ICAgLmNhdGNoKHVucmVhY2hlZF9yZWplY3Rpb24odCkpOwogICB9LCAnVmVyaWZ5IHRoZSByZXNw
b25zZSBvZiBGZXRjaEV2ZW50IHVzaW5nIFhNTEh0dHBSZXF1ZXN0Jyk7CiA8L3NjcmlwdD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLXdhaXRzLWZvci1hY3RpdmF0ZS5odHRw
cy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtd2FpdHMtZm9yLWFjdGl2YXRlLmh0dHBz
Lmh0bWwKaW5kZXggODg5YzVlYzdiYmI5MzY3NzE1MTE4Zjc4YWU4MWE5OTQ4NTZhZDk5Zi4uMmM5
ZDRhNTlkYzE4ZGMxMjVhYmMyZjI3OWVmOGU2NTEwZGRiMzQ4MyAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvZmV0Y2gtd2FpdHMtZm9yLWFjdGl2YXRlLmh0dHBzLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvZmV0Y2gtd2FpdHMtZm9yLWFjdGl2YXRlLmh0dHBzLmh0bWwKQEAgLTEz
LDE1ICsxMywxMSBAQCB2YXIgd29ya2VyID0gJ3Jlc291cmNlcy9mZXRjaC13YWl0cy1mb3ItYWN0
aXZhdGUtd29ya2VyLmpzJzsKIHZhciBleHBlY3RlZF91cmwgPSBub3JtYWxpemVVUkwod29ya2Vy
KTsKIHZhciBzY29wZSA9ICdyZXNvdXJjZXMvZmV0Y2gtd2FpdHMtZm9yLWFjdGl2YXRlLyc7CiAK
LXByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7Cithc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKICAg
dmFyIHJlZ2lzdHJhdGlvbjsKICAgdmFyIGZyYW1lTG9hZFByb21pc2U7CiAgIHZhciBmcmFtZTsK
LSAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHdvcmtl
ciwgc2NvcGUpLnRoZW4oZnVuY3Rpb24ocmVnKSB7Ci0gICAgdC5hZGRfY2xlYW51cChmdW5jdGlv
bigpIHsKLSAgICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyKHQsIHNjb3BlKTsK
LSAgICB9KTsKLQorICBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCB3
b3JrZXIsIHNjb3BlKS50aGVuKGZ1bmN0aW9uKHJlZykgewogICAgIHJlZ2lzdHJhdGlvbiA9IHJl
ZzsKICAgICByZXR1cm4gd2FpdF9mb3Jfc3RhdGUodCwgcmVnLmluc3RhbGxpbmcsICdhY3RpdmF0
aW5nJyk7CiAgIH0pLnRoZW4oZnVuY3Rpb24oKSB7CkBAIC01OSw3ICs1NSw4IEBAIHByb21pc2Vf
dGVzdChmdW5jdGlvbih0KSB7CiAgICAgYXNzZXJ0X2VxdWFscyhyZWdpc3RyYXRpb24uYWN0aXZl
LnN0YXRlLCAnYWN0aXZhdGVkJywKICAgICAgICAgICAgICAgICAgICdhY3RpdmUgd29ya2VyIHNo
b3VsZCBiZSBpbiBhY3RpdmF0ZWQgc3RhdGUnKTsKICAgICBmcmFtZS5yZW1vdmUoKTsKLSAgfSk7
CisgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX2RvbmUodCwgc2NvcGUp
OworICB9KS5jYXRjaCh1bnJlYWNoZWRfcmVqZWN0aW9uKHQpKTsKIH0sICdGZXRjaCBldmVudHMg
c2hvdWxkIHdhaXQgZm9yIHRoZSBhY3RpdmF0ZSBldmVudCB0byBjb21wbGV0ZS4nKTsKIAogPC9z
Y3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9nZXRyZWdpc3RyYXRpb24uaHR0
cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZ2V0cmVnaXN0cmF0aW9uLmh0dHBz
LWV4cGVjdGVkLnR4dAppbmRleCAyNTEzNWRkMTk4MDlhYzQ1ZmI0N2JmYjQ5MWMwOGU1NzZmMWRi
ODFiLi45Mzk2NjYyZTk0MTczOWVkYWY5NDlkMzJkZWU3MTQ2ZWNlMGU4MWNkIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9nZXRyZWdpc3RyYXRpb24uaHR0cHMtZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL2dldHJlZ2lzdHJhdGlvbi5odHRwcy1leHBlY3RlZC50eHQK
QEAgLTQsNSArNCw0IEBAIFBBU1MgUmVnaXN0ZXIgdGhlbiBnZXRSZWdpc3RyYXRpb24KIFBBU1Mg
UmVnaXN0ZXIgdGhlbiBnZXRSZWdpc3RyYXRpb24gd2l0aCBhIFVSTCBoYXZpbmcgYSBmcmFnbWVu
dCAKIFBBU1MgZ2V0UmVnaXN0cmF0aW9uIHdpdGggYSBjcm9zcyBvcmlnaW4gVVJMIAogUEFTUyBS
ZWdpc3RlciB0aGVuIFVucmVnaXN0ZXIgdGhlbiBnZXRSZWdpc3RyYXRpb24gCi1QQVNTIFJlZ2lz
dGVyIHRoZW4gVW5yZWdpc3RlciB0aGVuIGdldFJlZ2lzdHJhdGlvbiBpbiBjb250cm9sbGVkIGlm
cmFtZSAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZ2V0cmVnaXN0cmF0aW9uLmh0
dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9nZXRyZWdpc3RyYXRpb24uaHR0cHMuaHRtbApp
bmRleCA2MzRjMmVmYTEyNDYxYTgxMWQ4ZTQ2MzQ1ZWNlMDI5ODA4NmY2NGIyLi5jODZmZGE1MGQ1
MmUyNzBjN2Y4YTIxZjAzODkxZmE2MzJkMDJmZmI4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9nZXRyZWdpc3RyYXRpb24uaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9n
ZXRyZWdpc3RyYXRpb24uaHR0cHMuaHRtbApAQCAtMTQsMTYgKzE0LDEyIEBAIGFzeW5jX3Rlc3Qo
ZnVuY3Rpb24odCkgewogICAgICAgLmNhdGNoKHVucmVhY2hlZF9yZWplY3Rpb24odCkpOwogICB9
LCAnZ2V0UmVnaXN0cmF0aW9uJyk7CiAKLXByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7Cithc3lu
Y190ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICB2YXIgc2NvcGUgPSAncmVzb3VyY2VzL3Njb3BlL2dl
dHJlZ2lzdHJhdGlvbi9ub3JtYWwnOwogICAgIHZhciByZWdpc3RyYXRpb247Ci0gICAgcmV0dXJu
IHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsICdyZXNvdXJjZXMvZW1w
dHktd29ya2VyLmpzJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc2NvcGUpCisgICAgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0
ZXIodCwgJ3Jlc291cmNlcy9lbXB0eS13b3JrZXIuanMnLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHNjb3BlKQogICAgICAgLnRoZW4oZnVuY3Rpb24ocikgewot
ICAgICAgICAgIHQuYWRkX2NsZWFudXAoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgIHJldHVy
biBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyKHQsIHNjb3BlKTsKLSAgICAgICAgICAgIH0pOwot
CiAgICAgICAgICAgcmVnaXN0cmF0aW9uID0gcjsKICAgICAgICAgICByZXR1cm4gbmF2aWdhdG9y
LnNlcnZpY2VXb3JrZXIuZ2V0UmVnaXN0cmF0aW9uKHNjb3BlKTsKICAgICAgICAgfSkKQEAgLTMx
LDIwICsyNywxOCBAQCBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewogICAgICAgICAgIGFzc2Vy
dF9lcXVhbHMoCiAgICAgICAgICAgICAgIHZhbHVlLCByZWdpc3RyYXRpb24sCiAgICAgICAgICAg
ICAgICdnZXRSZWdpc3RyYXRpb24gc2hvdWxkIHJlc29sdmUgdG8gdGhlIHNhbWUgcmVnaXN0cmF0
aW9uIG9iamVjdCcpOwotICAgICAgICB9KTsKKyAgICAgICAgICBzZXJ2aWNlX3dvcmtlcl91bnJl
Z2lzdGVyX2FuZF9kb25lKHQsIHNjb3BlKTsKKyAgICAgICAgfSkKKyAgICAgIC5jYXRjaCh1bnJl
YWNoZWRfcmVqZWN0aW9uKHQpKTsKICAgfSwgJ1JlZ2lzdGVyIHRoZW4gZ2V0UmVnaXN0cmF0aW9u
Jyk7CiAKLXByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7Cithc3luY190ZXN0KGZ1bmN0aW9uKHQp
IHsKICAgICB2YXIgc2NvcGUgPSAncmVzb3VyY2VzL3Njb3BlL2dldHJlZ2lzdHJhdGlvbi91cmwt
d2l0aC1mcmFnbWVudCc7CiAgICAgdmFyIGRvY3VtZW50VVJMID0gc2NvcGUgKyAnI3JlZic7CiAg
ICAgdmFyIHJlZ2lzdHJhdGlvbjsKLSAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rl
cl9hbmRfcmVnaXN0ZXIodCwgJ3Jlc291cmNlcy9lbXB0eS13b3JrZXIuanMnLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY29wZSkKKyAgICBzZXJ2
aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCAncmVzb3VyY2VzL2VtcHR5LXdv
cmtlci5qcycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Nv
cGUpCiAgICAgICAudGhlbihmdW5jdGlvbihyKSB7Ci0gICAgICAgICAgdC5hZGRfY2xlYW51cChm
dW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0
ZXIodCwgc2NvcGUpOwotICAgICAgICAgICAgfSk7Ci0KICAgICAgICAgICByZWdpc3RyYXRpb24g
PSByOwogICAgICAgICAgIHJldHVybiBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5nZXRSZWdpc3Ry
YXRpb24oZG9jdW1lbnRVUkwpOwogICAgICAgICB9KQpAQCAtNTIsNyArNDYsOSBAQCBwcm9taXNl
X3Rlc3QoZnVuY3Rpb24odCkgewogICAgICAgICAgIGFzc2VydF9lcXVhbHMoCiAgICAgICAgICAg
ICAgIHZhbHVlLCByZWdpc3RyYXRpb24sCiAgICAgICAgICAgICAgICdnZXRSZWdpc3RyYXRpb24g
c2hvdWxkIHJlc29sdmUgdG8gdGhlIHNhbWUgcmVnaXN0cmF0aW9uIG9iamVjdCcpOwotICAgICAg
ICB9KTsKKyAgICAgICAgICBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9kb25lKHQsIHNj
b3BlKTsKKyAgICAgICAgfSkKKyAgICAgIC5jYXRjaCh1bnJlYWNoZWRfcmVqZWN0aW9uKHQpKTsK
ICAgfSwgJ1JlZ2lzdGVyIHRoZW4gZ2V0UmVnaXN0cmF0aW9uIHdpdGggYSBVUkwgaGF2aW5nIGEg
ZnJhZ21lbnQnKTsKIAogYXN5bmNfdGVzdChmdW5jdGlvbih0KSB7CkBAIC04OCwyMSArODQsNCBA
QCBhc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICAgIC5jYXRjaCh1bnJlYWNoZWRfcmVqZWN0
aW9uKHQpKTsKICAgfSwgJ1JlZ2lzdGVyIHRoZW4gVW5yZWdpc3RlciB0aGVuIGdldFJlZ2lzdHJh
dGlvbicpOwogCi0KLXByb21pc2VfdGVzdChhc3luYyBmdW5jdGlvbih0KSB7Ci0gIGNvbnN0IHNj
b3BlID0gJ3Jlc291cmNlcy9zY29wZS9nZXRyZWdpc3RyYXRpb24vcmVnaXN0ZXItdW5yZWdpc3Rl
cic7Ci0gIGNvbnN0IHJlZ2lzdHJhdGlvbiA9IGF3YWl0IHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0
ZXJfYW5kX3JlZ2lzdGVyKAotICAgIHQsICdyZXNvdXJjZXMvZW1wdHktd29ya2VyLmpzJywgc2Nv
cGUKLSAgKTsKLQotICBjb25zdCBmcmFtZSA9IGF3YWl0IHdpdGhfaWZyYW1lKHNjb3BlKTsKLSAg
dC5hZGRfY2xlYW51cCgoKSA9PiBmcmFtZS5yZW1vdmUoKSk7Ci0KLSAgY29uc3QgZnJhbWVOYXYg
PSBmcmFtZS5jb250ZW50V2luZG93Lm5hdmlnYXRvcjsKLSAgYXdhaXQgcmVnaXN0cmF0aW9uLnVu
cmVnaXN0ZXIoKTsKLSAgY29uc3QgdmFsdWUgPSBhd2FpdCBmcmFtZU5hdi5zZXJ2aWNlV29ya2Vy
LmdldFJlZ2lzdHJhdGlvbihzY29wZSk7Ci0KLSAgYXNzZXJ0X2VxdWFscyh2YWx1ZSwgdW5kZWZp
bmVkLCAnZ2V0UmVnaXN0cmF0aW9uIHNob3VsZCByZXNvbHZlIHdpdGggdW5kZWZpbmVkJyk7Ci19
LCAnUmVnaXN0ZXIgdGhlbiBVbnJlZ2lzdGVyIHRoZW4gZ2V0UmVnaXN0cmF0aW9uIGluIGNvbnRy
b2xsZWQgaWZyYW1lJyk7Ci0KIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvaW1wb3J0LW1vZHVsZS1zY3JpcHRzLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL2ltcG9ydC1tb2R1bGUtc2NyaXB0cy5odHRwcy1leHBlY3RlZC50eHQKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ0MmU1MDcyYzY0ZmRmNzk1NDEwMmNiZTY4YzU0Yjg0YjE1
ZjVjMGIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvaW1wb3J0LW1vZHVsZS1zY3JpcHRzLmh0dHBzLWV4cGVjdGVkLnR4dAor
KysgL2Rldi9udWxsCkBAIC0xLDQgKzAsMCBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDI3OiBS
ZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogdGVzdENhc2VzCi0KLUZBSUwgVGVz
dHMgZm9yIG1vZHVsZSBpbXBvcnQ6IFNlcnZpY2VXb3JrZXIgUmVmZXJlbmNlRXJyb3I6IENhbid0
IGZpbmQgdmFyaWFibGU6IHRlc3RDYXNlcwotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9pbXBvcnQtbW9kdWxlLXNjcmlwdHMuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2lt
cG9ydC1tb2R1bGUtc2NyaXB0cy5odHRwcy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA3YmNhOGRlNjRmNWJjOTY2NDkxMWJkMWM1ZGM4ODM1Njc2ODFhZmI4Li4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2lt
cG9ydC1tb2R1bGUtc2NyaXB0cy5odHRwcy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjkgKzAs
MCBAQAotPCFET0NUWVBFIGh0bWw+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08dGl0bGU+VGVz
dHMgZm9yIG1vZHVsZSBpbXBvcnQ6IFNlcnZpY2VXb3JrZXI8L3RpdGxlPgotPHNjcmlwdCBzcmM9
Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii9yZXNv
dXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291
cmNlcy90ZXN0LWhlbHBlcnMuc3ViLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIvd29ya2Vy
cy9tb2R1bGVzL3Jlc291cmNlcy9pbXBvcnQtdGVzdC1jYXNlcy5qcyI+PC9zY3JpcHQ+Ci08Ym9k
eT4KLTxzY3JpcHQ+Ci1mdW5jdGlvbiBpbXBvcnRfdGVzdCh0ZXN0Q2FzZSkgewotICBwcm9taXNl
X3Rlc3QoYXN5bmMgdCA9PiB7Ci0gICAgY29uc3QgbXNnUHJvbWlzZSA9IG5ldyBQcm9taXNlKHJl
c29sdmUgPT4gewotICAgICAgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIub25tZXNzYWdlID0gcmVz
b2x2ZTsKLSAgICB9KTsKLSAgICBhd2FpdCBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyKHQsIHRl
c3RDYXNlLnNjcmlwdFVSTCk7Ci0gICAgdC5hZGRfY2xlYW51cCgoKSA9PiBzZXJ2aWNlX3dvcmtl
cl91bnJlZ2lzdGVyKHQsIHRlc3RDYXNlLnNjcmlwdFVSTCkpOwotICAgIGNvbnN0IHJlZ2lzdHJh
dGlvbiA9IGF3YWl0IG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKAotICAgICAgdGVz
dENhc2Uuc2NyaXB0VVJMLAotICAgICAgeyBzY29wZTogdGVzdENhc2Uuc2NyaXB0VVJMLCB0eXBl
OiAnbW9kdWxlJyB9KTsKLSAgICByZWdpc3RyYXRpb24uaW5zdGFsbGluZy5wb3N0TWVzc2FnZSgK
LSAgICAgICdTZW5kIG1lc3NhZ2UgZm9yIHRlc3RzIGZyb20gbWFpbiBzY3JpcHQuJyk7Ci0gICAg
Y29uc3QgbXNnRXZlbnQgPSBhd2FpdCBtc2dQcm9taXNlOwotICAgIGFzc2VydF9hcnJheV9lcXVh
bHMobXNnRXZlbnQuZGF0YSwgdGVzdENhc2UuZXhwZWN0YXRpb24pOwotICB9LCB0ZXN0Q2FzZS5k
ZXNjcmlwdGlvbik7Ci19Ci0KLXRlc3RDYXNlcy5mb3JFYWNoKGltcG9ydF90ZXN0KTsKLTwvc2Ny
aXB0PgotPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvaW1wb3J0LXNjcmlw
dHMtbWltZS10eXBlcy5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9pbXBv
cnQtc2NyaXB0cy1taW1lLXR5cGVzLmh0dHBzLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggN2IxY2UzNDA0MTU0NDBkMWQwMDQzZWEyYzIyMmMxZGY3YWVlMTk1Mi4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9pbXBvcnQtc2NyaXB0cy1taW1lLXR5cGVzLmh0dHBzLWV4cGVjdGVkLnR4dAorKysg
L2Rldi9udWxsCkBAIC0xLDIyICswLDAgQEAKLQotUEFTUyBHbG9iYWwgc2V0dXAgCi1QQVNTIEZl
dGNoIGltcG9ydFNjcmlwdHMgdGVzdHMgZnJvbSBzZXJ2aWNlIHdvcmtlciAKLVBBU1MgSW1wb3J0
aW5nIHNjcmlwdCB3aXRoIG5vIE1JTUUgdHlwZSAgCi1QQVNTIEltcG9ydGluZyBzY3JpcHQgd2l0
aCBiYWQgTUlNRSB0eXBlIHRleHQvcGxhaW4gCi1QQVNTIEltcG9ydGluZyBzY3JpcHQgd2l0aCB2
YWxpZCBKYXZhU2NyaXB0IE1JTUUgdHlwZSBhcHBsaWNhdGlvbi9lY21hc2NyaXB0IAotUEFTUyBJ
bXBvcnRpbmcgc2NyaXB0IHdpdGggdmFsaWQgSmF2YVNjcmlwdCBNSU1FIHR5cGUgYXBwbGljYXRp
b24vamF2YXNjcmlwdCAKLVBBU1MgSW1wb3J0aW5nIHNjcmlwdCB3aXRoIHZhbGlkIEphdmFTY3Jp
cHQgTUlNRSB0eXBlIGFwcGxpY2F0aW9uL3gtZWNtYXNjcmlwdCAKLVBBU1MgSW1wb3J0aW5nIHNj
cmlwdCB3aXRoIHZhbGlkIEphdmFTY3JpcHQgTUlNRSB0eXBlIGFwcGxpY2F0aW9uL3gtamF2YXNj
cmlwdCAKLVBBU1MgSW1wb3J0aW5nIHNjcmlwdCB3aXRoIHZhbGlkIEphdmFTY3JpcHQgTUlNRSB0
eXBlIHRleHQvZWNtYXNjcmlwdCAKLVBBU1MgSW1wb3J0aW5nIHNjcmlwdCB3aXRoIHZhbGlkIEph
dmFTY3JpcHQgTUlNRSB0eXBlIHRleHQvamF2YXNjcmlwdCAKLVBBU1MgSW1wb3J0aW5nIHNjcmlw
dCB3aXRoIHZhbGlkIEphdmFTY3JpcHQgTUlNRSB0eXBlIHRleHQvamF2YXNjcmlwdDEuMCAKLVBB
U1MgSW1wb3J0aW5nIHNjcmlwdCB3aXRoIHZhbGlkIEphdmFTY3JpcHQgTUlNRSB0eXBlIHRleHQv
amF2YXNjcmlwdDEuMSAKLVBBU1MgSW1wb3J0aW5nIHNjcmlwdCB3aXRoIHZhbGlkIEphdmFTY3Jp
cHQgTUlNRSB0eXBlIHRleHQvamF2YXNjcmlwdDEuMiAKLVBBU1MgSW1wb3J0aW5nIHNjcmlwdCB3
aXRoIHZhbGlkIEphdmFTY3JpcHQgTUlNRSB0eXBlIHRleHQvamF2YXNjcmlwdDEuMyAKLVBBU1Mg
SW1wb3J0aW5nIHNjcmlwdCB3aXRoIHZhbGlkIEphdmFTY3JpcHQgTUlNRSB0eXBlIHRleHQvamF2
YXNjcmlwdDEuNCAKLVBBU1MgSW1wb3J0aW5nIHNjcmlwdCB3aXRoIHZhbGlkIEphdmFTY3JpcHQg
TUlNRSB0eXBlIHRleHQvamF2YXNjcmlwdDEuNSAKLVBBU1MgSW1wb3J0aW5nIHNjcmlwdCB3aXRo
IHZhbGlkIEphdmFTY3JpcHQgTUlNRSB0eXBlIHRleHQvanNjcmlwdCAKLVBBU1MgSW1wb3J0aW5n
IHNjcmlwdCB3aXRoIHZhbGlkIEphdmFTY3JpcHQgTUlNRSB0eXBlIHRleHQvbGl2ZXNjcmlwdCAK
LVBBU1MgSW1wb3J0aW5nIHNjcmlwdCB3aXRoIHZhbGlkIEphdmFTY3JpcHQgTUlNRSB0eXBlIHRl
eHQveC1lY21hc2NyaXB0IAotUEFTUyBJbXBvcnRpbmcgc2NyaXB0IHdpdGggdmFsaWQgSmF2YVNj
cmlwdCBNSU1FIHR5cGUgdGV4dC94LWphdmFzY3JpcHQgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL2ltcG9ydC1zY3JpcHRzLW1pbWUtdHlwZXMuaHR0cHMuaHRtbCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL2ltcG9ydC1zY3JpcHRzLW1pbWUtdHlwZXMuaHR0cHMuaHRtbApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMTY3OTgzMWQwZjJiOThhZWUyMjg5OGQ4MjAzNzNlODAwNzlm
YmUwMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9pbXBvcnQtc2NyaXB0cy1taW1lLXR5cGVzLmh0dHBzLmh0bWwKKysrIC9k
ZXYvbnVsbApAQCAtMSwzMCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxtZXRhIGNoYXJzZXQ9
InV0Zi04Ij4KLTx0aXRsZT5UZXN0cyBmb3IgaW1wb3J0U2NyaXB0czogTUlNRSB0eXBlczwvdGl0
bGU+Ci08c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Rlc3QtaGVscGVycy5zdWIuanMiPjwvc2NyaXB0PgotPGJv
ZHk+Ci08c2NyaXB0PgotLyoqCi0gKiBUZXN0IHRoYXQgYSBTZXJ2aWNlIFdvcmtlcidzIGltcG9y
dFNjcmlwdCgpIG9ubHkgYWNjZXB0cyB2YWxpZCBNSU1FIHR5cGVzLgotICovCi1sZXQgc2Vydmlj
ZVdvcmtlciA9IG51bGw7Ci0KLXByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKLSAgY29uc3Qgc2Nv
cGUgPSAncmVzb3VyY2VzL2ltcG9ydC1zY3JpcHRzLW1pbWUtdHlwZXMnOwotICBjb25zdCByZWdp
c3RyYXRpb24gPSBhd2FpdCBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0
LAotICAgICdyZXNvdXJjZXMvaW1wb3J0LXNjcmlwdHMtbWltZS10eXBlcy13b3JrZXIuanMnLCBz
Y29wZSk7Ci0KLSAgYWRkX2NvbXBsZXRpb25fY2FsbGJhY2soKCkgPT4geyByZWdpc3RyYXRpb24u
dW5yZWdpc3RlcigpOyB9KTsKLQotICBhd2FpdCB3YWl0X2Zvcl9zdGF0ZSh0LCByZWdpc3RyYXRp
b24uaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOwotCi0gIHNlcnZpY2VXb3JrZXIgPSByZWdpc3Ry
YXRpb24uYWN0aXZlOwotfSwgJ0dsb2JhbCBzZXR1cCcpOwotCi1wcm9taXNlX3Rlc3QoYXN5bmMg
dCA9PiB7Ci0gIGF3YWl0IGZldGNoX3Rlc3RzX2Zyb21fd29ya2VyKHNlcnZpY2VXb3JrZXIpOwot
fSwgJ0ZldGNoIGltcG9ydFNjcmlwdHMgdGVzdHMgZnJvbSBzZXJ2aWNlIHdvcmtlcicpCi08L3Nj
cmlwdD4KLTwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ltcG9ydC1zY3Jp
cHRzLXJlc291cmNlLW1hcC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9p
bXBvcnQtc2NyaXB0cy1yZXNvdXJjZS1tYXAuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IGY4MzFh
OGVkNzRkZWNiZDFlMmM3ZTI1MGMyNDFlOTM4ZTQzMWZmZDkuLjJkOTU3ZjFkYjRmOTBmOTVkYmM0
MmJhNTJlM2Q3MmFmM2NmYTRiZTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ltcG9y
dC1zY3JpcHRzLXJlc291cmNlLW1hcC5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvaW1wb3J0LXNjcmlwdHMtcmVzb3VyY2UtbWFwLmh0dHBzLWV4cGVjdGVkLnR4dApA
QCAtMSw0ICsxLDMgQEAKIAogUEFTUyBpbXBvcnQgdGhlIHNhbWUgc2NyaXB0IFVSTCBtdWx0aXBs
ZSB0aW1lcyAKLVBBU1MgY2FsbCBpbXBvcnRTY3JpcHRzKCkgd2l0aCBtdWx0aXBsZSBhcmd1bWVu
dHMgCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ltcG9ydC1zY3JpcHRzLXJlc291
cmNlLW1hcC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvaW1wb3J0LXNjcmlwdHMtcmVz
b3VyY2UtbWFwLmh0dHBzLmh0bWwKaW5kZXggNDc0MmJkMDEyNjgzNjA0NzdiZjYwNjFmODUwNWZl
OWEzYjdjYWRiNy4uYTVlMjY3ODVmYWM0YWExMjY3NzYyZmY1OGM0ODk2OWRjOGFjYjAxNyAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvaW1wb3J0LXNjcmlwdHMtcmVzb3VyY2UtbWFwLmh0
dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvaW1wb3J0LXNjcmlwdHMtcmVzb3VyY2Ut
bWFwLmh0dHBzLmh0bWwKQEAgLTEsMzQgKzEsMjMgQEAKIDwhRE9DVFlQRSBodG1sPgotPG1ldGEg
Y2hhcnNldD0idXRmLTgiIC8+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CiA8dGl0bGU+VGVzdHMg
Zm9yIGltcG9ydFNjcmlwdHM6IHNjcmlwdCByZXNvdXJjZSBtYXA8L3RpdGxlPgogPHNjcmlwdCBz
cmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9InJl
c291cmNlcy90ZXN0LWhlbHBlcnMuc3ViLmpzIj48L3NjcmlwdD4KIDxib2R5PgotICA8c2NyaXB0
PgotICAgIC8vIFRoaXMgdGVzdCByZWdpc3RlcnMgYSB3b3JrZXIgdGhhdCBpbXBvcnRzIGEgc2Ny
aXB0IG11bHRpcGxlIHRpbWVzLiBUaGUKLSAgICAvLyBzY3JpcHQgc2hvdWxkIGJlIHN0b3JlZCBv
biB0aGUgZmlyc3QgaW1wb3J0IGFuZCB0aGVyZWFmdGVyIHRoYXQgc3RvcmVkCi0gICAgLy8gc2Ny
aXB0IHNob3VsZCBiZSBsb2FkZWQuIFRoZSB3b3JrZXIgYXNzZXJ0cyB0aGF0IHRoZSBzdG9yZWQg
c2NyaXB0IHdhcwotICAgIC8vIGxvYWRlZDsgaWYgdGhlIGFzc2VydCBmYWlscyB0aGVuIHJlZ2lz
dHJhdGlvbiBmYWlscy4KLQotICAgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKLSAgICAgIGNv
bnN0IFNDT1BFID0gInJlc291cmNlcy9pbXBvcnQtc2NyaXB0cy1yZXNvdXJjZS1tYXAiOwotICAg
ICAgY29uc3QgU0NSSVBUID0gInJlc291cmNlcy9pbXBvcnQtc2NyaXB0cy1yZXNvdXJjZS1tYXAt
d29ya2VyLmpzIjsKLSAgICAgIGF3YWl0IHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXIodCwgU0NP
UEUpOwotICAgICAgY29uc3QgcmVnaXN0cmF0aW9uID0gYXdhaXQgbmF2aWdhdG9yLnNlcnZpY2VX
b3JrZXIucmVnaXN0ZXIoU0NSSVBULCB7Ci0gICAgICAgIHNjb3BlOiBTQ09QRQotICAgICAgfSk7
Ci0gICAgICBhd2FpdCByZWdpc3RyYXRpb24udW5yZWdpc3RlcigpOwotICAgIH0sICJpbXBvcnQg
dGhlIHNhbWUgc2NyaXB0IFVSTCBtdWx0aXBsZSB0aW1lcyIpOwotCi0gICAgcHJvbWlzZV90ZXN0
KGFzeW5jIHQgPT4gewotICAgICAgY29uc3QgU0NPUEUgPSAicmVzb3VyY2VzL2ltcG9ydC1zY3Jp
cHRzLWRpZmYtcmVzb3VyY2UtbWFwIjsKLSAgICAgIGNvbnN0IFNDUklQVCA9ICJyZXNvdXJjZXMv
aW1wb3J0LXNjcmlwdHMtZGlmZi1yZXNvdXJjZS1tYXAtd29ya2VyLmpzIjsKLSAgICAgIGF3YWl0
IHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXIodCwgU0NPUEUpOwotICAgICAgY29uc3QgcmVnaXN0
cmF0aW9uID0gYXdhaXQgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoU0NSSVBULCB7
Ci0gICAgICAgIHNjb3BlOiBTQ09QRQotICAgICAgfSk7Ci0gICAgICBhd2FpdCByZWdpc3RyYXRp
b24udW5yZWdpc3RlcigpOwotICAgIH0sICJjYWxsIGltcG9ydFNjcmlwdHMoKSB3aXRoIG11bHRp
cGxlIGFyZ3VtZW50cyIpOwotICA8L3NjcmlwdD4KKzxzY3JpcHQ+CisvLyBUaGlzIHRlc3QgcmVn
aXN0ZXJzIGEgd29ya2VyIHRoYXQgaW1wb3J0cyBhIHNjcmlwdCBtdWx0aXBsZSB0aW1lcy4gVGhl
CisvLyBzY3JpcHQgc2hvdWxkIGJlIHN0b3JlZCBvbiB0aGUgZmlyc3QgaW1wb3J0IGFuZCB0aGVy
ZWFmdGVyIHRoYXQgc3RvcmVkCisvLyBzY3JpcHQgc2hvdWxkIGJlIGxvYWRlZC4gVGhlIHdvcmtl
ciBhc3NlcnRzIHRoYXQgdGhlIHN0b3JlZCBzY3JpcHQgd2FzCisvLyBsb2FkZWQ7IGlmIHRoZSBh
c3NlcnQgZmFpbHMgdGhlbiByZWdpc3RyYXRpb24gZmFpbHMuCitwcm9taXNlX3Rlc3QodCA9PiB7
CisgICAgY29uc3Qgc2NvcGUgPSAncmVzb3VyY2VzL2ltcG9ydC1zY3JpcHRzLXJlc291cmNlLW1h
cCc7CisgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXIodCwgc2NvcGUpCisgICAg
ICAudGhlbigoKSA9PiB7CisgICAgICAgICAgcmV0dXJuIG5hdmlnYXRvci5zZXJ2aWNlV29ya2Vy
LnJlZ2lzdGVyKAorICAgICAgICAgICAgICAncmVzb3VyY2VzL2ltcG9ydC1zY3JpcHRzLXJlc291
cmNlLW1hcC13b3JrZXIuanMnLCB7c2NvcGU6IHNjb3BlfSk7CisgICAgICAgIH0pCisgICAgICAu
dGhlbihyID0+IHIudW5yZWdpc3RlcigpKTsKKyAgfSwgJ2ltcG9ydCB0aGUgc2FtZSBzY3JpcHQg
VVJMIG11bHRpcGxlIHRpbWVzJyk7Cis8L3NjcmlwdD4KIDwvYm9keT4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL2ludGVyZmFjZXMtd2luZG93Lmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9pbnRlcmZhY2VzLXdpbmRvdy5odHRwcy5odG1sCmluZGV4IGY3MGNmNDA5MzFkYjg4
MzUwYzVmYjBmNWViYjFmYmQxMGY5MTdkYmEuLjg1ZDdmNjQ2N2VlOTg5MDViMTI3YTA3NWQ0ZTJh
MmQzMzEzOTVlNzkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ludGVyZmFjZXMtd2lu
ZG93Lmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvaW50ZXJmYWNlcy13aW5kb3cu
aHR0cHMuaHRtbApAQCAtMSw2ICsxLDUgQEAKIDwhRE9DVFlQRSBodG1sPgogPHRpdGxlPlNlcnZp
Y2UgV29ya2VyOiBJbnRlcmZhY2VzPC90aXRsZT4KLTxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRl
bnQ9ImxvbmciPgogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2Ny
aXB0PgogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2Ny
aXB0PgogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvV2ViSURMUGFyc2VyLmpzIj48L3NjcmlwdD4K
QEAgLTQxLDcgKzQwLDcgQEAgcHJvbWlzZV90ZXN0KGFzeW5jICh0KSA9PiB7CiAgICAgICB0LCAn
cmVzb3VyY2VzL2VtcHR5LXdvcmtlci5qcycsIHNjb3BlKQogICAgIC50aGVuKGZ1bmN0aW9uKHJl
Z2lzdHJhdGlvbikgewogICAgICAgICB0LmFkZF9jbGVhbnVwKGZ1bmN0aW9uKCkgewotICAgICAg
ICAgICAgcmV0dXJuIHJlZ2lzdHJhdGlvbi51bnJlZ2lzdGVyKCk7CisgICAgICAgICAgICByZWdp
c3RyYXRpb24udW5yZWdpc3RlcigpOwogICAgICAgICAgIH0pOwogCiAgICAgICAgIHdpbmRvdy5y
ZWdpc3RyYXRpb25JbnN0YW5jZSA9IHJlZ2lzdHJhdGlvbjsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL2ludmFsaWQtYmxvYnR5cGUuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L2ludmFsaWQtYmxvYnR5cGUuaHR0cHMuaHRtbAppbmRleCAxYzU5MjBmYjAzOTEwMWIxOGZjM2Mz
OWU1M2Y3Y2JiOWI1ZTFlYmZjLi5iOTk0ODU5YzFjNmUzMmYzZmMyYTg0MzBlZjNiZGVjODIzNDI5
MjIyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9pbnZhbGlkLWJsb2J0eXBlLmh0dHBz
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvaW52YWxpZC1ibG9idHlwZS5odHRwcy5odG1s
CkBAIC01LDM2ICs1LDI2IEBACiA8c2NyaXB0IHNyYz0iL2NvbW1vbi9nZXQtaG9zdC1pbmZvLnN1
Yi5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Rlc3QtaGVscGVycy5zdWIu
anMiPjwvc2NyaXB0PgogPHNjcmlwdD4KLXByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7Cithc3lu
Y190ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICB2YXIgU0NPUEUgPSAncmVzb3VyY2VzL2ludmFsaWQt
YmxvYnR5cGUtaWZyYW1lLmh0dHBzLmh0bWwnOwogICAgIHZhciBTQ1JJUFQgPSAncmVzb3VyY2Vz
L2ludmFsaWQtYmxvYnR5cGUtd29ya2VyLmpzJzsKICAgICB2YXIgaG9zdF9pbmZvID0gZ2V0X2hv
c3RfaW5mbygpOwotICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdp
c3Rlcih0LCBTQ1JJUFQsIFNDT1BFKQorICAgIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5k
X3JlZ2lzdGVyKHQsIFNDUklQVCwgU0NPUEUpCiAgICAgICAudGhlbihmdW5jdGlvbihyZWdpc3Ry
YXRpb24pIHsKLSAgICAgICAgICB0LmFkZF9jbGVhbnVwKGZ1bmN0aW9uKCkgewotICAgICAgICAg
ICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcih0LCBTQ09QRSk7Ci0gICAgICAg
ICAgICB9KTsKLQogICAgICAgICAgIHJldHVybiB3YWl0X2Zvcl9zdGF0ZSh0LCByZWdpc3RyYXRp
b24uaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOwogICAgICAgICB9KQogICAgICAgLnRoZW4oZnVu
Y3Rpb24oKSB7IHJldHVybiB3aXRoX2lmcmFtZShTQ09QRSk7IH0pCiAgICAgICAudGhlbihmdW5j
dGlvbihmcmFtZSkgewotICAgICAgICAgIHQuYWRkX2NsZWFudXAoZnVuY3Rpb24oKSB7Ci0gICAg
ICAgICAgICAgIGZyYW1lLnJlbW92ZSgpOwotICAgICAgICAgICAgfSk7Ci0KICAgICAgICAgICB2
YXIgY2hhbm5lbCA9IG5ldyBNZXNzYWdlQ2hhbm5lbCgpOwotICAgICAgICAgIHZhciBvbk1zZyA9
IG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUpIHsKLSAgICAgICAgICAgICAgY2hhbm5lbC5w
b3J0MS5vbm1lc3NhZ2UgPSByZXNvbHZlOworICAgICAgICAgIGNoYW5uZWwucG9ydDEub25tZXNz
YWdlID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgICBhc3NlcnRfZXF1
YWxzKGUuZGF0YS5yZXN1bHRzLCAnZmluaXNoJyk7CisgICAgICAgICAgICAgIGZyYW1lLnJlbW92
ZSgpOworICAgICAgICAgICAgICBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9kb25lKHQs
IFNDT1BFKTsKICAgICAgICAgICAgIH0pOwotCiAgICAgICAgICAgZnJhbWUuY29udGVudFdpbmRv
dy5wb3N0TWVzc2FnZSh7fSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGhvc3RfaW5mb1snSFRUUFNfT1JJR0lOJ10sCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBbY2hhbm5lbC5wb3J0Ml0pOwotICAgICAgICAgIHJldHVybiBvbk1z
ZzsKICAgICAgICAgfSkKLSAgICAgIC50aGVuKGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICBhc3Nl
cnRfZXF1YWxzKGUuZGF0YS5yZXN1bHRzLCAnZmluaXNoJyk7Ci0gICAgICAgIH0pOworICAgICAg
LmNhdGNoKHVucmVhY2hlZF9yZWplY3Rpb24odCkpOwogICB9LCAnVmVyaWZ5IHRoZSByZXNwb25z
ZSBvZiBGZXRjaEV2ZW50IHVzaW5nIFhNTEh0dHBSZXF1ZXN0Jyk7CiA8L3NjcmlwdD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ludmFsaWQtaGVhZGVyLmh0dHBzLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9pbnZhbGlkLWhlYWRlci5odHRwcy5odG1sCmluZGV4IDFiYzk3Njk3OTA0
NmMxMjdhZDNkMmY0MjgyY2UyOTdlOTk3YjkwM2QuLjAyNTZhM2E0YzE1ODJiZDUwNTIzZGI1NzUw
YmIyNjU5YjgxNThhMWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ludmFsaWQtaGVh
ZGVyLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvaW52YWxpZC1oZWFkZXIuaHR0
cHMuaHRtbApAQCAtNSwzNSArNSwyNiBAQAogPHNjcmlwdCBzcmM9Ii9jb21tb24vZ2V0LWhvc3Qt
aW5mby5zdWIuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9InJlc291cmNlcy90ZXN0LWhlbHBl
cnMuc3ViLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+Ci1wcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkg
eworYXN5bmNfdGVzdChmdW5jdGlvbih0KSB7CiAgICAgdmFyIFNDT1BFID0gJ3Jlc291cmNlcy9p
bnZhbGlkLWhlYWRlci1pZnJhbWUuaHR0cHMuaHRtbCc7CiAgICAgdmFyIFNDUklQVCA9ICdyZXNv
dXJjZXMvaW52YWxpZC1oZWFkZXItd29ya2VyLmpzJzsKICAgICB2YXIgaG9zdF9pbmZvID0gZ2V0
X2hvc3RfaW5mbygpOwotICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9y
ZWdpc3Rlcih0LCBTQ1JJUFQsIFNDT1BFKQorICAgIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJf
YW5kX3JlZ2lzdGVyKHQsIFNDUklQVCwgU0NPUEUpCiAgICAgICAudGhlbihmdW5jdGlvbihyZWdp
c3RyYXRpb24pIHsKLSAgICAgICAgICB0LmFkZF9jbGVhbnVwKGZ1bmN0aW9uKCkgewotICAgICAg
ICAgICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcih0LCBTQ09QRSk7Ci0gICAg
ICAgICAgICB9KTsKLQogICAgICAgICAgIHJldHVybiB3YWl0X2Zvcl9zdGF0ZSh0LCByZWdpc3Ry
YXRpb24uaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOwogICAgICAgICB9KQogICAgICAgLnRoZW4o
ZnVuY3Rpb24oKSB7IHJldHVybiB3aXRoX2lmcmFtZShTQ09QRSk7IH0pCiAgICAgICAudGhlbihm
dW5jdGlvbihmcmFtZSkgewotICAgICAgICAgIHQuYWRkX2NsZWFudXAoZnVuY3Rpb24oKSB7Ci0g
ICAgICAgICAgICAgIGZyYW1lLnJlbW92ZSgpOwotICAgICAgICAgICAgfSk7Ci0KICAgICAgICAg
ICB2YXIgY2hhbm5lbCA9IG5ldyBNZXNzYWdlQ2hhbm5lbCgpOwotICAgICAgICAgIHZhciBvbk1z
ZyA9IG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUpIHsKLSAgICAgICAgICAgICAgY2hhbm5l
bC5wb3J0MS5vbm1lc3NhZ2UgPSByZXNvbHZlOworICAgICAgICAgIGNoYW5uZWwucG9ydDEub25t
ZXNzYWdlID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgICBhc3NlcnRf
ZXF1YWxzKGUuZGF0YS5yZXN1bHRzLCAnZmluaXNoJyk7CisgICAgICAgICAgICAgIGZyYW1lLnJl
bW92ZSgpOworICAgICAgICAgICAgICBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9kb25l
KHQsIFNDT1BFKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICAgIGZyYW1lLmNvbnRlbnRXaW5k
b3cucG9zdE1lc3NhZ2Uoe30sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBob3N0X2luZm9bJ0hUVFBTX09SSUdJTiddLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgW2NoYW5uZWwucG9ydDJdKTsKLSAgICAgICAgICByZXR1cm4gb25N
c2c7CiAgICAgICAgIH0pCi0gICAgICAudGhlbihmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgYXNz
ZXJ0X2VxdWFscyhlLmRhdGEucmVzdWx0cywgJ2ZpbmlzaCcpOwotICAgICAgICB9KTsKKyAgICAg
IC5jYXRjaCh1bnJlYWNoZWRfcmVqZWN0aW9uKHQpKTsKICAgfSwgJ1ZlcmlmeSB0aGUgcmVzcG9u
c2Ugb2YgRmV0Y2hFdmVudCB1c2luZyBYTUxIdHRwUmVxdWVzdCcpOwogPC9zY3JpcHQ+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9pc28tbGF0aW4xLWhlYWRlci5odHRwcy5odG1sIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvaXNvLWxhdGluMS1oZWFkZXIuaHR0cHMuaHRtbAppbmRleCBjMjdh
NWY0OGE1YjllOTM4NGE1YzkxMjlkMDI4ODc2MWIwZGY5Y2Q3Li5hZDBhYjU5Yzc3NTZlN2Q5ZDA4
ZWZiMDM1MzYyODA0NTY1MWE1OTBjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9pc28t
bGF0aW4xLWhlYWRlci5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2lzby1sYXRp
bjEtaGVhZGVyLmh0dHBzLmh0bWwKQEAgLTUsMTYgKzUsMTIgQEAKIDxzY3JpcHQgc3JjPSIvY29t
bW9uL2dldC1ob3N0LWluZm8uc3ViLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvdGVzdC1oZWxwZXJzLnN1Yi5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgotcHJvbWlzZV90ZXN0
KGZ1bmN0aW9uKHQpIHsKK2FzeW5jX3Rlc3QoZnVuY3Rpb24odCkgewogICAgIHZhciBTQ09QRSA9
ICdyZXNvdXJjZXMvaXNvLWxhdGluMS1oZWFkZXItaWZyYW1lLmh0bWwnOwogICAgIHZhciBTQ1JJ
UFQgPSAncmVzb3VyY2VzL2lzby1sYXRpbjEtaGVhZGVyLXdvcmtlci5qcyc7CiAgICAgdmFyIGhv
c3RfaW5mbyA9IGdldF9ob3N0X2luZm8oKTsKLSAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5y
ZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgU0NSSVBULCBTQ09QRSkKKyAgICBzZXJ2aWNlX3dvcmtl
cl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCBTQ1JJUFQsIFNDT1BFKQogICAgICAgLnRoZW4o
ZnVuY3Rpb24ocmVnaXN0cmF0aW9uKSB7Ci0gICAgICAgICAgdC5hZGRfY2xlYW51cChmdW5jdGlv
bigpIHsKLSAgICAgICAgICAgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXIodCwg
U0NPUEUpOwotICAgICAgICAgICAgfSk7Ci0KICAgICAgICAgICByZXR1cm4gd2FpdF9mb3Jfc3Rh
dGUodCwgcmVnaXN0cmF0aW9uLmluc3RhbGxpbmcsICdhY3RpdmF0ZWQnKTsKICAgICAgICAgfSkK
ICAgICAgIC50aGVuKGZ1bmN0aW9uKCkgeyByZXR1cm4gd2l0aF9pZnJhbWUoU0NPUEUpOyB9KQpA
QCAtMjMsMTggKzE5LDE0IEBAIHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7CiAgICAgICAgICAg
dC5hZGRfY2xlYW51cChmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgZnJhbWUucmVtb3ZlKCk7
CiAgICAgICAgICAgICB9KTsKLQotICAgICAgICAgIHZhciBvbk1zZyA9IG5ldyBQcm9taXNlKGZ1
bmN0aW9uKHJlc29sdmUpIHsKLSAgICAgICAgICAgICAgY2hhbm5lbC5wb3J0MS5vbm1lc3NhZ2Ug
PSByZXNvbHZlOworICAgICAgICAgIGNoYW5uZWwucG9ydDEub25tZXNzYWdlID0gdC5zdGVwX2Z1
bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUuZGF0YS5yZXN1
bHRzLCAnZmluaXNoJyk7CisgICAgICAgICAgICAgIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJf
YW5kX2RvbmUodCwgU0NPUEUpOwogICAgICAgICAgICAgfSk7Ci0KICAgICAgICAgICBmcmFtZS5j
b250ZW50V2luZG93LnBvc3RNZXNzYWdlKHt9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaG9zdF9pbmZvWydIVFRQU19PUklHSU4nXSwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjaGFubmVsLnBvcnQyXSk7Ci0gICAgICAgICAg
cmV0dXJuIG9uTXNnOwogICAgICAgICB9KQotICAgICAgLnRoZW4oZnVuY3Rpb24oZSkgewotICAg
ICAgICAgIGFzc2VydF9lcXVhbHMoZS5kYXRhLnJlc3VsdHMsICdmaW5pc2gnKTsKLSAgICAgICAg
fSk7CisgICAgICAuY2F0Y2godW5yZWFjaGVkX3JlamVjdGlvbih0KSk7CiAgIH0sICdWZXJpZnkg
dGhlIHJlc3BvbnNlIG9mIEZldGNoRXZlbnQgdXNpbmcgWE1MSHR0cFJlcXVlc3QnKTsKIDwvc2Ny
aXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvbXVsdGlwbGUtdXBkYXRlLmh0dHBz
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9tdWx0aXBsZS11cGRhdGUuaHR0cHMuaHRtbAppbmRl
eCA2YTgzZjczYTA1NGY4YTUwMjg0YWU5YjU1YmJhOWNkZTRkNzRjMTA4Li44NGFhYzk1ODNiOTBi
MWNhYThmMDhiNjM2Yjk5OTQ5NDIzMDRlZmViIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9tdWx0aXBsZS11cGRhdGUuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9tdWx0
aXBsZS11cGRhdGUuaHR0cHMuaHRtbApAQCAtMTUsMTAgKzE1LDYgQEAgcHJvbWlzZV90ZXN0KGZ1
bmN0aW9uKHQpIHsKIAogICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9y
ZWdpc3Rlcih0LCBleHBlY3RlZF91cmwsIHNjb3BlKQogICAgICAgLnRoZW4oZnVuY3Rpb24ocikg
ewotICAgICAgICAgIHQuYWRkX2NsZWFudXAoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgIHJl
dHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyKHQsIHNjb3BlKTsKLSAgICAgICAgICAgIH0p
OwotCiAgICAgICAgICAgcmVnaXN0cmF0aW9uID0gcjsKICAgICAgICAgICByZXR1cm4gd2FpdF9m
b3Jfc3RhdGUodCwgcmVnaXN0cmF0aW9uLmluc3RhbGxpbmcsICdhY3RpdmF0ZWQnKTsKICAgICAg
ICAgfSkKQEAgLTg5LDYgKzg1LDggQEAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICAg
ICAgICAgICAgICAgICAgICAgICd3YWl0aW5nIHNob3VsZCBiZSBudWxsIGFmdGVyIGFjdGl2YXRl
ZC4nKTsKICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi5hY3RpdmUuc2NyaXB0
VVJMLCBleHBlY3RlZF91cmwsCiAgICAgICAgICAgICAgICAgICAgICAgICAnYWN0aXZlIHNob3Vs
ZCBzdGlsbCBleGlzdCBhZnRlciB1cGRhdGUgZm91bmQuJyk7CisKKyAgICAgICAgICByZXR1cm4g
c2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfZG9uZSh0LCBzY29wZSk7CiAgICAgICAgIH0p
OwogICB9LCAnVHJpZ2dlciBtdWx0aXBsZSB1cGRhdGVzLicpOwogPC9zY3JpcHQ+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9uYXZpZ2F0aW9uLXJlZGlyZWN0Lmh0dHBzLmh0bWwgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci9uYXZpZ2F0aW9uLXJlZGlyZWN0Lmh0dHBzLmh0bWwKaW5kZXggZDdk
M2Q1MjU5YTQ1NGQ5MjNkMWU4OTAwNGZjZjU1Y2U3ZTJlNmJkYS4uMGYxZDM3N2E1N2NmYzA3ODIx
MmNjMGEwNjlkMDI4MGY4ODFiNTI2MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvbmF2
aWdhdGlvbi1yZWRpcmVjdC5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL25hdmln
YXRpb24tcmVkaXJlY3QuaHR0cHMuaHRtbApAQCAtMSwxMSArMSw2IEBACiA8IURPQ1RZUEUgaHRt
bD4KIDx0aXRsZT5TZXJ2aWNlIFdvcmtlcjogTmF2aWdhdGlvbiByZWRpcmVjdGlvbjwvdGl0bGU+
CiA8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIj4KLTwhLS0gZW1wdHkgdmFyaWFu
dCB0ZXN0cyBkb2N1bWVudC5sb2NhdGlvbiBhbmQgaW50ZXJjZXB0ZWQgVVJMcyAtLT4KLTxtZXRh
IG5hbWU9InZhcmlhbnQiIGNvbnRlbnQ9IiI+Ci08IS0tIGNsaWVudCB2YXJpYW50IHRlc3RzIHRo
ZSBDbGllbnRzIEFQSSAocmVzdWx0aW5nQ2xpZW50SWQgYW5kIENsaWVudC51cmwpIC0tPgotPG1l
dGEgbmFtZT0idmFyaWFudCIgY29udGVudD0iP2NsaWVudCI+Ci0KIDxzY3JpcHQgc3JjPSIvcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIvY29tbW9uL2dl
dC1ob3N0LWluZm8uc3ViLmpzIj48L3NjcmlwdD4KQEAgLTU1LDcgKzUwLDcgQEAgcHJvbWlzZV90
ZXN0KGFzeW5jIHQgID0+IHsKICAgICAgIHdhaXRfZm9yX3N0YXRlKHQsIHdvcmtlcnNbMV0sICdh
Y3RpdmF0ZWQnKSwKICAgICAgIC8vIFRoaXMgcHJvbWlzZSB3aWxsIHJlc29sdmUgd2hlbiB8d2Fp
dF9mb3Jfd29ya2VyX3Byb21pc2V8CiAgICAgICAvLyBpbiBPVEhFUl9PUklHSU5fSUZSQU1FX1VS
TCByZXNvbHZlcy4KLSAgICAgIHNlbmRfdG9faWZyYW1lKG90aGVyX29yaWdpbl9mcmFtZSwge2Nv
bW1hbmQ6ICd3YWl0X2Zvcl93b3JrZXInfSldKTsKKyAgICAgIHNlbmRfdG9faWZyYW1lKG90aGVy
X29yaWdpbl9mcmFtZSwgJ3dhaXRfZm9yX3dvcmtlcicpXSk7CiB9LCAnaW5pdGlhbGl6ZSBnbG9i
YWwgc3RhdGUnKTsKIAogZnVuY3Rpb24gZ2V0X2VmZmVjdGl2ZV93b3JrZXIocmVnaXN0cmF0aW9u
KSB7CkBAIC03MiwyMTcgKzY3LDQwIEBAIGFzeW5jIGZ1bmN0aW9uIGNoZWNrX2FsbF9pbnRlcmNl
cHRlZF91cmxzKGV4cGVjdGVkX3VybHMpIHsKICAgdXJscy5wdXNoKGF3YWl0IGdldF9pbnRlcmNl
cHRlZF91cmxzKHdvcmtlcnNbMF0pKTsKICAgdXJscy5wdXNoKGF3YWl0IGdldF9pbnRlcmNlcHRl
ZF91cmxzKHdvcmtlcnNbMV0pKTsKICAgLy8gR2V0cyB0aGUgcmVxdWVzdCBVUkxzIHdoaWNoIGFy
ZSBpbnRlcmNlcHRlZCBieSBPVEhFUl9PUklHSU5fU0NPUEUncwotICAvLyBTVy4gVGhpcyBwcm9t
aXNlIHdpbGwgcmVzb2x2ZSB3aGVuIGdldF9yZXF1ZXN0X2luZm9zKCkgaW4KKyAgLy8gU1cuIFRo
aXMgcHJvbWlzZSB3aWxsIHJlc29sdmUgd2hlbiBnZXRfaW50ZXJjZXB0ZWRfdXJscygpIGluCiAg
IC8vIE9USEVSX09SSUdJTl9JRlJBTUVfVVJMIHJlc29sdmVzLgotICBjb25zdCByZXF1ZXN0X2lu
Zm9zID0gYXdhaXQgc2VuZF90b19pZnJhbWUob3RoZXJfb3JpZ2luX2ZyYW1lLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2NvbW1hbmQ6ICdnZXRfcmVxdWVz
dF9pbmZvcyd9KTsKLSAgdXJscy5wdXNoKHJlcXVlc3RfaW5mb3MubWFwKGluZm8gPT4geyByZXR1
cm4gaW5mby51cmw7IH0pKTsKLQorICB1cmxzLnB1c2goYXdhaXQgc2VuZF90b19pZnJhbWUob3Ro
ZXJfb3JpZ2luX2ZyYW1lLCAnZ2V0X2ludGVyY2VwdGVkX3VybHMnKSk7CiAgIGFzc2VydF9vYmpl
Y3RfZXF1YWxzKHVybHMsIGV4cGVjdGVkX3VybHMsICdJbnRlcmNlcHRlZCBVUkxzIHNob3VsZCBt
YXRjaC4nKTsKIH0KIAotLy8gQ2hlY2tzIHxjbGllbnRzfCByZXR1cm5lZCBmcm9tIGEgd29ya2Vy
LiBPbmx5IHRoZSBjbGllbnQgbWF0Y2hpbmcKLS8vIHxleHBlY3RlZF9maW5hbF9jbGllbnRfdGFn
fCBzaG91bGQgYmUgZm91bmQuIFJldHVybnMgdHJ1ZSBpZiBhIGNsaWVudCB3YXMKLS8vIGZvdW5k
LiBOb3RlIHRoYXQgdGhlIGZpbmFsIGNsaWVudCBpcyBub3QgbmVjZXNzYXJpbHkgZm91bmQgYnkg
dGhpcyB3b3JrZXIsCi0vLyBpZiB0aGUgY2xpZW50IGlzIGNyb3NzLW9yaWdpbi4KLS8vCi0vLyB8
Y2xpZW50c3wgaXMgYW4gb2JqZWN0IGxpa2U6Ci0vLyB7eDoge2ZvdW5kOiB0cnVlLCBpZDogaWQx
LCB1cmw6IHVybDF9LCBiOiB7Zm91bmQ6IGZhbHNlfX0KLWZ1bmN0aW9uIGNoZWNrX2NsaWVudHMo
Y2xpZW50cywKLSAgICAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRfaWQsCi0gICAgICAgICAg
ICAgICAgICAgICAgIGV4cGVjdGVkX3VybCwKLSAgICAgICAgICAgICAgICAgICAgICAgZXhwZWN0
ZWRfZmluYWxfY2xpZW50X3RhZywKLSAgICAgICAgICAgICAgICAgICAgICAgd29ya2VyX25hbWUp
IHsKLSAgbGV0IGZvdW5kID0gZmFsc2U7Ci0gIE9iamVjdC5rZXlzKGNsaWVudHMpLmZvckVhY2go
a2V5ID0+IHsKLSAgICBjb25zdCBpbmZvID0gY2xpZW50c1trZXldOwotICAgIGlmIChpbmZvLmZv
dW5kKSB7Ci0gICAgICBhc3NlcnRfdHJ1ZSghIWV4cGVjdGVkX2ZpbmFsX2NsaWVudF90YWcsCi0g
ICAgICAgICAgICAgICAgICBgJHt3b3JrZXJfbmFtZX0gY2xpZW50IHRhZyBleGlzdHNgKTsKLSAg
ICAgIGFzc2VydF9lcXVhbHMoa2V5LCBleHBlY3RlZF9maW5hbF9jbGllbnRfdGFnLAotICAgICAg
ICAgICAgICAgICAgICBgJHt3b3JrZXJfbmFtZX0gY2xpZW50IHRhZyBtYXRjaGVzYCk7Ci0gICAg
ICBhc3NlcnRfZXF1YWxzKGluZm8uaWQsIGV4cGVjdGVkX2lkLCBgJHt3b3JrZXJfbmFtZX0gY2xp
ZW50IGlkYCk7Ci0gICAgICBhc3NlcnRfZXF1YWxzKGluZm8udXJsLCBleHBlY3RlZF91cmwsIGAk
e3dvcmtlcl9uYW1lfSBjbGllbnQgdXJsYCk7Ci0gICAgICBmb3VuZCA9IHRydWU7Ci0gICAgfQot
ICB9KTsKLSAgcmV0dXJuIGZvdW5kOwotfQotCi1mdW5jdGlvbiBjaGVja19yZXN1bHRpbmdfY2xp
ZW50X2lkcyhpbmZvcywgZXhwZWN0ZWRfaW5mb3MsIGFjdHVhbF9pZHMsIHdvcmtlcikgewotICBh
c3NlcnRfZXF1YWxzKGluZm9zLmxlbmd0aCwgZXhwZWN0ZWRfaW5mb3MubGVuZ3RoLAotICAgICAg
ICAgICAgICAgIGByZXF1ZXN0IGxlbmd0aCBmb3IgJHt3b3JrZXJ9YCk7Ci0gIGZvciAodmFyIGkg
PSAwOyBpIDwgaW5mb3MubGVuZ3RoOyBpKyspIHsKLSAgICBjb25zdCB0YWcgPSBleHBlY3RlZF9p
bmZvc1tpXS5yZXN1bHRpbmdDbGllbnRJZFRhZzsKLSAgICBjb25zdCB1cmwgPSBleHBlY3RlZF9p
bmZvc1tpXS51cmw7Ci0gICAgY29uc3QgYWN0dWFsX2lkID0gaW5mb3NbaV0ucmVzdWx0aW5nQ2xp
ZW50SWQ7Ci0gICAgY29uc3QgZXhwZWN0ZWRfaWQgPSBhY3R1YWxfaWRzW3RhZ107Ci0gICAgYXNz
ZXJ0X2VxdWFscyh0eXBlb2YoYWN0dWFsX2lkKSwgJ3N0cmluZycsCi0gICAgICAgICAgICAgICAg
ICBgcmVzdWx0aW5nQ2xpZW50SWQgZm9yICR7dXJsfSByZXF1ZXN0IHRvICR7d29ya2VyfWApOwot
ICAgIGlmIChleHBlY3RlZF9pZCkgewotICAgICAgYXNzZXJ0X2VxdWFscyhhY3R1YWxfaWQsIGV4
cGVjdGVkX2lkLAotICAgICAgICAgICAgICAgICAgICBgcmVzdWx0aW5nQ2xpZW50SWQgZm9yICR7
dXJsfSByZXF1ZXN0IHRvICR7d29ya2VyfWApOwotICAgIH0gZWxzZSB7Ci0gICAgICBhY3R1YWxf
aWRzW3RhZ10gPSBhY3R1YWxfaWQ7Ci0gICAgfQotICB9Ci19Ci0KIC8vIENyZWF0ZXMgYW4gaWZy
YW1lIGFuZCBuYXZpZ2F0ZXMgdG8gfHVybHwsIHdoaWNoIGlzIGV4cGVjdGVkIHRvIHN0YXJ0IGEg
Y2hhaW4KIC8vIG9mIHJlZGlyZWN0cy4KIC8vIC0gfGV4cGVjdGVkX2xhc3RfdXJsfCBpcyB0aGUg
ZXhwZWN0ZWQgd2luZG93LmxvY2F0aW9uIGFmdGVyIHRoZQogLy8gICBuYXZpZ2F0aW9uLgotLy8K
LS8vIC0gfGV4cGVjdGVkX3JlcXVlc3RfaW5mb3N8IGlzIHRoZSBleHBlY3RlZCByZXF1ZXN0cyB0
aGF0IHRoZSBzZXJ2aWNlIHdvcmtlcnMKLS8vICAgd2VyZSBkaXNwYXRjaGVkIGZldGNoIGV2ZW50
cyBmb3IuIFRoZSBmb3JtYXQgaXM6CisvLyAtIHxleHBlY3RlZF9pbnRlcmNlcHRlZF91cmxzfCBp
cyB0aGUgZXhwZWN0ZWQgVVJMcyB0aGF0IHRoZSBzZXJ2aWNlCisvLyAgIHdvcmtlcnMgd2VyZSBk
aXNwYXRjaGVkIGZldGNoIGV2ZW50cyBmb3IuIFRoZSBmb3JtYXQgaXM6CiAvLyAgIFsKLS8vICAg
ICBbCi0vLyAgICAgICAvLyBSZXF1ZXN0cyByZWNlaXZlZCBieSB3b3JrZXJzWzBdLgotLy8gICAg
ICAge3VybDogdXJsMSwgcmVzdWx0aW5nQ2xpZW50SWRUYWc6ICdhJ30sCi0vLyAgICAgICB7dXJs
OiB1cmwyLCByZXN1bHRpbmdDbGllbnRJZFRhZzogJ2EnfQotLy8gICAgIF0sCi0vLyAgICAgWwot
Ly8gICAgICAgLy8gUmVxdWVzdHMgcmVjZWl2ZWQgYnkgd29ya2Vyc1sxXS4KLS8vICAgICAgIHt1
cmw6IHVybDMsIHJlc3VsdGluZ0NsaWVudElkVGFnOiAnYSd9Ci0vLyAgICAgXSwKLS8vICAgICBb
Ci0vLyAgICAgICAvLyBSZXF1ZXN0cyByZWNlaXZlZCBieSB0aGUgY3Jvc3Mtb3JpZ2luIHdvcmtl
ci4KLS8vICAgICAgIHt1cmw6IHVybDQsIHJlc3VsdGluZ0NsaWVudElkVGFnOiAneCd9Ci0vLyAg
ICAgICB7dXJsOiB1cmw1LCByZXN1bHRpbmdDbGllbnRJZFRhZzogJ3gnfQotLy8gICAgIF0KKy8v
ICAgICBbdXJscyBmcm9tIHdvcmtlcnNbMF1dLAorLy8gICAgIFt1cmxzIGZyb20gd29ya2Vyc1sx
XV0sCisvLyAgICAgW3VybHMgZnJvbSBjcm9zcy1vcmlnaW4gd29ya2VyXQogLy8gICBdCi0vLyAg
IEhlcmUsIHx1cmx8IGlzIHxldmVudC5yZXF1ZXN0LnVybHwgYW5kIHxyZXN1bHRpbmdDbGllbnRJ
ZFRhZ3wgcmVwcmVzZW50cwotLy8gICB8ZXZlbnQucmVzdWx0aW5nQ2xpZW50SWR8LiBTaW5jZSB0
aGUgYWN0dWFsIGNsaWVudCBpZHMgYXJlIG5vdCBrbm93bgotLy8gICBiZWZvcmVoYW5kLCB0aGUg
ZXhwZWN0YXRpb24gaXNuJ3QgdGhlIGxpdGVyYWwgZXhwZWN0ZWQgdmFsdWUsIGJ1dCBhbGwgZXF1
YWwKLS8vICAgdGFncyBtdXN0IG1hcCB0byB0aGUgc2FtZSBhY3R1YWwgaWQuCi0vLwotLy8gLSB8
ZXhwZWN0ZWRfZmluYWxfY2xpZW50X3RhZ3wgaXMgdGhlIHJlc3VsdGluZ0NsaWVudElkVGFnIHRo
YXQgaXMKLS8vICAgZXhwZWN0ZWQgdG8gbWFwIHRvIHRoZSBjcmVhdGVkIGNsaWVudCdzIGlkLiBU
aGlzIGlzIG51bGwgaWYgdGhlcmUKLS8vICAgaXMgbm8gc3VjaCB0YWcsIHdoaWNoIGNhbiBoYXBw
ZW4gd2hlbiB0aGUgZmluYWwgcmVxdWVzdCB3YXMgYSBjcm9zcy1vcmlnaW4KLS8vICAgcmVkaXJl
Y3QgdG8gb3V0LXNjb3BlLCBzbyBubyB3b3JrZXIgcmVjZWl2ZWQgYSBmZXRjaCBldmVudCB3aG9z
ZQotLy8gICByZXN1bHRpbmdDbGllbnRJZCBpcyB0aGUgaWQgb2YgdGhlIHJlc3VsdGluZyBjbGll
bnQuCi0vLwotLy8gSW4gdGhlIGV4YW1wbGUgYWJvdmU6Ci0vLyAtIHdvcmtlcnNbMF0gcmVjZWl2
ZXMgdHdvIHJlcXVlc3RzIHdpdGggdGhlIHNhbWUgcmVzdWx0aW5nQ2xpZW50SWQuCi0vLyAtIHdv
cmtlcnNbMV0gcmVjZWl2ZXMgb25lIHJlcXVlc3QgYWxzbyB3aXRoIHRoYXQgcmVzdWx0aW5nQ2xp
ZW50SWQuCi0vLyAtIFRoZSBjcm9zcy1vcmlnaW4gd29ya2VyIHJlY2VpdmVzIHR3byByZXF1ZXN0
cyB3aXRoIHRoZSBzYW1lCi0vLyAgIHJlc3VsdGluZ0NsaWVudElkIHdoaWNoIGRpZmZlcnMgZnJv
bSB0aGUgcHJldmlvdXMgb25lLgotLy8gLSBBc3N1bWluZyB8ZXhwZWN0ZWRfZmluYWxfY2xpZW50
X3RhZ3wgaXMgJ3gnLCB0aGVuIHRoZSBjcmVhdGVkCi0vLyAgIGNsaWVudCBoYXMgdGhlIGlkIHNl
ZW4gYnkgdGhlIGNyb3NzLW9yaWdpbiB3b3JrZXIgYWJvdmUuCiBmdW5jdGlvbiByZWRpcmVjdF90
ZXN0KHVybCwKICAgICAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRfbGFzdF91cmwsCi0gICAg
ICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkX3JlcXVlc3RfaW5mb3MsCi0gICAgICAgICAgICAg
ICAgICAgICAgIGV4cGVjdGVkX2ZpbmFsX2NsaWVudF90YWcsCisgICAgICAgICAgICAgICAgICAg
ICAgIGV4cGVjdGVkX2ludGVyY2VwdGVkX3VybHMsCiAgICAgICAgICAgICAgICAgICAgICAgIHRl
c3RfbmFtZSkgewogICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgY29uc3QgbWVzc2Fn
ZV9wcm9taXNlID0gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7CisgICAgICAgIC8vIEEgbWVzc2Fn
ZSB3aXRoIElEICdsYXN0X3VybCcgd2lsbCBiZSBzZW50IGZyb20gdGhlIGlmcmFtZS4KKyAgICAg
ICAgbWVzc2FnZV9yZXNvbHZlcnNbJ2xhc3RfdXJsJ10gPSByZXNvbHZlOworICAgIH0pOwogICAg
IGNvbnN0IGZyYW1lID0gYXdhaXQgd2l0aF9pZnJhbWUodXJsKTsKLSAgICB0LmFkZF9jbGVhbnVw
KCgpID0+IHsgZnJhbWUucmVtb3ZlKCk7IH0pOwotCi0gICAgLy8gU3dpdGNoIG9uIHZhcmlhbnQu
Ci0gICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLnNlYXJjaCA9PSAnP2NsaWVudCcpIHsKLSAgICAg
IHJldHVybiBjbGllbnRfdmFyaWFudF90ZXN0KHVybCwgZXhwZWN0ZWRfbGFzdF91cmwsIGV4cGVj
dGVkX3JlcXVlc3RfaW5mb3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBl
Y3RlZF9maW5hbF9jbGllbnRfdGFnLCB0ZXN0X25hbWUpOwotICAgIH0KLQotICAgIHJldHVybiBk
ZWZhdWx0X3ZhcmlhbnRfdGVzdCh1cmwsIGV4cGVjdGVkX2xhc3RfdXJsLCBleHBlY3RlZF9yZXF1
ZXN0X2luZm9zLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcmFtZSwgdGVzdF9u
YW1lKTsKKyAgICBmcmFtZS5yZW1vdmUoKTsKKyAgICBhd2FpdCBjaGVja19hbGxfaW50ZXJjZXB0
ZWRfdXJscyhleHBlY3RlZF9pbnRlcmNlcHRlZF91cmxzKTsKKyAgICBjb25zdCBsYXN0X3VybCA9
IGF3YWl0IG1lc3NhZ2VfcHJvbWlzZTsKKyAgICBhc3NlcnRfZXF1YWxzKGxhc3RfdXJsLCBleHBl
Y3RlZF9sYXN0X3VybCwgJ0xhc3QgVVJMIHNob3VsZCBtYXRjaC4nKTsKICAgfSwgdGVzdF9uYW1l
KTsKIH0KIAotLy8gVGhlIGRlZmF1bHQgdmFyaWFudCB0ZXN0cyB0aGUgcmVxdWVzdCBpbnRlcmNl
cHRpb24gY2hhaW4gYW5kCi0vLyByZXN1bHRpbmcgZG9jdW1lbnQubG9jYXRpb24uCi1hc3luYyBm
dW5jdGlvbiBkZWZhdWx0X3ZhcmlhbnRfdGVzdCh1cmwsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBleHBlY3RlZF9sYXN0X3VybCwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGV4cGVjdGVkX3JlcXVlc3RfaW5mb3MsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBmcmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHRlc3RfbmFtZSkgewotICBjb25zdCBleHBlY3RlZF9pbnRlcmNlcHRlZF91cmxzID0gZXhw
ZWN0ZWRfcmVxdWVzdF9pbmZvcy5tYXAoCi0gICAgICByZXF1ZXN0c19mb3Jfd29ya2VyID0+IHsK
LSAgICByZXR1cm4gcmVxdWVzdHNfZm9yX3dvcmtlci5tYXAoaW5mbyA9PiB7Ci0gICAgICByZXR1
cm4gaW5mby51cmw7Ci0gICAgfSk7Ci0gIH0pOwotICBhd2FpdCBjaGVja19hbGxfaW50ZXJjZXB0
ZWRfdXJscyhleHBlY3RlZF9pbnRlcmNlcHRlZF91cmxzKTsKLSAgY29uc3QgbGFzdF91cmwgPSBh
d2FpdCBzZW5kX3RvX2lmcmFtZShmcmFtZSwgJ2dldExvY2F0aW9uJyk7Ci0gIGFzc2VydF9lcXVh
bHMobGFzdF91cmwsIGV4cGVjdGVkX2xhc3RfdXJsLCAnTGFzdCBVUkwgc2hvdWxkIG1hdGNoLicp
OwotfQotCi0vLyBUaGUgImNsaWVudCIgdmFyaWFudCB0ZXN0cyB0aGUgQ2xpZW50cyBBUEkgdXNp
bmcgcmVzdWx0aW5nQ2xpZW50SWQuCi1hc3luYyBmdW5jdGlvbiBjbGllbnRfdmFyaWFudF90ZXN0
KHVybCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRfbGFzdF91
cmwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkX3JlcXVlc3Rf
aW5mb3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkX2ZpbmFs
X2NsaWVudF90YWcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfbmFt
ZSkgewotICAvLyBSZXF1ZXN0IGluZm9zIGlzIGFuIGFycmF5IGxpa2U6Ci0gIC8vIFsKLSAgLy8g
ICBbe3VybDogdXJsMSwgcmVzdWx0aW5nQ2xpZW50SWRUYWc6IHRhZzF9XSwKLSAgLy8gICBbe3Vy
bDogdXJsMiwgcmVzdWx0aW5nQ2xpZW50SWRUYWc6IHRhZzJ9XSwKLSAgLy8gICBbe3VybDogdXJs
MzogcmVzdWx0aW5nQ2xpZW50SWRUYWc6IHRhZzN9XQotICAvLyBdCi0gIGNvbnN0IHJlcXVlc3RJ
bmZvcyA9IGF3YWl0IGdldF9hbGxfcmVxdWVzdF9pbmZvcygpOwotCi0gIC8vIFdlIGNoZWNrIHRo
ZSBhY3R1YWwgaW5mb3MgYWdhaW5zdCB0aGUgZXhwZWN0ZWQgb25lcywgYW5kIGxlYXJuIHRoZQot
ICAvLyBhY3R1YWwgaWRzIGFzIHdlIGdvLgotICBjb25zdCBhY3R1YWxfaWRzID0ge307Ci0gIGNo
ZWNrX3Jlc3VsdGluZ19jbGllbnRfaWRzKHJlcXVlc3RJbmZvc1swXSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZXhwZWN0ZWRfcmVxdWVzdF9pbmZvc1swXSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYWN0dWFsX2lkcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
J3dvcmtlcjAnKTsKLSAgY2hlY2tfcmVzdWx0aW5nX2NsaWVudF9pZHMocmVxdWVzdEluZm9zWzFd
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBlY3RlZF9yZXF1ZXN0X2luZm9zWzFd
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3R1YWxfaWRzLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAnd29ya2VyMScpOwotICBjaGVja19yZXN1bHRpbmdfY2xpZW50X2lk
cyhyZXF1ZXN0SW5mb3NbMl0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVk
X3JlcXVlc3RfaW5mb3NbMl0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdHVhbF9p
ZHMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjcm9zc09yaWdpbldvcmtlcicpOwot
Ci0gIC8vIE5vdyB8YWN0dWFsX2lkc3wgbWFwcyB0YWcgdG8gYWN0dWFsIGlkOgotICAvLyB7eDog
aWQxLCBiOiBpZDIsIGM6IGlkM30KLSAgLy8gQXNrIGVhY2ggd29ya2VyIHRvIHRyeSB0byByZXNv
bHZlIHRoZSBhY3R1YWwgaWRzIHRvIGNsaWVudHMuCi0gIC8vIE9ubHkgfGV4cGVjdGVkX2ZpbmFs
X2NsaWVudF90YWd8IHNob3VsZCByZXNvbHZlIHRvIGEgY2xpZW50LgotICBjb25zdCBjbGllbnRf
aW5mb3MgPSBhd2FpdCBnZXRfYWxsX2NsaWVudHMoYWN0dWFsX2lkcyk7Ci0KLSAgLy8gQ2xpZW50
IGluZm9zIGlzIGFuIG9iamVjdCBsaWtlOgotICAvLyB7Ci0gIC8vICAgd29ya2VyMDoge3g6IHtm
b3VuZDogdHJ1ZSwgaWQ6IGlkMSwgdXJsOiB1cmwxfSwgYjoge2ZvdW5kOiBmYWxzZX19LAotICAv
LyAgIHdvcmtlcjE6IHt4OiB7Zm91bmQ6IHRydWUsIGlkOiBpZDEsIHVybDogdXJsMX19LAotICAv
LyAgIGNyb3NzT3JpZ2luV29ya2VyOiB7eDoge2ZvdW5kOiBmYWxzZX19LCB7Yjoge2ZvdW5kOiBm
YWxzZX19Ci0gIC8vIH0KLSAgLy8KLSAgLy8gTm93IGNoZWNrIGVhY2ggY2xpZW50IGluZm8uIGNo
ZWNrX2NsaWVudHMoKSB2ZXJpZmllcyBlYWNoIGluZm86IG9ubHkKLSAgLy8gfGV4cGVjdGVkX2Zp
bmFsX2NsaWVudF90YWd8IHNob3VsZCBldmVyIGJlIGZvdW5kIGFuZCB0aGUgZm91bmQgY2xpZW50
Ci0gIC8vIHNob3VsZCBoYXZlIHRoZSBleHBlY3RlZCB1cmwgYW5kIGlkLiBBIHdyaW5rbGUgaXMg
dGhhdCBub3QgYWxsIHdvcmtlcnMKLSAgLy8gd2lsbCBmaW5kIHRoZSBjbGllbnQsIGlmIHRoZXkg
YXJlIGNyb3NzLW9yaWdpbiB0byB0aGUgY2xpZW50LiBUaGlzCi0gIC8vIG1lYW5zIGNoZWNrX2Ns
aWVudHMoKSB0cml2aWFsbHkgcGFzc2VzIGlmIG5vIGNsaWVudHMgYXJlIGZvdW5kLiBTbwotICAv
LyBhZGRpdGlvbmFsbHkgY2hlY2sgdGhhdCBhdCBsZWFzdCBvbmUgd29ya2VyIGZvdW5kIHRoZSBj
bGllbnQgKHxmb3VuZHwpLAotICAvLyBpZiB0aGF0IHdhcyBleHBlY3RlZCAofGV4cGVjdF9mb3Vu
ZHwpLgotICBsZXQgZm91bmQgPSBmYWxzZTsKLSAgY29uc3QgZXhwZWN0X2ZvdW5kID0gISFleHBl
Y3RlZF9maW5hbF9jbGllbnRfdGFnOwotICBjb25zdCBleHBlY3RlZF9pZCA9IGFjdHVhbF9pZHNb
ZXhwZWN0ZWRfZmluYWxfY2xpZW50X3RhZ107Ci0gIGZvdW5kID0gY2hlY2tfY2xpZW50cyhjbGll
bnRfaW5mb3Mud29ya2VyMCwKLSAgICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkX2lkLAot
ICAgICAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRfbGFzdF91cmwsCi0gICAgICAgICAgICAg
ICAgICAgICAgICBleHBlY3RlZF9maW5hbF9jbGllbnRfdGFnLAotICAgICAgICAgICAgICAgICAg
ICAgICAgJ3dvcmtlcjAnKTsKLSAgZm91bmQgPSBjaGVja19jbGllbnRzKGNsaWVudF9pbmZvcy53
b3JrZXIxLAotICAgICAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRfaWQsCi0gICAgICAgICAg
ICAgICAgICAgICAgICBleHBlY3RlZF9sYXN0X3VybCwKLSAgICAgICAgICAgICAgICAgICAgICAg
IGV4cGVjdGVkX2ZpbmFsX2NsaWVudF90YWcsCi0gICAgICAgICAgICAgICAgICAgICAgICAnd29y
a2VyMScpIHx8IGZvdW5kOwotICBmb3VuZCA9IGNoZWNrX2NsaWVudHMoY2xpZW50X2luZm9zLmNy
b3NzT3JpZ2luV29ya2VyLAotICAgICAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRfaWQsCi0g
ICAgICAgICAgICAgICAgICAgICAgICBleHBlY3RlZF9sYXN0X3VybCwKLSAgICAgICAgICAgICAg
ICAgICAgICAgIGV4cGVjdGVkX2ZpbmFsX2NsaWVudF90YWcsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAnY3Jvc3NPcmlnaW5Xb3JrZXInKSB8fCBmb3VuZDsKLSAgYXNzZXJ0X2VxdWFscyhmb3Vu
ZCwgZXhwZWN0X2ZvdW5kLCAnY2xpZW50IGZvdW5kJyk7Ci0KLSAgaWYgKCFleHBlY3RfZm91bmQp
IHsKLSAgICAvLyBUT0RPKGZhbGtlbik6IEFzayB0aGUgb3RoZXIgb3JpZ2luIGZyYW1lIGlmIGl0
IGhhcyBhIGNsaWVudCBvZiB0aGUKLSAgICAvLyBleHBlY3RlZCBVUkwuCi0gIH0KLX0KLQogd2lu
ZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCBvbl9tZXNzYWdlLCBmYWxzZSk7CiAKIGZ1
bmN0aW9uIG9uX21lc3NhZ2UoZSkgewpAQCAtMzAxLDUzNiArMTE5LDI5NyBAQCBmdW5jdGlvbiBz
ZW5kX3RvX2lmcmFtZShmcmFtZSwgbWVzc2FnZSkgewogICByZXR1cm4gbmV3IFByb21pc2UocmVz
b2x2ZSA9PiB7CiAgICAgbWVzc2FnZV9yZXNvbHZlcnNbbWVzc2FnZV9pZF0gPSByZXNvbHZlOwog
ICAgIGZyYW1lLmNvbnRlbnRXaW5kb3cucG9zdE1lc3NhZ2UoCi0gICAgICAgIHtpZDogbWVzc2Fn
ZV9pZCwgbWVzc2FnZX0sCi0gICAgICAgICcqJyk7Ci0gIH0pOwotfQotCi1hc3luYyBmdW5jdGlv
biBnZXRfYWxsX2NsaWVudHMoYWN0dWFsX2lkcykgewotICBjb25zdCBjbGllbnRfaW5mb3MgPSB7
fTsKLSAgY2xpZW50X2luZm9zWyd3b3JrZXIwJ10gPSBhd2FpdCBnZXRfY2xpZW50cyh3b3JrZXJz
WzBdLCBhY3R1YWxfaWRzKTsKLSAgY2xpZW50X2luZm9zWyd3b3JrZXIxJ10gPSBhd2FpdCBnZXRf
Y2xpZW50cyh3b3JrZXJzWzFdLCBhY3R1YWxfaWRzKTsKLSAgY2xpZW50X2luZm9zWydjcm9zc09y
aWdpbldvcmtlciddID0KLSAgICAgIGF3YWl0IHNlbmRfdG9faWZyYW1lKG90aGVyX29yaWdpbl9m
cmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHtjb21tYW5kOiAnZ2V0X2NsaWVudHMn
LCBhY3R1YWxfaWRzfSk7Ci0gIHJldHVybiBjbGllbnRfaW5mb3M7Ci19Ci0KLWZ1bmN0aW9uIGdl
dF9jbGllbnRzKHdvcmtlciwgYWN0dWFsX2lkcykgewotICByZXR1cm4gbmV3IFByb21pc2UocmVz
b2x2ZSA9PiB7Ci0gICAgdmFyIGNoYW5uZWwgPSBuZXcgTWVzc2FnZUNoYW5uZWwoKTsKLSAgICBj
aGFubmVsLnBvcnQxLm9ubWVzc2FnZSA9IChtc2cpID0+IHsKLSAgICAgIHJlc29sdmUobXNnLmRh
dGEuY2xpZW50cyk7Ci0gICAgfTsKLSAgICB3b3JrZXIucG9zdE1lc3NhZ2Uoe2NvbW1hbmQ6ICdn
ZXRDbGllbnRzJywgYWN0dWFsX2lkcywgcG9ydDogY2hhbm5lbC5wb3J0Mn0sCi0gICAgICAgICAg
ICAgICAgICAgICAgIFtjaGFubmVsLnBvcnQyXSk7CisgICAgICAgIHtpZDogbWVzc2FnZV9pZCwg
bWVzc2FnZTogbWVzc2FnZX0sCisgICAgICAgIGhvc3RfaW5mb1snSFRUUFNfUkVNT1RFX09SSUdJ
TiddKTsKICAgfSk7CiB9CiAKLS8vIFJldHVybnMgYW4gYXJyYXkgb2YgdGhlIFVSTHMgdGhhdCB8
d29ya2VyfCByZWNlaXZlZCBmZXRjaCBldmVudHMgZm9yOgotLy8gICBbdXJsMSwgdXJsMl0KLWFz
eW5jIGZ1bmN0aW9uIGdldF9pbnRlcmNlcHRlZF91cmxzKHdvcmtlcikgewotICBjb25zdCBpbmZv
cyA9IGF3YWl0IGdldF9yZXF1ZXN0X2luZm9zKHdvcmtlcik7Ci0gIHJldHVybiBpbmZvcy5tYXAo
aW5mbyA9PiB7IHJldHVybiBpbmZvLnVybDsgfSk7Ci19Ci0KLS8vIFJldHVybnMgdGhlIHJlcXVl
c3RzIHRoYXQgfHdvcmtlcnwgcmVjZWl2ZWQgZmV0Y2ggZXZlbnRzIGZvci4gVGhlIHJldHVybgot
Ly8gdmFsdWUgaXMgYW4gYXJyYXkgb2YgZm9ybWF0OgotLy8gWwotLy8gICB7dXJsOiB1cmwxLCBy
ZXN1bHRpbmdDbGllbnRJZDogaWR9LAotLy8gICB7dXJsOiB1cmwyLCByZXN1bHRpbmdDbGllbnRJ
ZDogaWR9Ci0vLyBdCi1mdW5jdGlvbiBnZXRfcmVxdWVzdF9pbmZvcyh3b3JrZXIpIHsKK2Z1bmN0
aW9uIGdldF9pbnRlcmNlcHRlZF91cmxzKHdvcmtlcikgewogICByZXR1cm4gbmV3IFByb21pc2Uo
cmVzb2x2ZSA9PiB7CiAgICAgdmFyIGNoYW5uZWwgPSBuZXcgTWVzc2FnZUNoYW5uZWwoKTsKLSAg
ICBjaGFubmVsLnBvcnQxLm9ubWVzc2FnZSA9IChtc2cpID0+IHsKLSAgICAgIHJlc29sdmUobXNn
LmRhdGEucmVxdWVzdEluZm9zKTsKLSAgICB9OwotICAgIHdvcmtlci5wb3N0TWVzc2FnZSh7Y29t
bWFuZDogJ2dldFJlcXVlc3RJbmZvcycsIHBvcnQ6IGNoYW5uZWwucG9ydDJ9LAotICAgICAgICAg
ICAgICAgICAgICAgICBbY2hhbm5lbC5wb3J0Ml0pOworICAgIGNoYW5uZWwucG9ydDEub25tZXNz
YWdlID0gZnVuY3Rpb24obXNnKSB7IHJlc29sdmUobXNnLmRhdGEudXJscyk7IH07CisgICAgd29y
a2VyLnBvc3RNZXNzYWdlKHtwb3J0OiBjaGFubmVsLnBvcnQyfSwgW2NoYW5uZWwucG9ydDJdKTsK
ICAgfSk7CiB9CiAKLS8vIFJldHVybnMgYW4gYXJyYXkgb2YgdGhlIHJlcXVlc3RzIHRoZSB3b3Jr
ZXJzIHJlY2VpdmVkIGZldGNoIGV2ZW50cyBmb3I6Ci0vLyBbCi0vLyAgIC8vIFJlcXVlc3RzIGZy
b20gd29ya2Vyc1swXS4KLS8vICAgWwotLy8gICAgIHt1cmw6IHVybDEsIHJlc3VsdGluZ0NsaWVu
dElkVGFnOiB0YWcxfSwKLS8vICAgICB7dXJsOiB1cmwyLCByZXN1bHRpbmdDbGllbnRJZFRhZzog
dGFnMX0KLS8vICAgXSwKLS8vCi0vLyAgIC8vIFJlcXVlc3RzIGZyb20gd29ya2Vyc1sxXS4KLS8v
ICAgW3t1cmw6IHVybDMsIHJlc3VsdGluZ0NsaWVudElkVGFnOiB0YWcyfV0sCi0vLwotLy8gICAv
LyBSZXF1ZXN0cyBmcm9tIHRoZSBjcm9zcy1vcmlnaW4gd29ya2VyLgotLy8gICBbXQotLy8gXQot
YXN5bmMgZnVuY3Rpb24gZ2V0X2FsbF9yZXF1ZXN0X2luZm9zKCkgIHsKLSAgY29uc3QgcmVxdWVz
dF9pbmZvcyA9IFtdOwotICByZXF1ZXN0X2luZm9zLnB1c2goYXdhaXQgZ2V0X3JlcXVlc3RfaW5m
b3Mod29ya2Vyc1swXSkpOwotICByZXF1ZXN0X2luZm9zLnB1c2goYXdhaXQgZ2V0X3JlcXVlc3Rf
aW5mb3Mod29ya2Vyc1sxXSkpOwotICByZXF1ZXN0X2luZm9zLnB1c2goYXdhaXQgc2VuZF90b19p
ZnJhbWUob3RoZXJfb3JpZ2luX2ZyYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAge2NvbW1hbmQ6ICdnZXRfcmVxdWVzdF9pbmZvcyd9KSk7Ci0gIHJldHVybiBy
ZXF1ZXN0X2luZm9zOwotfQotCi1sZXQgdXJsOwotbGV0IHVybDE7Ci1sZXQgdXJsMjsKLQogLy8g
Tm9ybWFsIHJlZGlyZWN0IChmcm9tIG91dC1zY29wZSB0byBpbi1zY29wZSkuCi11cmwgPSBTQ09Q
RTE7CiByZWRpcmVjdF90ZXN0KAotICAgIE9VVF9TQ09QRSArICd1cmw9JyArIGVuY29kZVVSSUNv
bXBvbmVudCh1cmwpLAotICAgIHVybCwKLSAgICBbW3t1cmwsIHJlc3VsdGluZ0NsaWVudElkVGFn
OiAneCd9XSwgW10sIFtdXSwKLSAgICAneCcsCisgICAgT1VUX1NDT1BFICsgJ3VybD0nICsgZW5j
b2RlVVJJQ29tcG9uZW50KFNDT1BFMSksCisgICAgU0NPUEUxLAorICAgIFtbU0NPUEUxXSwgW10s
IFtdXSwKICAgICAnTm9ybWFsIHJlZGlyZWN0IHRvIHNhbWUtb3JpZ2luIHNjb3BlLicpOwotCi0K
LXVybCA9IFNDT1BFMSArICcjcmVmJzsKIHJlZGlyZWN0X3Rlc3QoCiAgICAgT1VUX1NDT1BFICsg
J3VybD0nICsgZW5jb2RlVVJJQ29tcG9uZW50KFNDT1BFMSkgKyAnI3JlZicsCi0gICAgdXJsLAot
ICAgIFtbe3VybCwgcmVzdWx0aW5nQ2xpZW50SWRUYWc6ICd4J31dLCBbXSwgW11dLAotICAgICd4
JywKKyAgICBTQ09QRTEgKyAnI3JlZicsCisgICAgW1tTQ09QRTEgKyAnI3JlZiddLCBbXSwgW11d
LAogICAgICdOb3JtYWwgcmVkaXJlY3QgdG8gc2FtZS1vcmlnaW4gc2NvcGUgd2l0aCBhIGhhc2gg
ZnJhZ21lbnQuJyk7Ci0KLXVybCA9IFNDT1BFMSArICcjcmVmMic7CiByZWRpcmVjdF90ZXN0KAot
ICAgIE9VVF9TQ09QRSArICd1cmw9JyArIGVuY29kZVVSSUNvbXBvbmVudCh1cmwpICsgJyNyZWYn
LAotICAgIHVybCwKLSAgICBbW3t1cmwsIHJlc3VsdGluZ0NsaWVudElkVGFnOiAneCd9XSwgW10s
IFtdXSwKLSAgICAneCcsCisgICAgT1VUX1NDT1BFICsgJ3VybD0nICsgZW5jb2RlVVJJQ29tcG9u
ZW50KFNDT1BFMSArICcjcmVmMicpICsgJyNyZWYnLAorICAgIFNDT1BFMSArICcjcmVmMicsCisg
ICAgW1tTQ09QRTEgKyAnI3JlZjInXSwgW10sIFtdXSwKICAgICAnTm9ybWFsIHJlZGlyZWN0IHRv
IHNhbWUtb3JpZ2luIHNjb3BlIHdpdGggZGlmZmVyZW50IGhhc2ggZnJhZ21lbnRzLicpOwotCi11
cmwgPSBPVEhFUl9PUklHSU5fU0NPUEU7CiByZWRpcmVjdF90ZXN0KAotICAgIE9VVF9TQ09QRSAr
ICd1cmw9JyArIGVuY29kZVVSSUNvbXBvbmVudCh1cmwpLAotICAgIHVybCwKLSAgICBbW10sIFtd
LCBbe3VybCwgcmVzdWx0aW5nQ2xpZW50SWRUYWc6ICd4J31dXSwKLSAgICAneCcsCisgICAgT1VU
X1NDT1BFICsgJ3VybD0nICsgZW5jb2RlVVJJQ29tcG9uZW50KE9USEVSX09SSUdJTl9TQ09QRSks
CisgICAgT1RIRVJfT1JJR0lOX1NDT1BFLAorICAgIFtbXSwgW10sIFtPVEhFUl9PUklHSU5fU0NP
UEVdXSwKICAgICAnTm9ybWFsIHJlZGlyZWN0IHRvIG90aGVyLW9yaWdpbiBzY29wZS4nKTsKIAog
Ly8gU1cgZmFsbGJhY2tlZCByZWRpcmVjdC4gU1cgZG9lc24ndCBoYW5kbGUgdGhlIGZldGNoIHJl
cXVlc3QuCi11cmwgPSBTQ09QRTEgKyAndXJsPScgKyBlbmNvZGVVUklDb21wb25lbnQoT1VUX1ND
T1BFKTsKIHJlZGlyZWN0X3Rlc3QoCi0gICAgdXJsLAorICAgIFNDT1BFMSArICd1cmw9JyArIGVu
Y29kZVVSSUNvbXBvbmVudChPVVRfU0NPUEUpLAogICAgIE9VVF9TQ09QRSwKLSAgICBbW3t1cmws
IHJlc3VsdGluZ0NsaWVudElkVGFnOiAneCd9XSwgW10sIFtdXSwKLSAgICAneCcsCisgICAgW1tT
Q09QRTEgKyAndXJsPScgKyBlbmNvZGVVUklDb21wb25lbnQoT1VUX1NDT1BFKV0sIFtdLCBbXV0s
CiAgICAgJ1NXLWZhbGxiYWNrZWQgcmVkaXJlY3QgdG8gc2FtZS1vcmlnaW4gb3V0LXNjb3BlLicp
OwotCi11cmwxID0gU0NPUEUxICsgJ3VybD0nICsgZW5jb2RlVVJJQ29tcG9uZW50KFNDT1BFMSk7
Ci11cmwyID0gU0NPUEUxOwogcmVkaXJlY3RfdGVzdCgKLSAgICB1cmwxLAotICAgIHVybDIsCi0g
ICAgWwotICAgICAgWwotICAgICAgICB7dXJsOiB1cmwxLCByZXN1bHRpbmdDbGllbnRJZFRhZzog
J3gnfSwKLSAgICAgICAge3VybDogdXJsMiwgcmVzdWx0aW5nQ2xpZW50SWRUYWc6ICd4J30KLSAg
ICAgIF0sCi0gICAgICBbXSwKLSAgICAgIFtdCi0gICAgXSwKLSAgICAneCcsCisgICAgU0NPUEUx
ICsgJ3VybD0nICsgZW5jb2RlVVJJQ29tcG9uZW50KFNDT1BFMSksCisgICAgU0NPUEUxLAorICAg
IFtbU0NPUEUxICsgJ3VybD0nICsgZW5jb2RlVVJJQ29tcG9uZW50KFNDT1BFMSksIFNDT1BFMV0s
IFtdLCBbXV0sCiAgICAgJ1NXLWZhbGxiYWNrZWQgcmVkaXJlY3QgdG8gc2FtZS1vcmlnaW4gc2Ft
ZS1zY29wZS4nKTsKLQotdXJsMSA9IFNDT1BFMSArICd1cmw9JyArIGVuY29kZVVSSUNvbXBvbmVu
dChTQ09QRTEpICsgJyNyZWYnOwotdXJsMiA9IFNDT1BFMSArICcjcmVmJzsKIHJlZGlyZWN0X3Rl
c3QoCi0gICAgdXJsMSwKLSAgICB1cmwyLAorICAgIFNDT1BFMSArICd1cmw9JyArIGVuY29kZVVS
SUNvbXBvbmVudChTQ09QRTEpICsgJyNyZWYnLAorICAgIFNDT1BFMSArICcjcmVmJywKICAgICBb
Ci0gICAgICBbCi0gICAgICAgIHt1cmw6IHVybDEsIHJlc3VsdGluZ0NsaWVudElkVGFnOiAneCd9
LAotICAgICAgICB7dXJsOiB1cmwyLCByZXN1bHRpbmdDbGllbnRJZFRhZzogJ3gnfQotICAgICAg
XSwKKyAgICAgIFtTQ09QRTEgKyAndXJsPScgKyBlbmNvZGVVUklDb21wb25lbnQoU0NPUEUxKSAr
ICcjcmVmJywgU0NPUEUxICsgJyNyZWYnXSwKICAgICAgIFtdLAogICAgICAgW10KICAgICBdLAot
ICAgICd4JywKICAgICAnU1ctZmFsbGJhY2tlZCByZWRpcmVjdCB0byBzYW1lLW9yaWdpbiBzYW1l
LXNjb3BlIHdpdGggYSBoYXNoIGZyYWdtZW50LicpOwotCi11cmwxID0gU0NPUEUxICsgJ3VybD0n
ICsgZW5jb2RlVVJJQ29tcG9uZW50KFNDT1BFMSArICcjcmVmMicpICsgJyNyZWYnOwotdXJsMiA9
IFNDT1BFMSArICcjcmVmMic7CiByZWRpcmVjdF90ZXN0KAotICAgIHVybDEsCi0gICAgdXJsMiwK
KyAgICBTQ09QRTEgKyAndXJsPScgKyBlbmNvZGVVUklDb21wb25lbnQoU0NPUEUxICsgJyNyZWYy
JykgKyAnI3JlZicsCisgICAgU0NPUEUxICsgJyNyZWYyJywKICAgICBbCiAgICAgICBbCi0gICAg
ICAgIHt1cmw6IHVybDEsIHJlc3VsdGluZ0NsaWVudElkVGFnOiAneCd9LAotICAgICAgICB7dXJs
OiB1cmwyLCByZXN1bHRpbmdDbGllbnRJZFRhZzogJ3gnfQorICAgICAgICBTQ09QRTEgKyAndXJs
PScgKyBlbmNvZGVVUklDb21wb25lbnQoU0NPUEUxICsgJyNyZWYyJykgKyAnI3JlZicsCisgICAg
ICAgIFNDT1BFMSArICcjcmVmMicKICAgICAgIF0sCiAgICAgICBbXSwKICAgICAgIFtdCiAgICAg
XSwKLSAgICAneCcsCiAgICAgJ1NXLWZhbGxiYWNrZWQgcmVkaXJlY3QgdG8gc2FtZS1vcmlnaW4g
c2FtZS1zY29wZSB3aXRoIGRpZmZlcmVudCBoYXNoICcgKwogICAgICdmcmFnbWVudHMuJyk7Ci0K
LXVybDEgPSBTQ09QRTEgKyAndXJsPScgKyBlbmNvZGVVUklDb21wb25lbnQoU0NPUEUyKTsKLXVy
bDIgPSBTQ09QRTI7CiByZWRpcmVjdF90ZXN0KAotICAgIHVybDEsCi0gICAgdXJsMiwKLSAgICBb
Ci0gICAgICBbe3VybDogdXJsMSwgcmVzdWx0aW5nQ2xpZW50SWRUYWc6ICd4J31dLAotICAgICAg
W3t1cmw6IHVybDIsIHJlc3VsdGluZ0NsaWVudElkVGFnOiAneCd9XSwKLSAgICAgIFtdCi0gICAg
XSwKLSAgICAneCcsCisgICAgU0NPUEUxICsgJ3VybD0nICsgZW5jb2RlVVJJQ29tcG9uZW50KFND
T1BFMiksCisgICAgU0NPUEUyLAorICAgIFtbU0NPUEUxICsgJ3VybD0nICsgZW5jb2RlVVJJQ29t
cG9uZW50KFNDT1BFMildLCBbU0NPUEUyXSwgW11dLAogICAgICdTVy1mYWxsYmFja2VkIHJlZGly
ZWN0IHRvIHNhbWUtb3JpZ2luIG90aGVyLXNjb3BlLicpOwotCi11cmwxID0gU0NPUEUxICsgJ3Vy
bD0nICsgZW5jb2RlVVJJQ29tcG9uZW50KE9USEVSX09SSUdJTl9PVVRfU0NPUEUpOwotdXJsMiA9
IE9USEVSX09SSUdJTl9PVVRfU0NPUEU7CiByZWRpcmVjdF90ZXN0KAotICAgIHVybDEsCi0gICAg
dXJsMiwKLSAgICBbW3t1cmw6IHVybDEsIHJlc3VsdGluZ0NsaWVudElkVGFnOiAnYSd9XSwgW10s
IFtdXSwKLSAgICBudWxsLAorICAgIFNDT1BFMSArICd1cmw9JyArIGVuY29kZVVSSUNvbXBvbmVu
dChPVEhFUl9PUklHSU5fT1VUX1NDT1BFKSwKKyAgICBPVEhFUl9PUklHSU5fT1VUX1NDT1BFLAor
ICAgIFtbU0NPUEUxICsgJ3VybD0nICsgZW5jb2RlVVJJQ29tcG9uZW50KE9USEVSX09SSUdJTl9P
VVRfU0NPUEUpXSwgW10sIFtdXSwKICAgICAnU1ctZmFsbGJhY2tlZCByZWRpcmVjdCB0byBvdGhl
ci1vcmlnaW4gb3V0LXNjb3BlLicpOwotCi11cmwxID0gU0NPUEUxICsgJ3VybD0nICsgZW5jb2Rl
VVJJQ29tcG9uZW50KE9USEVSX09SSUdJTl9TQ09QRSk7Ci11cmwyID0gT1RIRVJfT1JJR0lOX1ND
T1BFOwogcmVkaXJlY3RfdGVzdCgKLSAgICB1cmwxLAotICAgIHVybDIsCisgICAgU0NPUEUxICsg
J3VybD0nICsgZW5jb2RlVVJJQ29tcG9uZW50KE9USEVSX09SSUdJTl9TQ09QRSksCisgICAgT1RI
RVJfT1JJR0lOX1NDT1BFLAogICAgIFsKLSAgICAgIFt7dXJsOiB1cmwxLCByZXN1bHRpbmdDbGll
bnRJZFRhZzogJ2EnfV0sCisgICAgICBbU0NPUEUxICsgJ3VybD0nICsgZW5jb2RlVVJJQ29tcG9u
ZW50KE9USEVSX09SSUdJTl9TQ09QRSldLAogICAgICAgW10sCi0gICAgICBbe3VybDogdXJsMiwg
cmVzdWx0aW5nQ2xpZW50SWRUYWc6ICd4J31dCisgICAgICBbT1RIRVJfT1JJR0lOX1NDT1BFXQog
ICAgIF0sCi0gICAgJ3gnLAogICAgICdTVy1mYWxsYmFja2VkIHJlZGlyZWN0IHRvIG90aGVyLW9y
aWdpbiBpbi1zY29wZS4nKTsKIAotCi11cmwzID0gU0NPUEUxOwotdXJsMiA9IE9USEVSX09SSUdJ
Tl9TQ09QRSArICd1cmw9JyArIGVuY29kZVVSSUNvbXBvbmVudCh1cmwzKTsKLXVybDEgPSBTQ09Q
RTEgKyAndXJsPScgKyBlbmNvZGVVUklDb21wb25lbnQodXJsMik7Ci1yZWRpcmVjdF90ZXN0KAot
ICAgIHVybDEsCi0gICAgdXJsMywKLSAgICBbCi0gICAgICBbCi0gICAgICAgIHt1cmw6IHVybDEs
IHJlc3VsdGluZ0NsaWVudElkVGFnOiAnYSd9LAotICAgICAgICB7dXJsOiB1cmwzLCByZXN1bHRp
bmdDbGllbnRJZFRhZzogJ3gnfQotICAgICAgXSwKLSAgICAgIFtdLAotICAgICAgW3t1cmw6IHVy
bDIsIHJlc3VsdGluZ0NsaWVudElkVGFnOiAnYid9XQotICAgIF0sCi0gICAgJ3gnLAotICAgICdT
Vy1mYWxsYmFja2VkIHJlZGlyZWN0IHRvIG90aGVyLW9yaWdpbiBhbmQgYmFjayB0byBzYW1lLW9y
aWdpbi4nKTsKLQogLy8gU1cgZ2VuZXJhdGVkIHJlZGlyZWN0LgogLy8gU1c6IGV2ZW50LnJlc3Bv
bmRXaXRoKFJlc3BvbnNlLnJlZGlyZWN0KHBhcmFtc1sndXJsJ10pKTsKLXVybDEgPSBTQ09QRTEg
KyAnc3c9Z2VuJnVybD0nICsgZW5jb2RlVVJJQ29tcG9uZW50KE9VVF9TQ09QRSk7Ci11cmwyID0g
T1VUX1NDT1BFOwogcmVkaXJlY3RfdGVzdCgKLSAgICB1cmwxLAotICAgIHVybDIsCi0gICAgW1t7
dXJsOiB1cmwxLCByZXN1bHRpbmdDbGllbnRJZFRhZzogJ3gnfV0sIFtdLCBbXV0sCi0gICAgJ3gn
LAorICAgIFNDT1BFMSArICdzdz1nZW4mdXJsPScgKyBlbmNvZGVVUklDb21wb25lbnQoT1VUX1ND
T1BFKSwKKyAgICBPVVRfU0NPUEUsCisgICAgW1tTQ09QRTEgKyAnc3c9Z2VuJnVybD0nICsgZW5j
b2RlVVJJQ29tcG9uZW50KE9VVF9TQ09QRSldLCBbXSwgW11dLAogICAgICdTVy1nZW5lcmF0ZWQg
cmVkaXJlY3QgdG8gc2FtZS1vcmlnaW4gb3V0LXNjb3BlLicpOwotCi11cmwxID0gU0NPUEUxICsg
J3N3PWdlbiZ1cmw9JyArIGVuY29kZVVSSUNvbXBvbmVudChPVVRfU0NPUEUpICsgJyNyZWYnOwot
dXJsMiA9IE9VVF9TQ09QRSArICcjcmVmJzsKIHJlZGlyZWN0X3Rlc3QoCi0gICAgdXJsMSwKLSAg
ICB1cmwyLAotICAgIFtbe3VybDogdXJsMSwgcmVzdWx0aW5nQ2xpZW50SWRUYWc6ICd4J31dLCBb
XSwgW11dLAotICAgICd4JywKKyAgICBTQ09QRTEgKyAnc3c9Z2VuJnVybD0nICsgZW5jb2RlVVJJ
Q29tcG9uZW50KE9VVF9TQ09QRSkgKyAnI3JlZicsCisgICAgT1VUX1NDT1BFICsgJyNyZWYnLAor
ICAgIFsKKyAgICAgIFtTQ09QRTEgKyAnc3c9Z2VuJnVybD0nICsgZW5jb2RlVVJJQ29tcG9uZW50
KE9VVF9TQ09QRSkgKyAnI3JlZiddLAorICAgICAgW10sCisgICAgICBbXQorICAgIF0sCiAgICAg
J1NXLWdlbmVyYXRlZCByZWRpcmVjdCB0byBzYW1lLW9yaWdpbiBvdXQtc2NvcGUgd2l0aCBhIGhh
c2ggZnJhZ21lbnQuJyk7Ci0KLXVybDEgPSBTQ09QRTEgKyAnc3c9Z2VuJnVybD0nICsgZW5jb2Rl
VVJJQ29tcG9uZW50KE9VVF9TQ09QRSArICcjcmVmMicpICsgJyNyZWYnOwotdXJsMiA9IE9VVF9T
Q09QRSArICcjcmVmMic7CiByZWRpcmVjdF90ZXN0KAotICAgIHVybDEsCi0gICAgdXJsMiwKLSAg
ICBbW3t1cmw6IHVybDEsIHJlc3VsdGluZ0NsaWVudElkVGFnOiAneCd9XSwgW10sIFtdXSwKLSAg
ICAneCcsCi0gICAgJ1NXLWdlbmVyYXRlZCByZWRpcmVjdCB0byBzYW1lLW9yaWdpbiBvdXQtc2Nv
cGUgd2l0aCBkaWZmZXJlbnQgaGFzaCAnICsKLSAgICAnZnJhZ21lbnRzLicpOwotCi11cmwxID0g
U0NPUEUxICsgJ3N3PWdlbiZ1cmw9JyArIGVuY29kZVVSSUNvbXBvbmVudChTQ09QRTEpOwotdXJs
MiA9IFNDT1BFMTsKLXJlZGlyZWN0X3Rlc3QoCi0gICAgdXJsMSwKLSAgICB1cmwyLAorICAgIFND
T1BFMSArICdzdz1nZW4mdXJsPScgKyBlbmNvZGVVUklDb21wb25lbnQoT1VUX1NDT1BFICsgJyNy
ZWYyJykgKyAnI3JlZicsCisgICAgT1VUX1NDT1BFICsgJyNyZWYyJywKICAgICBbCi0gICAgICBb
Ci0gICAgICAgIHt1cmw6IHVybDEsIHJlc3VsdGluZ0NsaWVudElkVGFnOiAneCd9LAotICAgICAg
ICB7dXJsOiB1cmwyLCByZXN1bHRpbmdDbGllbnRJZFRhZzogJ3gnfQotICAgICAgXSwKKyAgICAg
IFtTQ09QRTEgKyAnc3c9Z2VuJnVybD0nICsgZW5jb2RlVVJJQ29tcG9uZW50KE9VVF9TQ09QRSAr
ICcjcmVmMicpICsgJyNyZWYnXSwKICAgICAgIFtdLAogICAgICAgW10KICAgICBdLAotICAgICd4
JywKKyAgICAnU1ctZ2VuZXJhdGVkIHJlZGlyZWN0IHRvIHNhbWUtb3JpZ2luIG91dC1zY29wZSB3
aXRoIGRpZmZlcmVudCBoYXNoICcgKworICAgICdmcmFnbWVudHMuJyk7CityZWRpcmVjdF90ZXN0
KAorICAgIFNDT1BFMSArICdzdz1nZW4mdXJsPScgKyBlbmNvZGVVUklDb21wb25lbnQoU0NPUEUx
KSwKKyAgICBTQ09QRTEsCisgICAgW1tTQ09QRTEgKyAnc3c9Z2VuJnVybD0nICsgZW5jb2RlVVJJ
Q29tcG9uZW50KFNDT1BFMSksIFNDT1BFMV0sIFtdLCBbXV0sCiAgICAgJ1NXLWdlbmVyYXRlZCBy
ZWRpcmVjdCB0byBzYW1lLW9yaWdpbiBzYW1lLXNjb3BlLicpOwotCi11cmwxID0gU0NPUEUxICsg
J3N3PWdlbiZ1cmw9JyArIGVuY29kZVVSSUNvbXBvbmVudChTQ09QRTIpOwotdXJsMiA9IFNDT1BF
MjsKIHJlZGlyZWN0X3Rlc3QoCi0gICAgdXJsMSwKLSAgICB1cmwyLAorICAgIFNDT1BFMSArICdz
dz1nZW4mdXJsPScgKyBlbmNvZGVVUklDb21wb25lbnQoU0NPUEUyKSwKKyAgICBTQ09QRTIsCisg
ICAgW1tTQ09QRTEgKyAnc3c9Z2VuJnVybD0nICsgZW5jb2RlVVJJQ29tcG9uZW50KFNDT1BFMild
LCBbU0NPUEUyXSwgW11dLAorICAgICdTVy1nZW5lcmF0ZWQgcmVkaXJlY3QgdG8gc2FtZS1vcmln
aW4gb3RoZXItc2NvcGUuJyk7CityZWRpcmVjdF90ZXN0KAorICAgIFNDT1BFMSArICdzdz1nZW4m
dXJsPScgKyBlbmNvZGVVUklDb21wb25lbnQoT1RIRVJfT1JJR0lOX09VVF9TQ09QRSksCisgICAg
T1RIRVJfT1JJR0lOX09VVF9TQ09QRSwKICAgICBbCi0gICAgICBbe3VybDogdXJsMSwgcmVzdWx0
aW5nQ2xpZW50SWRUYWc6ICd4J31dLAotICAgICAgW3t1cmw6IHVybDIsIHJlc3VsdGluZ0NsaWVu
dElkVGFnOiAneCd9XSwKKyAgICAgIFtTQ09QRTEgKyAnc3c9Z2VuJnVybD0nICsgZW5jb2RlVVJJ
Q29tcG9uZW50KE9USEVSX09SSUdJTl9PVVRfU0NPUEUpXSwKKyAgICAgIFtdLAogICAgICAgW10K
ICAgICBdLAotICAgICd4JywKLSAgICAnU1ctZ2VuZXJhdGVkIHJlZGlyZWN0IHRvIHNhbWUtb3Jp
Z2luIG90aGVyLXNjb3BlLicpOwotCi11cmwxID0gU0NPUEUxICsgJ3N3PWdlbiZ1cmw9JyArIGVu
Y29kZVVSSUNvbXBvbmVudChPVEhFUl9PUklHSU5fT1VUX1NDT1BFKTsKLXVybDIgPSBPVEhFUl9P
UklHSU5fT1VUX1NDT1BFOwotcmVkaXJlY3RfdGVzdCgKLSAgICB1cmwxLAotICAgIHVybDIsCi0g
ICAgW1t7dXJsOiB1cmwxLCByZXN1bHRpbmdDbGllbnRJZFRhZzogJ2EnfV0sIFtdLCBbXV0sCi0g
ICAgbnVsbCwKICAgICAnU1ctZ2VuZXJhdGVkIHJlZGlyZWN0IHRvIG90aGVyLW9yaWdpbiBvdXQt
c2NvcGUuJyk7Ci0KLXVybDEgPSBTQ09QRTEgKyAnc3c9Z2VuJnVybD0nICsgZW5jb2RlVVJJQ29t
cG9uZW50KE9USEVSX09SSUdJTl9TQ09QRSk7Ci11cmwyID0gT1RIRVJfT1JJR0lOX1NDT1BFOwog
cmVkaXJlY3RfdGVzdCgKLSAgICB1cmwxLAotICAgIHVybDIsCisgICAgU0NPUEUxICsgJ3N3PWdl
biZ1cmw9JyArIGVuY29kZVVSSUNvbXBvbmVudChPVEhFUl9PUklHSU5fU0NPUEUpLAorICAgIE9U
SEVSX09SSUdJTl9TQ09QRSwKICAgICBbCi0gICAgICBbe3VybDogdXJsMSwgcmVzdWx0aW5nQ2xp
ZW50SWRUYWc6ICdhJ31dLAorICAgICAgW1NDT1BFMSArICdzdz1nZW4mdXJsPScgKyBlbmNvZGVV
UklDb21wb25lbnQoT1RIRVJfT1JJR0lOX1NDT1BFKV0sCiAgICAgICBbXSwKLSAgICAgIFt7dXJs
OiB1cmwyLCByZXN1bHRpbmdDbGllbnRJZFRhZzogJ3gnfV0KKyAgICAgIFtPVEhFUl9PUklHSU5f
U0NPUEVdCiAgICAgXSwKLSAgICAneCcsCiAgICAgJ1NXLWdlbmVyYXRlZCByZWRpcmVjdCB0byBv
dGhlci1vcmlnaW4gaW4tc2NvcGUuJyk7CiAKLQogLy8gU1cgZmV0Y2hlZCByZWRpcmVjdC4KIC8v
IFNXOiBldmVudC5yZXNwb25kV2l0aChmZXRjaChldmVudC5yZXF1ZXN0KSk7Ci11cmwxID0gU0NP
UEUxICsgJ3N3PWZldGNoJnVybD0nICsgZW5jb2RlVVJJQ29tcG9uZW50KE9VVF9TQ09QRSkKLXVy
bDIgPSBPVVRfU0NPUEU7CiByZWRpcmVjdF90ZXN0KAotICAgIHVybDEsCi0gICAgdXJsMiwKLSAg
ICBbW3t1cmw6IHVybDEsIHJlc3VsdGluZ0NsaWVudElkVGFnOiAneCd9XSwgW10sIFtdXSwKLSAg
ICAneCcsCisgICAgU0NPUEUxICsgJ3N3PWZldGNoJnVybD0nICsgZW5jb2RlVVJJQ29tcG9uZW50
KE9VVF9TQ09QRSksCisgICAgT1VUX1NDT1BFLAorICAgIFtbU0NPUEUxICsgJ3N3PWZldGNoJnVy
bD0nICsgZW5jb2RlVVJJQ29tcG9uZW50KE9VVF9TQ09QRSldLAorICAgIFtdLAorICAgIFtdXSwK
ICAgICAnU1ctZmV0Y2hlZCByZWRpcmVjdCB0byBzYW1lLW9yaWdpbiBvdXQtc2NvcGUuJyk7Ci0K
LXVybDEgPSBTQ09QRTEgKyAnc3c9ZmV0Y2gmdXJsPScgKyBlbmNvZGVVUklDb21wb25lbnQoU0NP
UEUxKTsKLXVybDIgPSBTQ09QRTE7CiByZWRpcmVjdF90ZXN0KAotICAgIHVybDEsCi0gICAgdXJs
MiwKLSAgICBbCi0gICAgICBbCi0gICAgICAgIHt1cmw6IHVybDEsIHJlc3VsdGluZ0NsaWVudElk
VGFnOiAneCd9LAotICAgICAgICB7dXJsOiB1cmwyLCByZXN1bHRpbmdDbGllbnRJZFRhZzogJ3gn
fQotICAgICAgXSwKLSAgICAgIFtdLAotICAgICAgW10KLSAgICBdLAotICAgICd4JywKKyAgICBT
Q09QRTEgKyAnc3c9ZmV0Y2gmdXJsPScgKyBlbmNvZGVVUklDb21wb25lbnQoU0NPUEUxKSwKKyAg
ICBTQ09QRTEsCisgICAgW1tTQ09QRTEgKyAnc3c9ZmV0Y2gmdXJsPScgKyBlbmNvZGVVUklDb21w
b25lbnQoU0NPUEUxKSwgU0NPUEUxXSwgW10sIFtdXSwKICAgICAnU1ctZmV0Y2hlZCByZWRpcmVj
dCB0byBzYW1lLW9yaWdpbiBzYW1lLXNjb3BlLicpOwotCi11cmwxID0gU0NPUEUxICsgJ3N3PWZl
dGNoJnVybD0nICsgZW5jb2RlVVJJQ29tcG9uZW50KFNDT1BFMik7Ci11cmwyID0gU0NPUEUyOwog
cmVkaXJlY3RfdGVzdCgKLSAgICB1cmwxLAotICAgIHVybDIsCisgICAgU0NPUEUxICsgJ3N3PWZl
dGNoJnVybD0nICsgZW5jb2RlVVJJQ29tcG9uZW50KFNDT1BFMiksCisgICAgU0NPUEUyLAogICAg
IFsKLSAgICAgIFt7dXJsOiB1cmwxLCByZXN1bHRpbmdDbGllbnRJZFRhZzogJ3gnfV0sCi0gICAg
ICBbe3VybDogdXJsMiwgcmVzdWx0aW5nQ2xpZW50SWRUYWc6ICd4J31dLAorICAgICAgW1NDT1BF
MSArICdzdz1mZXRjaCZ1cmw9JyArIGVuY29kZVVSSUNvbXBvbmVudChTQ09QRTIpXSwKKyAgICAg
IFtTQ09QRTJdLAogICAgICAgW10KICAgICBdLAotICAgICd4JywKICAgICAnU1ctZmV0Y2hlZCBy
ZWRpcmVjdCB0byBzYW1lLW9yaWdpbiBvdGhlci1zY29wZS4nKTsKLQotdXJsMSA9IFNDT1BFMSAr
ICdzdz1mZXRjaCZ1cmw9JyArIGVuY29kZVVSSUNvbXBvbmVudChPVEhFUl9PUklHSU5fT1VUX1ND
T1BFKTsKLXVybDIgPSBPVEhFUl9PUklHSU5fT1VUX1NDT1BFOwotcmVkaXJlY3RfdGVzdCgKLSAg
ICB1cmwxLAotICAgIHVybDIsCi0gICAgW1t7dXJsOiB1cmwxLCByZXN1bHRpbmdDbGllbnRJZFRh
ZzogJ2EnfV0sIFtdLCBbXV0sCi0gICAgbnVsbCwKLSAgICAnU1ctZmV0Y2hlZCByZWRpcmVjdCB0
byBvdGhlci1vcmlnaW4gb3V0LXNjb3BlLicpOwotCi11cmwxID0gU0NPUEUxICsgJ3N3PWZldGNo
JnVybD0nICsgZW5jb2RlVVJJQ29tcG9uZW50KE9USEVSX09SSUdJTl9TQ09QRSk7Ci11cmwyID0g
T1RIRVJfT1JJR0lOX1NDT1BFOwogcmVkaXJlY3RfdGVzdCgKLSAgICB1cmwxLAotICAgIHVybDIs
CisgICAgU0NPUEUxICsgJ3N3PWZldGNoJnVybD0nICsgZW5jb2RlVVJJQ29tcG9uZW50KE9USEVS
X09SSUdJTl9PVVRfU0NPUEUpLAorICAgIE9USEVSX09SSUdJTl9PVVRfU0NPUEUsCiAgICAgWwot
ICAgICAgW3t1cmw6IHVybDEsIHJlc3VsdGluZ0NsaWVudElkVGFnOiAnYSd9XSwKKyAgICAgIFtT
Q09QRTEgKyAnc3c9ZmV0Y2gmdXJsPScgKyBlbmNvZGVVUklDb21wb25lbnQoT1RIRVJfT1JJR0lO
X09VVF9TQ09QRSldLAogICAgICAgW10sCi0gICAgICBbe3VybDogdXJsMiwgcmVzdWx0aW5nQ2xp
ZW50SWRUYWc6ICd4J31dCi0gICAgXSwKLSAgICAneCcsCi0gICAgJ1NXLWZldGNoZWQgcmVkaXJl
Y3QgdG8gb3RoZXItb3JpZ2luIGluLXNjb3BlLicpOwotCi0KLS8vIFNXIHJlc3BvbmRzIHdpdGgg
YSBmZXRjaCBmcm9tIGEgZGlmZmVyZW50IHVybC4KLS8vIFNXOiBldmVudC5yZXNwb25kV2l0aChm
ZXRjaChwYXJhbXNbJ3VybCddKSk7Ci11cmwyID0gU0NPUEUxOwotdXJsMSA9IFNDT1BFMSArICdz
dz1mZXRjaC11cmwmdXJsPScgKyBlbmNvZGVVUklDb21wb25lbnQodXJsMik7CisgICAgICBbXQor
ICAgIF0sICdTVy1mZXRjaGVkIHJlZGlyZWN0IHRvIG90aGVyLW9yaWdpbiBvdXQtc2NvcGUuJyk7
CiByZWRpcmVjdF90ZXN0KAotICAgIHVybDEsCi0gICAgdXJsMSwKKyAgICBTQ09QRTEgKyAnc3c9
ZmV0Y2gmdXJsPScgKyBlbmNvZGVVUklDb21wb25lbnQoT1RIRVJfT1JJR0lOX1NDT1BFKSwKKyAg
ICBPVEhFUl9PUklHSU5fU0NPUEUsCiAgICAgWwotICAgICAgWwotICAgICAgICB7dXJsOiB1cmwx
LCByZXN1bHRpbmdDbGllbnRJZFRhZzogJ3gnfQotICAgICAgXSwKKyAgICAgIFtTQ09QRTEgKyAn
c3c9ZmV0Y2gmdXJsPScgKyBlbmNvZGVVUklDb21wb25lbnQoT1RIRVJfT1JJR0lOX1NDT1BFKV0s
CiAgICAgICBbXSwKLSAgICAgIFtdCisgICAgICBbT1RIRVJfT1JJR0lOX1NDT1BFXQogICAgIF0s
Ci0gICAgJ3gnLAotICAgICdTVy1mZXRjaGVkIHJlc3BvbnNlIGZyb20gZGlmZmVyZW50IFVSTCwg
c2FtZS1vcmlnaW4gc2FtZS1zY29wZS4nKTsKLQorICAgICdTVy1mZXRjaGVkIHJlZGlyZWN0IHRv
IG90aGVyLW9yaWdpbiBpbi1zY29wZS4nKTsKIAogLy8gT3BhcXVlIHJlZGlyZWN0LgogLy8gU1c6
IGV2ZW50LnJlc3BvbmRXaXRoKGZldGNoKAogLy8gICAgICAgICBuZXcgUmVxdWVzdChldmVudC5y
ZXF1ZXN0LnVybCwge3JlZGlyZWN0OiAnbWFudWFsJ30pKSk7Ci11cmwxID0gU0NPUEUxICsgJ3N3
PW1hbnVhbCZ1cmw9JyArIGVuY29kZVVSSUNvbXBvbmVudChPVVRfU0NPUEUpOwotdXJsMiA9IE9V
VF9TQ09QRTsKIHJlZGlyZWN0X3Rlc3QoCi0gICAgdXJsMSwKLSAgICB1cmwyLAotICAgIFtbe3Vy
bDogdXJsMSwgcmVzdWx0aW5nQ2xpZW50SWRUYWc6ICd4J31dLCBbXSwgW11dLAotICAgICd4JywK
KyAgICBTQ09QRTEgKyAnc3c9bWFudWFsJnVybD0nICsgZW5jb2RlVVJJQ29tcG9uZW50KE9VVF9T
Q09QRSksCisgICAgT1VUX1NDT1BFLAorICAgIFtbU0NPUEUxICsgJ3N3PW1hbnVhbCZ1cmw9JyAr
IGVuY29kZVVSSUNvbXBvbmVudChPVVRfU0NPUEUpXSwgW10sIFtdXSwKICAgICAnUmVkaXJlY3Qg
dG8gc2FtZS1vcmlnaW4gb3V0LXNjb3BlIHdpdGggb3BhcXVlIHJlZGlyZWN0IHJlc3BvbnNlLicp
OwotCi11cmwxID0gU0NPUEUxICsgJ3N3PW1hbnVhbCZ1cmw9JyArIGVuY29kZVVSSUNvbXBvbmVu
dChTQ09QRTEpOwotdXJsMiA9IFNDT1BFMTsKIHJlZGlyZWN0X3Rlc3QoCi0gICAgdXJsMSwKLSAg
ICB1cmwyLAotICAgIFsKLSAgICAgIFsKLSAgICAgICAge3VybDogdXJsMSwgcmVzdWx0aW5nQ2xp
ZW50SWRUYWc6ICd4J30sCi0gICAgICAgIHt1cmw6IHVybDIsIHJlc3VsdGluZ0NsaWVudElkVGFn
OiAneCd9Ci0gICAgICBdLAotICAgICAgW10sCi0gICAgICBbXQotICAgIF0sCi0gICAgJ3gnLAor
ICAgIFNDT1BFMSArICdzdz1tYW51YWwmdXJsPScgKyBlbmNvZGVVUklDb21wb25lbnQoU0NPUEUx
KSwKKyAgICBTQ09QRTEsCisgICAgW1tTQ09QRTEgKyAnc3c9bWFudWFsJnVybD0nICsgZW5jb2Rl
VVJJQ29tcG9uZW50KFNDT1BFMSksIFNDT1BFMV0sIFtdLCBbXV0sCiAgICAgJ1JlZGlyZWN0IHRv
IHNhbWUtb3JpZ2luIHNhbWUtc2NvcGUgd2l0aCBvcGFxdWUgcmVkaXJlY3QgcmVzcG9uc2UuJyk7
Ci0KLXVybDEgPSBTQ09QRTEgKyAnc3c9bWFudWFsJnVybD0nICsgZW5jb2RlVVJJQ29tcG9uZW50
KFNDT1BFMik7Ci11cmwyID0gU0NPUEUyOwogcmVkaXJlY3RfdGVzdCgKLSAgICB1cmwxLAotICAg
IHVybDIsCisgICAgU0NPUEUxICsgJ3N3PW1hbnVhbCZ1cmw9JyArIGVuY29kZVVSSUNvbXBvbmVu
dChTQ09QRTIpLAorICAgIFNDT1BFMiwKKyAgICBbW1NDT1BFMSArICdzdz1tYW51YWwmdXJsPScg
KyBlbmNvZGVVUklDb21wb25lbnQoU0NPUEUyKV0sIFtTQ09QRTJdLCBbXV0sCisgICAgJ1JlZGly
ZWN0IHRvIHNhbWUtb3JpZ2luIG90aGVyLXNjb3BlIHdpdGggb3BhcXVlIHJlZGlyZWN0IHJlc3Bv
bnNlLicpOworcmVkaXJlY3RfdGVzdCgKKyAgICBTQ09QRTEgKyAnc3c9bWFudWFsJnVybD0nICsK
KyAgICBlbmNvZGVVUklDb21wb25lbnQoT1RIRVJfT1JJR0lOX09VVF9TQ09QRSksCisgICAgT1RI
RVJfT1JJR0lOX09VVF9TQ09QRSwKICAgICBbCi0gICAgICBbe3VybDogdXJsMSwgcmVzdWx0aW5n
Q2xpZW50SWRUYWc6ICd4J31dLAotICAgICAgW3t1cmw6IHVybDIsIHJlc3VsdGluZ0NsaWVudElk
VGFnOiAneCd9XSwKKyAgICAgIFtTQ09QRTEgKyAnc3c9bWFudWFsJnVybD0nICsgZW5jb2RlVVJJ
Q29tcG9uZW50KE9USEVSX09SSUdJTl9PVVRfU0NPUEUpXSwKKyAgICAgIFtdLAogICAgICAgW10K
ICAgICBdLAotICAgICd4JywKLSAgICAnUmVkaXJlY3QgdG8gc2FtZS1vcmlnaW4gb3RoZXItc2Nv
cGUgd2l0aCBvcGFxdWUgcmVkaXJlY3QgcmVzcG9uc2UuJyk7Ci0KLXVybDEgPSBTQ09QRTEgKyAn
c3c9bWFudWFsJnVybD0nICsgZW5jb2RlVVJJQ29tcG9uZW50KE9USEVSX09SSUdJTl9PVVRfU0NP
UEUpOwotdXJsMiA9IE9USEVSX09SSUdJTl9PVVRfU0NPUEU7Ci1yZWRpcmVjdF90ZXN0KAotICAg
IHVybDEsCi0gICAgdXJsMiwKLSAgICBbW3t1cmw6IHVybDEsIHJlc3VsdGluZ0NsaWVudElkVGFn
OiAnYSd9XSwgW10sIFtdXSwKLSAgICBudWxsLAogICAgICdSZWRpcmVjdCB0byBvdGhlci1vcmln
aW4gb3V0LXNjb3BlIHdpdGggb3BhcXVlIHJlZGlyZWN0IHJlc3BvbnNlLicpOwotCi11cmwxID0g
U0NPUEUxICsgJ3N3PW1hbnVhbCZ1cmw9JyArIGVuY29kZVVSSUNvbXBvbmVudChPVEhFUl9PUklH
SU5fU0NPUEUpOwotdXJsMiA9IE9USEVSX09SSUdJTl9TQ09QRTsKIHJlZGlyZWN0X3Rlc3QoCi0g
ICAgdXJsMSwKLSAgICB1cmwyLAorICAgIFNDT1BFMSArICdzdz1tYW51YWwmdXJsPScgKyBlbmNv
ZGVVUklDb21wb25lbnQoT1RIRVJfT1JJR0lOX1NDT1BFKSwKKyAgICBPVEhFUl9PUklHSU5fU0NP
UEUsCiAgICAgWwotICAgICAgW3t1cmw6IHVybDEsIHJlc3VsdGluZ0NsaWVudElkVGFnOiAnYSd9
XSwKKyAgICAgIFtTQ09QRTEgKyAnc3c9bWFudWFsJnVybD0nICsgZW5jb2RlVVJJQ29tcG9uZW50
KE9USEVSX09SSUdJTl9TQ09QRSldLAogICAgICAgW10sCi0gICAgICBbe3VybDogdXJsMiwgcmVz
dWx0aW5nQ2xpZW50SWRUYWc6ICd4J31dCisgICAgICBbT1RIRVJfT1JJR0lOX1NDT1BFXQogICAg
IF0sCi0gICAgJ3gnLAogICAgICdSZWRpcmVjdCB0byBvdGhlci1vcmlnaW4gaW4tc2NvcGUgd2l0
aCBvcGFxdWUgcmVkaXJlY3QgcmVzcG9uc2UuJyk7Ci0KLXVybD0gU0NPUEUxICsgJ3N3PW1hbnVh
bCZub0xvY2F0aW9uUmVkaXJlY3QnOwogcmVkaXJlY3RfdGVzdCgKLSAgICB1cmwsIHVybCwgW1t7
dXJsLCByZXN1bHRpbmdDbGllbnRJZFRhZzogJ3gnfV0sIFtdLCBbXV0sCi0gICAgJ3gnLAorICAg
IFNDT1BFMSArICdzdz1tYW51YWwmbm9Mb2NhdGlvblJlZGlyZWN0JywKKyAgICBTQ09QRTEgKyAn
c3c9bWFudWFsJm5vTG9jYXRpb25SZWRpcmVjdCcsCisgICAgW1tTQ09QRTEgKyAnc3c9bWFudWFs
Jm5vTG9jYXRpb25SZWRpcmVjdCddLCBbXSwgW11dLAogICAgICdObyBsb2NhdGlvbiByZWRpcmVj
dCByZXNwb25zZS4nKTsKIAotCiAvLyBPcGFxdWUgcmVkaXJlY3QgcGFzc2VkIHRocm91Z2ggQ2Fj
aGUuCiAvLyBTVyByZXNwb25kcyB3aXRoIGFuIG9wYXF1ZSByZWRpcmVjdHJlc3BvbnNlIGZyb20g
dGhlIENhY2hlIEFQSS4KLXVybDEgPSBTQ09QRTEgKyAnc3c9bWFudWFsVGhyb3VnaENhY2hlJnVy
bD0nICsgZW5jb2RlVVJJQ29tcG9uZW50KE9VVF9TQ09QRSk7Ci11cmwyID0gT1VUX1NDT1BFOwog
cmVkaXJlY3RfdGVzdCgKLSAgICB1cmwxLAotICAgIHVybDIsCi0gICAgW1t7dXJsOiB1cmwxLCBy
ZXN1bHRpbmdDbGllbnRJZFRhZzogJ3gnfV0sIFtdLCBbXV0sCi0gICAgJ3gnLAorICAgIFNDT1BF
MSArICdzdz1tYW51YWxUaHJvdWdoQ2FjaGUmdXJsPScgKyBlbmNvZGVVUklDb21wb25lbnQoT1VU
X1NDT1BFKSwKKyAgICBPVVRfU0NPUEUsCisgICAgWworICAgICAgW1NDT1BFMSArICdzdz1tYW51
YWxUaHJvdWdoQ2FjaGUmdXJsPScgKyBlbmNvZGVVUklDb21wb25lbnQoT1VUX1NDT1BFKV0sCisg
ICAgICBbXSwKKyAgICAgIFtdCisgICAgXSwKICAgICAnUmVkaXJlY3QgdG8gc2FtZS1vcmlnaW4g
b3V0LXNjb3BlIHdpdGggb3BhcXVlIHJlZGlyZWN0IHJlc3BvbnNlIHdoaWNoICcgKwogICAgICdp
cyBwYXNzZWQgdGhyb3VnaCBDYWNoZS4nKTsKLQotdXJsMSA9IFNDT1BFMSArICdzdz1tYW51YWxU
aHJvdWdoQ2FjaGUmdXJsPScgKyBlbmNvZGVVUklDb21wb25lbnQoU0NPUEUxKTsKLXVybDIgPSBT
Q09QRTE7CiByZWRpcmVjdF90ZXN0KAotICAgIHVybDEsCi0gICAgdXJsMiwKKyAgICBTQ09QRTEg
KyAnc3c9bWFudWFsVGhyb3VnaENhY2hlJnVybD0nICsgZW5jb2RlVVJJQ29tcG9uZW50KFNDT1BF
MSksCisgICAgU0NPUEUxLAogICAgIFsKICAgICAgIFsKLSAgICAgICAge3VybDogdXJsMSwgcmVz
dWx0aW5nQ2xpZW50SWRUYWc6ICd4J30sCi0gICAgICAgIHt1cmw6IHVybDIsIHJlc3VsdGluZ0Ns
aWVudElkVGFnOiAneCd9CisgICAgICAgIFNDT1BFMSArICdzdz1tYW51YWxUaHJvdWdoQ2FjaGUm
dXJsPScgKyBlbmNvZGVVUklDb21wb25lbnQoU0NPUEUxKSwKKyAgICAgICAgU0NPUEUxCiAgICAg
ICBdLAogICAgICAgW10sCiAgICAgICBbXQogICAgIF0sCi0gICAgJ3gnLAogICAgICdSZWRpcmVj
dCB0byBzYW1lLW9yaWdpbiBzYW1lLXNjb3BlIHdpdGggb3BhcXVlIHJlZGlyZWN0IHJlc3BvbnNl
IHdoaWNoICcgKwogICAgICdpcyBwYXNzZWQgdGhyb3VnaCBDYWNoZS4nKTsKLQotdXJsMSA9IFND
T1BFMSArICdzdz1tYW51YWxUaHJvdWdoQ2FjaGUmdXJsPScgKyBlbmNvZGVVUklDb21wb25lbnQo
U0NPUEUyKTsKLXVybDIgPSBTQ09QRTI7CiByZWRpcmVjdF90ZXN0KAotICAgIHVybDEsCi0gICAg
dXJsMiwKKyAgICBTQ09QRTEgKyAnc3c9bWFudWFsVGhyb3VnaENhY2hlJnVybD0nICsgZW5jb2Rl
VVJJQ29tcG9uZW50KFNDT1BFMiksCisgICAgU0NPUEUyLAogICAgIFsKLSAgICAgIFt7dXJsOiB1
cmwxLCByZXN1bHRpbmdDbGllbnRJZFRhZzogJ3gnfV0sCi0gICAgICBbe3VybDogdXJsMiwgcmVz
dWx0aW5nQ2xpZW50SWRUYWc6ICd4J31dLAorICAgICAgW1NDT1BFMSArICdzdz1tYW51YWxUaHJv
dWdoQ2FjaGUmdXJsPScgKyBlbmNvZGVVUklDb21wb25lbnQoU0NPUEUyKV0sCisgICAgICBbU0NP
UEUyXSwKICAgICAgIFtdCiAgICAgXSwKLSAgICAneCcsCiAgICAgJ1JlZGlyZWN0IHRvIHNhbWUt
b3JpZ2luIG90aGVyLXNjb3BlIHdpdGggb3BhcXVlIHJlZGlyZWN0IHJlc3BvbnNlIHdoaWNoICcg
KwogICAgICdpcyBwYXNzZWQgdGhyb3VnaCBDYWNoZS4nKTsKLQotdXJsMSA9IFNDT1BFMSArICdz
dz1tYW51YWxUaHJvdWdoQ2FjaGUmdXJsPScgKwotICAgICAgIGVuY29kZVVSSUNvbXBvbmVudChP
VEhFUl9PUklHSU5fT1VUX1NDT1BFKTsKLXVybDIgPSBPVEhFUl9PUklHSU5fT1VUX1NDT1BFOwot
cmVkaXJlY3RfdGVzdCgKLSAgICB1cmwxLAotICAgIHVybDIsCi0gICAgW1t7dXJsOiB1cmwxLCBy
ZXN1bHRpbmdDbGllbnRJZFRhZzogJ2EnfV0sIFtdLCBbXV0sCi0gICAgbnVsbCwKK3JlZGlyZWN0
X3Rlc3QoCisgICAgU0NPUEUxICsgJ3N3PW1hbnVhbFRocm91Z2hDYWNoZSZ1cmw9JyArCisgICAg
ICAgIGVuY29kZVVSSUNvbXBvbmVudChPVEhFUl9PUklHSU5fT1VUX1NDT1BFKSwKKyAgICBPVEhF
Ul9PUklHSU5fT1VUX1NDT1BFLAorICAgIFsKKyAgICAgIFtTQ09QRTEgKyAnc3c9bWFudWFsVGhy
b3VnaENhY2hlJnVybD0nICsKKyAgICAgICAgICBlbmNvZGVVUklDb21wb25lbnQoT1RIRVJfT1JJ
R0lOX09VVF9TQ09QRSkKKyAgICAgIF0sCisgICAgICBbXSwKKyAgICAgIFtdCisgICAgXSwKICAg
ICAnUmVkaXJlY3QgdG8gb3RoZXItb3JpZ2luIG91dC1zY29wZSB3aXRoIG9wYXF1ZSByZWRpcmVj
dCByZXNwb25zZSB3aGljaCAnICsKICAgICAnaXMgcGFzc2VkIHRocm91Z2ggQ2FjaGUuJyk7Ci0K
LXVybDEgPSBTQ09QRTEgKyAnc3c9bWFudWFsVGhyb3VnaENhY2hlJnVybD0nICsKLSAgICAgICBl
bmNvZGVVUklDb21wb25lbnQoT1RIRVJfT1JJR0lOX1NDT1BFKTsKLXVybDIgPSBPVEhFUl9PUklH
SU5fU0NPUEU7CiByZWRpcmVjdF90ZXN0KAotICAgIHVybDEsCi0gICAgdXJsMiwKKyAgICBTQ09Q
RTEgKyAnc3c9bWFudWFsVGhyb3VnaENhY2hlJnVybD0nICsKKyAgICAgICAgZW5jb2RlVVJJQ29t
cG9uZW50KE9USEVSX09SSUdJTl9TQ09QRSksCisgICAgT1RIRVJfT1JJR0lOX1NDT1BFLAogICAg
IFsKLSAgICAgIFt7dXJsOiB1cmwxLCByZXN1bHRpbmdDbGllbnRJZFRhZzogJ2EnfV0sCi0gICAg
ICBbXSwKLSAgICAgIFt7dXJsOiB1cmwyLCByZXN1bHRpbmdDbGllbnRJZFRhZzogJ3gnfV0sCisg
ICAgICBbU0NPUEUxICsgJ3N3PW1hbnVhbFRocm91Z2hDYWNoZSZ1cmw9JyArCisgICAgICAgICAg
ZW5jb2RlVVJJQ29tcG9uZW50KE9USEVSX09SSUdJTl9TQ09QRSldLAorICAgICAgIFtdLAorICAg
ICAgIFtPVEhFUl9PUklHSU5fU0NPUEVdLAogICAgIF0sCi0gICAgJ3gnLAogICAgICdSZWRpcmVj
dCB0byBvdGhlci1vcmlnaW4gaW4tc2NvcGUgd2l0aCBvcGFxdWUgcmVkaXJlY3QgcmVzcG9uc2Ug
d2hpY2ggJyArCiAgICAgJ2lzIHBhc3NlZCB0aHJvdWdoIENhY2hlLicpOwotCi11cmwgPSBTQ09Q
RTEgKyAnc3c9bWFudWFsVGhyb3VnaENhY2hlJm5vTG9jYXRpb25SZWRpcmVjdCc7CiByZWRpcmVj
dF90ZXN0KAotICAgIHVybCwKLSAgICB1cmwsCi0gICAgW1t7dXJsLCByZXN1bHRpbmdDbGllbnRJ
ZFRhZzogJ3gnfV0sIFtdLCBbXV0sCi0gICAgJ3gnLAorICAgIFNDT1BFMSArICdzdz1tYW51YWxU
aHJvdWdoQ2FjaGUmbm9Mb2NhdGlvblJlZGlyZWN0JywKKyAgICBTQ09QRTEgKyAnc3c9bWFudWFs
VGhyb3VnaENhY2hlJm5vTG9jYXRpb25SZWRpcmVjdCcsCisgICAgW1tTQ09QRTEgKyAnc3c9bWFu
dWFsVGhyb3VnaENhY2hlJm5vTG9jYXRpb25SZWRpcmVjdCddLCBbXSwgW11dLAogICAgICdObyBs
b2NhdGlvbiByZWRpcmVjdCByZXNwb25zZSB2aWEgQ2FjaGUuJyk7CiAKIC8vIENsZWFuIHVwIHRo
ZSB0ZXN0IGVudmlyb25tZW50LiBUaGlzIHByb21pc2VfdGVzdCgpIG5lZWRzIHRvIGJlIHRoZSBs
YXN0IG9uZS4KQEAgLTgzOSw3ICs0MTgsNyBAQCBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CiAg
ICAgaWYgKHJlZ2lzdHJhdGlvbikKICAgICAgIGF3YWl0IHJlZ2lzdHJhdGlvbi51bnJlZ2lzdGVy
KCk7CiAgIH0pOwotICBhd2FpdCBzZW5kX3RvX2lmcmFtZShvdGhlcl9vcmlnaW5fZnJhbWUsIHtj
b21tYW5kOiAndW5yZWdpc3Rlcid9KTsKKyAgYXdhaXQgc2VuZF90b19pZnJhbWUob3RoZXJfb3Jp
Z2luX2ZyYW1lLCAndW5yZWdpc3RlcicpOwogICBvdGhlcl9vcmlnaW5fZnJhbWUucmVtb3ZlKCk7
CiB9LCAnY2xlYW4gdXAgZ2xvYmFsIHN0YXRlJyk7CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL29uYWN0aXZhdGUtc2NyaXB0LWVycm9yLmh0dHBzLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9vbmFjdGl2YXRlLXNjcmlwdC1lcnJvci5odHRwcy5odG1sCmluZGV4IGY1
ZTgwYmI5YTQ1NmJjNTdmMmE4MjFlMWZkNjkxMTRlNmFlODYzOGEuLjZjMTYzNTdmM2NjNWFiYTE4
MWVlMDc5OGFjOWZhZGMyMzg4YzNmM2EgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL29u
YWN0aXZhdGUtc2NyaXB0LWVycm9yLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
b25hY3RpdmF0ZS1zY3JpcHQtZXJyb3IuaHR0cHMuaHRtbApAQCAtMzUsNyArMzUsNyBAQCBmdW5j
dGlvbiBtYWtlX3Rlc3QobmFtZSwgc2NyaXB0KSB7CiAgICAgICAgICAgICByZWdpc3RyYXRpb24g
PSByOwogCiAgICAgICAgICAgICB0LmFkZF9jbGVhbnVwKGZ1bmN0aW9uKCkgewotICAgICAgICAg
ICAgICAgIHJldHVybiByLnVucmVnaXN0ZXIoKTsKKyAgICAgICAgICAgICAgICByLnVucmVnaXN0
ZXIoKTsKICAgICAgICAgICAgICAgfSk7CiAKICAgICAgICAgICAgIHJldHVybiB3YWl0X2Zvcl9p
bnN0YWxsKHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL3BlcmZvcm1hbmNlLXRpbWVsaW5lLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9wZXJmb3JtYW5jZS10aW1lbGluZS5odHRwcy5odG1sCmluZGV4IDFmZTE5ZGE1M2JlNmM0NjBj
YWU1ZjA2OTc5NGJiZGVlM2Y0YTBkYTguLmI2NmQ0YTgyMTg2MWI2ZTZlMzdlNDdiNjUyZjMyNzU2
YzgwNjIwNTggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3BlcmZvcm1hbmNlLXRpbWVs
aW5lLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcGVyZm9ybWFuY2UtdGltZWxp
bmUuaHR0cHMuaHRtbApAQCAtMTcsMTEgKzE3LDcgQEAgcHJvbWlzZV90ZXN0KHQgPT4gewogICBs
ZXQgc2xvd1VSTCA9IHVybCArICcmc2xvdyc7CiAgIGxldCBmcmFtZTsKICAgcmV0dXJuIHNlcnZp
Y2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHNjcmlwdCwgc2NvcGUpCi0gICAg
LnRoZW4ocmVnID0+IHsKLSAgICAgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBzZXJ2aWNlX3dvcmtl
cl91bnJlZ2lzdGVyKHQsIHNjb3BlKSk7Ci0KLSAgICAgICAgcmV0dXJuIHdhaXRfZm9yX3N0YXRl
KHQsIHJlZy5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7Ci0gICAgICB9KQorICAgIC50aGVuKHJl
ZyA9PiB3YWl0X2Zvcl9zdGF0ZSh0LCByZWcuaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpKQogICAg
IC50aGVuKF8gPT4gd2l0aF9pZnJhbWUoc2NvcGUpKQogICAgIC50aGVuKGYgPT4gewogICAgICAg
ZnJhbWUgPSBmOwpAQCAtNDMsNiArMzksNyBAQCBwcm9taXNlX3Rlc3QodCA9PiB7CiAgICAgICBh
c3NlcnRfZ3JlYXRlcl90aGFuKHNsb3dVUkxUaW1lLCB1cmxUaW1lICsgMTAwMCwKICAgICAgICAg
ICAgICAgICAgICdTbG93IHNlcnZpY2Ugd29ya2VyIHJlcXVlc3Qgc2hvdWxkIG1lYXN1cmUgaW5j
cmVhc2VkIGRlbGF5LicpOwogICAgICAgZnJhbWUucmVtb3ZlKCk7CisgICAgICByZXR1cm4gc2Vy
dmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfZG9uZSh0LCBzY29wZSk7CiAgICAgfSkKIH0sICdl
bXB0eSBzZXJ2aWNlIHdvcmtlciBmZXRjaCBldmVudCBpbmNsdWRlZCBpbiBwZXJmb3JtYW5jZSB0
aW1pbmdzJyk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Bvc3RtZXNzYWdlLWZy
b20td2FpdGluZy1zZXJ2aWNld29ya2VyLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9w
b3N0bWVzc2FnZS1mcm9tLXdhaXRpbmctc2VydmljZXdvcmtlci5odHRwcy5odG1sCmluZGV4IDEx
N2RlZjllYjJhNmMxMzJkNGQzZjQ0YjFjYjA3YWRjYjllZWVmNjAuLjZkMGE1ZDMyNzRkNDE0YmZj
YTAzMzkwNTQwYzI5NDkwYzY2Mzg4NzggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Bv
c3RtZXNzYWdlLWZyb20td2FpdGluZy1zZXJ2aWNld29ya2VyLmh0dHBzLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvcG9zdG1lc3NhZ2UtZnJvbS13YWl0aW5nLXNlcnZpY2V3b3JrZXIuaHR0
cHMuaHRtbApAQCAtMTYsMTUgKzE2LDEzIEBAIGZ1bmN0aW9uIGVjaG8od29ya2VyLCBkYXRhKSB7
CiAgIH0pOwogfQogCi1wcm9taXNlX3Rlc3QodCA9PiB7Cithc3luY190ZXN0KHQgPT4gewogICBs
ZXQgc2NyaXB0ID0gJ3Jlc291cmNlcy9lY2hvLW1lc3NhZ2UtdG8tc291cmNlLXdvcmtlci5qcyc7
CiAgIGxldCBzY29wZSA9ICdyZXNvdXJjZXMvY2xpZW50LXBvc3RtZXNzYWdlLWZyb20td2FpdC1z
ZXJ2aWNld29ya2VyJzsKICAgbGV0IHJlZ2lzdHJhdGlvbjsKICAgbGV0IGZyYW1lOwotICByZXR1
cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgc2NyaXB0LCBzY29w
ZSkKKyAgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgc2NyaXB0LCBz
Y29wZSkKICAgICAudGhlbihzd3IgPT4gewotICAgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBzZXJ2
aWNlX3dvcmtlcl91bnJlZ2lzdGVyKHQsIHNjb3BlKSk7Ci0KICAgICAgIHJlZ2lzdHJhdGlvbiA9
IHN3cjsKICAgICAgIHJldHVybiB3YWl0X2Zvcl9zdGF0ZSh0LCByZWdpc3RyYXRpb24uaW5zdGFs
bGluZywgJ2FjdGl2YXRlZCcpOwogICAgIH0pLnRoZW4oXyA9PiB7CkBAIC00NSw2ICs0Myw3IEBA
IHByb21pc2VfdGVzdCh0ID0+IHsKICAgICAgIGFzc2VydF9lcXVhbHMoZXZ0LnNvdXJjZSwgcmVn
aXN0cmF0aW9uLmFjdGl2ZSwKICAgICAgICAgICAgICAgICAgICAgJ21lc3NhZ2UgZXZlbnQgc291
cmNlIHNob3VsZCBiZSBjb3JyZWN0Jyk7CiAgICAgICBmcmFtZS5yZW1vdmUoKTsKLSAgICB9KTsK
KyAgICB9KS50aGVuKF8gPT4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfZG9uZSh0LCBz
Y29wZSkgKQorICAgIC5jYXRjaCh1bnJlYWNoZWRfcmVqZWN0aW9uKHQpKTsKIH0sICdDbGllbnQu
cG9zdE1lc3NhZ2UoKSBmcm9tIHdhaXRpbmcgc2VydmljZXdvcmtlci4nKTsKIDwvc2NyaXB0Pgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcG9zdG1lc3NhZ2UtdG8tY2xpZW50LW1lc3Nh
Z2UtcXVldWUuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcG9zdG1lc3Nh
Z2UtdG8tY2xpZW50LW1lc3NhZ2UtcXVldWUuaHR0cHMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAyNWFhZGJhMDA0YmI3OTkzNmJhYzcxZjYxMjYxZDI0MGVjZmIz
NWY4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL3Bvc3RtZXNzYWdlLXRvLWNsaWVudC1tZXNzYWdlLXF1ZXVlLmh0dHBzLWV4
cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDcgKzAsMCBAQAotCi1QQVNTIE1lc3NhZ2Vz
IGZyb20gU2VydmljZVdvcmtlciB0byBDbGllbnQgb25seSByZWNlaXZlZCBhZnRlciBET01Db250
ZW50TG9hZGVkIGV2ZW50LiAKLVBBU1MgTWVzc2FnZXMgZnJvbSBTZXJ2aWNlV29ya2VyIHRvIENs
aWVudCBvbmx5IHJlY2VpdmVkIGFmdGVyIGNhbGxpbmcgc3RhcnRNZXNzYWdlcygpLiAKLVBBU1Mg
TWVzc2FnZXMgZnJvbSBTZXJ2aWNlV29ya2VyIHRvIENsaWVudCBvbmx5IHJlY2VpdmVkIGFmdGVy
IHNldHRpbmcgb25tZXNzYWdlLiAKLVBBU1MgTWljcm90YXNrcyBydW4gYmVmb3JlIGRpc3BhdGNo
aW5nIG1lc3NhZ2VzIGFmdGVyIGNhbGxpbmcgc3RhcnRNZXNzYWdlcygpLiAKLVBBU1MgTWljcm90
YXNrcyBydW4gYmVmb3JlIGRpc3BhdGNoaW5nIG1lc3NhZ2VzIGFmdGVyIHNldHRpbmcgb25tZXNz
YWdlLiAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcG9zdG1lc3NhZ2UtdG8tY2xp
ZW50LW1lc3NhZ2UtcXVldWUuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Bvc3RtZXNz
YWdlLXRvLWNsaWVudC1tZXNzYWdlLXF1ZXVlLmh0dHBzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDgzZTVmNDU0MGQxNDExZTJhMjE1ZWJlNTlkMjAzN2YzNjljNDg2MTYuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvcG9zdG1lc3NhZ2UtdG8tY2xpZW50LW1lc3NhZ2UtcXVldWUuaHR0cHMuaHRtbAorKysg
L2Rldi9udWxsCkBAIC0xLDIxMiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTx0aXRsZT5TZXJ2
aWNlIFdvcmtlcjogcG9zdE1lc3NhZ2UgdG8gQ2xpZW50IChtZXNzYWdlIHF1ZXVlKTwvdGl0bGU+
Ci08c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0IHNyYz0iL2NvbW1vbi9nZXQtaG9zdC1pbmZvLnN1Yi5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0icmVzb3VyY2VzL3Rlc3QtaGVscGVycy5zdWIuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4K
LS8vIFRoaXMgZnVuY3Rpb24gY3JlYXRlcyBhIG1lc3NhZ2UgbGlzdGVuZXIgdGhhdCBjYXB0dXJl
cyBhbGwgbWVzc2FnZXMKLS8vIHNlbnQgdG8gdGhpcyB3aW5kb3cgYW5kIG1hdGNoZXMgdGhlbSB3
aXRoIGNvcnJlc3BvbmRpbmcgcmVxdWVzdHMuCi0vLyBUaGlzIGZyZWVzIHRlc3QgY29kZSBmcm9t
IGhhdmluZyB0byB1c2UgY2x1bmt5IGNvbnN0cnVjdHMganVzdCB0bwotLy8gYXZvaWQgcmFjZSBj
b25kaXRpb25zLCBzaW5jZSB0aGUgcmVsYXRpdmUgb3JkZXIgb2YgbWVzc2FnZSBhbmQKLS8vIHJl
cXVlc3QgYXJyaXZhbCBkb2Vzbid0IG1hdHRlci4KLWZ1bmN0aW9uIGNyZWF0ZV9tZXNzYWdlX2xp
c3RlbmVyKHQpIHsKLSAgICBjb25zdCBsaXN0ZW5lciA9IHsKLSAgICAgICAgbWVzc2FnZXM6IG5l
dyBTZXQoKSwKLSAgICAgICAgcmVxdWVzdHM6IG5ldyBTZXQoKSwKLSAgICAgICAgd2FpdEZvcjog
ZnVuY3Rpb24ocHJlZGljYXRlKSB7Ci0gICAgICAgICAgICBmb3IgKGNvbnN0IGV2ZW50IG9mIHRo
aXMubWVzc2FnZXMpIHsKLSAgICAgICAgICAgICAgICAvLyBJZiBhIG1lc3NhZ2Ugc2F0aXNmeWlu
ZyB0aGUgcHJlZGljYXRlIGhhcyBhbHJlYWR5Ci0gICAgICAgICAgICAgICAgLy8gYXJyaXZlZCwg
aXQgZ2V0cyBtYXRjaGVkIHRvIHRoaXMgcmVxdWVzdC4KLSAgICAgICAgICAgICAgICBpZiAocHJl
ZGljYXRlKGV2ZW50KSkgewotICAgICAgICAgICAgICAgICAgICB0aGlzLm1lc3NhZ2VzLmRlbGV0
ZShldmVudCk7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoZXZl
bnQpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgLy8g
SWYgbm8gbWF0Y2ggd2FzIGZvdW5kLCB0aGUgcmVxdWVzdCBpcyBzdG9yZWQgYW5kIGEKLSAgICAg
ICAgICAgIC8vIHByb21pc2UgaXMgcmV0dXJuZWQuCi0gICAgICAgICAgICBjb25zdCByZXF1ZXN0
ID0geyBwcmVkaWNhdGUgfTsKLSAgICAgICAgICAgIGNvbnN0IHByb21pc2UgPSBuZXcgUHJvbWlz
ZShyZXNvbHZlID0+IHJlcXVlc3QucmVzb2x2ZSA9IHJlc29sdmUpOwotICAgICAgICAgICAgdGhp
cy5yZXF1ZXN0cy5hZGQocmVxdWVzdCk7Ci0gICAgICAgICAgICByZXR1cm4gcHJvbWlzZTsKLSAg
ICAgICAgfQotICAgIH07Ci0gICAgd2luZG93Lm9ubWVzc2FnZSA9IHQuc3RlcF9mdW5jKGV2ZW50
ID0+IHsKLSAgICAgICAgZm9yIChjb25zdCByZXF1ZXN0IG9mIGxpc3RlbmVyLnJlcXVlc3RzKSB7
Ci0gICAgICAgICAgICAvLyBJZiB0aGUgbmV3IG1lc3NhZ2UgbWF0Y2hlcyBhIHN0b3JlZCByZXF1
ZXN0J3MKLSAgICAgICAgICAgIC8vIHByZWRpY2F0ZSwgdGhlIHJlcXVlc3QncyBwcm9taXNlIGlz
IHJlc29sdmVkIHdpdGggdGhpcwotICAgICAgICAgICAgLy8gbWVzc2FnZS4KLSAgICAgICAgICAg
IGlmIChyZXF1ZXN0LnByZWRpY2F0ZShldmVudCkpIHsKLSAgICAgICAgICAgICAgICBsaXN0ZW5l
ci5yZXF1ZXN0cy5kZWxldGUocmVxdWVzdCk7Ci0gICAgICAgICAgICAgICAgcmVxdWVzdC5yZXNv
bHZlKGV2ZW50KTsKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB9Ci0gICAg
ICAgIH07Ci0KLSAgICAgICAgLy8gTm8gb3V0c3RhbmRpbmcgcmVxdWVzdCBmb3IgdGhpcyBtZXNz
YWdlLCBzdG9yZSBpdCBpbiBjYXNlCi0gICAgICAgIC8vIGl0J3MgcmVxdWVzdGVkIGxhdGVyLgot
ICAgICAgICBsaXN0ZW5lci5tZXNzYWdlcy5hZGQoZXZlbnQpOwotICAgIH0pOwotICAgIHJldHVy
biBsaXN0ZW5lcjsKLX0KLQotYXN5bmMgZnVuY3Rpb24gc2VydmljZV93b3JrZXJfcmVnaXN0ZXJf
YW5kX2FjdGl2YXRlKHQsIHNjcmlwdCwgc2NvcGUpIHsKLSAgICBjb25zdCByZWdpc3RyYXRpb24g
PSBhd2FpdCBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCBzY3JpcHQs
IHNjb3BlKTsKLSAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHJlZ2lzdHJhdGlvbi51bnJlZ2lzdGVy
KCkpOwotICAgIGNvbnN0IHdvcmtlciA9IHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nOwotICAgIGF3
YWl0IHdhaXRfZm9yX3N0YXRlKHQsIHdvcmtlciwgJ2FjdGl2YXRlZCcpOwotICAgIHJldHVybiB3
b3JrZXI7Ci19Ci0KLS8vIEFkZCBhbiBpZnJhbWUgKHBhcmVudCkgd2hvc2UgZG9jdW1lbnQgY29u
dGFpbnMgYSBuZXN0ZWQgaWZyYW1lCi0vLyAoY2hpbGQpLCB0aGVuIHNldCB0aGUgY2hpbGQncyBz
cmMgYXR0cmlidXRlIHRvIGNoaWxkX3VybCBhbmQgcmV0dXJuCi0vLyBpdHMgV2luZG93ICh3aXRo
b3V0IHdhaXRpbmcgZm9yIGl0IHRvIGZpbmlzaCBsb2FkaW5nKS4KLWFzeW5jIGZ1bmN0aW9uIHdp
dGhfbmVzdGVkX2lmcmFtZXModCwgY2hpbGRfdXJsKSB7Ci0gICAgY29uc3QgcGFyZW50ID0gYXdh
aXQgd2l0aF9pZnJhbWUoJ3Jlc291cmNlcy9uZXN0ZWQtaWZyYW1lLXBhcmVudC5odG1sP3JvbGU9
cGFyZW50Jyk7Ci0gICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYXJlbnQucmVtb3ZlKCkpOwotICAg
IGNvbnN0IGNoaWxkID0gcGFyZW50LmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ2NoaWxkJyk7Ci0gICAgY2hpbGQuc2V0QXR0cmlidXRlKCdzcmMnLCBjaGlsZF91cmwpOwot
ICAgIHJldHVybiBjaGlsZC5jb250ZW50V2luZG93OwotfQotCi0vLyBSZXR1cm5zIGEgcHJlZGlj
YXRlIG1hdGNoaW5nIGEgZmV0Y2ggbWVzc2FnZSB3aXRoIHRoZSBzcGVjaWZpZWQKLS8vIGtleS4K
LWZ1bmN0aW9uIGZldGNoX21lc3NhZ2Uoa2V5KSB7Ci0gICAgcmV0dXJuIGV2ZW50ID0+IGV2ZW50
LmRhdGEudHlwZSA9PT0gJ2ZldGNoJyAmJiBldmVudC5kYXRhLmtleSA9PT0ga2V5OwotfQotCi0v
LyBSZXR1cm5zIGEgcHJlZGljYXRlIG1hdGNoaW5nIGEgcGluZyBtZXNzYWdlIHdpdGggdGhlIHNw
ZWNpZmllZAotLy8gcGF5bG9hZC4KLWZ1bmN0aW9uIHBpbmdfbWVzc2FnZShkYXRhKSB7Ci0gICAg
cmV0dXJuIGV2ZW50ID0+IGV2ZW50LmRhdGEudHlwZSA9PT0gJ3BpbmcnICYmIGV2ZW50LmRhdGEu
ZGF0YSA9PT0gZGF0YTsKLX0KLQotLy8gQSBjbGllbnQgbWVzc2FnZSBxdWV1ZSB0ZXN0IGlzIGEg
dGVzdGhhcm5lc3MuanMgdGVzdCB3aXRoIHNvbWUKLS8vIGFkZGl0aW9uYWwgc2V0dXA6Ci0vLyAx
LiBBIGxpc3RlbmVyIChzZWUgY3JlYXRlX21lc3NhZ2VfbGlzdGVuZXIpCi0vLyAyLiBBbiBhY3Rp
dmUgc2VydmljZSB3b3JrZXIKLS8vIDMuIFR3byBuZXN0ZWQgaWZyYW1lcwotLy8gNC4gQSBzdGF0
ZSB0cmFuc2l0aW9uIGZ1bmN0aW9uIHRoYXQgY29udHJvbHMgdGhlIG9yZGVyIG9mIGV2ZW50cwot
Ly8gICAgZHVyaW5nIHRoZSB0ZXN0Ci1mdW5jdGlvbiBjbGllbnRfbWVzc2FnZV9xdWV1ZV90ZXN0
KHVybCwgdGVzdF9mdW5jdGlvbiwgZGVzY3JpcHRpb24pIHsKLSAgICBwcm9taXNlX3Rlc3QoYXN5
bmMgdCA9PiB7Ci0gICAgICAgIHQubGlzdGVuZXIgPSBjcmVhdGVfbWVzc2FnZV9saXN0ZW5lcih0
KTsKLQotICAgICAgICBjb25zdCBzY3JpcHQgPSAncmVzb3VyY2VzL3N0YWxsaW5nLXNlcnZpY2Ut
d29ya2VyLmpzJzsKLSAgICAgICAgY29uc3Qgc2NvcGUgPSAncmVzb3VyY2VzLyc7Ci0gICAgICAg
IHQuc2VydmljZV93b3JrZXIgPSBhd2FpdCBzZXJ2aWNlX3dvcmtlcl9yZWdpc3Rlcl9hbmRfYWN0
aXZhdGUodCwgc2NyaXB0LCBzY29wZSk7Ci0KLSAgICAgICAgLy8gV2UgY3JlYXRlIHR3byBuZXN0
ZWQgaWZyYW1lcyBzdWNoIHRoYXQgYm90aCBhcmUgY29udHJvbGxlZCBieQotICAgICAgICAvLyB0
aGUgbmV3bHkgaW5zdGFsbGVkIHNlcnZpY2Ugd29ya2VyLgotICAgICAgICBjb25zdCBjaGlsZF91
cmwgPSB1cmwgKyAnP3JvbGU9Y2hpbGQnOwotICAgICAgICB0LmZyYW1lID0gYXdhaXQgd2l0aF9u
ZXN0ZWRfaWZyYW1lcyh0LCBjaGlsZF91cmwpOwotCi0gICAgICAgIHQuc3RhdGVfdHJhbnNpdGlv
biA9IGFzeW5jIGZ1bmN0aW9uKGZyb20sIHRvLCBzY3JpcHRzKSB7Ci0gICAgICAgICAgICAvLyBB
IHN0YXRlIHRyYW5zaXRpb24gYmVnaW5zIHdpdGggdGhlIGNoaWxkJ3MgcGFyc2VyCi0gICAgICAg
ICAgICAvLyBmZXRjaGluZyBhIHNjcmlwdCBkdWUgdG8gYSA8c2NyaXB0PiB0YWcuIFRoZSByZXF1
ZXN0Ci0gICAgICAgICAgICAvLyBhcnJpdmVzIGF0IHRoZSBzZXJ2aWNlIHdvcmtlciwgd2hpY2gg
bm90aWZpZXMgdGhlCi0gICAgICAgICAgICAvLyBwYXJlbnQsIHdoaWNoIGluIHR1cm4gbm90aWZp
ZXMgdGhlIHRlc3QuIE5vdGUgdGhhdCB0aGUKLSAgICAgICAgICAgIC8vIGV2ZW50IGxvb3Aga2Vl
cHMgc3Bpbm5pbmcgd2hpbGUgdGhlIHBhcnNlciBpcyB3YWl0aW5nLgotICAgICAgICAgICAgY29u
c3QgcmVxdWVzdCA9IGF3YWl0IHRoaXMubGlzdGVuZXIud2FpdEZvcihmZXRjaF9tZXNzYWdlKHRv
KSk7Ci0KLSAgICAgICAgICAgIC8vIFRoZSB0ZXN0IGluc3RydWN0cyB0aGUgc2VydmljZSB3b3Jr
ZXIgdG8gc2VuZCB0d28gcGluZwotICAgICAgICAgICAgLy8gbWVzc2FnZXMgdGhyb3VnaCB0aGUg
Q2xpZW50IGludGVyZmFjZTogZmlyc3QgdG8gdGhlCi0gICAgICAgICAgICAvLyBjaGlsZCwgdGhl
biB0byB0aGUgcGFyZW50LgotICAgICAgICAgICAgdGhpcy5zZXJ2aWNlX3dvcmtlci5wb3N0TWVz
c2FnZShmcm9tKTsKLQotICAgICAgICAgICAgLy8gV2hlbiB0aGUgcGFyZW50IHJlY2VpdmVzIHRo
ZSBwaW5nIG1lc3NhZ2UsIGl0IGZvcndhcmRzCi0gICAgICAgICAgICAvLyBpdCB0byB0aGUgdGVz
dC4gQXNzdW1pbmcgdGhhdCBtZXNzYWdlcyB0byBib3RoIGNoaWxkCi0gICAgICAgICAgICAvLyBh
bmQgcGFyZW50IGFyZSBtYXBwZWQgdG8gdGhlIHNhbWUgdGFzayBxdWV1ZSAodGhpcyBpcwotICAg
ICAgICAgICAgLy8gbm90IFt5ZXRdIHJlcXVpcmVkIGJ5IHRoZSBzcGVjKSwgcmVjZWl2aW5nIHRo
aXMgbWVzc2FnZQotICAgICAgICAgICAgLy8gZ3VhcmFudGVlcyB0aGF0IHRoZSBjaGlsZCBoYXMg
YWxyZWFkeSBkaXNwYXRjaGVkIGl0cwotICAgICAgICAgICAgLy8gbWVzc2FnZSBpZiBpdCB3YXMg
YWxsb3dlZCB0byBkbyBzby4KLSAgICAgICAgICAgIGF3YWl0IHRoaXMubGlzdGVuZXIud2FpdEZv
cihwaW5nX21lc3NhZ2UoZnJvbSkpOwotCi0gICAgICAgICAgICAvLyBGaW5hbGx5LCByZXBseSB0
byB0aGUgc2VydmljZSB3b3JrZXIncyBmZXRjaAotICAgICAgICAgICAgLy8gbm90aWZpY2F0aW9u
IHdpdGggdGhlIHNjcmlwdCBpdCBzaG91bGQgdXNlIGFzIHRoZSBmZXRjaAotICAgICAgICAgICAg
Ly8gcmVxdWVzdCdzIHJlc3BvbnNlLiBUaGlzIGlzIGEgZGVmZW5zaXZlIG1lY2hhbmlzbSB0aGF0
Ci0gICAgICAgICAgICAvLyBlbnN1cmVzIHRoZSBjaGlsZCdzIHBhcnNlciByZWFsbHkgaXMgYmxv
Y2tlZCB1bnRpbCB0aGUKLSAgICAgICAgICAgIC8vIHRlc3QgaXMgcmVhZHkgdG8gY29udGludWUu
Ci0gICAgICAgICAgICByZXF1ZXN0LnBvcnRzWzBdLnBvc3RNZXNzYWdlKFtgc3RhdGUgPSAnJHt0
b30nO2BdLmNvbmNhdChzY3JpcHRzKSk7Ci0gICAgICAgIH07Ci0KLSAgICAgICAgYXdhaXQgdGVz
dF9mdW5jdGlvbih0KTsKLSAgICB9LCBkZXNjcmlwdGlvbik7Ci19Ci0KLWZ1bmN0aW9uIGNsaWVu
dF9tZXNzYWdlX3F1ZXVlX2VuYWJsZV90ZXN0KAotICAgIGluc3RhbGxfc2NyaXB0LAotICAgIHN0
YXJ0X3NjcmlwdCwKLSAgICBlYXJsaWVzdF9kaXNwYXRjaCwKLSAgICBkZXNjcmlwdGlvbikKLXsK
LSAgICBmdW5jdGlvbiBhc3NlcnRfc3RhdGVfbGVzc190aGFuX2VxdWFsKHN0YXRlMSwgc3RhdGUy
LCBleHBsYW5hdGlvbikgewotICAgICAgICBjb25zdCBzdGF0ZXMgPSBbJ2luaXQnLCAnaW5zdGFs
bCcsICdzdGFydCcsICdmaW5pc2gnLCAnbG9hZGVkJ107Ci0gICAgICAgIGNvbnN0IGluZGV4MSA9
IHN0YXRlcy5pbmRleE9mKHN0YXRlMSk7Ci0gICAgICAgIGNvbnN0IGluZGV4MiA9IHN0YXRlcy5p
bmRleE9mKHN0YXRlMik7Ci0gICAgICAgIGlmIChpbmRleDEgPiBpbmRleDIpCi0gICAgICAgICAg
YXNzZXJ0X3VucmVhY2hlZChleHBsYW5hdGlvbik7Ci0gICAgfQotCi0gICAgY2xpZW50X21lc3Nh
Z2VfcXVldWVfdGVzdCgnZW5hYmxlLWNsaWVudC1tZXNzYWdlLXF1ZXVlLmh0bWwnLCBhc3luYyB0
ID0+IHsKLSAgICAgICAgLy8gV2hpbGUgcGFyc2luZyB0aGUgY2hpbGQncyBkb2N1bWVudCwgdGhl
IGNoaWxkIHRyYW5zaXRpb25zCi0gICAgICAgIC8vIGZyb20gdGhlICdpbml0JyBzdGF0ZSBhbGwg
dGhlIHdheSB0byB0aGUgJ2ZpbmlzaCcgc3RhdGUuCi0gICAgICAgIC8vIE9uY2UgcGFyc2luZyBp
cyBmaW5pc2hlZCBpdCB3b3VsZCBlbnRlciB0aGUgZmluYWwgJ2xvYWRlZCcKLSAgICAgICAgLy8g
c3RhdGUuIEFsbCBidXQgdGhlIGxhc3QgdHJhbnNpdGlvbiByZXF1aXJlIGFzc2l0YW5jZSBmcm9t
Ci0gICAgICAgIC8vIHRoZSB0ZXN0LgotICAgICAgICBhd2FpdCB0LnN0YXRlX3RyYW5zaXRpb24o
J2luaXQnLCAnaW5zdGFsbCcsIFtpbnN0YWxsX3NjcmlwdF0pOwotICAgICAgICBhd2FpdCB0LnN0
YXRlX3RyYW5zaXRpb24oJ2luc3RhbGwnLCAnc3RhcnQnLCBbc3RhcnRfc2NyaXB0XSk7Ci0gICAg
ICAgIGF3YWl0IHQuc3RhdGVfdHJhbnNpdGlvbignc3RhcnQnLCAnZmluaXNoJywgW10pOwotCi0g
ICAgICAgIC8vIFdhaXQgZm9yIGFsbCBtZXNzYWdlcyB0byBnZXQgZGlzcGF0Y2hlZCBvbiB0aGUg
Y2hpbGQncwotICAgICAgICAvLyBTZXJ2aWNlV29ya2VyQ29udGFpbmVyIGFuZCB0aGVuIHZlcmlm
eSB0aGF0IGVhY2ggbWVzc2FnZQotICAgICAgICAvLyB3YXMgZGlzcGF0Y2hlZCBhZnRlciB8ZWFy
bGllc3RfZGlzcGF0Y2h8LgotICAgICAgICBjb25zdCByZXBvcnQgPSBhd2FpdCB0LmZyYW1lLnJl
cG9ydDsKLSAgICAgICAgWydpbml0JywgJ2luc3RhbGwnLCAnc3RhcnQnXS5mb3JFYWNoKHN0YXRl
ID0+IHsKLSAgICAgICAgICAgIGNvbnN0IGV4cGxhbmF0aW9uID0gYE1lc3NhZ2Ugc2VudCBpbiBz
dGF0ZSAnJHtzdGF0ZX0nIHdhcyBkaXNwYXRjaGVkIGluICcke3JlcG9ydFtzdGF0ZV19Jywgc2hv
dWxkIGJlIGRpc3BhdGNoZWQgbm8gZWFybGllciB0aGFuICcke2VhcmxpZXN0X2Rpc3BhdGNofSdg
OwotICAgICAgICAgICAgYXNzZXJ0X3N0YXRlX2xlc3NfdGhhbl9lcXVhbChlYXJsaWVzdF9kaXNw
YXRjaCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwb3J0W3N0
YXRlXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwbGFuYXRp
b24pOwotICAgICAgICB9KTsKLSAgICB9LCBkZXNjcmlwdGlvbik7Ci19Ci0KLWNvbnN0IGVtcHR5
X3NjcmlwdCA9IGBgOwotCi1jb25zdCBhZGRfZXZlbnRfbGlzdGVuZXIgPQotICAgIGBuYXZpZ2F0
b3Iuc2VydmljZVdvcmtlci5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgaGFuZGxlX21lc3Nh
Z2UpO2A7Ci0KLWNvbnN0IHNldF9vbm1lc3NhZ2UgPSBgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIu
b25tZXNzYWdlID0gaGFuZGxlX21lc3NhZ2U7YDsKLQotY29uc3Qgc3RhcnRfbWVzc2FnZXMgPSBg
bmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuc3RhcnRNZXNzYWdlcygpO2A7Ci0KLWNsaWVudF9tZXNz
YWdlX3F1ZXVlX2VuYWJsZV90ZXN0KGFkZF9ldmVudF9saXN0ZW5lciwgZW1wdHlfc2NyaXB0LCAn
bG9hZGVkJywKLSAgICAnTWVzc2FnZXMgZnJvbSBTZXJ2aWNlV29ya2VyIHRvIENsaWVudCBvbmx5
IHJlY2VpdmVkIGFmdGVyIERPTUNvbnRlbnRMb2FkZWQgZXZlbnQuJyk7Ci0KLWNsaWVudF9tZXNz
YWdlX3F1ZXVlX2VuYWJsZV90ZXN0KGFkZF9ldmVudF9saXN0ZW5lciwgc3RhcnRfbWVzc2FnZXMs
ICdzdGFydCcsCi0gICAgJ01lc3NhZ2VzIGZyb20gU2VydmljZVdvcmtlciB0byBDbGllbnQgb25s
eSByZWNlaXZlZCBhZnRlciBjYWxsaW5nIHN0YXJ0TWVzc2FnZXMoKS4nKTsKLQotY2xpZW50X21l
c3NhZ2VfcXVldWVfZW5hYmxlX3Rlc3Qoc2V0X29ubWVzc2FnZSwgZW1wdHlfc2NyaXB0LCAnaW5z
dGFsbCcsCi0gICAgJ01lc3NhZ2VzIGZyb20gU2VydmljZVdvcmtlciB0byBDbGllbnQgb25seSBy
ZWNlaXZlZCBhZnRlciBzZXR0aW5nIG9ubWVzc2FnZS4nKTsKLQotY29uc3QgcmVzb2x2ZV9tYW51
YWxfcHJvbWlzZSA9IGByZXNvbHZlX21hbnVhbF9wcm9taXNlKCk7YAotCi1hc3luYyBmdW5jdGlv
biB0ZXN0X21pY3JvdGFza3Nfd2hlbl9jbGllbnRfbWVzc2FnZV9xdWV1ZV9lbmFibGVkKHQsIHNj
cmlwdHMpIHsKLSAgICBhd2FpdCB0LnN0YXRlX3RyYW5zaXRpb24oJ2luaXQnLCAnc3RhcnQnLCBz
Y3JpcHRzLmNvbmNhdChbcmVzb2x2ZV9tYW51YWxfcHJvbWlzZV0pKTsKLSAgICBsZXQgcmVzdWx0
ID0gYXdhaXQgdC5mcmFtZS5yZXN1bHQ7Ci0gICAgYXNzZXJ0X2VxdWFscyhyZXN1bHRbMF0sICdt
aWNyb3Rhc2snLCAnVGhlIG1pY3JvdGFzayB3YXMgZXhlY3V0ZWQgZmlyc3QuJyk7Ci0gICAgYXNz
ZXJ0X2VxdWFscyhyZXN1bHRbMV0sICdtZXNzYWdlJywgJ1RoZSBtZXNzYWdlIHdhcyBkaXNwYXRj
aGVkLicpOwotfQotCi1jbGllbnRfbWVzc2FnZV9xdWV1ZV90ZXN0KCdtZXNzYWdlLXZzLW1pY3Jv
dGFzay5odG1sJywgdCA9PiB7Ci0gICAgcmV0dXJuIHRlc3RfbWljcm90YXNrc193aGVuX2NsaWVu
dF9tZXNzYWdlX3F1ZXVlX2VuYWJsZWQodCwgWwotICAgICAgICBhZGRfZXZlbnRfbGlzdGVuZXIs
Ci0gICAgICAgIHN0YXJ0X21lc3NhZ2VzLAotICAgIF0pOwotfSwgJ01pY3JvdGFza3MgcnVuIGJl
Zm9yZSBkaXNwYXRjaGluZyBtZXNzYWdlcyBhZnRlciBjYWxsaW5nIHN0YXJ0TWVzc2FnZXMoKS4n
KTsKLQotY2xpZW50X21lc3NhZ2VfcXVldWVfdGVzdCgnbWVzc2FnZS12cy1taWNyb3Rhc2suaHRt
bCcsIHQgPT4gewotICAgIHJldHVybiB0ZXN0X21pY3JvdGFza3Nfd2hlbl9jbGllbnRfbWVzc2Fn
ZV9xdWV1ZV9lbmFibGVkKHQsIFtzZXRfb25tZXNzYWdlXSk7Ci19LCAnTWljcm90YXNrcyBydW4g
YmVmb3JlIGRpc3BhdGNoaW5nIG1lc3NhZ2VzIGFmdGVyIHNldHRpbmcgb25tZXNzYWdlLicpOwot
PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9wb3N0bWVzc2FnZS10by1j
bGllbnQuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Bvc3RtZXNzYWdlLXRvLWNsaWVu
dC5odHRwcy5odG1sCmluZGV4IGY4MzRhNGJmZmUyMGM2OWNiZDU3YWU0YzZiZjkyMjA4M2QzNTU0
ZDYuLjE1ZDJlODg5MzM3MDc4ODY5ZTNjM2U5N2QzMTI2NDllNmE4YmQ4YjIgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL3Bvc3RtZXNzYWdlLXRvLWNsaWVudC5odHRwcy5odG1sCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL3Bvc3RtZXNzYWdlLXRvLWNsaWVudC5odHRwcy5odG1sCkBAIC01
LDM4ICs1LDUwIEBACiA8c2NyaXB0IHNyYz0iL2NvbW1vbi9nZXQtaG9zdC1pbmZvLnN1Yi5qcyI+
PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Rlc3QtaGVscGVycy5zdWIuanMiPjwv
c2NyaXB0PgogPHNjcmlwdD4KLXByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKLSAgY29uc3Qgc2Ny
aXB0ID0gJ3Jlc291cmNlcy9wb3N0bWVzc2FnZS10by1jbGllbnQtd29ya2VyLmpzJzsKLSAgY29u
c3Qgc2NvcGUgPSAncmVzb3VyY2VzL2JsYW5rLmh0bWwnOworcHJvbWlzZV90ZXN0KHQgPT4gewor
ICAgIHZhciBzY3JpcHQgPSAncmVzb3VyY2VzL3Bvc3RtZXNzYWdlLXRvLWNsaWVudC13b3JrZXIu
anMnOworICAgIHZhciBzY29wZSA9ICdyZXNvdXJjZXMvYmxhbmsuaHRtbCc7CisgICAgdmFyIHc7
CiAKLSAgY29uc3QgcmVnaXN0cmF0aW9uID0KLSAgICAgIGF3YWl0IHNlcnZpY2Vfd29ya2VyX3Vu
cmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHNjcmlwdCwgc2NvcGUpOwotICB0LmFkZF9jbGVhbnVw
KCgpID0+IHJlZ2lzdHJhdGlvbi51bnJlZ2lzdGVyKCkpOwotICBhd2FpdCB3YWl0X2Zvcl9zdGF0
ZSh0LCByZWdpc3RyYXRpb24uaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOwotICBjb25zdCBmcmFt
ZSA9IGF3YWl0IHdpdGhfaWZyYW1lKHNjb3BlKTsKLSAgdC5hZGRfY2xlYW51cCgoKSA9PiBmcmFt
ZS5yZW1vdmUoKSk7Ci0gIGNvbnN0IHcgPSBmcmFtZS5jb250ZW50V2luZG93OworICAgIHJldHVy
biBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCBzY3JpcHQsIHNjb3Bl
KQorICAgICAgLnRoZW4ocmVnaXN0cmF0aW9uID0+IHsKKyAgICAgICAgICB0LmFkZF9jbGVhbnVw
KCgpID0+IHJlZ2lzdHJhdGlvbi51bnJlZ2lzdGVyKCkpOworICAgICAgICAgIHJldHVybiB3YWl0
X2Zvcl9zdGF0ZSh0LCByZWdpc3RyYXRpb24uaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOworICAg
ICAgICB9KQorICAgICAgLnRoZW4oKCkgPT4gd2l0aF9pZnJhbWUoc2NvcGUpKQorICAgICAgLnRo
ZW4oZnJhbWUgPT4geworICAgICAgICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gZnJhbWUucmVtb3Zl
KCkpOwogCi0gIHcubmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuY29udHJvbGxlci5wb3N0TWVzc2Fn
ZSgncGluZycpOwotICBsZXQgZSA9IGF3YWl0IG5ldyBQcm9taXNlKHIgPT4gdy5uYXZpZ2F0b3Iu
c2VydmljZVdvcmtlci5vbm1lc3NhZ2UgPSByKTsKLQotICBhc3NlcnRfZXF1YWxzKGUuY29uc3Ry
dWN0b3IsIHcuTWVzc2FnZUV2ZW50LAotICAgICAgICAgICAgICAgICdtZXNzYWdlIGV2ZW50cyBz
aG91bGQgdXNlIE1lc3NhZ2VFdmVudCBpbnRlcmZhY2UuJyk7Ci0gIGFzc2VydF9lcXVhbHMoZS50
eXBlLCAnbWVzc2FnZScsICd0eXBlIHNob3VsZCBiZSAibWVzc2FnZSIuJyk7Ci0gIGFzc2VydF9m
YWxzZShlLmJ1YmJsZXMsICdtZXNzYWdlIGV2ZW50cyBzaG91bGQgbm90IGJ1YmJsZS4nKTsKLSAg
YXNzZXJ0X2ZhbHNlKGUuY2FuY2VsYWJsZSwgJ21lc3NhZ2UgZXZlbnRzIHNob3VsZCBub3QgYmUg
Y2FuY2VsYWJsZS4nKTsKLSAgYXNzZXJ0X2VxdWFscyhlLm9yaWdpbiwgbG9jYXRpb24ub3JpZ2lu
LAotICAgICAgICAgICAgICAgICdvcmlnaW4gb2YgbWVzc2FnZSBzaG91bGQgYmUgb3JpZ2luIG9m
IFNlcnZpY2UgV29ya2VyLicpOwotICBhc3NlcnRfZXF1YWxzKGUubGFzdEV2ZW50SWQsICcnLAot
ICAgICAgICAgICAgICAgICdsYXN0RXZlbnRJZCBzaG91bGQgYmUgYW4gZW1wdHkgc3RyaW5nLicp
OwotICBhc3NlcnRfZXF1YWxzKGUuc291cmNlLmNvbnN0cnVjdG9yLCB3LlNlcnZpY2VXb3JrZXIs
Ci0gICAgICAgICAgICAgICAgJ3NvdXJjZSBzaG91bGQgdXNlIFNlcnZpY2VXb3JrZXIgaW50ZXJm
YWNlLicpOwotICBhc3NlcnRfZXF1YWxzKGUuc291cmNlLCB3Lm5hdmlnYXRvci5zZXJ2aWNlV29y
a2VyLmNvbnRyb2xsZXIsCi0gICAgICAgICAgICAgICAgJ3NvdXJjZSBzaG91bGQgYmUgdGhlIHNl
cnZpY2Ugd29ya2VyIHRoYXQgc2VudCB0aGUgbWVzc2FnZS4nKTsKLSAgYXNzZXJ0X2VxdWFscyhl
LnBvcnRzLmxlbmd0aCwgMCwgJ3BvcnRzIHNob3VsZCBiZSBhbiBlbXB0eSBhcnJheS4nKTsKLSAg
YXNzZXJ0X2VxdWFscyhlLmRhdGEsICdTZW5kaW5nIG1lc3NhZ2UgdmlhIGNsaWVudHMnKTsKLQot
ICBlID0gYXdhaXQgbmV3IFByb21pc2UociA9PiB3Lm5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLm9u
bWVzc2FnZSA9IHIpOwotICBhc3NlcnRfZXF1YWxzKGUuZGF0YSwgJ3F1aXQnKTsKLX0sICdwb3N0
TWVzc2FnZSBmcm9tIFNlcnZpY2VXb3JrZXIgdG8gQ2xpZW50LicpOworICAgICAgICAgIHJldHVy
biBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHsKKyAgICAgICAgICAgICAgdyA9IGZyYW1lLmNvbnRl
bnRXaW5kb3c7CisgICAgICAgICAgICAgIHcubmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIub25tZXNz
YWdlID0gcmVzb2x2ZTsKKyAgICAgICAgICAgICAgdy5uYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5j
b250cm9sbGVyLnBvc3RNZXNzYWdlKCdwaW5nJyk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAg
fSkKKyAgICAgIC50aGVuKGUgPT4geworICAgICAgICAgIHZhciBtZXNzYWdlID0gZS5kYXRhOwor
ICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS5jb25zdHJ1Y3Rvciwgdy5NZXNzYWdlRXZlbnQsCisg
ICAgICAgICAgICAgICAgICAgICAgICAnbWVzc2FnZSBldmVudHMgc2hvdWxkIHVzZSBNZXNzYWdl
RXZlbnQgaW50ZXJmYWNlLicpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50eXBlLCAnbWVz
c2FnZScsICd0eXBlIHNob3VsZCBiZSAibWVzc2FnZSIuJyk7CisgICAgICAgICAgYXNzZXJ0X2Vx
dWFscyhlLmJ1YmJsZXMsIGZhbHNlLCAnbWVzc2FnZSBldmVudHMgc2hvdWxkIG5vdCBidWJibGUu
Jyk7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLmNhbmNlbGFibGUsIGZhbHNlLAorICAgICAg
ICAgICAgICAgICAgICAgICAgJ21lc3NhZ2UgZXZlbnRzIHNob3VsZCBub3QgYmUgY2FuY2VsYWJs
ZS4nKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKAorICAgICAgICAgICAgICBlLm9yaWdpbiwg
bG9jYXRpb24ub3JpZ2luLAorICAgICAgICAgICAgICAnb3JpZ2luIG9mIG1lc3NhZ2Ugc2hvdWxk
IGJlIG9yaWdpbiBvZiBTZXJ2aWNlIFdvcmtlci4nKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxz
KGUubGFzdEV2ZW50SWQsICcnLAorICAgICAgICAgICAgICAgICAgICAgICAgJ2xhc3RFdmVudElk
IHNob3VsZCBiZSBhbiBlbXB0eSBzdHJpbmcuJyk7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhl
LnNvdXJjZS5jb25zdHJ1Y3Rvciwgdy5TZXJ2aWNlV29ya2VyLAorICAgICAgICAgICAgICAgICAg
ICAgICAgJ3NvdXJjZSBzaG91bGQgdXNlIFNlcnZpY2VXb3JrZXIgaW50ZXJmYWNlLicpOworICAg
ICAgICAgIGFzc2VydF9lcXVhbHMoCisgICAgICAgICAgICAgIGUuc291cmNlLCB3Lm5hdmlnYXRv
ci5zZXJ2aWNlV29ya2VyLmNvbnRyb2xsZXIsCisgICAgICAgICAgICAgICdzb3VyY2Ugc2hvdWxk
IGJlIHRoZSBzZXJ2aWNlIHdvcmtlciB0aGF0IHNlbnQgdGhlIG1lc3NhZ2UuJyk7CisgICAgICAg
ICAgYXNzZXJ0X2VxdWFscyhlLnBvcnRzLmxlbmd0aCwgMCwgJ3BvcnRzIHNob3VsZCBiZSBhbiBl
bXB0eSBhcnJheS4nKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKG1lc3NhZ2UsICdTZW5kaW5n
IG1lc3NhZ2UgdmlhIGNsaWVudHMnKTsKKyAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UocmVz
b2x2ZSA9PiB7CisgICAgICAgICAgICAgIHcubmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIub25tZXNz
YWdlID0gcmVzb2x2ZTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KQorICAgICAgLnRoZW4o
ZSA9PiB7IGFzc2VydF9lcXVhbHMoZS5kYXRhLCAncXVpdCcpOyB9KTsKKyAgfSwgJ3Bvc3RNZXNz
YWdlIGZyb20gU2VydmljZVdvcmtlciB0byBDbGllbnQuJyk7CiA8L3NjcmlwdD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Bvc3RtZXNzYWdlLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL3Bvc3RtZXNzYWdlLmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCA3OWFi
ZTQyMjc2NDk4OWQxZDE1MTBhZGI2YmRhMjZjNzFjMDFlYTAxLi41NjE1NDFiNjc3ZGM2NDk2MzU4
MWFlYzMwMjk1M2FjYzBkYzljZGNlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9wb3N0
bWVzc2FnZS5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcG9zdG1l
c3NhZ2UuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0zLDUgKzMsNCBAQCBQQVNTIHBvc3RNZXNzYWdl
IHRvIGEgU2VydmljZVdvcmtlciAoYW5kIGJhY2sgdmlhIE1lc3NhZ2VQb3J0KQogUEFTUyBwb3N0
TWVzc2FnZSBhIHRyYW5zZmVyYWJsZSBBcnJheUJ1ZmZlciBiZXR3ZWVuIFNlcnZpY2VXb3JrZXIg
YW5kIENsaWVudCAKIFBBU1MgcG9zdE1lc3NhZ2UgYSB0cmFuc2ZlcmFibGUgQXJyYXlCdWZmZXIg
YmV0d2VlbiBTZXJ2aWNlV29ya2VyIGFuZCBDbGllbnQgb3ZlciBNZXNzYWdlUG9ydCAKIEZBSUwg
cG9zdE1lc3NhZ2Ugd2l0aCBkaWN0aW9uYXJ5IGEgdHJhbnNmZXJhYmxlIEFycmF5QnVmZmVyIGJl
dHdlZW4gU2VydmljZVdvcmtlciBhbmQgQ2xpZW50IHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJl
amVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogVHlwZSBlcnJvciIKLUZBSUwg
cG9zdE1lc3NhZ2UgdG8gYSByZWR1bmRhbnQgd29ya2VyIHByb21pc2VfdGVzdDogVW5oYW5kbGVk
IHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIkludmFsaWRTdGF0ZUVycm9yOiBTZXJ2aWNl
IFdvcmtlciBzdGF0ZSBpcyByZWR1bmRhbnQiCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3Bvc3RtZXNzYWdlLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9wb3N0bWVzc2Fn
ZS5odHRwcy5odG1sCmluZGV4IDdhYmIzMDIyZjkxYThkYWE1YmYwZjk4ZmEwZDQ3OTM3ODBmNDg0
NGMuLjNkNzNhZmU5Nzk2MTE0ZjQyZTYxNDI5MmVmNGIxODBkZDc4Y2RlZTUgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL3Bvc3RtZXNzYWdlLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvcG9zdG1lc3NhZ2UuaHR0cHMuaHRtbApAQCAtMTMsNyArMTMsMTEgQEAgcHJvbWlz
ZV90ZXN0KHQgPT4gewogCiAgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5k
X3JlZ2lzdGVyKHQsIHNjcmlwdCwgc2NvcGUpCiAgICAgICAudGhlbihyID0+IHsKLSAgICAgICAg
ICB0LmFkZF9jbGVhbnVwKCgpID0+IHIudW5yZWdpc3RlcigpKTsKKyAgICAgICAgICAvLyBUT0RP
OiByZXR1cm4gdGhlIFByb21pc2UgY3JlYXRlZCBieSBgci51bnJlZ2lzdGVyYG9uY2UKKyAgICAg
ICAgICAvLyBgdGVzdGhhcm5lc3MuanNgIGhhcyBiZWVuIHVwZGF0ZWQgdG8gaG9ub3IgdGhlbmFi
bGVzIHJldHVybmVkIGJ5CisgICAgICAgICAgLy8gY2xlYW51cCBmdW5jdGlvbnMuCisgICAgICAg
ICAgLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L3B1bGwv
ODc0OAorICAgICAgICAgIHQuYWRkX2NsZWFudXAoKCkgPT4geyByLnVucmVnaXN0ZXIoKTsgfSk7
CiAgICAgICAgICAgcmVnaXN0cmF0aW9uID0gcjsKICAgICAgICAgICB3b3JrZXIgPSByZWdpc3Ry
YXRpb24uaW5zdGFsbGluZzsKIApAQCAtMzksNiArNDMsMTUgQEAgcHJvbWlzZV90ZXN0KHQgPT4g
ewogICAgICAgLnRoZW4oZSA9PiB7CiAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLmRhdGEsICdx
dWl0Jyk7CiAgICAgICAgICAgcmV0dXJuIHJlZ2lzdHJhdGlvbi51bnJlZ2lzdGVyKHNjb3BlKTsK
KyAgICAgICAgfSkKKyAgICAgIC50aGVuKCgpID0+IHsgcmV0dXJuIHdhaXRfZm9yX3N0YXRlKHQs
IHdvcmtlciwgJ3JlZHVuZGFudCcpOyB9KQorICAgICAgLnRoZW4oKCkgPT4geworICAgICAgICAg
IGFzc2VydF9lcXVhbHMod29ya2VyLnN0YXRlLCAncmVkdW5kYW50Jyk7CisgICAgICAgICAgYXNz
ZXJ0X3Rocm93cygKKyAgICAgICAgICAgIHtuYW1lOidJbnZhbGlkU3RhdGVFcnJvcid9LAorICAg
ICAgICAgICAgZnVuY3Rpb24oKSB7IHdvcmtlci5wb3N0TWVzc2FnZSgnJyk7IH0sCisgICAgICAg
ICAgICAnQ2FsbGluZyBwb3N0TWVzc2FnZSBvbiBhIHJlZHVuZGFudCBTZXJ2aWNlV29ya2VyIHNo
b3VsZCAnICsKKyAgICAgICAgICAgICAgICAndGhyb3cgSW52YWxpZFN0YXRlRXJyb3IuJyk7CiAg
ICAgICAgIH0pOwogICB9LCAncG9zdE1lc3NhZ2UgdG8gYSBTZXJ2aWNlV29ya2VyIChhbmQgYmFj
ayB2aWEgTWVzc2FnZVBvcnQpJyk7CiAKQEAgLTUzLDcgKzY2LDExIEBAIHByb21pc2VfdGVzdCh0
ID0+IHsKIAogICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rl
cih0LCBzY3JpcHQsIHNjb3BlKQogICAgICAgLnRoZW4ociA9PiB7Ci0gICAgICAgICAgdC5hZGRf
Y2xlYW51cCgoKSA9PiByLnVucmVnaXN0ZXIoKSk7CisgICAgICAgICAgLy8gVE9ETzogcmV0dXJu
IHRoZSBQcm9taXNlIGNyZWF0ZWQgYnkgYHIudW5yZWdpc3RlcmBvbmNlCisgICAgICAgICAgLy8g
YHRlc3RoYXJuZXNzLmpzYCBoYXMgYmVlbiB1cGRhdGVkIHRvIGhvbm9yIHRoZW5hYmxlcyByZXR1
cm5lZCBieQorICAgICAgICAgIC8vIGNsZWFudXAgZnVuY3Rpb25zLgorICAgICAgICAgIC8vIFNl
ZSBodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9wdWxsLzg3NDgKKyAg
ICAgICAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHsgci51bnJlZ2lzdGVyKCk7IH0pOwogCiAgICAg
ICAgICAgdmFyIGFiID0gdGV4dF9lbmNvZGVyLmVuY29kZShtZXNzYWdlKTsKICAgICAgICAgICBh
c3NlcnRfZXF1YWxzKGFiLmJ5dGVMZW5ndGgsIG1lc3NhZ2UubGVuZ3RoKTsKQEAgLTkzLDcgKzEx
MCwxMSBAQCBwcm9taXNlX3Rlc3QodCA9PiB7CiAKICAgICByZXR1cm4gc2VydmljZV93b3JrZXJf
dW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgc2NyaXB0LCBzY29wZSkKICAgICAgIC50aGVuKHIg
PT4gewotICAgICAgICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gci51bnJlZ2lzdGVyKCkpOworICAg
ICAgICAgIC8vIFRPRE86IHJldHVybiB0aGUgUHJvbWlzZSBjcmVhdGVkIGJ5IGByLnVucmVnaXN0
ZXJgb25jZQorICAgICAgICAgIC8vIGB0ZXN0aGFybmVzcy5qc2AgaGFzIGJlZW4gdXBkYXRlZCB0
byBob25vciB0aGVuYWJsZXMgcmV0dXJuZWQgYnkKKyAgICAgICAgICAvLyBjbGVhbnVwIGZ1bmN0
aW9ucy4KKyAgICAgICAgICAvLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10
ZXN0cy93cHQvcHVsbC84NzQ4CisgICAgICAgICAgdC5hZGRfY2xlYW51cCgoKSA9PiB7IHIudW5y
ZWdpc3RlcigpOyB9KTsKIAogICAgICAgICAgIHZhciBjaGFubmVsID0gbmV3IE1lc3NhZ2VDaGFu
bmVsOwogICAgICAgICAgIHBvcnQgPSBjaGFubmVsLnBvcnQxOwpAQCAtMTY5LDM0ICsxOTAsNCBA
QCBwcm9taXNlX3Rlc3QodCA9PiB7CiAgICAgICAgIH0pOwogICB9LCAncG9zdE1lc3NhZ2Ugd2l0
aCBkaWN0aW9uYXJ5IGEgdHJhbnNmZXJhYmxlIEFycmF5QnVmZmVyIGJldHdlZW4gU2VydmljZVdv
cmtlciBhbmQgQ2xpZW50Jyk7CiAKLSAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewotICAgIGNv
bnN0IGZpcnN0U2NyaXB0ID0gJ3Jlc291cmNlcy9wb3N0bWVzc2FnZS1lY2hvLXdvcmtlci5qcz9v
bmUnOwotICAgIGNvbnN0IHNlY29uZFNjcmlwdCA9ICdyZXNvdXJjZXMvcG9zdG1lc3NhZ2UtZWNo
by13b3JrZXIuanM/dHdvJzsKLSAgICBjb25zdCBzY29wZSA9ICdyZXNvdXJjZXMvJzsKLQotICAg
IGNvbnN0IHJlZ2lzdHJhdGlvbiA9IGF3YWl0IHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5k
X3JlZ2lzdGVyKHQsIGZpcnN0U2NyaXB0LCBzY29wZSk7Ci0gICAgdC5hZGRfY2xlYW51cCgoKSA9
PiByZWdpc3RyYXRpb24udW5yZWdpc3RlcigpKTsKLSAgICBjb25zdCBmaXJzdFdvcmtlciA9IHJl
Z2lzdHJhdGlvbi5pbnN0YWxsaW5nOwotCi0gICAgY29uc3QgbWVzc2FnZVByb21pc2UgPSBuZXcg
UHJvbWlzZShyZXNvbHZlID0+IHsKLSAgICAgIG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLmFkZEV2
ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCAoZXZlbnQpID0+IHsKLSAgICAgICAgcmVzb2x2ZShldmVu
dC5kYXRhKTsKLSAgICAgIH0sIHtvbmNlOiB0cnVlfSk7Ci0gICAgfSk7Ci0KLSAgICBhd2FpdCB3
YWl0X2Zvcl9zdGF0ZSh0LCBmaXJzdFdvcmtlciwgJ2FjdGl2YXRlZCcpOwotICAgIGF3YWl0IG5h
dmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKHNlY29uZFNjcmlwdCwge3Njb3BlfSk7Ci0g
ICAgY29uc3Qgc2Vjb25kV29ya2VyID0gcmVnaXN0cmF0aW9uLmluc3RhbGxpbmc7Ci0gICAgYXdh
aXQgd2FpdF9mb3Jfc3RhdGUodCwgZmlyc3RXb3JrZXIsICdyZWR1bmRhbnQnKTsKLQotICAgIC8v
IHBvc3RNZXNzYWdlKCkgdG8gYSByZWR1bmRhbnQgd29ya2VyIHNob3VsZCBiZSBkcm9wcGVkIHNp
bGVudGx5LgotICAgIC8vIEhpc3RvcmljYWxseSwgdGhpcyB0aHJldyBhbiBleGNlcHRpb24uCi0g
ICAgZmlyc3RXb3JrZXIucG9zdE1lc3NhZ2UoJ2ZpcnN0V29ya2VyJyk7Ci0KLSAgICAvLyBUbyB0
ZXN0IHNvbWV3aGF0IHRoYXQgaXQgd2FzIG5vdCByZWNlaXZlZCwgc2VuZCBhIG1lc3NhZ2UgdG8g
YW5vdGhlcgotICAgIC8vIHdvcmtlciBhbmQgY2hlY2sgdGhhdCB3ZSBnZXQgYSByZXBseSBmb3Ig
dGhhdCBvbmUuCi0gICAgc2Vjb25kV29ya2VyLnBvc3RNZXNzYWdlKCdzZWNvbmRXb3JrZXInKTsK
LSAgICBjb25zdCBkYXRhID0gYXdhaXQgbWVzc2FnZVByb21pc2U7Ci0gICAgYXNzZXJ0X2VxdWFs
cyhkYXRhLCAnc2Vjb25kV29ya2VyJyk7Ci0gIH0sICdwb3N0TWVzc2FnZSB0byBhIHJlZHVuZGFu
dCB3b3JrZXInKTsKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVh
ZHkuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlYWR5Lmh0dHBzLmh0bWwKaW5kZXgg
NmMxZWQ4MjJhODc3OGM4NGZmMTUxYTY4MGVkMGI0YzRmYmRiNTNjYS4uZmY1Yzc5M2YyYzIyMDhl
OWFjMjk4ZTZiODJhZGY3NDVhZTRjNjVlOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
cmVhZHkuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZWFkeS5odHRwcy5odG1s
CkBAIC0yNTAsNjggKzI1MCw1MSBAQCBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewogICB9LCAn
YWNjZXNzIHJlYWR5IGFmdGVyIGl0IGhhcyBiZWVuIHJlc29sdmVkJyk7CiAKIHByb21pc2VfdGVz
dChhc3luYyBmdW5jdGlvbih0KSB7Ci0gIGNvbnN0IHVybDEgPSAncmVzb3VyY2VzL2VtcHR5LXdv
cmtlci5qcyc7Ci0gIGNvbnN0IHVybDIgPSB1cmwxICsgJz8yJzsKLSAgY29uc3QgbWF0Y2hlZF9z
Y29wZSA9ICdyZXNvdXJjZXMvYmxhbmsuaHRtbD9yZWFkeS1hZnRlci11bnJlZ2lzdGVyJzsKLQot
ICBjb25zdCByZWcxID0gYXdhaXQgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0
ZXIodCwgdXJsMSwgbWF0Y2hlZF9zY29wZSk7Ci0gIHQuYWRkX2NsZWFudXAoKCkgPT4gcmVnMS51
bnJlZ2lzdGVyKCkpOwotCi0gIGF3YWl0IHdhaXRfZm9yX3N0YXRlKHQsIHJlZzEuaW5zdGFsbGlu
ZywgJ2FjdGl2YXRpbmcnKTsKLSAgLy8gVGhpcyByZWdpc3RyYXRpb24gd2lsbCByZXNvbHZlIGFs
bCByZWFkeSBwcm9taXNlcyBpbiBjbGllbnRzIHRoYXQgbWF0Y2ggdGhlIHNjb3BlLgotICAvLyBC
dXQgdGhlcmUgYXJlIG5vIGNsaWVudHMuCi0KLSAgY29uc3QgZnJhbWUgPSBhd2FpdCB3aXRoX2lm
cmFtZShtYXRjaGVkX3Njb3BlKTsKLSAgdC5hZGRfY2xlYW51cCgoKSA9PiBmcmFtZS5yZW1vdmUo
KSk7Ci0KLSAgYXdhaXQgcmVnMS51bnJlZ2lzdGVyKCk7Ci0KLSAgLy8gQWNjZXNzIHRoZSByZWFk
eSBwcm9taXNlIHdoaWxlIHRoZSByZWdpc3RyYXRpb24gaXMgdW5yZWdpc3RlcmluZy4KLSAgY29u
c3QgcmVhZHlQcm9taXNlID0gZnJhbWUuY29udGVudFdpbmRvdy5uYXZpZ2F0b3Iuc2VydmljZVdv
cmtlci5yZWFkeTsKLQotICAvLyBDcmVhdGUgYSBuZXcgcmVnaXN0cmF0aW9uLgotICBjb25zdCBy
ZWcyID0gYXdhaXQgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIodXJsMiwgeyBzY29w
ZTogbWF0Y2hlZF9zY29wZSB9KTsKLSAgdC5hZGRfY2xlYW51cCgoKSA9PiByZWcyLnVucmVnaXN0
ZXIoKSk7Ci0gIC8vIFRoaXMgcmVnaXN0cmF0aW9uIHdpbGwgcmVzb2x2ZSBhbGwgcmVhZHkgcHJv
bWlzZXMgaW4gY2xpZW50cyB0aGF0IG1hdGNoIHRoZSBzY29wZS4KLSAgLy8gVGhhdCBpbmNsdWRl
cyBmcmFtZSdzIGNsaWVudC4KLQotICBjb25zdCByZWFkeVJlZyA9IGF3YWl0IHJlYWR5UHJvbWlz
ZTsKLQotICBhc3NlcnRfZXF1YWxzKHJlYWR5UmVnLmFjdGl2ZS5zY3JpcHRVUkwsIHJlZzIuYWN0
aXZlLnNjcmlwdFVSTCwgJ1Jlc29sdmVzIHdpdGggdGhlIHNlY29uZCByZWdpc3RyYXRpb24nKTsK
LSAgYXNzZXJ0X25vdF9lcXVhbHMocmVnMSwgcmVnMiwgJ1JlZ2lzdHJhdGlvbnMgc2hvdWxkIGJl
IGRpZmZlcmVudCcpOwotfSwgJ3Jlc29sdmUgcmVhZHkgYWZ0ZXIgdW5yZWdpc3RlcmluZyBhbmQg
cmVyZWdpc3RlcmluZycpOwotCi1wcm9taXNlX3Rlc3QoYXN5bmMgZnVuY3Rpb24odCkgewotICBj
b25zdCB1cmwxID0gJ3Jlc291cmNlcy9lbXB0eS13b3JrZXIuanMnOwotICBjb25zdCB1cmwyID0g
dXJsMSArICc/Mic7Ci0gIGNvbnN0IG1hdGNoZWRfc2NvcGUgPSAncmVzb3VyY2VzL2JsYW5rLmh0
bWw/cmVhZHktYWZ0ZXItdW5yZWdpc3Rlcic7Ci0KLSAgY29uc3QgZnJhbWUgPSBhd2FpdCB3aXRo
X2lmcmFtZShtYXRjaGVkX3Njb3BlKTsKLSAgdC5hZGRfY2xlYW51cCgoKSA9PiBmcmFtZS5yZW1v
dmUoKSk7Ci0KLSAgY29uc3QgcmVnMSA9IGF3YWl0IHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJf
YW5kX3JlZ2lzdGVyKHQsIHVybDEsIG1hdGNoZWRfc2NvcGUpOwotICB0LmFkZF9jbGVhbnVwKCgp
ID0+IHJlZzEudW5yZWdpc3RlcigpKTsKLQotICBhd2FpdCB3YWl0X2Zvcl9zdGF0ZSh0LCByZWcx
Lmluc3RhbGxpbmcsICdhY3RpdmF0ZWQnKTsKLSAgLy8gVGhpcyByZWdpc3RyYXRpb24gd2lsbCBy
ZXNvbHZlIGFsbCByZWFkeSBwcm9taXNlcyBpbiBjbGllbnRzIHRoYXQgbWF0Y2ggdGhlIHNjb3Bl
LgotICAvLyBUaGF0IGluY2x1ZGVzIGZyYW1lJ3MgY2xpZW50LgotCi0gIGNvbnN0IHJlZzFBY3Rp
dmUgPSByZWcxLmFjdGl2ZTsKLQotICBhd2FpdCByZWcxLnVucmVnaXN0ZXIoKTsKLQotICAvLyBB
Y2Nlc3MgdGhlIHJlYWR5IHByb21pc2Ugd2hpbGUgdGhlIHJlZ2lzdHJhdGlvbiBpcyB1bnJlZ2lz
dGVyaW5nLgotICBjb25zdCByZWFkeVByb21pc2UgPSBmcmFtZS5jb250ZW50V2luZG93Lm5hdmln
YXRvci5zZXJ2aWNlV29ya2VyLnJlYWR5OwotCi0gIC8vIENyZWF0ZSBhIG5ldyByZWdpc3RyYXRp
b24uCi0gIGNvbnN0IHJlZzIgPSBhd2FpdCBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3Rl
cih1cmwyLCB7IHNjb3BlOiBtYXRjaGVkX3Njb3BlIH0pOwotICB0LmFkZF9jbGVhbnVwKCgpID0+
IHJlZzIudW5yZWdpc3RlcigpKTsKLSAgLy8gVGhpcyByZWdpc3RyYXRpb24gd2lsbCByZXNvbHZl
IGFsbCByZWFkeSBwcm9taXNlcyBpbiBjbGllbnRzIHRoYXQgbWF0Y2ggdGhlIHNjb3BlLgotICAv
LyBUaGF0IGluY2x1ZGVzIGZyYW1lJ3MgY2xpZW50LCBidXQgaXRzIHJlYWR5IHByb21pc2UgaGFz
IGFscmVhZHkgcmVzb2x2ZWQuCi0KLSAgY29uc3QgcmVhZHlSZWcgPSBhd2FpdCByZWFkeVByb21p
c2U7Ci0KLSAgYXNzZXJ0X2VxdWFscyhyZWFkeVJlZy5hY3RpdmUuc2NyaXB0VVJMLCByZWcxQWN0
aXZlLnNjcmlwdFVSTCwgJ1Jlc29sdmVzIHdpdGggdGhlIGZpcnN0IHJlZ2lzdHJhdGlvbicpOwot
ICBhc3NlcnRfbm90X2VxdWFscyhyZWcxLCByZWcyLCAnUmVnaXN0cmF0aW9ucyBzaG91bGQgYmUg
ZGlmZmVyZW50Jyk7Ci19LCAncmVzb2x2ZSByZWFkeSBiZWZvcmUgdW5yZWdpc3RlcmluZyBhbmQg
cmVyZWdpc3RlcmluZycpOworICAgIHZhciB1cmwgPSAncmVzb3VyY2VzL2VtcHR5LXdvcmtlci5q
cyc7CisgICAgdmFyIG1hdGNoZWRfc2NvcGUgPSAncmVzb3VyY2VzL2JsYW5rLmh0bWw/cmVhZHkt
YWZ0ZXItcmVzdXJyZWN0JzsKKworICAgIGxldCByZWcxID0gYXdhaXQgc2VydmljZV93b3JrZXJf
dW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgdXJsLCBtYXRjaGVkX3Njb3BlKTsKKyAgICBhZGRf
Y29tcGxldGlvbl9jYWxsYmFjayhmdW5jdGlvbigpIHsKKyAgICAgICAgcmVnMS51bnJlZ2lzdGVy
KCk7CisgICAgICB9KTsKKyAgICBhd2FpdCB3YWl0X2Zvcl9zdGF0ZSh0LCByZWcxLmluc3RhbGxp
bmcsICdhY3RpdmF0ZWQnKTsKKworICAgIC8vIEhvbGQgdGhlIHdvcmtlciBhbGl2ZSB3aXRoIGEg
Y29udHJvbGxlZCB3b3JrZXIKKyAgICBsZXQgZnJhbWUgPSBhd2FpdCB3aXRoX2lmcmFtZShtYXRj
aGVkX3Njb3BlKTsKKyAgICBhZGRfY29tcGxldGlvbl9jYWxsYmFjayhmdW5jdGlvbigpIHsKKyAg
ICAgICAgZnJhbWUucmVtb3ZlKCk7CisgICAgICB9KTsKKworICAgIC8vIERvb20gdGhlIHJlZ2lz
dHJhdGlvbiBhcyB1bmluc3RhbGxpbmcuCisgICAgYXdhaXQgcmVnMS51bnJlZ2lzdGVyKCk7CisK
KyAgICAvLyBBY2Nlc3MgdGhlIHJlYWR5IHByb21pc2Ugd2hpbGUgdGhlIHJlZ2lzdHJhdGlvbiBp
cyBkb29tZWQuCisgICAgbGV0IHJlYWR5UHJvbWlzZSA9IGZyYW1lLmNvbnRlbnRXaW5kb3cubmF2
aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVhZHk7CisKKyAgICAvLyBSZXN1cnJlY3QgdGhlIGRvb21l
ZCByZWdpc3RyYXRpb247CisgICAgbGV0IHJlZzIgPSBhd2FpdCBzZXJ2aWNlX3dvcmtlcl91bnJl
Z2lzdGVyX2FuZF9yZWdpc3Rlcih0LCB1cmwsIG1hdGNoZWRfc2NvcGUpOworICAgIGFzc2VydF9l
cXVhbHMocmVnMSwgcmVnMiwgJ2V4aXN0aW5nIHJlZ2lzdHJhdGlvbiBzaG91bGQgYmUgcmVzdXJy
ZWN0ZWQnKTsKKworICAgIC8vIFdlIGFyZSB0cnlpbmcgdG8gdGVzdCBpZiB0aGUgcmVhZHkgcHJv
bWlzZSBldmVyIHJlc29sdmVzIGhlcmUuICBVc2UKKyAgICAvLyBhbiBleHBsaWNpdCB0aW1lb3V0
IGNoZWNrIGhlcmUgcmF0aGVyIHRoYW4gZm9yY2luZyBhIGZ1bGwgaW5mcmFzdHJ1Y3R1cmUKKyAg
ICAvLyBsZXZlbCB0aW1lb3V0LgorICAgIGxldCB0aW1lb3V0SWQ7CisgICAgbGV0IHRpbWVvdXRQ
cm9taXNlID0gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7CisgICAgICB0aW1lb3V0SWQgPSBzZXRU
aW1lb3V0KF8gPT4geworICAgICAgICB0aW1lb3V0SWQgPSBudWxsOworICAgICAgICByZXNvbHZl
KCk7CisgICAgICB9LCA1MDApOworICAgIH0pOworCisgICAgLy8gVGhpcyBzaG91bGQgcmVzb2x2
ZSBpbW1lZGlhdGVseSBzaW5jZSB0aGVyZSBpcyBhbiBhbGl2ZSByZWdpc3RyYXRpb24KKyAgICAv
LyB3aXRoIGFuIGFjdGl2ZSBwcm9taXNlIGZvciB0aGUgbWF0Y2hpbmcgc2NvcGUuCisgICAgYXdh
aXQgUHJvbWlzZS5yYWNlKFtyZWFkeVByb21pc2UsIHRpbWVvdXRQcm9taXNlXSk7CisKKyAgICBh
c3NlcnRfbm90X2VxdWFscyh0aW1lb3V0SWQsIG51bGwsCisgICAgICAgICAgICAgICAgICAgICAg
J3JlYWR5IHByb21pc2Ugc2hvdWxkIHJlc29sdmUgYmVmb3JlIHRpbWVvdXQnKTsKKyAgICBjbGVh
clRpbWVvdXQodGltZW91dElkKTsKKworICAgIC8vIFdlIHNob3VsZCBnZXQgaGVyZSBhbmQgbm90
IHRpbWUgb3V0LgorCisgIH0sICdhY2Nlc3MgcmVhZHkgb24gdW5pbnN0YWxsaW5nIHJlZ2lzdHJh
dGlvbiB0aGF0IGlzIHJlc3VycmVjdGVkJyk7CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL3JlZGlyZWN0ZWQtcmVzcG9uc2UuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvcmVkaXJlY3RlZC1yZXNwb25zZS5odHRwcy1leHBlY3RlZC50eHQKaW5k
ZXggOWQyZjI3MDZjYWZlZWI3NDAzMDU5Y2IzNzA2ZjM0OTA1YzJkZjkxNy4uNmM2NTIwNzZhOWYw
MjUxM2UxY2E5ZGQxZTQ3Y2NmOTUwZjU3MGU0MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvcmVkaXJlY3RlZC1yZXNwb25zZS5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvcmVkaXJlY3RlZC1yZXNwb25zZS5odHRwcy1leHBlY3RlZC50eHQKQEAgLTI4LDcg
KzI4LDYgQEAgUEFTUyBtb2RlOiAiZXJyb3IiLCBnZW5lcmF0ZWQgcmVkaXJlY3QgcmVzcG9uc2UK
IFBBU1MgbW9kZTogIm1hbnVhbCIsIGdlbmVyYXRlZCByZWRpcmVjdCByZXNwb25zZSAKIFBBU1Mg
RmV0Y2ggc2hvdWxkIGZvbGxvdyB0aGUgcmVkaXJlY3QgcmVzcG9uc2UgMjAgdGltZXMgCiBQQVNT
IEZldGNoIHNob3VsZCBub3QgZm9sbG93IHRoZSByZWRpcmVjdCByZXNwb25zZSAyMSB0aW1lcy4g
Ci1QQVNTIFRoZSBVUkwgZm9yIHRoZSBzZXJ2aWNlIHdvcmtlciByZWRpcmVjdGVkIHJlcXVlc3Qg
c2hvdWxkIGJlIHByb3BhZ2F0ZWQgdG8gcmVzcG9uc2UuIAogUEFTUyByZXN0b3JlIGdsb2JhbCBz
dGF0ZSAoc2VydmljZSB3b3JrZXIgcmVnaXN0cmF0aW9uKSAKIFBBU1MgcmVzdG9yZSBnbG9iYWwg
c3RhdGUgKGNhY2hlcykgCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlZGlyZWN0
ZWQtcmVzcG9uc2UuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlZGlyZWN0ZWQtcmVz
cG9uc2UuaHR0cHMuaHRtbAppbmRleCAxNzZmY2I0OTRiNjY0YmFlNDNmZWJhMGM3OTNlNTI4NDVk
ZjM1MjU3Li5mNzM3MGUwMjNiMWFiNDQ1NGI4MzliYzZkYWE0MzJjZjUzOWUxZDdmIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZWRpcmVjdGVkLXJlc3BvbnNlLmh0dHBzLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvcmVkaXJlY3RlZC1yZXNwb25zZS5odHRwcy5odG1sCkBAIC0z
MywxMSArMzMsNiBAQCBmdW5jdGlvbiByZWRpcmVjdGVkX3Rlc3Qob3B0aW9ucykgewogICAgICAg
ICBhc3NlcnRfZXF1YWxzKAogICAgICAgICAgICAgY2xvbmVkX3Jlc3BvbnNlLnJlZGlyZWN0ZWQs
IG9wdGlvbnMuZXhwZWN0ZWRfcmVkaXJlY3RlZCwKICAgICAgICAgICAgICdUaGUgcmVkaXJlY3Rl
ZCBmbGFnIG9mIGNsb25lZCByZXNwb25zZSBtdXN0IG1hdGNoLiBVUkw6ICcgKyBvcHRpb25zLnVy
bCk7Ci0gICAgICAgIGlmIChvcHRpb25zLmV4cGVjdGVkX3Jlc3BvbnNlX3VybCkgewotICAgICAg
ICAgICAgYXNzZXJ0X2VxdWFscygKLSAgICAgICAgICAgICAgICBjbG9uZWRfcmVzcG9uc2UudXJs
LCBvcHRpb25zLmV4cGVjdGVkX3Jlc3BvbnNlX3VybCwKLSAgICAgICAgICAgICAgICAnVGhlIFVS
TCBkb2VzIG5vdCBtZWV0IGV4cGVjdGF0aW9uLiBVUkw6ICcgKyBvcHRpb25zLnVybCk7Ci0gICAg
ICAgIH0KICAgICAgICAgcmV0dXJuIGNhY2hlLnB1dChvcHRpb25zLnVybCwgcmVzcG9uc2UpOwog
ICAgICAgfSkKICAgICAudGhlbihfID0+IGNhY2hlLm1hdGNoKG9wdGlvbnMudXJsKSkKQEAgLTU0
LDE1ICs0OSwxMiBAQCBmdW5jdGlvbiByZWRpcmVjdGVkX3Rlc3Qob3B0aW9ucykgewogICAgICAg
fSk7CiB9CiAKLWFzeW5jIGZ1bmN0aW9uIHRha2VfaW50ZXJjZXB0ZWRfdXJscygpIHsKLSAgY29u
c3QgbWVzc2FnZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7Ci0gICAgbGV0IGNoYW5uZWwg
PSBuZXcgTWVzc2FnZUNoYW5uZWwoKTsKLSAgICBjaGFubmVsLnBvcnQxLm9ubWVzc2FnZSA9IG1z
ZyA9PiB7IHJlc29sdmUobXNnLmRhdGEucmVxdWVzdEluZm9zKTsgfTsKLSAgICB3b3JrZXIucG9z
dE1lc3NhZ2Uoe2NvbW1hbmQ6ICdnZXRSZXF1ZXN0SW5mb3MnLCBwb3J0OiBjaGFubmVsLnBvcnQy
fSwKLSAgICAgICAgICAgICAgICAgICAgICAgW2NoYW5uZWwucG9ydDJdKTsKLSAgfSk7Ci0gIGNv
bnN0IHJlcXVlc3RfaW5mb3MgPSBhd2FpdCBtZXNzYWdlOwotICByZXR1cm4gcmVxdWVzdF9pbmZv
cy5tYXAoaW5mbyA9PiB7IHJldHVybiBpbmZvLnVybDsgfSk7CitmdW5jdGlvbiB0YWtlX2ludGVy
Y2VwdGVkX3VybHMoKSB7CisgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geworICAg
ICAgbGV0IGNoYW5uZWwgPSBuZXcgTWVzc2FnZUNoYW5uZWwoKTsKKyAgICAgIGNoYW5uZWwucG9y
dDEub25tZXNzYWdlID0gbXNnID0+IHsgcmVzb2x2ZShtc2cuZGF0YS51cmxzKTsgfTsKKyAgICAg
IHdvcmtlci5wb3N0TWVzc2FnZSh7cG9ydDogY2hhbm5lbC5wb3J0Mn0sIFtjaGFubmVsLnBvcnQy
XSk7CisgICAgfSk7CiB9CiAKIGZ1bmN0aW9uIGNoZWNrX2ludGVyY2VwdGVkX3VybHMoZXhwZWN0
ZWRfdXJscykgewpAQCAtMzUzLDIzICszNDUsNCBAQCBwcm9taXNlX3Rlc3QodCA9PiBzZXR1cF9h
bmRfY2xlYW4oKQogICAgICAgICB9KTsKICAgICB9KSwKICAgJ0ZldGNoIHNob3VsZCBub3QgZm9s
bG93IHRoZSByZWRpcmVjdCByZXNwb25zZSAyMSB0aW1lcy4nKTsKLQotLy8gPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLy8gQSB0ZXN0IGZv
ciB2ZXJpZnlpbmcgdGhlIHVybCBvZiBhIHNlcnZpY2Utd29ya2VyLXJlZGlyZWN0ZWQgcmVxdWVz
dCBpcwotLy8gcHJvcGFnYXRlZCB0byB0aGUgb3V0ZXIgcmVzcG9uc2UuCi0vLyA9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci1wcm9taXNlX3Rl
c3QodCA9PiBzZXR1cF9hbmRfY2xlYW4oKQotICAgIC50aGVuKCgpID0+IHsKLSAgICAgIGNvbnN0
IHVybCA9IGhvc3RfaW5mb1snSFRUUFNfT1JJR0lOJ10gKyBiYXNlX3BhdGgoKSArICdkdW1teT91
cmw9JyArCi0gICAgICAgICAgICAgICAgICBlbmNvZGVVUklDb21wb25lbnQoVEFSR0VUX1VSTCkg
Kycmc3c9ZmV0Y2gtdXJsJzsKLSAgICAgIHJldHVybiByZWRpcmVjdGVkX3Rlc3Qoe3VybDogdXJs
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmV0Y2hfb3B0aW9uOiB7fSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGZldGNoX21ldGhvZDogZnJhbWUuY29udGVudFdpbmRv
dy5mZXRjaCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkX3R5cGU6ICdi
YXNpYycsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBlY3RlZF9yZWRpcmVjdGVk
OiBmYWxzZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkX2ludGVyY2Vw
dGVkX3VybHM6IFt1cmxdLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRf
cmVzcG9uc2VfdXJsOiBUQVJHRVRfVVJMfSk7Ci0gICAgfSksCi0gICdUaGUgVVJMIGZvciB0aGUg
c2VydmljZSB3b3JrZXIgcmVkaXJlY3RlZCByZXF1ZXN0IHNob3VsZCBiZSBwcm9wYWdhdGVkIHRv
ICcgKwotICAncmVzcG9uc2UuJyk7CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL3JlZmVyZXIuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlZmVyZXIuaHR0
cHMuaHRtbAppbmRleCAwOTU3ZTRjNTMzMDE2OGIwODIzNmZmN2M0MzE3MDZhMWQ5MmNjMWE0Li40
M2ZjY2JhZDU2Y2Y0NTA0ZTllOWRkYTk3NDJjMWM4NjliYjBhNTU5IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9yZWZlcmVyLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
cmVmZXJlci5odHRwcy5odG1sCkBAIC01LDM2ICs1LDI2IEBACiA8c2NyaXB0IHNyYz0iL2NvbW1v
bi9nZXQtaG9zdC1pbmZvLnN1Yi5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L3Rlc3QtaGVscGVycy5zdWIuanM/cGlwZT1zdWIiPjwvc2NyaXB0PgogPHNjcmlwdD4KLXByb21p
c2VfdGVzdChmdW5jdGlvbih0KSB7Cithc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICB2YXIg
U0NPUEUgPSAncmVzb3VyY2VzL3JlZmVyZXItaWZyYW1lLmh0bWwnOwogICAgIHZhciBTQ1JJUFQg
PSAncmVzb3VyY2VzL2ZldGNoLXJld3JpdGUtd29ya2VyLmpzJzsKICAgICB2YXIgaG9zdF9pbmZv
ID0gZ2V0X2hvc3RfaW5mbygpOwotICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVy
X2FuZF9yZWdpc3Rlcih0LCBTQ1JJUFQsIFNDT1BFKQorICAgIHNlcnZpY2Vfd29ya2VyX3VucmVn
aXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIFNDUklQVCwgU0NPUEUpCiAgICAgICAudGhlbihmdW5jdGlv
bihyZWdpc3RyYXRpb24pIHsKLSAgICAgICAgICB0LmFkZF9jbGVhbnVwKGZ1bmN0aW9uKCkgewot
ICAgICAgICAgICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcih0LCBTQ09QRSk7
Ci0gICAgICAgICAgICB9KTsKLQogICAgICAgICAgIHJldHVybiB3YWl0X2Zvcl9zdGF0ZSh0LCBy
ZWdpc3RyYXRpb24uaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOwogICAgICAgICB9KQogICAgICAg
LnRoZW4oZnVuY3Rpb24oKSB7IHJldHVybiB3aXRoX2lmcmFtZShTQ09QRSk7IH0pCiAgICAgICAu
dGhlbihmdW5jdGlvbihmcmFtZSkgewogICAgICAgICAgIHZhciBjaGFubmVsID0gbmV3IE1lc3Nh
Z2VDaGFubmVsKCk7Ci0gICAgICAgICAgdC5hZGRfY2xlYW51cChmdW5jdGlvbigpIHsKKyAgICAg
ICAgICBjaGFubmVsLnBvcnQxLm9ubWVzc2FnZSA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsK
KyAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLmRhdGEucmVzdWx0cywgJ2ZpbmlzaCcpOwog
ICAgICAgICAgICAgICBmcmFtZS5yZW1vdmUoKTsKKyAgICAgICAgICAgICAgc2VydmljZV93b3Jr
ZXJfdW5yZWdpc3Rlcl9hbmRfZG9uZSh0LCBTQ09QRSk7CiAgICAgICAgICAgICB9KTsKLQotICAg
ICAgICAgIHZhciBvbk1zZyA9IG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUpIHsKLSAgICAg
ICAgICAgICAgY2hhbm5lbC5wb3J0MS5vbm1lc3NhZ2UgPSByZXNvbHZlOwotICAgICAgICAgICAg
fSk7Ci0KICAgICAgICAgICBmcmFtZS5jb250ZW50V2luZG93LnBvc3RNZXNzYWdlKHt9LAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaG9zdF9pbmZvWydIVFRQU19P
UklHSU4nXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjaGFu
bmVsLnBvcnQyXSk7Ci0gICAgICAgICAgcmV0dXJuIG9uTXNnOwogICAgICAgICB9KQotICAgICAg
LnRoZW4oZnVuY3Rpb24oZSkgewotICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS5kYXRhLnJlc3Vs
dHMsICdmaW5pc2gnKTsKLSAgICAgICAgfSk7CisgICAgICAuY2F0Y2godW5yZWFjaGVkX3JlamVj
dGlvbih0KSk7CiAgIH0sICdWZXJpZnkgdGhlIHJlZmVyZXInKTsKIDwvc2NyaXB0PgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVnaXN0ZXItZGVmYXVsdC1zY29wZS5odHRwcy5odG1s
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvcmVnaXN0ZXItZGVmYXVsdC1zY29wZS5odHRwcy5odG1sCmlu
ZGV4IDFkODY1NDhlYjVlZWI1NzU0Y2ExMTFkZDRjNTU4NDMyMDIyMTZiMmQuLmRjMTM2ZDRlOGRk
NzRkM2Y4NTE4ODBhMmJjNGZmNWYyMTVjYWYyNTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3JlZ2lzdGVyLWRlZmF1bHQtc2NvcGUuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9yZWdpc3Rlci1kZWZhdWx0LXNjb3BlLmh0dHBzLmh0bWwKQEAgLTUyLDExICs1Miw4IEBA
IHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7CiAgICAgICB9KQogICAgICAgLnRoZW4oCiAgICAg
ICAgIGZ1bmN0aW9uKHJlZ2lzdHJhdGlvbikgewotICAgICAgICAgIHQuYWRkX2NsZWFudXAoZnVu
Y3Rpb24oKSB7Ci0gICAgICAgICAgICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVy
KHQsIHJlZ2lzdHJhdGlvbi5zY29wZSk7Ci0gICAgICAgICAgICB9KTsKLQogICAgICAgICAgIGFz
c2VydF91bnJlYWNoZWQoJ3JlZ2lzdGVyIHNob3VsZCBmYWlsJyk7CisgICAgICAgICAgc2Vydmlj
ZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfZG9uZSh0LCByZWdpc3RyYXRpb24uc2NvcGUpOwogICAg
ICAgICB9LAogICAgICAgICBmdW5jdGlvbihlcnJvcikgewogICAgICAgICAgIGFzc2VydF9lcXVh
bHMoZXJyb3IubmFtZSwgJ1NlY3VyaXR5RXJyb3InLApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvcmVnaXN0ZXItd2FpdC1mb3JldmVyLWluLWluc3RhbGwtd29ya2VyLmh0dHBzLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9yZWdpc3Rlci13YWl0LWZvcmV2ZXItaW4taW5zdGFsbC13b3Jr
ZXIuaHR0cHMuaHRtbAppbmRleCAwOTIwYjVjYjIyM2Q1MGUzMWQwNDRhOTMyM2Y1NWMxZTc3YjE4
ODU3Li5lMjNmOWY0ZmM4ZTM4MDdhZDYwYzkwYjA1NWY3NGMzOGQzODNjMjRkIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9yZWdpc3Rlci13YWl0LWZvcmV2ZXItaW4taW5zdGFsbC13b3Jr
ZXIuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZWdpc3Rlci13YWl0LWZvcmV2
ZXItaW4taW5zdGFsbC13b3JrZXIuaHR0cHMuaHRtbApAQCAtMTYsMTAgKzE2LDYgQEAgcHJvbWlz
ZV90ZXN0KGZ1bmN0aW9uKHQpIHsKIAogICAgIHJldHVybiBuYXZpZ2F0b3Iuc2VydmljZVdvcmtl
ci5yZWdpc3RlcihiYWRfc2NyaXB0LCB7c2NvcGU6IHNjb3BlfSkKICAgICAgIC50aGVuKGZ1bmN0
aW9uKHIpIHsKLSAgICAgICAgICB0LmFkZF9jbGVhbnVwKGZ1bmN0aW9uKCkgewotICAgICAgICAg
ICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcih0LCBzY29wZSk7Ci0gICAgICAg
ICAgICB9KTsKLQogICAgICAgICAgIHJlZ2lzdHJhdGlvbiA9IHI7CiAgICAgICAgICAgYXNzZXJ0
X2VxdWFscyhyZWdpc3RyYXRpb24uaW5zdGFsbGluZy5zY3JpcHRVUkwsCiAgICAgICAgICAgICAg
ICAgICAgICAgICBub3JtYWxpemVVUkwoYmFkX3NjcmlwdCkpOwpAQCAtNTEsNiArNDcsOSBAQCBw
cm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewogICAgICAgICAgICAgICAgICAgICAgICAgbm9ybWFs
aXplVVJMKGdvb2Rfc2NyaXB0KSk7CiAgICAgICAgICAgcmV0dXJuIHdhaXRfZm9yX3N0YXRlKHQs
IHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7CiAgICAgICAgIH0pCisgICAg
ICAudGhlbihmdW5jdGlvbigpIHsKKyAgICAgICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5y
ZWdpc3Rlcl9hbmRfZG9uZSh0LCBzY29wZSk7CisgICAgICAgIH0pCiAgIH0sICdyZWdpc3RlciB3
b3JrZXIgdGhhdCBjYWxscyB3YWl0VW50aWwgd2l0aCBhIHByb21pc2UgdGhhdCBuZXZlciAnICsK
ICAgICAgJ3Jlc29sdmVzIGluIG9uaW5zdGFsbCcpOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9yZWdpc3RyYXRpb24tZW5kLXRvLWVuZC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvcmVnaXN0cmF0aW9uLWVuZC10by1lbmQuaHR0cHMuaHRtbAppbmRleCAxYWY0NTgyZDM4
NzQxMmY0N2Q4MmE5NGIyZmU3MDUwYTU5OTQ2NDRhLi5lOTJiNjUwMmYwOWIxYTkzMDhiOTZlNDNj
NmRjOTVmODI1ZmFjNjkyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZWdpc3RyYXRp
b24tZW5kLXRvLWVuZC5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlZ2lzdHJh
dGlvbi1lbmQtdG8tZW5kLmh0dHBzLmh0bWwKQEAgLTExLDExICsxMSwxNiBAQCB0LnN0ZXAoZnVu
Y3Rpb24oKSB7CiAgICAgdmFyIHNlcnZpY2VXb3JrZXJTdGF0ZXMgPSBbXTsKICAgICB2YXIgbGFz
dFNlcnZpY2VXb3JrZXJTdGF0ZSA9ICcnOwogICAgIHZhciByZWNlaXZlZE1lc3NhZ2VGcm9tUG9y
dCA9ICcnOworICAgIHZhciBjdXJyZW50Q2hhbmdlQ291bnQgPSAwOwogCiAgICAgYXNzZXJ0X3Ry
dWUobmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIgaW5zdGFuY2VvZiBTZXJ2aWNlV29ya2VyQ29udGFp
bmVyKTsKICAgICBhc3NlcnRfZXF1YWxzKHR5cGVvZiBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5y
ZWdpc3RlciwgJ2Z1bmN0aW9uJyk7CiAgICAgYXNzZXJ0X2VxdWFscyh0eXBlb2YgbmF2aWdhdG9y
LnNlcnZpY2VXb3JrZXIuZ2V0UmVnaXN0cmF0aW9uLCAnZnVuY3Rpb24nKTsKIAorICAgIG5hdmln
YXRvci5zZXJ2aWNlV29ya2VyLm9uY3VycmVudGNoYW5nZSA9IGZ1bmN0aW9uKCkgeworICAgICAg
ICArK2N1cnJlbnRDaGFuZ2VDb3VudDsKKyAgICB9OworCiAgICAgc2VydmljZV93b3JrZXJfdW5y
ZWdpc3Rlcl9hbmRfcmVnaXN0ZXIoCiAgICAgICAgIHQsICdyZXNvdXJjZXMvZW5kLXRvLWVuZC13
b3JrZXIuanMnLCBzY29wZSkKICAgICAgIC50aGVuKG9uUmVnaXN0ZXIpCkBAIC03MCw2ICs3NSw5
IEBAIHQuc3RlcChmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
WydpbnN0YWxsaW5nJywgJ2luc3RhbGxlZCcsICdhY3RpdmF0aW5nJywgJ2FjdGl2YXRlZCddLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnU2VydmljZSB3b3JrZXIgc2hvdWxkIHBh
c3MgdGhyb3VnaCBhbGwgc3RhdGVzJyk7CiAKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vy
cmVudENoYW5nZUNvdW50LCAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAnU2hvdWxkIG5v
dCBzZWUgY3VycmVudCBjaGFuZ2VzIHNpbmNlIGRvY3VtZW50IGlzIG91dCBvZiBzY29wZScpOwor
CiAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHJlY2VpdmVkTWVzc2FnZUZyb21Qb3J0LCAnQWNr
IGZvcjogcmVnaXN0ZXJpbmcgZG9jJyk7CiAKICAgICAgICAgICAgIHZhciBzYXdSZWR1bmRhbnQg
PSBuZXcgUHJvbWlzZSh0LnN0ZXBfZnVuYyhmdW5jdGlvbihyZXNvbHZlKSB7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9yZWdpc3RyYXRpb24tZXZlbnRzLmh0dHBzLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9yZWdpc3RyYXRpb24tZXZlbnRzLmh0dHBzLmh0bWwKaW5kZXggNWJjZmQ2
Njg0NmJjZTViOTNiZjA5ZDA1YjY1YzJlMzUyYjUxZmZhYi4uOTcyY2U3NDEwYjk5MjJlZGI3MDUy
ZWE1YmU3NDBmOGVmNDg5MmYxOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVnaXN0
cmF0aW9uLWV2ZW50cy5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlZ2lzdHJh
dGlvbi1ldmVudHMuaHR0cHMuaHRtbApAQCAtNCwxNyArNCwxNSBAQAogPHNjcmlwdCBzcmM9Ii9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9InJl
c291cmNlcy90ZXN0LWhlbHBlcnMuc3ViLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+Ci1wcm9taXNl
X3Rlc3QoZnVuY3Rpb24odCkgewordmFyIHQgPSBhc3luY190ZXN0KCdSZWdpc3RyYXRpb246IGV2
ZW50cycpOwordC5zdGVwKGZ1bmN0aW9uKCkgewogICAgIHZhciBzY29wZSA9ICdyZXNvdXJjZXMv
aW4tc2NvcGUvJzsKLSAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVn
aXN0ZXIoCisgICAgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIoCiAgICAg
ICAgIHQsICdyZXNvdXJjZXMvZXZlbnRzLXdvcmtlci5qcycsIHNjb3BlKQotICAgICAgLnRoZW4o
ZnVuY3Rpb24ocmVnaXN0cmF0aW9uKSB7Ci0gICAgICAgICAgdC5hZGRfY2xlYW51cChmdW5jdGlv
bigpIHsKLSAgICAgICAgICAgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXIodCwg
c2NvcGUpOwotICAgICAgICAgIH0pOwotCi0gICAgICAgICAgcmV0dXJuIG9uUmVnaXN0ZXIocmVn
aXN0cmF0aW9uLmluc3RhbGxpbmcpOwotICAgICAgICB9KTsKKyAgICAgIC50aGVuKHQuc3RlcF9m
dW5jKGZ1bmN0aW9uKHJlZ2lzdHJhdGlvbikgeworICAgICAgICAgIG9uUmVnaXN0ZXIocmVnaXN0
cmF0aW9uLmluc3RhbGxpbmcpOworICAgICAgICB9KSkKKyAgICAgIC5jYXRjaCh1bnJlYWNoZWRf
cmVqZWN0aW9uKHQpKTsKIAogICAgIGZ1bmN0aW9uIHNlbmRNZXNzYWdlUG9ydCh3b3JrZXIsIGZy
b20pIHsKICAgICAgICAgdmFyIG1lc3NhZ2VDaGFubmVsID0gbmV3IE1lc3NhZ2VDaGFubmVsKCk7
CkBAIC0yMywyMCArMjEsMTcgQEAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICB9CiAK
ICAgICBmdW5jdGlvbiBvblJlZ2lzdGVyKHN3KSB7Ci0gICAgICAgIHJldHVybiBuZXcgUHJvbWlz
ZShmdW5jdGlvbihyZXNvbHZlKSB7Ci0gICAgICAgICAgICBzdy5vbnN0YXRlY2hhbmdlID0gZnVu
Y3Rpb24oKSB7Ci0gICAgICAgICAgICAgICAgaWYgKHN3LnN0YXRlID09PSAnYWN0aXZhdGVkJykK
LSAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSgpOwotICAgICAgICAgICAgfTsKLSAgICAgICAg
fSkudGhlbihmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5j
dGlvbihyZXNvbHZlKSB7Ci0gICAgICAgICAgICAgICAgc2VuZE1lc3NhZ2VQb3J0KHN3LCAncmVn
aXN0ZXJpbmcgZG9jJykub25tZXNzYWdlID0gcmVzb2x2ZTsKLSAgICAgICAgICAgIH0pOwotICAg
ICAgICB9KS50aGVuKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgc3cub25zdGF0ZWNoYW5nZSA9IHQu
c3RlcF9mdW5jKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgaWYgKHN3LnN0YXRlICE9PSAnYWN0
aXZhdGVkJykKKyAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAgIHNlbmRNZXNz
YWdlUG9ydChzdywgJ3JlZ2lzdGVyaW5nIGRvYycpLm9ubWVzc2FnZSA9IHQuc3RlcF9mdW5jKGZ1
bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhlLmRhdGEu
ZXZlbnRzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWydpbnN0YWxsJywg
J2FjdGl2YXRlJ10sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdXb3JrZXIg
c2hvdWxkIHNlZSBpbnN0YWxsIHRoZW4gYWN0aXZhdGUgZXZlbnRzJyk7CisgICAgICAgICAgICAg
ICAgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfZG9uZSh0LCBzY29wZSk7CisgICAgICAg
ICAgICB9KTsKICAgICAgICAgfSk7CiAgICAgfQotfSwgJ1JlZ2lzdHJhdGlvbjogZXZlbnRzJyk7
Cit9KTsKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVnaXN0cmF0
aW9uLW1pbWUtdHlwZXMuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVn
aXN0cmF0aW9uLW1pbWUtdHlwZXMuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IGRiNzJiYWZhZjdi
OTRjZTBlMmI5Y2M3ZjBiMjc0ZWViYzcyZDgzODAuLjUzN2EyZjdiZDYyMTI0Y2E0OTFiZWYxYTZm
ODZhZWI5Zjg4MjUxZmYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlZ2lzdHJhdGlv
bi1taW1lLXR5cGVzLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9y
ZWdpc3RyYXRpb24tbWltZS10eXBlcy5odHRwcy1leHBlY3RlZC50eHQKQEAgLTEsOCArMSw4IEBA
CiAKIFBBU1MgUmVnaXN0ZXJpbmcgc2NyaXB0IHdpdGggbm8gTUlNRSB0eXBlIAogUEFTUyBSZWdp
c3RlcmluZyBzY3JpcHQgd2l0aCBiYWQgTUlNRSB0eXBlIAotUEFTUyBSZWdpc3RlcmluZyBzY3Jp
cHQgdGhhdCBpbXBvcnRzIHNjcmlwdCB3aXRoIG5vIE1JTUUgdHlwZSAKLVBBU1MgUmVnaXN0ZXJp
bmcgc2NyaXB0IHRoYXQgaW1wb3J0cyBzY3JpcHQgd2l0aCBiYWQgTUlNRSB0eXBlIAorRkFJTCBS
ZWdpc3RlcmluZyBzY3JpcHQgdGhhdCBpbXBvcnRzIHNjcmlwdCB3aXRoIG5vIE1JTUUgdHlwZSBh
c3NlcnRfdGhyb3dzOiBSZWdpc3RyYXRpb24gb2Ygbm8gTUlNRSB0eXBlIGltcG9ydGVkIHNjcmlw
dCBzaG91bGQgZmFpbC4gZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsgdGhyb3cgZSB9IiB0aHJldyBv
YmplY3QgIlR5cGVFcnJvcjogTmV0d29ya0Vycm9yOiBtaW1lIHR5cGUgaXMgbm90IGEgc3VwcG9y
dGVkIEphdmFTY3JpcHQgbWltZSB0eXBlIiB0aGF0IGlzIG5vdCBhIERPTUV4Y2VwdGlvbiBTZWN1
cml0eUVycm9yOiBwcm9wZXJ0eSAiY29kZSIgaXMgZXF1YWwgdG8gdW5kZWZpbmVkLCBleHBlY3Rl
ZCAxOAorRkFJTCBSZWdpc3RlcmluZyBzY3JpcHQgdGhhdCBpbXBvcnRzIHNjcmlwdCB3aXRoIGJh
ZCBNSU1FIHR5cGUgYXNzZXJ0X3Rocm93czogUmVnaXN0cmF0aW9uIG9mIHBsYWluIHRleHQgaW1w
b3J0ZWQgc2NyaXB0IHNob3VsZCBmYWlsLiBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeyB0aHJvdyBl
IH0iIHRocmV3IG9iamVjdCAiVHlwZUVycm9yOiBOZXR3b3JrRXJyb3I6IG1pbWUgdHlwZSBpcyBu
b3QgYSBzdXBwb3J0ZWQgSmF2YVNjcmlwdCBtaW1lIHR5cGUiIHRoYXQgaXMgbm90IGEgRE9NRXhj
ZXB0aW9uIFNlY3VyaXR5RXJyb3I6IHByb3BlcnR5ICJjb2RlIiBpcyBlcXVhbCB0byB1bmRlZmlu
ZWQsIGV4cGVjdGVkIDE4CiBQQVNTIFJlZ2lzdGVyaW5nIHNjcmlwdCB3aXRoIGdvb2QgTUlNRSB0
eXBlIGFwcGxpY2F0aW9uL2VjbWFzY3JpcHQgCiBQQVNTIFJlZ2lzdGVyaW5nIHNjcmlwdCB0aGF0
IGltcG9ydHMgc2NyaXB0IHdpdGggZ29vZCBNSU1FIHR5cGUgYXBwbGljYXRpb24vZWNtYXNjcmlw
dCAKIFBBU1MgUmVnaXN0ZXJpbmcgc2NyaXB0IHdpdGggZ29vZCBNSU1FIHR5cGUgYXBwbGljYXRp
b24vamF2YXNjcmlwdCAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlZ2lzdHJhdGlv
bi1taW1lLXR5cGVzLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZWdpc3RyYXRpb24t
bWltZS10eXBlcy5odHRwcy5odG1sCmluZGV4IGFhOWQzOGNlZGM5ODljNjFjNzI2N2FjZDQxNTBi
ODg5NzQ0ODU1ZTIuLjlhZTVmMDk1NmZiYWZmNWMyZDk0YzI3ZTNlZmQ1ZDQwMmFjYWMzNmEgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlZ2lzdHJhdGlvbi1taW1lLXR5cGVzLmh0dHBz
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVnaXN0cmF0aW9uLW1pbWUtdHlwZXMuaHR0
cHMuaHRtbApAQCAtMSw2ICsxLDUgQEAKIDwhRE9DVFlQRSBodG1sPgogPHRpdGxlPlNlcnZpY2Ug
V29ya2VyOiBSZWdpc3RyYXRpb24gKE1JTUUgdHlwZXMpPC90aXRsZT4KLTxtZXRhIG5hbWU9InRp
bWVvdXQiIGNvbnRlbnQ9ImxvbmciPgogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5l
c3MuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBv
cnQuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9InJlc291cmNlcy90ZXN0LWhlbHBlcnMuc3Vi
LmpzIj48L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlZ2lzdHJhdGlv
bi1zY2hlZHVsZS1qb2IuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVn
aXN0cmF0aW9uLXNjaGVkdWxlLWpvYi5odHRwcy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IGIxNjliY2YxZGM4NjA0ODU1MTFjZDdlNGZhZTMwNjNhYmQyZDI5ZDMu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvcmVnaXN0cmF0aW9uLXNjaGVkdWxlLWpvYi5odHRwcy1leHBlY3RlZC50eHQKKysr
IC9kZXYvbnVsbApAQCAtMSw0ICswLDAgQEAKLQotRkFJTCBkaWZmZXJlbnQgc2NyaXB0VVJMIGFu
ZCB1cGRhdGVWaWFDYWNoZSBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2
YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IG51bGwgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGlu
ZyAncmVnaXN0cmF0aW9uLmluc3RhbGxpbmcuc2NyaXB0VVJMJykiCi1GQUlMIGRpZmZlcmVudCB0
eXBlIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIChzdHJpbmcpICJjbGFzc2ljIiBidXQgZ290ICh1
bmRlZmluZWQpIHVuZGVmaW5lZAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZWdp
c3RyYXRpb24tc2NoZWR1bGUtam9iLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZWdp
c3RyYXRpb24tc2NoZWR1bGUtam9iLmh0dHBzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDE4NTg5ZTBhYTBiMzJlMTMwOTM0YTY1YjFiMDY1ZDVjN2Y3OWUzNmUuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
cmVnaXN0cmF0aW9uLXNjaGVkdWxlLWpvYi5odHRwcy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEs
NjcgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08dGl0
bGU+U2VydmljZSBXb3JrZXI6IFNjaGVkdWxlIEpvYiBhbGdvcml0aG08L3RpdGxlPgotPHNjcmlw
dCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9
InJlc291cmNlcy90ZXN0aGFybmVzcy1oZWxwZXJzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0v
LyBUZXN0cyBmb3IgaHR0cHM6Ly93M2MuZ2l0aHViLmlvL1NlcnZpY2VXb3JrZXIvI3NjaGVkdWxl
LWpvYi1hbGdvcml0aG0KLS8vIE5vbi1lcXVpdmFsZW50IHJlZ2lzdGVyIGpvYnMgc2hvdWxkIG5v
dCBiZSBjb2FsZXNjZWQuCi1jb25zdCBzY29wZSA9ICdyZXNvdXJjZXMvJzsKLWNvbnN0IHNjcmlw
dDEgPSAncmVzb3VyY2VzL2VtcHR5LmpzJzsKLWNvbnN0IHNjcmlwdDIgPSAncmVzb3VyY2VzL2Vt
cHR5LmpzP2NoYW5nZSc7Ci0KLWFzeW5jIGZ1bmN0aW9uIGNsZWFudXAoKSB7Ci0gIGNvbnN0IHJl
Z2lzdHJhdGlvbiA9IGF3YWl0IG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLmdldFJlZ2lzdHJhdGlv
bihzY29wZSk7Ci0gIGlmIChyZWdpc3RyYXRpb24pCi0gICAgYXdhaXQgcmVnaXN0cmF0aW9uLnVu
cmVnaXN0ZXIoKTsKLX0KLQotZnVuY3Rpb24gYWJzb2x1dGVfdXJsKHVybCkgewotICByZXR1cm4g
bmV3IFVSTCh1cmwsIHNlbGYubG9jYXRpb24pLnRvU3RyaW5nKCk7Ci19Ci0KLS8vIFRlc3Qgc2Ny
aXB0VVJMIGFuZCB1cGRhdGVWaWFDYWNoZS4KLXByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKLSAg
YXdhaXQgY2xlYW51cCgpOwotICB0LmFkZF9jbGVhbnVwKGNsZWFudXApOwotCi0gIC8vIENoZWNr
IGRlZmF1bHRzLgotICBjb25zdCByZWdpc3RyYXRpb24gPSBhd2FpdAotICAgICAgbmF2aWdhdG9y
LnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoc2NyaXB0MSwge3Njb3BlfSk7Ci0gIGFzc2VydF9lcXVh
bHMocmVnaXN0cmF0aW9uLnVwZGF0ZVZpYUNhY2hlLCAnaW1wb3J0cycpOwotCi0gIC8vIFNjaGVk
dWxlIHNldmVyYWwgcmVnaXN0ZXIgam9icy4KLSAgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVn
aXN0ZXIoc2NyaXB0MSwge3Njb3BlfSk7Ci0gIG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lz
dGVyKHNjcmlwdDIsIHtzY29wZX0pOwotICBhd2FpdCBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5y
ZWdpc3RlcihzY3JpcHQyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB7c2NvcGUsIHVwZGF0ZVZpYUNhY2hlOiAnbm9uZSd9KTsKLQotICAvLyBOb25lIG9mIHRoZSBj
aGFuZ2VzIHNob3VsZCBoYXZlIGJlZW4gY29hbGVzY2VkLgotICBhc3NlcnRfZXF1YWxzKHJlZ2lz
dHJhdGlvbi5pbnN0YWxsaW5nLnNjcmlwdFVSTCwgYWJzb2x1dGVfdXJsKHNjcmlwdDIpKTsKLSAg
YXNzZXJ0X2VxdWFscyhyZWdpc3RyYXRpb24udXBkYXRlVmlhQ2FjaGUsICdub25lJyk7Ci19LCAn
ZGlmZmVyZW50IHNjcmlwdFVSTCBhbmQgdXBkYXRlVmlhQ2FjaGUnKTsKLQotLy8gVGVzdCB8dHlw
ZXwgaW4gYW5vdGhlciB0ZXN0IGNhc2UgYmVjYXVzZSBtb3N0IGJyb3dzZXJzIGRvbid0IHN1cHBv
cnQgaXQuCi1wcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7Ci0gIGNvbnN0IHNjcmlwdDEgPSAncmVz
b3VyY2VzL2VtcHR5LmpzJzsKLSAgY29uc3Qgc2NyaXB0MiA9ICdyZXNvdXJjZXMvZW1wdHkuanM/
Y2hhbmdlJzsKLQotICBhd2FpdCBjbGVhbnVwKCk7Ci0gIHQuYWRkX2NsZWFudXAoY2xlYW51cCk7
Ci0KLSAgLy8gQ2hlY2sgZGVmYXVsdHMuCi0gIGNvbnN0IHJlZ2lzdHJhdGlvbiA9IGF3YWl0Ci0g
ICAgICBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3RlcihzY3JpcHQxLCB7c2NvcGV9KTsK
LSAgYXNzZXJ0X2VxdWFscyhyZWdpc3RyYXRpb24uaW5zdGFsbGluZy50eXBlLCAnY2xhc3NpYycp
OwotCi0gIC8vIFNjaGVkdWxlIHNldmVyYWwgcmVnaXN0ZXIgam9icy4KLSAgbmF2aWdhdG9yLnNl
cnZpY2VXb3JrZXIucmVnaXN0ZXIoc2NyaXB0MSwge3Njb3BlfSk7Ci0gIG5hdmlnYXRvci5zZXJ2
aWNlV29ya2VyLnJlZ2lzdGVyKHNjcmlwdDIsIHtzY29wZX0pOwotICBhd2FpdCBuYXZpZ2F0b3Iu
c2VydmljZVdvcmtlci5yZWdpc3RlcihzY3JpcHQyLCB7c2NvcGUsIHR5cGU6ICdtb2R1bGUnfSk7
Ci0KLSAgLy8gTm9uZSBvZiB0aGUgY2hhbmdlcyBzaG91bGQgaGF2ZSBiZWVuIGNvYWxlc2NlZC4K
LSAgYXNzZXJ0X2VxdWFscyhyZWdpc3RyYXRpb24uaW5zdGFsbGluZy5zY3JpcHRVUkwsIGFic29s
dXRlX3VybChzY3JpcHQyKSk7Ci0gIGFzc2VydF9lcXVhbHMocmVnaXN0cmF0aW9uLmluc3RhbGxp
bmcudHlwZSwgJ21vZHVsZScpOwotfSwgJ2RpZmZlcmVudCB0eXBlJyk7Ci08L3NjcmlwdD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlZ2lzdHJhdGlvbi1zY29wZS5odHRwcy1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZWdpc3RyYXRpb24tc2NvcGUuaHR0cHMtZXhw
ZWN0ZWQudHh0CmluZGV4IGFkYzk1OWFiZTAxOGRhYzNjNWI3ZDE0YjQxMGQyNDEyYmY5ZWE0Yjgu
LmQ0YTVhYjFhODZiOWJjMzFlNmUxZDg3MzJiZjhkZWJkMWNjZDVmYTIgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL3JlZ2lzdHJhdGlvbi1zY29wZS5odHRwcy1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvcmVnaXN0cmF0aW9uLXNjb3BlLmh0dHBzLWV4cGVjdGVkLnR4
dApAQCAtNiw1ICs2LDUgQEAgUEFTUyBTY29wZSBpbmNsdWRpbmcgbm9uLWVzY2FwZWQgbXVsdGli
eXRlIGNoYXJhY3RlcnMKIFBBU1MgU2NvcGUgaW5jbHVkaW5nIHNlbGYtcmVmZXJlbmNlIAogUEFT
UyBTY29wZSBpbmNsdWRpbmcgcGFyZW50LXJlZmVyZW5jZSAKIFBBU1MgU2NvcGUgaW5jbHVkaW5n
IGNvbnNlY3V0aXZlIHNsYXNoZXMgCi1QQVNTIFNjb3BlIFVSTCBpcyBzYW1lLW9yaWdpbiBmaWxl
c3lzdGVtOiBVUkwgCitGQUlMIFNjb3BlIFVSTCBpcyBzYW1lLW9yaWdpbiBmaWxlc3lzdGVtOiBV
UkwgYXNzZXJ0X3Rocm93czogUmVnaXN0ZXJpbmcgd2l0aCB0aGUgc2NvcGUgdGhhdCBoYXMgc2Ft
ZS1vcmlnaW4gZmlsZXN5c3RlbTogVVJMIHNob3VsZCBmYWlsIHdpdGggU2VjdXJpdHlFcnJvci4g
ZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsgdGhyb3cgZSB9IiB0aHJldyBvYmplY3QgIlR5cGVFcnJv
cjogU2NvcGUgVVJMIHByb3ZpZGVkIHRvIHNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoKSBtdXN0IGJl
IGVpdGhlciBIVFRQIG9yIEhUVFBTIiB0aGF0IGlzIG5vdCBhIERPTUV4Y2VwdGlvbiBTZWN1cml0
eUVycm9yOiBwcm9wZXJ0eSAiY29kZSIgaXMgZXF1YWwgdG8gdW5kZWZpbmVkLCBleHBlY3RlZCAx
OAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZWdpc3RyYXRpb24tc2VjdXJpdHkt
ZXJyb3IuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVnaXN0cmF0aW9u
LXNlY3VyaXR5LWVycm9yLmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCBhYTc1ZWM5Mzg0NDcwMGY3
NTdjZGM5OWRkMzYyMTA2YTRmZWM5OGE4Li40Nzk2OWU2YjllODRmM2MyZWZkZmQ0ZDQ2NTg3NTEx
YjY0ODQ0YzJiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZWdpc3RyYXRpb24tc2Vj
dXJpdHktZXJyb3IuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jl
Z2lzdHJhdGlvbi1zZWN1cml0eS1lcnJvci5odHRwcy1leHBlY3RlZC50eHQKQEAgLTYsNSArNiw1
IEBAIFBBU1MgUmVnaXN0ZXJpbmcgc2NyaXB0IG91dHNpZGUgZG9tYWluCiBQQVNTIFJlZ2lzdGVy
aW5nIHJlZGlyZWN0ZWQgc2NyaXB0IAogUEFTUyBTY29wZSBpbmNsdWRpbmcgcGFyZW50LXJlZmVy
ZW5jZSBhbmQgbm90IHVuZGVyIHRoZSBzY3JpcHQgZGlyZWN0b3J5IAogUEFTUyBTY3JpcHQgVVJM
IGluY2x1ZGluZyBjb25zZWN1dGl2ZSBzbGFzaGVzIAotUEFTUyBTY3JpcHQgVVJMIGlzIHNhbWUt
b3JpZ2luIGZpbGVzeXN0ZW06IFVSTCAKK0ZBSUwgU2NyaXB0IFVSTCBpcyBzYW1lLW9yaWdpbiBm
aWxlc3lzdGVtOiBVUkwgYXNzZXJ0X3Rocm93czogUmVnaXN0ZXJpbmcgYSBzY3JpcHQgd2hpY2gg
aGFzIHNhbWUtb3JpZ2luIGZpbGVzeXN0ZW06IFVSTCBzaG91bGQgZmFpbCB3aXRoIFNlY3VyaXR5
RXJyb3IuIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7IHRocm93IGUgfSIgdGhyZXcgb2JqZWN0ICJU
eXBlRXJyb3I6IHNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoKSBtdXN0IGJlIGNhbGxlZCB3aXRoIGEg
c2NyaXB0IFVSTCB3aG9zZSBwcm90b2NvbCBpcyBlaXRoZXIgSFRUUCBvciBIVFRQUyIgdGhhdCBp
cyBub3QgYSBET01FeGNlcHRpb24gU2VjdXJpdHlFcnJvcjogcHJvcGVydHkgImNvZGUiIGlzIGVx
dWFsIHRvIHVuZGVmaW5lZCwgZXhwZWN0ZWQgMTgKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvcmVnaXN0cmF0aW9uLXNlcnZpY2Utd29ya2VyLWF0dHJpYnV0ZXMuaHR0cHMuaHRtbCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL3JlZ2lzdHJhdGlvbi1zZXJ2aWNlLXdvcmtlci1hdHRyaWJ1dGVz
Lmh0dHBzLmh0bWwKaW5kZXggZjdiNTJkNWRkY2VkMTg2MTNjYTIyNTM4NmJiNTdmMjhiOWJhY2Q2
Mi4uOGZkNTY2ZGFkYzYyYTc4ZWYwODM2YmJjNjMwMDA0NzNmODg0ZDdjNyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvcmVnaXN0cmF0aW9uLXNlcnZpY2Utd29ya2VyLWF0dHJpYnV0ZXMu
aHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZWdpc3RyYXRpb24tc2VydmljZS13
b3JrZXItYXR0cmlidXRlcy5odHRwcy5odG1sCkBAIC0xNCw3ICsxNCw3IEBAIHByb21pc2VfdGVz
dChmdW5jdGlvbih0KSB7CiAgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5k
X3JlZ2lzdGVyKHQsIHdvcmtlcl91cmwsIHNjb3BlKQogICAgICAgLnRoZW4oZnVuY3Rpb24ocikg
ewogICAgICAgICAgIHQuYWRkX2NsZWFudXAoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgIHJl
dHVybiByLnVucmVnaXN0ZXIoKTsKKyAgICAgICAgICAgICAgci51bnJlZ2lzdGVyKCk7CiAgICAg
ICAgICAgICB9KTsKICAgICAgICAgICByZWdpc3RyYXRpb24gPSByOwogICAgICAgICAgIG5ld2Vz
dF93b3JrZXIgPSByZWdpc3RyYXRpb24uaW5zdGFsbGluZzsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL3JlZ2lzdHJhdGlvbi11cGRhdGV2aWFjYWNoZS5odHRwcy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9yZWdpc3RyYXRpb24tdXBkYXRldmlhY2FjaGUuaHR0cHMtZXhw
ZWN0ZWQudHh0CmluZGV4IGM2ZTg2NzU2YzA4MzViODhhNjg4OGJkMDE1ZGE0NDU1MjZiODFhYzQu
LmM5MGQwOTQyZDRkNDY2MjFlMWU1ZGJjYWE1MTEwZWM4MjAwOWU2NTkgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL3JlZ2lzdHJhdGlvbi11cGRhdGV2aWFjYWNoZS5odHRwcy1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVnaXN0cmF0aW9uLXVwZGF0ZXZpYWNhY2hl
Lmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMjMsNSArMjMsNCBAQCBQQVNTIGFjY2Vzcy11cGRhdGVW
aWFDYWNoZS1hZnRlci11bnJlZ2lzdGVyLXVuZGVmaW5lZAogUEFTUyBhY2Nlc3MtdXBkYXRlVmlh
Q2FjaGUtYWZ0ZXItdW5yZWdpc3Rlci1pbXBvcnRzIAogUEFTUyBhY2Nlc3MtdXBkYXRlVmlhQ2Fj
aGUtYWZ0ZXItdW5yZWdpc3Rlci1hbGwgCiBQQVNTIGFjY2Vzcy11cGRhdGVWaWFDYWNoZS1hZnRl
ci11bnJlZ2lzdGVyLW5vbmUgCi1GQUlMIHVwZGF0ZVZpYUNhY2hlIGlzIG5vdCB1cGRhdGVkIGlm
IHJlZ2lzdGVyKCkgcmVqZWN0cyBhc3NlcnRfZXF1YWxzOiBhZnRlciB1cGRhdGUgYXR0ZW1wdCBl
eHBlY3RlZCAiaW1wb3J0cyIgYnV0IGdvdCAibm9uZSIKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvcmVnaXN0cmF0aW9uLXVwZGF0ZXZpYWNhY2hlLmh0dHBzLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9yZWdpc3RyYXRpb24tdXBkYXRldmlhY2FjaGUuaHR0cHMuaHRtbAppbmRleCA0
MjM5MDhkYjBlNDI4ZDY1YjQ4YjhiOGQxNjE2MmE1ZWJjZjg3MjY4Li5kYmNjNmVhYjFmODJhNmIz
M2VkN2Q4ODljYmE1MWJlNWI5ODRiNjEwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9y
ZWdpc3RyYXRpb24tdXBkYXRldmlhY2FjaGUuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9yZWdpc3RyYXRpb24tdXBkYXRldmlhY2FjaGUuaHR0cHMuaHRtbApAQCAtMTg0LDIxICsx
ODQsNCBAQAogICAgIH0sIHRlc3ROYW1lKTsKICAgfQogCi0gIHByb21pc2VfdGVzdChhc3luYyB0
ID0+IHsKLSAgICBhd2FpdCBjbGVhbnVwKCk7Ci0gICAgdC5hZGRfY2xlYW51cChjbGVhbnVwKTsK
LQotICAgIGNvbnN0IHJlZ2lzdHJhdGlvbiA9IGF3YWl0IG5hdmlnYXRvci5zZXJ2aWNlV29ya2Vy
LnJlZ2lzdGVyKAotICAgICAgICAncmVzb3VyY2VzL2VtcHR5LmpzJywKLSAgICAgICAge3Njb3Bl
OiBTQ09QRX0pOwotICAgIGFzc2VydF9lcXVhbHMocmVnaXN0cmF0aW9uLnVwZGF0ZVZpYUNhY2hl
LCAnaW1wb3J0cycsCi0gICAgICAgICAgICAgICAgICAnYmVmb3JlIHVwZGF0ZSBhdHRlbXB0Jyk7
Ci0KLSAgICBjb25zdCBmYWlsID0gbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoCi0g
ICAgICAgICdyZXNvdXJjZXMvbWFsZm9ybWVkLXdvcmtlci5weT9wYXJzZS1lcnJvcicsCi0gICAg
ICAgIHtzY29wZTogU0NPUEUsIHVwZGF0ZVZpYUNhY2hlOiAnbm9uZSd9KTsKLSAgICBhd2FpdCBw
cm9taXNlX3JlamVjdHModCwgbmV3IFR5cGVFcnJvcigpLCBmYWlsKTsKLSAgICBhc3NlcnRfZXF1
YWxzKHJlZ2lzdHJhdGlvbi51cGRhdGVWaWFDYWNoZSwgJ2ltcG9ydHMnLAotICAgICAgICAgICAg
ICAgICAgJ2FmdGVyIHVwZGF0ZSBhdHRlbXB0Jyk7Ci0gIH0sICd1cGRhdGVWaWFDYWNoZSBpcyBu
b3QgdXBkYXRlZCBpZiByZWdpc3RlcigpIHJlamVjdHMnKTsKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2UtdGltaW5nLmh0dHBzLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlLXRpbWluZy5odHRwcy1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uOGMwMGRkMjA1YjhjYzg5MTc5YThiNjc3ZjQ1Nzk5YjBlY2Y2NzBjNAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlLXRpbWluZy5odHRwcy1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSw5IEBACitCbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwg
aHR0cHM6Ly93d3cxLmxvY2FsaG9zdDo5NDQzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9yZXNvdXJjZXMvc3F1YXJlLnBuZworQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0
dHBzOi8vd3d3MS5sb2NhbGhvc3Q6OTQ0My9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
cmVzb3VyY2VzL21pc3NpbmcuanBnCitCbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0
cHM6Ly93d3cxLmxvY2FsaG9zdDo5NDQzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9y
ZXNvdXJjZXMvc3F1YXJlLnBuZworQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBz
Oi8vd3d3MS5sb2NhbGhvc3Q6OTQ0My9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVz
b3VyY2VzL21pc3NpbmcuanBnCisKKworRkFJTCBDb250cm9sbGVkIHJlc291cmNlIGxvYWRzIGFz
c2VydF9ncmVhdGVyX3RoYW46IEdlbmVyYXRlZCByZXNwb25zZSBleHBlY3RlZCBhIG51bWJlciBn
cmVhdGVyIHRoYW4gMCBidXQgZ290IDAKK1BBU1MgTm9uLWNvbnRyb2xsZWQgcmVzb3VyY2UgbG9h
ZHMgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlLXRpbWluZy5odHRw
cy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2UtdGltaW5nLmh0dHBzLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMTIzYmJjODdjNTdlODU3YTUxN2FiNzkyNzE3ZjFjZjY1YjlhM2ExNgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlLXRpbWluZy5odHRwcy5odG1s
CkBAIC0wLDAgKzEsMTQ0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxzY3JpcHQgc3JjPSIvcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvY29tbW9uL2dldC1o
b3N0LWluZm8uc3ViLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGVzdC1o
ZWxwZXJzLnN1Yi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gcmVzb3VyY2VVcmwo
cGF0aCkgeworICAgIHJldHVybiBnZXRfaG9zdF9pbmZvKClbJ0hUVFBTX09SSUdJTiddICsgYmFz
ZV9wYXRoKCkgKyBwYXRoOworfQorCitmdW5jdGlvbiBjcm9zc09yaWdpblVybChwYXRoKSB7Cisg
ICAgcmV0dXJuIGdldF9ob3N0X2luZm8oKVsnSFRUUFNfUkVNT1RFX09SSUdJTiddICsgYmFzZV9w
YXRoKCkgKyBwYXRoOworfQorCitmdW5jdGlvbiB2ZXJpZnkob3B0aW9ucykgeworICAgIGNvbnN0
IHVybCA9IG9wdGlvbnMubW9kZSA9PT0gJ2Nyb3NzLW9yaWdpbicgPyBjcm9zc09yaWdpblVybChv
cHRpb25zLnJlc291cmNlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6
IHJlc291cmNlVXJsKG9wdGlvbnMucmVzb3VyY2UpOworICAgIGNvbnN0IGVudHJ5TGlzdCA9IG9w
dGlvbnMucGVyZm9ybWFuY2UuZ2V0RW50cmllc0J5TmFtZSh1cmwpOworICAgIGlmIChvcHRpb25z
LnNob3VsZF9ub19wZXJmb3JtYW5jZV9lbnRyeSkgeworICAgICAgICAvLyBUaGUgcGVyZm9ybWFu
Y2UgdGltZWxpbmUgbWF5IG5vdCBoYXZlIGFuIGVudHJ5IGZvciBhIHJlc291cmNlCisgICAgICAg
IC8vIHdoaWNoIGZhaWxlZCB0byBsb2FkLgorICAgICAgICBhc3NlcnRfZXF1YWxzKGVudHJ5TGlz
dC5sZW5ndGgsIDAsIG9wdGlvbnMuZGVzY3JpcHRpb24pOworICAgICAgICByZXR1cm47CisgICAg
fQorICAgIGFzc2VydF9lcXVhbHMoZW50cnlMaXN0Lmxlbmd0aCwgMSwgb3B0aW9ucy5kZXNjcmlw
dGlvbik7CisgICAgY29uc3QgZW50cnkgPSBlbnRyeUxpc3RbMF07CisgICAgYXNzZXJ0X2VxdWFs
cyhlbnRyeS5lbnRyeVR5cGUsICdyZXNvdXJjZScsIG9wdGlvbnMuZGVzY3JpcHRpb24pOworICAg
IGFzc2VydF9ncmVhdGVyX3RoYW4oZW50cnkud29ya2VyU3RhcnQsIDAsIG9wdGlvbnMuZGVzY3Jp
cHRpb24pOworICAgIGFzc2VydF9ncmVhdGVyX3RoYW5fZXF1YWwoZW50cnkud29ya2VyU3RhcnQs
IGVudHJ5LnN0YXJ0VGltZSwgb3B0aW9ucy5kZXNjcmlwdGlvbik7CisgICAgYXNzZXJ0X2xlc3Nf
dGhhbl9lcXVhbChlbnRyeS53b3JrZXJTdGFydCwgZW50cnkuZmV0Y2hTdGFydCwgb3B0aW9ucy5k
ZXNjcmlwdGlvbik7CisgICAgaWYgKG9wdGlvbnMubW9kZSA9PT0gJ2Nyb3NzLW9yaWdpbicpIHsK
KyAgICAgIGFzc2VydF9lcXVhbHMoZW50cnkucmVzcG9uc2VTdGFydCwgMCwgb3B0aW9ucy5kZXNj
cmlwdGlvbik7CisgICAgICBhc3NlcnRfZ3JlYXRlcl90aGFuX2VxdWFsKGVudHJ5LnJlc3BvbnNl
RW5kLCBlbnRyeS5mZXRjaFN0YXJ0LCBvcHRpb25zLmRlc2NyaXB0aW9uKTsKKyAgICB9IGVsc2Ug
eworICAgICAgYXNzZXJ0X2dyZWF0ZXJfdGhhbl9lcXVhbChlbnRyeS5yZXNwb25zZVN0YXJ0LCBl
bnRyeS5mZXRjaFN0YXJ0LCBvcHRpb25zLmRlc2NyaXB0aW9uKTsKKyAgICAgIGFzc2VydF9ncmVh
dGVyX3RoYW5fZXF1YWwoZW50cnkucmVzcG9uc2VFbmQsIGVudHJ5LnJlc3BvbnNlU3RhcnQsIG9w
dGlvbnMuZGVzY3JpcHRpb24pOworICAgIH0KKyAgICBhc3NlcnRfZ3JlYXRlcl90aGFuKGVudHJ5
LnJlc3BvbnNlRW5kLCBlbnRyeS5mZXRjaFN0YXJ0LCBvcHRpb25zLmRlc2NyaXB0aW9uKTsKKyAg
ICBhc3NlcnRfZ3JlYXRlcl90aGFuKGVudHJ5LmR1cmF0aW9uLCAwLCBvcHRpb25zLmRlc2NyaXB0
aW9uKTsKKyAgICBpZiAob3B0aW9ucy5yZXNvdXJjZS5pbmRleE9mKCdyZWRpcmVjdC5weScpICE9
IC0xKSB7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW5fZXF1YWwoZW50cnkud29ya2VyU3RhcnQs
IGVudHJ5LnJlZGlyZWN0U3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0
aW9ucy5kZXNjcmlwdGlvbik7CisgICAgfSBlbHNlIHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhl
bnRyeS5yZWRpcmVjdFN0YXJ0LCAwLCBvcHRpb25zLmRlc2NyaXB0aW9uKTsKKyAgICB9Cit9CisK
K3Byb21pc2VfdGVzdChmdW5jdGlvbih0KSB7CisgICAgY29uc3Qgd29ya2VyX3VybCA9ICdyZXNv
dXJjZXMvcmVzb3VyY2UtdGltaW5nLXdvcmtlci5qcyc7CisgICAgY29uc3Qgc2NvcGUgPSAncmVz
b3VyY2VzL3Jlc291cmNlLXRpbWluZy1pZnJhbWUuc3ViLmh0bWwnOworICAgIGxldCByZWdpc3Ry
YXRpb247CisKKyAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0
ZXIodCwgd29ya2VyX3VybCwgc2NvcGUpCisgICAgICAudGhlbihmdW5jdGlvbihyKSB7CisgICAg
ICAgICAgcmVnaXN0cmF0aW9uID0gcjsKKyAgICAgICAgICByZXR1cm4gd2FpdF9mb3Jfc3RhdGUo
dCwgci5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7CisgICAgICAgIH0pCisgICAgICAudGhlbihm
dW5jdGlvbigpIHsKKyAgICAgICAgICByZXR1cm4gd2l0aF9pZnJhbWUoc2NvcGUpOworICAgICAg
ICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24oZnJhbWUpIHsKKyAgICAgICAgICBjb25zdCBwZXJm
b3JtYW5jZSA9IGZyYW1lLmNvbnRlbnRXaW5kb3cucGVyZm9ybWFuY2U7CisgICAgICAgICAgdmVy
aWZ5KHsKKyAgICAgICAgICAgICAgcGVyZm9ybWFuY2U6IHBlcmZvcm1hbmNlLAorICAgICAgICAg
ICAgICByZXNvdXJjZTogJ3Jlc291cmNlcy9kdW1teS5qcycsCisgICAgICAgICAgICAgIG1vZGU6
ICdzYW1lLW9yaWdpbicsCisgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnR2VuZXJhdGVkIHJl
c3BvbnNlJywKKyAgICAgICAgICB9KTsKKyAgICAgICAgICB2ZXJpZnkoeworICAgICAgICAgICAg
ICBwZXJmb3JtYW5jZTogcGVyZm9ybWFuY2UsCisgICAgICAgICAgICAgIHJlc291cmNlOiAncmVz
b3VyY2VzL2VtcHR5LmpzJywKKyAgICAgICAgICAgICAgbW9kZTogJ3NhbWUtb3JpZ2luJywKKyAg
ICAgICAgICAgICAgZGVzY3JpcHRpb246ICdOZXR3b3JrIGZhbGxiYWNrJywKKyAgICAgICAgICB9
KTsKKyAgICAgICAgICB2ZXJpZnkoeworICAgICAgICAgICAgICBwZXJmb3JtYW5jZTogcGVyZm9y
bWFuY2UsCisgICAgICAgICAgICAgIHJlc291cmNlOiAncmVzb3VyY2VzL3JlZGlyZWN0LnB5P1Jl
ZGlyZWN0PWVtcHR5LmpzJywKKyAgICAgICAgICAgICAgbW9kZTogJ3NhbWUtb3JpZ2luJywKKyAg
ICAgICAgICAgICAgZGVzY3JpcHRpb246ICdSZWRpcmVjdCcsCisgICAgICAgICAgfSk7CisgICAg
ICAgICAgdmVyaWZ5KHsKKyAgICAgICAgICAgICAgcGVyZm9ybWFuY2U6IHBlcmZvcm1hbmNlLAor
ICAgICAgICAgICAgICByZXNvdXJjZTogJ3Jlc291cmNlcy9zcXVhcmUucG5nJywKKyAgICAgICAg
ICAgICAgbW9kZTogJ3NhbWUtb3JpZ2luJywKKyAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdO
ZXR3b3JrIGZhbGxiYWNrIGltYWdlJywKKyAgICAgICAgICB9KTsKKyAgICAgICAgICAvLyBUZXN0
IHRoYXQgd29ya2VyIHN0YXJ0IGlzIGF2YWlsYWJsZSBvbiBjcm9zcy1vcmlnaW4gbm8tY29ycwor
ICAgICAgICAgIC8vIHN1YnJlc291cmNlcy4KKyAgICAgICAgICB2ZXJpZnkoeworICAgICAgICAg
ICAgICBwZXJmb3JtYW5jZTogcGVyZm9ybWFuY2UsCisgICAgICAgICAgICAgIHJlc291cmNlOiAn
cmVzb3VyY2VzL3NxdWFyZS5wbmcnLAorICAgICAgICAgICAgICBtb2RlOiAnY3Jvc3Mtb3JpZ2lu
JywKKyAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdOZXR3b3JrIGZhbGxiYWNrIGNyb3NzLW9y
aWdpbiBpbWFnZScsCisgICAgICAgICAgfSk7CisKKyAgICAgICAgICAvLyBUZXN0cyBmb3IgcmVz
b3VjZXMgd2hpY2ggZmFpbGVkIHRvIGxvYWQuCisgICAgICAgICAgdmVyaWZ5KHsKKyAgICAgICAg
ICAgICAgcGVyZm9ybWFuY2U6IHBlcmZvcm1hbmNlLAorICAgICAgICAgICAgICByZXNvdXJjZTog
J3Jlc291cmNlcy9taXNzaW5nLmpwZycsCisgICAgICAgICAgICAgIG1vZGU6ICdzYW1lLW9yaWdp
bicsCisgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnTmV0d29yayBmYWxsYmFjayBsb2FkIGZh
aWx1cmUnLAorICAgICAgICAgICAgICBzaG91bGRfbm9fcGVyZm9ybWFuY2VfZW50cnk6IHRydWUs
CisgICAgICAgICAgfSk7CisgICAgICAgICAgdmVyaWZ5KHsKKyAgICAgICAgICAgICAgcGVyZm9y
bWFuY2U6IHBlcmZvcm1hbmNlLAorICAgICAgICAgICAgICByZXNvdXJjZTogJ3Jlc291cmNlcy9t
aXNzaW5nLmpwZycsCisgICAgICAgICAgICAgIG1vZGU6ICdjcm9zcy1vcmlnaW4nLAorICAgICAg
ICAgICAgICBkZXNjcmlwdGlvbjogJ05ldHdvcmsgZmFsbGJhY2sgY3Jvc3Mtb3JpZ2luIGxvYWQg
ZmFpbHVyZScsCisgICAgICAgICAgICAgIHNob3VsZF9ub19wZXJmb3JtYW5jZV9lbnRyeTogdHJ1
ZSwKKyAgICAgICAgICB9KTsKKyAgICAgICAgICAvLyBUZXN0cyBmb3IgcmVzcG9uZFdpdGgoZmV0
Y2goKSkuCisgICAgICAgICAgdmVyaWZ5KHsKKyAgICAgICAgICAgICAgcGVyZm9ybWFuY2U6IHBl
cmZvcm1hbmNlLAorICAgICAgICAgICAgICByZXNvdXJjZTogJ3Jlc291cmNlcy9taXNzaW5nLmpw
Zz9TV1Jlc3BvbmRzV2l0aEZldGNoJywKKyAgICAgICAgICAgICAgbW9kZTogJ3NhbWUtb3JpZ2lu
JywKKyAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdSZXNvdXJjZSBpbiBpZnJhbWUsIG5vbmV4
aXN0ZW50IGJ1dCByZXNwb25kZWQgd2l0aCBmZXRjaCB0byBhbm90aGVyLicsCisgICAgICAgICAg
fSk7CisgICAgICAgICAgdmVyaWZ5KHsKKyAgICAgICAgICAgICAgcGVyZm9ybWFuY2U6IHBlcmZv
cm1hbmNlLAorICAgICAgICAgICAgICByZXNvdXJjZTogJ3Jlc291cmNlcy9kdW1teS50eHQ/U1dG
ZXRjaGVkJywKKyAgICAgICAgICAgICAgbW9kZTogJ3NhbWUtb3JpZ2luJywKKyAgICAgICAgICAg
ICAgZGVzY3JpcHRpb246ICdSZXNvdXJjZSBmZXRjaGVkIGFzIHJlc3BvbnNlIGZyb20gbWlzc2lu
Zy5qcGc/U1dSZXNwb25kc1dpdGhGZXRjaC4nLAorICAgICAgICAgICAgICBzaG91bGRfbm9fcGVy
Zm9ybWFuY2VfZW50cnk6IHRydWUsCisgICAgICAgICAgfSk7CisgICAgICAgICAgLy8gVGVzdCBm
b3IgYSBub3JtYWwgcmVzb3VyY2UgdGhhdCBpcyB1bmFmZmVjdGVkIGJ5IHRoZSBTZXJ2aWNlIFdv
cmtlci4KKyAgICAgICAgICB2ZXJpZnkoeworICAgICAgICAgICAgICBwZXJmb3JtYW5jZTogcGVy
Zm9ybWFuY2UsCisgICAgICAgICAgICAgIHJlc291cmNlOiAncmVzb3VyY2VzL2VtcHR5LXdvcmtl
ci5qcycsCisgICAgICAgICAgICAgIG1vZGU6ICdzYW1lLW9yaWdpbicsCisgICAgICAgICAgICAg
IGRlc2NyaXB0aW9uOiAnUmVzb3VyY2UgdW50b3VjaGVkIGJ5IHRoZSBTZXJ2aWNlIFdvcmtlci4n
LAorICAgICAgICAgIH0pOworCisgICAgICAgICAgZnJhbWUucmVtb3ZlKCk7CisgICAgICAgICAg
cmV0dXJuIHJlZ2lzdHJhdGlvbi51bnJlZ2lzdGVyKCk7CisgICAgICB9KTsKK30sICdDb250cm9s
bGVkIHJlc291cmNlIGxvYWRzJyk7CisKK3Rlc3QoKCkgPT4geworICAgIGNvbnN0IHVybCA9IHJl
c291cmNlVXJsKCdyZXNvdXJjZXMvdGVzdC1oZWxwZXJzLnN1Yi5qcycpOworICAgIGNvbnN0IGVu
dHJ5ID0gd2luZG93LnBlcmZvcm1hbmNlLmdldEVudHJpZXNCeU5hbWUodXJsKVswXTsKKyAgICBh
c3NlcnRfZXF1YWxzKGVudHJ5LndvcmtlclN0YXJ0LCAwLCAnTm9uLWNvbnRyb2xsZWQnKTsKK30s
ICdOb24tY29udHJvbGxlZCByZXNvdXJjZSBsb2FkcycpOworCis8L3NjcmlwdD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlLXRpbWluZy5zdWIuaHR0cHMtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2UtdGltaW5nLnN1Yi5odHRwcy1leHBlY3Rl
ZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM0MWMyYjdlNTNmZjcyMjE4Mjlj
NjNlYjc0MmI4NzViZjlhMTY2MmEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2UtdGltaW5nLnN1Yi5odHRwcy1l
eHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw1ICswLDAgQEAKLQotCi1GQUlMIENvbnRy
b2xsZWQgcmVzb3VyY2UgbG9hZHMgYXNzZXJ0X2dyZWF0ZXJfdGhhbjogR2VuZXJhdGVkIHJlc3Bv
bnNlIGV4cGVjdGVkIGEgbnVtYmVyIGdyZWF0ZXIgdGhhbiAwIGJ1dCBnb3QgMAotUEFTUyBOb24t
Y29udHJvbGxlZCByZXNvdXJjZSBsb2FkcyAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvcmVzb3VyY2UtdGltaW5nLnN1Yi5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVz
b3VyY2UtdGltaW5nLnN1Yi5odHRwcy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBmMDUwMmNhYzcyNzg5NmNlNjc0ZjNiOTNhOWRkNGNmY2JmNTRiNDFiLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291
cmNlLXRpbWluZy5zdWIuaHR0cHMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDE0MyArMCwwIEBA
Ci08IURPQ1RZUEUgaHRtbD4KLTxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0Lmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGVzdC1oZWxwZXJzLnN1Yi5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0PgotZnVuY3Rpb24gcmVzb3VyY2VVcmwocGF0aCkgewotICAgIHJl
dHVybiAiaHR0cHM6Ly97e2hvc3R9fTp7e3BvcnRzW2h0dHBzXVswXX19IiArIGJhc2VfcGF0aCgp
ICsgcGF0aDsKLX0KLQotZnVuY3Rpb24gY3Jvc3NPcmlnaW5VcmwocGF0aCkgewotICAgIHJldHVy
biAiaHR0cHM6Ly97e2hvc3RzW2FsdF1bXX19Ont7cG9ydHNbaHR0cHNdWzBdfX0iICsgYmFzZV9w
YXRoKCkgKyBwYXRoOwotfQotCi1mdW5jdGlvbiB2ZXJpZnkob3B0aW9ucykgewotICAgIGNvbnN0
IHVybCA9IG9wdGlvbnMubW9kZSA9PT0gJ2Nyb3NzLW9yaWdpbicgPyBjcm9zc09yaWdpblVybChv
cHRpb25zLnJlc291cmNlKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6
IHJlc291cmNlVXJsKG9wdGlvbnMucmVzb3VyY2UpOwotICAgIGNvbnN0IGVudHJ5TGlzdCA9IG9w
dGlvbnMucGVyZm9ybWFuY2UuZ2V0RW50cmllc0J5TmFtZSh1cmwsICdyZXNvdXJjZScpOwotICAg
IGlmIChvcHRpb25zLnNob3VsZF9ub19wZXJmb3JtYW5jZV9lbnRyeSkgewotICAgICAgICAvLyBU
aGUgcGVyZm9ybWFuY2UgdGltZWxpbmUgbWF5IG5vdCBoYXZlIGFuIGVudHJ5IGZvciBhIHJlc291
cmNlCi0gICAgICAgIC8vIHdoaWNoIGZhaWxlZCB0byBsb2FkLgotICAgICAgICBhc3NlcnRfZXF1
YWxzKGVudHJ5TGlzdC5sZW5ndGgsIDAsIG9wdGlvbnMuZGVzY3JpcHRpb24pOwotICAgICAgICBy
ZXR1cm47Ci0gICAgfQotICAgIGFzc2VydF9lcXVhbHMoZW50cnlMaXN0Lmxlbmd0aCwgMSwgb3B0
aW9ucy5kZXNjcmlwdGlvbik7Ci0gICAgY29uc3QgZW50cnkgPSBlbnRyeUxpc3RbMF07Ci0gICAg
YXNzZXJ0X2VxdWFscyhlbnRyeS5lbnRyeVR5cGUsICdyZXNvdXJjZScsIG9wdGlvbnMuZGVzY3Jp
cHRpb24pOwotICAgIGFzc2VydF9ncmVhdGVyX3RoYW4oZW50cnkud29ya2VyU3RhcnQsIDAsIG9w
dGlvbnMuZGVzY3JpcHRpb24pOwotICAgIGFzc2VydF9ncmVhdGVyX3RoYW5fZXF1YWwoZW50cnku
d29ya2VyU3RhcnQsIGVudHJ5LnN0YXJ0VGltZSwgb3B0aW9ucy5kZXNjcmlwdGlvbik7Ci0gICAg
YXNzZXJ0X2xlc3NfdGhhbl9lcXVhbChlbnRyeS53b3JrZXJTdGFydCwgZW50cnkuZmV0Y2hTdGFy
dCwgb3B0aW9ucy5kZXNjcmlwdGlvbik7Ci0gICAgaWYgKG9wdGlvbnMubW9kZSA9PT0gJ2Nyb3Nz
LW9yaWdpbicpIHsKLSAgICAgIGFzc2VydF9lcXVhbHMoZW50cnkucmVzcG9uc2VTdGFydCwgMCwg
b3B0aW9ucy5kZXNjcmlwdGlvbik7Ci0gICAgICBhc3NlcnRfZ3JlYXRlcl90aGFuX2VxdWFsKGVu
dHJ5LnJlc3BvbnNlRW5kLCBlbnRyeS5mZXRjaFN0YXJ0LCBvcHRpb25zLmRlc2NyaXB0aW9uKTsK
LSAgICB9IGVsc2UgewotICAgICAgYXNzZXJ0X2dyZWF0ZXJfdGhhbl9lcXVhbChlbnRyeS5yZXNw
b25zZVN0YXJ0LCBlbnRyeS5mZXRjaFN0YXJ0LCBvcHRpb25zLmRlc2NyaXB0aW9uKTsKLSAgICAg
IGFzc2VydF9ncmVhdGVyX3RoYW5fZXF1YWwoZW50cnkucmVzcG9uc2VFbmQsIGVudHJ5LnJlc3Bv
bnNlU3RhcnQsIG9wdGlvbnMuZGVzY3JpcHRpb24pOwotICAgIH0KLSAgICBhc3NlcnRfZ3JlYXRl
cl90aGFuKGVudHJ5LnJlc3BvbnNlRW5kLCBlbnRyeS5mZXRjaFN0YXJ0LCBvcHRpb25zLmRlc2Ny
aXB0aW9uKTsKLSAgICBhc3NlcnRfZ3JlYXRlcl90aGFuKGVudHJ5LmR1cmF0aW9uLCAwLCBvcHRp
b25zLmRlc2NyaXB0aW9uKTsKLSAgICBpZiAob3B0aW9ucy5yZXNvdXJjZS5pbmRleE9mKCdyZWRp
cmVjdC5weScpICE9IC0xKSB7Ci0gICAgICAgIGFzc2VydF9sZXNzX3RoYW5fZXF1YWwoZW50cnku
d29ya2VyU3RhcnQsIGVudHJ5LnJlZGlyZWN0U3RhcnQsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgb3B0aW9ucy5kZXNjcmlwdGlvbik7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgYXNz
ZXJ0X2VxdWFscyhlbnRyeS5yZWRpcmVjdFN0YXJ0LCAwLCBvcHRpb25zLmRlc2NyaXB0aW9uKTsK
LSAgICB9Ci19Ci0KLXByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7Ci0gICAgY29uc3Qgd29ya2Vy
X3VybCA9ICdyZXNvdXJjZXMvcmVzb3VyY2UtdGltaW5nLXdvcmtlci5qcyc7Ci0gICAgY29uc3Qg
c2NvcGUgPSAncmVzb3VyY2VzL3Jlc291cmNlLXRpbWluZy1pZnJhbWUuc3ViLmh0bWwnOwotICAg
IGxldCByZWdpc3RyYXRpb247Ci0KLSAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rl
cl9hbmRfcmVnaXN0ZXIodCwgd29ya2VyX3VybCwgc2NvcGUpCi0gICAgICAudGhlbihmdW5jdGlv
bihyKSB7Ci0gICAgICAgICAgcmVnaXN0cmF0aW9uID0gcjsKLSAgICAgICAgICByZXR1cm4gd2Fp
dF9mb3Jfc3RhdGUodCwgci5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7Ci0gICAgICAgIH0pCi0g
ICAgICAudGhlbihmdW5jdGlvbigpIHsKLSAgICAgICAgICByZXR1cm4gd2l0aF9pZnJhbWUoc2Nv
cGUpOwotICAgICAgICB9KQotICAgICAgLnRoZW4oZnVuY3Rpb24oZnJhbWUpIHsKLSAgICAgICAg
ICBjb25zdCBwZXJmb3JtYW5jZSA9IGZyYW1lLmNvbnRlbnRXaW5kb3cucGVyZm9ybWFuY2U7Ci0g
ICAgICAgICAgdmVyaWZ5KHsKLSAgICAgICAgICAgICAgcGVyZm9ybWFuY2U6IHBlcmZvcm1hbmNl
LAotICAgICAgICAgICAgICByZXNvdXJjZTogJ3Jlc291cmNlcy9kdW1teS5qcycsCi0gICAgICAg
ICAgICAgIG1vZGU6ICdzYW1lLW9yaWdpbicsCi0gICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAn
R2VuZXJhdGVkIHJlc3BvbnNlJywKLSAgICAgICAgICB9KTsKLSAgICAgICAgICB2ZXJpZnkoewot
ICAgICAgICAgICAgICBwZXJmb3JtYW5jZTogcGVyZm9ybWFuY2UsCi0gICAgICAgICAgICAgIHJl
c291cmNlOiAncmVzb3VyY2VzL2VtcHR5LmpzJywKLSAgICAgICAgICAgICAgbW9kZTogJ3NhbWUt
b3JpZ2luJywKLSAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdOZXR3b3JrIGZhbGxiYWNrJywK
LSAgICAgICAgICB9KTsKLSAgICAgICAgICB2ZXJpZnkoewotICAgICAgICAgICAgICBwZXJmb3Jt
YW5jZTogcGVyZm9ybWFuY2UsCi0gICAgICAgICAgICAgIHJlc291cmNlOiAncmVzb3VyY2VzL3Jl
ZGlyZWN0LnB5P1JlZGlyZWN0PWVtcHR5LmpzJywKLSAgICAgICAgICAgICAgbW9kZTogJ3NhbWUt
b3JpZ2luJywKLSAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdSZWRpcmVjdCcsCi0gICAgICAg
ICAgfSk7Ci0gICAgICAgICAgdmVyaWZ5KHsKLSAgICAgICAgICAgICAgcGVyZm9ybWFuY2U6IHBl
cmZvcm1hbmNlLAotICAgICAgICAgICAgICByZXNvdXJjZTogJ3Jlc291cmNlcy9zcXVhcmUucG5n
JywKLSAgICAgICAgICAgICAgbW9kZTogJ3NhbWUtb3JpZ2luJywKLSAgICAgICAgICAgICAgZGVz
Y3JpcHRpb246ICdOZXR3b3JrIGZhbGxiYWNrIGltYWdlJywKLSAgICAgICAgICB9KTsKLSAgICAg
ICAgICAvLyBUZXN0IHRoYXQgd29ya2VyIHN0YXJ0IGlzIGF2YWlsYWJsZSBvbiBjcm9zcy1vcmln
aW4gbm8tY29ycwotICAgICAgICAgIC8vIHN1YnJlc291cmNlcy4KLSAgICAgICAgICB2ZXJpZnko
ewotICAgICAgICAgICAgICBwZXJmb3JtYW5jZTogcGVyZm9ybWFuY2UsCi0gICAgICAgICAgICAg
IHJlc291cmNlOiAncmVzb3VyY2VzL3NxdWFyZS5wbmcnLAotICAgICAgICAgICAgICBtb2RlOiAn
Y3Jvc3Mtb3JpZ2luJywKLSAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdOZXR3b3JrIGZhbGxi
YWNrIGNyb3NzLW9yaWdpbiBpbWFnZScsCi0gICAgICAgICAgfSk7Ci0KLSAgICAgICAgICAvLyBU
ZXN0cyBmb3IgcmVzb3VjZXMgd2hpY2ggZmFpbGVkIHRvIGxvYWQuCi0gICAgICAgICAgdmVyaWZ5
KHsKLSAgICAgICAgICAgICAgcGVyZm9ybWFuY2U6IHBlcmZvcm1hbmNlLAotICAgICAgICAgICAg
ICByZXNvdXJjZTogJ3Jlc291cmNlcy9taXNzaW5nLmpwZycsCi0gICAgICAgICAgICAgIG1vZGU6
ICdzYW1lLW9yaWdpbicsCi0gICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnTmV0d29yayBmYWxs
YmFjayBsb2FkIGZhaWx1cmUnLAotICAgICAgICAgICAgICBzaG91bGRfbm9fcGVyZm9ybWFuY2Vf
ZW50cnk6IHRydWUsCi0gICAgICAgICAgfSk7Ci0gICAgICAgICAgdmVyaWZ5KHsKLSAgICAgICAg
ICAgICAgcGVyZm9ybWFuY2U6IHBlcmZvcm1hbmNlLAotICAgICAgICAgICAgICByZXNvdXJjZTog
J3Jlc291cmNlcy9taXNzaW5nLmpwZycsCi0gICAgICAgICAgICAgIG1vZGU6ICdjcm9zcy1vcmln
aW4nLAotICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ05ldHdvcmsgZmFsbGJhY2sgY3Jvc3Mt
b3JpZ2luIGxvYWQgZmFpbHVyZScsCi0gICAgICAgICAgICAgIHNob3VsZF9ub19wZXJmb3JtYW5j
ZV9lbnRyeTogdHJ1ZSwKLSAgICAgICAgICB9KTsKLSAgICAgICAgICAvLyBUZXN0cyBmb3IgcmVz
cG9uZFdpdGgoZmV0Y2goKSkuCi0gICAgICAgICAgdmVyaWZ5KHsKLSAgICAgICAgICAgICAgcGVy
Zm9ybWFuY2U6IHBlcmZvcm1hbmNlLAotICAgICAgICAgICAgICByZXNvdXJjZTogJ3Jlc291cmNl
cy9taXNzaW5nLmpwZz9TV1Jlc3BvbmRzV2l0aEZldGNoJywKLSAgICAgICAgICAgICAgbW9kZTog
J3NhbWUtb3JpZ2luJywKLSAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdSZXNvdXJjZSBpbiBp
ZnJhbWUsIG5vbmV4aXN0ZW50IGJ1dCByZXNwb25kZWQgd2l0aCBmZXRjaCB0byBhbm90aGVyLics
Ci0gICAgICAgICAgfSk7Ci0gICAgICAgICAgdmVyaWZ5KHsKLSAgICAgICAgICAgICAgcGVyZm9y
bWFuY2U6IHBlcmZvcm1hbmNlLAotICAgICAgICAgICAgICByZXNvdXJjZTogJ3Jlc291cmNlcy9k
dW1teS50eHQ/U1dGZXRjaGVkJywKLSAgICAgICAgICAgICAgbW9kZTogJ3NhbWUtb3JpZ2luJywK
LSAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdSZXNvdXJjZSBmZXRjaGVkIGFzIHJlc3BvbnNl
IGZyb20gbWlzc2luZy5qcGc/U1dSZXNwb25kc1dpdGhGZXRjaC4nLAotICAgICAgICAgICAgICBz
aG91bGRfbm9fcGVyZm9ybWFuY2VfZW50cnk6IHRydWUsCi0gICAgICAgICAgfSk7Ci0gICAgICAg
ICAgLy8gVGVzdCBmb3IgYSBub3JtYWwgcmVzb3VyY2UgdGhhdCBpcyB1bmFmZmVjdGVkIGJ5IHRo
ZSBTZXJ2aWNlIFdvcmtlci4KLSAgICAgICAgICB2ZXJpZnkoewotICAgICAgICAgICAgICBwZXJm
b3JtYW5jZTogcGVyZm9ybWFuY2UsCi0gICAgICAgICAgICAgIHJlc291cmNlOiAncmVzb3VyY2Vz
L2VtcHR5LXdvcmtlci5qcycsCi0gICAgICAgICAgICAgIG1vZGU6ICdzYW1lLW9yaWdpbicsCi0g
ICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnUmVzb3VyY2UgdW50b3VjaGVkIGJ5IHRoZSBTZXJ2
aWNlIFdvcmtlci4nLAotICAgICAgICAgIH0pOwotCi0gICAgICAgICAgZnJhbWUucmVtb3ZlKCk7
Ci0gICAgICAgICAgcmV0dXJuIHJlZ2lzdHJhdGlvbi51bnJlZ2lzdGVyKCk7Ci0gICAgICB9KTsK
LX0sICdDb250cm9sbGVkIHJlc291cmNlIGxvYWRzJyk7Ci0KLXRlc3QoKCkgPT4gewotICAgIGNv
bnN0IHVybCA9IHJlc291cmNlVXJsKCdyZXNvdXJjZXMvdGVzdC1oZWxwZXJzLnN1Yi5qcycpOwot
ICAgIGNvbnN0IGVudHJ5ID0gd2luZG93LnBlcmZvcm1hbmNlLmdldEVudHJpZXNCeU5hbWUodXJs
LCAncmVzb3VyY2UnKVswXTsKLSAgICBhc3NlcnRfZXF1YWxzKGVudHJ5LndvcmtlclN0YXJ0LCAw
LCAnTm9uLWNvbnRyb2xsZWQnKTsKLX0sICdOb24tY29udHJvbGxlZCByZXNvdXJjZSBsb2Fkcycp
OwotCi08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9h
Ym91dC1ibGFuay1yZXBsYWNlbWVudC1waW5nLWZyYW1lLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
cmVzb3VyY2VzL2Fib3V0LWJsYW5rLXJlcGxhY2VtZW50LXBpbmctZnJhbWUucHkKaW5kZXggYmIw
N2MyNDFhZDQ5YTc1MzViYTYyZWU4NjY0YTc1YzhjNTljZDY0Yy4uNThmYjQ0MDNmOWM2NTk3ZDI3
MDdiMWUzMjQxMTU1ZmVjMDcxODlhOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVz
b3VyY2VzL2Fib3V0LWJsYW5rLXJlcGxhY2VtZW50LXBpbmctZnJhbWUucHkKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvcmVzb3VyY2VzL2Fib3V0LWJsYW5rLXJlcGxhY2VtZW50LXBpbmctZnJhbWUu
cHkKQEAgLTQxLDcgKzQxLDYgQEAgaWYgKHdpbi5sb2NhdGlvbi5ocmVmICE9PSAnYWJvdXQ6Ymxh
bmsnKSB7CiAgICAgICB9KTsKICAgICB9CiAgIH0pOwotICB3aW4ubmF2aWdhdG9yLnNlcnZpY2VX
b3JrZXIuc3RhcnRNZXNzYWdlcygpOwogfQogPC9zY3JpcHQ+CiA8L2JvZHk+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvYXBwY2FjaGUtb3JkZXJpbmcubWFuaWZlc3Qg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvYXBwY2FjaGUtb3JkZXJpbmcubWFuaWZlc3QK
aW5kZXggZTY1OTdjY2I4YWNiMGRjZWI0YTk5MGMzMTQ4ZGViZTNjNGZmOGYyMS4uMGRlZWQwZTkx
YTgwMjE0NTIwNjczYzE4OGEzMDkwZWJiNjU3ZjZjMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvcmVzb3VyY2VzL2FwcGNhY2hlLW9yZGVyaW5nLm1hbmlmZXN0CisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL3Jlc291cmNlcy9hcHBjYWNoZS1vcmRlcmluZy5tYW5pZmVzdApAQCAtMSw3ICsx
LDYgQEAKIENBQ0hFIE1BTklGRVNUCiAKIGFwcGNhY2hlLW9yZGVyaW5nLmlzLWFwcGNhY2hlZC5o
dG1sCi1ibGFuay5odG1sCiAKIEZBTExCQUNLOgogYXBwY2FjaGUtb3JkZXJpbmcuaXMtYXBwY2Fj
aGVkNDA0LmpzIGFwcGNhY2hlLW9yZGVyaW5nLmlzLWFwcGNhY2hlZC5qcwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2NsYWltLXdvcmtlci5qcyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL3Jlc291cmNlcy9jbGFpbS13b3JrZXIuanMKaW5kZXggMTgwMDQwNzk0NzVlMmJiZDlk
MWE4ZDI1YWU0YjI2Yzc2MzhkZTU4ZS4uNTNmMjEwY2Y3NjM0OTkzZjg2MzEwY2RlZmVjOWExNWZk
NmI2OTlhMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2NsYWltLXdv
cmtlci5qcworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvY2xhaW0td29ya2VyLmpz
CkBAIC0xNCw2ICsxNCw1IEBAIHNlbGYuYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIGZ1bmN0
aW9uKGV2ZW50KSB7CiAgIH0pOwogCiBzZWxmLmFkZEV2ZW50TGlzdGVuZXIoJ2ZldGNoJywgZnVu
Y3Rpb24oZXZlbnQpIHsKLSAgICBpZiAoIS80MDQvLnRlc3QoZXZlbnQucmVxdWVzdC51cmwpKQot
ICAgICAgZXZlbnQucmVzcG9uZFdpdGgobmV3IFJlc3BvbnNlKCdJbnRlcmNlcHRlZCEnKSk7Ci0g
IH0pOworICAgIGV2ZW50LnJlc3BvbmRXaXRoKG5ldyBSZXNwb25zZSgnSW50ZXJjZXB0ZWQhJykp
OworfSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvY2xhc3NpYy13
b3JrZXIuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvY2xhc3NpYy13b3JrZXIuanMK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM2YTMyYjFhMWY4NGRhYWFjMjUwMzIyNjFj
ODBkMTczY2U3YmE4OTkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2NsYXNzaWMtd29ya2VyLmpzCisrKyAv
ZGV2L251bGwKQEAgLTEgKzAsMCBAQAotaW1wb3J0U2NyaXB0cygnLi9pbXBvcnRlZC1jbGFzc2lj
LXNjcmlwdC5qcycpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2Ns
aWVudHMtZ2V0LWNyb3NzLW9yaWdpbi1mcmFtZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVz
b3VyY2VzL2NsaWVudHMtZ2V0LWNyb3NzLW9yaWdpbi1mcmFtZS5odG1sCmluZGV4IGUxNmJiMTEx
NmRjODEwZDI3NTA3M2UzNjNmYTBkN2I0ZmZhNDY2MjkuLmVhYWRlMzI3YmM1OWQ4ZjJlMzhjNTY3
NjZjMzk5NzNmMWVjNDE0MjYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNl
cy9jbGllbnRzLWdldC1jcm9zcy1vcmlnaW4tZnJhbWUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9yZXNvdXJjZXMvY2xpZW50cy1nZXQtY3Jvc3Mtb3JpZ2luLWZyYW1lLmh0bWwKQEAgLTM4
LDEzICszOCwxNiBAQCB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIGZ1bmN0aW9u
KGUpIHsKICAgICAgIH0pCiAgICAgLnRoZW4oZnVuY3Rpb24oaWZyYW1lKSB7CiAgICAgICAgIGFk
ZF9jb21wbGV0aW9uX2NhbGxiYWNrKGZ1bmN0aW9uKCkgeyBpZnJhbWUucmVtb3ZlKCk7IH0pOwot
ICAgICAgICBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5vbm1lc3NhZ2UgPSBmdW5jdGlvbihlKSB7
CisgICAgICAgIHZhciBjaGFubmVsID0gbmV3IE1lc3NhZ2VDaGFubmVsKCk7CisgICAgICAgIGNo
YW5uZWwucG9ydDEub25tZXNzYWdlID0gZnVuY3Rpb24oZSkgewogICAgICAgICAgIHJlZ2lzdHJh
dGlvbi51bnJlZ2lzdGVyKCk7CiAgICAgICAgICAgd2luZG93LnBhcmVudC5wb3N0TWVzc2FnZSgK
ICAgICAgICAgICAgIHsgdHlwZTogJ2NsaWVudElkJywgdmFsdWU6IGUuZGF0YSB9LCBob3N0X2lu
Zm9bJ0hUVFBTX09SSUdJTiddCiAgICAgICAgICAgKTsKICAgICAgICAgfTsKLSAgICAgICAgcmVn
aXN0cmF0aW9uLmFjdGl2ZS5wb3N0TWVzc2FnZSh7Y2xpZW50SWRzOiBjcm9zc19vcmlnaW5fY2xp
ZW50X2lkc30pOworICAgICAgICBpZnJhbWUuY29udGVudFdpbmRvdy5uYXZpZ2F0b3Iuc2Vydmlj
ZVdvcmtlci5jb250cm9sbGVyLnBvc3RNZXNzYWdlKAorICAgICAgICAgICAge3BvcnQ6Y2hhbm5l
bC5wb3J0MiwgY2xpZW50SWRzOiBjcm9zc19vcmlnaW5fY2xpZW50X2lkc30sCisgICAgICAgICAg
ICBbY2hhbm5lbC5wb3J0Ml0pOwogICAgICAgfSk7CiB9KTsKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2NsaWVudHMtZ2V0LXJlc3VsdGluZ0NsaWVu
dElkLXdvcmtlci5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9jbGllbnRzLWdldC1y
ZXN1bHRpbmdDbGllbnRJZC13b3JrZXIuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDVhNDZmZjljZjQ0MDEwYzVmOTM3NWJiYjdiMjg0OTMyYmQyMWNjYTcuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3Vy
Y2VzL2NsaWVudHMtZ2V0LXJlc3VsdGluZ0NsaWVudElkLXdvcmtlci5qcworKysgL2Rldi9udWxs
CkBAIC0xLDYwICswLDAgQEAKLWxldCBzYXZlZFBvcnQgPSBudWxsOwotbGV0IHNhdmVkUmVzdWx0
aW5nQ2xpZW50SWQgPSBudWxsOwotCi1hc3luYyBmdW5jdGlvbiBnZXRUZXN0aW5nUGFnZSgpIHsK
LSAgY29uc3QgY2xpZW50TGlzdCA9IGF3YWl0IHNlbGYuY2xpZW50cy5tYXRjaEFsbCh7IHR5cGU6
ICd3aW5kb3cnLCBpbmNsdWRlVW5jb250cm9sbGVkOiB0cnVlIH0pOwotICBmb3IgKGxldCBjIG9m
IGNsaWVudExpc3QpIHsKLSAgICBpZiAoYy51cmwuZW5kc1dpdGgoJ2NsaWVudHMtZ2V0Lmh0dHBz
Lmh0bWwnKSkgewotICAgICAgYy5mb2N1cygpOwotICAgICAgcmV0dXJuIGM7Ci0gICAgfQotICB9
Ci0gIHJldHVybiBudWxsOwotfQotCi1hc3luYyBmdW5jdGlvbiBkZXN0cm95UmVzdWx0aW5nQ2xp
ZW50KHRlc3RpbmdQYWdlKSB7Ci0gIGNvbnN0IGRlc3Ryb3llZFByb21pc2UgPSBuZXcgUHJvbWlz
ZShyZXNvbHZlID0+IHsKLSAgICBzZWxmLmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCBlID0+
IHsKLSAgICAgIGlmIChlLmRhdGEubXNnID09ICdyZXN1bHRpbmdDbGllbnREZXN0cm95ZWQnKSB7
Ci0gICAgICAgIHJlc29sdmUoKTsKLSAgICAgIH0KLSAgICB9LCB7b25jZTogdHJ1ZX0pOwotICB9
KTsKLSAgdGVzdGluZ1BhZ2UucG9zdE1lc3NhZ2UoeyBtc2c6ICdkZXN0cm95UmVzdWx0aW5nQ2xp
ZW50JyB9KTsKLSAgcmV0dXJuIGRlc3Ryb3llZFByb21pc2U7Ci19Ci0KLXNlbGYuYWRkRXZlbnRM
aXN0ZW5lcignZmV0Y2gnLCBhc3luYyAoZSkgPT4gewotICBsZXQgeyByZXN1bHRpbmdDbGllbnRJ
ZCB9ID0gZTsKLSAgc2F2ZWRSZXN1bHRpbmdDbGllbnRJZCA9IHJlc3VsdGluZ0NsaWVudElkOwot
Ci0gIGlmIChlLnJlcXVlc3QudXJsLmVuZHNXaXRoKCdzaW1wbGUuaHRtbD9mYWlsJykpIHsKLSAg
ICBlLndhaXRVbnRpbCgoYXN5bmMgKCkgPT4gewotICAgICAgY29uc3QgdGVzdGluZ1BhZ2UgPSBh
d2FpdCBnZXRUZXN0aW5nUGFnZSgpOwotICAgICAgYXdhaXQgZGVzdHJveVJlc3VsdGluZ0NsaWVu
dCh0ZXN0aW5nUGFnZSk7Ci0gICAgICB0ZXN0aW5nUGFnZS5wb3N0TWVzc2FnZSh7IG1zZzogJ3Jl
c3VsdGluZ0NsaWVudERlc3Ryb3llZEFjaycsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHJlc3VsdGluZ0Rlc3Ryb3llZENsaWVudElkOiBzYXZlZFJlc3VsdGluZ0NsaWVudElkIH0p
OwotICAgIH0pKCkpOwotICAgIHJldHVybjsKLSAgfQotCi0gIGUucmVzcG9uZFdpdGgoZmV0Y2go
ZS5yZXF1ZXN0KSk7Ci19KTsKLQotc2VsZi5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgKGUp
ID0+IHsKLSAgbGV0IHsgbXNnLCByZXN1bHRpbmdDbGllbnRJZCB9ID0gZS5kYXRhOwotICBlLndh
aXRVbnRpbCgoYXN5bmMgKCkgPT4gewotICAgIGlmIChtc2cgPT0gJ2dldElzUmVzdWx0aW5nQ2xp
ZW50VW5kZWZpbmVkJykgewotICAgICAgY29uc3QgY2xpZW50ID0gYXdhaXQgc2VsZi5jbGllbnRz
LmdldChyZXN1bHRpbmdDbGllbnRJZCk7Ci0gICAgICBsZXQgaXNVbmRlZmluZWQgPSB0eXBlb2Yg
Y2xpZW50ID09ICd1bmRlZmluZWQnOwotICAgICAgZS5zb3VyY2UucG9zdE1lc3NhZ2UoeyBtc2c6
ICdnZXRJc1Jlc3VsdGluZ0NsaWVudFVuZGVmaW5lZCcsCi0gICAgICAgIGlzUmVzdWx0aW5nQ2xp
ZW50VW5kZWZpbmVkOiBpc1VuZGVmaW5lZCB9KTsKLSAgICAgIHJldHVybjsKLSAgICB9Ci0gICAg
aWYgKG1zZyA9PSAnZ2V0UmVzdWx0aW5nQ2xpZW50SWQnKSB7Ci0gICAgICBlLnNvdXJjZS5wb3N0
TWVzc2FnZSh7IG1zZzogJ2dldFJlc3VsdGluZ0NsaWVudElkJywKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcmVzdWx0aW5nQ2xpZW50SWQ6IHNhdmVkUmVzdWx0aW5nQ2xpZW50SWQgfSk7
Ci0gICAgICByZXR1cm47Ci0gICAgfQotICB9KSgpKTsKLX0pOwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvcmVzb3VyY2VzL2NsaWVudHMtZ2V0LXdvcmtlci5qcyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL3Jlc291cmNlcy9jbGllbnRzLWdldC13b3JrZXIuanMKaW5kZXggOGVmZmE1NmM5OGM5
ZjkyMTIwMTU1MzEyMTMwODU5MWU3NDMxYTIwMS4uODczNjhhZTc2MTc1NzVkYTQyODFhZmY2Nzhj
MjdjMmQzNzExODk2NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2Ns
aWVudHMtZ2V0LXdvcmtlci5qcworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvY2xp
ZW50cy1nZXQtd29ya2VyLmpzCkBAIC0xMSw2ICsxMSw3IEBAIHNlbGYub25mZXRjaCA9IGZ1bmN0
aW9uKGUpIHsKIH07CiAKIHNlbGYub25tZXNzYWdlID0gZnVuY3Rpb24oZSkgeworICB2YXIgcG9y
dCA9IGUuZGF0YS5wb3J0OwogICB2YXIgY2xpZW50X2lkcyA9IGUuZGF0YS5jbGllbnRJZHM7CiAg
IHZhciBtZXNzYWdlID0gW107CiAKQEAgLTIyLDcgKzIzLDcgQEAgc2VsZi5vbm1lc3NhZ2UgPSBm
dW5jdGlvbihlKSB7CiAgICAgICAgICAgLy8gTm8gbWF0Y2hpbmcgY2xpZW50IGZvciBhIGdpdmVu
IGlkIG9yIGEgbWF0Y2hlZCBjbGllbnQgaXMgb2ZmLW9yaWdpbgogICAgICAgICAgIC8vIGZyb20g
dGhlIHNlcnZpY2Ugd29ya2VyLgogICAgICAgICAgIGlmIChjbGllbnRzLmxlbmd0aCA9PSAxICYm
IGNsaWVudHNbMF0gPT0gdW5kZWZpbmVkKSB7Ci0gICAgICAgICAgICBlLnNvdXJjZS5wb3N0TWVz
c2FnZShjbGllbnRzWzBdKTsKKyAgICAgICAgICAgIHBvcnQucG9zdE1lc3NhZ2UoY2xpZW50c1sw
XSk7CiAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIGNsaWVudHMuZm9yRWFjaChmdW5j
dGlvbihjbGllbnQpIHsKICAgICAgICAgICAgICAgICBpZiAoY2xpZW50IGluc3RhbmNlb2YgQ2xp
ZW50KSB7CkBAIC0zNSw3ICszNiw3IEBAIHNlbGYub25tZXNzYWdlID0gZnVuY3Rpb24oZSkgewog
ICAgICAgICAgICAgICAgICAgbWVzc2FnZS5wdXNoKGNsaWVudCk7CiAgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIGUuc291cmNlLnBvc3RNZXNzYWdlKG1l
c3NhZ2UpOworICAgICAgICAgICAgcG9ydC5wb3N0TWVzc2FnZShtZXNzYWdlKTsKICAgICAgICAg
ICB9CiAgICAgICAgIH0pKTsKIH07CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNv
dXJjZXMvZW5hYmxlLWNsaWVudC1tZXNzYWdlLXF1ZXVlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9yZXNvdXJjZXMvZW5hYmxlLWNsaWVudC1tZXNzYWdlLXF1ZXVlLmh0bWwKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDUxMmJkMTRiYzY3ZDQ2YjkwMmU2OGViODc3MzEwN2RlNTI5Y2M3
OTguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvcmVzb3VyY2VzL2VuYWJsZS1jbGllbnQtbWVzc2FnZS1xdWV1ZS5odG1sCisr
KyAvZGV2L251bGwKQEAgLTEsMzkgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08c2NyaXB0Pgot
ICAvLyBUaGUgc3RhdGUgdmFyaWFibGUgaXMgdXNlZCBieSBoYW5kbGVfbWVzc2FnZSB0byByZWNv
cmQgdGhlIHRpbWUKLSAgLy8gYXQgd2hpY2ggYSBtZXNzYWdlIHdhcyBoYW5kbGVkLiBJdCdzIHVw
ZGF0ZWQgYnkgdGhlIHNjcmlwdHMKLSAgLy8gbG9hZGVkIGJ5IHRoZSA8c2NyaXB0PiB0YWdzIGF0
IHRoZSBib3R0b20gb2YgdGhlIGZpbGUgYXMgd2VsbCBhcwotICAvLyBieSB0aGUgZXZlbnQgbGlz
dGVuZXIgYWRkZWQgaGVyZS4KLSAgdmFyIHN0YXRlID0gJ2luaXQnOwotICBhZGRFdmVudExpc3Rl
bmVyKCdET01Db250ZW50TG9hZGVkJywgKCkgPT4gc3RhdGUgPSAnbG9hZGVkJyk7Ci0KLSAgLy8g
V2UgZXhwZWN0IHRvIGdldCB0aHJlZSBwaW5nIG1lc3NhZ2VzIGZyb20gdGhlIHNlcnZpY2Ugd29y
a2VyLgotICBjb25zdCBleHBlY3RlZCA9IFsnaW5pdCcsICdpbnN0YWxsJywgJ3N0YXJ0J107Ci0g
IGxldCBwcm9taXNlcyA9IHt9OwotICBsZXQgcmVzb2x2ZXJzID0ge307Ci0gIGV4cGVjdGVkLmZv
ckVhY2gobmFtZSA9PiB7Ci0gICAgcHJvbWlzZXNbbmFtZV0gPSBuZXcgUHJvbWlzZShyZXNvbHZl
ID0+IHJlc29sdmVyc1tuYW1lXSA9IHJlc29sdmUpOwotICB9KTsKLQotICAvLyBPbmNlIGFsbCBt
ZXNzYWdlcyBoYXZlIGJlZW4gZGlzcGF0Y2hlZCwgdGhlIHN0YXRlIGluIHdoaWNoIGVhY2gKLSAg
Ly8gb2YgdGhlbSB3YXMgZGlzcGF0Y2hlZCBpcyByZWNvcmRlZCBpbiB0aGUgZHJhZnQuIEF0IHRo
YXQgcG9pbnQKLSAgLy8gdGhlIGRyYWZ0IGJlY29tZXMgdGhlIGZpbmFsIHJlcG9ydC4KLSAgdmFy
IGRyYWZ0ID0ge307Ci0gIHZhciByZXBvcnQgPSBQcm9taXNlLmFsbChPYmplY3QudmFsdWVzKHBy
b21pc2VzKSkudGhlbigoKSA9PiB3aW5kb3cuZHJhZnQpOwotCi0gIC8vIFRoaXMgbWVzc2FnZSBo
YW5kbGVyIGlzIGluc3RhbGxlZCBieSB0aGUgJ2luc3RhbGwnIHNjcmlwdC4KLSAgZnVuY3Rpb24g
aGFuZGxlX21lc3NhZ2UoZXZlbnQpIHsKLSAgICBjb25zdCBkYXRhID0gZXZlbnQuZGF0YS5kYXRh
OwotICAgIGRyYWZ0W2RhdGFdID0gc3RhdGU7Ci0gICAgcmVzb2x2ZXJzW2RhdGFdKCk7Ci0gIH0K
LTwvc2NyaXB0PgotCi08IS0tCi0gIFRoZSBjb250cm9sbGluZyBzZXJ2aWNlIHdvcmtlciB3aWxs
IGRlbGF5IHRoZSByZXNwb25zZSB0byB0aGVzZQotICBmZXRjaCByZXF1ZXN0cyB1bnRpbCB0aGUg
dGVzdCBpbnN0cnVjdHMgaXQgaG93IHRvIHJlcGx5LiBOb3RlIHRoYXQKLSAgdGhlIGV2ZW50IGxv
b3Aga2VlcHMgc3Bpbm5pbmcgd2hpbGUgdGhlIHBhcnNlciBpcyBibG9ja2VkLgotLS0+Ci08c2Ny
aXB0IHNyYz0iZW1wdHkuanM/a2V5PWluc3RhbGwiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9ImVt
cHR5LmpzP2tleT1zdGFydCI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iZW1wdHkuanM/a2V5PWZp
bmlzaCI+PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMv
ZXh0ZW5kYWJsZS1ldmVudC1hc3luYy13YWl0dW50aWwuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9y
ZXNvdXJjZXMvZXh0ZW5kYWJsZS1ldmVudC1hc3luYy13YWl0dW50aWwuanMKaW5kZXggOGE5NzVi
MGQyZTliMDc4OWNlN2FiN2IwNTc1N2I2ZDkzZjJlYzQwMC4uYWJmNTQ5MzRhM2I0MmUxODkwOGE3
MzBiZGZhMTQwZTZiNjkyYzdhZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3Vy
Y2VzL2V4dGVuZGFibGUtZXZlbnQtYXN5bmMtd2FpdHVudGlsLmpzCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL3Jlc291cmNlcy9leHRlbmRhYmxlLWV2ZW50LWFzeW5jLXdhaXR1bnRpbC5qcwpAQCAt
MSwxMiArMSw0IEBACi0vLyBUaGlzIHdvcmtlciBjYWxscyB3YWl0VW50aWwoKSBhbmQgcmVzcG9u
ZFdpdGgoKSBhc3luY2hyb25vdXNseSBhbmQKLS8vIHJlcG9ydHMgYmFjayB0byB0aGUgdGVzdCB3
aGV0aGVyIHRoZXkgdGhyZXcuCi0vLwotLy8gVGhlc2UgdGVzdCBjYXNlcyBhcmUgY29uZnVzaW5n
LiBCZWFyIGluIG1pbmQgdGhhdCB0aGUgZXZlbnQgaXMgYWN0aXZlCi0vLyAoY2FsbGluZyB3YWl0
VW50aWwoKSBpcyBhbGxvd2VkKSBpZjoKLS8vICogVGhlIHBlbmRpbmcgcHJvbWlzZSBjb3VudCBp
cyBub3QgMCwgb3IKLS8vICogVGhlIGV2ZW50IGRpc3BhdGNoIGZsYWcgaXMgc2V0LgotCi0vLyBD
b250cm9sbGVkIGJ5ICdpbml0Jy8nZG9uZScgbWVzc2FnZXMuCisvLyBjb250cm9sbGVkIGJ5ICdp
bml0Jy8nZG9uZScgbWVzc2FnZXMuCiB2YXIgcmVzb2x2ZUxvY2tQcm9taXNlOwogdmFyIHBvcnQ7
CiAKQEAgLTIyLDcyICsxNCwzNCBAQCBzZWxmLmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCBm
dW5jdGlvbihldmVudCkgewogICAgICAgY2FzZSAnZG9uZSc6CiAgICAgICAgIHJlc29sdmVMb2Nr
UHJvbWlzZSgpOwogICAgICAgICBicmVhazsKLQotICAgICAgLy8gVGhyb3dzIGJlY2F1c2Ugd2Fp
dFVudGlsKCkgaXMgY2FsbGVkIGluIGEgdGFzayBhZnRlciBldmVudCBkaXNwYXRjaAotICAgICAg
Ly8gZmluaXNoZXMuCiAgICAgICBjYXNlICduby1jdXJyZW50LWV4dGVuc2lvbi1kaWZmZXJlbnQt
dGFzayc6CiAgICAgICAgIGFzeW5jX3Rhc2tfd2FpdHVudGlsKGV2ZW50KS50aGVuKHJlcG9ydFJl
c3VsdEV4cGVjdGluZygnSW52YWxpZFN0YXRlRXJyb3InKSk7CiAgICAgICAgIGJyZWFrOwotCi0g
ICAgICAvLyBPSyBiZWNhdXNlIHdhaXRVbnRpbCgpIGlzIGNhbGxlZCBpbiBhIG1pY3JvdGFzayB0
aGF0IHJ1bnMgYWZ0ZXIgdGhlCi0gICAgICAvLyBldmVudCBoYW5kbGVyIHJ1bnMsIHdoaWxlIHRo
ZSBldmVudCBkaXNwYXRjaCBmbGFnIGlzIHN0aWxsIHNldC4KICAgICAgIGNhc2UgJ25vLWN1cnJl
bnQtZXh0ZW5zaW9uLWRpZmZlcmVudC1taWNyb3Rhc2snOgotICAgICAgICBhc3luY19taWNyb3Rh
c2tfd2FpdHVudGlsKGV2ZW50KS50aGVuKHJlcG9ydFJlc3VsdEV4cGVjdGluZygnT0snKSk7Cisg
ICAgICAgIGFzeW5jX21pY3JvdGFza193YWl0dW50aWwoZXZlbnQpLnRoZW4ocmVwb3J0UmVzdWx0
RXhwZWN0aW5nKCdJbnZhbGlkU3RhdGVFcnJvcicpKTsKICAgICAgICAgYnJlYWs7Ci0KLSAgICAg
IC8vIE9LIGJlY2F1c2UgdGhlIHNlY29uZCB3YWl0VW50aWwoKSBpcyBjYWxsZWQgd2hpbGUgdGhl
IGZpcnN0IHdhaXRVbnRpbCgpCi0gICAgICAvLyBwcm9taXNlIGlzIHN0aWxsIHBlbmRpbmcuCiAg
ICAgICBjYXNlICdjdXJyZW50LWV4dGVuc2lvbi1kaWZmZXJlbnQtdGFzayc6CiAgICAgICAgIGV2
ZW50LndhaXRVbnRpbChuZXcgUHJvbWlzZSgocmVzKSA9PiB7IHJlc29sdmVUZXN0UHJvbWlzZSA9
IHJlczsgfSkpOwogICAgICAgICBhc3luY190YXNrX3dhaXR1bnRpbChldmVudCkudGhlbihyZXBv
cnRSZXN1bHRFeHBlY3RpbmcoJ09LJykpLnRoZW4ocmVzb2x2ZVRlc3RQcm9taXNlKTsKICAgICAg
ICAgYnJlYWs7Ci0KLSAgICAgIC8vIE9LIGJlY2F1c2UgYWxsIHByb21pc2VzIGludm9sdmVkIHJl
c29sdmUgImltbWVkaWF0ZWx5Iiwgc28gdGhlIHNlY29uZAotICAgICAgLy8gd2FpdFVudGlsKCkg
aXMgY2FsbGVkIGR1cmluZyB0aGUgbWljcm90YXNrIGNoZWNrcG9pbnQgYXQgdGhlIGVuZCBvZgot
ICAgICAgLy8gZXZlbnQgZGlzcGF0Y2hpbmcsIHdoZW4gdGhlIGV2ZW50IGRpc3BhdGNoIGZsYWcg
aXMgc3RpbGwgc2V0LgotICAgICAgY2FzZSAnZHVyaW5nLWV2ZW50LWRpc3BhdGNoLWN1cnJlbnQt
ZXh0ZW5zaW9uLWV4cGlyZWQtc2FtZS1taWNyb3Rhc2stdHVybic6CisgICAgICBjYXNlICdjdXJy
ZW50LWV4dGVuc2lvbi1leHBpcmVkLXNhbWUtbWljcm90YXNrLXR1cm4nOgogICAgICAgICB3YWl0
UHJvbWlzZSA9IFByb21pc2UucmVzb2x2ZSgpOwogICAgICAgICBldmVudC53YWl0VW50aWwod2Fp
dFByb21pc2UpOwogICAgICAgICB3YWl0UHJvbWlzZS50aGVuKCgpID0+IHsgcmV0dXJuIHN5bmNf
d2FpdHVudGlsKGV2ZW50KTsgfSkKICAgICAgICAgICAudGhlbihyZXBvcnRSZXN1bHRFeHBlY3Rp
bmcoJ09LJykpCiAgICAgICAgIGJyZWFrOwotCi0gICAgICAvLyBPSyBmb3IgdGhlIHNhbWUgcmVh
c29uIGFzIGFib3ZlLgotICAgICAgY2FzZSAnZHVyaW5nLWV2ZW50LWRpc3BhdGNoLWN1cnJlbnQt
ZXh0ZW5zaW9uLWV4cGlyZWQtc2FtZS1taWNyb3Rhc2stdHVybi1leHRyYSc6CisgICAgICBjYXNl
ICdjdXJyZW50LWV4dGVuc2lvbi1leHBpcmVkLXNhbWUtbWljcm90YXNrLXR1cm4tZXh0cmEnOgor
ICAgICAgICAvLyBUaGUgcHJvbWlzZSBoYW5kbGVyIHF1ZXVlcyBhIG5ldyBtaWNyb3Rhc2sgKmFm
dGVyKiB0aGUgY2hlY2sgZm9yIG5ldworICAgICAgICAvLyBleHRlbnNpb25zIHdhcyBwZXJmb3Jt
ZWQuCiAgICAgICAgIHdhaXRQcm9taXNlID0gUHJvbWlzZS5yZXNvbHZlKCk7CiAgICAgICAgIGV2
ZW50LndhaXRVbnRpbCh3YWl0UHJvbWlzZSk7Ci0gICAgICAgIHdhaXRQcm9taXNlLnRoZW4oKCkg
PT4geyByZXR1cm4gYXN5bmNfbWljcm90YXNrX3dhaXR1bnRpbChldmVudCk7IH0pCi0gICAgICAg
ICAgLnRoZW4ocmVwb3J0UmVzdWx0RXhwZWN0aW5nKCdPSycpKQotICAgICAgICBicmVhazsKLQot
Ci0gICAgICAvLyBPSyBiZWNhdXNlIHRoZSBwZW5kaW5nIHByb21pc2UgY291bnQgaXMgZGVjcmVt
ZW50ZWQgaW4gYSBtaWNyb3Rhc2sKLSAgICAgIC8vIHF1ZXVlZCB1cG9uIGZ1bGZpbGxtZW50IG9m
IHRoZSBmaXJzdCB3YWl0VW50aWwoKSBwcm9taXNlLCBzbyB0aGUgc2Vjb25kCi0gICAgICAvLyB3
YWl0VW50aWwoKSBpcyBjYWxsZWQgd2hpbGUgdGhlIHBlbmRpbmcgcHJvbWlzZSBjb3VudCBpcyBz
dGlsbAotICAgICAgLy8gcG9zaXRpdmUuCi0gICAgICBjYXNlICdhZnRlci1ldmVudC1kaXNwYXRj
aC1jdXJyZW50LWV4dGVuc2lvbi1leHBpcmVkLXNhbWUtbWljcm90YXNrLXR1cm4nOgotICAgICAg
ICB3YWl0UHJvbWlzZSA9IG1ha2VOZXdUYXNrUHJvbWlzZSgpOwotICAgICAgICBldmVudC53YWl0
VW50aWwod2FpdFByb21pc2UpOwotICAgICAgICB3YWl0UHJvbWlzZS50aGVuKCgpID0+IHsgcmV0
dXJuIHN5bmNfd2FpdHVudGlsKGV2ZW50KTsgfSkKLSAgICAgICAgICAudGhlbihyZXBvcnRSZXN1
bHRFeHBlY3RpbmcoJ09LJykpCi0gICAgICAgIGJyZWFrOwotCi0gICAgICAvLyBUaHJvd3MgYmVj
YXVzZSB0aGUgc2Vjb25kIHdhaXRVbnRpbCgpIGlzIGNhbGxlZCBhZnRlciB0aGUgcGVuZGluZwot
ICAgICAgLy8gcHJvbWlzZSBjb3VudCB3YXMgZGVjcmVtZW50ZWQgdG8gMC4KLSAgICAgIGNhc2Ug
J2FmdGVyLWV2ZW50LWRpc3BhdGNoLWN1cnJlbnQtZXh0ZW5zaW9uLWV4cGlyZWQtc2FtZS1taWNy
b3Rhc2stdHVybi1leHRyYSc6Ci0gICAgICAgIHdhaXRQcm9taXNlID0gbWFrZU5ld1Rhc2tQcm9t
aXNlKCk7Ci0gICAgICAgIGV2ZW50LndhaXRVbnRpbCh3YWl0UHJvbWlzZSk7CiAgICAgICAgIHdh
aXRQcm9taXNlLnRoZW4oKCkgPT4geyByZXR1cm4gYXN5bmNfbWljcm90YXNrX3dhaXR1bnRpbChl
dmVudCk7IH0pCiAgICAgICAgICAgLnRoZW4ocmVwb3J0UmVzdWx0RXhwZWN0aW5nKCdJbnZhbGlk
U3RhdGVFcnJvcicpKQogICAgICAgICBicmVhazsKLQotICAgICAgLy8gVGhyb3dzIGJlY2F1c2Ug
dGhlIHNlY29uZCB3YWl0VW50aWwoKSBpcyBjYWxsZWQgaW4gYSBuZXcgdGFzaywgYWZ0ZXIKLSAg
ICAgIC8vIGZpcnN0IHdhaXRVbnRpbCgpIHByb21pc2Ugc2V0dGxlZCBhbmQgdGhlIGV2ZW50IGRp
c3BhdGNoIGZsYWcgaXMgdW5zZXQuCiAgICAgICBjYXNlICdjdXJyZW50LWV4dGVuc2lvbi1leHBp
cmVkLWRpZmZlcmVudC10YXNrJzoKICAgICAgICAgZXZlbnQud2FpdFVudGlsKFByb21pc2UucmVz
b2x2ZSgpKTsKICAgICAgICAgYXN5bmNfdGFza193YWl0dW50aWwoZXZlbnQpLnRoZW4ocmVwb3J0
UmVzdWx0RXhwZWN0aW5nKCdJbnZhbGlkU3RhdGVFcnJvcicpKTsKICAgICAgICAgYnJlYWs7Ci0K
ICAgICAgIGNhc2UgJ3NjcmlwdC1leHRlbmRhYmxlLWV2ZW50JzoKICAgICAgICAgc2VsZi5kaXNw
YXRjaEV2ZW50KG5ldyBFeHRlbmRhYmxlRXZlbnQoJ25vbnRydXN0ZWRldmVudCcpKTsKICAgICAg
ICAgYnJlYWs7CkBAIC05Nyw2MiArNTEsMjUgQEAgc2VsZi5hZGRFdmVudExpc3RlbmVyKCdtZXNz
YWdlJywgZnVuY3Rpb24oZXZlbnQpIHsKICAgfSk7CiAKIHNlbGYuYWRkRXZlbnRMaXN0ZW5lcign
ZmV0Y2gnLCBmdW5jdGlvbihldmVudCkgewotICBjb25zdCBwYXRoID0gbmV3IFVSTChldmVudC5y
ZXF1ZXN0LnVybCkucGF0aG5hbWU7Ci0gIGNvbnN0IHN0ZXAgPSBwYXRoLnN1YnN0cmluZyhwYXRo
Lmxhc3RJbmRleE9mKCcvJykgKyAxKTsKLSAgbGV0IHJlc3BvbnNlOwotICBzd2l0Y2ggKHN0ZXAp
IHsKLSAgICAvLyBPSyBiZWNhdXNlIHdhaXRVbnRpbCgpIGlzIGNhbGxlZCB3aGlsZSB0aGUgcmVz
cG9uZFdpdGgoKSBwcm9taXNlIGlzIHN0aWxsCi0gICAgLy8gdW5zZXR0bGVkLCBzbyB0aGUgcGVu
ZGluZyBwcm9taXNlIGNvdW50IGlzIHBvc2l0aXZlLgotICAgIGNhc2UgJ3BlbmRpbmctcmVzcG9u
ZHdpdGgtYXN5bmMtd2FpdHVudGlsJzoKKyAgICBpZiAoZXZlbnQucmVxdWVzdC51cmwuaW5kZXhP
ZigncGVuZGluZy1yZXNwb25kd2l0aC1hc3luYy13YWl0dW50aWwnKSAhPSAtMSkgewogICAgICAg
dmFyIHJlc29sdmVGZXRjaDsKLSAgICAgIHJlc3BvbnNlID0gbmV3IFByb21pc2UoKHJlcykgPT4g
eyByZXNvbHZlRmV0Y2ggPSByZXM7IH0pOworICAgICAgbGV0IHJlc3BvbnNlID0gbmV3IFByb21p
c2UoKHJlcykgPT4geyByZXNvbHZlRmV0Y2ggPSByZXM7IH0pOwogICAgICAgZXZlbnQucmVzcG9u
ZFdpdGgocmVzcG9uc2UpOwogICAgICAgYXN5bmNfdGFza193YWl0dW50aWwoZXZlbnQpCiAgICAg
ICAgIC50aGVuKHJlcG9ydFJlc3VsdEV4cGVjdGluZygnT0snKSkKICAgICAgICAgLnRoZW4oKCkg
PT4geyByZXNvbHZlRmV0Y2gobmV3IFJlc3BvbnNlKCdPSycpKTsgfSk7Ci0gICAgICBicmVhazsK
LQotICAgIC8vIE9LIGJlY2F1c2UgYWxsIHByb21pc2VzIGludm9sdmVkIHJlc29sdmUgImltbWVk
aWF0ZWx5Iiwgc28gd2FpdFVudGlsKCkgaXMKLSAgICAvLyBjYWxsZWQgZHVyaW5nIHRoZSBtaWNy
b3Rhc2sgY2hlY2twb2ludCBhdCB0aGUgZW5kIG9mIGV2ZW50IGRpc3BhdGNoaW5nLAotICAgIC8v
IHdoZW4gdGhlIGV2ZW50IGRpc3BhdGNoIGZsYWcgaXMgc3RpbGwgc2V0LgotICAgIGNhc2UgJ2R1
cmluZy1ldmVudC1kaXNwYXRjaC1yZXNwb25kd2l0aC1taWNyb3Rhc2stc3luYy13YWl0dW50aWwn
OgorICAgIH0gZWxzZSBpZiAoZXZlbnQucmVxdWVzdC51cmwuaW5kZXhPZigncmVzcG9uZHdpdGgt
bWljcm90YXNrLXN5bmMtd2FpdHVudGlsJykgIT0gLTEpIHsKICAgICAgIHJlc3BvbnNlID0gUHJv
bWlzZS5yZXNvbHZlKG5ldyBSZXNwb25zZSgnUkVTUCcpKTsKICAgICAgIGV2ZW50LnJlc3BvbmRX
aXRoKHJlc3BvbnNlKTsKICAgICAgIHJlc3BvbnNlLnRoZW4oKCkgPT4geyByZXR1cm4gc3luY193
YWl0dW50aWwoZXZlbnQpOyB9KQotICAgICAgICAudGhlbihyZXBvcnRSZXN1bHRFeHBlY3Rpbmco
J09LJykpOwotICAgICAgYnJlYWs7Ci0KLSAgICAvLyBPSyBiZWNhdXNlIGFsbCBwcm9taXNlcyBp
bnZvbHZlZCByZXNvbHZlICJpbW1lZGlhdGVseSIsIHNvIHdhaXRVbnRpbCgpIGlzCi0gICAgLy8g
Y2FsbGVkIGR1cmluZyB0aGUgbWljcm90YXNrIGNoZWNrcG9pbnQgYXQgdGhlIGVuZCBvZiBldmVu
dCBkaXNwYXRjaGluZywKLSAgICAvLyB3aGVuIHRoZSBldmVudCBkaXNwYXRjaCBmbGFnIGlzIHN0
aWxsIHNldC4KLSAgICBjYXNlICdkdXJpbmctZXZlbnQtZGlzcGF0Y2gtcmVzcG9uZHdpdGgtbWlj
cm90YXNrLWFzeW5jLXdhaXR1bnRpbCc6CisgICAgICAgIC50aGVuKHJlcG9ydFJlc3VsdEV4cGVj
dGluZygnT0snKSkKKyAgICB9IGVsc2UgaWYgKGV2ZW50LnJlcXVlc3QudXJsLmluZGV4T2YoJ3Jl
c3BvbmR3aXRoLW1pY3JvdGFzay1hc3luYy13YWl0dW50aWwnKSAhPSAtMSkgewogICAgICAgcmVz
cG9uc2UgPSBQcm9taXNlLnJlc29sdmUobmV3IFJlc3BvbnNlKCdSRVNQJykpOwogICAgICAgZXZl
bnQucmVzcG9uZFdpdGgocmVzcG9uc2UpOwotICAgICAgcmVzcG9uc2UudGhlbigoKSA9PiB7IHJl
dHVybiBhc3luY19taWNyb3Rhc2tfd2FpdHVudGlsKGV2ZW50KTsgfSkKLSAgICAgICAgLnRoZW4o
cmVwb3J0UmVzdWx0RXhwZWN0aW5nKCdPSycpKTsKLSAgICAgIGJyZWFrOwotCi0gICAgLy8gT0sg
YmVjYXVzZSB0aGUgcGVuZGluZyBwcm9taXNlIGNvdW50IGlzIGRlY3JlbWVudGVkIGluIGEgbWlj
cm90YXNrIHF1ZXVlZAotICAgIC8vIHVwb24gZnVsZmlsbG1lbnQgb2YgdGhlIHJlc3BvbmRXaXRo
KCkgcHJvbWlzZSwgc28gd2FpdFVudGlsKCkgaXMgY2FsbGVkCi0gICAgLy8gd2hpbGUgdGhlIHBl
bmRpbmcgcHJvbWlzZSBjb3VudCBpcyBzdGlsbCBwb3NpdGl2ZS4KLSAgICBjYXNlICdhZnRlci1l
dmVudC1kaXNwYXRjaC1yZXNwb25kd2l0aC1taWNyb3Rhc2stc3luYy13YWl0dW50aWwnOgotICAg
ICAgcmVzcG9uc2UgPSBtYWtlTmV3VGFza1Byb21pc2UoKS50aGVuKCgpID0+IHtyZXR1cm4gbmV3
IFJlc3BvbnNlKCdSRVNQJyk7fSk7Ci0gICAgICBldmVudC5yZXNwb25kV2l0aChyZXNwb25zZSk7
Ci0gICAgICByZXNwb25zZS50aGVuKCgpID0+IHsgcmV0dXJuIHN5bmNfd2FpdHVudGlsKGV2ZW50
KTsgfSkKLSAgICAgICAgLnRoZW4ocmVwb3J0UmVzdWx0RXhwZWN0aW5nKCdPSycpKTsKLSAgICAg
IGJyZWFrOwotCi0KLSAgICAvLyBUaHJvd3MgYmVjYXVzZSB3YWl0VW50aWwoKSBpcyBjYWxsZWQg
YWZ0ZXIgdGhlIHBlbmRpbmcgcHJvbWlzZSBjb3VudCB3YXMKLSAgICAvLyBkZWNyZW1lbnRlZCB0
byAwLgotICAgIGNhc2UgJ2FmdGVyLWV2ZW50LWRpc3BhdGNoLXJlc3BvbmR3aXRoLW1pY3JvdGFz
ay1hc3luYy13YWl0dW50aWwnOgotICAgICAgcmVzcG9uc2UgPSBtYWtlTmV3VGFza1Byb21pc2Uo
KS50aGVuKCgpID0+IHtyZXR1cm4gbmV3IFJlc3BvbnNlKCdSRVNQJyk7fSk7Ci0gICAgICBldmVu
dC5yZXNwb25kV2l0aChyZXNwb25zZSk7CiAgICAgICByZXNwb25zZS50aGVuKCgpID0+IHsgcmV0
dXJuIGFzeW5jX21pY3JvdGFza193YWl0dW50aWwoZXZlbnQpOyB9KQogICAgICAgICAudGhlbihy
ZXBvcnRSZXN1bHRFeHBlY3RpbmcoJ0ludmFsaWRTdGF0ZUVycm9yJykpCi0gICAgICBicmVhazsK
LSAgfQotfSk7CisgICAgfQorICB9KTsKIAogc2VsZi5hZGRFdmVudExpc3RlbmVyKCdub250cnVz
dGVkZXZlbnQnLCBmdW5jdGlvbihldmVudCkgewogICAgIHN5bmNfd2FpdHVudGlsKGV2ZW50KS50
aGVuKHJlcG9ydFJlc3VsdEV4cGVjdGluZygnSW52YWxpZFN0YXRlRXJyb3InKSk7CkBAIC0yMDEs
MTAgKzExOCwzIEBAIGZ1bmN0aW9uIGFzeW5jX3Rhc2tfd2FpdHVudGlsKGV2ZW50KSB7CiAgICAg
fSwgMCk7CiAgIH0pOwogfQotCi0vLyBSZXR1cm5zIGEgcHJvbWlzZSB0aGF0IHNldHRsZXMgaW4g
YSBzZXBhcmF0ZSB0YXNrLgotZnVuY3Rpb24gbWFrZU5ld1Rhc2tQcm9taXNlKCkgewotICByZXR1
cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7Ci0gICAgc2V0VGltZW91dChyZXNvbHZlLCAwKTsK
LSAgfSk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gt
Y2FudmFzLXRhaW50aW5nLWRvdWJsZS13cml0ZS13b3JrZXIuanMgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9yZXNvdXJjZXMvZmV0Y2gtY2FudmFzLXRhaW50aW5nLWRvdWJsZS13cml0ZS13b3JrZXIuanMK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE3NzIzZGNkZGEyZjJmYWRiOWFiMGFiNGEw
MGIyOGMyNGI4MTUyMzQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWNhbnZhcy10YWludGluZy1k
b3VibGUtd3JpdGUtd29ya2VyLmpzCisrKyAvZGV2L251bGwKQEAgLTEsNyArMCwwIEBACi1zZWxm
LmFkZEV2ZW50TGlzdGVuZXIoJ2ZldGNoJywgKGV2ZW50KSA9PiB7Ci0gIHVybCA9IG5ldyBVUkwo
ZXZlbnQucmVxdWVzdC51cmwpOwotICBpZiAodXJsLnNlYXJjaCA9PSAnP1BOR0lNQUdFJykgewot
ICAgIGxvY2FsVXJsID0gbmV3IFVSTCh1cmwucGF0aG5hbWUgKyB1cmwuc2VhcmNoLCBzZWxmLmxv
Y2F0aW9uKTsKLSAgICBldmVudC5yZXNwb25kV2l0aChmZXRjaChsb2NhbFVybCkpOwotICB9Ci19
KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1jb3JzLXho
ci1pZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1jb3JzLXho
ci1pZnJhbWUuaHRtbAppbmRleCBkODhjNTEwM2QzNWIxODgwOTMyNjA4YmVhNzVkMjFhOGQ2MWNj
MDM4Li41MTk1MmE5ODhlZmUwNzAwMjc2Y2VmYTAzMjg2NWM0NDJkZmNiNmM2IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtY29ycy14aHItaWZyYW1lLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWNvcnMteGhyLWlmcmFtZS5o
dG1sCkBAIC0yNiwxMCArMjYsMzggQEAgZnVuY3Rpb24gY3JlYXRlX3Rlc3RfY2FzZV9wcm9taXNl
KHVybCwgd2l0aF9jcmVkZW50aWFscykgewogICAgIH0pOwogfQogCi13aW5kb3cuYWRkRXZlbnRM
aXN0ZW5lcignbWVzc2FnZScsIGFzeW5jIChldnQpID0+IHsKK2Z1bmN0aW9uIGNyZWF0ZV90ZXN0
X3Byb21pc2UodXJsLCB3aXRoX2NyZWRlbnRpYWxzLCBleHBlY3RlZF9yZXN1bHQpIHsKKyAgcmV0
dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgeworICAgICAgY3JlYXRl
X3Rlc3RfY2FzZV9wcm9taXNlKHVybCwgd2l0aF9jcmVkZW50aWFscykKKyAgICAgICAgLnRoZW4o
ZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgICAgICAgaWYgKHJlc3VsdCA9PSBleHBlY3RlZF9yZXN1
bHQpIHsKKyAgICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgICAgICB9IGVsc2UgeworICAgICAg
ICAgICAgcmVqZWN0KCdSZXN1bHQgb2YgdXJsOicgKyB1cmwgKyAnICcgKworICAgICAgICAgICAg
ICAgICAgICcgd2l0aF9jcmVkZW50aWFsczogJyArIHdpdGhfY3JlZGVudGlhbHMgKyAnIG11c3Qg
YmUgJyArCisgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRfcmVzdWx0ICsgJyBidXQgJyArIHJl
c3VsdCk7CisgICAgICAgICAgfQorICAgICAgICB9KQorICAgIH0pOworfQorCitmdW5jdGlvbiBj
cmVhdGVfc2VyaWFsX3Byb21pc2UodGVzdF9jYXNlcykgeworICB2YXIgcHJvbWlzZSA9IFByb21p
c2UucmVzb2x2ZSgpOworICB0ZXN0X2Nhc2VzLmZvckVhY2goZnVuY3Rpb24odGVzdF9jYXNlKSB7
CisgICAgICBwcm9taXNlID0gcHJvbWlzZS50aGVuKGZ1bmN0aW9uKCkgeworICAgICAgICAgIHJl
dHVybiBjcmVhdGVfdGVzdF9wcm9taXNlKHRlc3RfY2FzZVswXSwgdGVzdF9jYXNlWzFdLCB0ZXN0
X2Nhc2VbMl0pOworICAgICAgICB9KTsKKyAgICB9KTsKKyAgICByZXR1cm4gcHJvbWlzZTsKK30K
Kword2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCBmdW5jdGlvbihldnQpIHsKICAg
ICB2YXIgcG9ydCA9IGV2dC5wb3J0c1swXTsKICAgICB2YXIgdXJsID0gaG9zdF9pbmZvWydIVFRQ
U19PUklHSU4nXSArIHBhdGg7CiAgICAgdmFyIHJlbW90ZV91cmwgPSBob3N0X2luZm9bJ0hUVFBT
X1JFTU9URV9PUklHSU4nXSArIHBhdGg7CisgICAgLy8gSWYgdGhlIDR0aCB2YWx1ZSBvZiB0aGUg
aXRlbSBvZiBURVNUX0NBU0VTIGlzIHRydWUsIHRoZSB0ZXN0IGNhc2Ugb3V0cHV0cworICAgIC8v
IHdhcm5pbmcgbWVzc2FnZXMuIFNvIHN1Y2ggdGVzdHMgbXVzdCBiZSBleGVjdXRlZCBpbiBzZXJp
YWwgdG8gbWF0Y2ggdGhlCisgICAgLy8gZXhwZWN0ZWQgb3V0cHV0IHRleHQuCiAgICAgdmFyIFRF
U1RfQ0FTRVMgPSBbCiAgICAgICAvLyBSZWplY3QgdGVzdHMKICAgICAgIFt1cmwgKyAnP3JlamVj
dCcsIGZhbHNlLCBGQUlMXSwKQEAgLTY3LDggKzk1LDggQEAgd2luZG93LmFkZEV2ZW50TGlzdGVu
ZXIoJ21lc3NhZ2UnLCBhc3luYyAoZXZ0KSA9PiB7CiAgICAgICAvLyBDcmVkZW50aWFsIHRlc3Qg
KGZhbGxiYWNrKQogICAgICAgW3VybCArICc/QXV0aCZpZ25vcmUnLCBmYWxzZSwgU1VDQ0VTU10s
CiAgICAgICBbdXJsICsgJz9BdXRoJmlnbm9yZScsIHRydWUsIFNVQ0NFU1NdLAotICAgICAgW3Jl
bW90ZV91cmwgKyAnP0F1dGgmaWdub3JlJywgZmFsc2UsIEZBSUxdLAotICAgICAgW3JlbW90ZV91
cmwgKyAnP0F1dGgmaWdub3JlJywgdHJ1ZSwgRkFJTF0sCisgICAgICBbcmVtb3RlX3VybCArICc/
QXV0aCZpZ25vcmUnLCBmYWxzZSwgRkFJTCwgdHJ1ZV0sICAvLyBFeGVjdXRlZCBpbiBzZXJpYWwu
CisgICAgICBbcmVtb3RlX3VybCArICc/QXV0aCZpZ25vcmUnLCB0cnVlLCBGQUlMLCB0cnVlXSwg
IC8vIEV4ZWN1dGVkIGluIHNlcmlhbC4KICAgICAgIFsKICAgICAgICAgcmVtb3RlX3VybCArICc/
QXV0aCZBQ0FPcmlnaW49JyArIGhvc3RfaW5mb1snSFRUUFNfT1JJR0lOJ10gKyAnJmlnbm9yZScs
CiAgICAgICAgIGZhbHNlLCAnU1RBVFVTNDAxJwpAQCAtMTU4LDEzICsxODYsMjQgQEAgd2luZG93
LmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCBhc3luYyAoZXZ0KSA9PiB7CiAgICAgICAgIHRy
dWUsIFNVQ0NFU1MKICAgICAgIF0KICAgICBdOwotCi0gICAgbGV0IGNvdW50ZXIgPSAwOwotICAg
IGZvciAobGV0IHRlc3Qgb2YgVEVTVF9DQVNFUykgewotICAgICAgbGV0IHJlc3VsdCA9IGF3YWl0
IGNyZWF0ZV90ZXN0X2Nhc2VfcHJvbWlzZSh0ZXN0WzBdLCB0ZXN0WzFdKTsKLSAgICAgIGxldCB0
ZXN0TmFtZSA9ICd0ZXN0ICcgKyAoKytjb3VudGVyKSArICc6ICcgKyB0ZXN0WzBdICsgJyB3aXRo
IGNyZWRlbnRpYWxzICcgKyB0ZXN0WzFdICsgJyBtdXN0IGJlICcgKyB0ZXN0WzJdOwotICAgICAg
cG9ydC5wb3N0TWVzc2FnZSh7dGVzdE5hbWU6IHRlc3ROYW1lLCByZXN1bHQ6IHJlc3VsdCA9PT0g
dGVzdFsyXX0pOworICAgIHZhciBwcm9taXNlcyA9IFtdOworICAgIHZhciBzZXJpYWxfdGVzdHMg
PSBbXTsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IFRFU1RfQ0FTRVMubGVuZ3RoIDsgKytpKSB7
CisgICAgICBpZiAoIVRFU1RfQ0FTRVNbaV1bM10pIHsKKyAgICAgICAgcHJvbWlzZXMucHVzaChj
cmVhdGVfdGVzdF9wcm9taXNlKFRFU1RfQ0FTRVNbaV1bMF0sCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBURVNUX0NBU0VTW2ldWzFdLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgVEVTVF9DQVNFU1tpXVsyXSkpOworICAgICAgfSBl
bHNlIHsKKyAgICAgICAgc2VyaWFsX3Rlc3RzLnB1c2goVEVTVF9DQVNFU1tpXSk7CisgICAgICB9
CiAgICAgfQotICAgIHBvcnQucG9zdE1lc3NhZ2UoJ2RvbmUnKTsKKyAgICBwcm9taXNlcy5wdXNo
KGNyZWF0ZV9zZXJpYWxfcHJvbWlzZShzZXJpYWxfdGVzdHMpKTsKKyAgICBQcm9taXNlLmFsbChw
cm9taXNlcykKKyAgICAgIC50aGVuKGZ1bmN0aW9uKCkgeworICAgICAgICAgIHBvcnQucG9zdE1l
c3NhZ2Uoe3Jlc3VsdHM6ICdmaW5pc2gnfSk7CisgICAgICAgIH0pCisgICAgICAuY2F0Y2goZnVu
Y3Rpb24oZSkgeworICAgICAgICAgIHBvcnQucG9zdE1lc3NhZ2Uoe3Jlc3VsdHM6ICdmYWlsdXJl
OicgKyBlfSk7CisgICAgICAgIH0pOwogICB9LCBmYWxzZSk7CiA8L3NjcmlwdD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1ldmVudC1hc3luYy1yZXNwb25k
LXdpdGgtd29ya2VyLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWV2ZW50
LWFzeW5jLXJlc3BvbmQtd2l0aC13b3JrZXIuanMKaW5kZXggZGMzZjFhMWU5ODU2M2FkMWI1OTI0
YzgzMTVjMGQ2NGQxN2ZmYmJmZC4uN2Y2NmQyMGRmYzJkZmYwYWYwMWRmYTA3ZjgyM2M2NjBiN2Ex
ZWMxYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWV2ZW50
LWFzeW5jLXJlc3BvbmQtd2l0aC13b3JrZXIuanMKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVz
b3VyY2VzL2ZldGNoLWV2ZW50LWFzeW5jLXJlc3BvbmQtd2l0aC13b3JrZXIuanMKQEAgLTEsNjYg
KzEsMTkgQEAKLS8vIFRoaXMgd29ya2VyIGF0dGVtcHRzIHRvIGNhbGwgcmVzcG9uZFdpdGgoKSBh
c3luY2hyb25vdXNseSBhZnRlciB0aGUKLS8vIGZldGNoIGV2ZW50IGhhbmRsZXIgZmluaXNoZWQu
IEl0IHJlcG9ydHMgYmFjayB0byB0aGUgdGVzdCB3aGV0aGVyCi0vLyBhbiBleGNlcHRpb24gd2Fz
IHRocm93bi4KK3ZhciByZXN1bHQ7CiAKLS8vIFRoZXNlIGdldCByZXNldCBhdCB0aGUgc3RhcnQg
b2YgYSB0ZXN0IGNhc2UuCi1sZXQgcmVwb3J0UmVzdWx0OwotCi0vLyBUaGUgdGVzdCBwYWdlIHNl
bmRzIGEgbWVzc2FnZSB0byB0ZWxsIHVzIHRoYXQgYSBuZXcgdGVzdCBjYXNlIGlzIHN0YXJ0aW5n
LgotLy8gV2UgZXhwZWN0IGEgZmV0Y2ggZXZlbnQgYWZ0ZXIgdGhpcy4KLXNlbGYuYWRkRXZlbnRM
aXN0ZW5lcignbWVzc2FnZScsIChldmVudCkgPT4gewotICAvLyBFbnN1cmUgdGVzdHMgcnVuIG11
dHVhbGx5IGV4Y2x1c2l2ZS4KLSAgaWYgKHJlcG9ydFJlc3VsdCkgewotICAgIGV2ZW50LnNvdXJj
ZS5wb3N0TWVzc2FnZSgndGVzdEFscmVhZHlSdW5uaW5nJyk7Ci0gICAgcmV0dXJuOwotICB9Ci0K
LSAgY29uc3QgcmVzdWx0UHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7Ci0gICAg
cmVwb3J0UmVzdWx0ID0gcmVzb2x2ZTsKLSAgICAvLyBUZWxsIHRoZSBjbGllbnQgdGhhdCBldmVy
eXRoaW5nIGlzIGluaXRpYWxpemVkIGFuZCB0aGF0IGl0J3Mgc2FmZSB0bwotICAgIC8vIHByb2Nl
ZWQgd2l0aCB0aGUgdGVzdCB3aXRob3V0IHJlbHlpbmcgb24gdGhlIG9yZGVyIG9mIGV2ZW50cyAo
d2hpY2ggc29tZQotICAgIC8vIGJyb3dzZXJzIGxpa2UgQ2hyb21lIG1heSBub3QgZ3VhcmFudGVl
KS4KLSAgICBldmVudC5zb3VyY2UucG9zdE1lc3NhZ2UoJ21lc3NhZ2VIYW5kbGVySW5pdGlhbGl6
ZWQnKTsKK3NlbGYuYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIGZ1bmN0aW9uKGV2ZW50KSB7
CisgICAgZXZlbnQuZGF0YS5wb3J0LnBvc3RNZXNzYWdlKHJlc3VsdCk7CiAgIH0pOwogCi0gIC8v
IEtlZXAgdGhlIHdvcmtlciBhbGl2ZSB1bnRpbCB0aGUgdGVzdCBjYXNlIGZpbmlzaGVzLCBhbmQg
cmVwb3J0Ci0gIC8vIGJhY2sgdGhlIHJlc3VsdCB0byB0aGUgdGVzdCBwYWdlLgotICBldmVudC53
YWl0VW50aWwocmVzdWx0UHJvbWlzZS50aGVuKHJlc3VsdCA9PiB7Ci0gICAgcmVwb3J0UmVzdWx0
ID0gbnVsbDsKLSAgICBldmVudC5zb3VyY2UucG9zdE1lc3NhZ2UocmVzdWx0KTsKLSAgfSkpOwot
fSk7Ci0KLS8vIENhbGxzIHJlc3BvbmRXaXRoKCkgYW5kIHJlcG9ydHMgYmFjayB3aGV0aGVyIGFu
IGV4Y2VwdGlvbiBvY2N1cnJlZC4KLWZ1bmN0aW9uIHRyeVJlc3BvbmRXaXRoKGV2ZW50KSB7Ci0g
IHRyeSB7Ci0gICAgZXZlbnQucmVzcG9uZFdpdGgobmV3IFJlc3BvbnNlKCkpOwotICAgIHJlcG9y
dFJlc3VsdCh7ZGlkVGhyb3c6IGZhbHNlfSk7Ci0gIH0gY2F0Y2ggKGVycm9yKSB7Ci0gICAgcmVw
b3J0UmVzdWx0KHtkaWRUaHJvdzogdHJ1ZSwgZXJyb3I6IGVycm9yLm5hbWV9KTsKLSAgfQotfQot
Ci1mdW5jdGlvbiByZXNwb25kV2l0aEluVGFzayhldmVudCkgewotICBzZXRUaW1lb3V0KCgpID0+
IHsKLSAgICB0cnlSZXNwb25kV2l0aChldmVudCk7Ci0gIH0sIDApOwotfQotCi1mdW5jdGlvbiBy
ZXNwb25kV2l0aEluTWljcm90YXNrKGV2ZW50KSB7Ci0gIFByb21pc2UucmVzb2x2ZSgpLnRoZW4o
KCkgPT4gewotICAgIHRyeVJlc3BvbmRXaXRoKGV2ZW50KTsKLSAgfSk7Ci19Ci0KIHNlbGYuYWRk
RXZlbnRMaXN0ZW5lcignZmV0Y2gnLCBmdW5jdGlvbihldmVudCkgewotICBjb25zdCBwYXRoID0g
bmV3IFVSTChldmVudC5yZXF1ZXN0LnVybCkucGF0aG5hbWU7Ci0gIGNvbnN0IHRlc3QgPSBwYXRo
LnN1YnN0cmluZyhwYXRoLmxhc3RJbmRleE9mKCcvJykgKyAxKTsKLQotICAvLyBJZiB0aGlzIGlz
IGEgdGVzdCBjYXNlLCB0cnkgcmVzcG9uZFdpdGgoKSBhbmQgcmVwb3J0IGJhY2sgdG8gdGhlIHRl
c3QgcGFnZQotICAvLyB0aGUgcmVzdWx0LgotICBpZiAodGVzdCA9PSAncmVzcG9uZFdpdGgtaW4t
dGFzaycpIHsKLSAgICByZXNwb25kV2l0aEluVGFzayhldmVudCk7Ci0gIH0gZWxzZSBpZiAodGVz
dCA9PSAncmVzcG9uZFdpdGgtaW4tbWljcm90YXNrJykgewotICAgIHJlc3BvbmRXaXRoSW5NaWNy
b3Rhc2soZXZlbnQpOwotICB9Ci19KTsKKyAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAg
ICAgICB0cnkgeworICAgICAgICAgIGV2ZW50LnJlc3BvbmRXaXRoKG5ldyBSZXNwb25zZSgpKTsK
KyAgICAgICAgICByZXN1bHQgPSAnRkFJTDogZGlkIG5vdCB0aHJvdyc7CisgICAgICAgIH0gY2F0
Y2ggKGVycm9yKSB7CisgICAgICAgICAgaWYgKGVycm9yLm5hbWUgPT0gJ0ludmFsaWRTdGF0ZUVy
cm9yJykKKyAgICAgICAgICAgIHJlc3VsdCA9ICdQQVNTJzsKKyAgICAgICAgICBlbHNlCisgICAg
ICAgICAgICByZXN1bHQgPSAnRkFJTDogVW5leHBlY3RlZCBleGNlcHRpb246ICcgKyBlcnJvcjsK
KyAgICAgICAgfQorICAgICAgfSwgMCk7CisgIH0pOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWV2ZW50LW5ldHdvcmstZmFsbGJhY2std29ya2VyLmpzIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWV2ZW50LW5ldHdvcmstZmFsbGJhY2st
d29ya2VyLmpzCmluZGV4IDM3NmJkYmVkMDVlMTg2ZjdhMTI1YzJlZjdjZTI5NmI2ZGRiOGJlYWUu
LmRhYTIwMGMyYmFkYjgyOTY0Y2MzNTA2OTk4MzJhNzMwYjUyYzkxYTQgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1ldmVudC1uZXR3b3JrLWZhbGxiYWNrLXdv
cmtlci5qcworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtZXZlbnQtbmV0
d29yay1mYWxsYmFjay13b3JrZXIuanMKQEAgLTEsMyArMSwzIEBACiBzZWxmLmFkZEV2ZW50TGlz
dGVuZXIoJ2ZldGNoJywgKCkgPT4gewotICAvLyBEbyBub3RoaW5nLgotfSk7CisgICAgLy8gRG8g
bm90aGluZy4KKyAgfSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMv
ZmV0Y2gtZXZlbnQtdGVzdC13b3JrZXIuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMv
ZmV0Y2gtZXZlbnQtdGVzdC13b3JrZXIuanMKaW5kZXggMGE1MmE4MjAxZWE5NmQ1MGQzZmE2ZWUz
MDJmNmFhOTBiNDQzNWRhNi4uZDUwM2E2NjA5ZDY5NTgyMWUyMDcyMTc4MTFiNTNmOTU3MDI3ZDEx
OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWV2ZW50LXRl
c3Qtd29ya2VyLmpzCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1ldmVu
dC10ZXN0LXdvcmtlci5qcwpAQCAtMzcsMTYgKzM3LDYgQEAgZnVuY3Rpb24gaGFuZGxlQ2xpZW50
SWQoZXZlbnQpIHsKICAgZXZlbnQucmVzcG9uZFdpdGgobmV3IFJlc3BvbnNlKGJvZHkpKTsKIH0K
IAotZnVuY3Rpb24gaGFuZGxlUmVzdWx0aW5nQ2xpZW50SWQoZXZlbnQpIHsKLSAgdmFyIGJvZHk7
Ci0gIGlmIChldmVudC5yZXN1bHRpbmdDbGllbnRJZCAhPT0gIiIpIHsKLSAgICBib2R5ID0gJ1Jl
c3VsdGluZyBDbGllbnQgSUQgRm91bmQ6ICcgKyBldmVudC5yZXN1bHRpbmdDbGllbnRJZDsKLSAg
fSBlbHNlIHsKLSAgICBib2R5ID0gJ1Jlc3VsdGluZyBDbGllbnQgSUQgTm90IEZvdW5kJzsKLSAg
fQotICBldmVudC5yZXNwb25kV2l0aChuZXcgUmVzcG9uc2UoYm9keSkpOwotfQotCiBmdW5jdGlv
biBoYW5kbGVOdWxsQm9keShldmVudCkgewogICBldmVudC5yZXNwb25kV2l0aChuZXcgUmVzcG9u
c2UoKSk7CiB9CkBAIC0xNjUsNyArMTU1LDYgQEAgc2VsZi5hZGRFdmVudExpc3RlbmVyKCdmZXRj
aCcsIGZ1bmN0aW9uKGV2ZW50KSB7CiAgICAgICB7IHBhdHRlcm46ICc/cmVmZXJyZXJQb2xpY3kn
LCBmbjogaGFuZGxlUmVmZXJyZXJQb2xpY3kgfSwKICAgICAgIHsgcGF0dGVybjogJz9yZWZlcnJl
cicsIGZuOiBoYW5kbGVSZWZlcnJlciB9LAogICAgICAgeyBwYXR0ZXJuOiAnP2NsaWVudElkJywg
Zm46IGhhbmRsZUNsaWVudElkIH0sCi0gICAgICB7IHBhdHRlcm46ICc/cmVzdWx0aW5nQ2xpZW50
SWQnLCBmbjogaGFuZGxlUmVzdWx0aW5nQ2xpZW50SWQgfSwKICAgICAgIHsgcGF0dGVybjogJz9p
Z25vcmUnLCBmbjogZnVuY3Rpb24oKSB7fSB9LAogICAgICAgeyBwYXR0ZXJuOiAnP251bGwnLCBm
bjogaGFuZGxlTnVsbEJvZHkgfSwKICAgICAgIHsgcGF0dGVybjogJz9mZXRjaCcsIGZuOiBoYW5k
bGVGZXRjaCB9LApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNo
LXJlcXVlc3QtY3NzLWJhc2UtdXJsLWlmcmFtZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVz
b3VyY2VzL2ZldGNoLXJlcXVlc3QtY3NzLWJhc2UtdXJsLWlmcmFtZS5odG1sCmluZGV4IDUwNGUx
MDQzNTY0MjMzMGZiZWIyMzM0ODU1YmI5ZDM5NjYyNzY0NjkuLjBlZGYyZTdmOTY1OWE1YmEyYjIw
NGM3NmVjMDQ1MDNlYWNhYzE0YTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291
cmNlcy9mZXRjaC1yZXF1ZXN0LWNzcy1iYXNlLXVybC1pZnJhbWUuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtcmVxdWVzdC1jc3MtYmFzZS11cmwtaWZyYW1lLmh0
bWwKQEAgLTEsMjAgKzEgQEAKLTxodG1sPgotPGhlYWQ+Ci08dGl0bGU+aWZyYW1lIGZvciBjc3Mg
YmFzZSB1cmwgdGVzdDwvdGl0bGU+Ci08L2hlYWQ+Ci08Ym9keT4KLTxzY3JpcHQ+Ci0vLyBMb2Fk
IGEgc3R5bGVzaGVldC4gQ3JlYXRlIGl0IGR5bmFtaWNhbGx5IHNvIHdlIGNhbiBjb25zdHJ1Y3Qg
dGhlIGhyZWYgVVJMCi0vLyBkeW5hbWljYWxseS4KLWNvbnN0IGxpbmsgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCdsaW5rJyk7Ci1saW5rLnJlbCA9ICdzdHlsZXNoZWV0JzsKLWxpbmsudHlwZSA9
ICd0ZXh0L2Nzcyc7Ci0vLyBBZGQgInJlcXVlc3QtdXJsLXBhdGgiIHRvIHRoZSBwYXRoIHRvIGhl
bHAgZGlzdGluZ3Vpc2ggdGhlIHJlcXVlc3QgVVJMIGZyb20KLS8vIHRoZSByZXNwb25zZSBVUkwu
IEFkZCB8ZG9jdW1lbnQubG9jYXRpb24uc2VhcmNofCAoY2hvc2VuIGJ5IHRoZSB0ZXN0IG1haW4K
LS8vIHBhZ2UpIHRvIHRlbGwgdGhlIHNlcnZpY2Ugd29ya2VyIGhvdyB0byByZXNwb25kIHRvIHRo
ZSByZXF1ZXN0LgotbGluay5ocmVmID0gJ3JlcXVlc3QtdXJsLXBhdGgvZmV0Y2gtcmVxdWVzdC1j
c3MtYmFzZS11cmwtc3R5bGUuY3NzJyArCi0gICAgZG9jdW1lbnQubG9jYXRpb24uc2VhcmNoOwot
ZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChsaW5rKTsKLTwvc2NyaXB0PgotPC9ib2R5PgotPC9o
dG1sPgorPGxpbmsgaHJlZj0iLi9mZXRjaC1yZXF1ZXN0LWNzcy1iYXNlLXVybC1zdHlsZS5jc3Mi
IHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLXJlcXVlc3QtY3NzLWJhc2UtdXJsLXdvcmtlci5qcyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1yZXF1ZXN0LWNzcy1iYXNlLXVybC13
b3JrZXIuanMKaW5kZXggZThkYmQyNzI1YzY4ZjkzMjZjNDFhZTVlN2JkZTY1MTU4OTcwYTI3Mi4u
OTFjMzI1OTk4YTNiOGQ2YTYxMDZhODM0OTAzZTIwNTU5ZTBmMDA1NSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLXJlcXVlc3QtY3NzLWJhc2UtdXJsLXdvcmtl
ci5qcworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtcmVxdWVzdC1jc3Mt
YmFzZS11cmwtd29ya2VyLmpzCkBAIC0xLDQ1ICsxLDI3IEBACi1sZXQgc291cmNlOwotbGV0IHJl
c29sdmVEb25lOwotbGV0IGRvbmUgPSBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHJlc29sdmVEb25l
ID0gcmVzb2x2ZSk7CitpbXBvcnRTY3JpcHRzKCcvY29tbW9uL2dldC1ob3N0LWluZm8uc3ViLmpz
Jyk7CitpbXBvcnRTY3JpcHRzKCd0ZXN0LWhlbHBlcnMuc3ViLmpzJyk7CiAKLS8vIFRoZSBwYWdl
IG1lc3NhZ2VzIHRoaXMgd29ya2VyIHRvIGFzayBmb3IgdGhlIHJlc3VsdC4gS2VlcCB0aGUgd29y
a2VyIGFsaXZlCi0vLyB2aWEgd2FpdFVudGlsKCkgdW50aWwgdGhlIHJlc3VsdCBpcyBzZW50Lgot
c2VsZi5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgZXZlbnQgPT4gewotICBzb3VyY2UgPSBl
dmVudC5kYXRhLnBvcnQ7Ci0gIHNvdXJjZS5wb3N0TWVzc2FnZSgncG9uZycpOwotICBldmVudC53
YWl0VW50aWwoZG9uZSk7Ci19KTsKK3ZhciBwb3J0ID0gdW5kZWZpbmVkOwogCi1zZWxmLmFkZEV2
ZW50TGlzdGVuZXIoJ2ZldGNoJywgZXZlbnQgPT4gewotICBjb25zdCB1cmwgPSBuZXcgVVJMKGV2
ZW50LnJlcXVlc3QudXJsKTsKLQotICAvLyBGb3IgdGhlIENTUyBmaWxlLCByZXNwb25kIGluIGEg
d2F5IHRoYXQgbWF5IGNoYW5nZSB0aGUgcmVzcG9uc2UgVVJMLAotICAvLyBkZXBlbmRpbmcgb24g
fHVybC5zZWFyY2h8LgotICBjb25zdCBjc3NQYXRoID0gJ3JlcXVlc3QtdXJsLXBhdGgvZmV0Y2gt
cmVxdWVzdC1jc3MtYmFzZS11cmwtc3R5bGUuY3NzJzsKLSAgaWYgKHVybC5wYXRobmFtZS5pbmRl
eE9mKGNzc1BhdGgpICE9IC0xKSB7Ci0gICAgLy8gUmVzcG9uZCB3aXRoIGEgZGlmZmVyZW50IFVS
TCwgZGVsZXRpbmcgInJlcXVlc3QtdXJsLXBhdGgvIi4KLSAgICBpZiAodXJsLnNlYXJjaCA9PSAn
P2ZldGNoJykgewotICAgICAgZXZlbnQucmVzcG9uZFdpdGgoZmV0Y2goJ2ZldGNoLXJlcXVlc3Qt
Y3NzLWJhc2UtdXJsLXN0eWxlLmNzcycpKTsKLSAgICB9Ci0gICAgLy8gUmVzcG9uZCB3aXRoIG5l
dyBSZXNwb25zZSgpLgotICAgIGVsc2UgaWYgKHVybC5zZWFyY2ggPT0gJz9uZXdSZXNwb25zZScp
IHsKLSAgICAgIGNvbnN0IHN0eWxlU3RyaW5nID0gJ2JvZHkgeyBiYWNrZ3JvdW5kLWltYWdlOiB1
cmwoIi4vZHVtbXkucG5nIik7fSc7Ci0gICAgICBjb25zdCBoZWFkZXJzID0geydjb250ZW50LXR5
cGUnOiAndGV4dC9jc3MnfTsKLSAgICAgIGV2ZW50LnJlc3BvbmRXaXRoKG5ldyBSZXNwb25zZShz
dHlsZVN0cmluZywgaGVhZGVycykpOwotICAgIH0KK3NlbGYub25tZXNzYWdlID0gZnVuY3Rpb24o
ZSkgeworICB2YXIgbWVzc2FnZSA9IGUuZGF0YTsKKyAgaWYgKCdwb3J0JyBpbiBtZXNzYWdlKSB7
CisgICAgcG9ydCA9IG1lc3NhZ2UucG9ydDsKKyAgICBwb3J0LnBvc3RNZXNzYWdlKHtyZWFkeTog
dHJ1ZX0pOwogICB9Cit9OwogCi0gIC8vIFRoZSBpbWFnZSByZXF1ZXN0IGluZGljYXRlcyB3aGF0
IHRoZSBiYXNlIFVSTCBvZiB0aGUgQ1NTIHdhcy4gTWVzc2FnZSB0aGUKLSAgLy8gcmVzdWx0IGJh
Y2sgdG8gdGhlIHRlc3QgcGFnZS4KLSAgZWxzZSBpZiAodXJsLnBhdGhuYW1lLmluZGV4T2YoJ2R1
bW15LnBuZycpICE9IC0xKSB7Ci0gICAgLy8gRm9yIHNvbWUgcmVhc29uIHxzb3VyY2V8IGlzIHVu
ZGVmaW5lZCBoZXJlIHdoZW4gcnVubmluZyB0aGUgdGVzdCBtYW51YWxseQotICAgIC8vIGluIEZp
cmVmb3guIFRoZSB0ZXN0IGF1dGhvciBleHBlcmltZW50ZWQgd2l0aCBib3RoIHVzaW5nIENsaWVu
dAotICAgIC8vIChldmVudC5zb3VyY2UpIGFuZCBNZXNzYWdlUG9ydCB0byB0cnkgdG8gZ2V0IHRo
ZSB0ZXN0IHRvIHBhc3MsIGJ1dAotICAgIC8vIGZhaWxlZC4KLSAgICBzb3VyY2UucG9zdE1lc3Nh
Z2UoewotICAgICAgdXJsOiBldmVudC5yZXF1ZXN0LnVybCwKLSAgICAgIHJlZmVycmVyOiBldmVu
dC5yZXF1ZXN0LnJlZmVycmVyCi0gICAgfSk7Ci0gICAgcmVzb2x2ZURvbmUoKTsKLSAgfQotfSk7
CitzZWxmLmFkZEV2ZW50TGlzdGVuZXIoJ2ZldGNoJywgZnVuY3Rpb24oZXZlbnQpIHsKKyAgICB2
YXIgdXJsID0gZXZlbnQucmVxdWVzdC51cmw7CisgICAgaWYgKHVybC5pbmRleE9mKCdmZXRjaC1y
ZXF1ZXN0LWNzcy1iYXNlLXVybC1zdHlsZS5jc3MnKSAhPSAtMSkgeworICAgICAgZXZlbnQucmVz
cG9uZFdpdGgoZmV0Y2goCisgICAgICAgIGdldF9ob3N0X2luZm8oKVsnSFRUUFNfUkVNT1RFX09S
SUdJTiddICsgYmFzZV9wYXRoKCkgKworICAgICAgICAnZmV0Y2gtcmVxdWVzdC1jc3MtYmFzZS11
cmwtc3R5bGUuY3NzJywKKyAgICAgICAge21vZGU6ICduby1jb3JzJ30pKTsKKyAgICB9IGVsc2Ug
aWYgKHVybC5pbmRleE9mKCdkdW1teS5wbmcnKSAhPSAtMSkgeworICAgICAgcG9ydC5wb3N0TWVz
c2FnZSh7CisgICAgICAgICAgdXJsOiBldmVudC5yZXF1ZXN0LnVybCwKKyAgICAgICAgICByZWZl
cnJlcjogZXZlbnQucmVxdWVzdC5yZWZlcnJlcgorICAgICAgICB9KTsKKyAgICB9CisgIH0pOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2dldC1yZXN1bHRpbmdDbGll
bnRJZC13b3JrZXIuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZ2V0LXJlc3VsdGlu
Z0NsaWVudElkLXdvcmtlci5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjBlNmM3
YmVjYWI2MTI2NDk2ZmVmYTNmNDBhNWU3ODhkYzY0Nzc1Yi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZ2V0
LXJlc3VsdGluZ0NsaWVudElkLXdvcmtlci5qcworKysgL2Rldi9udWxsCkBAIC0xLDEwNyArMCww
IEBACi0vLyBUaGlzIHdvcmtlciBleHBlY3RzIGEgZmV0Y2ggZXZlbnQgZm9yIGEgbmF2aWdhdGlv
biBhbmQgbWVzc2FnZXMgYmFjayB0aGUKLS8vIHJlc3VsdCBvZiBjbGllbnRzLmdldChldmVudC5y
ZXN1bHRpbmdDbGllbnRJZCkuCi0KLS8vIFJlc29sdmVzIHdoZW4gdGhlIHRlc3QgZmluaXNoZXMu
Ci1sZXQgdGVzdEZpbmlzaFByb21pc2U7Ci1sZXQgcmVzb2x2ZVRlc3RGaW5pc2hQcm9taXNlOwot
bGV0IHJlamVjdFRlc3RGaW5pc2hQcm9taXNlOwotCi0vLyBSZXNvbHZlcyB0byBjbGllbnRzLmdl
dChldmVudC5yZXN1bHRpbmdDbGllbnRJZCkgZnJvbSB0aGUgZmV0Y2ggZXZlbnQuCi1sZXQgZ2V0
UHJvbWlzZTsKLWxldCByZXNvbHZlR2V0UHJvbWlzZTsKLWxldCByZWplY3RHZXRQcm9taXNlOwot
Ci1sZXQgcmVzdWx0aW5nQ2xpZW50SWQ7Ci0KLWZ1bmN0aW9uIHN0YXJ0VGVzdCgpIHsKLSAgdGVz
dEZpbmlzaFByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7Ci0gICAg
cmVzb2x2ZVRlc3RGaW5pc2hQcm9taXNlID0gcmVzb2x2ZTsKLSAgICByZWplY3RUZXN0RmluaXNo
UHJvbWlzZSA9IHJlamVjdDsKLSAgfSk7Ci0KLSAgZ2V0UHJvbWlzZSA9IG5ldyBQcm9taXNlKChy
ZXNvbHZlLCByZWplY3QpID0+IHsKLSAgICByZXNvbHZlR2V0UHJvbWlzZSA9IHJlc29sdmU7Ci0g
ICAgcmVqZWN0R2V0UHJvbWlzZSA9IHJlamVjdDsKLSAgfSk7Ci19Ci0KLWFzeW5jIGZ1bmN0aW9u
IGRlc2NyaWJlR2V0UHJvbWlzZVJlc3VsdChwcm9taXNlKSB7Ci0gIGNvbnN0IHJlc3VsdCA9IHt9
OwotCi0gIGF3YWl0IHByb21pc2UudGhlbigKLSAgICAoY2xpZW50KSA9PiB7Ci0gICAgICByZXN1
bHQucHJvbWlzZVN0YXRlID0gJ2Z1bGZpbGxlZCc7Ci0gICAgICBpZiAoY2xpZW50ID09PSB1bmRl
ZmluZWQpIHsKLSAgICAgICAgcmVzdWx0LnByb21pc2VWYWx1ZSA9ICd1bmRlZmluZWRWYWx1ZSc7
Ci0gICAgICB9IGVsc2UgaWYgKGNsaWVudCBpbnN0YW5jZW9mIENsaWVudCkgewotICAgICAgICBy
ZXN1bHQucHJvbWlzZVZhbHVlID0gJ2NsaWVudCc7Ci0gICAgICAgIHJlc3VsdC5jbGllbnQgPSB7
Ci0gICAgICAgICAgaWQ6ICBjbGllbnQuaWQsCi0gICAgICAgICAgdXJsOiBjbGllbnQudXJsCi0g
ICAgICAgIH07Ci0gICAgICB9IGVsc2UgewotICAgICAgICByZXN1bHQucHJvbWlzZVZhbHVlID0g
J3Vua25vd24nOwotICAgICAgfQotICAgIH0sCi0gICAgKGVycm9yKSA9PiB7Ci0gICAgICByZXN1
bHQucHJvbWlzZVN0YXRlID0gJ3JlamVjdGVkJzsKLSAgICB9KTsKLQotICByZXR1cm4gcmVzdWx0
OwotfQotCi1hc3luYyBmdW5jdGlvbiBoYW5kbGVHZXRSZXN1bHRpbmdDbGllbnQoZXZlbnQpIHsK
LSAgLy8gTm90ZSB0aGF0IHRoaXMgbWVzc2FnZSBjYW4gYXJyaXZlIGJlZm9yZSB8cmVzdWx0aW5n
Q2xpZW50SWR8IGlzIHBvcHVsYXRlZC4KLSAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZGVzY3JpYmVH
ZXRQcm9taXNlUmVzdWx0KGdldFByb21pc2UpOwotICAvLyB8cmVzdWx0aW5nQ2xpZW50SWR8IG11
c3QgYmUgcG9wdWxhdGVkIGJ5IG5vdy4KLSAgcmVzdWx0LnF1ZXJpZWRJZCA9IHJlc3VsdGluZ0Ns
aWVudElkOwotICBldmVudC5zb3VyY2UucG9zdE1lc3NhZ2UocmVzdWx0KTsKLX07Ci0KLWFzeW5j
IGZ1bmN0aW9uIGhhbmRsZUdldENsaWVudChldmVudCkgewotICBjb25zdCBpZCA9IGV2ZW50LmRh
dGEuaWQ7Ci0gIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGRlc2NyaWJlR2V0UHJvbWlzZVJlc3VsdChz
ZWxmLmNsaWVudHMuZ2V0KGlkKSk7Ci0gIHJlc3VsdC5xdWVyaWVkSWQgPSBpZDsKLSAgZXZlbnQu
c291cmNlLnBvc3RNZXNzYWdlKHJlc3VsdCk7Ci19OwotCi1zZWxmLmFkZEV2ZW50TGlzdGVuZXIo
J21lc3NhZ2UnLCAoZXZlbnQpID0+IHsKLSAgaWYgKGV2ZW50LmRhdGEuY29tbWFuZCA9PSAnc3Rh
cnRUZXN0JykgewotICAgIHN0YXJ0VGVzdCgpOwotICAgIGV2ZW50LndhaXRVbnRpbCh0ZXN0Rmlu
aXNoUHJvbWlzZSk7Ci0gICAgZXZlbnQuc291cmNlLnBvc3RNZXNzYWdlKCdvaycpOwotICAgIHJl
dHVybjsKLSAgfQotCi0gIGlmIChldmVudC5kYXRhLmNvbW1hbmQgPT0gJ2ZpbmlzaFRlc3QnKSB7
Ci0gICAgcmVzb2x2ZVRlc3RGaW5pc2hQcm9taXNlKCk7Ci0gICAgZXZlbnQuc291cmNlLnBvc3RN
ZXNzYWdlKCdvaycpOwotICAgIHJldHVybjsKLSAgfQotCi0gIGlmIChldmVudC5kYXRhLmNvbW1h
bmQgPT0gJ2dldFJlc3VsdGluZ0NsaWVudCcpIHsKLSAgICBldmVudC53YWl0VW50aWwoaGFuZGxl
R2V0UmVzdWx0aW5nQ2xpZW50KGV2ZW50KSk7Ci0gICAgcmV0dXJuOwotICB9Ci0KLSAgaWYgKGV2
ZW50LmRhdGEuY29tbWFuZCA9PSAnZ2V0Q2xpZW50JykgewotICAgIGV2ZW50LndhaXRVbnRpbCho
YW5kbGVHZXRDbGllbnQoZXZlbnQpKTsKLSAgICByZXR1cm47Ci0gIH0KLX0pOwotCi1hc3luYyBm
dW5jdGlvbiBoYW5kbGVGZXRjaChldmVudCkgewotICB0cnkgewotICAgIHJlc3VsdGluZ0NsaWVu
dElkID0gZXZlbnQucmVzdWx0aW5nQ2xpZW50SWQ7Ci0gICAgY29uc3QgY2xpZW50ID0gYXdhaXQg
c2VsZi5jbGllbnRzLmdldChyZXN1bHRpbmdDbGllbnRJZCk7Ci0gICAgcmVzb2x2ZUdldFByb21p
c2UoY2xpZW50KTsKLSAgfSBjYXRjaCAoZXJyb3IpIHsKLSAgICByZWplY3RHZXRQcm9taXNlKGVy
cm9yKTsKLSAgfQotfQotCi1zZWxmLmFkZEV2ZW50TGlzdGVuZXIoJ2ZldGNoJywgKGV2ZW50KSA9
PiB7Ci0gIGlmIChldmVudC5yZXF1ZXN0Lm1vZGUgIT0gJ25hdmlnYXRlJykKLSAgICByZXR1cm47
Ci0gIGV2ZW50LndhaXRVbnRpbChoYW5kbGVGZXRjaChldmVudCkpOwotfSk7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvaW1wb3J0LXJlbGF0aXZlLnhzbCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL3Jlc291cmNlcy9pbXBvcnQtcmVsYXRpdmUueHNsCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwNjNhNjJkMDMxNDNhMzJmNDQzNjViZjFlN2IwOGQyODNhZTUyODk1
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL3Jlc291cmNlcy9pbXBvcnQtcmVsYXRpdmUueHNsCisrKyAvZGV2L251bGwKQEAg
LTEsNSArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgotCi08
eHNsOnN0eWxlc2hlZXQgdmVyc2lvbj0iMS4wIiB4bWxuczp4c2w9Imh0dHA6Ly93d3cudzMub3Jn
LzE5OTkvWFNML1RyYW5zZm9ybSI+Ci0gICAgPHhzbDppbXBvcnQgaHJlZj0ieHNsdC1wYXNzLnhz
bCIvPgotPC94c2w6c3R5bGVzaGVldD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jl
c291cmNlcy9pbXBvcnQtc2NyaXB0cy1kaWZmLXJlc291cmNlLW1hcC13b3JrZXIuanMgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvaW1wb3J0LXNjcmlwdHMtZGlmZi1yZXNvdXJjZS1tYXAt
d29ya2VyLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwZmRjYjBmY2Y4MGFkN2Yw
ZGZmYTI4NGM1Yjc3MTc4YmRhZDk1ZWY2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9pbXBvcnQtc2NyaXB0
cy1kaWZmLXJlc291cmNlLW1hcC13b3JrZXIuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxMCArMCww
IEBACi1pbXBvcnRTY3JpcHRzKCcvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzJyk7Ci0KLWxldCBl
Y2hvMSA9IG51bGw7Ci1sZXQgZWNobzIgPSBudWxsOwotbGV0IGFyZzEgPSAnaW1wb3J0LXNjcmlw
dHMtZ2V0LnB5P291dHB1dD1lY2hvMSZtc2c9dGVzdDEnOwotbGV0IGFyZzIgPSAnaW1wb3J0LXNj
cmlwdHMtZ2V0LnB5P291dHB1dD1lY2hvMiZtc2c9dGVzdDInOwotCi1pbXBvcnRTY3JpcHRzKGFy
ZzEsIGFyZzIpOwotYXNzZXJ0X2VxdWFscyhlY2hvMSwgJ3Rlc3QxJyk7Ci1hc3NlcnRfZXF1YWxz
KGVjaG8yLCAndGVzdDInKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNl
cy9pbXBvcnQtc2NyaXB0cy1nZXQucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvaW1w
b3J0LXNjcmlwdHMtZ2V0LnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5ZTM3NmJj
MDkyODg5ZjFiMjMxNjI4ZWM3YzE3MzM5Njc0ZDI4NGY0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9pbXBv
cnQtc2NyaXB0cy1nZXQucHkKKysrIC9kZXYvbnVsbApAQCAtMSw2ICswLDAgQEAKLWRlZiBtYWlu
KHJlcSwgcmVzKToKLSAgICByZXR1cm4gKFsKLSAgICAgICAgKCdDYWNoZS1Db250cm9sJywgJ25v
LWNhY2hlLCBtdXN0LXJldmFsaWRhdGUnKSwKLSAgICAgICAgKCdQcmFnbWEnLCAnbm8tY2FjaGUn
KSwKLSAgICAgICAgKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vamF2YXNjcmlwdCcpXSwK
LSAgICAgICAgJyVzID0gIiVzIjtcbicgJSAocmVxLkdFVFsnb3V0cHV0J10sIHJlcS5HRVRbJ21z
ZyddKSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9pbXBvcnQtc2Ny
aXB0cy1taW1lLXR5cGVzLXdvcmtlci5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9p
bXBvcnQtc2NyaXB0cy1taW1lLXR5cGVzLXdvcmtlci5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMmM1ODVhYzEwNjBhODhjNGYzZWVhYzZiNmE4MWJiYjRlMGMzMDI4MC4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9yZXNvdXJjZXMvaW1wb3J0LXNjcmlwdHMtbWltZS10eXBlcy13b3JrZXIuanMKKysrIC9kZXYv
bnVsbApAQCAtMSw0OSArMCwwIEBACi1jb25zdCBiYWRNaW1lVHlwZXMgPSBbCi0gIG51bGwsICAv
LyBubyBNSU1FIHR5cGUKLSAgJ3RleHQvcGxhaW4nLAotXTsKLQotY29uc3QgdmFsaWRNaW1lVHlw
ZXMgPSBbCi0gICdhcHBsaWNhdGlvbi9lY21hc2NyaXB0JywKLSAgJ2FwcGxpY2F0aW9uL2phdmFz
Y3JpcHQnLAotICAnYXBwbGljYXRpb24veC1lY21hc2NyaXB0JywKLSAgJ2FwcGxpY2F0aW9uL3gt
amF2YXNjcmlwdCcsCi0gICd0ZXh0L2VjbWFzY3JpcHQnLAotICAndGV4dC9qYXZhc2NyaXB0JywK
LSAgJ3RleHQvamF2YXNjcmlwdDEuMCcsCi0gICd0ZXh0L2phdmFzY3JpcHQxLjEnLAotICAndGV4
dC9qYXZhc2NyaXB0MS4yJywKLSAgJ3RleHQvamF2YXNjcmlwdDEuMycsCi0gICd0ZXh0L2phdmFz
Y3JpcHQxLjQnLAotICAndGV4dC9qYXZhc2NyaXB0MS41JywKLSAgJ3RleHQvanNjcmlwdCcsCi0g
ICd0ZXh0L2xpdmVzY3JpcHQnLAotICAndGV4dC94LWVjbWFzY3JpcHQnLAotICAndGV4dC94LWph
dmFzY3JpcHQnLAotXTsKLQotZnVuY3Rpb24gaW1wb3J0U2NyaXB0c1dpdGhNaW1lVHlwZShtaW1l
VHlwZSkgewotICBpbXBvcnRTY3JpcHRzKGAuL21pbWUtdHlwZS13b3JrZXIucHkke21pbWVUeXBl
ID8gJz9taW1lPScgKyBtaW1lVHlwZSA6ICcnfWApOwotfQotCi1pbXBvcnRTY3JpcHRzKCcvcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzLmpzJyk7Ci0KLWZvciAoY29uc3QgbWltZVR5cGUgb2YgYmFkTWlt
ZVR5cGVzKSB7Ci0gIHRlc3QoKCkgPT4gewotICAgIGFzc2VydF90aHJvd3MoCi0gICAgICAnTmV0
d29ya0Vycm9yJywKLSAgICAgICgpID0+IHsgaW1wb3J0U2NyaXB0c1dpdGhNaW1lVHlwZShtaW1l
VHlwZSk7IH0sCi0gICAgICBgaW1wb3J0U2NyaXB0cyB3aXRoICR7bWltZVR5cGUgPyAnYmFkJyA6
ICdubyd9IE1JTUUgdHlwZSAke21pbWVUeXBlIHx8ICcnfSB0aHJvd3MgTmV0d29ya0Vycm9yYCwK
LSAgICApOwotICB9LCBgSW1wb3J0aW5nIHNjcmlwdCB3aXRoICR7bWltZVR5cGUgPyAnYmFkJyA6
ICdubyd9IE1JTUUgdHlwZSAke21pbWVUeXBlIHx8ICcnfWApOwotfQotCi1mb3IgKGNvbnN0IG1p
bWVUeXBlIG9mIHZhbGlkTWltZVR5cGVzKSB7Ci0gIHRlc3QoKCkgPT4gewotICAgIHRyeSB7Ci0g
ICAgICBpbXBvcnRTY3JpcHRzV2l0aE1pbWVUeXBlKG1pbWVUeXBlKTsKLSAgICB9IGNhdGNoIHsK
LSAgICAgIGFzc2VydF91bnJlYWNoZWQoYGltcG9ydFNjcmlwdHMgd2l0aCBNSU1FIHR5cGUgJHtt
aW1lVHlwZX0gc2hvdWxkIG5vdCB0aHJvd2ApOwotICAgIH0KLSAgfSwgYEltcG9ydGluZyBzY3Jp
cHQgd2l0aCB2YWxpZCBKYXZhU2NyaXB0IE1JTUUgdHlwZSAke21pbWVUeXBlfWApOwotfQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ltcG9ydGVkLWNsYXNzaWMtc2Ny
aXB0LmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ltcG9ydGVkLWNsYXNzaWMtc2Ny
aXB0LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1ZmM1MjA0MDUxMzVlMjE1Mjkw
ZWJmZWUwMDhmOWY3MTk2MDk1NWE4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9pbXBvcnRlZC1jbGFzc2lj
LXNjcmlwdC5qcworKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLWNvbnN0IGltcG9ydGVkID0g
J0EgY2xhc3NpYyBzY3JpcHQuJzsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291
cmNlcy9pbXBvcnRlZC1tb2R1bGUtc2NyaXB0LmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3Vy
Y2VzL2ltcG9ydGVkLW1vZHVsZS1zY3JpcHQuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDU2ZDE5NmRmMDQwZjlhZGI5OTljOTQ0MzI5ZTZmMTU2OWFjODc2ZmQuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVz
b3VyY2VzL2ltcG9ydGVkLW1vZHVsZS1zY3JpcHQuanMKKysrIC9kZXYvbnVsbApAQCAtMSArMCww
IEBACi1leHBvcnQgY29uc3QgaW1wb3J0ZWQgPSAnQSBtb2R1bGUgc2NyaXB0Lic7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvbWVzc2FnZS12cy1taWNyb3Rhc2suaHRt
bCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9tZXNzYWdlLXZzLW1pY3JvdGFzay5odG1s
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyYzQ1YzU5YTQ3NWFlOWIyZTZiYzE2OGRj
NzViMzFlYWI5ZDIzMWY0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9tZXNzYWdlLXZzLW1pY3JvdGFzay5o
dG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08c2Ny
aXB0PgotICBsZXQgZHJhZnQgPSBbXTsKLSAgdmFyIHJlc29sdmVfbWFudWFsX3Byb21pc2U7Ci0g
IGxldCBtYW51YWxfcHJvbWlzZSA9Ci0gICAgbmV3IFByb21pc2UocmVzb2x2ZSA9PiByZXNvbHZl
X21hbnVhbF9wcm9taXNlID0gcmVzb2x2ZSkudGhlbigoKSA9PiBkcmFmdC5wdXNoKCdtaWNyb3Rh
c2snKSk7Ci0KLSAgbGV0IHJlc29sdmVfbWVzc2FnZV9wcm9taXNlOwotICBsZXQgbWVzc2FnZV9w
cm9taXNlID0gbmV3IFByb21pc2UocmVzb2x2ZSA9PiByZXNvbHZlX21lc3NhZ2VfcHJvbWlzZSA9
IHJlc29sdmUpOwotICBmdW5jdGlvbiBoYW5kbGVfbWVzc2FnZShldmVudCkgewotICAgIGRyYWZ0
LnB1c2goJ21lc3NhZ2UnKTsKLSAgICByZXNvbHZlX21lc3NhZ2VfcHJvbWlzZSgpOwotICB9Ci0K
LSAgdmFyIHJlc3VsdCA9IFByb21pc2UuYWxsKFttYW51YWxfcHJvbWlzZSwgbWVzc2FnZV9wcm9t
aXNlXSkudGhlbigoKSA9PiBkcmFmdCk7Ci08L3NjcmlwdD4KLQotPHNjcmlwdCBzcmM9ImVtcHR5
LmpzP2tleT1zdGFydCI+PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9y
ZXNvdXJjZXMvbW9kdWxlLXdvcmtlci5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9t
b2R1bGUtd29ya2VyLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzODVmZTcxMDE1
MDNjYjRjN2NhNzdlOTVlMDIzNDU5YjI5MjY3NzQxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9tb2R1bGUt
d29ya2VyLmpzCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotaW1wb3J0ICogYXMgbW9kdWxl
IGZyb20gJy4vaW1wb3J0ZWQtbW9kdWxlLXNjcmlwdC5qcyc7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9yZXNvdXJjZXMvbmF2aWdhdGlvbi1yZWRpcmVjdC1vdGhlci1vcmlnaW4uaHRt
bCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9uYXZpZ2F0aW9uLXJlZGlyZWN0LW90aGVy
LW9yaWdpbi5odG1sCmluZGV4IGQ4MjU3MWQxYTNjNzFlMjMyNzQwMDlkMTQ3ZTQxMGIxMGZlOGQy
NDUuLmE5NDgzYzY1MzQ1NzlhYzJmMzU0OWQ3OWM3NDg4ZmVlZjExYTVjNjkgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9uYXZpZ2F0aW9uLXJlZGlyZWN0LW90aGVyLW9y
aWdpbi5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9uYXZpZ2F0aW9uLXJl
ZGlyZWN0LW90aGVyLW9yaWdpbi5odG1sCkBAIC0zMywyOCArMzMsMTEgQEAgZnVuY3Rpb24gc2Vu
ZF9yZXN1bHQobWVzc2FnZV9pZCwgcmVzdWx0KSB7CiAgICAgICBob3N0X2luZm9bJ0hUVFBTX09S
SUdJTiddKTsKIH0KIAotZnVuY3Rpb24gZ2V0X3JlcXVlc3RfaW5mb3Mod29ya2VyKSB7Ci0gIHJl
dHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlKSB7Ci0gICAgdmFyIGNoYW5uZWwgPSBu
ZXcgTWVzc2FnZUNoYW5uZWwoKTsKLSAgICBjaGFubmVsLnBvcnQxLm9ubWVzc2FnZSA9IChtc2cp
ID0+IHsKLSAgICAgIHJlc29sdmUobXNnLmRhdGEucmVxdWVzdEluZm9zKTsKLSAgICB9OwotICAg
IHdvcmtlci5wb3N0TWVzc2FnZSh7Y29tbWFuZDogJ2dldFJlcXVlc3RJbmZvcycsIHBvcnQ6IGNo
YW5uZWwucG9ydDJ9LAotICAgICAgICAgICAgICAgICAgICAgICBbY2hhbm5lbC5wb3J0Ml0pOwot
ICB9KTsKLX0KLQotZnVuY3Rpb24gZ2V0X2NsaWVudHMod29ya2VyLCBhY3R1YWxfaWRzKSB7Citm
dW5jdGlvbiBnZXRfaW50ZXJjZXB0ZWRfdXJscyh3b3JrZXIpIHsKICAgcmV0dXJuIG5ldyBQcm9t
aXNlKGZ1bmN0aW9uKHJlc29sdmUpIHsKICAgICAgIHZhciBjaGFubmVsID0gbmV3IE1lc3NhZ2VD
aGFubmVsKCk7Ci0gICAgICBjaGFubmVsLnBvcnQxLm9ubWVzc2FnZSA9IChtc2cpID0+IHsKLSAg
ICAgICAgcmVzb2x2ZShtc2cuZGF0YS5jbGllbnRzKTsKLSAgICAgIH07Ci0gICAgICB3b3JrZXIu
cG9zdE1lc3NhZ2UoewotICAgICAgICBjb21tYW5kOiAnZ2V0Q2xpZW50cycsCi0gICAgICAgIGFj
dHVhbF9pZHMsCi0gICAgICAgIHBvcnQ6IGNoYW5uZWwucG9ydDIKLSAgICAgIH0sIFtjaGFubmVs
LnBvcnQyXSk7CisgICAgICBjaGFubmVsLnBvcnQxLm9ubWVzc2FnZSA9IGZ1bmN0aW9uKG1zZykg
eyByZXNvbHZlKG1zZy5kYXRhLnVybHMpOyB9OworICAgICAgd29ya2VyLnBvc3RNZXNzYWdlKHtw
b3J0OiBjaGFubmVsLnBvcnQyfSwgW2NoYW5uZWwucG9ydDJdKTsKICAgICB9KTsKIH0KIApAQCAt
NjUsMjAgKzQ4LDE0IEBAIGZ1bmN0aW9uIG9uX21lc3NhZ2UoZSkgewogICAgIGNvbnNvbGUuZXJy
b3IoJ2ludmFsaWQgb3JpZ2luOiAnICsgZS5vcmlnaW4pOwogICAgIHJldHVybjsKICAgfQotICBj
b25zdCBjb21tYW5kID0gZS5kYXRhLm1lc3NhZ2UuY29tbWFuZDsKLSAgaWYgKGNvbW1hbmQgPT0g
J3dhaXRfZm9yX3dvcmtlcicpIHsKKyAgaWYgKGUuZGF0YS5tZXNzYWdlID09ICd3YWl0X2Zvcl93
b3JrZXInKSB7CiAgICAgd2FpdF9mb3Jfd29ya2VyX3Byb21pc2UudGhlbihmdW5jdGlvbigpIHsg
c2VuZF9yZXN1bHQoZS5kYXRhLmlkLCAnb2snKTsgfSk7Ci0gIH0gZWxzZSBpZiAoY29tbWFuZCA9
PSAnZ2V0X3JlcXVlc3RfaW5mb3MnKSB7Ci0gICAgZ2V0X3JlcXVlc3RfaW5mb3Mod29ya2VyKQot
ICAgICAgLnRoZW4oZnVuY3Rpb24oZGF0YSkgewotICAgICAgICAgIHNlbmRfcmVzdWx0KGUuZGF0
YS5pZCwgZGF0YSk7Ci0gICAgICAgIH0pOwotICB9IGVsc2UgaWYgKGNvbW1hbmQgPT0gJ2dldF9j
bGllbnRzJykgewotICAgIGdldF9jbGllbnRzKHdvcmtlciwgZS5kYXRhLm1lc3NhZ2UuYWN0dWFs
X2lkcykKLSAgICAgIC50aGVuKGZ1bmN0aW9uKGRhdGEpIHsKLSAgICAgICAgICBzZW5kX3Jlc3Vs
dChlLmRhdGEuaWQsIGRhdGEpOworICB9IGVsc2UgaWYgKGUuZGF0YS5tZXNzYWdlID09ICdnZXRf
aW50ZXJjZXB0ZWRfdXJscycpIHsKKyAgICBnZXRfaW50ZXJjZXB0ZWRfdXJscyh3b3JrZXIpCisg
ICAgICAudGhlbihmdW5jdGlvbih1cmxzKSB7CisgICAgICAgICAgc2VuZF9yZXN1bHQoZS5kYXRh
LmlkLCB1cmxzKTsKICAgICAgICAgfSk7Ci0gIH0gZWxzZSBpZiAoY29tbWFuZCA9PSAndW5yZWdp
c3RlcicpIHsKKyAgfSBlbHNlIGlmIChlLmRhdGEubWVzc2FnZSA9PSAndW5yZWdpc3RlcicpIHsK
ICAgICByZWdpc3RyYXRpb24udW5yZWdpc3RlcigpCiAgICAgICAudGhlbihmdW5jdGlvbigpIHsK
ICAgICAgICAgICBzZW5kX3Jlc3VsdChlLmRhdGEuaWQsICdvaycpOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvcmVzb3VyY2VzL25hdmlnYXRpb24tcmVkaXJlY3Qtb3V0LXNjb3BlLnB5
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL25hdmlnYXRpb24tcmVkaXJlY3Qtb3V0LXNj
b3BlLnB5CmluZGV4IDE2ODUwNzIzZjk2OGZkM2ZhYzUxYTMzYzZlOTgzYzRmMDEzYTg4MjMuLjkw
N2NlZmEzYjFhZmE5NmE1NWQ1NDkzNWFkODM1N2IyMzIxMThmOWIgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL3Jlc291cmNlcy9uYXZpZ2F0aW9uLXJlZGlyZWN0LW91dC1zY29wZS5weQor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvbmF2aWdhdGlvbi1yZWRpcmVjdC1vdXQt
c2NvcGUucHkKQEAgLTExLDEyICsxMSwxMCBAQCBkZWYgbWFpbihyZXF1ZXN0LCByZXNwb25zZSk6
CiAgICAgcmV0dXJuIHN0YXR1cywgWygiY29udGVudC10eXBlIiwgInRleHQvaHRtbCIpXSwgJycn
CiA8IURPQ1RZUEUgaHRtbD4KIDxzY3JpcHQ+Ci1vbm1lc3NhZ2UgPSBldmVudCA9PiB7CiAgIHdp
bmRvdy5wYXJlbnQucG9zdE1lc3NhZ2UoCiAgICAgICB7Ci0gICAgICAgIGlkOiBldmVudC5kYXRh
LmlkLAorICAgICAgICBpZDogJ2xhc3RfdXJsJywKICAgICAgICAgcmVzdWx0OiBsb2NhdGlvbi5o
cmVmCiAgICAgICB9LCAnKicpOwotfTsKIDwvc2NyaXB0PgogJycnCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvbmF2aWdhdGlvbi1yZWRpcmVjdC1zY29wZTEucHkgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvbmF2aWdhdGlvbi1yZWRpcmVjdC1zY29wZTEucHkK
aW5kZXggMTY4NTA3MjNmOTY4ZmQzZmFjNTFhMzNjNmU5ODNjNGYwMTNhODgyMy4uOTA3Y2VmYTNi
MWFmYTk2YTU1ZDU0OTM1YWQ4MzU3YjIzMjExOGY5YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvcmVzb3VyY2VzL25hdmlnYXRpb24tcmVkaXJlY3Qtc2NvcGUxLnB5CisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL3Jlc291cmNlcy9uYXZpZ2F0aW9uLXJlZGlyZWN0LXNjb3BlMS5weQpAQCAt
MTEsMTIgKzExLDEwIEBAIGRlZiBtYWluKHJlcXVlc3QsIHJlc3BvbnNlKToKICAgICByZXR1cm4g
c3RhdHVzLCBbKCJjb250ZW50LXR5cGUiLCAidGV4dC9odG1sIildLCAnJycKIDwhRE9DVFlQRSBo
dG1sPgogPHNjcmlwdD4KLW9ubWVzc2FnZSA9IGV2ZW50ID0+IHsKICAgd2luZG93LnBhcmVudC5w
b3N0TWVzc2FnZSgKICAgICAgIHsKLSAgICAgICAgaWQ6IGV2ZW50LmRhdGEuaWQsCisgICAgICAg
IGlkOiAnbGFzdF91cmwnLAogICAgICAgICByZXN1bHQ6IGxvY2F0aW9uLmhyZWYKICAgICAgIH0s
ICcqJyk7Ci19OwogPC9zY3JpcHQ+CiAnJycKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L3Jlc291cmNlcy9uYXZpZ2F0aW9uLXJlZGlyZWN0LXNjb3BlMi5weSBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3Jlc291cmNlcy9uYXZpZ2F0aW9uLXJlZGlyZWN0LXNjb3BlMi5weQppbmRleCAxNjg1MDcy
M2Y5NjhmZDNmYWM1MWEzM2M2ZTk4M2M0ZjAxM2E4ODIzLi45MDdjZWZhM2IxYWZhOTZhNTVkNTQ5
MzVhZDgzNTdiMjMyMTE4ZjliIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJj
ZXMvbmF2aWdhdGlvbi1yZWRpcmVjdC1zY29wZTIucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
cmVzb3VyY2VzL25hdmlnYXRpb24tcmVkaXJlY3Qtc2NvcGUyLnB5CkBAIC0xMSwxMiArMTEsMTAg
QEAgZGVmIG1haW4ocmVxdWVzdCwgcmVzcG9uc2UpOgogICAgIHJldHVybiBzdGF0dXMsIFsoImNv
bnRlbnQtdHlwZSIsICJ0ZXh0L2h0bWwiKV0sICcnJwogPCFET0NUWVBFIGh0bWw+CiA8c2NyaXB0
Pgotb25tZXNzYWdlID0gZXZlbnQgPT4gewogICB3aW5kb3cucGFyZW50LnBvc3RNZXNzYWdlKAog
ICAgICAgewotICAgICAgICBpZDogZXZlbnQuZGF0YS5pZCwKKyAgICAgICAgaWQ6ICdsYXN0X3Vy
bCcsCiAgICAgICAgIHJlc3VsdDogbG9jYXRpb24uaHJlZgogICAgICAgfSwgJyonKTsKLX07CiA8
L3NjcmlwdD4KICcnJwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL25l
c3RlZC1pZnJhbWUtcGFyZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvbmVz
dGVkLWlmcmFtZS1wYXJlbnQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTE1
YWIyNmUxMjIxMDI0YjMwMzEzNTY5ZjQ4NDk0MmIxMGY2ZGJhMC4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMv
bmVzdGVkLWlmcmFtZS1wYXJlbnQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDUgKzAsMCBAQAot
PCFET0NUWVBFIGh0bWw+Ci08c2NyaXB0PgotICBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5vbm1l
c3NhZ2UgPSBldmVudCA9PiBwYXJlbnQucG9zdE1lc3NhZ2UoZXZlbnQuZGF0YSwgJyonLCBldmVu
dC5wb3J0cyk7Ci08L3NjcmlwdD4KLTxpZnJhbWUgaWQ9J2NoaWxkJz48L2lmcmFtZT4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9wZXJmb3JtYW5jZS10aW1lbGluZS13
b3JrZXIuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvcGVyZm9ybWFuY2UtdGltZWxp
bmUtd29ya2VyLmpzCmluZGV4IGNhYzMyN2MzNGJmOWRmMTg0OTEzYzU2MWI1ODRiMDM4ZjM1MDRj
OTQuLmE3NTJiNDM2NTI0ZTYyODk1OWUzNWM5ZGU3M2UxNWNjYzdkZDc4M2YgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9wZXJmb3JtYW5jZS10aW1lbGluZS13b3JrZXIu
anMKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3BlcmZvcm1hbmNlLXRpbWVsaW5l
LXdvcmtlci5qcwpAQCAtNDQsMTMgKzQ0LDE5IEBAIHByb21pc2VfdGVzdChmdW5jdGlvbih0ZXN0
KSB7CiAgICAgICAgICAgICAgIGFzc2VydF9ncmVhdGVyX3RoYW4oZW50cnkuc3RhcnRUaW1lLCAw
KTsKICAgICAgICAgICAgICAgYXNzZXJ0X2dyZWF0ZXJfdGhhbihlbnRyeS5yZXNwb25zZUVuZCwg
ZW50cnkuc3RhcnRUaW1lKTsKICAgICAgICAgICB9Ci0gICAgICAgICAgcmV0dXJuIG5ldyBQcm9t
aXNlKGZ1bmN0aW9uKHJlc29sdmUpIHsKKyAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yYWNlKFsK
KyAgICAgICAgICAgIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUpIHsKICAgICAgICAgICAg
ICAgcGVyZm9ybWFuY2Uub25yZXNvdXJjZXRpbWluZ2J1ZmZlcmZ1bGwgPSBfID0+IHsKICAgICAg
ICAgICAgICAgICByZXNvbHZlKCdidWZmZXJmdWxsJyk7CiAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgICAgcGVyZm9ybWFuY2Uuc2V0UmVzb3VyY2VUaW1pbmdCdWZmZXJTaXplKGV4cGVjdGVk
UmVzb3VyY2VzLmxlbmd0aCk7Ci0gICAgICAgICAgICAgIGZldGNoKCdkdW1teS50eHQnKTsKLSAg
ICAgICAgICB9KTsKKyAgICAgICAgICAgIH0pLAorCisgICAgICAgICAgICAvLyBSYWNlIHRoZSBi
dWZmZXJmdWxsIGV2ZW50IGFnYWluc3QgYW5vdGhlciBmZXRjaC4gIFdlIHNob3VsZCBnZXQgdGhl
CisgICAgICAgICAgICAvLyBldmVudCBiZWZvcmUgdGhpcyBjb21wbGV0ZXMuICBUaGlzIGFsbG93
cyB1cyB0byBkZXRlY3QgYSBmYWlsdXJlCisgICAgICAgICAgICAvLyB0byBkaXNwYXRjaCB0aGUg
ZXZlbnQgd2l0aG91dCB0aW1pbmcgb3V0IHRoZSBlbnRpcmUgdGVzdC4KKyAgICAgICAgICAgIGZl
dGNoKCdkdW1teS50eHQnKS50aGVuKHJlc3AgPT4gcmVzcC50ZXh0KCkpCisgICAgICAgICAgXSk7
CiAgICAgICAgIH0pCiAgICAgICAudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKICAgICAgICAgICBh
c3NlcnRfZXF1YWxzKHJlc3VsdCwgJ2J1ZmZlcmZ1bGwnKTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL3Jlc291cmNlcy9wb3N0bWVzc2FnZS1lY2hvLXdvcmtlci5qcyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL3Jlc291cmNlcy9wb3N0bWVzc2FnZS1lY2hvLXdvcmtlci5qcwpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggZjA4OGFkMTI3ODA0Mjk3Y2Y5ODFlNjFhY2IxYzMzZWE3YjA2
MjBjNC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvcG9zdG1lc3NhZ2UtZWNoby13b3JrZXIuanMKKysrIC9k
ZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLXNlbGYuYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScs
IGV2ZW50ID0+IHsKLSAgZXZlbnQuc291cmNlLnBvc3RNZXNzYWdlKGV2ZW50LmRhdGEpOwotfSk7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvcmVkaXJlY3Qtd29ya2Vy
LmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3JlZGlyZWN0LXdvcmtlci5qcwppbmRl
eCBkZGNjMmNmNTQ3ODk0MjI5MmRjOGM1ZTMwZDE1NmRjNDI4ODYzNjVlLi43ZTVlYWQxOTQxOWUy
YzliZGY2YmYyMjNlYzg0ZTY5MmU1N2M4ZmUyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9yZXNvdXJjZXMvcmVkaXJlY3Qtd29ya2VyLmpzCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jl
c291cmNlcy9yZWRpcmVjdC13b3JrZXIuanMKQEAgLTUsODAgKzUsMjAgQEAgdmFyIGNhY2hlTmFt
ZSA9ICd1cmxzLScgKyBzZWxmLnJlZ2lzdHJhdGlvbi5zY29wZTsKIAogdmFyIHdhaXRVbnRpbFBy
b21pc2VMaXN0ID0gW107CiAKLS8vIFNlbmRzIHRoZSByZXF1ZXN0cyBzZWVuIGJ5IHRoaXMgd29y
a2VyLiBUaGUgb3V0cHV0IGlzOgotLy8gewotLy8gICByZXF1ZXN0SW5mb3M6IFsKLS8vICAgICB7
dXJsOiB1cmwxLCByZXN1bHRpbmdDbGllbnRJZDogaWQxfSwKLS8vICAgICB7dXJsOiB1cmwyLCBy
ZXN1bHRpbmdDbGllbnRJZDogaWQyfSwKLS8vICAgXQotLy8gfQotYXN5bmMgZnVuY3Rpb24gZ2V0
UmVxdWVzdEluZm9zKGV2ZW50KSB7Ci0gIC8vIFdhaXQgZm9yIGZldGNoIGV2ZW50cyB0byBmaW5p
c2guCi0gIGF3YWl0IFByb21pc2UuYWxsKHdhaXRVbnRpbFByb21pc2VMaXN0KTsKLSAgd2FpdFVu
dGlsUHJvbWlzZUxpc3QgPSBbXTsKLQotICAvLyBHZW5lcmF0ZSB0aGUgbWVzc2FnZS4KLSAgY29u
c3QgY2FjaGUgPSBhd2FpdCBjYWNoZXMub3BlbihjYWNoZU5hbWUpOwotICBjb25zdCByZXF1ZXN0
TGlzdCA9IGF3YWl0IGNhY2hlLmtleXMoKTsKLSAgY29uc3QgcmVxdWVzdEluZm9zID0gW107Ci0g
IGZvciAobGV0IGkgPSAwOyBpIDwgcmVxdWVzdExpc3QubGVuZ3RoOyBpKyspIHsKLSAgICBjb25z
dCByZXNwb25zZSA9IGF3YWl0IGNhY2hlLm1hdGNoKHJlcXVlc3RMaXN0W2ldKTsKLSAgICBjb25z
dCBib2R5ID0gYXdhaXQgcmVzcG9uc2UuanNvbigpOwotICAgIHJlcXVlc3RJbmZvc1tpXSA9IHsK
LSAgICAgIHVybDogcmVxdWVzdExpc3RbaV0udXJsLAotICAgICAgcmVzdWx0aW5nQ2xpZW50SWQ6
IGJvZHkucmVzdWx0aW5nQ2xpZW50SWQKLSAgICB9OwotICB9Ci0gIGF3YWl0IGNhY2hlcy5kZWxl
dGUoY2FjaGVOYW1lKTsKLQotICBldmVudC5kYXRhLnBvcnQucG9zdE1lc3NhZ2Uoe3JlcXVlc3RJ
bmZvc30pOwotfQotCi0vLyBTZW5kcyB0aGUgcmVzdWx0cyBvZiBjbGllbnRzLmdldChpZCkgZnJv
bSB0aGlzIHdvcmtlci4gVGhlCi0vLyBpbnB1dCBpczoKLS8vIHsKLS8vICAgYWN0dWFsX2lkczog
e2E6IGlkMSwgYjogaWQyLCB4OiBpZDN9Ci0vLyB9Ci0vLwotLy8gVGhlIG91dHB1dCBpczoKLS8v
IHsKLS8vICAgY2xpZW50czogewotLy8gICAgIGE6IHtmb3VuZDogZmFsc2V9LAotLy8gICAgIGI6
IHtmb3VuZDogZmFsc2V9LAotLy8gICAgIHg6IHsKLS8vICAgICAgIGlkOiBpZDMsCi0vLyAgICAg
ICB1cmw6IHVybDEsCi0vLyAgICAgICBmb3VuZDogdHJ1ZQotLy8gICAgfQotLy8gICB9Ci0vLyB9
Ci1hc3luYyBmdW5jdGlvbiBnZXRDbGllbnRzKGV2ZW50KSB7Ci0gIC8vIHxhY3R1YWxfaWRzfCBp
cyBsaWtlOgotICAvLyB7YTogaWQxLCBiOiBpZDIsIHg6IGlkM30KLSAgY29uc3QgYWN0dWFsX2lk
cyA9IGV2ZW50LmRhdGEuYWN0dWFsX2lkczsKLSAgY29uc3QgcmVzdWx0ID0ge30KLSAgZm9yIChs
ZXQga2V5IG9mIE9iamVjdC5rZXlzKGFjdHVhbF9pZHMpKSB7Ci0gICAgY29uc3QgaWQgPSBhY3R1
YWxfaWRzW2tleV07Ci0gICAgY29uc3QgY2xpZW50ID0gYXdhaXQgc2VsZi5jbGllbnRzLmdldChp
ZCk7Ci0gICAgaWYgKGNsaWVudCA9PT0gdW5kZWZpbmVkKQotICAgICAgcmVzdWx0W2tleV0gPSB7
Zm91bmQ6IGZhbHNlfTsKLSAgICBlbHNlCi0gICAgICByZXN1bHRba2V5XSA9IHtmb3VuZDogdHJ1
ZSwgdXJsOiBjbGllbnQudXJsLCBpZDogY2xpZW50LmlkfTsKLSAgfQotICBldmVudC5kYXRhLnBv
cnQucG9zdE1lc3NhZ2Uoe2NsaWVudHM6IHJlc3VsdH0pOwotfQotCi1zZWxmLmFkZEV2ZW50TGlz
dGVuZXIoJ21lc3NhZ2UnLCBhc3luYyBmdW5jdGlvbihldmVudCkgewotICBpZiAoZXZlbnQuZGF0
YS5jb21tYW5kID09ICdnZXRSZXF1ZXN0SW5mb3MnKSB7Ci0gICAgZXZlbnQud2FpdFVudGlsKGdl
dFJlcXVlc3RJbmZvcyhldmVudCkpOwotICAgIHJldHVybjsKLSAgfQotCi0gIGlmIChldmVudC5k
YXRhLmNvbW1hbmQgPT0gJ2dldENsaWVudHMnKSB7Ci0gICAgZXZlbnQud2FpdFVudGlsKGdldENs
aWVudHMoZXZlbnQpKTsKLSAgICByZXR1cm47Ci0gIH0KLX0pOworc2VsZi5hZGRFdmVudExpc3Rl
bmVyKCdtZXNzYWdlJywgZnVuY3Rpb24oZXZlbnQpIHsKKyAgICB2YXIgdXJsczsKKyAgICBldmVu
dC53YWl0VW50aWwoUHJvbWlzZS5hbGwod2FpdFVudGlsUHJvbWlzZUxpc3QpLnRoZW4oZnVuY3Rp
b24oKSB7CisgICAgICB3YWl0VW50aWxQcm9taXNlTGlzdCA9IFtdOworICAgICAgcmV0dXJuIGNh
Y2hlcy5vcGVuKGNhY2hlTmFtZSk7CisgICAgfSkudGhlbihmdW5jdGlvbihjYWNoZSkgeworICAg
ICAgcmV0dXJuIGNhY2hlLmtleXMoKTsKKyAgICB9KS50aGVuKGZ1bmN0aW9uKHJlcXVlc3RMaXN0
KSB7CisgICAgICB1cmxzID0gcmVxdWVzdExpc3QubWFwKGZ1bmN0aW9uKHJlcXVlc3QpIHsgcmV0
dXJuIHJlcXVlc3QudXJsOyB9KTsKKyAgICAgIHJldHVybiBjYWNoZXMuZGVsZXRlKGNhY2hlTmFt
ZSk7CisgICAgfSkudGhlbihmdW5jdGlvbigpIHsKKyAgICAgIGV2ZW50LmRhdGEucG9ydC5wb3N0
TWVzc2FnZSh7dXJsczogdXJsc30pOworICAgIH0pKTsKKyAgfSk7CiAKIGZ1bmN0aW9uIGdldF9x
dWVyeV9wYXJhbXModXJsKSB7CiAgIHZhciBzZWFyY2ggPSAobmV3IFVSTCh1cmwpKS5zZWFyY2g7
CkBAIC05NiwxMSArMzYsNyBAQCBmdW5jdGlvbiBnZXRfcXVlcnlfcGFyYW1zKHVybCkgewogCiBz
ZWxmLmFkZEV2ZW50TGlzdGVuZXIoJ2ZldGNoJywgZnVuY3Rpb24oZXZlbnQpIHsKICAgICB2YXIg
d2FpdFVudGlsUHJvbWlzZSA9IGNhY2hlcy5vcGVuKGNhY2hlTmFtZSkudGhlbihmdW5jdGlvbihj
YWNoZSkgewotICAgICAgY29uc3QgcmVzcG9uc2VCb2R5ID0ge307Ci0gICAgICByZXNwb25zZUJv
ZHlbJ3Jlc3VsdGluZ0NsaWVudElkJ10gPSBldmVudC5yZXN1bHRpbmdDbGllbnRJZDsKLSAgICAg
IGNvbnN0IGhlYWRlcnMgPSBuZXcgSGVhZGVycyh7J0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlv
bi9qc29uJ30pOwotICAgICAgY29uc3QgcmVzcG9uc2UgPSBuZXcgUmVzcG9uc2UoSlNPTi5zdHJp
bmdpZnkocmVzcG9uc2VCb2R5KSwge2hlYWRlcnN9KTsKLSAgICAgIHJldHVybiBjYWNoZS5wdXQo
ZXZlbnQucmVxdWVzdCwgcmVzcG9uc2UpOworICAgICAgcmV0dXJuIGNhY2hlLnB1dChldmVudC5y
ZXF1ZXN0LCBuZXcgUmVzcG9uc2UoKSk7CiAgICAgfSk7CiAgICAgZXZlbnQud2FpdFVudGlsKHdh
aXRVbnRpbFByb21pc2UpOwogCkBAIC0xMTQsMjUgKzUwLDI4IEBAIHNlbGYuYWRkRXZlbnRMaXN0
ZW5lcignZmV0Y2gnLCBmdW5jdGlvbihldmVudCkgewogICAgICAgcmV0dXJuOwogICAgIH0KIAot
ICAgIGV2ZW50LnJlc3BvbmRXaXRoKHdhaXRVbnRpbFByb21pc2UudGhlbihhc3luYyAoKSA9PiB7
CisgICAgZXZlbnQucmVzcG9uZFdpdGgod2FpdFVudGlsUHJvbWlzZS50aGVuKGZ1bmN0aW9uKCkg
ewogICAgICAgaWYgKHBhcmFtc1snc3cnXSA9PSAnZ2VuJykgewogICAgICAgICByZXR1cm4gUmVz
cG9uc2UucmVkaXJlY3QocGFyYW1zWyd1cmwnXSk7CiAgICAgICB9IGVsc2UgaWYgKHBhcmFtc1sn
c3cnXSA9PSAnZmV0Y2gnKSB7CiAgICAgICAgIHJldHVybiBmZXRjaChldmVudC5yZXF1ZXN0KTsK
LSAgICAgIH0gZWxzZSBpZiAocGFyYW1zWydzdyddID09ICdmZXRjaC11cmwnKSB7Ci0gICAgICAg
IHJldHVybiBmZXRjaChwYXJhbXNbJ3VybCddKTsKICAgICAgIH0gZWxzZSBpZiAocGFyYW1zWydz
dyddID09ICdmb2xsb3cnKSB7CiAgICAgICAgIHJldHVybiBmZXRjaChuZXcgUmVxdWVzdChldmVu
dC5yZXF1ZXN0LnVybCwge3JlZGlyZWN0OiAnZm9sbG93J30pKTsKICAgICAgIH0gZWxzZSBpZiAo
cGFyYW1zWydzdyddID09ICdtYW51YWwnKSB7CiAgICAgICAgIHJldHVybiBmZXRjaChuZXcgUmVx
dWVzdChldmVudC5yZXF1ZXN0LnVybCwge3JlZGlyZWN0OiAnbWFudWFsJ30pKTsKICAgICAgIH0g
ZWxzZSBpZiAocGFyYW1zWydzdyddID09ICdtYW51YWxUaHJvdWdoQ2FjaGUnKSB7Ci0gICAgICAg
IGNvbnN0IHVybCA9IGV2ZW50LnJlcXVlc3QudXJsOwotICAgICAgICBhd2FpdCBjYWNoZXMuZGVs
ZXRlKHVybCkKLSAgICAgICAgY29uc3QgY2FjaGUgPSBhd2FpdCBzZWxmLmNhY2hlcy5vcGVuKHVy
bCk7Ci0gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2gobmV3IFJlcXVlc3QodXJs
LCB7cmVkaXJlY3Q6ICdtYW51YWwnfSkpOwotICAgICAgICBhd2FpdCBjYWNoZS5wdXQoZXZlbnQu
cmVxdWVzdCwgcmVzcG9uc2UpOwotICAgICAgICByZXR1cm4gY2FjaGUubWF0Y2godXJsKTsKKyAg
ICAgICAgdmFyIHVybCA9IGV2ZW50LnJlcXVlc3QudXJsOworICAgICAgICB2YXIgY2FjaGU7Cisg
ICAgICAgIHJldHVybiBjYWNoZXMuZGVsZXRlKHVybCkKKyAgICAgICAgICAudGhlbihmdW5jdGlv
bigpIHsgcmV0dXJuIHNlbGYuY2FjaGVzLm9wZW4odXJsKTsgfSkKKyAgICAgICAgICAudGhlbihm
dW5jdGlvbihjKSB7CisgICAgICAgICAgICBjYWNoZSA9IGM7CisgICAgICAgICAgICByZXR1cm4g
ZmV0Y2gobmV3IFJlcXVlc3QodXJsLCB7cmVkaXJlY3Q6ICdtYW51YWwnfSkpOworICAgICAgICAg
IH0pCisgICAgICAgICAgLnRoZW4oZnVuY3Rpb24ocmVzKSB7IHJldHVybiBjYWNoZS5wdXQoZXZl
bnQucmVxdWVzdCwgcmVzKTsgfSkKKyAgICAgICAgICAudGhlbihmdW5jdGlvbigpIHsgcmV0dXJu
IGNhY2hlLm1hdGNoKHVybCk7IH0pOwogICAgICAgfQorCiAgICAgICAvLyB1bmV4cGVjdGVkLi4u
IHRyaWdnZXIgYW4gaW50ZXJjZXB0aW9uIGZhaWx1cmUKICAgICB9KSk7CiAgIH0pOwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3JlZ2lzdHJhdGlvbi10ZXN0cy1taW1l
LXR5cGVzLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3JlZ2lzdHJhdGlvbi10ZXN0
cy1taW1lLXR5cGVzLmpzCmluZGV4IDNlNDg1OWI4YjM5YjA5NTVlNmM1MTVkMzY3ZTJlN2Q0NGM0
ZjNhNzcuLjFiOGVhOWJlMDA4Y2UzY2Y0NTk3YWFhN2UzY2E2ZGQ2ODBhYmRkMGIgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9yZWdpc3RyYXRpb24tdGVzdHMtbWltZS10
eXBlcy5qcworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvcmVnaXN0cmF0aW9uLXRl
c3RzLW1pbWUtdHlwZXMuanMKQEAgLTIxLDIxICsyMSwxMSBAQCBmdW5jdGlvbiByZWdpc3RyYXRp
b25fdGVzdHNfbWltZV90eXBlcyhyZWdpc3Rlcl9tZXRob2QsIGNoZWNrX2Vycm9yX3R5cGVzKSB7
CiAgICAgICAgICAgJ1JlZ2lzdHJhdGlvbiBvZiBwbGFpbiB0ZXh0IHNjcmlwdCBzaG91bGQgZmFp
bC4nKTsKICAgICB9LCAnUmVnaXN0ZXJpbmcgc2NyaXB0IHdpdGggYmFkIE1JTUUgdHlwZScpOwog
Ci0gIC8qKgotICAgKiBTZXJ2aWNlV29ya2VyQ29udGFpbmVyLnJlZ2lzdGVyKCkgc2hvdWxkIHRo
cm93IGEgVHlwZUVycm9yLCBhY2NvcmRpbmcgdG8KLSAgICogc3RlcCAxNy4xIG9mIGh0dHBzOi8v
dzNjLmdpdGh1Yi5pby9TZXJ2aWNlV29ya2VyLyNpbXBvcnRzY3JpcHRzCi0gICAqCi0gICAqICJb
MTddIElmIGFuIHVuY2F1Z2h0IHJ1bnRpbWUgc2NyaXB0IGVycm9yIG9jY3VycyBkdXJpbmcgdGhl
IGFib3ZlIHN0ZXAsIHRoZW46Ci0gICAqICBbMTcuMV0gSW52b2tlIFJlamVjdCBKb2IgUHJvbWlz
ZSB3aXRoIGpvYiBhbmQgVHlwZUVycm9yIgotICAgKgotICAgKiAoV2hlcmUgdGhlICJ1bmNhdWdo
dCBydW50aW1lIHNjcmlwdCBlcnJvciIgaXMgdGhyb3duIGJ5IGFuIHVuc3VjY2Vzc2Z1bAotICAg
KiBpbXBvcnRTY3JpcHRzKCkpCi0gICAqLwogICBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewog
ICAgICAgdmFyIHNjcmlwdCA9ICdyZXNvdXJjZXMvaW1wb3J0LW1pbWUtdHlwZS13b3JrZXIucHkn
OwogICAgICAgdmFyIHNjb3BlID0gJ3Jlc291cmNlcy9zY29wZS9uby1taW1lLXR5cGUtd29ya2Vy
Lyc7CiAgICAgICByZXR1cm4gcHJvbWlzZV9yZWplY3RzKHQsCi0gICAgICAgICAgY2hlY2tfZXJy
b3JfdHlwZXMgPyBuZXcgVHlwZUVycm9yKCkgOiBudWxsLAorICAgICAgICAgIGNoZWNrX2Vycm9y
X3R5cGVzID8gJ1NlY3VyaXR5RXJyb3InIDogbnVsbCwKICAgICAgICAgICByZWdpc3Rlcl9tZXRo
b2Qoc2NyaXB0LCB7c2NvcGU6IHNjb3BlfSksCiAgICAgICAgICAgJ1JlZ2lzdHJhdGlvbiBvZiBu
byBNSU1FIHR5cGUgaW1wb3J0ZWQgc2NyaXB0IHNob3VsZCBmYWlsLicpOwogICAgIH0sICdSZWdp
c3RlcmluZyBzY3JpcHQgdGhhdCBpbXBvcnRzIHNjcmlwdCB3aXRoIG5vIE1JTUUgdHlwZScpOwpA
QCAtNDQsNyArMzQsNyBAQCBmdW5jdGlvbiByZWdpc3RyYXRpb25fdGVzdHNfbWltZV90eXBlcyhy
ZWdpc3Rlcl9tZXRob2QsIGNoZWNrX2Vycm9yX3R5cGVzKSB7CiAgICAgICB2YXIgc2NyaXB0ID0g
J3Jlc291cmNlcy9pbXBvcnQtbWltZS10eXBlLXdvcmtlci5weT9taW1lPXRleHQvcGxhaW4nOwog
ICAgICAgdmFyIHNjb3BlID0gJ3Jlc291cmNlcy9zY29wZS9iYWQtbWltZS10eXBlLXdvcmtlci8n
OwogICAgICAgcmV0dXJuIHByb21pc2VfcmVqZWN0cyh0LAotICAgICAgICAgIGNoZWNrX2Vycm9y
X3R5cGVzID8gbmV3IFR5cGVFcnJvcigpIDogbnVsbCwKKyAgICAgICAgICBjaGVja19lcnJvcl90
eXBlcyA/ICdTZWN1cml0eUVycm9yJyA6IG51bGwsCiAgICAgICAgICAgcmVnaXN0ZXJfbWV0aG9k
KHNjcmlwdCwge3Njb3BlOiBzY29wZX0pLAogICAgICAgICAgICdSZWdpc3RyYXRpb24gb2YgcGxh
aW4gdGV4dCBpbXBvcnRlZCBzY3JpcHQgc2hvdWxkIGZhaWwuJyk7CiAgICAgfSwgJ1JlZ2lzdGVy
aW5nIHNjcmlwdCB0aGF0IGltcG9ydHMgc2NyaXB0IHdpdGggYmFkIE1JTUUgdHlwZScpOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3JlZ2lzdHJhdGlvbi10ZXN0cy1z
Y29wZS5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9yZWdpc3RyYXRpb24tdGVzdHMt
c2NvcGUuanMKaW5kZXggNmMwOTdhZDhkMWY4YjhmOWE0ZmU5NWY3YzZlYmQwNGVkYjVjZmQ5Yy4u
NTFiMGFiNGFkNTFhM2MwYTJhN2I2ODM0MTNjYTZhZWJhN2VjNjE5MSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3JlZ2lzdHJhdGlvbi10ZXN0cy1zY29wZS5qcworKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvcmVnaXN0cmF0aW9uLXRlc3RzLXNjb3BlLmpz
CkBAIC05NCw5ICs5NCw5IEBAIGZ1bmN0aW9uIHJlZ2lzdHJhdGlvbl90ZXN0c19zY29wZShyZWdp
c3Rlcl9tZXRob2QsIGNoZWNrX2Vycm9yX3R5cGVzKSB7CiAgICAgICB2YXIgc2NyaXB0ID0gJ3Jl
c291cmNlcy9lbXB0eS13b3JrZXIuanMnOwogICAgICAgdmFyIHNjb3BlID0gJ2ZpbGVzeXN0ZW06
JyArIG5vcm1hbGl6ZVVSTCgncmVzb3VyY2VzL3Njb3BlL2ZpbGVzeXN0ZW0tc2NvcGUtdXJsJyk7
CiAgICAgICByZXR1cm4gcHJvbWlzZV9yZWplY3RzKHQsCi0gICAgICAgICAgY2hlY2tfZXJyb3Jf
dHlwZXMgPyBuZXcgVHlwZUVycm9yIDogbnVsbCwKKyAgICAgICAgICBjaGVja19lcnJvcl90eXBl
cyA/ICdTZWN1cml0eUVycm9yJyA6IG51bGwsCiAgICAgICAgICAgcmVnaXN0ZXJfbWV0aG9kKHNj
cmlwdCwge3Njb3BlOiBzY29wZX0pLAogICAgICAgICAgICdSZWdpc3RlcmluZyB3aXRoIHRoZSBz
Y29wZSB0aGF0IGhhcyBzYW1lLW9yaWdpbiBmaWxlc3lzdGVtOiBVUkwgJyArCi0gICAgICAgICAg
ICAgICdzaG91bGQgZmFpbCB3aXRoIFR5cGVFcnJvci4nKTsKKyAgICAgICAgICAgICAgJ3Nob3Vs
ZCBmYWlsIHdpdGggU2VjdXJpdHlFcnJvci4nKTsKICAgICB9LCAnU2NvcGUgVVJMIGlzIHNhbWUt
b3JpZ2luIGZpbGVzeXN0ZW06IFVSTCcpOwogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvcmVzb3VyY2VzL3JlZ2lzdHJhdGlvbi10ZXN0cy1zZWN1cml0eS1lcnJvci5qcyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL3Jlc291cmNlcy9yZWdpc3RyYXRpb24tdGVzdHMtc2VjdXJpdHktZXJyb3Iu
anMKaW5kZXggYTcyZDNiYWMyOTFjNmY0MmFjZjI2NDkyNmI4NThhMGYzOTY0ZWQ0Mi4uYzg0YmI2
NmUwNDJlMTM1NDE2NWRlM2VmZDI5MWYyYWEyYjk3YjljNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvcmVzb3VyY2VzL3JlZ2lzdHJhdGlvbi10ZXN0cy1zZWN1cml0eS1lcnJvci5qcwor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvcmVnaXN0cmF0aW9uLXRlc3RzLXNlY3Vy
aXR5LWVycm9yLmpzCkBAIC03MCw5ICs3MCw5IEBAIGZ1bmN0aW9uIHJlZ2lzdHJhdGlvbl90ZXN0
c19zZWN1cml0eV9lcnJvcihyZWdpc3Rlcl9tZXRob2QsIGNoZWNrX2Vycm9yX3R5cGVzKSB7CiAg
ICAgICB2YXIgc2NyaXB0ID0gJ2ZpbGVzeXN0ZW06JyArIG5vcm1hbGl6ZVVSTCgncmVzb3VyY2Vz
L2VtcHR5LXdvcmtlci5qcycpOwogICAgICAgdmFyIHNjb3BlID0gJ3Jlc291cmNlcy9zY29wZS9m
aWxlc3lzdGVtLXNjcmlwdC11cmwnOwogICAgICAgcmV0dXJuIHByb21pc2VfcmVqZWN0cyh0LAot
ICAgICAgICAgIGNoZWNrX2Vycm9yX3R5cGVzID8gbmV3IFR5cGVFcnJvciA6IG51bGwsCisgICAg
ICAgICAgY2hlY2tfZXJyb3JfdHlwZXMgPyAnU2VjdXJpdHlFcnJvcicgOiBudWxsLAogICAgICAg
ICAgIHJlZ2lzdGVyX21ldGhvZChzY3JpcHQsIHtzY29wZTogc2NvcGV9KSwKICAgICAgICAgICAn
UmVnaXN0ZXJpbmcgYSBzY3JpcHQgd2hpY2ggaGFzIHNhbWUtb3JpZ2luIGZpbGVzeXN0ZW06IFVS
TCBzaG91bGQgJyArCi0gICAgICAgICAgICAgICdmYWlsIHdpdGggVHlwZUVycm9yLicpOworICAg
ICAgICAgICAgICAnZmFpbCB3aXRoIFNlY3VyaXR5RXJyb3IuJyk7CiAgICAgfSwgJ1NjcmlwdCBV
UkwgaXMgc2FtZS1vcmlnaW4gZmlsZXN5c3RlbTogVVJMJyk7CiB9CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvcmVzb3VyY2UtdGltaW5nLWlmcmFtZS5zdWIuaHRtbCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9yZXNvdXJjZS10aW1pbmctaWZyYW1lLnN1Yi5o
dG1sCmluZGV4IDQxYmMyZTc3YzFiNGFjYjNhNTdhODNmOWM5ODg5ZjRlOWM1MzgxMDMuLjRiNjI2
NTc2YWI0NTZlYWUwMmFhOTIyODg0YjBkNDkxN2NhZWNhMTQgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL3Jlc291cmNlcy9yZXNvdXJjZS10aW1pbmctaWZyYW1lLnN1Yi5odG1sCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9yZXNvdXJjZS10aW1pbmctaWZyYW1lLnN1Yi5o
dG1sCkBAIC0zLDggKzMsOCBAQAogPHNjcmlwdCBzcmM9ImR1bW15LmpzIj48L3NjcmlwdD4KIDxz
Y3JpcHQgc3JjPSJyZWRpcmVjdC5weT9SZWRpcmVjdD1lbXB0eS5qcyI+PC9zY3JpcHQ+CiA8aW1n
IHNyYz0ic3F1YXJlLnBuZyI+Ci08aW1nIHNyYz0iaHR0cHM6Ly97e2hvc3RzW2FsdF1bXX19Ont7
cG9ydHNbaHR0cHNdWzBdfX0vc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNl
cy9zcXVhcmUucG5nIj4KKzxpbWcgc3JjPSJodHRwczovL3t7ZG9tYWluc1t3d3cxXX19Ont7cG9y
dHNbaHR0cHNdWzBdfX0vc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9z
cXVhcmUucG5nIj4KIDxpbWcgc3JjPSJtaXNzaW5nLmpwZyI+Ci08aW1nIHNyYz0iaHR0cHM6Ly97
e2hvc3RzW2FsdF1bXX19Ont7cG9ydHNbaHR0cHNdWzBdfX0vc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL3Jlc291cmNlcy9taXNzaW5nLmpwZyI+Cis8aW1nIHNyYz0iaHR0cHM6Ly97e2Rv
bWFpbnNbd3d3MV19fTp7e3BvcnRzW2h0dHBzXVswXX19L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9yZXNvdXJjZXMvbWlzc2luZy5qcGciPgogPGltZyBzcmM9J21pc3NpbmcuanBnP1NX
UmVzcG9uZHNXaXRoRmV0Y2gnPgogPHNjcmlwdCBzcmM9J2VtcHR5LXdvcmtlci5qcyc+PC9zY3Jp
cHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvc2VydmljZS13b3Jr
ZXItY3NwLXdvcmtlci5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9zZXJ2aWNlLXdv
cmtlci1jc3Atd29ya2VyLnB5CmluZGV4IDlkMmIxZjJkODM0ZjUyMzQ0N2IyY2ZkMzczYmIxNzZm
MmUwZTg1NzMuLjVmMDY0NTRmMTQ0ZDU4NGRiYmVjNGVjMjQ1N2Y1YjViZGQxNjFmZTYgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9zZXJ2aWNlLXdvcmtlci1jc3Atd29y
a2VyLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9zZXJ2aWNlLXdvcmtlci1j
c3Atd29ya2VyLnB5CkBAIC0xNywxNSArMTcsNiBAQCB0ZXN0KGZ1bmN0aW9uKCkgewogICAgICAg
ICAgICAgICAgICdJbXBvcnRpbmcgdGhlIG90aGVyIG9yaWdpbnMgc2NyaXB0IHNob3VsZCBmYWls
LicpOwogICB9LCAnaW1wb3J0U2NyaXB0cyB0ZXN0IGZvciBkZWZhdWx0LXNyYycpOwogCi10ZXN0
KGZ1bmN0aW9uKCkgewotICAgIGFzc2VydF90aHJvd3MoRXZhbEVycm9yKCksCi0gICAgICAgICAg
ICAgICAgICBmdW5jdGlvbigpIHsgZXZhbCgnMSArIDEnKTsgfSwKLSAgICAgICAgICAgICAgICAg
ICdldmFsKCkgc2hvdWxkIHRocm93IEV2YWxFcnJvci4nKQotICAgIGFzc2VydF90aHJvd3MoRXZh
bEVycm9yKCksCi0gICAgICAgICAgICAgICAgICBmdW5jdGlvbigpIHsgbmV3IEZ1bmN0aW9uKCcx
ICsgMScpOyB9LAotICAgICAgICAgICAgICAgICAgJ25ldyBGdW5jdGlvbigpIHNob3VsZCB0aHJv
dyBFdmFsRXJyb3IuJykKLSAgfSwgJ2V2YWwgdGVzdCBmb3IgZGVmYXVsdC1zcmMnKTsKLQogYXN5
bmNfdGVzdChmdW5jdGlvbih0KSB7CiAgICAgZmV0Y2goaG9zdF9pbmZvLkhUVFBTX1JFTU9URV9P
UklHSU4gKwogICAgICAgICAgIGJhc2VfcGF0aCgpICsgJ2ZldGNoLWFjY2Vzcy1jb250cm9sLnB5
P0FDQU9yaWdpbj0qJywKQEAgLTcyLDE1ICs2Myw2IEBAIHRlc3QoZnVuY3Rpb24oKSB7CiAgICAg
ICAgICAgICAgICAgJ0ltcG9ydGluZyB0aGUgb3RoZXIgb3JpZ2lucyBzY3JpcHQgc2hvdWxkIGZh
aWwuJyk7CiAgIH0sICdpbXBvcnRTY3JpcHRzIHRlc3QgZm9yIHNjcmlwdC1zcmMnKTsKIAotdGVz
dChmdW5jdGlvbigpIHsKLSAgICBhc3NlcnRfdGhyb3dzKEV2YWxFcnJvcigpLAotICAgICAgICAg
ICAgICAgICAgZnVuY3Rpb24oKSB7IGV2YWwoJzEgKyAxJyk7IH0sCi0gICAgICAgICAgICAgICAg
ICAnZXZhbCgpIHNob3VsZCB0aHJvdyBFdmFsRXJyb3IuJykKLSAgICBhc3NlcnRfdGhyb3dzKEV2
YWxFcnJvcigpLAotICAgICAgICAgICAgICAgICAgZnVuY3Rpb24oKSB7IG5ldyBGdW5jdGlvbign
MSArIDEnKTsgfSwKLSAgICAgICAgICAgICAgICAgICduZXcgRnVuY3Rpb24oKSBzaG91bGQgdGhy
b3cgRXZhbEVycm9yLicpCi0gIH0sICdldmFsIHRlc3QgZm9yIHNjcmlwdC1zcmMnKTsKLQogYXN5
bmNfdGVzdChmdW5jdGlvbih0KSB7CiAgICAgZmV0Y2goaG9zdF9pbmZvLkhUVFBTX1JFTU9URV9P
UklHSU4gKwogICAgICAgICAgIGJhc2VfcGF0aCgpICsgJ2ZldGNoLWFjY2Vzcy1jb250cm9sLnB5
P0FDQU9yaWdpbj0qJywKQEAgLTEyNywxOCArMTA5LDYgQEAgdGVzdChmdW5jdGlvbigpIHsKICAg
ICAgICAgICAgICAgICAgJ0ltcG9ydGluZyB0aGUgb3RoZXIgb3JpZ2lucyBzY3JpcHQgc2hvdWxk
IG5vdCBmYWlsLicpOwogICB9LCAnaW1wb3J0U2NyaXB0cyB0ZXN0IGZvciBjb25uZWN0LXNyYycp
OwogCi10ZXN0KGZ1bmN0aW9uKCkgewotICAgIHZhciBldmFsX2ZhaWxlZCA9IGZhbHNlOwotICAg
IHRyeSB7Ci0gICAgICBldmFsKCcxICsgMScpOwotICAgICAgbmV3IEZ1bmN0aW9uKCcxICsgMScp
OwotICAgIH0gY2F0Y2goZSkgewotICAgICAgZXZhbF9mYWlsZWQgPSB0cnVlOwotICAgIH0KLSAg
ICBhc3NlcnRfZmFsc2UoZXZhbF9mYWlsZWQsCi0gICAgICAgICAgICAgICAgICdjb25uZWN0LXNy
YyB3aXRob3V0IHVuc2FmZS1ldmFsIHNob3VsZCBub3QgYmxvY2sgZXZhbCgpLicpOwotICB9LCAn
ZXZhbCB0ZXN0IGZvciBjb25uZWN0LXNyYycpOwotCiBhc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsK
ICAgICBmZXRjaChob3N0X2luZm8uSFRUUFNfUkVNT1RFX09SSUdJTiArCiAgICAgICAgICAgYmFz
ZV9wYXRoKCkgKyAnZmV0Y2gtYWNjZXNzLWNvbnRyb2wucHk/QUNBT3JpZ2luPSonLApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3NlcnZpY2Utd29ya2VyLWhlYWRlci5w
eSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9zZXJ2aWNlLXdvcmtlci1oZWFkZXIucHkK
aW5kZXggNzRmNTdhNzJhOTA0MTc2MmY5ZjUwNzMyZDJjZTg5MGQ4ODk4MTBjNS4uMmU4MmU3ODEw
N2FkNGY3MGIzZTg4ZDcwMDEzOTE5NWY4YTViMDI5ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvcmVzb3VyY2VzL3NlcnZpY2Utd29ya2VyLWhlYWRlci5weQorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9yZXNvdXJjZXMvc2VydmljZS13b3JrZXItaGVhZGVyLnB5CkBAIC0xLDIwICsxLDcg
QEAKIGRlZiBtYWluKHJlcXVlc3QsIHJlc3BvbnNlKToKICAgc2VydmljZV93b3JrZXJfaGVhZGVy
ID0gcmVxdWVzdC5oZWFkZXJzLmdldCgnc2VydmljZS13b3JrZXInKQotCi0gIGlmICdoZWFkZXIn
IGluIHJlcXVlc3QuR0VUIGFuZCBzZXJ2aWNlX3dvcmtlcl9oZWFkZXIgIT0gJ3NjcmlwdCc6Cisg
IGlmIHNlcnZpY2Vfd29ya2VyX2hlYWRlciA9PSAnc2NyaXB0JzoKKyAgICBib2R5ID0gJy8vIFJl
cXVlc3QgaGFzIGBTZXJ2aWNlLVdvcmtlcjogc2NyaXB0YCBoZWFkZXInCisgICAgcmV0dXJuIDIw
MCwgWygnQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2phdmFzY3JpcHQnKV0sIGJvZHkKKyAg
ZWxzZToKICAgICByZXR1cm4gNDAwLCBbKCdDb250ZW50LVR5cGUnLCAndGV4dC9wbGFpbicpXSwg
J0JhZCBSZXF1ZXN0JwotCi0gIGlmICduby1oZWFkZXInIGluIHJlcXVlc3QuR0VUIGFuZCBzZXJ2
aWNlX3dvcmtlcl9oZWFkZXIgPT0gJ3NjcmlwdCc6Ci0gICAgcmV0dXJuIDQwMCwgWygnQ29udGVu
dC1UeXBlJywgJ3RleHQvcGxhaW4nKV0sICdCYWQgUmVxdWVzdCcKLQotICAjIG5vLWNhY2hlIGl0
c2VsZiB0byBlbnN1cmUgdGhlIHVzZXIgYWdlbnQgZmluZHMgYSBuZXcgdmVyc2lvbiBmb3IgZWFj
aAotICAjIHVwZGF0ZS4KLSAgaGVhZGVycyA9IFsoJ0NhY2hlLUNvbnRyb2wnLCAnbm8tY2FjaGUs
IG11c3QtcmV2YWxpZGF0ZScpLAotICAgICAgICAgICAgICgnUHJhZ21hJywgJ25vLWNhY2hlJyks
Ci0gICAgICAgICAgICAgKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vamF2YXNjcmlwdCcp
XQotICBib2R5ID0gJy8qIFRoaXMgaXMgYSBzZXJ2aWNlIHdvcmtlciBzY3JpcHQgKi9cbicKLQot
ICBpZiAnaW1wb3J0JyBpbiByZXF1ZXN0LkdFVDoKLSAgICBib2R5ICs9ICJpbXBvcnRTY3JpcHRz
KCclcycpOyIgJSByZXF1ZXN0LkdFVFsnaW1wb3J0J10KLQotICByZXR1cm4gMjAwLCBoZWFkZXJz
LCBib2R5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvc2tpcC13YWl0
aW5nLWluc3RhbGxlZC13b3JrZXIuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvc2tp
cC13YWl0aW5nLWluc3RhbGxlZC13b3JrZXIuanMKaW5kZXggNmY3MDA4YmRkY2RmYTA0NGRiZWRk
MmU4ZjJhY2ViODllYzk4MGE3MS4uYjQ4ZDUwMmIxMzYwNjYzYjYyMDYzYjdiMGRhMGM5NmNmNjM4
OTkyYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3NraXAtd2FpdGlu
Zy1pbnN0YWxsZWQtd29ya2VyLmpzCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9z
a2lwLXdhaXRpbmctaW5zdGFsbGVkLXdvcmtlci5qcwpAQCAtMjEsNyArMjEsNyBAQCBzZWxmLmFk
ZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCBmdW5jdGlvbihldmVudCkgewogCiAgICAgICAgICAg
aWYgKHNlbGYucmVnaXN0cmF0aW9uLmFjdGl2ZS5zdGF0ZSAhPT0gJ2FjdGl2YXRpbmcnKSB7CiAg
ICAgICAgICAgICBwb3J0LnBvc3RNZXNzYWdlKAotICAgICAgICAgICAgICAgICdGQUlMOiBQcm9t
aXNlIHNob3VsZCBiZSByZXNvbHZlZCBiZWZvcmUgU2VydmljZVdvcmtlciNzdGF0ZSBpcyBzZXQg
dG8gYWN0aXZhdGVkJyk7CisgICAgICAgICAgICAgICAgJ0ZBSVRMOiBQcm9taXNlIHNob3VsZCBi
ZSByZXNvbHZlZCBiZWZvcmUgU2VydmljZVdvcmtlciNzdGF0ZSBpcyBzZXQgdG8gYWN0aXZhdGVk
Jyk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgfQogCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvc3RhbGxpbmctc2VydmljZS13b3JrZXIuanMgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvc3RhbGxpbmctc2VydmljZS13b3JrZXIuanMKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZkZjFlNmNhYzA0ZTE2NTFmMzBkOTYwODk3ZGE4NzQw
YTQwYzkxMzguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3N0YWxsaW5nLXNlcnZpY2Utd29ya2VyLmpzCisr
KyAvZGV2L251bGwKQEAgLTEsNTQgKzAsMCBAQAotYXN5bmMgZnVuY3Rpb24gcG9zdF9tZXNzYWdl
X3RvX2NsaWVudChyb2xlLCBtZXNzYWdlLCBwb3J0cykgewotICAgIChhd2FpdCBjbGllbnRzLm1h
dGNoQWxsKCkpLmZvckVhY2goY2xpZW50ID0+IHsKLSAgICAgICAgaWYgKG5ldyBVUkwoY2xpZW50
LnVybCkuc2VhcmNoUGFyYW1zLmdldCgncm9sZScpID09PSByb2xlKSB7Ci0gICAgICAgICAgICBj
bGllbnQucG9zdE1lc3NhZ2UobWVzc2FnZSwgcG9ydHMpOwotICAgICAgICB9Ci0gICAgfSk7Ci19
Ci0KLWFzeW5jIGZ1bmN0aW9uIHBvc3RfbWVzc2FnZV90b19jaGlsZChtZXNzYWdlLCBwb3J0cykg
ewotICAgIGF3YWl0IHBvc3RfbWVzc2FnZV90b19jbGllbnQoJ2NoaWxkJywgbWVzc2FnZSwgcG9y
dHMpOwotfQotCi1mdW5jdGlvbiBwaW5nX21lc3NhZ2UoZGF0YSkgewotICAgIHJldHVybiB7IHR5
cGU6ICdwaW5nJywgZGF0YSB9OwotfQotCi1zZWxmLm9ubWVzc2FnZSA9IGV2ZW50ID0+IHsKLSAg
ICBjb25zdCBtZXNzYWdlID0gcGluZ19tZXNzYWdlKGV2ZW50LmRhdGEpOwotICAgIHBvc3RfbWVz
c2FnZV90b19jaGlsZChtZXNzYWdlKTsKLSAgICBwb3N0X21lc3NhZ2VfdG9fcGFyZW50KG1lc3Nh
Z2UpOwotfQotCi1hc3luYyBmdW5jdGlvbiBwb3N0X21lc3NhZ2VfdG9fcGFyZW50KG1lc3NhZ2Us
IHBvcnRzKSB7Ci0gICAgYXdhaXQgcG9zdF9tZXNzYWdlX3RvX2NsaWVudCgncGFyZW50JywgbWVz
c2FnZSwgcG9ydHMpOwotfQotCi1mdW5jdGlvbiBmZXRjaF9tZXNzYWdlKGtleSkgewotICAgIHJl
dHVybiB7IHR5cGU6ICdmZXRjaCcsIGtleSB9OwotfQotCi0vLyBTZW5kIGEgbWVzc2FnZSB0byB0
aGUgcGFyZW50IGFsb25nIHdpdGggYSBNZXNzYWdlUG9ydCB0byByZXNwb25kCi0vLyB3aXRoLgot
ZnVuY3Rpb24gcmVwb3J0X2ZldGNoX3JlcXVlc3Qoa2V5KSB7Ci0gICAgY29uc3QgY2hhbm5lbCA9
IG5ldyBNZXNzYWdlQ2hhbm5lbCgpOwotICAgIGNvbnN0IHJlcGx5ID0gbmV3IFByb21pc2UocmVz
b2x2ZSA9PiB7Ci0gICAgICAgIGNoYW5uZWwucG9ydDEub25tZXNzYWdlID0gcmVzb2x2ZTsKLSAg
ICB9KS50aGVuKGV2ZW50ID0+IGV2ZW50LmRhdGEpOwotICAgIHJldHVybiBwb3N0X21lc3NhZ2Vf
dG9fcGFyZW50KGZldGNoX21lc3NhZ2Uoa2V5KSwgW2NoYW5uZWwucG9ydDJdKS50aGVuKCgpID0+
IHJlcGx5KTsKLX0KLQotZnVuY3Rpb24gcmVzcG9uZF93aXRoX3NjcmlwdChzY3JpcHQpIHsKLSAg
ICByZXR1cm4gbmV3IFJlc3BvbnNlKG5ldyBCbG9iKHNjcmlwdCwgeyB0eXBlOiAndGV4dC9qYXZh
c2NyaXB0JyB9KSk7Ci19Ci0KLS8vIFdoZW5ldmVyIGEgY29udHJvbGxlZCBkb2N1bWVudCByZXF1
ZXN0cyBhIFVSTCB3aXRoIGEgJ2tleScgc2VhcmNoCi0vLyBwYXJhbWV0ZXIgd2UgcmVwb3J0IHRo
ZSByZXF1ZXN0IHRvIHRoZSBwYXJlbnQgZnJhbWUgYW5kIHdhaXQgZm9yCi0vLyBhIHJlc3BvbnNl
LiBUaGUgY29udGVudCBvZiB0aGUgcmVzcG9uc2UgaXMgdGhlbiB1c2VkIHRvIHJlc3BvbmQgdG8K
LS8vIHRoZSBmZXRjaCByZXF1ZXN0LgotYWRkRXZlbnRMaXN0ZW5lcignZmV0Y2gnLCBldmVudCA9
PiB7Ci0gICAgbGV0IGtleSA9IG5ldyBVUkwoZXZlbnQucmVxdWVzdC51cmwpLnNlYXJjaFBhcmFt
cy5nZXQoJ2tleScpOwotICAgIGlmIChrZXkpIHsKLSAgICAgICAgZXZlbnQucmVzcG9uZFdpdGgo
cmVwb3J0X2ZldGNoX3JlcXVlc3Qoa2V5KS50aGVuKHJlc3BvbmRfd2l0aF9zY3JpcHQpKTsKLSAg
ICB9Ci19KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy90ZXN0LWhl
bHBlcnMuc3ViLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3Rlc3QtaGVscGVycy5z
dWIuanMKaW5kZXggYWY4ZGFkM2E1YmU4YWE4MzE5MDBiMTgzYWQ3ZWU5YTEwNDE3YmExYS4uN2Vm
ZGUzNTRhOGY5YjNiMTU3OTcyZGNhOGU1YTNjNWI1ZWI0MTE2YSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvcmVzb3VyY2VzL3Rlc3QtaGVscGVycy5zdWIuanMKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvcmVzb3VyY2VzL3Rlc3QtaGVscGVycy5zdWIuanMKQEAgLTc1LDExICs3NSw5IEBA
IGZ1bmN0aW9uIHdhaXRfZm9yX3VwZGF0ZSh0ZXN0LCByZWdpc3RyYXRpb24pIHsKICAgfQogCiAg
IHJldHVybiBuZXcgUHJvbWlzZSh0ZXN0LnN0ZXBfZnVuYyhmdW5jdGlvbihyZXNvbHZlKSB7Ci0g
ICAgICB2YXIgaGFuZGxlciA9IHRlc3Quc3RlcF9mdW5jKGZ1bmN0aW9uKCkgewotICAgICAgICBy
ZWdpc3RyYXRpb24ucmVtb3ZlRXZlbnRMaXN0ZW5lcigndXBkYXRlZm91bmQnLCBoYW5kbGVyKTsK
LSAgICAgICAgcmVzb2x2ZShyZWdpc3RyYXRpb24uaW5zdGFsbGluZyk7Ci0gICAgICB9KTsKLSAg
ICAgIHJlZ2lzdHJhdGlvbi5hZGRFdmVudExpc3RlbmVyKCd1cGRhdGVmb3VuZCcsIGhhbmRsZXIp
OworICAgICAgcmVnaXN0cmF0aW9uLmFkZEV2ZW50TGlzdGVuZXIoJ3VwZGF0ZWZvdW5kJywgdGVz
dC5zdGVwX2Z1bmMoZnVuY3Rpb24oKSB7CisgICAgICAgICAgcmVzb2x2ZShyZWdpc3RyYXRpb24u
aW5zdGFsbGluZyk7CisgICAgICAgIH0pKTsKICAgICB9KSk7CiB9CiAKQEAgLTI3OCwzMyArMjc2
LDMgQEAgYXN5bmMgZnVuY3Rpb24gd2FpdF9mb3JfYWN0aXZhdGlvbl9vbl9kdW1teV9zY29wZSh0
LCB3aW5kb3dfb3Jfd29ya2VyZ2xvYmFsc2NvcGUKICAgYXdhaXQgd2FpdF9mb3Jfc3RhdGUodCwg
cmVnaXN0cmF0aW9uLmluc3RhbGxpbmcsICdhY3RpdmF0ZWQnKTsKICAgYXdhaXQgcmVnaXN0cmF0
aW9uLnVucmVnaXN0ZXIoKTsKIH0KLQotLy8gVGhpcyBpbnN0YWxscyByZXNvdXJjZXMvYXBwY2Fj
aGUtb3JkZXJpbmcubWFuaWZlc3QuCi1mdW5jdGlvbiBpbnN0YWxsX2FwcGNhY2hlX29yZGVyaW5n
X21hbmlmZXN0KCkgewotICBsZXQgcmVzb2x2ZV9pbnN0YWxsX2FwcGNhY2hlOwotICBsZXQgcmVq
ZWN0X2luc3RhbGxfYXBwY2FjaGU7Ci0KLSAgLy8gVGhpcyBpcyBub3RpZmllZCBieSB0aGUgY2hp
bGQgaWZyYW1lLCBpLmUuIGFwcGNhY2hlLW9yZGVyaW5nLmluc3RhbGwuaHRtbCwKLSAgLy8gdGhh
dCdzIHRvIGJlIGNyZWF0ZWQgYmVsb3cuCi0gIHdpbmRvdy5ub3RpZnlfYXBwY2FjaGVfaW5zdGFs
bGVkID0gc3VjY2VzcyA9PiB7Ci0gICAgaWYgKHN1Y2Nlc3MpCi0gICAgICByZXNvbHZlX2luc3Rh
bGxfYXBwY2FjaGUoKTsKLSAgICBlbHNlCi0gICAgICByZWplY3RfaW5zdGFsbF9hcHBjYWNoZSgp
OwotICB9OwotCi0gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7Ci0g
ICAgICBjb25zdCBmcmFtZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lmcmFtZScpOwotICAg
ICAgZnJhbWUuc3JjID0gJ3Jlc291cmNlcy9hcHBjYWNoZS1vcmRlcmluZy5pbnN0YWxsLmh0bWwn
OwotICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChmcmFtZSk7Ci0gICAgICByZXNvbHZl
X2luc3RhbGxfYXBwY2FjaGUgPSBmdW5jdGlvbigpIHsKLSAgICAgICAgICBkb2N1bWVudC5ib2R5
LnJlbW92ZUNoaWxkKGZyYW1lKTsKLSAgICAgICAgICByZXNvbHZlKCk7Ci0gICAgICAgIH07Ci0g
ICAgICByZWplY3RfaW5zdGFsbF9hcHBjYWNoZSA9IGZ1bmN0aW9uKCkgewotICAgICAgICAgIGRv
Y3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZnJhbWUpOwotICAgICAgICAgIHJlamVjdCgpOwotICAg
ICAgICB9OwotICB9KTsKLX0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3Vy
Y2VzL3Rlc3QtcmVxdWVzdC1oZWFkZXJzLXdvcmtlci5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jl
c291cmNlcy90ZXN0LXJlcXVlc3QtaGVhZGVycy13b3JrZXIuanMKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDcxYWZmNWU1MDM3NDVmYWExMzc2ZGZiMzU5MTE5MDIzY2IxYmNmYzEuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvcmVzb3VyY2VzL3Rlc3QtcmVxdWVzdC1oZWFkZXJzLXdvcmtlci5qcworKysgL2Rldi9u
dWxsCkBAIC0xLDcgKzAsMCBAQAotLy8gVGhlIHNlcnZlciBpbmplY3RzIHRoZSByZXF1ZXN0IGhl
YWRlcnMgaGVyZSBhcyBhIEpTT04gc3RyaW5nLgotY29uc3QgaGVhZGVyc0FzSnNvbiA9IGAlSEVB
REVSUyVgOwotY29uc3QgaGVhZGVycyA9IEpTT04ucGFyc2UoaGVhZGVyc0FzSnNvbik7Ci0KLXNl
bGYuYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIGFzeW5jIChlKSA9PiB7Ci0gIGUuc291cmNl
LnBvc3RNZXNzYWdlKGhlYWRlcnMpOwotfSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9yZXNvdXJjZXMvdGVzdC1yZXF1ZXN0LWhlYWRlcnMtd29ya2VyLnB5IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvcmVzb3VyY2VzL3Rlc3QtcmVxdWVzdC1oZWFkZXJzLXdvcmtlci5weQpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggNTY2NmYxOWU3OTA0YjAwN2FjNWMzZTRlZDk1NjE3ZDlhZmZh
OTJjZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvdGVzdC1yZXF1ZXN0LWhlYWRlcnMtd29ya2VyLnB5Cisr
KyAvZGV2L251bGwKQEAgLTEsMTYgKzAsMCBAQAotaW1wb3J0IGpzb24KLWltcG9ydCBvcwotCi1k
ZWYgbWFpbihyZXF1ZXN0LCByZXNwb25zZSk6Ci0gIHBhdGggPSBvcy5wYXRoLmpvaW4ob3MucGF0
aC5kaXJuYW1lKF9fZmlsZV9fKSwKLSAgICAgICAgICAgICAgICAgICAgICAidGVzdC1yZXF1ZXN0
LWhlYWRlcnMtd29ya2VyLmpzIikKLSAgYm9keSA9IG9wZW4ocGF0aCwgInJiIikucmVhZCgpCi0K
LSAgZGF0YSA9IHtrZXk6cmVxdWVzdC5oZWFkZXJzW2tleV0gZm9yIGtleSx2YWx1ZSBpbiByZXF1
ZXN0LmhlYWRlcnMuaXRlcml0ZW1zKCl9Ci0gIGJvZHkgPSBib2R5LnJlcGxhY2UoIiVIRUFERVJT
JSIsIGpzb24uZHVtcHMoZGF0YSkpCi0KLSAgaGVhZGVycyA9IFtdCi0gIGhlYWRlcnMuYXBwZW5k
KCgiRVRhZyIsICJldGFnIikpCi0gIGhlYWRlcnMuYXBwZW5kKCgiQ29udGVudC1UeXBlIiwgJ3Rl
eHQvamF2YXNjcmlwdCcpKQotCi0gIHJldHVybiBoZWFkZXJzLCBib2R5CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvdHJpY2tsZS5weSBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L3Jlc291cmNlcy90cmlja2xlLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzMTll
Y2QyMWY0NTAzY2NmMmY5MzI2YmRmNTNjMDEwMDg5ZWVlNWQyLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy90
cmlja2xlLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMTQgKzAsMCBAQAotaW1wb3J0IHRpbWUKLQot
ZGVmIG1haW4ocmVxdWVzdCwgcmVzcG9uc2UpOgotICAgIGRlbGF5ID0gZmxvYXQocmVxdWVzdC5H
RVQuZmlyc3QoIm1zIiwgNTAwKSkgLyAxRTMKLSAgICBjb3VudCA9IGludChyZXF1ZXN0LkdFVC5m
aXJzdCgiY291bnQiLCA1MCkpCi0gICAgIyBSZWFkIHJlcXVlc3QgYm9keQotICAgIHJlcXVlc3Qu
Ym9keQotICAgIHRpbWUuc2xlZXAoZGVsYXkpCi0gICAgcmVzcG9uc2UuaGVhZGVycy5zZXQoIkNv
bnRlbnQtdHlwZSIsICJ0ZXh0L3BsYWluIikKLSAgICByZXNwb25zZS53cml0ZV9zdGF0dXNfaGVh
ZGVycygpCi0gICAgdGltZS5zbGVlcChkZWxheSk7Ci0gICAgZm9yIGkgaW4geHJhbmdlKGNvdW50
KToKLSAgICAgICAgcmVzcG9uc2Uud3JpdGVyLndyaXRlX2NvbnRlbnQoIlRFU1RfVFJJQ0tMRVxu
IikKLSAgICAgICAgdGltZS5zbGVlcChkZWxheSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3Jlc291cmNlcy91cGRhdGUtZHVyaW5nLWluc3RhbGxhdGlvbi13b3JrZXIuanMgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvdXBkYXRlLWR1cmluZy1pbnN0YWxsYXRpb24td29ya2Vy
LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzZjg5ODgxYzA0Mzg0NTkwYjhiMTMy
YzM5Mjk3NzI1NmJmYjg0N2VkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy91cGRhdGUtZHVyaW5nLWluc3Rh
bGxhdGlvbi13b3JrZXIuanMKKysrIC9kZXYvbnVsbApAQCAtMSw1NyArMCwwIEBACi0ndXNlIHN0
cmljdCc7Ci0KLWNvbnN0IGluc3RhbGxFdmVudEZpcmVkID0gbmV3IFByb21pc2UocmVzb2x2ZSA9
PiB7Ci0gIHNlbGYuZmlyZUluc3RhbGxFdmVudCA9IHJlc29sdmU7Ci19KTsKLQotY29uc3QgaW5z
dGFsbEZpbmlzaGVkID0gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7Ci0gIHNlbGYuZmluaXNoSW5z
dGFsbCA9IHJlc29sdmU7Ci19KTsKLQotYWRkRXZlbnRMaXN0ZW5lcignaW5zdGFsbCcsIGV2ZW50
ID0+IHsKLSAgZmlyZUluc3RhbGxFdmVudCgpOwotICBldmVudC53YWl0VW50aWwoaW5zdGFsbEZp
bmlzaGVkKTsKLX0pOwotCi1hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgZXZlbnQgPT4gewot
ICAvLyBVc2UgYSBkZWRpY2F0ZWQgTWVzc2FnZUNoYW5uZWwgZm9yIGV2ZXJ5IHJlcXVlc3Qgc28g
c2VuZGVycyBjYW4gd2FpdCBmb3IKLSAgLy8gaW5kaXZpZHVhbCByZXF1ZXN0cyB0byBmaW5pc2gs
IGFuZCBjb25jdXJyZW50IHJlcXVlc3RzICh0byBkaWZmZXJlbnQKLSAgLy8gd29ya2VycykgZG9u
J3QgY2F1c2UgcmFjZSBjb25kaXRpb25zLgotICBjb25zdCBwb3J0ID0gZXZlbnQuZGF0YTsKLSAg
cG9ydC5vbm1lc3NhZ2UgPSAoZXZlbnQpID0+IHsKLSAgICBzd2l0Y2ggKGV2ZW50LmRhdGEpIHsK
LSAgICAgIGNhc2UgJ2F3YWl0SW5zdGFsbEV2ZW50JzoKLSAgICAgICAgaW5zdGFsbEV2ZW50Rmly
ZWQudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBwb3J0LnBvc3RNZXNzYWdlKCdpbnN0YWxsRXZl
bnRGaXJlZCcpOwotICAgICAgICB9KTsKLSAgICAgICAgYnJlYWs7Ci0KLSAgICAgIGNhc2UgJ2Zp
bmlzaEluc3RhbGwnOgotICAgICAgICBpbnN0YWxsRmluaXNoZWQudGhlbigoKSA9PiB7Ci0gICAg
ICAgICAgICBwb3J0LnBvc3RNZXNzYWdlKCdpbnN0YWxsRmluaXNoZWQnKTsKLSAgICAgICAgfSk7
Ci0gICAgICAgIGZpbmlzaEluc3RhbGwoKTsKLSAgICAgICAgYnJlYWs7Ci0KLSAgICAgIGNhc2Ug
J2NhbGxVcGRhdGUnOiB7Ci0gICAgICAgIGNvbnN0IGNoYW5uZWwgPSBuZXcgTWVzc2FnZUNoYW5u
ZWwoKTsKLSAgICAgICAgcmVnaXN0cmF0aW9uLnVwZGF0ZSgpLnRoZW4oKCkgPT4gewotICAgICAg
ICAgICAgY2hhbm5lbC5wb3J0Mi5wb3N0TWVzc2FnZSh7Ci0gICAgICAgICAgICAgICAgc3VjY2Vz
czogdHJ1ZSwKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9KS5jYXRjaCgoZXhjZXB0aW9uKSA9
PiB7Ci0gICAgICAgICAgICBjaGFubmVsLnBvcnQyLnBvc3RNZXNzYWdlKHsKLSAgICAgICAgICAg
ICAgICBzdWNjZXNzOiBmYWxzZSwKLSAgICAgICAgICAgICAgICBleGNlcHRpb246IGV4Y2VwdGlv
bi5uYW1lLAotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0pOwotICAgICAgICBwb3J0LnBvc3RN
ZXNzYWdlKGNoYW5uZWwucG9ydDEsIFtjaGFubmVsLnBvcnQxXSk7Ci0gICAgICAgIGJyZWFrOwot
ICAgICAgfQotCi0gICAgICBkZWZhdWx0OgotICAgICAgICBwb3J0LnBvc3RNZXNzYWdlKCdVbmV4
cGVjdGVkIGNvbW1hbmQgJyArIGV2ZW50LmRhdGEpOwotICAgICAgICBicmVhazsKLSAgICB9Ci0g
IH07Ci19KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy91cGRhdGUt
ZHVyaW5nLWluc3RhbGxhdGlvbi13b3JrZXIucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJj
ZXMvdXBkYXRlLWR1cmluZy1pbnN0YWxsYXRpb24td29ya2VyLnB5CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA5NWU0NTIyMDA3YzFkMmJlMTQwNDVmNzU4MmViZTJiNTM0N2FiZDg3Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL3Jlc291cmNlcy91cGRhdGUtZHVyaW5nLWluc3RhbGxhdGlvbi13b3JrZXIucHkKKysr
IC9kZXYvbnVsbApAQCAtMSwxMSArMCwwIEBACi1pbXBvcnQgdGltZQotCi1kZWYgbWFpbihyZXF1
ZXN0LCByZXNwb25zZSk6Ci0gICAgaGVhZGVycyA9IFsoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNh
dGlvbi9qYXZhc2NyaXB0JyksCi0gICAgICAgICAgICAgICAoJ0NhY2hlLUNvbnRyb2wnLCAnbWF4
LWFnZT0wJyldCi0gICAgIyBBZGQgdGltZXN0YW1wIHRvIHRoZSB3b3JrZXIgc28gdXBkYXRlKCkg
ZmluZHMgYSBuZXcgd29ya2VyIGV2ZXJ5IHRpbWUuCi0gICAgYm9keSA9ICcnJwotLy8gJXMKLWlt
cG9ydFNjcmlwdHMoJ3VwZGF0ZS1kdXJpbmctaW5zdGFsbGF0aW9uLXdvcmtlci5qcycpOwotICAg
ICcnJy5zdHJpcCgpICUgdGltZS5jbG9jaygpCi0gICAgcmV0dXJuIGhlYWRlcnMsIGJvZHkKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy91cGRhdGUtZmV0Y2gtd29ya2Vy
LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3VwZGF0ZS1mZXRjaC13b3JrZXIucHkK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGYyOGUxYzA5NGU1MDFkMTgzN2RjNzU4NWU0
NGI5YjllOTM4ZTMzNDQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3VwZGF0ZS1mZXRjaC13b3JrZXIucHkK
KysrIC9kZXYvbnVsbApAQCAtMSwxOSArMCwwIEBACi1pbXBvcnQgdGltZQotCi1kZWYgbWFpbihy
ZXF1ZXN0LCByZXNwb25zZSk6Ci0gICAgIyBuby1jYWNoZSBpdHNlbGYgdG8gZW5zdXJlIHRoZSB1
c2VyIGFnZW50IGZpbmRzIGEgbmV3IHZlcnNpb24gZm9yIGVhY2ggdXBkYXRlLgotICAgIGhlYWRl
cnMgPSBbKCdDYWNoZS1Db250cm9sJywgJ25vLWNhY2hlLCBtdXN0LXJldmFsaWRhdGUnKSwKLSAg
ICAgICAgICAgICAgICgnUHJhZ21hJywgJ25vLWNhY2hlJyldCi0KLSAgICBjb250ZW50X3R5cGUg
PSAnJwotICAgIGV4dHJhX2JvZHkgPSAnJwotCi0gICAgY29udGVudF90eXBlID0gJ2FwcGxpY2F0
aW9uL2phdmFzY3JpcHQnCi0gICAgaGVhZGVycy5hcHBlbmQoKCdDb250ZW50LVR5cGUnLCBjb250
ZW50X3R5cGUpKQotCi0gICAgZXh0cmFfYm9keSA9ICJzZWxmLm9uZmV0Y2ggPSAoZXZlbnQpID0+
IHsgZXZlbnQucmVzcG9uZFdpdGgoZmV0Y2goZXZlbnQucmVxdWVzdCkpOyB9OyIKLQotICAgICMg
UmV0dXJuIGEgZGlmZmVyZW50IHNjcmlwdCBmb3IgZWFjaCBhY2Nlc3MuICBVc2UgLnRpbWUoKSBh
bmQgLmNsb2NrKCkgZm9yCi0gICAgIyBiZXN0IHRpbWUgcmVzb2x1dGlvbiBhY3Jvc3MgZGlmZmVy
ZW50IHBsYXRmb3Jtcy4KLSAgICByZXR1cm4gaGVhZGVycywgJy8qICVzICVzICovICVzJyAlICh0
aW1lLnRpbWUoKSwgdGltZS5jbG9jaygpLCBleHRyYV9ib2R5KQotCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvdXBkYXRlLW1pc3NpbmctaW1wb3J0LXNjcmlwdHMtaW1w
b3J0ZWQtd29ya2VyLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3VwZGF0ZS1taXNz
aW5nLWltcG9ydC1zY3JpcHRzLWltcG9ydGVkLXdvcmtlci5weQpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMmQ5NTM4N2ZjOTIzM2VkMTJmYTI2YjM2ZjA2YTk5Zjk3NzVlZDA4Yi4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9yZXNvdXJjZXMvdXBkYXRlLW1pc3NpbmctaW1wb3J0LXNjcmlwdHMtaW1wb3J0ZWQtd29y
a2VyLnB5CisrKyAvZGV2L251bGwKQEAgLTEsOSArMCwwIEBACi1kZWYgbWFpbihyZXF1ZXN0LCBy
ZXNwb25zZSk6Ci0gICAga2V5ID0gcmVxdWVzdC5HRVRbJ2tleSddCi0gICAgYWxyZWFkeV9yZXF1
ZXN0ZWQgPSByZXF1ZXN0LnNlcnZlci5zdGFzaC50YWtlKGtleSkKLQotICAgIGlmIGFscmVhZHlf
cmVxdWVzdGVkIGlzIE5vbmU6Ci0gICAgICAgIHJlcXVlc3Quc2VydmVyLnN0YXNoLnB1dChrZXks
IFRydWUpCi0gICAgICAgIHJldHVybiBbKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vamF2
YXNjcmlwdCcpXSwgJy8vIGluaXRpYWwgc2NyaXB0JwotCi0gICAgcmVzcG9uc2Uuc3RhdHVzID0g
KDQwNCwgJ05vdCBmb3VuZDogc2hvdWxkIG5vdCBoYXZlIGJlZW4gYWJsZSB0byBpbXBvcnQgdGhp
cyBzY3JpcHQgdHdpY2UhJykKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNl
cy91cGRhdGUtbWlzc2luZy1pbXBvcnQtc2NyaXB0cy1tYWluLXdvcmtlci5weSBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL3Jlc291cmNlcy91cGRhdGUtbWlzc2luZy1pbXBvcnQtc2NyaXB0cy1tYWluLXdv
cmtlci5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjFkMmY2ZmNiNzgyNzFiZjUz
M2VjOGVjNGFhNDE1YzIxYzhkMTVjMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvdXBkYXRlLW1pc3Npbmct
aW1wb3J0LXNjcmlwdHMtbWFpbi13b3JrZXIucHkKKysrIC9kZXYvbnVsbApAQCAtMSwxMyArMCww
IEBACi1kZWYgbWFpbihyZXF1ZXN0LCByZXNwb25zZSk6Ci0gICAga2V5ID0gcmVxdWVzdC5HRVRb
J2tleSddCi0gICAgYWxyZWFkeV9yZXF1ZXN0ZWQgPSByZXF1ZXN0LnNlcnZlci5zdGFzaC50YWtl
KGtleSkKLQotICAgIGhlYWRlciA9IFsoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qYXZh
c2NyaXB0JyldCi0gICAgaW5pdGlhbF9zY3JpcHQgPSAnaW1wb3J0U2NyaXB0cygiLi91cGRhdGUt
bWlzc2luZy1pbXBvcnQtc2NyaXB0cy1pbXBvcnRlZC13b3JrZXIucHk/a2V5PXswfSIpJy5mb3Jt
YXQoa2V5KQotICAgIHVwZGF0ZWRfc2NyaXB0ID0gJy8vIHJlbW92ZWQgaW1wb3J0U2NyaXB0cygp
JwotCi0gICAgaWYgYWxyZWFkeV9yZXF1ZXN0ZWQgaXMgTm9uZToKLSAgICAgICAgcmVxdWVzdC5z
ZXJ2ZXIuc3Rhc2gucHV0KGtleSwgVHJ1ZSkKLSAgICAgICAgcmV0dXJuIGhlYWRlciwgaW5pdGlh
bF9zY3JpcHQKLQotICAgIHJldHVybiBoZWFkZXIsIHVwZGF0ZWRfc2NyaXB0CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvdXBkYXRlLXJlZ2lzdHJhdGlvbi13aXRoLXR5
cGUucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvdXBkYXRlLXJlZ2lzdHJhdGlvbi13
aXRoLXR5cGUucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRmNmQ1YWUyODIwMGUw
OWNiYTBlMjVjMjc2OTE2OGJjMTYyMmEzNjAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3VwZGF0ZS1yZWdp
c3RyYXRpb24td2l0aC10eXBlLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMzMgKzAsMCBAQAotZGVm
IGNsYXNzaWNfc2NyaXB0KCk6Ci0gICAgcmV0dXJuICIiIgotICAgICAgaW1wb3J0U2NyaXB0cygn
Li9pbXBvcnRlZC1jbGFzc2ljLXNjcmlwdC5qcycpOwotICAgICAgc2VsZi5vbm1lc3NhZ2UgPSBl
ID0+IHsKLSAgICAgICAgZS5zb3VyY2UucG9zdE1lc3NhZ2UoaW1wb3J0ZWQpOwotICAgICAgfTsK
LSAgICAgICIiIgotCi1kZWYgbW9kdWxlX3NjcmlwdCgpOgotICAgIHJldHVybiAiIiIKLSAgICAg
IGltcG9ydCAqIGFzIG1vZHVsZSBmcm9tICcuL2ltcG9ydGVkLW1vZHVsZS1zY3JpcHQuanMnOwot
ICAgICAgc2VsZi5vbm1lc3NhZ2UgPSBlID0+IHsKLSAgICAgICAgZS5zb3VyY2UucG9zdE1lc3Nh
Z2UobW9kdWxlLmltcG9ydGVkKTsKLSAgICAgIH07Ci0gICAgICAiIiIKLQotIyBSZXR1cm5zIHRo
ZSBjbGFzc2ljIHNjcmlwdCBmb3IgYSBmaXJzdCByZXF1ZXN0IGFuZAotIyByZXR1cm5zIHRoZSBt
b2R1bGUgc2NyaXB0IGZvciBzZWNvbmQgYW5kIHN1YnNlcXVlbnQgcmVxdWVzdHMuCi1kZWYgbWFp
bihyZXF1ZXN0LCByZXNwb25zZSk6Ci0gICAgaGVhZGVycyA9IFsoJ0NvbnRlbnQtVHlwZScsICdh
cHBsaWNhdGlvbi9qYXZhc2NyaXB0JyksCi0gICAgICAgICAgICAgICAoJ1ByYWdtYScsICduby1z
dG9yZScpLAotICAgICAgICAgICAgICAgKCdDYWNoZS1Db250cm9sJywgJ25vLXN0b3JlJyldCi0K
LSAgICBjbGFzc2ljX2ZpcnN0ID0gcmVxdWVzdC5HRVRbJ2NsYXNzaWNfZmlyc3QnXQotICAgIGtl
eSA9IHJlcXVlc3QuR0VUWydrZXknXQotICAgIHJlcXVlc3RlZF9vbmNlID0gcmVxdWVzdC5zZXJ2
ZXIuc3Rhc2gudGFrZShrZXkpCi0gICAgaWYgcmVxdWVzdGVkX29uY2UgaXMgTm9uZToKLSAgICAg
ICAgcmVxdWVzdC5zZXJ2ZXIuc3Rhc2gucHV0KGtleSwgVHJ1ZSkKLSAgICAgICAgYm9keSA9IGNs
YXNzaWNfc2NyaXB0KCkgaWYgY2xhc3NpY19maXJzdCA9PSAnMScgZWxzZSBtb2R1bGVfc2NyaXB0
KCkKLSAgICBlbHNlOgotICAgICAgICBib2R5ID0gbW9kdWxlX3NjcmlwdCgpIGlmIGNsYXNzaWNf
Zmlyc3QgPT0gJzEnIGVsc2UgY2xhc3NpY19zY3JpcHQoKQotCi0gICAgcmV0dXJuIDIwMCwgaGVh
ZGVycywgYm9keQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3czYy1p
bXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3czYy1pbXBvcnQubG9nCmlu
ZGV4IDllYmM4YmMzMWZmY2NkZTc3MzYzZTk4NjExNzNkMjVlNzVhMmQyMDIuLmExZjc1MDk3MWE5
ZTMyNzFjMjBhZGQ0MWQ5MmM3NGMyMmY0ZjYwZTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3Jlc291cmNlcy93M2MtaW1wb3J0LmxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNv
dXJjZXMvdzNjLWltcG9ydC5sb2cKQEAgLTM4LDcgKzM4LDYgQEAgTGlzdCBvZiBmaWxlczoKIC9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvY2xhaW0td29ya2VyLWZldGNoLWlmcmFtZS5odG1s
CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2NsYWltLXdvcmtlci1mZXRjaC13b3JrZXIu
anMKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvY2xhaW0td29ya2VyLmpzCi0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvcmVzb3VyY2VzL2NsYXNzaWMtd29ya2VyLmpzCiAvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvcmVzb3VyY2VzL2NsaWVudC1pZC13b3JrZXIuanMKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNv
dXJjZXMvY2xpZW50LW5hdmlnYXRlLWZyYW1lLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNv
dXJjZXMvY2xpZW50LW5hdmlnYXRlLXdvcmtlci5qcwpAQCAtNTAsNyArNDksNiBAQCBMaXN0IG9m
IGZpbGVzOgogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9jbGllbnRzLWdldC1jcm9zcy1v
cmlnaW4tZnJhbWUuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9jbGllbnRzLWdl
dC1mcmFtZS5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2NsaWVudHMtZ2V0LW90
aGVyLW9yaWdpbi5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2NsaWVudHMtZ2V0
LXJlc3VsdGluZ0NsaWVudElkLXdvcmtlci5qcwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNl
cy9jbGllbnRzLWdldC13b3JrZXIuanMKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvY2xp
ZW50cy1tYXRjaGFsbC1jbGllbnQtdHlwZXMtZGVkaWNhdGVkLXdvcmtlci5qcwogL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL3Jlc291cmNlcy9jbGllbnRzLW1hdGNoYWxsLWNsaWVudC10eXBlcy1pZnJhbWUu
aHRtbApAQCAtNzcsNyArNzUsNiBAQCBMaXN0IG9mIGZpbGVzOgogL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L3Jlc291cmNlcy9lbXB0eS13b3JrZXIuanMKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMv
ZW1wdHkuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9lbXB0eS5qcwotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL3Jlc291cmNlcy9lbmFibGUtY2xpZW50LW1lc3NhZ2UtcXVldWUuaHRtbAog
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9lbmQtdG8tZW5kLXdvcmtlci5qcwogL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL3Jlc291cmNlcy9ldmVudHMtd29ya2VyLmpzCiAvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvcmVzb3VyY2VzL2V4dGVuZGFibGUtZXZlbnQtYXN5bmMtd2FpdHVudGlsLmpzCkBAIC04NSw3
ICs4Miw2IEBAIExpc3Qgb2YgZmlsZXM6CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2Zh
aWwtb24tZmV0Y2gtd29ya2VyLmpzCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNo
LWFjY2Vzcy1jb250cm9sLWxvZ2luLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMv
ZmV0Y2gtYWNjZXNzLWNvbnRyb2wucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0
Y2gtY2FudmFzLXRhaW50aW5nLWRvdWJsZS13cml0ZS13b3JrZXIuanMKIC9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9yZXNvdXJjZXMvZmV0Y2gtY2FudmFzLXRhaW50aW5nLWlmcmFtZS5odG1sCiAvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWNhbnZhcy10YWludGluZy10ZXN0cy5qcwogL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1jb3JzLWV4cG9zZWQtaGVhZGVyLW5hbWVz
LXdvcmtlci5qcwpAQCAtMTQ2LDIzICsxNDIsMTYgQEAgTGlzdCBvZiBmaWxlczoKIC9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtcmV3cml0ZS13b3JrZXIuanMKIC9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtd2FpdHMtZm9yLWFjdGl2YXRlLXdvcmtlci5qcwogL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mcmFtZS1mb3ItZ2V0cmVnaXN0cmF0aW9ucy5odG1s
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2dldC1yZXN1bHRpbmdDbGllbnRJZC13b3Jr
ZXIuanMKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvaHR0cC10by1odHRwcy1yZWRpcmVj
dC1hbmQtcmVnaXN0ZXItaWZyYW1lLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMv
aWZyYW1lLXdpdGgtaW1hZ2UuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9pbW11
dGFibGUtcHJvdG90eXBlLXNlcnZpY2V3b3JrZXIuanMKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNv
dXJjZXMvaW1wb3J0LW1pbWUtdHlwZS13b3JrZXIucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNv
dXJjZXMvaW1wb3J0LXJlbGF0aXZlLnhzbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9p
bXBvcnQtc2NyaXB0cy1kaWZmLXJlc291cmNlLW1hcC13b3JrZXIuanMKIC9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9yZXNvdXJjZXMvaW1wb3J0LXNjcmlwdHMtZWNoby5weQotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L3Jlc291cmNlcy9pbXBvcnQtc2NyaXB0cy1nZXQucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNv
dXJjZXMvaW1wb3J0LXNjcmlwdHMtbWltZS10eXBlcy13b3JrZXIuanMKIC9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9yZXNvdXJjZXMvaW1wb3J0LXNjcmlwdHMtcmVkaXJlY3QtaW1wb3J0LmpzCiAvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvcmVzb3VyY2VzL2ltcG9ydC1zY3JpcHRzLXJlZGlyZWN0LXdvcmtlci5qcwog
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9pbXBvcnQtc2NyaXB0cy1yZXNvdXJjZS1tYXAt
d29ya2VyLmpzCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ltcG9ydC1zY3JpcHRzLXVw
ZGF0ZWQtZmxhZy13b3JrZXIuanMKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvaW1wb3J0
LXNjcmlwdHMtdmVyc2lvbi5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9pbXBvcnRl
ZC1jbGFzc2ljLXNjcmlwdC5qcwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9pbXBvcnRl
ZC1tb2R1bGUtc2NyaXB0LmpzCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2luZGV4ZWRk
Yi13b3JrZXIuanMKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvaW5zdGFsbC1ldmVudC10
eXBlLXdvcmtlci5qcwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9pbnN0YWxsLXdvcmtl
ci5odG1sCkBAIC0xODEsMTEgKzE3MCw5IEBAIExpc3Qgb2YgZmlsZXM6CiAvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvcmVzb3VyY2VzL2xvY2FsLXVybC1pbmhlcml0LWNvbnRyb2xsZXItd29ya2VyLmpzCiAv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL21hbGZvcm1lZC1odHRwLXJlc3BvbnNlLmFzaXMK
IC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvbWFsZm9ybWVkLXdvcmtlci5weQotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL3Jlc291cmNlcy9tZXNzYWdlLXZzLW1pY3JvdGFzay5odG1sCiAvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvcmVzb3VyY2VzL21pbWUtc25pZmZpbmctd29ya2VyLmpzCiAvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvcmVzb3VyY2VzL21pbWUtdHlwZS13b3JrZXIucHkKIC9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9yZXNvdXJjZXMvbWludC1uZXctd29ya2VyLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3Vy
Y2VzL21vZHVsZS13b3JrZXIuanMKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvbXVsdGlw
YXJ0LWltYWdlLWlmcmFtZS5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL211bHRp
cGFydC1pbWFnZS13b3JrZXIuanMKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvbXVsdGlw
YXJ0LWltYWdlLnB5CkBAIC0xOTksNyArMTg2LDYgQEAgTGlzdCBvZiBmaWxlczoKIC9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9yZXNvdXJjZXMvbmF2aWdhdGlvbi1yZWRpcmVjdC10by1odHRwLWlmcmFtZS5o
dG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL25hdmlnYXRpb24tcmVkaXJlY3QtdG8t
aHR0cC13b3JrZXIuanMKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvbmF2aWdhdGlvbi10
aW1pbmctd29ya2VyLmpzCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL25lc3RlZC1pZnJh
bWUtcGFyZW50Lmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvbmVzdGVkX2xvYWRf
d29ya2VyLmpzCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL25vdGlmaWNhdGlvbl9pY29u
LnB5CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL29iamVjdC1pbWFnZS1pcy1ub3QtaW50
ZXJjZXB0ZWQtaWZyYW1lLmh0bWwKQEAgLTIyNSw3ICsyMTEsNiBAQCBMaXN0IG9mIGZpbGVzOgog
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9wZXJmb3JtYW5jZS10aW1lbGluZS13b3JrZXIu
anMKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvcG9zdG1lc3NhZ2UtYmxvYi11cmwuanMK
IC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvcG9zdG1lc3NhZ2UtZGljdGlvbmFyeS10cmFu
c2ZlcmFibGVzLXdvcmtlci5qcwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9wb3N0bWVz
c2FnZS1lY2hvLXdvcmtlci5qcwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9wb3N0bWVz
c2FnZS1tc2dwb3J0LXRvLWNsaWVudC13b3JrZXIuanMKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNv
dXJjZXMvcG9zdG1lc3NhZ2UtdG8tY2xpZW50LXdvcmtlci5qcwogL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L3Jlc291cmNlcy9wb3N0bWVzc2FnZS10cmFuc2ZlcmFibGVzLXdvcmtlci5qcwpAQCAtMjc2LDI1
ICsyNjEsMTUgQEAgTGlzdCBvZiBmaWxlczoKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMv
c2tpcC13YWl0aW5nLXdvcmtlci5qcwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9zcXVh
cmUucG5nCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3NxdWFyZS5wbmcuc3ViLmhlYWRl
cnMKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvc3RhbGxpbmctc2VydmljZS13b3JrZXIu
anMKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvc3VjY2Vzcy5weQogL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL3Jlc291cmNlcy90ZXN0LWhlbHBlcnMuc3ViLmpzCi0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
cmVzb3VyY2VzL3Rlc3QtcmVxdWVzdC1oZWFkZXJzLXdvcmtlci5qcwotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3Jlc291cmNlcy90ZXN0LXJlcXVlc3QtaGVhZGVycy13b3JrZXIucHkKIC9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9yZXNvdXJjZXMvdGVzdGhhcm5lc3MtaGVscGVycy5qcwotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3Jlc291cmNlcy90cmlja2xlLnB5CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3Vu
cmVnaXN0ZXItY29udHJvbGxlci1wYWdlLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJj
ZXMvdXBkYXRlLWNsYWltLXdvcmtlci5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy91
cGRhdGUtZHVyaW5nLWluc3RhbGxhdGlvbi13b3JrZXIuanMKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9y
ZXNvdXJjZXMvdXBkYXRlLWR1cmluZy1pbnN0YWxsYXRpb24td29ya2VyLnB5Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvcmVzb3VyY2VzL3VwZGF0ZS1mZXRjaC13b3JrZXIucHkKIC9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9yZXNvdXJjZXMvdXBkYXRlLW1heC1hZ2VkLXdvcmtlci1pbXBvcnRlZC1zY3JpcHQucHkK
IC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvdXBkYXRlLW1heC1hZ2VkLXdvcmtlci5weQot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy91cGRhdGUtbWlzc2luZy1pbXBvcnQtc2NyaXB0
cy1pbXBvcnRlZC13b3JrZXIucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvdXBkYXRl
LW1pc3NpbmctaW1wb3J0LXNjcmlwdHMtbWFpbi13b3JrZXIucHkKIC9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9yZXNvdXJjZXMvdXBkYXRlLW5vY29va2llLXdvcmtlci5weQogL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L3Jlc291cmNlcy91cGRhdGUtcmVjb3Zlcnktd29ya2VyLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
cmVzb3VyY2VzL3VwZGF0ZS1yZWdpc3RyYXRpb24td2l0aC10eXBlLnB5CiAvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvcmVzb3VyY2VzL3VwZGF0ZS13b3JrZXIucHkKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNv
dXJjZXMvdXBkYXRlX3NoZWxsLnB5CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3Z0dC1m
cmFtZS5odG1sCkBAIC0zMTAsOCArMjg1LDMgQEAgTGlzdCBvZiBmaWxlczoKIC9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9yZXNvdXJjZXMvd29ya2VyLWxvYWQtaW50ZXJjZXB0b3IuanMKIC9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9yZXNvdXJjZXMvd29ya2VyLXRlc3RoYXJuZXNzLmpzCiAvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvcmVzb3VyY2VzL3dvcmtlcl9pbnRlcmNlcHRpb25fcmVkaXJlY3Rfd2Vid29ya2VyLnB5Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3hoci1pZnJhbWUuaHRtbAotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL3Jlc291cmNlcy94aHItcmVzcG9uc2UtdXJsLXdvcmtlci5qcwotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL3Jlc291cmNlcy94c2wtYmFzZS11cmwtaWZyYW1lLnhtbAotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3Jlc291cmNlcy94c2wtYmFzZS11cmwtd29ya2VyLmpzCi0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
cmVzb3VyY2VzL3hzbHQtcGFzcy54c2wKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jl
c291cmNlcy93b3JrZXItaW50ZXJjZXB0aW9uLWlmcmFtZS5odHRwcy5odG1sIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvcmVzb3VyY2VzL3dvcmtlci1pbnRlcmNlcHRpb24taWZyYW1lLmh0dHBzLmh0bWwK
aW5kZXggODQyMDRhM2VlNWRmMWZjM2E3MTc4NDIxNTA3MWIxNGYwYzY1ZjlmMi4uYWIxMGEwNzhm
M2Q2N2E4YzIxM2I4NTExYjhmZjVmZmNkZTkyMzc1YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvcmVzb3VyY2VzL3dvcmtlci1pbnRlcmNlcHRpb24taWZyYW1lLmh0dHBzLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3dvcmtlci1pbnRlcmNlcHRpb24taWZyYW1l
Lmh0dHBzLmh0bWwKQEAgLTEsNSArMSw0IEBACiA8c2NyaXB0IHNyYz0iL2NvbW1vbi9nZXQtaG9z
dC1pbmZvLnN1Yi5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFy
bmVzcy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0idGVzdC1oZWxwZXJzLnN1Yi5qcz9waXBl
PXN1YiI+PC9zY3JpcHQ+CiA8c2NyaXB0PgogdmFyIGhvc3RfaW5mbyA9IGdldF9ob3N0X2luZm8o
KTsKQEAgLTEyLDcgKzExLDcgQEAgZnVuY3Rpb24gYm9pbGVycGxhdGVfdGVzdCh1cmwsIG1zZykg
ewogICAgICAgICAgIHdvcmtlci5wb3N0TWVzc2FnZShtc2cpOwogICAgICAgICB9KQogICAgICAg
LnRoZW4oZnVuY3Rpb24oZGF0YSkgewotICAgICAgICAgIGFzc2VydF9lcXVhbHMoZGF0YSwgIlRo
aXMgbG9hZCB3YXMgc3VjY2Vzc2Z1bGx5IGludGVyY2VwdGVkLiIpOworICAgICAgICAgIHdpbmRv
dy5wYXJlbnQucG9zdE1lc3NhZ2Uoe3Jlc3VsdHM6IGRhdGF9LCBob3N0X2luZm9bJ0hUVFBTX09S
SUdJTiddKTsKICAgICAgICAgfSk7CiB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L3Jlc291cmNlcy93b3JrZXItbG9hZC1pbnRlcmNlcHRvci5qcyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L3Jlc291cmNlcy93b3JrZXItbG9hZC1pbnRlcmNlcHRvci5qcwppbmRleCBhNWY2NWMzMjE2ZTQ0
NjMyZmYwNTJiYWMwNDQ4MzE2ZjI1ZDQ0M2M2Li42OTU3NzdhNTE0ZjY1NjI4YjI1Zjc2NTQ5OTcw
ZGRmYmM4NTRmZWUzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvd29y
a2VyLWxvYWQtaW50ZXJjZXB0b3IuanMKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2Vz
L3dvcmtlci1sb2FkLWludGVyY2VwdG9yLmpzCkBAIC04LDggKzgsNiBAQCBzZWxmLm9uZmV0Y2gg
PSBmdW5jdGlvbihldmVudCkgewogICAgIGlmICh1cmwuaW5kZXhPZigic3ludGhlc2l6ZWQtcmVz
cG9uc2UudHh0IikgIT0gLTEpIHsKICAgICAgICAgZXZlbnQucmVzcG9uZFdpdGgobmV3IFJlc3Bv
bnNlKHJlc3BvbnNlX3RleHQpKTsKICAgICB9IGVsc2UgaWYgKHVybC5pbmRleE9mKCJzeW50aGVz
aXplZC1yZXNwb25zZS5qcyIpICE9IC0xKSB7Ci0gICAgICBldmVudC5yZXNwb25kV2l0aChuZXcg
UmVzcG9uc2UoCi0gICAgICAgICAgcmVzcG9uc2Vfc2NyaXB0LAotICAgICAgICAgIHtoZWFkZXJz
OiB7J0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qYXZhc2NyaXB0J319KSk7CisgICAgICAg
IGV2ZW50LnJlc3BvbmRXaXRoKG5ldyBSZXNwb25zZShyZXNwb25zZV9zY3JpcHQpKTsKICAgICB9
CiB9OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3dvcmtlci10ZXN0
aGFybmVzcy5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy93b3JrZXItdGVzdGhhcm5l
c3MuanMKaW5kZXggNzNlOTdiZTFlYWE0NGJiZTk2Zjg4MDFlMGM3NmMzNzc3MmFjN2QxZi4uZmRm
NTg2OGUzM2UyZmUzNTM0NDgxOGVjM2YxYTJlMDY4YjkwOTk2ZCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvcmVzb3VyY2VzL3dvcmtlci10ZXN0aGFybmVzcy5qcworKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9yZXNvdXJjZXMvd29ya2VyLXRlc3RoYXJuZXNzLmpzCkBAIC0yMCw3ICsyMCw3
IEBAIGltcG9ydFNjcmlwdHMoJy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMnKTsKICAgICB2YXIg
Y2FjaGVfbmFtZSA9IHNlbGYubG9jYXRpb24ucGF0aG5hbWUgKyAnLycgKyB1bmlxdWlmaWVyOwog
CiAgICAgdGVzdC5hZGRfY2xlYW51cChmdW5jdGlvbigpIHsKLSAgICAgICAgcmV0dXJuIHNlbGYu
Y2FjaGVzLmRlbGV0ZShjYWNoZV9uYW1lKTsKKyAgICAgICAgc2VsZi5jYWNoZXMuZGVsZXRlKGNh
Y2hlX25hbWUpOwogICAgICAgfSk7CiAKICAgICByZXR1cm4gc2VsZi5jYWNoZXMuZGVsZXRlKGNh
Y2hlX25hbWUpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMveGhyLWlm
cmFtZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3hoci1pZnJhbWUuaHRtbApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGM1N2JiYmM2NTg5ZDk3Mzg5MjRiMGFjYjkx
YjQ0MGVmYzE0MTYyMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMveGhyLWlmcmFtZS5odG1sCisrKyAvZGV2
L251bGwKQEAgLTEsMjMgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08bWV0YSBjaGFyc2V0PSJ1
dGYtOCI+Ci08dGl0bGU+aWZyYW1lIGZvciB4aHIgdGVzdHM8L3RpdGxlPgotPHNjcmlwdD4KLWFz
eW5jIGZ1bmN0aW9uIHhocih1cmwsIG9wdGlvbnMpIHsKLSAgcmV0dXJuIG5ldyBQcm9taXNlKChy
ZXNvbHZlLCByZWplY3QpID0+IHsKLSAgICBjb25zdCB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3Qo
KTsKLSAgICBjb25zdCBvcHRzID0gb3B0aW9ucyA/IG9wdGlvbnMgOiB7fTsKLSAgICB4aHIub25s
b2FkID0gKCkgPT4gewotICAgICAgcmVzb2x2ZSh4aHIpOwotICAgIH07Ci0gICAgeGhyLm9uZXJy
b3IgPSAoKSA9PiB7Ci0gICAgICByZWplY3QoJ3hociBmYWlsZWQnKTsKLSAgICB9OwotCi0gICAg
eGhyLm9wZW4oJ0dFVCcsIHVybCk7Ci0gICAgaWYgKG9wdHMucmVzcG9uc2VUeXBlKSB7Ci0gICAg
ICB4aHIucmVzcG9uc2VUeXBlID0gb3B0cy5yZXNwb25zZVR5cGU7Ci0gICAgfQotICAgIHhoci5z
ZW5kKCk7Ci0gIH0pOwotfQotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9yZXNvdXJjZXMveGhyLXJlc3BvbnNlLXVybC13b3JrZXIuanMgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9yZXNvdXJjZXMveGhyLXJlc3BvbnNlLXVybC13b3JrZXIuanMKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDkwNmFkNTAwNWI1OWExMTMwNTIzN2ZjNTkwZmRmMzg0MDdiNzYzNzkuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvcmVzb3VyY2VzL3hoci1yZXNwb25zZS11cmwtd29ya2VyLmpzCisrKyAvZGV2L251bGwK
QEAgLTEsMzIgKzAsMCBAQAotLy8gU2VydmljZSB3b3JrZXIgZm9yIHRoZSB4aHItcmVzcG9uc2Ut
dXJsIHRlc3QuCi0KLXNlbGYuYWRkRXZlbnRMaXN0ZW5lcignZmV0Y2gnLCBldmVudCA9PiB7Ci0g
IGNvbnN0IHVybCA9IG5ldyBVUkwoZXZlbnQucmVxdWVzdC51cmwpOwotICBjb25zdCByZXNwb25k
V2l0aCA9IHVybC5zZWFyY2hQYXJhbXMuZ2V0KCdyZXNwb25kV2l0aCcpOwotICBpZiAoIXJlc3Bv
bmRXaXRoKQotICAgIHJldHVybjsKLQotICBpZiAocmVzcG9uZFdpdGggPT0gJ2ZldGNoJykgewot
ICAgIGNvbnN0IHRhcmdldCA9IHVybC5zZWFyY2hQYXJhbXMuZ2V0KCd1cmwnKTsKLSAgICBldmVu
dC5yZXNwb25kV2l0aChmZXRjaCh0YXJnZXQpKTsKLSAgICByZXR1cm47Ci0gIH0KLQotICBpZiAo
cmVzcG9uZFdpdGggPT0gJ3N0cmluZycpIHsKLSAgICBjb25zdCBoZWFkZXJzID0geydjb250ZW50
LXR5cGUnOiAndGV4dC9wbGFpbid9OwotICAgIGV2ZW50LnJlc3BvbmRXaXRoKG5ldyBSZXNwb25z
ZSgnaGVsbG8nLCB7aGVhZGVyc30pKTsKLSAgICByZXR1cm47Ci0gIH0KLQotICBpZiAocmVzcG9u
ZFdpdGggPT0gJ2RvY3VtZW50JykgewotICAgIGNvbnN0IGRvYyA9IGAKLSAgICAgICAgPCFET0NU
WVBFIGh0bWw+Ci0gICAgICAgIDxodG1sPgotICAgICAgICA8dGl0bGU+aGk8L3RpdGxlPgotICAg
ICAgICA8Ym9keT5oZWxsbzwvYm9keT4KLSAgICAgICAgPC9odG1sPmA7Ci0gICAgY29uc3QgaGVh
ZGVycyA9IHsnY29udGVudC10eXBlJzogJ3RleHQvaHRtbCd9OwotICAgIGV2ZW50LnJlc3BvbmRX
aXRoKG5ldyBSZXNwb25zZShkb2MsIHtoZWFkZXJzfSkpOwotICAgIHJldHVybjsKLSAgfQotfSk7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMveHNsLWJhc2UtdXJsLWlm
cmFtZS54bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMveHNsLWJhc2UtdXJsLWlmcmFt
ZS54bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA2NWEwN2FjYjI4NDgyMWRkZTFj
YmVhODY4MDc4MWE1MjRmMjFiYzIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3hzbC1iYXNlLXVybC1pZnJh
bWUueG1sCisrKyAvZGV2L251bGwKQEAgLTEsNSArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAi
Pz4KLTw/eG1sLXN0eWxlc2hlZXQgdHlwZT0idGV4dC94c2wiIGhyZWY9InJlc291cmNlcy9yZXF1
ZXN0LXVybC1wYXRoL2ltcG9ydC1yZWxhdGl2ZS54c2wiPz4KLTxzdHlsZXNoZWV0LXRlc3Q+Ci1U
aGlzIHRlc3RzIGEgc3R5bGVzaGVldCB3aGljaCBoYXMgYSB4c2w6aW1wb3J0IHdpdGggYSByZWxh
dGl2ZSBVUkwuCi08L3N0eWxlc2hlZXQtdGVzdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3Jlc291cmNlcy94c2wtYmFzZS11cmwtd29ya2VyLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
cmVzb3VyY2VzL3hzbC1iYXNlLXVybC13b3JrZXIuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDUwZTJiMTg0MmZmYzdmMmVmMjAxNzg0NjQwNmViNjdlZDk0OTFlYWQuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
cmVzb3VyY2VzL3hzbC1iYXNlLXVybC13b3JrZXIuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxMiAr
MCwwIEBACi1zZWxmLmFkZEV2ZW50TGlzdGVuZXIoJ2ZldGNoJywgZXZlbnQgPT4gewotICBjb25z
dCB1cmwgPSBuZXcgVVJMKGV2ZW50LnJlcXVlc3QudXJsKTsKLQotICAvLyBGb3IgdGhlIGltcG9y
dC1yZWxhdGl2ZS54c2wgZmlsZSwgcmVzcG9uZCBpbiBhIHdheSB0aGF0IGNoYW5nZXMgdGhlCi0g
IC8vIHJlc3BvbnNlIFVSTC4gVGhpcyBpcyBleHBlY3RlZCB0byBjaGFuZ2UgdGhlIGJhc2UgVVJM
IGFuZCBhbGxvdyB0aGUgaW1wb3J0Ci0gIC8vIGZyb20gdGhlIGZpbGUgdG8gc3VjY2VlZC4KLSAg
Y29uc3QgcGF0aCA9ICdyZXF1ZXN0LXVybC1wYXRoL2ltcG9ydC1yZWxhdGl2ZS54c2wnOwotICBp
ZiAodXJsLnBhdGhuYW1lLmluZGV4T2YocGF0aCkgIT0gLTEpIHsKLSAgICAvLyBSZXNwb25kIHdp
dGggYSBkaWZmZXJlbnQgVVJMLCBkZWxldGluZyAicmVxdWVzdC11cmwtcGF0aC8iLgotICAgIGV2
ZW50LnJlc3BvbmRXaXRoKGZldGNoKCdpbXBvcnQtcmVsYXRpdmUueHNsJykpOwotICB9Ci19KTsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy94c2x0LXBhc3MueHNsIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3hzbHQtcGFzcy54c2wKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDJjZDdmMmY4Zjg2YTIzZDQ2NGIzMGZlYWIwOTM5OTMxMTM0ODEwY2Mu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvcmVzb3VyY2VzL3hzbHQtcGFzcy54c2wKKysrIC9kZXYvbnVsbApAQCAtMSwxMSAr
MCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgotCi08eHNsOnN0
eWxlc2hlZXQgdmVyc2lvbj0iMS4wIiB4bWxuczp4c2w9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkv
WFNML1RyYW5zZm9ybSI+Ci0gIDx4c2w6dGVtcGxhdGUgbWF0Y2g9Ii8iPgotICAgIDxodG1sPgot
ICAgICAgPGJvZHk+Ci0gICAgICAgICAgIDxwPlBBU1M8L3A+Ci0gICAgICA8L2JvZHk+Ci0gICAg
PC9odG1sPgotICA8L3hzbDp0ZW1wbGF0ZT4KLTwveHNsOnN0eWxlc2hlZXQ+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9zZXJ2aWNlLXdvcmtlci1jc3AtY29ubmVjdC5odHRwcy1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9zZXJ2aWNlLXdvcmtlci1jc3AtY29ubmVjdC5o
dHRwcy1leHBlY3RlZC50eHQKaW5kZXggZTZmNWE1MjQ0MzEzMDIyNGY5ODdkYTE4ZDlhNzczNjJl
Y2VlZjA4OC4uZjYxZDI2MjcwYjM2MWI5YTIwZDkwOTkyM2QzYzM1NjZmZmE4YzBkZSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvc2VydmljZS13b3JrZXItY3NwLWNvbm5lY3QuaHR0cHMt
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3NlcnZpY2Utd29ya2VyLWNzcC1j
b25uZWN0Lmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMSw3ICsxLDYgQEAKIAogUEFTUyBDU1AgdGVz
dCBmb3IgY29ubmVjdC1zcmMgaW4gU2VydmljZVdvcmtlckdsb2JhbFNjb3BlIAogUEFTUyBpbXBv
cnRTY3JpcHRzIHRlc3QgZm9yIGNvbm5lY3Qtc3JjIAotUEFTUyBldmFsIHRlc3QgZm9yIGNvbm5l
Y3Qtc3JjIAogUEFTUyBGZXRjaCB0ZXN0IGZvciBjb25uZWN0LXNyYyAKIFBBU1MgUmVkaXJlY3Rl
ZCBmZXRjaCB0ZXN0IGZvciBjb25uZWN0LXNyYyAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvc2VydmljZS13b3JrZXItY3NwLWRlZmF1bHQuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvc2VydmljZS13b3JrZXItY3NwLWRlZmF1bHQuaHR0cHMtZXhwZWN0ZWQu
dHh0CmluZGV4IDc2ZjkxODZjZjliZTBjMzZkYTcyYmMzYmMwNGVkNTZkYzY0M2Q4YzIuLmY0MThj
YjgzNWJjYWRlYWIzZDhlNDU5MGY2ZWYwYmViNDljNDZhYmUgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL3NlcnZpY2Utd29ya2VyLWNzcC1kZWZhdWx0Lmh0dHBzLWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9zZXJ2aWNlLXdvcmtlci1jc3AtZGVmYXVsdC5odHRwcy1l
eHBlY3RlZC50eHQKQEAgLTEsNyArMSw2IEBACiAKIFBBU1MgQ1NQIHRlc3QgZm9yIGRlZmF1bHQt
c3JjIGluIFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSAKIFBBU1MgaW1wb3J0U2NyaXB0cyB0ZXN0
IGZvciBkZWZhdWx0LXNyYyAKLVBBU1MgZXZhbCB0ZXN0IGZvciBkZWZhdWx0LXNyYyAKIFBBU1Mg
RmV0Y2ggdGVzdCBmb3IgZGVmYXVsdC1zcmMgCiBQQVNTIFJlZGlyZWN0ZWQgZmV0Y2ggdGVzdCBm
b3IgZGVmYXVsdC1zcmMgCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3NlcnZpY2Ut
d29ya2VyLWNzcC1zY3JpcHQuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
c2VydmljZS13b3JrZXItY3NwLXNjcmlwdC5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggMTUzMzg4
YTgwY2JmYmMyNjMwOWJlZmU1ODIwNjA1NmFlNjE3MjRkNi4uZDM3YTdiNWQ3YjNlMzFiYmY1MGY2
ZWNhMWVjZGJhZWZlYjg1ZTg3YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvc2Vydmlj
ZS13b3JrZXItY3NwLXNjcmlwdC5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvc2VydmljZS13b3JrZXItY3NwLXNjcmlwdC5odHRwcy1leHBlY3RlZC50eHQKQEAgLTEs
NyArMSw2IEBACiAKIFBBU1MgQ1NQIHRlc3QgZm9yIHNjcmlwdC1zcmMgaW4gU2VydmljZVdvcmtl
ckdsb2JhbFNjb3BlIAogUEFTUyBpbXBvcnRTY3JpcHRzIHRlc3QgZm9yIHNjcmlwdC1zcmMgCi1Q
QVNTIGV2YWwgdGVzdCBmb3Igc2NyaXB0LXNyYyAKIFBBU1MgRmV0Y2ggdGVzdCBmb3Igc2NyaXB0
LXNyYyAKIFBBU1MgUmVkaXJlY3RlZCBmZXRjaCB0ZXN0IGZvciBzY3JpcHQtc3JjIAogCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9zZXJ2aWNlLXdvcmtlci1oZWFkZXIuaHR0cHMtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvc2VydmljZS13b3JrZXItaGVhZGVyLmh0dHBz
LWV4cGVjdGVkLnR4dAppbmRleCAwMzI0ZDc3ZWExNWFjNDc2YmEyYmYzNDY2ZTgyOTYyNTkwMTEx
M2Q0Li43NDYzMjY0YmE0YTdmOWMyMGNmYzBlOTM0NTQzMmQ1NDNhYzQ0MDU0IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9zZXJ2aWNlLXdvcmtlci1oZWFkZXIuaHR0cHMtZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3NlcnZpY2Utd29ya2VyLWhlYWRlci5odHRwcy1l
eHBlY3RlZC50eHQKQEAgLTEsMyArMSwzIEBACiAKLVBBU1MgQSByZXF1ZXN0IHRvIGZldGNoIHNl
cnZpY2Ugd29ya2VyIG1haW4gc2NyaXB0IHNob3VsZCBoYXZlIFNlcnZpY2UtV29ya2VyIGhlYWRl
ciBhbmQgaW1wb3J0ZWQgc2NyaXB0cyBzaG91bGQgbm90IGhhdmUgb25lIAorUEFTUyBBIHJlcXVl
c3QgdG8gZmV0Y2ggc2VydmljZSB3b3JrZXIgc2NyaXB0IHNob3VsZCBoYXZlIFNlcnZpY2UtV29y
a2VyIGhlYWRlciAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvc2VydmljZS13b3Jr
ZXItaGVhZGVyLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9zZXJ2aWNlLXdvcmtlci1o
ZWFkZXIuaHR0cHMuaHRtbAppbmRleCBmYjkwMmNkMWI0NTVkMTMwYzg5OWNmMDZiZjA1YzMyMTg0
ZDJiNTQzLi4yNTg0NDg1YzY1YWI2MGU4YjQyOWMzZGI2NmZjNDNhODE1N2E4ZWQ1IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9zZXJ2aWNlLXdvcmtlci1oZWFkZXIuaHR0cHMuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9zZXJ2aWNlLXdvcmtlci1oZWFkZXIuaHR0cHMuaHRtbApA
QCAtNSwxOSArNSwxNCBAQAogPHNjcmlwdCBzcmM9InJlc291cmNlcy90ZXN0LWhlbHBlcnMuc3Vi
LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+CiAKLXByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKLSAg
Y29uc3Qgc2NyaXB0ID0gJ3Jlc291cmNlcy9zZXJ2aWNlLXdvcmtlci1oZWFkZXIucHknCi0gICAg
KyAnP2hlYWRlciZpbXBvcnQ9c2VydmljZS13b3JrZXItaGVhZGVyLnB5P25vLWhlYWRlcic7Citw
cm9taXNlX3Rlc3QodCA9PiB7CisgIGNvbnN0IHNjcmlwdCA9ICdyZXNvdXJjZXMvc2VydmljZS13
b3JrZXItaGVhZGVyLnB5JzsKICAgY29uc3Qgc2NvcGUgPSAncmVzb3VyY2VzL3NlcnZpY2Utd29y
a2VyLWhlYWRlcic7Ci0gIGNvbnN0IGV4cGVjdGVkX3VybCA9IG5vcm1hbGl6ZVVSTChzY3JpcHQp
OwotICBjb25zdCByZWdpc3RyYXRpb24gPQotICAgIGF3YWl0IHNlcnZpY2Vfd29ya2VyX3VucmVn
aXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHNjcmlwdCwgc2NvcGUpOwotICB0LmFkZF9jbGVhbnVwKCgp
ID0+IHJlZ2lzdHJhdGlvbi51bnJlZ2lzdGVyKCkpOwotICBhc3NlcnRfdHJ1ZShyZWdpc3RyYXRp
b24gaW5zdGFuY2VvZiBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uKTsKLQotICBhd2FpdCB3YWl0
X2Zvcl9zdGF0ZSh0LCByZWdpc3RyYXRpb24uaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOwotICBh
d2FpdCByZWdpc3RyYXRpb24udXBkYXRlKCk7Ci19LCAnQSByZXF1ZXN0IHRvIGZldGNoIHNlcnZp
Y2Ugd29ya2VyIG1haW4gc2NyaXB0IHNob3VsZCBoYXZlIFNlcnZpY2UtV29ya2VyICcKLSAgKyAn
aGVhZGVyIGFuZCBpbXBvcnRlZCBzY3JpcHRzIHNob3VsZCBub3QgaGF2ZSBvbmUnKTsKKyAgcmV0
dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHNjcmlwdCwgc2Nv
cGUpCisgICAgLnRoZW4ocmVnaXN0cmF0aW9uID0+IHsKKyAgICAgIGFzc2VydF90cnVlKHJlZ2lz
dHJhdGlvbiBpbnN0YW5jZW9mIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24pOworICAgICAgcmV0
dXJuIHJlZ2lzdHJhdGlvbi51bnJlZ2lzdGVyKCk7CisgICAgfSk7Cit9LCAnQSByZXF1ZXN0IHRv
IGZldGNoIHNlcnZpY2Ugd29ya2VyIHNjcmlwdCBzaG91bGQgaGF2ZSBTZXJ2aWNlLVdvcmtlciBo
ZWFkZXInKTsKIAogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9zZXJ2
aWNld29ya2VyLW1lc3NhZ2UtZXZlbnQtaGlzdG9yaWNhbC5odHRwcy5odG1sIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvc2VydmljZXdvcmtlci1tZXNzYWdlLWV2ZW50LWhpc3RvcmljYWwuaHR0cHMuaHRt
bAppbmRleCBmYWM4ZjIwNzZmYjY0ODcwNTUwMjM2ZGQyNzQ3MDkwMmNkYmUwNDBjLi4yZjc4MGE2
MDQyODJkYzI4MWViZTc1YTk2NGVkMjRmODMyYTI0ZTNhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9zZXJ2aWNld29ya2VyLW1lc3NhZ2UtZXZlbnQtaGlzdG9yaWNhbC5odHRwcy5odG1s
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3NlcnZpY2V3b3JrZXItbWVzc2FnZS1ldmVudC1oaXN0
b3JpY2FsLmh0dHBzLmh0bWwKQEAgLTEwLDEwICsxMCw2IEBAIHByb21pc2VfdGVzdChmdW5jdGlv
bih0KSB7CiAgICAgdmFyIHVybCA9ICdyZXNvdXJjZXMvcG9zdG1lc3NhZ2UtdG8tY2xpZW50LXdv
cmtlci5qcyc7CiAgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lz
dGVyKHQsIHVybCwgc2NvcGUpCiAgICAgICAudGhlbihmdW5jdGlvbihyKSB7Ci0gICAgICAgICAg
dC5hZGRfY2xlYW51cChmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgcmV0dXJuIHNlcnZpY2Vf
d29ya2VyX3VucmVnaXN0ZXIodCwgc2NvcGUpOwotICAgICAgICAgICAgfSk7Ci0KICAgICAgICAg
ICByZXR1cm4gd2FpdF9mb3Jfc3RhdGUodCwgci5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7CiAg
ICAgICAgIH0pCiAgICAgICAudGhlbihmdW5jdGlvbigpIHsKQEAgLTM5LDYgKzM1LDkgQEAgcHJv
bWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAg
ICAgd29ya2VyLnBvc3RNZXNzYWdlKCdQSU5HJyk7CiAgICAgICAgICAgICB9KTsKKyAgICAgICAg
fSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKCkgeworICAgICAgICAgIHJldHVybiBzZXJ2aWNlX3dv
cmtlcl91bnJlZ2lzdGVyX2FuZF9kb25lKHQsIHNjb3BlKTsKICAgICAgICAgfSk7CiAgIH0sICdU
ZXN0IE1lc3NhZ2VFdmVudCBzdXBwbGFudHMgU2VydmljZVdvcmtlck1lc3NhZ2VFdmVudC4nKTsK
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvc2hhcmVkLXdvcmtlci1jb250cm9sbGVk
Lmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9zaGFyZWQtd29ya2VyLWNvbnRyb2xsZWQu
aHR0cHMuaHRtbAppbmRleCAwMzIwYzAyYTRmYTJiODA2NmJjNmY2MDNiZjdhYmMzZWVmZTFjM2Iz
Li4zM2Q1MmUwMTE5OWMyYmRjMGU4NWRmN2Q4MTA2ZGRkOTcwYWFlMDgyIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci9zaGFyZWQtd29ya2VyLWNvbnRyb2xsZWQuaHR0cHMuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9zaGFyZWQtd29ya2VyLWNvbnRyb2xsZWQuaHR0cHMuaHRtbApA
QCAtMTIsMTAgKzEyLDYgQEAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKIAogICAgIHJldHVy
biBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCBzZXJ2aWNlX3dvcmtl
ciwgc2NvcGUpCiAgICAgICAudGhlbihmdW5jdGlvbihyKSB7Ci0gICAgICAgICAgdC5hZGRfY2xl
YW51cChmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3Vu
cmVnaXN0ZXIodCwgc2NvcGUpOwotICAgICAgICAgICAgfSk7Ci0KICAgICAgICAgICByZXR1cm4g
d2FpdF9mb3Jfc3RhdGUodCwgci5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7CiAgICAgICAgIH0p
CiAgICAgICAudGhlbihmdW5jdGlvbigpIHsKQEAgLTI4LDYgKzI0LDcgQEAgcHJvbWlzZV90ZXN0
KGZ1bmN0aW9uKHQpIHsKICAgICAgICAgfSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKGRhdGEpIHsK
ICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGRhdGEsICdpbnRlcmNlcHRlZCBieSBzZXJ2aWNlIHdv
cmtlcicpOworICAgICAgICAgIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX2RvbmUodCwg
c2NvcGUpOwogICAgICAgICB9KTsKICAgfSwgJ1ZlcmlmeSBzdWJyZXNvdXJjZSBsb2FkcyBpbiBT
aGFyZWRXb3JrZXIgYXJlIGNvbnRyb2xsZWQgYnkgYSBTZXJ2aWNlIFdvcmtlcicpOwogCkBAIC0z
OCwxMCArMzUsNiBAQCBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewogCiAgICAgcmV0dXJuIHNl
cnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHNlcnZpY2Vfd29ya2VyLCBz
Y29wZSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKHIpIHsKLSAgICAgICAgICB0LmFkZF9jbGVhbnVw
KGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdp
c3Rlcih0LCBzY29wZSk7Ci0gICAgICAgICAgICB9KTsKLQogICAgICAgICAgIHJldHVybiB3YWl0
X2Zvcl9zdGF0ZSh0LCByLmluc3RhbGxpbmcsICdhY3RpdmF0ZWQnKTsKICAgICAgICAgfSkKICAg
ICAgIC50aGVuKGZ1bmN0aW9uKCkgewpAQCAtNTQsNiArNDcsNyBAQCBwcm9taXNlX3Rlc3QoZnVu
Y3Rpb24odCkgewogICAgICAgICB9KQogICAgICAgLnRoZW4oZnVuY3Rpb24oZGF0YSkgewogICAg
ICAgICAgIGFzc2VydF9lcXVhbHMoZGF0YSwgJ3dvcmtlciBsb2FkaW5nIGludGVyY2VwdGVkIGJ5
IHNlcnZpY2Ugd29ya2VyJyk7CisgICAgICAgICAgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9h
bmRfZG9uZSh0LCBzY29wZSk7CiAgICAgICAgIH0pOwogICB9LCAnVmVyaWZ5IFNoYXJlZFdvcmtl
ciBjb25zdHJ1Y3Rpb24gaXMgY29udHJvbGxlZCBieSBhIFNlcnZpY2UgV29ya2VyJyk7CiAKQEAg
LTY0LDEwICs1OCw2IEBAIHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7CiAKICAgICByZXR1cm4g
c2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgc2VydmljZV93b3JrZXIs
IHNjb3BlKQogICAgICAgLnRoZW4oZnVuY3Rpb24ocikgewotICAgICAgICAgIHQuYWRkX2NsZWFu
dXAoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJl
Z2lzdGVyKHQsIHNjb3BlKTsKLSAgICAgICAgICAgIH0pOwotCiAgICAgICAgICAgcmV0dXJuIHdh
aXRfZm9yX3N0YXRlKHQsIHIuaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOwogICAgICAgICB9KQog
ICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7CkBAIC04MCw2ICs3MCw3IEBAIHByb21pc2VfdGVzdChm
dW5jdGlvbih0KSB7CiAgICAgICAgIH0pCiAgICAgICAudGhlbihmdW5jdGlvbihkYXRhKSB7CiAg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhkYXRhLCAnd29ya2VyIGxvYWRpbmcgaW50ZXJjZXB0ZWQg
Ynkgc2VydmljZSB3b3JrZXInKTsKKyAgICAgICAgICBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVy
X2FuZF9kb25lKHQsIHNjb3BlKTsKICAgICAgICAgfSk7CiAgIH0sICdWZXJpZnkgaW1wb3J0U2Ny
aXB0cyBmcm9tIFNoYXJlZFdvcmtlciBpcyBjb250cm9sbGVkIGJ5IGEgU2VydmljZSBXb3JrZXIn
KTsKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvc2tpcC13YWl0aW5n
LWluc3RhbGxlZC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9za2lwLXdh
aXRpbmctaW5zdGFsbGVkLmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCAyZmFiOGZiNjhkYzEyMDY5
MjM1NTVmYjAyMDY2MzFmOGM4ZGFkNzNiLi4xMjBlZGRkY2ZlNGE5MTc2OGE2YmJlOWNlZTQ3NGM2
YWYxNTQ1ZmVjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9za2lwLXdhaXRpbmctaW5z
dGFsbGVkLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9za2lwLXdh
aXRpbmctaW5zdGFsbGVkLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMSwzICsxLDQgQEAKIAotUEFT
UyBUZXN0IHNraXBXYWl0aW5nIHdoZW4gYSBpbnN0YWxsZWQgd29ya2VyIGlzIHdhaXRpbmcgCisK
K0ZBSUwgVGVzdCBza2lwV2FpdGluZyB3aGVuIGEgaW5zdGFsbGVkIHdvcmtlciBpcyB3YWl0aW5n
IGFzc2VydF9lcXVhbHM6IHNraXBXYWl0aW5nIHByb21pc2Ugc2hvdWxkIGJlIHJlc29sdmVkIHdp
dGggdW5kZWZpbmVkIGV4cGVjdGVkICJQQVNTIiBidXQgZ290ICJGQUlUTDogUHJvbWlzZSBzaG91
bGQgYmUgcmVzb2x2ZWQgYmVmb3JlIFNlcnZpY2VXb3JrZXIjc3RhdGUgaXMgc2V0IHRvIGFjdGl2
YXRlZCIKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvc2tpcC13YWl0aW5nLWluc3Rh
bGxlZC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvc2tpcC13YWl0aW5nLWluc3RhbGxl
ZC5odHRwcy5odG1sCmluZGV4IGI2MDRmNjUxYjNjMWRlYjM4ZDg5MWM3NzM5NGE4ZjE3NWExOWMz
NGUuLjIxZTI2YmU1MTI4NDU0ZWUwNTE0M2IxMGI4MDM5Y2ViOTVhNDhjZDUgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL3NraXAtd2FpdGluZy1pbnN0YWxsZWQuaHR0cHMuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9za2lwLXdhaXRpbmctaW5zdGFsbGVkLmh0dHBzLmh0bWwKQEAg
LTMzLDEwICszMyw2IEBAIHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7CiAgICAgICB9KTsKICAg
ICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgdXJsMSwg
c2NvcGUpCiAgICAgICAudGhlbihmdW5jdGlvbihyKSB7Ci0gICAgICAgICAgdC5hZGRfY2xlYW51
cChmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVn
aXN0ZXIodCwgc2NvcGUpOwotICAgICAgICAgICAgfSk7Ci0KICAgICAgICAgICByZXR1cm4gd2Fp
dF9mb3Jfc3RhdGUodCwgci5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7CiAgICAgICAgIH0pCiAg
ICAgICAudGhlbihmdW5jdGlvbigpIHsKQEAgLTY0LDYgKzYwLDcgQEAgcHJvbWlzZV90ZXN0KGZ1
bmN0aW9uKHQpIHsKICAgICAgICAgfSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKCkgewogICAgICAg
ICAgIGZyYW1lLnJlbW92ZSgpOworICAgICAgICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJl
Z2lzdGVyX2FuZF9kb25lKHQsIHNjb3BlKTsKICAgICAgICAgfSk7CiAgIH0sICdUZXN0IHNraXBX
YWl0aW5nIHdoZW4gYSBpbnN0YWxsZWQgd29ya2VyIGlzIHdhaXRpbmcnKTsKIApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvc2tpcC13YWl0aW5nLXVzaW5nLXJlZ2lzdHJhdGlvbi5odHRw
cy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvc2tpcC13YWl0aW5nLXVzaW5nLXJlZ2lzdHJhdGlv
bi5odHRwcy5odG1sCmluZGV4IDQxMmVlMmE0NDM4ZTIzMjhmNjkzMzc4OTM0NjVjNGE2NmM2NzFj
ZTYuLmE5YzM5OGEyNjA2NzZkOTc2ZjBhYWMwY2E0OTVhYTFhNmM5NGU2MzEgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL3NraXAtd2FpdGluZy11c2luZy1yZWdpc3RyYXRpb24uaHR0cHMu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9za2lwLXdhaXRpbmctdXNpbmctcmVnaXN0cmF0
aW9uLmh0dHBzLmh0bWwKQEAgLTEsNiArMSw1IEBACiA8IURPQ1RZUEUgaHRtbD4KIDx0aXRsZT5T
ZXJ2aWNlIFdvcmtlcjogU2tpcCB3YWl0aW5nIHVzaW5nIHJlZ2lzdHJhdGlvbjwvdGl0bGU+Ci08
bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIj4KIDxzY3JpcHQgc3JjPSIvcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGVz
dC1oZWxwZXJzLnN1Yi5qcyI+PC9zY3JpcHQ+CkBAIC01MiwxNCArNTEsMTQgQEAgcHJvbWlzZV90
ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICAgIC50aGVuKGZ1bmN0aW9uKHJlZ2lzdHJhdGlvbikgewog
ICAgICAgICAgIHN3X3JlZ2lzdHJhdGlvbiA9IHJlZ2lzdHJhdGlvbjsKICAgICAgICAgICB0LmFk
ZF9jbGVhbnVwKGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICByZXR1cm4gcmVnaXN0cmF0aW9u
LnVucmVnaXN0ZXIoKTsKKyAgICAgICAgICAgICAgcmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIoKTsK
ICAgICAgICAgICAgIH0pOwogICAgICAgICAgIHJldHVybiBzYXdfY29udHJvbGxlcmNoYW5nZWQ7
CiAgICAgICAgIH0pCiAgICAgICAudGhlbihmdW5jdGlvbigpIHsKICAgICAgICAgICBhc3NlcnRf
bm90X2VxdWFscyhzd19yZWdpc3RyYXRpb24uYWN0aXZlLCBudWxsLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICdSZWdpc3RyYXRpb24gYWN0aXZlIHdvcmtlciBzaG91bGQgbm90IGJlIG51
bGwnKTsKLSAgICAgICAgICByZXR1cm4gZmV0Y2hfdGVzdHNfZnJvbV93b3JrZXIoc3dfcmVnaXN0
cmF0aW9uLmFjdGl2ZSk7CisgICAgICAgICAgZmV0Y2hfdGVzdHNfZnJvbV93b3JrZXIoc3dfcmVn
aXN0cmF0aW9uLmFjdGl2ZSk7CiAgICAgICAgIH0pOwogICB9LCAnVGVzdCBza2lwV2FpdGluZyB3
aGlsZSBhIGNsaWVudCBpcyB1c2luZyB0aGUgcmVnaXN0cmF0aW9uJyk7CiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL3NraXAtd2FpdGluZy13aXRob3V0LXVzaW5nLXJlZ2lzdHJhdGlv
bi5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvc2tpcC13YWl0aW5nLXdpdGhvdXQtdXNp
bmctcmVnaXN0cmF0aW9uLmh0dHBzLmh0bWwKaW5kZXggY2VkNjRlNWY2N2ZiNjY3ZTVjMjMzMDU1
YWQ5MjBkYmRhMDMzNjMzNi4uZGJlMmJkZTc4ZDNjMGI0YmQ2ODk2NzE4OGQ2NjhjNDU1NzE0MTIx
ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvc2tpcC13YWl0aW5nLXdpdGhvdXQtdXNp
bmctcmVnaXN0cmF0aW9uLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvc2tpcC13
YWl0aW5nLXdpdGhvdXQtdXNpbmctcmVnaXN0cmF0aW9uLmh0dHBzLmh0bWwKQEAgLTEsNiArMSw1
IEBACiA8IURPQ1RZUEUgaHRtbD4KIDx0aXRsZT5TZXJ2aWNlIFdvcmtlcjogU2tpcCB3YWl0aW5n
IHdpdGhvdXQgdXNpbmcgcmVnaXN0cmF0aW9uPC90aXRsZT4KLTxtZXRhIG5hbWU9InRpbWVvdXQi
IGNvbnRlbnQ9ImxvbmciPgogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMi
Pjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMi
Pjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9InJlc291cmNlcy90ZXN0LWhlbHBlcnMuc3ViLmpzIj48
L3NjcmlwdD4KQEAgLTI4LDcgKzI3LDcgQEAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKICAg
ICAgIC50aGVuKGZ1bmN0aW9uKHJlZ2lzdHJhdGlvbikgewogICAgICAgICAgIHN3X3JlZ2lzdHJh
dGlvbiA9IHJlZ2lzdHJhdGlvbjsKICAgICAgICAgICB0LmFkZF9jbGVhbnVwKGZ1bmN0aW9uKCkg
ewotICAgICAgICAgICAgICByZXR1cm4gcmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIoKTsKKyAgICAg
ICAgICAgICAgcmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIoKTsKICAgICAgICAgICAgIH0pOwogICAg
ICAgICAgIHJldHVybiB3YWl0X2Zvcl9zdGF0ZSh0LCByZWdpc3RyYXRpb24uaW5zdGFsbGluZywg
J2FjdGl2YXRlZCcpOwogICAgICAgICB9KQpAQCAtMzcsNyArMzYsNyBAQCBwcm9taXNlX3Rlc3Qo
ZnVuY3Rpb24odCkgewogICAgICAgICAgICAgICAgICAgICAgICAgJ0RvY3VtZW50IGNvbnRyb2xs
ZXIgc2hvdWxkIHN0aWxsIGJlIG51bGwnKTsKICAgICAgICAgICBhc3NlcnRfbm90X2VxdWFscyhz
d19yZWdpc3RyYXRpb24uYWN0aXZlLCBudWxsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICdSZWdpc3RyYXRpb24gYWN0aXZlIHdvcmtlciBzaG91bGQgbm90IGJlIG51bGwnKTsKLSAgICAg
ICAgICByZXR1cm4gZmV0Y2hfdGVzdHNfZnJvbV93b3JrZXIoc3dfcmVnaXN0cmF0aW9uLmFjdGl2
ZSk7CisgICAgICAgICAgZmV0Y2hfdGVzdHNfZnJvbV93b3JrZXIoc3dfcmVnaXN0cmF0aW9uLmFj
dGl2ZSk7CiAgICAgICAgIH0pOwogICB9LCAnVGVzdCBza2lwV2FpdGluZyB3aGlsZSBhIGNsaWVu
dCBpcyBub3QgYmVpbmcgY29udHJvbGxlZCcpOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9za2lwLXdhaXRpbmcuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3NraXAtd2Fp
dGluZy5odHRwcy5odG1sCmluZGV4IGY4MzkyZmM5NTViNDZjZGQ5ZjFkZWI1YTczMTliOGYzZjM1
ZDkxZGQuLjQ4YjVhOGM5YWVlYjQwNjQ4YzRkMjk1NDkyZDRhNDRiOTU3ZDc4OGYgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3NraXAtd2FpdGluZy5odHRwcy5odG1sCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL3NraXAtd2FpdGluZy5odHRwcy5odG1sCkBAIC0xNCwxMCArMTQsNiBAQCBw
cm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewogICAgIHZhciBzd19yZWdpc3RyYXRpb24sIGFjdGl2
YXRlZF93b3JrZXIsIHdhaXRpbmdfd29ya2VyOwogICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91
bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCB1cmwxLCBzY29wZSkKICAgICAgIC50aGVuKGZ1bmN0
aW9uKHJlZ2lzdHJhdGlvbikgewotICAgICAgICAgIHQuYWRkX2NsZWFudXAoZnVuY3Rpb24oKSB7
Ci0gICAgICAgICAgICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyKHQsIHNjb3Bl
KTsKLSAgICAgICAgICAgIH0pOwotCiAgICAgICAgICAgc3dfcmVnaXN0cmF0aW9uID0gcmVnaXN0
cmF0aW9uOwogICAgICAgICAgIHJldHVybiB3YWl0X2Zvcl9zdGF0ZSh0LCByZWdpc3RyYXRpb24u
aW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOwogICAgICAgICB9KQpAQCAtNTIsNiArNDgsNyBAQCBw
cm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewogICAgICAgICAgICAgICAgICAgICAgICAgJ1dvcmtl
ciB3aXRoIHVybDIgc2hvdWxkIGJlIHJlZHVuZGFudCcpOwogICAgICAgICAgIGFzc2VydF9lcXVh
bHMoc3dfcmVnaXN0cmF0aW9uLmFjdGl2ZS5zY3JpcHRVUkwsIG5vcm1hbGl6ZVVSTCh1cmwzKSwK
ICAgICAgICAgICAgICAgICAgICAgICAgICdXb3JrZXIgd2l0aCB1cmwzIHNob3VsZCBiZSBhY3Rp
dmF0ZWQnKTsKKyAgICAgICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRf
ZG9uZSh0LCBzY29wZSk7CiAgICAgICAgIH0pOwogICB9LCAnVGVzdCBza2lwV2FpdGluZyB3aXRo
IGJvdGggYWN0aXZlIGFuZCB3YWl0aW5nIHdvcmtlcnMnKTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvc3RhdGUuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3N0YXRlLmh0
dHBzLmh0bWwKaW5kZXggNzM1OGU1OGZmMTRhNzRlMDQ1MTRlYjk0MzIxNTE1NzZjZjYyYjkwNS4u
MzgxMDM2MmUwNTMzMDU2OWY5N2I3NjEyY2FlMWM5M2Y4MTM1Y2YzOCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvc3RhdGUuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9z
dGF0ZS5odHRwcy5odG1sCkBAIC00LDI0ICs0LDIxIEBACiA8c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L3Rlc3QtaGVscGVycy5zdWIuanMiPjwvc2NyaXB0PgogPGJvZHk+CiA8c2NyaXB0PgotcHJvbWlz
ZV90ZXN0KGZ1bmN0aW9uICh0KSB7CisoZnVuY3Rpb24gKCkgeworICAgIHZhciB0ID0gYXN5bmNf
dGVzdCgnU2VydmljZSBXb3JrZXIgc3RhdGUgcHJvcGVydHkgYW5kICJzdGF0ZWNoYW5nZSIgZXZl
bnQnKTsKICAgICB2YXIgY3VycmVudFN0YXRlID0gJ3Rlc3QtaXMtc3RhcnRpbmcnOwogICAgIHZh
ciBzY29wZSA9ICdyZXNvdXJjZXMvc3RhdGUvJzsKIAotICAgIHJldHVybiBzZXJ2aWNlX3dvcmtl
cl91bnJlZ2lzdGVyX2FuZF9yZWdpc3RlcigKKyAgICBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVy
X2FuZF9yZWdpc3RlcigKICAgICAgICAgdCwgJ3Jlc291cmNlcy9lbXB0eS13b3JrZXIuanMnLCBz
Y29wZSkKLSAgICAgIC50aGVuKGZ1bmN0aW9uKHJlZ2lzdHJhdGlvbikgewotICAgICAgICAgIHQu
YWRkX2NsZWFudXAoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgIHJldHVybiBzZXJ2aWNlX3dv
cmtlcl91bnJlZ2lzdGVyKHQsIHNjb3BlKTsKLSAgICAgICAgICAgIH0pOwotCisgICAgICAudGhl
bih0LnN0ZXBfZnVuYyhmdW5jdGlvbihyZWdpc3RyYXRpb24pIHsKICAgICAgICAgICB2YXIgc3cg
PSByZWdpc3RyYXRpb24uaW5zdGFsbGluZzsKLQorICAgICAgICAgIHN3LmFkZEV2ZW50TGlzdGVu
ZXIoJ3N0YXRlY2hhbmdlJywgdC5zdGVwX2Z1bmMob25TdGF0ZUNoYW5nZShzdykpKTsKICAgICAg
ICAgICBhc3NlcnRfZXF1YWxzKHN3LnN0YXRlLCAnaW5zdGFsbGluZycsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAndGhlIHNlcnZpY2Ugd29ya2VyIHNob3VsZCBiZSBpbiAiaW5zdGFsbGluZyIg
c3RhdGUuJyk7CiAgICAgICAgICAgY2hlY2tTdGF0ZVRyYW5zaXRpb24oc3cuc3RhdGUpOwotICAg
ICAgICAgIHJldHVybiBvblN0YXRlQ2hhbmdlKHN3KTsKLSAgICAgICAgfSk7CisgICAgICAgIH0p
KQorICAgICAgLmNhdGNoKHVucmVhY2hlZF9yZWplY3Rpb24odCkpOwogCiAgICAgZnVuY3Rpb24g
Y2hlY2tTdGF0ZVRyYW5zaXRpb24obmV3U3RhdGUpIHsKICAgICAgICAgc3dpdGNoIChjdXJyZW50
U3RhdGUpIHsKQEAgLTUyLDkgKzQ5LDcgQEAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uICh0KSB7CiAg
ICAgfQogCiAgICAgZnVuY3Rpb24gb25TdGF0ZUNoYW5nZShleHBlY3RlZFRhcmdldCkgewotICAg
ICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUpIHsKLSAgICAgICAgICAgIGV4
cGVjdGVkVGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoJ3N0YXRlY2hhbmdlJywgcmVzb2x2ZSk7Ci0g
ICAgICAgICAgfSkudGhlbihmdW5jdGlvbihldmVudCkgeworICAgICAgICByZXR1cm4gZnVuY3Rp
b24oZXZlbnQpIHsKICAgICAgICAgICAgIGFzc2VydF90cnVlKGV2ZW50LnRhcmdldCBpbnN0YW5j
ZW9mIFNlcnZpY2VXb3JrZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAndGhlIHRhcmdldCBv
ZiB0aGUgc3RhdGVjaGFuZ2UgZXZlbnQgc2hvdWxkIGJlIGEgJyArCiAgICAgICAgICAgICAgICAg
ICAgICAgICAnU2VydmljZVdvcmtlci4nKTsKQEAgLTY2LDkgKzYxLDkgQEAgcHJvbWlzZV90ZXN0
KGZ1bmN0aW9uICh0KSB7CiAKICAgICAgICAgICAgIGNoZWNrU3RhdGVUcmFuc2l0aW9uKGV2ZW50
LnRhcmdldC5zdGF0ZSk7CiAKLSAgICAgICAgICAgIGlmIChldmVudC50YXJnZXQuc3RhdGUgIT0g
J2FjdGl2YXRlZCcpCi0gICAgICAgICAgICAgICAgcmV0dXJuIG9uU3RhdGVDaGFuZ2UoZXhwZWN0
ZWRUYXJnZXQpOwotICAgICAgICAgIH0pOworICAgICAgICAgICAgaWYgKGV2ZW50LnRhcmdldC5z
dGF0ZSA9PSAnYWN0aXZhdGVkJykKKyAgICAgICAgICAgICAgICBzZXJ2aWNlX3dvcmtlcl91bnJl
Z2lzdGVyX2FuZF9kb25lKHQsIHNjb3BlKTsKKyAgICAgICAgfTsKICAgICB9Ci19LCAnU2Vydmlj
ZSBXb3JrZXIgc3RhdGUgcHJvcGVydHkgYW5kICJzdGF0ZWNoYW5nZSIgZXZlbnQnKTsKK30oKSk7
CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3N5bmNlZC1zdGF0ZS5o
dHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvc3luY2VkLXN0YXRlLmh0dHBzLmh0bWwKaW5k
ZXggMGU5ZjYzYTlhMmU1MjhlN2ZmYjhmOTkxM2VkZmZjOGUwMjk0YWQ5OC4uYzRhOWI2NjU1Y2Iw
NjYwYTc4YTI3YzUyMzU5MWM0OTUzZDNiNzdhOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvc3luY2VkLXN0YXRlLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvc3luY2Vk
LXN0YXRlLmh0dHBzLmh0bWwKQEAgLTMzLDcgKzMzLDcgQEAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9u
KHQpIHsKICAgICAgICAgICB3b3JrZXIgPSByZWdpc3RyYXRpb24uaW5zdGFsbGluZzsKIAogICAg
ICAgICAgIHQuYWRkX2NsZWFudXAoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgIHJldHVybiBy
LnVucmVnaXN0ZXIoKTsKKyAgICAgICAgICAgICAgci51bnJlZ2lzdGVyKCk7CiAgICAgICAgICAg
ICB9KTsKIAogICAgICAgICAgIHJldHVybiBuZXh0Q2hhbmdlKHdvcmtlcik7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci91bmNvbnRyb2xsZWQtcGFnZS5odHRwcy5odG1sIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvdW5jb250cm9sbGVkLXBhZ2UuaHR0cHMuaHRtbAppbmRleCBlMjJjYThmMGE5
MWFkZjlmYmNmNjRjNzdjZDNkMWQ0ZGYyNzk1NmYzLi5hOTUyM2E1NGNkY2UyN2NjZGRiNTg2MDEy
MTEwMWNkZDFiZGI1MGNjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91bmNvbnRyb2xs
ZWQtcGFnZS5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VuY29udHJvbGxlZC1w
YWdlLmh0dHBzLmh0bWwKQEAgLTE5LDE0ICsxOSwxMCBAQCBmdW5jdGlvbiBmZXRjaF91cmwodXJs
KSB7CiB9CiB2YXIgd29ya2VyID0gJ3Jlc291cmNlcy9mYWlsLW9uLWZldGNoLXdvcmtlci5qcyc7
CiAKLXByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7Cithc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsK
ICAgICB2YXIgc2NvcGUgPSAncmVzb3VyY2VzL3Njb3BlL3VuY29udHJvbGxlZC1wYWdlLyc7Ci0g
ICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHdvcmtl
ciwgc2NvcGUpCisgICAgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwg
d29ya2VyLCBzY29wZSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKHJlZykgewotICAgICAgICAgIHQu
YWRkX2NsZWFudXAoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgIHJldHVybiBzZXJ2aWNlX3dv
cmtlcl91bnJlZ2lzdGVyKHQsIHNjb3BlKTsKLSAgICAgICAgICAgIH0pOwotCiAgICAgICAgICAg
cmV0dXJuIHdhaXRfZm9yX3N0YXRlKHQsIHJlZy5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7CiAg
ICAgICAgIH0pCiAgICAgICAudGhlbihmdW5jdGlvbigpIHsKQEAgLTM0LDYgKzMwLDEwIEBAIHBy
b21pc2VfdGVzdChmdW5jdGlvbih0KSB7CiAgICAgICAgIH0pCiAgICAgICAudGhlbihmdW5jdGlv
bih0ZXh0KSB7CiAgICAgICAgICAgYXNzZXJ0X2VxdWFscyh0ZXh0LCAnYSBzaW1wbGUgdGV4dCBm
aWxlXG4nKTsKLSAgICAgICAgfSk7CisgICAgICAgICAgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rl
cl9hbmRfZG9uZSh0LCBzY29wZSk7CisgICAgICAgIH0pCisgICAgICAuY2F0Y2godC5zdGVwX2Z1
bmMoZnVuY3Rpb24ocmVhc29uKSB7CisgICAgICAgICAgYXNzZXJ0X3VucmVhY2hlZChyZWFzb24u
bWVzc2FnZSk7CisgICAgICAgIH0pKTsKICAgfSwgJ0ZldGNoIGV2ZW50cyBzaG91bGQgbm90IGdv
IHRocm91Z2ggdW5jb250cm9sbGVkIHBhZ2UuJyk7CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL3VucmVnaXN0ZXItdGhlbi1yZWdpc3Rlci1uZXctc2NyaXB0Lmh0dHBz
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VucmVnaXN0ZXItdGhlbi1yZWdpc3Rl
ci1uZXctc2NyaXB0Lmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCAxOTg4ZmVlNzM4ZmQxZDI3ZDFm
N2MwNWQ3YWRkZGU2N2Q0NzdlNmJhLi42OTViY2JjMDUyY2IyYmQzNDc1NDMzODcxNWQ2Mjg5NGU3
ZjI4OTgyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91bnJlZ2lzdGVyLXRoZW4tcmVn
aXN0ZXItbmV3LXNjcmlwdC5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvdW5yZWdpc3Rlci10aGVuLXJlZ2lzdGVyLW5ldy1zY3JpcHQuaHR0cHMtZXhwZWN0ZWQudHh0
CkBAIC0xLDUgKzEsNiBAQAogCi1QQVNTIFJlZ2lzdGVyaW5nIGEgbmV3IHNjcmlwdCBVUkwgd2hp
bGUgYW4gdW5yZWdpc3RlcmVkIHJlZ2lzdHJhdGlvbiBpcyBpbiB1c2UgCi1QQVNTIFJlZ2lzdGVy
aW5nIGEgbmV3IHNjcmlwdCBVUkwgdGhhdCA0MDRzIGRvZXMgbm90IHJlc3VycmVjdCB1bnJlZ2lz
dGVyZWQgcmVnaXN0cmF0aW9uIAotUEFTUyBSZWdpc3RlcmluZyBhIG5ldyBzY3JpcHQgVVJMIHRo
YXQgZmFpbHMgdG8gaW5zdGFsbCBkb2VzIG5vdCByZXN1cnJlY3QgdW5yZWdpc3RlcmVkIHJlZ2lz
dHJhdGlvbiAKKworRkFJTCBSZWdpc3RlcmluZyBhIG5ldyBzY3JpcHQgVVJMIHdoaWxlIGFuIHVu
cmVnaXN0ZXJlZCByZWdpc3RyYXRpb24gaXMgaW4gdXNlIGFzc2VydF91bnJlYWNoZWQ6IHVuZXhw
ZWN0ZWQgcmVqZWN0aW9uOiBudWxsIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ3JlZ2lz
dHJhdGlvbi5pbnN0YWxsaW5nLnNjcmlwdFVSTCcpIFJlYWNoZWQgdW5yZWFjaGFibGUgY29kZQor
RkFJTCBSZWdpc3RlcmluZyBhIG5ldyBzY3JpcHQgVVJMIHRoYXQgNDA0cyBkb2VzIHJlc3VycmVj
dCBhbiB1bnJlZ2lzdGVyZWQgcmVnaXN0cmF0aW9uIGFzc2VydF91bnJlYWNoZWQ6IHVuZXhwZWN0
ZWQgcmVqZWN0aW9uOiBudWxsIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ2ZyYW1lLmNv
bnRlbnRXaW5kb3cubmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuY29udHJvbGxlci5zY3JpcHRVUkwn
KSBSZWFjaGVkIHVucmVhY2hhYmxlIGNvZGUKK0ZBSUwgUmVnaXN0ZXJpbmcgYSBuZXcgc2NyaXB0
IFVSTCB0aGF0IGZhaWxzIHRvIGluc3RhbGwgZG9lcyByZXN1cnJlY3QgYW4gdW5yZWdpc3RlcmVk
IHJlZ2lzdHJhdGlvbiBhc3NlcnRfdW5yZWFjaGVkOiB1bmV4cGVjdGVkIHJlamVjdGlvbjogbnVs
bCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdyZWdpc3RyYXRpb24uYWN0aXZlLnNjcmlw
dFVSTCcpIFJlYWNoZWQgdW5yZWFjaGFibGUgY29kZQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci91bnJlZ2lzdGVyLXRoZW4tcmVnaXN0ZXItbmV3LXNjcmlwdC5odHRwcy5odG1sIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvdW5yZWdpc3Rlci10aGVuLXJlZ2lzdGVyLW5ldy1zY3JpcHQuaHR0
cHMuaHRtbAppbmRleCA0NDRhNWMzNjU3NzZiZWFmM2YxODYyMzQxMzQ0ZTk1Yjc1M2FmY2FlLi41
ODIxMzJhNzQyZmM5YmIwZmJhNjJlZTAyNTM1NmY5ODM5MzhkYTFiIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci91bnJlZ2lzdGVyLXRoZW4tcmVnaXN0ZXItbmV3LXNjcmlwdC5odHRwcy5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VucmVnaXN0ZXItdGhlbi1yZWdpc3Rlci1uZXct
c2NyaXB0Lmh0dHBzLmh0bWwKQEAgLTUsMTMyICs1LDE4MCBAQAogPHNjcmlwdD4KIHZhciB3b3Jr
ZXJfdXJsID0gJ3Jlc291cmNlcy9lbXB0eS13b3JrZXIuanMnOwogCi1wcm9taXNlX3Rlc3QoYXN5
bmMgZnVuY3Rpb24odCkgewotICBjb25zdCBzY29wZSA9ICdyZXNvdXJjZXMvc2NvcGUvdW5yZWdp
c3Rlci10aGVuLXJlZ2lzdGVyLW5ldy1zY3JpcHQtdGhhdC1leGlzdHMnOwotICBjb25zdCByZWdp
c3RyYXRpb24gPSBhd2FpdCBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0
LCB3b3JrZXJfdXJsLCBzY29wZSk7Ci0gIHQuYWRkX2NsZWFudXAoKCkgPT4gcmVnaXN0cmF0aW9u
LnVucmVnaXN0ZXIoKSk7Ci0KLSAgY29uc3QgbmV3V29ya2VyVVJMID0gd29ya2VyX3VybCArICc/
bmV3JzsKLSAgYXdhaXQgd2FpdF9mb3Jfc3RhdGUodCwgcmVnaXN0cmF0aW9uLmluc3RhbGxpbmcs
ICdhY3RpdmF0ZWQnKTsKLQotICBjb25zdCBpZnJhbWUgPSBhd2FpdCB3aXRoX2lmcmFtZShzY29w
ZSk7Ci0gIHQuYWRkX2NsZWFudXAoKCkgPT4gaWZyYW1lLnJlbW92ZSgpKTsKLQotICBhd2FpdCBy
ZWdpc3RyYXRpb24udW5yZWdpc3RlcigpOwotCi0gIGNvbnN0IG5ld1JlZ2lzdHJhdGlvbiA9IGF3
YWl0IG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKG5ld1dvcmtlclVSTCwgeyBzY29w
ZSB9KTsKLSAgdC5hZGRfY2xlYW51cCgoKSA9PiBuZXdSZWdpc3RyYXRpb24udW5yZWdpc3Rlcigp
KTsKLQotICBhc3NlcnRfZXF1YWxzKAotICAgIHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLAotICAg
IG51bGwsCi0gICAgJ2JlZm9yZSBhY3RpdmF0ZWQgcmVnaXN0cmF0aW9uLmluc3RhbGxpbmcnCi0g
ICk7Ci0gIGFzc2VydF9lcXVhbHMoCi0gICAgcmVnaXN0cmF0aW9uLndhaXRpbmcsCi0gICAgbnVs
bCwKLSAgICAnYmVmb3JlIGFjdGl2YXRlZCByZWdpc3RyYXRpb24ud2FpdGluZycKLSAgKTsKLSAg
YXNzZXJ0X2VxdWFscygKLSAgICByZWdpc3RyYXRpb24uYWN0aXZlLnNjcmlwdFVSTCwKLSAgICBu
b3JtYWxpemVVUkwod29ya2VyX3VybCksCi0gICAgJ2JlZm9yZSBhY3RpdmF0ZWQgcmVnaXN0cmF0
aW9uLmFjdGl2ZScKLSAgKTsKLSAgYXNzZXJ0X2VxdWFscygKLSAgICBuZXdSZWdpc3RyYXRpb24u
aW5zdGFsbGluZy5zY3JpcHRVUkwsCi0gICAgbm9ybWFsaXplVVJMKG5ld1dvcmtlclVSTCksCi0g
ICAgJ2JlZm9yZSBhY3RpdmF0ZWQgbmV3UmVnaXN0cmF0aW9uLmluc3RhbGxpbmcnCi0gICk7Ci0g
IGFzc2VydF9lcXVhbHMoCi0gICAgbmV3UmVnaXN0cmF0aW9uLndhaXRpbmcsCi0gICAgbnVsbCwK
LSAgICAnYmVmb3JlIGFjdGl2YXRlZCBuZXdSZWdpc3RyYXRpb24ud2FpdGluZycKLSAgKTsKLSAg
YXNzZXJ0X2VxdWFscygKLSAgICBuZXdSZWdpc3RyYXRpb24uYWN0aXZlLAotICAgIG51bGwsCi0g
ICAgJ2JlZm9yZSBhY3RpdmF0ZWQgbmV3UmVnaXN0cmF0aW9uLmFjdGl2ZScKLSAgKTsKLSAgaWZy
YW1lLnJlbW92ZSgpOwotCi0gIGF3YWl0IHdhaXRfZm9yX3N0YXRlKHQsIG5ld1JlZ2lzdHJhdGlv
bi5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7Ci0KLSAgYXNzZXJ0X2VxdWFscygKLSAgICBuZXdS
ZWdpc3RyYXRpb24uaW5zdGFsbGluZywKLSAgICBudWxsLAotICAgICdhZnRlciBhY3RpdmF0ZWQg
bmV3UmVnaXN0cmF0aW9uLmluc3RhbGxpbmcnCi0gICk7Ci0gIGFzc2VydF9lcXVhbHMoCi0gICAg
bmV3UmVnaXN0cmF0aW9uLndhaXRpbmcsCi0gICAgbnVsbCwKLSAgICAnYWZ0ZXIgYWN0aXZhdGVk
IG5ld1JlZ2lzdHJhdGlvbi53YWl0aW5nJwotICApOwotICBhc3NlcnRfZXF1YWxzKAotICAgIG5l
d1JlZ2lzdHJhdGlvbi5hY3RpdmUuc2NyaXB0VVJMLAotICAgIG5vcm1hbGl6ZVVSTChuZXdXb3Jr
ZXJVUkwpLAotICAgICdhZnRlciBhY3RpdmF0ZWQgbmV3UmVnaXN0cmF0aW9uLmFjdGl2ZScKLSAg
KTsKLQotICBjb25zdCBuZXdJZnJhbWUgPSBhd2FpdCB3aXRoX2lmcmFtZShzY29wZSk7Ci0gIHQu
YWRkX2NsZWFudXAoKCkgPT4gbmV3SWZyYW1lLnJlbW92ZSgpKTsKLQotICBhc3NlcnRfZXF1YWxz
KAotICAgIG5ld0lmcmFtZS5jb250ZW50V2luZG93Lm5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLmNv
bnRyb2xsZXIuc2NyaXB0VVJMLAotICAgIG5vcm1hbGl6ZVVSTChuZXdXb3JrZXJVUkwpLAotICAg
ICd0aGUgbmV3IHdvcmtlciBzaG91bGQgY29udHJvbCBhIG5ldyBkb2N1bWVudCcKLSAgKTsKK2Fz
eW5jX3Rlc3QoZnVuY3Rpb24odCkgeworICAgIHZhciBzY29wZSA9ICdyZXNvdXJjZXMvc2NvcGUv
dW5yZWdpc3Rlci10aGVuLXJlZ2lzdGVyLW5ldy1zY3JpcHQtdGhhdC1leGlzdHMnOworICAgIHZh
ciBuZXdfd29ya2VyX3VybCA9IHdvcmtlcl91cmwgKyAnP25ldyc7CisgICAgdmFyIGlmcmFtZTsK
KyAgICB2YXIgcmVnaXN0cmF0aW9uOworICAgIHZhciBuZXdfcmVnaXN0cmF0aW9uOworCisgICAg
c2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgd29ya2VyX3VybCwgc2Nv
cGUpCisgICAgICAudGhlbihmdW5jdGlvbihyKSB7CisgICAgICAgICAgcmVnaXN0cmF0aW9uID0g
cjsKKyAgICAgICAgICByZXR1cm4gd2FpdF9mb3Jfc3RhdGUodCwgci5pbnN0YWxsaW5nLCAnYWN0
aXZhdGVkJyk7CisgICAgICAgIH0pCisgICAgICAudGhlbihmdW5jdGlvbigpIHsKKyAgICAgICAg
ICByZXR1cm4gd2l0aF9pZnJhbWUoc2NvcGUpOworICAgICAgICB9KQorICAgICAgLnRoZW4oZnVu
Y3Rpb24oZnJhbWUpIHsKKyAgICAgICAgICBpZnJhbWUgPSBmcmFtZTsKKyAgICAgICAgICByZXR1
cm4gcmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIoKTsKKyAgICAgICAgfSkKKyAgICAgIC50aGVuKGZ1
bmN0aW9uKCkgeworICAgICAgICAgIHJldHVybiBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdp
c3RlcihuZXdfd29ya2VyX3VybCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgeyBzY29wZTogc2NvcGUgfSk7CisgICAgICAgIH0pCisgICAgICAudGhl
bihmdW5jdGlvbihyKSB7CisgICAgICAgICAgbmV3X3JlZ2lzdHJhdGlvbiA9IHI7CisgICAgICAg
ICAgYXNzZXJ0X2VxdWFscyhyZWdpc3RyYXRpb24uaW5zdGFsbGluZy5zY3JpcHRVUkwsCisgICAg
ICAgICAgICAgICAgICAgICAgICBub3JtYWxpemVVUkwobmV3X3dvcmtlcl91cmwpLAorICAgICAg
ICAgICAgICAgICAgICAgICAgJ2JlZm9yZSBhY3RpdmF0ZWQgcmVnaXN0cmF0aW9uLmluc3RhbGxp
bmcnKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi53YWl0aW5nLCBudWxs
LAorICAgICAgICAgICAgICAgICAgICAgICAgJ2JlZm9yZSBhY3RpdmF0ZWQgcmVnaXN0cmF0aW9u
LndhaXRpbmcnKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi5hY3RpdmUu
c2NyaXB0VVJMLCBub3JtYWxpemVVUkwod29ya2VyX3VybCksCisgICAgICAgICAgICAgICAgICAg
ICAgICAnYmVmb3JlIGFjdGl2YXRlZCByZWdpc3RyYXRpb24uYWN0aXZlJyk7CisgICAgICAgICAg
YXNzZXJ0X2VxdWFscyhuZXdfcmVnaXN0cmF0aW9uLmluc3RhbGxpbmcuc2NyaXB0VVJMLAorICAg
ICAgICAgICAgICAgICAgICAgICAgbm9ybWFsaXplVVJMKG5ld193b3JrZXJfdXJsKSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICdiZWZvcmUgYWN0aXZhdGVkIG5ld19yZWdpc3RyYXRpb24uaW5z
dGFsbGluZycpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMobmV3X3JlZ2lzdHJhdGlvbi53YWl0
aW5nLCBudWxsLAorICAgICAgICAgICAgICAgICAgICAgICAgJ2JlZm9yZSBhY3RpdmF0ZWQgbmV3
X3JlZ2lzdHJhdGlvbi53YWl0aW5nJyk7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhuZXdfcmVn
aXN0cmF0aW9uLmFjdGl2ZS5zY3JpcHRVUkwsCisgICAgICAgICAgICAgICAgICAgICAgICBub3Jt
YWxpemVVUkwod29ya2VyX3VybCksCisgICAgICAgICAgICAgICAgICAgICAgICAnYmVmb3JlIGFj
dGl2YXRlZCBuZXdfcmVnaXN0cmF0aW9uLmFjdGl2ZScpOworICAgICAgICAgIGlmcmFtZS5yZW1v
dmUoKTsKKyAgICAgICAgICByZXR1cm4gd2FpdF9mb3Jfc3RhdGUodCwgcmVnaXN0cmF0aW9uLmlu
c3RhbGxpbmcsICdhY3RpdmF0ZWQnKTsKKyAgICAgICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9u
KCkgeworICAgICAgICAgIGFzc2VydF9lcXVhbHMobmV3X3JlZ2lzdHJhdGlvbi5pbnN0YWxsaW5n
LCBudWxsLAorICAgICAgICAgICAgICAgICAgICAgICAgJ2FmdGVyIGFjdGl2YXRlZCBuZXdfcmVn
aXN0cmF0aW9uLmluc3RhbGxpbmcnKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKG5ld19yZWdp
c3RyYXRpb24ud2FpdGluZywgbnVsbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICdhZnRlciBh
Y3RpdmF0ZWQgbmV3X3JlZ2lzdHJhdGlvbi53YWl0aW5nJyk7CisgICAgICAgICAgYXNzZXJ0X2Vx
dWFscyhuZXdfcmVnaXN0cmF0aW9uLmFjdGl2ZS5zY3JpcHRVUkwsCisgICAgICAgICAgICAgICAg
ICAgICAgICBub3JtYWxpemVVUkwobmV3X3dvcmtlcl91cmwpLAorICAgICAgICAgICAgICAgICAg
ICAgICAgJ2FmdGVyIGFjdGl2YXRlZCBuZXdfcmVnaXN0cmF0aW9uLmFjdGl2ZScpOworICAgICAg
ICAgIHJldHVybiB3aXRoX2lmcmFtZShzY29wZSk7CisgICAgICAgIH0pCisgICAgICAudGhlbihm
dW5jdGlvbihmcmFtZSkgeworICAgICAgICAgIGFzc2VydF9lcXVhbHMoCisgICAgICAgICAgICAg
IGZyYW1lLmNvbnRlbnRXaW5kb3cubmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuY29udHJvbGxlci5z
Y3JpcHRVUkwsCisgICAgICAgICAgICAgIG5vcm1hbGl6ZVVSTChuZXdfd29ya2VyX3VybCksCisg
ICAgICAgICAgICAgICd0aGUgbmV3IHdvcmtlciBzaG91bGQgY29udHJvbCBhIG5ldyBkb2N1bWVu
dCcpOworICAgICAgICAgIGZyYW1lLnJlbW92ZSgpOworICAgICAgICAgIHJldHVybiByZWdpc3Ry
YXRpb24udW5yZWdpc3RlcigpOworICAgICAgICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7
CisgICAgICAgICAgdC5kb25lKCk7CisgICAgICAgIH0pCisgICAgICAuY2F0Y2godW5yZWFjaGVk
X3JlamVjdGlvbih0KSk7CiB9LCAnUmVnaXN0ZXJpbmcgYSBuZXcgc2NyaXB0IFVSTCB3aGlsZSBh
biB1bnJlZ2lzdGVyZWQgcmVnaXN0cmF0aW9uIGlzIGluIHVzZScpOwogCi1wcm9taXNlX3Rlc3Qo
YXN5bmMgZnVuY3Rpb24odCkgewotICBjb25zdCBzY29wZSA9ICdyZXNvdXJjZXMvc2NvcGUvdW5y
ZWdpc3Rlci10aGVuLXJlZ2lzdGVyLW5ldy1zY3JpcHQtdGhhdC00MDRzJzsKLSAgY29uc3QgcmVn
aXN0cmF0aW9uID0gYXdhaXQgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIo
dCwgd29ya2VyX3VybCwgc2NvcGUpOwotICB0LmFkZF9jbGVhbnVwKCgpID0+IHJlZ2lzdHJhdGlv
bi51bnJlZ2lzdGVyKCkpOwotCi0gIGF3YWl0IHdhaXRfZm9yX3N0YXRlKHQsIHJlZ2lzdHJhdGlv
bi5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7Ci0KLSAgY29uc3QgaWZyYW1lID0gYXdhaXQgd2l0
aF9pZnJhbWUoc2NvcGUpOwotICB0LmFkZF9jbGVhbnVwKCgpID0+IGlmcmFtZS5yZW1vdmUoKSk7
Ci0KLSAgYXdhaXQgcmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIoKTsKLQotICBhd2FpdCBwcm9taXNl
X3JlamVjdHMoCi0gICAgdCwgbmV3IFR5cGVFcnJvcigpLAotICAgIG5hdmlnYXRvci5zZXJ2aWNl
V29ya2VyLnJlZ2lzdGVyKCd0aGlzLXdpbGwtNDA0JywgeyBzY29wZSB9KQotICApOwotCi0gIGFz
c2VydF9lcXVhbHMocmVnaXN0cmF0aW9uLmluc3RhbGxpbmcsIG51bGwsICdyZWdpc3RyYXRpb24u
aW5zdGFsbGluZycpOwotICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi53YWl0aW5nLCBudWxs
LCAncmVnaXN0cmF0aW9uLndhaXRpbmcnKTsKLSAgYXNzZXJ0X2VxdWFscyhyZWdpc3RyYXRpb24u
YWN0aXZlLnNjcmlwdFVSTCwgbm9ybWFsaXplVVJMKHdvcmtlcl91cmwpLCAncmVnaXN0cmF0aW9u
LmFjdGl2ZScpOwotCi0gIGNvbnN0IG5ld0lmcmFtZSA9IGF3YWl0IHdpdGhfaWZyYW1lKHNjb3Bl
KTsKLSAgdC5hZGRfY2xlYW51cCgoKSA9PiBuZXdJZnJhbWUucmVtb3ZlKCkpOwotCi0gIGFzc2Vy
dF9lcXVhbHMobmV3SWZyYW1lLmNvbnRlbnRXaW5kb3cubmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIu
Y29udHJvbGxlciwgbnVsbCwgJ0RvY3VtZW50IHNob3VsZCBub3QgYmUgY29udHJvbGxlZCcpOwot
fSwgJ1JlZ2lzdGVyaW5nIGEgbmV3IHNjcmlwdCBVUkwgdGhhdCA0MDRzIGRvZXMgbm90IHJlc3Vy
cmVjdCB1bnJlZ2lzdGVyZWQgcmVnaXN0cmF0aW9uJyk7Ci0KLXByb21pc2VfdGVzdChhc3luYyBm
dW5jdGlvbih0KSB7Ci0gIGNvbnN0IHNjb3BlID0gJ3Jlc291cmNlcy9zY29wZS91bnJlZ2lzdGVy
LXRoZW4tcmVnaXN0ZXItcmVqZWN0LWluc3RhbGwtd29ya2VyJzsKLSAgY29uc3QgcmVnaXN0cmF0
aW9uID0gYXdhaXQgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgd29y
a2VyX3VybCwgc2NvcGUpOwotICB0LmFkZF9jbGVhbnVwKCgpID0+IHJlZ2lzdHJhdGlvbi51bnJl
Z2lzdGVyKCkpOwotCi0gIGF3YWl0IHdhaXRfZm9yX3N0YXRlKHQsIHJlZ2lzdHJhdGlvbi5pbnN0
YWxsaW5nLCAnYWN0aXZhdGVkJyk7Ci0KLSAgY29uc3QgaWZyYW1lID0gYXdhaXQgd2l0aF9pZnJh
bWUoc2NvcGUpOwotICB0LmFkZF9jbGVhbnVwKCgpID0+IGlmcmFtZS5yZW1vdmUoKSk7Ci0KLSAg
YXdhaXQgcmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIoKTsKLQotICBjb25zdCBuZXdSZWdpc3RyYXRp
b24gPSBhd2FpdCBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3RlcigKLSAgICAncmVzb3Vy
Y2VzL3JlamVjdC1pbnN0YWxsLXdvcmtlci5qcycsIHsgc2NvcGUgfQotICApOwotICB0LmFkZF9j
bGVhbnVwKCgpID0+IG5ld1JlZ2lzdHJhdGlvbi51bnJlZ2lzdGVyKCkpOwotCi0gIGF3YWl0IHdh
aXRfZm9yX3N0YXRlKHQsIG5ld1JlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLCAncmVkdW5kYW50Jyk7
Ci0KLSAgYXNzZXJ0X2VxdWFscyhyZWdpc3RyYXRpb24uaW5zdGFsbGluZywgbnVsbCwgJ3JlZ2lz
dHJhdGlvbi5pbnN0YWxsaW5nJyk7Ci0gIGFzc2VydF9lcXVhbHMocmVnaXN0cmF0aW9uLndhaXRp
bmcsIG51bGwsICdyZWdpc3RyYXRpb24ud2FpdGluZycpOwotICBhc3NlcnRfZXF1YWxzKHJlZ2lz
dHJhdGlvbi5hY3RpdmUuc2NyaXB0VVJMLCBub3JtYWxpemVVUkwod29ya2VyX3VybCksCi0gICAg
ICAgICAgICAgICAgJ3JlZ2lzdHJhdGlvbi5hY3RpdmUnKTsKLSAgYXNzZXJ0X25vdF9lcXVhbHMo
cmVnaXN0cmF0aW9uLCBuZXdSZWdpc3RyYXRpb24sICdOZXcgcmVnaXN0cmF0aW9uIGlzIGRpZmZl
cmVudCcpOwotfSwgJ1JlZ2lzdGVyaW5nIGEgbmV3IHNjcmlwdCBVUkwgdGhhdCBmYWlscyB0byBp
bnN0YWxsIGRvZXMgbm90IHJlc3VycmVjdCB1bnJlZ2lzdGVyZWQgcmVnaXN0cmF0aW9uJyk7Cith
c3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgICB2YXIgc2NvcGUgPSAncmVzb3VyY2VzL3Njb3Bl
L3VucmVnaXN0ZXItdGhlbi1yZWdpc3Rlci1uZXctc2NyaXB0LXRoYXQtNDA0cyc7CisgICAgdmFy
IGlmcmFtZTsKKyAgICB2YXIgcmVnaXN0cmF0aW9uOworCisgICAgc2VydmljZV93b3JrZXJfdW5y
ZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgd29ya2VyX3VybCwgc2NvcGUpCisgICAgICAudGhlbihm
dW5jdGlvbihyKSB7CisgICAgICAgICAgcmVnaXN0cmF0aW9uID0gcjsKKyAgICAgICAgICByZXR1
cm4gd2FpdF9mb3Jfc3RhdGUodCwgci5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7CisgICAgICAg
IH0pCisgICAgICAudGhlbihmdW5jdGlvbigpIHsKKyAgICAgICAgICByZXR1cm4gd2l0aF9pZnJh
bWUoc2NvcGUpOworICAgICAgICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24oZnJhbWUpIHsKKyAg
ICAgICAgICBpZnJhbWUgPSBmcmFtZTsKKyAgICAgICAgICByZXR1cm4gcmVnaXN0cmF0aW9uLnVu
cmVnaXN0ZXIoKTsKKyAgICAgICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKCkgeworICAgICAg
ICAgIC8vIFN0ZXAgNS4xIG9mIFJlZ2lzdGVyIGNsZWFycyB0aGUgdW5pbnN0YWxsIGZsYWcgYmVm
b3JlIGZldGNoaW5nCisgICAgICAgICAgLy8gdGhlIHNjcmlwdDoKKyAgICAgICAgICAvLworICAg
ICAgICAgIC8vICBodHRwczovL3czYy5naXRodWIuaW8vU2VydmljZVdvcmtlci8jcmVnaXN0ZXIt
YWxnb3JpdGhtCisgICAgICAgICAgdmFyIHByb21pc2UgPSBuYXZpZ2F0b3Iuc2VydmljZVdvcmtl
ci5yZWdpc3RlcigndGhpcy13aWxsLTQwNCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHNjb3BlOiBzY29wZSB9KTsKKyAgICAgICAg
ICByZXR1cm4gcHJvbWlzZTsKKyAgICAgICAgfSkKKyAgICAgIC50aGVuKAorICAgICAgICBmdW5j
dGlvbigpIHsKKyAgICAgICAgICBhc3NlcnRfdW5yZWFjaGVkKCdyZWdpc3RlciBzaG91bGQgcmVq
ZWN0IHRoZSBwcm9taXNlJyk7CisgICAgICAgIH0sCisgICAgICAgIGZ1bmN0aW9uKCkgeworICAg
ICAgICAgIGFzc2VydF9lcXVhbHMocmVnaXN0cmF0aW9uLmluc3RhbGxpbmcsIG51bGwsCisgICAg
ICAgICAgICAgICAgICAgICAgICAncmVnaXN0cmF0aW9uLmluc3RhbGxpbmcnKTsKKyAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi53YWl0aW5nLCBudWxsLAorICAgICAgICAgICAg
ICAgICAgICAgICAgJ3JlZ2lzdHJhdGlvbi53YWl0aW5nJyk7CisgICAgICAgICAgYXNzZXJ0X2Vx
dWFscyhyZWdpc3RyYXRpb24uYWN0aXZlLnNjcmlwdFVSTCwgbm9ybWFsaXplVVJMKHdvcmtlcl91
cmwpLAorICAgICAgICAgICAgICAgICAgICAgICAgJ3JlZ2lzdHJhdGlvbi5hY3RpdmUnKTsKKyAg
ICAgICAgICBpZnJhbWUucmVtb3ZlKCk7CisgICAgICAgICAgcmV0dXJuIHdpdGhfaWZyYW1lKHNj
b3BlKTsKKyAgICAgICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKGZyYW1lKSB7CisgICAgICAg
ICAgYXNzZXJ0X2VxdWFscygKKyAgICAgICAgICAgICAgZnJhbWUuY29udGVudFdpbmRvdy5uYXZp
Z2F0b3Iuc2VydmljZVdvcmtlci5jb250cm9sbGVyLnNjcmlwdFVSTCwKKyAgICAgICAgICAgICAg
bm9ybWFsaXplVVJMKHdvcmtlcl91cmwpLAorICAgICAgICAgICAgICAndGhlIG9yaWdpbmFsIHdv
cmtlciBzaG91bGQgY29udHJvbCBhIG5ldyBkb2N1bWVudCcpOworICAgICAgICAgIGZyYW1lLnJl
bW92ZSgpOworICAgICAgICAgIHJldHVybiByZWdpc3RyYXRpb24udW5yZWdpc3RlcigpOworICAg
ICAgICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7CisgICAgICAgICAgdC5kb25lKCk7Cisg
ICAgICAgIH0pCisgICAgICAuY2F0Y2godW5yZWFjaGVkX3JlamVjdGlvbih0KSk7Cit9LCAnUmVn
aXN0ZXJpbmcgYSBuZXcgc2NyaXB0IFVSTCB0aGF0IDQwNHMgZG9lcyByZXN1cnJlY3QgYW4gJyAr
CisgICAgICAgJ3VucmVnaXN0ZXJlZCByZWdpc3RyYXRpb24nKTsKKworYXN5bmNfdGVzdChmdW5j
dGlvbih0KSB7CisgICAgdmFyIHNjb3BlID0gJ3Jlc291cmNlcy9zY29wZS91bnJlZ2lzdGVyLXRo
ZW4tcmVnaXN0ZXItcmVqZWN0LWluc3RhbGwtd29ya2VyJzsKKyAgICB2YXIgaWZyYW1lOworICAg
IHZhciByZWdpc3RyYXRpb247CisKKyAgICBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9y
ZWdpc3Rlcih0LCB3b3JrZXJfdXJsLCBzY29wZSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKHIpIHsK
KyAgICAgICAgICByZWdpc3RyYXRpb24gPSByOworICAgICAgICAgIHJldHVybiB3YWl0X2Zvcl9z
dGF0ZSh0LCByLmluc3RhbGxpbmcsICdhY3RpdmF0ZWQnKTsKKyAgICAgICAgfSkKKyAgICAgIC50
aGVuKGZ1bmN0aW9uKCkgeworICAgICAgICAgIHJldHVybiB3aXRoX2lmcmFtZShzY29wZSk7Cisg
ICAgICAgIH0pCisgICAgICAudGhlbihmdW5jdGlvbihmcmFtZSkgeworICAgICAgICAgIGlmcmFt
ZSA9IGZyYW1lOworICAgICAgICAgIHJldHVybiByZWdpc3RyYXRpb24udW5yZWdpc3RlcigpOwor
ICAgICAgICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7CisgICAgICAgICAgLy8gU3RlcCA1
LjEgb2YgUmVnaXN0ZXIgY2xlYXJzIHRoZSB1bmluc3RhbGwgZmxhZyBiZWZvcmUgZmlyaW5nCisg
ICAgICAgICAgLy8gdGhlIGluc3RhbGwgZXZlbnQ6CisgICAgICAgICAgLy8KKyAgICAgICAgICAv
LyAgaHR0cHM6Ly93M2MuZ2l0aHViLmlvL1NlcnZpY2VXb3JrZXIvI3JlZ2lzdGVyLWFsZ29yaXRo
bQorICAgICAgICAgIHZhciBwcm9taXNlID0gbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0
ZXIoCisgICAgICAgICAgICAgICdyZXNvdXJjZXMvcmVqZWN0LWluc3RhbGwtd29ya2VyLmpzJywg
eyBzY29wZTogc2NvcGUgfSk7CisgICAgICAgICAgcmV0dXJuIHByb21pc2U7CisgICAgICAgIH0p
CisgICAgICAudGhlbihmdW5jdGlvbihyKSB7CisgICAgICAgICAgcmVnaXN0cmF0aW9uID0gcjsK
KyAgICAgICAgICByZXR1cm4gd2FpdF9mb3Jfc3RhdGUodCwgci5pbnN0YWxsaW5nLCAncmVkdW5k
YW50Jyk7CisgICAgICAgIH0pCisgICAgICAudGhlbihmdW5jdGlvbigpIHsKKyAgICAgICAgICBh
c3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLCBudWxsLAorICAgICAgICAgICAg
ICAgICAgICAgICAgJ3JlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nJyk7CisgICAgICAgICAgYXNzZXJ0
X2VxdWFscyhyZWdpc3RyYXRpb24ud2FpdGluZywgbnVsbCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICdyZWdpc3RyYXRpb24ud2FpdGluZycpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVn
aXN0cmF0aW9uLmFjdGl2ZS5zY3JpcHRVUkwsIG5vcm1hbGl6ZVVSTCh3b3JrZXJfdXJsKSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICdyZWdpc3RyYXRpb24uYWN0aXZlJyk7CisgICAgICAgICAg
aWZyYW1lLnJlbW92ZSgpOworICAgICAgICAgIHJldHVybiB3aXRoX2lmcmFtZShzY29wZSk7Cisg
ICAgICAgIH0pCisgICAgICAudGhlbihmdW5jdGlvbihmcmFtZSkgeworICAgICAgICAgIGFzc2Vy
dF9lcXVhbHMoCisgICAgICAgICAgICAgIGZyYW1lLmNvbnRlbnRXaW5kb3cubmF2aWdhdG9yLnNl
cnZpY2VXb3JrZXIuY29udHJvbGxlci5zY3JpcHRVUkwsCisgICAgICAgICAgICAgIG5vcm1hbGl6
ZVVSTCh3b3JrZXJfdXJsKSwKKyAgICAgICAgICAgICAgJ3RoZSBvcmlnaW5hbCB3b3JrZXIgc2hv
dWxkIGNvbnRyb2wgYSBuZXcgZG9jdW1lbnQnKTsKKyAgICAgICAgICBmcmFtZS5yZW1vdmUoKTsK
KyAgICAgICAgICByZXR1cm4gcmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIoKTsKKyAgICAgICAgfSkK
KyAgICAgIC50aGVuKGZ1bmN0aW9uKCkgeworICAgICAgICAgIHQuZG9uZSgpOworICAgICAgICB9
KQorICAgICAgLmNhdGNoKHVucmVhY2hlZF9yZWplY3Rpb24odCkpOworICB9LCAnUmVnaXN0ZXJp
bmcgYSBuZXcgc2NyaXB0IFVSTCB0aGF0IGZhaWxzIHRvIGluc3RhbGwgZG9lcyByZXN1cnJlY3Qg
JyArCisgICAgICAgJ2FuIHVucmVnaXN0ZXJlZCByZWdpc3RyYXRpb24nKTsKIDwvc2NyaXB0Pgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdW5yZWdpc3Rlci10aGVuLXJlZ2lzdGVyLmh0
dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VucmVnaXN0ZXItdGhlbi1yZWdp
c3Rlci5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggNWZhOTljMzI5MjI1Mzk5NWM5MDVlNmU3YzQw
MzJmYzViZTYwZjBlMS4uYzI3OGM5ZTY4MTEyNjAwZTZiZWVjZDUxYjMxNDEyMmQwNGIwNDhjNSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdW5yZWdpc3Rlci10aGVuLXJlZ2lzdGVyLmh0
dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91bnJlZ2lzdGVyLXRoZW4t
cmVnaXN0ZXIuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0xLDYgKzEsOCBAQAogCisKIFBBU1MgVW5y
ZWdpc3RlciB0aGVuIHJlZ2lzdGVyIHJlc29sdmVzIHRvIGEgbmV3IHZhbHVlIAotUEFTUyBVbnJl
Z2lzdGVyIHRoZW4gcmVnaXN0ZXIgZG9lcyBub3QgcmVzb2x2ZSB0byB0aGUgb3JpZ2luYWwgdmFs
dWUgZXZlbiBpZiB0aGUgcmVnaXN0cmF0aW9uIGlzIGluIHVzZS4gCi1QQVNTIFVucmVnaXN0ZXIg
dGhlbiByZWdpc3RlciBkb2VzIG5vdCBhZmZlY3QgZXhpc3RpbmcgY29udHJvbGxlZSAKLVBBU1Mg
VW5yZWdpc3RlciB0aGVuIHJlZ2lzdGVyIGRvZXMgbm90IHJlc3VycmVjdCB0aGUgcmVnaXN0cmF0
aW9uIAorRkFJTCBVbnJlZ2lzdGVyIHRoZW4gcmVnaXN0ZXIgcmVzb2x2ZXMgdG8gdGhlIG9yaWdp
bmFsIHZhbHVlIGlmIHRoZSByZWdpc3RyYXRpb24gaXMgaW4gdXNlLiBhc3NlcnRfdW5yZWFjaGVk
OiB1bmV4cGVjdGVkIHJlamVjdGlvbjogYXNzZXJ0X2VxdWFsczogbmV3IHJlZ2lzdHJhdGlvbiBz
aG91bGQgcmVzb2x2ZSB0byB0aGUgc2FtZSByZWdpc3RyYXRpb24gZXhwZWN0ZWQgb2JqZWN0ICJb
b2JqZWN0IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25dIiBidXQgZ290IG9iamVjdCAiW29iamVj
dCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uXSIgUmVhY2hlZCB1bnJlYWNoYWJsZSBjb2RlCitQ
QVNTIFJlbG9hZGluZyB0aGUgbGFzdCBjb250cm9sbGVkIGlmcmFtZSBhZnRlciB1bnJlZ2lzdHJh
dGlvbiBzaG91bGQgZW5zdXJlIHRoZSBkZWxldGlvbiBvZiB0aGUgcmVnaXN0cmF0aW9uIAorRkFJ
TCBVbnJlZ2lzdGVyIHRoZW4gcmVnaXN0ZXIgZG9lcyBub3QgYWZmZWN0IGV4aXN0aW5nIGNvbnRy
b2xsZWUgYXNzZXJ0X3VucmVhY2hlZDogdW5leHBlY3RlZCByZWplY3Rpb246IGFzc2VydF9lcXVh
bHM6IGluc3RhbGxpbmcgdmVyc2lvbiBpcyBudWxsIGV4cGVjdGVkIG51bGwgYnV0IGdvdCBvYmpl
Y3QgIltvYmplY3QgU2VydmljZVdvcmtlcl0iIFJlYWNoZWQgdW5yZWFjaGFibGUgY29kZQorUEFT
UyBVbnJlZ2lzdGVyIHRoZW4gcmVnaXN0ZXIgcmVzdXJyZWN0cyB0aGUgcmVnaXN0cmF0aW9uIAog
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91bnJlZ2lzdGVyLXRoZW4tcmVnaXN0ZXIu
aHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VucmVnaXN0ZXItdGhlbi1yZWdpc3Rlci5o
dHRwcy5odG1sCmluZGV4IGI2MTYwOGM4NDE5ZmQ0ZjM2MmRlZTUzMzA0MDRlMjc0M2EyZjA1ZjYu
LjZjMGEwYWVjZjNmNTYyYTU2ZWRmN2ZmNjVhY2I5ZmNkNjc1Y2RmYTYgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL3VucmVnaXN0ZXItdGhlbi1yZWdpc3Rlci5odHRwcy5odG1sCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL3VucmVnaXN0ZXItdGhlbi1yZWdpc3Rlci5odHRwcy5odG1sCkBA
IC01LDUzICs1LDEwMyBAQAogPHNjcmlwdD4KIHZhciB3b3JrZXJfdXJsID0gJ3Jlc291cmNlcy9l
bXB0eS13b3JrZXIuanMnOwogCi1wcm9taXNlX3Rlc3QoYXN5bmMgZnVuY3Rpb24odCkgewotICAg
IGNvbnN0IHNjb3BlID0gJ3Jlc291cmNlcy9zY29wZS9yZS1yZWdpc3Rlci1yZXNvbHZlcy10by1u
ZXctdmFsdWUnOwotICAgIGNvbnN0IHJlZ2lzdHJhdGlvbiA9IGF3YWl0IHNlcnZpY2Vfd29ya2Vy
X3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHdvcmtlcl91cmwsIHNjb3BlKTsKLSAgICB0LmFk
ZF9jbGVhbnVwKCgpID0+IHJlZ2lzdHJhdGlvbi51bnJlZ2lzdGVyKCkpOwotCi0gICAgYXdhaXQg
d2FpdF9mb3Jfc3RhdGUodCwgcmVnaXN0cmF0aW9uLmluc3RhbGxpbmcsICdhY3RpdmF0ZWQnKTsK
LSAgICBhd2FpdCByZWdpc3RyYXRpb24udW5yZWdpc3RlcigpOwotICAgIGNvbnN0IG5ld1JlZ2lz
dHJhdGlvbiA9IGF3YWl0IG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKHdvcmtlcl91
cmwsIHsgc2NvcGUgfSk7Ci0gICAgdC5hZGRfY2xlYW51cCgoKSA9PiBuZXdSZWdpc3RyYXRpb24u
dW5yZWdpc3RlcigpKTsKK2FzeW5jX3Rlc3QoZnVuY3Rpb24odCkgeworICAgIHZhciBzY29wZSA9
ICdyZXNvdXJjZXMvc2NvcGUvcmUtcmVnaXN0ZXItcmVzb2x2ZXMtdG8tbmV3LXZhbHVlJzsKKyAg
ICB2YXIgcmVnaXN0cmF0aW9uOwogCi0gICAgYXNzZXJ0X25vdF9lcXVhbHMoCi0gICAgICByZWdp
c3RyYXRpb24sIG5ld1JlZ2lzdHJhdGlvbiwKLSAgICAgICdyZWdpc3RlciBzaG91bGQgcmVzb2x2
ZSB0byBhIG5ldyB2YWx1ZScKLSAgICApOworICAgIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJf
YW5kX3JlZ2lzdGVyKHQsIHdvcmtlcl91cmwsIHNjb3BlKQorICAgICAgLnRoZW4oZnVuY3Rpb24o
cikgeworICAgICAgICAgIHJlZ2lzdHJhdGlvbiA9IHI7CisgICAgICAgICAgcmV0dXJuIHdhaXRf
Zm9yX3N0YXRlKHQsIHIuaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOworICAgICAgICB9KQorICAg
ICAgLnRoZW4oZnVuY3Rpb24oKSB7CisgICAgICAgICAgcmV0dXJuIHJlZ2lzdHJhdGlvbi51bnJl
Z2lzdGVyKCk7CisgICAgICAgIH0pCisgICAgICAudGhlbihmdW5jdGlvbigpIHsKKyAgICAgICAg
ICByZXR1cm4gbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIod29ya2VyX3VybCwgeyBz
Y29wZTogc2NvcGUgfSk7CisgICAgICAgIH0pCisgICAgICAudGhlbihmdW5jdGlvbihuZXdfcmVn
aXN0cmF0aW9uKSB7CisgICAgICAgICAgYXNzZXJ0X25vdF9lcXVhbHMocmVnaXN0cmF0aW9uLCBu
ZXdfcmVnaXN0cmF0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICdyZWdpc3RlciBz
aG91bGQgcmVzb2x2ZSB0byBhIG5ldyB2YWx1ZScpOworICAgICAgICAgIHNlcnZpY2Vfd29ya2Vy
X3VucmVnaXN0ZXJfYW5kX2RvbmUodCwgc2NvcGUpOworICAgICAgICB9KQorICAgICAgLmNhdGNo
KHVucmVhY2hlZF9yZWplY3Rpb24odCkpOwogICB9LCAnVW5yZWdpc3RlciB0aGVuIHJlZ2lzdGVy
IHJlc29sdmVzIHRvIGEgbmV3IHZhbHVlJyk7CiAKLXByb21pc2VfdGVzdChhc3luYyBmdW5jdGlv
bih0KSB7Ci0gIGNvbnN0IHNjb3BlID0gJ3Jlc291cmNlcy9zY29wZS9yZS1yZWdpc3Rlci13aGls
ZS1vbGQtcmVnaXN0cmF0aW9uLWluLXVzZSc7Ci0gIGNvbnN0IHJlZ2lzdHJhdGlvbiA9IGF3YWl0
IHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHdvcmtlcl91cmwsIHNj
b3BlKTsKLSAgdC5hZGRfY2xlYW51cCgoKSA9PiByZWdpc3RyYXRpb24udW5yZWdpc3RlcigpKTsK
LQotICBhd2FpdCB3YWl0X2Zvcl9zdGF0ZSh0LCByZWdpc3RyYXRpb24uaW5zdGFsbGluZywgJ2Fj
dGl2YXRlZCcpOwotICBjb25zdCBmcmFtZSA9IGF3YWl0IHdpdGhfaWZyYW1lKHNjb3BlKTsKLSAg
dC5hZGRfY2xlYW51cCgoKSA9PiBmcmFtZS5yZW1vdmUoKSk7Cithc3luY190ZXN0KGZ1bmN0aW9u
KHQpIHsKKyAgICB2YXIgc2NvcGUgPSAncmVzb3VyY2VzL3Njb3BlL3JlLXJlZ2lzdGVyLXdoaWxl
LW9sZC1yZWdpc3RyYXRpb24taW4tdXNlJzsKKyAgICB2YXIgcmVnaXN0cmF0aW9uOwogCi0gIGF3
YWl0IHJlZ2lzdHJhdGlvbi51bnJlZ2lzdGVyKCk7Ci0gIGNvbnN0IG5ld1JlZ2lzdHJhdGlvbiA9
IGF3YWl0IG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKHdvcmtlcl91cmwsIHsgc2Nv
cGUgfSk7Ci0gIHQuYWRkX2NsZWFudXAoKCkgPT4gbmV3UmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIo
KSk7CisgICAgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgd29ya2Vy
X3VybCwgc2NvcGUpCisgICAgICAudGhlbihmdW5jdGlvbihyKSB7CisgICAgICAgICAgcmVnaXN0
cmF0aW9uID0gcjsKKyAgICAgICAgICByZXR1cm4gd2FpdF9mb3Jfc3RhdGUodCwgci5pbnN0YWxs
aW5nLCAnYWN0aXZhdGVkJyk7CisgICAgICAgIH0pCisgICAgICAudGhlbihmdW5jdGlvbigpIHsK
KyAgICAgICAgICByZXR1cm4gd2l0aF9pZnJhbWUoc2NvcGUpOworICAgICAgICB9KQorICAgICAg
LnRoZW4oZnVuY3Rpb24oZnJhbWUpIHsKKyAgICAgICAgICByZXR1cm4gcmVnaXN0cmF0aW9uLnVu
cmVnaXN0ZXIoKTsKKyAgICAgICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKCkgeworICAgICAg
ICAgIHJldHVybiBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3Rlcih3b3JrZXJfdXJsLCB7
IHNjb3BlOiBzY29wZSB9KTsKKyAgICAgICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKG5ld19y
ZWdpc3RyYXRpb24pIHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlvbiwgbmV3
X3JlZ2lzdHJhdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICduZXcgcmVnaXN0cmF0aW9u
IHNob3VsZCByZXNvbHZlIHRvIHRoZSBzYW1lIHJlZ2lzdHJhdGlvbicpOworICAgICAgICAgIHNl
cnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX2RvbmUodCwgc2NvcGUpOworICAgICAgICB9KQor
ICAgICAgLmNhdGNoKHVucmVhY2hlZF9yZWplY3Rpb24odCkpOworICB9LCAnVW5yZWdpc3RlciB0
aGVuIHJlZ2lzdGVyIHJlc29sdmVzIHRvIHRoZSBvcmlnaW5hbCB2YWx1ZSBpZiB0aGUgJyArCisg
ICAgICAgICAncmVnaXN0cmF0aW9uIGlzIGluIHVzZS4nKTsKIAotICBhc3NlcnRfbm90X2VxdWFs
cygKLSAgICByZWdpc3RyYXRpb24sIG5ld1JlZ2lzdHJhdGlvbiwKLSAgICAnVW5yZWdpc3RlciBh
bmQgcmVnaXN0ZXIgc2hvdWxkIGFsd2F5cyBjcmVhdGUgYSBuZXcgcmVnaXN0cmF0aW9uJwotICAp
OwotfSwgJ1VucmVnaXN0ZXIgdGhlbiByZWdpc3RlciBkb2VzIG5vdCByZXNvbHZlIHRvIHRoZSBv
cmlnaW5hbCB2YWx1ZSBldmVuIGlmIHRoZSByZWdpc3RyYXRpb24gaXMgaW4gdXNlLicpOworYXN5
bmNfdGVzdChmdW5jdGlvbih0KSB7CisgICAgdmFyIHNjb3BlID0gJ3Jlc291cmNlcy9zY29wZS9j
b21wbGV0ZS11bnJlZ2lzdHJhdGlvbi1mb2xsb3dlZC1ieS0nICsKKyAgICAgICAgICAgICAgICAn
cmVsb2FkaW5nLWNvbnRyb2xsZWUtaWZyYW1lJzsKKyAgICB2YXIgcmVnaXN0cmF0aW9uOworICAg
IHZhciBmcmFtZTsKKyAgICB2YXIgc2VydmljZV93b3JrZXI7CisgICAgc2VydmljZV93b3JrZXJf
dW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgd29ya2VyX3VybCwgc2NvcGUpCisgICAgICAudGhl
bihmdW5jdGlvbihyKSB7CisgICAgICAgICAgcmVnaXN0cmF0aW9uID0gcjsKKyAgICAgICAgICBy
ZXR1cm4gd2FpdF9mb3Jfc3RhdGUodCwgci5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7CisgICAg
ICAgIH0pCisgICAgICAudGhlbihmdW5jdGlvbigpIHsKKyAgICAgICAgICByZXR1cm4gd2l0aF9p
ZnJhbWUoc2NvcGUpOworICAgICAgICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24oZikgeworICAg
ICAgICAgIGZyYW1lID0gZjsKKyAgICAgICAgICByZXR1cm4gcmVnaXN0cmF0aW9uLnVucmVnaXN0
ZXIoKTsKKyAgICAgICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKCkgeworICAgICAgICAgIHJl
dHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlKSB7CisgICAgICAgICAgICAgIGZyYW1l
Lm9ubG9hZCA9IHJlc29sdmU7CisgICAgICAgICAgICAgIGZyYW1lLmNvbnRlbnRXaW5kb3cubG9j
YXRpb24ucmVsb2FkKCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSkKKyAgICAgIC50aGVu
KGZ1bmN0aW9uKCkgeworICAgICAgICAgIHZhciBjID0gZnJhbWUuY29udGVudFdpbmRvdy5uYXZp
Z2F0b3Iuc2VydmljZVdvcmtlci5jb250cm9sbGVyOworICAgICAgICAgIGFzc2VydF9lcXVhbHMo
YywgbnVsbCwgJ2EgcGFnZSBhZnRlciB1bnJlZ2lzdHJhdGlvbiBzaG91bGQgbm90IGJlICcgKwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NvbnRyb2xsZWQgYnkgc2VydmljZSB3
b3JrZXInKTsKKyAgICAgICAgICByZXR1cm4gbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuZ2V0UmVn
aXN0cmF0aW9uKHNjb3BlKTsKKyAgICAgICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKHIpIHsK
KyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHIsIHVuZGVmaW5lZCwgJ2dldFJlZ2lzdHJhdGlvbiBz
aG91bGQgcmV0dXJuICcgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAn
dW5kZWZpbmVkIGFmdGVyIHVucmVnaXN0cmF0aW9uJyk7CisgICAgICAgICAgc2VydmljZV93b3Jr
ZXJfdW5yZWdpc3Rlcl9hbmRfZG9uZSh0LCBzY29wZSk7CisgICAgICAgIH0pCisgICAgICAuY2F0
Y2godW5yZWFjaGVkX3JlamVjdGlvbih0KSk7Cit9LCAnUmVsb2FkaW5nIHRoZSBsYXN0IGNvbnRy
b2xsZWQgaWZyYW1lIGFmdGVyIHVucmVnaXN0cmF0aW9uIHNob3VsZCBlbnN1cmUgJyArCisgICAn
dGhlIGRlbGV0aW9uIG9mIHRoZSByZWdpc3RyYXRpb24nKTsKIAotcHJvbWlzZV90ZXN0KGZ1bmN0
aW9uKHQpIHsKK2FzeW5jX3Rlc3QoZnVuY3Rpb24odCkgewogICAgIHZhciBzY29wZSA9ICdyZXNv
dXJjZXMvc2NvcGUvcmUtcmVnaXN0ZXItZG9lcy1ub3QtYWZmZWN0LWV4aXN0aW5nLWNvbnRyb2xs
ZWUnOwogICAgIHZhciBpZnJhbWU7CiAgICAgdmFyIHJlZ2lzdHJhdGlvbjsKICAgICB2YXIgY29u
dHJvbGxlcjsKIAotICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdp
c3Rlcih0LCB3b3JrZXJfdXJsLCBzY29wZSkKKyAgICBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVy
X2FuZF9yZWdpc3Rlcih0LCB3b3JrZXJfdXJsLCBzY29wZSkKICAgICAgIC50aGVuKGZ1bmN0aW9u
KHIpIHsKLSAgICAgICAgICB0LmFkZF9jbGVhbnVwKGZ1bmN0aW9uKCkgewotICAgICAgICAgICAg
cmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXIodCwgc2NvcGUpOwotICAgICAgICAgIH0p
OwotCiAgICAgICAgICAgcmVnaXN0cmF0aW9uID0gcjsKICAgICAgICAgICByZXR1cm4gd2FpdF9m
b3Jfc3RhdGUodCwgci5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7CiAgICAgICAgIH0pCkBAIC02
Niw3ICsxMTYsNyBAQCBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewogICAgICAgLnRoZW4oZnVu
Y3Rpb24oKSB7CiAgICAgICAgICAgcmV0dXJuIG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lz
dGVyKHdvcmtlcl91cmwsIHsgc2NvcGU6IHNjb3BlIH0pOwogICAgICAgICB9KQotICAgICAgLnRo
ZW4oZnVuY3Rpb24obmV3UmVnaXN0cmF0aW9uKSB7CisgICAgICAudGhlbihmdW5jdGlvbihyZWdp
c3RyYXRpb24pIHsKICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi5pbnN0YWxs
aW5nLCBudWxsLAogICAgICAgICAgICAgICAgICAgICAgICAgJ2luc3RhbGxpbmcgdmVyc2lvbiBp
cyBudWxsJyk7CiAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhyZWdpc3RyYXRpb24ud2FpdGluZywg
bnVsbCwgJ3dhaXRpbmcgdmVyc2lvbiBpcyBudWxsJyk7CkBAIC03NSwzMyArMTI1LDQyIEBAIHBy
b21pc2VfdGVzdChmdW5jdGlvbih0KSB7CiAgICAgICAgICAgICAgIGNvbnRyb2xsZXIsCiAgICAg
ICAgICAgICAgICd0aGUgd29ya2VyIGZyb20gdGhlIGZpcnN0IHJlZ2lzdHJhdGlvbiBpcyB0aGUg
Y29udHJvbGxlcicpOwogICAgICAgICAgIGlmcmFtZS5yZW1vdmUoKTsKLSAgICAgICAgfSk7Cisg
ICAgICAgICAgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfZG9uZSh0LCBzY29wZSk7Cisg
ICAgICAgIH0pCisgICAgICAuY2F0Y2godW5yZWFjaGVkX3JlamVjdGlvbih0KSk7CiAgIH0sICdV
bnJlZ2lzdGVyIHRoZW4gcmVnaXN0ZXIgZG9lcyBub3QgYWZmZWN0IGV4aXN0aW5nIGNvbnRyb2xs
ZWUnKTsKIAotcHJvbWlzZV90ZXN0KGFzeW5jIGZ1bmN0aW9uKHQpIHsKLSAgY29uc3Qgc2NvcGUg
PSAncmVzb3VyY2VzL3Njb3BlL3Jlc3VycmVjdGlvbic7Ci0gIGNvbnN0IGFsdFdvcmtlclVSTCA9
IHdvcmtlcl91cmwgKyAnP2FsdCc7Ci0gIGNvbnN0IHJlZ2lzdHJhdGlvbiA9IGF3YWl0IHNlcnZp
Y2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHdvcmtlcl91cmwsIHNjb3BlKTsK
LSAgdC5hZGRfY2xlYW51cCgoKSA9PiByZWdpc3RyYXRpb24udW5yZWdpc3RlcigpKTsKLQotICBh
d2FpdCB3YWl0X2Zvcl9zdGF0ZSh0LCByZWdpc3RyYXRpb24uaW5zdGFsbGluZywgJ2FjdGl2YXRp
bmcnKTsKLSAgY29uc3QgaWZyYW1lID0gYXdhaXQgd2l0aF9pZnJhbWUoc2NvcGUpOwotICB0LmFk
ZF9jbGVhbnVwKCgpID0+IGlmcmFtZS5yZW1vdmUoKSk7Ci0KLSAgYXdhaXQgcmVnaXN0cmF0aW9u
LnVucmVnaXN0ZXIoKTsKLSAgY29uc3QgbmV3UmVnaXN0cmF0aW9uID0gYXdhaXQgbmF2aWdhdG9y
LnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoYWx0V29ya2VyVVJMLCB7IHNjb3BlIH0pOwotICB0LmFk
ZF9jbGVhbnVwKCgpID0+IG5ld1JlZ2lzdHJhdGlvbi51bnJlZ2lzdGVyKCkpOwotCi0gIGFzc2Vy
dF9lcXVhbHMobmV3UmVnaXN0cmF0aW9uLmFjdGl2ZSwgbnVsbCwgJ1JlZ2lzdHJhdGlvbiBpcyBu
ZXcnKTsKLQotICBhd2FpdCB3YWl0X2Zvcl9zdGF0ZSh0LCBuZXdSZWdpc3RyYXRpb24uaW5zdGFs
bGluZywgJ2FjdGl2YXRpbmcnKTsKLQotICBjb25zdCBuZXdJZnJhbWUgPSBhd2FpdCB3aXRoX2lm
cmFtZShzY29wZSk7Ci0gIHQuYWRkX2NsZWFudXAoKCkgPT4gbmV3SWZyYW1lLnJlbW92ZSgpKTsK
LQotICBjb25zdCBpZnJhbWVDb250cm9sbGVyID0gaWZyYW1lLmNvbnRlbnRXaW5kb3cubmF2aWdh
dG9yLnNlcnZpY2VXb3JrZXIuY29udHJvbGxlcjsKLSAgY29uc3QgbmV3SWZyYW1lQ29udHJvbGxl
ciA9IG5ld0lmcmFtZS5jb250ZW50V2luZG93Lm5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLmNvbnRy
b2xsZXI7Cithc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgICB2YXIgc2NvcGUgPSAncmVzb3Vy
Y2VzL3Njb3BlL3Jlc3VycmVjdGlvbic7CisgICAgdmFyIGlmcmFtZTsKKyAgICB2YXIgcmVnaXN0
cmF0aW9uOwogCi0gIGFzc2VydF9ub3RfZXF1YWxzKGlmcmFtZUNvbnRyb2xsZXIsIG5ld0lmcmFt
ZUNvbnRyb2xsZXIsICdpZnJhbWVzIGhhdmUgZGlmZmVyZW50IGNvbnRyb2xsZXJzJyk7Ci19LCAn
VW5yZWdpc3RlciB0aGVuIHJlZ2lzdGVyIGRvZXMgbm90IHJlc3VycmVjdCB0aGUgcmVnaXN0cmF0
aW9uJyk7CisgICAgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgd29y
a2VyX3VybCwgc2NvcGUpCisgICAgICAudGhlbihmdW5jdGlvbihyKSB7CisgICAgICAgICAgcmVn
aXN0cmF0aW9uID0gcjsKKyAgICAgICAgICByZXR1cm4gd2FpdF9mb3Jfc3RhdGUodCwgci5pbnN0
YWxsaW5nLCAnYWN0aXZhdGVkJyk7CisgICAgICAgIH0pCisgICAgICAudGhlbihmdW5jdGlvbigp
IHsKKyAgICAgICAgICByZXR1cm4gd2l0aF9pZnJhbWUoc2NvcGUpOworICAgICAgICB9KQorICAg
ICAgLnRoZW4oZnVuY3Rpb24oZnJhbWUpIHsKKyAgICAgICAgICBpZnJhbWUgPSBmcmFtZTsKKyAg
ICAgICAgICByZXR1cm4gcmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIoKTsKKyAgICAgICAgfSkKKyAg
ICAgIC50aGVuKGZ1bmN0aW9uKCkgeworICAgICAgICAgIHJldHVybiBuYXZpZ2F0b3Iuc2Vydmlj
ZVdvcmtlci5yZWdpc3Rlcih3b3JrZXJfdXJsLCB7IHNjb3BlOiBzY29wZSB9KTsKKyAgICAgICAg
fSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKCkgeworICAgICAgICAgIGlmcmFtZS5yZW1vdmUoKTsK
KyAgICAgICAgICByZXR1cm4gd2l0aF9pZnJhbWUoc2NvcGUpOworICAgICAgICB9KQorICAgICAg
LnRoZW4oZnVuY3Rpb24oZnJhbWUpIHsKKyAgICAgICAgICBhc3NlcnRfbm90X2VxdWFscygKKyAg
ICAgICAgICAgICAgZnJhbWUuY29udGVudFdpbmRvdy5uYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5j
b250cm9sbGVyLCBudWxsLAorICAgICAgICAgICAgICAnZG9jdW1lbnQgc2hvdWxkIGhhdmUgYSBj
b250cm9sbGVyJyk7CisgICAgICAgICAgZnJhbWUucmVtb3ZlKCk7CisgICAgICAgICAgc2Vydmlj
ZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfZG9uZSh0LCBzY29wZSk7CisgICAgICAgIH0pCisgICAg
ICAuY2F0Y2godW5yZWFjaGVkX3JlamVjdGlvbih0KSk7CisgIH0sICdVbnJlZ2lzdGVyIHRoZW4g
cmVnaXN0ZXIgcmVzdXJyZWN0cyB0aGUgcmVnaXN0cmF0aW9uJyk7CiA8L3NjcmlwdD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0ZS1hZnRlci1uYXZpZ2F0aW9uLXJlZGlyZWN0
Lmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUtYWZ0ZXItbmF2aWdhdGlvbi1y
ZWRpcmVjdC5odHRwcy5odG1sCmluZGV4IDZlODIxZmU0NzlmMjczZjdiMTdmZDhkOTFlNjgxZWNk
MjgzYTkzM2QuLjMyMWU0MGNhOTQ1ZTcyYTUxZDZmNDk5NGRlZjJiMWQxYWVmOTk3NTEgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0ZS1hZnRlci1uYXZpZ2F0aW9uLXJlZGlyZWN0
Lmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLWFmdGVyLW5hdmlnYXRp
b24tcmVkaXJlY3QuaHR0cHMuaHRtbApAQCAtMSw3ICsxLDYgQEAKIDwhRE9DVFlQRSBodG1sPgog
PG1ldGEgY2hhcnNldD0idXRmLTgiPgogPHRpdGxlPlNlcnZpY2UgV29ya2VyOiBVcGRhdGUgc2hv
dWxkIGJlIHRyaWdnZXJlZCBhZnRlciByZWRpcmVjdHMgZHVyaW5nIG5hdmlnYXRpb248L3RpdGxl
PgotPG1ldGEgbmFtZT0idGltZW91dCIgY29udGVudD0ibG9uZyI+CiA8c2NyaXB0IHNyYz0iL3Jl
c291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iL3Jlc291cmNl
cy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L3Rlc3QtaGVscGVycy5zdWIuanMiPjwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvdXBkYXRlLWFmdGVyLW9uZWRheS5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
dXBkYXRlLWFmdGVyLW9uZWRheS5odHRwcy5odG1sCmluZGV4IGQ5YjlmY2ZiOGRiMzdlYTNiMGQ1
NzEyNTBiMjJiODhjYTczNTQ3NzIuLjA4MDY1ZDIyY2U0NmNjOGEzYjU5MTZmMWMwNTNmNDc3ZjQ0
MTQ2OTggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0ZS1hZnRlci1vbmVkYXku
aHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUtYWZ0ZXItb25lZGF5Lmh0
dHBzLmh0bWwKQEAgLTE3LDEwICsxNyw2IEBAIHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7CiAK
ICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgZXhw
ZWN0ZWRfdXJsLCBzY29wZSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKHIpIHsKLSAgICAgICAgICB0
LmFkZF9jbGVhbnVwKGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICByZXR1cm4gc2VydmljZV93
b3JrZXJfdW5yZWdpc3Rlcih0LCBzY29wZSk7Ci0gICAgICAgICAgICB9KTsKLQogICAgICAgICAg
IHJlZ2lzdHJhdGlvbiA9IHI7CiAgICAgICAgICAgcmV0dXJuIHdhaXRfZm9yX3N0YXRlKHQsIHJl
Z2lzdHJhdGlvbi5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7CiAgICAgICAgIH0pCkBAIC00NSw2
ICs0MSw3IEBAIHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7CiAgICAgICAgfSkKICAgICAgICAu
dGhlbihmdW5jdGlvbigpIHsKICAgICAgICAgICBmcmFtZS5yZW1vdmUoKTsKKyAgICAgICAgICBy
ZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfZG9uZSh0LCBzY29wZSk7CiAgICAg
ICAgfSkKICAgfSwgJ1VwZGF0ZSBzaG91bGQgYmUgdHJpZ2dlcmVkIGFmdGVyIGEgZnVuY3Rpb25h
bCBldmVudCB3aGVuIGxhc3QgdXBkYXRlIHRpbWUgaXMgb3ZlciAyNCBob3VycycpOwogCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUtYnl0ZWNoZWNrLmh0dHBzLmh0bWwgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci91cGRhdGUtYnl0ZWNoZWNrLmh0dHBzLmh0bWwKaW5kZXggNjYyOGRi
YTZlZTdkMTFhZTBjZDQ1OTQxYzcyNmRmMDE3YWZiOTMzNi4uZWMzZDE1YWJlYzA5Y2E1ZjVlM2Ri
OWUyYzhhYzJlOTA0MGZmZTdmZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRl
LWJ5dGVjaGVjay5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0ZS1ieXRl
Y2hlY2suaHR0cHMuaHRtbApAQCAtMSw3ICsxLDYgQEAKIDwhZG9jdHlwZSBodG1sPgogPG1ldGEg
Y2hhcnNldD11dGYtOD4KIDx0aXRsZT48L3RpdGxlPgotPG1ldGEgbmFtZT0idGltZW91dCIgY29u
dGVudD0ibG9uZyI+CiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9z
Y3JpcHQ+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Rlc3RoYXJuZXNzLWhlbHBlcnMuanMiPjwv
c2NyaXB0PgogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwv
c2NyaXB0PgpAQCAtNDQsMTEgKzQzLDggQEAgc2V0dGluZ3MucmVkdWNlKChwLCBzKSA9PiB7CiAg
ICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpCiAgICAgICAvLyBSZWdpc3RlciBhIHNlcnZpY2Ug
d29ya2VyLgogICAgICAgLnRoZW4oXyA9PiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9y
ZWdpc3Rlcih0LCBzY3JpcHQsIHNjb3BlKSkKLSAgICAgIC50aGVuKHIgPT4gewotICAgICAgICB0
LmFkZF9jbGVhbnVwKCgpID0+IHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXIodCwgc2NvcGUpKTsK
LSAgICAgICAgc3dyID0gcjsKLSAgICAgICAgcmV0dXJuIHdhaXRfZm9yX3VwZGF0ZSh0LCBzd3Ip
OwotICAgICAgfSkKKyAgICAgIC50aGVuKHIgPT4gc3dyID0gcikKKyAgICAgIC50aGVuKF8gPT4g
d2FpdF9mb3JfdXBkYXRlKHQsIHN3cikpCiAgICAgICAudGhlbih3ID0+IHN3ID0gdykKICAgICAg
IC50aGVuKF8gPT4gd2FpdF9mb3Jfc3RhdGUodCwgc3csICdhY3RpdmF0ZWQnKSkKICAgICAgIC50
aGVuKF8gPT4gYXNzZXJ0X2FycmF5X2VxdWFscyhbc3dyLmFjdGl2ZSwKQEAgLTY4LDcgKzY0LDEw
IEBAIHNldHRpbmdzLnJlZHVjZSgocCwgcykgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc3dyLndhaXRpbmcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzd3IuaW5z
dGFsbGluZ10sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdywgbnVsbCwgbnVsbF0p
OwotICAgICAgfSk7CisgICAgICB9KQorCisgICAgICAvLyBVbnJlZ2lzdGVyIHRoZSBzZXJ2aWNl
IHdvcmtlci4KKyAgICAgIC50aGVuKF8gPT4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRf
ZG9uZSh0LCBzY29wZSkpOwogICB9LCBgVGVzdChjb3JzOiAke3MuY29yc30sIG1haW46ICR7cy5t
YWlufSwgaW1wb3J0ZWQ6ICR7cy5pbXBvcnRlZH0pYCkpOwogfSwgUHJvbWlzZS5yZXNvbHZlKCkp
OwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUtbWlzc2luZy1pbXBvcnQt
c2NyaXB0cy5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUtbWlz
c2luZy1pbXBvcnQtc2NyaXB0cy5odHRwcy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDhkZjhiZjhjY2U1MTdmNGNiZDY0ZmQzYzZlMjdmZmY4MDMxZjFkMGQuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvdXBkYXRlLW1pc3NpbmctaW1wb3J0LXNjcmlwdHMuaHR0cHMtZXhwZWN0ZWQudHh0Cisr
KyAvZGV2L251bGwKQEAgLTEsNCArMCwwIEBACi0KLVBBU1MgSW5pdGlhbGl6ZSBnbG9iYWwgc3Rh
dGUgCi1QQVNTIFVwZGF0ZSBzZXJ2aWNlIHdvcmtlciB3aXRoIG5ldyBzY3JpcHQgdGhhdCdzIG1p
c3NpbmcgaW1wb3J0U2NyaXB0cygpIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91
cGRhdGUtbWlzc2luZy1pbXBvcnQtc2NyaXB0cy5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvdXBkYXRlLW1pc3NpbmctaW1wb3J0LXNjcmlwdHMuaHR0cHMuaHRtbApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggNjZlOGJmYWM3NTFlODM1YWY4ZTU0M2ZjNTI4OTY5N2MxNWFjMTE4
ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci91cGRhdGUtbWlzc2luZy1pbXBvcnQtc2NyaXB0cy5odHRwcy5odG1sCisrKyAv
ZGV2L251bGwKQEAgLTEsMzMgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08dGl0bGU+U2Vydmlj
ZSBXb3JrZXI6IHVwZGF0ZSB3aXRoIG1pc3NpbmcgaW1wb3J0U2NyaXB0czwvdGl0bGU+Ci08c2Ny
aXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNy
Yz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL3Rlc3QtaGVscGVycy5zdWIuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9
Ii9jb21tb24vdXRpbHMuanMiPjwvc2NyaXB0PgotPGJvZHk+Ci08c2NyaXB0PgotLyoqCi0gKiBU
ZXN0IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24udXBkYXRlKCkgd2hlbiBpbXBvcnRTY3JpcHRz
IGluIGEgc2VydmljZSB3b3JrZXIKLSAqIHNjcmlwdCBpcyBubyBsb25nZXIgYXZhaWxhYmxlIChi
dXQgd2FzIGluaXRpYWxseSkuCi0gKi8KLWxldCByZWdpc3RyYXRpb24gPSBudWxsOwotCi1wcm9t
aXNlX3Rlc3QoYXN5bmMgKHRlc3QpID0+IHsKLSAgY29uc3Qgc2NyaXB0ID0gYHJlc291cmNlcy91
cGRhdGUtbWlzc2luZy1pbXBvcnQtc2NyaXB0cy1tYWluLXdvcmtlci5weT9rZXk9JHt0b2tlbigp
fWA7Ci0gIGNvbnN0IHNjb3BlID0gJ3Jlc291cmNlcy91cGRhdGUtbWlzc2luZy1pbXBvcnQtc2Ny
aXB0cyc7Ci0KLSAgcmVnaXN0cmF0aW9uID0gYXdhaXQgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rl
cl9hbmRfcmVnaXN0ZXIodGVzdCwgc2NyaXB0LCBzY29wZSk7Ci0KLSAgYWRkX2NvbXBsZXRpb25f
Y2FsbGJhY2soKCkgPT4geyByZWdpc3RyYXRpb24udW5yZWdpc3RlcigpOyB9KTsKLQotICBhd2Fp
dCB3YWl0X2Zvcl9zdGF0ZSh0ZXN0LCByZWdpc3RyYXRpb24uaW5zdGFsbGluZywgJ2FjdGl2YXRl
ZCcpOwotfSwgJ0luaXRpYWxpemUgZ2xvYmFsIHN0YXRlJyk7Ci0KLXByb21pc2VfdGVzdCh0ZXN0
ID0+IHsKLSAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4gewotICAgIHJlZ2lzdHJhdGlv
bi5hZGRFdmVudExpc3RlbmVyKCd1cGRhdGVmb3VuZCcsIHJlc29sdmUpOwotICAgIHJlZ2lzdHJh
dGlvbi51cGRhdGUoKTsKLSAgfSk7Ci19LCAnVXBkYXRlIHNlcnZpY2Ugd29ya2VyIHdpdGggbmV3
IHNjcmlwdCB0aGF0XCdzIG1pc3NpbmcgaW1wb3J0U2NyaXB0cygpJyk7Ci08L3NjcmlwdD4KLTwv
Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0ZS1uby1jYWNoZS1yZXF1
ZXN0LWhlYWRlcnMuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRl
LW5vLWNhY2hlLXJlcXVlc3QtaGVhZGVycy5odHRwcy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGI1NTE2ZDY0NjExZDlhMjllMTJmZTZlYWNlZmNlMWE2Y2ZlMGI0
MDIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvdXBkYXRlLW5vLWNhY2hlLXJlcXVlc3QtaGVhZGVycy5odHRwcy1leHBlY3Rl
ZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLQotUEFTUyBoZWFkZXJzIGluIG5v
LWNhY2hlIG1vZGUgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0ZS1uby1j
YWNoZS1yZXF1ZXN0LWhlYWRlcnMuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0
ZS1uby1jYWNoZS1yZXF1ZXN0LWhlYWRlcnMuaHR0cHMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggNmViYWQ0YjdiMTBiY2RmMTc2YzE1NDNmZDcxMWFlZTMxZDU1NDdiNy4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci91cGRhdGUtbm8tY2FjaGUtcmVxdWVzdC1oZWFkZXJzLmh0dHBzLmh0bWwKKysrIC9kZXYv
bnVsbApAQCAtMSw0OCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxtZXRhIGNoYXJzZXQ9InV0
Zi04Ij4KLTx0aXRsZT5UZXN0IHRoYXQgY2FjaGUgaXMgYmVpbmcgYnlwYXNzZWQvdmFsaWRhdGVk
IGluIG5vLWNhY2hlIG1vZGUgb24gdXBkYXRlPC90aXRsZT4KLTxzY3JpcHQgc3JjPSIvcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGVz
dC1oZWxwZXJzLnN1Yi5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotLy8gVGVzdHMgYSBzZXJ2aWNl
IHdvcmtlciBzY3JpcHQgZmV0Y2ggZHVyaW5nIGFuIHVwZGF0ZSBjaGVjayB3aGljaAotLy8gYnlw
YXNzZXMvdmFsaWRhdGVzIHRoZSBicm93c2VyIGNhY2hlLiBUaGUgZmV0Y2ggc2hvdWxkIGhhdmUg
dGhlCi0vLyAnaWYtbm9uZS1tYXRjaCcgcmVxdWVzdCBoZWFkZXIuCi0vLwotLy8gVGhpcyB0ZXN0
cyB0aGUgVXBkYXRlIHN0ZXA6Ci0vLyAgIlNldCByZXF1ZXN04oCZcyBjYWNoZSBtb2RlIHRvICJu
by1jYWNoZSIgaWYgYW55IG9mIHRoZSBmb2xsb3dpbmcgYXJlIHRydWUuLi4iCi0vLyBodHRwczov
L3czYy5naXRodWIuaW8vU2VydmljZVdvcmtlci8jdXBkYXRlLWFsZ29yaXRobQotLy8KLS8vIFRo
ZSB0ZXN0IHdvcmtzIGJ5IHJlZ2lzdGVyaW5nIGEgc2VydmljZSB3b3JrZXIgd2l0aCB8dXBkYXRl
VmlhQ2FjaGV8Ci0vLyBzZXQgdG8gIm5vbmUiLiBJdCB0aGVuIGRvZXMgYW4gdXBkYXRlLiBUaGUg
dGVzdCBzZXJ2ZXIgcmVzcG9uZHMgd2l0aAotLy8gYW4gdXBkYXRlZCB3b3JrZXIgc2NyaXB0IHRo
YXQgcmVtZW1iZXJzIHRoZSBodHRwIHJlcXVlc3QgaGVhZGVycy4KLS8vIFRoZSB1cGRhdGVkIHdv
cmtlciByZXBvcnRzIGJhY2sgdGhlc2UgaGVhZGVycyB0byB0aGUgdGVzdCBwYWdlLgotcHJvbWlz
ZV90ZXN0KGFzeW5jICh0KSA9PiB7Ci0gIGNvbnN0IHNjcmlwdCA9ICJyZXNvdXJjZXMvdGVzdC1y
ZXF1ZXN0LWhlYWRlcnMtd29ya2VyLnB5IjsKLSAgY29uc3Qgc2NvcGUgPSAicmVzb3VyY2VzLyI7
Ci0KLSAgLy8gUmVnaXN0ZXIgdGhlIHNlcnZpY2Ugd29ya2VyLgotICBhd2FpdCBzZXJ2aWNlX3dv
cmtlcl91bnJlZ2lzdGVyKHQsIHNjb3BlKTsKLSAgY29uc3QgcmVnaXN0cmF0aW9uID0gYXdhaXQg
bmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoCi0gICAgICBzY3JpcHQsIHtzY29wZSwg
dXBkYXRlVmlhQ2FjaGU6ICdub25lJ30pOwotICBhd2FpdCB3YWl0X2Zvcl9zdGF0ZSh0LCByZWdp
c3RyYXRpb24uaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOwotCi0gIC8vIERvIGFuIHVwZGF0ZS4K
LSAgYXdhaXQgcmVnaXN0cmF0aW9uLnVwZGF0ZSgpOwotCi0gIC8vIEFzayB0aGUgbmV3IHdvcmtl
ciB3aGF0IHRoZSByZXF1ZXN0IGhlYWRlcnMgd2VyZS4KLSAgY29uc3QgbmV3V29ya2VyID0gcmVn
aXN0cmF0aW9uLmluc3RhbGxpbmc7Ci0gIGNvbnN0IHNhd01lc3NhZ2UgPSBuZXcgUHJvbWlzZSgo
cmVzb2x2ZSkgPT4gewotICAgIG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLm9ubWVzc2FnZSA9IChl
dmVudCkgPT4gewotICAgICAgcmVzb2x2ZShldmVudC5kYXRhKTsKLSAgICB9OwotICB9KTsKLSAg
bmV3V29ya2VyLnBvc3RNZXNzYWdlKCdnZXRIZWFkZXJzJyk7Ci0gIGNvbnN0IHJlc3VsdCA9IGF3
YWl0IHNhd01lc3NhZ2U7Ci0KLSAgLy8gVGVzdCB0aGUgcmVzdWx0LgotICBhc3NlcnRfZXF1YWxz
KHJlc3VsdFsnc2VydmljZS13b3JrZXInXSwgJ3NjcmlwdCcpOwotICBhc3NlcnRfZXF1YWxzKHJl
c3VsdFsnaWYtbm9uZS1tYXRjaCddLCAnZXRhZycpOwotfSwgJ2hlYWRlcnMgaW4gbm8tY2FjaGUg
bW9kZScpOwotCi08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0
ZS1ub3QtYWxsb3dlZC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRh
dGUtbm90LWFsbG93ZWQuaHR0cHMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBjOTU5YWNkNWJiYWY4OTkyMjRiNzI0OWIxYjZiNmQzMGQ2NDlmYjIxLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L3VwZGF0ZS1ub3QtYWxsb3dlZC5odHRwcy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAt
MSw2ICswLDAgQEAKLQotSGFybmVzcyBFcnJvciAoVElNRU9VVCksIG1lc3NhZ2UgPSBudWxsCi0K
LVBBU1MgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbi51cGRhdGUoKSBmcm9tIGNsaWVudCB0aHJv
d3Mgd2hpbGUgaW5zdGFsbGluZyBzZXJ2aWNlIHdvcmtlci4gCi1USU1FT1VUIFNlcnZpY2VXb3Jr
ZXJSZWdpc3RyYXRpb24udXBkYXRlKCkgZnJvbSBpbnN0YWxsaW5nIHNlcnZpY2Ugd29ya2VyIHRo
cm93cy4gVGVzdCB0aW1lZCBvdXQKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBk
YXRlLW5vdC1hbGxvd2VkLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUtbm90
LWFsbG93ZWQuaHR0cHMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGE1NGFh
OTM1MDM4MmJiMDgyZjQwN2ExZWEzMGIyNjU1NzViYWFlOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUtbm90LWFs
bG93ZWQuaHR0cHMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDE0MCArMCwwIEBACi08IURPQ1RZ
UEUgaHRtbD4KLTxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGVzdC1oZWxwZXJzLnN1Yi5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi1mdW5jdGlvbiBzZW5kX21lc3NhZ2VfdG9fd29y
a2VyX2FuZF93YWl0X2Zvcl9yZXNwb25zZSh3b3JrZXIsIG1lc3NhZ2UpIHsKLSAgcmV0dXJuIG5l
dyBQcm9taXNlKHJlc29sdmUgPT4gewotICAgIC8vIFVzZSBhIGRlZGljYXRlZCBjaGFubmVsIGZv
ciBldmVyeSByZXF1ZXN0IHRvIGF2b2lkIHJhY2UgY29uZGl0aW9ucyBvbgotICAgIC8vIGNvbmN1
cnJlbnQgcmVxdWVzdHMuCi0gICAgY29uc3QgY2hhbm5lbCA9IG5ldyBNZXNzYWdlQ2hhbm5lbCgp
OwotICAgIHdvcmtlci5wb3N0TWVzc2FnZShjaGFubmVsLnBvcnQxLCBbY2hhbm5lbC5wb3J0MV0p
OwotCi0gICAgbGV0IG1lc3NhZ2VSZWNlaXZlZCA9IGZhbHNlOwotICAgIGNoYW5uZWwucG9ydDIu
b25tZXNzYWdlID0gZXZlbnQgPT4gewotICAgICAgYXNzZXJ0X2ZhbHNlKG1lc3NhZ2VSZWNlaXZl
ZCwgJ0FscmVhZHkgcmVjZWl2ZWQgcmVzcG9uc2UgZm9yICcgKyBtZXNzYWdlKTsKLSAgICAgIG1l
c3NhZ2VSZWNlaXZlZCA9IHRydWU7Ci0gICAgICByZXNvbHZlKGV2ZW50LmRhdGEpOwotICAgIH07
Ci0gICAgY2hhbm5lbC5wb3J0Mi5wb3N0TWVzc2FnZShtZXNzYWdlKTsKLSAgfSk7Ci19Ci0KLWFz
eW5jIGZ1bmN0aW9uIGVuc3VyZV9pbnN0YWxsX2V2ZW50X2ZpcmVkKHdvcmtlcikgewotICBjb25z
dCByZXNwb25zZSA9IGF3YWl0IHNlbmRfbWVzc2FnZV90b193b3JrZXJfYW5kX3dhaXRfZm9yX3Jl
c3BvbnNlKHdvcmtlciwgJ2F3YWl0SW5zdGFsbEV2ZW50Jyk7Ci0gIGFzc2VydF9lcXVhbHMoJ2lu
c3RhbGxFdmVudEZpcmVkJywgcmVzcG9uc2UpOwotICBhc3NlcnRfZXF1YWxzKCdpbnN0YWxsaW5n
Jywgd29ya2VyLnN0YXRlLCAnRXhwZWN0ZWQgd29ya2VyIHRvIGJlIGluc3RhbGxpbmcuJyk7Ci19
Ci0KLWFzeW5jIGZ1bmN0aW9uIGZpbmlzaF9pbnN0YWxsKHdvcmtlcikgewotICBhd2FpdCBlbnN1
cmVfaW5zdGFsbF9ldmVudF9maXJlZCh3b3JrZXIpOwotICBjb25zdCByZXNwb25zZSA9IGF3YWl0
IHNlbmRfbWVzc2FnZV90b193b3JrZXJfYW5kX3dhaXRfZm9yX3Jlc3BvbnNlKHdvcmtlciwgJ2Zp
bmlzaEluc3RhbGwnKTsKLSAgYXNzZXJ0X2VxdWFscygnaW5zdGFsbEZpbmlzaGVkJywgcmVzcG9u
c2UpOwotfQotCi1hc3luYyBmdW5jdGlvbiBhY3RpdmF0ZV9zZXJ2aWNlX3dvcmtlcih0LCB3b3Jr
ZXIpIHsKLSAgYXdhaXQgZmluaXNoX2luc3RhbGwod29ya2VyKTsKLSAgLy8gQnkgd2FpdGluZyBm
b3IgYm90aCBzdGF0ZXMgYXQgdGhlIHNhbWUgdGltZSwgdGhlIHRlc3QgZmFpbHMKLSAgLy8gcXVp
Y2tseSBpZiB0aGUgaW5zdGFsbGF0aW9uIGZhaWxzLCBhdm9pZGluZyBhIHRpbWVvdXQuCi0gIGF3
YWl0IFByb21pc2UucmFjZShbd2FpdF9mb3Jfc3RhdGUodCwgd29ya2VyLCAnYWN0aXZhdGVkJyks
Ci0gICAgICAgICAgICAgICAgICAgICAgd2FpdF9mb3Jfc3RhdGUodCwgd29ya2VyLCAncmVkdW5k
YW50JyldKTsKLSAgYXNzZXJ0X2VxdWFscygnYWN0aXZhdGVkJywgd29ya2VyLnN0YXRlLCAnU2Vy
dmljZSB3b3JrZXIgc2hvdWxkIGJlIGFjdGl2YXRlZC4nKTsKLX0KLQotYXN5bmMgZnVuY3Rpb24g
dXBkYXRlX3dpdGhpbl9zZXJ2aWNlX3dvcmtlcih3b3JrZXIpIHsKLSAgLy8gVGhpcyBmdW5jdGlv
biByZXR1cm5zIGEgUHJvbWlzZSB0aGF0IHJlc29sdmVzIHdoZW4gdXBkYXRlKCkKLSAgLy8gaGFz
IGJlZW4gY2FsbGVkIGJ1dCBpcyBub3QgbmVjZXNzYXJpbHkgZmluaXNoZWQgeWV0LgotICAvLyBD
YWxsIGZpbmlzaCgpIG9uIHRoZSByZXR1cm5lZCBvYmplY3QgdG8gd2FpdCBmb3IgdXBkYXRlKCkg
c2V0dGxlLgotICBjb25zdCBwb3J0ID0gYXdhaXQgc2VuZF9tZXNzYWdlX3RvX3dvcmtlcl9hbmRf
d2FpdF9mb3JfcmVzcG9uc2Uod29ya2VyLCAnY2FsbFVwZGF0ZScpOwotICBsZXQgbWVzc2FnZVJl
Y2VpdmVkID0gZmFsc2U7Ci0gIHJldHVybiB7Ci0gICAgZmluaXNoOiAoKSA9PiB7Ci0gICAgICBy
ZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7Ci0gICAgICAgIHBvcnQub25tZXNzYWdlID0g
ZXZlbnQgPT4gewotICAgICAgICAgIGFzc2VydF9mYWxzZShtZXNzYWdlUmVjZWl2ZWQsICdVcGRh
dGUgYWxyZWFkeSBmaW5pc2hlZC4nKTsKLSAgICAgICAgICBtZXNzYWdlUmVjZWl2ZWQgPSB0cnVl
OwotICAgICAgICAgIHJlc29sdmUoZXZlbnQuZGF0YSk7Ci0gICAgICAgIH07Ci0gICAgICB9KTsK
LSAgICB9LAotICB9OwotfQotCi1hc3luYyBmdW5jdGlvbiB1cGRhdGVfZnJvbV9jbGllbnRfYW5k
X2F3YWl0X2luc3RhbGxpbmdfdmVyc2lvbih0ZXN0LCByZWdpc3RyYXRpb24pIHsKLSAgY29uc3Qg
dXBkYXRlZm91bmQgPSB3YWl0X2Zvcl91cGRhdGUodGVzdCwgcmVnaXN0cmF0aW9uKTsKLSAgcmVn
aXN0cmF0aW9uLnVwZGF0ZSgpOwotICBhd2FpdCB1cGRhdGVmb3VuZDsKLSAgcmV0dXJuIHJlZ2lz
dHJhdGlvbi5pbnN0YWxsaW5nOwotfQotCi1hc3luYyBmdW5jdGlvbiBzcGluX3VwX3NlcnZpY2Vf
d29ya2VyKHRlc3QpIHsKLSAgY29uc3Qgc2NyaXB0ID0gJ3Jlc291cmNlcy91cGRhdGUtZHVyaW5n
LWluc3RhbGxhdGlvbi13b3JrZXIucHknOwotICBjb25zdCBzY29wZSA9ICdyZXNvdXJjZXMvYmxh
bmsuaHRtbCc7Ci0KLSAgY29uc3QgcmVnaXN0cmF0aW9uID0gYXdhaXQgc2VydmljZV93b3JrZXJf
dW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodGVzdCwgc2NyaXB0LCBzY29wZSk7Ci0gIHRlc3QuYWRk
X2NsZWFudXAoYXN5bmMgKCkgPT4gewotICAgIGlmIChyZWdpc3RyYXRpb24uaW5zdGFsbGluZykg
ewotICAgICAgLy8gSWYgdGhlcmUgaXMgYW4gaW5zdGFsbGluZyB3b3JrZXIsIHdlIG5lZWQgdG8g
ZmluaXNoIGluc3RhbGxpbmcgaXQuCi0gICAgICAvLyBPdGhlcndpc2UsIHRoZSB0ZXN0cyBmYWls
cyB3aXRoIGFuIHRpbWVvdXQgYmVjYXVzZSB1bnJlZ2lzdGVyKCkgYmxvY2tzCi0gICAgICAvLyB1
bnRpbCB0aGUgaW5zdGFsbC1ldmVudC1oYW5kbGVyIGZpbmlzaGVzLgotICAgICAgY29uc3Qgd29y
a2VyID0gcmVnaXN0cmF0aW9uLmluc3RhbGxpbmc7Ci0gICAgICBhd2FpdCBzZW5kX21lc3NhZ2Vf
dG9fd29ya2VyX2FuZF93YWl0X2Zvcl9yZXNwb25zZSh3b3JrZXIsICdhd2FpdEluc3RhbGxFdmVu
dCcpOwotICAgICAgYXdhaXQgc2VuZF9tZXNzYWdlX3RvX3dvcmtlcl9hbmRfd2FpdF9mb3JfcmVz
cG9uc2Uod29ya2VyLCAnZmluaXNoSW5zdGFsbCcpOwotICAgIH0KLSAgICByZXR1cm4gcmVnaXN0
cmF0aW9uLnVucmVnaXN0ZXIoKTsKLSAgfSk7Ci0KLSAgcmV0dXJuIHJlZ2lzdHJhdGlvbjsKLX0K
LQotcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewotICBjb25zdCByZWdpc3RyYXRpb24gPSBhd2Fp
dCBzcGluX3VwX3NlcnZpY2Vfd29ya2VyKHQpOwotICBjb25zdCB3b3JrZXIgPSByZWdpc3RyYXRp
b24uaW5zdGFsbGluZzsKLSAgYXdhaXQgZW5zdXJlX2luc3RhbGxfZXZlbnRfZmlyZWQod29ya2Vy
KTsKLQotICBjb25zdCByZXN1bHQgPSByZWdpc3RyYXRpb24udXBkYXRlKCk7Ci0gIGF3YWl0IGFj
dGl2YXRlX3NlcnZpY2Vfd29ya2VyKHQsIHdvcmtlcik7Ci0gIHJldHVybiByZXN1bHQ7Ci19LCAn
U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbi51cGRhdGUoKSBmcm9tIGNsaWVudCBzdWNjZWVkcyB3
aGlsZSBpbnN0YWxsaW5nIHNlcnZpY2Ugd29ya2VyLicpOwotCi1wcm9taXNlX3Rlc3QoYXN5bmMg
dCA9PiB7Ci0gIGNvbnN0IHJlZ2lzdHJhdGlvbiA9IGF3YWl0IHNwaW5fdXBfc2VydmljZV93b3Jr
ZXIodCk7Ci0gIGNvbnN0IHdvcmtlciA9IHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nOwotICBhd2Fp
dCBlbnN1cmVfaW5zdGFsbF9ldmVudF9maXJlZCh3b3JrZXIpOwotCi0gIC8vIEFkZCBldmVudCBs
aXN0ZW5lciB0byBmYWlsIHRoZSB0ZXN0IGlmIHVwZGF0ZSgpIHN1Y2NlZWRzLgotICBjb25zdCB1
cGRhdGVmb3VuZCA9IHQuc3RlcF9mdW5jKGFzeW5jICgpID0+IHsKLSAgICByZWdpc3RyYXRpb24u
cmVtb3ZlRXZlbnRMaXN0ZW5lcigndXBkYXRlZm91bmQnLCB1cGRhdGVmb3VuZCk7Ci0gICAgLy8g
QWN0aXZhdGUgbmV3IHdvcmtlciBzbyBub24tY29tcGxpYW50IGJyb3dzZXJzIGRvbid0IGZhaWwg
d2l0aCB0aW1lb3V0LgotICAgIGF3YWl0IGFjdGl2YXRlX3NlcnZpY2Vfd29ya2VyKHQsIHJlZ2lz
dHJhdGlvbi5pbnN0YWxsaW5nKTsKLSAgICBhc3NlcnRfdW5yZWFjaGVkKCJ1cGRhdGUoKSBzaG91
bGQgaGF2ZSBmYWlsZWQiKTsKLSAgfSk7Ci0gIHJlZ2lzdHJhdGlvbi5hZGRFdmVudExpc3RlbmVy
KCd1cGRhdGVmb3VuZCcsIHVwZGF0ZWZvdW5kKTsKLQotICBjb25zdCB1cGRhdGUgPSBhd2FpdCB1
cGRhdGVfd2l0aGluX3NlcnZpY2Vfd29ya2VyKHdvcmtlcik7Ci0gIC8vIEFjdGl2YXRlIHdvcmtl
ciB0byBlbnN1cmUgdXBkYXRlKCkgZmluaXNoZXMgYW5kIHRoZSB0ZXN0IGRvZXNuJ3QgdGltZW91
dAotICAvLyBpbiBub24tY29tcGxpYW50IGJyb3dzZXJzLgotICBhd2FpdCBhY3RpdmF0ZV9zZXJ2
aWNlX3dvcmtlcih0LCB3b3JrZXIpOwotCi0gIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdXBkYXRl
LmZpbmlzaCgpOwotICBhc3NlcnRfZmFsc2UocmVzcG9uc2Uuc3VjY2VzcywgJ3VwZGF0ZSgpIHNo
b3VsZCBoYXZlIGZhaWxlZC4nKTsKLSAgYXNzZXJ0X2VxdWFscygnSW52YWxpZFN0YXRlRXJyb3In
LCByZXNwb25zZS5leGNlcHRpb24sICd1cGRhdGUoKSBzaG91bGQgaGF2ZSB0aHJvd24gSW52YWxp
ZFN0YXRlRXJyb3IuJyk7Ci19LCAnU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbi51cGRhdGUoKSBm
cm9tIGluc3RhbGxpbmcgc2VydmljZSB3b3JrZXIgdGhyb3dzLicpOwotCi1wcm9taXNlX3Rlc3Qo
YXN5bmMgdCA9PiB7Ci0gIGNvbnN0IHJlZ2lzdHJhdGlvbiA9IGF3YWl0IHNwaW5fdXBfc2Vydmlj
ZV93b3JrZXIodCk7Ci0gIGNvbnN0IHdvcmtlcjEgPSByZWdpc3RyYXRpb24uaW5zdGFsbGluZzsK
LSAgYXdhaXQgYWN0aXZhdGVfc2VydmljZV93b3JrZXIodCwgd29ya2VyMSk7Ci0KLSAgY29uc3Qg
d29ya2VyMiA9IGF3YWl0IHVwZGF0ZV9mcm9tX2NsaWVudF9hbmRfYXdhaXRfaW5zdGFsbGluZ192
ZXJzaW9uKHQsIHJlZ2lzdHJhdGlvbik7Ci0gIGF3YWl0IGVuc3VyZV9pbnN0YWxsX2V2ZW50X2Zp
cmVkKHdvcmtlcjIpOwotCi0gIGNvbnN0IHVwZGF0ZSA9IGF3YWl0IHVwZGF0ZV93aXRoaW5fc2Vy
dmljZV93b3JrZXIod29ya2VyMSk7Ci0gIC8vIEFjdGl2YXRlIHRoZSBuZXcgdmVyc2lvbiBzbyB0
aGF0IHVwZGF0ZSgpIGZpbmlzaGVzIGFuZCB0aGUgdGVzdCBkb2Vzbid0IHRpbWVvdXQuCi0gIGF3
YWl0IGFjdGl2YXRlX3NlcnZpY2Vfd29ya2VyKHQsIHdvcmtlcjIpOwotICBjb25zdCByZXNwb25z
ZSA9IGF3YWl0IHVwZGF0ZS5maW5pc2goKTsKLSAgYXNzZXJ0X3RydWUocmVzcG9uc2Uuc3VjY2Vz
cywgJ3VwZGF0ZSgpIGZyb20gYWN0aXZlIHNlcnZpY2Ugd29ya2VyIHNob3VsZCBoYXZlIHN1Y2Nl
ZWRlZC4nKTsKLX0sICdTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLnVwZGF0ZSgpIGZyb20gYWN0
aXZlIHNlcnZpY2Ugd29ya2VyIHN1Y2NlZWRzIHdoaWxlIGluc3RhbGxpbmcgc2VydmljZSB3b3Jr
ZXIuJyk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0ZS1v
bi1uYXZpZ2F0aW9uLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0
ZS1vbi1uYXZpZ2F0aW9uLmh0dHBzLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMjcxNTI2MjVkNWU5NzAzMzA2YTA1OWNlYTAwMDU5ZjFlMDQzMjBhOC4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci91cGRhdGUtb24tbmF2aWdhdGlvbi5odHRwcy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApA
QCAtMSwzICswLDAgQEAKLQotUEFTUyBUaGUgYWN0aXZlIHNlcnZpY2Ugd29ya2VyIGluIGNoYXJn
ZSBvZiBhIG5hdmlnYXRpb24gbG9hZCBzaG91bGQgbm90IGJlIHRlcm1pbmF0ZWQgYXMgcGFydCBv
ZiB1cGRhdGluZyB0aGUgcmVnaXN0cmF0aW9uIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci91cGRhdGUtb24tbmF2aWdhdGlvbi5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
dXBkYXRlLW9uLW5hdmlnYXRpb24uaHR0cHMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggNTI3MzQyMGI5MGZjOTdmY2Q0NDFhYzA1N2E5OWVlNWIzMWM4NGEzMC4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91
cGRhdGUtb24tbmF2aWdhdGlvbi5odHRwcy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjAgKzAs
MCBAQAotPCFET0NUWVBFIGh0bWw+Ci08dGl0bGU+VXBkYXRlIG9uIG5hdmlnYXRpb248L3RpdGxl
PgotPHNjcmlwdCBzcmM9Jy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMnPjwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9Jy9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMnPjwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9J3Jlc291cmNlcy90ZXN0LWhlbHBlcnMuc3ViLmpzJz48L3NjcmlwdD4KLTxzY3Jp
cHQ+Ci1wcm9taXNlX3Rlc3QoYXN5bmMgKHQpID0+IHsKLSAgICB2YXIgc2NyaXB0ID0gJ3Jlc291
cmNlcy91cGRhdGUtZmV0Y2gtd29ya2VyLnB5JzsKLSAgICB2YXIgc2NvcGUgPSAncmVzb3VyY2Vz
L3RyaWNrbGUucHk/bXM9MTAwMCZjb3VudD0xJzsKLQotICAgIGNvbnN0IHJlZ2lzdHJhdGlvbiA9
IGF3YWl0IHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHNjcmlwdCwg
c2NvcGUpOwotICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIo
KSk7Ci0KLSAgICBpZiAocmVnaXN0cmF0aW9uLmluc3RhbGxpbmcpCi0gICAgICAgIGF3YWl0IHdh
aXRfZm9yX3N0YXRlKHQsIHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7Ci0K
LSAgICBjb25zdCBmcmFtZSA9IGF3YWl0IHdpdGhfaWZyYW1lKHNjb3BlKTsKLSAgICB0LmFkZF9j
bGVhbnVwKCgpID0+IGZyYW1lLnJlbW92ZSgpKTsKLX0sICdUaGUgYWN0aXZlIHNlcnZpY2Ugd29y
a2VyIGluIGNoYXJnZSBvZiBhIG5hdmlnYXRpb24gbG9hZCBzaG91bGQgbm90IGJlIHRlcm1pbmF0
ZWQgYXMgcGFydCBvZiB1cGRhdGluZyB0aGUgcmVnaXN0cmF0aW9uJyk7Ci08L3NjcmlwdD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0ZS1yZWNvdmVyeS5odHRwcy5odG1sIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvdXBkYXRlLXJlY292ZXJ5Lmh0dHBzLmh0bWwKaW5kZXggMTc2MDhk
MmVmNzkwZTJlYTk3YTQzZjU2Yjg2YTI4ZWYwZTY0NzYwNC4uM2IzZDk1NWIxNDJiZmY2N2MzZDJj
MmEyZDE3NDI4ODhjNjYxYzY5ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRl
LXJlY292ZXJ5Lmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLXJlY292
ZXJ5Lmh0dHBzLmh0bWwKQEAgLTUsNyArNSw3IEBACiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Rl
c3RoYXJuZXNzLWhlbHBlcnMuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9InJlc291cmNlcy90
ZXN0LWhlbHBlcnMuc3ViLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+Ci1wcm9taXNlX3Rlc3QoZnVu
Y3Rpb24odCkgeworYXN5bmNfdGVzdChmdW5jdGlvbih0KSB7CiAgICAgdmFyIHNjb3BlID0gJ3Jl
c291cmNlcy9zaW1wbGUudHh0JzsKICAgICB2YXIgd29ya2VyX3VybCA9ICdyZXNvdXJjZXMvdXBk
YXRlLXJlY292ZXJ5LXdvcmtlci5weSc7CiAgICAgdmFyIGV4cGVjdGVkX3VybCA9IG5vcm1hbGl6
ZVVSTCh3b3JrZXJfdXJsKTsKQEAgLTQ2LDEyICs0Niw4IEBAIHByb21pc2VfdGVzdChmdW5jdGlv
bih0KSB7CiAgICAgICB9KTsKICAgICB9CiAKLSAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5y
ZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgd29ya2VyX3VybCwgc2NvcGUpCisgICAgc2VydmljZV93
b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgd29ya2VyX3VybCwgc2NvcGUpCiAgICAg
ICAudGhlbihmdW5jdGlvbihyKSB7Ci0gICAgICAgICAgdC5hZGRfY2xlYW51cChmdW5jdGlvbigp
IHsKLSAgICAgICAgICAgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXIodCwgc2Nv
cGUpOwotICAgICAgICAgICAgfSk7Ci0KICAgICAgICAgICByZWdpc3RyYXRpb24gPSByOwogICAg
ICAgICAgIHJldHVybiB3YWl0X2Zvcl9zdGF0ZSh0LCByZWdpc3RyYXRpb24uaW5zdGFsbGluZywg
J2FjdGl2YXRlZCcpOwogICAgICAgICB9KQpAQCAtNjgsNiArNjQsOCBAQCBwcm9taXNlX3Rlc3Qo
ZnVuY3Rpb24odCkgewogICAgICAgICAgIGFzc2VydF9lcXVhbHMoZnJhbWUuY29udGVudFdpbmRv
dy5uYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5jb250cm9sbGVyLnNjcmlwdFVSTCwKICAgICAgICAg
ICAgICAgICAgICAgICAgIGV4cGVjdGVkX3VybCk7CiAgICAgICAgICAgZnJhbWUucmVtb3ZlKCk7
Ci0gICAgICAgIH0pOworICAgICAgICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVy
X2FuZF9kb25lKHQsIHNjb3BlKTsKKyAgICAgICAgfSkKKyAgICAgIC5jYXRjaCh1bnJlYWNoZWRf
cmVqZWN0aW9uKHQpKTsKICAgfSwgJ1JlY292ZXIgZnJvbSBhIGJhZCBzZXJ2aWNlIHdvcmtlciBi
eSB1cGRhdGluZyBhZnRlciBhIGZhaWxlZCBuYXZpZ2F0aW9uLicpOwogPC9zY3JpcHQ+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUtcmVnaXN0cmF0aW9uLXdpdGgtdHlwZS5o
dHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUtcmVnaXN0cmF0aW9u
LXdpdGgtdHlwZS5odHRwcy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDMyN2I3NzA3MDRmZWI3NmExZTRhMzc4ZmZmYzU3ZDYxOWY4MTUyZTUuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBk
YXRlLXJlZ2lzdHJhdGlvbi13aXRoLXR5cGUuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251
bGwKQEAgLTEsOSArMCwwIEBACi0KLUZBSUwgVXBkYXRlIHRoZSByZWdpc3RyYXRpb24gd2l0aCBh
IGRpZmZlcmVudCBzY3JpcHQgdHlwZSAoY2xhc3NpYyA9PiBtb2R1bGUpLiBwcm9taXNlX3Rlc3Q6
IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IG51bGwg
aXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnc2Vjb25kV29ya2VyLnBvc3RNZXNzYWdlJyki
Ci1GQUlMIFVwZGF0ZSB0aGUgcmVnaXN0cmF0aW9uIHdpdGggYSBkaWZmZXJlbnQgc2NyaXB0IHR5
cGUgKG1vZHVsZSA9PiBjbGFzc2ljKS4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9u
IHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBTeW50YXhFcnJvcjogVW5leHBlY3RlZCB0
b2tlbiAnKicuIGltcG9ydCBjYWxsIGV4cGVjdHMgZXhhY3RseSBvbmUgYXJndW1lbnQuIgotUEFT
UyBVcGRhdGUgdGhlIHJlZ2lzdHJhdGlvbiB3aXRoIGEgZGlmZmVyZW50IHNjcmlwdCB0eXBlIChj
bGFzc2ljID0+IG1vZHVsZSkgYW5kIHdpdGggYSBzYW1lIG1haW4gc2NyaXB0LiAKLVBBU1MgVXBk
YXRlIHRoZSByZWdpc3RyYXRpb24gd2l0aCBhIGRpZmZlcmVudCBzY3JpcHQgdHlwZSAobW9kdWxl
ID0+IGNsYXNzaWMpIGFuZCB3aXRoIGEgc2FtZSBtYWluIHNjcmlwdC4gCi1QQVNTIERvZXMgbm90
IHVwZGF0ZSB0aGUgcmVnaXN0cmF0aW9uIHdpdGggdGhlIHNhbWUgc2NyaXB0IHR5cGUgYW5kIHRo
ZSBzYW1lIG1haW4gc2NyaXB0LiAKLUZBSUwgVXBkYXRlIHRoZSByZWdpc3RyYXRpb24gd2l0aCBh
IGRpZmZlcmVudCBzY3JpcHQgdHlwZSAoY2xhc3NpYyA9PiBtb2R1bGUpIGFuZCB3aXRoIGEgc2Ft
ZSBtYWluIHNjcmlwdC4gRXhwZWN0IGV2YWx1YXRpb24gZmFpbGVkLiBhc3NlcnRfdW5yZWFjaGVk
OiBTaG91bGQgaGF2ZSByZWplY3RlZDogUmVnaXN0ZXJpbmcgd2l0aCBpbnZhbGlkIGV2YWx1YXRp
b24gc2hvdWxkIGJlIGZhaWxlZC4gUmVhY2hlZCB1bnJlYWNoYWJsZSBjb2RlCi1GQUlMIFVwZGF0
ZSB0aGUgcmVnaXN0cmF0aW9uIHdpdGggYSBkaWZmZXJlbnQgc2NyaXB0IHR5cGUgKG1vZHVsZSA9
PiBjbGFzc2ljKSBhbmQgd2l0aCBhIHNhbWUgbWFpbiBzY3JpcHQuIEV4cGVjdCBldmFsdWF0aW9u
IGZhaWxlZC4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9i
amVjdCAiVHlwZUVycm9yOiBTeW50YXhFcnJvcjogVW5leHBlY3RlZCB0b2tlbiAnKicuIGltcG9y
dCBjYWxsIGV4cGVjdHMgZXhhY3RseSBvbmUgYXJndW1lbnQuIgotCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci91cGRhdGUtcmVnaXN0cmF0aW9uLXdpdGgtdHlwZS5odHRwcy5odG1sIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvdXBkYXRlLXJlZ2lzdHJhdGlvbi13aXRoLXR5cGUuaHR0cHMuaHRt
bApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTdkMzY5MjgxMmViOGEyNGYyNTNiODdl
MTU3ZjRhNDM2NmUzMDk4ZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUtcmVnaXN0cmF0aW9uLXdpdGgtdHlwZS5o
dHRwcy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjA4ICswLDAgQEAKLTwhRE9DVFlQRSBodG1s
PgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHRpdGxlPlNlcnZpY2UgV29ya2VyOiBVcGRhdGUg
dGhlIHJlZ2lzdHJhdGlvbiB3aXRoIGEgZGlmZmVyZW50IHNjcmlwdCB0eXBlLjwvdGl0bGU+Ci08
IS0tIGNvbW1vbi5qcyBpcyBmb3IgZ3VpZCgpIC0tPgotPHNjcmlwdCBzcmM9Ii9jb21tb24vc2Vj
dXJpdHktZmVhdHVyZXMvcmVzb3VyY2VzL2NvbW1vbi5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNy
Yz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iL3Jl
c291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVz
b3VyY2VzL3Rlc3QtaGVscGVycy5zdWIuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLS8vIFRoZSBm
b2xsb3dpbmcgdHdvIHRlc3RzIGNoZWNrIHRoYXQgYSByZWdpc3RyYXRpb24gaXMgdXBkYXRlZCBj
b3JyZWN0bHkKLS8vIHdpdGggZGlmZmVyZW50IHNjcmlwdCB0eXBlLiBBdCBmaXJzdCBTZXJ2aWNl
IFdvcmtlciBpcyByZWdpc3RlcmVkIGFzCi0vLyBjbGFzc2ljIHNjcmlwdCB0eXBlLCB0aGVuIGl0
IGlzIHJlLXJlZ2lzdGVyZWQgYXMgbW9kdWxlIHNjcmlwdCB0eXBlLAotLy8gYW5kIHZpY2UgdmVy
c2EuIEEgbWFpbiBzY3JpcHQgaXMgYWxzbyB1cGRhdGVkIGF0IHRoZSBzYW1lIHRpbWUuCi1wcm9t
aXNlX3Rlc3QoYXN5bmMgdCA9PiB7Ci0gIGNvbnN0IGtleSA9IGd1aWQoKTsKLSAgY29uc3Qgc2Ny
aXB0ID0gYHJlc291cmNlcy91cGRhdGUtcmVnaXN0cmF0aW9uLXdpdGgtdHlwZS5weT9jbGFzc2lj
X2ZpcnN0PTEma2V5PSR7a2V5fWA7Ci0gIGNvbnN0IHNjb3BlID0gJ3Jlc291cmNlcy91cGRhdGUt
cmVnaXN0cmF0aW9uLXdpdGgtdHlwZSc7Ci0gIGF3YWl0IHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0
ZXIodCwgc2NvcGUpOwotICB0LmFkZF9jbGVhbnVwKCgpID0+IHNlcnZpY2Vfd29ya2VyX3VucmVn
aXN0ZXIodCwgc2NvcGUpKTsKLQotICAvLyBSZWdpc3RlciB3aXRoIGNsYXNzaWMgc2NyaXB0IHR5
cGUuCi0gIGNvbnN0IGZpcnN0UmVnaXN0cmF0aW9uID0gYXdhaXQgbmF2aWdhdG9yLnNlcnZpY2VX
b3JrZXIucmVnaXN0ZXIoc2NyaXB0LCB7Ci0gICAgc2NvcGU6IHNjb3BlLAotICAgIHR5cGU6ICdj
bGFzc2ljJwotICB9KTsKLSAgY29uc3QgZmlyc3RXb3JrZXIgPSBmaXJzdFJlZ2lzdHJhdGlvbi5p
bnN0YWxsaW5nOwotICBhd2FpdCB3YWl0X2Zvcl9zdGF0ZSh0LCBmaXJzdFdvcmtlciwgJ2FjdGl2
YXRlZCcpOwotICBmaXJzdFdvcmtlci5wb3N0TWVzc2FnZSgnICcpOwotICBsZXQgbXNnRXZlbnQg
PSBhd2FpdCBuZXcgUHJvbWlzZShyID0+IG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLm9ubWVzc2Fn
ZSA9IHIpOwotICBhc3NlcnRfZXF1YWxzKG1zZ0V2ZW50LmRhdGEsICdBIGNsYXNzaWMgc2NyaXB0
LicpOwotCi0gIC8vIFJlLXJlZ2lzdGVyIHdpdGggbW9kdWxlIHNjcmlwdCB0eXBlLgotICBjb25z
dCBzZWNvbmRSZWdpc3RyYXRpb24gPSBhd2FpdCBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdp
c3RlcihzY3JpcHQsIHsKLSAgICBzY29wZTogc2NvcGUsCi0gICAgdHlwZTogJ21vZHVsZScKLSAg
fSk7Ci0gIGNvbnN0IHNlY29uZFdvcmtlciA9IHNlY29uZFJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5n
OwotICBzZWNvbmRXb3JrZXIucG9zdE1lc3NhZ2UoJyAnKTsKLSAgbXNnRXZlbnQgPSBhd2FpdCBu
ZXcgUHJvbWlzZShyID0+IG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLm9ubWVzc2FnZSA9IHIpOwot
ICBhc3NlcnRfZXF1YWxzKG1zZ0V2ZW50LmRhdGEsICdBIG1vZHVsZSBzY3JpcHQuJyk7Ci0KLSAg
YXNzZXJ0X25vdF9lcXVhbHMoZmlyc3RXb3JrZXIsIHNlY29uZFdvcmtlcik7Ci0gIGFzc2VydF9l
cXVhbHMoZmlyc3RSZWdpc3RyYXRpb24sIHNlY29uZFJlZ2lzdHJhdGlvbik7Ci19LCAnVXBkYXRl
IHRoZSByZWdpc3RyYXRpb24gd2l0aCBhIGRpZmZlcmVudCBzY3JpcHQgdHlwZSAoY2xhc3NpYyA9
PiBtb2R1bGUpLicpOwotCi1wcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7Ci0gIGNvbnN0IGtleSA9
IGd1aWQoKTsKLSAgY29uc3Qgc2NyaXB0ID0gYHJlc291cmNlcy91cGRhdGUtcmVnaXN0cmF0aW9u
LXdpdGgtdHlwZS5weT9jbGFzc2ljX2ZpcnN0PTAma2V5PSR7a2V5fWA7Ci0gIGNvbnN0IHNjb3Bl
ID0gJ3Jlc291cmNlcy91cGRhdGUtcmVnaXN0cmF0aW9uLXdpdGgtdHlwZSc7Ci0gIGF3YWl0IHNl
cnZpY2Vfd29ya2VyX3VucmVnaXN0ZXIodCwgc2NvcGUpOwotICB0LmFkZF9jbGVhbnVwKCgpID0+
IHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXIodCwgc2NvcGUpKTsKLQotICAvLyBSZWdpc3RlciB3
aXRoIG1vZHVsZSBzY3JpcHQgdHlwZS4KLSAgY29uc3QgZmlyc3RSZWdpc3RyYXRpb24gPSBhd2Fp
dCBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3RlcihzY3JpcHQsIHsKLSAgICBzY29wZTog
c2NvcGUsCi0gICAgdHlwZTogJ21vZHVsZScKLSAgfSk7Ci0gIGNvbnN0IGZpcnN0V29ya2VyID0g
Zmlyc3RSZWdpc3RyYXRpb24uaW5zdGFsbGluZzsKLSAgYXdhaXQgd2FpdF9mb3Jfc3RhdGUodCwg
Zmlyc3RXb3JrZXIsICdhY3RpdmF0ZWQnKTsKLSAgZmlyc3RXb3JrZXIucG9zdE1lc3NhZ2UoJyAn
KTsKLSAgbGV0IG1zZ0V2ZW50ID0gYXdhaXQgbmV3IFByb21pc2UociA9PiBuYXZpZ2F0b3Iuc2Vy
dmljZVdvcmtlci5vbm1lc3NhZ2UgPSByKTsKLSAgYXNzZXJ0X2VxdWFscyhtc2dFdmVudC5kYXRh
LCAnQSBtb2R1bGUgc2NyaXB0LicpOwotCi0gIC8vIFJlLXJlZ2lzdGVyIHdpdGggY2xhc3NpYyBz
Y3JpcHQgdHlwZS4KLSAgY29uc3Qgc2Vjb25kUmVnaXN0cmF0aW9uID0gYXdhaXQgbmF2aWdhdG9y
LnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoc2NyaXB0LCB7Ci0gICAgc2NvcGU6IHNjb3BlLAotICAg
IHR5cGU6ICdjbGFzc2ljJwotICB9KTsKLSAgY29uc3Qgc2Vjb25kV29ya2VyID0gc2Vjb25kUmVn
aXN0cmF0aW9uLmluc3RhbGxpbmc7Ci0gIHNlY29uZFdvcmtlci5wb3N0TWVzc2FnZSgnICcpOwot
ICBtc2dFdmVudCA9IGF3YWl0IG5ldyBQcm9taXNlKHIgPT4gbmF2aWdhdG9yLnNlcnZpY2VXb3Jr
ZXIub25tZXNzYWdlID0gcik7Ci0gIGFzc2VydF9lcXVhbHMobXNnRXZlbnQuZGF0YSwgJ0EgY2xh
c3NpYyBzY3JpcHQuJyk7Ci0KLSAgYXNzZXJ0X25vdF9lcXVhbHMoZmlyc3RXb3JrZXIsIHNlY29u
ZFdvcmtlcik7Ci0gIGFzc2VydF9lcXVhbHMoZmlyc3RSZWdpc3RyYXRpb24sIHNlY29uZFJlZ2lz
dHJhdGlvbik7Ci19LCAnVXBkYXRlIHRoZSByZWdpc3RyYXRpb24gd2l0aCBhIGRpZmZlcmVudCBz
Y3JpcHQgdHlwZSAobW9kdWxlID0+IGNsYXNzaWMpLicpOwotCi0vLyBUaGUgZm9sbG93aW5nIHR3
byB0ZXN0cyBjaGFuZ2UgdGhlIHNjcmlwdCB0eXBlIHdoaWxlIGtlZXBpbmcKLS8vIHRoZSBzY3Jp
cHQgaWRlbnRpY2FsLgotcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewotICBjb25zdCBzY3JpcHQg
PSAncmVzb3VyY2VzL2VtcHR5LXdvcmtlci5qcyc7Ci0gIGNvbnN0IHNjb3BlID0gJ3Jlc291cmNl
cy91cGRhdGUtcmVnaXN0cmF0aW9uLXdpdGgtdHlwZSc7Ci0gIGF3YWl0IHNlcnZpY2Vfd29ya2Vy
X3VucmVnaXN0ZXIodCwgc2NvcGUpOwotICB0LmFkZF9jbGVhbnVwKCgpID0+IHNlcnZpY2Vfd29y
a2VyX3VucmVnaXN0ZXIodCwgc2NvcGUpKTsKLQotICAvLyBSZWdpc3RlciB3aXRoIGNsYXNzaWMg
c2NyaXB0IHR5cGUuCi0gIGNvbnN0IGZpcnN0UmVnaXN0cmF0aW9uID0gYXdhaXQgbmF2aWdhdG9y
LnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoc2NyaXB0LCB7Ci0gICAgc2NvcGU6IHNjb3BlLAotICAg
IHR5cGU6ICdjbGFzc2ljJwotICB9KTsKLSAgY29uc3QgZmlyc3RXb3JrZXIgPSBmaXJzdFJlZ2lz
dHJhdGlvbi5pbnN0YWxsaW5nOwotICBhd2FpdCB3YWl0X2Zvcl9zdGF0ZSh0LCBmaXJzdFdvcmtl
ciwgJ2FjdGl2YXRlZCcpOwotCi0gIC8vIFJlLXJlZ2lzdGVyIHdpdGggbW9kdWxlIHNjcmlwdCB0
eXBlLgotICBjb25zdCBzZWNvbmRSZWdpc3RyYXRpb24gPSBhd2FpdCBuYXZpZ2F0b3Iuc2Vydmlj
ZVdvcmtlci5yZWdpc3RlcihzY3JpcHQsIHsKLSAgICBzY29wZTogc2NvcGUsCi0gICAgdHlwZTog
J21vZHVsZScKLSAgfSk7Ci0gIGNvbnN0IHNlY29uZFdvcmtlciA9IHNlY29uZFJlZ2lzdHJhdGlv
bi5pbnN0YWxsaW5nOwotCi0gIGFzc2VydF9ub3RfZXF1YWxzKGZpcnN0V29ya2VyLCBzZWNvbmRX
b3JrZXIpOwotICBhc3NlcnRfZXF1YWxzKGZpcnN0UmVnaXN0cmF0aW9uLCBzZWNvbmRSZWdpc3Ry
YXRpb24pOwotfSwgJ1VwZGF0ZSB0aGUgcmVnaXN0cmF0aW9uIHdpdGggYSBkaWZmZXJlbnQgc2Ny
aXB0IHR5cGUgKGNsYXNzaWMgPT4gbW9kdWxlKSAnCi0gICAgKyAnYW5kIHdpdGggYSBzYW1lIG1h
aW4gc2NyaXB0LicpOwotCi1wcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7Ci0gIGNvbnN0IHNjcmlw
dCA9ICdyZXNvdXJjZXMvZW1wdHktd29ya2VyLmpzJzsKLSAgY29uc3Qgc2NvcGUgPSAncmVzb3Vy
Y2VzL3VwZGF0ZS1yZWdpc3RyYXRpb24td2l0aC10eXBlJzsKLSAgYXdhaXQgc2VydmljZV93b3Jr
ZXJfdW5yZWdpc3Rlcih0LCBzY29wZSk7Ci0gIHQuYWRkX2NsZWFudXAoKCkgPT4gc2VydmljZV93
b3JrZXJfdW5yZWdpc3Rlcih0LCBzY29wZSkpOwotCi0gIC8vIFJlZ2lzdGVyIHdpdGggbW9kdWxl
IHNjcmlwdCB0eXBlLgotICBjb25zdCBmaXJzdFJlZ2lzdHJhdGlvbiA9IGF3YWl0IG5hdmlnYXRv
ci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKHNjcmlwdCwgewotICAgIHNjb3BlOiBzY29wZSwKLSAg
ICB0eXBlOiAnbW9kdWxlJwotICB9KTsKLSAgY29uc3QgZmlyc3RXb3JrZXIgPSBmaXJzdFJlZ2lz
dHJhdGlvbi5pbnN0YWxsaW5nOwotICBhd2FpdCB3YWl0X2Zvcl9zdGF0ZSh0LCBmaXJzdFdvcmtl
ciwgJ2FjdGl2YXRlZCcpOwotCi0gIC8vIFJlLXJlZ2lzdGVyIHdpdGggY2xhc3NpYyBzY3JpcHQg
dHlwZS4KLSAgY29uc3Qgc2Vjb25kUmVnaXN0cmF0aW9uID0gYXdhaXQgbmF2aWdhdG9yLnNlcnZp
Y2VXb3JrZXIucmVnaXN0ZXIoc2NyaXB0LCB7Ci0gICAgc2NvcGU6IHNjb3BlLAotICAgIHR5cGU6
ICdjbGFzc2ljJwotICB9KTsKLSAgY29uc3Qgc2Vjb25kV29ya2VyID0gc2Vjb25kUmVnaXN0cmF0
aW9uLmluc3RhbGxpbmc7Ci0KLSAgYXNzZXJ0X25vdF9lcXVhbHMoZmlyc3RXb3JrZXIsIHNlY29u
ZFdvcmtlcik7Ci0gIGFzc2VydF9lcXVhbHMoZmlyc3RSZWdpc3RyYXRpb24sIHNlY29uZFJlZ2lz
dHJhdGlvbik7Ci19LCAnVXBkYXRlIHRoZSByZWdpc3RyYXRpb24gd2l0aCBhIGRpZmZlcmVudCBz
Y3JpcHQgdHlwZSAobW9kdWxlID0+IGNsYXNzaWMpICcKLSAgICArICdhbmQgd2l0aCBhIHNhbWUg
bWFpbiBzY3JpcHQuJyk7Ci0KLS8vIFRoaXMgdGVzdCBjaGVja3MgdGhhdCBhIHJlZ2lzdHJhdGlv
biBpcyBub3QgdXBkYXRlZCB3aXRoIHRoZSBzYW1lIHNjcmlwdAotLy8gdHlwZSBhbmQgdGhlIHNh
bWUgbWFpbiBzY3JpcHQuCi1wcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7Ci0gIGNvbnN0IHNjcmlw
dCA9ICdyZXNvdXJjZXMvZW1wdHktd29ya2VyLmpzJzsKLSAgY29uc3Qgc2NvcGUgPSAncmVzb3Vy
Y2VzL3VwZGF0ZS1yZWdpc3RyYXRpb24td2l0aC10eXBlJzsKLSAgYXdhaXQgc2VydmljZV93b3Jr
ZXJfdW5yZWdpc3Rlcih0LCBzY29wZSk7Ci0gIHQuYWRkX2NsZWFudXAoKCkgPT4gc2VydmljZV93
b3JrZXJfdW5yZWdpc3Rlcih0LCBzY29wZSkpOwotCi0gIC8vIFJlZ2lzdGVyIHdpdGggbW9kdWxl
IHNjcmlwdCB0eXBlLgotICBjb25zdCBmaXJzdFJlZ2lzdHJhdGlvbiA9IGF3YWl0IG5hdmlnYXRv
ci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKHNjcmlwdCwgewotICAgIHNjb3BlOiBzY29wZSwKLSAg
ICB0eXBlOiAnbW9kdWxlJwotICB9KTsKLSAgYXdhaXQgd2FpdF9mb3Jfc3RhdGUodCwgZmlyc3RS
ZWdpc3RyYXRpb24uaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOwotCi0gIC8vIFJlLXJlZ2lzdGVy
IHdpdGggbW9kdWxlIHNjcmlwdCB0eXBlLgotICBjb25zdCBzZWNvbmRSZWdpc3RyYXRpb24gPSBh
d2FpdCBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3RlcihzY3JpcHQsIHsKLSAgICBzY29w
ZTogc2NvcGUsCi0gICAgdHlwZTogJ21vZHVsZScKLSAgfSk7Ci0gIGFzc2VydF9lcXVhbHMoc2Vj
b25kUmVnaXN0cmF0aW9uLmluc3RhbGxpbmcsIG51bGwpOwotCi0gIGFzc2VydF9lcXVhbHMoZmly
c3RSZWdpc3RyYXRpb24sIHNlY29uZFJlZ2lzdHJhdGlvbik7Ci19LCAnRG9lcyBub3QgdXBkYXRl
IHRoZSByZWdpc3RyYXRpb24gd2l0aCB0aGUgc2FtZSBzY3JpcHQgdHlwZSBhbmQgJwotICAgICsg
J3RoZSBzYW1lIG1haW4gc2NyaXB0LicpOwotCi0vLyBJbiB0aGUgY2FzZSAoY2xhc3NpYyA9PiBt
b2R1bGUpLCBhIHdvcmtlciBzY3JpcHQgY29udGFpbnMgaW1wb3J0U2NyaXB0cygpCi0vLyB0aGF0
IGlzIGRpc2FsbG93ZWQgb24gbW9kdWxlIHNjcmlwdHMsIHNvIHRoZSBzZWNvbmQgcmVnaXN0cmF0
aW9uIGlzCi0vLyBleHBlY3RlZCB0byBmYWlsIHNjcmlwdCBldmFsdWF0aW9uLgotcHJvbWlzZV90
ZXN0KGFzeW5jIHQgPT4gewotICBjb25zdCBzY3JpcHQgPSAncmVzb3VyY2VzL2NsYXNzaWMtd29y
a2VyLmpzJzsKLSAgY29uc3Qgc2NvcGUgPSAncmVzb3VyY2VzL3VwZGF0ZS1yZWdpc3RyYXRpb24t
d2l0aC10eXBlJzsKLSAgYXdhaXQgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcih0LCBzY29wZSk7
Ci0gIHQuYWRkX2NsZWFudXAoKCkgPT4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcih0LCBzY29w
ZSkpOwotCi0gIC8vIFJlZ2lzdGVyIHdpdGggY2xhc3NpYyBzY3JpcHQgdHlwZS4KLSAgY29uc3Qg
Zmlyc3RSZWdpc3RyYXRpb24gPSBhd2FpdCBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3Rl
cihzY3JpcHQsIHsKLSAgICBzY29wZTogc2NvcGUsCi0gICAgdHlwZTogJ2NsYXNzaWMnCi0gIH0p
OwotICBhc3NlcnRfbm90X2VxdWFscyhmaXJzdFJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLCBudWxs
KTsKLSAgYXdhaXQgd2FpdF9mb3Jfc3RhdGUodCwgZmlyc3RSZWdpc3RyYXRpb24uaW5zdGFsbGlu
ZywgJ2FjdGl2YXRlZCcpOwotCi0gIC8vIFJlLXJlZ2lzdGVyIHdpdGggbW9kdWxlIHNjcmlwdCB0
eXBlIGFuZCBleHBlY3QgVHlwZUVycm9yLgotICByZXR1cm4gcHJvbWlzZV9yZWplY3RzKHQsIG5l
dyBUeXBlRXJyb3IsIG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKHNjcmlwdCwgewot
ICAgIHNjb3BlOiBzY29wZSwKLSAgICB0eXBlOiAnbW9kdWxlJwotICB9KSwgJ1JlZ2lzdGVyaW5n
IHdpdGggaW52YWxpZCBldmFsdWF0aW9uIHNob3VsZCBiZSBmYWlsZWQuJyk7Ci19LCAnVXBkYXRl
IHRoZSByZWdpc3RyYXRpb24gd2l0aCBhIGRpZmZlcmVudCBzY3JpcHQgdHlwZSAoY2xhc3NpYyA9
PiBtb2R1bGUpICcKLSAgICArICdhbmQgd2l0aCBhIHNhbWUgbWFpbiBzY3JpcHQuIEV4cGVjdCBl
dmFsdWF0aW9uIGZhaWxlZC4nKTsKLQotLy8gSW4gdGhlIGNhc2UgKG1vZHVsZSA9PiBjbGFzc2lj
KSwgYSB3b3JrZXIgc2NyaXB0IGNvbnRhaW5zIHN0YXRpYy1pbXBvcnQKLS8vIHRoYXQgaXMgZGlz
YWxsb3dlZCBvbiBjbGFzc2ljIHNjcmlwdHMsIHNvIHRoZSBzZWNvbmQgcmVnaXN0cmF0aW9uIGlz
Ci0vLyBleHBlY3RlZCB0byBmYWlsIHNjcmlwdCBldmFsdWF0aW9uLgotcHJvbWlzZV90ZXN0KGFz
eW5jIHQgPT4gewotICBjb25zdCBzY3JpcHQgPSAncmVzb3VyY2VzL21vZHVsZS13b3JrZXIuanMn
OwotICBjb25zdCBzY29wZSA9ICdyZXNvdXJjZXMvdXBkYXRlLXJlZ2lzdHJhdGlvbi13aXRoLXR5
cGUnOwotICBhd2FpdCBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyKHQsIHNjb3BlKTsKLSAgdC5h
ZGRfY2xlYW51cCgoKSA9PiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyKHQsIHNjb3BlKSk7Ci0K
LSAgLy8gUmVnaXN0ZXIgd2l0aCBtb2R1bGUgc2NyaXB0IHR5cGUuCi0gIGNvbnN0IGZpcnN0UmVn
aXN0cmF0aW9uID0gYXdhaXQgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoc2NyaXB0
LCB7Ci0gICAgc2NvcGU6IHNjb3BlLAotICAgIHR5cGU6ICdtb2R1bGUnCi0gIH0pOwotICBhc3Nl
cnRfbm90X2VxdWFscyhmaXJzdFJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLCBudWxsKTsKLSAgYXdh
aXQgd2FpdF9mb3Jfc3RhdGUodCwgZmlyc3RSZWdpc3RyYXRpb24uaW5zdGFsbGluZywgJ2FjdGl2
YXRlZCcpOwotCi0gIC8vIFJlLXJlZ2lzdGVyIHdpdGggY2xhc3NpYyBzY3JpcHQgdHlwZSBhbmQg
ZXhwZWN0IFR5cGVFcnJvci4KLSAgcmV0dXJuIHByb21pc2VfcmVqZWN0cyh0LCBuZXcgVHlwZUVy
cm9yLCBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3RlcihzY3JpcHQsIHsKLSAgICBzY29w
ZTogc2NvcGUsCi0gICAgdHlwZTogJ2NsYXNzaWMnCi0gIH0pLCAnUmVnaXN0ZXJpbmcgd2l0aCBp
bnZhbGlkIGV2YWx1YXRpb24gc2hvdWxkIGJlIGZhaWxlZC4nKTsKLX0sICdVcGRhdGUgdGhlIHJl
Z2lzdHJhdGlvbiB3aXRoIGEgZGlmZmVyZW50IHNjcmlwdCB0eXBlIChtb2R1bGUgPT4gY2xhc3Np
YykgJwotICAgICsgJ2FuZCB3aXRoIGEgc2FtZSBtYWluIHNjcmlwdC4gRXhwZWN0IGV2YWx1YXRp
b24gZmFpbGVkLicpOwotPC9zY3JpcHQ+Ci08L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3czYy1pbXBvcnQubG9n
CmluZGV4IGEzM2VmMDViNGJjMDc3MjhiMTk4NzYzZmU5YmZmMTQ0OTNkZThhMGYuLmEwNjhmODYy
MDU5MjA2NmIyMTYwODdlYzFiMjViNmFkNmQzMDI5ZDQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL3czYy1pbXBvcnQubG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3czYy1pbXBvcnQu
bG9nCkBAIC0yMiw3ICsyMiw2IEBAIExpc3Qgb2YgZmlsZXM6CiAvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
YWN0aXZlLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9hcHBjYWNoZS1vcmRlcmluZy1t
YWluLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGFpbS1hZmZlY3Qtb3RoZXItcmVn
aXN0cmF0aW9uLmh0dHBzLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGFpbS1mZXRjaC13aXRo
LWFwcGNhY2hlLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGFpbS1mZXRjaC5odHRw
cy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xhaW0tbm90LXVzaW5nLXJlZ2lzdHJhdGlvbi5o
dHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xhaW0tc2hhcmVkLXdvcmtlci1mZXRjaC5o
dHRwcy5odG1sCkBAIC0zMyw3ICszMiw2IEBAIExpc3Qgb2YgZmlsZXM6CiAvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvY2xpZW50LW5hdmlnYXRlLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGll
bnRzLWdldC1jbGllbnQtdHlwZXMuaHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsaWVu
dHMtZ2V0LWNyb3NzLW9yaWdpbi5odHRwcy5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xpZW50
cy1nZXQtcmVzdWx0aW5nQ2xpZW50SWQuaHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2Ns
aWVudHMtZ2V0Lmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGllbnRzLW1hdGNoYWxs
LWNsaWVudC10eXBlcy5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xpZW50cy1tYXRj
aGFsbC1leGFjdC1jb250cm9sbGVyLmh0dHBzLmh0bWwKQEAgLTQ1LDE0ICs0MywxMSBAQCBMaXN0
IG9mIGZpbGVzOgogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NvbnRyb2xsZXItb24tbG9hZC5odHRwcy5o
dG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvY29udHJvbGxlci1vbi1yZWxvYWQuaHR0cHMuaHRtbAog
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL2NvbnRyb2xsZXItd2l0aC1uby1mZXRjaC1ldmVudC1oYW5kbGVy
Lmh0dHBzLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9kYXRhLXRyYW5zZmVyLWZpbGVzLmh0dHBz
Lmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9kZWRpY2F0ZWQtd29ya2VyLXNlcnZpY2Utd29ya2Vy
LWludGVyY2VwdGlvbi5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZGV0YWNoZWQtY29u
dGV4dC5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZW1iZWQtYW5kLW9iamVjdC1hcmUt
bm90LWludGVyY2VwdGVkLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9leHRlbmRhYmxl
LWV2ZW50LWFzeW5jLXdhaXR1bnRpbC5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZXh0
ZW5kYWJsZS1ldmVudC13YWl0dW50aWwuaHR0cHMuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2Zl
dGNoLWF1ZGlvLXRhaW50aW5nLmh0dHBzLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1j
YW52YXMtdGFpbnRpbmctZG91YmxlLXdyaXRlLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9mZXRjaC1jYW52YXMtdGFpbnRpbmctaW1hZ2UtY2FjaGUuaHR0cHMuaHRtbAogL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL2ZldGNoLWNhbnZhcy10YWludGluZy1pbWFnZS5odHRwcy5odG1sCiAvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvZmV0Y2gtY2FudmFzLXRhaW50aW5nLXZpZGVvLWNhY2hlLmh0dHBzLmh0bWwK
QEAgLTEwNCw4ICs5OSw2IEBAIExpc3Qgb2YgZmlsZXM6CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZ2V0
cmVnaXN0cmF0aW9ucy5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvaHR0cC10by1odHRw
cy1yZWRpcmVjdC1hbmQtcmVnaXN0ZXIuaHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2lt
bXV0YWJsZS1wcm90b3R5cGUtc2VydmljZXdvcmtlci5odHRwcy5odG1sCi0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvaW1wb3J0LW1vZHVsZS1zY3JpcHRzLmh0dHBzLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9pbXBvcnQtc2NyaXB0cy1taW1lLXR5cGVzLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9pbXBvcnQtc2NyaXB0cy1yZWRpcmVjdC5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
aW1wb3J0LXNjcmlwdHMtcmVzb3VyY2UtbWFwLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9pbXBvcnQtc2NyaXB0cy11cGRhdGVkLWZsYWcuaHR0cHMuaHRtbApAQCAtMTM0LDcgKzEyNyw2
IEBAIExpc3Qgb2YgZmlsZXM6CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcG9zdG1lc3NhZ2UtYmxvYi11
cmwuaHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Bvc3RtZXNzYWdlLWZyb20td2FpdGlu
Zy1zZXJ2aWNld29ya2VyLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9wb3N0bWVzc2Fn
ZS1tc2dwb3J0LXRvLWNsaWVudC5odHRwcy5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcG9zdG1l
c3NhZ2UtdG8tY2xpZW50LW1lc3NhZ2UtcXVldWUuaHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3Bvc3RtZXNzYWdlLXRvLWNsaWVudC5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
cG9zdG1lc3NhZ2UuaHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlYWR5Lmh0dHBzLmh0
bWwKQEAgLTE1MCw3ICsxNDIsNiBAQCBMaXN0IG9mIGZpbGVzOgogL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L3JlZ2lzdHJhdGlvbi1ldmVudHMuaHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlZ2lz
dHJhdGlvbi1pZnJhbWUuaHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlZ2lzdHJhdGlv
bi1taW1lLXR5cGVzLmh0dHBzLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZWdpc3RyYXRpb24t
c2NoZWR1bGUtam9iLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZWdpc3RyYXRpb24t
c2NvcGUuaHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlZ2lzdHJhdGlvbi1zY3JpcHQt
dXJsLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZWdpc3RyYXRpb24tc2NyaXB0Lmh0
dHBzLmh0bWwKQEAgLTE2MCw3ICsxNTEsNyBAQCBMaXN0IG9mIGZpbGVzOgogL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL3JlamVjdGlvbnMuaHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlcXVlc3Qt
ZW5kLXRvLWVuZC5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2UtdGltaW5n
LWNyb3NzLW9yaWdpbi5odHRwcy5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2UtdGlt
aW5nLnN1Yi5odHRwcy5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2UtdGltaW5nLmh0
dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNwb25kLXdpdGgtYm9keS1hY2Nlc3NlZC1y
ZXNwb25zZS5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvc2FuZGJveGVkLWlmcmFtZS1m
ZXRjaC1ldmVudC5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvc2FuZGJveGVkLWlmcmFt
ZS1uYXZpZ2F0b3Itc2VydmljZXdvcmtlci5odHRwcy5odG1sCkBAIC0xODksMTIgKzE4MCw3IEBA
IExpc3Qgb2YgZmlsZXM6CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLWFmdGVyLW5hdmlnYXRp
b24tcmVkaXJlY3QuaHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0ZS1hZnRlci1v
bmVkYXkuaHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0ZS1ieXRlY2hlY2suaHR0
cHMuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0ZS1taXNzaW5nLWltcG9ydC1zY3JpcHRz
Lmh0dHBzLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUtbm8tY2FjaGUtcmVxdWVzdC1o
ZWFkZXJzLmh0dHBzLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUtbm90LWFsbG93ZWQu
aHR0cHMuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0ZS1vbi1uYXZpZ2F0aW9uLmh0dHBz
Lmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUtcmVjb3ZlcnkuaHR0cHMuaHRtbAotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL3VwZGF0ZS1yZWdpc3RyYXRpb24td2l0aC10eXBlLmh0dHBzLmh0bWwK
IC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUtcmVzdWx0Lmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci91cGRhdGUuaHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3dhaXRpbmcuaHR0
cHMuaHRtbApAQCAtMjA2LDUgKzE5MiwzIEBAIExpc3Qgb2YgZmlsZXM6CiAvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvd29ya2VyLWluLXNhbmRib3hlZC1pZnJhbWUtYnktY3NwLWZldGNoLWV2ZW50Lmh0dHBz
Lmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci93b3JrZXItaW50ZXJjZXB0aW9uLXJlZGlyZWN0Lmh0
dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci93b3JrZXItaW50ZXJjZXB0aW9uLmh0dHBzLmh0
bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci94aHItcmVzcG9uc2UtdXJsLmh0dHBzLmh0bWwKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci94c2wtYmFzZS11cmwuaHR0cHMuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvd2Vic29ja2V0Lmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3dlYnNvY2tldC5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggY2NkMzc2ZmJkMTQwZTZjYzI1
MWE1MjA2NDI3MzBkYzFhOWU4Njc4Zi4uMDBhZTM0MzE0ZTcyZGZmY2E0MjVjZTMxMjQ2MmYzMGJk
YjYxYTdhOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvd2Vic29ja2V0Lmh0dHBzLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci93ZWJzb2NrZXQuaHR0cHMtZXhwZWN0
ZWQudHh0CkBAIC0xLDYgKzEsNCBAQAotQ09OU09MRSBNRVNTQUdFOiBXZWJTb2NrZXQgbmV0d29y
ayBlcnJvcjogT1NTdGF0dXMgRXJyb3IgLTk4MDc6IEludmFsaWQgY2VydGlmaWNhdGUgY2hhaW4g
Ci1DT05TT0xFIE1FU1NBR0U6IFdlYlNvY2tldCBuZXR3b3JrIGVycm9yOiBPU1N0YXR1cyBFcnJv
ciAtOTgwNzogSW52YWxpZCBjZXJ0aWZpY2F0ZSBjaGFpbiAKIAogCi1GQUlMIFZlcmlmeSBXZWJT
b2NrZXQgaGFuZHNoYWtlIGNoYW5uZWwgZG9lcyBub3QgZ2V0IGludGVyY2VwdGVkIHByb21pc2Vf
dGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIltvYmplY3QgRXZl
bnRdIgorUEFTUyBWZXJpZnkgV2ViU29ja2V0IGhhbmRzaGFrZSBjaGFubmVsIGRvZXMgbm90IGdl
dCBpbnRlcmNlcHRlZCAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvd2Vic29ja2V0
Lmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci93ZWJzb2NrZXQuaHR0cHMuaHRtbAppbmRl
eCBjYmZlZDQ1NmE5ZGM2YmRmZGJkMTk3ODk5MTIxMDFhYjExMTdiMWVmLi5iOWM1MjZkNTBmYjk5
YWJiYWZjYjJiOGQ0ZjAwYzIyNjdiMjVjNDc0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci93ZWJzb2NrZXQuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci93ZWJzb2NrZXQu
aHR0cHMuaHRtbApAQCAtNiw3ICs2LDcgQEAKIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGVzdC1o
ZWxwZXJzLnN1Yi5qcz9waXBlPXN1YiI+PC9zY3JpcHQ+CiA8c2NyaXB0PgogCi1wcm9taXNlX3Rl
c3QoZnVuY3Rpb24odCkgeworYXN5bmNfdGVzdChmdW5jdGlvbih0KSB7CiAgICAgdmFyIHBhdGgg
PSBuZXcgVVJMKCIuIiwgd2luZG93LmxvY2F0aW9uKS5wYXRobmFtZQogICAgIHZhciB1cmwgPSAn
cmVzb3VyY2VzL3dlYnNvY2tldC5qcyc7CiAgICAgdmFyIHNjb3BlID0gJ3Jlc291cmNlcy9ibGFu
ay5odG1sP3dlYnNvY2tldCc7CkBAIC0xNCwxMiArMTQsOCBAQCBwcm9taXNlX3Rlc3QoZnVuY3Rp
b24odCkgewogICAgIHZhciBmcmFtZVVSTCA9IGhvc3RfaW5mb1snSFRUUFNfT1JJR0lOJ10gKyBw
YXRoICsgc2NvcGU7CiAgICAgdmFyIGZyYW1lOwogCi0gICAgcmV0dXJuIHNlcnZpY2Vfd29ya2Vy
X3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHVybCwgc2NvcGUpCisgICAgc2VydmljZV93b3Jr
ZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgdXJsLCBzY29wZSkKICAgICAgIC50aGVuKGZ1
bmN0aW9uKHJlZ2lzdHJhdGlvbikgewotICAgICAgICAgIHQuYWRkX2NsZWFudXAoZnVuY3Rpb24o
KSB7Ci0gICAgICAgICAgICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyKHQsIHNj
b3BlKTsKLSAgICAgICAgICAgIH0pOwotCiAgICAgICAgICAgcmV0dXJuIHdhaXRfZm9yX3N0YXRl
KHQsIHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7CiAgICAgICAgIH0pCiAg
ICAgICAudGhlbihmdW5jdGlvbigpIHsgcmV0dXJuIHdpdGhfaWZyYW1lKGZyYW1lVVJMKTsgfSkK
QEAgLTI4LDE4ICsyNCwyMyBAQCBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewogICAgICAgICAg
IHJldHVybiB3ZWJzb2NrZXQodCwgZnJhbWUpOwogICAgICAgICB9KQogICAgICAgLnRoZW4oZnVu
Y3Rpb24oKSB7Ci0gICAgICAgICAgdmFyIGNoYW5uZWwgPSBuZXcgTWVzc2FnZUNoYW5uZWwoKTsK
LSAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSkgewotICAgICAg
ICAgICAgY2hhbm5lbC5wb3J0MS5vbm1lc3NhZ2UgPSByZXNvbHZlOworICAgICAgICAgIHJldHVy
biBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgICAgICAgIGZ1
bmN0aW9uIG9uTWVzc2FnZShlKSB7CisgICAgICAgICAgICAgIGZvciAodmFyIHVybCBpbiBlLmRh
dGEudXJscykgeworICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHModXJsLmluZGV4T2YoZ2V0
X3dlYnNvY2tldF91cmwoKSksIC0xLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk9i
c2VydmVkIGFuIHVuZXhwZWN0ZWQgRmV0Y2hFdmVudCBmb3IgdGhlIFdlYlNvY2tldCBoYW5kc2hh
a2UiKTsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICB0LmRvbmUoKTsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgIHZhciBjaGFubmVsID0gbmV3IE1lc3NhZ2VDaGFubmVsKCk7Cisg
ICAgICAgICAgICBjaGFubmVsLnBvcnQxLm9ubWVzc2FnZSA9IHQuc3RlcF9mdW5jKG9uTWVzc2Fn
ZSk7CiAgICAgICAgICAgICBmcmFtZS5jb250ZW50V2luZG93Lm5hdmlnYXRvci5zZXJ2aWNlV29y
a2VyLmNvbnRyb2xsZXIucG9zdE1lc3NhZ2Uoe3BvcnQ6IGNoYW5uZWwucG9ydDJ9LCBbY2hhbm5l
bC5wb3J0Ml0pOwogICAgICAgICAgIH0pOwogICAgICAgICB9KQotICAgICAgLnRoZW4oZnVuY3Rp
b24oZSkgewotICAgICAgICAgIGZvciAodmFyIHVybCBpbiBlLmRhdGEudXJscykgewotICAgICAg
ICAgICAgYXNzZXJ0X2VxdWFscyh1cmwuaW5kZXhPZihnZXRfd2Vic29ja2V0X3VybCgpKSwgLTEs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICJPYnNlcnZlZCBhbiB1bmV4cGVjdGVkIEZldGNo
RXZlbnQgZm9yIHRoZSBXZWJTb2NrZXQgaGFuZHNoYWtlIik7Ci0gICAgICAgICAgfQorICAgICAg
LnRoZW4oZnVuY3Rpb24oKSB7CiAgICAgICAgICAgZnJhbWUucmVtb3ZlKCk7Ci0gICAgICAgIH0p
OworICAgICAgICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9kb25lKHQs
IHNjb3BlKTsKKyAgICAgICAgfSkKKyAgICAgIC5jYXRjaCh1bnJlYWNoZWRfcmVqZWN0aW9uKHQp
KTsKICAgfSwgJ1ZlcmlmeSBXZWJTb2NrZXQgaGFuZHNoYWtlIGNoYW5uZWwgZG9lcyBub3QgZ2V0
IGludGVyY2VwdGVkJyk7CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L3dpbmRvd2NsaWVudC1uYXZpZ2F0ZS5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvd2lu
ZG93Y2xpZW50LW5hdmlnYXRlLmh0dHBzLmh0bWwKaW5kZXggZTYyYzFhYzNhYTQwZTBjNDEyYTcz
NmU3OWE3NzUxNTM0ODM5OGEyYy4uOGVhMjc5ZWYwNzVlNWU2Yzg5MDQ5NjZiMDA1ZjBiYWYwZDc1
YmNhOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvd2luZG93Y2xpZW50LW5hdmlnYXRl
Lmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvd2luZG93Y2xpZW50LW5hdmlnYXRl
Lmh0dHBzLmh0bWwKQEAgLTEwOSw3ICsxMDksNyBAQCBmdW5jdGlvbiBuYXZpZ2F0ZV90ZXN0KG92
ZXJyaWRlX3BhcmFtZXRlcnMpIHsKICAgICAgICAgfSk7CiAgICAgfQogCi0gICAgdGVzdC5hZGRf
Y2xlYW51cChmdW5jdGlvbigpIHsKKyAgICB2YXIgY2xlYW51cCA9IGZ1bmN0aW9uKCkgewogICAg
ICAgaWYgKGNsaWVudF9mcmFtZSAmJiBjbGllbnRfZnJhbWUpIHsKICAgICAgICAgY2xpZW50X2Zy
YW1lLnJlbW92ZSgpOwogICAgICAgfQpAQCAtMTI3LDkgKzEyNyw5IEBAIGZ1bmN0aW9uIG5hdmln
YXRlX3Rlc3Qob3ZlcnJpZGVfcGFyYW1ldGVycykgewogICAgICAgaWYgKHJlZ2lzdHJhdGlvbikg
ewogICAgICAgICByZXR1cm4gcmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIoKTsKICAgICAgIH0KLSAg
ICB9KTsKKyAgICB9OwogCi0gICAgcmV0dXJuIHdpdGhfaWZyYW1lKHBhcmFtZXRlcnMuc3JjX3Vy
bCkKKyAgICB2YXIgdGVzdF9ib2R5ID0gd2l0aF9pZnJhbWUocGFyYW1ldGVycy5zcmNfdXJsKQog
ICAgICAgLnRoZW4oZnVuY3Rpb24oZnJhbWUpIHsKICAgICAgICAgICBjbGllbnRfZnJhbWUgPSBm
cmFtZTsKICAgICAgICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVn
aXN0ZXIoCkBAIC0xNjEsNiArMTYxLDE3IEBAIGZ1bmN0aW9uIG5hdmlnYXRlX3Rlc3Qob3ZlcnJp
ZGVfcGFyYW1ldGVycykgewogICAgICAgLnRoZW4oZnVuY3Rpb24ocmVzcG9uc2UpIHsKICAgICAg
ICAgICBhc3NlcnRfZXF1YWxzKHJlc3BvbnNlLmRhdGEsIHBhcmFtZXRlcnMuZXhwZWN0ZWQpOwog
ICAgICAgICB9KTsKKworICAgIC8vIEVuc3VyZSB0aGF0IHRlc3QgImNsZWFuIHVwIiBpcyBkZWZl
cnJlZCB1bnRpbCBhZnRlciB0aGUgdGVzdCBib2R5CisgICAgLy8gZXhlY3V0ZXMuIGBUZXN0I2Fk
ZF9jbGVhbnVwYCBjYW5ub3QgYmUgdXNlZCBmb3IgdGhpcyBwdXJwb3NlIGJlY2F1c2UgdGhlCisg
ICAgLy8gb3BlcmF0aW9uIGlzIGFzeW5jaHJvbm91cywgYW5kIGBhZGRfY2xlYW51cGAgZG9lcyBu
b3Qgc3VwcG9ydAorICAgIC8vIGFzeW5jaHJvbm91cyBvcGVyYXRpb25zIGF0IHRoZSB0aW1lIG9m
IHRoaXMgd3JpdGluZy4gU2VlCisgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9y
bS10ZXN0cy93cHQvaXNzdWVzLzYwNzUKKyAgICAvLyBFbnN1cmUgYWxzbyB0aGF0IHRlc3QgZmFp
bHVyZSBpcyBub3QgaGlkZGVuIGJ5IHN1Y2Nlc3NmdWwgY2xlYW51cAorICAgIC8vIG9wZXJhdGlv
bi4KKyAgICByZXR1cm4gdGVzdF9ib2R5CisgICAgICAudGhlbihjbGVhbnVwLCBjbGVhbnVwKQor
ICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7IHJldHVybiB0ZXN0X2JvZHk7IH0pOwogICB9LCBwYXJh
bWV0ZXJzLmRlc2NyaXB0aW9uKTsKIH0KIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvd29ya2VyLWNsaWVudC1pZC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci93b3JrZXItY2xpZW50LWlkLmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCAxMGM5ZTI0
ZDk5N2Q5Njk4Nzc0MzViMGZmNjFmMTAyNjg3MGY2MTIyLi5mYTc3NTg4N2UyYmI5NDE3MzEyODgw
NjhkMzdhM2NhN2JmZmJmYjBkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci93b3JrZXIt
Y2xpZW50LWlkLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci93b3Jr
ZXItY2xpZW50LWlkLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMSwzICsxLDMgQEAKIAotRkFJTCBW
ZXJpZnkgd29ya2VycyBoYXZlIGEgdW5pcXVlIGNsaWVudCBpZCBzZXBhcmF0ZSBmcm9tIHRoZWly
IG93bmluZyBkb2N1bWVudHMgd2luZG93IGFzc2VydF9ub3RfZXF1YWxzOiBmcmFtZSBhbmQgd29y
a2VyIGNsaWVudCBpZHMgc2hvdWxkIGJlIGRpZmZlcmVudCBnb3QgZGlzYWxsb3dlZCB2YWx1ZSAi
MS0xOSIKK0ZBSUwgVmVyaWZ5IHdvcmtlcnMgaGF2ZSBhIHVuaXF1ZSBjbGllbnQgaWQgc2VwYXJh
dGUgZnJvbSB0aGVpciBvd25pbmcgZG9jdW1lbnRzIHdpbmRvdyBhc3NlcnRfbm90X2VxdWFsczog
ZnJhbWUgYW5kIHdvcmtlciBjbGllbnQgaWRzIHNob3VsZCBiZSBkaWZmZXJlbnQgZ290IGRpc2Fs
bG93ZWQgdmFsdWUgIjQtMzA4NyIKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvd29y
a2VyLWludGVyY2VwdGlvbi5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci93
b3JrZXItaW50ZXJjZXB0aW9uLmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCBiNGVkNGVlOWExNzQ1
ZWMzMjgxNmFkYzFkY2RjYmJmYThmNzFjMDI5Li40NWUyMjllNzI4MWNlMGUxMGFkMzc2ZThkNWNl
MmU0ODIwNzU5MjA5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci93b3JrZXItaW50ZXJj
ZXB0aW9uLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci93b3JrZXIt
aW50ZXJjZXB0aW9uLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMSw4ICsxLDggQEAKLUNPTlNPTEUg
TUVTU0FHRTogbGluZSAxOiBSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogV29y
a2VyCisKIAogRkFJTCBWZXJpZnkgd29ya2VyIHNjcmlwdCBmcm9tIHVuY29udHJvbGxlZCBkb2N1
bWVudCBpcyBpbnRlcmNlcHRlZCBieSBTZXJ2aWNlIFdvcmtlciBwcm9taXNlX3Rlc3Q6IFVuaGFu
ZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogdW5kZWZpbmVkCiBGQUlMIFZlcmlmeSB3b3JrZXIg
c2NyaXB0IGludGVyY2VwdGVkIGJ5IHNhbWUtb3JpZ2luIHJlc3BvbnNlIHN1Y2NlZWRzIHByb21p
c2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiB1bmRlZmluZWQKIFBBU1Mg
VmVyaWZ5IHdvcmtlciBzY3JpcHQgaW50ZXJjZXB0ZWQgYnkgY29ycyByZXNwb25zZSBmYWlscyAK
IFBBU1MgVmVyaWZ5IHdvcmtlciBzY3JpcHQgaW50ZXJjZXB0ZWQgYnkgbm8tY29ycyBjcm9zcy1v
cmlnaW4gcmVzcG9uc2UgZmFpbHMgCi1GQUlMIFZlcmlmeSB3b3JrZXIgbG9hZHMgZnJvbSBjb250
cm9sbGVkIGRvY3VtZW50IGFyZSBpbnRlcmNlcHRlZCBieSBTZXJ2aWNlIFdvcmtlciBhc3NlcnRf
ZXF1YWxzOiBleHBlY3RlZCAiZmluaXNoIiBidXQgZ290ICJmYWlsdXJlOltvYmplY3QgRXJyb3JF
dmVudF0iCitQQVNTIFZlcmlmeSB3b3JrZXIgbG9hZHMgZnJvbSBjb250cm9sbGVkIGRvY3VtZW50
IGFyZSBpbnRlcmNlcHRlZCBieSBTZXJ2aWNlIFdvcmtlciAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvd29ya2VyLWludGVyY2VwdGlvbi5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvd29ya2VyLWludGVyY2VwdGlvbi5odHRwcy5odG1sCmluZGV4IDdiMjk0MTI2M2JmNzU2
YzMzZTZkMTViMzZlZDk2NTQ4Zjg4NmM2YzIuLjRmMTQ3NDZkOTE3ZjllOGY0MWRmY2E4NWUxNjY5
ZGRlNTBkNTY4YzQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3dvcmtlci1pbnRlcmNl
cHRpb24uaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci93b3JrZXItaW50ZXJjZXB0
aW9uLmh0dHBzLmh0bWwKQEAgLTEyLDEwICsxMiw2IEBAIHByb21pc2VfdGVzdChmdW5jdGlvbih0
KSB7CiAKICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIo
dCwgc2VydmljZV93b3JrZXIsIHNjb3BlKQogICAgICAgLnRoZW4oZnVuY3Rpb24ocikgewotICAg
ICAgICAgIHQuYWRkX2NsZWFudXAoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgIHJldHVybiBz
ZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyKHQsIHNjb3BlKTsKLSAgICAgICAgICAgIH0pOwotCiAg
ICAgICAgICAgcmV0dXJuIHdhaXRfZm9yX3N0YXRlKHQsIHIuaW5zdGFsbGluZywgJ2FjdGl2YXRl
ZCcpOwogICAgICAgICB9KQogICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7CkBAIC0zMiw2ICsyOCw3
IEBAIHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7CiAgICAgICAgIH0pCiAgICAgICAudGhlbihm
dW5jdGlvbihkYXRhKSB7CiAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhkYXRhLCAnd29ya2VyIGxv
YWRpbmcgaW50ZXJjZXB0ZWQgYnkgc2VydmljZSB3b3JrZXInKTsKKyAgICAgICAgICBzZXJ2aWNl
X3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9kb25lKHQsIHNjb3BlKTsKICAgICAgICAgfSk7CiAgIH0s
ICdWZXJpZnkgd29ya2VyIHNjcmlwdCBmcm9tIHVuY29udHJvbGxlZCBkb2N1bWVudCBpcyBpbnRl
cmNlcHRlZCBieSBTZXJ2aWNlIFdvcmtlcicpOwogCkBAIC00MiwxMCArMzksNiBAQCBwcm9taXNl
X3Rlc3QoZnVuY3Rpb24odCkgewogCiAgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0
ZXJfYW5kX3JlZ2lzdGVyKHQsIHNlcnZpY2Vfd29ya2VyLCBzY29wZSkKICAgICAgIC50aGVuKGZ1
bmN0aW9uKHIpIHsKLSAgICAgICAgICB0LmFkZF9jbGVhbnVwKGZ1bmN0aW9uKCkgewotICAgICAg
ICAgICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcih0LCBzY29wZSk7Ci0gICAg
ICAgICAgICB9KTsKLQogICAgICAgICAgIHJldHVybiB3YWl0X2Zvcl9zdGF0ZSh0LCByLmluc3Rh
bGxpbmcsICdhY3RpdmF0ZWQnKTsKICAgICAgICAgfSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKCkg
ewpAQCAtNjIsNiArNTUsNyBAQCBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewogICAgICAgICB9
KQogICAgICAgLnRoZW4oZnVuY3Rpb24oZGF0YSkgewogICAgICAgICAgIGFzc2VydF9lcXVhbHMo
ZGF0YSwgJ2R1bW15LXdvcmtlci1zY3JpcHQgbG9hZGVkJyk7CisgICAgICAgICAgc2VydmljZV93
b3JrZXJfdW5yZWdpc3Rlcl9hbmRfZG9uZSh0LCBzY29wZSk7CiAgICAgICAgIH0pOwogICB9LCAn
VmVyaWZ5IHdvcmtlciBzY3JpcHQgaW50ZXJjZXB0ZWQgYnkgc2FtZS1vcmlnaW4gcmVzcG9uc2Ug
c3VjY2VlZHMnKTsKIApAQCAtNzUsMTAgKzY5LDI3IEBAIHByb21pc2VfdGVzdChmdW5jdGlvbih0
KSB7CiAgICAgICAgICAgcmV0dXJuIHdhaXRfZm9yX3N0YXRlKHQsIHIuaW5zdGFsbGluZywgJ2Fj
dGl2YXRlZCcpOwogICAgICAgICB9KQogICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7Ci0gICAgICAg
ICAgdmFyIHcgPSBuZXcgV29ya2VyKHdvcmtlcl91cmwpOwotICAgICAgICAgIHZhciB3YXRjaGVy
ID0gbmV3IEV2ZW50V2F0Y2hlcih0LCB3LCBbJ21lc3NhZ2UnLCAnZXJyb3InXSk7Ci0gICAgICAg
ICAgcmV0dXJuIHdhdGNoZXIud2FpdF9mb3IoJ2Vycm9yJyk7Ci0gICAgICAgIH0pOworICAgICAg
ICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKKyAgICAg
ICAgICAgICAgdmFyIHcgPSBuZXcgV29ya2VyKHdvcmtlcl91cmwpOworICAgICAgICAgICAgICB3
Lm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgICAgICByZXNvbHZlKGUuZGF0
YSk7CisgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICB3Lm9uZXJyb3IgPSBmdW5jdGlv
bihlKSB7CisgICAgICAgICAgICAgICAgcmVqZWN0KGUubWVzc2FnZSk7CisgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgIH0pOworICAgICAgICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24oZGF0
YSkgeworICAgICAgICAgIGFzc2VydF91bnJlYWNoZWQoJ2ludGVyY2VwdGVkIGNvcnMgcmVzcG9u
c2UgdG8gYSBzYW1lLW9yaWdpbiBtb2RlICcgKworICAgICAgICAgICAgICAgICAgICAgICAgICAg
J3dvcmtlciBsb2FkIHNob3VsZCBmYWlsJyk7CisgICAgICAgICAgc2VydmljZV93b3JrZXJfdW5y
ZWdpc3Rlcl9hbmRfZG9uZSh0LCBzY29wZSk7CisgICAgICAgIH0pCisgICAgICAuY2F0Y2goZnVu
Y3Rpb24oZSkgeworICAgICAgICAgIGFzc2VydF90cnVlKHRydWUsICdpbnRlcmNlcHRlZCBjb3Jz
IHJlc3BvbnNlIHRvIGEgc2FtZS1vcmlnaW4gbW9kZSAnICsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAnd29ya2VyIGxvYWQgc2hvdWxkIGZhaWwnKTsKKyAgICAgICAgICBzZXJ2aWNlX3dv
cmtlcl91bnJlZ2lzdGVyX2FuZF9kb25lKHQsIHNjb3BlKTsKKyAgICAgICB9KTsKICAgfSwgJ1Zl
cmlmeSB3b3JrZXIgc2NyaXB0IGludGVyY2VwdGVkIGJ5IGNvcnMgcmVzcG9uc2UgZmFpbHMnKTsK
IAogcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKQEAgLTg4LDE3ICs5OSwyOSBAQCBwcm9taXNl
X3Rlc3QoZnVuY3Rpb24odCkgewogCiAgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0
ZXJfYW5kX3JlZ2lzdGVyKHQsIHNlcnZpY2Vfd29ya2VyLCBzY29wZSkKICAgICAgIC50aGVuKGZ1
bmN0aW9uKHIpIHsKLSAgICAgICAgICB0LmFkZF9jbGVhbnVwKGZ1bmN0aW9uKCkgewotICAgICAg
ICAgICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcih0LCBzY29wZSk7Ci0gICAg
ICAgICAgICB9KTsKLQogICAgICAgICAgIHJldHVybiB3YWl0X2Zvcl9zdGF0ZSh0LCByLmluc3Rh
bGxpbmcsICdhY3RpdmF0ZWQnKTsKICAgICAgICAgfSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKCkg
ewotICAgICAgICAgIHZhciB3ID0gbmV3IFdvcmtlcih3b3JrZXJfdXJsKTsKLSAgICAgICAgICB2
YXIgd2F0Y2hlciA9IG5ldyBFdmVudFdhdGNoZXIodCwgdywgWydtZXNzYWdlJywgJ2Vycm9yJ10p
OwotICAgICAgICAgIHJldHVybiB3YXRjaGVyLndhaXRfZm9yKCdlcnJvcicpOwotICAgICAgICB9
KTsKKyAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0
KSB7CisgICAgICAgICAgICAgIHZhciB3ID0gbmV3IFdvcmtlcih3b3JrZXJfdXJsKTsKKyAgICAg
ICAgICAgICAgdy5vbm1lc3NhZ2UgPSBmdW5jdGlvbihlKSB7CisgICAgICAgICAgICAgICAgcmVz
b2x2ZShlLmRhdGEpOworICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgdy5vbmVycm9y
ID0gZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgICAgIHJlamVjdChlKTsKKyAgICAgICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSk7CisgICAg
ICAgIH0pCisgICAgICAudGhlbihmdW5jdGlvbihkYXRhKSB7CisgICAgICAgICAgYXNzZXJ0X3Vu
cmVhY2hlZCgnaW50ZXJjZXB0ZWQgbm8tY29ycyB3b3JrZXIgbG9hZCBzaG91bGQgZmFpbCcpOwor
ICAgICAgICAgIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX2RvbmUodCwgc2NvcGUpOwor
ICAgICAgICB9KQorICAgICAgLmNhdGNoKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICBhc3NlcnRf
dHJ1ZSh0cnVlLCAnaW50ZXJjZXB0ZWQgbm8tY29ycyB3b3JrZXIgbG9hZCBzaG91bGQgZmFpbCcp
OworICAgICAgICAgIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX2RvbmUodCwgc2NvcGUp
OworICAgICAgIH0pOwogICB9LCAnVmVyaWZ5IHdvcmtlciBzY3JpcHQgaW50ZXJjZXB0ZWQgYnkg
bm8tY29ycyBjcm9zcy1vcmlnaW4gcmVzcG9uc2UgZmFpbHMnKTsKIAogcHJvbWlzZV90ZXN0KGZ1
bmN0aW9uKHQpIHsKQEAgLTEwNiwxMiArMTI5LDE0IEBAIHByb21pc2VfdGVzdChmdW5jdGlvbih0
KSB7CiAgICAgdmFyIHNlcnZpY2Vfd29ya2VyID0gJ3Jlc291cmNlcy93b3JrZXItbG9hZC1pbnRl
cmNlcHRvci5qcyc7CiAgICAgdmFyIHNjb3BlID0gJ3Jlc291cmNlcy8nOwogCisgICAgd2luZG93
LmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCB0LnN0ZXBfZnVuYyhvbl9tZXNzYWdlKSwgZmFs
c2UpOworICAgIGZ1bmN0aW9uIG9uX21lc3NhZ2UoZSkgeworICAgICAgYXNzZXJ0X2VxdWFscyhl
LmRhdGEucmVzdWx0cywgIlRoaXMgbG9hZCB3YXMgc3VjY2Vzc2Z1bGx5IGludGVyY2VwdGVkLiIp
OworICAgICAgdC5kb25lKCk7CisgICAgfQorCiAgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3Vu
cmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHNlcnZpY2Vfd29ya2VyLCBzY29wZSkKICAgICAgIC50
aGVuKGZ1bmN0aW9uKHIpIHsKLSAgICAgICAgICB0LmFkZF9jbGVhbnVwKGZ1bmN0aW9uKCkgewot
ICAgICAgICAgICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcih0LCBzY29wZSk7
Ci0gICAgICAgICAgICB9KTsKLQogICAgICAgICAgIHJldHVybiB3YWl0X2Zvcl9zdGF0ZSh0LCBy
Lmluc3RhbGxpbmcsICdhY3RpdmF0ZWQnKTsKICAgICAgICAgfSkKICAgICAgIC50aGVuKGZ1bmN0
aW9uKCkgeyByZXR1cm4gd2l0aF9pZnJhbWUoc3ViZG9jX3VybCk7IH0pCkBAIC0xMjgsNiArMTUz
LDcgQEAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICAgICAgfSkKICAgICAgIC50aGVu
KGZ1bmN0aW9uKGRhdGEpIHsKICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGRhdGEucmVzdWx0cywg
J2ZpbmlzaCcpOworICAgICAgICAgIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX2RvbmUo
dCwgc2NvcGUpOwogICAgICAgICB9KTsKICAgfSwgJ1ZlcmlmeSB3b3JrZXIgbG9hZHMgZnJvbSBj
b250cm9sbGVkIGRvY3VtZW50IGFyZSBpbnRlcmNlcHRlZCBieSBTZXJ2aWNlIFdvcmtlcicpOwog
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci94aHItcmVzcG9uc2UtdXJsLmh0dHBzLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3hoci1yZXNwb25zZS11cmwuaHR0cHMtZXhw
ZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjMzFmYzU1NmE1MGY4NmVj
MjQyOTY4MzVhNmZmYzFkZTNmZTZmNTAzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3hoci1yZXNwb25zZS11cmwuaHR0cHMt
ZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsOCArMCwwIEBACi0KLVBBU1MgZ2xvYmFs
IHNldHVwIAotUEFTUyBYSFIgcmVzcG9uc2VVUkwgc2hvdWxkIGJlIHRoZSByZXNwb25zZSBVUkwg
Ci1QQVNTIFhIUiByZXNwb25zZVVSTCBzaG91bGQgYmUgdGhlIHJlc3BvbnNlIFVSTCAoZ2VuZXJh
dGVkIHJlc3BvbnNlKSAKLUZBSUwgWEhSIERvY3VtZW50IHNob3VsZCB1c2UgdGhlIHJlc3BvbnNl
IFVSTCBhc3NlcnRfZXF1YWxzOiByZXNwb25zZVhNTC5VUkwgZXhwZWN0ZWQgImh0dHBzOi8vbG9j
YWxob3N0Ojk0NDMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9ibGFu
ay5odG1sIiBidXQgZ290ICJodHRwczovL2xvY2FsaG9zdDo5NDQzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci90ZXN0P3Jlc3BvbmRXaXRoPWZldGNoJnVybD1odHRwcyUzQSUyRiUyRmxv
Y2FsaG9zdCUzQTk0NDMlMkZzZXJ2aWNlLXdvcmtlcnMlMkZzZXJ2aWNlLXdvcmtlciUyRnJlc291
cmNlcyUyRmJsYW5rLmh0bWwiCi1QQVNTIFhIUiBEb2N1bWVudCBzaG91bGQgdXNlIHRoZSByZXNw
b25zZSBVUkwgKGdlbmVyYXRlZCByZXNwb25zZSkgCi1QQVNTIGdsb2JhbCBjbGVhbnVwIAotCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci94aHItcmVzcG9uc2UtdXJsLmh0dHBzLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci94aHItcmVzcG9uc2UtdXJsLmh0dHBzLmh0bWwKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFhZDJjZTM4NTFjYzdiY2UyNDEyMGRkODBiZGY1NDY2Mjc4
MWFjNjYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIveGhyLXJlc3BvbnNlLXVybC5odHRwcy5odG1sCisrKyAvZGV2L251bGwK
QEAgLTEsMTAzICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPG1ldGEgY2hhcnNldD0idXRmLTgi
PgotPHRpdGxlPlNlcnZpY2UgV29ya2VyOiBYSFIgcmVzcG9uc2VVUkwgdXNlcyB0aGUgcmVzcG9u
c2UgdXJsPC90aXRsZT4KLTxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGVzdC1oZWxwZXJzLnN1Yi5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0PgotY29uc3Qgc2NvcGUgPSAncmVzb3VyY2VzL3hoci1pZnJhbWUuaHRt
bCc7Ci1jb25zdCBzY3JpcHQgPSAncmVzb3VyY2VzL3hoci1yZXNwb25zZS11cmwtd29ya2VyLmpz
JzsKLWxldCBpZnJhbWU7Ci0KLWZ1bmN0aW9uIGJ1aWxkX3VybChvcHRpb25zKSB7Ci0gIGNvbnN0
IHVybCA9IG5ldyBVUkwoJ3Rlc3QnLCB3aW5kb3cubG9jYXRpb24pOwotICBjb25zdCBvcHRzID0g
b3B0aW9ucyA/IG9wdGlvbnMgOiB7fTsKLSAgaWYgKG9wdHMucmVzcG9uZFdpdGgpCi0gICAgdXJs
LnNlYXJjaFBhcmFtcy5zZXQoJ3Jlc3BvbmRXaXRoJywgb3B0cy5yZXNwb25kV2l0aCk7Ci0gIGlm
IChvcHRzLnVybCkKLSAgICB1cmwuc2VhcmNoUGFyYW1zLnNldCgndXJsJywgb3B0cy51cmwuaHJl
Zik7Ci0gIHJldHVybiB1cmwuaHJlZjsKLX0KLQotcHJvbWlzZV90ZXN0KGFzeW5jICh0KSA9PiB7
Ci0gIGNvbnN0IHJlZ2lzdHJhdGlvbiA9Ci0gICAgICBhd2FpdCBzZXJ2aWNlX3dvcmtlcl91bnJl
Z2lzdGVyX2FuZF9yZWdpc3Rlcih0LCBzY3JpcHQsIHNjb3BlKTsKLSAgYXdhaXQgd2FpdF9mb3Jf
c3RhdGUodCwgcmVnaXN0cmF0aW9uLmluc3RhbGxpbmcsICdhY3RpdmF0ZWQnKTsKLSAgaWZyYW1l
ID0gYXdhaXQgd2l0aF9pZnJhbWUoc2NvcGUpOwotfSwgJ2dsb2JhbCBzZXR1cCcpOwotCi0vLyBU
ZXN0IHRoYXQgWE1MSHR0cFJlcXVlc3QucmVzcG9uc2VVUkwgdXNlcyB0aGUgcmVzcG9uc2UgVVJM
IGZyb20gdGhlIHNlcnZpY2UKLS8vIHdvcmtlci4KLXByb21pc2VfdGVzdChhc3luYyAodCkgPT4g
ewotICAvLyBCdWlsZCBhIFVSTCB0aGF0IHRlbGxzIHRoZSBzZXJ2aWNlIHdvcmtlciB0byByZXNw
b25kV2l0aChmZXRjaCh8dGFyZ2V0fCkpLgotICBjb25zdCB0YXJnZXQgPSBuZXcgVVJMKCdyZXNv
dXJjZXMvZHVtbXkudHh0Jywgd2luZG93LmxvY2F0aW9uKTsKLSAgY29uc3QgdXJsID0gYnVpbGRf
dXJsKHsKLSAgICByZXNwb25kV2l0aDogJ2ZldGNoJywKLSAgICB1cmw6IHRhcmdldAotICB9KTsK
LQotICAvLyBQZXJmb3JtIHRoZSBYSFIuCi0gIGNvbnN0IHhociA9IGF3YWl0IGlmcmFtZS5jb250
ZW50V2luZG93Lnhocih1cmwpOwotICBhc3NlcnRfZXF1YWxzKHhoci5yZXNwb25zZVVSTCwgdGFy
Z2V0LmhyZWYsICdyZXNwb25zZVVSTCcpOwotfSwgJ1hIUiByZXNwb25zZVVSTCBzaG91bGQgYmUg
dGhlIHJlc3BvbnNlIFVSTCcpOwotCi0vLyBTYW1lIGFzIGFib3ZlIHdpdGggYSBnZW5lcmF0ZWQg
cmVzcG9uc2UuCi1wcm9taXNlX3Rlc3QoYXN5bmMgKHQpID0+IHsKLSAgLy8gQnVpbGQgYSBVUkwg
dGhhdCB0ZWxscyB0aGUgc2VydmljZSB3b3JrZXIgdG8gcmVzcG9uZFdpdGgobmV3IFJlc3BvbnNl
KCkpLgotICBjb25zdCB1cmwgPSBidWlsZF91cmwoe3Jlc3BvbmRXaXRoOiAnc3RyaW5nJ30pOwot
Ci0gIC8vIFBlcmZvcm0gdGhlIFhIUi4KLSAgY29uc3QgeGhyID0gYXdhaXQgaWZyYW1lLmNvbnRl
bnRXaW5kb3cueGhyKHVybCk7Ci0gIGFzc2VydF9lcXVhbHMoeGhyLnJlc3BvbnNlVVJMLCB1cmws
ICdyZXNwb25zZVVSTCcpOwotfSwgJ1hIUiByZXNwb25zZVVSTCBzaG91bGQgYmUgdGhlIHJlc3Bv
bnNlIFVSTCAoZ2VuZXJhdGVkIHJlc3BvbnNlKScpOwotCi0vLyBUZXN0IHRoYXQgWE1MSHR0cFJl
cXVlc3QucmVzcG9uc2VYTUwgaXMgYSBEb2N1bWVudCB3aG9zZSBVUkwgaXMgdGhlCi0vLyByZXNw
b25zZSBVUkwgZnJvbSB0aGUgc2VydmljZSB3b3JrZXIuCi1wcm9taXNlX3Rlc3QoYXN5bmMgKHQp
ID0+IHsKLSAgLy8gQnVpbGQgYSBVUkwgdGhhdCB0ZWxscyB0aGUgc2VydmljZSB3b3JrZXIgdG8g
cmVzcG9uZFdpdGgoZmV0Y2gofHRhcmdldHwpKS4KLSAgY29uc3QgdGFyZ2V0ID0gbmV3IFVSTCgn
cmVzb3VyY2VzL2JsYW5rLmh0bWwnLCB3aW5kb3cubG9jYXRpb24pOwotICBjb25zdCB1cmwgPSBi
dWlsZF91cmwoewotICAgIHJlc3BvbmRXaXRoOiAnZmV0Y2gnLAotICAgIHVybDogdGFyZ2V0Ci0g
IH0pOwotCi0gIC8vIFBlcmZvcm0gdGhlIFhIUi4KLSAgY29uc3QgeGhyID0gYXdhaXQgaWZyYW1l
LmNvbnRlbnRXaW5kb3cueGhyKHVybCwge3Jlc3BvbnNlVHlwZTogJ2RvY3VtZW50J30pOwotICBh
c3NlcnRfZXF1YWxzKHhoci5yZXNwb25zZVVSTCwgdGFyZ2V0LmhyZWYsICdyZXNwb25zZVVSTCcp
OwotCi0gIC8vIFRoZSBkb2N1bWVudCdzIFVSTCB1c2VzIHRoZSByZXNwb25zZSBVUkw6Ci0gIC8v
ICJTZXQgfGRvY3VtZW50fOKAmXMgVVJMIHRvIHxyZXNwb25zZXzigJlzIHVybC4iCi0gIC8vIGh0
dHBzOi8veGhyLnNwZWMud2hhdHdnLm9yZy8jZG9jdW1lbnQtcmVzcG9uc2UKLSAgYXNzZXJ0X2Vx
dWFscyh4aHIucmVzcG9uc2VYTUwuVVJMLCB0YXJnZXQuaHJlZiwgJ3Jlc3BvbnNlWE1MLlVSTCcp
OwotCi0gIC8vIFRoZSBkb2N1bWVudCdzIGJhc2UgVVJMIGZhbGxzIGJhY2sgdG8gdGhlIGRvY3Vt
ZW50IFVSTDoKLSAgLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2UvdXJs
cy1hbmQtZmV0Y2hpbmcuaHRtbCNkb2N1bWVudC1iYXNlLXVybAotICBhc3NlcnRfZXF1YWxzKHho
ci5yZXNwb25zZVhNTC5iYXNlVVJJLCB0YXJnZXQuaHJlZiwgJ3Jlc3BvbnNlWE1MLmJhc2VVUkkn
KTsKLX0sICdYSFIgRG9jdW1lbnQgc2hvdWxkIHVzZSB0aGUgcmVzcG9uc2UgVVJMJyk7Ci0KLS8v
IFNhbWUgYXMgYWJvdmUgd2l0aCBhIGdlbmVyYXRlZCByZXNwb25zZSBmcm9tIHRoZSBzZXJ2aWNl
IHdvcmtlci4KLXByb21pc2VfdGVzdChhc3luYyAodCkgPT4gewotICAvLyBCdWlsZCBhIFVSTCB0
aGF0IHRlbGxzIHRoZSBzZXJ2aWNlIHdvcmtlciB0bwotICAvLyByZXNwb25kV2l0aChuZXcgUmVz
cG9uc2UoKSkgd2l0aCBhIGRvY3VtZW50IHJlc3BvbnNlLgotICBjb25zdCB1cmwgPSBidWlsZF91
cmwoe3Jlc3BvbmRXaXRoOiAnZG9jdW1lbnQnfSk7Ci0KLSAgLy8gUGVyZm9ybSB0aGUgWEhSLgot
ICBjb25zdCB4aHIgPSBhd2FpdCBpZnJhbWUuY29udGVudFdpbmRvdy54aHIodXJsLCB7cmVzcG9u
c2VUeXBlOiAnZG9jdW1lbnQnfSk7Ci0gIGFzc2VydF9lcXVhbHMoeGhyLnJlc3BvbnNlVVJMLCB1
cmwsICdyZXNwb25zZVVSTCcpOwotCi0gIC8vIFRoZSBkb2N1bWVudCdzIFVSTCB1c2VzIHRoZSBy
ZXNwb25zZSBVUkwsIHdoaWNoIGlzIHRoZSByZXF1ZXN0IFVSTDoKLSAgLy8gIlNldCB8ZG9jdW1l
bnR84oCZcyBVUkwgdG8gfHJlc3BvbnNlfOKAmXMgdXJsLiIKLSAgLy8gaHR0cHM6Ly94aHIuc3Bl
Yy53aGF0d2cub3JnLyNkb2N1bWVudC1yZXNwb25zZQotICBhc3NlcnRfZXF1YWxzKHhoci5yZXNw
b25zZVhNTC5VUkwsIHVybCwgJ3Jlc3BvbnNlWE1MLlVSTCcpOwotCi0gIC8vIFRoZSBkb2N1bWVu
dCdzIGJhc2UgVVJMIGZhbGxzIGJhY2sgdG8gdGhlIGRvY3VtZW50IFVSTDoKLSAgLy8gaHR0cHM6
Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2UvdXJscy1hbmQtZmV0Y2hpbmcuaHRtbCNk
b2N1bWVudC1iYXNlLXVybAotICBhc3NlcnRfZXF1YWxzKHhoci5yZXNwb25zZVhNTC5iYXNlVVJJ
LCB1cmwsICdyZXNwb25zZVhNTC5iYXNlVVJJJyk7Ci19LCAnWEhSIERvY3VtZW50IHNob3VsZCB1
c2UgdGhlIHJlc3BvbnNlIFVSTCAoZ2VuZXJhdGVkIHJlc3BvbnNlKScpOwotCi1wcm9taXNlX3Rl
c3QoYXN5bmMgKHQpID0+IHsKLSAgaWYgKGlmcmFtZSkKLSAgICBpZnJhbWUucmVtb3ZlKCk7Ci0g
IGF3YWl0IHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXIodCwgc2NvcGUpOwotfSwgJ2dsb2JhbCBj
bGVhbnVwJyk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3hzbC1i
YXNlLXVybC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci94c2wtYmFzZS11
cmwuaHR0cHMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiNTli
ZTY5MTJkMzRmZDhlMTAyYWRjY2Q5MDRlMTQyNDk3MDg2OTFmLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3hzbC1iYXNlLXVy
bC5odHRwcy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLQotUEFT
UyBiYXNlIFVSTCB3aGVuIHNlcnZpY2Ugd29ya2VyIGRvZXMgcmVzcG9uZFdpdGgoZmV0Y2gocmVz
cG9uc2VVcmwpKSAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIveHNsLWJhc2UtdXJs
Lmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci94c2wtYmFzZS11cmwuaHR0cHMuaHRtbApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWQzYzM2NDA4YTY2YTc3ODViODg0YzljZGMz
OWRjZDI4MjBmOWFmMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci94c2wtYmFzZS11cmwuaHR0cHMuaHRtbAorKysgL2Rldi9u
dWxsCkBAIC0xLDMyICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPG1ldGEgY2hhcnNldD0idXRm
LTgiPgotPHRpdGxlPlNlcnZpY2UgV29ya2VyOiBYU0wncyBiYXNlIFVSTCBtdXN0IGJlIHRoZSBy
ZXNwb25zZSBVUkw8L3RpdGxlPgotPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3Mu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy90ZXN0LWhlbHBlcnMuc3ViLmpz
P3BpcGU9c3ViIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0vLyBUaGlzIHRlc3QgbG9hZHMgYW4gWE1M
IGRvY3VtZW50IHdoaWNoIGlzIGNvbnRyb2xsZWQgYSBzZXJ2aWNlIHdvcmtlci4gVGhlCi0vLyBk
b2N1bWVudCBsb2FkcyBhIHN0eWxlc2hlZXQgYW5kIGEgc2VydmljZSB3b3JrZXIgcmVzcG9uZHMg
d2l0aCBhbm90aGVyIFVSTC4KLS8vIFRoZSBzdHlsZXNoZWV0IGltcG9ydHMgYSByZWxhdGl2ZSBV
UkwgdG8gdGVzdCB0aGF0IHRoZSBiYXNlIFVSTCBpcyB0aGUKLS8vIHJlc3BvbnNlIFVSTCBmcm9t
IHRoZSBzZXJ2aWNlIHdvcmtlci4KLXByb21pc2VfdGVzdChhc3luYyAodCkgPT4gewotICBjb25z
dCBTQ09QRSA9ICdyZXNvdXJjZXMveHNsLWJhc2UtdXJsLWlmcmFtZS54bWwnOwotICBjb25zdCBT
Q1JJUFQgPSAncmVzb3VyY2VzL3hzbC1iYXNlLXVybC13b3JrZXIuanMnOwotICBsZXQgd29ya2Vy
OwotICBsZXQgZnJhbWU7Ci0KLSAgdC5hZGRfY2xlYW51cCgoKSA9PiB7Ci0gICAgaWYgKGZyYW1l
KQotICAgICAgZnJhbWUucmVtb3ZlKCk7Ci0gICAgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcih0
LCBTQ09QRSk7Ci0gIH0pOwotCi0gIGNvbnN0IHJlZ2lzdHJhdGlvbiA9IGF3YWl0IHNlcnZpY2Vf
d29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKAotICAgICAgdCwgU0NSSVBULCBTQ09QRSk7
Ci0gIHdvcmtlciA9IHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nOwotICBhd2FpdCB3YWl0X2Zvcl9z
dGF0ZSh0LCB3b3JrZXIsICdhY3RpdmF0ZWQnKTsKLQotICBmcmFtZSA9IGF3YWl0IHdpdGhfaWZy
YW1lKFNDT1BFKTsKLSAgYXNzZXJ0X2VxdWFscyhmcmFtZS5jb250ZW50RG9jdW1lbnQuYm9keS50
ZXh0Q29udGVudCwgJ1BBU1MnKTsKLX0sICdiYXNlIFVSTCB3aGVuIHNlcnZpY2Ugd29ya2VyIGRv
ZXMgcmVzcG9uZFdpdGgoZmV0Y2gocmVzcG9uc2VVcmwpKScpOwotPC9zY3JpcHQ+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDczMDBkOWY5MmEyODM3YTIw
NTE5OTM0YmYwMzVhZDI5ZDI3NjA2NjIuLjNjMGY1MGFjODMwYTY2MTQ5ZjljMzdkMDc1NTYwZDQ0
ZWMxZDE0YTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0
YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zCkBA
IC0zMjAzLDEwICszMjAzLDYgQEAgd2Via2l0Lm9yZy9iLzE5MDc2NCBlZGl0aW5nL3NwZWxsaW5n
L3NwZWxsaW5nLWRvdHMtcG9zaXRpb24tMy5odG1sIFsgU2tpcCBdCiAKIHdlYmtpdC5vcmcvYi8x
OTIyNzkgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvcmVnaXN0ZXItY2xvc2VkLXdpbmRvdy5odHRwcy5odG1sIFsgUGFzcyBGYWls
dXJlIF0KIAotd2Via2l0Lm9yZy9iLzE5MjI1MCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUtbWlzc2luZy1pbXBvcnQt
c2NyaXB0cy5odHRwcy5odG1sIFsgUGFzcyBGYWlsdXJlIF0KLQotd2Via2l0Lm9yZy9iLzE5MjM5
OCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci91cGRhdGUtcmVnaXN0cmF0aW9uLXdpdGgtdHlwZS5odHRwcy5odG1sIFsgUGFzcyBG
YWlsdXJlIF0KLQogd2Via2l0Lm9yZy9iLzE5MTcwNCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci93aW5kb3djbGllbnQtbmF2aWdh
dGUuaHR0cHMuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCiAKIHdlYmtpdC5vcmcvYi8xOTM5NTUgY29t
cG9zaXRpbmcvaWZyYW1lcy9yZW1vdmUtcmVpbnNlcnQtd2Vidmlldy13aXRoLWlmcmFtZS5odG1s
IFsgU2tpcCBdCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>378374</attachid>
            <date>2019-09-09 09:35:33 -0700</date>
            <delta_ts>2019-09-09 10:58:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201589-20190909093515.patch</filename>
            <type>text/plain</type>
            <size>482818</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5NjI5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggY2U3MTRhOWFmMmU0NDczZjc2NzM5
MzY2N2ZiYTEwNDFjMzYxNmNkOC4uOTlhMjA0ZWIwMzFlYzRhMTRjZDljYTdhNmE0ZTA2YTY4NWFk
MGM0NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDE5LTA5LTA4ICBDaHJpcyBEdW1leiAgPGNk
dW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUmVzeW5jIHNlcnZpY2Ugd29ya2VycyBXUFQgdGVz
dHMgZnJvbSB1cHN0cmVhbQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjAxNTg5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWW91ZW5uIEZhYmxldC4KKwor
ICAgICAgICAqIFRlc3RFeHBlY3RhdGlvbnM6CisKIDIwMTktMDktMDcgIENocmlzIER1bWV6ICA8
Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgc3VwcG9ydCBmb3IgcG9zdE1lc3NhZ2Ug
YnVmZmVyaW5nIGJldHdlZW4gdGhlIHNlcnZpY2Ugd29ya2VyIGFuZCB3aW5kb3cKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IGNiNDYzNTViZjRkMTRmN2NkYTIzMTc0ZWUxYjMwNWU5
MGY4Nzg5M2UuLjJlNzIxZjc1ZWQzY2MxYjY1MjJmN2Y0YmE2MmQ0NmE4NjAxNjljZTcgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1NSBAQAorMjAxOS0wOS0wOCAg
Q2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFJlc3luYyBzZXJ2aWNl
IHdvcmtlcnMgV1BUIHRlc3RzIGZyb20gdXBzdHJlYW0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMTU4OQorCisgICAgICAgIFJldmlld2VkIGJ5IFlv
dWVubiBGYWJsZXQuCisKKyAgICAgICAgUmVzeW5jIHNlcnZpY2Ugd29ya2VycyBXUFQgdGVzdHMg
ZnJvbSB1cHN0cmVhbSA4MjBmMGY4NjA0N2U2ZTI2NDAxZS4KKworICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvU2VydmljZS1Xb3JrZXIt
QWxsb3dlZC1oZWFkZXIuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvU2VydmljZS1Xb3JrZXItQWxs
b3dlZC1oZWFkZXIuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS9wb3N0
bWVzc2FnZS5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlL3VucmVnaXN0
ZXIuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS91cGRhdGUuaHR0cHMu
aHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL2Fib3V0LWJsYW5rLXJlcGxhY2VtZW50Lmh0dHBzLmh0bWw6CisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9hY3RpdmF0
ZS1ldmVudC1hZnRlci1pbnN0YWxsLXN0YXRlLWNoYW5nZS5odHRwcy5odG1sOgorICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvYWN0aXZh
dGlvbi1hZnRlci1yZWdpc3RyYXRpb24uaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2FjdGl2YXRpb24uaHR0cHMt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvYWN0aXZhdGlvbi5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvYXBwY2FjaGUtb3Jk
ZXJpbmctbWFpbi5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xhaW0tZmV0Y2gtd2l0aC1hcHBjYWNoZS5odHRw
cy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGFpbS1mZXRjaC13aXRoLWFwcGNhY2hlLmh0
dHBzLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGFpbS1mZXRjaC5odHRwcy5odG1sOgorICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xhaW0t
bm90LXVzaW5nLXJlZ2lzdHJhdGlvbi5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xhaW0tc2hhcmVkLXdvcmtl
ci1mZXRjaC5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xhaW0tdXNpbmctcmVnaXN0cmF0aW9uLmh0dHBzLmh0
bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9jbGFpbS13b3JrZXItZmV0Y2guaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xhaW0t
d29ya2VyLWZldGNoLmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGllbnQtaWQuaHR0cHMuaHRtbDoKKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2Ns
aWVudHMtZ2V0LWNsaWVudC10eXBlcy5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xpZW50cy1nZXQtcmVzdWx0
aW5nQ2xpZW50SWQuaHR0cHMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xpZW50cy1nZXQt
cmVzdWx0aW5nQ2xpZW50SWQuaHR0cHMuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsaWVudHMtZ2V0Lmh0
dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsaWVudHMtZ2V0Lmh0dHBzLmh0bWw6CisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGllbnRz
LW1hdGNoYWxsLWNsaWVudC10eXBlcy5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xpZW50cy1tYXRjaGFsbC1l
eGFjdC1jb250cm9sbGVyLmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsaWVudHMtbWF0Y2hhbGwt
ZXhhY3QtY29udHJvbGxlci5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xpZW50cy1tYXRjaGFsbC1pbmNsdWRl
LXVuY29udHJvbGxlZC5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xpZW50cy1tYXRjaGFsbC1vcmRlci5odHRw
cy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvY2xpZW50cy1tYXRjaGFsbC5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY29udHJvbGxlci1v
bi1kaXNjb25uZWN0Lmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jb250cm9sbGVyLW9uLWxvYWQuaHR0cHMuaHRt
bDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL2NvbnRyb2xsZXItb24tcmVsb2FkLmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9kYXRhLXRyYW5zZmVy
LWZpbGVzLmh0dHBzLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2RhdGEtdHJhbnNmZXItZmls
ZXMuaHR0cHMuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2RldGFjaGVkLWNvbnRleHQuaHR0cHMtZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvZGV0YWNoZWQtY29udGV4dC5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZXh0ZW5kYWJsZS1l
dmVudC1hc3luYy13YWl0dW50aWwuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZXh0ZW5kYWJsZS1l
dmVudC1hc3luYy13YWl0dW50aWwuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2V4dGVuZGFibGUtZXZlbnQtd2Fp
dHVudGlsLmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1hdWRpby10YWludGluZy5odHRwcy1leHBlY3Rl
ZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1hdWRpby10YWludGluZy5odHRwcy5odG1sOiBSZW1v
dmVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvZmV0Y2gtY2FudmFzLXRhaW50aW5nLWRvdWJsZS13cml0ZS5odHRwcy1leHBlY3Rl
ZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1jYW52YXMtdGFpbnRpbmctZG91YmxlLXdyaXRlLmh0
dHBzLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1jYW52YXMtdGFpbnRpbmctdmlkZW8tY2FjaGUu
aHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL2ZldGNoLWNhbnZhcy10YWludGluZy12aWRlby5odHRwcy5odG1sOgor
ICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvZmV0Y2gtY29ycy14aHIuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtY29ycy14aHIu
aHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL2ZldGNoLWNzcC5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtZXZlbnQtYWZ0
ZXItbmF2aWdhdGlvbi13aXRoaW4tcGFnZS5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtZXZlbnQtYXN5
bmMtcmVzcG9uZC13aXRoLmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWV2ZW50LWFzeW5j
LXJlc3BvbmQtd2l0aC5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtZXZlbnQtbmV0d29yay1lcnJvci5o
dHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvZmV0Y2gtZXZlbnQtcmVmZXJyZXItcG9saWN5Lmh0dHBzLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL2ZldGNoLWV2ZW50LXJlZmVycmVyLXBvbGljeS5odHRwcy5odG1sOgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0
Y2gtZXZlbnQtcmVzcG9uZC13aXRoLWFyZ3VtZW50Lmh0dHBzLmh0bWw6CisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1ldmVu
dC1yZXNwb25kLXdpdGgtYm9keS1sb2FkZWQtaW4tY2h1bmsuaHR0cHMuaHRtbDoKKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNo
LWV2ZW50LXJlc3BvbmQtd2l0aC1zdG9wcy1wcm9wYWdhdGlvbi5odHRwcy5odG1sOgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0
Y2gtZXZlbnQtdGhyb3dzLWFmdGVyLXJlc3BvbmQtd2l0aC5odHRwcy5odG1sOgorICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gt
ZXZlbnQuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtZXZlbnQuaHR0cHMuaHRtbDoKKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L2ZldGNoLWZyYW1lLXJlc291cmNlLmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1oZWFkZXItdmlzaWJp
bGl0eS5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtcmVxdWVzdC1jc3MtYmFzZS11cmwuaHR0cHMtZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvZmV0Y2gtcmVxdWVzdC1jc3MtYmFzZS11cmwuaHR0cHMuaHRtbDoKKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L2ZldGNoLXJlcXVlc3QtY3NzLWltYWdlcy5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtcmVxdWVzdC1o
dG1sLWltcG9ydHMuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtcmVxdWVzdC1odG1sLWlt
cG9ydHMuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLXJlcXVlc3Qtbm8tZnJlc2huZXNzLWhlYWRlcnMu
aHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL2ZldGNoLXJlcXVlc3QtcmVkaXJlY3QuaHR0cHMuaHRtbDoKKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2Zl
dGNoLXJlcXVlc3QteGhyLXN5bmMuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLXJlc3BvbnNlLXhoci5o
dHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvZmV0Y2gtd2FpdHMtZm9yLWFjdGl2YXRlLmh0dHBzLmh0bWw6CisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9n
ZXRyZWdpc3RyYXRpb24uaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZ2V0cmVnaXN0cmF0aW9uLmh0
dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9pbXBvcnQtbW9kdWxlLXNjcmlwdHMuaHR0cHMtZXhwZWN0ZWQudHh0OiBS
ZW1vdmVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvaW1wb3J0LW1vZHVsZS1zY3JpcHRzLmh0dHBzLmh0bWw6IFJlbW92ZWQuCisg
ICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9pbXBvcnQtc2NyaXB0cy1taW1lLXR5cGVzLmh0dHBzLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4K
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL2ltcG9ydC1zY3JpcHRzLW1pbWUtdHlwZXMuaHR0cHMuaHRtbDogUmVtb3ZlZC4KKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2lt
cG9ydC1zY3JpcHRzLXJlc291cmNlLW1hcC5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9pbXBvcnQt
c2NyaXB0cy1yZXNvdXJjZS1tYXAuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ludGVyZmFjZXMtd2luZG93Lmh0
dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9pbnZhbGlkLWJsb2J0eXBlLmh0dHBzLmh0bWw6CisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9pbnZhbGlkLWhl
YWRlci5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvaXNvLWxhdGluMS1oZWFkZXIuaHR0cHMuaHRtbDoKKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL211
bHRpcGxlLXVwZGF0ZS5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvbmF2aWdhdGlvbi1yZWRpcmVjdC5odHRwcy5o
dG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvb25hY3RpdmF0ZS1zY3JpcHQtZXJyb3IuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3BlcmZvcm1h
bmNlLXRpbWVsaW5lLmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9wb3N0bWVzc2FnZS1mcm9tLXdhaXRpbmctc2Vy
dmljZXdvcmtlci5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcG9zdG1lc3NhZ2UtdG8tY2xpZW50LW1lc3NhZ2Ut
cXVldWUuaHR0cHMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcG9zdG1lc3NhZ2UtdG8tY2xp
ZW50LW1lc3NhZ2UtcXVldWUuaHR0cHMuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Bvc3RtZXNzYWdlLXRv
LWNsaWVudC5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvcG9zdG1lc3NhZ2UuaHR0cHMtZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvcG9zdG1lc3NhZ2UuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlYWR5Lmh0dHBzLmh0bWw6CisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZWRp
cmVjdGVkLXJlc3BvbnNlLmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlZGlyZWN0ZWQtcmVzcG9u
c2UuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL3JlZmVyZXIuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlZ2lzdGVyLWRlZmF1
bHQtc2NvcGUuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlZ2lzdGVyLXdhaXQtZm9yZXZlci1pbi1pbnN0YWxs
LXdvcmtlci5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVnaXN0cmF0aW9uLWVuZC10by1lbmQuaHR0cHMuaHRt
bDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL3JlZ2lzdHJhdGlvbi1ldmVudHMuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlZ2lzdHJhdGlvbi1t
aW1lLXR5cGVzLmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlZ2lzdHJhdGlvbi1taW1lLXR5cGVz
Lmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci9yZWdpc3RyYXRpb24tc2NoZWR1bGUtam9iLmh0dHBzLWV4cGVjdGVk
LnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL3JlZ2lzdHJhdGlvbi1zY2hlZHVsZS1qb2IuaHR0cHMuaHRtbDog
UmVtb3ZlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL3JlZ2lzdHJhdGlvbi1zY29wZS5odHRwcy1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9y
ZWdpc3RyYXRpb24tc2VjdXJpdHktZXJyb3IuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVnaXN0
cmF0aW9uLXNlcnZpY2Utd29ya2VyLWF0dHJpYnV0ZXMuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlZ2lzdHJh
dGlvbi11cGRhdGV2aWFjYWNoZS5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZWdpc3RyYXRpb24t
dXBkYXRldmlhY2FjaGUuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlLXRpbWluZy5odHRwcy5odG1s
OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2UtdGltaW5nLnN1Yi5odHRw
cy5odG1sLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvcmVzb3VyY2UtdGltaW5nLnN1Yi5odHRwcy1leHBlY3RlZC50eHQ6IFJlbW92
ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9yZXNvdXJjZXMvYWJvdXQtYmxhbmstcmVwbGFjZW1lbnQtcGluZy1mcmFtZS5weToK
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3Jlc291cmNlcy9hcHBjYWNoZS1vcmRlcmluZy5tYW5pZmVzdDoKKyAgICAgICAgKiB3ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9j
bGFpbS13b3JrZXIuanM6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvY2xhc3NpYy13b3JrZXIuanM6IFJlbW92ZWQu
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9yZXNvdXJjZXMvY2xpZW50cy1nZXQtY3Jvc3Mtb3JpZ2luLWZyYW1lLmh0bWw6CisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9y
ZXNvdXJjZXMvY2xpZW50cy1nZXQtcmVzdWx0aW5nQ2xpZW50SWQtd29ya2VyLmpzOiBSZW1vdmVk
LgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvcmVzb3VyY2VzL2NsaWVudHMtZ2V0LXdvcmtlci5qczoKKyAgICAgICAgKHNlbGYub25t
ZXNzYWdlKToKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL3Jlc291cmNlcy9lbmFibGUtY2xpZW50LW1lc3NhZ2UtcXVldWUuaHRtbDog
UmVtb3ZlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL3Jlc291cmNlcy9leHRlbmRhYmxlLWV2ZW50LWFzeW5jLXdhaXR1bnRpbC5q
czoKKyAgICAgICAgKHN3aXRjaCk6CisgICAgICAgIChldmVudC5yZXF1ZXN0LnVybC5pbmRleE9m
KToKKyAgICAgICAgKGVsc2UuZXZlbnQucmVxdWVzdC51cmwuaW5kZXhPZik6CisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJj
ZXMvZmV0Y2gtY2FudmFzLXRhaW50aW5nLWRvdWJsZS13cml0ZS13b3JrZXIuanM6IFJlbW92ZWQu
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9yZXNvdXJjZXMvZmV0Y2gtY29ycy14aHItaWZyYW1lLmh0bWw6CisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMv
ZmV0Y2gtZXZlbnQtYXN5bmMtcmVzcG9uZC13aXRoLXdvcmtlci5qczoKKyAgICAgICAgKHNldFRp
bWVvdXQpOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWV2ZW50LW5ldHdvcmstZmFsbGJhY2std29ya2Vy
LmpzOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWV2ZW50LXRlc3Qtd29ya2VyLmpzOgorICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3Vy
Y2VzL2ZldGNoLXJlcXVlc3QtY3NzLWJhc2UtdXJsLWlmcmFtZS5odG1sOgorICAgICAgICAqIHdl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2Vz
L2ZldGNoLXJlcXVlc3QtY3NzLWJhc2UtdXJsLXdvcmtlci5qczoKKyAgICAgICAgKHNlbGYub25t
ZXNzYWdlKToKKyAgICAgICAgKHVybC5pbmRleE9mKToKKyAgICAgICAgKGVsc2UudXJsLmluZGV4
T2YpOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvcmVzb3VyY2VzL2dldC1yZXN1bHRpbmdDbGllbnRJZC13b3JrZXIuanM6IFJlbW92
ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9yZXNvdXJjZXMvaW1wb3J0LXJlbGF0aXZlLnhzbDogUmVtb3ZlZC4KKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291
cmNlcy9pbXBvcnQtc2NyaXB0cy1kaWZmLXJlc291cmNlLW1hcC13b3JrZXIuanM6IFJlbW92ZWQu
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9yZXNvdXJjZXMvaW1wb3J0LXNjcmlwdHMtZ2V0LnB5OiBSZW1vdmVkLgorICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3Vy
Y2VzL2ltcG9ydC1zY3JpcHRzLW1pbWUtdHlwZXMtd29ya2VyLmpzOiBSZW1vdmVkLgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVz
b3VyY2VzL2ltcG9ydGVkLWNsYXNzaWMtc2NyaXB0LmpzOiBSZW1vdmVkLgorICAgICAgICAqIHdl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2Vz
L2ltcG9ydGVkLW1vZHVsZS1zY3JpcHQuanM6IFJlbW92ZWQuCisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvbWVzc2Fn
ZS12cy1taWNyb3Rhc2suaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9tb2R1bGUtd29ya2Vy
LmpzOiBSZW1vdmVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL25hdmlnYXRpb24tcmVkaXJlY3Qtb3RoZXItb3Jp
Z2luLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvbmF2aWdhdGlvbi1yZWRpcmVjdC1vdXQtc2NvcGUucHk6
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9yZXNvdXJjZXMvbmF2aWdhdGlvbi1yZWRpcmVjdC1zY29wZTEucHk6CisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJj
ZXMvbmF2aWdhdGlvbi1yZWRpcmVjdC1zY29wZTIucHk6CisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvbmVzdGVkLWlm
cmFtZS1wYXJlbnQuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9wZXJmb3JtYW5jZS10aW1l
bGluZS13b3JrZXIuanM6CisgICAgICAgIChwcm9taXNlX3Rlc3QuKToKKyAgICAgICAgKHByb21p
c2VfdGVzdCk6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvcG9zdG1lc3NhZ2UtZWNoby13b3JrZXIuanM6IFJlbW92
ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9yZXNvdXJjZXMvcmVkaXJlY3Qtd29ya2VyLmpzOgorICAgICAgICAoZXZlbnQud2Fp
dFVudGlsLlByb21pc2UuYWxsLndhaXRVbnRpbFByb21pc2VMaXN0LnRoZW4pOgorICAgICAgICAo
dGhlbik6CisgICAgICAgICh3YWl0VW50aWxQcm9taXNlLmNhY2hlcy5vcGVuLmNhY2hlTmFtZS50
aGVuKToKKyAgICAgICAgKGV2ZW50LnJlc3BvbmRXaXRoLndhaXRVbnRpbFByb21pc2UudGhlbik6
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9yZXNvdXJjZXMvcmVnaXN0cmF0aW9uLXRlc3RzLW1pbWUtdHlwZXMuanM6CisgICAgICAg
IChyZWdpc3RyYXRpb25fdGVzdHNfbWltZV90eXBlcyk6CisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvcmVnaXN0cmF0
aW9uLXRlc3RzLXNjb3BlLmpzOgorICAgICAgICAocmVnaXN0cmF0aW9uX3Rlc3RzX3Njb3BlKToK
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3Jlc291cmNlcy9yZWdpc3RyYXRpb24tdGVzdHMtc2VjdXJpdHktZXJyb3IuanM6CisgICAg
ICAgIChyZWdpc3RyYXRpb25fdGVzdHNfc2VjdXJpdHlfZXJyb3IpOgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3Jl
c291cmNlLXRpbWluZy1pZnJhbWUuc3ViLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvc2VydmljZS13b3Jr
ZXItY3NwLXdvcmtlci5weToKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9zZXJ2aWNlLXdvcmtlci1oZWFkZXIucHk6
CisgICAgICAgIChtYWluKToKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9za2lwLXdhaXRpbmctaW5zdGFsbGVkLXdv
cmtlci5qczoKKyAgICAgICAgKGV2ZW50LndhaXRVbnRpbC5zZWxmLnNraXBXYWl0aW5nLnRoZW4p
OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvcmVzb3VyY2VzL3N0YWxsaW5nLXNlcnZpY2Utd29ya2VyLmpzOiBSZW1vdmVkLgorICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
cmVzb3VyY2VzL3Rlc3QtaGVscGVycy5zdWIuanM6CisgICAgICAgICh3YWl0X2Zvcl91cGRhdGUp
OgorICAgICAgICAoYXN5bmMud2FpdF9mb3JfYWN0aXZhdGlvbl9vbl9kdW1teV9zY29wZSk6Cisg
ICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9yZXNvdXJjZXMvdGVzdC1yZXF1ZXN0LWhlYWRlcnMtd29ya2VyLmpzOiBSZW1vdmVkLgorICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
cmVzb3VyY2VzL3Rlc3QtcmVxdWVzdC1oZWFkZXJzLXdvcmtlci5weTogUmVtb3ZlZC4KKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jl
c291cmNlcy90cmlja2xlLnB5OiBSZW1vdmVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3VwZGF0ZS1kdXJpbmct
aW5zdGFsbGF0aW9uLXdvcmtlci5qczogUmVtb3ZlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy91cGRhdGUtZHVy
aW5nLWluc3RhbGxhdGlvbi13b3JrZXIucHk6IFJlbW92ZWQuCisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvdXBkYXRl
LWZldGNoLXdvcmtlci5weTogUmVtb3ZlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy91cGRhdGUtbWlzc2luZy1p
bXBvcnQtc2NyaXB0cy1pbXBvcnRlZC13b3JrZXIucHk6IFJlbW92ZWQuCisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMv
dXBkYXRlLW1pc3NpbmctaW1wb3J0LXNjcmlwdHMtbWFpbi13b3JrZXIucHk6IFJlbW92ZWQuCisg
ICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9yZXNvdXJjZXMvdXBkYXRlLXJlZ2lzdHJhdGlvbi13aXRoLXR5cGUucHk6IFJlbW92ZWQuCisg
ICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9yZXNvdXJjZXMvdzNjLWltcG9ydC5sb2c6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvd29ya2VyLWludGVyY2Vw
dGlvbi1pZnJhbWUuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy93b3JrZXItbG9hZC1pbnRlcmNl
cHRvci5qczoKKyAgICAgICAgKHNlbGYub25mZXRjaCk6CisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvd29ya2VyLXRl
c3RoYXJuZXNzLmpzOgorICAgICAgICAoY3JlYXRlX3RlbXBvcmFyeV9jYWNoZSk6CisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNv
dXJjZXMveGhyLWlmcmFtZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3hoci1yZXNwb25z
ZS11cmwtd29ya2VyLmpzOiBSZW1vdmVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3hzbC1iYXNlLXVybC1pZnJh
bWUueG1sOiBSZW1vdmVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3hzbC1iYXNlLXVybC13b3JrZXIuanM6IFJl
bW92ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9yZXNvdXJjZXMveHNsdC1wYXNzLnhzbDogUmVtb3ZlZC4KKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3NlcnZpY2Ut
d29ya2VyLWNzcC1jb25uZWN0Lmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3NlcnZpY2Utd29ya2Vy
LWNzcC1kZWZhdWx0Lmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3NlcnZpY2Utd29ya2VyLWNzcC1z
Y3JpcHQuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvc2VydmljZS13b3JrZXItaGVhZGVyLmh0dHBz
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL3NlcnZpY2Utd29ya2VyLWhlYWRlci5odHRwcy5odG1sOgorICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
c2VydmljZXdvcmtlci1tZXNzYWdlLWV2ZW50LWhpc3RvcmljYWwuaHR0cHMuaHRtbDoKKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3No
YXJlZC13b3JrZXItY29udHJvbGxlZC5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvc2tpcC13YWl0aW5nLWluc3Rh
bGxlZC5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9za2lwLXdhaXRpbmctaW5zdGFsbGVkLmh0dHBz
Lmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9za2lwLXdhaXRpbmctdXNpbmctcmVnaXN0cmF0aW9uLmh0dHBzLmh0bWw6Cisg
ICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9za2lwLXdhaXRpbmctd2l0aG91dC11c2luZy1yZWdpc3RyYXRpb24uaHR0cHMuaHRtbDoKKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L3NraXAtd2FpdGluZy5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvc3RhdGUuaHR0cHMuaHRtbDoKKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3N5bmNl
ZC1zdGF0ZS5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvdW5jb250cm9sbGVkLXBhZ2UuaHR0cHMuaHRtbDoKKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L3VucmVnaXN0ZXItdGhlbi1yZWdpc3Rlci1uZXctc2NyaXB0Lmh0dHBzLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3VucmVnaXN0ZXItdGhlbi1yZWdpc3Rlci1uZXctc2NyaXB0Lmh0dHBzLmh0bWw6CisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91
bnJlZ2lzdGVyLXRoZW4tcmVnaXN0ZXIuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdW5yZWdpc3Rl
ci10aGVuLXJlZ2lzdGVyLmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUtYWZ0ZXItbmF2aWdhdGlvbi1y
ZWRpcmVjdC5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLWFmdGVyLW9uZWRheS5odHRwcy5odG1sOgor
ICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvdXBkYXRlLWJ5dGVjaGVjay5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLW1pc3NpbmctaW1wb3J0
LXNjcmlwdHMuaHR0cHMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLW1pc3Npbmct
aW1wb3J0LXNjcmlwdHMuaHR0cHMuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0ZS1uby1jYWNoZS1y
ZXF1ZXN0LWhlYWRlcnMuaHR0cHMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIHdl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLW5v
LWNhY2hlLXJlcXVlc3QtaGVhZGVycy5odHRwcy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIHdl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLW5v
dC1hbGxvd2VkLmh0dHBzLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0ZS1ub3QtYWxs
b3dlZC5odHRwcy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLW9uLW5hdmlnYXRpb24uaHR0cHMt
ZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLW9uLW5hdmlnYXRpb24uaHR0cHMuaHRt
bDogUmVtb3ZlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL3VwZGF0ZS1yZWNvdmVyeS5odHRwcy5odG1sOgorICAgICAgICAqIHdl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLXJl
Z2lzdHJhdGlvbi13aXRoLXR5cGUuaHR0cHMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBk
YXRlLXJlZ2lzdHJhdGlvbi13aXRoLXR5cGUuaHR0cHMuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3czYy1p
bXBvcnQubG9nOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvd2Vic29ja2V0Lmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3dlYnNvY2tl
dC5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvd2luZG93Y2xpZW50LW5hdmlnYXRlLmh0dHBzLmh0bWw6CisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci93
b3JrZXItY2xpZW50LWlkLmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3dvcmtlci1pbnRlcmNlcHRp
b24uaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvd29ya2VyLWludGVyY2VwdGlvbi5odHRwcy5odG1s
OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIveGhyLXJlc3BvbnNlLXVybC5odHRwcy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci94
aHItcmVzcG9uc2UtdXJsLmh0dHBzLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci94c2wtYmFzZS11cmwuaHR0
cHMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIveHNsLWJhc2UtdXJsLmh0dHBzLmh0bWw6IFJl
bW92ZWQuCisKIDIwMTktMDktMDcgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAog
ICAgICAgICBBZGQgc3VwcG9ydCBmb3IgcG9zdE1lc3NhZ2UgYnVmZmVyaW5nIGJldHdlZW4gdGhl
IHNlcnZpY2Ugd29ya2VyIGFuZCB3aW5kb3cKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL1Rlc3RF
eHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDlmMTQzNGMw
YjAxM2ZiZjNjZDY2MzdkMzg3OTUzNTY5NTg2MjQwNjQuLmY5NmMyNTM1YTI3NzFhZWRhOTU5NGUw
Y2M2NmNjOTU4NmI1N2FhNTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlv
bnMKKysrIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMjExLDE2ICsyMTEsMTcg
QEAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvZmV0Y2gtbWl4ZWQtY29udGUKIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL211bHRpcGFydC1pbWFnZS5odHRwcy5o
dG1sIFsgU2tpcCBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9za2lwLXdhaXRpbmctdXNpbmctcmVnaXN0cmF0aW9uLmh0dHBz
Lmh0bWwgWyBTa2lwIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3NraXAtd2FpdGluZy13aXRob3V0LXVzaW5nLXJlZ2lzdHJh
dGlvbi5odHRwcy5odG1sIFsgU2tpcCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUtbm90LWFsbG93ZWQuaHR0cHMu
aHRtbCBbIFNraXAgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvd29ya2VyLWluLXNhbmRib3hlZC1pZnJhbWUtYnktY3NwLWZl
dGNoLWV2ZW50Lmh0dHBzLmh0bWwgWyBTa2lwIF0KIFsgRGVidWcgXSBpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZWFkeS5odHRw
cy5odG1sIFsgU2tpcCBdCiAKICMgTmV3bHkgaW1wb3J0ZWQgc2VydmljZSB3b3JrZXIgdGVzdHMg
dGhhdCBhcmUgZmxha3kuCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9uYXZpZ2F0aW9uLXJlZGlyZWN0LXRvLWh0dHAuaHR0cHMu
aHRtbCBbIFBhc3MgRmFpbHVyZSBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZS10aW1pbmcuc3ViLmh0dHBzLmh0
bWwgWyBQYXNzIEZhaWx1cmUgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvd29ya2VyLWNsaWVudC1pZC5odHRwcy5odG1sIFsg
UGFzcyBGYWlsdXJlIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMveGhyL2V2ZW50
LXRpbWVvdXQtb3JkZXIuaHRtIFsgUGFzcyBGYWlsdXJlIF0KIAorIyBUaGUgdGVzdHMgcHJpbnRz
IG91dCBhIFVVSUQgdGhhdCBpcyBkaWZmZXJlbnQgZXZlcnkgdGltZS4KK2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0ZS5o
dHRwcy5odG1sIFsgUGFzcyBGYWlsdXJlIF0KKwogIyBUaGlzIHRlc3QgaXMgdGltaW5nIG91dCBi
ZWNhdXNlIGl0IHJlbGllcyBvbiBodHRwOi8vd3d3MS5sb2NhbGhvc3Q6ODgwMCBob3N0IGZvciBj
cm9zcyBvcmlnaW4gY2hlY2tzLgogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jb3Jz
L3JlbW90ZS1vcmlnaW4uaHRtIFsgU2tpcCBdCiAKQEAgLTI0OCw3ICsyNDksNiBAQCBpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91
cGRhdGUtYWZ0ZXItb25lZAogCiAjIFVuc3VwcG9ydGVkIGZlYXR1cmVzOiBTaGFyZWRXb3JrZXIs
IE5hdmlnYXRpb25QcmVsb2FkCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9uYXZpZ2F0aW9uLXByZWxvYWQgWyBTa2lwIF0KLWlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3NoYXJlZC13b3JrZXItY29udHJvbGxlZC5odHRwcy5odG1sIFsgU2tpcCBdCiBpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9j
bGFpbS1zaGFyZWQtd29ya2VyLWZldGNoLmh0dHBzLmh0bWwgWyBTa2lwIF0KIAogIyBVbnN1cHBv
cnRlZCBmZWF0dXJlczogUGVyZm9ybWFuY2VOYXZpZ2F0aW9uVGltaW5nCkBAIC0yNjYsNiArMjY2
LDcgQEAgd2Via2l0Lm9yZy9iLzE4ODI0NiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmsKICMgQ29uc29sZSBsb2cgbGluZXMgbWF5IGFw
cGVhciBpbiBhIGRpZmZlcmVudCBvcmRlciBzbyB3ZSBzaWxlbmNlIHRoZW0uCiBpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvaGlzdG9yeS90aGUtbG9jYXRpb24t
aW50ZXJmYWNlL2xvY2F0aW9uLXByb3RvY29sLXNldHRlci1ub24tYnJva2VuLmh0bWwgWyBEdW1w
SlNDb25zb2xlTG9nSW5TdGRFcnIgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL2Jyb3dzZXJzL2hpc3RvcnkvdGhlLWxvY2F0aW9uLWludGVyZmFjZS9sb2NhdGlvbi1wcm90
b2NvbC1zZXR0ZXItbm9uLWJyb2tlbi13ZWlyZC5odG1sIFsgRHVtcEpTQ29uc29sZUxvZ0luU3Rk
RXJyIF0KK2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL2ZldGNoLWNvcnMteGhyLmh0dHBzLmh0bWwgWyBEdW1wSlNDb25zb2xlTG9n
SW5TdGRFcnIgXQogCiAjIE5ld2x5IGltcG9ydGVkIFdQVCB0ZXN0cyB0aGF0IGFyZSB0aW1pbmcg
b3V0LgogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL2hpc3Rv
cnkvdGhlLWxvY2F0aW9uLWludGVyZmFjZS9sb2NhdGlvbi1vcmlnaW4taWRuYS5zdWIud2luZG93
Lmh0bWwgWyBTa2lwIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvY29tbW9uL3NlY3VyaXR5LWZlYXR1cmVzL3Jlc291cmNlcy9jb21tb24u
c3ViLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jb21t
b24vc2VjdXJpdHktZmVhdHVyZXMvcmVzb3VyY2VzL2NvbW1vbi5zdWIuanMKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YzdmOTRlODA2Zjk0ZGE0OTQ1ODBkZTJmMjVjNjc2ODE1Y2E5NDY0ZQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY29tbW9uL3Nl
Y3VyaXR5LWZlYXR1cmVzL3Jlc291cmNlcy9jb21tb24uc3ViLmpzCkBAIC0wLDAgKzEsMTIyNiBA
QAorLyoqCisgKiBAZmlsZW92ZXJ2aWV3IFV0aWxpdGllcyBmb3IgbWl4ZWQtY29udGVudCBpbiBX
ZWIgUGxhdGZvcm0gVGVzdHMuCisgKiBAYXV0aG9yIGJ1cm5pa0Bnb29nbGUuY29tIChLcmlzdGlq
YW4gQnVybmlrKQorICogRGlzY2xhaW1lcjogU29tZSBtZXRob2RzIG9mIG90aGVyIGF1dGhvcnMg
YXJlIGFubm90YXRlZCBpbiB0aGUgY29ycmVzcG9uZGluZworICogICAgIG1ldGhvZCdzIEpTRG9j
LgorICovCisKKy8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQorLy8gVHlwZXMKKy8vID09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLy8gT2JqZWN0cyBvZiB0
aGUgZm9sbG93aW5nIHR5cGVzIGFyZSB1c2VkIHRvIHJlcHJlc2VudCB3aGF0IGtpbmQgb2YKKy8v
IHN1YnJlc291cmNlIHJlcXVlc3RzIHNob3VsZCBiZSBzZW50IHdpdGggd2hhdCBraW5kIG9mIHBv
bGljaWVzLAorLy8gZnJvbSB3aGF0IGtpbmQgb2YgcG9zc2libHkgbmVzdGVkIHNvdXJjZSBjb250
ZXh0cy4KKy8vIFRoZSBvYmplY3RzIGFyZSByZXByZXNlbnRlZCBhcyBKU09OIG9iamVjdHMgKG5v
dCBKYXZhU2NyaXB0L1B5dGhvbiBjbGFzc2VzCisvLyBpbiBhIHN0cmljdCBzZW5zZSkgdG8gYmUg
cGFzc2VkIGJldHdlZW4gSmF2YVNjcmlwdC9QeXRob24gY29kZS4KKworLy8gTm90ZTogU28gZmFy
IHRoaXMgZG9jdW1lbnQgY292ZXJzOgorLy8gLSByZXNvdXJjZXMvY29tbW9uLnN1Yi5qcyA6IGNs
aWVudC1zaWRlIHRlc3QgaW5mcmEgY29kZQorLy8gLSBzY29wZS8gLSBzZXJ2ZXItc2lkZSBzY3Jp
cHRzIHRoYXQgc2VydmVzIG5lc3RlZCBzb3VyY2UgY29udGV4dHMKKy8vIGJ1dCBkb2Vzbid0IGNv
dmVyOgorLy8gLSB0b29scy8gLSBnZW5lcmF0b3Igc2NyaXB0cyB0aGF0IGdlbmVyYXRlcyB0b3At
bGV2ZWwgSFRNTCBkb2N1bWVudHMuCisvLyBUaGVyZSBhcmUgc29tZSBwb2xpY2llcyBvbmx5IGhh
bmRsZWQgYnkgZ2VuZXJhdG9ycyAoZS5nLiBtaXhlZC1jb250ZW50CisvLyBvcHQtaW5zKSBhbmQg
bm90IHlldCBjb3ZlcmVkIGJ5IHRoZSBkb2NzIGhlcmUuCisKKy8qKgorICBAdHlwZWRlZiBQb2xp
Y3lEZWxpdmVyeQorICBAdHlwZSB7b2JqZWN0fQorICBSZWZlcnJlciBwb2xpY3kgZXRjLiBjYW4g
YmUgYXBwbGllZC9kZWxpdmVyZWQgaW4gc2V2ZXJhbCB3YXlzLgorICBBIFBvbGljeURlbGl2ZXJ5
IG9iamVjdCBzcGVjaWZpZXMgd2hhdCBwb2xpY3kgaXMgZGVsaXZlcmVkIGFuZCBob3cuCisKKyAg
QHByb3BlcnR5IHtzdHJpbmd9IGRlbGl2ZXJ5VHlwZQorICAgIFNwZWNpZmllcyBob3cgdGhlIHBv
bGljeSBpcyBkZWxpdmVyZWQuCisgICAgVGhlIHZhbGlkIGRlbGl2ZXJ5VHlwZSBhcmU6CisKKyAg
ICAgImF0dHIiCisgICAgICAgIFtBXSBET00gYXR0cmlidXRlcyBlLmcuIHJlZmVycmVyUG9saWN5
LgorCisgICAgICAicmVsLW5vcmVmIgorICAgICAgICBbQV0gPGxpbmsgcmVsPSJub3JlZmVycmVy
Ij4gKHJlZmVycmVyLXBvbGljeSBvbmx5KS4KKworICAgICAgImh0dHAtcnAiCisgICAgICAgIFtC
XSBIVFRQIHJlc3BvbnNlIGhlYWRlcnMuCisKKyAgICAgICJtZXRhIgorICAgICAgICBbQl0gPG1l
dGE+IGVsZW1lbnRzLgorCisgIEBwcm9wZXJ0eSB7c3RyaW5nfSBrZXkKKyAgQHByb3BlcnR5IHtz
dHJpbmd9IHZhbHVlCisgICAgU3BlY2lmaWVzIHdoYXQgcG9saWN5IHRvIGJlIGRlbGl2ZXJlZC4g
VGhlIHZhbGlkIGtleXMgYXJlOgorCisgICAgICAicmVmZXJyZXJQb2xpY3kiCisgICAgICAgIFJl
ZmVycmVyIFBvbGljeQorICAgICAgICBodHRwczovL3czYy5naXRodWIuaW8vd2ViYXBwc2VjLXJl
ZmVycmVyLXBvbGljeS8KKyAgICAgICAgVmFsaWQgdmFsdWVzIGFyZSB0aG9zZSBsaXN0ZWQgaW4K
KyAgICAgICAgaHR0cHM6Ly93M2MuZ2l0aHViLmlvL3dlYmFwcHNlYy1yZWZlcnJlci1wb2xpY3kv
I3JlZmVycmVyLXBvbGljeQorICAgICAgICAoZXhjZXB0IHRoYXQgIiIgaXMgcmVwcmVzZW50ZWQg
YXMgbnVsbC9Ob25lKQorCisgIEEgUG9saWN5RGVsaXZlcnkgY2FuIGJlIHNwZWNpZmllZCBpbiBz
ZXZlcmFsIHdheXM6CisKKyAgLSAoZm9yIFtBXSkgQXNzb2NpYXRlZCB3aXRoIGFuIGluZGl2aWR1
YWwgc3VicmVzb3VyY2UgcmVxdWVzdCBhbmQKKyAgICBzcGVjaWZpZWQgaW4gYFN1YnJlc291cmNl
LnBvbGljaWVzYCwKKyAgICBlLmcuIHJlZmVycmVyUG9saWN5IGF0dHJpYnV0ZXMgb2YgRE9NIGVs
ZW1lbnRzLgorICAgIFRoaXMgaXMgaGFuZGxlZCBpbiBpbnZva2VSZXF1ZXN0KCkuCisKKyAgLSAo
Zm9yIFtCXSkgQXNzb2NpYXRlZCB3aXRoIGFuIG5lc3RlZCBlbnZpcm9ubWVudGFsIHNldHRpbmdz
IG9iamVjdCBhbmQKKyAgICBzcGVjaWZpZWQgaW4gYFNvdXJjZUNvbnRleHQucG9saWNpZXNgLAor
ICAgIGUuZy4gSFRUUCByZWZlcnJlci1wb2xpY3kgcmVzcG9uc2UgaGVhZGVycyBvZiBIVE1ML3dv
cmtlciBzY3JpcHRzLgorICAgIFRoaXMgaXMgaGFuZGxlZCBpbiBzZXJ2ZXItc2lkZSB1bmRlciAv
Y29tbW9uL3NlY3VyaXR5LWZlYXR1cmVzL3Njb3BlLy4KKworICAtIChmb3IgW0JdKSBBc3NvY2lh
dGVkIHdpdGggdGhlIHRvcC1sZXZlbCBIVE1MIGRvY3VtZW50LgorICAgIFRoaXMgaXMgaGFuZGxl
ZCBieSB0aGUgZ2VuZXJhdG9ycy5kCisqLworCisvKioKKyAgQHR5cGVkZWYgU3VicmVzb3VyY2UK
KyAgQHR5cGUge29iamVjdH0KKyAgQSBTdWJyZXNvdXJjZSByZXByZXNlbnRzIGhvdyBhIHN1YnJl
c291cmNlIHJlcXVlc3QgaXMgc2VudC4KKworICBAcHJvcGVydHl7U3VicmVzb3VyY2VUeXBlfSBz
dWJyZXNvdXJjZVR5cGUKKyAgICBIb3cgdGhlIHN1YnJlc291cmNlIHJlcXVlc3QgaXMgc2VudCwK
KyAgICBlLmcuICJpbWctdGFnIiBmb3Igc2VuZGluZyBhIHJlcXVlc3QgdmlhIDxpbWcgc3JjPi4K
KyAgICBTZWUgdGhlIGtleXMgb2YgYHN1YnJlc291cmNlTWFwYCBmb3IgdmFsaWQgdmFsdWVzLgor
CisgIEBwcm9wZXJ0eXtzdHJpbmd9IHVybAorICAgIHN1YnJlc291cmNlJ3MgVVJMLgorICAgIFR5
cGljYWxseSB0aGlzIGlzIGNvbnN0cnVjdGVkIGJ5IGdldFJlcXVlc3RVUkxzKCkgYmVsb3cuCisK
KyAgQHByb3BlcnR5e1BvbGljeURlbGl2ZXJ5fSBwb2xpY3lEZWxpdmVyaWVzCisgICAgUG9saWNp
ZXMgZGVsaXZlcmVkIHNwZWNpZmljIHRvIHRoZSBzdWJyZXNvdXJjZSByZXF1ZXN0LgorKi8KKwor
LyoqCisgIEB0eXBlZGVmIFNvdXJjZUNvbnRleHQKKyAgQHR5cGUge29iamVjdH0KKyAgUmVxdWVz
dHMgY2FuIGJlIHBvc3NpYmx5IHNlbnQgZnJvbSB2YXJpb3VzIGtpbmRzIG9mIHNvdXJjZSBjb250
ZXh0cywgaS5lLgorICBmZXRjaCBjbGllbnQncyBlbnZpcm9ubWVudCBzZXR0aW5ncyBvYmplY3Rz
OgorICB0b3AtbGV2ZWwgd2luZG93cywgaWZyYW1lcywgb3Igd29ya2Vycy4KKyAgQSBTb3VyY2VD
b250ZXh0IG9iamVjdCBzcGVjaWZpZXMgb25lIGVudmlyb25tZW50IHNldHRpbmdzIG9iamVjdCwg
YW5kCisgIGFuIEFycmF5PFNvdXJjZUNvbnRleHQ+IHNwZWNpZmllcyBhIHBvc3NpYmx5IG5lc3Rl
ZCBjb250ZXh0LAorICBmcm9tIHRoZSBvdXRlci1tb3N0IHRvIGlubmVyLW1vc3QgZW52aXJvbm1l
bnQgc2V0dGluZ3Mgb2JqZWN0cy4KKworICBGb3IgZXhhbXBsZToKKyAgICBbe3NvdXJjZUNvbnRl
eHRUeXBlOiAic3JjZG9jIn0sIHtzb3VyY2VDb250ZXh0VHlwZTogIndvcmtlci1jbGFzc2ljIn1d
CisgIG1lYW5zIHRoYXQgYSBzdWJyZXNvdXJjZSByZXF1ZXN0IGlzIHRvIGJlIHNlbnQgZnJvbQor
ICBhIGNsYXNzaWMgZGVkaWNhdGVkIHdvcmtlciBjcmVhdGVkIGZyb20gPGlmcmFtZSBzcmNkb2M+
CisgIGluc2lkZSB0aGUgdG9wLWxldmVsIEhUTUwgZG9jdW1lbnQuCisgIE5vdGU6IHRoZSB0b3At
bGV2ZWwgZG9jdW1lbnQgaXMgbm90IGluY2x1ZGVkIGluIHRoZSBhcnJheSBhbmQKKyAgaXMgYXNz
dW1lZCBpbXBsaWNpdGx5LgorCisgIFNvdXJjZUNvbnRleHQgKG9yIEFycmF5PFNvdXJjZUNvbnRl
eHQ+KSBpcyBzZXQgYmFzZWQgb24KKyAgdGhlIGZldGNoIGNsaWVudCdzIHNldHRpbmdzIG9iamVj
dCB0aGF0IGlzIHVzZWQgZm9yIHRoZSBzdWJyZXNvdXJjZSByZXF1ZXN0LAorICBOT1Qgb24gbW9k
dWxlIG1hcCBzZXR0aW5ncyBvYmplY3QsIGFuZAorICBOT1Qgb24gdGhlIGlubmVyLW1vc3Qgc2V0
dGluZ3Mgb2JqZWN0IHRoYXQgYXBwZWFycyBpbiB0aGUgdGVzdC4KKyAgRm9yIGV4YW1wbGUsIEFy
cmF5PFNvdXJjZUNvbnRleHQ+IGlzIGBbXWAgKGluZGljYXRpbmcgdGhlIHRvcCBXaW5kb3cpCisg
IGZvciBgd29ya2VyLmpzYAorICAtIFdoZW4gaXQgaXMgdGhlIHJvb3Qgd29ya2VyIHNjcmlwdDog
YG5ldyBXb3JrZXIoJ3dvcmtlci5qcycpYCwgb3IKKyAgLSBXaGVuIGl0IGlzIGltcG9ydGVkIGZy
b20gdGhlIHJvb3Qgd29ya2VyIHNjcmlwdDoKKyAgICBgbmV3IFdvcmtlcigndG9wLmpzJywge3R5
cGU6ICdtb2R1bGUnfSlgCisgICAgd2hlcmUgYHRvcC5qc2AgaGFzIGBpbXBvcnQgJ3dvcmtlci5q
cydgLgorICBiZWNhdXNlIHRoZSByZXF1ZXN0IGZvciBgd29ya2VyLmpzYCB1c2VzIHRoZSBXaW5k
b3cgYXMgaXRzIGZldGNoIGNsaWVudCdzCisgIHNldHRpbmdzIG9iamVjdCwgd2hpbGUgYSBXb3Jr
ZXJHbG9iYWxTY29wZSBpcyBjcmVhdGVkIHRob3VnaC4KKworICBAcHJvcGVydHkge3N0cmluZ30g
c291cmNlQ29udGV4dFR5cGUKKyAgICBLaW5kIG9mIHRoZSBzb3VyY2UgY29udGV4dCB0byBiZSB1
c2VkLgorICAgIFZhbGlkIHZhbHVlcyBhcmUgdGhlIGtleXMgb2YgYHNvdXJjZUNvbnRleHRNYXBg
IGJlbG93LgorCisgIEBwcm9wZXJ0eSB7QXJyYXk8UG9saWN5RGVsaXZlcnk+fSBwb2xpY3lEZWxp
dmVyaWVzCisgICAgQSBsaXN0IG9mIFBvbGljeURlbGl2ZXJ5IGFwcGxpZWQgdG8gdGhlIHNvdXJj
ZSBjb250ZXh0LgorKi8KKworLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09CisvLyBHZW5lcmFsIHV0aWxpdHkgZnVuY3Rpb25z
CisvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KKworZnVuY3Rpb24gdGltZW91dFByb21pc2UodCwgbXMpIHsKKyAgcmV0dXJu
IG5ldyBQcm9taXNlKHJlc29sdmUgPT4geyB0LnN0ZXBfdGltZW91dChyZXNvbHZlLCBtcyk7IH0p
OworfQorCisvKioKKyAqIE5vcm1hbGl6ZXMgdGhlIHRhcmdldCBwb3J0IGZvciB1c2UgaW4gYSBV
UkwuIEZvciBkZWZhdWx0IHBvcnRzLCB0aGlzIGlzIHRoZQorICogICAgIGVtcHR5IHN0cmluZyAo
b21pdHRlZCBwb3J0KSwgb3RoZXJ3aXNlIGl0J3MgYSBjb2xvbiBmb2xsb3dlZCBieSB0aGUgcG9y
dAorICogICAgIG51bWJlci4gUG9ydHMgODAsIDQ0MyBhbmQgYW4gZW1wdHkgc3RyaW5nIGFyZSBy
ZWdhcmRlZCBhcyBkZWZhdWx0IHBvcnRzLgorICogQHBhcmFtIHtudW1iZXJ9IHRhcmdldFBvcnQg
VGhlIHBvcnQgdG8gdXNlCisgKiBAcmV0dXJuIHtzdHJpbmd9IFRoZSBwb3J0IHBvcnRpb24gZm9y
IHVzaW5nIGFzIHBhcnQgb2YgYSBVUkwuCisgKi8KK2Z1bmN0aW9uIGdldE5vcm1hbGl6ZWRQb3J0
KHRhcmdldFBvcnQpIHsKKyAgcmV0dXJuIChbODAsIDQ0MywgIiJdLmluZGV4T2YodGFyZ2V0UG9y
dCkgPj0gMCkgPyAiIiA6ICI6IiArIHRhcmdldFBvcnQ7Cit9CisKKy8qKgorICogQ3JlYXRlcyBh
IEdVSUQuCisgKiAgICAgU2VlOiBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9HbG9iYWxs
eV91bmlxdWVfaWRlbnRpZmllcgorICogICAgIE9yaWdpbmFsIGF1dGhvcjogYnJvb2ZhIChodHRw
Oi8vd3d3LmJyb29mYS5jb20vKQorICogICAgIFNvdXJjZWQgZnJvbTogaHR0cDovL3N0YWNrb3Zl
cmZsb3cuY29tL2EvMjExNzUyMy80OTQ5NzE1CisgKiBAcmV0dXJuIHtzdHJpbmd9IEEgcHNldWRv
LXJhbmRvbSBHVUlELgorICovCitmdW5jdGlvbiBndWlkKCkgeworICByZXR1cm4gJ3h4eHh4eHh4
LXh4eHgtNHh4eC15eHh4LXh4eHh4eHh4eHh4eCcucmVwbGFjZSgvW3h5XS9nLCBmdW5jdGlvbihj
KSB7CisgICAgdmFyIHIgPSBNYXRoLnJhbmRvbSgpICogMTYgfCAwLCB2ID0gYyA9PSAneCcgPyBy
IDogKHIgJiAweDMgfCAweDgpOworICAgIHJldHVybiB2LnRvU3RyaW5nKDE2KTsKKyAgfSk7Cit9
CisKKy8qKgorICogSW5pdGlhdGVzIGEgbmV3IFhIUiB2aWEgR0VULgorICogQHBhcmFtIHtzdHJp
bmd9IHVybCBUaGUgZW5kcG9pbnQgVVJMIGZvciB0aGUgWEhSLgorICogQHBhcmFtIHtzdHJpbmd9
IHJlc3BvbnNlVHlwZSBPcHRpb25hbCAtIGhvdyBzaG91bGQgdGhlIHJlc3BvbnNlIGJlIHBhcnNl
ZC4KKyAqICAgICBEZWZhdWx0IGlzICJqc29uIi4KKyAqICAgICBTZWU6IGh0dHBzOi8veGhyLnNw
ZWMud2hhdHdnLm9yZy8jZG9tLXhtbGh0dHByZXF1ZXN0LXJlc3BvbnNldHlwZQorICogQHJldHVy
biB7UHJvbWlzZX0gQSBwcm9taXNlIHdyYXBwaW5nIHRoZSBzdWNjZXNzIGFuZCBlcnJvciBldmVu
dHMuCisgKi8KK2Z1bmN0aW9uIHhoclJlcXVlc3QodXJsLCByZXNwb25zZVR5cGUpIHsKKyAgcmV0
dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgeworICAgIHZhciB4aHIg
PSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKKyAgICB4aHIub3BlbignR0VUJywgdXJsLCB0cnVlKTsK
KyAgICB4aHIucmVzcG9uc2VUeXBlID0gcmVzcG9uc2VUeXBlIHx8ICJqc29uIjsKKworICAgIHho
ci5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsIGZ1bmN0aW9uKCkgeworICAgICAgcmVqZWN0KEVy
cm9yKCJOZXR3b3JrIEVycm9yIikpOworICAgIH0pOworCisgICAgeGhyLmFkZEV2ZW50TGlzdGVu
ZXIoImxvYWQiLCBmdW5jdGlvbigpIHsKKyAgICAgIGlmICh4aHIuc3RhdHVzICE9IDIwMCkKKyAg
ICAgICAgcmVqZWN0KEVycm9yKHhoci5zdGF0dXNUZXh0KSk7CisgICAgICBlbHNlCisgICAgICAg
IHJlc29sdmUoeGhyLnJlc3BvbnNlKTsKKyAgICB9KTsKKworICAgIHhoci5zZW5kKCk7CisgIH0p
OworfQorCisvKioKKyAqIFNldHMgYXR0cmlidXRlcyBvbiBhIGdpdmVuIERPTSBlbGVtZW50Lgor
ICogQHBhcmFtIHtET01FbGVtZW50fSBlbGVtZW50IFRoZSBlbGVtZW50IG9uIHdoaWNoIHRvIHNl
dCB0aGUgYXR0cmlidXRlcy4KKyAqIEBwYXJhbSB7b2JqZWN0fSBBbiBvYmplY3Qgd2l0aCBrZXlz
IChzZXJ2aW5nIGFzIGF0dHJpYnV0ZSBuYW1lcykgYW5kIHZhbHVlcy4KKyAqLworZnVuY3Rpb24g
c2V0QXR0cmlidXRlcyhlbCwgYXR0cnMpIHsKKyAgYXR0cnMgPSBhdHRycyB8fCB7fQorICBmb3Ig
KHZhciBhdHRyIGluIGF0dHJzKSB7CisgICAgaWYgKGF0dHIgIT09ICdzcmMnKQorICAgICAgZWwu
c2V0QXR0cmlidXRlKGF0dHIsIGF0dHJzW2F0dHJdKTsKKyAgfQorICAvLyBXb3JrYXJvdW5kIGZv
ciBDaHJvbWl1bTogc2V0IDxpbWc+J3Mgc3JjIGF0dHJpYnV0ZSBhZnRlciBhbGwgb3RoZXIKKyAg
Ly8gYXR0cmlidXRlcyB0byBlbnN1cmUgdGhlIHBvbGljeSBpcyBhcHBsaWVkLgorICBmb3IgKHZh
ciBhdHRyIGluIGF0dHJzKSB7CisgICAgaWYgKGF0dHIgPT09ICdzcmMnKQorICAgICAgZWwuc2V0
QXR0cmlidXRlKGF0dHIsIGF0dHJzW2F0dHJdKTsKKyAgfQorfQorCisvKioKKyAqIEJpbmRzIHRv
IHN1Y2Nlc3MgYW5kIGVycm9yIGV2ZW50cyBvZiBhbiBvYmplY3Qgd3JhcHBpbmcgdGhlbSBpbnRv
IGEgcHJvbWlzZQorICogICAgIGF2YWlsYWJsZSB0aHJvdWdoIHtAY29kZSBlbGVtZW50LmV2ZW50
UHJvbWlzZX0uIFRoZSBzdWNjZXNzIGV2ZW50CisgKiAgICAgcmVzb2x2ZXMgYW5kIGVycm9yIGV2
ZW50IHJlamVjdHMuCisgKiBUaGlzIG1ldGhvZCBhZGRzIGV2ZW50IGxpc3RlbmVycywgYW5kIHRo
ZW4gcmVtb3ZlcyBhbGwgdGhlIGFkZGVkIGxpc3RlbmVycworICogd2hlbiBvbmUgb2YgbGlzdGVu
ZWQgZXZlbnQgaXMgZmlyZWQuCisgKiBAcGFyYW0ge29iamVjdH0gZWxlbWVudCBBbiBvYmplY3Qg
c3VwcG9ydGluZyBldmVudHMgb24gd2hpY2ggdG8gYmluZCB0aGUKKyAqICAgICBwcm9taXNlLgor
ICogQHBhcmFtIHtzdHJpbmd9IHJlc29sdmVFdmVudE5hbWUgWz0ibG9hZCJdIFRoZSBldmVudCBu
YW1lIHRvIGJpbmQgcmVzb2x2ZSB0by4KKyAqIEBwYXJhbSB7c3RyaW5nfSByZWplY3RFdmVudE5h
bWUgWz0iZXJyb3IiXSBUaGUgZXZlbnQgbmFtZSB0byBiaW5kIHJlamVjdCB0by4KKyAqLworZnVu
Y3Rpb24gYmluZEV2ZW50cyhlbGVtZW50LCByZXNvbHZlRXZlbnROYW1lLCByZWplY3RFdmVudE5h
bWUpIHsKKyAgZWxlbWVudC5ldmVudFByb21pc2UgPQorICAgICAgYmluZEV2ZW50czIoZWxlbWVu
dCwgcmVzb2x2ZUV2ZW50TmFtZSwgZWxlbWVudCwgcmVqZWN0RXZlbnROYW1lKTsKK30KKworLy8g
UmV0dXJucyBhIHByb21pc2Ugd3JhcHBpbmcgc3VjY2VzcyBhbmQgZXJyb3IgZXZlbnRzIG9mIG9i
amVjdHMuCisvLyBUaGlzIGlzIGEgdmFyaWFudCBvZiBiaW5kRXZlbnRzIHRoYXQgY2FuIGFjY2Vw
dCBzZXBhcmF0ZSBvYmplY3RzIGZvciBlYWNoCisvLyBldmVudHMgYW5kIHR3byBldmVudHMgdG8g
cmVqZWN0LCBhbmQgZG9lc24ndCBzZXQgYGV2ZW50UHJvbWlzZWAuCisvLworLy8gV2hlbiBgcmVz
b2x2ZU9iamVjdGAncyBgcmVzb2x2ZUV2ZW50TmFtZWAgZXZlbnQgKGRlZmF1bHQ6ICJsb2FkIikg
aXMKKy8vIGZpcmVkLCB0aGUgcHJvbWlzZSBpcyByZXNvbHZlZCB3aXRoIHRoZSBldmVudC4KKy8v
CisvLyBXaGVuIGByZWplY3RPYmplY3RgJ3MgYHJlamVjdEV2ZW50TmFtZWAgZXZlbnQgKGRlZmF1
bHQ6ICJlcnJvciIpIG9yCisvLyBgcmVqZWN0T2JqZWN0MmAncyBgcmVqZWN0RXZlbnROYW1lMmAg
ZXZlbnQgKGRlZmF1bHQ6ICJlcnJvciIpIGlzCisvLyBmaXJlZCwgdGhlIHByb21pc2UgaXMgcmVq
ZWN0ZWQuCisvLworLy8gYHJlamVjdE9iamVjdDJgIGlzIG9wdGlvbmFsLgorZnVuY3Rpb24gYmlu
ZEV2ZW50czIocmVzb2x2ZU9iamVjdCwgcmVzb2x2ZUV2ZW50TmFtZSwgcmVqZWN0T2JqZWN0LCBy
ZWplY3RFdmVudE5hbWUsIHJlamVjdE9iamVjdDIsIHJlamVjdEV2ZW50TmFtZTIpIHsKKyAgcmV0
dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgeworICAgIGNvbnN0IGFj
dHVhbFJlc29sdmVFdmVudE5hbWUgPSByZXNvbHZlRXZlbnROYW1lIHx8ICJsb2FkIjsKKyAgICBj
b25zdCBhY3R1YWxSZWplY3RFdmVudE5hbWUgPSByZWplY3RFdmVudE5hbWUgfHwgImVycm9yIjsK
KyAgICBjb25zdCBhY3R1YWxSZWplY3RFdmVudE5hbWUyID0gcmVqZWN0RXZlbnROYW1lMiB8fCAi
ZXJyb3IiOworCisgICAgY29uc3QgcmVzb2x2ZUhhbmRsZXIgPSBmdW5jdGlvbihldmVudCkgewor
ICAgICAgY2xlYW51cCgpOworICAgICAgcmVzb2x2ZShldmVudCk7CisgICAgfTsKKworICAgIGNv
bnN0IHJlamVjdEhhbmRsZXIgPSBmdW5jdGlvbihldmVudCkgeworICAgICAgLy8gQ2hyb21pdW0g
c3RhcnRzIHByb3BhZ2F0aW5nIGVycm9ycyBmcm9tIHdvcmtlci5vbmVycm9yIHRvCisgICAgICAv
LyB3aW5kb3cub25lcnJvci4gVGhpcyBoYW5kbGVzIHRoZSB1bmNhdWdodCBleGNlcHRpb25zIGlu
IHRlc3RzLgorICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsKKyAgICAgIGNsZWFudXAoKTsK
KyAgICAgIHJlamVjdChldmVudCk7CisgICAgfTsKKworICAgIGNvbnN0IGNsZWFudXAgPSBmdW5j
dGlvbigpIHsKKyAgICAgIHJlc29sdmVPYmplY3QucmVtb3ZlRXZlbnRMaXN0ZW5lcihhY3R1YWxS
ZXNvbHZlRXZlbnROYW1lLCByZXNvbHZlSGFuZGxlcik7CisgICAgICByZWplY3RPYmplY3QucmVt
b3ZlRXZlbnRMaXN0ZW5lcihhY3R1YWxSZWplY3RFdmVudE5hbWUsIHJlamVjdEhhbmRsZXIpOwor
ICAgICAgaWYgKHJlamVjdE9iamVjdDIpIHsKKyAgICAgICAgcmVqZWN0T2JqZWN0Mi5yZW1vdmVF
dmVudExpc3RlbmVyKGFjdHVhbFJlamVjdEV2ZW50TmFtZTIsIHJlamVjdEhhbmRsZXIpOworICAg
ICAgfQorICAgIH07CisKKyAgICByZXNvbHZlT2JqZWN0LmFkZEV2ZW50TGlzdGVuZXIoYWN0dWFs
UmVzb2x2ZUV2ZW50TmFtZSwgcmVzb2x2ZUhhbmRsZXIpOworICAgIHJlamVjdE9iamVjdC5hZGRF
dmVudExpc3RlbmVyKGFjdHVhbFJlamVjdEV2ZW50TmFtZSwgcmVqZWN0SGFuZGxlcik7CisgICAg
aWYgKHJlamVjdE9iamVjdDIpIHsKKyAgICAgIHJlamVjdE9iamVjdDIuYWRkRXZlbnRMaXN0ZW5l
cihhY3R1YWxSZWplY3RFdmVudE5hbWUyLCByZWplY3RIYW5kbGVyKTsKKyAgICB9CisgIH0pOwor
fQorCisvKioKKyAqIENyZWF0ZXMgYSBuZXcgRE9NIGVsZW1lbnQuCisgKiBAcGFyYW0ge3N0cmlu
Z30gdGFnTmFtZSBUaGUgdHlwZSBvZiB0aGUgRE9NIGVsZW1lbnQuCisgKiBAcGFyYW0ge29iamVj
dH0gYXR0cnMgQSBKU09OIHdpdGggYXR0cmlidXRlcyB0byBhcHBseSB0byB0aGUgZWxlbWVudC4K
KyAqIEBwYXJhbSB7RE9NRWxlbWVudH0gcGFyZW50IE9wdGlvbmFsIC0gYW4gZXhpc3RpbmcgRE9N
IGVsZW1lbnQgdG8gYXBwZW5kIHRvCisgKiAgICAgSWYgbm90IHByb3ZpZGVkLCB0aGUgcmV0dXJu
ZWQgZWxlbWVudCB3aWxsIHJlbWFpbiBvcnBoYW5lZC4KKyAqIEBwYXJhbSB7Ym9vbGVhbn0gZG9C
aW5kRXZlbnRzIE9wdGlvbmFsIC0gV2hldGhlciB0byBiaW5kIHRvIGxvYWQgYW5kIGVycm9yCisg
KiAgICAgZXZlbnRzIGFuZCBwcm92aWRlIHRoZSBwcm9taXNlIHdyYXBwaW5nIHRoZSBldmVudHMg
dmlhIHRoZSBlbGVtZW50J3MKKyAqICAgICB7QGNvZGUgZXZlbnRQcm9taXNlfSBwcm9wZXJ0eS4g
RGVmYXVsdCB2YWx1ZSBldmFsdWF0ZXMgdG8gZmFsc2UuCisgKiBAcmV0dXJuIHtET01FbGVtZW50
fSBUaGUgbmV3bHkgY3JlYXRlZCBET00gZWxlbWVudC4KKyAqLworZnVuY3Rpb24gY3JlYXRlRWxl
bWVudCh0YWdOYW1lLCBhdHRycywgcGFyZW50Tm9kZSwgZG9CaW5kRXZlbnRzKSB7CisgIHZhciBl
bGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0YWdOYW1lKTsKKworICBpZiAoZG9CaW5k
RXZlbnRzKQorICAgIGJpbmRFdmVudHMoZWxlbWVudCk7CisKKyAgLy8gV2Ugc2V0IHRoZSBhdHRy
aWJ1dGVzIGFmdGVyIGJpbmRpbmcgdG8gZXZlbnRzIHRvIGNhdGNoIGFueQorICAvLyBldmVudC10
cmlnZ2VyaW5nIGF0dHJpYnV0ZSBjaGFuZ2VzLiBFLmcuIGZvcm0gc3VibWlzc2lvbi4KKyAgLy8K
KyAgLy8gQnV0IGJlIGNhcmVmdWwgd2l0aCBpbWFnZXM6IHVubGlrZSBvdGhlciBlbGVtZW50cyB0
aGV5IHdpbGwgc3RhcnQgdGhlIGxvYWQKKyAgLy8gYXMgc29vbiBhcyB0aGUgYXR0ciBpcyBzZXQs
IGV2ZW4gaWYgbm90IGluIHRoZSBkb2N1bWVudCB5ZXQsIGFuZCBzb21ldGltZXMKKyAgLy8gY29t
cGxldGUgaXQgc3luY2hyb25vdXNseSwgc28gdGhlIGFwcGVuZCBkb2Vzbid0IGhhdmUgdGhlIGVm
ZmVjdCB3ZSB3YW50LgorICAvLyBTbyBmb3IgaW1hZ2VzLCB3ZSB3YW50IHRvIHNldCB0aGUgYXR0
cnMgYWZ0ZXIgYXBwZW5kaW5nLCB3aGVyZWFzIGZvciBvdGhlcgorICAvLyBlbGVtZW50cyB3ZSB3
YW50IHRvIGRvIGl0IGJlZm9yZSBhcHBlbmRpbmcuCisgIHZhciBpc0ltZyA9ICh0YWdOYW1lID09
ICJpbWciKTsKKyAgaWYgKCFpc0ltZykKKyAgICBzZXRBdHRyaWJ1dGVzKGVsZW1lbnQsIGF0dHJz
KTsKKworICBpZiAocGFyZW50Tm9kZSkKKyAgICBwYXJlbnROb2RlLmFwcGVuZENoaWxkKGVsZW1l
bnQpOworCisgIGlmIChpc0ltZykKKyAgICBzZXRBdHRyaWJ1dGVzKGVsZW1lbnQsIGF0dHJzKTsK
KworICByZXR1cm4gZWxlbWVudDsKK30KKworZnVuY3Rpb24gY3JlYXRlUmVxdWVzdFZpYUVsZW1l
bnQodGFnTmFtZSwgYXR0cnMsIHBhcmVudE5vZGUpIHsKKyAgcmV0dXJuIGNyZWF0ZUVsZW1lbnQo
dGFnTmFtZSwgYXR0cnMsIHBhcmVudE5vZGUsIHRydWUpLmV2ZW50UHJvbWlzZTsKK30KKworLyoq
CisgKiBDcmVhdGVzIGEgbmV3IGVtcHR5IGlmcmFtZSBhbmQgYXBwZW5kcyBpdCB0byB7QGNvZGUg
ZG9jdW1lbnQuYm9keX0gLgorICogQHBhcmFtIHtzdHJpbmd9IG5hbWUgVGhlIG5hbWUgYW5kIElE
IG9mIHRoZSBuZXcgaWZyYW1lLgorICogQHBhcmFtIHtib29sZWFufSBkb0JpbmRFdmVudHMgV2hl
dGhlciB0byBiaW5kIGxvYWQgYW5kIGVycm9yIGV2ZW50cy4KKyAqIEByZXR1cm4ge0RPTUVsZW1l
bnR9IFRoZSBuZXdseSBjcmVhdGVkIGlmcmFtZS4KKyAqLworZnVuY3Rpb24gY3JlYXRlSGVscGVy
SWZyYW1lKG5hbWUsIGRvQmluZEV2ZW50cykgeworICByZXR1cm4gY3JlYXRlRWxlbWVudCgiaWZy
YW1lIiwKKyAgICAgICAgICAgICAgICAgICAgICAgeyJuYW1lIjogbmFtZSwgImlkIjogbmFtZX0s
CisgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHksCisgICAgICAgICAgICAgICAg
ICAgICAgIGRvQmluZEV2ZW50cyk7Cit9CisKK2Z1bmN0aW9uIHdyYXBSZXN1bHQoc2VydmVyX2Rh
dGEpIHsKKyAgaWYgKHR5cGVvZihzZXJ2ZXJfZGF0YSkgPT09ICJzdHJpbmciKSB7CisgICAgdGhy
b3cgc2VydmVyX2RhdGE7CisgIH0KKyAgcmV0dXJuIHsKKyAgICByZWZlcnJlcjogc2VydmVyX2Rh
dGEuaGVhZGVycy5yZWZlcmVyLAorICAgIGhlYWRlcnM6IHNlcnZlcl9kYXRhLmhlYWRlcnMKKyAg
fQorfQorCisvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KKy8vIFN1YnJlc291cmNlcworLy8gPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKy8qKgorICBA
dHlwZWRlZiBSZXF1ZXN0UmVzdWx0CisgIEB0eXBlIHtvYmplY3R9CisgIFJlcHJlc2VudHMgdGhl
IHJlc3VsdCBvZiBzZW5kaW5nIGFuIHJlcXVlc3QuCisgIEFsbCBwcm9wZXJ0aWVzIGFyZSBvcHRp
b25hbC4gU2VlIHRoZSBjb21tZW50cyBmb3IKKyAgcmVxdWVzdFZpYSooKSBhbmQgaW52b2tlUmVx
dWVzdCgpIGJlbG93IHRvIHNlZSB3aGljaCBwcm9wZXJ0aWVzIGFyZSBzZXQuCisKKyAgQHByb3Bl
cnR5IHtBcnJheTxPYmplY3Q8c3RyaW5nLCBzdHJpbmc+Pn0gaGVhZGVycworICAgIEhUVFAgcmVx
dWVzdCBoZWFkZXJzIHNlbnQgdG8gc2VydmVyLgorICBAcHJvcGVydHkge3N0cmluZ30gcmVmZXJy
ZXIgLSBSZWZlcnJlci4KKyAgQHByb3BlcnR5IHtzdHJpbmd9IGxvY2F0aW9uIC0gVGhlIFVSTCBv
ZiB0aGUgc3VicmVzb3VyY2UuCisgIEBwcm9wZXJ0eSB7c3RyaW5nfSBzb3VyY2VDb250ZXh0VXJs
CisgICAgdGhlIFVSTCBvZiB0aGUgZ2xvYmFsIG9iamVjdCB3aGVyZSB0aGUgYWN0dWFsIHJlcXVl
c3QgaXMgc2VudC4KKyovCisKKy8qKgorICByZXF1ZXN0VmlhKih1cmwsIGFkZGl0aW9uYWxBdHRy
aWJ1dGVzKSBmdW5jdGlvbnMgc2VuZCBhIHN1YnJlc291cmNlCisgIHJlcXVlc3QgZnJvbSB0aGUg
Y3VycmVudCBlbnZpcm9ubWVudCBzZXR0aW5ncyBvYmplY3QuCisKKyAgQHBhcmFtIHtzdHJpbmd9
IHVybAorICAgIFRoZSBVUkwgb2YgdGhlIHN1YnJlc291cmNlLgorICBAcGFyYW0ge09iamVjdDxz
dHJpbmcsIHN0cmluZz59IGFkZGl0aW9uYWxBdHRyaWJ1dGVzCisgICAgQWRkaXRpb25hbCBhdHRy
aWJ1dGVzIHNldCB0byBET00gZWxlbWVudHMKKyAgICAoZWxlbWVudC1pbml0aWF0ZWQgcmVxdWVz
dHMgb25seSkuCisKKyAgQHJldHVybnMge1Byb21pc2V9IHRoYXQgYXJlIHJlc29sdmVkIHdpdGgg
YSBSZXF1ZXN0UmVzdWx0IG9iamVjdAorICBvbiBzdWNjZXNzZnVsIHJlcXVlc3RzLgorCisgIC0g
Q2F0ZWdvcnkgMToKKyAgICAgIGBoZWFkZXJzYDogc2V0LgorICAgICAgYHJlZmVycmVyYDogc2V0
IHZpYSBgZG9jdW1lbnQucmVmZXJyZXJgLgorICAgICAgYGxvY2F0aW9uYDogc2V0IHZpYSBgZG9j
dW1lbnQubG9jYXRpb25gLgorICAgICAgU2VlIGB0ZW1wbGF0ZS9kb2N1bWVudC5odG1sLnRlbXBs
YXRlYC4KKyAgLSBDYXRlZ29yeSAyOgorICAgICAgYGhlYWRlcnNgOiBzZXQuCisgICAgICBgcmVm
ZXJyZXJgOiBzZXQgdG8gYGhlYWRlcnMucmVmZXJlcmAgYnkgYHdyYXBSZXN1bHQoKWAuCisgICAg
ICBgbG9jYXRpb25gOiBub3Qgc2V0LgorICAtIENhdGVnb3J5IDM6CisgICAgICBBbGwgdGhlIGtl
eXMgbGlzdGVkIGFib3ZlIGFyZSBOT1Qgc2V0LgorICBgc291cmNlQ29udGV4dFVybGAgaXMgbm90
IHNldCBoZXJlLgorCisgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIC0tLS0tLS0t
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgIEZ1bmN0aW9uIG5hbWUgICAgICAgICAgICAg
ICAgICAgIENhdGVnb3J5IFVzZWQgaW4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgLS0tLS0tLS0gLS0tLS0tLSAtLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmZXJyZXIgbWl4ZWQtICB1cGdyYWRlLQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb2xpY3kgICBjb250ZW50
IGluc2VjdXJlLQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
b2xpY3kgICBjb250ZW50IHJlcXVlc3QKKyAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0gLS0tLS0tLS0gLS0tLS0tLS0gLS0tLS0tLSAtLS0tLS0tLS0KKyAgcmVxdWVzdFZpYUFuY2hv
ciAgICAgICAgICAgICAgICAgMSAgICAgICAgWSAgICAgICAgWSAgICAgICAtCisgIHJlcXVlc3RW
aWFBcmVhICAgICAgICAgICAgICAgICAgIDEgICAgICAgIFkgICAgICAgIFkgICAgICAgLQorICBy
ZXF1ZXN0VmlhQXVkaW8gICAgICAgICAgICAgICAgICAzICAgICAgICAtICAgICAgICBZICAgICAg
IC0KKyAgcmVxdWVzdFZpYURlZGljYXRlZFdvcmtlciAgICAgICAgMiAgICAgICAgWSAgICAgICAg
WSAgICAgICBZCisgIHJlcXVlc3RWaWFGZXRjaCAgICAgICAgICAgICAgICAgIDIgICAgICAgIFkg
ICAgICAgIFkgICAgICAgLQorICByZXF1ZXN0VmlhRm9ybSAgICAgICAgICAgICAgICAgICAzICAg
ICAgICAtICAgICAgICBZICAgICAgIC0KKyAgcmVxdWVzdFZpYUlmcmFtZSAgICAgICAgICAgICAg
ICAgMSAgICAgICAgWSAgICAgICAgWSAgICAgICAtCisgIHJlcXVlc3RWaWFJbWFnZSAgICAgICAg
ICAgICAgICAgIDIgICAgICAgIFkgICAgICAgIFkgICAgICAgLQorICByZXF1ZXN0VmlhTGlua1By
ZWZldGNoICAgICAgICAgICAzICAgICAgICAtICAgICAgICBZICAgICAgIC0KKyAgcmVxdWVzdFZp
YUxpbmtTdHlsZXNoZWV0ICAgICAgICAgMyAgICAgICAgLSAgICAgICAgWSAgICAgICAtCisgIHJl
cXVlc3RWaWFPYmplY3QgICAgICAgICAgICAgICAgIDMgICAgICAgIC0gICAgICAgIFkgICAgICAg
LQorICByZXF1ZXN0VmlhUGljdHVyZSAgICAgICAgICAgICAgICAzICAgICAgICAtICAgICAgICBZ
ICAgICAgIC0KKyAgcmVxdWVzdFZpYVNjcmlwdCAgICAgICAgICAgICAgICAgMiAgICAgICAgWSAg
ICAgICAgWSAgICAgICAtCisgIHJlcXVlc3RWaWFTZW5kQmVhY29uICAgICAgICAgICAgIDMgICAg
ICAgIC0gICAgICAgIFkgICAgICAgLQorICByZXF1ZXN0VmlhU2hhcmVkV29ya2VyICAgICAgICAg
ICAyICAgICAgICBZICAgICAgICAtICAgICAgIC0KKyAgcmVxdWVzdFZpYVZpZGVvICAgICAgICAg
ICAgICAgICAgMyAgICAgICAgLSAgICAgICAgWSAgICAgICAtCisgIHJlcXVlc3RWaWFXZWJTb2Nr
ZXQgICAgICAgICAgICAgIDMgICAgICAgIC0gICAgICAgIFkgICAgICAgLQorICByZXF1ZXN0Vmlh
V29ya2xldCAgICAgICAgICAgICAgICAzICAgICAgICAtICAgICAgICBZICAgICAgIFkKKyAgcmVx
dWVzdFZpYVhociAgICAgICAgICAgICAgICAgICAgMiAgICAgICAgWSAgICAgICAgWSAgICAgICAt
CisgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIC0tLS0tLS0tIC0tLS0tLS0tIC0t
LS0tLS0gLS0tLS0tLS0tCisqLworCisvKioKKyAqIENyZWF0ZXMgYSBuZXcgaWZyYW1lLCBiaW5k
cyBsb2FkIGFuZCBlcnJvciBldmVudHMsIHNldHMgdGhlIHNyYyBhdHRyaWJ1dGUgYW5kCisgKiAg
ICAgYXBwZW5kcyBpdCB0byB7QGNvZGUgZG9jdW1lbnQuYm9keX0gLgorICogQHBhcmFtIHtzdHJp
bmd9IHVybCBUaGUgc3JjIGZvciB0aGUgaWZyYW1lLgorICogQHJldHVybiB7UHJvbWlzZX0gVGhl
IHByb21pc2UgZm9yIHN1Y2Nlc3MvZXJyb3IgZXZlbnRzLgorICovCitmdW5jdGlvbiByZXF1ZXN0
VmlhSWZyYW1lKHVybCwgYWRkaXRpb25hbEF0dHJpYnV0ZXMpIHsKKyAgY29uc3QgaWZyYW1lID0g
Y3JlYXRlRWxlbWVudCgKKyAgICAgICJpZnJhbWUiLAorICAgICAgT2JqZWN0LmFzc2lnbih7InNy
YyI6IHVybH0sIGFkZGl0aW9uYWxBdHRyaWJ1dGVzKSwKKyAgICAgIGRvY3VtZW50LmJvZHksCisg
ICAgICBmYWxzZSk7CisgIHJldHVybiBiaW5kRXZlbnRzMih3aW5kb3csICJtZXNzYWdlIiwgaWZy
YW1lLCAiZXJyb3IiLCB3aW5kb3csICJlcnJvciIpCisgICAgICAudGhlbihldmVudCA9PiB7Cisg
ICAgICAgICAgaWYgKGV2ZW50LnNvdXJjZSAhPT0gaWZyYW1lLmNvbnRlbnRXaW5kb3cpCisgICAg
ICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QobmV3IEVycm9yKCdVbmV4cGVjdGVkIGV2ZW50
LnNvdXJjZScpKTsKKyAgICAgICAgICByZXR1cm4gZXZlbnQuZGF0YTsKKyAgICAgICAgfSk7Cit9
CisKKy8qKgorICogQ3JlYXRlcyBhIG5ldyBpbWFnZSwgYmluZHMgbG9hZCBhbmQgZXJyb3IgZXZl
bnRzLCBzZXRzIHRoZSBzcmMgYXR0cmlidXRlIGFuZAorICogICAgIGFwcGVuZHMgaXQgdG8ge0Bj
b2RlIGRvY3VtZW50LmJvZHl9IC4KKyAqIEBwYXJhbSB7c3RyaW5nfSB1cmwgVGhlIHNyYyBmb3Ig
dGhlIGltYWdlLgorICogQHJldHVybiB7UHJvbWlzZX0gVGhlIHByb21pc2UgZm9yIHN1Y2Nlc3Mv
ZXJyb3IgZXZlbnRzLgorICovCitmdW5jdGlvbiByZXF1ZXN0VmlhSW1hZ2UodXJsLCBhZGRpdGlv
bmFsQXR0cmlidXRlcykgeworICBjb25zdCBpbWcgPSBjcmVhdGVFbGVtZW50KAorICAgICAgImlt
ZyIsCisgICAgICAvLyBjcm9zc09yaWdpbiBhdHRyaWJ1dGUgaXMgYWRkZWQgdG8gcmVhZCB0aGUg
cGl4ZWwgZGF0YSBvZiB0aGUgcmVzcG9uc2UuCisgICAgICBPYmplY3QuYXNzaWduKHsic3JjIjog
dXJsLCAiY3Jvc3NPcmlnaW4iOiAiQW5vbnltb3VzIn0sIGFkZGl0aW9uYWxBdHRyaWJ1dGVzKSwK
KyAgICAgIGRvY3VtZW50LmJvZHksIHRydWUpOworICByZXR1cm4gaW1nLmV2ZW50UHJvbWlzZS50
aGVuKCgpID0+IHdyYXBSZXN1bHQoZGVjb2RlSW1hZ2VEYXRhKGltZykpKTsKK30KKworLy8gSGVs
cGVyIGZvciByZXF1ZXN0VmlhSW1hZ2UoKS4KK2Z1bmN0aW9uIGRlY29kZUltYWdlRGF0YShpbWcp
IHsKKyAgdmFyIGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpOworICB2
YXIgY29udGV4dCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpOworICBjb250ZXh0LmRyYXdJbWFn
ZShpbWcsIDAsIDApOworICB2YXIgaW1nRGF0YSA9IGNvbnRleHQuZ2V0SW1hZ2VEYXRhKDAsIDAs
IGltZy5jbGllbnRXaWR0aCwgaW1nLmNsaWVudEhlaWdodCk7CisgIGNvbnN0IHJnYmEgPSBpbWdE
YXRhLmRhdGE7CisKKyAgbGV0IGRlY29kZWRCeXRlcyA9IG5ldyBVaW50OENsYW1wZWRBcnJheShy
Z2JhLmxlbmd0aCk7CisgIGxldCBkZWNvZGVkTGVuZ3RoID0gMDsKKworICBmb3IgKHZhciBpID0g
MDsgaSArIDEyIDw9IHJnYmEubGVuZ3RoOyBpICs9IDEyKSB7CisgICAgLy8gQSBzaW5nbGUgYnl0
ZSBpcyBlbmNvZGVkIGluIHRocmVlIHBpeGVscy4gOCBwaXhlbCBvY3RldHMgKGFtb25nCisgICAg
Ly8gOSBvY3RldHMgPSAzIHBpeGVscyAqIDMgY2hhbm5lbHMpIGFyZSB1c2VkIHRvIGVuY29kZSA4
IGJpdHMsCisgICAgLy8gdGhlIG1vc3Qgc2lnbmlmaWNhbnQgYml0IGZpcnN0LCB3aGVyZSBgMGAg
YW5kIGAyNTVgIGluIHBpeGVsIHZhbHVlcworICAgIC8vIHJlcHJlc2VudCBgMGAgYW5kIGAxYCBp
biBiaXRzLCByZXNwZWN0aXZlbHkuCisgICAgLy8gVGhpcyBlbmNvZGluZyBpcyB1c2VkIHRvIGF2
b2lkIGVycm9ycyBkdWUgdG8gZGlmZmVyZW50IGNvbG9yIHNwYWNlcy4KKyAgICBjb25zdCBiaXRz
ID0gW107CisgICAgZm9yIChsZXQgaiA9IDA7IGogPCAzOyArK2opIHsKKyAgICAgIGJpdHMucHVz
aChyZ2JhW2kgKyBqICogNCArIDBdKTsKKyAgICAgIGJpdHMucHVzaChyZ2JhW2kgKyBqICogNCAr
IDFdKTsKKyAgICAgIGJpdHMucHVzaChyZ2JhW2kgKyBqICogNCArIDJdKTsKKyAgICAgIC8vIHJn
YmFbaSArIGogKiA0ICsgM106IFNraXAgYWxwaGEgY2hhbm5lbC4KKyAgICB9CisgICAgLy8gVGhl
IGxhc3Qgb25lIGVsZW1lbnQgaXMgbm90IHVzZWQuCisgICAgYml0cy5wb3AoKTsKKworICAgIC8v
IERlY29kZSBhIHNpbmdsZSBieXRlLgorICAgIGxldCBieXRlID0gMDsKKyAgICBmb3IgKGxldCBq
ID0gMDsgaiA8IDg7ICsraikgeworICAgICAgYnl0ZSA8PD0gMTsKKyAgICAgIGlmIChiaXRzW2pd
ID49IDEyOCkKKyAgICAgICAgYnl0ZSB8PSAxOworICAgIH0KKworICAgIC8vIFplcm8gaXMgdGhl
IHN0cmluZyB0ZXJtaW5hdG9yLgorICAgIGlmIChieXRlID09IDApCisgICAgICBicmVhazsKKwor
ICAgIGRlY29kZWRCeXRlc1tkZWNvZGVkTGVuZ3RoKytdID0gYnl0ZTsKKyAgfQorCisgIC8vIFJl
bW92ZSB0cmFpbGluZyBudWxscyBmcm9tIGRhdGEuCisgIGRlY29kZWRCeXRlcyA9IGRlY29kZWRC
eXRlcy5zdWJhcnJheSgwLCBkZWNvZGVkTGVuZ3RoKTsKKyAgdmFyIHN0cmluZ19kYXRhID0gKG5l
dyBUZXh0RGVjb2RlcigiYXNjaWkiKSkuZGVjb2RlKGRlY29kZWRCeXRlcyk7CisKKyAgcmV0dXJu
IEpTT04ucGFyc2Uoc3RyaW5nX2RhdGEpOworfQorCisvKioKKyAqIEluaXRpYXRlcyBhIG5ldyBY
SFIgR0VUIHJlcXVlc3QgdG8gcHJvdmlkZWQgVVJMLgorICogQHBhcmFtIHtzdHJpbmd9IHVybCBU
aGUgZW5kcG9pbnQgVVJMIGZvciB0aGUgWEhSLgorICogQHJldHVybiB7UHJvbWlzZX0gVGhlIHBy
b21pc2UgZm9yIHN1Y2Nlc3MvZXJyb3IgZXZlbnRzLgorICovCitmdW5jdGlvbiByZXF1ZXN0Vmlh
WGhyKHVybCkgeworICByZXR1cm4geGhyUmVxdWVzdCh1cmwpLnRoZW4ocmVzdWx0ID0+IHdyYXBS
ZXN1bHQocmVzdWx0KSk7Cit9CisKKy8qKgorICogSW5pdGlhdGVzIGEgbmV3IEdFVCByZXF1ZXN0
IHRvIHByb3ZpZGVkIFVSTCB2aWEgdGhlIEZldGNoIEFQSS4KKyAqIEBwYXJhbSB7c3RyaW5nfSB1
cmwgVGhlIGVuZHBvaW50IFVSTCBmb3IgdGhlIEZldGNoLgorICogQHJldHVybiB7UHJvbWlzZX0g
VGhlIHByb21pc2UgZm9yIHN1Y2Nlc3MvZXJyb3IgZXZlbnRzLgorICovCitmdW5jdGlvbiByZXF1
ZXN0VmlhRmV0Y2godXJsKSB7CisgIHJldHVybiBmZXRjaCh1cmwpCisgICAgLnRoZW4ocmVzID0+
IHJlcy5qc29uKCkpCisgICAgLnRoZW4oaiA9PiB3cmFwUmVzdWx0KGopKTsKK30KKworZnVuY3Rp
b24gZGVkaWNhdGVkV29ya2VyVXJsVGhhdEZldGNoZXModXJsKSB7CisgIHJldHVybiBgZGF0YTp0
ZXh0L2phdmFzY3JpcHQsCisgICAgZmV0Y2goJyR7dXJsfScpCisgICAgICAudGhlbihyID0+IHIu
anNvbigpKQorICAgICAgLnRoZW4oaiA9PiBwb3N0TWVzc2FnZShqKSkKKyAgICAgIC5jYXRjaCgo
ZSkgPT4gcG9zdE1lc3NhZ2UoZS5tZXNzYWdlKSk7YDsKK30KKworZnVuY3Rpb24gd29ya2VyVXJs
VGhhdEltcG9ydHModXJsKSB7CisgIHJldHVybiBgZGF0YTp0ZXh0L2phdmFzY3JpcHQsaW1wb3J0
ICcke3VybH0nO2A7Cit9CisKKy8qKgorICogQ3JlYXRlcyBhIG5ldyBXb3JrZXIsIGJpbmRzIG1l
c3NhZ2UgYW5kIGVycm9yIGV2ZW50cyB3cmFwcGluZyB0aGVtIGludG8uCisgKiAgICAge0Bjb2Rl
IHdvcmtlci5ldmVudFByb21pc2V9IGFuZCBwb3N0cyBhbiBlbXB0eSBzdHJpbmcgbWVzc2FnZSB0
byBzdGFydAorICogICAgIHRoZSB3b3JrZXIuCisgKiBAcGFyYW0ge3N0cmluZ30gdXJsIFRoZSBl
bmRwb2ludCBVUkwgZm9yIHRoZSB3b3JrZXIgc2NyaXB0LgorICogQHBhcmFtIHtvYmplY3R9IG9w
dGlvbnMgVGhlIG9wdGlvbnMgZm9yIFdvcmtlciBjb25zdHJ1Y3Rvci4KKyAqIEByZXR1cm4ge1By
b21pc2V9IFRoZSBwcm9taXNlIGZvciBzdWNjZXNzL2Vycm9yIGV2ZW50cy4KKyAqLworZnVuY3Rp
b24gcmVxdWVzdFZpYURlZGljYXRlZFdvcmtlcih1cmwsIG9wdGlvbnMpIHsKKyAgdmFyIHdvcmtl
cjsKKyAgdHJ5IHsKKyAgICB3b3JrZXIgPSBuZXcgV29ya2VyKHVybCwgb3B0aW9ucyk7CisgIH0g
Y2F0Y2ggKGUpIHsKKyAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoZSk7CisgIH0KKyAgd29ya2Vy
LnBvc3RNZXNzYWdlKCcnKTsKKyAgcmV0dXJuIGJpbmRFdmVudHMyKHdvcmtlciwgIm1lc3NhZ2Ui
LCB3b3JrZXIsICJlcnJvciIpCisgICAgLnRoZW4oZXZlbnQgPT4gd3JhcFJlc3VsdChldmVudC5k
YXRhKSk7Cit9CisKK2Z1bmN0aW9uIHJlcXVlc3RWaWFTaGFyZWRXb3JrZXIodXJsKSB7CisgIHZh
ciB3b3JrZXI7CisgIHRyeSB7CisgICAgd29ya2VyID0gbmV3IFNoYXJlZFdvcmtlcih1cmwpOwor
ICB9IGNhdGNoKGUpIHsKKyAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoZSk7CisgIH0KKyAgY29u
c3QgcHJvbWlzZSA9IGJpbmRFdmVudHMyKHdvcmtlci5wb3J0LCAibWVzc2FnZSIsIHdvcmtlciwg
ImVycm9yIikKKyAgICAudGhlbihldmVudCA9PiB3cmFwUmVzdWx0KGV2ZW50LmRhdGEpKTsKKyAg
d29ya2VyLnBvcnQuc3RhcnQoKTsKKyAgcmV0dXJuIHByb21pc2U7Cit9CisKKy8vIFJldHVybnMg
YSByZWZlcmVuY2UgdG8gYSB3b3JrbGV0IG9iamVjdCBjb3JyZXNwb25kaW5nIHRvIGEgZ2l2ZW4g
dHlwZS4KK2Z1bmN0aW9uIGdldF93b3JrbGV0KHR5cGUpIHsKKyAgaWYgKHR5cGUgPT0gJ2FuaW1h
dGlvbicpCisgICAgcmV0dXJuIENTUy5hbmltYXRpb25Xb3JrbGV0OworICBpZiAodHlwZSA9PSAn
bGF5b3V0JykKKyAgICByZXR1cm4gQ1NTLmxheW91dFdvcmtsZXQ7CisgIGlmICh0eXBlID09ICdw
YWludCcpCisgICAgcmV0dXJuIENTUy5wYWludFdvcmtsZXQ7CisgIGlmICh0eXBlID09ICdhdWRp
bycpCisgICAgcmV0dXJuIG5ldyBPZmZsaW5lQXVkaW9Db250ZXh0KDIsNDQxMDAqNDAsNDQxMDAp
LmF1ZGlvV29ya2xldDsKKworICB0aHJvdyBuZXcgRXJyb3IoJ3Vua25vd24gd29ya2xldCB0eXBl
IGlzIHBhc3NlZC4nKTsKK30KKworZnVuY3Rpb24gcmVxdWVzdFZpYVdvcmtsZXQodHlwZSwgdXJs
KSB7CisgIHRyeSB7CisgICAgcmV0dXJuIGdldF93b3JrbGV0KHR5cGUpLmFkZE1vZHVsZSh1cmwp
OworICB9IGNhdGNoIChlKSB7CisgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KGUpOworICB9Cit9
CisKKy8qKgorICogU2V0cyB0aGUgaHJlZiBhdHRyaWJ1dGUgb24gYSBuYXZpZ2FibGUgRE9NIGVs
ZW1lbnQgYW5kIHBlcmZvcm1zIGEgbmF2aWdhdGlvbgorICogICAgIGJ5IGNsaWNraW5nIGl0LiBU
byBhdm9pZCBuYXZpZ2F0aW5nIGF3YXkgZnJvbSB0aGUgY3VycmVudCBleGVjdXRpb24KKyAqICAg
ICBjb250ZXh0LCBhIHRhcmdldCBhdHRyaWJ1dGUgaXMgc2V0IHRvIHBvaW50IHRvIGEgbmV3IGhl
bHBlciBpZnJhbWUuCisgKiBAcGFyYW0ge0RPTUVsZW1lbnR9IG5hdmlnYWJsZUVsZW1lbnQgVGhl
IG5hdmlnYWJsZSBET01FbGVtZW50CisgKiBAcGFyYW0ge3N0cmluZ30gdXJsIFRoZSBocmVmIGZv
ciB0aGUgbmF2aWdhYmxlIGVsZW1lbnQuCisgKiBAcmV0dXJuIHtQcm9taXNlfSBUaGUgcHJvbWlz
ZSBmb3Igc3VjY2Vzcy9lcnJvciBldmVudHMuCisgKi8KK2Z1bmN0aW9uIHJlcXVlc3RWaWFOYXZp
Z2FibGUobmF2aWdhYmxlRWxlbWVudCwgdXJsKSB7CisgIHZhciBpZnJhbWUgPSBjcmVhdGVIZWxw
ZXJJZnJhbWUoZ3VpZCgpLCBmYWxzZSk7CisgIHNldEF0dHJpYnV0ZXMobmF2aWdhYmxlRWxlbWVu
dCwKKyAgICAgICAgICAgICAgICB7ImhyZWYiOiB1cmwsCisgICAgICAgICAgICAgICAgICJ0YXJn
ZXQiOiBpZnJhbWUubmFtZX0pOworCisgIGNvbnN0IHByb21pc2UgPQorICAgIGJpbmRFdmVudHMy
KHdpbmRvdywgIm1lc3NhZ2UiLCBpZnJhbWUsICJlcnJvciIsIHdpbmRvdywgImVycm9yIikKKyAg
ICAgIC50aGVuKGV2ZW50ID0+IHsKKyAgICAgICAgICBpZiAoZXZlbnQuc291cmNlICE9PSBpZnJh
bWUuY29udGVudFdpbmRvdykKKyAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChuZXcg
RXJyb3IoJ1VuZXhwZWN0ZWQgZXZlbnQuc291cmNlJykpOworICAgICAgICAgIHJldHVybiBldmVu
dC5kYXRhOworICAgICAgICB9KTsKKyAgbmF2aWdhYmxlRWxlbWVudC5jbGljaygpOworICByZXR1
cm4gcHJvbWlzZTsKK30KKworLyoqCisgKiBDcmVhdGVzIGEgbmV3IGFuY2hvciBlbGVtZW50LCBh
cHBlbmRzIGl0IHRvIHtAY29kZSBkb2N1bWVudC5ib2R5fSBhbmQKKyAqICAgICBwZXJmb3JtcyB0
aGUgbmF2aWdhdGlvbi4KKyAqIEBwYXJhbSB7c3RyaW5nfSB1cmwgVGhlIFVSTCB0byBuYXZpZ2F0
ZSB0by4KKyAqIEByZXR1cm4ge1Byb21pc2V9IFRoZSBwcm9taXNlIGZvciBzdWNjZXNzL2Vycm9y
IGV2ZW50cy4KKyAqLworZnVuY3Rpb24gcmVxdWVzdFZpYUFuY2hvcih1cmwsIGFkZGl0aW9uYWxB
dHRyaWJ1dGVzKSB7CisgIHZhciBhID0gY3JlYXRlRWxlbWVudCgKKyAgICAgICJhIiwKKyAgICAg
IE9iamVjdC5hc3NpZ24oeyJpbm5lckhUTUwiOiAiTGluayB0byByZXNvdXJjZSJ9LCBhZGRpdGlv
bmFsQXR0cmlidXRlcyksCisgICAgICBkb2N1bWVudC5ib2R5KTsKKworICByZXR1cm4gcmVxdWVz
dFZpYU5hdmlnYWJsZShhLCB1cmwpOworfQorCisvKioKKyAqIENyZWF0ZXMgYSBuZXcgYXJlYSBl
bGVtZW50LCBhcHBlbmRzIGl0IHRvIHtAY29kZSBkb2N1bWVudC5ib2R5fSBhbmQgcGVyZm9ybXMK
KyAqICAgICB0aGUgbmF2aWdhdGlvbi4KKyAqIEBwYXJhbSB7c3RyaW5nfSB1cmwgVGhlIFVSTCB0
byBuYXZpZ2F0ZSB0by4KKyAqIEByZXR1cm4ge1Byb21pc2V9IFRoZSBwcm9taXNlIGZvciBzdWNj
ZXNzL2Vycm9yIGV2ZW50cy4KKyAqLworZnVuY3Rpb24gcmVxdWVzdFZpYUFyZWEodXJsLCBhZGRp
dGlvbmFsQXR0cmlidXRlcykgeworICB2YXIgYXJlYSA9IGNyZWF0ZUVsZW1lbnQoCisgICAgICAi
YXJlYSIsCisgICAgICBPYmplY3QuYXNzaWduKHt9LCBhZGRpdGlvbmFsQXR0cmlidXRlcyksCisg
ICAgICBkb2N1bWVudC5ib2R5KTsKKworICAvLyBUT0RPKGtyaXN0aWphbmJ1cm5payk6IEFwcGVu
ZCB0byBtYXAgYW5kIGFkZCBpbWFnZS4KKyAgcmV0dXJuIHJlcXVlc3RWaWFOYXZpZ2FibGUoYXJl
YSwgdXJsKTsKK30KKworLyoqCisgKiBDcmVhdGVzIGEgbmV3IHNjcmlwdCBlbGVtZW50LCBzZXRz
IHRoZSBzcmMgdG8gdXJsLCBhbmQgYXBwZW5kcyBpdCB0bworICogICAgIHtAY29kZSBkb2N1bWVu
dC5ib2R5fS4KKyAqIEBwYXJhbSB7c3RyaW5nfSB1cmwgVGhlIHNyYyBVUkwuCisgKiBAcmV0dXJu
IHtQcm9taXNlfSBUaGUgcHJvbWlzZSBmb3Igc3VjY2Vzcy9lcnJvciBldmVudHMuCisgKi8KK2Z1
bmN0aW9uIHJlcXVlc3RWaWFTY3JpcHQodXJsLCBhZGRpdGlvbmFsQXR0cmlidXRlcykgeworICBj
b25zdCBzY3JpcHQgPSBjcmVhdGVFbGVtZW50KAorICAgICAgInNjcmlwdCIsCisgICAgICBPYmpl
Y3QuYXNzaWduKHsic3JjIjogdXJsfSwgYWRkaXRpb25hbEF0dHJpYnV0ZXMpLAorICAgICAgZG9j
dW1lbnQuYm9keSwKKyAgICAgIGZhbHNlKTsKKworICByZXR1cm4gYmluZEV2ZW50czIod2luZG93
LCAibWVzc2FnZSIsIHNjcmlwdCwgImVycm9yIiwgd2luZG93LCAiZXJyb3IiKQorICAgIC50aGVu
KGV2ZW50ID0+IHdyYXBSZXN1bHQoZXZlbnQuZGF0YSkpOworfQorCisvKioKKyAqIENyZWF0ZXMg
YSBuZXcgZm9ybSBlbGVtZW50LCBzZXRzIGF0dHJpYnV0ZXMsIGFwcGVuZHMgaXQgdG8KKyAqICAg
ICB7QGNvZGUgZG9jdW1lbnQuYm9keX0gYW5kIHN1Ym1pdHMgdGhlIGZvcm0uCisgKiBAcGFyYW0g
e3N0cmluZ30gdXJsIFRoZSBVUkwgdG8gc3VibWl0IHRvLgorICogQHJldHVybiB7UHJvbWlzZX0g
VGhlIHByb21pc2UgZm9yIHN1Y2Nlc3MvZXJyb3IgZXZlbnRzLgorICovCitmdW5jdGlvbiByZXF1
ZXN0VmlhRm9ybSh1cmwpIHsKKyAgdmFyIGlmcmFtZSA9IGNyZWF0ZUhlbHBlcklmcmFtZShndWlk
KCkpOworICB2YXIgZm9ybSA9IGNyZWF0ZUVsZW1lbnQoImZvcm0iLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgeyJhY3Rpb24iOiB1cmwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Im1ldGhvZCI6ICJQT1NUIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAidGFyZ2V0Ijog
aWZyYW1lLm5hbWV9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keSk7
CisgIGJpbmRFdmVudHMoaWZyYW1lKTsKKyAgZm9ybS5zdWJtaXQoKTsKKworICByZXR1cm4gaWZy
YW1lLmV2ZW50UHJvbWlzZTsKK30KKworLyoqCisgKiBDcmVhdGVzIGEgbmV3IGxpbmsgZWxlbWVu
dCBmb3IgYSBzdHlsZXNoZWV0LCBiaW5kcyBsb2FkIGFuZCBlcnJvciBldmVudHMsCisgKiAgICAg
c2V0cyB0aGUgaHJlZiB0byB1cmwgYW5kIGFwcGVuZHMgaXQgdG8ge0Bjb2RlIGRvY3VtZW50Lmhl
YWR9LgorICogQHBhcmFtIHtzdHJpbmd9IHVybCBUaGUgVVJMIGZvciBhIHN0eWxlc2hlZXQuCisg
KiBAcmV0dXJuIHtQcm9taXNlfSBUaGUgcHJvbWlzZSBmb3Igc3VjY2Vzcy9lcnJvciBldmVudHMu
CisgKi8KK2Z1bmN0aW9uIHJlcXVlc3RWaWFMaW5rU3R5bGVzaGVldCh1cmwpIHsKKyAgcmV0dXJu
IGNyZWF0ZVJlcXVlc3RWaWFFbGVtZW50KCJsaW5rIiwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHsicmVsIjogInN0eWxlc2hlZXQiLCAiaHJlZiI6IHVybH0sCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5oZWFkKTsKK30KKworLyoqCisgKiBDcmVh
dGVzIGEgbmV3IGxpbmsgZWxlbWVudCBmb3IgYSBwcmVmZXRjaCwgYmluZHMgbG9hZCBhbmQgZXJy
b3IgZXZlbnRzLCBzZXRzCisgKiAgICAgdGhlIGhyZWYgdG8gdXJsIGFuZCBhcHBlbmRzIGl0IHRv
IHtAY29kZSBkb2N1bWVudC5oZWFkfS4KKyAqIEBwYXJhbSB7c3RyaW5nfSB1cmwgVGhlIFVSTCBv
ZiBhIHJlc291cmNlIHRvIHByZWZldGNoLgorICogQHJldHVybiB7UHJvbWlzZX0gVGhlIHByb21p
c2UgZm9yIHN1Y2Nlc3MvZXJyb3IgZXZlbnRzLgorICovCitmdW5jdGlvbiByZXF1ZXN0VmlhTGlu
a1ByZWZldGNoKHVybCkgeworICB2YXIgbGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2xp
bmsnKTsKKyAgaWYgKGxpbmsucmVsTGlzdCAmJiBsaW5rLnJlbExpc3Quc3VwcG9ydHMgJiYgbGlu
ay5yZWxMaXN0LnN1cHBvcnRzKCJwcmVmZXRjaCIpKSB7CisgICAgcmV0dXJuIGNyZWF0ZVJlcXVl
c3RWaWFFbGVtZW50KCJsaW5rIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
eyJyZWwiOiAicHJlZmV0Y2giLCAiaHJlZiI6IHVybH0sCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGRvY3VtZW50LmhlYWQpOworICB9IGVsc2UgeworICAgIHJldHVybiBQcm9t
aXNlLnJlamVjdCgiVGhpcyBicm93c2VyIGRvZXMgbm90IHN1cHBvcnQgJ3ByZWZldGNoJy4iKTsK
KyAgfQorfQorCisvKioKKyAqIEluaXRpYXRlcyBhIG5ldyBiZWFjb24gcmVxdWVzdC4KKyAqIEBw
YXJhbSB7c3RyaW5nfSB1cmwgVGhlIFVSTCBvZiBhIHJlc291cmNlIHRvIHByZWZldGNoLgorICog
QHJldHVybiB7UHJvbWlzZX0gVGhlIHByb21pc2UgZm9yIHN1Y2Nlc3MvZXJyb3IgZXZlbnRzLgor
ICovCithc3luYyBmdW5jdGlvbiByZXF1ZXN0VmlhU2VuZEJlYWNvbih1cmwpIHsKKyAgZnVuY3Rp
b24gd2FpdChtcykgeworICAgIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHN0ZXBfdGlt
ZW91dChyZXNvbHZlLCBtcykpOworICB9CisgIGlmICghbmF2aWdhdG9yLnNlbmRCZWFjb24odXJs
KSkgeworICAgIC8vIElmIG1peGVkLWNvbnRlbnQgY2hlY2sgZmFpbHMsIGl0IHNob3VsZCByZXR1
cm4gZmFsc2UuCisgICAgdGhyb3cgbmV3IEVycm9yKCdzZW5kQmVhY29uKCkgZmFpbHMuJyk7Cisg
IH0KKyAgLy8gV2UgZG9uJ3QgaGF2ZSBhIG1lYW5zIHRvIHNlZSB0aGUgcmVzdWx0IG9mIHNlbmRC
ZWFjb24oKSByZXF1ZXN0CisgIC8vIGZvciBzdXJlLiBMZXQncyB3YWl0IGZvciBhIHdoaWxlIGFu
ZCBsZXQgdGhlIGdlbmVyaWMgdGVzdCBmdW5jdGlvbgorICAvLyBhc2sgdGhlIHNlcnZlciBmb3Ig
dGhlIHJlc3VsdC4KKyAgYXdhaXQgd2FpdCg1MDApOworICByZXR1cm4gJ2FsbG93ZWQnOworfQor
CisvKioKKyAqIENyZWF0ZXMgYSBuZXcgbWVkaWEgZWxlbWVudCB3aXRoIGEgY2hpbGQgc291cmNl
IGVsZW1lbnQsIGJpbmRzIGxvYWRlZGRhdGEgYW5kCisgKiAgICAgZXJyb3IgZXZlbnRzLCBzZXRz
IGF0dHJpYnV0ZXMgYW5kIGFwcGVuZHMgdG8gZG9jdW1lbnQuYm9keS4KKyAqIEBwYXJhbSB7c3Ry
aW5nfSB0eXBlIFRoZSB0eXBlIG9mIHRoZSBtZWRpYSBlbGVtZW50IChhdWRpby92aWRlby9waWN0
dXJlKS4KKyAqIEBwYXJhbSB7b2JqZWN0fSBtZWRpYV9hdHRycyBUaGUgYXR0cmlidXRlcyBmb3Ig
dGhlIG1lZGlhIGVsZW1lbnQuCisgKiBAcGFyYW0ge29iamVjdH0gc291cmNlX2F0dHJzIFRoZSBh
dHRyaWJ1dGVzIGZvciB0aGUgY2hpbGQgc291cmNlIGVsZW1lbnQuCisgKiBAcmV0dXJuIHtET01F
bGVtZW50fSBUaGUgbmV3bHkgY3JlYXRlZCBtZWRpYSBlbGVtZW50LgorICovCitmdW5jdGlvbiBj
cmVhdGVNZWRpYUVsZW1lbnQodHlwZSwgbWVkaWFfYXR0cnMsIHNvdXJjZV9hdHRycykgeworICB2
YXIgbWVkaWFFbGVtZW50ID0gY3JlYXRlRWxlbWVudCh0eXBlLCB7fSk7CisKKyAgdmFyIHNvdXJj
ZUVsZW1lbnQgPSBjcmVhdGVFbGVtZW50KCJzb3VyY2UiLCB7fSk7CisKKyAgbWVkaWFFbGVtZW50
LmV2ZW50UHJvbWlzZSA9IG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgewor
ICAgIG1lZGlhRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJsb2FkZWRkYXRhIiwgZnVuY3Rpb24g
KGUpIHsKKyAgICAgIHJlc29sdmUoZSk7CisgICAgfSk7CisKKyAgICAvLyBTYWZhcmkgZG9lc24n
dCBmaXJlIGFuIGBlcnJvcmAgZXZlbnQgd2hlbiBibG9ja2luZyBtaXhlZCBjb250ZW50LgorICAg
IG1lZGlhRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJzdGFsbGVkIiwgZnVuY3Rpb24oZSkgewor
ICAgICAgcmVqZWN0KGUpOworICAgIH0pOworCisgICAgc291cmNlRWxlbWVudC5hZGRFdmVudExp
c3RlbmVyKCJlcnJvciIsIGZ1bmN0aW9uKGUpIHsKKyAgICAgIHJlamVjdChlKTsKKyAgICB9KTsK
KyAgfSk7CisKKyAgc2V0QXR0cmlidXRlcyhtZWRpYUVsZW1lbnQsIG1lZGlhX2F0dHJzKTsKKyAg
c2V0QXR0cmlidXRlcyhzb3VyY2VFbGVtZW50LCBzb3VyY2VfYXR0cnMpOworCisgIG1lZGlhRWxl
bWVudC5hcHBlbmRDaGlsZChzb3VyY2VFbGVtZW50KTsKKyAgZG9jdW1lbnQuYm9keS5hcHBlbmRD
aGlsZChtZWRpYUVsZW1lbnQpOworCisgIHJldHVybiBtZWRpYUVsZW1lbnQ7Cit9CisKKy8qKgor
ICogQ3JlYXRlcyBhIG5ldyB2aWRlbyBlbGVtZW50LCBiaW5kcyBsb2FkZWRkYXRhIGFuZCBlcnJv
ciBldmVudHMsIHNldHMKKyAqICAgICBhdHRyaWJ1dGVzIGFuZCBzb3VyY2UgVVJMIGFuZCBhcHBl
bmRzIHRvIHtAY29kZSBkb2N1bWVudC5ib2R5fS4KKyAqIEBwYXJhbSB7c3RyaW5nfSB1cmwgVGhl
IFVSTCBvZiB0aGUgdmlkZW8uCisgKiBAcmV0dXJuIHtQcm9taXNlfSBUaGUgcHJvbWlzZSBmb3Ig
c3VjY2Vzcy9lcnJvciBldmVudHMuCisgKi8KK2Z1bmN0aW9uIHJlcXVlc3RWaWFWaWRlbyh1cmwp
IHsKKyAgcmV0dXJuIGNyZWF0ZU1lZGlhRWxlbWVudCgidmlkZW8iLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHt9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsic3JjIjogdXJs
fSkuZXZlbnRQcm9taXNlOworfQorCisvKioKKyAqIENyZWF0ZXMgYSBuZXcgYXVkaW8gZWxlbWVu
dCwgYmluZHMgbG9hZGVkZGF0YSBhbmQgZXJyb3IgZXZlbnRzLCBzZXRzCisgKiAgICAgYXR0cmli
dXRlcyBhbmQgc291cmNlIFVSTCBhbmQgYXBwZW5kcyB0byB7QGNvZGUgZG9jdW1lbnQuYm9keX0u
CisgKiBAcGFyYW0ge3N0cmluZ30gdXJsIFRoZSBVUkwgb2YgdGhlIGF1ZGlvLgorICogQHJldHVy
biB7UHJvbWlzZX0gVGhlIHByb21pc2UgZm9yIHN1Y2Nlc3MvZXJyb3IgZXZlbnRzLgorICovCitm
dW5jdGlvbiByZXF1ZXN0VmlhQXVkaW8odXJsKSB7CisgIHJldHVybiBjcmVhdGVNZWRpYUVsZW1l
bnQoImF1ZGlvIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB7fSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB7InR5cGUiOiAiYXVkaW8vd2F2IiwgInNyYyI6IHVybH0pLmV2ZW50
UHJvbWlzZTsKK30KKworLyoqCisgKiBDcmVhdGVzIGEgbmV3IHBpY3R1cmUgZWxlbWVudCwgYmlu
ZHMgbG9hZGVkZGF0YSBhbmQgZXJyb3IgZXZlbnRzLCBzZXRzCisgKiAgICAgYXR0cmlidXRlcyBh
bmQgc291cmNlIFVSTCBhbmQgYXBwZW5kcyB0byB7QGNvZGUgZG9jdW1lbnQuYm9keX0uIEFsc28K
KyAqICAgICBjcmVhdGVzIG5ldyBpbWFnZSBlbGVtZW50IGFwcGVuZGluZyBpdCB0byB0aGUgcGlj
dHVyZQorICogQHBhcmFtIHtzdHJpbmd9IHVybCBUaGUgVVJMIG9mIHRoZSBpbWFnZSBmb3IgdGhl
IHNvdXJjZSBhbmQgaW1hZ2UgZWxlbWVudHMuCisgKiBAcmV0dXJuIHtQcm9taXNlfSBUaGUgcHJv
bWlzZSBmb3Igc3VjY2Vzcy9lcnJvciBldmVudHMuCisgKi8KK2Z1bmN0aW9uIHJlcXVlc3RWaWFQ
aWN0dXJlKHVybCkgeworICB2YXIgcGljdHVyZSA9IGNyZWF0ZU1lZGlhRWxlbWVudCgicGljdHVy
ZSIsIHt9LCB7InNyY3NldCI6IHVybCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJ0eXBlIjogImltYWdlL3BuZyJ9KTsKKyAgcmV0dXJuIGNyZWF0ZVJl
cXVlc3RWaWFFbGVtZW50KCJpbWciLCB7InNyYyI6IHVybH0sIHBpY3R1cmUpOworfQorCisvKioK
KyAqIENyZWF0ZXMgYSBuZXcgb2JqZWN0IGVsZW1lbnQsIGJpbmRzIGxvYWQgYW5kIGVycm9yIGV2
ZW50cywgc2V0cyB0aGUgZGF0YSB0bworICogICAgIHVybCwgYW5kIGFwcGVuZHMgaXQgdG8ge0Bj
b2RlIGRvY3VtZW50LmJvZHl9LgorICogQHBhcmFtIHtzdHJpbmd9IHVybCBUaGUgZGF0YSBVUkwu
CisgKiBAcmV0dXJuIHtQcm9taXNlfSBUaGUgcHJvbWlzZSBmb3Igc3VjY2Vzcy9lcnJvciBldmVu
dHMuCisgKi8KK2Z1bmN0aW9uIHJlcXVlc3RWaWFPYmplY3QodXJsKSB7CisgIHJldHVybiBjcmVh
dGVSZXF1ZXN0VmlhRWxlbWVudCgib2JqZWN0IiwgeyJkYXRhIjogdXJsLCAidHlwZSI6ICJ0ZXh0
L2h0bWwifSwgZG9jdW1lbnQuYm9keSk7Cit9CisKKy8qKgorICogQ3JlYXRlcyBhIG5ldyBXZWJT
b2NrZXQgcG9pbnRpbmcgdG8ge0Bjb2RlIHVybH0gYW5kIHNlbmRzIGEgbWVzc2FnZSBzdHJpbmcK
KyAqICJlY2hvIi4gVGhlIHtAY29kZSBtZXNzYWdlfSBhbmQge0Bjb2RlIGVycm9yfSBldmVudHMg
YXJlIHRyaWdnZXJpbmcgdGhlCisgKiByZXR1cm5lZCBwcm9taXNlIHJlc29sdmUvcmVqZWN0IGV2
ZW50cy4KKyAqIEBwYXJhbSB7c3RyaW5nfSB1cmwgVGhlIFVSTCBmb3IgV2ViU29ja2V0IHRvIGNv
bm5lY3QgdG8uCisgKiBAcmV0dXJuIHtQcm9taXNlfSBUaGUgcHJvbWlzZSBmb3Igc3VjY2Vzcy9l
cnJvciBldmVudHMuCisgKi8KK2Z1bmN0aW9uIHJlcXVlc3RWaWFXZWJTb2NrZXQodXJsKSB7Cisg
IHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKKyAgICB2YXIg
d2Vic29ja2V0ID0gbmV3IFdlYlNvY2tldCh1cmwpOworCisgICAgd2Vic29ja2V0LmFkZEV2ZW50
TGlzdGVuZXIoIm1lc3NhZ2UiLCBmdW5jdGlvbihlKSB7CisgICAgICByZXNvbHZlKGUuZGF0YSk7
CisgICAgfSk7CisKKyAgICB3ZWJzb2NrZXQuYWRkRXZlbnRMaXN0ZW5lcigib3BlbiIsIGZ1bmN0
aW9uKGUpIHsKKyAgICAgIHdlYnNvY2tldC5zZW5kKCJlY2hvIik7CisgICAgfSk7CisKKyAgICB3
ZWJzb2NrZXQuYWRkRXZlbnRMaXN0ZW5lcigiZXJyb3IiLCBmdW5jdGlvbihlKSB7CisgICAgICBy
ZWplY3QoZSkKKyAgICB9KTsKKyAgfSkKKyAgLnRoZW4oZGF0YSA9PiB7CisgICAgICByZXR1cm4g
SlNPTi5wYXJzZShkYXRhKTsKKyAgICB9KTsKK30KKworLyoqCisgIEB0eXBlZGVmIFN1YnJlc291
cmNlVHlwZQorICBAdHlwZSB7c3RyaW5nfQorCisgIFJlcHJlc2VudHMgaG93IGEgc3VicmVzb3Vy
Y2UgaXMgc2VudC4KKyAgVGhlIGtleXMgb2YgYHN1YnJlc291cmNlTWFwYCBiZWxvdyBhcmUgdGhl
IHZhbGlkIHZhbHVlcy4KKyovCisKKy8vIFN1YnJlc291cmNlIHBhdGhzIGFuZCBpbnZva2Vycy4K
K2NvbnN0IHN1YnJlc291cmNlTWFwID0geworICAiYS10YWciOiB7CisgICAgcGF0aDogIi9jb21t
b24vc2VjdXJpdHktZmVhdHVyZXMvc3VicmVzb3VyY2UvZG9jdW1lbnQucHkiLAorICAgIGludm9r
ZXI6IHJlcXVlc3RWaWFBbmNob3IsCisgIH0sCisgICJhcmVhLXRhZyI6IHsKKyAgICBwYXRoOiAi
L2NvbW1vbi9zZWN1cml0eS1mZWF0dXJlcy9zdWJyZXNvdXJjZS9kb2N1bWVudC5weSIsCisgICAg
aW52b2tlcjogcmVxdWVzdFZpYUFyZWEsCisgIH0sCisgICJhdWRpby10YWciOiB7CisgICAgcGF0
aDogIi9jb21tb24vc2VjdXJpdHktZmVhdHVyZXMvc3VicmVzb3VyY2UvYXVkaW8ucHkiLAorICAg
IGludm9rZXI6IHJlcXVlc3RWaWFBdWRpbywKKyAgfSwKKyAgImJlYWNvbiI6IHsKKyAgICBwYXRo
OiAiL2NvbW1vbi9zZWN1cml0eS1mZWF0dXJlcy9zdWJyZXNvdXJjZS9lbXB0eS5weSIsCisgICAg
aW52b2tlcjogcmVxdWVzdFZpYVNlbmRCZWFjb24sCisgIH0sCisgICJmZXRjaCI6IHsKKyAgICBw
YXRoOiAiL2NvbW1vbi9zZWN1cml0eS1mZWF0dXJlcy9zdWJyZXNvdXJjZS94aHIucHkiLAorICAg
IGludm9rZXI6IHJlcXVlc3RWaWFGZXRjaCwKKyAgfSwKKyAgImZvcm0tdGFnIjogeworICAgIHBh
dGg6ICIvY29tbW9uL3NlY3VyaXR5LWZlYXR1cmVzL3N1YnJlc291cmNlL2VtcHR5LnB5IiwKKyAg
ICBpbnZva2VyOiByZXF1ZXN0VmlhRm9ybSwKKyAgfSwKKyAgImlmcmFtZS10YWciOiB7CisgICAg
cGF0aDogIi9jb21tb24vc2VjdXJpdHktZmVhdHVyZXMvc3VicmVzb3VyY2UvZG9jdW1lbnQucHki
LAorICAgIGludm9rZXI6IHJlcXVlc3RWaWFJZnJhbWUsCisgIH0sCisgICJpbWctdGFnIjogewor
ICAgIHBhdGg6ICIvY29tbW9uL3NlY3VyaXR5LWZlYXR1cmVzL3N1YnJlc291cmNlL2ltYWdlLnB5
IiwKKyAgICBpbnZva2VyOiByZXF1ZXN0VmlhSW1hZ2UsCisgIH0sCisgICJsaW5rLWNzcy10YWci
OiB7CisgICAgcGF0aDogIi9jb21tb24vc2VjdXJpdHktZmVhdHVyZXMvc3VicmVzb3VyY2UvZW1w
dHkucHkiLAorICAgIGludm9rZXI6IHJlcXVlc3RWaWFMaW5rU3R5bGVzaGVldCwKKyAgfSwKKyAg
ImxpbmstcHJlZmV0Y2gtdGFnIjogeworICAgIHBhdGg6ICIvY29tbW9uL3NlY3VyaXR5LWZlYXR1
cmVzL3N1YnJlc291cmNlL2VtcHR5LnB5IiwKKyAgICBpbnZva2VyOiByZXF1ZXN0VmlhTGlua1By
ZWZldGNoLAorICB9LAorICAib2JqZWN0LXRhZyI6IHsKKyAgICBwYXRoOiAiL2NvbW1vbi9zZWN1
cml0eS1mZWF0dXJlcy9zdWJyZXNvdXJjZS9lbXB0eS5weSIsCisgICAgaW52b2tlcjogcmVxdWVz
dFZpYU9iamVjdCwKKyAgfSwKKyAgInBpY3R1cmUtdGFnIjogeworICAgIHBhdGg6ICIvY29tbW9u
L3NlY3VyaXR5LWZlYXR1cmVzL3N1YnJlc291cmNlL2ltYWdlLnB5IiwKKyAgICBpbnZva2VyOiBy
ZXF1ZXN0VmlhUGljdHVyZSwKKyAgfSwKKyAgInNjcmlwdC10YWciOiB7CisgICAgcGF0aDogIi9j
b21tb24vc2VjdXJpdHktZmVhdHVyZXMvc3VicmVzb3VyY2Uvc2NyaXB0LnB5IiwKKyAgICBpbnZv
a2VyOiByZXF1ZXN0VmlhU2NyaXB0LAorICB9LAorICAidmlkZW8tdGFnIjogeworICAgIHBhdGg6
ICIvY29tbW9uL3NlY3VyaXR5LWZlYXR1cmVzL3N1YnJlc291cmNlL3ZpZGVvLnB5IiwKKyAgICBp
bnZva2VyOiByZXF1ZXN0VmlhVmlkZW8sCisgIH0sCisgICJ4aHIiOiB7CisgICAgcGF0aDogIi9j
b21tb24vc2VjdXJpdHktZmVhdHVyZXMvc3VicmVzb3VyY2UveGhyLnB5IiwKKyAgICBpbnZva2Vy
OiByZXF1ZXN0VmlhWGhyLAorICB9LAorCisgICJ3b3JrZXItY2xhc3NpYyI6IHsKKyAgICBwYXRo
OiAiL2NvbW1vbi9zZWN1cml0eS1mZWF0dXJlcy9zdWJyZXNvdXJjZS93b3JrZXIucHkiLAorICAg
IGludm9rZXI6IHVybCA9PiByZXF1ZXN0VmlhRGVkaWNhdGVkV29ya2VyKHVybCksCisgIH0sCisg
ICJ3b3JrZXItbW9kdWxlIjogeworICAgIHBhdGg6ICIvY29tbW9uL3NlY3VyaXR5LWZlYXR1cmVz
L3N1YnJlc291cmNlL3dvcmtlci5weSIsCisgICAgaW52b2tlcjogdXJsID0+IHJlcXVlc3RWaWFE
ZWRpY2F0ZWRXb3JrZXIodXJsLCB7dHlwZTogIm1vZHVsZSJ9KSwKKyAgfSwKKyAgIndvcmtlci1p
bXBvcnQtZGF0YSI6IHsKKyAgICBwYXRoOiAiL2NvbW1vbi9zZWN1cml0eS1mZWF0dXJlcy9zdWJy
ZXNvdXJjZS93b3JrZXIucHkiLAorICAgIGludm9rZXI6IHVybCA9PgorICAgICAgICByZXF1ZXN0
VmlhRGVkaWNhdGVkV29ya2VyKHdvcmtlclVybFRoYXRJbXBvcnRzKHVybCksIHt0eXBlOiAibW9k
dWxlIn0pLAorICB9LAorICAic2hhcmVkd29ya2VyLWNsYXNzaWMiOiB7CisgICAgcGF0aDogIi9j
b21tb24vc2VjdXJpdHktZmVhdHVyZXMvc3VicmVzb3VyY2Uvc2hhcmVkLXdvcmtlci5weSIsCisg
ICAgaW52b2tlcjogcmVxdWVzdFZpYVNoYXJlZFdvcmtlciwKKyAgfSwKKworICAid2Vic29ja2V0
IjogeworICAgIHBhdGg6ICIvc3Rhc2hfcmVzcG9uZGVyIiwKKyAgICBpbnZva2VyOiByZXF1ZXN0
VmlhV2ViU29ja2V0LAorICB9LAorfTsKK2ZvciAoY29uc3Qgd29ya2xldFR5cGUgb2YgWydhbmlt
YXRpb24nLCAnYXVkaW8nLCAnbGF5b3V0JywgJ3BhaW50J10pIHsKKyAgc3VicmVzb3VyY2VNYXBb
YHdvcmtsZXQtJHt3b3JrbGV0VHlwZX1gXSA9IHsKKyAgICAgIHBhdGg6ICIvY29tbW9uL3NlY3Vy
aXR5LWZlYXR1cmVzL3N1YnJlc291cmNlL3dvcmtlci5weSIsCisgICAgICBpbnZva2VyOiB1cmwg
PT4gcmVxdWVzdFZpYVdvcmtsZXQod29ya2xldFR5cGUsIHVybCkKKyAgICB9OworICBzdWJyZXNv
dXJjZU1hcFtgd29ya2xldC0ke3dvcmtsZXRUeXBlfS1pbXBvcnQtZGF0YWBdID0geworICAgICAg
cGF0aDogIi9jb21tb24vc2VjdXJpdHktZmVhdHVyZXMvc3VicmVzb3VyY2Uvd29ya2VyLnB5IiwK
KyAgICAgIGludm9rZXI6IHVybCA9PgorICAgICAgICAgIHJlcXVlc3RWaWFXb3JrbGV0KHdvcmts
ZXRUeXBlLCB3b3JrZXJVcmxUaGF0SW1wb3J0cyh1cmwpKQorICAgIH07Cit9CisKKy8qKgorICBA
dHlwZWRlZiBSZWRpcmVjdGlvblR5cGUKKyAgQHR5cGUge3N0cmluZ30KKworICBSZXByZXNlbnRz
IHdoYXQgcmVkaXJlY3RzIHNob3VsZCBvY2N1ciB0byB0aGUgc3VicmVzb3VyY2UgcmVxdWVzdAor
ICBhZnRlciBpbml0aWFsIHJlcXVlc3QuCisgIFNlZSBwcmVwcm9jZXNzX3JlZGlyZWN0aW9uKCkg
aW4KKyAgL2NvbW1vbi9zZWN1cml0eS1mZWF0dXJlcy9zdWJyZXNvdXJjZS9zdWJyZXNvdXJjZS5w
eSBmb3IgdmFsaWQgdmFsdWVzLgorKi8KKworLyoqCisgIENvbnN0cnVjdCBzdWJyZXNvdXJjZSAo
YW5kIHJlbGF0ZWQpIG9yaWdpbi4KKworICBAcGFyYW0ge3N0cmluZ30gb3JpZ2luVHlwZQorICBA
cmV0dXJucyB7b2JqZWN0fSB0aGUgb3JpZ2luIG9mIHRoZSBzdWJyZXNvdXJjZS4KKyovCitmdW5j
dGlvbiBnZXRTdWJyZXNvdXJjZU9yaWdpbihvcmlnaW5UeXBlKSB7CisgIGNvbnN0IGh0dHBQcm90
b2NvbCA9ICJodHRwIjsKKyAgY29uc3QgaHR0cHNQcm90b2NvbCA9ICJodHRwcyI7CisgIGNvbnN0
IHdzUHJvdG9jb2wgPSAid3MiOworICBjb25zdCB3c3NQcm90b2NvbCA9ICJ3c3MiOworCisgIGNv
bnN0IHNhbWVPcmlnaW5Ib3N0ID0gInt7aG9zdH19IjsKKyAgY29uc3QgY3Jvc3NPcmlnaW5Ib3N0
ID0gInt7ZG9tYWluc1t3d3cxXX19IjsKKworICAvLyBUaGVzZSB2YWx1ZXMgY2FuIGV2YWx1YXRl
IHRvIGVpdGhlciBlbXB0eSBzdHJpbmdzIG9yIGEgIjpwb3J0IiBzdHJpbmcuCisgIGNvbnN0IGh0
dHBQb3J0ID0gZ2V0Tm9ybWFsaXplZFBvcnQocGFyc2VJbnQoInt7cG9ydHNbaHR0cF1bMF19fSIs
IDEwKSk7CisgIGNvbnN0IGh0dHBzUG9ydCA9IGdldE5vcm1hbGl6ZWRQb3J0KHBhcnNlSW50KCJ7
e3BvcnRzW2h0dHBzXVswXX19IiwgMTApKTsKKyAgY29uc3Qgd3NQb3J0ID0gZ2V0Tm9ybWFsaXpl
ZFBvcnQocGFyc2VJbnQoInt7cG9ydHNbd3NdWzBdfX0iLCAxMCkpOworICBjb25zdCB3c3NQb3J0
ID0gZ2V0Tm9ybWFsaXplZFBvcnQocGFyc2VJbnQoInt7cG9ydHNbd3NzXVswXX19IiwgMTApKTsK
KworICAvKioKKyAgICBAdHlwZWRlZiBPcmlnaW5UeXBlCisgICAgQHR5cGUge3N0cmluZ30KKwor
ICAgIFJlcHJlc2VudHMgdGhlIG9yaWdpbiBvZiB0aGUgc3VicmVzb3VyY2UgcmVxdWVzdCBVUkwu
CisgICAgVGhlIGtleXMgb2YgYG9yaWdpbk1hcGAgYmVsb3cgYXJlIHRoZSB2YWxpZCB2YWx1ZXMu
CisKKyAgICBOb3RlIHRoYXQgdGhlcmUgY2FuIGJlIHJlZGlyZWN0cyBmcm9tIHRoZSBzcGVjaWZp
ZWQgb3JpZ2luCisgICAgKHNlZSBSZWRpcmVjdGlvblR5cGUpLCBhbmQgdGh1cyB0aGUgb3JpZ2lu
IG9mIHRoZSBzdWJyZXNvdXJjZQorICAgIHJlc3BvbnNlIFVSTCBtaWdodCBiZSBkaWZmZXJlbnQg
ZnJvbSB3aGF0IGlzIHNwZWNpZmllZCBieSBPcmlnaW5UeXBlLgorICAqLworICBjb25zdCBvcmln
aW5NYXAgPSB7CisgICAgInNhbWUtaHR0cHMiOiBodHRwc1Byb3RvY29sICsgIjovLyIgKyBzYW1l
T3JpZ2luSG9zdCArIGh0dHBzUG9ydCwKKyAgICAic2FtZS1odHRwIjogaHR0cFByb3RvY29sICsg
IjovLyIgKyBzYW1lT3JpZ2luSG9zdCArIGh0dHBQb3J0LAorICAgICJjcm9zcy1odHRwcyI6IGh0
dHBzUHJvdG9jb2wgKyAiOi8vIiArIGNyb3NzT3JpZ2luSG9zdCArIGh0dHBzUG9ydCwKKyAgICAi
Y3Jvc3MtaHR0cCI6IGh0dHBQcm90b2NvbCArICI6Ly8iICsgY3Jvc3NPcmlnaW5Ib3N0ICsgaHR0
cFBvcnQsCisgICAgInNhbWUtd3NzIjogd3NzUHJvdG9jb2wgKyAiOi8vIiArIHNhbWVPcmlnaW5I
b3N0ICsgd3NzUG9ydCwKKyAgICAic2FtZS13cyI6IHdzUHJvdG9jb2wgKyAiOi8vIiArIHNhbWVP
cmlnaW5Ib3N0ICsgd3NQb3J0LAorICAgICJjcm9zcy13c3MiOiB3c3NQcm90b2NvbCArICI6Ly8i
ICsgY3Jvc3NPcmlnaW5Ib3N0ICsgd3NzUG9ydCwKKyAgICAiY3Jvc3Mtd3MiOiB3c1Byb3RvY29s
ICsgIjovLyIgKyBjcm9zc09yaWdpbkhvc3QgKyB3c1BvcnQsCisgIH07CisKKyAgcmV0dXJuIG9y
aWdpbk1hcFtvcmlnaW5UeXBlXTsKK30KKworLyoqCisgIENvbnN0cnVjdCBzdWJyZXNvdXJjZSAo
YW5kIHJlbGF0ZWQpIFVSTHMuCisKKyAgQHBhcmFtIHtTdWJyZXNvdXJjZVR5cGV9IHN1YnJlc291
cmNlVHlwZQorICBAcGFyYW0ge09yaWdpblR5cGV9IG9yaWdpblR5cGUKKyAgQHBhcmFtIHtSZWRp
cmVjdGlvblR5cGV9IHJlZGlyZWN0aW9uVHlwZQorICBAcmV0dXJucyB7b2JqZWN0fSB3aXRoIGZv
bGxvd2luZyBwcm9wZXJ0aWVzOgorICAgIHtzdHJpbmd9IHRlc3RVcmwKKyAgICAgIFRoZSBzdWJy
ZXNvdXJjZSByZXF1ZXN0IFVSTC4KKyAgICB7c3RyaW5nfSBhbm5vdW5jZVVybAorICAgIHtzdHJp
bmd9IGFzc2VydFVybAorICAgICAgVGhlIFVSTHMgdG8gYmUgdXNlZCBmb3IgZGV0ZWN0aW5nIHdo
ZXRoZXIgYHRlc3RVcmxgIGlzIGFjdHVhbGx5IHNlbnQKKyAgICAgIHRvIHRoZSBzZXJ2ZXIuCisg
ICAgICAxLiBGZXRjaCBgYW5ub3VuY2VVcmxgIGZpcnN0LAorICAgICAgMi4gdGhlbiBwb3NzaWJs
eSBmZXRjaCBgdGVzdFVybGAsIGFuZAorICAgICAgMy4gZmluYWxseSBmZXRjaCBgYXNzZXJ0VXJs
YC4KKyAgICAgICAgIFRoZSBmZXRjaCByZXN1bHQgb2YgYGFzc2VydFVybGAgc2hvdWxkIGluZGlj
YXRlIHdoZXRoZXIKKyAgICAgICAgIGB0ZXN0VXJsYCBpcyBhY3R1YWxseSBzZW50IHRvIHRoZSBz
ZXJ2ZXIgb3Igbm90LgorKi8KK2Z1bmN0aW9uIGdldFJlcXVlc3RVUkxzKHN1YnJlc291cmNlVHlw
ZSwgb3JpZ2luVHlwZSwgcmVkaXJlY3Rpb25UeXBlKSB7CisgIGNvbnN0IGtleSA9IGd1aWQoKTsK
KyAgY29uc3QgdmFsdWUgPSBndWlkKCk7CisKKyAgLy8gV2UgdXNlIHRoZSBzYW1lIHN0YXNoIHBh
dGggZm9yIGJvdGggSFRUUC9TIGFuZCBXUy9TIHN0YXNoIHJlcXVlc3RzLgorICBjb25zdCBzdGFz
aFBhdGggPSBlbmNvZGVVUklDb21wb25lbnQoIi9taXhlZC1jb250ZW50Iik7CisKKyAgY29uc3Qg
c3Rhc2hFbmRwb2ludCA9ICIvY29tbW9uL3NlY3VyaXR5LWZlYXR1cmVzL3N1YnJlc291cmNlL3ho
ci5weT9rZXk9IiArCisgICAgICAgICAgICAgICAgICAgICAgICBrZXkgKyAiJnBhdGg9IiArIHN0
YXNoUGF0aDsKKyAgcmV0dXJuIHsKKyAgICB0ZXN0VXJsOgorICAgICAgZ2V0U3VicmVzb3VyY2VP
cmlnaW4ob3JpZ2luVHlwZSkgKworICAgICAgICBzdWJyZXNvdXJjZU1hcFtzdWJyZXNvdXJjZVR5
cGVdLnBhdGggKworICAgICAgICAiP3JlZGlyZWN0aW9uPSIgKyBlbmNvZGVVUklDb21wb25lbnQo
cmVkaXJlY3Rpb25UeXBlKSArCisgICAgICAgICImYWN0aW9uPXB1cmdlJmtleT0iICsga2V5ICsK
KyAgICAgICAgIiZwYXRoPSIgKyBzdGFzaFBhdGgsCisgICAgYW5ub3VuY2VVcmw6IHN0YXNoRW5k
cG9pbnQgKyAiJmFjdGlvbj1wdXQmdmFsdWU9IiArIHZhbHVlLAorICAgIGFzc2VydFVybDogc3Rh
c2hFbmRwb2ludCArICImYWN0aW9uPXRha2UiLAorICB9OworfQorCisvLyA9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy8vIFNv
dXJjZSBDb250ZXh0CisvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KKy8vIFJlcXVlc3RzIGNhbiBiZSBzZW50IGZyb20gc2V2
ZXJhbCBzb3VyY2UgY29udGV4dHMsCisvLyBzdWNoIGFzIHRoZSBtYWluIGRvY3VtZW50cywgaWZy
YW1lcywgd29ya2Vycywgb3Igc28sCisvLyBwb3NzaWJseSBuZXN0ZWQsIGFuZCBwb3NzaWJseSB3
aXRoIDxtZXRhPi9odHRwIGhlYWRlcnMgYWRkZWQuCisvLyBpbnZva2VSZXF1ZXN0KCkgYW5kIGlu
dm9rZUZyb20qKCkgZnVuY3Rpb25zIGhhbmRsZXMKKy8vIFNvdXJjZUNvbnRleHQtcmVsYXRlZCBz
ZXR1cCBpbiBjbGllbnQtc2lkZS4KKworLyoqCisgIGludm9rZVJlcXVlc3QoKSBpbnZva2VzIGEg
c3VicmVzb3VyY2UgcmVxdWVzdAorICAoc3BlY2lmaWVkIGFzIGBzdWJyZXNvdXJjZWApCisgIGZy
b20gYSAocG9zc2libHkgbmVzdGVkKSBlbnZpcm9ubWVudCBzZXR0aW5ncyBvYmplY3QKKyAgKHNw
ZWNpZmllZCBhcyBgc291cmNlQ29udGV4dExpc3RgKS4KKworICBGb3IgbmVzdGVkIGNvbnRleHRz
LCBpbnZva2VSZXF1ZXN0KCkgY2FsbHMgYW4gaW52b2tlRnJvbSooKSBmdW5jdGlvbgorICB0aGF0
IGNyZWF0ZXMgYSBuZXN0ZWQgZW52aXJvbm1lbnQgc2V0dGluZ3Mgb2JqZWN0IHVzaW5nCisgIC9j
b21tb24vc2VjdXJpdHktZmVhdHVyZXMvc2NvcGUvLCB3aGljaCBjYWxscyBpbnZva2VSZXF1ZXN0
KCkKKyAgYWdhaW4gaW5zaWRlIHRoZSBuZXN0ZWQgZW52aXJvbm1lbnQgc2V0dGluZ3Mgb2JqZWN0
LgorICBUaGlzIGN5Y2xlIGNvbnRpbnVlcyB1bnRpbCBhbGwgc3BlY2lmaWVkCisgIG5lc3RlZCBl
bnZpcm9ubWVudCBzZXR0aW5ncyBvYmplY3QgYXJlIGNyZWF0ZWQsIGFuZAorICBmaW5hbGx5IGlu
dm9rZVJlcXVlc3QoKSBjYWxscyBhIHJlcXVlc3RWaWEqKCkgZnVuY3Rpb24gdG8gc3RhcnQgdGhl
CisgIHN1YnJlc291cmNlIHJlcXVlc3QgZnJvbSB0aGUgaW5uZXItbW9zdCBlbnZpcm9ubWVudCBz
ZXR0aW5ncyBvYmplY3QuCisKKyAgQHBhcmFtIHtTdWJyZXNvdXJjZX0gc3VicmVzb3VyY2UKKyAg
QHBhcmFtIHtBcnJheTxTb3VyY2VDb250ZXh0Pn0gc291cmNlQ29udGV4dExpc3QKKworICBAcmV0
dXJucyB7UHJvbWlzZX0gQSBwcm9taXNlIHRoYXQgaXMgcmVzb2x2ZWQgd2l0aCBhbiBSZXF1ZXN0
UmVzdWx0IG9iamVjdC4KKyAgYHNvdXJjZUNvbnRleHRVcmxgIGlzIGFsd2F5cyBzZXQuIEZvciB3
aGV0aGVyIG90aGVyIHByb3BlcnRpZXMgYXJlIHNldCwKKyAgc2VlIHRoZSBjb21tZW50cyBmb3Ig
cmVxdWVzdFZpYSooKSBhYm92ZS4KKyovCitmdW5jdGlvbiBpbnZva2VSZXF1ZXN0KHN1YnJlc291
cmNlLCBzb3VyY2VDb250ZXh0TGlzdCkgeworICBpZiAoc291cmNlQ29udGV4dExpc3QubGVuZ3Ro
ID09PSAwKSB7CisgICAgLy8gTm8gZnVydGhlciBuZXN0ZWQgZ2xvYmFsIG9iamVjdHMuIFNlbmQg
dGhlIHN1YnJlc291cmNlIHJlcXVlc3QgaGVyZS4KKworICAgIGNvbnN0IGFkZGl0aW9uYWxBdHRy
aWJ1dGVzID0ge307CisgICAgLyoqIEB0eXBlIHtQb2xpY3lEZWxpdmVyeX0gcG9saWN5RGVsaXZl
cnkgKi8KKyAgICBmb3IgKGNvbnN0IHBvbGljeURlbGl2ZXJ5IG9mIChzdWJyZXNvdXJjZS5wb2xp
Y3lEZWxpdmVyaWVzIHx8IFtdKSkgeworICAgICAgLy8gRGVwZW5kaW5nIG9uIHRoZSBkZWxpdmVy
eSBtZXRob2QsIGV4dGVuZCB0aGUgc3VicmVzb3VyY2UgZWxlbWVudCB3aXRoCisgICAgICAvLyB0
aGVzZSBhdHRyaWJ1dGVzLgorICAgICAgaWYgKHBvbGljeURlbGl2ZXJ5LmRlbGl2ZXJ5VHlwZSA9
PT0gImF0dHIiKSB7CisgICAgICAgIGFkZGl0aW9uYWxBdHRyaWJ1dGVzW3BvbGljeURlbGl2ZXJ5
LmtleV0gPSBwb2xpY3lEZWxpdmVyeS52YWx1ZTsKKyAgICAgIH0gZWxzZSBpZiAocG9saWN5RGVs
aXZlcnkuZGVsaXZlcnlUeXBlID09PSAicmVsLW5vcmVmIikgeworICAgICAgICBhZGRpdGlvbmFs
QXR0cmlidXRlc1sicmVsIl0gPSAibm9yZWZlcnJlciI7CisgICAgICB9CisgICAgfQorCisgICAg
cmV0dXJuIHN1YnJlc291cmNlTWFwW3N1YnJlc291cmNlLnN1YnJlc291cmNlVHlwZV0uaW52b2tl
cigKKyAgICAgICAgc3VicmVzb3VyY2UudXJsLAorICAgICAgICBhZGRpdGlvbmFsQXR0cmlidXRl
cykKKyAgICAgIC50aGVuKHJlc3VsdCA9PiBPYmplY3QuYXNzaWduKAorICAgICAgICAgIHtzb3Vy
Y2VDb250ZXh0VXJsOiBsb2NhdGlvbi50b1N0cmluZygpfSwKKyAgICAgICAgICByZXN1bHQpKTsK
KyAgfQorCisgIC8vIERlZmluZXMgaW52b2tlcnMgZm9yIGVhY2ggdmFsaWQgU291cmNlQ29udGV4
dC5zb3VyY2VDb250ZXh0VHlwZS4KKyAgY29uc3Qgc291cmNlQ29udGV4dE1hcCA9IHsKKyAgICAi
c3JjZG9jIjogeyAvLyA8aWZyYW1lIHNyY2RvYz48L2lmcmFtZT4KKyAgICAgIGludm9rZXI6IGlu
dm9rZUZyb21JZnJhbWUsCisgICAgfSwKKyAgICAiaWZyYW1lIjogeyAvLyA8aWZyYW1lIHNyYz0i
c2FtZS1vcmlnaW4tVVJMIj48L2lmcmFtZT4KKyAgICAgIGludm9rZXI6IGludm9rZUZyb21JZnJh
bWUsCisgICAgfSwKKyAgICAid29ya2VyLWNsYXNzaWMiOiB7CisgICAgICAvLyBDbGFzc2ljIGRl
ZGljYXRlZCB3b3JrZXIgbG9hZGVkIGZyb20gc2FtZS1vcmlnaW4uCisgICAgICBpbnZva2VyOiBp
bnZva2VGcm9tV29ya2VyLmJpbmQodW5kZWZpbmVkLCBmYWxzZSwge30pLAorICAgIH0sCisgICAg
Indvcmtlci1jbGFzc2ljLWRhdGEiOiB7CisgICAgICAvLyBDbGFzc2ljIGRlZGljYXRlZCB3b3Jr
ZXIgbG9hZGVkIGZyb20gZGF0YTogVVJMLgorICAgICAgaW52b2tlcjogaW52b2tlRnJvbVdvcmtl
ci5iaW5kKHVuZGVmaW5lZCwgdHJ1ZSwge30pLAorICAgIH0sCisgICAgIndvcmtlci1tb2R1bGUi
OiB7CisgICAgICAvLyBNb2R1bGUgZGVkaWNhdGVkIHdvcmtlciBsb2FkZWQgZnJvbSBzYW1lLW9y
aWdpbi4KKyAgICAgIGludm9rZXI6IGludm9rZUZyb21Xb3JrZXIuYmluZCh1bmRlZmluZWQsIGZh
bHNlLCB7dHlwZTogJ21vZHVsZSd9KSwKKyAgICB9LAorICAgICJ3b3JrZXItbW9kdWxlLWRhdGEi
OiB7CisgICAgICAvLyBNb2R1bGUgZGVkaWNhdGVkIHdvcmtlciBsb2FkZWQgZnJvbSBkYXRhOiBV
UkwuCisgICAgICBpbnZva2VyOiBpbnZva2VGcm9tV29ya2VyLmJpbmQodW5kZWZpbmVkLCB0cnVl
LCB7dHlwZTogJ21vZHVsZSd9KSwKKyAgICB9LAorICB9OworCisgIHJldHVybiBzb3VyY2VDb250
ZXh0TWFwW3NvdXJjZUNvbnRleHRMaXN0WzBdLnNvdXJjZUNvbnRleHRUeXBlXS5pbnZva2VyKAor
ICAgICAgc3VicmVzb3VyY2UsIHNvdXJjZUNvbnRleHRMaXN0KTsKK30KKworLy8gUXVpY2sgaGFj
ayB0byBleHBvc2UgaW52b2tlUmVxdWVzdCB3aGVuIGNvbW1vbi5zdWIuanMgaXMgbG9hZGVkIGVp
dGhlcgorLy8gYXMgYSBjbGFzc2ljIG9yIG1vZHVsZSBzY3JpcHQuCitzZWxmLmludm9rZVJlcXVl
c3QgPSBpbnZva2VSZXF1ZXN0OworCisvKioKKyAgaW52b2tlRnJvbSooKSBmdW5jdGlvbnMgYXJl
IGhlbHBlciBmdW5jdGlvbnMgd2l0aCB0aGUgc2FtZSBwYXJhbWV0ZXJzCisgIGFuZCByZXR1cm4g
dmFsdWVzIGFzIGludm9rZVJlcXVlc3QoKSwgdGhhdCBhcmUgdGllZCB0byBzcGVjaWZpYyB0eXBl
cworICBvZiB0b3AtbW9zdCBlbnZpcm9ubWVudCBzZXR0aW5ncyBvYmplY3RzLgorICBGb3IgZXhh
bXBsZSwgaW52b2tlRnJvbUlmcmFtZSgpIGlzIHRoZSBoZWxwZXIgZnVuY3Rpb24gZm9yIHRoZSBj
YXNlcyB3aGVyZQorICBzb3VyY2VDb250ZXh0TGlzdFswXSBpcyBhbiBpZnJhbWUuCisqLworCisv
KioKKyAgQHBhcmFtIHtib29sZWFufSBpc0RhdGFVcmwKKyAgICB0cnVlIGlmIHRoZSB3b3JrZXIg
c2NyaXB0IGlzIGxvYWRlZCBmcm9tIGRhdGE6IFVSTC4KKyAgICBPdGhlcndpc2UsIHRoZSBzY3Jp
cHQgaXMgbG9hZGVkIGZyb20gc2FtZS1vcmlnaW4uCisgIEBwYXJhbSB7b2JqZWN0fSB3b3JrZXJP
cHRpb25zCisgICAgVGhlIGBvcHRpb25zYCBhcmd1bWVudCBmb3IgV29ya2VyIGNvbnN0cnVjdG9y
LgorCisgIE90aGVyIHBhcmFtZXRlcnMgYW5kIHJldHVybiB2YWx1ZXMgYXJlIHRoZSBzYW1lIGFz
IHRob3NlIG9mIGludm9rZVJlcXVlc3QoKS4KKyovCitmdW5jdGlvbiBpbnZva2VGcm9tV29ya2Vy
KGlzRGF0YVVybCwgd29ya2VyT3B0aW9ucywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgc3Vi
cmVzb3VyY2UsIHNvdXJjZUNvbnRleHRMaXN0KSB7CisgIGNvbnN0IGN1cnJlbnRTb3VyY2VDb250
ZXh0ID0gc291cmNlQ29udGV4dExpc3RbMF07CisgIGxldCB3b3JrZXJVcmwgPQorICAgICIvY29t
bW9uL3NlY3VyaXR5LWZlYXR1cmVzL3Njb3BlL3dvcmtlci5weT9wb2xpY3lEZWxpdmVyaWVzPSIg
KworICAgIGVuY29kZVVSSUNvbXBvbmVudChKU09OLnN0cmluZ2lmeSgKKyAgICAgICAgY3VycmVu
dFNvdXJjZUNvbnRleHQucG9saWN5RGVsaXZlcmllcyB8fCBbXSkpOworICBpZiAod29ya2VyT3B0
aW9ucy50eXBlID09PSAnbW9kdWxlJykgeworICAgIHdvcmtlclVybCArPSAiJnR5cGU9bW9kdWxl
IjsKKyAgfQorCisgIGxldCBwcm9taXNlOworICBpZiAoaXNEYXRhVXJsKSB7CisgICAgcHJvbWlz
ZSA9IGZldGNoKHdvcmtlclVybCkKKyAgICAgIC50aGVuKHIgPT4gci50ZXh0KCkpCisgICAgICAu
dGhlbihzb3VyY2UgPT4geworICAgICAgICAgIHJldHVybiAnZGF0YTp0ZXh0L2phdmFzY3JpcHQ7
YmFzZTY0LCcgKyBidG9hKHNvdXJjZSk7CisgICAgICAgIH0pOworICB9IGVsc2UgeworICAgIHBy
b21pc2UgPSBQcm9taXNlLnJlc29sdmUod29ya2VyVXJsKTsKKyAgfQorCisgIHJldHVybiBwcm9t
aXNlCisgICAgLnRoZW4odXJsID0+IHsKKyAgICAgIGNvbnN0IHdvcmtlciA9IG5ldyBXb3JrZXIo
dXJsLCB3b3JrZXJPcHRpb25zKTsKKyAgICAgIHdvcmtlci5wb3N0TWVzc2FnZSh7c3VicmVzb3Vy
Y2U6IHN1YnJlc291cmNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VDb250ZXh0
TGlzdDogc291cmNlQ29udGV4dExpc3Quc2xpY2UoMSl9KTsKKyAgICAgIHJldHVybiBiaW5kRXZl
bnRzMih3b3JrZXIsICJtZXNzYWdlIiwgd29ya2VyLCAiZXJyb3IiLCB3aW5kb3csICJlcnJvciIp
OworICAgIH0pCisgICAgLnRoZW4oZXZlbnQgPT4geworICAgICAgICBpZiAoZXZlbnQuZGF0YS5l
cnJvcikKKyAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoZXZlbnQuZGF0YS5lcnJvcik7
CisgICAgICAgIHJldHVybiBldmVudC5kYXRhOworICAgICAgfSk7Cit9CisKK2Z1bmN0aW9uIGlu
dm9rZUZyb21JZnJhbWUoc3VicmVzb3VyY2UsIHNvdXJjZUNvbnRleHRMaXN0KSB7CisgIGNvbnN0
IGN1cnJlbnRTb3VyY2VDb250ZXh0ID0gc291cmNlQ29udGV4dExpc3RbMF07CisgIGNvbnN0IGZy
YW1lVXJsID0KKyAgICAiL2NvbW1vbi9zZWN1cml0eS1mZWF0dXJlcy9zY29wZS9kb2N1bWVudC5w
eT9wb2xpY3lEZWxpdmVyaWVzPSIgKworICAgIGVuY29kZVVSSUNvbXBvbmVudChKU09OLnN0cmlu
Z2lmeSgKKyAgICAgICAgY3VycmVudFNvdXJjZUNvbnRleHQucG9saWN5RGVsaXZlcmllcyB8fCBb
XSkpOworCisgIGxldCBwcm9taXNlOworICBpZiAoY3VycmVudFNvdXJjZUNvbnRleHQuc291cmNl
Q29udGV4dFR5cGUgPT09ICdzcmNkb2MnKSB7CisgICAgcHJvbWlzZSA9IGZldGNoKGZyYW1lVXJs
KQorICAgICAgLnRoZW4ociA9PiByLnRleHQoKSkKKyAgICAgIC50aGVuKHNyY2RvYyA9PiB7Cisg
ICAgICAgICAgcmV0dXJuIGNyZWF0ZUVsZW1lbnQoImlmcmFtZSIsIHtzcmNkb2M6IHNyY2RvY30s
IGRvY3VtZW50LmJvZHksIHRydWUpOworICAgICAgICB9KTsKKyAgfSBlbHNlIGlmIChjdXJyZW50
U291cmNlQ29udGV4dC5zb3VyY2VDb250ZXh0VHlwZSA9PT0gJ2lmcmFtZScpIHsKKyAgICBwcm9t
aXNlID0gUHJvbWlzZS5yZXNvbHZlKAorICAgICAgICBjcmVhdGVFbGVtZW50KCJpZnJhbWUiLCB7
c3JjOiBmcmFtZVVybH0sIGRvY3VtZW50LmJvZHksIHRydWUpKTsKKyAgfQorCisgIHJldHVybiBw
cm9taXNlCisgICAgLnRoZW4oaWZyYW1lID0+IHsKKyAgICAgICAgcmV0dXJuIGlmcmFtZS5ldmVu
dFByb21pc2UKKyAgICAgICAgICAudGhlbigoKSA9PiB7CisgICAgICAgICAgICAgIGNvbnN0IHBy
b21pc2UgPSBiaW5kRXZlbnRzMigKKyAgICAgICAgICAgICAgICAgIHdpbmRvdywgIm1lc3NhZ2Ui
LCBpZnJhbWUsICJlcnJvciIsIHdpbmRvdywgImVycm9yIik7CisgICAgICAgICAgICAgIGlmcmFt
ZS5jb250ZW50V2luZG93LnBvc3RNZXNzYWdlKAorICAgICAgICAgICAgICAgICAge3N1YnJlc291
cmNlOiBzdWJyZXNvdXJjZSwKKyAgICAgICAgICAgICAgICAgICBzb3VyY2VDb250ZXh0TGlzdDog
c291cmNlQ29udGV4dExpc3Quc2xpY2UoMSl9LAorICAgICAgICAgICAgICAgICAgIioiKTsKKyAg
ICAgICAgICAgICAgcmV0dXJuIHByb21pc2U7CisgICAgICAgICAgICB9KQorICAgICAgICAgIC50
aGVuKGV2ZW50ID0+IHsKKyAgICAgICAgICAgICAgaWYgKGV2ZW50LmRhdGEuZXJyb3IpCisgICAg
ICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KGV2ZW50LmRhdGEuZXJyb3IpOworICAg
ICAgICAgICAgICByZXR1cm4gZXZlbnQuZGF0YTsKKyAgICAgICAgICAgIH0pOworICAgICAgfSk7
Cit9CisKKy8vIFNhbml0eUNoZWNrZXIgZG9lcyBub3RoaW5nIGluIHJlbGVhc2UgbW9kZS4gU2Vl
IHNhbml0eS1jaGVja2VyLmpzIGZvciBkZWJ1ZworLy8gbW9kZS4KK2Z1bmN0aW9uIFNhbml0eUNo
ZWNrZXIoKSB7fQorU2FuaXR5Q2hlY2tlci5wcm90b3R5cGUuY2hlY2tTY2VuYXJpbyA9IGZ1bmN0
aW9uKCkge307CitTYW5pdHlDaGVja2VyLnByb3RvdHlwZS5zZXRGYWlsVGltZW91dCA9IGZ1bmN0
aW9uKHRlc3QsIHRpbWVvdXQpIHt9OworU2FuaXR5Q2hlY2tlci5wcm90b3R5cGUuY2hlY2tTdWJy
ZXNvdXJjZVJlc3VsdCA9IGZ1bmN0aW9uKCkge307CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ludGVyZmFjZXMvZG9tLmlkbCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW50ZXJmYWNlcy9kb20uaWRs
CmluZGV4IDA4N2ZlNGQ2NjFjYmIxMzU1NTM3MzIzZTA5M2ZhM2IzZDM0Mjk3NjMuLjAzYTAyMDFi
MTZmZWQ1Njk0MjljNmNmYzcwOTA2M2VkMzE2ODE0MjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW50ZXJmYWNlcy9kb20uaWRsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW50ZXJmYWNlcy9k
b20uaWRsCkBAIC0xLDEwICsxLDE2IEBACi1bQ29uc3RydWN0b3IoRE9NU3RyaW5nIHR5cGUsIG9w
dGlvbmFsIEV2ZW50SW5pdCBldmVudEluaXREaWN0KSwKLSBFeHBvc2VkPShXaW5kb3csV29ya2Vy
KV0KKy8vIEdFTkVSQVRFRCBDT05URU5UIC0gRE8gTk9UIEVESVQKKy8vIENvbnRlbnQgd2FzIGF1
dG9tYXRpY2FsbHkgZXh0cmFjdGVkIGJ5IFJlZmZ5IGludG8gcmVmZnktcmVwb3J0cworLy8gKGh0
dHBzOi8vZ2l0aHViLmNvbS90aWRvdXN0L3JlZmZ5LXJlcG9ydHMpCisvLyBTb3VyY2U6IERPTSBT
dGFuZGFyZCAoaHR0cHM6Ly9kb20uc3BlYy53aGF0d2cub3JnLykKKworW0NvbnN0cnVjdG9yKERP
TVN0cmluZyB0eXBlLCBvcHRpb25hbCBFdmVudEluaXQgZXZlbnRJbml0RGljdCA9IHt9KSwKKyBF
eHBvc2VkPShXaW5kb3csV29ya2VyLEF1ZGlvV29ya2xldCldCiBpbnRlcmZhY2UgRXZlbnQgewog
ICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHR5cGU7CiAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBFdmVudFRhcmdldD8gdGFyZ2V0OwotICByZWFkb25seSBhdHRyaWJ1dGUgRXZlbnRUYXJnZXQ/
IHNyY0VsZW1lbnQ7CisgIHJlYWRvbmx5IGF0dHJpYnV0ZSBFdmVudFRhcmdldD8gc3JjRWxlbWVu
dDsgLy8gaGlzdG9yaWNhbAogICByZWFkb25seSBhdHRyaWJ1dGUgRXZlbnRUYXJnZXQ/IGN1cnJl
bnRUYXJnZXQ7CisgIHNlcXVlbmNlPEV2ZW50VGFyZ2V0PiBjb21wb3NlZFBhdGgoKTsKIAogICBj
b25zdCB1bnNpZ25lZCBzaG9ydCBOT05FID0gMDsKICAgY29uc3QgdW5zaWduZWQgc2hvcnQgQ0FQ
VFVSSU5HX1BIQVNFID0gMTsKQEAgLTEzLDI3ICsxOSwzMyBAQCBpbnRlcmZhY2UgRXZlbnQgewog
ICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgc2hvcnQgZXZlbnRQaGFzZTsKIAogICB2b2lk
IHN0b3BQcm9wYWdhdGlvbigpOworICAgICAgICAgICBhdHRyaWJ1dGUgYm9vbGVhbiBjYW5jZWxC
dWJibGU7IC8vIGhpc3RvcmljYWwgYWxpYXMgb2YgLnN0b3BQcm9wYWdhdGlvbgogICB2b2lkIHN0
b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpOwogCiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFu
IGJ1YmJsZXM7CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIGNhbmNlbGFibGU7Ci0gICAg
ICAgICAgIGF0dHJpYnV0ZSBib29sZWFuIHJldHVyblZhbHVlOworICAgICAgICAgICBhdHRyaWJ1
dGUgYm9vbGVhbiByZXR1cm5WYWx1ZTsgIC8vIGhpc3RvcmljYWwKICAgdm9pZCBwcmV2ZW50RGVm
YXVsdCgpOwogICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBkZWZhdWx0UHJldmVudGVkOwor
ICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBjb21wb3NlZDsKIAogICBbVW5mb3JnZWFibGVd
IHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIGlzVHJ1c3RlZDsKLSAgcmVhZG9ubHkgYXR0cmli
dXRlIERPTVRpbWVTdGFtcCB0aW1lU3RhbXA7CisgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01IaWdo
UmVzVGltZVN0YW1wIHRpbWVTdGFtcDsKIAotICB2b2lkIGluaXRFdmVudChET01TdHJpbmcgdHlw
ZSwgb3B0aW9uYWwgYm9vbGVhbiBidWJibGVzID0gZmFsc2UsIG9wdGlvbmFsIGJvb2xlYW4gY2Fu
Y2VsYWJsZSA9IGZhbHNlKTsKKyAgdm9pZCBpbml0RXZlbnQoRE9NU3RyaW5nIHR5cGUsIG9wdGlv
bmFsIGJvb2xlYW4gYnViYmxlcyA9IGZhbHNlLCBvcHRpb25hbCBib29sZWFuIGNhbmNlbGFibGUg
PSBmYWxzZSk7IC8vIGhpc3RvcmljYWwKIH07CiAKIGRpY3Rpb25hcnkgRXZlbnRJbml0IHsKICAg
Ym9vbGVhbiBidWJibGVzID0gZmFsc2U7CiAgIGJvb2xlYW4gY2FuY2VsYWJsZSA9IGZhbHNlOwor
ICBib29sZWFuIGNvbXBvc2VkID0gZmFsc2U7CiB9OwogCitwYXJ0aWFsIGludGVyZmFjZSBXaW5k
b3cgeworICBbUmVwbGFjZWFibGVdIHJlYWRvbmx5IGF0dHJpYnV0ZSBhbnkgZXZlbnQ7IC8vIGhp
c3RvcmljYWwKK307CiAKLVtDb25zdHJ1Y3RvcihET01TdHJpbmcgdHlwZSwgb3B0aW9uYWwgQ3Vz
dG9tRXZlbnRJbml0IGV2ZW50SW5pdERpY3QpLAorW0NvbnN0cnVjdG9yKERPTVN0cmluZyB0eXBl
LCBvcHRpb25hbCBDdXN0b21FdmVudEluaXQgZXZlbnRJbml0RGljdCA9IHt9KSwKICBFeHBvc2Vk
PShXaW5kb3csV29ya2VyKV0KIGludGVyZmFjZSBDdXN0b21FdmVudCA6IEV2ZW50IHsKICAgcmVh
ZG9ubHkgYXR0cmlidXRlIGFueSBkZXRhaWw7CkBAIC00NSwxMiArNTcsMTEgQEAgZGljdGlvbmFy
eSBDdXN0b21FdmVudEluaXQgOiBFdmVudEluaXQgewogICBhbnkgZGV0YWlsID0gbnVsbDsKIH07
CiAKLQogW0NvbnN0cnVjdG9yLAotIEV4cG9zZWQ9KFdpbmRvdyxXb3JrZXIpXQorIEV4cG9zZWQ9
KFdpbmRvdyxXb3JrZXIsQXVkaW9Xb3JrbGV0KV0KIGludGVyZmFjZSBFdmVudFRhcmdldCB7Ci0g
IHZvaWQgYWRkRXZlbnRMaXN0ZW5lcihET01TdHJpbmcgdHlwZSwgRXZlbnRMaXN0ZW5lcj8gY2Fs
bGJhY2ssIG9wdGlvbmFsIChFdmVudExpc3RlbmVyT3B0aW9ucyBvciBib29sZWFuKSBvcHRpb25z
KTsKLSAgdm9pZCByZW1vdmVFdmVudExpc3RlbmVyKERPTVN0cmluZyB0eXBlLCBFdmVudExpc3Rl
bmVyPyBjYWxsYmFjaywgb3B0aW9uYWwgKEV2ZW50TGlzdGVuZXJPcHRpb25zIG9yIGJvb2xlYW4p
IG9wdGlvbnMpOworICB2b2lkIGFkZEV2ZW50TGlzdGVuZXIoRE9NU3RyaW5nIHR5cGUsIEV2ZW50
TGlzdGVuZXI/IGNhbGxiYWNrLCBvcHRpb25hbCAoQWRkRXZlbnRMaXN0ZW5lck9wdGlvbnMgb3Ig
Ym9vbGVhbikgb3B0aW9ucyA9IHt9KTsKKyAgdm9pZCByZW1vdmVFdmVudExpc3RlbmVyKERPTVN0
cmluZyB0eXBlLCBFdmVudExpc3RlbmVyPyBjYWxsYmFjaywgb3B0aW9uYWwgKEV2ZW50TGlzdGVu
ZXJPcHRpb25zIG9yIGJvb2xlYW4pIG9wdGlvbnMgPSB7fSk7CiAgIGJvb2xlYW4gZGlzcGF0Y2hF
dmVudChFdmVudCBldmVudCk7CiB9OwogCkBAIC01OSwxMCArNzAsMTMgQEAgY2FsbGJhY2sgaW50
ZXJmYWNlIEV2ZW50TGlzdGVuZXIgewogfTsKIAogZGljdGlvbmFyeSBFdmVudExpc3RlbmVyT3B0
aW9ucyB7Ci0gIGJvb2xlYW4gY2FwdHVyZTsKLSAgYm9vbGVhbiBwYXNzaXZlOworICBib29sZWFu
IGNhcHR1cmUgPSBmYWxzZTsKIH07CiAKK2RpY3Rpb25hcnkgQWRkRXZlbnRMaXN0ZW5lck9wdGlv
bnMgOiBFdmVudExpc3RlbmVyT3B0aW9ucyB7CisgIGJvb2xlYW4gcGFzc2l2ZSA9IGZhbHNlOwor
ICBib29sZWFuIG9uY2UgPSBmYWxzZTsKK307CiAKIFtDb25zdHJ1Y3RvciwKICBFeHBvc2VkPShX
aW5kb3csV29ya2VyKV0KQEAgLTcxLDM3ICs4NSwzMSBAQCBpbnRlcmZhY2UgQWJvcnRDb250cm9s
bGVyIHsKIAogICB2b2lkIGFib3J0KCk7CiB9OwotCi0KIFtFeHBvc2VkPShXaW5kb3csV29ya2Vy
KV0KIGludGVyZmFjZSBBYm9ydFNpZ25hbCA6IEV2ZW50VGFyZ2V0IHsKICAgcmVhZG9ubHkgYXR0
cmlidXRlIGJvb2xlYW4gYWJvcnRlZDsKIAogICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9uYWJv
cnQ7CiB9OwotCi0KIGludGVyZmFjZSBtaXhpbiBOb25FbGVtZW50UGFyZW50Tm9kZSB7CiAgIEVs
ZW1lbnQ/IGdldEVsZW1lbnRCeUlkKERPTVN0cmluZyBlbGVtZW50SWQpOwogfTsKIERvY3VtZW50
IGluY2x1ZGVzIE5vbkVsZW1lbnRQYXJlbnROb2RlOwogRG9jdW1lbnRGcmFnbWVudCBpbmNsdWRl
cyBOb25FbGVtZW50UGFyZW50Tm9kZTsKIAotCiBpbnRlcmZhY2UgbWl4aW4gRG9jdW1lbnRPclNo
YWRvd1Jvb3QgewogfTsKIERvY3VtZW50IGluY2x1ZGVzIERvY3VtZW50T3JTaGFkb3dSb290Owog
U2hhZG93Um9vdCBpbmNsdWRlcyBEb2N1bWVudE9yU2hhZG93Um9vdDsKIAotCiBpbnRlcmZhY2Ug
bWl4aW4gUGFyZW50Tm9kZSB7CiAgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgSFRN
TENvbGxlY3Rpb24gY2hpbGRyZW47CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBFbGVtZW50PyBmaXJz
dEVsZW1lbnRDaGlsZDsKICAgcmVhZG9ubHkgYXR0cmlidXRlIEVsZW1lbnQ/IGxhc3RFbGVtZW50
Q2hpbGQ7CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGNoaWxkRWxlbWVudENv
dW50OwogCi0gIFtVbnNjb3BhYmxlXSB2b2lkIHByZXBlbmQoKE5vZGUgb3IgRE9NU3RyaW5nKS4u
LiBub2Rlcyk7Ci0gIFtVbnNjb3BhYmxlXSB2b2lkIGFwcGVuZCgoTm9kZSBvciBET01TdHJpbmcp
Li4uIG5vZGVzKTsKKyAgW0NFUmVhY3Rpb25zLCBVbnNjb3BhYmxlXSB2b2lkIHByZXBlbmQoKE5v
ZGUgb3IgRE9NU3RyaW5nKS4uLiBub2Rlcyk7CisgIFtDRVJlYWN0aW9ucywgVW5zY29wYWJsZV0g
dm9pZCBhcHBlbmQoKE5vZGUgb3IgRE9NU3RyaW5nKS4uLiBub2Rlcyk7CiAKICAgRWxlbWVudD8g
cXVlcnlTZWxlY3RvcihET01TdHJpbmcgc2VsZWN0b3JzKTsKICAgW05ld09iamVjdF0gTm9kZUxp
c3QgcXVlcnlTZWxlY3RvckFsbChET01TdHJpbmcgc2VsZWN0b3JzKTsKQEAgLTExMCw3ICsxMTgs
NiBAQCBEb2N1bWVudCBpbmNsdWRlcyBQYXJlbnROb2RlOwogRG9jdW1lbnRGcmFnbWVudCBpbmNs
dWRlcyBQYXJlbnROb2RlOwogRWxlbWVudCBpbmNsdWRlcyBQYXJlbnROb2RlOwogCi0KIGludGVy
ZmFjZSBtaXhpbiBOb25Eb2N1bWVudFR5cGVDaGlsZE5vZGUgewogICByZWFkb25seSBhdHRyaWJ1
dGUgRWxlbWVudD8gcHJldmlvdXNFbGVtZW50U2libGluZzsKICAgcmVhZG9ubHkgYXR0cmlidXRl
IEVsZW1lbnQ/IG5leHRFbGVtZW50U2libGluZzsKQEAgLTExOCwzMyArMTI1LDI5IEBAIGludGVy
ZmFjZSBtaXhpbiBOb25Eb2N1bWVudFR5cGVDaGlsZE5vZGUgewogRWxlbWVudCBpbmNsdWRlcyBO
b25Eb2N1bWVudFR5cGVDaGlsZE5vZGU7CiBDaGFyYWN0ZXJEYXRhIGluY2x1ZGVzIE5vbkRvY3Vt
ZW50VHlwZUNoaWxkTm9kZTsKIAotCiBpbnRlcmZhY2UgbWl4aW4gQ2hpbGROb2RlIHsKLSAgW1Vu
c2NvcGFibGVdIHZvaWQgYmVmb3JlKChOb2RlIG9yIERPTVN0cmluZykuLi4gbm9kZXMpOwotICBb
VW5zY29wYWJsZV0gdm9pZCBhZnRlcigoTm9kZSBvciBET01TdHJpbmcpLi4uIG5vZGVzKTsKLSAg
W1Vuc2NvcGFibGVdIHZvaWQgcmVwbGFjZVdpdGgoKE5vZGUgb3IgRE9NU3RyaW5nKS4uLiBub2Rl
cyk7Ci0gIFtVbnNjb3BhYmxlXSB2b2lkIHJlbW92ZSgpOworICBbQ0VSZWFjdGlvbnMsIFVuc2Nv
cGFibGVdIHZvaWQgYmVmb3JlKChOb2RlIG9yIERPTVN0cmluZykuLi4gbm9kZXMpOworICBbQ0VS
ZWFjdGlvbnMsIFVuc2NvcGFibGVdIHZvaWQgYWZ0ZXIoKE5vZGUgb3IgRE9NU3RyaW5nKS4uLiBu
b2Rlcyk7CisgIFtDRVJlYWN0aW9ucywgVW5zY29wYWJsZV0gdm9pZCByZXBsYWNlV2l0aCgoTm9k
ZSBvciBET01TdHJpbmcpLi4uIG5vZGVzKTsKKyAgW0NFUmVhY3Rpb25zLCBVbnNjb3BhYmxlXSB2
b2lkIHJlbW92ZSgpOwogfTsKIERvY3VtZW50VHlwZSBpbmNsdWRlcyBDaGlsZE5vZGU7CiBFbGVt
ZW50IGluY2x1ZGVzIENoaWxkTm9kZTsKIENoYXJhY3RlckRhdGEgaW5jbHVkZXMgQ2hpbGROb2Rl
OwogCi0KIGludGVyZmFjZSBtaXhpbiBTbG90YWJsZSB7CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBI
VE1MU2xvdEVsZW1lbnQ/IGFzc2lnbmVkU2xvdDsKIH07CiBFbGVtZW50IGluY2x1ZGVzIFNsb3Rh
YmxlOwogVGV4dCBpbmNsdWRlcyBTbG90YWJsZTsKIAotCiBbRXhwb3NlZD1XaW5kb3ddCiBpbnRl
cmZhY2UgTm9kZUxpc3QgewogICBnZXR0ZXIgTm9kZT8gaXRlbSh1bnNpZ25lZCBsb25nIGluZGV4
KTsKICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbGVuZ3RoOwotLy8gIGl0ZXJh
YmxlPE5vZGU+OworICBpdGVyYWJsZTxOb2RlPjsKIH07CiAKLQogW0V4cG9zZWQ9V2luZG93LCBM
ZWdhY3lVbmVudW1lcmFibGVOYW1lZFByb3BlcnRpZXNdCiBpbnRlcmZhY2UgSFRNTENvbGxlY3Rp
b24gewogICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsZW5ndGg7CkBAIC0xNTIs
MTAgKzE1NSwxMCBAQCBpbnRlcmZhY2UgSFRNTENvbGxlY3Rpb24gewogICBnZXR0ZXIgRWxlbWVu
dD8gbmFtZWRJdGVtKERPTVN0cmluZyBuYW1lKTsKIH07CiAKLQotW0NvbnN0cnVjdG9yKE11dGF0
aW9uQ2FsbGJhY2sgY2FsbGJhY2spXQorW0NvbnN0cnVjdG9yKE11dGF0aW9uQ2FsbGJhY2sgY2Fs
bGJhY2spLAorIEV4cG9zZWQ9V2luZG93XQogaW50ZXJmYWNlIE11dGF0aW9uT2JzZXJ2ZXIgewot
ICB2b2lkIG9ic2VydmUoTm9kZSB0YXJnZXQsIG9wdGlvbmFsIE11dGF0aW9uT2JzZXJ2ZXJJbml0
IG9wdGlvbnMpOworICB2b2lkIG9ic2VydmUoTm9kZSB0YXJnZXQsIG9wdGlvbmFsIE11dGF0aW9u
T2JzZXJ2ZXJJbml0IG9wdGlvbnMgPSB7fSk7CiAgIHZvaWQgZGlzY29ubmVjdCgpOwogICBzZXF1
ZW5jZTxNdXRhdGlvblJlY29yZD4gdGFrZVJlY29yZHMoKTsKIH07CkBAIC0xNzIsNyArMTc1LDYg
QEAgZGljdGlvbmFyeSBNdXRhdGlvbk9ic2VydmVySW5pdCB7CiAgIHNlcXVlbmNlPERPTVN0cmlu
Zz4gYXR0cmlidXRlRmlsdGVyOwogfTsKIAotCiBbRXhwb3NlZD1XaW5kb3ddCiBpbnRlcmZhY2Ug
TXV0YXRpb25SZWNvcmQgewogICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHR5cGU7CkBA
IC0xODYsMTEgKzE4OCwxMCBAQCBpbnRlcmZhY2UgTXV0YXRpb25SZWNvcmQgewogICByZWFkb25s
eSBhdHRyaWJ1dGUgRE9NU3RyaW5nPyBvbGRWYWx1ZTsKIH07CiAKLQogW0V4cG9zZWQ9V2luZG93
XQogaW50ZXJmYWNlIE5vZGUgOiBFdmVudFRhcmdldCB7CiAgIGNvbnN0IHVuc2lnbmVkIHNob3J0
IEVMRU1FTlRfTk9ERSA9IDE7Ci0gIGNvbnN0IHVuc2lnbmVkIHNob3J0IEFUVFJJQlVURV9OT0RF
ID0gMjsgLy8gaGlzdG9yaWNhbAorICBjb25zdCB1bnNpZ25lZCBzaG9ydCBBVFRSSUJVVEVfTk9E
RSA9IDI7CiAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFRFWFRfTk9ERSA9IDM7CiAgIGNvbnN0IHVu
c2lnbmVkIHNob3J0IENEQVRBX1NFQ1RJT05fTk9ERSA9IDQ7CiAgIGNvbnN0IHVuc2lnbmVkIHNo
b3J0IEVOVElUWV9SRUZFUkVOQ0VfTk9ERSA9IDU7IC8vIGhpc3RvcmljYWwKQEAgLTIwNCwxMSAr
MjA1LDExIEBAIGludGVyZmFjZSBOb2RlIDogRXZlbnRUYXJnZXQgewogICByZWFkb25seSBhdHRy
aWJ1dGUgdW5zaWduZWQgc2hvcnQgbm9kZVR5cGU7CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01T
dHJpbmcgbm9kZU5hbWU7CiAKLSAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBiYXNlVVJJ
OworICByZWFkb25seSBhdHRyaWJ1dGUgVVNWU3RyaW5nIGJhc2VVUkk7CiAKICAgcmVhZG9ubHkg
YXR0cmlidXRlIGJvb2xlYW4gaXNDb25uZWN0ZWQ7CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBEb2N1
bWVudD8gb3duZXJEb2N1bWVudDsKLSAgTm9kZSBnZXRSb290Tm9kZShvcHRpb25hbCBHZXRSb290
Tm9kZU9wdGlvbnMgb3B0aW9ucyk7CisgIE5vZGUgZ2V0Um9vdE5vZGUob3B0aW9uYWwgR2V0Um9v
dE5vZGVPcHRpb25zIG9wdGlvbnMgPSB7fSk7CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBOb2RlPyBw
YXJlbnROb2RlOwogICByZWFkb25seSBhdHRyaWJ1dGUgRWxlbWVudD8gcGFyZW50RWxlbWVudDsK
ICAgYm9vbGVhbiBoYXNDaGlsZE5vZGVzKCk7CkBAIC0yMTgsMTEgKzIxOSwxMSBAQCBpbnRlcmZh
Y2UgTm9kZSA6IEV2ZW50VGFyZ2V0IHsKICAgcmVhZG9ubHkgYXR0cmlidXRlIE5vZGU/IHByZXZp
b3VzU2libGluZzsKICAgcmVhZG9ubHkgYXR0cmlidXRlIE5vZGU/IG5leHRTaWJsaW5nOwogCi0g
ICAgICAgICAgIGF0dHJpYnV0ZSBET01TdHJpbmc/IG5vZGVWYWx1ZTsKLSAgICAgICAgICAgYXR0
cmlidXRlIERPTVN0cmluZz8gdGV4dENvbnRlbnQ7Ci0gIHZvaWQgbm9ybWFsaXplKCk7CisgIFtD
RVJlYWN0aW9uc10gYXR0cmlidXRlIERPTVN0cmluZz8gbm9kZVZhbHVlOworICBbQ0VSZWFjdGlv
bnNdIGF0dHJpYnV0ZSBET01TdHJpbmc/IHRleHRDb250ZW50OworICBbQ0VSZWFjdGlvbnNdIHZv
aWQgbm9ybWFsaXplKCk7CiAKLSAgW05ld09iamVjdF0gTm9kZSBjbG9uZU5vZGUob3B0aW9uYWwg
Ym9vbGVhbiBkZWVwID0gZmFsc2UpOworICBbQ0VSZWFjdGlvbnMsIE5ld09iamVjdF0gTm9kZSBj
bG9uZU5vZGUob3B0aW9uYWwgYm9vbGVhbiBkZWVwID0gZmFsc2UpOwogICBib29sZWFuIGlzRXF1
YWxOb2RlKE5vZGU/IG90aGVyTm9kZSk7CiAgIGJvb2xlYW4gaXNTYW1lTm9kZShOb2RlPyBvdGhl
ck5vZGUpOyAvLyBoaXN0b3JpY2FsIGFsaWFzIG9mID09PQogCkBAIC0yMzksMTAgKzI0MCwxMCBA
QCBpbnRlcmZhY2UgTm9kZSA6IEV2ZW50VGFyZ2V0IHsKICAgRE9NU3RyaW5nPyBsb29rdXBOYW1l
c3BhY2VVUkkoRE9NU3RyaW5nPyBwcmVmaXgpOwogICBib29sZWFuIGlzRGVmYXVsdE5hbWVzcGFj
ZShET01TdHJpbmc/IG5hbWVzcGFjZSk7CiAKLSAgTm9kZSBpbnNlcnRCZWZvcmUoTm9kZSBub2Rl
LCBOb2RlPyBjaGlsZCk7Ci0gIE5vZGUgYXBwZW5kQ2hpbGQoTm9kZSBub2RlKTsKLSAgTm9kZSBy
ZXBsYWNlQ2hpbGQoTm9kZSBub2RlLCBOb2RlIGNoaWxkKTsKLSAgTm9kZSByZW1vdmVDaGlsZChO
b2RlIGNoaWxkKTsKKyAgW0NFUmVhY3Rpb25zXSBOb2RlIGluc2VydEJlZm9yZShOb2RlIG5vZGUs
IE5vZGU/IGNoaWxkKTsKKyAgW0NFUmVhY3Rpb25zXSBOb2RlIGFwcGVuZENoaWxkKE5vZGUgbm9k
ZSk7CisgIFtDRVJlYWN0aW9uc10gTm9kZSByZXBsYWNlQ2hpbGQoTm9kZSBub2RlLCBOb2RlIGNo
aWxkKTsKKyAgW0NFUmVhY3Rpb25zXSBOb2RlIHJlbW92ZUNoaWxkKE5vZGUgY2hpbGQpOwogfTsK
IAogZGljdGlvbmFyeSBHZXRSb290Tm9kZU9wdGlvbnMgewpAQCAtMjUzLDkgKzI1NCw5IEBAIGRp
Y3Rpb25hcnkgR2V0Um9vdE5vZGVPcHRpb25zIHsKICBFeHBvc2VkPVdpbmRvd10KIGludGVyZmFj
ZSBEb2N1bWVudCA6IE5vZGUgewogICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIERP
TUltcGxlbWVudGF0aW9uIGltcGxlbWVudGF0aW9uOwotICByZWFkb25seSBhdHRyaWJ1dGUgRE9N
U3RyaW5nIFVSTDsKLSAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBkb2N1bWVudFVSSTsK
LSAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBvcmlnaW47CisgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBVU1ZTdHJpbmcgVVJMOworICByZWFkb25seSBhdHRyaWJ1dGUgVVNWU3RyaW5nIGRvY3Vt
ZW50VVJJOworICByZWFkb25seSBhdHRyaWJ1dGUgVVNWU3RyaW5nIG9yaWdpbjsKICAgcmVhZG9u
bHkgYXR0cmlidXRlIERPTVN0cmluZyBjb21wYXRNb2RlOwogICByZWFkb25seSBhdHRyaWJ1dGUg
RE9NU3RyaW5nIGNoYXJhY3RlclNldDsKICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBj
aGFyc2V0OyAvLyBoaXN0b3JpY2FsIGFsaWFzIG9mIC5jaGFyYWN0ZXJTZXQKQEAgLTI2OCwxNiAr
MjY5LDE2IEBAIGludGVyZmFjZSBEb2N1bWVudCA6IE5vZGUgewogICBIVE1MQ29sbGVjdGlvbiBn
ZXRFbGVtZW50c0J5VGFnTmFtZU5TKERPTVN0cmluZz8gbmFtZXNwYWNlLCBET01TdHJpbmcgbG9j
YWxOYW1lKTsKICAgSFRNTENvbGxlY3Rpb24gZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShET01TdHJp
bmcgY2xhc3NOYW1lcyk7CiAKLSAgW05ld09iamVjdF0gRWxlbWVudCBjcmVhdGVFbGVtZW50KERP
TVN0cmluZyBsb2NhbE5hbWUsIG9wdGlvbmFsIChET01TdHJpbmcgb3IgRWxlbWVudENyZWF0aW9u
T3B0aW9ucykgb3B0aW9ucyk7Ci0gIFtOZXdPYmplY3RdIEVsZW1lbnQgY3JlYXRlRWxlbWVudE5T
KERPTVN0cmluZz8gbmFtZXNwYWNlLCBET01TdHJpbmcgcXVhbGlmaWVkTmFtZSwgb3B0aW9uYWwg
KERPTVN0cmluZyBvciBFbGVtZW50Q3JlYXRpb25PcHRpb25zKSBvcHRpb25zKTsKKyAgW0NFUmVh
Y3Rpb25zLCBOZXdPYmplY3RdIEVsZW1lbnQgY3JlYXRlRWxlbWVudChET01TdHJpbmcgbG9jYWxO
YW1lLCBvcHRpb25hbCAoRE9NU3RyaW5nIG9yIEVsZW1lbnRDcmVhdGlvbk9wdGlvbnMpIG9wdGlv
bnMgPSB7fSk7CisgIFtDRVJlYWN0aW9ucywgTmV3T2JqZWN0XSBFbGVtZW50IGNyZWF0ZUVsZW1l
bnROUyhET01TdHJpbmc/IG5hbWVzcGFjZSwgRE9NU3RyaW5nIHF1YWxpZmllZE5hbWUsIG9wdGlv
bmFsIChET01TdHJpbmcgb3IgRWxlbWVudENyZWF0aW9uT3B0aW9ucykgb3B0aW9ucyA9IHt9KTsK
ICAgW05ld09iamVjdF0gRG9jdW1lbnRGcmFnbWVudCBjcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7
CiAgIFtOZXdPYmplY3RdIFRleHQgY3JlYXRlVGV4dE5vZGUoRE9NU3RyaW5nIGRhdGEpOwogICBb
TmV3T2JqZWN0XSBDREFUQVNlY3Rpb24gY3JlYXRlQ0RBVEFTZWN0aW9uKERPTVN0cmluZyBkYXRh
KTsKICAgW05ld09iamVjdF0gQ29tbWVudCBjcmVhdGVDb21tZW50KERPTVN0cmluZyBkYXRhKTsK
ICAgW05ld09iamVjdF0gUHJvY2Vzc2luZ0luc3RydWN0aW9uIGNyZWF0ZVByb2Nlc3NpbmdJbnN0
cnVjdGlvbihET01TdHJpbmcgdGFyZ2V0LCBET01TdHJpbmcgZGF0YSk7CiAKLSAgW05ld09iamVj
dF0gTm9kZSBpbXBvcnROb2RlKE5vZGUgbm9kZSwgb3B0aW9uYWwgYm9vbGVhbiBkZWVwID0gZmFs
c2UpOwotICBOb2RlIGFkb3B0Tm9kZShOb2RlIG5vZGUpOworICBbQ0VSZWFjdGlvbnMsIE5ld09i
amVjdF0gTm9kZSBpbXBvcnROb2RlKE5vZGUgbm9kZSwgb3B0aW9uYWwgYm9vbGVhbiBkZWVwID0g
ZmFsc2UpOworICBbQ0VSZWFjdGlvbnNdIE5vZGUgYWRvcHROb2RlKE5vZGUgbm9kZSk7CiAKICAg
W05ld09iamVjdF0gQXR0ciBjcmVhdGVBdHRyaWJ1dGUoRE9NU3RyaW5nIGxvY2FsTmFtZSk7CiAg
IFtOZXdPYmplY3RdIEF0dHIgY3JlYXRlQXR0cmlidXRlTlMoRE9NU3RyaW5nPyBuYW1lc3BhY2Us
IERPTVN0cmluZyBxdWFsaWZpZWROYW1lKTsKQEAgLTI5OCw3ICsyOTksNiBAQCBkaWN0aW9uYXJ5
IEVsZW1lbnRDcmVhdGlvbk9wdGlvbnMgewogICBET01TdHJpbmcgaXM7CiB9OwogCi0KIFtFeHBv
c2VkPVdpbmRvd10KIGludGVyZmFjZSBET01JbXBsZW1lbnRhdGlvbiB7CiAgIFtOZXdPYmplY3Rd
IERvY3VtZW50VHlwZSBjcmVhdGVEb2N1bWVudFR5cGUoRE9NU3RyaW5nIHF1YWxpZmllZE5hbWUs
IERPTVN0cmluZyBwdWJsaWNJZCwgRE9NU3RyaW5nIHN5c3RlbUlkKTsKQEAgLTMwOCw3ICszMDgs
NiBAQCBpbnRlcmZhY2UgRE9NSW1wbGVtZW50YXRpb24gewogICBib29sZWFuIGhhc0ZlYXR1cmUo
KTsgLy8gdXNlbGVzczsgYWx3YXlzIHJldHVybnMgdHJ1ZQogfTsKIAotCiBbRXhwb3NlZD1XaW5k
b3ddCiBpbnRlcmZhY2UgRG9jdW1lbnRUeXBlIDogTm9kZSB7CiAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBET01TdHJpbmcgbmFtZTsKQEAgLTMxNiwxMyArMzE1LDExIEBAIGludGVyZmFjZSBEb2N1bWVu
dFR5cGUgOiBOb2RlIHsKICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBzeXN0ZW1JZDsK
IH07CiAKLQogW0NvbnN0cnVjdG9yLAogIEV4cG9zZWQ9V2luZG93XQogaW50ZXJmYWNlIERvY3Vt
ZW50RnJhZ21lbnQgOiBOb2RlIHsKIH07CiAKLQogW0V4cG9zZWQ9V2luZG93XQogaW50ZXJmYWNl
IFNoYWRvd1Jvb3QgOiBEb2N1bWVudEZyYWdtZW50IHsKICAgcmVhZG9ubHkgYXR0cmlidXRlIFNo
YWRvd1Jvb3RNb2RlIG1vZGU7CkBAIC0zMzEsNyArMzI4LDYgQEAgaW50ZXJmYWNlIFNoYWRvd1Jv
b3QgOiBEb2N1bWVudEZyYWdtZW50IHsKIAogZW51bSBTaGFkb3dSb290TW9kZSB7ICJvcGVuIiwg
ImNsb3NlZCIgfTsKIAotCiBbRXhwb3NlZD1XaW5kb3ddCiBpbnRlcmZhY2UgRWxlbWVudCA6IE5v
ZGUgewogICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nPyBuYW1lc3BhY2VVUkk7CkBAIC0z
MzksMjggKzMzNSwyOSBAQCBpbnRlcmZhY2UgRWxlbWVudCA6IE5vZGUgewogICByZWFkb25seSBh
dHRyaWJ1dGUgRE9NU3RyaW5nIGxvY2FsTmFtZTsKICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0
cmluZyB0YWdOYW1lOwogCi0gICAgICAgICAgIGF0dHJpYnV0ZSBET01TdHJpbmcgaWQ7Ci0gICAg
ICAgICAgIGF0dHJpYnV0ZSBET01TdHJpbmcgY2xhc3NOYW1lOworICBbQ0VSZWFjdGlvbnNdIGF0
dHJpYnV0ZSBET01TdHJpbmcgaWQ7CisgIFtDRVJlYWN0aW9uc10gYXR0cmlidXRlIERPTVN0cmlu
ZyBjbGFzc05hbWU7CiAgIFtTYW1lT2JqZWN0LCBQdXRGb3J3YXJkcz12YWx1ZV0gcmVhZG9ubHkg
YXR0cmlidXRlIERPTVRva2VuTGlzdCBjbGFzc0xpc3Q7Ci0gIFtVbnNjb3BhYmxlXSBhdHRyaWJ1
dGUgRE9NU3RyaW5nIHNsb3Q7CisgIFtDRVJlYWN0aW9ucywgVW5zY29wYWJsZV0gYXR0cmlidXRl
IERPTVN0cmluZyBzbG90OwogCiAgIGJvb2xlYW4gaGFzQXR0cmlidXRlcygpOwogICBbU2FtZU9i
amVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIE5hbWVkTm9kZU1hcCBhdHRyaWJ1dGVzOwogICBzZXF1
ZW5jZTxET01TdHJpbmc+IGdldEF0dHJpYnV0ZU5hbWVzKCk7CiAgIERPTVN0cmluZz8gZ2V0QXR0
cmlidXRlKERPTVN0cmluZyBxdWFsaWZpZWROYW1lKTsKICAgRE9NU3RyaW5nPyBnZXRBdHRyaWJ1
dGVOUyhET01TdHJpbmc/IG5hbWVzcGFjZSwgRE9NU3RyaW5nIGxvY2FsTmFtZSk7Ci0gIHZvaWQg
c2V0QXR0cmlidXRlKERPTVN0cmluZyBxdWFsaWZpZWROYW1lLCBET01TdHJpbmcgdmFsdWUpOwot
ICB2b2lkIHNldEF0dHJpYnV0ZU5TKERPTVN0cmluZz8gbmFtZXNwYWNlLCBET01TdHJpbmcgcXVh
bGlmaWVkTmFtZSwgRE9NU3RyaW5nIHZhbHVlKTsKLSAgdm9pZCByZW1vdmVBdHRyaWJ1dGUoRE9N
U3RyaW5nIHF1YWxpZmllZE5hbWUpOwotICB2b2lkIHJlbW92ZUF0dHJpYnV0ZU5TKERPTVN0cmlu
Zz8gbmFtZXNwYWNlLCBET01TdHJpbmcgbG9jYWxOYW1lKTsKKyAgW0NFUmVhY3Rpb25zXSB2b2lk
IHNldEF0dHJpYnV0ZShET01TdHJpbmcgcXVhbGlmaWVkTmFtZSwgRE9NU3RyaW5nIHZhbHVlKTsK
KyAgW0NFUmVhY3Rpb25zXSB2b2lkIHNldEF0dHJpYnV0ZU5TKERPTVN0cmluZz8gbmFtZXNwYWNl
LCBET01TdHJpbmcgcXVhbGlmaWVkTmFtZSwgRE9NU3RyaW5nIHZhbHVlKTsKKyAgW0NFUmVhY3Rp
b25zXSB2b2lkIHJlbW92ZUF0dHJpYnV0ZShET01TdHJpbmcgcXVhbGlmaWVkTmFtZSk7CisgIFtD
RVJlYWN0aW9uc10gdm9pZCByZW1vdmVBdHRyaWJ1dGVOUyhET01TdHJpbmc/IG5hbWVzcGFjZSwg
RE9NU3RyaW5nIGxvY2FsTmFtZSk7CisgIFtDRVJlYWN0aW9uc10gYm9vbGVhbiB0b2dnbGVBdHRy
aWJ1dGUoRE9NU3RyaW5nIHF1YWxpZmllZE5hbWUsIG9wdGlvbmFsIGJvb2xlYW4gZm9yY2UpOwog
ICBib29sZWFuIGhhc0F0dHJpYnV0ZShET01TdHJpbmcgcXVhbGlmaWVkTmFtZSk7CiAgIGJvb2xl
YW4gaGFzQXR0cmlidXRlTlMoRE9NU3RyaW5nPyBuYW1lc3BhY2UsIERPTVN0cmluZyBsb2NhbE5h
bWUpOwogCiAgIEF0dHI/IGdldEF0dHJpYnV0ZU5vZGUoRE9NU3RyaW5nIHF1YWxpZmllZE5hbWUp
OwogICBBdHRyPyBnZXRBdHRyaWJ1dGVOb2RlTlMoRE9NU3RyaW5nPyBuYW1lc3BhY2UsIERPTVN0
cmluZyBsb2NhbE5hbWUpOwotICBBdHRyPyBzZXRBdHRyaWJ1dGVOb2RlKEF0dHIgYXR0cik7Ci0g
IEF0dHI/IHNldEF0dHJpYnV0ZU5vZGVOUyhBdHRyIGF0dHIpOwotICBBdHRyIHJlbW92ZUF0dHJp
YnV0ZU5vZGUoQXR0ciBhdHRyKTsKKyAgW0NFUmVhY3Rpb25zXSBBdHRyPyBzZXRBdHRyaWJ1dGVO
b2RlKEF0dHIgYXR0cik7CisgIFtDRVJlYWN0aW9uc10gQXR0cj8gc2V0QXR0cmlidXRlTm9kZU5T
KEF0dHIgYXR0cik7CisgIFtDRVJlYWN0aW9uc10gQXR0ciByZW1vdmVBdHRyaWJ1dGVOb2RlKEF0
dHIgYXR0cik7CiAKICAgU2hhZG93Um9vdCBhdHRhY2hTaGFkb3coU2hhZG93Um9vdEluaXQgaW5p
dCk7CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTaGFkb3dSb290PyBzaGFkb3dSb290OwpAQCAtMzcz
LDQxICszNzAsMzkgQEAgaW50ZXJmYWNlIEVsZW1lbnQgOiBOb2RlIHsKICAgSFRNTENvbGxlY3Rp
b24gZ2V0RWxlbWVudHNCeVRhZ05hbWVOUyhET01TdHJpbmc/IG5hbWVzcGFjZSwgRE9NU3RyaW5n
IGxvY2FsTmFtZSk7CiAgIEhUTUxDb2xsZWN0aW9uIGdldEVsZW1lbnRzQnlDbGFzc05hbWUoRE9N
U3RyaW5nIGNsYXNzTmFtZXMpOwogCi0gIEVsZW1lbnQ/IGluc2VydEFkamFjZW50RWxlbWVudChE
T01TdHJpbmcgd2hlcmUsIEVsZW1lbnQgZWxlbWVudCk7IC8vIGhpc3RvcmljYWwKKyAgW0NFUmVh
Y3Rpb25zXSBFbGVtZW50PyBpbnNlcnRBZGphY2VudEVsZW1lbnQoRE9NU3RyaW5nIHdoZXJlLCBF
bGVtZW50IGVsZW1lbnQpOyAvLyBoaXN0b3JpY2FsCiAgIHZvaWQgaW5zZXJ0QWRqYWNlbnRUZXh0
KERPTVN0cmluZyB3aGVyZSwgRE9NU3RyaW5nIGRhdGEpOyAvLyBoaXN0b3JpY2FsCiB9OwogCiBk
aWN0aW9uYXJ5IFNoYWRvd1Jvb3RJbml0IHsKLS8vICByZXF1aXJlZCBTaGFkb3dSb290TW9kZSBt
b2RlOworICByZXF1aXJlZCBTaGFkb3dSb290TW9kZSBtb2RlOwogfTsKIAotCi1bRXhwb3NlZD1X
aW5kb3csIExlZ2FjeVVuZW51bWVyYWJsZU5hbWVkUHJvcGVydGllc10KK1tFeHBvc2VkPVdpbmRv
dywKKyBMZWdhY3lVbmVudW1lcmFibGVOYW1lZFByb3BlcnRpZXNdCiBpbnRlcmZhY2UgTmFtZWRO
b2RlTWFwIHsKICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbGVuZ3RoOwogICBn
ZXR0ZXIgQXR0cj8gaXRlbSh1bnNpZ25lZCBsb25nIGluZGV4KTsKICAgZ2V0dGVyIEF0dHI/IGdl
dE5hbWVkSXRlbShET01TdHJpbmcgcXVhbGlmaWVkTmFtZSk7CiAgIEF0dHI/IGdldE5hbWVkSXRl
bU5TKERPTVN0cmluZz8gbmFtZXNwYWNlLCBET01TdHJpbmcgbG9jYWxOYW1lKTsKLSAgQXR0cj8g
c2V0TmFtZWRJdGVtKEF0dHIgYXR0cik7Ci0gIEF0dHI/IHNldE5hbWVkSXRlbU5TKEF0dHIgYXR0
cik7Ci0gIEF0dHIgcmVtb3ZlTmFtZWRJdGVtKERPTVN0cmluZyBxdWFsaWZpZWROYW1lKTsKLSAg
QXR0ciByZW1vdmVOYW1lZEl0ZW1OUyhET01TdHJpbmc/IG5hbWVzcGFjZSwgRE9NU3RyaW5nIGxv
Y2FsTmFtZSk7CisgIFtDRVJlYWN0aW9uc10gQXR0cj8gc2V0TmFtZWRJdGVtKEF0dHIgYXR0cik7
CisgIFtDRVJlYWN0aW9uc10gQXR0cj8gc2V0TmFtZWRJdGVtTlMoQXR0ciBhdHRyKTsKKyAgW0NF
UmVhY3Rpb25zXSBBdHRyIHJlbW92ZU5hbWVkSXRlbShET01TdHJpbmcgcXVhbGlmaWVkTmFtZSk7
CisgIFtDRVJlYWN0aW9uc10gQXR0ciByZW1vdmVOYW1lZEl0ZW1OUyhET01TdHJpbmc/IG5hbWVz
cGFjZSwgRE9NU3RyaW5nIGxvY2FsTmFtZSk7CiB9OwogCi0KIFtFeHBvc2VkPVdpbmRvd10KIGlu
dGVyZmFjZSBBdHRyIDogTm9kZSB7CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmc/IG5h
bWVzcGFjZVVSSTsKICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZz8gcHJlZml4OwogICBy
ZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGxvY2FsTmFtZTsKICAgcmVhZG9ubHkgYXR0cmli
dXRlIERPTVN0cmluZyBuYW1lOwotICAgICAgICAgICBhdHRyaWJ1dGUgRE9NU3RyaW5nIHZhbHVl
OworICBbQ0VSZWFjdGlvbnNdIGF0dHJpYnV0ZSBET01TdHJpbmcgdmFsdWU7CiAKICAgcmVhZG9u
bHkgYXR0cmlidXRlIEVsZW1lbnQ/IG93bmVyRWxlbWVudDsKIAogICByZWFkb25seSBhdHRyaWJ1
dGUgYm9vbGVhbiBzcGVjaWZpZWQ7IC8vIHVzZWxlc3M7IGFsd2F5cyByZXR1cm5zIHRydWUKIH07
Ci0KIFtFeHBvc2VkPVdpbmRvd10KIGludGVyZmFjZSBDaGFyYWN0ZXJEYXRhIDogTm9kZSB7CiAg
IGF0dHJpYnV0ZSBbVHJlYXROdWxsQXM9RW1wdHlTdHJpbmddIERPTVN0cmluZyBkYXRhOwpAQCAt
NDE5LDI5ICs0MTQsMjQgQEAgaW50ZXJmYWNlIENoYXJhY3RlckRhdGEgOiBOb2RlIHsKICAgdm9p
ZCByZXBsYWNlRGF0YSh1bnNpZ25lZCBsb25nIG9mZnNldCwgdW5zaWduZWQgbG9uZyBjb3VudCwg
RE9NU3RyaW5nIGRhdGEpOwogfTsKIAotCiBbQ29uc3RydWN0b3Iob3B0aW9uYWwgRE9NU3RyaW5n
IGRhdGEgPSAiIiksCiAgRXhwb3NlZD1XaW5kb3ddCiBpbnRlcmZhY2UgVGV4dCA6IENoYXJhY3Rl
ckRhdGEgewogICBbTmV3T2JqZWN0XSBUZXh0IHNwbGl0VGV4dCh1bnNpZ25lZCBsb25nIG9mZnNl
dCk7CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgd2hvbGVUZXh0OwogfTsKLQogW0V4
cG9zZWQ9V2luZG93XQogaW50ZXJmYWNlIENEQVRBU2VjdGlvbiA6IFRleHQgewogfTsKLQogW0V4
cG9zZWQ9V2luZG93XQogaW50ZXJmYWNlIFByb2Nlc3NpbmdJbnN0cnVjdGlvbiA6IENoYXJhY3Rl
ckRhdGEgewogICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHRhcmdldDsKIH07Ci0KIFtD
b25zdHJ1Y3RvcihvcHRpb25hbCBET01TdHJpbmcgZGF0YSA9ICIiKSwKICBFeHBvc2VkPVdpbmRv
d10KIGludGVyZmFjZSBDb21tZW50IDogQ2hhcmFjdGVyRGF0YSB7CiB9OwogCi0KIFtFeHBvc2Vk
PVdpbmRvd10KIGludGVyZmFjZSBBYnN0cmFjdFJhbmdlIHsKICAgcmVhZG9ubHkgYXR0cmlidXRl
IE5vZGUgc3RhcnRDb250YWluZXI7CkBAIC00NTEsNyArNDQxLDE1IEBAIGludGVyZmFjZSBBYnN0
cmFjdFJhbmdlIHsKICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gY29sbGFwc2VkOwogfTsK
IAotW0V4cG9zZWQ9V2luZG93XQorZGljdGlvbmFyeSBTdGF0aWNSYW5nZUluaXQgeworICByZXF1
aXJlZCBOb2RlIHN0YXJ0Q29udGFpbmVyOworICByZXF1aXJlZCB1bnNpZ25lZCBsb25nIHN0YXJ0
T2Zmc2V0OworICByZXF1aXJlZCBOb2RlIGVuZENvbnRhaW5lcjsKKyAgcmVxdWlyZWQgdW5zaWdu
ZWQgbG9uZyBlbmRPZmZzZXQ7Cit9OworCitbQ29uc3RydWN0b3IoU3RhdGljUmFuZ2VJbml0IGlu
aXQpLAorIEV4cG9zZWQ9V2luZG93XQogaW50ZXJmYWNlIFN0YXRpY1JhbmdlIDogQWJzdHJhY3RS
YW5nZSB7CiB9OwogCkBAIC00NzYsMTEgKzQ3NCwxMSBAQCBpbnRlcmZhY2UgUmFuZ2UgOiBBYnN0
cmFjdFJhbmdlIHsKICAgY29uc3QgdW5zaWduZWQgc2hvcnQgRU5EX1RPX1NUQVJUID0gMzsKICAg
c2hvcnQgY29tcGFyZUJvdW5kYXJ5UG9pbnRzKHVuc2lnbmVkIHNob3J0IGhvdywgUmFuZ2Ugc291
cmNlUmFuZ2UpOwogCi0gIHZvaWQgZGVsZXRlQ29udGVudHMoKTsKLSAgW05ld09iamVjdF0gRG9j
dW1lbnRGcmFnbWVudCBleHRyYWN0Q29udGVudHMoKTsKLSAgW05ld09iamVjdF0gRG9jdW1lbnRG
cmFnbWVudCBjbG9uZUNvbnRlbnRzKCk7Ci0gIHZvaWQgaW5zZXJ0Tm9kZShOb2RlIG5vZGUpOwot
ICB2b2lkIHN1cnJvdW5kQ29udGVudHMoTm9kZSBuZXdQYXJlbnQpOworICBbQ0VSZWFjdGlvbnNd
IHZvaWQgZGVsZXRlQ29udGVudHMoKTsKKyAgW0NFUmVhY3Rpb25zLCBOZXdPYmplY3RdIERvY3Vt
ZW50RnJhZ21lbnQgZXh0cmFjdENvbnRlbnRzKCk7CisgIFtDRVJlYWN0aW9ucywgTmV3T2JqZWN0
XSBEb2N1bWVudEZyYWdtZW50IGNsb25lQ29udGVudHMoKTsKKyAgW0NFUmVhY3Rpb25zXSB2b2lk
IGluc2VydE5vZGUoTm9kZSBub2RlKTsKKyAgW0NFUmVhY3Rpb25zXSB2b2lkIHN1cnJvdW5kQ29u
dGVudHMoTm9kZSBuZXdQYXJlbnQpOwogCiAgIFtOZXdPYmplY3RdIFJhbmdlIGNsb25lUmFuZ2Uo
KTsKICAgdm9pZCBkZXRhY2goKTsKQEAgLTQ5Myw3ICs0OTEsNiBAQCBpbnRlcmZhY2UgUmFuZ2Ug
OiBBYnN0cmFjdFJhbmdlIHsKICAgc3RyaW5naWZpZXI7CiB9OwogCi0KIFtFeHBvc2VkPVdpbmRv
d10KIGludGVyZmFjZSBOb2RlSXRlcmF0b3IgewogICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0
cmlidXRlIE5vZGUgcm9vdDsKQEAgLTUwOCw3ICs1MDUsNiBAQCBpbnRlcmZhY2UgTm9kZUl0ZXJh
dG9yIHsKICAgdm9pZCBkZXRhY2goKTsKIH07CiAKLQogW0V4cG9zZWQ9V2luZG93XQogaW50ZXJm
YWNlIFRyZWVXYWxrZXIgewogICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIE5vZGUg
cm9vdDsKQEAgLTUyNCw3ICs1MjAsNiBAQCBpbnRlcmZhY2UgVHJlZVdhbGtlciB7CiAgIE5vZGU/
IHByZXZpb3VzTm9kZSgpOwogICBOb2RlPyBuZXh0Tm9kZSgpOwogfTsKLQogW0V4cG9zZWQ9V2lu
ZG93XQogY2FsbGJhY2sgaW50ZXJmYWNlIE5vZGVGaWx0ZXIgewogICAvLyBDb25zdGFudHMgZm9y
IGFjY2VwdE5vZGUoKQpAQCAtNTM1LDcgKzUzMCw3IEBAIGNhbGxiYWNrIGludGVyZmFjZSBOb2Rl
RmlsdGVyIHsKICAgLy8gQ29uc3RhbnRzIGZvciB3aGF0VG9TaG93CiAgIGNvbnN0IHVuc2lnbmVk
IGxvbmcgU0hPV19BTEwgPSAweEZGRkZGRkZGOwogICBjb25zdCB1bnNpZ25lZCBsb25nIFNIT1df
RUxFTUVOVCA9IDB4MTsKLSAgY29uc3QgdW5zaWduZWQgbG9uZyBTSE9XX0FUVFJJQlVURSA9IDB4
MjsgLy8gaGlzdG9yaWNhbAorICBjb25zdCB1bnNpZ25lZCBsb25nIFNIT1dfQVRUUklCVVRFID0g
MHgyOwogICBjb25zdCB1bnNpZ25lZCBsb25nIFNIT1dfVEVYVCA9IDB4NDsKICAgY29uc3QgdW5z
aWduZWQgbG9uZyBTSE9XX0NEQVRBX1NFQ1RJT04gPSAweDg7CiAgIGNvbnN0IHVuc2lnbmVkIGxv
bmcgU0hPV19FTlRJVFlfUkVGRVJFTkNFID0gMHgxMDsgLy8gaGlzdG9yaWNhbApAQCAtNTUwLDcg
KzU0NSw3IEBAIGNhbGxiYWNrIGludGVyZmFjZSBOb2RlRmlsdGVyIHsKICAgdW5zaWduZWQgc2hv
cnQgYWNjZXB0Tm9kZShOb2RlIG5vZGUpOwogfTsKIAotCitbRXhwb3NlZD1XaW5kb3ddCiBpbnRl
cmZhY2UgRE9NVG9rZW5MaXN0IHsKICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcg
bGVuZ3RoOwogICBnZXR0ZXIgRE9NU3RyaW5nPyBpdGVtKHVuc2lnbmVkIGxvbmcgaW5kZXgpOwpA
QCAtNTYxLDUgKzU1Niw1MyBAQCBpbnRlcmZhY2UgRE9NVG9rZW5MaXN0IHsKICAgW0NFUmVhY3Rp
b25zXSBib29sZWFuIHJlcGxhY2UoRE9NU3RyaW5nIHRva2VuLCBET01TdHJpbmcgbmV3VG9rZW4p
OwogICBib29sZWFuIHN1cHBvcnRzKERPTVN0cmluZyB0b2tlbik7CiAgIFtDRVJlYWN0aW9uc10g
c3RyaW5naWZpZXIgYXR0cmlidXRlIERPTVN0cmluZyB2YWx1ZTsKLSAgLy8gIGl0ZXJhYmxlPERP
TVN0cmluZz47CisgIGl0ZXJhYmxlPERPTVN0cmluZz47Cit9OworCitbRXhwb3NlZD1XaW5kb3dd
CitpbnRlcmZhY2UgWFBhdGhSZXN1bHQgeworICBjb25zdCB1bnNpZ25lZCBzaG9ydCBBTllfVFlQ
RSA9IDA7CisgIGNvbnN0IHVuc2lnbmVkIHNob3J0IE5VTUJFUl9UWVBFID0gMTsKKyAgY29uc3Qg
dW5zaWduZWQgc2hvcnQgU1RSSU5HX1RZUEUgPSAyOworICBjb25zdCB1bnNpZ25lZCBzaG9ydCBC
T09MRUFOX1RZUEUgPSAzOworICBjb25zdCB1bnNpZ25lZCBzaG9ydCBVTk9SREVSRURfTk9ERV9J
VEVSQVRPUl9UWVBFID0gNDsKKyAgY29uc3QgdW5zaWduZWQgc2hvcnQgT1JERVJFRF9OT0RFX0lU
RVJBVE9SX1RZUEUgPSA1OworICBjb25zdCB1bnNpZ25lZCBzaG9ydCBVTk9SREVSRURfTk9ERV9T
TkFQU0hPVF9UWVBFID0gNjsKKyAgY29uc3QgdW5zaWduZWQgc2hvcnQgT1JERVJFRF9OT0RFX1NO
QVBTSE9UX1RZUEUgPSA3OworICBjb25zdCB1bnNpZ25lZCBzaG9ydCBBTllfVU5PUkRFUkVEX05P
REVfVFlQRSA9IDg7CisgIGNvbnN0IHVuc2lnbmVkIHNob3J0IEZJUlNUX09SREVSRURfTk9ERV9U
WVBFID0gOTsKKworICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgc2hvcnQgcmVzdWx0VHlw
ZTsKKyAgcmVhZG9ubHkgYXR0cmlidXRlIHVucmVzdHJpY3RlZCBkb3VibGUgbnVtYmVyVmFsdWU7
CisgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgc3RyaW5nVmFsdWU7CisgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBib29sZWFuIGJvb2xlYW5WYWx1ZTsKKyAgcmVhZG9ubHkgYXR0cmlidXRlIE5v
ZGU/IHNpbmdsZU5vZGVWYWx1ZTsKKyAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gaW52YWxp
ZEl0ZXJhdG9yU3RhdGU7CisgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIHNuYXBz
aG90TGVuZ3RoOworCisgIE5vZGU/IGl0ZXJhdGVOZXh0KCk7CisgIE5vZGU/IHNuYXBzaG90SXRl
bSh1bnNpZ25lZCBsb25nIGluZGV4KTsKK307CisKK1tFeHBvc2VkPVdpbmRvd10KK2ludGVyZmFj
ZSBYUGF0aEV4cHJlc3Npb24geworICAvLyBYUGF0aFJlc3VsdC5BTllfVFlQRSA9IDAKKyAgWFBh
dGhSZXN1bHQgZXZhbHVhdGUoTm9kZSBjb250ZXh0Tm9kZSwgb3B0aW9uYWwgdW5zaWduZWQgc2hv
cnQgdHlwZSA9IDAsIG9wdGlvbmFsIFhQYXRoUmVzdWx0PyByZXN1bHQgPSBudWxsKTsKIH07CisK
K2NhbGxiYWNrIGludGVyZmFjZSBYUGF0aE5TUmVzb2x2ZXIgeworICBET01TdHJpbmc/IGxvb2t1
cE5hbWVzcGFjZVVSSShET01TdHJpbmc/IHByZWZpeCk7Cit9OworCitpbnRlcmZhY2UgbWl4aW4g
WFBhdGhFdmFsdWF0b3JCYXNlIHsKKyAgW05ld09iamVjdF0gWFBhdGhFeHByZXNzaW9uIGNyZWF0
ZUV4cHJlc3Npb24oRE9NU3RyaW5nIGV4cHJlc3Npb24sIG9wdGlvbmFsIFhQYXRoTlNSZXNvbHZl
cj8gcmVzb2x2ZXIgPSBudWxsKTsKKyAgWFBhdGhOU1Jlc29sdmVyIGNyZWF0ZU5TUmVzb2x2ZXIo
Tm9kZSBub2RlUmVzb2x2ZXIpOworICAvLyBYUGF0aFJlc3VsdC5BTllfVFlQRSA9IDAKKyAgWFBh
dGhSZXN1bHQgZXZhbHVhdGUoRE9NU3RyaW5nIGV4cHJlc3Npb24sIE5vZGUgY29udGV4dE5vZGUs
IG9wdGlvbmFsIFhQYXRoTlNSZXNvbHZlcj8gcmVzb2x2ZXIgPSBudWxsLCBvcHRpb25hbCB1bnNp
Z25lZCBzaG9ydCB0eXBlID0gMCwgb3B0aW9uYWwgWFBhdGhSZXN1bHQ/IHJlc3VsdCA9IG51bGwp
OworfTsKK0RvY3VtZW50IGluY2x1ZGVzIFhQYXRoRXZhbHVhdG9yQmFzZTsKKworW0V4cG9zZWQ9
V2luZG93LCBDb25zdHJ1Y3Rvcl0KK2ludGVyZmFjZSBYUGF0aEV2YWx1YXRvciB7fTsKKworWFBh
dGhFdmFsdWF0b3IgaW5jbHVkZXMgWFBhdGhFdmFsdWF0b3JCYXNlOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbnRlcmZhY2VzL2h0bWwu
aWRsIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbnRlcmZh
Y2VzL2h0bWwuaWRsCmluZGV4IDQ5MzQ4YTcyM2IzNTkzNTFhZmZiODE0NmYwMGEwMGJiNGU2YTMx
OTkuLmQ4NTZjZDU3OGFhMGEwZDE1ZjA5ZDBjOTViZWJmNDhiMGY5NWMwZDYgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW50ZXJmYWNlcy9o
dG1sLmlkbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ludGVyZmFjZXMvaHRtbC5pZGwKQEAgLTEsOCArMSwxMyBAQAorLy8gR0VORVJBVEVEIENPTlRF
TlQgLSBETyBOT1QgRURJVAorLy8gQ29udGVudCB3YXMgYXV0b21hdGljYWxseSBleHRyYWN0ZWQg
YnkgUmVmZnkgaW50byByZWZmeS1yZXBvcnRzCisvLyAoaHR0cHM6Ly9naXRodWIuY29tL3RpZG91
c3QvcmVmZnktcmVwb3J0cykKKy8vIFNvdXJjZTogSFRNTCBTdGFuZGFyZCAoaHR0cHM6Ly9odG1s
LnNwZWMud2hhdHdnLm9yZy8pCisKIFtFeHBvc2VkPVdpbmRvdywKICBMZWdhY3lVbmVudW1lcmFi
bGVOYW1lZFByb3BlcnRpZXNdCiBpbnRlcmZhY2UgSFRNTEFsbENvbGxlY3Rpb24gewogICByZWFk
b25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsZW5ndGg7Ci0gIGdldHRlciBFbGVtZW50PyAo
dW5zaWduZWQgbG9uZyBpbmRleCk7CisgIGdldHRlciBFbGVtZW50ICh1bnNpZ25lZCBsb25nIGlu
ZGV4KTsKICAgZ2V0dGVyIChIVE1MQ29sbGVjdGlvbiBvciBFbGVtZW50KT8gbmFtZWRJdGVtKERP
TVN0cmluZyBuYW1lKTsKICAgKEhUTUxDb2xsZWN0aW9uIG9yIEVsZW1lbnQpPyBpdGVtKG9wdGlv
bmFsIERPTVN0cmluZyBuYW1lT3JJbmRleCk7CiAKQEAgLTE1LDYgKzIwLDcgQEAgaW50ZXJmYWNl
IEhUTUxGb3JtQ29udHJvbHNDb2xsZWN0aW9uIDogSFRNTENvbGxlY3Rpb24gewogICBnZXR0ZXIg
KFJhZGlvTm9kZUxpc3Qgb3IgRWxlbWVudCk/IG5hbWVkSXRlbShET01TdHJpbmcgbmFtZSk7IC8v
IHNoYWRvd3MgaW5oZXJpdGVkIG5hbWVkSXRlbSgpCiB9OwogCitbRXhwb3NlZD1XaW5kb3ddCiBp
bnRlcmZhY2UgUmFkaW9Ob2RlTGlzdCA6IE5vZGVMaXN0IHsKICAgYXR0cmlidXRlIERPTVN0cmlu
ZyB2YWx1ZTsKIH07CkBAIC02NSwxNSArNzEsMTQgQEAgcGFydGlhbCBpbnRlcmZhY2UgRG9jdW1l
bnQgewogICByZWFkb25seSBhdHRyaWJ1dGUgSFRNTE9yU1ZHU2NyaXB0RWxlbWVudD8gY3VycmVu
dFNjcmlwdDsgLy8gY2xhc3NpYyBzY3JpcHRzIGluIGEgZG9jdW1lbnQgdHJlZSBvbmx5CiAKICAg
Ly8gZHluYW1pYyBtYXJrdXAgaW5zZXJ0aW9uCi0gIFtDRVJlYWN0aW9uc10gRG9jdW1lbnQgb3Bl
bihvcHRpb25hbCBET01TdHJpbmcgdHlwZSA9ICJ0ZXh0L2h0bWwiLCBvcHRpb25hbCBET01TdHJp
bmcgcmVwbGFjZSA9ICIiKTsKLSAgV2luZG93UHJveHkgb3BlbihVU1ZTdHJpbmcgdXJsLCBET01T
dHJpbmcgbmFtZSwgRE9NU3RyaW5nIGZlYXR1cmVzKTsKKyAgW0NFUmVhY3Rpb25zXSBEb2N1bWVu
dCBvcGVuKG9wdGlvbmFsIERPTVN0cmluZyB1bnVzZWQxLCBvcHRpb25hbCBET01TdHJpbmcgdW51
c2VkMik7IC8vIGJvdGggYXJndW1lbnRzIGFyZSBpZ25vcmVkCisgIFdpbmRvd1Byb3h5PyBvcGVu
KFVTVlN0cmluZyB1cmwsIERPTVN0cmluZyBuYW1lLCBET01TdHJpbmcgZmVhdHVyZXMpOwogICBb
Q0VSZWFjdGlvbnNdIHZvaWQgY2xvc2UoKTsKICAgW0NFUmVhY3Rpb25zXSB2b2lkIHdyaXRlKERP
TVN0cmluZy4uLiB0ZXh0KTsKICAgW0NFUmVhY3Rpb25zXSB2b2lkIHdyaXRlbG4oRE9NU3RyaW5n
Li4uIHRleHQpOwogCiAgIC8vIHVzZXIgaW50ZXJhY3Rpb24KICAgcmVhZG9ubHkgYXR0cmlidXRl
IFdpbmRvd1Byb3h5PyBkZWZhdWx0VmlldzsKLSAgcmVhZG9ubHkgYXR0cmlidXRlIEVsZW1lbnQ/
IGFjdGl2ZUVsZW1lbnQ7CiAgIGJvb2xlYW4gaGFzRm9jdXMoKTsKICAgW0NFUmVhY3Rpb25zXSBh
dHRyaWJ1dGUgRE9NU3RyaW5nIGRlc2lnbk1vZGU7CiAgIFtDRVJlYWN0aW9uc10gYm9vbGVhbiBl
eGVjQ29tbWFuZChET01TdHJpbmcgY29tbWFuZElkLCBvcHRpb25hbCBib29sZWFuIHNob3dVSSA9
IGZhbHNlLCBvcHRpb25hbCBET01TdHJpbmcgdmFsdWUgPSAiIik7CkBAIC04NSwxMCArOTAsMTYg
QEAgcGFydGlhbCBpbnRlcmZhY2UgRG9jdW1lbnQgewogCiAgIC8vIHNwZWNpYWwgZXZlbnQgaGFu
ZGxlciBJREwgYXR0cmlidXRlcyB0aGF0IG9ubHkgYXBwbHkgdG8gRG9jdW1lbnQgb2JqZWN0cwog
ICBbTGVuaWVudFRoaXNdIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25yZWFkeXN0YXRlY2hhbmdl
OworCisgIC8vIGFsc28gaGFzIG9ic29sZXRlIG1lbWJlcnMKIH07CiBEb2N1bWVudCBpbmNsdWRl
cyBHbG9iYWxFdmVudEhhbmRsZXJzOwogRG9jdW1lbnQgaW5jbHVkZXMgRG9jdW1lbnRBbmRFbGVt
ZW50RXZlbnRIYW5kbGVyczsKIAorcGFydGlhbCBpbnRlcmZhY2UgbWl4aW4gRG9jdW1lbnRPclNo
YWRvd1Jvb3QgeworICByZWFkb25seSBhdHRyaWJ1dGUgRWxlbWVudD8gYWN0aXZlRWxlbWVudDsK
K307CisKIFtFeHBvc2VkPVdpbmRvdywKICBIVE1MQ29uc3RydWN0b3JdCiBpbnRlcmZhY2UgSFRN
TEVsZW1lbnQgOiBFbGVtZW50IHsKQEAgLTk3LDMzICsxMDgsNDAgQEAgaW50ZXJmYWNlIEhUTUxF
bGVtZW50IDogRWxlbWVudCB7CiAgIFtDRVJlYWN0aW9uc10gYXR0cmlidXRlIERPTVN0cmluZyBs
YW5nOwogICBbQ0VSZWFjdGlvbnNdIGF0dHJpYnV0ZSBib29sZWFuIHRyYW5zbGF0ZTsKICAgW0NF
UmVhY3Rpb25zXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGRpcjsKLSAgW1NhbWVPYmplY3RdIHJlYWRv
bmx5IGF0dHJpYnV0ZSBET01TdHJpbmdNYXAgZGF0YXNldDsKIAogICAvLyB1c2VyIGludGVyYWN0
aW9uCiAgIFtDRVJlYWN0aW9uc10gYXR0cmlidXRlIGJvb2xlYW4gaGlkZGVuOwogICB2b2lkIGNs
aWNrKCk7Ci0gIFtDRVJlYWN0aW9uc10gYXR0cmlidXRlIGxvbmcgdGFiSW5kZXg7Ci0gIHZvaWQg
Zm9jdXMob3B0aW9uYWwgRm9jdXNPcHRpb25zIG9wdGlvbnMpOwotICB2b2lkIGJsdXIoKTsKICAg
W0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGFjY2Vzc0tleTsKICAgcmVhZG9ubHkg
YXR0cmlidXRlIERPTVN0cmluZyBhY2Nlc3NLZXlMYWJlbDsKICAgW0NFUmVhY3Rpb25zXSBhdHRy
aWJ1dGUgYm9vbGVhbiBkcmFnZ2FibGU7CiAgIFtDRVJlYWN0aW9uc10gYXR0cmlidXRlIGJvb2xl
YW4gc3BlbGxjaGVjazsKKyAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGF1dG9j
YXBpdGFsaXplOwogCiAgIFtDRVJlYWN0aW9uc10gYXR0cmlidXRlIFtUcmVhdE51bGxBcz1FbXB0
eVN0cmluZ10gRE9NU3RyaW5nIGlubmVyVGV4dDsKLX07CiAKLWRpY3Rpb25hcnkgRm9jdXNPcHRp
b25zIHsKLSAgYm9vbGVhbiBwcmV2ZW50U2Nyb2xsID0gZmFsc2U7CisgIEVsZW1lbnRJbnRlcm5h
bHMgYXR0YWNoSW50ZXJuYWxzKCk7CiB9OwogCiBIVE1MRWxlbWVudCBpbmNsdWRlcyBHbG9iYWxF
dmVudEhhbmRsZXJzOwogSFRNTEVsZW1lbnQgaW5jbHVkZXMgRG9jdW1lbnRBbmRFbGVtZW50RXZl
bnRIYW5kbGVyczsKIEhUTUxFbGVtZW50IGluY2x1ZGVzIEVsZW1lbnRDb250ZW50RWRpdGFibGU7
CitIVE1MRWxlbWVudCBpbmNsdWRlcyBIVE1MT3JTVkdFbGVtZW50OwogCiAvLyBOb3RlOiBpbnRl
bnRpb25hbGx5IG5vdCBbSFRNTENvbnN0cnVjdG9yXQorW0V4cG9zZWQ9V2luZG93XQogaW50ZXJm
YWNlIEhUTUxVbmtub3duRWxlbWVudCA6IEhUTUxFbGVtZW50IHsgfTsKIAoraW50ZXJmYWNlIG1p
eGluIEhUTUxPclNWR0VsZW1lbnQgeworICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRl
IERPTVN0cmluZ01hcCBkYXRhc2V0OworICBhdHRyaWJ1dGUgRE9NU3RyaW5nIG5vbmNlOyAvLyBp
bnRlbnRpb25hbGx5IG5vIFtDRVJlYWN0aW9uc10KKworICBbQ0VSZWFjdGlvbnNdIGF0dHJpYnV0
ZSBib29sZWFuIGF1dG9mb2N1czsKKyAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgbG9uZyB0YWJJ
bmRleDsKKyAgdm9pZCBmb2N1cyhvcHRpb25hbCBGb2N1c09wdGlvbnMgb3B0aW9ucyA9IHt9KTsK
KyAgdm9pZCBibHVyKCk7Cit9OworCiBbRXhwb3NlZD1XaW5kb3csCiAgT3ZlcnJpZGVCdWlsdGlu
c10KIGludGVyZmFjZSBET01TdHJpbmdNYXAgewpAQCAtMTY0LDE0ICsxODIsMTMgQEAgaW50ZXJm
YWNlIEhUTUxMaW5rRWxlbWVudCA6IEhUTUxFbGVtZW50IHsKICAgW0NFUmVhY3Rpb25zXSBhdHRy
aWJ1dGUgRE9NU3RyaW5nIGFzOyAvLyAoZGVmYXVsdCAiIikKICAgW1NhbWVPYmplY3QsIFB1dEZv
cndhcmRzPXZhbHVlXSByZWFkb25seSBhdHRyaWJ1dGUgRE9NVG9rZW5MaXN0IHJlbExpc3Q7CiAg
IFtDRVJlYWN0aW9uc10gYXR0cmlidXRlIERPTVN0cmluZyBtZWRpYTsKLSAgW0NFUmVhY3Rpb25z
XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIG5vbmNlOwogICBbQ0VSZWFjdGlvbnNdIGF0dHJpYnV0ZSBE
T01TdHJpbmcgaW50ZWdyaXR5OwogICBbQ0VSZWFjdGlvbnNdIGF0dHJpYnV0ZSBET01TdHJpbmcg
aHJlZmxhbmc7CiAgIFtDRVJlYWN0aW9uc10gYXR0cmlidXRlIERPTVN0cmluZyB0eXBlOwogICBb
U2FtZU9iamVjdCwgUHV0Rm9yd2FyZHM9dmFsdWVdIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01Ub2tl
bkxpc3Qgc2l6ZXM7CisgIFtDRVJlYWN0aW9uc10gYXR0cmlidXRlIFVTVlN0cmluZyBpbWFnZVNy
Y3NldDsKKyAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGltYWdlU2l6ZXM7CiAg
IFtDRVJlYWN0aW9uc10gYXR0cmlidXRlIERPTVN0cmluZyByZWZlcnJlclBvbGljeTsKLSAgW0NF
UmVhY3Rpb25zXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHdvcmtlclR5cGU7Ci0gIFtDRVJlYWN0aW9u
c10gYXR0cmlidXRlIERPTVN0cmluZyB1cGRhdGVWaWFDYWNoZTsKIAogICAvLyBhbHNvIGhhcyBv
YnNvbGV0ZSBtZW1iZXJzCiB9OwpAQCAtMTkxLDggKzIwOCw4IEBAIGludGVyZmFjZSBIVE1MTWV0
YUVsZW1lbnQgOiBIVE1MRWxlbWVudCB7CiAgSFRNTENvbnN0cnVjdG9yXQogaW50ZXJmYWNlIEhU
TUxTdHlsZUVsZW1lbnQgOiBIVE1MRWxlbWVudCB7CiAgIFtDRVJlYWN0aW9uc10gYXR0cmlidXRl
IERPTVN0cmluZyBtZWRpYTsKLSAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIG5v
bmNlOwotICBbQ0VSZWFjdGlvbnNdIGF0dHJpYnV0ZSBET01TdHJpbmcgdHlwZTsKKworICAvLyBh
bHNvIGhhcyBvYnNvbGV0ZSBtZW1iZXJzCiB9OwogSFRNTFN0eWxlRWxlbWVudCBpbmNsdWRlcyBM
aW5rU3R5bGU7CiAKQEAgLTM3MSw2ICszODgsNyBAQCBpbnRlcmZhY2UgSFRNTEltYWdlRWxlbWVu
dCA6IEhUTUxFbGVtZW50IHsKICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gY29tcGxldGU7
CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBVU1ZTdHJpbmcgY3VycmVudFNyYzsKICAgW0NFUmVhY3Rp
b25zXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHJlZmVycmVyUG9saWN5OworICBbQ0VSZWFjdGlvbnNd
IGF0dHJpYnV0ZSBET01TdHJpbmcgZGVjb2Rpbmc7CiAKICAgUHJvbWlzZTx2b2lkPiBkZWNvZGUo
KTsKIApAQCAtMzg0LDE2ICs0MDIsMTUgQEAgaW50ZXJmYWNlIEhUTUxJRnJhbWVFbGVtZW50IDog
SFRNTEVsZW1lbnQgewogICBbQ0VSZWFjdGlvbnNdIGF0dHJpYnV0ZSBET01TdHJpbmcgc3JjZG9j
OwogICBbQ0VSZWFjdGlvbnNdIGF0dHJpYnV0ZSBET01TdHJpbmcgbmFtZTsKICAgW1NhbWVPYmpl
Y3QsIFB1dEZvcndhcmRzPXZhbHVlXSByZWFkb25seSBhdHRyaWJ1dGUgRE9NVG9rZW5MaXN0IHNh
bmRib3g7CisgIFtDRVJlYWN0aW9uc10gYXR0cmlidXRlIERPTVN0cmluZyBhbGxvdzsKICAgW0NF
UmVhY3Rpb25zXSBhdHRyaWJ1dGUgYm9vbGVhbiBhbGxvd0Z1bGxzY3JlZW47CiAgIFtDRVJlYWN0
aW9uc10gYXR0cmlidXRlIGJvb2xlYW4gYWxsb3dQYXltZW50UmVxdWVzdDsKLSAgW0NFUmVhY3Rp
b25zXSBhdHRyaWJ1dGUgYm9vbGVhbiBhbGxvd1VzZXJNZWRpYTsKICAgW0NFUmVhY3Rpb25zXSBh
dHRyaWJ1dGUgRE9NU3RyaW5nIHdpZHRoOwogICBbQ0VSZWFjdGlvbnNdIGF0dHJpYnV0ZSBET01T
dHJpbmcgaGVpZ2h0OwogICBbQ0VSZWFjdGlvbnNdIGF0dHJpYnV0ZSBET01TdHJpbmcgcmVmZXJy
ZXJQb2xpY3k7CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBEb2N1bWVudD8gY29udGVudERvY3VtZW50
OwogICByZWFkb25seSBhdHRyaWJ1dGUgV2luZG93UHJveHk/IGNvbnRlbnRXaW5kb3c7CiAgIERv
Y3VtZW50PyBnZXRTVkdEb2N1bWVudCgpOwotICBbU2FtZU9iamVjdCwgUHV0Rm9yd2FyZHM9dmFs
dWVdIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01Ub2tlbkxpc3QgZGVsZWdhdGVTdGlja3lVc2VyQWN0
aXZhdGlvbjsKIAogICAvLyBhbHNvIGhhcyBvYnNvbGV0ZSBtZW1iZXJzCiB9OwpAQCAtNDE1LDcg
KzQzMiw2IEBAIGludGVyZmFjZSBIVE1MRW1iZWRFbGVtZW50IDogSFRNTEVsZW1lbnQgewogaW50
ZXJmYWNlIEhUTUxPYmplY3RFbGVtZW50IDogSFRNTEVsZW1lbnQgewogICBbQ0VSZWFjdGlvbnNd
IGF0dHJpYnV0ZSBVU1ZTdHJpbmcgZGF0YTsKICAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgRE9N
U3RyaW5nIHR5cGU7Ci0gIFtDRVJlYWN0aW9uc10gYXR0cmlidXRlIGJvb2xlYW4gdHlwZU11c3RN
YXRjaDsKICAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIG5hbWU7CiAgIFtDRVJl
YWN0aW9uc10gYXR0cmlidXRlIERPTVN0cmluZyB1c2VNYXA7CiAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBIVE1MRm9ybUVsZW1lbnQ/IGZvcm07CkBAIC02NTQsNyArNjcwLDcgQEAgaW50ZXJmYWNlIFRp
bWVSYW5nZXMgewogfTsKIAogW0V4cG9zZWQ9V2luZG93LAotIENvbnN0cnVjdG9yKERPTVN0cmlu
ZyB0eXBlLCBvcHRpb25hbCBUcmFja0V2ZW50SW5pdCBldmVudEluaXREaWN0KV0KKyBDb25zdHJ1
Y3RvcihET01TdHJpbmcgdHlwZSwgb3B0aW9uYWwgVHJhY2tFdmVudEluaXQgZXZlbnRJbml0RGlj
dCA9IHt9KV0KIGludGVyZmFjZSBUcmFja0V2ZW50IDogRXZlbnQgewogICByZWFkb25seSBhdHRy
aWJ1dGUgKFZpZGVvVHJhY2sgb3IgQXVkaW9UcmFjayBvciBUZXh0VHJhY2spPyB0cmFjazsKIH07
CkBAIC03MzAsNyArNzQ2LDcgQEAgaW50ZXJmYWNlIEhUTUxUYWJsZUNvbEVsZW1lbnQgOiBIVE1M
RWxlbWVudCB7CiAgSFRNTENvbnN0cnVjdG9yXQogaW50ZXJmYWNlIEhUTUxUYWJsZVNlY3Rpb25F
bGVtZW50IDogSFRNTEVsZW1lbnQgewogICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRl
IEhUTUxDb2xsZWN0aW9uIHJvd3M7Ci0gIEhUTUxFbGVtZW50IGluc2VydFJvdyhvcHRpb25hbCBs
b25nIGluZGV4ID0gLTEpOworICBIVE1MVGFibGVSb3dFbGVtZW50IGluc2VydFJvdyhvcHRpb25h
bCBsb25nIGluZGV4ID0gLTEpOwogICBbQ0VSZWFjdGlvbnNdIHZvaWQgZGVsZXRlUm93KGxvbmcg
aW5kZXgpOwogCiAgIC8vIGFsc28gaGFzIG9ic29sZXRlIG1lbWJlcnMKQEAgLTc3Niw2ICs3OTIs
OCBAQCBpbnRlcmZhY2UgSFRNTEZvcm1FbGVtZW50IDogSFRNTEVsZW1lbnQgewogICBbQ0VSZWFj
dGlvbnNdIGF0dHJpYnV0ZSBET01TdHJpbmcgbmFtZTsKICAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1
dGUgYm9vbGVhbiBub1ZhbGlkYXRlOwogICBbQ0VSZWFjdGlvbnNdIGF0dHJpYnV0ZSBET01TdHJp
bmcgdGFyZ2V0OworICBbQ0VSZWFjdGlvbnNdIGF0dHJpYnV0ZSBET01TdHJpbmcgcmVsOworICBb
U2FtZU9iamVjdCwgUHV0Rm9yd2FyZHM9dmFsdWVdIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01Ub2tl
bkxpc3QgcmVsTGlzdDsKIAogICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIEhUTUxG
b3JtQ29udHJvbHNDb2xsZWN0aW9uIGVsZW1lbnRzOwogICByZWFkb25seSBhdHRyaWJ1dGUgdW5z
aWduZWQgbG9uZyBsZW5ndGg7CkBAIC03ODMsNiArODAxLDcgQEAgaW50ZXJmYWNlIEhUTUxGb3Jt
RWxlbWVudCA6IEhUTUxFbGVtZW50IHsKICAgZ2V0dGVyIChSYWRpb05vZGVMaXN0IG9yIEVsZW1l
bnQpIChET01TdHJpbmcgbmFtZSk7CiAKICAgdm9pZCBzdWJtaXQoKTsKKyAgdm9pZCByZXF1ZXN0
U3VibWl0KG9wdGlvbmFsIEhUTUxFbGVtZW50IHN1Ym1pdHRlcik7CiAgIFtDRVJlYWN0aW9uc10g
dm9pZCByZXNldCgpOwogICBib29sZWFuIGNoZWNrVmFsaWRpdHkoKTsKICAgYm9vbGVhbiByZXBv
cnRWYWxpZGl0eSgpOwpAQCAtODAyLDcgKzgyMSw2IEBAIGludGVyZmFjZSBIVE1MSW5wdXRFbGVt
ZW50IDogSFRNTEVsZW1lbnQgewogICBbQ0VSZWFjdGlvbnNdIGF0dHJpYnV0ZSBET01TdHJpbmcg
YWNjZXB0OwogICBbQ0VSZWFjdGlvbnNdIGF0dHJpYnV0ZSBET01TdHJpbmcgYWx0OwogICBbQ0VS
ZWFjdGlvbnNdIGF0dHJpYnV0ZSBET01TdHJpbmcgYXV0b2NvbXBsZXRlOwotICBbQ0VSZWFjdGlv
bnNdIGF0dHJpYnV0ZSBib29sZWFuIGF1dG9mb2N1czsKICAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1
dGUgYm9vbGVhbiBkZWZhdWx0Q2hlY2tlZDsKICAgYXR0cmlidXRlIGJvb2xlYW4gY2hlY2tlZDsK
ICAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGRpck5hbWU7CkBAIC04NjMsNyAr
ODgxLDYgQEAgaW50ZXJmYWNlIEhUTUxJbnB1dEVsZW1lbnQgOiBIVE1MRWxlbWVudCB7CiBbRXhw
b3NlZD1XaW5kb3csCiAgSFRNTENvbnN0cnVjdG9yXQogaW50ZXJmYWNlIEhUTUxCdXR0b25FbGVt
ZW50IDogSFRNTEVsZW1lbnQgewotICBbQ0VSZWFjdGlvbnNdIGF0dHJpYnV0ZSBib29sZWFuIGF1
dG9mb2N1czsKICAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgYm9vbGVhbiBkaXNhYmxlZDsKICAg
cmVhZG9ubHkgYXR0cmlidXRlIEhUTUxGb3JtRWxlbWVudD8gZm9ybTsKICAgW0NFUmVhY3Rpb25z
XSBhdHRyaWJ1dGUgVVNWU3RyaW5nIGZvcm1BY3Rpb247CkBAIC04ODksNyArOTA2LDYgQEAgaW50
ZXJmYWNlIEhUTUxCdXR0b25FbGVtZW50IDogSFRNTEVsZW1lbnQgewogIEhUTUxDb25zdHJ1Y3Rv
cl0KIGludGVyZmFjZSBIVE1MU2VsZWN0RWxlbWVudCA6IEhUTUxFbGVtZW50IHsKICAgW0NFUmVh
Y3Rpb25zXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGF1dG9jb21wbGV0ZTsKLSAgW0NFUmVhY3Rpb25z
XSBhdHRyaWJ1dGUgYm9vbGVhbiBhdXRvZm9jdXM7CiAgIFtDRVJlYWN0aW9uc10gYXR0cmlidXRl
IGJvb2xlYW4gZGlzYWJsZWQ7CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBIVE1MRm9ybUVsZW1lbnQ/
IGZvcm07CiAgIFtDRVJlYWN0aW9uc10gYXR0cmlidXRlIGJvb2xlYW4gbXVsdGlwbGU7CkBAIC05
NTQsNyArOTcwLDYgQEAgaW50ZXJmYWNlIEhUTUxPcHRpb25FbGVtZW50IDogSFRNTEVsZW1lbnQg
ewogIEhUTUxDb25zdHJ1Y3Rvcl0KIGludGVyZmFjZSBIVE1MVGV4dEFyZWFFbGVtZW50IDogSFRN
TEVsZW1lbnQgewogICBbQ0VSZWFjdGlvbnNdIGF0dHJpYnV0ZSBET01TdHJpbmcgYXV0b2NvbXBs
ZXRlOwotICBbQ0VSZWFjdGlvbnNdIGF0dHJpYnV0ZSBib29sZWFuIGF1dG9mb2N1czsKICAgW0NF
UmVhY3Rpb25zXSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBjb2xzOwogICBbQ0VSZWFjdGlvbnNd
IGF0dHJpYnV0ZSBET01TdHJpbmcgZGlyTmFtZTsKICAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUg
Ym9vbGVhbiBkaXNhYmxlZDsKQEAgLTk3MCw3ICs5ODUsNyBAQCBpbnRlcmZhY2UgSFRNTFRleHRB
cmVhRWxlbWVudCA6IEhUTUxFbGVtZW50IHsKIAogICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3Ry
aW5nIHR5cGU7CiAgIFtDRVJlYWN0aW9uc10gYXR0cmlidXRlIERPTVN0cmluZyBkZWZhdWx0VmFs
dWU7Ci0gIFtDRVJlYWN0aW9uc10gYXR0cmlidXRlIFtUcmVhdE51bGxBcz1FbXB0eVN0cmluZ10g
RE9NU3RyaW5nIHZhbHVlOworICBhdHRyaWJ1dGUgW1RyZWF0TnVsbEFzPUVtcHR5U3RyaW5nXSBE
T01TdHJpbmcgdmFsdWU7CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIHRleHRM
ZW5ndGg7CiAKICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gd2lsbFZhbGlkYXRlOwpAQCAt
MTA4Miw2ICsxMDk3LDE2IEBAIGludGVyZmFjZSBWYWxpZGl0eVN0YXRlIHsKICAgcmVhZG9ubHkg
YXR0cmlidXRlIGJvb2xlYW4gdmFsaWQ7CiB9OwogCitbRXhwb3NlZD1XaW5kb3csCisgQ29uc3Ry
dWN0b3IoRE9NU3RyaW5nIHR5cGUsIG9wdGlvbmFsIEZvcm1EYXRhRXZlbnRJbml0IGV2ZW50SW5p
dERpY3QgPSB7fSldCitpbnRlcmZhY2UgRm9ybURhdGFFdmVudCA6IEV2ZW50IHsKKyAgcmVhZG9u
bHkgYXR0cmlidXRlIEZvcm1EYXRhIGZvcm1EYXRhOworfTsKKworZGljdGlvbmFyeSBGb3JtRGF0
YUV2ZW50SW5pdCA6IEV2ZW50SW5pdCB7CisgIHJlcXVpcmVkIEZvcm1EYXRhIGZvcm1EYXRhOwor
fTsKKwogW0V4cG9zZWQ9V2luZG93LAogIEhUTUxDb25zdHJ1Y3Rvcl0KIGludGVyZmFjZSBIVE1M
RGV0YWlsc0VsZW1lbnQgOiBIVE1MRWxlbWVudCB7CkBAIC0xMTA4LDkgKzExMzMsOCBAQCBpbnRl
cmZhY2UgSFRNTFNjcmlwdEVsZW1lbnQgOiBIVE1MRWxlbWVudCB7CiAgIFtDRVJlYWN0aW9uc10g
YXR0cmlidXRlIGJvb2xlYW4gZGVmZXI7CiAgIFtDRVJlYWN0aW9uc10gYXR0cmlidXRlIERPTVN0
cmluZz8gY3Jvc3NPcmlnaW47CiAgIFtDRVJlYWN0aW9uc10gYXR0cmlidXRlIERPTVN0cmluZyB0
ZXh0OwotICBbQ0VSZWFjdGlvbnNdIGF0dHJpYnV0ZSBET01TdHJpbmcgbm9uY2U7CiAgIFtDRVJl
YWN0aW9uc10gYXR0cmlidXRlIERPTVN0cmluZyBpbnRlZ3JpdHk7Ci0KKyAgW0NFUmVhY3Rpb25z
XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHJlZmVycmVyUG9saWN5OwogCiAgIC8vIGFsc28gaGFzIG9i
c29sZXRlIG1lbWJlcnMKIH07CkBAIC0xMTI1LDE1ICsxMTQ5LDE1IEBAIGludGVyZmFjZSBIVE1M
VGVtcGxhdGVFbGVtZW50IDogSFRNTEVsZW1lbnQgewogIEhUTUxDb25zdHJ1Y3Rvcl0KIGludGVy
ZmFjZSBIVE1MU2xvdEVsZW1lbnQgOiBIVE1MRWxlbWVudCB7CiAgIFtDRVJlYWN0aW9uc10gYXR0
cmlidXRlIERPTVN0cmluZyBuYW1lOwotICBzZXF1ZW5jZTxOb2RlPiBhc3NpZ25lZE5vZGVzKG9w
dGlvbmFsIEFzc2lnbmVkTm9kZXNPcHRpb25zIG9wdGlvbnMpOwotICBzZXF1ZW5jZTxFbGVtZW50
PiBhc3NpZ25lZEVsZW1lbnRzKG9wdGlvbmFsIEFzc2lnbmVkTm9kZXNPcHRpb25zIG9wdGlvbnMp
OworICBzZXF1ZW5jZTxOb2RlPiBhc3NpZ25lZE5vZGVzKG9wdGlvbmFsIEFzc2lnbmVkTm9kZXNP
cHRpb25zIG9wdGlvbnMgPSB7fSk7CisgIHNlcXVlbmNlPEVsZW1lbnQ+IGFzc2lnbmVkRWxlbWVu
dHMob3B0aW9uYWwgQXNzaWduZWROb2Rlc09wdGlvbnMgb3B0aW9ucyA9IHt9KTsKIH07CiAKIGRp
Y3Rpb25hcnkgQXNzaWduZWROb2Rlc09wdGlvbnMgewogICBib29sZWFuIGZsYXR0ZW4gPSBmYWxz
ZTsKIH07CiAKLXR5cGVkZWYgKENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCBvciBJbWFnZUJpdG1h
cFJlbmRlcmluZ0NvbnRleHQgb3IgV2ViR0xSZW5kZXJpbmdDb250ZXh0KSBSZW5kZXJpbmdDb250
ZXh0OwordHlwZWRlZiAoQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEIG9yIEltYWdlQml0bWFwUmVu
ZGVyaW5nQ29udGV4dCBvciBXZWJHTFJlbmRlcmluZ0NvbnRleHQgb3IgV2ViR0wyUmVuZGVyaW5n
Q29udGV4dCkgUmVuZGVyaW5nQ29udGV4dDsKIAogW0V4cG9zZWQ9V2luZG93LAogIEhUTUxDb25z
dHJ1Y3Rvcl0KQEAgLTExNDMsOCArMTE2Nyw4IEBAIGludGVyZmFjZSBIVE1MQ2FudmFzRWxlbWVu
dCA6IEhUTUxFbGVtZW50IHsKIAogICBSZW5kZXJpbmdDb250ZXh0PyBnZXRDb250ZXh0KERPTVN0
cmluZyBjb250ZXh0SWQsIG9wdGlvbmFsIGFueSBvcHRpb25zID0gbnVsbCk7CiAKLSAgVVNWU3Ry
aW5nIHRvRGF0YVVSTChvcHRpb25hbCBET01TdHJpbmcgdHlwZSwgb3B0aW9uYWwgYW55IHF1YWxp
dHkpOwotICB2b2lkIHRvQmxvYihCbG9iQ2FsbGJhY2sgX2NhbGxiYWNrLCBvcHRpb25hbCBET01T
dHJpbmcgdHlwZSwgb3B0aW9uYWwgYW55IHF1YWxpdHkpOworICBVU1ZTdHJpbmcgdG9EYXRhVVJM
KG9wdGlvbmFsIERPTVN0cmluZyB0eXBlID0gImltYWdlL3BuZyIsIG9wdGlvbmFsIGFueSBxdWFs
aXR5KTsKKyAgdm9pZCB0b0Jsb2IoQmxvYkNhbGxiYWNrIF9jYWxsYmFjaywgb3B0aW9uYWwgRE9N
U3RyaW5nIHR5cGUgPSAiaW1hZ2UvcG5nIiwgb3B0aW9uYWwgYW55IHF1YWxpdHkpOwogICBPZmZz
Y3JlZW5DYW52YXMgdHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4oKTsKIH07CiAKQEAgLTExNjMs
NiArMTE4Nyw3IEBAIGVudW0gQ2FudmFzRmlsbFJ1bGUgeyAibm9uemVybyIsICJldmVub2RkIiB9
OwogCiBkaWN0aW9uYXJ5IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRFNldHRpbmdzIHsKICAgYm9v
bGVhbiBhbHBoYSA9IHRydWU7CisgIGJvb2xlYW4gZGVzeW5jaHJvbml6ZWQgPSBmYWxzZTsKIH07
CiAKIGVudW0gSW1hZ2VTbW9vdGhpbmdRdWFsaXR5IHsgImxvdyIsICJtZWRpdW0iLCAiaGlnaCIg
fTsKQEAgLTExNzEsNiArMTE5Niw4IEBAIGVudW0gSW1hZ2VTbW9vdGhpbmdRdWFsaXR5IHsgImxv
dyIsICJtZWRpdW0iLCAiaGlnaCIgfTsKIGludGVyZmFjZSBDYW52YXNSZW5kZXJpbmdDb250ZXh0
MkQgewogICAvLyBiYWNrLXJlZmVyZW5jZSB0byB0aGUgY2FudmFzCiAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBIVE1MQ2FudmFzRWxlbWVudCBjYW52YXM7CisKKyAgQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDJEU2V0dGluZ3MgZ2V0Q29udGV4dEF0dHJpYnV0ZXMoKTsKIH07CiBDYW52YXNSZW5kZXJpbmdD
b250ZXh0MkQgaW5jbHVkZXMgQ2FudmFzU3RhdGU7CiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQg
aW5jbHVkZXMgQ2FudmFzVHJhbnNmb3JtOwpAQCAtMTIwNCw4ICsxMjMxLDkgQEAgaW50ZXJmYWNl
IG1peGluIENhbnZhc1RyYW5zZm9ybSB7CiAKICAgW05ld09iamVjdF0gRE9NTWF0cml4IGdldFRy
YW5zZm9ybSgpOwogICB2b2lkIHNldFRyYW5zZm9ybSh1bnJlc3RyaWN0ZWQgZG91YmxlIGEsIHVu
cmVzdHJpY3RlZCBkb3VibGUgYiwgdW5yZXN0cmljdGVkIGRvdWJsZSBjLCB1bnJlc3RyaWN0ZWQg
ZG91YmxlIGQsIHVucmVzdHJpY3RlZCBkb3VibGUgZSwgdW5yZXN0cmljdGVkIGRvdWJsZSBmKTsK
LSAgdm9pZCBzZXRUcmFuc2Zvcm0ob3B0aW9uYWwgRE9NTWF0cml4MkRJbml0IHRyYW5zZm9ybSk7
CisgIHZvaWQgc2V0VHJhbnNmb3JtKG9wdGlvbmFsIERPTU1hdHJpeDJESW5pdCB0cmFuc2Zvcm0g
PSB7fSk7CiAgIHZvaWQgcmVzZXRUcmFuc2Zvcm0oKTsKKwogfTsKIAogaW50ZXJmYWNlIG1peGlu
IENhbnZhc0NvbXBvc2l0aW5nIHsKQEAgLTEyMTgsNiArMTI0Niw3IEBAIGludGVyZmFjZSBtaXhp
biBDYW52YXNJbWFnZVNtb290aGluZyB7CiAgIC8vIGltYWdlIHNtb290aGluZwogICBhdHRyaWJ1
dGUgYm9vbGVhbiBpbWFnZVNtb290aGluZ0VuYWJsZWQ7IC8vIChkZWZhdWx0IHRydWUpCiAgIGF0
dHJpYnV0ZSBJbWFnZVNtb290aGluZ1F1YWxpdHkgaW1hZ2VTbW9vdGhpbmdRdWFsaXR5OyAvLyAo
ZGVmYXVsdCBsb3cpCisKIH07CiAKIGludGVyZmFjZSBtaXhpbiBDYW52YXNGaWxsU3Ryb2tlU3R5
bGVzIHsKQEAgLTEyMjcsNiArMTI1Niw3IEBAIGludGVyZmFjZSBtaXhpbiBDYW52YXNGaWxsU3Ry
b2tlU3R5bGVzIHsKICAgQ2FudmFzR3JhZGllbnQgY3JlYXRlTGluZWFyR3JhZGllbnQoZG91Ymxl
IHgwLCBkb3VibGUgeTAsIGRvdWJsZSB4MSwgZG91YmxlIHkxKTsKICAgQ2FudmFzR3JhZGllbnQg
Y3JlYXRlUmFkaWFsR3JhZGllbnQoZG91YmxlIHgwLCBkb3VibGUgeTAsIGRvdWJsZSByMCwgZG91
YmxlIHgxLCBkb3VibGUgeTEsIGRvdWJsZSByMSk7CiAgIENhbnZhc1BhdHRlcm4/IGNyZWF0ZVBh
dHRlcm4oQ2FudmFzSW1hZ2VTb3VyY2UgaW1hZ2UsIFtUcmVhdE51bGxBcz1FbXB0eVN0cmluZ10g
RE9NU3RyaW5nIHJlcGV0aXRpb24pOworCiB9OwogCiBpbnRlcmZhY2UgbWl4aW4gQ2FudmFzU2hh
ZG93U3R5bGVzIHsKQEAgLTEyNTgsNyArMTI4OCw2IEBAIGludGVyZmFjZSBtaXhpbiBDYW52YXNE
cmF3UGF0aCB7CiAgIHZvaWQgc3Ryb2tlKFBhdGgyRCBwYXRoKTsKICAgdm9pZCBjbGlwKG9wdGlv
bmFsIENhbnZhc0ZpbGxSdWxlIGZpbGxSdWxlID0gIm5vbnplcm8iKTsKICAgdm9pZCBjbGlwKFBh
dGgyRCBwYXRoLCBvcHRpb25hbCBDYW52YXNGaWxsUnVsZSBmaWxsUnVsZSA9ICJub256ZXJvIik7
Ci0gIHZvaWQgcmVzZXRDbGlwKCk7CiAgIGJvb2xlYW4gaXNQb2ludEluUGF0aCh1bnJlc3RyaWN0
ZWQgZG91YmxlIHgsIHVucmVzdHJpY3RlZCBkb3VibGUgeSwgb3B0aW9uYWwgQ2FudmFzRmlsbFJ1
bGUgZmlsbFJ1bGUgPSAibm9uemVybyIpOwogICBib29sZWFuIGlzUG9pbnRJblBhdGgoUGF0aDJE
IHBhdGgsIHVucmVzdHJpY3RlZCBkb3VibGUgeCwgdW5yZXN0cmljdGVkIGRvdWJsZSB5LCBvcHRp
b25hbCBDYW52YXNGaWxsUnVsZSBmaWxsUnVsZSA9ICJub256ZXJvIik7CiAgIGJvb2xlYW4gaXNQ
b2ludEluU3Ryb2tlKHVucmVzdHJpY3RlZCBkb3VibGUgeCwgdW5yZXN0cmljdGVkIGRvdWJsZSB5
KTsKQEAgLTEzNDQsMTAgKzEzNzMsMTAgQEAgaW50ZXJmYWNlIENhbnZhc0dyYWRpZW50IHsKIFtF
eHBvc2VkPShXaW5kb3csV29ya2VyKV0KIGludGVyZmFjZSBDYW52YXNQYXR0ZXJuIHsKICAgLy8g
b3BhcXVlIG9iamVjdAotICB2b2lkIHNldFRyYW5zZm9ybShvcHRpb25hbCBET01NYXRyaXgyRElu
aXQgdHJhbnNmb3JtKTsKKyAgdm9pZCBzZXRUcmFuc2Zvcm0ob3B0aW9uYWwgRE9NTWF0cml4MkRJ
bml0IHRyYW5zZm9ybSA9IHt9KTsKIH07CiAKLVtFeHBvc2VkPVdpbmRvd10KK1tFeHBvc2VkPShX
aW5kb3csV29ya2VyKV0KIGludGVyZmFjZSBUZXh0TWV0cmljcyB7CiAgIC8vIHgtZGlyZWN0aW9u
CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBkb3VibGUgd2lkdGg7IC8vIGFkdmFuY2Ugd2lkdGgKQEAg
LTEzNzksMTMgKzE0MDgsMTMgQEAgaW50ZXJmYWNlIEltYWdlRGF0YSB7CiBbQ29uc3RydWN0b3Io
b3B0aW9uYWwgKFBhdGgyRCBvciBET01TdHJpbmcpIHBhdGgpLAogIEV4cG9zZWQ9KFdpbmRvdyxX
b3JrZXIpXQogaW50ZXJmYWNlIFBhdGgyRCB7Ci0gIHZvaWQgYWRkUGF0aChQYXRoMkQgcGF0aCwg
b3B0aW9uYWwgRE9NTWF0cml4MkRJbml0IHRyYW5zZm9ybSk7CisgIHZvaWQgYWRkUGF0aChQYXRo
MkQgcGF0aCwgb3B0aW9uYWwgRE9NTWF0cml4MkRJbml0IHRyYW5zZm9ybSA9IHt9KTsKIH07CiBQ
YXRoMkQgaW5jbHVkZXMgQ2FudmFzUGF0aDsKIAotW0V4cG9zZWQ9V2luZG93XQorW0V4cG9zZWQ9
KFdpbmRvdyxXb3JrZXIpXQogaW50ZXJmYWNlIEltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dCB7
Ci0gIHJlYWRvbmx5IGF0dHJpYnV0ZSBIVE1MQ2FudmFzRWxlbWVudCBjYW52YXM7CisgIHJlYWRv
bmx5IGF0dHJpYnV0ZSAoSFRNTENhbnZhc0VsZW1lbnQgb3IgT2Zmc2NyZWVuQ2FudmFzKSBjYW52
YXM7CiAgIHZvaWQgdHJhbnNmZXJGcm9tSW1hZ2VCaXRtYXAoSW1hZ2VCaXRtYXA/IGJpdG1hcCk7
CiB9OwogCkBAIC0xMzkzLDI3ICsxNDIyLDI1IEBAIGRpY3Rpb25hcnkgSW1hZ2VCaXRtYXBSZW5k
ZXJpbmdDb250ZXh0U2V0dGluZ3MgewogICBib29sZWFuIGFscGhhID0gdHJ1ZTsKIH07CiAKLXR5
cGVkZWYgKE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCBvcgotICAgICAgICBXZWJH
TFJlbmRlcmluZ0NvbnRleHQpIE9mZnNjcmVlblJlbmRlcmluZ0NvbnRleHQ7Cit0eXBlZGVmIChP
ZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQgb3IgSW1hZ2VCaXRtYXBSZW5kZXJpbmdD
b250ZXh0IG9yIFdlYkdMUmVuZGVyaW5nQ29udGV4dCBvciBXZWJHTDJSZW5kZXJpbmdDb250ZXh0
KSBPZmZzY3JlZW5SZW5kZXJpbmdDb250ZXh0OwogCiBkaWN0aW9uYXJ5IEltYWdlRW5jb2RlT3B0
aW9ucyB7CiAgIERPTVN0cmluZyB0eXBlID0gImltYWdlL3BuZyI7Ci0gIHVucmVzdHJpY3RlZCBk
b3VibGUgcXVhbGl0eSA9IDEuMDsKKyAgdW5yZXN0cmljdGVkIGRvdWJsZSBxdWFsaXR5OwogfTsK
IAotZW51bSBPZmZzY3JlZW5SZW5kZXJpbmdDb250ZXh0SWQgeyAiMmQiLCAid2ViZ2wiIH07Citl
bnVtIE9mZnNjcmVlblJlbmRlcmluZ0NvbnRleHRJZCB7ICIyZCIsICJiaXRtYXByZW5kZXJlciIs
ICJ3ZWJnbCIsICJ3ZWJnbDIiIH07CiAKIFtDb25zdHJ1Y3RvcihbRW5mb3JjZVJhbmdlXSB1bnNp
Z25lZCBsb25nIGxvbmcgd2lkdGgsIFtFbmZvcmNlUmFuZ2VdIHVuc2lnbmVkIGxvbmcgbG9uZyBo
ZWlnaHQpLCBFeHBvc2VkPShXaW5kb3csV29ya2VyKSwgVHJhbnNmZXJhYmxlXQogaW50ZXJmYWNl
IE9mZnNjcmVlbkNhbnZhcyA6IEV2ZW50VGFyZ2V0IHsKLSAgYXR0cmlidXRlIHVuc2lnbmVkIGxv
bmcgbG9uZyB3aWR0aDsKLSAgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbG9uZyBoZWlnaHQ7Cisg
IGF0dHJpYnV0ZSBbRW5mb3JjZVJhbmdlXSB1bnNpZ25lZCBsb25nIGxvbmcgd2lkdGg7CisgIGF0
dHJpYnV0ZSBbRW5mb3JjZVJhbmdlXSB1bnNpZ25lZCBsb25nIGxvbmcgaGVpZ2h0OwogCiAgIE9m
ZnNjcmVlblJlbmRlcmluZ0NvbnRleHQ/IGdldENvbnRleHQoT2Zmc2NyZWVuUmVuZGVyaW5nQ29u
dGV4dElkIGNvbnRleHRJZCwgb3B0aW9uYWwgYW55IG9wdGlvbnMgPSBudWxsKTsKICAgSW1hZ2VC
aXRtYXAgdHJhbnNmZXJUb0ltYWdlQml0bWFwKCk7Ci0gIFByb21pc2U8QmxvYj4gY29udmVydFRv
QmxvYihvcHRpb25hbCBJbWFnZUVuY29kZU9wdGlvbnMgb3B0aW9ucyk7CisgIFByb21pc2U8Qmxv
Yj4gY29udmVydFRvQmxvYihvcHRpb25hbCBJbWFnZUVuY29kZU9wdGlvbnMgb3B0aW9ucyA9IHt9
KTsKIH07CiAKLQogW0V4cG9zZWQ9KFdpbmRvdyxXb3JrZXIpXQogaW50ZXJmYWNlIE9mZnNjcmVl
bkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCB7CiAgIHZvaWQgY29tbWl0KCk7CkBAIC0xNDI5LDMy
ICsxNDU2LDc1IEBAIE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCBpbmNsdWRlcyBD
YW52YXNTaGFkb3dTdHlsZXM7CiBPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQgaW5j
bHVkZXMgQ2FudmFzRmlsdGVyczsKIE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCBp
bmNsdWRlcyBDYW52YXNSZWN0OwogT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEIGlu
Y2x1ZGVzIENhbnZhc0RyYXdQYXRoOworT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJE
IGluY2x1ZGVzIENhbnZhc1RleHQ7CiBPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQg
aW5jbHVkZXMgQ2FudmFzRHJhd0ltYWdlOwogT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDJEIGluY2x1ZGVzIENhbnZhc0ltYWdlRGF0YTsKIE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyRCBpbmNsdWRlcyBDYW52YXNQYXRoRHJhd2luZ1N0eWxlczsKK09mZnNjcmVlbkNhbnZh
c1JlbmRlcmluZ0NvbnRleHQyRCBpbmNsdWRlcyBDYW52YXNUZXh0RHJhd2luZ1N0eWxlczsKIE9m
ZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCBpbmNsdWRlcyBDYW52YXNQYXRoOwogCi0K
IFtFeHBvc2VkPVdpbmRvd10KIGludGVyZmFjZSBDdXN0b21FbGVtZW50UmVnaXN0cnkgewotICBb
Q0VSZWFjdGlvbnNdIHZvaWQgZGVmaW5lKERPTVN0cmluZyBuYW1lLCBGdW5jdGlvbiBjb25zdHJ1
Y3Rvciwgb3B0aW9uYWwgRWxlbWVudERlZmluaXRpb25PcHRpb25zIG9wdGlvbnMpOworICBbQ0VS
ZWFjdGlvbnNdIHZvaWQgZGVmaW5lKERPTVN0cmluZyBuYW1lLCBDdXN0b21FbGVtZW50Q29uc3Ry
dWN0b3IgY29uc3RydWN0b3IsIG9wdGlvbmFsIEVsZW1lbnREZWZpbml0aW9uT3B0aW9ucyBvcHRp
b25zID0ge30pOwogICBhbnkgZ2V0KERPTVN0cmluZyBuYW1lKTsKICAgUHJvbWlzZTx2b2lkPiB3
aGVuRGVmaW5lZChET01TdHJpbmcgbmFtZSk7CisgIFtDRVJlYWN0aW9uc10gdm9pZCB1cGdyYWRl
KE5vZGUgcm9vdCk7CiB9OwogCitjYWxsYmFjayBDdXN0b21FbGVtZW50Q29uc3RydWN0b3IgPSBI
VE1MRWxlbWVudCAoKTsKKwogZGljdGlvbmFyeSBFbGVtZW50RGVmaW5pdGlvbk9wdGlvbnMgewog
ICBET01TdHJpbmcgZXh0ZW5kczsKIH07CiAKK1tFeHBvc2VkPVdpbmRvd10KK2ludGVyZmFjZSBF
bGVtZW50SW50ZXJuYWxzIHsKKyAgLy8gRm9ybS1hc3NvY2lhdGVkIGN1c3RvbSBlbGVtZW50cwor
CisgIHZvaWQgc2V0Rm9ybVZhbHVlKChGaWxlIG9yIFVTVlN0cmluZyBvciBGb3JtRGF0YSk/IHZh
bHVlLAorICAgICAgICAgICAgICAgICAgICBvcHRpb25hbCAoRmlsZSBvciBVU1ZTdHJpbmcgb3Ig
Rm9ybURhdGEpPyBzdGF0ZSk7CisKKyAgcmVhZG9ubHkgYXR0cmlidXRlIEhUTUxGb3JtRWxlbWVu
dD8gZm9ybTsKKworICB2b2lkIHNldFZhbGlkaXR5KFZhbGlkaXR5U3RhdGVGbGFncyBmbGFncywK
KyAgICAgICAgICAgICAgICAgICBvcHRpb25hbCBET01TdHJpbmcgbWVzc2FnZSwKKyAgICAgICAg
ICAgICAgICAgICBvcHRpb25hbCBIVE1MRWxlbWVudCBhbmNob3IpOworICByZWFkb25seSBhdHRy
aWJ1dGUgYm9vbGVhbiB3aWxsVmFsaWRhdGU7CisgIHJlYWRvbmx5IGF0dHJpYnV0ZSBWYWxpZGl0
eVN0YXRlIHZhbGlkaXR5OworICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHZhbGlkYXRp
b25NZXNzYWdlOworICBib29sZWFuIGNoZWNrVmFsaWRpdHkoKTsKKyAgYm9vbGVhbiByZXBvcnRW
YWxpZGl0eSgpOworCisgIHJlYWRvbmx5IGF0dHJpYnV0ZSBOb2RlTGlzdCBsYWJlbHM7Cit9Owor
CitkaWN0aW9uYXJ5IFZhbGlkaXR5U3RhdGVGbGFncyB7CisgIGJvb2xlYW4gdmFsdWVNaXNzaW5n
ID0gZmFsc2U7CisgIGJvb2xlYW4gdHlwZU1pc21hdGNoID0gZmFsc2U7CisgIGJvb2xlYW4gcGF0
dGVybk1pc21hdGNoID0gZmFsc2U7CisgIGJvb2xlYW4gdG9vTG9uZyA9IGZhbHNlOworICBib29s
ZWFuIHRvb1Nob3J0ID0gZmFsc2U7CisgIGJvb2xlYW4gcmFuZ2VVbmRlcmZsb3cgPSBmYWxzZTsK
KyAgYm9vbGVhbiByYW5nZU92ZXJmbG93ID0gZmFsc2U7CisgIGJvb2xlYW4gc3RlcE1pc21hdGNo
ID0gZmFsc2U7CisgIGJvb2xlYW4gYmFkSW5wdXQgPSBmYWxzZTsKKyAgYm9vbGVhbiBjdXN0b21F
cnJvciA9IGZhbHNlOworfTsKKworZGljdGlvbmFyeSBGb2N1c09wdGlvbnMgeworICBib29sZWFu
IHByZXZlbnRTY3JvbGwgPSBmYWxzZTsKK307CisKIGludGVyZmFjZSBtaXhpbiBFbGVtZW50Q29u
dGVudEVkaXRhYmxlIHsKICAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGNvbnRl
bnRFZGl0YWJsZTsKKyAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGVudGVyS2V5
SGludDsKICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gaXNDb250ZW50RWRpdGFibGU7CiAg
IFtDRVJlYWN0aW9uc10gYXR0cmlidXRlIERPTVN0cmluZyBpbnB1dE1vZGU7CiB9OwogCiBbRXhw
b3NlZD1XaW5kb3csCiAgQ29uc3RydWN0b3JdCi0gIGludGVyZmFjZSBEYXRhVHJhbnNmZXIgewor
aW50ZXJmYWNlIERhdGFUcmFuc2ZlciB7CiAgIGF0dHJpYnV0ZSBET01TdHJpbmcgZHJvcEVmZmVj
dDsKICAgYXR0cmlidXRlIERPTVN0cmluZyBlZmZlY3RBbGxvd2VkOwogCkBAIC0xNDkxLDcgKzE1
NjEsNyBAQCBpbnRlcmZhY2UgRGF0YVRyYW5zZmVySXRlbSB7CiBjYWxsYmFjayBGdW5jdGlvblN0
cmluZ0NhbGxiYWNrID0gdm9pZCAoRE9NU3RyaW5nIGRhdGEpOwogCiBbRXhwb3NlZD1XaW5kb3cs
Ci0gQ29uc3RydWN0b3IoRE9NU3RyaW5nIHR5cGUsIG9wdGlvbmFsIERyYWdFdmVudEluaXQgZXZl
bnRJbml0RGljdCldCisgQ29uc3RydWN0b3IoRE9NU3RyaW5nIHR5cGUsIG9wdGlvbmFsIERyYWdF
dmVudEluaXQgZXZlbnRJbml0RGljdCA9IHt9KV0KIGludGVyZmFjZSBEcmFnRXZlbnQgOiBNb3Vz
ZUV2ZW50IHsKICAgcmVhZG9ubHkgYXR0cmlidXRlIERhdGFUcmFuc2Zlcj8gZGF0YVRyYW5zZmVy
OwogfTsKQEAgLTE1MzIsNyArMTYwMiw3IEBAIGludGVyZmFjZSBXaW5kb3cgOiBFdmVudFRhcmdl
dCB7CiAgIGF0dHJpYnV0ZSBhbnkgb3BlbmVyOwogICBbUmVwbGFjZWFibGVdIHJlYWRvbmx5IGF0
dHJpYnV0ZSBXaW5kb3dQcm94eT8gcGFyZW50OwogICByZWFkb25seSBhdHRyaWJ1dGUgRWxlbWVu
dD8gZnJhbWVFbGVtZW50OwotICBXaW5kb3dQcm94eT8gb3BlbihvcHRpb25hbCBVU1ZTdHJpbmcg
dXJsID0gImFib3V0OmJsYW5rIiwgb3B0aW9uYWwgRE9NU3RyaW5nIHRhcmdldCA9ICJfYmxhbmsi
LCBvcHRpb25hbCBbVHJlYXROdWxsQXM9RW1wdHlTdHJpbmddIERPTVN0cmluZyBmZWF0dXJlcyA9
ICIiKTsKKyAgV2luZG93UHJveHk/IG9wZW4ob3B0aW9uYWwgVVNWU3RyaW5nIHVybCA9ICIiLCBv
cHRpb25hbCBET01TdHJpbmcgdGFyZ2V0ID0gIl9ibGFuayIsIG9wdGlvbmFsIFtUcmVhdE51bGxB
cz1FbXB0eVN0cmluZ10gRE9NU3RyaW5nIGZlYXR1cmVzID0gIiIpOwogICBnZXR0ZXIgb2JqZWN0
IChET01TdHJpbmcgbmFtZSk7CiAgIC8vIFNpbmNlIHRoaXMgaXMgdGhlIGdsb2JhbCBvYmplY3Qs
IHRoZSBJREwgbmFtZWQgZ2V0dGVyIGFkZHMgYSBOYW1lZFByb3BlcnRpZXNPYmplY3QgZXhvdGlj
CiAgIC8vIG9iamVjdCBvbiB0aGUgcHJvdG90eXBlIGNoYWluLiBJbmRlZWQsIHRoaXMgZG9lcyBu
b3QgbWFrZSB0aGUgZ2xvYmFsIG9iamVjdCBhbiBleG90aWMgb2JqZWN0LgpAQCAtMTU0MCw3ICsx
NjEwLDcgQEAgaW50ZXJmYWNlIFdpbmRvdyA6IEV2ZW50VGFyZ2V0IHsKIAogICAvLyB0aGUgdXNl
ciBhZ2VudAogICByZWFkb25seSBhdHRyaWJ1dGUgTmF2aWdhdG9yIG5hdmlnYXRvcjsKLSAgcmVh
ZG9ubHkgYXR0cmlidXRlIEFwcGxpY2F0aW9uQ2FjaGUgYXBwbGljYXRpb25DYWNoZTsKKyAgW1Nl
Y3VyZUNvbnRleHRdIHJlYWRvbmx5IGF0dHJpYnV0ZSBBcHBsaWNhdGlvbkNhY2hlIGFwcGxpY2F0
aW9uQ2FjaGU7CiAKICAgLy8gdXNlciBwcm9tcHRzCiAgIHZvaWQgYWxlcnQoKTsKQEAgLTE1NDks
MTcgKzE2MTksMTUgQEAgaW50ZXJmYWNlIFdpbmRvdyA6IEV2ZW50VGFyZ2V0IHsKICAgRE9NU3Ry
aW5nPyBwcm9tcHQob3B0aW9uYWwgRE9NU3RyaW5nIG1lc3NhZ2UgPSAiIiwgb3B0aW9uYWwgRE9N
U3RyaW5nIGRlZmF1bHQgPSAiIik7CiAgIHZvaWQgcHJpbnQoKTsKIAotICB1bnNpZ25lZCBsb25n
IHJlcXVlc3RBbmltYXRpb25GcmFtZShGcmFtZVJlcXVlc3RDYWxsYmFjayBjYWxsYmFjayk7Ci0g
IHZvaWQgY2FuY2VsQW5pbWF0aW9uRnJhbWUodW5zaWduZWQgbG9uZyBoYW5kbGUpOwotCiAgIHZv
aWQgcG9zdE1lc3NhZ2UoYW55IG1lc3NhZ2UsIFVTVlN0cmluZyB0YXJnZXRPcmlnaW4sIG9wdGlv
bmFsIHNlcXVlbmNlPG9iamVjdD4gdHJhbnNmZXIgPSBbXSk7Ci0KLSAgLy8gYWxzbyBoYXMgb2Jz
b2xldGUgbWVtYmVycworICB2b2lkIHBvc3RNZXNzYWdlKGFueSBtZXNzYWdlLCBvcHRpb25hbCBX
aW5kb3dQb3N0TWVzc2FnZU9wdGlvbnMgb3B0aW9ucyA9IHt9KTsKIH07CiBXaW5kb3cgaW5jbHVk
ZXMgR2xvYmFsRXZlbnRIYW5kbGVyczsKIFdpbmRvdyBpbmNsdWRlcyBXaW5kb3dFdmVudEhhbmRs
ZXJzOwogCi1jYWxsYmFjayBGcmFtZVJlcXVlc3RDYWxsYmFjayA9IHZvaWQgKERPTUhpZ2hSZXNU
aW1lU3RhbXAgdGltZSk7CitkaWN0aW9uYXJ5IFdpbmRvd1Bvc3RNZXNzYWdlT3B0aW9ucyA6IFBv
c3RNZXNzYWdlT3B0aW9ucyB7CisgIFVTVlN0cmluZyB0YXJnZXRPcmlnaW4gPSAiLyI7Cit9Owog
CiBbRXhwb3NlZD1XaW5kb3ddCiBpbnRlcmZhY2UgQmFyUHJvcCB7CkBAIC0xNTcwLDcgKzE2Mzgs
NiBAQCBlbnVtIFNjcm9sbFJlc3RvcmF0aW9uIHsgImF1dG8iLCAibWFudWFsIiB9OwogCiBbRXhw
b3NlZD1XaW5kb3ddCiBpbnRlcmZhY2UgSGlzdG9yeSB7Ci0gIHJlYWRvbmx5IGF0dHJpYnV0ZSB1
bnNpZ25lZCBsb25nIGluZGV4OwogICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBs
ZW5ndGg7CiAgIGF0dHJpYnV0ZSBTY3JvbGxSZXN0b3JhdGlvbiBzY3JvbGxSZXN0b3JhdGlvbjsK
ICAgcmVhZG9ubHkgYXR0cmlidXRlIGFueSBzdGF0ZTsKQEAgLTE2MDEsNyArMTY2OCw3IEBAIGlu
dGVyZmFjZSBMb2NhdGlvbiB7IC8vIGJ1dCBzZWUgYWxzbyBhZGRpdGlvbmFsIGNyZWF0aW9uIHN0
ZXBzIGFuZCBvdmVycmlkZGVuIGluCiB9OwogCiBbRXhwb3NlZD1XaW5kb3csCi0gQ29uc3RydWN0
b3IoRE9NU3RyaW5nIHR5cGUsIG9wdGlvbmFsIFBvcFN0YXRlRXZlbnRJbml0IGV2ZW50SW5pdERp
Y3QpXQorIENvbnN0cnVjdG9yKERPTVN0cmluZyB0eXBlLCBvcHRpb25hbCBQb3BTdGF0ZUV2ZW50
SW5pdCBldmVudEluaXREaWN0ID0ge30pXQogaW50ZXJmYWNlIFBvcFN0YXRlRXZlbnQgOiBFdmVu
dCB7CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBhbnkgc3RhdGU7CiB9OwpAQCAtMTYxMSw3ICsxNjc4
LDcgQEAgZGljdGlvbmFyeSBQb3BTdGF0ZUV2ZW50SW5pdCA6IEV2ZW50SW5pdCB7CiB9OwogCiBb
RXhwb3NlZD1XaW5kb3csCi0gQ29uc3RydWN0b3IoRE9NU3RyaW5nIHR5cGUsIG9wdGlvbmFsIEhh
c2hDaGFuZ2VFdmVudEluaXQgZXZlbnRJbml0RGljdCldCisgQ29uc3RydWN0b3IoRE9NU3RyaW5n
IHR5cGUsIG9wdGlvbmFsIEhhc2hDaGFuZ2VFdmVudEluaXQgZXZlbnRJbml0RGljdCA9IHt9KV0K
IGludGVyZmFjZSBIYXNoQ2hhbmdlRXZlbnQgOiBFdmVudCB7CiAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBVU1ZTdHJpbmcgb2xkVVJMOwogICByZWFkb25seSBhdHRyaWJ1dGUgVVNWU3RyaW5nIG5ld1VS
TDsKQEAgLTE2MjMsNyArMTY5MCw3IEBAIGRpY3Rpb25hcnkgSGFzaENoYW5nZUV2ZW50SW5pdCA6
IEV2ZW50SW5pdCB7CiB9OwogCiBbRXhwb3NlZD1XaW5kb3csCi0gQ29uc3RydWN0b3IoRE9NU3Ry
aW5nIHR5cGUsIG9wdGlvbmFsIFBhZ2VUcmFuc2l0aW9uRXZlbnRJbml0IGV2ZW50SW5pdERpY3Qp
XQorIENvbnN0cnVjdG9yKERPTVN0cmluZyB0eXBlLCBvcHRpb25hbCBQYWdlVHJhbnNpdGlvbkV2
ZW50SW5pdCBldmVudEluaXREaWN0ID0ge30pXQogaW50ZXJmYWNlIFBhZ2VUcmFuc2l0aW9uRXZl
bnQgOiBFdmVudCB7CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIHBlcnNpc3RlZDsKIH07
CkBAIC0xNjM3LDcgKzE3MDQsOCBAQCBpbnRlcmZhY2UgQmVmb3JlVW5sb2FkRXZlbnQgOiBFdmVu
dCB7CiAgIGF0dHJpYnV0ZSBET01TdHJpbmcgcmV0dXJuVmFsdWU7CiB9OwogCi1bRXhwb3NlZD1X
aW5kb3ddCitbU2VjdXJlQ29udGV4dCwKKyBFeHBvc2VkPVdpbmRvd10KIGludGVyZmFjZSBBcHBs
aWNhdGlvbkNhY2hlIDogRXZlbnRUYXJnZXQgewogCiAgIC8vIHVwZGF0ZSBzdGF0dXMKQEAgLTE2
NjksNyArMTczNyw4IEBAIGludGVyZmFjZSBtaXhpbiBOYXZpZ2F0b3JPbkxpbmUgewogICByZWFk
b25seSBhdHRyaWJ1dGUgYm9vbGVhbiBvbkxpbmU7CiB9OwogCi1bQ29uc3RydWN0b3IoRE9NU3Ry
aW5nIHR5cGUsIG9wdGlvbmFsIEVycm9yRXZlbnRJbml0IGV2ZW50SW5pdERpY3QpLCBFeHBvc2Vk
PShXaW5kb3csV29ya2VyKV0KK1tDb25zdHJ1Y3RvcihET01TdHJpbmcgdHlwZSwgb3B0aW9uYWwg
RXJyb3JFdmVudEluaXQgZXZlbnRJbml0RGljdCA9IHt9KSwKKyBFeHBvc2VkPShXaW5kb3csV29y
a2VyKV0KIGludGVyZmFjZSBFcnJvckV2ZW50IDogRXZlbnQgewogICByZWFkb25seSBhdHRyaWJ1
dGUgRE9NU3RyaW5nIG1lc3NhZ2U7CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBVU1ZTdHJpbmcgZmls
ZW5hbWU7CkBAIC0xNzM1LDYgKzE4MDQsNyBAQCBpbnRlcmZhY2UgbWl4aW4gR2xvYmFsRXZlbnRI
YW5kbGVycyB7CiAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25lbmRlZDsKICAgYXR0cmlidXRl
IE9uRXJyb3JFdmVudEhhbmRsZXIgb25lcnJvcjsKICAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciBv
bmZvY3VzOworICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9uZm9ybWRhdGE7CiAgIGF0dHJpYnV0
ZSBFdmVudEhhbmRsZXIgb25pbnB1dDsKICAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbmludmFs
aWQ7CiAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25rZXlkb3duOwpAQCAtMTc0Myw3ICsxODEz
LDYgQEAgaW50ZXJmYWNlIG1peGluIEdsb2JhbEV2ZW50SGFuZGxlcnMgewogICBhdHRyaWJ1dGUg
RXZlbnRIYW5kbGVyIG9ubG9hZDsKICAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbmxvYWRlZGRh
dGE7CiAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25sb2FkZWRtZXRhZGF0YTsKLSAgYXR0cmli
dXRlIEV2ZW50SGFuZGxlciBvbmxvYWRlbmQ7CiAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25s
b2Fkc3RhcnQ7CiAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25tb3VzZWRvd247CiAgIFtMZW5p
ZW50VGhpc10gYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbm1vdXNlZW50ZXI7CkBAIC0xODE0LDkg
KzE4ODMsMTIgQEAgaW50ZXJmYWNlIG1peGluIFdpbmRvd09yV29ya2VyR2xvYmFsU2NvcGUgewog
ICBsb25nIHNldEludGVydmFsKFRpbWVySGFuZGxlciBoYW5kbGVyLCBvcHRpb25hbCBsb25nIHRp
bWVvdXQgPSAwLCBhbnkuLi4gYXJndW1lbnRzKTsKICAgdm9pZCBjbGVhckludGVydmFsKG9wdGlv
bmFsIGxvbmcgaGFuZGxlID0gMCk7CiAKKyAgLy8gbWljcm90YXNrIHF1ZXVpbmcKKyAgdm9pZCBx
dWV1ZU1pY3JvdGFzayhWb2lkRnVuY3Rpb24gY2FsbGJhY2spOworCiAgIC8vIEltYWdlQml0bWFw
Ci0gIFByb21pc2U8SW1hZ2VCaXRtYXA+IGNyZWF0ZUltYWdlQml0bWFwKEltYWdlQml0bWFwU291
cmNlIGltYWdlLCBvcHRpb25hbCBJbWFnZUJpdG1hcE9wdGlvbnMgb3B0aW9ucyk7Ci0gIFByb21p
c2U8SW1hZ2VCaXRtYXA+IGNyZWF0ZUltYWdlQml0bWFwKEltYWdlQml0bWFwU291cmNlIGltYWdl
LCBsb25nIHN4LCBsb25nIHN5LCBsb25nIHN3LCBsb25nIHNoLCBvcHRpb25hbCBJbWFnZUJpdG1h
cE9wdGlvbnMgb3B0aW9ucyk7CisgIFByb21pc2U8SW1hZ2VCaXRtYXA+IGNyZWF0ZUltYWdlQml0
bWFwKEltYWdlQml0bWFwU291cmNlIGltYWdlLCBvcHRpb25hbCBJbWFnZUJpdG1hcE9wdGlvbnMg
b3B0aW9ucyA9IHt9KTsKKyAgUHJvbWlzZTxJbWFnZUJpdG1hcD4gY3JlYXRlSW1hZ2VCaXRtYXAo
SW1hZ2VCaXRtYXBTb3VyY2UgaW1hZ2UsIGxvbmcgc3gsIGxvbmcgc3ksIGxvbmcgc3csIGxvbmcg
c2gsIG9wdGlvbmFsIEltYWdlQml0bWFwT3B0aW9ucyBvcHRpb25zID0ge30pOwogfTsKIFdpbmRv
dyBpbmNsdWRlcyBXaW5kb3dPcldvcmtlckdsb2JhbFNjb3BlOwogV29ya2VyR2xvYmFsU2NvcGUg
aW5jbHVkZXMgV2luZG93T3JXb3JrZXJHbG9iYWxTY29wZTsKQEAgLTE4NDMsMTEgKzE5MTUsOSBA
QCBpbnRlcmZhY2UgbWl4aW4gTmF2aWdhdG9ySUQgewogICByZWFkb25seSBhdHRyaWJ1dGUgRE9N
U3RyaW5nIHVzZXJBZ2VudDsKICAgW0V4cG9zZWQ9V2luZG93XSByZWFkb25seSBhdHRyaWJ1dGUg
RE9NU3RyaW5nIHZlbmRvcjsKICAgW0V4cG9zZWQ9V2luZG93XSByZWFkb25seSBhdHRyaWJ1dGUg
RE9NU3RyaW5nIHZlbmRvclN1YjsgLy8gY29uc3RhbnQgIiIKLQotICAvLyBhbHNvIGhhcyBhZGRp
dGlvbmFsIG1lbWJlcnMgaW4gYSBwYXJ0aWFsIGludGVyZmFjZQogfTsKIAotcGFydGlhbCBpbnRl
cmZhY2UgTmF2aWdhdG9ySUQgeworcGFydGlhbCBpbnRlcmZhY2UgbWl4aW4gTmF2aWdhdG9ySUQg
ewogICBbRXhwb3NlZD1XaW5kb3ddIGJvb2xlYW4gdGFpbnRFbmFibGVkKCk7IC8vIGNvbnN0YW50
IGZhbHNlCiAgIFtFeHBvc2VkPVdpbmRvd10gcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBv
c2NwdTsKIH07CkBAIC0xOTMzLDcgKzIwMDMsMTcgQEAgZGljdGlvbmFyeSBJbWFnZUJpdG1hcE9w
dGlvbnMgewogICBSZXNpemVRdWFsaXR5IHJlc2l6ZVF1YWxpdHkgPSAibG93IjsKIH07CiAKLVtD
b25zdHJ1Y3RvcihET01TdHJpbmcgdHlwZSwgb3B0aW9uYWwgTWVzc2FnZUV2ZW50SW5pdCBldmVu
dEluaXREaWN0KSwgRXhwb3NlZD0oV2luZG93LFdvcmtlcixBdWRpb1dvcmtsZXQpXQorY2FsbGJh
Y2sgRnJhbWVSZXF1ZXN0Q2FsbGJhY2sgPSB2b2lkIChET01IaWdoUmVzVGltZVN0YW1wIHRpbWUp
OworCitpbnRlcmZhY2UgbWl4aW4gQW5pbWF0aW9uRnJhbWVQcm92aWRlciB7CisgIHVuc2lnbmVk
IGxvbmcgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKEZyYW1lUmVxdWVzdENhbGxiYWNrIGNhbGxiYWNr
KTsKKyAgdm9pZCBjYW5jZWxBbmltYXRpb25GcmFtZSh1bnNpZ25lZCBsb25nIGhhbmRsZSk7Cit9
OworV2luZG93IGluY2x1ZGVzIEFuaW1hdGlvbkZyYW1lUHJvdmlkZXI7CitEZWRpY2F0ZWRXb3Jr
ZXJHbG9iYWxTY29wZSBpbmNsdWRlcyBBbmltYXRpb25GcmFtZVByb3ZpZGVyOworCitbQ29uc3Ry
dWN0b3IoRE9NU3RyaW5nIHR5cGUsIG9wdGlvbmFsIE1lc3NhZ2VFdmVudEluaXQgZXZlbnRJbml0
RGljdCA9IHt9KSwKKyBFeHBvc2VkPShXaW5kb3csV29ya2VyLEF1ZGlvV29ya2xldCldCiBpbnRl
cmZhY2UgTWVzc2FnZUV2ZW50IDogRXZlbnQgewogICByZWFkb25seSBhdHRyaWJ1dGUgYW55IGRh
dGE7CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBVU1ZTdHJpbmcgb3JpZ2luOwpAQCAtMTk1NCw3ICsy
MDM0LDcgQEAgZGljdGlvbmFyeSBNZXNzYWdlRXZlbnRJbml0IDogRXZlbnRJbml0IHsKIAogdHlw
ZWRlZiAoV2luZG93UHJveHkgb3IgTWVzc2FnZVBvcnQgb3IgU2VydmljZVdvcmtlcikgTWVzc2Fn
ZUV2ZW50U291cmNlOwogCi1bQ29uc3RydWN0b3IoVVNWU3RyaW5nIHVybCwgb3B0aW9uYWwgRXZl
bnRTb3VyY2VJbml0IGV2ZW50U291cmNlSW5pdERpY3QpLCBFeHBvc2VkPShXaW5kb3csV29ya2Vy
KV0KK1tDb25zdHJ1Y3RvcihVU1ZTdHJpbmcgdXJsLCBvcHRpb25hbCBFdmVudFNvdXJjZUluaXQg
ZXZlbnRTb3VyY2VJbml0RGljdCA9IHt9KSwgRXhwb3NlZD0oV2luZG93LFdvcmtlcildCiBpbnRl
cmZhY2UgRXZlbnRTb3VyY2UgOiBFdmVudFRhcmdldCB7CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBV
U1ZTdHJpbmcgdXJsOwogICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiB3aXRoQ3JlZGVudGlh
bHM7CkBAIC0yMDA2LDcgKzIwODYsOCBAQCBpbnRlcmZhY2UgV2ViU29ja2V0IDogRXZlbnRUYXJn
ZXQgewogICB2b2lkIHNlbmQoQXJyYXlCdWZmZXJWaWV3IGRhdGEpOwogfTsKIAotW0NvbnN0cnVj
dG9yKERPTVN0cmluZyB0eXBlLCBvcHRpb25hbCBDbG9zZUV2ZW50SW5pdCBldmVudEluaXREaWN0
KSwgRXhwb3NlZD0oV2luZG93LFdvcmtlcildCitbQ29uc3RydWN0b3IoRE9NU3RyaW5nIHR5cGUs
IG9wdGlvbmFsIENsb3NlRXZlbnRJbml0IGV2ZW50SW5pdERpY3QgPSB7fSksCisgRXhwb3NlZD0o
V2luZG93LFdvcmtlcildCiBpbnRlcmZhY2UgQ2xvc2VFdmVudCA6IEV2ZW50IHsKICAgcmVhZG9u
bHkgYXR0cmlidXRlIGJvb2xlYW4gd2FzQ2xlYW47CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNp
Z25lZCBzaG9ydCBjb2RlOwpAQCAtMjAyNyw3ICsyMTA4LDggQEAgaW50ZXJmYWNlIE1lc3NhZ2VD
aGFubmVsIHsKIAogW0V4cG9zZWQ9KFdpbmRvdyxXb3JrZXIsQXVkaW9Xb3JrbGV0KSwgVHJhbnNm
ZXJhYmxlXQogaW50ZXJmYWNlIE1lc3NhZ2VQb3J0IDogRXZlbnRUYXJnZXQgewotICB2b2lkIHBv
c3RNZXNzYWdlKGFueSBtZXNzYWdlLCBvcHRpb25hbCBzZXF1ZW5jZTxvYmplY3Q+IHRyYW5zZmVy
ID0gW10pOworICB2b2lkIHBvc3RNZXNzYWdlKGFueSBtZXNzYWdlLCBzZXF1ZW5jZTxvYmplY3Q+
IHRyYW5zZmVyKTsKKyAgdm9pZCBwb3N0TWVzc2FnZShhbnkgbWVzc2FnZSwgb3B0aW9uYWwgUG9z
dE1lc3NhZ2VPcHRpb25zIG9wdGlvbnMgPSB7fSk7CiAgIHZvaWQgc3RhcnQoKTsKICAgdm9pZCBj
bG9zZSgpOwogCkBAIC0yMDM2LDYgKzIxMTgsMTAgQEAgaW50ZXJmYWNlIE1lc3NhZ2VQb3J0IDog
RXZlbnRUYXJnZXQgewogICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9ubWVzc2FnZWVycm9yOwog
fTsKIAorZGljdGlvbmFyeSBQb3N0TWVzc2FnZU9wdGlvbnMgeworICBzZXF1ZW5jZTxvYmplY3Q+
IHRyYW5zZmVyID0gW107Cit9OworCiBbQ29uc3RydWN0b3IoRE9NU3RyaW5nIG5hbWUpLCBFeHBv
c2VkPShXaW5kb3csV29ya2VyKV0KIGludGVyZmFjZSBCcm9hZGNhc3RDaGFubmVsIDogRXZlbnRU
YXJnZXQgewogICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIG5hbWU7CkBAIC0yMDY0LDcg
KzIxNTAsOCBAQCBpbnRlcmZhY2UgV29ya2VyR2xvYmFsU2NvcGUgOiBFdmVudFRhcmdldCB7CiBp
bnRlcmZhY2UgRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUgOiBXb3JrZXJHbG9iYWxTY29wZSB7
CiAgIFtSZXBsYWNlYWJsZV0gcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBuYW1lOwogCi0g
IHZvaWQgcG9zdE1lc3NhZ2UoYW55IG1lc3NhZ2UsIG9wdGlvbmFsIHNlcXVlbmNlPG9iamVjdD4g
dHJhbnNmZXIgPSBbXSk7CisgIHZvaWQgcG9zdE1lc3NhZ2UoYW55IG1lc3NhZ2UsIHNlcXVlbmNl
PG9iamVjdD4gdHJhbnNmZXIpOworICB2b2lkIHBvc3RNZXNzYWdlKGFueSBtZXNzYWdlLCBvcHRp
b25hbCBQb3N0TWVzc2FnZU9wdGlvbnMgb3B0aW9ucyA9IHt9KTsKIAogICB2b2lkIGNsb3NlKCk7
CiAKQEAgLTIwODUsMTggKzIxNzIsMjAgQEAgaW50ZXJmYWNlIG1peGluIEFic3RyYWN0V29ya2Vy
IHsKICAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbmVycm9yOwogfTsKIAotW0NvbnN0cnVjdG9y
KFVTVlN0cmluZyBzY3JpcHRVUkwsIG9wdGlvbmFsIFdvcmtlck9wdGlvbnMgb3B0aW9ucyksIEV4
cG9zZWQ9KFdpbmRvdyxXb3JrZXIpXQorW0NvbnN0cnVjdG9yKFVTVlN0cmluZyBzY3JpcHRVUkws
IG9wdGlvbmFsIFdvcmtlck9wdGlvbnMgb3B0aW9ucyA9IHt9KSwKKyBFeHBvc2VkPShXaW5kb3cs
V29ya2VyKV0KIGludGVyZmFjZSBXb3JrZXIgOiBFdmVudFRhcmdldCB7CiAgIHZvaWQgdGVybWlu
YXRlKCk7CiAKLSAgdm9pZCBwb3N0TWVzc2FnZShhbnkgbWVzc2FnZSwgb3B0aW9uYWwgc2VxdWVu
Y2U8b2JqZWN0PiB0cmFuc2ZlciA9IFtdKTsKKyAgdm9pZCBwb3N0TWVzc2FnZShhbnkgbWVzc2Fn
ZSwgc2VxdWVuY2U8b2JqZWN0PiB0cmFuc2Zlcik7CisgIHZvaWQgcG9zdE1lc3NhZ2UoYW55IG1l
c3NhZ2UsIG9wdGlvbmFsIFBvc3RNZXNzYWdlT3B0aW9ucyBvcHRpb25zID0ge30pOwogICBhdHRy
aWJ1dGUgRXZlbnRIYW5kbGVyIG9ubWVzc2FnZTsKICAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciBv
bm1lc3NhZ2VlcnJvcjsKIH07CiAKIGRpY3Rpb25hcnkgV29ya2VyT3B0aW9ucyB7CiAgIFdvcmtl
clR5cGUgdHlwZSA9ICJjbGFzc2ljIjsKLSAgUmVxdWVzdENyZWRlbnRpYWxzIGNyZWRlbnRpYWxz
ID0gIm9taXQiOyAvLyBjcmVkZW50aWFscyBpcyBvbmx5IHVzZWQgaWYgdHlwZSBpcyAibW9kdWxl
IgorICBSZXF1ZXN0Q3JlZGVudGlhbHMgY3JlZGVudGlhbHMgPSAic2FtZS1vcmlnaW4iOyAvLyBj
cmVkZW50aWFscyBpcyBvbmx5IHVzZWQgaWYgdHlwZSBpcyAibW9kdWxlIgogICBET01TdHJpbmcg
bmFtZSA9ICIiOwogfTsKIApAQCAtMjEwNCw3ICsyMTkzLDcgQEAgZW51bSBXb3JrZXJUeXBlIHsg
ImNsYXNzaWMiLCAibW9kdWxlIiB9OwogCiBXb3JrZXIgaW5jbHVkZXMgQWJzdHJhY3RXb3JrZXI7
CiAKLVtDb25zdHJ1Y3RvcihVU1ZTdHJpbmcgc2NyaXB0VVJMLCBvcHRpb25hbCAoRE9NU3RyaW5n
IG9yIFdvcmtlck9wdGlvbnMpIG9wdGlvbnMpLAorW0NvbnN0cnVjdG9yKFVTVlN0cmluZyBzY3Jp
cHRVUkwsIG9wdGlvbmFsIChET01TdHJpbmcgb3IgV29ya2VyT3B0aW9ucykgb3B0aW9ucyA9IHt9
KSwKICBFeHBvc2VkPShXaW5kb3csV29ya2VyKV0KIGludGVyZmFjZSBTaGFyZWRXb3JrZXIgOiBF
dmVudFRhcmdldCB7CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBNZXNzYWdlUG9ydCBwb3J0OwpAQCAt
MjE1NiwxMyArMjI0NSwxNSBAQCBpbnRlcmZhY2UgbWl4aW4gV2luZG93TG9jYWxTdG9yYWdlIHsK
IFdpbmRvdyBpbmNsdWRlcyBXaW5kb3dMb2NhbFN0b3JhZ2U7CiAKIFtFeHBvc2VkPVdpbmRvdywK
LSBDb25zdHJ1Y3RvcihET01TdHJpbmcgdHlwZSwgb3B0aW9uYWwgU3RvcmFnZUV2ZW50SW5pdCBl
dmVudEluaXREaWN0KV0KKyBDb25zdHJ1Y3RvcihET01TdHJpbmcgdHlwZSwgb3B0aW9uYWwgU3Rv
cmFnZUV2ZW50SW5pdCBldmVudEluaXREaWN0ID0ge30pXQogaW50ZXJmYWNlIFN0b3JhZ2VFdmVu
dCA6IEV2ZW50IHsKICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZz8ga2V5OwogICByZWFk
b25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nPyBvbGRWYWx1ZTsKICAgcmVhZG9ubHkgYXR0cmlidXRl
IERPTVN0cmluZz8gbmV3VmFsdWU7CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBVU1ZTdHJpbmcgdXJs
OwogICByZWFkb25seSBhdHRyaWJ1dGUgU3RvcmFnZT8gc3RvcmFnZUFyZWE7CisKKyAgdm9pZCBp
bml0U3RvcmFnZUV2ZW50KERPTVN0cmluZyB0eXBlLCBvcHRpb25hbCBib29sZWFuIGJ1YmJsZXMg
PSBmYWxzZSwgb3B0aW9uYWwgYm9vbGVhbiBjYW5jZWxhYmxlID0gZmFsc2UsIG9wdGlvbmFsIERP
TVN0cmluZz8ga2V5ID0gbnVsbCwgb3B0aW9uYWwgRE9NU3RyaW5nPyBvbGRWYWx1ZSA9IG51bGws
IG9wdGlvbmFsIERPTVN0cmluZz8gbmV3VmFsdWUgPSBudWxsLCBvcHRpb25hbCBVU1ZTdHJpbmcg
dXJsID0gIiIsIG9wdGlvbmFsIFN0b3JhZ2U/IHN0b3JhZ2VBcmVhID0gbnVsbCk7CiB9OwogCiBk
aWN0aW9uYXJ5IFN0b3JhZ2VFdmVudEluaXQgOiBFdmVudEluaXQgewpAQCAtMjM3OSw2ICsyNDcw
LDEwIEBAIHBhcnRpYWwgaW50ZXJmYWNlIEhUTUxQcmVFbGVtZW50IHsKICAgW0NFUmVhY3Rpb25z
XSBhdHRyaWJ1dGUgbG9uZyB3aWR0aDsKIH07CiAKK3BhcnRpYWwgaW50ZXJmYWNlIEhUTUxTdHls
ZUVsZW1lbnQgeworICBbQ0VSZWFjdGlvbnNdIGF0dHJpYnV0ZSBET01TdHJpbmcgdHlwZTsKK307
CisKIHBhcnRpYWwgaW50ZXJmYWNlIEhUTUxTY3JpcHRFbGVtZW50IHsKICAgW0NFUmVhY3Rpb25z
XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGNoYXJzZXQ7CiAgIFtDRVJlYWN0aW9uc10gYXR0cmlidXRl
IERPTVN0cmluZyBldmVudDsKQEAgLTI0NTcsOCArMjU1Miw3IEBAIHBhcnRpYWwgaW50ZXJmYWNl
IFdpbmRvdyB7CiAgIFtSZXBsYWNlYWJsZSwgU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRl
IEV4dGVybmFsIGV4dGVybmFsOwogfTsKIAotW0V4cG9zZWQ9V2luZG93LAotIE5vSW50ZXJmYWNl
T2JqZWN0XQorW0V4cG9zZWQ9V2luZG93XQogaW50ZXJmYWNlIEV4dGVybmFsIHsKICAgdm9pZCBB
ZGRTZWFyY2hQcm92aWRlcigpOwogICB2b2lkIElzU2VhcmNoUHJvdmlkZXJJbnN0YWxsZWQoKTsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aW50ZXJmYWNlcy9zZXJ2aWNlLXdvcmtlcnMuaWRsIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9pbnRlcmZhY2VzL3NlcnZpY2Utd29ya2Vycy5pZGwKaW5kZXgg
ZmIyZTAzM2E3YWEwNmIyMTkxZWI5MzM1NGNmN2Y0ZTU2YTU0Y2NmMy4uMGZlYWJkMzg5Y2Y1NTZh
NmZmNmQzOTc4ZmQyM2UyZTI4ODYyNDA1NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbnRlcmZhY2VzL3NlcnZpY2Utd29ya2Vycy5pZGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbnRlcmZh
Y2VzL3NlcnZpY2Utd29ya2Vycy5pZGwKQEAgLTEsMTMgKzEsMTQgQEAKIC8vIEdFTkVSQVRFRCBD
T05URU5UIC0gRE8gTk9UIEVESVQKIC8vIENvbnRlbnQgd2FzIGF1dG9tYXRpY2FsbHkgZXh0cmFj
dGVkIGJ5IFJlZmZ5IGludG8gcmVmZnktcmVwb3J0cwogLy8gKGh0dHBzOi8vZ2l0aHViLmNvbS90
aWRvdXN0L3JlZmZ5LXJlcG9ydHMpCi0vLyBTb3VyY2U6IFNlcnZpY2UgV29ya2VycyAxIChodHRw
czovL3czYy5naXRodWIuaW8vU2VydmljZVdvcmtlci92MS8pCisvLyBTb3VyY2U6IFNlcnZpY2Ug
V29ya2VycyBOaWdodGx5IChodHRwczovL3czYy5naXRodWIuaW8vU2VydmljZVdvcmtlci8pCiAK
IFtTZWN1cmVDb250ZXh0LCBFeHBvc2VkPShXaW5kb3csV29ya2VyKV0KIGludGVyZmFjZSBTZXJ2
aWNlV29ya2VyIDogRXZlbnRUYXJnZXQgewogICByZWFkb25seSBhdHRyaWJ1dGUgVVNWU3RyaW5n
IHNjcmlwdFVSTDsKICAgcmVhZG9ubHkgYXR0cmlidXRlIFNlcnZpY2VXb3JrZXJTdGF0ZSBzdGF0
ZTsKLSAgdm9pZCBwb3N0TWVzc2FnZShhbnkgbWVzc2FnZSwgb3B0aW9uYWwgc2VxdWVuY2U8b2Jq
ZWN0PiB0cmFuc2ZlciA9IFtdKTsKKyAgdm9pZCBwb3N0TWVzc2FnZShhbnkgbWVzc2FnZSwgc2Vx
dWVuY2U8b2JqZWN0PiB0cmFuc2Zlcik7CisgIHZvaWQgcG9zdE1lc3NhZ2UoYW55IG1lc3NhZ2Us
IG9wdGlvbmFsIFBvc3RNZXNzYWdlT3B0aW9ucyBvcHRpb25zID0ge30pOwogCiAgIC8vIGV2ZW50
CiAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25zdGF0ZWNoYW5nZTsKQEAgLTE1LDYgKzE2LDcg
QEAgaW50ZXJmYWNlIFNlcnZpY2VXb3JrZXIgOiBFdmVudFRhcmdldCB7CiBTZXJ2aWNlV29ya2Vy
IGluY2x1ZGVzIEFic3RyYWN0V29ya2VyOwogCiBlbnVtIFNlcnZpY2VXb3JrZXJTdGF0ZSB7Cisg
ICJwYXJzZWQiLAogICAiaW5zdGFsbGluZyIsCiAgICJpbnN0YWxsZWQiLAogICAiYWN0aXZhdGlu
ZyIsCkBAIC0yNyw2ICsyOSw3IEBAIGludGVyZmFjZSBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9u
IDogRXZlbnRUYXJnZXQgewogICByZWFkb25seSBhdHRyaWJ1dGUgU2VydmljZVdvcmtlcj8gaW5z
dGFsbGluZzsKICAgcmVhZG9ubHkgYXR0cmlidXRlIFNlcnZpY2VXb3JrZXI/IHdhaXRpbmc7CiAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBTZXJ2aWNlV29ya2VyPyBhY3RpdmU7CisgIFtTYW1lT2JqZWN0
XSByZWFkb25seSBhdHRyaWJ1dGUgTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIG5hdmlnYXRpb25Q
cmVsb2FkOwogCiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBVU1ZTdHJpbmcgc2NvcGU7CiAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBTZXJ2aWNlV29ya2VyVXBkYXRlVmlhQ2FjaGUgdXBkYXRlVmlhQ2FjaGU7
CkBAIC01Nyw3ICs2MCw3IEBAIGludGVyZmFjZSBTZXJ2aWNlV29ya2VyQ29udGFpbmVyIDogRXZl
bnRUYXJnZXQgewogICByZWFkb25seSBhdHRyaWJ1dGUgU2VydmljZVdvcmtlcj8gY29udHJvbGxl
cjsKICAgcmVhZG9ubHkgYXR0cmlidXRlIFByb21pc2U8U2VydmljZVdvcmtlclJlZ2lzdHJhdGlv
bj4gcmVhZHk7CiAKLSAgW05ld09iamVjdF0gUHJvbWlzZTxTZXJ2aWNlV29ya2VyUmVnaXN0cmF0
aW9uPiByZWdpc3RlcihVU1ZTdHJpbmcgc2NyaXB0VVJMLCBvcHRpb25hbCBSZWdpc3RyYXRpb25P
cHRpb25zIG9wdGlvbnMpOworICBbTmV3T2JqZWN0XSBQcm9taXNlPFNlcnZpY2VXb3JrZXJSZWdp
c3RyYXRpb24+IHJlZ2lzdGVyKFVTVlN0cmluZyBzY3JpcHRVUkwsIG9wdGlvbmFsIFJlZ2lzdHJh
dGlvbk9wdGlvbnMgb3B0aW9ucyA9IHt9KTsKIAogICBbTmV3T2JqZWN0XSBQcm9taXNlPGFueT4g
Z2V0UmVnaXN0cmF0aW9uKG9wdGlvbmFsIFVTVlN0cmluZyBjbGllbnRVUkwgPSAiIik7CiAgIFtO
ZXdPYmplY3RdIFByb21pc2U8RnJvemVuQXJyYXk8U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbj4+
IGdldFJlZ2lzdHJhdGlvbnMoKTsKQEAgLTc2LDEwICs3OSwyNCBAQCBkaWN0aW9uYXJ5IFJlZ2lz
dHJhdGlvbk9wdGlvbnMgewogICBTZXJ2aWNlV29ya2VyVXBkYXRlVmlhQ2FjaGUgdXBkYXRlVmlh
Q2FjaGUgPSAiaW1wb3J0cyI7CiB9OwogCitbU2VjdXJlQ29udGV4dCwgRXhwb3NlZD0oV2luZG93
LFdvcmtlcildCitpbnRlcmZhY2UgTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIHsKKyAgUHJvbWlz
ZTx2b2lkPiBlbmFibGUoKTsKKyAgUHJvbWlzZTx2b2lkPiBkaXNhYmxlKCk7CisgIFByb21pc2U8
dm9pZD4gc2V0SGVhZGVyVmFsdWUoQnl0ZVN0cmluZyB2YWx1ZSk7CisgIFByb21pc2U8TmF2aWdh
dGlvblByZWxvYWRTdGF0ZT4gZ2V0U3RhdGUoKTsKK307CisKK2RpY3Rpb25hcnkgTmF2aWdhdGlv
blByZWxvYWRTdGF0ZSB7CisgIGJvb2xlYW4gZW5hYmxlZCA9IGZhbHNlOworICBCeXRlU3RyaW5n
IGhlYWRlclZhbHVlOworfTsKKwogW0dsb2JhbD0oV29ya2VyLFNlcnZpY2VXb3JrZXIpLCBFeHBv
c2VkPVNlcnZpY2VXb3JrZXJdCiBpbnRlcmZhY2UgU2VydmljZVdvcmtlckdsb2JhbFNjb3BlIDog
V29ya2VyR2xvYmFsU2NvcGUgewogICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIENs
aWVudHMgY2xpZW50czsKICAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBTZXJ2aWNl
V29ya2VyUmVnaXN0cmF0aW9uIHJlZ2lzdHJhdGlvbjsKKyAgW1NhbWVPYmplY3RdIHJlYWRvbmx5
IGF0dHJpYnV0ZSBTZXJ2aWNlV29ya2VyIHNlcnZpY2VXb3JrZXI7CiAKICAgW05ld09iamVjdF0g
UHJvbWlzZTx2b2lkPiBza2lwV2FpdGluZygpOwogCkBAIC04Nyw4ICsxMDQsNyBAQCBpbnRlcmZh
Y2UgU2VydmljZVdvcmtlckdsb2JhbFNjb3BlIDogV29ya2VyR2xvYmFsU2NvcGUgewogICBhdHRy
aWJ1dGUgRXZlbnRIYW5kbGVyIG9uYWN0aXZhdGU7CiAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIg
b25mZXRjaDsKIAotICAvLyBldmVudAotICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9ubWVzc2Fn
ZTsgLy8gZXZlbnQuc291cmNlIG9mIHRoZSBtZXNzYWdlIGV2ZW50cyBpcyBDbGllbnQgb2JqZWN0
CisgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25tZXNzYWdlOwogICBhdHRyaWJ1dGUgRXZlbnRI
YW5kbGVyIG9ubWVzc2FnZWVycm9yOwogfTsKIApAQCAtOTgsNyArMTE0LDggQEAgaW50ZXJmYWNl
IENsaWVudCB7CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBGcmFtZVR5cGUgZnJhbWVUeXBlOwogICBy
ZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGlkOwogICByZWFkb25seSBhdHRyaWJ1dGUgQ2xp
ZW50VHlwZSB0eXBlOwotICB2b2lkIHBvc3RNZXNzYWdlKGFueSBtZXNzYWdlLCBvcHRpb25hbCBz
ZXF1ZW5jZTxvYmplY3Q+IHRyYW5zZmVyID0gW10pOworICB2b2lkIHBvc3RNZXNzYWdlKGFueSBt
ZXNzYWdlLCBzZXF1ZW5jZTxvYmplY3Q+IHRyYW5zZmVyKTsKKyAgdm9pZCBwb3N0TWVzc2FnZShh
bnkgbWVzc2FnZSwgb3B0aW9uYWwgUG9zdE1lc3NhZ2VPcHRpb25zIG9wdGlvbnMgPSB7fSk7CiB9
OwogCiBbRXhwb3NlZD1TZXJ2aWNlV29ya2VyXQpAQCAtMTIxLDcgKzEzOCw3IEBAIGVudW0gRnJh
bWVUeXBlIHsKIGludGVyZmFjZSBDbGllbnRzIHsKICAgLy8gVGhlIG9iamVjdHMgcmV0dXJuZWQg
d2lsbCBiZSBuZXcgaW5zdGFuY2VzIGV2ZXJ5IHRpbWUKICAgW05ld09iamVjdF0gUHJvbWlzZTxh
bnk+IGdldChET01TdHJpbmcgaWQpOwotICBbTmV3T2JqZWN0XSBQcm9taXNlPEZyb3plbkFycmF5
PENsaWVudD4+IG1hdGNoQWxsKG9wdGlvbmFsIENsaWVudFF1ZXJ5T3B0aW9ucyBvcHRpb25zKTsK
KyAgW05ld09iamVjdF0gUHJvbWlzZTxGcm96ZW5BcnJheTxDbGllbnQ+PiBtYXRjaEFsbChvcHRp
b25hbCBDbGllbnRRdWVyeU9wdGlvbnMgb3B0aW9ucyA9IHt9KTsKICAgW05ld09iamVjdF0gUHJv
bWlzZTxXaW5kb3dDbGllbnQ/PiBvcGVuV2luZG93KFVTVlN0cmluZyB1cmwpOwogICBbTmV3T2Jq
ZWN0XSBQcm9taXNlPHZvaWQ+IGNsYWltKCk7CiB9OwpAQCAtMTM4LDcgKzE1NSw3IEBAIGVudW0g
Q2xpZW50VHlwZSB7CiAgICJhbGwiCiB9OwogCi1bQ29uc3RydWN0b3IoRE9NU3RyaW5nIHR5cGUs
IG9wdGlvbmFsIEV4dGVuZGFibGVFdmVudEluaXQgZXZlbnRJbml0RGljdCksIEV4cG9zZWQ9U2Vy
dmljZVdvcmtlcl0KK1tDb25zdHJ1Y3RvcihET01TdHJpbmcgdHlwZSwgb3B0aW9uYWwgRXh0ZW5k
YWJsZUV2ZW50SW5pdCBldmVudEluaXREaWN0ID0ge30pLCBFeHBvc2VkPVNlcnZpY2VXb3JrZXJd
CiBpbnRlcmZhY2UgRXh0ZW5kYWJsZUV2ZW50IDogRXZlbnQgewogICB2b2lkIHdhaXRVbnRpbChQ
cm9taXNlPGFueT4gZik7CiB9OwpAQCAtMTUwLDE3ICsxNjcsMjMgQEAgZGljdGlvbmFyeSBFeHRl
bmRhYmxlRXZlbnRJbml0IDogRXZlbnRJbml0IHsKIFtDb25zdHJ1Y3RvcihET01TdHJpbmcgdHlw
ZSwgRmV0Y2hFdmVudEluaXQgZXZlbnRJbml0RGljdCksIEV4cG9zZWQ9U2VydmljZVdvcmtlcl0K
IGludGVyZmFjZSBGZXRjaEV2ZW50IDogRXh0ZW5kYWJsZUV2ZW50IHsKICAgW1NhbWVPYmplY3Rd
IHJlYWRvbmx5IGF0dHJpYnV0ZSBSZXF1ZXN0IHJlcXVlc3Q7CisgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBQcm9taXNlPGFueT4gcHJlbG9hZFJlc3BvbnNlOwogICByZWFkb25seSBhdHRyaWJ1dGUgRE9N
U3RyaW5nIGNsaWVudElkOworICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHJlc3VsdGlu
Z0NsaWVudElkOworICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHJlcGxhY2VzQ2xpZW50
SWQ7CiAKICAgdm9pZCByZXNwb25kV2l0aChQcm9taXNlPFJlc3BvbnNlPiByKTsKIH07CiAKIGRp
Y3Rpb25hcnkgRmV0Y2hFdmVudEluaXQgOiBFeHRlbmRhYmxlRXZlbnRJbml0IHsKICAgcmVxdWly
ZWQgUmVxdWVzdCByZXF1ZXN0OworICBQcm9taXNlPGFueT4gcHJlbG9hZFJlc3BvbnNlOwogICBE
T01TdHJpbmcgY2xpZW50SWQgPSAiIjsKKyAgRE9NU3RyaW5nIHJlc3VsdGluZ0NsaWVudElkID0g
IiI7CisgIERPTVN0cmluZyByZXBsYWNlc0NsaWVudElkID0gIiI7CiB9OwogCi1bQ29uc3RydWN0
b3IoRE9NU3RyaW5nIHR5cGUsIG9wdGlvbmFsIEV4dGVuZGFibGVNZXNzYWdlRXZlbnRJbml0IGV2
ZW50SW5pdERpY3QpLCBFeHBvc2VkPVNlcnZpY2VXb3JrZXJdCitbQ29uc3RydWN0b3IoRE9NU3Ry
aW5nIHR5cGUsIG9wdGlvbmFsIEV4dGVuZGFibGVNZXNzYWdlRXZlbnRJbml0IGV2ZW50SW5pdERp
Y3QgPSB7fSksIEV4cG9zZWQ9U2VydmljZVdvcmtlcl0KIGludGVyZmFjZSBFeHRlbmRhYmxlTWVz
c2FnZUV2ZW50IDogRXh0ZW5kYWJsZUV2ZW50IHsKICAgcmVhZG9ubHkgYXR0cmlidXRlIGFueSBk
YXRhOwogICByZWFkb25seSBhdHRyaWJ1dGUgVVNWU3RyaW5nIG9yaWdpbjsKQEAgLTE3NywxOSAr
MjAwLDE5IEBAIGRpY3Rpb25hcnkgRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudEluaXQgOiBFeHRlbmRh
YmxlRXZlbnRJbml0IHsKICAgc2VxdWVuY2U8TWVzc2FnZVBvcnQ+IHBvcnRzID0gW107CiB9Owog
Ci1wYXJ0aWFsIGludGVyZmFjZSBXaW5kb3dPcldvcmtlckdsb2JhbFNjb3BlIHsKK3BhcnRpYWwg
aW50ZXJmYWNlIG1peGluIFdpbmRvd09yV29ya2VyR2xvYmFsU2NvcGUgewogICBbU2VjdXJlQ29u
dGV4dCwgU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIENhY2hlU3RvcmFnZSBjYWNoZXM7
CiB9OwogCiBbU2VjdXJlQ29udGV4dCwgRXhwb3NlZD0oV2luZG93LFdvcmtlcildCiBpbnRlcmZh
Y2UgQ2FjaGUgewotICBbTmV3T2JqZWN0XSBQcm9taXNlPGFueT4gbWF0Y2goUmVxdWVzdEluZm8g
cmVxdWVzdCwgb3B0aW9uYWwgQ2FjaGVRdWVyeU9wdGlvbnMgb3B0aW9ucyk7Ci0gIFtOZXdPYmpl
Y3RdIFByb21pc2U8RnJvemVuQXJyYXk8UmVzcG9uc2U+PiBtYXRjaEFsbChvcHRpb25hbCBSZXF1
ZXN0SW5mbyByZXF1ZXN0LCBvcHRpb25hbCBDYWNoZVF1ZXJ5T3B0aW9ucyBvcHRpb25zKTsKKyAg
W05ld09iamVjdF0gUHJvbWlzZTxhbnk+IG1hdGNoKFJlcXVlc3RJbmZvIHJlcXVlc3QsIG9wdGlv
bmFsIENhY2hlUXVlcnlPcHRpb25zIG9wdGlvbnMgPSB7fSk7CisgIFtOZXdPYmplY3RdIFByb21p
c2U8RnJvemVuQXJyYXk8UmVzcG9uc2U+PiBtYXRjaEFsbChvcHRpb25hbCBSZXF1ZXN0SW5mbyBy
ZXF1ZXN0LCBvcHRpb25hbCBDYWNoZVF1ZXJ5T3B0aW9ucyBvcHRpb25zID0ge30pOwogICBbTmV3
T2JqZWN0XSBQcm9taXNlPHZvaWQ+IGFkZChSZXF1ZXN0SW5mbyByZXF1ZXN0KTsKICAgW05ld09i
amVjdF0gUHJvbWlzZTx2b2lkPiBhZGRBbGwoc2VxdWVuY2U8UmVxdWVzdEluZm8+IHJlcXVlc3Rz
KTsKICAgW05ld09iamVjdF0gUHJvbWlzZTx2b2lkPiBwdXQoUmVxdWVzdEluZm8gcmVxdWVzdCwg
UmVzcG9uc2UgcmVzcG9uc2UpOwotICBbTmV3T2JqZWN0XSBQcm9taXNlPGJvb2xlYW4+IGRlbGV0
ZShSZXF1ZXN0SW5mbyByZXF1ZXN0LCBvcHRpb25hbCBDYWNoZVF1ZXJ5T3B0aW9ucyBvcHRpb25z
KTsKLSAgW05ld09iamVjdF0gUHJvbWlzZTxGcm96ZW5BcnJheTxSZXF1ZXN0Pj4ga2V5cyhvcHRp
b25hbCBSZXF1ZXN0SW5mbyByZXF1ZXN0LCBvcHRpb25hbCBDYWNoZVF1ZXJ5T3B0aW9ucyBvcHRp
b25zKTsKKyAgW05ld09iamVjdF0gUHJvbWlzZTxib29sZWFuPiBkZWxldGUoUmVxdWVzdEluZm8g
cmVxdWVzdCwgb3B0aW9uYWwgQ2FjaGVRdWVyeU9wdGlvbnMgb3B0aW9ucyA9IHt9KTsKKyAgW05l
d09iamVjdF0gUHJvbWlzZTxGcm96ZW5BcnJheTxSZXF1ZXN0Pj4ga2V5cyhvcHRpb25hbCBSZXF1
ZXN0SW5mbyByZXF1ZXN0LCBvcHRpb25hbCBDYWNoZVF1ZXJ5T3B0aW9ucyBvcHRpb25zID0ge30p
OwogfTsKIAogZGljdGlvbmFyeSBDYWNoZVF1ZXJ5T3B0aW9ucyB7CkBAIC0yMDAsNyArMjIzLDcg
QEAgZGljdGlvbmFyeSBDYWNoZVF1ZXJ5T3B0aW9ucyB7CiAKIFtTZWN1cmVDb250ZXh0LCBFeHBv
c2VkPShXaW5kb3csV29ya2VyKV0KIGludGVyZmFjZSBDYWNoZVN0b3JhZ2UgewotICBbTmV3T2Jq
ZWN0XSBQcm9taXNlPGFueT4gbWF0Y2goUmVxdWVzdEluZm8gcmVxdWVzdCwgb3B0aW9uYWwgTXVs
dGlDYWNoZVF1ZXJ5T3B0aW9ucyBvcHRpb25zKTsKKyAgW05ld09iamVjdF0gUHJvbWlzZTxhbnk+
IG1hdGNoKFJlcXVlc3RJbmZvIHJlcXVlc3QsIG9wdGlvbmFsIE11bHRpQ2FjaGVRdWVyeU9wdGlv
bnMgb3B0aW9ucyA9IHt9KTsKICAgW05ld09iamVjdF0gUHJvbWlzZTxib29sZWFuPiBoYXMoRE9N
U3RyaW5nIGNhY2hlTmFtZSk7CiAgIFtOZXdPYmplY3RdIFByb21pc2U8Q2FjaGU+IG9wZW4oRE9N
U3RyaW5nIGNhY2hlTmFtZSk7CiAgIFtOZXdPYmplY3RdIFByb21pc2U8Ym9vbGVhbj4gZGVsZXRl
KERPTVN0cmluZyBjYWNoZU5hbWUpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvaWRsaGFybmVzcy5qcyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL2lkbGhhcm5lc3Mu
anMKaW5kZXggYTA4OGJjNGMyYTc4MDAyNTAwZmI4Nzk0MTBlMTgwMGYxNjg0NWFmNy4uZjY4YWQx
ZGQ3ZDgxZTU0YmVhNWY5MDA0Mjg0ZWZmNDlhNzEzYTMyZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvaWRsaGFybmVzcy5q
cworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291
cmNlcy9pZGxoYXJuZXNzLmpzCkBAIC01Nyw3ICs1Nyw2IEBAIGlmICghKCdzdWJzZXRUZXN0QnlL
ZXknIGluIHNlbGYpKSB7CiB9CiAvLy8gSGVscGVycyAvLy8KIGZ1bmN0aW9uIGNvbnN0VmFsdWUg
KGNudCkKLS8vQHsKIHsKICAgICBpZiAoY250LnR5cGUgPT09ICJudWxsIikgcmV0dXJuIG51bGw7
CiAgICAgaWYgKGNudC50eXBlID09PSAiTmFOIikgcmV0dXJuIE5hTjsKQEAgLTY2LDkgKzY1LDcg
QEAgZnVuY3Rpb24gY29uc3RWYWx1ZSAoY250KQogICAgIHJldHVybiBjbnQudmFsdWU7CiB9CiAK
LS8vQH0KIGZ1bmN0aW9uIG1pbk92ZXJsb2FkTGVuZ3RoKG92ZXJsb2FkcykKLS8vQHsKIHsKICAg
ICAvLyAiVGhlIHZhbHVlIG9mIHRoZSBGdW5jdGlvbiBvYmplY3TigJlzIOKAnGxlbmd0aOKAnSBw
cm9wZXJ0eSBpcwogICAgIC8vIGEgTnVtYmVyIGRldGVybWluZWQgYXMgZm9sbG93czoKQEAgLTg3
LDkgKzg0LDcgQEAgZnVuY3Rpb24gbWluT3ZlcmxvYWRMZW5ndGgob3ZlcmxvYWRzKQogICAgIC5y
ZWR1Y2UoZnVuY3Rpb24obSwgbikgeyByZXR1cm4gTWF0aC5taW4obSwgbik7IH0pOwogfQogCi0v
L0B9CiBmdW5jdGlvbiB0aHJvd09yUmVqZWN0KGFfdGVzdCwgb3BlcmF0aW9uLCBmbiwgb2JqLCBh
cmdzLCBtZXNzYWdlLCBjYikKLS8vQHsKIHsKICAgICBpZiAob3BlcmF0aW9uLmlkbFR5cGUuZ2Vu
ZXJpYyAhPT0gIlByb21pc2UiKSB7CiAgICAgICAgIGFzc2VydF90aHJvd3MobmV3IFR5cGVFcnJv
cigpLCBmdW5jdGlvbigpIHsKQEAgLTEwOCw5ICsxMDMsNyBAQCBmdW5jdGlvbiB0aHJvd09yUmVq
ZWN0KGFfdGVzdCwgb3BlcmF0aW9uLCBmbiwgb2JqLCBhcmdzLCBtZXNzYWdlLCBjYikKICAgICB9
CiB9CiAKLS8vQH0KIGZ1bmN0aW9uIGF3YWl0TkNhbGxiYWNrcyhuLCBjYiwgY3R4KQotLy9Aewog
ewogICAgIHZhciBjb3VudGVyID0gMDsKICAgICByZXR1cm4gZnVuY3Rpb24oKSB7CkBAIC0xMjEs
OSArMTE0LDcgQEAgZnVuY3Rpb24gYXdhaXROQ2FsbGJhY2tzKG4sIGNiLCBjdHgpCiAgICAgfTsK
IH0KIAotLy9AfQogdmFyIGZyb3VuZCA9Ci0vL0B7CiAoZnVuY3Rpb24oKXsKICAgICBpZiAoTWF0
aC5mcm91bmQpIHJldHVybiBNYXRoLmZyb3VuZDsKIApAQCAtMTMzLDEyICsxMjQsMTAgQEAgdmFy
IGZyb3VuZCA9CiAgICAgICAgIHJldHVybiBhcnJbMF07CiAgICAgfTsKIH0pKCk7Ci0vL0B9CiAK
IC8vLyBJZGxIYXJuZXNzRXJyb3IgLy8vCiAvLyBFbnRyeSBwb2ludAogc2VsZi5JZGxIYXJuZXNz
RXJyb3IgPSBmdW5jdGlvbihtZXNzYWdlKQotLy9AewogewogICAgIC8qKgogICAgICAqIE1lc3Nh
Z2UgdG8gYmUgcHJpbnRlZCBhcyB0aGUgZXJyb3IncyB0b1N0cmluZyBpbnZvY2F0aW9uLgpAQCAt
MTQ4LDE5ICsxMzcsMTUgQEAgc2VsZi5JZGxIYXJuZXNzRXJyb3IgPSBmdW5jdGlvbihtZXNzYWdl
KQogCiBJZGxIYXJuZXNzRXJyb3IucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShFcnJvci5wcm90
b3R5cGUpOwogCi0vL0B9CiBJZGxIYXJuZXNzRXJyb3IucHJvdG90eXBlLnRvU3RyaW5nID0gZnVu
Y3Rpb24oKQotLy9AewogewogICAgIHJldHVybiB0aGlzLm1lc3NhZ2U7CiB9OwogCi0vL0B9CiAK
IC8vLyBJZGxBcnJheSAvLy8KIC8vIEVudHJ5IHBvaW50CiBzZWxmLklkbEFycmF5ID0gZnVuY3Rp
b24oKQotLy9AewogewogICAgIC8qKgogICAgICAqIEEgbWFwIGZyb20gc3RyaW5ncyB0byB0aGUg
Y29ycmVzcG9uZGluZyBuYW1lZCBJZGxPYmplY3QsIHN1Y2ggYXMKQEAgLTIwOCwxOSArMTkzLDIx
IEBAIHNlbGYuSWRsQXJyYXkgPSBmdW5jdGlvbigpCiAgICAgdGhpc1siaW1wbGVtZW50cyJdID0g
e307CiAgICAgdGhpc1siaW5jbHVkZXMiXSA9IHt9OwogICAgIHRoaXNbImluaGVyaXRhbmNlIl0g
PSB7fTsKKworICAgIC8qKgorICAgICAqIFJlY29yZCBvZiBza2lwcGVkIElETCBpdGVtcywgaW4g
Y2FzZSB3ZSBsYXRlciByZWFsaXplIHRoYXQgdGhleSBhcmUgYQorICAgICAqIGRlcGVuZGVuY3kg
KHRvIHJldHJvYWN0aXZlbHkgcHJvY2VzcyB0aGVtKS4KKyAgICAgKi8KKyAgICB0aGlzLnNraXBw
ZWQgPSBuZXcgTWFwKCk7CiB9OwogCi0vL0B9CiBJZGxBcnJheS5wcm90b3R5cGUuYWRkX2lkbHMg
PSBmdW5jdGlvbihyYXdfaWRscywgb3B0aW9ucykKLS8vQHsKIHsKICAgICAvKiogRW50cnkgcG9p
bnQuICBTZWUgZG9jdW1lbnRhdGlvbiBhdCBiZWdpbm5pbmcgb2YgZmlsZS4gKi8KICAgICB0aGlz
LmludGVybmFsX2FkZF9pZGxzKFdlYklETDIucGFyc2UocmF3X2lkbHMpLCBvcHRpb25zKTsKIH07
CiAKLS8vQH0KIElkbEFycmF5LnByb3RvdHlwZS5hZGRfdW50ZXN0ZWRfaWRscyA9IGZ1bmN0aW9u
KHJhd19pZGxzLCBvcHRpb25zKQotLy9AewogewogICAgIC8qKiBFbnRyeSBwb2ludC4gIFNlZSBk
b2N1bWVudGF0aW9uIGF0IGJlZ2lubmluZyBvZiBmaWxlLiAqLwogICAgIHZhciBwYXJzZWRfaWRs
cyA9IFdlYklETDIucGFyc2UocmF3X2lkbHMpOwpAQCAtMjI4LDkgKzIxNSw3IEBAIElkbEFycmF5
LnByb3RvdHlwZS5hZGRfdW50ZXN0ZWRfaWRscyA9IGZ1bmN0aW9uKHJhd19pZGxzLCBvcHRpb25z
KQogICAgIHRoaXMuaW50ZXJuYWxfYWRkX2lkbHMocGFyc2VkX2lkbHMsIG9wdGlvbnMpOwogfTsK
IAotLy9AfQogSWRsQXJyYXkucHJvdG90eXBlLm1hcmtfYXNfdW50ZXN0ZWQgPSBmdW5jdGlvbiAo
cGFyc2VkX2lkbHMpCi0vL0B7CiB7CiAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwYXJzZWRfaWRs
cy5sZW5ndGg7IGkrKykgewogICAgICAgICBwYXJzZWRfaWRsc1tpXS51bnRlc3RlZCA9IHRydWU7
CkBAIC0yNDEsMjEgKzIyNiwxNSBAQCBJZGxBcnJheS5wcm90b3R5cGUubWFya19hc191bnRlc3Rl
ZCA9IGZ1bmN0aW9uIChwYXJzZWRfaWRscykKICAgICAgICAgfQogICAgIH0KIH07Ci0vL0B9CiAK
LS8vQH0KIElkbEFycmF5LnByb3RvdHlwZS5pc19leGNsdWRlZF9ieV9vcHRpb25zID0gZnVuY3Rp
b24gKG5hbWUsIG9wdGlvbnMpCi0vL0B7CiB7CiAgICAgcmV0dXJuIG9wdGlvbnMgJiYKICAgICAg
ICAgKG9wdGlvbnMuZXhjZXB0ICYmIG9wdGlvbnMuZXhjZXB0LmluY2x1ZGVzKG5hbWUpCiAgICAg
ICAgICB8fCBvcHRpb25zLm9ubHkgJiYgIW9wdGlvbnMub25seS5pbmNsdWRlcyhuYW1lKSk7CiB9
OwotLy9AfQogCi0vL0B9CiBJZGxBcnJheS5wcm90b3R5cGUuYWRkX2RlcGVuZGVuY3lfaWRscyA9
IGZ1bmN0aW9uKHJhd19pZGxzLCBvcHRpb25zKQotLy9AewogewogICAgIGNvbnN0IHBhcnNlZF9p
ZGxzID0gV2ViSURMMi5wYXJzZShyYXdfaWRscyk7CiAgICAgY29uc3QgbmV3X29wdGlvbnMgPSB7
IG9ubHk6IFtdIH0KQEAgLTI3MSwyMiArMjUwLDUwIEBAIElkbEFycmF5LnByb3RvdHlwZS5hZGRf
ZGVwZW5kZW5jeV9pZGxzID0gZnVuY3Rpb24ocmF3X2lkbHMsIG9wdGlvbnMpCiAgICAgICAgIGFs
bF9kZXBzLmFkZChrKTsKICAgICAgICAgdGhpcy5pbmNsdWRlc1trXS5mb3JFYWNoKHYgPT4gYWxs
X2RlcHMuYWRkKHYpKTsKICAgICB9KTsKLSAgICB0aGlzLnBhcnRpYWxzLm1hcChwID0+IHAubmFt
ZSkuZm9yRWFjaCh2ID0+IGFsbF9kZXBzLmFkZCh2KSk7Ci0gICAgLy8gQWRkIHRoZSBhdHRyaWJ1
dGUgaWRsVHlwZXMgb2YgYWxsIHRoZSBuZXN0ZWQgbWVtYmVycyBvZiBhbGwgdGVzdGVkIGlkbHMu
Ci0gICAgZm9yIChjb25zdCBvYmogb2YgW3RoaXMubWVtYmVycywgdGhpcy5wYXJ0aWFsc10pIHsK
LSAgICAgICAgY29uc3QgdGVzdGVkID0gT2JqZWN0LnZhbHVlcyhvYmopLmZpbHRlcihtID0+ICFt
LnVudGVzdGVkICYmIG0ubWVtYmVycyk7Ci0gICAgICAgIGZvciAoY29uc3QgcGFyc2VkIG9mIHRl
c3RlZCkgewotICAgICAgICAgICAgZm9yIChjb25zdCBhdHRyIG9mIE9iamVjdC52YWx1ZXMocGFy
c2VkLm1lbWJlcnMpLmZpbHRlcihtID0+ICFtLnVudGVzdGVkICYmIG0udHlwZSA9PT0gJ2F0dHJp
YnV0ZScpKSB7Ci0gICAgICAgICAgICAgICAgYWxsX2RlcHMuYWRkKGF0dHIuaWRsVHlwZS5pZGxU
eXBlKTsKLSAgICAgICAgICAgIH0KKyAgICB0aGlzLnBhcnRpYWxzLmZvckVhY2gocCA9PiBhbGxf
ZGVwcy5hZGQocC5uYW1lKSk7CisgICAgLy8gQWRkICdUeXBlT2ZUeXBlJyBmb3IgZWFjaCAidHlw
ZWRlZiBUeXBlT2ZUeXBlIE15VHlwZTsiIGVudHJ5LgorICAgIE9iamVjdC5lbnRyaWVzKHRoaXMu
bWVtYmVycykuZm9yRWFjaCgoW2ssIHZdKSA9PiB7CisgICAgICAgIGlmICh2IGluc3RhbmNlb2Yg
SWRsVHlwZWRlZikgeworICAgICAgICAgICAgbGV0IGRlZnMgPSB2LmlkbFR5cGUudW5pb24KKyAg
ICAgICAgICAgICAgICA/IHYuaWRsVHlwZS5pZGxUeXBlLm1hcCh0ID0+IHQuaWRsVHlwZSkKKyAg
ICAgICAgICAgICAgICA6IFt2LmlkbFR5cGUuaWRsVHlwZV07CisgICAgICAgICAgICBkZWZzLmZv
ckVhY2goZCA9PiBhbGxfZGVwcy5hZGQoZCkpOwogICAgICAgICB9Ci0gICAgfQorICAgIH0pOwor
CisgICAgLy8gQWRkIHRoZSBhdHRyaWJ1dGUgaWRsVHlwZXMgb2YgYWxsIHRoZSBuZXN0ZWQgbWVt
YmVycyBvZiBpZGxzLgorICAgIGNvbnN0IGF0dHJEZXBzID0gcGFyc2VkSWRscyA9PiB7CisgICAg
ICAgIHJldHVybiBwYXJzZWRJZGxzLnJlZHVjZSgoZGVwcywgcGFyc2VkKSA9PiB7CisgICAgICAg
ICAgICBpZiAocGFyc2VkLm1lbWJlcnMpIHsKKyAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGF0
dHIgb2YgT2JqZWN0LnZhbHVlcyhwYXJzZWQubWVtYmVycykuZmlsdGVyKG0gPT4gbS50eXBlID09
PSAnYXR0cmlidXRlJykpIHsKKyAgICAgICAgICAgICAgICAgICAgbGV0IGF0dHJUeXBlID0gYXR0
ci5pZGxUeXBlOworICAgICAgICAgICAgICAgICAgICAvLyBDaGVjayBmb3IgZ2VuZXJpYyBtZW1i
ZXJzIChlLmcuIEZyb3plbkFycmF5PE15VHlwZT4pCisgICAgICAgICAgICAgICAgICAgIGlmIChh
dHRyVHlwZS5nZW5lcmljKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBkZXBzLmFkZChhdHRy
VHlwZS5nZW5lcmljKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGF0dHJUeXBlID0gYXR0clR5
cGUuaWRsVHlwZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBk
ZXBzLmFkZChhdHRyVHlwZS5pZGxUeXBlKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICB9CisgICAgICAgICAgICBpZiAocGFyc2VkLmJhc2UgaW4gdGhpcy5tZW1iZXJzKSB7CisgICAg
ICAgICAgICAgICAgYXR0ckRlcHMoW3RoaXMubWVtYmVyc1twYXJzZWQuYmFzZV1dKS5mb3JFYWNo
KGRlcCA9PiBkZXBzLmFkZChkZXApKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVy
biBkZXBzOworICAgICAgICB9LCBuZXcgU2V0KCkpOworICAgIH07CisKKyAgICBjb25zdCB0ZXN0
ZWRNZW1iZXJzID0gT2JqZWN0LnZhbHVlcyh0aGlzLm1lbWJlcnMpLmZpbHRlcihtID0+ICFtLnVu
dGVzdGVkICYmIG0ubWVtYmVycyk7CisgICAgYXR0ckRlcHModGVzdGVkTWVtYmVycykuZm9yRWFj
aChkZXAgPT4gYWxsX2RlcHMuYWRkKGRlcCkpOworCisgICAgY29uc3QgdGVzdGVkUGFydGlhbHMg
PSB0aGlzLnBhcnRpYWxzLmZpbHRlcihtID0+ICFtLnVudGVzdGVkICYmIG0ubWVtYmVycyk7Cisg
ICAgYXR0ckRlcHModGVzdGVkUGFydGlhbHMpLmZvckVhY2goZGVwID0+IGFsbF9kZXBzLmFkZChk
ZXApKTsKKwogCiAgICAgaWYgKG9wdGlvbnMgJiYgb3B0aW9ucy5leGNlcHQgJiYgb3B0aW9ucy5v
bmx5KSB7CiAgICAgICAgIHRocm93IG5ldyBJZGxIYXJuZXNzRXJyb3IoIlRoZSBvbmx5IGFuZCBl
eGNlcHQgb3B0aW9ucyBjYW4ndCBiZSB1c2VkIHRvZ2V0aGVyLiIpOwogICAgIH0KIAotICAgIGNv
bnN0IHNob3VsZF9za2lwID0gbmFtZSA9PiB7CisgICAgY29uc3QgZGVmaW5lZF9vcl91bnRlc3Rl
ZCA9IG5hbWUgPT4gewogICAgICAgICAvLyBOT1RFOiBEZXBzIGFyZSB1bnRlc3RlZCwgc28gd2Un
cmUgbGVuaWVudCwgYW5kIHNraXAgcmUtZW5jb3VudGVyZWQgZGVmaW5pdGlvbnMuCiAgICAgICAg
IC8vIGUuZy4gZm9yICdpZGwnIGNvbnRhaW5pbmcgQTpCLCBCOkMsIEM6RAogICAgICAgICAvLyAg
ICAgIGFycmF5LmFkZF9pZGxzKGlkbCwge29ubHk6IFsnQScsJ0InXX0pLgpAQCAtMjk1LDkgKzMw
Miw3IEBAIElkbEFycmF5LnByb3RvdHlwZS5hZGRfZGVwZW5kZW5jeV9pZGxzID0gZnVuY3Rpb24o
cmF3X2lkbHMsIG9wdGlvbnMpCiAgICAgICAgIHJldHVybiBuYW1lIGluIHRoaXMubWVtYmVycwog
ICAgICAgICAgICAgfHwgdGhpcy5pc19leGNsdWRlZF9ieV9vcHRpb25zKG5hbWUsIG9wdGlvbnMp
OwogICAgIH0KLSAgICAvLyBSZWNvcmQgb2Ygc2tpcHBlZCBpdGVtcywgaW4gY2FzZSB3ZSBsYXRl
ciBkZXRlcm1pbmUgdGhleSBhcmUgYSBkZXBlbmRlbmN5LgogICAgIC8vIE1hcHMgbmFtZSAtPiBb
cGFyc2VkX2lkbCwgLi4uXQotICAgIGNvbnN0IHNraXBwZWQgPSBuZXcgTWFwKCk7CiAgICAgY29u
c3QgcHJvY2VzcyA9IGZ1bmN0aW9uKHBhcnNlZCkgewogICAgICAgICB2YXIgZGVwcyA9IFtdOwog
ICAgICAgICBpZiAocGFyc2VkLm5hbWUpIHsKQEAgLTMxMSwxMyArMzE2LDE1IEBAIElkbEFycmF5
LnByb3RvdHlwZS5hZGRfZGVwZW5kZW5jeV9pZGxzID0gZnVuY3Rpb24ocmF3X2lkbHMsIG9wdGlv
bnMpCiAgICAgICAgIH0KIAogICAgICAgICBkZXBzID0gZGVwcy5maWx0ZXIoZnVuY3Rpb24obmFt
ZSkgewotICAgICAgICAgICAgaWYgKCFuYW1lIHx8IHNob3VsZF9za2lwKG5hbWUpIHx8ICFhbGxf
ZGVwcy5oYXMobmFtZSkpIHsKKyAgICAgICAgICAgIGlmICghbmFtZQorICAgICAgICAgICAgICAg
IHx8IG5hbWUgPT09IHBhcnNlZC5uYW1lICYmIGRlZmluZWRfb3JfdW50ZXN0ZWQobmFtZSkKKyAg
ICAgICAgICAgICAgICB8fCAhYWxsX2RlcHMuaGFzKG5hbWUpKSB7CiAgICAgICAgICAgICAgICAg
Ly8gRmxhZyBhcyBza2lwcGVkLCBpZiBpdCdzIG5vdCBhbHJlYWR5IHByb2Nlc3NlZCwgc28gd2Ug
Y2FuCiAgICAgICAgICAgICAgICAgLy8gY29tZSBiYWNrIHRvIGl0IGxhdGVyIGlmIHdlIHJldHJv
c3BlY3RpdmVseSBjYWxsIGl0IGEgZGVwLgogICAgICAgICAgICAgICAgIGlmIChuYW1lICYmICEo
bmFtZSBpbiB0aGlzLm1lbWJlcnMpKSB7Ci0gICAgICAgICAgICAgICAgICAgIHNraXBwZWQuaGFz
KG5hbWUpCi0gICAgICAgICAgICAgICAgICAgICAgICA/IHNraXBwZWQuZ2V0KG5hbWUpLnB1c2go
cGFyc2VkKQotICAgICAgICAgICAgICAgICAgICAgICAgOiBza2lwcGVkLnNldChuYW1lLCBbcGFy
c2VkXSk7CisgICAgICAgICAgICAgICAgICAgIHRoaXMuc2tpcHBlZC5oYXMobmFtZSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgID8gdGhpcy5za2lwcGVkLmdldChuYW1lKS5wdXNoKHBhcnNlZCkK
KyAgICAgICAgICAgICAgICAgICAgICAgIDogdGhpcy5za2lwcGVkLnNldChuYW1lLCBbcGFyc2Vk
XSk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICAgICAgICAgIH0KQEAgLTMyNSwxNSArMzMyLDI5IEBAIElkbEFycmF5LnByb3RvdHlwZS5hZGRf
ZGVwZW5kZW5jeV9pZGxzID0gZnVuY3Rpb24ocmF3X2lkbHMsIG9wdGlvbnMpCiAgICAgICAgIH0u
YmluZCh0aGlzKSk7CiAKICAgICAgICAgZGVwcy5mb3JFYWNoKGZ1bmN0aW9uKG5hbWUpIHsKLSAg
ICAgICAgICAgIG5ld19vcHRpb25zLm9ubHkucHVzaChuYW1lKTsKKyAgICAgICAgICAgIGlmICgh
bmV3X29wdGlvbnMub25seS5pbmNsdWRlcyhuYW1lKSkgeworICAgICAgICAgICAgICAgIG5ld19v
cHRpb25zLm9ubHkucHVzaChuYW1lKTsKKyAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgY29u
c3QgZm9sbG93X3VwID0gbmV3IFNldCgpOwogICAgICAgICAgICAgZm9yIChjb25zdCBkZXBfdHlw
ZSBvZiBbImluaGVyaXRhbmNlIiwgImltcGxlbWVudHMiLCAiaW5jbHVkZXMiXSkgewogICAgICAg
ICAgICAgICAgIGlmIChwYXJzZWRbZGVwX3R5cGVdKSB7CiAgICAgICAgICAgICAgICAgICAgIGNv
bnN0IGluaGVyaXRpbmcgPSBwYXJzZWRbZGVwX3R5cGVdOwogICAgICAgICAgICAgICAgICAgICBj
b25zdCBpbmhlcml0b3IgPSBwYXJzZWQubmFtZSB8fCBwYXJzZWQudGFyZ2V0OwotICAgICAgICAg
ICAgICAgICAgICBmb3IgKGNvbnN0IGRlcCBvZiBbaW5oZXJpdGluZywgaW5oZXJpdG9yXSkgewot
ICAgICAgICAgICAgICAgICAgICAgICAgbmV3X29wdGlvbnMub25seS5wdXNoKGRlcCk7CisgICAg
ICAgICAgICAgICAgICAgIGNvbnN0IGRlcHMgPSBbaW5oZXJpdGluZ107CisgICAgICAgICAgICAg
ICAgICAgIC8vIEZvciBBIGluY2x1ZGVzIEIsIHdlIGNhbiBpZ25vcmUgQSwgdW5sZXNzIEIgKG9y
IHNvbWUgb2YgaXRzCisgICAgICAgICAgICAgICAgICAgIC8vIG1lbWJlcnMpIGlzIGJlaW5nIHRl
c3RlZC4KKyAgICAgICAgICAgICAgICAgICAgaWYgKGRlcF90eXBlICE9PSAiaW5jbHVkZXMiCisg
ICAgICAgICAgICAgICAgICAgICAgICB8fCBpbmhlcml0aW5nIGluIHRoaXMubWVtYmVycyAmJiAh
dGhpcy5tZW1iZXJzW2luaGVyaXRpbmddLnVudGVzdGVkCisgICAgICAgICAgICAgICAgICAgICAg
ICB8fCB0aGlzLnBhcnRpYWxzLnNvbWUoZnVuY3Rpb24ocCkgeworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gcC5uYW1lID09PSBpbmhlcml0aW5nOworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIH0pKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBkZXBzLnB1c2go
aW5oZXJpdG9yKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBm
b3IgKGNvbnN0IGRlcCBvZiBkZXBzKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIW5l
d19vcHRpb25zLm9ubHkuaW5jbHVkZXMoZGVwKSkgeworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIG5ld19vcHRpb25zLm9ubHkucHVzaChkZXApOworICAgICAgICAgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgICAgICAgICAgICAgYWxsX2RlcHMuYWRkKGRlcCk7CiAgICAgICAgICAg
ICAgICAgICAgICAgICBmb2xsb3dfdXAuYWRkKGRlcCk7CiAgICAgICAgICAgICAgICAgICAgIH0K
QEAgLTM0MSwxMyArMzYyLDEzIEBAIElkbEFycmF5LnByb3RvdHlwZS5hZGRfZGVwZW5kZW5jeV9p
ZGxzID0gZnVuY3Rpb24ocmF3X2lkbHMsIG9wdGlvbnMpCiAgICAgICAgICAgICB9CiAKICAgICAg
ICAgICAgIGZvciAoY29uc3QgZGVmZXJyZWQgb2YgZm9sbG93X3VwKSB7Ci0gICAgICAgICAgICAg
ICAgaWYgKHNraXBwZWQuaGFzKGRlZmVycmVkKSkgewotICAgICAgICAgICAgICAgICAgICBjb25z
dCBuZXh0ID0gc2tpcHBlZC5nZXQoZGVmZXJyZWQpOwotICAgICAgICAgICAgICAgICAgICBza2lw
cGVkLmRlbGV0ZShkZWZlcnJlZCk7CisgICAgICAgICAgICAgICAgaWYgKHRoaXMuc2tpcHBlZC5o
YXMoZGVmZXJyZWQpKSB7CisgICAgICAgICAgICAgICAgICAgIGNvbnN0IG5leHQgPSB0aGlzLnNr
aXBwZWQuZ2V0KGRlZmVycmVkKTsKKyAgICAgICAgICAgICAgICAgICAgdGhpcy5za2lwcGVkLmRl
bGV0ZShkZWZlcnJlZCk7CiAgICAgICAgICAgICAgICAgICAgIG5leHQuZm9yRWFjaChwcm9jZXNz
KTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9Ci0gICAgICAgIH0pOworICAgICAg
ICB9LmJpbmQodGhpcykpOwogICAgIH0uYmluZCh0aGlzKTsKIAogICAgIGZvciAobGV0IHBhcnNl
ZCBvZiBwYXJzZWRfaWRscykgewpAQCAtMzYxLDkgKzM4Miw3IEBAIElkbEFycmF5LnByb3RvdHlw
ZS5hZGRfZGVwZW5kZW5jeV9pZGxzID0gZnVuY3Rpb24ocmF3X2lkbHMsIG9wdGlvbnMpCiAgICAg
fQogfQogCi0vL0B9CiBJZGxBcnJheS5wcm90b3R5cGUuaW50ZXJuYWxfYWRkX2lkbHMgPSBmdW5j
dGlvbihwYXJzZWRfaWRscywgb3B0aW9ucykKLS8vQHsKIHsKICAgICAvKioKICAgICAgKiBJbnRl
cm5hbCBoZWxwZXIgY2FsbGVkIGJ5IGFkZF9pZGxzKCkgYW5kIGFkZF91bnRlc3RlZF9pZGxzKCku
CkBAIC00NzgsOCArNDk3LDcgQEAgSWRsQXJyYXkucHJvdG90eXBlLmludGVybmFsX2FkZF9pZGxz
ID0gZnVuY3Rpb24ocGFyc2VkX2lkbHMsIG9wdGlvbnMpCiAgICAgICAgICAgICBicmVhazsKIAog
ICAgICAgICBjYXNlICJjYWxsYmFjayI6Ci0gICAgICAgICAgICAvLyBUT0RPCi0gICAgICAgICAg
ICBjb25zb2xlLmxvZygiY2FsbGJhY2sgbm90IHlldCBzdXBwb3J0ZWQiKTsKKyAgICAgICAgICAg
IHRoaXMubWVtYmVyc1twYXJzZWRfaWRsLm5hbWVdID0gbmV3IElkbENhbGxiYWNrKHBhcnNlZF9p
ZGwpOwogICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgY2FzZSAiZW51bSI6CkBAIC01MDEs
OSArNTE5LDcgQEAgSWRsQXJyYXkucHJvdG90eXBlLmludGVybmFsX2FkZF9pZGxzID0gZnVuY3Rp
b24ocGFyc2VkX2lkbHMsIG9wdGlvbnMpCiAgICAgfS5iaW5kKHRoaXMpKTsKIH07CiAKLS8vQH0K
IElkbEFycmF5LnByb3RvdHlwZS5hZGRfb2JqZWN0cyA9IGZ1bmN0aW9uKGRpY3QpCi0vL0B7CiB7
CiAgICAgLyoqIEVudHJ5IHBvaW50LiAgU2VlIGRvY3VtZW50YXRpb24gYXQgYmVnaW5uaW5nIG9m
IGZpbGUuICovCiAgICAgZm9yICh2YXIgayBpbiBkaWN0KQpAQCAtNTE5LDE3ICs1MzUsMTMgQEAg
SWRsQXJyYXkucHJvdG90eXBlLmFkZF9vYmplY3RzID0gZnVuY3Rpb24oZGljdCkKICAgICB9CiB9
OwogCi0vL0B9CiBJZGxBcnJheS5wcm90b3R5cGUucHJldmVudF9tdWx0aXBsZV90ZXN0aW5nID0g
ZnVuY3Rpb24obmFtZSkKLS8vQHsKIHsKICAgICAvKiogRW50cnkgcG9pbnQuICBTZWUgZG9jdW1l
bnRhdGlvbiBhdCBiZWdpbm5pbmcgb2YgZmlsZS4gKi8KICAgICB0aGlzLm1lbWJlcnNbbmFtZV0u
cHJldmVudF9tdWx0aXBsZV90ZXN0aW5nID0gdHJ1ZTsKIH07CiAKLS8vQH0KIElkbEFycmF5LnBy
b3RvdHlwZS5yZWN1cnNpdmVseV9nZXRfaW1wbGVtZW50cyA9IGZ1bmN0aW9uKGludGVyZmFjZV9u
YW1lKQotLy9AewogewogICAgIC8qKgogICAgICAqIEhlbHBlciBmdW5jdGlvbiBmb3IgdGVzdCgp
LiAgUmV0dXJucyBhbiBhcnJheSBvZiB0aGluZ3MgdGhhdCBpbXBsZW1lbnQKQEAgLTU1Nyw5ICs1
NjksNyBAQCBJZGxBcnJheS5wcm90b3R5cGUucmVjdXJzaXZlbHlfZ2V0X2ltcGxlbWVudHMgPSBm
dW5jdGlvbihpbnRlcmZhY2VfbmFtZSkKICAgICByZXR1cm4gcmV0OwogfTsKIAotLy9AfQogSWRs
QXJyYXkucHJvdG90eXBlLnJlY3Vyc2l2ZWx5X2dldF9pbmNsdWRlcyA9IGZ1bmN0aW9uKGludGVy
ZmFjZV9uYW1lKQotLy9AewogewogICAgIC8qKgogICAgICAqIEhlbHBlciBmdW5jdGlvbiBmb3Ig
dGVzdCgpLiAgUmV0dXJucyBhbiBhcnJheSBvZiB0aGluZ3MgdGhhdCBpbXBsZW1lbnQKQEAgLTU4
Nyw5ICs1OTcsNyBAQCBJZGxBcnJheS5wcm90b3R5cGUucmVjdXJzaXZlbHlfZ2V0X2luY2x1ZGVz
ID0gZnVuY3Rpb24oaW50ZXJmYWNlX25hbWUpCiAgICAgcmV0dXJuIHJldDsKIH07CiAKLS8vQH0K
IElkbEFycmF5LnByb3RvdHlwZS5pc19qc29uX3R5cGUgPSBmdW5jdGlvbih0eXBlKQotLy9Aewog
ewogICAgIC8qKgogICAgICAqIENoZWNrcyB3aGV0aGVyIHR5cGUgaXMgYSBKU09OIHR5cGUgYXMg
cGVyCkBAIC02MTEsNyArNjE5LDcgQEAgSWRsQXJyYXkucHJvdG90eXBlLmlzX2pzb25fdHlwZSA9
IGZ1bmN0aW9uKHR5cGUpCiAKICAgICAvLyBzZXF1ZW5jZSB0eXBlcwogICAgIGlmICh0eXBlLmdl
bmVyaWMgPT0gInNlcXVlbmNlIiB8fCB0eXBlLmdlbmVyaWMgPT0gIkZyb3plbkFycmF5Iikgewot
ICAgICAgICByZXR1cm4gdGhpcy5pc19qc29uX3R5cGUoaWRsVHlwZSk7CisgICAgICAgIHJldHVy
biB0aGlzLmlzX2pzb25fdHlwZShpZGxUeXBlWzBdKTsKICAgICB9CiAKICAgICBpZiAodHlwZW9m
IGlkbFR5cGUgIT0gInN0cmluZyIpIHsgdGhyb3cgbmV3IEVycm9yKCJVbmV4cGVjdGVkIHR5cGUg
IiArIEpTT04uc3RyaW5naWZ5KGlkbFR5cGUpKTsgfQpAQCAtNzE5LDExICs3MjcsMTEgQEAgZnVu
Y3Rpb24gZXhwb3N1cmVfc2V0KG9iamVjdCwgZGVmYXVsdF9zZXQpIHsKICAgICAgICAgcmVzdWx0
ID0gbmV3IFNldChyZXN1bHQpOwogICAgIH0KICAgICBpZiAoZXhwb3NlZCAmJiBleHBvc2VkLmxl
bmd0aCkgewotICAgICAgICB2YXIgc2V0ID0gZXhwb3NlZFswXS5yaHMudmFsdWU7CisgICAgICAg
IGNvbnN0IHsgcmhzIH0gPSBleHBvc2VkWzBdOwogICAgICAgICAvLyBDb3VsZCBiZSBhIGxpc3Qg
b3IgYSBzdHJpbmcuCi0gICAgICAgIGlmICh0eXBlb2Ygc2V0ID09ICJzdHJpbmciKSB7Ci0gICAg
ICAgICAgICBzZXQgPSBbIHNldCBdOwotICAgICAgICB9CisgICAgICAgIGNvbnN0IHNldCA9IHJo
cy50eXBlID09PSAiaWRlbnRpZmllci1saXN0IiA/CisgICAgICAgICAgICByaHMudmFsdWUubWFw
KGlkID0+IGlkLnZhbHVlKSA6CisgICAgICAgICAgICBbIHJocy52YWx1ZSBdOwogICAgICAgICBy
ZXN1bHQgPSBuZXcgU2V0KHNldCk7CiAgICAgfQogICAgIGlmIChyZXN1bHQgJiYgcmVzdWx0Lmhh
cygiV29ya2VyIikpIHsKQEAgLTc1NCwxNCArNzYyLDEyIEBAIGZ1bmN0aW9uIGV4cG9zZWRfaW4o
Z2xvYmFscykgewogICAgIHRocm93IG5ldyBJZGxIYXJuZXNzRXJyb3IoIlVuZXhwZWN0ZWQgZ2xv
YmFsIG9iamVjdCIpOwogfQogCi0vL0B9CiAvKioKICAqIEFzc2VydHMgdGhhdCB0aGUgZ2l2ZW4g
ZXJyb3IgbWVzc2FnZSBpcyB0aHJvd24gZm9yIHRoZSBnaXZlbiBmdW5jdGlvbi4KICAqIEBwYXJh
bSB7c3RyaW5nfElkbEhhcm5lc3NFcnJvcn0gZXJyb3IgRXhwZWN0ZWQgRXJyb3IgbWVzc2FnZS4K
ICAqIEBwYXJhbSB7RnVuY3Rpb259IGlkbEFycmF5RnVuYyBGdW5jdGlvbiBvcGVyYXRpbmcgb24g
YW4gSWRsQXJyYXkgdGhhdCBzaG91bGQgdGhyb3cuCiAgKi8KIElkbEFycmF5LnByb3RvdHlwZS5h
c3NlcnRfdGhyb3dzID0gZnVuY3Rpb24oZXJyb3IsIGlkbEFycmF5RnVuYykKLS8vQHsKIHsKICAg
ICB0cnkgewogICAgICAgICBpZGxBcnJheUZ1bmMuY2FsbCh0aGlzLCB0aGlzKTsKQEAgLTc4MSw5
ICs3ODcsNyBAQCBJZGxBcnJheS5wcm90b3R5cGUuYXNzZXJ0X3Rocm93cyA9IGZ1bmN0aW9uKGVy
cm9yLCBpZGxBcnJheUZ1bmMpCiAgICAgdGhyb3cgbmV3IElkbEhhcm5lc3NFcnJvcihgJHtpZGxB
cnJheUZ1bmN9IGRpZCBub3QgdGhyb3cgdGhlIGV4cGVjdGVkIElkbEhhcm5lc3NFcnJvcmApOwog
fQogCi0vL0B9CiBJZGxBcnJheS5wcm90b3R5cGUudGVzdCA9IGZ1bmN0aW9uKCkKLS8vQHsKIHsK
ICAgICAvKiogRW50cnkgcG9pbnQuICBTZWUgZG9jdW1lbnRhdGlvbiBhdCBiZWdpbm5pbmcgb2Yg
ZmlsZS4gKi8KIApAQCAtODcyLDkgKzg3Niw3IEBAIElkbEFycmF5LnByb3RvdHlwZS50ZXN0ID0g
ZnVuY3Rpb24oKQogICAgIH0KIH07CiAKLS8vQH0KIElkbEFycmF5LnByb3RvdHlwZS5jb2xsYXBz
ZV9wYXJ0aWFscyA9IGZ1bmN0aW9uKCkKLS8vQHsKIHsKICAgICBjb25zdCB0ZXN0ZWRQYXJ0aWFs
cyA9IG5ldyBNYXAoKTsKICAgICB0aGlzLnBhcnRpYWxzLmZvckVhY2goZnVuY3Rpb24ocGFyc2Vk
X2lkbCkKQEAgLTk1NSw5ICs5NTcsNyBAQCBJZGxBcnJheS5wcm90b3R5cGUuY29sbGFwc2VfcGFy
dGlhbHMgPSBmdW5jdGlvbigpCiAgICAgdGhpcy5wYXJ0aWFscyA9IFtdOwogfQogCi0vL0B9CiBJ
ZGxBcnJheS5wcm90b3R5cGUuYXNzZXJ0X3R5cGVfaXMgPSBmdW5jdGlvbih2YWx1ZSwgdHlwZSkK
LS8vQHsKIHsKICAgICBpZiAodHlwZS5pZGxUeXBlIGluIHRoaXMubWVtYmVycwogICAgICYmIHRo
aXMubWVtYmVyc1t0eXBlLmlkbFR5cGVdIGluc3RhbmNlb2YgSWRsVHlwZWRlZikgewpAQCAtMTAx
Nyw3ICsxMDE3LDcgQEAgSWRsQXJyYXkucHJvdG90eXBlLmFzc2VydF90eXBlX2lzID0gZnVuY3Rp
b24odmFsdWUsIHR5cGUpCiAgICAgICAgICAgICAvLyBOb3RoaW5nIHdlIGNhbiBkby4KICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgfQotICAgICAgICB0aGlzLmFzc2VydF90eXBlX2lzKHZh
bHVlWzBdLCB0eXBlLmlkbFR5cGUpOworICAgICAgICB0aGlzLmFzc2VydF90eXBlX2lzKHZhbHVl
WzBdLCB0eXBlLmlkbFR5cGVbMF0pOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0xMDM3
LDExICsxMDM3LDExIEBAIElkbEFycmF5LnByb3RvdHlwZS5hc3NlcnRfdHlwZV9pcyA9IGZ1bmN0
aW9uKHZhbHVlLCB0eXBlKQogICAgICAgICAgICAgLy8gTm90aGluZyB3ZSBjYW4gZG8uCiAgICAg
ICAgICAgICByZXR1cm47CiAgICAgICAgIH0KLSAgICAgICAgdGhpcy5hc3NlcnRfdHlwZV9pcyh2
YWx1ZVswXSwgdHlwZS5pZGxUeXBlKTsKKyAgICAgICAgdGhpcy5hc3NlcnRfdHlwZV9pcyh2YWx1
ZVswXSwgdHlwZS5pZGxUeXBlWzBdKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIHR5
cGUgPSB0eXBlLmlkbFR5cGU7CisgICAgdHlwZSA9IEFycmF5LmlzQXJyYXkodHlwZS5pZGxUeXBl
KSA/IHR5cGUuaWRsVHlwZVswXSA6IHR5cGUuaWRsVHlwZTsKIAogICAgIHN3aXRjaCh0eXBlKQog
ICAgIHsKQEAgLTExNzEsMTcgKzExNzEsMTkgQEAgSWRsQXJyYXkucHJvdG90eXBlLmFzc2VydF90
eXBlX2lzID0gZnVuY3Rpb24odmFsdWUsIHR5cGUpCiAgICAgewogICAgICAgICAvLyBUT0RPOiBU
ZXN0IHdoZW4gd2UgYWN0dWFsbHkgaGF2ZSBzb21ldGhpbmcgdG8gdGVzdCB0aGlzIG9uCiAgICAg
fQorICAgIGVsc2UgaWYgKHRoaXMubWVtYmVyc1t0eXBlXSBpbnN0YW5jZW9mIElkbENhbGxiYWNr
KQorICAgIHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyh0eXBlb2YgdmFsdWUsICJmdW5jdGlvbiIp
OworICAgIH0KICAgICBlbHNlCiAgICAgewotICAgICAgICB0aHJvdyBuZXcgSWRsSGFybmVzc0Vy
cm9yKCJUeXBlICIgKyB0eXBlICsgIiBpc24ndCBhbiBpbnRlcmZhY2Ugb3IgZGljdGlvbmFyeSIp
OworICAgICAgICB0aHJvdyBuZXcgSWRsSGFybmVzc0Vycm9yKCJUeXBlICIgKyB0eXBlICsgIiBp
c24ndCBhbiBpbnRlcmZhY2UsIGNhbGxiYWNrIG9yIGRpY3Rpb25hcnkiKTsKICAgICB9CiB9Owot
Ly9AfQogCiAvLy8gSWRsT2JqZWN0IC8vLwogZnVuY3Rpb24gSWRsT2JqZWN0KCkge30KIElkbE9i
amVjdC5wcm90b3R5cGUudGVzdCA9IGZ1bmN0aW9uKCkKLS8vQHsKIHsKICAgICAvKioKICAgICAg
KiBCeSBkZWZhdWx0LCB0aGlzIGRvZXMgbm90aGluZywgc28gbm8gYWN0dWFsIHRlc3RzIGFyZSBy
dW4gZm9yIElkbE9iamVjdHMKQEAgLTExODksOSArMTE5MSw3IEBAIElkbE9iamVjdC5wcm90b3R5
cGUudGVzdCA9IGZ1bmN0aW9uKCkKICAgICAgKi8KIH07CiAKLS8vQH0KIElkbE9iamVjdC5wcm90
b3R5cGUuaGFzX2V4dGVuZGVkX2F0dHJpYnV0ZSA9IGZ1bmN0aW9uKG5hbWUpCi0vL0B7CiB7CiAg
ICAgLyoqCiAgICAgICogVGhpcyBpcyBvbmx5IG1lYW5pbmdmdWwgZm9yIHRoaW5ncyB0aGF0IHN1
cHBvcnQgZXh0ZW5kZWQgYXR0cmlidXRlcywKQEAgLTEyMDMsMTIgKzEyMDMsMTAgQEAgSWRsT2Jq
ZWN0LnByb3RvdHlwZS5oYXNfZXh0ZW5kZWRfYXR0cmlidXRlID0gZnVuY3Rpb24obmFtZSkKICAg
ICB9KTsKIH07CiAKLS8vQH0KIAogLy8vIElkbERpY3Rpb25hcnkgLy8vCiAvLyBVc2VkIGZvciBJ
ZGxBcnJheS5wcm90b3R5cGUuYXNzZXJ0X3R5cGVfaXMKIGZ1bmN0aW9uIElkbERpY3Rpb25hcnko
b2JqKQotLy9AewogewogICAgIC8qKgogICAgICAqIG9iaiBpcyBhbiBvYmplY3QgcHJvZHVjZWQg
YnkgdGhlIFdlYklETFBhcnNlci5qcyAiZGljdGlvbmFyeSIKQEAgLTEyMzEsNyArMTIyOSw2IEBA
IGZ1bmN0aW9uIElkbERpY3Rpb25hcnkob2JqKQogICAgIHRoaXMuYmFzZSA9IG9iai5pbmhlcml0
YW5jZTsKIH0KIAotLy9AfQogSWRsRGljdGlvbmFyeS5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRl
KElkbE9iamVjdC5wcm90b3R5cGUpOwogCiBJZGxEaWN0aW9uYXJ5LnByb3RvdHlwZS5nZXRfaW5o
ZXJpdGFuY2Vfc3RhY2sgPSBmdW5jdGlvbigpIHsKQEAgLTEyNDAsNyArMTIzNyw2IEBAIElkbERp
Y3Rpb25hcnkucHJvdG90eXBlLmdldF9pbmhlcml0YW5jZV9zdGFjayA9IGZ1bmN0aW9uKCkgewog
CiAvLy8gSWRsSW50ZXJmYWNlIC8vLwogZnVuY3Rpb24gSWRsSW50ZXJmYWNlKG9iaiwgaXNfY2Fs
bGJhY2ssIGlzX21peGluKQotLy9AewogewogICAgIC8qKgogICAgICAqIG9iaiBpcyBhbiBvYmpl
Y3QgcHJvZHVjZWQgYnkgdGhlIFdlYklETFBhcnNlci5qcyAiaW50ZXJmYWNlIiBwcm9kdWN0aW9u
LgpAQCAtMTI2Niw3ICsxMjYyLDcgQEAgZnVuY3Rpb24gSWRsSW50ZXJmYWNlKG9iaiwgaXNfY2Fs
bGJhY2ssIGlzX21peGluKQogICAgIHRoaXMubWVtYmVycyA9IG9iai5tZW1iZXJzLm1hcChmdW5j
dGlvbihtKXtyZXR1cm4gbmV3IElkbEludGVyZmFjZU1lbWJlcihtKTsgfSk7CiAgICAgaWYgKHRo
aXMuaGFzX2V4dGVuZGVkX2F0dHJpYnV0ZSgiVW5mb3JnZWFibGUiKSkgewogICAgICAgICB0aGlz
Lm1lbWJlcnMKLSAgICAgICAgICAgIC5maWx0ZXIoZnVuY3Rpb24obSkgeyByZXR1cm4gIW1bInN0
YXRpYyJdICYmIChtLnR5cGUgPT0gImF0dHJpYnV0ZSIgfHwgbS50eXBlID09ICJvcGVyYXRpb24i
KTsgfSkKKyAgICAgICAgICAgIC5maWx0ZXIoZnVuY3Rpb24obSkgeyByZXR1cm4gbS5zcGVjaWFs
ICE9PSAic3RhdGljIiAmJiAobS50eXBlID09ICJhdHRyaWJ1dGUiIHx8IG0udHlwZSA9PSAib3Bl
cmF0aW9uIik7IH0pCiAgICAgICAgICAgICAuZm9yRWFjaChmdW5jdGlvbihtKSB7IHJldHVybiBt
LmlzVW5mb3JnZWFibGUgPSB0cnVlOyB9KTsKICAgICB9CiAKQEAgLTEyNzksMzAgKzEyNzUsMjMg
QEAgZnVuY3Rpb24gSWRsSW50ZXJmYWNlKG9iaiwgaXNfY2FsbGJhY2ssIGlzX21peGluKQogICAg
IHRoaXMuX2lzX2NhbGxiYWNrID0gaXNfY2FsbGJhY2s7CiAgICAgdGhpcy5faXNfbWl4aW4gPSBp
c19taXhpbjsKIH0KLS8vQH0KIElkbEludGVyZmFjZS5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRl
KElkbE9iamVjdC5wcm90b3R5cGUpOwogSWRsSW50ZXJmYWNlLnByb3RvdHlwZS5pc19jYWxsYmFj
ayA9IGZ1bmN0aW9uKCkKLS8vQHsKIHsKICAgICByZXR1cm4gdGhpcy5faXNfY2FsbGJhY2s7CiB9
OwotLy9AfQogCiBJZGxJbnRlcmZhY2UucHJvdG90eXBlLmlzX21peGluID0gZnVuY3Rpb24oKQot
Ly9AewogewogICAgIHJldHVybiB0aGlzLl9pc19taXhpbjsKIH07Ci0vL0B9CiAKIElkbEludGVy
ZmFjZS5wcm90b3R5cGUuaGFzX2NvbnN0YW50cyA9IGZ1bmN0aW9uKCkKLS8vQHsKIHsKICAgICBy
ZXR1cm4gdGhpcy5tZW1iZXJzLnNvbWUoZnVuY3Rpb24obWVtYmVyKSB7CiAgICAgICAgIHJldHVy
biBtZW1iZXIudHlwZSA9PT0gImNvbnN0IjsKICAgICB9KTsKIH07Ci0vL0B9CiAKIElkbEludGVy
ZmFjZS5wcm90b3R5cGUuZ2V0X3Vuc2NvcGFibGVzID0gZnVuY3Rpb24oKQogewpAQCAtMTMxMiwx
MyArMTMwMSw1MyBAQCBJZGxJbnRlcmZhY2UucHJvdG90eXBlLmdldF91bnNjb3BhYmxlcyA9IGZ1
bmN0aW9uKCkKIH07CiAKIElkbEludGVyZmFjZS5wcm90b3R5cGUuaXNfZ2xvYmFsID0gZnVuY3Rp
b24oKQotLy9AewogewogICAgIHJldHVybiB0aGlzLmV4dEF0dHJzLnNvbWUoZnVuY3Rpb24oYXR0
cmlidXRlKSB7CiAgICAgICAgIHJldHVybiBhdHRyaWJ1dGUubmFtZSA9PT0gIkdsb2JhbCI7CiAg
ICAgfSk7CiB9OwotLy9AfQorCisvKioKKyAqIFZhbHVlIG9mIHRoZSBMZWdhY3lOYW1lc3BhY2Ug
ZXh0ZW5kZWQgYXR0cmlidXRlLCBpZiBhbnkuCisgKgorICogaHR0cHM6Ly9oZXljYW0uZ2l0aHVi
LmlvL3dlYmlkbC8jTGVnYWN5TmFtZXNwYWNlCisgKi8KK0lkbEludGVyZmFjZS5wcm90b3R5cGUu
Z2V0X2xlZ2FjeV9uYW1lc3BhY2UgPSBmdW5jdGlvbigpCit7CisgICAgdmFyIGxlZ2FjeU5hbWVz
cGFjZSA9IHRoaXMuZXh0QXR0cnMuZmluZChmdW5jdGlvbihhdHRyaWJ1dGUpIHsKKyAgICAgICAg
cmV0dXJuIGF0dHJpYnV0ZS5uYW1lID09PSAiTGVnYWN5TmFtZXNwYWNlIjsKKyAgICB9KTsKKyAg
ICByZXR1cm4gbGVnYWN5TmFtZXNwYWNlID8gbGVnYWN5TmFtZXNwYWNlLnJocy52YWx1ZSA6IHVu
ZGVmaW5lZDsKK307CisKK0lkbEludGVyZmFjZS5wcm90b3R5cGUuZ2V0X2ludGVyZmFjZV9vYmpl
Y3Rfb3duZXIgPSBmdW5jdGlvbigpCit7CisgICAgdmFyIGxlZ2FjeU5hbWVzcGFjZSA9IHRoaXMu
Z2V0X2xlZ2FjeV9uYW1lc3BhY2UoKTsKKyAgICByZXR1cm4gbGVnYWN5TmFtZXNwYWNlID8gc2Vs
ZltsZWdhY3lOYW1lc3BhY2VdIDogc2VsZjsKK307CisKK0lkbEludGVyZmFjZS5wcm90b3R5cGUu
YXNzZXJ0X2ludGVyZmFjZV9vYmplY3RfZXhpc3RzID0gZnVuY3Rpb24oKQoreworICAgIHZhciBv
d25lciA9IHRoaXMuZ2V0X2xlZ2FjeV9uYW1lc3BhY2UoKSB8fCAic2VsZiI7CisgICAgYXNzZXJ0
X293bl9wcm9wZXJ0eShzZWxmW293bmVyXSwgdGhpcy5uYW1lLCBvd25lciArICIgZG9lcyBub3Qg
aGF2ZSBvd24gcHJvcGVydHkgIiArIGZvcm1hdF92YWx1ZSh0aGlzLm5hbWUpKTsKK307CisKK0lk
bEludGVyZmFjZS5wcm90b3R5cGUuZ2V0X2ludGVyZmFjZV9vYmplY3QgPSBmdW5jdGlvbigpIHsK
KyAgICBpZiAodGhpcy5oYXNfZXh0ZW5kZWRfYXR0cmlidXRlKCJOb0ludGVyZmFjZU9iamVjdCIp
KSB7CisgICAgICAgIHRocm93IG5ldyBJZGxIYXJuZXNzRXJyb3IodGhpcy5uYW1lICsgIiBoYXMg
bm8gaW50ZXJmYWNlIG9iamVjdCBkdWUgdG8gTm9JbnRlcmZhY2VPYmplY3QiKTsKKyAgICB9CisK
KyAgICByZXR1cm4gdGhpcy5nZXRfaW50ZXJmYWNlX29iamVjdF9vd25lcigpW3RoaXMubmFtZV07
Cit9OworCitJZGxJbnRlcmZhY2UucHJvdG90eXBlLmdldF9xdWFsaWZpZWRfbmFtZSA9IGZ1bmN0
aW9uKCkgeworICAgIC8vIGh0dHBzOi8vaGV5Y2FtLmdpdGh1Yi5pby93ZWJpZGwvI3F1YWxpZmll
ZC1uYW1lCisgICAgdmFyIGxlZ2FjeU5hbWVzcGFjZSA9IHRoaXMuZ2V0X2xlZ2FjeV9uYW1lc3Bh
Y2UoKTsKKyAgICBpZiAobGVnYWN5TmFtZXNwYWNlKSB7CisgICAgICAgIHJldHVybiBsZWdhY3lO
YW1lc3BhY2UgKyAiLiIgKyB0aGlzLm5hbWU7CisgICAgfQorICAgIHJldHVybiB0aGlzLm5hbWU7
Cit9OwogCiBJZGxJbnRlcmZhY2UucHJvdG90eXBlLmhhc190b19qc29uX3JlZ3VsYXJfb3BlcmF0
aW9uID0gZnVuY3Rpb24oKSB7CiAgICAgcmV0dXJuIHRoaXMubWVtYmVycy5zb21lKGZ1bmN0aW9u
KG0pIHsKQEAgLTEzODQsNyArMTQxMyw3IEBAIElkbEludGVyZmFjZS5wcm90b3R5cGUuZGVmYXVs
dF90b19qc29uX29wZXJhdGlvbiA9IGZ1bmN0aW9uKGNhbGxiYWNrKSB7CiAgICAgICAgIGlmIChJ
Lmhhc19kZWZhdWx0X3RvX2pzb25fcmVndWxhcl9vcGVyYXRpb24oKSkgewogICAgICAgICAgICAg
aXNEZWZhdWx0ID0gdHJ1ZTsKICAgICAgICAgICAgIEkubWVtYmVycy5mb3JFYWNoKGZ1bmN0aW9u
KG0pIHsKLSAgICAgICAgICAgICAgICBpZiAoIW0uc3RhdGljICYmIG0udHlwZSA9PSAiYXR0cmli
dXRlIiAmJiBJLmFycmF5LmlzX2pzb25fdHlwZShtLmlkbFR5cGUpKSB7CisgICAgICAgICAgICAg
ICAgaWYgKG0uc3BlY2lhbCAhPT0gInN0YXRpYyIgJiYgbS50eXBlID09ICJhdHRyaWJ1dGUiICYm
IEkuYXJyYXkuaXNfanNvbl90eXBlKG0uaWRsVHlwZSkpIHsKICAgICAgICAgICAgICAgICAgICAg
bWFwLnNldChtLm5hbWUsIG0uaWRsVHlwZSk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgfSk7CkBAIC0xNDQ2LDcgKzE0NzUsNiBAQCBmdW5jdGlvbiBfdHJhdmVyc2VfaW5oZXJpdGVk
X2FuZF9jb25zZXF1ZW50aWFsX2ludGVyZmFjZXMoc3RhY2ssIGNhbGxiYWNrKSB7CiB9CiAKIElk
bEludGVyZmFjZS5wcm90b3R5cGUudGVzdCA9IGZ1bmN0aW9uKCkKLS8vQHsKIHsKICAgICBpZiAo
dGhpcy5oYXNfZXh0ZW5kZWRfYXR0cmlidXRlKCJOb0ludGVyZmFjZU9iamVjdCIpIHx8IHRoaXMu
aXNfbWl4aW4oKSkKICAgICB7CkBAIC0xNDc4LDEwICsxNTA2LDE5IEBAIElkbEludGVyZmFjZS5w
cm90b3R5cGUudGVzdCA9IGZ1bmN0aW9uKCkKICAgICAvLyBpbnRlcmZhY2UgYXJlIHN0aWxsIHRl
c3RlZC4KICAgICB0aGlzLnRlc3RfbWVtYmVycygpOwogfTsKLS8vQH0KKworLy8gVGhpcyBzdXBw
b3J0cyBib3RoIENvbnN0cnVjdG9yIGV4dGVuZGVkIGF0dHJpYnV0ZXMgYW5kIGNvbnN0cnVjdG9y
CisvLyBvcGVyYXRpb25zIHVudGlsIGFsbCBpZGwgZnJhZ21lbnRzIGhhdmUgYmVlbiB1cGRhdGVk
LgorSWRsSW50ZXJmYWNlLnByb3RvdHlwZS5jb25zdHJ1Y3RvcnMgPSBmdW5jdGlvbigpCit7Cisg
ICAgdmFyIGV4dGVuZGVkQXR0cmlidXRlcyA9IHRoaXMuZXh0QXR0cnMKKyAgICAgICAgLmZpbHRl
cihmdW5jdGlvbihhdHRyKSB7IHJldHVybiBhdHRyLm5hbWUgPT0gIkNvbnN0cnVjdG9yIjsgfSk7
CisgICAgdmFyIG9wZXJhdGlvbnMgPSB0aGlzLm1lbWJlcnMKKyAgICAgICAgLmZpbHRlcihmdW5j
dGlvbihtKSB7IHJldHVybiBtLnR5cGUgPT0gImNvbnN0cnVjdG9yIjsgfSk7CisgICAgcmV0dXJu
IGV4dGVuZGVkQXR0cmlidXRlcy5jb25jYXQob3BlcmF0aW9ucyk7Cit9CiAKIElkbEludGVyZmFj
ZS5wcm90b3R5cGUudGVzdF9zZWxmID0gZnVuY3Rpb24oKQotLy9AewogewogICAgIHN1YnNldFRl
c3RCeUtleSh0aGlzLm5hbWUsIHRlc3QsIGZ1bmN0aW9uKCkKICAgICB7CkBAIC0xNTAzLDkgKzE1
NDAsOCBAQCBJZGxJbnRlcmZhY2UucHJvdG90eXBlLnRlc3Rfc2VsZiA9IGZ1bmN0aW9uKCkKIAog
ICAgICAgICAvLyBUT0RPOiBTaG91bGQgd2UgdGVzdCBoZXJlIHRoYXQgdGhlIHByb3BlcnR5IGlz
IGFjdHVhbGx5IHdyaXRhYmxlCiAgICAgICAgIC8vIGV0Yy4sIG9yIHRydXN0IGdldE93blByb3Bl
cnR5RGVzY3JpcHRvcj8KLSAgICAgICAgYXNzZXJ0X293bl9wcm9wZXJ0eShzZWxmLCB0aGlzLm5h
bWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgInNlbGYgZG9lcyBub3QgaGF2ZSBvd24g
cHJvcGVydHkgIiArIGZvcm1hdF92YWx1ZSh0aGlzLm5hbWUpKTsKLSAgICAgICAgdmFyIGRlc2Mg
PSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHNlbGYsIHRoaXMubmFtZSk7CisgICAg
ICAgIHRoaXMuYXNzZXJ0X2ludGVyZmFjZV9vYmplY3RfZXhpc3RzKCk7CisgICAgICAgIHZhciBk
ZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0aGlzLmdldF9pbnRlcmZhY2Vf
b2JqZWN0X293bmVyKCksIHRoaXMubmFtZSk7CiAgICAgICAgIGFzc2VydF9mYWxzZSgiZ2V0IiBp
biBkZXNjLCAic2VsZidzIHByb3BlcnR5ICIgKyBmb3JtYXRfdmFsdWUodGhpcy5uYW1lKSArICIg
c2hvdWxkIG5vdCBoYXZlIGEgZ2V0dGVyIik7CiAgICAgICAgIGFzc2VydF9mYWxzZSgic2V0IiBp
biBkZXNjLCAic2VsZidzIHByb3BlcnR5ICIgKyBmb3JtYXRfdmFsdWUodGhpcy5uYW1lKSArICIg
c2hvdWxkIG5vdCBoYXZlIGEgc2V0dGVyIik7CiAgICAgICAgIGFzc2VydF90cnVlKGRlc2Mud3Jp
dGFibGUsICJzZWxmJ3MgcHJvcGVydHkgIiArIGZvcm1hdF92YWx1ZSh0aGlzLm5hbWUpICsgIiBz
aG91bGQgYmUgd3JpdGFibGUiKTsKQEAgLTE1MTUsNyArMTU1MSw3IEBAIElkbEludGVyZmFjZS5w
cm90b3R5cGUudGVzdF9zZWxmID0gZnVuY3Rpb24oKQogICAgICAgICBpZiAodGhpcy5pc19jYWxs
YmFjaygpKSB7CiAgICAgICAgICAgICAvLyAiVGhlIGludGVybmFsIFtbUHJvdG90eXBlXV0gcHJv
cGVydHkgb2YgYW4gaW50ZXJmYWNlIG9iamVjdCBmb3IKICAgICAgICAgICAgIC8vIGEgY2FsbGJh
Y2sgaW50ZXJmYWNlIG11c3QgYmUgdGhlIEZ1bmN0aW9uLnByb3RvdHlwZSBvYmplY3QuIgotICAg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhPYmplY3QuZ2V0UHJvdG90eXBlT2Yoc2VsZlt0aGlzLm5h
bWVdKSwgRnVuY3Rpb24ucHJvdG90eXBlLAorICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhPYmpl
Y3QuZ2V0UHJvdG90eXBlT2YodGhpcy5nZXRfaW50ZXJmYWNlX29iamVjdCgpKSwgRnVuY3Rpb24u
cHJvdG90eXBlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAicHJvdG90eXBlIG9mIHNlbGYn
cyBwcm9wZXJ0eSAiICsgZm9ybWF0X3ZhbHVlKHRoaXMubmFtZSkgKyAiIGlzIG5vdCBPYmplY3Qu
cHJvdG90eXBlIik7CiAKICAgICAgICAgICAgIHJldHVybjsKQEAgLTE1NDUsMjQgKzE1ODEsMTkg
QEAgSWRsSW50ZXJmYWNlLnByb3RvdHlwZS50ZXN0X3NlbGYgPSBmdW5jdGlvbigpCiAgICAgICAg
IC8vIEVTNiAocmV2IDMwKSAxOS4xLjMuNjoKICAgICAgICAgLy8gIkVsc2UsIGlmIE8gaGFzIGEg
W1tDYWxsXV0gaW50ZXJuYWwgbWV0aG9kLCB0aGVuIGxldCBidWlsdGluVGFnIGJlCiAgICAgICAg
IC8vICJGdW5jdGlvbiIuIgotICAgICAgICBhc3NlcnRfY2xhc3Nfc3RyaW5nKHNlbGZbdGhpcy5u
YW1lXSwgIkZ1bmN0aW9uIiwgImNsYXNzIHN0cmluZyBvZiAiICsgdGhpcy5uYW1lKTsKKyAgICAg
ICAgYXNzZXJ0X2NsYXNzX3N0cmluZyh0aGlzLmdldF9pbnRlcmZhY2Vfb2JqZWN0KCksICJGdW5j
dGlvbiIsICJjbGFzcyBzdHJpbmcgb2YgIiArIHRoaXMubmFtZSk7CiAKICAgICAgICAgLy8gIlRo
ZSBbW1Byb3RvdHlwZV1dIGludGVybmFsIHByb3BlcnR5IG9mIGFuIGludGVyZmFjZSBvYmplY3Qg
Zm9yIGEKICAgICAgICAgLy8gbm9uLWNhbGxiYWNrIGludGVyZmFjZSBpcyBkZXRlcm1pbmVkIGFz
IGZvbGxvd3M6IgotICAgICAgICB2YXIgcHJvdG90eXBlID0gT2JqZWN0LmdldFByb3RvdHlwZU9m
KHNlbGZbdGhpcy5uYW1lXSk7CisgICAgICAgIHZhciBwcm90b3R5cGUgPSBPYmplY3QuZ2V0UHJv
dG90eXBlT2YodGhpcy5nZXRfaW50ZXJmYWNlX29iamVjdCgpKTsKICAgICAgICAgaWYgKHRoaXMu
YmFzZSkgewogICAgICAgICAgICAgLy8gIiogSWYgdGhlIGludGVyZmFjZSBpbmhlcml0cyBmcm9t
IHNvbWUgb3RoZXIgaW50ZXJmYWNlLCB0aGUKICAgICAgICAgICAgIC8vICAgIHZhbHVlIG9mIFtb
UHJvdG90eXBlXV0gaXMgdGhlIGludGVyZmFjZSBvYmplY3QgZm9yIHRoYXQgb3RoZXIKICAgICAg
ICAgICAgIC8vICAgIGludGVyZmFjZS4iCi0gICAgICAgICAgICB2YXIgaGFzX2ludGVyZmFjZV9v
YmplY3QgPQotICAgICAgICAgICAgICAgICF0aGlzLmFycmF5Ci0gICAgICAgICAgICAgICAgICAg
ICAubWVtYmVyc1t0aGlzLmJhc2VdCi0gICAgICAgICAgICAgICAgICAgICAuaGFzX2V4dGVuZGVk
X2F0dHJpYnV0ZSgiTm9JbnRlcmZhY2VPYmplY3QiKTsKLSAgICAgICAgICAgIGlmIChoYXNfaW50
ZXJmYWNlX29iamVjdCkgewotICAgICAgICAgICAgICAgIGFzc2VydF9vd25fcHJvcGVydHkoc2Vs
ZiwgdGhpcy5iYXNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Nob3Vs
ZCBpbmhlcml0IGZyb20gJyArIHRoaXMuYmFzZSArCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAnLCBidXQgc2VsZiBoYXMgbm8gc3VjaCBwcm9wZXJ0eScpOwotICAgICAgICAg
ICAgICAgIGFzc2VydF9lcXVhbHMocHJvdG90eXBlLCBzZWxmW3RoaXMuYmFzZV0sCisgICAgICAg
ICAgICB2YXIgaW5oZXJpdGVkX2ludGVyZmFjZSA9IHRoaXMuYXJyYXkubWVtYmVyc1t0aGlzLmJh
c2VdOworICAgICAgICAgICAgaWYgKCFpbmhlcml0ZWRfaW50ZXJmYWNlLmhhc19leHRlbmRlZF9h
dHRyaWJ1dGUoIk5vSW50ZXJmYWNlT2JqZWN0IikpIHsKKyAgICAgICAgICAgICAgICBpbmhlcml0
ZWRfaW50ZXJmYWNlLmFzc2VydF9pbnRlcmZhY2Vfb2JqZWN0X2V4aXN0cygpOworICAgICAgICAg
ICAgICAgIGFzc2VydF9lcXVhbHMocHJvdG90eXBlLCBpbmhlcml0ZWRfaW50ZXJmYWNlLmdldF9p
bnRlcmZhY2Vfb2JqZWN0KCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncHJvdG90
eXBlIG9mICcgKyB0aGlzLm5hbWUgKyAnIGlzIG5vdCAnICsKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHRoaXMuYmFzZSk7CiAgICAgICAgICAgICB9CkBAIC0xNTc0LDE4ICsxNjA1LDE5
IEBAIElkbEludGVyZmFjZS5wcm90b3R5cGUudGVzdF9zZWxmID0gZnVuY3Rpb24oKQogICAgICAg
ICAgICAgICAgICAgICAgICAgICAicHJvdG90eXBlIG9mIHNlbGYncyBwcm9wZXJ0eSAiICsgZm9y
bWF0X3ZhbHVlKHRoaXMubmFtZSkgKyAiIGlzIG5vdCBGdW5jdGlvbi5wcm90b3R5cGUiKTsKICAg
ICAgICAgfQogCi0gICAgICAgIGlmICghdGhpcy5oYXNfZXh0ZW5kZWRfYXR0cmlidXRlKCJDb25z
dHJ1Y3RvciIpKSB7CisgICAgICAgIGlmICghdGhpcy5jb25zdHJ1Y3RvcnMoKS5sZW5ndGgpIHsK
ICAgICAgICAgICAgIC8vICJUaGUgaW50ZXJuYWwgW1tDYWxsXV0gbWV0aG9kIG9mIHRoZSBpbnRl
cmZhY2Ugb2JqZWN0IGJlaGF2ZXMgYXMKICAgICAgICAgICAgIC8vIGZvbGxvd3MgLiAuIC4KICAg
ICAgICAgICAgIC8vCiAgICAgICAgICAgICAvLyAiSWYgSSB3YXMgbm90IGRlY2xhcmVkIHdpdGgg
YSBbQ29uc3RydWN0b3JdIGV4dGVuZGVkIGF0dHJpYnV0ZSwKICAgICAgICAgICAgIC8vIHRoZW4g
dGhyb3cgYSBUeXBlRXJyb3IuIgorICAgICAgICAgICAgdmFyIGludGVyZmFjZV9vYmplY3QgPSB0
aGlzLmdldF9pbnRlcmZhY2Vfb2JqZWN0KCk7CiAgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKG5l
dyBUeXBlRXJyb3IoKSwgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgICAgc2VsZlt0aGlzLm5h
bWVdKCk7Ci0gICAgICAgICAgICB9LmJpbmQodGhpcyksICJpbnRlcmZhY2Ugb2JqZWN0IGRpZG4n
dCB0aHJvdyBUeXBlRXJyb3Igd2hlbiBjYWxsZWQgYXMgYSBmdW5jdGlvbiIpOworICAgICAgICAg
ICAgICAgIGludGVyZmFjZV9vYmplY3QoKTsKKyAgICAgICAgICAgIH0sICJpbnRlcmZhY2Ugb2Jq
ZWN0IGRpZG4ndCB0aHJvdyBUeXBlRXJyb3Igd2hlbiBjYWxsZWQgYXMgYSBmdW5jdGlvbiIpOwog
ICAgICAgICAgICAgYXNzZXJ0X3Rocm93cyhuZXcgVHlwZUVycm9yKCksIGZ1bmN0aW9uKCkgewot
ICAgICAgICAgICAgICAgIG5ldyBzZWxmW3RoaXMubmFtZV0oKTsKLSAgICAgICAgICAgIH0uYmlu
ZCh0aGlzKSwgImludGVyZmFjZSBvYmplY3QgZGlkbid0IHRocm93IFR5cGVFcnJvciB3aGVuIGNh
bGxlZCBhcyBhIGNvbnN0cnVjdG9yIik7CisgICAgICAgICAgICAgICAgbmV3IGludGVyZmFjZV9v
YmplY3QoKTsKKyAgICAgICAgICAgIH0sICJpbnRlcmZhY2Ugb2JqZWN0IGRpZG4ndCB0aHJvdyBU
eXBlRXJyb3Igd2hlbiBjYWxsZWQgYXMgYSBjb25zdHJ1Y3RvciIpOwogICAgICAgICB9CiAgICAg
fS5iaW5kKHRoaXMpLCB0aGlzLm5hbWUgKyAiIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9w
ZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QiKTsKIApAQCAtMTU5NCwyNSArMTYyNiwyMyBAQCBJ
ZGxJbnRlcmZhY2UucHJvdG90eXBlLnRlc3Rfc2VsZiA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAg
IC8vIFRoaXMgZnVuY3Rpb24gdGVzdHMgV2ViSURMIGFzIG9mIDIwMTQtMTAtMjUuCiAgICAgICAg
ICAgICAvLyBodHRwczovL2hleWNhbS5naXRodWIuaW8vd2ViaWRsLyNlcy1pbnRlcmZhY2UtY2Fs
bAogCi0gICAgICAgICAgICBhc3NlcnRfb3duX3Byb3BlcnR5KHNlbGYsIHRoaXMubmFtZSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJv
cGVydHkgIiArIGZvcm1hdF92YWx1ZSh0aGlzLm5hbWUpKTsKKyAgICAgICAgICAgIHRoaXMuYXNz
ZXJ0X2ludGVyZmFjZV9vYmplY3RfZXhpc3RzKCk7CiAKICAgICAgICAgICAgIC8vICJJbnRlcmZh
Y2Ugb2JqZWN0cyBmb3Igbm9uLWNhbGxiYWNrIGludGVyZmFjZXMgTVVTVCBoYXZlIGEKICAgICAg
ICAgICAgIC8vIHByb3BlcnR5IG5hbWVkIOKAnGxlbmd0aOKAnSB3aXRoIGF0dHJpYnV0ZXMgeyBb
W1dyaXRhYmxlXV06IGZhbHNlLAogICAgICAgICAgICAgLy8gW1tFbnVtZXJhYmxlXV06IGZhbHNl
LCBbW0NvbmZpZ3VyYWJsZV1dOiB0cnVlIH0gd2hvc2UgdmFsdWUgaXMKICAgICAgICAgICAgIC8v
IGEgTnVtYmVyLiIKLSAgICAgICAgICAgIGFzc2VydF9vd25fcHJvcGVydHkoc2VsZlt0aGlzLm5h
bWVdLCAibGVuZ3RoIik7Ci0gICAgICAgICAgICB2YXIgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3Ioc2VsZlt0aGlzLm5hbWVdLCAibGVuZ3RoIik7CisgICAgICAgICAgICBh
c3NlcnRfb3duX3Byb3BlcnR5KHRoaXMuZ2V0X2ludGVyZmFjZV9vYmplY3QoKSwgImxlbmd0aCIp
OworICAgICAgICAgICAgdmFyIGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KHRoaXMuZ2V0X2ludGVyZmFjZV9vYmplY3QoKSwgImxlbmd0aCIpOwogICAgICAgICAgICAgYXNz
ZXJ0X2ZhbHNlKCJnZXQiIGluIGRlc2MsIHRoaXMubmFtZSArICIubGVuZ3RoIHNob3VsZCBub3Qg
aGF2ZSBhIGdldHRlciIpOwogICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKCJzZXQiIGluIGRlc2Ms
IHRoaXMubmFtZSArICIubGVuZ3RoIHNob3VsZCBub3QgaGF2ZSBhIHNldHRlciIpOwogICAgICAg
ICAgICAgYXNzZXJ0X2ZhbHNlKGRlc2Mud3JpdGFibGUsIHRoaXMubmFtZSArICIubGVuZ3RoIHNo
b3VsZCBub3QgYmUgd3JpdGFibGUiKTsKICAgICAgICAgICAgIGFzc2VydF9mYWxzZShkZXNjLmVu
dW1lcmFibGUsIHRoaXMubmFtZSArICIubGVuZ3RoIHNob3VsZCBub3QgYmUgZW51bWVyYWJsZSIp
OwogICAgICAgICAgICAgYXNzZXJ0X3RydWUoZGVzYy5jb25maWd1cmFibGUsIHRoaXMubmFtZSAr
ICIubGVuZ3RoIHNob3VsZCBiZSBjb25maWd1cmFibGUiKTsKIAotICAgICAgICAgICAgdmFyIGNv
bnN0cnVjdG9ycyA9IHRoaXMuZXh0QXR0cnMKLSAgICAgICAgICAgICAgICAuZmlsdGVyKGZ1bmN0
aW9uKGF0dHIpIHsgcmV0dXJuIGF0dHIubmFtZSA9PSAiQ29uc3RydWN0b3IiOyB9KTsKKyAgICAg
ICAgICAgIHZhciBjb25zdHJ1Y3RvcnMgPSB0aGlzLmNvbnN0cnVjdG9ycygpOwogICAgICAgICAg
ICAgdmFyIGV4cGVjdGVkX2xlbmd0aCA9IG1pbk92ZXJsb2FkTGVuZ3RoKGNvbnN0cnVjdG9ycyk7
Ci0gICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNlbGZbdGhpcy5uYW1lXS5sZW5ndGgsIGV4cGVj
dGVkX2xlbmd0aCwgIndyb25nIHZhbHVlIGZvciAiICsgdGhpcy5uYW1lICsgIi5sZW5ndGgiKTsK
KyAgICAgICAgICAgIGFzc2VydF9lcXVhbHModGhpcy5nZXRfaW50ZXJmYWNlX29iamVjdCgpLmxl
bmd0aCwgZXhwZWN0ZWRfbGVuZ3RoLCAid3JvbmcgdmFsdWUgZm9yICIgKyB0aGlzLm5hbWUgKyAi
Lmxlbmd0aCIpOwogICAgICAgICB9LmJpbmQodGhpcyksIHRoaXMubmFtZSArICIgaW50ZXJmYWNl
IG9iamVjdCBsZW5ndGgiKTsKICAgICB9CiAKQEAgLTE2MjEsMjIgKzE2NTEsMjEgQEAgSWRsSW50
ZXJmYWNlLnByb3RvdHlwZS50ZXN0X3NlbGYgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICAvLyBU
aGlzIGZ1bmN0aW9uIHRlc3RzIFdlYklETCBhcyBvZiAyMDE1LTExLTE3LgogICAgICAgICAgICAg
Ly8gaHR0cHM6Ly9oZXljYW0uZ2l0aHViLmlvL3dlYmlkbC8jaW50ZXJmYWNlLW9iamVjdAogCi0g
ICAgICAgICAgICBhc3NlcnRfb3duX3Byb3BlcnR5KHNlbGYsIHRoaXMubmFtZSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgInNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkg
IiArIGZvcm1hdF92YWx1ZSh0aGlzLm5hbWUpKTsKKyAgICAgICAgICAgIHRoaXMuYXNzZXJ0X2lu
dGVyZmFjZV9vYmplY3RfZXhpc3RzKCk7CiAKICAgICAgICAgICAgIC8vICJBbGwgaW50ZXJmYWNl
IG9iamVjdHMgbXVzdCBoYXZlIGEgcHJvcGVydHkgbmFtZWQg4oCcbmFtZeKAnSB3aXRoCiAgICAg
ICAgICAgICAvLyBhdHRyaWJ1dGVzIHsgW1tXcml0YWJsZV1dOiBmYWxzZSwgW1tFbnVtZXJhYmxl
XV06IGZhbHNlLAogICAgICAgICAgICAgLy8gW1tDb25maWd1cmFibGVdXTogdHJ1ZSB9IHdob3Nl
IHZhbHVlIGlzIHRoZSBpZGVudGlmaWVyIG9mIHRoZQogICAgICAgICAgICAgLy8gY29ycmVzcG9u
ZGluZyBpbnRlcmZhY2UuIgogCi0gICAgICAgICAgICBhc3NlcnRfb3duX3Byb3BlcnR5KHNlbGZb
dGhpcy5uYW1lXSwgIm5hbWUiKTsKLSAgICAgICAgICAgIHZhciBkZXNjID0gT2JqZWN0LmdldE93
blByb3BlcnR5RGVzY3JpcHRvcihzZWxmW3RoaXMubmFtZV0sICJuYW1lIik7CisgICAgICAgICAg
ICBhc3NlcnRfb3duX3Byb3BlcnR5KHRoaXMuZ2V0X2ludGVyZmFjZV9vYmplY3QoKSwgIm5hbWUi
KTsKKyAgICAgICAgICAgIHZhciBkZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRv
cih0aGlzLmdldF9pbnRlcmZhY2Vfb2JqZWN0KCksICJuYW1lIik7CiAgICAgICAgICAgICBhc3Nl
cnRfZmFsc2UoImdldCIgaW4gZGVzYywgdGhpcy5uYW1lICsgIi5uYW1lIHNob3VsZCBub3QgaGF2
ZSBhIGdldHRlciIpOwogICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKCJzZXQiIGluIGRlc2MsIHRo
aXMubmFtZSArICIubmFtZSBzaG91bGQgbm90IGhhdmUgYSBzZXR0ZXIiKTsKICAgICAgICAgICAg
IGFzc2VydF9mYWxzZShkZXNjLndyaXRhYmxlLCB0aGlzLm5hbWUgKyAiLm5hbWUgc2hvdWxkIG5v
dCBiZSB3cml0YWJsZSIpOwogICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKGRlc2MuZW51bWVyYWJs
ZSwgdGhpcy5uYW1lICsgIi5uYW1lIHNob3VsZCBub3QgYmUgZW51bWVyYWJsZSIpOwogICAgICAg
ICAgICAgYXNzZXJ0X3RydWUoZGVzYy5jb25maWd1cmFibGUsIHRoaXMubmFtZSArICIubmFtZSBz
aG91bGQgYmUgY29uZmlndXJhYmxlIik7Ci0gICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNlbGZb
dGhpcy5uYW1lXS5uYW1lLCB0aGlzLm5hbWUsICJ3cm9uZyB2YWx1ZSBmb3IgIiArIHRoaXMubmFt
ZSArICIubmFtZSIpOworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyh0aGlzLmdldF9pbnRlcmZh
Y2Vfb2JqZWN0KCkubmFtZSwgdGhpcy5uYW1lLCAid3JvbmcgdmFsdWUgZm9yICIgKyB0aGlzLm5h
bWUgKyAiLm5hbWUiKTsKICAgICAgICAgfS5iaW5kKHRoaXMpLCB0aGlzLm5hbWUgKyAiIGludGVy
ZmFjZSBvYmplY3QgbmFtZSIpOwogICAgIH0KIApAQCAtMTY2NSw3ICsxNjk0LDcgQEAgSWRsSW50
ZXJmYWNlLnByb3RvdHlwZS50ZXN0X3NlbGYgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICB2YXIgYWxpYXNlczsKICAgICAgICAgICAgIGlmIChyaHMudHlwZSA9PT0gImlk
ZW50aWZpZXItbGlzdCIpIHsKLSAgICAgICAgICAgICAgICBhbGlhc2VzID0gcmhzLnZhbHVlOwor
ICAgICAgICAgICAgICAgIGFsaWFzZXMgPSByaHMudmFsdWUubWFwKGlkID0+IGlkLnZhbHVlKTsK
ICAgICAgICAgICAgIH0gZWxzZSB7IC8vIHJocy50eXBlID09PSBpZGVudGlmaWVyCiAgICAgICAg
ICAgICAgICAgYWxpYXNlcyA9IFsgcmhzLnZhbHVlIF07CiAgICAgICAgICAgICB9CkBAIC0xNjc1
LDkgKzE3MDQsOSBAQCBJZGxJbnRlcmZhY2UucHJvdG90eXBlLnRlc3Rfc2VsZiA9IGZ1bmN0aW9u
KCkKICAgICAgICAgICAgIGlmIChleHBvc2VkX2luKGV4cG9zdXJlX3NldCh0aGlzLCB0aGlzLmV4
cG9zdXJlU2V0KSkgJiYgJ2RvY3VtZW50JyBpbiBzZWxmKSB7CiAgICAgICAgICAgICAgICAgZm9y
IChhbGlhcyBvZiBhbGlhc2VzKSB7CiAgICAgICAgICAgICAgICAgICAgIGFzc2VydF90cnVlKGFs
aWFzIGluIHNlbGYsIGFsaWFzICsgIiBzaG91bGQgZXhpc3QiKTsKLSAgICAgICAgICAgICAgICAg
ICAgYXNzZXJ0X2VxdWFscyhzZWxmW2FsaWFzXSwgc2VsZlt0aGlzLm5hbWVdLCAic2VsZi4iICsg
YWxpYXMgKyAiIHNob3VsZCBiZSB0aGUgc2FtZSB2YWx1ZSBhcyBzZWxmLiIgKyB0aGlzLm5hbWUp
OworICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNlbGZbYWxpYXNdLCB0aGlzLmdl
dF9pbnRlcmZhY2Vfb2JqZWN0KCksICJzZWxmLiIgKyBhbGlhcyArICIgc2hvdWxkIGJlIHRoZSBz
YW1lIHZhbHVlIGFzIHNlbGYuIiArIHRoaXMuZ2V0X3F1YWxpZmllZF9uYW1lKCkpOwogICAgICAg
ICAgICAgICAgICAgICB2YXIgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Io
c2VsZiwgYWxpYXMpOwotICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGRlc2MudmFs
dWUsIHNlbGZbdGhpcy5uYW1lXSwgIndyb25nIHZhbHVlIGluICIgKyBhbGlhcyArICIgcHJvcGVy
dHkgZGVzY3JpcHRvciIpOworICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGRlc2Mu
dmFsdWUsIHRoaXMuZ2V0X2ludGVyZmFjZV9vYmplY3QoKSwgIndyb25nIHZhbHVlIGluICIgKyBh
bGlhcyArICIgcHJvcGVydHkgZGVzY3JpcHRvciIpOwogICAgICAgICAgICAgICAgICAgICBhc3Nl
cnRfdHJ1ZShkZXNjLndyaXRhYmxlLCBhbGlhcyArICIgc2hvdWxkIGJlIHdyaXRhYmxlIik7CiAg
ICAgICAgICAgICAgICAgICAgIGFzc2VydF9mYWxzZShkZXNjLmVudW1lcmFibGUsIGFsaWFzICsg
IiBzaG91bGQgbm90IGJlIGVudW1lcmFibGUiKTsKICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0
X3RydWUoZGVzYy5jb25maWd1cmFibGUsIGFsaWFzICsgIiBzaG91bGQgYmUgY29uZmlndXJhYmxl
Iik7CkBAIC0xNjkyLDcgKzE3MjEsMTIyIEBAIElkbEludGVyZmFjZS5wcm90b3R5cGUudGVzdF9z
ZWxmID0gZnVuY3Rpb24oKQogCiAgICAgICAgIH0uYmluZCh0aGlzKSwgdGhpcy5uYW1lICsgIiBp
bnRlcmZhY2U6IGxlZ2FjeSB3aW5kb3cgYWxpYXMiKTsKICAgICB9Ci0gICAgLy8gVE9ETzogVGVz
dCBuYW1lZCBjb25zdHJ1Y3RvcnMgaWYgSSBmaW5kIGFueSBpbnRlcmZhY2VzIHRoYXQgaGF2ZSB0
aGVtLgorCisgICAgaWYgKHRoaXMuaGFzX2V4dGVuZGVkX2F0dHJpYnV0ZSgiTmFtZWRDb25zdHJ1
Y3RvciIpKSB7CisgICAgICAgIHZhciBjb25zdHJ1Y3RvcnMgPSB0aGlzLmV4dEF0dHJzCisgICAg
ICAgICAgICAuZmlsdGVyKGZ1bmN0aW9uKGF0dHIpIHsgcmV0dXJuIGF0dHIubmFtZSA9PSAiTmFt
ZWRDb25zdHJ1Y3RvciI7IH0pOworICAgICAgICBpZiAoY29uc3RydWN0b3JzLmxlbmd0aCAhPT0g
MSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElkbEhhcm5lc3NFcnJvcigiSW50ZXJuYWwgZXJy
b3I6IG1pc3Npbmcgc3VwcG9ydCBmb3IgbXVsdGlwbGUgTmFtZWRDb25zdHJ1Y3RvciBleHRlbmRl
ZCBhdHRyaWJ1dGVzIik7CisgICAgICAgIH0KKyAgICAgICAgdmFyIGNvbnN0cnVjdG9yID0gY29u
c3RydWN0b3JzWzBdOworICAgICAgICB2YXIgbWluX2xlbmd0aCA9IG1pbk92ZXJsb2FkTGVuZ3Ro
KFtjb25zdHJ1Y3Rvcl0pOworCisgICAgICAgIHN1YnNldFRlc3RCeUtleSh0aGlzLm5hbWUsIHRl
c3QsIGZ1bmN0aW9uKCkKKyAgICAgICAgeworICAgICAgICAgICAgLy8gVGhpcyBmdW5jdGlvbiB0
ZXN0cyBXZWJJREwgYXMgb2YgMjAxOS0wMS0xNC4KKworICAgICAgICAgICAgLy8gImZvciBldmVy
eSBbTmFtZWRDb25zdHJ1Y3Rvcl0gZXh0ZW5kZWQgYXR0cmlidXRlIG9uIGFuIGV4cG9zZWQKKyAg
ICAgICAgICAgIC8vIGludGVyZmFjZSwgYSBjb3JyZXNwb25kaW5nIHByb3BlcnR5IG11c3QgZXhp
c3Qgb24gdGhlIEVDTUFTY3JpcHQKKyAgICAgICAgICAgIC8vIGdsb2JhbCBvYmplY3QuIFRoZSBu
YW1lIG9mIHRoZSBwcm9wZXJ0eSBpcyB0aGUKKyAgICAgICAgICAgIC8vIFtOYW1lZENvbnN0cnVj
dG9yXSdzIGlkZW50aWZpZXIsIGFuZCBpdHMgdmFsdWUgaXMgYW4gb2JqZWN0CisgICAgICAgICAg
ICAvLyBjYWxsZWQgYSBuYW1lZCBjb25zdHJ1Y3RvciwgLi4uIC4gVGhlIHByb3BlcnR5IGhhcyB0
aGUgYXR0cmlidXRlcworICAgICAgICAgICAgLy8geyBbW1dyaXRhYmxlXV06IHRydWUsIFtbRW51
bWVyYWJsZV1dOiBmYWxzZSwKKyAgICAgICAgICAgIC8vIFtbQ29uZmlndXJhYmxlXV06IHRydWUg
fS4iCisgICAgICAgICAgICB2YXIgbmFtZSA9IGNvbnN0cnVjdG9yLnJocy52YWx1ZTsKKyAgICAg
ICAgICAgIGFzc2VydF9vd25fcHJvcGVydHkoc2VsZiwgbmFtZSk7CisgICAgICAgICAgICB2YXIg
ZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Ioc2VsZiwgbmFtZSk7CisgICAg
ICAgICAgICBhc3NlcnRfZXF1YWxzKGRlc2MudmFsdWUsIHNlbGZbbmFtZV0sICJ3cm9uZyB2YWx1
ZSBpbiAiICsgbmFtZSArICIgcHJvcGVydHkgZGVzY3JpcHRvciIpOworICAgICAgICAgICAgYXNz
ZXJ0X3RydWUoZGVzYy53cml0YWJsZSwgbmFtZSArICIgc2hvdWxkIGJlIHdyaXRhYmxlIik7Cisg
ICAgICAgICAgICBhc3NlcnRfZmFsc2UoZGVzYy5lbnVtZXJhYmxlLCBuYW1lICsgIiBzaG91bGQg
bm90IGJlIGVudW1lcmFibGUiKTsKKyAgICAgICAgICAgIGFzc2VydF90cnVlKGRlc2MuY29uZmln
dXJhYmxlLCBuYW1lICsgIiBzaG91bGQgYmUgY29uZmlndXJhYmxlIik7CisgICAgICAgICAgICBh
c3NlcnRfZmFsc2UoImdldCIgaW4gZGVzYywgbmFtZSArICIgc2hvdWxkIG5vdCBoYXZlIGEgZ2V0
dGVyIik7CisgICAgICAgICAgICBhc3NlcnRfZmFsc2UoInNldCIgaW4gZGVzYywgbmFtZSArICIg
c2hvdWxkIG5vdCBoYXZlIGEgc2V0dGVyIik7CisgICAgICAgIH0uYmluZCh0aGlzKSwgdGhpcy5u
YW1lICsgIiBpbnRlcmZhY2U6IG5hbWVkIGNvbnN0cnVjdG9yIik7CisKKyAgICAgICAgc3Vic2V0
VGVzdEJ5S2V5KHRoaXMubmFtZSwgdGVzdCwgZnVuY3Rpb24oKQorICAgICAgICB7CisgICAgICAg
ICAgICAvLyBUaGlzIGZ1bmN0aW9uIHRlc3RzIFdlYklETCBhcyBvZiAyMDE5LTAxLTE0LgorCisg
ICAgICAgICAgICAvLyAiMi4gTGV0IEYgYmUgISBDcmVhdGVCdWlsdGluRnVuY3Rpb24ocmVhbG0s
IHN0ZXBzLAorICAgICAgICAgICAgLy8gICAgIHJlYWxtLltbSW50cmluc2ljc11dLltbJUZ1bmN0
aW9uUHJvdG90eXBlJV1dKS4iCisgICAgICAgICAgICB2YXIgbmFtZSA9IGNvbnN0cnVjdG9yLnJo
cy52YWx1ZTsKKyAgICAgICAgICAgIHZhciB2YWx1ZSA9IHNlbGZbbmFtZV07CisgICAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKHR5cGVvZiB2YWx1ZSwgImZ1bmN0aW9uIiwgInR5cGUgb2YgdmFsdWUg
aW4gIiArIG5hbWUgKyAiIHByb3BlcnR5IGRlc2NyaXB0b3IiKTsKKyAgICAgICAgICAgIGFzc2Vy
dF9ub3RfZXF1YWxzKHZhbHVlLCB0aGlzLmdldF9pbnRlcmZhY2Vfb2JqZWN0KCksICJ3cm9uZyB2
YWx1ZSBpbiAiICsgbmFtZSArICIgcHJvcGVydHkgZGVzY3JpcHRvciIpOworICAgICAgICAgICAg
YXNzZXJ0X2VxdWFscyhPYmplY3QuZ2V0UHJvdG90eXBlT2YodmFsdWUpLCBGdW5jdGlvbi5wcm90
b3R5cGUsICJ3cm9uZyB2YWx1ZSBmb3IgIiArIG5hbWUgKyAiJ3MgcHJvdG90eXBlIik7CisgICAg
ICAgIH0uYmluZCh0aGlzKSwgdGhpcy5uYW1lICsgIiBpbnRlcmZhY2U6IG5hbWVkIGNvbnN0cnVj
dG9yIG9iamVjdCIpOworCisgICAgICAgIHN1YnNldFRlc3RCeUtleSh0aGlzLm5hbWUsIHRlc3Qs
IGZ1bmN0aW9uKCkKKyAgICAgICAgeworICAgICAgICAgICAgLy8gVGhpcyBmdW5jdGlvbiB0ZXN0
cyBXZWJJREwgYXMgb2YgMjAxOS0wMS0xNC4KKworICAgICAgICAgICAgLy8gIjcuIExldCBwcm90
byBiZSB0aGUgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3Qgb2YgaW50ZXJmYWNlIEkKKyAgICAg
ICAgICAgIC8vICAgICBpbiByZWFsbS4KKyAgICAgICAgICAgIC8vICI4LiBQZXJmb3JtICEgRGVm
aW5lUHJvcGVydHlPclRocm93KEYsICJwcm90b3R5cGUiLAorICAgICAgICAgICAgLy8gICAgIFBy
b3BlcnR5RGVzY3JpcHRvcnsKKyAgICAgICAgICAgIC8vICAgICAgICAgW1tWYWx1ZV1dOiBwcm90
bywgW1tXcml0YWJsZV1dOiBmYWxzZSwKKyAgICAgICAgICAgIC8vICAgICAgICAgW1tFbnVtZXJh
YmxlXV06IGZhbHNlLCBbW0NvbmZpZ3VyYWJsZV1dOiBmYWxzZQorICAgICAgICAgICAgLy8gICAg
IH0pLiIKKyAgICAgICAgICAgIHZhciBuYW1lID0gY29uc3RydWN0b3IucmhzLnZhbHVlOworICAg
ICAgICAgICAgdmFyIGV4cGVjdGVkID0gdGhpcy5nZXRfaW50ZXJmYWNlX29iamVjdCgpLnByb3Rv
dHlwZTsKKyAgICAgICAgICAgIHZhciBkZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3Jp
cHRvcihzZWxmW25hbWVdLCAicHJvdG90eXBlIik7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxz
KGRlc2MudmFsdWUsIGV4cGVjdGVkLCAid3JvbmcgdmFsdWUgZm9yICIgKyBuYW1lICsgIi5wcm90
b3R5cGUiKTsKKyAgICAgICAgICAgIGFzc2VydF9mYWxzZShkZXNjLndyaXRhYmxlLCAicHJvdG90
eXBlIHNob3VsZCBub3QgYmUgd3JpdGFibGUiKTsKKyAgICAgICAgICAgIGFzc2VydF9mYWxzZShk
ZXNjLmVudW1lcmFibGUsICJwcm90b3R5cGUgc2hvdWxkIG5vdCBiZSBlbnVtZXJhYmxlIik7Cisg
ICAgICAgICAgICBhc3NlcnRfZmFsc2UoZGVzYy5jb25maWd1cmFibGUsICJwcm90b3R5cGUgc2hv
dWxkIG5vdCBiZSBjb25maWd1cmFibGUiKTsKKyAgICAgICAgICAgIGFzc2VydF9mYWxzZSgiZ2V0
IiBpbiBkZXNjLCAicHJvdG90eXBlIHNob3VsZCBub3QgaGF2ZSBhIGdldHRlciIpOworICAgICAg
ICAgICAgYXNzZXJ0X2ZhbHNlKCJzZXQiIGluIGRlc2MsICJwcm90b3R5cGUgc2hvdWxkIG5vdCBo
YXZlIGEgc2V0dGVyIik7CisgICAgICAgIH0uYmluZCh0aGlzKSwgdGhpcy5uYW1lICsgIiBpbnRl
cmZhY2U6IG5hbWVkIGNvbnN0cnVjdG9yIHByb3RvdHlwZSBwcm9wZXJ0eSIpOworCisgICAgICAg
IHN1YnNldFRlc3RCeUtleSh0aGlzLm5hbWUsIHRlc3QsIGZ1bmN0aW9uKCkKKyAgICAgICAgewor
ICAgICAgICAgICAgLy8gVGhpcyBmdW5jdGlvbiB0ZXN0cyBXZWJJREwgYXMgb2YgMjAxOS0wMS0x
NC4KKworICAgICAgICAgICAgLy8gIjMuIFBlcmZvcm0gISBTZXRGdW5jdGlvbk5hbWUoRiwgaWQp
LiIKKyAgICAgICAgICAgIHZhciBuYW1lID0gY29uc3RydWN0b3IucmhzLnZhbHVlOworICAgICAg
ICAgICAgdmFyIGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHNlbGZbbmFt
ZV0sICJuYW1lIik7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGRlc2MudmFsdWUsIG5hbWUs
ICJ3cm9uZyB2YWx1ZSBmb3IgIiArIG5hbWUgKyAiLm5hbWUiKTsKKyAgICAgICAgICAgIGFzc2Vy
dF9mYWxzZShkZXNjLndyaXRhYmxlLCAibmFtZSBzaG91bGQgbm90IGJlIHdyaXRhYmxlIik7Cisg
ICAgICAgICAgICBhc3NlcnRfZmFsc2UoZGVzYy5lbnVtZXJhYmxlLCAibmFtZSBzaG91bGQgbm90
IGJlIGVudW1lcmFibGUiKTsKKyAgICAgICAgICAgIGFzc2VydF90cnVlKGRlc2MuY29uZmlndXJh
YmxlLCAibmFtZSBzaG91bGQgYmUgY29uZmlndXJhYmxlIik7CisgICAgICAgICAgICBhc3NlcnRf
ZmFsc2UoImdldCIgaW4gZGVzYywgIm5hbWUgc2hvdWxkIG5vdCBoYXZlIGEgZ2V0dGVyIik7Cisg
ICAgICAgICAgICBhc3NlcnRfZmFsc2UoInNldCIgaW4gZGVzYywgIm5hbWUgc2hvdWxkIG5vdCBo
YXZlIGEgc2V0dGVyIik7CisgICAgICAgIH0uYmluZCh0aGlzKSwgdGhpcy5uYW1lICsgIiBpbnRl
cmZhY2U6IG5hbWVkIGNvbnN0cnVjdG9yIG5hbWUiKTsKKworICAgICAgICBzdWJzZXRUZXN0QnlL
ZXkodGhpcy5uYW1lLCB0ZXN0LCBmdW5jdGlvbigpCisgICAgICAgIHsKKyAgICAgICAgICAgIC8v
IFRoaXMgZnVuY3Rpb24gdGVzdHMgV2ViSURMIGFzIG9mIDIwMTktMDEtMTQuCisKKyAgICAgICAg
ICAgIC8vICI0LiBJbml0aWFsaXplIFMgdG8gdGhlIGVmZmVjdGl2ZSBvdmVybG9hZCBzZXQgZm9y
IGNvbnN0cnVjdG9ycworICAgICAgICAgICAgLy8gICAgIHdpdGggaWRlbnRpZmllciBpZCBvbiBp
bnRlcmZhY2UgSSBhbmQgd2l0aCBhcmd1bWVudCBjb3VudCAwLgorICAgICAgICAgICAgLy8gIjUu
IExldCBsZW5ndGggYmUgdGhlIGxlbmd0aCBvZiB0aGUgc2hvcnRlc3QgYXJndW1lbnQgbGlzdCBv
ZgorICAgICAgICAgICAgLy8gICAgIHRoZSBlbnRyaWVzIGluIFMuCisgICAgICAgICAgICAvLyAi
Ni4gUGVyZm9ybSAhIFNldEZ1bmN0aW9uTGVuZ3RoKEYsIGxlbmd0aCkuIgorICAgICAgICAgICAg
dmFyIG5hbWUgPSBjb25zdHJ1Y3Rvci5yaHMudmFsdWU7CisgICAgICAgICAgICB2YXIgZGVzYyA9
IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Ioc2VsZltuYW1lXSwgImxlbmd0aCIpOwor
ICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhkZXNjLnZhbHVlLCBtaW5fbGVuZ3RoLCAid3Jvbmcg
dmFsdWUgZm9yICIgKyBuYW1lICsgIi5sZW5ndGgiKTsKKyAgICAgICAgICAgIGFzc2VydF9mYWxz
ZShkZXNjLndyaXRhYmxlLCAibGVuZ3RoIHNob3VsZCBub3QgYmUgd3JpdGFibGUiKTsKKyAgICAg
ICAgICAgIGFzc2VydF9mYWxzZShkZXNjLmVudW1lcmFibGUsICJsZW5ndGggc2hvdWxkIG5vdCBi
ZSBlbnVtZXJhYmxlIik7CisgICAgICAgICAgICBhc3NlcnRfdHJ1ZShkZXNjLmNvbmZpZ3VyYWJs
ZSwgImxlbmd0aCBzaG91bGQgYmUgY29uZmlndXJhYmxlIik7CisgICAgICAgICAgICBhc3NlcnRf
ZmFsc2UoImdldCIgaW4gZGVzYywgImxlbmd0aCBzaG91bGQgbm90IGhhdmUgYSBnZXR0ZXIiKTsK
KyAgICAgICAgICAgIGFzc2VydF9mYWxzZSgic2V0IiBpbiBkZXNjLCAibGVuZ3RoIHNob3VsZCBu
b3QgaGF2ZSBhIHNldHRlciIpOworICAgICAgICB9LmJpbmQodGhpcyksIHRoaXMubmFtZSArICIg
aW50ZXJmYWNlOiBuYW1lZCBjb25zdHJ1Y3RvciBsZW5ndGgiKTsKKworICAgICAgICBzdWJzZXRU
ZXN0QnlLZXkodGhpcy5uYW1lLCB0ZXN0LCBmdW5jdGlvbigpCisgICAgICAgIHsKKyAgICAgICAg
ICAgIC8vIFRoaXMgZnVuY3Rpb24gdGVzdHMgV2ViSURMIGFzIG9mIDIwMTktMDEtMTQuCisKKyAg
ICAgICAgICAgIC8vICIxLiBMZXQgc3RlcHMgYmUgdGhlIGZvbGxvd2luZyBzdGVwczoKKyAgICAg
ICAgICAgIC8vICIgICAgMS4gSWYgTmV3VGFyZ2V0IGlzIHVuZGVmaW5lZCwgdGhlbiB0aHJvdyBh
IFR5cGVFcnJvci4iCisgICAgICAgICAgICB2YXIgbmFtZSA9IGNvbnN0cnVjdG9yLnJocy52YWx1
ZTsKKyAgICAgICAgICAgIHZhciBhcmdzID0gY29uc3RydWN0b3IuYXJndW1lbnRzLm1hcChmdW5j
dGlvbihhcmcpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gY3JlYXRlX3N1aXRhYmxlX29iamVj
dChhcmcuaWRsVHlwZSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIGFzc2VydF90aHJv
d3MobmV3IFR5cGVFcnJvcigpLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBzZWxmW25h
bWVdKC4uLmFyZ3MpOworICAgICAgICAgICAgfS5iaW5kKHRoaXMpKTsKKyAgICAgICAgfS5iaW5k
KHRoaXMpLCB0aGlzLm5hbWUgKyAiIGludGVyZmFjZTogbmFtZWQgY29uc3RydWN0b3Igd2l0aG91
dCAnbmV3JyIpOworICAgIH0KIAogICAgIHN1YnNldFRlc3RCeUtleSh0aGlzLm5hbWUsIHRlc3Qs
IGZ1bmN0aW9uKCkKICAgICB7CkBAIC0xNzAzLDExICsxODQ3LDEwIEBAIElkbEludGVyZmFjZS5w
cm90b3R5cGUudGVzdF9zZWxmID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuOwogICAg
ICAgICB9CiAKLSAgICAgICAgYXNzZXJ0X293bl9wcm9wZXJ0eShzZWxmLCB0aGlzLm5hbWUsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgInNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVy
dHkgIiArIGZvcm1hdF92YWx1ZSh0aGlzLm5hbWUpKTsKKyAgICAgICAgdGhpcy5hc3NlcnRfaW50
ZXJmYWNlX29iamVjdF9leGlzdHMoKTsKIAogICAgICAgICBpZiAodGhpcy5pc19jYWxsYmFjaygp
KSB7Ci0gICAgICAgICAgICBhc3NlcnRfZmFsc2UoInByb3RvdHlwZSIgaW4gc2VsZlt0aGlzLm5h
bWVdLAorICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKCJwcm90b3R5cGUiIGluIHRoaXMuZ2V0X2lu
dGVyZmFjZV9vYmplY3QoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm5hbWUgKyAn
IHNob3VsZCBub3QgaGF2ZSBhICJwcm90b3R5cGUiIHByb3BlcnR5Jyk7CiAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgIH0KQEAgLTE3MTksOSArMTg2Miw5IEBAIElkbEludGVyZmFjZS5wcm90
b3R5cGUudGVzdF9zZWxmID0gZnVuY3Rpb24oKQogICAgICAgICAvLyBwcm9wZXJ0aWVzIHRoYXQg
Y29ycmVzcG9uZCB0byB0aGUgcmVndWxhciBhdHRyaWJ1dGVzIGFuZCByZWd1bGFyCiAgICAgICAg
IC8vIG9wZXJhdGlvbnMgZGVmaW5lZCBvbiB0aGUgaW50ZXJmYWNlLCBhbmQgaXMgZGVzY3JpYmVk
IGluIG1vcmUgZGV0YWlsCiAgICAgICAgIC8vIGluIHNlY3Rpb24gNC41LjQgYmVsb3cuIgotICAg
ICAgICBhc3NlcnRfb3duX3Byb3BlcnR5KHNlbGZbdGhpcy5uYW1lXSwgInByb3RvdHlwZSIsCisg
ICAgICAgIGFzc2VydF9vd25fcHJvcGVydHkodGhpcy5nZXRfaW50ZXJmYWNlX29iamVjdCgpLCAi
cHJvdG90eXBlIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaW50ZXJmYWNlICInICsg
dGhpcy5uYW1lICsgJyIgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgInByb3RvdHlwZSInKTsK
LSAgICAgICAgdmFyIGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHNlbGZb
dGhpcy5uYW1lXSwgInByb3RvdHlwZSIpOworICAgICAgICB2YXIgZGVzYyA9IE9iamVjdC5nZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3IodGhpcy5nZXRfaW50ZXJmYWNlX29iamVjdCgpLCAicHJvdG90
eXBlIik7CiAgICAgICAgIGFzc2VydF9mYWxzZSgiZ2V0IiBpbiBkZXNjLCB0aGlzLm5hbWUgKyAi
LnByb3RvdHlwZSBzaG91bGQgbm90IGhhdmUgYSBnZXR0ZXIiKTsKICAgICAgICAgYXNzZXJ0X2Zh
bHNlKCJzZXQiIGluIGRlc2MsIHRoaXMubmFtZSArICIucHJvdG90eXBlIHNob3VsZCBub3QgaGF2
ZSBhIHNldHRlciIpOwogICAgICAgICBhc3NlcnRfZmFsc2UoZGVzYy53cml0YWJsZSwgdGhpcy5u
YW1lICsgIi5wcm90b3R5cGUgc2hvdWxkIG5vdCBiZSB3cml0YWJsZSIpOwpAQCAtMTc1NCwzOCAr
MTg5NywzOSBAQCBJZGxJbnRlcmZhY2UucHJvdG90eXBlLnRlc3Rfc2VsZiA9IGZ1bmN0aW9uKCkK
ICAgICAgICAgLy8gICAgIG9iamVjdCAlRXJyb3JQcm90b3R5cGUlLiIKICAgICAgICAgLy8KICAg
ICAgICAgaWYgKHRoaXMubmFtZSA9PT0gIldpbmRvdyIpIHsKLSAgICAgICAgICAgIGFzc2VydF9j
bGFzc19zdHJpbmcoT2JqZWN0LmdldFByb3RvdHlwZU9mKHNlbGZbdGhpcy5uYW1lXS5wcm90b3R5
cGUpLAorICAgICAgICAgICAgYXNzZXJ0X2NsYXNzX3N0cmluZyhPYmplY3QuZ2V0UHJvdG90eXBl
T2YodGhpcy5nZXRfaW50ZXJmYWNlX29iamVjdCgpLnByb3RvdHlwZSksCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICdXaW5kb3dQcm9wZXJ0aWVzJywKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgJ0NsYXNzIG5hbWUgZm9yIHByb3RvdHlwZSBvZiBXaW5kb3cnICsKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy5wcm90b3R5cGUgaXMgbm90ICJXaW5kb3dQ
cm9wZXJ0aWVzIicpOwogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgdmFyIGluaGVyaXRf
aW50ZXJmYWNlLCBpbmhlcml0X2ludGVyZmFjZV9oYXNfaW50ZXJmYWNlX29iamVjdDsKKyAgICAg
ICAgICAgIHZhciBpbmhlcml0X2ludGVyZmFjZSwgaW5oZXJpdF9pbnRlcmZhY2VfaW50ZXJmYWNl
X29iamVjdDsKICAgICAgICAgICAgIGlmICh0aGlzLmJhc2UpIHsKICAgICAgICAgICAgICAgICBp
bmhlcml0X2ludGVyZmFjZSA9IHRoaXMuYmFzZTsKLSAgICAgICAgICAgICAgICBpbmhlcml0X2lu
dGVyZmFjZV9oYXNfaW50ZXJmYWNlX29iamVjdCA9Ci0gICAgICAgICAgICAgICAgICAgICF0aGlz
LmFycmF5Ci0gICAgICAgICAgICAgICAgICAgICAgICAgLm1lbWJlcnNbaW5oZXJpdF9pbnRlcmZh
Y2VdCi0gICAgICAgICAgICAgICAgICAgICAgICAgLmhhc19leHRlbmRlZF9hdHRyaWJ1dGUoIk5v
SW50ZXJmYWNlT2JqZWN0Iik7CisgICAgICAgICAgICAgICAgdmFyIHBhcmVudCA9IHRoaXMuYXJy
YXkubWVtYmVyc1tpbmhlcml0X2ludGVyZmFjZV07CisgICAgICAgICAgICAgICAgaWYgKCFwYXJl
bnQuaGFzX2V4dGVuZGVkX2F0dHJpYnV0ZSgiTm9JbnRlcmZhY2VPYmplY3QiKSkgeworICAgICAg
ICAgICAgICAgICAgICBwYXJlbnQuYXNzZXJ0X2ludGVyZmFjZV9vYmplY3RfZXhpc3RzKCk7Cisg
ICAgICAgICAgICAgICAgICAgIGluaGVyaXRfaW50ZXJmYWNlX2ludGVyZmFjZV9vYmplY3QgPSBw
YXJlbnQuZ2V0X2ludGVyZmFjZV9vYmplY3QoKTsKKyAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICB9IGVsc2UgaWYgKHRoaXMubmFtZSA9PT0gIkRPTUV4Y2VwdGlvbiIpIHsKICAgICAgICAg
ICAgICAgICBpbmhlcml0X2ludGVyZmFjZSA9ICdFcnJvcic7Ci0gICAgICAgICAgICAgICAgaW5o
ZXJpdF9pbnRlcmZhY2VfaGFzX2ludGVyZmFjZV9vYmplY3QgPSB0cnVlOworICAgICAgICAgICAg
ICAgIGluaGVyaXRfaW50ZXJmYWNlX2ludGVyZmFjZV9vYmplY3QgPSBzZWxmLkVycm9yOwogICAg
ICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICBpbmhlcml0X2ludGVyZmFjZSA9ICdP
YmplY3QnOwotICAgICAgICAgICAgICAgIGluaGVyaXRfaW50ZXJmYWNlX2hhc19pbnRlcmZhY2Vf
b2JqZWN0ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBpbmhlcml0X2ludGVyZmFjZV9pbnRlcmZh
Y2Vfb2JqZWN0ID0gc2VsZi5PYmplY3Q7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAo
aW5oZXJpdF9pbnRlcmZhY2VfaGFzX2ludGVyZmFjZV9vYmplY3QpIHsKLSAgICAgICAgICAgICAg
ICBhc3NlcnRfb3duX3Byb3BlcnR5KHNlbGYsIGluaGVyaXRfaW50ZXJmYWNlLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Nob3VsZCBpbmhlcml0IGZyb20gJyArIGluaGVy
aXRfaW50ZXJmYWNlICsgJywgYnV0IHNlbGYgaGFzIG5vIHN1Y2ggcHJvcGVydHknKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnRfb3duX3Byb3BlcnR5KHNlbGZbaW5oZXJpdF9pbnRlcmZhY2VdLCAn
cHJvdG90eXBlJywKKyAgICAgICAgICAgIGlmIChpbmhlcml0X2ludGVyZmFjZV9pbnRlcmZhY2Vf
b2JqZWN0KSB7CisgICAgICAgICAgICAgICAgYXNzZXJ0X25vdF9lcXVhbHMoaW5oZXJpdF9pbnRl
cmZhY2VfaW50ZXJmYWNlX29iamVjdCwgdW5kZWZpbmVkLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICdzaG91bGQgaW5oZXJpdCBmcm9tICcgKyBpbmhlcml0X2ludGVyZmFjZSAr
ICcsIGJ1dCB0aGVyZSBpcyBubyBzdWNoIHByb3BlcnR5Jyk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0X293bl9wcm9wZXJ0eShpbmhlcml0X2ludGVyZmFjZV9pbnRlcmZhY2Vfb2JqZWN0LCAncHJv
dG90eXBlJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzaG91bGQgaW5o
ZXJpdCBmcm9tICcgKyBpbmhlcml0X2ludGVyZmFjZSArICcsIGJ1dCB0aGF0IG9iamVjdCBoYXMg
bm8gInByb3RvdHlwZSIgcHJvcGVydHknKTsKLSAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxz
KE9iamVjdC5nZXRQcm90b3R5cGVPZihzZWxmW3RoaXMubmFtZV0ucHJvdG90eXBlKSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGZbaW5oZXJpdF9pbnRlcmZhY2VdLnByb3RvdHlw
ZSwKKyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKE9iamVjdC5nZXRQcm90b3R5cGVPZih0
aGlzLmdldF9pbnRlcmZhY2Vfb2JqZWN0KCkucHJvdG90eXBlKSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGluaGVyaXRfaW50ZXJmYWNlX2ludGVyZmFjZV9vYmplY3QucHJvdG90eXBl
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Byb3RvdHlwZSBvZiAnICsgdGhpcy5u
YW1lICsgJy5wcm90b3R5cGUgaXMgbm90ICcgKyBpbmhlcml0X2ludGVyZmFjZSArICcucHJvdG90
eXBlJyk7CiAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgIC8vIFdlIGNhbid0
IHRlc3QgdGhhdCB3ZSBnZXQgdGhlIGNvcnJlY3Qgb2JqZWN0LCBiZWNhdXNlIHRoaXMgaXMgdGhl
CiAgICAgICAgICAgICAgICAgLy8gb25seSB3YXkgdG8gZ2V0IG91ciBoYW5kcyBvbiBpdC4gV2Ug
b25seSB0ZXN0IHRoYXQgaXRzIGNsYXNzCiAgICAgICAgICAgICAgICAgLy8gc3RyaW5nLCBhdCBs
ZWFzdCwgaXMgY29ycmVjdC4KLSAgICAgICAgICAgICAgICBhc3NlcnRfY2xhc3Nfc3RyaW5nKE9i
amVjdC5nZXRQcm90b3R5cGVPZihzZWxmW3RoaXMubmFtZV0ucHJvdG90eXBlKSwKKyAgICAgICAg
ICAgICAgICBhc3NlcnRfY2xhc3Nfc3RyaW5nKE9iamVjdC5nZXRQcm90b3R5cGVPZih0aGlzLmdl
dF9pbnRlcmZhY2Vfb2JqZWN0KCkucHJvdG90eXBlKSwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGluaGVyaXRfaW50ZXJmYWNlICsgJ1Byb3RvdHlwZScsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAnQ2xhc3MgbmFtZSBmb3IgcHJvdG90eXBlIG9mICcg
KyB0aGlzLm5hbWUgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy5wcm90
b3R5cGUgaXMgbm90ICInICsgaW5oZXJpdF9pbnRlcmZhY2UgKyAnUHJvdG90eXBlIicpOwpAQCAt
MTc5MywyMCArMTkzNywyMCBAQCBJZGxJbnRlcmZhY2UucHJvdG90eXBlLnRlc3Rfc2VsZiA9IGZ1
bmN0aW9uKCkKICAgICAgICAgfQogCiAgICAgICAgIC8vICJUaGUgY2xhc3Mgc3RyaW5nIG9mIGFu
IGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IGlzIHRoZQotICAgICAgICAvLyBjb25jYXRlbmF0
aW9uIG9mIHRoZSBpbnRlcmZhY2XigJlzIGlkZW50aWZpZXIgYW5kIHRoZSBzdHJpbmcKKyAgICAg
ICAgLy8gY29uY2F0ZW5hdGlvbiBvZiB0aGUgaW50ZXJmYWNl4oCZcyBxdWFsaWZpZWQgaWRlbnRp
ZmllciBhbmQgdGhlIHN0cmluZwogICAgICAgICAvLyDigJxQcm90b3R5cGXigJ0uIgogCiAgICAg
ICAgIC8vIFNraXAgdGhlc2UgdGVzdHMgZm9yIG5vdyBkdWUgdG8gYSBzcGVjaWZpY2F0aW9uIGlz
c3VlIGFib3V0CiAgICAgICAgIC8vIHByb3RvdHlwZSBuYW1lLgogICAgICAgICAvLyBodHRwczov
L3d3dy53My5vcmcvQnVncy9QdWJsaWMvc2hvd19idWcuY2dpP2lkPTI4MjQ0CiAKLSAgICAgICAg
Ly8gYXNzZXJ0X2NsYXNzX3N0cmluZyhzZWxmW3RoaXMubmFtZV0ucHJvdG90eXBlLCB0aGlzLm5h
bWUgKyAiUHJvdG90eXBlIiwKKyAgICAgICAgLy8gYXNzZXJ0X2NsYXNzX3N0cmluZyh0aGlzLmdl
dF9pbnRlcmZhY2Vfb2JqZWN0KCkucHJvdG90eXBlLCB0aGlzLmdldF9xdWFsaWZpZWRfbmFtZSgp
ICsgIlByb3RvdHlwZSIsCiAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgImNsYXNzIHN0
cmluZyBvZiAiICsgdGhpcy5uYW1lICsgIi5wcm90b3R5cGUiKTsKIAogICAgICAgICAvLyBTdHJp
bmcoKSBzaG91bGQgZW5kIHVwIGNhbGxpbmcge30udG9TdHJpbmcgaWYgbm90aGluZyBkZWZpbmVz
IGEKICAgICAgICAgLy8gc3RyaW5naWZpZXIuCiAgICAgICAgIGlmICghdGhpcy5oYXNfc3RyaW5n
aWZpZXIoKSkgewotICAgICAgICAgICAgLy8gYXNzZXJ0X2VxdWFscyhTdHJpbmcoc2VsZlt0aGlz
Lm5hbWVdLnByb3RvdHlwZSksICJbb2JqZWN0ICIgKyB0aGlzLm5hbWUgKyAiUHJvdG90eXBlXSIs
CisgICAgICAgICAgICAvLyBhc3NlcnRfZXF1YWxzKFN0cmluZyh0aGlzLmdldF9pbnRlcmZhY2Vf
b2JqZWN0KCkucHJvdG90eXBlKSwgIltvYmplY3QgIiArIHRoaXMuZ2V0X3F1YWxpZmllZF9uYW1l
KCkgKyAiUHJvdG90eXBlXSIsCiAgICAgICAgICAgICAvLyAgICAgICAgICJTdHJpbmcoIiArIHRo
aXMubmFtZSArICIucHJvdG90eXBlKSIpOwogICAgICAgICB9CiAgICAgfS5iaW5kKHRoaXMpLCB0
aGlzLm5hbWUgKyAiIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVy
ZmFjZSBwcm90b3R5cGUgb2JqZWN0Iik7CkBAIC0xODE4LDcgKzE5NjIsNyBAQCBJZGxJbnRlcmZh
Y2UucHJvdG90eXBlLnRlc3Rfc2VsZiA9IGZ1bmN0aW9uKCkKICAgICAvLyBwcm90b3R5cGUgZXhv
dGljIG9iamVjdC4iCiAgICAgLy8gaHR0cHM6Ly9oZXljYW0uZ2l0aHViLmlvL3dlYmlkbC8jaW50
ZXJmYWNlLXByb3RvdHlwZS1vYmplY3QKICAgICBpZiAodGhpcy5pc19nbG9iYWwoKSkgewotICAg
ICAgICB0aGlzLnRlc3RfaW1tdXRhYmxlX3Byb3RvdHlwZSgiaW50ZXJmYWNlIHByb3RvdHlwZSBv
YmplY3QiLCBzZWxmW3RoaXMubmFtZV0ucHJvdG90eXBlKTsKKyAgICAgICAgdGhpcy50ZXN0X2lt
bXV0YWJsZV9wcm90b3R5cGUoImludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IiwgdGhpcy5nZXRf
aW50ZXJmYWNlX29iamVjdCgpLnByb3RvdHlwZSk7CiAgICAgfQogCiAgICAgc3Vic2V0VGVzdEJ5
S2V5KHRoaXMubmFtZSwgdGVzdCwgZnVuY3Rpb24oKQpAQCAtMTgyNywxNiArMTk3MSwxNSBAQCBJ
ZGxJbnRlcmZhY2UucHJvdG90eXBlLnRlc3Rfc2VsZiA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIGFzc2VydF9vd25fcHJvcGVydHkoc2VsZiwg
dGhpcy5uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzZWxmIGRvZXMgbm90IGhh
dmUgb3duIHByb3BlcnR5ICIgKyBmb3JtYXRfdmFsdWUodGhpcy5uYW1lKSk7CisgICAgICAgIHRo
aXMuYXNzZXJ0X2ludGVyZmFjZV9vYmplY3RfZXhpc3RzKCk7CiAKICAgICAgICAgaWYgKHRoaXMu
aXNfY2FsbGJhY2soKSkgewotICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKCJwcm90b3R5cGUiIGlu
IHNlbGZbdGhpcy5uYW1lXSwKKyAgICAgICAgICAgIGFzc2VydF9mYWxzZSgicHJvdG90eXBlIiBp
biB0aGlzLmdldF9pbnRlcmZhY2Vfb2JqZWN0KCksCiAgICAgICAgICAgICAgICAgICAgICAgICAg
dGhpcy5uYW1lICsgJyBzaG91bGQgbm90IGhhdmUgYSAicHJvdG90eXBlIiBwcm9wZXJ0eScpOwog
ICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAgICAgYXNzZXJ0X293bl9wcm9w
ZXJ0eShzZWxmW3RoaXMubmFtZV0sICJwcm90b3R5cGUiLAorICAgICAgICBhc3NlcnRfb3duX3By
b3BlcnR5KHRoaXMuZ2V0X2ludGVyZmFjZV9vYmplY3QoKSwgInByb3RvdHlwZSIsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgJ2ludGVyZmFjZSAiJyArIHRoaXMubmFtZSArICciIGRvZXMg
bm90IGhhdmUgb3duIHByb3BlcnR5ICJwcm90b3R5cGUiJyk7CiAKICAgICAgICAgLy8gIklmIHRo
ZSBbTm9JbnRlcmZhY2VPYmplY3RdIGV4dGVuZGVkIGF0dHJpYnV0ZSB3YXMgbm90IHNwZWNpZmll
ZCBvbgpAQCAtMTg0NCwxNSArMTk4NywxNSBAQCBJZGxJbnRlcmZhY2UucHJvdG90eXBlLnRlc3Rf
c2VsZiA9IGZ1bmN0aW9uKCkKICAgICAgICAgLy8gcHJvcGVydHkgbmFtZWQg4oCcY29uc3RydWN0
b3LigJ0gd2l0aCBhdHRyaWJ1dGVzIHsgW1tXcml0YWJsZV1dOiB0cnVlLAogICAgICAgICAvLyBb
W0VudW1lcmFibGVdXTogZmFsc2UsIFtbQ29uZmlndXJhYmxlXV06IHRydWUgfSB3aG9zZSB2YWx1
ZSBpcyBhCiAgICAgICAgIC8vIHJlZmVyZW5jZSB0byB0aGUgaW50ZXJmYWNlIG9iamVjdCBmb3Ig
dGhlIGludGVyZmFjZS4iCi0gICAgICAgIGFzc2VydF9vd25fcHJvcGVydHkoc2VsZlt0aGlzLm5h
bWVdLnByb3RvdHlwZSwgImNvbnN0cnVjdG9yIiwKKyAgICAgICAgYXNzZXJ0X293bl9wcm9wZXJ0
eSh0aGlzLmdldF9pbnRlcmZhY2Vfb2JqZWN0KCkucHJvdG90eXBlLCAiY29uc3RydWN0b3IiLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubmFtZSArICcucHJvdG90eXBlIGRvZXMg
bm90IGhhdmUgb3duIHByb3BlcnR5ICJjb25zdHJ1Y3RvciInKTsKLSAgICAgICAgdmFyIGRlc2Mg
PSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHNlbGZbdGhpcy5uYW1lXS5wcm90b3R5
cGUsICJjb25zdHJ1Y3RvciIpOworICAgICAgICB2YXIgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3IodGhpcy5nZXRfaW50ZXJmYWNlX29iamVjdCgpLnByb3RvdHlwZSwgImNv
bnN0cnVjdG9yIik7CiAgICAgICAgIGFzc2VydF9mYWxzZSgiZ2V0IiBpbiBkZXNjLCB0aGlzLm5h
bWUgKyAiLnByb3RvdHlwZS5jb25zdHJ1Y3RvciBzaG91bGQgbm90IGhhdmUgYSBnZXR0ZXIiKTsK
ICAgICAgICAgYXNzZXJ0X2ZhbHNlKCJzZXQiIGluIGRlc2MsIHRoaXMubmFtZSArICIucHJvdG90
eXBlLmNvbnN0cnVjdG9yIHNob3VsZCBub3QgaGF2ZSBhIHNldHRlciIpOwogICAgICAgICBhc3Nl
cnRfdHJ1ZShkZXNjLndyaXRhYmxlLCB0aGlzLm5hbWUgKyAiLnByb3RvdHlwZS5jb25zdHJ1Y3Rv
ciBzaG91bGQgYmUgd3JpdGFibGUiKTsKICAgICAgICAgYXNzZXJ0X2ZhbHNlKGRlc2MuZW51bWVy
YWJsZSwgdGhpcy5uYW1lICsgIi5wcm90b3R5cGUuY29uc3RydWN0b3Igc2hvdWxkIG5vdCBiZSBl
bnVtZXJhYmxlIik7CiAgICAgICAgIGFzc2VydF90cnVlKGRlc2MuY29uZmlndXJhYmxlLCB0aGlz
Lm5hbWUgKyAiLnByb3RvdHlwZS5jb25zdHJ1Y3RvciBzaG91bGQgYmUgY29uZmlndXJhYmxlIik7
Ci0gICAgICAgIGFzc2VydF9lcXVhbHMoc2VsZlt0aGlzLm5hbWVdLnByb3RvdHlwZS5jb25zdHJ1
Y3Rvciwgc2VsZlt0aGlzLm5hbWVdLAorICAgICAgICBhc3NlcnRfZXF1YWxzKHRoaXMuZ2V0X2lu
dGVyZmFjZV9vYmplY3QoKS5wcm90b3R5cGUuY29uc3RydWN0b3IsIHRoaXMuZ2V0X2ludGVyZmFj
ZV9vYmplY3QoKSwKICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm5hbWUgKyAnLnByb3RvdHlw
ZS5jb25zdHJ1Y3RvciBpcyBub3QgdGhlIHNhbWUgb2JqZWN0IGFzICcgKyB0aGlzLm5hbWUpOwog
ICAgIH0uYmluZCh0aGlzKSwgdGhpcy5uYW1lICsgJyBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQg
cHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdFwncyAiY29uc3RydWN0b3Ii
IHByb3BlcnR5Jyk7CiAKQEAgLTE4NjMsMTYgKzIwMDYsMTUgQEAgSWRsSW50ZXJmYWNlLnByb3Rv
dHlwZS50ZXN0X3NlbGYgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
IH0KIAotICAgICAgICBhc3NlcnRfb3duX3Byb3BlcnR5KHNlbGYsIHRoaXMubmFtZSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAic2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAi
ICsgZm9ybWF0X3ZhbHVlKHRoaXMubmFtZSkpOworICAgICAgICB0aGlzLmFzc2VydF9pbnRlcmZh
Y2Vfb2JqZWN0X2V4aXN0cygpOwogCiAgICAgICAgIGlmICh0aGlzLmlzX2NhbGxiYWNrKCkpIHsK
LSAgICAgICAgICAgIGFzc2VydF9mYWxzZSgicHJvdG90eXBlIiBpbiBzZWxmW3RoaXMubmFtZV0s
CisgICAgICAgICAgICBhc3NlcnRfZmFsc2UoInByb3RvdHlwZSIgaW4gdGhpcy5nZXRfaW50ZXJm
YWNlX29iamVjdCgpLAogICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubmFtZSArICcgc2hv
dWxkIG5vdCBoYXZlIGEgInByb3RvdHlwZSIgcHJvcGVydHknKTsKICAgICAgICAgICAgIHJldHVy
bjsKICAgICAgICAgfQogCi0gICAgICAgIGFzc2VydF9vd25fcHJvcGVydHkoc2VsZlt0aGlzLm5h
bWVdLCAicHJvdG90eXBlIiwKKyAgICAgICAgYXNzZXJ0X293bl9wcm9wZXJ0eSh0aGlzLmdldF9p
bnRlcmZhY2Vfb2JqZWN0KCksICJwcm90b3R5cGUiLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICdpbnRlcmZhY2UgIicgKyB0aGlzLm5hbWUgKyAnIiBkb2VzIG5vdCBoYXZlIG93biBwcm9w
ZXJ0eSAicHJvdG90eXBlIicpOwogCiAgICAgICAgIC8vIElmIHRoZSBpbnRlcmZhY2UgaGFzIGFu
eSBtZW1iZXIgZGVjbGFyZWQgd2l0aCB0aGUgW1Vuc2NvcGFibGVdIGV4dGVuZGVkCkBAIC0xODgx
LDcgKzIwMjMsNyBAQCBJZGxJbnRlcmZhY2UucHJvdG90eXBlLnRlc3Rfc2VsZiA9IGZ1bmN0aW9u
KCkKICAgICAgICAgLy8geyBbW1dyaXRhYmxlXV06IGZhbHNlLCBbW0VudW1lcmFibGVdXTogZmFs
c2UsIFtbQ29uZmlndXJhYmxlXV06IHRydWUgfSwKICAgICAgICAgLy8gYW5kIHdob3NlIHZhbHVl
IGlzIGFuIG9iamVjdCBjcmVhdGVkIGFzIGZvbGxvd3MuLi4KICAgICAgICAgdmFyIHVuc2NvcGFi
bGVzID0gdGhpcy5nZXRfdW5zY29wYWJsZXMoKS5tYXAobSA9PiBtLm5hbWUpOwotICAgICAgICB2
YXIgcHJvdG8gPSBzZWxmW3RoaXMubmFtZV0ucHJvdG90eXBlOworICAgICAgICB2YXIgcHJvdG8g
PSB0aGlzLmdldF9pbnRlcmZhY2Vfb2JqZWN0KCkucHJvdG90eXBlOwogICAgICAgICBpZiAodW5z
Y29wYWJsZXMubGVuZ3RoICE9IDApIHsKICAgICAgICAgICAgIGFzc2VydF9vd25fcHJvcGVydHko
CiAgICAgICAgICAgICAgICAgcHJvdG8sIFN5bWJvbC51bnNjb3BhYmxlcywKQEAgLTE5MTIsMTYg
KzIwNTQsMTQgQEAgSWRsSW50ZXJmYWNlLnByb3RvdHlwZS50ZXN0X3NlbGYgPSBmdW5jdGlvbigp
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5uYW1lICsgJy5wcm90b3R5
cGVbU3ltYm9sLnVuc2NvcGFibGVzXSBoYXMgdW5leHBlY3RlZCBwcm9wZXJ0eSAiJyArIHByb3Ag
KyAnIicpOwogICAgICAgICAgICAgfQogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgYXNz
ZXJ0X2VxdWFscyhPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHNlbGZbdGhpcy5uYW1l
XS5wcm90b3R5cGUsIFN5bWJvbC51bnNjb3BhYmxlcyksCisgICAgICAgICAgICBhc3NlcnRfZXF1
YWxzKE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodGhpcy5nZXRfaW50ZXJmYWNlX29i
amVjdCgpLnByb3RvdHlwZSwgU3ltYm9sLnVuc2NvcGFibGVzKSwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdW5kZWZpbmVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm5hbWUg
KyAnLnByb3RvdHlwZSBzaG91bGQgbm90IGhhdmUgQEB1bnNjb3BhYmxlcycpOwogICAgICAgICB9
CiAgICAgfS5iaW5kKHRoaXMpLCB0aGlzLm5hbWUgKyAnIGludGVyZmFjZTogZXhpc3RlbmNlIGFu
ZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0XCdzIEBAdW5zY29wYWJs
ZXMgcHJvcGVydHknKTsKIH07CiAKLS8vQH0KIElkbEludGVyZmFjZS5wcm90b3R5cGUudGVzdF9p
bW11dGFibGVfcHJvdG90eXBlID0gZnVuY3Rpb24odHlwZSwgb2JqKQotLy9AewogewogICAgIGlm
ICh0eXBlb2YgT2JqZWN0LnNldFByb3RvdHlwZU9mICE9PSAiZnVuY3Rpb24iKSB7CiAgICAgICAg
IHJldHVybjsKQEAgLTIwMjMsOSArMjE2Myw3IEBAIElkbEludGVyZmFjZS5wcm90b3R5cGUudGVz
dF9pbW11dGFibGVfcHJvdG90eXBlID0gZnVuY3Rpb24odHlwZSwgb2JqKQogICAgICAgICAic2hv
dWxkIHJldHVybiB0cnVlIik7CiB9OwogCi0vL0B9CiBJZGxJbnRlcmZhY2UucHJvdG90eXBlLnRl
c3RfbWVtYmVyX2NvbnN0ID0gZnVuY3Rpb24obWVtYmVyKQotLy9AewogewogICAgIGlmICghdGhp
cy5oYXNfY29uc3RhbnRzKCkpIHsKICAgICAgICAgdGhyb3cgbmV3IElkbEhhcm5lc3NFcnJvcigi
SW50ZXJuYWwgZXJyb3I6IHRlc3RfbWVtYmVyX2NvbnN0IGNhbGxlZCB3aXRob3V0IGFueSBjb25z
dGFudHMiKTsKQEAgLTIwMzMsMjEgKzIxNzEsMjAgQEAgSWRsSW50ZXJmYWNlLnByb3RvdHlwZS50
ZXN0X21lbWJlcl9jb25zdCA9IGZ1bmN0aW9uKG1lbWJlcikKIAogICAgIHN1YnNldFRlc3RCeUtl
eSh0aGlzLm5hbWUsIHRlc3QsIGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIGFzc2VydF9vd25f
cHJvcGVydHkoc2VsZiwgdGhpcy5uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJz
ZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICIgKyBmb3JtYXRfdmFsdWUodGhpcy5uYW1l
KSk7CisgICAgICAgIHRoaXMuYXNzZXJ0X2ludGVyZmFjZV9vYmplY3RfZXhpc3RzKCk7CiAKICAg
ICAgICAgLy8gIkZvciBlYWNoIGNvbnN0YW50IGRlZmluZWQgb24gYW4gaW50ZXJmYWNlIEEsIHRo
ZXJlIG11c3QgYmUKICAgICAgICAgLy8gYSBjb3JyZXNwb25kaW5nIHByb3BlcnR5IG9uIHRoZSBp
bnRlcmZhY2Ugb2JqZWN0LCBpZiBpdAogICAgICAgICAvLyBleGlzdHMuIgotICAgICAgICBhc3Nl
cnRfb3duX3Byb3BlcnR5KHNlbGZbdGhpcy5uYW1lXSwgbWVtYmVyLm5hbWUpOworICAgICAgICBh
c3NlcnRfb3duX3Byb3BlcnR5KHRoaXMuZ2V0X2ludGVyZmFjZV9vYmplY3QoKSwgbWVtYmVyLm5h
bWUpOwogICAgICAgICAvLyAiVGhlIHZhbHVlIG9mIHRoZSBwcm9wZXJ0eSBpcyB0aGF0IHdoaWNo
IGlzIG9idGFpbmVkIGJ5CiAgICAgICAgIC8vIGNvbnZlcnRpbmcgdGhlIGNvbnN0YW504oCZcyBJ
REwgdmFsdWUgdG8gYW4gRUNNQVNjcmlwdAogICAgICAgICAvLyB2YWx1ZS4iCi0gICAgICAgIGFz
c2VydF9lcXVhbHMoc2VsZlt0aGlzLm5hbWVdW21lbWJlci5uYW1lXSwgY29uc3RWYWx1ZShtZW1i
ZXIudmFsdWUpLAorICAgICAgICBhc3NlcnRfZXF1YWxzKHRoaXMuZ2V0X2ludGVyZmFjZV9vYmpl
Y3QoKVttZW1iZXIubmFtZV0sIGNvbnN0VmFsdWUobWVtYmVyLnZhbHVlKSwKICAgICAgICAgICAg
ICAgICAgICAgICAicHJvcGVydHkgaGFzIHdyb25nIHZhbHVlIik7CiAgICAgICAgIC8vICJUaGUg
cHJvcGVydHkgaGFzIGF0dHJpYnV0ZXMgeyBbW1dyaXRhYmxlXV06IGZhbHNlLAogICAgICAgICAv
LyBbW0VudW1lcmFibGVdXTogdHJ1ZSwgW1tDb25maWd1cmFibGVdXTogZmFsc2UgfS4iCi0gICAg
ICAgIHZhciBkZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihzZWxmW3RoaXMu
bmFtZV0sIG1lbWJlci5uYW1lKTsKKyAgICAgICAgdmFyIGRlc2MgPSBPYmplY3QuZ2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yKHRoaXMuZ2V0X2ludGVyZmFjZV9vYmplY3QoKSwgbWVtYmVyLm5hbWUp
OwogICAgICAgICBhc3NlcnRfZmFsc2UoImdldCIgaW4gZGVzYywgInByb3BlcnR5IHNob3VsZCBu
b3QgaGF2ZSBhIGdldHRlciIpOwogICAgICAgICBhc3NlcnRfZmFsc2UoInNldCIgaW4gZGVzYywg
InByb3BlcnR5IHNob3VsZCBub3QgaGF2ZSBhIHNldHRlciIpOwogICAgICAgICBhc3NlcnRfZmFs
c2UoZGVzYy53cml0YWJsZSwgInByb3BlcnR5IHNob3VsZCBub3QgYmUgd3JpdGFibGUiKTsKQEAg
LTIwNTksMjIgKzIxOTYsMjEgQEAgSWRsSW50ZXJmYWNlLnByb3RvdHlwZS50ZXN0X21lbWJlcl9j
b25zdCA9IGZ1bmN0aW9uKG1lbWJlcikKICAgICAvLyBleGlzdCBvbiB0aGUgaW50ZXJmYWNlIHBy
b3RvdHlwZSBvYmplY3QuIgogICAgIHN1YnNldFRlc3RCeUtleSh0aGlzLm5hbWUsIHRlc3QsIGZ1
bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIGFzc2VydF9vd25fcHJvcGVydHkoc2VsZiwgdGhpcy5u
YW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzZWxmIGRvZXMgbm90IGhhdmUgb3du
IHByb3BlcnR5ICIgKyBmb3JtYXRfdmFsdWUodGhpcy5uYW1lKSk7CisgICAgICAgIHRoaXMuYXNz
ZXJ0X2ludGVyZmFjZV9vYmplY3RfZXhpc3RzKCk7CiAKICAgICAgICAgaWYgKHRoaXMuaXNfY2Fs
bGJhY2soKSkgewotICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKCJwcm90b3R5cGUiIGluIHNlbGZb
dGhpcy5uYW1lXSwKKyAgICAgICAgICAgIGFzc2VydF9mYWxzZSgicHJvdG90eXBlIiBpbiB0aGlz
LmdldF9pbnRlcmZhY2Vfb2JqZWN0KCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5u
YW1lICsgJyBzaG91bGQgbm90IGhhdmUgYSAicHJvdG90eXBlIiBwcm9wZXJ0eScpOwogICAgICAg
ICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAgICAgYXNzZXJ0X293bl9wcm9wZXJ0eShz
ZWxmW3RoaXMubmFtZV0sICJwcm90b3R5cGUiLAorICAgICAgICBhc3NlcnRfb3duX3Byb3BlcnR5
KHRoaXMuZ2V0X2ludGVyZmFjZV9vYmplY3QoKSwgInByb3RvdHlwZSIsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgJ2ludGVyZmFjZSAiJyArIHRoaXMubmFtZSArICciIGRvZXMgbm90IGhh
dmUgb3duIHByb3BlcnR5ICJwcm90b3R5cGUiJyk7CiAKLSAgICAgICAgYXNzZXJ0X293bl9wcm9w
ZXJ0eShzZWxmW3RoaXMubmFtZV0ucHJvdG90eXBlLCBtZW1iZXIubmFtZSk7Ci0gICAgICAgIGFz
c2VydF9lcXVhbHMoc2VsZlt0aGlzLm5hbWVdLnByb3RvdHlwZVttZW1iZXIubmFtZV0sIGNvbnN0
VmFsdWUobWVtYmVyLnZhbHVlKSwKKyAgICAgICAgYXNzZXJ0X293bl9wcm9wZXJ0eSh0aGlzLmdl
dF9pbnRlcmZhY2Vfb2JqZWN0KCkucHJvdG90eXBlLCBtZW1iZXIubmFtZSk7CisgICAgICAgIGFz
c2VydF9lcXVhbHModGhpcy5nZXRfaW50ZXJmYWNlX29iamVjdCgpLnByb3RvdHlwZVttZW1iZXIu
bmFtZV0sIGNvbnN0VmFsdWUobWVtYmVyLnZhbHVlKSwKICAgICAgICAgICAgICAgICAgICAgICAi
cHJvcGVydHkgaGFzIHdyb25nIHZhbHVlIik7Ci0gICAgICAgIHZhciBkZXNjID0gT2JqZWN0Lmdl
dE93blByb3BlcnR5RGVzY3JpcHRvcihzZWxmW3RoaXMubmFtZV0sIG1lbWJlci5uYW1lKTsKKyAg
ICAgICAgdmFyIGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRoaXMuZ2V0
X2ludGVyZmFjZV9vYmplY3QoKSwgbWVtYmVyLm5hbWUpOwogICAgICAgICBhc3NlcnRfZmFsc2Uo
ImdldCIgaW4gZGVzYywgInByb3BlcnR5IHNob3VsZCBub3QgaGF2ZSBhIGdldHRlciIpOwogICAg
ICAgICBhc3NlcnRfZmFsc2UoInNldCIgaW4gZGVzYywgInByb3BlcnR5IHNob3VsZCBub3QgaGF2
ZSBhIHNldHRlciIpOwogICAgICAgICBhc3NlcnRfZmFsc2UoZGVzYy53cml0YWJsZSwgInByb3Bl
cnR5IHNob3VsZCBub3QgYmUgd3JpdGFibGUiKTsKQEAgLTIwODQsOSArMjIyMCw3IEBAIElkbElu
dGVyZmFjZS5wcm90b3R5cGUudGVzdF9tZW1iZXJfY29uc3QgPSBmdW5jdGlvbihtZW1iZXIpCiB9
OwogCiAKLS8vQH0KIElkbEludGVyZmFjZS5wcm90b3R5cGUudGVzdF9tZW1iZXJfYXR0cmlidXRl
ID0gZnVuY3Rpb24obWVtYmVyKQotLy9AewogICB7CiAgICAgaWYgKCFzaG91bGRSdW5TdWJUZXN0
KHRoaXMubmFtZSkpIHsKICAgICAgICAgcmV0dXJuOwpAQCAtMjA5OSwxMyArMjIzMywxMiBAQCBJ
ZGxJbnRlcmZhY2UucHJvdG90eXBlLnRlc3RfbWVtYmVyX2F0dHJpYnV0ZSA9IGZ1bmN0aW9uKG1l
bWJlcikKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIGFzc2VydF9v
d25fcHJvcGVydHkoc2VsZiwgdGhpcy5uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICIgKyBmb3JtYXRfdmFsdWUodGhpcy5u
YW1lKSk7Ci0gICAgICAgIGFzc2VydF9vd25fcHJvcGVydHkoc2VsZlt0aGlzLm5hbWVdLCAicHJv
dG90eXBlIiwKKyAgICAgICAgdGhpcy5hc3NlcnRfaW50ZXJmYWNlX29iamVjdF9leGlzdHMoKTsK
KyAgICAgICAgYXNzZXJ0X293bl9wcm9wZXJ0eSh0aGlzLmdldF9pbnRlcmZhY2Vfb2JqZWN0KCks
ICJwcm90b3R5cGUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICdpbnRlcmZhY2UgIicg
KyB0aGlzLm5hbWUgKyAnIiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAicHJvdG90eXBlIicp
OwogCi0gICAgICAgIGlmIChtZW1iZXJbInN0YXRpYyJdKSB7Ci0gICAgICAgICAgICBhc3NlcnRf
b3duX3Byb3BlcnR5KHNlbGZbdGhpcy5uYW1lXSwgbWVtYmVyLm5hbWUsCisgICAgICAgIGlmICht
ZW1iZXIuc3BlY2lhbCA9PT0gInN0YXRpYyIpIHsKKyAgICAgICAgICAgIGFzc2VydF9vd25fcHJv
cGVydHkodGhpcy5nZXRfaW50ZXJmYWNlX29iamVjdCgpLCBtZW1iZXIubmFtZSwKICAgICAgICAg
ICAgICAgICAiVGhlIGludGVyZmFjZSBvYmplY3QgbXVzdCBoYXZlIGEgcHJvcGVydHkgIiArCiAg
ICAgICAgICAgICAgICAgZm9ybWF0X3ZhbHVlKG1lbWJlci5uYW1lKSk7CiAgICAgICAgICAgICBh
X3Rlc3QuZG9uZSgpOwpAQCAtMjExOCw3ICsyMjUxLDcgQEAgSWRsSW50ZXJmYWNlLnByb3RvdHlw
ZS50ZXN0X21lbWJlcl9hdHRyaWJ1dGUgPSBmdW5jdGlvbihtZW1iZXIpCiAgICAgICAgICAgICBh
c3NlcnRfb3duX3Byb3BlcnR5KHNlbGYsIG1lbWJlci5uYW1lLAogICAgICAgICAgICAgICAgICJU
aGUgZ2xvYmFsIG9iamVjdCBtdXN0IGhhdmUgYSBwcm9wZXJ0eSAiICsKICAgICAgICAgICAgICAg
ICBmb3JtYXRfdmFsdWUobWVtYmVyLm5hbWUpKTsKLSAgICAgICAgICAgIGFzc2VydF9mYWxzZSht
ZW1iZXIubmFtZSBpbiBzZWxmW3RoaXMubmFtZV0ucHJvdG90eXBlLAorICAgICAgICAgICAgYXNz
ZXJ0X2ZhbHNlKG1lbWJlci5uYW1lIGluIHRoaXMuZ2V0X2ludGVyZmFjZV9vYmplY3QoKS5wcm90
b3R5cGUsCiAgICAgICAgICAgICAgICAgIlRoZSBwcm90b3R5cGUgb2JqZWN0IHNob3VsZCBub3Qg
aGF2ZSBhIHByb3BlcnR5ICIgKwogICAgICAgICAgICAgICAgIGZvcm1hdF92YWx1ZShtZW1iZXIu
bmFtZSkpOwogCkBAIC0yMTQ2LDQyICsyMjc5LDQwIEBAIElkbEludGVyZmFjZS5wcm90b3R5cGUu
dGVzdF9tZW1iZXJfYXR0cmlidXRlID0gZnVuY3Rpb24obWVtYmVyKQogICAgICAgICAgICAgLy8g
c2luY2UgaXQgd2lsbCBjYWxsIGRvbmUoKSBvbiBhX3Rlc3QuCiAgICAgICAgICAgICB0aGlzLmRv
X2ludGVyZmFjZV9hdHRyaWJ1dGVfYXNzZXJ0cyhzZWxmLCBtZW1iZXIsIGFfdGVzdCk7CiAgICAg
ICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBhc3NlcnRfdHJ1ZShtZW1iZXIubmFtZSBpbiBzZWxm
W3RoaXMubmFtZV0ucHJvdG90eXBlLAorICAgICAgICAgICAgYXNzZXJ0X3RydWUobWVtYmVyLm5h
bWUgaW4gdGhpcy5nZXRfaW50ZXJmYWNlX29iamVjdCgpLnByb3RvdHlwZSwKICAgICAgICAgICAg
ICAgICAiVGhlIHByb3RvdHlwZSBvYmplY3QgbXVzdCBoYXZlIGEgcHJvcGVydHkgIiArCiAgICAg
ICAgICAgICAgICAgZm9ybWF0X3ZhbHVlKG1lbWJlci5uYW1lKSk7CiAKICAgICAgICAgICAgIGlm
ICghbWVtYmVyLmhhc19leHRlbmRlZF9hdHRyaWJ1dGUoIkxlbmllbnRUaGlzIikpIHsKICAgICAg
ICAgICAgICAgICBpZiAobWVtYmVyLmlkbFR5cGUuZ2VuZXJpYyAhPT0gIlByb21pc2UiKSB7CiAg
ICAgICAgICAgICAgICAgICAgIGFzc2VydF90aHJvd3MobmV3IFR5cGVFcnJvcigpLCBmdW5jdGlv
bigpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHNlbGZbdGhpcy5uYW1lXS5wcm90b3R5cGVb
bWVtYmVyLm5hbWVdOworICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXRfaW50ZXJmYWNl
X29iamVjdCgpLnByb3RvdHlwZVttZW1iZXIubmFtZV07CiAgICAgICAgICAgICAgICAgICAgIH0u
YmluZCh0aGlzKSwgImdldHRpbmcgcHJvcGVydHkgb24gcHJvdG90eXBlIG9iamVjdCBtdXN0IHRo
cm93IFR5cGVFcnJvciIpOwogICAgICAgICAgICAgICAgICAgICAvLyBkb19pbnRlcmZhY2VfYXR0
cmlidXRlX2Fzc2VydHMgbXVzdCBiZSB0aGUgbGFzdCB0aGluZyB3ZQogICAgICAgICAgICAgICAg
ICAgICAvLyBkbywgc2luY2UgaXQgd2lsbCBjYWxsIGRvbmUoKSBvbiBhX3Rlc3QuCi0gICAgICAg
ICAgICAgICAgICAgIHRoaXMuZG9faW50ZXJmYWNlX2F0dHJpYnV0ZV9hc3NlcnRzKHNlbGZbdGhp
cy5uYW1lXS5wcm90b3R5cGUsIG1lbWJlciwgYV90ZXN0KTsKKyAgICAgICAgICAgICAgICAgICAg
dGhpcy5kb19pbnRlcmZhY2VfYXR0cmlidXRlX2Fzc2VydHModGhpcy5nZXRfaW50ZXJmYWNlX29i
amVjdCgpLnByb3RvdHlwZSwgbWVtYmVyLCBhX3Rlc3QpOwogICAgICAgICAgICAgICAgIH0gZWxz
ZSB7CiAgICAgICAgICAgICAgICAgICAgIHByb21pc2VfcmVqZWN0cyhhX3Rlc3QsIG5ldyBUeXBl
RXJyb3IoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGZbdGhpcy5u
YW1lXS5wcm90b3R5cGVbbWVtYmVyLm5hbWVdKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdGhpcy5nZXRfaW50ZXJmYWNlX29iamVjdCgpLnByb3RvdHlwZVttZW1iZXIubmFt
ZV0pCiAgICAgICAgICAgICAgICAgICAgICAgICAudGhlbihmdW5jdGlvbigpIHsKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAvLyBkb19pbnRlcmZhY2VfYXR0cmlidXRlX2Fzc2VydHMgbXVz
dCBiZSB0aGUgbGFzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoaW5nIHdlIGRv
LCBzaW5jZSBpdCB3aWxsIGNhbGwgZG9uZSgpIG9uIGFfdGVzdC4KLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB0aGlzLmRvX2ludGVyZmFjZV9hdHRyaWJ1dGVfYXNzZXJ0cyhzZWxmW3RoaXMu
bmFtZV0ucHJvdG90eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZG9faW50
ZXJmYWNlX2F0dHJpYnV0ZV9hc3NlcnRzKHRoaXMuZ2V0X2ludGVyZmFjZV9vYmplY3QoKS5wcm90
b3R5cGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbWVtYmVyLCBhX3Rlc3QpOwogICAgICAgICAgICAgICAgICAgICAgICAg
fS5iaW5kKHRoaXMpKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9IGVsc2Ugewot
ICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2VsZlt0aGlzLm5hbWVdLnByb3RvdHlwZVtt
ZW1iZXIubmFtZV0sIHVuZGVmaW5lZCwKKyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHRo
aXMuZ2V0X2ludGVyZmFjZV9vYmplY3QoKS5wcm90b3R5cGVbbWVtYmVyLm5hbWVdLCB1bmRlZmlu
ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZ2V0dGluZyBwcm9wZXJ0eSBvbiBw
cm90b3R5cGUgb2JqZWN0IG11c3QgcmV0dXJuIHVuZGVmaW5lZCIpOwogICAgICAgICAgICAgICAv
LyBkb19pbnRlcmZhY2VfYXR0cmlidXRlX2Fzc2VydHMgbXVzdCBiZSB0aGUgbGFzdCB0aGluZyB3
ZSBkbywKICAgICAgICAgICAgICAgLy8gc2luY2UgaXQgd2lsbCBjYWxsIGRvbmUoKSBvbiBhX3Rl
c3QuCi0gICAgICAgICAgICAgIHRoaXMuZG9faW50ZXJmYWNlX2F0dHJpYnV0ZV9hc3NlcnRzKHNl
bGZbdGhpcy5uYW1lXS5wcm90b3R5cGUsIG1lbWJlciwgYV90ZXN0KTsKKyAgICAgICAgICAgICAg
dGhpcy5kb19pbnRlcmZhY2VfYXR0cmlidXRlX2Fzc2VydHModGhpcy5nZXRfaW50ZXJmYWNlX29i
amVjdCgpLnByb3RvdHlwZSwgbWVtYmVyLCBhX3Rlc3QpOwogICAgICAgICAgICAgfQogICAgICAg
ICB9CiAgICAgfS5iaW5kKHRoaXMpKTsKIH07CiAKLS8vQH0KIElkbEludGVyZmFjZS5wcm90b3R5
cGUudGVzdF9tZW1iZXJfb3BlcmF0aW9uID0gZnVuY3Rpb24obWVtYmVyKQotLy9AewogewogICAg
IGlmICghc2hvdWxkUnVuU3ViVGVzdCh0aGlzLm5hbWUpKSB7CiAgICAgICAgIHJldHVybjsKQEAg
LTIyMDAsMTcgKzIzMzEsMTYgQEAgSWRsSW50ZXJmYWNlLnByb3RvdHlwZS50ZXN0X21lbWJlcl9v
cGVyYXRpb24gPSBmdW5jdGlvbihtZW1iZXIpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
IH0KIAotICAgICAgICBhc3NlcnRfb3duX3Byb3BlcnR5KHNlbGYsIHRoaXMubmFtZSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAic2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAi
ICsgZm9ybWF0X3ZhbHVlKHRoaXMubmFtZSkpOworICAgICAgICB0aGlzLmFzc2VydF9pbnRlcmZh
Y2Vfb2JqZWN0X2V4aXN0cygpOwogCiAgICAgICAgIGlmICh0aGlzLmlzX2NhbGxiYWNrKCkpIHsK
LSAgICAgICAgICAgIGFzc2VydF9mYWxzZSgicHJvdG90eXBlIiBpbiBzZWxmW3RoaXMubmFtZV0s
CisgICAgICAgICAgICBhc3NlcnRfZmFsc2UoInByb3RvdHlwZSIgaW4gdGhpcy5nZXRfaW50ZXJm
YWNlX29iamVjdCgpLAogICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubmFtZSArICcgc2hv
dWxkIG5vdCBoYXZlIGEgInByb3RvdHlwZSIgcHJvcGVydHknKTsKICAgICAgICAgICAgIGFfdGVz
dC5kb25lKCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAotICAgICAgICBhc3Nl
cnRfb3duX3Byb3BlcnR5KHNlbGZbdGhpcy5uYW1lXSwgInByb3RvdHlwZSIsCisgICAgICAgIGFz
c2VydF9vd25fcHJvcGVydHkodGhpcy5nZXRfaW50ZXJmYWNlX29iamVjdCgpLCAicHJvdG90eXBl
IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaW50ZXJmYWNlICInICsgdGhpcy5uYW1l
ICsgJyIgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgInByb3RvdHlwZSInKTsKIAogICAgICAg
ICAvLyAiRm9yIGVhY2ggdW5pcXVlIGlkZW50aWZpZXIgb2YgYW4gZXhwb3NlZCBvcGVyYXRpb24g
ZGVmaW5lZCBvbiB0aGUKQEAgLTIyMjQsMTAgKzIzNTQsMTAgQEAgSWRsSW50ZXJmYWNlLnByb3Rv
dHlwZS50ZXN0X21lbWJlcl9vcGVyYXRpb24gPSBmdW5jdGlvbihtZW1iZXIpCiAgICAgICAgIHZh
ciBtZW1iZXJIb2xkZXJPYmplY3Q7CiAgICAgICAgIC8vICIqIElmIHRoZSBvcGVyYXRpb24gaXMg
c3RhdGljLCB0aGVuIHRoZSBwcm9wZXJ0eSBleGlzdHMgb24gdGhlCiAgICAgICAgIC8vICAgIGlu
dGVyZmFjZSBvYmplY3QuIgotICAgICAgICBpZiAobWVtYmVyWyJzdGF0aWMiXSkgewotICAgICAg
ICAgICAgYXNzZXJ0X293bl9wcm9wZXJ0eShzZWxmW3RoaXMubmFtZV0sIG1lbWJlci5uYW1lLAor
ICAgICAgICBpZiAobWVtYmVyLnNwZWNpYWwgPT09ICJzdGF0aWMiKSB7CisgICAgICAgICAgICBh
c3NlcnRfb3duX3Byb3BlcnR5KHRoaXMuZ2V0X2ludGVyZmFjZV9vYmplY3QoKSwgbWVtYmVyLm5h
bWUsCiAgICAgICAgICAgICAgICAgICAgICJpbnRlcmZhY2Ugb2JqZWN0IG1pc3Npbmcgc3RhdGlj
IG9wZXJhdGlvbiIpOwotICAgICAgICAgICAgbWVtYmVySG9sZGVyT2JqZWN0ID0gc2VsZlt0aGlz
Lm5hbWVdOworICAgICAgICAgICAgbWVtYmVySG9sZGVyT2JqZWN0ID0gdGhpcy5nZXRfaW50ZXJm
YWNlX29iamVjdCgpOwogICAgICAgICAvLyAiKiBPdGhlcndpc2UsIFsuLi5dIGlmIHRoZSBpbnRl
cmZhY2Ugd2FzIGRlY2xhcmVkIHdpdGggdGhlIFtHbG9iYWxdCiAgICAgICAgIC8vICAgIGV4dGVu
ZGVkIGF0dHJpYnV0ZSwgdGhlbiB0aGUgcHJvcGVydHkgZXhpc3RzCiAgICAgICAgIC8vICAgIG9u
IGV2ZXJ5IG9iamVjdCB0aGF0IGltcGxlbWVudHMgdGhlIGludGVyZmFjZS4iCkBAIC0yMjM4LDkg
KzIzNjgsOSBAQCBJZGxJbnRlcmZhY2UucHJvdG90eXBlLnRlc3RfbWVtYmVyX29wZXJhdGlvbiA9
IGZ1bmN0aW9uKG1lbWJlcikKICAgICAgICAgLy8gIiogT3RoZXJ3aXNlLCB0aGUgcHJvcGVydHkg
ZXhpc3RzIHNvbGVseSBvbiB0aGUgaW50ZXJmYWNl4oCZcwogICAgICAgICAvLyAgICBpbnRlcmZh
Y2UgcHJvdG90eXBlIG9iamVjdC4iCiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBhc3Nl
cnRfb3duX3Byb3BlcnR5KHNlbGZbdGhpcy5uYW1lXS5wcm90b3R5cGUsIG1lbWJlci5uYW1lLAor
ICAgICAgICAgICAgYXNzZXJ0X293bl9wcm9wZXJ0eSh0aGlzLmdldF9pbnRlcmZhY2Vfb2JqZWN0
KCkucHJvdG90eXBlLCBtZW1iZXIubmFtZSwKICAgICAgICAgICAgICAgICAgICAgImludGVyZmFj
ZSBwcm90b3R5cGUgb2JqZWN0IG1pc3Npbmcgbm9uLXN0YXRpYyBvcGVyYXRpb24iKTsKLSAgICAg
ICAgICAgIG1lbWJlckhvbGRlck9iamVjdCA9IHNlbGZbdGhpcy5uYW1lXS5wcm90b3R5cGU7Cisg
ICAgICAgICAgICBtZW1iZXJIb2xkZXJPYmplY3QgPSB0aGlzLmdldF9pbnRlcmZhY2Vfb2JqZWN0
KCkucHJvdG90eXBlOwogICAgICAgICB9CiAgICAgICAgIHRoaXMuZG9fbWVtYmVyX3Vuc2NvcGFi
bGVfYXNzZXJ0cyhtZW1iZXIpOwogICAgICAgICB0aGlzLmRvX21lbWJlcl9vcGVyYXRpb25fYXNz
ZXJ0cyhtZW1iZXJIb2xkZXJPYmplY3QsIG1lbWJlciwgYV90ZXN0KTsKQEAgLTIyNTUsNyArMjM4
NSw3IEBAIElkbEludGVyZmFjZS5wcm90b3R5cGUuZG9fbWVtYmVyX3Vuc2NvcGFibGVfYXNzZXJ0
cyA9IGZ1bmN0aW9uKG1lbWJlcikKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIHZhciB1
bnNjb3BhYmxlcyA9IHNlbGZbdGhpcy5uYW1lXS5wcm90b3R5cGVbU3ltYm9sLnVuc2NvcGFibGVz
XTsKKyAgICB2YXIgdW5zY29wYWJsZXMgPSB0aGlzLmdldF9pbnRlcmZhY2Vfb2JqZWN0KCkucHJv
dG90eXBlW1N5bWJvbC51bnNjb3BhYmxlc107CiAgICAgdmFyIHByb3AgPSBtZW1iZXIubmFtZTsK
ICAgICB2YXIgcHJvcERlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHVuc2Nv
cGFibGVzLCBwcm9wKTsKICAgICBhc3NlcnRfZXF1YWxzKHR5cGVvZiBwcm9wRGVzYywgIm9iamVj
dCIsCkBAIC0yMjc0LDkgKzI0MDQsNyBAQCBJZGxJbnRlcmZhY2UucHJvdG90eXBlLmRvX21lbWJl
cl91bnNjb3BhYmxlX2Fzc2VydHMgPSBmdW5jdGlvbihtZW1iZXIpCiAgICAgICAgICAgICAgICAg
ICB0aGlzLm5hbWUgKyAnLnByb3RvdHlwZVtTeW1ib2wudW5zY29wYWJsZXNdLicgKyBwcm9wICsg
JyBtdXN0IGhhdmUgdGhlIHZhbHVlIGB0cnVlYCcpOwogfTsKIAotLy9AfQogSWRsSW50ZXJmYWNl
LnByb3RvdHlwZS5kb19tZW1iZXJfb3BlcmF0aW9uX2Fzc2VydHMgPSBmdW5jdGlvbihtZW1iZXJI
b2xkZXJPYmplY3QsIG1lbWJlciwgYV90ZXN0KQotLy9AewogewogICAgIHZhciBkb25lID0gYV90
ZXN0LmRvbmUuYmluZChhX3Rlc3QpOwogICAgIHZhciBvcGVyYXRpb25VbmZvcmdlYWJsZSA9IG1l
bWJlci5pc1VuZm9yZ2VhYmxlOwpAQCAtMjMxOSw3ICsyNDQ3LDcgQEAgSWRsSW50ZXJmYWNlLnBy
b3RvdHlwZS5kb19tZW1iZXJfb3BlcmF0aW9uX2Fzc2VydHMgPSBmdW5jdGlvbihtZW1iZXJIb2xk
ZXJPYmplY3QKICAgICAvLyBjaGVjayBmb3IgZ2xvYmFscywgc2luY2Ugb3RoZXJ3aXNlIHdlJ2xs
IGludm9rZSB3aW5kb3cuY2xvc2UoKS4gIEFuZCB3ZQogICAgIC8vIGhhdmUgdG8gc2tpcCB0aGlz
IHRlc3QgZm9yIGFueXRoaW5nIHRoYXQgb24gdGhlIHByb3RvIGNoYWluIG9mICJzZWxmIiwKICAg
ICAvLyBzaW5jZSB0aGF0IGRvZXMgaW4gZmFjdCBoYXZlIGltcGxpY2l0LXRoaXMgYmVoYXZpb3Iu
Ci0gICAgaWYgKCFtZW1iZXJbInN0YXRpYyJdKSB7CisgICAgaWYgKG1lbWJlci5zcGVjaWFsICE9
PSAic3RhdGljIikgewogICAgICAgICB2YXIgY2I7CiAgICAgICAgIGlmICghdGhpcy5pc19nbG9i
YWwoKSAmJgogICAgICAgICAgICAgbWVtYmVySG9sZGVyT2JqZWN0W21lbWJlci5uYW1lXSAhPSBz
ZWxmW21lbWJlci5uYW1lXSkKQEAgLTIzNDMsMjQgKzI0NzEsNyBAQCBJZGxJbnRlcmZhY2UucHJv
dG90eXBlLmRvX21lbWJlcl9vcGVyYXRpb25fYXNzZXJ0cyA9IGZ1bmN0aW9uKG1lbWJlckhvbGRl
ck9iamVjdAogICAgIH0KIH0KIAotLy9AfQotSWRsSW50ZXJmYWNlLnByb3RvdHlwZS5hZGRfaXRl
cmFibGVfbWVtYmVycyA9IGZ1bmN0aW9uKG1lbWJlcikKLS8vQHsKLXsKLSAgICB0aGlzLm1lbWJl
cnMucHVzaChuZXcgSWRsSW50ZXJmYWNlTWVtYmVyKAotICAgICAgICB7IHR5cGU6ICJvcGVyYXRp
b24iLCBuYW1lOiAiZW50cmllcyIsIGlkbFR5cGU6ICJpdGVyYXRvciIsIGFyZ3VtZW50czogW119
KSk7Ci0gICAgdGhpcy5tZW1iZXJzLnB1c2gobmV3IElkbEludGVyZmFjZU1lbWJlcigKLSAgICAg
ICAgeyB0eXBlOiAib3BlcmF0aW9uIiwgbmFtZTogImtleXMiLCBpZGxUeXBlOiAiaXRlcmF0b3Ii
LCBhcmd1bWVudHM6IFtdfSkpOwotICAgIHRoaXMubWVtYmVycy5wdXNoKG5ldyBJZGxJbnRlcmZh
Y2VNZW1iZXIoCi0gICAgICAgIHsgdHlwZTogIm9wZXJhdGlvbiIsIG5hbWU6ICJ2YWx1ZXMiLCBp
ZGxUeXBlOiAiaXRlcmF0b3IiLCBhcmd1bWVudHM6IFtdfSkpOwotICAgIHRoaXMubWVtYmVycy5w
dXNoKG5ldyBJZGxJbnRlcmZhY2VNZW1iZXIoCi0gICAgICAgIHsgdHlwZTogIm9wZXJhdGlvbiIs
IG5hbWU6ICJmb3JFYWNoIiwgaWRsVHlwZTogInZvaWQiLAotICAgICAgICAgIGFyZ3VtZW50czoK
LSAgICAgICAgICBbeyBuYW1lOiAiY2FsbGJhY2siLCBpZGxUeXBlOiB7aWRsVHlwZTogImZ1bmN0
aW9uIn19LAotICAgICAgICAgICB7IG5hbWU6ICJ0aGlzVmFsdWUiLCBpZGxUeXBlOiB7aWRsVHlw
ZTogImFueSJ9LCBvcHRpb25hbDogdHJ1ZX1dfSkpOwotfTsKLQotSWRsSW50ZXJmYWNlLnByb3Rv
dHlwZS50ZXN0X3RvX2pzb25fb3BlcmF0aW9uID0gZnVuY3Rpb24obWVtYmVySG9sZGVyT2JqZWN0
LCBtZW1iZXIpIHsKK0lkbEludGVyZmFjZS5wcm90b3R5cGUudGVzdF90b19qc29uX29wZXJhdGlv
biA9IGZ1bmN0aW9uKGRlc2MsIG1lbWJlckhvbGRlck9iamVjdCwgbWVtYmVyKSB7CiAgICAgdmFy
IGluc3RhbmNlTmFtZSA9IG1lbWJlckhvbGRlck9iamVjdCAmJiBtZW1iZXJIb2xkZXJPYmplY3Qu
Y29uc3RydWN0b3IubmFtZQogICAgICAgICB8fCBtZW1iZXIubmFtZSArICIgb2JqZWN0IjsKICAg
ICBpZiAobWVtYmVyLmhhc19leHRlbmRlZF9hdHRyaWJ1dGUoIkRlZmF1bHQiKSkgewpAQCAtMjM3
Niw0NiArMjQ4Nyw0MyBAQCBJZGxJbnRlcmZhY2UucHJvdG90eXBlLnRlc3RfdG9fanNvbl9vcGVy
YXRpb24gPSBmdW5jdGlvbihtZW1iZXJIb2xkZXJPYmplY3QsIG1lbQogICAgICAgICAgICAgICAg
IHRoaXMuYXJyYXkuYXNzZXJ0X3R5cGVfaXMoanNvbltrXSwgdHlwZSk7CiAgICAgICAgICAgICAg
ICAgZGVsZXRlIGpzb25ba107CiAgICAgICAgICAgICB9LCB0aGlzKTsKLSAgICAgICAgfS5iaW5k
KHRoaXMpLCAiVGVzdCBkZWZhdWx0IHRvSlNPTiBvcGVyYXRpb24gb2YgIiArIGluc3RhbmNlTmFt
ZSk7CisgICAgICAgIH0uYmluZCh0aGlzKSwgdGhpcy5uYW1lICsgIiBpbnRlcmZhY2U6IGRlZmF1
bHQgdG9KU09OIG9wZXJhdGlvbiBvbiAiICsgZGVzYyk7CiAgICAgfSBlbHNlIHsKICAgICAgICAg
c3Vic2V0VGVzdEJ5S2V5KHRoaXMubmFtZSwgdGVzdCwgZnVuY3Rpb24oKSB7CiAgICAgICAgICAg
ICBhc3NlcnRfdHJ1ZSh0aGlzLmFycmF5LmlzX2pzb25fdHlwZShtZW1iZXIuaWRsVHlwZSksIEpT
T04uc3RyaW5naWZ5KG1lbWJlci5pZGxUeXBlKSArICIgaXMgbm90IGFuIGFwcHJvcHJpYXRlIHJl
dHVybiB2YWx1ZSBmb3IgdGhlIHRvSlNPTiBvcGVyYXRpb24gb2YgIiArIGluc3RhbmNlTmFtZSk7
CiAgICAgICAgICAgICB0aGlzLmFycmF5LmFzc2VydF90eXBlX2lzKG1lbWJlckhvbGRlck9iamVj
dC50b0pTT04oKSwgbWVtYmVyLmlkbFR5cGUpOwotICAgICAgICB9LmJpbmQodGhpcyksICJUZXN0
IHRvSlNPTiBvcGVyYXRpb24gb2YgIiArIGluc3RhbmNlTmFtZSk7CisgICAgICAgIH0uYmluZCh0
aGlzKSwgdGhpcy5uYW1lICsgIiBpbnRlcmZhY2U6IHRvSlNPTiBvcGVyYXRpb24gb24gIiArIGRl
c2MpOwogICAgIH0KIH07CiAKLS8vQH0KIElkbEludGVyZmFjZS5wcm90b3R5cGUudGVzdF9tZW1i
ZXJfaXRlcmFibGUgPSBmdW5jdGlvbihtZW1iZXIpCi0vL0B7CiB7Ci0gICAgdmFyIGludGVyZmFj
ZU5hbWUgPSB0aGlzLm5hbWU7Ci0gICAgdmFyIGlzUGFpckl0ZXJhdG9yID0gbWVtYmVyLmlkbFR5
cGUubGVuZ3RoID09PSAyOwogICAgIHN1YnNldFRlc3RCeUtleSh0aGlzLm5hbWUsIHRlc3QsIGZ1
bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIHZhciBkZXNjcmlwdG9yID0gT2JqZWN0LmdldE93blBy
b3BlcnR5RGVzY3JpcHRvcihzZWxmW2ludGVyZmFjZU5hbWVdLnByb3RvdHlwZSwgU3ltYm9sLml0
ZXJhdG9yKTsKLSAgICAgICAgYXNzZXJ0X3RydWUoZGVzY3JpcHRvci53cml0YWJsZSwgInByb3Bl
cnR5IHNob3VsZCBiZSB3cml0YWJsZSIpOwotICAgICAgICBhc3NlcnRfdHJ1ZShkZXNjcmlwdG9y
LmNvbmZpZ3VyYWJsZSwgInByb3BlcnR5IHNob3VsZCBiZSBjb25maWd1cmFibGUiKTsKLSAgICAg
ICAgYXNzZXJ0X2ZhbHNlKGRlc2NyaXB0b3IuZW51bWVyYWJsZSwgInByb3BlcnR5IHNob3VsZCBu
b3QgYmUgZW51bWVyYWJsZSIpOwotICAgICAgICBhc3NlcnRfZXF1YWxzKHNlbGZbaW50ZXJmYWNl
TmFtZV0ucHJvdG90eXBlW1N5bWJvbC5pdGVyYXRvcl0ubmFtZSwgaXNQYWlySXRlcmF0b3IgPyAi
ZW50cmllcyIgOiAidmFsdWVzIiwgIkBAaXRlcmF0b3IgZnVuY3Rpb24gZG9lcyBub3QgaGF2ZSB0
aGUgcmlnaHQgbmFtZSIpOwotICAgIH0sICJUZXN0aW5nIFN5bWJvbC5pdGVyYXRvciBwcm9wZXJ0
eSBvZiBpdGVyYWJsZSBpbnRlcmZhY2UgIiArIGludGVyZmFjZU5hbWUpOwotCi0gICAgaWYgKGlz
UGFpckl0ZXJhdG9yKSB7Ci0gICAgICAgIHN1YnNldFRlc3RCeUtleSh0aGlzLm5hbWUsIHRlc3Qs
IGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzZWxmW2ludGVyZmFjZU5h
bWVdLnByb3RvdHlwZVtTeW1ib2wuaXRlcmF0b3JdLCBzZWxmW2ludGVyZmFjZU5hbWVdLnByb3Rv
dHlwZVsiZW50cmllcyJdLCAiZW50cmllcyBtZXRob2QgaXMgbm90IHRoZSBzYW1lIGFzIEBAaXRl
cmF0b3IiKTsKLSAgICAgICAgfSwgIlRlc3RpbmcgcGFpciBpdGVyYWJsZSBpbnRlcmZhY2UgIiAr
IGludGVyZmFjZU5hbWUpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIHN1YnNldFRlc3RCeUtleSh0
aGlzLm5hbWUsIHRlc3QsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgWyJlbnRyaWVzIiwgImtl
eXMiLCAidmFsdWVzIiwgImZvckVhY2giLCBTeW1ib2wuSXRlcmF0b3JdLmZvckVhY2goZnVuY3Rp
b24ocHJvcGVydHkpIHsKLSAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNlbGZbaW50ZXJm
YWNlTmFtZV0ucHJvdG90eXBlW3Byb3BlcnR5XSwgQXJyYXkucHJvdG90eXBlW3Byb3BlcnR5XSwg
cHJvcGVydHkgKyAiIGZ1bmN0aW9uIGlzIG5vdCB0aGUgc2FtZSBhcyBBcnJheSBvbmUiKTsKLSAg
ICAgICAgICAgIH0pOwotICAgICAgICB9LCAiVGVzdGluZyB2YWx1ZSBpdGVyYWJsZSBpbnRlcmZh
Y2UgIiArIGludGVyZmFjZU5hbWUpOwotICAgIH0KKyAgICAgICAgdmFyIGlzUGFpckl0ZXJhdG9y
ID0gbWVtYmVyLmlkbFR5cGUubGVuZ3RoID09PSAyOworICAgICAgICB2YXIgcHJvdG8gPSB0aGlz
LmdldF9pbnRlcmZhY2Vfb2JqZWN0KCkucHJvdG90eXBlOworICAgICAgICB2YXIgZGVzY3JpcHRv
ciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocHJvdG8sIFN5bWJvbC5pdGVyYXRv
cik7CisKKyAgICAgICAgYXNzZXJ0X3RydWUoZGVzY3JpcHRvci53cml0YWJsZSwgIkBAaXRlcmF0
b3IgcHJvcGVydHkgc2hvdWxkIGJlIHdyaXRhYmxlIik7CisgICAgICAgIGFzc2VydF90cnVlKGRl
c2NyaXB0b3IuY29uZmlndXJhYmxlLCAiQEBpdGVyYXRvciBwcm9wZXJ0eSBzaG91bGQgYmUgY29u
ZmlndXJhYmxlIik7CisgICAgICAgIGFzc2VydF9mYWxzZShkZXNjcmlwdG9yLmVudW1lcmFibGUs
ICJAQGl0ZXJhdG9yIHByb3BlcnR5IHNob3VsZCBub3QgYmUgZW51bWVyYWJsZSIpOworICAgICAg
ICBhc3NlcnRfZXF1YWxzKHR5cGVvZiBkZXNjcmlwdG9yLnZhbHVlLCAiZnVuY3Rpb24iLCAiQEBp
dGVyYXRvciBwcm9wZXJ0eSBzaG91bGQgYmUgYSBmdW5jdGlvbiIpOworICAgICAgICBhc3NlcnRf
ZXF1YWxzKGRlc2NyaXB0b3IudmFsdWUubGVuZ3RoLCAwLCAiQEBpdGVyYXRvciBmdW5jdGlvbiBv
YmplY3QgbGVuZ3RoIHNob3VsZCBiZSAwIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoZGVzY3Jp
cHRvci52YWx1ZS5uYW1lLCBpc1BhaXJJdGVyYXRvciA/ICJlbnRyaWVzIiA6ICJ2YWx1ZXMiLCAi
QEBpdGVyYXRvciBmdW5jdGlvbiBvYmplY3Qgc2hvdWxkIGhhdmUgdGhlIHJpZ2h0IG5hbWUiKTsK
KworICAgICAgICBpZiAoaXNQYWlySXRlcmF0b3IpIHsKKyAgICAgICAgICAgIGFzc2VydF9lcXVh
bHMocHJvdG9bImVudHJpZXMiXSwgcHJvdG9bU3ltYm9sLml0ZXJhdG9yXSwgImVudHJpZXMgbWV0
aG9kIHNob3VsZCBiZSB0aGUgc2FtZSBhcyBAQGl0ZXJhdG9yIG1ldGhvZCIpOworICAgICAgICB9
IGVsc2UgeworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhwcm90b1tTeW1ib2wuaXRlcmF0b3Jd
LCBBcnJheS5wcm90b3R5cGVbU3ltYm9sLml0ZXJhdG9yXSwgIkBAaXRlcmF0b3IgbWV0aG9kIHNo
b3VsZCBiZSB0aGUgc2FtZSBhcyBBcnJheSBwcm90b3R5cGUncyIpOworICAgICAgICAgICAgWyJl
bnRyaWVzIiwgImtleXMiLCAidmFsdWVzIiwgImZvckVhY2giLCBTeW1ib2wuaXRlcmF0b3JdLmZv
ckVhY2goZnVuY3Rpb24ocHJvcGVydHkpIHsKKyAgICAgICAgICAgICAgICB2YXIgcHJvcGVydHlO
YW1lID0gcHJvcGVydHkgPT09IFN5bWJvbC5pdGVyYXRvciA/ICJAQGl0ZXJhdG9yIiA6IHByb3Bl
cnR5OworICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMocHJvdG9bcHJvcGVydHldLCBBcnJh
eS5wcm90b3R5cGVbcHJvcGVydHldLCBwcm9wZXJ0eU5hbWUgKyAiIG1ldGhvZCBzaG91bGQgYmUg
dGhlIHNhbWUgYXMgQXJyYXkgcHJvdG90eXBlJ3MiKTsKKyAgICAgICAgICAgIH0uYmluZCh0aGlz
KSk7CisgICAgICAgIH0KKyAgICB9LmJpbmQodGhpcyksIHRoaXMubmFtZSArICIgaW50ZXJmYWNl
OiBpdGVyYWJsZTwiICsgbWVtYmVyLmlkbFR5cGUubWFwKGZ1bmN0aW9uKHQpIHsgcmV0dXJuIHQu
aWRsVHlwZTsgfSkuam9pbigiLCAiKSArICI+Iik7CiB9OwogCi0vL0B9CiBJZGxJbnRlcmZhY2Uu
cHJvdG90eXBlLnRlc3RfbWVtYmVyX3N0cmluZ2lmaWVyID0gZnVuY3Rpb24obWVtYmVyKQotLy9A
ewogewogICAgIHN1YnNldFRlc3RCeUtleSh0aGlzLm5hbWUsIHRlc3QsIGZ1bmN0aW9uKCkKICAg
ICB7CkBAIC0yNDIzLDIxICsyNTMxLDIwIEBAIElkbEludGVyZmFjZS5wcm90b3R5cGUudGVzdF9t
ZW1iZXJfc3RyaW5naWZpZXIgPSBmdW5jdGlvbihtZW1iZXIpCiAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIH0KIAotICAgICAgICBhc3NlcnRfb3duX3Byb3BlcnR5KHNlbGYsIHRoaXMubmFt
ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2VsZiBkb2VzIG5vdCBoYXZlIG93biBw
cm9wZXJ0eSAiICsgZm9ybWF0X3ZhbHVlKHRoaXMubmFtZSkpOworICAgICAgICB0aGlzLmFzc2Vy
dF9pbnRlcmZhY2Vfb2JqZWN0X2V4aXN0cygpOwogCiAgICAgICAgIGlmICh0aGlzLmlzX2NhbGxi
YWNrKCkpIHsKLSAgICAgICAgICAgIGFzc2VydF9mYWxzZSgicHJvdG90eXBlIiBpbiBzZWxmW3Ro
aXMubmFtZV0sCisgICAgICAgICAgICBhc3NlcnRfZmFsc2UoInByb3RvdHlwZSIgaW4gdGhpcy5n
ZXRfaW50ZXJmYWNlX29iamVjdCgpLAogICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubmFt
ZSArICcgc2hvdWxkIG5vdCBoYXZlIGEgInByb3RvdHlwZSIgcHJvcGVydHknKTsKICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIGFzc2VydF9vd25fcHJvcGVydHkoc2Vs
Zlt0aGlzLm5hbWVdLCAicHJvdG90eXBlIiwKKyAgICAgICAgYXNzZXJ0X293bl9wcm9wZXJ0eSh0
aGlzLmdldF9pbnRlcmZhY2Vfb2JqZWN0KCksICJwcm90b3R5cGUiLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICdpbnRlcmZhY2UgIicgKyB0aGlzLm5hbWUgKyAnIiBkb2VzIG5vdCBoYXZl
IG93biBwcm9wZXJ0eSAicHJvdG90eXBlIicpOwogCiAgICAgICAgIC8vICIuIC4gLiB0aGUgcHJv
cGVydHkgZXhpc3RzIG9uIHRoZSBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdC4iCi0gICAgICAg
IHZhciBpbnRlcmZhY2VQcm90b3R5cGVPYmplY3QgPSBzZWxmW3RoaXMubmFtZV0ucHJvdG90eXBl
OwotICAgICAgICBhc3NlcnRfb3duX3Byb3BlcnR5KHNlbGZbdGhpcy5uYW1lXS5wcm90b3R5cGUs
ICJ0b1N0cmluZyIsCisgICAgICAgIHZhciBpbnRlcmZhY2VQcm90b3R5cGVPYmplY3QgPSB0aGlz
LmdldF9pbnRlcmZhY2Vfb2JqZWN0KCkucHJvdG90eXBlOworICAgICAgICBhc3NlcnRfb3duX3By
b3BlcnR5KGludGVyZmFjZVByb3RvdHlwZU9iamVjdCwgInRvU3RyaW5nIiwKICAgICAgICAgICAg
ICAgICAiaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgbWlzc2luZyBub24tc3RhdGljIG9wZXJh
dGlvbiIpOwogCiAgICAgICAgIHZhciBzdHJpbmdpZmllclVuZm9yZ2VhYmxlID0gbWVtYmVyLmlz
VW5mb3JnZWFibGU7CkBAIC0yNDYzLDcgKzI1NzAsNyBAQCBJZGxJbnRlcmZhY2UucHJvdG90eXBl
LnRlc3RfbWVtYmVyX3N0cmluZ2lmaWVyID0gZnVuY3Rpb24obWVtYmVyKQogCiAgICAgICAgIC8v
ICJMZXQgTyBiZSB0aGUgcmVzdWx0IG9mIGNhbGxpbmcgVG9PYmplY3Qgb24gdGhlIHRoaXMgdmFs
dWUuIgogICAgICAgICBhc3NlcnRfdGhyb3dzKG5ldyBUeXBlRXJyb3IoKSwgZnVuY3Rpb24oKSB7
Ci0gICAgICAgICAgICBzZWxmW3RoaXMubmFtZV0ucHJvdG90eXBlLnRvU3RyaW5nLmFwcGx5KG51
bGwsIFtdKTsKKyAgICAgICAgICAgIGludGVyZmFjZVByb3RvdHlwZU9iamVjdC50b1N0cmluZy5h
cHBseShudWxsLCBbXSk7CiAgICAgICAgIH0sICJjYWxsaW5nIHN0cmluZ2lmaWVyIHdpdGggdGhp
cyA9IG51bGwgZGlkbid0IHRocm93IFR5cGVFcnJvciIpOwogCiAgICAgICAgIC8vICJJZiBPIGlz
IG5vdCBhbiBvYmplY3QgdGhhdCBpbXBsZW1lbnRzIHRoZSBpbnRlcmZhY2Ugb24gd2hpY2ggdGhl
CkBAIC0yNDcyLDI4ICsyNTc5LDEzIEBAIElkbEludGVyZmFjZS5wcm90b3R5cGUudGVzdF9tZW1i
ZXJfc3RyaW5naWZpZXIgPSBmdW5jdGlvbihtZW1iZXIpCiAgICAgICAgIC8vIFRPRE86IFRlc3Qg
YSBwbGF0Zm9ybSBvYmplY3QgdGhhdCBpbXBsZW1lbnRzIHNvbWUgb3RoZXIKICAgICAgICAgLy8g
aW50ZXJmYWNlLiAgKEhhdmUgdG8gYmUgc3VyZSB0byBnZXQgaW5oZXJpdGFuY2UgcmlnaHQuKQog
ICAgICAgICBhc3NlcnRfdGhyb3dzKG5ldyBUeXBlRXJyb3IoKSwgZnVuY3Rpb24oKSB7Ci0gICAg
ICAgICAgICBzZWxmW3RoaXMubmFtZV0ucHJvdG90eXBlLnRvU3RyaW5nLmFwcGx5KHt9LCBbXSk7
CisgICAgICAgICAgICBpbnRlcmZhY2VQcm90b3R5cGVPYmplY3QudG9TdHJpbmcuYXBwbHkoe30s
IFtdKTsKICAgICAgICAgfSwgImNhbGxpbmcgc3RyaW5naWZpZXIgd2l0aCB0aGlzID0ge30gZGlk
bid0IHRocm93IFR5cGVFcnJvciIpOwogICAgIH0uYmluZCh0aGlzKSwgdGhpcy5uYW1lICsgIiBp
bnRlcmZhY2U6IHN0cmluZ2lmaWVyIik7CiB9OwogCi0vL0B9CiBJZGxJbnRlcmZhY2UucHJvdG90
eXBlLnRlc3RfbWVtYmVycyA9IGZ1bmN0aW9uKCkKLS8vQHsKIHsKLSAgICBmb3IgKHZhciBpID0g
MDsgaSA8IHRoaXMubWVtYmVycy5sZW5ndGg7IGkrKykKLSAgICB7Ci0gICAgICAgIHZhciBtZW1i
ZXIgPSB0aGlzLm1lbWJlcnNbaV07Ci0gICAgICAgIHN3aXRjaCAobWVtYmVyLnR5cGUpIHsKLSAg
ICAgICAgY2FzZSAiaXRlcmFibGUiOgotICAgICAgICAgICAgdGhpcy5hZGRfaXRlcmFibGVfbWVt
YmVycyhtZW1iZXIpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIC8vIFRPRE86IGFkZCBz
ZXRsaWtlIGFuZCBtYXBsaWtlIGhhbmRsaW5nLgotICAgICAgICBkZWZhdWx0OgotICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICB9Ci0KICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRo
aXMubWVtYmVycy5sZW5ndGg7IGkrKykKICAgICB7CiAgICAgICAgIHZhciBtZW1iZXIgPSB0aGlz
Lm1lbWJlcnNbaV07CkBAIC0yNTA0LDEwICsyNTk2LDEwIEBAIElkbEludGVyZmFjZS5wcm90b3R5
cGUudGVzdF9tZW1iZXJzID0gZnVuY3Rpb24oKQogICAgICAgICBpZiAoIWV4cG9zZWRfaW4oZXhw
b3N1cmVfc2V0KG1lbWJlciwgdGhpcy5leHBvc3VyZVNldCkpKSB7CiAgICAgICAgICAgICBzdWJz
ZXRUZXN0QnlLZXkodGhpcy5uYW1lLCB0ZXN0LCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAg
ICAvLyBJdCdzIG5vdCBleHBvc2VkLCBzbyB3ZSBzaG91bGRuJ3QgZmluZCBpdCBhbnl3aGVyZS4K
LSAgICAgICAgICAgICAgICBhc3NlcnRfZmFsc2UobWVtYmVyLm5hbWUgaW4gc2VsZlt0aGlzLm5h
bWVdLAorICAgICAgICAgICAgICAgIGFzc2VydF9mYWxzZShtZW1iZXIubmFtZSBpbiB0aGlzLmdl
dF9pbnRlcmZhY2Vfb2JqZWN0KCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJUaGUg
aW50ZXJmYWNlIG9iamVjdCBtdXN0IG5vdCBoYXZlIGEgcHJvcGVydHkgIiArCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGZvcm1hdF92YWx1ZShtZW1iZXIubmFtZSkpOwotICAgICAgICAg
ICAgICAgIGFzc2VydF9mYWxzZShtZW1iZXIubmFtZSBpbiBzZWxmW3RoaXMubmFtZV0ucHJvdG90
eXBlLAorICAgICAgICAgICAgICAgIGFzc2VydF9mYWxzZShtZW1iZXIubmFtZSBpbiB0aGlzLmdl
dF9pbnRlcmZhY2Vfb2JqZWN0KCkucHJvdG90eXBlLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAiVGhlIHByb3RvdHlwZSBvYmplY3QgbXVzdCBub3QgaGF2ZSBhIHByb3BlcnR5ICIgKwog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXRfdmFsdWUobWVtYmVyLm5hbWUpKTsK
ICAgICAgICAgICAgIH0uYmluZCh0aGlzKSwgdGhpcy5uYW1lICsgIiBpbnRlcmZhY2U6IG1lbWJl
ciAiICsgbWVtYmVyLm5hbWUpOwpAQCAtMjUyNiw3ICsyNjE4LDcgQEAgSWRsSW50ZXJmYWNlLnBy
b3RvdHlwZS50ZXN0X21lbWJlcnMgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgdGhpcy50ZXN0X21lbWJlcl9hdHRyaWJ1dGUobWVtYmVyKTsKICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgIGlmIChtZW1iZXIuc3RyaW5naWZpZXIpIHsKKyAgICAgICAgICAgIGlm
IChtZW1iZXIuc3BlY2lhbCA9PT0gInN0cmluZ2lmaWVyIikgewogICAgICAgICAgICAgICAgIHRo
aXMudGVzdF9tZW1iZXJfc3RyaW5naWZpZXIobWVtYmVyKTsKICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgIGJyZWFrOwpAQCAtMjU0MSw3ICsyNjMzLDcgQEAgSWRsSW50ZXJmYWNlLnByb3RvdHlw
ZS50ZXN0X21lbWJlcnMgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgICB0aGlzLnRlc3RfbWVtYmVyX29wZXJhdGlvbihtZW1iZXIpOwogICAgICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSBpZiAobWVtYmVyLnN0cmluZ2lmaWVyKSB7Cisg
ICAgICAgICAgICB9IGVsc2UgaWYgKG1lbWJlci5zcGVjaWFsID09PSAic3RyaW5naWZpZXIiKSB7
CiAgICAgICAgICAgICAgICAgdGhpcy50ZXN0X21lbWJlcl9zdHJpbmdpZmllcihtZW1iZXIpOwog
ICAgICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7CkBAIC0yNTU2LDkgKzI2NDgsNyBAQCBJ
ZGxJbnRlcmZhY2UucHJvdG90eXBlLnRlc3RfbWVtYmVycyA9IGZ1bmN0aW9uKCkKICAgICB9CiB9
OwogCi0vL0B9CiBJZGxJbnRlcmZhY2UucHJvdG90eXBlLnRlc3Rfb2JqZWN0ID0gZnVuY3Rpb24o
ZGVzYykKLS8vQHsKIHsKICAgICB2YXIgb2JqLCBleGNlcHRpb24gPSBudWxsOwogICAgIHRyeQpA
QCAtMjU5Myw5ICsyNjgzLDcgQEAgSWRsSW50ZXJmYWNlLnByb3RvdHlwZS50ZXN0X29iamVjdCA9
IGZ1bmN0aW9uKGRlc2MpCiAgICAgfQogfTsKIAotLy9AfQogSWRsSW50ZXJmYWNlLnByb3RvdHlw
ZS50ZXN0X3ByaW1hcnlfaW50ZXJmYWNlX29mID0gZnVuY3Rpb24oZGVzYywgb2JqLCBleGNlcHRp
b24sIGV4cGVjdGVkX3R5cGVvZikKLS8vQHsKIHsKICAgICAvLyBPbmx5IHRoZSBvYmplY3QgaXRz
ZWxmLCBub3QgaXRzIG1lbWJlcnMsIGFyZSB0ZXN0ZWQgaGVyZSwgc28gaWYgdGhlCiAgICAgLy8g
aW50ZXJmYWNlIGlzIHVudGVzdGVkLCB0aGVyZSBpcyBub3RoaW5nIHRvIGRvLgpAQCAtMjYyNyw5
ICsyNzE1LDggQEAgSWRsSW50ZXJmYWNlLnByb3RvdHlwZS50ZXN0X3ByaW1hcnlfaW50ZXJmYWNl
X29mID0gZnVuY3Rpb24oZGVzYywgb2JqLCBleGNlcHRpb24KICAgICAgICAgewogICAgICAgICAg
ICAgYXNzZXJ0X2VxdWFscyhleGNlcHRpb24sIG51bGwsICJVbmV4cGVjdGVkIGV4Y2VwdGlvbiB3
aGVuIGV2YWx1YXRpbmcgb2JqZWN0Iik7CiAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHR5cGVv
ZiBvYmosIGV4cGVjdGVkX3R5cGVvZiwgIndyb25nIHR5cGVvZiBvYmplY3QiKTsKLSAgICAgICAg
ICAgIGFzc2VydF9vd25fcHJvcGVydHkoc2VsZiwgdGhpcy5uYW1lLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAic2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiICsgZm9y
bWF0X3ZhbHVlKHRoaXMubmFtZSkpOwotICAgICAgICAgICAgYXNzZXJ0X293bl9wcm9wZXJ0eShz
ZWxmW3RoaXMubmFtZV0sICJwcm90b3R5cGUiLAorICAgICAgICAgICAgdGhpcy5hc3NlcnRfaW50
ZXJmYWNlX29iamVjdF9leGlzdHMoKTsKKyAgICAgICAgICAgIGFzc2VydF9vd25fcHJvcGVydHko
dGhpcy5nZXRfaW50ZXJmYWNlX29iamVjdCgpLCAicHJvdG90eXBlIiwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgJ2ludGVyZmFjZSAiJyArIHRoaXMubmFtZSArICciIGRvZXMgbm90
IGhhdmUgb3duIHByb3BlcnR5ICJwcm90b3R5cGUiJyk7CiAKICAgICAgICAgICAgIC8vICJUaGUg
dmFsdWUgb2YgdGhlIGludGVybmFsIFtbUHJvdG90eXBlXV0gcHJvcGVydHkgb2YgdGhlCkBAIC0y
NjM3LDI5ICsyNzI0LDI3IEBAIElkbEludGVyZmFjZS5wcm90b3R5cGUudGVzdF9wcmltYXJ5X2lu
dGVyZmFjZV9vZiA9IGZ1bmN0aW9uKGRlc2MsIG9iaiwgZXhjZXB0aW9uCiAgICAgICAgICAgICAv
LyBpbnRlcmZhY2UgZnJvbSB0aGUgcGxhdGZvcm0gb2JqZWN04oCZcyBhc3NvY2lhdGVkIGdsb2Jh
bAogICAgICAgICAgICAgLy8gZW52aXJvbm1lbnQuIgogICAgICAgICAgICAgYXNzZXJ0X2VxdWFs
cyhPYmplY3QuZ2V0UHJvdG90eXBlT2Yob2JqKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
c2VsZlt0aGlzLm5hbWVdLnByb3RvdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgdGhp
cy5nZXRfaW50ZXJmYWNlX29iamVjdCgpLnByb3RvdHlwZSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZGVzYyArICIncyBwcm90b3R5cGUgaXMgbm90ICIgKyB0aGlzLm5hbWUgKyAiLnByb3Rv
dHlwZSIpOwogICAgICAgICB9LmJpbmQodGhpcyksIHRoaXMubmFtZSArICIgbXVzdCBiZSBwcmlt
YXJ5IGludGVyZmFjZSBvZiAiICsgZGVzYyk7CiAgICAgfQogCiAgICAgLy8gIlRoZSBjbGFzcyBz
dHJpbmcgb2YgYSBwbGF0Zm9ybSBvYmplY3QgdGhhdCBpbXBsZW1lbnRzIG9uZSBvciBtb3JlCi0g
ICAgLy8gaW50ZXJmYWNlcyBtdXN0IGJlIHRoZSBpZGVudGlmaWVyIG9mIHRoZSBwcmltYXJ5IGlu
dGVyZmFjZSBvZiB0aGUKKyAgICAvLyBpbnRlcmZhY2VzIG11c3QgYmUgdGhlIHF1YWxpZmllZCBu
YW1lIG9mIHRoZSBwcmltYXJ5IGludGVyZmFjZSBvZiB0aGUKICAgICAvLyBwbGF0Zm9ybSBvYmpl
Y3QuIgogICAgIHN1YnNldFRlc3RCeUtleSh0aGlzLm5hbWUsIHRlc3QsIGZ1bmN0aW9uKCkKICAg
ICB7CiAgICAgICAgIGFzc2VydF9lcXVhbHMoZXhjZXB0aW9uLCBudWxsLCAiVW5leHBlY3RlZCBl
eGNlcHRpb24gd2hlbiBldmFsdWF0aW5nIG9iamVjdCIpOwogICAgICAgICBhc3NlcnRfZXF1YWxz
KHR5cGVvZiBvYmosIGV4cGVjdGVkX3R5cGVvZiwgIndyb25nIHR5cGVvZiBvYmplY3QiKTsKLSAg
ICAgICAgYXNzZXJ0X2NsYXNzX3N0cmluZyhvYmosIHRoaXMubmFtZSwgImNsYXNzIHN0cmluZyBv
ZiAiICsgZGVzYyk7CisgICAgICAgIGFzc2VydF9jbGFzc19zdHJpbmcob2JqLCB0aGlzLmdldF9x
dWFsaWZpZWRfbmFtZSgpLCAiY2xhc3Mgc3RyaW5nIG9mICIgKyBkZXNjKTsKICAgICAgICAgaWYg
KCF0aGlzLmhhc19zdHJpbmdpZmllcigpKQogICAgICAgICB7Ci0gICAgICAgICAgICBhc3NlcnRf
ZXF1YWxzKFN0cmluZyhvYmopLCAiW29iamVjdCAiICsgdGhpcy5uYW1lICsgIl0iLCAiU3RyaW5n
KCIgKyBkZXNjICsgIikiKTsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoU3RyaW5nKG9iaiks
ICJbb2JqZWN0ICIgKyB0aGlzLmdldF9xdWFsaWZpZWRfbmFtZSgpICsgIl0iLCAiU3RyaW5nKCIg
KyBkZXNjICsgIikiKTsKICAgICAgICAgfQogICAgIH0uYmluZCh0aGlzKSwgIlN0cmluZ2lmaWNh
dGlvbiBvZiAiICsgZGVzYyk7CiB9OwogCi0vL0B9CiBJZGxJbnRlcmZhY2UucHJvdG90eXBlLnRl
c3RfaW50ZXJmYWNlX29mID0gZnVuY3Rpb24oZGVzYywgb2JqLCBleGNlcHRpb24sIGV4cGVjdGVk
X3R5cGVvZikKLS8vQHsKIHsKICAgICAvLyBUT0RPOiBJbmRleGVkIGFuZCBuYW1lZCBwcm9wZXJ0
aWVzLCBtb3JlIGNoZWNrcyBvbiBpbnRlcmZhY2UgbWVtYmVycwogICAgIHRoaXMuYWxyZWFkeV90
ZXN0ZWQgPSB0cnVlOwpAQCAtMjcxOCw3ICsyODAzLDcgQEAgSWRsSW50ZXJmYWNlLnByb3RvdHlw
ZS50ZXN0X2ludGVyZmFjZV9vZiA9IGZ1bmN0aW9uKGRlc2MsIG9iaiwgZXhjZXB0aW9uLCBleHBl
Y3QKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGV4Y2VwdGlv
biwgbnVsbCwgIlVuZXhwZWN0ZWQgZXhjZXB0aW9uIHdoZW4gZXZhbHVhdGluZyBvYmplY3QiKTsK
ICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHR5cGVvZiBvYmosIGV4cGVjdGVkX3R5cGVv
ZiwgIndyb25nIHR5cGVvZiBvYmplY3QiKTsKLSAgICAgICAgICAgICAgICBpZiAoIW1lbWJlclsi
c3RhdGljIl0pIHsKKyAgICAgICAgICAgICAgICBpZiAobWVtYmVyLnNwZWNpYWwgIT09ICJzdGF0
aWMiKSB7CiAgICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5pc19nbG9iYWwoKSkgewogICAg
ICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2luaGVyaXRzKG9iaiwgbWVtYmVyLm5hbWUpOwog
ICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewpAQCAtMjc2OCw3ICsyODUzLDcgQEAgSWRsSW50
ZXJmYWNlLnByb3RvdHlwZS50ZXN0X2ludGVyZmFjZV9vZiA9IGZ1bmN0aW9uKGRlc2MsIG9iaiwg
ZXhjZXB0aW9uLCBleHBlY3QKICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGV4Y2VwdGlv
biwgbnVsbCwgIlVuZXhwZWN0ZWQgZXhjZXB0aW9uIHdoZW4gZXZhbHVhdGluZyBvYmplY3QiKTsK
ICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHR5cGVvZiBvYmosIGV4cGVjdGVkX3R5cGVv
ZiwgIndyb25nIHR5cGVvZiBvYmplY3QiKTsKICAgICAgICAgICAgICAgICB2YXIgZm47Ci0gICAg
ICAgICAgICAgICAgaWYgKCFtZW1iZXJbInN0YXRpYyJdKSB7CisgICAgICAgICAgICAgICAgaWYg
KG1lbWJlci5zcGVjaWFsICE9PSAic3RhdGljIikgewogICAgICAgICAgICAgICAgICAgICBpZiAo
IXRoaXMuaXNfZ2xvYmFsKCkgJiYgIW1lbWJlci5pc1VuZm9yZ2VhYmxlKSB7CiAgICAgICAgICAg
ICAgICAgICAgICAgICBhc3NlcnRfaW5oZXJpdHMob2JqLCBtZW1iZXIubmFtZSk7CiAgICAgICAg
ICAgICAgICAgICAgIH0gZWxzZSB7CkBAIC0yNzk5LDIxICsyODg0LDE5IEBAIElkbEludGVyZmFj
ZS5wcm90b3R5cGUudGVzdF9pbnRlcmZhY2Vfb2YgPSBmdW5jdGlvbihkZXNjLCBvYmosIGV4Y2Vw
dGlvbiwgZXhwZWN0CiAgICAgICAgIH0KIAogICAgICAgICBpZiAobWVtYmVyLmlzX3RvX2pzb25f
cmVndWxhcl9vcGVyYXRpb24oKSkgewotICAgICAgICAgICAgdGhpcy50ZXN0X3RvX2pzb25fb3Bl
cmF0aW9uKG9iaiwgbWVtYmVyKTsKKyAgICAgICAgICAgIHRoaXMudGVzdF90b19qc29uX29wZXJh
dGlvbihkZXNjLCBvYmosIG1lbWJlcik7CiAgICAgICAgIH0KICAgICB9CiB9OwogCi0vL0B9CiBJ
ZGxJbnRlcmZhY2UucHJvdG90eXBlLmhhc19zdHJpbmdpZmllciA9IGZ1bmN0aW9uKCkKLS8vQHsK
IHsKICAgICBpZiAodGhpcy5uYW1lID09PSAiRE9NRXhjZXB0aW9uIikgewogICAgICAgICAvLyB0
b1N0cmluZyBpcyBpbmhlcml0ZWQgZnJvbSBFcnJvciwgc28gZG9uJ3QgYXNzdW1lIHdlIGhhdmUg
dGhlCiAgICAgICAgIC8vIGRlZmF1bHQgc3RyaW5naWZlcgogICAgICAgICByZXR1cm4gdHJ1ZTsK
ICAgICB9Ci0gICAgaWYgKHRoaXMubWVtYmVycy5zb21lKGZ1bmN0aW9uKG1lbWJlcikgeyByZXR1
cm4gbWVtYmVyLnN0cmluZ2lmaWVyOyB9KSkgeworICAgIGlmICh0aGlzLm1lbWJlcnMuc29tZShm
dW5jdGlvbihtZW1iZXIpIHsgcmV0dXJuIG1lbWJlci5zcGVjaWFsID09PSAic3RyaW5naWZpZXIi
OyB9KSkgewogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgaWYgKHRoaXMuYmFzZSAm
JgpAQCAtMjgyMyw5ICsyOTA2LDcgQEAgSWRsSW50ZXJmYWNlLnByb3RvdHlwZS5oYXNfc3RyaW5n
aWZpZXIgPSBmdW5jdGlvbigpCiAgICAgcmV0dXJuIGZhbHNlOwogfTsKIAotLy9AfQogSWRsSW50
ZXJmYWNlLnByb3RvdHlwZS5kb19pbnRlcmZhY2VfYXR0cmlidXRlX2Fzc2VydHMgPSBmdW5jdGlv
bihvYmosIG1lbWJlciwgYV90ZXN0KQotLy9AewogewogICAgIC8vIFRoaXMgZnVuY3Rpb24gdGVz
dHMgV2ViSURMIGFzIG9mIDIwMTUtMDEtMjcuCiAgICAgLy8gVE9ETzogQ29uc2lkZXIgW0V4cG9z
ZWRdLgpAQCAtMjg2OSw3ICsyOTUwLDcgQEAgSWRsSW50ZXJmYWNlLnByb3RvdHlwZS5kb19pbnRl
cmZhY2VfYXR0cmlidXRlX2Fzc2VydHMgPSBmdW5jdGlvbihvYmosIG1lbWJlciwgYV8KICAgICBh
c3NlcnRfZXF1YWxzKHR5cGVvZiBkZXNjLmdldCwgImZ1bmN0aW9uIiwgImdldHRlciBtdXN0IGJl
IEZ1bmN0aW9uIik7CiAKICAgICAvLyAiSWYgdGhlIGF0dHJpYnV0ZSBpcyBhIHJlZ3VsYXIgYXR0
cmlidXRlLCB0aGVuOiIKLSAgICBpZiAoIW1lbWJlclsic3RhdGljIl0pIHsKKyAgICBpZiAobWVt
YmVyLnNwZWNpYWwgIT09ICJzdGF0aWMiKSB7CiAgICAgICAgIC8vICJJZiBPIGlzIG5vdCBhIHBs
YXRmb3JtIG9iamVjdCB0aGF0IGltcGxlbWVudHMgSSwgdGhlbjoKICAgICAgICAgLy8gIklmIHRo
ZSBhdHRyaWJ1dGUgd2FzIHNwZWNpZmllZCB3aXRoIHRoZSBbTGVuaWVudFRoaXNdIGV4dGVuZGVk
CiAgICAgICAgIC8vIGF0dHJpYnV0ZSwgdGhlbiByZXR1cm4gdW5kZWZpbmVkLgpAQCAtMjg5NCw2
ICsyOTc1LDExIEBAIElkbEludGVyZmFjZS5wcm90b3R5cGUuZG9faW50ZXJmYWNlX2F0dHJpYnV0
ZV9hc3NlcnRzID0gZnVuY3Rpb24ob2JqLCBtZW1iZXIsIGFfCiAgICAgLy8gdmFsdWUgMC4iCiAg
ICAgYXNzZXJ0X2VxdWFscyhkZXNjLmdldC5sZW5ndGgsIDAsICJnZXR0ZXIgbGVuZ3RoIG11c3Qg
YmUgMCIpOwogCisgICAgLy8gIkxldCBuYW1lIGJlIHRoZSBzdHJpbmcgImdldCAiIHByZXBlbmRl
ZCB0byBhdHRyaWJ1dGXigJlzIGlkZW50aWZpZXIuIgorICAgIC8vICJQZXJmb3JtICEgU2V0RnVu
Y3Rpb25OYW1lKEYsIG5hbWUpLiIKKyAgICBhc3NlcnRfZXF1YWxzKGRlc2MuZ2V0Lm5hbWUsICJn
ZXQgIiArIG1lbWJlci5uYW1lLAorICAgICAgICAiZ2V0dGVyIG11c3QgaGF2ZSB0aGUgbmFtZSAn
Z2V0ICIgKyBtZW1iZXIubmFtZSArICInIik7CisKIAogICAgIC8vIFRPRE86IFRlc3QgY2FsbGlu
ZyBzZXR0ZXIgb24gdGhlIGludGVyZmFjZSBwcm90b3R5cGUgKHNob3VsZCB0aHJvdwogICAgIC8v
IFR5cGVFcnJvciBpbiBtb3N0IGNhc2VzKS4KQEAgLTI5MTQsNyArMzAwMCw3IEBAIElkbEludGVy
ZmFjZS5wcm90b3R5cGUuZG9faW50ZXJmYWNlX2F0dHJpYnV0ZV9hc3NlcnRzID0gZnVuY3Rpb24o
b2JqLCBtZW1iZXIsIGFfCiAgICAgICAgIGFzc2VydF9lcXVhbHModHlwZW9mIGRlc2Muc2V0LCAi
ZnVuY3Rpb24iLCAic2V0dGVyIG11c3QgYmUgZnVuY3Rpb24gZm9yIFB1dEZvcndhcmRzLCBSZXBs
YWNlYWJsZSwgb3Igbm9uLXJlYWRvbmx5IGF0dHJpYnV0ZXMiKTsKIAogICAgICAgICAvLyAiSWYg
dGhlIGF0dHJpYnV0ZSBpcyBhIHJlZ3VsYXIgYXR0cmlidXRlLCB0aGVuOiIKLSAgICAgICAgaWYg
KCFtZW1iZXJbInN0YXRpYyJdKSB7CisgICAgICAgIGlmIChtZW1iZXIuc3BlY2lhbCAhPT0gInN0
YXRpYyIpIHsKICAgICAgICAgICAgIC8vICJJZiAvdmFsaWRUaGlzLyBpcyBmYWxzZSBhbmQgdGhl
IGF0dHJpYnV0ZSB3YXMgbm90IHNwZWNpZmllZAogICAgICAgICAgICAgLy8gd2l0aCB0aGUgW0xl
bmllbnRUaGlzXSBleHRlbmRlZCBhdHRyaWJ1dGUsIHRoZW4gdGhyb3cgYQogICAgICAgICAgICAg
Ly8gVHlwZUVycm9yLiIKQEAgLTI5MzQsMjIgKzMwMjAsMjUgQEAgSWRsSW50ZXJmYWNlLnByb3Rv
dHlwZS5kb19pbnRlcmZhY2VfYXR0cmlidXRlX2Fzc2VydHMgPSBmdW5jdGlvbihvYmosIG1lbWJl
ciwgYV8KICAgICAgICAgLy8gIlRoZSB2YWx1ZSBvZiB0aGUgRnVuY3Rpb24gb2JqZWN04oCZcyDi
gJxsZW5ndGjigJ0gcHJvcGVydHkgaXMgdGhlIE51bWJlcgogICAgICAgICAvLyB2YWx1ZSAxLiIK
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhkZXNjLnNldC5sZW5ndGgsIDEsICJzZXR0ZXIgbGVuZ3Ro
IG11c3QgYmUgMSIpOworCisgICAgICAgIC8vICJMZXQgbmFtZSBiZSB0aGUgc3RyaW5nICJzZXQg
IiBwcmVwZW5kZWQgdG8gaWQuIgorICAgICAgICAvLyAiUGVyZm9ybSAhIFNldEZ1bmN0aW9uTmFt
ZShGLCBuYW1lKS4iCisgICAgICAgIGFzc2VydF9lcXVhbHMoZGVzYy5zZXQubmFtZSwgInNldCAi
ICsgbWVtYmVyLm5hbWUsCisgICAgICAgICAgICAiVGhlIGF0dHJpYnV0ZSBzZXR0ZXIgbXVzdCBo
YXZlIHRoZSBuYW1lICdzZXQgIiArIG1lbWJlci5uYW1lICsgIiciKTsKICAgICB9CiAKICAgICBQ
cm9taXNlLmFsbChwZW5kaW5nUHJvbWlzZXMpLnRoZW4oYV90ZXN0LmRvbmUuYmluZChhX3Rlc3Qp
KTsKIH0KLS8vQH0KIAogLy8vIElkbEludGVyZmFjZU1lbWJlciAvLy8KIGZ1bmN0aW9uIElkbElu
dGVyZmFjZU1lbWJlcihvYmopCi0vL0B7CiB7CiAgICAgLyoqCiAgICAgICogb2JqIGlzIGFuIG9i
amVjdCBwcm9kdWNlZCBieSB0aGUgV2ViSURMUGFyc2VyLmpzICJpZk1lbWJlciIgcHJvZHVjdGlv
bi4KICAgICAgKiBXZSBqdXN0IGZvcndhcmQgYWxsIHByb3BlcnRpZXMgdG8gdGhpcyBvYmplY3Qg
d2l0aG91dCBtb2RpZmljYXRpb24sCiAgICAgICogZXhjZXB0IGZvciBzcGVjaWFsIGV4dEF0dHJz
IGhhbmRsaW5nLgogICAgICAqLwotICAgIGZvciAodmFyIGsgaW4gb2JqKQorICAgIGZvciAodmFy
IGsgaW4gb2JqLnRvSlNPTigpKQogICAgIHsKICAgICAgICAgdGhpc1trXSA9IG9ialtrXTsKICAg
ICB9CkBAIC0yOTYyLDE2ICszMDUxLDE4IEBAIGZ1bmN0aW9uIElkbEludGVyZmFjZU1lbWJlcihv
YmopCiAgICAgdGhpcy5pc1Vuc2NvcGFibGUgPSB0aGlzLmhhc19leHRlbmRlZF9hdHRyaWJ1dGUo
IlVuc2NvcGFibGUiKTsKIH0KIAotLy9AfQogSWRsSW50ZXJmYWNlTWVtYmVyLnByb3RvdHlwZSA9
IE9iamVjdC5jcmVhdGUoSWRsT2JqZWN0LnByb3RvdHlwZSk7CiAKK0lkbEludGVyZmFjZU1lbWJl
ci5wcm90b3R5cGUudG9KU09OID0gZnVuY3Rpb24oKSB7CisgICAgcmV0dXJuIHRoaXM7Cit9Owor
CiBJZGxJbnRlcmZhY2VNZW1iZXIucHJvdG90eXBlLmlzX3RvX2pzb25fcmVndWxhcl9vcGVyYXRp
b24gPSBmdW5jdGlvbigpIHsKLSAgICByZXR1cm4gdGhpcy50eXBlID09ICJvcGVyYXRpb24iICYm
ICF0aGlzLnN0YXRpYyAmJiB0aGlzLm5hbWUgPT0gInRvSlNPTiI7CisgICAgcmV0dXJuIHRoaXMu
dHlwZSA9PSAib3BlcmF0aW9uIiAmJiB0aGlzLnNwZWNpYWwgIT09ICJzdGF0aWMiICYmIHRoaXMu
bmFtZSA9PSAidG9KU09OIjsKIH07CiAKIC8vLyBJbnRlcm5hbCBoZWxwZXIgZnVuY3Rpb25zIC8v
LwogZnVuY3Rpb24gY3JlYXRlX3N1aXRhYmxlX29iamVjdCh0eXBlKQotLy9AewogewogICAgIC8q
KgogICAgICAqIHR5cGUgaXMgYW4gb2JqZWN0IHByb2R1Y2VkIGJ5IHRoZSBXZWJJRExQYXJzZXIu
anMgInR5cGUiIHByb2R1Y3Rpb24uICBXZQpAQCAtMzAwNywxMiArMzA5OCwxMCBAQCBmdW5jdGlv
biBjcmVhdGVfc3VpdGFibGVfb2JqZWN0KHR5cGUpCiAgICAgfQogICAgIHJldHVybiBudWxsOwog
fQotLy9AfQogCiAvLy8gSWRsRW51bSAvLy8KIC8vIFVzZWQgZm9yIElkbEFycmF5LnByb3RvdHlw
ZS5hc3NlcnRfdHlwZV9pcwogZnVuY3Rpb24gSWRsRW51bShvYmopCi0vL0B7CiB7CiAgICAgLyoq
CiAgICAgICogb2JqIGlzIGFuIG9iamVjdCBwcm9kdWNlZCBieSB0aGUgV2ViSURMUGFyc2VyLmpz
ICJkaWN0aW9uYXJ5IgpAQCAtMzAyNiwxNCArMzExNSwzMCBAQCBmdW5jdGlvbiBJZGxFbnVtKG9i
aikKICAgICB0aGlzLnZhbHVlcyA9IG9iai52YWx1ZXM7CiAKIH0KLS8vQH0KIAogSWRsRW51bS5w
cm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKElkbE9iamVjdC5wcm90b3R5cGUpOwogCisvLy8gSWRs
Q2FsbGJhY2sgLy8vCisvLyBVc2VkIGZvciBJZGxBcnJheS5wcm90b3R5cGUuYXNzZXJ0X3R5cGVf
aXMKK2Z1bmN0aW9uIElkbENhbGxiYWNrKG9iaikKK3sKKyAgICAvKioKKyAgICAgKiBvYmogaXMg
YW4gb2JqZWN0IHByb2R1Y2VkIGJ5IHRoZSBXZWJJRExQYXJzZXIuanMgImNhbGxiYWNrIgorICAg
ICAqIHByb2R1Y3Rpb24uCisgICAgICovCisKKyAgICAvKiogU2VsZi1leHBsYW5hdG9yeS4gKi8K
KyAgICB0aGlzLm5hbWUgPSBvYmoubmFtZTsKKworICAgIC8qKiBBcmd1bWVudHMgZm9yIHRoZSBj
YWxsYmFjay4gKi8KKyAgICB0aGlzLmFyZ3VtZW50cyA9IG9iai5hcmd1bWVudHM7Cit9CisKK0lk
bENhbGxiYWNrLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoSWRsT2JqZWN0LnByb3RvdHlwZSk7
CisKIC8vLyBJZGxUeXBlZGVmIC8vLwogLy8gVXNlZCBmb3IgSWRsQXJyYXkucHJvdG90eXBlLmFz
c2VydF90eXBlX2lzCiBmdW5jdGlvbiBJZGxUeXBlZGVmKG9iaikKLS8vQHsKIHsKICAgICAvKioK
ICAgICAgKiBvYmogaXMgYW4gb2JqZWN0IHByb2R1Y2VkIGJ5IHRoZSBXZWJJRExQYXJzZXIuanMg
InR5cGVkZWYiCkBAIC0zMDQ3LDEzICszMTUyLDExIEBAIGZ1bmN0aW9uIElkbFR5cGVkZWYob2Jq
KQogICAgIHRoaXMuaWRsVHlwZSA9IG9iai5pZGxUeXBlOwogCiB9Ci0vL0B9CiAKIElkbFR5cGVk
ZWYucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShJZGxPYmplY3QucHJvdG90eXBlKTsKIAogLy8v
IElkbE5hbWVzcGFjZSAvLy8KIGZ1bmN0aW9uIElkbE5hbWVzcGFjZShvYmopCi0vL0B7CiB7CiAg
ICAgdGhpcy5uYW1lID0gb2JqLm5hbWU7CiAgICAgdGhpcy5leHRBdHRycyA9IG9iai5leHRBdHRy
czsKQEAgLTMwNjQsMTIgKzMxNjcsMTAgQEAgZnVuY3Rpb24gSWRsTmFtZXNwYWNlKG9iaikKICAg
ICAvKiogQW4gYXJyYXkgb2YgSWRsSW50ZXJmYWNlTWVtYmVycy4gKi8KICAgICB0aGlzLm1lbWJl
cnMgPSBvYmoubWVtYmVycy5tYXAobSA9PiBuZXcgSWRsSW50ZXJmYWNlTWVtYmVyKG0pKTsKIH0K
LS8vQH0KIAogSWRsTmFtZXNwYWNlLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoSWRsT2JqZWN0
LnByb3RvdHlwZSk7CiAKIElkbE5hbWVzcGFjZS5wcm90b3R5cGUuZG9fbWVtYmVyX29wZXJhdGlv
bl9hc3NlcnRzID0gZnVuY3Rpb24gKG1lbWJlckhvbGRlck9iamVjdCwgbWVtYmVyLCBhX3Rlc3Qp
Ci0vL0B7CiB7CiAgICAgdmFyIGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KG1lbWJlckhvbGRlck9iamVjdCwgbWVtYmVyLm5hbWUpOwogCkBAIC0zMDk4LDEwICszMTk5LDgg
QEAgSWRsTmFtZXNwYWNlLnByb3RvdHlwZS5kb19tZW1iZXJfb3BlcmF0aW9uX2Fzc2VydHMgPSBm
dW5jdGlvbiAobWVtYmVySG9sZGVyT2JqZWMKICAgICAgICAgIm9wZXJhdGlvbiBoYXMgd3Jvbmcg
Lmxlbmd0aCIpOwogICAgIGFfdGVzdC5kb25lKCk7CiB9Ci0vL0B9CiAKIElkbE5hbWVzcGFjZS5w
cm90b3R5cGUudGVzdF9tZW1iZXJfb3BlcmF0aW9uID0gZnVuY3Rpb24obWVtYmVyKQotLy9Aewog
ewogICAgIGlmICghc2hvdWxkUnVuU3ViVGVzdCh0aGlzLm5hbWUpKSB7CiAgICAgICAgIHJldHVy
bjsKQEAgLTMxMjYsMTAgKzMyMjUsOCBAQCBJZGxOYW1lc3BhY2UucHJvdG90eXBlLnRlc3RfbWVt
YmVyX29wZXJhdGlvbiA9IGZ1bmN0aW9uKG1lbWJlcikKICAgICAgICAgdGhpcy5kb19tZW1iZXJf
b3BlcmF0aW9uX2Fzc2VydHMoc2VsZlt0aGlzLm5hbWVdLCBtZW1iZXIsIGFfdGVzdCk7CiAgICAg
fS5iaW5kKHRoaXMpKTsKIH07Ci0vL0B9CiAKIElkbE5hbWVzcGFjZS5wcm90b3R5cGUudGVzdF9t
ZW1iZXJfYXR0cmlidXRlID0gZnVuY3Rpb24gKG1lbWJlcikKLS8vQHsKIHsKICAgICBpZiAoIXNo
b3VsZFJ1blN1YlRlc3QodGhpcy5uYW1lKSkgewogICAgICAgICByZXR1cm47CkBAIC0zMTUwLDEw
ICszMjQ3LDggQEAgSWRsTmFtZXNwYWNlLnByb3RvdHlwZS50ZXN0X21lbWJlcl9hdHRyaWJ1dGUg
PSBmdW5jdGlvbiAobWVtYmVyKQogICAgICAgICBhX3Rlc3QuZG9uZSgpOwogICAgIH0uYmluZCh0
aGlzKSk7CiB9OwotLy9AfQogCiBJZGxOYW1lc3BhY2UucHJvdG90eXBlLnRlc3QgPSBmdW5jdGlv
biAoKQotLy9AewogewogICAgIC8qKgogICAgICAqIFRPRE8obHVrZWJqZXJyaW5nKTogQXNzZXJ0
OgpAQCAtMzE3OSw3ICszMjc0LDYgQEAgSWRsTmFtZXNwYWNlLnByb3RvdHlwZS50ZXN0ID0gZnVu
Y3Rpb24gKCkKICAgICAgICAgfQogICAgIH07CiB9OwotLy9AfQogCiB9KCkpOwogCkBAIC0zMjQx
LDcgKzMzMzUsMTEgQEAgZnVuY3Rpb24gaWRsX3Rlc3Qoc3JjcywgZGVwcywgaWRsX3NldHVwX2Z1
bmMpIHsKICAqIGZldGNoX3NwZWMgaXMgYSBzaG9ydGhhbmQgZm9yIGEgUHJvbWlzZSB0aGF0IGZl
dGNoZXMgdGhlIHNwZWMncyBjb250ZW50LgogICovCiBmdW5jdGlvbiBmZXRjaF9zcGVjKHNwZWMp
IHsKLSAgICByZXR1cm4gZmV0Y2goJy9pbnRlcmZhY2VzLycgKyBzcGVjICsgJy5pZGwnKS50aGVu
KGZ1bmN0aW9uIChyKSB7CisgICAgdmFyIHVybCA9ICcvaW50ZXJmYWNlcy8nICsgc3BlYyArICcu
aWRsJzsKKyAgICByZXR1cm4gZmV0Y2godXJsKS50aGVuKGZ1bmN0aW9uIChyKSB7CisgICAgICAg
IGlmICghci5vaykgeworICAgICAgICAgICAgdGhyb3cgbmV3IElkbEhhcm5lc3NFcnJvcigiRXJy
b3IgZmV0Y2hpbmcgIiArIHVybCArICIuIik7CisgICAgICAgIH0KICAgICAgICAgcmV0dXJuIHIu
dGV4dCgpOwogICAgIH0pOwogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvd2ViaWRsMi9saWIvd2ViaWRsMi5qcyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3dlYmlk
bDIvbGliL3dlYmlkbDIuanMKaW5kZXggZWY1MTljMDlkZjZkNmRhODEyZmNiYmE1N2M3Y2EwZjQ3
NWFmMWVkNS4uYzYwYTQ1NmMzMjQxNjU1ZDA1YTdlNDBmODJiMTlkODczNWQwMTdkNCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJj
ZXMvd2ViaWRsMi9saWIvd2ViaWRsMi5qcworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy93ZWJpZGwyL2xpYi93ZWJpZGwyLmpzCkBAIC0x
LDk3MCArMSwyNzc3IEBACisoZnVuY3Rpb24gd2VicGFja1VuaXZlcnNhbE1vZHVsZURlZmluaXRp
b24ocm9vdCwgZmFjdG9yeSkgeworCWlmKHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0
eXBlb2YgbW9kdWxlID09PSAnb2JqZWN0JykKKwkJbW9kdWxlLmV4cG9ydHMgPSBmYWN0b3J5KCk7
CisJZWxzZSBpZih0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQpCisJ
CWRlZmluZShbXSwgZmFjdG9yeSk7CisJZWxzZSBpZih0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVj
dCcpCisJCWV4cG9ydHNbIldlYklETDIiXSA9IGZhY3RvcnkoKTsKKwllbHNlCisJCXJvb3RbIldl
YklETDIiXSA9IGZhY3RvcnkoKTsKK30pKHRoaXMsIGZ1bmN0aW9uKCkgeworcmV0dXJuIC8qKioq
KiovIChmdW5jdGlvbihtb2R1bGVzKSB7IC8vIHdlYnBhY2tCb290c3RyYXAKKy8qKioqKiovIAkv
LyBUaGUgbW9kdWxlIGNhY2hlCisvKioqKioqLyAJdmFyIGluc3RhbGxlZE1vZHVsZXMgPSB7fTsK
Ky8qKioqKiovCisvKioqKioqLyAJLy8gVGhlIHJlcXVpcmUgZnVuY3Rpb24KKy8qKioqKiovIAlm
dW5jdGlvbiBfX3dlYnBhY2tfcmVxdWlyZV9fKG1vZHVsZUlkKSB7CisvKioqKioqLworLyoqKioq
Ki8gCQkvLyBDaGVjayBpZiBtb2R1bGUgaXMgaW4gY2FjaGUKKy8qKioqKiovIAkJaWYoaW5zdGFs
bGVkTW9kdWxlc1ttb2R1bGVJZF0pIHsKKy8qKioqKiovIAkJCXJldHVybiBpbnN0YWxsZWRNb2R1
bGVzW21vZHVsZUlkXS5leHBvcnRzOworLyoqKioqKi8gCQl9CisvKioqKioqLyAJCS8vIENyZWF0
ZSBhIG5ldyBtb2R1bGUgKGFuZCBwdXQgaXQgaW50byB0aGUgY2FjaGUpCisvKioqKioqLyAJCXZh
ciBtb2R1bGUgPSBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXSA9IHsKKy8qKioqKiovIAkJCWk6
IG1vZHVsZUlkLAorLyoqKioqKi8gCQkJbDogZmFsc2UsCisvKioqKioqLyAJCQlleHBvcnRzOiB7
fQorLyoqKioqKi8gCQl9OworLyoqKioqKi8KKy8qKioqKiovIAkJLy8gRXhlY3V0ZSB0aGUgbW9k
dWxlIGZ1bmN0aW9uCisvKioqKioqLyAJCW1vZHVsZXNbbW9kdWxlSWRdLmNhbGwobW9kdWxlLmV4
cG9ydHMsIG1vZHVsZSwgbW9kdWxlLmV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pOworLyoq
KioqKi8KKy8qKioqKiovIAkJLy8gRmxhZyB0aGUgbW9kdWxlIGFzIGxvYWRlZAorLyoqKioqKi8g
CQltb2R1bGUubCA9IHRydWU7CisvKioqKioqLworLyoqKioqKi8gCQkvLyBSZXR1cm4gdGhlIGV4
cG9ydHMgb2YgdGhlIG1vZHVsZQorLyoqKioqKi8gCQlyZXR1cm4gbW9kdWxlLmV4cG9ydHM7Cisv
KioqKioqLyAJfQorLyoqKioqKi8KKy8qKioqKiovCisvKioqKioqLyAJLy8gZXhwb3NlIHRoZSBt
b2R1bGVzIG9iamVjdCAoX193ZWJwYWNrX21vZHVsZXNfXykKKy8qKioqKiovIAlfX3dlYnBhY2tf
cmVxdWlyZV9fLm0gPSBtb2R1bGVzOworLyoqKioqKi8KKy8qKioqKiovIAkvLyBleHBvc2UgdGhl
IG1vZHVsZSBjYWNoZQorLyoqKioqKi8gCV9fd2VicGFja19yZXF1aXJlX18uYyA9IGluc3RhbGxl
ZE1vZHVsZXM7CisvKioqKioqLworLyoqKioqKi8gCS8vIGRlZmluZSBnZXR0ZXIgZnVuY3Rpb24g
Zm9yIGhhcm1vbnkgZXhwb3J0cworLyoqKioqKi8gCV9fd2VicGFja19yZXF1aXJlX18uZCA9IGZ1
bmN0aW9uKGV4cG9ydHMsIG5hbWUsIGdldHRlcikgeworLyoqKioqKi8gCQlpZighX193ZWJwYWNr
X3JlcXVpcmVfXy5vKGV4cG9ydHMsIG5hbWUpKSB7CisvKioqKioqLyAJCQlPYmplY3QuZGVmaW5l
UHJvcGVydHkoZXhwb3J0cywgbmFtZSwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGdldHRlciB9
KTsKKy8qKioqKiovIAkJfQorLyoqKioqKi8gCX07CisvKioqKioqLworLyoqKioqKi8gCS8vIGRl
ZmluZSBfX2VzTW9kdWxlIG9uIGV4cG9ydHMKKy8qKioqKiovIAlfX3dlYnBhY2tfcmVxdWlyZV9f
LnIgPSBmdW5jdGlvbihleHBvcnRzKSB7CisvKioqKioqLyAJCWlmKHR5cGVvZiBTeW1ib2wgIT09
ICd1bmRlZmluZWQnICYmIFN5bWJvbC50b1N0cmluZ1RhZykgeworLyoqKioqKi8gCQkJT2JqZWN0
LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFN5bWJvbC50b1N0cmluZ1RhZywgeyB2YWx1ZTogJ01v
ZHVsZScgfSk7CisvKioqKioqLyAJCX0KKy8qKioqKiovIAkJT2JqZWN0LmRlZmluZVByb3BlcnR5
KGV4cG9ydHMsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTsKKy8qKioqKiovIAl9Owor
LyoqKioqKi8KKy8qKioqKiovIAkvLyBjcmVhdGUgYSBmYWtlIG5hbWVzcGFjZSBvYmplY3QKKy8q
KioqKiovIAkvLyBtb2RlICYgMTogdmFsdWUgaXMgYSBtb2R1bGUgaWQsIHJlcXVpcmUgaXQKKy8q
KioqKiovIAkvLyBtb2RlICYgMjogbWVyZ2UgYWxsIHByb3BlcnRpZXMgb2YgdmFsdWUgaW50byB0
aGUgbnMKKy8qKioqKiovIAkvLyBtb2RlICYgNDogcmV0dXJuIHZhbHVlIHdoZW4gYWxyZWFkeSBu
cyBvYmplY3QKKy8qKioqKiovIAkvLyBtb2RlICYgOHwxOiBiZWhhdmUgbGlrZSByZXF1aXJlCisv
KioqKioqLyAJX193ZWJwYWNrX3JlcXVpcmVfXy50ID0gZnVuY3Rpb24odmFsdWUsIG1vZGUpIHsK
Ky8qKioqKiovIAkJaWYobW9kZSAmIDEpIHZhbHVlID0gX193ZWJwYWNrX3JlcXVpcmVfXyh2YWx1
ZSk7CisvKioqKioqLyAJCWlmKG1vZGUgJiA4KSByZXR1cm4gdmFsdWU7CisvKioqKioqLyAJCWlm
KChtb2RlICYgNCkgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiB2YWx1ZSAmJiB2YWx1
ZS5fX2VzTW9kdWxlKSByZXR1cm4gdmFsdWU7CisvKioqKioqLyAJCXZhciBucyA9IE9iamVjdC5j
cmVhdGUobnVsbCk7CisvKioqKioqLyAJCV9fd2VicGFja19yZXF1aXJlX18ucihucyk7CisvKioq
KioqLyAJCU9iamVjdC5kZWZpbmVQcm9wZXJ0eShucywgJ2RlZmF1bHQnLCB7IGVudW1lcmFibGU6
IHRydWUsIHZhbHVlOiB2YWx1ZSB9KTsKKy8qKioqKiovIAkJaWYobW9kZSAmIDIgJiYgdHlwZW9m
IHZhbHVlICE9ICdzdHJpbmcnKSBmb3IodmFyIGtleSBpbiB2YWx1ZSkgX193ZWJwYWNrX3JlcXVp
cmVfXy5kKG5zLCBrZXksIGZ1bmN0aW9uKGtleSkgeyByZXR1cm4gdmFsdWVba2V5XTsgfS5iaW5k
KG51bGwsIGtleSkpOworLyoqKioqKi8gCQlyZXR1cm4gbnM7CisvKioqKioqLyAJfTsKKy8qKioq
KiovCisvKioqKioqLyAJLy8gZ2V0RGVmYXVsdEV4cG9ydCBmdW5jdGlvbiBmb3IgY29tcGF0aWJp
bGl0eSB3aXRoIG5vbi1oYXJtb255IG1vZHVsZXMKKy8qKioqKiovIAlfX3dlYnBhY2tfcmVxdWly
ZV9fLm4gPSBmdW5jdGlvbihtb2R1bGUpIHsKKy8qKioqKiovIAkJdmFyIGdldHRlciA9IG1vZHVs
ZSAmJiBtb2R1bGUuX19lc01vZHVsZSA/CisvKioqKioqLyAJCQlmdW5jdGlvbiBnZXREZWZhdWx0
KCkgeyByZXR1cm4gbW9kdWxlWydkZWZhdWx0J107IH0gOgorLyoqKioqKi8gCQkJZnVuY3Rpb24g
Z2V0TW9kdWxlRXhwb3J0cygpIHsgcmV0dXJuIG1vZHVsZTsgfTsKKy8qKioqKiovIAkJX193ZWJw
YWNrX3JlcXVpcmVfXy5kKGdldHRlciwgJ2EnLCBnZXR0ZXIpOworLyoqKioqKi8gCQlyZXR1cm4g
Z2V0dGVyOworLyoqKioqKi8gCX07CisvKioqKioqLworLyoqKioqKi8gCS8vIE9iamVjdC5wcm90
b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbAorLyoqKioqKi8gCV9fd2VicGFja19yZXF1aXJlX18u
byA9IGZ1bmN0aW9uKG9iamVjdCwgcHJvcGVydHkpIHsgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUu
aGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsIHByb3BlcnR5KTsgfTsKKy8qKioqKiovCisvKioq
KioqLyAJLy8gX193ZWJwYWNrX3B1YmxpY19wYXRoX18KKy8qKioqKiovIAlfX3dlYnBhY2tfcmVx
dWlyZV9fLnAgPSAiIjsKKy8qKioqKiovCisvKioqKioqLworLyoqKioqKi8gCS8vIExvYWQgZW50
cnkgbW9kdWxlIGFuZCByZXR1cm4gZXhwb3J0cworLyoqKioqKi8gCXJldHVybiBfX3dlYnBhY2tf
cmVxdWlyZV9fKF9fd2VicGFja19yZXF1aXJlX18ucyA9IDApOworLyoqKioqKi8gfSkKKy8qKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKiovCisvKioqKioqLyAoWworLyogMCAqLworLyoqKi8gKGZ1bmN0aW9uKG1vZHVs
ZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgeworCiAidXNlIHN0
cmljdCI7CitfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7CisvKiBo
YXJtb255IGltcG9ydCAqLyB2YXIgX2xpYl93ZWJpZGwyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01P
RFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDEpOworLyogaGFybW9ueSByZWV4cG9ydCAo
c2FmZSkgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sICJwYXJz
ZSIsIGZ1bmN0aW9uKCkgeyByZXR1cm4gX2xpYl93ZWJpZGwyX2pzX19XRUJQQUNLX0lNUE9SVEVE
X01PRFVMRV8wX19bInBhcnNlIl07IH0pOwogCi0oKCkgPT4gewotICAvLyBUaGVzZSByZWd1bGFy
IGV4cHJlc3Npb25zIHVzZSB0aGUgc3RpY2t5IGZsYWcgc28gdGhleSB3aWxsIG9ubHkgbWF0Y2gg
YXQKLSAgLy8gdGhlIGN1cnJlbnQgbG9jYXRpb24gKGllLiB0aGUgb2Zmc2V0IG9mIGxhc3RJbmRl
eCkuCi0gIGNvbnN0IHRva2VuUmUgPSB7Ci0gICAgLy8gVGhpcyBleHByZXNzaW9uIHVzZXMgYSBs
b29rYWhlYWQgYXNzZXJ0aW9uIHRvIGNhdGNoIGZhbHNlIG1hdGNoZXMKLSAgICAvLyBhZ2FpbnN0
IGludGVnZXJzIGVhcmx5LgotICAgICJmbG9hdCI6IC8tPyg/PVswLTldKlwufFswLTldK1tlRV0p
KChbMC05XStcLlswLTldKnxbMC05XSpcLlswLTldKykoW0VlXVstK10/WzAtOV0rKT98WzAtOV0r
W0VlXVstK10/WzAtOV0rKS95LAotICAgICJpbnRlZ2VyIjogLy0/KDAoW1h4XVswLTlBLUZhLWZd
K3xbMC03XSopfFsxLTldWzAtOV0qKS95LAotICAgICJpZGVudGlmaWVyIjogL18/W0EtWmEtel1b
MC05QS1aX2Etei1dKi95LAotICAgICJzdHJpbmciOiAvIlteIl0qIi95LAotICAgICJ3aGl0ZXNw
YWNlIjogL1tcdFxuXHIgXSsveSwKLSAgICAiY29tbWVudCI6IC8oKFwvKFwvLip8XCooW14qXXxc
KlteXC9dKSpcKlwvKVtcdFxuXHIgXSopKykveSwKLSAgICAib3RoZXIiOiAvW15cdFxuXHIgMC05
QS1aYS16XS95Ci0gIH07CisvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2xpYl93cml0ZXJfanNf
X1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMzApOwor
LyogaGFybW9ueSByZWV4cG9ydCAoc2FmZSkgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2Vi
cGFja19leHBvcnRzX18sICJ3cml0ZSIsIGZ1bmN0aW9uKCkgeyByZXR1cm4gX2xpYl93cml0ZXJf
anNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX1sid3JpdGUiXTsgfSk7CiAKLSAgY29uc3Qg
c3RyaW5nVHlwZXMgPSBbCi0gICAgIkJ5dGVTdHJpbmciLAotICAgICJET01TdHJpbmciLAotICAg
ICJVU1ZTdHJpbmciCi0gIF07Ci0KLSAgY29uc3QgYXJndW1lbnROYW1lS2V5d29yZHMgPSBbCi0g
ICAgImF0dHJpYnV0ZSIsCi0gICAgImNhbGxiYWNrIiwKLSAgICAiY29uc3QiLAotICAgICJkZWxl
dGVyIiwKLSAgICAiZGljdGlvbmFyeSIsCi0gICAgImVudW0iLAotICAgICJnZXR0ZXIiLAotICAg
ICJpbmNsdWRlcyIsCi0gICAgImluaGVyaXQiLAotICAgICJpbnRlcmZhY2UiLAotICAgICJpdGVy
YWJsZSIsCi0gICAgIm1hcGxpa2UiLAotICAgICJuYW1lc3BhY2UiLAotICAgICJwYXJ0aWFsIiwK
LSAgICAicmVxdWlyZWQiLAotICAgICJzZXRsaWtlIiwKLSAgICAic2V0dGVyIiwKLSAgICAic3Rh
dGljIiwKLSAgICAic3RyaW5naWZpZXIiLAotICAgICJ0eXBlZGVmIiwKLSAgICAidW5yZXN0cmlj
dGVkIgotICBdOwotCi0gIGNvbnN0IG5vblJlZ2V4VGVybWluYWxzID0gWwotICAgICJGcm96ZW5B
cnJheSIsCi0gICAgIkluZmluaXR5IiwKLSAgICAiTmFOIiwKLSAgICAiUHJvbWlzZSIsCi0gICAg
ImJvb2xlYW4iLAotICAgICJieXRlIiwKLSAgICAiZG91YmxlIiwKLSAgICAiZmFsc2UiLAotICAg
ICJmbG9hdCIsCi0gICAgImltcGxlbWVudHMiLAotICAgICJsZWdhY3lpdGVyYWJsZSIsCi0gICAg
ImxvbmciLAotICAgICJtaXhpbiIsCi0gICAgIm51bGwiLAotICAgICJvY3RldCIsCi0gICAgIm9w
dGlvbmFsIiwKLSAgICAib3IiLAotICAgICJyZWFkb25seSIsCi0gICAgInJlY29yZCIsCi0gICAg
InNlcXVlbmNlIiwKLSAgICAic2hvcnQiLAotICAgICJ0cnVlIiwKLSAgICAidW5zaWduZWQiLAot
ICAgICJ2b2lkIgotICBdLmNvbmNhdChhcmd1bWVudE5hbWVLZXl3b3Jkcywgc3RyaW5nVHlwZXMp
OwotCi0gIGNvbnN0IHB1bmN0dWF0aW9ucyA9IFsKLSAgICAiKCIsCi0gICAgIikiLAotICAgICIs
IiwKLSAgICAiLUluZmluaXR5IiwKLSAgICAiLi4uIiwKLSAgICAiOiIsCi0gICAgIjsiLAotICAg
ICI8IiwKLSAgICAiPSIsCi0gICAgIj4iLAotICAgICI/IiwKLSAgICAiWyIsCi0gICAgIl0iLAot
ICAgICJ7IiwKLSAgICAifSIKLSAgXTsKLQotICBmdW5jdGlvbiB0b2tlbmlzZShzdHIpIHsKLSAg
ICBjb25zdCB0b2tlbnMgPSBbXTsKLSAgICBsZXQgbGFzdEluZGV4ID0gMDsKLSAgICBsZXQgdHJp
dmlhID0gIiI7Ci0gICAgd2hpbGUgKGxhc3RJbmRleCA8IHN0ci5sZW5ndGgpIHsKLSAgICAgIGNv
bnN0IG5leHRDaGFyID0gc3RyLmNoYXJBdChsYXN0SW5kZXgpOwotICAgICAgbGV0IHJlc3VsdCA9
IC0xOwotCi0gICAgICBpZiAoL1tcdFxuXHIgXS8udGVzdChuZXh0Q2hhcikpIHsKLSAgICAgICAg
cmVzdWx0ID0gYXR0ZW1wdFRva2VuTWF0Y2goIndoaXRlc3BhY2UiLCB7IG5vRmx1c2hUcml2aWE6
IHRydWUgfSk7Ci0gICAgICB9IGVsc2UgaWYgKG5leHRDaGFyID09PSAnLycpIHsKLSAgICAgICAg
cmVzdWx0ID0gYXR0ZW1wdFRva2VuTWF0Y2goImNvbW1lbnQiLCB7IG5vRmx1c2hUcml2aWE6IHRy
dWUgfSk7Ci0gICAgICB9CisvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2xpYl92YWxpZGF0b3Jf
anNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMzEp
OworLyogaGFybW9ueSByZWV4cG9ydCAoc2FmZSkgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9f
d2VicGFja19leHBvcnRzX18sICJ2YWxpZGF0ZSIsIGZ1bmN0aW9uKCkgeyByZXR1cm4gX2xpYl92
YWxpZGF0b3JfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX1sidmFsaWRhdGUiXTsgfSk7
CiAKLSAgICAgIGlmIChyZXN1bHQgIT09IC0xKSB7Ci0gICAgICAgIHRyaXZpYSArPSB0b2tlbnMu
cG9wKCkudmFsdWU7Ci0gICAgICB9IGVsc2UgaWYgKC9bLTAtOS5dLy50ZXN0KG5leHRDaGFyKSkg
ewotICAgICAgICByZXN1bHQgPSBhdHRlbXB0VG9rZW5NYXRjaCgiZmxvYXQiKTsKLSAgICAgICAg
aWYgKHJlc3VsdCA9PT0gLTEpIHsKLSAgICAgICAgICByZXN1bHQgPSBhdHRlbXB0VG9rZW5NYXRj
aCgiaW50ZWdlciIpOwotICAgICAgICB9Ci0gICAgICB9IGVsc2UgaWYgKC9bQS1aX2Etel0vLnRl
c3QobmV4dENoYXIpKSB7Ci0gICAgICAgIHJlc3VsdCA9IGF0dGVtcHRUb2tlbk1hdGNoKCJpZGVu
dGlmaWVyIik7Ci0gICAgICAgIGNvbnN0IHRva2VuID0gdG9rZW5zW3Rva2Vucy5sZW5ndGggLSAx
XTsKLSAgICAgICAgaWYgKHJlc3VsdCAhPT0gLTEgJiYgbm9uUmVnZXhUZXJtaW5hbHMuaW5jbHVk
ZXModG9rZW4udmFsdWUpKSB7Ci0gICAgICAgICAgdG9rZW4udHlwZSA9IHRva2VuLnZhbHVlOwot
ICAgICAgICB9Ci0gICAgICB9IGVsc2UgaWYgKG5leHRDaGFyID09PSAnIicpIHsKLSAgICAgICAg
cmVzdWx0ID0gYXR0ZW1wdFRva2VuTWF0Y2goInN0cmluZyIpOwotICAgICAgfQogCi0gICAgICBm
b3IgKGNvbnN0IHB1bmN0dWF0aW9uIG9mIHB1bmN0dWF0aW9ucykgewotICAgICAgICBpZiAoc3Ry
LnN0YXJ0c1dpdGgocHVuY3R1YXRpb24sIGxhc3RJbmRleCkpIHsKLSAgICAgICAgICB0b2tlbnMu
cHVzaCh7IHR5cGU6IHB1bmN0dWF0aW9uLCB2YWx1ZTogcHVuY3R1YXRpb24sIHRyaXZpYSB9KTsK
LSAgICAgICAgICB0cml2aWEgPSAiIjsKLSAgICAgICAgICBsYXN0SW5kZXggKz0gcHVuY3R1YXRp
b24ubGVuZ3RoOwotICAgICAgICAgIHJlc3VsdCA9IGxhc3RJbmRleDsKLSAgICAgICAgICBicmVh
azsKLSAgICAgICAgfQotICAgICAgfQogCi0gICAgICAvLyBvdGhlciBhcyB0aGUgbGFzdCB0cnkK
LSAgICAgIGlmIChyZXN1bHQgPT09IC0xKSB7Ci0gICAgICAgIHJlc3VsdCA9IGF0dGVtcHRUb2tl
bk1hdGNoKCJvdGhlciIpOwotICAgICAgfQotICAgICAgaWYgKHJlc3VsdCA9PT0gLTEpIHsKLSAg
ICAgICAgdGhyb3cgbmV3IEVycm9yKCJUb2tlbiBzdHJlYW0gbm90IHByb2dyZXNzaW5nIik7Ci0g
ICAgICB9Ci0gICAgICBsYXN0SW5kZXggPSByZXN1bHQ7Ci0gICAgfQotICAgIHJldHVybiB0b2tl
bnM7CiAKLSAgICBmdW5jdGlvbiBhdHRlbXB0VG9rZW5NYXRjaCh0eXBlLCB7IG5vRmx1c2hUcml2
aWEgfSA9IHt9KSB7Ci0gICAgICBjb25zdCByZSA9IHRva2VuUmVbdHlwZV07Ci0gICAgICByZS5s
YXN0SW5kZXggPSBsYXN0SW5kZXg7Ci0gICAgICBjb25zdCByZXN1bHQgPSByZS5leGVjKHN0cik7
Ci0gICAgICBpZiAocmVzdWx0KSB7Ci0gICAgICAgIHRva2Vucy5wdXNoKHsgdHlwZSwgdmFsdWU6
IHJlc3VsdFswXSwgdHJpdmlhIH0pOwotICAgICAgICBpZiAoIW5vRmx1c2hUcml2aWEpIHsKLSAg
ICAgICAgICB0cml2aWEgPSAiIjsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gcmUubGFzdElu
ZGV4OwotICAgICAgfQotICAgICAgcmV0dXJuIC0xOwotICAgIH0KLSAgfQogCi0gIGNsYXNzIFdl
YklETFBhcnNlRXJyb3IgewotICAgIGNvbnN0cnVjdG9yKHN0ciwgbGluZSwgaW5wdXQsIHRva2Vu
cykgewotICAgICAgdGhpcy5tZXNzYWdlID0gc3RyOwotICAgICAgdGhpcy5saW5lID0gbGluZTsK
LSAgICAgIHRoaXMuaW5wdXQgPSBpbnB1dDsKLSAgICAgIHRoaXMudG9rZW5zID0gdG9rZW5zOwot
ICAgIH0KIAotICAgIHRvU3RyaW5nKCkgewotICAgICAgY29uc3QgZXNjYXBlZElucHV0ID0gSlNP
Ti5zdHJpbmdpZnkodGhpcy5pbnB1dCk7Ci0gICAgICBjb25zdCB0b2tlbnMgPSBKU09OLnN0cmlu
Z2lmeSh0aGlzLnRva2VucywgbnVsbCwgNCk7Ci0gICAgICByZXR1cm4gYCR7dGhpcy5tZXNzYWdl
fSwgbGluZSAke3RoaXMubGluZX0gKHRva2VuczogJHtlc2NhcGVkSW5wdXR9KVxuJHt0b2tlbnN9
YDsKLSAgICB9Ci0gIH0KKy8qKiovIH0pLAorLyogMSAqLworLyoqKi8gKGZ1bmN0aW9uKG1vZHVs
ZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgewogCi0gIGZ1bmN0
aW9uIHBhcnNlKHRva2VucykgewotICAgIGxldCBsaW5lID0gMTsKLSAgICB0b2tlbnMgPSB0b2tl
bnMuc2xpY2UoKTsKLSAgICBjb25zdCBuYW1lcyA9IG5ldyBNYXAoKTsKLSAgICBsZXQgY3VycmVu
dCA9IG51bGw7CisidXNlIHN0cmljdCI7CitfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNr
X2V4cG9ydHNfXyk7CisvKiBoYXJtb255IGV4cG9ydCAoYmluZGluZykgKi8gX193ZWJwYWNrX3Jl
cXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sICJwYXJzZSIsIGZ1bmN0aW9uKCkgeyByZXR1
cm4gcGFyc2U7IH0pOworLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF90b2tlbmlzZXJfanNfX1dF
QlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMik7CisvKiBo
YXJtb255IGltcG9ydCAqLyB2YXIgX3Byb2R1Y3Rpb25zX2VudW1fanNfX1dFQlBBQ0tfSU1QT1JU
RURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMTUpOworLyogaGFybW9ueSBpbXBv
cnQgKi8gdmFyIF9wcm9kdWN0aW9uc19pbmNsdWRlc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RV
TEVfMl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygxNik7CisvKiBoYXJtb255IGltcG9ydCAqLyB2
YXIgX3Byb2R1Y3Rpb25zX2V4dGVuZGVkX2F0dHJpYnV0ZXNfanNfX1dFQlBBQ0tfSU1QT1JURURf
TU9EVUxFXzNfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMTApOworLyogaGFybW9ueSBpbXBvcnQg
Ki8gdmFyIF9wcm9kdWN0aW9uc190eXBlZGVmX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80
X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDE3KTsKKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBf
cHJvZHVjdGlvbnNfY2FsbGJhY2tfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXyA9IF9f
d2VicGFja19yZXF1aXJlX18oMTgpOworLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9wcm9kdWN0
aW9uc19pbnRlcmZhY2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfXyA9IF9fd2VicGFj
a19yZXF1aXJlX18oMTkpOworLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9wcm9kdWN0aW9uc19t
aXhpbl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfN19fID0gX193ZWJwYWNrX3JlcXVpcmVf
XygyNSk7CisvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3Byb2R1Y3Rpb25zX2RpY3Rpb25hcnlf
anNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzhfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMjYp
OworLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9wcm9kdWN0aW9uc19uYW1lc3BhY2VfanNfX1dF
QlBBQ0tfSU1QT1JURURfTU9EVUxFXzlfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMjgpOworLyog
aGFybW9ueSBpbXBvcnQgKi8gdmFyIF9wcm9kdWN0aW9uc19jYWxsYmFja19pbnRlcmZhY2VfanNf
X1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEwX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDI5KTsK
IAotICAgIGNvbnN0IEZMT0FUID0gImZsb2F0IjsKLSAgICBjb25zdCBJTlQgPSAiaW50ZWdlciI7
Ci0gICAgY29uc3QgSUQgPSAiaWRlbnRpZmllciI7Ci0gICAgY29uc3QgU1RSID0gInN0cmluZyI7
Ci0gICAgY29uc3QgT1RIRVIgPSAib3RoZXIiOwogCi0gICAgY29uc3QgRU1QVFlfT1BFUkFUSU9O
ID0gT2JqZWN0LmZyZWV6ZSh7Ci0gICAgICB0eXBlOiAib3BlcmF0aW9uIiwKLSAgICAgIGdldHRl
cjogZmFsc2UsCi0gICAgICBzZXR0ZXI6IGZhbHNlLAotICAgICAgZGVsZXRlcjogZmFsc2UsCi0g
ICAgICBzdGF0aWM6IGZhbHNlLAotICAgICAgc3RyaW5naWZpZXI6IGZhbHNlCi0gICAgfSk7CiAK
LSAgICBjb25zdCBFTVBUWV9JRExUWVBFID0gT2JqZWN0LmZyZWV6ZSh7Ci0gICAgICBnZW5lcmlj
OiBudWxsLAotICAgICAgbnVsbGFibGU6IGZhbHNlLAotICAgICAgdW5pb246IGZhbHNlLAotICAg
ICAgaWRsVHlwZTogbnVsbCwKLSAgICAgIGV4dEF0dHJzOiBbXQotICAgIH0pOwogCi0gICAgZnVu
Y3Rpb24gZXJyb3Ioc3RyKSB7Ci0gICAgICBjb25zdCBtYXhUb2tlbnMgPSA1OwotICAgICAgY29u
c3QgdG9rID0gdG9rZW5zCi0gICAgICAgIC5zbGljZShjb25zdW1lX3Bvc2l0aW9uLCBjb25zdW1l
X3Bvc2l0aW9uICsgbWF4VG9rZW5zKQotICAgICAgICAubWFwKHQgPT4gdC50cml2aWEgKyB0LnZh
bHVlKS5qb2luKCIiKTsKLSAgICAgIC8vIENvdW50IG5ld2xpbmVzIHByZWNlZGluZyB0aGUgYWN0
dWFsIGVycm9uZW91cyB0b2tlbgotICAgICAgaWYgKHRva2Vucy5sZW5ndGgpIHsKLSAgICAgICAg
bGluZSArPSBjb3VudCh0b2tlbnNbY29uc3VtZV9wb3NpdGlvbl0udHJpdmlhLCAiXG4iKTsKLSAg
ICAgIH0KIAotICAgICAgbGV0IG1lc3NhZ2U7Ci0gICAgICBpZiAoY3VycmVudCkgewotICAgICAg
ICBtZXNzYWdlID0gYEdvdCBhbiBlcnJvciBkdXJpbmcgb3IgcmlnaHQgYWZ0ZXIgcGFyc2luZyBc
YCR7Y3VycmVudC5wYXJ0aWFsID8gInBhcnRpYWwgIiA6ICIifSR7Y3VycmVudC50eXBlfSAke2N1
cnJlbnQubmFtZX1cYDogJHtzdHJ9YAotICAgICAgfQotICAgICAgZWxzZSB7Ci0gICAgICAgIC8v
IHRocm93aW5nIGJlZm9yZSBhbnkgdmFsaWQgZGVmaW5pdGlvbgotICAgICAgICBtZXNzYWdlID0g
YEdvdCBhbiBlcnJvciBiZWZvcmUgcGFyc2luZyBhbnkgbmFtZWQgZGVmaW5pdGlvbjogJHtzdHJ9
YDsKLSAgICAgIH0KIAotICAgICAgdGhyb3cgbmV3IFdlYklETFBhcnNlRXJyb3IobWVzc2FnZSwg
bGluZSwgdG9rLCB0b2tlbnMuc2xpY2UoMCwgbWF4VG9rZW5zKSk7Ci0gICAgfQogCi0gICAgZnVu
Y3Rpb24gc2FuaXRpemVfbmFtZShuYW1lLCB0eXBlKSB7Ci0gICAgICBpZiAobmFtZXMuaGFzKG5h
bWUpKSB7Ci0gICAgICAgIGVycm9yKGBUaGUgbmFtZSAiJHtuYW1lfSIgb2YgdHlwZSAiJHtuYW1l
cy5nZXQobmFtZSl9IiBpcyBhbHJlYWR5IHNlZW5gKTsKLSAgICAgIH0KLSAgICAgIG5hbWVzLnNl
dChuYW1lLCB0eXBlKTsKLSAgICAgIHJldHVybiBuYW1lOwotICAgIH0KIAotICAgIGxldCBjb25z
dW1lX3Bvc2l0aW9uID0gMDsKIAotICAgIGZ1bmN0aW9uIHByb2JlKHR5cGUpIHsKLSAgICAgIHJl
dHVybiB0b2tlbnMubGVuZ3RoID4gY29uc3VtZV9wb3NpdGlvbiAmJiB0b2tlbnNbY29uc3VtZV9w
b3NpdGlvbl0udHlwZSA9PT0gdHlwZTsKLSAgICB9CiAKLSAgICBmdW5jdGlvbiBjb25zdW1lKC4u
LmNhbmRpZGF0ZXMpIHsKLSAgICAgIC8vIFRPRE86IHVzZSBjb25zdCB3aGVuIFNlcnZvIHVwZGF0
ZXMgaXRzIEpTIGVuZ2luZQotICAgICAgZm9yIChsZXQgdHlwZSBvZiBjYW5kaWRhdGVzKSB7Ci0g
ICAgICAgIGlmICghcHJvYmUodHlwZSkpIGNvbnRpbnVlOwotICAgICAgICBjb25zdCB0b2tlbiA9
IHRva2Vuc1tjb25zdW1lX3Bvc2l0aW9uXTsKLSAgICAgICAgY29uc3VtZV9wb3NpdGlvbisrOwot
ICAgICAgICBsaW5lICs9IGNvdW50KHRva2VuLnRyaXZpYSwgIlxuIik7Ci0gICAgICAgIHJldHVy
biB0b2tlbjsKLSAgICAgIH0KLSAgICB9CiAKLSAgICBmdW5jdGlvbiB1bmVzY2FwZShpZGVudGlm
aWVyKSB7Ci0gICAgICByZXR1cm4gaWRlbnRpZmllci5zdGFydHNXaXRoKCdfJykgPyBpZGVudGlm
aWVyLnNsaWNlKDEpIDogaWRlbnRpZmllcjsKLSAgICB9CiAKLSAgICBmdW5jdGlvbiB1bmNvbnN1
bWUocG9zaXRpb24pIHsKLSAgICAgIHdoaWxlIChjb25zdW1lX3Bvc2l0aW9uID4gcG9zaXRpb24p
IHsKLSAgICAgICAgY29uc3VtZV9wb3NpdGlvbi0tOwotICAgICAgICBsaW5lIC09IGNvdW50KHRv
a2Vuc1tjb25zdW1lX3Bvc2l0aW9uXS50cml2aWEsICJcbiIpOwotICAgICAgfQotICAgIH0KIAot
ICAgIGZ1bmN0aW9uIGNvdW50KHN0ciwgY2hhcikgewotICAgICAgbGV0IHRvdGFsID0gMDsKLSAg
ICAgIGZvciAobGV0IGkgPSBzdHIuaW5kZXhPZihjaGFyKTsgaSAhPT0gLTE7IGkgPSBzdHIuaW5k
ZXhPZihjaGFyLCBpICsgMSkpIHsKLSAgICAgICAgKyt0b3RhbDsKLSAgICAgIH0KLSAgICAgIHJl
dHVybiB0b3RhbDsKKworLyoqCisgKiBAcGFyYW0ge1Rva2VuaXNlcn0gdG9rZW5pc2VyCisgKiBA
cGFyYW0ge29iamVjdH0gb3B0aW9ucworICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5jb25j
cmV0ZV0KKyAqLworZnVuY3Rpb24gcGFyc2VCeVRva2Vucyh0b2tlbmlzZXIsIG9wdGlvbnMpIHsK
KyAgY29uc3Qgc291cmNlID0gdG9rZW5pc2VyLnNvdXJjZTsKKworICBmdW5jdGlvbiBlcnJvcihz
dHIpIHsKKyAgICB0b2tlbmlzZXIuZXJyb3Ioc3RyKTsKKyAgfQorCisgIGZ1bmN0aW9uIGNvbnN1
bWUoLi4uY2FuZGlkYXRlcykgeworICAgIHJldHVybiB0b2tlbmlzZXIuY29uc3VtZSguLi5jYW5k
aWRhdGVzKTsKKyAgfQorCisgIGZ1bmN0aW9uIGNhbGxiYWNrKCkgeworICAgIGNvbnN0IGNhbGxi
YWNrID0gY29uc3VtZSgiY2FsbGJhY2siKTsKKyAgICBpZiAoIWNhbGxiYWNrKSByZXR1cm47Cisg
ICAgaWYgKHRva2VuaXNlci5wcm9iZSgiaW50ZXJmYWNlIikpIHsKKyAgICAgIHJldHVybiBfcHJv
ZHVjdGlvbnNfY2FsbGJhY2tfaW50ZXJmYWNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8x
MF9fWyJDYWxsYmFja0ludGVyZmFjZSJdLnBhcnNlKHRva2VuaXNlciwgY2FsbGJhY2spOwogICAg
IH0KKyAgICByZXR1cm4gX3Byb2R1Y3Rpb25zX2NhbGxiYWNrX2pzX19XRUJQQUNLX0lNUE9SVEVE
X01PRFVMRV81X19bIkNhbGxiYWNrRnVuY3Rpb24iXS5wYXJzZSh0b2tlbmlzZXIsIGNhbGxiYWNr
KTsKKyAgfQogCi0gICAgZnVuY3Rpb24gaW50ZWdlcl90eXBlKCkgewotICAgICAgbGV0IHJldCA9
ICIiOwotICAgICAgaWYgKGNvbnN1bWUoInVuc2lnbmVkIikpIHJldCA9ICJ1bnNpZ25lZCAiOwot
ICAgICAgaWYgKGNvbnN1bWUoInNob3J0IikpIHJldHVybiByZXQgKyAic2hvcnQiOwotICAgICAg
aWYgKGNvbnN1bWUoImxvbmciKSkgewotICAgICAgICByZXQgKz0gImxvbmciOwotICAgICAgICBp
ZiAoY29uc3VtZSgibG9uZyIpKSByZXR1cm4gcmV0ICsgIiBsb25nIjsKLSAgICAgICAgcmV0dXJu
IHJldDsKKyAgZnVuY3Rpb24gaW50ZXJmYWNlXyhvcHRzKSB7CisgICAgY29uc3QgYmFzZSA9IGNv
bnN1bWUoImludGVyZmFjZSIpOworICAgIGlmICghYmFzZSkgcmV0dXJuOworICAgIGNvbnN0IHJl
dCA9IF9wcm9kdWN0aW9uc19taXhpbl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfN19fWyJN
aXhpbiJdLnBhcnNlKHRva2VuaXNlciwgYmFzZSwgb3B0cykgfHwKKyAgICAgIF9wcm9kdWN0aW9u
c19pbnRlcmZhY2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfX1siSW50ZXJmYWNlIl0u
cGFyc2UodG9rZW5pc2VyLCBiYXNlLCBvcHRzKSB8fAorICAgICAgZXJyb3IoIkludGVyZmFjZSBo
YXMgbm8gcHJvcGVyIGJvZHkiKTsKKyAgICByZXR1cm4gcmV0OworICB9CisKKyAgZnVuY3Rpb24g
cGFydGlhbCgpIHsKKyAgICBjb25zdCBwYXJ0aWFsID0gY29uc3VtZSgicGFydGlhbCIpOworICAg
IGlmICghcGFydGlhbCkgcmV0dXJuOworICAgIHJldHVybiBfcHJvZHVjdGlvbnNfZGljdGlvbmFy
eV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOF9fWyJEaWN0aW9uYXJ5Il0ucGFyc2UodG9r
ZW5pc2VyLCB7IHBhcnRpYWwgfSkgfHwKKyAgICAgIGludGVyZmFjZV8oeyBwYXJ0aWFsIH0pIHx8
CisgICAgICBfcHJvZHVjdGlvbnNfbmFtZXNwYWNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVM
RV85X19bIk5hbWVzcGFjZSJdLnBhcnNlKHRva2VuaXNlciwgeyBwYXJ0aWFsIH0pIHx8CisgICAg
ICBlcnJvcigiUGFydGlhbCBkb2Vzbid0IGFwcGx5IHRvIGFueXRoaW5nIik7CisgIH0KKworICBm
dW5jdGlvbiBkZWZpbml0aW9uKCkgeworICAgIHJldHVybiBjYWxsYmFjaygpIHx8CisgICAgICBp
bnRlcmZhY2VfKCkgfHwKKyAgICAgIHBhcnRpYWwoKSB8fAorICAgICAgX3Byb2R1Y3Rpb25zX2Rp
Y3Rpb25hcnlfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzhfX1siRGljdGlvbmFyeSJdLnBh
cnNlKHRva2VuaXNlcikgfHwKKyAgICAgIF9wcm9kdWN0aW9uc19lbnVtX2pzX19XRUJQQUNLX0lN
UE9SVEVEX01PRFVMRV8xX19bIkVudW0iXS5wYXJzZSh0b2tlbmlzZXIpIHx8CisgICAgICBfcHJv
ZHVjdGlvbnNfdHlwZWRlZl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fWyJUeXBlZGVm
Il0ucGFyc2UodG9rZW5pc2VyKSB8fAorICAgICAgX3Byb2R1Y3Rpb25zX2luY2x1ZGVzX2pzX19X
RUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19bIkluY2x1ZGVzIl0ucGFyc2UodG9rZW5pc2VyKSB8
fAorICAgICAgX3Byb2R1Y3Rpb25zX25hbWVzcGFjZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RV
TEVfOV9fWyJOYW1lc3BhY2UiXS5wYXJzZSh0b2tlbmlzZXIpOworICB9CisKKyAgZnVuY3Rpb24g
ZGVmaW5pdGlvbnMoKSB7CisgICAgaWYgKCFzb3VyY2UubGVuZ3RoKSByZXR1cm4gW107CisgICAg
Y29uc3QgZGVmcyA9IFtdOworICAgIHdoaWxlICh0cnVlKSB7CisgICAgICBjb25zdCBlYSA9IF9w
cm9kdWN0aW9uc19leHRlbmRlZF9hdHRyaWJ1dGVzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVM
RV8zX19bIkV4dGVuZGVkQXR0cmlidXRlcyJdLnBhcnNlKHRva2VuaXNlcik7CisgICAgICBjb25z
dCBkZWYgPSBkZWZpbml0aW9uKCk7CisgICAgICBpZiAoIWRlZikgeworICAgICAgICBpZiAoZWEu
bGVuZ3RoKSBlcnJvcigiU3RyYXkgZXh0ZW5kZWQgYXR0cmlidXRlcyIpOworICAgICAgICBicmVh
azsKICAgICAgIH0KLSAgICAgIGlmIChyZXQpIGVycm9yKCJGYWlsZWQgdG8gcGFyc2UgaW50ZWdl
ciB0eXBlIik7CisgICAgICBkZWYuZXh0QXR0cnMgPSBlYTsKKyAgICAgIGRlZnMucHVzaChkZWYp
OwogICAgIH0KLQotICAgIGZ1bmN0aW9uIGZsb2F0X3R5cGUoKSB7Ci0gICAgICBsZXQgcmV0ID0g
IiI7Ci0gICAgICBpZiAoY29uc3VtZSgidW5yZXN0cmljdGVkIikpIHJldCA9ICJ1bnJlc3RyaWN0
ZWQgIjsKLSAgICAgIGlmIChjb25zdW1lKCJmbG9hdCIpKSByZXR1cm4gcmV0ICsgImZsb2F0IjsK
LSAgICAgIGlmIChjb25zdW1lKCJkb3VibGUiKSkgcmV0dXJuIHJldCArICJkb3VibGUiOwotICAg
ICAgaWYgKHJldCkgZXJyb3IoIkZhaWxlZCB0byBwYXJzZSBmbG9hdCB0eXBlIik7CisgICAgY29u
c3QgZW9mID0gY29uc3VtZSgiZW9mIik7CisgICAgaWYgKG9wdGlvbnMuY29uY3JldGUpIHsKKyAg
ICAgIGRlZnMucHVzaChlb2YpOwogICAgIH0KKyAgICByZXR1cm4gZGVmczsKKyAgfQorICBjb25z
dCByZXMgPSBkZWZpbml0aW9ucygpOworICBpZiAodG9rZW5pc2VyLnBvc2l0aW9uIDwgc291cmNl
Lmxlbmd0aCkgZXJyb3IoIlVucmVjb2duaXNlZCB0b2tlbnMiKTsKKyAgcmV0dXJuIHJlczsKK30K
KworZnVuY3Rpb24gcGFyc2Uoc3RyLCBvcHRpb25zID0ge30pIHsKKyAgY29uc3QgdG9rZW5pc2Vy
ID0gbmV3IF90b2tlbmlzZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siVG9rZW5p
c2VyIl0oc3RyKTsKKyAgaWYgKHR5cGVvZiBvcHRpb25zLnNvdXJjZU5hbWUgIT09ICJ1bmRlZmlu
ZWQiKSB7CisgICAgdG9rZW5pc2VyLnNvdXJjZS5uYW1lID0gb3B0aW9ucy5zb3VyY2VOYW1lOwor
ICB9CisgIHJldHVybiBwYXJzZUJ5VG9rZW5zKHRva2VuaXNlciwgb3B0aW9ucyk7Cit9CiAKLSAg
ICBmdW5jdGlvbiBwcmltaXRpdmVfdHlwZSgpIHsKLSAgICAgIGNvbnN0IG51bV90eXBlID0gaW50
ZWdlcl90eXBlKCkgfHwgZmxvYXRfdHlwZSgpOwotICAgICAgaWYgKG51bV90eXBlKSByZXR1cm4g
bnVtX3R5cGU7Ci0gICAgICBpZiAoY29uc3VtZSgiYm9vbGVhbiIpKSByZXR1cm4gImJvb2xlYW4i
OwotICAgICAgaWYgKGNvbnN1bWUoImJ5dGUiKSkgcmV0dXJuICJieXRlIjsKLSAgICAgIGlmIChj
b25zdW1lKCJvY3RldCIpKSByZXR1cm4gIm9jdGV0IjsKLSAgICB9CiAKLSAgICBmdW5jdGlvbiBj
b25zdF92YWx1ZSgpIHsKLSAgICAgIGlmIChjb25zdW1lKCJ0cnVlIikpIHJldHVybiB7IHR5cGU6
ICJib29sZWFuIiwgdmFsdWU6IHRydWUgfTsKLSAgICAgIGlmIChjb25zdW1lKCJmYWxzZSIpKSBy
ZXR1cm4geyB0eXBlOiAiYm9vbGVhbiIsIHZhbHVlOiBmYWxzZSB9OwotICAgICAgaWYgKGNvbnN1
bWUoIm51bGwiKSkgcmV0dXJuIHsgdHlwZTogIm51bGwiIH07Ci0gICAgICBpZiAoY29uc3VtZSgi
SW5maW5pdHkiKSkgcmV0dXJuIHsgdHlwZTogIkluZmluaXR5IiwgbmVnYXRpdmU6IGZhbHNlIH07
Ci0gICAgICBpZiAoY29uc3VtZSgiLUluZmluaXR5IikpIHJldHVybiB7IHR5cGU6ICJJbmZpbml0
eSIsIG5lZ2F0aXZlOiB0cnVlIH07Ci0gICAgICBpZiAoY29uc3VtZSgiTmFOIikpIHJldHVybiB7
IHR5cGU6ICJOYU4iIH07Ci0gICAgICBjb25zdCByZXQgPSBjb25zdW1lKEZMT0FULCBJTlQpOwot
ICAgICAgaWYgKHJldCkgcmV0dXJuIHsgdHlwZTogIm51bWJlciIsIHZhbHVlOiByZXQudmFsdWUg
fTsKLSAgICB9CisvKioqLyB9KSwKKy8qIDIgKi8KKy8qKiovIChmdW5jdGlvbihtb2R1bGUsIF9f
d2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pIHsKIAotICAgIGZ1bmN0aW9u
IHR5cGVfc3VmZml4KG9iaikgewotICAgICAgb2JqLm51bGxhYmxlID0gISFjb25zdW1lKCI/Iik7
Ci0gICAgICBpZiAocHJvYmUoIj8iKSkgZXJyb3IoIkNhbid0IG51bGxhYmxlIG1vcmUgdGhhbiBv
bmNlIik7CisidXNlIHN0cmljdCI7CitfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4
cG9ydHNfXyk7CisvKiBoYXJtb255IGV4cG9ydCAoYmluZGluZykgKi8gX193ZWJwYWNrX3JlcXVp
cmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sICJzdHJpbmdUeXBlcyIsIGZ1bmN0aW9uKCkgeyBy
ZXR1cm4gc3RyaW5nVHlwZXM7IH0pOworLyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9f
d2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAiYXJndW1lbnROYW1lS2V5
d29yZHMiLCBmdW5jdGlvbigpIHsgcmV0dXJuIGFyZ3VtZW50TmFtZUtleXdvcmRzOyB9KTsKKy8q
IGhhcm1vbnkgZXhwb3J0IChiaW5kaW5nKSAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJw
YWNrX2V4cG9ydHNfXywgIlRva2VuaXNlciIsIGZ1bmN0aW9uKCkgeyByZXR1cm4gVG9rZW5pc2Vy
OyB9KTsKKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfZXJyb3JfanNfX1dFQlBBQ0tfSU1QT1JU
RURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMyk7CisvKiBoYXJtb255IGltcG9y
dCAqLyB2YXIgX3Byb2R1Y3Rpb25zX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxF
XzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oNCk7CisKKworCisvLyBUaGVzZSByZWd1bGFyIGV4
cHJlc3Npb25zIHVzZSB0aGUgc3RpY2t5IGZsYWcgc28gdGhleSB3aWxsIG9ubHkgbWF0Y2ggYXQK
Ky8vIHRoZSBjdXJyZW50IGxvY2F0aW9uIChpZS4gdGhlIG9mZnNldCBvZiBsYXN0SW5kZXgpLgor
Y29uc3QgdG9rZW5SZSA9IHsKKyAgLy8gVGhpcyBleHByZXNzaW9uIHVzZXMgYSBsb29rYWhlYWQg
YXNzZXJ0aW9uIHRvIGNhdGNoIGZhbHNlIG1hdGNoZXMKKyAgLy8gYWdhaW5zdCBpbnRlZ2VycyBl
YXJseS4KKyAgImRlY2ltYWwiOiAvLT8oPz1bMC05XSpcLnxbMC05XStbZUVdKSgoWzAtOV0rXC5b
MC05XSp8WzAtOV0qXC5bMC05XSspKFtFZV1bLStdP1swLTldKyk/fFswLTldK1tFZV1bLStdP1sw
LTldKykveSwKKyAgImludGVnZXIiOiAvLT8oMChbWHhdWzAtOUEtRmEtZl0rfFswLTddKil8WzEt
OV1bMC05XSopL3ksCisgICJpZGVudGlmaWVyIjogL1tfLV0/W0EtWmEtel1bMC05QS1aX2Etei1d
Ki95LAorICAic3RyaW5nIjogLyJbXiJdKiIveSwKKyAgIndoaXRlc3BhY2UiOiAvW1x0XG5cciBd
Ky95LAorICAiY29tbWVudCI6IC8oKFwvKFwvLip8XCooW14qXXxcKlteL10pKlwqXC8pW1x0XG5c
ciBdKikrKS95LAorICAib3RoZXIiOiAvW15cdFxuXHIgMC05QS1aYS16XS95Cit9OworCitjb25z
dCBzdHJpbmdUeXBlcyA9IFsKKyAgIkJ5dGVTdHJpbmciLAorICAiRE9NU3RyaW5nIiwKKyAgIlVT
VlN0cmluZyIKK107CisKK2NvbnN0IGFyZ3VtZW50TmFtZUtleXdvcmRzID0gWworICAiYXN5bmMi
LAorICAiYXR0cmlidXRlIiwKKyAgImNhbGxiYWNrIiwKKyAgImNvbnN0IiwKKyAgImNvbnN0cnVj
dG9yIiwKKyAgImRlbGV0ZXIiLAorICAiZGljdGlvbmFyeSIsCisgICJlbnVtIiwKKyAgImdldHRl
ciIsCisgICJpbmNsdWRlcyIsCisgICJpbmhlcml0IiwKKyAgImludGVyZmFjZSIsCisgICJpdGVy
YWJsZSIsCisgICJtYXBsaWtlIiwKKyAgIm5hbWVzcGFjZSIsCisgICJwYXJ0aWFsIiwKKyAgInJl
cXVpcmVkIiwKKyAgInNldGxpa2UiLAorICAic2V0dGVyIiwKKyAgInN0YXRpYyIsCisgICJzdHJp
bmdpZmllciIsCisgICJ0eXBlZGVmIiwKKyAgInVucmVzdHJpY3RlZCIKK107CisKK2NvbnN0IG5v
blJlZ2V4VGVybWluYWxzID0gWworICAiLUluZmluaXR5IiwKKyAgIkZyb3plbkFycmF5IiwKKyAg
IkluZmluaXR5IiwKKyAgIk5hTiIsCisgICJQcm9taXNlIiwKKyAgImFzeW5jIiwKKyAgImJvb2xl
YW4iLAorICAiYnl0ZSIsCisgICJjb25zdHJ1Y3RvciIsCisgICJkb3VibGUiLAorICAiZmFsc2Ui
LAorICAiZmxvYXQiLAorICAibG9uZyIsCisgICJtaXhpbiIsCisgICJudWxsIiwKKyAgIm9jdGV0
IiwKKyAgIm9wdGlvbmFsIiwKKyAgIm9yIiwKKyAgInJlYWRvbmx5IiwKKyAgInJlY29yZCIsCisg
ICJzZXF1ZW5jZSIsCisgICJzaG9ydCIsCisgICJ0cnVlIiwKKyAgInVuc2lnbmVkIiwKKyAgInZv
aWQiCitdLmNvbmNhdChhcmd1bWVudE5hbWVLZXl3b3Jkcywgc3RyaW5nVHlwZXMpOworCitjb25z
dCBwdW5jdHVhdGlvbnMgPSBbCisgICIoIiwKKyAgIikiLAorICAiLCIsCisgICIuLi4iLAorICAi
OiIsCisgICI7IiwKKyAgIjwiLAorICAiPSIsCisgICI+IiwKKyAgIj8iLAorICAiWyIsCisgICJd
IiwKKyAgInsiLAorICAifSIKK107CisKK2NvbnN0IHJlc2VydmVkID0gWworICAvLyAiY29uc3Ry
dWN0b3IiIGlzIG5vdyBhIGtleXdvcmQKKyAgIl9jb25zdHJ1Y3RvciIsCisgICJ0b1N0cmluZyIs
CisgICJfdG9TdHJpbmciLAorXTsKKworLyoqCisgKiBAcGFyYW0ge3N0cmluZ30gc3RyCisgKi8K
K2Z1bmN0aW9uIHRva2VuaXNlKHN0cikgeworICBjb25zdCB0b2tlbnMgPSBbXTsKKyAgbGV0IGxh
c3RDaGFySW5kZXggPSAwOworICBsZXQgdHJpdmlhID0gIiI7CisgIGxldCBsaW5lID0gMTsKKyAg
bGV0IGluZGV4ID0gMDsKKyAgd2hpbGUgKGxhc3RDaGFySW5kZXggPCBzdHIubGVuZ3RoKSB7Cisg
ICAgY29uc3QgbmV4dENoYXIgPSBzdHIuY2hhckF0KGxhc3RDaGFySW5kZXgpOworICAgIGxldCBy
ZXN1bHQgPSAtMTsKKworICAgIGlmICgvW1x0XG5cciBdLy50ZXN0KG5leHRDaGFyKSkgeworICAg
ICAgcmVzdWx0ID0gYXR0ZW1wdFRva2VuTWF0Y2goIndoaXRlc3BhY2UiLCB7IG5vRmx1c2hUcml2
aWE6IHRydWUgfSk7CisgICAgfSBlbHNlIGlmIChuZXh0Q2hhciA9PT0gJy8nKSB7CisgICAgICBy
ZXN1bHQgPSBhdHRlbXB0VG9rZW5NYXRjaCgiY29tbWVudCIsIHsgbm9GbHVzaFRyaXZpYTogdHJ1
ZSB9KTsKICAgICB9CiAKLSAgICBmdW5jdGlvbiBnZW5lcmljX3R5cGUodHlwZU5hbWUpIHsKLSAg
ICAgIGNvbnN0IG5hbWUgPSBjb25zdW1lKCJGcm96ZW5BcnJheSIsICJQcm9taXNlIiwgInNlcXVl
bmNlIiwgInJlY29yZCIpOwotICAgICAgaWYgKCFuYW1lKSB7Ci0gICAgICAgIHJldHVybjsKLSAg
ICAgIH0KLSAgICAgIGNvbnN0IHJldCA9IHsgZ2VuZXJpYzogbmFtZS50eXBlIH07Ci0gICAgICBj
b25zdW1lKCI8IikgfHwgZXJyb3IoYE5vIG9wZW5pbmcgYnJhY2tldCBhZnRlciAke25hbWUudHlw
ZX1gKTsKLSAgICAgIHN3aXRjaCAobmFtZS50eXBlKSB7Ci0gICAgICAgIGNhc2UgIlByb21pc2Ui
OgotICAgICAgICAgIGlmIChwcm9iZSgiWyIpKSBlcnJvcigiUHJvbWlzZSB0eXBlIGNhbm5vdCBo
YXZlIGV4dGVuZGVkIGF0dHJpYnV0ZSIpOwotICAgICAgICAgIHJldC5pZGxUeXBlID0gcmV0dXJu
X3R5cGUodHlwZU5hbWUpOwotICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlICJzZXF1ZW5j
ZSI6Ci0gICAgICAgIGNhc2UgIkZyb3plbkFycmF5IjoKLSAgICAgICAgICByZXQuaWRsVHlwZSA9
IHR5cGVfd2l0aF9leHRlbmRlZF9hdHRyaWJ1dGVzKHR5cGVOYW1lKTsKLSAgICAgICAgICBicmVh
azsKLSAgICAgICAgY2FzZSAicmVjb3JkIjoKLSAgICAgICAgICBpZiAocHJvYmUoIlsiKSkgZXJy
b3IoIlJlY29yZCBrZXkgY2Fubm90IGhhdmUgZXh0ZW5kZWQgYXR0cmlidXRlIik7Ci0gICAgICAg
ICAgcmV0LmlkbFR5cGUgPSBbXTsKLSAgICAgICAgICBjb25zdCBrZXlUeXBlID0gY29uc3VtZSgu
Li5zdHJpbmdUeXBlcyk7Ci0gICAgICAgICAgaWYgKCFrZXlUeXBlKSBlcnJvcihgUmVjb3JkIGtl
eSBtdXN0IGJlIGEgc3RyaW5nIHR5cGVgKTsKLSAgICAgICAgICByZXQuaWRsVHlwZS5wdXNoKE9i
amVjdC5hc3NpZ24oeyB0eXBlOiB0eXBlTmFtZSB9LCBFTVBUWV9JRExUWVBFLCB7IGlkbFR5cGU6
IGtleVR5cGUudmFsdWUgfSkpOwotICAgICAgICAgIGNvbnN1bWUoIiwiKSB8fCBlcnJvcigiTWlz
c2luZyBjb21tYSBhZnRlciByZWNvcmQga2V5IHR5cGUiKTsKLSAgICAgICAgICBjb25zdCB2YWx1
ZVR5cGUgPSB0eXBlX3dpdGhfZXh0ZW5kZWRfYXR0cmlidXRlcyh0eXBlTmFtZSkgfHwgZXJyb3Io
IkVycm9yIHBhcnNpbmcgZ2VuZXJpYyB0eXBlIHJlY29yZCIpOwotICAgICAgICAgIHJldC5pZGxU
eXBlLnB1c2godmFsdWVUeXBlKTsKLSAgICAgICAgICBicmVhazsKKyAgICBpZiAocmVzdWx0ICE9
PSAtMSkgeworICAgICAgY29uc3QgY3VycmVudFRyaXZpYSA9IHRva2Vucy5wb3AoKS52YWx1ZTsK
KyAgICAgIGxpbmUgKz0gKGN1cnJlbnRUcml2aWEubWF0Y2goL1xuL2cpIHx8IFtdKS5sZW5ndGg7
CisgICAgICB0cml2aWEgKz0gY3VycmVudFRyaXZpYTsKKyAgICAgIGluZGV4IC09IDE7CisgICAg
fSBlbHNlIGlmICgvWy0wLTkuQS1aX2Etel0vLnRlc3QobmV4dENoYXIpKSB7CisgICAgICByZXN1
bHQgPSBhdHRlbXB0VG9rZW5NYXRjaCgiZGVjaW1hbCIpOworICAgICAgaWYgKHJlc3VsdCA9PT0g
LTEpIHsKKyAgICAgICAgcmVzdWx0ID0gYXR0ZW1wdFRva2VuTWF0Y2goImludGVnZXIiKTsKICAg
ICAgIH0KLSAgICAgIGlmICghcmV0LmlkbFR5cGUpIGVycm9yKGBFcnJvciBwYXJzaW5nIGdlbmVy
aWMgdHlwZSAke25hbWUudHlwZX1gKTsKLSAgICAgIGNvbnN1bWUoIj4iKSB8fCBlcnJvcihgTWlz
c2luZyBjbG9zaW5nIGJyYWNrZXQgYWZ0ZXIgJHtuYW1lLnR5cGV9YCk7Ci0gICAgICBpZiAobmFt
ZS50eXBlID09PSAiUHJvbWlzZSIgJiYgcHJvYmUoIj8iKSkgewotICAgICAgICBlcnJvcigiUHJv
bWlzZSB0eXBlIGNhbm5vdCBiZSBudWxsYWJsZSIpOworICAgICAgaWYgKHJlc3VsdCA9PT0gLTEp
IHsKKyAgICAgICAgcmVzdWx0ID0gYXR0ZW1wdFRva2VuTWF0Y2goImlkZW50aWZpZXIiKTsKKyAg
ICAgICAgY29uc3QgbGFzdEluZGV4ID0gdG9rZW5zLmxlbmd0aCAtIDE7CisgICAgICAgIGNvbnN0
IHRva2VuID0gdG9rZW5zW2xhc3RJbmRleF07CisgICAgICAgIGlmIChyZXN1bHQgIT09IC0xKSB7
CisgICAgICAgICAgaWYgKHJlc2VydmVkLmluY2x1ZGVzKHRva2VuLnZhbHVlKSkgeworICAgICAg
ICAgICAgY29uc3QgbWVzc2FnZSA9IGAke09iamVjdChfcHJvZHVjdGlvbnNfaGVscGVyc19qc19f
V0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fWyJ1bmVzY2FwZSJdKSh0b2tlbi52YWx1ZSl9IGlz
IGEgcmVzZXJ2ZWQgaWRlbnRpZmllciBhbmQgbXVzdCBub3QgYmUgdXNlZC5gOworICAgICAgICAg
ICAgdGhyb3cgbmV3IFdlYklETFBhcnNlRXJyb3IoT2JqZWN0KF9lcnJvcl9qc19fV0VCUEFDS19J
TVBPUlRFRF9NT0RVTEVfMF9fWyJzeW50YXhFcnJvciJdKSh0b2tlbnMsIGxhc3RJbmRleCwgbnVs
bCwgbWVzc2FnZSkpOworICAgICAgICAgIH0gZWxzZSBpZiAobm9uUmVnZXhUZXJtaW5hbHMuaW5j
bHVkZXModG9rZW4udmFsdWUpKSB7CisgICAgICAgICAgICB0b2tlbi50eXBlID0gdG9rZW4udmFs
dWU7CisgICAgICAgICAgfQorICAgICAgICB9CiAgICAgICB9Ci0gICAgICB0eXBlX3N1ZmZpeChy
ZXQpOwotICAgICAgcmV0dXJuIHJldDsKKyAgICB9IGVsc2UgaWYgKG5leHRDaGFyID09PSAnIicp
IHsKKyAgICAgIHJlc3VsdCA9IGF0dGVtcHRUb2tlbk1hdGNoKCJzdHJpbmciKTsKICAgICB9CiAK
LSAgICBmdW5jdGlvbiBzaW5nbGVfdHlwZSh0eXBlTmFtZSkgewotICAgICAgY29uc3QgcmV0ID0g
T2JqZWN0LmFzc2lnbih7IHR5cGU6IHR5cGVOYW1lIHx8IG51bGwgfSwgRU1QVFlfSURMVFlQRSk7
Ci0gICAgICBjb25zdCBnZW5lcmljID0gZ2VuZXJpY190eXBlKHR5cGVOYW1lKTsKLSAgICAgIGlm
IChnZW5lcmljKSB7Ci0gICAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKHJldCwgZ2VuZXJpYyk7
CisgICAgZm9yIChjb25zdCBwdW5jdHVhdGlvbiBvZiBwdW5jdHVhdGlvbnMpIHsKKyAgICAgIGlm
IChzdHIuc3RhcnRzV2l0aChwdW5jdHVhdGlvbiwgbGFzdENoYXJJbmRleCkpIHsKKyAgICAgICAg
dG9rZW5zLnB1c2goeyB0eXBlOiBwdW5jdHVhdGlvbiwgdmFsdWU6IHB1bmN0dWF0aW9uLCB0cml2
aWEsIGxpbmUsIGluZGV4IH0pOworICAgICAgICB0cml2aWEgPSAiIjsKKyAgICAgICAgbGFzdENo
YXJJbmRleCArPSBwdW5jdHVhdGlvbi5sZW5ndGg7CisgICAgICAgIHJlc3VsdCA9IGxhc3RDaGFy
SW5kZXg7CisgICAgICAgIGJyZWFrOwogICAgICAgfQotICAgICAgY29uc3QgcHJpbSA9IHByaW1p
dGl2ZV90eXBlKCk7Ci0gICAgICBsZXQgbmFtZTsKLSAgICAgIGlmIChwcmltKSB7Ci0gICAgICAg
IHJldC5pZGxUeXBlID0gcHJpbTsKLSAgICAgIH0gZWxzZSBpZiAobmFtZSA9IGNvbnN1bWUoSUQs
IC4uLnN0cmluZ1R5cGVzKSkgewotICAgICAgICByZXQuaWRsVHlwZSA9IG5hbWUudmFsdWU7Ci0g
ICAgICAgIGlmIChwcm9iZSgiPCIpKSBlcnJvcihgVW5zdXBwb3J0ZWQgZ2VuZXJpYyB0eXBlICR7
bmFtZS52YWx1ZX1gKTsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIHJldHVybjsKLSAgICAgIH0K
LSAgICAgIHR5cGVfc3VmZml4KHJldCk7Ci0gICAgICBpZiAocmV0Lm51bGxhYmxlICYmIHJldC5p
ZGxUeXBlID09PSAiYW55IikgZXJyb3IoIlR5cGUgYW55IGNhbm5vdCBiZSBtYWRlIG51bGxhYmxl
Iik7Ci0gICAgICByZXR1cm4gcmV0OwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHVuaW9uX3R5cGUo
dHlwZU5hbWUpIHsKLSAgICAgIGlmICghY29uc3VtZSgiKCIpKSByZXR1cm47Ci0gICAgICBjb25z
dCByZXQgPSBPYmplY3QuYXNzaWduKHsgdHlwZTogdHlwZU5hbWUgfHwgbnVsbCB9LCBFTVBUWV9J
RExUWVBFLCB7IHVuaW9uOiB0cnVlLCBpZGxUeXBlOiBbXSB9KTsKLSAgICAgIGRvIHsKLSAgICAg
ICAgY29uc3QgdHlwID0gdHlwZV93aXRoX2V4dGVuZGVkX2F0dHJpYnV0ZXMoKSB8fCBlcnJvcigi
Tm8gdHlwZSBhZnRlciBvcGVuIHBhcmVudGhlc2lzIG9yICdvcicgaW4gdW5pb24gdHlwZSIpOwot
ICAgICAgICByZXQuaWRsVHlwZS5wdXNoKHR5cCk7Ci0gICAgICB9IHdoaWxlIChjb25zdW1lKCJv
ciIpKTsKLSAgICAgIGlmIChyZXQuaWRsVHlwZS5sZW5ndGggPCAyKSB7Ci0gICAgICAgIGVycm9y
KCJBdCBsZWFzdCB0d28gdHlwZXMgYXJlIGV4cGVjdGVkIGluIGEgdW5pb24gdHlwZSBidXQgZm91
bmQgbGVzcyIpOwotICAgICAgfQotICAgICAgaWYgKCFjb25zdW1lKCIpIikpIGVycm9yKCJVbnRl
cm1pbmF0ZWQgdW5pb24gdHlwZSIpOwotICAgICAgdHlwZV9zdWZmaXgocmV0KTsKLSAgICAgIHJl
dHVybiByZXQ7CiAgICAgfQogCi0gICAgZnVuY3Rpb24gdHlwZSh0eXBlTmFtZSkgewotICAgICAg
cmV0dXJuIHNpbmdsZV90eXBlKHR5cGVOYW1lKSB8fCB1bmlvbl90eXBlKHR5cGVOYW1lKTsKKyAg
ICAvLyBvdGhlciBhcyB0aGUgbGFzdCB0cnkKKyAgICBpZiAocmVzdWx0ID09PSAtMSkgeworICAg
ICAgcmVzdWx0ID0gYXR0ZW1wdFRva2VuTWF0Y2goIm90aGVyIik7CiAgICAgfQotCi0gICAgZnVu
Y3Rpb24gdHlwZV93aXRoX2V4dGVuZGVkX2F0dHJpYnV0ZXModHlwZU5hbWUpIHsKLSAgICAgIGNv
bnN0IGV4dEF0dHJzID0gZXh0ZW5kZWRfYXR0cnMoKTsKLSAgICAgIGNvbnN0IHJldCA9IHNpbmds
ZV90eXBlKHR5cGVOYW1lKSB8fCB1bmlvbl90eXBlKHR5cGVOYW1lKTsKLSAgICAgIGlmIChleHRB
dHRycy5sZW5ndGggJiYgcmV0KSByZXQuZXh0QXR0cnMgPSBleHRBdHRyczsKLSAgICAgIHJldHVy
biByZXQ7CisgICAgaWYgKHJlc3VsdCA9PT0gLTEpIHsKKyAgICAgIHRocm93IG5ldyBFcnJvcigi
VG9rZW4gc3RyZWFtIG5vdCBwcm9ncmVzc2luZyIpOwogICAgIH0KKyAgICBsYXN0Q2hhckluZGV4
ID0gcmVzdWx0OworICAgIGluZGV4ICs9IDE7CisgIH0KIAotICAgIGZ1bmN0aW9uIGFyZ3VtZW50
KCkgewotICAgICAgY29uc3Qgc3RhcnRfcG9zaXRpb24gPSBjb25zdW1lX3Bvc2l0aW9uOwotICAg
ICAgY29uc3QgcmV0ID0geyBvcHRpb25hbDogZmFsc2UsIHZhcmlhZGljOiBmYWxzZSwgZGVmYXVs
dDogbnVsbCB9OwotICAgICAgcmV0LmV4dEF0dHJzID0gZXh0ZW5kZWRfYXR0cnMoKTsKLSAgICAg
IGNvbnN0IG9wdF90b2tlbiA9IGNvbnN1bWUoIm9wdGlvbmFsIik7Ci0gICAgICBpZiAob3B0X3Rv
a2VuKSB7Ci0gICAgICAgIHJldC5vcHRpb25hbCA9IHRydWU7Ci0gICAgICB9Ci0gICAgICByZXQu
aWRsVHlwZSA9IHR5cGVfd2l0aF9leHRlbmRlZF9hdHRyaWJ1dGVzKCJhcmd1bWVudC10eXBlIik7
Ci0gICAgICBpZiAoIXJldC5pZGxUeXBlKSB7Ci0gICAgICAgIHVuY29uc3VtZShzdGFydF9wb3Np
dGlvbik7Ci0gICAgICAgIHJldHVybjsKLSAgICAgIH0KLSAgICAgIGlmICghcmV0Lm9wdGlvbmFs
ICYmIGNvbnN1bWUoIi4uLiIpKSB7Ci0gICAgICAgIHJldC52YXJpYWRpYyA9IHRydWU7Ci0gICAg
ICB9Ci0gICAgICBjb25zdCBuYW1lID0gY29uc3VtZShJRCwgLi4uYXJndW1lbnROYW1lS2V5d29y
ZHMpOwotICAgICAgaWYgKCFuYW1lKSB7Ci0gICAgICAgIHVuY29uc3VtZShzdGFydF9wb3NpdGlv
bik7Ci0gICAgICAgIHJldHVybjsKKyAgLy8gcmVtYWluaW5nIHRyaXZpYSBhcyBlb2YKKyAgdG9r
ZW5zLnB1c2goeworICAgIHR5cGU6ICJlb2YiLAorICAgIHZhbHVlOiAiIiwKKyAgICB0cml2aWEK
KyAgfSk7CisKKyAgcmV0dXJuIHRva2VuczsKKworICAvKioKKyAgICogQHBhcmFtIHtrZXlvZiB0
b2tlblJlfSB0eXBlCisgICAqIEBwYXJhbSB7b2JqZWN0fSBbb3B0aW9uc10KKyAgICogQHBhcmFt
IHtib29sZWFufSBbb3B0aW9ucy5ub0ZsdXNoVHJpdmlhXQorICAgKi8KKyAgZnVuY3Rpb24gYXR0
ZW1wdFRva2VuTWF0Y2godHlwZSwgeyBub0ZsdXNoVHJpdmlhIH0gPSB7fSkgeworICAgIGNvbnN0
IHJlID0gdG9rZW5SZVt0eXBlXTsKKyAgICByZS5sYXN0SW5kZXggPSBsYXN0Q2hhckluZGV4Owor
ICAgIGNvbnN0IHJlc3VsdCA9IHJlLmV4ZWMoc3RyKTsKKyAgICBpZiAocmVzdWx0KSB7CisgICAg
ICB0b2tlbnMucHVzaCh7IHR5cGUsIHZhbHVlOiByZXN1bHRbMF0sIHRyaXZpYSwgbGluZSwgaW5k
ZXggfSk7CisgICAgICBpZiAoIW5vRmx1c2hUcml2aWEpIHsKKyAgICAgICAgdHJpdmlhID0gIiI7
CiAgICAgICB9Ci0gICAgICByZXQubmFtZSA9IHVuZXNjYXBlKG5hbWUudmFsdWUpOwotICAgICAg
cmV0LmVzY2FwZWROYW1lID0gbmFtZS52YWx1ZTsKLSAgICAgIGlmIChyZXQub3B0aW9uYWwpIHsK
LSAgICAgICAgcmV0LmRlZmF1bHQgPSBkZWZhdWx0XygpIHx8IG51bGw7Ci0gICAgICB9Ci0gICAg
ICByZXR1cm4gcmV0OworICAgICAgcmV0dXJuIHJlLmxhc3RJbmRleDsKICAgICB9CisgICAgcmV0
dXJuIC0xOworICB9Cit9CisKK2NsYXNzIFRva2VuaXNlciB7CisgIC8qKgorICAgKiBAcGFyYW0g
e3N0cmluZ30gaWRsCisgICAqLworICBjb25zdHJ1Y3RvcihpZGwpIHsKKyAgICB0aGlzLnNvdXJj
ZSA9IHRva2VuaXNlKGlkbCk7CisgICAgdGhpcy5wb3NpdGlvbiA9IDA7CisgIH0KIAotICAgIGZ1
bmN0aW9uIGFyZ3VtZW50X2xpc3QoKSB7Ci0gICAgICBjb25zdCByZXQgPSBbXTsKLSAgICAgIGNv
bnN0IGFyZyA9IGFyZ3VtZW50KCk7Ci0gICAgICBpZiAoIWFyZykgcmV0dXJuIHJldDsKLSAgICAg
IHJldC5wdXNoKGFyZyk7Ci0gICAgICB3aGlsZSAodHJ1ZSkgewotICAgICAgICBpZiAoIWNvbnN1
bWUoIiwiKSkgcmV0dXJuIHJldDsKLSAgICAgICAgY29uc3Qgbnh0ID0gYXJndW1lbnQoKSB8fCBl
cnJvcigiVHJhaWxpbmcgY29tbWEgaW4gYXJndW1lbnRzIGxpc3QiKTsKLSAgICAgICAgcmV0LnB1
c2gobnh0KTsKLSAgICAgIH0KKyAgLyoqCisgICAqIEBwYXJhbSB7c3RyaW5nfSBtZXNzYWdlCisg
ICAqLworICBlcnJvcihtZXNzYWdlKSB7CisgICAgdGhyb3cgbmV3IFdlYklETFBhcnNlRXJyb3Io
T2JqZWN0KF9lcnJvcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJzeW50YXhFcnJv
ciJdKSh0aGlzLnNvdXJjZSwgdGhpcy5wb3NpdGlvbiwgdGhpcy5jdXJyZW50LCBtZXNzYWdlKSk7
CisgIH0KKworICAvKioKKyAgICogQHBhcmFtIHtzdHJpbmd9IHR5cGUKKyAgICovCisgIHByb2Jl
KHR5cGUpIHsKKyAgICByZXR1cm4gdGhpcy5zb3VyY2UubGVuZ3RoID4gdGhpcy5wb3NpdGlvbiAm
JiB0aGlzLnNvdXJjZVt0aGlzLnBvc2l0aW9uXS50eXBlID09PSB0eXBlOworICB9CisKKyAgLyoq
CisgICAqIEBwYXJhbSAgey4uLnN0cmluZ30gY2FuZGlkYXRlcworICAgKi8KKyAgY29uc3VtZSgu
Li5jYW5kaWRhdGVzKSB7CisgICAgZm9yIChjb25zdCB0eXBlIG9mIGNhbmRpZGF0ZXMpIHsKKyAg
ICAgIGlmICghdGhpcy5wcm9iZSh0eXBlKSkgY29udGludWU7CisgICAgICBjb25zdCB0b2tlbiA9
IHRoaXMuc291cmNlW3RoaXMucG9zaXRpb25dOworICAgICAgdGhpcy5wb3NpdGlvbisrOworICAg
ICAgcmV0dXJuIHRva2VuOwogICAgIH0KKyAgfQogCi0gICAgZnVuY3Rpb24gc2ltcGxlX2V4dGVu
ZGVkX2F0dHIoKSB7Ci0gICAgICBjb25zdCBuYW1lID0gY29uc3VtZShJRCk7Ci0gICAgICBpZiAo
IW5hbWUpIHJldHVybjsKLSAgICAgIGNvbnN0IHJldCA9IHsKLSAgICAgICAgbmFtZTogbmFtZS52
YWx1ZSwKLSAgICAgICAgYXJndW1lbnRzOiBudWxsLAotICAgICAgICB0eXBlOiAiZXh0ZW5kZWQt
YXR0cmlidXRlIiwKLSAgICAgICAgcmhzOiBudWxsCi0gICAgICB9OwotICAgICAgY29uc3QgZXEg
PSBjb25zdW1lKCI9Iik7Ci0gICAgICBpZiAoZXEpIHsKLSAgICAgICAgcmV0LnJocyA9IGNvbnN1
bWUoSUQsIEZMT0FULCBJTlQsIFNUUik7Ci0gICAgICAgIGlmIChyZXQucmhzKSB7Ci0gICAgICAg
ICAgLy8gTm8gdHJpdmlhIGV4cG9zdXJlIHlldAotICAgICAgICAgIHJldC5yaHMudHJpdmlhID0g
dW5kZWZpbmVkOwotICAgICAgICB9Ci0gICAgICB9Ci0gICAgICBpZiAoY29uc3VtZSgiKCIpKSB7
Ci0gICAgICAgIGlmIChlcSAmJiAhcmV0LnJocykgewotICAgICAgICAgIC8vIFtFeHBvc2VkPShX
aW5kb3csV29ya2VyKV0KLSAgICAgICAgICByZXQucmhzID0gewotICAgICAgICAgICAgdHlwZTog
ImlkZW50aWZpZXItbGlzdCIsCi0gICAgICAgICAgICB2YWx1ZTogaWRlbnRpZmllcnMoKQotICAg
ICAgICAgIH07Ci0gICAgICAgIH0KLSAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgLy8gW05hbWVk
Q29uc3RydWN0b3I9QXVkaW8oRE9NU3RyaW5nIHNyYyldIG9yIFtDb25zdHJ1Y3RvcihET01TdHJp
bmcgc3RyKV0KLSAgICAgICAgICByZXQuYXJndW1lbnRzID0gYXJndW1lbnRfbGlzdCgpOwotICAg
ICAgICB9Ci0gICAgICAgIGNvbnN1bWUoIikiKSB8fCBlcnJvcigiVW5leHBlY3RlZCB0b2tlbiBp
biBleHRlbmRlZCBhdHRyaWJ1dGUgYXJndW1lbnQgbGlzdCIpOwotICAgICAgfQotICAgICAgaWYg
KGVxICYmICFyZXQucmhzKSBlcnJvcigiTm8gcmlnaHQgaGFuZCBzaWRlIHRvIGV4dGVuZGVkIGF0
dHJpYnV0ZSBhc3NpZ25tZW50Iik7Ci0gICAgICByZXR1cm4gcmV0OwotICAgIH0KLQotICAgIC8v
IE5vdGU6IHdlIHBhcnNlIHNvbWV0aGluZyBzaW1wbGVyIHRoYW4gdGhlIG9mZmljaWFsIHN5bnRh
eC4gSXQncyBhbGwgdGhhdCBldmVyCi0gICAgLy8gc2VlbXMgdG8gYmUgdXNlZAotICAgIGZ1bmN0
aW9uIGV4dGVuZGVkX2F0dHJzKCkgewotICAgICAgY29uc3QgZWFzID0gW107Ci0gICAgICBpZiAo
IWNvbnN1bWUoIlsiKSkgcmV0dXJuIGVhczsKLSAgICAgIGVhc1swXSA9IHNpbXBsZV9leHRlbmRl
ZF9hdHRyKCkgfHwgZXJyb3IoIkV4dGVuZGVkIGF0dHJpYnV0ZSB3aXRoIG5vdCBjb250ZW50Iik7
Ci0gICAgICB3aGlsZSAoY29uc3VtZSgiLCIpKSB7Ci0gICAgICAgIGVhcy5wdXNoKHNpbXBsZV9l
eHRlbmRlZF9hdHRyKCkgfHwgZXJyb3IoIlRyYWlsaW5nIGNvbW1hIGluIGV4dGVuZGVkIGF0dHJp
YnV0ZSIpKTsKLSAgICAgIH0KLSAgICAgIGNvbnN1bWUoIl0iKSB8fCBlcnJvcigiTm8gZW5kIG9m
IGV4dGVuZGVkIGF0dHJpYnV0ZSIpOwotICAgICAgcmV0dXJuIGVhczsKLSAgICB9Ci0KLSAgICBm
dW5jdGlvbiBkZWZhdWx0XygpIHsKLSAgICAgIGlmIChjb25zdW1lKCI9IikpIHsKLSAgICAgICAg
Y29uc3QgZGVmID0gY29uc3RfdmFsdWUoKTsKLSAgICAgICAgaWYgKGRlZikgewotICAgICAgICAg
IHJldHVybiBkZWY7Ci0gICAgICAgIH0gZWxzZSBpZiAoY29uc3VtZSgiWyIpKSB7Ci0gICAgICAg
ICAgaWYgKCFjb25zdW1lKCJdIikpIGVycm9yKCJEZWZhdWx0IHNlcXVlbmNlIHZhbHVlIG11c3Qg
YmUgZW1wdHkiKTsKLSAgICAgICAgICByZXR1cm4geyB0eXBlOiAic2VxdWVuY2UiLCB2YWx1ZTog
W10gfTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICBjb25zdCBzdHIgPSBjb25zdW1lKFNU
UikgfHwgZXJyb3IoIk5vIHZhbHVlIGZvciBkZWZhdWx0Iik7Ci0gICAgICAgICAgc3RyLnZhbHVl
ID0gc3RyLnZhbHVlLnNsaWNlKDEsIC0xKTsKLSAgICAgICAgICAvLyBObyB0cml2aWEgZXhwb3N1
cmUgeWV0Ci0gICAgICAgICAgc3RyLnRyaXZpYSA9IHVuZGVmaW5lZDsKLSAgICAgICAgICByZXR1
cm4gc3RyOwotICAgICAgICB9Ci0gICAgICB9CisgIC8qKgorICAgKiBAcGFyYW0ge251bWJlcn0g
cG9zaXRpb24KKyAgICovCisgIHVuY29uc3VtZShwb3NpdGlvbikgeworICAgIHRoaXMucG9zaXRp
b24gPSBwb3NpdGlvbjsKKyAgfQorfQorCitjbGFzcyBXZWJJRExQYXJzZUVycm9yIGV4dGVuZHMg
RXJyb3IgeworICBjb25zdHJ1Y3Rvcih7IG1lc3NhZ2UsIGJhcmVNZXNzYWdlLCBjb250ZXh0LCBs
aW5lLCBzb3VyY2VOYW1lLCBpbnB1dCwgdG9rZW5zIH0pIHsKKyAgICBzdXBlcihtZXNzYWdlKTsK
KworICAgIHRoaXMubmFtZSA9ICJXZWJJRExQYXJzZUVycm9yIjsgLy8gbm90IHRvIGJlIG1hbmds
ZWQKKyAgICB0aGlzLmJhcmVNZXNzYWdlID0gYmFyZU1lc3NhZ2U7CisgICAgdGhpcy5jb250ZXh0
ID0gY29udGV4dDsKKyAgICB0aGlzLmxpbmUgPSBsaW5lOworICAgIHRoaXMuc291cmNlTmFtZSA9
IHNvdXJjZU5hbWU7CisgICAgdGhpcy5pbnB1dCA9IGlucHV0OworICAgIHRoaXMudG9rZW5zID0g
dG9rZW5zOworICB9Cit9CisKKworLyoqKi8gfSksCisvKiAzICovCisvKioqLyAoZnVuY3Rpb24o
bW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CisKKyJ1
c2Ugc3RyaWN0IjsKK19fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTsK
Ky8qIGhhcm1vbnkgZXhwb3J0IChiaW5kaW5nKSAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193
ZWJwYWNrX2V4cG9ydHNfXywgInN5bnRheEVycm9yIiwgZnVuY3Rpb24oKSB7IHJldHVybiBzeW50
YXhFcnJvcjsgfSk7CisvKiBoYXJtb255IGV4cG9ydCAoYmluZGluZykgKi8gX193ZWJwYWNrX3Jl
cXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sICJ2YWxpZGF0aW9uRXJyb3IiLCBmdW5jdGlv
bigpIHsgcmV0dXJuIHZhbGlkYXRpb25FcnJvcjsgfSk7CisvKioKKyAqIEBwYXJhbSB7c3RyaW5n
fSB0ZXh0CisgKi8KK2Z1bmN0aW9uIGxhc3RMaW5lKHRleHQpIHsKKyAgY29uc3Qgc3BsaXR0ZWQg
PSB0ZXh0LnNwbGl0KCJcbiIpOworICByZXR1cm4gc3BsaXR0ZWRbc3BsaXR0ZWQubGVuZ3RoIC0g
MV07Cit9CisKKy8qKgorICogQHR5cGVkZWYge29iamVjdH0gV2ViSURMMkVycm9yT3B0aW9ucwor
ICogQHByb3BlcnR5IHsiZXJyb3IiIHwgIndhcm5pbmcifSBsZXZlbAorICogQHByb3BlcnR5IHtG
dW5jdGlvbn0gYXV0b2ZpeAorICoKKyAqIEBwYXJhbSB7c3RyaW5nfSBtZXNzYWdlIGVycm9yIG1l
c3NhZ2UKKyAqIEBwYXJhbSB7IlN5bnRheCIgfCAiVmFsaWRhdGlvbiJ9IGtpbmQgZXJyb3IgdHlw
ZQorICogQHBhcmFtIHtXZWJJREwyRXJyb3JPcHRpb25zfSBbb3B0aW9uc10KKyAqLworZnVuY3Rp
b24gZXJyb3Ioc291cmNlLCBwb3NpdGlvbiwgY3VycmVudCwgbWVzc2FnZSwga2luZCwgeyBsZXZl
bCA9ICJlcnJvciIsIGF1dG9maXggfSA9IHt9KSB7CisgIC8qKgorICAgKiBAcGFyYW0ge251bWJl
cn0gY291bnQKKyAgICovCisgIGZ1bmN0aW9uIHNsaWNlVG9rZW5zKGNvdW50KSB7CisgICAgcmV0
dXJuIGNvdW50ID4gMCA/CisgICAgICBzb3VyY2Uuc2xpY2UocG9zaXRpb24sIHBvc2l0aW9uICsg
Y291bnQpIDoKKyAgICAgIHNvdXJjZS5zbGljZShNYXRoLm1heChwb3NpdGlvbiArIGNvdW50LCAw
KSwgcG9zaXRpb24pOworICB9CisKKyAgZnVuY3Rpb24gdG9rZW5zVG9UZXh0KGlucHV0cywgeyBw
cmVjZWRlcyB9ID0ge30pIHsKKyAgICBjb25zdCB0ZXh0ID0gaW5wdXRzLm1hcCh0ID0+IHQudHJp
dmlhICsgdC52YWx1ZSkuam9pbigiIik7CisgICAgY29uc3QgbmV4dFRva2VuID0gc291cmNlW3Bv
c2l0aW9uXTsKKyAgICBpZiAobmV4dFRva2VuLnR5cGUgPT09ICJlb2YiKSB7CisgICAgICByZXR1
cm4gdGV4dDsKICAgICB9CisgICAgaWYgKHByZWNlZGVzKSB7CisgICAgICByZXR1cm4gdGV4dCAr
IG5leHRUb2tlbi50cml2aWE7CisgICAgfQorICAgIHJldHVybiB0ZXh0LnNsaWNlKG5leHRUb2tl
bi50cml2aWEubGVuZ3RoKTsKKyAgfQogCi0gICAgZnVuY3Rpb24gY29uc3RfKCkgewotICAgICAg
aWYgKCFjb25zdW1lKCJjb25zdCIpKSByZXR1cm47Ci0gICAgICBjb25zdCByZXQgPSB7IHR5cGU6
ICJjb25zdCIsIG51bGxhYmxlOiBmYWxzZSB9OwotICAgICAgbGV0IHR5cCA9IHByaW1pdGl2ZV90
eXBlKCk7Ci0gICAgICBpZiAoIXR5cCkgewotICAgICAgICB0eXAgPSBjb25zdW1lKElEKSB8fCBl
cnJvcigiTm8gdHlwZSBmb3IgY29uc3QiKTsKLSAgICAgICAgdHlwID0gdHlwLnZhbHVlOwotICAg
ICAgfQotICAgICAgcmV0LmlkbFR5cGUgPSBPYmplY3QuYXNzaWduKHsgdHlwZTogImNvbnN0LXR5
cGUiIH0sIEVNUFRZX0lETFRZUEUsIHsgaWRsVHlwZTogdHlwIH0pOwotICAgICAgdHlwZV9zdWZm
aXgocmV0KTsKLSAgICAgIGNvbnN0IG5hbWUgPSBjb25zdW1lKElEKSB8fCBlcnJvcigiTm8gbmFt
ZSBmb3IgY29uc3QiKTsKLSAgICAgIHJldC5uYW1lID0gbmFtZS52YWx1ZTsKLSAgICAgIGNvbnN1
bWUoIj0iKSB8fCBlcnJvcigiTm8gdmFsdWUgYXNzaWdubWVudCBmb3IgY29uc3QiKTsKLSAgICAg
IGNvbnN0IGNudCA9IGNvbnN0X3ZhbHVlKCk7Ci0gICAgICBpZiAoY250KSByZXQudmFsdWUgPSBj
bnQ7Ci0gICAgICBlbHNlIGVycm9yKCJObyB2YWx1ZSBmb3IgY29uc3QiKTsKLSAgICAgIGNvbnN1
bWUoIjsiKSB8fCBlcnJvcigiVW50ZXJtaW5hdGVkIGNvbnN0Iik7Ci0gICAgICByZXR1cm4gcmV0
OwotICAgIH0KLQotICAgIGZ1bmN0aW9uIGluaGVyaXRhbmNlKCkgewotICAgICAgaWYgKGNvbnN1
bWUoIjoiKSkgewotICAgICAgICBjb25zdCBpbmggPSBjb25zdW1lKElEKSB8fCBlcnJvcigiTm8g
dHlwZSBpbiBpbmhlcml0YW5jZSIpOwotICAgICAgICByZXR1cm4gaW5oLnZhbHVlOworICBjb25z
dCBtYXhUb2tlbnMgPSA1OyAvLyBhcmJpdHJhcnkgYnV0IHdvcmtzIHdlbGwgZW5vdWdoCisgIGNv
bnN0IGxpbmUgPQorICAgIHNvdXJjZVtwb3NpdGlvbl0udHlwZSAhPT0gImVvZiIgPyBzb3VyY2Vb
cG9zaXRpb25dLmxpbmUgOgorICAgIHNvdXJjZS5sZW5ndGggPiAxID8gc291cmNlW3Bvc2l0aW9u
IC0gMV0ubGluZSA6CisgICAgMTsKKworICBjb25zdCBwcmVjZWRpbmdMYXN0TGluZSA9IGxhc3RM
aW5lKAorICAgIHRva2Vuc1RvVGV4dChzbGljZVRva2VucygtbWF4VG9rZW5zKSwgeyBwcmVjZWRl
czogdHJ1ZSB9KQorICApOworCisgIGNvbnN0IHN1YnNlcXVlbnRUb2tlbnMgPSBzbGljZVRva2Vu
cyhtYXhUb2tlbnMpOworICBjb25zdCBzdWJzZXF1ZW50VGV4dCA9IHRva2Vuc1RvVGV4dChzdWJz
ZXF1ZW50VG9rZW5zKTsKKyAgY29uc3Qgc3Vic2VxdWVudEZpcnN0TGluZSA9IHN1YnNlcXVlbnRU
ZXh0LnNwbGl0KCJcbiIpWzBdOworCisgIGNvbnN0IHNwYWNlZCA9ICIgIi5yZXBlYXQocHJlY2Vk
aW5nTGFzdExpbmUubGVuZ3RoKSArICJeIjsKKyAgY29uc3Qgc291cmNlQ29udGV4dCA9IHByZWNl
ZGluZ0xhc3RMaW5lICsgc3Vic2VxdWVudEZpcnN0TGluZSArICJcbiIgKyBzcGFjZWQ7CisKKyAg
Y29uc3QgY29udGV4dFR5cGUgPSBraW5kID09PSAiU3ludGF4IiA/ICJzaW5jZSIgOiAiaW5zaWRl
IjsKKyAgY29uc3QgaW5Tb3VyY2VOYW1lID0gc291cmNlLm5hbWUgPyBgIGluICR7c291cmNlLm5h
bWV9YCA6ICIiOworICBjb25zdCBncmFtbWF0aWNhbENvbnRleHQgPSAoY3VycmVudCAmJiBjdXJy
ZW50Lm5hbWUpID8gYCwgJHtjb250ZXh0VHlwZX0gXGAke2N1cnJlbnQucGFydGlhbCA/ICJwYXJ0
aWFsICIgOiAiIn0ke2N1cnJlbnQudHlwZX0gJHtjdXJyZW50Lm5hbWV9XGBgIDogIiI7CisgIGNv
bnN0IGNvbnRleHQgPSBgJHtraW5kfSBlcnJvciBhdCBsaW5lICR7bGluZX0ke2luU291cmNlTmFt
ZX0ke2dyYW1tYXRpY2FsQ29udGV4dH06XG4ke3NvdXJjZUNvbnRleHR9YDsKKyAgcmV0dXJuIHsK
KyAgICBtZXNzYWdlOiBgJHtjb250ZXh0fSAke21lc3NhZ2V9YCwKKyAgICBiYXJlTWVzc2FnZTog
bWVzc2FnZSwKKyAgICBjb250ZXh0LAorICAgIGxpbmUsCisgICAgc291cmNlTmFtZTogc291cmNl
Lm5hbWUsCisgICAgbGV2ZWwsCisgICAgYXV0b2ZpeCwKKyAgICBpbnB1dDogc3Vic2VxdWVudFRl
eHQsCisgICAgdG9rZW5zOiBzdWJzZXF1ZW50VG9rZW5zCisgIH07Cit9CisKKy8qKgorICogQHBh
cmFtIHtzdHJpbmd9IG1lc3NhZ2UgZXJyb3IgbWVzc2FnZQorICovCitmdW5jdGlvbiBzeW50YXhF
cnJvcihzb3VyY2UsIHBvc2l0aW9uLCBjdXJyZW50LCBtZXNzYWdlKSB7CisgIHJldHVybiBlcnJv
cihzb3VyY2UsIHBvc2l0aW9uLCBjdXJyZW50LCBtZXNzYWdlLCAiU3ludGF4Iik7Cit9CisKKy8q
KgorICogQHBhcmFtIHtzdHJpbmd9IG1lc3NhZ2UgZXJyb3IgbWVzc2FnZQorICogQHBhcmFtIHtX
ZWJJREwyRXJyb3JPcHRpb25zfSBbb3B0aW9uc10KKyAqLworZnVuY3Rpb24gdmFsaWRhdGlvbkVy
cm9yKHNvdXJjZSwgdG9rZW4sIGN1cnJlbnQsIG1lc3NhZ2UsIG9wdGlvbnMpIHsKKyAgcmV0dXJu
IGVycm9yKHNvdXJjZSwgdG9rZW4uaW5kZXgsIGN1cnJlbnQsIG1lc3NhZ2UsICJWYWxpZGF0aW9u
Iiwgb3B0aW9ucyk7Cit9CisKKworLyoqKi8gfSksCisvKiA0ICovCisvKioqLyAoZnVuY3Rpb24o
bW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CisKKyJ1
c2Ugc3RyaWN0IjsKK19fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTsK
Ky8qIGhhcm1vbnkgZXhwb3J0IChiaW5kaW5nKSAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193
ZWJwYWNrX2V4cG9ydHNfXywgInVuZXNjYXBlIiwgZnVuY3Rpb24oKSB7IHJldHVybiB1bmVzY2Fw
ZTsgfSk7CisvKiBoYXJtb255IGV4cG9ydCAoYmluZGluZykgKi8gX193ZWJwYWNrX3JlcXVpcmVf
Xy5kKF9fd2VicGFja19leHBvcnRzX18sICJsaXN0IiwgZnVuY3Rpb24oKSB7IHJldHVybiBsaXN0
OyB9KTsKKy8qIGhhcm1vbnkgZXhwb3J0IChiaW5kaW5nKSAqLyBfX3dlYnBhY2tfcmVxdWlyZV9f
LmQoX193ZWJwYWNrX2V4cG9ydHNfXywgImNvbnN0X3ZhbHVlIiwgZnVuY3Rpb24oKSB7IHJldHVy
biBjb25zdF92YWx1ZTsgfSk7CisvKiBoYXJtb255IGV4cG9ydCAoYmluZGluZykgKi8gX193ZWJw
YWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sICJjb25zdF9kYXRhIiwgZnVuY3Rp
b24oKSB7IHJldHVybiBjb25zdF9kYXRhOyB9KTsKKy8qIGhhcm1vbnkgZXhwb3J0IChiaW5kaW5n
KSAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgInByaW1pdGl2
ZV90eXBlIiwgZnVuY3Rpb24oKSB7IHJldHVybiBwcmltaXRpdmVfdHlwZTsgfSk7CisvKiBoYXJt
b255IGV4cG9ydCAoYmluZGluZykgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19l
eHBvcnRzX18sICJpZGVudGlmaWVycyIsIGZ1bmN0aW9uKCkgeyByZXR1cm4gaWRlbnRpZmllcnM7
IH0pOworLyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFja19yZXF1aXJlX18u
ZChfX3dlYnBhY2tfZXhwb3J0c19fLCAiYXJndW1lbnRfbGlzdCIsIGZ1bmN0aW9uKCkgeyByZXR1
cm4gYXJndW1lbnRfbGlzdDsgfSk7CisvKiBoYXJtb255IGV4cG9ydCAoYmluZGluZykgKi8gX193
ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sICJ0eXBlX3dpdGhfZXh0ZW5k
ZWRfYXR0cmlidXRlcyIsIGZ1bmN0aW9uKCkgeyByZXR1cm4gdHlwZV93aXRoX2V4dGVuZGVkX2F0
dHJpYnV0ZXM7IH0pOworLyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFja19y
ZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAicmV0dXJuX3R5cGUiLCBmdW5jdGlvbigp
IHsgcmV0dXJuIHJldHVybl90eXBlOyB9KTsKKy8qIGhhcm1vbnkgZXhwb3J0IChiaW5kaW5nKSAq
LyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgInN0cmluZ2lmaWVy
IiwgZnVuY3Rpb24oKSB7IHJldHVybiBzdHJpbmdpZmllcjsgfSk7CisvKiBoYXJtb255IGV4cG9y
dCAoYmluZGluZykgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18s
ICJhdXRvZml4QWRkRXhwb3NlZFdpbmRvdyIsIGZ1bmN0aW9uKCkgeyByZXR1cm4gYXV0b2ZpeEFk
ZEV4cG9zZWRXaW5kb3c7IH0pOworLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF90eXBlX2pzX19X
RUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDUpOworLyog
aGFybW9ueSBpbXBvcnQgKi8gdmFyIF9hcmd1bWVudF9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RV
TEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg4KTsKKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZh
ciBfdG9rZW5fanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXyA9IF9fd2VicGFja19yZXF1
aXJlX18oMTIpOworLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9leHRlbmRlZF9hdHRyaWJ1dGVz
X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDEw
KTsKKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfb3BlcmF0aW9uX2pzX19XRUJQQUNLX0lNUE9S
VEVEX01PRFVMRV80X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDEzKTsKKy8qIGhhcm1vbnkgaW1w
b3J0ICovIHZhciBfYXR0cmlidXRlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18gPSBf
X3dlYnBhY2tfcmVxdWlyZV9fKDE0KTsKKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfdG9rZW5p
c2VyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9f
KDIpOworCisKKworCisKKworCisKKy8qKgorICogQHBhcmFtIHtzdHJpbmd9IGlkZW50aWZpZXIK
KyAqLworZnVuY3Rpb24gdW5lc2NhcGUoaWRlbnRpZmllcikgeworICByZXR1cm4gaWRlbnRpZmll
ci5zdGFydHNXaXRoKCdfJykgPyBpZGVudGlmaWVyLnNsaWNlKDEpIDogaWRlbnRpZmllcjsKK30K
KworLyoqCisgKiBQYXJzZXMgY29tbWEtc2VwYXJhdGVkIGxpc3QKKyAqIEBwYXJhbSB7aW1wb3J0
KCIuLi90b2tlbmlzZXIiKS5Ub2tlbmlzZXJ9IHRva2VuaXNlcgorICogQHBhcmFtIHtvYmplY3R9
IGFyZ3MKKyAqIEBwYXJhbSB7RnVuY3Rpb259IGFyZ3MucGFyc2VyIHBhcnNlciBmdW5jdGlvbiBm
b3IgZWFjaCBpdGVtCisgKiBAcGFyYW0ge2Jvb2xlYW59IFthcmdzLmFsbG93RGFuZ2xlcl0gd2hl
dGhlciB0byBhbGxvdyBkYW5nbGluZyBjb21tYQorICogQHBhcmFtIHtzdHJpbmd9IFthcmdzLmxp
c3ROYW1lXSB0aGUgbmFtZSB0byBiZSBzaG93biBvbiBlcnJvciBtZXNzYWdlcworICovCitmdW5j
dGlvbiBsaXN0KHRva2VuaXNlciwgeyBwYXJzZXIsIGFsbG93RGFuZ2xlciwgbGlzdE5hbWUgPSAi
bGlzdCIgfSkgeworICBjb25zdCBmaXJzdCA9IHBhcnNlcih0b2tlbmlzZXIpOworICBpZiAoIWZp
cnN0KSB7CisgICAgcmV0dXJuIFtdOworICB9CisgIGZpcnN0LnRva2Vucy5zZXBhcmF0b3IgPSB0
b2tlbmlzZXIuY29uc3VtZSgiLCIpOworICBjb25zdCBpdGVtcyA9IFtmaXJzdF07CisgIHdoaWxl
IChmaXJzdC50b2tlbnMuc2VwYXJhdG9yKSB7CisgICAgY29uc3QgaXRlbSA9IHBhcnNlcih0b2tl
bmlzZXIpOworICAgIGlmICghaXRlbSkgeworICAgICAgaWYgKCFhbGxvd0RhbmdsZXIpIHsKKyAg
ICAgICAgdG9rZW5pc2VyLmVycm9yKGBUcmFpbGluZyBjb21tYSBpbiAke2xpc3ROYW1lfWApOwog
ICAgICAgfQorICAgICAgYnJlYWs7CisgICAgfQorICAgIGl0ZW0udG9rZW5zLnNlcGFyYXRvciA9
IHRva2VuaXNlci5jb25zdW1lKCIsIik7CisgICAgaXRlbXMucHVzaChpdGVtKTsKKyAgICBpZiAo
IWl0ZW0udG9rZW5zLnNlcGFyYXRvcikgYnJlYWs7CisgIH0KKyAgcmV0dXJuIGl0ZW1zOworfQor
CisvKioKKyAqIEBwYXJhbSB7aW1wb3J0KCIuLi90b2tlbmlzZXIiKS5Ub2tlbmlzZXJ9IHRva2Vu
aXNlcgorICovCitmdW5jdGlvbiBjb25zdF92YWx1ZSh0b2tlbmlzZXIpIHsKKyAgcmV0dXJuIHRv
a2VuaXNlci5jb25zdW1lKCJ0cnVlIiwgImZhbHNlIiwgIkluZmluaXR5IiwgIi1JbmZpbml0eSIs
ICJOYU4iLCAiZGVjaW1hbCIsICJpbnRlZ2VyIik7Cit9CisKKy8qKgorICogQHBhcmFtIHtvYmpl
Y3R9IHRva2VuCisgKiBAcGFyYW0ge3N0cmluZ30gdG9rZW4udHlwZQorICogQHBhcmFtIHtzdHJp
bmd9IHRva2VuLnZhbHVlCisgKi8KK2Z1bmN0aW9uIGNvbnN0X2RhdGEoeyB0eXBlLCB2YWx1ZSB9
KSB7CisgIHN3aXRjaCAodHlwZSkgeworICAgIGNhc2UgInRydWUiOgorICAgIGNhc2UgImZhbHNl
IjoKKyAgICAgIHJldHVybiB7IHR5cGU6ICJib29sZWFuIiwgdmFsdWU6IHR5cGUgPT09ICJ0cnVl
IiB9OworICAgIGNhc2UgIkluZmluaXR5IjoKKyAgICBjYXNlICItSW5maW5pdHkiOgorICAgICAg
cmV0dXJuIHsgdHlwZTogIkluZmluaXR5IiwgbmVnYXRpdmU6IHR5cGUuc3RhcnRzV2l0aCgiLSIp
IH07CisgICAgY2FzZSAiWyI6CisgICAgICByZXR1cm4geyB0eXBlOiAic2VxdWVuY2UiLCB2YWx1
ZTogW10gfTsKKyAgICBjYXNlICJ7IjoKKyAgICAgIHJldHVybiB7IHR5cGU6ICJkaWN0aW9uYXJ5
IiB9OworICAgIGNhc2UgImRlY2ltYWwiOgorICAgIGNhc2UgImludGVnZXIiOgorICAgICAgcmV0
dXJuIHsgdHlwZTogIm51bWJlciIsIHZhbHVlIH07CisgICAgY2FzZSAic3RyaW5nIjoKKyAgICAg
IHJldHVybiB7IHR5cGU6ICJzdHJpbmciLCB2YWx1ZTogdmFsdWUuc2xpY2UoMSwgLTEpIH07Cisg
ICAgZGVmYXVsdDoKKyAgICAgIHJldHVybiB7IHR5cGUgfTsKKyAgfQorfQorCisvKioKKyAqIEBw
YXJhbSB7aW1wb3J0KCIuLi90b2tlbmlzZXIiKS5Ub2tlbmlzZXJ9IHRva2VuaXNlcgorICovCitm
dW5jdGlvbiBwcmltaXRpdmVfdHlwZSh0b2tlbmlzZXIpIHsKKyAgZnVuY3Rpb24gaW50ZWdlcl90
eXBlKCkgeworICAgIGNvbnN0IHByZWZpeCA9IHRva2VuaXNlci5jb25zdW1lKCJ1bnNpZ25lZCIp
OworICAgIGNvbnN0IGJhc2UgPSB0b2tlbmlzZXIuY29uc3VtZSgic2hvcnQiLCAibG9uZyIpOwor
ICAgIGlmIChiYXNlKSB7CisgICAgICBjb25zdCBwb3N0Zml4ID0gdG9rZW5pc2VyLmNvbnN1bWUo
ImxvbmciKTsKKyAgICAgIHJldHVybiBuZXcgX3R5cGVfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9E
VUxFXzBfX1siVHlwZSJdKHsgc291cmNlLCB0b2tlbnM6IHsgcHJlZml4LCBiYXNlLCBwb3N0Zml4
IH0gfSk7CiAgICAgfQorICAgIGlmIChwcmVmaXgpIHRva2VuaXNlci5lcnJvcigiRmFpbGVkIHRv
IHBhcnNlIGludGVnZXIgdHlwZSIpOworICB9CiAKLSAgICBmdW5jdGlvbiBvcGVyYXRpb25fcmVz
dChyZXQpIHsKLSAgICAgIGlmICghcmV0KSByZXQgPSB7fTsKLSAgICAgIGNvbnN0IG5hbWUgPSBj
b25zdW1lKElEKTsKLSAgICAgIHJldC5uYW1lID0gbmFtZSA/IHVuZXNjYXBlKG5hbWUudmFsdWUp
IDogbnVsbDsKLSAgICAgIHJldC5lc2NhcGVkTmFtZSA9IG5hbWUgPyBuYW1lLnZhbHVlIDogbnVs
bDsKLSAgICAgIGNvbnN1bWUoIigiKSB8fCBlcnJvcigiSW52YWxpZCBvcGVyYXRpb24iKTsKLSAg
ICAgIHJldC5hcmd1bWVudHMgPSBhcmd1bWVudF9saXN0KCk7Ci0gICAgICBjb25zdW1lKCIpIikg
fHwgZXJyb3IoIlVudGVybWluYXRlZCBvcGVyYXRpb24iKTsKLSAgICAgIGNvbnN1bWUoIjsiKSB8
fCBlcnJvcigiVW50ZXJtaW5hdGVkIG9wZXJhdGlvbiIpOwotICAgICAgcmV0dXJuIHJldDsKLSAg
ICB9Ci0KLSAgICBmdW5jdGlvbiBjYWxsYmFjaygpIHsKLSAgICAgIGxldCByZXQ7Ci0gICAgICBp
ZiAoIWNvbnN1bWUoImNhbGxiYWNrIikpIHJldHVybjsKLSAgICAgIGNvbnN0IHRvayA9IGNvbnN1
bWUoImludGVyZmFjZSIpOwotICAgICAgaWYgKHRvaykgewotICAgICAgICByZXQgPSBpbnRlcmZh
Y2VfcmVzdChmYWxzZSwgImNhbGxiYWNrIGludGVyZmFjZSIpOwotICAgICAgICByZXR1cm4gcmV0
OwotICAgICAgfQotICAgICAgY29uc3QgbmFtZSA9IGNvbnN1bWUoSUQpIHx8IGVycm9yKCJObyBu
YW1lIGZvciBjYWxsYmFjayIpOwotICAgICAgcmV0ID0gY3VycmVudCA9IHsgdHlwZTogImNhbGxi
YWNrIiwgbmFtZTogc2FuaXRpemVfbmFtZShuYW1lLnZhbHVlLCAiY2FsbGJhY2siKSB9OwotICAg
ICAgY29uc3VtZSgiPSIpIHx8IGVycm9yKCJObyBhc3NpZ25tZW50IGluIGNhbGxiYWNrIik7Ci0g
ICAgICByZXQuaWRsVHlwZSA9IHJldHVybl90eXBlKCkgfHwgZXJyb3IoIk1pc3NpbmcgcmV0dXJu
IHR5cGUiKTsKLSAgICAgIGNvbnN1bWUoIigiKSB8fCBlcnJvcigiTm8gYXJndW1lbnRzIGluIGNh
bGxiYWNrIik7Ci0gICAgICByZXQuYXJndW1lbnRzID0gYXJndW1lbnRfbGlzdCgpOwotICAgICAg
Y29uc3VtZSgiKSIpIHx8IGVycm9yKCJVbnRlcm1pbmF0ZWQgY2FsbGJhY2siKTsKLSAgICAgIGNv
bnN1bWUoIjsiKSB8fCBlcnJvcigiVW50ZXJtaW5hdGVkIGNhbGxiYWNrIik7Ci0gICAgICByZXR1
cm4gcmV0OwotICAgIH0KLQotICAgIGZ1bmN0aW9uIGF0dHJpYnV0ZSh7IG5vSW5oZXJpdCA9IGZh
bHNlLCByZWFkb25seSA9IGZhbHNlIH0gPSB7fSkgewotICAgICAgY29uc3Qgc3RhcnRfcG9zaXRp
b24gPSBjb25zdW1lX3Bvc2l0aW9uOwotICAgICAgY29uc3QgcmV0ID0gewotICAgICAgICB0eXBl
OiAiYXR0cmlidXRlIiwKLSAgICAgICAgc3RhdGljOiBmYWxzZSwKLSAgICAgICAgc3RyaW5naWZp
ZXI6IGZhbHNlLAotICAgICAgICBpbmhlcml0OiBmYWxzZSwKLSAgICAgICAgcmVhZG9ubHk6IGZh
bHNlCi0gICAgICB9OwotICAgICAgaWYgKCFub0luaGVyaXQgJiYgY29uc3VtZSgiaW5oZXJpdCIp
KSB7Ci0gICAgICAgIHJldC5pbmhlcml0ID0gdHJ1ZTsKLSAgICAgIH0KLSAgICAgIGlmIChjb25z
dW1lKCJyZWFkb25seSIpKSB7Ci0gICAgICAgIHJldC5yZWFkb25seSA9IHRydWU7Ci0gICAgICB9
IGVsc2UgaWYgKHJlYWRvbmx5ICYmIHByb2JlKCJhdHRyaWJ1dGUiKSkgewotICAgICAgICBlcnJv
cigiQXR0cmlidXRlcyBtdXN0IGJlIHJlYWRvbmx5IGluIHRoaXMgY29udGV4dCIpOwotICAgICAg
fQotICAgICAgY29uc3QgcmVzdCA9IGF0dHJpYnV0ZV9yZXN0KHJldCk7Ci0gICAgICBpZiAoIXJl
c3QpIHsKLSAgICAgICAgdW5jb25zdW1lKHN0YXJ0X3Bvc2l0aW9uKTsKLSAgICAgIH0KLSAgICAg
IHJldHVybiByZXN0OworICBmdW5jdGlvbiBkZWNpbWFsX3R5cGUoKSB7CisgICAgY29uc3QgcHJl
Zml4ID0gdG9rZW5pc2VyLmNvbnN1bWUoInVucmVzdHJpY3RlZCIpOworICAgIGNvbnN0IGJhc2Ug
PSB0b2tlbmlzZXIuY29uc3VtZSgiZmxvYXQiLCAiZG91YmxlIik7CisgICAgaWYgKGJhc2UpIHsK
KyAgICAgIHJldHVybiBuZXcgX3R5cGVfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1si
VHlwZSJdKHsgc291cmNlLCB0b2tlbnM6IHsgcHJlZml4LCBiYXNlIH0gfSk7CiAgICAgfQorICAg
IGlmIChwcmVmaXgpIHRva2VuaXNlci5lcnJvcigiRmFpbGVkIHRvIHBhcnNlIGZsb2F0IHR5cGUi
KTsKKyAgfQogCi0gICAgZnVuY3Rpb24gYXR0cmlidXRlX3Jlc3QocmV0KSB7Ci0gICAgICBpZiAo
IWNvbnN1bWUoImF0dHJpYnV0ZSIpKSB7Ci0gICAgICAgIHJldHVybjsKLSAgICAgIH0KLSAgICAg
IHJldC5pZGxUeXBlID0gdHlwZV93aXRoX2V4dGVuZGVkX2F0dHJpYnV0ZXMoImF0dHJpYnV0ZS10
eXBlIikgfHwgZXJyb3IoIk5vIHR5cGUgaW4gYXR0cmlidXRlIik7Ci0gICAgICBpZiAocmV0Lmlk
bFR5cGUuZ2VuZXJpYyA9PT0gInNlcXVlbmNlIikgZXJyb3IoIkF0dHJpYnV0ZXMgY2Fubm90IGFj
Y2VwdCBzZXF1ZW5jZSB0eXBlcyIpOwotICAgICAgaWYgKHJldC5pZGxUeXBlLmdlbmVyaWMgPT09
ICJyZWNvcmQiKSBlcnJvcigiQXR0cmlidXRlcyBjYW5ub3QgYWNjZXB0IHJlY29yZCB0eXBlcyIp
OwotICAgICAgY29uc3QgbmFtZSA9IGNvbnN1bWUoSUQsICJyZXF1aXJlZCIpIHx8IGVycm9yKCJO
byBuYW1lIGluIGF0dHJpYnV0ZSIpOwotICAgICAgcmV0Lm5hbWUgPSB1bmVzY2FwZShuYW1lLnZh
bHVlKTsKLSAgICAgIHJldC5lc2NhcGVkTmFtZSA9IG5hbWUudmFsdWU7Ci0gICAgICBjb25zdW1l
KCI7IikgfHwgZXJyb3IoIlVudGVybWluYXRlZCBhdHRyaWJ1dGUiKTsKLSAgICAgIHJldHVybiBy
ZXQ7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gcmV0dXJuX3R5cGUodHlwZU5hbWUpIHsKLSAgICAg
IGNvbnN0IHR5cCA9IHR5cGUodHlwZU5hbWUgfHwgInJldHVybi10eXBlIik7Ci0gICAgICBpZiAo
dHlwKSB7Ci0gICAgICAgIHJldHVybiB0eXA7Ci0gICAgICB9Ci0gICAgICBpZiAoY29uc3VtZSgi
dm9pZCIpKSB7Ci0gICAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKHsgdHlwZTogInJldHVybi10
eXBlIiB9LCBFTVBUWV9JRExUWVBFLCB7IGlkbFR5cGU6ICJ2b2lkIiB9KTsKKyAgY29uc3QgeyBz
b3VyY2UgfSA9IHRva2VuaXNlcjsKKyAgY29uc3QgbnVtX3R5cGUgPSBpbnRlZ2VyX3R5cGUodG9r
ZW5pc2VyKSB8fCBkZWNpbWFsX3R5cGUodG9rZW5pc2VyKTsKKyAgaWYgKG51bV90eXBlKSByZXR1
cm4gbnVtX3R5cGU7CisgIGNvbnN0IGJhc2UgPSB0b2tlbmlzZXIuY29uc3VtZSgiYm9vbGVhbiIs
ICJieXRlIiwgIm9jdGV0Iik7CisgIGlmIChiYXNlKSB7CisgICAgcmV0dXJuIG5ldyBfdHlwZV9q
c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJUeXBlIl0oeyBzb3VyY2UsIHRva2Vuczog
eyBiYXNlIH0gfSk7CisgIH0KK30KKworLyoqCisgKiBAcGFyYW0ge2ltcG9ydCgiLi4vdG9rZW5p
c2VyIikuVG9rZW5pc2VyfSB0b2tlbmlzZXIKKyAqLworZnVuY3Rpb24gaWRlbnRpZmllcnModG9r
ZW5pc2VyKSB7CisgIGNvbnN0IGlkcyA9IGxpc3QodG9rZW5pc2VyLCB7IHBhcnNlcjogX3Rva2Vu
X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19bIlRva2VuIl0ucGFyc2VyKHRva2VuaXNl
ciwgImlkZW50aWZpZXIiKSwgbGlzdE5hbWU6ICJpZGVudGlmaWVyIGxpc3QiIH0pOworICBpZiAo
IWlkcy5sZW5ndGgpIHsKKyAgICB0b2tlbmlzZXIuZXJyb3IoIkV4cGVjdGVkIGlkZW50aWZpZXJz
IGJ1dCBub25lIGZvdW5kIik7CisgIH0KKyAgcmV0dXJuIGlkczsKK30KKworLyoqCisgKiBAcGFy
YW0ge2ltcG9ydCgiLi4vdG9rZW5pc2VyIikuVG9rZW5pc2VyfSB0b2tlbmlzZXIKKyAqLworZnVu
Y3Rpb24gYXJndW1lbnRfbGlzdCh0b2tlbmlzZXIpIHsKKyAgcmV0dXJuIGxpc3QodG9rZW5pc2Vy
LCB7IHBhcnNlcjogX2FyZ3VtZW50X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19bIkFy
Z3VtZW50Il0ucGFyc2UsIGxpc3ROYW1lOiAiYXJndW1lbnRzIGxpc3QiIH0pOworfQorCisvKioK
KyAqIEBwYXJhbSB7aW1wb3J0KCIuLi90b2tlbmlzZXIiKS5Ub2tlbmlzZXJ9IHRva2VuaXNlcgor
ICogQHBhcmFtIHtzdHJpbmd9IHR5cGVOYW1lCisgKi8KK2Z1bmN0aW9uIHR5cGVfd2l0aF9leHRl
bmRlZF9hdHRyaWJ1dGVzKHRva2VuaXNlciwgdHlwZU5hbWUpIHsKKyAgY29uc3QgZXh0QXR0cnMg
PSBfZXh0ZW5kZWRfYXR0cmlidXRlc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fWyJF
eHRlbmRlZEF0dHJpYnV0ZXMiXS5wYXJzZSh0b2tlbmlzZXIpOworICBjb25zdCByZXQgPSBfdHlw
ZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJUeXBlIl0ucGFyc2UodG9rZW5pc2Vy
LCB0eXBlTmFtZSk7CisgIGlmIChyZXQpIHJldC5leHRBdHRycyA9IGV4dEF0dHJzOworICByZXR1
cm4gcmV0OworfQorCisvKioKKyAqIEBwYXJhbSB7aW1wb3J0KCIuLi90b2tlbmlzZXIiKS5Ub2tl
bmlzZXJ9IHRva2VuaXNlcgorICogQHBhcmFtIHtzdHJpbmd9IHR5cGVOYW1lCisgKi8KK2Z1bmN0
aW9uIHJldHVybl90eXBlKHRva2VuaXNlciwgdHlwZU5hbWUpIHsKKyAgY29uc3QgdHlwID0gX3R5
cGVfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siVHlwZSJdLnBhcnNlKHRva2VuaXNl
ciwgdHlwZU5hbWUgfHwgInJldHVybi10eXBlIik7CisgIGlmICh0eXApIHsKKyAgICByZXR1cm4g
dHlwOworICB9CisgIGNvbnN0IHZvaWRUb2tlbiA9IHRva2VuaXNlci5jb25zdW1lKCJ2b2lkIik7
CisgIGlmICh2b2lkVG9rZW4pIHsKKyAgICBjb25zdCByZXQgPSBuZXcgX3R5cGVfanNfX1dFQlBB
Q0tfSU1QT1JURURfTU9EVUxFXzBfX1siVHlwZSJdKHsgc291cmNlOiB0b2tlbmlzZXIuc291cmNl
LCB0b2tlbnM6IHsgYmFzZTogdm9pZFRva2VuIH0gfSk7CisgICAgcmV0LnR5cGUgPSAicmV0dXJu
LXR5cGUiOworICAgIHJldHVybiByZXQ7CisgIH0KK30KKworLyoqCisgKiBAcGFyYW0ge2ltcG9y
dCgiLi4vdG9rZW5pc2VyIikuVG9rZW5pc2VyfSB0b2tlbmlzZXIKKyAqLworZnVuY3Rpb24gc3Ry
aW5naWZpZXIodG9rZW5pc2VyKSB7CisgIGNvbnN0IHNwZWNpYWwgPSB0b2tlbmlzZXIuY29uc3Vt
ZSgic3RyaW5naWZpZXIiKTsKKyAgaWYgKCFzcGVjaWFsKSByZXR1cm47CisgIGNvbnN0IG1lbWJl
ciA9IF9hdHRyaWJ1dGVfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfX1siQXR0cmlidXRl
Il0ucGFyc2UodG9rZW5pc2VyLCB7IHNwZWNpYWwgfSkgfHwKKyAgICBfb3BlcmF0aW9uX2pzX19X
RUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X19bIk9wZXJhdGlvbiJdLnBhcnNlKHRva2VuaXNlciwg
eyBzcGVjaWFsIH0pIHx8CisgICAgdG9rZW5pc2VyLmVycm9yKCJVbnRlcm1pbmF0ZWQgc3RyaW5n
aWZpZXIiKTsKKyAgcmV0dXJuIG1lbWJlcjsKK30KKworLyoqCisgKiBAcGFyYW0ge29iamVjdH0g
ZGVmCisgKiBAcGFyYW0ge2ltcG9ydCgiLi9leHRlbmRlZC1hdHRyaWJ1dGVzLmpzIikuRXh0ZW5k
ZWRBdHRyaWJ1dGVzfSBkZWYuZXh0QXR0cnMKKyAqLworZnVuY3Rpb24gYXV0b2ZpeEFkZEV4cG9z
ZWRXaW5kb3coZGVmKSB7CisgIHJldHVybiAoKSA9PiB7CisgICAgaWYgKGRlZi5leHRBdHRycy5s
ZW5ndGgpeworICAgICAgY29uc3QgdG9rZW5pc2VyID0gbmV3IF90b2tlbmlzZXJfanNfX1dFQlBB
Q0tfSU1QT1JURURfTU9EVUxFXzZfX1siVG9rZW5pc2VyIl0oIkV4cG9zZWQ9V2luZG93LCIpOwor
ICAgICAgY29uc3QgZXhwb3NlZCA9IF9leHRlbmRlZF9hdHRyaWJ1dGVzX2pzX19XRUJQQUNLX0lN
UE9SVEVEX01PRFVMRV8zX19bIlNpbXBsZUV4dGVuZGVkQXR0cmlidXRlIl0ucGFyc2UodG9rZW5p
c2VyKTsKKyAgICAgIGV4cG9zZWQudG9rZW5zLnNlcGFyYXRvciA9IHRva2VuaXNlci5jb25zdW1l
KCIsIik7CisgICAgICBjb25zdCBleGlzdGluZyA9IGRlZi5leHRBdHRyc1swXTsKKyAgICAgIGlm
ICghL15ccy8udGVzdChleGlzdGluZy50b2tlbnMubmFtZS50cml2aWEpKSB7CisgICAgICAgIGV4
aXN0aW5nLnRva2Vucy5uYW1lLnRyaXZpYSA9IGAgJHtleGlzdGluZy50b2tlbnMubmFtZS50cml2
aWF9YDsKICAgICAgIH0KKyAgICAgIGRlZi5leHRBdHRycy51bnNoaWZ0KGV4cG9zZWQpOworICAg
IH0gZWxzZSB7CisgICAgICBkZWYuZXh0QXR0cnMgPSBfZXh0ZW5kZWRfYXR0cmlidXRlc19qc19f
V0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fWyJFeHRlbmRlZEF0dHJpYnV0ZXMiXS5wYXJzZShu
ZXcgX3Rva2VuaXNlcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fWyJUb2tlbmlzZXIi
XSgiW0V4cG9zZWQ9V2luZG93XSIpKTsKKyAgICAgIGRlZi5leHRBdHRycy50b2tlbnMub3Blbi50
cml2aWEgPSBkZWYudG9rZW5zLmJhc2UudHJpdmlhOworICAgICAgZGVmLnRva2Vucy5iYXNlLnRy
aXZpYSA9ICIgIjsKICAgICB9CisgIH07Cit9CiAKLSAgICBmdW5jdGlvbiBvcGVyYXRpb24oeyBy
ZWd1bGFyID0gZmFsc2UgfSA9IHt9KSB7Ci0gICAgICBjb25zdCByZXQgPSBPYmplY3QuYXNzaWdu
KHt9LCBFTVBUWV9PUEVSQVRJT04pOwotICAgICAgd2hpbGUgKCFyZWd1bGFyKSB7Ci0gICAgICAg
IGlmIChjb25zdW1lKCJnZXR0ZXIiKSkgcmV0LmdldHRlciA9IHRydWU7Ci0gICAgICAgIGVsc2Ug
aWYgKGNvbnN1bWUoInNldHRlciIpKSByZXQuc2V0dGVyID0gdHJ1ZTsKLSAgICAgICAgZWxzZSBp
ZiAoY29uc3VtZSgiZGVsZXRlciIpKSByZXQuZGVsZXRlciA9IHRydWU7Ci0gICAgICAgIGVsc2Ug
YnJlYWs7Ci0gICAgICB9Ci0gICAgICByZXQuaWRsVHlwZSA9IHJldHVybl90eXBlKCkgfHwgZXJy
b3IoIk1pc3NpbmcgcmV0dXJuIHR5cGUiKTsKLSAgICAgIG9wZXJhdGlvbl9yZXN0KHJldCk7Ci0g
ICAgICByZXR1cm4gcmV0OworCisvKioqLyB9KSwKKy8qIDUgKi8KKy8qKiovIChmdW5jdGlvbiht
b2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pIHsKKworInVz
ZSBzdHJpY3QiOworX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pOwor
LyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dl
YnBhY2tfZXhwb3J0c19fLCAiVHlwZSIsIGZ1bmN0aW9uKCkgeyByZXR1cm4gVHlwZTsgfSk7Cisv
KiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxF
XzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oNik7CisvKiBoYXJtb255IGltcG9ydCAqLyB2YXIg
X2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1
aXJlX18oNCk7CisvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3Rva2VuaXNlcl9qc19fV0VCUEFD
S19JTVBPUlRFRF9NT0RVTEVfMl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygyKTsKKy8qIGhhcm1v
bnkgaW1wb3J0ICovIHZhciBfZXJyb3JfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXyA9
IF9fd2VicGFja19yZXF1aXJlX18oMyk7CisvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3ZhbGlk
YXRvcnNfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fID0gX193ZWJwYWNr
X3JlcXVpcmVfXyg3KTsKKworCisKKworCisKKy8qKgorICogQHBhcmFtIHtpbXBvcnQoIi4uL3Rv
a2VuaXNlciIpLlRva2VuaXNlcn0gdG9rZW5pc2VyCisgKiBAcGFyYW0ge3N0cmluZ30gdHlwZU5h
bWUKKyAqLworZnVuY3Rpb24gZ2VuZXJpY190eXBlKHRva2VuaXNlciwgdHlwZU5hbWUpIHsKKyAg
Y29uc3QgYmFzZSA9IHRva2VuaXNlci5jb25zdW1lKCJGcm96ZW5BcnJheSIsICJQcm9taXNlIiwg
InNlcXVlbmNlIiwgInJlY29yZCIpOworICBpZiAoIWJhc2UpIHsKKyAgICByZXR1cm47CisgIH0K
KyAgY29uc3QgcmV0ID0gbmV3IFR5cGUoeyBzb3VyY2U6IHRva2VuaXNlci5zb3VyY2UsIHRva2Vu
czogeyBiYXNlIH0gfSk7CisgIHJldC50b2tlbnMub3BlbiA9IHRva2VuaXNlci5jb25zdW1lKCI8
IikgfHwgdG9rZW5pc2VyLmVycm9yKGBObyBvcGVuaW5nIGJyYWNrZXQgYWZ0ZXIgJHtiYXNlLnR5
cGV9YCk7CisgIHN3aXRjaCAoYmFzZS50eXBlKSB7CisgICAgY2FzZSAiUHJvbWlzZSI6IHsKKyAg
ICAgIGlmICh0b2tlbmlzZXIucHJvYmUoIlsiKSkgdG9rZW5pc2VyLmVycm9yKCJQcm9taXNlIHR5
cGUgY2Fubm90IGhhdmUgZXh0ZW5kZWQgYXR0cmlidXRlIik7CisgICAgICBjb25zdCBzdWJ0eXBl
ID0gT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19bInJldHVy
bl90eXBlIl0pKHRva2VuaXNlciwgdHlwZU5hbWUpIHx8IHRva2VuaXNlci5lcnJvcigiTWlzc2lu
ZyBQcm9taXNlIHN1YnR5cGUiKTsKKyAgICAgIHJldC5zdWJ0eXBlLnB1c2goc3VidHlwZSk7Cisg
ICAgICBicmVhazsKKyAgICB9CisgICAgY2FzZSAic2VxdWVuY2UiOgorICAgIGNhc2UgIkZyb3pl
bkFycmF5IjogeworICAgICAgY29uc3Qgc3VidHlwZSA9IE9iamVjdChfaGVscGVyc19qc19fV0VC
UEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fWyJ0eXBlX3dpdGhfZXh0ZW5kZWRfYXR0cmlidXRlcyJd
KSh0b2tlbmlzZXIsIHR5cGVOYW1lKSB8fCB0b2tlbmlzZXIuZXJyb3IoYE1pc3NpbmcgJHtiYXNl
LnR5cGV9IHN1YnR5cGVgKTsKKyAgICAgIHJldC5zdWJ0eXBlLnB1c2goc3VidHlwZSk7CisgICAg
ICBicmVhazsKKyAgICB9CisgICAgY2FzZSAicmVjb3JkIjogeworICAgICAgaWYgKHRva2VuaXNl
ci5wcm9iZSgiWyIpKSB0b2tlbmlzZXIuZXJyb3IoIlJlY29yZCBrZXkgY2Fubm90IGhhdmUgZXh0
ZW5kZWQgYXR0cmlidXRlIik7CisgICAgICBjb25zdCBrZXlUeXBlID0gdG9rZW5pc2VyLmNvbnN1
bWUoLi4uX3Rva2VuaXNlcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fWyJzdHJpbmdU
eXBlcyJdKSB8fCB0b2tlbmlzZXIuZXJyb3IoYFJlY29yZCBrZXkgbXVzdCBiZSBvbmUgb2Y6ICR7
X3Rva2VuaXNlcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fWyJzdHJpbmdUeXBlcyJd
LmpvaW4oIiwgIil9YCk7CisgICAgICBjb25zdCBrZXlJZGxUeXBlID0gbmV3IFR5cGUoeyBzb3Vy
Y2U6IHRva2VuaXNlci5zb3VyY2UsIHRva2VuczogeyBiYXNlOiBrZXlUeXBlIH19KTsKKyAgICAg
IGtleUlkbFR5cGUudG9rZW5zLnNlcGFyYXRvciA9IHRva2VuaXNlci5jb25zdW1lKCIsIikgfHwg
dG9rZW5pc2VyLmVycm9yKCJNaXNzaW5nIGNvbW1hIGFmdGVyIHJlY29yZCBrZXkgdHlwZSIpOwor
ICAgICAga2V5SWRsVHlwZS50eXBlID0gdHlwZU5hbWU7CisgICAgICBjb25zdCB2YWx1ZVR5cGUg
PSBPYmplY3QoX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX1sidHlwZV93
aXRoX2V4dGVuZGVkX2F0dHJpYnV0ZXMiXSkodG9rZW5pc2VyLCB0eXBlTmFtZSkgfHwgdG9rZW5p
c2VyLmVycm9yKCJFcnJvciBwYXJzaW5nIGdlbmVyaWMgdHlwZSByZWNvcmQiKTsKKyAgICAgIHJl
dC5zdWJ0eXBlLnB1c2goa2V5SWRsVHlwZSwgdmFsdWVUeXBlKTsKKyAgICAgIGJyZWFrOworICAg
IH0KKyAgfQorICBpZiAoIXJldC5pZGxUeXBlKSB0b2tlbmlzZXIuZXJyb3IoYEVycm9yIHBhcnNp
bmcgZ2VuZXJpYyB0eXBlICR7YmFzZS50eXBlfWApOworICByZXQudG9rZW5zLmNsb3NlID0gdG9r
ZW5pc2VyLmNvbnN1bWUoIj4iKSB8fCB0b2tlbmlzZXIuZXJyb3IoYE1pc3NpbmcgY2xvc2luZyBi
cmFja2V0IGFmdGVyICR7YmFzZS50eXBlfWApOworICByZXR1cm4gcmV0OworfQorCisvKioKKyAq
IEBwYXJhbSB7aW1wb3J0KCIuLi90b2tlbmlzZXIiKS5Ub2tlbmlzZXJ9IHRva2VuaXNlcgorICov
CitmdW5jdGlvbiB0eXBlX3N1ZmZpeCh0b2tlbmlzZXIsIG9iaikgeworICBjb25zdCBudWxsYWJs
ZSA9IHRva2VuaXNlci5jb25zdW1lKCI/Iik7CisgIGlmIChudWxsYWJsZSkgeworICAgIG9iai50
b2tlbnMubnVsbGFibGUgPSBudWxsYWJsZTsKKyAgfQorICBpZiAodG9rZW5pc2VyLnByb2JlKCI/
IikpIHRva2VuaXNlci5lcnJvcigiQ2FuJ3QgbnVsbGFibGUgbW9yZSB0aGFuIG9uY2UiKTsKK30K
KworLyoqCisgKiBAcGFyYW0ge2ltcG9ydCgiLi4vdG9rZW5pc2VyIikuVG9rZW5pc2VyfSB0b2tl
bmlzZXIKKyAqIEBwYXJhbSB7c3RyaW5nfSB0eXBlTmFtZQorICovCitmdW5jdGlvbiBzaW5nbGVf
dHlwZSh0b2tlbmlzZXIsIHR5cGVOYW1lKSB7CisgIGxldCByZXQgPSBnZW5lcmljX3R5cGUodG9r
ZW5pc2VyLCB0eXBlTmFtZSkgfHwgT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVE
X01PRFVMRV8xX19bInByaW1pdGl2ZV90eXBlIl0pKHRva2VuaXNlcik7CisgIGlmICghcmV0KSB7
CisgICAgY29uc3QgYmFzZSA9IHRva2VuaXNlci5jb25zdW1lKCJpZGVudGlmaWVyIiwgLi4uX3Rv
a2VuaXNlcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fWyJzdHJpbmdUeXBlcyJdKTsK
KyAgICBpZiAoIWJhc2UpIHsKKyAgICAgIHJldHVybjsKKyAgICB9CisgICAgcmV0ID0gbmV3IFR5
cGUoeyBzb3VyY2U6IHRva2VuaXNlci5zb3VyY2UsIHRva2VuczogeyBiYXNlIH0gfSk7CisgICAg
aWYgKHRva2VuaXNlci5wcm9iZSgiPCIpKSB0b2tlbmlzZXIuZXJyb3IoYFVuc3VwcG9ydGVkIGdl
bmVyaWMgdHlwZSAke2Jhc2UudmFsdWV9YCk7CisgIH0KKyAgaWYgKHJldC5nZW5lcmljID09PSAi
UHJvbWlzZSIgJiYgdG9rZW5pc2VyLnByb2JlKCI/IikpIHsKKyAgICB0b2tlbmlzZXIuZXJyb3Io
IlByb21pc2UgdHlwZSBjYW5ub3QgYmUgbnVsbGFibGUiKTsKKyAgfQorICByZXQudHlwZSA9IHR5
cGVOYW1lIHx8IG51bGw7CisgIHR5cGVfc3VmZml4KHRva2VuaXNlciwgcmV0KTsKKyAgaWYgKHJl
dC5udWxsYWJsZSAmJiByZXQuaWRsVHlwZSA9PT0gImFueSIpIHRva2VuaXNlci5lcnJvcigiVHlw
ZSBgYW55YCBjYW5ub3QgYmUgbWFkZSBudWxsYWJsZSIpOworICByZXR1cm4gcmV0OworfQorCisv
KioKKyAqIEBwYXJhbSB7aW1wb3J0KCIuLi90b2tlbmlzZXIiKS5Ub2tlbmlzZXJ9IHRva2VuaXNl
cgorICogQHBhcmFtIHtzdHJpbmd9IHR5cGUKKyAqLworZnVuY3Rpb24gdW5pb25fdHlwZSh0b2tl
bmlzZXIsIHR5cGUpIHsKKyAgY29uc3QgdG9rZW5zID0ge307CisgIHRva2Vucy5vcGVuID0gdG9r
ZW5pc2VyLmNvbnN1bWUoIigiKTsKKyAgaWYgKCF0b2tlbnMub3BlbikgcmV0dXJuOworICBjb25z
dCByZXQgPSBuZXcgVHlwZSh7IHNvdXJjZTogdG9rZW5pc2VyLnNvdXJjZSwgdG9rZW5zIH0pOwor
ICByZXQudHlwZSA9IHR5cGUgfHwgbnVsbDsKKyAgd2hpbGUgKHRydWUpIHsKKyAgICBjb25zdCB0
eXAgPSBPYmplY3QoX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX1sidHlw
ZV93aXRoX2V4dGVuZGVkX2F0dHJpYnV0ZXMiXSkodG9rZW5pc2VyKSB8fCB0b2tlbmlzZXIuZXJy
b3IoIk5vIHR5cGUgYWZ0ZXIgb3BlbiBwYXJlbnRoZXNpcyBvciAnb3InIGluIHVuaW9uIHR5cGUi
KTsKKyAgICBpZiAodHlwLmlkbFR5cGUgPT09ICJhbnkiKSB0b2tlbmlzZXIuZXJyb3IoIlR5cGUg
YGFueWAgY2Fubm90IGJlIGluY2x1ZGVkIGluIGEgdW5pb24gdHlwZSIpOworICAgIHJldC5zdWJ0
eXBlLnB1c2godHlwKTsKKyAgICBjb25zdCBvciA9IHRva2VuaXNlci5jb25zdW1lKCJvciIpOwor
ICAgIGlmIChvcikgeworICAgICAgdHlwLnRva2Vucy5zZXBhcmF0b3IgPSBvcjsKICAgICB9Cisg
ICAgZWxzZSBicmVhazsKKyAgfQorICBpZiAocmV0LmlkbFR5cGUubGVuZ3RoIDwgMikgeworICAg
IHRva2VuaXNlci5lcnJvcigiQXQgbGVhc3QgdHdvIHR5cGVzIGFyZSBleHBlY3RlZCBpbiBhIHVu
aW9uIHR5cGUgYnV0IGZvdW5kIGxlc3MiKTsKKyAgfQorICB0b2tlbnMuY2xvc2UgPSB0b2tlbmlz
ZXIuY29uc3VtZSgiKSIpIHx8IHRva2VuaXNlci5lcnJvcigiVW50ZXJtaW5hdGVkIHVuaW9uIHR5
cGUiKTsKKyAgdHlwZV9zdWZmaXgodG9rZW5pc2VyLCByZXQpOworICByZXR1cm4gcmV0OworfQor
CitjbGFzcyBUeXBlIGV4dGVuZHMgX2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBf
X1siQmFzZSJdIHsKKyAgLyoqCisgICAqIEBwYXJhbSB7aW1wb3J0KCIuLi90b2tlbmlzZXIiKS5U
b2tlbmlzZXJ9IHRva2VuaXNlcgorICAgKiBAcGFyYW0ge3N0cmluZ30gdHlwZU5hbWUKKyAgICov
CisgIHN0YXRpYyBwYXJzZSh0b2tlbmlzZXIsIHR5cGVOYW1lKSB7CisgICAgcmV0dXJuIHNpbmds
ZV90eXBlKHRva2VuaXNlciwgdHlwZU5hbWUpIHx8IHVuaW9uX3R5cGUodG9rZW5pc2VyLCB0eXBl
TmFtZSk7CisgIH0KIAotICAgIGZ1bmN0aW9uIHN0YXRpY19tZW1iZXIoKSB7Ci0gICAgICBpZiAo
IWNvbnN1bWUoInN0YXRpYyIpKSByZXR1cm47Ci0gICAgICBjb25zdCBtZW1iZXIgPSBhdHRyaWJ1
dGUoeyBub0luaGVyaXQ6IHRydWUgfSkgfHwKLSAgICAgICAgb3BlcmF0aW9uKHsgcmVndWxhcjog
dHJ1ZSB9KSB8fAotICAgICAgICBlcnJvcigiTm8gYm9keSBpbiBzdGF0aWMgbWVtYmVyIik7Ci0g
ICAgICBtZW1iZXIuc3RhdGljID0gdHJ1ZTsKLSAgICAgIHJldHVybiBtZW1iZXI7CisgIGNvbnN0
cnVjdG9yKHsgc291cmNlLCB0b2tlbnMgfSkgeworICAgIHN1cGVyKHsgc291cmNlLCB0b2tlbnMg
fSk7CisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsICJzdWJ0eXBlIiwgeyB2YWx1ZTog
W10gfSk7CisgICAgdGhpcy5leHRBdHRycyA9IFtdOworICB9CisKKyAgZ2V0IGdlbmVyaWMoKSB7
CisgICAgaWYgKHRoaXMuc3VidHlwZS5sZW5ndGggJiYgdGhpcy50b2tlbnMuYmFzZSkgeworICAg
ICAgcmV0dXJuIHRoaXMudG9rZW5zLmJhc2UudmFsdWU7CisgICAgfQorICAgIHJldHVybiAiIjsK
KyAgfQorICBnZXQgbnVsbGFibGUoKSB7CisgICAgcmV0dXJuIEJvb2xlYW4odGhpcy50b2tlbnMu
bnVsbGFibGUpOworICB9CisgIGdldCB1bmlvbigpIHsKKyAgICByZXR1cm4gQm9vbGVhbih0aGlz
LnN1YnR5cGUubGVuZ3RoKSAmJiAhdGhpcy50b2tlbnMuYmFzZTsKKyAgfQorICBnZXQgaWRsVHlw
ZSgpIHsKKyAgICBpZiAodGhpcy5zdWJ0eXBlLmxlbmd0aCkgeworICAgICAgcmV0dXJuIHRoaXMu
c3VidHlwZTsKICAgICB9CisgICAgLy8gQWRkaW5nIHByZWZpeGVzL3Bvc3RmaXhlcyBmb3IgInVu
cmVzdHJpY3RlZCBmbG9hdCIsIGV0Yy4KKyAgICBjb25zdCBuYW1lID0gWworICAgICAgdGhpcy50
b2tlbnMucHJlZml4LAorICAgICAgdGhpcy50b2tlbnMuYmFzZSwKKyAgICAgIHRoaXMudG9rZW5z
LnBvc3RmaXgKKyAgICBdLmZpbHRlcih0ID0+IHQpLm1hcCh0ID0+IHQudmFsdWUpLmpvaW4oIiAi
KTsKKyAgICByZXR1cm4gT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVM
RV8xX19bInVuZXNjYXBlIl0pKG5hbWUpOworICB9CiAKLSAgICBmdW5jdGlvbiBzdHJpbmdpZmll
cigpIHsKLSAgICAgIGlmICghY29uc3VtZSgic3RyaW5naWZpZXIiKSkgcmV0dXJuOwotICAgICAg
aWYgKGNvbnN1bWUoIjsiKSkgewotICAgICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih7fSwgRU1Q
VFlfT1BFUkFUSU9OLCB7IHN0cmluZ2lmaWVyOiB0cnVlIH0pOwotICAgICAgfQotICAgICAgY29u
c3QgbWVtYmVyID0gYXR0cmlidXRlKHsgbm9Jbmhlcml0OiB0cnVlIH0pIHx8Ci0gICAgICAgIG9w
ZXJhdGlvbih7IHJlZ3VsYXI6IHRydWUgfSkgfHwKLSAgICAgICAgZXJyb3IoIlVudGVybWluYXRl
ZCBzdHJpbmdpZmllciIpOwotICAgICAgbWVtYmVyLnN0cmluZ2lmaWVyID0gdHJ1ZTsKLSAgICAg
IHJldHVybiBtZW1iZXI7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gaWRlbnRpZmllcnMoKSB7Ci0g
ICAgICBjb25zdCBhcnIgPSBbXTsKLSAgICAgIGNvbnN0IGlkID0gY29uc3VtZShJRCk7Ci0gICAg
ICBpZiAoaWQpIHsKLSAgICAgICAgYXJyLnB1c2goaWQudmFsdWUpOworICAqdmFsaWRhdGUoZGVm
cykgeworICAgIC8qCisgICAgICogSWYgYSB1bmlvbiBpcyBudWxsYWJsZSwgaXRzIHN1YnVuaW9u
cyBjYW5ub3QgaW5jbHVkZSBhIGRpY3Rpb25hcnkKKyAgICAgKiBJZiBub3QsIHN1YnVuaW9ucyBt
YXkgaW5jbHVkZSBkaWN0aW9uYXJpZXMgaWYgZWFjaCB1bmlvbiBpcyBub3QgbnVsbGFibGUKKyAg
ICAgKi8KKyAgICBjb25zdCB0eXBlZGVmID0gIXRoaXMudW5pb24gJiYgZGVmcy51bmlxdWUuZ2V0
KHRoaXMuaWRsVHlwZSk7CisgICAgY29uc3QgdGFyZ2V0ID0KKyAgICAgIHRoaXMudW5pb24gPyB0
aGlzIDoKKyAgICAgICh0eXBlZGVmICYmIHR5cGVkZWYudHlwZSA9PT0gInR5cGVkZWYiKSA/IHR5
cGVkZWYuaWRsVHlwZSA6CisgICAgICB1bmRlZmluZWQ7CisgICAgaWYgKHRhcmdldCAmJiB0aGlz
Lm51bGxhYmxlKSB7CisgICAgICAvLyBkbyBub3QgYWxsb3cgYW55IGRpY3Rpb25hcnkKKyAgICAg
IGNvbnN0IHJlZmVyZW5jZSA9IE9iamVjdChfdmFsaWRhdG9yc19oZWxwZXJzX2pzX19XRUJQQUNL
X0lNUE9SVEVEX01PRFVMRV80X19bImlkbFR5cGVJbmNsdWRlc0RpY3Rpb25hcnkiXSkodGFyZ2V0
LCBkZWZzKTsKKyAgICAgIGlmIChyZWZlcmVuY2UpIHsKKyAgICAgICAgY29uc3QgdGFyZ2V0VG9r
ZW4gPSAodGhpcy51bmlvbiA/IHJlZmVyZW5jZSA6IHRoaXMpLnRva2Vucy5iYXNlOworICAgICAg
ICBjb25zdCBtZXNzYWdlID0gYE51bGxhYmxlIHVuaW9uIGNhbm5vdCBpbmNsdWRlIGEgZGljdGlv
bmFyeSB0eXBlYDsKKyAgICAgICAgeWllbGQgT2JqZWN0KF9lcnJvcl9qc19fV0VCUEFDS19JTVBP
UlRFRF9NT0RVTEVfM19fWyJ2YWxpZGF0aW9uRXJyb3IiXSkodGhpcy5zb3VyY2UsIHRhcmdldFRv
a2VuLCB0aGlzLCBtZXNzYWdlKTsKICAgICAgIH0KLSAgICAgIGVsc2UgZXJyb3IoIkV4cGVjdGVk
IGlkZW50aWZpZXJzIGJ1dCBub3QgZm91bmQiKTsKLSAgICAgIHdoaWxlICh0cnVlKSB7Ci0gICAg
ICAgIGlmIChjb25zdW1lKCIsIikpIHsKLSAgICAgICAgICBjb25zdCBuYW1lID0gY29uc3VtZShJ
RCkgfHwgZXJyb3IoIlRyYWlsaW5nIGNvbW1hIGluIGlkZW50aWZpZXJzIGxpc3QiKTsKLSAgICAg
ICAgICBhcnIucHVzaChuYW1lLnZhbHVlKTsKLSAgICAgICAgfSBlbHNlIGJyZWFrOworICAgIH0g
ZWxzZSB7CisgICAgICAvLyBhbGxvdyBzb21lIGRpY3Rpb25hcnkKKyAgICAgIGZvciAoY29uc3Qg
c3VidHlwZSBvZiB0aGlzLnN1YnR5cGUpIHsKKyAgICAgICAgeWllbGQqIHN1YnR5cGUudmFsaWRh
dGUoZGVmcyk7CiAgICAgICB9Ci0gICAgICByZXR1cm4gYXJyOwotICAgIH0KLQotICAgIGZ1bmN0
aW9uIGl0ZXJhYmxlX3R5cGUoKSB7Ci0gICAgICBpZiAoY29uc3VtZSgiaXRlcmFibGUiKSkgcmV0
dXJuICJpdGVyYWJsZSI7Ci0gICAgICBlbHNlIGlmIChjb25zdW1lKCJsZWdhY3lpdGVyYWJsZSIp
KSByZXR1cm4gImxlZ2FjeWl0ZXJhYmxlIjsKLSAgICAgIGVsc2UgaWYgKGNvbnN1bWUoIm1hcGxp
a2UiKSkgcmV0dXJuICJtYXBsaWtlIjsKLSAgICAgIGVsc2UgaWYgKGNvbnN1bWUoInNldGxpa2Ui
KSkgcmV0dXJuICJzZXRsaWtlIjsKLSAgICAgIGVsc2UgcmV0dXJuOwogICAgIH0KKyAgfQorfQog
Ci0gICAgZnVuY3Rpb24gcmVhZG9ubHlfaXRlcmFibGVfdHlwZSgpIHsKLSAgICAgIGlmIChjb25z
dW1lKCJtYXBsaWtlIikpIHJldHVybiAibWFwbGlrZSI7Ci0gICAgICBlbHNlIGlmIChjb25zdW1l
KCJzZXRsaWtlIikpIHJldHVybiAic2V0bGlrZSI7Ci0gICAgICBlbHNlIHJldHVybjsKLSAgICB9
CiAKLSAgICBmdW5jdGlvbiBpdGVyYWJsZSgpIHsKLSAgICAgIGNvbnN0IHN0YXJ0X3Bvc2l0aW9u
ID0gY29uc3VtZV9wb3NpdGlvbjsKLSAgICAgIGNvbnN0IHJldCA9IHsgdHlwZTogbnVsbCwgaWRs
VHlwZTogbnVsbCwgcmVhZG9ubHk6IGZhbHNlIH07Ci0gICAgICBpZiAoY29uc3VtZSgicmVhZG9u
bHkiKSkgewotICAgICAgICByZXQucmVhZG9ubHkgPSB0cnVlOwotICAgICAgfQotICAgICAgY29u
c3QgY29uc3VtZUl0VHlwZSA9IHJldC5yZWFkb25seSA/IHJlYWRvbmx5X2l0ZXJhYmxlX3R5cGUg
OiBpdGVyYWJsZV90eXBlOworLyoqKi8gfSksCisvKiA2ICovCisvKioqLyAoZnVuY3Rpb24obW9k
dWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CiAKLSAgICAg
IGNvbnN0IGl0dHlwZSA9IGNvbnN1bWVJdFR5cGUoKTsKLSAgICAgIGlmICghaXR0eXBlKSB7Ci0g
ICAgICAgIHVuY29uc3VtZShzdGFydF9wb3NpdGlvbik7Ci0gICAgICAgIHJldHVybjsKLSAgICAg
IH0KKyJ1c2Ugc3RyaWN0IjsKK19fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0
c19fKTsKKy8qIGhhcm1vbnkgZXhwb3J0IChiaW5kaW5nKSAqLyBfX3dlYnBhY2tfcmVxdWlyZV9f
LmQoX193ZWJwYWNrX2V4cG9ydHNfXywgIkJhc2UiLCBmdW5jdGlvbigpIHsgcmV0dXJuIEJhc2U7
IH0pOworY2xhc3MgQmFzZSB7CisgIGNvbnN0cnVjdG9yKHsgc291cmNlLCB0b2tlbnMgfSkgewor
ICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHRoaXMsIHsKKyAgICAgIHNvdXJjZTogeyB2YWx1
ZTogc291cmNlIH0sCisgICAgICB0b2tlbnM6IHsgdmFsdWU6IHRva2VucyB9CisgICAgfSk7Cisg
IH0KIAotICAgICAgY29uc3Qgc2Vjb25kVHlwZVJlcXVpcmVkID0gaXR0eXBlID09PSAibWFwbGlr
ZSI7Ci0gICAgICBjb25zdCBzZWNvbmRUeXBlQWxsb3dlZCA9IHNlY29uZFR5cGVSZXF1aXJlZCB8
fCBpdHR5cGUgPT09ICJpdGVyYWJsZSI7Ci0gICAgICByZXQudHlwZSA9IGl0dHlwZTsKLSAgICAg
IGlmIChyZXQudHlwZSAhPT0gJ21hcGxpa2UnICYmIHJldC50eXBlICE9PSAnc2V0bGlrZScpCi0g
ICAgICAgIGRlbGV0ZSByZXQucmVhZG9ubHk7Ci0gICAgICBpZiAoY29uc3VtZSgiPCIpKSB7Ci0g
ICAgICAgIHJldC5pZGxUeXBlID0gW3R5cGVfd2l0aF9leHRlbmRlZF9hdHRyaWJ1dGVzKCldIHx8
IGVycm9yKGBFcnJvciBwYXJzaW5nICR7aXR0eXBlfSBkZWNsYXJhdGlvbmApOwotICAgICAgICBp
ZiAoc2Vjb25kVHlwZUFsbG93ZWQpIHsKLSAgICAgICAgICBpZiAoY29uc3VtZSgiLCIpKSB7Ci0g
ICAgICAgICAgICByZXQuaWRsVHlwZS5wdXNoKHR5cGVfd2l0aF9leHRlbmRlZF9hdHRyaWJ1dGVz
KCkpOwotICAgICAgICAgIH0KLSAgICAgICAgICBlbHNlIGlmIChzZWNvbmRUeXBlUmVxdWlyZWQp
Ci0gICAgICAgICAgICBlcnJvcihgTWlzc2luZyBzZWNvbmQgdHlwZSBhcmd1bWVudCBpbiAke2l0
dHlwZX0gZGVjbGFyYXRpb25gKTsKLSAgICAgICAgfQotICAgICAgICBpZiAoIWNvbnN1bWUoIj4i
KSkgZXJyb3IoYFVudGVybWluYXRlZCAke2l0dHlwZX0gZGVjbGFyYXRpb25gKTsKLSAgICAgICAg
aWYgKCFjb25zdW1lKCI7IikpIGVycm9yKGBNaXNzaW5nIHNlbWljb2xvbiBhZnRlciAke2l0dHlw
ZX0gZGVjbGFyYXRpb25gKTsKLSAgICAgIH0gZWxzZQotICAgICAgICBlcnJvcihgRXJyb3IgcGFy
c2luZyAke2l0dHlwZX0gZGVjbGFyYXRpb25gKTsKLQotICAgICAgcmV0dXJuIHJldDsKLSAgICB9
Ci0KLSAgICBmdW5jdGlvbiBpbnRlcmZhY2VfcmVzdChpc1BhcnRpYWwsIHR5cGVOYW1lID0gImlu
dGVyZmFjZSIpIHsKLSAgICAgIGNvbnN0IG5hbWUgPSBjb25zdW1lKElEKSB8fCBlcnJvcigiTm8g
bmFtZSBmb3IgaW50ZXJmYWNlIik7Ci0gICAgICBjb25zdCBtZW1zID0gW107Ci0gICAgICBjb25z
dCByZXQgPSBjdXJyZW50ID0gewotICAgICAgICB0eXBlOiB0eXBlTmFtZSwKLSAgICAgICAgbmFt
ZTogaXNQYXJ0aWFsID8gbmFtZS52YWx1ZSA6IHNhbml0aXplX25hbWUobmFtZS52YWx1ZSwgImlu
dGVyZmFjZSIpLAotICAgICAgICBwYXJ0aWFsOiBpc1BhcnRpYWwsCi0gICAgICAgIG1lbWJlcnM6
IG1lbXMKLSAgICAgIH07Ci0gICAgICBpZiAoIWlzUGFydGlhbCkgcmV0LmluaGVyaXRhbmNlID0g
aW5oZXJpdGFuY2UoKSB8fCBudWxsOwotICAgICAgY29uc3VtZSgieyIpIHx8IGVycm9yKCJCb2R5
bGVzcyBpbnRlcmZhY2UiKTsKLSAgICAgIHdoaWxlICh0cnVlKSB7Ci0gICAgICAgIGlmIChjb25z
dW1lKCJ9IikpIHsKLSAgICAgICAgICBjb25zdW1lKCI7IikgfHwgZXJyb3IoIk1pc3Npbmcgc2Vt
aWNvbG9uIGFmdGVyIGludGVyZmFjZSIpOwotICAgICAgICAgIHJldHVybiByZXQ7CisgIHRvSlNP
TigpIHsKKyAgICBjb25zdCBqc29uID0geyB0eXBlOiB1bmRlZmluZWQsIG5hbWU6IHVuZGVmaW5l
ZCwgaW5oZXJpdGFuY2U6IHVuZGVmaW5lZCB9OworICAgIGxldCBwcm90byA9IHRoaXM7CisgICAg
d2hpbGUgKHByb3RvICE9PSBPYmplY3QucHJvdG90eXBlKSB7CisgICAgICBjb25zdCBkZXNjTWFw
ID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMocHJvdG8pOworICAgICAgZm9yIChj
b25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoZGVzY01hcCkpIHsKKyAgICAgICAg
aWYgKHZhbHVlLmVudW1lcmFibGUgfHwgdmFsdWUuZ2V0KSB7CisgICAgICAgICAganNvbltrZXld
ID0gdGhpc1trZXldOwogICAgICAgICB9Ci0gICAgICAgIGNvbnN0IGVhID0gZXh0ZW5kZWRfYXR0
cnMoKTsKLSAgICAgICAgY29uc3QgbWVtID0gY29uc3RfKCkgfHwKLSAgICAgICAgICBzdGF0aWNf
bWVtYmVyKCkgfHwKLSAgICAgICAgICBzdHJpbmdpZmllcigpIHx8Ci0gICAgICAgICAgaXRlcmFi
bGUoKSB8fAotICAgICAgICAgIGF0dHJpYnV0ZSgpIHx8Ci0gICAgICAgICAgb3BlcmF0aW9uKCkg
fHwKLSAgICAgICAgICBlcnJvcigiVW5rbm93biBtZW1iZXIiKTsKLSAgICAgICAgbWVtLmV4dEF0
dHJzID0gZWE7Ci0gICAgICAgIHJldC5tZW1iZXJzLnB1c2gobWVtKTsKICAgICAgIH0KKyAgICAg
IHByb3RvID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKHByb3RvKTsKICAgICB9CisgICAgcmV0dXJu
IGpzb247CisgIH0KK30KIAotICAgIGZ1bmN0aW9uIG1peGluX3Jlc3QoaXNQYXJ0aWFsKSB7Ci0g
ICAgICBpZiAoIWNvbnN1bWUoIm1peGluIikpIHJldHVybjsKLSAgICAgIGNvbnN0IG5hbWUgPSBj
b25zdW1lKElEKSB8fCBlcnJvcigiTm8gbmFtZSBmb3IgaW50ZXJmYWNlIG1peGluIik7Ci0gICAg
ICBjb25zdCBtZW1zID0gW107Ci0gICAgICBjb25zdCByZXQgPSBjdXJyZW50ID0gewotICAgICAg
ICB0eXBlOiAiaW50ZXJmYWNlIG1peGluIiwKLSAgICAgICAgbmFtZTogaXNQYXJ0aWFsID8gbmFt
ZS52YWx1ZSA6IHNhbml0aXplX25hbWUobmFtZS52YWx1ZSwgImludGVyZmFjZSBtaXhpbiIpLAot
ICAgICAgICBwYXJ0aWFsOiBpc1BhcnRpYWwsCi0gICAgICAgIG1lbWJlcnM6IG1lbXMKLSAgICAg
IH07Ci0gICAgICBjb25zdW1lKCJ7IikgfHwgZXJyb3IoIkJvZHlsZXNzIGludGVyZmFjZSBtaXhp
biIpOwotICAgICAgd2hpbGUgKHRydWUpIHsKLSAgICAgICAgaWYgKGNvbnN1bWUoIn0iKSkgewot
ICAgICAgICAgIGNvbnN1bWUoIjsiKSB8fCBlcnJvcigiTWlzc2luZyBzZW1pY29sb24gYWZ0ZXIg
aW50ZXJmYWNlIG1peGluIik7Ci0gICAgICAgICAgcmV0dXJuIHJldDsKLSAgICAgICAgfQotICAg
ICAgICBjb25zdCBlYSA9IGV4dGVuZGVkX2F0dHJzKCk7Ci0gICAgICAgIGNvbnN0IG1lbSA9IGNv
bnN0XygpIHx8Ci0gICAgICAgICAgc3RyaW5naWZpZXIoKSB8fAotICAgICAgICAgIGF0dHJpYnV0
ZSh7IG5vSW5oZXJpdDogdHJ1ZSB9KSB8fAotICAgICAgICAgIG9wZXJhdGlvbih7IHJlZ3VsYXI6
IHRydWUgfSkgfHwKLSAgICAgICAgICBlcnJvcigiVW5rbm93biBtZW1iZXIiKTsKLSAgICAgICAg
bWVtLmV4dEF0dHJzID0gZWE7Ci0gICAgICAgIHJldC5tZW1iZXJzLnB1c2gobWVtKTsKLSAgICAg
IH0KLSAgICB9CiAKLSAgICBmdW5jdGlvbiBpbnRlcmZhY2VfKGlzUGFydGlhbCkgewotICAgICAg
aWYgKCFjb25zdW1lKCJpbnRlcmZhY2UiKSkgcmV0dXJuOwotICAgICAgcmV0dXJuIG1peGluX3Jl
c3QoaXNQYXJ0aWFsKSB8fAotICAgICAgICBpbnRlcmZhY2VfcmVzdChpc1BhcnRpYWwpIHx8Ci0g
ICAgICAgIGVycm9yKCJJbnRlcmZhY2UgaGFzIG5vIHByb3BlciBib2R5Iik7Ci0gICAgfQotCi0g
ICAgZnVuY3Rpb24gbmFtZXNwYWNlKGlzUGFydGlhbCkgewotICAgICAgaWYgKCFjb25zdW1lKCJu
YW1lc3BhY2UiKSkgcmV0dXJuOwotICAgICAgY29uc3QgbmFtZSA9IGNvbnN1bWUoSUQpIHx8IGVy
cm9yKCJObyBuYW1lIGZvciBuYW1lc3BhY2UiKTsKLSAgICAgIGNvbnN0IG1lbXMgPSBbXTsKLSAg
ICAgIGNvbnN0IHJldCA9IGN1cnJlbnQgPSB7Ci0gICAgICAgIHR5cGU6ICJuYW1lc3BhY2UiLAot
ICAgICAgICBuYW1lOiBpc1BhcnRpYWwgPyBuYW1lLnZhbHVlIDogc2FuaXRpemVfbmFtZShuYW1l
LnZhbHVlLCAibmFtZXNwYWNlIiksCi0gICAgICAgIHBhcnRpYWw6IGlzUGFydGlhbCwKLSAgICAg
ICAgbWVtYmVyczogbWVtcwotICAgICAgfTsKLSAgICAgIGNvbnN1bWUoInsiKSB8fCBlcnJvcigi
Qm9keWxlc3MgbmFtZXNwYWNlIik7Ci0gICAgICB3aGlsZSAodHJ1ZSkgewotICAgICAgICBpZiAo
Y29uc3VtZSgifSIpKSB7Ci0gICAgICAgICAgY29uc3VtZSgiOyIpIHx8IGVycm9yKCJNaXNzaW5n
IHNlbWljb2xvbiBhZnRlciBuYW1lc3BhY2UiKTsKLSAgICAgICAgICByZXR1cm4gcmV0OwotICAg
ICAgICB9Ci0gICAgICAgIGNvbnN0IGVhID0gZXh0ZW5kZWRfYXR0cnMoKTsKLSAgICAgICAgY29u
c3QgbWVtID0gYXR0cmlidXRlKHsgbm9Jbmhlcml0OiB0cnVlLCByZWFkb25seTogdHJ1ZSB9KSB8
fAotICAgICAgICAgIG9wZXJhdGlvbih7IHJlZ3VsYXI6IHRydWUgfSkgfHwKLSAgICAgICAgICBl
cnJvcigiVW5rbm93biBtZW1iZXIiKTsKLSAgICAgICAgbWVtLmV4dEF0dHJzID0gZWE7Ci0gICAg
ICAgIHJldC5tZW1iZXJzLnB1c2gobWVtKTsKLSAgICAgIH0KLSAgICB9CisvKioqLyB9KSwKKy8q
IDcgKi8KKy8qKiovIChmdW5jdGlvbihtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2Vi
cGFja19yZXF1aXJlX18pIHsKIAotICAgIGZ1bmN0aW9uIHBhcnRpYWwoKSB7Ci0gICAgICBpZiAo
IWNvbnN1bWUoInBhcnRpYWwiKSkgcmV0dXJuOwotICAgICAgY29uc3QgdGhpbmcgPSBkaWN0aW9u
YXJ5KHRydWUpIHx8Ci0gICAgICAgIGludGVyZmFjZV8odHJ1ZSkgfHwKLSAgICAgICAgbmFtZXNw
YWNlKHRydWUpIHx8Ci0gICAgICAgIGVycm9yKCJQYXJ0aWFsIGRvZXNuJ3QgYXBwbHkgdG8gYW55
dGhpbmciKTsKLSAgICAgIHJldHVybiB0aGluZzsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBkaWN0
aW9uYXJ5KGlzUGFydGlhbCkgewotICAgICAgaWYgKCFjb25zdW1lKCJkaWN0aW9uYXJ5IikpIHJl
dHVybjsKLSAgICAgIGNvbnN0IG5hbWUgPSBjb25zdW1lKElEKSB8fCBlcnJvcigiTm8gbmFtZSBm
b3IgZGljdGlvbmFyeSIpOwotICAgICAgY29uc3QgbWVtcyA9IFtdOwotICAgICAgY29uc3QgcmV0
ID0gY3VycmVudCA9IHsKLSAgICAgICAgdHlwZTogImRpY3Rpb25hcnkiLAotICAgICAgICBuYW1l
OiBpc1BhcnRpYWwgPyBuYW1lLnZhbHVlIDogc2FuaXRpemVfbmFtZShuYW1lLnZhbHVlLCAiZGlj
dGlvbmFyeSIpLAotICAgICAgICBwYXJ0aWFsOiBpc1BhcnRpYWwsCi0gICAgICAgIG1lbWJlcnM6
IG1lbXMKLSAgICAgIH07Ci0gICAgICBpZiAoIWlzUGFydGlhbCkgcmV0LmluaGVyaXRhbmNlID0g
aW5oZXJpdGFuY2UoKSB8fCBudWxsOwotICAgICAgY29uc3VtZSgieyIpIHx8IGVycm9yKCJCb2R5
bGVzcyBkaWN0aW9uYXJ5Iik7Ci0gICAgICB3aGlsZSAodHJ1ZSkgewotICAgICAgICBpZiAoY29u
c3VtZSgifSIpKSB7Ci0gICAgICAgICAgY29uc3VtZSgiOyIpIHx8IGVycm9yKCJNaXNzaW5nIHNl
bWljb2xvbiBhZnRlciBkaWN0aW9uYXJ5Iik7Ci0gICAgICAgICAgcmV0dXJuIHJldDsKLSAgICAg
ICAgfQotICAgICAgICBjb25zdCBlYSA9IGV4dGVuZGVkX2F0dHJzKCk7Ci0gICAgICAgIGNvbnN0
IHJlcXVpcmVkID0gY29uc3VtZSgicmVxdWlyZWQiKTsKLSAgICAgICAgY29uc3QgdHlwID0gdHlw
ZV93aXRoX2V4dGVuZGVkX2F0dHJpYnV0ZXMoImRpY3Rpb25hcnktdHlwZSIpIHx8IGVycm9yKCJO
byB0eXBlIGZvciBkaWN0aW9uYXJ5IG1lbWJlciIpOwotICAgICAgICBjb25zdCBuYW1lID0gY29u
c3VtZShJRCkgfHwgZXJyb3IoIk5vIG5hbWUgZm9yIGRpY3Rpb25hcnkgbWVtYmVyIik7Ci0gICAg
ICAgIGNvbnN0IGRmbHQgPSBkZWZhdWx0XygpIHx8IG51bGw7Ci0gICAgICAgIGlmIChyZXF1aXJl
ZCAmJiBkZmx0KSBlcnJvcigiUmVxdWlyZWQgbWVtYmVyIG11c3Qgbm90IGhhdmUgYSBkZWZhdWx0
Iik7Ci0gICAgICAgIGNvbnN0IG1lbWJlciA9IHsKLSAgICAgICAgICB0eXBlOiAiZmllbGQiLAot
ICAgICAgICAgIG5hbWU6IHVuZXNjYXBlKG5hbWUudmFsdWUpLAotICAgICAgICAgIGVzY2FwZWRO
YW1lOiBuYW1lLnZhbHVlLAotICAgICAgICAgIHJlcXVpcmVkOiAhIXJlcXVpcmVkLAotICAgICAg
ICAgIGlkbFR5cGU6IHR5cCwKLSAgICAgICAgICBleHRBdHRyczogZWEsCi0gICAgICAgICAgZGVm
YXVsdDogZGZsdAotICAgICAgICB9OwotICAgICAgICByZXQubWVtYmVycy5wdXNoKG1lbWJlcik7
Ci0gICAgICAgIGNvbnN1bWUoIjsiKSB8fCBlcnJvcigiVW50ZXJtaW5hdGVkIGRpY3Rpb25hcnkg
bWVtYmVyIik7CisidXNlIHN0cmljdCI7CitfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNr
X2V4cG9ydHNfXyk7CisvKiBoYXJtb255IGV4cG9ydCAoYmluZGluZykgKi8gX193ZWJwYWNrX3Jl
cXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sICJpZGxUeXBlSW5jbHVkZXNEaWN0aW9uYXJ5
IiwgZnVuY3Rpb24oKSB7IHJldHVybiBpZGxUeXBlSW5jbHVkZXNEaWN0aW9uYXJ5OyB9KTsKKy8q
KgorICogQHBhcmFtIHsqfSBpZGxUeXBlCisgKiBAcGFyYW0geypbXX0gZGVmcworICogQHBhcmFt
IHtvYmplY3R9IFtvcHRpb25zXQorICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy51c2VOdWxs
YWJsZUlubmVyXSB1c2Ugd2hlbiB0aGUgaW5wdXQgaWRsVHlwZSBpcyBudWxsYWJsZSBhbmQgeW91
IHdhbnQgdG8gdXNlIGl0cyBpbm5lciB0eXBlCisgKiBAcmV0dXJuIHRoZSB0eXBlIHJlZmVyZW5j
ZSB0aGF0IHVsdGltYXRlbHkgaW5jbHVkZXMgZGljdGlvbmFyeS4KKyAqLworZnVuY3Rpb24gaWRs
VHlwZUluY2x1ZGVzRGljdGlvbmFyeShpZGxUeXBlLCBkZWZzLCB7IHVzZU51bGxhYmxlSW5uZXIg
fSA9IHt9KSB7CisgIGlmICghaWRsVHlwZS51bmlvbikgeworICAgIGNvbnN0IGRlZiA9IGRlZnMu
dW5pcXVlLmdldChpZGxUeXBlLmlkbFR5cGUpOworICAgIGlmICghZGVmKSB7CisgICAgICByZXR1
cm47CisgICAgfQorICAgIGlmIChkZWYudHlwZSA9PT0gInR5cGVkZWYiKSB7CisgICAgICBjb25z
dCB7IHR5cGVkZWZJbmNsdWRlc0RpY3Rpb25hcnl9ID0gZGVmcy5jYWNoZTsKKyAgICAgIGlmICh0
eXBlZGVmSW5jbHVkZXNEaWN0aW9uYXJ5LmhhcyhkZWYpKSB7CisgICAgICAgIC8vIE5vdGUgdGhh
dCB0aGlzIGFsc28gaGFsdHMgd2hlbiBpdCBtZXQgaW5kZXRlcm1pbmF0ZSBzdGF0ZQorICAgICAg
ICAvLyB0byBwcmV2ZW50IGluZmluaXRlIHJlY3Vyc2lvbgorICAgICAgICByZXR1cm4gdHlwZWRl
ZkluY2x1ZGVzRGljdGlvbmFyeS5nZXQoZGVmKTsKKyAgICAgIH0KKyAgICAgIGRlZnMuY2FjaGUu
dHlwZWRlZkluY2x1ZGVzRGljdGlvbmFyeS5zZXQoZGVmLCB1bmRlZmluZWQpOyAvLyBpbmRldGVy
bWluYXRlIHN0YXRlCisgICAgICBjb25zdCByZXN1bHQgPSBpZGxUeXBlSW5jbHVkZXNEaWN0aW9u
YXJ5KGRlZi5pZGxUeXBlLCBkZWZzKTsKKyAgICAgIGRlZnMuY2FjaGUudHlwZWRlZkluY2x1ZGVz
RGljdGlvbmFyeS5zZXQoZGVmLCByZXN1bHQpOworICAgICAgaWYgKHJlc3VsdCkgeworICAgICAg
ICByZXR1cm4gaWRsVHlwZTsKICAgICAgIH0KICAgICB9Ci0KLSAgICBmdW5jdGlvbiBlbnVtXygp
IHsKLSAgICAgIGlmICghY29uc3VtZSgiZW51bSIpKSByZXR1cm47Ci0gICAgICBjb25zdCBuYW1l
ID0gY29uc3VtZShJRCkgfHwgZXJyb3IoIk5vIG5hbWUgZm9yIGVudW0iKTsKLSAgICAgIGNvbnN0
IHZhbHMgPSBbXTsKLSAgICAgIGNvbnN0IHJldCA9IGN1cnJlbnQgPSB7Ci0gICAgICAgIHR5cGU6
ICJlbnVtIiwKLSAgICAgICAgbmFtZTogc2FuaXRpemVfbmFtZShuYW1lLnZhbHVlLCAiZW51bSIp
LAotICAgICAgICB2YWx1ZXM6IHZhbHMKLSAgICAgIH07Ci0gICAgICBjb25zdW1lKCJ7IikgfHwg
ZXJyb3IoIk5vIGN1cmx5IGZvciBlbnVtIik7Ci0gICAgICBsZXQgdmFsdWVfZXhwZWN0ZWQgPSB0
cnVlOwotICAgICAgd2hpbGUgKHRydWUpIHsKLSAgICAgICAgaWYgKGNvbnN1bWUoIn0iKSkgewot
ICAgICAgICAgIGlmICghcmV0LnZhbHVlcy5sZW5ndGgpIGVycm9yKCJObyB2YWx1ZSBpbiBlbnVt
Iik7Ci0gICAgICAgICAgY29uc3VtZSgiOyIpIHx8IGVycm9yKCJObyBzZW1pY29sb24gYWZ0ZXIg
ZW51bSIpOwotICAgICAgICAgIHJldHVybiByZXQ7Ci0gICAgICAgIH0KLSAgICAgICAgZWxzZSBp
ZiAoIXZhbHVlX2V4cGVjdGVkKSB7Ci0gICAgICAgICAgZXJyb3IoIk5vIGNvbW1hIGJldHdlZW4g
ZW51bSB2YWx1ZXMiKTsKLSAgICAgICAgfQotICAgICAgICBjb25zdCB2YWwgPSBjb25zdW1lKFNU
UikgfHwgZXJyb3IoIlVuZXhwZWN0ZWQgdmFsdWUgaW4gZW51bSIpOwotICAgICAgICB2YWwudmFs
dWUgPSB2YWwudmFsdWUuc2xpY2UoMSwgLTEpOwotICAgICAgICAvLyBObyB0cml2aWEgZXhwb3N1
cmUgeWV0Ci0gICAgICAgIHZhbC50cml2aWEgPSB1bmRlZmluZWQ7Ci0gICAgICAgIHJldC52YWx1
ZXMucHVzaCh2YWwpOwotICAgICAgICB2YWx1ZV9leHBlY3RlZCA9ICEhY29uc3VtZSgiLCIpOwor
ICAgIGlmIChkZWYudHlwZSA9PT0gImRpY3Rpb25hcnkiICYmICh1c2VOdWxsYWJsZUlubmVyIHx8
ICFpZGxUeXBlLm51bGxhYmxlKSkgeworICAgICAgcmV0dXJuIGlkbFR5cGU7CisgICAgfQorICB9
CisgIGZvciAoY29uc3Qgc3VidHlwZSBvZiBpZGxUeXBlLnN1YnR5cGUpIHsKKyAgICBjb25zdCBy
ZXN1bHQgPSBpZGxUeXBlSW5jbHVkZXNEaWN0aW9uYXJ5KHN1YnR5cGUsIGRlZnMpOworICAgIGlm
IChyZXN1bHQpIHsKKyAgICAgIGlmIChzdWJ0eXBlLnVuaW9uKSB7CisgICAgICAgIHJldHVybiBy
ZXN1bHQ7CiAgICAgICB9CisgICAgICByZXR1cm4gc3VidHlwZTsKICAgICB9CisgIH0KK30KIAot
ICAgIGZ1bmN0aW9uIHR5cGVkZWYoKSB7Ci0gICAgICBpZiAoIWNvbnN1bWUoInR5cGVkZWYiKSkg
cmV0dXJuOwotICAgICAgY29uc3QgcmV0ID0gewotICAgICAgICB0eXBlOiAidHlwZWRlZiIKLSAg
ICAgIH07Ci0gICAgICByZXQuaWRsVHlwZSA9IHR5cGVfd2l0aF9leHRlbmRlZF9hdHRyaWJ1dGVz
KCJ0eXBlZGVmLXR5cGUiKSB8fCBlcnJvcigiTm8gdHlwZSBpbiB0eXBlZGVmIik7Ci0gICAgICBj
b25zdCBuYW1lID0gY29uc3VtZShJRCkgfHwgZXJyb3IoIk5vIG5hbWUgaW4gdHlwZWRlZiIpOwot
ICAgICAgcmV0Lm5hbWUgPSBzYW5pdGl6ZV9uYW1lKG5hbWUudmFsdWUsICJ0eXBlZGVmIik7Ci0g
ICAgICBjdXJyZW50ID0gcmV0OwotICAgICAgY29uc3VtZSgiOyIpIHx8IGVycm9yKCJVbnRlcm1p
bmF0ZWQgdHlwZWRlZiIpOwotICAgICAgcmV0dXJuIHJldDsKLSAgICB9Ci0KLSAgICBmdW5jdGlv
biBpbXBsZW1lbnRzXygpIHsKLSAgICAgIGNvbnN0IHN0YXJ0X3Bvc2l0aW9uID0gY29uc3VtZV9w
b3NpdGlvbjsKLSAgICAgIGNvbnN0IHRhcmdldCA9IGNvbnN1bWUoSUQpOwotICAgICAgaWYgKCF0
YXJnZXQpIHJldHVybjsKLSAgICAgIGlmIChjb25zdW1lKCJpbXBsZW1lbnRzIikpIHsKLSAgICAg
ICAgY29uc3QgcmV0ID0gewotICAgICAgICAgIHR5cGU6ICJpbXBsZW1lbnRzIiwKLSAgICAgICAg
ICB0YXJnZXQ6IHRhcmdldC52YWx1ZQotICAgICAgICB9OwotICAgICAgICBjb25zdCBpbXAgPSBj
b25zdW1lKElEKSB8fCBlcnJvcigiSW5jb21wbGV0ZSBpbXBsZW1lbnRzIHN0YXRlbWVudCIpOwot
ICAgICAgICByZXQuaW1wbGVtZW50cyA9IGltcC52YWx1ZTsKLSAgICAgICAgY29uc3VtZSgiOyIp
IHx8IGVycm9yKCJObyB0ZXJtaW5hdGluZyA7IGZvciBpbXBsZW1lbnRzIHN0YXRlbWVudCIpOwot
ICAgICAgICByZXR1cm4gcmV0OwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgLy8gcm9sbGJhY2sK
LSAgICAgICAgdW5jb25zdW1lKHN0YXJ0X3Bvc2l0aW9uKTsKLSAgICAgIH0KKworLyoqKi8gfSks
CisvKiA4ICovCisvKioqLyAoZnVuY3Rpb24obW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBf
X3dlYnBhY2tfcmVxdWlyZV9fKSB7CisKKyJ1c2Ugc3RyaWN0IjsKK19fd2VicGFja19yZXF1aXJl
X18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTsKKy8qIGhhcm1vbnkgZXhwb3J0IChiaW5kaW5nKSAq
LyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgIkFyZ3VtZW50Iiwg
ZnVuY3Rpb24oKSB7IHJldHVybiBBcmd1bWVudDsgfSk7CisvKiBoYXJtb255IGltcG9ydCAqLyB2
YXIgX2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1
aXJlX18oNik7CisvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2RlZmF1bHRfanNfX1dFQlBBQ0tf
SU1QT1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oOSk7CisvKiBoYXJtb255
IGltcG9ydCAqLyB2YXIgX2V4dGVuZGVkX2F0dHJpYnV0ZXNfanNfX1dFQlBBQ0tfSU1QT1JURURf
TU9EVUxFXzJfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMTApOworLyogaGFybW9ueSBpbXBvcnQg
Ki8gdmFyIF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18gPSBfX3dlYnBh
Y2tfcmVxdWlyZV9fKDQpOworLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF90b2tlbmlzZXJfanNf
X1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMik7Cisv
KiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2Vycm9yX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVM
RV81X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDMpOworLyogaGFybW9ueSBpbXBvcnQgKi8gdmFy
IF92YWxpZGF0b3JzX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfXyA9IF9f
d2VicGFja19yZXF1aXJlX18oNyk7CisKKworCisKKworCisKKworY2xhc3MgQXJndW1lbnQgZXh0
ZW5kcyBfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJCYXNlIl0geworICAv
KioKKyAgICogQHBhcmFtIHtpbXBvcnQoIi4uL3Rva2VuaXNlciIpLlRva2VuaXNlcn0gdG9rZW5p
c2VyCisgICAqLworICBzdGF0aWMgcGFyc2UodG9rZW5pc2VyKSB7CisgICAgY29uc3Qgc3RhcnRf
cG9zaXRpb24gPSB0b2tlbmlzZXIucG9zaXRpb247CisgICAgY29uc3QgdG9rZW5zID0ge307Cisg
ICAgY29uc3QgcmV0ID0gbmV3IEFyZ3VtZW50KHsgc291cmNlOiB0b2tlbmlzZXIuc291cmNlLCB0
b2tlbnMgfSk7CisgICAgcmV0LmV4dEF0dHJzID0gX2V4dGVuZGVkX2F0dHJpYnV0ZXNfanNfX1dF
QlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX1siRXh0ZW5kZWRBdHRyaWJ1dGVzIl0ucGFyc2UodG9r
ZW5pc2VyKTsKKyAgICB0b2tlbnMub3B0aW9uYWwgPSB0b2tlbmlzZXIuY29uc3VtZSgib3B0aW9u
YWwiKTsKKyAgICByZXQuaWRsVHlwZSA9IE9iamVjdChfaGVscGVyc19qc19fV0VCUEFDS19JTVBP
UlRFRF9NT0RVTEVfM19fWyJ0eXBlX3dpdGhfZXh0ZW5kZWRfYXR0cmlidXRlcyJdKSh0b2tlbmlz
ZXIsICJhcmd1bWVudC10eXBlIik7CisgICAgaWYgKCFyZXQuaWRsVHlwZSkgeworICAgICAgcmV0
dXJuIHRva2VuaXNlci51bmNvbnN1bWUoc3RhcnRfcG9zaXRpb24pOwogICAgIH0KKyAgICBpZiAo
IXRva2Vucy5vcHRpb25hbCkgeworICAgICAgdG9rZW5zLnZhcmlhZGljID0gdG9rZW5pc2VyLmNv
bnN1bWUoIi4uLiIpOworICAgIH0KKyAgICB0b2tlbnMubmFtZSA9IHRva2VuaXNlci5jb25zdW1l
KCJpZGVudGlmaWVyIiwgLi4uX3Rva2VuaXNlcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVf
NF9fWyJhcmd1bWVudE5hbWVLZXl3b3JkcyJdKTsKKyAgICBpZiAoIXRva2Vucy5uYW1lKSB7Cisg
ICAgICByZXR1cm4gdG9rZW5pc2VyLnVuY29uc3VtZShzdGFydF9wb3NpdGlvbik7CisgICAgfQor
ICAgIHJldC5kZWZhdWx0ID0gdG9rZW5zLm9wdGlvbmFsID8gX2RlZmF1bHRfanNfX1dFQlBBQ0tf
SU1QT1JURURfTU9EVUxFXzFfX1siRGVmYXVsdCJdLnBhcnNlKHRva2VuaXNlcikgOiBudWxsOwor
ICAgIHJldHVybiByZXQ7CisgIH0KIAotICAgIGZ1bmN0aW9uIGluY2x1ZGVzKCkgewotICAgICAg
Y29uc3Qgc3RhcnRfcG9zaXRpb24gPSBjb25zdW1lX3Bvc2l0aW9uOwotICAgICAgY29uc3QgdGFy
Z2V0ID0gY29uc3VtZShJRCk7Ci0gICAgICBpZiAoIXRhcmdldCkgcmV0dXJuOwotICAgICAgaWYg
KGNvbnN1bWUoImluY2x1ZGVzIikpIHsKLSAgICAgICAgY29uc3QgcmV0ID0gewotICAgICAgICAg
IHR5cGU6ICJpbmNsdWRlcyIsCi0gICAgICAgICAgdGFyZ2V0OiB0YXJnZXQudmFsdWUKLSAgICAg
ICAgfTsKLSAgICAgICAgY29uc3QgaW1wID0gY29uc3VtZShJRCkgfHwgZXJyb3IoIkluY29tcGxl
dGUgaW5jbHVkZXMgc3RhdGVtZW50Iik7Ci0gICAgICAgIHJldC5pbmNsdWRlcyA9IGltcC52YWx1
ZTsKLSAgICAgICAgY29uc3VtZSgiOyIpIHx8IGVycm9yKCJObyB0ZXJtaW5hdGluZyA7IGZvciBp
bmNsdWRlcyBzdGF0ZW1lbnQiKTsKLSAgICAgICAgcmV0dXJuIHJldDsKLSAgICAgIH0gZWxzZSB7
Ci0gICAgICAgIC8vIHJvbGxiYWNrCi0gICAgICAgIHVuY29uc3VtZShzdGFydF9wb3NpdGlvbik7
CisgIGdldCB0eXBlKCkgeworICAgIHJldHVybiAiYXJndW1lbnQiOworICB9CisgIGdldCBvcHRp
b25hbCgpIHsKKyAgICByZXR1cm4gISF0aGlzLnRva2Vucy5vcHRpb25hbDsKKyAgfQorICBnZXQg
dmFyaWFkaWMoKSB7CisgICAgcmV0dXJuICEhdGhpcy50b2tlbnMudmFyaWFkaWM7CisgIH0KKyAg
Z2V0IG5hbWUoKSB7CisgICAgcmV0dXJuIE9iamVjdChfaGVscGVyc19qc19fV0VCUEFDS19JTVBP
UlRFRF9NT0RVTEVfM19fWyJ1bmVzY2FwZSJdKSh0aGlzLnRva2Vucy5uYW1lLnZhbHVlKTsKKyAg
fQorCisgICp2YWxpZGF0ZShkZWZzKSB7CisgICAgeWllbGQqIHRoaXMuaWRsVHlwZS52YWxpZGF0
ZShkZWZzKTsKKyAgICBpZiAoT2JqZWN0KF92YWxpZGF0b3JzX2hlbHBlcnNfanNfX1dFQlBBQ0tf
SU1QT1JURURfTU9EVUxFXzZfX1siaWRsVHlwZUluY2x1ZGVzRGljdGlvbmFyeSJdKSh0aGlzLmlk
bFR5cGUsIGRlZnMsIHsgdXNlTnVsbGFibGVJbm5lcjogdHJ1ZSB9KSkgeworICAgICAgaWYgKHRo
aXMuaWRsVHlwZS5udWxsYWJsZSkgeworICAgICAgICBjb25zdCBtZXNzYWdlID0gYERpY3Rpb25h
cnkgYXJndW1lbnRzIGNhbm5vdCBiZSBudWxsYWJsZS5gOworICAgICAgICB5aWVsZCBPYmplY3Qo
X2Vycm9yX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X19bInZhbGlkYXRpb25FcnJvciJd
KSh0aGlzLnNvdXJjZSwgdGhpcy50b2tlbnMubmFtZSwgdGhpcywgbWVzc2FnZSk7CisgICAgICB9
IGVsc2UgaWYgKHRoaXMub3B0aW9uYWwgJiYgIXRoaXMuZGVmYXVsdCkgeworICAgICAgICBjb25z
dCBtZXNzYWdlID0gYE9wdGlvbmFsIGRpY3Rpb25hcnkgYXJndW1lbnRzIG11c3QgaGF2ZSBhIGRl
ZmF1bHQgdmFsdWUgb2YgXGB7fVxgLmA7CisgICAgICAgIHlpZWxkIE9iamVjdChfZXJyb3JfanNf
X1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfX1sidmFsaWRhdGlvbkVycm9yIl0pKHRoaXMuc291
cmNlLCB0aGlzLnRva2Vucy5uYW1lLCB0aGlzLCBtZXNzYWdlLCB7CisgICAgICAgICAgYXV0b2Zp
eDogYXV0b2ZpeE9wdGlvbmFsRGljdGlvbmFyeURlZmF1bHRWYWx1ZSh0aGlzKQorICAgICAgICB9
KTsKICAgICAgIH0KICAgICB9CisgIH0KK30KKworLyoqCisgKiBAcGFyYW0ge0FyZ3VtZW50fSBh
cmcKKyAqLworZnVuY3Rpb24gYXV0b2ZpeE9wdGlvbmFsRGljdGlvbmFyeURlZmF1bHRWYWx1ZShh
cmcpIHsKKyAgcmV0dXJuICgpID0+IHsKKyAgICBhcmcuZGVmYXVsdCA9IF9kZWZhdWx0X2pzX19X
RUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19bIkRlZmF1bHQiXS5wYXJzZShuZXcgX3Rva2VuaXNl
cl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fWyJUb2tlbmlzZXIiXSgiID0ge30iKSk7
CisgIH07Cit9CisKKworLyoqKi8gfSksCisvKiA5ICovCisvKioqLyAoZnVuY3Rpb24obW9kdWxl
LCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CisKKyJ1c2Ugc3Ry
aWN0IjsKK19fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTsKKy8qIGhh
cm1vbnkgZXhwb3J0IChiaW5kaW5nKSAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNr
X2V4cG9ydHNfXywgIkRlZmF1bHQiLCBmdW5jdGlvbigpIHsgcmV0dXJuIERlZmF1bHQ7IH0pOwor
LyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVM
RV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDYpOworLyogaGFybW9ueSBpbXBvcnQgKi8gdmFy
IF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18gPSBfX3dlYnBhY2tfcmVx
dWlyZV9fKDQpOwogCi0gICAgZnVuY3Rpb24gZGVmaW5pdGlvbigpIHsKLSAgICAgIHJldHVybiBj
YWxsYmFjaygpIHx8Ci0gICAgICAgIGludGVyZmFjZV8oZmFsc2UpIHx8Ci0gICAgICAgIHBhcnRp
YWwoKSB8fAotICAgICAgICBkaWN0aW9uYXJ5KGZhbHNlKSB8fAotICAgICAgICBlbnVtXygpIHx8
Ci0gICAgICAgIHR5cGVkZWYoKSB8fAotICAgICAgICBpbXBsZW1lbnRzXygpIHx8Ci0gICAgICAg
IGluY2x1ZGVzKCkgfHwKLSAgICAgICAgbmFtZXNwYWNlKGZhbHNlKTsKKworCitjbGFzcyBEZWZh
dWx0IGV4dGVuZHMgX2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siQmFzZSJd
IHsKKyAgLyoqCisgICAqIEBwYXJhbSB7aW1wb3J0KCIuLi90b2tlbmlzZXIiKS5Ub2tlbmlzZXJ9
IHRva2VuaXNlcgorICAgKi8KKyAgc3RhdGljIHBhcnNlKHRva2VuaXNlcikgeworICAgIGNvbnN0
IGFzc2lnbiA9IHRva2VuaXNlci5jb25zdW1lKCI9Iik7CisgICAgaWYgKCFhc3NpZ24pIHsKKyAg
ICAgIHJldHVybiBudWxsOwogICAgIH0KKyAgICBjb25zdCBkZWYgPSBPYmplY3QoX2hlbHBlcnNf
anNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX1siY29uc3RfdmFsdWUiXSkodG9rZW5pc2Vy
KSB8fCB0b2tlbmlzZXIuY29uc3VtZSgic3RyaW5nIiwgIm51bGwiLCAiWyIsICJ7IikgfHwgdG9r
ZW5pc2VyLmVycm9yKCJObyB2YWx1ZSBmb3IgZGVmYXVsdCIpOworICAgIGNvbnN0IGV4cHJlc3Np
b24gPSBbZGVmXTsKKyAgICBpZiAoZGVmLnR5cGUgPT09ICJbIikgeworICAgICAgY29uc3QgY2xv
c2UgPSB0b2tlbmlzZXIuY29uc3VtZSgiXSIpIHx8IHRva2VuaXNlci5lcnJvcigiRGVmYXVsdCBz
ZXF1ZW5jZSB2YWx1ZSBtdXN0IGJlIGVtcHR5Iik7CisgICAgICBleHByZXNzaW9uLnB1c2goY2xv
c2UpOworICAgIH0gZWxzZSBpZiAoZGVmLnR5cGUgPT09ICJ7IikgeworICAgICAgY29uc3QgY2xv
c2UgPSB0b2tlbmlzZXIuY29uc3VtZSgifSIpIHx8IHRva2VuaXNlci5lcnJvcigiRGVmYXVsdCBk
aWN0aW9uYXJ5IHZhbHVlIG11c3QgYmUgZW1wdHkiKTsKKyAgICAgIGV4cHJlc3Npb24ucHVzaChj
bG9zZSk7CisgICAgfQorICAgIHJldHVybiBuZXcgRGVmYXVsdCh7IHNvdXJjZTogdG9rZW5pc2Vy
LnNvdXJjZSwgdG9rZW5zOiB7IGFzc2lnbiB9LCBleHByZXNzaW9uIH0pOworICB9CiAKLSAgICBm
dW5jdGlvbiBkZWZpbml0aW9ucygpIHsKLSAgICAgIGlmICghdG9rZW5zLmxlbmd0aCkgcmV0dXJu
IFtdOwotICAgICAgY29uc3QgZGVmcyA9IFtdOwotICAgICAgd2hpbGUgKHRydWUpIHsKLSAgICAg
ICAgY29uc3QgZWEgPSBleHRlbmRlZF9hdHRycygpOwotICAgICAgICBjb25zdCBkZWYgPSBkZWZp
bml0aW9uKCk7Ci0gICAgICAgIGlmICghZGVmKSB7Ci0gICAgICAgICAgaWYgKGVhLmxlbmd0aCkg
ZXJyb3IoIlN0cmF5IGV4dGVuZGVkIGF0dHJpYnV0ZXMiKTsKLSAgICAgICAgICBicmVhazsKLSAg
ICAgICAgfQotICAgICAgICBkZWYuZXh0QXR0cnMgPSBlYTsKLSAgICAgICAgZGVmcy5wdXNoKGRl
Zik7Ci0gICAgICB9Ci0gICAgICByZXR1cm4gZGVmczsKKyAgY29uc3RydWN0b3IoeyBzb3VyY2Us
IHRva2VucywgZXhwcmVzc2lvbiB9KSB7CisgICAgc3VwZXIoeyBzb3VyY2UsIHRva2VucyB9KTsK
KyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgImV4cHJlc3Npb24iLCB7IHZhbHVlOiBl
eHByZXNzaW9uIH0pOworICB9CisKKyAgZ2V0IHR5cGUoKSB7CisgICAgcmV0dXJuIE9iamVjdChf
aGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fWyJjb25zdF9kYXRhIl0pKHRo
aXMuZXhwcmVzc2lvblswXSkudHlwZTsKKyAgfQorICBnZXQgdmFsdWUoKSB7CisgICAgcmV0dXJu
IE9iamVjdChfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fWyJjb25zdF9k
YXRhIl0pKHRoaXMuZXhwcmVzc2lvblswXSkudmFsdWU7CisgIH0KKyAgZ2V0IG5lZ2F0aXZlKCkg
eworICAgIHJldHVybiBPYmplY3QoX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxF
XzFfX1siY29uc3RfZGF0YSJdKSh0aGlzLmV4cHJlc3Npb25bMF0pLm5lZ2F0aXZlOworICB9Cit9
CisKKworLyoqKi8gfSksCisvKiAxMCAqLworLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgX193ZWJw
YWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgeworCisidXNlIHN0cmljdCI7Citf
X3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7CisvKiBoYXJtb255IGV4
cG9ydCAoYmluZGluZykgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRz
X18sICJTaW1wbGVFeHRlbmRlZEF0dHJpYnV0ZSIsIGZ1bmN0aW9uKCkgeyByZXR1cm4gU2ltcGxl
RXh0ZW5kZWRBdHRyaWJ1dGU7IH0pOworLyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9f
d2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAiRXh0ZW5kZWRBdHRyaWJ1
dGVzIiwgZnVuY3Rpb24oKSB7IHJldHVybiBFeHRlbmRlZEF0dHJpYnV0ZXM7IH0pOworLyogaGFy
bW9ueSBpbXBvcnQgKi8gdmFyIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18g
PSBfX3dlYnBhY2tfcmVxdWlyZV9fKDYpOworLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9hcnJh
eV9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18gPSBfX3dlYnBhY2tfcmVxdWly
ZV9fKDExKTsKKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfaGVscGVyc19qc19fV0VCUEFDS19J
TVBPUlRFRF9NT0RVTEVfMl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg0KTsKKy8qIGhhcm1vbnkg
aW1wb3J0ICovIHZhciBfZXJyb3JfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXyA9IF9f
d2VicGFja19yZXF1aXJlX18oMyk7CisKKworCisKKworY2xhc3MgRXh0ZW5kZWRBdHRyaWJ1dGVQ
YXJhbWV0ZXJzIGV4dGVuZHMgX2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1si
QmFzZSJdIHsKKyAgLyoqCisgICAqIEBwYXJhbSB7aW1wb3J0KCIuLi90b2tlbmlzZXIiKS5Ub2tl
bmlzZXJ9IHRva2VuaXNlcgorICAgKi8KKyAgc3RhdGljIHBhcnNlKHRva2VuaXNlcikgeworICAg
IGNvbnN0IHRva2VucyA9IHsgYXNzaWduOiB0b2tlbmlzZXIuY29uc3VtZSgiPSIpIH07CisgICAg
Y29uc3QgcmV0ID0gbmV3IEV4dGVuZGVkQXR0cmlidXRlUGFyYW1ldGVycyh7IHNvdXJjZTogdG9r
ZW5pc2VyLnNvdXJjZSwgdG9rZW5zIH0pOworICAgIGlmICh0b2tlbnMuYXNzaWduKSB7CisgICAg
ICB0b2tlbnMuc2Vjb25kYXJ5TmFtZSA9IHRva2VuaXNlci5jb25zdW1lKCJpZGVudGlmaWVyIiwg
ImRlY2ltYWwiLCAiaW50ZWdlciIsICJzdHJpbmciKTsKKyAgICB9CisgICAgdG9rZW5zLm9wZW4g
PSB0b2tlbmlzZXIuY29uc3VtZSgiKCIpOworICAgIGlmICh0b2tlbnMub3BlbikgeworICAgICAg
cmV0Lmxpc3QgPSByZXQucmhzVHlwZSA9PT0gImlkZW50aWZpZXItbGlzdCIgPworICAgICAgICAv
LyBbRXhwb3NlZD0oV2luZG93LFdvcmtlcildCisgICAgICAgIE9iamVjdChfaGVscGVyc19qc19f
V0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fWyJpZGVudGlmaWVycyJdKSh0b2tlbmlzZXIpIDoK
KyAgICAgICAgLy8gW05hbWVkQ29uc3RydWN0b3I9QXVkaW8oRE9NU3RyaW5nIHNyYyldIG9yIFtD
b25zdHJ1Y3RvcihET01TdHJpbmcgc3RyKV0KKyAgICAgICAgT2JqZWN0KF9oZWxwZXJzX2pzX19X
RUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19bImFyZ3VtZW50X2xpc3QiXSkodG9rZW5pc2VyKTsK
KyAgICAgIHRva2Vucy5jbG9zZSA9IHRva2VuaXNlci5jb25zdW1lKCIpIikgfHwgdG9rZW5pc2Vy
LmVycm9yKCJVbmV4cGVjdGVkIHRva2VuIGluIGV4dGVuZGVkIGF0dHJpYnV0ZSBhcmd1bWVudCBs
aXN0Iik7CisgICAgfSBlbHNlIGlmIChyZXQuaGFzUmhzICYmICF0b2tlbnMuc2Vjb25kYXJ5TmFt
ZSkgeworICAgICAgdG9rZW5pc2VyLmVycm9yKCJObyByaWdodCBoYW5kIHNpZGUgdG8gZXh0ZW5k
ZWQgYXR0cmlidXRlIGFzc2lnbm1lbnQiKTsKICAgICB9Ci0gICAgY29uc3QgcmVzID0gZGVmaW5p
dGlvbnMoKTsKLSAgICBpZiAoY29uc3VtZV9wb3NpdGlvbiA8IHRva2Vucy5sZW5ndGgpIGVycm9y
KCJVbnJlY29nbmlzZWQgdG9rZW5zIik7Ci0gICAgcmV0dXJuIHJlczsKKyAgICByZXR1cm4gcmV0
OwogICB9CiAKLSAgY29uc3Qgb2JqID0gewotICAgIHBhcnNlKHN0cikgewotICAgICAgY29uc3Qg
dG9rZW5zID0gdG9rZW5pc2Uoc3RyKTsKLSAgICAgIHJldHVybiBwYXJzZSh0b2tlbnMpOworICBn
ZXQgcmhzVHlwZSgpIHsKKyAgICByZXR1cm4gIXRoaXMudG9rZW5zLmFzc2lnbiA/IG51bGwgOgor
ICAgICAgIXRoaXMudG9rZW5zLnNlY29uZGFyeU5hbWUgPyAiaWRlbnRpZmllci1saXN0IiA6Cisg
ICAgICAgIHRoaXMudG9rZW5zLnNlY29uZGFyeU5hbWUudHlwZTsKKyAgfQorfQorCitjbGFzcyBT
aW1wbGVFeHRlbmRlZEF0dHJpYnV0ZSBleHRlbmRzIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVE
X01PRFVMRV8wX19bIkJhc2UiXSB7CisgIC8qKgorICAgKiBAcGFyYW0ge2ltcG9ydCgiLi4vdG9r
ZW5pc2VyIikuVG9rZW5pc2VyfSB0b2tlbmlzZXIKKyAgICovCisgIHN0YXRpYyBwYXJzZSh0b2tl
bmlzZXIpIHsKKyAgICBjb25zdCBuYW1lID0gdG9rZW5pc2VyLmNvbnN1bWUoImlkZW50aWZpZXIi
KTsKKyAgICBpZiAobmFtZSkgeworICAgICAgcmV0dXJuIG5ldyBTaW1wbGVFeHRlbmRlZEF0dHJp
YnV0ZSh7CisgICAgICAgIHNvdXJjZTogdG9rZW5pc2VyLnNvdXJjZSwKKyAgICAgICAgdG9rZW5z
OiB7IG5hbWUgfSwKKyAgICAgICAgcGFyYW1zOiBFeHRlbmRlZEF0dHJpYnV0ZVBhcmFtZXRlcnMu
cGFyc2UodG9rZW5pc2VyKQorICAgICAgfSk7CiAgICAgfQotICB9OworICB9CisKKyAgY29uc3Ry
dWN0b3IoeyBzb3VyY2UsIHRva2VucywgcGFyYW1zIH0pIHsKKyAgICBzdXBlcih7IHNvdXJjZSwg
dG9rZW5zIH0pOworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCAicGFyYW1zIiwgeyB2
YWx1ZTogcGFyYW1zIH0pOworICB9CiAKLSAgaWYgKHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmlu
ZWQnICYmIHR5cGVvZiBtb2R1bGUuZXhwb3J0cyAhPT0gJ3VuZGVmaW5lZCcpIHsKLSAgICBtb2R1
bGUuZXhwb3J0cyA9IG9iajsKLSAgfSBlbHNlIGlmICh0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rp
b24nICYmIGRlZmluZS5hbWQpIHsKLSAgICBkZWZpbmUoW10sICgpID0+IG9iaik7Ci0gIH0gZWxz
ZSB7Ci0gICAgKHNlbGYgfHwgd2luZG93KS5XZWJJREwyID0gb2JqOworICBnZXQgdHlwZSgpIHsK
KyAgICByZXR1cm4gImV4dGVuZGVkLWF0dHJpYnV0ZSI7CisgIH0KKyAgZ2V0IG5hbWUoKSB7Cisg
ICAgcmV0dXJuIHRoaXMudG9rZW5zLm5hbWUudmFsdWU7CisgIH0KKyAgZ2V0IHJocygpIHsKKyAg
ICBjb25zdCB7IHJoc1R5cGU6IHR5cGUsIHRva2VucywgbGlzdCB9ID0gdGhpcy5wYXJhbXM7Cisg
ICAgaWYgKCF0eXBlKSB7CisgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisgICAgY29uc3QgdmFs
dWUgPSB0eXBlID09PSAiaWRlbnRpZmllci1saXN0IiA/IGxpc3QgOiB0b2tlbnMuc2Vjb25kYXJ5
TmFtZS52YWx1ZTsKKyAgICByZXR1cm4geyB0eXBlLCB2YWx1ZSB9OworICB9CisgIGdldCBhcmd1
bWVudHMoKSB7CisgICAgY29uc3QgeyByaHNUeXBlLCBsaXN0IH0gPSB0aGlzLnBhcmFtczsKKyAg
ICBpZiAoIWxpc3QgfHwgcmhzVHlwZSA9PT0gImlkZW50aWZpZXItbGlzdCIpIHsKKyAgICAgIHJl
dHVybiBbXTsKKyAgICB9CisgICAgcmV0dXJuIGxpc3Q7CiAgIH0KLX0pKCk7CisKKyAgKnZhbGlk
YXRlKGRlZnMpIHsKKyAgICBpZiAodGhpcy5uYW1lID09PSAiTm9JbnRlcmZhY2VPYmplY3QiKSB7
CisgICAgICBjb25zdCBtZXNzYWdlID0gYFxgW05vSW50ZXJmYWNlT2JqZWN0XVxgIGV4dGVuZGVk
IGF0dHJpYnV0ZSBpcyBhbiBcCit1bmRlc2lyYWJsZSBmZWF0dXJlIHRoYXQgbWF5IGJlIHJlbW92
ZWQgZnJvbSBXZWIgSURMIGluIHRoZSBmdXR1cmUuIFJlZmVyIHRvIHRoZSBcCitbcmVsZXZhbnQg
dXBzdHJlYW0gUFJdKGh0dHBzOi8vZ2l0aHViLmNvbS9oZXljYW0vd2ViaWRsL3B1bGwvNjA5KSBm
b3IgbW9yZSBcCitpbmZvcm1hdGlvbi5gOworICAgICAgeWllbGQgT2JqZWN0KF9lcnJvcl9qc19f
V0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fWyJ2YWxpZGF0aW9uRXJyb3IiXSkodGhpcy5zb3Vy
Y2UsIHRoaXMudG9rZW5zLm5hbWUsIHRoaXMsIG1lc3NhZ2UsIHsgbGV2ZWw6ICJ3YXJuaW5nIiB9
KTsKKyAgICB9CisgICAgZm9yIChjb25zdCBhcmcgb2YgdGhpcy5hcmd1bWVudHMpIHsKKyAgICAg
IHlpZWxkKiBhcmcudmFsaWRhdGUoZGVmcyk7CisgICAgfQorICB9Cit9CisKKy8vIE5vdGU6IHdl
IHBhcnNlIHNvbWV0aGluZyBzaW1wbGVyIHRoYW4gdGhlIG9mZmljaWFsIHN5bnRheC4gSXQncyBh
bGwgdGhhdCBldmVyCisvLyBzZWVtcyB0byBiZSB1c2VkCitjbGFzcyBFeHRlbmRlZEF0dHJpYnV0
ZXMgZXh0ZW5kcyBfYXJyYXlfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fWyJB
cnJheUJhc2UiXSB7CisgIC8qKgorICAgKiBAcGFyYW0ge2ltcG9ydCgiLi4vdG9rZW5pc2VyIiku
VG9rZW5pc2VyfSB0b2tlbmlzZXIKKyAgICovCisgIHN0YXRpYyBwYXJzZSh0b2tlbmlzZXIpIHsK
KyAgICBjb25zdCB0b2tlbnMgPSB7fTsKKyAgICB0b2tlbnMub3BlbiA9IHRva2VuaXNlci5jb25z
dW1lKCJbIik7CisgICAgaWYgKCF0b2tlbnMub3BlbikgcmV0dXJuIG5ldyBFeHRlbmRlZEF0dHJp
YnV0ZXMoe30pOworICAgIGNvbnN0IHJldCA9IG5ldyBFeHRlbmRlZEF0dHJpYnV0ZXMoeyBzb3Vy
Y2U6IHRva2VuaXNlci5zb3VyY2UsIHRva2VucyB9KTsKKyAgICByZXQucHVzaCguLi5PYmplY3Qo
X2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX1sibGlzdCJdKSh0b2tlbmlz
ZXIsIHsKKyAgICAgIHBhcnNlcjogU2ltcGxlRXh0ZW5kZWRBdHRyaWJ1dGUucGFyc2UsCisgICAg
ICBsaXN0TmFtZTogImV4dGVuZGVkIGF0dHJpYnV0ZSIKKyAgICB9KSk7CisgICAgdG9rZW5zLmNs
b3NlID0gdG9rZW5pc2VyLmNvbnN1bWUoIl0iKSB8fCB0b2tlbmlzZXIuZXJyb3IoIlVuZXhwZWN0
ZWQgY2xvc2luZyB0b2tlbiBvZiBleHRlbmRlZCBhdHRyaWJ1dGUiKTsKKyAgICBpZiAoIXJldC5s
ZW5ndGgpIHsKKyAgICAgIHRva2VuaXNlci5lcnJvcigiRm91bmQgYW4gZW1wdHkgZXh0ZW5kZWQg
YXR0cmlidXRlIik7CisgICAgfQorICAgIGlmICh0b2tlbmlzZXIucHJvYmUoIlsiKSkgeworICAg
ICAgdG9rZW5pc2VyLmVycm9yKCJJbGxlZ2FsIGRvdWJsZSBleHRlbmRlZCBhdHRyaWJ1dGUgbGlz
dHMsIGNvbnNpZGVyIG1lcmdpbmcgdGhlbSIpOworICAgIH0KKyAgICByZXR1cm4gcmV0OworICB9
CisKKyAgKnZhbGlkYXRlKGRlZnMpIHsKKyAgICBmb3IgKGNvbnN0IGV4dEF0dHIgb2YgdGhpcykg
eworICAgICAgeWllbGQqIGV4dEF0dHIudmFsaWRhdGUoZGVmcyk7CisgICAgfQorICB9Cit9CisK
KworLyoqKi8gfSksCisvKiAxMSAqLworLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgX193ZWJwYWNr
X2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgeworCisidXNlIHN0cmljdCI7CitfX3dl
YnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7CisvKiBoYXJtb255IGV4cG9y
dCAoYmluZGluZykgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18s
ICJBcnJheUJhc2UiLCBmdW5jdGlvbigpIHsgcmV0dXJuIEFycmF5QmFzZTsgfSk7CitjbGFzcyBB
cnJheUJhc2UgZXh0ZW5kcyBBcnJheSB7CisgIGNvbnN0cnVjdG9yKHsgc291cmNlLCB0b2tlbnMg
fSkgeworICAgIHN1cGVyKCk7CisgICAgT2JqZWN0LmRlZmluZVByb3BlcnRpZXModGhpcywgewor
ICAgICAgc291cmNlOiB7IHZhbHVlOiBzb3VyY2UgfSwKKyAgICAgIHRva2VuczogeyB2YWx1ZTog
dG9rZW5zIH0KKyAgICB9KTsKKyAgfQorfQorCisKKy8qKiovIH0pLAorLyogMTIgKi8KKy8qKiov
IChmdW5jdGlvbihtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJl
X18pIHsKKworInVzZSBzdHJpY3QiOworX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19l
eHBvcnRzX18pOworLyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFja19yZXF1
aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAiVG9rZW4iLCBmdW5jdGlvbigpIHsgcmV0dXJu
IFRva2VuOyB9KTsKKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfYmFzZV9qc19fV0VCUEFDS19J
TVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg2KTsKKworCitjbGFzcyBU
b2tlbiBleHRlbmRzIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIkJhc2Ui
XSB7CisgIC8qKgorICAgKiBAcGFyYW0ge2ltcG9ydCgiLi4vdG9rZW5pc2VyIikuVG9rZW5pc2Vy
fSB0b2tlbmlzZXIKKyAgICogQHBhcmFtIHtzdHJpbmd9IHR5cGUKKyAgICovCisgIHN0YXRpYyBw
YXJzZXIodG9rZW5pc2VyLCB0eXBlKSB7CisgICAgcmV0dXJuICgpID0+IHsKKyAgICAgIGNvbnN0
IHZhbHVlID0gdG9rZW5pc2VyLmNvbnN1bWUodHlwZSk7CisgICAgICBpZiAodmFsdWUpIHsKKyAg
ICAgICAgcmV0dXJuIG5ldyBUb2tlbih7IHNvdXJjZTogdG9rZW5pc2VyLnNvdXJjZSwgdG9rZW5z
OiB7IHZhbHVlIH0gfSk7CisgICAgICB9CisgICAgfTsKKyAgfQorCisgIGdldCB2YWx1ZSgpIHsK
KyAgICByZXR1cm4gdGhpcy50b2tlbnMudmFsdWUudmFsdWU7CisgIH0KK30KKworCisvKioqLyB9
KSwKKy8qIDEzICovCisvKioqLyAoZnVuY3Rpb24obW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19f
LCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CisKKyJ1c2Ugc3RyaWN0IjsKK19fd2VicGFja19yZXF1
aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTsKKy8qIGhhcm1vbnkgZXhwb3J0IChiaW5kaW5n
KSAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgIk9wZXJhdGlv
biIsIGZ1bmN0aW9uKCkgeyByZXR1cm4gT3BlcmF0aW9uOyB9KTsKKy8qIGhhcm1vbnkgaW1wb3J0
ICovIHZhciBfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNr
X3JlcXVpcmVfXyg2KTsKKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfaGVscGVyc19qc19fV0VC
UEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg0KTsKKy8qIGhh
cm1vbnkgaW1wb3J0ICovIHZhciBfZXJyb3JfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJf
XyA9IF9fd2VicGFja19yZXF1aXJlX18oMyk7CisKKworCisKK2NsYXNzIE9wZXJhdGlvbiBleHRl
bmRzIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIkJhc2UiXSB7CisgIC8q
KgorICAgKiBAcGFyYW0ge2ltcG9ydCgiLi4vdG9rZW5pc2VyLmpzIikuVG9rZW5pc2VyfSB0b2tl
bmlzZXIKKyAgICovCisgIHN0YXRpYyBwYXJzZSh0b2tlbmlzZXIsIHsgc3BlY2lhbCwgcmVndWxh
ciB9ID0ge30pIHsKKyAgICBjb25zdCB0b2tlbnMgPSB7IHNwZWNpYWwgfTsKKyAgICBjb25zdCBy
ZXQgPSBuZXcgT3BlcmF0aW9uKHsgc291cmNlOiB0b2tlbmlzZXIuc291cmNlLCB0b2tlbnMgfSk7
CisgICAgaWYgKHNwZWNpYWwgJiYgc3BlY2lhbC52YWx1ZSA9PT0gInN0cmluZ2lmaWVyIikgewor
ICAgICAgdG9rZW5zLnRlcm1pbmF0aW9uID0gdG9rZW5pc2VyLmNvbnN1bWUoIjsiKTsKKyAgICAg
IGlmICh0b2tlbnMudGVybWluYXRpb24pIHsKKyAgICAgICAgcmV0LmFyZ3VtZW50cyA9IFtdOwor
ICAgICAgICByZXR1cm4gcmV0OworICAgICAgfQorICAgIH0KKyAgICBpZiAoIXNwZWNpYWwgJiYg
IXJlZ3VsYXIpIHsKKyAgICAgIHRva2Vucy5zcGVjaWFsID0gdG9rZW5pc2VyLmNvbnN1bWUoImdl
dHRlciIsICJzZXR0ZXIiLCAiZGVsZXRlciIpOworICAgIH0KKyAgICByZXQuaWRsVHlwZSA9IE9i
amVjdChfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fWyJyZXR1cm5fdHlw
ZSJdKSh0b2tlbmlzZXIpIHx8IHRva2VuaXNlci5lcnJvcigiTWlzc2luZyByZXR1cm4gdHlwZSIp
OworICAgIHRva2Vucy5uYW1lID0gdG9rZW5pc2VyLmNvbnN1bWUoImlkZW50aWZpZXIiLCAiaW5j
bHVkZXMiKTsKKyAgICB0b2tlbnMub3BlbiA9IHRva2VuaXNlci5jb25zdW1lKCIoIikgfHwgdG9r
ZW5pc2VyLmVycm9yKCJJbnZhbGlkIG9wZXJhdGlvbiIpOworICAgIHJldC5hcmd1bWVudHMgPSBP
YmplY3QoX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX1siYXJndW1lbnRf
bGlzdCJdKSh0b2tlbmlzZXIpOworICAgIHRva2Vucy5jbG9zZSA9IHRva2VuaXNlci5jb25zdW1l
KCIpIikgfHwgdG9rZW5pc2VyLmVycm9yKCJVbnRlcm1pbmF0ZWQgb3BlcmF0aW9uIik7CisgICAg
dG9rZW5zLnRlcm1pbmF0aW9uID0gdG9rZW5pc2VyLmNvbnN1bWUoIjsiKSB8fCB0b2tlbmlzZXIu
ZXJyb3IoIlVudGVybWluYXRlZCBvcGVyYXRpb24sIGV4cGVjdGVkIGA7YCIpOworICAgIHJldHVy
biByZXQ7CisgIH0KKworICBnZXQgdHlwZSgpIHsKKyAgICByZXR1cm4gIm9wZXJhdGlvbiI7Cisg
IH0KKyAgZ2V0IG5hbWUoKSB7CisgICAgY29uc3QgeyBuYW1lIH0gPSB0aGlzLnRva2VuczsKKyAg
ICBpZiAoIW5hbWUpIHsKKyAgICAgIHJldHVybiAiIjsKKyAgICB9CisgICAgcmV0dXJuIE9iamVj
dChfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fWyJ1bmVzY2FwZSJdKShu
YW1lLnZhbHVlKTsKKyAgfQorICBnZXQgc3BlY2lhbCgpIHsKKyAgICBpZiAoIXRoaXMudG9rZW5z
LnNwZWNpYWwpIHsKKyAgICAgIHJldHVybiAiIjsKKyAgICB9CisgICAgcmV0dXJuIHRoaXMudG9r
ZW5zLnNwZWNpYWwudmFsdWU7CisgIH0KKworICAqdmFsaWRhdGUoZGVmcykgeworICAgIGlmICgh
dGhpcy5uYW1lICYmIFsiIiwgInN0YXRpYyJdLmluY2x1ZGVzKHRoaXMuc3BlY2lhbCkpIHsKKyAg
ICAgIGNvbnN0IG1lc3NhZ2UgPSBgUmVndWxhciBvciBzdGF0aWMgb3BlcmF0aW9ucyBtdXN0IGhh
dmUgYm90aCBhIHJldHVybiB0eXBlIGFuZCBhbiBpZGVudGlmaWVyLmA7CisgICAgICB5aWVsZCBP
YmplY3QoX2Vycm9yX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19bInZhbGlkYXRpb25F
cnJvciJdKSh0aGlzLnNvdXJjZSwgdGhpcy50b2tlbnMub3BlbiwgdGhpcywgbWVzc2FnZSk7Cisg
ICAgfQorICAgIGlmICh0aGlzLmlkbFR5cGUpIHsKKyAgICAgIHlpZWxkKiB0aGlzLmlkbFR5cGUu
dmFsaWRhdGUoZGVmcyk7CisgICAgfQorICAgIGZvciAoY29uc3QgYXJndW1lbnQgb2YgdGhpcy5h
cmd1bWVudHMpIHsKKyAgICAgIHlpZWxkKiBhcmd1bWVudC52YWxpZGF0ZShkZWZzKTsKKyAgICB9
CisgIH0KK30KKworCisvKioqLyB9KSwKKy8qIDE0ICovCisvKioqLyAoZnVuY3Rpb24obW9kdWxl
LCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CisKKyJ1c2Ugc3Ry
aWN0IjsKK19fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTsKKy8qIGhh
cm1vbnkgZXhwb3J0IChiaW5kaW5nKSAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNr
X2V4cG9ydHNfXywgIkF0dHJpYnV0ZSIsIGZ1bmN0aW9uKCkgeyByZXR1cm4gQXR0cmlidXRlOyB9
KTsKKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRFRF9N
T0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg2KTsKKy8qIGhhcm1vbnkgaW1wb3J0ICov
IHZhciBfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNr
X3JlcXVpcmVfXyg0KTsKKworCisKK2NsYXNzIEF0dHJpYnV0ZSBleHRlbmRzIF9iYXNlX2pzX19X
RUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIkJhc2UiXSB7CisgIC8qKgorICAgKiBAcGFyYW0g
e2ltcG9ydCgiLi4vdG9rZW5pc2VyLmpzIikuVG9rZW5pc2VyfSB0b2tlbmlzZXIKKyAgICovCisg
IHN0YXRpYyBwYXJzZSh0b2tlbmlzZXIsIHsgc3BlY2lhbCwgbm9Jbmhlcml0ID0gZmFsc2UsIHJl
YWRvbmx5ID0gZmFsc2UgfSA9IHt9KSB7CisgICAgY29uc3Qgc3RhcnRfcG9zaXRpb24gPSB0b2tl
bmlzZXIucG9zaXRpb247CisgICAgY29uc3QgdG9rZW5zID0geyBzcGVjaWFsIH07CisgICAgY29u
c3QgcmV0ID0gbmV3IEF0dHJpYnV0ZSh7IHNvdXJjZTogdG9rZW5pc2VyLnNvdXJjZSwgdG9rZW5z
IH0pOworICAgIGlmICghc3BlY2lhbCAmJiAhbm9Jbmhlcml0KSB7CisgICAgICB0b2tlbnMuc3Bl
Y2lhbCA9IHRva2VuaXNlci5jb25zdW1lKCJpbmhlcml0Iik7CisgICAgfQorICAgIGlmIChyZXQu
c3BlY2lhbCA9PT0gImluaGVyaXQiICYmIHRva2VuaXNlci5wcm9iZSgicmVhZG9ubHkiKSkgewor
ICAgICAgdG9rZW5pc2VyLmVycm9yKCJJbmhlcml0ZWQgYXR0cmlidXRlcyBjYW5ub3QgYmUgcmVh
ZC1vbmx5Iik7CisgICAgfQorICAgIHRva2Vucy5yZWFkb25seSA9IHRva2VuaXNlci5jb25zdW1l
KCJyZWFkb25seSIpOworICAgIGlmIChyZWFkb25seSAmJiAhdG9rZW5zLnJlYWRvbmx5ICYmIHRv
a2VuaXNlci5wcm9iZSgiYXR0cmlidXRlIikpIHsKKyAgICAgIHRva2VuaXNlci5lcnJvcigiQXR0
cmlidXRlcyBtdXN0IGJlIHJlYWRvbmx5IGluIHRoaXMgY29udGV4dCIpOworICAgIH0KKyAgICB0
b2tlbnMuYmFzZSA9IHRva2VuaXNlci5jb25zdW1lKCJhdHRyaWJ1dGUiKTsKKyAgICBpZiAoIXRv
a2Vucy5iYXNlKSB7CisgICAgICB0b2tlbmlzZXIudW5jb25zdW1lKHN0YXJ0X3Bvc2l0aW9uKTsK
KyAgICAgIHJldHVybjsKKyAgICB9CisgICAgcmV0LmlkbFR5cGUgPSBPYmplY3QoX2hlbHBlcnNf
anNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX1sidHlwZV93aXRoX2V4dGVuZGVkX2F0dHJp
YnV0ZXMiXSkodG9rZW5pc2VyLCAiYXR0cmlidXRlLXR5cGUiKSB8fCB0b2tlbmlzZXIuZXJyb3Io
IkF0dHJpYnV0ZSBsYWNrcyBhIHR5cGUiKTsKKyAgICBzd2l0Y2ggKHJldC5pZGxUeXBlLmdlbmVy
aWMpIHsKKyAgICAgIGNhc2UgInNlcXVlbmNlIjoKKyAgICAgIGNhc2UgInJlY29yZCI6IHRva2Vu
aXNlci5lcnJvcihgQXR0cmlidXRlcyBjYW5ub3QgYWNjZXB0ICR7cmV0LmlkbFR5cGUuZ2VuZXJp
Y30gdHlwZXNgKTsKKyAgICB9CisgICAgdG9rZW5zLm5hbWUgPSB0b2tlbmlzZXIuY29uc3VtZSgi
aWRlbnRpZmllciIsICJhc3luYyIsICJyZXF1aXJlZCIpIHx8IHRva2VuaXNlci5lcnJvcigiQXR0
cmlidXRlIGxhY2tzIGEgbmFtZSIpOworICAgIHRva2Vucy50ZXJtaW5hdGlvbiA9IHRva2VuaXNl
ci5jb25zdW1lKCI7IikgfHwgdG9rZW5pc2VyLmVycm9yKCJVbnRlcm1pbmF0ZWQgYXR0cmlidXRl
LCBleHBlY3RlZCBgO2AiKTsKKyAgICByZXR1cm4gcmV0OworICB9CisKKyAgZ2V0IHR5cGUoKSB7
CisgICAgcmV0dXJuICJhdHRyaWJ1dGUiOworICB9CisgIGdldCBzcGVjaWFsKCkgeworICAgIGlm
ICghdGhpcy50b2tlbnMuc3BlY2lhbCkgeworICAgICAgcmV0dXJuICIiOworICAgIH0KKyAgICBy
ZXR1cm4gdGhpcy50b2tlbnMuc3BlY2lhbC52YWx1ZTsKKyAgfQorICBnZXQgcmVhZG9ubHkoKSB7
CisgICAgcmV0dXJuICEhdGhpcy50b2tlbnMucmVhZG9ubHk7CisgIH0KKyAgZ2V0IG5hbWUoKSB7
CisgICAgcmV0dXJuIE9iamVjdChfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVf
MV9fWyJ1bmVzY2FwZSJdKSh0aGlzLnRva2Vucy5uYW1lLnZhbHVlKTsKKyAgfQorCisgICp2YWxp
ZGF0ZShkZWZzKSB7CisgICAgeWllbGQqIHRoaXMuaWRsVHlwZS52YWxpZGF0ZShkZWZzKTsKKyAg
fQorfQorCisKKy8qKiovIH0pLAorLyogMTUgKi8KKy8qKiovIChmdW5jdGlvbihtb2R1bGUsIF9f
d2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pIHsKKworInVzZSBzdHJpY3Qi
OworX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pOworLyogaGFybW9u
eSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhw
b3J0c19fLCAiRW51bSIsIGZ1bmN0aW9uKCkgeyByZXR1cm4gRW51bTsgfSk7CisvKiBoYXJtb255
IGltcG9ydCAqLyB2YXIgX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9
IF9fd2VicGFja19yZXF1aXJlX18oNCk7CisvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3Rva2Vu
X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDEy
KTsKKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRFRF9N
T0RVTEVfMl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg2KTsKKworCisKKworY2xhc3MgRW51bVZh
bHVlIGV4dGVuZHMgX3Rva2VuX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19bIlRva2Vu
Il0geworICAvKioKKyAgICogQHBhcmFtIHtpbXBvcnQoIi4uL3Rva2VuaXNlciIpLlRva2VuaXNl
cn0gdG9rZW5pc2VyCisgICAqLworICBzdGF0aWMgcGFyc2UodG9rZW5pc2VyKSB7CisgICAgY29u
c3QgdmFsdWUgPSB0b2tlbmlzZXIuY29uc3VtZSgic3RyaW5nIik7CisgICAgaWYgKHZhbHVlKSB7
CisgICAgICByZXR1cm4gbmV3IEVudW1WYWx1ZSh7IHNvdXJjZTogdG9rZW5pc2VyLnNvdXJjZSwg
dG9rZW5zOiB7IHZhbHVlIH0gfSk7CisgICAgfQorICB9CisKKyAgZ2V0IHR5cGUoKSB7CisgICAg
cmV0dXJuICJlbnVtLXZhbHVlIjsKKyAgfQorICBnZXQgdmFsdWUoKSB7CisgICAgcmV0dXJuIHN1
cGVyLnZhbHVlLnNsaWNlKDEsIC0xKTsKKyAgfQorfQorCitjbGFzcyBFbnVtIGV4dGVuZHMgX2Jh
c2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX1siQmFzZSJdIHsKKyAgLyoqCisgICAq
IEBwYXJhbSB7aW1wb3J0KCIuLi90b2tlbmlzZXIiKS5Ub2tlbmlzZXJ9IHRva2VuaXNlcgorICAg
Ki8KKyAgc3RhdGljIHBhcnNlKHRva2VuaXNlcikgeworICAgIGNvbnN0IHRva2VucyA9IHt9Owor
ICAgIHRva2Vucy5iYXNlID0gdG9rZW5pc2VyLmNvbnN1bWUoImVudW0iKTsKKyAgICBpZiAoIXRv
a2Vucy5iYXNlKSB7CisgICAgICByZXR1cm47CisgICAgfQorICAgIHRva2Vucy5uYW1lID0gdG9r
ZW5pc2VyLmNvbnN1bWUoImlkZW50aWZpZXIiKSB8fCB0b2tlbmlzZXIuZXJyb3IoIk5vIG5hbWUg
Zm9yIGVudW0iKTsKKyAgICBjb25zdCByZXQgPSB0b2tlbmlzZXIuY3VycmVudCA9IG5ldyBFbnVt
KHsgc291cmNlOiB0b2tlbmlzZXIuc291cmNlLCB0b2tlbnMgfSk7CisgICAgdG9rZW5zLm9wZW4g
PSB0b2tlbmlzZXIuY29uc3VtZSgieyIpIHx8IHRva2VuaXNlci5lcnJvcigiQm9keWxlc3MgZW51
bSIpOworICAgIHJldC52YWx1ZXMgPSBPYmplY3QoX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JU
RURfTU9EVUxFXzBfX1sibGlzdCJdKSh0b2tlbmlzZXIsIHsKKyAgICAgIHBhcnNlcjogRW51bVZh
bHVlLnBhcnNlLAorICAgICAgYWxsb3dEYW5nbGVyOiB0cnVlLAorICAgICAgbGlzdE5hbWU6ICJl
bnVtZXJhdGlvbiIKKyAgICB9KTsKKyAgICBpZiAodG9rZW5pc2VyLnByb2JlKCJzdHJpbmciKSkg
eworICAgICAgdG9rZW5pc2VyLmVycm9yKCJObyBjb21tYSBiZXR3ZWVuIGVudW0gdmFsdWVzIik7
CisgICAgfQorICAgIHRva2Vucy5jbG9zZSA9IHRva2VuaXNlci5jb25zdW1lKCJ9IikgfHwgdG9r
ZW5pc2VyLmVycm9yKCJVbmV4cGVjdGVkIHZhbHVlIGluIGVudW0iKTsKKyAgICBpZiAoIXJldC52
YWx1ZXMubGVuZ3RoKSB7CisgICAgICB0b2tlbmlzZXIuZXJyb3IoIk5vIHZhbHVlIGluIGVudW0i
KTsKKyAgICB9CisgICAgdG9rZW5zLnRlcm1pbmF0aW9uID0gdG9rZW5pc2VyLmNvbnN1bWUoIjsi
KSB8fCB0b2tlbmlzZXIuZXJyb3IoIk5vIHNlbWljb2xvbiBhZnRlciBlbnVtIik7CisgICAgcmV0
dXJuIHJldDsKKyAgfQorCisgIGdldCB0eXBlKCkgeworICAgIHJldHVybiAiZW51bSI7CisgIH0K
KyAgZ2V0IG5hbWUoKSB7CisgICAgcmV0dXJuIE9iamVjdChfaGVscGVyc19qc19fV0VCUEFDS19J
TVBPUlRFRF9NT0RVTEVfMF9fWyJ1bmVzY2FwZSJdKSh0aGlzLnRva2Vucy5uYW1lLnZhbHVlKTsK
KyAgfQorfQorCisKKy8qKiovIH0pLAorLyogMTYgKi8KKy8qKiovIChmdW5jdGlvbihtb2R1bGUs
IF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pIHsKKworInVzZSBzdHJp
Y3QiOworX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pOworLyogaGFy
bW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tf
ZXhwb3J0c19fLCAiSW5jbHVkZXMiLCBmdW5jdGlvbigpIHsgcmV0dXJuIEluY2x1ZGVzOyB9KTsK
Ky8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RV
TEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg2KTsKKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZh
ciBfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3Jl
cXVpcmVfXyg0KTsKKworCisKK2NsYXNzIEluY2x1ZGVzIGV4dGVuZHMgX2Jhc2VfanNfX1dFQlBB
Q0tfSU1QT1JURURfTU9EVUxFXzBfX1siQmFzZSJdIHsKKyAgLyoqCisgICAqIEBwYXJhbSB7aW1w
b3J0KCIuLi90b2tlbmlzZXIiKS5Ub2tlbmlzZXJ9IHRva2VuaXNlcgorICAgKi8KKyAgc3RhdGlj
IHBhcnNlKHRva2VuaXNlcikgeworICAgIGNvbnN0IHRhcmdldCA9IHRva2VuaXNlci5jb25zdW1l
KCJpZGVudGlmaWVyIik7CisgICAgaWYgKCF0YXJnZXQpIHsKKyAgICAgIHJldHVybjsKKyAgICB9
CisgICAgY29uc3QgdG9rZW5zID0geyB0YXJnZXQgfTsKKyAgICB0b2tlbnMuaW5jbHVkZXMgPSB0
b2tlbmlzZXIuY29uc3VtZSgiaW5jbHVkZXMiKTsKKyAgICBpZiAoIXRva2Vucy5pbmNsdWRlcykg
eworICAgICAgdG9rZW5pc2VyLnVuY29uc3VtZSh0YXJnZXQuaW5kZXgpOworICAgICAgcmV0dXJu
OworICAgIH0KKyAgICB0b2tlbnMubWl4aW4gPSB0b2tlbmlzZXIuY29uc3VtZSgiaWRlbnRpZmll
ciIpIHx8IHRva2VuaXNlci5lcnJvcigiSW5jb21wbGV0ZSBpbmNsdWRlcyBzdGF0ZW1lbnQiKTsK
KyAgICB0b2tlbnMudGVybWluYXRpb24gPSB0b2tlbmlzZXIuY29uc3VtZSgiOyIpIHx8IHRva2Vu
aXNlci5lcnJvcigiTm8gdGVybWluYXRpbmcgOyBmb3IgaW5jbHVkZXMgc3RhdGVtZW50Iik7Cisg
ICAgcmV0dXJuIG5ldyBJbmNsdWRlcyh7IHNvdXJjZTogdG9rZW5pc2VyLnNvdXJjZSwgdG9rZW5z
IH0pOworICB9CisKKyAgZ2V0IHR5cGUoKSB7CisgICAgcmV0dXJuICJpbmNsdWRlcyI7CisgIH0K
KyAgZ2V0IHRhcmdldCgpIHsKKyAgICByZXR1cm4gT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNL
X0lNUE9SVEVEX01PRFVMRV8xX19bInVuZXNjYXBlIl0pKHRoaXMudG9rZW5zLnRhcmdldC52YWx1
ZSk7CisgIH0KKyAgZ2V0IGluY2x1ZGVzKCkgeworICAgIHJldHVybiBPYmplY3QoX2hlbHBlcnNf
anNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX1sidW5lc2NhcGUiXSkodGhpcy50b2tlbnMu
bWl4aW4udmFsdWUpOworICB9Cit9CisKKworLyoqKi8gfSksCisvKiAxNyAqLworLyoqKi8gKGZ1
bmN0aW9uKG1vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykg
eworCisidXNlIHN0cmljdCI7CitfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9y
dHNfXyk7CisvKiBoYXJtb255IGV4cG9ydCAoYmluZGluZykgKi8gX193ZWJwYWNrX3JlcXVpcmVf
Xy5kKF9fd2VicGFja19leHBvcnRzX18sICJUeXBlZGVmIiwgZnVuY3Rpb24oKSB7IHJldHVybiBU
eXBlZGVmOyB9KTsKKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfYmFzZV9qc19fV0VCUEFDS19J
TVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg2KTsKKy8qIGhhcm1vbnkg
aW1wb3J0ICovIHZhciBfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0g
X193ZWJwYWNrX3JlcXVpcmVfXyg0KTsKKworCisKK2NsYXNzIFR5cGVkZWYgZXh0ZW5kcyBfYmFz
ZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJCYXNlIl0geworICAvKioKKyAgICog
QHBhcmFtIHtpbXBvcnQoIi4uL3Rva2VuaXNlciIpLlRva2VuaXNlcn0gdG9rZW5pc2VyCisgICAq
LworICBzdGF0aWMgcGFyc2UodG9rZW5pc2VyKSB7CisgICAgY29uc3QgdG9rZW5zID0ge307Cisg
ICAgY29uc3QgcmV0ID0gbmV3IFR5cGVkZWYoeyBzb3VyY2U6IHRva2VuaXNlci5zb3VyY2UsIHRv
a2VucyB9KTsKKyAgICB0b2tlbnMuYmFzZSA9IHRva2VuaXNlci5jb25zdW1lKCJ0eXBlZGVmIik7
CisgICAgaWYgKCF0b2tlbnMuYmFzZSkgeworICAgICAgcmV0dXJuOworICAgIH0KKyAgICByZXQu
aWRsVHlwZSA9IE9iamVjdChfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9f
WyJ0eXBlX3dpdGhfZXh0ZW5kZWRfYXR0cmlidXRlcyJdKSh0b2tlbmlzZXIsICJ0eXBlZGVmLXR5
cGUiKSB8fCB0b2tlbmlzZXIuZXJyb3IoIlR5cGVkZWYgbGFja3MgYSB0eXBlIik7CisgICAgdG9r
ZW5zLm5hbWUgPSB0b2tlbmlzZXIuY29uc3VtZSgiaWRlbnRpZmllciIpIHx8IHRva2VuaXNlci5l
cnJvcigiVHlwZWRlZiBsYWNrcyBhIG5hbWUiKTsKKyAgICB0b2tlbmlzZXIuY3VycmVudCA9IHJl
dDsKKyAgICB0b2tlbnMudGVybWluYXRpb24gPSB0b2tlbmlzZXIuY29uc3VtZSgiOyIpIHx8IHRv
a2VuaXNlci5lcnJvcigiVW50ZXJtaW5hdGVkIHR5cGVkZWYsIGV4cGVjdGVkIGA7YCIpOworICAg
IHJldHVybiByZXQ7CisgIH0KKworICBnZXQgdHlwZSgpIHsKKyAgICByZXR1cm4gInR5cGVkZWYi
OworICB9CisgIGdldCBuYW1lKCkgeworICAgIHJldHVybiBPYmplY3QoX2hlbHBlcnNfanNfX1dF
QlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX1sidW5lc2NhcGUiXSkodGhpcy50b2tlbnMubmFtZS52
YWx1ZSk7CisgIH0KKworICAqdmFsaWRhdGUoZGVmcykgeworICAgIHlpZWxkKiB0aGlzLmlkbFR5
cGUudmFsaWRhdGUoZGVmcyk7CisgIH0KK30KKworCisvKioqLyB9KSwKKy8qIDE4ICovCisvKioq
LyAoZnVuY3Rpb24obW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWly
ZV9fKSB7CisKKyJ1c2Ugc3RyaWN0IjsKK19fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tf
ZXhwb3J0c19fKTsKKy8qIGhhcm1vbnkgZXhwb3J0IChiaW5kaW5nKSAqLyBfX3dlYnBhY2tfcmVx
dWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgIkNhbGxiYWNrRnVuY3Rpb24iLCBmdW5jdGlv
bigpIHsgcmV0dXJuIENhbGxiYWNrRnVuY3Rpb247IH0pOworLyogaGFybW9ueSBpbXBvcnQgKi8g
dmFyIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVx
dWlyZV9fKDYpOworLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9oZWxwZXJzX2pzX19XRUJQQUNL
X0lNUE9SVEVEX01PRFVMRV8xX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDQpOworCisKKworY2xh
c3MgQ2FsbGJhY2tGdW5jdGlvbiBleHRlbmRzIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01P
RFVMRV8wX19bIkJhc2UiXSB7CisgIC8qKgorICAgKiBAcGFyYW0ge2ltcG9ydCgiLi4vdG9rZW5p
c2VyLmpzIikuVG9rZW5pc2VyfSB0b2tlbmlzZXIKKyAgICovCisgIHN0YXRpYyBwYXJzZSh0b2tl
bmlzZXIsIGJhc2UpIHsKKyAgICBjb25zdCB0b2tlbnMgPSB7IGJhc2UgfTsKKyAgICBjb25zdCBy
ZXQgPSBuZXcgQ2FsbGJhY2tGdW5jdGlvbih7IHNvdXJjZTogdG9rZW5pc2VyLnNvdXJjZSwgdG9r
ZW5zIH0pOworICAgIHRva2Vucy5uYW1lID0gdG9rZW5pc2VyLmNvbnN1bWUoImlkZW50aWZpZXIi
KSB8fCB0b2tlbmlzZXIuZXJyb3IoIkNhbGxiYWNrIGxhY2tzIGEgbmFtZSIpOworICAgIHRva2Vu
aXNlci5jdXJyZW50ID0gcmV0OworICAgIHRva2Vucy5hc3NpZ24gPSB0b2tlbmlzZXIuY29uc3Vt
ZSgiPSIpIHx8IHRva2VuaXNlci5lcnJvcigiQ2FsbGJhY2sgbGFja3MgYW4gYXNzaWdubWVudCIp
OworICAgIHJldC5pZGxUeXBlID0gT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVE
X01PRFVMRV8xX19bInJldHVybl90eXBlIl0pKHRva2VuaXNlcikgfHwgdG9rZW5pc2VyLmVycm9y
KCJDYWxsYmFjayBsYWNrcyBhIHJldHVybiB0eXBlIik7CisgICAgdG9rZW5zLm9wZW4gPSB0b2tl
bmlzZXIuY29uc3VtZSgiKCIpIHx8IHRva2VuaXNlci5lcnJvcigiQ2FsbGJhY2sgbGFja3MgcGFy
ZW50aGVzZXMgZm9yIGFyZ3VtZW50cyIpOworICAgIHJldC5hcmd1bWVudHMgPSBPYmplY3QoX2hl
bHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX1siYXJndW1lbnRfbGlzdCJdKSh0
b2tlbmlzZXIpOworICAgIHRva2Vucy5jbG9zZSA9IHRva2VuaXNlci5jb25zdW1lKCIpIikgfHwg
dG9rZW5pc2VyLmVycm9yKCJVbnRlcm1pbmF0ZWQgY2FsbGJhY2siKTsKKyAgICB0b2tlbnMudGVy
bWluYXRpb24gPSB0b2tlbmlzZXIuY29uc3VtZSgiOyIpIHx8IHRva2VuaXNlci5lcnJvcigiVW50
ZXJtaW5hdGVkIGNhbGxiYWNrLCBleHBlY3RlZCBgO2AiKTsKKyAgICByZXR1cm4gcmV0OworICB9
CisKKyAgZ2V0IHR5cGUoKSB7CisgICAgcmV0dXJuICJjYWxsYmFjayI7CisgIH0KKyAgZ2V0IG5h
bWUoKSB7CisgICAgcmV0dXJuIE9iamVjdChfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9N
T0RVTEVfMV9fWyJ1bmVzY2FwZSJdKSh0aGlzLnRva2Vucy5uYW1lLnZhbHVlKTsKKyAgfQorCisg
ICp2YWxpZGF0ZShkZWZzKSB7CisgICAgeWllbGQqIHRoaXMuaWRsVHlwZS52YWxpZGF0ZShkZWZz
KTsKKyAgfQorfQorCisKKy8qKiovIH0pLAorLyogMTkgKi8KKy8qKiovIChmdW5jdGlvbihtb2R1
bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pIHsKKworInVzZSBz
dHJpY3QiOworX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pOworLyog
aGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBh
Y2tfZXhwb3J0c19fLCAiSW50ZXJmYWNlIiwgZnVuY3Rpb24oKSB7IHJldHVybiBJbnRlcmZhY2U7
IH0pOworLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9jb250YWluZXJfanNfX1dFQlBBQ0tfSU1Q
T1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMjApOworLyogaGFybW9ueSBp
bXBvcnQgKi8gdmFyIF9hdHRyaWJ1dGVfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9
IF9fd2VicGFja19yZXF1aXJlX18oMTQpOworLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9vcGVy
YXRpb25fanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXyA9IF9fd2VicGFja19yZXF1aXJl
X18oMTMpOworLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9jb25zdGFudF9qc19fV0VCUEFDS19J
TVBPUlRFRF9NT0RVTEVfM19fID0gX193ZWJwYWNrX3JlcXVpcmVfXygyMSk7CisvKiBoYXJtb255
IGltcG9ydCAqLyB2YXIgX2l0ZXJhYmxlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18g
PSBfX3dlYnBhY2tfcmVxdWlyZV9fKDIyKTsKKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfaGVs
cGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fID0gX193ZWJwYWNrX3JlcXVpcmVf
Xyg0KTsKKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfZXJyb3JfanNfX1dFQlBBQ0tfSU1QT1JU
RURfTU9EVUxFXzZfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMyk7CisvKiBoYXJtb255IGltcG9y
dCAqLyB2YXIgX3ZhbGlkYXRvcnNfaW50ZXJmYWNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVM
RV83X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDIzKTsKKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZh
ciBfY29uc3RydWN0b3JfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzhfXyA9IF9fd2VicGFj
a19yZXF1aXJlX18oMjQpOworCisKKworCisKKworCisKKworCisvKioKKyAqIEBwYXJhbSB7aW1w
b3J0KCIuLi90b2tlbmlzZXIiKS5Ub2tlbmlzZXJ9IHRva2VuaXNlcgorICovCitmdW5jdGlvbiBz
dGF0aWNfbWVtYmVyKHRva2VuaXNlcikgeworICBjb25zdCBzcGVjaWFsID0gdG9rZW5pc2VyLmNv
bnN1bWUoInN0YXRpYyIpOworICBpZiAoIXNwZWNpYWwpIHJldHVybjsKKyAgY29uc3QgbWVtYmVy
ID0gX2F0dHJpYnV0ZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fWyJBdHRyaWJ1dGUi
XS5wYXJzZSh0b2tlbmlzZXIsIHsgc3BlY2lhbCB9KSB8fAorICAgIF9vcGVyYXRpb25fanNfX1dF
QlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX1siT3BlcmF0aW9uIl0ucGFyc2UodG9rZW5pc2VyLCB7
IHNwZWNpYWwgfSkgfHwKKyAgICB0b2tlbmlzZXIuZXJyb3IoIk5vIGJvZHkgaW4gc3RhdGljIG1l
bWJlciIpOworICByZXR1cm4gbWVtYmVyOworfQorCitjbGFzcyBJbnRlcmZhY2UgZXh0ZW5kcyBf
Y29udGFpbmVyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIkNvbnRhaW5lciJdIHsK
KyAgLyoqCisgICAqIEBwYXJhbSB7aW1wb3J0KCIuLi90b2tlbmlzZXIiKS5Ub2tlbmlzZXJ9IHRv
a2VuaXNlcgorICAgKi8KKyAgc3RhdGljIHBhcnNlKHRva2VuaXNlciwgYmFzZSwgeyBwYXJ0aWFs
ID0gbnVsbCB9ID0ge30pIHsKKyAgICBjb25zdCB0b2tlbnMgPSB7IHBhcnRpYWwsIGJhc2UgfTsK
KyAgICByZXR1cm4gX2NvbnRhaW5lcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJD
b250YWluZXIiXS5wYXJzZSh0b2tlbmlzZXIsIG5ldyBJbnRlcmZhY2UoeyBzb3VyY2U6IHRva2Vu
aXNlci5zb3VyY2UsIHRva2VucyB9KSwgeworICAgICAgdHlwZTogImludGVyZmFjZSIsCisgICAg
ICBpbmhlcml0YWJsZTogIXBhcnRpYWwsCisgICAgICBhbGxvd2VkTWVtYmVyczogWworICAgICAg
ICBbX2NvbnN0YW50X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX19bIkNvbnN0YW50Il0u
cGFyc2VdLAorICAgICAgICBbX2NvbnN0cnVjdG9yX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVM
RV84X19bIkNvbnN0cnVjdG9yIl0ucGFyc2VdLAorICAgICAgICBbc3RhdGljX21lbWJlcl0sCisg
ICAgICAgIFtfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fWyJzdHJpbmdp
ZmllciJdXSwKKyAgICAgICAgW19pdGVyYWJsZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVf
NF9fWyJJdGVyYWJsZUxpa2UiXS5wYXJzZV0sCisgICAgICAgIFtfYXR0cmlidXRlX2pzX19XRUJQ
QUNLX0lNUE9SVEVEX01PRFVMRV8xX19bIkF0dHJpYnV0ZSJdLnBhcnNlXSwKKyAgICAgICAgW19v
cGVyYXRpb25fanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX1siT3BlcmF0aW9uIl0ucGFy
c2VdCisgICAgICBdCisgICAgfSk7CisgIH0KKworICBnZXQgdHlwZSgpIHsKKyAgICByZXR1cm4g
ImludGVyZmFjZSI7CisgIH0KKworICAqdmFsaWRhdGUoZGVmcykgeworICAgIHlpZWxkKiB0aGlz
LmV4dEF0dHJzLnZhbGlkYXRlKGRlZnMpOworICAgIGlmICgKKyAgICAgICF0aGlzLnBhcnRpYWwg
JiYKKyAgICAgIHRoaXMuZXh0QXR0cnMuZXZlcnkoZXh0QXR0ciA9PiBleHRBdHRyLm5hbWUgIT09
ICJFeHBvc2VkIikgJiYKKyAgICAgIHRoaXMuZXh0QXR0cnMuZXZlcnkoZXh0QXR0ciA9PiBleHRB
dHRyLm5hbWUgIT09ICJOb0ludGVyZmFjZU9iamVjdCIpCisgICAgKSB7CisgICAgICBjb25zdCBt
ZXNzYWdlID0gYEludGVyZmFjZXMgbXVzdCBoYXZlIFxgW0V4cG9zZWRdXGAgZXh0ZW5kZWQgYXR0
cmlidXRlLiBcCitUbyBmaXgsIGFkZCwgZm9yIGV4YW1wbGUsIFxgW0V4cG9zZWQ9V2luZG93XVxg
LiBQbGVhc2UgYWxzbyBjb25zaWRlciBjYXJlZnVsbHkgXAoraWYgeW91ciBpbnRlcmZhY2Ugc2hv
dWxkIGFsc28gYmUgZXhwb3NlZCBpbiBhIFdvcmtlciBzY29wZS4gUmVmZXIgdG8gdGhlIFwKK1tX
ZWJJREwgc3BlYyBzZWN0aW9uIG9uIEV4cG9zZWRdKGh0dHBzOi8vaGV5Y2FtLmdpdGh1Yi5pby93
ZWJpZGwvI0V4cG9zZWQpIFwKK2ZvciBtb3JlIGluZm9ybWF0aW9uLmA7CisgICAgICB5aWVsZCBP
YmplY3QoX2Vycm9yX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X19bInZhbGlkYXRpb25F
cnJvciJdKSh0aGlzLnNvdXJjZSwgdGhpcy50b2tlbnMubmFtZSwgdGhpcywgbWVzc2FnZSwgewor
ICAgICAgICBhdXRvZml4OiBPYmplY3QoX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9E
VUxFXzVfX1siYXV0b2ZpeEFkZEV4cG9zZWRXaW5kb3ciXSkodGhpcykKKyAgICAgIH0pOworICAg
IH0KKworICAgIHlpZWxkKiBzdXBlci52YWxpZGF0ZShkZWZzKTsKKyAgICBpZiAoIXRoaXMucGFy
dGlhbCkgeworICAgICAgeWllbGQqIE9iamVjdChfdmFsaWRhdG9yc19pbnRlcmZhY2VfanNfX1dF
QlBBQ0tfSU1QT1JURURfTU9EVUxFXzdfX1siY2hlY2tJbnRlcmZhY2VNZW1iZXJEdXBsaWNhdGlv
biJdKShkZWZzLCB0aGlzKTsKKyAgICB9CisgIH0KK30KKworCisvKioqLyB9KSwKKy8qIDIwICov
CisvKioqLyAoZnVuY3Rpb24obW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tf
cmVxdWlyZV9fKSB7CisKKyJ1c2Ugc3RyaWN0IjsKK19fd2VicGFja19yZXF1aXJlX18ucihfX3dl
YnBhY2tfZXhwb3J0c19fKTsKKy8qIGhhcm1vbnkgZXhwb3J0IChiaW5kaW5nKSAqLyBfX3dlYnBh
Y2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgIkNvbnRhaW5lciIsIGZ1bmN0aW9u
KCkgeyByZXR1cm4gQ29udGFpbmVyOyB9KTsKKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfYmFz
ZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg2
KTsKKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfZXh0ZW5kZWRfYXR0cmlidXRlc19qc19fV0VC
UEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygxMCk7CisvKiBo
YXJtb255IGltcG9ydCAqLyB2YXIgX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxF
XzJfXyA9IF9fd2VicGFja19yZXF1aXJlX18oNCk7CisKKworCisKKy8qKgorICogQHBhcmFtIHtp
bXBvcnQoIi4uL3Rva2VuaXNlci5qcyIpLlRva2VuaXNlcn0gdG9rZW5pc2VyCisgKi8KK2Z1bmN0
aW9uIGluaGVyaXRhbmNlKHRva2VuaXNlcikgeworICBjb25zdCBjb2xvbiA9IHRva2VuaXNlci5j
b25zdW1lKCI6Iik7CisgIGlmICghY29sb24pIHsKKyAgICByZXR1cm4ge307CisgIH0KKyAgY29u
c3QgaW5oZXJpdGFuY2UgPSB0b2tlbmlzZXIuY29uc3VtZSgiaWRlbnRpZmllciIpIHx8IHRva2Vu
aXNlci5lcnJvcigiSW5oZXJpdGFuY2UgbGFja3MgYSB0eXBlIik7CisgIHJldHVybiB7IGNvbG9u
LCBpbmhlcml0YW5jZSB9OworfQorCitjbGFzcyBDb250YWluZXIgZXh0ZW5kcyBfYmFzZV9qc19f
V0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJCYXNlIl0geworICAgIC8qKgorICAgICAqIEBw
YXJhbSB7aW1wb3J0KCIuLi90b2tlbmlzZXIuanMiKS5Ub2tlbmlzZXJ9IHRva2VuaXNlcgorICAg
ICAqIEBwYXJhbSB7Kn0gaW5zdGFuY2UKKyAgICAgKiBAcGFyYW0geyp9IGFyZ3MKKyAgICAgKi8K
KyAgICBzdGF0aWMgcGFyc2UodG9rZW5pc2VyLCBpbnN0YW5jZSwgeyB0eXBlLCBpbmhlcml0YWJs
ZSwgYWxsb3dlZE1lbWJlcnMgfSkgeworICAgICAgY29uc3QgeyB0b2tlbnMgfSA9IGluc3RhbmNl
OworICAgICAgdG9rZW5zLm5hbWUgPSB0b2tlbmlzZXIuY29uc3VtZSgiaWRlbnRpZmllciIpIHx8
IHRva2VuaXNlci5lcnJvcihgTWlzc2luZyBuYW1lIGluICR7aW5zdGFuY2UudHlwZX1gKTsKKyAg
ICAgIHRva2VuaXNlci5jdXJyZW50ID0gaW5zdGFuY2U7CisgICAgICBpZiAoaW5oZXJpdGFibGUp
IHsKKyAgICAgICAgT2JqZWN0LmFzc2lnbih0b2tlbnMsIGluaGVyaXRhbmNlKHRva2VuaXNlcikp
OworICAgICAgfQorICAgICAgdG9rZW5zLm9wZW4gPSB0b2tlbmlzZXIuY29uc3VtZSgieyIpIHx8
IHRva2VuaXNlci5lcnJvcihgQm9keWxlc3MgJHt0eXBlfWApOworICAgICAgaW5zdGFuY2UubWVt
YmVycyA9IFtdOworICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgdG9rZW5zLmNsb3NlID0g
dG9rZW5pc2VyLmNvbnN1bWUoIn0iKTsKKyAgICAgICAgaWYgKHRva2Vucy5jbG9zZSkgeworICAg
ICAgICAgIHRva2Vucy50ZXJtaW5hdGlvbiA9IHRva2VuaXNlci5jb25zdW1lKCI7IikgfHwgdG9r
ZW5pc2VyLmVycm9yKGBNaXNzaW5nIHNlbWljb2xvbiBhZnRlciAke3R5cGV9YCk7CisgICAgICAg
ICAgcmV0dXJuIGluc3RhbmNlOworICAgICAgICB9CisgICAgICAgIGNvbnN0IGVhID0gX2V4dGVu
ZGVkX2F0dHJpYnV0ZXNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX1siRXh0ZW5kZWRB
dHRyaWJ1dGVzIl0ucGFyc2UodG9rZW5pc2VyKTsKKyAgICAgICAgbGV0IG1lbTsKKyAgICAgICAg
Zm9yIChjb25zdCBbcGFyc2VyLCAuLi5hcmdzXSBvZiBhbGxvd2VkTWVtYmVycykgeworICAgICAg
ICAgIG1lbSA9IHBhcnNlcih0b2tlbmlzZXIsIC4uLmFyZ3MpOworICAgICAgICAgIGlmIChtZW0p
IHsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBp
ZiAoIW1lbSkgeworICAgICAgICAgIHRva2VuaXNlci5lcnJvcigiVW5rbm93biBtZW1iZXIiKTsK
KyAgICAgICAgfQorICAgICAgICBtZW0uZXh0QXR0cnMgPSBlYTsKKyAgICAgICAgaW5zdGFuY2Uu
bWVtYmVycy5wdXNoKG1lbSk7CisgICAgICB9CisgICAgfQorCisgICAgZ2V0IHBhcnRpYWwoKSB7
CisgICAgICByZXR1cm4gISF0aGlzLnRva2Vucy5wYXJ0aWFsOworICAgIH0KKyAgICBnZXQgbmFt
ZSgpIHsKKyAgICAgIHJldHVybiBPYmplY3QoX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURf
TU9EVUxFXzJfX1sidW5lc2NhcGUiXSkodGhpcy50b2tlbnMubmFtZS52YWx1ZSk7CisgICAgfQor
ICAgIGdldCBpbmhlcml0YW5jZSgpIHsKKyAgICAgIGlmICghdGhpcy50b2tlbnMuaW5oZXJpdGFu
Y2UpIHsKKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICB9CisgICAgICByZXR1cm4gT2JqZWN0
KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19bInVuZXNjYXBlIl0pKHRo
aXMudG9rZW5zLmluaGVyaXRhbmNlLnZhbHVlKTsKKyAgICB9CisKKyAgICAqdmFsaWRhdGUoZGVm
cykgeworICAgICAgZm9yIChjb25zdCBtZW1iZXIgb2YgdGhpcy5tZW1iZXJzKSB7CisgICAgICAg
IGlmIChtZW1iZXIudmFsaWRhdGUpIHsKKyAgICAgICAgICB5aWVsZCogbWVtYmVyLnZhbGlkYXRl
KGRlZnMpOworICAgICAgICB9CisgICAgICB9CisgICAgfQorICB9CisKKworLyoqKi8gfSksCisv
KiAyMSAqLworLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193
ZWJwYWNrX3JlcXVpcmVfXykgeworCisidXNlIHN0cmljdCI7CitfX3dlYnBhY2tfcmVxdWlyZV9f
LnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7CisvKiBoYXJtb255IGV4cG9ydCAoYmluZGluZykgKi8g
X193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sICJDb25zdGFudCIsIGZ1
bmN0aW9uKCkgeyByZXR1cm4gQ29uc3RhbnQ7IH0pOworLyogaGFybW9ueSBpbXBvcnQgKi8gdmFy
IF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWly
ZV9fKDYpOworLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF90eXBlX2pzX19XRUJQQUNLX0lNUE9S
VEVEX01PRFVMRV8xX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDUpOworLyogaGFybW9ueSBpbXBv
cnQgKi8gdmFyIF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18gPSBfX3dl
YnBhY2tfcmVxdWlyZV9fKDQpOworCisKKworCitjbGFzcyBDb25zdGFudCBleHRlbmRzIF9iYXNl
X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIkJhc2UiXSB7CisgIC8qKgorICAgKiBA
cGFyYW0ge2ltcG9ydCgiLi4vdG9rZW5pc2VyLmpzIikuVG9rZW5pc2VyfSB0b2tlbmlzZXIKKyAg
ICovCisgIHN0YXRpYyBwYXJzZSh0b2tlbmlzZXIpIHsKKyAgICBjb25zdCB0b2tlbnMgPSB7fTsK
KyAgICB0b2tlbnMuYmFzZSA9IHRva2VuaXNlci5jb25zdW1lKCJjb25zdCIpOworICAgIGlmICgh
dG9rZW5zLmJhc2UpIHsKKyAgICAgIHJldHVybjsKKyAgICB9CisgICAgbGV0IGlkbFR5cGUgPSBP
YmplY3QoX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX1sicHJpbWl0aXZl
X3R5cGUiXSkodG9rZW5pc2VyKTsKKyAgICBpZiAoIWlkbFR5cGUpIHsKKyAgICAgIGNvbnN0IGJh
c2UgPSB0b2tlbmlzZXIuY29uc3VtZSgiaWRlbnRpZmllciIpIHx8IHRva2VuaXNlci5lcnJvcigi
Q29uc3QgbGFja3MgYSB0eXBlIik7CisgICAgICBpZGxUeXBlID0gbmV3IF90eXBlX2pzX19XRUJQ
QUNLX0lNUE9SVEVEX01PRFVMRV8xX19bIlR5cGUiXSh7IHNvdXJjZTogdG9rZW5pc2VyLnNvdXJj
ZSwgdG9rZW5zOiB7IGJhc2UgfSB9KTsKKyAgICB9CisgICAgaWYgKHRva2VuaXNlci5wcm9iZSgi
PyIpKSB7CisgICAgICB0b2tlbmlzZXIuZXJyb3IoIlVuZXhwZWN0ZWQgbnVsbGFibGUgY29uc3Rh
bnQgdHlwZSIpOworICAgIH0KKyAgICBpZGxUeXBlLnR5cGUgPSAiY29uc3QtdHlwZSI7CisgICAg
dG9rZW5zLm5hbWUgPSB0b2tlbmlzZXIuY29uc3VtZSgiaWRlbnRpZmllciIpIHx8IHRva2VuaXNl
ci5lcnJvcigiQ29uc3QgbGFja3MgYSBuYW1lIik7CisgICAgdG9rZW5zLmFzc2lnbiA9IHRva2Vu
aXNlci5jb25zdW1lKCI9IikgfHwgdG9rZW5pc2VyLmVycm9yKCJDb25zdCBsYWNrcyB2YWx1ZSBh
c3NpZ25tZW50Iik7CisgICAgdG9rZW5zLnZhbHVlID0gT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQ
QUNLX0lNUE9SVEVEX01PRFVMRV8yX19bImNvbnN0X3ZhbHVlIl0pKHRva2VuaXNlcikgfHwgdG9r
ZW5pc2VyLmVycm9yKCJDb25zdCBsYWNrcyBhIHZhbHVlIik7CisgICAgdG9rZW5zLnRlcm1pbmF0
aW9uID0gdG9rZW5pc2VyLmNvbnN1bWUoIjsiKSB8fCB0b2tlbmlzZXIuZXJyb3IoIlVudGVybWlu
YXRlZCBjb25zdCwgZXhwZWN0ZWQgYDtgIik7CisgICAgY29uc3QgcmV0ID0gbmV3IENvbnN0YW50
KHsgc291cmNlOiB0b2tlbmlzZXIuc291cmNlLCB0b2tlbnMgfSk7CisgICAgcmV0LmlkbFR5cGUg
PSBpZGxUeXBlOworICAgIHJldHVybiByZXQ7CisgIH0KKworICBnZXQgdHlwZSgpIHsKKyAgICBy
ZXR1cm4gImNvbnN0IjsKKyAgfQorICBnZXQgbmFtZSgpIHsKKyAgICByZXR1cm4gdW5lc2NhcGUo
dGhpcy50b2tlbnMubmFtZS52YWx1ZSk7CisgIH0KKyAgZ2V0IHZhbHVlKCkgeworICAgIHJldHVy
biBPYmplY3QoX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX1siY29uc3Rf
ZGF0YSJdKSh0aGlzLnRva2Vucy52YWx1ZSk7CisgIH0KK30KKworCisvKioqLyB9KSwKKy8qIDIy
ICovCisvKioqLyAoZnVuY3Rpb24obW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBh
Y2tfcmVxdWlyZV9fKSB7CisKKyJ1c2Ugc3RyaWN0IjsKK19fd2VicGFja19yZXF1aXJlX18ucihf
X3dlYnBhY2tfZXhwb3J0c19fKTsKKy8qIGhhcm1vbnkgZXhwb3J0IChiaW5kaW5nKSAqLyBfX3dl
YnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgIkl0ZXJhYmxlTGlrZSIsIGZ1
bmN0aW9uKCkgeyByZXR1cm4gSXRlcmFibGVMaWtlOyB9KTsKKy8qIGhhcm1vbnkgaW1wb3J0ICov
IHZhciBfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3Jl
cXVpcmVfXyg2KTsKKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfaGVscGVyc19qc19fV0VCUEFD
S19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg0KTsKKworCisKK2Ns
YXNzIEl0ZXJhYmxlTGlrZSBleHRlbmRzIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVM
RV8wX19bIkJhc2UiXSB7CisgIC8qKgorICAgKiBAcGFyYW0ge2ltcG9ydCgiLi4vdG9rZW5pc2Vy
LmpzIikuVG9rZW5pc2VyfSB0b2tlbmlzZXIKKyAgICovCisgIHN0YXRpYyBwYXJzZSh0b2tlbmlz
ZXIpIHsKKyAgICBjb25zdCBzdGFydF9wb3NpdGlvbiA9IHRva2VuaXNlci5wb3NpdGlvbjsKKyAg
ICBjb25zdCB0b2tlbnMgPSB7fTsKKyAgICBjb25zdCByZXQgPSBuZXcgSXRlcmFibGVMaWtlKHsg
c291cmNlOiB0b2tlbmlzZXIuc291cmNlLCB0b2tlbnMgfSk7CisgICAgdG9rZW5zLnJlYWRvbmx5
ID0gdG9rZW5pc2VyLmNvbnN1bWUoInJlYWRvbmx5Iik7CisgICAgaWYgKCF0b2tlbnMucmVhZG9u
bHkpIHsKKyAgICAgIHRva2Vucy5hc3luYyA9IHRva2VuaXNlci5jb25zdW1lKCJhc3luYyIpOwor
ICAgIH0KKyAgICB0b2tlbnMuYmFzZSA9CisgICAgICB0b2tlbnMucmVhZG9ubHkgPyB0b2tlbmlz
ZXIuY29uc3VtZSgibWFwbGlrZSIsICJzZXRsaWtlIikgOgorICAgICAgdG9rZW5zLmFzeW5jID8g
dG9rZW5pc2VyLmNvbnN1bWUoIml0ZXJhYmxlIikgOgorICAgICAgdG9rZW5pc2VyLmNvbnN1bWUo
Iml0ZXJhYmxlIiwgIm1hcGxpa2UiLCAic2V0bGlrZSIpOworICAgIGlmICghdG9rZW5zLmJhc2Up
IHsKKyAgICAgIHRva2VuaXNlci51bmNvbnN1bWUoc3RhcnRfcG9zaXRpb24pOworICAgICAgcmV0
dXJuOworICAgIH0KKworICAgIGNvbnN0IHsgdHlwZSB9ID0gcmV0OworICAgIGNvbnN0IHNlY29u
ZFR5cGVSZXF1aXJlZCA9IHR5cGUgPT09ICJtYXBsaWtlIiB8fCByZXQuYXN5bmM7CisgICAgY29u
c3Qgc2Vjb25kVHlwZUFsbG93ZWQgPSBzZWNvbmRUeXBlUmVxdWlyZWQgfHwgdHlwZSA9PT0gIml0
ZXJhYmxlIjsKKworICAgIHRva2Vucy5vcGVuID0gdG9rZW5pc2VyLmNvbnN1bWUoIjwiKSB8fCB0
b2tlbmlzZXIuZXJyb3IoYE1pc3NpbmcgbGVzcy10aGFuIHNpZ24gXGA8XGAgaW4gJHt0eXBlfSBk
ZWNsYXJhdGlvbmApOworICAgIGNvbnN0IGZpcnN0ID0gT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQ
QUNLX0lNUE9SVEVEX01PRFVMRV8xX19bInR5cGVfd2l0aF9leHRlbmRlZF9hdHRyaWJ1dGVzIl0p
KHRva2VuaXNlcikgfHwgdG9rZW5pc2VyLmVycm9yKGBNaXNzaW5nIGEgdHlwZSBhcmd1bWVudCBp
biAke3R5cGV9IGRlY2xhcmF0aW9uYCk7CisgICAgcmV0LmlkbFR5cGUgPSBbZmlyc3RdOworICAg
IGlmIChzZWNvbmRUeXBlQWxsb3dlZCkgeworICAgICAgZmlyc3QudG9rZW5zLnNlcGFyYXRvciA9
IHRva2VuaXNlci5jb25zdW1lKCIsIik7CisgICAgICBpZiAoZmlyc3QudG9rZW5zLnNlcGFyYXRv
cikgeworICAgICAgICByZXQuaWRsVHlwZS5wdXNoKE9iamVjdChfaGVscGVyc19qc19fV0VCUEFD
S19JTVBPUlRFRF9NT0RVTEVfMV9fWyJ0eXBlX3dpdGhfZXh0ZW5kZWRfYXR0cmlidXRlcyJdKSh0
b2tlbmlzZXIpKTsKKyAgICAgIH0KKyAgICAgIGVsc2UgaWYgKHNlY29uZFR5cGVSZXF1aXJlZCkg
eworICAgICAgICB0b2tlbmlzZXIuZXJyb3IoYE1pc3Npbmcgc2Vjb25kIHR5cGUgYXJndW1lbnQg
aW4gJHt0eXBlfSBkZWNsYXJhdGlvbmApOworICAgICAgfQorICAgIH0KKyAgICB0b2tlbnMuY2xv
c2UgPSB0b2tlbmlzZXIuY29uc3VtZSgiPiIpIHx8IHRva2VuaXNlci5lcnJvcihgTWlzc2luZyBn
cmVhdGVyLXRoYW4gc2lnbiBcYD5cYCBpbiAke3R5cGV9IGRlY2xhcmF0aW9uYCk7CisgICAgdG9r
ZW5zLnRlcm1pbmF0aW9uID0gdG9rZW5pc2VyLmNvbnN1bWUoIjsiKSB8fCB0b2tlbmlzZXIuZXJy
b3IoYE1pc3Npbmcgc2VtaWNvbG9uIGFmdGVyICR7dHlwZX0gZGVjbGFyYXRpb25gKTsKKworICAg
IHJldHVybiByZXQ7CisgIH0KKworICBnZXQgdHlwZSgpIHsKKyAgICByZXR1cm4gdGhpcy50b2tl
bnMuYmFzZS52YWx1ZTsKKyAgfQorICBnZXQgcmVhZG9ubHkoKSB7CisgICAgcmV0dXJuICEhdGhp
cy50b2tlbnMucmVhZG9ubHk7CisgIH0KKyAgZ2V0IGFzeW5jKCkgeworICAgIHJldHVybiAhIXRo
aXMudG9rZW5zLmFzeW5jOworICB9Cit9CisKKworLyoqKi8gfSksCisvKiAyMyAqLworLyoqKi8g
KGZ1bmN0aW9uKG1vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVf
XykgeworCisidXNlIHN0cmljdCI7CitfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4
cG9ydHNfXyk7CisvKiBoYXJtb255IGV4cG9ydCAoYmluZGluZykgKi8gX193ZWJwYWNrX3JlcXVp
cmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sICJjaGVja0ludGVyZmFjZU1lbWJlckR1cGxpY2F0
aW9uIiwgZnVuY3Rpb24oKSB7IHJldHVybiBjaGVja0ludGVyZmFjZU1lbWJlckR1cGxpY2F0aW9u
OyB9KTsKKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfZXJyb3JfanNfX1dFQlBBQ0tfSU1QT1JU
RURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMyk7CisKKworZnVuY3Rpb24qIGNo
ZWNrSW50ZXJmYWNlTWVtYmVyRHVwbGljYXRpb24oZGVmcywgaSkgeworICBjb25zdCBvcE5hbWVz
ID0gbmV3IFNldChnZXRPcGVyYXRpb25zKGkpLm1hcChvcCA9PiBvcC5uYW1lKSk7CisgIGNvbnN0
IHBhcnRpYWxzID0gZGVmcy5wYXJ0aWFscy5nZXQoaS5uYW1lKSB8fCBbXTsKKyAgY29uc3QgbWl4
aW5zID0gZGVmcy5taXhpbk1hcC5nZXQoaS5uYW1lKSB8fCBbXTsKKyAgZm9yIChjb25zdCBleHQg
b2YgWy4uLnBhcnRpYWxzLCAuLi5taXhpbnNdKSB7CisgICAgY29uc3QgYWRkaXRpb25zID0gZ2V0
T3BlcmF0aW9ucyhleHQpOworICAgIHlpZWxkKiBmb3JFYWNoRXh0ZW5zaW9uKGFkZGl0aW9ucywg
b3BOYW1lcywgZXh0LCBpKTsKKyAgICBmb3IgKGNvbnN0IGFkZGl0aW9uIG9mIGFkZGl0aW9ucykg
eworICAgICAgb3BOYW1lcy5hZGQoYWRkaXRpb24ubmFtZSk7CisgICAgfQorICB9CisKKyAgZnVu
Y3Rpb24qIGZvckVhY2hFeHRlbnNpb24oYWRkaXRpb25zLCBleGlzdGluZ3MsIGV4dCwgYmFzZSkg
eworICAgIGZvciAoY29uc3QgYWRkaXRpb24gb2YgYWRkaXRpb25zKSB7CisgICAgICBjb25zdCB7
IG5hbWUgfSA9IGFkZGl0aW9uOworICAgICAgaWYgKG5hbWUgJiYgZXhpc3RpbmdzLmhhcyhuYW1l
KSkgeworICAgICAgICBjb25zdCBtZXNzYWdlID0gYFRoZSBvcGVyYXRpb24gIiR7bmFtZX0iIGhh
cyBhbHJlYWR5IGJlZW4gZGVmaW5lZCBmb3IgdGhlIGJhc2UgaW50ZXJmYWNlICIke2Jhc2UubmFt
ZX0iIGVpdGhlciBpbiBpdHNlbGYgb3IgaW4gYSBtaXhpbmA7CisgICAgICAgIHlpZWxkIE9iamVj
dChfZXJyb3JfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1sidmFsaWRhdGlvbkVycm9y
Il0pKGV4dC5zb3VyY2UsIGFkZGl0aW9uLnRva2Vucy5uYW1lLCBleHQsIG1lc3NhZ2UpOworICAg
ICAgfQorICAgIH0KKyAgfQorCisgIGZ1bmN0aW9uIGdldE9wZXJhdGlvbnMoaSkgeworICAgIHJl
dHVybiBpLm1lbWJlcnMKKyAgICAgIC5maWx0ZXIoKHt0eXBlfSkgPT4gdHlwZSA9PT0gIm9wZXJh
dGlvbiIpOworICB9Cit9CisKKworLyoqKi8gfSksCisvKiAyNCAqLworLyoqKi8gKGZ1bmN0aW9u
KG1vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgeworCisi
dXNlIHN0cmljdCI7CitfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7
CisvKiBoYXJtb255IGV4cG9ydCAoYmluZGluZykgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9f
d2VicGFja19leHBvcnRzX18sICJDb25zdHJ1Y3RvciIsIGZ1bmN0aW9uKCkgeyByZXR1cm4gQ29u
c3RydWN0b3I7IH0pOworLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9iYXNlX2pzX19XRUJQQUNL
X0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDYpOworLyogaGFybW9u
eSBpbXBvcnQgKi8gdmFyIF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18g
PSBfX3dlYnBhY2tfcmVxdWlyZV9fKDQpOworCisKKworY2xhc3MgQ29uc3RydWN0b3IgZXh0ZW5k
cyBfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJCYXNlIl0geworICAvKioK
KyAgICogQHBhcmFtIHtpbXBvcnQoIi4uL3Rva2VuaXNlciIpLlRva2VuaXNlcn0gdG9rZW5pc2Vy
CisgICAqLworICBzdGF0aWMgcGFyc2UodG9rZW5pc2VyKSB7CisgICAgY29uc3QgYmFzZSA9IHRv
a2VuaXNlci5jb25zdW1lKCJjb25zdHJ1Y3RvciIpOworICAgIGlmICghYmFzZSkgeworICAgICAg
cmV0dXJuOworICAgIH0KKyAgICBjb25zdCB0b2tlbnMgPSB7IGJhc2UgfTsKKyAgICB0b2tlbnMu
b3BlbiA9IHRva2VuaXNlci5jb25zdW1lKCIoIikgfHwgdG9rZW5pc2VyLmVycm9yKCJObyBhcmd1
bWVudCBsaXN0IGluIGNvbnN0cnVjdG9yIik7CisgICAgY29uc3QgYXJncyA9IE9iamVjdChfaGVs
cGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fWyJhcmd1bWVudF9saXN0Il0pKHRv
a2VuaXNlcik7CisgICAgdG9rZW5zLmNsb3NlID0gdG9rZW5pc2VyLmNvbnN1bWUoIikiKSB8fCB0
b2tlbmlzZXIuZXJyb3IoIlVudGVybWluYXRlZCBjb25zdHJ1Y3RvciIpOworICAgIHRva2Vucy50
ZXJtaW5hdGlvbiA9IHRva2VuaXNlci5jb25zdW1lKCI7IikgfHwgdG9rZW5pc2VyLmVycm9yKCJO
byBzZW1pY29sb24gYWZ0ZXIgY29uc3RydWN0b3IiKTsKKyAgICBjb25zdCByZXQgPSBuZXcgQ29u
c3RydWN0b3IoeyB0b2tlbnMgfSk7CisgICAgcmV0LmFyZ3VtZW50cyA9IGFyZ3M7CisgICAgcmV0
dXJuIHJldDsKKyAgfQorCisgIGdldCB0eXBlKCkgeworICAgIHJldHVybiAiY29uc3RydWN0b3Ii
OworICB9Cit9CisKKworLyoqKi8gfSksCisvKiAyNSAqLworLyoqKi8gKGZ1bmN0aW9uKG1vZHVs
ZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgeworCisidXNlIHN0
cmljdCI7CitfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7CisvKiBo
YXJtb255IGV4cG9ydCAoYmluZGluZykgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFj
a19leHBvcnRzX18sICJNaXhpbiIsIGZ1bmN0aW9uKCkgeyByZXR1cm4gTWl4aW47IH0pOworLyog
aGFybW9ueSBpbXBvcnQgKi8gdmFyIF9jb250YWluZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9E
VUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMjApOworLyogaGFybW9ueSBpbXBvcnQgKi8g
dmFyIF9jb25zdGFudF9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNr
X3JlcXVpcmVfXygyMSk7CisvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2F0dHJpYnV0ZV9qc19f
V0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygxNCk7Cisv
KiBoYXJtb255IGltcG9ydCAqLyB2YXIgX29wZXJhdGlvbl9qc19fV0VCUEFDS19JTVBPUlRFRF9N
T0RVTEVfM19fID0gX193ZWJwYWNrX3JlcXVpcmVfXygxMyk7CisvKiBoYXJtb255IGltcG9ydCAq
LyB2YXIgX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXyA9IF9fd2VicGFj
a19yZXF1aXJlX18oNCk7CisKKworCisKKworCitjbGFzcyBNaXhpbiBleHRlbmRzIF9jb250YWlu
ZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siQ29udGFpbmVyIl0geworICAvKioK
KyAgICogQHBhcmFtIHtpbXBvcnQoIi4uL3Rva2VuaXNlciIpLlRva2VuaXNlcn0gdG9rZW5pc2Vy
CisgICAqLworICBzdGF0aWMgcGFyc2UodG9rZW5pc2VyLCBiYXNlLCB7IHBhcnRpYWwgfSA9IHt9
KSB7CisgICAgY29uc3QgdG9rZW5zID0geyBwYXJ0aWFsLCBiYXNlIH07CisgICAgdG9rZW5zLm1p
eGluID0gdG9rZW5pc2VyLmNvbnN1bWUoIm1peGluIik7CisgICAgaWYgKCF0b2tlbnMubWl4aW4p
IHsKKyAgICAgIHJldHVybjsKKyAgICB9CisgICAgcmV0dXJuIF9jb250YWluZXJfanNfX1dFQlBB
Q0tfSU1QT1JURURfTU9EVUxFXzBfX1siQ29udGFpbmVyIl0ucGFyc2UodG9rZW5pc2VyLCBuZXcg
TWl4aW4oeyBzb3VyY2U6IHRva2VuaXNlci5zb3VyY2UsIHRva2VucyB9KSwgeworICAgICAgdHlw
ZTogImludGVyZmFjZSBtaXhpbiIsCisgICAgICBhbGxvd2VkTWVtYmVyczogWworICAgICAgICBb
X2NvbnN0YW50X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19bIkNvbnN0YW50Il0ucGFy
c2VdLAorICAgICAgICBbX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfX1si
c3RyaW5naWZpZXIiXV0sCisgICAgICAgIFtfYXR0cmlidXRlX2pzX19XRUJQQUNLX0lNUE9SVEVE
X01PRFVMRV8yX19bIkF0dHJpYnV0ZSJdLnBhcnNlLCB7IG5vSW5oZXJpdDogdHJ1ZSB9XSwKKyAg
ICAgICAgW19vcGVyYXRpb25fanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfX1siT3BlcmF0
aW9uIl0ucGFyc2UsIHsgcmVndWxhcjogdHJ1ZSB9XQorICAgICAgXQorICAgIH0pOworICB9CisK
KyAgZ2V0IHR5cGUoKSB7CisgICAgcmV0dXJuICJpbnRlcmZhY2UgbWl4aW4iOworICB9Cit9CisK
KworLyoqKi8gfSksCisvKiAyNiAqLworLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgX193ZWJwYWNr
X2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgeworCisidXNlIHN0cmljdCI7CitfX3dl
YnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7CisvKiBoYXJtb255IGV4cG9y
dCAoYmluZGluZykgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18s
ICJEaWN0aW9uYXJ5IiwgZnVuY3Rpb24oKSB7IHJldHVybiBEaWN0aW9uYXJ5OyB9KTsKKy8qIGhh
cm1vbnkgaW1wb3J0ICovIHZhciBfY29udGFpbmVyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVM
RV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDIwKTsKKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZh
ciBfZmllbGRfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1
aXJlX18oMjcpOworCisKKworY2xhc3MgRGljdGlvbmFyeSBleHRlbmRzIF9jb250YWluZXJfanNf
X1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siQ29udGFpbmVyIl0geworICAvKioKKyAgICog
QHBhcmFtIHtpbXBvcnQoIi4uL3Rva2VuaXNlciIpLlRva2VuaXNlcn0gdG9rZW5pc2VyCisgICAq
LworICBzdGF0aWMgcGFyc2UodG9rZW5pc2VyLCB7IHBhcnRpYWwgfSA9IHt9KSB7CisgICAgY29u
c3QgdG9rZW5zID0geyBwYXJ0aWFsIH07CisgICAgdG9rZW5zLmJhc2UgPSB0b2tlbmlzZXIuY29u
c3VtZSgiZGljdGlvbmFyeSIpOworICAgIGlmICghdG9rZW5zLmJhc2UpIHsKKyAgICAgIHJldHVy
bjsKKyAgICB9CisgICAgcmV0dXJuIF9jb250YWluZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9E
VUxFXzBfX1siQ29udGFpbmVyIl0ucGFyc2UodG9rZW5pc2VyLCBuZXcgRGljdGlvbmFyeSh7IHNv
dXJjZTogdG9rZW5pc2VyLnNvdXJjZSwgdG9rZW5zIH0pLCB7CisgICAgICB0eXBlOiAiZGljdGlv
bmFyeSIsCisgICAgICBpbmhlcml0YWJsZTogIXBhcnRpYWwsCisgICAgICBhbGxvd2VkTWVtYmVy
czogWworICAgICAgICBbX2ZpZWxkX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19bIkZp
ZWxkIl0ucGFyc2VdLAorICAgICAgXQorICAgIH0pOworICB9CisKKyAgZ2V0IHR5cGUoKSB7Cisg
ICAgcmV0dXJuICJkaWN0aW9uYXJ5IjsKKyAgfQorfQorCisKKy8qKiovIH0pLAorLyogMjcgKi8K
Ky8qKiovIChmdW5jdGlvbihtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19y
ZXF1aXJlX18pIHsKKworInVzZSBzdHJpY3QiOworX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2Vi
cGFja19leHBvcnRzX18pOworLyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFj
a19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAiRmllbGQiLCBmdW5jdGlvbigpIHsg
cmV0dXJuIEZpZWxkOyB9KTsKKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfYmFzZV9qc19fV0VC
UEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg2KTsKKy8qIGhh
cm1vbnkgaW1wb3J0ICovIHZhciBfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVf
MV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg0KTsKKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBf
ZXh0ZW5kZWRfYXR0cmlidXRlc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fID0gX193
ZWJwYWNrX3JlcXVpcmVfXygxMCk7CisvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2RlZmF1bHRf
anNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXyA9IF9fd2VicGFja19yZXF1aXJlX18oOSk7
CisKKworCisKKworY2xhc3MgRmllbGQgZXh0ZW5kcyBfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRF
RF9NT0RVTEVfMF9fWyJCYXNlIl0geworICAvKioKKyAgICogQHBhcmFtIHtpbXBvcnQoIi4uL3Rv
a2VuaXNlciIpLlRva2VuaXNlcn0gdG9rZW5pc2VyCisgICAqLworICBzdGF0aWMgcGFyc2UodG9r
ZW5pc2VyKSB7CisgICAgY29uc3QgdG9rZW5zID0ge307CisgICAgY29uc3QgcmV0ID0gbmV3IEZp
ZWxkKHsgc291cmNlOiB0b2tlbmlzZXIuc291cmNlLCB0b2tlbnMgfSk7CisgICAgcmV0LmV4dEF0
dHJzID0gX2V4dGVuZGVkX2F0dHJpYnV0ZXNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJf
X1siRXh0ZW5kZWRBdHRyaWJ1dGVzIl0ucGFyc2UodG9rZW5pc2VyKTsKKyAgICB0b2tlbnMucmVx
dWlyZWQgPSB0b2tlbmlzZXIuY29uc3VtZSgicmVxdWlyZWQiKTsKKyAgICByZXQuaWRsVHlwZSA9
IE9iamVjdChfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fWyJ0eXBlX3dp
dGhfZXh0ZW5kZWRfYXR0cmlidXRlcyJdKSh0b2tlbmlzZXIsICJkaWN0aW9uYXJ5LXR5cGUiKSB8
fCB0b2tlbmlzZXIuZXJyb3IoIkRpY3Rpb25hcnkgbWVtYmVyIGxhY2tzIGEgdHlwZSIpOworICAg
IHRva2Vucy5uYW1lID0gdG9rZW5pc2VyLmNvbnN1bWUoImlkZW50aWZpZXIiKSB8fCB0b2tlbmlz
ZXIuZXJyb3IoIkRpY3Rpb25hcnkgbWVtYmVyIGxhY2tzIGEgbmFtZSIpOworICAgIHJldC5kZWZh
dWx0ID0gX2RlZmF1bHRfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfX1siRGVmYXVsdCJd
LnBhcnNlKHRva2VuaXNlcik7CisgICAgaWYgKHRva2Vucy5yZXF1aXJlZCAmJiByZXQuZGVmYXVs
dCkgdG9rZW5pc2VyLmVycm9yKCJSZXF1aXJlZCBtZW1iZXIgbXVzdCBub3QgaGF2ZSBhIGRlZmF1
bHQiKTsKKyAgICB0b2tlbnMudGVybWluYXRpb24gPSB0b2tlbmlzZXIuY29uc3VtZSgiOyIpIHx8
IHRva2VuaXNlci5lcnJvcigiVW50ZXJtaW5hdGVkIGRpY3Rpb25hcnkgbWVtYmVyLCBleHBlY3Rl
ZCBgO2AiKTsKKyAgICByZXR1cm4gcmV0OworICB9CisKKyAgZ2V0IHR5cGUoKSB7CisgICAgcmV0
dXJuICJmaWVsZCI7CisgIH0KKyAgZ2V0IG5hbWUoKSB7CisgICAgcmV0dXJuIE9iamVjdChfaGVs
cGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fWyJ1bmVzY2FwZSJdKSh0aGlzLnRv
a2Vucy5uYW1lLnZhbHVlKTsKKyAgfQorICBnZXQgcmVxdWlyZWQoKSB7CisgICAgcmV0dXJuICEh
dGhpcy50b2tlbnMucmVxdWlyZWQ7CisgIH0KKworICAqdmFsaWRhdGUoZGVmcykgeworICAgIHlp
ZWxkKiB0aGlzLmlkbFR5cGUudmFsaWRhdGUoZGVmcyk7CisgIH0KK30KKworCisvKioqLyB9KSwK
Ky8qIDI4ICovCisvKioqLyAoZnVuY3Rpb24obW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBf
X3dlYnBhY2tfcmVxdWlyZV9fKSB7CisKKyJ1c2Ugc3RyaWN0IjsKK19fd2VicGFja19yZXF1aXJl
X18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTsKKy8qIGhhcm1vbnkgZXhwb3J0IChiaW5kaW5nKSAq
LyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgIk5hbWVzcGFjZSIs
IGZ1bmN0aW9uKCkgeyByZXR1cm4gTmFtZXNwYWNlOyB9KTsKKy8qIGhhcm1vbnkgaW1wb3J0ICov
IHZhciBfY29udGFpbmVyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBh
Y2tfcmVxdWlyZV9fKDIwKTsKKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfYXR0cmlidXRlX2pz
X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDE0KTsK
Ky8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfb3BlcmF0aW9uX2pzX19XRUJQQUNLX0lNUE9SVEVE
X01PRFVMRV8yX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDEzKTsKKy8qIGhhcm1vbnkgaW1wb3J0
ICovIHZhciBfZXJyb3JfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXyA9IF9fd2VicGFj
a19yZXF1aXJlX18oMyk7CisvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2hlbHBlcnNfanNfX1dF
QlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXyA9IF9fd2VicGFja19yZXF1aXJlX18oNCk7CisKKwor
CisKKworCitjbGFzcyBOYW1lc3BhY2UgZXh0ZW5kcyBfY29udGFpbmVyX2pzX19XRUJQQUNLX0lN
UE9SVEVEX01PRFVMRV8wX19bIkNvbnRhaW5lciJdIHsKKyAgLyoqCisgICAqIEBwYXJhbSB7aW1w
b3J0KCIuLi90b2tlbmlzZXIiKS5Ub2tlbmlzZXJ9IHRva2VuaXNlcgorICAgKi8KKyAgc3RhdGlj
IHBhcnNlKHRva2VuaXNlciwgeyBwYXJ0aWFsIH0gPSB7fSkgeworICAgIGNvbnN0IHRva2VucyA9
IHsgcGFydGlhbCB9OworICAgIHRva2Vucy5iYXNlID0gdG9rZW5pc2VyLmNvbnN1bWUoIm5hbWVz
cGFjZSIpOworICAgIGlmICghdG9rZW5zLmJhc2UpIHsKKyAgICAgIHJldHVybjsKKyAgICB9Cisg
ICAgcmV0dXJuIF9jb250YWluZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siQ29u
dGFpbmVyIl0ucGFyc2UodG9rZW5pc2VyLCBuZXcgTmFtZXNwYWNlKHsgc291cmNlOiB0b2tlbmlz
ZXIuc291cmNlLCB0b2tlbnMgfSksIHsKKyAgICAgIHR5cGU6ICJuYW1lc3BhY2UiLAorICAgICAg
YWxsb3dlZE1lbWJlcnM6IFsKKyAgICAgICAgW19hdHRyaWJ1dGVfanNfX1dFQlBBQ0tfSU1QT1JU
RURfTU9EVUxFXzFfX1siQXR0cmlidXRlIl0ucGFyc2UsIHsgbm9Jbmhlcml0OiB0cnVlLCByZWFk
b25seTogdHJ1ZSB9XSwKKyAgICAgICAgW19vcGVyYXRpb25fanNfX1dFQlBBQ0tfSU1QT1JURURf
TU9EVUxFXzJfX1siT3BlcmF0aW9uIl0ucGFyc2UsIHsgcmVndWxhcjogdHJ1ZSB9XQorICAgICAg
XQorICAgIH0pOworICB9CisKKyAgZ2V0IHR5cGUoKSB7CisgICAgcmV0dXJuICJuYW1lc3BhY2Ui
OworICB9CisKKyAgKnZhbGlkYXRlKGRlZnMpIHsKKyAgICBpZiAoIXRoaXMucGFydGlhbCAmJiB0
aGlzLmV4dEF0dHJzLmV2ZXJ5KGV4dEF0dHIgPT4gZXh0QXR0ci5uYW1lICE9PSAiRXhwb3NlZCIp
KSB7CisgICAgICBjb25zdCBtZXNzYWdlID0gYE5hbWVzcGFjZXMgbXVzdCBoYXZlIFtFeHBvc2Vk
XSBleHRlbmRlZCBhdHRyaWJ1dGUuIFwKK1RvIGZpeCwgYWRkLCBmb3IgZXhhbXBsZSwgW0V4cG9z
ZWQ9V2luZG93XS4gUGxlYXNlIGFsc28gY29uc2lkZXIgY2FyZWZ1bGx5IFwKK2lmIHlvdXIgbmFt
ZXNwYWNlIHNob3VsZCBhbHNvIGJlIGV4cG9zZWQgaW4gYSBXb3JrZXIgc2NvcGUuIFJlZmVyIHRv
IHRoZSBcCitbV2ViSURMIHNwZWMgc2VjdGlvbiBvbiBFeHBvc2VkXShodHRwczovL2hleWNhbS5n
aXRodWIuaW8vd2ViaWRsLyNFeHBvc2VkKSBcCitmb3IgbW9yZSBpbmZvcm1hdGlvbi5gOworICAg
ICAgeWllbGQgT2JqZWN0KF9lcnJvcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fWyJ2
YWxpZGF0aW9uRXJyb3IiXSkodGhpcy5zb3VyY2UsIHRoaXMudG9rZW5zLm5hbWUsIHRoaXMsIG1l
c3NhZ2UsIHsKKyAgICAgICAgYXV0b2ZpeDogT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lN
UE9SVEVEX01PRFVMRV80X19bImF1dG9maXhBZGRFeHBvc2VkV2luZG93Il0pKHRoaXMpCisgICAg
ICB9KTsKKyAgICB9CisgICAgeWllbGQqIHN1cGVyLnZhbGlkYXRlKGRlZnMpOworICB9Cit9CisK
KworLyoqKi8gfSksCisvKiAyOSAqLworLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgX193ZWJwYWNr
X2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgeworCisidXNlIHN0cmljdCI7CitfX3dl
YnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7CisvKiBoYXJtb255IGV4cG9y
dCAoYmluZGluZykgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18s
ICJDYWxsYmFja0ludGVyZmFjZSIsIGZ1bmN0aW9uKCkgeyByZXR1cm4gQ2FsbGJhY2tJbnRlcmZh
Y2U7IH0pOworLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9jb250YWluZXJfanNfX1dFQlBBQ0tf
SU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMjApOworLyogaGFybW9u
eSBpbXBvcnQgKi8gdmFyIF9vcGVyYXRpb25fanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFf
XyA9IF9fd2VicGFja19yZXF1aXJlX18oMTMpOworLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9j
b25zdGFudF9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fID0gX193ZWJwYWNrX3JlcXVp
cmVfXygyMSk7CisKKworCisKKworY2xhc3MgQ2FsbGJhY2tJbnRlcmZhY2UgZXh0ZW5kcyBfY29u
dGFpbmVyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIkNvbnRhaW5lciJdIHsKKyAg
LyoqCisgICAqIEBwYXJhbSB7aW1wb3J0KCIuLi90b2tlbmlzZXIiKS5Ub2tlbmlzZXJ9IHRva2Vu
aXNlcgorICAgKi8KKyAgc3RhdGljIHBhcnNlKHRva2VuaXNlciwgY2FsbGJhY2ssIHsgcGFydGlh
bCA9IG51bGwgfSA9IHt9KSB7CisgICAgY29uc3QgdG9rZW5zID0geyBjYWxsYmFjayB9OworICAg
IHRva2Vucy5iYXNlID0gdG9rZW5pc2VyLmNvbnN1bWUoImludGVyZmFjZSIpOworICAgIGlmICgh
dG9rZW5zLmJhc2UpIHsKKyAgICAgIHJldHVybjsKKyAgICB9CisgICAgcmV0dXJuIF9jb250YWlu
ZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siQ29udGFpbmVyIl0ucGFyc2UodG9r
ZW5pc2VyLCBuZXcgQ2FsbGJhY2tJbnRlcmZhY2UoeyBzb3VyY2U6IHRva2VuaXNlci5zb3VyY2Us
IHRva2VucyB9KSwgeworICAgICAgdHlwZTogImNhbGxiYWNrIGludGVyZmFjZSIsCisgICAgICBp
bmhlcml0YWJsZTogIXBhcnRpYWwsCisgICAgICBhbGxvd2VkTWVtYmVyczogWworICAgICAgICBb
X2NvbnN0YW50X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19bIkNvbnN0YW50Il0ucGFy
c2VdLAorICAgICAgICBbX29wZXJhdGlvbl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9f
WyJPcGVyYXRpb24iXS5wYXJzZSwgeyByZWd1bGFyOiB0cnVlIH1dCisgICAgICBdCisgICAgfSk7
CisgIH0KKworICBnZXQgdHlwZSgpIHsKKyAgICByZXR1cm4gImNhbGxiYWNrIGludGVyZmFjZSI7
CisgIH0KK30KKworCisvKioqLyB9KSwKKy8qIDMwICovCisvKioqLyAoZnVuY3Rpb24obW9kdWxl
LCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CisKKyJ1c2Ugc3Ry
aWN0IjsKK19fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTsKKy8qIGhh
cm1vbnkgZXhwb3J0IChiaW5kaW5nKSAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNr
X2V4cG9ydHNfXywgIndyaXRlIiwgZnVuY3Rpb24oKSB7IHJldHVybiB3cml0ZTsgfSk7CisKKwor
ZnVuY3Rpb24gbm9vcChhcmcpIHsKKyAgcmV0dXJuIGFyZzsKK30KKworY29uc3QgdGVtcGxhdGVz
ID0geworICB3cmFwOiBpdGVtcyA9PiBpdGVtcy5qb2luKCIiKSwKKyAgdHJpdmlhOiBub29wLAor
ICBuYW1lOiBub29wLAorICByZWZlcmVuY2U6IG5vb3AsCisgIHR5cGU6IG5vb3AsCisgIGdlbmVy
aWM6IG5vb3AsCisgIG5hbWVsZXNzOiBub29wLAorICBpbmhlcml0YW5jZTogbm9vcCwKKyAgZGVm
aW5pdGlvbjogbm9vcCwKKyAgZXh0ZW5kZWRBdHRyaWJ1dGU6IG5vb3AsCisgIGV4dGVuZGVkQXR0
cmlidXRlUmVmZXJlbmNlOiBub29wCit9OworCitmdW5jdGlvbiB3cml0ZShhc3QsIHsgdGVtcGxh
dGVzOiB0cyA9IHRlbXBsYXRlcyB9ID0ge30pIHsKKyAgdHMgPSBPYmplY3QuYXNzaWduKHt9LCB0
ZW1wbGF0ZXMsIHRzKTsKKworICBmdW5jdGlvbiByZWZlcmVuY2UocmF3LCB7IHVuZXNjYXBlZCwg
Y29udGV4dCB9KSB7CisgICAgaWYgKCF1bmVzY2FwZWQpIHsKKyAgICAgIHVuZXNjYXBlZCA9IHJh
dy5zdGFydHNXaXRoKCJfIikgPyByYXcuc2xpY2UoMSkgOiByYXc7CisgICAgfQorICAgIHJldHVy
biB0cy5yZWZlcmVuY2UocmF3LCB1bmVzY2FwZWQsIGNvbnRleHQpOworICB9CisKKyAgZnVuY3Rp
b24gdG9rZW4odCwgd3JhcHBlciA9IG5vb3AsIC4uLmFyZ3MpIHsKKyAgICBpZiAoIXQpIHsKKyAg
ICAgIHJldHVybiAiIjsKKyAgICB9CisgICAgY29uc3QgdmFsdWUgPSB3cmFwcGVyKHQudmFsdWUs
IC4uLmFyZ3MpOworICAgIHJldHVybiB0cy53cmFwKFt0cy50cml2aWEodC50cml2aWEpLCB2YWx1
ZV0pOworICB9CisKKyAgZnVuY3Rpb24gcmVmZXJlbmNlX3Rva2VuKHQsIGNvbnRleHQpIHsKKyAg
ICByZXR1cm4gdG9rZW4odCwgcmVmZXJlbmNlLCB7IGNvbnRleHQgfSk7CisgIH0KKworICBmdW5j
dGlvbiBuYW1lX3Rva2VuKHQsIGFyZykgeworICAgIHJldHVybiB0b2tlbih0LCB0cy5uYW1lLCBh
cmcpOworICB9CisKKyAgZnVuY3Rpb24gdHlwZV9ib2R5KGl0KSB7CisgICAgaWYgKGl0LnVuaW9u
IHx8IGl0LmdlbmVyaWMpIHsKKyAgICAgIHJldHVybiB0cy53cmFwKFsKKyAgICAgICAgdG9rZW4o
aXQudG9rZW5zLmJhc2UsIHRzLmdlbmVyaWMpLAorICAgICAgICB0b2tlbihpdC50b2tlbnMub3Bl
biksCisgICAgICAgIC4uLml0LnN1YnR5cGUubWFwKHR5cGUpLAorICAgICAgICB0b2tlbihpdC50
b2tlbnMuY2xvc2UpCisgICAgICBdKTsKKyAgICB9CisgICAgY29uc3QgZmlyc3RUb2tlbiA9IGl0
LnRva2Vucy5wcmVmaXggfHwgaXQudG9rZW5zLmJhc2U7CisgICAgY29uc3QgcHJlZml4ID0gaXQu
dG9rZW5zLnByZWZpeCA/IFsKKyAgICAgIGl0LnRva2Vucy5wcmVmaXgudmFsdWUsCisgICAgICB0
cy50cml2aWEoaXQudG9rZW5zLmJhc2UudHJpdmlhKQorICAgIF0gOiBbXTsKKyAgICBjb25zdCBy
ZWYgPSByZWZlcmVuY2UodHMud3JhcChbCisgICAgICAuLi5wcmVmaXgsCisgICAgICBpdC50b2tl
bnMuYmFzZS52YWx1ZSwKKyAgICAgIHRva2VuKGl0LnRva2Vucy5wb3N0Zml4KQorICAgIF0pLCB7
IHVuZXNjYXBlZDogaXQuaWRsVHlwZSwgY29udGV4dDogaXQgfSk7CisgICAgcmV0dXJuIHRzLndy
YXAoW3RzLnRyaXZpYShmaXJzdFRva2VuLnRyaXZpYSksIHJlZl0pOworICB9CisgIGZ1bmN0aW9u
IHR5cGUoaXQpIHsKKyAgICByZXR1cm4gdHMud3JhcChbCisgICAgICBleHRlbmRlZF9hdHRyaWJ1
dGVzKGl0LmV4dEF0dHJzKSwKKyAgICAgIHR5cGVfYm9keShpdCksCisgICAgICB0b2tlbihpdC50
b2tlbnMubnVsbGFibGUpLAorICAgICAgdG9rZW4oaXQudG9rZW5zLnNlcGFyYXRvcikKKyAgICBd
KTsKKyAgfQorICBmdW5jdGlvbiBkZWZhdWx0XyhkZWYpIHsKKyAgICBpZiAoIWRlZikgeworICAg
ICAgcmV0dXJuICIiOworICAgIH0KKyAgICByZXR1cm4gdHMud3JhcChbCisgICAgICB0b2tlbihk
ZWYudG9rZW5zLmFzc2lnbiksCisgICAgICAuLi5kZWYuZXhwcmVzc2lvbi5tYXAodCA9PiB0b2tl
bih0KSkKKyAgICBdKTsKKyAgfQorICBmdW5jdGlvbiBhcmd1bWVudChhcmcpIHsKKyAgICByZXR1
cm4gdHMud3JhcChbCisgICAgICBleHRlbmRlZF9hdHRyaWJ1dGVzKGFyZy5leHRBdHRycyksCisg
ICAgICB0b2tlbihhcmcudG9rZW5zLm9wdGlvbmFsKSwKKyAgICAgIHRzLnR5cGUodHlwZShhcmcu
aWRsVHlwZSkpLAorICAgICAgdG9rZW4oYXJnLnRva2Vucy52YXJpYWRpYyksCisgICAgICBuYW1l
X3Rva2VuKGFyZy50b2tlbnMubmFtZSwgeyBkYXRhOiBhcmcgfSksCisgICAgICBkZWZhdWx0Xyhh
cmcuZGVmYXVsdCksCisgICAgICB0b2tlbihhcmcudG9rZW5zLnNlcGFyYXRvcikKKyAgICBdKTsK
KyAgfQorICBmdW5jdGlvbiBpZGVudGlmaWVyKGlkLCBjb250ZXh0KSB7CisgICAgcmV0dXJuIHRz
LndyYXAoWworICAgICAgcmVmZXJlbmNlX3Rva2VuKGlkLnRva2Vucy52YWx1ZSwgY29udGV4dCks
CisgICAgICB0b2tlbihpZC50b2tlbnMuc2VwYXJhdG9yKQorICAgIF0pOworICB9CisgIGZ1bmN0
aW9uIG1ha2VfZXh0X2F0KGl0KSB7CisgICAgY29uc3QgeyByaHNUeXBlIH0gPSBpdC5wYXJhbXM7
CisgICAgcmV0dXJuIHRzLndyYXAoWworICAgICAgdHMudHJpdmlhKGl0LnRva2Vucy5uYW1lLnRy
aXZpYSksCisgICAgICB0cy5leHRlbmRlZEF0dHJpYnV0ZSh0cy53cmFwKFsKKyAgICAgICAgdHMu
ZXh0ZW5kZWRBdHRyaWJ1dGVSZWZlcmVuY2UoaXQubmFtZSksCisgICAgICAgIHRva2VuKGl0LnBh
cmFtcy50b2tlbnMuYXNzaWduKSwKKyAgICAgICAgcmVmZXJlbmNlX3Rva2VuKGl0LnBhcmFtcy50
b2tlbnMuc2Vjb25kYXJ5TmFtZSwgaXQpLAorICAgICAgICB0b2tlbihpdC5wYXJhbXMudG9rZW5z
Lm9wZW4pLAorICAgICAgICAuLi4haXQucGFyYW1zLmxpc3QgPyBbXSA6CisgICAgICAgICAgaXQu
cGFyYW1zLmxpc3QubWFwKAorICAgICAgICAgICAgcmhzVHlwZSA9PT0gImlkZW50aWZpZXItbGlz
dCIgPyBpZCA9PiBpZGVudGlmaWVyKGlkLCBpdCkgOiBhcmd1bWVudAorICAgICAgICAgICksCisg
ICAgICAgIHRva2VuKGl0LnBhcmFtcy50b2tlbnMuY2xvc2UpCisgICAgICBdKSksCisgICAgICB0
b2tlbihpdC50b2tlbnMuc2VwYXJhdG9yKQorICAgIF0pOworICB9CisgIGZ1bmN0aW9uIGV4dGVu
ZGVkX2F0dHJpYnV0ZXMoZWF0cykgeworICAgIGlmICghZWF0cy5sZW5ndGgpIHJldHVybiAiIjsK
KyAgICByZXR1cm4gdHMud3JhcChbCisgICAgICB0b2tlbihlYXRzLnRva2Vucy5vcGVuKSwKKyAg
ICAgIC4uLmVhdHMubWFwKG1ha2VfZXh0X2F0KSwKKyAgICAgIHRva2VuKGVhdHMudG9rZW5zLmNs
b3NlKQorICAgIF0pOworICB9CisKKyAgZnVuY3Rpb24gb3BlcmF0aW9uKGl0LCBwYXJlbnQpIHsK
KyAgICBjb25zdCBib2R5ID0gaXQuaWRsVHlwZSA/IFsKKyAgICAgIHRzLnR5cGUodHlwZShpdC5p
ZGxUeXBlKSksCisgICAgICBuYW1lX3Rva2VuKGl0LnRva2Vucy5uYW1lLCB7IGRhdGE6IGl0LCBw
YXJlbnQgfSksCisgICAgICB0b2tlbihpdC50b2tlbnMub3BlbiksCisgICAgICB0cy53cmFwKGl0
LmFyZ3VtZW50cy5tYXAoYXJndW1lbnQpKSwKKyAgICAgIHRva2VuKGl0LnRva2Vucy5jbG9zZSks
CisgICAgXSA6IFtdOworICAgIHJldHVybiB0cy5kZWZpbml0aW9uKHRzLndyYXAoWworICAgICAg
ZXh0ZW5kZWRfYXR0cmlidXRlcyhpdC5leHRBdHRycyksCisgICAgICBpdC50b2tlbnMubmFtZSA/
IHRva2VuKGl0LnRva2Vucy5zcGVjaWFsKSA6IHRva2VuKGl0LnRva2Vucy5zcGVjaWFsLCB0cy5u
YW1lbGVzcywgeyBkYXRhOiBpdCwgcGFyZW50IH0pLAorICAgICAgLi4uYm9keSwKKyAgICAgIHRv
a2VuKGl0LnRva2Vucy50ZXJtaW5hdGlvbikKKyAgICBdKSwgeyBkYXRhOiBpdCwgcGFyZW50IH0p
OworICB9CisKKyAgZnVuY3Rpb24gYXR0cmlidXRlKGl0LCBwYXJlbnQpIHsKKyAgICByZXR1cm4g
dHMuZGVmaW5pdGlvbih0cy53cmFwKFsKKyAgICAgIGV4dGVuZGVkX2F0dHJpYnV0ZXMoaXQuZXh0
QXR0cnMpLAorICAgICAgdG9rZW4oaXQudG9rZW5zLnNwZWNpYWwpLAorICAgICAgdG9rZW4oaXQu
dG9rZW5zLnJlYWRvbmx5KSwKKyAgICAgIHRva2VuKGl0LnRva2Vucy5iYXNlKSwKKyAgICAgIHRz
LnR5cGUodHlwZShpdC5pZGxUeXBlKSksCisgICAgICBuYW1lX3Rva2VuKGl0LnRva2Vucy5uYW1l
LCB7IGRhdGE6IGl0LCBwYXJlbnQgfSksCisgICAgICB0b2tlbihpdC50b2tlbnMudGVybWluYXRp
b24pCisgICAgXSksIHsgZGF0YTogaXQsIHBhcmVudCB9KTsKKyAgfQorCisgIGZ1bmN0aW9uIGNv
bnN0cnVjdG9yKGl0LCBwYXJlbnQpIHsKKyAgICByZXR1cm4gdHMuZGVmaW5pdGlvbih0cy53cmFw
KFsKKyAgICAgIGV4dGVuZGVkX2F0dHJpYnV0ZXMoaXQuZXh0QXR0cnMpLAorICAgICAgdG9rZW4o
aXQudG9rZW5zLmJhc2UsIHRzLm5hbWVsZXNzLCB7IGRhdGE6IGl0LCBwYXJlbnQgfSksCisgICAg
ICB0b2tlbihpdC50b2tlbnMub3BlbiksCisgICAgICB0cy53cmFwKGl0LmFyZ3VtZW50cy5tYXAo
YXJndW1lbnQpKSwKKyAgICAgIHRva2VuKGl0LnRva2Vucy5jbG9zZSksCisgICAgICB0b2tlbihp
dC50b2tlbnMudGVybWluYXRpb24pCisgICAgXSksIHsgZGF0YTogaXQsIHBhcmVudCB9KTsKKyAg
fQorCisgIGZ1bmN0aW9uIGluaGVyaXRhbmNlKGluaCkgeworICAgIGlmICghaW5oLnRva2Vucy5p
bmhlcml0YW5jZSkgeworICAgICAgcmV0dXJuICIiOworICAgIH0KKyAgICByZXR1cm4gdHMud3Jh
cChbCisgICAgICB0b2tlbihpbmgudG9rZW5zLmNvbG9uKSwKKyAgICAgIHRzLnRyaXZpYShpbmgu
dG9rZW5zLmluaGVyaXRhbmNlLnRyaXZpYSksCisgICAgICB0cy5pbmhlcml0YW5jZShyZWZlcmVu
Y2UoaW5oLnRva2Vucy5pbmhlcml0YW5jZS52YWx1ZSwgeyBjb250ZXh0OiBpbmggfSkpCisgICAg
XSk7CisgIH0KKworICBmdW5jdGlvbiBjb250YWluZXIoaXQpIHsKKyAgICByZXR1cm4gdHMuZGVm
aW5pdGlvbih0cy53cmFwKFsKKyAgICAgIGV4dGVuZGVkX2F0dHJpYnV0ZXMoaXQuZXh0QXR0cnMp
LAorICAgICAgdG9rZW4oaXQudG9rZW5zLmNhbGxiYWNrKSwKKyAgICAgIHRva2VuKGl0LnRva2Vu
cy5wYXJ0aWFsKSwKKyAgICAgIHRva2VuKGl0LnRva2Vucy5iYXNlKSwKKyAgICAgIHRva2VuKGl0
LnRva2Vucy5taXhpbiksCisgICAgICBuYW1lX3Rva2VuKGl0LnRva2Vucy5uYW1lLCB7IGRhdGE6
IGl0IH0pLAorICAgICAgaW5oZXJpdGFuY2UoaXQpLAorICAgICAgdG9rZW4oaXQudG9rZW5zLm9w
ZW4pLAorICAgICAgaXRlcmF0ZShpdC5tZW1iZXJzLCBpdCksCisgICAgICB0b2tlbihpdC50b2tl
bnMuY2xvc2UpLAorICAgICAgdG9rZW4oaXQudG9rZW5zLnRlcm1pbmF0aW9uKQorICAgIF0pLCB7
IGRhdGE6IGl0IH0pOworICB9CisKKyAgZnVuY3Rpb24gZmllbGQoaXQsIHBhcmVudCkgeworICAg
IHJldHVybiB0cy5kZWZpbml0aW9uKHRzLndyYXAoWworICAgICAgZXh0ZW5kZWRfYXR0cmlidXRl
cyhpdC5leHRBdHRycyksCisgICAgICB0b2tlbihpdC50b2tlbnMucmVxdWlyZWQpLAorICAgICAg
dHMudHlwZSh0eXBlKGl0LmlkbFR5cGUpKSwKKyAgICAgIG5hbWVfdG9rZW4oaXQudG9rZW5zLm5h
bWUsIHsgZGF0YTogaXQsIHBhcmVudCB9KSwKKyAgICAgIGRlZmF1bHRfKGl0LmRlZmF1bHQpLAor
ICAgICAgdG9rZW4oaXQudG9rZW5zLnRlcm1pbmF0aW9uKQorICAgIF0pLCB7IGRhdGE6IGl0LCBw
YXJlbnQgfSk7CisgIH0KKyAgZnVuY3Rpb24gY29uc3RfKGl0LCBwYXJlbnQpIHsKKyAgICByZXR1
cm4gdHMuZGVmaW5pdGlvbih0cy53cmFwKFsKKyAgICAgIGV4dGVuZGVkX2F0dHJpYnV0ZXMoaXQu
ZXh0QXR0cnMpLAorICAgICAgdG9rZW4oaXQudG9rZW5zLmJhc2UpLAorICAgICAgdHMudHlwZSh0
eXBlKGl0LmlkbFR5cGUpKSwKKyAgICAgIG5hbWVfdG9rZW4oaXQudG9rZW5zLm5hbWUsIHsgZGF0
YTogaXQsIHBhcmVudCB9KSwKKyAgICAgIHRva2VuKGl0LnRva2Vucy5hc3NpZ24pLAorICAgICAg
dG9rZW4oaXQudG9rZW5zLnZhbHVlKSwKKyAgICAgIHRva2VuKGl0LnRva2Vucy50ZXJtaW5hdGlv
bikKKyAgICBdKSwgeyBkYXRhOiBpdCwgcGFyZW50IH0pOworICB9CisgIGZ1bmN0aW9uIHR5cGVk
ZWYoaXQpIHsKKyAgICByZXR1cm4gdHMuZGVmaW5pdGlvbih0cy53cmFwKFsKKyAgICAgIGV4dGVu
ZGVkX2F0dHJpYnV0ZXMoaXQuZXh0QXR0cnMpLAorICAgICAgdG9rZW4oaXQudG9rZW5zLmJhc2Up
LAorICAgICAgdHMudHlwZSh0eXBlKGl0LmlkbFR5cGUpKSwKKyAgICAgIG5hbWVfdG9rZW4oaXQu
dG9rZW5zLm5hbWUsIHsgZGF0YTogaXQgfSksCisgICAgICB0b2tlbihpdC50b2tlbnMudGVybWlu
YXRpb24pCisgICAgXSksIHsgZGF0YTogaXQgfSk7CisgIH0KKyAgZnVuY3Rpb24gaW5jbHVkZXMo
aXQpIHsKKyAgICByZXR1cm4gdHMuZGVmaW5pdGlvbih0cy53cmFwKFsKKyAgICAgIGV4dGVuZGVk
X2F0dHJpYnV0ZXMoaXQuZXh0QXR0cnMpLAorICAgICAgcmVmZXJlbmNlX3Rva2VuKGl0LnRva2Vu
cy50YXJnZXQsIGl0KSwKKyAgICAgIHRva2VuKGl0LnRva2Vucy5pbmNsdWRlcyksCisgICAgICBy
ZWZlcmVuY2VfdG9rZW4oaXQudG9rZW5zLm1peGluLCBpdCksCisgICAgICB0b2tlbihpdC50b2tl
bnMudGVybWluYXRpb24pCisgICAgXSksIHsgZGF0YTogaXQgfSk7CisgIH0KKyAgZnVuY3Rpb24g
Y2FsbGJhY2soaXQpIHsKKyAgICByZXR1cm4gdHMuZGVmaW5pdGlvbih0cy53cmFwKFsKKyAgICAg
IGV4dGVuZGVkX2F0dHJpYnV0ZXMoaXQuZXh0QXR0cnMpLAorICAgICAgdG9rZW4oaXQudG9rZW5z
LmJhc2UpLAorICAgICAgbmFtZV90b2tlbihpdC50b2tlbnMubmFtZSwgeyBkYXRhOiBpdCB9KSwK
KyAgICAgIHRva2VuKGl0LnRva2Vucy5hc3NpZ24pLAorICAgICAgdHMudHlwZSh0eXBlKGl0Lmlk
bFR5cGUpKSwKKyAgICAgIHRva2VuKGl0LnRva2Vucy5vcGVuKSwKKyAgICAgIC4uLml0LmFyZ3Vt
ZW50cy5tYXAoYXJndW1lbnQpLAorICAgICAgdG9rZW4oaXQudG9rZW5zLmNsb3NlKSwKKyAgICAg
IHRva2VuKGl0LnRva2Vucy50ZXJtaW5hdGlvbiksCisgICAgXSksIHsgZGF0YTogaXQgfSk7Cisg
IH0KKyAgZnVuY3Rpb24gZW51bV8oaXQpIHsKKyAgICByZXR1cm4gdHMuZGVmaW5pdGlvbih0cy53
cmFwKFsKKyAgICAgIGV4dGVuZGVkX2F0dHJpYnV0ZXMoaXQuZXh0QXR0cnMpLAorICAgICAgdG9r
ZW4oaXQudG9rZW5zLmJhc2UpLAorICAgICAgbmFtZV90b2tlbihpdC50b2tlbnMubmFtZSwgeyBk
YXRhOiBpdCB9KSwKKyAgICAgIHRva2VuKGl0LnRva2Vucy5vcGVuKSwKKyAgICAgIGl0ZXJhdGUo
aXQudmFsdWVzLCBpdCksCisgICAgICB0b2tlbihpdC50b2tlbnMuY2xvc2UpLAorICAgICAgdG9r
ZW4oaXQudG9rZW5zLnRlcm1pbmF0aW9uKQorICAgIF0pLCB7IGRhdGE6IGl0IH0pOworICB9Cisg
IGZ1bmN0aW9uIGVudW1fdmFsdWUodiwgcGFyZW50KSB7CisgICAgcmV0dXJuIHRzLndyYXAoWwor
ICAgICAgdHMudHJpdmlhKHYudG9rZW5zLnZhbHVlLnRyaXZpYSksCisgICAgICB0cy5kZWZpbml0
aW9uKAorICAgICAgICB0cy53cmFwKFsnIicsIHRzLm5hbWUodi52YWx1ZSwgeyBkYXRhOiB2LCBw
YXJlbnQgfSksICciJ10pLAorICAgICAgICB7IGRhdGE6IHYsIHBhcmVudCB9CisgICAgICApLAor
ICAgICAgdG9rZW4odi50b2tlbnMuc2VwYXJhdG9yKQorICAgIF0pOworICB9CisgIGZ1bmN0aW9u
IGl0ZXJhYmxlX2xpa2UoaXQsIHBhcmVudCkgeworICAgIHJldHVybiB0cy5kZWZpbml0aW9uKHRz
LndyYXAoWworICAgICAgZXh0ZW5kZWRfYXR0cmlidXRlcyhpdC5leHRBdHRycyksCisgICAgICB0
b2tlbihpdC50b2tlbnMucmVhZG9ubHkpLAorICAgICAgdG9rZW4oaXQudG9rZW5zLmFzeW5jKSwK
KyAgICAgIHRva2VuKGl0LnRva2Vucy5iYXNlLCB0cy5nZW5lcmljKSwKKyAgICAgIHRva2VuKGl0
LnRva2Vucy5vcGVuKSwKKyAgICAgIHRzLndyYXAoaXQuaWRsVHlwZS5tYXAodHlwZSkpLAorICAg
ICAgdG9rZW4oaXQudG9rZW5zLmNsb3NlKSwKKyAgICAgIHRva2VuKGl0LnRva2Vucy50ZXJtaW5h
dGlvbikKKyAgICBdKSwgeyBkYXRhOiBpdCwgcGFyZW50IH0pOworICB9CisgIGZ1bmN0aW9uIGVv
ZihpdCkgeworICAgIHJldHVybiB0cy50cml2aWEoaXQudHJpdmlhKTsKKyAgfQorCisgIGNvbnN0
IHRhYmxlID0geworICAgIGludGVyZmFjZTogY29udGFpbmVyLAorICAgICJpbnRlcmZhY2UgbWl4
aW4iOiBjb250YWluZXIsCisgICAgbmFtZXNwYWNlOiBjb250YWluZXIsCisgICAgb3BlcmF0aW9u
LAorICAgIGF0dHJpYnV0ZSwKKyAgICBjb25zdHJ1Y3RvciwKKyAgICBkaWN0aW9uYXJ5OiBjb250
YWluZXIsCisgICAgZmllbGQsCisgICAgY29uc3Q6IGNvbnN0XywKKyAgICB0eXBlZGVmLAorICAg
IGluY2x1ZGVzLAorICAgIGNhbGxiYWNrLAorICAgIGVudW06IGVudW1fLAorICAgICJlbnVtLXZh
bHVlIjogZW51bV92YWx1ZSwKKyAgICBpdGVyYWJsZTogaXRlcmFibGVfbGlrZSwKKyAgICBsZWdh
Y3lpdGVyYWJsZTogaXRlcmFibGVfbGlrZSwKKyAgICBtYXBsaWtlOiBpdGVyYWJsZV9saWtlLAor
ICAgIHNldGxpa2U6IGl0ZXJhYmxlX2xpa2UsCisgICAgImNhbGxiYWNrIGludGVyZmFjZSI6IGNv
bnRhaW5lciwKKyAgICBlb2YKKyAgfTsKKyAgZnVuY3Rpb24gZGlzcGF0Y2goaXQsIHBhcmVudCkg
eworICAgIGNvbnN0IGRpc3BhdGNoZXIgPSB0YWJsZVtpdC50eXBlXTsKKyAgICBpZiAoIWRpc3Bh
dGNoZXIpIHsKKyAgICAgIHRocm93IG5ldyBFcnJvcihgVHlwZSAiJHtpdC50eXBlfSIgaXMgdW5z
dXBwb3J0ZWRgKTsKKyAgICB9CisgICAgcmV0dXJuIHRhYmxlW2l0LnR5cGVdKGl0LCBwYXJlbnQp
OworICB9CisgIGZ1bmN0aW9uIGl0ZXJhdGUodGhpbmdzLCBwYXJlbnQpIHsKKyAgICBpZiAoIXRo
aW5ncykgcmV0dXJuOworICAgIGNvbnN0IHJlc3VsdHMgPSB0aGluZ3MubWFwKHRoaW5nID0+IGRp
c3BhdGNoKHRoaW5nLCBwYXJlbnQpKTsKKyAgICByZXR1cm4gdHMud3JhcChyZXN1bHRzKTsKKyAg
fQorICByZXR1cm4gaXRlcmF0ZShhc3QpOworfQorCisKKy8qKiovIH0pLAorLyogMzEgKi8KKy8q
KiovIChmdW5jdGlvbihtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1
aXJlX18pIHsKKworInVzZSBzdHJpY3QiOworX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFj
a19leHBvcnRzX18pOworLyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFja19y
ZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAidmFsaWRhdGUiLCBmdW5jdGlvbigpIHsg
cmV0dXJuIHZhbGlkYXRlOyB9KTsKKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfZXJyb3JfanNf
X1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMyk7CisK
KworCisKK2Z1bmN0aW9uIGdldE1peGluTWFwKGFsbCwgdW5pcXVlKSB7CisgIGNvbnN0IG1hcCA9
IG5ldyBNYXAoKTsKKyAgY29uc3QgaW5jbHVkZXMgPSBhbGwuZmlsdGVyKGRlZiA9PiBkZWYudHlw
ZSA9PT0gImluY2x1ZGVzIik7CisgIGZvciAoY29uc3QgaW5jbHVkZSBvZiBpbmNsdWRlcykgewor
ICAgIGNvbnN0IG1peGluID0gdW5pcXVlLmdldChpbmNsdWRlLmluY2x1ZGVzKTsKKyAgICBpZiAo
IW1peGluKSB7CisgICAgICBjb250aW51ZTsKKyAgICB9CisgICAgY29uc3QgYXJyYXkgPSBtYXAu
Z2V0KGluY2x1ZGUudGFyZ2V0KTsKKyAgICBpZiAoYXJyYXkpIHsKKyAgICAgIGFycmF5LnB1c2go
bWl4aW4pOworICAgIH0gZWxzZSB7CisgICAgICBtYXAuc2V0KGluY2x1ZGUudGFyZ2V0LCBbbWl4
aW5dKTsKKyAgICB9CisgIH0KKyAgcmV0dXJuIG1hcDsKK30KKworZnVuY3Rpb24gZ3JvdXBEZWZp
bml0aW9ucyhhbGwpIHsKKyAgY29uc3QgdW5pcXVlID0gbmV3IE1hcCgpOworICBjb25zdCBkdXBs
aWNhdGVzID0gbmV3IFNldCgpOworICBjb25zdCBwYXJ0aWFscyA9IG5ldyBNYXAoKTsKKyAgZm9y
IChjb25zdCBkZWYgb2YgYWxsKSB7CisgICAgaWYgKGRlZi5wYXJ0aWFsKSB7CisgICAgICBjb25z
dCBhcnJheSA9IHBhcnRpYWxzLmdldChkZWYubmFtZSk7CisgICAgICBpZiAoYXJyYXkpIHsKKyAg
ICAgICAgYXJyYXkucHVzaChkZWYpOworICAgICAgfSBlbHNlIHsKKyAgICAgICAgcGFydGlhbHMu
c2V0KGRlZi5uYW1lLCBbZGVmXSk7CisgICAgICB9CisgICAgICBjb250aW51ZTsKKyAgICB9Cisg
ICAgaWYgKCFkZWYubmFtZSkgeworICAgICAgY29udGludWU7CisgICAgfQorICAgIGlmICghdW5p
cXVlLmhhcyhkZWYubmFtZSkpIHsKKyAgICAgIHVuaXF1ZS5zZXQoZGVmLm5hbWUsIGRlZik7Cisg
ICAgfSBlbHNlIHsKKyAgICAgIGR1cGxpY2F0ZXMuYWRkKGRlZik7CisgICAgfQorICB9CisgIHJl
dHVybiB7CisgICAgYWxsLAorICAgIHVuaXF1ZSwKKyAgICBwYXJ0aWFscywKKyAgICBkdXBsaWNh
dGVzLAorICAgIG1peGluTWFwOiBnZXRNaXhpbk1hcChhbGwsIHVuaXF1ZSksCisgICAgY2FjaGU6
IHsKKyAgICAgIHR5cGVkZWZJbmNsdWRlc0RpY3Rpb25hcnk6IG5ldyBXZWFrTWFwKCkKKyAgICB9
LAorICB9OworfQorCitmdW5jdGlvbiogY2hlY2tEdXBsaWNhdGVkTmFtZXMoeyB1bmlxdWUsIGR1
cGxpY2F0ZXMgfSkgeworICBmb3IgKGNvbnN0IGR1cCBvZiBkdXBsaWNhdGVzKSB7CisgICAgY29u
c3QgeyBuYW1lIH0gPSBkdXA7CisgICAgY29uc3QgbWVzc2FnZSA9IGBUaGUgbmFtZSAiJHtuYW1l
fSIgb2YgdHlwZSAiJHt1bmlxdWUuZ2V0KG5hbWUpLnR5cGV9IiB3YXMgYWxyZWFkeSBzZWVuYDsK
KyAgICB5aWVsZCBPYmplY3QoX2Vycm9yX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19b
InZhbGlkYXRpb25FcnJvciJdKShkdXAuc291cmNlLCBkdXAudG9rZW5zLm5hbWUsIGR1cCwgbWVz
c2FnZSk7CisgIH0KK30KKworZnVuY3Rpb24qIHZhbGlkYXRlSXRlcmFibGUoYXN0KSB7CisgIGNv
bnN0IGRlZnMgPSBncm91cERlZmluaXRpb25zKGFzdCk7CisgIGZvciAoY29uc3QgZGVmIG9mIGRl
ZnMuYWxsKSB7CisgICAgaWYgKGRlZi52YWxpZGF0ZSkgeworICAgICAgeWllbGQqIGRlZi52YWxp
ZGF0ZShkZWZzKTsKKyAgICB9CisgIH0KKyAgeWllbGQqIGNoZWNrRHVwbGljYXRlZE5hbWVzKGRl
ZnMpOworfQorCisvLyBSZW1vdmUgdGhpcyBvbmNlIGFsbCBvZiBvdXIgc3VwcG9ydCB0YXJnZXRz
IGV4cG9zZSBgLmZsYXQoKWAgYnkgZGVmYXVsdAorZnVuY3Rpb24gZmxhdHRlbihhcnJheSkgewor
ICBpZiAoYXJyYXkuZmxhdCkgeworICAgIHJldHVybiBhcnJheS5mbGF0KCk7CisgIH0KKyAgcmV0
dXJuIFtdLmNvbmNhdCguLi5hcnJheSk7Cit9CisKKy8qKgorICogQHBhcmFtIHsqfSBhc3QgQVNU
IG9yIGFycmF5IG9mIEFTVHMKKyAqLworZnVuY3Rpb24gdmFsaWRhdGUoYXN0KSB7CisgIHJldHVy
biBbLi4udmFsaWRhdGVJdGVyYWJsZShmbGF0dGVuKGFzdCkpXTsKK30KKworCisvKioqLyB9KQor
LyoqKioqKi8gXSk7Cit9KTsKKy8vIyBzb3VyY2VNYXBwaW5nVVJMPXdlYmlkbDIuanMubWFwClwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
Y2xpZW50cy1tYXRjaGFsbC1mcm96ZW4uaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvY2xpZW50cy1tYXRjaGFsbC1mcm96ZW4uaHR0cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjZlZjUyZDU1MGIzYTk4YmVlZDQwOTViNjI4Y2FlYWNiMGQxNmFjNzYKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGllbnRzLW1hdGNoYWxsLWZyb3plbi5odHRwcy1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK0ZBSUwgVGVzdCBDbGllbnRzLm1hdGNoQWxs
KCkgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAi
VHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cyIKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvY2xpZW50cy1tYXRjaGFsbC1mcm96ZW4uaHR0cHMuaHRtbCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL2NsaWVudHMtbWF0Y2hhbGwtZnJvemVuLmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWYy
N2FjM2QzNzJlNWQ0MGZiNTc2ZTJiNTkwMjAwMjZkZjhiNjZiYwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL2NsaWVudHMtbWF0Y2hhbGwtZnJvemVuLmh0dHBzLmh0bWwKQEAg
LTAsMCArMSwxMDMgQEAKKzwhRE9DVFlQRSBodG1sPgorPHRpdGxlPlNlcnZpY2UgV29ya2VyOiBD
bGllbnRzLm1hdGNoQWxsPC90aXRsZT4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGVzdC1oZWxwZXJzLnN1
Yi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgordmFyIHNjb3BlID0gJ3Jlc291cmNlcy9jbGllbnRz
LWZyYW1lLWZyZWV6ZS5odG1sJzsKK3ZhciB3aW5kb3dzID0gW107Cit2YXIgZXhwZWN0ZWRfd2lu
ZG93XzEgPQorICAgIHt2aXNpYmlsaXR5U3RhdGU6ICd2aXNpYmxlJywgZm9jdXNlZDogZmFsc2Us
IGxpZmVjeWNsZVN0YXRlOiAiZnJvemVuIiwgdXJsOiBuZXcgVVJMKHNjb3BlICsgJyMxJywgbG9j
YXRpb24pLnRvU3RyaW5nKCksIHR5cGU6ICd3aW5kb3cnLCBmcmFtZVR5cGU6ICd0b3AtbGV2ZWwn
fTsKK3ZhciBleHBlY3RlZF93aW5kb3dfMiA9CisgICAge3Zpc2liaWxpdHlTdGF0ZTogJ3Zpc2li
bGUnLCBmb2N1c2VkOiBmYWxzZSwgbGlmZWN5Y2xlU3RhdGU6ICJhY3RpdmUiLCB1cmw6IG5ldyBV
Ukwoc2NvcGUgKyAnIzInLCBsb2NhdGlvbikudG9TdHJpbmcoKSwgdHlwZTogJ3dpbmRvdycsIGZy
YW1lVHlwZTogJ3RvcC1sZXZlbCd9OworZnVuY3Rpb24gd2l0aF93aW5kb3codXJsLCBuYW1lKSB7
CisgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlKSB7CisgICAgdmFyIGNoaWxk
ID0gd2luZG93Lm9wZW4odXJsLCBuYW1lKTsKKyAgICB3aW5kb3cub25tZXNzYWdlID0gKCkgPT4g
e3Jlc29sdmUoY2hpbGQpfTsKKyAgfSk7Cit9CisKK3Byb21pc2VfdGVzdChmdW5jdGlvbih0KSB7
CisgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKAorICAg
ICAgICB0LCAncmVzb3VyY2VzL2NsaWVudHMtbWF0Y2hhbGwtd29ya2VyLmpzJywgc2NvcGUpCisg
ICAgICAudGhlbihmdW5jdGlvbihyZWdpc3RyYXRpb24pIHsKKyAgICAgICAgICB0LmFkZF9jbGVh
bnVwKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5y
ZWdpc3Rlcih0LCBzY29wZSk7CisgICAgICAgICAgICB9KTsKKworICAgICAgICAgIHJldHVybiB3
YWl0X2Zvcl9zdGF0ZSh0LCByZWdpc3RyYXRpb24uaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOwor
ICAgICAgICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7IHJldHVybiB3aXRoX3dpbmRvdyhz
Y29wZSArICcjMScsICdDaGlsZCAxJyk7IH0pCisgICAgICAudGhlbihmdW5jdGlvbih3aW5kb3cx
KSB7CisgICAgICAgICAgd2luZG93cy5wdXNoKHdpbmRvdzEpOworICAgICAgICAgIHJldHVybiB3
aXRoX3dpbmRvdyhzY29wZSArICcjMicsICdDaGlsZCAyJyk7CisgICAgICAgIH0pCisgICAgICAu
dGhlbihmdW5jdGlvbih3aW5kb3cyKSB7CisgICAgICAgICAgd2luZG93cy5wdXNoKHdpbmRvdzIp
OworICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlKSB7CisgICAg
ICAgICAgICAgIHdpbmRvdy5vbm1lc3NhZ2UgPSByZXNvbHZlOworICAgICAgICAgICAgICB3aW5k
b3dzWzBdLnBvc3RNZXNzYWdlKCdmcmVlemUnKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9
KQorICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7CisgICAgICAgICAgdmFyIGNoYW5uZWwgPSBuZXcg
TWVzc2FnZUNoYW5uZWwoKTsKKworICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlv
bihyZXNvbHZlKSB7CisgICAgICAgICAgICAgIGNoYW5uZWwucG9ydDEub25tZXNzYWdlID0gcmVz
b2x2ZTsKKyAgICAgICAgICAgICAgd2luZG93c1sxXS5uYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5j
b250cm9sbGVyLnBvc3RNZXNzYWdlKAorICAgICAgICAgICAgICAgICAge3BvcnQ6Y2hhbm5lbC5w
b3J0MiwgaW5jbHVkZUxpZmVjeWNsZVN0YXRlOiB0cnVlfSwgW2NoYW5uZWwucG9ydDJdKTsKKyAg
ICAgICAgICAgIH0pOworICAgICAgICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24oZSkgeworICAg
ICAgICAgIGFzc2VydF9lcXVhbHMoZS5kYXRhLmxlbmd0aCwgMSk7CisgICAgICAgICAgYXNzZXJ0
X29iamVjdF9lcXVhbHMoZS5kYXRhWzBdLCBleHBlY3RlZF93aW5kb3dfMik7CisgICAgICAgIH0p
CisgICAgICAudGhlbihmdW5jdGlvbigpIHsKKyAgICAgICAgICB2YXIgY2hhbm5lbCA9IG5ldyBN
ZXNzYWdlQ2hhbm5lbCgpOworCisgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9u
KHJlc29sdmUpIHsKKyAgICAgICAgICAgICAgY2hhbm5lbC5wb3J0MS5vbm1lc3NhZ2UgPSByZXNv
bHZlOworICAgICAgICAgICAgICB3aW5kb3dzWzFdLm5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLmNv
bnRyb2xsZXIucG9zdE1lc3NhZ2UoCisgICAgICAgICAgICAgICAgICB7cG9ydDpjaGFubmVsLnBv
cnQyLCBvcHRpb25zOiB7bGlmZWN5Y2xlU3RhdGU6ICJhbGwifSwgaW5jbHVkZUxpZmVjeWNsZVN0
YXRlOiB0cnVlfSwgW2NoYW5uZWwucG9ydDJdKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9
KQorICAgICAgLnRoZW4oZnVuY3Rpb24oZSkgeworICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS5k
YXRhLmxlbmd0aCwgMik7CisgICAgICAgICAgLy8gTm8gc3BlY2lmaWMgb3JkZXIgaXMgcmVxdWly
ZWQsIHNvIHN1cHBvcnQgaW52ZXJzaW9uLgorICAgICAgICAgIGlmIChlLmRhdGFbMF1bM10gPT0g
bmV3IFVSTChzY29wZSArICcjMicsIGxvY2F0aW9uKSkgeworICAgICAgICAgICAgYXNzZXJ0X29i
amVjdF9lcXVhbHMoZS5kYXRhWzBdLCBleHBlY3RlZF93aW5kb3dfMik7CisgICAgICAgICAgICBh
c3NlcnRfb2JqZWN0X2VxdWFscyhlLmRhdGFbMV0sIGV4cGVjdGVkX3dpbmRvd18xKTsKKyAgICAg
ICAgICB9IGVsc2UgeworICAgICAgICAgICAgYXNzZXJ0X29iamVjdF9lcXVhbHMoZS5kYXRhWzBd
LCBleHBlY3RlZF93aW5kb3dfMSk7CisgICAgICAgICAgICBhc3NlcnRfb2JqZWN0X2VxdWFscyhl
LmRhdGFbMV0sIGV4cGVjdGVkX3dpbmRvd18yKTsKKyAgICAgICAgICB9CisgICAgICAgIH0pCisg
ICAgICAudGhlbihmdW5jdGlvbigpIHsKKyAgICAgICAgICB2YXIgY2hhbm5lbCA9IG5ldyBNZXNz
YWdlQ2hhbm5lbCgpOworCisgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJl
c29sdmUpIHsKKyAgICAgICAgICAgICAgY2hhbm5lbC5wb3J0MS5vbm1lc3NhZ2UgPSByZXNvbHZl
OworICAgICAgICAgICAgICB3aW5kb3dzWzFdLm5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLmNvbnRy
b2xsZXIucG9zdE1lc3NhZ2UoCisgICAgICAgICAgICAgICAgICB7cG9ydDpjaGFubmVsLnBvcnQy
LCBvcHRpb25zOiB7bGlmZWN5Y2xlU3RhdGU6ICJmcm96ZW4ifSwgaW5jbHVkZUxpZmVjeWNsZVN0
YXRlOiB0cnVlfSwgW2NoYW5uZWwucG9ydDJdKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9
KQorICAgICAgLnRoZW4oZnVuY3Rpb24oZSkgeworICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS5k
YXRhLmxlbmd0aCwgMSk7CisgICAgICAgICAgYXNzZXJ0X29iamVjdF9lcXVhbHMoZS5kYXRhWzBd
LCBleHBlY3RlZF93aW5kb3dfMSk7CisgICAgICAgIH0pCisgICAgICAudGhlbihmdW5jdGlvbigp
IHsKKyAgICAgICAgICB2YXIgY2hhbm5lbCA9IG5ldyBNZXNzYWdlQ2hhbm5lbCgpOworCisgICAg
ICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUpIHsKKyAgICAgICAgICAg
ICAgY2hhbm5lbC5wb3J0MS5vbm1lc3NhZ2UgPSByZXNvbHZlOworICAgICAgICAgICAgICB3aW5k
b3dzWzFdLm5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLmNvbnRyb2xsZXIucG9zdE1lc3NhZ2UoCisg
ICAgICAgICAgICAgICAgICB7cG9ydDpjaGFubmVsLnBvcnQyLCBvcHRpb25zOiB7bGlmZWN5Y2xl
U3RhdGU6ICJhY3RpdmUifSwgaW5jbHVkZUxpZmVjeWNsZVN0YXRlOiB0cnVlfSwgW2NoYW5uZWwu
cG9ydDJdKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KQorICAgICAgLnRoZW4oZnVuY3Rp
b24oZSkgeworICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS5kYXRhLmxlbmd0aCwgMSk7CisgICAg
ICAgICAgYXNzZXJ0X29iamVjdF9lcXVhbHMoZS5kYXRhWzBdLCBleHBlY3RlZF93aW5kb3dfMik7
CisgICAgICB9KTsKK30sICdUZXN0IENsaWVudHMubWF0Y2hBbGwoKScpOworCis8L3NjcmlwdD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWNvcnMteGhyLmh0dHBzLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWNvcnMteGhyLmh0dHBzLWV4cGVjdGVk
LnR4dAppbmRleCAxMWIxNzRhMmM5MDYwMjllY2M3OWU4MWQ1ZTkxNjNjZGNhMzZiOTA0Li5iNTZm
YWU2YWU4MDYyMjQ0YjAwYmMwMjhkOTk0MDU3NzFmNTA4ZDJhIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9mZXRjaC1jb3JzLXhoci5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvZmV0Y2gtY29ycy14aHIuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0xLDQ3ICsx
LDMgQEAKLUNPTlNPTEUgTUVTU0FHRTogRmV0Y2hFdmVudC5yZXNwb25kV2l0aCByZWNlaXZlZCBh
biBlcnJvcjogdW5kZWZpbmVkCi1DT05TT0xFIE1FU1NBR0U6IFhNTEh0dHBSZXF1ZXN0IGNhbm5v
dCBsb2FkIGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3Jlc291cmNlcy9mZXRjaC1hY2Nlc3MtY29udHJvbC5weT9yZWplY3QuCi1DT05TT0xFIE1F
U1NBR0U6IEZldGNoRXZlbnQucmVzcG9uZFdpdGggcmVjZWl2ZWQgYW4gZXJyb3I6IHVuZGVmaW5l
ZAotQ09OU09MRSBNRVNTQUdFOiBYTUxIdHRwUmVxdWVzdCBjYW5ub3QgbG9hZCBodHRwczovL2xv
Y2FsaG9zdDo5NDQzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0
Y2gtYWNjZXNzLWNvbnRyb2wucHk/cmVqZWN0LgotQ09OU09MRSBNRVNTQUdFOiBGZXRjaEV2ZW50
LnJlc3BvbmRXaXRoIHJlY2VpdmVkIGFuIGVycm9yOiB1bmRlZmluZWQKLUNPTlNPTEUgTUVTU0FH
RTogWE1MSHR0cFJlcXVlc3QgY2Fubm90IGxvYWQgaHR0cHM6Ly8xMjcuMC4wLjE6OTQ0My9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWFjY2Vzcy1jb250cm9s
LnB5P3JlamVjdC4KLUNPTlNPTEUgTUVTU0FHRTogRmV0Y2hFdmVudC5yZXNwb25kV2l0aCByZWNl
aXZlZCBhbiBlcnJvcjogdW5kZWZpbmVkCi1DT05TT0xFIE1FU1NBR0U6IFhNTEh0dHBSZXF1ZXN0
IGNhbm5vdCBsb2FkIGh0dHBzOi8vMTI3LjAuMC4xOjk0NDMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1hY2Nlc3MtY29udHJvbC5weT9yZWplY3QuCi1DT05T
T0xFIE1FU1NBR0U6IE9yaWdpbiBodHRwczovL2xvY2FsaG9zdDo5NDQzIGlzIG5vdCBhbGxvd2Vk
IGJ5IEFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbi4KLUNPTlNPTEUgTUVTU0FHRTogWE1MSHR0
cFJlcXVlc3QgY2Fubm90IGxvYWQgaHR0cHM6Ly8xMjcuMC4wLjE6OTQ0My9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWFjY2Vzcy1jb250cm9sLnB5P3Rocm93
IGR1ZSB0byBhY2Nlc3MgY29udHJvbCBjaGVja3MuCi1DT05TT0xFIE1FU1NBR0U6IE9yaWdpbiBo
dHRwczovL2xvY2FsaG9zdDo5NDQzIGlzIG5vdCBhbGxvd2VkIGJ5IEFjY2Vzcy1Db250cm9sLUFs
bG93LU9yaWdpbi4KLUNPTlNPTEUgTUVTU0FHRTogWE1MSHR0cFJlcXVlc3QgY2Fubm90IGxvYWQg
aHR0cHM6Ly8xMjcuMC4wLjE6OTQ0My9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVz
b3VyY2VzL2ZldGNoLWFjY2Vzcy1jb250cm9sLnB5P3Rocm93IGR1ZSB0byBhY2Nlc3MgY29udHJv
bCBjaGVja3MuCi1DT05TT0xFIE1FU1NBR0U6IEZldGNoRXZlbnQucmVzcG9uZFdpdGggcmVjZWl2
ZWQgYW4gZXJyb3I6IFJldHVybmVkIHJlc3BvbnNlIGlzIG51bGwuCi1DT05TT0xFIE1FU1NBR0U6
IFhNTEh0dHBSZXF1ZXN0IGNhbm5vdCBsb2FkIGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1hY2Nlc3MtY29udHJvbC5w
eT9yZXNvbHZlLW51bGwuCi1DT05TT0xFIE1FU1NBR0U6IEZldGNoRXZlbnQucmVzcG9uZFdpdGgg
cmVjZWl2ZWQgYW4gZXJyb3I6IFJldHVybmVkIHJlc3BvbnNlIGlzIG51bGwuCi1DT05TT0xFIE1F
U1NBR0U6IFhNTEh0dHBSZXF1ZXN0IGNhbm5vdCBsb2FkIGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1hY2Nlc3MtY29u
dHJvbC5weT9yZXNvbHZlLW51bGwuCi1DT05TT0xFIE1FU1NBR0U6IEZldGNoRXZlbnQucmVzcG9u
ZFdpdGggcmVjZWl2ZWQgYW4gZXJyb3I6IFJldHVybmVkIHJlc3BvbnNlIGlzIG51bGwuCi1DT05T
T0xFIE1FU1NBR0U6IFhNTEh0dHBSZXF1ZXN0IGNhbm5vdCBsb2FkIGh0dHBzOi8vMTI3LjAuMC4x
Ojk0NDMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1hY2Nl
c3MtY29udHJvbC5weT9yZXNvbHZlLW51bGwuCi1DT05TT0xFIE1FU1NBR0U6IEZldGNoRXZlbnQu
cmVzcG9uZFdpdGggcmVjZWl2ZWQgYW4gZXJyb3I6IFJldHVybmVkIHJlc3BvbnNlIGlzIG51bGwu
Ci1DT05TT0xFIE1FU1NBR0U6IFhNTEh0dHBSZXF1ZXN0IGNhbm5vdCBsb2FkIGh0dHBzOi8vMTI3
LjAuMC4xOjk0NDMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRj
aC1hY2Nlc3MtY29udHJvbC5weT9yZXNvbHZlLW51bGwuCi1DT05TT0xFIE1FU1NBR0U6IE9yaWdp
biBodHRwczovL2xvY2FsaG9zdDo5NDQzIGlzIG5vdCBhbGxvd2VkIGJ5IEFjY2Vzcy1Db250cm9s
LUFsbG93LU9yaWdpbi4KLUNPTlNPTEUgTUVTU0FHRTogWE1MSHR0cFJlcXVlc3QgY2Fubm90IGxv
YWQgaHR0cHM6Ly8xMjcuMC4wLjE6OTQ0My9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
cmVzb3VyY2VzL2ZldGNoLWFjY2Vzcy1jb250cm9sLnB5P2lnbm9yZSBkdWUgdG8gYWNjZXNzIGNv
bnRyb2wgY2hlY2tzLgotQ09OU09MRSBNRVNTQUdFOiBPcmlnaW4gaHR0cHM6Ly9sb2NhbGhvc3Q6
OTQ0MyBpcyBub3QgYWxsb3dlZCBieSBBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4uCi1DT05T
T0xFIE1FU1NBR0U6IFhNTEh0dHBSZXF1ZXN0IGNhbm5vdCBsb2FkIGh0dHBzOi8vMTI3LjAuMC4x
Ojk0NDMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1hY2Nl
c3MtY29udHJvbC5weT9pZ25vcmUgZHVlIHRvIGFjY2VzcyBjb250cm9sIGNoZWNrcy4KLUNPTlNP
TEUgTUVTU0FHRTogQ3JlZGVudGlhbHMgZmxhZyBpcyB0cnVlLCBidXQgQWNjZXNzLUNvbnRyb2wt
QWxsb3ctQ3JlZGVudGlhbHMgaXMgbm90ICJ0cnVlIi4KLUNPTlNPTEUgTUVTU0FHRTogWE1MSHR0
cFJlcXVlc3QgY2Fubm90IGxvYWQgaHR0cHM6Ly8xMjcuMC4wLjE6OTQ0My9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWFjY2Vzcy1jb250cm9sLnB5P0FDQU9y
aWdpbj1odHRwczovL2xvY2FsaG9zdDo5NDQzJmlnbm9yZSBkdWUgdG8gYWNjZXNzIGNvbnRyb2wg
Y2hlY2tzLgotQ09OU09MRSBNRVNTQUdFOiBPcmlnaW4gaHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0MyBp
cyBub3QgYWxsb3dlZCBieSBBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4uCi1DT05TT0xFIE1F
U1NBR0U6IFhNTEh0dHBSZXF1ZXN0IGNhbm5vdCBsb2FkIGh0dHBzOi8vMTI3LjAuMC4xOjk0NDMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1hY2Nlc3MtY29u
dHJvbC5weT9BdXRoJmlnbm9yZSBkdWUgdG8gYWNjZXNzIGNvbnRyb2wgY2hlY2tzLgotQ09OU09M
RSBNRVNTQUdFOiBPcmlnaW4gaHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0MyBpcyBub3QgYWxsb3dlZCBi
eSBBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4uCi1DT05TT0xFIE1FU1NBR0U6IFhNTEh0dHBS
ZXF1ZXN0IGNhbm5vdCBsb2FkIGh0dHBzOi8vMTI3LjAuMC4xOjk0NDMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1hY2Nlc3MtY29udHJvbC5weT9BdXRoJmln
bm9yZSBkdWUgdG8gYWNjZXNzIGNvbnRyb2wgY2hlY2tzLgotQ09OU09MRSBNRVNTQUdFOiBDcmVk
ZW50aWFscyBmbGFnIGlzIHRydWUsIGJ1dCBBY2Nlc3MtQ29udHJvbC1BbGxvdy1DcmVkZW50aWFs
cyBpcyBub3QgInRydWUiLgotQ09OU09MRSBNRVNTQUdFOiBYTUxIdHRwUmVxdWVzdCBjYW5ub3Qg
bG9hZCBodHRwczovLzEyNy4wLjAuMTo5NDQzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9yZXNvdXJjZXMvZmV0Y2gtYWNjZXNzLWNvbnRyb2wucHk/QXV0aCZBQ0FPcmlnaW49aHR0cHM6
Ly9sb2NhbGhvc3Q6OTQ0MyZpZ25vcmUgZHVlIHRvIGFjY2VzcyBjb250cm9sIGNoZWNrcy4KLUNP
TlNPTEUgTUVTU0FHRTogUmVzcG9uc2Ugc2VydmVkIGJ5IHNlcnZpY2Ugd29ya2VyIGlzIG9wYXF1
ZQotQ09OU09MRSBNRVNTQUdFOiBYTUxIdHRwUmVxdWVzdCBjYW5ub3QgbG9hZCBodHRwczovLzEy
Ny4wLjAuMTo5NDQzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0
Y2gtYWNjZXNzLWNvbnRyb2wucHkgZHVlIHRvIGFjY2VzcyBjb250cm9sIGNoZWNrcy4KLUNPTlNP
TEUgTUVTU0FHRTogUmVzcG9uc2Ugc2VydmVkIGJ5IHNlcnZpY2Ugd29ya2VyIGlzIG9wYXF1ZQot
Q09OU09MRSBNRVNTQUdFOiBYTUxIdHRwUmVxdWVzdCBjYW5ub3QgbG9hZCBodHRwczovLzEyNy4w
LjAuMTo5NDQzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gt
YWNjZXNzLWNvbnRyb2wucHkgZHVlIHRvIGFjY2VzcyBjb250cm9sIGNoZWNrcy4KLUNPTlNPTEUg
TUVTU0FHRTogUmVzcG9uc2Ugc2VydmVkIGJ5IHNlcnZpY2Ugd29ya2VyIGlzIG9wYXF1ZQotQ09O
U09MRSBNRVNTQUdFOiBYTUxIdHRwUmVxdWVzdCBjYW5ub3QgbG9hZCBodHRwczovLzEyNy4wLjAu
MTo5NDQzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtYWNj
ZXNzLWNvbnRyb2wucHkgZHVlIHRvIGFjY2VzcyBjb250cm9sIGNoZWNrcy4KLUNPTlNPTEUgTUVT
U0FHRTogUmVzcG9uc2Ugc2VydmVkIGJ5IHNlcnZpY2Ugd29ya2VyIGlzIG9wYXF1ZQotQ09OU09M
RSBNRVNTQUdFOiBYTUxIdHRwUmVxdWVzdCBjYW5ub3QgbG9hZCBodHRwczovLzEyNy4wLjAuMTo5
NDQzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtYWNjZXNz
LWNvbnRyb2wucHkgZHVlIHRvIGFjY2VzcyBjb250cm9sIGNoZWNrcy4KLUNPTlNPTEUgTUVTU0FH
RTogRmV0Y2hFdmVudC5yZXNwb25kV2l0aCByZWNlaXZlZCBhbiBlcnJvcjogVHlwZUVycm9yOiBD
cmVkZW50aWFscyBmbGFnIGlzIHRydWUsIGJ1dCBBY2Nlc3MtQ29udHJvbC1BbGxvdy1DcmVkZW50
aWFscyBpcyBub3QgInRydWUiLgotQ09OU09MRSBNRVNTQUdFOiBYTUxIdHRwUmVxdWVzdCBjYW5u
b3QgbG9hZCBodHRwczovL2xvY2FsaG9zdDo5NDQzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9yZXNvdXJjZXMvZmV0Y2gtYWNjZXNzLWNvbnRyb2wucHk/bW9kZT1jb3JzJnVybD1odHRw
cyUzQSUyRiUyRjEyNy4wLjAuMSUzQTk0NDMlMkZzZXJ2aWNlLXdvcmtlcnMlMkZzZXJ2aWNlLXdv
cmtlciUyRnJlc291cmNlcyUyRmZldGNoLWFjY2Vzcy1jb250cm9sLnB5JTNGQUNBT3JpZ2luJTNE
aHR0cHMlM0ElMkYlMkZsb2NhbGhvc3QlM0E5NDQzLgotQ09OU09MRSBNRVNTQUdFOiBGZXRjaEV2
ZW50LnJlc3BvbmRXaXRoIHJlY2VpdmVkIGFuIGVycm9yOiBUeXBlRXJyb3I6IENyZWRlbnRpYWxz
IGZsYWcgaXMgdHJ1ZSwgYnV0IEFjY2Vzcy1Db250cm9sLUFsbG93LUNyZWRlbnRpYWxzIGlzIG5v
dCAidHJ1ZSIuCi1DT05TT0xFIE1FU1NBR0U6IFhNTEh0dHBSZXF1ZXN0IGNhbm5vdCBsb2FkIGh0
dHBzOi8vMTI3LjAuMC4xOjk0NDMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291
cmNlcy9mZXRjaC1hY2Nlc3MtY29udHJvbC5weT9tb2RlPWNvcnMmdXJsPWh0dHBzJTNBJTJGJTJG
MTI3LjAuMC4xJTNBOTQ0MyUyRnNlcnZpY2Utd29ya2VycyUyRnNlcnZpY2Utd29ya2VyJTJGcmVz
b3VyY2VzJTJGZmV0Y2gtYWNjZXNzLWNvbnRyb2wucHklM0ZBQ0FPcmlnaW4lM0RodHRwcyUzQSUy
RiUyRmxvY2FsaG9zdCUzQTk0NDMuCiAKIFBBU1MgVmVyaWZ5IENPUlMgWEhSIG9mIGZldGNoKCkg
aW4gYSBTZXJ2aWNlIFdvcmtlciAKIFBBU1MgdGVzdCAxOiBodHRwczovL2xvY2FsaG9zdDo5NDQz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtYWNjZXNzLWNv
bnRyb2wucHk/cmVqZWN0IHdpdGggY3JlZGVudGlhbHMgZmFsc2UgbXVzdCBiZSBGQUlMIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtZXZlbnQtd2l0aGluLXN3Lmh0dHBzLmh0
bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1ldmVudC13aXRoaW4tc3cuaHR0cHMuaHRtbApp
bmRleCBjNzNhYmM0Yzk4YzA4NzFlMzAyMWU2NjA1MzExYmE0YjFkN2E4ODliLi44YTU2N2ZkN2E5
M2Y4NTUyNDEyY2ZmZjY1Nzc4OWM1Mzc1ZWJhOTcxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9mZXRjaC1ldmVudC13aXRoaW4tc3cuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9mZXRjaC1ldmVudC13aXRoaW4tc3cuaHR0cHMuaHRtbApAQCAtMSw3OSArMSw1MyBAQAog
PCFET0NUWVBFIGh0bWw+Cis8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIj4KIDxz
Y3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQg
c3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQg
c3JjPSIvY29tbW9uL2dldC1ob3N0LWluZm8uc3ViLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvdGVzdC1oZWxwZXJzLnN1Yi5qcyI+PC9zY3JpcHQ+Ci08Ym9keT4KKwogPHNj
cmlwdD4KIGNvbnN0IHdvcmtlciA9ICdyZXNvdXJjZXMvZmV0Y2gtZXZlbnQtd2l0aGluLXN3LXdv
cmtlci5qcyc7CiAKLWZ1bmN0aW9uIHJlc2V0KCkgewotICBmb3IgKGNvbnN0IGlmcmFtZSBvZiBb
Li4uZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLnRlc3QtaWZyYW1lJyldKSB7Ci0gICAgaWZy
YW1lLnJlbW92ZSgpOwotICB9Ci0gIHJldHVybiBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5nZXRS
ZWdpc3RyYXRpb25zKCkudGhlbihyZWdpc3RyYXRpb25zID0+IHsKLSAgICByZXR1cm4gUHJvbWlz
ZS5hbGwocmVnaXN0cmF0aW9ucy5tYXAociA9PiByLnVucmVnaXN0ZXIoKSkpOwotICB9KS50aGVu
KCgpID0+IGNhY2hlcy5rZXlzKCkpLnRoZW4oY2FjaGVLZXlzID0+IHsKLSAgICByZXR1cm4gUHJv
bWlzZS5hbGwoY2FjaGVLZXlzLm1hcChjID0+IGNhY2hlcy5kZWxldGUoYykpKTsKLSAgfSk7Cith
c3luYyBmdW5jdGlvbiByZWdpc3RlclN3QW5kT3BlbkZyYW1lKHQpIHsKKyAgY29uc3QgcmVnaXN0
cmF0aW9uID0gYXdhaXQgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoCisgICAgICB3
b3JrZXIsIHsgc2NvcGU6ICdyZXNvdXJjZXMvJyB9KTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBy
ZWdpc3RyYXRpb24udW5yZWdpc3RlcigpKTsKKyAgYXdhaXQgd2FpdF9mb3Jfc3RhdGUodCwgcmVn
aXN0cmF0aW9uLmluc3RhbGxpbmcsICdhY3RpdmF0ZWQnKTsKKworICBjb25zdCBmcmFtZSA9IGF3
YWl0IHdpdGhfaWZyYW1lKCdyZXNvdXJjZXMvc2ltcGxlLmh0bWwnKTsKKyAgdC5hZGRfY2xlYW51
cCgoKSA9PiBmcmFtZS5yZW1vdmUoKSk7CisgIHJldHVybiBmcmFtZTsKIH0KIAotYWRkX2NvbXBs
ZXRpb25fY2FsbGJhY2socmVzZXQpOworYXN5bmMgZnVuY3Rpb24gZGVsZXRlQ2FzaGVzKCkgewor
ICBjb25zdCBjYWNoZUtleXMgPSBhd2FpdCBjYWNoZXMua2V5cygpOworICBhd2FpdCBQcm9taXNl
LmFsbChjYWNoZUtleXMubWFwKGMgPT4gY2FjaGVzLmRlbGV0ZShjKSkpOworfQogCi1mdW5jdGlv
biByZWdSZWFkeShyZWcpIHsKLSAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3Qp
ID0+IHsKLSAgICBpZiAocmVnLmFjdGl2ZSkgewotICAgICAgcmVzb2x2ZSgpOwotICAgICAgcmV0
dXJuOwotICAgIH0KLSAgICBjb25zdCBuZXh0V29ya2VyID0gcmVnLndhaXRpbmcgfHwgcmVnLmlu
c3RhbGxpbmc7Citwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIHQuYWRkX2NsZWFudXAoZGVs
ZXRlQ2FzaGVzKTsKIAotICAgIG5leHRXb3JrZXIuYWRkRXZlbnRMaXN0ZW5lcignc3RhdGVjaGFu
Z2UnLCAoKSA9PiB7Ci0gICAgICBpZiAobmV4dFdvcmtlci5zdGF0ZSA9PSAncmVkdW5kYW50Jykg
ewotICAgICAgICByZWplY3QoRXJyb3IoYFNlcnZpY2Ugd29ya2VyIGZhaWxlZCB0byBpbnN0YWxs
YCkpOwotICAgICAgICByZXR1cm47Ci0gICAgICB9Ci0gICAgICBpZiAobmV4dFdvcmtlci5zdGF0
ZSA9PSAnYWN0aXZhdGVkJykgewotICAgICAgICByZXNvbHZlKCk7Ci0gICAgICB9Ci0gICAgfSk7
Ci0gIH0pOwotfQorICBjb25zdCBpZnJhbWUgPSBhd2FpdCByZWdpc3RlclN3QW5kT3BlbkZyYW1l
KHQpOworICBjb25zdCBmZXRjaFRleHQgPQorICAgICAgYXdhaXQgaWZyYW1lLmNvbnRlbnRXaW5k
b3cuZmV0Y2goJ2R1bW15LnR4dCcpLnRoZW4ociA9PiByLnRleHQoKSk7CiAKLWZ1bmN0aW9uIHJl
Z2lzdGVyU3dBbmRPcGVuRnJhbWUoKSB7Ci0gIHJldHVybiByZXNldCgpLnRoZW4oKCkgPT4gbmF2
aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIod29ya2VyLCB7IHNjb3BlOiAncmVzb3VyY2Vz
LycgfSkpCi0gICAgLnRoZW4ocmVnID0+IHJlZ1JlYWR5KHJlZykpCi0gICAgLnRoZW4oKCkgPT4g
d2l0aF9pZnJhbWUoJ3Jlc291cmNlcy9zaW1wbGUuaHRtbCcpKTsKLX0KKyAgY29uc3QgY2FjaGUg
PSBhd2FpdCBpZnJhbWUuY29udGVudFdpbmRvdy5jYWNoZXMub3BlbigndGVzdCcpOworICBhd2Fp
dCBjYWNoZS5hZGQoJ2R1bW15LnR4dCcpOwogCi1wcm9taXNlX3Rlc3QoKCkgPT4gewotICByZXR1
cm4gcmVnaXN0ZXJTd0FuZE9wZW5GcmFtZSgpLnRoZW4oaWZyYW1lID0+IHsKLSAgICByZXR1cm4g
UHJvbWlzZS5hbGwoWwotICAgICAgaWZyYW1lLmNvbnRlbnRXaW5kb3cuZmV0Y2goJ2R1bW15LnR4
dCcpLnRoZW4ociA9PiByLnRleHQoKSksCi0gICAgICBpZnJhbWUuY29udGVudFdpbmRvdy5jYWNo
ZXMub3BlbigndGVzdCcpCi0gICAgICAgIC50aGVuKGNhY2hlID0+Ci0gICAgICAgICAgY2FjaGUu
YWRkKCdkdW1teS50eHQnKS50aGVuKCgpID0+IGNhY2hlLm1hdGNoKCdkdW1teS50eHQnKSkKLSAg
ICAgICAgKS50aGVuKHJlc3BvbnNlID0+IHsKLSAgICAgICAgICBpZiAoIXJlc3BvbnNlKSByZXR1
cm4gJ2NhY2hlIG1hdGNoIGZhaWxlZCc7Ci0gICAgICAgICAgcmV0dXJuIHJlc3BvbnNlLnRleHQo
KTsKLSAgICAgICAgfSkKLSAgICBdKQotICB9KS50aGVuKChbZmV0Y2hUZXh0LCBjYWNoZVRleHRd
KSA9PiB7Ci0gICAgYXNzZXJ0X2VxdWFscyhmZXRjaFRleHQsICdpbnRlcmNlcHRlZCcsICdmZXRj
aCBpbnRlcmNlcHRlZCcpOwotICAgIGFzc2VydF9lcXVhbHMoY2FjaGVUZXh0LCAnaW50ZXJjZXB0
ZWQnLCAnY2FjaGUuYWRkIGludGVyY2VwdGVkJyk7Ci0gIH0pOworICBjb25zdCByZXNwb25zZSA9
IGF3YWl0IGNhY2hlLm1hdGNoKCdkdW1teS50eHQnKTsKKyAgY29uc3QgY2FjaGVUZXh0ID0gYXdh
aXQgKHJlc3BvbnNlID8gcmVzcG9uc2UudGV4dCgpIDogJ2NhY2hlIG1hdGNoIGZhaWxlZCcpOwor
ICBhc3NlcnRfZXF1YWxzKGZldGNoVGV4dCwgJ2ludGVyY2VwdGVkJywgJ2ZldGNoIGludGVyY2Vw
dGVkJyk7CisgIGFzc2VydF9lcXVhbHMoY2FjaGVUZXh0LCAnaW50ZXJjZXB0ZWQnLCAnY2FjaGUu
YWRkIGludGVyY2VwdGVkJyk7CiB9LCAnU2VydmljZSB3b3JrZXIgaW50ZXJjZXB0cyByZXF1ZXN0
cyBmcm9tIHdpbmRvdycpOwogCi1wcm9taXNlX3Rlc3QoKCkgPT4gewotICByZXR1cm4gcmVnaXN0
ZXJTd0FuZE9wZW5GcmFtZSgpLnRoZW4oaWZyYW1lID0+IHsKLSAgICByZXR1cm4gUHJvbWlzZS5h
bGwoWwotICAgICAgaWZyYW1lLmNvbnRlbnRXaW5kb3cuZmV0Y2goJ2R1bW15LnR4dC1pbm5lci1m
ZXRjaCcpLnRoZW4ociA9PiByLnRleHQoKSksCi0gICAgICBpZnJhbWUuY29udGVudFdpbmRvdy5m
ZXRjaCgnZHVtbXkudHh0LWlubmVyLWNhY2hlJykudGhlbihyID0+IHIudGV4dCgpKQotICAgIF0p
Ci0gIH0pLnRoZW4oKFtmZXRjaFRleHQsIGNhY2hlVGV4dF0pID0+IHsKLSAgICBhc3NlcnRfZXF1
YWxzKGZldGNoVGV4dCwgJ0hlbGxvIHdvcmxkXG4nLCAnZmV0Y2ggd2l0aGluIFNXIG5vdCBpbnRl
cmNlcHRlZCcpOwotICAgIGFzc2VydF9lcXVhbHMoY2FjaGVUZXh0LCAnSGVsbG8gd29ybGRcbics
ICdjYWNoZS5hZGQgd2l0aGluIFNXIG5vdCBpbnRlcmNlcHRlZCcpOwotICB9KTsKLX0sIGBTZXJ2
aWNlIHdvcmtlciBkb2VzIG5vdCBpbnRlcmNlcHQgZmV0Y2gvY2FjaGUgcmVxdWVzdHMgd2l0aGlu
IHNlcnZpY2Ugd29ya2VyYCk7Citwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0IGlm
cmFtZSA9IGF3YWl0IHJlZ2lzdGVyU3dBbmRPcGVuRnJhbWUodCk7CisgIGNvbnN0IFtmZXRjaFRl
eHQsIGNhY2hlVGV4dF0gPSBhd2FpdCBQcm9taXNlLmFsbChbCisgICAgaWZyYW1lLmNvbnRlbnRX
aW5kb3cuZmV0Y2goJ2R1bW15LnR4dC1pbm5lci1mZXRjaCcpLnRoZW4ociA9PiByLnRleHQoKSks
CisgICAgaWZyYW1lLmNvbnRlbnRXaW5kb3cuZmV0Y2goJ2R1bW15LnR4dC1pbm5lci1jYWNoZScp
LnRoZW4ociA9PiByLnRleHQoKSkKKyAgXSk7CisgIGFzc2VydF9lcXVhbHMoZmV0Y2hUZXh0LCAn
SGVsbG8gd29ybGRcbicsICdmZXRjaCB3aXRoaW4gU1cgbm90IGludGVyY2VwdGVkJyk7CisgIGFz
c2VydF9lcXVhbHMoY2FjaGVUZXh0LCAnSGVsbG8gd29ybGRcbicsCisgICAgICAgICAgICAgICAg
J2NhY2hlLmFkZCB3aXRoaW4gU1cgbm90IGludGVyY2VwdGVkJyk7Cit9LCAnU2VydmljZSB3b3Jr
ZXIgZG9lcyBub3QgaW50ZXJjZXB0IGZldGNoL2NhY2hlIHJlcXVlc3RzIHdpdGhpbiBzZXJ2aWNl
ICcgKworICAgJ3dvcmtlcicpOwogPC9zY3JpcHQ+Ci08L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9nZXRyZWdpc3RyYXRpb25zLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL2dldHJlZ2lzdHJhdGlvbnMuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IGY0
YjUzNDBiZDdlNThkZWU5MzY4MmZhNzExNmUzZjJmZDlmOWE1ZDcuLmEzZTU3N2I0ZTMzODQ2MmFk
MWQ3ZDdiZTE2NjI3NDg5YTQzYmUwZGEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2dl
dHJlZ2lzdHJhdGlvbnMuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L2dldHJlZ2lzdHJhdGlvbnMuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsNSBAQAogCisK
IFBBU1MgcmVnaXN0cmF0aW9ucyBhcmUgbm90IHJldHVybmVkIGZvbGxvd2luZyB1bnJlZ2lzdGVy
IAogUEFTUyBSZWdpc3RlciB0aGVuIGdldFJlZ2lzdHJhdGlvbnMgCiBQQVNTIFJlZ2lzdGVyIG11
bHRpcGxlIHRpbWVzIHRoZW4gZ2V0UmVnaXN0cmF0aW9ucyAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL2dldHJlZ2lzdHJhdGlvbnMuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L2dldHJlZ2lzdHJhdGlvbnMuaHR0cHMuaHRtbAppbmRleCAxMWRhMjcwMzZkMDkyYzJmMmM2ZDU4
ZGY1NzZiMjllOWJmYjk5NTM3Li4zZTQ4ZDVmZTM2MThiMzY3MTNkNzI0YjcxZTQwMjZlYTI0NTUz
YmQ0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9nZXRyZWdpc3RyYXRpb25zLmh0dHBz
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZ2V0cmVnaXN0cmF0aW9ucy5odHRwcy5odG1s
CkBAIC04LDE3OCArOCwxMjIgQEAKIC8vIFB1cmdlIHRoZSBleGlzdGluZyByZWdpc3RyYXRpb25z
IGZvciB0aGUgb3JpZ2luLgogLy8gZ2V0UmVnaXN0cmF0aW9ucygpIGlzIHVzZWQgaW4gb3JkZXIg
dG8gYXZvaWQgYWRkaW5nIGFkZGl0aW9uYWwgY29tcGxleGl0eQogLy8gZS5nLiBhZGRpbmcgYW4g
aW50ZXJuYWwgZnVuY3Rpb24uCi1wcm9taXNlX3Rlc3QoZnVuY3Rpb24oKSB7Ci0gICAgcmV0dXJu
IG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLmdldFJlZ2lzdHJhdGlvbnMoKQotICAgICAgLnRoZW4o
ZnVuY3Rpb24ocmVnaXN0cmF0aW9ucykgewotICAgICAgICAgIHJldHVybiByZWdpc3RyYXRpb25z
LnJlZHVjZShmdW5jdGlvbihzZXF1ZW5jZSwgcmVnaXN0cmF0aW9uKSB7Ci0gICAgICAgICAgICAg
IHJldHVybiBzZXF1ZW5jZS50aGVuKGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICAgICAgcmV0
dXJuIHJlZ2lzdHJhdGlvbi51bnJlZ2lzdGVyKCk7Ci0gICAgICAgICAgICAgICAgfSk7Ci0gICAg
ICAgICAgICB9LCBQcm9taXNlLnJlc29sdmUoKSk7Ci0gICAgICAgIH0pCi0gICAgICAudGhlbihm
dW5jdGlvbigpIHsKLSAgICAgICAgICByZXR1cm4gbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuZ2V0
UmVnaXN0cmF0aW9ucygpOwotICAgICAgICB9KQotICAgICAgLnRoZW4oZnVuY3Rpb24odmFsdWUp
IHsKLSAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKAotICAgICAgICAgICAgdmFsdWUsCi0g
ICAgICAgICAgICBbXSwKLSAgICAgICAgICAgICdnZXRSZWdpc3RyYXRpb25zIHNob3VsZCByZXNv
bHZlIHdpdGggYW4gZW1wdHkgYXJyYXkuJyk7Ci0gICAgICAgIH0pOworcHJvbWlzZV90ZXN0KGFz
eW5jICgpID0+IHsKKyAgY29uc3QgcmVnaXN0cmF0aW9ucyA9IGF3YWl0IG5hdmlnYXRvci5zZXJ2
aWNlV29ya2VyLmdldFJlZ2lzdHJhdGlvbnMoKTsKKyAgYXdhaXQgUHJvbWlzZS5hbGwocmVnaXN0
cmF0aW9ucy5tYXAociA9PiByLnVucmVnaXN0ZXIoKSkpOworICBjb25zdCB2YWx1ZSA9IGF3YWl0
IG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLmdldFJlZ2lzdHJhdGlvbnMoKTsKKyAgYXNzZXJ0X2Fy
cmF5X2VxdWFscygKKyAgICAgIHZhbHVlLCBbXSwKKyAgICAgICdnZXRSZWdpc3RyYXRpb25zIHNo
b3VsZCByZXNvbHZlIHdpdGggYW4gZW1wdHkgYXJyYXkuJyk7CiB9LCAncmVnaXN0cmF0aW9ucyBh
cmUgbm90IHJldHVybmVkIGZvbGxvd2luZyB1bnJlZ2lzdGVyJyk7CiAKLXByb21pc2VfdGVzdChm
dW5jdGlvbih0KSB7Ci0gICAgdmFyIHNjb3BlID0gJ3Jlc291cmNlcy9zY29wZS9nZXRyZWdpc3Ry
YXRpb25zL25vcm1hbCc7Ci0gICAgdmFyIHNjcmlwdCA9ICdyZXNvdXJjZXMvZW1wdHktd29ya2Vy
LmpzJzsKLSAgICB2YXIgcmVnaXN0cmF0aW9ucyA9IFtdOwotICAgIHJldHVybiBzZXJ2aWNlX3dv
cmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCBzY3JpcHQsIHNjb3BlKQotICAgICAgLnRo
ZW4oZnVuY3Rpb24ocikgewotICAgICAgICAgIHJlZ2lzdHJhdGlvbnMucHVzaChyKTsKLSAgICAg
ICAgICByZXR1cm4gbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuZ2V0UmVnaXN0cmF0aW9ucygpOwot
ICAgICAgICB9KQotICAgICAgLnRoZW4oZnVuY3Rpb24odmFsdWUpIHsKLSAgICAgICAgICBhc3Nl
cnRfYXJyYXlfZXF1YWxzKAotICAgICAgICAgICAgdmFsdWUsCi0gICAgICAgICAgICByZWdpc3Ry
YXRpb25zLAotICAgICAgICAgICAgJ2dldFJlZ2lzdHJhdGlvbnMgc2hvdWxkIHJlc29sdmUgd2l0
aCBhcnJheSBvZiByZWdpc3RyYXRpb25zLicpOwotICAgICAgICAgIHJldHVybiBzZXJ2aWNlX3dv
cmtlcl91bnJlZ2lzdGVyKHQsIHNjb3BlKTsKLSAgICAgICAgfSk7Ci0gIH0sICdSZWdpc3RlciB0
aGVuIGdldFJlZ2lzdHJhdGlvbnMnKTsKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgY29u
c3Qgc2NvcGUgPSAncmVzb3VyY2VzL3Njb3BlL2dldHJlZ2lzdHJhdGlvbnMvbm9ybWFsJzsKKyAg
Y29uc3Qgc2NyaXB0ID0gJ3Jlc291cmNlcy9lbXB0eS13b3JrZXIuanMnOworICBjb25zdCByZWdp
c3RyYXRpb25zID0gWworICAgICAgYXdhaXQgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRf
cmVnaXN0ZXIodCwgc2NyaXB0LCBzY29wZSldOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHJlZ2lz
dHJhdGlvbnNbMF0udW5yZWdpc3RlcigpKTsKKyAgY29uc3QgdmFsdWUgPSBhd2FpdCBuYXZpZ2F0
b3Iuc2VydmljZVdvcmtlci5nZXRSZWdpc3RyYXRpb25zKCk7CisgIGFzc2VydF9hcnJheV9lcXVh
bHModmFsdWUsIHJlZ2lzdHJhdGlvbnMsCisgICAgICAnZ2V0UmVnaXN0cmF0aW9ucyBzaG91bGQg
cmVzb2x2ZSB3aXRoIGFuIGFycmF5IG9mIHJlZ2lzdHJhdGlvbnMnKTsKK30sICdSZWdpc3RlciB0
aGVuIGdldFJlZ2lzdHJhdGlvbnMnKTsKIAotcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKLSAg
ICB2YXIgc2NvcGUxID0gJ3Jlc291cmNlcy9zY29wZS9nZXRyZWdpc3RyYXRpb25zL3Njb3BlMSc7
Ci0gICAgdmFyIHNjb3BlMiA9ICdyZXNvdXJjZXMvc2NvcGUvZ2V0cmVnaXN0cmF0aW9ucy9zY29w
ZTInOwotICAgIHZhciBzY3JpcHQgPSAncmVzb3VyY2VzL2VtcHR5LXdvcmtlci5qcyc7Ci0gICAg
dmFyIHJlZ2lzdHJhdGlvbnMgPSBbXTsKLSAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdp
c3Rlcl9hbmRfcmVnaXN0ZXIodCwgc2NyaXB0LCBzY29wZTEpCi0gICAgICAudGhlbihmdW5jdGlv
bihyKSB7Ci0gICAgICAgICAgcmVnaXN0cmF0aW9ucy5wdXNoKHIpOwotICAgICAgICAgIHJldHVy
biBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCBzY3JpcHQsIHNjb3Bl
Mik7Ci0gICAgICAgIH0pCi0gICAgICAudGhlbihmdW5jdGlvbihyKSB7Ci0gICAgICAgICAgcmVn
aXN0cmF0aW9ucy5wdXNoKHIpOwotICAgICAgICAgIHJldHVybiBuYXZpZ2F0b3Iuc2VydmljZVdv
cmtlci5nZXRSZWdpc3RyYXRpb25zKCk7Ci0gICAgICAgIH0pCi0gICAgICAudGhlbihmdW5jdGlv
bih2YWx1ZSkgewotICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoCi0gICAgICAgICAgICB2
YWx1ZSwKLSAgICAgICAgICAgIHJlZ2lzdHJhdGlvbnMsCi0gICAgICAgICAgICAnZ2V0UmVnaXN0
cmF0aW9ucyBzaG91bGQgcmVzb2x2ZSB3aXRoIGFycmF5IG9mIHJlZ2lzdHJhdGlvbnMuJyk7Ci0g
ICAgICAgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXIodCwgc2NvcGUxKTsKLSAg
ICAgICAgfSkKLSAgICAgIC50aGVuKGZ1bmN0aW9uKCkgewotICAgICAgICAgIHJldHVybiBzZXJ2
aWNlX3dvcmtlcl91bnJlZ2lzdGVyKHQsIHNjb3BlMik7Ci0gICAgICAgIH0pOwotICB9LCAnUmVn
aXN0ZXIgbXVsdGlwbGUgdGltZXMgdGhlbiBnZXRSZWdpc3RyYXRpb25zJyk7Citwcm9taXNlX3Rl
c3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0IHNjb3BlMSA9ICdyZXNvdXJjZXMvc2NvcGUvZ2V0cmVn
aXN0cmF0aW9ucy9zY29wZTEnOworICBjb25zdCBzY29wZTIgPSAncmVzb3VyY2VzL3Njb3BlL2dl
dHJlZ2lzdHJhdGlvbnMvc2NvcGUyJzsKKyAgY29uc3Qgc2NyaXB0ID0gJ3Jlc291cmNlcy9lbXB0
eS13b3JrZXIuanMnOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHNlcnZpY2Vfd29ya2VyX3VucmVn
aXN0ZXIodCwgc2NvcGUxKSk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gc2VydmljZV93b3JrZXJf
dW5yZWdpc3Rlcih0LCBzY29wZTIpKTsKIAotcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKLSAg
ICB2YXIgc2NvcGUgPSAncmVzb3VyY2VzL3Njb3BlL2dldHJlZ2lzdHJhdGlvbnMvcmVnaXN0ZXIt
dW5yZWdpc3Rlcic7Ci0gICAgdmFyIHNjcmlwdCA9ICdyZXNvdXJjZXMvZW1wdHktd29ya2VyLmpz
JzsKLSAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwg
c2NyaXB0LCBzY29wZSkKLSAgICAgIC50aGVuKGZ1bmN0aW9uKHJlZ2lzdHJhdGlvbikgewotICAg
ICAgICAgIHJldHVybiByZWdpc3RyYXRpb24udW5yZWdpc3RlcigpOwotICAgICAgICB9KQotICAg
ICAgLnRoZW4oZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgcmV0dXJuIG5hdmlnYXRvci5zZXJ2aWNl
V29ya2VyLmdldFJlZ2lzdHJhdGlvbnMoKTsKLSAgICAgICAgfSkKLSAgICAgIC50aGVuKGZ1bmN0
aW9uKHZhbHVlKSB7Ci0gICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscygKLSAgICAgICAgICAg
IHZhbHVlLAotICAgICAgICAgICAgW10sCi0gICAgICAgICAgICAnZ2V0UmVnaXN0cmF0aW9ucyBz
aG91bGQgcmVzb2x2ZSB3aXRoIGFuIGVtcHR5IGFycmF5LicpOwotICAgICAgICB9KTsKLSAgfSwg
J1JlZ2lzdGVyIHRoZW4gVW5yZWdpc3RlciB0aGVuIGdldFJlZ2lzdHJhdGlvbnMnKTsKKyAgY29u
c3QgcmVnaXN0cmF0aW9ucyA9IFsKKyAgICAgIGF3YWl0IHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0
ZXJfYW5kX3JlZ2lzdGVyKHQsIHNjcmlwdCwgc2NvcGUxKSwKKyAgICAgIGF3YWl0IHNlcnZpY2Vf
d29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHNjcmlwdCwgc2NvcGUyKQorICBdOwor
ICBjb25zdCB2YWx1ZSA9IGF3YWl0IG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLmdldFJlZ2lzdHJh
dGlvbnMoKTsKKyAgYXNzZXJ0X2FycmF5X2VxdWFscyh2YWx1ZSwgcmVnaXN0cmF0aW9ucyk7Cit9
LCAnUmVnaXN0ZXIgbXVsdGlwbGUgdGltZXMgdGhlbiBnZXRSZWdpc3RyYXRpb25zJyk7CiAKLXBy
b21pc2VfdGVzdChmdW5jdGlvbih0KSB7Ci0gICAgdmFyIHNjb3BlID0gJ3Jlc291cmNlcy9zY29w
ZS9nZXRyZWdpc3RyYXRpb25zL3JlZ2lzdGVyLXVucmVnaXN0ZXItY29udHJvbGxlZCc7Ci0gICAg
dmFyIHNjcmlwdCA9ICdyZXNvdXJjZXMvZW1wdHktd29ya2VyLmpzJzsKLSAgICB2YXIgcmVnaXN0
cmF0aW9uczsKLSAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0
ZXIodCwgc2NyaXB0LCBzY29wZSkKLSAgICAgIC50aGVuKGZ1bmN0aW9uKHIpIHsKLSAgICAgICAg
ICByZWdpc3RyYXRpb24gPSByOwotICAgICAgICAgIHJldHVybiB3YWl0X2Zvcl9zdGF0ZSh0LCBy
ZWdpc3RyYXRpb24uaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOwotICAgICAgICB9KQotICAgICAg
LnRoZW4oZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgcmV0dXJuIHdpdGhfaWZyYW1lKHNjb3BlKTsK
LSAgICAgICAgfSkKLSAgICAgIC50aGVuKGZ1bmN0aW9uKGYpIHsKLSAgICAgICAgICB0LmFkZF9j
bGVhbnVwKGZ1bmN0aW9uKCkgeyBmLnJlbW92ZSgpOyB9KTsKLSAgICAgICAgICByZXR1cm4gcmVn
aXN0cmF0aW9uLnVucmVnaXN0ZXIoKTsKLSAgICAgICAgfSkKLSAgICAgIC50aGVuKGZ1bmN0aW9u
KCkgewotICAgICAgICAgIHJldHVybiBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5nZXRSZWdpc3Ry
YXRpb25zKCk7Ci0gICAgICAgIH0pCi0gICAgICAudGhlbihmdW5jdGlvbih2YWx1ZSkgewotICAg
ICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoCi0gICAgICAgICAgICB2YWx1ZSwKLSAgICAgICAg
ICAgIFtdLAotICAgICAgICAgICAgJ2dldFJlZ2lzdHJhdGlvbnMgc2hvdWxkIHJlc29sdmUgd2l0
aCBhbiBlbXB0eSBhcnJheS4nKTsKLSAgICAgICAgICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlv
bi5pbnN0YWxsaW5nLCBudWxsKTsKLSAgICAgICAgICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlv
bi53YWl0aW5nLCBudWxsKTsKLSAgICAgICAgICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi5h
Y3RpdmUuc3RhdGUsICdhY3RpdmF0ZWQnKTsKLSAgICAgICAgfSk7Ci0gIH0sICdSZWdpc3RlciB0
aGVuIFVucmVnaXN0ZXIgd2l0aCBjb250cm9sbGVkIGZyYW1lIHRoZW4gZ2V0UmVnaXN0cmF0aW9u
cycpOworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25zdCBzY29wZSA9ICdyZXNvdXJj
ZXMvc2NvcGUvZ2V0cmVnaXN0cmF0aW9ucy9yZWdpc3Rlci11bnJlZ2lzdGVyJzsKKyAgY29uc3Qg
c2NyaXB0ID0gJ3Jlc291cmNlcy9lbXB0eS13b3JrZXIuanMnOworICBjb25zdCByZWdpc3RyYXRp
b24gPSBhd2FpdCBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCBzY3Jp
cHQsIHNjb3BlKTsKKyAgYXdhaXQgcmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIoKTsKKyAgY29uc3Qg
dmFsdWUgPSBhd2FpdCBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5nZXRSZWdpc3RyYXRpb25zKCk7
CisgIGFzc2VydF9hcnJheV9lcXVhbHMoCisgICAgICB2YWx1ZSwgW10sICdnZXRSZWdpc3RyYXRp
b25zIHNob3VsZCByZXNvbHZlIHdpdGggYW4gZW1wdHkgYXJyYXkuJyk7Cit9LCAnUmVnaXN0ZXIg
dGhlbiBVbnJlZ2lzdGVyIHRoZW4gZ2V0UmVnaXN0cmF0aW9ucycpOwogCi1wcm9taXNlX3Rlc3Qo
ZnVuY3Rpb24odCkgewotICAgIHZhciBob3N0X2luZm8gPSBnZXRfaG9zdF9pbmZvKCk7Ci0gICAg
Ly8gUmV3cml0ZSB0aGUgdXJsIHRvIHBvaW50IHRvIHJlbW90ZSBvcmlnaW4uCi0gICAgdmFyIGZy
YW1lX3NhbWVfb3JpZ2luX3VybCA9IG5ldyBVUkwoInJlc291cmNlcy9mcmFtZS1mb3ItZ2V0cmVn
aXN0cmF0aW9ucy5odG1sIiwgd2luZG93LmxvY2F0aW9uKTsKLSAgICB2YXIgZnJhbWVfdXJsID0g
aG9zdF9pbmZvWydIVFRQU19SRU1PVEVfT1JJR0lOJ10gKyBmcmFtZV9zYW1lX29yaWdpbl91cmwu
cGF0aG5hbWU7Ci0gICAgdmFyIHNjb3BlID0gJ3Jlc291cmNlcy9zY29wZS1mb3ItZ2V0cmVnaXN0
cmF0aW9ucyc7Ci0gICAgdmFyIHNjcmlwdCA9ICdyZXNvdXJjZXMvZW1wdHktd29ya2VyLmpzJzsK
LSAgICB2YXIgZnJhbWU7Ci0gICAgdmFyIHJlZ2lzdHJhdGlvbnMgPSBbXTsKK3Byb21pc2VfdGVz
dChhc3luYyB0ID0+IHsKKyAgY29uc3Qgc2NvcGUgPSAncmVzb3VyY2VzL3Njb3BlL2dldHJlZ2lz
dHJhdGlvbnMvcmVnaXN0ZXItdW5yZWdpc3Rlci1jb250cm9sbGVkJzsKKyAgY29uc3Qgc2NyaXB0
ID0gJ3Jlc291cmNlcy9lbXB0eS13b3JrZXIuanMnOworICBjb25zdCByZWdpc3RyYXRpb24gPSBh
d2FpdCBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCBzY3JpcHQsIHNj
b3BlKTsKKyAgYXdhaXQgd2FpdF9mb3Jfc3RhdGUodCwgcmVnaXN0cmF0aW9uLmluc3RhbGxpbmcs
ICdhY3RpdmF0ZWQnKTsKIAotICAgIC8vIExvYWRzIGFuIGlmcmFtZSBhbmQgd2FpdHMgZm9yICdy
ZWFkeScgbWVzc2FnZSBmcm9tIGl0IHRvIHJlc29sdmUgcHJvbWlzZS4KLSAgICAvLyBDYWxsZXIg
aXMgcmVzcG9uc2libGUgZm9yIHJlbW92aW5nIGZyYW1lLgotICAgIGZ1bmN0aW9uIHdpdGhfaWZy
YW1lX3JlYWR5KHVybCkgewotICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVz
b2x2ZSkgewotICAgICAgICAgICAgdmFyIGZyYW1lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgn
aWZyYW1lJyk7Ci0gICAgICAgICAgICBmcmFtZS5zcmMgPSB1cmw7Ci0gICAgICAgICAgICB3aW5k
b3cuYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIGZ1bmN0aW9uIG9uTWVzc2FnZShlKSB7Ci0g
ICAgICAgICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgb25NZXNz
YWdlKTsKLSAgICAgICAgICAgICAgaWYgKGUuZGF0YSA9PSAncmVhZHknKSB7Ci0gICAgICAgICAg
ICAgICAgcmVzb2x2ZShmcmFtZSk7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0pOwot
ICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChmcmFtZSk7Ci0gICAgICAgIH0p
OwotICAgIH0KKyAgLy8gQ3JlYXRlIGEgZnJhbWUgY29udHJvbGxlZCBieSB0aGUgc2VydmljZSB3
b3JrZXIgYW5kIHVucmVnaXN0ZXIgdGhlCisgIC8vIHdvcmtlci4KKyAgY29uc3QgZnJhbWUgPSBh
d2FpdCB3aXRoX2lmcmFtZShzY29wZSk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gZnJhbWUucmVt
b3ZlKCkpOworICBhd2FpdCByZWdpc3RyYXRpb24udW5yZWdpc3RlcigpOwogCi0gICAgLy8gV2Ug
bmVlZCB0aGlzIHNwZWNpYWwgZnJhbWUgbG9hZGluZyBmdW5jdGlvbiBiZWNhdXNlIHRoZSBmcmFt
ZSBpcyBnb2luZwotICAgIC8vIHRvIHJlZ2lzdGVyIGl0J3Mgb3duIHNlcnZpY2Ugd29ya2VyIGFu
ZCB0aGVyZSBpcyB0aGUgcG9zc2liaWxpdHkgdGhhdCB0aGF0Ci0gICAgLy8gcmVnaXN0ZXIoKSBm
aW5pc2hlcyBhZnRlciB0aGUgcmVnaXN0ZXIoKSBmb3IgdGhlIHNhbWUgZG9tYWluIGxhdGVyIGlu
IHRoZQotICAgIC8vIHRlc3QuIFNvIHdlIGhhdmUgdG8gd2FpdCB1bnRpbCB0aGUgY3Jvc3Mgb3Jp
Z2luIHJlZ2lzdGVyKCkgaXMgZG9uZSwgYW5kIG5vdAotICAgIC8vIGp1c3QgdW50aWwgdGhlIGZy
YW1lIGxvYWRzLgotICAgIHJldHVybiB3aXRoX2lmcmFtZV9yZWFkeShmcmFtZV91cmwpCi0gICAg
ICAudGhlbihmdW5jdGlvbihmKSB7Ci0gICAgICAgICAgdC5hZGRfY2xlYW51cChmdW5jdGlvbigp
IHsgZi5yZW1vdmUoKTsgfSk7Ci0gICAgICAgICAgZnJhbWUgPSBmOwotICAgICAgICAgIHJldHVy
biBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCBzY3JpcHQsIHNjb3Bl
KTsKLSAgICAgICAgfSkKLSAgICAgIC50aGVuKGZ1bmN0aW9uKHIpIHsKLSAgICAgICAgICByZWdp
c3RyYXRpb25zLnB1c2gocik7Ci0gICAgICAgICAgcmV0dXJuIG5hdmlnYXRvci5zZXJ2aWNlV29y
a2VyLmdldFJlZ2lzdHJhdGlvbnMoKTsKLSAgICAgICAgfSkKLSAgICAgIC50aGVuKGZ1bmN0aW9u
KHZhbHVlKSB7Ci0gICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscygKLSAgICAgICAgICAgIHZh
bHVlLAotICAgICAgICAgICAgcmVnaXN0cmF0aW9ucywKLSAgICAgICAgICAgICdnZXRSZWdpc3Ry
YXRpb25zIHNob3VsZCBvbmx5IHJldHVybiBzYW1lIG9yaWdpbiByZWdpc3RyYXRpb25zLicpOwor
ICBjb25zdCB2YWx1ZSA9IGF3YWl0IG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLmdldFJlZ2lzdHJh
dGlvbnMoKTsKKyAgYXNzZXJ0X2FycmF5X2VxdWFscygKKyAgICAgIHZhbHVlLCBbXSwKKyAgICAg
ICdnZXRSZWdpc3RyYXRpb25zIHNob3VsZCByZXNvbHZlIHdpdGggYW4gZW1wdHkgYXJyYXkuJyk7
CisgIGFzc2VydF9lcXVhbHMocmVnaXN0cmF0aW9uLmluc3RhbGxpbmcsIG51bGwpOworICBhc3Nl
cnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi53YWl0aW5nLCBudWxsKTsKKyAgYXNzZXJ0X2VxdWFscyhy
ZWdpc3RyYXRpb24uYWN0aXZlLnN0YXRlLCAnYWN0aXZhdGVkJyk7Cit9LCAnUmVnaXN0ZXIgdGhl
biBVbnJlZ2lzdGVyIHdpdGggY29udHJvbGxlZCBmcmFtZSB0aGVuIGdldFJlZ2lzdHJhdGlvbnMn
KTsKIAotICAgICAgICAgIHZhciBjaGFubmVsID0gbmV3IE1lc3NhZ2VDaGFubmVsKCk7Ci0gICAg
ICAgICAgdmFyIHJlc29sdmU7Ci0gICAgICAgICAgdmFyIHAgPSBuZXcgUHJvbWlzZShmdW5jdGlv
bihyKSB7IHJlc29sdmUgPSByOyB9KTsKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgY29u
c3QgaG9zdF9pbmZvID0gZ2V0X2hvc3RfaW5mbygpOworICAvLyBSZXdyaXRlIHRoZSB1cmwgdG8g
cG9pbnQgdG8gcmVtb3RlIG9yaWdpbi4KKyAgY29uc3QgZnJhbWVfc2FtZV9vcmlnaW5fdXJsID0g
bmV3IFVSTCgicmVzb3VyY2VzL2ZyYW1lLWZvci1nZXRyZWdpc3RyYXRpb25zLmh0bWwiLCB3aW5k
b3cubG9jYXRpb24pOworICBjb25zdCBmcmFtZV91cmwgPSBob3N0X2luZm9bJ0hUVFBTX1JFTU9U
RV9PUklHSU4nXSArIGZyYW1lX3NhbWVfb3JpZ2luX3VybC5wYXRobmFtZTsKKyAgY29uc3Qgc2Nv
cGUgPSAncmVzb3VyY2VzL3Njb3BlLWZvci1nZXRyZWdpc3RyYXRpb25zJzsKKyAgY29uc3Qgc2Ny
aXB0ID0gJ3Jlc291cmNlcy9lbXB0eS13b3JrZXIuanMnOwogCi0gICAgICAgICAgY2hhbm5lbC5w
b3J0MS5vbm1lc3NhZ2UgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICBpZiAoZS5kYXRhID09
ICd1bnJlZ2lzdGVyZWQnKQotICAgICAgICAgICAgICByZXNvbHZlKCk7Ci0gICAgICAgICAgfTsK
LSAgICAgICAgICBmcmFtZS5jb250ZW50V2luZG93LnBvc3RNZXNzYWdlKCd1bnJlZ2lzdGVyJywg
JyonLCBbY2hhbm5lbC5wb3J0Ml0pOwotICAgICAgICAgIHJldHVybiBwOwotICAgICAgICB9KQot
ICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2Vy
X3VucmVnaXN0ZXIodCwgc2NvcGUpOwotICAgICAgICB9KTsKLSAgfSwgJ2dldFJlZ2lzdHJhdGlv
bnMgcHJvbWlzZSByZXNvbHZlcyBvbmx5IHdpdGggc2FtZSBvcmlnaW4gcmVnaXN0cmF0aW9ucy4n
KTsKKyAgLy8gTG9hZHMgYW4gaWZyYW1lIGFuZCB3YWl0cyBmb3IgJ3JlYWR5JyBtZXNzYWdlIGZy
b20gaXQgdG8gcmVzb2x2ZSBwcm9taXNlLgorICAvLyBDYWxsZXIgaXMgcmVzcG9uc2libGUgZm9y
IHJlbW92aW5nIGZyYW1lLgorICBmdW5jdGlvbiB3aXRoX2lmcmFtZV9yZWFkeSh1cmwpIHsKKyAg
ICAgIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHsKKyAgICAgICAgICBjb25zdCBmcmFt
ZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lmcmFtZScpOworICAgICAgICAgIGZyYW1lLnNy
YyA9IHVybDsKKyAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIGZ1
bmN0aW9uIG9uTWVzc2FnZShlKSB7CisgICAgICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0
ZW5lcignbWVzc2FnZScsIG9uTWVzc2FnZSk7CisgICAgICAgICAgICBpZiAoZS5kYXRhID09ICdy
ZWFkeScpIHsKKyAgICAgICAgICAgICAgcmVzb2x2ZShmcmFtZSk7CisgICAgICAgICAgICB9Cisg
ICAgICAgICAgfSk7CisgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChmcmFtZSk7
CisgICAgICB9KTsKKyAgfQorCisgIC8vIFdlIG5lZWQgdGhpcyBzcGVjaWFsIGZyYW1lIGxvYWRp
bmcgZnVuY3Rpb24gYmVjYXVzZSB0aGUgZnJhbWUgaXMgZ29pbmcKKyAgLy8gdG8gcmVnaXN0ZXIg
aXQncyBvd24gc2VydmljZSB3b3JrZXIgYW5kIHRoZXJlIGlzIHRoZSBwb3NzaWJpbGl0eSB0aGF0
IHRoYXQKKyAgLy8gcmVnaXN0ZXIoKSBmaW5pc2hlcyBhZnRlciB0aGUgcmVnaXN0ZXIoKSBmb3Ig
dGhlIHNhbWUgZG9tYWluIGxhdGVyIGluIHRoZQorICAvLyB0ZXN0LiBTbyB3ZSBoYXZlIHRvIHdh
aXQgdW50aWwgdGhlIGNyb3NzIG9yaWdpbiByZWdpc3RlcigpIGlzIGRvbmUsIGFuZCBub3QKKyAg
Ly8ganVzdCB1bnRpbCB0aGUgZnJhbWUgbG9hZHMuCisgIGNvbnN0IGZyYW1lID0gYXdhaXQgd2l0
aF9pZnJhbWVfcmVhZHkoZnJhbWVfdXJsKTsKKyAgdC5hZGRfY2xlYW51cChhc3luYyAoKSA9PiB7
CisgICAgLy8gV2FpdCB1bnRpbCB0aGUgY3Jvc3Mtb3JpZ2luIHdvcmtlciBpcyB1bnJlZ2lzdGVy
ZWQuCisgICAgbGV0IHJlc29sdmU7CisgICAgY29uc3QgY2hhbm5lbCA9IG5ldyBNZXNzYWdlQ2hh
bm5lbCgpOworICAgIGNoYW5uZWwucG9ydDEub25tZXNzYWdlID0gZSA9PiB7CisgICAgICBpZiAo
ZS5kYXRhID09ICd1bnJlZ2lzdGVyZWQnKQorICAgICAgICByZXNvbHZlKCk7CisgICAgfTsKKyAg
ICBmcmFtZS5jb250ZW50V2luZG93LnBvc3RNZXNzYWdlKCd1bnJlZ2lzdGVyJywgJyonLCBbY2hh
bm5lbC5wb3J0Ml0pOworICAgIGF3YWl0IG5ldyBQcm9taXNlKHIgPT4geyByZXNvbHZlID0gcjsg
fSk7CisKKyAgICBmcmFtZS5yZW1vdmUoKTsKKyAgfSk7CisKKyAgY29uc3QgcmVnaXN0cmF0aW9u
cyA9IFsKKyAgICBhd2FpdCBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0
LCBzY3JpcHQsIHNjb3BlKV07CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcmVnaXN0cmF0aW9uc1sw
XS51bnJlZ2lzdGVyKCkpOworICBjb25zdCB2YWx1ZSA9IGF3YWl0IG5hdmlnYXRvci5zZXJ2aWNl
V29ya2VyLmdldFJlZ2lzdHJhdGlvbnMoKTsKKyAgYXNzZXJ0X2FycmF5X2VxdWFscygKKyAgICAg
IHZhbHVlLCByZWdpc3RyYXRpb25zLAorICAgICAgJ2dldFJlZ2lzdHJhdGlvbnMgc2hvdWxkIG9u
bHkgcmV0dXJuIHNhbWUgb3JpZ2luIHJlZ2lzdHJhdGlvbnMuJyk7Cit9LCAnZ2V0UmVnaXN0cmF0
aW9ucyBwcm9taXNlIHJlc29sdmVzIG9ubHkgd2l0aCBzYW1lIG9yaWdpbiByZWdpc3RyYXRpb25z
LicpOwogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9pbXBvcnQtc2Ny
aXB0cy1yZWRpcmVjdC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvaW1wb3J0LXNjcmlw
dHMtcmVkaXJlY3QuaHR0cHMuaHRtbAppbmRleCBlNTJhZGZhMzc4MDA4NTNhODZkYTlmNWYzMGJj
MGRkNDFlNGFmY2I2Li4wN2VhNDk0MzllYmE4Zjk3NjJiMmJjMTdiNWFlMjM0NmQ5ZDE1Mzk3IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9pbXBvcnQtc2NyaXB0cy1yZWRpcmVjdC5odHRw
cy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ltcG9ydC1zY3JpcHRzLXJlZGlyZWN0Lmh0
dHBzLmh0bWwKQEAgLTEsNiArMSw3IEBACiA8IURPQ1RZUEUgaHRtbD4KIDxtZXRhIGNoYXJzZXQ9
InV0Zi04Ij4KIDx0aXRsZT5UZXN0cyBmb3IgaW1wb3J0U2NyaXB0czogcmVkaXJlY3Q8L3RpdGxl
PgorPHNjcmlwdCBzcmM9Ii9jb21tb24vdXRpbHMuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9
Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii9yZXNv
dXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9InJlc291
cmNlcy90ZXN0LWhlbHBlcnMuc3ViLmpzIj48L3NjcmlwdD4KQEAgLTIwLDE0ICsyMSwzNSBAQCBw
cm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CiAgICAgYXdhaXQgc2VydmljZV93b3JrZXJfdW5yZWdp
c3Rlcih0LCBzY29wZSk7CiAgICAgbGV0IHJlZyA9IGF3YWl0IG5hdmlnYXRvci5zZXJ2aWNlV29y
a2VyLnJlZ2lzdGVyKAogICAgICAgJ3Jlc291cmNlcy9pbXBvcnQtc2NyaXB0cy1yZWRpcmVjdC13
b3JrZXIuanMnLCB7IHNjb3BlOiBzY29wZSB9KTsKLSAgICBhc3NlcnRfbm90X2VxdWFscyhyZWcu
aW5zdGFsbGluZywgbnVsbCwgJ3dvcmtlciBpcyBpbnN0YWxsaW5nJyk7CisgICAgYXNzZXJ0X25v
dF9lcXVhbHMocmVnLmluc3RhbGxpbmcsIG51bGwsICdiZWZvcmUgdXBkYXRlJyk7CiAgICAgYXdh
aXQgd2FpdF9mb3Jfc3RhdGUodCwgcmVnLmluc3RhbGxpbmcsICdhY3RpdmF0ZWQnKTsKICAgICBh
d2FpdCBQcm9taXNlLmFsbChbCiAgICAgICB3YWl0X2Zvcl91cGRhdGUodCwgcmVnKSwKICAgICAg
IHJlZy51cGRhdGUoKQogICAgIF0pOwotICAgIGFzc2VydF9ub3RfZXF1YWxzKHJlZy5pbnN0YWxs
aW5nLCBudWxsLCAnd29ya2VyIGlzIGluc3RhbGxpbmcnKTsKKyAgICBhc3NlcnRfbm90X2VxdWFs
cyhyZWcuaW5zdGFsbGluZywgbnVsbCwgJ2FmdGVyIHVwZGF0ZScpOwogICAgIGF3YWl0IHJlZy51
bnJlZ2lzdGVyKCk7Ci0gIH0sICdpbXBvcnRTY3JpcHRzKCkgc3VwcG9ydHMgcmVkaXJlY3RzIGFu
ZCBjYW4gYmUgdXBkYXRlZCcpOworICB9LAorICAiYW4gaW1wb3J0ZWQgc2NyaXB0IHJlZGlyZWN0
cywgYW5kIHRoZSBib2R5IGNoYW5nZXMgZHVyaW5nIHRoZSB1cGRhdGUgY2hlY2siKTsKKworcHJv
bWlzZV90ZXN0KGFzeW5jIHQgPT4geworICAgIGNvbnN0IGtleSA9IHRva2VuKCk7CisgICAgY29u
c3Qgc2NvcGUgPSAncmVzb3VyY2VzL2ltcG9ydC1zY3JpcHRzLXJlZGlyZWN0JzsKKyAgICBhd2Fp
dCBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyKHQsIHNjb3BlKTsKKyAgICBsZXQgcmVnID0gYXdh
aXQgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoCisgICAgICBgcmVzb3VyY2VzL2lt
cG9ydC1zY3JpcHRzLXJlZGlyZWN0LW9uLXNlY29uZC10aW1lLXdvcmtlci5qcz9LZXk9JHtrZXl9
YCwKKyAgICAgIHsgc2NvcGUgfSk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiByZWcudW5yZWdp
c3RlcigpKTsKKworICAgIGFzc2VydF9ub3RfZXF1YWxzKHJlZy5pbnN0YWxsaW5nLCBudWxsLCAn
YmVmb3JlIHVwZGF0ZScpOworICAgIGF3YWl0IHdhaXRfZm9yX3N0YXRlKHQsIHJlZy5pbnN0YWxs
aW5nLCAnYWN0aXZhdGVkJyk7CisgICAgYXdhaXQgUHJvbWlzZS5hbGwoWworICAgICAgd2FpdF9m
b3JfdXBkYXRlKHQsIHJlZyksCisgICAgICByZWcudXBkYXRlKCkKKyAgICBdKTsKKyAgICBhc3Nl
cnRfbm90X2VxdWFscyhyZWcuaW5zdGFsbGluZywgbnVsbCwgJ2FmdGVyIHVwZGF0ZScpOworICB9
LAorICAiYW4gaW1wb3J0ZWQgc2NyaXB0IGRvZXNuJ3QgcmVkaXJlY3QgaW5pdGlhbGx5LCB0aGVu
IHJlZGlyZWN0cyBkdXJpbmcgIiArCisgICJ0aGUgdXBkYXRlIGNoZWNrIGFuZCB0aGUgYm9keSBj
aGFuZ2VzIik7CiA8L3NjcmlwdD4KIDwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL2ludGVyZmFjZXMtc3cuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
aW50ZXJmYWNlcy1zdy5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggNTRlYTY3MmJkNzUyMGZiMzIx
NDE2ZTM1YTE4MGJhYzI2NzA0ZTk0Mi4uZWVlODc3Mjk0NDk0MmM3YTkzNTYyMjA0ZmU3MmM1MDlk
MTU3ZTE2YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvaW50ZXJmYWNlcy1zdy5odHRw
cy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvaW50ZXJmYWNlcy1zdy5odHRw
cy1leHBlY3RlZC50eHQKQEAgLTEzLDYgKzEzLDcgQEAgUEFTUyBTZXJ2aWNlV29ya2VyIGludGVy
ZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2IK
IFBBU1MgU2VydmljZVdvcmtlciBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBzY3JpcHRVUkwgCiBQQVNT
IFNlcnZpY2VXb3JrZXIgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgc3RhdGUgCiBQQVNTIFNlcnZpY2VX
b3JrZXIgaW50ZXJmYWNlOiBvcGVyYXRpb24gcG9zdE1lc3NhZ2UoYW55LCBbb2JqZWN0IE9iamVj
dF0pIAorUEFTUyBTZXJ2aWNlV29ya2VyIGludGVyZmFjZTogb3BlcmF0aW9uIHBvc3RNZXNzYWdl
KGFueSwgUG9zdE1lc3NhZ2VPcHRpb25zKSAKIFBBU1MgU2VydmljZVdvcmtlciBpbnRlcmZhY2U6
IGF0dHJpYnV0ZSBvbnN0YXRlY2hhbmdlIAogUEFTUyBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9u
IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3Qg
CiBQQVNTIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24gaW50ZXJmYWNlIG9iamVjdCBsZW5ndGgg
CkBAIC0yMyw2ICsyNCw3IEBAIFBBU1MgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbiBpbnRlcmZh
Y2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UKIFBBU1MgU2VydmljZVdv
cmtlclJlZ2lzdHJhdGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBpbnN0YWxsaW5nIAogUEFTUyBT
ZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uIGludGVyZmFjZTogYXR0cmlidXRlIHdhaXRpbmcgCiBQ
QVNTIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgYWN0aXZl
IAorRkFJTCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uIGludGVyZmFjZTogYXR0cmlidXRlIG5h
dmlnYXRpb25QcmVsb2FkIGFzc2VydF90cnVlOiBUaGUgcHJvdG90eXBlIG9iamVjdCBtdXN0IGhh
dmUgYSBwcm9wZXJ0eSAibmF2aWdhdGlvblByZWxvYWQiIGV4cGVjdGVkIHRydWUgZ290IGZhbHNl
CiBQQVNTIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgc2Nv
cGUgCiBQQVNTIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUg
dXBkYXRlVmlhQ2FjaGUgCiBQQVNTIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24gaW50ZXJmYWNl
OiBvcGVyYXRpb24gdXBkYXRlKCkgCkBAIC0zMywxMSArMzUsMjIgQEAgUEFTUyBTdHJpbmdpZmlj
YXRpb24gb2Ygc2VsZi5yZWdpc3RyYXRpb24KIFBBU1MgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlv
biBpbnRlcmZhY2U6IHNlbGYucmVnaXN0cmF0aW9uIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiaW5z
dGFsbGluZyIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCiBQQVNTIFNlcnZpY2VXb3JrZXJSZWdpc3Ry
YXRpb24gaW50ZXJmYWNlOiBzZWxmLnJlZ2lzdHJhdGlvbiBtdXN0IGluaGVyaXQgcHJvcGVydHkg
IndhaXRpbmciIHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBTZXJ2aWNlV29ya2VyUmVnaXN0
cmF0aW9uIGludGVyZmFjZTogc2VsZi5yZWdpc3RyYXRpb24gbXVzdCBpbmhlcml0IHByb3BlcnR5
ICJhY3RpdmUiIHdpdGggdGhlIHByb3BlciB0eXBlIAorRkFJTCBTZXJ2aWNlV29ya2VyUmVnaXN0
cmF0aW9uIGludGVyZmFjZTogc2VsZi5yZWdpc3RyYXRpb24gbXVzdCBpbmhlcml0IHByb3BlcnR5
ICJuYXZpZ2F0aW9uUHJlbG9hZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2luaGVyaXRz
OiBwcm9wZXJ0eSAibmF2aWdhdGlvblByZWxvYWQiIG5vdCBmb3VuZCBpbiBwcm90b3R5cGUgY2hh
aW4KIFBBU1MgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbiBpbnRlcmZhY2U6IHNlbGYucmVnaXN0
cmF0aW9uIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAic2NvcGUiIHdpdGggdGhlIHByb3BlciB0eXBl
IAogUEFTUyBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uIGludGVyZmFjZTogc2VsZi5yZWdpc3Ry
YXRpb24gbXVzdCBpbmhlcml0IHByb3BlcnR5ICJ1cGRhdGVWaWFDYWNoZSIgd2l0aCB0aGUgcHJv
cGVyIHR5cGUgCiBQQVNTIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24gaW50ZXJmYWNlOiBzZWxm
LnJlZ2lzdHJhdGlvbiBtdXN0IGluaGVyaXQgcHJvcGVydHkgInVwZGF0ZSgpIiB3aXRoIHRoZSBw
cm9wZXIgdHlwZSAKIFBBU1MgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbiBpbnRlcmZhY2U6IHNl
bGYucmVnaXN0cmF0aW9uIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAidW5yZWdpc3RlcigpIiB3aXRo
IHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbiBpbnRlcmZh
Y2U6IHNlbGYucmVnaXN0cmF0aW9uIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAib251cGRhdGVmb3Vu
ZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitGQUlMIE5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciBp
bnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IGFz
c2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIk5hdmln
YXRpb25QcmVsb2FkTWFuYWdlciIgZXhwZWN0ZWQgcHJvcGVydHkgIk5hdmlnYXRpb25QcmVsb2Fk
TWFuYWdlciIgbWlzc2luZworRkFJTCBOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIgaW50ZXJmYWNl
IG9iamVjdCBsZW5ndGggYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93
biBwcm9wZXJ0eSAiTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIiBleHBlY3RlZCBwcm9wZXJ0eSAi
TmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIiBtaXNzaW5nCitGQUlMIE5hdmlnYXRpb25QcmVsb2Fk
TWFuYWdlciBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBk
b2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIiBleHBl
Y3RlZCBwcm9wZXJ0eSAiTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIiBtaXNzaW5nCitGQUlMIE5h
dmlnYXRpb25QcmVsb2FkTWFuYWdlciBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGll
cyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxm
IGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIiIGV4
cGVjdGVkIHByb3BlcnR5ICJOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIiIG1pc3NpbmcKK0ZBSUwg
TmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0
aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgImNvbnN0cnVjdG9yIiBwcm9wZXJ0
eSBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJO
YXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIiIGV4cGVjdGVkIHByb3BlcnR5ICJOYXZpZ2F0aW9uUHJl
bG9hZE1hbmFnZXIiIG1pc3NpbmcKK0ZBSUwgTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIGludGVy
ZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2Jq
ZWN0J3MgQEB1bnNjb3BhYmxlcyBwcm9wZXJ0eSBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRv
ZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIiIGV4cGVj
dGVkIHByb3BlcnR5ICJOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIiIG1pc3NpbmcKK0ZBSUwgTmF2
aWdhdGlvblByZWxvYWRNYW5hZ2VyIGludGVyZmFjZTogb3BlcmF0aW9uIGVuYWJsZSgpIGFzc2Vy
dF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIk5hdmlnYXRp
b25QcmVsb2FkTWFuYWdlciIgZXhwZWN0ZWQgcHJvcGVydHkgIk5hdmlnYXRpb25QcmVsb2FkTWFu
YWdlciIgbWlzc2luZworRkFJTCBOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIgaW50ZXJmYWNlOiBv
cGVyYXRpb24gZGlzYWJsZSgpIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2
ZSBvd24gcHJvcGVydHkgIk5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciIgZXhwZWN0ZWQgcHJvcGVy
dHkgIk5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciIgbWlzc2luZworRkFJTCBOYXZpZ2F0aW9uUHJl
bG9hZE1hbmFnZXIgaW50ZXJmYWNlOiBvcGVyYXRpb24gc2V0SGVhZGVyVmFsdWUoQnl0ZVN0cmlu
ZykgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAi
TmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIiBleHBlY3RlZCBwcm9wZXJ0eSAiTmF2aWdhdGlvblBy
ZWxvYWRNYW5hZ2VyIiBtaXNzaW5nCitGQUlMIE5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciBpbnRl
cmZhY2U6IG9wZXJhdGlvbiBnZXRTdGF0ZSgpIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9l
cyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIk5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciIgZXhwZWN0
ZWQgcHJvcGVydHkgIk5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciIgbWlzc2luZwogUEFTUyBTZXJ2
aWNlV29ya2VyR2xvYmFsU2NvcGUgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMg
b2YgaW50ZXJmYWNlIG9iamVjdCAKIFBBU1MgU2VydmljZVdvcmtlckdsb2JhbFNjb3BlIGludGVy
ZmFjZSBvYmplY3QgbGVuZ3RoIAogUEFTUyBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUgaW50ZXJm
YWNlIG9iamVjdCBuYW1lIApAQCAtNTIsNiArNjUsNyBAQCBQQVNTIFNlcnZpY2VXb3JrZXJHbG9i
YWxTY29wZSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ug
cAogUEFTUyBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5k
IHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyBAQHVuc2NvcGFibGVz
IHByb3BlcnR5IAogUEFTUyBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUgaW50ZXJmYWNlOiBhdHRy
aWJ1dGUgY2xpZW50cyAKIFBBU1MgU2VydmljZVdvcmtlckdsb2JhbFNjb3BlIGludGVyZmFjZTog
YXR0cmlidXRlIHJlZ2lzdHJhdGlvbiAKK0ZBSUwgU2VydmljZVdvcmtlckdsb2JhbFNjb3BlIGlu
dGVyZmFjZTogYXR0cmlidXRlIHNlcnZpY2VXb3JrZXIgYXNzZXJ0X293bl9wcm9wZXJ0eTogVGhl
IGdsb2JhbCBvYmplY3QgbXVzdCBoYXZlIGEgcHJvcGVydHkgInNlcnZpY2VXb3JrZXIiIGV4cGVj
dGVkIHByb3BlcnR5ICJzZXJ2aWNlV29ya2VyIiBtaXNzaW5nCiBQQVNTIFNlcnZpY2VXb3JrZXJH
bG9iYWxTY29wZSBpbnRlcmZhY2U6IG9wZXJhdGlvbiBza2lwV2FpdGluZygpIAogUEFTUyBTZXJ2
aWNlV29ya2VyR2xvYmFsU2NvcGUgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgb25pbnN0YWxsIAogUEFT
UyBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgb25hY3RpdmF0
ZSAKQEAgLTY4LDYgKzgyLDcgQEAgUEFTUyBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUgbXVzdCBi
ZSBwcmltYXJ5IGludGVyZmFjZSBvZiBzZWxmCiBQQVNTIFN0cmluZ2lmaWNhdGlvbiBvZiBzZWxm
IAogUEFTUyBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUgaW50ZXJmYWNlOiBzZWxmIG11c3QgaW5o
ZXJpdCBwcm9wZXJ0eSAiY2xpZW50cyIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCiBQQVNTIFNlcnZp
Y2VXb3JrZXJHbG9iYWxTY29wZSBpbnRlcmZhY2U6IHNlbGYgbXVzdCBpbmhlcml0IHByb3BlcnR5
ICJyZWdpc3RyYXRpb24iIHdpdGggdGhlIHByb3BlciB0eXBlIAorRkFJTCBTZXJ2aWNlV29ya2Vy
R2xvYmFsU2NvcGUgaW50ZXJmYWNlOiBzZWxmIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAic2Vydmlj
ZVdvcmtlciIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X293bl9wcm9wZXJ0eTogZXhwZWN0
ZWQgcHJvcGVydHkgInNlcnZpY2VXb3JrZXIiIG1pc3NpbmcKIFBBU1MgU2VydmljZVdvcmtlckds
b2JhbFNjb3BlIGludGVyZmFjZTogc2VsZiBtdXN0IGluaGVyaXQgcHJvcGVydHkgInNraXBXYWl0
aW5nKCkiIHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBTZXJ2aWNlV29ya2VyR2xvYmFsU2Nv
cGUgaW50ZXJmYWNlOiBzZWxmIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAib25pbnN0YWxsIiB3aXRo
IHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgU2VydmljZVdvcmtlckdsb2JhbFNjb3BlIGludGVyZmFj
ZTogc2VsZiBtdXN0IGluaGVyaXQgcHJvcGVydHkgIm9uYWN0aXZhdGUiIHdpdGggdGhlIHByb3Bl
ciB0eXBlIApAQCAtODUsNiArMTAwLDcgQEAgUEFTUyBDbGllbnQgaW50ZXJmYWNlOiBhdHRyaWJ1
dGUgZnJhbWVUeXBlCiBQQVNTIENsaWVudCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBpZCAKIFBBU1Mg
Q2xpZW50IGludGVyZmFjZTogYXR0cmlidXRlIHR5cGUgCiBQQVNTIENsaWVudCBpbnRlcmZhY2U6
IG9wZXJhdGlvbiBwb3N0TWVzc2FnZShhbnksIFtvYmplY3QgT2JqZWN0XSkgCitQQVNTIENsaWVu
dCBpbnRlcmZhY2U6IG9wZXJhdGlvbiBwb3N0TWVzc2FnZShhbnksIFBvc3RNZXNzYWdlT3B0aW9u
cykgCiBQQVNTIFdpbmRvd0NsaWVudCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGll
cyBvZiBpbnRlcmZhY2Ugb2JqZWN0IAogUEFTUyBXaW5kb3dDbGllbnQgaW50ZXJmYWNlIG9iamVj
dCBsZW5ndGggCiBQQVNTIFdpbmRvd0NsaWVudCBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUgCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9pbnRlcmZhY2VzLXN3Lmh0dHBzLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9pbnRlcmZhY2VzLXN3Lmh0dHBzLmh0bWwKaW5kZXggNTBjNzZkMzA2ZGMy
ZjQzZWFjMGY0ZDgyN2U5YjcyNDY0YjYzMjIwYy4uN2JmZjZhYzEwN2UzZGUwYWUxMjA3ZjQ3N2I5
Zjk0MGFkNDA0Y2QyMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvaW50ZXJmYWNlcy1z
dy5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ludGVyZmFjZXMtc3cuaHR0cHMu
aHRtbApAQCAtNiw2ICs2LDggQEAKIDxzY3JpcHQ+CiAndXNlIHN0cmljdCc7CiAKKy8vIE5PVEU6
IGFmZmVjdGVkIHdoZW4gJ3Jlc291cmNlcy9pbnRlcmZhY2VzLXdvcmtlci5zdWIuanMnIHNyY3Mg
Y2hhbmdlOgorLy8gY29uc3Qgc3JjcyA9IFsnZG9tJywgJ2h0bWwnLCAnc2VydmljZS13b3JrZXJz
J107CiBzZXJ2aWNlX3dvcmtlcl90ZXN0KAogICAncmVzb3VyY2VzL2ludGVyZmFjZXMtd29ya2Vy
LnN1Yi5qcycsCiAgICdJbnRlcmZhY2VzIGFuZCBhdHRyaWJ1dGVzIGluIFNlcnZpY2VXb3JrZXJH
bG9iYWxTY29wZScpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvaW50ZXJmYWNlcy13
aW5kb3cuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvaW50ZXJmYWNlcy13
aW5kb3cuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IDAwYTIyOGMxMTE5NGM3ODhjMDMzMDFkMGRi
YjRkNTg4MTA0OGViZGEuLjhmMTg5OTk0NDE0ZDBjNjExZDc2N2RlMjk2ZTNlMmE0NzYwMDEwMTIg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ludGVyZmFjZXMtd2luZG93Lmh0dHBzLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9pbnRlcmZhY2VzLXdpbmRvdy5odHRw
cy1leHBlY3RlZC50eHQKQEAgLTExLDYgKzExLDcgQEAgUEFTUyBTZXJ2aWNlV29ya2VyIGludGVy
ZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2IK
IFBBU1MgU2VydmljZVdvcmtlciBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBzY3JpcHRVUkwgCiBQQVNT
IFNlcnZpY2VXb3JrZXIgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgc3RhdGUgCiBQQVNTIFNlcnZpY2VX
b3JrZXIgaW50ZXJmYWNlOiBvcGVyYXRpb24gcG9zdE1lc3NhZ2UoYW55LCBbb2JqZWN0IE9iamVj
dF0pIAorUEFTUyBTZXJ2aWNlV29ya2VyIGludGVyZmFjZTogb3BlcmF0aW9uIHBvc3RNZXNzYWdl
KGFueSwgUG9zdE1lc3NhZ2VPcHRpb25zKSAKIFBBU1MgU2VydmljZVdvcmtlciBpbnRlcmZhY2U6
IGF0dHJpYnV0ZSBvbnN0YXRlY2hhbmdlIAogUEFTUyBTZXJ2aWNlV29ya2VyIG11c3QgYmUgcHJp
bWFyeSBpbnRlcmZhY2Ugb2Ygd2luZG93LnJlZ2lzdHJhdGlvbkluc3RhbmNlLmluc3RhbGxpbmcg
CiBQQVNTIFN0cmluZ2lmaWNhdGlvbiBvZiB3aW5kb3cucmVnaXN0cmF0aW9uSW5zdGFuY2UuaW5z
dGFsbGluZyAKQEAgLTE4LDYgKzE5LDggQEAgUEFTUyBTZXJ2aWNlV29ya2VyIGludGVyZmFjZTog
d2luZG93LnJlZ2lzdHJhdGlvbkluc3RhbmNlLmluc3RhbGxpbmcgbXVzdCBpbmhlcmkKIFBBU1Mg
U2VydmljZVdvcmtlciBpbnRlcmZhY2U6IHdpbmRvdy5yZWdpc3RyYXRpb25JbnN0YW5jZS5pbnN0
YWxsaW5nIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAic3RhdGUiIHdpdGggdGhlIHByb3BlciB0eXBl
IAogUEFTUyBTZXJ2aWNlV29ya2VyIGludGVyZmFjZTogd2luZG93LnJlZ2lzdHJhdGlvbkluc3Rh
bmNlLmluc3RhbGxpbmcgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJwb3N0TWVzc2FnZShhbnksIFtv
YmplY3QgT2JqZWN0XSkiIHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBTZXJ2aWNlV29ya2Vy
IGludGVyZmFjZTogY2FsbGluZyBwb3N0TWVzc2FnZShhbnksIFtvYmplY3QgT2JqZWN0XSkgb24g
d2luZG93LnJlZ2lzdHJhdGlvbkluc3RhbmNlLmluc3RhbGxpbmcgd2l0aCB0b28gZmV3IGFyZ3Vt
ZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKK1BBU1MgU2VydmljZVdvcmtlciBpbnRlcmZhY2U6
IHdpbmRvdy5yZWdpc3RyYXRpb25JbnN0YW5jZS5pbnN0YWxsaW5nIG11c3QgaW5oZXJpdCBwcm9w
ZXJ0eSAicG9zdE1lc3NhZ2UoYW55LCBQb3N0TWVzc2FnZU9wdGlvbnMpIiB3aXRoIHRoZSBwcm9w
ZXIgdHlwZSAKK1BBU1MgU2VydmljZVdvcmtlciBpbnRlcmZhY2U6IGNhbGxpbmcgcG9zdE1lc3Nh
Z2UoYW55LCBQb3N0TWVzc2FnZU9wdGlvbnMpIG9uIHdpbmRvdy5yZWdpc3RyYXRpb25JbnN0YW5j
ZS5pbnN0YWxsaW5nIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3Ig
CiBQQVNTIFNlcnZpY2VXb3JrZXIgaW50ZXJmYWNlOiB3aW5kb3cucmVnaXN0cmF0aW9uSW5zdGFu
Y2UuaW5zdGFsbGluZyBtdXN0IGluaGVyaXQgcHJvcGVydHkgIm9uc3RhdGVjaGFuZ2UiIHdpdGgg
dGhlIHByb3BlciB0eXBlIAogUEFTUyBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uIGludGVyZmFj
ZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgCiBQQVNTIFNl
cnZpY2VXb3JrZXJSZWdpc3RyYXRpb24gaW50ZXJmYWNlIG9iamVjdCBsZW5ndGggCkBAIC0yOCw2
ICszMSw3IEBAIFBBU1MgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbiBpbnRlcmZhY2U6IGV4aXN0
ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UKIFBBU1MgU2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBpbnN0YWxsaW5nIAogUEFTUyBTZXJ2aWNlV29y
a2VyUmVnaXN0cmF0aW9uIGludGVyZmFjZTogYXR0cmlidXRlIHdhaXRpbmcgCiBQQVNTIFNlcnZp
Y2VXb3JrZXJSZWdpc3RyYXRpb24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgYWN0aXZlIAorRkFJTCBT
ZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uIGludGVyZmFjZTogYXR0cmlidXRlIG5hdmlnYXRpb25Q
cmVsb2FkIGFzc2VydF90cnVlOiBUaGUgcHJvdG90eXBlIG9iamVjdCBtdXN0IGhhdmUgYSBwcm9w
ZXJ0eSAibmF2aWdhdGlvblByZWxvYWQiIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCiBQQVNTIFNl
cnZpY2VXb3JrZXJSZWdpc3RyYXRpb24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgc2NvcGUgCiBQQVNT
IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgdXBkYXRlVmlh
Q2FjaGUgCiBQQVNTIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24gaW50ZXJmYWNlOiBvcGVyYXRp
b24gdXBkYXRlKCkgCkBAIC0zOCwxMSArNDIsMjIgQEAgUEFTUyBTdHJpbmdpZmljYXRpb24gb2Yg
d2luZG93LnJlZ2lzdHJhdGlvbkluc3RhbmNlCiBQQVNTIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRp
b24gaW50ZXJmYWNlOiB3aW5kb3cucmVnaXN0cmF0aW9uSW5zdGFuY2UgbXVzdCBpbmhlcml0IHBy
b3BlcnR5ICJpbnN0YWxsaW5nIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgU2VydmljZVdv
cmtlclJlZ2lzdHJhdGlvbiBpbnRlcmZhY2U6IHdpbmRvdy5yZWdpc3RyYXRpb25JbnN0YW5jZSBt
dXN0IGluaGVyaXQgcHJvcGVydHkgIndhaXRpbmciIHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFT
UyBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uIGludGVyZmFjZTogd2luZG93LnJlZ2lzdHJhdGlv
bkluc3RhbmNlIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiYWN0aXZlIiB3aXRoIHRoZSBwcm9wZXIg
dHlwZSAKK0ZBSUwgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbiBpbnRlcmZhY2U6IHdpbmRvdy5y
ZWdpc3RyYXRpb25JbnN0YW5jZSBtdXN0IGluaGVyaXQgcHJvcGVydHkgIm5hdmlnYXRpb25QcmVs
b2FkIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBhc3NlcnRfaW5oZXJpdHM6IHByb3BlcnR5ICJuYXZp
Z2F0aW9uUHJlbG9hZCIgbm90IGZvdW5kIGluIHByb3RvdHlwZSBjaGFpbgogUEFTUyBTZXJ2aWNl
V29ya2VyUmVnaXN0cmF0aW9uIGludGVyZmFjZTogd2luZG93LnJlZ2lzdHJhdGlvbkluc3RhbmNl
IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAic2NvcGUiIHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFT
UyBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uIGludGVyZmFjZTogd2luZG93LnJlZ2lzdHJhdGlv
bkluc3RhbmNlIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAidXBkYXRlVmlhQ2FjaGUiIHdpdGggdGhl
IHByb3BlciB0eXBlIAogUEFTUyBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uIGludGVyZmFjZTog
d2luZG93LnJlZ2lzdHJhdGlvbkluc3RhbmNlIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAidXBkYXRl
KCkiIHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9u
IGludGVyZmFjZTogd2luZG93LnJlZ2lzdHJhdGlvbkluc3RhbmNlIG11c3QgaW5oZXJpdCBwcm9w
ZXJ0eSAidW5yZWdpc3RlcigpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgU2VydmljZVdv
cmtlclJlZ2lzdHJhdGlvbiBpbnRlcmZhY2U6IHdpbmRvdy5yZWdpc3RyYXRpb25JbnN0YW5jZSBt
dXN0IGluaGVyaXQgcHJvcGVydHkgIm9udXBkYXRlZm91bmQiIHdpdGggdGhlIHByb3BlciB0eXBl
IAorRkFJTCBOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5k
IHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxm
IGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIiIGV4
cGVjdGVkIHByb3BlcnR5ICJOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIiIG1pc3NpbmcKK0ZBSUwg
TmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIGludGVyZmFjZSBvYmplY3QgbGVuZ3RoIGFzc2VydF9v
d25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIk5hdmlnYXRpb25Q
cmVsb2FkTWFuYWdlciIgZXhwZWN0ZWQgcHJvcGVydHkgIk5hdmlnYXRpb25QcmVsb2FkTWFuYWdl
ciIgbWlzc2luZworRkFJTCBOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIgaW50ZXJmYWNlIG9iamVj
dCBuYW1lIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVy
dHkgIk5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciIgZXhwZWN0ZWQgcHJvcGVydHkgIk5hdmlnYXRp
b25QcmVsb2FkTWFuYWdlciIgbWlzc2luZworRkFJTCBOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIg
aW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlw
ZSBvYmplY3QgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9w
ZXJ0eSAiTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIiBleHBlY3RlZCBwcm9wZXJ0eSAiTmF2aWdh
dGlvblByZWxvYWRNYW5hZ2VyIiBtaXNzaW5nCitGQUlMIE5hdmlnYXRpb25QcmVsb2FkTWFuYWdl
ciBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90
eXBlIG9iamVjdCdzICJjb25zdHJ1Y3RvciIgcHJvcGVydHkgYXNzZXJ0X293bl9wcm9wZXJ0eTog
c2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiTmF2aWdhdGlvblByZWxvYWRNYW5hZ2Vy
IiBleHBlY3RlZCBwcm9wZXJ0eSAiTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIiBtaXNzaW5nCitG
QUlMIE5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJv
cGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzIEBAdW5zY29wYWJsZXMgcHJv
cGVydHkgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0
eSAiTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIiBleHBlY3RlZCBwcm9wZXJ0eSAiTmF2aWdhdGlv
blByZWxvYWRNYW5hZ2VyIiBtaXNzaW5nCitGQUlMIE5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciBp
bnRlcmZhY2U6IG9wZXJhdGlvbiBlbmFibGUoKSBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRv
ZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIiIGV4cGVj
dGVkIHByb3BlcnR5ICJOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIiIG1pc3NpbmcKK0ZBSUwgTmF2
aWdhdGlvblByZWxvYWRNYW5hZ2VyIGludGVyZmFjZTogb3BlcmF0aW9uIGRpc2FibGUoKSBhc3Nl
cnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJOYXZpZ2F0
aW9uUHJlbG9hZE1hbmFnZXIiIGV4cGVjdGVkIHByb3BlcnR5ICJOYXZpZ2F0aW9uUHJlbG9hZE1h
bmFnZXIiIG1pc3NpbmcKK0ZBSUwgTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIGludGVyZmFjZTog
b3BlcmF0aW9uIHNldEhlYWRlclZhbHVlKEJ5dGVTdHJpbmcpIGFzc2VydF9vd25fcHJvcGVydHk6
IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIk5hdmlnYXRpb25QcmVsb2FkTWFuYWdl
ciIgZXhwZWN0ZWQgcHJvcGVydHkgIk5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciIgbWlzc2luZwor
RkFJTCBOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIgaW50ZXJmYWNlOiBvcGVyYXRpb24gZ2V0U3Rh
dGUoKSBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5
ICJOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIiIGV4cGVjdGVkIHByb3BlcnR5ICJOYXZpZ2F0aW9u
UHJlbG9hZE1hbmFnZXIiIG1pc3NpbmcKIFBBU1MgU2VydmljZVdvcmtlckdsb2JhbFNjb3BlIGlu
dGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgCiBQ
QVNTIENsaWVudCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZh
Y2Ugb2JqZWN0IAogUEFTUyBXaW5kb3dDbGllbnQgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHBy
b3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL2ludGVyZmFjZXMtd2luZG93Lmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9pbnRl
cmZhY2VzLXdpbmRvdy5odHRwcy5odG1sCmluZGV4IGY3MGNmNDA5MzFkYjg4MzUwYzVmYjBmNWVi
YjFmYmQxMGY5MTdkYmEuLmNjM2JkYWYxMWZjN2JjMTc0ZWVmNTU1YTYwMjYzZTE5MmVmZGM1Mzkg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ludGVyZmFjZXMtd2luZG93Lmh0dHBzLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvaW50ZXJmYWNlcy13aW5kb3cuaHR0cHMuaHRtbApA
QCAtMTAsOCArMTAsOCBAQAogJ3VzZSBzdHJpY3QnOwogCiBwcm9taXNlX3Rlc3QoYXN5bmMgKHQp
ID0+IHsKLSAgY29uc3Qgc3JjcyA9IFsnZG9tJywgJ2h0bWwnLCAnc2VydmljZS13b3JrZXJzJywg
J2RlZGljYXRlZC13b3JrZXJzJ107Ci0gIGNvbnN0IFtkb20sIGh0bWwsIHNlcnZpY2VXb3JrZXJJ
ZGwsIGRlZGljYXRlZF0gPSBhd2FpdCBQcm9taXNlLmFsbCgKKyAgY29uc3Qgc3JjcyA9IFsnZG9t
JywgJ2h0bWwnLCAnc2VydmljZS13b3JrZXJzJ107CisgIGNvbnN0IFtkb20sIGh0bWwsIHNlcnZp
Y2VXb3JrZXJJZGxdID0gYXdhaXQgUHJvbWlzZS5hbGwoCiAgICAgc3Jjcy5tYXAoaSA9PiBmZXRj
aChgL2ludGVyZmFjZXMvJHtpfS5pZGxgKS50aGVuKHIgPT4gci50ZXh0KCkpKSk7CiAKICAgdmFy
IGlkbEFycmF5ID0gbmV3IElkbEFycmF5KCk7CkBAIC0yOSw3ICsyOSw2IEBAIHByb21pc2VfdGVz
dChhc3luYyAodCkgPT4gewogICAgICdDYWNoZScsCiAgICAgJ0NhY2hlU3RvcmFnZScsCiAgIF19
KTsKLSAgaWRsQXJyYXkuYWRkX2RlcGVuZGVuY3lfaWRscyhkZWRpY2F0ZWQpOwogICBpZGxBcnJh
eS5hZGRfZGVwZW5kZW5jeV9pZGxzKGRvbSk7CiAgIGlkbEFycmF5LmFkZF9kZXBlbmRlbmN5X2lk
bHMoaHRtbCk7CiAgIGlkbEFycmF5LmFkZF9vYmplY3RzKHsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL3Jlc291cmNlcy9jbGllbnRzLWZyYW1lLWZyZWV6ZS5odG1sIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvcmVzb3VyY2VzL2NsaWVudHMtZnJhbWUtZnJlZXplLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NzQ2OGE2NjBlOTA4NTg2NmU4ZDM4ZmYzNWYwMmNmNmE1MDg2ODIzMgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9jbGllbnRzLWZyYW1lLWZyZWV6ZS5odG1s
CkBAIC0wLDAgKzEsMTUgQEAKKzwhRE9DVFlQRSBodG1sPgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJj
ZXMvdGVzdGRyaXZlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0
ZHJpdmVyLXZlbmRvci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorICBkb2N1bWVudC5hZGRFdmVu
dExpc3RlbmVyKCdmcmVlemUnLCAoKSA9PiB7CisgICAgICBvcGVuZXIucG9zdE1lc3NhZ2UoJ2Zy
b3plbicsICIqIik7CisgIH0pOworCisgIHdpbmRvdy5vbm1lc3NhZ2UgPSAoZSkgPT4geworICAg
IGlmIChlLmRhdGEgPT0gJ2ZyZWV6ZScpIHsKKyAgICAgIHRlc3RfZHJpdmVyLmZyZWV6ZSgpOwor
ICAgIH0KKyAgfTsKKyAgb3BlbmVyLnBvc3RNZXNzYWdlKCdsb2FkZWQnLCAnKicpOworPC9zY3Jp
cHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvY2xpZW50cy1tYXRj
aGFsbC13b3JrZXIuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvY2xpZW50cy1tYXRj
aGFsbC13b3JrZXIuanMKaW5kZXggZDY2MzRmNGQ0MGVmNmFkYTM0NDBiNDQzZmFmZjE3NmU1NDA4
MmE3MS4uMTNlMTExYTJmOTE0NjRiZjE3ZmE4YzYwZmI2ZjYwNzE0NDNhNDc0ZiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2NsaWVudHMtbWF0Y2hhbGwtd29ya2VyLmpz
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9jbGllbnRzLW1hdGNoYWxsLXdvcmtl
ci5qcwpAQCAtMTMsMTEgKzEzLDIwIEBAIHNlbGYub25tZXNzYWdlID0gZnVuY3Rpb24oZSkgewog
ICAgICAgICAgICAgICAvLyBJbiB0aGF0IGNhc2UsIGp1c3QgcHJldGVuZCBpdCdzIHRvcC1sZXZl
bCEKICAgICAgICAgICAgICAgZnJhbWVfdHlwZSA9ICd0b3AtbGV2ZWwnOwogICAgICAgICAgICAg
fQotICAgICAgICAgICAgbWVzc2FnZS5wdXNoKFtjbGllbnQudmlzaWJpbGl0eVN0YXRlLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICBjbGllbnQuZm9jdXNlZCwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgY2xpZW50LnVybCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgY2xpZW50LnR5
cGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGZyYW1lX3R5cGVdKTsKKyAgICAgICAgICAg
IGlmIChlLmRhdGEuaW5jbHVkZUxpZmVjeWNsZVN0YXRlKSB7CisgICAgICAgICAgICAgIG1lc3Nh
Z2UucHVzaCh7dmlzaWJpbGl0eVN0YXRlOiBjbGllbnQudmlzaWJpbGl0eVN0YXRlLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGZvY3VzZWQ6IGNsaWVudC5mb2N1c2VkLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHVybDogY2xpZW50LnVybCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBsaWZlY3ljbGVTdGF0ZTogY2xpZW50LmxpZmVjeWNsZVN0YXRlLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHR5cGU6IGNsaWVudC50eXBlLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGZyYW1lVHlwZTogZnJhbWVfdHlwZX0pOworICAgICAgICAgICAgfSBlbHNlIHsK
KyAgICAgICAgICAgICAgbWVzc2FnZS5wdXNoKFtjbGllbnQudmlzaWJpbGl0eVN0YXRlLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNsaWVudC5mb2N1c2VkLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNsaWVudC51cmwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xp
ZW50LnR5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJhbWVfdHlwZV0pOworICAg
ICAgICAgICAgfQogICAgICAgICAgIH0pOwogICAgICAgICAvLyBTb3J0IGJ5IHVybAogICAgICAg
ICBpZiAoIWUuZGF0YS5kaXNhYmxlU29ydCkgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvcmVzb3VyY2VzL2R1bW15LXNoYXJlZC13b3JrZXItaW50ZXJjZXB0b3IuanMgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9yZXNvdXJjZXMvZHVtbXktc2hhcmVkLXdvcmtlci1pbnRlcmNlcHRvci5qcwpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTk5NmRhNmIyYjdmNDkxODIwZGRhYjE2OGU5
ZDJmMmQ2ZjZjZWEzNS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZHVtbXktc2hhcmVkLXdvcmtlci1pbnRl
cmNlcHRvci5qcworKysgL2Rldi9udWxsCkBAIC0xLDkgKzAsMCBAQAotdmFyIHdvcmtlcl90ZXh0
ID0gJ29uY29ubmVjdCA9IGZ1bmN0aW9uKGUpIHsgZS5wb3J0c1swXS5wb3N0TWVzc2FnZSgid29y
a2VyIGxvYWRpbmcgaW50ZXJjZXB0ZWQgYnkgc2VydmljZSB3b3JrZXIiKTsgfTsnOwotCi1zZWxm
Lm9uZmV0Y2ggPSBmdW5jdGlvbihldmVudCkgewotICBpZiAoZXZlbnQucmVxdWVzdC51cmwuaW5k
ZXhPZignZHVtbXktc2hhcmVkLXdvcmtlci5qcycpICE9IC0xKSB7Ci0gICAgZXZlbnQucmVzcG9u
ZFdpdGgobmV3IFJlc3BvbnNlKAotICAgICAgICB3b3JrZXJfdGV4dCwge2hlYWRlcnM6IHsiQ29u
dGVudC1UeXBlIjogImFwcGxpY2F0aW9uL2phdmFzY3JpcHQifX0pKTsKLSAgfQotfTsKLQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2R1bW15LXNoYXJlZC13b3JrZXIt
aW50ZXJjZXB0b3IuanMuaGVhZGVycyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9kdW1t
eS1zaGFyZWQtd29ya2VyLWludGVyY2VwdG9yLmpzLmhlYWRlcnMKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGExN2E5YTNhMTJjZWZlODgzYTVkNGRlZTRkNWE0NWJlZjEyMGQwNTAuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvcmVzb3VyY2VzL2R1bW15LXNoYXJlZC13b3JrZXItaW50ZXJjZXB0b3IuanMuaGVhZGVy
cworKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLUNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24v
amF2YXNjcmlwdApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2R1bW15
LXdvcmtlci1pbnRlcmNlcHRvci5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9kdW1t
eS13b3JrZXItaW50ZXJjZXB0b3IuanMKaW5kZXggYWJlYzVmZGQ1OGIyOGI3YjZhMWQwYmE0NTNl
NjdjY2UxYTRkNDk3My4uMWMzODFmZDE4MGUyYjNkM2I3YTExMzk0OTI2MDk2MTQxYjBhM2M3NiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2R1bW15LXdvcmtlci1pbnRl
cmNlcHRvci5qcworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZHVtbXktd29ya2Vy
LWludGVyY2VwdG9yLmpzCkBAIC0xLDIxICsxLDQ1IEBACiBpbXBvcnRTY3JpcHRzKCcvY29tbW9u
L2dldC1ob3N0LWluZm8uc3ViLmpzJyk7CiAKLXZhciB3b3JrZXJfdGV4dCA9ICdwb3N0TWVzc2Fn
ZSgid29ya2VyIGxvYWRpbmcgaW50ZXJjZXB0ZWQgYnkgc2VydmljZSB3b3JrZXIiKTsgJzsKK2Nv
bnN0IHRleHQgPSAnd29ya2VyIGxvYWRpbmcgaW50ZXJjZXB0ZWQgYnkgc2VydmljZSB3b3JrZXIn
OworY29uc3QgZGVkaWNhdGVkX3dvcmtlcl9zY3JpcHQgPSBgcG9zdE1lc3NhZ2UoJyR7dGV4dH0n
KTtgOworY29uc3Qgc2hhcmVkX3dvcmtlcl9zY3JpcHQgPQorICAgIGBvbmNvbm5lY3QgPSBldnQg
PT4gZXZ0LnBvcnRzWzBdLnBvc3RNZXNzYWdlKCcke3RleHR9Jyk7YDsKIAotc2VsZi5vbmZldGNo
ID0gZnVuY3Rpb24oZXZlbnQpIHsKLSAgaWYgKGV2ZW50LnJlcXVlc3QudXJsLmluZGV4T2YoJ3N5
bnRoZXNpemVkJykgIT0gLTEpIHsKLSAgICBldmVudC5yZXNwb25kV2l0aChuZXcgUmVzcG9uc2Uo
d29ya2VyX3RleHQpKTsKLSAgfSBlbHNlIGlmIChldmVudC5yZXF1ZXN0LnVybC5pbmRleE9mKCdz
YW1lLW9yaWdpbicpICE9IC0xKSB7Ci0gICAgZXZlbnQucmVzcG9uZFdpdGgoZmV0Y2goJ2R1bW15
LXdvcmtlci1zY3JpcHQucHknKSk7Ci0gIH0gZWxzZSBpZiAoZXZlbnQucmVxdWVzdC51cmwuaW5k
ZXhPZignY29ycycpICE9IC0xKSB7Ci0gICAgdmFyIHBhdGggPSAobmV3IFVSTCgnZHVtbXktd29y
a2VyLXNjcmlwdC5weScsIHNlbGYubG9jYXRpb24pKS5wYXRobmFtZTsKLSAgICB2YXIgdXJsID0g
Z2V0X2hvc3RfaW5mbygpWydIVFRQU19SRU1PVEVfT1JJR0lOJ10gKyBwYXRoOwotICAgIHZhciBt
b2RlID0gIm5vLWNvcnMiOwotICAgIGlmIChldmVudC5yZXF1ZXN0LnVybC5pbmRleE9mKCduby1j
b3JzJykgPT0gLTEpIHsKLSAgICAgIHVybCArPSAnP0FDQU9yaWdpbj0qJzsKLSAgICAgIG1vZGUg
PSAiY29ycyI7CitzZWxmLm9uZmV0Y2ggPSBldmVudCA9PiB7CisgIGNvbnN0IHVybCA9IGV2ZW50
LnJlcXVlc3QudXJsOworICBjb25zdCBkZXN0aW5hdGlvbiA9IGV2ZW50LnJlcXVlc3QuZGVzdGlu
YXRpb247CisKKyAgLy8gUmVxdWVzdCBoYW5kbGVyIGZvciBhIHN5bnRoZXNpemVkIHJlc3BvbnNl
LgorICBpZiAodXJsLmluZGV4T2YoJ3N5bnRoZXNpemVkJykgIT0gLTEpIHsKKyAgICBpZiAoZGVz
dGluYXRpb24gPT09ICd3b3JrZXInKQorICAgICAgZXZlbnQucmVzcG9uZFdpdGgobmV3IFJlc3Bv
bnNlKGRlZGljYXRlZF93b3JrZXJfc2NyaXB0KSk7CisgICAgZWxzZSBpZiAoZGVzdGluYXRpb24g
PT09ICdzaGFyZWR3b3JrZXInKQorICAgICAgZXZlbnQucmVzcG9uZFdpdGgobmV3IFJlc3BvbnNl
KHNoYXJlZF93b3JrZXJfc2NyaXB0KSk7CisgICAgZWxzZQorICAgICAgZXZlbnQucmVzcG9uZFdp
dGgobmV3IFJlc3BvbnNlKCdVbmV4cGVjdGVkIHJlcXVlc3QhICcgKyBkZXN0aW5hdGlvbikpOwor
ICAgIHJldHVybjsKKyAgfQorCisgIC8vIFJlcXVlc3QgaGFuZGxlciBmb3IgYSBzYW1lLW9yaWdp
biByZXNwb25zZS4KKyAgaWYgKHVybC5pbmRleE9mKCdzYW1lLW9yaWdpbicpICE9IC0xKSB7Cisg
ICAgZXZlbnQucmVzcG9uZFdpdGgoZmV0Y2goJ3Bvc3RtZXNzYWdlLW9uLWxvYWQtd29ya2VyLmpz
JykpOworICAgIHJldHVybjsKKyAgfQorCisgIC8vIFJlcXVlc3QgaGFuZGxlciBmb3IgYSBjcm9z
cy1vcmlnaW4gcmVzcG9uc2UuCisgIGlmICh1cmwuaW5kZXhPZignY29ycycpICE9IC0xKSB7Cisg
ICAgY29uc3QgZmlsZW5hbWUgPSAncG9zdG1lc3NhZ2Utb24tbG9hZC13b3JrZXIuanMnOworICAg
IGNvbnN0IHBhdGggPSAobmV3IFVSTChmaWxlbmFtZSwgc2VsZi5sb2NhdGlvbikpLnBhdGhuYW1l
OworICAgIGxldCBuZXdfdXJsID0gZ2V0X2hvc3RfaW5mbygpWydIVFRQU19SRU1PVEVfT1JJR0lO
J10gKyBwYXRoOworICAgIGxldCBtb2RlOworICAgIGlmICh1cmwuaW5kZXhPZignbm8tY29ycycp
ICE9IC0xKSB7CisgICAgICAvLyBUZXN0IG5vLWNvcnMgbW9kZS4KKyAgICAgIG1vZGUgPSAnbm8t
Y29ycyc7CisgICAgfSBlbHNlIHsKKyAgICAgIC8vIFRlc3QgY29ycyBtb2RlLgorICAgICAgbmV3
X3VybCArPSAnP3BpcGU9aGVhZGVyKEFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbiwqKSc7Cisg
ICAgICBtb2RlID0gJ2NvcnMnOwogICAgIH0KLSAgICBldmVudC5yZXNwb25kV2l0aChmZXRjaCh1
cmwsIHsgbW9kZTogbW9kZSB9KSk7CisgICAgZXZlbnQucmVzcG9uZFdpdGgoZmV0Y2gobmV3X3Vy
bCwgeyBtb2RlOiBtb2RlIH0pKTsKICAgfQogfTsKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvcmVzb3VyY2VzL2R1bW15LXdvcmtlci1zY3JpcHQucHkgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9yZXNvdXJjZXMvZHVtbXktd29ya2VyLXNjcmlwdC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggNmY0MGI1ZWQ2MDVhY2M0NmM1ZWQ5NjYzNDkzOGQzNjFkZGVlNmQ4Ni4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9yZXNvdXJjZXMvZHVtbXktd29ya2VyLXNjcmlwdC5weQorKysgL2Rldi9udWxsCkBAIC0xLDkg
KzAsMCBAQAotZGVmIG1haW4ocmVxdWVzdCwgcmVzcG9uc2UpOgotICAgIGhlYWRlcnMgPSBbXQot
Ci0gICAgaWYgIkFDQU9yaWdpbiIgaW4gcmVxdWVzdC5HRVQ6Ci0gICAgICAgIGZvciBpdGVtIGlu
IHJlcXVlc3QuR0VUWyJBQ0FPcmlnaW4iXS5zcGxpdCgiLCIpOgotICAgICAgICAgICAgaGVhZGVy
cy5hcHBlbmQoKCJBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4iLCBpdGVtKSkKLQotICAgIHJl
dHVybiBoZWFkZXJzLCAicG9zdE1lc3NhZ2UoJ2R1bW15LXdvcmtlci1zY3JpcHQgbG9hZGVkJyk7
IgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvaW1wb3J0LXNjcmlw
dHMtNDA0LWFmdGVyLXVwZGF0ZS1wbHVzLXVwZGF0ZS13b3JrZXIuanMgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9yZXNvdXJjZXMvaW1wb3J0LXNjcmlwdHMtNDA0LWFmdGVyLXVwZGF0ZS1wbHVzLXVwZGF0
ZS13b3JrZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTk4OTlkOGU3Mjc0ZWE4YjY1NjIzZTAxOTQxMTcwMGVj
NjVkYmM4NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9p
bXBvcnQtc2NyaXB0cy00MDQtYWZ0ZXItdXBkYXRlLXBsdXMtdXBkYXRlLXdvcmtlci5qcwpAQCAt
MCwwICsxLDggQEAKKy8vIFRoaXMgd29ya2VyIGltcG9ydHMgYSBzY3JpcHQgdGhhdCByZXR1cm5z
IDIwMCBvbiB0aGUgZmlyc3QgcmVxdWVzdCBhbmQgNDA0CisvLyBvbiB0aGUgc2Vjb25kIHJlcXVl
c3QsIGFuZCBhIHNjcmlwdCB0aGF0IGlzIHVwZGF0ZWQgZXZlcnkgdGltZSB3aGVuCisvLyByZXF1
ZXN0aW5nIGl0LgorY29uc3QgcGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyhsb2NhdGlvbi5z
ZWFyY2gpOworY29uc3Qga2V5ID0gcGFyYW1zLmdldCgnS2V5Jyk7Citjb25zdCBhZGRpdGlvbmFs
X2tleSA9IHBhcmFtcy5nZXQoJ0FkZGl0aW9uYWxLZXknKTsKK2ltcG9ydFNjcmlwdHMoYHVwZGF0
ZS13b3JrZXIucHk/S2V5PSR7a2V5fSZNb2RlPW5vdF9mb3VuZGAsCisgICAgICAgICAgICAgIGB1
cGRhdGUtd29ya2VyLnB5P0tleT0ke2FkZGl0aW9uYWxfa2V5fSZNb2RlPW5vcm1hbGApOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ltcG9ydC1zY3JpcHRzLTQwNC1h
ZnRlci11cGRhdGUuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvaW1wb3J0LXNjcmlw
dHMtNDA0LWFmdGVyLXVwZGF0ZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNTY5MzQ2MDM1YWMxMWM1NTdhMWUx
OWQ2YmY5YmE4YjkwNTk3NTM5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
cmVzb3VyY2VzL2ltcG9ydC1zY3JpcHRzLTQwNC1hZnRlci11cGRhdGUuanMKQEAgLTAsMCArMSw2
IEBACisvLyBUaGlzIHdvcmtlciBpbXBvcnRzIGEgc2NyaXB0IHRoYXQgcmV0dXJucyAyMDAgb24g
dGhlIGZpcnN0IHJlcXVlc3QgYW5kIDQwNAorLy8gb24gdGhlIHNlY29uZCByZXF1ZXN0LiBUaGUg
cmVzdWx0aW5nIGJvZHkgYWxzbyBjaGFuZ2VzIGVhY2ggdGltZSBpdCBpcworLy8gcmVxdWVzdGVk
LgorY29uc3QgcGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyhsb2NhdGlvbi5zZWFyY2gpOwor
Y29uc3Qga2V5ID0gcGFyYW1zLmdldCgnS2V5Jyk7CitpbXBvcnRTY3JpcHRzKGB1cGRhdGUtd29y
a2VyLnB5P0tleT0ke2tleX0mTW9kZT1ub3RfZm91bmRgKTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL3Jlc291cmNlcy9pbXBvcnQtc2NyaXB0cy00MDQuanMgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9yZXNvdXJjZXMvaW1wb3J0LXNjcmlwdHMtNDA0LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE5YzdhNGI4
ZTU2MWIzZDk1ZjEwNDk2ZTkyYTJjNzI2NGQ2OTM4MTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvaW1wb3J0LXNjcmlwdHMtNDA0LmpzCkBAIC0wLDAgKzEg
QEAKK2ltcG9ydFNjcmlwdHMoJzQwNC5weScpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvcmVzb3VyY2VzL2ltcG9ydC1zY3JpcHRzLXJlZGlyZWN0LW9uLXNlY29uZC10aW1lLXdvcmtl
ci5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9pbXBvcnQtc2NyaXB0cy1yZWRpcmVj
dC1vbi1zZWNvbmQtdGltZS13b3JrZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjYxMmFiOGU2YWE0MjcyMDgz
YWJmNTczOTc4ZDE5MzJkMThmNjUzNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3Jlc291cmNlcy9pbXBvcnQtc2NyaXB0cy1yZWRpcmVjdC1vbi1zZWNvbmQtdGltZS13b3Jr
ZXIuanMKQEAgLTAsMCArMSw3IEBACisvLyBUaGlzIHdvcmtlciBpbXBvcnRzIGEgc2NyaXB0IHRo
YXQgcmV0dXJucyAyMDAgb24gdGhlIGZpcnN0IHJlcXVlc3QgYW5kIGEKKy8vIHJlZGlyZWN0IG9u
IHRoZSBzZWNvbmQgcmVxdWVzdC4gVGhlIHJlc3VsdGluZyBib2R5IGFsc28gY2hhbmdlcyBlYWNo
IHRpbWUgaXQKKy8vIGlzIHJlcXVlc3RlZC4KK2NvbnN0IHBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQ
YXJhbXMobG9jYXRpb24uc2VhcmNoKTsKK2NvbnN0IGtleSA9IHBhcmFtcy5nZXQoJ0tleScpOwor
aW1wb3J0U2NyaXB0cyhgdXBkYXRlLXdvcmtlci5weT9LZXk9JHtrZXl9Jk1vZGU9cmVkaXJlY3Qm
YCArCisgICAgICAgICAgICAgIGBSZWRpcmVjdD11cGRhdGUtd29ya2VyLnB5P0tleT0ke2tleX0l
MjZNb2RlPW5vcm1hbGApOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2Vz
L2ludGVyZmFjZXMtd29ya2VyLnN1Yi5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9p
bnRlcmZhY2VzLXdvcmtlci5zdWIuanMKaW5kZXggNTZiYzhhZjQ0NWQ1ZTc5MDBiNDU3M2MzNWU2
ZDY4MGVmZjE2YzY3MS4uYWM3OWRkYzAwNTY4OGFmZmU5YWNjNjdiODNmNDNlZjMwNGY4MWM4MSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ludGVyZmFjZXMtd29ya2Vy
LnN1Yi5qcworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvaW50ZXJmYWNlcy13b3Jr
ZXIuc3ViLmpzCkBAIC01LDggKzUsOCBAQCBpbXBvcnRTY3JpcHRzKCcvcmVzb3VyY2VzL1dlYklE
TFBhcnNlci5qcycpOwogaW1wb3J0U2NyaXB0cygnL3Jlc291cmNlcy9pZGxoYXJuZXNzLmpzJyk7
CiAKIHByb21pc2VfdGVzdChhc3luYyAodCkgPT4gewotICBjb25zdCBzcmNzID0gWydkb20nLCAn
aHRtbCcsICdzZXJ2aWNlLXdvcmtlcnMnLCAnZGVkaWNhdGVkLXdvcmtlcnMnXTsKLSAgY29uc3Qg
W2RvbSwgaHRtbCwgc2VydmljZVdvcmtlcklkbCwgZGVkaWNhdGVkXSA9IGF3YWl0IFByb21pc2Uu
YWxsKAorICBjb25zdCBzcmNzID0gWydkb20nLCAnaHRtbCcsICdzZXJ2aWNlLXdvcmtlcnMnXTsK
KyAgY29uc3QgW2RvbSwgaHRtbCwgc2VydmljZVdvcmtlcklkbF0gPSBhd2FpdCBQcm9taXNlLmFs
bCgKICAgICBzcmNzLm1hcChpID0+IGZldGNoKGAvaW50ZXJmYWNlcy8ke2l9LmlkbGApLnRoZW4o
ciA9PiByLnRleHQoKSkpKTsKIAogICB2YXIgaWRsQXJyYXkgPSBuZXcgSWRsQXJyYXkoKTsKQEAg
LTI0LDcgKzI0LDYgQEAgcHJvbWlzZV90ZXN0KGFzeW5jICh0KSA9PiB7CiAgICAgJ0NhY2hlJywK
ICAgICAnQ2FjaGVTdG9yYWdlJywKICAgXX0pOwotICBpZGxBcnJheS5hZGRfZGVwZW5kZW5jeV9p
ZGxzKGRlZGljYXRlZCk7CiAgIGlkbEFycmF5LmFkZF9kZXBlbmRlbmN5X2lkbHMoZG9tKTsKICAg
aWRsQXJyYXkuYWRkX2RlcGVuZGVuY3lfaWRscyhodG1sKTsKICAgaWRsQXJyYXkuYWRkX29iamVj
dHMoewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2xvYWRfd29ya2Vy
LmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2xvYWRfd29ya2VyLmpzCmluZGV4IDJj
ODBmMjVhM2RiMjgzMWY0YjFlNTYzM2E0NTU0ODFkN2EzNWI0YzcuLjE4YzY3M2JlYmNhYjk4Mjc3
MDdkYTg1NWYzOGE3NTQ5YjY5NWRhN2YgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jl
c291cmNlcy9sb2FkX3dvcmtlci5qcworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMv
bG9hZF93b3JrZXIuanMKQEAgLTEsMjkgKzEsMjkgQEAKLXNlbGYub25tZXNzYWdlID0gZnVuY3Rp
b24gKGV2dCkgewotICAgIGlmIChldnQuZGF0YSA9PSAieGhyIikgewotICAgICAgICB2YXIgeGhy
ID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7Ci0gICAgICAgIHhoci5vcGVuKCJHRVQiLCAic3ludGhl
c2l6ZWQtcmVzcG9uc2UudHh0IiwgdHJ1ZSk7Ci0gICAgICAgIHhoci5yZXNwb25zZVR5cGUgPSAi
dGV4dCI7Ci0gICAgICAgIHhoci5zZW5kKCk7Ci0gICAgICAgIHhoci5vbmxvYWQgPSBmdW5jdGlv
biAoZXZ0KSB7Ci0gICAgICAgICAgICBwb3N0TWVzc2FnZSh4aHIucmVzcG9uc2VUZXh0KTsKLSAg
ICAgICAgfTsKLSAgICAgICAgeGhyLm9uZXJyb3IgPSBmdW5jdGlvbigpIHsKLSAgICAgICAgICAg
IHBvc3RNZXNzYWdlKCJYSFIgZmFpbGVkISIpOwotICAgICAgICB9OwotICAgIH0gZWxzZSBpZiAo
ZXZ0LmRhdGEgPT0gImZldGNoIikgewotICAgICAgICBmZXRjaCgic3ludGhlc2l6ZWQtcmVzcG9u
c2UudHh0IikKLSAgICAgICAgICAudGhlbihmdW5jdGlvbihyZXNwb25zZSkgewotICAgICAgICAg
ICAgICByZXR1cm4gcmVzcG9uc2UudGV4dCgpOwotICAgICAgICAgICAgfSkKLSAgICAgICAgICAu
dGhlbihmdW5jdGlvbihkYXRhKSB7Ci0gICAgICAgICAgICAgIHBvc3RNZXNzYWdlKGRhdGEpOwot
ICAgICAgICAgICAgfSkKLSAgICAgICAgICAuY2F0Y2goZnVuY3Rpb24oZXJyb3IpIHsKLSAgICAg
ICAgICAgICAgcG9zdE1lc3NhZ2UoIkZldGNoIGZhaWxlZCEiKTsKLSAgICAgICAgICAgIH0pOwot
ICAgIH0gZWxzZSBpZiAoZXZ0LmRhdGEgPT0gImltcG9ydFNjcmlwdHMiKSB7Ci0gICAgICAgIGlt
cG9ydFNjcmlwdHMoInN5bnRoZXNpemVkLXJlc3BvbnNlLmpzIik7Ci0gICAgfSBlbHNlIHsKLSAg
ICAgICAgdGhyb3cgIlVuZXhwZWN0ZWQgbWVzc2FnZSEgIiArIGV2dC5kYXRhOwotICAgIH0KK2Z1
bmN0aW9uIHJ1bl90ZXN0KGRhdGEsIHNlbmRlcikgeworICBpZiAoZGF0YSA9PT0gJ3hocicpIHsK
KyAgICBjb25zdCB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKKyAgICB4aHIub3BlbignR0VU
JywgJ3N5bnRoZXNpemVkLXJlc3BvbnNlLnR4dCcsIHRydWUpOworICAgIHhoci5yZXNwb25zZVR5
cGUgPSAndGV4dCc7CisgICAgeGhyLnNlbmQoKTsKKyAgICB4aHIub25sb2FkID0gZXZ0ID0+IHNl
bmRlci5wb3N0TWVzc2FnZSh4aHIucmVzcG9uc2VUZXh0KTsKKyAgICB4aHIub25lcnJvciA9ICgp
ID0+IHNlbmRlci5wb3N0TWVzc2FnZSgnWEhSIGZhaWxlZCEnKTsKKyAgfSBlbHNlIGlmIChkYXRh
ID09PSAnZmV0Y2gnKSB7CisgICAgZmV0Y2goJ3N5bnRoZXNpemVkLXJlc3BvbnNlLnR4dCcpCisg
ICAgICAgIC50aGVuKHJlc3BvbnNlID0+IHJlc3BvbnNlLnRleHQoKSkKKyAgICAgICAgLnRoZW4o
ZGF0YSA9PiBzZW5kZXIucG9zdE1lc3NhZ2UoZGF0YSkpCisgICAgICAgIC5jYXRjaChlcnJvciA9
PiBzZW5kZXIucG9zdE1lc3NhZ2UoJ0ZldGNoIGZhaWxlZCEnKSk7CisgIH0gZWxzZSBpZiAoZGF0
YSA9PT0gJ2ltcG9ydFNjcmlwdHMnKSB7CisgICAgaW1wb3J0U2NyaXB0cygnc3ludGhlc2l6ZWQt
cmVzcG9uc2UuanMnKTsKKyAgICAvLyB8bWVzc2FnZXwgaXMgcHJvdmlkZWQgYnkgJ3N5bnRoZXNp
emVkLXJlc3BvbnNlLmpzJzsKKyAgICBzZW5kZXIucG9zdE1lc3NhZ2UobWVzc2FnZSk7CisgIH0g
ZWxzZSB7CisgICAgc2VuZGVyLnBvc3RNZXNzYWdlKCdVbmV4cGVjdGVkIG1lc3NhZ2UhICcgKyBk
YXRhKTsKKyAgfQorfQorCisvLyBFbnRyeSBwb2ludCBmb3IgZGVkaWNhdGVkIHdvcmtlcnMuCitz
ZWxmLm9ubWVzc2FnZSA9IGV2dCA9PiBydW5fdGVzdChldnQuZGF0YSwgc2VsZik7CisKKy8vIEVu
dHJ5IHBvaW50IGZvciBzaGFyZWQgd29ya2Vycy4KK3NlbGYub25jb25uZWN0ID0gZXZ0ID0+IHsK
KyAgZXZ0LnBvcnRzWzBdLm9ubWVzc2FnZSA9IGUgPT4gcnVuX3Rlc3QoZS5kYXRhLCBldnQucG9y
dHNbMF0pOwogfTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9uZXN0
ZWRfbG9hZF93b3JrZXIuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvbmVzdGVkX2xv
YWRfd29ya2VyLmpzCmluZGV4IDZlMmU5ZWRjNGQ4YjM1ZTAzZjVhYTRiMjk5NjY4MTJhZGRmNDM0
NDQuLmVmMGVkOGZjNzA0Y2VhYTgxZjFlZWY4ZDRlZDc1ZmQwNDFiYWFlNmQgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9uZXN0ZWRfbG9hZF93b3JrZXIuanMKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL25lc3RlZF9sb2FkX3dvcmtlci5qcwpAQCAtMSw5
ICsxLDIzIEBACi12YXIgd29ya2VyID0gbmV3IFdvcmtlcigibG9hZF93b3JrZXIuanMiKTsKLQot
c2VsZi5vbm1lc3NhZ2UgPSBmdW5jdGlvbiAoZXZ0KSB7Ci0gIHdvcmtlci5wb3N0TWVzc2FnZShl
dnQuZGF0YSk7CisvLyBFbnRyeSBwb2ludCBmb3IgZGVkaWNhdGVkIHdvcmtlcnMuCitzZWxmLm9u
bWVzc2FnZSA9IGV2dCA9PiB7CisgIHRyeSB7CisgICAgY29uc3Qgd29ya2VyID0gbmV3IFdvcmtl
cignbG9hZF93b3JrZXIuanMnKTsKKyAgICB3b3JrZXIub25tZXNzYWdlID0gZXZ0ID0+IHNlbGYu
cG9zdE1lc3NhZ2UoZXZ0LmRhdGEpOworICAgIHdvcmtlci5wb3N0TWVzc2FnZShldnQuZGF0YSk7
CisgIH0gY2F0Y2ggKGVycikgeworICAgIHNlbGYucG9zdE1lc3NhZ2UoJ1VuZXhwZWN0ZWQgZXJy
b3IhICcgKyBlcnIubWVzc2FnZSk7CisgIH0KIH07CiAKLXdvcmtlci5vbm1lc3NhZ2UgPSBmdW5j
dGlvbiAoZXZ0KSB7Ci0gIHNlbGYucG9zdE1lc3NhZ2UoZXZ0LmRhdGEpOwotfQorLy8gRW50cnkg
cG9pbnQgZm9yIHNoYXJlZCB3b3JrZXJzLgorc2VsZi5vbmNvbm5lY3QgPSBldnQgPT4geworICBl
dnQucG9ydHNbMF0ub25tZXNzYWdlID0gZSA9PiB7CisgICAgdHJ5IHsKKyAgICAgIGNvbnN0IHdv
cmtlciA9IG5ldyBXb3JrZXIoJ2xvYWRfd29ya2VyLmpzJyk7CisgICAgICB3b3JrZXIub25tZXNz
YWdlID0gZSA9PiBldnQucG9ydHNbMF0ucG9zdE1lc3NhZ2UoZS5kYXRhKTsKKyAgICAgIHdvcmtl
ci5wb3N0TWVzc2FnZShldnQuZGF0YSk7CisgICAgfSBjYXRjaCAoZXJyKSB7CisgICAgICBldnQu
cG9ydHNbMF0ucG9zdE1lc3NhZ2UoJ1VuZXhwZWN0ZWQgZXJyb3IhICcgKyBlcnIubWVzc2FnZSk7
CisgICAgfQorICB9OworfTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNl
cy9wb3N0bWVzc2FnZS1vbi1sb2FkLXdvcmtlci5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291
cmNlcy9wb3N0bWVzc2FnZS1vbi1sb2FkLXdvcmtlci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMmIwYmNiOGJm
YjBhYTBhNzYwNzE0Mzg0MGYxZjU2YTM4ZDhiMGEzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvcmVzb3VyY2VzL3Bvc3RtZXNzYWdlLW9uLWxvYWQtd29ya2VyLmpzCkBAIC0w
LDAgKzEsOSBAQAoraWYgKCdEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZScgaW4gc2VsZiAmJgor
ICAgIHNlbGYgaW5zdGFuY2VvZiBEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZSkgeworICBwb3N0
TWVzc2FnZSgnZGVkaWNhdGVkIHdvcmtlciBzY3JpcHQgbG9hZGVkJyk7Cit9IGVsc2UgaWYgKCdT
aGFyZWRXb3JrZXJHbG9iYWxTY29wZScgaW4gc2VsZiAmJgorICAgIHNlbGYgaW5zdGFuY2VvZiBT
aGFyZWRXb3JrZXJHbG9iYWxTY29wZSkgeworICBzZWxmLm9uY29ubmVjdCA9IGV2dCA9PiB7Cisg
ICAgZXZ0LnBvcnRzWzBdLnBvc3RNZXNzYWdlKCdzaGFyZWQgd29ya2VyIHNjcmlwdCBsb2FkZWQn
KTsKKyAgfTsKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9zaGFy
ZWQtd29ya2VyLWNvbnRyb2xsZWQuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvc2hh
cmVkLXdvcmtlci1jb250cm9sbGVkLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAx
Y2NjMmZlM2JkYmU2OGFkMjAwZjcwMzdmZDVjNjhkNzY4OTMxODM0Li4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNl
cy9zaGFyZWQtd29ya2VyLWNvbnRyb2xsZWQuanMKKysrIC9kZXYvbnVsbApAQCAtMSw4ICswLDAg
QEAKLW9uY29ubmVjdCA9IGZ1bmN0aW9uKGUpIHsKLSAgdmFyIHBvcnQgPSBlLnBvcnRzWzBdOwot
ICB2YXIgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7Ci0gIHhoci5vbmxvYWQgPSBmdW5jdGlv
bigpIHsgcG9ydC5wb3N0TWVzc2FnZSh0aGlzLnJlc3BvbnNlVGV4dCk7IH07Ci0gIHhoci5vbmVy
cm9yID0gZnVuY3Rpb24oZSkgeyBwb3J0LnBvc3RNZXNzYWdlKGUpOyB9OwotICB4aHIub3Blbign
R0VUJywgJ2R1bW15LnR4dD9zaW1wbGUnLCB0cnVlKTsKLSAgeGhyLnNlbmQoKTsKLX07CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvc2hhcmVkLXdvcmtlci1pbXBvcnQu
anMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvc2hhcmVkLXdvcmtlci1pbXBvcnQuanMK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdjNTU0YmQ3NDE1MjA5YjI2NmZmZmNlYjkw
MTg1YTc5ZWJkNzU2YzUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3NoYXJlZC13b3JrZXItaW1wb3J0Lmpz
CisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotaW1wb3J0U2NyaXB0cygnaW1wb3J0LWR1bW15
LXNoYXJlZC13b3JrZXIuanMnKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291
cmNlcy91cGRhdGUtZHVyaW5nLWluc3RhbGxhdGlvbi13b3JrZXIuanMgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9yZXNvdXJjZXMvdXBkYXRlLWR1cmluZy1pbnN0YWxsYXRpb24td29ya2VyLmpzCmluZGV4
IDNmODk4ODFjMDQzODQ1OTBiOGIxMzJjMzkyOTc3MjU2YmZiODQ3ZWQuLmYxOTk3YmQ4MjRlOGUx
NjVjYzExOWE1MjA4MmQ3NDJiZDYzZjRlNGQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L3Jlc291cmNlcy91cGRhdGUtZHVyaW5nLWluc3RhbGxhdGlvbi13b3JrZXIuanMKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3VwZGF0ZS1kdXJpbmctaW5zdGFsbGF0aW9uLXdvcmtl
ci5qcwpAQCAtMTQsNiArMTQsOSBAQCBhZGRFdmVudExpc3RlbmVyKCdpbnN0YWxsJywgZXZlbnQg
PT4gewogfSk7CiAKIGFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCBldmVudCA9PiB7CisgIGxl
dCByZXNvbHZlV2FpdFVudGlsOworICBldmVudC53YWl0VW50aWwobmV3IFByb21pc2UocmVzb2x2
ZSA9PiB7IHJlc29sdmVXYWl0VW50aWwgPSByZXNvbHZlOyB9KSk7CisKICAgLy8gVXNlIGEgZGVk
aWNhdGVkIE1lc3NhZ2VDaGFubmVsIGZvciBldmVyeSByZXF1ZXN0IHNvIHNlbmRlcnMgY2FuIHdh
aXQgZm9yCiAgIC8vIGluZGl2aWR1YWwgcmVxdWVzdHMgdG8gZmluaXNoLCBhbmQgY29uY3VycmVu
dCByZXF1ZXN0cyAodG8gZGlmZmVyZW50CiAgIC8vIHdvcmtlcnMpIGRvbid0IGNhdXNlIHJhY2Ug
Y29uZGl0aW9ucy4KQEAgLTIzLDEzICsyNiwxMyBAQCBhZGRFdmVudExpc3RlbmVyKCdtZXNzYWdl
JywgZXZlbnQgPT4gewogICAgICAgY2FzZSAnYXdhaXRJbnN0YWxsRXZlbnQnOgogICAgICAgICBp
bnN0YWxsRXZlbnRGaXJlZC50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHBvcnQucG9zdE1lc3Nh
Z2UoJ2luc3RhbGxFdmVudEZpcmVkJyk7Ci0gICAgICAgIH0pOworICAgICAgICB9KS5maW5hbGx5
KHJlc29sdmVXYWl0VW50aWwpOwogICAgICAgICBicmVhazsKIAogICAgICAgY2FzZSAnZmluaXNo
SW5zdGFsbCc6CiAgICAgICAgIGluc3RhbGxGaW5pc2hlZC50aGVuKCgpID0+IHsKICAgICAgICAg
ICAgIHBvcnQucG9zdE1lc3NhZ2UoJ2luc3RhbGxGaW5pc2hlZCcpOwotICAgICAgICB9KTsKKyAg
ICAgICAgfSkuZmluYWxseShyZXNvbHZlV2FpdFVudGlsKTsKICAgICAgICAgZmluaXNoSW5zdGFs
bCgpOwogICAgICAgICBicmVhazsKIApAQCAtNDQsMTMgKzQ3LDE0IEBAIGFkZEV2ZW50TGlzdGVu
ZXIoJ21lc3NhZ2UnLCBldmVudCA9PiB7CiAgICAgICAgICAgICAgICAgc3VjY2VzczogZmFsc2Us
CiAgICAgICAgICAgICAgICAgZXhjZXB0aW9uOiBleGNlcHRpb24ubmFtZSwKICAgICAgICAgICAg
IH0pOwotICAgICAgICB9KTsKKyAgICAgICAgfSkuZmluYWxseShyZXNvbHZlV2FpdFVudGlsKTsK
ICAgICAgICAgcG9ydC5wb3N0TWVzc2FnZShjaGFubmVsLnBvcnQxLCBbY2hhbm5lbC5wb3J0MV0p
OwogICAgICAgICBicmVhazsKICAgICAgIH0KIAogICAgICAgZGVmYXVsdDoKICAgICAgICAgcG9y
dC5wb3N0TWVzc2FnZSgnVW5leHBlY3RlZCBjb21tYW5kICcgKyBldmVudC5kYXRhKTsKKyAgICAg
ICAgcmVzb2x2ZVdhaXRVbnRpbCgpOwogICAgICAgICBicmVhazsKICAgICB9CiAgIH07CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvdXBkYXRlLXNtYWxsZXItYm9keS1h
ZnRlci11cGRhdGUtd29ya2VyLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3VwZGF0
ZS1zbWFsbGVyLWJvZHktYWZ0ZXItdXBkYXRlLXdvcmtlci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNDNmNmIy
ZjVjM2Q2NDE1NmFlNjg5NzBlYWIzYTY1NTExYzVjOTYwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3VwZGF0ZS1zbWFsbGVyLWJvZHktYWZ0ZXItdXBkYXRl
LXdvcmtlci5qcwpAQCAtMCwwICsxIEBACisvLyBIZWxsbyB3b3JsZCEKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy91cGRhdGUtc21hbGxlci1ib2R5LWJlZm9yZS11cGRh
dGUtd29ya2VyLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3VwZGF0ZS1zbWFsbGVy
LWJvZHktYmVmb3JlLXVwZGF0ZS13b3JrZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzBjODc4M2E3MDI1NTAx
MmU1NzYzNDAzZDE1NDY3ZDE0OGIyNDliMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL3Jlc291cmNlcy91cGRhdGUtc21hbGxlci1ib2R5LWJlZm9yZS11cGRhdGUtd29ya2Vy
LmpzCkBAIC0wLDAgKzEsMiBAQAorLy8gSGVsbG8gd29ybGQhCisvLyAqKndpdGggZXh0cmEgYm9k
eSoqCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvdXBkYXRlLXdvcmtl
ci1mcm9tLWZpbGUucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvdXBkYXRlLXdvcmtl
ci1mcm9tLWZpbGUucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzYwNDcxOWM4ZTBjNWRhY2QyMTZiZjk2OTIxZDgy
NWRkMDIxMWFlYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNl
cy91cGRhdGUtd29ya2VyLWZyb20tZmlsZS5weQpAQCAtMCwwICsxLDMxIEBACitpbXBvcnQgb3MK
KworZGVmIHNlcnZlX2pzX2Zyb21fZmlsZShyZXF1ZXN0LCByZXNwb25zZSwgZmlsZW5hbWUpOgor
ICBib2R5ID0gJycKKyAgcGF0aCA9IG9zLnBhdGguam9pbihvcy5wYXRoLmRpcm5hbWUoX19maWxl
X18pLCBmaWxlbmFtZSkKKyAgd2l0aCBvcGVuKHBhdGgsICdyYicpIGFzIGY6CisgICAgYm9keSA9
IGYucmVhZCgpCisgIHJldHVybiAoCisgICAgWworICAgICAgKCdDYWNoZS1Db250cm9sJywgJ25v
LWNhY2hlLCBtdXN0LXJldmFsaWRhdGUnKSwKKyAgICAgICgnUHJhZ21hJywgJ25vLWNhY2hlJyks
CisgICAgICAoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qYXZhc2NyaXB0JykKKyAgICBd
LCBib2R5KQorCitkZWYgbWFpbihyZXF1ZXN0LCByZXNwb25zZSk6CisgIGtleSA9IHJlcXVlc3Qu
R0VUWyJLZXkiXQorCisgIHZpc2l0ZWRfY291bnQgPSByZXF1ZXN0LnNlcnZlci5zdGFzaC50YWtl
KGtleSkKKyAgaWYgdmlzaXRlZF9jb3VudCBpcyBOb25lOgorICAgIHZpc2l0ZWRfY291bnQgPSAw
CisKKyAgIyBLZWVwIGhvdyBtYW55IHRpbWVzIHRoZSB0ZXN0IHJlcXVlc3RlZCB0aGlzIHJlc291
cmNlLgorICB2aXNpdGVkX2NvdW50ICs9IDEKKyAgcmVxdWVzdC5zZXJ2ZXIuc3Rhc2gucHV0KGtl
eSwgdmlzaXRlZF9jb3VudCkKKworICAjIFNlcnZlIGEgZmlsZSBiYXNlZCBvbiBob3cgbWFueSB0
aW1lcyBpdCdzIHJlcXVlc3RlZC4KKyAgaWYgdmlzaXRlZF9jb3VudCA9PSAxOgorICAgIHJldHVy
biBzZXJ2ZV9qc19mcm9tX2ZpbGUocmVxdWVzdCwgcmVzcG9uc2UsIHJlcXVlc3QuR0VUWyJGaXJz
dCJdKQorICBpZiB2aXNpdGVkX2NvdW50ID09IDI6CisgICAgcmV0dXJuIHNlcnZlX2pzX2Zyb21f
ZmlsZShyZXF1ZXN0LCByZXNwb25zZSwgcmVxdWVzdC5HRVRbIlNlY29uZCJdKQorICByYWlzZSAi
VW5rbm93biBzdGF0ZSIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy91
cGRhdGUtd29ya2VyLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3VwZGF0ZS13b3Jr
ZXIucHkKaW5kZXggYmM5YjMyYWQzZTY4ODcwZDlmNTQwNTI0ZTcwY2Q3OTQ3MzQ2ZTVjOC4uZDI1
MTc5MzA0YTczNjYwMTIyMDM2ZTVkNWZlYzIwNjdkYzYxNTk3YSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvcmVzb3VyY2VzL3VwZGF0ZS13b3JrZXIucHkKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvcmVzb3VyY2VzL3VwZGF0ZS13b3JrZXIucHkKQEAgLTEsNDYgKzEsNjAgQEAKLWltcG9y
dCB0aW1lCitpbXBvcnQgdXJsbGliCisKK2RlZiByZWRpcmVjdF9yZXNwb25zZShyZXF1ZXN0LCBy
ZXNwb25zZSwgdmlzaXRlZF9jb3VudCk6CisgICMgfHZpc2l0ZWRfY291bnR8IGlzIHVzZWQgYXMg
YSB1bmlxdWUgaWQgdG8gZGlmZmVyZW50aWF0ZSByZXNwb25zZXMKKyAgIyBldmVyeSB0aW1lLgor
ICBsb2NhdGlvbiA9ICdlbXB0eS5qcycKKyAgaWYgJ1JlZGlyZWN0JyBpbiByZXF1ZXN0LkdFVDoK
KyAgICAgIGxvY2F0aW9uID0gdXJsbGliLnVucXVvdGUocmVxdWVzdC5HRVRbJ1JlZGlyZWN0J10p
CisgIHJldHVybiAoMzAxLAorICBbCisgICAgKCdDYWNoZS1Db250cm9sJywgJ25vLWNhY2hlLCBt
dXN0LXJldmFsaWRhdGUnKSwKKyAgICAoJ1ByYWdtYScsICduby1jYWNoZScpLAorICAgICgnQ29u
dGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2phdmFzY3JpcHQnKSwKKyAgICAoJ0xvY2F0aW9uJywg
bG9jYXRpb24pLAorICBdLAorICAnLyogJXMgKi8nICUgc3RyKHZpc2l0ZWRfY291bnQpKQorCitk
ZWYgbm90X2ZvdW5kX3Jlc3BvbnNlKCk6CisgIHJldHVybiA0MDQsIFsoJ0NvbnRlbnQtVHlwZScs
ICd0ZXh0L3BsYWluJyldLCAiUGFnZSBub3QgZm91bmQiCisKK2RlZiBva19yZXNwb25zZShyZXF1
ZXN0LCByZXNwb25zZSwgdmlzaXRlZF9jb3VudCwKKyAgICAgICAgICAgICAgICBleHRyYV9ib2R5
PScnLCBtaW1lX3R5cGU9J2FwcGxpY2F0aW9uL2phdmFzY3JpcHQnKToKKyAgIyB8dmlzaXRlZF9j
b3VudHwgaXMgdXNlZCBhcyBhIHVuaXF1ZSBpZCB0byBkaWZmZXJlbnRpYXRlIHJlc3BvbnNlcwor
ICAjIGV2ZXJ5IHRpbWUuCisgIHJldHVybiAoCisgICAgWworICAgICAgKCdDYWNoZS1Db250cm9s
JywgJ25vLWNhY2hlLCBtdXN0LXJldmFsaWRhdGUnKSwKKyAgICAgICgnUHJhZ21hJywgJ25vLWNh
Y2hlJyksCisgICAgICAoJ0NvbnRlbnQtVHlwZScsIG1pbWVfdHlwZSkKKyAgICBdLAorICAgICcv
KiAlcyAqLyAlcycgJSAoc3RyKHZpc2l0ZWRfY291bnQpLCBleHRyYV9ib2R5KSkKIAogZGVmIG1h
aW4ocmVxdWVzdCwgcmVzcG9uc2UpOgotICAgICMgU2V0IG1vZGUgdG8gJ2luaXQnIGZvciBpbml0
aWFsIGZldGNoLgotICAgIG1vZGUgPSAnaW5pdCcKLSAgICBpZiAnbW9kZScgaW4gcmVxdWVzdC5j
b29raWVzOgotICAgICAgICBtb2RlID0gcmVxdWVzdC5jb29raWVzWydtb2RlJ10udmFsdWUKLQot
ICAgICMgbm8tY2FjaGUgaXRzZWxmIHRvIGVuc3VyZSB0aGUgdXNlciBhZ2VudCBmaW5kcyBhIG5l
dyB2ZXJzaW9uIGZvciBlYWNoIHVwZGF0ZS4KLSAgICBoZWFkZXJzID0gWygnQ2FjaGUtQ29udHJv
bCcsICduby1jYWNoZSwgbXVzdC1yZXZhbGlkYXRlJyksCi0gICAgICAgICAgICAgICAoJ1ByYWdt
YScsICduby1jYWNoZScpXQotCi0gICAgY29udGVudF90eXBlID0gJycKLSAgICBleHRyYV9ib2R5
ID0gJycKLQotICAgIGlmIG1vZGUgPT0gJ2luaXQnOgotICAgICAgICAjIFNldCBhIG5vcm1hbCBt
aW1ldHlwZS4KLSAgICAgICAgIyBTZXQgY29va2llIHZhbHVlIHRvICdub3JtYWwnIHNvIHRoZSBu
ZXh0IGZldGNoIHdpbGwgd29yayBpbiAnbm9ybWFsJyBtb2RlLgotICAgICAgICBjb250ZW50X3R5
cGUgPSAnYXBwbGljYXRpb24vamF2YXNjcmlwdCcKLSAgICAgICAgcmVzcG9uc2Uuc2V0X2Nvb2tp
ZSgnbW9kZScsICdub3JtYWwnKQotICAgIGVsaWYgbW9kZSA9PSAnbm9ybWFsJzoKLSAgICAgICAg
IyBTZXQgYSBub3JtYWwgbWltZXR5cGUuCi0gICAgICAgICMgU2V0IGNvb2tpZSB2YWx1ZSB0byAn
ZXJyb3InIHNvIHRoZSBuZXh0IGZldGNoIHdpbGwgd29yayBpbiAnZXJyb3InIG1vZGUuCi0gICAg
ICAgIGNvbnRlbnRfdHlwZSA9ICdhcHBsaWNhdGlvbi9qYXZhc2NyaXB0JwotICAgICAgICByZXNw
b25zZS5zZXRfY29va2llKCdtb2RlJywgJ2Vycm9yJyk7Ci0gICAgZWxpZiBtb2RlID09ICdlcnJv
cic6Ci0gICAgICAgICMgU2V0IGEgZGlzYWxsb3dlZCBtaW1ldHlwZS4KLSAgICAgICAgIyBTZXQg
Y29va2llIHZhbHVlIHRvICdzeW50YXgtZXJyb3InIHNvIHRoZSBuZXh0IGZldGNoIHdpbGwgd29y
ayBpbiAnc3ludGF4LWVycm9yJyBtb2RlLgotICAgICAgICBjb250ZW50X3R5cGUgPSAndGV4dC9o
dG1sJwotICAgICAgICByZXNwb25zZS5zZXRfY29va2llKCdtb2RlJywgJ3N5bnRheC1lcnJvcicp
OwotICAgIGVsaWYgbW9kZSA9PSAnc3ludGF4LWVycm9yJzoKLSAgICAgICAgIyBTZXQgY29va2ll
IHZhbHVlIHRvICd0aHJvdy1pbnN0YWxsJyBzbyB0aGUgbmV4dCBmZXRjaCB3aWxsIHdvcmsgaW4g
J3Rocm93LWluc3RhbGwnIG1vZGUuCi0gICAgICAgIGNvbnRlbnRfdHlwZSA9ICdhcHBsaWNhdGlv
bi9qYXZhc2NyaXB0JwotICAgICAgICByZXNwb25zZS5zZXRfY29va2llKCdtb2RlJywgJ3Rocm93
LWluc3RhbGwnKTsKLSAgICAgICAgZXh0cmFfYm9keSA9ICdiYWRzeW50YXgoaXNiYWQ7JwotICAg
IGVsaWYgbW9kZSA9PSAndGhyb3ctaW5zdGFsbCc6Ci0gICAgICAgICMgVW5zZXQgYW5kIGRlbGV0
ZSBjb29raWUgdG8gY2xlYW4gdXAgdGhlIHRlc3Qgc2V0dGluZy4KLSAgICAgICAgY29udGVudF90
eXBlID0gJ2FwcGxpY2F0aW9uL2phdmFzY3JpcHQnCi0gICAgICAgIHJlc3BvbnNlLmRlbGV0ZV9j
b29raWUoJ21vZGUnKQotICAgICAgICBleHRyYV9ib2R5ID0gImFkZEV2ZW50TGlzdGVuZXIoJ2lu
c3RhbGwnLCBmdW5jdGlvbihlKSB7IHRocm93IG5ldyBFcnJvcignYm9vbScpOyB9KTsiCi0KLSAg
ICBoZWFkZXJzLmFwcGVuZCgoJ0NvbnRlbnQtVHlwZScsIGNvbnRlbnRfdHlwZSkpCi0gICAgIyBS
ZXR1cm4gYSBkaWZmZXJlbnQgc2NyaXB0IGZvciBlYWNoIGFjY2Vzcy4gIFVzZSAudGltZSgpIGFu
ZCAuY2xvY2soKSBmb3IKLSAgICAjIGJlc3QgdGltZSByZXNvbHV0aW9uIGFjcm9zcyBkaWZmZXJl
bnQgcGxhdGZvcm1zLgotICAgIHJldHVybiBoZWFkZXJzLCAnLyogJXMgJXMgKi8gJXMnICUgKHRp
bWUudGltZSgpLCB0aW1lLmNsb2NrKCksIGV4dHJhX2JvZHkpCisgIGtleSA9IHJlcXVlc3QuR0VU
WyJLZXkiXQorICBtb2RlID0gcmVxdWVzdC5HRVRbIk1vZGUiXQorCisgIHZpc2l0ZWRfY291bnQg
PSByZXF1ZXN0LnNlcnZlci5zdGFzaC50YWtlKGtleSkKKyAgaWYgdmlzaXRlZF9jb3VudCBpcyBO
b25lOgorICAgIHZpc2l0ZWRfY291bnQgPSAwCisKKyAgIyBLZWVwIGhvdyBtYW55IHRpbWVzIHRo
ZSB0ZXN0IHJlcXVlc3RlZCB0aGlzIHJlc291cmNlLgorICB2aXNpdGVkX2NvdW50ICs9IDEKKyAg
cmVxdWVzdC5zZXJ2ZXIuc3Rhc2gucHV0KGtleSwgdmlzaXRlZF9jb3VudCkKKworICAjIFJldHVy
biBhIHJlc3BvbnNlIGJhc2VkIG9uIHxtb2RlfCBvbmx5IHdoZW4gaXQncyB0aGUgc2Vjb25kIHRp
bWUgKD09IHVwZGF0ZSkuCisgIGlmIHZpc2l0ZWRfY291bnQgPT0gMjoKKyAgICBpZiBtb2RlID09
ICdub3JtYWwnOgorICAgICAgcmV0dXJuIG9rX3Jlc3BvbnNlKHJlcXVlc3QsIHJlc3BvbnNlLCB2
aXNpdGVkX2NvdW50KQorICAgIGlmIG1vZGUgPT0gJ2JhZF9taW1lX3R5cGUnOgorICAgICAgcmV0
dXJuIG9rX3Jlc3BvbnNlKHJlcXVlc3QsIHJlc3BvbnNlLCB2aXNpdGVkX2NvdW50LCBtaW1lX3R5
cGU9J3RleHQvaHRtbCcpCisgICAgaWYgbW9kZSA9PSAnbm90X2ZvdW5kJzoKKyAgICAgIHJldHVy
biBub3RfZm91bmRfcmVzcG9uc2UoKQorICAgIGlmIG1vZGUgPT0gJ3JlZGlyZWN0JzoKKyAgICAg
IHJldHVybiByZWRpcmVjdF9yZXNwb25zZShyZXF1ZXN0LCByZXNwb25zZSwgdmlzaXRlZF9jb3Vu
dCkKKyAgICBpZiBtb2RlID09ICdzeW50YXhfZXJyb3InOgorICAgICAgcmV0dXJuIG9rX3Jlc3Bv
bnNlKHJlcXVlc3QsIHJlc3BvbnNlLCB2aXNpdGVkX2NvdW50LCBleHRyYV9ib2R5PSdiYWRzeW50
YXgoaXNiYWQ7JykKKyAgICBpZiBtb2RlID09ICd0aHJvd19pbnN0YWxsJzoKKyAgICAgIHJldHVy
biBva19yZXNwb25zZShyZXF1ZXN0LCByZXNwb25zZSwgdmlzaXRlZF9jb3VudCwgZXh0cmFfYm9k
eT0iYWRkRXZlbnRMaXN0ZW5lcignaW5zdGFsbCcsIGZ1bmN0aW9uKGUpIHsgdGhyb3cgbmV3IEVy
cm9yKCdib29tJyk7IH0pOyIpCiAKKyAgcmV0dXJuIG9rX3Jlc3BvbnNlKHJlcXVlc3QsIHJlc3Bv
bnNlLCB2aXNpdGVkX2NvdW50KQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3Vy
Y2VzL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3czYy1pbXBv
cnQubG9nCmluZGV4IDllYmM4YmMzMWZmY2NkZTc3MzYzZTk4NjExNzNkMjVlNzVhMmQyMDIuLjhm
MWJjZmQzNDU0M2MyNWQwNzE1ZWI5YjI2ZTUyMmYzNmQ0NjRhOTUgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL3Jlc291cmNlcy93M2MtaW1wb3J0LmxvZworKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9yZXNvdXJjZXMvdzNjLWltcG9ydC5sb2cKQEAgLTQzLDYgKzQzLDcgQEAgTGlzdCBvZiBm
aWxlczoKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvY2xpZW50LW5hdmlnYXRlLWZyYW1l
Lmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvY2xpZW50LW5hdmlnYXRlLXdvcmtl
ci5qcwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9jbGllbnQtbmF2aWdhdGVkLWZyYW1l
Lmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvY2xpZW50cy1mcmFtZS1mcmVlemUu
aHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9jbGllbnRzLWdldC1jbGllbnQtdHlw
ZXMtZnJhbWUtd29ya2VyLmpzCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2NsaWVudHMt
Z2V0LWNsaWVudC10eXBlcy1mcmFtZS5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2Vz
L2NsaWVudHMtZ2V0LWNsaWVudC10eXBlcy1zaGFyZWQtd29ya2VyLmpzCkBAIC02MCwxMCArNjEs
NyBAQCBMaXN0IG9mIGZpbGVzOgogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9jb3JzLWFw
cHJvdmVkLnR4dAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9jb3JzLWFwcHJvdmVkLnR4
dC5oZWFkZXJzCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2NvcnMtZGVuaWVkLnR4dAot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9kdW1teS1zaGFyZWQtd29ya2VyLWludGVyY2Vw
dG9yLmpzCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2R1bW15LXNoYXJlZC13b3JrZXIt
aW50ZXJjZXB0b3IuanMuaGVhZGVycwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9kdW1t
eS13b3JrZXItaW50ZXJjZXB0b3IuanMKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZHVt
bXktd29ya2VyLXNjcmlwdC5weQogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9kdW1teS5o
dG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2R1bW15LnR4dAogL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL3Jlc291cmNlcy9lY2hvLWNvbnRlbnQucHkKQEAgLTE1MiwxMSArMTUwLDE1IEBAIExp
c3Qgb2YgZmlsZXM6CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ltbXV0YWJsZS1wcm90
b3R5cGUtc2VydmljZXdvcmtlci5qcwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9pbXBv
cnQtbWltZS10eXBlLXdvcmtlci5weQogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9pbXBv
cnQtcmVsYXRpdmUueHNsCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ltcG9ydC1zY3Jp
cHRzLTQwNC1hZnRlci11cGRhdGUtcGx1cy11cGRhdGUtd29ya2VyLmpzCisvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvcmVzb3VyY2VzL2ltcG9ydC1zY3JpcHRzLTQwNC1hZnRlci11cGRhdGUuanMKKy9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvaW1wb3J0LXNjcmlwdHMtNDA0LmpzCiAvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvcmVzb3VyY2VzL2ltcG9ydC1zY3JpcHRzLWRpZmYtcmVzb3VyY2UtbWFwLXdvcmtl
ci5qcwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9pbXBvcnQtc2NyaXB0cy1lY2hvLnB5
CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ltcG9ydC1zY3JpcHRzLWdldC5weQogL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9pbXBvcnQtc2NyaXB0cy1taW1lLXR5cGVzLXdvcmtl
ci5qcwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9pbXBvcnQtc2NyaXB0cy1yZWRpcmVj
dC1pbXBvcnQuanMKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvaW1wb3J0LXNjcmlwdHMt
cmVkaXJlY3Qtb24tc2Vjb25kLXRpbWUtd29ya2VyLmpzCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVz
b3VyY2VzL2ltcG9ydC1zY3JpcHRzLXJlZGlyZWN0LXdvcmtlci5qcwogL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3Jlc291cmNlcy9pbXBvcnQtc2NyaXB0cy1yZXNvdXJjZS1tYXAtd29ya2VyLmpzCiAvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ltcG9ydC1zY3JpcHRzLXVwZGF0ZWQtZmxhZy13b3Jr
ZXIuanMKQEAgLTIyNyw2ICsyMjksNyBAQCBMaXN0IG9mIGZpbGVzOgogL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3Jlc291cmNlcy9wb3N0bWVzc2FnZS1kaWN0aW9uYXJ5LXRyYW5zZmVyYWJsZXMtd29ya2Vy
LmpzCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3Bvc3RtZXNzYWdlLWVjaG8td29ya2Vy
LmpzCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3Bvc3RtZXNzYWdlLW1zZ3BvcnQtdG8t
Y2xpZW50LXdvcmtlci5qcworL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9wb3N0bWVzc2Fn
ZS1vbi1sb2FkLXdvcmtlci5qcwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9wb3N0bWVz
c2FnZS10by1jbGllbnQtd29ya2VyLmpzCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3Bv
c3RtZXNzYWdlLXRyYW5zZmVyYWJsZXMtd29ya2VyLmpzCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVz
b3VyY2VzL3Bvc3RtZXNzYWdlLXdvcmtlci5qcwpAQCAtMjY1LDggKzI2OCw2IEBAIExpc3Qgb2Yg
ZmlsZXM6CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3NlcnZpY2Utd29ya2VyLWludGVy
Y2VwdGlvbi1uZXR3b3JrLXdvcmtlci5qcwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9z
ZXJ2aWNlLXdvcmtlci1pbnRlcmNlcHRpb24tc2VydmljZS13b3JrZXIuanMKIC9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9yZXNvdXJjZXMvc2VydmljZS13b3JrZXItaW50ZXJjZXB0aW9uLXN0YXRpYy1pbXBv
cnQtd29ya2VyLmpzCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3NoYXJlZC13b3JrZXIt
Y29udHJvbGxlZC5qcwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9zaGFyZWQtd29ya2Vy
LWltcG9ydC5qcwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9zaWxlbmNlLm9nYQogL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9zaW1wbGUtaW50ZXJjZXB0LXdvcmtlci5qcwogL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9zaW1wbGUtaW50ZXJjZXB0LXdvcmtlci5qcy5oZWFk
ZXJzCkBAIC0yOTUsNiArMjk2LDkgQEAgTGlzdCBvZiBmaWxlczoKIC9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9yZXNvdXJjZXMvdXBkYXRlLW5vY29va2llLXdvcmtlci5weQogL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L3Jlc291cmNlcy91cGRhdGUtcmVjb3Zlcnktd29ya2VyLnB5CiAvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
cmVzb3VyY2VzL3VwZGF0ZS1yZWdpc3RyYXRpb24td2l0aC10eXBlLnB5CisvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvcmVzb3VyY2VzL3VwZGF0ZS1zbWFsbGVyLWJvZHktYWZ0ZXItdXBkYXRlLXdvcmtlci5q
cworL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy91cGRhdGUtc21hbGxlci1ib2R5LWJlZm9y
ZS11cGRhdGUtd29ya2VyLmpzCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3VwZGF0ZS13
b3JrZXItZnJvbS1maWxlLnB5CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3VwZGF0ZS13
b3JrZXIucHkKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvdXBkYXRlX3NoZWxsLnB5CiAv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3Z0dC1mcmFtZS5odG1sCkBAIC0zMDQsNyArMzA4
LDYgQEAgTGlzdCBvZiBmaWxlczoKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvd2luZG93
Y2xpZW50LW5hdmlnYXRlLXdvcmtlci5qcwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy93
b3JrZXItY2xpZW50LWlkLXdvcmtlci5qcwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy93
b3JrZXItZmV0Y2hpbmctY3Jvc3Mtb3JpZ2luLmpzCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3Vy
Y2VzL3dvcmtlci1pbnRlcmNlcHRpb24taWZyYW1lLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9yZXNvdXJjZXMvd29ya2VyLWludGVyY2VwdGlvbi1yZWRpcmVjdC1zZXJ2aWNld29ya2Vy
LmpzCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3dvcmtlci1pbnRlcmNlcHRpb24tcmVk
aXJlY3Qtd2Vid29ya2VyLmpzCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3dvcmtlci1s
b2FkLWludGVyY2VwdG9yLmpzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJj
ZXMvd29ya2VyLWludGVyY2VwdGlvbi1pZnJhbWUuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3Jlc291cmNlcy93b3JrZXItaW50ZXJjZXB0aW9uLWlmcmFtZS5odHRwcy5odG1sCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4NDIwNGEzZWU1ZGYxZmMzYTcxNzg0MjE1MDcxYjE0
ZjBjNjVmOWYyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy93b3JrZXItaW50ZXJjZXB0aW9uLWlmcmFtZS5o
dHRwcy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNTUgKzAsMCBAQAotPHNjcmlwdCBzcmM9Ii9j
b21tb24vZ2V0LWhvc3QtaW5mby5zdWIuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii9yZXNv
dXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InRlc3QtaGVscGVy
cy5zdWIuanM/cGlwZT1zdWIiPjwvc2NyaXB0PgotPHNjcmlwdD4KLXZhciBob3N0X2luZm8gPSBn
ZXRfaG9zdF9pbmZvKCk7Ci0KLWZ1bmN0aW9uIGJvaWxlcnBsYXRlX3Rlc3QodXJsLCBtc2cpIHsK
LSAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7Ci0gICAg
ICAgICAgdmFyIHdvcmtlciA9IG5ldyBXb3JrZXIodXJsKTsKLSAgICAgICAgICB3b3JrZXIub25t
ZXNzYWdlID0gZnVuY3Rpb24oZSkgeyByZXNvbHZlKGUuZGF0YSkgfTsKLSAgICAgICAgICB3b3Jr
ZXIub25lcnJvciA9IGZ1bmN0aW9uKGUpIHsgcmVqZWN0KGUpIH07Ci0gICAgICAgICAgd29ya2Vy
LnBvc3RNZXNzYWdlKG1zZyk7Ci0gICAgICAgIH0pCi0gICAgICAudGhlbihmdW5jdGlvbihkYXRh
KSB7Ci0gICAgICAgICAgYXNzZXJ0X2VxdWFscyhkYXRhLCAiVGhpcyBsb2FkIHdhcyBzdWNjZXNz
ZnVsbHkgaW50ZXJjZXB0ZWQuIik7Ci0gICAgICAgIH0pOwotfQotCi1mdW5jdGlvbiB4aHJfdGVz
dCgpIHsKLSAgICByZXR1cm4gYm9pbGVycGxhdGVfdGVzdCgibG9hZF93b3JrZXIuanMiLCAieGhy
Iik7Ci19Ci0KLWZ1bmN0aW9uIGZldGNoX3Rlc3QoKSB7Ci0gICAgcmV0dXJuIGJvaWxlcnBsYXRl
X3Rlc3QoImxvYWRfd29ya2VyLmpzIiwgImZldGNoIik7Ci19Ci0KLWZ1bmN0aW9uIGltcG9ydFNj
cmlwdHNfdGVzdCgpIHsKLSAgICByZXR1cm4gYm9pbGVycGxhdGVfdGVzdCgibG9hZF93b3JrZXIu
anMiLCAiaW1wb3J0U2NyaXB0cyIpOwotfQotCi1mdW5jdGlvbiBuZXN0ZWRfd29ya2VyX3hocl90
ZXN0KCkgewotICAgIHJldHVybiBib2lsZXJwbGF0ZV90ZXN0KCJuZXN0ZWRfbG9hZF93b3JrZXIu
anMiLCAieGhyIik7Ci19Ci0KLWZ1bmN0aW9uIG5lc3RlZF93b3JrZXJfZmV0Y2hfdGVzdCgpIHsK
LSAgICByZXR1cm4gYm9pbGVycGxhdGVfdGVzdCgibmVzdGVkX2xvYWRfd29ya2VyLmpzIiwgImZl
dGNoIik7Ci19Ci0KLWZ1bmN0aW9uIG5lc3RlZF93b3JrZXJfaW1wb3J0U2NyaXB0c190ZXN0KCkg
ewotICAgIHJldHVybiBib2lsZXJwbGF0ZV90ZXN0KCJuZXN0ZWRfbG9hZF93b3JrZXIuanMiLCAi
aW1wb3J0U2NyaXB0cyIpOwotfQotCi13aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScs
IGZ1bmN0aW9uKGV2dCkgewotICAgIHZhciBwb3J0ID0gZXZ0LnBvcnRzWzBdOwotICAgIHhocl90
ZXN0KCkKLSAgICAgIC50aGVuKGZldGNoX3Rlc3QpCi0gICAgICAudGhlbihpbXBvcnRTY3JpcHRz
X3Rlc3QpCi0gICAgICAudGhlbihuZXN0ZWRfd29ya2VyX3hocl90ZXN0KQotICAgICAgLnRoZW4o
bmVzdGVkX3dvcmtlcl9mZXRjaF90ZXN0KQotICAgICAgLnRoZW4obmVzdGVkX3dvcmtlcl9pbXBv
cnRTY3JpcHRzX3Rlc3QpCi0gICAgICAudGhlbihmdW5jdGlvbigpIHsgcG9ydC5wb3N0TWVzc2Fn
ZSh7cmVzdWx0czogJ2ZpbmlzaCd9KTsgfSkKLSAgICAgIC5jYXRjaChmdW5jdGlvbihlKSB7IHBv
cnQucG9zdE1lc3NhZ2Uoe3Jlc3VsdHM6ICdmYWlsdXJlOicgKyBlfSk7IH0pOwotICB9KTsKLQot
PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvd29ya2Vy
LWxvYWQtaW50ZXJjZXB0b3IuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvd29ya2Vy
LWxvYWQtaW50ZXJjZXB0b3IuanMKaW5kZXggYTVmNjVjMzIxNmU0NDYzMmZmMDUyYmFjMDQ0ODMx
NmYyNWQ0NDNjNi4uZWJjMGRiNjdhYTUwNDU4NDJhNTFhZmQyMjU2NzFmYTBjNzgyNjdlOSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3dvcmtlci1sb2FkLWludGVyY2Vw
dG9yLmpzCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy93b3JrZXItbG9hZC1pbnRl
cmNlcHRvci5qcwpAQCAtMSwxNSArMSwxNiBAQAogaW1wb3J0U2NyaXB0cygnL2NvbW1vbi9nZXQt
aG9zdC1pbmZvLnN1Yi5qcycpOwogCi12YXIgcmVzcG9uc2VfdGV4dCA9ICJUaGlzIGxvYWQgd2Fz
IHN1Y2Nlc3NmdWxseSBpbnRlcmNlcHRlZC4iOwotdmFyIHJlc3BvbnNlX3NjcmlwdCA9ICJwb3N0
TWVzc2FnZShcIlRoaXMgbG9hZCB3YXMgc3VjY2Vzc2Z1bGx5IGludGVyY2VwdGVkLlwiKTsiOwor
Y29uc3QgcmVzcG9uc2VfdGV4dCA9ICdUaGlzIGxvYWQgd2FzIHN1Y2Nlc3NmdWxseSBpbnRlcmNl
cHRlZC4nOworY29uc3QgcmVzcG9uc2Vfc2NyaXB0ID0KKyAgICBgY29uc3QgbWVzc2FnZSA9ICdU
aGlzIGxvYWQgd2FzIHN1Y2Nlc3NmdWxseSBpbnRlcmNlcHRlZC4nO2A7CiAKLXNlbGYub25mZXRj
aCA9IGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgdmFyIHVybCA9IGV2ZW50LnJlcXVlc3QudXJsOwot
ICAgIGlmICh1cmwuaW5kZXhPZigic3ludGhlc2l6ZWQtcmVzcG9uc2UudHh0IikgIT0gLTEpIHsK
LSAgICAgICAgZXZlbnQucmVzcG9uZFdpdGgobmV3IFJlc3BvbnNlKHJlc3BvbnNlX3RleHQpKTsK
LSAgICB9IGVsc2UgaWYgKHVybC5pbmRleE9mKCJzeW50aGVzaXplZC1yZXNwb25zZS5qcyIpICE9
IC0xKSB7Ci0gICAgICBldmVudC5yZXNwb25kV2l0aChuZXcgUmVzcG9uc2UoCi0gICAgICAgICAg
cmVzcG9uc2Vfc2NyaXB0LAotICAgICAgICAgIHtoZWFkZXJzOiB7J0NvbnRlbnQtVHlwZSc6ICdh
cHBsaWNhdGlvbi9qYXZhc2NyaXB0J319KSk7Ci0gICAgfQorc2VsZi5vbmZldGNoID0gZXZlbnQg
PT4geworICBjb25zdCB1cmwgPSBldmVudC5yZXF1ZXN0LnVybDsKKyAgaWYgKHVybC5pbmRleE9m
KCdzeW50aGVzaXplZC1yZXNwb25zZS50eHQnKSAhPSAtMSkgeworICAgIGV2ZW50LnJlc3BvbmRX
aXRoKG5ldyBSZXNwb25zZShyZXNwb25zZV90ZXh0KSk7CisgIH0gZWxzZSBpZiAodXJsLmluZGV4
T2YoJ3N5bnRoZXNpemVkLXJlc3BvbnNlLmpzJykgIT0gLTEpIHsKKyAgICBldmVudC5yZXNwb25k
V2l0aChuZXcgUmVzcG9uc2UoCisgICAgICAgIHJlc3BvbnNlX3NjcmlwdCwKKyAgICAgICAge2hl
YWRlcnM6IHsnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2phdmFzY3JpcHQnfX0pKTsKKyAg
fQogfTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3NoYXJlZC13b3JrZXItY29udHJv
bGxlZC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvc2hhcmVkLXdvcmtlci1jb250cm9s
bGVkLmh0dHBzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAzMjBjMDJhNGZh
MmI4MDY2YmM2ZjYwM2JmN2FiYzNlZWZlMWMzYjMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvc2hhcmVkLXdvcmtlci1jb250
cm9sbGVkLmh0dHBzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw4NiArMCwwIEBACi08IURPQ1RZ
UEUgaHRtbD4KLTx0aXRsZT5TZXJ2aWNlIFdvcmtlcjogY29udHJvbGxpbmcgYSBTaGFyZWRXb3Jr
ZXI8L3RpdGxlPgotPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2Ny
aXB0PgotPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2Ny
aXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy90ZXN0LWhlbHBlcnMuc3ViLmpzIj48L3Njcmlw
dD4KLTxib2R5PgotPHNjcmlwdD4KLXByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7Ci0gICAgdmFy
IHNoYXJlZF93b3JrZXIgPSAncmVzb3VyY2VzL3NoYXJlZC13b3JrZXItY29udHJvbGxlZC5qcyc7
Ci0gICAgdmFyIHNlcnZpY2Vfd29ya2VyID0gJ3Jlc291cmNlcy9zaW1wbGUtaW50ZXJjZXB0LXdv
cmtlci5qcyc7Ci0gICAgdmFyIHNjb3BlID0gc2hhcmVkX3dvcmtlcjsKLQotICAgIHJldHVybiBz
ZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCBzZXJ2aWNlX3dvcmtlciwg
c2NvcGUpCi0gICAgICAudGhlbihmdW5jdGlvbihyKSB7Ci0gICAgICAgICAgdC5hZGRfY2xlYW51
cChmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVn
aXN0ZXIodCwgc2NvcGUpOwotICAgICAgICAgICAgfSk7Ci0KLSAgICAgICAgICByZXR1cm4gd2Fp
dF9mb3Jfc3RhdGUodCwgci5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7Ci0gICAgICAgIH0pCi0g
ICAgICAudGhlbihmdW5jdGlvbigpIHsKLSAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVu
Y3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7Ci0gICAgICAgICAgICAgIHZhciB3ID0gbmV3IFNoYXJl
ZFdvcmtlcihzaGFyZWRfd29ya2VyKTsKLSAgICAgICAgICAgICAgdy5wb3J0Lm9ubWVzc2FnZSA9
IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgICAgICByZXNvbHZlKGUuZGF0YSk7Ci0gICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgIH0pOwotICAgICAgICB9KQotICAgICAgLnRoZW4oZnVuY3Rp
b24oZGF0YSkgewotICAgICAgICAgIGFzc2VydF9lcXVhbHMoZGF0YSwgJ2ludGVyY2VwdGVkIGJ5
IHNlcnZpY2Ugd29ya2VyJyk7Ci0gICAgICAgIH0pOwotICB9LCAnVmVyaWZ5IHN1YnJlc291cmNl
IGxvYWRzIGluIFNoYXJlZFdvcmtlciBhcmUgY29udHJvbGxlZCBieSBhIFNlcnZpY2UgV29ya2Vy
Jyk7Ci0KLXByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7Ci0gICAgdmFyIHNoYXJlZF93b3JrZXIg
PSAncmVzb3VyY2VzL2R1bW15LXNoYXJlZC13b3JrZXIuanMnOwotICAgIHZhciBzZXJ2aWNlX3dv
cmtlciA9ICdyZXNvdXJjZXMvZHVtbXktc2hhcmVkLXdvcmtlci1pbnRlcmNlcHRvci5qcyc7Ci0g
ICAgdmFyIHNjb3BlID0gc2hhcmVkX3dvcmtlcjsKLQotICAgIHJldHVybiBzZXJ2aWNlX3dvcmtl
cl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCBzZXJ2aWNlX3dvcmtlciwgc2NvcGUpCi0gICAg
ICAudGhlbihmdW5jdGlvbihyKSB7Ci0gICAgICAgICAgdC5hZGRfY2xlYW51cChmdW5jdGlvbigp
IHsKLSAgICAgICAgICAgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXIodCwgc2Nv
cGUpOwotICAgICAgICAgICAgfSk7Ci0KLSAgICAgICAgICByZXR1cm4gd2FpdF9mb3Jfc3RhdGUo
dCwgci5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7Ci0gICAgICAgIH0pCi0gICAgICAudGhlbihm
dW5jdGlvbigpIHsKLSAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2
ZSwgcmVqZWN0KSB7Ci0gICAgICAgICAgICAgIHZhciB3ID0gbmV3IFNoYXJlZFdvcmtlcihzaGFy
ZWRfd29ya2VyKTsKLSAgICAgICAgICAgICAgdy5wb3J0Lm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGUp
IHsKLSAgICAgICAgICAgICAgICByZXNvbHZlKGUuZGF0YSk7Ci0gICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgIH0pOwotICAgICAgICB9KQotICAgICAgLnRoZW4oZnVuY3Rpb24oZGF0YSkgewot
ICAgICAgICAgIGFzc2VydF9lcXVhbHMoZGF0YSwgJ3dvcmtlciBsb2FkaW5nIGludGVyY2VwdGVk
IGJ5IHNlcnZpY2Ugd29ya2VyJyk7Ci0gICAgICAgIH0pOwotICB9LCAnVmVyaWZ5IFNoYXJlZFdv
cmtlciBjb25zdHJ1Y3Rpb24gaXMgY29udHJvbGxlZCBieSBhIFNlcnZpY2UgV29ya2VyJyk7Ci0K
LXByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7Ci0gICAgdmFyIHNoYXJlZF93b3JrZXIgPSAncmVz
b3VyY2VzL3NoYXJlZC13b3JrZXItaW1wb3J0LmpzJzsKLSAgICB2YXIgc2VydmljZV93b3JrZXIg
PSAncmVzb3VyY2VzL2R1bW15LXNoYXJlZC13b3JrZXItaW50ZXJjZXB0b3IuanMnOwotICAgIHZh
ciBzY29wZSA9IHNoYXJlZF93b3JrZXI7Ci0KLSAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5y
ZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgc2VydmljZV93b3JrZXIsIHNjb3BlKQotICAgICAgLnRo
ZW4oZnVuY3Rpb24ocikgewotICAgICAgICAgIHQuYWRkX2NsZWFudXAoZnVuY3Rpb24oKSB7Ci0g
ICAgICAgICAgICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyKHQsIHNjb3BlKTsK
LSAgICAgICAgICAgIH0pOwotCi0gICAgICAgICAgcmV0dXJuIHdhaXRfZm9yX3N0YXRlKHQsIHIu
aW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOwotICAgICAgICB9KQotICAgICAgLnRoZW4oZnVuY3Rp
b24oKSB7Ci0gICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJl
amVjdCkgewotICAgICAgICAgICAgICB2YXIgdyA9IG5ldyBTaGFyZWRXb3JrZXIoc2hhcmVkX3dv
cmtlcik7Ci0gICAgICAgICAgICAgIHcucG9ydC5vbm1lc3NhZ2UgPSBmdW5jdGlvbihlKSB7Ci0g
ICAgICAgICAgICAgICAgcmVzb2x2ZShlLmRhdGEpOwotICAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICB9KTsKLSAgICAgICAgfSkKLSAgICAgIC50aGVuKGZ1bmN0aW9uKGRhdGEpIHsKLSAgICAg
ICAgICBhc3NlcnRfZXF1YWxzKGRhdGEsICd3b3JrZXIgbG9hZGluZyBpbnRlcmNlcHRlZCBieSBz
ZXJ2aWNlIHdvcmtlcicpOwotICAgICAgICB9KTsKLSAgfSwgJ1ZlcmlmeSBpbXBvcnRTY3JpcHRz
IGZyb20gU2hhcmVkV29ya2VyIGlzIGNvbnRyb2xsZWQgYnkgYSBTZXJ2aWNlIFdvcmtlcicpOwot
PC9zY3JpcHQ+Ci08L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUt
aW1wb3J0LXNjcmlwdHMuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBk
YXRlLWltcG9ydC1zY3JpcHRzLmh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yOTI3MjA5
OWQ5MjViYmEyYzAwOWVkZWNiZjZlZWUzYWYxNGZkODE1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvdXBkYXRlLWltcG9ydC1zY3JpcHRzLmh0dHBzLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDYgQEAKKworUEFTUyB1cGRhdGUoKSBzaG91bGQgZmFpbCB3aGVuIGEgbmV3IHdv
cmtlciBpbXBvcnRzIGFuIHVuYXZhaWxhYmxlIHNjcmlwdC4gCitQQVNTIHVwZGF0ZSgpIHNob3Vs
ZCBzdWNjZWVkIHdoZW4gdGhlIG9sZCBpbXBvcnRlZCBzY3JpcHQgbm8gbG9uZ2VyIGV4aXN0IGJ1
dCB0aGUgbmV3IHdvcmtlciBkb2Vzbid0IGltcG9ydCBpdC4gCitQQVNTIHVwZGF0ZSgpIHNob3Vs
ZCB0cmVhdCA0MDQgb24gaW1wb3J0ZWQgc2NyaXB0cyBhcyBubyBjaGFuZ2UuIAorRkFJTCB1cGRh
dGUoKSBzaG91bGQgZmluZCBhbiB1cGRhdGUgaW4gYW4gaW1wb3J0ZWQgc2NyaXB0IGJ1dCB1cGRh
dGUoKSBzaG91bGQgcmVzdWx0IGluIGZhaWx1cmUgZHVlIHRvIG1pc3NpbmcgdGhlIG90aGVyIGlt
cG9ydGVkIHNjcmlwdC4gYXNzZXJ0X3VucmVhY2hlZDogU2hvdWxkIGhhdmUgcmVqZWN0ZWQ6IHVu
ZGVmaW5lZCBSZWFjaGVkIHVucmVhY2hhYmxlIGNvZGUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvdXBkYXRlLWltcG9ydC1zY3JpcHRzLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci91cGRhdGUtaW1wb3J0LXNjcmlwdHMuaHR0cHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMGJiYjEy
YmQ2NzViNjM2MTE2ZWY1ZjgxNDQ3OTA0Y2RkZDkyMmQ5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvdXBkYXRlLWltcG9ydC1zY3JpcHRzLmh0dHBzLmh0bWwKQEAgLTAsMCAr
MSwxMjcgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxl
PlRlc3RzIGZvciBpbXBvcnRTY3JpcHRzOiBpbXBvcnQgc2NyaXB0cyBpZ25vcmVkIGVycm9yPC90
aXRsZT4KKzxzY3JpcHQgc3JjPSIvY29tbW9uL3V0aWxzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIv
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvdGVzdC1oZWxwZXJzLnN1Yi5qcyI+PC9zY3JpcHQ+Cis8Ym9keT4KKzxzY3JpcHQ+
CisvLyBUaGlzIGZpbGUgY29udGFpbnMgdGVzdHMgdG8gY2hlY2sgaWYgaW1wb3J0ZWQgc2NyaXB0
cyBhcHByb3ByaWF0ZWx5IHVwZGF0ZWQuCisKK2NvbnN0IFNDT1BFID0gJ3Jlc291cmNlcy9zaW1w
bGUudHh0JzsKKworLy8gQ3JlYXRlIGEgc2VydmljZSB3b3JrZXIgKHVwZGF0ZS13b3JrZXItZnJv
bS1maWxlLnB5KSwgd2hpY2ggaXMgaW5pdGlhbGx5CisvLyB8aW5pdGlhbF93b3JrZXJ8IGFuZCB8
dXBkYXRlZF93b3JrZXJ8IGxhdGVyLgorYXN5bmMgZnVuY3Rpb24gcHJlcGFyZV9yZWFkeV91cGRh
dGVfd29ya2VyX2Zyb21fZmlsZSgKKyAgICB0LCBpbml0aWFsX3dvcmtlciwgdXBkYXRlZF93b3Jr
ZXIpIHsKKyAgY29uc3Qga2V5ID0gdG9rZW4oKTsKKyAgY29uc3Qgd29ya2VyX3VybCA9IGByZXNv
dXJjZXMvdXBkYXRlLXdvcmtlci1mcm9tLWZpbGUucHk/YCArCisgICAgICBgRmlyc3Q9JHtpbml0
aWFsX3dvcmtlcn0mU2Vjb25kPSR7dXBkYXRlZF93b3JrZXJ9JktleT0ke2tleX1gOworICBjb25z
dCBleHBlY3RlZF91cmwgPSBub3JtYWxpemVVUkwod29ya2VyX3VybCk7CisKKyAgY29uc3QgcmVn
aXN0cmF0aW9uID0gYXdhaXQgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIo
CisgICAgICB0LCB3b3JrZXJfdXJsLCBTQ09QRSk7CisgIGF3YWl0IHdhaXRfZm9yX3N0YXRlKHQs
IHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7CisgIGFzc2VydF9lcXVhbHMo
cmVnaXN0cmF0aW9uLmluc3RhbGxpbmcsIG51bGwsCisgICAgICAgICAgICAgICAgJ3ByZXBhcmVf
cmVhZHk6IGluc3RhbGxpbmcnKTsKKyAgYXNzZXJ0X2VxdWFscyhyZWdpc3RyYXRpb24ud2FpdGlu
ZywgbnVsbCwKKyAgICAgICAgICAgICAgICAncHJlcGFyZV9yZWFkeTogd2FpdGluZycpOworICBh
c3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi5hY3RpdmUuc2NyaXB0VVJMLCBleHBlY3RlZF91cmws
CisgICAgICAgICAgICAgICAgJ3ByZXBhcmVfcmVhZHk6IGFjdGl2ZScpOworICByZXR1cm4gW3Jl
Z2lzdHJhdGlvbiwgZXhwZWN0ZWRfdXJsXTsKK30KKworLy8gQ3JlYXRlIGEgc2VydmljZSB3b3Jr
ZXIgdXNpbmcgdGhlIHNjcmlwdCB1bmRlciByZXNvdXJjZXMvLgorYXN5bmMgZnVuY3Rpb24gcHJl
cGFyZV9yZWFkeV9ub3JtYWxfd29ya2VyKHQsIGZpbGVuYW1lLCBhZGRpdGlvbmFsX3BhcmFtcz0n
JykgeworICBjb25zdCBrZXkgPSB0b2tlbigpOworICBjb25zdCB3b3JrZXJfdXJsID0gYHJlc291
cmNlcy8ke2ZpbGVuYW1lfT9LZXk9JHtrZXl9JiR7YWRkaXRpb25hbF9wYXJhbXN9YDsKKyAgY29u
c3QgZXhwZWN0ZWRfdXJsID0gbm9ybWFsaXplVVJMKHdvcmtlcl91cmwpOworCisgIGNvbnN0IHJl
Z2lzdHJhdGlvbiA9IGF3YWl0IHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVy
KAorICAgICAgdCwgd29ya2VyX3VybCwgU0NPUEUpOworICBhd2FpdCB3YWl0X2Zvcl9zdGF0ZSh0
LCByZWdpc3RyYXRpb24uaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOworICBhc3NlcnRfZXF1YWxz
KHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLCBudWxsLAorICAgICAgICAgICAgICAgICdwcmVwYXJl
X3JlYWR5OiBpbnN0YWxsaW5nJyk7CisgIGFzc2VydF9lcXVhbHMocmVnaXN0cmF0aW9uLndhaXRp
bmcsIG51bGwsCisgICAgICAgICAgICAgICAgJ3ByZXBhcmVfcmVhZHk6IHdhaXRpbmcnKTsKKyAg
YXNzZXJ0X2VxdWFscyhyZWdpc3RyYXRpb24uYWN0aXZlLnNjcmlwdFVSTCwgZXhwZWN0ZWRfdXJs
LAorICAgICAgICAgICAgICAgICdwcmVwYXJlX3JlYWR5OiBhY3RpdmUnKTsKKyAgcmV0dXJuIFty
ZWdpc3RyYXRpb24sIGV4cGVjdGVkX3VybF07Cit9CisKK2Z1bmN0aW9uIGFzc2VydF9pbnN0YWxs
aW5nX2FuZF9hY3RpdmUocmVnaXN0cmF0aW9uLCBleHBlY3RlZF91cmwpIHsKKyAgYXNzZXJ0X2Vx
dWFscyhyZWdpc3RyYXRpb24uaW5zdGFsbGluZy5zY3JpcHRVUkwsIGV4cGVjdGVkX3VybCwKKyAg
ICAgICAgICAgICAgICAnYXNzZXJ0X2luc3RhbGxpbmdfYW5kX2FjdGl2ZTogaW5zdGFsbGluZycp
OworICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi53YWl0aW5nLCBudWxsLAorICAgICAgICAg
ICAgICAgICdhc3NlcnRfaW5zdGFsbGluZ19hbmRfYWN0aXZlOiB3YWl0aW5nJyk7CisgIGFzc2Vy
dF9lcXVhbHMocmVnaXN0cmF0aW9uLmFjdGl2ZS5zY3JpcHRVUkwsIGV4cGVjdGVkX3VybCwKKyAg
ICAgICAgICAgICAgICAnYXNzZXJ0X2luc3RhbGxpbmdfYW5kX2FjdGl2ZTogYWN0aXZlJyk7Cit9
CisKK2Z1bmN0aW9uIGFzc2VydF93YWl0aW5nX2FuZF9hY3RpdmUocmVnaXN0cmF0aW9uLCBleHBl
Y3RlZF91cmwpIHsKKyAgYXNzZXJ0X2VxdWFscyhyZWdpc3RyYXRpb24uaW5zdGFsbGluZywgbnVs
bCwKKyAgICAgICAgICAgICAgICAnYXNzZXJ0X3dhaXRpbmdfYW5kX2FjdGl2ZTogaW5zdGFsbGlu
ZycpOworICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi53YWl0aW5nLnNjcmlwdFVSTCwgZXhw
ZWN0ZWRfdXJsLAorICAgICAgICAgICAgICAgICdhc3NlcnRfd2FpdGluZ19hbmRfYWN0aXZlOiB3
YWl0aW5nJyk7CisgIGFzc2VydF9lcXVhbHMocmVnaXN0cmF0aW9uLmFjdGl2ZS5zY3JpcHRVUkws
IGV4cGVjdGVkX3VybCwKKyAgICAgICAgICAgICAgICAnYXNzZXJ0X3dhaXRpbmdfYW5kX2FjdGl2
ZTogYWN0aXZlJyk7Cit9CisKK2Z1bmN0aW9uIGFzc2VydF9hY3RpdmVfb25seShyZWdpc3RyYXRp
b24sIGV4cGVjdGVkX3VybCkgeworICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi5pbnN0YWxs
aW5nLCBudWxsLAorICAgICAgICAgICAgICAgICdhc3NlcnRfYWN0aXZlX29ubHk6IGluc3RhbGxp
bmcnKTsKKyAgYXNzZXJ0X2VxdWFscyhyZWdpc3RyYXRpb24ud2FpdGluZywgbnVsbCwKKyAgICAg
ICAgICAgICAgICAnYXNzZXJ0X2FjdGl2ZV9vbmx5OiB3YWl0aW5nJyk7CisgIGFzc2VydF9lcXVh
bHMocmVnaXN0cmF0aW9uLmFjdGl2ZS5zY3JpcHRVUkwsIGV4cGVjdGVkX3VybCwKKyAgICAgICAg
ICAgICAgICAnYXNzZXJ0X2FjdGl2ZV9vbmx5OiBhY3RpdmUnKTsKK30KKworcHJvbWlzZV90ZXN0
KGFzeW5jIHQgPT4geworICBjb25zdCBbcmVnaXN0cmF0aW9uLCBleHBlY3RlZF91cmxdID0KKyAg
ICAgIGF3YWl0IHByZXBhcmVfcmVhZHlfdXBkYXRlX3dvcmtlcl9mcm9tX2ZpbGUoCisgICAgICAg
ICAgdCwgJ2VtcHR5LmpzJywgJ2ltcG9ydC1zY3JpcHRzLTQwNC5qcycpOworICB0LmFkZF9jbGVh
bnVwKCgpID0+IHJlZ2lzdHJhdGlvbi51bnJlZ2lzdGVyKCkpOworCisgIGF3YWl0IHByb21pc2Vf
cmVqZWN0cyh0LCBuZXcgVHlwZUVycm9yKCksIHJlZ2lzdHJhdGlvbi51cGRhdGUoKSk7CisgIGFz
c2VydF9hY3RpdmVfb25seShyZWdpc3RyYXRpb24sIGV4cGVjdGVkX3VybCk7Cit9LCAndXBkYXRl
KCkgc2hvdWxkIGZhaWwgd2hlbiBhIG5ldyB3b3JrZXIgaW1wb3J0cyBhbiB1bmF2YWlsYWJsZSBz
Y3JpcHQuJyk7CisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgY29uc3QgW3JlZ2lzdHJh
dGlvbiwgZXhwZWN0ZWRfdXJsXSA9CisgICAgICBhd2FpdCBwcmVwYXJlX3JlYWR5X3VwZGF0ZV93
b3JrZXJfZnJvbV9maWxlKAorICAgICAgICAgIHQsICdpbXBvcnQtc2NyaXB0cy00MDQtYWZ0ZXIt
dXBkYXRlLmpzJywgJ2VtcHR5LmpzJyk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcmVnaXN0cmF0
aW9uLnVucmVnaXN0ZXIoKSk7CisKKyAgYXdhaXQgUHJvbWlzZS5hbGwoW3JlZ2lzdHJhdGlvbi51
cGRhdGUoKSwgd2FpdF9mb3JfdXBkYXRlKHQsIHJlZ2lzdHJhdGlvbildKTsKKyAgYXNzZXJ0X2lu
c3RhbGxpbmdfYW5kX2FjdGl2ZShyZWdpc3RyYXRpb24sIGV4cGVjdGVkX3VybCk7CisKKyAgYXdh
aXQgd2FpdF9mb3Jfc3RhdGUodCwgcmVnaXN0cmF0aW9uLmluc3RhbGxpbmcsICdpbnN0YWxsZWQn
KTsKKyAgYXNzZXJ0X3dhaXRpbmdfYW5kX2FjdGl2ZShyZWdpc3RyYXRpb24sIGV4cGVjdGVkX3Vy
bCk7CisKKyAgYXdhaXQgd2FpdF9mb3Jfc3RhdGUodCwgcmVnaXN0cmF0aW9uLndhaXRpbmcsICdh
Y3RpdmF0ZWQnKTsKKyAgYXNzZXJ0X2FjdGl2ZV9vbmx5KHJlZ2lzdHJhdGlvbiwgZXhwZWN0ZWRf
dXJsKTsKK30sICd1cGRhdGUoKSBzaG91bGQgc3VjY2VlZCB3aGVuIHRoZSBvbGQgaW1wb3J0ZWQg
c2NyaXB0IG5vIGxvbmdlciBleGlzdCBidXQgJyArCisgICAidGhlIG5ldyB3b3JrZXIgZG9lc24n
dCBpbXBvcnQgaXQuIik7CisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgY29uc3QgW3Jl
Z2lzdHJhdGlvbiwgZXhwZWN0ZWRfdXJsXSA9IGF3YWl0IHByZXBhcmVfcmVhZHlfbm9ybWFsX3dv
cmtlcigKKyAgICB0LCAnaW1wb3J0LXNjcmlwdHMtNDA0LWFmdGVyLXVwZGF0ZS5qcycpOworICB0
LmFkZF9jbGVhbnVwKCgpID0+IHJlZ2lzdHJhdGlvbi51bnJlZ2lzdGVyKCkpOworCisgIGF3YWl0
IHJlZ2lzdHJhdGlvbi51cGRhdGUoKTsKKyAgYXNzZXJ0X2FjdGl2ZV9vbmx5KHJlZ2lzdHJhdGlv
biwgZXhwZWN0ZWRfdXJsKTsKK30sICd1cGRhdGUoKSBzaG91bGQgdHJlYXQgNDA0IG9uIGltcG9y
dGVkIHNjcmlwdHMgYXMgbm8gY2hhbmdlLicpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7
CisgIGNvbnN0IFtyZWdpc3RyYXRpb24sIGV4cGVjdGVkX3VybF0gPSBhd2FpdCBwcmVwYXJlX3Jl
YWR5X25vcm1hbF93b3JrZXIoCisgICAgdCwgJ2ltcG9ydC1zY3JpcHRzLTQwNC1hZnRlci11cGRh
dGUtcGx1cy11cGRhdGUtd29ya2VyLmpzJywKKyAgICAgICBgQWRkaXRpb25hbEtleT0ke3Rva2Vu
KCl9YCk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIoKSk7
CisKKyAgYXdhaXQgcHJvbWlzZV9yZWplY3RzKHQsIG5ldyBUeXBlRXJyb3IoKSwgcmVnaXN0cmF0
aW9uLnVwZGF0ZSgpKTsKKyAgYXNzZXJ0X2FjdGl2ZV9vbmx5KHJlZ2lzdHJhdGlvbiwgZXhwZWN0
ZWRfdXJsKTsKK30sICd1cGRhdGUoKSBzaG91bGQgZmluZCBhbiB1cGRhdGUgaW4gYW4gaW1wb3J0
ZWQgc2NyaXB0IGJ1dCB1cGRhdGUoKSBzaG91bGQgJyArCisgICAncmVzdWx0IGluIGZhaWx1cmUg
ZHVlIHRvIG1pc3NpbmcgdGhlIG90aGVyIGltcG9ydGVkIHNjcmlwdC4nKTsKKzwvc2NyaXB0Pgor
PC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLW5vdC1hbGxvd2Vk
Lmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0ZS1ub3QtYWxsb3dl
ZC5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggYzk1OWFjZDViYmFmODk5MjI0YjcyNDliMWI2YjZk
MzBkNjQ5ZmIyMS4uNzkxYmUwYWI3NjY5MmYyZmI4N2Q2MGU4MWI3OGZmYTdhZGFlZDk1YiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLW5vdC1hbGxvd2VkLmh0dHBzLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUtbm90LWFsbG93ZWQuaHR0cHMt
ZXhwZWN0ZWQudHh0CkBAIC0xLDYgKzEsNSBAQAogCi1IYXJuZXNzIEVycm9yIChUSU1FT1VUKSwg
bWVzc2FnZSA9IG51bGwKLQotUEFTUyBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLnVwZGF0ZSgp
IGZyb20gY2xpZW50IHRocm93cyB3aGlsZSBpbnN0YWxsaW5nIHNlcnZpY2Ugd29ya2VyLiAKLVRJ
TUVPVVQgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbi51cGRhdGUoKSBmcm9tIGluc3RhbGxpbmcg
c2VydmljZSB3b3JrZXIgdGhyb3dzLiBUZXN0IHRpbWVkIG91dAorUEFTUyBTZXJ2aWNlV29ya2Vy
UmVnaXN0cmF0aW9uLnVwZGF0ZSgpIGZyb20gY2xpZW50IHN1Y2NlZWRzIHdoaWxlIGluc3RhbGxp
bmcgc2VydmljZSB3b3JrZXIuIAorRkFJTCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLnVwZGF0
ZSgpIGZyb20gaW5zdGFsbGluZyBzZXJ2aWNlIHdvcmtlciB0aHJvd3MuIGFzc2VydF9mYWxzZTog
dXBkYXRlKCkgc2hvdWxkIGhhdmUgZmFpbGVkLiBleHBlY3RlZCBmYWxzZSBnb3QgdHJ1ZQorRkFJ
TCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLnVwZGF0ZSgpIGZyb20gYWN0aXZlIHNlcnZpY2Ug
d29ya2VyIHN1Y2NlZWRzIHdoaWxlIGluc3RhbGxpbmcgc2VydmljZSB3b3JrZXIuIGFzc2VydF9l
cXVhbHM6IFNlcnZpY2Ugd29ya2VyIHNob3VsZCBiZSBhY3RpdmF0ZWQuIGV4cGVjdGVkICJyZWR1
bmRhbnQiIGJ1dCBnb3QgImFjdGl2YXRlZCIKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvdXBkYXRlLXJlZ2lzdHJhdGlvbi13aXRoLXR5cGUuaHR0cHMuaHRtbCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL3VwZGF0ZS1yZWdpc3RyYXRpb24td2l0aC10eXBlLmh0dHBzLmh0bWwKaW5kZXggZTdk
MzY5MjgxMmViOGEyNGYyNTNiODdlMTU3ZjRhNDM2NmUzMDk4ZS4uODEyZmEwYjRjN2NkYmRmY2M0
MGVjZGYwZjU0NzcyODhlMDQ1ZmZhYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBk
YXRlLXJlZ2lzdHJhdGlvbi13aXRoLXR5cGUuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci91cGRhdGUtcmVnaXN0cmF0aW9uLXdpdGgtdHlwZS5odHRwcy5odG1sCkBAIC0yLDcgKzIs
NyBAQAogPG1ldGEgY2hhcnNldD0idXRmLTgiPgogPHRpdGxlPlNlcnZpY2UgV29ya2VyOiBVcGRh
dGUgdGhlIHJlZ2lzdHJhdGlvbiB3aXRoIGEgZGlmZmVyZW50IHNjcmlwdCB0eXBlLjwvdGl0bGU+
CiA8IS0tIGNvbW1vbi5qcyBpcyBmb3IgZ3VpZCgpIC0tPgotPHNjcmlwdCBzcmM9Ii9jb21tb24v
c2VjdXJpdHktZmVhdHVyZXMvcmVzb3VyY2VzL2NvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iL2NvbW1vbi9zZWN1cml0eS1mZWF0dXJlcy9yZXNvdXJjZXMvY29tbW9uLnN1Yi5qcyI+
PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3Jp
cHQ+CiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3Jp
cHQ+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Rlc3QtaGVscGVycy5zdWIuanMiPjwvc2NyaXB0
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLmh0dHBzLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0ZS5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggOTY3
ZjBmNTg0ZDQwMDExNWU0NmQxYjM3MDM3OTkwY2VkNTMyNDBmYS4uMTNkM2ZkYjQ2ZjNmNzU1MzJj
NmJmYjM4ZDE2OGU5ZjIxMTM5OWZhOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBk
YXRlLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUuaHR0
cHMtZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsMTEgQEAKK0NPTlNPTEUgTUVTU0FHRTogTm90IGFs
bG93ZWQgdG8gZm9sbG93IGEgcmVkaXJlY3Rpb24gd2hpbGUgbG9hZGluZyBodHRwczovL2xvY2Fs
aG9zdDo5NDQzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvdXBkYXRl
LXdvcmtlci5weT9LZXk9YTI2ZGI5YjUtMDYxZC00MDc5LWEzMTAtM2E0Zjk0ZTNjZGE1Jk1vZGU9
cmVkaXJlY3QKK0NPTlNPTEUgTUVTU0FHRTogQ2Fubm90IGxvYWQgaHR0cHM6Ly9sb2NhbGhvc3Q6
OTQ0My9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3VwZGF0ZS13b3Jr
ZXIucHk/S2V5PWEyNmRiOWI1LTA2MWQtNDA3OS1hMzEwLTNhNGY5NGUzY2RhNSZNb2RlPXJlZGly
ZWN0IGR1ZSB0byBhY2Nlc3MgY29udHJvbCBjaGVja3MuCiAKLVBBU1MgVXBkYXRlIGEgcmVnaXN0
cmF0aW9uLiAKK1BBU1MgdXBkYXRlKCkgc2hvdWxkIHN1Y2NlZWQgd2hlbiBuZXcgc2NyaXB0IGlz
IGF2YWlsYWJsZS4gCitQQVNTIHVwZGF0ZSgpIHNob3VsZCBmYWlsIHdoZW4gbWltZSB0eXBlIGlz
IGludmFsaWQuIAorRkFJTCB1cGRhdGUoKSBzaG91bGQgZmFpbCB3aGVuIGEgcmVzcG9uc2UgZm9y
IHRoZSBtYWluIHNjcmlwdCBpcyByZWRpcmVjdC4gYXNzZXJ0X3Rocm93czogZnVuY3Rpb24gImZ1
bmN0aW9uICgpIHsgdGhyb3cgZSB9IiB0aHJldyBvYmplY3QgIlNlY3VyaXR5RXJyb3I6IFNjcmlw
dCBodHRwczovL2xvY2FsaG9zdDo5NDQzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9y
ZXNvdXJjZXMvdXBkYXRlLXdvcmtlci5weT9LZXk9YTI2ZGI5YjUtMDYxZC00MDc5LWEzMTAtM2E0
Zjk0ZTNjZGE1Jk1vZGU9cmVkaXJlY3QgbG9hZCBmYWlsZWQiICgiU2VjdXJpdHlFcnJvciIpIGV4
cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCitQQVNTIHVwZGF0ZSgpIHNo
b3VsZCBmYWlsIHdoZW4gYSBuZXcgc2NyaXB0IGNvbnRhaW5zIGEgc3ludGF4IGVycm9yLiAKK1BB
U1MgdXBkYXRlKCkgc2hvdWxkIHJlc29sdmUgd2hlbiB0aGUgaW5zdGFsbCBldmVudCB0aHJvd3Mu
IAorUEFTUyB1cGRhdGUoKSBzaG91bGQgZmFpbCB3aGVuIHRoZSBwZW5kaW5nIHVuaW5zdGFsbCBm
bGFnIGlzIHNldC4gCitQQVNTIHVwZGF0ZSgpIHNob3VsZCBzdWNjZWVkIHdoZW4gdGhlIHNjcmlw
dCBzaHJpbmtzLiAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLmh0dHBz
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUuaHR0cHMuaHRtbAppbmRleCA2NzE3ZDRk
N2FjMjg5YzhhMThiMTUwMGUyMTc5NWZkMTZjNTMyMWU3Li5mN2ZhZTM1ZWQyOGQ3YzgyYzI2MTc1
MmMyMmNkMDkxZTQ3MzgwMWIwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUu
aHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUuaHR0cHMuaHRtbApAQCAt
MSw1ICsxLDcgQEAKIDwhRE9DVFlQRSBodG1sPgogPHRpdGxlPlNlcnZpY2UgV29ya2VyOiBSZWdp
c3RyYXRpb24gdXBkYXRlKCk8L3RpdGxlPgorPG1ldGEgbmFtZT0idGltZW91dCIgY29udGVudD0i
bG9uZyI+Cis8c2NyaXB0IHNyYz0iL2NvbW1vbi91dGlscy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0
IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0i
L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzLWhlbHBlcnMuanMiPjwvc2NyaXB0PgpAQCAtNywxMTUgKzks
MTU2IEBACiA8c2NyaXB0PgogJ3VzZSBzdHJpY3QnOwogCi1wcm9taXNlX3Rlc3QoZnVuY3Rpb24o
dCkgewotICAgIHZhciBzY29wZSA9ICdyZXNvdXJjZXMvc2ltcGxlLnR4dCc7Ci0gICAgdmFyIHdv
cmtlcl91cmwgPSAncmVzb3VyY2VzL3VwZGF0ZS13b3JrZXIucHknOwotICAgIHZhciBleHBlY3Rl
ZF91cmwgPSBub3JtYWxpemVVUkwod29ya2VyX3VybCk7Ci0gICAgdmFyIHJlZ2lzdHJhdGlvbjsK
LQotICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCB3
b3JrZXJfdXJsLCBzY29wZSkKLSAgICAgIC50aGVuKGZ1bmN0aW9uKHIpIHsKLSAgICAgICAgICBy
ZWdpc3RyYXRpb24gPSByOwotICAgICAgICAgIHJldHVybiB3YWl0X2Zvcl9zdGF0ZSh0LCByZWdp
c3RyYXRpb24uaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOwotICAgICAgICB9KQotICAgICAgLnRo
ZW4oZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgYXNzZXJ0X2VxdWFscyhyZWdpc3RyYXRpb24uaW5z
dGFsbGluZywgbnVsbCwKLSAgICAgICAgICAgICAgICAgICAgICAgICdpbnN0YWxsaW5nIHNob3Vs
ZCBiZSBudWxsIGluIHRoZSBpbml0aWFsIHN0YXRlLicpOwotICAgICAgICAgIGFzc2VydF9lcXVh
bHMocmVnaXN0cmF0aW9uLndhaXRpbmcsIG51bGwsCi0gICAgICAgICAgICAgICAgICAgICAgICAn
d2FpdGluZyBzaG91bGQgYmUgbnVsbCBpbiB0aGUgaW5pdGlhbCBzdGF0ZS4nKTsKLSAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi5hY3RpdmUuc2NyaXB0VVJMLCBleHBlY3RlZF91
cmwsCi0gICAgICAgICAgICAgICAgICAgICAgICAnYWN0aXZlIHNob3VsZCBleGlzdCBpbiB0aGUg
aW5pdGlhbCBzdGF0ZS4nKTsKLSAgICAgICAgICAvLyBBIG5ldyB3b3JrZXIgKGdlbmVyYXRlZCBi
eSB1cGRhdGUtd29ya2VyLnB5KSBzaG91bGQgYmUgZm91bmQuCi0gICAgICAgICAgLy8gVGhlIHJl
dHVybmVkIHByb21pc2Ugc2hvdWxkIHJlc29sdmUgd2hlbiBhIG5ldyB3b3JrZXIgc2NyaXB0IGlz
Ci0gICAgICAgICAgLy8gZmV0Y2hlZCBhbmQgc3RhcnRzIGluc3RhbGxpbmcuCi0gICAgICAgICAg
cmV0dXJuIFByb21pc2UuYWxsKFtyZWdpc3RyYXRpb24udXBkYXRlKCksCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB3YWl0X2Zvcl91cGRhdGUodCwgcmVnaXN0cmF0aW9uKV0pOwotICAg
ICAgICB9KQotICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgYXNzZXJ0X2VxdWFs
cyhyZWdpc3RyYXRpb24uaW5zdGFsbGluZy5zY3JpcHRVUkwsIGV4cGVjdGVkX3VybCwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICduZXcgaW5zdGFsbGluZyBzaG91bGQgYmUgc2V0IGFmdGVyIHVw
ZGF0ZSByZXNvbHZlcy4nKTsKLSAgICAgICAgICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi53
YWl0aW5nLCBudWxsLAotICAgICAgICAgICAgICAgICAgICAgICAgJ3dhaXRpbmcgc2hvdWxkIHN0
aWxsIGJlIG51bGwgYWZ0ZXIgdXBkYXRlIHJlc29sdmVzLicpOwotICAgICAgICAgIGFzc2VydF9l
cXVhbHMocmVnaXN0cmF0aW9uLmFjdGl2ZS5zY3JpcHRVUkwsIGV4cGVjdGVkX3VybCwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICdhY3RpdmUgc2hvdWxkIHN0aWxsIGV4aXN0IGFmdGVyIHVwZGF0
ZSBmb3VuZC4nKTsKLSAgICAgICAgICByZXR1cm4gd2FpdF9mb3Jfc3RhdGUodCwgcmVnaXN0cmF0
aW9uLmluc3RhbGxpbmcsICdpbnN0YWxsZWQnKTsKLSAgICAgICAgfSkKLSAgICAgIC50aGVuKGZ1
bmN0aW9uKCkgewotICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVnaXN0cmF0aW9uLmluc3RhbGxp
bmcsIG51bGwsCi0gICAgICAgICAgICAgICAgICAgICAgICAnaW5zdGFsbGluZyBzaG91bGQgYmUg
bnVsbCBhZnRlciBpbnN0YWxsaW5nLicpOwotICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVnaXN0
cmF0aW9uLndhaXRpbmcuc2NyaXB0VVJMLCBleHBlY3RlZF91cmwsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAnd2FpdGluZyBzaG91bGQgYmUgc2V0IGFmdGVyIGluc3RhbGxpbmcuJyk7Ci0gICAg
ICAgICAgYXNzZXJ0X2VxdWFscyhyZWdpc3RyYXRpb24uYWN0aXZlLnNjcmlwdFVSTCwgZXhwZWN0
ZWRfdXJsLAotICAgICAgICAgICAgICAgICAgICAgICAgJ2FjdGl2ZSBzaG91bGQgc3RpbGwgZXhp
c3QgYWZ0ZXIgaW5zdGFsbGluZy4nKTsKLSAgICAgICAgICByZXR1cm4gd2FpdF9mb3Jfc3RhdGUo
dCwgcmVnaXN0cmF0aW9uLndhaXRpbmcsICdhY3RpdmF0ZWQnKTsKLSAgICAgICAgfSkKLSAgICAg
IC50aGVuKGZ1bmN0aW9uKCkgewotICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVnaXN0cmF0aW9u
Lmluc3RhbGxpbmcsIG51bGwsCi0gICAgICAgICAgICAgICAgICAgICAgICAnaW5zdGFsbGluZyBz
aG91bGQgYmUgbnVsbCBhZnRlciBhY3RpdmF0ZWQuJyk7Ci0gICAgICAgICAgYXNzZXJ0X2VxdWFs
cyhyZWdpc3RyYXRpb24ud2FpdGluZywgbnVsbCwKLSAgICAgICAgICAgICAgICAgICAgICAgICd3
YWl0aW5nIHNob3VsZCBiZSBudWxsIGFmdGVyIGFjdGl2YXRlZC4nKTsKLSAgICAgICAgICBhc3Nl
cnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi5hY3RpdmUuc2NyaXB0VVJMLCBleHBlY3RlZF91cmwsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAnbmV3IHdvcmtlciBzaG91bGQgYmUgcHJvbW90ZWQgdG8g
YWN0aXZlLicpOwotICAgICAgICB9KQotICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7Ci0gICAgICAg
ICAgLy8gQSBuZXcgd29ya2VyKGdlbmVyYXRlZCBieSB1cGRhdGUtd29ya2VyLnB5KSBzaG91bGQg
YmUgZm91bmQuCi0gICAgICAgICAgLy8gVGhlIHJldHVybmVkIHByb21pc2Ugc2hvdWxkIHJlamVj
dCBhcyB1cGRhdGUtd29ya2VyLnB5IHNldHMgdGhlCi0gICAgICAgICAgLy8gbWltZXR5cGUgdG8g
YSBkaXNhbGxvd2VkIHZhbHVlIGZvciB0aGlzIGF0dGVtcHQuCi0gICAgICAgICAgcmV0dXJuIHJl
Z2lzdHJhdGlvbi51cGRhdGUoKTsKLSAgICAgICAgfSkKLSAgICAgIC50aGVuKAotICAgICAgICBm
dW5jdGlvbigpIHsgYXNzZXJ0X3VucmVhY2hlZCgidXBkYXRlKCkgc2hvdWxkIHJlamVjdC4iKTsg
fSwKLSAgICAgICAgZnVuY3Rpb24oZSkgewotICAgICAgICAgIGFzc2VydF90aHJvd3MoJ1NlY3Vy
aXR5RXJyb3InLCBmdW5jdGlvbigpIHsgdGhyb3cgZTsgfSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICdVc2luZyBhIGRpc2FsbG93ZWQgbWltZXR5cGUgc2hvdWxkIG1ha2UgdXBkYXRlKCkgJyAr
Ci0gICAgICAgICAgICAgICAgICAgICAgICAncHJvbWlzZSByZWplY3Qgd2l0aCBhIFNlY3VyaXR5
RXJyb3IuJyk7Ci0gICAgICAgICAgYXNzZXJ0X2VxdWFscyhyZWdpc3RyYXRpb24uYWN0aXZlLnNj
cmlwdFVSTCwgZXhwZWN0ZWRfdXJsLAotICAgICAgICAgICAgICAgICAgICAgICAgJ2FjdGl2ZSBz
aG91bGQgc3RpbGwgZXhpc3QgYWZ0ZXIgdXBkYXRlIGZhaWx1cmUuJyk7Ci0KLSAgICAgICAgICAv
LyBBIG5ldyB3b3JrZXIoZ2VuZXJhdGVkIGJ5IHVwZGF0ZS13b3JrZXIucHkpIHNob3VsZCBiZSBm
b3VuZC4KLSAgICAgICAgICAvLyBUaGUgcmV0dXJuZWQgcHJvbWlzZSBzaG91bGQgcmVqZWN0IGFz
IHVwZGF0ZS13b3JrZXIucHkgcmV0dXJucwotICAgICAgICAgIC8vIGEgd29ya2VyIHNjcmlwdCB3
aXRoIGEgc3ludGF4IGVycm9yLgotICAgICAgICAgIHJldHVybiByZWdpc3RyYXRpb24udXBkYXRl
KCk7Ci0gICAgICAgIH0pCi0gICAgICAudGhlbigKLSAgICAgICAgZnVuY3Rpb24oKSB7IGFzc2Vy
dF91bnJlYWNoZWQoInVwZGF0ZSgpIHNob3VsZCByZWplY3QuIik7IH0sCi0gICAgICAgIGZ1bmN0
aW9uKGUpIHsKLSAgICAgICAgICBhc3NlcnRfdGhyb3dzKHtuYW1lOiAnVHlwZUVycm9yJ30sIGZ1
bmN0aW9uICgpIHsgdGhyb3cgZTsgfSwKLSAgICAgICAgICAgICAgICAgICAgICAgICdBIHNjcmlw
dCBzeW50YXggZXJyb3Igc2hvdWxkIG1ha2UgdXBkYXRlKCkgJyArCi0gICAgICAgICAgICAgICAg
ICAgICAgICAncHJvbWlzZSByZWplY3Qgd2l0aCBhIFR5cGVFcnJvci4nKTsKLSAgICAgICAgICBh
c3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi5hY3RpdmUuc2NyaXB0VVJMLCBleHBlY3RlZF91cmws
Ci0gICAgICAgICAgICAgICAgICAgICAgICAnYWN0aXZlIHNob3VsZCBzdGlsbCBleGlzdCBhZnRl
ciB1cGRhdGUgZmFpbHVyZS4nKTsKLQotICAgICAgICAgIC8vIEEgbmV3IHdvcmtlcihnZW5lcmF0
ZWQgYnkgdXBkYXRlLXdvcmtlci5weSkgc2hvdWxkIGJlIGZvdW5kLgotICAgICAgICAgIC8vIFRo
ZSByZXR1cm5lZCBwcm9taXNlIHNob3VsZCBub3QgcmVqZWN0LCBldmVuIHRob3VnaAotICAgICAg
ICAgIC8vIHVwZGF0ZS13b3JrZXIucHkgcmV0dXJucyBhIHdvcmtlciBzY3JpcHQgdGhhdCB0aHJv
d3MgaW4gdGhlCi0gICAgICAgICAgLy8gaW5zdGFsbCBldmVudCBoYW5kbGVyLgotICAgICAgICAg
IHJldHVybiBQcm9taXNlLmFsbChbcmVnaXN0cmF0aW9uLnVwZGF0ZSgpLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgd2FpdF9mb3JfdXBkYXRlKHQsIHJlZ2lzdHJhdGlvbildKTsKLSAg
ICAgICAgfSkKLSAgICAgIC50aGVuKGZ1bmN0aW9uKCkgewotICAgICAgICAgIGFzc2VydF9lcXVh
bHMocmVnaXN0cmF0aW9uLmluc3RhbGxpbmcuc2NyaXB0VVJMLCBleHBlY3RlZF91cmwsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAnbmV3IGluc3RhbGxpbmcgc2hvdWxkIGJlIHNldCBhZnRlciB1
cGRhdGUgcmVzb2x2ZXMuJyk7Ci0gICAgICAgICAgYXNzZXJ0X2VxdWFscyhyZWdpc3RyYXRpb24u
d2FpdGluZywgbnVsbCwKLSAgICAgICAgICAgICAgICAgICAgICAgICd3YWl0aW5nIHNob3VsZCBi
ZSBudWxsIGFmdGVyIGFjdGl2YXRlZC4nKTsKLSAgICAgICAgICBhc3NlcnRfZXF1YWxzKHJlZ2lz
dHJhdGlvbi5hY3RpdmUuc2NyaXB0VVJMLCBleHBlY3RlZF91cmwsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAnYWN0aXZlIHNob3VsZCBzdGlsbCBleGlzdCBhZnRlciB1cGRhdGUgZm91bmQuJyk7
Ci0KLSAgICAgICAgICAvLyBXZSBuZWVkIHRvIGhvbGQgYSBjbGllbnQgYWxpdmUgc28gdGhhdCB1
bnJlZ2lzdGVyKCkgYmVsb3cgZG9lc24ndAotICAgICAgICAgIC8vIHJlbW92ZSB0aGUgcmVnaXN0
cmF0aW9uIGJlZm9yZSB1cGRhdGUoKSBoYXMgaGFkIGEgY2hhbmNlIHRvIGxvb2sKLSAgICAgICAg
ICAvLyBhdCB0aGUgcGVuZGluZyB1bmluc3RhbGwgZmxhZy4KLSAgICAgICAgICByZXR1cm4gd2l0
aF9pZnJhbWUoc2NvcGUpOwotICAgICAgICB9KQotICAgICAgLnRoZW4oZnVuY3Rpb24oZnJhbWUp
IHsKLSAgICAgICAgICB0LmFkZF9jbGVhbnVwKGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICBm
cmFtZS5yZW1vdmUoKTsKLSAgICAgICAgICAgIH0pOwotCi0gICAgICAgICAgcmV0dXJuIGFzc2Vy
dF9wcm9taXNlX3JlamVjdHMoCi0gICAgICAgICAgICAgIFByb21pc2UuYWxsKFtyZWdpc3RyYXRp
b24udW5yZWdpc3RlcigpLCByZWdpc3RyYXRpb24udXBkYXRlKCldKSwKLSAgICAgICAgICAgICAg
bmV3IFR5cGVFcnJvcigpLAotICAgICAgICAgICAgICAnQ2FsbGluZyB1cGRhdGUoKSB3aGlsZSB0
aGUgdW5pbnN0YWxsaW5nIGZsYWcgaXMgc2V0ICcgKwotICAgICAgICAgICAgICAnc2hvdWxkIHJl
dHVybiBhIHByb21pc2UgdGhhdCByZWplY3RzIHdpdGggYSBUeXBlRXJyb3IuJyk7Ci0gICAgICAg
IH0pOwotICB9LCAnVXBkYXRlIGEgcmVnaXN0cmF0aW9uLicpOworY29uc3QgU0NPUEUgPSAncmVz
b3VyY2VzL3NpbXBsZS50eHQnOworCisvLyBDcmVhdGUgYSBzZXJ2aWNlIHdvcmtlciAodXBkYXRl
LXdvcmtlci5weSkuIFRoZSByZXNwb25zZSB0byB1cGRhdGUoKSB3aWxsIGJlCisvLyBkaWZmZXJl
bnQgYmFzZWQgb24gdGhlIG1vZGUuCithc3luYyBmdW5jdGlvbiBwcmVwYXJlX3JlYWR5X3JlZ2lz
dHJhdGlvbl93aXRoX21vZGUodCwgbW9kZSkgeworICBjb25zdCBrZXkgPSB0b2tlbigpOworICBj
b25zdCB3b3JrZXJfdXJsID0gYHJlc291cmNlcy91cGRhdGUtd29ya2VyLnB5P0tleT0ke2tleX0m
TW9kZT0ke21vZGV9YDsKKyAgY29uc3QgZXhwZWN0ZWRfdXJsID0gbm9ybWFsaXplVVJMKHdvcmtl
cl91cmwpOworICBjb25zdCByZWdpc3RyYXRpb24gPSBhd2FpdCBzZXJ2aWNlX3dvcmtlcl91bnJl
Z2lzdGVyX2FuZF9yZWdpc3RlcigKKyAgICAgIHQsIHdvcmtlcl91cmwsIFNDT1BFKTsKKyAgYXdh
aXQgd2FpdF9mb3Jfc3RhdGUodCwgcmVnaXN0cmF0aW9uLmluc3RhbGxpbmcsICdhY3RpdmF0ZWQn
KTsKKyAgYXNzZXJ0X2VxdWFscyhyZWdpc3RyYXRpb24uaW5zdGFsbGluZywgbnVsbCwKKyAgICAg
ICAgICAgICAgICAncHJlcGFyZV9yZWFkeTogaW5zdGFsbGluZycpOworICBhc3NlcnRfZXF1YWxz
KHJlZ2lzdHJhdGlvbi53YWl0aW5nLCBudWxsLAorICAgICAgICAgICAgICAgICdwcmVwYXJlX3Jl
YWR5OiB3YWl0aW5nJyk7CisgIGFzc2VydF9lcXVhbHMocmVnaXN0cmF0aW9uLmFjdGl2ZS5zY3Jp
cHRVUkwsIGV4cGVjdGVkX3VybCwKKyAgICAgICAgICAgICAgICAncHJlcGFyZV9yZWFkeTogYWN0
aXZlJyk7CisgIHJldHVybiBbcmVnaXN0cmF0aW9uLCBleHBlY3RlZF91cmxdOworfQorCisvLyBD
cmVhdGUgYSBzZXJ2aWNlIHdvcmtlciAodXBkYXRlLXdvcmtlci1mcm9tLWZpbGUucHkpLCB3aGlj
aCBpcyBpbml0aWFsbHkKKy8vIHxpbml0aWFsX3dvcmtlcnwgYW5kIHx1cGRhdGVkX3dvcmtlcnwg
bGF0ZXIuCithc3luYyBmdW5jdGlvbiBwcmVwYXJlX3JlYWR5X3JlZ2lzdHJhdGlvbl93aXRoX2Zp
bGUoCisgICAgdCwgaW5pdGlhbF93b3JrZXIsIHVwZGF0ZWRfd29ya2VyKSB7CisgIGNvbnN0IGtl
eSA9IHRva2VuKCk7CisgIGNvbnN0IHdvcmtlcl91cmwgPSBgcmVzb3VyY2VzL3VwZGF0ZS13b3Jr
ZXItZnJvbS1maWxlLnB5P2AgKworICAgICAgYEZpcnN0PSR7aW5pdGlhbF93b3JrZXJ9JlNlY29u
ZD0ke3VwZGF0ZWRfd29ya2VyfSZLZXk9JHtrZXl9YDsKKyAgY29uc3QgZXhwZWN0ZWRfdXJsID0g
bm9ybWFsaXplVVJMKHdvcmtlcl91cmwpOworCisgIGNvbnN0IHJlZ2lzdHJhdGlvbiA9IGF3YWl0
IHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKAorICAgICAgdCwgd29ya2Vy
X3VybCwgU0NPUEUpOworICBhd2FpdCB3YWl0X2Zvcl9zdGF0ZSh0LCByZWdpc3RyYXRpb24uaW5z
dGFsbGluZywgJ2FjdGl2YXRlZCcpOworICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi5pbnN0
YWxsaW5nLCBudWxsLAorICAgICAgICAgICAgICAgICdwcmVwYXJlX3JlYWR5OiBpbnN0YWxsaW5n
Jyk7CisgIGFzc2VydF9lcXVhbHMocmVnaXN0cmF0aW9uLndhaXRpbmcsIG51bGwsCisgICAgICAg
ICAgICAgICAgJ3ByZXBhcmVfcmVhZHk6IHdhaXRpbmcnKTsKKyAgYXNzZXJ0X2VxdWFscyhyZWdp
c3RyYXRpb24uYWN0aXZlLnNjcmlwdFVSTCwgZXhwZWN0ZWRfdXJsLAorICAgICAgICAgICAgICAg
ICdwcmVwYXJlX3JlYWR5OiBhY3RpdmUnKTsKKyAgcmV0dXJuIFtyZWdpc3RyYXRpb24sIGV4cGVj
dGVkX3VybF07Cit9CisKK2Z1bmN0aW9uIGFzc2VydF9pbnN0YWxsaW5nX2FuZF9hY3RpdmUocmVn
aXN0cmF0aW9uLCBleHBlY3RlZF91cmwpIHsKKyAgYXNzZXJ0X2VxdWFscyhyZWdpc3RyYXRpb24u
aW5zdGFsbGluZy5zY3JpcHRVUkwsIGV4cGVjdGVkX3VybCwKKyAgICAgICAgICAgICAgICAnYXNz
ZXJ0X2luc3RhbGxpbmdfYW5kX2FjdGl2ZTogaW5zdGFsbGluZycpOworICBhc3NlcnRfZXF1YWxz
KHJlZ2lzdHJhdGlvbi53YWl0aW5nLCBudWxsLAorICAgICAgICAgICAgICAgICdhc3NlcnRfaW5z
dGFsbGluZ19hbmRfYWN0aXZlOiB3YWl0aW5nJyk7CisgIGFzc2VydF9lcXVhbHMocmVnaXN0cmF0
aW9uLmFjdGl2ZS5zY3JpcHRVUkwsIGV4cGVjdGVkX3VybCwKKyAgICAgICAgICAgICAgICAnYXNz
ZXJ0X2luc3RhbGxpbmdfYW5kX2FjdGl2ZTogYWN0aXZlJyk7Cit9CisKK2Z1bmN0aW9uIGFzc2Vy
dF93YWl0aW5nX2FuZF9hY3RpdmUocmVnaXN0cmF0aW9uLCBleHBlY3RlZF91cmwpIHsKKyAgYXNz
ZXJ0X2VxdWFscyhyZWdpc3RyYXRpb24uaW5zdGFsbGluZywgbnVsbCwKKyAgICAgICAgICAgICAg
ICAnYXNzZXJ0X3dhaXRpbmdfYW5kX2FjdGl2ZTogaW5zdGFsbGluZycpOworICBhc3NlcnRfZXF1
YWxzKHJlZ2lzdHJhdGlvbi53YWl0aW5nLnNjcmlwdFVSTCwgZXhwZWN0ZWRfdXJsLAorICAgICAg
ICAgICAgICAgICdhc3NlcnRfd2FpdGluZ19hbmRfYWN0aXZlOiB3YWl0aW5nJyk7CisgIGFzc2Vy
dF9lcXVhbHMocmVnaXN0cmF0aW9uLmFjdGl2ZS5zY3JpcHRVUkwsIGV4cGVjdGVkX3VybCwKKyAg
ICAgICAgICAgICAgICAnYXNzZXJ0X3dhaXRpbmdfYW5kX2FjdGl2ZTogYWN0aXZlJyk7Cit9CisK
K2Z1bmN0aW9uIGFzc2VydF9hY3RpdmVfb25seShyZWdpc3RyYXRpb24sIGV4cGVjdGVkX3VybCkg
eworICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLCBudWxsLAorICAgICAg
ICAgICAgICAgICdhc3NlcnRfYWN0aXZlX29ubHk6IGluc3RhbGxpbmcnKTsKKyAgYXNzZXJ0X2Vx
dWFscyhyZWdpc3RyYXRpb24ud2FpdGluZywgbnVsbCwKKyAgICAgICAgICAgICAgICAnYXNzZXJ0
X2FjdGl2ZV9vbmx5OiB3YWl0aW5nJyk7CisgIGFzc2VydF9lcXVhbHMocmVnaXN0cmF0aW9uLmFj
dGl2ZS5zY3JpcHRVUkwsIGV4cGVjdGVkX3VybCwKKyAgICAgICAgICAgICAgICAnYXNzZXJ0X2Fj
dGl2ZV9vbmx5OiBhY3RpdmUnKTsKK30KKworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBj
b25zdCBbcmVnaXN0cmF0aW9uLCBleHBlY3RlZF91cmxdID0KKyAgICAgIGF3YWl0IHByZXBhcmVf
cmVhZHlfcmVnaXN0cmF0aW9uX3dpdGhfbW9kZSh0LCAnbm9ybWFsJyk7CisgIHQuYWRkX2NsZWFu
dXAoKCkgPT4gcmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIoKSk7CisKKyAgYXdhaXQgUHJvbWlzZS5h
bGwoW3JlZ2lzdHJhdGlvbi51cGRhdGUoKSwgd2FpdF9mb3JfdXBkYXRlKHQsIHJlZ2lzdHJhdGlv
bildKTsKKyAgYXNzZXJ0X2luc3RhbGxpbmdfYW5kX2FjdGl2ZShyZWdpc3RyYXRpb24sIGV4cGVj
dGVkX3VybCk7CisKKyAgYXdhaXQgd2FpdF9mb3Jfc3RhdGUodCwgcmVnaXN0cmF0aW9uLmluc3Rh
bGxpbmcsICdpbnN0YWxsZWQnKTsKKyAgYXNzZXJ0X3dhaXRpbmdfYW5kX2FjdGl2ZShyZWdpc3Ry
YXRpb24sIGV4cGVjdGVkX3VybCk7CisKKyAgYXdhaXQgd2FpdF9mb3Jfc3RhdGUodCwgcmVnaXN0
cmF0aW9uLndhaXRpbmcsICdhY3RpdmF0ZWQnKTsKKyAgYXNzZXJ0X2FjdGl2ZV9vbmx5KHJlZ2lz
dHJhdGlvbiwgZXhwZWN0ZWRfdXJsKTsKK30sICd1cGRhdGUoKSBzaG91bGQgc3VjY2VlZCB3aGVu
IG5ldyBzY3JpcHQgaXMgYXZhaWxhYmxlLicpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7
CisgIGNvbnN0IFtyZWdpc3RyYXRpb24sIGV4cGVjdGVkX3VybF0gPQorICAgICAgYXdhaXQgcHJl
cGFyZV9yZWFkeV9yZWdpc3RyYXRpb25fd2l0aF9tb2RlKHQsICdiYWRfbWltZV90eXBlJyk7Cisg
IHQuYWRkX2NsZWFudXAoKCkgPT4gcmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIoKSk7CisKKyAgYXdh
aXQgcHJvbWlzZV9yZWplY3RzKHQsICdTZWN1cml0eUVycm9yJywgcmVnaXN0cmF0aW9uLnVwZGF0
ZSgpKTsKKyAgYXNzZXJ0X2FjdGl2ZV9vbmx5KHJlZ2lzdHJhdGlvbiwgZXhwZWN0ZWRfdXJsKTsK
K30sICd1cGRhdGUoKSBzaG91bGQgZmFpbCB3aGVuIG1pbWUgdHlwZSBpcyBpbnZhbGlkLicpOwor
Citwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0IFtyZWdpc3RyYXRpb24sIGV4cGVj
dGVkX3VybF0gPQorICAgICAgYXdhaXQgcHJlcGFyZV9yZWFkeV9yZWdpc3RyYXRpb25fd2l0aF9t
b2RlKHQsICdyZWRpcmVjdCcpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHJlZ2lzdHJhdGlvbi51
bnJlZ2lzdGVyKCkpOworCisgIGF3YWl0IHByb21pc2VfcmVqZWN0cyh0LCBuZXcgVHlwZUVycm9y
KCksIHJlZ2lzdHJhdGlvbi51cGRhdGUoKSk7CisgIGFzc2VydF9hY3RpdmVfb25seShyZWdpc3Ry
YXRpb24sIGV4cGVjdGVkX3VybCk7Cit9LCAndXBkYXRlKCkgc2hvdWxkIGZhaWwgd2hlbiBhIHJl
c3BvbnNlIGZvciB0aGUgbWFpbiBzY3JpcHQgaXMgcmVkaXJlY3QuJyk7CisKK3Byb21pc2VfdGVz
dChhc3luYyB0ID0+IHsKKyAgY29uc3QgW3JlZ2lzdHJhdGlvbiwgZXhwZWN0ZWRfdXJsXSA9Cisg
ICAgICBhd2FpdCBwcmVwYXJlX3JlYWR5X3JlZ2lzdHJhdGlvbl93aXRoX21vZGUodCwgJ3N5bnRh
eF9lcnJvcicpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHJlZ2lzdHJhdGlvbi51bnJlZ2lzdGVy
KCkpOworCisgIGF3YWl0IHByb21pc2VfcmVqZWN0cyh0LCBuZXcgVHlwZUVycm9yKCksIHJlZ2lz
dHJhdGlvbi51cGRhdGUoKSk7CisgIGFzc2VydF9hY3RpdmVfb25seShyZWdpc3RyYXRpb24sIGV4
cGVjdGVkX3VybCk7Cit9LCAndXBkYXRlKCkgc2hvdWxkIGZhaWwgd2hlbiBhIG5ldyBzY3JpcHQg
Y29udGFpbnMgYSBzeW50YXggZXJyb3IuJyk7CisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsK
KyAgY29uc3QgW3JlZ2lzdHJhdGlvbiwgZXhwZWN0ZWRfdXJsXSA9CisgICAgICBhd2FpdCBwcmVw
YXJlX3JlYWR5X3JlZ2lzdHJhdGlvbl93aXRoX21vZGUodCwgJ3Rocm93X2luc3RhbGwnKTsKKyAg
dC5hZGRfY2xlYW51cCgoKSA9PiByZWdpc3RyYXRpb24udW5yZWdpc3RlcigpKTsKKworICBhd2Fp
dCBQcm9taXNlLmFsbChbcmVnaXN0cmF0aW9uLnVwZGF0ZSgpLCB3YWl0X2Zvcl91cGRhdGUodCwg
cmVnaXN0cmF0aW9uKV0pOworICBhc3NlcnRfaW5zdGFsbGluZ19hbmRfYWN0aXZlKHJlZ2lzdHJh
dGlvbiwgZXhwZWN0ZWRfdXJsKTsKK30sICd1cGRhdGUoKSBzaG91bGQgcmVzb2x2ZSB3aGVuIHRo
ZSBpbnN0YWxsIGV2ZW50IHRocm93cy4nKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewor
ICBjb25zdCBbcmVnaXN0cmF0aW9uLCBleHBlY3RlZF91cmxdID0KKyAgICAgIGF3YWl0IHByZXBh
cmVfcmVhZHlfcmVnaXN0cmF0aW9uX3dpdGhfbW9kZSh0LCAnbm9ybWFsJyk7CisgIHQuYWRkX2Ns
ZWFudXAoKCkgPT4gcmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIoKSk7CisKKyAgLy8gV2UgbmVlZCB0
byBob2xkIGEgY2xpZW50IGFsaXZlIHNvIHRoYXQgdW5yZWdpc3RlcigpIGJlbG93IGRvZXNuJ3Qg
cmVtb3ZlCisgIC8vIHRoZSByZWdpc3RyYXRpb24gYmVmb3JlIHVwZGF0ZSgpIGhhcyBoYWQgYSBj
aGFuY2UgdG8gbG9vayBhdCB0aGUgcGVuZGluZworICAvLyB1bmluc3RhbGwgZmxhZy4KKyAgY29u
c3QgZnJhbWUgPSBhd2FpdCB3aXRoX2lmcmFtZShTQ09QRSk7CisgIHQuYWRkX2NsZWFudXAoKCkg
PT4gZnJhbWUucmVtb3ZlKCkpOworCisgIGF3YWl0IHByb21pc2VfcmVqZWN0cygKKyAgICAgIHQs
IG5ldyBUeXBlRXJyb3IoKSwKKyAgICAgIFByb21pc2UuYWxsKFtyZWdpc3RyYXRpb24udW5yZWdp
c3RlcigpLCByZWdpc3RyYXRpb24udXBkYXRlKCldKSk7Cit9LCAndXBkYXRlKCkgc2hvdWxkIGZh
aWwgd2hlbiB0aGUgcGVuZGluZyB1bmluc3RhbGwgZmxhZyBpcyBzZXQuJyk7CisKK3Byb21pc2Vf
dGVzdChhc3luYyB0ID0+IHsKKyAgY29uc3QgW3JlZ2lzdHJhdGlvbiwgZXhwZWN0ZWRfdXJsXSA9
CisgICAgICBhd2FpdCBwcmVwYXJlX3JlYWR5X3JlZ2lzdHJhdGlvbl93aXRoX2ZpbGUoCisgICAg
ICAgIHQsCisgICAgICAgICd1cGRhdGUtc21hbGxlci1ib2R5LWJlZm9yZS11cGRhdGUtd29ya2Vy
LmpzJywKKyAgICAgICAgJ3VwZGF0ZS1zbWFsbGVyLWJvZHktYWZ0ZXItdXBkYXRlLXdvcmtlci5q
cycpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHJlZ2lzdHJhdGlvbi51bnJlZ2lzdGVyKCkpOwor
CisgIGF3YWl0IFByb21pc2UuYWxsKFtyZWdpc3RyYXRpb24udXBkYXRlKCksIHdhaXRfZm9yX3Vw
ZGF0ZSh0LCByZWdpc3RyYXRpb24pXSk7CisgIGFzc2VydF9pbnN0YWxsaW5nX2FuZF9hY3RpdmUo
cmVnaXN0cmF0aW9uLCBleHBlY3RlZF91cmwpOworCisgIGF3YWl0IHdhaXRfZm9yX3N0YXRlKHQs
IHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLCAnaW5zdGFsbGVkJyk7CisgIGFzc2VydF93YWl0aW5n
X2FuZF9hY3RpdmUocmVnaXN0cmF0aW9uLCBleHBlY3RlZF91cmwpOworCisgIGF3YWl0IHdhaXRf
Zm9yX3N0YXRlKHQsIHJlZ2lzdHJhdGlvbi53YWl0aW5nLCAnYWN0aXZhdGVkJyk7CisgIGFzc2Vy
dF9hY3RpdmVfb25seShyZWdpc3RyYXRpb24sIGV4cGVjdGVkX3VybCk7Cit9LCAndXBkYXRlKCkg
c2hvdWxkIHN1Y2NlZWQgd2hlbiB0aGUgc2NyaXB0IHNocmlua3MuJyk7CiA8L3NjcmlwdD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvdzNjLWltcG9ydC5sb2cKaW5kZXggYTMzZWYwNWI0YmMwNzcyOGIxOTg3NjNmZTliZmYx
NDQ5M2RlOGEwZi4uMThiYTI1ZDQyYjNlMzRiNGY1ZTRmZTE1MzAzY2UzMmExMDkzNDYyMyAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdzNjLWltcG9ydC5sb2cKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvdzNjLWltcG9ydC5sb2cKQEAgLTM3LDYgKzM3LDcgQEAgTGlzdCBvZiBmaWxlczoK
IC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9jbGllbnRzLWdldC5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvY2xpZW50cy1tYXRjaGFsbC1jbGllbnQtdHlwZXMuaHR0cHMuaHRtbAogL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL2NsaWVudHMtbWF0Y2hhbGwtZXhhY3QtY29udHJvbGxlci5odHRwcy5odG1sCisv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvY2xpZW50cy1tYXRjaGFsbC1mcm96ZW4uaHR0cHMuaHRtbAogL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL2NsaWVudHMtbWF0Y2hhbGwtaW5jbHVkZS11bmNvbnRyb2xsZWQuaHR0
cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsaWVudHMtbWF0Y2hhbGwtb24tZXZhbHVhdGlv
bi5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xpZW50cy1tYXRjaGFsbC1vcmRlci5o
dHRwcy5odG1sCkBAIC0xMDIsNiArMTAzLDcgQEAgTGlzdCBvZiBmaWxlczoKIC9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9mZXRjaC13YWl0cy1mb3ItYWN0aXZhdGUuaHR0cHMuaHRtbAogL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL2dldHJlZ2lzdHJhdGlvbi5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZ2V0
cmVnaXN0cmF0aW9ucy5odHRwcy5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZ2xvYmFsLXNlcnZp
Y2V3b3JrZXIuaHR0cHMuYW55LmpzCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvaHR0cC10by1odHRwcy1y
ZWRpcmVjdC1hbmQtcmVnaXN0ZXIuaHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ltbXV0
YWJsZS1wcm90b3R5cGUtc2VydmljZXdvcmtlci5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvaW1wb3J0LW1vZHVsZS1zY3JpcHRzLmh0dHBzLmh0bWwKQEAgLTE3MCw3ICsxNzIsNiBAQCBM
aXN0IG9mIGZpbGVzOgogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3NlcnZpY2Utd29ya2VyLWhlYWRlci5o
dHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvc2VydmljZXdvcmtlci1tZXNzYWdlLWV2ZW50
LWhpc3RvcmljYWwuaHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3NlcnZpY2V3b3JrZXJv
YmplY3Qtc2NyaXB0dXJsLmh0dHBzLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9zaGFyZWQtd29y
a2VyLWNvbnRyb2xsZWQuaHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3NraXAtd2FpdGlu
Zy1pbnN0YWxsZWQuaHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3NraXAtd2FpdGluZy11
c2luZy1yZWdpc3RyYXRpb24uaHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3NraXAtd2Fp
dGluZy13aXRob3V0LWNsaWVudC5odHRwcy5odG1sCkBAIC0xODksNiArMTkwLDcgQEAgTGlzdCBv
ZiBmaWxlczoKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUtYWZ0ZXItbmF2aWdhdGlvbi1yZWRp
cmVjdC5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLWFmdGVyLW9uZWRheS5o
dHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLWJ5dGVjaGVjay5odHRwcy5odG1s
CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLWltcG9ydC1zY3JpcHRzLmh0dHBzLmh0bWwKIC9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci91cGRhdGUtbWlzc2luZy1pbXBvcnQtc2NyaXB0cy5odHRwcy5odG1s
CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLW5vLWNhY2hlLXJlcXVlc3QtaGVhZGVycy5odHRw
cy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLW5vdC1hbGxvd2VkLmh0dHBzLmh0bWwK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3dlYnNvY2tldC5odHRwcy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci93ZWJzb2NrZXQuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4
IGNjZDM3NmZiZDE0MGU2Y2MyNTFhNTIwNjQyNzMwZGMxYTllODY3OGYuLjI1MWNiYTllMDMxOTc4
ZWJjZDM2OTU1OTcwYjcyMDA4YmQxZWU5ZWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L3dlYnNvY2tldC5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvd2Vi
c29ja2V0Lmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMSw2ICsxLDMgQEAKLUNPTlNPTEUgTUVTU0FH
RTogV2ViU29ja2V0IG5ldHdvcmsgZXJyb3I6IE9TU3RhdHVzIEVycm9yIC05ODA3OiBJbnZhbGlk
IGNlcnRpZmljYXRlIGNoYWluIAotQ09OU09MRSBNRVNTQUdFOiBXZWJTb2NrZXQgbmV0d29yayBl
cnJvcjogT1NTdGF0dXMgRXJyb3IgLTk4MDc6IEludmFsaWQgY2VydGlmaWNhdGUgY2hhaW4gCiAK
LQotRkFJTCBWZXJpZnkgV2ViU29ja2V0IGhhbmRzaGFrZSBjaGFubmVsIGRvZXMgbm90IGdldCBp
bnRlcmNlcHRlZCBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTog
b2JqZWN0ICJbb2JqZWN0IEV2ZW50XSIKK1BBU1MgVmVyaWZ5IFdlYlNvY2tldCBoYW5kc2hha2Ug
Y2hhbm5lbCBkb2VzIG5vdCBnZXQgaW50ZXJjZXB0ZWQgCiAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL3dvcmtlci1jbGllbnQtaWQuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvd29ya2VyLWNsaWVudC1pZC5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggMTBjOWUy
NGQ5OTdkOTY5ODc3NDM1YjBmZjYxZjEwMjY4NzBmNjEyMi4uMDJiODExMjBhOWQ1Zjg5YzMwYWIx
NmE5MzNkMTVkNzZhMjFjZGFiOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvd29ya2Vy
LWNsaWVudC1pZC5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvd29y
a2VyLWNsaWVudC1pZC5odHRwcy1leHBlY3RlZC50eHQKQEAgLTEsMyArMSwzIEBACiAKLUZBSUwg
VmVyaWZ5IHdvcmtlcnMgaGF2ZSBhIHVuaXF1ZSBjbGllbnQgaWQgc2VwYXJhdGUgZnJvbSB0aGVp
ciBvd25pbmcgZG9jdW1lbnRzIHdpbmRvdyBhc3NlcnRfbm90X2VxdWFsczogZnJhbWUgYW5kIHdv
cmtlciBjbGllbnQgaWRzIHNob3VsZCBiZSBkaWZmZXJlbnQgZ290IGRpc2FsbG93ZWQgdmFsdWUg
IjEtMTkiCitGQUlMIFZlcmlmeSB3b3JrZXJzIGhhdmUgYSB1bmlxdWUgY2xpZW50IGlkIHNlcGFy
YXRlIGZyb20gdGhlaXIgb3duaW5nIGRvY3VtZW50cyB3aW5kb3cgYXNzZXJ0X25vdF9lcXVhbHM6
IGZyYW1lIGFuZCB3b3JrZXIgY2xpZW50IGlkcyBzaG91bGQgYmUgZGlmZmVyZW50IGdvdCBkaXNh
bGxvd2VkIHZhbHVlICI0LTM0MDgiCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3dv
cmtlci1pbnRlcmNlcHRpb24uaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
d29ya2VyLWludGVyY2VwdGlvbi5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggYjRlZDRlZTlhMTc0
NWVjMzI4MTZhZGMxZGNkY2JiZmE4ZjcxYzAyOS4uNTQzZTAzNzVlZGJhMjUyZDhjNTNmZTU5NzQx
MDBkMWMzZTUyODUxMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvd29ya2VyLWludGVy
Y2VwdGlvbi5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvd29ya2Vy
LWludGVyY2VwdGlvbi5odHRwcy1leHBlY3RlZC50eHQKQEAgLTEsOCArMSwxNiBAQAotQ09OU09M
RSBNRVNTQUdFOiBsaW5lIDE6IFJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBX
b3JrZXIKIAotRkFJTCBWZXJpZnkgd29ya2VyIHNjcmlwdCBmcm9tIHVuY29udHJvbGxlZCBkb2N1
bWVudCBpcyBpbnRlcmNlcHRlZCBieSBTZXJ2aWNlIFdvcmtlciBwcm9taXNlX3Rlc3Q6IFVuaGFu
ZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogdW5kZWZpbmVkCi1GQUlMIFZlcmlmeSB3b3JrZXIg
c2NyaXB0IGludGVyY2VwdGVkIGJ5IHNhbWUtb3JpZ2luIHJlc3BvbnNlIHN1Y2NlZWRzIHByb21p
c2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiB1bmRlZmluZWQKLVBBU1Mg
VmVyaWZ5IHdvcmtlciBzY3JpcHQgaW50ZXJjZXB0ZWQgYnkgY29ycyByZXNwb25zZSBmYWlscyAK
LVBBU1MgVmVyaWZ5IHdvcmtlciBzY3JpcHQgaW50ZXJjZXB0ZWQgYnkgbm8tY29ycyBjcm9zcy1v
cmlnaW4gcmVzcG9uc2UgZmFpbHMgCi1GQUlMIFZlcmlmeSB3b3JrZXIgbG9hZHMgZnJvbSBjb250
cm9sbGVkIGRvY3VtZW50IGFyZSBpbnRlcmNlcHRlZCBieSBTZXJ2aWNlIFdvcmtlciBhc3NlcnRf
ZXF1YWxzOiBleHBlY3RlZCAiZmluaXNoIiBidXQgZ290ICJmYWlsdXJlOltvYmplY3QgRXJyb3JF
dmVudF0iCitGQUlMIFZlcmlmeSBhIGRlZGljYXRlZCB3b3JrZXIgc2NyaXB0IHJlcXVlc3QgaXNz
dWVkIGZyb20gYSB1bmNvbnRyb2xsZWQgZG9jdW1lbnQgaXMgaW50ZXJjZXB0ZWQgYnkgd29ya2Vy
J3Mgb3duIHNlcnZpY2Ugd29ya2VyLiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24g
d2l0aCB2YWx1ZTogdW5kZWZpbmVkCitGQUlMIFZlcmlmeSBhIHNoYXJlZCB3b3JrZXIgc2NyaXB0
IHJlcXVlc3QgaXNzdWVkIGZyb20gYSB1bmNvbnRyb2xsZWQgZG9jdW1lbnQgaXMgaW50ZXJjZXB0
ZWQgYnkgd29ya2VyJ3Mgb3duIHNlcnZpY2Ugd29ya2VyLiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxl
ZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmlu
ZCB2YXJpYWJsZTogU2hhcmVkV29ya2VyIgorRkFJTCBWZXJpZnkgYSBzYW1lLW9yaWdpbiB3b3Jr
ZXIgc2NyaXB0IHNlcnZlZCBieSBhIHNlcnZpY2Ugd29ya2VyIHN1Y2NlZWRzIGluIHN0YXJ0aW5n
IGEgZGVkaWNhdGVkIHdvcmtlci4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdp
dGggdmFsdWU6IHVuZGVmaW5lZAorRkFJTCBWZXJpZnkgYSBzYW1lLW9yaWdpbiB3b3JrZXIgc2Ny
aXB0IHNlcnZlZCBieSBhIHNlcnZpY2Ugd29ya2VyIHN1Y2NlZWRzIGluIHN0YXJ0aW5nIGEgc2hh
cmVkIHdvcmtlci4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6
IG9iamVjdCAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IFNoYXJlZFdvcmtl
ciIKK1BBU1MgVmVyaWZ5IGEgY29ycyB3b3JrZXIgc2NyaXB0IHNlcnZlZCBieSBhIHNlcnZpY2Ug
d29ya2VyIGZhaWxzIGRlZGljYXRlZCB3b3JrZXIgc3RhcnQuIAorRkFJTCBWZXJpZnkgYSBjb3Jz
IHdvcmtlciBzY3JpcHQgc2VydmVkIGJ5IGEgc2VydmljZSB3b3JrZXIgZmFpbHMgc2hhcmVkIHdv
cmtlciBzdGFydC4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6
IG9iamVjdCAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IFNoYXJlZFdvcmtl
ciIKK1BBU1MgVmVyaWZ5IGEgbm8tY29ycyBjcm9zcy1vcmlnaW4gd29ya2VyIHNjcmlwdCBzZXJ2
ZWQgYnkgYSBzZXJ2aWNlIHdvcmtlciBmYWlscyBkZWRpY2F0ZWQgd29ya2VyIHN0YXJ0LiAKK0ZB
SUwgVmVyaWZ5IGEgbm8tY29ycyBjcm9zcy1vcmlnaW4gd29ya2VyIHNjcmlwdCBzZXJ2ZWQgYnkg
YSBzZXJ2aWNlIHdvcmtlciBmYWlscyBzaGFyZWQgd29ya2VyIHN0YXJ0LiBwcm9taXNlX3Rlc3Q6
IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJSZWZlcmVuY2VFcnJvcjog
Q2FuJ3QgZmluZCB2YXJpYWJsZTogU2hhcmVkV29ya2VyIgorUEFTUyBSZWdpc3RlciBhIHNlcnZp
Y2Ugd29ya2VyIGZvciB3b3JrZXIgc3VicmVzb3VyY2UgaW50ZXJjZXB0aW9uIHRlc3RzLiAKK0ZB
SUwgUmVxdWVzdHMgb24gYSBkZWRpY2F0ZWQgd29ya2VyIGNvbnRyb2xsZWQgYnkgYSBzZXJ2aWNl
IHdvcmtlci4gYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIlRoaXMgbG9hZCB3YXMgc3VjY2Vzc2Z1
bGx5IGludGVyY2VwdGVkLiIgYnV0IGdvdCAie1wiZXJyb3JcIjoge1wibWVzc2FnZVwiOiBcIlwi
LCBcImNvZGVcIjogNDA0fX0iCitGQUlMIFJlcXVlc3RzIG9uIGEgc2hhcmVkIHdvcmtlciBjb250
cm9sbGVkIGJ5IGEgc2VydmljZSB3b3JrZXIuIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVj
dGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlh
YmxlOiBTaGFyZWRXb3JrZXIiCitGQUlMIFJlcXVlc3RzIG9uIGEgZGVkaWNhdGVkIHdvcmtlciBu
ZXN0ZWQgaW4gYSBkZWRpY2F0ZWQgd29ya2VyIGFuZCBjb250cm9sbGVkIGJ5IGEgc2VydmljZSB3
b3JrZXIgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIlRoaXMgbG9hZCB3YXMgc3VjY2Vzc2Z1bGx5
IGludGVyY2VwdGVkLiIgYnV0IGdvdCAiVW5leHBlY3RlZCBlcnJvciEgQ2FuJ3QgZmluZCB2YXJp
YWJsZTogV29ya2VyIgorRkFJTCBSZXF1ZXN0cyBvbiBhIGRlZGljYXRlZCB3b3JrZXIgbmVzdGVk
IGluIGEgc2hhcmVkIHdvcmtlciBhbmQgY29udHJvbGxlZCBieSBhIHNlcnZpY2Ugd29ya2VyIHBy
b21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlJlZmVy
ZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBTaGFyZWRXb3JrZXIiCitQQVNTIFVucmVn
aXN0ZXIgYSBzZXJ2aWNlIHdvcmtlciBmb3Igc3VicmVzb3VyY2UgaW50ZXJjZXB0aW9uIHRlc3Rz
LiAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvd29ya2VyLWludGVyY2VwdGlvbi5o
dHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvd29ya2VyLWludGVyY2VwdGlvbi5odHRwcy5o
dG1sCmluZGV4IDdiMjk0MTI2M2JmNzU2YzMzZTZkMTViMzZlZDk2NTQ4Zjg4NmM2YzIuLjMwMmEy
MTRhYzYxOTQwMGMzOGY3NTY0YzA2NWE1ZTBiZTQ3YWM2ZGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL3dvcmtlci1pbnRlcmNlcHRpb24uaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci93b3JrZXItaW50ZXJjZXB0aW9uLmh0dHBzLmh0bWwKQEAgLTEsMTM1ICsxLDE4OCBA
QAogPCFET0NUWVBFIGh0bWw+CiA8dGl0bGU+U2VydmljZSBXb3JrZXI6IGludGVyY2VwdGluZyBX
b3JrZXIgc2NyaXB0IGxvYWRzPC90aXRsZT4KKzxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9
ImxvbmciPgogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0
PgogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0
PgogPHNjcmlwdCBzcmM9InJlc291cmNlcy90ZXN0LWhlbHBlcnMuc3ViLmpzIj48L3NjcmlwdD4K
IDxib2R5PgogPHNjcmlwdD4KLXByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7Ci0gICAgdmFyIHdv
cmtlcl91cmwgPSAncmVzb3VyY2VzL2R1bW15LXN5bnRoZXNpemVkLXdvcmtlci5qcyc7Ci0gICAg
dmFyIHNlcnZpY2Vfd29ya2VyID0gJ3Jlc291cmNlcy9kdW1teS13b3JrZXItaW50ZXJjZXB0b3Iu
anMnOwotICAgIHZhciBzY29wZSA9IHdvcmtlcl91cmw7Ci0KLSAgICByZXR1cm4gc2VydmljZV93
b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgc2VydmljZV93b3JrZXIsIHNjb3BlKQot
ICAgICAgLnRoZW4oZnVuY3Rpb24ocikgewotICAgICAgICAgIHQuYWRkX2NsZWFudXAoZnVuY3Rp
b24oKSB7Ci0gICAgICAgICAgICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyKHQs
IHNjb3BlKTsKLSAgICAgICAgICAgIH0pOwotCi0gICAgICAgICAgcmV0dXJuIHdhaXRfZm9yX3N0
YXRlKHQsIHIuaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOwotICAgICAgICB9KQotICAgICAgLnRo
ZW4oZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJl
c29sdmUsIHJlamVjdCkgewotICAgICAgICAgICAgICB2YXIgdyA9IG5ldyBXb3JrZXIod29ya2Vy
X3VybCk7Ci0gICAgICAgICAgICAgIHcub25tZXNzYWdlID0gZnVuY3Rpb24oZSkgewotICAgICAg
ICAgICAgICAgIHJlc29sdmUoZS5kYXRhKTsKLSAgICAgICAgICAgICAgfQotCi0gICAgICAgICAg
ICAgIHcub25lcnJvciA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgICAgICByZWplY3QoZS5t
ZXNzYWdlKTsKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0pCi0g
ICAgICAudGhlbihmdW5jdGlvbihkYXRhKSB7Ci0gICAgICAgICAgYXNzZXJ0X2VxdWFscyhkYXRh
LCAnd29ya2VyIGxvYWRpbmcgaW50ZXJjZXB0ZWQgYnkgc2VydmljZSB3b3JrZXInKTsKLSAgICAg
ICAgfSk7Ci0gIH0sICdWZXJpZnkgd29ya2VyIHNjcmlwdCBmcm9tIHVuY29udHJvbGxlZCBkb2N1
bWVudCBpcyBpbnRlcmNlcHRlZCBieSBTZXJ2aWNlIFdvcmtlcicpOwotCi1wcm9taXNlX3Rlc3Qo
ZnVuY3Rpb24odCkgewotICAgIHZhciB3b3JrZXJfdXJsID0gJ3Jlc291cmNlcy9kdW1teS1zYW1l
LW9yaWdpbi13b3JrZXIuanMnOwotICAgIHZhciBzZXJ2aWNlX3dvcmtlciA9ICdyZXNvdXJjZXMv
ZHVtbXktd29ya2VyLWludGVyY2VwdG9yLmpzJzsKLSAgICB2YXIgc2NvcGUgPSB3b3JrZXJfdXJs
OwotCi0gICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQs
IHNlcnZpY2Vfd29ya2VyLCBzY29wZSkKLSAgICAgIC50aGVuKGZ1bmN0aW9uKHIpIHsKLSAgICAg
ICAgICB0LmFkZF9jbGVhbnVwKGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICByZXR1cm4gc2Vy
dmljZV93b3JrZXJfdW5yZWdpc3Rlcih0LCBzY29wZSk7Ci0gICAgICAgICAgICB9KTsKLQotICAg
ICAgICAgIHJldHVybiB3YWl0X2Zvcl9zdGF0ZSh0LCByLmluc3RhbGxpbmcsICdhY3RpdmF0ZWQn
KTsKLSAgICAgICAgfSkKLSAgICAgIC50aGVuKGZ1bmN0aW9uKCkgewotICAgICAgICAgIHJldHVy
biBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKLSAgICAgICAgICAgICAg
dmFyIHcgPSBuZXcgV29ya2VyKHdvcmtlcl91cmwpOwotICAgICAgICAgICAgICB3Lm9ubWVzc2Fn
ZSA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgICAgICByZXNvbHZlKGUuZGF0YSk7Ci0gICAg
ICAgICAgICAgIH0KLQotICAgICAgICAgICAgICB3Lm9uZXJyb3IgPSBmdW5jdGlvbihlKSB7Ci0g
ICAgICAgICAgICAgICAgcmVqZWN0KGUubWVzc2FnZSk7Ci0gICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgIH0pOwotICAgICAgICB9KQotICAgICAgLnRoZW4oZnVuY3Rpb24oZGF0YSkgewotICAg
ICAgICAgIGFzc2VydF9lcXVhbHMoZGF0YSwgJ2R1bW15LXdvcmtlci1zY3JpcHQgbG9hZGVkJyk7
Ci0gICAgICAgIH0pOwotICB9LCAnVmVyaWZ5IHdvcmtlciBzY3JpcHQgaW50ZXJjZXB0ZWQgYnkg
c2FtZS1vcmlnaW4gcmVzcG9uc2Ugc3VjY2VlZHMnKTsKLQotcHJvbWlzZV90ZXN0KGZ1bmN0aW9u
KHQpIHsKLSAgICB2YXIgd29ya2VyX3VybCA9ICdyZXNvdXJjZXMvZHVtbXktY29ycy13b3JrZXIu
anMnOwotICAgIHZhciBzZXJ2aWNlX3dvcmtlciA9ICdyZXNvdXJjZXMvZHVtbXktd29ya2VyLWlu
dGVyY2VwdG9yLmpzJzsKLSAgICB2YXIgc2NvcGUgPSB3b3JrZXJfdXJsOwotCi0gICAgcmV0dXJu
IHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHNlcnZpY2Vfd29ya2Vy
LCBzY29wZSkKLSAgICAgIC50aGVuKGZ1bmN0aW9uKHIpIHsKLSAgICAgICAgICByZXR1cm4gd2Fp
dF9mb3Jfc3RhdGUodCwgci5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7Ci0gICAgICAgIH0pCi0g
ICAgICAudGhlbihmdW5jdGlvbigpIHsKLSAgICAgICAgICB2YXIgdyA9IG5ldyBXb3JrZXIod29y
a2VyX3VybCk7Ci0gICAgICAgICAgdmFyIHdhdGNoZXIgPSBuZXcgRXZlbnRXYXRjaGVyKHQsIHcs
IFsnbWVzc2FnZScsICdlcnJvciddKTsKLSAgICAgICAgICByZXR1cm4gd2F0Y2hlci53YWl0X2Zv
cignZXJyb3InKTsKLSAgICAgICAgfSk7Ci0gIH0sICdWZXJpZnkgd29ya2VyIHNjcmlwdCBpbnRl
cmNlcHRlZCBieSBjb3JzIHJlc3BvbnNlIGZhaWxzJyk7Ci0KLXByb21pc2VfdGVzdChmdW5jdGlv
bih0KSB7Ci0gICAgdmFyIHdvcmtlcl91cmwgPSAncmVzb3VyY2VzL2R1bW15LW5vLWNvcnMtd29y
a2VyLmpzJzsKLSAgICB2YXIgc2VydmljZV93b3JrZXIgPSAncmVzb3VyY2VzL2R1bW15LXdvcmtl
ci1pbnRlcmNlcHRvci5qcyc7Ci0gICAgdmFyIHNjb3BlID0gd29ya2VyX3VybDsKLQotICAgIHJl
dHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCBzZXJ2aWNlX3dv
cmtlciwgc2NvcGUpCi0gICAgICAudGhlbihmdW5jdGlvbihyKSB7Ci0gICAgICAgICAgdC5hZGRf
Y2xlYW51cChmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2Vy
X3VucmVnaXN0ZXIodCwgc2NvcGUpOwotICAgICAgICAgICAgfSk7Ci0KLSAgICAgICAgICByZXR1
cm4gd2FpdF9mb3Jfc3RhdGUodCwgci5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7Ci0gICAgICAg
IH0pCi0gICAgICAudGhlbihmdW5jdGlvbigpIHsKLSAgICAgICAgICB2YXIgdyA9IG5ldyBXb3Jr
ZXIod29ya2VyX3VybCk7Ci0gICAgICAgICAgdmFyIHdhdGNoZXIgPSBuZXcgRXZlbnRXYXRjaGVy
KHQsIHcsIFsnbWVzc2FnZScsICdlcnJvciddKTsKLSAgICAgICAgICByZXR1cm4gd2F0Y2hlci53
YWl0X2ZvcignZXJyb3InKTsKLSAgICAgICAgfSk7Ci0gIH0sICdWZXJpZnkgd29ya2VyIHNjcmlw
dCBpbnRlcmNlcHRlZCBieSBuby1jb3JzIGNyb3NzLW9yaWdpbiByZXNwb25zZSBmYWlscycpOwot
Ci1wcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewotICAgIHZhciBzdWJkb2NfdXJsID0gJ3Jlc291
cmNlcy93b3JrZXItaW50ZXJjZXB0aW9uLWlmcmFtZS5odHRwcy5odG1sP2J5cGFzcyc7Ci0gICAg
dmFyIHNlcnZpY2Vfd29ya2VyID0gJ3Jlc291cmNlcy93b3JrZXItbG9hZC1pbnRlcmNlcHRvci5q
cyc7Ci0gICAgdmFyIHNjb3BlID0gJ3Jlc291cmNlcy8nOwotCi0gICAgcmV0dXJuIHNlcnZpY2Vf
d29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHNlcnZpY2Vfd29ya2VyLCBzY29wZSkK
LSAgICAgIC50aGVuKGZ1bmN0aW9uKHIpIHsKLSAgICAgICAgICB0LmFkZF9jbGVhbnVwKGZ1bmN0
aW9uKCkgewotICAgICAgICAgICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcih0
LCBzY29wZSk7Ci0gICAgICAgICAgICB9KTsKLQotICAgICAgICAgIHJldHVybiB3YWl0X2Zvcl9z
dGF0ZSh0LCByLmluc3RhbGxpbmcsICdhY3RpdmF0ZWQnKTsKLSAgICAgICAgfSkKLSAgICAgIC50
aGVuKGZ1bmN0aW9uKCkgeyByZXR1cm4gd2l0aF9pZnJhbWUoc3ViZG9jX3VybCk7IH0pCi0gICAg
ICAudGhlbihmdW5jdGlvbihmcmFtZSkgewotICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShm
dW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKLSAgICAgICAgICAgICAgdmFyIGNoYW5uZWwgPSBu
ZXcgTWVzc2FnZUNoYW5uZWwoKTsKLSAgICAgICAgICAgICAgY2hhbm5lbC5wb3J0MS5vbm1lc3Nh
Z2UgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICAgICAgZnJhbWUucmVtb3ZlKCk7Ci0gICAg
ICAgICAgICAgICAgcmVzb2x2ZShlLmRhdGEpOwotICAgICAgICAgICAgICB9Ci0KLSAgICAgICAg
ICAgICAgZnJhbWUuY29udGVudFdpbmRvdy5wb3N0TWVzc2FnZSgiR08iLCAiKiIsIFtjaGFubmVs
LnBvcnQyXSk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfSkKLSAgICAgIC50aGVuKGZ1bmN0
aW9uKGRhdGEpIHsKLSAgICAgICAgICBhc3NlcnRfZXF1YWxzKGRhdGEucmVzdWx0cywgJ2Zpbmlz
aCcpOwotICAgICAgICB9KTsKLSAgfSwgJ1ZlcmlmeSB3b3JrZXIgbG9hZHMgZnJvbSBjb250cm9s
bGVkIGRvY3VtZW50IGFyZSBpbnRlcmNlcHRlZCBieSBTZXJ2aWNlIFdvcmtlcicpOworCisvLyA9
PT09PT09PT09IFdvcmtlciBtYWluIHJlc291cmNlIGludGVyY2VwdGlvbiB0ZXN0cyA9PT09PT09
PT09CisKK2FzeW5jIGZ1bmN0aW9uIHNldHVwX3NlcnZpY2Vfd29ya2VyKHQsIHNlcnZpY2Vfd29y
a2VyX3VybCwgc2NvcGUpIHsKKyAgY29uc3QgciA9IGF3YWl0IHNlcnZpY2Vfd29ya2VyX3VucmVn
aXN0ZXJfYW5kX3JlZ2lzdGVyKAorICAgICAgdCwgc2VydmljZV93b3JrZXJfdXJsLCBzY29wZSk7
CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcih0LCBzY29w
ZSkpOworICBhd2FpdCB3YWl0X2Zvcl9zdGF0ZSh0LCByLmluc3RhbGxpbmcsICdhY3RpdmF0ZWQn
KTsKK30KKworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25zdCB3b3JrZXJfdXJsID0g
J3Jlc291cmNlcy9kdW1teS1zeW50aGVzaXplZC13b3JrZXIuanM/ZGVkaWNhdGVkJzsKKyAgY29u
c3Qgc2VydmljZV93b3JrZXJfdXJsID0gJ3Jlc291cmNlcy9kdW1teS13b3JrZXItaW50ZXJjZXB0
b3IuanMnOworICBjb25zdCBzY29wZSA9IHdvcmtlcl91cmw7CisKKyAgYXdhaXQgc2V0dXBfc2Vy
dmljZV93b3JrZXIodCwgc2VydmljZV93b3JrZXJfdXJsLCBzY29wZSk7CisgIGNvbnN0IHcgPSBu
ZXcgV29ya2VyKHdvcmtlcl91cmwpOworICBjb25zdCBkYXRhID0gYXdhaXQgbmV3IFByb21pc2Uo
KHJlc29sdmUsIHJlamVjdCkgPT4geworICAgIHcub25tZXNzYWdlID0gZSA9PiByZXNvbHZlKGUu
ZGF0YSk7CisgICAgdy5vbmVycm9yID0gZSA9PiByZWplY3QoZS5tZXNzYWdlKTsKKyAgfSk7Cisg
IGFzc2VydF9lcXVhbHMoZGF0YSwgJ3dvcmtlciBsb2FkaW5nIGludGVyY2VwdGVkIGJ5IHNlcnZp
Y2Ugd29ya2VyJyk7Cit9LCBgVmVyaWZ5IGEgZGVkaWNhdGVkIHdvcmtlciBzY3JpcHQgcmVxdWVz
dCBpc3N1ZWQgZnJvbSBhIHVuY29udHJvbGxlZCBgICsKKyAgIGBkb2N1bWVudCBpcyBpbnRlcmNl
cHRlZCBieSB3b3JrZXIncyBvd24gc2VydmljZSB3b3JrZXIuYCk7CisKK3Byb21pc2VfdGVzdChh
c3luYyB0ID0+IHsKKyAgY29uc3Qgd29ya2VyX3VybCA9ICdyZXNvdXJjZXMvZHVtbXktc3ludGhl
c2l6ZWQtd29ya2VyLmpzP3NoYXJlZCc7CisgIGNvbnN0IHNlcnZpY2Vfd29ya2VyX3VybCA9ICdy
ZXNvdXJjZXMvZHVtbXktd29ya2VyLWludGVyY2VwdG9yLmpzJzsKKyAgY29uc3Qgc2NvcGUgPSB3
b3JrZXJfdXJsOworCisgIGF3YWl0IHNldHVwX3NlcnZpY2Vfd29ya2VyKHQsIHNlcnZpY2Vfd29y
a2VyX3VybCwgc2NvcGUpOworICBjb25zdCB3ID0gbmV3IFNoYXJlZFdvcmtlcih3b3JrZXJfdXJs
KTsKKyAgY29uc3QgZGF0YSA9IGF3YWl0IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+
IHsKKyAgICB3LnBvcnQub25tZXNzYWdlID0gZSA9PiByZXNvbHZlKGUuZGF0YSk7CisgICAgdy5v
bmVycm9yID0gZSA9PiByZWplY3QoZS5tZXNzYWdlKTsKKyAgfSk7CisgIGFzc2VydF9lcXVhbHMo
ZGF0YSwgJ3dvcmtlciBsb2FkaW5nIGludGVyY2VwdGVkIGJ5IHNlcnZpY2Ugd29ya2VyJyk7Cit9
LCBgVmVyaWZ5IGEgc2hhcmVkIHdvcmtlciBzY3JpcHQgcmVxdWVzdCBpc3N1ZWQgZnJvbSBhIHVu
Y29udHJvbGxlZCBgICsKKyAgIGBkb2N1bWVudCBpcyBpbnRlcmNlcHRlZCBieSB3b3JrZXIncyBv
d24gc2VydmljZSB3b3JrZXIuYCk7CisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgY29u
c3Qgd29ya2VyX3VybCA9ICdyZXNvdXJjZXMvZHVtbXktc2FtZS1vcmlnaW4td29ya2VyLmpzP2Rl
ZGljYXRlZCc7CisgIGNvbnN0IHNlcnZpY2Vfd29ya2VyX3VybCA9ICdyZXNvdXJjZXMvZHVtbXkt
d29ya2VyLWludGVyY2VwdG9yLmpzJzsKKyAgY29uc3Qgc2NvcGUgPSB3b3JrZXJfdXJsOworCisg
IGF3YWl0IHNldHVwX3NlcnZpY2Vfd29ya2VyKHQsIHNlcnZpY2Vfd29ya2VyX3VybCwgc2NvcGUp
OworICBjb25zdCB3ID0gbmV3IFdvcmtlcih3b3JrZXJfdXJsKTsKKyAgY29uc3QgZGF0YSA9IGF3
YWl0IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsKKyAgICB3Lm9ubWVzc2FnZSA9
IGUgPT4gcmVzb2x2ZShlLmRhdGEpOworICAgIHcub25lcnJvciA9IGUgPT4gcmVqZWN0KGUubWVz
c2FnZSk7CisgIH0pOworICBhc3NlcnRfZXF1YWxzKGRhdGEsICdkZWRpY2F0ZWQgd29ya2VyIHNj
cmlwdCBsb2FkZWQnKTsKK30sICdWZXJpZnkgYSBzYW1lLW9yaWdpbiB3b3JrZXIgc2NyaXB0IHNl
cnZlZCBieSBhIHNlcnZpY2Ugd29ya2VyIHN1Y2NlZWRzICcgKworICAgJ2luIHN0YXJ0aW5nIGEg
ZGVkaWNhdGVkIHdvcmtlci4nKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25z
dCB3b3JrZXJfdXJsID0gJ3Jlc291cmNlcy9kdW1teS1zYW1lLW9yaWdpbi13b3JrZXIuanM/c2hh
cmVkJzsKKyAgY29uc3Qgc2VydmljZV93b3JrZXJfdXJsID0gJ3Jlc291cmNlcy9kdW1teS13b3Jr
ZXItaW50ZXJjZXB0b3IuanMnOworICBjb25zdCBzY29wZSA9IHdvcmtlcl91cmw7CisKKyAgYXdh
aXQgc2V0dXBfc2VydmljZV93b3JrZXIodCwgc2VydmljZV93b3JrZXJfdXJsLCBzY29wZSk7Cisg
IGNvbnN0IHcgPSBuZXcgU2hhcmVkV29ya2VyKHdvcmtlcl91cmwpOworICBjb25zdCBkYXRhID0g
YXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4geworICAgIHcucG9ydC5vbm1l
c3NhZ2UgPSBlID0+IHJlc29sdmUoZS5kYXRhKTsKKyAgICB3Lm9uZXJyb3IgPSBlID0+IHJlamVj
dChlLm1lc3NhZ2UpOworICB9KTsKKyAgYXNzZXJ0X2VxdWFscyhkYXRhLCAnc2hhcmVkIHdvcmtl
ciBzY3JpcHQgbG9hZGVkJyk7Cit9LCAnVmVyaWZ5IGEgc2FtZS1vcmlnaW4gd29ya2VyIHNjcmlw
dCBzZXJ2ZWQgYnkgYSBzZXJ2aWNlIHdvcmtlciBzdWNjZWVkcyAnICsKKyAgICdpbiBzdGFydGlu
ZyBhIHNoYXJlZCB3b3JrZXIuJyk7CisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgY29u
c3Qgd29ya2VyX3VybCA9ICdyZXNvdXJjZXMvZHVtbXktY29ycy13b3JrZXIuanM/ZGVkaWNhdGVk
JzsKKyAgY29uc3Qgc2VydmljZV93b3JrZXJfdXJsID0gJ3Jlc291cmNlcy9kdW1teS13b3JrZXIt
aW50ZXJjZXB0b3IuanMnOworICBjb25zdCBzY29wZSA9IHdvcmtlcl91cmw7CisKKyAgYXdhaXQg
c2V0dXBfc2VydmljZV93b3JrZXIodCwgc2VydmljZV93b3JrZXJfdXJsLCBzY29wZSk7CisgIGNv
bnN0IHcgPSBuZXcgV29ya2VyKHdvcmtlcl91cmwpOworICBjb25zdCB3YXRjaGVyID0gbmV3IEV2
ZW50V2F0Y2hlcih0LCB3LCBbJ21lc3NhZ2UnLCAnZXJyb3InXSk7CisgIGF3YWl0IHdhdGNoZXIu
d2FpdF9mb3IoJ2Vycm9yJyk7Cit9LCAnVmVyaWZ5IGEgY29ycyB3b3JrZXIgc2NyaXB0IHNlcnZl
ZCBieSBhIHNlcnZpY2Ugd29ya2VyIGZhaWxzIGRlZGljYXRlZCAnICsKKyAgICd3b3JrZXIgc3Rh
cnQuJyk7CisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgY29uc3Qgd29ya2VyX3VybCA9
ICdyZXNvdXJjZXMvZHVtbXktY29ycy13b3JrZXIuanM/c2hhcmVkJzsKKyAgY29uc3Qgc2Vydmlj
ZV93b3JrZXJfdXJsID0gJ3Jlc291cmNlcy9kdW1teS13b3JrZXItaW50ZXJjZXB0b3IuanMnOwor
ICBjb25zdCBzY29wZSA9IHdvcmtlcl91cmw7CisKKyAgYXdhaXQgc2V0dXBfc2VydmljZV93b3Jr
ZXIodCwgc2VydmljZV93b3JrZXJfdXJsLCBzY29wZSk7CisgIGNvbnN0IHcgPSBuZXcgU2hhcmVk
V29ya2VyKHdvcmtlcl91cmwpOworICBjb25zdCB3YXRjaGVyID0gbmV3IEV2ZW50V2F0Y2hlcih0
LCB3LCBbJ21lc3NhZ2UnLCAnZXJyb3InXSk7CisgIGF3YWl0IHdhdGNoZXIud2FpdF9mb3IoJ2Vy
cm9yJyk7Cit9LCAnVmVyaWZ5IGEgY29ycyB3b3JrZXIgc2NyaXB0IHNlcnZlZCBieSBhIHNlcnZp
Y2Ugd29ya2VyIGZhaWxzIHNoYXJlZCAnICsKKyAgICd3b3JrZXIgc3RhcnQuJyk7CisKK3Byb21p
c2VfdGVzdChhc3luYyB0ID0+IHsKKyAgY29uc3Qgd29ya2VyX3VybCA9ICdyZXNvdXJjZXMvZHVt
bXktbm8tY29ycy13b3JrZXIuanM/ZGVkaWNhdGVkJzsKKyAgY29uc3Qgc2VydmljZV93b3JrZXJf
dXJsID0gJ3Jlc291cmNlcy9kdW1teS13b3JrZXItaW50ZXJjZXB0b3IuanMnOworICBjb25zdCBz
Y29wZSA9IHdvcmtlcl91cmw7CisKKyAgYXdhaXQgc2V0dXBfc2VydmljZV93b3JrZXIodCwgc2Vy
dmljZV93b3JrZXJfdXJsLCBzY29wZSk7CisgIGNvbnN0IHcgPSBuZXcgV29ya2VyKHdvcmtlcl91
cmwpOworICBjb25zdCB3YXRjaGVyID0gbmV3IEV2ZW50V2F0Y2hlcih0LCB3LCBbJ21lc3NhZ2Un
LCAnZXJyb3InXSk7CisgIGF3YWl0IHdhdGNoZXIud2FpdF9mb3IoJ2Vycm9yJyk7Cit9LCAnVmVy
aWZ5IGEgbm8tY29ycyBjcm9zcy1vcmlnaW4gd29ya2VyIHNjcmlwdCBzZXJ2ZWQgYnkgYSBzZXJ2
aWNlIHdvcmtlciAnICsKKyAgICdmYWlscyBkZWRpY2F0ZWQgd29ya2VyIHN0YXJ0LicpOworCitw
cm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0IHdvcmtlcl91cmwgPSAncmVzb3VyY2Vz
L2R1bW15LW5vLWNvcnMtd29ya2VyLmpzP3NoYXJlZCc7CisgIGNvbnN0IHNlcnZpY2Vfd29ya2Vy
X3VybCA9ICdyZXNvdXJjZXMvZHVtbXktd29ya2VyLWludGVyY2VwdG9yLmpzJzsKKyAgY29uc3Qg
c2NvcGUgPSB3b3JrZXJfdXJsOworCisgIGF3YWl0IHNldHVwX3NlcnZpY2Vfd29ya2VyKHQsIHNl
cnZpY2Vfd29ya2VyX3VybCwgc2NvcGUpOworICBjb25zdCB3ID0gbmV3IFNoYXJlZFdvcmtlcih3
b3JrZXJfdXJsKTsKKyAgY29uc3Qgd2F0Y2hlciA9IG5ldyBFdmVudFdhdGNoZXIodCwgdywgWydt
ZXNzYWdlJywgJ2Vycm9yJ10pOworICBhd2FpdCB3YXRjaGVyLndhaXRfZm9yKCdlcnJvcicpOwor
fSwgJ1ZlcmlmeSBhIG5vLWNvcnMgY3Jvc3Mtb3JpZ2luIHdvcmtlciBzY3JpcHQgc2VydmVkIGJ5
IGEgc2VydmljZSB3b3JrZXIgJyArCisgICAnZmFpbHMgc2hhcmVkIHdvcmtlciBzdGFydC4nKTsK
KworLy8gPT09PT09PT09PSBXb3JrZXIgc3VicmVzb3VyY2UgaW50ZXJjZXB0aW9uIHRlc3RzID09
PT09PT09PT0KKworY29uc3Qgc2NvcGVfZm9yX3N1YnJlc291cmNlX2ludGVyY2VwdGlvbiA9ICdy
ZXNvdXJjZXMvbG9hZF93b3JrZXIuanMnOworCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7Cisg
IGNvbnN0IHNlcnZpY2Vfd29ya2VyX3VybCA9ICdyZXNvdXJjZXMvd29ya2VyLWxvYWQtaW50ZXJj
ZXB0b3IuanMnOworICBjb25zdCByID0gYXdhaXQgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9h
bmRfcmVnaXN0ZXIoCisgICAgICB0LCBzZXJ2aWNlX3dvcmtlcl91cmwsIHNjb3BlX2Zvcl9zdWJy
ZXNvdXJjZV9pbnRlcmNlcHRpb24pOworICBhd2FpdCB3YWl0X2Zvcl9zdGF0ZSh0LCByLmluc3Rh
bGxpbmcsICdhY3RpdmF0ZWQnKTsKK30sICdSZWdpc3RlciBhIHNlcnZpY2Ugd29ya2VyIGZvciB3
b3JrZXIgc3VicmVzb3VyY2UgaW50ZXJjZXB0aW9uIHRlc3RzLicpOworCisvLyBEbyBub3QgY2Fs
bCB0aGlzIGZ1bmN0aW9uIG11bHRpcGxlIHRpbWVzIHdpdGhvdXQgd2FpdGluZyBmb3IgdGhlIHBy
b21pc2UKKy8vIHJlc29sdXRpb24gYmVjYXVzZSB0aGlzIHNldHMgbmV3IGV2ZW50IGhhbmRsZXJz
IG9uIHx3b3JrZXJ8LgorLy8gVE9ETyhuaGlyb2tpKTogVG8gaXNvbGF0ZSBtdWx0aXBsZSBmdW5j
dGlvbiBjYWxscywgdXNlIE1lc3NhZ2VQb3J0IGluc3RlYWQgb2YKKy8vIHdvcmtlcidzIG9ubWVz
c2FnZSBldmVudCBoYW5kbGVyLgorYXN5bmMgZnVuY3Rpb24gcmVxdWVzdF9vbl93b3JrZXIod29y
a2VyLCByZXNvdXJjZV90eXBlKSB7CisgIGNvbnN0IGRhdGEgPSBhd2FpdCBuZXcgUHJvbWlzZSgo
cmVzb2x2ZSwgcmVqZWN0KSA9PiB7CisgICAgaWYgKHdvcmtlciBpbnN0YW5jZW9mIFdvcmtlcikg
eworICAgICAgd29ya2VyLm9ubWVzc2FnZSA9IGUgPT4gcmVzb2x2ZShlLmRhdGEpOworICAgICAg
d29ya2VyLm9uZXJyb3IgPSBlID0+IHJlamVjdChlKTsKKyAgICAgIHdvcmtlci5wb3N0TWVzc2Fn
ZShyZXNvdXJjZV90eXBlKTsKKyAgICB9IGVsc2UgaWYgKHdvcmtlciBpbnN0YW5jZW9mIFNoYXJl
ZFdvcmtlcikgeworICAgICAgd29ya2VyLnBvcnQub25tZXNzYWdlID0gZSA9PiByZXNvbHZlKGUu
ZGF0YSk7CisgICAgICB3b3JrZXIub25lcnJvciA9IGUgPT4gcmVqZWN0KGUpOworICAgICAgd29y
a2VyLnBvcnQucG9zdE1lc3NhZ2UocmVzb3VyY2VfdHlwZSk7CisgICAgfSBlbHNlIHsKKyAgICAg
IHJlamVjdCgnVW5leHBlY3RlZCB3b3JrZXIgdHlwZSEnKTsKKyAgICB9CisgIH0pOworICBhc3Nl
cnRfZXF1YWxzKGRhdGEsICdUaGlzIGxvYWQgd2FzIHN1Y2Nlc3NmdWxseSBpbnRlcmNlcHRlZC4n
KTsKK30KKworYXN5bmMgZnVuY3Rpb24gc3VicmVzb3VyY2VfdGVzdCh3b3JrZXIpIHsKKyAgYXdh
aXQgcmVxdWVzdF9vbl93b3JrZXIod29ya2VyLCAneGhyJyk7CisgIGF3YWl0IHJlcXVlc3Rfb25f
d29ya2VyKHdvcmtlciwgJ2ZldGNoJyk7CisgIGF3YWl0IHJlcXVlc3Rfb25fd29ya2VyKHdvcmtl
ciwgJ2ltcG9ydFNjcmlwdHMnKTsKK30KKworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBh
d2FpdCBzdWJyZXNvdXJjZV90ZXN0KG5ldyBXb3JrZXIoJ3Jlc291cmNlcy9sb2FkX3dvcmtlci5q
cycpKTsKK30sICdSZXF1ZXN0cyBvbiBhIGRlZGljYXRlZCB3b3JrZXIgY29udHJvbGxlZCBieSBh
IHNlcnZpY2Ugd29ya2VyLicpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGF3YWl0
IHN1YnJlc291cmNlX3Rlc3QobmV3IFNoYXJlZFdvcmtlcigncmVzb3VyY2VzL2xvYWRfd29ya2Vy
LmpzJykpOworfSwgJ1JlcXVlc3RzIG9uIGEgc2hhcmVkIHdvcmtlciBjb250cm9sbGVkIGJ5IGEg
c2VydmljZSB3b3JrZXIuJyk7CisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgYXdhaXQg
c3VicmVzb3VyY2VfdGVzdChuZXcgV29ya2VyKCdyZXNvdXJjZXMvbmVzdGVkX2xvYWRfd29ya2Vy
LmpzJykpOworfSwgJ1JlcXVlc3RzIG9uIGEgZGVkaWNhdGVkIHdvcmtlciBuZXN0ZWQgaW4gYSBk
ZWRpY2F0ZWQgd29ya2VyIGFuZCAnICsKKyAgICAgICAnY29udHJvbGxlZCBieSBhIHNlcnZpY2Ug
d29ya2VyJyk7CisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgYXdhaXQgc3VicmVzb3Vy
Y2VfdGVzdChuZXcgU2hhcmVkV29ya2VyKCdyZXNvdXJjZXMvbmVzdGVkX2xvYWRfd29ya2VyLmpz
JykpOworfSwgJ1JlcXVlc3RzIG9uIGEgZGVkaWNhdGVkIHdvcmtlciBuZXN0ZWQgaW4gYSBzaGFy
ZWQgd29ya2VyIGFuZCBjb250cm9sbGVkICcgKworICAgICAgICdieSBhIHNlcnZpY2Ugd29ya2Vy
Jyk7CisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgYXdhaXQgc2VydmljZV93b3JrZXJf
dW5yZWdpc3Rlcih0LCBzY29wZV9mb3Jfc3VicmVzb3VyY2VfaW50ZXJjZXB0aW9uKTsKK30sICdV
bnJlZ2lzdGVyIGEgc2VydmljZSB3b3JrZXIgZm9yIHN1YnJlc291cmNlIGludGVyY2VwdGlvbiB0
ZXN0cy4nKTsKIAogPC9zY3JpcHQ+CiA8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9U
ZXN0RXhwZWN0YXRpb25zCmluZGV4IDczMDBkOWY5MmEyODM3YTIwNTE5OTM0YmYwMzVhZDI5ZDI3
NjA2NjIuLjNjMGY1MGFjODMwYTY2MTQ5ZjljMzdkMDc1NTYwZDQ0ZWMxZDE0YTMgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zCkBAIC0zMjAzLDEwICszMjAzLDYg
QEAgd2Via2l0Lm9yZy9iLzE5MDc2NCBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLWRvdHMtcG9z
aXRpb24tMy5odG1sIFsgU2tpcCBdCiAKIHdlYmtpdC5vcmcvYi8xOTIyNzkgaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVnaXN0
ZXItY2xvc2VkLXdpbmRvdy5odHRwcy5odG1sIFsgUGFzcyBGYWlsdXJlIF0KIAotd2Via2l0Lm9y
Zy9iLzE5MjI1MCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci91cGRhdGUtbWlzc2luZy1pbXBvcnQtc2NyaXB0cy5odHRwcy5odG1s
IFsgUGFzcyBGYWlsdXJlIF0KLQotd2Via2l0Lm9yZy9iLzE5MjM5OCBpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUtcmVn
aXN0cmF0aW9uLXdpdGgtdHlwZS5odHRwcy5odG1sIFsgUGFzcyBGYWlsdXJlIF0KLQogd2Via2l0
Lm9yZy9iLzE5MTcwNCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci93aW5kb3djbGllbnQtbmF2aWdhdGUuaHR0cHMuaHRtbCBbIFBh
c3MgRmFpbHVyZSBdCiAKIHdlYmtpdC5vcmcvYi8xOTM5NTUgY29tcG9zaXRpbmcvaWZyYW1lcy9y
ZW1vdmUtcmVpbnNlcnQtd2Vidmlldy13aXRoLWlmcmFtZS5odG1sIFsgU2tpcCBdCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy90ZXN0cy1vcHRpb25zLmpzb24gYi9MYXlvdXRUZXN0cy90ZXN0cy1v
cHRpb25zLmpzb24KaW5kZXggMTgyNGNkY2QxYzQ2NGY4YWY3NGVlNzU4NmI3MzE2M2ZjYTYzMmJj
Mi4uY2MyMDM0ZTg1MWJmOGY4MDUzNzM5MWI4MjUzMGQxNjhjNTQyMmQxNyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvdGVzdHMtb3B0aW9ucy5qc29uCisrKyBiL0xheW91dFRlc3RzL3Rlc3RzLW9w
dGlvbnMuanNvbgpAQCAtMSw0ICsxLDcgQEAKIHsKKyAgICAiaHR0cC90ZXN0cy9wYXltZW50cmVx
dWVzdC9wYXltZW50LXJlc3BvbnNlLXJlZmVyZW5jZS1jeWNsZS1sZWFrLmh0dHBzLmh0bWwiOiBb
CisgICAgICAgICJzbG93IgorICAgIF0sCiAgICAgImh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qv
b24tbmV0d29yay10aW1lb3V0LWVycm9yLWR1cmluZy1wcmVmbGlnaHQuaHRtbCI6IFsKICAgICAg
ICAgInNsb3ciCiAgICAgXSwKQEAgLTE3MjQsNiArMTcyNyw5IEBACiAgICAgImltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNo
LWV2ZW50LXJlc3BvbmQtd2l0aC1ib2R5LWxvYWRlZC1pbi1jaHVuay5odHRwcy5odG1sIjogWwog
ICAgICAgICAic2xvdyIKICAgICBdLAorICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1ldmVudC13aXRoaW4tc3cu
aHR0cHMuaHRtbCI6IFsKKyAgICAgICAgInNsb3ciCisgICAgXSwKICAgICAiaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gt
ZXZlbnQuaHR0cHMuaHRtbCI6IFsKICAgICAgICAgInNsb3ciCiAgICAgXSwKQEAgLTE3NzgsNiAr
MTc4NCwxMiBAQAogICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUtYnl0ZWNoZWNrLmh0dHBzLmh0bWwiOiBbCiAg
ICAgICAgICJzbG93IgogICAgIF0sCisgICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0ZS5odHRwcy5odG1sIjogWwor
ICAgICAgICAic2xvdyIKKyAgICBdLAorICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci93b3JrZXItaW50ZXJjZXB0aW9uLmh0
dHBzLmh0bWwiOiBbCisgICAgICAgICJzbG93IgorICAgIF0sCiAgICAgImltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0RUTUZTZW5kZXItb250b25lY2hhbmdlLWxvbmcu
aHRtbCI6IFsKICAgICAgICAgInNsb3ciCiAgICAgXSwKQEAgLTE5MDAsOCArMTkxMiw1IEBACiAg
ICAgXSwKICAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy94aHIveG1saHR0cHJl
cXVlc3QtdGltZW91dC13b3JrZXItdHdpY2UuaHRtbCI6IFsKICAgICAgICAgInNsb3ciCi0gICAg
XSwKLSAgICAiaHR0cC90ZXN0cy9wYXltZW50cmVxdWVzdC9wYXltZW50LXJlc3BvbnNlLXJlZmVy
ZW5jZS1jeWNsZS1sZWFrLmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgogICAgIF0KIH0K
XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>378383</attachid>
            <date>2019-09-09 10:58:15 -0700</date>
            <delta_ts>2019-09-09 11:12:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201589-20190909105758.patch</filename>
            <type>text/plain</type>
            <size>578388</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5NjI5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggY2U3MTRhOWFmMmU0NDczZjc2NzM5
MzY2N2ZiYTEwNDFjMzYxNmNkOC4uOTlhMjA0ZWIwMzFlYzRhMTRjZDljYTdhNmE0ZTA2YTY4NWFk
MGM0NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDE5LTA5LTA4ICBDaHJpcyBEdW1leiAgPGNk
dW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUmVzeW5jIHNlcnZpY2Ugd29ya2VycyBXUFQgdGVz
dHMgZnJvbSB1cHN0cmVhbQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjAxNTg5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWW91ZW5uIEZhYmxldC4KKwor
ICAgICAgICAqIFRlc3RFeHBlY3RhdGlvbnM6CisKIDIwMTktMDktMDcgIENocmlzIER1bWV6ICA8
Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgc3VwcG9ydCBmb3IgcG9zdE1lc3NhZ2Ug
YnVmZmVyaW5nIGJldHdlZW4gdGhlIHNlcnZpY2Ugd29ya2VyIGFuZCB3aW5kb3cKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IGNiNDYzNTViZjRkMTRmN2NkYTIzMTc0ZWUxYjMwNWU5
MGY4Nzg5M2UuLjJlNzIxZjc1ZWQzY2MxYjY1MjJmN2Y0YmE2MmQ0NmE4NjAxNjljZTcgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1NSBAQAorMjAxOS0wOS0wOCAg
Q2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFJlc3luYyBzZXJ2aWNl
IHdvcmtlcnMgV1BUIHRlc3RzIGZyb20gdXBzdHJlYW0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMTU4OQorCisgICAgICAgIFJldmlld2VkIGJ5IFlv
dWVubiBGYWJsZXQuCisKKyAgICAgICAgUmVzeW5jIHNlcnZpY2Ugd29ya2VycyBXUFQgdGVzdHMg
ZnJvbSB1cHN0cmVhbSA4MjBmMGY4NjA0N2U2ZTI2NDAxZS4KKworICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvU2VydmljZS1Xb3JrZXIt
QWxsb3dlZC1oZWFkZXIuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvU2VydmljZS1Xb3JrZXItQWxs
b3dlZC1oZWFkZXIuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS9wb3N0
bWVzc2FnZS5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlL3VucmVnaXN0
ZXIuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS91cGRhdGUuaHR0cHMu
aHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL2Fib3V0LWJsYW5rLXJlcGxhY2VtZW50Lmh0dHBzLmh0bWw6CisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9hY3RpdmF0
ZS1ldmVudC1hZnRlci1pbnN0YWxsLXN0YXRlLWNoYW5nZS5odHRwcy5odG1sOgorICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvYWN0aXZh
dGlvbi1hZnRlci1yZWdpc3RyYXRpb24uaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2FjdGl2YXRpb24uaHR0cHMt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvYWN0aXZhdGlvbi5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvYXBwY2FjaGUtb3Jk
ZXJpbmctbWFpbi5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xhaW0tZmV0Y2gtd2l0aC1hcHBjYWNoZS5odHRw
cy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGFpbS1mZXRjaC13aXRoLWFwcGNhY2hlLmh0
dHBzLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGFpbS1mZXRjaC5odHRwcy5odG1sOgorICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xhaW0t
bm90LXVzaW5nLXJlZ2lzdHJhdGlvbi5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xhaW0tc2hhcmVkLXdvcmtl
ci1mZXRjaC5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xhaW0tdXNpbmctcmVnaXN0cmF0aW9uLmh0dHBzLmh0
bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9jbGFpbS13b3JrZXItZmV0Y2guaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xhaW0t
d29ya2VyLWZldGNoLmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGllbnQtaWQuaHR0cHMuaHRtbDoKKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2Ns
aWVudHMtZ2V0LWNsaWVudC10eXBlcy5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xpZW50cy1nZXQtcmVzdWx0
aW5nQ2xpZW50SWQuaHR0cHMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xpZW50cy1nZXQt
cmVzdWx0aW5nQ2xpZW50SWQuaHR0cHMuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsaWVudHMtZ2V0Lmh0
dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsaWVudHMtZ2V0Lmh0dHBzLmh0bWw6CisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGllbnRz
LW1hdGNoYWxsLWNsaWVudC10eXBlcy5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xpZW50cy1tYXRjaGFsbC1l
eGFjdC1jb250cm9sbGVyLmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsaWVudHMtbWF0Y2hhbGwt
ZXhhY3QtY29udHJvbGxlci5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xpZW50cy1tYXRjaGFsbC1pbmNsdWRl
LXVuY29udHJvbGxlZC5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xpZW50cy1tYXRjaGFsbC1vcmRlci5odHRw
cy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvY2xpZW50cy1tYXRjaGFsbC5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY29udHJvbGxlci1v
bi1kaXNjb25uZWN0Lmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jb250cm9sbGVyLW9uLWxvYWQuaHR0cHMuaHRt
bDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL2NvbnRyb2xsZXItb24tcmVsb2FkLmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9kYXRhLXRyYW5zZmVy
LWZpbGVzLmh0dHBzLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2RhdGEtdHJhbnNmZXItZmls
ZXMuaHR0cHMuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2RldGFjaGVkLWNvbnRleHQuaHR0cHMtZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvZGV0YWNoZWQtY29udGV4dC5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZXh0ZW5kYWJsZS1l
dmVudC1hc3luYy13YWl0dW50aWwuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZXh0ZW5kYWJsZS1l
dmVudC1hc3luYy13YWl0dW50aWwuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2V4dGVuZGFibGUtZXZlbnQtd2Fp
dHVudGlsLmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1hdWRpby10YWludGluZy5odHRwcy1leHBlY3Rl
ZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1hdWRpby10YWludGluZy5odHRwcy5odG1sOiBSZW1v
dmVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvZmV0Y2gtY2FudmFzLXRhaW50aW5nLWRvdWJsZS13cml0ZS5odHRwcy1leHBlY3Rl
ZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1jYW52YXMtdGFpbnRpbmctZG91YmxlLXdyaXRlLmh0
dHBzLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1jYW52YXMtdGFpbnRpbmctdmlkZW8tY2FjaGUu
aHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL2ZldGNoLWNhbnZhcy10YWludGluZy12aWRlby5odHRwcy5odG1sOgor
ICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvZmV0Y2gtY29ycy14aHIuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtY29ycy14aHIu
aHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL2ZldGNoLWNzcC5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtZXZlbnQtYWZ0
ZXItbmF2aWdhdGlvbi13aXRoaW4tcGFnZS5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtZXZlbnQtYXN5
bmMtcmVzcG9uZC13aXRoLmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWV2ZW50LWFzeW5j
LXJlc3BvbmQtd2l0aC5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtZXZlbnQtbmV0d29yay1lcnJvci5o
dHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvZmV0Y2gtZXZlbnQtcmVmZXJyZXItcG9saWN5Lmh0dHBzLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL2ZldGNoLWV2ZW50LXJlZmVycmVyLXBvbGljeS5odHRwcy5odG1sOgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0
Y2gtZXZlbnQtcmVzcG9uZC13aXRoLWFyZ3VtZW50Lmh0dHBzLmh0bWw6CisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1ldmVu
dC1yZXNwb25kLXdpdGgtYm9keS1sb2FkZWQtaW4tY2h1bmsuaHR0cHMuaHRtbDoKKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNo
LWV2ZW50LXJlc3BvbmQtd2l0aC1zdG9wcy1wcm9wYWdhdGlvbi5odHRwcy5odG1sOgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0
Y2gtZXZlbnQtdGhyb3dzLWFmdGVyLXJlc3BvbmQtd2l0aC5odHRwcy5odG1sOgorICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gt
ZXZlbnQuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtZXZlbnQuaHR0cHMuaHRtbDoKKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L2ZldGNoLWZyYW1lLXJlc291cmNlLmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1oZWFkZXItdmlzaWJp
bGl0eS5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtcmVxdWVzdC1jc3MtYmFzZS11cmwuaHR0cHMtZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvZmV0Y2gtcmVxdWVzdC1jc3MtYmFzZS11cmwuaHR0cHMuaHRtbDoKKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L2ZldGNoLXJlcXVlc3QtY3NzLWltYWdlcy5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtcmVxdWVzdC1o
dG1sLWltcG9ydHMuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtcmVxdWVzdC1odG1sLWlt
cG9ydHMuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLXJlcXVlc3Qtbm8tZnJlc2huZXNzLWhlYWRlcnMu
aHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL2ZldGNoLXJlcXVlc3QtcmVkaXJlY3QuaHR0cHMuaHRtbDoKKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2Zl
dGNoLXJlcXVlc3QteGhyLXN5bmMuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLXJlc3BvbnNlLXhoci5o
dHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvZmV0Y2gtd2FpdHMtZm9yLWFjdGl2YXRlLmh0dHBzLmh0bWw6CisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9n
ZXRyZWdpc3RyYXRpb24uaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZ2V0cmVnaXN0cmF0aW9uLmh0
dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9pbXBvcnQtbW9kdWxlLXNjcmlwdHMuaHR0cHMtZXhwZWN0ZWQudHh0OiBS
ZW1vdmVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvaW1wb3J0LW1vZHVsZS1zY3JpcHRzLmh0dHBzLmh0bWw6IFJlbW92ZWQuCisg
ICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9pbXBvcnQtc2NyaXB0cy1taW1lLXR5cGVzLmh0dHBzLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4K
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL2ltcG9ydC1zY3JpcHRzLW1pbWUtdHlwZXMuaHR0cHMuaHRtbDogUmVtb3ZlZC4KKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2lt
cG9ydC1zY3JpcHRzLXJlc291cmNlLW1hcC5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9pbXBvcnQt
c2NyaXB0cy1yZXNvdXJjZS1tYXAuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ludGVyZmFjZXMtd2luZG93Lmh0
dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9pbnZhbGlkLWJsb2J0eXBlLmh0dHBzLmh0bWw6CisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9pbnZhbGlkLWhl
YWRlci5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvaXNvLWxhdGluMS1oZWFkZXIuaHR0cHMuaHRtbDoKKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL211
bHRpcGxlLXVwZGF0ZS5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvbmF2aWdhdGlvbi1yZWRpcmVjdC5odHRwcy5o
dG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvb25hY3RpdmF0ZS1zY3JpcHQtZXJyb3IuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3BlcmZvcm1h
bmNlLXRpbWVsaW5lLmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9wb3N0bWVzc2FnZS1mcm9tLXdhaXRpbmctc2Vy
dmljZXdvcmtlci5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcG9zdG1lc3NhZ2UtdG8tY2xpZW50LW1lc3NhZ2Ut
cXVldWUuaHR0cHMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcG9zdG1lc3NhZ2UtdG8tY2xp
ZW50LW1lc3NhZ2UtcXVldWUuaHR0cHMuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Bvc3RtZXNzYWdlLXRv
LWNsaWVudC5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvcG9zdG1lc3NhZ2UuaHR0cHMtZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvcG9zdG1lc3NhZ2UuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlYWR5Lmh0dHBzLmh0bWw6CisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZWRp
cmVjdGVkLXJlc3BvbnNlLmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlZGlyZWN0ZWQtcmVzcG9u
c2UuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL3JlZmVyZXIuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlZ2lzdGVyLWRlZmF1
bHQtc2NvcGUuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlZ2lzdGVyLXdhaXQtZm9yZXZlci1pbi1pbnN0YWxs
LXdvcmtlci5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVnaXN0cmF0aW9uLWVuZC10by1lbmQuaHR0cHMuaHRt
bDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL3JlZ2lzdHJhdGlvbi1ldmVudHMuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlZ2lzdHJhdGlvbi1t
aW1lLXR5cGVzLmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlZ2lzdHJhdGlvbi1taW1lLXR5cGVz
Lmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci9yZWdpc3RyYXRpb24tc2NoZWR1bGUtam9iLmh0dHBzLWV4cGVjdGVk
LnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL3JlZ2lzdHJhdGlvbi1zY2hlZHVsZS1qb2IuaHR0cHMuaHRtbDog
UmVtb3ZlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL3JlZ2lzdHJhdGlvbi1zY29wZS5odHRwcy1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9y
ZWdpc3RyYXRpb24tc2VjdXJpdHktZXJyb3IuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVnaXN0
cmF0aW9uLXNlcnZpY2Utd29ya2VyLWF0dHJpYnV0ZXMuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlZ2lzdHJh
dGlvbi11cGRhdGV2aWFjYWNoZS5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZWdpc3RyYXRpb24t
dXBkYXRldmlhY2FjaGUuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlLXRpbWluZy5odHRwcy5odG1s
OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2UtdGltaW5nLnN1Yi5odHRw
cy5odG1sLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvcmVzb3VyY2UtdGltaW5nLnN1Yi5odHRwcy1leHBlY3RlZC50eHQ6IFJlbW92
ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9yZXNvdXJjZXMvYWJvdXQtYmxhbmstcmVwbGFjZW1lbnQtcGluZy1mcmFtZS5weToK
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3Jlc291cmNlcy9hcHBjYWNoZS1vcmRlcmluZy5tYW5pZmVzdDoKKyAgICAgICAgKiB3ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9j
bGFpbS13b3JrZXIuanM6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvY2xhc3NpYy13b3JrZXIuanM6IFJlbW92ZWQu
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9yZXNvdXJjZXMvY2xpZW50cy1nZXQtY3Jvc3Mtb3JpZ2luLWZyYW1lLmh0bWw6CisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9y
ZXNvdXJjZXMvY2xpZW50cy1nZXQtcmVzdWx0aW5nQ2xpZW50SWQtd29ya2VyLmpzOiBSZW1vdmVk
LgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvcmVzb3VyY2VzL2NsaWVudHMtZ2V0LXdvcmtlci5qczoKKyAgICAgICAgKHNlbGYub25t
ZXNzYWdlKToKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL3Jlc291cmNlcy9lbmFibGUtY2xpZW50LW1lc3NhZ2UtcXVldWUuaHRtbDog
UmVtb3ZlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL3Jlc291cmNlcy9leHRlbmRhYmxlLWV2ZW50LWFzeW5jLXdhaXR1bnRpbC5q
czoKKyAgICAgICAgKHN3aXRjaCk6CisgICAgICAgIChldmVudC5yZXF1ZXN0LnVybC5pbmRleE9m
KToKKyAgICAgICAgKGVsc2UuZXZlbnQucmVxdWVzdC51cmwuaW5kZXhPZik6CisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJj
ZXMvZmV0Y2gtY2FudmFzLXRhaW50aW5nLWRvdWJsZS13cml0ZS13b3JrZXIuanM6IFJlbW92ZWQu
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9yZXNvdXJjZXMvZmV0Y2gtY29ycy14aHItaWZyYW1lLmh0bWw6CisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMv
ZmV0Y2gtZXZlbnQtYXN5bmMtcmVzcG9uZC13aXRoLXdvcmtlci5qczoKKyAgICAgICAgKHNldFRp
bWVvdXQpOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWV2ZW50LW5ldHdvcmstZmFsbGJhY2std29ya2Vy
LmpzOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWV2ZW50LXRlc3Qtd29ya2VyLmpzOgorICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3Vy
Y2VzL2ZldGNoLXJlcXVlc3QtY3NzLWJhc2UtdXJsLWlmcmFtZS5odG1sOgorICAgICAgICAqIHdl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2Vz
L2ZldGNoLXJlcXVlc3QtY3NzLWJhc2UtdXJsLXdvcmtlci5qczoKKyAgICAgICAgKHNlbGYub25t
ZXNzYWdlKToKKyAgICAgICAgKHVybC5pbmRleE9mKToKKyAgICAgICAgKGVsc2UudXJsLmluZGV4
T2YpOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvcmVzb3VyY2VzL2dldC1yZXN1bHRpbmdDbGllbnRJZC13b3JrZXIuanM6IFJlbW92
ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9yZXNvdXJjZXMvaW1wb3J0LXJlbGF0aXZlLnhzbDogUmVtb3ZlZC4KKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291
cmNlcy9pbXBvcnQtc2NyaXB0cy1kaWZmLXJlc291cmNlLW1hcC13b3JrZXIuanM6IFJlbW92ZWQu
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9yZXNvdXJjZXMvaW1wb3J0LXNjcmlwdHMtZ2V0LnB5OiBSZW1vdmVkLgorICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3Vy
Y2VzL2ltcG9ydC1zY3JpcHRzLW1pbWUtdHlwZXMtd29ya2VyLmpzOiBSZW1vdmVkLgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVz
b3VyY2VzL2ltcG9ydGVkLWNsYXNzaWMtc2NyaXB0LmpzOiBSZW1vdmVkLgorICAgICAgICAqIHdl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2Vz
L2ltcG9ydGVkLW1vZHVsZS1zY3JpcHQuanM6IFJlbW92ZWQuCisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvbWVzc2Fn
ZS12cy1taWNyb3Rhc2suaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9tb2R1bGUtd29ya2Vy
LmpzOiBSZW1vdmVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL25hdmlnYXRpb24tcmVkaXJlY3Qtb3RoZXItb3Jp
Z2luLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvbmF2aWdhdGlvbi1yZWRpcmVjdC1vdXQtc2NvcGUucHk6
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9yZXNvdXJjZXMvbmF2aWdhdGlvbi1yZWRpcmVjdC1zY29wZTEucHk6CisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJj
ZXMvbmF2aWdhdGlvbi1yZWRpcmVjdC1zY29wZTIucHk6CisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvbmVzdGVkLWlm
cmFtZS1wYXJlbnQuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9wZXJmb3JtYW5jZS10aW1l
bGluZS13b3JrZXIuanM6CisgICAgICAgIChwcm9taXNlX3Rlc3QuKToKKyAgICAgICAgKHByb21p
c2VfdGVzdCk6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvcG9zdG1lc3NhZ2UtZWNoby13b3JrZXIuanM6IFJlbW92
ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9yZXNvdXJjZXMvcmVkaXJlY3Qtd29ya2VyLmpzOgorICAgICAgICAoZXZlbnQud2Fp
dFVudGlsLlByb21pc2UuYWxsLndhaXRVbnRpbFByb21pc2VMaXN0LnRoZW4pOgorICAgICAgICAo
dGhlbik6CisgICAgICAgICh3YWl0VW50aWxQcm9taXNlLmNhY2hlcy5vcGVuLmNhY2hlTmFtZS50
aGVuKToKKyAgICAgICAgKGV2ZW50LnJlc3BvbmRXaXRoLndhaXRVbnRpbFByb21pc2UudGhlbik6
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9yZXNvdXJjZXMvcmVnaXN0cmF0aW9uLXRlc3RzLW1pbWUtdHlwZXMuanM6CisgICAgICAg
IChyZWdpc3RyYXRpb25fdGVzdHNfbWltZV90eXBlcyk6CisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvcmVnaXN0cmF0
aW9uLXRlc3RzLXNjb3BlLmpzOgorICAgICAgICAocmVnaXN0cmF0aW9uX3Rlc3RzX3Njb3BlKToK
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3Jlc291cmNlcy9yZWdpc3RyYXRpb24tdGVzdHMtc2VjdXJpdHktZXJyb3IuanM6CisgICAg
ICAgIChyZWdpc3RyYXRpb25fdGVzdHNfc2VjdXJpdHlfZXJyb3IpOgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3Jl
c291cmNlLXRpbWluZy1pZnJhbWUuc3ViLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvc2VydmljZS13b3Jr
ZXItY3NwLXdvcmtlci5weToKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9zZXJ2aWNlLXdvcmtlci1oZWFkZXIucHk6
CisgICAgICAgIChtYWluKToKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9za2lwLXdhaXRpbmctaW5zdGFsbGVkLXdv
cmtlci5qczoKKyAgICAgICAgKGV2ZW50LndhaXRVbnRpbC5zZWxmLnNraXBXYWl0aW5nLnRoZW4p
OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvcmVzb3VyY2VzL3N0YWxsaW5nLXNlcnZpY2Utd29ya2VyLmpzOiBSZW1vdmVkLgorICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
cmVzb3VyY2VzL3Rlc3QtaGVscGVycy5zdWIuanM6CisgICAgICAgICh3YWl0X2Zvcl91cGRhdGUp
OgorICAgICAgICAoYXN5bmMud2FpdF9mb3JfYWN0aXZhdGlvbl9vbl9kdW1teV9zY29wZSk6Cisg
ICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9yZXNvdXJjZXMvdGVzdC1yZXF1ZXN0LWhlYWRlcnMtd29ya2VyLmpzOiBSZW1vdmVkLgorICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
cmVzb3VyY2VzL3Rlc3QtcmVxdWVzdC1oZWFkZXJzLXdvcmtlci5weTogUmVtb3ZlZC4KKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jl
c291cmNlcy90cmlja2xlLnB5OiBSZW1vdmVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3VwZGF0ZS1kdXJpbmct
aW5zdGFsbGF0aW9uLXdvcmtlci5qczogUmVtb3ZlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy91cGRhdGUtZHVy
aW5nLWluc3RhbGxhdGlvbi13b3JrZXIucHk6IFJlbW92ZWQuCisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvdXBkYXRl
LWZldGNoLXdvcmtlci5weTogUmVtb3ZlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy91cGRhdGUtbWlzc2luZy1p
bXBvcnQtc2NyaXB0cy1pbXBvcnRlZC13b3JrZXIucHk6IFJlbW92ZWQuCisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMv
dXBkYXRlLW1pc3NpbmctaW1wb3J0LXNjcmlwdHMtbWFpbi13b3JrZXIucHk6IFJlbW92ZWQuCisg
ICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9yZXNvdXJjZXMvdXBkYXRlLXJlZ2lzdHJhdGlvbi13aXRoLXR5cGUucHk6IFJlbW92ZWQuCisg
ICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9yZXNvdXJjZXMvdzNjLWltcG9ydC5sb2c6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvd29ya2VyLWludGVyY2Vw
dGlvbi1pZnJhbWUuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy93b3JrZXItbG9hZC1pbnRlcmNl
cHRvci5qczoKKyAgICAgICAgKHNlbGYub25mZXRjaCk6CisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvd29ya2VyLXRl
c3RoYXJuZXNzLmpzOgorICAgICAgICAoY3JlYXRlX3RlbXBvcmFyeV9jYWNoZSk6CisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNv
dXJjZXMveGhyLWlmcmFtZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3hoci1yZXNwb25z
ZS11cmwtd29ya2VyLmpzOiBSZW1vdmVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3hzbC1iYXNlLXVybC1pZnJh
bWUueG1sOiBSZW1vdmVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3hzbC1iYXNlLXVybC13b3JrZXIuanM6IFJl
bW92ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9yZXNvdXJjZXMveHNsdC1wYXNzLnhzbDogUmVtb3ZlZC4KKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3NlcnZpY2Ut
d29ya2VyLWNzcC1jb25uZWN0Lmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3NlcnZpY2Utd29ya2Vy
LWNzcC1kZWZhdWx0Lmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3NlcnZpY2Utd29ya2VyLWNzcC1z
Y3JpcHQuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvc2VydmljZS13b3JrZXItaGVhZGVyLmh0dHBz
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL3NlcnZpY2Utd29ya2VyLWhlYWRlci5odHRwcy5odG1sOgorICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
c2VydmljZXdvcmtlci1tZXNzYWdlLWV2ZW50LWhpc3RvcmljYWwuaHR0cHMuaHRtbDoKKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3No
YXJlZC13b3JrZXItY29udHJvbGxlZC5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvc2tpcC13YWl0aW5nLWluc3Rh
bGxlZC5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9za2lwLXdhaXRpbmctaW5zdGFsbGVkLmh0dHBz
Lmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9za2lwLXdhaXRpbmctdXNpbmctcmVnaXN0cmF0aW9uLmh0dHBzLmh0bWw6Cisg
ICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9za2lwLXdhaXRpbmctd2l0aG91dC11c2luZy1yZWdpc3RyYXRpb24uaHR0cHMuaHRtbDoKKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L3NraXAtd2FpdGluZy5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvc3RhdGUuaHR0cHMuaHRtbDoKKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3N5bmNl
ZC1zdGF0ZS5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvdW5jb250cm9sbGVkLXBhZ2UuaHR0cHMuaHRtbDoKKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L3VucmVnaXN0ZXItdGhlbi1yZWdpc3Rlci1uZXctc2NyaXB0Lmh0dHBzLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3VucmVnaXN0ZXItdGhlbi1yZWdpc3Rlci1uZXctc2NyaXB0Lmh0dHBzLmh0bWw6CisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91
bnJlZ2lzdGVyLXRoZW4tcmVnaXN0ZXIuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdW5yZWdpc3Rl
ci10aGVuLXJlZ2lzdGVyLmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUtYWZ0ZXItbmF2aWdhdGlvbi1y
ZWRpcmVjdC5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLWFmdGVyLW9uZWRheS5odHRwcy5odG1sOgor
ICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvdXBkYXRlLWJ5dGVjaGVjay5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLW1pc3NpbmctaW1wb3J0
LXNjcmlwdHMuaHR0cHMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLW1pc3Npbmct
aW1wb3J0LXNjcmlwdHMuaHR0cHMuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0ZS1uby1jYWNoZS1y
ZXF1ZXN0LWhlYWRlcnMuaHR0cHMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIHdl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLW5v
LWNhY2hlLXJlcXVlc3QtaGVhZGVycy5odHRwcy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIHdl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLW5v
dC1hbGxvd2VkLmh0dHBzLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0ZS1ub3QtYWxs
b3dlZC5odHRwcy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLW9uLW5hdmlnYXRpb24uaHR0cHMt
ZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLW9uLW5hdmlnYXRpb24uaHR0cHMuaHRt
bDogUmVtb3ZlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL3VwZGF0ZS1yZWNvdmVyeS5odHRwcy5odG1sOgorICAgICAgICAqIHdl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLXJl
Z2lzdHJhdGlvbi13aXRoLXR5cGUuaHR0cHMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBk
YXRlLXJlZ2lzdHJhdGlvbi13aXRoLXR5cGUuaHR0cHMuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3czYy1p
bXBvcnQubG9nOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvd2Vic29ja2V0Lmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3dlYnNvY2tl
dC5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvd2luZG93Y2xpZW50LW5hdmlnYXRlLmh0dHBzLmh0bWw6CisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci93
b3JrZXItY2xpZW50LWlkLmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3dvcmtlci1pbnRlcmNlcHRp
b24uaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvd29ya2VyLWludGVyY2VwdGlvbi5odHRwcy5odG1s
OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIveGhyLXJlc3BvbnNlLXVybC5odHRwcy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci94
aHItcmVzcG9uc2UtdXJsLmh0dHBzLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci94c2wtYmFzZS11cmwuaHR0
cHMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIveHNsLWJhc2UtdXJsLmh0dHBzLmh0bWw6IFJl
bW92ZWQuCisKIDIwMTktMDktMDcgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAog
ICAgICAgICBBZGQgc3VwcG9ydCBmb3IgcG9zdE1lc3NhZ2UgYnVmZmVyaW5nIGJldHdlZW4gdGhl
IHNlcnZpY2Ugd29ya2VyIGFuZCB3aW5kb3cKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL1Rlc3RF
eHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDlmMTQzNGMw
YjAxM2ZiZjNjZDY2MzdkMzg3OTUzNTY5NTg2MjQwNjQuLmY5NmMyNTM1YTI3NzFhZWRhOTU5NGUw
Y2M2NmNjOTU4NmI1N2FhNTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlv
bnMKKysrIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMjExLDE2ICsyMTEsMTcg
QEAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvZmV0Y2gtbWl4ZWQtY29udGUKIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL211bHRpcGFydC1pbWFnZS5odHRwcy5o
dG1sIFsgU2tpcCBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9za2lwLXdhaXRpbmctdXNpbmctcmVnaXN0cmF0aW9uLmh0dHBz
Lmh0bWwgWyBTa2lwIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3NraXAtd2FpdGluZy13aXRob3V0LXVzaW5nLXJlZ2lzdHJh
dGlvbi5odHRwcy5odG1sIFsgU2tpcCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUtbm90LWFsbG93ZWQuaHR0cHMu
aHRtbCBbIFNraXAgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvd29ya2VyLWluLXNhbmRib3hlZC1pZnJhbWUtYnktY3NwLWZl
dGNoLWV2ZW50Lmh0dHBzLmh0bWwgWyBTa2lwIF0KIFsgRGVidWcgXSBpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZWFkeS5odHRw
cy5odG1sIFsgU2tpcCBdCiAKICMgTmV3bHkgaW1wb3J0ZWQgc2VydmljZSB3b3JrZXIgdGVzdHMg
dGhhdCBhcmUgZmxha3kuCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9uYXZpZ2F0aW9uLXJlZGlyZWN0LXRvLWh0dHAuaHR0cHMu
aHRtbCBbIFBhc3MgRmFpbHVyZSBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZS10aW1pbmcuc3ViLmh0dHBzLmh0
bWwgWyBQYXNzIEZhaWx1cmUgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvd29ya2VyLWNsaWVudC1pZC5odHRwcy5odG1sIFsg
UGFzcyBGYWlsdXJlIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMveGhyL2V2ZW50
LXRpbWVvdXQtb3JkZXIuaHRtIFsgUGFzcyBGYWlsdXJlIF0KIAorIyBUaGUgdGVzdHMgcHJpbnRz
IG91dCBhIFVVSUQgdGhhdCBpcyBkaWZmZXJlbnQgZXZlcnkgdGltZS4KK2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0ZS5o
dHRwcy5odG1sIFsgUGFzcyBGYWlsdXJlIF0KKwogIyBUaGlzIHRlc3QgaXMgdGltaW5nIG91dCBi
ZWNhdXNlIGl0IHJlbGllcyBvbiBodHRwOi8vd3d3MS5sb2NhbGhvc3Q6ODgwMCBob3N0IGZvciBj
cm9zcyBvcmlnaW4gY2hlY2tzLgogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jb3Jz
L3JlbW90ZS1vcmlnaW4uaHRtIFsgU2tpcCBdCiAKQEAgLTI0OCw3ICsyNDksNiBAQCBpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91
cGRhdGUtYWZ0ZXItb25lZAogCiAjIFVuc3VwcG9ydGVkIGZlYXR1cmVzOiBTaGFyZWRXb3JrZXIs
IE5hdmlnYXRpb25QcmVsb2FkCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9uYXZpZ2F0aW9uLXByZWxvYWQgWyBTa2lwIF0KLWlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3NoYXJlZC13b3JrZXItY29udHJvbGxlZC5odHRwcy5odG1sIFsgU2tpcCBdCiBpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9j
bGFpbS1zaGFyZWQtd29ya2VyLWZldGNoLmh0dHBzLmh0bWwgWyBTa2lwIF0KIAogIyBVbnN1cHBv
cnRlZCBmZWF0dXJlczogUGVyZm9ybWFuY2VOYXZpZ2F0aW9uVGltaW5nCkBAIC0yNjYsNiArMjY2
LDcgQEAgd2Via2l0Lm9yZy9iLzE4ODI0NiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmsKICMgQ29uc29sZSBsb2cgbGluZXMgbWF5IGFw
cGVhciBpbiBhIGRpZmZlcmVudCBvcmRlciBzbyB3ZSBzaWxlbmNlIHRoZW0uCiBpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvaGlzdG9yeS90aGUtbG9jYXRpb24t
aW50ZXJmYWNlL2xvY2F0aW9uLXByb3RvY29sLXNldHRlci1ub24tYnJva2VuLmh0bWwgWyBEdW1w
SlNDb25zb2xlTG9nSW5TdGRFcnIgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL2Jyb3dzZXJzL2hpc3RvcnkvdGhlLWxvY2F0aW9uLWludGVyZmFjZS9sb2NhdGlvbi1wcm90
b2NvbC1zZXR0ZXItbm9uLWJyb2tlbi13ZWlyZC5odG1sIFsgRHVtcEpTQ29uc29sZUxvZ0luU3Rk
RXJyIF0KK2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL2ZldGNoLWNvcnMteGhyLmh0dHBzLmh0bWwgWyBEdW1wSlNDb25zb2xlTG9n
SW5TdGRFcnIgXQogCiAjIE5ld2x5IGltcG9ydGVkIFdQVCB0ZXN0cyB0aGF0IGFyZSB0aW1pbmcg
b3V0LgogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL2hpc3Rv
cnkvdGhlLWxvY2F0aW9uLWludGVyZmFjZS9sb2NhdGlvbi1vcmlnaW4taWRuYS5zdWIud2luZG93
Lmh0bWwgWyBTa2lwIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2ludGVyZmFjZXMuYW55LWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2ludGVy
ZmFjZXMuYW55LWV4cGVjdGVkLnR4dAppbmRleCBmMTRmNTM5Y2EyNjYwOWQxOWU4MTA4NDk1YThk
YWMzM2VmOTk0MzI1Li5kMjg1MWE2YzhjOWRhOGQ4OWQ4ZmNmYTI1YzcxMTE2OTUzZmE4ZjNjIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0lu
ZGV4ZWREQi9pbnRlcmZhY2VzLmFueS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaW50ZXJmYWNlcy5hbnktZXhw
ZWN0ZWQudHh0CkBAIC0xLDQgKzEsMyBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDQ4MjogY2Fs
bGJhY2sgbm90IHlldCBzdXBwb3J0ZWQKIAogUEFTUyBUZXN0IGRyaXZlciAKIFBBU1MgUGFydGlh
bCBpbnRlcmZhY2UgV2luZG93T3JXb3JrZXJHbG9iYWxTY29wZTogb3JpZ2luYWwgaW50ZXJmYWNl
IGRlZmluZWQgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL0luZGV4ZWREQi9pbnRlcmZhY2VzLmFueS53b3JrZXItZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaW50
ZXJmYWNlcy5hbnkud29ya2VyLWV4cGVjdGVkLnR4dAppbmRleCBiM2I5NTEwYjkyMjRmODFiODky
YjliOGFlMDliODdmOTE4NWQxYzg1Li5lNGRmNGM5MjUxNmM5MDQ0ODQ3ODQ5NjYxZGRmM2FjYjE0
ZmJmYmY1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL0luZGV4ZWREQi9pbnRlcmZhY2VzLmFueS53b3JrZXItZXhwZWN0ZWQudHh0CisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lu
dGVyZmFjZXMuYW55Lndvcmtlci1leHBlY3RlZC50eHQKQEAgLTI4LDYgKzI4LDEwIEBAIFBBU1Mg
Tm9kZUl0ZXJhdG9yIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVy
ZmFjZSBvYmplY3QKIFBBU1MgVHJlZVdhbGtlciBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJv
cGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IAogUEFTUyBOb2RlRmlsdGVyIGludGVyZmFjZTog
ZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgCiBQQVNTIERPTVRv
a2VuTGlzdCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ug
b2JqZWN0IAorUEFTUyBYUGF0aFJlc3VsdCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVy
dGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IAorUEFTUyBYUGF0aEV4cHJlc3Npb24gaW50ZXJmYWNl
OiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCAKK1BBU1MgWFBh
dGhOU1Jlc29sdmVyIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVy
ZmFjZSBvYmplY3QgCitQQVNTIFhQYXRoRXZhbHVhdG9yIGludGVyZmFjZTogZXhpc3RlbmNlIGFu
ZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgCiBQQVNTIElEQlJlcXVlc3QgaW50ZXJm
YWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCAKIFBBU1Mg
SURCUmVxdWVzdCBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aCAKIFBBU1MgSURCUmVxdWVzdCBpbnRl
cmZhY2Ugb2JqZWN0IG5hbWUgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL1dlYklETC9pbnRlcmZhY2VzLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvV2ViSURML2ludGVyZmFjZXMt
ZXhwZWN0ZWQudHh0CmluZGV4IDc5ZDVhMWUxYjZhMmIwNDk5NjdhNTk1MTY3MmVjZmY0NWEwZDMw
MDMuLjUxNGI2ZjQ5MTg5MmFhZmNmMmYyMjc0MTE0YTNjMzE5NmM0NDAxZGYgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvV2ViSURML2ludGVy
ZmFjZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvV2ViSURML2ludGVyZmFjZXMtZXhwZWN0ZWQudHh0CkBAIC0xLDUgKzEsMyBA
QAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDQ4MjogY2FsbGJhY2sgbm90IHlldCBzdXBwb3J0ZWQK
LUNPTlNPTEUgTUVTU0FHRTogbGluZSA0ODI6IGNhbGxiYWNrIG5vdCB5ZXQgc3VwcG9ydGVkCiAK
IFBBU1MgVGVzdCBkcml2ZXIgCiBQQVNTIERPTUV4Y2VwdGlvbiBpbnRlcmZhY2U6IGV4aXN0ZW5j
ZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jb21tb24vc2VjdXJpdHktZmVh
dHVyZXMvcmVzb3VyY2VzL2NvbW1vbi5zdWIuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2NvbW1vbi9zZWN1cml0eS1mZWF0dXJlcy9yZXNvdXJjZXMvY29t
bW9uLnN1Yi5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jN2Y5NGU4MDZmOTRkYTQ5NDU4MGRlMmYyNWM2NzY4MTVj
YTk0NjRlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jb21tb24vc2VjdXJpdHktZmVhdHVyZXMvcmVzb3VyY2VzL2NvbW1vbi5z
dWIuanMKQEAgLTAsMCArMSwxMjI2IEBACisvKioKKyAqIEBmaWxlb3ZlcnZpZXcgVXRpbGl0aWVz
IGZvciBtaXhlZC1jb250ZW50IGluIFdlYiBQbGF0Zm9ybSBUZXN0cy4KKyAqIEBhdXRob3IgYnVy
bmlrQGdvb2dsZS5jb20gKEtyaXN0aWphbiBCdXJuaWspCisgKiBEaXNjbGFpbWVyOiBTb21lIG1l
dGhvZHMgb2Ygb3RoZXIgYXV0aG9ycyBhcmUgYW5ub3RhdGVkIGluIHRoZSBjb3JyZXNwb25kaW5n
CisgKiAgICAgbWV0aG9kJ3MgSlNEb2MuCisgKi8KKworLy8gPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisvLyBUeXBlcworLy8g
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09CisvLyBPYmplY3RzIG9mIHRoZSBmb2xsb3dpbmcgdHlwZXMgYXJlIHVzZWQgdG8gcmVw
cmVzZW50IHdoYXQga2luZCBvZgorLy8gc3VicmVzb3VyY2UgcmVxdWVzdHMgc2hvdWxkIGJlIHNl
bnQgd2l0aCB3aGF0IGtpbmQgb2YgcG9saWNpZXMsCisvLyBmcm9tIHdoYXQga2luZCBvZiBwb3Nz
aWJseSBuZXN0ZWQgc291cmNlIGNvbnRleHRzLgorLy8gVGhlIG9iamVjdHMgYXJlIHJlcHJlc2Vu
dGVkIGFzIEpTT04gb2JqZWN0cyAobm90IEphdmFTY3JpcHQvUHl0aG9uIGNsYXNzZXMKKy8vIGlu
IGEgc3RyaWN0IHNlbnNlKSB0byBiZSBwYXNzZWQgYmV0d2VlbiBKYXZhU2NyaXB0L1B5dGhvbiBj
b2RlLgorCisvLyBOb3RlOiBTbyBmYXIgdGhpcyBkb2N1bWVudCBjb3ZlcnM6CisvLyAtIHJlc291
cmNlcy9jb21tb24uc3ViLmpzIDogY2xpZW50LXNpZGUgdGVzdCBpbmZyYSBjb2RlCisvLyAtIHNj
b3BlLyAtIHNlcnZlci1zaWRlIHNjcmlwdHMgdGhhdCBzZXJ2ZXMgbmVzdGVkIHNvdXJjZSBjb250
ZXh0cworLy8gYnV0IGRvZXNuJ3QgY292ZXI6CisvLyAtIHRvb2xzLyAtIGdlbmVyYXRvciBzY3Jp
cHRzIHRoYXQgZ2VuZXJhdGVzIHRvcC1sZXZlbCBIVE1MIGRvY3VtZW50cy4KKy8vIFRoZXJlIGFy
ZSBzb21lIHBvbGljaWVzIG9ubHkgaGFuZGxlZCBieSBnZW5lcmF0b3JzIChlLmcuIG1peGVkLWNv
bnRlbnQKKy8vIG9wdC1pbnMpIGFuZCBub3QgeWV0IGNvdmVyZWQgYnkgdGhlIGRvY3MgaGVyZS4K
KworLyoqCisgIEB0eXBlZGVmIFBvbGljeURlbGl2ZXJ5CisgIEB0eXBlIHtvYmplY3R9CisgIFJl
ZmVycmVyIHBvbGljeSBldGMuIGNhbiBiZSBhcHBsaWVkL2RlbGl2ZXJlZCBpbiBzZXZlcmFsIHdh
eXMuCisgIEEgUG9saWN5RGVsaXZlcnkgb2JqZWN0IHNwZWNpZmllcyB3aGF0IHBvbGljeSBpcyBk
ZWxpdmVyZWQgYW5kIGhvdy4KKworICBAcHJvcGVydHkge3N0cmluZ30gZGVsaXZlcnlUeXBlCisg
ICAgU3BlY2lmaWVzIGhvdyB0aGUgcG9saWN5IGlzIGRlbGl2ZXJlZC4KKyAgICBUaGUgdmFsaWQg
ZGVsaXZlcnlUeXBlIGFyZToKKworICAgICAiYXR0ciIKKyAgICAgICAgW0FdIERPTSBhdHRyaWJ1
dGVzIGUuZy4gcmVmZXJyZXJQb2xpY3kuCisKKyAgICAgICJyZWwtbm9yZWYiCisgICAgICAgIFtB
XSA8bGluayByZWw9Im5vcmVmZXJyZXIiPiAocmVmZXJyZXItcG9saWN5IG9ubHkpLgorCisgICAg
ICAiaHR0cC1ycCIKKyAgICAgICAgW0JdIEhUVFAgcmVzcG9uc2UgaGVhZGVycy4KKworICAgICAg
Im1ldGEiCisgICAgICAgIFtCXSA8bWV0YT4gZWxlbWVudHMuCisKKyAgQHByb3BlcnR5IHtzdHJp
bmd9IGtleQorICBAcHJvcGVydHkge3N0cmluZ30gdmFsdWUKKyAgICBTcGVjaWZpZXMgd2hhdCBw
b2xpY3kgdG8gYmUgZGVsaXZlcmVkLiBUaGUgdmFsaWQga2V5cyBhcmU6CisKKyAgICAgICJyZWZl
cnJlclBvbGljeSIKKyAgICAgICAgUmVmZXJyZXIgUG9saWN5CisgICAgICAgIGh0dHBzOi8vdzNj
LmdpdGh1Yi5pby93ZWJhcHBzZWMtcmVmZXJyZXItcG9saWN5LworICAgICAgICBWYWxpZCB2YWx1
ZXMgYXJlIHRob3NlIGxpc3RlZCBpbgorICAgICAgICBodHRwczovL3czYy5naXRodWIuaW8vd2Vi
YXBwc2VjLXJlZmVycmVyLXBvbGljeS8jcmVmZXJyZXItcG9saWN5CisgICAgICAgIChleGNlcHQg
dGhhdCAiIiBpcyByZXByZXNlbnRlZCBhcyBudWxsL05vbmUpCisKKyAgQSBQb2xpY3lEZWxpdmVy
eSBjYW4gYmUgc3BlY2lmaWVkIGluIHNldmVyYWwgd2F5czoKKworICAtIChmb3IgW0FdKSBBc3Nv
Y2lhdGVkIHdpdGggYW4gaW5kaXZpZHVhbCBzdWJyZXNvdXJjZSByZXF1ZXN0IGFuZAorICAgIHNw
ZWNpZmllZCBpbiBgU3VicmVzb3VyY2UucG9saWNpZXNgLAorICAgIGUuZy4gcmVmZXJyZXJQb2xp
Y3kgYXR0cmlidXRlcyBvZiBET00gZWxlbWVudHMuCisgICAgVGhpcyBpcyBoYW5kbGVkIGluIGlu
dm9rZVJlcXVlc3QoKS4KKworICAtIChmb3IgW0JdKSBBc3NvY2lhdGVkIHdpdGggYW4gbmVzdGVk
IGVudmlyb25tZW50YWwgc2V0dGluZ3Mgb2JqZWN0IGFuZAorICAgIHNwZWNpZmllZCBpbiBgU291
cmNlQ29udGV4dC5wb2xpY2llc2AsCisgICAgZS5nLiBIVFRQIHJlZmVycmVyLXBvbGljeSByZXNw
b25zZSBoZWFkZXJzIG9mIEhUTUwvd29ya2VyIHNjcmlwdHMuCisgICAgVGhpcyBpcyBoYW5kbGVk
IGluIHNlcnZlci1zaWRlIHVuZGVyIC9jb21tb24vc2VjdXJpdHktZmVhdHVyZXMvc2NvcGUvLgor
CisgIC0gKGZvciBbQl0pIEFzc29jaWF0ZWQgd2l0aCB0aGUgdG9wLWxldmVsIEhUTUwgZG9jdW1l
bnQuCisgICAgVGhpcyBpcyBoYW5kbGVkIGJ5IHRoZSBnZW5lcmF0b3JzLmQKKyovCisKKy8qKgor
ICBAdHlwZWRlZiBTdWJyZXNvdXJjZQorICBAdHlwZSB7b2JqZWN0fQorICBBIFN1YnJlc291cmNl
IHJlcHJlc2VudHMgaG93IGEgc3VicmVzb3VyY2UgcmVxdWVzdCBpcyBzZW50LgorCisgIEBwcm9w
ZXJ0eXtTdWJyZXNvdXJjZVR5cGV9IHN1YnJlc291cmNlVHlwZQorICAgIEhvdyB0aGUgc3VicmVz
b3VyY2UgcmVxdWVzdCBpcyBzZW50LAorICAgIGUuZy4gImltZy10YWciIGZvciBzZW5kaW5nIGEg
cmVxdWVzdCB2aWEgPGltZyBzcmM+LgorICAgIFNlZSB0aGUga2V5cyBvZiBgc3VicmVzb3VyY2VN
YXBgIGZvciB2YWxpZCB2YWx1ZXMuCisKKyAgQHByb3BlcnR5e3N0cmluZ30gdXJsCisgICAgc3Vi
cmVzb3VyY2UncyBVUkwuCisgICAgVHlwaWNhbGx5IHRoaXMgaXMgY29uc3RydWN0ZWQgYnkgZ2V0
UmVxdWVzdFVSTHMoKSBiZWxvdy4KKworICBAcHJvcGVydHl7UG9saWN5RGVsaXZlcnl9IHBvbGlj
eURlbGl2ZXJpZXMKKyAgICBQb2xpY2llcyBkZWxpdmVyZWQgc3BlY2lmaWMgdG8gdGhlIHN1YnJl
c291cmNlIHJlcXVlc3QuCisqLworCisvKioKKyAgQHR5cGVkZWYgU291cmNlQ29udGV4dAorICBA
dHlwZSB7b2JqZWN0fQorICBSZXF1ZXN0cyBjYW4gYmUgcG9zc2libHkgc2VudCBmcm9tIHZhcmlv
dXMga2luZHMgb2Ygc291cmNlIGNvbnRleHRzLCBpLmUuCisgIGZldGNoIGNsaWVudCdzIGVudmly
b25tZW50IHNldHRpbmdzIG9iamVjdHM6CisgIHRvcC1sZXZlbCB3aW5kb3dzLCBpZnJhbWVzLCBv
ciB3b3JrZXJzLgorICBBIFNvdXJjZUNvbnRleHQgb2JqZWN0IHNwZWNpZmllcyBvbmUgZW52aXJv
bm1lbnQgc2V0dGluZ3Mgb2JqZWN0LCBhbmQKKyAgYW4gQXJyYXk8U291cmNlQ29udGV4dD4gc3Bl
Y2lmaWVzIGEgcG9zc2libHkgbmVzdGVkIGNvbnRleHQsCisgIGZyb20gdGhlIG91dGVyLW1vc3Qg
dG8gaW5uZXItbW9zdCBlbnZpcm9ubWVudCBzZXR0aW5ncyBvYmplY3RzLgorCisgIEZvciBleGFt
cGxlOgorICAgIFt7c291cmNlQ29udGV4dFR5cGU6ICJzcmNkb2MifSwge3NvdXJjZUNvbnRleHRU
eXBlOiAid29ya2VyLWNsYXNzaWMifV0KKyAgbWVhbnMgdGhhdCBhIHN1YnJlc291cmNlIHJlcXVl
c3QgaXMgdG8gYmUgc2VudCBmcm9tCisgIGEgY2xhc3NpYyBkZWRpY2F0ZWQgd29ya2VyIGNyZWF0
ZWQgZnJvbSA8aWZyYW1lIHNyY2RvYz4KKyAgaW5zaWRlIHRoZSB0b3AtbGV2ZWwgSFRNTCBkb2N1
bWVudC4KKyAgTm90ZTogdGhlIHRvcC1sZXZlbCBkb2N1bWVudCBpcyBub3QgaW5jbHVkZWQgaW4g
dGhlIGFycmF5IGFuZAorICBpcyBhc3N1bWVkIGltcGxpY2l0bHkuCisKKyAgU291cmNlQ29udGV4
dCAob3IgQXJyYXk8U291cmNlQ29udGV4dD4pIGlzIHNldCBiYXNlZCBvbgorICB0aGUgZmV0Y2gg
Y2xpZW50J3Mgc2V0dGluZ3Mgb2JqZWN0IHRoYXQgaXMgdXNlZCBmb3IgdGhlIHN1YnJlc291cmNl
IHJlcXVlc3QsCisgIE5PVCBvbiBtb2R1bGUgbWFwIHNldHRpbmdzIG9iamVjdCwgYW5kCisgIE5P
VCBvbiB0aGUgaW5uZXItbW9zdCBzZXR0aW5ncyBvYmplY3QgdGhhdCBhcHBlYXJzIGluIHRoZSB0
ZXN0LgorICBGb3IgZXhhbXBsZSwgQXJyYXk8U291cmNlQ29udGV4dD4gaXMgYFtdYCAoaW5kaWNh
dGluZyB0aGUgdG9wIFdpbmRvdykKKyAgZm9yIGB3b3JrZXIuanNgCisgIC0gV2hlbiBpdCBpcyB0
aGUgcm9vdCB3b3JrZXIgc2NyaXB0OiBgbmV3IFdvcmtlcignd29ya2VyLmpzJylgLCBvcgorICAt
IFdoZW4gaXQgaXMgaW1wb3J0ZWQgZnJvbSB0aGUgcm9vdCB3b3JrZXIgc2NyaXB0OgorICAgIGBu
ZXcgV29ya2VyKCd0b3AuanMnLCB7dHlwZTogJ21vZHVsZSd9KWAKKyAgICB3aGVyZSBgdG9wLmpz
YCBoYXMgYGltcG9ydCAnd29ya2VyLmpzJ2AuCisgIGJlY2F1c2UgdGhlIHJlcXVlc3QgZm9yIGB3
b3JrZXIuanNgIHVzZXMgdGhlIFdpbmRvdyBhcyBpdHMgZmV0Y2ggY2xpZW50J3MKKyAgc2V0dGlu
Z3Mgb2JqZWN0LCB3aGlsZSBhIFdvcmtlckdsb2JhbFNjb3BlIGlzIGNyZWF0ZWQgdGhvdWdoLgor
CisgIEBwcm9wZXJ0eSB7c3RyaW5nfSBzb3VyY2VDb250ZXh0VHlwZQorICAgIEtpbmQgb2YgdGhl
IHNvdXJjZSBjb250ZXh0IHRvIGJlIHVzZWQuCisgICAgVmFsaWQgdmFsdWVzIGFyZSB0aGUga2V5
cyBvZiBgc291cmNlQ29udGV4dE1hcGAgYmVsb3cuCisKKyAgQHByb3BlcnR5IHtBcnJheTxQb2xp
Y3lEZWxpdmVyeT59IHBvbGljeURlbGl2ZXJpZXMKKyAgICBBIGxpc3Qgb2YgUG9saWN5RGVsaXZl
cnkgYXBwbGllZCB0byB0aGUgc291cmNlIGNvbnRleHQuCisqLworCisvLyA9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy8vIEdl
bmVyYWwgdXRpbGl0eSBmdW5jdGlvbnMKKy8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCitmdW5jdGlvbiB0aW1lb3V0UHJv
bWlzZSh0LCBtcykgeworICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7IHQuc3RlcF90
aW1lb3V0KHJlc29sdmUsIG1zKTsgfSk7Cit9CisKKy8qKgorICogTm9ybWFsaXplcyB0aGUgdGFy
Z2V0IHBvcnQgZm9yIHVzZSBpbiBhIFVSTC4gRm9yIGRlZmF1bHQgcG9ydHMsIHRoaXMgaXMgdGhl
CisgKiAgICAgZW1wdHkgc3RyaW5nIChvbWl0dGVkIHBvcnQpLCBvdGhlcndpc2UgaXQncyBhIGNv
bG9uIGZvbGxvd2VkIGJ5IHRoZSBwb3J0CisgKiAgICAgbnVtYmVyLiBQb3J0cyA4MCwgNDQzIGFu
ZCBhbiBlbXB0eSBzdHJpbmcgYXJlIHJlZ2FyZGVkIGFzIGRlZmF1bHQgcG9ydHMuCisgKiBAcGFy
YW0ge251bWJlcn0gdGFyZ2V0UG9ydCBUaGUgcG9ydCB0byB1c2UKKyAqIEByZXR1cm4ge3N0cmlu
Z30gVGhlIHBvcnQgcG9ydGlvbiBmb3IgdXNpbmcgYXMgcGFydCBvZiBhIFVSTC4KKyAqLworZnVu
Y3Rpb24gZ2V0Tm9ybWFsaXplZFBvcnQodGFyZ2V0UG9ydCkgeworICByZXR1cm4gKFs4MCwgNDQz
LCAiIl0uaW5kZXhPZih0YXJnZXRQb3J0KSA+PSAwKSA/ICIiIDogIjoiICsgdGFyZ2V0UG9ydDsK
K30KKworLyoqCisgKiBDcmVhdGVzIGEgR1VJRC4KKyAqICAgICBTZWU6IGh0dHBzOi8vZW4ud2lr
aXBlZGlhLm9yZy93aWtpL0dsb2JhbGx5X3VuaXF1ZV9pZGVudGlmaWVyCisgKiAgICAgT3JpZ2lu
YWwgYXV0aG9yOiBicm9vZmEgKGh0dHA6Ly93d3cuYnJvb2ZhLmNvbS8pCisgKiAgICAgU291cmNl
ZCBmcm9tOiBodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vYS8yMTE3NTIzLzQ5NDk3MTUKKyAqIEBy
ZXR1cm4ge3N0cmluZ30gQSBwc2V1ZG8tcmFuZG9tIEdVSUQuCisgKi8KK2Z1bmN0aW9uIGd1aWQo
KSB7CisgIHJldHVybiAneHh4eHh4eHgteHh4eC00eHh4LXl4eHgteHh4eHh4eHh4eHh4Jy5yZXBs
YWNlKC9beHldL2csIGZ1bmN0aW9uKGMpIHsKKyAgICB2YXIgciA9IE1hdGgucmFuZG9tKCkgKiAx
NiB8IDAsIHYgPSBjID09ICd4JyA/IHIgOiAociAmIDB4MyB8IDB4OCk7CisgICAgcmV0dXJuIHYu
dG9TdHJpbmcoMTYpOworICB9KTsKK30KKworLyoqCisgKiBJbml0aWF0ZXMgYSBuZXcgWEhSIHZp
YSBHRVQuCisgKiBAcGFyYW0ge3N0cmluZ30gdXJsIFRoZSBlbmRwb2ludCBVUkwgZm9yIHRoZSBY
SFIuCisgKiBAcGFyYW0ge3N0cmluZ30gcmVzcG9uc2VUeXBlIE9wdGlvbmFsIC0gaG93IHNob3Vs
ZCB0aGUgcmVzcG9uc2UgYmUgcGFyc2VkLgorICogICAgIERlZmF1bHQgaXMgImpzb24iLgorICog
ICAgIFNlZTogaHR0cHM6Ly94aHIuc3BlYy53aGF0d2cub3JnLyNkb20teG1saHR0cHJlcXVlc3Qt
cmVzcG9uc2V0eXBlCisgKiBAcmV0dXJuIHtQcm9taXNlfSBBIHByb21pc2Ugd3JhcHBpbmcgdGhl
IHN1Y2Nlc3MgYW5kIGVycm9yIGV2ZW50cy4KKyAqLworZnVuY3Rpb24geGhyUmVxdWVzdCh1cmws
IHJlc3BvbnNlVHlwZSkgeworICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwg
cmVqZWN0KSB7CisgICAgdmFyIHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOworICAgIHhoci5v
cGVuKCdHRVQnLCB1cmwsIHRydWUpOworICAgIHhoci5yZXNwb25zZVR5cGUgPSByZXNwb25zZVR5
cGUgfHwgImpzb24iOworCisgICAgeGhyLmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIiwgZnVuY3Rp
b24oKSB7CisgICAgICByZWplY3QoRXJyb3IoIk5ldHdvcmsgRXJyb3IiKSk7CisgICAgfSk7CisK
KyAgICB4aHIuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIGZ1bmN0aW9uKCkgeworICAgICAgaWYg
KHhoci5zdGF0dXMgIT0gMjAwKQorICAgICAgICByZWplY3QoRXJyb3IoeGhyLnN0YXR1c1RleHQp
KTsKKyAgICAgIGVsc2UKKyAgICAgICAgcmVzb2x2ZSh4aHIucmVzcG9uc2UpOworICAgIH0pOwor
CisgICAgeGhyLnNlbmQoKTsKKyAgfSk7Cit9CisKKy8qKgorICogU2V0cyBhdHRyaWJ1dGVzIG9u
IGEgZ2l2ZW4gRE9NIGVsZW1lbnQuCisgKiBAcGFyYW0ge0RPTUVsZW1lbnR9IGVsZW1lbnQgVGhl
IGVsZW1lbnQgb24gd2hpY2ggdG8gc2V0IHRoZSBhdHRyaWJ1dGVzLgorICogQHBhcmFtIHtvYmpl
Y3R9IEFuIG9iamVjdCB3aXRoIGtleXMgKHNlcnZpbmcgYXMgYXR0cmlidXRlIG5hbWVzKSBhbmQg
dmFsdWVzLgorICovCitmdW5jdGlvbiBzZXRBdHRyaWJ1dGVzKGVsLCBhdHRycykgeworICBhdHRy
cyA9IGF0dHJzIHx8IHt9CisgIGZvciAodmFyIGF0dHIgaW4gYXR0cnMpIHsKKyAgICBpZiAoYXR0
ciAhPT0gJ3NyYycpCisgICAgICBlbC5zZXRBdHRyaWJ1dGUoYXR0ciwgYXR0cnNbYXR0cl0pOwor
ICB9CisgIC8vIFdvcmthcm91bmQgZm9yIENocm9taXVtOiBzZXQgPGltZz4ncyBzcmMgYXR0cmli
dXRlIGFmdGVyIGFsbCBvdGhlcgorICAvLyBhdHRyaWJ1dGVzIHRvIGVuc3VyZSB0aGUgcG9saWN5
IGlzIGFwcGxpZWQuCisgIGZvciAodmFyIGF0dHIgaW4gYXR0cnMpIHsKKyAgICBpZiAoYXR0ciA9
PT0gJ3NyYycpCisgICAgICBlbC5zZXRBdHRyaWJ1dGUoYXR0ciwgYXR0cnNbYXR0cl0pOworICB9
Cit9CisKKy8qKgorICogQmluZHMgdG8gc3VjY2VzcyBhbmQgZXJyb3IgZXZlbnRzIG9mIGFuIG9i
amVjdCB3cmFwcGluZyB0aGVtIGludG8gYSBwcm9taXNlCisgKiAgICAgYXZhaWxhYmxlIHRocm91
Z2gge0Bjb2RlIGVsZW1lbnQuZXZlbnRQcm9taXNlfS4gVGhlIHN1Y2Nlc3MgZXZlbnQKKyAqICAg
ICByZXNvbHZlcyBhbmQgZXJyb3IgZXZlbnQgcmVqZWN0cy4KKyAqIFRoaXMgbWV0aG9kIGFkZHMg
ZXZlbnQgbGlzdGVuZXJzLCBhbmQgdGhlbiByZW1vdmVzIGFsbCB0aGUgYWRkZWQgbGlzdGVuZXJz
CisgKiB3aGVuIG9uZSBvZiBsaXN0ZW5lZCBldmVudCBpcyBmaXJlZC4KKyAqIEBwYXJhbSB7b2Jq
ZWN0fSBlbGVtZW50IEFuIG9iamVjdCBzdXBwb3J0aW5nIGV2ZW50cyBvbiB3aGljaCB0byBiaW5k
IHRoZQorICogICAgIHByb21pc2UuCisgKiBAcGFyYW0ge3N0cmluZ30gcmVzb2x2ZUV2ZW50TmFt
ZSBbPSJsb2FkIl0gVGhlIGV2ZW50IG5hbWUgdG8gYmluZCByZXNvbHZlIHRvLgorICogQHBhcmFt
IHtzdHJpbmd9IHJlamVjdEV2ZW50TmFtZSBbPSJlcnJvciJdIFRoZSBldmVudCBuYW1lIHRvIGJp
bmQgcmVqZWN0IHRvLgorICovCitmdW5jdGlvbiBiaW5kRXZlbnRzKGVsZW1lbnQsIHJlc29sdmVF
dmVudE5hbWUsIHJlamVjdEV2ZW50TmFtZSkgeworICBlbGVtZW50LmV2ZW50UHJvbWlzZSA9Cisg
ICAgICBiaW5kRXZlbnRzMihlbGVtZW50LCByZXNvbHZlRXZlbnROYW1lLCBlbGVtZW50LCByZWpl
Y3RFdmVudE5hbWUpOworfQorCisvLyBSZXR1cm5zIGEgcHJvbWlzZSB3cmFwcGluZyBzdWNjZXNz
IGFuZCBlcnJvciBldmVudHMgb2Ygb2JqZWN0cy4KKy8vIFRoaXMgaXMgYSB2YXJpYW50IG9mIGJp
bmRFdmVudHMgdGhhdCBjYW4gYWNjZXB0IHNlcGFyYXRlIG9iamVjdHMgZm9yIGVhY2gKKy8vIGV2
ZW50cyBhbmQgdHdvIGV2ZW50cyB0byByZWplY3QsIGFuZCBkb2Vzbid0IHNldCBgZXZlbnRQcm9t
aXNlYC4KKy8vCisvLyBXaGVuIGByZXNvbHZlT2JqZWN0YCdzIGByZXNvbHZlRXZlbnROYW1lYCBl
dmVudCAoZGVmYXVsdDogImxvYWQiKSBpcworLy8gZmlyZWQsIHRoZSBwcm9taXNlIGlzIHJlc29s
dmVkIHdpdGggdGhlIGV2ZW50LgorLy8KKy8vIFdoZW4gYHJlamVjdE9iamVjdGAncyBgcmVqZWN0
RXZlbnROYW1lYCBldmVudCAoZGVmYXVsdDogImVycm9yIikgb3IKKy8vIGByZWplY3RPYmplY3Qy
YCdzIGByZWplY3RFdmVudE5hbWUyYCBldmVudCAoZGVmYXVsdDogImVycm9yIikgaXMKKy8vIGZp
cmVkLCB0aGUgcHJvbWlzZSBpcyByZWplY3RlZC4KKy8vCisvLyBgcmVqZWN0T2JqZWN0MmAgaXMg
b3B0aW9uYWwuCitmdW5jdGlvbiBiaW5kRXZlbnRzMihyZXNvbHZlT2JqZWN0LCByZXNvbHZlRXZl
bnROYW1lLCByZWplY3RPYmplY3QsIHJlamVjdEV2ZW50TmFtZSwgcmVqZWN0T2JqZWN0MiwgcmVq
ZWN0RXZlbnROYW1lMikgeworICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwg
cmVqZWN0KSB7CisgICAgY29uc3QgYWN0dWFsUmVzb2x2ZUV2ZW50TmFtZSA9IHJlc29sdmVFdmVu
dE5hbWUgfHwgImxvYWQiOworICAgIGNvbnN0IGFjdHVhbFJlamVjdEV2ZW50TmFtZSA9IHJlamVj
dEV2ZW50TmFtZSB8fCAiZXJyb3IiOworICAgIGNvbnN0IGFjdHVhbFJlamVjdEV2ZW50TmFtZTIg
PSByZWplY3RFdmVudE5hbWUyIHx8ICJlcnJvciI7CisKKyAgICBjb25zdCByZXNvbHZlSGFuZGxl
ciA9IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICBjbGVhbnVwKCk7CisgICAgICByZXNvbHZlKGV2
ZW50KTsKKyAgICB9OworCisgICAgY29uc3QgcmVqZWN0SGFuZGxlciA9IGZ1bmN0aW9uKGV2ZW50
KSB7CisgICAgICAvLyBDaHJvbWl1bSBzdGFydHMgcHJvcGFnYXRpbmcgZXJyb3JzIGZyb20gd29y
a2VyLm9uZXJyb3IgdG8KKyAgICAgIC8vIHdpbmRvdy5vbmVycm9yLiBUaGlzIGhhbmRsZXMgdGhl
IHVuY2F1Z2h0IGV4Y2VwdGlvbnMgaW4gdGVzdHMuCisgICAgICBldmVudC5wcmV2ZW50RGVmYXVs
dCgpOworICAgICAgY2xlYW51cCgpOworICAgICAgcmVqZWN0KGV2ZW50KTsKKyAgICB9OworCisg
ICAgY29uc3QgY2xlYW51cCA9IGZ1bmN0aW9uKCkgeworICAgICAgcmVzb2x2ZU9iamVjdC5yZW1v
dmVFdmVudExpc3RlbmVyKGFjdHVhbFJlc29sdmVFdmVudE5hbWUsIHJlc29sdmVIYW5kbGVyKTsK
KyAgICAgIHJlamVjdE9iamVjdC5yZW1vdmVFdmVudExpc3RlbmVyKGFjdHVhbFJlamVjdEV2ZW50
TmFtZSwgcmVqZWN0SGFuZGxlcik7CisgICAgICBpZiAocmVqZWN0T2JqZWN0MikgeworICAgICAg
ICByZWplY3RPYmplY3QyLnJlbW92ZUV2ZW50TGlzdGVuZXIoYWN0dWFsUmVqZWN0RXZlbnROYW1l
MiwgcmVqZWN0SGFuZGxlcik7CisgICAgICB9CisgICAgfTsKKworICAgIHJlc29sdmVPYmplY3Qu
YWRkRXZlbnRMaXN0ZW5lcihhY3R1YWxSZXNvbHZlRXZlbnROYW1lLCByZXNvbHZlSGFuZGxlcik7
CisgICAgcmVqZWN0T2JqZWN0LmFkZEV2ZW50TGlzdGVuZXIoYWN0dWFsUmVqZWN0RXZlbnROYW1l
LCByZWplY3RIYW5kbGVyKTsKKyAgICBpZiAocmVqZWN0T2JqZWN0MikgeworICAgICAgcmVqZWN0
T2JqZWN0Mi5hZGRFdmVudExpc3RlbmVyKGFjdHVhbFJlamVjdEV2ZW50TmFtZTIsIHJlamVjdEhh
bmRsZXIpOworICAgIH0KKyAgfSk7Cit9CisKKy8qKgorICogQ3JlYXRlcyBhIG5ldyBET00gZWxl
bWVudC4KKyAqIEBwYXJhbSB7c3RyaW5nfSB0YWdOYW1lIFRoZSB0eXBlIG9mIHRoZSBET00gZWxl
bWVudC4KKyAqIEBwYXJhbSB7b2JqZWN0fSBhdHRycyBBIEpTT04gd2l0aCBhdHRyaWJ1dGVzIHRv
IGFwcGx5IHRvIHRoZSBlbGVtZW50LgorICogQHBhcmFtIHtET01FbGVtZW50fSBwYXJlbnQgT3B0
aW9uYWwgLSBhbiBleGlzdGluZyBET00gZWxlbWVudCB0byBhcHBlbmQgdG8KKyAqICAgICBJZiBu
b3QgcHJvdmlkZWQsIHRoZSByZXR1cm5lZCBlbGVtZW50IHdpbGwgcmVtYWluIG9ycGhhbmVkLgor
ICogQHBhcmFtIHtib29sZWFufSBkb0JpbmRFdmVudHMgT3B0aW9uYWwgLSBXaGV0aGVyIHRvIGJp
bmQgdG8gbG9hZCBhbmQgZXJyb3IKKyAqICAgICBldmVudHMgYW5kIHByb3ZpZGUgdGhlIHByb21p
c2Ugd3JhcHBpbmcgdGhlIGV2ZW50cyB2aWEgdGhlIGVsZW1lbnQncworICogICAgIHtAY29kZSBl
dmVudFByb21pc2V9IHByb3BlcnR5LiBEZWZhdWx0IHZhbHVlIGV2YWx1YXRlcyB0byBmYWxzZS4K
KyAqIEByZXR1cm4ge0RPTUVsZW1lbnR9IFRoZSBuZXdseSBjcmVhdGVkIERPTSBlbGVtZW50Lgor
ICovCitmdW5jdGlvbiBjcmVhdGVFbGVtZW50KHRhZ05hbWUsIGF0dHJzLCBwYXJlbnROb2RlLCBk
b0JpbmRFdmVudHMpIHsKKyAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRh
Z05hbWUpOworCisgIGlmIChkb0JpbmRFdmVudHMpCisgICAgYmluZEV2ZW50cyhlbGVtZW50KTsK
KworICAvLyBXZSBzZXQgdGhlIGF0dHJpYnV0ZXMgYWZ0ZXIgYmluZGluZyB0byBldmVudHMgdG8g
Y2F0Y2ggYW55CisgIC8vIGV2ZW50LXRyaWdnZXJpbmcgYXR0cmlidXRlIGNoYW5nZXMuIEUuZy4g
Zm9ybSBzdWJtaXNzaW9uLgorICAvLworICAvLyBCdXQgYmUgY2FyZWZ1bCB3aXRoIGltYWdlczog
dW5saWtlIG90aGVyIGVsZW1lbnRzIHRoZXkgd2lsbCBzdGFydCB0aGUgbG9hZAorICAvLyBhcyBz
b29uIGFzIHRoZSBhdHRyIGlzIHNldCwgZXZlbiBpZiBub3QgaW4gdGhlIGRvY3VtZW50IHlldCwg
YW5kIHNvbWV0aW1lcworICAvLyBjb21wbGV0ZSBpdCBzeW5jaHJvbm91c2x5LCBzbyB0aGUgYXBw
ZW5kIGRvZXNuJ3QgaGF2ZSB0aGUgZWZmZWN0IHdlIHdhbnQuCisgIC8vIFNvIGZvciBpbWFnZXMs
IHdlIHdhbnQgdG8gc2V0IHRoZSBhdHRycyBhZnRlciBhcHBlbmRpbmcsIHdoZXJlYXMgZm9yIG90
aGVyCisgIC8vIGVsZW1lbnRzIHdlIHdhbnQgdG8gZG8gaXQgYmVmb3JlIGFwcGVuZGluZy4KKyAg
dmFyIGlzSW1nID0gKHRhZ05hbWUgPT0gImltZyIpOworICBpZiAoIWlzSW1nKQorICAgIHNldEF0
dHJpYnV0ZXMoZWxlbWVudCwgYXR0cnMpOworCisgIGlmIChwYXJlbnROb2RlKQorICAgIHBhcmVu
dE5vZGUuYXBwZW5kQ2hpbGQoZWxlbWVudCk7CisKKyAgaWYgKGlzSW1nKQorICAgIHNldEF0dHJp
YnV0ZXMoZWxlbWVudCwgYXR0cnMpOworCisgIHJldHVybiBlbGVtZW50OworfQorCitmdW5jdGlv
biBjcmVhdGVSZXF1ZXN0VmlhRWxlbWVudCh0YWdOYW1lLCBhdHRycywgcGFyZW50Tm9kZSkgewor
ICByZXR1cm4gY3JlYXRlRWxlbWVudCh0YWdOYW1lLCBhdHRycywgcGFyZW50Tm9kZSwgdHJ1ZSku
ZXZlbnRQcm9taXNlOworfQorCisvKioKKyAqIENyZWF0ZXMgYSBuZXcgZW1wdHkgaWZyYW1lIGFu
ZCBhcHBlbmRzIGl0IHRvIHtAY29kZSBkb2N1bWVudC5ib2R5fSAuCisgKiBAcGFyYW0ge3N0cmlu
Z30gbmFtZSBUaGUgbmFtZSBhbmQgSUQgb2YgdGhlIG5ldyBpZnJhbWUuCisgKiBAcGFyYW0ge2Jv
b2xlYW59IGRvQmluZEV2ZW50cyBXaGV0aGVyIHRvIGJpbmQgbG9hZCBhbmQgZXJyb3IgZXZlbnRz
LgorICogQHJldHVybiB7RE9NRWxlbWVudH0gVGhlIG5ld2x5IGNyZWF0ZWQgaWZyYW1lLgorICov
CitmdW5jdGlvbiBjcmVhdGVIZWxwZXJJZnJhbWUobmFtZSwgZG9CaW5kRXZlbnRzKSB7CisgIHJl
dHVybiBjcmVhdGVFbGVtZW50KCJpZnJhbWUiLAorICAgICAgICAgICAgICAgICAgICAgICB7Im5h
bWUiOiBuYW1lLCAiaWQiOiBuYW1lfSwKKyAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQu
Ym9keSwKKyAgICAgICAgICAgICAgICAgICAgICAgZG9CaW5kRXZlbnRzKTsKK30KKworZnVuY3Rp
b24gd3JhcFJlc3VsdChzZXJ2ZXJfZGF0YSkgeworICBpZiAodHlwZW9mKHNlcnZlcl9kYXRhKSA9
PT0gInN0cmluZyIpIHsKKyAgICB0aHJvdyBzZXJ2ZXJfZGF0YTsKKyAgfQorICByZXR1cm4gewor
ICAgIHJlZmVycmVyOiBzZXJ2ZXJfZGF0YS5oZWFkZXJzLnJlZmVyZXIsCisgICAgaGVhZGVyczog
c2VydmVyX2RhdGEuaGVhZGVycworICB9Cit9CisKKy8vID09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLy8gU3VicmVzb3VyY2Vz
CisvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KKworLyoqCisgIEB0eXBlZGVmIFJlcXVlc3RSZXN1bHQKKyAgQHR5cGUge29i
amVjdH0KKyAgUmVwcmVzZW50cyB0aGUgcmVzdWx0IG9mIHNlbmRpbmcgYW4gcmVxdWVzdC4KKyAg
QWxsIHByb3BlcnRpZXMgYXJlIG9wdGlvbmFsLiBTZWUgdGhlIGNvbW1lbnRzIGZvcgorICByZXF1
ZXN0VmlhKigpIGFuZCBpbnZva2VSZXF1ZXN0KCkgYmVsb3cgdG8gc2VlIHdoaWNoIHByb3BlcnRp
ZXMgYXJlIHNldC4KKworICBAcHJvcGVydHkge0FycmF5PE9iamVjdDxzdHJpbmcsIHN0cmluZz4+
fSBoZWFkZXJzCisgICAgSFRUUCByZXF1ZXN0IGhlYWRlcnMgc2VudCB0byBzZXJ2ZXIuCisgIEBw
cm9wZXJ0eSB7c3RyaW5nfSByZWZlcnJlciAtIFJlZmVycmVyLgorICBAcHJvcGVydHkge3N0cmlu
Z30gbG9jYXRpb24gLSBUaGUgVVJMIG9mIHRoZSBzdWJyZXNvdXJjZS4KKyAgQHByb3BlcnR5IHtz
dHJpbmd9IHNvdXJjZUNvbnRleHRVcmwKKyAgICB0aGUgVVJMIG9mIHRoZSBnbG9iYWwgb2JqZWN0
IHdoZXJlIHRoZSBhY3R1YWwgcmVxdWVzdCBpcyBzZW50LgorKi8KKworLyoqCisgIHJlcXVlc3RW
aWEqKHVybCwgYWRkaXRpb25hbEF0dHJpYnV0ZXMpIGZ1bmN0aW9ucyBzZW5kIGEgc3VicmVzb3Vy
Y2UKKyAgcmVxdWVzdCBmcm9tIHRoZSBjdXJyZW50IGVudmlyb25tZW50IHNldHRpbmdzIG9iamVj
dC4KKworICBAcGFyYW0ge3N0cmluZ30gdXJsCisgICAgVGhlIFVSTCBvZiB0aGUgc3VicmVzb3Vy
Y2UuCisgIEBwYXJhbSB7T2JqZWN0PHN0cmluZywgc3RyaW5nPn0gYWRkaXRpb25hbEF0dHJpYnV0
ZXMKKyAgICBBZGRpdGlvbmFsIGF0dHJpYnV0ZXMgc2V0IHRvIERPTSBlbGVtZW50cworICAgIChl
bGVtZW50LWluaXRpYXRlZCByZXF1ZXN0cyBvbmx5KS4KKworICBAcmV0dXJucyB7UHJvbWlzZX0g
dGhhdCBhcmUgcmVzb2x2ZWQgd2l0aCBhIFJlcXVlc3RSZXN1bHQgb2JqZWN0CisgIG9uIHN1Y2Nl
c3NmdWwgcmVxdWVzdHMuCisKKyAgLSBDYXRlZ29yeSAxOgorICAgICAgYGhlYWRlcnNgOiBzZXQu
CisgICAgICBgcmVmZXJyZXJgOiBzZXQgdmlhIGBkb2N1bWVudC5yZWZlcnJlcmAuCisgICAgICBg
bG9jYXRpb25gOiBzZXQgdmlhIGBkb2N1bWVudC5sb2NhdGlvbmAuCisgICAgICBTZWUgYHRlbXBs
YXRlL2RvY3VtZW50Lmh0bWwudGVtcGxhdGVgLgorICAtIENhdGVnb3J5IDI6CisgICAgICBgaGVh
ZGVyc2A6IHNldC4KKyAgICAgIGByZWZlcnJlcmA6IHNldCB0byBgaGVhZGVycy5yZWZlcmVyYCBi
eSBgd3JhcFJlc3VsdCgpYC4KKyAgICAgIGBsb2NhdGlvbmA6IG5vdCBzZXQuCisgIC0gQ2F0ZWdv
cnkgMzoKKyAgICAgIEFsbCB0aGUga2V5cyBsaXN0ZWQgYWJvdmUgYXJlIE5PVCBzZXQuCisgIGBz
b3VyY2VDb250ZXh0VXJsYCBpcyBub3Qgc2V0IGhlcmUuCisKKyAgLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0gLS0tLS0tLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgRnVu
Y3Rpb24gbmFtZSAgICAgICAgICAgICAgICAgICAgQ2F0ZWdvcnkgVXNlZCBpbgorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLS0tLS0tLSAtLS0tLS0tIC0tLS0t
LS0tLQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWZlcnJl
ciBtaXhlZC0gIHVwZ3JhZGUtCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHBvbGljeSAgIGNvbnRlbnQgaW5zZWN1cmUtCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHBvbGljeSAgIGNvbnRlbnQgcmVxdWVzdAorICAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAtLS0tLS0tLSAtLS0tLS0tLSAtLS0tLS0tIC0tLS0t
LS0tLQorICByZXF1ZXN0VmlhQW5jaG9yICAgICAgICAgICAgICAgICAxICAgICAgICBZICAgICAg
ICBZICAgICAgIC0KKyAgcmVxdWVzdFZpYUFyZWEgICAgICAgICAgICAgICAgICAgMSAgICAgICAg
WSAgICAgICAgWSAgICAgICAtCisgIHJlcXVlc3RWaWFBdWRpbyAgICAgICAgICAgICAgICAgIDMg
ICAgICAgIC0gICAgICAgIFkgICAgICAgLQorICByZXF1ZXN0VmlhRGVkaWNhdGVkV29ya2VyICAg
ICAgICAyICAgICAgICBZICAgICAgICBZICAgICAgIFkKKyAgcmVxdWVzdFZpYUZldGNoICAgICAg
ICAgICAgICAgICAgMiAgICAgICAgWSAgICAgICAgWSAgICAgICAtCisgIHJlcXVlc3RWaWFGb3Jt
ICAgICAgICAgICAgICAgICAgIDMgICAgICAgIC0gICAgICAgIFkgICAgICAgLQorICByZXF1ZXN0
VmlhSWZyYW1lICAgICAgICAgICAgICAgICAxICAgICAgICBZICAgICAgICBZICAgICAgIC0KKyAg
cmVxdWVzdFZpYUltYWdlICAgICAgICAgICAgICAgICAgMiAgICAgICAgWSAgICAgICAgWSAgICAg
ICAtCisgIHJlcXVlc3RWaWFMaW5rUHJlZmV0Y2ggICAgICAgICAgIDMgICAgICAgIC0gICAgICAg
IFkgICAgICAgLQorICByZXF1ZXN0VmlhTGlua1N0eWxlc2hlZXQgICAgICAgICAzICAgICAgICAt
ICAgICAgICBZICAgICAgIC0KKyAgcmVxdWVzdFZpYU9iamVjdCAgICAgICAgICAgICAgICAgMyAg
ICAgICAgLSAgICAgICAgWSAgICAgICAtCisgIHJlcXVlc3RWaWFQaWN0dXJlICAgICAgICAgICAg
ICAgIDMgICAgICAgIC0gICAgICAgIFkgICAgICAgLQorICByZXF1ZXN0VmlhU2NyaXB0ICAgICAg
ICAgICAgICAgICAyICAgICAgICBZICAgICAgICBZICAgICAgIC0KKyAgcmVxdWVzdFZpYVNlbmRC
ZWFjb24gICAgICAgICAgICAgMyAgICAgICAgLSAgICAgICAgWSAgICAgICAtCisgIHJlcXVlc3RW
aWFTaGFyZWRXb3JrZXIgICAgICAgICAgIDIgICAgICAgIFkgICAgICAgIC0gICAgICAgLQorICBy
ZXF1ZXN0VmlhVmlkZW8gICAgICAgICAgICAgICAgICAzICAgICAgICAtICAgICAgICBZICAgICAg
IC0KKyAgcmVxdWVzdFZpYVdlYlNvY2tldCAgICAgICAgICAgICAgMyAgICAgICAgLSAgICAgICAg
WSAgICAgICAtCisgIHJlcXVlc3RWaWFXb3JrbGV0ICAgICAgICAgICAgICAgIDMgICAgICAgIC0g
ICAgICAgIFkgICAgICAgWQorICByZXF1ZXN0VmlhWGhyICAgICAgICAgICAgICAgICAgICAyICAg
ICAgICBZICAgICAgICBZICAgICAgIC0KKyAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0gLS0tLS0tLS0gLS0tLS0tLS0gLS0tLS0tLSAtLS0tLS0tLS0KKyovCisKKy8qKgorICogQ3Jl
YXRlcyBhIG5ldyBpZnJhbWUsIGJpbmRzIGxvYWQgYW5kIGVycm9yIGV2ZW50cywgc2V0cyB0aGUg
c3JjIGF0dHJpYnV0ZSBhbmQKKyAqICAgICBhcHBlbmRzIGl0IHRvIHtAY29kZSBkb2N1bWVudC5i
b2R5fSAuCisgKiBAcGFyYW0ge3N0cmluZ30gdXJsIFRoZSBzcmMgZm9yIHRoZSBpZnJhbWUuCisg
KiBAcmV0dXJuIHtQcm9taXNlfSBUaGUgcHJvbWlzZSBmb3Igc3VjY2Vzcy9lcnJvciBldmVudHMu
CisgKi8KK2Z1bmN0aW9uIHJlcXVlc3RWaWFJZnJhbWUodXJsLCBhZGRpdGlvbmFsQXR0cmlidXRl
cykgeworICBjb25zdCBpZnJhbWUgPSBjcmVhdGVFbGVtZW50KAorICAgICAgImlmcmFtZSIsCisg
ICAgICBPYmplY3QuYXNzaWduKHsic3JjIjogdXJsfSwgYWRkaXRpb25hbEF0dHJpYnV0ZXMpLAor
ICAgICAgZG9jdW1lbnQuYm9keSwKKyAgICAgIGZhbHNlKTsKKyAgcmV0dXJuIGJpbmRFdmVudHMy
KHdpbmRvdywgIm1lc3NhZ2UiLCBpZnJhbWUsICJlcnJvciIsIHdpbmRvdywgImVycm9yIikKKyAg
ICAgIC50aGVuKGV2ZW50ID0+IHsKKyAgICAgICAgICBpZiAoZXZlbnQuc291cmNlICE9PSBpZnJh
bWUuY29udGVudFdpbmRvdykKKyAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChuZXcg
RXJyb3IoJ1VuZXhwZWN0ZWQgZXZlbnQuc291cmNlJykpOworICAgICAgICAgIHJldHVybiBldmVu
dC5kYXRhOworICAgICAgICB9KTsKK30KKworLyoqCisgKiBDcmVhdGVzIGEgbmV3IGltYWdlLCBi
aW5kcyBsb2FkIGFuZCBlcnJvciBldmVudHMsIHNldHMgdGhlIHNyYyBhdHRyaWJ1dGUgYW5kCisg
KiAgICAgYXBwZW5kcyBpdCB0byB7QGNvZGUgZG9jdW1lbnQuYm9keX0gLgorICogQHBhcmFtIHtz
dHJpbmd9IHVybCBUaGUgc3JjIGZvciB0aGUgaW1hZ2UuCisgKiBAcmV0dXJuIHtQcm9taXNlfSBU
aGUgcHJvbWlzZSBmb3Igc3VjY2Vzcy9lcnJvciBldmVudHMuCisgKi8KK2Z1bmN0aW9uIHJlcXVl
c3RWaWFJbWFnZSh1cmwsIGFkZGl0aW9uYWxBdHRyaWJ1dGVzKSB7CisgIGNvbnN0IGltZyA9IGNy
ZWF0ZUVsZW1lbnQoCisgICAgICAiaW1nIiwKKyAgICAgIC8vIGNyb3NzT3JpZ2luIGF0dHJpYnV0
ZSBpcyBhZGRlZCB0byByZWFkIHRoZSBwaXhlbCBkYXRhIG9mIHRoZSByZXNwb25zZS4KKyAgICAg
IE9iamVjdC5hc3NpZ24oeyJzcmMiOiB1cmwsICJjcm9zc09yaWdpbiI6ICJBbm9ueW1vdXMifSwg
YWRkaXRpb25hbEF0dHJpYnV0ZXMpLAorICAgICAgZG9jdW1lbnQuYm9keSwgdHJ1ZSk7CisgIHJl
dHVybiBpbWcuZXZlbnRQcm9taXNlLnRoZW4oKCkgPT4gd3JhcFJlc3VsdChkZWNvZGVJbWFnZURh
dGEoaW1nKSkpOworfQorCisvLyBIZWxwZXIgZm9yIHJlcXVlc3RWaWFJbWFnZSgpLgorZnVuY3Rp
b24gZGVjb2RlSW1hZ2VEYXRhKGltZykgeworICB2YXIgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgiY2FudmFzIik7CisgIHZhciBjb250ZXh0ID0gY2FudmFzLmdldENvbnRleHQoJzJk
Jyk7CisgIGNvbnRleHQuZHJhd0ltYWdlKGltZywgMCwgMCk7CisgIHZhciBpbWdEYXRhID0gY29u
dGV4dC5nZXRJbWFnZURhdGEoMCwgMCwgaW1nLmNsaWVudFdpZHRoLCBpbWcuY2xpZW50SGVpZ2h0
KTsKKyAgY29uc3QgcmdiYSA9IGltZ0RhdGEuZGF0YTsKKworICBsZXQgZGVjb2RlZEJ5dGVzID0g
bmV3IFVpbnQ4Q2xhbXBlZEFycmF5KHJnYmEubGVuZ3RoKTsKKyAgbGV0IGRlY29kZWRMZW5ndGgg
PSAwOworCisgIGZvciAodmFyIGkgPSAwOyBpICsgMTIgPD0gcmdiYS5sZW5ndGg7IGkgKz0gMTIp
IHsKKyAgICAvLyBBIHNpbmdsZSBieXRlIGlzIGVuY29kZWQgaW4gdGhyZWUgcGl4ZWxzLiA4IHBp
eGVsIG9jdGV0cyAoYW1vbmcKKyAgICAvLyA5IG9jdGV0cyA9IDMgcGl4ZWxzICogMyBjaGFubmVs
cykgYXJlIHVzZWQgdG8gZW5jb2RlIDggYml0cywKKyAgICAvLyB0aGUgbW9zdCBzaWduaWZpY2Fu
dCBiaXQgZmlyc3QsIHdoZXJlIGAwYCBhbmQgYDI1NWAgaW4gcGl4ZWwgdmFsdWVzCisgICAgLy8g
cmVwcmVzZW50IGAwYCBhbmQgYDFgIGluIGJpdHMsIHJlc3BlY3RpdmVseS4KKyAgICAvLyBUaGlz
IGVuY29kaW5nIGlzIHVzZWQgdG8gYXZvaWQgZXJyb3JzIGR1ZSB0byBkaWZmZXJlbnQgY29sb3Ig
c3BhY2VzLgorICAgIGNvbnN0IGJpdHMgPSBbXTsKKyAgICBmb3IgKGxldCBqID0gMDsgaiA8IDM7
ICsraikgeworICAgICAgYml0cy5wdXNoKHJnYmFbaSArIGogKiA0ICsgMF0pOworICAgICAgYml0
cy5wdXNoKHJnYmFbaSArIGogKiA0ICsgMV0pOworICAgICAgYml0cy5wdXNoKHJnYmFbaSArIGog
KiA0ICsgMl0pOworICAgICAgLy8gcmdiYVtpICsgaiAqIDQgKyAzXTogU2tpcCBhbHBoYSBjaGFu
bmVsLgorICAgIH0KKyAgICAvLyBUaGUgbGFzdCBvbmUgZWxlbWVudCBpcyBub3QgdXNlZC4KKyAg
ICBiaXRzLnBvcCgpOworCisgICAgLy8gRGVjb2RlIGEgc2luZ2xlIGJ5dGUuCisgICAgbGV0IGJ5
dGUgPSAwOworICAgIGZvciAobGV0IGogPSAwOyBqIDwgODsgKytqKSB7CisgICAgICBieXRlIDw8
PSAxOworICAgICAgaWYgKGJpdHNbal0gPj0gMTI4KQorICAgICAgICBieXRlIHw9IDE7CisgICAg
fQorCisgICAgLy8gWmVybyBpcyB0aGUgc3RyaW5nIHRlcm1pbmF0b3IuCisgICAgaWYgKGJ5dGUg
PT0gMCkKKyAgICAgIGJyZWFrOworCisgICAgZGVjb2RlZEJ5dGVzW2RlY29kZWRMZW5ndGgrK10g
PSBieXRlOworICB9CisKKyAgLy8gUmVtb3ZlIHRyYWlsaW5nIG51bGxzIGZyb20gZGF0YS4KKyAg
ZGVjb2RlZEJ5dGVzID0gZGVjb2RlZEJ5dGVzLnN1YmFycmF5KDAsIGRlY29kZWRMZW5ndGgpOwor
ICB2YXIgc3RyaW5nX2RhdGEgPSAobmV3IFRleHREZWNvZGVyKCJhc2NpaSIpKS5kZWNvZGUoZGVj
b2RlZEJ5dGVzKTsKKworICByZXR1cm4gSlNPTi5wYXJzZShzdHJpbmdfZGF0YSk7Cit9CisKKy8q
KgorICogSW5pdGlhdGVzIGEgbmV3IFhIUiBHRVQgcmVxdWVzdCB0byBwcm92aWRlZCBVUkwuCisg
KiBAcGFyYW0ge3N0cmluZ30gdXJsIFRoZSBlbmRwb2ludCBVUkwgZm9yIHRoZSBYSFIuCisgKiBA
cmV0dXJuIHtQcm9taXNlfSBUaGUgcHJvbWlzZSBmb3Igc3VjY2Vzcy9lcnJvciBldmVudHMuCisg
Ki8KK2Z1bmN0aW9uIHJlcXVlc3RWaWFYaHIodXJsKSB7CisgIHJldHVybiB4aHJSZXF1ZXN0KHVy
bCkudGhlbihyZXN1bHQgPT4gd3JhcFJlc3VsdChyZXN1bHQpKTsKK30KKworLyoqCisgKiBJbml0
aWF0ZXMgYSBuZXcgR0VUIHJlcXVlc3QgdG8gcHJvdmlkZWQgVVJMIHZpYSB0aGUgRmV0Y2ggQVBJ
LgorICogQHBhcmFtIHtzdHJpbmd9IHVybCBUaGUgZW5kcG9pbnQgVVJMIGZvciB0aGUgRmV0Y2gu
CisgKiBAcmV0dXJuIHtQcm9taXNlfSBUaGUgcHJvbWlzZSBmb3Igc3VjY2Vzcy9lcnJvciBldmVu
dHMuCisgKi8KK2Z1bmN0aW9uIHJlcXVlc3RWaWFGZXRjaCh1cmwpIHsKKyAgcmV0dXJuIGZldGNo
KHVybCkKKyAgICAudGhlbihyZXMgPT4gcmVzLmpzb24oKSkKKyAgICAudGhlbihqID0+IHdyYXBS
ZXN1bHQoaikpOworfQorCitmdW5jdGlvbiBkZWRpY2F0ZWRXb3JrZXJVcmxUaGF0RmV0Y2hlcyh1
cmwpIHsKKyAgcmV0dXJuIGBkYXRhOnRleHQvamF2YXNjcmlwdCwKKyAgICBmZXRjaCgnJHt1cmx9
JykKKyAgICAgIC50aGVuKHIgPT4gci5qc29uKCkpCisgICAgICAudGhlbihqID0+IHBvc3RNZXNz
YWdlKGopKQorICAgICAgLmNhdGNoKChlKSA9PiBwb3N0TWVzc2FnZShlLm1lc3NhZ2UpKTtgOwor
fQorCitmdW5jdGlvbiB3b3JrZXJVcmxUaGF0SW1wb3J0cyh1cmwpIHsKKyAgcmV0dXJuIGBkYXRh
OnRleHQvamF2YXNjcmlwdCxpbXBvcnQgJyR7dXJsfSc7YDsKK30KKworLyoqCisgKiBDcmVhdGVz
IGEgbmV3IFdvcmtlciwgYmluZHMgbWVzc2FnZSBhbmQgZXJyb3IgZXZlbnRzIHdyYXBwaW5nIHRo
ZW0gaW50by4KKyAqICAgICB7QGNvZGUgd29ya2VyLmV2ZW50UHJvbWlzZX0gYW5kIHBvc3RzIGFu
IGVtcHR5IHN0cmluZyBtZXNzYWdlIHRvIHN0YXJ0CisgKiAgICAgdGhlIHdvcmtlci4KKyAqIEBw
YXJhbSB7c3RyaW5nfSB1cmwgVGhlIGVuZHBvaW50IFVSTCBmb3IgdGhlIHdvcmtlciBzY3JpcHQu
CisgKiBAcGFyYW0ge29iamVjdH0gb3B0aW9ucyBUaGUgb3B0aW9ucyBmb3IgV29ya2VyIGNvbnN0
cnVjdG9yLgorICogQHJldHVybiB7UHJvbWlzZX0gVGhlIHByb21pc2UgZm9yIHN1Y2Nlc3MvZXJy
b3IgZXZlbnRzLgorICovCitmdW5jdGlvbiByZXF1ZXN0VmlhRGVkaWNhdGVkV29ya2VyKHVybCwg
b3B0aW9ucykgeworICB2YXIgd29ya2VyOworICB0cnkgeworICAgIHdvcmtlciA9IG5ldyBXb3Jr
ZXIodXJsLCBvcHRpb25zKTsKKyAgfSBjYXRjaCAoZSkgeworICAgIHJldHVybiBQcm9taXNlLnJl
amVjdChlKTsKKyAgfQorICB3b3JrZXIucG9zdE1lc3NhZ2UoJycpOworICByZXR1cm4gYmluZEV2
ZW50czIod29ya2VyLCAibWVzc2FnZSIsIHdvcmtlciwgImVycm9yIikKKyAgICAudGhlbihldmVu
dCA9PiB3cmFwUmVzdWx0KGV2ZW50LmRhdGEpKTsKK30KKworZnVuY3Rpb24gcmVxdWVzdFZpYVNo
YXJlZFdvcmtlcih1cmwpIHsKKyAgdmFyIHdvcmtlcjsKKyAgdHJ5IHsKKyAgICB3b3JrZXIgPSBu
ZXcgU2hhcmVkV29ya2VyKHVybCk7CisgIH0gY2F0Y2goZSkgeworICAgIHJldHVybiBQcm9taXNl
LnJlamVjdChlKTsKKyAgfQorICBjb25zdCBwcm9taXNlID0gYmluZEV2ZW50czIod29ya2VyLnBv
cnQsICJtZXNzYWdlIiwgd29ya2VyLCAiZXJyb3IiKQorICAgIC50aGVuKGV2ZW50ID0+IHdyYXBS
ZXN1bHQoZXZlbnQuZGF0YSkpOworICB3b3JrZXIucG9ydC5zdGFydCgpOworICByZXR1cm4gcHJv
bWlzZTsKK30KKworLy8gUmV0dXJucyBhIHJlZmVyZW5jZSB0byBhIHdvcmtsZXQgb2JqZWN0IGNv
cnJlc3BvbmRpbmcgdG8gYSBnaXZlbiB0eXBlLgorZnVuY3Rpb24gZ2V0X3dvcmtsZXQodHlwZSkg
eworICBpZiAodHlwZSA9PSAnYW5pbWF0aW9uJykKKyAgICByZXR1cm4gQ1NTLmFuaW1hdGlvbldv
cmtsZXQ7CisgIGlmICh0eXBlID09ICdsYXlvdXQnKQorICAgIHJldHVybiBDU1MubGF5b3V0V29y
a2xldDsKKyAgaWYgKHR5cGUgPT0gJ3BhaW50JykKKyAgICByZXR1cm4gQ1NTLnBhaW50V29ya2xl
dDsKKyAgaWYgKHR5cGUgPT0gJ2F1ZGlvJykKKyAgICByZXR1cm4gbmV3IE9mZmxpbmVBdWRpb0Nv
bnRleHQoMiw0NDEwMCo0MCw0NDEwMCkuYXVkaW9Xb3JrbGV0OworCisgIHRocm93IG5ldyBFcnJv
cigndW5rbm93biB3b3JrbGV0IHR5cGUgaXMgcGFzc2VkLicpOworfQorCitmdW5jdGlvbiByZXF1
ZXN0VmlhV29ya2xldCh0eXBlLCB1cmwpIHsKKyAgdHJ5IHsKKyAgICByZXR1cm4gZ2V0X3dvcmts
ZXQodHlwZSkuYWRkTW9kdWxlKHVybCk7CisgIH0gY2F0Y2ggKGUpIHsKKyAgICByZXR1cm4gUHJv
bWlzZS5yZWplY3QoZSk7CisgIH0KK30KKworLyoqCisgKiBTZXRzIHRoZSBocmVmIGF0dHJpYnV0
ZSBvbiBhIG5hdmlnYWJsZSBET00gZWxlbWVudCBhbmQgcGVyZm9ybXMgYSBuYXZpZ2F0aW9uCisg
KiAgICAgYnkgY2xpY2tpbmcgaXQuIFRvIGF2b2lkIG5hdmlnYXRpbmcgYXdheSBmcm9tIHRoZSBj
dXJyZW50IGV4ZWN1dGlvbgorICogICAgIGNvbnRleHQsIGEgdGFyZ2V0IGF0dHJpYnV0ZSBpcyBz
ZXQgdG8gcG9pbnQgdG8gYSBuZXcgaGVscGVyIGlmcmFtZS4KKyAqIEBwYXJhbSB7RE9NRWxlbWVu
dH0gbmF2aWdhYmxlRWxlbWVudCBUaGUgbmF2aWdhYmxlIERPTUVsZW1lbnQKKyAqIEBwYXJhbSB7
c3RyaW5nfSB1cmwgVGhlIGhyZWYgZm9yIHRoZSBuYXZpZ2FibGUgZWxlbWVudC4KKyAqIEByZXR1
cm4ge1Byb21pc2V9IFRoZSBwcm9taXNlIGZvciBzdWNjZXNzL2Vycm9yIGV2ZW50cy4KKyAqLwor
ZnVuY3Rpb24gcmVxdWVzdFZpYU5hdmlnYWJsZShuYXZpZ2FibGVFbGVtZW50LCB1cmwpIHsKKyAg
dmFyIGlmcmFtZSA9IGNyZWF0ZUhlbHBlcklmcmFtZShndWlkKCksIGZhbHNlKTsKKyAgc2V0QXR0
cmlidXRlcyhuYXZpZ2FibGVFbGVtZW50LAorICAgICAgICAgICAgICAgIHsiaHJlZiI6IHVybCwK
KyAgICAgICAgICAgICAgICAgInRhcmdldCI6IGlmcmFtZS5uYW1lfSk7CisKKyAgY29uc3QgcHJv
bWlzZSA9CisgICAgYmluZEV2ZW50czIod2luZG93LCAibWVzc2FnZSIsIGlmcmFtZSwgImVycm9y
Iiwgd2luZG93LCAiZXJyb3IiKQorICAgICAgLnRoZW4oZXZlbnQgPT4geworICAgICAgICAgIGlm
IChldmVudC5zb3VyY2UgIT09IGlmcmFtZS5jb250ZW50V2luZG93KQorICAgICAgICAgICAgcmV0
dXJuIFByb21pc2UucmVqZWN0KG5ldyBFcnJvcignVW5leHBlY3RlZCBldmVudC5zb3VyY2UnKSk7
CisgICAgICAgICAgcmV0dXJuIGV2ZW50LmRhdGE7CisgICAgICAgIH0pOworICBuYXZpZ2FibGVF
bGVtZW50LmNsaWNrKCk7CisgIHJldHVybiBwcm9taXNlOworfQorCisvKioKKyAqIENyZWF0ZXMg
YSBuZXcgYW5jaG9yIGVsZW1lbnQsIGFwcGVuZHMgaXQgdG8ge0Bjb2RlIGRvY3VtZW50LmJvZHl9
IGFuZAorICogICAgIHBlcmZvcm1zIHRoZSBuYXZpZ2F0aW9uLgorICogQHBhcmFtIHtzdHJpbmd9
IHVybCBUaGUgVVJMIHRvIG5hdmlnYXRlIHRvLgorICogQHJldHVybiB7UHJvbWlzZX0gVGhlIHBy
b21pc2UgZm9yIHN1Y2Nlc3MvZXJyb3IgZXZlbnRzLgorICovCitmdW5jdGlvbiByZXF1ZXN0Vmlh
QW5jaG9yKHVybCwgYWRkaXRpb25hbEF0dHJpYnV0ZXMpIHsKKyAgdmFyIGEgPSBjcmVhdGVFbGVt
ZW50KAorICAgICAgImEiLAorICAgICAgT2JqZWN0LmFzc2lnbih7ImlubmVySFRNTCI6ICJMaW5r
IHRvIHJlc291cmNlIn0sIGFkZGl0aW9uYWxBdHRyaWJ1dGVzKSwKKyAgICAgIGRvY3VtZW50LmJv
ZHkpOworCisgIHJldHVybiByZXF1ZXN0VmlhTmF2aWdhYmxlKGEsIHVybCk7Cit9CisKKy8qKgor
ICogQ3JlYXRlcyBhIG5ldyBhcmVhIGVsZW1lbnQsIGFwcGVuZHMgaXQgdG8ge0Bjb2RlIGRvY3Vt
ZW50LmJvZHl9IGFuZCBwZXJmb3JtcworICogICAgIHRoZSBuYXZpZ2F0aW9uLgorICogQHBhcmFt
IHtzdHJpbmd9IHVybCBUaGUgVVJMIHRvIG5hdmlnYXRlIHRvLgorICogQHJldHVybiB7UHJvbWlz
ZX0gVGhlIHByb21pc2UgZm9yIHN1Y2Nlc3MvZXJyb3IgZXZlbnRzLgorICovCitmdW5jdGlvbiBy
ZXF1ZXN0VmlhQXJlYSh1cmwsIGFkZGl0aW9uYWxBdHRyaWJ1dGVzKSB7CisgIHZhciBhcmVhID0g
Y3JlYXRlRWxlbWVudCgKKyAgICAgICJhcmVhIiwKKyAgICAgIE9iamVjdC5hc3NpZ24oe30sIGFk
ZGl0aW9uYWxBdHRyaWJ1dGVzKSwKKyAgICAgIGRvY3VtZW50LmJvZHkpOworCisgIC8vIFRPRE8o
a3Jpc3RpamFuYnVybmlrKTogQXBwZW5kIHRvIG1hcCBhbmQgYWRkIGltYWdlLgorICByZXR1cm4g
cmVxdWVzdFZpYU5hdmlnYWJsZShhcmVhLCB1cmwpOworfQorCisvKioKKyAqIENyZWF0ZXMgYSBu
ZXcgc2NyaXB0IGVsZW1lbnQsIHNldHMgdGhlIHNyYyB0byB1cmwsIGFuZCBhcHBlbmRzIGl0IHRv
CisgKiAgICAge0Bjb2RlIGRvY3VtZW50LmJvZHl9LgorICogQHBhcmFtIHtzdHJpbmd9IHVybCBU
aGUgc3JjIFVSTC4KKyAqIEByZXR1cm4ge1Byb21pc2V9IFRoZSBwcm9taXNlIGZvciBzdWNjZXNz
L2Vycm9yIGV2ZW50cy4KKyAqLworZnVuY3Rpb24gcmVxdWVzdFZpYVNjcmlwdCh1cmwsIGFkZGl0
aW9uYWxBdHRyaWJ1dGVzKSB7CisgIGNvbnN0IHNjcmlwdCA9IGNyZWF0ZUVsZW1lbnQoCisgICAg
ICAic2NyaXB0IiwKKyAgICAgIE9iamVjdC5hc3NpZ24oeyJzcmMiOiB1cmx9LCBhZGRpdGlvbmFs
QXR0cmlidXRlcyksCisgICAgICBkb2N1bWVudC5ib2R5LAorICAgICAgZmFsc2UpOworCisgIHJl
dHVybiBiaW5kRXZlbnRzMih3aW5kb3csICJtZXNzYWdlIiwgc2NyaXB0LCAiZXJyb3IiLCB3aW5k
b3csICJlcnJvciIpCisgICAgLnRoZW4oZXZlbnQgPT4gd3JhcFJlc3VsdChldmVudC5kYXRhKSk7
Cit9CisKKy8qKgorICogQ3JlYXRlcyBhIG5ldyBmb3JtIGVsZW1lbnQsIHNldHMgYXR0cmlidXRl
cywgYXBwZW5kcyBpdCB0bworICogICAgIHtAY29kZSBkb2N1bWVudC5ib2R5fSBhbmQgc3VibWl0
cyB0aGUgZm9ybS4KKyAqIEBwYXJhbSB7c3RyaW5nfSB1cmwgVGhlIFVSTCB0byBzdWJtaXQgdG8u
CisgKiBAcmV0dXJuIHtQcm9taXNlfSBUaGUgcHJvbWlzZSBmb3Igc3VjY2Vzcy9lcnJvciBldmVu
dHMuCisgKi8KK2Z1bmN0aW9uIHJlcXVlc3RWaWFGb3JtKHVybCkgeworICB2YXIgaWZyYW1lID0g
Y3JlYXRlSGVscGVySWZyYW1lKGd1aWQoKSk7CisgIHZhciBmb3JtID0gY3JlYXRlRWxlbWVudCgi
Zm9ybSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICB7ImFjdGlvbiI6IHVybCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAibWV0aG9kIjogIlBPU1QiLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICJ0YXJnZXQiOiBpZnJhbWUubmFtZX0sCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICBkb2N1bWVudC5ib2R5KTsKKyAgYmluZEV2ZW50cyhpZnJhbWUpOworICBmb3JtLnN1
Ym1pdCgpOworCisgIHJldHVybiBpZnJhbWUuZXZlbnRQcm9taXNlOworfQorCisvKioKKyAqIENy
ZWF0ZXMgYSBuZXcgbGluayBlbGVtZW50IGZvciBhIHN0eWxlc2hlZXQsIGJpbmRzIGxvYWQgYW5k
IGVycm9yIGV2ZW50cywKKyAqICAgICBzZXRzIHRoZSBocmVmIHRvIHVybCBhbmQgYXBwZW5kcyBp
dCB0byB7QGNvZGUgZG9jdW1lbnQuaGVhZH0uCisgKiBAcGFyYW0ge3N0cmluZ30gdXJsIFRoZSBV
UkwgZm9yIGEgc3R5bGVzaGVldC4KKyAqIEByZXR1cm4ge1Byb21pc2V9IFRoZSBwcm9taXNlIGZv
ciBzdWNjZXNzL2Vycm9yIGV2ZW50cy4KKyAqLworZnVuY3Rpb24gcmVxdWVzdFZpYUxpbmtTdHls
ZXNoZWV0KHVybCkgeworICByZXR1cm4gY3JlYXRlUmVxdWVzdFZpYUVsZW1lbnQoImxpbmsiLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyJyZWwiOiAic3R5bGVzaGVldCIsICJo
cmVmIjogdXJsfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50Lmhl
YWQpOworfQorCisvKioKKyAqIENyZWF0ZXMgYSBuZXcgbGluayBlbGVtZW50IGZvciBhIHByZWZl
dGNoLCBiaW5kcyBsb2FkIGFuZCBlcnJvciBldmVudHMsIHNldHMKKyAqICAgICB0aGUgaHJlZiB0
byB1cmwgYW5kIGFwcGVuZHMgaXQgdG8ge0Bjb2RlIGRvY3VtZW50LmhlYWR9LgorICogQHBhcmFt
IHtzdHJpbmd9IHVybCBUaGUgVVJMIG9mIGEgcmVzb3VyY2UgdG8gcHJlZmV0Y2guCisgKiBAcmV0
dXJuIHtQcm9taXNlfSBUaGUgcHJvbWlzZSBmb3Igc3VjY2Vzcy9lcnJvciBldmVudHMuCisgKi8K
K2Z1bmN0aW9uIHJlcXVlc3RWaWFMaW5rUHJlZmV0Y2godXJsKSB7CisgIHZhciBsaW5rID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgnbGluaycpOworICBpZiAobGluay5yZWxMaXN0ICYmIGxpbmsu
cmVsTGlzdC5zdXBwb3J0cyAmJiBsaW5rLnJlbExpc3Quc3VwcG9ydHMoInByZWZldGNoIikpIHsK
KyAgICByZXR1cm4gY3JlYXRlUmVxdWVzdFZpYUVsZW1lbnQoImxpbmsiLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB7InJlbCI6ICJwcmVmZXRjaCIsICJocmVmIjogdXJsfSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuaGVhZCk7CisgIH0g
ZWxzZSB7CisgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KCJUaGlzIGJyb3dzZXIgZG9lcyBub3Qg
c3VwcG9ydCAncHJlZmV0Y2gnLiIpOworICB9Cit9CisKKy8qKgorICogSW5pdGlhdGVzIGEgbmV3
IGJlYWNvbiByZXF1ZXN0LgorICogQHBhcmFtIHtzdHJpbmd9IHVybCBUaGUgVVJMIG9mIGEgcmVz
b3VyY2UgdG8gcHJlZmV0Y2guCisgKiBAcmV0dXJuIHtQcm9taXNlfSBUaGUgcHJvbWlzZSBmb3Ig
c3VjY2Vzcy9lcnJvciBldmVudHMuCisgKi8KK2FzeW5jIGZ1bmN0aW9uIHJlcXVlc3RWaWFTZW5k
QmVhY29uKHVybCkgeworICBmdW5jdGlvbiB3YWl0KG1zKSB7CisgICAgcmV0dXJuIG5ldyBQcm9t
aXNlKHJlc29sdmUgPT4gc3RlcF90aW1lb3V0KHJlc29sdmUsIG1zKSk7CisgIH0KKyAgaWYgKCFu
YXZpZ2F0b3Iuc2VuZEJlYWNvbih1cmwpKSB7CisgICAgLy8gSWYgbWl4ZWQtY29udGVudCBjaGVj
ayBmYWlscywgaXQgc2hvdWxkIHJldHVybiBmYWxzZS4KKyAgICB0aHJvdyBuZXcgRXJyb3IoJ3Nl
bmRCZWFjb24oKSBmYWlscy4nKTsKKyAgfQorICAvLyBXZSBkb24ndCBoYXZlIGEgbWVhbnMgdG8g
c2VlIHRoZSByZXN1bHQgb2Ygc2VuZEJlYWNvbigpIHJlcXVlc3QKKyAgLy8gZm9yIHN1cmUuIExl
dCdzIHdhaXQgZm9yIGEgd2hpbGUgYW5kIGxldCB0aGUgZ2VuZXJpYyB0ZXN0IGZ1bmN0aW9uCisg
IC8vIGFzayB0aGUgc2VydmVyIGZvciB0aGUgcmVzdWx0LgorICBhd2FpdCB3YWl0KDUwMCk7Cisg
IHJldHVybiAnYWxsb3dlZCc7Cit9CisKKy8qKgorICogQ3JlYXRlcyBhIG5ldyBtZWRpYSBlbGVt
ZW50IHdpdGggYSBjaGlsZCBzb3VyY2UgZWxlbWVudCwgYmluZHMgbG9hZGVkZGF0YSBhbmQKKyAq
ICAgICBlcnJvciBldmVudHMsIHNldHMgYXR0cmlidXRlcyBhbmQgYXBwZW5kcyB0byBkb2N1bWVu
dC5ib2R5LgorICogQHBhcmFtIHtzdHJpbmd9IHR5cGUgVGhlIHR5cGUgb2YgdGhlIG1lZGlhIGVs
ZW1lbnQgKGF1ZGlvL3ZpZGVvL3BpY3R1cmUpLgorICogQHBhcmFtIHtvYmplY3R9IG1lZGlhX2F0
dHJzIFRoZSBhdHRyaWJ1dGVzIGZvciB0aGUgbWVkaWEgZWxlbWVudC4KKyAqIEBwYXJhbSB7b2Jq
ZWN0fSBzb3VyY2VfYXR0cnMgVGhlIGF0dHJpYnV0ZXMgZm9yIHRoZSBjaGlsZCBzb3VyY2UgZWxl
bWVudC4KKyAqIEByZXR1cm4ge0RPTUVsZW1lbnR9IFRoZSBuZXdseSBjcmVhdGVkIG1lZGlhIGVs
ZW1lbnQuCisgKi8KK2Z1bmN0aW9uIGNyZWF0ZU1lZGlhRWxlbWVudCh0eXBlLCBtZWRpYV9hdHRy
cywgc291cmNlX2F0dHJzKSB7CisgIHZhciBtZWRpYUVsZW1lbnQgPSBjcmVhdGVFbGVtZW50KHR5
cGUsIHt9KTsKKworICB2YXIgc291cmNlRWxlbWVudCA9IGNyZWF0ZUVsZW1lbnQoInNvdXJjZSIs
IHt9KTsKKworICBtZWRpYUVsZW1lbnQuZXZlbnRQcm9taXNlID0gbmV3IFByb21pc2UoZnVuY3Rp
b24ocmVzb2x2ZSwgcmVqZWN0KSB7CisgICAgbWVkaWFFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIo
ImxvYWRlZGRhdGEiLCBmdW5jdGlvbiAoZSkgeworICAgICAgcmVzb2x2ZShlKTsKKyAgICB9KTsK
KworICAgIC8vIFNhZmFyaSBkb2Vzbid0IGZpcmUgYW4gYGVycm9yYCBldmVudCB3aGVuIGJsb2Nr
aW5nIG1peGVkIGNvbnRlbnQuCisgICAgbWVkaWFFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoInN0
YWxsZWQiLCBmdW5jdGlvbihlKSB7CisgICAgICByZWplY3QoZSk7CisgICAgfSk7CisKKyAgICBz
b3VyY2VFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIiwgZnVuY3Rpb24oZSkgeworICAg
ICAgcmVqZWN0KGUpOworICAgIH0pOworICB9KTsKKworICBzZXRBdHRyaWJ1dGVzKG1lZGlhRWxl
bWVudCwgbWVkaWFfYXR0cnMpOworICBzZXRBdHRyaWJ1dGVzKHNvdXJjZUVsZW1lbnQsIHNvdXJj
ZV9hdHRycyk7CisKKyAgbWVkaWFFbGVtZW50LmFwcGVuZENoaWxkKHNvdXJjZUVsZW1lbnQpOwor
ICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKG1lZGlhRWxlbWVudCk7CisKKyAgcmV0dXJuIG1l
ZGlhRWxlbWVudDsKK30KKworLyoqCisgKiBDcmVhdGVzIGEgbmV3IHZpZGVvIGVsZW1lbnQsIGJp
bmRzIGxvYWRlZGRhdGEgYW5kIGVycm9yIGV2ZW50cywgc2V0cworICogICAgIGF0dHJpYnV0ZXMg
YW5kIHNvdXJjZSBVUkwgYW5kIGFwcGVuZHMgdG8ge0Bjb2RlIGRvY3VtZW50LmJvZHl9LgorICog
QHBhcmFtIHtzdHJpbmd9IHVybCBUaGUgVVJMIG9mIHRoZSB2aWRlby4KKyAqIEByZXR1cm4ge1By
b21pc2V9IFRoZSBwcm9taXNlIGZvciBzdWNjZXNzL2Vycm9yIGV2ZW50cy4KKyAqLworZnVuY3Rp
b24gcmVxdWVzdFZpYVZpZGVvKHVybCkgeworICByZXR1cm4gY3JlYXRlTWVkaWFFbGVtZW50KCJ2
aWRlbyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAge30sCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgeyJzcmMiOiB1cmx9KS5ldmVudFByb21pc2U7Cit9CisKKy8qKgorICogQ3Jl
YXRlcyBhIG5ldyBhdWRpbyBlbGVtZW50LCBiaW5kcyBsb2FkZWRkYXRhIGFuZCBlcnJvciBldmVu
dHMsIHNldHMKKyAqICAgICBhdHRyaWJ1dGVzIGFuZCBzb3VyY2UgVVJMIGFuZCBhcHBlbmRzIHRv
IHtAY29kZSBkb2N1bWVudC5ib2R5fS4KKyAqIEBwYXJhbSB7c3RyaW5nfSB1cmwgVGhlIFVSTCBv
ZiB0aGUgYXVkaW8uCisgKiBAcmV0dXJuIHtQcm9taXNlfSBUaGUgcHJvbWlzZSBmb3Igc3VjY2Vz
cy9lcnJvciBldmVudHMuCisgKi8KK2Z1bmN0aW9uIHJlcXVlc3RWaWFBdWRpbyh1cmwpIHsKKyAg
cmV0dXJuIGNyZWF0ZU1lZGlhRWxlbWVudCgiYXVkaW8iLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHt9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsidHlwZSI6ICJhdWRpby93
YXYiLCAic3JjIjogdXJsfSkuZXZlbnRQcm9taXNlOworfQorCisvKioKKyAqIENyZWF0ZXMgYSBu
ZXcgcGljdHVyZSBlbGVtZW50LCBiaW5kcyBsb2FkZWRkYXRhIGFuZCBlcnJvciBldmVudHMsIHNl
dHMKKyAqICAgICBhdHRyaWJ1dGVzIGFuZCBzb3VyY2UgVVJMIGFuZCBhcHBlbmRzIHRvIHtAY29k
ZSBkb2N1bWVudC5ib2R5fS4gQWxzbworICogICAgIGNyZWF0ZXMgbmV3IGltYWdlIGVsZW1lbnQg
YXBwZW5kaW5nIGl0IHRvIHRoZSBwaWN0dXJlCisgKiBAcGFyYW0ge3N0cmluZ30gdXJsIFRoZSBV
Ukwgb2YgdGhlIGltYWdlIGZvciB0aGUgc291cmNlIGFuZCBpbWFnZSBlbGVtZW50cy4KKyAqIEBy
ZXR1cm4ge1Byb21pc2V9IFRoZSBwcm9taXNlIGZvciBzdWNjZXNzL2Vycm9yIGV2ZW50cy4KKyAq
LworZnVuY3Rpb24gcmVxdWVzdFZpYVBpY3R1cmUodXJsKSB7CisgIHZhciBwaWN0dXJlID0gY3Jl
YXRlTWVkaWFFbGVtZW50KCJwaWN0dXJlIiwge30sIHsic3Jjc2V0IjogdXJsLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInR5cGUiOiAiaW1hZ2UvcG5n
In0pOworICByZXR1cm4gY3JlYXRlUmVxdWVzdFZpYUVsZW1lbnQoImltZyIsIHsic3JjIjogdXJs
fSwgcGljdHVyZSk7Cit9CisKKy8qKgorICogQ3JlYXRlcyBhIG5ldyBvYmplY3QgZWxlbWVudCwg
YmluZHMgbG9hZCBhbmQgZXJyb3IgZXZlbnRzLCBzZXRzIHRoZSBkYXRhIHRvCisgKiAgICAgdXJs
LCBhbmQgYXBwZW5kcyBpdCB0byB7QGNvZGUgZG9jdW1lbnQuYm9keX0uCisgKiBAcGFyYW0ge3N0
cmluZ30gdXJsIFRoZSBkYXRhIFVSTC4KKyAqIEByZXR1cm4ge1Byb21pc2V9IFRoZSBwcm9taXNl
IGZvciBzdWNjZXNzL2Vycm9yIGV2ZW50cy4KKyAqLworZnVuY3Rpb24gcmVxdWVzdFZpYU9iamVj
dCh1cmwpIHsKKyAgcmV0dXJuIGNyZWF0ZVJlcXVlc3RWaWFFbGVtZW50KCJvYmplY3QiLCB7ImRh
dGEiOiB1cmwsICJ0eXBlIjogInRleHQvaHRtbCJ9LCBkb2N1bWVudC5ib2R5KTsKK30KKworLyoq
CisgKiBDcmVhdGVzIGEgbmV3IFdlYlNvY2tldCBwb2ludGluZyB0byB7QGNvZGUgdXJsfSBhbmQg
c2VuZHMgYSBtZXNzYWdlIHN0cmluZworICogImVjaG8iLiBUaGUge0Bjb2RlIG1lc3NhZ2V9IGFu
ZCB7QGNvZGUgZXJyb3J9IGV2ZW50cyBhcmUgdHJpZ2dlcmluZyB0aGUKKyAqIHJldHVybmVkIHBy
b21pc2UgcmVzb2x2ZS9yZWplY3QgZXZlbnRzLgorICogQHBhcmFtIHtzdHJpbmd9IHVybCBUaGUg
VVJMIGZvciBXZWJTb2NrZXQgdG8gY29ubmVjdCB0by4KKyAqIEByZXR1cm4ge1Byb21pc2V9IFRo
ZSBwcm9taXNlIGZvciBzdWNjZXNzL2Vycm9yIGV2ZW50cy4KKyAqLworZnVuY3Rpb24gcmVxdWVz
dFZpYVdlYlNvY2tldCh1cmwpIHsKKyAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29s
dmUsIHJlamVjdCkgeworICAgIHZhciB3ZWJzb2NrZXQgPSBuZXcgV2ViU29ja2V0KHVybCk7CisK
KyAgICB3ZWJzb2NrZXQuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIGZ1bmN0aW9uKGUpIHsK
KyAgICAgIHJlc29sdmUoZS5kYXRhKTsKKyAgICB9KTsKKworICAgIHdlYnNvY2tldC5hZGRFdmVu
dExpc3RlbmVyKCJvcGVuIiwgZnVuY3Rpb24oZSkgeworICAgICAgd2Vic29ja2V0LnNlbmQoImVj
aG8iKTsKKyAgICB9KTsKKworICAgIHdlYnNvY2tldC5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIs
IGZ1bmN0aW9uKGUpIHsKKyAgICAgIHJlamVjdChlKQorICAgIH0pOworICB9KQorICAudGhlbihk
YXRhID0+IHsKKyAgICAgIHJldHVybiBKU09OLnBhcnNlKGRhdGEpOworICAgIH0pOworfQorCisv
KioKKyAgQHR5cGVkZWYgU3VicmVzb3VyY2VUeXBlCisgIEB0eXBlIHtzdHJpbmd9CisKKyAgUmVw
cmVzZW50cyBob3cgYSBzdWJyZXNvdXJjZSBpcyBzZW50LgorICBUaGUga2V5cyBvZiBgc3VicmVz
b3VyY2VNYXBgIGJlbG93IGFyZSB0aGUgdmFsaWQgdmFsdWVzLgorKi8KKworLy8gU3VicmVzb3Vy
Y2UgcGF0aHMgYW5kIGludm9rZXJzLgorY29uc3Qgc3VicmVzb3VyY2VNYXAgPSB7CisgICJhLXRh
ZyI6IHsKKyAgICBwYXRoOiAiL2NvbW1vbi9zZWN1cml0eS1mZWF0dXJlcy9zdWJyZXNvdXJjZS9k
b2N1bWVudC5weSIsCisgICAgaW52b2tlcjogcmVxdWVzdFZpYUFuY2hvciwKKyAgfSwKKyAgImFy
ZWEtdGFnIjogeworICAgIHBhdGg6ICIvY29tbW9uL3NlY3VyaXR5LWZlYXR1cmVzL3N1YnJlc291
cmNlL2RvY3VtZW50LnB5IiwKKyAgICBpbnZva2VyOiByZXF1ZXN0VmlhQXJlYSwKKyAgfSwKKyAg
ImF1ZGlvLXRhZyI6IHsKKyAgICBwYXRoOiAiL2NvbW1vbi9zZWN1cml0eS1mZWF0dXJlcy9zdWJy
ZXNvdXJjZS9hdWRpby5weSIsCisgICAgaW52b2tlcjogcmVxdWVzdFZpYUF1ZGlvLAorICB9LAor
ICAiYmVhY29uIjogeworICAgIHBhdGg6ICIvY29tbW9uL3NlY3VyaXR5LWZlYXR1cmVzL3N1YnJl
c291cmNlL2VtcHR5LnB5IiwKKyAgICBpbnZva2VyOiByZXF1ZXN0VmlhU2VuZEJlYWNvbiwKKyAg
fSwKKyAgImZldGNoIjogeworICAgIHBhdGg6ICIvY29tbW9uL3NlY3VyaXR5LWZlYXR1cmVzL3N1
YnJlc291cmNlL3hoci5weSIsCisgICAgaW52b2tlcjogcmVxdWVzdFZpYUZldGNoLAorICB9LAor
ICAiZm9ybS10YWciOiB7CisgICAgcGF0aDogIi9jb21tb24vc2VjdXJpdHktZmVhdHVyZXMvc3Vi
cmVzb3VyY2UvZW1wdHkucHkiLAorICAgIGludm9rZXI6IHJlcXVlc3RWaWFGb3JtLAorICB9LAor
ICAiaWZyYW1lLXRhZyI6IHsKKyAgICBwYXRoOiAiL2NvbW1vbi9zZWN1cml0eS1mZWF0dXJlcy9z
dWJyZXNvdXJjZS9kb2N1bWVudC5weSIsCisgICAgaW52b2tlcjogcmVxdWVzdFZpYUlmcmFtZSwK
KyAgfSwKKyAgImltZy10YWciOiB7CisgICAgcGF0aDogIi9jb21tb24vc2VjdXJpdHktZmVhdHVy
ZXMvc3VicmVzb3VyY2UvaW1hZ2UucHkiLAorICAgIGludm9rZXI6IHJlcXVlc3RWaWFJbWFnZSwK
KyAgfSwKKyAgImxpbmstY3NzLXRhZyI6IHsKKyAgICBwYXRoOiAiL2NvbW1vbi9zZWN1cml0eS1m
ZWF0dXJlcy9zdWJyZXNvdXJjZS9lbXB0eS5weSIsCisgICAgaW52b2tlcjogcmVxdWVzdFZpYUxp
bmtTdHlsZXNoZWV0LAorICB9LAorICAibGluay1wcmVmZXRjaC10YWciOiB7CisgICAgcGF0aDog
Ii9jb21tb24vc2VjdXJpdHktZmVhdHVyZXMvc3VicmVzb3VyY2UvZW1wdHkucHkiLAorICAgIGlu
dm9rZXI6IHJlcXVlc3RWaWFMaW5rUHJlZmV0Y2gsCisgIH0sCisgICJvYmplY3QtdGFnIjogewor
ICAgIHBhdGg6ICIvY29tbW9uL3NlY3VyaXR5LWZlYXR1cmVzL3N1YnJlc291cmNlL2VtcHR5LnB5
IiwKKyAgICBpbnZva2VyOiByZXF1ZXN0VmlhT2JqZWN0LAorICB9LAorICAicGljdHVyZS10YWci
OiB7CisgICAgcGF0aDogIi9jb21tb24vc2VjdXJpdHktZmVhdHVyZXMvc3VicmVzb3VyY2UvaW1h
Z2UucHkiLAorICAgIGludm9rZXI6IHJlcXVlc3RWaWFQaWN0dXJlLAorICB9LAorICAic2NyaXB0
LXRhZyI6IHsKKyAgICBwYXRoOiAiL2NvbW1vbi9zZWN1cml0eS1mZWF0dXJlcy9zdWJyZXNvdXJj
ZS9zY3JpcHQucHkiLAorICAgIGludm9rZXI6IHJlcXVlc3RWaWFTY3JpcHQsCisgIH0sCisgICJ2
aWRlby10YWciOiB7CisgICAgcGF0aDogIi9jb21tb24vc2VjdXJpdHktZmVhdHVyZXMvc3VicmVz
b3VyY2UvdmlkZW8ucHkiLAorICAgIGludm9rZXI6IHJlcXVlc3RWaWFWaWRlbywKKyAgfSwKKyAg
InhociI6IHsKKyAgICBwYXRoOiAiL2NvbW1vbi9zZWN1cml0eS1mZWF0dXJlcy9zdWJyZXNvdXJj
ZS94aHIucHkiLAorICAgIGludm9rZXI6IHJlcXVlc3RWaWFYaHIsCisgIH0sCisKKyAgIndvcmtl
ci1jbGFzc2ljIjogeworICAgIHBhdGg6ICIvY29tbW9uL3NlY3VyaXR5LWZlYXR1cmVzL3N1YnJl
c291cmNlL3dvcmtlci5weSIsCisgICAgaW52b2tlcjogdXJsID0+IHJlcXVlc3RWaWFEZWRpY2F0
ZWRXb3JrZXIodXJsKSwKKyAgfSwKKyAgIndvcmtlci1tb2R1bGUiOiB7CisgICAgcGF0aDogIi9j
b21tb24vc2VjdXJpdHktZmVhdHVyZXMvc3VicmVzb3VyY2Uvd29ya2VyLnB5IiwKKyAgICBpbnZv
a2VyOiB1cmwgPT4gcmVxdWVzdFZpYURlZGljYXRlZFdvcmtlcih1cmwsIHt0eXBlOiAibW9kdWxl
In0pLAorICB9LAorICAid29ya2VyLWltcG9ydC1kYXRhIjogeworICAgIHBhdGg6ICIvY29tbW9u
L3NlY3VyaXR5LWZlYXR1cmVzL3N1YnJlc291cmNlL3dvcmtlci5weSIsCisgICAgaW52b2tlcjog
dXJsID0+CisgICAgICAgIHJlcXVlc3RWaWFEZWRpY2F0ZWRXb3JrZXIod29ya2VyVXJsVGhhdElt
cG9ydHModXJsKSwge3R5cGU6ICJtb2R1bGUifSksCisgIH0sCisgICJzaGFyZWR3b3JrZXItY2xh
c3NpYyI6IHsKKyAgICBwYXRoOiAiL2NvbW1vbi9zZWN1cml0eS1mZWF0dXJlcy9zdWJyZXNvdXJj
ZS9zaGFyZWQtd29ya2VyLnB5IiwKKyAgICBpbnZva2VyOiByZXF1ZXN0VmlhU2hhcmVkV29ya2Vy
LAorICB9LAorCisgICJ3ZWJzb2NrZXQiOiB7CisgICAgcGF0aDogIi9zdGFzaF9yZXNwb25kZXIi
LAorICAgIGludm9rZXI6IHJlcXVlc3RWaWFXZWJTb2NrZXQsCisgIH0sCit9OworZm9yIChjb25z
dCB3b3JrbGV0VHlwZSBvZiBbJ2FuaW1hdGlvbicsICdhdWRpbycsICdsYXlvdXQnLCAncGFpbnQn
XSkgeworICBzdWJyZXNvdXJjZU1hcFtgd29ya2xldC0ke3dvcmtsZXRUeXBlfWBdID0geworICAg
ICAgcGF0aDogIi9jb21tb24vc2VjdXJpdHktZmVhdHVyZXMvc3VicmVzb3VyY2Uvd29ya2VyLnB5
IiwKKyAgICAgIGludm9rZXI6IHVybCA9PiByZXF1ZXN0VmlhV29ya2xldCh3b3JrbGV0VHlwZSwg
dXJsKQorICAgIH07CisgIHN1YnJlc291cmNlTWFwW2B3b3JrbGV0LSR7d29ya2xldFR5cGV9LWlt
cG9ydC1kYXRhYF0gPSB7CisgICAgICBwYXRoOiAiL2NvbW1vbi9zZWN1cml0eS1mZWF0dXJlcy9z
dWJyZXNvdXJjZS93b3JrZXIucHkiLAorICAgICAgaW52b2tlcjogdXJsID0+CisgICAgICAgICAg
cmVxdWVzdFZpYVdvcmtsZXQod29ya2xldFR5cGUsIHdvcmtlclVybFRoYXRJbXBvcnRzKHVybCkp
CisgICAgfTsKK30KKworLyoqCisgIEB0eXBlZGVmIFJlZGlyZWN0aW9uVHlwZQorICBAdHlwZSB7
c3RyaW5nfQorCisgIFJlcHJlc2VudHMgd2hhdCByZWRpcmVjdHMgc2hvdWxkIG9jY3VyIHRvIHRo
ZSBzdWJyZXNvdXJjZSByZXF1ZXN0CisgIGFmdGVyIGluaXRpYWwgcmVxdWVzdC4KKyAgU2VlIHBy
ZXByb2Nlc3NfcmVkaXJlY3Rpb24oKSBpbgorICAvY29tbW9uL3NlY3VyaXR5LWZlYXR1cmVzL3N1
YnJlc291cmNlL3N1YnJlc291cmNlLnB5IGZvciB2YWxpZCB2YWx1ZXMuCisqLworCisvKioKKyAg
Q29uc3RydWN0IHN1YnJlc291cmNlIChhbmQgcmVsYXRlZCkgb3JpZ2luLgorCisgIEBwYXJhbSB7
c3RyaW5nfSBvcmlnaW5UeXBlCisgIEByZXR1cm5zIHtvYmplY3R9IHRoZSBvcmlnaW4gb2YgdGhl
IHN1YnJlc291cmNlLgorKi8KK2Z1bmN0aW9uIGdldFN1YnJlc291cmNlT3JpZ2luKG9yaWdpblR5
cGUpIHsKKyAgY29uc3QgaHR0cFByb3RvY29sID0gImh0dHAiOworICBjb25zdCBodHRwc1Byb3Rv
Y29sID0gImh0dHBzIjsKKyAgY29uc3Qgd3NQcm90b2NvbCA9ICJ3cyI7CisgIGNvbnN0IHdzc1By
b3RvY29sID0gIndzcyI7CisKKyAgY29uc3Qgc2FtZU9yaWdpbkhvc3QgPSAie3tob3N0fX0iOwor
ICBjb25zdCBjcm9zc09yaWdpbkhvc3QgPSAie3tkb21haW5zW3d3dzFdfX0iOworCisgIC8vIFRo
ZXNlIHZhbHVlcyBjYW4gZXZhbHVhdGUgdG8gZWl0aGVyIGVtcHR5IHN0cmluZ3Mgb3IgYSAiOnBv
cnQiIHN0cmluZy4KKyAgY29uc3QgaHR0cFBvcnQgPSBnZXROb3JtYWxpemVkUG9ydChwYXJzZUlu
dCgie3twb3J0c1todHRwXVswXX19IiwgMTApKTsKKyAgY29uc3QgaHR0cHNQb3J0ID0gZ2V0Tm9y
bWFsaXplZFBvcnQocGFyc2VJbnQoInt7cG9ydHNbaHR0cHNdWzBdfX0iLCAxMCkpOworICBjb25z
dCB3c1BvcnQgPSBnZXROb3JtYWxpemVkUG9ydChwYXJzZUludCgie3twb3J0c1t3c11bMF19fSIs
IDEwKSk7CisgIGNvbnN0IHdzc1BvcnQgPSBnZXROb3JtYWxpemVkUG9ydChwYXJzZUludCgie3tw
b3J0c1t3c3NdWzBdfX0iLCAxMCkpOworCisgIC8qKgorICAgIEB0eXBlZGVmIE9yaWdpblR5cGUK
KyAgICBAdHlwZSB7c3RyaW5nfQorCisgICAgUmVwcmVzZW50cyB0aGUgb3JpZ2luIG9mIHRoZSBz
dWJyZXNvdXJjZSByZXF1ZXN0IFVSTC4KKyAgICBUaGUga2V5cyBvZiBgb3JpZ2luTWFwYCBiZWxv
dyBhcmUgdGhlIHZhbGlkIHZhbHVlcy4KKworICAgIE5vdGUgdGhhdCB0aGVyZSBjYW4gYmUgcmVk
aXJlY3RzIGZyb20gdGhlIHNwZWNpZmllZCBvcmlnaW4KKyAgICAoc2VlIFJlZGlyZWN0aW9uVHlw
ZSksIGFuZCB0aHVzIHRoZSBvcmlnaW4gb2YgdGhlIHN1YnJlc291cmNlCisgICAgcmVzcG9uc2Ug
VVJMIG1pZ2h0IGJlIGRpZmZlcmVudCBmcm9tIHdoYXQgaXMgc3BlY2lmaWVkIGJ5IE9yaWdpblR5
cGUuCisgICovCisgIGNvbnN0IG9yaWdpbk1hcCA9IHsKKyAgICAic2FtZS1odHRwcyI6IGh0dHBz
UHJvdG9jb2wgKyAiOi8vIiArIHNhbWVPcmlnaW5Ib3N0ICsgaHR0cHNQb3J0LAorICAgICJzYW1l
LWh0dHAiOiBodHRwUHJvdG9jb2wgKyAiOi8vIiArIHNhbWVPcmlnaW5Ib3N0ICsgaHR0cFBvcnQs
CisgICAgImNyb3NzLWh0dHBzIjogaHR0cHNQcm90b2NvbCArICI6Ly8iICsgY3Jvc3NPcmlnaW5I
b3N0ICsgaHR0cHNQb3J0LAorICAgICJjcm9zcy1odHRwIjogaHR0cFByb3RvY29sICsgIjovLyIg
KyBjcm9zc09yaWdpbkhvc3QgKyBodHRwUG9ydCwKKyAgICAic2FtZS13c3MiOiB3c3NQcm90b2Nv
bCArICI6Ly8iICsgc2FtZU9yaWdpbkhvc3QgKyB3c3NQb3J0LAorICAgICJzYW1lLXdzIjogd3NQ
cm90b2NvbCArICI6Ly8iICsgc2FtZU9yaWdpbkhvc3QgKyB3c1BvcnQsCisgICAgImNyb3NzLXdz
cyI6IHdzc1Byb3RvY29sICsgIjovLyIgKyBjcm9zc09yaWdpbkhvc3QgKyB3c3NQb3J0LAorICAg
ICJjcm9zcy13cyI6IHdzUHJvdG9jb2wgKyAiOi8vIiArIGNyb3NzT3JpZ2luSG9zdCArIHdzUG9y
dCwKKyAgfTsKKworICByZXR1cm4gb3JpZ2luTWFwW29yaWdpblR5cGVdOworfQorCisvKioKKyAg
Q29uc3RydWN0IHN1YnJlc291cmNlIChhbmQgcmVsYXRlZCkgVVJMcy4KKworICBAcGFyYW0ge1N1
YnJlc291cmNlVHlwZX0gc3VicmVzb3VyY2VUeXBlCisgIEBwYXJhbSB7T3JpZ2luVHlwZX0gb3Jp
Z2luVHlwZQorICBAcGFyYW0ge1JlZGlyZWN0aW9uVHlwZX0gcmVkaXJlY3Rpb25UeXBlCisgIEBy
ZXR1cm5zIHtvYmplY3R9IHdpdGggZm9sbG93aW5nIHByb3BlcnRpZXM6CisgICAge3N0cmluZ30g
dGVzdFVybAorICAgICAgVGhlIHN1YnJlc291cmNlIHJlcXVlc3QgVVJMLgorICAgIHtzdHJpbmd9
IGFubm91bmNlVXJsCisgICAge3N0cmluZ30gYXNzZXJ0VXJsCisgICAgICBUaGUgVVJMcyB0byBi
ZSB1c2VkIGZvciBkZXRlY3Rpbmcgd2hldGhlciBgdGVzdFVybGAgaXMgYWN0dWFsbHkgc2VudAor
ICAgICAgdG8gdGhlIHNlcnZlci4KKyAgICAgIDEuIEZldGNoIGBhbm5vdW5jZVVybGAgZmlyc3Qs
CisgICAgICAyLiB0aGVuIHBvc3NpYmx5IGZldGNoIGB0ZXN0VXJsYCwgYW5kCisgICAgICAzLiBm
aW5hbGx5IGZldGNoIGBhc3NlcnRVcmxgLgorICAgICAgICAgVGhlIGZldGNoIHJlc3VsdCBvZiBg
YXNzZXJ0VXJsYCBzaG91bGQgaW5kaWNhdGUgd2hldGhlcgorICAgICAgICAgYHRlc3RVcmxgIGlz
IGFjdHVhbGx5IHNlbnQgdG8gdGhlIHNlcnZlciBvciBub3QuCisqLworZnVuY3Rpb24gZ2V0UmVx
dWVzdFVSTHMoc3VicmVzb3VyY2VUeXBlLCBvcmlnaW5UeXBlLCByZWRpcmVjdGlvblR5cGUpIHsK
KyAgY29uc3Qga2V5ID0gZ3VpZCgpOworICBjb25zdCB2YWx1ZSA9IGd1aWQoKTsKKworICAvLyBX
ZSB1c2UgdGhlIHNhbWUgc3Rhc2ggcGF0aCBmb3IgYm90aCBIVFRQL1MgYW5kIFdTL1Mgc3Rhc2gg
cmVxdWVzdHMuCisgIGNvbnN0IHN0YXNoUGF0aCA9IGVuY29kZVVSSUNvbXBvbmVudCgiL21peGVk
LWNvbnRlbnQiKTsKKworICBjb25zdCBzdGFzaEVuZHBvaW50ID0gIi9jb21tb24vc2VjdXJpdHkt
ZmVhdHVyZXMvc3VicmVzb3VyY2UveGhyLnB5P2tleT0iICsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGtleSArICImcGF0aD0iICsgc3Rhc2hQYXRoOworICByZXR1cm4geworICAgIHRlc3RVcmw6
CisgICAgICBnZXRTdWJyZXNvdXJjZU9yaWdpbihvcmlnaW5UeXBlKSArCisgICAgICAgIHN1YnJl
c291cmNlTWFwW3N1YnJlc291cmNlVHlwZV0ucGF0aCArCisgICAgICAgICI/cmVkaXJlY3Rpb249
IiArIGVuY29kZVVSSUNvbXBvbmVudChyZWRpcmVjdGlvblR5cGUpICsKKyAgICAgICAgIiZhY3Rp
b249cHVyZ2Uma2V5PSIgKyBrZXkgKworICAgICAgICAiJnBhdGg9IiArIHN0YXNoUGF0aCwKKyAg
ICBhbm5vdW5jZVVybDogc3Rhc2hFbmRwb2ludCArICImYWN0aW9uPXB1dCZ2YWx1ZT0iICsgdmFs
dWUsCisgICAgYXNzZXJ0VXJsOiBzdGFzaEVuZHBvaW50ICsgIiZhY3Rpb249dGFrZSIsCisgIH07
Cit9CisKKy8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQorLy8gU291cmNlIENvbnRleHQKKy8vID09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLy8gUmVxdWVz
dHMgY2FuIGJlIHNlbnQgZnJvbSBzZXZlcmFsIHNvdXJjZSBjb250ZXh0cywKKy8vIHN1Y2ggYXMg
dGhlIG1haW4gZG9jdW1lbnRzLCBpZnJhbWVzLCB3b3JrZXJzLCBvciBzbywKKy8vIHBvc3NpYmx5
IG5lc3RlZCwgYW5kIHBvc3NpYmx5IHdpdGggPG1ldGE+L2h0dHAgaGVhZGVycyBhZGRlZC4KKy8v
IGludm9rZVJlcXVlc3QoKSBhbmQgaW52b2tlRnJvbSooKSBmdW5jdGlvbnMgaGFuZGxlcworLy8g
U291cmNlQ29udGV4dC1yZWxhdGVkIHNldHVwIGluIGNsaWVudC1zaWRlLgorCisvKioKKyAgaW52
b2tlUmVxdWVzdCgpIGludm9rZXMgYSBzdWJyZXNvdXJjZSByZXF1ZXN0CisgIChzcGVjaWZpZWQg
YXMgYHN1YnJlc291cmNlYCkKKyAgZnJvbSBhIChwb3NzaWJseSBuZXN0ZWQpIGVudmlyb25tZW50
IHNldHRpbmdzIG9iamVjdAorICAoc3BlY2lmaWVkIGFzIGBzb3VyY2VDb250ZXh0TGlzdGApLgor
CisgIEZvciBuZXN0ZWQgY29udGV4dHMsIGludm9rZVJlcXVlc3QoKSBjYWxscyBhbiBpbnZva2VG
cm9tKigpIGZ1bmN0aW9uCisgIHRoYXQgY3JlYXRlcyBhIG5lc3RlZCBlbnZpcm9ubWVudCBzZXR0
aW5ncyBvYmplY3QgdXNpbmcKKyAgL2NvbW1vbi9zZWN1cml0eS1mZWF0dXJlcy9zY29wZS8sIHdo
aWNoIGNhbGxzIGludm9rZVJlcXVlc3QoKQorICBhZ2FpbiBpbnNpZGUgdGhlIG5lc3RlZCBlbnZp
cm9ubWVudCBzZXR0aW5ncyBvYmplY3QuCisgIFRoaXMgY3ljbGUgY29udGludWVzIHVudGlsIGFs
bCBzcGVjaWZpZWQKKyAgbmVzdGVkIGVudmlyb25tZW50IHNldHRpbmdzIG9iamVjdCBhcmUgY3Jl
YXRlZCwgYW5kCisgIGZpbmFsbHkgaW52b2tlUmVxdWVzdCgpIGNhbGxzIGEgcmVxdWVzdFZpYSoo
KSBmdW5jdGlvbiB0byBzdGFydCB0aGUKKyAgc3VicmVzb3VyY2UgcmVxdWVzdCBmcm9tIHRoZSBp
bm5lci1tb3N0IGVudmlyb25tZW50IHNldHRpbmdzIG9iamVjdC4KKworICBAcGFyYW0ge1N1YnJl
c291cmNlfSBzdWJyZXNvdXJjZQorICBAcGFyYW0ge0FycmF5PFNvdXJjZUNvbnRleHQ+fSBzb3Vy
Y2VDb250ZXh0TGlzdAorCisgIEByZXR1cm5zIHtQcm9taXNlfSBBIHByb21pc2UgdGhhdCBpcyBy
ZXNvbHZlZCB3aXRoIGFuIFJlcXVlc3RSZXN1bHQgb2JqZWN0LgorICBgc291cmNlQ29udGV4dFVy
bGAgaXMgYWx3YXlzIHNldC4gRm9yIHdoZXRoZXIgb3RoZXIgcHJvcGVydGllcyBhcmUgc2V0LAor
ICBzZWUgdGhlIGNvbW1lbnRzIGZvciByZXF1ZXN0VmlhKigpIGFib3ZlLgorKi8KK2Z1bmN0aW9u
IGludm9rZVJlcXVlc3Qoc3VicmVzb3VyY2UsIHNvdXJjZUNvbnRleHRMaXN0KSB7CisgIGlmIChz
b3VyY2VDb250ZXh0TGlzdC5sZW5ndGggPT09IDApIHsKKyAgICAvLyBObyBmdXJ0aGVyIG5lc3Rl
ZCBnbG9iYWwgb2JqZWN0cy4gU2VuZCB0aGUgc3VicmVzb3VyY2UgcmVxdWVzdCBoZXJlLgorCisg
ICAgY29uc3QgYWRkaXRpb25hbEF0dHJpYnV0ZXMgPSB7fTsKKyAgICAvKiogQHR5cGUge1BvbGlj
eURlbGl2ZXJ5fSBwb2xpY3lEZWxpdmVyeSAqLworICAgIGZvciAoY29uc3QgcG9saWN5RGVsaXZl
cnkgb2YgKHN1YnJlc291cmNlLnBvbGljeURlbGl2ZXJpZXMgfHwgW10pKSB7CisgICAgICAvLyBE
ZXBlbmRpbmcgb24gdGhlIGRlbGl2ZXJ5IG1ldGhvZCwgZXh0ZW5kIHRoZSBzdWJyZXNvdXJjZSBl
bGVtZW50IHdpdGgKKyAgICAgIC8vIHRoZXNlIGF0dHJpYnV0ZXMuCisgICAgICBpZiAocG9saWN5
RGVsaXZlcnkuZGVsaXZlcnlUeXBlID09PSAiYXR0ciIpIHsKKyAgICAgICAgYWRkaXRpb25hbEF0
dHJpYnV0ZXNbcG9saWN5RGVsaXZlcnkua2V5XSA9IHBvbGljeURlbGl2ZXJ5LnZhbHVlOworICAg
ICAgfSBlbHNlIGlmIChwb2xpY3lEZWxpdmVyeS5kZWxpdmVyeVR5cGUgPT09ICJyZWwtbm9yZWYi
KSB7CisgICAgICAgIGFkZGl0aW9uYWxBdHRyaWJ1dGVzWyJyZWwiXSA9ICJub3JlZmVycmVyIjsK
KyAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gc3VicmVzb3VyY2VNYXBbc3VicmVzb3VyY2Uu
c3VicmVzb3VyY2VUeXBlXS5pbnZva2VyKAorICAgICAgICBzdWJyZXNvdXJjZS51cmwsCisgICAg
ICAgIGFkZGl0aW9uYWxBdHRyaWJ1dGVzKQorICAgICAgLnRoZW4ocmVzdWx0ID0+IE9iamVjdC5h
c3NpZ24oCisgICAgICAgICAge3NvdXJjZUNvbnRleHRVcmw6IGxvY2F0aW9uLnRvU3RyaW5nKCl9
LAorICAgICAgICAgIHJlc3VsdCkpOworICB9CisKKyAgLy8gRGVmaW5lcyBpbnZva2VycyBmb3Ig
ZWFjaCB2YWxpZCBTb3VyY2VDb250ZXh0LnNvdXJjZUNvbnRleHRUeXBlLgorICBjb25zdCBzb3Vy
Y2VDb250ZXh0TWFwID0geworICAgICJzcmNkb2MiOiB7IC8vIDxpZnJhbWUgc3JjZG9jPjwvaWZy
YW1lPgorICAgICAgaW52b2tlcjogaW52b2tlRnJvbUlmcmFtZSwKKyAgICB9LAorICAgICJpZnJh
bWUiOiB7IC8vIDxpZnJhbWUgc3JjPSJzYW1lLW9yaWdpbi1VUkwiPjwvaWZyYW1lPgorICAgICAg
aW52b2tlcjogaW52b2tlRnJvbUlmcmFtZSwKKyAgICB9LAorICAgICJ3b3JrZXItY2xhc3NpYyI6
IHsKKyAgICAgIC8vIENsYXNzaWMgZGVkaWNhdGVkIHdvcmtlciBsb2FkZWQgZnJvbSBzYW1lLW9y
aWdpbi4KKyAgICAgIGludm9rZXI6IGludm9rZUZyb21Xb3JrZXIuYmluZCh1bmRlZmluZWQsIGZh
bHNlLCB7fSksCisgICAgfSwKKyAgICAid29ya2VyLWNsYXNzaWMtZGF0YSI6IHsKKyAgICAgIC8v
IENsYXNzaWMgZGVkaWNhdGVkIHdvcmtlciBsb2FkZWQgZnJvbSBkYXRhOiBVUkwuCisgICAgICBp
bnZva2VyOiBpbnZva2VGcm9tV29ya2VyLmJpbmQodW5kZWZpbmVkLCB0cnVlLCB7fSksCisgICAg
fSwKKyAgICAid29ya2VyLW1vZHVsZSI6IHsKKyAgICAgIC8vIE1vZHVsZSBkZWRpY2F0ZWQgd29y
a2VyIGxvYWRlZCBmcm9tIHNhbWUtb3JpZ2luLgorICAgICAgaW52b2tlcjogaW52b2tlRnJvbVdv
cmtlci5iaW5kKHVuZGVmaW5lZCwgZmFsc2UsIHt0eXBlOiAnbW9kdWxlJ30pLAorICAgIH0sCisg
ICAgIndvcmtlci1tb2R1bGUtZGF0YSI6IHsKKyAgICAgIC8vIE1vZHVsZSBkZWRpY2F0ZWQgd29y
a2VyIGxvYWRlZCBmcm9tIGRhdGE6IFVSTC4KKyAgICAgIGludm9rZXI6IGludm9rZUZyb21Xb3Jr
ZXIuYmluZCh1bmRlZmluZWQsIHRydWUsIHt0eXBlOiAnbW9kdWxlJ30pLAorICAgIH0sCisgIH07
CisKKyAgcmV0dXJuIHNvdXJjZUNvbnRleHRNYXBbc291cmNlQ29udGV4dExpc3RbMF0uc291cmNl
Q29udGV4dFR5cGVdLmludm9rZXIoCisgICAgICBzdWJyZXNvdXJjZSwgc291cmNlQ29udGV4dExp
c3QpOworfQorCisvLyBRdWljayBoYWNrIHRvIGV4cG9zZSBpbnZva2VSZXF1ZXN0IHdoZW4gY29t
bW9uLnN1Yi5qcyBpcyBsb2FkZWQgZWl0aGVyCisvLyBhcyBhIGNsYXNzaWMgb3IgbW9kdWxlIHNj
cmlwdC4KK3NlbGYuaW52b2tlUmVxdWVzdCA9IGludm9rZVJlcXVlc3Q7CisKKy8qKgorICBpbnZv
a2VGcm9tKigpIGZ1bmN0aW9ucyBhcmUgaGVscGVyIGZ1bmN0aW9ucyB3aXRoIHRoZSBzYW1lIHBh
cmFtZXRlcnMKKyAgYW5kIHJldHVybiB2YWx1ZXMgYXMgaW52b2tlUmVxdWVzdCgpLCB0aGF0IGFy
ZSB0aWVkIHRvIHNwZWNpZmljIHR5cGVzCisgIG9mIHRvcC1tb3N0IGVudmlyb25tZW50IHNldHRp
bmdzIG9iamVjdHMuCisgIEZvciBleGFtcGxlLCBpbnZva2VGcm9tSWZyYW1lKCkgaXMgdGhlIGhl
bHBlciBmdW5jdGlvbiBmb3IgdGhlIGNhc2VzIHdoZXJlCisgIHNvdXJjZUNvbnRleHRMaXN0WzBd
IGlzIGFuIGlmcmFtZS4KKyovCisKKy8qKgorICBAcGFyYW0ge2Jvb2xlYW59IGlzRGF0YVVybAor
ICAgIHRydWUgaWYgdGhlIHdvcmtlciBzY3JpcHQgaXMgbG9hZGVkIGZyb20gZGF0YTogVVJMLgor
ICAgIE90aGVyd2lzZSwgdGhlIHNjcmlwdCBpcyBsb2FkZWQgZnJvbSBzYW1lLW9yaWdpbi4KKyAg
QHBhcmFtIHtvYmplY3R9IHdvcmtlck9wdGlvbnMKKyAgICBUaGUgYG9wdGlvbnNgIGFyZ3VtZW50
IGZvciBXb3JrZXIgY29uc3RydWN0b3IuCisKKyAgT3RoZXIgcGFyYW1ldGVycyBhbmQgcmV0dXJu
IHZhbHVlcyBhcmUgdGhlIHNhbWUgYXMgdGhvc2Ugb2YgaW52b2tlUmVxdWVzdCgpLgorKi8KK2Z1
bmN0aW9uIGludm9rZUZyb21Xb3JrZXIoaXNEYXRhVXJsLCB3b3JrZXJPcHRpb25zLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICBzdWJyZXNvdXJjZSwgc291cmNlQ29udGV4dExpc3QpIHsKKyAg
Y29uc3QgY3VycmVudFNvdXJjZUNvbnRleHQgPSBzb3VyY2VDb250ZXh0TGlzdFswXTsKKyAgbGV0
IHdvcmtlclVybCA9CisgICAgIi9jb21tb24vc2VjdXJpdHktZmVhdHVyZXMvc2NvcGUvd29ya2Vy
LnB5P3BvbGljeURlbGl2ZXJpZXM9IiArCisgICAgZW5jb2RlVVJJQ29tcG9uZW50KEpTT04uc3Ry
aW5naWZ5KAorICAgICAgICBjdXJyZW50U291cmNlQ29udGV4dC5wb2xpY3lEZWxpdmVyaWVzIHx8
IFtdKSk7CisgIGlmICh3b3JrZXJPcHRpb25zLnR5cGUgPT09ICdtb2R1bGUnKSB7CisgICAgd29y
a2VyVXJsICs9ICImdHlwZT1tb2R1bGUiOworICB9CisKKyAgbGV0IHByb21pc2U7CisgIGlmIChp
c0RhdGFVcmwpIHsKKyAgICBwcm9taXNlID0gZmV0Y2god29ya2VyVXJsKQorICAgICAgLnRoZW4o
ciA9PiByLnRleHQoKSkKKyAgICAgIC50aGVuKHNvdXJjZSA9PiB7CisgICAgICAgICAgcmV0dXJu
ICdkYXRhOnRleHQvamF2YXNjcmlwdDtiYXNlNjQsJyArIGJ0b2Eoc291cmNlKTsKKyAgICAgICAg
fSk7CisgIH0gZWxzZSB7CisgICAgcHJvbWlzZSA9IFByb21pc2UucmVzb2x2ZSh3b3JrZXJVcmwp
OworICB9CisKKyAgcmV0dXJuIHByb21pc2UKKyAgICAudGhlbih1cmwgPT4geworICAgICAgY29u
c3Qgd29ya2VyID0gbmV3IFdvcmtlcih1cmwsIHdvcmtlck9wdGlvbnMpOworICAgICAgd29ya2Vy
LnBvc3RNZXNzYWdlKHtzdWJyZXNvdXJjZTogc3VicmVzb3VyY2UsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgIHNvdXJjZUNvbnRleHRMaXN0OiBzb3VyY2VDb250ZXh0TGlzdC5zbGljZSgxKX0p
OworICAgICAgcmV0dXJuIGJpbmRFdmVudHMyKHdvcmtlciwgIm1lc3NhZ2UiLCB3b3JrZXIsICJl
cnJvciIsIHdpbmRvdywgImVycm9yIik7CisgICAgfSkKKyAgICAudGhlbihldmVudCA9PiB7Cisg
ICAgICAgIGlmIChldmVudC5kYXRhLmVycm9yKQorICAgICAgICAgIHJldHVybiBQcm9taXNlLnJl
amVjdChldmVudC5kYXRhLmVycm9yKTsKKyAgICAgICAgcmV0dXJuIGV2ZW50LmRhdGE7CisgICAg
ICB9KTsKK30KKworZnVuY3Rpb24gaW52b2tlRnJvbUlmcmFtZShzdWJyZXNvdXJjZSwgc291cmNl
Q29udGV4dExpc3QpIHsKKyAgY29uc3QgY3VycmVudFNvdXJjZUNvbnRleHQgPSBzb3VyY2VDb250
ZXh0TGlzdFswXTsKKyAgY29uc3QgZnJhbWVVcmwgPQorICAgICIvY29tbW9uL3NlY3VyaXR5LWZl
YXR1cmVzL3Njb3BlL2RvY3VtZW50LnB5P3BvbGljeURlbGl2ZXJpZXM9IiArCisgICAgZW5jb2Rl
VVJJQ29tcG9uZW50KEpTT04uc3RyaW5naWZ5KAorICAgICAgICBjdXJyZW50U291cmNlQ29udGV4
dC5wb2xpY3lEZWxpdmVyaWVzIHx8IFtdKSk7CisKKyAgbGV0IHByb21pc2U7CisgIGlmIChjdXJy
ZW50U291cmNlQ29udGV4dC5zb3VyY2VDb250ZXh0VHlwZSA9PT0gJ3NyY2RvYycpIHsKKyAgICBw
cm9taXNlID0gZmV0Y2goZnJhbWVVcmwpCisgICAgICAudGhlbihyID0+IHIudGV4dCgpKQorICAg
ICAgLnRoZW4oc3JjZG9jID0+IHsKKyAgICAgICAgICByZXR1cm4gY3JlYXRlRWxlbWVudCgiaWZy
YW1lIiwge3NyY2RvYzogc3JjZG9jfSwgZG9jdW1lbnQuYm9keSwgdHJ1ZSk7CisgICAgICAgIH0p
OworICB9IGVsc2UgaWYgKGN1cnJlbnRTb3VyY2VDb250ZXh0LnNvdXJjZUNvbnRleHRUeXBlID09
PSAnaWZyYW1lJykgeworICAgIHByb21pc2UgPSBQcm9taXNlLnJlc29sdmUoCisgICAgICAgIGNy
ZWF0ZUVsZW1lbnQoImlmcmFtZSIsIHtzcmM6IGZyYW1lVXJsfSwgZG9jdW1lbnQuYm9keSwgdHJ1
ZSkpOworICB9CisKKyAgcmV0dXJuIHByb21pc2UKKyAgICAudGhlbihpZnJhbWUgPT4geworICAg
ICAgICByZXR1cm4gaWZyYW1lLmV2ZW50UHJvbWlzZQorICAgICAgICAgIC50aGVuKCgpID0+IHsK
KyAgICAgICAgICAgICAgY29uc3QgcHJvbWlzZSA9IGJpbmRFdmVudHMyKAorICAgICAgICAgICAg
ICAgICAgd2luZG93LCAibWVzc2FnZSIsIGlmcmFtZSwgImVycm9yIiwgd2luZG93LCAiZXJyb3Ii
KTsKKyAgICAgICAgICAgICAgaWZyYW1lLmNvbnRlbnRXaW5kb3cucG9zdE1lc3NhZ2UoCisgICAg
ICAgICAgICAgICAgICB7c3VicmVzb3VyY2U6IHN1YnJlc291cmNlLAorICAgICAgICAgICAgICAg
ICAgIHNvdXJjZUNvbnRleHRMaXN0OiBzb3VyY2VDb250ZXh0TGlzdC5zbGljZSgxKX0sCisgICAg
ICAgICAgICAgICAgICAiKiIpOworICAgICAgICAgICAgICByZXR1cm4gcHJvbWlzZTsKKyAgICAg
ICAgICAgIH0pCisgICAgICAgICAgLnRoZW4oZXZlbnQgPT4geworICAgICAgICAgICAgICBpZiAo
ZXZlbnQuZGF0YS5lcnJvcikKKyAgICAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3Qo
ZXZlbnQuZGF0YS5lcnJvcik7CisgICAgICAgICAgICAgIHJldHVybiBldmVudC5kYXRhOworICAg
ICAgICAgICAgfSk7CisgICAgICB9KTsKK30KKworLy8gU2FuaXR5Q2hlY2tlciBkb2VzIG5vdGhp
bmcgaW4gcmVsZWFzZSBtb2RlLiBTZWUgc2FuaXR5LWNoZWNrZXIuanMgZm9yIGRlYnVnCisvLyBt
b2RlLgorZnVuY3Rpb24gU2FuaXR5Q2hlY2tlcigpIHt9CitTYW5pdHlDaGVja2VyLnByb3RvdHlw
ZS5jaGVja1NjZW5hcmlvID0gZnVuY3Rpb24oKSB7fTsKK1Nhbml0eUNoZWNrZXIucHJvdG90eXBl
LnNldEZhaWxUaW1lb3V0ID0gZnVuY3Rpb24odGVzdCwgdGltZW91dCkge307CitTYW5pdHlDaGVj
a2VyLnByb3RvdHlwZS5jaGVja1N1YnJlc291cmNlUmVzdWx0ID0gZnVuY3Rpb24oKSB7fTsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY29u
dGVudC1zZWN1cml0eS1wb2xpY3kvc2VjdXJpdHlwb2xpY3l2aW9sYXRpb24vaWRsaGFybmVzcy53
aW5kb3ctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jb250ZW50LXNlY3VyaXR5LXBvbGljeS9zZWN1cml0eXBvbGljeXZpb2xhdGlvbi9p
ZGxoYXJuZXNzLndpbmRvdy1leHBlY3RlZC50eHQKaW5kZXggYTdlYTMyNzkxY2IwMDY5M2YzNzk0
YTIzZDMyODRhOTI2NzljNTJmZi4uMWUxY2Y2NjdkM2I1MGFlZjFmMTY5MThkZjNiMDQ4M2RlZGUx
ZjVkNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jb250ZW50LXNlY3VyaXR5LXBvbGljeS9zZWN1cml0eXBvbGljeXZpb2xhdGlvbi9pZGxo
YXJuZXNzLndpbmRvdy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jb250ZW50LXNlY3VyaXR5LXBvbGljeS9zZWN1cml0eXBvbGlj
eXZpb2xhdGlvbi9pZGxoYXJuZXNzLndpbmRvdy1leHBlY3RlZC50eHQKQEAgLTEsMzAgKzEsMyBA
QAogCi1GQUlMIGlkbF90ZXN0IHNldHVwIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlv
biB3aXRoIHZhbHVlOiBvYmplY3QgIkdvdCBhbiBlcnJvciBiZWZvcmUgcGFyc2luZyBhbnkgbmFt
ZWQgZGVmaW5pdGlvbjogVW5yZWNvZ25pc2VkIHRva2VucywgbGluZSAxICh0b2tlbnM6ICJ7XCJl
cnJvclwiOiB7XCJtZXNzYWdlXCIiKQotWwotICAgIHsKLSAgICAgICAgInR5cGUiOiAieyIsCi0g
ICAgICAgICJ2YWx1ZSI6ICJ7IiwKLSAgICAgICAgInRyaXZpYSI6ICIiCi0gICAgfSwKLSAgICB7
Ci0gICAgICAgICJ0eXBlIjogInN0cmluZyIsCi0gICAgICAgICJ2YWx1ZSI6ICJcImVycm9yXCIi
LAotICAgICAgICAidHJpdmlhIjogIiIKLSAgICB9LAotICAgIHsKLSAgICAgICAgInR5cGUiOiAi
OiIsCi0gICAgICAgICJ2YWx1ZSI6ICI6IiwKLSAgICAgICAgInRyaXZpYSI6ICIiCi0gICAgfSwK
LSAgICB7Ci0gICAgICAgICJ0eXBlIjogInsiLAotICAgICAgICAidmFsdWUiOiAieyIsCi0gICAg
ICAgICJ0cml2aWEiOiAiICIKLSAgICB9LAotICAgIHsKLSAgICAgICAgInR5cGUiOiAic3RyaW5n
IiwKLSAgICAgICAgInZhbHVlIjogIlwibWVzc2FnZVwiIiwKLSAgICAgICAgInRyaXZpYSI6ICIi
Ci0gICAgfQotXSIKK0ZBSUwgaWRsX3Rlc3Qgc2V0dXAgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQg
cmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiRXJyb3IgZmV0Y2hpbmcgL2ludGVyZmFjZXMv
Q1NQLmlkbC4iCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3JlZGVudGlhbC1tYW5hZ2VtZW50L2lkbC5odHRwcy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2NyZWRlbnRpYWwt
bWFuYWdlbWVudC9pZGwuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IGVkM2IxYzE4NjFlNmRmZWY5
MTcxN2Y3ZmRhOWI5OGFmZTAxZjA2ZjEuLjNjNTY2OTkxN2NkMGFiODZiOWIyMDEyZjllZTdlMjI4
NjBiY2VhOGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3JlZGVudGlhbC1tYW5hZ2VtZW50L2lkbC5odHRwcy1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jcmVkZW50aWFs
LW1hbmFnZW1lbnQvaWRsLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMSw0MyArMSw4IEBACitDT05T
T0xFIE1FU1NBR0U6IGxpbmUgNDU3OiBXZWJJRExQYXJzZUVycm9yOiBTeW50YXggZXJyb3IgYXQg
bGluZSAxNywgc2luY2UgYGludGVyZmFjZSBQYXNzd29yZENyZWRlbnRpYWxgOgorICAgIFBhc3N3
b3JkQ3JlZGVudGlhbCBpbXBsZW1lbnRzIENyZWRlbnRpYWxVc2VyRGF0YTsKKyAgICBeIFVucmVj
b2duaXNlZCB0b2tlbnMKIAotUEFTUyBDcmVkZW50aWFsc0NvbnRhaW5lciBpbnRlcmZhY2U6IGV4
aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IAotUEFTUyBDcmVkZW50
aWFsc0NvbnRhaW5lciBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aCAKLVBBU1MgQ3JlZGVudGlhbHND
b250YWluZXIgaW50ZXJmYWNlIG9iamVjdCBuYW1lIAotUEFTUyBDcmVkZW50aWFsc0NvbnRhaW5l
ciBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90
eXBlIG9iamVjdCAKLVBBU1MgQ3JlZGVudGlhbHNDb250YWluZXIgaW50ZXJmYWNlOiBleGlzdGVu
Y2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyAiY29uc3Ry
dWN0b3IiIHByb3BlcnR5IAotUEFTUyBDcmVkZW50aWFsc0NvbnRhaW5lciBpbnRlcmZhY2U6IGV4
aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzIEBA
dW5zY29wYWJsZXMgcHJvcGVydHkgCi1QQVNTIENyZWRlbnRpYWxzQ29udGFpbmVyIGludGVyZmFj
ZTogb3BlcmF0aW9uIGdldChDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMpIAotUEFTUyBDcmVkZW50
aWFsc0NvbnRhaW5lciBpbnRlcmZhY2U6IG9wZXJhdGlvbiBzdG9yZShDcmVkZW50aWFsKSAKLVBB
U1MgQ3JlZGVudGlhbHNDb250YWluZXIgaW50ZXJmYWNlOiBvcGVyYXRpb24gY3JlYXRlKENyZWRl
bnRpYWxDcmVhdGlvbk9wdGlvbnMpIAotUEFTUyBDcmVkZW50aWFsc0NvbnRhaW5lciBpbnRlcmZh
Y2U6IG9wZXJhdGlvbiBwcmV2ZW50U2lsZW50QWNjZXNzKCkgCi1QQVNTIENyZWRlbnRpYWxzQ29u
dGFpbmVyIG11c3QgYmUgcHJpbWFyeSBpbnRlcmZhY2Ugb2YgbmF2aWdhdG9yLmNyZWRlbnRpYWxz
IAotUEFTUyBTdHJpbmdpZmljYXRpb24gb2YgbmF2aWdhdG9yLmNyZWRlbnRpYWxzIAotUEFTUyBD
cmVkZW50aWFsc0NvbnRhaW5lciBpbnRlcmZhY2U6IG5hdmlnYXRvci5jcmVkZW50aWFscyBtdXN0
IGluaGVyaXQgcHJvcGVydHkgImdldChDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMpIiB3aXRoIHRo
ZSBwcm9wZXIgdHlwZSAKLVBBU1MgQ3JlZGVudGlhbHNDb250YWluZXIgaW50ZXJmYWNlOiBjYWxs
aW5nIGdldChDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMpIG9uIG5hdmlnYXRvci5jcmVkZW50aWFs
cyB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAotUEFTUyBDcmVk
ZW50aWFsc0NvbnRhaW5lciBpbnRlcmZhY2U6IG5hdmlnYXRvci5jcmVkZW50aWFscyBtdXN0IGlu
aGVyaXQgcHJvcGVydHkgInN0b3JlKENyZWRlbnRpYWwpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAK
LVBBU1MgQ3JlZGVudGlhbHNDb250YWluZXIgaW50ZXJmYWNlOiBjYWxsaW5nIHN0b3JlKENyZWRl
bnRpYWwpIG9uIG5hdmlnYXRvci5jcmVkZW50aWFscyB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11
c3QgdGhyb3cgVHlwZUVycm9yIAotUEFTUyBDcmVkZW50aWFsc0NvbnRhaW5lciBpbnRlcmZhY2U6
IG5hdmlnYXRvci5jcmVkZW50aWFscyBtdXN0IGluaGVyaXQgcHJvcGVydHkgImNyZWF0ZShDcmVk
ZW50aWFsQ3JlYXRpb25PcHRpb25zKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCi1QQVNTIENyZWRl
bnRpYWxzQ29udGFpbmVyIGludGVyZmFjZTogY2FsbGluZyBjcmVhdGUoQ3JlZGVudGlhbENyZWF0
aW9uT3B0aW9ucykgb24gbmF2aWdhdG9yLmNyZWRlbnRpYWxzIHdpdGggdG9vIGZldyBhcmd1bWVu
dHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCi1QQVNTIENyZWRlbnRpYWxzQ29udGFpbmVyIGludGVy
ZmFjZTogbmF2aWdhdG9yLmNyZWRlbnRpYWxzIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAicHJldmVu
dFNpbGVudEFjY2VzcygpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKLUZBSUwgUGFzc3dvcmRDcmVk
ZW50aWFsIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBv
YmplY3QgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0
eSAiUGFzc3dvcmRDcmVkZW50aWFsIiBleHBlY3RlZCBwcm9wZXJ0eSAiUGFzc3dvcmRDcmVkZW50
aWFsIiBtaXNzaW5nCi1GQUlMIFBhc3N3b3JkQ3JlZGVudGlhbCBpbnRlcmZhY2Ugb2JqZWN0IGxl
bmd0aCBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5
ICJQYXNzd29yZENyZWRlbnRpYWwiIGV4cGVjdGVkIHByb3BlcnR5ICJQYXNzd29yZENyZWRlbnRp
YWwiIG1pc3NpbmcKLUZBSUwgUGFzc3dvcmRDcmVkZW50aWFsIGludGVyZmFjZSBvYmplY3QgbmFt
ZSBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJQ
YXNzd29yZENyZWRlbnRpYWwiIGV4cGVjdGVkIHByb3BlcnR5ICJQYXNzd29yZENyZWRlbnRpYWwi
IG1pc3NpbmcKLUZBSUwgUGFzc3dvcmRDcmVkZW50aWFsIGludGVyZmFjZTogZXhpc3RlbmNlIGFu
ZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IGFzc2VydF9vd25fcHJv
cGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlBhc3N3b3JkQ3JlZGVudGlh
bCIgZXhwZWN0ZWQgcHJvcGVydHkgIlBhc3N3b3JkQ3JlZGVudGlhbCIgbWlzc2luZwotRkFJTCBQ
YXNzd29yZENyZWRlbnRpYWwgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2Yg
aW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyAiY29uc3RydWN0b3IiIHByb3BlcnR5IGFzc2Vy
dF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlBhc3N3b3Jk
Q3JlZGVudGlhbCIgZXhwZWN0ZWQgcHJvcGVydHkgIlBhc3N3b3JkQ3JlZGVudGlhbCIgbWlzc2lu
ZwotRkFJTCBQYXNzd29yZENyZWRlbnRpYWwgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3Bl
cnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyBAQHVuc2NvcGFibGVzIHByb3Bl
cnR5IGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkg
IlBhc3N3b3JkQ3JlZGVudGlhbCIgZXhwZWN0ZWQgcHJvcGVydHkgIlBhc3N3b3JkQ3JlZGVudGlh
bCIgbWlzc2luZwotRkFJTCBQYXNzd29yZENyZWRlbnRpYWwgaW50ZXJmYWNlOiBhdHRyaWJ1dGUg
cGFzc3dvcmQgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9w
ZXJ0eSAiUGFzc3dvcmRDcmVkZW50aWFsIiBleHBlY3RlZCBwcm9wZXJ0eSAiUGFzc3dvcmRDcmVk
ZW50aWFsIiBtaXNzaW5nCi1GQUlMIFBhc3N3b3JkQ3JlZGVudGlhbCBtdXN0IGJlIHByaW1hcnkg
aW50ZXJmYWNlIG9mIG5ldyBQYXNzd29yZENyZWRlbnRpYWwoeyBpZDogImlkIiwgcGFzc3dvcmQ6
ICJwZW5jaWwiLCBpY29uVVJMOiAiaHR0cHM6Ly9leGFtcGxlLmNvbS8iLCBuYW1lOiAibmFtZSIg
fSkgYXNzZXJ0X2VxdWFsczogVW5leHBlY3RlZCBleGNlcHRpb24gd2hlbiBldmFsdWF0aW5nIG9i
amVjdCBleHBlY3RlZCBudWxsIGJ1dCBnb3Qgb2JqZWN0ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3Qg
ZmluZCB2YXJpYWJsZTogUGFzc3dvcmRDcmVkZW50aWFsIgotRkFJTCBTdHJpbmdpZmljYXRpb24g
b2YgbmV3IFBhc3N3b3JkQ3JlZGVudGlhbCh7IGlkOiAiaWQiLCBwYXNzd29yZDogInBlbmNpbCIs
IGljb25VUkw6ICJodHRwczovL2V4YW1wbGUuY29tLyIsIG5hbWU6ICJuYW1lIiB9KSBhc3NlcnRf
ZXF1YWxzOiBVbmV4cGVjdGVkIGV4Y2VwdGlvbiB3aGVuIGV2YWx1YXRpbmcgb2JqZWN0IGV4cGVj
dGVkIG51bGwgYnV0IGdvdCBvYmplY3QgIlJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlh
YmxlOiBQYXNzd29yZENyZWRlbnRpYWwiCi1GQUlMIFBhc3N3b3JkQ3JlZGVudGlhbCBpbnRlcmZh
Y2U6IG5ldyBQYXNzd29yZENyZWRlbnRpYWwoeyBpZDogImlkIiwgcGFzc3dvcmQ6ICJwZW5jaWwi
LCBpY29uVVJMOiAiaHR0cHM6Ly9leGFtcGxlLmNvbS8iLCBuYW1lOiAibmFtZSIgfSkgbXVzdCBp
bmhlcml0IHByb3BlcnR5ICJwYXNzd29yZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2Vx
dWFsczogVW5leHBlY3RlZCBleGNlcHRpb24gd2hlbiBldmFsdWF0aW5nIG9iamVjdCBleHBlY3Rl
ZCBudWxsIGJ1dCBnb3Qgb2JqZWN0ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJs
ZTogUGFzc3dvcmRDcmVkZW50aWFsIgotRkFJTCBGZWRlcmF0ZWRDcmVkZW50aWFsIGludGVyZmFj
ZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgYXNzZXJ0X293
bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiRmVkZXJhdGVkQ3Jl
ZGVudGlhbCIgZXhwZWN0ZWQgcHJvcGVydHkgIkZlZGVyYXRlZENyZWRlbnRpYWwiIG1pc3NpbmcK
LUZBSUwgRmVkZXJhdGVkQ3JlZGVudGlhbCBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aCBhc3NlcnRf
b3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJGZWRlcmF0ZWRD
cmVkZW50aWFsIiBleHBlY3RlZCBwcm9wZXJ0eSAiRmVkZXJhdGVkQ3JlZGVudGlhbCIgbWlzc2lu
ZwotRkFJTCBGZWRlcmF0ZWRDcmVkZW50aWFsIGludGVyZmFjZSBvYmplY3QgbmFtZSBhc3NlcnRf
b3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJGZWRlcmF0ZWRD
cmVkZW50aWFsIiBleHBlY3RlZCBwcm9wZXJ0eSAiRmVkZXJhdGVkQ3JlZGVudGlhbCIgbWlzc2lu
ZwotRkFJTCBGZWRlcmF0ZWRDcmVkZW50aWFsIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9w
ZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IGFzc2VydF9vd25fcHJvcGVydHk6
IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIkZlZGVyYXRlZENyZWRlbnRpYWwiIGV4
cGVjdGVkIHByb3BlcnR5ICJGZWRlcmF0ZWRDcmVkZW50aWFsIiBtaXNzaW5nCi1GQUlMIEZlZGVy
YXRlZENyZWRlbnRpYWwgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50
ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyAiY29uc3RydWN0b3IiIHByb3BlcnR5IGFzc2VydF9v
d25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIkZlZGVyYXRlZENy
ZWRlbnRpYWwiIGV4cGVjdGVkIHByb3BlcnR5ICJGZWRlcmF0ZWRDcmVkZW50aWFsIiBtaXNzaW5n
Ci1GQUlMIEZlZGVyYXRlZENyZWRlbnRpYWwgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3Bl
cnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyBAQHVuc2NvcGFibGVzIHByb3Bl
cnR5IGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkg
IkZlZGVyYXRlZENyZWRlbnRpYWwiIGV4cGVjdGVkIHByb3BlcnR5ICJGZWRlcmF0ZWRDcmVkZW50
aWFsIiBtaXNzaW5nCi1GQUlMIEZlZGVyYXRlZENyZWRlbnRpYWwgaW50ZXJmYWNlOiBhdHRyaWJ1
dGUgcHJvdmlkZXIgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBw
cm9wZXJ0eSAiRmVkZXJhdGVkQ3JlZGVudGlhbCIgZXhwZWN0ZWQgcHJvcGVydHkgIkZlZGVyYXRl
ZENyZWRlbnRpYWwiIG1pc3NpbmcKLUZBSUwgRmVkZXJhdGVkQ3JlZGVudGlhbCBpbnRlcmZhY2U6
IGF0dHJpYnV0ZSBwcm90b2NvbCBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhh
dmUgb3duIHByb3BlcnR5ICJGZWRlcmF0ZWRDcmVkZW50aWFsIiBleHBlY3RlZCBwcm9wZXJ0eSAi
RmVkZXJhdGVkQ3JlZGVudGlhbCIgbWlzc2luZwotRkFJTCBGZWRlcmF0ZWRDcmVkZW50aWFsIG11
c3QgYmUgcHJpbWFyeSBpbnRlcmZhY2Ugb2YgbmV3IEZlZGVyYXRlZENyZWRlbnRpYWwoeyBpZDog
ImlkIiwgcHJvdmlkZXI6ICJodHRwczovL2V4YW1wbGUuY29tIiwgaWNvblVSTDogImh0dHBzOi8v
ZXhhbXBsZS5jb20vIiwgbmFtZTogIm5hbWUiIH0pIGFzc2VydF9lcXVhbHM6IFVuZXhwZWN0ZWQg
ZXhjZXB0aW9uIHdoZW4gZXZhbHVhdGluZyBvYmplY3QgZXhwZWN0ZWQgbnVsbCBidXQgZ290IG9i
amVjdCAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IEZlZGVyYXRlZENyZWRl
bnRpYWwiCi1GQUlMIFN0cmluZ2lmaWNhdGlvbiBvZiBuZXcgRmVkZXJhdGVkQ3JlZGVudGlhbCh7
IGlkOiAiaWQiLCBwcm92aWRlcjogImh0dHBzOi8vZXhhbXBsZS5jb20iLCBpY29uVVJMOiAiaHR0
cHM6Ly9leGFtcGxlLmNvbS8iLCBuYW1lOiAibmFtZSIgfSkgYXNzZXJ0X2VxdWFsczogVW5leHBl
Y3RlZCBleGNlcHRpb24gd2hlbiBldmFsdWF0aW5nIG9iamVjdCBleHBlY3RlZCBudWxsIGJ1dCBn
b3Qgb2JqZWN0ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogRmVkZXJhdGVk
Q3JlZGVudGlhbCIKLUZBSUwgRmVkZXJhdGVkQ3JlZGVudGlhbCBpbnRlcmZhY2U6IG5ldyBGZWRl
cmF0ZWRDcmVkZW50aWFsKHsgaWQ6ICJpZCIsIHByb3ZpZGVyOiAiaHR0cHM6Ly9leGFtcGxlLmNv
bSIsIGljb25VUkw6ICJodHRwczovL2V4YW1wbGUuY29tLyIsIG5hbWU6ICJuYW1lIiB9KSBtdXN0
IGluaGVyaXQgcHJvcGVydHkgInByb3ZpZGVyIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBhc3NlcnRf
ZXF1YWxzOiBVbmV4cGVjdGVkIGV4Y2VwdGlvbiB3aGVuIGV2YWx1YXRpbmcgb2JqZWN0IGV4cGVj
dGVkIG51bGwgYnV0IGdvdCBvYmplY3QgIlJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlh
YmxlOiBGZWRlcmF0ZWRDcmVkZW50aWFsIgotRkFJTCBGZWRlcmF0ZWRDcmVkZW50aWFsIGludGVy
ZmFjZTogbmV3IEZlZGVyYXRlZENyZWRlbnRpYWwoeyBpZDogImlkIiwgcHJvdmlkZXI6ICJodHRw
czovL2V4YW1wbGUuY29tIiwgaWNvblVSTDogImh0dHBzOi8vZXhhbXBsZS5jb20vIiwgbmFtZTog
Im5hbWUiIH0pIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAicHJvdG9jb2wiIHdpdGggdGhlIHByb3Bl
ciB0eXBlIGFzc2VydF9lcXVhbHM6IFVuZXhwZWN0ZWQgZXhjZXB0aW9uIHdoZW4gZXZhbHVhdGlu
ZyBvYmplY3QgZXhwZWN0ZWQgbnVsbCBidXQgZ290IG9iamVjdCAiUmVmZXJlbmNlRXJyb3I6IENh
bid0IGZpbmQgdmFyaWFibGU6IEZlZGVyYXRlZENyZWRlbnRpYWwiCitGQUlMIFVudGl0bGVkIFdl
YklETFBhcnNlRXJyb3I6IFN5bnRheCBlcnJvciBhdCBsaW5lIDE3LCBzaW5jZSBgaW50ZXJmYWNl
IFBhc3N3b3JkQ3JlZGVudGlhbGA6CisgICAgUGFzc3dvcmRDcmVkZW50aWFsIGltcGxlbWVudHMg
Q3JlZGVudGlhbFVzZXJEYXRhOworICAgIF4gVW5yZWNvZ25pc2VkIHRva2VucwogCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mt
cHJvcGVydGllcy12YWx1ZXMtYXBpL2lkbGhhcm5lc3MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXByb3BlcnRpZXMtdmFs
dWVzLWFwaS9pZGxoYXJuZXNzLWV4cGVjdGVkLnR4dAppbmRleCBiNjVmNTQ0ODVmYjYyN2RmMDgw
ZTRhYWY1Mjg3ZGZmN2E0OWIyZGFjLi5mMjlkZjY1Y2MzMDc4NjNkODc5NzU4NDEzNWM2MDVkY2Qy
MjMzMDY1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9jc3MtcHJvcGVydGllcy12YWx1ZXMtYXBpL2lkbGhhcm5lc3MtZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzcy1wcm9wZXJ0aWVzLXZhbHVlcy1hcGkvaWRsaGFybmVzcy1leHBlY3RlZC50eHQKQEAgLTEs
MzAgKzEsNSBAQAogCi1GQUlMIFRlc3QgSURMIGltcGxlbWVudGF0aW9uIG9mIENTUyBQcm9wZXJ0
aWVzIFZhbHVlcyBBUEkgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFs
dWU6IG9iamVjdCAiR290IGFuIGVycm9yIGJlZm9yZSBwYXJzaW5nIGFueSBuYW1lZCBkZWZpbml0
aW9uOiBVbnJlY29nbmlzZWQgdG9rZW5zLCBsaW5lIDEgKHRva2VuczogIntcImVycm9yXCI6IHtc
Im1lc3NhZ2VcIiIpCi1bCi0gICAgewotICAgICAgICAidHlwZSI6ICJ7IiwKLSAgICAgICAgInZh
bHVlIjogInsiLAotICAgICAgICAidHJpdmlhIjogIiIKLSAgICB9LAotICAgIHsKLSAgICAgICAg
InR5cGUiOiAic3RyaW5nIiwKLSAgICAgICAgInZhbHVlIjogIlwiZXJyb3JcIiIsCi0gICAgICAg
ICJ0cml2aWEiOiAiIgotICAgIH0sCi0gICAgewotICAgICAgICAidHlwZSI6ICI6IiwKLSAgICAg
ICAgInZhbHVlIjogIjoiLAotICAgICAgICAidHJpdmlhIjogIiIKLSAgICB9LAotICAgIHsKLSAg
ICAgICAgInR5cGUiOiAieyIsCi0gICAgICAgICJ2YWx1ZSI6ICJ7IiwKLSAgICAgICAgInRyaXZp
YSI6ICIgIgotICAgIH0sCi0gICAgewotICAgICAgICAidHlwZSI6ICJzdHJpbmciLAotICAgICAg
ICAidmFsdWUiOiAiXCJtZXNzYWdlXCIiLAotICAgICAgICAidHJpdmlhIjogIiIKLSAgICB9Ci1d
IgorRkFJTCBUZXN0IElETCBpbXBsZW1lbnRhdGlvbiBvZiBDU1MgUHJvcGVydGllcyBWYWx1ZXMg
QVBJIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3Qg
IldlYklETFBhcnNlRXJyb3I6IFN5bnRheCBlcnJvciBhdCBsaW5lIDE6Cit7ImVycm9yIjogeyJt
ZXNzYWdlIgorXiBVbnJlY29nbmlzZWQgdG9rZW5zIgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L2ludGVyZmFj
ZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvY3Nzb20tdmlldy9pbnRlcmZhY2VzLWV4cGVjdGVkLnR4dAppbmRleCBiNTVjMWVj
Yjg0NzYwYjE1NTg4OGJiOTAzMTJkYmZhNzhiMTgxZmE1Li4xNWZlZjIyZGM5YmYzYmI2Y2NiOGIz
ZjVlZDdlMTJlMDJhODA4MjMwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L2ludGVyZmFjZXMtZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
c29tLXZpZXcvaW50ZXJmYWNlcy1leHBlY3RlZC50eHQKQEAgLTIsMzggKzIsNSBAQAogQ1NTT00g
VmlldyBJREwgdGVzdHMKIAogCi1GQUlMIGlkbF90ZXN0IHNldHVwIHByb21pc2VfdGVzdDogVW5o
YW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIkdvdCBhbiBlcnJvciBiZWZvcmUg
cGFyc2luZyBhbnkgbmFtZWQgZGVmaW5pdGlvbjogVW5yZWNvZ25pc2VkIHRva2VucywgbGluZSAx
ICh0b2tlbnM6ICJ7XCJlcnJvclwiOiB7XCJtZXNzYWdlXCIiKQotWwotICAgIHsKLSAgICAgICAg
InR5cGUiOiAieyIsCi0gICAgICAgICJ2YWx1ZSI6ICJ7IiwKLSAgICAgICAgInRyaXZpYSI6ICIi
Ci0gICAgfSwKLSAgICB7Ci0gICAgICAgICJ0eXBlIjogInN0cmluZyIsCi0gICAgICAgICJ2YWx1
ZSI6ICJcImVycm9yXCIiLAotICAgICAgICAidHJpdmlhIjogIiIKLSAgICB9LAotICAgIHsKLSAg
ICAgICAgInR5cGUiOiAiOiIsCi0gICAgICAgICJ2YWx1ZSI6ICI6IiwKLSAgICAgICAgInRyaXZp
YSI6ICIiCi0gICAgfSwKLSAgICB7Ci0gICAgICAgICJ0eXBlIjogInsiLAotICAgICAgICAidmFs
dWUiOiAieyIsCi0gICAgICAgICJ0cml2aWEiOiAiICIKLSAgICB9LAotICAgIHsKLSAgICAgICAg
InR5cGUiOiAic3RyaW5nIiwKLSAgICAgICAgInZhbHVlIjogIlwibWVzc2FnZVwiIiwKLSAgICAg
ICAgInRyaXZpYSI6ICIiCi0gICAgfQotXSIKLUZBSUwgUGFydGlhbCBpbnRlcmZhY2UgV2luZG93
OiBvcmlnaW5hbCBpbnRlcmZhY2UgZGVmaW5lZCBhc3NlcnRfdHJ1ZTogT3JpZ2luYWwgaW50ZXJm
YWNlIHNob3VsZCBiZSBkZWZpbmVkIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFBhcnRp
YWwgaW50ZXJmYWNlIERvY3VtZW50OiBvcmlnaW5hbCBpbnRlcmZhY2UgZGVmaW5lZCBhc3NlcnRf
dHJ1ZTogT3JpZ2luYWwgaW50ZXJmYWNlIHNob3VsZCBiZSBkZWZpbmVkIGV4cGVjdGVkIHRydWUg
Z290IGZhbHNlCi1GQUlMIFBhcnRpYWwgaW50ZXJmYWNlIEVsZW1lbnQ6IG9yaWdpbmFsIGludGVy
ZmFjZSBkZWZpbmVkIGFzc2VydF90cnVlOiBPcmlnaW5hbCBpbnRlcmZhY2Ugc2hvdWxkIGJlIGRl
ZmluZWQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgUGFydGlhbCBpbnRlcmZhY2UgSFRN
TEVsZW1lbnQ6IG9yaWdpbmFsIGludGVyZmFjZSBkZWZpbmVkIGFzc2VydF90cnVlOiBPcmlnaW5h
bCBpbnRlcmZhY2Ugc2hvdWxkIGJlIGRlZmluZWQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZB
SUwgUGFydGlhbCBpbnRlcmZhY2UgSFRNTEltYWdlRWxlbWVudDogb3JpZ2luYWwgaW50ZXJmYWNl
IGRlZmluZWQgYXNzZXJ0X3RydWU6IE9yaWdpbmFsIGludGVyZmFjZSBzaG91bGQgYmUgZGVmaW5l
ZCBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBQYXJ0aWFsIGludGVyZmFjZSBSYW5nZTog
b3JpZ2luYWwgaW50ZXJmYWNlIGRlZmluZWQgYXNzZXJ0X3RydWU6IE9yaWdpbmFsIGludGVyZmFj
ZSBzaG91bGQgYmUgZGVmaW5lZCBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorRkFJTCBpZGxfdGVz
dCBzZXR1cCBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2Jq
ZWN0ICJFcnJvciBmZXRjaGluZyAvaW50ZXJmYWNlcy9jc3MtcHNldWRvLmlkbC4iCiAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2dl
b21ldHJ5L2ludGVyZmFjZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvZ2VvbWV0cnkvaW50ZXJmYWNlcy1leHBlY3RlZC50eHQK
aW5kZXggZmE2MzVkZjQzNDQwMTEzN2I5YjUxMDNkMWQ0NGViYmUzMGI1YmQzOC4uNzI3NGNhZjVl
YjdkMmYwNmIxMzc3ZDdmYzM5MzA5M2NlOTI0YjlhMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvZ2VvbWV0cnkvaW50ZXJmYWNlcy1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvZ2VvbWV0cnkvaW50ZXJmYWNlcy1leHBlY3RlZC50eHQKQEAgLTI0LDcgKzI0LDcg
QEAgUEFTUyBET01Qb2ludFJlYWRPbmx5IGludGVyZmFjZTogbmV3IERPTVBvaW50UmVhZE9ubHko
KSBtdXN0IGluaGVyaXQgcHJvcGVydHkgIncKIFBBU1MgRE9NUG9pbnRSZWFkT25seSBpbnRlcmZh
Y2U6IG5ldyBET01Qb2ludFJlYWRPbmx5KCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJtYXRyaXhU
cmFuc2Zvcm0oRE9NTWF0cml4SW5pdCkiIHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBET01Q
b2ludFJlYWRPbmx5IGludGVyZmFjZTogY2FsbGluZyBtYXRyaXhUcmFuc2Zvcm0oRE9NTWF0cml4
SW5pdCkgb24gbmV3IERPTVBvaW50UmVhZE9ubHkoKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11
c3QgdGhyb3cgVHlwZUVycm9yIAogUEFTUyBET01Qb2ludFJlYWRPbmx5IGludGVyZmFjZTogbmV3
IERPTVBvaW50UmVhZE9ubHkoKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInRvSlNPTigpIiB3aXRo
IHRoZSBwcm9wZXIgdHlwZSAKLVBBU1MgVGVzdCBkZWZhdWx0IHRvSlNPTiBvcGVyYXRpb24gb2Yg
RE9NUG9pbnRSZWFkT25seSAKK1BBU1MgRE9NUG9pbnRSZWFkT25seSBpbnRlcmZhY2U6IGRlZmF1
bHQgdG9KU09OIG9wZXJhdGlvbiBvbiBuZXcgRE9NUG9pbnRSZWFkT25seSgpIAogUEFTUyBET01Q
b2ludCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2Jq
ZWN0IAogUEFTUyBET01Qb2ludCBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aCAKIFBBU1MgRE9NUG9p
bnQgaW50ZXJmYWNlIG9iamVjdCBuYW1lIApAQCAtNTgsNyArNTgsNyBAQCBQQVNTIERPTVBvaW50
UmVhZE9ubHkgaW50ZXJmYWNlOiBuZXcgRE9NUG9pbnQoKSBtdXN0IGluaGVyaXQgcHJvcGVydHkg
InciIHdpdGggdAogUEFTUyBET01Qb2ludFJlYWRPbmx5IGludGVyZmFjZTogbmV3IERPTVBvaW50
KCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJtYXRyaXhUcmFuc2Zvcm0oRE9NTWF0cml4SW5pdCki
IHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBET01Qb2ludFJlYWRPbmx5IGludGVyZmFjZTog
Y2FsbGluZyBtYXRyaXhUcmFuc2Zvcm0oRE9NTWF0cml4SW5pdCkgb24gbmV3IERPTVBvaW50KCkg
d2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKIFBBU1MgRE9NUG9p
bnRSZWFkT25seSBpbnRlcmZhY2U6IG5ldyBET01Qb2ludCgpIG11c3QgaW5oZXJpdCBwcm9wZXJ0
eSAidG9KU09OKCkiIHdpdGggdGhlIHByb3BlciB0eXBlIAotUEFTUyBUZXN0IGRlZmF1bHQgdG9K
U09OIG9wZXJhdGlvbiBvZiBET01Qb2ludCAKK1BBU1MgRE9NUG9pbnRSZWFkT25seSBpbnRlcmZh
Y2U6IGRlZmF1bHQgdG9KU09OIG9wZXJhdGlvbiBvbiBuZXcgRE9NUG9pbnQoKSAKIFBBU1MgRE9N
UmVjdFJlYWRPbmx5IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVy
ZmFjZSBvYmplY3QgCiBQQVNTIERPTVJlY3RSZWFkT25seSBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0
aCAKIFBBU1MgRE9NUmVjdFJlYWRPbmx5IGludGVyZmFjZSBvYmplY3QgbmFtZSAKQEAgLTg4LDcg
Kzg4LDcgQEAgUEFTUyBET01SZWN0UmVhZE9ubHkgaW50ZXJmYWNlOiBuZXcgRE9NUmVjdFJlYWRP
bmx5KCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJyaWcKIFBBU1MgRE9NUmVjdFJlYWRPbmx5IGlu
dGVyZmFjZTogbmV3IERPTVJlY3RSZWFkT25seSgpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiYm90
dG9tIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgRE9NUmVjdFJlYWRPbmx5IGludGVyZmFj
ZTogbmV3IERPTVJlY3RSZWFkT25seSgpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAibGVmdCIgd2l0
aCB0aGUgcHJvcGVyIHR5cGUgCiBQQVNTIERPTVJlY3RSZWFkT25seSBpbnRlcmZhY2U6IG5ldyBE
T01SZWN0UmVhZE9ubHkoKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInRvSlNPTigpIiB3aXRoIHRo
ZSBwcm9wZXIgdHlwZSAKLVBBU1MgVGVzdCBkZWZhdWx0IHRvSlNPTiBvcGVyYXRpb24gb2YgRE9N
UmVjdFJlYWRPbmx5IAorUEFTUyBET01SZWN0UmVhZE9ubHkgaW50ZXJmYWNlOiBkZWZhdWx0IHRv
SlNPTiBvcGVyYXRpb24gb24gbmV3IERPTVJlY3RSZWFkT25seSgpIAogUEFTUyBET01SZWN0IGlu
dGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgCiBQ
QVNTIERPTVJlY3QgaW50ZXJmYWNlIG9iamVjdCBsZW5ndGggCiBQQVNTIERPTVJlY3QgaW50ZXJm
YWNlIG9iamVjdCBuYW1lIApAQCAtMTI0LDcgKzEyNCw3IEBAIFBBU1MgRE9NUmVjdFJlYWRPbmx5
IGludGVyZmFjZTogbmV3IERPTVJlY3QoKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInJpZ2h0IiB3
aXRoCiBQQVNTIERPTVJlY3RSZWFkT25seSBpbnRlcmZhY2U6IG5ldyBET01SZWN0KCkgbXVzdCBp
bmhlcml0IHByb3BlcnR5ICJib3R0b20iIHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBET01S
ZWN0UmVhZE9ubHkgaW50ZXJmYWNlOiBuZXcgRE9NUmVjdCgpIG11c3QgaW5oZXJpdCBwcm9wZXJ0
eSAibGVmdCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCiBQQVNTIERPTVJlY3RSZWFkT25seSBpbnRl
cmZhY2U6IG5ldyBET01SZWN0KCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJ0b0pTT04oKSIgd2l0
aCB0aGUgcHJvcGVyIHR5cGUgCi1QQVNTIFRlc3QgZGVmYXVsdCB0b0pTT04gb3BlcmF0aW9uIG9m
IERPTVJlY3QgCitQQVNTIERPTVJlY3RSZWFkT25seSBpbnRlcmZhY2U6IGRlZmF1bHQgdG9KU09O
IG9wZXJhdGlvbiBvbiBuZXcgRE9NUmVjdCgpIAogUEFTUyBET01SZWN0TGlzdCBpbnRlcmZhY2U6
IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IAogUEFTUyBET01S
ZWN0TGlzdCBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aCAKIFBBU1MgRE9NUmVjdExpc3QgaW50ZXJm
YWNlIG9iamVjdCBuYW1lIApAQCAtMTY0LDcgKzE2NCw3IEBAIFBBU1MgRE9NUXVhZCBpbnRlcmZh
Y2U6IG5ldyBET01RdWFkKCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJwMyIgd2l0aCB0aGUgcHJv
cGVyCiBQQVNTIERPTVF1YWQgaW50ZXJmYWNlOiBuZXcgRE9NUXVhZCgpIG11c3QgaW5oZXJpdCBw
cm9wZXJ0eSAicDQiIHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBET01RdWFkIGludGVyZmFj
ZTogbmV3IERPTVF1YWQoKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImdldEJvdW5kcygpIiB3aXRo
IHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgRE9NUXVhZCBpbnRlcmZhY2U6IG5ldyBET01RdWFkKCkg
bXVzdCBpbmhlcml0IHByb3BlcnR5ICJ0b0pTT04oKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCi1G
QUlMIFRlc3QgZGVmYXVsdCB0b0pTT04gb3BlcmF0aW9uIG9mIERPTVF1YWQgYXNzZXJ0X3RydWU6
IGluc3RhbmNlb2YgRE9NUG9pbnQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK0ZBSUwgRE9NUXVh
ZCBpbnRlcmZhY2U6IGRlZmF1bHQgdG9KU09OIG9wZXJhdGlvbiBvbiBuZXcgRE9NUXVhZCgpIGFz
c2VydF90cnVlOiBpbnN0YW5jZW9mIERPTVBvaW50IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCiBQ
QVNTIERPTU1hdHJpeFJlYWRPbmx5IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVz
IG9mIGludGVyZmFjZSBvYmplY3QgCiBQQVNTIERPTU1hdHJpeFJlYWRPbmx5IGludGVyZmFjZSBv
YmplY3QgbGVuZ3RoIAogUEFTUyBET01NYXRyaXhSZWFkT25seSBpbnRlcmZhY2Ugb2JqZWN0IG5h
bWUgCkBAIC0yNzMsNyArMjczLDcgQEAgUEFTUyBET01NYXRyaXhSZWFkT25seSBpbnRlcmZhY2U6
IGNhbGxpbmcgdHJhbnNmb3JtUG9pbnQoRE9NUG9pbnRJbml0KSBvbiBuZXcgRE8KIFBBU1MgRE9N
TWF0cml4UmVhZE9ubHkgaW50ZXJmYWNlOiBuZXcgRE9NTWF0cml4UmVhZE9ubHkoKSBtdXN0IGlu
aGVyaXQgcHJvcGVydHkgInRvRmxvYXQzMkFycmF5KCkiIHdpdGggdGhlIHByb3BlciB0eXBlIAog
UEFTUyBET01NYXRyaXhSZWFkT25seSBpbnRlcmZhY2U6IG5ldyBET01NYXRyaXhSZWFkT25seSgp
IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAidG9GbG9hdDY0QXJyYXkoKSIgd2l0aCB0aGUgcHJvcGVy
IHR5cGUgCiBQQVNTIERPTU1hdHJpeFJlYWRPbmx5IGludGVyZmFjZTogbmV3IERPTU1hdHJpeFJl
YWRPbmx5KCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJ0b0pTT04oKSIgd2l0aCB0aGUgcHJvcGVy
IHR5cGUgCi1QQVNTIFRlc3QgZGVmYXVsdCB0b0pTT04gb3BlcmF0aW9uIG9mIERPTU1hdHJpeFJl
YWRPbmx5IAorUEFTUyBET01NYXRyaXhSZWFkT25seSBpbnRlcmZhY2U6IGRlZmF1bHQgdG9KU09O
IG9wZXJhdGlvbiBvbiBuZXcgRE9NTWF0cml4UmVhZE9ubHkoKSAKIFBBU1MgRE9NTWF0cml4UmVh
ZE9ubHkgbXVzdCBiZSBwcmltYXJ5IGludGVyZmFjZSBvZiBET01NYXRyaXhSZWFkT25seS5mcm9t
TWF0cml4KHtpczJEOiBmYWxzZX0pIAogUEFTUyBTdHJpbmdpZmljYXRpb24gb2YgRE9NTWF0cml4
UmVhZE9ubHkuZnJvbU1hdHJpeCh7aXMyRDogZmFsc2V9KSAKIFBBU1MgRE9NTWF0cml4IGludGVy
ZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9n
ZW9tZXRyeS9pbnRlcmZhY2VzLndvcmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9nZW9tZXRyeS9pbnRlcmZhY2VzLndvcmtl
ci1leHBlY3RlZC50eHQKaW5kZXggOTA1ODcwODI1MDJmYjAzODdiMmVkNGVjZWNmYTA2YWQ3YzEw
NGY4OC4uY2IzYmU4OTc4YTNiYzBkNGU3MjM3NzU4MDNlYmU4ZGMwM2EwYzQxYiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvZ2VvbWV0
cnkvaW50ZXJmYWNlcy53b3JrZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2dlb21ldHJ5L2ludGVyZmFjZXMud29ya2Vy
LWV4cGVjdGVkLnR4dApAQCAtMjQsNyArMjQsNyBAQCBQQVNTIERPTVBvaW50UmVhZE9ubHkgaW50
ZXJmYWNlOiBuZXcgRE9NUG9pbnRSZWFkT25seSgpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAidwog
UEFTUyBET01Qb2ludFJlYWRPbmx5IGludGVyZmFjZTogbmV3IERPTVBvaW50UmVhZE9ubHkoKSBt
dXN0IGluaGVyaXQgcHJvcGVydHkgIm1hdHJpeFRyYW5zZm9ybShET01NYXRyaXhJbml0KSIgd2l0
aCB0aGUgcHJvcGVyIHR5cGUgCiBQQVNTIERPTVBvaW50UmVhZE9ubHkgaW50ZXJmYWNlOiBjYWxs
aW5nIG1hdHJpeFRyYW5zZm9ybShET01NYXRyaXhJbml0KSBvbiBuZXcgRE9NUG9pbnRSZWFkT25s
eSgpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCiBQQVNTIERP
TVBvaW50UmVhZE9ubHkgaW50ZXJmYWNlOiBuZXcgRE9NUG9pbnRSZWFkT25seSgpIG11c3QgaW5o
ZXJpdCBwcm9wZXJ0eSAidG9KU09OKCkiIHdpdGggdGhlIHByb3BlciB0eXBlIAotUEFTUyBUZXN0
IGRlZmF1bHQgdG9KU09OIG9wZXJhdGlvbiBvZiBET01Qb2ludFJlYWRPbmx5IAorUEFTUyBET01Q
b2ludFJlYWRPbmx5IGludGVyZmFjZTogZGVmYXVsdCB0b0pTT04gb3BlcmF0aW9uIG9uIG5ldyBE
T01Qb2ludFJlYWRPbmx5KCkgCiBQQVNTIERPTVBvaW50IGludGVyZmFjZTogZXhpc3RlbmNlIGFu
ZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgCiBQQVNTIERPTVBvaW50IGludGVyZmFj
ZSBvYmplY3QgbGVuZ3RoIAogUEFTUyBET01Qb2ludCBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUgCkBA
IC01NCw3ICs1NCw3IEBAIFBBU1MgRE9NUG9pbnRSZWFkT25seSBpbnRlcmZhY2U6IG5ldyBET01Q
b2ludCgpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAidyIgd2l0aCB0CiBQQVNTIERPTVBvaW50UmVh
ZE9ubHkgaW50ZXJmYWNlOiBuZXcgRE9NUG9pbnQoKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgIm1h
dHJpeFRyYW5zZm9ybShET01NYXRyaXhJbml0KSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCiBQQVNT
IERPTVBvaW50UmVhZE9ubHkgaW50ZXJmYWNlOiBjYWxsaW5nIG1hdHJpeFRyYW5zZm9ybShET01N
YXRyaXhJbml0KSBvbiBuZXcgRE9NUG9pbnQoKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3Qg
dGhyb3cgVHlwZUVycm9yIAogUEFTUyBET01Qb2ludFJlYWRPbmx5IGludGVyZmFjZTogbmV3IERP
TVBvaW50KCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJ0b0pTT04oKSIgd2l0aCB0aGUgcHJvcGVy
IHR5cGUgCi1QQVNTIFRlc3QgZGVmYXVsdCB0b0pTT04gb3BlcmF0aW9uIG9mIERPTVBvaW50IAor
UEFTUyBET01Qb2ludFJlYWRPbmx5IGludGVyZmFjZTogZGVmYXVsdCB0b0pTT04gb3BlcmF0aW9u
IG9uIG5ldyBET01Qb2ludCgpIAogUEFTUyBET01SZWN0UmVhZE9ubHkgaW50ZXJmYWNlOiBleGlz
dGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCAKIFBBU1MgRE9NUmVjdFJl
YWRPbmx5IGludGVyZmFjZSBvYmplY3QgbGVuZ3RoIAogUEFTUyBET01SZWN0UmVhZE9ubHkgaW50
ZXJmYWNlIG9iamVjdCBuYW1lIApAQCAtODQsNyArODQsNyBAQCBQQVNTIERPTVJlY3RSZWFkT25s
eSBpbnRlcmZhY2U6IG5ldyBET01SZWN0UmVhZE9ubHkoKSBtdXN0IGluaGVyaXQgcHJvcGVydHkg
InJpZwogUEFTUyBET01SZWN0UmVhZE9ubHkgaW50ZXJmYWNlOiBuZXcgRE9NUmVjdFJlYWRPbmx5
KCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJib3R0b20iIHdpdGggdGhlIHByb3BlciB0eXBlIAog
UEFTUyBET01SZWN0UmVhZE9ubHkgaW50ZXJmYWNlOiBuZXcgRE9NUmVjdFJlYWRPbmx5KCkgbXVz
dCBpbmhlcml0IHByb3BlcnR5ICJsZWZ0IiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgRE9N
UmVjdFJlYWRPbmx5IGludGVyZmFjZTogbmV3IERPTVJlY3RSZWFkT25seSgpIG11c3QgaW5oZXJp
dCBwcm9wZXJ0eSAidG9KU09OKCkiIHdpdGggdGhlIHByb3BlciB0eXBlIAotUEFTUyBUZXN0IGRl
ZmF1bHQgdG9KU09OIG9wZXJhdGlvbiBvZiBET01SZWN0UmVhZE9ubHkgCitQQVNTIERPTVJlY3RS
ZWFkT25seSBpbnRlcmZhY2U6IGRlZmF1bHQgdG9KU09OIG9wZXJhdGlvbiBvbiBuZXcgRE9NUmVj
dFJlYWRPbmx5KCkgCiBQQVNTIERPTVJlY3QgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3Bl
cnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCAKIFBBU1MgRE9NUmVjdCBpbnRlcmZhY2Ugb2JqZWN0
IGxlbmd0aCAKIFBBU1MgRE9NUmVjdCBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUgCkBAIC0xMTYsNyAr
MTE2LDcgQEAgUEFTUyBET01SZWN0UmVhZE9ubHkgaW50ZXJmYWNlOiBuZXcgRE9NUmVjdCgpIG11
c3QgaW5oZXJpdCBwcm9wZXJ0eSAicmlnaHQiIHdpdGgKIFBBU1MgRE9NUmVjdFJlYWRPbmx5IGlu
dGVyZmFjZTogbmV3IERPTVJlY3QoKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImJvdHRvbSIgd2l0
aCB0aGUgcHJvcGVyIHR5cGUgCiBQQVNTIERPTVJlY3RSZWFkT25seSBpbnRlcmZhY2U6IG5ldyBE
T01SZWN0KCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJsZWZ0IiB3aXRoIHRoZSBwcm9wZXIgdHlw
ZSAKIFBBU1MgRE9NUmVjdFJlYWRPbmx5IGludGVyZmFjZTogbmV3IERPTVJlY3QoKSBtdXN0IGlu
aGVyaXQgcHJvcGVydHkgInRvSlNPTigpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKLVBBU1MgVGVz
dCBkZWZhdWx0IHRvSlNPTiBvcGVyYXRpb24gb2YgRE9NUmVjdCAKK1BBU1MgRE9NUmVjdFJlYWRP
bmx5IGludGVyZmFjZTogZGVmYXVsdCB0b0pTT04gb3BlcmF0aW9uIG9uIG5ldyBET01SZWN0KCkg
CiBQQVNTIERPTVJlY3RMaXN0IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9m
IGludGVyZmFjZSBvYmplY3QgCiBQQVNTIERPTVF1YWQgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5k
IHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCAKIFBBU1MgRE9NUXVhZCBpbnRlcmZhY2Ug
b2JqZWN0IGxlbmd0aCAKQEAgLTE0NCw3ICsxNDQsNyBAQCBQQVNTIERPTVF1YWQgaW50ZXJmYWNl
OiBuZXcgRE9NUXVhZCgpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAicDMiIHdpdGggdGhlIHByb3Bl
cgogUEFTUyBET01RdWFkIGludGVyZmFjZTogbmV3IERPTVF1YWQoKSBtdXN0IGluaGVyaXQgcHJv
cGVydHkgInA0IiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgRE9NUXVhZCBpbnRlcmZhY2U6
IG5ldyBET01RdWFkKCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJnZXRCb3VuZHMoKSIgd2l0aCB0
aGUgcHJvcGVyIHR5cGUgCiBQQVNTIERPTVF1YWQgaW50ZXJmYWNlOiBuZXcgRE9NUXVhZCgpIG11
c3QgaW5oZXJpdCBwcm9wZXJ0eSAidG9KU09OKCkiIHdpdGggdGhlIHByb3BlciB0eXBlIAotRkFJ
TCBUZXN0IGRlZmF1bHQgdG9KU09OIG9wZXJhdGlvbiBvZiBET01RdWFkIGFzc2VydF90cnVlOiBp
bnN0YW5jZW9mIERPTVBvaW50IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitGQUlMIERPTVF1YWQg
aW50ZXJmYWNlOiBkZWZhdWx0IHRvSlNPTiBvcGVyYXRpb24gb24gbmV3IERPTVF1YWQoKSBhc3Nl
cnRfdHJ1ZTogaW5zdGFuY2VvZiBET01Qb2ludCBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQogUEFT
UyBET01NYXRyaXhSZWFkT25seSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBv
ZiBpbnRlcmZhY2Ugb2JqZWN0IAogUEFTUyBET01NYXRyaXhSZWFkT25seSBpbnRlcmZhY2Ugb2Jq
ZWN0IGxlbmd0aCAKIFBBU1MgRE9NTWF0cml4UmVhZE9ubHkgaW50ZXJmYWNlIG9iamVjdCBuYW1l
IApAQCAtMTkzLDcgKzE5Myw3IEBAIFBBU1MgRE9NTWF0cml4UmVhZE9ubHkgaW50ZXJmYWNlOiBv
cGVyYXRpb24gaW52ZXJzZSgpCiBQQVNTIERPTU1hdHJpeFJlYWRPbmx5IGludGVyZmFjZTogb3Bl
cmF0aW9uIHRyYW5zZm9ybVBvaW50KERPTVBvaW50SW5pdCkgCiBQQVNTIERPTU1hdHJpeFJlYWRP
bmx5IGludGVyZmFjZTogb3BlcmF0aW9uIHRvRmxvYXQzMkFycmF5KCkgCiBQQVNTIERPTU1hdHJp
eFJlYWRPbmx5IGludGVyZmFjZTogb3BlcmF0aW9uIHRvRmxvYXQ2NEFycmF5KCkgCi1QQVNTIERP
TU1hdHJpeFJlYWRPbmx5IGludGVyZmFjZTogbWVtYmVyIHVuZGVmaW5lZCAKK1BBU1MgRE9NTWF0
cml4UmVhZE9ubHkgaW50ZXJmYWNlOiBtZW1iZXIgIAogUEFTUyBET01NYXRyaXhSZWFkT25seSBp
bnRlcmZhY2U6IG9wZXJhdGlvbiB0b0pTT04oKSAKIFBBU1MgRE9NTWF0cml4UmVhZE9ubHkgbXVz
dCBiZSBwcmltYXJ5IGludGVyZmFjZSBvZiBuZXcgRE9NTWF0cml4UmVhZE9ubHkoKSAKIFBBU1Mg
U3RyaW5naWZpY2F0aW9uIG9mIG5ldyBET01NYXRyaXhSZWFkT25seSgpIApAQCAtMjUyLDkgKzI1
Miw5IEBAIFBBU1MgRE9NTWF0cml4UmVhZE9ubHkgaW50ZXJmYWNlOiBuZXcgRE9NTWF0cml4UmVh
ZE9ubHkoKSBtdXN0IGluaGVyaXQgcHJvcGVydHkKIFBBU1MgRE9NTWF0cml4UmVhZE9ubHkgaW50
ZXJmYWNlOiBjYWxsaW5nIHRyYW5zZm9ybVBvaW50KERPTVBvaW50SW5pdCkgb24gbmV3IERPTU1h
dHJpeFJlYWRPbmx5KCkgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJv
ciAKIFBBU1MgRE9NTWF0cml4UmVhZE9ubHkgaW50ZXJmYWNlOiBuZXcgRE9NTWF0cml4UmVhZE9u
bHkoKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInRvRmxvYXQzMkFycmF5KCkiIHdpdGggdGhlIHBy
b3BlciB0eXBlIAogUEFTUyBET01NYXRyaXhSZWFkT25seSBpbnRlcmZhY2U6IG5ldyBET01NYXRy
aXhSZWFkT25seSgpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAidG9GbG9hdDY0QXJyYXkoKSIgd2l0
aCB0aGUgcHJvcGVyIHR5cGUgCi1QQVNTIERPTU1hdHJpeFJlYWRPbmx5IGludGVyZmFjZTogbmV3
IERPTU1hdHJpeFJlYWRPbmx5KCkgbXVzdCBub3QgaGF2ZSBwcm9wZXJ0eSAidW5kZWZpbmVkIiAK
K1BBU1MgRE9NTWF0cml4UmVhZE9ubHkgaW50ZXJmYWNlOiBuZXcgRE9NTWF0cml4UmVhZE9ubHko
KSBtdXN0IG5vdCBoYXZlIHByb3BlcnR5ICIiIAogUEFTUyBET01NYXRyaXhSZWFkT25seSBpbnRl
cmZhY2U6IG5ldyBET01NYXRyaXhSZWFkT25seSgpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAidG9K
U09OKCkiIHdpdGggdGhlIHByb3BlciB0eXBlIAotUEFTUyBUZXN0IGRlZmF1bHQgdG9KU09OIG9w
ZXJhdGlvbiBvZiBET01NYXRyaXhSZWFkT25seSAKK1BBU1MgRE9NTWF0cml4UmVhZE9ubHkgaW50
ZXJmYWNlOiBkZWZhdWx0IHRvSlNPTiBvcGVyYXRpb24gb24gbmV3IERPTU1hdHJpeFJlYWRPbmx5
KCkgCiBQQVNTIERPTU1hdHJpeFJlYWRPbmx5IG11c3QgYmUgcHJpbWFyeSBpbnRlcmZhY2Ugb2Yg
RE9NTWF0cml4UmVhZE9ubHkuZnJvbU1hdHJpeCh7aXMyRDogZmFsc2V9KSAKIFBBU1MgU3RyaW5n
aWZpY2F0aW9uIG9mIERPTU1hdHJpeFJlYWRPbmx5LmZyb21NYXRyaXgoe2lzMkQ6IGZhbHNlfSkg
CiBQQVNTIERPTU1hdHJpeCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBp
bnRlcmZhY2Ugb2JqZWN0IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9kb20vaW50ZXJmYWNlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9pbnRlcmZhY2VzLWV4cGVjdGVk
LnR4dAppbmRleCAxZjNmMTNiMGJkNzUwMzMxZjY4OGJkZmU2YzExNTE2YTY3YzVhNjliLi5hOThl
MDg1NjlhZjkwNDIzMzM5ZDAxNjdmNmY4M2Q4OGZhYjhiYzY3IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9pbnRlcmZhY2VzLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2RvbS9pbnRlcmZhY2VzLWV4cGVjdGVkLnR4dApAQCAtMSw4ICsxLDggQEAKLUNPTlNPTEUgTUVT
U0FHRTogbGluZSA0ODI6IGNhbGxiYWNrIG5vdCB5ZXQgc3VwcG9ydGVkCiBET00gSURMIHRlc3Rz
CiAKIAogUEFTUyBUZXN0IGRyaXZlciAKK1BBU1MgUGFydGlhbCBpbnRlcmZhY2UgV2luZG93OiBv
cmlnaW5hbCBpbnRlcmZhY2UgZGVmaW5lZCAKIFBBU1MgRXZlbnQgaW50ZXJmYWNlOiBleGlzdGVu
Y2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCAKIFBBU1MgRXZlbnQgaW50ZXJm
YWNlIG9iamVjdCBsZW5ndGggCiBQQVNTIEV2ZW50IGludGVyZmFjZSBvYmplY3QgbmFtZSAKQEAg
LTEzLDYgKzEzLDcgQEAgUEFTUyBFdmVudCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSB0eXBlCiBQQVNT
IEV2ZW50IGludGVyZmFjZTogYXR0cmlidXRlIHRhcmdldCAKIFBBU1MgRXZlbnQgaW50ZXJmYWNl
OiBhdHRyaWJ1dGUgc3JjRWxlbWVudCAKIFBBU1MgRXZlbnQgaW50ZXJmYWNlOiBhdHRyaWJ1dGUg
Y3VycmVudFRhcmdldCAKK1BBU1MgRXZlbnQgaW50ZXJmYWNlOiBvcGVyYXRpb24gY29tcG9zZWRQ
YXRoKCkgCiBQQVNTIEV2ZW50IGludGVyZmFjZTogY29uc3RhbnQgTk9ORSBvbiBpbnRlcmZhY2Ug
b2JqZWN0IAogUEFTUyBFdmVudCBpbnRlcmZhY2U6IGNvbnN0YW50IE5PTkUgb24gaW50ZXJmYWNl
IHByb3RvdHlwZSBvYmplY3QgCiBQQVNTIEV2ZW50IGludGVyZmFjZTogY29uc3RhbnQgQ0FQVFVS
SU5HX1BIQVNFIG9uIGludGVyZmFjZSBvYmplY3QgCkBAIC0yMywxMiArMjQsMTQgQEAgUEFTUyBF
dmVudCBpbnRlcmZhY2U6IGNvbnN0YW50IEJVQkJMSU5HX1BIQVNFIG9uIGludGVyZmFjZSBvYmpl
Y3QKIFBBU1MgRXZlbnQgaW50ZXJmYWNlOiBjb25zdGFudCBCVUJCTElOR19QSEFTRSBvbiBpbnRl
cmZhY2UgcHJvdG90eXBlIG9iamVjdCAKIFBBU1MgRXZlbnQgaW50ZXJmYWNlOiBhdHRyaWJ1dGUg
ZXZlbnRQaGFzZSAKIFBBU1MgRXZlbnQgaW50ZXJmYWNlOiBvcGVyYXRpb24gc3RvcFByb3BhZ2F0
aW9uKCkgCitQQVNTIEV2ZW50IGludGVyZmFjZTogYXR0cmlidXRlIGNhbmNlbEJ1YmJsZSAKIFBB
U1MgRXZlbnQgaW50ZXJmYWNlOiBvcGVyYXRpb24gc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCkg
CiBQQVNTIEV2ZW50IGludGVyZmFjZTogYXR0cmlidXRlIGJ1YmJsZXMgCiBQQVNTIEV2ZW50IGlu
dGVyZmFjZTogYXR0cmlidXRlIGNhbmNlbGFibGUgCiBQQVNTIEV2ZW50IGludGVyZmFjZTogYXR0
cmlidXRlIHJldHVyblZhbHVlIAogUEFTUyBFdmVudCBpbnRlcmZhY2U6IG9wZXJhdGlvbiBwcmV2
ZW50RGVmYXVsdCgpIAogUEFTUyBFdmVudCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBkZWZhdWx0UHJl
dmVudGVkIAorUEFTUyBFdmVudCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBjb21wb3NlZCAKIFBBU1Mg
RXZlbnQgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgdGltZVN0YW1wIAogUEFTUyBFdmVudCBpbnRlcmZh
Y2U6IG9wZXJhdGlvbiBpbml0RXZlbnQoRE9NU3RyaW5nLCBib29sZWFuLCBib29sZWFuKSAKIFBB
U1MgRXZlbnQgbXVzdCBiZSBwcmltYXJ5IGludGVyZmFjZSBvZiBkb2N1bWVudC5jcmVhdGVFdmVu
dCgiRXZlbnQiKSAKQEAgLTM3LDE4ICs0MCwyMSBAQCBQQVNTIEV2ZW50IGludGVyZmFjZTogZG9j
dW1lbnQuY3JlYXRlRXZlbnQoIkV2ZW50IikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJ0eXBlIgog
UEFTUyBFdmVudCBpbnRlcmZhY2U6IGRvY3VtZW50LmNyZWF0ZUV2ZW50KCJFdmVudCIpIG11c3Qg
aW5oZXJpdCBwcm9wZXJ0eSAidGFyZ2V0IiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgRXZl
bnQgaW50ZXJmYWNlOiBkb2N1bWVudC5jcmVhdGVFdmVudCgiRXZlbnQiKSBtdXN0IGluaGVyaXQg
cHJvcGVydHkgInNyY0VsZW1lbnQiIHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBFdmVudCBp
bnRlcmZhY2U6IGRvY3VtZW50LmNyZWF0ZUV2ZW50KCJFdmVudCIpIG11c3QgaW5oZXJpdCBwcm9w
ZXJ0eSAiY3VycmVudFRhcmdldCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIEV2ZW50IGlu
dGVyZmFjZTogZG9jdW1lbnQuY3JlYXRlRXZlbnQoIkV2ZW50IikgbXVzdCBpbmhlcml0IHByb3Bl
cnR5ICJjb21wb3NlZFBhdGgoKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCiBQQVNTIEV2ZW50IGlu
dGVyZmFjZTogZG9jdW1lbnQuY3JlYXRlRXZlbnQoIkV2ZW50IikgbXVzdCBpbmhlcml0IHByb3Bl
cnR5ICJOT05FIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgRXZlbnQgaW50ZXJmYWNlOiBk
b2N1bWVudC5jcmVhdGVFdmVudCgiRXZlbnQiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgIkNBUFRV
UklOR19QSEFTRSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCiBQQVNTIEV2ZW50IGludGVyZmFjZTog
ZG9jdW1lbnQuY3JlYXRlRXZlbnQoIkV2ZW50IikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJBVF9U
QVJHRVQiIHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBFdmVudCBpbnRlcmZhY2U6IGRvY3Vt
ZW50LmNyZWF0ZUV2ZW50KCJFdmVudCIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiQlVCQkxJTkdf
UEhBU0UiIHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBFdmVudCBpbnRlcmZhY2U6IGRvY3Vt
ZW50LmNyZWF0ZUV2ZW50KCJFdmVudCIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiZXZlbnRQaGFz
ZSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCiBQQVNTIEV2ZW50IGludGVyZmFjZTogZG9jdW1lbnQu
Y3JlYXRlRXZlbnQoIkV2ZW50IikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJzdG9wUHJvcGFnYXRp
b24oKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIEV2ZW50IGludGVyZmFjZTogZG9jdW1l
bnQuY3JlYXRlRXZlbnQoIkV2ZW50IikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJjYW5jZWxCdWJi
bGUiIHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBFdmVudCBpbnRlcmZhY2U6IGRvY3VtZW50
LmNyZWF0ZUV2ZW50KCJFdmVudCIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAic3RvcEltbWVkaWF0
ZVByb3BhZ2F0aW9uKCkiIHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBFdmVudCBpbnRlcmZh
Y2U6IGRvY3VtZW50LmNyZWF0ZUV2ZW50KCJFdmVudCIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAi
YnViYmxlcyIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCiBQQVNTIEV2ZW50IGludGVyZmFjZTogZG9j
dW1lbnQuY3JlYXRlRXZlbnQoIkV2ZW50IikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJjYW5jZWxh
YmxlIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgRXZlbnQgaW50ZXJmYWNlOiBkb2N1bWVu
dC5jcmVhdGVFdmVudCgiRXZlbnQiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInJldHVyblZhbHVl
IiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgRXZlbnQgaW50ZXJmYWNlOiBkb2N1bWVudC5j
cmVhdGVFdmVudCgiRXZlbnQiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInByZXZlbnREZWZhdWx0
KCkiIHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBFdmVudCBpbnRlcmZhY2U6IGRvY3VtZW50
LmNyZWF0ZUV2ZW50KCJFdmVudCIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiZGVmYXVsdFByZXZl
bnRlZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIEV2ZW50IGludGVyZmFjZTogZG9jdW1l
bnQuY3JlYXRlRXZlbnQoIkV2ZW50IikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJjb21wb3NlZCIg
d2l0aCB0aGUgcHJvcGVyIHR5cGUgCiBQQVNTIEV2ZW50IGludGVyZmFjZTogZG9jdW1lbnQuY3Jl
YXRlRXZlbnQoIkV2ZW50IikgbXVzdCBoYXZlIG93biBwcm9wZXJ0eSAiaXNUcnVzdGVkIiAKIFBB
U1MgRXZlbnQgaW50ZXJmYWNlOiBkb2N1bWVudC5jcmVhdGVFdmVudCgiRXZlbnQiKSBtdXN0IGlu
aGVyaXQgcHJvcGVydHkgInRpbWVTdGFtcCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCiBQQVNTIEV2
ZW50IGludGVyZmFjZTogZG9jdW1lbnQuY3JlYXRlRXZlbnQoIkV2ZW50IikgbXVzdCBpbmhlcml0
IHByb3BlcnR5ICJpbml0RXZlbnQoRE9NU3RyaW5nLCBib29sZWFuLCBib29sZWFuKSIgd2l0aCB0
aGUgcHJvcGVyIHR5cGUgCkBAIC01OSwxOCArNjUsMjEgQEAgUEFTUyBFdmVudCBpbnRlcmZhY2U6
IG5ldyBFdmVudCgiZm9vIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJ0eXBlIiB3aXRoIHRoZSBw
cm8KIFBBU1MgRXZlbnQgaW50ZXJmYWNlOiBuZXcgRXZlbnQoImZvbyIpIG11c3QgaW5oZXJpdCBw
cm9wZXJ0eSAidGFyZ2V0IiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgRXZlbnQgaW50ZXJm
YWNlOiBuZXcgRXZlbnQoImZvbyIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAic3JjRWxlbWVudCIg
d2l0aCB0aGUgcHJvcGVyIHR5cGUgCiBQQVNTIEV2ZW50IGludGVyZmFjZTogbmV3IEV2ZW50KCJm
b28iKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImN1cnJlbnRUYXJnZXQiIHdpdGggdGhlIHByb3Bl
ciB0eXBlIAorUEFTUyBFdmVudCBpbnRlcmZhY2U6IG5ldyBFdmVudCgiZm9vIikgbXVzdCBpbmhl
cml0IHByb3BlcnR5ICJjb21wb3NlZFBhdGgoKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCiBQQVNT
IEV2ZW50IGludGVyZmFjZTogbmV3IEV2ZW50KCJmb28iKSBtdXN0IGluaGVyaXQgcHJvcGVydHkg
Ik5PTkUiIHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBFdmVudCBpbnRlcmZhY2U6IG5ldyBF
dmVudCgiZm9vIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJDQVBUVVJJTkdfUEhBU0UiIHdpdGgg
dGhlIHByb3BlciB0eXBlIAogUEFTUyBFdmVudCBpbnRlcmZhY2U6IG5ldyBFdmVudCgiZm9vIikg
bXVzdCBpbmhlcml0IHByb3BlcnR5ICJBVF9UQVJHRVQiIHdpdGggdGhlIHByb3BlciB0eXBlIAog
UEFTUyBFdmVudCBpbnRlcmZhY2U6IG5ldyBFdmVudCgiZm9vIikgbXVzdCBpbmhlcml0IHByb3Bl
cnR5ICJCVUJCTElOR19QSEFTRSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCiBQQVNTIEV2ZW50IGlu
dGVyZmFjZTogbmV3IEV2ZW50KCJmb28iKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImV2ZW50UGhh
c2UiIHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBFdmVudCBpbnRlcmZhY2U6IG5ldyBFdmVu
dCgiZm9vIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJzdG9wUHJvcGFnYXRpb24oKSIgd2l0aCB0
aGUgcHJvcGVyIHR5cGUgCitQQVNTIEV2ZW50IGludGVyZmFjZTogbmV3IEV2ZW50KCJmb28iKSBt
dXN0IGluaGVyaXQgcHJvcGVydHkgImNhbmNlbEJ1YmJsZSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUg
CiBQQVNTIEV2ZW50IGludGVyZmFjZTogbmV3IEV2ZW50KCJmb28iKSBtdXN0IGluaGVyaXQgcHJv
cGVydHkgInN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAK
IFBBU1MgRXZlbnQgaW50ZXJmYWNlOiBuZXcgRXZlbnQoImZvbyIpIG11c3QgaW5oZXJpdCBwcm9w
ZXJ0eSAiYnViYmxlcyIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCiBQQVNTIEV2ZW50IGludGVyZmFj
ZTogbmV3IEV2ZW50KCJmb28iKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImNhbmNlbGFibGUiIHdp
dGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBFdmVudCBpbnRlcmZhY2U6IG5ldyBFdmVudCgiZm9v
IikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJyZXR1cm5WYWx1ZSIgd2l0aCB0aGUgcHJvcGVyIHR5
cGUgCiBQQVNTIEV2ZW50IGludGVyZmFjZTogbmV3IEV2ZW50KCJmb28iKSBtdXN0IGluaGVyaXQg
cHJvcGVydHkgInByZXZlbnREZWZhdWx0KCkiIHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBF
dmVudCBpbnRlcmZhY2U6IG5ldyBFdmVudCgiZm9vIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJk
ZWZhdWx0UHJldmVudGVkIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgRXZlbnQgaW50ZXJm
YWNlOiBuZXcgRXZlbnQoImZvbyIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiY29tcG9zZWQiIHdp
dGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBFdmVudCBpbnRlcmZhY2U6IG5ldyBFdmVudCgiZm9v
IikgbXVzdCBoYXZlIG93biBwcm9wZXJ0eSAiaXNUcnVzdGVkIiAKIFBBU1MgRXZlbnQgaW50ZXJm
YWNlOiBuZXcgRXZlbnQoImZvbyIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAidGltZVN0YW1wIiB3
aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgRXZlbnQgaW50ZXJmYWNlOiBuZXcgRXZlbnQoImZv
byIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiaW5pdEV2ZW50KERPTVN0cmluZywgYm9vbGVhbiwg
Ym9vbGVhbikiIHdpdGggdGhlIHByb3BlciB0eXBlIApAQCAtOTIsMTggKzEwMSwyMSBAQCBQQVNT
IEV2ZW50IGludGVyZmFjZTogbmV3IEN1c3RvbUV2ZW50KCJmb28iKSBtdXN0IGluaGVyaXQgcHJv
cGVydHkgInR5cGUiIHdpdGggdAogUEFTUyBFdmVudCBpbnRlcmZhY2U6IG5ldyBDdXN0b21FdmVu
dCgiZm9vIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJ0YXJnZXQiIHdpdGggdGhlIHByb3BlciB0
eXBlIAogUEFTUyBFdmVudCBpbnRlcmZhY2U6IG5ldyBDdXN0b21FdmVudCgiZm9vIikgbXVzdCBp
bmhlcml0IHByb3BlcnR5ICJzcmNFbGVtZW50IiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBBU1Mg
RXZlbnQgaW50ZXJmYWNlOiBuZXcgQ3VzdG9tRXZlbnQoImZvbyIpIG11c3QgaW5oZXJpdCBwcm9w
ZXJ0eSAiY3VycmVudFRhcmdldCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIEV2ZW50IGlu
dGVyZmFjZTogbmV3IEN1c3RvbUV2ZW50KCJmb28iKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImNv
bXBvc2VkUGF0aCgpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgRXZlbnQgaW50ZXJmYWNl
OiBuZXcgQ3VzdG9tRXZlbnQoImZvbyIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiTk9ORSIgd2l0
aCB0aGUgcHJvcGVyIHR5cGUgCiBQQVNTIEV2ZW50IGludGVyZmFjZTogbmV3IEN1c3RvbUV2ZW50
KCJmb28iKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgIkNBUFRVUklOR19QSEFTRSIgd2l0aCB0aGUg
cHJvcGVyIHR5cGUgCiBQQVNTIEV2ZW50IGludGVyZmFjZTogbmV3IEN1c3RvbUV2ZW50KCJmb28i
KSBtdXN0IGluaGVyaXQgcHJvcGVydHkgIkFUX1RBUkdFVCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUg
CiBQQVNTIEV2ZW50IGludGVyZmFjZTogbmV3IEN1c3RvbUV2ZW50KCJmb28iKSBtdXN0IGluaGVy
aXQgcHJvcGVydHkgIkJVQkJMSU5HX1BIQVNFIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBBU1Mg
RXZlbnQgaW50ZXJmYWNlOiBuZXcgQ3VzdG9tRXZlbnQoImZvbyIpIG11c3QgaW5oZXJpdCBwcm9w
ZXJ0eSAiZXZlbnRQaGFzZSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCiBQQVNTIEV2ZW50IGludGVy
ZmFjZTogbmV3IEN1c3RvbUV2ZW50KCJmb28iKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInN0b3BQ
cm9wYWdhdGlvbigpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgRXZlbnQgaW50ZXJmYWNl
OiBuZXcgQ3VzdG9tRXZlbnQoImZvbyIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiY2FuY2VsQnVi
YmxlIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgRXZlbnQgaW50ZXJmYWNlOiBuZXcgQ3Vz
dG9tRXZlbnQoImZvbyIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAic3RvcEltbWVkaWF0ZVByb3Bh
Z2F0aW9uKCkiIHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBFdmVudCBpbnRlcmZhY2U6IG5l
dyBDdXN0b21FdmVudCgiZm9vIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJidWJibGVzIiB3aXRo
IHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgRXZlbnQgaW50ZXJmYWNlOiBuZXcgQ3VzdG9tRXZlbnQo
ImZvbyIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiY2FuY2VsYWJsZSIgd2l0aCB0aGUgcHJvcGVy
IHR5cGUgCiBQQVNTIEV2ZW50IGludGVyZmFjZTogbmV3IEN1c3RvbUV2ZW50KCJmb28iKSBtdXN0
IGluaGVyaXQgcHJvcGVydHkgInJldHVyblZhbHVlIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBB
U1MgRXZlbnQgaW50ZXJmYWNlOiBuZXcgQ3VzdG9tRXZlbnQoImZvbyIpIG11c3QgaW5oZXJpdCBw
cm9wZXJ0eSAicHJldmVudERlZmF1bHQoKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCiBQQVNTIEV2
ZW50IGludGVyZmFjZTogbmV3IEN1c3RvbUV2ZW50KCJmb28iKSBtdXN0IGluaGVyaXQgcHJvcGVy
dHkgImRlZmF1bHRQcmV2ZW50ZWQiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBFdmVudCBp
bnRlcmZhY2U6IG5ldyBDdXN0b21FdmVudCgiZm9vIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJj
b21wb3NlZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCiBQQVNTIEV2ZW50IGludGVyZmFjZTogbmV3
IEN1c3RvbUV2ZW50KCJmb28iKSBtdXN0IGhhdmUgb3duIHByb3BlcnR5ICJpc1RydXN0ZWQiIAog
UEFTUyBFdmVudCBpbnRlcmZhY2U6IG5ldyBDdXN0b21FdmVudCgiZm9vIikgbXVzdCBpbmhlcml0
IHByb3BlcnR5ICJ0aW1lU3RhbXAiIHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBFdmVudCBp
bnRlcmZhY2U6IG5ldyBDdXN0b21FdmVudCgiZm9vIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJp
bml0RXZlbnQoRE9NU3RyaW5nLCBib29sZWFuLCBib29sZWFuKSIgd2l0aCB0aGUgcHJvcGVyIHR5
cGUgCkBAIC0xNjgsNiArMTgwLDcgQEAgUEFTUyBOb2RlTGlzdCBpbnRlcmZhY2U6IGV4aXN0ZW5j
ZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCcKIFBBU1MgTm9k
ZUxpc3QgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHBy
b3RvdHlwZSBvYmplY3QncyBAQHVuc2NvcGFibGVzIHByb3BlcnR5IAogUEFTUyBOb2RlTGlzdCBp
bnRlcmZhY2U6IG9wZXJhdGlvbiBpdGVtKHVuc2lnbmVkIGxvbmcpIAogUEFTUyBOb2RlTGlzdCBp
bnRlcmZhY2U6IGF0dHJpYnV0ZSBsZW5ndGggCitQQVNTIE5vZGVMaXN0IGludGVyZmFjZTogaXRl
cmFibGU8Tm9kZT4gCiBQQVNTIE5vZGVMaXN0IG11c3QgYmUgcHJpbWFyeSBpbnRlcmZhY2Ugb2Yg
ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgic2NyaXB0IikgCiBQQVNTIFN0cmluZ2lmaWNhdGlv
biBvZiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJzY3JpcHQiKSAKIFBBU1MgTm9kZUxpc3Qg
aW50ZXJmYWNlOiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJzY3JpcHQiKSBtdXN0IGluaGVy
aXQgcHJvcGVydHkgIml0ZW0odW5zaWduZWQgbG9uZykiIHdpdGggdGhlIHByb3BlciB0eXBlIApA
QCAtMzI4LDYgKzM0MSw5IEBAIFBBU1MgRG9jdW1lbnQgaW50ZXJmYWNlOiBvcGVyYXRpb24gcHJl
cGVuZChbb2JqZWN0IE9iamVjdF0sW29iamVjdCBPYmplY3RdKQogUEFTUyBEb2N1bWVudCBpbnRl
cmZhY2U6IG9wZXJhdGlvbiBhcHBlbmQoW29iamVjdCBPYmplY3RdLFtvYmplY3QgT2JqZWN0XSkg
CiBQQVNTIERvY3VtZW50IGludGVyZmFjZTogb3BlcmF0aW9uIHF1ZXJ5U2VsZWN0b3IoRE9NU3Ry
aW5nKSAKIFBBU1MgRG9jdW1lbnQgaW50ZXJmYWNlOiBvcGVyYXRpb24gcXVlcnlTZWxlY3RvckFs
bChET01TdHJpbmcpIAorRkFJTCBEb2N1bWVudCBpbnRlcmZhY2U6IG9wZXJhdGlvbiBjcmVhdGVF
eHByZXNzaW9uKERPTVN0cmluZywgWFBhdGhOU1Jlc29sdmVyKSBhc3NlcnRfZXF1YWxzOiBwcm9w
ZXJ0eSBoYXMgd3JvbmcgLmxlbmd0aCBleHBlY3RlZCAxIGJ1dCBnb3QgMAorUEFTUyBEb2N1bWVu
dCBpbnRlcmZhY2U6IG9wZXJhdGlvbiBjcmVhdGVOU1Jlc29sdmVyKE5vZGUpIAorRkFJTCBEb2N1
bWVudCBpbnRlcmZhY2U6IG9wZXJhdGlvbiBldmFsdWF0ZShET01TdHJpbmcsIE5vZGUsIFhQYXRo
TlNSZXNvbHZlciwgdW5zaWduZWQgc2hvcnQsIFhQYXRoUmVzdWx0KSBhc3NlcnRfZXF1YWxzOiBw
cm9wZXJ0eSBoYXMgd3JvbmcgLmxlbmd0aCBleHBlY3RlZCAyIGJ1dCBnb3QgMAogUEFTUyBEb2N1
bWVudCBtdXN0IGJlIHByaW1hcnkgaW50ZXJmYWNlIG9mIG5ldyBEb2N1bWVudCgpIAogUEFTUyBT
dHJpbmdpZmljYXRpb24gb2YgbmV3IERvY3VtZW50KCkgCiBQQVNTIERvY3VtZW50IGludGVyZmFj
ZTogbmV3IERvY3VtZW50KCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJpbXBsZW1lbnRhdGlvbiIg
d2l0aCB0aGUgcHJvcGVyIHR5cGUgCkBAIC0zODksNiArNDA1LDE2IEBAIFBBU1MgRG9jdW1lbnQg
aW50ZXJmYWNlOiBuZXcgRG9jdW1lbnQoKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInF1ZXJ5U2Vs
ZWN0b3IoRE9NCiBQQVNTIERvY3VtZW50IGludGVyZmFjZTogY2FsbGluZyBxdWVyeVNlbGVjdG9y
KERPTVN0cmluZykgb24gbmV3IERvY3VtZW50KCkgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0
IHRocm93IFR5cGVFcnJvciAKIFBBU1MgRG9jdW1lbnQgaW50ZXJmYWNlOiBuZXcgRG9jdW1lbnQo
KSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInF1ZXJ5U2VsZWN0b3JBbGwoRE9NU3RyaW5nKSIgd2l0
aCB0aGUgcHJvcGVyIHR5cGUgCiBQQVNTIERvY3VtZW50IGludGVyZmFjZTogY2FsbGluZyBxdWVy
eVNlbGVjdG9yQWxsKERPTVN0cmluZykgb24gbmV3IERvY3VtZW50KCkgd2l0aCB0b28gZmV3IGFy
Z3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKK1BBU1MgRG9jdW1lbnQgaW50ZXJmYWNlOiBu
ZXcgRG9jdW1lbnQoKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImNyZWF0ZUV4cHJlc3Npb24oRE9N
U3RyaW5nLCBYUGF0aE5TUmVzb2x2ZXIpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK0ZBSUwgRG9j
dW1lbnQgaW50ZXJmYWNlOiBjYWxsaW5nIGNyZWF0ZUV4cHJlc3Npb24oRE9NU3RyaW5nLCBYUGF0
aE5TUmVzb2x2ZXIpIG9uIG5ldyBEb2N1bWVudCgpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVz
dCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMg
ZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIGZuLmFwcGx5KG9iaiwgYXJncyk7
CisgICAgICAgIH0iIGRpZCBub3QgdGhyb3cKK1BBU1MgRG9jdW1lbnQgaW50ZXJmYWNlOiBuZXcg
RG9jdW1lbnQoKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImNyZWF0ZU5TUmVzb2x2ZXIoTm9kZSki
IHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBEb2N1bWVudCBpbnRlcmZhY2U6IGNhbGxpbmcg
Y3JlYXRlTlNSZXNvbHZlcihOb2RlKSBvbiBuZXcgRG9jdW1lbnQoKSB3aXRoIHRvbyBmZXcgYXJn
dW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAorUEFTUyBEb2N1bWVudCBpbnRlcmZhY2U6IG5l
dyBEb2N1bWVudCgpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiZXZhbHVhdGUoRE9NU3RyaW5nLCBO
b2RlLCBYUGF0aE5TUmVzb2x2ZXIsIHVuc2lnbmVkIHNob3J0LCBYUGF0aFJlc3VsdCkiIHdpdGgg
dGhlIHByb3BlciB0eXBlIAorRkFJTCBEb2N1bWVudCBpbnRlcmZhY2U6IGNhbGxpbmcgZXZhbHVh
dGUoRE9NU3RyaW5nLCBOb2RlLCBYUGF0aE5TUmVzb2x2ZXIsIHVuc2lnbmVkIHNob3J0LCBYUGF0
aFJlc3VsdCkgb24gbmV3IERvY3VtZW50KCkgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRo
cm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5j
dGlvbiAiZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgZm4uYXBwbHkob2JqLCBhcmdzKTsKKyAg
ICAgICAgfSIgdGhyZXcgb2JqZWN0ICJOb3RTdXBwb3J0ZWRFcnJvcjogVGhlIG9wZXJhdGlvbiBp
cyBub3Qgc3VwcG9ydGVkLiIgKCJOb3RTdXBwb3J0ZWRFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAi
VHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCiBQQVNTIE5vZGUgaW50ZXJmYWNlOiBuZXcgRG9jdW1l
bnQoKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgIkVMRU1FTlRfTk9ERSIgd2l0aCB0aGUgcHJvcGVy
IHR5cGUgCiBQQVNTIE5vZGUgaW50ZXJmYWNlOiBuZXcgRG9jdW1lbnQoKSBtdXN0IGluaGVyaXQg
cHJvcGVydHkgIkFUVFJJQlVURV9OT0RFIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgTm9k
ZSBpbnRlcmZhY2U6IG5ldyBEb2N1bWVudCgpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiVEVYVF9O
T0RFIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKQEAgLTUyMiw2ICs1NDgsMTYgQEAgUEFTUyBEb2N1
bWVudCBpbnRlcmZhY2U6IHhtbERvYyBtdXN0IGluaGVyaXQgcHJvcGVydHkgInF1ZXJ5U2VsZWN0
b3IoRE9NU3RyaW5nKSIKIFBBU1MgRG9jdW1lbnQgaW50ZXJmYWNlOiBjYWxsaW5nIHF1ZXJ5U2Vs
ZWN0b3IoRE9NU3RyaW5nKSBvbiB4bWxEb2Mgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRo
cm93IFR5cGVFcnJvciAKIFBBU1MgRG9jdW1lbnQgaW50ZXJmYWNlOiB4bWxEb2MgbXVzdCBpbmhl
cml0IHByb3BlcnR5ICJxdWVyeVNlbGVjdG9yQWxsKERPTVN0cmluZykiIHdpdGggdGhlIHByb3Bl
ciB0eXBlIAogUEFTUyBEb2N1bWVudCBpbnRlcmZhY2U6IGNhbGxpbmcgcXVlcnlTZWxlY3RvckFs
bChET01TdHJpbmcpIG9uIHhtbERvYyB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cg
VHlwZUVycm9yIAorUEFTUyBEb2N1bWVudCBpbnRlcmZhY2U6IHhtbERvYyBtdXN0IGluaGVyaXQg
cHJvcGVydHkgImNyZWF0ZUV4cHJlc3Npb24oRE9NU3RyaW5nLCBYUGF0aE5TUmVzb2x2ZXIpIiB3
aXRoIHRoZSBwcm9wZXIgdHlwZSAKK0ZBSUwgRG9jdW1lbnQgaW50ZXJmYWNlOiBjYWxsaW5nIGNy
ZWF0ZUV4cHJlc3Npb24oRE9NU3RyaW5nLCBYUGF0aE5TUmVzb2x2ZXIpIG9uIHhtbERvYyB3aXRo
IHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENh
bGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7CisgICAgICAgICAg
ICBmbi5hcHBseShvYmosIGFyZ3MpOworICAgICAgICB9IiBkaWQgbm90IHRocm93CitQQVNTIERv
Y3VtZW50IGludGVyZmFjZTogeG1sRG9jIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiY3JlYXRlTlNS
ZXNvbHZlcihOb2RlKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIERvY3VtZW50IGludGVy
ZmFjZTogY2FsbGluZyBjcmVhdGVOU1Jlc29sdmVyKE5vZGUpIG9uIHhtbERvYyB3aXRoIHRvbyBm
ZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAorUEFTUyBEb2N1bWVudCBpbnRlcmZh
Y2U6IHhtbERvYyBtdXN0IGluaGVyaXQgcHJvcGVydHkgImV2YWx1YXRlKERPTVN0cmluZywgTm9k
ZSwgWFBhdGhOU1Jlc29sdmVyLCB1bnNpZ25lZCBzaG9ydCwgWFBhdGhSZXN1bHQpIiB3aXRoIHRo
ZSBwcm9wZXIgdHlwZSAKK0ZBSUwgRG9jdW1lbnQgaW50ZXJmYWNlOiBjYWxsaW5nIGV2YWx1YXRl
KERPTVN0cmluZywgTm9kZSwgWFBhdGhOU1Jlc29sdmVyLCB1bnNpZ25lZCBzaG9ydCwgWFBhdGhS
ZXN1bHQpIG9uIHhtbERvYyB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVy
cm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5j
dGlvbiAoKSB7CisgICAgICAgICAgICBmbi5hcHBseShvYmosIGFyZ3MpOworICAgICAgICB9IiB0
aHJldyBvYmplY3QgIk5vdFN1cHBvcnRlZEVycm9yOiBUaGUgb3BlcmF0aW9uIGlzIG5vdCBzdXBw
b3J0ZWQuIiAoIk5vdFN1cHBvcnRlZEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3Ii
ICgiVHlwZUVycm9yIikKIFBBU1MgTm9kZSBpbnRlcmZhY2U6IHhtbERvYyBtdXN0IGluaGVyaXQg
cHJvcGVydHkgIkVMRU1FTlRfTk9ERSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCiBQQVNTIE5vZGUg
aW50ZXJmYWNlOiB4bWxEb2MgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJBVFRSSUJVVEVfTk9ERSIg
d2l0aCB0aGUgcHJvcGVyIHR5cGUgCiBQQVNTIE5vZGUgaW50ZXJmYWNlOiB4bWxEb2MgbXVzdCBp
bmhlcml0IHByb3BlcnR5ICJURVhUX05PREUiIHdpdGggdGhlIHByb3BlciB0eXBlIApAQCAtODI2
LDYgKzg2Miw3IEBAIFBBU1MgRWxlbWVudCBpbnRlcmZhY2U6IG9wZXJhdGlvbiBzZXRBdHRyaWJ1
dGUoRE9NU3RyaW5nLCBET01TdHJpbmcpCiBQQVNTIEVsZW1lbnQgaW50ZXJmYWNlOiBvcGVyYXRp
b24gc2V0QXR0cmlidXRlTlMoRE9NU3RyaW5nLCBET01TdHJpbmcsIERPTVN0cmluZykgCiBQQVNT
IEVsZW1lbnQgaW50ZXJmYWNlOiBvcGVyYXRpb24gcmVtb3ZlQXR0cmlidXRlKERPTVN0cmluZykg
CiBQQVNTIEVsZW1lbnQgaW50ZXJmYWNlOiBvcGVyYXRpb24gcmVtb3ZlQXR0cmlidXRlTlMoRE9N
U3RyaW5nLCBET01TdHJpbmcpIAorUEFTUyBFbGVtZW50IGludGVyZmFjZTogb3BlcmF0aW9uIHRv
Z2dsZUF0dHJpYnV0ZShET01TdHJpbmcsIGJvb2xlYW4pIAogUEFTUyBFbGVtZW50IGludGVyZmFj
ZTogb3BlcmF0aW9uIGhhc0F0dHJpYnV0ZShET01TdHJpbmcpIAogUEFTUyBFbGVtZW50IGludGVy
ZmFjZTogb3BlcmF0aW9uIGhhc0F0dHJpYnV0ZU5TKERPTVN0cmluZywgRE9NU3RyaW5nKSAKIFBB
U1MgRWxlbWVudCBpbnRlcmZhY2U6IG9wZXJhdGlvbiBnZXRBdHRyaWJ1dGVOb2RlKERPTVN0cmlu
ZykgCkBAIC04ODMsNiArOTIwLDggQEAgUEFTUyBFbGVtZW50IGludGVyZmFjZTogZWxlbWVudCBt
dXN0IGluaGVyaXQgcHJvcGVydHkgInJlbW92ZUF0dHJpYnV0ZShET01TdHJpbmcKIFBBU1MgRWxl
bWVudCBpbnRlcmZhY2U6IGNhbGxpbmcgcmVtb3ZlQXR0cmlidXRlKERPTVN0cmluZykgb24gZWxl
bWVudCB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAogUEFTUyBF
bGVtZW50IGludGVyZmFjZTogZWxlbWVudCBtdXN0IGluaGVyaXQgcHJvcGVydHkgInJlbW92ZUF0
dHJpYnV0ZU5TKERPTVN0cmluZywgRE9NU3RyaW5nKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCiBQ
QVNTIEVsZW1lbnQgaW50ZXJmYWNlOiBjYWxsaW5nIHJlbW92ZUF0dHJpYnV0ZU5TKERPTVN0cmlu
ZywgRE9NU3RyaW5nKSBvbiBlbGVtZW50IHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJv
dyBUeXBlRXJyb3IgCitQQVNTIEVsZW1lbnQgaW50ZXJmYWNlOiBlbGVtZW50IG11c3QgaW5oZXJp
dCBwcm9wZXJ0eSAidG9nZ2xlQXR0cmlidXRlKERPTVN0cmluZywgYm9vbGVhbikiIHdpdGggdGhl
IHByb3BlciB0eXBlIAorUEFTUyBFbGVtZW50IGludGVyZmFjZTogY2FsbGluZyB0b2dnbGVBdHRy
aWJ1dGUoRE9NU3RyaW5nLCBib29sZWFuKSBvbiBlbGVtZW50IHdpdGggdG9vIGZldyBhcmd1bWVu
dHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCiBQQVNTIEVsZW1lbnQgaW50ZXJmYWNlOiBlbGVtZW50
IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiaGFzQXR0cmlidXRlKERPTVN0cmluZykiIHdpdGggdGhl
IHByb3BlciB0eXBlIAogUEFTUyBFbGVtZW50IGludGVyZmFjZTogY2FsbGluZyBoYXNBdHRyaWJ1
dGUoRE9NU3RyaW5nKSBvbiBlbGVtZW50IHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJv
dyBUeXBlRXJyb3IgCiBQQVNTIEVsZW1lbnQgaW50ZXJmYWNlOiBlbGVtZW50IG11c3QgaW5oZXJp
dCBwcm9wZXJ0eSAiaGFzQXR0cmlidXRlTlMoRE9NU3RyaW5nLCBET01TdHJpbmcpIiB3aXRoIHRo
ZSBwcm9wZXIgdHlwZSAKQEAgLTE0MzYsMTYgKzE0NzUsMTYgQEAgRkFJTCBBYnN0cmFjdFJhbmdl
IGludGVyZmFjZTogYXR0cmlidXRlIHN0YXJ0T2Zmc2V0IGFzc2VydF9vd25fcHJvcGVydHk6IHNl
bGYgZG8KIEZBSUwgQWJzdHJhY3RSYW5nZSBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBlbmRDb250YWlu
ZXIgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAi
QWJzdHJhY3RSYW5nZSIgZXhwZWN0ZWQgcHJvcGVydHkgIkFic3RyYWN0UmFuZ2UiIG1pc3NpbmcK
IEZBSUwgQWJzdHJhY3RSYW5nZSBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBlbmRPZmZzZXQgYXNzZXJ0
X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiQWJzdHJhY3RS
YW5nZSIgZXhwZWN0ZWQgcHJvcGVydHkgIkFic3RyYWN0UmFuZ2UiIG1pc3NpbmcKIEZBSUwgQWJz
dHJhY3RSYW5nZSBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBjb2xsYXBzZWQgYXNzZXJ0X293bl9wcm9w
ZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiQWJzdHJhY3RSYW5nZSIgZXhw
ZWN0ZWQgcHJvcGVydHkgIkFic3RyYWN0UmFuZ2UiIG1pc3NpbmcKLUZBSUwgU3RhdGljUmFuZ2Ug
aW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCBh
c3NlcnRfb3duX3Byb3BlcnR5OiBzaG91bGQgaW5oZXJpdCBmcm9tIEFic3RyYWN0UmFuZ2UsIGJ1
dCBzZWxmIGhhcyBubyBzdWNoIHByb3BlcnR5IGV4cGVjdGVkIHByb3BlcnR5ICJBYnN0cmFjdFJh
bmdlIiBtaXNzaW5nCi1GQUlMIFN0YXRpY1JhbmdlIGludGVyZmFjZSBvYmplY3QgbGVuZ3RoIGFz
c2VydF9lcXVhbHM6IHdyb25nIHZhbHVlIGZvciBTdGF0aWNSYW5nZS5sZW5ndGggZXhwZWN0ZWQg
MCBidXQgZ290IDEKK0ZBSUwgU3RhdGljUmFuZ2UgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHBy
b3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRv
ZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJBYnN0cmFjdFJhbmdlIiBleHBlY3RlZCBwcm9wZXJ0
eSAiQWJzdHJhY3RSYW5nZSIgbWlzc2luZworUEFTUyBTdGF0aWNSYW5nZSBpbnRlcmZhY2Ugb2Jq
ZWN0IGxlbmd0aCAKIFBBU1MgU3RhdGljUmFuZ2UgaW50ZXJmYWNlIG9iamVjdCBuYW1lIAotRkFJ
TCBTdGF0aWNSYW5nZSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRl
cmZhY2UgcHJvdG90eXBlIG9iamVjdCBhc3NlcnRfb3duX3Byb3BlcnR5OiBzaG91bGQgaW5oZXJp
dCBmcm9tIEFic3RyYWN0UmFuZ2UsIGJ1dCBzZWxmIGhhcyBubyBzdWNoIHByb3BlcnR5IGV4cGVj
dGVkIHByb3BlcnR5ICJBYnN0cmFjdFJhbmdlIiBtaXNzaW5nCitGQUlMIFN0YXRpY1JhbmdlIGlu
dGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUg
b2JqZWN0IGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVy
dHkgIkFic3RyYWN0UmFuZ2UiIGV4cGVjdGVkIHByb3BlcnR5ICJBYnN0cmFjdFJhbmdlIiBtaXNz
aW5nCiBQQVNTIFN0YXRpY1JhbmdlIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVz
IG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgImNvbnN0cnVjdG9yIiBwcm9wZXJ0eSAK
IFBBU1MgU3RhdGljUmFuZ2UgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2Yg
aW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyBAQHVuc2NvcGFibGVzIHByb3BlcnR5IAotRkFJ
TCBSYW5nZSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ug
b2JqZWN0IGFzc2VydF9vd25fcHJvcGVydHk6IHNob3VsZCBpbmhlcml0IGZyb20gQWJzdHJhY3RS
YW5nZSwgYnV0IHNlbGYgaGFzIG5vIHN1Y2ggcHJvcGVydHkgZXhwZWN0ZWQgcHJvcGVydHkgIkFi
c3RyYWN0UmFuZ2UiIG1pc3NpbmcKK0ZBSUwgUmFuZ2UgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5k
IHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxm
IGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJBYnN0cmFjdFJhbmdlIiBleHBlY3RlZCBwcm9w
ZXJ0eSAiQWJzdHJhY3RSYW5nZSIgbWlzc2luZwogUEFTUyBSYW5nZSBpbnRlcmZhY2Ugb2JqZWN0
IGxlbmd0aCAKIFBBU1MgUmFuZ2UgaW50ZXJmYWNlIG9iamVjdCBuYW1lIAotRkFJTCBSYW5nZSBp
bnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBl
IG9iamVjdCBhc3NlcnRfb3duX3Byb3BlcnR5OiBzaG91bGQgaW5oZXJpdCBmcm9tIEFic3RyYWN0
UmFuZ2UsIGJ1dCBzZWxmIGhhcyBubyBzdWNoIHByb3BlcnR5IGV4cGVjdGVkIHByb3BlcnR5ICJB
YnN0cmFjdFJhbmdlIiBtaXNzaW5nCitGQUlMIFJhbmdlIGludGVyZmFjZTogZXhpc3RlbmNlIGFu
ZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IGFzc2VydF9vd25fcHJv
cGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIkFic3RyYWN0UmFuZ2UiIGV4
cGVjdGVkIHByb3BlcnR5ICJBYnN0cmFjdFJhbmdlIiBtaXNzaW5nCiBQQVNTIFJhbmdlIGludGVy
ZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2Jq
ZWN0J3MgImNvbnN0cnVjdG9yIiBwcm9wZXJ0eSAKIFBBU1MgUmFuZ2UgaW50ZXJmYWNlOiBleGlz
dGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyBAQHVu
c2NvcGFibGVzIHByb3BlcnR5IAogUEFTUyBSYW5nZSBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBjb21t
b25BbmNlc3RvckNvbnRhaW5lciAKQEAgLTE2ODAsNiArMTcxOSw3IEBAIFBBU1MgRE9NVG9rZW5M
aXN0IGludGVyZmFjZTogb3BlcmF0aW9uIHJlcGxhY2UoRE9NU3RyaW5nLCBET01TdHJpbmcpCiBQ
QVNTIERPTVRva2VuTGlzdCBpbnRlcmZhY2U6IG9wZXJhdGlvbiBzdXBwb3J0cyhET01TdHJpbmcp
IAogUEFTUyBET01Ub2tlbkxpc3QgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgdmFsdWUgCiBQQVNTIERP
TVRva2VuTGlzdCBpbnRlcmZhY2U6IHN0cmluZ2lmaWVyIAorUEFTUyBET01Ub2tlbkxpc3QgaW50
ZXJmYWNlOiBpdGVyYWJsZTxET01TdHJpbmc+IAogUEFTUyBET01Ub2tlbkxpc3QgbXVzdCBiZSBw
cmltYXJ5IGludGVyZmFjZSBvZiBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdCAKIFBBU1MgU3RyaW5n
aWZpY2F0aW9uIG9mIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0IAogUEFTUyBET01Ub2tlbkxpc3Qg
aW50ZXJmYWNlOiBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdCBtdXN0IGluaGVyaXQgcHJvcGVydHkg
Imxlbmd0aCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCkBAIC0xNjk4LDUgKzE3MzgsNjEgQEAgUEFT
UyBET01Ub2tlbkxpc3QgaW50ZXJmYWNlOiBjYWxsaW5nIHJlcGxhY2UoRE9NU3RyaW5nLCBET01T
dHJpbmcpIG9uIGRvY3VtZW50LmIKIFBBU1MgRE9NVG9rZW5MaXN0IGludGVyZmFjZTogZG9jdW1l
bnQuYm9keS5jbGFzc0xpc3QgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJzdXBwb3J0cyhET01TdHJp
bmcpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgRE9NVG9rZW5MaXN0IGludGVyZmFjZTog
Y2FsbGluZyBzdXBwb3J0cyhET01TdHJpbmcpIG9uIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0IHdp
dGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCiBQQVNTIERPTVRva2Vu
TGlzdCBpbnRlcmZhY2U6IGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0IG11c3QgaW5oZXJpdCBwcm9w
ZXJ0eSAidmFsdWUiIHdpdGggdGhlIHByb3BlciB0eXBlIAotUEFTUyBXb3JrZXJHbG9iYWxTY29w
ZSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0
IAorUEFTUyBYUGF0aFJlc3VsdCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBv
ZiBpbnRlcmZhY2Ugb2JqZWN0IAorUEFTUyBYUGF0aFJlc3VsdCBpbnRlcmZhY2Ugb2JqZWN0IGxl
bmd0aCAKK1BBU1MgWFBhdGhSZXN1bHQgaW50ZXJmYWNlIG9iamVjdCBuYW1lIAorUEFTUyBYUGF0
aFJlc3VsdCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ug
cHJvdG90eXBlIG9iamVjdCAKK1BBU1MgWFBhdGhSZXN1bHQgaW50ZXJmYWNlOiBleGlzdGVuY2Ug
YW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyAiY29uc3RydWN0
b3IiIHByb3BlcnR5IAorUEFTUyBYUGF0aFJlc3VsdCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQg
cHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzIEBAdW5zY29wYWJsZXMg
cHJvcGVydHkgCitQQVNTIFhQYXRoUmVzdWx0IGludGVyZmFjZTogY29uc3RhbnQgQU5ZX1RZUEUg
b24gaW50ZXJmYWNlIG9iamVjdCAKK1BBU1MgWFBhdGhSZXN1bHQgaW50ZXJmYWNlOiBjb25zdGFu
dCBBTllfVFlQRSBvbiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCAKK1BBU1MgWFBhdGhSZXN1
bHQgaW50ZXJmYWNlOiBjb25zdGFudCBOVU1CRVJfVFlQRSBvbiBpbnRlcmZhY2Ugb2JqZWN0IAor
UEFTUyBYUGF0aFJlc3VsdCBpbnRlcmZhY2U6IGNvbnN0YW50IE5VTUJFUl9UWVBFIG9uIGludGVy
ZmFjZSBwcm90b3R5cGUgb2JqZWN0IAorUEFTUyBYUGF0aFJlc3VsdCBpbnRlcmZhY2U6IGNvbnN0
YW50IFNUUklOR19UWVBFIG9uIGludGVyZmFjZSBvYmplY3QgCitQQVNTIFhQYXRoUmVzdWx0IGlu
dGVyZmFjZTogY29uc3RhbnQgU1RSSU5HX1RZUEUgb24gaW50ZXJmYWNlIHByb3RvdHlwZSBvYmpl
Y3QgCitQQVNTIFhQYXRoUmVzdWx0IGludGVyZmFjZTogY29uc3RhbnQgQk9PTEVBTl9UWVBFIG9u
IGludGVyZmFjZSBvYmplY3QgCitQQVNTIFhQYXRoUmVzdWx0IGludGVyZmFjZTogY29uc3RhbnQg
Qk9PTEVBTl9UWVBFIG9uIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IAorUEFTUyBYUGF0aFJl
c3VsdCBpbnRlcmZhY2U6IGNvbnN0YW50IFVOT1JERVJFRF9OT0RFX0lURVJBVE9SX1RZUEUgb24g
aW50ZXJmYWNlIG9iamVjdCAKK1BBU1MgWFBhdGhSZXN1bHQgaW50ZXJmYWNlOiBjb25zdGFudCBV
Tk9SREVSRURfTk9ERV9JVEVSQVRPUl9UWVBFIG9uIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0
IAorUEFTUyBYUGF0aFJlc3VsdCBpbnRlcmZhY2U6IGNvbnN0YW50IE9SREVSRURfTk9ERV9JVEVS
QVRPUl9UWVBFIG9uIGludGVyZmFjZSBvYmplY3QgCitQQVNTIFhQYXRoUmVzdWx0IGludGVyZmFj
ZTogY29uc3RhbnQgT1JERVJFRF9OT0RFX0lURVJBVE9SX1RZUEUgb24gaW50ZXJmYWNlIHByb3Rv
dHlwZSBvYmplY3QgCitQQVNTIFhQYXRoUmVzdWx0IGludGVyZmFjZTogY29uc3RhbnQgVU5PUkRF
UkVEX05PREVfU05BUFNIT1RfVFlQRSBvbiBpbnRlcmZhY2Ugb2JqZWN0IAorUEFTUyBYUGF0aFJl
c3VsdCBpbnRlcmZhY2U6IGNvbnN0YW50IFVOT1JERVJFRF9OT0RFX1NOQVBTSE9UX1RZUEUgb24g
aW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgCitQQVNTIFhQYXRoUmVzdWx0IGludGVyZmFjZTog
Y29uc3RhbnQgT1JERVJFRF9OT0RFX1NOQVBTSE9UX1RZUEUgb24gaW50ZXJmYWNlIG9iamVjdCAK
K1BBU1MgWFBhdGhSZXN1bHQgaW50ZXJmYWNlOiBjb25zdGFudCBPUkRFUkVEX05PREVfU05BUFNI
T1RfVFlQRSBvbiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCAKK1BBU1MgWFBhdGhSZXN1bHQg
aW50ZXJmYWNlOiBjb25zdGFudCBBTllfVU5PUkRFUkVEX05PREVfVFlQRSBvbiBpbnRlcmZhY2Ug
b2JqZWN0IAorUEFTUyBYUGF0aFJlc3VsdCBpbnRlcmZhY2U6IGNvbnN0YW50IEFOWV9VTk9SREVS
RURfTk9ERV9UWVBFIG9uIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IAorUEFTUyBYUGF0aFJl
c3VsdCBpbnRlcmZhY2U6IGNvbnN0YW50IEZJUlNUX09SREVSRURfTk9ERV9UWVBFIG9uIGludGVy
ZmFjZSBvYmplY3QgCitQQVNTIFhQYXRoUmVzdWx0IGludGVyZmFjZTogY29uc3RhbnQgRklSU1Rf
T1JERVJFRF9OT0RFX1RZUEUgb24gaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgCitQQVNTIFhQ
YXRoUmVzdWx0IGludGVyZmFjZTogYXR0cmlidXRlIHJlc3VsdFR5cGUgCitQQVNTIFhQYXRoUmVz
dWx0IGludGVyZmFjZTogYXR0cmlidXRlIG51bWJlclZhbHVlIAorUEFTUyBYUGF0aFJlc3VsdCBp
bnRlcmZhY2U6IGF0dHJpYnV0ZSBzdHJpbmdWYWx1ZSAKK1BBU1MgWFBhdGhSZXN1bHQgaW50ZXJm
YWNlOiBhdHRyaWJ1dGUgYm9vbGVhblZhbHVlIAorUEFTUyBYUGF0aFJlc3VsdCBpbnRlcmZhY2U6
IGF0dHJpYnV0ZSBzaW5nbGVOb2RlVmFsdWUgCitQQVNTIFhQYXRoUmVzdWx0IGludGVyZmFjZTog
YXR0cmlidXRlIGludmFsaWRJdGVyYXRvclN0YXRlIAorUEFTUyBYUGF0aFJlc3VsdCBpbnRlcmZh
Y2U6IGF0dHJpYnV0ZSBzbmFwc2hvdExlbmd0aCAKK1BBU1MgWFBhdGhSZXN1bHQgaW50ZXJmYWNl
OiBvcGVyYXRpb24gaXRlcmF0ZU5leHQoKSAKK0ZBSUwgWFBhdGhSZXN1bHQgaW50ZXJmYWNlOiBv
cGVyYXRpb24gc25hcHNob3RJdGVtKHVuc2lnbmVkIGxvbmcpIGFzc2VydF9lcXVhbHM6IHByb3Bl
cnR5IGhhcyB3cm9uZyAubGVuZ3RoIGV4cGVjdGVkIDEgYnV0IGdvdCAwCitQQVNTIFhQYXRoRXhw
cmVzc2lvbiBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ug
b2JqZWN0IAorUEFTUyBYUGF0aEV4cHJlc3Npb24gaW50ZXJmYWNlIG9iamVjdCBsZW5ndGggCitQ
QVNTIFhQYXRoRXhwcmVzc2lvbiBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUgCitQQVNTIFhQYXRoRXhw
cmVzc2lvbiBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ug
cHJvdG90eXBlIG9iamVjdCAKK1BBU1MgWFBhdGhFeHByZXNzaW9uIGludGVyZmFjZTogZXhpc3Rl
bmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgImNvbnN0
cnVjdG9yIiBwcm9wZXJ0eSAKK1BBU1MgWFBhdGhFeHByZXNzaW9uIGludGVyZmFjZTogZXhpc3Rl
bmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgQEB1bnNj
b3BhYmxlcyBwcm9wZXJ0eSAKK0ZBSUwgWFBhdGhFeHByZXNzaW9uIGludGVyZmFjZTogb3BlcmF0
aW9uIGV2YWx1YXRlKE5vZGUsIHVuc2lnbmVkIHNob3J0LCBYUGF0aFJlc3VsdCkgYXNzZXJ0X2Vx
dWFsczogcHJvcGVydHkgaGFzIHdyb25nIC5sZW5ndGggZXhwZWN0ZWQgMSBidXQgZ290IDAKK1BB
U1MgWFBhdGhOU1Jlc29sdmVyIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9m
IGludGVyZmFjZSBvYmplY3QgCitQQVNTIFhQYXRoTlNSZXNvbHZlciBpbnRlcmZhY2U6IGV4aXN0
ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCAKK1BBU1Mg
WFBhdGhOU1Jlc29sdmVyIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGlu
dGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgImNvbnN0cnVjdG9yIiBwcm9wZXJ0eSAKK1BBU1Mg
WFBhdGhOU1Jlc29sdmVyIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGlu
dGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgQEB1bnNjb3BhYmxlcyBwcm9wZXJ0eSAKK1BBU1Mg
WFBhdGhOU1Jlc29sdmVyIGludGVyZmFjZTogb3BlcmF0aW9uIGxvb2t1cE5hbWVzcGFjZVVSSShE
T01TdHJpbmcpIAorUEFTUyBYUGF0aEV2YWx1YXRvciBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQg
cHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IAorUEFTUyBYUGF0aEV2YWx1YXRvciBpbnRl
cmZhY2Ugb2JqZWN0IGxlbmd0aCAKK1BBU1MgWFBhdGhFdmFsdWF0b3IgaW50ZXJmYWNlIG9iamVj
dCBuYW1lIAorUEFTUyBYUGF0aEV2YWx1YXRvciBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJv
cGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCAKK1BBU1MgWFBhdGhFdmFsdWF0
b3IgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3Rv
dHlwZSBvYmplY3QncyAiY29uc3RydWN0b3IiIHByb3BlcnR5IAorUEFTUyBYUGF0aEV2YWx1YXRv
ciBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90
eXBlIG9iamVjdCdzIEBAdW5zY29wYWJsZXMgcHJvcGVydHkgCitGQUlMIFhQYXRoRXZhbHVhdG9y
IGludGVyZmFjZTogb3BlcmF0aW9uIGNyZWF0ZUV4cHJlc3Npb24oRE9NU3RyaW5nLCBYUGF0aE5T
UmVzb2x2ZXIpIGFzc2VydF9lcXVhbHM6IHByb3BlcnR5IGhhcyB3cm9uZyAubGVuZ3RoIGV4cGVj
dGVkIDEgYnV0IGdvdCAwCitGQUlMIFhQYXRoRXZhbHVhdG9yIGludGVyZmFjZTogb3BlcmF0aW9u
IGNyZWF0ZU5TUmVzb2x2ZXIoTm9kZSkgYXNzZXJ0X2VxdWFsczogcHJvcGVydHkgaGFzIHdyb25n
IC5sZW5ndGggZXhwZWN0ZWQgMSBidXQgZ290IDAKK0ZBSUwgWFBhdGhFdmFsdWF0b3IgaW50ZXJm
YWNlOiBvcGVyYXRpb24gZXZhbHVhdGUoRE9NU3RyaW5nLCBOb2RlLCBYUGF0aE5TUmVzb2x2ZXIs
IHVuc2lnbmVkIHNob3J0LCBYUGF0aFJlc3VsdCkgYXNzZXJ0X2VxdWFsczogcHJvcGVydHkgaGFz
IHdyb25nIC5sZW5ndGggZXhwZWN0ZWQgMiBidXQgZ290IDAKK1BBU1MgV2luZG93IGludGVyZmFj
ZTogYXR0cmlidXRlIGV2ZW50IAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbXBhcnNpbmcvaW50ZXJmYWNlcy5hbnkud29ya2VyLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZG9tcGFyc2luZy9pbnRlcmZhY2VzLmFueS53b3JrZXItZXhwZWN0ZWQudHh0CmluZGV4IDE0YzJl
ZDk1ODFmMWEwOGRlMGMxMmYzMmUyOWM1Njg1OTViY2RiZDUuLjhlZmY5OTQ3OGJhYTI3NDllN2Yz
Y2Y5OTlmZmU1NzQ2YmFmMTM5MjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tcGFyc2luZy9pbnRlcmZhY2VzLmFueS53b3JrZXItZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZG9tcGFyc2luZy9pbnRlcmZhY2VzLmFueS53b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0xMSwx
NiArMTEsMTIgQEAgRkFJTCBYTUxTZXJpYWxpemVyIG11c3QgYmUgcHJpbWFyeSBpbnRlcmZhY2Ug
b2YgbmV3IFhNTFNlcmlhbGl6ZXIoKSBhc3NlcnRfZXF1YWwKIEZBSUwgU3RyaW5naWZpY2F0aW9u
IG9mIG5ldyBYTUxTZXJpYWxpemVyKCkgYXNzZXJ0X2VxdWFsczogVW5leHBlY3RlZCBleGNlcHRp
b24gd2hlbiBldmFsdWF0aW5nIG9iamVjdCBleHBlY3RlZCBudWxsIGJ1dCBnb3Qgb2JqZWN0ICJS
ZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogWE1MU2VyaWFsaXplciIKIEZBSUwg
WE1MU2VyaWFsaXplciBpbnRlcmZhY2U6IG5ldyBYTUxTZXJpYWxpemVyKCkgbXVzdCBub3QgaGF2
ZSBwcm9wZXJ0eSAic2VyaWFsaXplVG9TdHJpbmciIGFzc2VydF9lcXVhbHM6IFVuZXhwZWN0ZWQg
ZXhjZXB0aW9uIHdoZW4gZXZhbHVhdGluZyBvYmplY3QgZXhwZWN0ZWQgbnVsbCBidXQgZ290IG9i
amVjdCAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IFhNTFNlcmlhbGl6ZXIi
CiBQQVNTIE5vZGUgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJm
YWNlIG9iamVjdCAKLVBBU1MgRG9jdW1lbnQgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3Bl
cnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCAKLVBBU1MgRG9jdW1lbnRUeXBlIGludGVyZmFjZTog
ZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgCiBQQVNTIERvY3Vt
ZW50RnJhZ21lbnQgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJm
YWNlIG9iamVjdCAKIFBBU1MgU2hhZG93Um9vdCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJv
cGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IAogUEFTUyBFbGVtZW50IGludGVyZmFjZTogZXhp
c3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgCiBGQUlMIEVsZW1lbnQg
aW50ZXJmYWNlOiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSBtdXN0IG5vdCBoYXZlIHBy
b3BlcnR5ICJvdXRlckhUTUwiIGFzc2VydF9lcXVhbHM6IFVuZXhwZWN0ZWQgZXhjZXB0aW9uIHdo
ZW4gZXZhbHVhdGluZyBvYmplY3QgZXhwZWN0ZWQgbnVsbCBidXQgZ290IG9iamVjdCAiUmVmZXJl
bmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IGRvY3VtZW50IgogRkFJTCBFbGVtZW50IGlu
dGVyZmFjZTogZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikgbXVzdCBub3QgaGF2ZSBwcm9w
ZXJ0eSAiaW5zZXJ0QWRqYWNlbnRIVE1MIiBhc3NlcnRfZXF1YWxzOiBVbmV4cGVjdGVkIGV4Y2Vw
dGlvbiB3aGVuIGV2YWx1YXRpbmcgb2JqZWN0IGV4cGVjdGVkIG51bGwgYnV0IGdvdCBvYmplY3Qg
IlJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBkb2N1bWVudCIKIEZBSUwgRWxl
bWVudCBpbnRlcmZhY2U6IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpIG11c3Qgbm90IGhh
dmUgcHJvcGVydHkgImlubmVySFRNTCIgYXNzZXJ0X2VxdWFsczogVW5leHBlY3RlZCBleGNlcHRp
b24gd2hlbiBldmFsdWF0aW5nIG9iamVjdCBleHBlY3RlZCBudWxsIGJ1dCBnb3Qgb2JqZWN0ICJS
ZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogZG9jdW1lbnQiCi1QQVNTIENoYXJh
Y3RlckRhdGEgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNl
IG9iamVjdCAKLVBBU1MgVGV4dCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBv
ZiBpbnRlcmZhY2Ugb2JqZWN0IAogUEFTUyBBYnN0cmFjdFJhbmdlIGludGVyZmFjZTogZXhpc3Rl
bmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgCiBQQVNTIFJhbmdlIGludGVy
ZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgCiBGQUlM
IFJhbmdlIGludGVyZmFjZTogbmV3IFJhbmdlKCkgbXVzdCBub3QgaGF2ZSBwcm9wZXJ0eSAiY3Jl
YXRlQ29udGV4dHVhbEZyYWdtZW50IiBhc3NlcnRfZXF1YWxzOiBVbmV4cGVjdGVkIGV4Y2VwdGlv
biB3aGVuIGV2YWx1YXRpbmcgb2JqZWN0IGV4cGVjdGVkIG51bGwgYnV0IGdvdCBvYmplY3QgIlJl
ZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBSYW5nZSIKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZXZlbnRzb3VyY2UvaW50
ZXJmYWNlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2V2ZW50c291cmNlL2ludGVyZmFjZXMtZXhwZWN0ZWQudHh0CmluZGV4IGJhZDMw
YWRmZjYwZjNiMjYwMzcxNjQ3MDFhNmFkODBlZmE4OWRmZTguLjAzNmVlZGRhNWVkZDAxYzM1YmM2
ZTk3ODU0NzhhNzM5ZTA1NmY1MzkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZXZlbnRzb3VyY2UvaW50ZXJmYWNlcy1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9ldmVudHNv
dXJjZS9pbnRlcmZhY2VzLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDMgQEAKLUNPTlNPTEUgTUVT
U0FHRTogbGluZSA0ODI6IGNhbGxiYWNrIG5vdCB5ZXQgc3VwcG9ydGVkCiBCbG9ja2VkIGFjY2Vz
cyB0byBleHRlcm5hbCBVUkwgaHR0cDovL2Zvby8KIENPTlNPTEUgTUVTU0FHRTogRXZlbnRTb3Vy
Y2UgY2Fubm90IGxvYWQgaHR0cDovL2Zvby8gZHVlIHRvIGFjY2VzcyBjb250cm9sIGNoZWNrcy4K
IEV2ZW50U291cmNlIElETCB0ZXN0cwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaWRsLmFueS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9pZGwu
YW55LWV4cGVjdGVkLnR4dAppbmRleCAxZGRmYTVmNTVmMjJhMWRhZjU5NDJhMWFmYzUzNDUwMWI5
YTBiNTNkLi43MmU3N2QwYWNlMjk1NDI1NGU3NDI1M2I2MzE3OGEwMmNmOTNlMGU3IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Fw
aS9pZGwuYW55LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9pZGwuYW55LWV4cGVjdGVkLnR4dApAQCAtMTIsMTIg
KzEyLDcgQEAgUEFTUyBIZWFkZXJzIGludGVyZmFjZTogb3BlcmF0aW9uIGRlbGV0ZShCeXRlU3Ry
aW5nKQogUEFTUyBIZWFkZXJzIGludGVyZmFjZTogb3BlcmF0aW9uIGdldChCeXRlU3RyaW5nKSAK
IFBBU1MgSGVhZGVycyBpbnRlcmZhY2U6IG9wZXJhdGlvbiBoYXMoQnl0ZVN0cmluZykgCiBQQVNT
IEhlYWRlcnMgaW50ZXJmYWNlOiBvcGVyYXRpb24gc2V0KEJ5dGVTdHJpbmcsIEJ5dGVTdHJpbmcp
IAotUEFTUyBUZXN0aW5nIFN5bWJvbC5pdGVyYXRvciBwcm9wZXJ0eSBvZiBpdGVyYWJsZSBpbnRl
cmZhY2UgSGVhZGVycyAKLVBBU1MgVGVzdGluZyBwYWlyIGl0ZXJhYmxlIGludGVyZmFjZSBIZWFk
ZXJzIAotUEFTUyBIZWFkZXJzIGludGVyZmFjZTogb3BlcmF0aW9uIGVudHJpZXMoKSAKLVBBU1Mg
SGVhZGVycyBpbnRlcmZhY2U6IG9wZXJhdGlvbiBrZXlzKCkgCi1QQVNTIEhlYWRlcnMgaW50ZXJm
YWNlOiBvcGVyYXRpb24gdmFsdWVzKCkgCi1QQVNTIEhlYWRlcnMgaW50ZXJmYWNlOiBvcGVyYXRp
b24gZm9yRWFjaChmdW5jdGlvbiwgYW55KSAKK1BBU1MgSGVhZGVycyBpbnRlcmZhY2U6IGl0ZXJh
YmxlPEJ5dGVTdHJpbmcsIEJ5dGVTdHJpbmc+IAogUEFTUyBIZWFkZXJzIG11c3QgYmUgcHJpbWFy
eSBpbnRlcmZhY2Ugb2YgbmV3IEhlYWRlcnMoKSAKIFBBU1MgU3RyaW5naWZpY2F0aW9uIG9mIG5l
dyBIZWFkZXJzKCkgCiBQQVNTIEhlYWRlcnMgaW50ZXJmYWNlOiBuZXcgSGVhZGVycygpIG11c3Qg
aW5oZXJpdCBwcm9wZXJ0eSAiYXBwZW5kKEJ5dGVTdHJpbmcsIEJ5dGVTdHJpbmcpIiB3aXRoIHRo
ZSBwcm9wZXIgdHlwZSAKQEAgLTMwLDExICsyNSw2IEBAIFBBU1MgSGVhZGVycyBpbnRlcmZhY2U6
IG5ldyBIZWFkZXJzKCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJoYXMoQnl0ZVN0cmluZykiIHdp
CiBQQVNTIEhlYWRlcnMgaW50ZXJmYWNlOiBjYWxsaW5nIGhhcyhCeXRlU3RyaW5nKSBvbiBuZXcg
SGVhZGVycygpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCiBQ
QVNTIEhlYWRlcnMgaW50ZXJmYWNlOiBuZXcgSGVhZGVycygpIG11c3QgaW5oZXJpdCBwcm9wZXJ0
eSAic2V0KEJ5dGVTdHJpbmcsIEJ5dGVTdHJpbmcpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBB
U1MgSGVhZGVycyBpbnRlcmZhY2U6IGNhbGxpbmcgc2V0KEJ5dGVTdHJpbmcsIEJ5dGVTdHJpbmcp
IG9uIG5ldyBIZWFkZXJzKCkgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVF
cnJvciAKLVBBU1MgSGVhZGVycyBpbnRlcmZhY2U6IG5ldyBIZWFkZXJzKCkgbXVzdCBpbmhlcml0
IHByb3BlcnR5ICJlbnRyaWVzKCkiIHdpdGggdGhlIHByb3BlciB0eXBlIAotUEFTUyBIZWFkZXJz
IGludGVyZmFjZTogbmV3IEhlYWRlcnMoKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImtleXMoKSIg
d2l0aCB0aGUgcHJvcGVyIHR5cGUgCi1QQVNTIEhlYWRlcnMgaW50ZXJmYWNlOiBuZXcgSGVhZGVy
cygpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAidmFsdWVzKCkiIHdpdGggdGhlIHByb3BlciB0eXBl
IAotUEFTUyBIZWFkZXJzIGludGVyZmFjZTogbmV3IEhlYWRlcnMoKSBtdXN0IGluaGVyaXQgcHJv
cGVydHkgImZvckVhY2goZnVuY3Rpb24sIGFueSkiIHdpdGggdGhlIHByb3BlciB0eXBlIAotUEFT
UyBIZWFkZXJzIGludGVyZmFjZTogY2FsbGluZyBmb3JFYWNoKGZ1bmN0aW9uLCBhbnkpIG9uIG5l
dyBIZWFkZXJzKCkgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAK
IFBBU1MgUmVxdWVzdCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRl
cmZhY2Ugb2JqZWN0IAogUEFTUyBSZXF1ZXN0IGludGVyZmFjZSBvYmplY3QgbGVuZ3RoIAogUEFT
UyBSZXF1ZXN0IGludGVyZmFjZSBvYmplY3QgbmFtZSAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2lkbC5hbnkud29ya2Vy
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvYXBpL2lkbC5hbnkud29ya2VyLWV4cGVjdGVkLnR4dAppbmRleCBhNDQ0Y2Y3MmJm
Y2ZmYTZiZGU3NmY3NWI1OTAzN2QyODExZjViNWI0Li43YTQ0OWFjNjYwZjg5MDU4ZjNhMDMxZmJk
ZDkwZmRlNDBhYjM3NDU5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9pZGwuYW55Lndvcmtlci1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkv
aWRsLmFueS53b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0xMiwxMiArMTIsNyBAQCBQQVNTIEhlYWRl
cnMgaW50ZXJmYWNlOiBvcGVyYXRpb24gZGVsZXRlKEJ5dGVTdHJpbmcpCiBQQVNTIEhlYWRlcnMg
aW50ZXJmYWNlOiBvcGVyYXRpb24gZ2V0KEJ5dGVTdHJpbmcpIAogUEFTUyBIZWFkZXJzIGludGVy
ZmFjZTogb3BlcmF0aW9uIGhhcyhCeXRlU3RyaW5nKSAKIFBBU1MgSGVhZGVycyBpbnRlcmZhY2U6
IG9wZXJhdGlvbiBzZXQoQnl0ZVN0cmluZywgQnl0ZVN0cmluZykgCi1QQVNTIFRlc3RpbmcgU3lt
Ym9sLml0ZXJhdG9yIHByb3BlcnR5IG9mIGl0ZXJhYmxlIGludGVyZmFjZSBIZWFkZXJzIAotUEFT
UyBUZXN0aW5nIHBhaXIgaXRlcmFibGUgaW50ZXJmYWNlIEhlYWRlcnMgCi1QQVNTIEhlYWRlcnMg
aW50ZXJmYWNlOiBvcGVyYXRpb24gZW50cmllcygpIAotUEFTUyBIZWFkZXJzIGludGVyZmFjZTog
b3BlcmF0aW9uIGtleXMoKSAKLVBBU1MgSGVhZGVycyBpbnRlcmZhY2U6IG9wZXJhdGlvbiB2YWx1
ZXMoKSAKLVBBU1MgSGVhZGVycyBpbnRlcmZhY2U6IG9wZXJhdGlvbiBmb3JFYWNoKGZ1bmN0aW9u
LCBhbnkpIAorUEFTUyBIZWFkZXJzIGludGVyZmFjZTogaXRlcmFibGU8Qnl0ZVN0cmluZywgQnl0
ZVN0cmluZz4gCiBQQVNTIEhlYWRlcnMgbXVzdCBiZSBwcmltYXJ5IGludGVyZmFjZSBvZiBuZXcg
SGVhZGVycygpIAogUEFTUyBTdHJpbmdpZmljYXRpb24gb2YgbmV3IEhlYWRlcnMoKSAKIFBBU1Mg
SGVhZGVycyBpbnRlcmZhY2U6IG5ldyBIZWFkZXJzKCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJh
cHBlbmQoQnl0ZVN0cmluZywgQnl0ZVN0cmluZykiIHdpdGggdGhlIHByb3BlciB0eXBlIApAQCAt
MzAsMTEgKzI1LDYgQEAgUEFTUyBIZWFkZXJzIGludGVyZmFjZTogbmV3IEhlYWRlcnMoKSBtdXN0
IGluaGVyaXQgcHJvcGVydHkgImhhcyhCeXRlU3RyaW5nKSIgd2kKIFBBU1MgSGVhZGVycyBpbnRl
cmZhY2U6IGNhbGxpbmcgaGFzKEJ5dGVTdHJpbmcpIG9uIG5ldyBIZWFkZXJzKCkgd2l0aCB0b28g
ZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKIFBBU1MgSGVhZGVycyBpbnRlcmZh
Y2U6IG5ldyBIZWFkZXJzKCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJzZXQoQnl0ZVN0cmluZywg
Qnl0ZVN0cmluZykiIHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBIZWFkZXJzIGludGVyZmFj
ZTogY2FsbGluZyBzZXQoQnl0ZVN0cmluZywgQnl0ZVN0cmluZykgb24gbmV3IEhlYWRlcnMoKSB3
aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAotUEFTUyBIZWFkZXJz
IGludGVyZmFjZTogbmV3IEhlYWRlcnMoKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImVudHJpZXMo
KSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCi1QQVNTIEhlYWRlcnMgaW50ZXJmYWNlOiBuZXcgSGVh
ZGVycygpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAia2V5cygpIiB3aXRoIHRoZSBwcm9wZXIgdHlw
ZSAKLVBBU1MgSGVhZGVycyBpbnRlcmZhY2U6IG5ldyBIZWFkZXJzKCkgbXVzdCBpbmhlcml0IHBy
b3BlcnR5ICJ2YWx1ZXMoKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCi1QQVNTIEhlYWRlcnMgaW50
ZXJmYWNlOiBuZXcgSGVhZGVycygpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiZm9yRWFjaChmdW5j
dGlvbiwgYW55KSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCi1QQVNTIEhlYWRlcnMgaW50ZXJmYWNl
OiBjYWxsaW5nIGZvckVhY2goZnVuY3Rpb24sIGFueSkgb24gbmV3IEhlYWRlcnMoKSB3aXRoIHRv
byBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAogUEFTUyBSZXF1ZXN0IGludGVy
ZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgCiBQQVNT
IFJlcXVlc3QgaW50ZXJmYWNlIG9iamVjdCBsZW5ndGggCiBQQVNTIFJlcXVlc3QgaW50ZXJmYWNl
IG9iamVjdCBuYW1lIApAQCAtMTM0LDE5ICsxMjQsOCBAQCBQQVNTIFJlc3BvbnNlIGludGVyZmFj
ZTogbmV3IFJlc3BvbnNlKCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJibG9iKCkiIHdpdGggdGhl
CiBQQVNTIFJlc3BvbnNlIGludGVyZmFjZTogbmV3IFJlc3BvbnNlKCkgbXVzdCBpbmhlcml0IHBy
b3BlcnR5ICJmb3JtRGF0YSgpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgUmVzcG9uc2Ug
aW50ZXJmYWNlOiBuZXcgUmVzcG9uc2UoKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImpzb24oKSIg
d2l0aCB0aGUgcHJvcGVyIHR5cGUgCiBQQVNTIFJlc3BvbnNlIGludGVyZmFjZTogbmV3IFJlc3Bv
bnNlKCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJ0ZXh0KCkiIHdpdGggdGhlIHByb3BlciB0eXBl
IAotUEFTUyBIVE1MRWxlbWVudCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBv
ZiBpbnRlcmZhY2Ugb2JqZWN0IAotUEFTUyBIVE1MQm9keUVsZW1lbnQgaW50ZXJmYWNlOiBleGlz
dGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCAKIFBBU1MgV2luZG93IGlu
dGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgCiBQ
QVNTIFdvcmtlckdsb2JhbFNjb3BlIGludGVyZmFjZTogb3BlcmF0aW9uIGZldGNoKFJlcXVlc3RJ
bmZvLCBSZXF1ZXN0SW5pdCkgCiBQQVNTIFdvcmtlckdsb2JhbFNjb3BlIGludGVyZmFjZTogc2Vs
ZiBtdXN0IGluaGVyaXQgcHJvcGVydHkgImZldGNoKFJlcXVlc3RJbmZvLCBSZXF1ZXN0SW5pdCki
IHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBXb3JrZXJHbG9iYWxTY29wZSBpbnRlcmZhY2U6
IGNhbGxpbmcgZmV0Y2goUmVxdWVzdEluZm8sIFJlcXVlc3RJbml0KSBvbiBzZWxmIHdpdGggdG9v
IGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCi1QQVNTIEhUTUxGcmFtZVNldEVs
ZW1lbnQgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9i
amVjdCAKLVBBU1MgTm9kZSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBp
bnRlcmZhY2Ugb2JqZWN0IAotUEFTUyBEb2N1bWVudCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQg
cHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IAotUEFTUyBEb2N1bWVudFR5cGUgaW50ZXJm
YWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCAKLVBBU1Mg
RG9jdW1lbnRGcmFnbWVudCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBp
bnRlcmZhY2Ugb2JqZWN0IAotUEFTUyBTaGFkb3dSb290IGludGVyZmFjZTogZXhpc3RlbmNlIGFu
ZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgCi1QQVNTIEVsZW1lbnQgaW50ZXJmYWNl
OiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCAKLVBBU1MgQ2hh
cmFjdGVyRGF0YSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZh
Y2Ugb2JqZWN0IAotUEFTUyBUZXh0IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVz
IG9mIGludGVyZmFjZSBvYmplY3QgCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvY29ycy1yZmMxOTE4L2lkbGhhcm5lc3MudGVu
dGF0aXZlLmFueS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2ZldGNoL2NvcnMtcmZjMTkxOC9pZGxoYXJuZXNzLnRlbnRhdGl2ZS5hbnkt
ZXhwZWN0ZWQudHh0CmluZGV4IGE3ZWEzMjc5MWNiMDA2OTNmMzc5NGEyM2QzMjg0YTkyNjc5YzUy
ZmYuLmQyZjMwMjE3YzdjNzdjZWVkMzc5NjM0M2E0ZDM0NWFmMzVhYWM3MGMgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvY29ycy1y
ZmMxOTE4L2lkbGhhcm5lc3MudGVudGF0aXZlLmFueS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9jb3JzLXJmYzE5MTgv
aWRsaGFybmVzcy50ZW50YXRpdmUuYW55LWV4cGVjdGVkLnR4dApAQCAtMSwzMCArMSwzIEBACiAK
LUZBSUwgaWRsX3Rlc3Qgc2V0dXAgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdp
dGggdmFsdWU6IG9iamVjdCAiR290IGFuIGVycm9yIGJlZm9yZSBwYXJzaW5nIGFueSBuYW1lZCBk
ZWZpbml0aW9uOiBVbnJlY29nbmlzZWQgdG9rZW5zLCBsaW5lIDEgKHRva2VuczogIntcImVycm9y
XCI6IHtcIm1lc3NhZ2VcIiIpCi1bCi0gICAgewotICAgICAgICAidHlwZSI6ICJ7IiwKLSAgICAg
ICAgInZhbHVlIjogInsiLAotICAgICAgICAidHJpdmlhIjogIiIKLSAgICB9LAotICAgIHsKLSAg
ICAgICAgInR5cGUiOiAic3RyaW5nIiwKLSAgICAgICAgInZhbHVlIjogIlwiZXJyb3JcIiIsCi0g
ICAgICAgICJ0cml2aWEiOiAiIgotICAgIH0sCi0gICAgewotICAgICAgICAidHlwZSI6ICI6IiwK
LSAgICAgICAgInZhbHVlIjogIjoiLAotICAgICAgICAidHJpdmlhIjogIiIKLSAgICB9LAotICAg
IHsKLSAgICAgICAgInR5cGUiOiAieyIsCi0gICAgICAgICJ2YWx1ZSI6ICJ7IiwKLSAgICAgICAg
InRyaXZpYSI6ICIgIgotICAgIH0sCi0gICAgewotICAgICAgICAidHlwZSI6ICJzdHJpbmciLAot
ICAgICAgICAidmFsdWUiOiAiXCJtZXNzYWdlXCIiLAotICAgICAgICAidHJpdmlhIjogIiIKLSAg
ICB9Ci1dIgorRkFJTCBpZGxfdGVzdCBzZXR1cCBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWpl
Y3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJFcnJvciBmZXRjaGluZyAvaW50ZXJmYWNlcy9jb3Jz
LXJmYzE5MTguaWRsLiIKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9jb3JzLXJmYzE5MTgvaWRsaGFybmVzcy50ZW50YXRpdmUu
YW55Lndvcmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2ZldGNoL2NvcnMtcmZjMTkxOC9pZGxoYXJuZXNzLnRlbnRhdGl2ZS5hbnku
d29ya2VyLWV4cGVjdGVkLnR4dAppbmRleCBhN2VhMzI3OTFjYjAwNjkzZjM3OTRhMjNkMzI4NGE5
MjY3OWM1MmZmLi5kMmYzMDIxN2M3Yzc3Y2VlZDM3OTYzNDNhNGQzNDVhZjM1YWFjNzBjIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L2NvcnMtcmZjMTkxOC9pZGxoYXJuZXNzLnRlbnRhdGl2ZS5hbnkud29ya2VyLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L2NvcnMtcmZjMTkxOC9pZGxoYXJuZXNzLnRlbnRhdGl2ZS5hbnkud29ya2VyLWV4cGVjdGVkLnR4
dApAQCAtMSwzMCArMSwzIEBACiAKLUZBSUwgaWRsX3Rlc3Qgc2V0dXAgcHJvbWlzZV90ZXN0OiBV
bmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiR290IGFuIGVycm9yIGJlZm9y
ZSBwYXJzaW5nIGFueSBuYW1lZCBkZWZpbml0aW9uOiBVbnJlY29nbmlzZWQgdG9rZW5zLCBsaW5l
IDEgKHRva2VuczogIntcImVycm9yXCI6IHtcIm1lc3NhZ2VcIiIpCi1bCi0gICAgewotICAgICAg
ICAidHlwZSI6ICJ7IiwKLSAgICAgICAgInZhbHVlIjogInsiLAotICAgICAgICAidHJpdmlhIjog
IiIKLSAgICB9LAotICAgIHsKLSAgICAgICAgInR5cGUiOiAic3RyaW5nIiwKLSAgICAgICAgInZh
bHVlIjogIlwiZXJyb3JcIiIsCi0gICAgICAgICJ0cml2aWEiOiAiIgotICAgIH0sCi0gICAgewot
ICAgICAgICAidHlwZSI6ICI6IiwKLSAgICAgICAgInZhbHVlIjogIjoiLAotICAgICAgICAidHJp
dmlhIjogIiIKLSAgICB9LAotICAgIHsKLSAgICAgICAgInR5cGUiOiAieyIsCi0gICAgICAgICJ2
YWx1ZSI6ICJ7IiwKLSAgICAgICAgInRyaXZpYSI6ICIgIgotICAgIH0sCi0gICAgewotICAgICAg
ICAidHlwZSI6ICJzdHJpbmciLAotICAgICAgICAidmFsdWUiOiAiXCJtZXNzYWdlXCIiLAotICAg
ICAgICAidHJpdmlhIjogIiIKLSAgICB9Ci1dIgorRkFJTCBpZGxfdGVzdCBzZXR1cCBwcm9taXNl
X3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJFcnJvciBmZXRj
aGluZyAvaW50ZXJmYWNlcy9jb3JzLXJmYzE5MTguaWRsLiIKIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9oci10aW1lL2lkbGhhcm5lc3Mt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9oci10aW1lL2lkbGhhcm5lc3MtZXhwZWN0ZWQudHh0CmluZGV4IDQyYjVhYmQ5YTc4YTM5YjFi
MWFmZmIwZWZiMDY2YjM1NTJmYWVlZjEuLmM0OTBkMDUwNTAyYjAzYzgwMTY0Yjk4ZjA5MzFhYmFm
ZTYxNjZhODYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvaHItdGltZS9pZGxoYXJuZXNzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2hyLXRpbWUvaWRsaGFybmVzcy1leHBl
Y3RlZC50eHQKQEAgLTE3LDcgKzE3LDcgQEAgUEFTUyBTdHJpbmdpZmljYXRpb24gb2Ygd2luZG93
LnBlcmZvcm1hbmNlCiBQQVNTIFBlcmZvcm1hbmNlIGludGVyZmFjZTogd2luZG93LnBlcmZvcm1h
bmNlIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAibm93KCkiIHdpdGggdGhlIHByb3BlciB0eXBlIAog
RkFJTCBQZXJmb3JtYW5jZSBpbnRlcmZhY2U6IHdpbmRvdy5wZXJmb3JtYW5jZSBtdXN0IGluaGVy
aXQgcHJvcGVydHkgInRpbWVPcmlnaW4iIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9pbmhl
cml0czogcHJvcGVydHkgInRpbWVPcmlnaW4iIG5vdCBmb3VuZCBpbiBwcm90b3R5cGUgY2hhaW4K
IEZBSUwgUGVyZm9ybWFuY2UgaW50ZXJmYWNlOiB3aW5kb3cucGVyZm9ybWFuY2UgbXVzdCBpbmhl
cml0IHByb3BlcnR5ICJ0b0pTT04oKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2luaGVy
aXRzOiBwcm9wZXJ0eSAidG9KU09OIiBub3QgZm91bmQgaW4gcHJvdG90eXBlIGNoYWluCi1GQUlM
IFRlc3QgZGVmYXVsdCB0b0pTT04gb3BlcmF0aW9uIG9mIFBlcmZvcm1hbmNlIG1lbWJlckhvbGRl
ck9iamVjdC50b0pTT04gaXMgbm90IGEgZnVuY3Rpb24uIChJbiAnbWVtYmVySG9sZGVyT2JqZWN0
LnRvSlNPTigpJywgJ21lbWJlckhvbGRlck9iamVjdC50b0pTT04nIGlzIHVuZGVmaW5lZCkKK0ZB
SUwgUGVyZm9ybWFuY2UgaW50ZXJmYWNlOiBkZWZhdWx0IHRvSlNPTiBvcGVyYXRpb24gb24gd2lu
ZG93LnBlcmZvcm1hbmNlIG1lbWJlckhvbGRlck9iamVjdC50b0pTT04gaXMgbm90IGEgZnVuY3Rp
b24uIChJbiAnbWVtYmVySG9sZGVyT2JqZWN0LnRvSlNPTigpJywgJ21lbWJlckhvbGRlck9iamVj
dC50b0pTT04nIGlzIHVuZGVmaW5lZCkKIFBBU1MgV2luZG93IGludGVyZmFjZTogYXR0cmlidXRl
IHBlcmZvcm1hbmNlIAogUEFTUyBXaW5kb3cgaW50ZXJmYWNlOiB3aW5kb3cgbXVzdCBpbmhlcml0
IHByb3BlcnR5ICJwZXJmb3JtYW5jZSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCiBQQVNTIFdvcmtl
ckdsb2JhbFNjb3BlIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVy
ZmFjZSBvYmplY3QgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2h0bWwvd2ViYXBwYXBpcy9hbmltYXRpb24tZnJhbWVzL2lkbGhhcm5lc3Mt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL3dlYmFwcGFwaXMvYW5pbWF0aW9uLWZyYW1lcy9pZGxoYXJuZXNzLWV4cGVjdGVkLnR4
dAppbmRleCA2ZDhiZjZlN2Y3MWYxNTk5MzlmMzM2MzJjMWZhZTlkZDc2MzE5NGZkLi41NDk4MDg4
NWFjN2I2N2Q3ZGU1MmExYTVmYjcwMTkxNDM1NDFiM2Y1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvd2ViYXBwYXBpcy9hbmltYXRp
b24tZnJhbWVzL2lkbGhhcm5lc3MtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC93ZWJhcHBhcGlzL2FuaW1hdGlvbi1mcmFt
ZXMvaWRsaGFybmVzcy1leHBlY3RlZC50eHQKQEAgLTEsNCArMSwzIEBACi1DT05TT0xFIE1FU1NB
R0U6IGxpbmUgNDgyOiBjYWxsYmFjayBub3QgeWV0IHN1cHBvcnRlZAogaWRsaGFybmVzcyB0ZXN0
CiAKIFRoaXMgdGVzdCB2YWxpZGF0ZXMgdGhlIFdlYklETCBpbmNsdWRlZCBpbiB0aGUgVGltaW5n
IGNvbnRyb2wgZm9yIHNjcmlwdC1iYXNlZCBhbmltYXRpb25zIHNwZWNpZmljYXRpb24uCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwv
d2ViYXBwYXBpcy9zY3JpcHRpbmcvZXZlbnRzL2V2ZW50LWhhbmRsZXItYWxsLWdsb2JhbC1ldmVu
dHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL3dlYmFwcGFwaXMvc2NyaXB0aW5nL2V2ZW50cy9ldmVudC1oYW5kbGVyLWFsbC1n
bG9iYWwtZXZlbnRzLWV4cGVjdGVkLnR4dAppbmRleCAwMGIxN2ZlNjBjZGVmMGZkZGFkMTAxNjU2
N2YzMDFmYTkxNjU2Nzg3Li42NjgxYzI4YzExYTVlZWQ0MzIyYWE0MTYxNjFjNmVhNGViNDQxMDVh
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvd2ViYXBwYXBpcy9zY3JpcHRpbmcvZXZlbnRzL2V2ZW50LWhhbmRsZXItYWxsLWdsb2Jh
bC1ldmVudHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC93ZWJhcHBhcGlzL3NjcmlwdGluZy9ldmVudHMvZXZlbnQtaGFu
ZGxlci1hbGwtZ2xvYmFsLWV2ZW50cy1leHBlY3RlZC50eHQKQEAgLTExOSw2ICsxMTksMTEgQEAg
UEFTUyBvbmZvY3VzOiB0aGUgZGVmYXVsdCB2YWx1ZSBtdXN0IGJlIG51bGwKIFBBU1Mgb25mb2N1
czogdGhlIGNvbnRlbnQgYXR0cmlidXRlIG11c3QgYmUgY29tcGlsZWQgaW50byBhIGZ1bmN0aW9u
IGFzIHRoZSBjb3JyZXNwb25kaW5nIHByb3BlcnR5IAogUEFTUyBvbmZvY3VzOiB0aGUgY29udGVu
dCBhdHRyaWJ1dGUgbXVzdCBleGVjdXRlIHdoZW4gYW4gZXZlbnQgaXMgZGlzcGF0Y2hlZCAKIFBB
U1Mgb25mb2N1czogZGlzcGF0Y2hpbmcgYW4gRXZlbnQgYXQgYSA8bWV0YT4gZWxlbWVudCBtdXN0
IHRyaWdnZXIgZWxlbWVudC5vbmZvY3VzIAorRkFJTCBvbmZvcm1kYXRhOiBtdXN0IGJlIG9uIHRo
ZSBhcHByb3ByaWF0ZSBsb2NhdGlvbnMgZm9yIEdsb2JhbEV2ZW50SGFuZGxlcnMgYXNzZXJ0X3Ry
dWU6IFdpbmRvdyBoYXMgYW4gb3duIHByb3BlcnR5IG5hbWVkICJvbmZvcm1kYXRhIiBleHBlY3Rl
ZCB0cnVlIGdvdCBmYWxzZQorRkFJTCBvbmZvcm1kYXRhOiB0aGUgZGVmYXVsdCB2YWx1ZSBtdXN0
IGJlIG51bGwgYXNzZXJ0X2VxdWFsczogVGhlIGRlZmF1bHQgdmFsdWUgb2YgdGhlIHByb3BlcnR5
IGlzIG51bGwgZm9yIGEgV2luZG93IGluc3RhbmNlIGV4cGVjdGVkIChvYmplY3QpIG51bGwgYnV0
IGdvdCAodW5kZWZpbmVkKSB1bmRlZmluZWQKK0ZBSUwgb25mb3JtZGF0YTogdGhlIGNvbnRlbnQg
YXR0cmlidXRlIG11c3QgYmUgY29tcGlsZWQgaW50byBhIGZ1bmN0aW9uIGFzIHRoZSBjb3JyZXNw
b25kaW5nIHByb3BlcnR5IGFzc2VydF9lcXVhbHM6IFRoZSBvbmZvcm1kYXRhIHByb3BlcnR5IG11
c3QgYmUgYSBmdW5jdGlvbiBleHBlY3RlZCAiZnVuY3Rpb24iIGJ1dCBnb3QgInVuZGVmaW5lZCIK
K0ZBSUwgb25mb3JtZGF0YTogdGhlIGNvbnRlbnQgYXR0cmlidXRlIG11c3QgZXhlY3V0ZSB3aGVu
IGFuIGV2ZW50IGlzIGRpc3BhdGNoZWQgYXNzZXJ0X3RydWU6IERpc3BhdGNoaW5nIGFuIGV2ZW50
IG11c3QgcnVuIHRoZSBjb2RlIGV4cGVjdGVkIHRydWUgZ290IHVuZGVmaW5lZAorUEFTUyBvbmZv
cm1kYXRhOiBkaXNwYXRjaGluZyBhbiBFdmVudCBhdCBhIDxtZXRhPiBlbGVtZW50IG11c3QgdHJp
Z2dlciBlbGVtZW50Lm9uZm9ybWRhdGEgCiBQQVNTIG9uaW5wdXQ6IG11c3QgYmUgb24gdGhlIGFw
cHJvcHJpYXRlIGxvY2F0aW9ucyBmb3IgR2xvYmFsRXZlbnRIYW5kbGVycyAKIFBBU1Mgb25pbnB1
dDogdGhlIGRlZmF1bHQgdmFsdWUgbXVzdCBiZSBudWxsIAogUEFTUyBvbmlucHV0OiB0aGUgY29u
dGVudCBhdHRyaWJ1dGUgbXVzdCBiZSBjb21waWxlZCBpbnRvIGEgZnVuY3Rpb24gYXMgdGhlIGNv
cnJlc3BvbmRpbmcgcHJvcGVydHkgCkBAIC0xNTksMTEgKzE2NCw2IEBAIFBBU1Mgb25sb2FkZWRt
ZXRhZGF0YTogdGhlIGRlZmF1bHQgdmFsdWUgbXVzdCBiZSBudWxsCiBQQVNTIG9ubG9hZGVkbWV0
YWRhdGE6IHRoZSBjb250ZW50IGF0dHJpYnV0ZSBtdXN0IGJlIGNvbXBpbGVkIGludG8gYSBmdW5j
dGlvbiBhcyB0aGUgY29ycmVzcG9uZGluZyBwcm9wZXJ0eSAKIFBBU1Mgb25sb2FkZWRtZXRhZGF0
YTogdGhlIGNvbnRlbnQgYXR0cmlidXRlIG11c3QgZXhlY3V0ZSB3aGVuIGFuIGV2ZW50IGlzIGRp
c3BhdGNoZWQgCiBQQVNTIG9ubG9hZGVkbWV0YWRhdGE6IGRpc3BhdGNoaW5nIGFuIEV2ZW50IGF0
IGEgPG1ldGE+IGVsZW1lbnQgbXVzdCB0cmlnZ2VyIGVsZW1lbnQub25sb2FkZWRtZXRhZGF0YSAK
LUZBSUwgb25sb2FkZW5kOiBtdXN0IGJlIG9uIHRoZSBhcHByb3ByaWF0ZSBsb2NhdGlvbnMgZm9y
IEdsb2JhbEV2ZW50SGFuZGxlcnMgYXNzZXJ0X3RydWU6IFdpbmRvdyBoYXMgYW4gb3duIHByb3Bl
cnR5IG5hbWVkICJvbmxvYWRlbmQiIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIG9ubG9h
ZGVuZDogdGhlIGRlZmF1bHQgdmFsdWUgbXVzdCBiZSBudWxsIGFzc2VydF9lcXVhbHM6IFRoZSBk
ZWZhdWx0IHZhbHVlIG9mIHRoZSBwcm9wZXJ0eSBpcyBudWxsIGZvciBhIFdpbmRvdyBpbnN0YW5j
ZSBleHBlY3RlZCAob2JqZWN0KSBudWxsIGJ1dCBnb3QgKHVuZGVmaW5lZCkgdW5kZWZpbmVkCi1G
QUlMIG9ubG9hZGVuZDogdGhlIGNvbnRlbnQgYXR0cmlidXRlIG11c3QgYmUgY29tcGlsZWQgaW50
byBhIGZ1bmN0aW9uIGFzIHRoZSBjb3JyZXNwb25kaW5nIHByb3BlcnR5IGFzc2VydF9lcXVhbHM6
IFRoZSBvbmxvYWRlbmQgcHJvcGVydHkgbXVzdCBiZSBhIGZ1bmN0aW9uIGV4cGVjdGVkICJmdW5j
dGlvbiIgYnV0IGdvdCAidW5kZWZpbmVkIgotRkFJTCBvbmxvYWRlbmQ6IHRoZSBjb250ZW50IGF0
dHJpYnV0ZSBtdXN0IGV4ZWN1dGUgd2hlbiBhbiBldmVudCBpcyBkaXNwYXRjaGVkIGFzc2VydF90
cnVlOiBEaXNwYXRjaGluZyBhbiBldmVudCBtdXN0IHJ1biB0aGUgY29kZSBleHBlY3RlZCB0cnVl
IGdvdCB1bmRlZmluZWQKLVBBU1Mgb25sb2FkZW5kOiBkaXNwYXRjaGluZyBhbiBFdmVudCBhdCBh
IDxtZXRhPiBlbGVtZW50IG11c3QgdHJpZ2dlciBlbGVtZW50Lm9ubG9hZGVuZCAKIFBBU1Mgb25s
b2Fkc3RhcnQ6IG11c3QgYmUgb24gdGhlIGFwcHJvcHJpYXRlIGxvY2F0aW9ucyBmb3IgR2xvYmFs
RXZlbnRIYW5kbGVycyAKIFBBU1Mgb25sb2Fkc3RhcnQ6IHRoZSBkZWZhdWx0IHZhbHVlIG11c3Qg
YmUgbnVsbCAKIFBBU1Mgb25sb2Fkc3RhcnQ6IHRoZSBjb250ZW50IGF0dHJpYnV0ZSBtdXN0IGJl
IGNvbXBpbGVkIGludG8gYSBmdW5jdGlvbiBhcyB0aGUgY29ycmVzcG9uZGluZyBwcm9wZXJ0eSAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aW50ZXJmYWNlcy9kb20uaWRsIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9pbnRlcmZhY2VzL2RvbS5pZGwKaW5kZXggMDg3ZmU0ZDY2MWNiYjEzNTU1MzczMjNl
MDkzZmEzYjNkMzQyOTc2My4uMDNhMDIwMWIxNmZlZDU2OTQyOWM2Y2ZjNzA5MDYzZWQzMTY4MTQy
MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9pbnRlcmZhY2VzL2RvbS5pZGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9pbnRlcmZhY2VzL2RvbS5pZGwKQEAgLTEsMTAgKzEsMTYgQEAKLVtDb25z
dHJ1Y3RvcihET01TdHJpbmcgdHlwZSwgb3B0aW9uYWwgRXZlbnRJbml0IGV2ZW50SW5pdERpY3Qp
LAotIEV4cG9zZWQ9KFdpbmRvdyxXb3JrZXIpXQorLy8gR0VORVJBVEVEIENPTlRFTlQgLSBETyBO
T1QgRURJVAorLy8gQ29udGVudCB3YXMgYXV0b21hdGljYWxseSBleHRyYWN0ZWQgYnkgUmVmZnkg
aW50byByZWZmeS1yZXBvcnRzCisvLyAoaHR0cHM6Ly9naXRodWIuY29tL3RpZG91c3QvcmVmZnkt
cmVwb3J0cykKKy8vIFNvdXJjZTogRE9NIFN0YW5kYXJkIChodHRwczovL2RvbS5zcGVjLndoYXR3
Zy5vcmcvKQorCitbQ29uc3RydWN0b3IoRE9NU3RyaW5nIHR5cGUsIG9wdGlvbmFsIEV2ZW50SW5p
dCBldmVudEluaXREaWN0ID0ge30pLAorIEV4cG9zZWQ9KFdpbmRvdyxXb3JrZXIsQXVkaW9Xb3Jr
bGV0KV0KIGludGVyZmFjZSBFdmVudCB7CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcg
dHlwZTsKICAgcmVhZG9ubHkgYXR0cmlidXRlIEV2ZW50VGFyZ2V0PyB0YXJnZXQ7Ci0gIHJlYWRv
bmx5IGF0dHJpYnV0ZSBFdmVudFRhcmdldD8gc3JjRWxlbWVudDsKKyAgcmVhZG9ubHkgYXR0cmli
dXRlIEV2ZW50VGFyZ2V0PyBzcmNFbGVtZW50OyAvLyBoaXN0b3JpY2FsCiAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBFdmVudFRhcmdldD8gY3VycmVudFRhcmdldDsKKyAgc2VxdWVuY2U8RXZlbnRUYXJn
ZXQ+IGNvbXBvc2VkUGF0aCgpOwogCiAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IE5PTkUgPSAwOwog
ICBjb25zdCB1bnNpZ25lZCBzaG9ydCBDQVBUVVJJTkdfUEhBU0UgPSAxOwpAQCAtMTMsMjcgKzE5
LDMzIEBAIGludGVyZmFjZSBFdmVudCB7CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBz
aG9ydCBldmVudFBoYXNlOwogCiAgIHZvaWQgc3RvcFByb3BhZ2F0aW9uKCk7CisgICAgICAgICAg
IGF0dHJpYnV0ZSBib29sZWFuIGNhbmNlbEJ1YmJsZTsgLy8gaGlzdG9yaWNhbCBhbGlhcyBvZiAu
c3RvcFByb3BhZ2F0aW9uCiAgIHZvaWQgc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7CiAKICAg
cmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gYnViYmxlczsKICAgcmVhZG9ubHkgYXR0cmlidXRl
IGJvb2xlYW4gY2FuY2VsYWJsZTsKLSAgICAgICAgICAgYXR0cmlidXRlIGJvb2xlYW4gcmV0dXJu
VmFsdWU7CisgICAgICAgICAgIGF0dHJpYnV0ZSBib29sZWFuIHJldHVyblZhbHVlOyAgLy8gaGlz
dG9yaWNhbAogICB2b2lkIHByZXZlbnREZWZhdWx0KCk7CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBi
b29sZWFuIGRlZmF1bHRQcmV2ZW50ZWQ7CisgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIGNv
bXBvc2VkOwogCiAgIFtVbmZvcmdlYWJsZV0gcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gaXNU
cnVzdGVkOwotICByZWFkb25seSBhdHRyaWJ1dGUgRE9NVGltZVN0YW1wIHRpbWVTdGFtcDsKKyAg
cmVhZG9ubHkgYXR0cmlidXRlIERPTUhpZ2hSZXNUaW1lU3RhbXAgdGltZVN0YW1wOwogCi0gIHZv
aWQgaW5pdEV2ZW50KERPTVN0cmluZyB0eXBlLCBvcHRpb25hbCBib29sZWFuIGJ1YmJsZXMgPSBm
YWxzZSwgb3B0aW9uYWwgYm9vbGVhbiBjYW5jZWxhYmxlID0gZmFsc2UpOworICB2b2lkIGluaXRF
dmVudChET01TdHJpbmcgdHlwZSwgb3B0aW9uYWwgYm9vbGVhbiBidWJibGVzID0gZmFsc2UsIG9w
dGlvbmFsIGJvb2xlYW4gY2FuY2VsYWJsZSA9IGZhbHNlKTsgLy8gaGlzdG9yaWNhbAogfTsKIAog
ZGljdGlvbmFyeSBFdmVudEluaXQgewogICBib29sZWFuIGJ1YmJsZXMgPSBmYWxzZTsKICAgYm9v
bGVhbiBjYW5jZWxhYmxlID0gZmFsc2U7CisgIGJvb2xlYW4gY29tcG9zZWQgPSBmYWxzZTsKIH07
CiAKK3BhcnRpYWwgaW50ZXJmYWNlIFdpbmRvdyB7CisgIFtSZXBsYWNlYWJsZV0gcmVhZG9ubHkg
YXR0cmlidXRlIGFueSBldmVudDsgLy8gaGlzdG9yaWNhbAorfTsKIAotW0NvbnN0cnVjdG9yKERP
TVN0cmluZyB0eXBlLCBvcHRpb25hbCBDdXN0b21FdmVudEluaXQgZXZlbnRJbml0RGljdCksCitb
Q29uc3RydWN0b3IoRE9NU3RyaW5nIHR5cGUsIG9wdGlvbmFsIEN1c3RvbUV2ZW50SW5pdCBldmVu
dEluaXREaWN0ID0ge30pLAogIEV4cG9zZWQ9KFdpbmRvdyxXb3JrZXIpXQogaW50ZXJmYWNlIEN1
c3RvbUV2ZW50IDogRXZlbnQgewogICByZWFkb25seSBhdHRyaWJ1dGUgYW55IGRldGFpbDsKQEAg
LTQ1LDEyICs1NywxMSBAQCBkaWN0aW9uYXJ5IEN1c3RvbUV2ZW50SW5pdCA6IEV2ZW50SW5pdCB7
CiAgIGFueSBkZXRhaWwgPSBudWxsOwogfTsKIAotCiBbQ29uc3RydWN0b3IsCi0gRXhwb3NlZD0o
V2luZG93LFdvcmtlcildCisgRXhwb3NlZD0oV2luZG93LFdvcmtlcixBdWRpb1dvcmtsZXQpXQog
aW50ZXJmYWNlIEV2ZW50VGFyZ2V0IHsKLSAgdm9pZCBhZGRFdmVudExpc3RlbmVyKERPTVN0cmlu
ZyB0eXBlLCBFdmVudExpc3RlbmVyPyBjYWxsYmFjaywgb3B0aW9uYWwgKEV2ZW50TGlzdGVuZXJP
cHRpb25zIG9yIGJvb2xlYW4pIG9wdGlvbnMpOwotICB2b2lkIHJlbW92ZUV2ZW50TGlzdGVuZXIo
RE9NU3RyaW5nIHR5cGUsIEV2ZW50TGlzdGVuZXI/IGNhbGxiYWNrLCBvcHRpb25hbCAoRXZlbnRM
aXN0ZW5lck9wdGlvbnMgb3IgYm9vbGVhbikgb3B0aW9ucyk7CisgIHZvaWQgYWRkRXZlbnRMaXN0
ZW5lcihET01TdHJpbmcgdHlwZSwgRXZlbnRMaXN0ZW5lcj8gY2FsbGJhY2ssIG9wdGlvbmFsIChB
ZGRFdmVudExpc3RlbmVyT3B0aW9ucyBvciBib29sZWFuKSBvcHRpb25zID0ge30pOworICB2b2lk
IHJlbW92ZUV2ZW50TGlzdGVuZXIoRE9NU3RyaW5nIHR5cGUsIEV2ZW50TGlzdGVuZXI/IGNhbGxi
YWNrLCBvcHRpb25hbCAoRXZlbnRMaXN0ZW5lck9wdGlvbnMgb3IgYm9vbGVhbikgb3B0aW9ucyA9
IHt9KTsKICAgYm9vbGVhbiBkaXNwYXRjaEV2ZW50KEV2ZW50IGV2ZW50KTsKIH07CiAKQEAgLTU5
LDEwICs3MCwxMyBAQCBjYWxsYmFjayBpbnRlcmZhY2UgRXZlbnRMaXN0ZW5lciB7CiB9OwogCiBk
aWN0aW9uYXJ5IEV2ZW50TGlzdGVuZXJPcHRpb25zIHsKLSAgYm9vbGVhbiBjYXB0dXJlOwotICBi
b29sZWFuIHBhc3NpdmU7CisgIGJvb2xlYW4gY2FwdHVyZSA9IGZhbHNlOwogfTsKIAorZGljdGlv
bmFyeSBBZGRFdmVudExpc3RlbmVyT3B0aW9ucyA6IEV2ZW50TGlzdGVuZXJPcHRpb25zIHsKKyAg
Ym9vbGVhbiBwYXNzaXZlID0gZmFsc2U7CisgIGJvb2xlYW4gb25jZSA9IGZhbHNlOworfTsKIAog
W0NvbnN0cnVjdG9yLAogIEV4cG9zZWQ9KFdpbmRvdyxXb3JrZXIpXQpAQCAtNzEsMzcgKzg1LDMx
IEBAIGludGVyZmFjZSBBYm9ydENvbnRyb2xsZXIgewogCiAgIHZvaWQgYWJvcnQoKTsKIH07Ci0K
LQogW0V4cG9zZWQ9KFdpbmRvdyxXb3JrZXIpXQogaW50ZXJmYWNlIEFib3J0U2lnbmFsIDogRXZl
bnRUYXJnZXQgewogICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBhYm9ydGVkOwogCiAgIGF0
dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25hYm9ydDsKIH07Ci0KLQogaW50ZXJmYWNlIG1peGluIE5v
bkVsZW1lbnRQYXJlbnROb2RlIHsKICAgRWxlbWVudD8gZ2V0RWxlbWVudEJ5SWQoRE9NU3RyaW5n
IGVsZW1lbnRJZCk7CiB9OwogRG9jdW1lbnQgaW5jbHVkZXMgTm9uRWxlbWVudFBhcmVudE5vZGU7
CiBEb2N1bWVudEZyYWdtZW50IGluY2x1ZGVzIE5vbkVsZW1lbnRQYXJlbnROb2RlOwogCi0KIGlu
dGVyZmFjZSBtaXhpbiBEb2N1bWVudE9yU2hhZG93Um9vdCB7CiB9OwogRG9jdW1lbnQgaW5jbHVk
ZXMgRG9jdW1lbnRPclNoYWRvd1Jvb3Q7CiBTaGFkb3dSb290IGluY2x1ZGVzIERvY3VtZW50T3JT
aGFkb3dSb290OwogCi0KIGludGVyZmFjZSBtaXhpbiBQYXJlbnROb2RlIHsKICAgW1NhbWVPYmpl
Y3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBIVE1MQ29sbGVjdGlvbiBjaGlsZHJlbjsKICAgcmVhZG9u
bHkgYXR0cmlidXRlIEVsZW1lbnQ/IGZpcnN0RWxlbWVudENoaWxkOwogICByZWFkb25seSBhdHRy
aWJ1dGUgRWxlbWVudD8gbGFzdEVsZW1lbnRDaGlsZDsKICAgcmVhZG9ubHkgYXR0cmlidXRlIHVu
c2lnbmVkIGxvbmcgY2hpbGRFbGVtZW50Q291bnQ7CiAKLSAgW1Vuc2NvcGFibGVdIHZvaWQgcHJl
cGVuZCgoTm9kZSBvciBET01TdHJpbmcpLi4uIG5vZGVzKTsKLSAgW1Vuc2NvcGFibGVdIHZvaWQg
YXBwZW5kKChOb2RlIG9yIERPTVN0cmluZykuLi4gbm9kZXMpOworICBbQ0VSZWFjdGlvbnMsIFVu
c2NvcGFibGVdIHZvaWQgcHJlcGVuZCgoTm9kZSBvciBET01TdHJpbmcpLi4uIG5vZGVzKTsKKyAg
W0NFUmVhY3Rpb25zLCBVbnNjb3BhYmxlXSB2b2lkIGFwcGVuZCgoTm9kZSBvciBET01TdHJpbmcp
Li4uIG5vZGVzKTsKIAogICBFbGVtZW50PyBxdWVyeVNlbGVjdG9yKERPTVN0cmluZyBzZWxlY3Rv
cnMpOwogICBbTmV3T2JqZWN0XSBOb2RlTGlzdCBxdWVyeVNlbGVjdG9yQWxsKERPTVN0cmluZyBz
ZWxlY3RvcnMpOwpAQCAtMTEwLDcgKzExOCw2IEBAIERvY3VtZW50IGluY2x1ZGVzIFBhcmVudE5v
ZGU7CiBEb2N1bWVudEZyYWdtZW50IGluY2x1ZGVzIFBhcmVudE5vZGU7CiBFbGVtZW50IGluY2x1
ZGVzIFBhcmVudE5vZGU7CiAKLQogaW50ZXJmYWNlIG1peGluIE5vbkRvY3VtZW50VHlwZUNoaWxk
Tm9kZSB7CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBFbGVtZW50PyBwcmV2aW91c0VsZW1lbnRTaWJs
aW5nOwogICByZWFkb25seSBhdHRyaWJ1dGUgRWxlbWVudD8gbmV4dEVsZW1lbnRTaWJsaW5nOwpA
QCAtMTE4LDMzICsxMjUsMjkgQEAgaW50ZXJmYWNlIG1peGluIE5vbkRvY3VtZW50VHlwZUNoaWxk
Tm9kZSB7CiBFbGVtZW50IGluY2x1ZGVzIE5vbkRvY3VtZW50VHlwZUNoaWxkTm9kZTsKIENoYXJh
Y3RlckRhdGEgaW5jbHVkZXMgTm9uRG9jdW1lbnRUeXBlQ2hpbGROb2RlOwogCi0KIGludGVyZmFj
ZSBtaXhpbiBDaGlsZE5vZGUgewotICBbVW5zY29wYWJsZV0gdm9pZCBiZWZvcmUoKE5vZGUgb3Ig
RE9NU3RyaW5nKS4uLiBub2Rlcyk7Ci0gIFtVbnNjb3BhYmxlXSB2b2lkIGFmdGVyKChOb2RlIG9y
IERPTVN0cmluZykuLi4gbm9kZXMpOwotICBbVW5zY29wYWJsZV0gdm9pZCByZXBsYWNlV2l0aCgo
Tm9kZSBvciBET01TdHJpbmcpLi4uIG5vZGVzKTsKLSAgW1Vuc2NvcGFibGVdIHZvaWQgcmVtb3Zl
KCk7CisgIFtDRVJlYWN0aW9ucywgVW5zY29wYWJsZV0gdm9pZCBiZWZvcmUoKE5vZGUgb3IgRE9N
U3RyaW5nKS4uLiBub2Rlcyk7CisgIFtDRVJlYWN0aW9ucywgVW5zY29wYWJsZV0gdm9pZCBhZnRl
cigoTm9kZSBvciBET01TdHJpbmcpLi4uIG5vZGVzKTsKKyAgW0NFUmVhY3Rpb25zLCBVbnNjb3Bh
YmxlXSB2b2lkIHJlcGxhY2VXaXRoKChOb2RlIG9yIERPTVN0cmluZykuLi4gbm9kZXMpOworICBb
Q0VSZWFjdGlvbnMsIFVuc2NvcGFibGVdIHZvaWQgcmVtb3ZlKCk7CiB9OwogRG9jdW1lbnRUeXBl
IGluY2x1ZGVzIENoaWxkTm9kZTsKIEVsZW1lbnQgaW5jbHVkZXMgQ2hpbGROb2RlOwogQ2hhcmFj
dGVyRGF0YSBpbmNsdWRlcyBDaGlsZE5vZGU7CiAKLQogaW50ZXJmYWNlIG1peGluIFNsb3RhYmxl
IHsKICAgcmVhZG9ubHkgYXR0cmlidXRlIEhUTUxTbG90RWxlbWVudD8gYXNzaWduZWRTbG90Owog
fTsKIEVsZW1lbnQgaW5jbHVkZXMgU2xvdGFibGU7CiBUZXh0IGluY2x1ZGVzIFNsb3RhYmxlOwog
Ci0KIFtFeHBvc2VkPVdpbmRvd10KIGludGVyZmFjZSBOb2RlTGlzdCB7CiAgIGdldHRlciBOb2Rl
PyBpdGVtKHVuc2lnbmVkIGxvbmcgaW5kZXgpOwogICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWdu
ZWQgbG9uZyBsZW5ndGg7Ci0vLyAgaXRlcmFibGU8Tm9kZT47CisgIGl0ZXJhYmxlPE5vZGU+Owog
fTsKIAotCiBbRXhwb3NlZD1XaW5kb3csIExlZ2FjeVVuZW51bWVyYWJsZU5hbWVkUHJvcGVydGll
c10KIGludGVyZmFjZSBIVE1MQ29sbGVjdGlvbiB7CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNp
Z25lZCBsb25nIGxlbmd0aDsKQEAgLTE1MiwxMCArMTU1LDEwIEBAIGludGVyZmFjZSBIVE1MQ29s
bGVjdGlvbiB7CiAgIGdldHRlciBFbGVtZW50PyBuYW1lZEl0ZW0oRE9NU3RyaW5nIG5hbWUpOwog
fTsKIAotCi1bQ29uc3RydWN0b3IoTXV0YXRpb25DYWxsYmFjayBjYWxsYmFjayldCitbQ29uc3Ry
dWN0b3IoTXV0YXRpb25DYWxsYmFjayBjYWxsYmFjayksCisgRXhwb3NlZD1XaW5kb3ddCiBpbnRl
cmZhY2UgTXV0YXRpb25PYnNlcnZlciB7Ci0gIHZvaWQgb2JzZXJ2ZShOb2RlIHRhcmdldCwgb3B0
aW9uYWwgTXV0YXRpb25PYnNlcnZlckluaXQgb3B0aW9ucyk7CisgIHZvaWQgb2JzZXJ2ZShOb2Rl
IHRhcmdldCwgb3B0aW9uYWwgTXV0YXRpb25PYnNlcnZlckluaXQgb3B0aW9ucyA9IHt9KTsKICAg
dm9pZCBkaXNjb25uZWN0KCk7CiAgIHNlcXVlbmNlPE11dGF0aW9uUmVjb3JkPiB0YWtlUmVjb3Jk
cygpOwogfTsKQEAgLTE3Miw3ICsxNzUsNiBAQCBkaWN0aW9uYXJ5IE11dGF0aW9uT2JzZXJ2ZXJJ
bml0IHsKICAgc2VxdWVuY2U8RE9NU3RyaW5nPiBhdHRyaWJ1dGVGaWx0ZXI7CiB9OwogCi0KIFtF
eHBvc2VkPVdpbmRvd10KIGludGVyZmFjZSBNdXRhdGlvblJlY29yZCB7CiAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBET01TdHJpbmcgdHlwZTsKQEAgLTE4NiwxMSArMTg4LDEwIEBAIGludGVyZmFjZSBN
dXRhdGlvblJlY29yZCB7CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmc/IG9sZFZhbHVl
OwogfTsKIAotCiBbRXhwb3NlZD1XaW5kb3ddCiBpbnRlcmZhY2UgTm9kZSA6IEV2ZW50VGFyZ2V0
IHsKICAgY29uc3QgdW5zaWduZWQgc2hvcnQgRUxFTUVOVF9OT0RFID0gMTsKLSAgY29uc3QgdW5z
aWduZWQgc2hvcnQgQVRUUklCVVRFX05PREUgPSAyOyAvLyBoaXN0b3JpY2FsCisgIGNvbnN0IHVu
c2lnbmVkIHNob3J0IEFUVFJJQlVURV9OT0RFID0gMjsKICAgY29uc3QgdW5zaWduZWQgc2hvcnQg
VEVYVF9OT0RFID0gMzsKICAgY29uc3QgdW5zaWduZWQgc2hvcnQgQ0RBVEFfU0VDVElPTl9OT0RF
ID0gNDsKICAgY29uc3QgdW5zaWduZWQgc2hvcnQgRU5USVRZX1JFRkVSRU5DRV9OT0RFID0gNTsg
Ly8gaGlzdG9yaWNhbApAQCAtMjA0LDExICsyMDUsMTEgQEAgaW50ZXJmYWNlIE5vZGUgOiBFdmVu
dFRhcmdldCB7CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBzaG9ydCBub2RlVHlwZTsK
ICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBub2RlTmFtZTsKIAotICByZWFkb25seSBh
dHRyaWJ1dGUgRE9NU3RyaW5nIGJhc2VVUkk7CisgIHJlYWRvbmx5IGF0dHJpYnV0ZSBVU1ZTdHJp
bmcgYmFzZVVSSTsKIAogICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBpc0Nvbm5lY3RlZDsK
ICAgcmVhZG9ubHkgYXR0cmlidXRlIERvY3VtZW50PyBvd25lckRvY3VtZW50OwotICBOb2RlIGdl
dFJvb3ROb2RlKG9wdGlvbmFsIEdldFJvb3ROb2RlT3B0aW9ucyBvcHRpb25zKTsKKyAgTm9kZSBn
ZXRSb290Tm9kZShvcHRpb25hbCBHZXRSb290Tm9kZU9wdGlvbnMgb3B0aW9ucyA9IHt9KTsKICAg
cmVhZG9ubHkgYXR0cmlidXRlIE5vZGU/IHBhcmVudE5vZGU7CiAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBFbGVtZW50PyBwYXJlbnRFbGVtZW50OwogICBib29sZWFuIGhhc0NoaWxkTm9kZXMoKTsKQEAg
LTIxOCwxMSArMjE5LDExIEBAIGludGVyZmFjZSBOb2RlIDogRXZlbnRUYXJnZXQgewogICByZWFk
b25seSBhdHRyaWJ1dGUgTm9kZT8gcHJldmlvdXNTaWJsaW5nOwogICByZWFkb25seSBhdHRyaWJ1
dGUgTm9kZT8gbmV4dFNpYmxpbmc7CiAKLSAgICAgICAgICAgYXR0cmlidXRlIERPTVN0cmluZz8g
bm9kZVZhbHVlOwotICAgICAgICAgICBhdHRyaWJ1dGUgRE9NU3RyaW5nPyB0ZXh0Q29udGVudDsK
LSAgdm9pZCBub3JtYWxpemUoKTsKKyAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgRE9NU3RyaW5n
PyBub2RlVmFsdWU7CisgIFtDRVJlYWN0aW9uc10gYXR0cmlidXRlIERPTVN0cmluZz8gdGV4dENv
bnRlbnQ7CisgIFtDRVJlYWN0aW9uc10gdm9pZCBub3JtYWxpemUoKTsKIAotICBbTmV3T2JqZWN0
XSBOb2RlIGNsb25lTm9kZShvcHRpb25hbCBib29sZWFuIGRlZXAgPSBmYWxzZSk7CisgIFtDRVJl
YWN0aW9ucywgTmV3T2JqZWN0XSBOb2RlIGNsb25lTm9kZShvcHRpb25hbCBib29sZWFuIGRlZXAg
PSBmYWxzZSk7CiAgIGJvb2xlYW4gaXNFcXVhbE5vZGUoTm9kZT8gb3RoZXJOb2RlKTsKICAgYm9v
bGVhbiBpc1NhbWVOb2RlKE5vZGU/IG90aGVyTm9kZSk7IC8vIGhpc3RvcmljYWwgYWxpYXMgb2Yg
PT09CiAKQEAgLTIzOSwxMCArMjQwLDEwIEBAIGludGVyZmFjZSBOb2RlIDogRXZlbnRUYXJnZXQg
ewogICBET01TdHJpbmc/IGxvb2t1cE5hbWVzcGFjZVVSSShET01TdHJpbmc/IHByZWZpeCk7CiAg
IGJvb2xlYW4gaXNEZWZhdWx0TmFtZXNwYWNlKERPTVN0cmluZz8gbmFtZXNwYWNlKTsKIAotICBO
b2RlIGluc2VydEJlZm9yZShOb2RlIG5vZGUsIE5vZGU/IGNoaWxkKTsKLSAgTm9kZSBhcHBlbmRD
aGlsZChOb2RlIG5vZGUpOwotICBOb2RlIHJlcGxhY2VDaGlsZChOb2RlIG5vZGUsIE5vZGUgY2hp
bGQpOwotICBOb2RlIHJlbW92ZUNoaWxkKE5vZGUgY2hpbGQpOworICBbQ0VSZWFjdGlvbnNdIE5v
ZGUgaW5zZXJ0QmVmb3JlKE5vZGUgbm9kZSwgTm9kZT8gY2hpbGQpOworICBbQ0VSZWFjdGlvbnNd
IE5vZGUgYXBwZW5kQ2hpbGQoTm9kZSBub2RlKTsKKyAgW0NFUmVhY3Rpb25zXSBOb2RlIHJlcGxh
Y2VDaGlsZChOb2RlIG5vZGUsIE5vZGUgY2hpbGQpOworICBbQ0VSZWFjdGlvbnNdIE5vZGUgcmVt
b3ZlQ2hpbGQoTm9kZSBjaGlsZCk7CiB9OwogCiBkaWN0aW9uYXJ5IEdldFJvb3ROb2RlT3B0aW9u
cyB7CkBAIC0yNTMsOSArMjU0LDkgQEAgZGljdGlvbmFyeSBHZXRSb290Tm9kZU9wdGlvbnMgewog
IEV4cG9zZWQ9V2luZG93XQogaW50ZXJmYWNlIERvY3VtZW50IDogTm9kZSB7CiAgIFtTYW1lT2Jq
ZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgRE9NSW1wbGVtZW50YXRpb24gaW1wbGVtZW50YXRpb247
Ci0gIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgVVJMOwotICByZWFkb25seSBhdHRyaWJ1
dGUgRE9NU3RyaW5nIGRvY3VtZW50VVJJOwotICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5n
IG9yaWdpbjsKKyAgcmVhZG9ubHkgYXR0cmlidXRlIFVTVlN0cmluZyBVUkw7CisgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBVU1ZTdHJpbmcgZG9jdW1lbnRVUkk7CisgIHJlYWRvbmx5IGF0dHJpYnV0ZSBV
U1ZTdHJpbmcgb3JpZ2luOwogICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGNvbXBhdE1v
ZGU7CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgY2hhcmFjdGVyU2V0OwogICByZWFk
b25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGNoYXJzZXQ7IC8vIGhpc3RvcmljYWwgYWxpYXMgb2Yg
LmNoYXJhY3RlclNldApAQCAtMjY4LDE2ICsyNjksMTYgQEAgaW50ZXJmYWNlIERvY3VtZW50IDog
Tm9kZSB7CiAgIEhUTUxDb2xsZWN0aW9uIGdldEVsZW1lbnRzQnlUYWdOYW1lTlMoRE9NU3RyaW5n
PyBuYW1lc3BhY2UsIERPTVN0cmluZyBsb2NhbE5hbWUpOwogICBIVE1MQ29sbGVjdGlvbiBnZXRF
bGVtZW50c0J5Q2xhc3NOYW1lKERPTVN0cmluZyBjbGFzc05hbWVzKTsKIAotICBbTmV3T2JqZWN0
XSBFbGVtZW50IGNyZWF0ZUVsZW1lbnQoRE9NU3RyaW5nIGxvY2FsTmFtZSwgb3B0aW9uYWwgKERP
TVN0cmluZyBvciBFbGVtZW50Q3JlYXRpb25PcHRpb25zKSBvcHRpb25zKTsKLSAgW05ld09iamVj
dF0gRWxlbWVudCBjcmVhdGVFbGVtZW50TlMoRE9NU3RyaW5nPyBuYW1lc3BhY2UsIERPTVN0cmlu
ZyBxdWFsaWZpZWROYW1lLCBvcHRpb25hbCAoRE9NU3RyaW5nIG9yIEVsZW1lbnRDcmVhdGlvbk9w
dGlvbnMpIG9wdGlvbnMpOworICBbQ0VSZWFjdGlvbnMsIE5ld09iamVjdF0gRWxlbWVudCBjcmVh
dGVFbGVtZW50KERPTVN0cmluZyBsb2NhbE5hbWUsIG9wdGlvbmFsIChET01TdHJpbmcgb3IgRWxl
bWVudENyZWF0aW9uT3B0aW9ucykgb3B0aW9ucyA9IHt9KTsKKyAgW0NFUmVhY3Rpb25zLCBOZXdP
YmplY3RdIEVsZW1lbnQgY3JlYXRlRWxlbWVudE5TKERPTVN0cmluZz8gbmFtZXNwYWNlLCBET01T
dHJpbmcgcXVhbGlmaWVkTmFtZSwgb3B0aW9uYWwgKERPTVN0cmluZyBvciBFbGVtZW50Q3JlYXRp
b25PcHRpb25zKSBvcHRpb25zID0ge30pOwogICBbTmV3T2JqZWN0XSBEb2N1bWVudEZyYWdtZW50
IGNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTsKICAgW05ld09iamVjdF0gVGV4dCBjcmVhdGVUZXh0
Tm9kZShET01TdHJpbmcgZGF0YSk7CiAgIFtOZXdPYmplY3RdIENEQVRBU2VjdGlvbiBjcmVhdGVD
REFUQVNlY3Rpb24oRE9NU3RyaW5nIGRhdGEpOwogICBbTmV3T2JqZWN0XSBDb21tZW50IGNyZWF0
ZUNvbW1lbnQoRE9NU3RyaW5nIGRhdGEpOwogICBbTmV3T2JqZWN0XSBQcm9jZXNzaW5nSW5zdHJ1
Y3Rpb24gY3JlYXRlUHJvY2Vzc2luZ0luc3RydWN0aW9uKERPTVN0cmluZyB0YXJnZXQsIERPTVN0
cmluZyBkYXRhKTsKIAotICBbTmV3T2JqZWN0XSBOb2RlIGltcG9ydE5vZGUoTm9kZSBub2RlLCBv
cHRpb25hbCBib29sZWFuIGRlZXAgPSBmYWxzZSk7Ci0gIE5vZGUgYWRvcHROb2RlKE5vZGUgbm9k
ZSk7CisgIFtDRVJlYWN0aW9ucywgTmV3T2JqZWN0XSBOb2RlIGltcG9ydE5vZGUoTm9kZSBub2Rl
LCBvcHRpb25hbCBib29sZWFuIGRlZXAgPSBmYWxzZSk7CisgIFtDRVJlYWN0aW9uc10gTm9kZSBh
ZG9wdE5vZGUoTm9kZSBub2RlKTsKIAogICBbTmV3T2JqZWN0XSBBdHRyIGNyZWF0ZUF0dHJpYnV0
ZShET01TdHJpbmcgbG9jYWxOYW1lKTsKICAgW05ld09iamVjdF0gQXR0ciBjcmVhdGVBdHRyaWJ1
dGVOUyhET01TdHJpbmc/IG5hbWVzcGFjZSwgRE9NU3RyaW5nIHF1YWxpZmllZE5hbWUpOwpAQCAt
Mjk4LDcgKzI5OSw2IEBAIGRpY3Rpb25hcnkgRWxlbWVudENyZWF0aW9uT3B0aW9ucyB7CiAgIERP
TVN0cmluZyBpczsKIH07CiAKLQogW0V4cG9zZWQ9V2luZG93XQogaW50ZXJmYWNlIERPTUltcGxl
bWVudGF0aW9uIHsKICAgW05ld09iamVjdF0gRG9jdW1lbnRUeXBlIGNyZWF0ZURvY3VtZW50VHlw
ZShET01TdHJpbmcgcXVhbGlmaWVkTmFtZSwgRE9NU3RyaW5nIHB1YmxpY0lkLCBET01TdHJpbmcg
c3lzdGVtSWQpOwpAQCAtMzA4LDcgKzMwOCw2IEBAIGludGVyZmFjZSBET01JbXBsZW1lbnRhdGlv
biB7CiAgIGJvb2xlYW4gaGFzRmVhdHVyZSgpOyAvLyB1c2VsZXNzOyBhbHdheXMgcmV0dXJucyB0
cnVlCiB9OwogCi0KIFtFeHBvc2VkPVdpbmRvd10KIGludGVyZmFjZSBEb2N1bWVudFR5cGUgOiBO
b2RlIHsKICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBuYW1lOwpAQCAtMzE2LDEzICsz
MTUsMTEgQEAgaW50ZXJmYWNlIERvY3VtZW50VHlwZSA6IE5vZGUgewogICByZWFkb25seSBhdHRy
aWJ1dGUgRE9NU3RyaW5nIHN5c3RlbUlkOwogfTsKIAotCiBbQ29uc3RydWN0b3IsCiAgRXhwb3Nl
ZD1XaW5kb3ddCiBpbnRlcmZhY2UgRG9jdW1lbnRGcmFnbWVudCA6IE5vZGUgewogfTsKIAotCiBb
RXhwb3NlZD1XaW5kb3ddCiBpbnRlcmZhY2UgU2hhZG93Um9vdCA6IERvY3VtZW50RnJhZ21lbnQg
ewogICByZWFkb25seSBhdHRyaWJ1dGUgU2hhZG93Um9vdE1vZGUgbW9kZTsKQEAgLTMzMSw3ICsz
MjgsNiBAQCBpbnRlcmZhY2UgU2hhZG93Um9vdCA6IERvY3VtZW50RnJhZ21lbnQgewogCiBlbnVt
IFNoYWRvd1Jvb3RNb2RlIHsgIm9wZW4iLCAiY2xvc2VkIiB9OwogCi0KIFtFeHBvc2VkPVdpbmRv
d10KIGludGVyZmFjZSBFbGVtZW50IDogTm9kZSB7CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01T
dHJpbmc/IG5hbWVzcGFjZVVSSTsKQEAgLTMzOSwyOCArMzM1LDI5IEBAIGludGVyZmFjZSBFbGVt
ZW50IDogTm9kZSB7CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgbG9jYWxOYW1lOwog
ICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHRhZ05hbWU7CiAKLSAgICAgICAgICAgYXR0
cmlidXRlIERPTVN0cmluZyBpZDsKLSAgICAgICAgICAgYXR0cmlidXRlIERPTVN0cmluZyBjbGFz
c05hbWU7CisgIFtDRVJlYWN0aW9uc10gYXR0cmlidXRlIERPTVN0cmluZyBpZDsKKyAgW0NFUmVh
Y3Rpb25zXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGNsYXNzTmFtZTsKICAgW1NhbWVPYmplY3QsIFB1
dEZvcndhcmRzPXZhbHVlXSByZWFkb25seSBhdHRyaWJ1dGUgRE9NVG9rZW5MaXN0IGNsYXNzTGlz
dDsKLSAgW1Vuc2NvcGFibGVdIGF0dHJpYnV0ZSBET01TdHJpbmcgc2xvdDsKKyAgW0NFUmVhY3Rp
b25zLCBVbnNjb3BhYmxlXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHNsb3Q7CiAKICAgYm9vbGVhbiBo
YXNBdHRyaWJ1dGVzKCk7CiAgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgTmFtZWRO
b2RlTWFwIGF0dHJpYnV0ZXM7CiAgIHNlcXVlbmNlPERPTVN0cmluZz4gZ2V0QXR0cmlidXRlTmFt
ZXMoKTsKICAgRE9NU3RyaW5nPyBnZXRBdHRyaWJ1dGUoRE9NU3RyaW5nIHF1YWxpZmllZE5hbWUp
OwogICBET01TdHJpbmc/IGdldEF0dHJpYnV0ZU5TKERPTVN0cmluZz8gbmFtZXNwYWNlLCBET01T
dHJpbmcgbG9jYWxOYW1lKTsKLSAgdm9pZCBzZXRBdHRyaWJ1dGUoRE9NU3RyaW5nIHF1YWxpZmll
ZE5hbWUsIERPTVN0cmluZyB2YWx1ZSk7Ci0gIHZvaWQgc2V0QXR0cmlidXRlTlMoRE9NU3RyaW5n
PyBuYW1lc3BhY2UsIERPTVN0cmluZyBxdWFsaWZpZWROYW1lLCBET01TdHJpbmcgdmFsdWUpOwot
ICB2b2lkIHJlbW92ZUF0dHJpYnV0ZShET01TdHJpbmcgcXVhbGlmaWVkTmFtZSk7Ci0gIHZvaWQg
cmVtb3ZlQXR0cmlidXRlTlMoRE9NU3RyaW5nPyBuYW1lc3BhY2UsIERPTVN0cmluZyBsb2NhbE5h
bWUpOworICBbQ0VSZWFjdGlvbnNdIHZvaWQgc2V0QXR0cmlidXRlKERPTVN0cmluZyBxdWFsaWZp
ZWROYW1lLCBET01TdHJpbmcgdmFsdWUpOworICBbQ0VSZWFjdGlvbnNdIHZvaWQgc2V0QXR0cmli
dXRlTlMoRE9NU3RyaW5nPyBuYW1lc3BhY2UsIERPTVN0cmluZyBxdWFsaWZpZWROYW1lLCBET01T
dHJpbmcgdmFsdWUpOworICBbQ0VSZWFjdGlvbnNdIHZvaWQgcmVtb3ZlQXR0cmlidXRlKERPTVN0
cmluZyBxdWFsaWZpZWROYW1lKTsKKyAgW0NFUmVhY3Rpb25zXSB2b2lkIHJlbW92ZUF0dHJpYnV0
ZU5TKERPTVN0cmluZz8gbmFtZXNwYWNlLCBET01TdHJpbmcgbG9jYWxOYW1lKTsKKyAgW0NFUmVh
Y3Rpb25zXSBib29sZWFuIHRvZ2dsZUF0dHJpYnV0ZShET01TdHJpbmcgcXVhbGlmaWVkTmFtZSwg
b3B0aW9uYWwgYm9vbGVhbiBmb3JjZSk7CiAgIGJvb2xlYW4gaGFzQXR0cmlidXRlKERPTVN0cmlu
ZyBxdWFsaWZpZWROYW1lKTsKICAgYm9vbGVhbiBoYXNBdHRyaWJ1dGVOUyhET01TdHJpbmc/IG5h
bWVzcGFjZSwgRE9NU3RyaW5nIGxvY2FsTmFtZSk7CiAKICAgQXR0cj8gZ2V0QXR0cmlidXRlTm9k
ZShET01TdHJpbmcgcXVhbGlmaWVkTmFtZSk7CiAgIEF0dHI/IGdldEF0dHJpYnV0ZU5vZGVOUyhE
T01TdHJpbmc/IG5hbWVzcGFjZSwgRE9NU3RyaW5nIGxvY2FsTmFtZSk7Ci0gIEF0dHI/IHNldEF0
dHJpYnV0ZU5vZGUoQXR0ciBhdHRyKTsKLSAgQXR0cj8gc2V0QXR0cmlidXRlTm9kZU5TKEF0dHIg
YXR0cik7Ci0gIEF0dHIgcmVtb3ZlQXR0cmlidXRlTm9kZShBdHRyIGF0dHIpOworICBbQ0VSZWFj
dGlvbnNdIEF0dHI/IHNldEF0dHJpYnV0ZU5vZGUoQXR0ciBhdHRyKTsKKyAgW0NFUmVhY3Rpb25z
XSBBdHRyPyBzZXRBdHRyaWJ1dGVOb2RlTlMoQXR0ciBhdHRyKTsKKyAgW0NFUmVhY3Rpb25zXSBB
dHRyIHJlbW92ZUF0dHJpYnV0ZU5vZGUoQXR0ciBhdHRyKTsKIAogICBTaGFkb3dSb290IGF0dGFj
aFNoYWRvdyhTaGFkb3dSb290SW5pdCBpbml0KTsKICAgcmVhZG9ubHkgYXR0cmlidXRlIFNoYWRv
d1Jvb3Q/IHNoYWRvd1Jvb3Q7CkBAIC0zNzMsNDEgKzM3MCwzOSBAQCBpbnRlcmZhY2UgRWxlbWVu
dCA6IE5vZGUgewogICBIVE1MQ29sbGVjdGlvbiBnZXRFbGVtZW50c0J5VGFnTmFtZU5TKERPTVN0
cmluZz8gbmFtZXNwYWNlLCBET01TdHJpbmcgbG9jYWxOYW1lKTsKICAgSFRNTENvbGxlY3Rpb24g
Z2V0RWxlbWVudHNCeUNsYXNzTmFtZShET01TdHJpbmcgY2xhc3NOYW1lcyk7CiAKLSAgRWxlbWVu
dD8gaW5zZXJ0QWRqYWNlbnRFbGVtZW50KERPTVN0cmluZyB3aGVyZSwgRWxlbWVudCBlbGVtZW50
KTsgLy8gaGlzdG9yaWNhbAorICBbQ0VSZWFjdGlvbnNdIEVsZW1lbnQ/IGluc2VydEFkamFjZW50
RWxlbWVudChET01TdHJpbmcgd2hlcmUsIEVsZW1lbnQgZWxlbWVudCk7IC8vIGhpc3RvcmljYWwK
ICAgdm9pZCBpbnNlcnRBZGphY2VudFRleHQoRE9NU3RyaW5nIHdoZXJlLCBET01TdHJpbmcgZGF0
YSk7IC8vIGhpc3RvcmljYWwKIH07CiAKIGRpY3Rpb25hcnkgU2hhZG93Um9vdEluaXQgewotLy8g
IHJlcXVpcmVkIFNoYWRvd1Jvb3RNb2RlIG1vZGU7CisgIHJlcXVpcmVkIFNoYWRvd1Jvb3RNb2Rl
IG1vZGU7CiB9OwogCi0KLVtFeHBvc2VkPVdpbmRvdywgTGVnYWN5VW5lbnVtZXJhYmxlTmFtZWRQ
cm9wZXJ0aWVzXQorW0V4cG9zZWQ9V2luZG93LAorIExlZ2FjeVVuZW51bWVyYWJsZU5hbWVkUHJv
cGVydGllc10KIGludGVyZmFjZSBOYW1lZE5vZGVNYXAgewogICByZWFkb25seSBhdHRyaWJ1dGUg
dW5zaWduZWQgbG9uZyBsZW5ndGg7CiAgIGdldHRlciBBdHRyPyBpdGVtKHVuc2lnbmVkIGxvbmcg
aW5kZXgpOwogICBnZXR0ZXIgQXR0cj8gZ2V0TmFtZWRJdGVtKERPTVN0cmluZyBxdWFsaWZpZWRO
YW1lKTsKICAgQXR0cj8gZ2V0TmFtZWRJdGVtTlMoRE9NU3RyaW5nPyBuYW1lc3BhY2UsIERPTVN0
cmluZyBsb2NhbE5hbWUpOwotICBBdHRyPyBzZXROYW1lZEl0ZW0oQXR0ciBhdHRyKTsKLSAgQXR0
cj8gc2V0TmFtZWRJdGVtTlMoQXR0ciBhdHRyKTsKLSAgQXR0ciByZW1vdmVOYW1lZEl0ZW0oRE9N
U3RyaW5nIHF1YWxpZmllZE5hbWUpOwotICBBdHRyIHJlbW92ZU5hbWVkSXRlbU5TKERPTVN0cmlu
Zz8gbmFtZXNwYWNlLCBET01TdHJpbmcgbG9jYWxOYW1lKTsKKyAgW0NFUmVhY3Rpb25zXSBBdHRy
PyBzZXROYW1lZEl0ZW0oQXR0ciBhdHRyKTsKKyAgW0NFUmVhY3Rpb25zXSBBdHRyPyBzZXROYW1l
ZEl0ZW1OUyhBdHRyIGF0dHIpOworICBbQ0VSZWFjdGlvbnNdIEF0dHIgcmVtb3ZlTmFtZWRJdGVt
KERPTVN0cmluZyBxdWFsaWZpZWROYW1lKTsKKyAgW0NFUmVhY3Rpb25zXSBBdHRyIHJlbW92ZU5h
bWVkSXRlbU5TKERPTVN0cmluZz8gbmFtZXNwYWNlLCBET01TdHJpbmcgbG9jYWxOYW1lKTsKIH07
CiAKLQogW0V4cG9zZWQ9V2luZG93XQogaW50ZXJmYWNlIEF0dHIgOiBOb2RlIHsKICAgcmVhZG9u
bHkgYXR0cmlidXRlIERPTVN0cmluZz8gbmFtZXNwYWNlVVJJOwogICByZWFkb25seSBhdHRyaWJ1
dGUgRE9NU3RyaW5nPyBwcmVmaXg7CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgbG9j
YWxOYW1lOwogICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIG5hbWU7Ci0gICAgICAgICAg
IGF0dHJpYnV0ZSBET01TdHJpbmcgdmFsdWU7CisgIFtDRVJlYWN0aW9uc10gYXR0cmlidXRlIERP
TVN0cmluZyB2YWx1ZTsKIAogICByZWFkb25seSBhdHRyaWJ1dGUgRWxlbWVudD8gb3duZXJFbGVt
ZW50OwogCiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIHNwZWNpZmllZDsgLy8gdXNlbGVz
czsgYWx3YXlzIHJldHVybnMgdHJ1ZQogfTsKLQogW0V4cG9zZWQ9V2luZG93XQogaW50ZXJmYWNl
IENoYXJhY3RlckRhdGEgOiBOb2RlIHsKICAgYXR0cmlidXRlIFtUcmVhdE51bGxBcz1FbXB0eVN0
cmluZ10gRE9NU3RyaW5nIGRhdGE7CkBAIC00MTksMjkgKzQxNCwyNCBAQCBpbnRlcmZhY2UgQ2hh
cmFjdGVyRGF0YSA6IE5vZGUgewogICB2b2lkIHJlcGxhY2VEYXRhKHVuc2lnbmVkIGxvbmcgb2Zm
c2V0LCB1bnNpZ25lZCBsb25nIGNvdW50LCBET01TdHJpbmcgZGF0YSk7CiB9OwogCi0KIFtDb25z
dHJ1Y3RvcihvcHRpb25hbCBET01TdHJpbmcgZGF0YSA9ICIiKSwKICBFeHBvc2VkPVdpbmRvd10K
IGludGVyZmFjZSBUZXh0IDogQ2hhcmFjdGVyRGF0YSB7CiAgIFtOZXdPYmplY3RdIFRleHQgc3Bs
aXRUZXh0KHVuc2lnbmVkIGxvbmcgb2Zmc2V0KTsKICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0
cmluZyB3aG9sZVRleHQ7CiB9OwotCiBbRXhwb3NlZD1XaW5kb3ddCiBpbnRlcmZhY2UgQ0RBVEFT
ZWN0aW9uIDogVGV4dCB7CiB9OwotCiBbRXhwb3NlZD1XaW5kb3ddCiBpbnRlcmZhY2UgUHJvY2Vz
c2luZ0luc3RydWN0aW9uIDogQ2hhcmFjdGVyRGF0YSB7CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBE
T01TdHJpbmcgdGFyZ2V0OwogfTsKLQogW0NvbnN0cnVjdG9yKG9wdGlvbmFsIERPTVN0cmluZyBk
YXRhID0gIiIpLAogIEV4cG9zZWQ9V2luZG93XQogaW50ZXJmYWNlIENvbW1lbnQgOiBDaGFyYWN0
ZXJEYXRhIHsKIH07CiAKLQogW0V4cG9zZWQ9V2luZG93XQogaW50ZXJmYWNlIEFic3RyYWN0UmFu
Z2UgewogICByZWFkb25seSBhdHRyaWJ1dGUgTm9kZSBzdGFydENvbnRhaW5lcjsKQEAgLTQ1MSw3
ICs0NDEsMTUgQEAgaW50ZXJmYWNlIEFic3RyYWN0UmFuZ2UgewogICByZWFkb25seSBhdHRyaWJ1
dGUgYm9vbGVhbiBjb2xsYXBzZWQ7CiB9OwogCi1bRXhwb3NlZD1XaW5kb3ddCitkaWN0aW9uYXJ5
IFN0YXRpY1JhbmdlSW5pdCB7CisgIHJlcXVpcmVkIE5vZGUgc3RhcnRDb250YWluZXI7CisgIHJl
cXVpcmVkIHVuc2lnbmVkIGxvbmcgc3RhcnRPZmZzZXQ7CisgIHJlcXVpcmVkIE5vZGUgZW5kQ29u
dGFpbmVyOworICByZXF1aXJlZCB1bnNpZ25lZCBsb25nIGVuZE9mZnNldDsKK307CisKK1tDb25z
dHJ1Y3RvcihTdGF0aWNSYW5nZUluaXQgaW5pdCksCisgRXhwb3NlZD1XaW5kb3ddCiBpbnRlcmZh
Y2UgU3RhdGljUmFuZ2UgOiBBYnN0cmFjdFJhbmdlIHsKIH07CiAKQEAgLTQ3NiwxMSArNDc0LDEx
IEBAIGludGVyZmFjZSBSYW5nZSA6IEFic3RyYWN0UmFuZ2UgewogICBjb25zdCB1bnNpZ25lZCBz
aG9ydCBFTkRfVE9fU1RBUlQgPSAzOwogICBzaG9ydCBjb21wYXJlQm91bmRhcnlQb2ludHModW5z
aWduZWQgc2hvcnQgaG93LCBSYW5nZSBzb3VyY2VSYW5nZSk7CiAKLSAgdm9pZCBkZWxldGVDb250
ZW50cygpOwotICBbTmV3T2JqZWN0XSBEb2N1bWVudEZyYWdtZW50IGV4dHJhY3RDb250ZW50cygp
OwotICBbTmV3T2JqZWN0XSBEb2N1bWVudEZyYWdtZW50IGNsb25lQ29udGVudHMoKTsKLSAgdm9p
ZCBpbnNlcnROb2RlKE5vZGUgbm9kZSk7Ci0gIHZvaWQgc3Vycm91bmRDb250ZW50cyhOb2RlIG5l
d1BhcmVudCk7CisgIFtDRVJlYWN0aW9uc10gdm9pZCBkZWxldGVDb250ZW50cygpOworICBbQ0VS
ZWFjdGlvbnMsIE5ld09iamVjdF0gRG9jdW1lbnRGcmFnbWVudCBleHRyYWN0Q29udGVudHMoKTsK
KyAgW0NFUmVhY3Rpb25zLCBOZXdPYmplY3RdIERvY3VtZW50RnJhZ21lbnQgY2xvbmVDb250ZW50
cygpOworICBbQ0VSZWFjdGlvbnNdIHZvaWQgaW5zZXJ0Tm9kZShOb2RlIG5vZGUpOworICBbQ0VS
ZWFjdGlvbnNdIHZvaWQgc3Vycm91bmRDb250ZW50cyhOb2RlIG5ld1BhcmVudCk7CiAKICAgW05l
d09iamVjdF0gUmFuZ2UgY2xvbmVSYW5nZSgpOwogICB2b2lkIGRldGFjaCgpOwpAQCAtNDkzLDcg
KzQ5MSw2IEBAIGludGVyZmFjZSBSYW5nZSA6IEFic3RyYWN0UmFuZ2UgewogICBzdHJpbmdpZmll
cjsKIH07CiAKLQogW0V4cG9zZWQ9V2luZG93XQogaW50ZXJmYWNlIE5vZGVJdGVyYXRvciB7CiAg
IFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgTm9kZSByb290OwpAQCAtNTA4LDcgKzUw
NSw2IEBAIGludGVyZmFjZSBOb2RlSXRlcmF0b3IgewogICB2b2lkIGRldGFjaCgpOwogfTsKIAot
CiBbRXhwb3NlZD1XaW5kb3ddCiBpbnRlcmZhY2UgVHJlZVdhbGtlciB7CiAgIFtTYW1lT2JqZWN0
XSByZWFkb25seSBhdHRyaWJ1dGUgTm9kZSByb290OwpAQCAtNTI0LDcgKzUyMCw2IEBAIGludGVy
ZmFjZSBUcmVlV2Fsa2VyIHsKICAgTm9kZT8gcHJldmlvdXNOb2RlKCk7CiAgIE5vZGU/IG5leHRO
b2RlKCk7CiB9OwotCiBbRXhwb3NlZD1XaW5kb3ddCiBjYWxsYmFjayBpbnRlcmZhY2UgTm9kZUZp
bHRlciB7CiAgIC8vIENvbnN0YW50cyBmb3IgYWNjZXB0Tm9kZSgpCkBAIC01MzUsNyArNTMwLDcg
QEAgY2FsbGJhY2sgaW50ZXJmYWNlIE5vZGVGaWx0ZXIgewogICAvLyBDb25zdGFudHMgZm9yIHdo
YXRUb1Nob3cKICAgY29uc3QgdW5zaWduZWQgbG9uZyBTSE9XX0FMTCA9IDB4RkZGRkZGRkY7CiAg
IGNvbnN0IHVuc2lnbmVkIGxvbmcgU0hPV19FTEVNRU5UID0gMHgxOwotICBjb25zdCB1bnNpZ25l
ZCBsb25nIFNIT1dfQVRUUklCVVRFID0gMHgyOyAvLyBoaXN0b3JpY2FsCisgIGNvbnN0IHVuc2ln
bmVkIGxvbmcgU0hPV19BVFRSSUJVVEUgPSAweDI7CiAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgU0hP
V19URVhUID0gMHg0OwogICBjb25zdCB1bnNpZ25lZCBsb25nIFNIT1dfQ0RBVEFfU0VDVElPTiA9
IDB4ODsKICAgY29uc3QgdW5zaWduZWQgbG9uZyBTSE9XX0VOVElUWV9SRUZFUkVOQ0UgPSAweDEw
OyAvLyBoaXN0b3JpY2FsCkBAIC01NTAsNyArNTQ1LDcgQEAgY2FsbGJhY2sgaW50ZXJmYWNlIE5v
ZGVGaWx0ZXIgewogICB1bnNpZ25lZCBzaG9ydCBhY2NlcHROb2RlKE5vZGUgbm9kZSk7CiB9Owog
Ci0KK1tFeHBvc2VkPVdpbmRvd10KIGludGVyZmFjZSBET01Ub2tlbkxpc3QgewogICByZWFkb25s
eSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsZW5ndGg7CiAgIGdldHRlciBET01TdHJpbmc/IGl0
ZW0odW5zaWduZWQgbG9uZyBpbmRleCk7CkBAIC01NjEsNSArNTU2LDUzIEBAIGludGVyZmFjZSBE
T01Ub2tlbkxpc3QgewogICBbQ0VSZWFjdGlvbnNdIGJvb2xlYW4gcmVwbGFjZShET01TdHJpbmcg
dG9rZW4sIERPTVN0cmluZyBuZXdUb2tlbik7CiAgIGJvb2xlYW4gc3VwcG9ydHMoRE9NU3RyaW5n
IHRva2VuKTsKICAgW0NFUmVhY3Rpb25zXSBzdHJpbmdpZmllciBhdHRyaWJ1dGUgRE9NU3RyaW5n
IHZhbHVlOwotICAvLyAgaXRlcmFibGU8RE9NU3RyaW5nPjsKKyAgaXRlcmFibGU8RE9NU3RyaW5n
PjsKK307CisKK1tFeHBvc2VkPVdpbmRvd10KK2ludGVyZmFjZSBYUGF0aFJlc3VsdCB7CisgIGNv
bnN0IHVuc2lnbmVkIHNob3J0IEFOWV9UWVBFID0gMDsKKyAgY29uc3QgdW5zaWduZWQgc2hvcnQg
TlVNQkVSX1RZUEUgPSAxOworICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVFJJTkdfVFlQRSA9IDI7
CisgIGNvbnN0IHVuc2lnbmVkIHNob3J0IEJPT0xFQU5fVFlQRSA9IDM7CisgIGNvbnN0IHVuc2ln
bmVkIHNob3J0IFVOT1JERVJFRF9OT0RFX0lURVJBVE9SX1RZUEUgPSA0OworICBjb25zdCB1bnNp
Z25lZCBzaG9ydCBPUkRFUkVEX05PREVfSVRFUkFUT1JfVFlQRSA9IDU7CisgIGNvbnN0IHVuc2ln
bmVkIHNob3J0IFVOT1JERVJFRF9OT0RFX1NOQVBTSE9UX1RZUEUgPSA2OworICBjb25zdCB1bnNp
Z25lZCBzaG9ydCBPUkRFUkVEX05PREVfU05BUFNIT1RfVFlQRSA9IDc7CisgIGNvbnN0IHVuc2ln
bmVkIHNob3J0IEFOWV9VTk9SREVSRURfTk9ERV9UWVBFID0gODsKKyAgY29uc3QgdW5zaWduZWQg
c2hvcnQgRklSU1RfT1JERVJFRF9OT0RFX1RZUEUgPSA5OworCisgIHJlYWRvbmx5IGF0dHJpYnV0
ZSB1bnNpZ25lZCBzaG9ydCByZXN1bHRUeXBlOworICByZWFkb25seSBhdHRyaWJ1dGUgdW5yZXN0
cmljdGVkIGRvdWJsZSBudW1iZXJWYWx1ZTsKKyAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmlu
ZyBzdHJpbmdWYWx1ZTsKKyAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gYm9vbGVhblZhbHVl
OworICByZWFkb25seSBhdHRyaWJ1dGUgTm9kZT8gc2luZ2xlTm9kZVZhbHVlOworICByZWFkb25s
eSBhdHRyaWJ1dGUgYm9vbGVhbiBpbnZhbGlkSXRlcmF0b3JTdGF0ZTsKKyAgcmVhZG9ubHkgYXR0
cmlidXRlIHVuc2lnbmVkIGxvbmcgc25hcHNob3RMZW5ndGg7CisKKyAgTm9kZT8gaXRlcmF0ZU5l
eHQoKTsKKyAgTm9kZT8gc25hcHNob3RJdGVtKHVuc2lnbmVkIGxvbmcgaW5kZXgpOworfTsKKwor
W0V4cG9zZWQ9V2luZG93XQoraW50ZXJmYWNlIFhQYXRoRXhwcmVzc2lvbiB7CisgIC8vIFhQYXRo
UmVzdWx0LkFOWV9UWVBFID0gMAorICBYUGF0aFJlc3VsdCBldmFsdWF0ZShOb2RlIGNvbnRleHRO
b2RlLCBvcHRpb25hbCB1bnNpZ25lZCBzaG9ydCB0eXBlID0gMCwgb3B0aW9uYWwgWFBhdGhSZXN1
bHQ/IHJlc3VsdCA9IG51bGwpOwogfTsKKworY2FsbGJhY2sgaW50ZXJmYWNlIFhQYXRoTlNSZXNv
bHZlciB7CisgIERPTVN0cmluZz8gbG9va3VwTmFtZXNwYWNlVVJJKERPTVN0cmluZz8gcHJlZml4
KTsKK307CisKK2ludGVyZmFjZSBtaXhpbiBYUGF0aEV2YWx1YXRvckJhc2UgeworICBbTmV3T2Jq
ZWN0XSBYUGF0aEV4cHJlc3Npb24gY3JlYXRlRXhwcmVzc2lvbihET01TdHJpbmcgZXhwcmVzc2lv
biwgb3B0aW9uYWwgWFBhdGhOU1Jlc29sdmVyPyByZXNvbHZlciA9IG51bGwpOworICBYUGF0aE5T
UmVzb2x2ZXIgY3JlYXRlTlNSZXNvbHZlcihOb2RlIG5vZGVSZXNvbHZlcik7CisgIC8vIFhQYXRo
UmVzdWx0LkFOWV9UWVBFID0gMAorICBYUGF0aFJlc3VsdCBldmFsdWF0ZShET01TdHJpbmcgZXhw
cmVzc2lvbiwgTm9kZSBjb250ZXh0Tm9kZSwgb3B0aW9uYWwgWFBhdGhOU1Jlc29sdmVyPyByZXNv
bHZlciA9IG51bGwsIG9wdGlvbmFsIHVuc2lnbmVkIHNob3J0IHR5cGUgPSAwLCBvcHRpb25hbCBY
UGF0aFJlc3VsdD8gcmVzdWx0ID0gbnVsbCk7Cit9OworRG9jdW1lbnQgaW5jbHVkZXMgWFBhdGhF
dmFsdWF0b3JCYXNlOworCitbRXhwb3NlZD1XaW5kb3csIENvbnN0cnVjdG9yXQoraW50ZXJmYWNl
IFhQYXRoRXZhbHVhdG9yIHt9OworCitYUGF0aEV2YWx1YXRvciBpbmNsdWRlcyBYUGF0aEV2YWx1
YXRvckJhc2U7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ludGVyZmFjZXMvaHRtbC5pZGwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ludGVyZmFjZXMvaHRtbC5pZGwKaW5kZXggNDkzNDhhNzIzYjM1
OTM1MWFmZmI4MTQ2ZjAwYTAwYmI0ZTZhMzE5OS4uZDg1NmNkNTc4YWEwYTBkMTVmMDlkMGM5NWJl
YmY0OGIwZjk1YzBkNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9pbnRlcmZhY2VzL2h0bWwuaWRsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW50ZXJmYWNlcy9odG1sLmlkbApAQCAtMSw4ICsx
LDEzIEBACisvLyBHRU5FUkFURUQgQ09OVEVOVCAtIERPIE5PVCBFRElUCisvLyBDb250ZW50IHdh
cyBhdXRvbWF0aWNhbGx5IGV4dHJhY3RlZCBieSBSZWZmeSBpbnRvIHJlZmZ5LXJlcG9ydHMKKy8v
IChodHRwczovL2dpdGh1Yi5jb20vdGlkb3VzdC9yZWZmeS1yZXBvcnRzKQorLy8gU291cmNlOiBI
VE1MIFN0YW5kYXJkIChodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnLykKKwogW0V4cG9zZWQ9
V2luZG93LAogIExlZ2FjeVVuZW51bWVyYWJsZU5hbWVkUHJvcGVydGllc10KIGludGVyZmFjZSBI
VE1MQWxsQ29sbGVjdGlvbiB7CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxl
bmd0aDsKLSAgZ2V0dGVyIEVsZW1lbnQ/ICh1bnNpZ25lZCBsb25nIGluZGV4KTsKKyAgZ2V0dGVy
IEVsZW1lbnQgKHVuc2lnbmVkIGxvbmcgaW5kZXgpOwogICBnZXR0ZXIgKEhUTUxDb2xsZWN0aW9u
IG9yIEVsZW1lbnQpPyBuYW1lZEl0ZW0oRE9NU3RyaW5nIG5hbWUpOwogICAoSFRNTENvbGxlY3Rp
b24gb3IgRWxlbWVudCk/IGl0ZW0ob3B0aW9uYWwgRE9NU3RyaW5nIG5hbWVPckluZGV4KTsKIApA
QCAtMTUsNiArMjAsNyBAQCBpbnRlcmZhY2UgSFRNTEZvcm1Db250cm9sc0NvbGxlY3Rpb24gOiBI
VE1MQ29sbGVjdGlvbiB7CiAgIGdldHRlciAoUmFkaW9Ob2RlTGlzdCBvciBFbGVtZW50KT8gbmFt
ZWRJdGVtKERPTVN0cmluZyBuYW1lKTsgLy8gc2hhZG93cyBpbmhlcml0ZWQgbmFtZWRJdGVtKCkK
IH07CiAKK1tFeHBvc2VkPVdpbmRvd10KIGludGVyZmFjZSBSYWRpb05vZGVMaXN0IDogTm9kZUxp
c3QgewogICBhdHRyaWJ1dGUgRE9NU3RyaW5nIHZhbHVlOwogfTsKQEAgLTY1LDE1ICs3MSwxNCBA
QCBwYXJ0aWFsIGludGVyZmFjZSBEb2N1bWVudCB7CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBIVE1M
T3JTVkdTY3JpcHRFbGVtZW50PyBjdXJyZW50U2NyaXB0OyAvLyBjbGFzc2ljIHNjcmlwdHMgaW4g
YSBkb2N1bWVudCB0cmVlIG9ubHkKIAogICAvLyBkeW5hbWljIG1hcmt1cCBpbnNlcnRpb24KLSAg
W0NFUmVhY3Rpb25zXSBEb2N1bWVudCBvcGVuKG9wdGlvbmFsIERPTVN0cmluZyB0eXBlID0gInRl
eHQvaHRtbCIsIG9wdGlvbmFsIERPTVN0cmluZyByZXBsYWNlID0gIiIpOwotICBXaW5kb3dQcm94
eSBvcGVuKFVTVlN0cmluZyB1cmwsIERPTVN0cmluZyBuYW1lLCBET01TdHJpbmcgZmVhdHVyZXMp
OworICBbQ0VSZWFjdGlvbnNdIERvY3VtZW50IG9wZW4ob3B0aW9uYWwgRE9NU3RyaW5nIHVudXNl
ZDEsIG9wdGlvbmFsIERPTVN0cmluZyB1bnVzZWQyKTsgLy8gYm90aCBhcmd1bWVudHMgYXJlIGln
bm9yZWQKKyAgV2luZG93UHJveHk/IG9wZW4oVVNWU3RyaW5nIHVybCwgRE9NU3RyaW5nIG5hbWUs
IERPTVN0cmluZyBmZWF0dXJlcyk7CiAgIFtDRVJlYWN0aW9uc10gdm9pZCBjbG9zZSgpOwogICBb
Q0VSZWFjdGlvbnNdIHZvaWQgd3JpdGUoRE9NU3RyaW5nLi4uIHRleHQpOwogICBbQ0VSZWFjdGlv
bnNdIHZvaWQgd3JpdGVsbihET01TdHJpbmcuLi4gdGV4dCk7CiAKICAgLy8gdXNlciBpbnRlcmFj
dGlvbgogICByZWFkb25seSBhdHRyaWJ1dGUgV2luZG93UHJveHk/IGRlZmF1bHRWaWV3OwotICBy
ZWFkb25seSBhdHRyaWJ1dGUgRWxlbWVudD8gYWN0aXZlRWxlbWVudDsKICAgYm9vbGVhbiBoYXNG
b2N1cygpOwogICBbQ0VSZWFjdGlvbnNdIGF0dHJpYnV0ZSBET01TdHJpbmcgZGVzaWduTW9kZTsK
ICAgW0NFUmVhY3Rpb25zXSBib29sZWFuIGV4ZWNDb21tYW5kKERPTVN0cmluZyBjb21tYW5kSWQs
IG9wdGlvbmFsIGJvb2xlYW4gc2hvd1VJID0gZmFsc2UsIG9wdGlvbmFsIERPTVN0cmluZyB2YWx1
ZSA9ICIiKTsKQEAgLTg1LDEwICs5MCwxNiBAQCBwYXJ0aWFsIGludGVyZmFjZSBEb2N1bWVudCB7
CiAKICAgLy8gc3BlY2lhbCBldmVudCBoYW5kbGVyIElETCBhdHRyaWJ1dGVzIHRoYXQgb25seSBh
cHBseSB0byBEb2N1bWVudCBvYmplY3RzCiAgIFtMZW5pZW50VGhpc10gYXR0cmlidXRlIEV2ZW50
SGFuZGxlciBvbnJlYWR5c3RhdGVjaGFuZ2U7CisKKyAgLy8gYWxzbyBoYXMgb2Jzb2xldGUgbWVt
YmVycwogfTsKIERvY3VtZW50IGluY2x1ZGVzIEdsb2JhbEV2ZW50SGFuZGxlcnM7CiBEb2N1bWVu
dCBpbmNsdWRlcyBEb2N1bWVudEFuZEVsZW1lbnRFdmVudEhhbmRsZXJzOwogCitwYXJ0aWFsIGlu
dGVyZmFjZSBtaXhpbiBEb2N1bWVudE9yU2hhZG93Um9vdCB7CisgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBFbGVtZW50PyBhY3RpdmVFbGVtZW50OworfTsKKwogW0V4cG9zZWQ9V2luZG93LAogIEhUTUxD
b25zdHJ1Y3Rvcl0KIGludGVyZmFjZSBIVE1MRWxlbWVudCA6IEVsZW1lbnQgewpAQCAtOTcsMzMg
KzEwOCw0MCBAQCBpbnRlcmZhY2UgSFRNTEVsZW1lbnQgOiBFbGVtZW50IHsKICAgW0NFUmVhY3Rp
b25zXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGxhbmc7CiAgIFtDRVJlYWN0aW9uc10gYXR0cmlidXRl
IGJvb2xlYW4gdHJhbnNsYXRlOwogICBbQ0VSZWFjdGlvbnNdIGF0dHJpYnV0ZSBET01TdHJpbmcg
ZGlyOwotICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZ01hcCBkYXRh
c2V0OwogCiAgIC8vIHVzZXIgaW50ZXJhY3Rpb24KICAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUg
Ym9vbGVhbiBoaWRkZW47CiAgIHZvaWQgY2xpY2soKTsKLSAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1
dGUgbG9uZyB0YWJJbmRleDsKLSAgdm9pZCBmb2N1cyhvcHRpb25hbCBGb2N1c09wdGlvbnMgb3B0
aW9ucyk7Ci0gIHZvaWQgYmx1cigpOwogICBbQ0VSZWFjdGlvbnNdIGF0dHJpYnV0ZSBET01TdHJp
bmcgYWNjZXNzS2V5OwogICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGFjY2Vzc0tleUxh
YmVsOwogICBbQ0VSZWFjdGlvbnNdIGF0dHJpYnV0ZSBib29sZWFuIGRyYWdnYWJsZTsKICAgW0NF
UmVhY3Rpb25zXSBhdHRyaWJ1dGUgYm9vbGVhbiBzcGVsbGNoZWNrOworICBbQ0VSZWFjdGlvbnNd
IGF0dHJpYnV0ZSBET01TdHJpbmcgYXV0b2NhcGl0YWxpemU7CiAKICAgW0NFUmVhY3Rpb25zXSBh
dHRyaWJ1dGUgW1RyZWF0TnVsbEFzPUVtcHR5U3RyaW5nXSBET01TdHJpbmcgaW5uZXJUZXh0Owot
fTsKIAotZGljdGlvbmFyeSBGb2N1c09wdGlvbnMgewotICBib29sZWFuIHByZXZlbnRTY3JvbGwg
PSBmYWxzZTsKKyAgRWxlbWVudEludGVybmFscyBhdHRhY2hJbnRlcm5hbHMoKTsKIH07CiAKIEhU
TUxFbGVtZW50IGluY2x1ZGVzIEdsb2JhbEV2ZW50SGFuZGxlcnM7CiBIVE1MRWxlbWVudCBpbmNs
dWRlcyBEb2N1bWVudEFuZEVsZW1lbnRFdmVudEhhbmRsZXJzOwogSFRNTEVsZW1lbnQgaW5jbHVk
ZXMgRWxlbWVudENvbnRlbnRFZGl0YWJsZTsKK0hUTUxFbGVtZW50IGluY2x1ZGVzIEhUTUxPclNW
R0VsZW1lbnQ7CiAKIC8vIE5vdGU6IGludGVudGlvbmFsbHkgbm90IFtIVE1MQ29uc3RydWN0b3Jd
CitbRXhwb3NlZD1XaW5kb3ddCiBpbnRlcmZhY2UgSFRNTFVua25vd25FbGVtZW50IDogSFRNTEVs
ZW1lbnQgeyB9OwogCitpbnRlcmZhY2UgbWl4aW4gSFRNTE9yU1ZHRWxlbWVudCB7CisgIFtTYW1l
T2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nTWFwIGRhdGFzZXQ7CisgIGF0dHJp
YnV0ZSBET01TdHJpbmcgbm9uY2U7IC8vIGludGVudGlvbmFsbHkgbm8gW0NFUmVhY3Rpb25zXQor
CisgIFtDRVJlYWN0aW9uc10gYXR0cmlidXRlIGJvb2xlYW4gYXV0b2ZvY3VzOworICBbQ0VSZWFj
dGlvbnNdIGF0dHJpYnV0ZSBsb25nIHRhYkluZGV4OworICB2b2lkIGZvY3VzKG9wdGlvbmFsIEZv
Y3VzT3B0aW9ucyBvcHRpb25zID0ge30pOworICB2b2lkIGJsdXIoKTsKK307CisKIFtFeHBvc2Vk
PVdpbmRvdywKICBPdmVycmlkZUJ1aWx0aW5zXQogaW50ZXJmYWNlIERPTVN0cmluZ01hcCB7CkBA
IC0xNjQsMTQgKzE4MiwxMyBAQCBpbnRlcmZhY2UgSFRNTExpbmtFbGVtZW50IDogSFRNTEVsZW1l
bnQgewogICBbQ0VSZWFjdGlvbnNdIGF0dHJpYnV0ZSBET01TdHJpbmcgYXM7IC8vIChkZWZhdWx0
ICIiKQogICBbU2FtZU9iamVjdCwgUHV0Rm9yd2FyZHM9dmFsdWVdIHJlYWRvbmx5IGF0dHJpYnV0
ZSBET01Ub2tlbkxpc3QgcmVsTGlzdDsKICAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgRE9NU3Ry
aW5nIG1lZGlhOwotICBbQ0VSZWFjdGlvbnNdIGF0dHJpYnV0ZSBET01TdHJpbmcgbm9uY2U7CiAg
IFtDRVJlYWN0aW9uc10gYXR0cmlidXRlIERPTVN0cmluZyBpbnRlZ3JpdHk7CiAgIFtDRVJlYWN0
aW9uc10gYXR0cmlidXRlIERPTVN0cmluZyBocmVmbGFuZzsKICAgW0NFUmVhY3Rpb25zXSBhdHRy
aWJ1dGUgRE9NU3RyaW5nIHR5cGU7CiAgIFtTYW1lT2JqZWN0LCBQdXRGb3J3YXJkcz12YWx1ZV0g
cmVhZG9ubHkgYXR0cmlidXRlIERPTVRva2VuTGlzdCBzaXplczsKKyAgW0NFUmVhY3Rpb25zXSBh
dHRyaWJ1dGUgVVNWU3RyaW5nIGltYWdlU3Jjc2V0OworICBbQ0VSZWFjdGlvbnNdIGF0dHJpYnV0
ZSBET01TdHJpbmcgaW1hZ2VTaXplczsKICAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgRE9NU3Ry
aW5nIHJlZmVycmVyUG9saWN5OwotICBbQ0VSZWFjdGlvbnNdIGF0dHJpYnV0ZSBET01TdHJpbmcg
d29ya2VyVHlwZTsKLSAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHVwZGF0ZVZp
YUNhY2hlOwogCiAgIC8vIGFsc28gaGFzIG9ic29sZXRlIG1lbWJlcnMKIH07CkBAIC0xOTEsOCAr
MjA4LDggQEAgaW50ZXJmYWNlIEhUTUxNZXRhRWxlbWVudCA6IEhUTUxFbGVtZW50IHsKICBIVE1M
Q29uc3RydWN0b3JdCiBpbnRlcmZhY2UgSFRNTFN0eWxlRWxlbWVudCA6IEhUTUxFbGVtZW50IHsK
ICAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIG1lZGlhOwotICBbQ0VSZWFjdGlv
bnNdIGF0dHJpYnV0ZSBET01TdHJpbmcgbm9uY2U7Ci0gIFtDRVJlYWN0aW9uc10gYXR0cmlidXRl
IERPTVN0cmluZyB0eXBlOworCisgIC8vIGFsc28gaGFzIG9ic29sZXRlIG1lbWJlcnMKIH07CiBI
VE1MU3R5bGVFbGVtZW50IGluY2x1ZGVzIExpbmtTdHlsZTsKIApAQCAtMzcxLDYgKzM4OCw3IEBA
IGludGVyZmFjZSBIVE1MSW1hZ2VFbGVtZW50IDogSFRNTEVsZW1lbnQgewogICByZWFkb25seSBh
dHRyaWJ1dGUgYm9vbGVhbiBjb21wbGV0ZTsKICAgcmVhZG9ubHkgYXR0cmlidXRlIFVTVlN0cmlu
ZyBjdXJyZW50U3JjOwogICBbQ0VSZWFjdGlvbnNdIGF0dHJpYnV0ZSBET01TdHJpbmcgcmVmZXJy
ZXJQb2xpY3k7CisgIFtDRVJlYWN0aW9uc10gYXR0cmlidXRlIERPTVN0cmluZyBkZWNvZGluZzsK
IAogICBQcm9taXNlPHZvaWQ+IGRlY29kZSgpOwogCkBAIC0zODQsMTYgKzQwMiwxNSBAQCBpbnRl
cmZhY2UgSFRNTElGcmFtZUVsZW1lbnQgOiBIVE1MRWxlbWVudCB7CiAgIFtDRVJlYWN0aW9uc10g
YXR0cmlidXRlIERPTVN0cmluZyBzcmNkb2M7CiAgIFtDRVJlYWN0aW9uc10gYXR0cmlidXRlIERP
TVN0cmluZyBuYW1lOwogICBbU2FtZU9iamVjdCwgUHV0Rm9yd2FyZHM9dmFsdWVdIHJlYWRvbmx5
IGF0dHJpYnV0ZSBET01Ub2tlbkxpc3Qgc2FuZGJveDsKKyAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1
dGUgRE9NU3RyaW5nIGFsbG93OwogICBbQ0VSZWFjdGlvbnNdIGF0dHJpYnV0ZSBib29sZWFuIGFs
bG93RnVsbHNjcmVlbjsKICAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgYm9vbGVhbiBhbGxvd1Bh
eW1lbnRSZXF1ZXN0OwotICBbQ0VSZWFjdGlvbnNdIGF0dHJpYnV0ZSBib29sZWFuIGFsbG93VXNl
ck1lZGlhOwogICBbQ0VSZWFjdGlvbnNdIGF0dHJpYnV0ZSBET01TdHJpbmcgd2lkdGg7CiAgIFtD
RVJlYWN0aW9uc10gYXR0cmlidXRlIERPTVN0cmluZyBoZWlnaHQ7CiAgIFtDRVJlYWN0aW9uc10g
YXR0cmlidXRlIERPTVN0cmluZyByZWZlcnJlclBvbGljeTsKICAgcmVhZG9ubHkgYXR0cmlidXRl
IERvY3VtZW50PyBjb250ZW50RG9jdW1lbnQ7CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBXaW5kb3dQ
cm94eT8gY29udGVudFdpbmRvdzsKICAgRG9jdW1lbnQ/IGdldFNWR0RvY3VtZW50KCk7Ci0gIFtT
YW1lT2JqZWN0LCBQdXRGb3J3YXJkcz12YWx1ZV0gcmVhZG9ubHkgYXR0cmlidXRlIERPTVRva2Vu
TGlzdCBkZWxlZ2F0ZVN0aWNreVVzZXJBY3RpdmF0aW9uOwogCiAgIC8vIGFsc28gaGFzIG9ic29s
ZXRlIG1lbWJlcnMKIH07CkBAIC00MTUsNyArNDMyLDYgQEAgaW50ZXJmYWNlIEhUTUxFbWJlZEVs
ZW1lbnQgOiBIVE1MRWxlbWVudCB7CiBpbnRlcmZhY2UgSFRNTE9iamVjdEVsZW1lbnQgOiBIVE1M
RWxlbWVudCB7CiAgIFtDRVJlYWN0aW9uc10gYXR0cmlidXRlIFVTVlN0cmluZyBkYXRhOwogICBb
Q0VSZWFjdGlvbnNdIGF0dHJpYnV0ZSBET01TdHJpbmcgdHlwZTsKLSAgW0NFUmVhY3Rpb25zXSBh
dHRyaWJ1dGUgYm9vbGVhbiB0eXBlTXVzdE1hdGNoOwogICBbQ0VSZWFjdGlvbnNdIGF0dHJpYnV0
ZSBET01TdHJpbmcgbmFtZTsKICAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHVz
ZU1hcDsKICAgcmVhZG9ubHkgYXR0cmlidXRlIEhUTUxGb3JtRWxlbWVudD8gZm9ybTsKQEAgLTY1
NCw3ICs2NzAsNyBAQCBpbnRlcmZhY2UgVGltZVJhbmdlcyB7CiB9OwogCiBbRXhwb3NlZD1XaW5k
b3csCi0gQ29uc3RydWN0b3IoRE9NU3RyaW5nIHR5cGUsIG9wdGlvbmFsIFRyYWNrRXZlbnRJbml0
IGV2ZW50SW5pdERpY3QpXQorIENvbnN0cnVjdG9yKERPTVN0cmluZyB0eXBlLCBvcHRpb25hbCBU
cmFja0V2ZW50SW5pdCBldmVudEluaXREaWN0ID0ge30pXQogaW50ZXJmYWNlIFRyYWNrRXZlbnQg
OiBFdmVudCB7CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSAoVmlkZW9UcmFjayBvciBBdWRpb1RyYWNr
IG9yIFRleHRUcmFjayk/IHRyYWNrOwogfTsKQEAgLTczMCw3ICs3NDYsNyBAQCBpbnRlcmZhY2Ug
SFRNTFRhYmxlQ29sRWxlbWVudCA6IEhUTUxFbGVtZW50IHsKICBIVE1MQ29uc3RydWN0b3JdCiBp
bnRlcmZhY2UgSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQgOiBIVE1MRWxlbWVudCB7CiAgIFtTYW1l
T2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgSFRNTENvbGxlY3Rpb24gcm93czsKLSAgSFRNTEVs
ZW1lbnQgaW5zZXJ0Um93KG9wdGlvbmFsIGxvbmcgaW5kZXggPSAtMSk7CisgIEhUTUxUYWJsZVJv
d0VsZW1lbnQgaW5zZXJ0Um93KG9wdGlvbmFsIGxvbmcgaW5kZXggPSAtMSk7CiAgIFtDRVJlYWN0
aW9uc10gdm9pZCBkZWxldGVSb3cobG9uZyBpbmRleCk7CiAKICAgLy8gYWxzbyBoYXMgb2Jzb2xl
dGUgbWVtYmVycwpAQCAtNzc2LDYgKzc5Miw4IEBAIGludGVyZmFjZSBIVE1MRm9ybUVsZW1lbnQg
OiBIVE1MRWxlbWVudCB7CiAgIFtDRVJlYWN0aW9uc10gYXR0cmlidXRlIERPTVN0cmluZyBuYW1l
OwogICBbQ0VSZWFjdGlvbnNdIGF0dHJpYnV0ZSBib29sZWFuIG5vVmFsaWRhdGU7CiAgIFtDRVJl
YWN0aW9uc10gYXR0cmlidXRlIERPTVN0cmluZyB0YXJnZXQ7CisgIFtDRVJlYWN0aW9uc10gYXR0
cmlidXRlIERPTVN0cmluZyByZWw7CisgIFtTYW1lT2JqZWN0LCBQdXRGb3J3YXJkcz12YWx1ZV0g
cmVhZG9ubHkgYXR0cmlidXRlIERPTVRva2VuTGlzdCByZWxMaXN0OwogCiAgIFtTYW1lT2JqZWN0
XSByZWFkb25seSBhdHRyaWJ1dGUgSFRNTEZvcm1Db250cm9sc0NvbGxlY3Rpb24gZWxlbWVudHM7
CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxlbmd0aDsKQEAgLTc4Myw2ICs4
MDEsNyBAQCBpbnRlcmZhY2UgSFRNTEZvcm1FbGVtZW50IDogSFRNTEVsZW1lbnQgewogICBnZXR0
ZXIgKFJhZGlvTm9kZUxpc3Qgb3IgRWxlbWVudCkgKERPTVN0cmluZyBuYW1lKTsKIAogICB2b2lk
IHN1Ym1pdCgpOworICB2b2lkIHJlcXVlc3RTdWJtaXQob3B0aW9uYWwgSFRNTEVsZW1lbnQgc3Vi
bWl0dGVyKTsKICAgW0NFUmVhY3Rpb25zXSB2b2lkIHJlc2V0KCk7CiAgIGJvb2xlYW4gY2hlY2tW
YWxpZGl0eSgpOwogICBib29sZWFuIHJlcG9ydFZhbGlkaXR5KCk7CkBAIC04MDIsNyArODIxLDYg
QEAgaW50ZXJmYWNlIEhUTUxJbnB1dEVsZW1lbnQgOiBIVE1MRWxlbWVudCB7CiAgIFtDRVJlYWN0
aW9uc10gYXR0cmlidXRlIERPTVN0cmluZyBhY2NlcHQ7CiAgIFtDRVJlYWN0aW9uc10gYXR0cmli
dXRlIERPTVN0cmluZyBhbHQ7CiAgIFtDRVJlYWN0aW9uc10gYXR0cmlidXRlIERPTVN0cmluZyBh
dXRvY29tcGxldGU7Ci0gIFtDRVJlYWN0aW9uc10gYXR0cmlidXRlIGJvb2xlYW4gYXV0b2ZvY3Vz
OwogICBbQ0VSZWFjdGlvbnNdIGF0dHJpYnV0ZSBib29sZWFuIGRlZmF1bHRDaGVja2VkOwogICBh
dHRyaWJ1dGUgYm9vbGVhbiBjaGVja2VkOwogICBbQ0VSZWFjdGlvbnNdIGF0dHJpYnV0ZSBET01T
dHJpbmcgZGlyTmFtZTsKQEAgLTg2Myw3ICs4ODEsNiBAQCBpbnRlcmZhY2UgSFRNTElucHV0RWxl
bWVudCA6IEhUTUxFbGVtZW50IHsKIFtFeHBvc2VkPVdpbmRvdywKICBIVE1MQ29uc3RydWN0b3Jd
CiBpbnRlcmZhY2UgSFRNTEJ1dHRvbkVsZW1lbnQgOiBIVE1MRWxlbWVudCB7Ci0gIFtDRVJlYWN0
aW9uc10gYXR0cmlidXRlIGJvb2xlYW4gYXV0b2ZvY3VzOwogICBbQ0VSZWFjdGlvbnNdIGF0dHJp
YnV0ZSBib29sZWFuIGRpc2FibGVkOwogICByZWFkb25seSBhdHRyaWJ1dGUgSFRNTEZvcm1FbGVt
ZW50PyBmb3JtOwogICBbQ0VSZWFjdGlvbnNdIGF0dHJpYnV0ZSBVU1ZTdHJpbmcgZm9ybUFjdGlv
bjsKQEAgLTg4OSw3ICs5MDYsNiBAQCBpbnRlcmZhY2UgSFRNTEJ1dHRvbkVsZW1lbnQgOiBIVE1M
RWxlbWVudCB7CiAgSFRNTENvbnN0cnVjdG9yXQogaW50ZXJmYWNlIEhUTUxTZWxlY3RFbGVtZW50
IDogSFRNTEVsZW1lbnQgewogICBbQ0VSZWFjdGlvbnNdIGF0dHJpYnV0ZSBET01TdHJpbmcgYXV0
b2NvbXBsZXRlOwotICBbQ0VSZWFjdGlvbnNdIGF0dHJpYnV0ZSBib29sZWFuIGF1dG9mb2N1czsK
ICAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgYm9vbGVhbiBkaXNhYmxlZDsKICAgcmVhZG9ubHkg
YXR0cmlidXRlIEhUTUxGb3JtRWxlbWVudD8gZm9ybTsKICAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1
dGUgYm9vbGVhbiBtdWx0aXBsZTsKQEAgLTk1NCw3ICs5NzAsNiBAQCBpbnRlcmZhY2UgSFRNTE9w
dGlvbkVsZW1lbnQgOiBIVE1MRWxlbWVudCB7CiAgSFRNTENvbnN0cnVjdG9yXQogaW50ZXJmYWNl
IEhUTUxUZXh0QXJlYUVsZW1lbnQgOiBIVE1MRWxlbWVudCB7CiAgIFtDRVJlYWN0aW9uc10gYXR0
cmlidXRlIERPTVN0cmluZyBhdXRvY29tcGxldGU7Ci0gIFtDRVJlYWN0aW9uc10gYXR0cmlidXRl
IGJvb2xlYW4gYXV0b2ZvY3VzOwogICBbQ0VSZWFjdGlvbnNdIGF0dHJpYnV0ZSB1bnNpZ25lZCBs
b25nIGNvbHM7CiAgIFtDRVJlYWN0aW9uc10gYXR0cmlidXRlIERPTVN0cmluZyBkaXJOYW1lOwog
ICBbQ0VSZWFjdGlvbnNdIGF0dHJpYnV0ZSBib29sZWFuIGRpc2FibGVkOwpAQCAtOTcwLDcgKzk4
NSw3IEBAIGludGVyZmFjZSBIVE1MVGV4dEFyZWFFbGVtZW50IDogSFRNTEVsZW1lbnQgewogCiAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgdHlwZTsKICAgW0NFUmVhY3Rpb25zXSBhdHRy
aWJ1dGUgRE9NU3RyaW5nIGRlZmF1bHRWYWx1ZTsKLSAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUg
W1RyZWF0TnVsbEFzPUVtcHR5U3RyaW5nXSBET01TdHJpbmcgdmFsdWU7CisgIGF0dHJpYnV0ZSBb
VHJlYXROdWxsQXM9RW1wdHlTdHJpbmddIERPTVN0cmluZyB2YWx1ZTsKICAgcmVhZG9ubHkgYXR0
cmlidXRlIHVuc2lnbmVkIGxvbmcgdGV4dExlbmd0aDsKIAogICByZWFkb25seSBhdHRyaWJ1dGUg
Ym9vbGVhbiB3aWxsVmFsaWRhdGU7CkBAIC0xMDgyLDYgKzEwOTcsMTYgQEAgaW50ZXJmYWNlIFZh
bGlkaXR5U3RhdGUgewogICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiB2YWxpZDsKIH07CiAK
K1tFeHBvc2VkPVdpbmRvdywKKyBDb25zdHJ1Y3RvcihET01TdHJpbmcgdHlwZSwgb3B0aW9uYWwg
Rm9ybURhdGFFdmVudEluaXQgZXZlbnRJbml0RGljdCA9IHt9KV0KK2ludGVyZmFjZSBGb3JtRGF0
YUV2ZW50IDogRXZlbnQgeworICByZWFkb25seSBhdHRyaWJ1dGUgRm9ybURhdGEgZm9ybURhdGE7
Cit9OworCitkaWN0aW9uYXJ5IEZvcm1EYXRhRXZlbnRJbml0IDogRXZlbnRJbml0IHsKKyAgcmVx
dWlyZWQgRm9ybURhdGEgZm9ybURhdGE7Cit9OworCiBbRXhwb3NlZD1XaW5kb3csCiAgSFRNTENv
bnN0cnVjdG9yXQogaW50ZXJmYWNlIEhUTUxEZXRhaWxzRWxlbWVudCA6IEhUTUxFbGVtZW50IHsK
QEAgLTExMDgsOSArMTEzMyw4IEBAIGludGVyZmFjZSBIVE1MU2NyaXB0RWxlbWVudCA6IEhUTUxF
bGVtZW50IHsKICAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgYm9vbGVhbiBkZWZlcjsKICAgW0NF
UmVhY3Rpb25zXSBhdHRyaWJ1dGUgRE9NU3RyaW5nPyBjcm9zc09yaWdpbjsKICAgW0NFUmVhY3Rp
b25zXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHRleHQ7Ci0gIFtDRVJlYWN0aW9uc10gYXR0cmlidXRl
IERPTVN0cmluZyBub25jZTsKICAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGlu
dGVncml0eTsKLQorICBbQ0VSZWFjdGlvbnNdIGF0dHJpYnV0ZSBET01TdHJpbmcgcmVmZXJyZXJQ
b2xpY3k7CiAKICAgLy8gYWxzbyBoYXMgb2Jzb2xldGUgbWVtYmVycwogfTsKQEAgLTExMjUsMTUg
KzExNDksMTUgQEAgaW50ZXJmYWNlIEhUTUxUZW1wbGF0ZUVsZW1lbnQgOiBIVE1MRWxlbWVudCB7
CiAgSFRNTENvbnN0cnVjdG9yXQogaW50ZXJmYWNlIEhUTUxTbG90RWxlbWVudCA6IEhUTUxFbGVt
ZW50IHsKICAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIG5hbWU7Ci0gIHNlcXVl
bmNlPE5vZGU+IGFzc2lnbmVkTm9kZXMob3B0aW9uYWwgQXNzaWduZWROb2Rlc09wdGlvbnMgb3B0
aW9ucyk7Ci0gIHNlcXVlbmNlPEVsZW1lbnQ+IGFzc2lnbmVkRWxlbWVudHMob3B0aW9uYWwgQXNz
aWduZWROb2Rlc09wdGlvbnMgb3B0aW9ucyk7CisgIHNlcXVlbmNlPE5vZGU+IGFzc2lnbmVkTm9k
ZXMob3B0aW9uYWwgQXNzaWduZWROb2Rlc09wdGlvbnMgb3B0aW9ucyA9IHt9KTsKKyAgc2VxdWVu
Y2U8RWxlbWVudD4gYXNzaWduZWRFbGVtZW50cyhvcHRpb25hbCBBc3NpZ25lZE5vZGVzT3B0aW9u
cyBvcHRpb25zID0ge30pOwogfTsKIAogZGljdGlvbmFyeSBBc3NpZ25lZE5vZGVzT3B0aW9ucyB7
CiAgIGJvb2xlYW4gZmxhdHRlbiA9IGZhbHNlOwogfTsKIAotdHlwZWRlZiAoQ2FudmFzUmVuZGVy
aW5nQ29udGV4dDJEIG9yIEltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dCBvciBXZWJHTFJlbmRl
cmluZ0NvbnRleHQpIFJlbmRlcmluZ0NvbnRleHQ7Cit0eXBlZGVmIChDYW52YXNSZW5kZXJpbmdD
b250ZXh0MkQgb3IgSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0IG9yIFdlYkdMUmVuZGVyaW5n
Q29udGV4dCBvciBXZWJHTDJSZW5kZXJpbmdDb250ZXh0KSBSZW5kZXJpbmdDb250ZXh0OwogCiBb
RXhwb3NlZD1XaW5kb3csCiAgSFRNTENvbnN0cnVjdG9yXQpAQCAtMTE0Myw4ICsxMTY3LDggQEAg
aW50ZXJmYWNlIEhUTUxDYW52YXNFbGVtZW50IDogSFRNTEVsZW1lbnQgewogCiAgIFJlbmRlcmlu
Z0NvbnRleHQ/IGdldENvbnRleHQoRE9NU3RyaW5nIGNvbnRleHRJZCwgb3B0aW9uYWwgYW55IG9w
dGlvbnMgPSBudWxsKTsKIAotICBVU1ZTdHJpbmcgdG9EYXRhVVJMKG9wdGlvbmFsIERPTVN0cmlu
ZyB0eXBlLCBvcHRpb25hbCBhbnkgcXVhbGl0eSk7Ci0gIHZvaWQgdG9CbG9iKEJsb2JDYWxsYmFj
ayBfY2FsbGJhY2ssIG9wdGlvbmFsIERPTVN0cmluZyB0eXBlLCBvcHRpb25hbCBhbnkgcXVhbGl0
eSk7CisgIFVTVlN0cmluZyB0b0RhdGFVUkwob3B0aW9uYWwgRE9NU3RyaW5nIHR5cGUgPSAiaW1h
Z2UvcG5nIiwgb3B0aW9uYWwgYW55IHF1YWxpdHkpOworICB2b2lkIHRvQmxvYihCbG9iQ2FsbGJh
Y2sgX2NhbGxiYWNrLCBvcHRpb25hbCBET01TdHJpbmcgdHlwZSA9ICJpbWFnZS9wbmciLCBvcHRp
b25hbCBhbnkgcXVhbGl0eSk7CiAgIE9mZnNjcmVlbkNhbnZhcyB0cmFuc2ZlckNvbnRyb2xUb09m
ZnNjcmVlbigpOwogfTsKIApAQCAtMTE2Myw2ICsxMTg3LDcgQEAgZW51bSBDYW52YXNGaWxsUnVs
ZSB7ICJub256ZXJvIiwgImV2ZW5vZGQiIH07CiAKIGRpY3Rpb25hcnkgQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJEU2V0dGluZ3MgewogICBib29sZWFuIGFscGhhID0gdHJ1ZTsKKyAgYm9vbGVhbiBk
ZXN5bmNocm9uaXplZCA9IGZhbHNlOwogfTsKIAogZW51bSBJbWFnZVNtb290aGluZ1F1YWxpdHkg
eyAibG93IiwgIm1lZGl1bSIsICJoaWdoIiB9OwpAQCAtMTE3MSw2ICsxMTk2LDggQEAgZW51bSBJ
bWFnZVNtb290aGluZ1F1YWxpdHkgeyAibG93IiwgIm1lZGl1bSIsICJoaWdoIiB9OwogaW50ZXJm
YWNlIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCB7CiAgIC8vIGJhY2stcmVmZXJlbmNlIHRvIHRo
ZSBjYW52YXMKICAgcmVhZG9ubHkgYXR0cmlidXRlIEhUTUxDYW52YXNFbGVtZW50IGNhbnZhczsK
KworICBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRTZXR0aW5ncyBnZXRDb250ZXh0QXR0cmlidXRl
cygpOwogfTsKIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCBpbmNsdWRlcyBDYW52YXNTdGF0ZTsK
IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCBpbmNsdWRlcyBDYW52YXNUcmFuc2Zvcm07CkBAIC0x
MjA0LDggKzEyMzEsOSBAQCBpbnRlcmZhY2UgbWl4aW4gQ2FudmFzVHJhbnNmb3JtIHsKIAogICBb
TmV3T2JqZWN0XSBET01NYXRyaXggZ2V0VHJhbnNmb3JtKCk7CiAgIHZvaWQgc2V0VHJhbnNmb3Jt
KHVucmVzdHJpY3RlZCBkb3VibGUgYSwgdW5yZXN0cmljdGVkIGRvdWJsZSBiLCB1bnJlc3RyaWN0
ZWQgZG91YmxlIGMsIHVucmVzdHJpY3RlZCBkb3VibGUgZCwgdW5yZXN0cmljdGVkIGRvdWJsZSBl
LCB1bnJlc3RyaWN0ZWQgZG91YmxlIGYpOwotICB2b2lkIHNldFRyYW5zZm9ybShvcHRpb25hbCBE
T01NYXRyaXgyREluaXQgdHJhbnNmb3JtKTsKKyAgdm9pZCBzZXRUcmFuc2Zvcm0ob3B0aW9uYWwg
RE9NTWF0cml4MkRJbml0IHRyYW5zZm9ybSA9IHt9KTsKICAgdm9pZCByZXNldFRyYW5zZm9ybSgp
OworCiB9OwogCiBpbnRlcmZhY2UgbWl4aW4gQ2FudmFzQ29tcG9zaXRpbmcgewpAQCAtMTIxOCw2
ICsxMjQ2LDcgQEAgaW50ZXJmYWNlIG1peGluIENhbnZhc0ltYWdlU21vb3RoaW5nIHsKICAgLy8g
aW1hZ2Ugc21vb3RoaW5nCiAgIGF0dHJpYnV0ZSBib29sZWFuIGltYWdlU21vb3RoaW5nRW5hYmxl
ZDsgLy8gKGRlZmF1bHQgdHJ1ZSkKICAgYXR0cmlidXRlIEltYWdlU21vb3RoaW5nUXVhbGl0eSBp
bWFnZVNtb290aGluZ1F1YWxpdHk7IC8vIChkZWZhdWx0IGxvdykKKwogfTsKIAogaW50ZXJmYWNl
IG1peGluIENhbnZhc0ZpbGxTdHJva2VTdHlsZXMgewpAQCAtMTIyNyw2ICsxMjU2LDcgQEAgaW50
ZXJmYWNlIG1peGluIENhbnZhc0ZpbGxTdHJva2VTdHlsZXMgewogICBDYW52YXNHcmFkaWVudCBj
cmVhdGVMaW5lYXJHcmFkaWVudChkb3VibGUgeDAsIGRvdWJsZSB5MCwgZG91YmxlIHgxLCBkb3Vi
bGUgeTEpOwogICBDYW52YXNHcmFkaWVudCBjcmVhdGVSYWRpYWxHcmFkaWVudChkb3VibGUgeDAs
IGRvdWJsZSB5MCwgZG91YmxlIHIwLCBkb3VibGUgeDEsIGRvdWJsZSB5MSwgZG91YmxlIHIxKTsK
ICAgQ2FudmFzUGF0dGVybj8gY3JlYXRlUGF0dGVybihDYW52YXNJbWFnZVNvdXJjZSBpbWFnZSwg
W1RyZWF0TnVsbEFzPUVtcHR5U3RyaW5nXSBET01TdHJpbmcgcmVwZXRpdGlvbik7CisKIH07CiAK
IGludGVyZmFjZSBtaXhpbiBDYW52YXNTaGFkb3dTdHlsZXMgewpAQCAtMTI1OCw3ICsxMjg4LDYg
QEAgaW50ZXJmYWNlIG1peGluIENhbnZhc0RyYXdQYXRoIHsKICAgdm9pZCBzdHJva2UoUGF0aDJE
IHBhdGgpOwogICB2b2lkIGNsaXAob3B0aW9uYWwgQ2FudmFzRmlsbFJ1bGUgZmlsbFJ1bGUgPSAi
bm9uemVybyIpOwogICB2b2lkIGNsaXAoUGF0aDJEIHBhdGgsIG9wdGlvbmFsIENhbnZhc0ZpbGxS
dWxlIGZpbGxSdWxlID0gIm5vbnplcm8iKTsKLSAgdm9pZCByZXNldENsaXAoKTsKICAgYm9vbGVh
biBpc1BvaW50SW5QYXRoKHVucmVzdHJpY3RlZCBkb3VibGUgeCwgdW5yZXN0cmljdGVkIGRvdWJs
ZSB5LCBvcHRpb25hbCBDYW52YXNGaWxsUnVsZSBmaWxsUnVsZSA9ICJub256ZXJvIik7CiAgIGJv
b2xlYW4gaXNQb2ludEluUGF0aChQYXRoMkQgcGF0aCwgdW5yZXN0cmljdGVkIGRvdWJsZSB4LCB1
bnJlc3RyaWN0ZWQgZG91YmxlIHksIG9wdGlvbmFsIENhbnZhc0ZpbGxSdWxlIGZpbGxSdWxlID0g
Im5vbnplcm8iKTsKICAgYm9vbGVhbiBpc1BvaW50SW5TdHJva2UodW5yZXN0cmljdGVkIGRvdWJs
ZSB4LCB1bnJlc3RyaWN0ZWQgZG91YmxlIHkpOwpAQCAtMTM0NCwxMCArMTM3MywxMCBAQCBpbnRl
cmZhY2UgQ2FudmFzR3JhZGllbnQgewogW0V4cG9zZWQ9KFdpbmRvdyxXb3JrZXIpXQogaW50ZXJm
YWNlIENhbnZhc1BhdHRlcm4gewogICAvLyBvcGFxdWUgb2JqZWN0Ci0gIHZvaWQgc2V0VHJhbnNm
b3JtKG9wdGlvbmFsIERPTU1hdHJpeDJESW5pdCB0cmFuc2Zvcm0pOworICB2b2lkIHNldFRyYW5z
Zm9ybShvcHRpb25hbCBET01NYXRyaXgyREluaXQgdHJhbnNmb3JtID0ge30pOwogfTsKIAotW0V4
cG9zZWQ9V2luZG93XQorW0V4cG9zZWQ9KFdpbmRvdyxXb3JrZXIpXQogaW50ZXJmYWNlIFRleHRN
ZXRyaWNzIHsKICAgLy8geC1kaXJlY3Rpb24KICAgcmVhZG9ubHkgYXR0cmlidXRlIGRvdWJsZSB3
aWR0aDsgLy8gYWR2YW5jZSB3aWR0aApAQCAtMTM3OSwxMyArMTQwOCwxMyBAQCBpbnRlcmZhY2Ug
SW1hZ2VEYXRhIHsKIFtDb25zdHJ1Y3RvcihvcHRpb25hbCAoUGF0aDJEIG9yIERPTVN0cmluZykg
cGF0aCksCiAgRXhwb3NlZD0oV2luZG93LFdvcmtlcildCiBpbnRlcmZhY2UgUGF0aDJEIHsKLSAg
dm9pZCBhZGRQYXRoKFBhdGgyRCBwYXRoLCBvcHRpb25hbCBET01NYXRyaXgyREluaXQgdHJhbnNm
b3JtKTsKKyAgdm9pZCBhZGRQYXRoKFBhdGgyRCBwYXRoLCBvcHRpb25hbCBET01NYXRyaXgyRElu
aXQgdHJhbnNmb3JtID0ge30pOwogfTsKIFBhdGgyRCBpbmNsdWRlcyBDYW52YXNQYXRoOwogCi1b
RXhwb3NlZD1XaW5kb3ddCitbRXhwb3NlZD0oV2luZG93LFdvcmtlcildCiBpbnRlcmZhY2UgSW1h
Z2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0IHsKLSAgcmVhZG9ubHkgYXR0cmlidXRlIEhUTUxDYW52
YXNFbGVtZW50IGNhbnZhczsKKyAgcmVhZG9ubHkgYXR0cmlidXRlIChIVE1MQ2FudmFzRWxlbWVu
dCBvciBPZmZzY3JlZW5DYW52YXMpIGNhbnZhczsKICAgdm9pZCB0cmFuc2ZlckZyb21JbWFnZUJp
dG1hcChJbWFnZUJpdG1hcD8gYml0bWFwKTsKIH07CiAKQEAgLTEzOTMsMjcgKzE0MjIsMjUgQEAg
ZGljdGlvbmFyeSBJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHRTZXR0aW5ncyB7CiAgIGJvb2xl
YW4gYWxwaGEgPSB0cnVlOwogfTsKIAotdHlwZWRlZiAoT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJEIG9yCi0gICAgICAgIFdlYkdMUmVuZGVyaW5nQ29udGV4dCkgT2Zmc2NyZWVuUmVu
ZGVyaW5nQ29udGV4dDsKK3R5cGVkZWYgKE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQy
RCBvciBJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQgb3IgV2ViR0xSZW5kZXJpbmdDb250ZXh0
IG9yIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQpIE9mZnNjcmVlblJlbmRlcmluZ0NvbnRleHQ7CiAK
IGRpY3Rpb25hcnkgSW1hZ2VFbmNvZGVPcHRpb25zIHsKICAgRE9NU3RyaW5nIHR5cGUgPSAiaW1h
Z2UvcG5nIjsKLSAgdW5yZXN0cmljdGVkIGRvdWJsZSBxdWFsaXR5ID0gMS4wOworICB1bnJlc3Ry
aWN0ZWQgZG91YmxlIHF1YWxpdHk7CiB9OwogCi1lbnVtIE9mZnNjcmVlblJlbmRlcmluZ0NvbnRl
eHRJZCB7ICIyZCIsICJ3ZWJnbCIgfTsKK2VudW0gT2Zmc2NyZWVuUmVuZGVyaW5nQ29udGV4dElk
IHsgIjJkIiwgImJpdG1hcHJlbmRlcmVyIiwgIndlYmdsIiwgIndlYmdsMiIgfTsKIAogW0NvbnN0
cnVjdG9yKFtFbmZvcmNlUmFuZ2VdIHVuc2lnbmVkIGxvbmcgbG9uZyB3aWR0aCwgW0VuZm9yY2VS
YW5nZV0gdW5zaWduZWQgbG9uZyBsb25nIGhlaWdodCksIEV4cG9zZWQ9KFdpbmRvdyxXb3JrZXIp
LCBUcmFuc2ZlcmFibGVdCiBpbnRlcmZhY2UgT2Zmc2NyZWVuQ2FudmFzIDogRXZlbnRUYXJnZXQg
ewotICBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsb25nIHdpZHRoOwotICBhdHRyaWJ1dGUgdW5z
aWduZWQgbG9uZyBsb25nIGhlaWdodDsKKyAgYXR0cmlidXRlIFtFbmZvcmNlUmFuZ2VdIHVuc2ln
bmVkIGxvbmcgbG9uZyB3aWR0aDsKKyAgYXR0cmlidXRlIFtFbmZvcmNlUmFuZ2VdIHVuc2lnbmVk
IGxvbmcgbG9uZyBoZWlnaHQ7CiAKICAgT2Zmc2NyZWVuUmVuZGVyaW5nQ29udGV4dD8gZ2V0Q29u
dGV4dChPZmZzY3JlZW5SZW5kZXJpbmdDb250ZXh0SWQgY29udGV4dElkLCBvcHRpb25hbCBhbnkg
b3B0aW9ucyA9IG51bGwpOwogICBJbWFnZUJpdG1hcCB0cmFuc2ZlclRvSW1hZ2VCaXRtYXAoKTsK
LSAgUHJvbWlzZTxCbG9iPiBjb252ZXJ0VG9CbG9iKG9wdGlvbmFsIEltYWdlRW5jb2RlT3B0aW9u
cyBvcHRpb25zKTsKKyAgUHJvbWlzZTxCbG9iPiBjb252ZXJ0VG9CbG9iKG9wdGlvbmFsIEltYWdl
RW5jb2RlT3B0aW9ucyBvcHRpb25zID0ge30pOwogfTsKIAotCiBbRXhwb3NlZD0oV2luZG93LFdv
cmtlcildCiBpbnRlcmZhY2UgT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEIHsKICAg
dm9pZCBjb21taXQoKTsKQEAgLTE0MjksMzIgKzE0NTYsNzUgQEAgT2Zmc2NyZWVuQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dDJEIGluY2x1ZGVzIENhbnZhc1NoYWRvd1N0eWxlczsKIE9mZnNjcmVlbkNh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRCBpbmNsdWRlcyBDYW52YXNGaWx0ZXJzOwogT2Zmc2NyZWVu
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEIGluY2x1ZGVzIENhbnZhc1JlY3Q7CiBPZmZzY3JlZW5D
YW52YXNSZW5kZXJpbmdDb250ZXh0MkQgaW5jbHVkZXMgQ2FudmFzRHJhd1BhdGg7CitPZmZzY3Jl
ZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQgaW5jbHVkZXMgQ2FudmFzVGV4dDsKIE9mZnNjcmVl
bkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCBpbmNsdWRlcyBDYW52YXNEcmF3SW1hZ2U7CiBPZmZz
Y3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQgaW5jbHVkZXMgQ2FudmFzSW1hZ2VEYXRhOwog
T2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEIGluY2x1ZGVzIENhbnZhc1BhdGhEcmF3
aW5nU3R5bGVzOworT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEIGluY2x1ZGVzIENh
bnZhc1RleHREcmF3aW5nU3R5bGVzOwogT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJE
IGluY2x1ZGVzIENhbnZhc1BhdGg7CiAKLQogW0V4cG9zZWQ9V2luZG93XQogaW50ZXJmYWNlIEN1
c3RvbUVsZW1lbnRSZWdpc3RyeSB7Ci0gIFtDRVJlYWN0aW9uc10gdm9pZCBkZWZpbmUoRE9NU3Ry
aW5nIG5hbWUsIEZ1bmN0aW9uIGNvbnN0cnVjdG9yLCBvcHRpb25hbCBFbGVtZW50RGVmaW5pdGlv
bk9wdGlvbnMgb3B0aW9ucyk7CisgIFtDRVJlYWN0aW9uc10gdm9pZCBkZWZpbmUoRE9NU3RyaW5n
IG5hbWUsIEN1c3RvbUVsZW1lbnRDb25zdHJ1Y3RvciBjb25zdHJ1Y3Rvciwgb3B0aW9uYWwgRWxl
bWVudERlZmluaXRpb25PcHRpb25zIG9wdGlvbnMgPSB7fSk7CiAgIGFueSBnZXQoRE9NU3RyaW5n
IG5hbWUpOwogICBQcm9taXNlPHZvaWQ+IHdoZW5EZWZpbmVkKERPTVN0cmluZyBuYW1lKTsKKyAg
W0NFUmVhY3Rpb25zXSB2b2lkIHVwZ3JhZGUoTm9kZSByb290KTsKIH07CiAKK2NhbGxiYWNrIEN1
c3RvbUVsZW1lbnRDb25zdHJ1Y3RvciA9IEhUTUxFbGVtZW50ICgpOworCiBkaWN0aW9uYXJ5IEVs
ZW1lbnREZWZpbml0aW9uT3B0aW9ucyB7CiAgIERPTVN0cmluZyBleHRlbmRzOwogfTsKIAorW0V4
cG9zZWQ9V2luZG93XQoraW50ZXJmYWNlIEVsZW1lbnRJbnRlcm5hbHMgeworICAvLyBGb3JtLWFz
c29jaWF0ZWQgY3VzdG9tIGVsZW1lbnRzCisKKyAgdm9pZCBzZXRGb3JtVmFsdWUoKEZpbGUgb3Ig
VVNWU3RyaW5nIG9yIEZvcm1EYXRhKT8gdmFsdWUsCisgICAgICAgICAgICAgICAgICAgIG9wdGlv
bmFsIChGaWxlIG9yIFVTVlN0cmluZyBvciBGb3JtRGF0YSk/IHN0YXRlKTsKKworICByZWFkb25s
eSBhdHRyaWJ1dGUgSFRNTEZvcm1FbGVtZW50PyBmb3JtOworCisgIHZvaWQgc2V0VmFsaWRpdHko
VmFsaWRpdHlTdGF0ZUZsYWdzIGZsYWdzLAorICAgICAgICAgICAgICAgICAgIG9wdGlvbmFsIERP
TVN0cmluZyBtZXNzYWdlLAorICAgICAgICAgICAgICAgICAgIG9wdGlvbmFsIEhUTUxFbGVtZW50
IGFuY2hvcik7CisgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIHdpbGxWYWxpZGF0ZTsKKyAg
cmVhZG9ubHkgYXR0cmlidXRlIFZhbGlkaXR5U3RhdGUgdmFsaWRpdHk7CisgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBET01TdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2U7CisgIGJvb2xlYW4gY2hlY2tWYWxp
ZGl0eSgpOworICBib29sZWFuIHJlcG9ydFZhbGlkaXR5KCk7CisKKyAgcmVhZG9ubHkgYXR0cmli
dXRlIE5vZGVMaXN0IGxhYmVsczsKK307CisKK2RpY3Rpb25hcnkgVmFsaWRpdHlTdGF0ZUZsYWdz
IHsKKyAgYm9vbGVhbiB2YWx1ZU1pc3NpbmcgPSBmYWxzZTsKKyAgYm9vbGVhbiB0eXBlTWlzbWF0
Y2ggPSBmYWxzZTsKKyAgYm9vbGVhbiBwYXR0ZXJuTWlzbWF0Y2ggPSBmYWxzZTsKKyAgYm9vbGVh
biB0b29Mb25nID0gZmFsc2U7CisgIGJvb2xlYW4gdG9vU2hvcnQgPSBmYWxzZTsKKyAgYm9vbGVh
biByYW5nZVVuZGVyZmxvdyA9IGZhbHNlOworICBib29sZWFuIHJhbmdlT3ZlcmZsb3cgPSBmYWxz
ZTsKKyAgYm9vbGVhbiBzdGVwTWlzbWF0Y2ggPSBmYWxzZTsKKyAgYm9vbGVhbiBiYWRJbnB1dCA9
IGZhbHNlOworICBib29sZWFuIGN1c3RvbUVycm9yID0gZmFsc2U7Cit9OworCitkaWN0aW9uYXJ5
IEZvY3VzT3B0aW9ucyB7CisgIGJvb2xlYW4gcHJldmVudFNjcm9sbCA9IGZhbHNlOworfTsKKwog
aW50ZXJmYWNlIG1peGluIEVsZW1lbnRDb250ZW50RWRpdGFibGUgewogICBbQ0VSZWFjdGlvbnNd
IGF0dHJpYnV0ZSBET01TdHJpbmcgY29udGVudEVkaXRhYmxlOworICBbQ0VSZWFjdGlvbnNdIGF0
dHJpYnV0ZSBET01TdHJpbmcgZW50ZXJLZXlIaW50OwogICByZWFkb25seSBhdHRyaWJ1dGUgYm9v
bGVhbiBpc0NvbnRlbnRFZGl0YWJsZTsKICAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgRE9NU3Ry
aW5nIGlucHV0TW9kZTsKIH07CiAKIFtFeHBvc2VkPVdpbmRvdywKICBDb25zdHJ1Y3Rvcl0KLSAg
aW50ZXJmYWNlIERhdGFUcmFuc2ZlciB7CitpbnRlcmZhY2UgRGF0YVRyYW5zZmVyIHsKICAgYXR0
cmlidXRlIERPTVN0cmluZyBkcm9wRWZmZWN0OwogICBhdHRyaWJ1dGUgRE9NU3RyaW5nIGVmZmVj
dEFsbG93ZWQ7CiAKQEAgLTE0OTEsNyArMTU2MSw3IEBAIGludGVyZmFjZSBEYXRhVHJhbnNmZXJJ
dGVtIHsKIGNhbGxiYWNrIEZ1bmN0aW9uU3RyaW5nQ2FsbGJhY2sgPSB2b2lkIChET01TdHJpbmcg
ZGF0YSk7CiAKIFtFeHBvc2VkPVdpbmRvdywKLSBDb25zdHJ1Y3RvcihET01TdHJpbmcgdHlwZSwg
b3B0aW9uYWwgRHJhZ0V2ZW50SW5pdCBldmVudEluaXREaWN0KV0KKyBDb25zdHJ1Y3RvcihET01T
dHJpbmcgdHlwZSwgb3B0aW9uYWwgRHJhZ0V2ZW50SW5pdCBldmVudEluaXREaWN0ID0ge30pXQog
aW50ZXJmYWNlIERyYWdFdmVudCA6IE1vdXNlRXZlbnQgewogICByZWFkb25seSBhdHRyaWJ1dGUg
RGF0YVRyYW5zZmVyPyBkYXRhVHJhbnNmZXI7CiB9OwpAQCAtMTUzMiw3ICsxNjAyLDcgQEAgaW50
ZXJmYWNlIFdpbmRvdyA6IEV2ZW50VGFyZ2V0IHsKICAgYXR0cmlidXRlIGFueSBvcGVuZXI7CiAg
IFtSZXBsYWNlYWJsZV0gcmVhZG9ubHkgYXR0cmlidXRlIFdpbmRvd1Byb3h5PyBwYXJlbnQ7CiAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBFbGVtZW50PyBmcmFtZUVsZW1lbnQ7Ci0gIFdpbmRvd1Byb3h5
PyBvcGVuKG9wdGlvbmFsIFVTVlN0cmluZyB1cmwgPSAiYWJvdXQ6YmxhbmsiLCBvcHRpb25hbCBE
T01TdHJpbmcgdGFyZ2V0ID0gIl9ibGFuayIsIG9wdGlvbmFsIFtUcmVhdE51bGxBcz1FbXB0eVN0
cmluZ10gRE9NU3RyaW5nIGZlYXR1cmVzID0gIiIpOworICBXaW5kb3dQcm94eT8gb3BlbihvcHRp
b25hbCBVU1ZTdHJpbmcgdXJsID0gIiIsIG9wdGlvbmFsIERPTVN0cmluZyB0YXJnZXQgPSAiX2Js
YW5rIiwgb3B0aW9uYWwgW1RyZWF0TnVsbEFzPUVtcHR5U3RyaW5nXSBET01TdHJpbmcgZmVhdHVy
ZXMgPSAiIik7CiAgIGdldHRlciBvYmplY3QgKERPTVN0cmluZyBuYW1lKTsKICAgLy8gU2luY2Ug
dGhpcyBpcyB0aGUgZ2xvYmFsIG9iamVjdCwgdGhlIElETCBuYW1lZCBnZXR0ZXIgYWRkcyBhIE5h
bWVkUHJvcGVydGllc09iamVjdCBleG90aWMKICAgLy8gb2JqZWN0IG9uIHRoZSBwcm90b3R5cGUg
Y2hhaW4uIEluZGVlZCwgdGhpcyBkb2VzIG5vdCBtYWtlIHRoZSBnbG9iYWwgb2JqZWN0IGFuIGV4
b3RpYyBvYmplY3QuCkBAIC0xNTQwLDcgKzE2MTAsNyBAQCBpbnRlcmZhY2UgV2luZG93IDogRXZl
bnRUYXJnZXQgewogCiAgIC8vIHRoZSB1c2VyIGFnZW50CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBO
YXZpZ2F0b3IgbmF2aWdhdG9yOwotICByZWFkb25seSBhdHRyaWJ1dGUgQXBwbGljYXRpb25DYWNo
ZSBhcHBsaWNhdGlvbkNhY2hlOworICBbU2VjdXJlQ29udGV4dF0gcmVhZG9ubHkgYXR0cmlidXRl
IEFwcGxpY2F0aW9uQ2FjaGUgYXBwbGljYXRpb25DYWNoZTsKIAogICAvLyB1c2VyIHByb21wdHMK
ICAgdm9pZCBhbGVydCgpOwpAQCAtMTU0OSwxNyArMTYxOSwxNSBAQCBpbnRlcmZhY2UgV2luZG93
IDogRXZlbnRUYXJnZXQgewogICBET01TdHJpbmc/IHByb21wdChvcHRpb25hbCBET01TdHJpbmcg
bWVzc2FnZSA9ICIiLCBvcHRpb25hbCBET01TdHJpbmcgZGVmYXVsdCA9ICIiKTsKICAgdm9pZCBw
cmludCgpOwogCi0gIHVuc2lnbmVkIGxvbmcgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKEZyYW1lUmVx
dWVzdENhbGxiYWNrIGNhbGxiYWNrKTsKLSAgdm9pZCBjYW5jZWxBbmltYXRpb25GcmFtZSh1bnNp
Z25lZCBsb25nIGhhbmRsZSk7Ci0KICAgdm9pZCBwb3N0TWVzc2FnZShhbnkgbWVzc2FnZSwgVVNW
U3RyaW5nIHRhcmdldE9yaWdpbiwgb3B0aW9uYWwgc2VxdWVuY2U8b2JqZWN0PiB0cmFuc2ZlciA9
IFtdKTsKLQotICAvLyBhbHNvIGhhcyBvYnNvbGV0ZSBtZW1iZXJzCisgIHZvaWQgcG9zdE1lc3Nh
Z2UoYW55IG1lc3NhZ2UsIG9wdGlvbmFsIFdpbmRvd1Bvc3RNZXNzYWdlT3B0aW9ucyBvcHRpb25z
ID0ge30pOwogfTsKIFdpbmRvdyBpbmNsdWRlcyBHbG9iYWxFdmVudEhhbmRsZXJzOwogV2luZG93
IGluY2x1ZGVzIFdpbmRvd0V2ZW50SGFuZGxlcnM7CiAKLWNhbGxiYWNrIEZyYW1lUmVxdWVzdENh
bGxiYWNrID0gdm9pZCAoRE9NSGlnaFJlc1RpbWVTdGFtcCB0aW1lKTsKK2RpY3Rpb25hcnkgV2lu
ZG93UG9zdE1lc3NhZ2VPcHRpb25zIDogUG9zdE1lc3NhZ2VPcHRpb25zIHsKKyAgVVNWU3RyaW5n
IHRhcmdldE9yaWdpbiA9ICIvIjsKK307CiAKIFtFeHBvc2VkPVdpbmRvd10KIGludGVyZmFjZSBC
YXJQcm9wIHsKQEAgLTE1NzAsNyArMTYzOCw2IEBAIGVudW0gU2Nyb2xsUmVzdG9yYXRpb24geyAi
YXV0byIsICJtYW51YWwiIH07CiAKIFtFeHBvc2VkPVdpbmRvd10KIGludGVyZmFjZSBIaXN0b3J5
IHsKLSAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgaW5kZXg7CiAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxlbmd0aDsKICAgYXR0cmlidXRlIFNjcm9sbFJlc3Rv
cmF0aW9uIHNjcm9sbFJlc3RvcmF0aW9uOwogICByZWFkb25seSBhdHRyaWJ1dGUgYW55IHN0YXRl
OwpAQCAtMTYwMSw3ICsxNjY4LDcgQEAgaW50ZXJmYWNlIExvY2F0aW9uIHsgLy8gYnV0IHNlZSBh
bHNvIGFkZGl0aW9uYWwgY3JlYXRpb24gc3RlcHMgYW5kIG92ZXJyaWRkZW4gaW4KIH07CiAKIFtF
eHBvc2VkPVdpbmRvdywKLSBDb25zdHJ1Y3RvcihET01TdHJpbmcgdHlwZSwgb3B0aW9uYWwgUG9w
U3RhdGVFdmVudEluaXQgZXZlbnRJbml0RGljdCldCisgQ29uc3RydWN0b3IoRE9NU3RyaW5nIHR5
cGUsIG9wdGlvbmFsIFBvcFN0YXRlRXZlbnRJbml0IGV2ZW50SW5pdERpY3QgPSB7fSldCiBpbnRl
cmZhY2UgUG9wU3RhdGVFdmVudCA6IEV2ZW50IHsKICAgcmVhZG9ubHkgYXR0cmlidXRlIGFueSBz
dGF0ZTsKIH07CkBAIC0xNjExLDcgKzE2NzgsNyBAQCBkaWN0aW9uYXJ5IFBvcFN0YXRlRXZlbnRJ
bml0IDogRXZlbnRJbml0IHsKIH07CiAKIFtFeHBvc2VkPVdpbmRvdywKLSBDb25zdHJ1Y3RvcihE
T01TdHJpbmcgdHlwZSwgb3B0aW9uYWwgSGFzaENoYW5nZUV2ZW50SW5pdCBldmVudEluaXREaWN0
KV0KKyBDb25zdHJ1Y3RvcihET01TdHJpbmcgdHlwZSwgb3B0aW9uYWwgSGFzaENoYW5nZUV2ZW50
SW5pdCBldmVudEluaXREaWN0ID0ge30pXQogaW50ZXJmYWNlIEhhc2hDaGFuZ2VFdmVudCA6IEV2
ZW50IHsKICAgcmVhZG9ubHkgYXR0cmlidXRlIFVTVlN0cmluZyBvbGRVUkw7CiAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBVU1ZTdHJpbmcgbmV3VVJMOwpAQCAtMTYyMyw3ICsxNjkwLDcgQEAgZGljdGlv
bmFyeSBIYXNoQ2hhbmdlRXZlbnRJbml0IDogRXZlbnRJbml0IHsKIH07CiAKIFtFeHBvc2VkPVdp
bmRvdywKLSBDb25zdHJ1Y3RvcihET01TdHJpbmcgdHlwZSwgb3B0aW9uYWwgUGFnZVRyYW5zaXRp
b25FdmVudEluaXQgZXZlbnRJbml0RGljdCldCisgQ29uc3RydWN0b3IoRE9NU3RyaW5nIHR5cGUs
IG9wdGlvbmFsIFBhZ2VUcmFuc2l0aW9uRXZlbnRJbml0IGV2ZW50SW5pdERpY3QgPSB7fSldCiBp
bnRlcmZhY2UgUGFnZVRyYW5zaXRpb25FdmVudCA6IEV2ZW50IHsKICAgcmVhZG9ubHkgYXR0cmli
dXRlIGJvb2xlYW4gcGVyc2lzdGVkOwogfTsKQEAgLTE2MzcsNyArMTcwNCw4IEBAIGludGVyZmFj
ZSBCZWZvcmVVbmxvYWRFdmVudCA6IEV2ZW50IHsKICAgYXR0cmlidXRlIERPTVN0cmluZyByZXR1
cm5WYWx1ZTsKIH07CiAKLVtFeHBvc2VkPVdpbmRvd10KK1tTZWN1cmVDb250ZXh0LAorIEV4cG9z
ZWQ9V2luZG93XQogaW50ZXJmYWNlIEFwcGxpY2F0aW9uQ2FjaGUgOiBFdmVudFRhcmdldCB7CiAK
ICAgLy8gdXBkYXRlIHN0YXR1cwpAQCAtMTY2OSw3ICsxNzM3LDggQEAgaW50ZXJmYWNlIG1peGlu
IE5hdmlnYXRvck9uTGluZSB7CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIG9uTGluZTsK
IH07CiAKLVtDb25zdHJ1Y3RvcihET01TdHJpbmcgdHlwZSwgb3B0aW9uYWwgRXJyb3JFdmVudElu
aXQgZXZlbnRJbml0RGljdCksIEV4cG9zZWQ9KFdpbmRvdyxXb3JrZXIpXQorW0NvbnN0cnVjdG9y
KERPTVN0cmluZyB0eXBlLCBvcHRpb25hbCBFcnJvckV2ZW50SW5pdCBldmVudEluaXREaWN0ID0g
e30pLAorIEV4cG9zZWQ9KFdpbmRvdyxXb3JrZXIpXQogaW50ZXJmYWNlIEVycm9yRXZlbnQgOiBF
dmVudCB7CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgbWVzc2FnZTsKICAgcmVhZG9u
bHkgYXR0cmlidXRlIFVTVlN0cmluZyBmaWxlbmFtZTsKQEAgLTE3MzUsNiArMTgwNCw3IEBAIGlu
dGVyZmFjZSBtaXhpbiBHbG9iYWxFdmVudEhhbmRsZXJzIHsKICAgYXR0cmlidXRlIEV2ZW50SGFu
ZGxlciBvbmVuZGVkOwogICBhdHRyaWJ1dGUgT25FcnJvckV2ZW50SGFuZGxlciBvbmVycm9yOwog
ICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9uZm9jdXM7CisgIGF0dHJpYnV0ZSBFdmVudEhhbmRs
ZXIgb25mb3JtZGF0YTsKICAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbmlucHV0OwogICBhdHRy
aWJ1dGUgRXZlbnRIYW5kbGVyIG9uaW52YWxpZDsKICAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciBv
bmtleWRvd247CkBAIC0xNzQzLDcgKzE4MTMsNiBAQCBpbnRlcmZhY2UgbWl4aW4gR2xvYmFsRXZl
bnRIYW5kbGVycyB7CiAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25sb2FkOwogICBhdHRyaWJ1
dGUgRXZlbnRIYW5kbGVyIG9ubG9hZGVkZGF0YTsKICAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciBv
bmxvYWRlZG1ldGFkYXRhOwotICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9ubG9hZGVuZDsKICAg
YXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbmxvYWRzdGFydDsKICAgYXR0cmlidXRlIEV2ZW50SGFu
ZGxlciBvbm1vdXNlZG93bjsKICAgW0xlbmllbnRUaGlzXSBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVy
IG9ubW91c2VlbnRlcjsKQEAgLTE4MTQsOSArMTg4MywxMiBAQCBpbnRlcmZhY2UgbWl4aW4gV2lu
ZG93T3JXb3JrZXJHbG9iYWxTY29wZSB7CiAgIGxvbmcgc2V0SW50ZXJ2YWwoVGltZXJIYW5kbGVy
IGhhbmRsZXIsIG9wdGlvbmFsIGxvbmcgdGltZW91dCA9IDAsIGFueS4uLiBhcmd1bWVudHMpOwog
ICB2b2lkIGNsZWFySW50ZXJ2YWwob3B0aW9uYWwgbG9uZyBoYW5kbGUgPSAwKTsKIAorICAvLyBt
aWNyb3Rhc2sgcXVldWluZworICB2b2lkIHF1ZXVlTWljcm90YXNrKFZvaWRGdW5jdGlvbiBjYWxs
YmFjayk7CisKICAgLy8gSW1hZ2VCaXRtYXAKLSAgUHJvbWlzZTxJbWFnZUJpdG1hcD4gY3JlYXRl
SW1hZ2VCaXRtYXAoSW1hZ2VCaXRtYXBTb3VyY2UgaW1hZ2UsIG9wdGlvbmFsIEltYWdlQml0bWFw
T3B0aW9ucyBvcHRpb25zKTsKLSAgUHJvbWlzZTxJbWFnZUJpdG1hcD4gY3JlYXRlSW1hZ2VCaXRt
YXAoSW1hZ2VCaXRtYXBTb3VyY2UgaW1hZ2UsIGxvbmcgc3gsIGxvbmcgc3ksIGxvbmcgc3csIGxv
bmcgc2gsIG9wdGlvbmFsIEltYWdlQml0bWFwT3B0aW9ucyBvcHRpb25zKTsKKyAgUHJvbWlzZTxJ
bWFnZUJpdG1hcD4gY3JlYXRlSW1hZ2VCaXRtYXAoSW1hZ2VCaXRtYXBTb3VyY2UgaW1hZ2UsIG9w
dGlvbmFsIEltYWdlQml0bWFwT3B0aW9ucyBvcHRpb25zID0ge30pOworICBQcm9taXNlPEltYWdl
Qml0bWFwPiBjcmVhdGVJbWFnZUJpdG1hcChJbWFnZUJpdG1hcFNvdXJjZSBpbWFnZSwgbG9uZyBz
eCwgbG9uZyBzeSwgbG9uZyBzdywgbG9uZyBzaCwgb3B0aW9uYWwgSW1hZ2VCaXRtYXBPcHRpb25z
IG9wdGlvbnMgPSB7fSk7CiB9OwogV2luZG93IGluY2x1ZGVzIFdpbmRvd09yV29ya2VyR2xvYmFs
U2NvcGU7CiBXb3JrZXJHbG9iYWxTY29wZSBpbmNsdWRlcyBXaW5kb3dPcldvcmtlckdsb2JhbFNj
b3BlOwpAQCAtMTg0MywxMSArMTkxNSw5IEBAIGludGVyZmFjZSBtaXhpbiBOYXZpZ2F0b3JJRCB7
CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgdXNlckFnZW50OwogICBbRXhwb3NlZD1X
aW5kb3ddIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgdmVuZG9yOwogICBbRXhwb3NlZD1X
aW5kb3ddIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgdmVuZG9yU3ViOyAvLyBjb25zdGFu
dCAiIgotCi0gIC8vIGFsc28gaGFzIGFkZGl0aW9uYWwgbWVtYmVycyBpbiBhIHBhcnRpYWwgaW50
ZXJmYWNlCiB9OwogCi1wYXJ0aWFsIGludGVyZmFjZSBOYXZpZ2F0b3JJRCB7CitwYXJ0aWFsIGlu
dGVyZmFjZSBtaXhpbiBOYXZpZ2F0b3JJRCB7CiAgIFtFeHBvc2VkPVdpbmRvd10gYm9vbGVhbiB0
YWludEVuYWJsZWQoKTsgLy8gY29uc3RhbnQgZmFsc2UKICAgW0V4cG9zZWQ9V2luZG93XSByZWFk
b25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIG9zY3B1OwogfTsKQEAgLTE5MzMsNyArMjAwMywxNyBA
QCBkaWN0aW9uYXJ5IEltYWdlQml0bWFwT3B0aW9ucyB7CiAgIFJlc2l6ZVF1YWxpdHkgcmVzaXpl
UXVhbGl0eSA9ICJsb3ciOwogfTsKIAotW0NvbnN0cnVjdG9yKERPTVN0cmluZyB0eXBlLCBvcHRp
b25hbCBNZXNzYWdlRXZlbnRJbml0IGV2ZW50SW5pdERpY3QpLCBFeHBvc2VkPShXaW5kb3csV29y
a2VyLEF1ZGlvV29ya2xldCldCitjYWxsYmFjayBGcmFtZVJlcXVlc3RDYWxsYmFjayA9IHZvaWQg
KERPTUhpZ2hSZXNUaW1lU3RhbXAgdGltZSk7CisKK2ludGVyZmFjZSBtaXhpbiBBbmltYXRpb25G
cmFtZVByb3ZpZGVyIHsKKyAgdW5zaWduZWQgbG9uZyByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoRnJh
bWVSZXF1ZXN0Q2FsbGJhY2sgY2FsbGJhY2spOworICB2b2lkIGNhbmNlbEFuaW1hdGlvbkZyYW1l
KHVuc2lnbmVkIGxvbmcgaGFuZGxlKTsKK307CitXaW5kb3cgaW5jbHVkZXMgQW5pbWF0aW9uRnJh
bWVQcm92aWRlcjsKK0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlIGluY2x1ZGVzIEFuaW1hdGlv
bkZyYW1lUHJvdmlkZXI7CisKK1tDb25zdHJ1Y3RvcihET01TdHJpbmcgdHlwZSwgb3B0aW9uYWwg
TWVzc2FnZUV2ZW50SW5pdCBldmVudEluaXREaWN0ID0ge30pLAorIEV4cG9zZWQ9KFdpbmRvdyxX
b3JrZXIsQXVkaW9Xb3JrbGV0KV0KIGludGVyZmFjZSBNZXNzYWdlRXZlbnQgOiBFdmVudCB7CiAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBhbnkgZGF0YTsKICAgcmVhZG9ubHkgYXR0cmlidXRlIFVTVlN0
cmluZyBvcmlnaW47CkBAIC0xOTU0LDcgKzIwMzQsNyBAQCBkaWN0aW9uYXJ5IE1lc3NhZ2VFdmVu
dEluaXQgOiBFdmVudEluaXQgewogCiB0eXBlZGVmIChXaW5kb3dQcm94eSBvciBNZXNzYWdlUG9y
dCBvciBTZXJ2aWNlV29ya2VyKSBNZXNzYWdlRXZlbnRTb3VyY2U7CiAKLVtDb25zdHJ1Y3RvcihV
U1ZTdHJpbmcgdXJsLCBvcHRpb25hbCBFdmVudFNvdXJjZUluaXQgZXZlbnRTb3VyY2VJbml0RGlj
dCksIEV4cG9zZWQ9KFdpbmRvdyxXb3JrZXIpXQorW0NvbnN0cnVjdG9yKFVTVlN0cmluZyB1cmws
IG9wdGlvbmFsIEV2ZW50U291cmNlSW5pdCBldmVudFNvdXJjZUluaXREaWN0ID0ge30pLCBFeHBv
c2VkPShXaW5kb3csV29ya2VyKV0KIGludGVyZmFjZSBFdmVudFNvdXJjZSA6IEV2ZW50VGFyZ2V0
IHsKICAgcmVhZG9ubHkgYXR0cmlidXRlIFVTVlN0cmluZyB1cmw7CiAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBib29sZWFuIHdpdGhDcmVkZW50aWFsczsKQEAgLTIwMDYsNyArMjA4Niw4IEBAIGludGVy
ZmFjZSBXZWJTb2NrZXQgOiBFdmVudFRhcmdldCB7CiAgIHZvaWQgc2VuZChBcnJheUJ1ZmZlclZp
ZXcgZGF0YSk7CiB9OwogCi1bQ29uc3RydWN0b3IoRE9NU3RyaW5nIHR5cGUsIG9wdGlvbmFsIENs
b3NlRXZlbnRJbml0IGV2ZW50SW5pdERpY3QpLCBFeHBvc2VkPShXaW5kb3csV29ya2VyKV0KK1tD
b25zdHJ1Y3RvcihET01TdHJpbmcgdHlwZSwgb3B0aW9uYWwgQ2xvc2VFdmVudEluaXQgZXZlbnRJ
bml0RGljdCA9IHt9KSwKKyBFeHBvc2VkPShXaW5kb3csV29ya2VyKV0KIGludGVyZmFjZSBDbG9z
ZUV2ZW50IDogRXZlbnQgewogICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiB3YXNDbGVhbjsK
ICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIHNob3J0IGNvZGU7CkBAIC0yMDI3LDcgKzIx
MDgsOCBAQCBpbnRlcmZhY2UgTWVzc2FnZUNoYW5uZWwgewogCiBbRXhwb3NlZD0oV2luZG93LFdv
cmtlcixBdWRpb1dvcmtsZXQpLCBUcmFuc2ZlcmFibGVdCiBpbnRlcmZhY2UgTWVzc2FnZVBvcnQg
OiBFdmVudFRhcmdldCB7Ci0gIHZvaWQgcG9zdE1lc3NhZ2UoYW55IG1lc3NhZ2UsIG9wdGlvbmFs
IHNlcXVlbmNlPG9iamVjdD4gdHJhbnNmZXIgPSBbXSk7CisgIHZvaWQgcG9zdE1lc3NhZ2UoYW55
IG1lc3NhZ2UsIHNlcXVlbmNlPG9iamVjdD4gdHJhbnNmZXIpOworICB2b2lkIHBvc3RNZXNzYWdl
KGFueSBtZXNzYWdlLCBvcHRpb25hbCBQb3N0TWVzc2FnZU9wdGlvbnMgb3B0aW9ucyA9IHt9KTsK
ICAgdm9pZCBzdGFydCgpOwogICB2b2lkIGNsb3NlKCk7CiAKQEAgLTIwMzYsNiArMjExOCwxMCBA
QCBpbnRlcmZhY2UgTWVzc2FnZVBvcnQgOiBFdmVudFRhcmdldCB7CiAgIGF0dHJpYnV0ZSBFdmVu
dEhhbmRsZXIgb25tZXNzYWdlZXJyb3I7CiB9OwogCitkaWN0aW9uYXJ5IFBvc3RNZXNzYWdlT3B0
aW9ucyB7CisgIHNlcXVlbmNlPG9iamVjdD4gdHJhbnNmZXIgPSBbXTsKK307CisKIFtDb25zdHJ1
Y3RvcihET01TdHJpbmcgbmFtZSksIEV4cG9zZWQ9KFdpbmRvdyxXb3JrZXIpXQogaW50ZXJmYWNl
IEJyb2FkY2FzdENoYW5uZWwgOiBFdmVudFRhcmdldCB7CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBE
T01TdHJpbmcgbmFtZTsKQEAgLTIwNjQsNyArMjE1MCw4IEBAIGludGVyZmFjZSBXb3JrZXJHbG9i
YWxTY29wZSA6IEV2ZW50VGFyZ2V0IHsKIGludGVyZmFjZSBEZWRpY2F0ZWRXb3JrZXJHbG9iYWxT
Y29wZSA6IFdvcmtlckdsb2JhbFNjb3BlIHsKICAgW1JlcGxhY2VhYmxlXSByZWFkb25seSBhdHRy
aWJ1dGUgRE9NU3RyaW5nIG5hbWU7CiAKLSAgdm9pZCBwb3N0TWVzc2FnZShhbnkgbWVzc2FnZSwg
b3B0aW9uYWwgc2VxdWVuY2U8b2JqZWN0PiB0cmFuc2ZlciA9IFtdKTsKKyAgdm9pZCBwb3N0TWVz
c2FnZShhbnkgbWVzc2FnZSwgc2VxdWVuY2U8b2JqZWN0PiB0cmFuc2Zlcik7CisgIHZvaWQgcG9z
dE1lc3NhZ2UoYW55IG1lc3NhZ2UsIG9wdGlvbmFsIFBvc3RNZXNzYWdlT3B0aW9ucyBvcHRpb25z
ID0ge30pOwogCiAgIHZvaWQgY2xvc2UoKTsKIApAQCAtMjA4NSwxOCArMjE3MiwyMCBAQCBpbnRl
cmZhY2UgbWl4aW4gQWJzdHJhY3RXb3JrZXIgewogICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9u
ZXJyb3I7CiB9OwogCi1bQ29uc3RydWN0b3IoVVNWU3RyaW5nIHNjcmlwdFVSTCwgb3B0aW9uYWwg
V29ya2VyT3B0aW9ucyBvcHRpb25zKSwgRXhwb3NlZD0oV2luZG93LFdvcmtlcildCitbQ29uc3Ry
dWN0b3IoVVNWU3RyaW5nIHNjcmlwdFVSTCwgb3B0aW9uYWwgV29ya2VyT3B0aW9ucyBvcHRpb25z
ID0ge30pLAorIEV4cG9zZWQ9KFdpbmRvdyxXb3JrZXIpXQogaW50ZXJmYWNlIFdvcmtlciA6IEV2
ZW50VGFyZ2V0IHsKICAgdm9pZCB0ZXJtaW5hdGUoKTsKIAotICB2b2lkIHBvc3RNZXNzYWdlKGFu
eSBtZXNzYWdlLCBvcHRpb25hbCBzZXF1ZW5jZTxvYmplY3Q+IHRyYW5zZmVyID0gW10pOworICB2
b2lkIHBvc3RNZXNzYWdlKGFueSBtZXNzYWdlLCBzZXF1ZW5jZTxvYmplY3Q+IHRyYW5zZmVyKTsK
KyAgdm9pZCBwb3N0TWVzc2FnZShhbnkgbWVzc2FnZSwgb3B0aW9uYWwgUG9zdE1lc3NhZ2VPcHRp
b25zIG9wdGlvbnMgPSB7fSk7CiAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25tZXNzYWdlOwog
ICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9ubWVzc2FnZWVycm9yOwogfTsKIAogZGljdGlvbmFy
eSBXb3JrZXJPcHRpb25zIHsKICAgV29ya2VyVHlwZSB0eXBlID0gImNsYXNzaWMiOwotICBSZXF1
ZXN0Q3JlZGVudGlhbHMgY3JlZGVudGlhbHMgPSAib21pdCI7IC8vIGNyZWRlbnRpYWxzIGlzIG9u
bHkgdXNlZCBpZiB0eXBlIGlzICJtb2R1bGUiCisgIFJlcXVlc3RDcmVkZW50aWFscyBjcmVkZW50
aWFscyA9ICJzYW1lLW9yaWdpbiI7IC8vIGNyZWRlbnRpYWxzIGlzIG9ubHkgdXNlZCBpZiB0eXBl
IGlzICJtb2R1bGUiCiAgIERPTVN0cmluZyBuYW1lID0gIiI7CiB9OwogCkBAIC0yMTA0LDcgKzIx
OTMsNyBAQCBlbnVtIFdvcmtlclR5cGUgeyAiY2xhc3NpYyIsICJtb2R1bGUiIH07CiAKIFdvcmtl
ciBpbmNsdWRlcyBBYnN0cmFjdFdvcmtlcjsKIAotW0NvbnN0cnVjdG9yKFVTVlN0cmluZyBzY3Jp
cHRVUkwsIG9wdGlvbmFsIChET01TdHJpbmcgb3IgV29ya2VyT3B0aW9ucykgb3B0aW9ucyksCitb
Q29uc3RydWN0b3IoVVNWU3RyaW5nIHNjcmlwdFVSTCwgb3B0aW9uYWwgKERPTVN0cmluZyBvciBX
b3JrZXJPcHRpb25zKSBvcHRpb25zID0ge30pLAogIEV4cG9zZWQ9KFdpbmRvdyxXb3JrZXIpXQog
aW50ZXJmYWNlIFNoYXJlZFdvcmtlciA6IEV2ZW50VGFyZ2V0IHsKICAgcmVhZG9ubHkgYXR0cmli
dXRlIE1lc3NhZ2VQb3J0IHBvcnQ7CkBAIC0yMTU2LDEzICsyMjQ1LDE1IEBAIGludGVyZmFjZSBt
aXhpbiBXaW5kb3dMb2NhbFN0b3JhZ2UgewogV2luZG93IGluY2x1ZGVzIFdpbmRvd0xvY2FsU3Rv
cmFnZTsKIAogW0V4cG9zZWQ9V2luZG93LAotIENvbnN0cnVjdG9yKERPTVN0cmluZyB0eXBlLCBv
cHRpb25hbCBTdG9yYWdlRXZlbnRJbml0IGV2ZW50SW5pdERpY3QpXQorIENvbnN0cnVjdG9yKERP
TVN0cmluZyB0eXBlLCBvcHRpb25hbCBTdG9yYWdlRXZlbnRJbml0IGV2ZW50SW5pdERpY3QgPSB7
fSldCiBpbnRlcmZhY2UgU3RvcmFnZUV2ZW50IDogRXZlbnQgewogICByZWFkb25seSBhdHRyaWJ1
dGUgRE9NU3RyaW5nPyBrZXk7CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmc/IG9sZFZh
bHVlOwogICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nPyBuZXdWYWx1ZTsKICAgcmVhZG9u
bHkgYXR0cmlidXRlIFVTVlN0cmluZyB1cmw7CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTdG9yYWdl
PyBzdG9yYWdlQXJlYTsKKworICB2b2lkIGluaXRTdG9yYWdlRXZlbnQoRE9NU3RyaW5nIHR5cGUs
IG9wdGlvbmFsIGJvb2xlYW4gYnViYmxlcyA9IGZhbHNlLCBvcHRpb25hbCBib29sZWFuIGNhbmNl
bGFibGUgPSBmYWxzZSwgb3B0aW9uYWwgRE9NU3RyaW5nPyBrZXkgPSBudWxsLCBvcHRpb25hbCBE
T01TdHJpbmc/IG9sZFZhbHVlID0gbnVsbCwgb3B0aW9uYWwgRE9NU3RyaW5nPyBuZXdWYWx1ZSA9
IG51bGwsIG9wdGlvbmFsIFVTVlN0cmluZyB1cmwgPSAiIiwgb3B0aW9uYWwgU3RvcmFnZT8gc3Rv
cmFnZUFyZWEgPSBudWxsKTsKIH07CiAKIGRpY3Rpb25hcnkgU3RvcmFnZUV2ZW50SW5pdCA6IEV2
ZW50SW5pdCB7CkBAIC0yMzc5LDYgKzI0NzAsMTAgQEAgcGFydGlhbCBpbnRlcmZhY2UgSFRNTFBy
ZUVsZW1lbnQgewogICBbQ0VSZWFjdGlvbnNdIGF0dHJpYnV0ZSBsb25nIHdpZHRoOwogfTsKIAor
cGFydGlhbCBpbnRlcmZhY2UgSFRNTFN0eWxlRWxlbWVudCB7CisgIFtDRVJlYWN0aW9uc10gYXR0
cmlidXRlIERPTVN0cmluZyB0eXBlOworfTsKKwogcGFydGlhbCBpbnRlcmZhY2UgSFRNTFNjcmlw
dEVsZW1lbnQgewogICBbQ0VSZWFjdGlvbnNdIGF0dHJpYnV0ZSBET01TdHJpbmcgY2hhcnNldDsK
ICAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGV2ZW50OwpAQCAtMjQ1Nyw4ICsy
NTUyLDcgQEAgcGFydGlhbCBpbnRlcmZhY2UgV2luZG93IHsKICAgW1JlcGxhY2VhYmxlLCBTYW1l
T2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgRXh0ZXJuYWwgZXh0ZXJuYWw7CiB9OwogCi1bRXhw
b3NlZD1XaW5kb3csCi0gTm9JbnRlcmZhY2VPYmplY3RdCitbRXhwb3NlZD1XaW5kb3ddCiBpbnRl
cmZhY2UgRXh0ZXJuYWwgewogICB2b2lkIEFkZFNlYXJjaFByb3ZpZGVyKCk7CiAgIHZvaWQgSXNT
ZWFyY2hQcm92aWRlckluc3RhbGxlZCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbnRlcmZhY2VzL3NlcnZpY2Utd29ya2Vycy5pZGwg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ludGVyZmFjZXMv
c2VydmljZS13b3JrZXJzLmlkbAppbmRleCBmYjJlMDMzYTdhYTA2YjIxOTFlYjkzMzU0Y2Y3ZjRl
NTZhNTRjY2YzLi4wZmVhYmQzODljZjU1NmE2ZmY2ZDM5NzhmZDIzZTJlMjg4NjI0MDU0IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ludGVy
ZmFjZXMvc2VydmljZS13b3JrZXJzLmlkbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ludGVyZmFjZXMvc2VydmljZS13b3JrZXJzLmlkbApAQCAtMSwx
MyArMSwxNCBAQAogLy8gR0VORVJBVEVEIENPTlRFTlQgLSBETyBOT1QgRURJVAogLy8gQ29udGVu
dCB3YXMgYXV0b21hdGljYWxseSBleHRyYWN0ZWQgYnkgUmVmZnkgaW50byByZWZmeS1yZXBvcnRz
CiAvLyAoaHR0cHM6Ly9naXRodWIuY29tL3RpZG91c3QvcmVmZnktcmVwb3J0cykKLS8vIFNvdXJj
ZTogU2VydmljZSBXb3JrZXJzIDEgKGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9TZXJ2aWNlV29ya2Vy
L3YxLykKKy8vIFNvdXJjZTogU2VydmljZSBXb3JrZXJzIE5pZ2h0bHkgKGh0dHBzOi8vdzNjLmdp
dGh1Yi5pby9TZXJ2aWNlV29ya2VyLykKIAogW1NlY3VyZUNvbnRleHQsIEV4cG9zZWQ9KFdpbmRv
dyxXb3JrZXIpXQogaW50ZXJmYWNlIFNlcnZpY2VXb3JrZXIgOiBFdmVudFRhcmdldCB7CiAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBVU1ZTdHJpbmcgc2NyaXB0VVJMOwogICByZWFkb25seSBhdHRyaWJ1
dGUgU2VydmljZVdvcmtlclN0YXRlIHN0YXRlOwotICB2b2lkIHBvc3RNZXNzYWdlKGFueSBtZXNz
YWdlLCBvcHRpb25hbCBzZXF1ZW5jZTxvYmplY3Q+IHRyYW5zZmVyID0gW10pOworICB2b2lkIHBv
c3RNZXNzYWdlKGFueSBtZXNzYWdlLCBzZXF1ZW5jZTxvYmplY3Q+IHRyYW5zZmVyKTsKKyAgdm9p
ZCBwb3N0TWVzc2FnZShhbnkgbWVzc2FnZSwgb3B0aW9uYWwgUG9zdE1lc3NhZ2VPcHRpb25zIG9w
dGlvbnMgPSB7fSk7CiAKICAgLy8gZXZlbnQKICAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbnN0
YXRlY2hhbmdlOwpAQCAtMTUsNiArMTYsNyBAQCBpbnRlcmZhY2UgU2VydmljZVdvcmtlciA6IEV2
ZW50VGFyZ2V0IHsKIFNlcnZpY2VXb3JrZXIgaW5jbHVkZXMgQWJzdHJhY3RXb3JrZXI7CiAKIGVu
dW0gU2VydmljZVdvcmtlclN0YXRlIHsKKyAgInBhcnNlZCIsCiAgICJpbnN0YWxsaW5nIiwKICAg
Imluc3RhbGxlZCIsCiAgICJhY3RpdmF0aW5nIiwKQEAgLTI3LDYgKzI5LDcgQEAgaW50ZXJmYWNl
IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24gOiBFdmVudFRhcmdldCB7CiAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBTZXJ2aWNlV29ya2VyPyBpbnN0YWxsaW5nOwogICByZWFkb25seSBhdHRyaWJ1dGUg
U2VydmljZVdvcmtlcj8gd2FpdGluZzsKICAgcmVhZG9ubHkgYXR0cmlidXRlIFNlcnZpY2VXb3Jr
ZXI/IGFjdGl2ZTsKKyAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBOYXZpZ2F0aW9u
UHJlbG9hZE1hbmFnZXIgbmF2aWdhdGlvblByZWxvYWQ7CiAKICAgcmVhZG9ubHkgYXR0cmlidXRl
IFVTVlN0cmluZyBzY29wZTsKICAgcmVhZG9ubHkgYXR0cmlidXRlIFNlcnZpY2VXb3JrZXJVcGRh
dGVWaWFDYWNoZSB1cGRhdGVWaWFDYWNoZTsKQEAgLTU3LDcgKzYwLDcgQEAgaW50ZXJmYWNlIFNl
cnZpY2VXb3JrZXJDb250YWluZXIgOiBFdmVudFRhcmdldCB7CiAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBTZXJ2aWNlV29ya2VyPyBjb250cm9sbGVyOwogICByZWFkb25seSBhdHRyaWJ1dGUgUHJvbWlz
ZTxTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uPiByZWFkeTsKIAotICBbTmV3T2JqZWN0XSBQcm9t
aXNlPFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24+IHJlZ2lzdGVyKFVTVlN0cmluZyBzY3JpcHRV
UkwsIG9wdGlvbmFsIFJlZ2lzdHJhdGlvbk9wdGlvbnMgb3B0aW9ucyk7CisgIFtOZXdPYmplY3Rd
IFByb21pc2U8U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbj4gcmVnaXN0ZXIoVVNWU3RyaW5nIHNj
cmlwdFVSTCwgb3B0aW9uYWwgUmVnaXN0cmF0aW9uT3B0aW9ucyBvcHRpb25zID0ge30pOwogCiAg
IFtOZXdPYmplY3RdIFByb21pc2U8YW55PiBnZXRSZWdpc3RyYXRpb24ob3B0aW9uYWwgVVNWU3Ry
aW5nIGNsaWVudFVSTCA9ICIiKTsKICAgW05ld09iamVjdF0gUHJvbWlzZTxGcm96ZW5BcnJheTxT
ZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uPj4gZ2V0UmVnaXN0cmF0aW9ucygpOwpAQCAtNzYsMTAg
Kzc5LDI0IEBAIGRpY3Rpb25hcnkgUmVnaXN0cmF0aW9uT3B0aW9ucyB7CiAgIFNlcnZpY2VXb3Jr
ZXJVcGRhdGVWaWFDYWNoZSB1cGRhdGVWaWFDYWNoZSA9ICJpbXBvcnRzIjsKIH07CiAKK1tTZWN1
cmVDb250ZXh0LCBFeHBvc2VkPShXaW5kb3csV29ya2VyKV0KK2ludGVyZmFjZSBOYXZpZ2F0aW9u
UHJlbG9hZE1hbmFnZXIgeworICBQcm9taXNlPHZvaWQ+IGVuYWJsZSgpOworICBQcm9taXNlPHZv
aWQ+IGRpc2FibGUoKTsKKyAgUHJvbWlzZTx2b2lkPiBzZXRIZWFkZXJWYWx1ZShCeXRlU3RyaW5n
IHZhbHVlKTsKKyAgUHJvbWlzZTxOYXZpZ2F0aW9uUHJlbG9hZFN0YXRlPiBnZXRTdGF0ZSgpOwor
fTsKKworZGljdGlvbmFyeSBOYXZpZ2F0aW9uUHJlbG9hZFN0YXRlIHsKKyAgYm9vbGVhbiBlbmFi
bGVkID0gZmFsc2U7CisgIEJ5dGVTdHJpbmcgaGVhZGVyVmFsdWU7Cit9OworCiBbR2xvYmFsPShX
b3JrZXIsU2VydmljZVdvcmtlciksIEV4cG9zZWQ9U2VydmljZVdvcmtlcl0KIGludGVyZmFjZSBT
ZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUgOiBXb3JrZXJHbG9iYWxTY29wZSB7CiAgIFtTYW1lT2Jq
ZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgQ2xpZW50cyBjbGllbnRzOwogICBbU2FtZU9iamVjdF0g
cmVhZG9ubHkgYXR0cmlidXRlIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24gcmVnaXN0cmF0aW9u
OworICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIFNlcnZpY2VXb3JrZXIgc2Vydmlj
ZVdvcmtlcjsKIAogICBbTmV3T2JqZWN0XSBQcm9taXNlPHZvaWQ+IHNraXBXYWl0aW5nKCk7CiAK
QEAgLTg3LDggKzEwNCw3IEBAIGludGVyZmFjZSBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUgOiBX
b3JrZXJHbG9iYWxTY29wZSB7CiAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25hY3RpdmF0ZTsK
ICAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbmZldGNoOwogCi0gIC8vIGV2ZW50Ci0gIGF0dHJp
YnV0ZSBFdmVudEhhbmRsZXIgb25tZXNzYWdlOyAvLyBldmVudC5zb3VyY2Ugb2YgdGhlIG1lc3Nh
Z2UgZXZlbnRzIGlzIENsaWVudCBvYmplY3QKKyAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbm1l
c3NhZ2U7CiAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25tZXNzYWdlZXJyb3I7CiB9OwogCkBA
IC05OCw3ICsxMTQsOCBAQCBpbnRlcmZhY2UgQ2xpZW50IHsKICAgcmVhZG9ubHkgYXR0cmlidXRl
IEZyYW1lVHlwZSBmcmFtZVR5cGU7CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgaWQ7
CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBDbGllbnRUeXBlIHR5cGU7Ci0gIHZvaWQgcG9zdE1lc3Nh
Z2UoYW55IG1lc3NhZ2UsIG9wdGlvbmFsIHNlcXVlbmNlPG9iamVjdD4gdHJhbnNmZXIgPSBbXSk7
CisgIHZvaWQgcG9zdE1lc3NhZ2UoYW55IG1lc3NhZ2UsIHNlcXVlbmNlPG9iamVjdD4gdHJhbnNm
ZXIpOworICB2b2lkIHBvc3RNZXNzYWdlKGFueSBtZXNzYWdlLCBvcHRpb25hbCBQb3N0TWVzc2Fn
ZU9wdGlvbnMgb3B0aW9ucyA9IHt9KTsKIH07CiAKIFtFeHBvc2VkPVNlcnZpY2VXb3JrZXJdCkBA
IC0xMjEsNyArMTM4LDcgQEAgZW51bSBGcmFtZVR5cGUgewogaW50ZXJmYWNlIENsaWVudHMgewog
ICAvLyBUaGUgb2JqZWN0cyByZXR1cm5lZCB3aWxsIGJlIG5ldyBpbnN0YW5jZXMgZXZlcnkgdGlt
ZQogICBbTmV3T2JqZWN0XSBQcm9taXNlPGFueT4gZ2V0KERPTVN0cmluZyBpZCk7Ci0gIFtOZXdP
YmplY3RdIFByb21pc2U8RnJvemVuQXJyYXk8Q2xpZW50Pj4gbWF0Y2hBbGwob3B0aW9uYWwgQ2xp
ZW50UXVlcnlPcHRpb25zIG9wdGlvbnMpOworICBbTmV3T2JqZWN0XSBQcm9taXNlPEZyb3plbkFy
cmF5PENsaWVudD4+IG1hdGNoQWxsKG9wdGlvbmFsIENsaWVudFF1ZXJ5T3B0aW9ucyBvcHRpb25z
ID0ge30pOwogICBbTmV3T2JqZWN0XSBQcm9taXNlPFdpbmRvd0NsaWVudD8+IG9wZW5XaW5kb3co
VVNWU3RyaW5nIHVybCk7CiAgIFtOZXdPYmplY3RdIFByb21pc2U8dm9pZD4gY2xhaW0oKTsKIH07
CkBAIC0xMzgsNyArMTU1LDcgQEAgZW51bSBDbGllbnRUeXBlIHsKICAgImFsbCIKIH07CiAKLVtD
b25zdHJ1Y3RvcihET01TdHJpbmcgdHlwZSwgb3B0aW9uYWwgRXh0ZW5kYWJsZUV2ZW50SW5pdCBl
dmVudEluaXREaWN0KSwgRXhwb3NlZD1TZXJ2aWNlV29ya2VyXQorW0NvbnN0cnVjdG9yKERPTVN0
cmluZyB0eXBlLCBvcHRpb25hbCBFeHRlbmRhYmxlRXZlbnRJbml0IGV2ZW50SW5pdERpY3QgPSB7
fSksIEV4cG9zZWQ9U2VydmljZVdvcmtlcl0KIGludGVyZmFjZSBFeHRlbmRhYmxlRXZlbnQgOiBF
dmVudCB7CiAgIHZvaWQgd2FpdFVudGlsKFByb21pc2U8YW55PiBmKTsKIH07CkBAIC0xNTAsMTcg
KzE2NywyMyBAQCBkaWN0aW9uYXJ5IEV4dGVuZGFibGVFdmVudEluaXQgOiBFdmVudEluaXQgewog
W0NvbnN0cnVjdG9yKERPTVN0cmluZyB0eXBlLCBGZXRjaEV2ZW50SW5pdCBldmVudEluaXREaWN0
KSwgRXhwb3NlZD1TZXJ2aWNlV29ya2VyXQogaW50ZXJmYWNlIEZldGNoRXZlbnQgOiBFeHRlbmRh
YmxlRXZlbnQgewogICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIFJlcXVlc3QgcmVx
dWVzdDsKKyAgcmVhZG9ubHkgYXR0cmlidXRlIFByb21pc2U8YW55PiBwcmVsb2FkUmVzcG9uc2U7
CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgY2xpZW50SWQ7CisgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBET01TdHJpbmcgcmVzdWx0aW5nQ2xpZW50SWQ7CisgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBET01TdHJpbmcgcmVwbGFjZXNDbGllbnRJZDsKIAogICB2b2lkIHJlc3BvbmRXaXRoKFByb21p
c2U8UmVzcG9uc2U+IHIpOwogfTsKIAogZGljdGlvbmFyeSBGZXRjaEV2ZW50SW5pdCA6IEV4dGVu
ZGFibGVFdmVudEluaXQgewogICByZXF1aXJlZCBSZXF1ZXN0IHJlcXVlc3Q7CisgIFByb21pc2U8
YW55PiBwcmVsb2FkUmVzcG9uc2U7CiAgIERPTVN0cmluZyBjbGllbnRJZCA9ICIiOworICBET01T
dHJpbmcgcmVzdWx0aW5nQ2xpZW50SWQgPSAiIjsKKyAgRE9NU3RyaW5nIHJlcGxhY2VzQ2xpZW50
SWQgPSAiIjsKIH07CiAKLVtDb25zdHJ1Y3RvcihET01TdHJpbmcgdHlwZSwgb3B0aW9uYWwgRXh0
ZW5kYWJsZU1lc3NhZ2VFdmVudEluaXQgZXZlbnRJbml0RGljdCksIEV4cG9zZWQ9U2VydmljZVdv
cmtlcl0KK1tDb25zdHJ1Y3RvcihET01TdHJpbmcgdHlwZSwgb3B0aW9uYWwgRXh0ZW5kYWJsZU1l
c3NhZ2VFdmVudEluaXQgZXZlbnRJbml0RGljdCA9IHt9KSwgRXhwb3NlZD1TZXJ2aWNlV29ya2Vy
XQogaW50ZXJmYWNlIEV4dGVuZGFibGVNZXNzYWdlRXZlbnQgOiBFeHRlbmRhYmxlRXZlbnQgewog
ICByZWFkb25seSBhdHRyaWJ1dGUgYW55IGRhdGE7CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBVU1ZT
dHJpbmcgb3JpZ2luOwpAQCAtMTc3LDE5ICsyMDAsMTkgQEAgZGljdGlvbmFyeSBFeHRlbmRhYmxl
TWVzc2FnZUV2ZW50SW5pdCA6IEV4dGVuZGFibGVFdmVudEluaXQgewogICBzZXF1ZW5jZTxNZXNz
YWdlUG9ydD4gcG9ydHMgPSBbXTsKIH07CiAKLXBhcnRpYWwgaW50ZXJmYWNlIFdpbmRvd09yV29y
a2VyR2xvYmFsU2NvcGUgeworcGFydGlhbCBpbnRlcmZhY2UgbWl4aW4gV2luZG93T3JXb3JrZXJH
bG9iYWxTY29wZSB7CiAgIFtTZWN1cmVDb250ZXh0LCBTYW1lT2JqZWN0XSByZWFkb25seSBhdHRy
aWJ1dGUgQ2FjaGVTdG9yYWdlIGNhY2hlczsKIH07CiAKIFtTZWN1cmVDb250ZXh0LCBFeHBvc2Vk
PShXaW5kb3csV29ya2VyKV0KIGludGVyZmFjZSBDYWNoZSB7Ci0gIFtOZXdPYmplY3RdIFByb21p
c2U8YW55PiBtYXRjaChSZXF1ZXN0SW5mbyByZXF1ZXN0LCBvcHRpb25hbCBDYWNoZVF1ZXJ5T3B0
aW9ucyBvcHRpb25zKTsKLSAgW05ld09iamVjdF0gUHJvbWlzZTxGcm96ZW5BcnJheTxSZXNwb25z
ZT4+IG1hdGNoQWxsKG9wdGlvbmFsIFJlcXVlc3RJbmZvIHJlcXVlc3QsIG9wdGlvbmFsIENhY2hl
UXVlcnlPcHRpb25zIG9wdGlvbnMpOworICBbTmV3T2JqZWN0XSBQcm9taXNlPGFueT4gbWF0Y2go
UmVxdWVzdEluZm8gcmVxdWVzdCwgb3B0aW9uYWwgQ2FjaGVRdWVyeU9wdGlvbnMgb3B0aW9ucyA9
IHt9KTsKKyAgW05ld09iamVjdF0gUHJvbWlzZTxGcm96ZW5BcnJheTxSZXNwb25zZT4+IG1hdGNo
QWxsKG9wdGlvbmFsIFJlcXVlc3RJbmZvIHJlcXVlc3QsIG9wdGlvbmFsIENhY2hlUXVlcnlPcHRp
b25zIG9wdGlvbnMgPSB7fSk7CiAgIFtOZXdPYmplY3RdIFByb21pc2U8dm9pZD4gYWRkKFJlcXVl
c3RJbmZvIHJlcXVlc3QpOwogICBbTmV3T2JqZWN0XSBQcm9taXNlPHZvaWQ+IGFkZEFsbChzZXF1
ZW5jZTxSZXF1ZXN0SW5mbz4gcmVxdWVzdHMpOwogICBbTmV3T2JqZWN0XSBQcm9taXNlPHZvaWQ+
IHB1dChSZXF1ZXN0SW5mbyByZXF1ZXN0LCBSZXNwb25zZSByZXNwb25zZSk7Ci0gIFtOZXdPYmpl
Y3RdIFByb21pc2U8Ym9vbGVhbj4gZGVsZXRlKFJlcXVlc3RJbmZvIHJlcXVlc3QsIG9wdGlvbmFs
IENhY2hlUXVlcnlPcHRpb25zIG9wdGlvbnMpOwotICBbTmV3T2JqZWN0XSBQcm9taXNlPEZyb3pl
bkFycmF5PFJlcXVlc3Q+PiBrZXlzKG9wdGlvbmFsIFJlcXVlc3RJbmZvIHJlcXVlc3QsIG9wdGlv
bmFsIENhY2hlUXVlcnlPcHRpb25zIG9wdGlvbnMpOworICBbTmV3T2JqZWN0XSBQcm9taXNlPGJv
b2xlYW4+IGRlbGV0ZShSZXF1ZXN0SW5mbyByZXF1ZXN0LCBvcHRpb25hbCBDYWNoZVF1ZXJ5T3B0
aW9ucyBvcHRpb25zID0ge30pOworICBbTmV3T2JqZWN0XSBQcm9taXNlPEZyb3plbkFycmF5PFJl
cXVlc3Q+PiBrZXlzKG9wdGlvbmFsIFJlcXVlc3RJbmZvIHJlcXVlc3QsIG9wdGlvbmFsIENhY2hl
UXVlcnlPcHRpb25zIG9wdGlvbnMgPSB7fSk7CiB9OwogCiBkaWN0aW9uYXJ5IENhY2hlUXVlcnlP
cHRpb25zIHsKQEAgLTIwMCw3ICsyMjMsNyBAQCBkaWN0aW9uYXJ5IENhY2hlUXVlcnlPcHRpb25z
IHsKIAogW1NlY3VyZUNvbnRleHQsIEV4cG9zZWQ9KFdpbmRvdyxXb3JrZXIpXQogaW50ZXJmYWNl
IENhY2hlU3RvcmFnZSB7Ci0gIFtOZXdPYmplY3RdIFByb21pc2U8YW55PiBtYXRjaChSZXF1ZXN0
SW5mbyByZXF1ZXN0LCBvcHRpb25hbCBNdWx0aUNhY2hlUXVlcnlPcHRpb25zIG9wdGlvbnMpOwor
ICBbTmV3T2JqZWN0XSBQcm9taXNlPGFueT4gbWF0Y2goUmVxdWVzdEluZm8gcmVxdWVzdCwgb3B0
aW9uYWwgTXVsdGlDYWNoZVF1ZXJ5T3B0aW9ucyBvcHRpb25zID0ge30pOwogICBbTmV3T2JqZWN0
XSBQcm9taXNlPGJvb2xlYW4+IGhhcyhET01TdHJpbmcgY2FjaGVOYW1lKTsKICAgW05ld09iamVj
dF0gUHJvbWlzZTxDYWNoZT4gb3BlbihET01TdHJpbmcgY2FjaGVOYW1lKTsKICAgW05ld09iamVj
dF0gUHJvbWlzZTxib29sZWFuPiBkZWxldGUoRE9NU3RyaW5nIGNhY2hlTmFtZSk7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ludGVyc2Vj
dGlvbi1vYnNlcnZlci9pZGxoYXJuZXNzLndpbmRvdy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ludGVyc2VjdGlvbi1vYnNlcnZlci9p
ZGxoYXJuZXNzLndpbmRvdy1leHBlY3RlZC50eHQKaW5kZXggZjEwODU5ZTEzOWFiZTRjOTMyYTY1
NzBlOTMwN2I2MDhkZDBiYjk4My4uZGM4MDdmMjUwYThmMDhmZjdmMWQwMDZhOGQ5MDFiMDUyNTYw
OGYwYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9pbnRlcnNlY3Rpb24tb2JzZXJ2ZXIvaWRsaGFybmVzcy53aW5kb3ctZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW50ZXJz
ZWN0aW9uLW9ic2VydmVyL2lkbGhhcm5lc3Mud2luZG93LWV4cGVjdGVkLnR4dApAQCAtMSw0ICsx
LDMgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA0ODI6IGNhbGxiYWNrIG5vdCB5ZXQgc3VwcG9y
dGVkCiAKIFBBU1MgaWRsX3Rlc3Qgc2V0dXAgCiBQQVNTIEludGVyc2VjdGlvbk9ic2VydmVyIGlu
dGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21h
dGhtbC9yZWxhdGlvbnMvaHRtbDUtdHJlZS9tYXRoLWdsb2JhbC1ldmVudC1oYW5kbGVycy50ZW50
YXRpdmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9tYXRobWwvcmVsYXRpb25zL2h0bWw1LXRyZWUvbWF0aC1nbG9iYWwtZXZlbnQtaGFu
ZGxlcnMudGVudGF0aXZlLWV4cGVjdGVkLnR4dAppbmRleCBjNDE1OGFkNWQyZmFlZjU3ZTBmNDM2
MGY1NTliYWI5Mzk0NDlhNmVkLi5hNTFjMmIxNjQ1MjBjMDc1MzQ0YmVkZGYyYjcyMzA2YzZmMDY4
NjBjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL21hdGhtbC9yZWxhdGlvbnMvaHRtbDUtdHJlZS9tYXRoLWdsb2JhbC1ldmVudC1oYW5kbGVy
cy50ZW50YXRpdmUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvbWF0aG1sL3JlbGF0aW9ucy9odG1sNS10cmVlL21hdGgtZ2xvYmFs
LWV2ZW50LWhhbmRsZXJzLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQKQEAgLTk1LDYgKzk1LDEwIEBA
IFBBU1Mgb25mb2N1czogbXVzdCBiZSBvbiB0aGUgYXBwcm9wcmlhdGUgbG9jYXRpb25zIGZvciBH
bG9iYWxFdmVudEhhbmRsZXJzCiBQQVNTIG9uZm9jdXM6IHRoZSBkZWZhdWx0IHZhbHVlIG11c3Qg
YmUgbnVsbCAKIFBBU1Mgb25mb2N1czogdGhlIGNvbnRlbnQgYXR0cmlidXRlIG11c3QgYmUgY29t
cGlsZWQgaW50byBhIGZ1bmN0aW9uIGFzIHRoZSBjb3JyZXNwb25kaW5nIHByb3BlcnR5IAogUEFT
UyBvbmZvY3VzOiBkaXNwYXRjaGluZyBhbiBFdmVudCBhdCBhIDxtYXRoPiBlbGVtZW50IG11c3Qg
dHJpZ2dlciBlbGVtZW50Lm9uZm9jdXMgCitGQUlMIG9uZm9ybWRhdGE6IG11c3QgYmUgb24gdGhl
IGFwcHJvcHJpYXRlIGxvY2F0aW9ucyBmb3IgR2xvYmFsRXZlbnRIYW5kbGVycyBhc3NlcnRfdHJ1
ZTogTWF0aE1MRWxlbWVudCBoYXMgYW4gb3duIHByb3BlcnR5IG5hbWVkICJvbmZvcm1kYXRhIiBl
eHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorRkFJTCBvbmZvcm1kYXRhOiB0aGUgZGVmYXVsdCB2YWx1
ZSBtdXN0IGJlIG51bGwgYXNzZXJ0X2VxdWFsczogVGhlIGRlZmF1bHQgdmFsdWUgb2YgdGhlIHBy
b3BlcnR5IGlzIG51bGwgZm9yIGEgTWF0aE1MTWF0aEVsZW1lbnQgaW5zdGFuY2UgZXhwZWN0ZWQg
KG9iamVjdCkgbnVsbCBidXQgZ290ICh1bmRlZmluZWQpIHVuZGVmaW5lZAorRkFJTCBvbmZvcm1k
YXRhOiB0aGUgY29udGVudCBhdHRyaWJ1dGUgbXVzdCBiZSBjb21waWxlZCBpbnRvIGEgZnVuY3Rp
b24gYXMgdGhlIGNvcnJlc3BvbmRpbmcgcHJvcGVydHkgYXNzZXJ0X2VxdWFsczogVGhlIG9uZm9y
bWRhdGEgcHJvcGVydHkgbXVzdCBiZSBhIGZ1bmN0aW9uIGV4cGVjdGVkICJmdW5jdGlvbiIgYnV0
IGdvdCAidW5kZWZpbmVkIgorUEFTUyBvbmZvcm1kYXRhOiBkaXNwYXRjaGluZyBhbiBFdmVudCBh
dCBhIDxtYXRoPiBlbGVtZW50IG11c3QgdHJpZ2dlciBlbGVtZW50Lm9uZm9ybWRhdGEgCiBQQVNT
IG9uaW5wdXQ6IG11c3QgYmUgb24gdGhlIGFwcHJvcHJpYXRlIGxvY2F0aW9ucyBmb3IgR2xvYmFs
RXZlbnRIYW5kbGVycyAKIFBBU1Mgb25pbnB1dDogdGhlIGRlZmF1bHQgdmFsdWUgbXVzdCBiZSBu
dWxsIAogUEFTUyBvbmlucHV0OiB0aGUgY29udGVudCBhdHRyaWJ1dGUgbXVzdCBiZSBjb21waWxl
ZCBpbnRvIGEgZnVuY3Rpb24gYXMgdGhlIGNvcnJlc3BvbmRpbmcgcHJvcGVydHkgCkBAIC0xMjcs
MTAgKzEzMSw2IEBAIFBBU1Mgb25sb2FkZWRtZXRhZGF0YTogbXVzdCBiZSBvbiB0aGUgYXBwcm9w
cmlhdGUgbG9jYXRpb25zIGZvciBHbG9iYWxFdmVudEhhbmRsCiBQQVNTIG9ubG9hZGVkbWV0YWRh
dGE6IHRoZSBkZWZhdWx0IHZhbHVlIG11c3QgYmUgbnVsbCAKIFBBU1Mgb25sb2FkZWRtZXRhZGF0
YTogdGhlIGNvbnRlbnQgYXR0cmlidXRlIG11c3QgYmUgY29tcGlsZWQgaW50byBhIGZ1bmN0aW9u
IGFzIHRoZSBjb3JyZXNwb25kaW5nIHByb3BlcnR5IAogUEFTUyBvbmxvYWRlZG1ldGFkYXRhOiBk
aXNwYXRjaGluZyBhbiBFdmVudCBhdCBhIDxtYXRoPiBlbGVtZW50IG11c3QgdHJpZ2dlciBlbGVt
ZW50Lm9ubG9hZGVkbWV0YWRhdGEgCi1GQUlMIG9ubG9hZGVuZDogbXVzdCBiZSBvbiB0aGUgYXBw
cm9wcmlhdGUgbG9jYXRpb25zIGZvciBHbG9iYWxFdmVudEhhbmRsZXJzIGFzc2VydF90cnVlOiBN
YXRoTUxFbGVtZW50IGhhcyBhbiBvd24gcHJvcGVydHkgbmFtZWQgIm9ubG9hZGVuZCIgZXhwZWN0
ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgb25sb2FkZW5kOiB0aGUgZGVmYXVsdCB2YWx1ZSBtdXN0
IGJlIG51bGwgYXNzZXJ0X2VxdWFsczogVGhlIGRlZmF1bHQgdmFsdWUgb2YgdGhlIHByb3BlcnR5
IGlzIG51bGwgZm9yIGEgTWF0aE1MTWF0aEVsZW1lbnQgaW5zdGFuY2UgZXhwZWN0ZWQgKG9iamVj
dCkgbnVsbCBidXQgZ290ICh1bmRlZmluZWQpIHVuZGVmaW5lZAotRkFJTCBvbmxvYWRlbmQ6IHRo
ZSBjb250ZW50IGF0dHJpYnV0ZSBtdXN0IGJlIGNvbXBpbGVkIGludG8gYSBmdW5jdGlvbiBhcyB0
aGUgY29ycmVzcG9uZGluZyBwcm9wZXJ0eSBhc3NlcnRfZXF1YWxzOiBUaGUgb25sb2FkZW5kIHBy
b3BlcnR5IG11c3QgYmUgYSBmdW5jdGlvbiBleHBlY3RlZCAiZnVuY3Rpb24iIGJ1dCBnb3QgInVu
ZGVmaW5lZCIKLVBBU1Mgb25sb2FkZW5kOiBkaXNwYXRjaGluZyBhbiBFdmVudCBhdCBhIDxtYXRo
PiBlbGVtZW50IG11c3QgdHJpZ2dlciBlbGVtZW50Lm9ubG9hZGVuZCAKIFBBU1Mgb25sb2Fkc3Rh
cnQ6IG11c3QgYmUgb24gdGhlIGFwcHJvcHJpYXRlIGxvY2F0aW9ucyBmb3IgR2xvYmFsRXZlbnRI
YW5kbGVycyAKIFBBU1Mgb25sb2Fkc3RhcnQ6IHRoZSBkZWZhdWx0IHZhbHVlIG11c3QgYmUgbnVs
bCAKIFBBU1Mgb25sb2Fkc3RhcnQ6IHRoZSBjb250ZW50IGF0dHJpYnV0ZSBtdXN0IGJlIGNvbXBp
bGVkIGludG8gYSBmdW5jdGlvbiBhcyB0aGUgY29ycmVzcG9uZGluZyBwcm9wZXJ0eSAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFj
YXB0dXJlLXJlY29yZC9pZGxoYXJuZXNzLndpbmRvdy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhY2FwdHVyZS1yZWNvcmQvaWRs
aGFybmVzcy53aW5kb3ctZXhwZWN0ZWQudHh0CmluZGV4IGE3ZWEzMjc5MWNiMDA2OTNmMzc5NGEy
M2QzMjg0YTkyNjc5YzUyZmYuLjEyZDVjNzNiN2FlMTc0YzNiNGJjM2RjZWMzNzE3ODgyYzNiNmY4
MmUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvbWVkaWFjYXB0dXJlLXJlY29yZC9pZGxoYXJuZXNzLndpbmRvdy1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1
cmUtcmVjb3JkL2lkbGhhcm5lc3Mud2luZG93LWV4cGVjdGVkLnR4dApAQCAtMSwzMCArMSwzIEBA
CiAKLUZBSUwgaWRsX3Rlc3Qgc2V0dXAgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9u
IHdpdGggdmFsdWU6IG9iamVjdCAiR290IGFuIGVycm9yIGJlZm9yZSBwYXJzaW5nIGFueSBuYW1l
ZCBkZWZpbml0aW9uOiBVbnJlY29nbmlzZWQgdG9rZW5zLCBsaW5lIDEgKHRva2VuczogIntcImVy
cm9yXCI6IHtcIm1lc3NhZ2VcIiIpCi1bCi0gICAgewotICAgICAgICAidHlwZSI6ICJ7IiwKLSAg
ICAgICAgInZhbHVlIjogInsiLAotICAgICAgICAidHJpdmlhIjogIiIKLSAgICB9LAotICAgIHsK
LSAgICAgICAgInR5cGUiOiAic3RyaW5nIiwKLSAgICAgICAgInZhbHVlIjogIlwiZXJyb3JcIiIs
Ci0gICAgICAgICJ0cml2aWEiOiAiIgotICAgIH0sCi0gICAgewotICAgICAgICAidHlwZSI6ICI6
IiwKLSAgICAgICAgInZhbHVlIjogIjoiLAotICAgICAgICAidHJpdmlhIjogIiIKLSAgICB9LAot
ICAgIHsKLSAgICAgICAgInR5cGUiOiAieyIsCi0gICAgICAgICJ2YWx1ZSI6ICJ7IiwKLSAgICAg
ICAgInRyaXZpYSI6ICIgIgotICAgIH0sCi0gICAgewotICAgICAgICAidHlwZSI6ICJzdHJpbmci
LAotICAgICAgICAidmFsdWUiOiAiXCJtZXNzYWdlXCIiLAotICAgICAgICAidHJpdmlhIjogIiIK
LSAgICB9Ci1dIgorRkFJTCBpZGxfdGVzdCBzZXR1cCBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCBy
ZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJFcnJvciBmZXRjaGluZyAvaW50ZXJmYWNlcy9t
ZWRpYXN0cmVhbS1yZWNvcmRpbmcuaWRsLiIKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtc3RyZWFtcy9NZWRpYURl
dmljZXMtSURMLWFsbC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL21lZGlhY2FwdHVyZS1zdHJlYW1zL01lZGlhRGV2aWNlcy1JREwtYWxs
LWV4cGVjdGVkLnR4dAppbmRleCAwYTdjYWM2NTU3ZTdhOTU5ZGMxYThkNDExZDE0MjY2MzIyNjI5
YTdmLi4zNTFlMzQ1MmYzODc3MDNkMWM0YWI3NzVhN2ExZjAzMzcyZDUxZGM0IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhY2FwdHVy
ZS1zdHJlYW1zL01lZGlhRGV2aWNlcy1JREwtYWxsLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhY2FwdHVyZS1zdHJlYW1z
L01lZGlhRGV2aWNlcy1JREwtYWxsLWV4cGVjdGVkLnR4dApAQCAtMSwxMDUgKzEsOSBAQAotQ09O
U09MRSBNRVNTQUdFOiBsaW5lIDQ4MjogY2FsbGJhY2sgbm90IHlldCBzdXBwb3J0ZWQKLUNPTlNP
TEUgTUVTU0FHRTogbGluZSA0ODI6IGNhbGxiYWNrIG5vdCB5ZXQgc3VwcG9ydGVkCiBEZXNjcmlw
dGlvbgogCiBUaGlzIHRlc3QgY2hlY2tzIGZvciB0aGUgcHJlc2VuY2Ugb2YgdGhlIG5hdmlnYXRv
ci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhIG1ldGhvZC4KIAogCi1QQVNTIGlkbF90ZXN0IHNl
dHVwIAotUEFTUyBQYXJ0aWFsIGludGVyZmFjZSBOYXZpZ2F0b3JVc2VyTWVkaWE6IG9yaWdpbmFs
IGludGVyZmFjZSBkZWZpbmVkIAotUEFTUyBQYXJ0aWFsIGludGVyZmFjZSBNZWRpYURldmljZXM6
IG9yaWdpbmFsIGludGVyZmFjZSBkZWZpbmVkIAotUEFTUyBNZWRpYVN0cmVhbSBpbnRlcmZhY2U6
IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IAotUEFTUyBNZWRp
YVN0cmVhbSBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aCAKLVBBU1MgTWVkaWFTdHJlYW0gaW50ZXJm
YWNlIG9iamVjdCBuYW1lIAotUEFTUyBNZWRpYVN0cmVhbSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBh
bmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCAKLVBBU1MgTWVkaWFT
dHJlYW0gaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHBy
b3RvdHlwZSBvYmplY3QncyAiY29uc3RydWN0b3IiIHByb3BlcnR5IAotUEFTUyBNZWRpYVN0cmVh
bSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90
eXBlIG9iamVjdCdzIEBAdW5zY29wYWJsZXMgcHJvcGVydHkgCi1QQVNTIE1lZGlhU3RyZWFtIGlu
dGVyZmFjZTogYXR0cmlidXRlIGlkIAotUEFTUyBNZWRpYVN0cmVhbSBpbnRlcmZhY2U6IG9wZXJh
dGlvbiBnZXRBdWRpb1RyYWNrcygpIAotUEFTUyBNZWRpYVN0cmVhbSBpbnRlcmZhY2U6IG9wZXJh
dGlvbiBnZXRWaWRlb1RyYWNrcygpIAotUEFTUyBNZWRpYVN0cmVhbSBpbnRlcmZhY2U6IG9wZXJh
dGlvbiBnZXRUcmFja3MoKSAKLVBBU1MgTWVkaWFTdHJlYW0gaW50ZXJmYWNlOiBvcGVyYXRpb24g
Z2V0VHJhY2tCeUlkKERPTVN0cmluZykgCi1QQVNTIE1lZGlhU3RyZWFtIGludGVyZmFjZTogb3Bl
cmF0aW9uIGFkZFRyYWNrKE1lZGlhU3RyZWFtVHJhY2spIAotUEFTUyBNZWRpYVN0cmVhbSBpbnRl
cmZhY2U6IG9wZXJhdGlvbiByZW1vdmVUcmFjayhNZWRpYVN0cmVhbVRyYWNrKSAKLVBBU1MgTWVk
aWFTdHJlYW0gaW50ZXJmYWNlOiBvcGVyYXRpb24gY2xvbmUoKSAKLVBBU1MgTWVkaWFTdHJlYW0g
aW50ZXJmYWNlOiBhdHRyaWJ1dGUgYWN0aXZlIAotUEFTUyBNZWRpYVN0cmVhbSBpbnRlcmZhY2U6
IGF0dHJpYnV0ZSBvbmFkZHRyYWNrIAotUEFTUyBNZWRpYVN0cmVhbSBpbnRlcmZhY2U6IGF0dHJp
YnV0ZSBvbnJlbW92ZXRyYWNrIAotUEFTUyBNZWRpYVN0cmVhbVRyYWNrIGludGVyZmFjZTogZXhp
c3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgCi1QQVNTIE1lZGlhU3Ry
ZWFtVHJhY2sgaW50ZXJmYWNlIG9iamVjdCBsZW5ndGggCi1QQVNTIE1lZGlhU3RyZWFtVHJhY2sg
aW50ZXJmYWNlIG9iamVjdCBuYW1lIAotUEFTUyBNZWRpYVN0cmVhbVRyYWNrIGludGVyZmFjZTog
ZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IAot
UEFTUyBNZWRpYVN0cmVhbVRyYWNrIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVz
IG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgImNvbnN0cnVjdG9yIiBwcm9wZXJ0eSAK
LVBBU1MgTWVkaWFTdHJlYW1UcmFjayBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGll
cyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzIEBAdW5zY29wYWJsZXMgcHJvcGVydHkg
Ci1QQVNTIE1lZGlhU3RyZWFtVHJhY2sgaW50ZXJmYWNlOiBhdHRyaWJ1dGUga2luZCAKLVBBU1Mg
TWVkaWFTdHJlYW1UcmFjayBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBpZCAKLVBBU1MgTWVkaWFTdHJl
YW1UcmFjayBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBsYWJlbCAKLVBBU1MgTWVkaWFTdHJlYW1UcmFj
ayBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBlbmFibGVkIAotUEFTUyBNZWRpYVN0cmVhbVRyYWNrIGlu
dGVyZmFjZTogYXR0cmlidXRlIG11dGVkIAotUEFTUyBNZWRpYVN0cmVhbVRyYWNrIGludGVyZmFj
ZTogYXR0cmlidXRlIG9ubXV0ZSAKLVBBU1MgTWVkaWFTdHJlYW1UcmFjayBpbnRlcmZhY2U6IGF0
dHJpYnV0ZSBvbnVubXV0ZSAKLVBBU1MgTWVkaWFTdHJlYW1UcmFjayBpbnRlcmZhY2U6IGF0dHJp
YnV0ZSByZWFkeVN0YXRlIAotUEFTUyBNZWRpYVN0cmVhbVRyYWNrIGludGVyZmFjZTogYXR0cmli
dXRlIG9uZW5kZWQgCi1QQVNTIE1lZGlhU3RyZWFtVHJhY2sgaW50ZXJmYWNlOiBvcGVyYXRpb24g
Y2xvbmUoKSAKLVBBU1MgTWVkaWFTdHJlYW1UcmFjayBpbnRlcmZhY2U6IG9wZXJhdGlvbiBzdG9w
KCkgCi1QQVNTIE1lZGlhU3RyZWFtVHJhY2sgaW50ZXJmYWNlOiBvcGVyYXRpb24gZ2V0Q2FwYWJp
bGl0aWVzKCkgCi1QQVNTIE1lZGlhU3RyZWFtVHJhY2sgaW50ZXJmYWNlOiBvcGVyYXRpb24gZ2V0
Q29uc3RyYWludHMoKSAKLVBBU1MgTWVkaWFTdHJlYW1UcmFjayBpbnRlcmZhY2U6IG9wZXJhdGlv
biBnZXRTZXR0aW5ncygpIAotUEFTUyBNZWRpYVN0cmVhbVRyYWNrIGludGVyZmFjZTogb3BlcmF0
aW9uIGFwcGx5Q29uc3RyYWludHMoTWVkaWFUcmFja0NvbnN0cmFpbnRzKSAKLVBBU1MgTWVkaWFT
dHJlYW1UcmFjayBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBvbm92ZXJjb25zdHJhaW5lZCAKLVBBU1Mg
TWVkaWFTdHJlYW1UcmFja0V2ZW50IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVz
IG9mIGludGVyZmFjZSBvYmplY3QgCi1QQVNTIE1lZGlhU3RyZWFtVHJhY2tFdmVudCBpbnRlcmZh
Y2Ugb2JqZWN0IGxlbmd0aCAKLVBBU1MgTWVkaWFTdHJlYW1UcmFja0V2ZW50IGludGVyZmFjZSBv
YmplY3QgbmFtZSAKLVBBU1MgTWVkaWFTdHJlYW1UcmFja0V2ZW50IGludGVyZmFjZTogZXhpc3Rl
bmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IAotUEFTUyBN
ZWRpYVN0cmVhbVRyYWNrRXZlbnQgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMg
b2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyAiY29uc3RydWN0b3IiIHByb3BlcnR5IAot
UEFTUyBNZWRpYVN0cmVhbVRyYWNrRXZlbnQgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3Bl
cnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyBAQHVuc2NvcGFibGVzIHByb3Bl
cnR5IAotUEFTUyBNZWRpYVN0cmVhbVRyYWNrRXZlbnQgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgdHJh
Y2sgCi1QQVNTIE92ZXJjb25zdHJhaW5lZEVycm9yRXZlbnQgaW50ZXJmYWNlOiBleGlzdGVuY2Ug
YW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCAKLUZBSUwgT3ZlcmNvbnN0cmFpbmVk
RXJyb3JFdmVudCBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aCBhc3NlcnRfZXF1YWxzOiB3cm9uZyB2
YWx1ZSBmb3IgT3ZlcmNvbnN0cmFpbmVkRXJyb3JFdmVudC5sZW5ndGggZXhwZWN0ZWQgMiBidXQg
Z290IDEKLVBBU1MgT3ZlcmNvbnN0cmFpbmVkRXJyb3JFdmVudCBpbnRlcmZhY2Ugb2JqZWN0IG5h
bWUgCi1QQVNTIE92ZXJjb25zdHJhaW5lZEVycm9yRXZlbnQgaW50ZXJmYWNlOiBleGlzdGVuY2Ug
YW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgCi1QQVNTIE92ZXJj
b25zdHJhaW5lZEVycm9yRXZlbnQgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMg
b2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyAiY29uc3RydWN0b3IiIHByb3BlcnR5IAot
UEFTUyBPdmVyY29uc3RyYWluZWRFcnJvckV2ZW50IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBw
cm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgQEB1bnNjb3BhYmxlcyBw
cm9wZXJ0eSAKLVBBU1MgT3ZlcmNvbnN0cmFpbmVkRXJyb3JFdmVudCBpbnRlcmZhY2U6IGF0dHJp
YnV0ZSBlcnJvciAKLVBBU1MgTWVkaWFEZXZpY2VzIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBw
cm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgCi1QQVNTIE1lZGlhRGV2aWNlcyBpbnRlcmZh
Y2Ugb2JqZWN0IGxlbmd0aCAKLVBBU1MgTWVkaWFEZXZpY2VzIGludGVyZmFjZSBvYmplY3QgbmFt
ZSAKLVBBU1MgTWVkaWFEZXZpY2VzIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVz
IG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IAotUEFTUyBNZWRpYURldmljZXMgaW50ZXJm
YWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmpl
Y3QncyAiY29uc3RydWN0b3IiIHByb3BlcnR5IAotUEFTUyBNZWRpYURldmljZXMgaW50ZXJmYWNl
OiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3Qn
cyBAQHVuc2NvcGFibGVzIHByb3BlcnR5IAotUEFTUyBNZWRpYURldmljZXMgaW50ZXJmYWNlOiBh
dHRyaWJ1dGUgb25kZXZpY2VjaGFuZ2UgCi1QQVNTIE1lZGlhRGV2aWNlcyBpbnRlcmZhY2U6IG9w
ZXJhdGlvbiBlbnVtZXJhdGVEZXZpY2VzKCkgCi1QQVNTIE1lZGlhRGV2aWNlcyBpbnRlcmZhY2U6
IG9wZXJhdGlvbiBnZXRTdXBwb3J0ZWRDb25zdHJhaW50cygpIAotUEFTUyBNZWRpYURldmljZXMg
aW50ZXJmYWNlOiBvcGVyYXRpb24gZ2V0VXNlck1lZGlhKE1lZGlhU3RyZWFtQ29uc3RyYWludHMp
IAotUEFTUyBNZWRpYURldmljZXMgbXVzdCBiZSBwcmltYXJ5IGludGVyZmFjZSBvZiBuYXZpZ2F0
b3IubWVkaWFEZXZpY2VzIAotUEFTUyBTdHJpbmdpZmljYXRpb24gb2YgbmF2aWdhdG9yLm1lZGlh
RGV2aWNlcyAKLVBBU1MgTWVkaWFEZXZpY2VzIGludGVyZmFjZTogbmF2aWdhdG9yLm1lZGlhRGV2
aWNlcyBtdXN0IGluaGVyaXQgcHJvcGVydHkgIm9uZGV2aWNlY2hhbmdlIiB3aXRoIHRoZSBwcm9w
ZXIgdHlwZSAKLVBBU1MgTWVkaWFEZXZpY2VzIGludGVyZmFjZTogbmF2aWdhdG9yLm1lZGlhRGV2
aWNlcyBtdXN0IGluaGVyaXQgcHJvcGVydHkgImVudW1lcmF0ZURldmljZXMoKSIgd2l0aCB0aGUg
cHJvcGVyIHR5cGUgCi1QQVNTIE1lZGlhRGV2aWNlcyBpbnRlcmZhY2U6IG5hdmlnYXRvci5tZWRp
YURldmljZXMgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJnZXRTdXBwb3J0ZWRDb25zdHJhaW50cygp
IiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKLVBBU1MgTWVkaWFEZXZpY2VzIGludGVyZmFjZTogbmF2
aWdhdG9yLm1lZGlhRGV2aWNlcyBtdXN0IGluaGVyaXQgcHJvcGVydHkgImdldFVzZXJNZWRpYShN
ZWRpYVN0cmVhbUNvbnN0cmFpbnRzKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCi1QQVNTIE1lZGlh
RGV2aWNlcyBpbnRlcmZhY2U6IGNhbGxpbmcgZ2V0VXNlck1lZGlhKE1lZGlhU3RyZWFtQ29uc3Ry
YWludHMpIG9uIG5hdmlnYXRvci5tZWRpYURldmljZXMgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBt
dXN0IHRocm93IFR5cGVFcnJvciAKLVBBU1MgTWVkaWFEZXZpY2VJbmZvIGludGVyZmFjZTogZXhp
c3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgCi1QQVNTIE1lZGlhRGV2
aWNlSW5mbyBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aCAKLVBBU1MgTWVkaWFEZXZpY2VJbmZvIGlu
dGVyZmFjZSBvYmplY3QgbmFtZSAKLVBBU1MgTWVkaWFEZXZpY2VJbmZvIGludGVyZmFjZTogZXhp
c3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IAotUEFT
UyBNZWRpYURldmljZUluZm8gaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2Yg
aW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyAiY29uc3RydWN0b3IiIHByb3BlcnR5IAotUEFT
UyBNZWRpYURldmljZUluZm8gaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2Yg
aW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyBAQHVuc2NvcGFibGVzIHByb3BlcnR5IAotUEFT
UyBNZWRpYURldmljZUluZm8gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgZGV2aWNlSWQgCi1QQVNTIE1l
ZGlhRGV2aWNlSW5mbyBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBraW5kIAotUEFTUyBNZWRpYURldmlj
ZUluZm8gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgbGFiZWwgCi1QQVNTIE1lZGlhRGV2aWNlSW5mbyBp
bnRlcmZhY2U6IGF0dHJpYnV0ZSBncm91cElkIAotUEFTUyBNZWRpYURldmljZUluZm8gaW50ZXJm
YWNlOiBvcGVyYXRpb24gdG9KU09OKCkgCi1GQUlMIElucHV0RGV2aWNlSW5mbyBpbnRlcmZhY2U6
IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IGFzc2VydF9vd25f
cHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIklucHV0RGV2aWNlSW5m
byIgZXhwZWN0ZWQgcHJvcGVydHkgIklucHV0RGV2aWNlSW5mbyIgbWlzc2luZwotRkFJTCBJbnB1
dERldmljZUluZm8gaW50ZXJmYWNlIG9iamVjdCBsZW5ndGggYXNzZXJ0X293bl9wcm9wZXJ0eTog
c2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiSW5wdXREZXZpY2VJbmZvIiBleHBlY3Rl
ZCBwcm9wZXJ0eSAiSW5wdXREZXZpY2VJbmZvIiBtaXNzaW5nCi1GQUlMIElucHV0RGV2aWNlSW5m
byBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5v
dCBoYXZlIG93biBwcm9wZXJ0eSAiSW5wdXREZXZpY2VJbmZvIiBleHBlY3RlZCBwcm9wZXJ0eSAi
SW5wdXREZXZpY2VJbmZvIiBtaXNzaW5nCi1GQUlMIElucHV0RGV2aWNlSW5mbyBpbnRlcmZhY2U6
IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCBh
c3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJJbnB1
dERldmljZUluZm8iIGV4cGVjdGVkIHByb3BlcnR5ICJJbnB1dERldmljZUluZm8iIG1pc3NpbmcK
LUZBSUwgSW5wdXREZXZpY2VJbmZvIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVz
IG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgImNvbnN0cnVjdG9yIiBwcm9wZXJ0eSBh
c3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJJbnB1
dERldmljZUluZm8iIGV4cGVjdGVkIHByb3BlcnR5ICJJbnB1dERldmljZUluZm8iIG1pc3NpbmcK
LUZBSUwgSW5wdXREZXZpY2VJbmZvIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVz
IG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgQEB1bnNjb3BhYmxlcyBwcm9wZXJ0eSBh
c3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJJbnB1
dERldmljZUluZm8iIGV4cGVjdGVkIHByb3BlcnR5ICJJbnB1dERldmljZUluZm8iIG1pc3NpbmcK
LUZBSUwgSW5wdXREZXZpY2VJbmZvIGludGVyZmFjZTogb3BlcmF0aW9uIGdldENhcGFiaWxpdGll
cygpIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkg
IklucHV0RGV2aWNlSW5mbyIgZXhwZWN0ZWQgcHJvcGVydHkgIklucHV0RGV2aWNlSW5mbyIgbWlz
c2luZwotUEFTUyBOYXZpZ2F0b3IgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgbWVkaWFEZXZpY2VzIAot
RkFJTCBOYXZpZ2F0b3IgaW50ZXJmYWNlOiBvcGVyYXRpb24gZ2V0VXNlck1lZGlhKE1lZGlhU3Ry
ZWFtQ29uc3RyYWludHMsIE5hdmlnYXRvclVzZXJNZWRpYVN1Y2Nlc3NDYWxsYmFjaywgTmF2aWdh
dG9yVXNlck1lZGlhRXJyb3JDYWxsYmFjaykgYXNzZXJ0X293bl9wcm9wZXJ0eTogaW50ZXJmYWNl
IHByb3RvdHlwZSBvYmplY3QgbWlzc2luZyBub24tc3RhdGljIG9wZXJhdGlvbiBleHBlY3RlZCBw
cm9wZXJ0eSAiZ2V0VXNlck1lZGlhIiBtaXNzaW5nCi1QQVNTIE5hdmlnYXRvciBpbnRlcmZhY2U6
IG5hdmlnYXRvciBtdXN0IGluaGVyaXQgcHJvcGVydHkgIm1lZGlhRGV2aWNlcyIgd2l0aCB0aGUg
cHJvcGVyIHR5cGUgCi1GQUlMIE5hdmlnYXRvciBpbnRlcmZhY2U6IG5hdmlnYXRvciBtdXN0IGlu
aGVyaXQgcHJvcGVydHkgImdldFVzZXJNZWRpYShNZWRpYVN0cmVhbUNvbnN0cmFpbnRzLCBOYXZp
Z2F0b3JVc2VyTWVkaWFTdWNjZXNzQ2FsbGJhY2ssIE5hdmlnYXRvclVzZXJNZWRpYUVycm9yQ2Fs
bGJhY2spIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBhc3NlcnRfaW5oZXJpdHM6IHByb3BlcnR5ICJn
ZXRVc2VyTWVkaWEiIG5vdCBmb3VuZCBpbiBwcm90b3R5cGUgY2hhaW4KLUZBSUwgTmF2aWdhdG9y
IGludGVyZmFjZTogY2FsbGluZyBnZXRVc2VyTWVkaWEoTWVkaWFTdHJlYW1Db25zdHJhaW50cywg
TmF2aWdhdG9yVXNlck1lZGlhU3VjY2Vzc0NhbGxiYWNrLCBOYXZpZ2F0b3JVc2VyTWVkaWFFcnJv
ckNhbGxiYWNrKSBvbiBuYXZpZ2F0b3Igd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93
IFR5cGVFcnJvciBhc3NlcnRfaW5oZXJpdHM6IHByb3BlcnR5ICJnZXRVc2VyTWVkaWEiIG5vdCBm
b3VuZCBpbiBwcm90b3R5cGUgY2hhaW4KLVBBU1MgV29ya2VyTmF2aWdhdG9yIGludGVyZmFjZTog
ZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgCitGQUlMIGlkbF90
ZXN0IHNldHVwIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBv
YmplY3QgIldlYklETFBhcnNlRXJyb3I6IFN5bnRheCBlcnJvciBhdCBsaW5lIDE0Nywgc2luY2Ug
YGludGVyZmFjZSBOYXZpZ2F0b3JVc2VyTWVkaWFgOgorTmF2aWdhdG9yIGltcGxlbWVudHMgTmF2
aWdhdG9yVXNlck1lZGlhOworXiBVbnJlY29nbmlzZWQgdG9rZW5zIgogCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhY2FwdHVyZS1z
dHJlYW1zL01lZGlhRGV2aWNlcy1JREwtZW51bWVyYXRlRGV2aWNlcy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhY2FwdHVyZS1z
dHJlYW1zL01lZGlhRGV2aWNlcy1JREwtZW51bWVyYXRlRGV2aWNlcy1leHBlY3RlZC50eHQKaW5k
ZXggOTRlNGRiNTMwYmQwODdhMDUzMmVmY2Y1ODVlMDBlZjk3OTA5YzI5Ny4uZjRlMTJiMmE2YTc2
NWEwNTM2ZjA2OTI1YWI3NGNiM2ZiNzgwNDNjYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtc3RyZWFtcy9NZWRpYURl
dmljZXMtSURMLWVudW1lcmF0ZURldmljZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFjYXB0dXJlLXN0cmVhbXMvTWVk
aWFEZXZpY2VzLUlETC1lbnVtZXJhdGVEZXZpY2VzLWV4cGVjdGVkLnR4dApAQCAtMSwxMDMgKzEs
OSBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDQ4MjogY2FsbGJhY2sgbm90IHlldCBzdXBwb3J0
ZWQKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA0ODI6IGNhbGxiYWNrIG5vdCB5ZXQgc3VwcG9ydGVk
CiBEZXNjcmlwdGlvbgogCiBUaGlzIHRlc3QgY2hlY2tzIGZvciB0aGUgcHJlc2VuY2Ugb2YgdGhl
IG5hdmlnYXRvci5tZWRpYURldmljZXMuZW51bWVyYXRlRGV2aWNlcygpIG1ldGhvZC4KIAogCi1Q
QVNTIGlkbF90ZXN0IHNldHVwIAotUEFTUyBQYXJ0aWFsIGludGVyZmFjZSBOYXZpZ2F0b3JVc2Vy
TWVkaWE6IG9yaWdpbmFsIGludGVyZmFjZSBkZWZpbmVkIAotUEFTUyBQYXJ0aWFsIGludGVyZmFj
ZSBNZWRpYURldmljZXM6IG9yaWdpbmFsIGludGVyZmFjZSBkZWZpbmVkIAotUEFTUyBNZWRpYVN0
cmVhbSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2Jq
ZWN0IAotUEFTUyBNZWRpYVN0cmVhbSBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aCAKLVBBU1MgTWVk
aWFTdHJlYW0gaW50ZXJmYWNlIG9iamVjdCBuYW1lIAotUEFTUyBNZWRpYVN0cmVhbSBpbnRlcmZh
Y2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVj
dCAKLVBBU1MgTWVkaWFTdHJlYW0gaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMg
b2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyAiY29uc3RydWN0b3IiIHByb3BlcnR5IAot
UEFTUyBNZWRpYVN0cmVhbSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBp
bnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzIEBAdW5zY29wYWJsZXMgcHJvcGVydHkgCi1QQVNT
IE1lZGlhU3RyZWFtIGludGVyZmFjZTogYXR0cmlidXRlIGlkIAotUEFTUyBNZWRpYVN0cmVhbSBp
bnRlcmZhY2U6IG9wZXJhdGlvbiBnZXRBdWRpb1RyYWNrcygpIAotUEFTUyBNZWRpYVN0cmVhbSBp
bnRlcmZhY2U6IG9wZXJhdGlvbiBnZXRWaWRlb1RyYWNrcygpIAotUEFTUyBNZWRpYVN0cmVhbSBp
bnRlcmZhY2U6IG9wZXJhdGlvbiBnZXRUcmFja3MoKSAKLVBBU1MgTWVkaWFTdHJlYW0gaW50ZXJm
YWNlOiBvcGVyYXRpb24gZ2V0VHJhY2tCeUlkKERPTVN0cmluZykgCi1QQVNTIE1lZGlhU3RyZWFt
IGludGVyZmFjZTogb3BlcmF0aW9uIGFkZFRyYWNrKE1lZGlhU3RyZWFtVHJhY2spIAotUEFTUyBN
ZWRpYVN0cmVhbSBpbnRlcmZhY2U6IG9wZXJhdGlvbiByZW1vdmVUcmFjayhNZWRpYVN0cmVhbVRy
YWNrKSAKLVBBU1MgTWVkaWFTdHJlYW0gaW50ZXJmYWNlOiBvcGVyYXRpb24gY2xvbmUoKSAKLVBB
U1MgTWVkaWFTdHJlYW0gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgYWN0aXZlIAotUEFTUyBNZWRpYVN0
cmVhbSBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBvbmFkZHRyYWNrIAotUEFTUyBNZWRpYVN0cmVhbSBp
bnRlcmZhY2U6IGF0dHJpYnV0ZSBvbnJlbW92ZXRyYWNrIAotUEFTUyBNZWRpYVN0cmVhbVRyYWNr
IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3Qg
Ci1QQVNTIE1lZGlhU3RyZWFtVHJhY2sgaW50ZXJmYWNlIG9iamVjdCBsZW5ndGggCi1QQVNTIE1l
ZGlhU3RyZWFtVHJhY2sgaW50ZXJmYWNlIG9iamVjdCBuYW1lIAotUEFTUyBNZWRpYVN0cmVhbVRy
YWNrIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90
b3R5cGUgb2JqZWN0IAotUEFTUyBNZWRpYVN0cmVhbVRyYWNrIGludGVyZmFjZTogZXhpc3RlbmNl
IGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgImNvbnN0cnVj
dG9yIiBwcm9wZXJ0eSAKLVBBU1MgTWVkaWFTdHJlYW1UcmFjayBpbnRlcmZhY2U6IGV4aXN0ZW5j
ZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzIEBAdW5zY29w
YWJsZXMgcHJvcGVydHkgCi1QQVNTIE1lZGlhU3RyZWFtVHJhY2sgaW50ZXJmYWNlOiBhdHRyaWJ1
dGUga2luZCAKLVBBU1MgTWVkaWFTdHJlYW1UcmFjayBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBpZCAK
LVBBU1MgTWVkaWFTdHJlYW1UcmFjayBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBsYWJlbCAKLVBBU1Mg
TWVkaWFTdHJlYW1UcmFjayBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBlbmFibGVkIAotUEFTUyBNZWRp
YVN0cmVhbVRyYWNrIGludGVyZmFjZTogYXR0cmlidXRlIG11dGVkIAotUEFTUyBNZWRpYVN0cmVh
bVRyYWNrIGludGVyZmFjZTogYXR0cmlidXRlIG9ubXV0ZSAKLVBBU1MgTWVkaWFTdHJlYW1UcmFj
ayBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBvbnVubXV0ZSAKLVBBU1MgTWVkaWFTdHJlYW1UcmFjayBp
bnRlcmZhY2U6IGF0dHJpYnV0ZSByZWFkeVN0YXRlIAotUEFTUyBNZWRpYVN0cmVhbVRyYWNrIGlu
dGVyZmFjZTogYXR0cmlidXRlIG9uZW5kZWQgCi1QQVNTIE1lZGlhU3RyZWFtVHJhY2sgaW50ZXJm
YWNlOiBvcGVyYXRpb24gY2xvbmUoKSAKLVBBU1MgTWVkaWFTdHJlYW1UcmFjayBpbnRlcmZhY2U6
IG9wZXJhdGlvbiBzdG9wKCkgCi1QQVNTIE1lZGlhU3RyZWFtVHJhY2sgaW50ZXJmYWNlOiBvcGVy
YXRpb24gZ2V0Q2FwYWJpbGl0aWVzKCkgCi1QQVNTIE1lZGlhU3RyZWFtVHJhY2sgaW50ZXJmYWNl
OiBvcGVyYXRpb24gZ2V0Q29uc3RyYWludHMoKSAKLVBBU1MgTWVkaWFTdHJlYW1UcmFjayBpbnRl
cmZhY2U6IG9wZXJhdGlvbiBnZXRTZXR0aW5ncygpIAotUEFTUyBNZWRpYVN0cmVhbVRyYWNrIGlu
dGVyZmFjZTogb3BlcmF0aW9uIGFwcGx5Q29uc3RyYWludHMoTWVkaWFUcmFja0NvbnN0cmFpbnRz
KSAKLVBBU1MgTWVkaWFTdHJlYW1UcmFjayBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBvbm92ZXJjb25z
dHJhaW5lZCAKLVBBU1MgTWVkaWFTdHJlYW1UcmFja0V2ZW50IGludGVyZmFjZTogZXhpc3RlbmNl
IGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgCi1QQVNTIE1lZGlhU3RyZWFtVHJh
Y2tFdmVudCBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aCAKLVBBU1MgTWVkaWFTdHJlYW1UcmFja0V2
ZW50IGludGVyZmFjZSBvYmplY3QgbmFtZSAKLVBBU1MgTWVkaWFTdHJlYW1UcmFja0V2ZW50IGlu
dGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUg
b2JqZWN0IAotUEFTUyBNZWRpYVN0cmVhbVRyYWNrRXZlbnQgaW50ZXJmYWNlOiBleGlzdGVuY2Ug
YW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyAiY29uc3RydWN0
b3IiIHByb3BlcnR5IAotUEFTUyBNZWRpYVN0cmVhbVRyYWNrRXZlbnQgaW50ZXJmYWNlOiBleGlz
dGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyBAQHVu
c2NvcGFibGVzIHByb3BlcnR5IAotUEFTUyBNZWRpYVN0cmVhbVRyYWNrRXZlbnQgaW50ZXJmYWNl
OiBhdHRyaWJ1dGUgdHJhY2sgCi1QQVNTIE92ZXJjb25zdHJhaW5lZEVycm9yRXZlbnQgaW50ZXJm
YWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCAKLUZBSUwg
T3ZlcmNvbnN0cmFpbmVkRXJyb3JFdmVudCBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aCBhc3NlcnRf
ZXF1YWxzOiB3cm9uZyB2YWx1ZSBmb3IgT3ZlcmNvbnN0cmFpbmVkRXJyb3JFdmVudC5sZW5ndGgg
ZXhwZWN0ZWQgMiBidXQgZ290IDEKLVBBU1MgT3ZlcmNvbnN0cmFpbmVkRXJyb3JFdmVudCBpbnRl
cmZhY2Ugb2JqZWN0IG5hbWUgCi1QQVNTIE92ZXJjb25zdHJhaW5lZEVycm9yRXZlbnQgaW50ZXJm
YWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmpl
Y3QgCi1QQVNTIE92ZXJjb25zdHJhaW5lZEVycm9yRXZlbnQgaW50ZXJmYWNlOiBleGlzdGVuY2Ug
YW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyAiY29uc3RydWN0
b3IiIHByb3BlcnR5IAotUEFTUyBPdmVyY29uc3RyYWluZWRFcnJvckV2ZW50IGludGVyZmFjZTog
ZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3Mg
QEB1bnNjb3BhYmxlcyBwcm9wZXJ0eSAKLVBBU1MgT3ZlcmNvbnN0cmFpbmVkRXJyb3JFdmVudCBp
bnRlcmZhY2U6IGF0dHJpYnV0ZSBlcnJvciAKLVBBU1MgTWVkaWFEZXZpY2VzIGludGVyZmFjZTog
ZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgCi1QQVNTIE1lZGlh
RGV2aWNlcyBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aCAKLVBBU1MgTWVkaWFEZXZpY2VzIGludGVy
ZmFjZSBvYmplY3QgbmFtZSAKLVBBU1MgTWVkaWFEZXZpY2VzIGludGVyZmFjZTogZXhpc3RlbmNl
IGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IAotUEFTUyBNZWRp
YURldmljZXMgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNl
IHByb3RvdHlwZSBvYmplY3QncyAiY29uc3RydWN0b3IiIHByb3BlcnR5IAotUEFTUyBNZWRpYURl
dmljZXMgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHBy
b3RvdHlwZSBvYmplY3QncyBAQHVuc2NvcGFibGVzIHByb3BlcnR5IAotUEFTUyBNZWRpYURldmlj
ZXMgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgb25kZXZpY2VjaGFuZ2UgCi1QQVNTIE1lZGlhRGV2aWNl
cyBpbnRlcmZhY2U6IG9wZXJhdGlvbiBlbnVtZXJhdGVEZXZpY2VzKCkgCi1QQVNTIE1lZGlhRGV2
aWNlcyBpbnRlcmZhY2U6IG9wZXJhdGlvbiBnZXRTdXBwb3J0ZWRDb25zdHJhaW50cygpIAotUEFT
UyBNZWRpYURldmljZXMgaW50ZXJmYWNlOiBvcGVyYXRpb24gZ2V0VXNlck1lZGlhKE1lZGlhU3Ry
ZWFtQ29uc3RyYWludHMpIAotUEFTUyBNZWRpYURldmljZUluZm8gaW50ZXJmYWNlOiBleGlzdGVu
Y2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCAKLVBBU1MgTWVkaWFEZXZpY2VJ
bmZvIGludGVyZmFjZSBvYmplY3QgbGVuZ3RoIAotUEFTUyBNZWRpYURldmljZUluZm8gaW50ZXJm
YWNlIG9iamVjdCBuYW1lIAotUEFTUyBNZWRpYURldmljZUluZm8gaW50ZXJmYWNlOiBleGlzdGVu
Y2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgCi1QQVNTIE1l
ZGlhRGV2aWNlSW5mbyBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRl
cmZhY2UgcHJvdG90eXBlIG9iamVjdCdzICJjb25zdHJ1Y3RvciIgcHJvcGVydHkgCi1QQVNTIE1l
ZGlhRGV2aWNlSW5mbyBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRl
cmZhY2UgcHJvdG90eXBlIG9iamVjdCdzIEBAdW5zY29wYWJsZXMgcHJvcGVydHkgCi1QQVNTIE1l
ZGlhRGV2aWNlSW5mbyBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBkZXZpY2VJZCAKLVBBU1MgTWVkaWFE
ZXZpY2VJbmZvIGludGVyZmFjZTogYXR0cmlidXRlIGtpbmQgCi1QQVNTIE1lZGlhRGV2aWNlSW5m
byBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBsYWJlbCAKLVBBU1MgTWVkaWFEZXZpY2VJbmZvIGludGVy
ZmFjZTogYXR0cmlidXRlIGdyb3VwSWQgCi1QQVNTIE1lZGlhRGV2aWNlSW5mbyBpbnRlcmZhY2U6
IG9wZXJhdGlvbiB0b0pTT04oKSAKLVBBU1MgTWVkaWFEZXZpY2VJbmZvIG11c3QgYmUgcHJpbWFy
eSBpbnRlcmZhY2Ugb2YgX21lZGlhSW5mbyAKLVBBU1MgU3RyaW5naWZpY2F0aW9uIG9mIF9tZWRp
YUluZm8gCi1QQVNTIE1lZGlhRGV2aWNlSW5mbyBpbnRlcmZhY2U6IF9tZWRpYUluZm8gbXVzdCBp
bmhlcml0IHByb3BlcnR5ICJkZXZpY2VJZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCi1QQVNTIE1l
ZGlhRGV2aWNlSW5mbyBpbnRlcmZhY2U6IF9tZWRpYUluZm8gbXVzdCBpbmhlcml0IHByb3BlcnR5
ICJraW5kIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKLVBBU1MgTWVkaWFEZXZpY2VJbmZvIGludGVy
ZmFjZTogX21lZGlhSW5mbyBtdXN0IGluaGVyaXQgcHJvcGVydHkgImxhYmVsIiB3aXRoIHRoZSBw
cm9wZXIgdHlwZSAKLVBBU1MgTWVkaWFEZXZpY2VJbmZvIGludGVyZmFjZTogX21lZGlhSW5mbyBt
dXN0IGluaGVyaXQgcHJvcGVydHkgImdyb3VwSWQiIHdpdGggdGhlIHByb3BlciB0eXBlIAotUEFT
UyBNZWRpYURldmljZUluZm8gaW50ZXJmYWNlOiBfbWVkaWFJbmZvIG11c3QgaW5oZXJpdCBwcm9w
ZXJ0eSAidG9KU09OKCkiIHdpdGggdGhlIHByb3BlciB0eXBlIAotUEFTUyBUZXN0IGRlZmF1bHQg
dG9KU09OIG9wZXJhdGlvbiBvZiBNZWRpYURldmljZUluZm8gCi1GQUlMIElucHV0RGV2aWNlSW5m
byBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0
IGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIklu
cHV0RGV2aWNlSW5mbyIgZXhwZWN0ZWQgcHJvcGVydHkgIklucHV0RGV2aWNlSW5mbyIgbWlzc2lu
ZwotRkFJTCBJbnB1dERldmljZUluZm8gaW50ZXJmYWNlIG9iamVjdCBsZW5ndGggYXNzZXJ0X293
bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiSW5wdXREZXZpY2VJ
bmZvIiBleHBlY3RlZCBwcm9wZXJ0eSAiSW5wdXREZXZpY2VJbmZvIiBtaXNzaW5nCi1GQUlMIElu
cHV0RGV2aWNlSW5mbyBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUgYXNzZXJ0X293bl9wcm9wZXJ0eTog
c2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiSW5wdXREZXZpY2VJbmZvIiBleHBlY3Rl
ZCBwcm9wZXJ0eSAiSW5wdXREZXZpY2VJbmZvIiBtaXNzaW5nCi1GQUlMIElucHV0RGV2aWNlSW5m
byBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90
eXBlIG9iamVjdCBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHBy
b3BlcnR5ICJJbnB1dERldmljZUluZm8iIGV4cGVjdGVkIHByb3BlcnR5ICJJbnB1dERldmljZUlu
Zm8iIG1pc3NpbmcKLUZBSUwgSW5wdXREZXZpY2VJbmZvIGludGVyZmFjZTogZXhpc3RlbmNlIGFu
ZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgImNvbnN0cnVjdG9y
IiBwcm9wZXJ0eSBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHBy
b3BlcnR5ICJJbnB1dERldmljZUluZm8iIGV4cGVjdGVkIHByb3BlcnR5ICJJbnB1dERldmljZUlu
Zm8iIG1pc3NpbmcKLUZBSUwgSW5wdXREZXZpY2VJbmZvIGludGVyZmFjZTogZXhpc3RlbmNlIGFu
ZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgQEB1bnNjb3BhYmxl
cyBwcm9wZXJ0eSBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHBy
b3BlcnR5ICJJbnB1dERldmljZUluZm8iIGV4cGVjdGVkIHByb3BlcnR5ICJJbnB1dERldmljZUlu
Zm8iIG1pc3NpbmcKLUZBSUwgSW5wdXREZXZpY2VJbmZvIGludGVyZmFjZTogb3BlcmF0aW9uIGdl
dENhcGFiaWxpdGllcygpIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBv
d24gcHJvcGVydHkgIklucHV0RGV2aWNlSW5mbyIgZXhwZWN0ZWQgcHJvcGVydHkgIklucHV0RGV2
aWNlSW5mbyIgbWlzc2luZwotUEFTUyBOYXZpZ2F0b3IgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgbWVk
aWFEZXZpY2VzIAotRkFJTCBOYXZpZ2F0b3IgaW50ZXJmYWNlOiBvcGVyYXRpb24gZ2V0VXNlck1l
ZGlhKE1lZGlhU3RyZWFtQ29uc3RyYWludHMsIE5hdmlnYXRvclVzZXJNZWRpYVN1Y2Nlc3NDYWxs
YmFjaywgTmF2aWdhdG9yVXNlck1lZGlhRXJyb3JDYWxsYmFjaykgYXNzZXJ0X293bl9wcm9wZXJ0
eTogaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgbWlzc2luZyBub24tc3RhdGljIG9wZXJhdGlv
biBleHBlY3RlZCBwcm9wZXJ0eSAiZ2V0VXNlck1lZGlhIiBtaXNzaW5nCi1QQVNTIFdvcmtlck5h
dmlnYXRvciBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ug
b2JqZWN0IAorRkFJTCBpZGxfdGVzdCBzZXR1cCBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWpl
Y3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJXZWJJRExQYXJzZUVycm9yOiBTeW50YXggZXJyb3Ig
YXQgbGluZSAxNDcsIHNpbmNlIGBpbnRlcmZhY2UgTmF2aWdhdG9yVXNlck1lZGlhYDoKK05hdmln
YXRvciBpbXBsZW1lbnRzIE5hdmlnYXRvclVzZXJNZWRpYTsKK14gVW5yZWNvZ25pc2VkIHRva2Vu
cyIKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9tc3QtY29udGVudC1oaW50L2lkbGhhcm5lc3Mud2luZG93LWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbXN0LWNvbnRlbnQtaGlu
dC9pZGxoYXJuZXNzLndpbmRvdy1leHBlY3RlZC50eHQKaW5kZXggYTdlYTMyNzkxY2IwMDY5M2Yz
Nzk0YTIzZDMyODRhOTI2NzljNTJmZi4uZmE2YmEwNjU1NjkyOWQ1NzRmMmRiNjc4NWUzOGI3MDBh
NjJhYjdlYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9tc3QtY29udGVudC1oaW50L2lkbGhhcm5lc3Mud2luZG93LWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21zdC1jb250
ZW50LWhpbnQvaWRsaGFybmVzcy53aW5kb3ctZXhwZWN0ZWQudHh0CkBAIC0xLDMwICsxLDMgQEAK
IAotRkFJTCBpZGxfdGVzdCBzZXR1cCBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24g
d2l0aCB2YWx1ZTogb2JqZWN0ICJHb3QgYW4gZXJyb3IgYmVmb3JlIHBhcnNpbmcgYW55IG5hbWVk
IGRlZmluaXRpb246IFVucmVjb2duaXNlZCB0b2tlbnMsIGxpbmUgMSAodG9rZW5zOiAie1wiZXJy
b3JcIjoge1wibWVzc2FnZVwiIikKLVsKLSAgICB7Ci0gICAgICAgICJ0eXBlIjogInsiLAotICAg
ICAgICAidmFsdWUiOiAieyIsCi0gICAgICAgICJ0cml2aWEiOiAiIgotICAgIH0sCi0gICAgewot
ICAgICAgICAidHlwZSI6ICJzdHJpbmciLAotICAgICAgICAidmFsdWUiOiAiXCJlcnJvclwiIiwK
LSAgICAgICAgInRyaXZpYSI6ICIiCi0gICAgfSwKLSAgICB7Ci0gICAgICAgICJ0eXBlIjogIjoi
LAotICAgICAgICAidmFsdWUiOiAiOiIsCi0gICAgICAgICJ0cml2aWEiOiAiIgotICAgIH0sCi0g
ICAgewotICAgICAgICAidHlwZSI6ICJ7IiwKLSAgICAgICAgInZhbHVlIjogInsiLAotICAgICAg
ICAidHJpdmlhIjogIiAiCi0gICAgfSwKLSAgICB7Ci0gICAgICAgICJ0eXBlIjogInN0cmluZyIs
Ci0gICAgICAgICJ2YWx1ZSI6ICJcIm1lc3NhZ2VcIiIsCi0gICAgICAgICJ0cml2aWEiOiAiIgot
ICAgIH0KLV0iCitGQUlMIGlkbF90ZXN0IHNldHVwIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJl
amVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIkVycm9yIGZldGNoaW5nIC9pbnRlcmZhY2VzL21z
dC1jb250ZW50LWhpbnQuaWRsLiIKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9ub3RpZmljYXRpb25zL2ludGVyZmFjZXMtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9ub3RpZmlj
YXRpb25zL2ludGVyZmFjZXMtZXhwZWN0ZWQudHh0CmluZGV4IDk3MDY2YjJiNjRiMzI0YzMxYTgy
YWNhMzg1OTQxMDQzYzlmZWVmNDcuLjYxNjhjZGRiZDQ1MTA5MzdiMmEyMDc3Y2MzZTk2MTNjZWQz
YmUwOWQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvbm90aWZpY2F0aW9ucy9pbnRlcmZhY2VzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL25vdGlmaWNhdGlvbnMvaW50ZXJm
YWNlcy1leHBlY3RlZC50eHQKQEAgLTEsNSArMSwzIEBACi1DT05TT0xFIE1FU1NBR0U6IGxpbmUg
NDgyOiBjYWxsYmFjayBub3QgeWV0IHN1cHBvcnRlZAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDQ4
MjogY2FsbGJhY2sgbm90IHlldCBzdXBwb3J0ZWQKIAogUEFTUyBOb3RpZmljYXRpb24gaW50ZXJm
YWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCAKIFBBU1Mg
Tm90aWZpY2F0aW9uIGludGVyZmFjZSBvYmplY3QgbGVuZ3RoIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNpemUtb2JzZXJ2ZXIvaWRs
aGFybmVzcy53aW5kb3ctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9yZXNpemUtb2JzZXJ2ZXIvaWRsaGFybmVzcy53aW5kb3ctZXhwZWN0
ZWQudHh0CmluZGV4IDhjODQ5MjhkZjMxMWM4MzVkYTlhMDk0NWNmNWFhMmIzNDc5ZWU1YTEuLjFk
MzM3M2Q4ZDg0ZTg4YWYzYzQwN2ViYWVhOWI4YTc2ODA5YjdhODggMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzaXplLW9ic2VydmVyL2lk
bGhhcm5lc3Mud2luZG93LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc2l6ZS1vYnNlcnZlci9pZGxoYXJuZXNzLndpbmRvdy1l
eHBlY3RlZC50eHQKQEAgLTEsNCArMSwzIEBACi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNDgyOiBj
YWxsYmFjayBub3QgeWV0IHN1cHBvcnRlZAogCiBQQVNTIGlkbF90ZXN0IHNldHVwIAogUEFTUyBS
ZXNpemVPYnNlcnZlckVudHJ5IGNyZWF0b3IgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy9pZGxoYXJuZXNzLmpzIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvaWRsaGFy
bmVzcy5qcwppbmRleCBhMDg4YmM0YzJhNzgwMDI1MDBmYjg3OTQxMGUxODAwZjE2ODQ1YWY3Li5m
NjhhZDFkZDdkODFlNTRiZWE1ZjkwMDQyODRlZmY0OWE3MTNhMzJlIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy9pZGxoYXJu
ZXNzLmpzCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
cmVzb3VyY2VzL2lkbGhhcm5lc3MuanMKQEAgLTU3LDcgKzU3LDYgQEAgaWYgKCEoJ3N1YnNldFRl
c3RCeUtleScgaW4gc2VsZikpIHsKIH0KIC8vLyBIZWxwZXJzIC8vLwogZnVuY3Rpb24gY29uc3RW
YWx1ZSAoY250KQotLy9AewogewogICAgIGlmIChjbnQudHlwZSA9PT0gIm51bGwiKSByZXR1cm4g
bnVsbDsKICAgICBpZiAoY250LnR5cGUgPT09ICJOYU4iKSByZXR1cm4gTmFOOwpAQCAtNjYsOSAr
NjUsNyBAQCBmdW5jdGlvbiBjb25zdFZhbHVlIChjbnQpCiAgICAgcmV0dXJuIGNudC52YWx1ZTsK
IH0KIAotLy9AfQogZnVuY3Rpb24gbWluT3ZlcmxvYWRMZW5ndGgob3ZlcmxvYWRzKQotLy9Aewog
ewogICAgIC8vICJUaGUgdmFsdWUgb2YgdGhlIEZ1bmN0aW9uIG9iamVjdOKAmXMg4oCcbGVuZ3Ro
4oCdIHByb3BlcnR5IGlzCiAgICAgLy8gYSBOdW1iZXIgZGV0ZXJtaW5lZCBhcyBmb2xsb3dzOgpA
QCAtODcsOSArODQsNyBAQCBmdW5jdGlvbiBtaW5PdmVybG9hZExlbmd0aChvdmVybG9hZHMpCiAg
ICAgLnJlZHVjZShmdW5jdGlvbihtLCBuKSB7IHJldHVybiBNYXRoLm1pbihtLCBuKTsgfSk7CiB9
CiAKLS8vQH0KIGZ1bmN0aW9uIHRocm93T3JSZWplY3QoYV90ZXN0LCBvcGVyYXRpb24sIGZuLCBv
YmosIGFyZ3MsIG1lc3NhZ2UsIGNiKQotLy9AewogewogICAgIGlmIChvcGVyYXRpb24uaWRsVHlw
ZS5nZW5lcmljICE9PSAiUHJvbWlzZSIpIHsKICAgICAgICAgYXNzZXJ0X3Rocm93cyhuZXcgVHlw
ZUVycm9yKCksIGZ1bmN0aW9uKCkgewpAQCAtMTA4LDkgKzEwMyw3IEBAIGZ1bmN0aW9uIHRocm93
T3JSZWplY3QoYV90ZXN0LCBvcGVyYXRpb24sIGZuLCBvYmosIGFyZ3MsIG1lc3NhZ2UsIGNiKQog
ICAgIH0KIH0KIAotLy9AfQogZnVuY3Rpb24gYXdhaXROQ2FsbGJhY2tzKG4sIGNiLCBjdHgpCi0v
L0B7CiB7CiAgICAgdmFyIGNvdW50ZXIgPSAwOwogICAgIHJldHVybiBmdW5jdGlvbigpIHsKQEAg
LTEyMSw5ICsxMTQsNyBAQCBmdW5jdGlvbiBhd2FpdE5DYWxsYmFja3MobiwgY2IsIGN0eCkKICAg
ICB9OwogfQogCi0vL0B9CiB2YXIgZnJvdW5kID0KLS8vQHsKIChmdW5jdGlvbigpewogICAgIGlm
IChNYXRoLmZyb3VuZCkgcmV0dXJuIE1hdGguZnJvdW5kOwogCkBAIC0xMzMsMTIgKzEyNCwxMCBA
QCB2YXIgZnJvdW5kID0KICAgICAgICAgcmV0dXJuIGFyclswXTsKICAgICB9OwogfSkoKTsKLS8v
QH0KIAogLy8vIElkbEhhcm5lc3NFcnJvciAvLy8KIC8vIEVudHJ5IHBvaW50CiBzZWxmLklkbEhh
cm5lc3NFcnJvciA9IGZ1bmN0aW9uKG1lc3NhZ2UpCi0vL0B7CiB7CiAgICAgLyoqCiAgICAgICog
TWVzc2FnZSB0byBiZSBwcmludGVkIGFzIHRoZSBlcnJvcidzIHRvU3RyaW5nIGludm9jYXRpb24u
CkBAIC0xNDgsMTkgKzEzNywxNSBAQCBzZWxmLklkbEhhcm5lc3NFcnJvciA9IGZ1bmN0aW9uKG1l
c3NhZ2UpCiAKIElkbEhhcm5lc3NFcnJvci5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKEVycm9y
LnByb3RvdHlwZSk7CiAKLS8vQH0KIElkbEhhcm5lc3NFcnJvci5wcm90b3R5cGUudG9TdHJpbmcg
PSBmdW5jdGlvbigpCi0vL0B7CiB7CiAgICAgcmV0dXJuIHRoaXMubWVzc2FnZTsKIH07CiAKLS8v
QH0KIAogLy8vIElkbEFycmF5IC8vLwogLy8gRW50cnkgcG9pbnQKIHNlbGYuSWRsQXJyYXkgPSBm
dW5jdGlvbigpCi0vL0B7CiB7CiAgICAgLyoqCiAgICAgICogQSBtYXAgZnJvbSBzdHJpbmdzIHRv
IHRoZSBjb3JyZXNwb25kaW5nIG5hbWVkIElkbE9iamVjdCwgc3VjaCBhcwpAQCAtMjA4LDE5ICsx
OTMsMjEgQEAgc2VsZi5JZGxBcnJheSA9IGZ1bmN0aW9uKCkKICAgICB0aGlzWyJpbXBsZW1lbnRz
Il0gPSB7fTsKICAgICB0aGlzWyJpbmNsdWRlcyJdID0ge307CiAgICAgdGhpc1siaW5oZXJpdGFu
Y2UiXSA9IHt9OworCisgICAgLyoqCisgICAgICogUmVjb3JkIG9mIHNraXBwZWQgSURMIGl0ZW1z
LCBpbiBjYXNlIHdlIGxhdGVyIHJlYWxpemUgdGhhdCB0aGV5IGFyZSBhCisgICAgICogZGVwZW5k
ZW5jeSAodG8gcmV0cm9hY3RpdmVseSBwcm9jZXNzIHRoZW0pLgorICAgICAqLworICAgIHRoaXMu
c2tpcHBlZCA9IG5ldyBNYXAoKTsKIH07CiAKLS8vQH0KIElkbEFycmF5LnByb3RvdHlwZS5hZGRf
aWRscyA9IGZ1bmN0aW9uKHJhd19pZGxzLCBvcHRpb25zKQotLy9AewogewogICAgIC8qKiBFbnRy
eSBwb2ludC4gIFNlZSBkb2N1bWVudGF0aW9uIGF0IGJlZ2lubmluZyBvZiBmaWxlLiAqLwogICAg
IHRoaXMuaW50ZXJuYWxfYWRkX2lkbHMoV2ViSURMMi5wYXJzZShyYXdfaWRscyksIG9wdGlvbnMp
OwogfTsKIAotLy9AfQogSWRsQXJyYXkucHJvdG90eXBlLmFkZF91bnRlc3RlZF9pZGxzID0gZnVu
Y3Rpb24ocmF3X2lkbHMsIG9wdGlvbnMpCi0vL0B7CiB7CiAgICAgLyoqIEVudHJ5IHBvaW50LiAg
U2VlIGRvY3VtZW50YXRpb24gYXQgYmVnaW5uaW5nIG9mIGZpbGUuICovCiAgICAgdmFyIHBhcnNl
ZF9pZGxzID0gV2ViSURMMi5wYXJzZShyYXdfaWRscyk7CkBAIC0yMjgsOSArMjE1LDcgQEAgSWRs
QXJyYXkucHJvdG90eXBlLmFkZF91bnRlc3RlZF9pZGxzID0gZnVuY3Rpb24ocmF3X2lkbHMsIG9w
dGlvbnMpCiAgICAgdGhpcy5pbnRlcm5hbF9hZGRfaWRscyhwYXJzZWRfaWRscywgb3B0aW9ucyk7
CiB9OwogCi0vL0B9CiBJZGxBcnJheS5wcm90b3R5cGUubWFya19hc191bnRlc3RlZCA9IGZ1bmN0
aW9uIChwYXJzZWRfaWRscykKLS8vQHsKIHsKICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHBhcnNl
ZF9pZGxzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgIHBhcnNlZF9pZGxzW2ldLnVudGVzdGVkID0g
dHJ1ZTsKQEAgLTI0MSwyMSArMjI2LDE1IEBAIElkbEFycmF5LnByb3RvdHlwZS5tYXJrX2FzX3Vu
dGVzdGVkID0gZnVuY3Rpb24gKHBhcnNlZF9pZGxzKQogICAgICAgICB9CiAgICAgfQogfTsKLS8v
QH0KIAotLy9AfQogSWRsQXJyYXkucHJvdG90eXBlLmlzX2V4Y2x1ZGVkX2J5X29wdGlvbnMgPSBm
dW5jdGlvbiAobmFtZSwgb3B0aW9ucykKLS8vQHsKIHsKICAgICByZXR1cm4gb3B0aW9ucyAmJgog
ICAgICAgICAob3B0aW9ucy5leGNlcHQgJiYgb3B0aW9ucy5leGNlcHQuaW5jbHVkZXMobmFtZSkK
ICAgICAgICAgIHx8IG9wdGlvbnMub25seSAmJiAhb3B0aW9ucy5vbmx5LmluY2x1ZGVzKG5hbWUp
KTsKIH07Ci0vL0B9CiAKLS8vQH0KIElkbEFycmF5LnByb3RvdHlwZS5hZGRfZGVwZW5kZW5jeV9p
ZGxzID0gZnVuY3Rpb24ocmF3X2lkbHMsIG9wdGlvbnMpCi0vL0B7CiB7CiAgICAgY29uc3QgcGFy
c2VkX2lkbHMgPSBXZWJJREwyLnBhcnNlKHJhd19pZGxzKTsKICAgICBjb25zdCBuZXdfb3B0aW9u
cyA9IHsgb25seTogW10gfQpAQCAtMjcxLDIyICsyNTAsNTAgQEAgSWRsQXJyYXkucHJvdG90eXBl
LmFkZF9kZXBlbmRlbmN5X2lkbHMgPSBmdW5jdGlvbihyYXdfaWRscywgb3B0aW9ucykKICAgICAg
ICAgYWxsX2RlcHMuYWRkKGspOwogICAgICAgICB0aGlzLmluY2x1ZGVzW2tdLmZvckVhY2godiA9
PiBhbGxfZGVwcy5hZGQodikpOwogICAgIH0pOwotICAgIHRoaXMucGFydGlhbHMubWFwKHAgPT4g
cC5uYW1lKS5mb3JFYWNoKHYgPT4gYWxsX2RlcHMuYWRkKHYpKTsKLSAgICAvLyBBZGQgdGhlIGF0
dHJpYnV0ZSBpZGxUeXBlcyBvZiBhbGwgdGhlIG5lc3RlZCBtZW1iZXJzIG9mIGFsbCB0ZXN0ZWQg
aWRscy4KLSAgICBmb3IgKGNvbnN0IG9iaiBvZiBbdGhpcy5tZW1iZXJzLCB0aGlzLnBhcnRpYWxz
XSkgewotICAgICAgICBjb25zdCB0ZXN0ZWQgPSBPYmplY3QudmFsdWVzKG9iaikuZmlsdGVyKG0g
PT4gIW0udW50ZXN0ZWQgJiYgbS5tZW1iZXJzKTsKLSAgICAgICAgZm9yIChjb25zdCBwYXJzZWQg
b2YgdGVzdGVkKSB7Ci0gICAgICAgICAgICBmb3IgKGNvbnN0IGF0dHIgb2YgT2JqZWN0LnZhbHVl
cyhwYXJzZWQubWVtYmVycykuZmlsdGVyKG0gPT4gIW0udW50ZXN0ZWQgJiYgbS50eXBlID09PSAn
YXR0cmlidXRlJykpIHsKLSAgICAgICAgICAgICAgICBhbGxfZGVwcy5hZGQoYXR0ci5pZGxUeXBl
LmlkbFR5cGUpOwotICAgICAgICAgICAgfQorICAgIHRoaXMucGFydGlhbHMuZm9yRWFjaChwID0+
IGFsbF9kZXBzLmFkZChwLm5hbWUpKTsKKyAgICAvLyBBZGQgJ1R5cGVPZlR5cGUnIGZvciBlYWNo
ICJ0eXBlZGVmIFR5cGVPZlR5cGUgTXlUeXBlOyIgZW50cnkuCisgICAgT2JqZWN0LmVudHJpZXMo
dGhpcy5tZW1iZXJzKS5mb3JFYWNoKChbaywgdl0pID0+IHsKKyAgICAgICAgaWYgKHYgaW5zdGFu
Y2VvZiBJZGxUeXBlZGVmKSB7CisgICAgICAgICAgICBsZXQgZGVmcyA9IHYuaWRsVHlwZS51bmlv
bgorICAgICAgICAgICAgICAgID8gdi5pZGxUeXBlLmlkbFR5cGUubWFwKHQgPT4gdC5pZGxUeXBl
KQorICAgICAgICAgICAgICAgIDogW3YuaWRsVHlwZS5pZGxUeXBlXTsKKyAgICAgICAgICAgIGRl
ZnMuZm9yRWFjaChkID0+IGFsbF9kZXBzLmFkZChkKSk7CiAgICAgICAgIH0KLSAgICB9CisgICAg
fSk7CisKKyAgICAvLyBBZGQgdGhlIGF0dHJpYnV0ZSBpZGxUeXBlcyBvZiBhbGwgdGhlIG5lc3Rl
ZCBtZW1iZXJzIG9mIGlkbHMuCisgICAgY29uc3QgYXR0ckRlcHMgPSBwYXJzZWRJZGxzID0+IHsK
KyAgICAgICAgcmV0dXJuIHBhcnNlZElkbHMucmVkdWNlKChkZXBzLCBwYXJzZWQpID0+IHsKKyAg
ICAgICAgICAgIGlmIChwYXJzZWQubWVtYmVycykgeworICAgICAgICAgICAgICAgIGZvciAoY29u
c3QgYXR0ciBvZiBPYmplY3QudmFsdWVzKHBhcnNlZC5tZW1iZXJzKS5maWx0ZXIobSA9PiBtLnR5
cGUgPT09ICdhdHRyaWJ1dGUnKSkgeworICAgICAgICAgICAgICAgICAgICBsZXQgYXR0clR5cGUg
PSBhdHRyLmlkbFR5cGU7CisgICAgICAgICAgICAgICAgICAgIC8vIENoZWNrIGZvciBnZW5lcmlj
IG1lbWJlcnMgKGUuZy4gRnJvemVuQXJyYXk8TXlUeXBlPikKKyAgICAgICAgICAgICAgICAgICAg
aWYgKGF0dHJUeXBlLmdlbmVyaWMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRlcHMuYWRk
KGF0dHJUeXBlLmdlbmVyaWMpOworICAgICAgICAgICAgICAgICAgICAgICAgYXR0clR5cGUgPSBh
dHRyVHlwZS5pZGxUeXBlOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
ICAgIGRlcHMuYWRkKGF0dHJUeXBlLmlkbFR5cGUpOworICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgIGlmIChwYXJzZWQuYmFzZSBpbiB0aGlzLm1lbWJlcnMpIHsK
KyAgICAgICAgICAgICAgICBhdHRyRGVwcyhbdGhpcy5tZW1iZXJzW3BhcnNlZC5iYXNlXV0pLmZv
ckVhY2goZGVwID0+IGRlcHMuYWRkKGRlcCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAg
cmV0dXJuIGRlcHM7CisgICAgICAgIH0sIG5ldyBTZXQoKSk7CisgICAgfTsKKworICAgIGNvbnN0
IHRlc3RlZE1lbWJlcnMgPSBPYmplY3QudmFsdWVzKHRoaXMubWVtYmVycykuZmlsdGVyKG0gPT4g
IW0udW50ZXN0ZWQgJiYgbS5tZW1iZXJzKTsKKyAgICBhdHRyRGVwcyh0ZXN0ZWRNZW1iZXJzKS5m
b3JFYWNoKGRlcCA9PiBhbGxfZGVwcy5hZGQoZGVwKSk7CisKKyAgICBjb25zdCB0ZXN0ZWRQYXJ0
aWFscyA9IHRoaXMucGFydGlhbHMuZmlsdGVyKG0gPT4gIW0udW50ZXN0ZWQgJiYgbS5tZW1iZXJz
KTsKKyAgICBhdHRyRGVwcyh0ZXN0ZWRQYXJ0aWFscykuZm9yRWFjaChkZXAgPT4gYWxsX2RlcHMu
YWRkKGRlcCkpOworCiAKICAgICBpZiAob3B0aW9ucyAmJiBvcHRpb25zLmV4Y2VwdCAmJiBvcHRp
b25zLm9ubHkpIHsKICAgICAgICAgdGhyb3cgbmV3IElkbEhhcm5lc3NFcnJvcigiVGhlIG9ubHkg
YW5kIGV4Y2VwdCBvcHRpb25zIGNhbid0IGJlIHVzZWQgdG9nZXRoZXIuIik7CiAgICAgfQogCi0g
ICAgY29uc3Qgc2hvdWxkX3NraXAgPSBuYW1lID0+IHsKKyAgICBjb25zdCBkZWZpbmVkX29yX3Vu
dGVzdGVkID0gbmFtZSA9PiB7CiAgICAgICAgIC8vIE5PVEU6IERlcHMgYXJlIHVudGVzdGVkLCBz
byB3ZSdyZSBsZW5pZW50LCBhbmQgc2tpcCByZS1lbmNvdW50ZXJlZCBkZWZpbml0aW9ucy4KICAg
ICAgICAgLy8gZS5nLiBmb3IgJ2lkbCcgY29udGFpbmluZyBBOkIsIEI6QywgQzpECiAgICAgICAg
IC8vICAgICAgYXJyYXkuYWRkX2lkbHMoaWRsLCB7b25seTogWydBJywnQiddfSkuCkBAIC0yOTUs
OSArMzAyLDcgQEAgSWRsQXJyYXkucHJvdG90eXBlLmFkZF9kZXBlbmRlbmN5X2lkbHMgPSBmdW5j
dGlvbihyYXdfaWRscywgb3B0aW9ucykKICAgICAgICAgcmV0dXJuIG5hbWUgaW4gdGhpcy5tZW1i
ZXJzCiAgICAgICAgICAgICB8fCB0aGlzLmlzX2V4Y2x1ZGVkX2J5X29wdGlvbnMobmFtZSwgb3B0
aW9ucyk7CiAgICAgfQotICAgIC8vIFJlY29yZCBvZiBza2lwcGVkIGl0ZW1zLCBpbiBjYXNlIHdl
IGxhdGVyIGRldGVybWluZSB0aGV5IGFyZSBhIGRlcGVuZGVuY3kuCiAgICAgLy8gTWFwcyBuYW1l
IC0+IFtwYXJzZWRfaWRsLCAuLi5dCi0gICAgY29uc3Qgc2tpcHBlZCA9IG5ldyBNYXAoKTsKICAg
ICBjb25zdCBwcm9jZXNzID0gZnVuY3Rpb24ocGFyc2VkKSB7CiAgICAgICAgIHZhciBkZXBzID0g
W107CiAgICAgICAgIGlmIChwYXJzZWQubmFtZSkgewpAQCAtMzExLDEzICszMTYsMTUgQEAgSWRs
QXJyYXkucHJvdG90eXBlLmFkZF9kZXBlbmRlbmN5X2lkbHMgPSBmdW5jdGlvbihyYXdfaWRscywg
b3B0aW9ucykKICAgICAgICAgfQogCiAgICAgICAgIGRlcHMgPSBkZXBzLmZpbHRlcihmdW5jdGlv
bihuYW1lKSB7Ci0gICAgICAgICAgICBpZiAoIW5hbWUgfHwgc2hvdWxkX3NraXAobmFtZSkgfHwg
IWFsbF9kZXBzLmhhcyhuYW1lKSkgeworICAgICAgICAgICAgaWYgKCFuYW1lCisgICAgICAgICAg
ICAgICAgfHwgbmFtZSA9PT0gcGFyc2VkLm5hbWUgJiYgZGVmaW5lZF9vcl91bnRlc3RlZChuYW1l
KQorICAgICAgICAgICAgICAgIHx8ICFhbGxfZGVwcy5oYXMobmFtZSkpIHsKICAgICAgICAgICAg
ICAgICAvLyBGbGFnIGFzIHNraXBwZWQsIGlmIGl0J3Mgbm90IGFscmVhZHkgcHJvY2Vzc2VkLCBz
byB3ZSBjYW4KICAgICAgICAgICAgICAgICAvLyBjb21lIGJhY2sgdG8gaXQgbGF0ZXIgaWYgd2Ug
cmV0cm9zcGVjdGl2ZWx5IGNhbGwgaXQgYSBkZXAuCiAgICAgICAgICAgICAgICAgaWYgKG5hbWUg
JiYgIShuYW1lIGluIHRoaXMubWVtYmVycykpIHsKLSAgICAgICAgICAgICAgICAgICAgc2tpcHBl
ZC5oYXMobmFtZSkKLSAgICAgICAgICAgICAgICAgICAgICAgID8gc2tpcHBlZC5nZXQobmFtZSku
cHVzaChwYXJzZWQpCi0gICAgICAgICAgICAgICAgICAgICAgICA6IHNraXBwZWQuc2V0KG5hbWUs
IFtwYXJzZWRdKTsKKyAgICAgICAgICAgICAgICAgICAgdGhpcy5za2lwcGVkLmhhcyhuYW1lKQor
ICAgICAgICAgICAgICAgICAgICAgICAgPyB0aGlzLnNraXBwZWQuZ2V0KG5hbWUpLnB1c2gocGFy
c2VkKQorICAgICAgICAgICAgICAgICAgICAgICAgOiB0aGlzLnNraXBwZWQuc2V0KG5hbWUsIFtw
YXJzZWRdKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwogICAgICAgICAgICAgfQpAQCAtMzI1LDE1ICszMzIsMjkgQEAgSWRsQXJyYXkucHJvdG90eXBl
LmFkZF9kZXBlbmRlbmN5X2lkbHMgPSBmdW5jdGlvbihyYXdfaWRscywgb3B0aW9ucykKICAgICAg
ICAgfS5iaW5kKHRoaXMpKTsKIAogICAgICAgICBkZXBzLmZvckVhY2goZnVuY3Rpb24obmFtZSkg
ewotICAgICAgICAgICAgbmV3X29wdGlvbnMub25seS5wdXNoKG5hbWUpOworICAgICAgICAgICAg
aWYgKCFuZXdfb3B0aW9ucy5vbmx5LmluY2x1ZGVzKG5hbWUpKSB7CisgICAgICAgICAgICAgICAg
bmV3X29wdGlvbnMub25seS5wdXNoKG5hbWUpOworICAgICAgICAgICAgfQogCiAgICAgICAgICAg
ICBjb25zdCBmb2xsb3dfdXAgPSBuZXcgU2V0KCk7CiAgICAgICAgICAgICBmb3IgKGNvbnN0IGRl
cF90eXBlIG9mIFsiaW5oZXJpdGFuY2UiLCAiaW1wbGVtZW50cyIsICJpbmNsdWRlcyJdKSB7CiAg
ICAgICAgICAgICAgICAgaWYgKHBhcnNlZFtkZXBfdHlwZV0pIHsKICAgICAgICAgICAgICAgICAg
ICAgY29uc3QgaW5oZXJpdGluZyA9IHBhcnNlZFtkZXBfdHlwZV07CiAgICAgICAgICAgICAgICAg
ICAgIGNvbnN0IGluaGVyaXRvciA9IHBhcnNlZC5uYW1lIHx8IHBhcnNlZC50YXJnZXQ7Ci0gICAg
ICAgICAgICAgICAgICAgIGZvciAoY29uc3QgZGVwIG9mIFtpbmhlcml0aW5nLCBpbmhlcml0b3Jd
KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBuZXdfb3B0aW9ucy5vbmx5LnB1c2goZGVwKTsK
KyAgICAgICAgICAgICAgICAgICAgY29uc3QgZGVwcyA9IFtpbmhlcml0aW5nXTsKKyAgICAgICAg
ICAgICAgICAgICAgLy8gRm9yIEEgaW5jbHVkZXMgQiwgd2UgY2FuIGlnbm9yZSBBLCB1bmxlc3Mg
QiAob3Igc29tZSBvZiBpdHMKKyAgICAgICAgICAgICAgICAgICAgLy8gbWVtYmVycykgaXMgYmVp
bmcgdGVzdGVkLgorICAgICAgICAgICAgICAgICAgICBpZiAoZGVwX3R5cGUgIT09ICJpbmNsdWRl
cyIKKyAgICAgICAgICAgICAgICAgICAgICAgIHx8IGluaGVyaXRpbmcgaW4gdGhpcy5tZW1iZXJz
ICYmICF0aGlzLm1lbWJlcnNbaW5oZXJpdGluZ10udW50ZXN0ZWQKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHx8IHRoaXMucGFydGlhbHMuc29tZShmdW5jdGlvbihwKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHJldHVybiBwLm5hbWUgPT09IGluaGVyaXRpbmc7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRlcHMu
cHVzaChpbmhlcml0b3IpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
ICAgIGZvciAoY29uc3QgZGVwIG9mIGRlcHMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlm
ICghbmV3X29wdGlvbnMub25seS5pbmNsdWRlcyhkZXApKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbmV3X29wdGlvbnMub25seS5wdXNoKGRlcCk7CisgICAgICAgICAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICBhbGxfZGVwcy5hZGQoZGVwKTsKICAgICAg
ICAgICAgICAgICAgICAgICAgIGZvbGxvd191cC5hZGQoZGVwKTsKICAgICAgICAgICAgICAgICAg
ICAgfQpAQCAtMzQxLDEzICszNjIsMTMgQEAgSWRsQXJyYXkucHJvdG90eXBlLmFkZF9kZXBlbmRl
bmN5X2lkbHMgPSBmdW5jdGlvbihyYXdfaWRscywgb3B0aW9ucykKICAgICAgICAgICAgIH0KIAog
ICAgICAgICAgICAgZm9yIChjb25zdCBkZWZlcnJlZCBvZiBmb2xsb3dfdXApIHsKLSAgICAgICAg
ICAgICAgICBpZiAoc2tpcHBlZC5oYXMoZGVmZXJyZWQpKSB7Ci0gICAgICAgICAgICAgICAgICAg
IGNvbnN0IG5leHQgPSBza2lwcGVkLmdldChkZWZlcnJlZCk7Ci0gICAgICAgICAgICAgICAgICAg
IHNraXBwZWQuZGVsZXRlKGRlZmVycmVkKTsKKyAgICAgICAgICAgICAgICBpZiAodGhpcy5za2lw
cGVkLmhhcyhkZWZlcnJlZCkpIHsKKyAgICAgICAgICAgICAgICAgICAgY29uc3QgbmV4dCA9IHRo
aXMuc2tpcHBlZC5nZXQoZGVmZXJyZWQpOworICAgICAgICAgICAgICAgICAgICB0aGlzLnNraXBw
ZWQuZGVsZXRlKGRlZmVycmVkKTsKICAgICAgICAgICAgICAgICAgICAgbmV4dC5mb3JFYWNoKHBy
b2Nlc3MpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KLSAgICAgICAgfSk7Cisg
ICAgICAgIH0uYmluZCh0aGlzKSk7CiAgICAgfS5iaW5kKHRoaXMpOwogCiAgICAgZm9yIChsZXQg
cGFyc2VkIG9mIHBhcnNlZF9pZGxzKSB7CkBAIC0zNjEsOSArMzgyLDcgQEAgSWRsQXJyYXkucHJv
dG90eXBlLmFkZF9kZXBlbmRlbmN5X2lkbHMgPSBmdW5jdGlvbihyYXdfaWRscywgb3B0aW9ucykK
ICAgICB9CiB9CiAKLS8vQH0KIElkbEFycmF5LnByb3RvdHlwZS5pbnRlcm5hbF9hZGRfaWRscyA9
IGZ1bmN0aW9uKHBhcnNlZF9pZGxzLCBvcHRpb25zKQotLy9AewogewogICAgIC8qKgogICAgICAq
IEludGVybmFsIGhlbHBlciBjYWxsZWQgYnkgYWRkX2lkbHMoKSBhbmQgYWRkX3VudGVzdGVkX2lk
bHMoKS4KQEAgLTQ3OCw4ICs0OTcsNyBAQCBJZGxBcnJheS5wcm90b3R5cGUuaW50ZXJuYWxfYWRk
X2lkbHMgPSBmdW5jdGlvbihwYXJzZWRfaWRscywgb3B0aW9ucykKICAgICAgICAgICAgIGJyZWFr
OwogCiAgICAgICAgIGNhc2UgImNhbGxiYWNrIjoKLSAgICAgICAgICAgIC8vIFRPRE8KLSAgICAg
ICAgICAgIGNvbnNvbGUubG9nKCJjYWxsYmFjayBub3QgeWV0IHN1cHBvcnRlZCIpOworICAgICAg
ICAgICAgdGhpcy5tZW1iZXJzW3BhcnNlZF9pZGwubmFtZV0gPSBuZXcgSWRsQ2FsbGJhY2socGFy
c2VkX2lkbCk7CiAgICAgICAgICAgICBicmVhazsKIAogICAgICAgICBjYXNlICJlbnVtIjoKQEAg
LTUwMSw5ICs1MTksNyBAQCBJZGxBcnJheS5wcm90b3R5cGUuaW50ZXJuYWxfYWRkX2lkbHMgPSBm
dW5jdGlvbihwYXJzZWRfaWRscywgb3B0aW9ucykKICAgICB9LmJpbmQodGhpcykpOwogfTsKIAot
Ly9AfQogSWRsQXJyYXkucHJvdG90eXBlLmFkZF9vYmplY3RzID0gZnVuY3Rpb24oZGljdCkKLS8v
QHsKIHsKICAgICAvKiogRW50cnkgcG9pbnQuICBTZWUgZG9jdW1lbnRhdGlvbiBhdCBiZWdpbm5p
bmcgb2YgZmlsZS4gKi8KICAgICBmb3IgKHZhciBrIGluIGRpY3QpCkBAIC01MTksMTcgKzUzNSwx
MyBAQCBJZGxBcnJheS5wcm90b3R5cGUuYWRkX29iamVjdHMgPSBmdW5jdGlvbihkaWN0KQogICAg
IH0KIH07CiAKLS8vQH0KIElkbEFycmF5LnByb3RvdHlwZS5wcmV2ZW50X211bHRpcGxlX3Rlc3Rp
bmcgPSBmdW5jdGlvbihuYW1lKQotLy9AewogewogICAgIC8qKiBFbnRyeSBwb2ludC4gIFNlZSBk
b2N1bWVudGF0aW9uIGF0IGJlZ2lubmluZyBvZiBmaWxlLiAqLwogICAgIHRoaXMubWVtYmVyc1tu
YW1lXS5wcmV2ZW50X211bHRpcGxlX3Rlc3RpbmcgPSB0cnVlOwogfTsKIAotLy9AfQogSWRsQXJy
YXkucHJvdG90eXBlLnJlY3Vyc2l2ZWx5X2dldF9pbXBsZW1lbnRzID0gZnVuY3Rpb24oaW50ZXJm
YWNlX25hbWUpCi0vL0B7CiB7CiAgICAgLyoqCiAgICAgICogSGVscGVyIGZ1bmN0aW9uIGZvciB0
ZXN0KCkuICBSZXR1cm5zIGFuIGFycmF5IG9mIHRoaW5ncyB0aGF0IGltcGxlbWVudApAQCAtNTU3
LDkgKzU2OSw3IEBAIElkbEFycmF5LnByb3RvdHlwZS5yZWN1cnNpdmVseV9nZXRfaW1wbGVtZW50
cyA9IGZ1bmN0aW9uKGludGVyZmFjZV9uYW1lKQogICAgIHJldHVybiByZXQ7CiB9OwogCi0vL0B9
CiBJZGxBcnJheS5wcm90b3R5cGUucmVjdXJzaXZlbHlfZ2V0X2luY2x1ZGVzID0gZnVuY3Rpb24o
aW50ZXJmYWNlX25hbWUpCi0vL0B7CiB7CiAgICAgLyoqCiAgICAgICogSGVscGVyIGZ1bmN0aW9u
IGZvciB0ZXN0KCkuICBSZXR1cm5zIGFuIGFycmF5IG9mIHRoaW5ncyB0aGF0IGltcGxlbWVudApA
QCAtNTg3LDkgKzU5Nyw3IEBAIElkbEFycmF5LnByb3RvdHlwZS5yZWN1cnNpdmVseV9nZXRfaW5j
bHVkZXMgPSBmdW5jdGlvbihpbnRlcmZhY2VfbmFtZSkKICAgICByZXR1cm4gcmV0OwogfTsKIAot
Ly9AfQogSWRsQXJyYXkucHJvdG90eXBlLmlzX2pzb25fdHlwZSA9IGZ1bmN0aW9uKHR5cGUpCi0v
L0B7CiB7CiAgICAgLyoqCiAgICAgICogQ2hlY2tzIHdoZXRoZXIgdHlwZSBpcyBhIEpTT04gdHlw
ZSBhcyBwZXIKQEAgLTYxMSw3ICs2MTksNyBAQCBJZGxBcnJheS5wcm90b3R5cGUuaXNfanNvbl90
eXBlID0gZnVuY3Rpb24odHlwZSkKIAogICAgIC8vIHNlcXVlbmNlIHR5cGVzCiAgICAgaWYgKHR5
cGUuZ2VuZXJpYyA9PSAic2VxdWVuY2UiIHx8IHR5cGUuZ2VuZXJpYyA9PSAiRnJvemVuQXJyYXki
KSB7Ci0gICAgICAgIHJldHVybiB0aGlzLmlzX2pzb25fdHlwZShpZGxUeXBlKTsKKyAgICAgICAg
cmV0dXJuIHRoaXMuaXNfanNvbl90eXBlKGlkbFR5cGVbMF0pOwogICAgIH0KIAogICAgIGlmICh0
eXBlb2YgaWRsVHlwZSAhPSAic3RyaW5nIikgeyB0aHJvdyBuZXcgRXJyb3IoIlVuZXhwZWN0ZWQg
dHlwZSAiICsgSlNPTi5zdHJpbmdpZnkoaWRsVHlwZSkpOyB9CkBAIC03MTksMTEgKzcyNywxMSBA
QCBmdW5jdGlvbiBleHBvc3VyZV9zZXQob2JqZWN0LCBkZWZhdWx0X3NldCkgewogICAgICAgICBy
ZXN1bHQgPSBuZXcgU2V0KHJlc3VsdCk7CiAgICAgfQogICAgIGlmIChleHBvc2VkICYmIGV4cG9z
ZWQubGVuZ3RoKSB7Ci0gICAgICAgIHZhciBzZXQgPSBleHBvc2VkWzBdLnJocy52YWx1ZTsKKyAg
ICAgICAgY29uc3QgeyByaHMgfSA9IGV4cG9zZWRbMF07CiAgICAgICAgIC8vIENvdWxkIGJlIGEg
bGlzdCBvciBhIHN0cmluZy4KLSAgICAgICAgaWYgKHR5cGVvZiBzZXQgPT0gInN0cmluZyIpIHsK
LSAgICAgICAgICAgIHNldCA9IFsgc2V0IF07Ci0gICAgICAgIH0KKyAgICAgICAgY29uc3Qgc2V0
ID0gcmhzLnR5cGUgPT09ICJpZGVudGlmaWVyLWxpc3QiID8KKyAgICAgICAgICAgIHJocy52YWx1
ZS5tYXAoaWQgPT4gaWQudmFsdWUpIDoKKyAgICAgICAgICAgIFsgcmhzLnZhbHVlIF07CiAgICAg
ICAgIHJlc3VsdCA9IG5ldyBTZXQoc2V0KTsKICAgICB9CiAgICAgaWYgKHJlc3VsdCAmJiByZXN1
bHQuaGFzKCJXb3JrZXIiKSkgewpAQCAtNzU0LDE0ICs3NjIsMTIgQEAgZnVuY3Rpb24gZXhwb3Nl
ZF9pbihnbG9iYWxzKSB7CiAgICAgdGhyb3cgbmV3IElkbEhhcm5lc3NFcnJvcigiVW5leHBlY3Rl
ZCBnbG9iYWwgb2JqZWN0Iik7CiB9CiAKLS8vQH0KIC8qKgogICogQXNzZXJ0cyB0aGF0IHRoZSBn
aXZlbiBlcnJvciBtZXNzYWdlIGlzIHRocm93biBmb3IgdGhlIGdpdmVuIGZ1bmN0aW9uLgogICog
QHBhcmFtIHtzdHJpbmd8SWRsSGFybmVzc0Vycm9yfSBlcnJvciBFeHBlY3RlZCBFcnJvciBtZXNz
YWdlLgogICogQHBhcmFtIHtGdW5jdGlvbn0gaWRsQXJyYXlGdW5jIEZ1bmN0aW9uIG9wZXJhdGlu
ZyBvbiBhbiBJZGxBcnJheSB0aGF0IHNob3VsZCB0aHJvdy4KICAqLwogSWRsQXJyYXkucHJvdG90
eXBlLmFzc2VydF90aHJvd3MgPSBmdW5jdGlvbihlcnJvciwgaWRsQXJyYXlGdW5jKQotLy9Aewog
ewogICAgIHRyeSB7CiAgICAgICAgIGlkbEFycmF5RnVuYy5jYWxsKHRoaXMsIHRoaXMpOwpAQCAt
NzgxLDkgKzc4Nyw3IEBAIElkbEFycmF5LnByb3RvdHlwZS5hc3NlcnRfdGhyb3dzID0gZnVuY3Rp
b24oZXJyb3IsIGlkbEFycmF5RnVuYykKICAgICB0aHJvdyBuZXcgSWRsSGFybmVzc0Vycm9yKGAk
e2lkbEFycmF5RnVuY30gZGlkIG5vdCB0aHJvdyB0aGUgZXhwZWN0ZWQgSWRsSGFybmVzc0Vycm9y
YCk7CiB9CiAKLS8vQH0KIElkbEFycmF5LnByb3RvdHlwZS50ZXN0ID0gZnVuY3Rpb24oKQotLy9A
ewogewogICAgIC8qKiBFbnRyeSBwb2ludC4gIFNlZSBkb2N1bWVudGF0aW9uIGF0IGJlZ2lubmlu
ZyBvZiBmaWxlLiAqLwogCkBAIC04NzIsOSArODc2LDcgQEAgSWRsQXJyYXkucHJvdG90eXBlLnRl
c3QgPSBmdW5jdGlvbigpCiAgICAgfQogfTsKIAotLy9AfQogSWRsQXJyYXkucHJvdG90eXBlLmNv
bGxhcHNlX3BhcnRpYWxzID0gZnVuY3Rpb24oKQotLy9AewogewogICAgIGNvbnN0IHRlc3RlZFBh
cnRpYWxzID0gbmV3IE1hcCgpOwogICAgIHRoaXMucGFydGlhbHMuZm9yRWFjaChmdW5jdGlvbihw
YXJzZWRfaWRsKQpAQCAtOTU1LDkgKzk1Nyw3IEBAIElkbEFycmF5LnByb3RvdHlwZS5jb2xsYXBz
ZV9wYXJ0aWFscyA9IGZ1bmN0aW9uKCkKICAgICB0aGlzLnBhcnRpYWxzID0gW107CiB9CiAKLS8v
QH0KIElkbEFycmF5LnByb3RvdHlwZS5hc3NlcnRfdHlwZV9pcyA9IGZ1bmN0aW9uKHZhbHVlLCB0
eXBlKQotLy9AewogewogICAgIGlmICh0eXBlLmlkbFR5cGUgaW4gdGhpcy5tZW1iZXJzCiAgICAg
JiYgdGhpcy5tZW1iZXJzW3R5cGUuaWRsVHlwZV0gaW5zdGFuY2VvZiBJZGxUeXBlZGVmKSB7CkBA
IC0xMDE3LDcgKzEwMTcsNyBAQCBJZGxBcnJheS5wcm90b3R5cGUuYXNzZXJ0X3R5cGVfaXMgPSBm
dW5jdGlvbih2YWx1ZSwgdHlwZSkKICAgICAgICAgICAgIC8vIE5vdGhpbmcgd2UgY2FuIGRvLgog
ICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9Ci0gICAgICAgIHRoaXMuYXNzZXJ0X3R5cGVf
aXModmFsdWVbMF0sIHR5cGUuaWRsVHlwZSk7CisgICAgICAgIHRoaXMuYXNzZXJ0X3R5cGVfaXMo
dmFsdWVbMF0sIHR5cGUuaWRsVHlwZVswXSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAg
LTEwMzcsMTEgKzEwMzcsMTEgQEAgSWRsQXJyYXkucHJvdG90eXBlLmFzc2VydF90eXBlX2lzID0g
ZnVuY3Rpb24odmFsdWUsIHR5cGUpCiAgICAgICAgICAgICAvLyBOb3RoaW5nIHdlIGNhbiBkby4K
ICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQotICAgICAgICB0aGlzLmFzc2VydF90eXBl
X2lzKHZhbHVlWzBdLCB0eXBlLmlkbFR5cGUpOworICAgICAgICB0aGlzLmFzc2VydF90eXBlX2lz
KHZhbHVlWzBdLCB0eXBlLmlkbFR5cGVbMF0pOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0g
ICAgdHlwZSA9IHR5cGUuaWRsVHlwZTsKKyAgICB0eXBlID0gQXJyYXkuaXNBcnJheSh0eXBlLmlk
bFR5cGUpID8gdHlwZS5pZGxUeXBlWzBdIDogdHlwZS5pZGxUeXBlOwogCiAgICAgc3dpdGNoKHR5
cGUpCiAgICAgewpAQCAtMTE3MSwxNyArMTE3MSwxOSBAQCBJZGxBcnJheS5wcm90b3R5cGUuYXNz
ZXJ0X3R5cGVfaXMgPSBmdW5jdGlvbih2YWx1ZSwgdHlwZSkKICAgICB7CiAgICAgICAgIC8vIFRP
RE86IFRlc3Qgd2hlbiB3ZSBhY3R1YWxseSBoYXZlIHNvbWV0aGluZyB0byB0ZXN0IHRoaXMgb24K
ICAgICB9CisgICAgZWxzZSBpZiAodGhpcy5tZW1iZXJzW3R5cGVdIGluc3RhbmNlb2YgSWRsQ2Fs
bGJhY2spCisgICAgeworICAgICAgICBhc3NlcnRfZXF1YWxzKHR5cGVvZiB2YWx1ZSwgImZ1bmN0
aW9uIik7CisgICAgfQogICAgIGVsc2UKICAgICB7Ci0gICAgICAgIHRocm93IG5ldyBJZGxIYXJu
ZXNzRXJyb3IoIlR5cGUgIiArIHR5cGUgKyAiIGlzbid0IGFuIGludGVyZmFjZSBvciBkaWN0aW9u
YXJ5Iik7CisgICAgICAgIHRocm93IG5ldyBJZGxIYXJuZXNzRXJyb3IoIlR5cGUgIiArIHR5cGUg
KyAiIGlzbid0IGFuIGludGVyZmFjZSwgY2FsbGJhY2sgb3IgZGljdGlvbmFyeSIpOwogICAgIH0K
IH07Ci0vL0B9CiAKIC8vLyBJZGxPYmplY3QgLy8vCiBmdW5jdGlvbiBJZGxPYmplY3QoKSB7fQog
SWRsT2JqZWN0LnByb3RvdHlwZS50ZXN0ID0gZnVuY3Rpb24oKQotLy9AewogewogICAgIC8qKgog
ICAgICAqIEJ5IGRlZmF1bHQsIHRoaXMgZG9lcyBub3RoaW5nLCBzbyBubyBhY3R1YWwgdGVzdHMg
YXJlIHJ1biBmb3IgSWRsT2JqZWN0cwpAQCAtMTE4OSw5ICsxMTkxLDcgQEAgSWRsT2JqZWN0LnBy
b3RvdHlwZS50ZXN0ID0gZnVuY3Rpb24oKQogICAgICAqLwogfTsKIAotLy9AfQogSWRsT2JqZWN0
LnByb3RvdHlwZS5oYXNfZXh0ZW5kZWRfYXR0cmlidXRlID0gZnVuY3Rpb24obmFtZSkKLS8vQHsK
IHsKICAgICAvKioKICAgICAgKiBUaGlzIGlzIG9ubHkgbWVhbmluZ2Z1bCBmb3IgdGhpbmdzIHRo
YXQgc3VwcG9ydCBleHRlbmRlZCBhdHRyaWJ1dGVzLApAQCAtMTIwMywxMiArMTIwMywxMCBAQCBJ
ZGxPYmplY3QucHJvdG90eXBlLmhhc19leHRlbmRlZF9hdHRyaWJ1dGUgPSBmdW5jdGlvbihuYW1l
KQogICAgIH0pOwogfTsKIAotLy9AfQogCiAvLy8gSWRsRGljdGlvbmFyeSAvLy8KIC8vIFVzZWQg
Zm9yIElkbEFycmF5LnByb3RvdHlwZS5hc3NlcnRfdHlwZV9pcwogZnVuY3Rpb24gSWRsRGljdGlv
bmFyeShvYmopCi0vL0B7CiB7CiAgICAgLyoqCiAgICAgICogb2JqIGlzIGFuIG9iamVjdCBwcm9k
dWNlZCBieSB0aGUgV2ViSURMUGFyc2VyLmpzICJkaWN0aW9uYXJ5IgpAQCAtMTIzMSw3ICsxMjI5
LDYgQEAgZnVuY3Rpb24gSWRsRGljdGlvbmFyeShvYmopCiAgICAgdGhpcy5iYXNlID0gb2JqLmlu
aGVyaXRhbmNlOwogfQogCi0vL0B9CiBJZGxEaWN0aW9uYXJ5LnByb3RvdHlwZSA9IE9iamVjdC5j
cmVhdGUoSWRsT2JqZWN0LnByb3RvdHlwZSk7CiAKIElkbERpY3Rpb25hcnkucHJvdG90eXBlLmdl
dF9pbmhlcml0YW5jZV9zdGFjayA9IGZ1bmN0aW9uKCkgewpAQCAtMTI0MCw3ICsxMjM3LDYgQEAg
SWRsRGljdGlvbmFyeS5wcm90b3R5cGUuZ2V0X2luaGVyaXRhbmNlX3N0YWNrID0gZnVuY3Rpb24o
KSB7CiAKIC8vLyBJZGxJbnRlcmZhY2UgLy8vCiBmdW5jdGlvbiBJZGxJbnRlcmZhY2Uob2JqLCBp
c19jYWxsYmFjaywgaXNfbWl4aW4pCi0vL0B7CiB7CiAgICAgLyoqCiAgICAgICogb2JqIGlzIGFu
IG9iamVjdCBwcm9kdWNlZCBieSB0aGUgV2ViSURMUGFyc2VyLmpzICJpbnRlcmZhY2UiIHByb2R1
Y3Rpb24uCkBAIC0xMjY2LDcgKzEyNjIsNyBAQCBmdW5jdGlvbiBJZGxJbnRlcmZhY2Uob2JqLCBp
c19jYWxsYmFjaywgaXNfbWl4aW4pCiAgICAgdGhpcy5tZW1iZXJzID0gb2JqLm1lbWJlcnMubWFw
KGZ1bmN0aW9uKG0pe3JldHVybiBuZXcgSWRsSW50ZXJmYWNlTWVtYmVyKG0pOyB9KTsKICAgICBp
ZiAodGhpcy5oYXNfZXh0ZW5kZWRfYXR0cmlidXRlKCJVbmZvcmdlYWJsZSIpKSB7CiAgICAgICAg
IHRoaXMubWVtYmVycwotICAgICAgICAgICAgLmZpbHRlcihmdW5jdGlvbihtKSB7IHJldHVybiAh
bVsic3RhdGljIl0gJiYgKG0udHlwZSA9PSAiYXR0cmlidXRlIiB8fCBtLnR5cGUgPT0gIm9wZXJh
dGlvbiIpOyB9KQorICAgICAgICAgICAgLmZpbHRlcihmdW5jdGlvbihtKSB7IHJldHVybiBtLnNw
ZWNpYWwgIT09ICJzdGF0aWMiICYmIChtLnR5cGUgPT0gImF0dHJpYnV0ZSIgfHwgbS50eXBlID09
ICJvcGVyYXRpb24iKTsgfSkKICAgICAgICAgICAgIC5mb3JFYWNoKGZ1bmN0aW9uKG0pIHsgcmV0
dXJuIG0uaXNVbmZvcmdlYWJsZSA9IHRydWU7IH0pOwogICAgIH0KIApAQCAtMTI3OSwzMCArMTI3
NSwyMyBAQCBmdW5jdGlvbiBJZGxJbnRlcmZhY2Uob2JqLCBpc19jYWxsYmFjaywgaXNfbWl4aW4p
CiAgICAgdGhpcy5faXNfY2FsbGJhY2sgPSBpc19jYWxsYmFjazsKICAgICB0aGlzLl9pc19taXhp
biA9IGlzX21peGluOwogfQotLy9AfQogSWRsSW50ZXJmYWNlLnByb3RvdHlwZSA9IE9iamVjdC5j
cmVhdGUoSWRsT2JqZWN0LnByb3RvdHlwZSk7CiBJZGxJbnRlcmZhY2UucHJvdG90eXBlLmlzX2Nh
bGxiYWNrID0gZnVuY3Rpb24oKQotLy9AewogewogICAgIHJldHVybiB0aGlzLl9pc19jYWxsYmFj
azsKIH07Ci0vL0B9CiAKIElkbEludGVyZmFjZS5wcm90b3R5cGUuaXNfbWl4aW4gPSBmdW5jdGlv
bigpCi0vL0B7CiB7CiAgICAgcmV0dXJuIHRoaXMuX2lzX21peGluOwogfTsKLS8vQH0KIAogSWRs
SW50ZXJmYWNlLnByb3RvdHlwZS5oYXNfY29uc3RhbnRzID0gZnVuY3Rpb24oKQotLy9Aewogewog
ICAgIHJldHVybiB0aGlzLm1lbWJlcnMuc29tZShmdW5jdGlvbihtZW1iZXIpIHsKICAgICAgICAg
cmV0dXJuIG1lbWJlci50eXBlID09PSAiY29uc3QiOwogICAgIH0pOwogfTsKLS8vQH0KIAogSWRs
SW50ZXJmYWNlLnByb3RvdHlwZS5nZXRfdW5zY29wYWJsZXMgPSBmdW5jdGlvbigpCiB7CkBAIC0x
MzEyLDEzICsxMzAxLDUzIEBAIElkbEludGVyZmFjZS5wcm90b3R5cGUuZ2V0X3Vuc2NvcGFibGVz
ID0gZnVuY3Rpb24oKQogfTsKIAogSWRsSW50ZXJmYWNlLnByb3RvdHlwZS5pc19nbG9iYWwgPSBm
dW5jdGlvbigpCi0vL0B7CiB7CiAgICAgcmV0dXJuIHRoaXMuZXh0QXR0cnMuc29tZShmdW5jdGlv
bihhdHRyaWJ1dGUpIHsKICAgICAgICAgcmV0dXJuIGF0dHJpYnV0ZS5uYW1lID09PSAiR2xvYmFs
IjsKICAgICB9KTsKIH07Ci0vL0B9CisKKy8qKgorICogVmFsdWUgb2YgdGhlIExlZ2FjeU5hbWVz
cGFjZSBleHRlbmRlZCBhdHRyaWJ1dGUsIGlmIGFueS4KKyAqCisgKiBodHRwczovL2hleWNhbS5n
aXRodWIuaW8vd2ViaWRsLyNMZWdhY3lOYW1lc3BhY2UKKyAqLworSWRsSW50ZXJmYWNlLnByb3Rv
dHlwZS5nZXRfbGVnYWN5X25hbWVzcGFjZSA9IGZ1bmN0aW9uKCkKK3sKKyAgICB2YXIgbGVnYWN5
TmFtZXNwYWNlID0gdGhpcy5leHRBdHRycy5maW5kKGZ1bmN0aW9uKGF0dHJpYnV0ZSkgeworICAg
ICAgICByZXR1cm4gYXR0cmlidXRlLm5hbWUgPT09ICJMZWdhY3lOYW1lc3BhY2UiOworICAgIH0p
OworICAgIHJldHVybiBsZWdhY3lOYW1lc3BhY2UgPyBsZWdhY3lOYW1lc3BhY2UucmhzLnZhbHVl
IDogdW5kZWZpbmVkOworfTsKKworSWRsSW50ZXJmYWNlLnByb3RvdHlwZS5nZXRfaW50ZXJmYWNl
X29iamVjdF9vd25lciA9IGZ1bmN0aW9uKCkKK3sKKyAgICB2YXIgbGVnYWN5TmFtZXNwYWNlID0g
dGhpcy5nZXRfbGVnYWN5X25hbWVzcGFjZSgpOworICAgIHJldHVybiBsZWdhY3lOYW1lc3BhY2Ug
PyBzZWxmW2xlZ2FjeU5hbWVzcGFjZV0gOiBzZWxmOworfTsKKworSWRsSW50ZXJmYWNlLnByb3Rv
dHlwZS5hc3NlcnRfaW50ZXJmYWNlX29iamVjdF9leGlzdHMgPSBmdW5jdGlvbigpCit7CisgICAg
dmFyIG93bmVyID0gdGhpcy5nZXRfbGVnYWN5X25hbWVzcGFjZSgpIHx8ICJzZWxmIjsKKyAgICBh
c3NlcnRfb3duX3Byb3BlcnR5KHNlbGZbb3duZXJdLCB0aGlzLm5hbWUsIG93bmVyICsgIiBkb2Vz
IG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiICsgZm9ybWF0X3ZhbHVlKHRoaXMubmFtZSkpOworfTsK
KworSWRsSW50ZXJmYWNlLnByb3RvdHlwZS5nZXRfaW50ZXJmYWNlX29iamVjdCA9IGZ1bmN0aW9u
KCkgeworICAgIGlmICh0aGlzLmhhc19leHRlbmRlZF9hdHRyaWJ1dGUoIk5vSW50ZXJmYWNlT2Jq
ZWN0IikpIHsKKyAgICAgICAgdGhyb3cgbmV3IElkbEhhcm5lc3NFcnJvcih0aGlzLm5hbWUgKyAi
IGhhcyBubyBpbnRlcmZhY2Ugb2JqZWN0IGR1ZSB0byBOb0ludGVyZmFjZU9iamVjdCIpOworICAg
IH0KKworICAgIHJldHVybiB0aGlzLmdldF9pbnRlcmZhY2Vfb2JqZWN0X293bmVyKClbdGhpcy5u
YW1lXTsKK307CisKK0lkbEludGVyZmFjZS5wcm90b3R5cGUuZ2V0X3F1YWxpZmllZF9uYW1lID0g
ZnVuY3Rpb24oKSB7CisgICAgLy8gaHR0cHM6Ly9oZXljYW0uZ2l0aHViLmlvL3dlYmlkbC8jcXVh
bGlmaWVkLW5hbWUKKyAgICB2YXIgbGVnYWN5TmFtZXNwYWNlID0gdGhpcy5nZXRfbGVnYWN5X25h
bWVzcGFjZSgpOworICAgIGlmIChsZWdhY3lOYW1lc3BhY2UpIHsKKyAgICAgICAgcmV0dXJuIGxl
Z2FjeU5hbWVzcGFjZSArICIuIiArIHRoaXMubmFtZTsKKyAgICB9CisgICAgcmV0dXJuIHRoaXMu
bmFtZTsKK307CiAKIElkbEludGVyZmFjZS5wcm90b3R5cGUuaGFzX3RvX2pzb25fcmVndWxhcl9v
cGVyYXRpb24gPSBmdW5jdGlvbigpIHsKICAgICByZXR1cm4gdGhpcy5tZW1iZXJzLnNvbWUoZnVu
Y3Rpb24obSkgewpAQCAtMTM4NCw3ICsxNDEzLDcgQEAgSWRsSW50ZXJmYWNlLnByb3RvdHlwZS5k
ZWZhdWx0X3RvX2pzb25fb3BlcmF0aW9uID0gZnVuY3Rpb24oY2FsbGJhY2spIHsKICAgICAgICAg
aWYgKEkuaGFzX2RlZmF1bHRfdG9fanNvbl9yZWd1bGFyX29wZXJhdGlvbigpKSB7CiAgICAgICAg
ICAgICBpc0RlZmF1bHQgPSB0cnVlOwogICAgICAgICAgICAgSS5tZW1iZXJzLmZvckVhY2goZnVu
Y3Rpb24obSkgewotICAgICAgICAgICAgICAgIGlmICghbS5zdGF0aWMgJiYgbS50eXBlID09ICJh
dHRyaWJ1dGUiICYmIEkuYXJyYXkuaXNfanNvbl90eXBlKG0uaWRsVHlwZSkpIHsKKyAgICAgICAg
ICAgICAgICBpZiAobS5zcGVjaWFsICE9PSAic3RhdGljIiAmJiBtLnR5cGUgPT0gImF0dHJpYnV0
ZSIgJiYgSS5hcnJheS5pc19qc29uX3R5cGUobS5pZGxUeXBlKSkgewogICAgICAgICAgICAgICAg
ICAgICBtYXAuc2V0KG0ubmFtZSwgbS5pZGxUeXBlKTsKICAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICB9KTsKQEAgLTE0NDYsNyArMTQ3NSw2IEBAIGZ1bmN0aW9uIF90cmF2ZXJzZV9pbmhl
cml0ZWRfYW5kX2NvbnNlcXVlbnRpYWxfaW50ZXJmYWNlcyhzdGFjaywgY2FsbGJhY2spIHsKIH0K
IAogSWRsSW50ZXJmYWNlLnByb3RvdHlwZS50ZXN0ID0gZnVuY3Rpb24oKQotLy9AewogewogICAg
IGlmICh0aGlzLmhhc19leHRlbmRlZF9hdHRyaWJ1dGUoIk5vSW50ZXJmYWNlT2JqZWN0IikgfHwg
dGhpcy5pc19taXhpbigpKQogICAgIHsKQEAgLTE0NzgsMTAgKzE1MDYsMTkgQEAgSWRsSW50ZXJm
YWNlLnByb3RvdHlwZS50ZXN0ID0gZnVuY3Rpb24oKQogICAgIC8vIGludGVyZmFjZSBhcmUgc3Rp
bGwgdGVzdGVkLgogICAgIHRoaXMudGVzdF9tZW1iZXJzKCk7CiB9OwotLy9AfQorCisvLyBUaGlz
IHN1cHBvcnRzIGJvdGggQ29uc3RydWN0b3IgZXh0ZW5kZWQgYXR0cmlidXRlcyBhbmQgY29uc3Ry
dWN0b3IKKy8vIG9wZXJhdGlvbnMgdW50aWwgYWxsIGlkbCBmcmFnbWVudHMgaGF2ZSBiZWVuIHVw
ZGF0ZWQuCitJZGxJbnRlcmZhY2UucHJvdG90eXBlLmNvbnN0cnVjdG9ycyA9IGZ1bmN0aW9uKCkK
K3sKKyAgICB2YXIgZXh0ZW5kZWRBdHRyaWJ1dGVzID0gdGhpcy5leHRBdHRycworICAgICAgICAu
ZmlsdGVyKGZ1bmN0aW9uKGF0dHIpIHsgcmV0dXJuIGF0dHIubmFtZSA9PSAiQ29uc3RydWN0b3Ii
OyB9KTsKKyAgICB2YXIgb3BlcmF0aW9ucyA9IHRoaXMubWVtYmVycworICAgICAgICAuZmlsdGVy
KGZ1bmN0aW9uKG0pIHsgcmV0dXJuIG0udHlwZSA9PSAiY29uc3RydWN0b3IiOyB9KTsKKyAgICBy
ZXR1cm4gZXh0ZW5kZWRBdHRyaWJ1dGVzLmNvbmNhdChvcGVyYXRpb25zKTsKK30KIAogSWRsSW50
ZXJmYWNlLnByb3RvdHlwZS50ZXN0X3NlbGYgPSBmdW5jdGlvbigpCi0vL0B7CiB7CiAgICAgc3Vi
c2V0VGVzdEJ5S2V5KHRoaXMubmFtZSwgdGVzdCwgZnVuY3Rpb24oKQogICAgIHsKQEAgLTE1MDMs
OSArMTU0MCw4IEBAIElkbEludGVyZmFjZS5wcm90b3R5cGUudGVzdF9zZWxmID0gZnVuY3Rpb24o
KQogCiAgICAgICAgIC8vIFRPRE86IFNob3VsZCB3ZSB0ZXN0IGhlcmUgdGhhdCB0aGUgcHJvcGVy
dHkgaXMgYWN0dWFsbHkgd3JpdGFibGUKICAgICAgICAgLy8gZXRjLiwgb3IgdHJ1c3QgZ2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yPwotICAgICAgICBhc3NlcnRfb3duX3Byb3BlcnR5KHNlbGYsIHRo
aXMubmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2VsZiBkb2VzIG5vdCBoYXZl
IG93biBwcm9wZXJ0eSAiICsgZm9ybWF0X3ZhbHVlKHRoaXMubmFtZSkpOwotICAgICAgICB2YXIg
ZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Ioc2VsZiwgdGhpcy5uYW1lKTsK
KyAgICAgICAgdGhpcy5hc3NlcnRfaW50ZXJmYWNlX29iamVjdF9leGlzdHMoKTsKKyAgICAgICAg
dmFyIGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRoaXMuZ2V0X2ludGVy
ZmFjZV9vYmplY3Rfb3duZXIoKSwgdGhpcy5uYW1lKTsKICAgICAgICAgYXNzZXJ0X2ZhbHNlKCJn
ZXQiIGluIGRlc2MsICJzZWxmJ3MgcHJvcGVydHkgIiArIGZvcm1hdF92YWx1ZSh0aGlzLm5hbWUp
ICsgIiBzaG91bGQgbm90IGhhdmUgYSBnZXR0ZXIiKTsKICAgICAgICAgYXNzZXJ0X2ZhbHNlKCJz
ZXQiIGluIGRlc2MsICJzZWxmJ3MgcHJvcGVydHkgIiArIGZvcm1hdF92YWx1ZSh0aGlzLm5hbWUp
ICsgIiBzaG91bGQgbm90IGhhdmUgYSBzZXR0ZXIiKTsKICAgICAgICAgYXNzZXJ0X3RydWUoZGVz
Yy53cml0YWJsZSwgInNlbGYncyBwcm9wZXJ0eSAiICsgZm9ybWF0X3ZhbHVlKHRoaXMubmFtZSkg
KyAiIHNob3VsZCBiZSB3cml0YWJsZSIpOwpAQCAtMTUxNSw3ICsxNTUxLDcgQEAgSWRsSW50ZXJm
YWNlLnByb3RvdHlwZS50ZXN0X3NlbGYgPSBmdW5jdGlvbigpCiAgICAgICAgIGlmICh0aGlzLmlz
X2NhbGxiYWNrKCkpIHsKICAgICAgICAgICAgIC8vICJUaGUgaW50ZXJuYWwgW1tQcm90b3R5cGVd
XSBwcm9wZXJ0eSBvZiBhbiBpbnRlcmZhY2Ugb2JqZWN0IGZvcgogICAgICAgICAgICAgLy8gYSBj
YWxsYmFjayBpbnRlcmZhY2UgbXVzdCBiZSB0aGUgRnVuY3Rpb24ucHJvdG90eXBlIG9iamVjdC4i
Ci0gICAgICAgICAgICBhc3NlcnRfZXF1YWxzKE9iamVjdC5nZXRQcm90b3R5cGVPZihzZWxmW3Ro
aXMubmFtZV0pLCBGdW5jdGlvbi5wcm90b3R5cGUsCisgICAgICAgICAgICBhc3NlcnRfZXF1YWxz
KE9iamVjdC5nZXRQcm90b3R5cGVPZih0aGlzLmdldF9pbnRlcmZhY2Vfb2JqZWN0KCkpLCBGdW5j
dGlvbi5wcm90b3R5cGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICJwcm90b3R5cGUgb2Yg
c2VsZidzIHByb3BlcnR5ICIgKyBmb3JtYXRfdmFsdWUodGhpcy5uYW1lKSArICIgaXMgbm90IE9i
amVjdC5wcm90b3R5cGUiKTsKIAogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMTU0NSwyNCArMTU4
MSwxOSBAQCBJZGxJbnRlcmZhY2UucHJvdG90eXBlLnRlc3Rfc2VsZiA9IGZ1bmN0aW9uKCkKICAg
ICAgICAgLy8gRVM2IChyZXYgMzApIDE5LjEuMy42OgogICAgICAgICAvLyAiRWxzZSwgaWYgTyBo
YXMgYSBbW0NhbGxdXSBpbnRlcm5hbCBtZXRob2QsIHRoZW4gbGV0IGJ1aWx0aW5UYWcgYmUKICAg
ICAgICAgLy8gIkZ1bmN0aW9uIi4iCi0gICAgICAgIGFzc2VydF9jbGFzc19zdHJpbmcoc2VsZlt0
aGlzLm5hbWVdLCAiRnVuY3Rpb24iLCAiY2xhc3Mgc3RyaW5nIG9mICIgKyB0aGlzLm5hbWUpOwor
ICAgICAgICBhc3NlcnRfY2xhc3Nfc3RyaW5nKHRoaXMuZ2V0X2ludGVyZmFjZV9vYmplY3QoKSwg
IkZ1bmN0aW9uIiwgImNsYXNzIHN0cmluZyBvZiAiICsgdGhpcy5uYW1lKTsKIAogICAgICAgICAv
LyAiVGhlIFtbUHJvdG90eXBlXV0gaW50ZXJuYWwgcHJvcGVydHkgb2YgYW4gaW50ZXJmYWNlIG9i
amVjdCBmb3IgYQogICAgICAgICAvLyBub24tY2FsbGJhY2sgaW50ZXJmYWNlIGlzIGRldGVybWlu
ZWQgYXMgZm9sbG93czoiCi0gICAgICAgIHZhciBwcm90b3R5cGUgPSBPYmplY3QuZ2V0UHJvdG90
eXBlT2Yoc2VsZlt0aGlzLm5hbWVdKTsKKyAgICAgICAgdmFyIHByb3RvdHlwZSA9IE9iamVjdC5n
ZXRQcm90b3R5cGVPZih0aGlzLmdldF9pbnRlcmZhY2Vfb2JqZWN0KCkpOwogICAgICAgICBpZiAo
dGhpcy5iYXNlKSB7CiAgICAgICAgICAgICAvLyAiKiBJZiB0aGUgaW50ZXJmYWNlIGluaGVyaXRz
IGZyb20gc29tZSBvdGhlciBpbnRlcmZhY2UsIHRoZQogICAgICAgICAgICAgLy8gICAgdmFsdWUg
b2YgW1tQcm90b3R5cGVdXSBpcyB0aGUgaW50ZXJmYWNlIG9iamVjdCBmb3IgdGhhdCBvdGhlcgog
ICAgICAgICAgICAgLy8gICAgaW50ZXJmYWNlLiIKLSAgICAgICAgICAgIHZhciBoYXNfaW50ZXJm
YWNlX29iamVjdCA9Ci0gICAgICAgICAgICAgICAgIXRoaXMuYXJyYXkKLSAgICAgICAgICAgICAg
ICAgICAgIC5tZW1iZXJzW3RoaXMuYmFzZV0KLSAgICAgICAgICAgICAgICAgICAgIC5oYXNfZXh0
ZW5kZWRfYXR0cmlidXRlKCJOb0ludGVyZmFjZU9iamVjdCIpOwotICAgICAgICAgICAgaWYgKGhh
c19pbnRlcmZhY2Vfb2JqZWN0KSB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0X293bl9wcm9wZXJ0
eShzZWxmLCB0aGlzLmJhc2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAn
c2hvdWxkIGluaGVyaXQgZnJvbSAnICsgdGhpcy5iYXNlICsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICcsIGJ1dCBzZWxmIGhhcyBubyBzdWNoIHByb3BlcnR5Jyk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhwcm90b3R5cGUsIHNlbGZbdGhpcy5iYXNlXSwKKyAg
ICAgICAgICAgIHZhciBpbmhlcml0ZWRfaW50ZXJmYWNlID0gdGhpcy5hcnJheS5tZW1iZXJzW3Ro
aXMuYmFzZV07CisgICAgICAgICAgICBpZiAoIWluaGVyaXRlZF9pbnRlcmZhY2UuaGFzX2V4dGVu
ZGVkX2F0dHJpYnV0ZSgiTm9JbnRlcmZhY2VPYmplY3QiKSkgeworICAgICAgICAgICAgICAgIGlu
aGVyaXRlZF9pbnRlcmZhY2UuYXNzZXJ0X2ludGVyZmFjZV9vYmplY3RfZXhpc3RzKCk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhwcm90b3R5cGUsIGluaGVyaXRlZF9pbnRlcmZhY2Uu
Z2V0X2ludGVyZmFjZV9vYmplY3QoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdw
cm90b3R5cGUgb2YgJyArIHRoaXMubmFtZSArICcgaXMgbm90ICcgKwogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdGhpcy5iYXNlKTsKICAgICAgICAgICAgIH0KQEAgLTE1NzQsMTggKzE2
MDUsMTkgQEAgSWRsSW50ZXJmYWNlLnByb3RvdHlwZS50ZXN0X3NlbGYgPSBmdW5jdGlvbigpCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJwcm90b3R5cGUgb2Ygc2VsZidzIHByb3BlcnR5ICIg
KyBmb3JtYXRfdmFsdWUodGhpcy5uYW1lKSArICIgaXMgbm90IEZ1bmN0aW9uLnByb3RvdHlwZSIp
OwogICAgICAgICB9CiAKLSAgICAgICAgaWYgKCF0aGlzLmhhc19leHRlbmRlZF9hdHRyaWJ1dGUo
IkNvbnN0cnVjdG9yIikpIHsKKyAgICAgICAgaWYgKCF0aGlzLmNvbnN0cnVjdG9ycygpLmxlbmd0
aCkgewogICAgICAgICAgICAgLy8gIlRoZSBpbnRlcm5hbCBbW0NhbGxdXSBtZXRob2Qgb2YgdGhl
IGludGVyZmFjZSBvYmplY3QgYmVoYXZlcyBhcwogICAgICAgICAgICAgLy8gZm9sbG93cyAuIC4g
LgogICAgICAgICAgICAgLy8KICAgICAgICAgICAgIC8vICJJZiBJIHdhcyBub3QgZGVjbGFyZWQg
d2l0aCBhIFtDb25zdHJ1Y3Rvcl0gZXh0ZW5kZWQgYXR0cmlidXRlLAogICAgICAgICAgICAgLy8g
dGhlbiB0aHJvdyBhIFR5cGVFcnJvci4iCisgICAgICAgICAgICB2YXIgaW50ZXJmYWNlX29iamVj
dCA9IHRoaXMuZ2V0X2ludGVyZmFjZV9vYmplY3QoKTsKICAgICAgICAgICAgIGFzc2VydF90aHJv
d3MobmV3IFR5cGVFcnJvcigpLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICBzZWxmW3Ro
aXMubmFtZV0oKTsKLSAgICAgICAgICAgIH0uYmluZCh0aGlzKSwgImludGVyZmFjZSBvYmplY3Qg
ZGlkbid0IHRocm93IFR5cGVFcnJvciB3aGVuIGNhbGxlZCBhcyBhIGZ1bmN0aW9uIik7CisgICAg
ICAgICAgICAgICAgaW50ZXJmYWNlX29iamVjdCgpOworICAgICAgICAgICAgfSwgImludGVyZmFj
ZSBvYmplY3QgZGlkbid0IHRocm93IFR5cGVFcnJvciB3aGVuIGNhbGxlZCBhcyBhIGZ1bmN0aW9u
Iik7CiAgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKG5ldyBUeXBlRXJyb3IoKSwgZnVuY3Rpb24o
KSB7Ci0gICAgICAgICAgICAgICAgbmV3IHNlbGZbdGhpcy5uYW1lXSgpOwotICAgICAgICAgICAg
fS5iaW5kKHRoaXMpLCAiaW50ZXJmYWNlIG9iamVjdCBkaWRuJ3QgdGhyb3cgVHlwZUVycm9yIHdo
ZW4gY2FsbGVkIGFzIGEgY29uc3RydWN0b3IiKTsKKyAgICAgICAgICAgICAgICBuZXcgaW50ZXJm
YWNlX29iamVjdCgpOworICAgICAgICAgICAgfSwgImludGVyZmFjZSBvYmplY3QgZGlkbid0IHRo
cm93IFR5cGVFcnJvciB3aGVuIGNhbGxlZCBhcyBhIGNvbnN0cnVjdG9yIik7CiAgICAgICAgIH0K
ICAgICB9LmJpbmQodGhpcyksIHRoaXMubmFtZSArICIgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5k
IHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCIpOwogCkBAIC0xNTk0LDI1ICsxNjI2LDIz
IEBAIElkbEludGVyZmFjZS5wcm90b3R5cGUudGVzdF9zZWxmID0gZnVuY3Rpb24oKQogICAgICAg
ICAgICAgLy8gVGhpcyBmdW5jdGlvbiB0ZXN0cyBXZWJJREwgYXMgb2YgMjAxNC0xMC0yNS4KICAg
ICAgICAgICAgIC8vIGh0dHBzOi8vaGV5Y2FtLmdpdGh1Yi5pby93ZWJpZGwvI2VzLWludGVyZmFj
ZS1jYWxsCiAKLSAgICAgICAgICAgIGFzc2VydF9vd25fcHJvcGVydHkoc2VsZiwgdGhpcy5uYW1l
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2VsZiBkb2VzIG5vdCBoYXZlIG93
biBwcm9wZXJ0eSAiICsgZm9ybWF0X3ZhbHVlKHRoaXMubmFtZSkpOworICAgICAgICAgICAgdGhp
cy5hc3NlcnRfaW50ZXJmYWNlX29iamVjdF9leGlzdHMoKTsKIAogICAgICAgICAgICAgLy8gIklu
dGVyZmFjZSBvYmplY3RzIGZvciBub24tY2FsbGJhY2sgaW50ZXJmYWNlcyBNVVNUIGhhdmUgYQog
ICAgICAgICAgICAgLy8gcHJvcGVydHkgbmFtZWQg4oCcbGVuZ3Ro4oCdIHdpdGggYXR0cmlidXRl
cyB7IFtbV3JpdGFibGVdXTogZmFsc2UsCiAgICAgICAgICAgICAvLyBbW0VudW1lcmFibGVdXTog
ZmFsc2UsIFtbQ29uZmlndXJhYmxlXV06IHRydWUgfSB3aG9zZSB2YWx1ZSBpcwogICAgICAgICAg
ICAgLy8gYSBOdW1iZXIuIgotICAgICAgICAgICAgYXNzZXJ0X293bl9wcm9wZXJ0eShzZWxmW3Ro
aXMubmFtZV0sICJsZW5ndGgiKTsKLSAgICAgICAgICAgIHZhciBkZXNjID0gT2JqZWN0LmdldE93
blByb3BlcnR5RGVzY3JpcHRvcihzZWxmW3RoaXMubmFtZV0sICJsZW5ndGgiKTsKKyAgICAgICAg
ICAgIGFzc2VydF9vd25fcHJvcGVydHkodGhpcy5nZXRfaW50ZXJmYWNlX29iamVjdCgpLCAibGVu
Z3RoIik7CisgICAgICAgICAgICB2YXIgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3IodGhpcy5nZXRfaW50ZXJmYWNlX29iamVjdCgpLCAibGVuZ3RoIik7CiAgICAgICAgICAg
ICBhc3NlcnRfZmFsc2UoImdldCIgaW4gZGVzYywgdGhpcy5uYW1lICsgIi5sZW5ndGggc2hvdWxk
IG5vdCBoYXZlIGEgZ2V0dGVyIik7CiAgICAgICAgICAgICBhc3NlcnRfZmFsc2UoInNldCIgaW4g
ZGVzYywgdGhpcy5uYW1lICsgIi5sZW5ndGggc2hvdWxkIG5vdCBoYXZlIGEgc2V0dGVyIik7CiAg
ICAgICAgICAgICBhc3NlcnRfZmFsc2UoZGVzYy53cml0YWJsZSwgdGhpcy5uYW1lICsgIi5sZW5n
dGggc2hvdWxkIG5vdCBiZSB3cml0YWJsZSIpOwogICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKGRl
c2MuZW51bWVyYWJsZSwgdGhpcy5uYW1lICsgIi5sZW5ndGggc2hvdWxkIG5vdCBiZSBlbnVtZXJh
YmxlIik7CiAgICAgICAgICAgICBhc3NlcnRfdHJ1ZShkZXNjLmNvbmZpZ3VyYWJsZSwgdGhpcy5u
YW1lICsgIi5sZW5ndGggc2hvdWxkIGJlIGNvbmZpZ3VyYWJsZSIpOwogCi0gICAgICAgICAgICB2
YXIgY29uc3RydWN0b3JzID0gdGhpcy5leHRBdHRycwotICAgICAgICAgICAgICAgIC5maWx0ZXIo
ZnVuY3Rpb24oYXR0cikgeyByZXR1cm4gYXR0ci5uYW1lID09ICJDb25zdHJ1Y3RvciI7IH0pOwor
ICAgICAgICAgICAgdmFyIGNvbnN0cnVjdG9ycyA9IHRoaXMuY29uc3RydWN0b3JzKCk7CiAgICAg
ICAgICAgICB2YXIgZXhwZWN0ZWRfbGVuZ3RoID0gbWluT3ZlcmxvYWRMZW5ndGgoY29uc3RydWN0
b3JzKTsKLSAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2VsZlt0aGlzLm5hbWVdLmxlbmd0aCwg
ZXhwZWN0ZWRfbGVuZ3RoLCAid3JvbmcgdmFsdWUgZm9yICIgKyB0aGlzLm5hbWUgKyAiLmxlbmd0
aCIpOworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyh0aGlzLmdldF9pbnRlcmZhY2Vfb2JqZWN0
KCkubGVuZ3RoLCBleHBlY3RlZF9sZW5ndGgsICJ3cm9uZyB2YWx1ZSBmb3IgIiArIHRoaXMubmFt
ZSArICIubGVuZ3RoIik7CiAgICAgICAgIH0uYmluZCh0aGlzKSwgdGhpcy5uYW1lICsgIiBpbnRl
cmZhY2Ugb2JqZWN0IGxlbmd0aCIpOwogICAgIH0KIApAQCAtMTYyMSwyMiArMTY1MSwyMSBAQCBJ
ZGxJbnRlcmZhY2UucHJvdG90eXBlLnRlc3Rfc2VsZiA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAg
IC8vIFRoaXMgZnVuY3Rpb24gdGVzdHMgV2ViSURMIGFzIG9mIDIwMTUtMTEtMTcuCiAgICAgICAg
ICAgICAvLyBodHRwczovL2hleWNhbS5naXRodWIuaW8vd2ViaWRsLyNpbnRlcmZhY2Utb2JqZWN0
CiAKLSAgICAgICAgICAgIGFzc2VydF9vd25fcHJvcGVydHkoc2VsZiwgdGhpcy5uYW1lLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9w
ZXJ0eSAiICsgZm9ybWF0X3ZhbHVlKHRoaXMubmFtZSkpOworICAgICAgICAgICAgdGhpcy5hc3Nl
cnRfaW50ZXJmYWNlX29iamVjdF9leGlzdHMoKTsKIAogICAgICAgICAgICAgLy8gIkFsbCBpbnRl
cmZhY2Ugb2JqZWN0cyBtdXN0IGhhdmUgYSBwcm9wZXJ0eSBuYW1lZCDigJxuYW1l4oCdIHdpdGgK
ICAgICAgICAgICAgIC8vIGF0dHJpYnV0ZXMgeyBbW1dyaXRhYmxlXV06IGZhbHNlLCBbW0VudW1l
cmFibGVdXTogZmFsc2UsCiAgICAgICAgICAgICAvLyBbW0NvbmZpZ3VyYWJsZV1dOiB0cnVlIH0g
d2hvc2UgdmFsdWUgaXMgdGhlIGlkZW50aWZpZXIgb2YgdGhlCiAgICAgICAgICAgICAvLyBjb3Jy
ZXNwb25kaW5nIGludGVyZmFjZS4iCiAKLSAgICAgICAgICAgIGFzc2VydF9vd25fcHJvcGVydHko
c2VsZlt0aGlzLm5hbWVdLCAibmFtZSIpOwotICAgICAgICAgICAgdmFyIGRlc2MgPSBPYmplY3Qu
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHNlbGZbdGhpcy5uYW1lXSwgIm5hbWUiKTsKKyAgICAg
ICAgICAgIGFzc2VydF9vd25fcHJvcGVydHkodGhpcy5nZXRfaW50ZXJmYWNlX29iamVjdCgpLCAi
bmFtZSIpOworICAgICAgICAgICAgdmFyIGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKHRoaXMuZ2V0X2ludGVyZmFjZV9vYmplY3QoKSwgIm5hbWUiKTsKICAgICAgICAgICAg
IGFzc2VydF9mYWxzZSgiZ2V0IiBpbiBkZXNjLCB0aGlzLm5hbWUgKyAiLm5hbWUgc2hvdWxkIG5v
dCBoYXZlIGEgZ2V0dGVyIik7CiAgICAgICAgICAgICBhc3NlcnRfZmFsc2UoInNldCIgaW4gZGVz
YywgdGhpcy5uYW1lICsgIi5uYW1lIHNob3VsZCBub3QgaGF2ZSBhIHNldHRlciIpOwogICAgICAg
ICAgICAgYXNzZXJ0X2ZhbHNlKGRlc2Mud3JpdGFibGUsIHRoaXMubmFtZSArICIubmFtZSBzaG91
bGQgbm90IGJlIHdyaXRhYmxlIik7CiAgICAgICAgICAgICBhc3NlcnRfZmFsc2UoZGVzYy5lbnVt
ZXJhYmxlLCB0aGlzLm5hbWUgKyAiLm5hbWUgc2hvdWxkIG5vdCBiZSBlbnVtZXJhYmxlIik7CiAg
ICAgICAgICAgICBhc3NlcnRfdHJ1ZShkZXNjLmNvbmZpZ3VyYWJsZSwgdGhpcy5uYW1lICsgIi5u
YW1lIHNob3VsZCBiZSBjb25maWd1cmFibGUiKTsKLSAgICAgICAgICAgIGFzc2VydF9lcXVhbHMo
c2VsZlt0aGlzLm5hbWVdLm5hbWUsIHRoaXMubmFtZSwgIndyb25nIHZhbHVlIGZvciAiICsgdGhp
cy5uYW1lICsgIi5uYW1lIik7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHRoaXMuZ2V0X2lu
dGVyZmFjZV9vYmplY3QoKS5uYW1lLCB0aGlzLm5hbWUsICJ3cm9uZyB2YWx1ZSBmb3IgIiArIHRo
aXMubmFtZSArICIubmFtZSIpOwogICAgICAgICB9LmJpbmQodGhpcyksIHRoaXMubmFtZSArICIg
aW50ZXJmYWNlIG9iamVjdCBuYW1lIik7CiAgICAgfQogCkBAIC0xNjY1LDcgKzE2OTQsNyBAQCBJ
ZGxJbnRlcmZhY2UucHJvdG90eXBlLnRlc3Rfc2VsZiA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAg
IH0KICAgICAgICAgICAgIHZhciBhbGlhc2VzOwogICAgICAgICAgICAgaWYgKHJocy50eXBlID09
PSAiaWRlbnRpZmllci1saXN0IikgewotICAgICAgICAgICAgICAgIGFsaWFzZXMgPSByaHMudmFs
dWU7CisgICAgICAgICAgICAgICAgYWxpYXNlcyA9IHJocy52YWx1ZS5tYXAoaWQgPT4gaWQudmFs
dWUpOwogICAgICAgICAgICAgfSBlbHNlIHsgLy8gcmhzLnR5cGUgPT09IGlkZW50aWZpZXIKICAg
ICAgICAgICAgICAgICBhbGlhc2VzID0gWyByaHMudmFsdWUgXTsKICAgICAgICAgICAgIH0KQEAg
LTE2NzUsOSArMTcwNCw5IEBAIElkbEludGVyZmFjZS5wcm90b3R5cGUudGVzdF9zZWxmID0gZnVu
Y3Rpb24oKQogICAgICAgICAgICAgaWYgKGV4cG9zZWRfaW4oZXhwb3N1cmVfc2V0KHRoaXMsIHRo
aXMuZXhwb3N1cmVTZXQpKSAmJiAnZG9jdW1lbnQnIGluIHNlbGYpIHsKICAgICAgICAgICAgICAg
ICBmb3IgKGFsaWFzIG9mIGFsaWFzZXMpIHsKICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X3Ry
dWUoYWxpYXMgaW4gc2VsZiwgYWxpYXMgKyAiIHNob3VsZCBleGlzdCIpOwotICAgICAgICAgICAg
ICAgICAgICBhc3NlcnRfZXF1YWxzKHNlbGZbYWxpYXNdLCBzZWxmW3RoaXMubmFtZV0sICJzZWxm
LiIgKyBhbGlhcyArICIgc2hvdWxkIGJlIHRoZSBzYW1lIHZhbHVlIGFzIHNlbGYuIiArIHRoaXMu
bmFtZSk7CisgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2VsZlthbGlhc10sIHRo
aXMuZ2V0X2ludGVyZmFjZV9vYmplY3QoKSwgInNlbGYuIiArIGFsaWFzICsgIiBzaG91bGQgYmUg
dGhlIHNhbWUgdmFsdWUgYXMgc2VsZi4iICsgdGhpcy5nZXRfcXVhbGlmaWVkX25hbWUoKSk7CiAg
ICAgICAgICAgICAgICAgICAgIHZhciBkZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3Jp
cHRvcihzZWxmLCBhbGlhcyk7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZGVz
Yy52YWx1ZSwgc2VsZlt0aGlzLm5hbWVdLCAid3JvbmcgdmFsdWUgaW4gIiArIGFsaWFzICsgIiBw
cm9wZXJ0eSBkZXNjcmlwdG9yIik7CisgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMo
ZGVzYy52YWx1ZSwgdGhpcy5nZXRfaW50ZXJmYWNlX29iamVjdCgpLCAid3JvbmcgdmFsdWUgaW4g
IiArIGFsaWFzICsgIiBwcm9wZXJ0eSBkZXNjcmlwdG9yIik7CiAgICAgICAgICAgICAgICAgICAg
IGFzc2VydF90cnVlKGRlc2Mud3JpdGFibGUsIGFsaWFzICsgIiBzaG91bGQgYmUgd3JpdGFibGUi
KTsKICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKGRlc2MuZW51bWVyYWJsZSwgYWxp
YXMgKyAiIHNob3VsZCBub3QgYmUgZW51bWVyYWJsZSIpOwogICAgICAgICAgICAgICAgICAgICBh
c3NlcnRfdHJ1ZShkZXNjLmNvbmZpZ3VyYWJsZSwgYWxpYXMgKyAiIHNob3VsZCBiZSBjb25maWd1
cmFibGUiKTsKQEAgLTE2OTIsNyArMTcyMSwxMjIgQEAgSWRsSW50ZXJmYWNlLnByb3RvdHlwZS50
ZXN0X3NlbGYgPSBmdW5jdGlvbigpCiAKICAgICAgICAgfS5iaW5kKHRoaXMpLCB0aGlzLm5hbWUg
KyAiIGludGVyZmFjZTogbGVnYWN5IHdpbmRvdyBhbGlhcyIpOwogICAgIH0KLSAgICAvLyBUT0RP
OiBUZXN0IG5hbWVkIGNvbnN0cnVjdG9ycyBpZiBJIGZpbmQgYW55IGludGVyZmFjZXMgdGhhdCBo
YXZlIHRoZW0uCisKKyAgICBpZiAodGhpcy5oYXNfZXh0ZW5kZWRfYXR0cmlidXRlKCJOYW1lZENv
bnN0cnVjdG9yIikpIHsKKyAgICAgICAgdmFyIGNvbnN0cnVjdG9ycyA9IHRoaXMuZXh0QXR0cnMK
KyAgICAgICAgICAgIC5maWx0ZXIoZnVuY3Rpb24oYXR0cikgeyByZXR1cm4gYXR0ci5uYW1lID09
ICJOYW1lZENvbnN0cnVjdG9yIjsgfSk7CisgICAgICAgIGlmIChjb25zdHJ1Y3RvcnMubGVuZ3Ro
ICE9PSAxKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWRsSGFybmVzc0Vycm9yKCJJbnRlcm5h
bCBlcnJvcjogbWlzc2luZyBzdXBwb3J0IGZvciBtdWx0aXBsZSBOYW1lZENvbnN0cnVjdG9yIGV4
dGVuZGVkIGF0dHJpYnV0ZXMiKTsKKyAgICAgICAgfQorICAgICAgICB2YXIgY29uc3RydWN0b3Ig
PSBjb25zdHJ1Y3RvcnNbMF07CisgICAgICAgIHZhciBtaW5fbGVuZ3RoID0gbWluT3ZlcmxvYWRM
ZW5ndGgoW2NvbnN0cnVjdG9yXSk7CisKKyAgICAgICAgc3Vic2V0VGVzdEJ5S2V5KHRoaXMubmFt
ZSwgdGVzdCwgZnVuY3Rpb24oKQorICAgICAgICB7CisgICAgICAgICAgICAvLyBUaGlzIGZ1bmN0
aW9uIHRlc3RzIFdlYklETCBhcyBvZiAyMDE5LTAxLTE0LgorCisgICAgICAgICAgICAvLyAiZm9y
IGV2ZXJ5IFtOYW1lZENvbnN0cnVjdG9yXSBleHRlbmRlZCBhdHRyaWJ1dGUgb24gYW4gZXhwb3Nl
ZAorICAgICAgICAgICAgLy8gaW50ZXJmYWNlLCBhIGNvcnJlc3BvbmRpbmcgcHJvcGVydHkgbXVz
dCBleGlzdCBvbiB0aGUgRUNNQVNjcmlwdAorICAgICAgICAgICAgLy8gZ2xvYmFsIG9iamVjdC4g
VGhlIG5hbWUgb2YgdGhlIHByb3BlcnR5IGlzIHRoZQorICAgICAgICAgICAgLy8gW05hbWVkQ29u
c3RydWN0b3JdJ3MgaWRlbnRpZmllciwgYW5kIGl0cyB2YWx1ZSBpcyBhbiBvYmplY3QKKyAgICAg
ICAgICAgIC8vIGNhbGxlZCBhIG5hbWVkIGNvbnN0cnVjdG9yLCAuLi4gLiBUaGUgcHJvcGVydHkg
aGFzIHRoZSBhdHRyaWJ1dGVzCisgICAgICAgICAgICAvLyB7IFtbV3JpdGFibGVdXTogdHJ1ZSwg
W1tFbnVtZXJhYmxlXV06IGZhbHNlLAorICAgICAgICAgICAgLy8gW1tDb25maWd1cmFibGVdXTog
dHJ1ZSB9LiIKKyAgICAgICAgICAgIHZhciBuYW1lID0gY29uc3RydWN0b3IucmhzLnZhbHVlOwor
ICAgICAgICAgICAgYXNzZXJ0X293bl9wcm9wZXJ0eShzZWxmLCBuYW1lKTsKKyAgICAgICAgICAg
IHZhciBkZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihzZWxmLCBuYW1lKTsK
KyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZGVzYy52YWx1ZSwgc2VsZltuYW1lXSwgIndyb25n
IHZhbHVlIGluICIgKyBuYW1lICsgIiBwcm9wZXJ0eSBkZXNjcmlwdG9yIik7CisgICAgICAgICAg
ICBhc3NlcnRfdHJ1ZShkZXNjLndyaXRhYmxlLCBuYW1lICsgIiBzaG91bGQgYmUgd3JpdGFibGUi
KTsKKyAgICAgICAgICAgIGFzc2VydF9mYWxzZShkZXNjLmVudW1lcmFibGUsIG5hbWUgKyAiIHNo
b3VsZCBub3QgYmUgZW51bWVyYWJsZSIpOworICAgICAgICAgICAgYXNzZXJ0X3RydWUoZGVzYy5j
b25maWd1cmFibGUsIG5hbWUgKyAiIHNob3VsZCBiZSBjb25maWd1cmFibGUiKTsKKyAgICAgICAg
ICAgIGFzc2VydF9mYWxzZSgiZ2V0IiBpbiBkZXNjLCBuYW1lICsgIiBzaG91bGQgbm90IGhhdmUg
YSBnZXR0ZXIiKTsKKyAgICAgICAgICAgIGFzc2VydF9mYWxzZSgic2V0IiBpbiBkZXNjLCBuYW1l
ICsgIiBzaG91bGQgbm90IGhhdmUgYSBzZXR0ZXIiKTsKKyAgICAgICAgfS5iaW5kKHRoaXMpLCB0
aGlzLm5hbWUgKyAiIGludGVyZmFjZTogbmFtZWQgY29uc3RydWN0b3IiKTsKKworICAgICAgICBz
dWJzZXRUZXN0QnlLZXkodGhpcy5uYW1lLCB0ZXN0LCBmdW5jdGlvbigpCisgICAgICAgIHsKKyAg
ICAgICAgICAgIC8vIFRoaXMgZnVuY3Rpb24gdGVzdHMgV2ViSURMIGFzIG9mIDIwMTktMDEtMTQu
CisKKyAgICAgICAgICAgIC8vICIyLiBMZXQgRiBiZSAhIENyZWF0ZUJ1aWx0aW5GdW5jdGlvbihy
ZWFsbSwgc3RlcHMsCisgICAgICAgICAgICAvLyAgICAgcmVhbG0uW1tJbnRyaW5zaWNzXV0uW1sl
RnVuY3Rpb25Qcm90b3R5cGUlXV0pLiIKKyAgICAgICAgICAgIHZhciBuYW1lID0gY29uc3RydWN0
b3IucmhzLnZhbHVlOworICAgICAgICAgICAgdmFyIHZhbHVlID0gc2VsZltuYW1lXTsKKyAgICAg
ICAgICAgIGFzc2VydF9lcXVhbHModHlwZW9mIHZhbHVlLCAiZnVuY3Rpb24iLCAidHlwZSBvZiB2
YWx1ZSBpbiAiICsgbmFtZSArICIgcHJvcGVydHkgZGVzY3JpcHRvciIpOworICAgICAgICAgICAg
YXNzZXJ0X25vdF9lcXVhbHModmFsdWUsIHRoaXMuZ2V0X2ludGVyZmFjZV9vYmplY3QoKSwgIndy
b25nIHZhbHVlIGluICIgKyBuYW1lICsgIiBwcm9wZXJ0eSBkZXNjcmlwdG9yIik7CisgICAgICAg
ICAgICBhc3NlcnRfZXF1YWxzKE9iamVjdC5nZXRQcm90b3R5cGVPZih2YWx1ZSksIEZ1bmN0aW9u
LnByb3RvdHlwZSwgIndyb25nIHZhbHVlIGZvciAiICsgbmFtZSArICIncyBwcm90b3R5cGUiKTsK
KyAgICAgICAgfS5iaW5kKHRoaXMpLCB0aGlzLm5hbWUgKyAiIGludGVyZmFjZTogbmFtZWQgY29u
c3RydWN0b3Igb2JqZWN0Iik7CisKKyAgICAgICAgc3Vic2V0VGVzdEJ5S2V5KHRoaXMubmFtZSwg
dGVzdCwgZnVuY3Rpb24oKQorICAgICAgICB7CisgICAgICAgICAgICAvLyBUaGlzIGZ1bmN0aW9u
IHRlc3RzIFdlYklETCBhcyBvZiAyMDE5LTAxLTE0LgorCisgICAgICAgICAgICAvLyAiNy4gTGV0
IHByb3RvIGJlIHRoZSBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCBvZiBpbnRlcmZhY2UgSQor
ICAgICAgICAgICAgLy8gICAgIGluIHJlYWxtLgorICAgICAgICAgICAgLy8gIjguIFBlcmZvcm0g
ISBEZWZpbmVQcm9wZXJ0eU9yVGhyb3coRiwgInByb3RvdHlwZSIsCisgICAgICAgICAgICAvLyAg
ICAgUHJvcGVydHlEZXNjcmlwdG9yeworICAgICAgICAgICAgLy8gICAgICAgICBbW1ZhbHVlXV06
IHByb3RvLCBbW1dyaXRhYmxlXV06IGZhbHNlLAorICAgICAgICAgICAgLy8gICAgICAgICBbW0Vu
dW1lcmFibGVdXTogZmFsc2UsIFtbQ29uZmlndXJhYmxlXV06IGZhbHNlCisgICAgICAgICAgICAv
LyAgICAgfSkuIgorICAgICAgICAgICAgdmFyIG5hbWUgPSBjb25zdHJ1Y3Rvci5yaHMudmFsdWU7
CisgICAgICAgICAgICB2YXIgZXhwZWN0ZWQgPSB0aGlzLmdldF9pbnRlcmZhY2Vfb2JqZWN0KCku
cHJvdG90eXBlOworICAgICAgICAgICAgdmFyIGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yKHNlbGZbbmFtZV0sICJwcm90b3R5cGUiKTsKKyAgICAgICAgICAgIGFzc2VydF9l
cXVhbHMoZGVzYy52YWx1ZSwgZXhwZWN0ZWQsICJ3cm9uZyB2YWx1ZSBmb3IgIiArIG5hbWUgKyAi
LnByb3RvdHlwZSIpOworICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKGRlc2Mud3JpdGFibGUsICJw
cm90b3R5cGUgc2hvdWxkIG5vdCBiZSB3cml0YWJsZSIpOworICAgICAgICAgICAgYXNzZXJ0X2Zh
bHNlKGRlc2MuZW51bWVyYWJsZSwgInByb3RvdHlwZSBzaG91bGQgbm90IGJlIGVudW1lcmFibGUi
KTsKKyAgICAgICAgICAgIGFzc2VydF9mYWxzZShkZXNjLmNvbmZpZ3VyYWJsZSwgInByb3RvdHlw
ZSBzaG91bGQgbm90IGJlIGNvbmZpZ3VyYWJsZSIpOworICAgICAgICAgICAgYXNzZXJ0X2ZhbHNl
KCJnZXQiIGluIGRlc2MsICJwcm90b3R5cGUgc2hvdWxkIG5vdCBoYXZlIGEgZ2V0dGVyIik7Cisg
ICAgICAgICAgICBhc3NlcnRfZmFsc2UoInNldCIgaW4gZGVzYywgInByb3RvdHlwZSBzaG91bGQg
bm90IGhhdmUgYSBzZXR0ZXIiKTsKKyAgICAgICAgfS5iaW5kKHRoaXMpLCB0aGlzLm5hbWUgKyAi
IGludGVyZmFjZTogbmFtZWQgY29uc3RydWN0b3IgcHJvdG90eXBlIHByb3BlcnR5Iik7CisKKyAg
ICAgICAgc3Vic2V0VGVzdEJ5S2V5KHRoaXMubmFtZSwgdGVzdCwgZnVuY3Rpb24oKQorICAgICAg
ICB7CisgICAgICAgICAgICAvLyBUaGlzIGZ1bmN0aW9uIHRlc3RzIFdlYklETCBhcyBvZiAyMDE5
LTAxLTE0LgorCisgICAgICAgICAgICAvLyAiMy4gUGVyZm9ybSAhIFNldEZ1bmN0aW9uTmFtZShG
LCBpZCkuIgorICAgICAgICAgICAgdmFyIG5hbWUgPSBjb25zdHJ1Y3Rvci5yaHMudmFsdWU7Cisg
ICAgICAgICAgICB2YXIgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Ioc2Vs
ZltuYW1lXSwgIm5hbWUiKTsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZGVzYy52YWx1ZSwg
bmFtZSwgIndyb25nIHZhbHVlIGZvciAiICsgbmFtZSArICIubmFtZSIpOworICAgICAgICAgICAg
YXNzZXJ0X2ZhbHNlKGRlc2Mud3JpdGFibGUsICJuYW1lIHNob3VsZCBub3QgYmUgd3JpdGFibGUi
KTsKKyAgICAgICAgICAgIGFzc2VydF9mYWxzZShkZXNjLmVudW1lcmFibGUsICJuYW1lIHNob3Vs
ZCBub3QgYmUgZW51bWVyYWJsZSIpOworICAgICAgICAgICAgYXNzZXJ0X3RydWUoZGVzYy5jb25m
aWd1cmFibGUsICJuYW1lIHNob3VsZCBiZSBjb25maWd1cmFibGUiKTsKKyAgICAgICAgICAgIGFz
c2VydF9mYWxzZSgiZ2V0IiBpbiBkZXNjLCAibmFtZSBzaG91bGQgbm90IGhhdmUgYSBnZXR0ZXIi
KTsKKyAgICAgICAgICAgIGFzc2VydF9mYWxzZSgic2V0IiBpbiBkZXNjLCAibmFtZSBzaG91bGQg
bm90IGhhdmUgYSBzZXR0ZXIiKTsKKyAgICAgICAgfS5iaW5kKHRoaXMpLCB0aGlzLm5hbWUgKyAi
IGludGVyZmFjZTogbmFtZWQgY29uc3RydWN0b3IgbmFtZSIpOworCisgICAgICAgIHN1YnNldFRl
c3RCeUtleSh0aGlzLm5hbWUsIHRlc3QsIGZ1bmN0aW9uKCkKKyAgICAgICAgeworICAgICAgICAg
ICAgLy8gVGhpcyBmdW5jdGlvbiB0ZXN0cyBXZWJJREwgYXMgb2YgMjAxOS0wMS0xNC4KKworICAg
ICAgICAgICAgLy8gIjQuIEluaXRpYWxpemUgUyB0byB0aGUgZWZmZWN0aXZlIG92ZXJsb2FkIHNl
dCBmb3IgY29uc3RydWN0b3JzCisgICAgICAgICAgICAvLyAgICAgd2l0aCBpZGVudGlmaWVyIGlk
IG9uIGludGVyZmFjZSBJIGFuZCB3aXRoIGFyZ3VtZW50IGNvdW50IDAuCisgICAgICAgICAgICAv
LyAiNS4gTGV0IGxlbmd0aCBiZSB0aGUgbGVuZ3RoIG9mIHRoZSBzaG9ydGVzdCBhcmd1bWVudCBs
aXN0IG9mCisgICAgICAgICAgICAvLyAgICAgdGhlIGVudHJpZXMgaW4gUy4KKyAgICAgICAgICAg
IC8vICI2LiBQZXJmb3JtICEgU2V0RnVuY3Rpb25MZW5ndGgoRiwgbGVuZ3RoKS4iCisgICAgICAg
ICAgICB2YXIgbmFtZSA9IGNvbnN0cnVjdG9yLnJocy52YWx1ZTsKKyAgICAgICAgICAgIHZhciBk
ZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihzZWxmW25hbWVdLCAibGVuZ3Ro
Iik7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGRlc2MudmFsdWUsIG1pbl9sZW5ndGgsICJ3
cm9uZyB2YWx1ZSBmb3IgIiArIG5hbWUgKyAiLmxlbmd0aCIpOworICAgICAgICAgICAgYXNzZXJ0
X2ZhbHNlKGRlc2Mud3JpdGFibGUsICJsZW5ndGggc2hvdWxkIG5vdCBiZSB3cml0YWJsZSIpOwor
ICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKGRlc2MuZW51bWVyYWJsZSwgImxlbmd0aCBzaG91bGQg
bm90IGJlIGVudW1lcmFibGUiKTsKKyAgICAgICAgICAgIGFzc2VydF90cnVlKGRlc2MuY29uZmln
dXJhYmxlLCAibGVuZ3RoIHNob3VsZCBiZSBjb25maWd1cmFibGUiKTsKKyAgICAgICAgICAgIGFz
c2VydF9mYWxzZSgiZ2V0IiBpbiBkZXNjLCAibGVuZ3RoIHNob3VsZCBub3QgaGF2ZSBhIGdldHRl
ciIpOworICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKCJzZXQiIGluIGRlc2MsICJsZW5ndGggc2hv
dWxkIG5vdCBoYXZlIGEgc2V0dGVyIik7CisgICAgICAgIH0uYmluZCh0aGlzKSwgdGhpcy5uYW1l
ICsgIiBpbnRlcmZhY2U6IG5hbWVkIGNvbnN0cnVjdG9yIGxlbmd0aCIpOworCisgICAgICAgIHN1
YnNldFRlc3RCeUtleSh0aGlzLm5hbWUsIHRlc3QsIGZ1bmN0aW9uKCkKKyAgICAgICAgeworICAg
ICAgICAgICAgLy8gVGhpcyBmdW5jdGlvbiB0ZXN0cyBXZWJJREwgYXMgb2YgMjAxOS0wMS0xNC4K
KworICAgICAgICAgICAgLy8gIjEuIExldCBzdGVwcyBiZSB0aGUgZm9sbG93aW5nIHN0ZXBzOgor
ICAgICAgICAgICAgLy8gIiAgICAxLiBJZiBOZXdUYXJnZXQgaXMgdW5kZWZpbmVkLCB0aGVuIHRo
cm93IGEgVHlwZUVycm9yLiIKKyAgICAgICAgICAgIHZhciBuYW1lID0gY29uc3RydWN0b3Iucmhz
LnZhbHVlOworICAgICAgICAgICAgdmFyIGFyZ3MgPSBjb25zdHJ1Y3Rvci5hcmd1bWVudHMubWFw
KGZ1bmN0aW9uKGFyZykgeworICAgICAgICAgICAgICAgIHJldHVybiBjcmVhdGVfc3VpdGFibGVf
b2JqZWN0KGFyZy5pZGxUeXBlKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgYXNzZXJ0
X3Rocm93cyhuZXcgVHlwZUVycm9yKCksIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIHNl
bGZbbmFtZV0oLi4uYXJncyk7CisgICAgICAgICAgICB9LmJpbmQodGhpcykpOworICAgICAgICB9
LmJpbmQodGhpcyksIHRoaXMubmFtZSArICIgaW50ZXJmYWNlOiBuYW1lZCBjb25zdHJ1Y3RvciB3
aXRob3V0ICduZXcnIik7CisgICAgfQogCiAgICAgc3Vic2V0VGVzdEJ5S2V5KHRoaXMubmFtZSwg
dGVzdCwgZnVuY3Rpb24oKQogICAgIHsKQEAgLTE3MDMsMTEgKzE4NDcsMTAgQEAgSWRsSW50ZXJm
YWNlLnByb3RvdHlwZS50ZXN0X3NlbGYgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIH0KIAotICAgICAgICBhc3NlcnRfb3duX3Byb3BlcnR5KHNlbGYsIHRoaXMubmFt
ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2VsZiBkb2VzIG5vdCBoYXZlIG93biBw
cm9wZXJ0eSAiICsgZm9ybWF0X3ZhbHVlKHRoaXMubmFtZSkpOworICAgICAgICB0aGlzLmFzc2Vy
dF9pbnRlcmZhY2Vfb2JqZWN0X2V4aXN0cygpOwogCiAgICAgICAgIGlmICh0aGlzLmlzX2NhbGxi
YWNrKCkpIHsKLSAgICAgICAgICAgIGFzc2VydF9mYWxzZSgicHJvdG90eXBlIiBpbiBzZWxmW3Ro
aXMubmFtZV0sCisgICAgICAgICAgICBhc3NlcnRfZmFsc2UoInByb3RvdHlwZSIgaW4gdGhpcy5n
ZXRfaW50ZXJmYWNlX29iamVjdCgpLAogICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubmFt
ZSArICcgc2hvdWxkIG5vdCBoYXZlIGEgInByb3RvdHlwZSIgcHJvcGVydHknKTsKICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgfQpAQCAtMTcxOSw5ICsxODYyLDkgQEAgSWRsSW50ZXJmYWNl
LnByb3RvdHlwZS50ZXN0X3NlbGYgPSBmdW5jdGlvbigpCiAgICAgICAgIC8vIHByb3BlcnRpZXMg
dGhhdCBjb3JyZXNwb25kIHRvIHRoZSByZWd1bGFyIGF0dHJpYnV0ZXMgYW5kIHJlZ3VsYXIKICAg
ICAgICAgLy8gb3BlcmF0aW9ucyBkZWZpbmVkIG9uIHRoZSBpbnRlcmZhY2UsIGFuZCBpcyBkZXNj
cmliZWQgaW4gbW9yZSBkZXRhaWwKICAgICAgICAgLy8gaW4gc2VjdGlvbiA0LjUuNCBiZWxvdy4i
Ci0gICAgICAgIGFzc2VydF9vd25fcHJvcGVydHkoc2VsZlt0aGlzLm5hbWVdLCAicHJvdG90eXBl
IiwKKyAgICAgICAgYXNzZXJ0X293bl9wcm9wZXJ0eSh0aGlzLmdldF9pbnRlcmZhY2Vfb2JqZWN0
KCksICJwcm90b3R5cGUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICdpbnRlcmZhY2Ug
IicgKyB0aGlzLm5hbWUgKyAnIiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAicHJvdG90eXBl
IicpOwotICAgICAgICB2YXIgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Io
c2VsZlt0aGlzLm5hbWVdLCAicHJvdG90eXBlIik7CisgICAgICAgIHZhciBkZXNjID0gT2JqZWN0
LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0aGlzLmdldF9pbnRlcmZhY2Vfb2JqZWN0KCksICJw
cm90b3R5cGUiKTsKICAgICAgICAgYXNzZXJ0X2ZhbHNlKCJnZXQiIGluIGRlc2MsIHRoaXMubmFt
ZSArICIucHJvdG90eXBlIHNob3VsZCBub3QgaGF2ZSBhIGdldHRlciIpOwogICAgICAgICBhc3Nl
cnRfZmFsc2UoInNldCIgaW4gZGVzYywgdGhpcy5uYW1lICsgIi5wcm90b3R5cGUgc2hvdWxkIG5v
dCBoYXZlIGEgc2V0dGVyIik7CiAgICAgICAgIGFzc2VydF9mYWxzZShkZXNjLndyaXRhYmxlLCB0
aGlzLm5hbWUgKyAiLnByb3RvdHlwZSBzaG91bGQgbm90IGJlIHdyaXRhYmxlIik7CkBAIC0xNzU0
LDM4ICsxODk3LDM5IEBAIElkbEludGVyZmFjZS5wcm90b3R5cGUudGVzdF9zZWxmID0gZnVuY3Rp
b24oKQogICAgICAgICAvLyAgICAgb2JqZWN0ICVFcnJvclByb3RvdHlwZSUuIgogICAgICAgICAv
LwogICAgICAgICBpZiAodGhpcy5uYW1lID09PSAiV2luZG93IikgewotICAgICAgICAgICAgYXNz
ZXJ0X2NsYXNzX3N0cmluZyhPYmplY3QuZ2V0UHJvdG90eXBlT2Yoc2VsZlt0aGlzLm5hbWVdLnBy
b3RvdHlwZSksCisgICAgICAgICAgICBhc3NlcnRfY2xhc3Nfc3RyaW5nKE9iamVjdC5nZXRQcm90
b3R5cGVPZih0aGlzLmdldF9pbnRlcmZhY2Vfb2JqZWN0KCkucHJvdG90eXBlKSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgJ1dpbmRvd1Byb3BlcnRpZXMnLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAnQ2xhc3MgbmFtZSBmb3IgcHJvdG90eXBlIG9mIFdpbmRvdycg
KwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLnByb3RvdHlwZSBpcyBub3QgIldp
bmRvd1Byb3BlcnRpZXMiJyk7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICB2YXIgaW5o
ZXJpdF9pbnRlcmZhY2UsIGluaGVyaXRfaW50ZXJmYWNlX2hhc19pbnRlcmZhY2Vfb2JqZWN0Owor
ICAgICAgICAgICAgdmFyIGluaGVyaXRfaW50ZXJmYWNlLCBpbmhlcml0X2ludGVyZmFjZV9pbnRl
cmZhY2Vfb2JqZWN0OwogICAgICAgICAgICAgaWYgKHRoaXMuYmFzZSkgewogICAgICAgICAgICAg
ICAgIGluaGVyaXRfaW50ZXJmYWNlID0gdGhpcy5iYXNlOwotICAgICAgICAgICAgICAgIGluaGVy
aXRfaW50ZXJmYWNlX2hhc19pbnRlcmZhY2Vfb2JqZWN0ID0KLSAgICAgICAgICAgICAgICAgICAg
IXRoaXMuYXJyYXkKLSAgICAgICAgICAgICAgICAgICAgICAgICAubWVtYmVyc1tpbmhlcml0X2lu
dGVyZmFjZV0KLSAgICAgICAgICAgICAgICAgICAgICAgICAuaGFzX2V4dGVuZGVkX2F0dHJpYnV0
ZSgiTm9JbnRlcmZhY2VPYmplY3QiKTsKKyAgICAgICAgICAgICAgICB2YXIgcGFyZW50ID0gdGhp
cy5hcnJheS5tZW1iZXJzW2luaGVyaXRfaW50ZXJmYWNlXTsKKyAgICAgICAgICAgICAgICBpZiAo
IXBhcmVudC5oYXNfZXh0ZW5kZWRfYXR0cmlidXRlKCJOb0ludGVyZmFjZU9iamVjdCIpKSB7Cisg
ICAgICAgICAgICAgICAgICAgIHBhcmVudC5hc3NlcnRfaW50ZXJmYWNlX29iamVjdF9leGlzdHMo
KTsKKyAgICAgICAgICAgICAgICAgICAgaW5oZXJpdF9pbnRlcmZhY2VfaW50ZXJmYWNlX29iamVj
dCA9IHBhcmVudC5nZXRfaW50ZXJmYWNlX29iamVjdCgpOworICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5uYW1lID09PSAiRE9NRXhjZXB0aW9uIikgewogICAg
ICAgICAgICAgICAgIGluaGVyaXRfaW50ZXJmYWNlID0gJ0Vycm9yJzsKLSAgICAgICAgICAgICAg
ICBpbmhlcml0X2ludGVyZmFjZV9oYXNfaW50ZXJmYWNlX29iamVjdCA9IHRydWU7CisgICAgICAg
ICAgICAgICAgaW5oZXJpdF9pbnRlcmZhY2VfaW50ZXJmYWNlX29iamVjdCA9IHNlbGYuRXJyb3I7
CiAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgIGluaGVyaXRfaW50ZXJmYWNl
ID0gJ09iamVjdCc7Ci0gICAgICAgICAgICAgICAgaW5oZXJpdF9pbnRlcmZhY2VfaGFzX2ludGVy
ZmFjZV9vYmplY3QgPSB0cnVlOworICAgICAgICAgICAgICAgIGluaGVyaXRfaW50ZXJmYWNlX2lu
dGVyZmFjZV9vYmplY3QgPSBzZWxmLk9iamVjdDsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
IGlmIChpbmhlcml0X2ludGVyZmFjZV9oYXNfaW50ZXJmYWNlX29iamVjdCkgewotICAgICAgICAg
ICAgICAgIGFzc2VydF9vd25fcHJvcGVydHkoc2VsZiwgaW5oZXJpdF9pbnRlcmZhY2UsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2hvdWxkIGluaGVyaXQgZnJvbSAnICsg
aW5oZXJpdF9pbnRlcmZhY2UgKyAnLCBidXQgc2VsZiBoYXMgbm8gc3VjaCBwcm9wZXJ0eScpOwot
ICAgICAgICAgICAgICAgIGFzc2VydF9vd25fcHJvcGVydHkoc2VsZltpbmhlcml0X2ludGVyZmFj
ZV0sICdwcm90b3R5cGUnLAorICAgICAgICAgICAgaWYgKGluaGVyaXRfaW50ZXJmYWNlX2ludGVy
ZmFjZV9vYmplY3QpIHsKKyAgICAgICAgICAgICAgICBhc3NlcnRfbm90X2VxdWFscyhpbmhlcml0
X2ludGVyZmFjZV9pbnRlcmZhY2Vfb2JqZWN0LCB1bmRlZmluZWQsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgJ3Nob3VsZCBpbmhlcml0IGZyb20gJyArIGluaGVyaXRfaW50ZXJm
YWNlICsgJywgYnV0IHRoZXJlIGlzIG5vIHN1Y2ggcHJvcGVydHknKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnRfb3duX3Byb3BlcnR5KGluaGVyaXRfaW50ZXJmYWNlX2ludGVyZmFjZV9vYmplY3Qs
ICdwcm90b3R5cGUnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Nob3Vs
ZCBpbmhlcml0IGZyb20gJyArIGluaGVyaXRfaW50ZXJmYWNlICsgJywgYnV0IHRoYXQgb2JqZWN0
IGhhcyBubyAicHJvdG90eXBlIiBwcm9wZXJ0eScpOwotICAgICAgICAgICAgICAgIGFzc2VydF9l
cXVhbHMoT2JqZWN0LmdldFByb3RvdHlwZU9mKHNlbGZbdGhpcy5uYW1lXS5wcm90b3R5cGUpLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZltpbmhlcml0X2ludGVyZmFjZV0ucHJv
dG90eXBlLAorICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoT2JqZWN0LmdldFByb3RvdHlw
ZU9mKHRoaXMuZ2V0X2ludGVyZmFjZV9vYmplY3QoKS5wcm90b3R5cGUpLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaW5oZXJpdF9pbnRlcmZhY2VfaW50ZXJmYWNlX29iamVjdC5wcm90
b3R5cGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncHJvdG90eXBlIG9mICcgKyB0
aGlzLm5hbWUgKyAnLnByb3RvdHlwZSBpcyBub3QgJyArIGluaGVyaXRfaW50ZXJmYWNlICsgJy5w
cm90b3R5cGUnKTsKICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgLy8gV2Ug
Y2FuJ3QgdGVzdCB0aGF0IHdlIGdldCB0aGUgY29ycmVjdCBvYmplY3QsIGJlY2F1c2UgdGhpcyBp
cyB0aGUKICAgICAgICAgICAgICAgICAvLyBvbmx5IHdheSB0byBnZXQgb3VyIGhhbmRzIG9uIGl0
LiBXZSBvbmx5IHRlc3QgdGhhdCBpdHMgY2xhc3MKICAgICAgICAgICAgICAgICAvLyBzdHJpbmcs
IGF0IGxlYXN0LCBpcyBjb3JyZWN0LgotICAgICAgICAgICAgICAgIGFzc2VydF9jbGFzc19zdHJp
bmcoT2JqZWN0LmdldFByb3RvdHlwZU9mKHNlbGZbdGhpcy5uYW1lXS5wcm90b3R5cGUpLAorICAg
ICAgICAgICAgICAgIGFzc2VydF9jbGFzc19zdHJpbmcoT2JqZWN0LmdldFByb3RvdHlwZU9mKHRo
aXMuZ2V0X2ludGVyZmFjZV9vYmplY3QoKS5wcm90b3R5cGUpLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaW5oZXJpdF9pbnRlcmZhY2UgKyAnUHJvdG90eXBlJywKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdDbGFzcyBuYW1lIGZvciBwcm90b3R5cGUg
b2YgJyArIHRoaXMubmFtZSArCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAn
LnByb3RvdHlwZSBpcyBub3QgIicgKyBpbmhlcml0X2ludGVyZmFjZSArICdQcm90b3R5cGUiJyk7
CkBAIC0xNzkzLDIwICsxOTM3LDIwIEBAIElkbEludGVyZmFjZS5wcm90b3R5cGUudGVzdF9zZWxm
ID0gZnVuY3Rpb24oKQogICAgICAgICB9CiAKICAgICAgICAgLy8gIlRoZSBjbGFzcyBzdHJpbmcg
b2YgYW4gaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgaXMgdGhlCi0gICAgICAgIC8vIGNvbmNh
dGVuYXRpb24gb2YgdGhlIGludGVyZmFjZeKAmXMgaWRlbnRpZmllciBhbmQgdGhlIHN0cmluZwor
ICAgICAgICAvLyBjb25jYXRlbmF0aW9uIG9mIHRoZSBpbnRlcmZhY2XigJlzIHF1YWxpZmllZCBp
ZGVudGlmaWVyIGFuZCB0aGUgc3RyaW5nCiAgICAgICAgIC8vIOKAnFByb3RvdHlwZeKAnS4iCiAK
ICAgICAgICAgLy8gU2tpcCB0aGVzZSB0ZXN0cyBmb3Igbm93IGR1ZSB0byBhIHNwZWNpZmljYXRp
b24gaXNzdWUgYWJvdXQKICAgICAgICAgLy8gcHJvdG90eXBlIG5hbWUuCiAgICAgICAgIC8vIGh0
dHBzOi8vd3d3LnczLm9yZy9CdWdzL1B1YmxpYy9zaG93X2J1Zy5jZ2k/aWQ9MjgyNDQKIAotICAg
ICAgICAvLyBhc3NlcnRfY2xhc3Nfc3RyaW5nKHNlbGZbdGhpcy5uYW1lXS5wcm90b3R5cGUsIHRo
aXMubmFtZSArICJQcm90b3R5cGUiLAorICAgICAgICAvLyBhc3NlcnRfY2xhc3Nfc3RyaW5nKHRo
aXMuZ2V0X2ludGVyZmFjZV9vYmplY3QoKS5wcm90b3R5cGUsIHRoaXMuZ2V0X3F1YWxpZmllZF9u
YW1lKCkgKyAiUHJvdG90eXBlIiwKICAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAiY2xh
c3Mgc3RyaW5nIG9mICIgKyB0aGlzLm5hbWUgKyAiLnByb3RvdHlwZSIpOwogCiAgICAgICAgIC8v
IFN0cmluZygpIHNob3VsZCBlbmQgdXAgY2FsbGluZyB7fS50b1N0cmluZyBpZiBub3RoaW5nIGRl
ZmluZXMgYQogICAgICAgICAvLyBzdHJpbmdpZmllci4KICAgICAgICAgaWYgKCF0aGlzLmhhc19z
dHJpbmdpZmllcigpKSB7Ci0gICAgICAgICAgICAvLyBhc3NlcnRfZXF1YWxzKFN0cmluZyhzZWxm
W3RoaXMubmFtZV0ucHJvdG90eXBlKSwgIltvYmplY3QgIiArIHRoaXMubmFtZSArICJQcm90b3R5
cGVdIiwKKyAgICAgICAgICAgIC8vIGFzc2VydF9lcXVhbHMoU3RyaW5nKHRoaXMuZ2V0X2ludGVy
ZmFjZV9vYmplY3QoKS5wcm90b3R5cGUpLCAiW29iamVjdCAiICsgdGhpcy5nZXRfcXVhbGlmaWVk
X25hbWUoKSArICJQcm90b3R5cGVdIiwKICAgICAgICAgICAgIC8vICAgICAgICAgIlN0cmluZygi
ICsgdGhpcy5uYW1lICsgIi5wcm90b3R5cGUpIik7CiAgICAgICAgIH0KICAgICB9LmJpbmQodGhp
cyksIHRoaXMubmFtZSArICIgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2Yg
aW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QiKTsKQEAgLTE4MTgsNyArMTk2Miw3IEBAIElkbElu
dGVyZmFjZS5wcm90b3R5cGUudGVzdF9zZWxmID0gZnVuY3Rpb24oKQogICAgIC8vIHByb3RvdHlw
ZSBleG90aWMgb2JqZWN0LiIKICAgICAvLyBodHRwczovL2hleWNhbS5naXRodWIuaW8vd2ViaWRs
LyNpbnRlcmZhY2UtcHJvdG90eXBlLW9iamVjdAogICAgIGlmICh0aGlzLmlzX2dsb2JhbCgpKSB7
Ci0gICAgICAgIHRoaXMudGVzdF9pbW11dGFibGVfcHJvdG90eXBlKCJpbnRlcmZhY2UgcHJvdG90
eXBlIG9iamVjdCIsIHNlbGZbdGhpcy5uYW1lXS5wcm90b3R5cGUpOworICAgICAgICB0aGlzLnRl
c3RfaW1tdXRhYmxlX3Byb3RvdHlwZSgiaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QiLCB0aGlz
LmdldF9pbnRlcmZhY2Vfb2JqZWN0KCkucHJvdG90eXBlKTsKICAgICB9CiAKICAgICBzdWJzZXRU
ZXN0QnlLZXkodGhpcy5uYW1lLCB0ZXN0LCBmdW5jdGlvbigpCkBAIC0xODI3LDE2ICsxOTcxLDE1
IEBAIElkbEludGVyZmFjZS5wcm90b3R5cGUudGVzdF9zZWxmID0gZnVuY3Rpb24oKQogICAgICAg
ICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAgICAgYXNzZXJ0X293bl9wcm9wZXJ0eShz
ZWxmLCB0aGlzLm5hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgInNlbGYgZG9lcyBu
b3QgaGF2ZSBvd24gcHJvcGVydHkgIiArIGZvcm1hdF92YWx1ZSh0aGlzLm5hbWUpKTsKKyAgICAg
ICAgdGhpcy5hc3NlcnRfaW50ZXJmYWNlX29iamVjdF9leGlzdHMoKTsKIAogICAgICAgICBpZiAo
dGhpcy5pc19jYWxsYmFjaygpKSB7Ci0gICAgICAgICAgICBhc3NlcnRfZmFsc2UoInByb3RvdHlw
ZSIgaW4gc2VsZlt0aGlzLm5hbWVdLAorICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKCJwcm90b3R5
cGUiIGluIHRoaXMuZ2V0X2ludGVyZmFjZV9vYmplY3QoKSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICB0aGlzLm5hbWUgKyAnIHNob3VsZCBub3QgaGF2ZSBhICJwcm90b3R5cGUiIHByb3BlcnR5
Jyk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAotICAgICAgICBhc3NlcnRfb3du
X3Byb3BlcnR5KHNlbGZbdGhpcy5uYW1lXSwgInByb3RvdHlwZSIsCisgICAgICAgIGFzc2VydF9v
d25fcHJvcGVydHkodGhpcy5nZXRfaW50ZXJmYWNlX29iamVjdCgpLCAicHJvdG90eXBlIiwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAnaW50ZXJmYWNlICInICsgdGhpcy5uYW1lICsgJyIg
ZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgInByb3RvdHlwZSInKTsKIAogICAgICAgICAvLyAi
SWYgdGhlIFtOb0ludGVyZmFjZU9iamVjdF0gZXh0ZW5kZWQgYXR0cmlidXRlIHdhcyBub3Qgc3Bl
Y2lmaWVkIG9uCkBAIC0xODQ0LDE1ICsxOTg3LDE1IEBAIElkbEludGVyZmFjZS5wcm90b3R5cGUu
dGVzdF9zZWxmID0gZnVuY3Rpb24oKQogICAgICAgICAvLyBwcm9wZXJ0eSBuYW1lZCDigJxjb25z
dHJ1Y3RvcuKAnSB3aXRoIGF0dHJpYnV0ZXMgeyBbW1dyaXRhYmxlXV06IHRydWUsCiAgICAgICAg
IC8vIFtbRW51bWVyYWJsZV1dOiBmYWxzZSwgW1tDb25maWd1cmFibGVdXTogdHJ1ZSB9IHdob3Nl
IHZhbHVlIGlzIGEKICAgICAgICAgLy8gcmVmZXJlbmNlIHRvIHRoZSBpbnRlcmZhY2Ugb2JqZWN0
IGZvciB0aGUgaW50ZXJmYWNlLiIKLSAgICAgICAgYXNzZXJ0X293bl9wcm9wZXJ0eShzZWxmW3Ro
aXMubmFtZV0ucHJvdG90eXBlLCAiY29uc3RydWN0b3IiLAorICAgICAgICBhc3NlcnRfb3duX3By
b3BlcnR5KHRoaXMuZ2V0X2ludGVyZmFjZV9vYmplY3QoKS5wcm90b3R5cGUsICJjb25zdHJ1Y3Rv
ciIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5uYW1lICsgJy5wcm90b3R5cGUg
ZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgImNvbnN0cnVjdG9yIicpOwotICAgICAgICB2YXIg
ZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Ioc2VsZlt0aGlzLm5hbWVdLnBy
b3RvdHlwZSwgImNvbnN0cnVjdG9yIik7CisgICAgICAgIHZhciBkZXNjID0gT2JqZWN0LmdldE93
blByb3BlcnR5RGVzY3JpcHRvcih0aGlzLmdldF9pbnRlcmZhY2Vfb2JqZWN0KCkucHJvdG90eXBl
LCAiY29uc3RydWN0b3IiKTsKICAgICAgICAgYXNzZXJ0X2ZhbHNlKCJnZXQiIGluIGRlc2MsIHRo
aXMubmFtZSArICIucHJvdG90eXBlLmNvbnN0cnVjdG9yIHNob3VsZCBub3QgaGF2ZSBhIGdldHRl
ciIpOwogICAgICAgICBhc3NlcnRfZmFsc2UoInNldCIgaW4gZGVzYywgdGhpcy5uYW1lICsgIi5w
cm90b3R5cGUuY29uc3RydWN0b3Igc2hvdWxkIG5vdCBoYXZlIGEgc2V0dGVyIik7CiAgICAgICAg
IGFzc2VydF90cnVlKGRlc2Mud3JpdGFibGUsIHRoaXMubmFtZSArICIucHJvdG90eXBlLmNvbnN0
cnVjdG9yIHNob3VsZCBiZSB3cml0YWJsZSIpOwogICAgICAgICBhc3NlcnRfZmFsc2UoZGVzYy5l
bnVtZXJhYmxlLCB0aGlzLm5hbWUgKyAiLnByb3RvdHlwZS5jb25zdHJ1Y3RvciBzaG91bGQgbm90
IGJlIGVudW1lcmFibGUiKTsKICAgICAgICAgYXNzZXJ0X3RydWUoZGVzYy5jb25maWd1cmFibGUs
IHRoaXMubmFtZSArICIucHJvdG90eXBlLmNvbnN0cnVjdG9yIHNob3VsZCBiZSBjb25maWd1cmFi
bGUiKTsKLSAgICAgICAgYXNzZXJ0X2VxdWFscyhzZWxmW3RoaXMubmFtZV0ucHJvdG90eXBlLmNv
bnN0cnVjdG9yLCBzZWxmW3RoaXMubmFtZV0sCisgICAgICAgIGFzc2VydF9lcXVhbHModGhpcy5n
ZXRfaW50ZXJmYWNlX29iamVjdCgpLnByb3RvdHlwZS5jb25zdHJ1Y3RvciwgdGhpcy5nZXRfaW50
ZXJmYWNlX29iamVjdCgpLAogICAgICAgICAgICAgICAgICAgICAgIHRoaXMubmFtZSArICcucHJv
dG90eXBlLmNvbnN0cnVjdG9yIGlzIG5vdCB0aGUgc2FtZSBvYmplY3QgYXMgJyArIHRoaXMubmFt
ZSk7CiAgICAgfS5iaW5kKHRoaXMpLCB0aGlzLm5hbWUgKyAnIGludGVyZmFjZTogZXhpc3RlbmNl
IGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0XCdzICJjb25zdHJ1
Y3RvciIgcHJvcGVydHknKTsKIApAQCAtMTg2MywxNiArMjAwNiwxNSBAQCBJZGxJbnRlcmZhY2Uu
cHJvdG90eXBlLnRlc3Rfc2VsZiA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICAgfQogCi0gICAgICAgIGFzc2VydF9vd25fcHJvcGVydHkoc2VsZiwgdGhpcy5uYW1lLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3Bl
cnR5ICIgKyBmb3JtYXRfdmFsdWUodGhpcy5uYW1lKSk7CisgICAgICAgIHRoaXMuYXNzZXJ0X2lu
dGVyZmFjZV9vYmplY3RfZXhpc3RzKCk7CiAKICAgICAgICAgaWYgKHRoaXMuaXNfY2FsbGJhY2so
KSkgewotICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKCJwcm90b3R5cGUiIGluIHNlbGZbdGhpcy5u
YW1lXSwKKyAgICAgICAgICAgIGFzc2VydF9mYWxzZSgicHJvdG90eXBlIiBpbiB0aGlzLmdldF9p
bnRlcmZhY2Vfb2JqZWN0KCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5uYW1lICsg
JyBzaG91bGQgbm90IGhhdmUgYSAicHJvdG90eXBlIiBwcm9wZXJ0eScpOwogICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICB9CiAKLSAgICAgICAgYXNzZXJ0X293bl9wcm9wZXJ0eShzZWxmW3Ro
aXMubmFtZV0sICJwcm90b3R5cGUiLAorICAgICAgICBhc3NlcnRfb3duX3Byb3BlcnR5KHRoaXMu
Z2V0X2ludGVyZmFjZV9vYmplY3QoKSwgInByb3RvdHlwZSIsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgJ2ludGVyZmFjZSAiJyArIHRoaXMubmFtZSArICciIGRvZXMgbm90IGhhdmUgb3du
IHByb3BlcnR5ICJwcm90b3R5cGUiJyk7CiAKICAgICAgICAgLy8gSWYgdGhlIGludGVyZmFjZSBo
YXMgYW55IG1lbWJlciBkZWNsYXJlZCB3aXRoIHRoZSBbVW5zY29wYWJsZV0gZXh0ZW5kZWQKQEAg
LTE4ODEsNyArMjAyMyw3IEBAIElkbEludGVyZmFjZS5wcm90b3R5cGUudGVzdF9zZWxmID0gZnVu
Y3Rpb24oKQogICAgICAgICAvLyB7IFtbV3JpdGFibGVdXTogZmFsc2UsIFtbRW51bWVyYWJsZV1d
OiBmYWxzZSwgW1tDb25maWd1cmFibGVdXTogdHJ1ZSB9LAogICAgICAgICAvLyBhbmQgd2hvc2Ug
dmFsdWUgaXMgYW4gb2JqZWN0IGNyZWF0ZWQgYXMgZm9sbG93cy4uLgogICAgICAgICB2YXIgdW5z
Y29wYWJsZXMgPSB0aGlzLmdldF91bnNjb3BhYmxlcygpLm1hcChtID0+IG0ubmFtZSk7Ci0gICAg
ICAgIHZhciBwcm90byA9IHNlbGZbdGhpcy5uYW1lXS5wcm90b3R5cGU7CisgICAgICAgIHZhciBw
cm90byA9IHRoaXMuZ2V0X2ludGVyZmFjZV9vYmplY3QoKS5wcm90b3R5cGU7CiAgICAgICAgIGlm
ICh1bnNjb3BhYmxlcy5sZW5ndGggIT0gMCkgewogICAgICAgICAgICAgYXNzZXJ0X293bl9wcm9w
ZXJ0eSgKICAgICAgICAgICAgICAgICBwcm90bywgU3ltYm9sLnVuc2NvcGFibGVzLApAQCAtMTkx
MiwxNiArMjA1NCwxNCBAQCBJZGxJbnRlcmZhY2UucHJvdG90eXBlLnRlc3Rfc2VsZiA9IGZ1bmN0
aW9uKCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm5hbWUgKyAnLnBy
b3RvdHlwZVtTeW1ib2wudW5zY29wYWJsZXNdIGhhcyB1bmV4cGVjdGVkIHByb3BlcnR5ICInICsg
cHJvcCArICciJyk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Ioc2VsZlt0aGlz
Lm5hbWVdLnByb3RvdHlwZSwgU3ltYm9sLnVuc2NvcGFibGVzKSwKKyAgICAgICAgICAgIGFzc2Vy
dF9lcXVhbHMoT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0aGlzLmdldF9pbnRlcmZh
Y2Vfb2JqZWN0KCkucHJvdG90eXBlLCBTeW1ib2wudW5zY29wYWJsZXMpLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICB1bmRlZmluZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMu
bmFtZSArICcucHJvdG90eXBlIHNob3VsZCBub3QgaGF2ZSBAQHVuc2NvcGFibGVzJyk7CiAgICAg
ICAgIH0KICAgICB9LmJpbmQodGhpcyksIHRoaXMubmFtZSArICcgaW50ZXJmYWNlOiBleGlzdGVu
Y2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3RcJ3MgQEB1bnNj
b3BhYmxlcyBwcm9wZXJ0eScpOwogfTsKIAotLy9AfQogSWRsSW50ZXJmYWNlLnByb3RvdHlwZS50
ZXN0X2ltbXV0YWJsZV9wcm90b3R5cGUgPSBmdW5jdGlvbih0eXBlLCBvYmopCi0vL0B7CiB7CiAg
ICAgaWYgKHR5cGVvZiBPYmplY3Quc2V0UHJvdG90eXBlT2YgIT09ICJmdW5jdGlvbiIpIHsKICAg
ICAgICAgcmV0dXJuOwpAQCAtMjAyMyw5ICsyMTYzLDcgQEAgSWRsSW50ZXJmYWNlLnByb3RvdHlw
ZS50ZXN0X2ltbXV0YWJsZV9wcm90b3R5cGUgPSBmdW5jdGlvbih0eXBlLCBvYmopCiAgICAgICAg
ICJzaG91bGQgcmV0dXJuIHRydWUiKTsKIH07CiAKLS8vQH0KIElkbEludGVyZmFjZS5wcm90b3R5
cGUudGVzdF9tZW1iZXJfY29uc3QgPSBmdW5jdGlvbihtZW1iZXIpCi0vL0B7CiB7CiAgICAgaWYg
KCF0aGlzLmhhc19jb25zdGFudHMoKSkgewogICAgICAgICB0aHJvdyBuZXcgSWRsSGFybmVzc0Vy
cm9yKCJJbnRlcm5hbCBlcnJvcjogdGVzdF9tZW1iZXJfY29uc3QgY2FsbGVkIHdpdGhvdXQgYW55
IGNvbnN0YW50cyIpOwpAQCAtMjAzMywyMSArMjE3MSwyMCBAQCBJZGxJbnRlcmZhY2UucHJvdG90
eXBlLnRlc3RfbWVtYmVyX2NvbnN0ID0gZnVuY3Rpb24obWVtYmVyKQogCiAgICAgc3Vic2V0VGVz
dEJ5S2V5KHRoaXMubmFtZSwgdGVzdCwgZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgYXNzZXJ0
X293bl9wcm9wZXJ0eShzZWxmLCB0aGlzLm5hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgInNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIiArIGZvcm1hdF92YWx1ZSh0aGlz
Lm5hbWUpKTsKKyAgICAgICAgdGhpcy5hc3NlcnRfaW50ZXJmYWNlX29iamVjdF9leGlzdHMoKTsK
IAogICAgICAgICAvLyAiRm9yIGVhY2ggY29uc3RhbnQgZGVmaW5lZCBvbiBhbiBpbnRlcmZhY2Ug
QSwgdGhlcmUgbXVzdCBiZQogICAgICAgICAvLyBhIGNvcnJlc3BvbmRpbmcgcHJvcGVydHkgb24g
dGhlIGludGVyZmFjZSBvYmplY3QsIGlmIGl0CiAgICAgICAgIC8vIGV4aXN0cy4iCi0gICAgICAg
IGFzc2VydF9vd25fcHJvcGVydHkoc2VsZlt0aGlzLm5hbWVdLCBtZW1iZXIubmFtZSk7CisgICAg
ICAgIGFzc2VydF9vd25fcHJvcGVydHkodGhpcy5nZXRfaW50ZXJmYWNlX29iamVjdCgpLCBtZW1i
ZXIubmFtZSk7CiAgICAgICAgIC8vICJUaGUgdmFsdWUgb2YgdGhlIHByb3BlcnR5IGlzIHRoYXQg
d2hpY2ggaXMgb2J0YWluZWQgYnkKICAgICAgICAgLy8gY29udmVydGluZyB0aGUgY29uc3RhbnTi
gJlzIElETCB2YWx1ZSB0byBhbiBFQ01BU2NyaXB0CiAgICAgICAgIC8vIHZhbHVlLiIKLSAgICAg
ICAgYXNzZXJ0X2VxdWFscyhzZWxmW3RoaXMubmFtZV1bbWVtYmVyLm5hbWVdLCBjb25zdFZhbHVl
KG1lbWJlci52YWx1ZSksCisgICAgICAgIGFzc2VydF9lcXVhbHModGhpcy5nZXRfaW50ZXJmYWNl
X29iamVjdCgpW21lbWJlci5uYW1lXSwgY29uc3RWYWx1ZShtZW1iZXIudmFsdWUpLAogICAgICAg
ICAgICAgICAgICAgICAgICJwcm9wZXJ0eSBoYXMgd3JvbmcgdmFsdWUiKTsKICAgICAgICAgLy8g
IlRoZSBwcm9wZXJ0eSBoYXMgYXR0cmlidXRlcyB7IFtbV3JpdGFibGVdXTogZmFsc2UsCiAgICAg
ICAgIC8vIFtbRW51bWVyYWJsZV1dOiB0cnVlLCBbW0NvbmZpZ3VyYWJsZV1dOiBmYWxzZSB9LiIK
LSAgICAgICAgdmFyIGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHNlbGZb
dGhpcy5uYW1lXSwgbWVtYmVyLm5hbWUpOworICAgICAgICB2YXIgZGVzYyA9IE9iamVjdC5nZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3IodGhpcy5nZXRfaW50ZXJmYWNlX29iamVjdCgpLCBtZW1iZXIu
bmFtZSk7CiAgICAgICAgIGFzc2VydF9mYWxzZSgiZ2V0IiBpbiBkZXNjLCAicHJvcGVydHkgc2hv
dWxkIG5vdCBoYXZlIGEgZ2V0dGVyIik7CiAgICAgICAgIGFzc2VydF9mYWxzZSgic2V0IiBpbiBk
ZXNjLCAicHJvcGVydHkgc2hvdWxkIG5vdCBoYXZlIGEgc2V0dGVyIik7CiAgICAgICAgIGFzc2Vy
dF9mYWxzZShkZXNjLndyaXRhYmxlLCAicHJvcGVydHkgc2hvdWxkIG5vdCBiZSB3cml0YWJsZSIp
OwpAQCAtMjA1OSwyMiArMjE5NiwyMSBAQCBJZGxJbnRlcmZhY2UucHJvdG90eXBlLnRlc3RfbWVt
YmVyX2NvbnN0ID0gZnVuY3Rpb24obWVtYmVyKQogICAgIC8vIGV4aXN0IG9uIHRoZSBpbnRlcmZh
Y2UgcHJvdG90eXBlIG9iamVjdC4iCiAgICAgc3Vic2V0VGVzdEJ5S2V5KHRoaXMubmFtZSwgdGVz
dCwgZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgYXNzZXJ0X293bl9wcm9wZXJ0eShzZWxmLCB0
aGlzLm5hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgInNlbGYgZG9lcyBub3QgaGF2
ZSBvd24gcHJvcGVydHkgIiArIGZvcm1hdF92YWx1ZSh0aGlzLm5hbWUpKTsKKyAgICAgICAgdGhp
cy5hc3NlcnRfaW50ZXJmYWNlX29iamVjdF9leGlzdHMoKTsKIAogICAgICAgICBpZiAodGhpcy5p
c19jYWxsYmFjaygpKSB7Ci0gICAgICAgICAgICBhc3NlcnRfZmFsc2UoInByb3RvdHlwZSIgaW4g
c2VsZlt0aGlzLm5hbWVdLAorICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKCJwcm90b3R5cGUiIGlu
IHRoaXMuZ2V0X2ludGVyZmFjZV9vYmplY3QoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICB0
aGlzLm5hbWUgKyAnIHNob3VsZCBub3QgaGF2ZSBhICJwcm90b3R5cGUiIHByb3BlcnR5Jyk7CiAg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAotICAgICAgICBhc3NlcnRfb3duX3Byb3Bl
cnR5KHNlbGZbdGhpcy5uYW1lXSwgInByb3RvdHlwZSIsCisgICAgICAgIGFzc2VydF9vd25fcHJv
cGVydHkodGhpcy5nZXRfaW50ZXJmYWNlX29iamVjdCgpLCAicHJvdG90eXBlIiwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAnaW50ZXJmYWNlICInICsgdGhpcy5uYW1lICsgJyIgZG9lcyBu
b3QgaGF2ZSBvd24gcHJvcGVydHkgInByb3RvdHlwZSInKTsKIAotICAgICAgICBhc3NlcnRfb3du
X3Byb3BlcnR5KHNlbGZbdGhpcy5uYW1lXS5wcm90b3R5cGUsIG1lbWJlci5uYW1lKTsKLSAgICAg
ICAgYXNzZXJ0X2VxdWFscyhzZWxmW3RoaXMubmFtZV0ucHJvdG90eXBlW21lbWJlci5uYW1lXSwg
Y29uc3RWYWx1ZShtZW1iZXIudmFsdWUpLAorICAgICAgICBhc3NlcnRfb3duX3Byb3BlcnR5KHRo
aXMuZ2V0X2ludGVyZmFjZV9vYmplY3QoKS5wcm90b3R5cGUsIG1lbWJlci5uYW1lKTsKKyAgICAg
ICAgYXNzZXJ0X2VxdWFscyh0aGlzLmdldF9pbnRlcmZhY2Vfb2JqZWN0KCkucHJvdG90eXBlW21l
bWJlci5uYW1lXSwgY29uc3RWYWx1ZShtZW1iZXIudmFsdWUpLAogICAgICAgICAgICAgICAgICAg
ICAgICJwcm9wZXJ0eSBoYXMgd3JvbmcgdmFsdWUiKTsKLSAgICAgICAgdmFyIGRlc2MgPSBPYmpl
Y3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHNlbGZbdGhpcy5uYW1lXSwgbWVtYmVyLm5hbWUp
OworICAgICAgICB2YXIgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodGhp
cy5nZXRfaW50ZXJmYWNlX29iamVjdCgpLCBtZW1iZXIubmFtZSk7CiAgICAgICAgIGFzc2VydF9m
YWxzZSgiZ2V0IiBpbiBkZXNjLCAicHJvcGVydHkgc2hvdWxkIG5vdCBoYXZlIGEgZ2V0dGVyIik7
CiAgICAgICAgIGFzc2VydF9mYWxzZSgic2V0IiBpbiBkZXNjLCAicHJvcGVydHkgc2hvdWxkIG5v
dCBoYXZlIGEgc2V0dGVyIik7CiAgICAgICAgIGFzc2VydF9mYWxzZShkZXNjLndyaXRhYmxlLCAi
cHJvcGVydHkgc2hvdWxkIG5vdCBiZSB3cml0YWJsZSIpOwpAQCAtMjA4NCw5ICsyMjIwLDcgQEAg
SWRsSW50ZXJmYWNlLnByb3RvdHlwZS50ZXN0X21lbWJlcl9jb25zdCA9IGZ1bmN0aW9uKG1lbWJl
cikKIH07CiAKIAotLy9AfQogSWRsSW50ZXJmYWNlLnByb3RvdHlwZS50ZXN0X21lbWJlcl9hdHRy
aWJ1dGUgPSBmdW5jdGlvbihtZW1iZXIpCi0vL0B7CiAgIHsKICAgICBpZiAoIXNob3VsZFJ1blN1
YlRlc3QodGhpcy5uYW1lKSkgewogICAgICAgICByZXR1cm47CkBAIC0yMDk5LDEzICsyMjMzLDEy
IEBAIElkbEludGVyZmFjZS5wcm90b3R5cGUudGVzdF9tZW1iZXJfYXR0cmlidXRlID0gZnVuY3Rp
b24obWVtYmVyKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAgICAgYXNz
ZXJ0X293bl9wcm9wZXJ0eShzZWxmLCB0aGlzLm5hbWUsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgInNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIiArIGZvcm1hdF92YWx1ZSh0
aGlzLm5hbWUpKTsKLSAgICAgICAgYXNzZXJ0X293bl9wcm9wZXJ0eShzZWxmW3RoaXMubmFtZV0s
ICJwcm90b3R5cGUiLAorICAgICAgICB0aGlzLmFzc2VydF9pbnRlcmZhY2Vfb2JqZWN0X2V4aXN0
cygpOworICAgICAgICBhc3NlcnRfb3duX3Byb3BlcnR5KHRoaXMuZ2V0X2ludGVyZmFjZV9vYmpl
Y3QoKSwgInByb3RvdHlwZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ludGVyZmFj
ZSAiJyArIHRoaXMubmFtZSArICciIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJwcm90b3R5
cGUiJyk7CiAKLSAgICAgICAgaWYgKG1lbWJlclsic3RhdGljIl0pIHsKLSAgICAgICAgICAgIGFz
c2VydF9vd25fcHJvcGVydHkoc2VsZlt0aGlzLm5hbWVdLCBtZW1iZXIubmFtZSwKKyAgICAgICAg
aWYgKG1lbWJlci5zcGVjaWFsID09PSAic3RhdGljIikgeworICAgICAgICAgICAgYXNzZXJ0X293
bl9wcm9wZXJ0eSh0aGlzLmdldF9pbnRlcmZhY2Vfb2JqZWN0KCksIG1lbWJlci5uYW1lLAogICAg
ICAgICAgICAgICAgICJUaGUgaW50ZXJmYWNlIG9iamVjdCBtdXN0IGhhdmUgYSBwcm9wZXJ0eSAi
ICsKICAgICAgICAgICAgICAgICBmb3JtYXRfdmFsdWUobWVtYmVyLm5hbWUpKTsKICAgICAgICAg
ICAgIGFfdGVzdC5kb25lKCk7CkBAIC0yMTE4LDcgKzIyNTEsNyBAQCBJZGxJbnRlcmZhY2UucHJv
dG90eXBlLnRlc3RfbWVtYmVyX2F0dHJpYnV0ZSA9IGZ1bmN0aW9uKG1lbWJlcikKICAgICAgICAg
ICAgIGFzc2VydF9vd25fcHJvcGVydHkoc2VsZiwgbWVtYmVyLm5hbWUsCiAgICAgICAgICAgICAg
ICAgIlRoZSBnbG9iYWwgb2JqZWN0IG11c3QgaGF2ZSBhIHByb3BlcnR5ICIgKwogICAgICAgICAg
ICAgICAgIGZvcm1hdF92YWx1ZShtZW1iZXIubmFtZSkpOwotICAgICAgICAgICAgYXNzZXJ0X2Zh
bHNlKG1lbWJlci5uYW1lIGluIHNlbGZbdGhpcy5uYW1lXS5wcm90b3R5cGUsCisgICAgICAgICAg
ICBhc3NlcnRfZmFsc2UobWVtYmVyLm5hbWUgaW4gdGhpcy5nZXRfaW50ZXJmYWNlX29iamVjdCgp
LnByb3RvdHlwZSwKICAgICAgICAgICAgICAgICAiVGhlIHByb3RvdHlwZSBvYmplY3Qgc2hvdWxk
IG5vdCBoYXZlIGEgcHJvcGVydHkgIiArCiAgICAgICAgICAgICAgICAgZm9ybWF0X3ZhbHVlKG1l
bWJlci5uYW1lKSk7CiAKQEAgLTIxNDYsNDIgKzIyNzksNDAgQEAgSWRsSW50ZXJmYWNlLnByb3Rv
dHlwZS50ZXN0X21lbWJlcl9hdHRyaWJ1dGUgPSBmdW5jdGlvbihtZW1iZXIpCiAgICAgICAgICAg
ICAvLyBzaW5jZSBpdCB3aWxsIGNhbGwgZG9uZSgpIG9uIGFfdGVzdC4KICAgICAgICAgICAgIHRo
aXMuZG9faW50ZXJmYWNlX2F0dHJpYnV0ZV9hc3NlcnRzKHNlbGYsIG1lbWJlciwgYV90ZXN0KTsK
ICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGFzc2VydF90cnVlKG1lbWJlci5uYW1lIGlu
IHNlbGZbdGhpcy5uYW1lXS5wcm90b3R5cGUsCisgICAgICAgICAgICBhc3NlcnRfdHJ1ZShtZW1i
ZXIubmFtZSBpbiB0aGlzLmdldF9pbnRlcmZhY2Vfb2JqZWN0KCkucHJvdG90eXBlLAogICAgICAg
ICAgICAgICAgICJUaGUgcHJvdG90eXBlIG9iamVjdCBtdXN0IGhhdmUgYSBwcm9wZXJ0eSAiICsK
ICAgICAgICAgICAgICAgICBmb3JtYXRfdmFsdWUobWVtYmVyLm5hbWUpKTsKIAogICAgICAgICAg
ICAgaWYgKCFtZW1iZXIuaGFzX2V4dGVuZGVkX2F0dHJpYnV0ZSgiTGVuaWVudFRoaXMiKSkgewog
ICAgICAgICAgICAgICAgIGlmIChtZW1iZXIuaWRsVHlwZS5nZW5lcmljICE9PSAiUHJvbWlzZSIp
IHsKICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X3Rocm93cyhuZXcgVHlwZUVycm9yKCksIGZ1
bmN0aW9uKCkgewotICAgICAgICAgICAgICAgICAgICAgICAgc2VsZlt0aGlzLm5hbWVdLnByb3Rv
dHlwZVttZW1iZXIubmFtZV07CisgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmdldF9pbnRl
cmZhY2Vfb2JqZWN0KCkucHJvdG90eXBlW21lbWJlci5uYW1lXTsKICAgICAgICAgICAgICAgICAg
ICAgfS5iaW5kKHRoaXMpLCAiZ2V0dGluZyBwcm9wZXJ0eSBvbiBwcm90b3R5cGUgb2JqZWN0IG11
c3QgdGhyb3cgVHlwZUVycm9yIik7CiAgICAgICAgICAgICAgICAgICAgIC8vIGRvX2ludGVyZmFj
ZV9hdHRyaWJ1dGVfYXNzZXJ0cyBtdXN0IGJlIHRoZSBsYXN0IHRoaW5nIHdlCiAgICAgICAgICAg
ICAgICAgICAgIC8vIGRvLCBzaW5jZSBpdCB3aWxsIGNhbGwgZG9uZSgpIG9uIGFfdGVzdC4KLSAg
ICAgICAgICAgICAgICAgICAgdGhpcy5kb19pbnRlcmZhY2VfYXR0cmlidXRlX2Fzc2VydHMoc2Vs
Zlt0aGlzLm5hbWVdLnByb3RvdHlwZSwgbWVtYmVyLCBhX3Rlc3QpOworICAgICAgICAgICAgICAg
ICAgICB0aGlzLmRvX2ludGVyZmFjZV9hdHRyaWJ1dGVfYXNzZXJ0cyh0aGlzLmdldF9pbnRlcmZh
Y2Vfb2JqZWN0KCkucHJvdG90eXBlLCBtZW1iZXIsIGFfdGVzdCk7CiAgICAgICAgICAgICAgICAg
fSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgcHJvbWlzZV9yZWplY3RzKGFfdGVzdCwgbmV3
IFR5cGVFcnJvcigpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZlt0
aGlzLm5hbWVdLnByb3RvdHlwZVttZW1iZXIubmFtZV0pCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB0aGlzLmdldF9pbnRlcmZhY2Vfb2JqZWN0KCkucHJvdG90eXBlW21lbWJl
ci5uYW1lXSkKICAgICAgICAgICAgICAgICAgICAgICAgIC50aGVuKGZ1bmN0aW9uKCkgewogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGRvX2ludGVyZmFjZV9hdHRyaWJ1dGVfYXNzZXJ0
cyBtdXN0IGJlIHRoZSBsYXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhpbmcg
d2UgZG8sIHNpbmNlIGl0IHdpbGwgY2FsbCBkb25lKCkgb24gYV90ZXN0LgotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHRoaXMuZG9faW50ZXJmYWNlX2F0dHJpYnV0ZV9hc3NlcnRzKHNlbGZb
dGhpcy5uYW1lXS5wcm90b3R5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5k
b19pbnRlcmZhY2VfYXR0cmlidXRlX2Fzc2VydHModGhpcy5nZXRfaW50ZXJmYWNlX29iamVjdCgp
LnByb3RvdHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBtZW1iZXIsIGFfdGVzdCk7CiAgICAgICAgICAgICAgICAgICAg
ICAgICB9LmJpbmQodGhpcykpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0gZWxz
ZSB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzZWxmW3RoaXMubmFtZV0ucHJvdG90
eXBlW21lbWJlci5uYW1lXSwgdW5kZWZpbmVkLAorICAgICAgICAgICAgICAgIGFzc2VydF9lcXVh
bHModGhpcy5nZXRfaW50ZXJmYWNlX29iamVjdCgpLnByb3RvdHlwZVttZW1iZXIubmFtZV0sIHVu
ZGVmaW5lZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJnZXR0aW5nIHByb3BlcnR5
IG9uIHByb3RvdHlwZSBvYmplY3QgbXVzdCByZXR1cm4gdW5kZWZpbmVkIik7CiAgICAgICAgICAg
ICAgIC8vIGRvX2ludGVyZmFjZV9hdHRyaWJ1dGVfYXNzZXJ0cyBtdXN0IGJlIHRoZSBsYXN0IHRo
aW5nIHdlIGRvLAogICAgICAgICAgICAgICAvLyBzaW5jZSBpdCB3aWxsIGNhbGwgZG9uZSgpIG9u
IGFfdGVzdC4KLSAgICAgICAgICAgICAgdGhpcy5kb19pbnRlcmZhY2VfYXR0cmlidXRlX2Fzc2Vy
dHMoc2VsZlt0aGlzLm5hbWVdLnByb3RvdHlwZSwgbWVtYmVyLCBhX3Rlc3QpOworICAgICAgICAg
ICAgICB0aGlzLmRvX2ludGVyZmFjZV9hdHRyaWJ1dGVfYXNzZXJ0cyh0aGlzLmdldF9pbnRlcmZh
Y2Vfb2JqZWN0KCkucHJvdG90eXBlLCBtZW1iZXIsIGFfdGVzdCk7CiAgICAgICAgICAgICB9CiAg
ICAgICAgIH0KICAgICB9LmJpbmQodGhpcykpOwogfTsKIAotLy9AfQogSWRsSW50ZXJmYWNlLnBy
b3RvdHlwZS50ZXN0X21lbWJlcl9vcGVyYXRpb24gPSBmdW5jdGlvbihtZW1iZXIpCi0vL0B7CiB7
CiAgICAgaWYgKCFzaG91bGRSdW5TdWJUZXN0KHRoaXMubmFtZSkpIHsKICAgICAgICAgcmV0dXJu
OwpAQCAtMjIwMCwxNyArMjMzMSwxNiBAQCBJZGxJbnRlcmZhY2UucHJvdG90eXBlLnRlc3RfbWVt
YmVyX29wZXJhdGlvbiA9IGZ1bmN0aW9uKG1lbWJlcikKICAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICAgfQogCi0gICAgICAgIGFzc2VydF9vd25fcHJvcGVydHkoc2VsZiwgdGhpcy5uYW1lLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3Bl
cnR5ICIgKyBmb3JtYXRfdmFsdWUodGhpcy5uYW1lKSk7CisgICAgICAgIHRoaXMuYXNzZXJ0X2lu
dGVyZmFjZV9vYmplY3RfZXhpc3RzKCk7CiAKICAgICAgICAgaWYgKHRoaXMuaXNfY2FsbGJhY2so
KSkgewotICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKCJwcm90b3R5cGUiIGluIHNlbGZbdGhpcy5u
YW1lXSwKKyAgICAgICAgICAgIGFzc2VydF9mYWxzZSgicHJvdG90eXBlIiBpbiB0aGlzLmdldF9p
bnRlcmZhY2Vfb2JqZWN0KCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5uYW1lICsg
JyBzaG91bGQgbm90IGhhdmUgYSAicHJvdG90eXBlIiBwcm9wZXJ0eScpOwogICAgICAgICAgICAg
YV90ZXN0LmRvbmUoKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAg
IGFzc2VydF9vd25fcHJvcGVydHkoc2VsZlt0aGlzLm5hbWVdLCAicHJvdG90eXBlIiwKKyAgICAg
ICAgYXNzZXJ0X293bl9wcm9wZXJ0eSh0aGlzLmdldF9pbnRlcmZhY2Vfb2JqZWN0KCksICJwcm90
b3R5cGUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICdpbnRlcmZhY2UgIicgKyB0aGlz
Lm5hbWUgKyAnIiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAicHJvdG90eXBlIicpOwogCiAg
ICAgICAgIC8vICJGb3IgZWFjaCB1bmlxdWUgaWRlbnRpZmllciBvZiBhbiBleHBvc2VkIG9wZXJh
dGlvbiBkZWZpbmVkIG9uIHRoZQpAQCAtMjIyNCwxMCArMjM1NCwxMCBAQCBJZGxJbnRlcmZhY2Uu
cHJvdG90eXBlLnRlc3RfbWVtYmVyX29wZXJhdGlvbiA9IGZ1bmN0aW9uKG1lbWJlcikKICAgICAg
ICAgdmFyIG1lbWJlckhvbGRlck9iamVjdDsKICAgICAgICAgLy8gIiogSWYgdGhlIG9wZXJhdGlv
biBpcyBzdGF0aWMsIHRoZW4gdGhlIHByb3BlcnR5IGV4aXN0cyBvbiB0aGUKICAgICAgICAgLy8g
ICAgaW50ZXJmYWNlIG9iamVjdC4iCi0gICAgICAgIGlmIChtZW1iZXJbInN0YXRpYyJdKSB7Ci0g
ICAgICAgICAgICBhc3NlcnRfb3duX3Byb3BlcnR5KHNlbGZbdGhpcy5uYW1lXSwgbWVtYmVyLm5h
bWUsCisgICAgICAgIGlmIChtZW1iZXIuc3BlY2lhbCA9PT0gInN0YXRpYyIpIHsKKyAgICAgICAg
ICAgIGFzc2VydF9vd25fcHJvcGVydHkodGhpcy5nZXRfaW50ZXJmYWNlX29iamVjdCgpLCBtZW1i
ZXIubmFtZSwKICAgICAgICAgICAgICAgICAgICAgImludGVyZmFjZSBvYmplY3QgbWlzc2luZyBz
dGF0aWMgb3BlcmF0aW9uIik7Ci0gICAgICAgICAgICBtZW1iZXJIb2xkZXJPYmplY3QgPSBzZWxm
W3RoaXMubmFtZV07CisgICAgICAgICAgICBtZW1iZXJIb2xkZXJPYmplY3QgPSB0aGlzLmdldF9p
bnRlcmZhY2Vfb2JqZWN0KCk7CiAgICAgICAgIC8vICIqIE90aGVyd2lzZSwgWy4uLl0gaWYgdGhl
IGludGVyZmFjZSB3YXMgZGVjbGFyZWQgd2l0aCB0aGUgW0dsb2JhbF0KICAgICAgICAgLy8gICAg
ZXh0ZW5kZWQgYXR0cmlidXRlLCB0aGVuIHRoZSBwcm9wZXJ0eSBleGlzdHMKICAgICAgICAgLy8g
ICAgb24gZXZlcnkgb2JqZWN0IHRoYXQgaW1wbGVtZW50cyB0aGUgaW50ZXJmYWNlLiIKQEAgLTIy
MzgsOSArMjM2OCw5IEBAIElkbEludGVyZmFjZS5wcm90b3R5cGUudGVzdF9tZW1iZXJfb3BlcmF0
aW9uID0gZnVuY3Rpb24obWVtYmVyKQogICAgICAgICAvLyAiKiBPdGhlcndpc2UsIHRoZSBwcm9w
ZXJ0eSBleGlzdHMgc29sZWx5IG9uIHRoZSBpbnRlcmZhY2XigJlzCiAgICAgICAgIC8vICAgIGlu
dGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0LiIKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAg
IGFzc2VydF9vd25fcHJvcGVydHkoc2VsZlt0aGlzLm5hbWVdLnByb3RvdHlwZSwgbWVtYmVyLm5h
bWUsCisgICAgICAgICAgICBhc3NlcnRfb3duX3Byb3BlcnR5KHRoaXMuZ2V0X2ludGVyZmFjZV9v
YmplY3QoKS5wcm90b3R5cGUsIG1lbWJlci5uYW1lLAogICAgICAgICAgICAgICAgICAgICAiaW50
ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgbWlzc2luZyBub24tc3RhdGljIG9wZXJhdGlvbiIpOwot
ICAgICAgICAgICAgbWVtYmVySG9sZGVyT2JqZWN0ID0gc2VsZlt0aGlzLm5hbWVdLnByb3RvdHlw
ZTsKKyAgICAgICAgICAgIG1lbWJlckhvbGRlck9iamVjdCA9IHRoaXMuZ2V0X2ludGVyZmFjZV9v
YmplY3QoKS5wcm90b3R5cGU7CiAgICAgICAgIH0KICAgICAgICAgdGhpcy5kb19tZW1iZXJfdW5z
Y29wYWJsZV9hc3NlcnRzKG1lbWJlcik7CiAgICAgICAgIHRoaXMuZG9fbWVtYmVyX29wZXJhdGlv
bl9hc3NlcnRzKG1lbWJlckhvbGRlck9iamVjdCwgbWVtYmVyLCBhX3Rlc3QpOwpAQCAtMjI1NSw3
ICsyMzg1LDcgQEAgSWRsSW50ZXJmYWNlLnByb3RvdHlwZS5kb19tZW1iZXJfdW5zY29wYWJsZV9h
c3NlcnRzID0gZnVuY3Rpb24obWVtYmVyKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAg
dmFyIHVuc2NvcGFibGVzID0gc2VsZlt0aGlzLm5hbWVdLnByb3RvdHlwZVtTeW1ib2wudW5zY29w
YWJsZXNdOworICAgIHZhciB1bnNjb3BhYmxlcyA9IHRoaXMuZ2V0X2ludGVyZmFjZV9vYmplY3Qo
KS5wcm90b3R5cGVbU3ltYm9sLnVuc2NvcGFibGVzXTsKICAgICB2YXIgcHJvcCA9IG1lbWJlci5u
YW1lOwogICAgIHZhciBwcm9wRGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Io
dW5zY29wYWJsZXMsIHByb3ApOwogICAgIGFzc2VydF9lcXVhbHModHlwZW9mIHByb3BEZXNjLCAi
b2JqZWN0IiwKQEAgLTIyNzQsOSArMjQwNCw3IEBAIElkbEludGVyZmFjZS5wcm90b3R5cGUuZG9f
bWVtYmVyX3Vuc2NvcGFibGVfYXNzZXJ0cyA9IGZ1bmN0aW9uKG1lbWJlcikKICAgICAgICAgICAg
ICAgICAgIHRoaXMubmFtZSArICcucHJvdG90eXBlW1N5bWJvbC51bnNjb3BhYmxlc10uJyArIHBy
b3AgKyAnIG11c3QgaGF2ZSB0aGUgdmFsdWUgYHRydWVgJyk7CiB9OwogCi0vL0B9CiBJZGxJbnRl
cmZhY2UucHJvdG90eXBlLmRvX21lbWJlcl9vcGVyYXRpb25fYXNzZXJ0cyA9IGZ1bmN0aW9uKG1l
bWJlckhvbGRlck9iamVjdCwgbWVtYmVyLCBhX3Rlc3QpCi0vL0B7CiB7CiAgICAgdmFyIGRvbmUg
PSBhX3Rlc3QuZG9uZS5iaW5kKGFfdGVzdCk7CiAgICAgdmFyIG9wZXJhdGlvblVuZm9yZ2VhYmxl
ID0gbWVtYmVyLmlzVW5mb3JnZWFibGU7CkBAIC0yMzE5LDcgKzI0NDcsNyBAQCBJZGxJbnRlcmZh
Y2UucHJvdG90eXBlLmRvX21lbWJlcl9vcGVyYXRpb25fYXNzZXJ0cyA9IGZ1bmN0aW9uKG1lbWJl
ckhvbGRlck9iamVjdAogICAgIC8vIGNoZWNrIGZvciBnbG9iYWxzLCBzaW5jZSBvdGhlcndpc2Ug
d2UnbGwgaW52b2tlIHdpbmRvdy5jbG9zZSgpLiAgQW5kIHdlCiAgICAgLy8gaGF2ZSB0byBza2lw
IHRoaXMgdGVzdCBmb3IgYW55dGhpbmcgdGhhdCBvbiB0aGUgcHJvdG8gY2hhaW4gb2YgInNlbGYi
LAogICAgIC8vIHNpbmNlIHRoYXQgZG9lcyBpbiBmYWN0IGhhdmUgaW1wbGljaXQtdGhpcyBiZWhh
dmlvci4KLSAgICBpZiAoIW1lbWJlclsic3RhdGljIl0pIHsKKyAgICBpZiAobWVtYmVyLnNwZWNp
YWwgIT09ICJzdGF0aWMiKSB7CiAgICAgICAgIHZhciBjYjsKICAgICAgICAgaWYgKCF0aGlzLmlz
X2dsb2JhbCgpICYmCiAgICAgICAgICAgICBtZW1iZXJIb2xkZXJPYmplY3RbbWVtYmVyLm5hbWVd
ICE9IHNlbGZbbWVtYmVyLm5hbWVdKQpAQCAtMjM0MywyNCArMjQ3MSw3IEBAIElkbEludGVyZmFj
ZS5wcm90b3R5cGUuZG9fbWVtYmVyX29wZXJhdGlvbl9hc3NlcnRzID0gZnVuY3Rpb24obWVtYmVy
SG9sZGVyT2JqZWN0CiAgICAgfQogfQogCi0vL0B9Ci1JZGxJbnRlcmZhY2UucHJvdG90eXBlLmFk
ZF9pdGVyYWJsZV9tZW1iZXJzID0gZnVuY3Rpb24obWVtYmVyKQotLy9AewotewotICAgIHRoaXMu
bWVtYmVycy5wdXNoKG5ldyBJZGxJbnRlcmZhY2VNZW1iZXIoCi0gICAgICAgIHsgdHlwZTogIm9w
ZXJhdGlvbiIsIG5hbWU6ICJlbnRyaWVzIiwgaWRsVHlwZTogIml0ZXJhdG9yIiwgYXJndW1lbnRz
OiBbXX0pKTsKLSAgICB0aGlzLm1lbWJlcnMucHVzaChuZXcgSWRsSW50ZXJmYWNlTWVtYmVyKAot
ICAgICAgICB7IHR5cGU6ICJvcGVyYXRpb24iLCBuYW1lOiAia2V5cyIsIGlkbFR5cGU6ICJpdGVy
YXRvciIsIGFyZ3VtZW50czogW119KSk7Ci0gICAgdGhpcy5tZW1iZXJzLnB1c2gobmV3IElkbElu
dGVyZmFjZU1lbWJlcigKLSAgICAgICAgeyB0eXBlOiAib3BlcmF0aW9uIiwgbmFtZTogInZhbHVl
cyIsIGlkbFR5cGU6ICJpdGVyYXRvciIsIGFyZ3VtZW50czogW119KSk7Ci0gICAgdGhpcy5tZW1i
ZXJzLnB1c2gobmV3IElkbEludGVyZmFjZU1lbWJlcigKLSAgICAgICAgeyB0eXBlOiAib3BlcmF0
aW9uIiwgbmFtZTogImZvckVhY2giLCBpZGxUeXBlOiAidm9pZCIsCi0gICAgICAgICAgYXJndW1l
bnRzOgotICAgICAgICAgIFt7IG5hbWU6ICJjYWxsYmFjayIsIGlkbFR5cGU6IHtpZGxUeXBlOiAi
ZnVuY3Rpb24ifX0sCi0gICAgICAgICAgIHsgbmFtZTogInRoaXNWYWx1ZSIsIGlkbFR5cGU6IHtp
ZGxUeXBlOiAiYW55In0sIG9wdGlvbmFsOiB0cnVlfV19KSk7Ci19OwotCi1JZGxJbnRlcmZhY2Uu
cHJvdG90eXBlLnRlc3RfdG9fanNvbl9vcGVyYXRpb24gPSBmdW5jdGlvbihtZW1iZXJIb2xkZXJP
YmplY3QsIG1lbWJlcikgeworSWRsSW50ZXJmYWNlLnByb3RvdHlwZS50ZXN0X3RvX2pzb25fb3Bl
cmF0aW9uID0gZnVuY3Rpb24oZGVzYywgbWVtYmVySG9sZGVyT2JqZWN0LCBtZW1iZXIpIHsKICAg
ICB2YXIgaW5zdGFuY2VOYW1lID0gbWVtYmVySG9sZGVyT2JqZWN0ICYmIG1lbWJlckhvbGRlck9i
amVjdC5jb25zdHJ1Y3Rvci5uYW1lCiAgICAgICAgIHx8IG1lbWJlci5uYW1lICsgIiBvYmplY3Qi
OwogICAgIGlmIChtZW1iZXIuaGFzX2V4dGVuZGVkX2F0dHJpYnV0ZSgiRGVmYXVsdCIpKSB7CkBA
IC0yMzc2LDQ2ICsyNDg3LDQzIEBAIElkbEludGVyZmFjZS5wcm90b3R5cGUudGVzdF90b19qc29u
X29wZXJhdGlvbiA9IGZ1bmN0aW9uKG1lbWJlckhvbGRlck9iamVjdCwgbWVtCiAgICAgICAgICAg
ICAgICAgdGhpcy5hcnJheS5hc3NlcnRfdHlwZV9pcyhqc29uW2tdLCB0eXBlKTsKICAgICAgICAg
ICAgICAgICBkZWxldGUganNvbltrXTsKICAgICAgICAgICAgIH0sIHRoaXMpOwotICAgICAgICB9
LmJpbmQodGhpcyksICJUZXN0IGRlZmF1bHQgdG9KU09OIG9wZXJhdGlvbiBvZiAiICsgaW5zdGFu
Y2VOYW1lKTsKKyAgICAgICAgfS5iaW5kKHRoaXMpLCB0aGlzLm5hbWUgKyAiIGludGVyZmFjZTog
ZGVmYXVsdCB0b0pTT04gb3BlcmF0aW9uIG9uICIgKyBkZXNjKTsKICAgICB9IGVsc2UgewogICAg
ICAgICBzdWJzZXRUZXN0QnlLZXkodGhpcy5uYW1lLCB0ZXN0LCBmdW5jdGlvbigpIHsKICAgICAg
ICAgICAgIGFzc2VydF90cnVlKHRoaXMuYXJyYXkuaXNfanNvbl90eXBlKG1lbWJlci5pZGxUeXBl
KSwgSlNPTi5zdHJpbmdpZnkobWVtYmVyLmlkbFR5cGUpICsgIiBpcyBub3QgYW4gYXBwcm9wcmlh
dGUgcmV0dXJuIHZhbHVlIGZvciB0aGUgdG9KU09OIG9wZXJhdGlvbiBvZiAiICsgaW5zdGFuY2VO
YW1lKTsKICAgICAgICAgICAgIHRoaXMuYXJyYXkuYXNzZXJ0X3R5cGVfaXMobWVtYmVySG9sZGVy
T2JqZWN0LnRvSlNPTigpLCBtZW1iZXIuaWRsVHlwZSk7Ci0gICAgICAgIH0uYmluZCh0aGlzKSwg
IlRlc3QgdG9KU09OIG9wZXJhdGlvbiBvZiAiICsgaW5zdGFuY2VOYW1lKTsKKyAgICAgICAgfS5i
aW5kKHRoaXMpLCB0aGlzLm5hbWUgKyAiIGludGVyZmFjZTogdG9KU09OIG9wZXJhdGlvbiBvbiAi
ICsgZGVzYyk7CiAgICAgfQogfTsKIAotLy9AfQogSWRsSW50ZXJmYWNlLnByb3RvdHlwZS50ZXN0
X21lbWJlcl9pdGVyYWJsZSA9IGZ1bmN0aW9uKG1lbWJlcikKLS8vQHsKIHsKLSAgICB2YXIgaW50
ZXJmYWNlTmFtZSA9IHRoaXMubmFtZTsKLSAgICB2YXIgaXNQYWlySXRlcmF0b3IgPSBtZW1iZXIu
aWRsVHlwZS5sZW5ndGggPT09IDI7CiAgICAgc3Vic2V0VGVzdEJ5S2V5KHRoaXMubmFtZSwgdGVz
dCwgZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgdmFyIGRlc2NyaXB0b3IgPSBPYmplY3QuZ2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKHNlbGZbaW50ZXJmYWNlTmFtZV0ucHJvdG90eXBlLCBTeW1i
b2wuaXRlcmF0b3IpOwotICAgICAgICBhc3NlcnRfdHJ1ZShkZXNjcmlwdG9yLndyaXRhYmxlLCAi
cHJvcGVydHkgc2hvdWxkIGJlIHdyaXRhYmxlIik7Ci0gICAgICAgIGFzc2VydF90cnVlKGRlc2Ny
aXB0b3IuY29uZmlndXJhYmxlLCAicHJvcGVydHkgc2hvdWxkIGJlIGNvbmZpZ3VyYWJsZSIpOwot
ICAgICAgICBhc3NlcnRfZmFsc2UoZGVzY3JpcHRvci5lbnVtZXJhYmxlLCAicHJvcGVydHkgc2hv
dWxkIG5vdCBiZSBlbnVtZXJhYmxlIik7Ci0gICAgICAgIGFzc2VydF9lcXVhbHMoc2VsZltpbnRl
cmZhY2VOYW1lXS5wcm90b3R5cGVbU3ltYm9sLml0ZXJhdG9yXS5uYW1lLCBpc1BhaXJJdGVyYXRv
ciA/ICJlbnRyaWVzIiA6ICJ2YWx1ZXMiLCAiQEBpdGVyYXRvciBmdW5jdGlvbiBkb2VzIG5vdCBo
YXZlIHRoZSByaWdodCBuYW1lIik7Ci0gICAgfSwgIlRlc3RpbmcgU3ltYm9sLml0ZXJhdG9yIHBy
b3BlcnR5IG9mIGl0ZXJhYmxlIGludGVyZmFjZSAiICsgaW50ZXJmYWNlTmFtZSk7Ci0KLSAgICBp
ZiAoaXNQYWlySXRlcmF0b3IpIHsKLSAgICAgICAgc3Vic2V0VGVzdEJ5S2V5KHRoaXMubmFtZSwg
dGVzdCwgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNlbGZbaW50ZXJm
YWNlTmFtZV0ucHJvdG90eXBlW1N5bWJvbC5pdGVyYXRvcl0sIHNlbGZbaW50ZXJmYWNlTmFtZV0u
cHJvdG90eXBlWyJlbnRyaWVzIl0sICJlbnRyaWVzIG1ldGhvZCBpcyBub3QgdGhlIHNhbWUgYXMg
QEBpdGVyYXRvciIpOwotICAgICAgICB9LCAiVGVzdGluZyBwYWlyIGl0ZXJhYmxlIGludGVyZmFj
ZSAiICsgaW50ZXJmYWNlTmFtZSk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgc3Vic2V0VGVzdEJ5
S2V5KHRoaXMubmFtZSwgdGVzdCwgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBbImVudHJpZXMi
LCAia2V5cyIsICJ2YWx1ZXMiLCAiZm9yRWFjaCIsIFN5bWJvbC5JdGVyYXRvcl0uZm9yRWFjaChm
dW5jdGlvbihwcm9wZXJ0eSkgewotICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2VsZltp
bnRlcmZhY2VOYW1lXS5wcm90b3R5cGVbcHJvcGVydHldLCBBcnJheS5wcm90b3R5cGVbcHJvcGVy
dHldLCBwcm9wZXJ0eSArICIgZnVuY3Rpb24gaXMgbm90IHRoZSBzYW1lIGFzIEFycmF5IG9uZSIp
OwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0sICJUZXN0aW5nIHZhbHVlIGl0ZXJhYmxlIGlu
dGVyZmFjZSAiICsgaW50ZXJmYWNlTmFtZSk7Ci0gICAgfQorICAgICAgICB2YXIgaXNQYWlySXRl
cmF0b3IgPSBtZW1iZXIuaWRsVHlwZS5sZW5ndGggPT09IDI7CisgICAgICAgIHZhciBwcm90byA9
IHRoaXMuZ2V0X2ludGVyZmFjZV9vYmplY3QoKS5wcm90b3R5cGU7CisgICAgICAgIHZhciBkZXNj
cmlwdG9yID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihwcm90bywgU3ltYm9sLml0
ZXJhdG9yKTsKKworICAgICAgICBhc3NlcnRfdHJ1ZShkZXNjcmlwdG9yLndyaXRhYmxlLCAiQEBp
dGVyYXRvciBwcm9wZXJ0eSBzaG91bGQgYmUgd3JpdGFibGUiKTsKKyAgICAgICAgYXNzZXJ0X3Ry
dWUoZGVzY3JpcHRvci5jb25maWd1cmFibGUsICJAQGl0ZXJhdG9yIHByb3BlcnR5IHNob3VsZCBi
ZSBjb25maWd1cmFibGUiKTsKKyAgICAgICAgYXNzZXJ0X2ZhbHNlKGRlc2NyaXB0b3IuZW51bWVy
YWJsZSwgIkBAaXRlcmF0b3IgcHJvcGVydHkgc2hvdWxkIG5vdCBiZSBlbnVtZXJhYmxlIik7Cisg
ICAgICAgIGFzc2VydF9lcXVhbHModHlwZW9mIGRlc2NyaXB0b3IudmFsdWUsICJmdW5jdGlvbiIs
ICJAQGl0ZXJhdG9yIHByb3BlcnR5IHNob3VsZCBiZSBhIGZ1bmN0aW9uIik7CisgICAgICAgIGFz
c2VydF9lcXVhbHMoZGVzY3JpcHRvci52YWx1ZS5sZW5ndGgsIDAsICJAQGl0ZXJhdG9yIGZ1bmN0
aW9uIG9iamVjdCBsZW5ndGggc2hvdWxkIGJlIDAiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhk
ZXNjcmlwdG9yLnZhbHVlLm5hbWUsIGlzUGFpckl0ZXJhdG9yID8gImVudHJpZXMiIDogInZhbHVl
cyIsICJAQGl0ZXJhdG9yIGZ1bmN0aW9uIG9iamVjdCBzaG91bGQgaGF2ZSB0aGUgcmlnaHQgbmFt
ZSIpOworCisgICAgICAgIGlmIChpc1BhaXJJdGVyYXRvcikgeworICAgICAgICAgICAgYXNzZXJ0
X2VxdWFscyhwcm90b1siZW50cmllcyJdLCBwcm90b1tTeW1ib2wuaXRlcmF0b3JdLCAiZW50cmll
cyBtZXRob2Qgc2hvdWxkIGJlIHRoZSBzYW1lIGFzIEBAaXRlcmF0b3IgbWV0aG9kIik7CisgICAg
ICAgIH0gZWxzZSB7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHByb3RvW1N5bWJvbC5pdGVy
YXRvcl0sIEFycmF5LnByb3RvdHlwZVtTeW1ib2wuaXRlcmF0b3JdLCAiQEBpdGVyYXRvciBtZXRo
b2Qgc2hvdWxkIGJlIHRoZSBzYW1lIGFzIEFycmF5IHByb3RvdHlwZSdzIik7CisgICAgICAgICAg
ICBbImVudHJpZXMiLCAia2V5cyIsICJ2YWx1ZXMiLCAiZm9yRWFjaCIsIFN5bWJvbC5pdGVyYXRv
cl0uZm9yRWFjaChmdW5jdGlvbihwcm9wZXJ0eSkgeworICAgICAgICAgICAgICAgIHZhciBwcm9w
ZXJ0eU5hbWUgPSBwcm9wZXJ0eSA9PT0gU3ltYm9sLml0ZXJhdG9yID8gIkBAaXRlcmF0b3IiIDog
cHJvcGVydHk7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhwcm90b1twcm9wZXJ0eV0s
IEFycmF5LnByb3RvdHlwZVtwcm9wZXJ0eV0sIHByb3BlcnR5TmFtZSArICIgbWV0aG9kIHNob3Vs
ZCBiZSB0aGUgc2FtZSBhcyBBcnJheSBwcm90b3R5cGUncyIpOworICAgICAgICAgICAgfS5iaW5k
KHRoaXMpKTsKKyAgICAgICAgfQorICAgIH0uYmluZCh0aGlzKSwgdGhpcy5uYW1lICsgIiBpbnRl
cmZhY2U6IGl0ZXJhYmxlPCIgKyBtZW1iZXIuaWRsVHlwZS5tYXAoZnVuY3Rpb24odCkgeyByZXR1
cm4gdC5pZGxUeXBlOyB9KS5qb2luKCIsICIpICsgIj4iKTsKIH07CiAKLS8vQH0KIElkbEludGVy
ZmFjZS5wcm90b3R5cGUudGVzdF9tZW1iZXJfc3RyaW5naWZpZXIgPSBmdW5jdGlvbihtZW1iZXIp
Ci0vL0B7CiB7CiAgICAgc3Vic2V0VGVzdEJ5S2V5KHRoaXMubmFtZSwgdGVzdCwgZnVuY3Rpb24o
KQogICAgIHsKQEAgLTI0MjMsMjEgKzI1MzEsMjAgQEAgSWRsSW50ZXJmYWNlLnByb3RvdHlwZS50
ZXN0X21lbWJlcl9zdHJpbmdpZmllciA9IGZ1bmN0aW9uKG1lbWJlcikKICAgICAgICAgICAgIHJl
dHVybjsKICAgICAgICAgfQogCi0gICAgICAgIGFzc2VydF9vd25fcHJvcGVydHkoc2VsZiwgdGhp
cy5uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzZWxmIGRvZXMgbm90IGhhdmUg
b3duIHByb3BlcnR5ICIgKyBmb3JtYXRfdmFsdWUodGhpcy5uYW1lKSk7CisgICAgICAgIHRoaXMu
YXNzZXJ0X2ludGVyZmFjZV9vYmplY3RfZXhpc3RzKCk7CiAKICAgICAgICAgaWYgKHRoaXMuaXNf
Y2FsbGJhY2soKSkgewotICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKCJwcm90b3R5cGUiIGluIHNl
bGZbdGhpcy5uYW1lXSwKKyAgICAgICAgICAgIGFzc2VydF9mYWxzZSgicHJvdG90eXBlIiBpbiB0
aGlzLmdldF9pbnRlcmZhY2Vfb2JqZWN0KCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhp
cy5uYW1lICsgJyBzaG91bGQgbm90IGhhdmUgYSAicHJvdG90eXBlIiBwcm9wZXJ0eScpOwogICAg
ICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAgICAgYXNzZXJ0X293bl9wcm9wZXJ0
eShzZWxmW3RoaXMubmFtZV0sICJwcm90b3R5cGUiLAorICAgICAgICBhc3NlcnRfb3duX3Byb3Bl
cnR5KHRoaXMuZ2V0X2ludGVyZmFjZV9vYmplY3QoKSwgInByb3RvdHlwZSIsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgJ2ludGVyZmFjZSAiJyArIHRoaXMubmFtZSArICciIGRvZXMgbm90
IGhhdmUgb3duIHByb3BlcnR5ICJwcm90b3R5cGUiJyk7CiAKICAgICAgICAgLy8gIi4gLiAuIHRo
ZSBwcm9wZXJ0eSBleGlzdHMgb24gdGhlIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0LiIKLSAg
ICAgICAgdmFyIGludGVyZmFjZVByb3RvdHlwZU9iamVjdCA9IHNlbGZbdGhpcy5uYW1lXS5wcm90
b3R5cGU7Ci0gICAgICAgIGFzc2VydF9vd25fcHJvcGVydHkoc2VsZlt0aGlzLm5hbWVdLnByb3Rv
dHlwZSwgInRvU3RyaW5nIiwKKyAgICAgICAgdmFyIGludGVyZmFjZVByb3RvdHlwZU9iamVjdCA9
IHRoaXMuZ2V0X2ludGVyZmFjZV9vYmplY3QoKS5wcm90b3R5cGU7CisgICAgICAgIGFzc2VydF9v
d25fcHJvcGVydHkoaW50ZXJmYWNlUHJvdG90eXBlT2JqZWN0LCAidG9TdHJpbmciLAogICAgICAg
ICAgICAgICAgICJpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCBtaXNzaW5nIG5vbi1zdGF0aWMg
b3BlcmF0aW9uIik7CiAKICAgICAgICAgdmFyIHN0cmluZ2lmaWVyVW5mb3JnZWFibGUgPSBtZW1i
ZXIuaXNVbmZvcmdlYWJsZTsKQEAgLTI0NjMsNyArMjU3MCw3IEBAIElkbEludGVyZmFjZS5wcm90
b3R5cGUudGVzdF9tZW1iZXJfc3RyaW5naWZpZXIgPSBmdW5jdGlvbihtZW1iZXIpCiAKICAgICAg
ICAgLy8gIkxldCBPIGJlIHRoZSByZXN1bHQgb2YgY2FsbGluZyBUb09iamVjdCBvbiB0aGUgdGhp
cyB2YWx1ZS4iCiAgICAgICAgIGFzc2VydF90aHJvd3MobmV3IFR5cGVFcnJvcigpLCBmdW5jdGlv
bigpIHsKLSAgICAgICAgICAgIHNlbGZbdGhpcy5uYW1lXS5wcm90b3R5cGUudG9TdHJpbmcuYXBw
bHkobnVsbCwgW10pOworICAgICAgICAgICAgaW50ZXJmYWNlUHJvdG90eXBlT2JqZWN0LnRvU3Ry
aW5nLmFwcGx5KG51bGwsIFtdKTsKICAgICAgICAgfSwgImNhbGxpbmcgc3RyaW5naWZpZXIgd2l0
aCB0aGlzID0gbnVsbCBkaWRuJ3QgdGhyb3cgVHlwZUVycm9yIik7CiAKICAgICAgICAgLy8gIklm
IE8gaXMgbm90IGFuIG9iamVjdCB0aGF0IGltcGxlbWVudHMgdGhlIGludGVyZmFjZSBvbiB3aGlj
aCB0aGUKQEAgLTI0NzIsMjggKzI1NzksMTMgQEAgSWRsSW50ZXJmYWNlLnByb3RvdHlwZS50ZXN0
X21lbWJlcl9zdHJpbmdpZmllciA9IGZ1bmN0aW9uKG1lbWJlcikKICAgICAgICAgLy8gVE9ETzog
VGVzdCBhIHBsYXRmb3JtIG9iamVjdCB0aGF0IGltcGxlbWVudHMgc29tZSBvdGhlcgogICAgICAg
ICAvLyBpbnRlcmZhY2UuICAoSGF2ZSB0byBiZSBzdXJlIHRvIGdldCBpbmhlcml0YW5jZSByaWdo
dC4pCiAgICAgICAgIGFzc2VydF90aHJvd3MobmV3IFR5cGVFcnJvcigpLCBmdW5jdGlvbigpIHsK
LSAgICAgICAgICAgIHNlbGZbdGhpcy5uYW1lXS5wcm90b3R5cGUudG9TdHJpbmcuYXBwbHkoe30s
IFtdKTsKKyAgICAgICAgICAgIGludGVyZmFjZVByb3RvdHlwZU9iamVjdC50b1N0cmluZy5hcHBs
eSh7fSwgW10pOwogICAgICAgICB9LCAiY2FsbGluZyBzdHJpbmdpZmllciB3aXRoIHRoaXMgPSB7
fSBkaWRuJ3QgdGhyb3cgVHlwZUVycm9yIik7CiAgICAgfS5iaW5kKHRoaXMpLCB0aGlzLm5hbWUg
KyAiIGludGVyZmFjZTogc3RyaW5naWZpZXIiKTsKIH07CiAKLS8vQH0KIElkbEludGVyZmFjZS5w
cm90b3R5cGUudGVzdF9tZW1iZXJzID0gZnVuY3Rpb24oKQotLy9AewogewotICAgIGZvciAodmFy
IGkgPSAwOyBpIDwgdGhpcy5tZW1iZXJzLmxlbmd0aDsgaSsrKQotICAgIHsKLSAgICAgICAgdmFy
IG1lbWJlciA9IHRoaXMubWVtYmVyc1tpXTsKLSAgICAgICAgc3dpdGNoIChtZW1iZXIudHlwZSkg
ewotICAgICAgICBjYXNlICJpdGVyYWJsZSI6Ci0gICAgICAgICAgICB0aGlzLmFkZF9pdGVyYWJs
ZV9tZW1iZXJzKG1lbWJlcik7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgLy8gVE9ETzog
YWRkIHNldGxpa2UgYW5kIG1hcGxpa2UgaGFuZGxpbmcuCi0gICAgICAgIGRlZmF1bHQ6Ci0gICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgIH0KLQogICAgIGZvciAodmFyIGkgPSAwOyBp
IDwgdGhpcy5tZW1iZXJzLmxlbmd0aDsgaSsrKQogICAgIHsKICAgICAgICAgdmFyIG1lbWJlciA9
IHRoaXMubWVtYmVyc1tpXTsKQEAgLTI1MDQsMTAgKzI1OTYsMTAgQEAgSWRsSW50ZXJmYWNlLnBy
b3RvdHlwZS50ZXN0X21lbWJlcnMgPSBmdW5jdGlvbigpCiAgICAgICAgIGlmICghZXhwb3NlZF9p
bihleHBvc3VyZV9zZXQobWVtYmVyLCB0aGlzLmV4cG9zdXJlU2V0KSkpIHsKICAgICAgICAgICAg
IHN1YnNldFRlc3RCeUtleSh0aGlzLm5hbWUsIHRlc3QsIGZ1bmN0aW9uKCkgewogICAgICAgICAg
ICAgICAgIC8vIEl0J3Mgbm90IGV4cG9zZWQsIHNvIHdlIHNob3VsZG4ndCBmaW5kIGl0IGFueXdo
ZXJlLgotICAgICAgICAgICAgICAgIGFzc2VydF9mYWxzZShtZW1iZXIubmFtZSBpbiBzZWxmW3Ro
aXMubmFtZV0sCisgICAgICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKG1lbWJlci5uYW1lIGluIHRo
aXMuZ2V0X2ludGVyZmFjZV9vYmplY3QoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IlRoZSBpbnRlcmZhY2Ugb2JqZWN0IG11c3Qgbm90IGhhdmUgYSBwcm9wZXJ0eSAiICsKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0X3ZhbHVlKG1lbWJlci5uYW1lKSk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKG1lbWJlci5uYW1lIGluIHNlbGZbdGhpcy5uYW1lXS5w
cm90b3R5cGUsCisgICAgICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKG1lbWJlci5uYW1lIGluIHRo
aXMuZ2V0X2ludGVyZmFjZV9vYmplY3QoKS5wcm90b3R5cGUsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJUaGUgcHJvdG90eXBlIG9iamVjdCBtdXN0IG5vdCBoYXZlIGEgcHJvcGVydHkg
IiArCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdF92YWx1ZShtZW1iZXIubmFt
ZSkpOwogICAgICAgICAgICAgfS5iaW5kKHRoaXMpLCB0aGlzLm5hbWUgKyAiIGludGVyZmFjZTog
bWVtYmVyICIgKyBtZW1iZXIubmFtZSk7CkBAIC0yNTI2LDcgKzI2MTgsNyBAQCBJZGxJbnRlcmZh
Y2UucHJvdG90eXBlLnRlc3RfbWVtYmVycyA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgICB0aGlzLnRlc3RfbWVtYmVyX2F0dHJpYnV0ZShtZW1iZXIpOwogICAgICAg
ICAgICAgfQotICAgICAgICAgICAgaWYgKG1lbWJlci5zdHJpbmdpZmllcikgeworICAgICAgICAg
ICAgaWYgKG1lbWJlci5zcGVjaWFsID09PSAic3RyaW5naWZpZXIiKSB7CiAgICAgICAgICAgICAg
ICAgdGhpcy50ZXN0X21lbWJlcl9zdHJpbmdpZmllcihtZW1iZXIpOwogICAgICAgICAgICAgfQog
ICAgICAgICAgICAgYnJlYWs7CkBAIC0yNTQxLDcgKzI2MzMsNyBAQCBJZGxJbnRlcmZhY2UucHJv
dG90eXBlLnRlc3RfbWVtYmVycyA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgICAgIHRoaXMudGVzdF9tZW1iZXJfb3BlcmF0aW9uKG1lbWJlcik7CiAgICAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIGlmIChtZW1iZXIuc3RyaW5naWZpZXIp
IHsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAobWVtYmVyLnNwZWNpYWwgPT09ICJzdHJpbmdpZmll
ciIpIHsKICAgICAgICAgICAgICAgICB0aGlzLnRlc3RfbWVtYmVyX3N0cmluZ2lmaWVyKG1lbWJl
cik7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVhazsKQEAgLTI1NTYsOSArMjY0OCw3
IEBAIElkbEludGVyZmFjZS5wcm90b3R5cGUudGVzdF9tZW1iZXJzID0gZnVuY3Rpb24oKQogICAg
IH0KIH07CiAKLS8vQH0KIElkbEludGVyZmFjZS5wcm90b3R5cGUudGVzdF9vYmplY3QgPSBmdW5j
dGlvbihkZXNjKQotLy9AewogewogICAgIHZhciBvYmosIGV4Y2VwdGlvbiA9IG51bGw7CiAgICAg
dHJ5CkBAIC0yNTkzLDkgKzI2ODMsNyBAQCBJZGxJbnRlcmZhY2UucHJvdG90eXBlLnRlc3Rfb2Jq
ZWN0ID0gZnVuY3Rpb24oZGVzYykKICAgICB9CiB9OwogCi0vL0B9CiBJZGxJbnRlcmZhY2UucHJv
dG90eXBlLnRlc3RfcHJpbWFyeV9pbnRlcmZhY2Vfb2YgPSBmdW5jdGlvbihkZXNjLCBvYmosIGV4
Y2VwdGlvbiwgZXhwZWN0ZWRfdHlwZW9mKQotLy9AewogewogICAgIC8vIE9ubHkgdGhlIG9iamVj
dCBpdHNlbGYsIG5vdCBpdHMgbWVtYmVycywgYXJlIHRlc3RlZCBoZXJlLCBzbyBpZiB0aGUKICAg
ICAvLyBpbnRlcmZhY2UgaXMgdW50ZXN0ZWQsIHRoZXJlIGlzIG5vdGhpbmcgdG8gZG8uCkBAIC0y
NjI3LDkgKzI3MTUsOCBAQCBJZGxJbnRlcmZhY2UucHJvdG90eXBlLnRlc3RfcHJpbWFyeV9pbnRl
cmZhY2Vfb2YgPSBmdW5jdGlvbihkZXNjLCBvYmosIGV4Y2VwdGlvbgogICAgICAgICB7CiAgICAg
ICAgICAgICBhc3NlcnRfZXF1YWxzKGV4Y2VwdGlvbiwgbnVsbCwgIlVuZXhwZWN0ZWQgZXhjZXB0
aW9uIHdoZW4gZXZhbHVhdGluZyBvYmplY3QiKTsKICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMo
dHlwZW9mIG9iaiwgZXhwZWN0ZWRfdHlwZW9mLCAid3JvbmcgdHlwZW9mIG9iamVjdCIpOwotICAg
ICAgICAgICAgYXNzZXJ0X293bl9wcm9wZXJ0eShzZWxmLCB0aGlzLm5hbWUsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICIg
KyBmb3JtYXRfdmFsdWUodGhpcy5uYW1lKSk7Ci0gICAgICAgICAgICBhc3NlcnRfb3duX3Byb3Bl
cnR5KHNlbGZbdGhpcy5uYW1lXSwgInByb3RvdHlwZSIsCisgICAgICAgICAgICB0aGlzLmFzc2Vy
dF9pbnRlcmZhY2Vfb2JqZWN0X2V4aXN0cygpOworICAgICAgICAgICAgYXNzZXJ0X293bl9wcm9w
ZXJ0eSh0aGlzLmdldF9pbnRlcmZhY2Vfb2JqZWN0KCksICJwcm90b3R5cGUiLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAnaW50ZXJmYWNlICInICsgdGhpcy5uYW1lICsgJyIgZG9l
cyBub3QgaGF2ZSBvd24gcHJvcGVydHkgInByb3RvdHlwZSInKTsKIAogICAgICAgICAgICAgLy8g
IlRoZSB2YWx1ZSBvZiB0aGUgaW50ZXJuYWwgW1tQcm90b3R5cGVdXSBwcm9wZXJ0eSBvZiB0aGUK
QEAgLTI2MzcsMjkgKzI3MjQsMjcgQEAgSWRsSW50ZXJmYWNlLnByb3RvdHlwZS50ZXN0X3ByaW1h
cnlfaW50ZXJmYWNlX29mID0gZnVuY3Rpb24oZGVzYywgb2JqLCBleGNlcHRpb24KICAgICAgICAg
ICAgIC8vIGludGVyZmFjZSBmcm9tIHRoZSBwbGF0Zm9ybSBvYmplY3TigJlzIGFzc29jaWF0ZWQg
Z2xvYmFsCiAgICAgICAgICAgICAvLyBlbnZpcm9ubWVudC4iCiAgICAgICAgICAgICBhc3NlcnRf
ZXF1YWxzKE9iamVjdC5nZXRQcm90b3R5cGVPZihvYmopLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICBzZWxmW3RoaXMubmFtZV0ucHJvdG90eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICB0aGlzLmdldF9pbnRlcmZhY2Vfb2JqZWN0KCkucHJvdG90eXBlLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICBkZXNjICsgIidzIHByb3RvdHlwZSBpcyBub3QgIiArIHRoaXMubmFtZSArICIu
cHJvdG90eXBlIik7CiAgICAgICAgIH0uYmluZCh0aGlzKSwgdGhpcy5uYW1lICsgIiBtdXN0IGJl
IHByaW1hcnkgaW50ZXJmYWNlIG9mICIgKyBkZXNjKTsKICAgICB9CiAKICAgICAvLyAiVGhlIGNs
YXNzIHN0cmluZyBvZiBhIHBsYXRmb3JtIG9iamVjdCB0aGF0IGltcGxlbWVudHMgb25lIG9yIG1v
cmUKLSAgICAvLyBpbnRlcmZhY2VzIG11c3QgYmUgdGhlIGlkZW50aWZpZXIgb2YgdGhlIHByaW1h
cnkgaW50ZXJmYWNlIG9mIHRoZQorICAgIC8vIGludGVyZmFjZXMgbXVzdCBiZSB0aGUgcXVhbGlm
aWVkIG5hbWUgb2YgdGhlIHByaW1hcnkgaW50ZXJmYWNlIG9mIHRoZQogICAgIC8vIHBsYXRmb3Jt
IG9iamVjdC4iCiAgICAgc3Vic2V0VGVzdEJ5S2V5KHRoaXMubmFtZSwgdGVzdCwgZnVuY3Rpb24o
KQogICAgIHsKICAgICAgICAgYXNzZXJ0X2VxdWFscyhleGNlcHRpb24sIG51bGwsICJVbmV4cGVj
dGVkIGV4Y2VwdGlvbiB3aGVuIGV2YWx1YXRpbmcgb2JqZWN0Iik7CiAgICAgICAgIGFzc2VydF9l
cXVhbHModHlwZW9mIG9iaiwgZXhwZWN0ZWRfdHlwZW9mLCAid3JvbmcgdHlwZW9mIG9iamVjdCIp
OwotICAgICAgICBhc3NlcnRfY2xhc3Nfc3RyaW5nKG9iaiwgdGhpcy5uYW1lLCAiY2xhc3Mgc3Ry
aW5nIG9mICIgKyBkZXNjKTsKKyAgICAgICAgYXNzZXJ0X2NsYXNzX3N0cmluZyhvYmosIHRoaXMu
Z2V0X3F1YWxpZmllZF9uYW1lKCksICJjbGFzcyBzdHJpbmcgb2YgIiArIGRlc2MpOwogICAgICAg
ICBpZiAoIXRoaXMuaGFzX3N0cmluZ2lmaWVyKCkpCiAgICAgICAgIHsKLSAgICAgICAgICAgIGFz
c2VydF9lcXVhbHMoU3RyaW5nKG9iaiksICJbb2JqZWN0ICIgKyB0aGlzLm5hbWUgKyAiXSIsICJT
dHJpbmcoIiArIGRlc2MgKyAiKSIpOworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhTdHJpbmco
b2JqKSwgIltvYmplY3QgIiArIHRoaXMuZ2V0X3F1YWxpZmllZF9uYW1lKCkgKyAiXSIsICJTdHJp
bmcoIiArIGRlc2MgKyAiKSIpOwogICAgICAgICB9CiAgICAgfS5iaW5kKHRoaXMpLCAiU3RyaW5n
aWZpY2F0aW9uIG9mICIgKyBkZXNjKTsKIH07CiAKLS8vQH0KIElkbEludGVyZmFjZS5wcm90b3R5
cGUudGVzdF9pbnRlcmZhY2Vfb2YgPSBmdW5jdGlvbihkZXNjLCBvYmosIGV4Y2VwdGlvbiwgZXhw
ZWN0ZWRfdHlwZW9mKQotLy9AewogewogICAgIC8vIFRPRE86IEluZGV4ZWQgYW5kIG5hbWVkIHBy
b3BlcnRpZXMsIG1vcmUgY2hlY2tzIG9uIGludGVyZmFjZSBtZW1iZXJzCiAgICAgdGhpcy5hbHJl
YWR5X3Rlc3RlZCA9IHRydWU7CkBAIC0yNzE4LDcgKzI4MDMsNyBAQCBJZGxJbnRlcmZhY2UucHJv
dG90eXBlLnRlc3RfaW50ZXJmYWNlX29mID0gZnVuY3Rpb24oZGVzYywgb2JqLCBleGNlcHRpb24s
IGV4cGVjdAogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZXhj
ZXB0aW9uLCBudWxsLCAiVW5leHBlY3RlZCBleGNlcHRpb24gd2hlbiBldmFsdWF0aW5nIG9iamVj
dCIpOwogICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHModHlwZW9mIG9iaiwgZXhwZWN0ZWRf
dHlwZW9mLCAid3JvbmcgdHlwZW9mIG9iamVjdCIpOwotICAgICAgICAgICAgICAgIGlmICghbWVt
YmVyWyJzdGF0aWMiXSkgeworICAgICAgICAgICAgICAgIGlmIChtZW1iZXIuc3BlY2lhbCAhPT0g
InN0YXRpYyIpIHsKICAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLmlzX2dsb2JhbCgpKSB7
CiAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfaW5oZXJpdHMob2JqLCBtZW1iZXIubmFt
ZSk7CiAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CkBAIC0yNzY4LDcgKzI4NTMsNyBAQCBJ
ZGxJbnRlcmZhY2UucHJvdG90eXBlLnRlc3RfaW50ZXJmYWNlX29mID0gZnVuY3Rpb24oZGVzYywg
b2JqLCBleGNlcHRpb24sIGV4cGVjdAogICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZXhj
ZXB0aW9uLCBudWxsLCAiVW5leHBlY3RlZCBleGNlcHRpb24gd2hlbiBldmFsdWF0aW5nIG9iamVj
dCIpOwogICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHModHlwZW9mIG9iaiwgZXhwZWN0ZWRf
dHlwZW9mLCAid3JvbmcgdHlwZW9mIG9iamVjdCIpOwogICAgICAgICAgICAgICAgIHZhciBmbjsK
LSAgICAgICAgICAgICAgICBpZiAoIW1lbWJlclsic3RhdGljIl0pIHsKKyAgICAgICAgICAgICAg
ICBpZiAobWVtYmVyLnNwZWNpYWwgIT09ICJzdGF0aWMiKSB7CiAgICAgICAgICAgICAgICAgICAg
IGlmICghdGhpcy5pc19nbG9iYWwoKSAmJiAhbWVtYmVyLmlzVW5mb3JnZWFibGUpIHsKICAgICAg
ICAgICAgICAgICAgICAgICAgIGFzc2VydF9pbmhlcml0cyhvYmosIG1lbWJlci5uYW1lKTsKICAg
ICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKQEAgLTI3OTksMjEgKzI4ODQsMTkgQEAgSWRsSW50
ZXJmYWNlLnByb3RvdHlwZS50ZXN0X2ludGVyZmFjZV9vZiA9IGZ1bmN0aW9uKGRlc2MsIG9iaiwg
ZXhjZXB0aW9uLCBleHBlY3QKICAgICAgICAgfQogCiAgICAgICAgIGlmIChtZW1iZXIuaXNfdG9f
anNvbl9yZWd1bGFyX29wZXJhdGlvbigpKSB7Ci0gICAgICAgICAgICB0aGlzLnRlc3RfdG9fanNv
bl9vcGVyYXRpb24ob2JqLCBtZW1iZXIpOworICAgICAgICAgICAgdGhpcy50ZXN0X3RvX2pzb25f
b3BlcmF0aW9uKGRlc2MsIG9iaiwgbWVtYmVyKTsKICAgICAgICAgfQogICAgIH0KIH07CiAKLS8v
QH0KIElkbEludGVyZmFjZS5wcm90b3R5cGUuaGFzX3N0cmluZ2lmaWVyID0gZnVuY3Rpb24oKQot
Ly9AewogewogICAgIGlmICh0aGlzLm5hbWUgPT09ICJET01FeGNlcHRpb24iKSB7CiAgICAgICAg
IC8vIHRvU3RyaW5nIGlzIGluaGVyaXRlZCBmcm9tIEVycm9yLCBzbyBkb24ndCBhc3N1bWUgd2Ug
aGF2ZSB0aGUKICAgICAgICAgLy8gZGVmYXVsdCBzdHJpbmdpZmVyCiAgICAgICAgIHJldHVybiB0
cnVlOwogICAgIH0KLSAgICBpZiAodGhpcy5tZW1iZXJzLnNvbWUoZnVuY3Rpb24obWVtYmVyKSB7
IHJldHVybiBtZW1iZXIuc3RyaW5naWZpZXI7IH0pKSB7CisgICAgaWYgKHRoaXMubWVtYmVycy5z
b21lKGZ1bmN0aW9uKG1lbWJlcikgeyByZXR1cm4gbWVtYmVyLnNwZWNpYWwgPT09ICJzdHJpbmdp
ZmllciI7IH0pKSB7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICBpZiAodGhpcy5i
YXNlICYmCkBAIC0yODIzLDkgKzI5MDYsNyBAQCBJZGxJbnRlcmZhY2UucHJvdG90eXBlLmhhc19z
dHJpbmdpZmllciA9IGZ1bmN0aW9uKCkKICAgICByZXR1cm4gZmFsc2U7CiB9OwogCi0vL0B9CiBJ
ZGxJbnRlcmZhY2UucHJvdG90eXBlLmRvX2ludGVyZmFjZV9hdHRyaWJ1dGVfYXNzZXJ0cyA9IGZ1
bmN0aW9uKG9iaiwgbWVtYmVyLCBhX3Rlc3QpCi0vL0B7CiB7CiAgICAgLy8gVGhpcyBmdW5jdGlv
biB0ZXN0cyBXZWJJREwgYXMgb2YgMjAxNS0wMS0yNy4KICAgICAvLyBUT0RPOiBDb25zaWRlciBb
RXhwb3NlZF0uCkBAIC0yODY5LDcgKzI5NTAsNyBAQCBJZGxJbnRlcmZhY2UucHJvdG90eXBlLmRv
X2ludGVyZmFjZV9hdHRyaWJ1dGVfYXNzZXJ0cyA9IGZ1bmN0aW9uKG9iaiwgbWVtYmVyLCBhXwog
ICAgIGFzc2VydF9lcXVhbHModHlwZW9mIGRlc2MuZ2V0LCAiZnVuY3Rpb24iLCAiZ2V0dGVyIG11
c3QgYmUgRnVuY3Rpb24iKTsKIAogICAgIC8vICJJZiB0aGUgYXR0cmlidXRlIGlzIGEgcmVndWxh
ciBhdHRyaWJ1dGUsIHRoZW46IgotICAgIGlmICghbWVtYmVyWyJzdGF0aWMiXSkgeworICAgIGlm
IChtZW1iZXIuc3BlY2lhbCAhPT0gInN0YXRpYyIpIHsKICAgICAgICAgLy8gIklmIE8gaXMgbm90
IGEgcGxhdGZvcm0gb2JqZWN0IHRoYXQgaW1wbGVtZW50cyBJLCB0aGVuOgogICAgICAgICAvLyAi
SWYgdGhlIGF0dHJpYnV0ZSB3YXMgc3BlY2lmaWVkIHdpdGggdGhlIFtMZW5pZW50VGhpc10gZXh0
ZW5kZWQKICAgICAgICAgLy8gYXR0cmlidXRlLCB0aGVuIHJldHVybiB1bmRlZmluZWQuCkBAIC0y
ODk0LDYgKzI5NzUsMTEgQEAgSWRsSW50ZXJmYWNlLnByb3RvdHlwZS5kb19pbnRlcmZhY2VfYXR0
cmlidXRlX2Fzc2VydHMgPSBmdW5jdGlvbihvYmosIG1lbWJlciwgYV8KICAgICAvLyB2YWx1ZSAw
LiIKICAgICBhc3NlcnRfZXF1YWxzKGRlc2MuZ2V0Lmxlbmd0aCwgMCwgImdldHRlciBsZW5ndGgg
bXVzdCBiZSAwIik7CiAKKyAgICAvLyAiTGV0IG5hbWUgYmUgdGhlIHN0cmluZyAiZ2V0ICIgcHJl
cGVuZGVkIHRvIGF0dHJpYnV0ZeKAmXMgaWRlbnRpZmllci4iCisgICAgLy8gIlBlcmZvcm0gISBT
ZXRGdW5jdGlvbk5hbWUoRiwgbmFtZSkuIgorICAgIGFzc2VydF9lcXVhbHMoZGVzYy5nZXQubmFt
ZSwgImdldCAiICsgbWVtYmVyLm5hbWUsCisgICAgICAgICJnZXR0ZXIgbXVzdCBoYXZlIHRoZSBu
YW1lICdnZXQgIiArIG1lbWJlci5uYW1lICsgIiciKTsKKwogCiAgICAgLy8gVE9ETzogVGVzdCBj
YWxsaW5nIHNldHRlciBvbiB0aGUgaW50ZXJmYWNlIHByb3RvdHlwZSAoc2hvdWxkIHRocm93CiAg
ICAgLy8gVHlwZUVycm9yIGluIG1vc3QgY2FzZXMpLgpAQCAtMjkxNCw3ICszMDAwLDcgQEAgSWRs
SW50ZXJmYWNlLnByb3RvdHlwZS5kb19pbnRlcmZhY2VfYXR0cmlidXRlX2Fzc2VydHMgPSBmdW5j
dGlvbihvYmosIG1lbWJlciwgYV8KICAgICAgICAgYXNzZXJ0X2VxdWFscyh0eXBlb2YgZGVzYy5z
ZXQsICJmdW5jdGlvbiIsICJzZXR0ZXIgbXVzdCBiZSBmdW5jdGlvbiBmb3IgUHV0Rm9yd2FyZHMs
IFJlcGxhY2VhYmxlLCBvciBub24tcmVhZG9ubHkgYXR0cmlidXRlcyIpOwogCiAgICAgICAgIC8v
ICJJZiB0aGUgYXR0cmlidXRlIGlzIGEgcmVndWxhciBhdHRyaWJ1dGUsIHRoZW46IgotICAgICAg
ICBpZiAoIW1lbWJlclsic3RhdGljIl0pIHsKKyAgICAgICAgaWYgKG1lbWJlci5zcGVjaWFsICE9
PSAic3RhdGljIikgewogICAgICAgICAgICAgLy8gIklmIC92YWxpZFRoaXMvIGlzIGZhbHNlIGFu
ZCB0aGUgYXR0cmlidXRlIHdhcyBub3Qgc3BlY2lmaWVkCiAgICAgICAgICAgICAvLyB3aXRoIHRo
ZSBbTGVuaWVudFRoaXNdIGV4dGVuZGVkIGF0dHJpYnV0ZSwgdGhlbiB0aHJvdyBhCiAgICAgICAg
ICAgICAvLyBUeXBlRXJyb3IuIgpAQCAtMjkzNCwyMiArMzAyMCwyNSBAQCBJZGxJbnRlcmZhY2Uu
cHJvdG90eXBlLmRvX2ludGVyZmFjZV9hdHRyaWJ1dGVfYXNzZXJ0cyA9IGZ1bmN0aW9uKG9iaiwg
bWVtYmVyLCBhXwogICAgICAgICAvLyAiVGhlIHZhbHVlIG9mIHRoZSBGdW5jdGlvbiBvYmplY3Ti
gJlzIOKAnGxlbmd0aOKAnSBwcm9wZXJ0eSBpcyB0aGUgTnVtYmVyCiAgICAgICAgIC8vIHZhbHVl
IDEuIgogICAgICAgICBhc3NlcnRfZXF1YWxzKGRlc2Muc2V0Lmxlbmd0aCwgMSwgInNldHRlciBs
ZW5ndGggbXVzdCBiZSAxIik7CisKKyAgICAgICAgLy8gIkxldCBuYW1lIGJlIHRoZSBzdHJpbmcg
InNldCAiIHByZXBlbmRlZCB0byBpZC4iCisgICAgICAgIC8vICJQZXJmb3JtICEgU2V0RnVuY3Rp
b25OYW1lKEYsIG5hbWUpLiIKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhkZXNjLnNldC5uYW1lLCAi
c2V0ICIgKyBtZW1iZXIubmFtZSwKKyAgICAgICAgICAgICJUaGUgYXR0cmlidXRlIHNldHRlciBt
dXN0IGhhdmUgdGhlIG5hbWUgJ3NldCAiICsgbWVtYmVyLm5hbWUgKyAiJyIpOwogICAgIH0KIAog
ICAgIFByb21pc2UuYWxsKHBlbmRpbmdQcm9taXNlcykudGhlbihhX3Rlc3QuZG9uZS5iaW5kKGFf
dGVzdCkpOwogfQotLy9AfQogCiAvLy8gSWRsSW50ZXJmYWNlTWVtYmVyIC8vLwogZnVuY3Rpb24g
SWRsSW50ZXJmYWNlTWVtYmVyKG9iaikKLS8vQHsKIHsKICAgICAvKioKICAgICAgKiBvYmogaXMg
YW4gb2JqZWN0IHByb2R1Y2VkIGJ5IHRoZSBXZWJJRExQYXJzZXIuanMgImlmTWVtYmVyIiBwcm9k
dWN0aW9uLgogICAgICAqIFdlIGp1c3QgZm9yd2FyZCBhbGwgcHJvcGVydGllcyB0byB0aGlzIG9i
amVjdCB3aXRob3V0IG1vZGlmaWNhdGlvbiwKICAgICAgKiBleGNlcHQgZm9yIHNwZWNpYWwgZXh0
QXR0cnMgaGFuZGxpbmcuCiAgICAgICovCi0gICAgZm9yICh2YXIgayBpbiBvYmopCisgICAgZm9y
ICh2YXIgayBpbiBvYmoudG9KU09OKCkpCiAgICAgewogICAgICAgICB0aGlzW2tdID0gb2JqW2td
OwogICAgIH0KQEAgLTI5NjIsMTYgKzMwNTEsMTggQEAgZnVuY3Rpb24gSWRsSW50ZXJmYWNlTWVt
YmVyKG9iaikKICAgICB0aGlzLmlzVW5zY29wYWJsZSA9IHRoaXMuaGFzX2V4dGVuZGVkX2F0dHJp
YnV0ZSgiVW5zY29wYWJsZSIpOwogfQogCi0vL0B9CiBJZGxJbnRlcmZhY2VNZW1iZXIucHJvdG90
eXBlID0gT2JqZWN0LmNyZWF0ZShJZGxPYmplY3QucHJvdG90eXBlKTsKIAorSWRsSW50ZXJmYWNl
TWVtYmVyLnByb3RvdHlwZS50b0pTT04gPSBmdW5jdGlvbigpIHsKKyAgICByZXR1cm4gdGhpczsK
K307CisKIElkbEludGVyZmFjZU1lbWJlci5wcm90b3R5cGUuaXNfdG9fanNvbl9yZWd1bGFyX29w
ZXJhdGlvbiA9IGZ1bmN0aW9uKCkgewotICAgIHJldHVybiB0aGlzLnR5cGUgPT0gIm9wZXJhdGlv
biIgJiYgIXRoaXMuc3RhdGljICYmIHRoaXMubmFtZSA9PSAidG9KU09OIjsKKyAgICByZXR1cm4g
dGhpcy50eXBlID09ICJvcGVyYXRpb24iICYmIHRoaXMuc3BlY2lhbCAhPT0gInN0YXRpYyIgJiYg
dGhpcy5uYW1lID09ICJ0b0pTT04iOwogfTsKIAogLy8vIEludGVybmFsIGhlbHBlciBmdW5jdGlv
bnMgLy8vCiBmdW5jdGlvbiBjcmVhdGVfc3VpdGFibGVfb2JqZWN0KHR5cGUpCi0vL0B7CiB7CiAg
ICAgLyoqCiAgICAgICogdHlwZSBpcyBhbiBvYmplY3QgcHJvZHVjZWQgYnkgdGhlIFdlYklETFBh
cnNlci5qcyAidHlwZSIgcHJvZHVjdGlvbi4gIFdlCkBAIC0zMDA3LDEyICszMDk4LDEwIEBAIGZ1
bmN0aW9uIGNyZWF0ZV9zdWl0YWJsZV9vYmplY3QodHlwZSkKICAgICB9CiAgICAgcmV0dXJuIG51
bGw7CiB9Ci0vL0B9CiAKIC8vLyBJZGxFbnVtIC8vLwogLy8gVXNlZCBmb3IgSWRsQXJyYXkucHJv
dG90eXBlLmFzc2VydF90eXBlX2lzCiBmdW5jdGlvbiBJZGxFbnVtKG9iaikKLS8vQHsKIHsKICAg
ICAvKioKICAgICAgKiBvYmogaXMgYW4gb2JqZWN0IHByb2R1Y2VkIGJ5IHRoZSBXZWJJRExQYXJz
ZXIuanMgImRpY3Rpb25hcnkiCkBAIC0zMDI2LDE0ICszMTE1LDMwIEBAIGZ1bmN0aW9uIElkbEVu
dW0ob2JqKQogICAgIHRoaXMudmFsdWVzID0gb2JqLnZhbHVlczsKIAogfQotLy9AfQogCiBJZGxF
bnVtLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoSWRsT2JqZWN0LnByb3RvdHlwZSk7CiAKKy8v
LyBJZGxDYWxsYmFjayAvLy8KKy8vIFVzZWQgZm9yIElkbEFycmF5LnByb3RvdHlwZS5hc3NlcnRf
dHlwZV9pcworZnVuY3Rpb24gSWRsQ2FsbGJhY2sob2JqKQoreworICAgIC8qKgorICAgICAqIG9i
aiBpcyBhbiBvYmplY3QgcHJvZHVjZWQgYnkgdGhlIFdlYklETFBhcnNlci5qcyAiY2FsbGJhY2si
CisgICAgICogcHJvZHVjdGlvbi4KKyAgICAgKi8KKworICAgIC8qKiBTZWxmLWV4cGxhbmF0b3J5
LiAqLworICAgIHRoaXMubmFtZSA9IG9iai5uYW1lOworCisgICAgLyoqIEFyZ3VtZW50cyBmb3Ig
dGhlIGNhbGxiYWNrLiAqLworICAgIHRoaXMuYXJndW1lbnRzID0gb2JqLmFyZ3VtZW50czsKK30K
KworSWRsQ2FsbGJhY2sucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShJZGxPYmplY3QucHJvdG90
eXBlKTsKKwogLy8vIElkbFR5cGVkZWYgLy8vCiAvLyBVc2VkIGZvciBJZGxBcnJheS5wcm90b3R5
cGUuYXNzZXJ0X3R5cGVfaXMKIGZ1bmN0aW9uIElkbFR5cGVkZWYob2JqKQotLy9AewogewogICAg
IC8qKgogICAgICAqIG9iaiBpcyBhbiBvYmplY3QgcHJvZHVjZWQgYnkgdGhlIFdlYklETFBhcnNl
ci5qcyAidHlwZWRlZiIKQEAgLTMwNDcsMTMgKzMxNTIsMTEgQEAgZnVuY3Rpb24gSWRsVHlwZWRl
ZihvYmopCiAgICAgdGhpcy5pZGxUeXBlID0gb2JqLmlkbFR5cGU7CiAKIH0KLS8vQH0KIAogSWRs
VHlwZWRlZi5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKElkbE9iamVjdC5wcm90b3R5cGUpOwog
CiAvLy8gSWRsTmFtZXNwYWNlIC8vLwogZnVuY3Rpb24gSWRsTmFtZXNwYWNlKG9iaikKLS8vQHsK
IHsKICAgICB0aGlzLm5hbWUgPSBvYmoubmFtZTsKICAgICB0aGlzLmV4dEF0dHJzID0gb2JqLmV4
dEF0dHJzOwpAQCAtMzA2NCwxMiArMzE2NywxMCBAQCBmdW5jdGlvbiBJZGxOYW1lc3BhY2Uob2Jq
KQogICAgIC8qKiBBbiBhcnJheSBvZiBJZGxJbnRlcmZhY2VNZW1iZXJzLiAqLwogICAgIHRoaXMu
bWVtYmVycyA9IG9iai5tZW1iZXJzLm1hcChtID0+IG5ldyBJZGxJbnRlcmZhY2VNZW1iZXIobSkp
OwogfQotLy9AfQogCiBJZGxOYW1lc3BhY2UucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShJZGxP
YmplY3QucHJvdG90eXBlKTsKIAogSWRsTmFtZXNwYWNlLnByb3RvdHlwZS5kb19tZW1iZXJfb3Bl
cmF0aW9uX2Fzc2VydHMgPSBmdW5jdGlvbiAobWVtYmVySG9sZGVyT2JqZWN0LCBtZW1iZXIsIGFf
dGVzdCkKLS8vQHsKIHsKICAgICB2YXIgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3IobWVtYmVySG9sZGVyT2JqZWN0LCBtZW1iZXIubmFtZSk7CiAKQEAgLTMwOTgsMTAgKzMx
OTksOCBAQCBJZGxOYW1lc3BhY2UucHJvdG90eXBlLmRvX21lbWJlcl9vcGVyYXRpb25fYXNzZXJ0
cyA9IGZ1bmN0aW9uIChtZW1iZXJIb2xkZXJPYmplYwogICAgICAgICAib3BlcmF0aW9uIGhhcyB3
cm9uZyAubGVuZ3RoIik7CiAgICAgYV90ZXN0LmRvbmUoKTsKIH0KLS8vQH0KIAogSWRsTmFtZXNw
YWNlLnByb3RvdHlwZS50ZXN0X21lbWJlcl9vcGVyYXRpb24gPSBmdW5jdGlvbihtZW1iZXIpCi0v
L0B7CiB7CiAgICAgaWYgKCFzaG91bGRSdW5TdWJUZXN0KHRoaXMubmFtZSkpIHsKICAgICAgICAg
cmV0dXJuOwpAQCAtMzEyNiwxMCArMzIyNSw4IEBAIElkbE5hbWVzcGFjZS5wcm90b3R5cGUudGVz
dF9tZW1iZXJfb3BlcmF0aW9uID0gZnVuY3Rpb24obWVtYmVyKQogICAgICAgICB0aGlzLmRvX21l
bWJlcl9vcGVyYXRpb25fYXNzZXJ0cyhzZWxmW3RoaXMubmFtZV0sIG1lbWJlciwgYV90ZXN0KTsK
ICAgICB9LmJpbmQodGhpcykpOwogfTsKLS8vQH0KIAogSWRsTmFtZXNwYWNlLnByb3RvdHlwZS50
ZXN0X21lbWJlcl9hdHRyaWJ1dGUgPSBmdW5jdGlvbiAobWVtYmVyKQotLy9AewogewogICAgIGlm
ICghc2hvdWxkUnVuU3ViVGVzdCh0aGlzLm5hbWUpKSB7CiAgICAgICAgIHJldHVybjsKQEAgLTMx
NTAsMTAgKzMyNDcsOCBAQCBJZGxOYW1lc3BhY2UucHJvdG90eXBlLnRlc3RfbWVtYmVyX2F0dHJp
YnV0ZSA9IGZ1bmN0aW9uIChtZW1iZXIpCiAgICAgICAgIGFfdGVzdC5kb25lKCk7CiAgICAgfS5i
aW5kKHRoaXMpKTsKIH07Ci0vL0B9CiAKIElkbE5hbWVzcGFjZS5wcm90b3R5cGUudGVzdCA9IGZ1
bmN0aW9uICgpCi0vL0B7CiB7CiAgICAgLyoqCiAgICAgICogVE9ETyhsdWtlYmplcnJpbmcpOiBB
c3NlcnQ6CkBAIC0zMTc5LDcgKzMyNzQsNiBAQCBJZGxOYW1lc3BhY2UucHJvdG90eXBlLnRlc3Qg
PSBmdW5jdGlvbiAoKQogICAgICAgICB9CiAgICAgfTsKIH07Ci0vL0B9CiAKIH0oKSk7CiAKQEAg
LTMyNDEsNyArMzMzNSwxMSBAQCBmdW5jdGlvbiBpZGxfdGVzdChzcmNzLCBkZXBzLCBpZGxfc2V0
dXBfZnVuYykgewogICogZmV0Y2hfc3BlYyBpcyBhIHNob3J0aGFuZCBmb3IgYSBQcm9taXNlIHRo
YXQgZmV0Y2hlcyB0aGUgc3BlYydzIGNvbnRlbnQuCiAgKi8KIGZ1bmN0aW9uIGZldGNoX3NwZWMo
c3BlYykgewotICAgIHJldHVybiBmZXRjaCgnL2ludGVyZmFjZXMvJyArIHNwZWMgKyAnLmlkbCcp
LnRoZW4oZnVuY3Rpb24gKHIpIHsKKyAgICB2YXIgdXJsID0gJy9pbnRlcmZhY2VzLycgKyBzcGVj
ICsgJy5pZGwnOworICAgIHJldHVybiBmZXRjaCh1cmwpLnRoZW4oZnVuY3Rpb24gKHIpIHsKKyAg
ICAgICAgaWYgKCFyLm9rKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWRsSGFybmVzc0Vycm9y
KCJFcnJvciBmZXRjaGluZyAiICsgdXJsICsgIi4iKTsKKyAgICAgICAgfQogICAgICAgICByZXR1
cm4gci50ZXh0KCk7CiAgICAgfSk7CiB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy93ZWJpZGwyL2xpYi93ZWJpZGwyLmpz
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMv
d2ViaWRsMi9saWIvd2ViaWRsMi5qcwppbmRleCBlZjUxOWMwOWRmNmQ2ZGE4MTJmY2JiYTU3Yzdj
YTBmNDc1YWYxZWQ1Li5jNjBhNDU2YzMyNDE2NTVkMDVhN2U0MGY4MmIxOWQ4NzM1ZDAxN2Q0IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jl
c291cmNlcy93ZWJpZGwyL2xpYi93ZWJpZGwyLmpzCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3dlYmlkbDIvbGliL3dlYmlkbDIuanMK
QEAgLTEsOTcwICsxLDI3NzcgQEAKKyhmdW5jdGlvbiB3ZWJwYWNrVW5pdmVyc2FsTW9kdWxlRGVm
aW5pdGlvbihyb290LCBmYWN0b3J5KSB7CisJaWYodHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3Qn
ICYmIHR5cGVvZiBtb2R1bGUgPT09ICdvYmplY3QnKQorCQltb2R1bGUuZXhwb3J0cyA9IGZhY3Rv
cnkoKTsKKwllbHNlIGlmKHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFt
ZCkKKwkJZGVmaW5lKFtdLCBmYWN0b3J5KTsKKwllbHNlIGlmKHR5cGVvZiBleHBvcnRzID09PSAn
b2JqZWN0JykKKwkJZXhwb3J0c1siV2ViSURMMiJdID0gZmFjdG9yeSgpOworCWVsc2UKKwkJcm9v
dFsiV2ViSURMMiJdID0gZmFjdG9yeSgpOworfSkodGhpcywgZnVuY3Rpb24oKSB7CityZXR1cm4g
LyoqKioqKi8gKGZ1bmN0aW9uKG1vZHVsZXMpIHsgLy8gd2VicGFja0Jvb3RzdHJhcAorLyoqKioq
Ki8gCS8vIFRoZSBtb2R1bGUgY2FjaGUKKy8qKioqKiovIAl2YXIgaW5zdGFsbGVkTW9kdWxlcyA9
IHt9OworLyoqKioqKi8KKy8qKioqKiovIAkvLyBUaGUgcmVxdWlyZSBmdW5jdGlvbgorLyoqKioq
Ki8gCWZ1bmN0aW9uIF9fd2VicGFja19yZXF1aXJlX18obW9kdWxlSWQpIHsKKy8qKioqKiovCisv
KioqKioqLyAJCS8vIENoZWNrIGlmIG1vZHVsZSBpcyBpbiBjYWNoZQorLyoqKioqKi8gCQlpZihp
bnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXSkgeworLyoqKioqKi8gCQkJcmV0dXJuIGluc3RhbGxl
ZE1vZHVsZXNbbW9kdWxlSWRdLmV4cG9ydHM7CisvKioqKioqLyAJCX0KKy8qKioqKiovIAkJLy8g
Q3JlYXRlIGEgbmV3IG1vZHVsZSAoYW5kIHB1dCBpdCBpbnRvIHRoZSBjYWNoZSkKKy8qKioqKiov
IAkJdmFyIG1vZHVsZSA9IGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdID0geworLyoqKioqKi8g
CQkJaTogbW9kdWxlSWQsCisvKioqKioqLyAJCQlsOiBmYWxzZSwKKy8qKioqKiovIAkJCWV4cG9y
dHM6IHt9CisvKioqKioqLyAJCX07CisvKioqKioqLworLyoqKioqKi8gCQkvLyBFeGVjdXRlIHRo
ZSBtb2R1bGUgZnVuY3Rpb24KKy8qKioqKiovIAkJbW9kdWxlc1ttb2R1bGVJZF0uY2FsbChtb2R1
bGUuZXhwb3J0cywgbW9kdWxlLCBtb2R1bGUuZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXyk7
CisvKioqKioqLworLyoqKioqKi8gCQkvLyBGbGFnIHRoZSBtb2R1bGUgYXMgbG9hZGVkCisvKioq
KioqLyAJCW1vZHVsZS5sID0gdHJ1ZTsKKy8qKioqKiovCisvKioqKioqLyAJCS8vIFJldHVybiB0
aGUgZXhwb3J0cyBvZiB0aGUgbW9kdWxlCisvKioqKioqLyAJCXJldHVybiBtb2R1bGUuZXhwb3J0
czsKKy8qKioqKiovIAl9CisvKioqKioqLworLyoqKioqKi8KKy8qKioqKiovIAkvLyBleHBvc2Ug
dGhlIG1vZHVsZXMgb2JqZWN0IChfX3dlYnBhY2tfbW9kdWxlc19fKQorLyoqKioqKi8gCV9fd2Vi
cGFja19yZXF1aXJlX18ubSA9IG1vZHVsZXM7CisvKioqKioqLworLyoqKioqKi8gCS8vIGV4cG9z
ZSB0aGUgbW9kdWxlIGNhY2hlCisvKioqKioqLyAJX193ZWJwYWNrX3JlcXVpcmVfXy5jID0gaW5z
dGFsbGVkTW9kdWxlczsKKy8qKioqKiovCisvKioqKioqLyAJLy8gZGVmaW5lIGdldHRlciBmdW5j
dGlvbiBmb3IgaGFybW9ueSBleHBvcnRzCisvKioqKioqLyAJX193ZWJwYWNrX3JlcXVpcmVfXy5k
ID0gZnVuY3Rpb24oZXhwb3J0cywgbmFtZSwgZ2V0dGVyKSB7CisvKioqKioqLyAJCWlmKCFfX3dl
YnBhY2tfcmVxdWlyZV9fLm8oZXhwb3J0cywgbmFtZSkpIHsKKy8qKioqKiovIAkJCU9iamVjdC5k
ZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBuYW1lLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZ2V0
dGVyIH0pOworLyoqKioqKi8gCQl9CisvKioqKioqLyAJfTsKKy8qKioqKiovCisvKioqKioqLyAJ
Ly8gZGVmaW5lIF9fZXNNb2R1bGUgb24gZXhwb3J0cworLyoqKioqKi8gCV9fd2VicGFja19yZXF1
aXJlX18uciA9IGZ1bmN0aW9uKGV4cG9ydHMpIHsKKy8qKioqKiovIAkJaWYodHlwZW9mIFN5bWJv
bCAhPT0gJ3VuZGVmaW5lZCcgJiYgU3ltYm9sLnRvU3RyaW5nVGFnKSB7CisvKioqKioqLyAJCQlP
YmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgU3ltYm9sLnRvU3RyaW5nVGFnLCB7IHZhbHVl
OiAnTW9kdWxlJyB9KTsKKy8qKioqKiovIAkJfQorLyoqKioqKi8gCQlPYmplY3QuZGVmaW5lUHJv
cGVydHkoZXhwb3J0cywgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pOworLyoqKioqKi8g
CX07CisvKioqKioqLworLyoqKioqKi8gCS8vIGNyZWF0ZSBhIGZha2UgbmFtZXNwYWNlIG9iamVj
dAorLyoqKioqKi8gCS8vIG1vZGUgJiAxOiB2YWx1ZSBpcyBhIG1vZHVsZSBpZCwgcmVxdWlyZSBp
dAorLyoqKioqKi8gCS8vIG1vZGUgJiAyOiBtZXJnZSBhbGwgcHJvcGVydGllcyBvZiB2YWx1ZSBp
bnRvIHRoZSBucworLyoqKioqKi8gCS8vIG1vZGUgJiA0OiByZXR1cm4gdmFsdWUgd2hlbiBhbHJl
YWR5IG5zIG9iamVjdAorLyoqKioqKi8gCS8vIG1vZGUgJiA4fDE6IGJlaGF2ZSBsaWtlIHJlcXVp
cmUKKy8qKioqKiovIAlfX3dlYnBhY2tfcmVxdWlyZV9fLnQgPSBmdW5jdGlvbih2YWx1ZSwgbW9k
ZSkgeworLyoqKioqKi8gCQlpZihtb2RlICYgMSkgdmFsdWUgPSBfX3dlYnBhY2tfcmVxdWlyZV9f
KHZhbHVlKTsKKy8qKioqKiovIAkJaWYobW9kZSAmIDgpIHJldHVybiB2YWx1ZTsKKy8qKioqKiov
IAkJaWYoKG1vZGUgJiA0KSAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmIHZhbHVlICYm
IHZhbHVlLl9fZXNNb2R1bGUpIHJldHVybiB2YWx1ZTsKKy8qKioqKiovIAkJdmFyIG5zID0gT2Jq
ZWN0LmNyZWF0ZShudWxsKTsKKy8qKioqKiovIAkJX193ZWJwYWNrX3JlcXVpcmVfXy5yKG5zKTsK
Ky8qKioqKiovIAkJT2JqZWN0LmRlZmluZVByb3BlcnR5KG5zLCAnZGVmYXVsdCcsIHsgZW51bWVy
YWJsZTogdHJ1ZSwgdmFsdWU6IHZhbHVlIH0pOworLyoqKioqKi8gCQlpZihtb2RlICYgMiAmJiB0
eXBlb2YgdmFsdWUgIT0gJ3N0cmluZycpIGZvcih2YXIga2V5IGluIHZhbHVlKSBfX3dlYnBhY2tf
cmVxdWlyZV9fLmQobnMsIGtleSwgZnVuY3Rpb24oa2V5KSB7IHJldHVybiB2YWx1ZVtrZXldOyB9
LmJpbmQobnVsbCwga2V5KSk7CisvKioqKioqLyAJCXJldHVybiBuczsKKy8qKioqKiovIAl9Owor
LyoqKioqKi8KKy8qKioqKiovIAkvLyBnZXREZWZhdWx0RXhwb3J0IGZ1bmN0aW9uIGZvciBjb21w
YXRpYmlsaXR5IHdpdGggbm9uLWhhcm1vbnkgbW9kdWxlcworLyoqKioqKi8gCV9fd2VicGFja19y
ZXF1aXJlX18ubiA9IGZ1bmN0aW9uKG1vZHVsZSkgeworLyoqKioqKi8gCQl2YXIgZ2V0dGVyID0g
bW9kdWxlICYmIG1vZHVsZS5fX2VzTW9kdWxlID8KKy8qKioqKiovIAkJCWZ1bmN0aW9uIGdldERl
ZmF1bHQoKSB7IHJldHVybiBtb2R1bGVbJ2RlZmF1bHQnXTsgfSA6CisvKioqKioqLyAJCQlmdW5j
dGlvbiBnZXRNb2R1bGVFeHBvcnRzKCkgeyByZXR1cm4gbW9kdWxlOyB9OworLyoqKioqKi8gCQlf
X3dlYnBhY2tfcmVxdWlyZV9fLmQoZ2V0dGVyLCAnYScsIGdldHRlcik7CisvKioqKioqLyAJCXJl
dHVybiBnZXR0ZXI7CisvKioqKioqLyAJfTsKKy8qKioqKiovCisvKioqKioqLyAJLy8gT2JqZWN0
LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsCisvKioqKioqLyAJX193ZWJwYWNrX3JlcXVp
cmVfXy5vID0gZnVuY3Rpb24ob2JqZWN0LCBwcm9wZXJ0eSkgeyByZXR1cm4gT2JqZWN0LnByb3Rv
dHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iamVjdCwgcHJvcGVydHkpOyB9OworLyoqKioqKi8K
Ky8qKioqKiovIAkvLyBfX3dlYnBhY2tfcHVibGljX3BhdGhfXworLyoqKioqKi8gCV9fd2VicGFj
a19yZXF1aXJlX18ucCA9ICIiOworLyoqKioqKi8KKy8qKioqKiovCisvKioqKioqLyAJLy8gTG9h
ZCBlbnRyeSBtb2R1bGUgYW5kIHJldHVybiBleHBvcnRzCisvKioqKioqLyAJcmV0dXJuIF9fd2Vi
cGFja19yZXF1aXJlX18oX193ZWJwYWNrX3JlcXVpcmVfXy5zID0gMCk7CisvKioqKioqLyB9KQor
LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKi8KKy8qKioqKiovIChbCisvKiAwICovCisvKioqLyAoZnVuY3Rpb24o
bW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CisKICJ1
c2Ugc3RyaWN0IjsKK19fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTsK
Ky8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfbGliX3dlYmlkbDJfanNfX1dFQlBBQ0tfSU1QT1JU
RURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMSk7CisvKiBoYXJtb255IHJlZXhw
b3J0IChzYWZlKSAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywg
InBhcnNlIiwgZnVuY3Rpb24oKSB7IHJldHVybiBfbGliX3dlYmlkbDJfanNfX1dFQlBBQ0tfSU1Q
T1JURURfTU9EVUxFXzBfX1sicGFyc2UiXTsgfSk7CiAKLSgoKSA9PiB7Ci0gIC8vIFRoZXNlIHJl
Z3VsYXIgZXhwcmVzc2lvbnMgdXNlIHRoZSBzdGlja3kgZmxhZyBzbyB0aGV5IHdpbGwgb25seSBt
YXRjaCBhdAotICAvLyB0aGUgY3VycmVudCBsb2NhdGlvbiAoaWUuIHRoZSBvZmZzZXQgb2YgbGFz
dEluZGV4KS4KLSAgY29uc3QgdG9rZW5SZSA9IHsKLSAgICAvLyBUaGlzIGV4cHJlc3Npb24gdXNl
cyBhIGxvb2thaGVhZCBhc3NlcnRpb24gdG8gY2F0Y2ggZmFsc2UgbWF0Y2hlcwotICAgIC8vIGFn
YWluc3QgaW50ZWdlcnMgZWFybHkuCi0gICAgImZsb2F0IjogLy0/KD89WzAtOV0qXC58WzAtOV0r
W2VFXSkoKFswLTldK1wuWzAtOV0qfFswLTldKlwuWzAtOV0rKShbRWVdWy0rXT9bMC05XSspP3xb
MC05XStbRWVdWy0rXT9bMC05XSspL3ksCi0gICAgImludGVnZXIiOiAvLT8oMChbWHhdWzAtOUEt
RmEtZl0rfFswLTddKil8WzEtOV1bMC05XSopL3ksCi0gICAgImlkZW50aWZpZXIiOiAvXz9bQS1a
YS16XVswLTlBLVpfYS16LV0qL3ksCi0gICAgInN0cmluZyI6IC8iW14iXSoiL3ksCi0gICAgIndo
aXRlc3BhY2UiOiAvW1x0XG5cciBdKy95LAotICAgICJjb21tZW50IjogLygoXC8oXC8uKnxcKihb
XipdfFwqW15cL10pKlwqXC8pW1x0XG5cciBdKikrKS95LAotICAgICJvdGhlciI6IC9bXlx0XG5c
ciAwLTlBLVphLXpdL3kKLSAgfTsKKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfbGliX3dyaXRl
cl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygz
MCk7CisvKiBoYXJtb255IHJlZXhwb3J0IChzYWZlKSAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQo
X193ZWJwYWNrX2V4cG9ydHNfXywgIndyaXRlIiwgZnVuY3Rpb24oKSB7IHJldHVybiBfbGliX3dy
aXRlcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fWyJ3cml0ZSJdOyB9KTsKIAotICBj
b25zdCBzdHJpbmdUeXBlcyA9IFsKLSAgICAiQnl0ZVN0cmluZyIsCi0gICAgIkRPTVN0cmluZyIs
Ci0gICAgIlVTVlN0cmluZyIKLSAgXTsKLQotICBjb25zdCBhcmd1bWVudE5hbWVLZXl3b3JkcyA9
IFsKLSAgICAiYXR0cmlidXRlIiwKLSAgICAiY2FsbGJhY2siLAotICAgICJjb25zdCIsCi0gICAg
ImRlbGV0ZXIiLAotICAgICJkaWN0aW9uYXJ5IiwKLSAgICAiZW51bSIsCi0gICAgImdldHRlciIs
Ci0gICAgImluY2x1ZGVzIiwKLSAgICAiaW5oZXJpdCIsCi0gICAgImludGVyZmFjZSIsCi0gICAg
Iml0ZXJhYmxlIiwKLSAgICAibWFwbGlrZSIsCi0gICAgIm5hbWVzcGFjZSIsCi0gICAgInBhcnRp
YWwiLAotICAgICJyZXF1aXJlZCIsCi0gICAgInNldGxpa2UiLAotICAgICJzZXR0ZXIiLAotICAg
ICJzdGF0aWMiLAotICAgICJzdHJpbmdpZmllciIsCi0gICAgInR5cGVkZWYiLAotICAgICJ1bnJl
c3RyaWN0ZWQiCi0gIF07Ci0KLSAgY29uc3Qgbm9uUmVnZXhUZXJtaW5hbHMgPSBbCi0gICAgIkZy
b3plbkFycmF5IiwKLSAgICAiSW5maW5pdHkiLAotICAgICJOYU4iLAotICAgICJQcm9taXNlIiwK
LSAgICAiYm9vbGVhbiIsCi0gICAgImJ5dGUiLAotICAgICJkb3VibGUiLAotICAgICJmYWxzZSIs
Ci0gICAgImZsb2F0IiwKLSAgICAiaW1wbGVtZW50cyIsCi0gICAgImxlZ2FjeWl0ZXJhYmxlIiwK
LSAgICAibG9uZyIsCi0gICAgIm1peGluIiwKLSAgICAibnVsbCIsCi0gICAgIm9jdGV0IiwKLSAg
ICAib3B0aW9uYWwiLAotICAgICJvciIsCi0gICAgInJlYWRvbmx5IiwKLSAgICAicmVjb3JkIiwK
LSAgICAic2VxdWVuY2UiLAotICAgICJzaG9ydCIsCi0gICAgInRydWUiLAotICAgICJ1bnNpZ25l
ZCIsCi0gICAgInZvaWQiCi0gIF0uY29uY2F0KGFyZ3VtZW50TmFtZUtleXdvcmRzLCBzdHJpbmdU
eXBlcyk7Ci0KLSAgY29uc3QgcHVuY3R1YXRpb25zID0gWwotICAgICIoIiwKLSAgICAiKSIsCi0g
ICAgIiwiLAotICAgICItSW5maW5pdHkiLAotICAgICIuLi4iLAotICAgICI6IiwKLSAgICAiOyIs
Ci0gICAgIjwiLAotICAgICI9IiwKLSAgICAiPiIsCi0gICAgIj8iLAotICAgICJbIiwKLSAgICAi
XSIsCi0gICAgInsiLAotICAgICJ9IgotICBdOwotCi0gIGZ1bmN0aW9uIHRva2VuaXNlKHN0cikg
ewotICAgIGNvbnN0IHRva2VucyA9IFtdOwotICAgIGxldCBsYXN0SW5kZXggPSAwOwotICAgIGxl
dCB0cml2aWEgPSAiIjsKLSAgICB3aGlsZSAobGFzdEluZGV4IDwgc3RyLmxlbmd0aCkgewotICAg
ICAgY29uc3QgbmV4dENoYXIgPSBzdHIuY2hhckF0KGxhc3RJbmRleCk7Ci0gICAgICBsZXQgcmVz
dWx0ID0gLTE7Ci0KLSAgICAgIGlmICgvW1x0XG5cciBdLy50ZXN0KG5leHRDaGFyKSkgewotICAg
ICAgICByZXN1bHQgPSBhdHRlbXB0VG9rZW5NYXRjaCgid2hpdGVzcGFjZSIsIHsgbm9GbHVzaFRy
aXZpYTogdHJ1ZSB9KTsKLSAgICAgIH0gZWxzZSBpZiAobmV4dENoYXIgPT09ICcvJykgewotICAg
ICAgICByZXN1bHQgPSBhdHRlbXB0VG9rZW5NYXRjaCgiY29tbWVudCIsIHsgbm9GbHVzaFRyaXZp
YTogdHJ1ZSB9KTsKLSAgICAgIH0KKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfbGliX3ZhbGlk
YXRvcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fID0gX193ZWJwYWNrX3JlcXVpcmVf
XygzMSk7CisvKiBoYXJtb255IHJlZXhwb3J0IChzYWZlKSAqLyBfX3dlYnBhY2tfcmVxdWlyZV9f
LmQoX193ZWJwYWNrX2V4cG9ydHNfXywgInZhbGlkYXRlIiwgZnVuY3Rpb24oKSB7IHJldHVybiBf
bGliX3ZhbGlkYXRvcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fWyJ2YWxpZGF0ZSJd
OyB9KTsKIAotICAgICAgaWYgKHJlc3VsdCAhPT0gLTEpIHsKLSAgICAgICAgdHJpdmlhICs9IHRv
a2Vucy5wb3AoKS52YWx1ZTsKLSAgICAgIH0gZWxzZSBpZiAoL1stMC05Ll0vLnRlc3QobmV4dENo
YXIpKSB7Ci0gICAgICAgIHJlc3VsdCA9IGF0dGVtcHRUb2tlbk1hdGNoKCJmbG9hdCIpOwotICAg
ICAgICBpZiAocmVzdWx0ID09PSAtMSkgewotICAgICAgICAgIHJlc3VsdCA9IGF0dGVtcHRUb2tl
bk1hdGNoKCJpbnRlZ2VyIik7Ci0gICAgICAgIH0KLSAgICAgIH0gZWxzZSBpZiAoL1tBLVpfYS16
XS8udGVzdChuZXh0Q2hhcikpIHsKLSAgICAgICAgcmVzdWx0ID0gYXR0ZW1wdFRva2VuTWF0Y2go
ImlkZW50aWZpZXIiKTsKLSAgICAgICAgY29uc3QgdG9rZW4gPSB0b2tlbnNbdG9rZW5zLmxlbmd0
aCAtIDFdOwotICAgICAgICBpZiAocmVzdWx0ICE9PSAtMSAmJiBub25SZWdleFRlcm1pbmFscy5p
bmNsdWRlcyh0b2tlbi52YWx1ZSkpIHsKLSAgICAgICAgICB0b2tlbi50eXBlID0gdG9rZW4udmFs
dWU7Ci0gICAgICAgIH0KLSAgICAgIH0gZWxzZSBpZiAobmV4dENoYXIgPT09ICciJykgewotICAg
ICAgICByZXN1bHQgPSBhdHRlbXB0VG9rZW5NYXRjaCgic3RyaW5nIik7Ci0gICAgICB9CiAKLSAg
ICAgIGZvciAoY29uc3QgcHVuY3R1YXRpb24gb2YgcHVuY3R1YXRpb25zKSB7Ci0gICAgICAgIGlm
IChzdHIuc3RhcnRzV2l0aChwdW5jdHVhdGlvbiwgbGFzdEluZGV4KSkgewotICAgICAgICAgIHRv
a2Vucy5wdXNoKHsgdHlwZTogcHVuY3R1YXRpb24sIHZhbHVlOiBwdW5jdHVhdGlvbiwgdHJpdmlh
IH0pOwotICAgICAgICAgIHRyaXZpYSA9ICIiOwotICAgICAgICAgIGxhc3RJbmRleCArPSBwdW5j
dHVhdGlvbi5sZW5ndGg7Ci0gICAgICAgICAgcmVzdWx0ID0gbGFzdEluZGV4OwotICAgICAgICAg
IGJyZWFrOwotICAgICAgICB9Ci0gICAgICB9CiAKLSAgICAgIC8vIG90aGVyIGFzIHRoZSBsYXN0
IHRyeQotICAgICAgaWYgKHJlc3VsdCA9PT0gLTEpIHsKLSAgICAgICAgcmVzdWx0ID0gYXR0ZW1w
dFRva2VuTWF0Y2goIm90aGVyIik7Ci0gICAgICB9Ci0gICAgICBpZiAocmVzdWx0ID09PSAtMSkg
ewotICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlRva2VuIHN0cmVhbSBub3QgcHJvZ3Jlc3Npbmci
KTsKLSAgICAgIH0KLSAgICAgIGxhc3RJbmRleCA9IHJlc3VsdDsKLSAgICB9Ci0gICAgcmV0dXJu
IHRva2VuczsKIAotICAgIGZ1bmN0aW9uIGF0dGVtcHRUb2tlbk1hdGNoKHR5cGUsIHsgbm9GbHVz
aFRyaXZpYSB9ID0ge30pIHsKLSAgICAgIGNvbnN0IHJlID0gdG9rZW5SZVt0eXBlXTsKLSAgICAg
IHJlLmxhc3RJbmRleCA9IGxhc3RJbmRleDsKLSAgICAgIGNvbnN0IHJlc3VsdCA9IHJlLmV4ZWMo
c3RyKTsKLSAgICAgIGlmIChyZXN1bHQpIHsKLSAgICAgICAgdG9rZW5zLnB1c2goeyB0eXBlLCB2
YWx1ZTogcmVzdWx0WzBdLCB0cml2aWEgfSk7Ci0gICAgICAgIGlmICghbm9GbHVzaFRyaXZpYSkg
ewotICAgICAgICAgIHRyaXZpYSA9ICIiOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiByZS5s
YXN0SW5kZXg7Ci0gICAgICB9Ci0gICAgICByZXR1cm4gLTE7Ci0gICAgfQotICB9CiAKLSAgY2xh
c3MgV2ViSURMUGFyc2VFcnJvciB7Ci0gICAgY29uc3RydWN0b3Ioc3RyLCBsaW5lLCBpbnB1dCwg
dG9rZW5zKSB7Ci0gICAgICB0aGlzLm1lc3NhZ2UgPSBzdHI7Ci0gICAgICB0aGlzLmxpbmUgPSBs
aW5lOwotICAgICAgdGhpcy5pbnB1dCA9IGlucHV0OwotICAgICAgdGhpcy50b2tlbnMgPSB0b2tl
bnM7Ci0gICAgfQogCi0gICAgdG9TdHJpbmcoKSB7Ci0gICAgICBjb25zdCBlc2NhcGVkSW5wdXQg
PSBKU09OLnN0cmluZ2lmeSh0aGlzLmlucHV0KTsKLSAgICAgIGNvbnN0IHRva2VucyA9IEpTT04u
c3RyaW5naWZ5KHRoaXMudG9rZW5zLCBudWxsLCA0KTsKLSAgICAgIHJldHVybiBgJHt0aGlzLm1l
c3NhZ2V9LCBsaW5lICR7dGhpcy5saW5lfSAodG9rZW5zOiAke2VzY2FwZWRJbnB1dH0pXG4ke3Rv
a2Vuc31gOwotICAgIH0KLSAgfQorLyoqKi8gfSksCisvKiAxICovCisvKioqLyAoZnVuY3Rpb24o
bW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CiAKLSAg
ZnVuY3Rpb24gcGFyc2UodG9rZW5zKSB7Ci0gICAgbGV0IGxpbmUgPSAxOwotICAgIHRva2VucyA9
IHRva2Vucy5zbGljZSgpOwotICAgIGNvbnN0IG5hbWVzID0gbmV3IE1hcCgpOwotICAgIGxldCBj
dXJyZW50ID0gbnVsbDsKKyJ1c2Ugc3RyaWN0IjsKK19fd2VicGFja19yZXF1aXJlX18ucihfX3dl
YnBhY2tfZXhwb3J0c19fKTsKKy8qIGhhcm1vbnkgZXhwb3J0IChiaW5kaW5nKSAqLyBfX3dlYnBh
Y2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgInBhcnNlIiwgZnVuY3Rpb24oKSB7
IHJldHVybiBwYXJzZTsgfSk7CisvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3Rva2VuaXNlcl9q
c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygyKTsK
Ky8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfcHJvZHVjdGlvbnNfZW51bV9qc19fV0VCUEFDS19J
TVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygxNSk7CisvKiBoYXJtb255
IGltcG9ydCAqLyB2YXIgX3Byb2R1Y3Rpb25zX2luY2x1ZGVzX2pzX19XRUJQQUNLX0lNUE9SVEVE
X01PRFVMRV8yX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDE2KTsKKy8qIGhhcm1vbnkgaW1wb3J0
ICovIHZhciBfcHJvZHVjdGlvbnNfZXh0ZW5kZWRfYXR0cmlidXRlc19qc19fV0VCUEFDS19JTVBP
UlRFRF9NT0RVTEVfM19fID0gX193ZWJwYWNrX3JlcXVpcmVfXygxMCk7CisvKiBoYXJtb255IGlt
cG9ydCAqLyB2YXIgX3Byb2R1Y3Rpb25zX3R5cGVkZWZfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9E
VUxFXzRfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMTcpOworLyogaGFybW9ueSBpbXBvcnQgKi8g
dmFyIF9wcm9kdWN0aW9uc19jYWxsYmFja19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9f
ID0gX193ZWJwYWNrX3JlcXVpcmVfXygxOCk7CisvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3By
b2R1Y3Rpb25zX2ludGVyZmFjZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fID0gX193
ZWJwYWNrX3JlcXVpcmVfXygxOSk7CisvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3Byb2R1Y3Rp
b25zX21peGluX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV83X18gPSBfX3dlYnBhY2tfcmVx
dWlyZV9fKDI1KTsKKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfcHJvZHVjdGlvbnNfZGljdGlv
bmFyeV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOF9fID0gX193ZWJwYWNrX3JlcXVpcmVf
XygyNik7CisvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3Byb2R1Y3Rpb25zX25hbWVzcGFjZV9q
c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygyOCk7
CisvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3Byb2R1Y3Rpb25zX2NhbGxiYWNrX2ludGVyZmFj
ZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTBfXyA9IF9fd2VicGFja19yZXF1aXJlX18o
MjkpOwogCi0gICAgY29uc3QgRkxPQVQgPSAiZmxvYXQiOwotICAgIGNvbnN0IElOVCA9ICJpbnRl
Z2VyIjsKLSAgICBjb25zdCBJRCA9ICJpZGVudGlmaWVyIjsKLSAgICBjb25zdCBTVFIgPSAic3Ry
aW5nIjsKLSAgICBjb25zdCBPVEhFUiA9ICJvdGhlciI7CiAKLSAgICBjb25zdCBFTVBUWV9PUEVS
QVRJT04gPSBPYmplY3QuZnJlZXplKHsKLSAgICAgIHR5cGU6ICJvcGVyYXRpb24iLAotICAgICAg
Z2V0dGVyOiBmYWxzZSwKLSAgICAgIHNldHRlcjogZmFsc2UsCi0gICAgICBkZWxldGVyOiBmYWxz
ZSwKLSAgICAgIHN0YXRpYzogZmFsc2UsCi0gICAgICBzdHJpbmdpZmllcjogZmFsc2UKLSAgICB9
KTsKIAotICAgIGNvbnN0IEVNUFRZX0lETFRZUEUgPSBPYmplY3QuZnJlZXplKHsKLSAgICAgIGdl
bmVyaWM6IG51bGwsCi0gICAgICBudWxsYWJsZTogZmFsc2UsCi0gICAgICB1bmlvbjogZmFsc2Us
Ci0gICAgICBpZGxUeXBlOiBudWxsLAotICAgICAgZXh0QXR0cnM6IFtdCi0gICAgfSk7CiAKLSAg
ICBmdW5jdGlvbiBlcnJvcihzdHIpIHsKLSAgICAgIGNvbnN0IG1heFRva2VucyA9IDU7Ci0gICAg
ICBjb25zdCB0b2sgPSB0b2tlbnMKLSAgICAgICAgLnNsaWNlKGNvbnN1bWVfcG9zaXRpb24sIGNv
bnN1bWVfcG9zaXRpb24gKyBtYXhUb2tlbnMpCi0gICAgICAgIC5tYXAodCA9PiB0LnRyaXZpYSAr
IHQudmFsdWUpLmpvaW4oIiIpOwotICAgICAgLy8gQ291bnQgbmV3bGluZXMgcHJlY2VkaW5nIHRo
ZSBhY3R1YWwgZXJyb25lb3VzIHRva2VuCi0gICAgICBpZiAodG9rZW5zLmxlbmd0aCkgewotICAg
ICAgICBsaW5lICs9IGNvdW50KHRva2Vuc1tjb25zdW1lX3Bvc2l0aW9uXS50cml2aWEsICJcbiIp
OwotICAgICAgfQogCi0gICAgICBsZXQgbWVzc2FnZTsKLSAgICAgIGlmIChjdXJyZW50KSB7Ci0g
ICAgICAgIG1lc3NhZ2UgPSBgR290IGFuIGVycm9yIGR1cmluZyBvciByaWdodCBhZnRlciBwYXJz
aW5nIFxgJHtjdXJyZW50LnBhcnRpYWwgPyAicGFydGlhbCAiIDogIiJ9JHtjdXJyZW50LnR5cGV9
ICR7Y3VycmVudC5uYW1lfVxgOiAke3N0cn1gCi0gICAgICB9Ci0gICAgICBlbHNlIHsKLSAgICAg
ICAgLy8gdGhyb3dpbmcgYmVmb3JlIGFueSB2YWxpZCBkZWZpbml0aW9uCi0gICAgICAgIG1lc3Nh
Z2UgPSBgR290IGFuIGVycm9yIGJlZm9yZSBwYXJzaW5nIGFueSBuYW1lZCBkZWZpbml0aW9uOiAk
e3N0cn1gOwotICAgICAgfQogCi0gICAgICB0aHJvdyBuZXcgV2ViSURMUGFyc2VFcnJvcihtZXNz
YWdlLCBsaW5lLCB0b2ssIHRva2Vucy5zbGljZSgwLCBtYXhUb2tlbnMpKTsKLSAgICB9CiAKLSAg
ICBmdW5jdGlvbiBzYW5pdGl6ZV9uYW1lKG5hbWUsIHR5cGUpIHsKLSAgICAgIGlmIChuYW1lcy5o
YXMobmFtZSkpIHsKLSAgICAgICAgZXJyb3IoYFRoZSBuYW1lICIke25hbWV9IiBvZiB0eXBlICIk
e25hbWVzLmdldChuYW1lKX0iIGlzIGFscmVhZHkgc2VlbmApOwotICAgICAgfQotICAgICAgbmFt
ZXMuc2V0KG5hbWUsIHR5cGUpOwotICAgICAgcmV0dXJuIG5hbWU7Ci0gICAgfQogCi0gICAgbGV0
IGNvbnN1bWVfcG9zaXRpb24gPSAwOwogCi0gICAgZnVuY3Rpb24gcHJvYmUodHlwZSkgewotICAg
ICAgcmV0dXJuIHRva2Vucy5sZW5ndGggPiBjb25zdW1lX3Bvc2l0aW9uICYmIHRva2Vuc1tjb25z
dW1lX3Bvc2l0aW9uXS50eXBlID09PSB0eXBlOwotICAgIH0KIAotICAgIGZ1bmN0aW9uIGNvbnN1
bWUoLi4uY2FuZGlkYXRlcykgewotICAgICAgLy8gVE9ETzogdXNlIGNvbnN0IHdoZW4gU2Vydm8g
dXBkYXRlcyBpdHMgSlMgZW5naW5lCi0gICAgICBmb3IgKGxldCB0eXBlIG9mIGNhbmRpZGF0ZXMp
IHsKLSAgICAgICAgaWYgKCFwcm9iZSh0eXBlKSkgY29udGludWU7Ci0gICAgICAgIGNvbnN0IHRv
a2VuID0gdG9rZW5zW2NvbnN1bWVfcG9zaXRpb25dOwotICAgICAgICBjb25zdW1lX3Bvc2l0aW9u
Kys7Ci0gICAgICAgIGxpbmUgKz0gY291bnQodG9rZW4udHJpdmlhLCAiXG4iKTsKLSAgICAgICAg
cmV0dXJuIHRva2VuOwotICAgICAgfQotICAgIH0KIAotICAgIGZ1bmN0aW9uIHVuZXNjYXBlKGlk
ZW50aWZpZXIpIHsKLSAgICAgIHJldHVybiBpZGVudGlmaWVyLnN0YXJ0c1dpdGgoJ18nKSA/IGlk
ZW50aWZpZXIuc2xpY2UoMSkgOiBpZGVudGlmaWVyOwotICAgIH0KIAotICAgIGZ1bmN0aW9uIHVu
Y29uc3VtZShwb3NpdGlvbikgewotICAgICAgd2hpbGUgKGNvbnN1bWVfcG9zaXRpb24gPiBwb3Np
dGlvbikgewotICAgICAgICBjb25zdW1lX3Bvc2l0aW9uLS07Ci0gICAgICAgIGxpbmUgLT0gY291
bnQodG9rZW5zW2NvbnN1bWVfcG9zaXRpb25dLnRyaXZpYSwgIlxuIik7Ci0gICAgICB9Ci0gICAg
fQogCi0gICAgZnVuY3Rpb24gY291bnQoc3RyLCBjaGFyKSB7Ci0gICAgICBsZXQgdG90YWwgPSAw
OwotICAgICAgZm9yIChsZXQgaSA9IHN0ci5pbmRleE9mKGNoYXIpOyBpICE9PSAtMTsgaSA9IHN0
ci5pbmRleE9mKGNoYXIsIGkgKyAxKSkgewotICAgICAgICArK3RvdGFsOwotICAgICAgfQotICAg
ICAgcmV0dXJuIHRvdGFsOworCisvKioKKyAqIEBwYXJhbSB7VG9rZW5pc2VyfSB0b2tlbmlzZXIK
KyAqIEBwYXJhbSB7b2JqZWN0fSBvcHRpb25zCisgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25z
LmNvbmNyZXRlXQorICovCitmdW5jdGlvbiBwYXJzZUJ5VG9rZW5zKHRva2VuaXNlciwgb3B0aW9u
cykgeworICBjb25zdCBzb3VyY2UgPSB0b2tlbmlzZXIuc291cmNlOworCisgIGZ1bmN0aW9uIGVy
cm9yKHN0cikgeworICAgIHRva2VuaXNlci5lcnJvcihzdHIpOworICB9CisKKyAgZnVuY3Rpb24g
Y29uc3VtZSguLi5jYW5kaWRhdGVzKSB7CisgICAgcmV0dXJuIHRva2VuaXNlci5jb25zdW1lKC4u
LmNhbmRpZGF0ZXMpOworICB9CisKKyAgZnVuY3Rpb24gY2FsbGJhY2soKSB7CisgICAgY29uc3Qg
Y2FsbGJhY2sgPSBjb25zdW1lKCJjYWxsYmFjayIpOworICAgIGlmICghY2FsbGJhY2spIHJldHVy
bjsKKyAgICBpZiAodG9rZW5pc2VyLnByb2JlKCJpbnRlcmZhY2UiKSkgeworICAgICAgcmV0dXJu
IF9wcm9kdWN0aW9uc19jYWxsYmFja19pbnRlcmZhY2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9E
VUxFXzEwX19bIkNhbGxiYWNrSW50ZXJmYWNlIl0ucGFyc2UodG9rZW5pc2VyLCBjYWxsYmFjayk7
CiAgICAgfQorICAgIHJldHVybiBfcHJvZHVjdGlvbnNfY2FsbGJhY2tfanNfX1dFQlBBQ0tfSU1Q
T1JURURfTU9EVUxFXzVfX1siQ2FsbGJhY2tGdW5jdGlvbiJdLnBhcnNlKHRva2VuaXNlciwgY2Fs
bGJhY2spOworICB9CiAKLSAgICBmdW5jdGlvbiBpbnRlZ2VyX3R5cGUoKSB7Ci0gICAgICBsZXQg
cmV0ID0gIiI7Ci0gICAgICBpZiAoY29uc3VtZSgidW5zaWduZWQiKSkgcmV0ID0gInVuc2lnbmVk
ICI7Ci0gICAgICBpZiAoY29uc3VtZSgic2hvcnQiKSkgcmV0dXJuIHJldCArICJzaG9ydCI7Ci0g
ICAgICBpZiAoY29uc3VtZSgibG9uZyIpKSB7Ci0gICAgICAgIHJldCArPSAibG9uZyI7Ci0gICAg
ICAgIGlmIChjb25zdW1lKCJsb25nIikpIHJldHVybiByZXQgKyAiIGxvbmciOwotICAgICAgICBy
ZXR1cm4gcmV0OworICBmdW5jdGlvbiBpbnRlcmZhY2VfKG9wdHMpIHsKKyAgICBjb25zdCBiYXNl
ID0gY29uc3VtZSgiaW50ZXJmYWNlIik7CisgICAgaWYgKCFiYXNlKSByZXR1cm47CisgICAgY29u
c3QgcmV0ID0gX3Byb2R1Y3Rpb25zX21peGluX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV83
X19bIk1peGluIl0ucGFyc2UodG9rZW5pc2VyLCBiYXNlLCBvcHRzKSB8fAorICAgICAgX3Byb2R1
Y3Rpb25zX2ludGVyZmFjZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fWyJJbnRlcmZh
Y2UiXS5wYXJzZSh0b2tlbmlzZXIsIGJhc2UsIG9wdHMpIHx8CisgICAgICBlcnJvcigiSW50ZXJm
YWNlIGhhcyBubyBwcm9wZXIgYm9keSIpOworICAgIHJldHVybiByZXQ7CisgIH0KKworICBmdW5j
dGlvbiBwYXJ0aWFsKCkgeworICAgIGNvbnN0IHBhcnRpYWwgPSBjb25zdW1lKCJwYXJ0aWFsIik7
CisgICAgaWYgKCFwYXJ0aWFsKSByZXR1cm47CisgICAgcmV0dXJuIF9wcm9kdWN0aW9uc19kaWN0
aW9uYXJ5X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV84X19bIkRpY3Rpb25hcnkiXS5wYXJz
ZSh0b2tlbmlzZXIsIHsgcGFydGlhbCB9KSB8fAorICAgICAgaW50ZXJmYWNlXyh7IHBhcnRpYWwg
fSkgfHwKKyAgICAgIF9wcm9kdWN0aW9uc19uYW1lc3BhY2VfanNfX1dFQlBBQ0tfSU1QT1JURURf
TU9EVUxFXzlfX1siTmFtZXNwYWNlIl0ucGFyc2UodG9rZW5pc2VyLCB7IHBhcnRpYWwgfSkgfHwK
KyAgICAgIGVycm9yKCJQYXJ0aWFsIGRvZXNuJ3QgYXBwbHkgdG8gYW55dGhpbmciKTsKKyAgfQor
CisgIGZ1bmN0aW9uIGRlZmluaXRpb24oKSB7CisgICAgcmV0dXJuIGNhbGxiYWNrKCkgfHwKKyAg
ICAgIGludGVyZmFjZV8oKSB8fAorICAgICAgcGFydGlhbCgpIHx8CisgICAgICBfcHJvZHVjdGlv
bnNfZGljdGlvbmFyeV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOF9fWyJEaWN0aW9uYXJ5
Il0ucGFyc2UodG9rZW5pc2VyKSB8fAorICAgICAgX3Byb2R1Y3Rpb25zX2VudW1fanNfX1dFQlBB
Q0tfSU1QT1JURURfTU9EVUxFXzFfX1siRW51bSJdLnBhcnNlKHRva2VuaXNlcikgfHwKKyAgICAg
IF9wcm9kdWN0aW9uc190eXBlZGVmX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X19bIlR5
cGVkZWYiXS5wYXJzZSh0b2tlbmlzZXIpIHx8CisgICAgICBfcHJvZHVjdGlvbnNfaW5jbHVkZXNf
anNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX1siSW5jbHVkZXMiXS5wYXJzZSh0b2tlbmlz
ZXIpIHx8CisgICAgICBfcHJvZHVjdGlvbnNfbmFtZXNwYWNlX2pzX19XRUJQQUNLX0lNUE9SVEVE
X01PRFVMRV85X19bIk5hbWVzcGFjZSJdLnBhcnNlKHRva2VuaXNlcik7CisgIH0KKworICBmdW5j
dGlvbiBkZWZpbml0aW9ucygpIHsKKyAgICBpZiAoIXNvdXJjZS5sZW5ndGgpIHJldHVybiBbXTsK
KyAgICBjb25zdCBkZWZzID0gW107CisgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgIGNvbnN0IGVh
ID0gX3Byb2R1Y3Rpb25zX2V4dGVuZGVkX2F0dHJpYnV0ZXNfanNfX1dFQlBBQ0tfSU1QT1JURURf
TU9EVUxFXzNfX1siRXh0ZW5kZWRBdHRyaWJ1dGVzIl0ucGFyc2UodG9rZW5pc2VyKTsKKyAgICAg
IGNvbnN0IGRlZiA9IGRlZmluaXRpb24oKTsKKyAgICAgIGlmICghZGVmKSB7CisgICAgICAgIGlm
IChlYS5sZW5ndGgpIGVycm9yKCJTdHJheSBleHRlbmRlZCBhdHRyaWJ1dGVzIik7CisgICAgICAg
IGJyZWFrOwogICAgICAgfQotICAgICAgaWYgKHJldCkgZXJyb3IoIkZhaWxlZCB0byBwYXJzZSBp
bnRlZ2VyIHR5cGUiKTsKKyAgICAgIGRlZi5leHRBdHRycyA9IGVhOworICAgICAgZGVmcy5wdXNo
KGRlZik7CiAgICAgfQotCi0gICAgZnVuY3Rpb24gZmxvYXRfdHlwZSgpIHsKLSAgICAgIGxldCBy
ZXQgPSAiIjsKLSAgICAgIGlmIChjb25zdW1lKCJ1bnJlc3RyaWN0ZWQiKSkgcmV0ID0gInVucmVz
dHJpY3RlZCAiOwotICAgICAgaWYgKGNvbnN1bWUoImZsb2F0IikpIHJldHVybiByZXQgKyAiZmxv
YXQiOwotICAgICAgaWYgKGNvbnN1bWUoImRvdWJsZSIpKSByZXR1cm4gcmV0ICsgImRvdWJsZSI7
Ci0gICAgICBpZiAocmV0KSBlcnJvcigiRmFpbGVkIHRvIHBhcnNlIGZsb2F0IHR5cGUiKTsKKyAg
ICBjb25zdCBlb2YgPSBjb25zdW1lKCJlb2YiKTsKKyAgICBpZiAob3B0aW9ucy5jb25jcmV0ZSkg
eworICAgICAgZGVmcy5wdXNoKGVvZik7CiAgICAgfQorICAgIHJldHVybiBkZWZzOworICB9Cisg
IGNvbnN0IHJlcyA9IGRlZmluaXRpb25zKCk7CisgIGlmICh0b2tlbmlzZXIucG9zaXRpb24gPCBz
b3VyY2UubGVuZ3RoKSBlcnJvcigiVW5yZWNvZ25pc2VkIHRva2VucyIpOworICByZXR1cm4gcmVz
OworfQorCitmdW5jdGlvbiBwYXJzZShzdHIsIG9wdGlvbnMgPSB7fSkgeworICBjb25zdCB0b2tl
bmlzZXIgPSBuZXcgX3Rva2VuaXNlcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJU
b2tlbmlzZXIiXShzdHIpOworICBpZiAodHlwZW9mIG9wdGlvbnMuc291cmNlTmFtZSAhPT0gInVu
ZGVmaW5lZCIpIHsKKyAgICB0b2tlbmlzZXIuc291cmNlLm5hbWUgPSBvcHRpb25zLnNvdXJjZU5h
bWU7CisgIH0KKyAgcmV0dXJuIHBhcnNlQnlUb2tlbnModG9rZW5pc2VyLCBvcHRpb25zKTsKK30K
IAotICAgIGZ1bmN0aW9uIHByaW1pdGl2ZV90eXBlKCkgewotICAgICAgY29uc3QgbnVtX3R5cGUg
PSBpbnRlZ2VyX3R5cGUoKSB8fCBmbG9hdF90eXBlKCk7Ci0gICAgICBpZiAobnVtX3R5cGUpIHJl
dHVybiBudW1fdHlwZTsKLSAgICAgIGlmIChjb25zdW1lKCJib29sZWFuIikpIHJldHVybiAiYm9v
bGVhbiI7Ci0gICAgICBpZiAoY29uc3VtZSgiYnl0ZSIpKSByZXR1cm4gImJ5dGUiOwotICAgICAg
aWYgKGNvbnN1bWUoIm9jdGV0IikpIHJldHVybiAib2N0ZXQiOwotICAgIH0KIAotICAgIGZ1bmN0
aW9uIGNvbnN0X3ZhbHVlKCkgewotICAgICAgaWYgKGNvbnN1bWUoInRydWUiKSkgcmV0dXJuIHsg
dHlwZTogImJvb2xlYW4iLCB2YWx1ZTogdHJ1ZSB9OwotICAgICAgaWYgKGNvbnN1bWUoImZhbHNl
IikpIHJldHVybiB7IHR5cGU6ICJib29sZWFuIiwgdmFsdWU6IGZhbHNlIH07Ci0gICAgICBpZiAo
Y29uc3VtZSgibnVsbCIpKSByZXR1cm4geyB0eXBlOiAibnVsbCIgfTsKLSAgICAgIGlmIChjb25z
dW1lKCJJbmZpbml0eSIpKSByZXR1cm4geyB0eXBlOiAiSW5maW5pdHkiLCBuZWdhdGl2ZTogZmFs
c2UgfTsKLSAgICAgIGlmIChjb25zdW1lKCItSW5maW5pdHkiKSkgcmV0dXJuIHsgdHlwZTogIklu
ZmluaXR5IiwgbmVnYXRpdmU6IHRydWUgfTsKLSAgICAgIGlmIChjb25zdW1lKCJOYU4iKSkgcmV0
dXJuIHsgdHlwZTogIk5hTiIgfTsKLSAgICAgIGNvbnN0IHJldCA9IGNvbnN1bWUoRkxPQVQsIElO
VCk7Ci0gICAgICBpZiAocmV0KSByZXR1cm4geyB0eXBlOiAibnVtYmVyIiwgdmFsdWU6IHJldC52
YWx1ZSB9OwotICAgIH0KKy8qKiovIH0pLAorLyogMiAqLworLyoqKi8gKGZ1bmN0aW9uKG1vZHVs
ZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgewogCi0gICAgZnVu
Y3Rpb24gdHlwZV9zdWZmaXgob2JqKSB7Ci0gICAgICBvYmoubnVsbGFibGUgPSAhIWNvbnN1bWUo
Ij8iKTsKLSAgICAgIGlmIChwcm9iZSgiPyIpKSBlcnJvcigiQ2FuJ3QgbnVsbGFibGUgbW9yZSB0
aGFuIG9uY2UiKTsKKyJ1c2Ugc3RyaWN0IjsKK19fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBh
Y2tfZXhwb3J0c19fKTsKKy8qIGhhcm1vbnkgZXhwb3J0IChiaW5kaW5nKSAqLyBfX3dlYnBhY2tf
cmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgInN0cmluZ1R5cGVzIiwgZnVuY3Rpb24o
KSB7IHJldHVybiBzdHJpbmdUeXBlczsgfSk7CisvKiBoYXJtb255IGV4cG9ydCAoYmluZGluZykg
Ki8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sICJhcmd1bWVudE5h
bWVLZXl3b3JkcyIsIGZ1bmN0aW9uKCkgeyByZXR1cm4gYXJndW1lbnROYW1lS2V5d29yZHM7IH0p
OworLyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFja19yZXF1aXJlX18uZChf
X3dlYnBhY2tfZXhwb3J0c19fLCAiVG9rZW5pc2VyIiwgZnVuY3Rpb24oKSB7IHJldHVybiBUb2tl
bmlzZXI7IH0pOworLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9lcnJvcl9qc19fV0VCUEFDS19J
TVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygzKTsKKy8qIGhhcm1vbnkg
aW1wb3J0ICovIHZhciBfcHJvZHVjdGlvbnNfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9N
T0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg0KTsKKworCisKKy8vIFRoZXNlIHJlZ3Vs
YXIgZXhwcmVzc2lvbnMgdXNlIHRoZSBzdGlja3kgZmxhZyBzbyB0aGV5IHdpbGwgb25seSBtYXRj
aCBhdAorLy8gdGhlIGN1cnJlbnQgbG9jYXRpb24gKGllLiB0aGUgb2Zmc2V0IG9mIGxhc3RJbmRl
eCkuCitjb25zdCB0b2tlblJlID0geworICAvLyBUaGlzIGV4cHJlc3Npb24gdXNlcyBhIGxvb2th
aGVhZCBhc3NlcnRpb24gdG8gY2F0Y2ggZmFsc2UgbWF0Y2hlcworICAvLyBhZ2FpbnN0IGludGVn
ZXJzIGVhcmx5LgorICAiZGVjaW1hbCI6IC8tPyg/PVswLTldKlwufFswLTldK1tlRV0pKChbMC05
XStcLlswLTldKnxbMC05XSpcLlswLTldKykoW0VlXVstK10/WzAtOV0rKT98WzAtOV0rW0VlXVst
K10/WzAtOV0rKS95LAorICAiaW50ZWdlciI6IC8tPygwKFtYeF1bMC05QS1GYS1mXSt8WzAtN10q
KXxbMS05XVswLTldKikveSwKKyAgImlkZW50aWZpZXIiOiAvW18tXT9bQS1aYS16XVswLTlBLVpf
YS16LV0qL3ksCisgICJzdHJpbmciOiAvIlteIl0qIi95LAorICAid2hpdGVzcGFjZSI6IC9bXHRc
blxyIF0rL3ksCisgICJjb21tZW50IjogLygoXC8oXC8uKnxcKihbXipdfFwqW14vXSkqXCpcLylb
XHRcblxyIF0qKSspL3ksCisgICJvdGhlciI6IC9bXlx0XG5cciAwLTlBLVphLXpdL3kKK307CisK
K2NvbnN0IHN0cmluZ1R5cGVzID0gWworICAiQnl0ZVN0cmluZyIsCisgICJET01TdHJpbmciLAor
ICAiVVNWU3RyaW5nIgorXTsKKworY29uc3QgYXJndW1lbnROYW1lS2V5d29yZHMgPSBbCisgICJh
c3luYyIsCisgICJhdHRyaWJ1dGUiLAorICAiY2FsbGJhY2siLAorICAiY29uc3QiLAorICAiY29u
c3RydWN0b3IiLAorICAiZGVsZXRlciIsCisgICJkaWN0aW9uYXJ5IiwKKyAgImVudW0iLAorICAi
Z2V0dGVyIiwKKyAgImluY2x1ZGVzIiwKKyAgImluaGVyaXQiLAorICAiaW50ZXJmYWNlIiwKKyAg
Iml0ZXJhYmxlIiwKKyAgIm1hcGxpa2UiLAorICAibmFtZXNwYWNlIiwKKyAgInBhcnRpYWwiLAor
ICAicmVxdWlyZWQiLAorICAic2V0bGlrZSIsCisgICJzZXR0ZXIiLAorICAic3RhdGljIiwKKyAg
InN0cmluZ2lmaWVyIiwKKyAgInR5cGVkZWYiLAorICAidW5yZXN0cmljdGVkIgorXTsKKworY29u
c3Qgbm9uUmVnZXhUZXJtaW5hbHMgPSBbCisgICItSW5maW5pdHkiLAorICAiRnJvemVuQXJyYXki
LAorICAiSW5maW5pdHkiLAorICAiTmFOIiwKKyAgIlByb21pc2UiLAorICAiYXN5bmMiLAorICAi
Ym9vbGVhbiIsCisgICJieXRlIiwKKyAgImNvbnN0cnVjdG9yIiwKKyAgImRvdWJsZSIsCisgICJm
YWxzZSIsCisgICJmbG9hdCIsCisgICJsb25nIiwKKyAgIm1peGluIiwKKyAgIm51bGwiLAorICAi
b2N0ZXQiLAorICAib3B0aW9uYWwiLAorICAib3IiLAorICAicmVhZG9ubHkiLAorICAicmVjb3Jk
IiwKKyAgInNlcXVlbmNlIiwKKyAgInNob3J0IiwKKyAgInRydWUiLAorICAidW5zaWduZWQiLAor
ICAidm9pZCIKK10uY29uY2F0KGFyZ3VtZW50TmFtZUtleXdvcmRzLCBzdHJpbmdUeXBlcyk7CisK
K2NvbnN0IHB1bmN0dWF0aW9ucyA9IFsKKyAgIigiLAorICAiKSIsCisgICIsIiwKKyAgIi4uLiIs
CisgICI6IiwKKyAgIjsiLAorICAiPCIsCisgICI9IiwKKyAgIj4iLAorICAiPyIsCisgICJbIiwK
KyAgIl0iLAorICAieyIsCisgICJ9IgorXTsKKworY29uc3QgcmVzZXJ2ZWQgPSBbCisgIC8vICJj
b25zdHJ1Y3RvciIgaXMgbm93IGEga2V5d29yZAorICAiX2NvbnN0cnVjdG9yIiwKKyAgInRvU3Ry
aW5nIiwKKyAgIl90b1N0cmluZyIsCitdOworCisvKioKKyAqIEBwYXJhbSB7c3RyaW5nfSBzdHIK
KyAqLworZnVuY3Rpb24gdG9rZW5pc2Uoc3RyKSB7CisgIGNvbnN0IHRva2VucyA9IFtdOworICBs
ZXQgbGFzdENoYXJJbmRleCA9IDA7CisgIGxldCB0cml2aWEgPSAiIjsKKyAgbGV0IGxpbmUgPSAx
OworICBsZXQgaW5kZXggPSAwOworICB3aGlsZSAobGFzdENoYXJJbmRleCA8IHN0ci5sZW5ndGgp
IHsKKyAgICBjb25zdCBuZXh0Q2hhciA9IHN0ci5jaGFyQXQobGFzdENoYXJJbmRleCk7CisgICAg
bGV0IHJlc3VsdCA9IC0xOworCisgICAgaWYgKC9bXHRcblxyIF0vLnRlc3QobmV4dENoYXIpKSB7
CisgICAgICByZXN1bHQgPSBhdHRlbXB0VG9rZW5NYXRjaCgid2hpdGVzcGFjZSIsIHsgbm9GbHVz
aFRyaXZpYTogdHJ1ZSB9KTsKKyAgICB9IGVsc2UgaWYgKG5leHRDaGFyID09PSAnLycpIHsKKyAg
ICAgIHJlc3VsdCA9IGF0dGVtcHRUb2tlbk1hdGNoKCJjb21tZW50IiwgeyBub0ZsdXNoVHJpdmlh
OiB0cnVlIH0pOwogICAgIH0KIAotICAgIGZ1bmN0aW9uIGdlbmVyaWNfdHlwZSh0eXBlTmFtZSkg
ewotICAgICAgY29uc3QgbmFtZSA9IGNvbnN1bWUoIkZyb3plbkFycmF5IiwgIlByb21pc2UiLCAi
c2VxdWVuY2UiLCAicmVjb3JkIik7Ci0gICAgICBpZiAoIW5hbWUpIHsKLSAgICAgICAgcmV0dXJu
OwotICAgICAgfQotICAgICAgY29uc3QgcmV0ID0geyBnZW5lcmljOiBuYW1lLnR5cGUgfTsKLSAg
ICAgIGNvbnN1bWUoIjwiKSB8fCBlcnJvcihgTm8gb3BlbmluZyBicmFja2V0IGFmdGVyICR7bmFt
ZS50eXBlfWApOwotICAgICAgc3dpdGNoIChuYW1lLnR5cGUpIHsKLSAgICAgICAgY2FzZSAiUHJv
bWlzZSI6Ci0gICAgICAgICAgaWYgKHByb2JlKCJbIikpIGVycm9yKCJQcm9taXNlIHR5cGUgY2Fu
bm90IGhhdmUgZXh0ZW5kZWQgYXR0cmlidXRlIik7Ci0gICAgICAgICAgcmV0LmlkbFR5cGUgPSBy
ZXR1cm5fdHlwZSh0eXBlTmFtZSk7Ci0gICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgInNl
cXVlbmNlIjoKLSAgICAgICAgY2FzZSAiRnJvemVuQXJyYXkiOgotICAgICAgICAgIHJldC5pZGxU
eXBlID0gdHlwZV93aXRoX2V4dGVuZGVkX2F0dHJpYnV0ZXModHlwZU5hbWUpOwotICAgICAgICAg
IGJyZWFrOwotICAgICAgICBjYXNlICJyZWNvcmQiOgotICAgICAgICAgIGlmIChwcm9iZSgiWyIp
KSBlcnJvcigiUmVjb3JkIGtleSBjYW5ub3QgaGF2ZSBleHRlbmRlZCBhdHRyaWJ1dGUiKTsKLSAg
ICAgICAgICByZXQuaWRsVHlwZSA9IFtdOwotICAgICAgICAgIGNvbnN0IGtleVR5cGUgPSBjb25z
dW1lKC4uLnN0cmluZ1R5cGVzKTsKLSAgICAgICAgICBpZiAoIWtleVR5cGUpIGVycm9yKGBSZWNv
cmQga2V5IG11c3QgYmUgYSBzdHJpbmcgdHlwZWApOwotICAgICAgICAgIHJldC5pZGxUeXBlLnB1
c2goT2JqZWN0LmFzc2lnbih7IHR5cGU6IHR5cGVOYW1lIH0sIEVNUFRZX0lETFRZUEUsIHsgaWRs
VHlwZToga2V5VHlwZS52YWx1ZSB9KSk7Ci0gICAgICAgICAgY29uc3VtZSgiLCIpIHx8IGVycm9y
KCJNaXNzaW5nIGNvbW1hIGFmdGVyIHJlY29yZCBrZXkgdHlwZSIpOwotICAgICAgICAgIGNvbnN0
IHZhbHVlVHlwZSA9IHR5cGVfd2l0aF9leHRlbmRlZF9hdHRyaWJ1dGVzKHR5cGVOYW1lKSB8fCBl
cnJvcigiRXJyb3IgcGFyc2luZyBnZW5lcmljIHR5cGUgcmVjb3JkIik7Ci0gICAgICAgICAgcmV0
LmlkbFR5cGUucHVzaCh2YWx1ZVR5cGUpOwotICAgICAgICAgIGJyZWFrOworICAgIGlmIChyZXN1
bHQgIT09IC0xKSB7CisgICAgICBjb25zdCBjdXJyZW50VHJpdmlhID0gdG9rZW5zLnBvcCgpLnZh
bHVlOworICAgICAgbGluZSArPSAoY3VycmVudFRyaXZpYS5tYXRjaCgvXG4vZykgfHwgW10pLmxl
bmd0aDsKKyAgICAgIHRyaXZpYSArPSBjdXJyZW50VHJpdmlhOworICAgICAgaW5kZXggLT0gMTsK
KyAgICB9IGVsc2UgaWYgKC9bLTAtOS5BLVpfYS16XS8udGVzdChuZXh0Q2hhcikpIHsKKyAgICAg
IHJlc3VsdCA9IGF0dGVtcHRUb2tlbk1hdGNoKCJkZWNpbWFsIik7CisgICAgICBpZiAocmVzdWx0
ID09PSAtMSkgeworICAgICAgICByZXN1bHQgPSBhdHRlbXB0VG9rZW5NYXRjaCgiaW50ZWdlciIp
OwogICAgICAgfQotICAgICAgaWYgKCFyZXQuaWRsVHlwZSkgZXJyb3IoYEVycm9yIHBhcnNpbmcg
Z2VuZXJpYyB0eXBlICR7bmFtZS50eXBlfWApOwotICAgICAgY29uc3VtZSgiPiIpIHx8IGVycm9y
KGBNaXNzaW5nIGNsb3NpbmcgYnJhY2tldCBhZnRlciAke25hbWUudHlwZX1gKTsKLSAgICAgIGlm
IChuYW1lLnR5cGUgPT09ICJQcm9taXNlIiAmJiBwcm9iZSgiPyIpKSB7Ci0gICAgICAgIGVycm9y
KCJQcm9taXNlIHR5cGUgY2Fubm90IGJlIG51bGxhYmxlIik7CisgICAgICBpZiAocmVzdWx0ID09
PSAtMSkgeworICAgICAgICByZXN1bHQgPSBhdHRlbXB0VG9rZW5NYXRjaCgiaWRlbnRpZmllciIp
OworICAgICAgICBjb25zdCBsYXN0SW5kZXggPSB0b2tlbnMubGVuZ3RoIC0gMTsKKyAgICAgICAg
Y29uc3QgdG9rZW4gPSB0b2tlbnNbbGFzdEluZGV4XTsKKyAgICAgICAgaWYgKHJlc3VsdCAhPT0g
LTEpIHsKKyAgICAgICAgICBpZiAocmVzZXJ2ZWQuaW5jbHVkZXModG9rZW4udmFsdWUpKSB7Cisg
ICAgICAgICAgICBjb25zdCBtZXNzYWdlID0gYCR7T2JqZWN0KF9wcm9kdWN0aW9uc19oZWxwZXJz
X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19bInVuZXNjYXBlIl0pKHRva2VuLnZhbHVl
KX0gaXMgYSByZXNlcnZlZCBpZGVudGlmaWVyIGFuZCBtdXN0IG5vdCBiZSB1c2VkLmA7CisgICAg
ICAgICAgICB0aHJvdyBuZXcgV2ViSURMUGFyc2VFcnJvcihPYmplY3QoX2Vycm9yX2pzX19XRUJQ
QUNLX0lNUE9SVEVEX01PRFVMRV8wX19bInN5bnRheEVycm9yIl0pKHRva2VucywgbGFzdEluZGV4
LCBudWxsLCBtZXNzYWdlKSk7CisgICAgICAgICAgfSBlbHNlIGlmIChub25SZWdleFRlcm1pbmFs
cy5pbmNsdWRlcyh0b2tlbi52YWx1ZSkpIHsKKyAgICAgICAgICAgIHRva2VuLnR5cGUgPSB0b2tl
bi52YWx1ZTsKKyAgICAgICAgICB9CisgICAgICAgIH0KICAgICAgIH0KLSAgICAgIHR5cGVfc3Vm
Zml4KHJldCk7Ci0gICAgICByZXR1cm4gcmV0OworICAgIH0gZWxzZSBpZiAobmV4dENoYXIgPT09
ICciJykgeworICAgICAgcmVzdWx0ID0gYXR0ZW1wdFRva2VuTWF0Y2goInN0cmluZyIpOwogICAg
IH0KIAotICAgIGZ1bmN0aW9uIHNpbmdsZV90eXBlKHR5cGVOYW1lKSB7Ci0gICAgICBjb25zdCBy
ZXQgPSBPYmplY3QuYXNzaWduKHsgdHlwZTogdHlwZU5hbWUgfHwgbnVsbCB9LCBFTVBUWV9JRExU
WVBFKTsKLSAgICAgIGNvbnN0IGdlbmVyaWMgPSBnZW5lcmljX3R5cGUodHlwZU5hbWUpOwotICAg
ICAgaWYgKGdlbmVyaWMpIHsKLSAgICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24ocmV0LCBnZW5l
cmljKTsKKyAgICBmb3IgKGNvbnN0IHB1bmN0dWF0aW9uIG9mIHB1bmN0dWF0aW9ucykgeworICAg
ICAgaWYgKHN0ci5zdGFydHNXaXRoKHB1bmN0dWF0aW9uLCBsYXN0Q2hhckluZGV4KSkgeworICAg
ICAgICB0b2tlbnMucHVzaCh7IHR5cGU6IHB1bmN0dWF0aW9uLCB2YWx1ZTogcHVuY3R1YXRpb24s
IHRyaXZpYSwgbGluZSwgaW5kZXggfSk7CisgICAgICAgIHRyaXZpYSA9ICIiOworICAgICAgICBs
YXN0Q2hhckluZGV4ICs9IHB1bmN0dWF0aW9uLmxlbmd0aDsKKyAgICAgICAgcmVzdWx0ID0gbGFz
dENoYXJJbmRleDsKKyAgICAgICAgYnJlYWs7CiAgICAgICB9Ci0gICAgICBjb25zdCBwcmltID0g
cHJpbWl0aXZlX3R5cGUoKTsKLSAgICAgIGxldCBuYW1lOwotICAgICAgaWYgKHByaW0pIHsKLSAg
ICAgICAgcmV0LmlkbFR5cGUgPSBwcmltOwotICAgICAgfSBlbHNlIGlmIChuYW1lID0gY29uc3Vt
ZShJRCwgLi4uc3RyaW5nVHlwZXMpKSB7Ci0gICAgICAgIHJldC5pZGxUeXBlID0gbmFtZS52YWx1
ZTsKLSAgICAgICAgaWYgKHByb2JlKCI8IikpIGVycm9yKGBVbnN1cHBvcnRlZCBnZW5lcmljIHR5
cGUgJHtuYW1lLnZhbHVlfWApOwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgcmV0dXJuOwotICAg
ICAgfQotICAgICAgdHlwZV9zdWZmaXgocmV0KTsKLSAgICAgIGlmIChyZXQubnVsbGFibGUgJiYg
cmV0LmlkbFR5cGUgPT09ICJhbnkiKSBlcnJvcigiVHlwZSBhbnkgY2Fubm90IGJlIG1hZGUgbnVs
bGFibGUiKTsKLSAgICAgIHJldHVybiByZXQ7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gdW5pb25f
dHlwZSh0eXBlTmFtZSkgewotICAgICAgaWYgKCFjb25zdW1lKCIoIikpIHJldHVybjsKLSAgICAg
IGNvbnN0IHJldCA9IE9iamVjdC5hc3NpZ24oeyB0eXBlOiB0eXBlTmFtZSB8fCBudWxsIH0sIEVN
UFRZX0lETFRZUEUsIHsgdW5pb246IHRydWUsIGlkbFR5cGU6IFtdIH0pOwotICAgICAgZG8gewot
ICAgICAgICBjb25zdCB0eXAgPSB0eXBlX3dpdGhfZXh0ZW5kZWRfYXR0cmlidXRlcygpIHx8IGVy
cm9yKCJObyB0eXBlIGFmdGVyIG9wZW4gcGFyZW50aGVzaXMgb3IgJ29yJyBpbiB1bmlvbiB0eXBl
Iik7Ci0gICAgICAgIHJldC5pZGxUeXBlLnB1c2godHlwKTsKLSAgICAgIH0gd2hpbGUgKGNvbnN1
bWUoIm9yIikpOwotICAgICAgaWYgKHJldC5pZGxUeXBlLmxlbmd0aCA8IDIpIHsKLSAgICAgICAg
ZXJyb3IoIkF0IGxlYXN0IHR3byB0eXBlcyBhcmUgZXhwZWN0ZWQgaW4gYSB1bmlvbiB0eXBlIGJ1
dCBmb3VuZCBsZXNzIik7Ci0gICAgICB9Ci0gICAgICBpZiAoIWNvbnN1bWUoIikiKSkgZXJyb3Io
IlVudGVybWluYXRlZCB1bmlvbiB0eXBlIik7Ci0gICAgICB0eXBlX3N1ZmZpeChyZXQpOwotICAg
ICAgcmV0dXJuIHJldDsKICAgICB9CiAKLSAgICBmdW5jdGlvbiB0eXBlKHR5cGVOYW1lKSB7Ci0g
ICAgICByZXR1cm4gc2luZ2xlX3R5cGUodHlwZU5hbWUpIHx8IHVuaW9uX3R5cGUodHlwZU5hbWUp
OworICAgIC8vIG90aGVyIGFzIHRoZSBsYXN0IHRyeQorICAgIGlmIChyZXN1bHQgPT09IC0xKSB7
CisgICAgICByZXN1bHQgPSBhdHRlbXB0VG9rZW5NYXRjaCgib3RoZXIiKTsKICAgICB9Ci0KLSAg
ICBmdW5jdGlvbiB0eXBlX3dpdGhfZXh0ZW5kZWRfYXR0cmlidXRlcyh0eXBlTmFtZSkgewotICAg
ICAgY29uc3QgZXh0QXR0cnMgPSBleHRlbmRlZF9hdHRycygpOwotICAgICAgY29uc3QgcmV0ID0g
c2luZ2xlX3R5cGUodHlwZU5hbWUpIHx8IHVuaW9uX3R5cGUodHlwZU5hbWUpOwotICAgICAgaWYg
KGV4dEF0dHJzLmxlbmd0aCAmJiByZXQpIHJldC5leHRBdHRycyA9IGV4dEF0dHJzOwotICAgICAg
cmV0dXJuIHJldDsKKyAgICBpZiAocmVzdWx0ID09PSAtMSkgeworICAgICAgdGhyb3cgbmV3IEVy
cm9yKCJUb2tlbiBzdHJlYW0gbm90IHByb2dyZXNzaW5nIik7CiAgICAgfQorICAgIGxhc3RDaGFy
SW5kZXggPSByZXN1bHQ7CisgICAgaW5kZXggKz0gMTsKKyAgfQogCi0gICAgZnVuY3Rpb24gYXJn
dW1lbnQoKSB7Ci0gICAgICBjb25zdCBzdGFydF9wb3NpdGlvbiA9IGNvbnN1bWVfcG9zaXRpb247
Ci0gICAgICBjb25zdCByZXQgPSB7IG9wdGlvbmFsOiBmYWxzZSwgdmFyaWFkaWM6IGZhbHNlLCBk
ZWZhdWx0OiBudWxsIH07Ci0gICAgICByZXQuZXh0QXR0cnMgPSBleHRlbmRlZF9hdHRycygpOwot
ICAgICAgY29uc3Qgb3B0X3Rva2VuID0gY29uc3VtZSgib3B0aW9uYWwiKTsKLSAgICAgIGlmIChv
cHRfdG9rZW4pIHsKLSAgICAgICAgcmV0Lm9wdGlvbmFsID0gdHJ1ZTsKLSAgICAgIH0KLSAgICAg
IHJldC5pZGxUeXBlID0gdHlwZV93aXRoX2V4dGVuZGVkX2F0dHJpYnV0ZXMoImFyZ3VtZW50LXR5
cGUiKTsKLSAgICAgIGlmICghcmV0LmlkbFR5cGUpIHsKLSAgICAgICAgdW5jb25zdW1lKHN0YXJ0
X3Bvc2l0aW9uKTsKLSAgICAgICAgcmV0dXJuOwotICAgICAgfQotICAgICAgaWYgKCFyZXQub3B0
aW9uYWwgJiYgY29uc3VtZSgiLi4uIikpIHsKLSAgICAgICAgcmV0LnZhcmlhZGljID0gdHJ1ZTsK
LSAgICAgIH0KLSAgICAgIGNvbnN0IG5hbWUgPSBjb25zdW1lKElELCAuLi5hcmd1bWVudE5hbWVL
ZXl3b3Jkcyk7Ci0gICAgICBpZiAoIW5hbWUpIHsKLSAgICAgICAgdW5jb25zdW1lKHN0YXJ0X3Bv
c2l0aW9uKTsKLSAgICAgICAgcmV0dXJuOworICAvLyByZW1haW5pbmcgdHJpdmlhIGFzIGVvZgor
ICB0b2tlbnMucHVzaCh7CisgICAgdHlwZTogImVvZiIsCisgICAgdmFsdWU6ICIiLAorICAgIHRy
aXZpYQorICB9KTsKKworICByZXR1cm4gdG9rZW5zOworCisgIC8qKgorICAgKiBAcGFyYW0ge2tl
eW9mIHRva2VuUmV9IHR5cGUKKyAgICogQHBhcmFtIHtvYmplY3R9IFtvcHRpb25zXQorICAgKiBA
cGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLm5vRmx1c2hUcml2aWFdCisgICAqLworICBmdW5jdGlv
biBhdHRlbXB0VG9rZW5NYXRjaCh0eXBlLCB7IG5vRmx1c2hUcml2aWEgfSA9IHt9KSB7CisgICAg
Y29uc3QgcmUgPSB0b2tlblJlW3R5cGVdOworICAgIHJlLmxhc3RJbmRleCA9IGxhc3RDaGFySW5k
ZXg7CisgICAgY29uc3QgcmVzdWx0ID0gcmUuZXhlYyhzdHIpOworICAgIGlmIChyZXN1bHQpIHsK
KyAgICAgIHRva2Vucy5wdXNoKHsgdHlwZSwgdmFsdWU6IHJlc3VsdFswXSwgdHJpdmlhLCBsaW5l
LCBpbmRleCB9KTsKKyAgICAgIGlmICghbm9GbHVzaFRyaXZpYSkgeworICAgICAgICB0cml2aWEg
PSAiIjsKICAgICAgIH0KLSAgICAgIHJldC5uYW1lID0gdW5lc2NhcGUobmFtZS52YWx1ZSk7Ci0g
ICAgICByZXQuZXNjYXBlZE5hbWUgPSBuYW1lLnZhbHVlOwotICAgICAgaWYgKHJldC5vcHRpb25h
bCkgewotICAgICAgICByZXQuZGVmYXVsdCA9IGRlZmF1bHRfKCkgfHwgbnVsbDsKLSAgICAgIH0K
LSAgICAgIHJldHVybiByZXQ7CisgICAgICByZXR1cm4gcmUubGFzdEluZGV4OwogICAgIH0KKyAg
ICByZXR1cm4gLTE7CisgIH0KK30KKworY2xhc3MgVG9rZW5pc2VyIHsKKyAgLyoqCisgICAqIEBw
YXJhbSB7c3RyaW5nfSBpZGwKKyAgICovCisgIGNvbnN0cnVjdG9yKGlkbCkgeworICAgIHRoaXMu
c291cmNlID0gdG9rZW5pc2UoaWRsKTsKKyAgICB0aGlzLnBvc2l0aW9uID0gMDsKKyAgfQogCi0g
ICAgZnVuY3Rpb24gYXJndW1lbnRfbGlzdCgpIHsKLSAgICAgIGNvbnN0IHJldCA9IFtdOwotICAg
ICAgY29uc3QgYXJnID0gYXJndW1lbnQoKTsKLSAgICAgIGlmICghYXJnKSByZXR1cm4gcmV0Owot
ICAgICAgcmV0LnB1c2goYXJnKTsKLSAgICAgIHdoaWxlICh0cnVlKSB7Ci0gICAgICAgIGlmICgh
Y29uc3VtZSgiLCIpKSByZXR1cm4gcmV0OwotICAgICAgICBjb25zdCBueHQgPSBhcmd1bWVudCgp
IHx8IGVycm9yKCJUcmFpbGluZyBjb21tYSBpbiBhcmd1bWVudHMgbGlzdCIpOwotICAgICAgICBy
ZXQucHVzaChueHQpOwotICAgICAgfQorICAvKioKKyAgICogQHBhcmFtIHtzdHJpbmd9IG1lc3Nh
Z2UKKyAgICovCisgIGVycm9yKG1lc3NhZ2UpIHsKKyAgICB0aHJvdyBuZXcgV2ViSURMUGFyc2VF
cnJvcihPYmplY3QoX2Vycm9yX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bInN5bnRh
eEVycm9yIl0pKHRoaXMuc291cmNlLCB0aGlzLnBvc2l0aW9uLCB0aGlzLmN1cnJlbnQsIG1lc3Nh
Z2UpKTsKKyAgfQorCisgIC8qKgorICAgKiBAcGFyYW0ge3N0cmluZ30gdHlwZQorICAgKi8KKyAg
cHJvYmUodHlwZSkgeworICAgIHJldHVybiB0aGlzLnNvdXJjZS5sZW5ndGggPiB0aGlzLnBvc2l0
aW9uICYmIHRoaXMuc291cmNlW3RoaXMucG9zaXRpb25dLnR5cGUgPT09IHR5cGU7CisgIH0KKwor
ICAvKioKKyAgICogQHBhcmFtICB7Li4uc3RyaW5nfSBjYW5kaWRhdGVzCisgICAqLworICBjb25z
dW1lKC4uLmNhbmRpZGF0ZXMpIHsKKyAgICBmb3IgKGNvbnN0IHR5cGUgb2YgY2FuZGlkYXRlcykg
eworICAgICAgaWYgKCF0aGlzLnByb2JlKHR5cGUpKSBjb250aW51ZTsKKyAgICAgIGNvbnN0IHRv
a2VuID0gdGhpcy5zb3VyY2VbdGhpcy5wb3NpdGlvbl07CisgICAgICB0aGlzLnBvc2l0aW9uKys7
CisgICAgICByZXR1cm4gdG9rZW47CiAgICAgfQorICB9CiAKLSAgICBmdW5jdGlvbiBzaW1wbGVf
ZXh0ZW5kZWRfYXR0cigpIHsKLSAgICAgIGNvbnN0IG5hbWUgPSBjb25zdW1lKElEKTsKLSAgICAg
IGlmICghbmFtZSkgcmV0dXJuOwotICAgICAgY29uc3QgcmV0ID0gewotICAgICAgICBuYW1lOiBu
YW1lLnZhbHVlLAotICAgICAgICBhcmd1bWVudHM6IG51bGwsCi0gICAgICAgIHR5cGU6ICJleHRl
bmRlZC1hdHRyaWJ1dGUiLAotICAgICAgICByaHM6IG51bGwKLSAgICAgIH07Ci0gICAgICBjb25z
dCBlcSA9IGNvbnN1bWUoIj0iKTsKLSAgICAgIGlmIChlcSkgewotICAgICAgICByZXQucmhzID0g
Y29uc3VtZShJRCwgRkxPQVQsIElOVCwgU1RSKTsKLSAgICAgICAgaWYgKHJldC5yaHMpIHsKLSAg
ICAgICAgICAvLyBObyB0cml2aWEgZXhwb3N1cmUgeWV0Ci0gICAgICAgICAgcmV0LnJocy50cml2
aWEgPSB1bmRlZmluZWQ7Ci0gICAgICAgIH0KLSAgICAgIH0KLSAgICAgIGlmIChjb25zdW1lKCIo
IikpIHsKLSAgICAgICAgaWYgKGVxICYmICFyZXQucmhzKSB7Ci0gICAgICAgICAgLy8gW0V4cG9z
ZWQ9KFdpbmRvdyxXb3JrZXIpXQotICAgICAgICAgIHJldC5yaHMgPSB7Ci0gICAgICAgICAgICB0
eXBlOiAiaWRlbnRpZmllci1saXN0IiwKLSAgICAgICAgICAgIHZhbHVlOiBpZGVudGlmaWVycygp
Ci0gICAgICAgICAgfTsKLSAgICAgICAgfQotICAgICAgICBlbHNlIHsKLSAgICAgICAgICAvLyBb
TmFtZWRDb25zdHJ1Y3Rvcj1BdWRpbyhET01TdHJpbmcgc3JjKV0gb3IgW0NvbnN0cnVjdG9yKERP
TVN0cmluZyBzdHIpXQotICAgICAgICAgIHJldC5hcmd1bWVudHMgPSBhcmd1bWVudF9saXN0KCk7
Ci0gICAgICAgIH0KLSAgICAgICAgY29uc3VtZSgiKSIpIHx8IGVycm9yKCJVbmV4cGVjdGVkIHRv
a2VuIGluIGV4dGVuZGVkIGF0dHJpYnV0ZSBhcmd1bWVudCBsaXN0Iik7Ci0gICAgICB9Ci0gICAg
ICBpZiAoZXEgJiYgIXJldC5yaHMpIGVycm9yKCJObyByaWdodCBoYW5kIHNpZGUgdG8gZXh0ZW5k
ZWQgYXR0cmlidXRlIGFzc2lnbm1lbnQiKTsKLSAgICAgIHJldHVybiByZXQ7Ci0gICAgfQotCi0g
ICAgLy8gTm90ZTogd2UgcGFyc2Ugc29tZXRoaW5nIHNpbXBsZXIgdGhhbiB0aGUgb2ZmaWNpYWwg
c3ludGF4LiBJdCdzIGFsbCB0aGF0IGV2ZXIKLSAgICAvLyBzZWVtcyB0byBiZSB1c2VkCi0gICAg
ZnVuY3Rpb24gZXh0ZW5kZWRfYXR0cnMoKSB7Ci0gICAgICBjb25zdCBlYXMgPSBbXTsKLSAgICAg
IGlmICghY29uc3VtZSgiWyIpKSByZXR1cm4gZWFzOwotICAgICAgZWFzWzBdID0gc2ltcGxlX2V4
dGVuZGVkX2F0dHIoKSB8fCBlcnJvcigiRXh0ZW5kZWQgYXR0cmlidXRlIHdpdGggbm90IGNvbnRl
bnQiKTsKLSAgICAgIHdoaWxlIChjb25zdW1lKCIsIikpIHsKLSAgICAgICAgZWFzLnB1c2goc2lt
cGxlX2V4dGVuZGVkX2F0dHIoKSB8fCBlcnJvcigiVHJhaWxpbmcgY29tbWEgaW4gZXh0ZW5kZWQg
YXR0cmlidXRlIikpOwotICAgICAgfQotICAgICAgY29uc3VtZSgiXSIpIHx8IGVycm9yKCJObyBl
bmQgb2YgZXh0ZW5kZWQgYXR0cmlidXRlIik7Ci0gICAgICByZXR1cm4gZWFzOwotICAgIH0KLQot
ICAgIGZ1bmN0aW9uIGRlZmF1bHRfKCkgewotICAgICAgaWYgKGNvbnN1bWUoIj0iKSkgewotICAg
ICAgICBjb25zdCBkZWYgPSBjb25zdF92YWx1ZSgpOwotICAgICAgICBpZiAoZGVmKSB7Ci0gICAg
ICAgICAgcmV0dXJuIGRlZjsKLSAgICAgICAgfSBlbHNlIGlmIChjb25zdW1lKCJbIikpIHsKLSAg
ICAgICAgICBpZiAoIWNvbnN1bWUoIl0iKSkgZXJyb3IoIkRlZmF1bHQgc2VxdWVuY2UgdmFsdWUg
bXVzdCBiZSBlbXB0eSIpOwotICAgICAgICAgIHJldHVybiB7IHR5cGU6ICJzZXF1ZW5jZSIsIHZh
bHVlOiBbXSB9OwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIGNvbnN0IHN0ciA9IGNvbnN1
bWUoU1RSKSB8fCBlcnJvcigiTm8gdmFsdWUgZm9yIGRlZmF1bHQiKTsKLSAgICAgICAgICBzdHIu
dmFsdWUgPSBzdHIudmFsdWUuc2xpY2UoMSwgLTEpOwotICAgICAgICAgIC8vIE5vIHRyaXZpYSBl
eHBvc3VyZSB5ZXQKLSAgICAgICAgICBzdHIudHJpdmlhID0gdW5kZWZpbmVkOwotICAgICAgICAg
IHJldHVybiBzdHI7Ci0gICAgICAgIH0KLSAgICAgIH0KKyAgLyoqCisgICAqIEBwYXJhbSB7bnVt
YmVyfSBwb3NpdGlvbgorICAgKi8KKyAgdW5jb25zdW1lKHBvc2l0aW9uKSB7CisgICAgdGhpcy5w
b3NpdGlvbiA9IHBvc2l0aW9uOworICB9Cit9CisKK2NsYXNzIFdlYklETFBhcnNlRXJyb3IgZXh0
ZW5kcyBFcnJvciB7CisgIGNvbnN0cnVjdG9yKHsgbWVzc2FnZSwgYmFyZU1lc3NhZ2UsIGNvbnRl
eHQsIGxpbmUsIHNvdXJjZU5hbWUsIGlucHV0LCB0b2tlbnMgfSkgeworICAgIHN1cGVyKG1lc3Nh
Z2UpOworCisgICAgdGhpcy5uYW1lID0gIldlYklETFBhcnNlRXJyb3IiOyAvLyBub3QgdG8gYmUg
bWFuZ2xlZAorICAgIHRoaXMuYmFyZU1lc3NhZ2UgPSBiYXJlTWVzc2FnZTsKKyAgICB0aGlzLmNv
bnRleHQgPSBjb250ZXh0OworICAgIHRoaXMubGluZSA9IGxpbmU7CisgICAgdGhpcy5zb3VyY2VO
YW1lID0gc291cmNlTmFtZTsKKyAgICB0aGlzLmlucHV0ID0gaW5wdXQ7CisgICAgdGhpcy50b2tl
bnMgPSB0b2tlbnM7CisgIH0KK30KKworCisvKioqLyB9KSwKKy8qIDMgKi8KKy8qKiovIChmdW5j
dGlvbihtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pIHsK
KworInVzZSBzdHJpY3QiOworX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRz
X18pOworLyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFja19yZXF1aXJlX18u
ZChfX3dlYnBhY2tfZXhwb3J0c19fLCAic3ludGF4RXJyb3IiLCBmdW5jdGlvbigpIHsgcmV0dXJu
IHN5bnRheEVycm9yOyB9KTsKKy8qIGhhcm1vbnkgZXhwb3J0IChiaW5kaW5nKSAqLyBfX3dlYnBh
Y2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgInZhbGlkYXRpb25FcnJvciIsIGZ1
bmN0aW9uKCkgeyByZXR1cm4gdmFsaWRhdGlvbkVycm9yOyB9KTsKKy8qKgorICogQHBhcmFtIHtz
dHJpbmd9IHRleHQKKyAqLworZnVuY3Rpb24gbGFzdExpbmUodGV4dCkgeworICBjb25zdCBzcGxp
dHRlZCA9IHRleHQuc3BsaXQoIlxuIik7CisgIHJldHVybiBzcGxpdHRlZFtzcGxpdHRlZC5sZW5n
dGggLSAxXTsKK30KKworLyoqCisgKiBAdHlwZWRlZiB7b2JqZWN0fSBXZWJJREwyRXJyb3JPcHRp
b25zCisgKiBAcHJvcGVydHkgeyJlcnJvciIgfCAid2FybmluZyJ9IGxldmVsCisgKiBAcHJvcGVy
dHkge0Z1bmN0aW9ufSBhdXRvZml4CisgKgorICogQHBhcmFtIHtzdHJpbmd9IG1lc3NhZ2UgZXJy
b3IgbWVzc2FnZQorICogQHBhcmFtIHsiU3ludGF4IiB8ICJWYWxpZGF0aW9uIn0ga2luZCBlcnJv
ciB0eXBlCisgKiBAcGFyYW0ge1dlYklETDJFcnJvck9wdGlvbnN9IFtvcHRpb25zXQorICovCitm
dW5jdGlvbiBlcnJvcihzb3VyY2UsIHBvc2l0aW9uLCBjdXJyZW50LCBtZXNzYWdlLCBraW5kLCB7
IGxldmVsID0gImVycm9yIiwgYXV0b2ZpeCB9ID0ge30pIHsKKyAgLyoqCisgICAqIEBwYXJhbSB7
bnVtYmVyfSBjb3VudAorICAgKi8KKyAgZnVuY3Rpb24gc2xpY2VUb2tlbnMoY291bnQpIHsKKyAg
ICByZXR1cm4gY291bnQgPiAwID8KKyAgICAgIHNvdXJjZS5zbGljZShwb3NpdGlvbiwgcG9zaXRp
b24gKyBjb3VudCkgOgorICAgICAgc291cmNlLnNsaWNlKE1hdGgubWF4KHBvc2l0aW9uICsgY291
bnQsIDApLCBwb3NpdGlvbik7CisgIH0KKworICBmdW5jdGlvbiB0b2tlbnNUb1RleHQoaW5wdXRz
LCB7IHByZWNlZGVzIH0gPSB7fSkgeworICAgIGNvbnN0IHRleHQgPSBpbnB1dHMubWFwKHQgPT4g
dC50cml2aWEgKyB0LnZhbHVlKS5qb2luKCIiKTsKKyAgICBjb25zdCBuZXh0VG9rZW4gPSBzb3Vy
Y2VbcG9zaXRpb25dOworICAgIGlmIChuZXh0VG9rZW4udHlwZSA9PT0gImVvZiIpIHsKKyAgICAg
IHJldHVybiB0ZXh0OwogICAgIH0KKyAgICBpZiAocHJlY2VkZXMpIHsKKyAgICAgIHJldHVybiB0
ZXh0ICsgbmV4dFRva2VuLnRyaXZpYTsKKyAgICB9CisgICAgcmV0dXJuIHRleHQuc2xpY2UobmV4
dFRva2VuLnRyaXZpYS5sZW5ndGgpOworICB9CiAKLSAgICBmdW5jdGlvbiBjb25zdF8oKSB7Ci0g
ICAgICBpZiAoIWNvbnN1bWUoImNvbnN0IikpIHJldHVybjsKLSAgICAgIGNvbnN0IHJldCA9IHsg
dHlwZTogImNvbnN0IiwgbnVsbGFibGU6IGZhbHNlIH07Ci0gICAgICBsZXQgdHlwID0gcHJpbWl0
aXZlX3R5cGUoKTsKLSAgICAgIGlmICghdHlwKSB7Ci0gICAgICAgIHR5cCA9IGNvbnN1bWUoSUQp
IHx8IGVycm9yKCJObyB0eXBlIGZvciBjb25zdCIpOwotICAgICAgICB0eXAgPSB0eXAudmFsdWU7
Ci0gICAgICB9Ci0gICAgICByZXQuaWRsVHlwZSA9IE9iamVjdC5hc3NpZ24oeyB0eXBlOiAiY29u
c3QtdHlwZSIgfSwgRU1QVFlfSURMVFlQRSwgeyBpZGxUeXBlOiB0eXAgfSk7Ci0gICAgICB0eXBl
X3N1ZmZpeChyZXQpOwotICAgICAgY29uc3QgbmFtZSA9IGNvbnN1bWUoSUQpIHx8IGVycm9yKCJO
byBuYW1lIGZvciBjb25zdCIpOwotICAgICAgcmV0Lm5hbWUgPSBuYW1lLnZhbHVlOwotICAgICAg
Y29uc3VtZSgiPSIpIHx8IGVycm9yKCJObyB2YWx1ZSBhc3NpZ25tZW50IGZvciBjb25zdCIpOwot
ICAgICAgY29uc3QgY250ID0gY29uc3RfdmFsdWUoKTsKLSAgICAgIGlmIChjbnQpIHJldC52YWx1
ZSA9IGNudDsKLSAgICAgIGVsc2UgZXJyb3IoIk5vIHZhbHVlIGZvciBjb25zdCIpOwotICAgICAg
Y29uc3VtZSgiOyIpIHx8IGVycm9yKCJVbnRlcm1pbmF0ZWQgY29uc3QiKTsKLSAgICAgIHJldHVy
biByZXQ7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gaW5oZXJpdGFuY2UoKSB7Ci0gICAgICBpZiAo
Y29uc3VtZSgiOiIpKSB7Ci0gICAgICAgIGNvbnN0IGluaCA9IGNvbnN1bWUoSUQpIHx8IGVycm9y
KCJObyB0eXBlIGluIGluaGVyaXRhbmNlIik7Ci0gICAgICAgIHJldHVybiBpbmgudmFsdWU7Cisg
IGNvbnN0IG1heFRva2VucyA9IDU7IC8vIGFyYml0cmFyeSBidXQgd29ya3Mgd2VsbCBlbm91Z2gK
KyAgY29uc3QgbGluZSA9CisgICAgc291cmNlW3Bvc2l0aW9uXS50eXBlICE9PSAiZW9mIiA/IHNv
dXJjZVtwb3NpdGlvbl0ubGluZSA6CisgICAgc291cmNlLmxlbmd0aCA+IDEgPyBzb3VyY2VbcG9z
aXRpb24gLSAxXS5saW5lIDoKKyAgICAxOworCisgIGNvbnN0IHByZWNlZGluZ0xhc3RMaW5lID0g
bGFzdExpbmUoCisgICAgdG9rZW5zVG9UZXh0KHNsaWNlVG9rZW5zKC1tYXhUb2tlbnMpLCB7IHBy
ZWNlZGVzOiB0cnVlIH0pCisgICk7CisKKyAgY29uc3Qgc3Vic2VxdWVudFRva2VucyA9IHNsaWNl
VG9rZW5zKG1heFRva2Vucyk7CisgIGNvbnN0IHN1YnNlcXVlbnRUZXh0ID0gdG9rZW5zVG9UZXh0
KHN1YnNlcXVlbnRUb2tlbnMpOworICBjb25zdCBzdWJzZXF1ZW50Rmlyc3RMaW5lID0gc3Vic2Vx
dWVudFRleHQuc3BsaXQoIlxuIilbMF07CisKKyAgY29uc3Qgc3BhY2VkID0gIiAiLnJlcGVhdChw
cmVjZWRpbmdMYXN0TGluZS5sZW5ndGgpICsgIl4iOworICBjb25zdCBzb3VyY2VDb250ZXh0ID0g
cHJlY2VkaW5nTGFzdExpbmUgKyBzdWJzZXF1ZW50Rmlyc3RMaW5lICsgIlxuIiArIHNwYWNlZDsK
KworICBjb25zdCBjb250ZXh0VHlwZSA9IGtpbmQgPT09ICJTeW50YXgiID8gInNpbmNlIiA6ICJp
bnNpZGUiOworICBjb25zdCBpblNvdXJjZU5hbWUgPSBzb3VyY2UubmFtZSA/IGAgaW4gJHtzb3Vy
Y2UubmFtZX1gIDogIiI7CisgIGNvbnN0IGdyYW1tYXRpY2FsQ29udGV4dCA9IChjdXJyZW50ICYm
IGN1cnJlbnQubmFtZSkgPyBgLCAke2NvbnRleHRUeXBlfSBcYCR7Y3VycmVudC5wYXJ0aWFsID8g
InBhcnRpYWwgIiA6ICIifSR7Y3VycmVudC50eXBlfSAke2N1cnJlbnQubmFtZX1cYGAgOiAiIjsK
KyAgY29uc3QgY29udGV4dCA9IGAke2tpbmR9IGVycm9yIGF0IGxpbmUgJHtsaW5lfSR7aW5Tb3Vy
Y2VOYW1lfSR7Z3JhbW1hdGljYWxDb250ZXh0fTpcbiR7c291cmNlQ29udGV4dH1gOworICByZXR1
cm4geworICAgIG1lc3NhZ2U6IGAke2NvbnRleHR9ICR7bWVzc2FnZX1gLAorICAgIGJhcmVNZXNz
YWdlOiBtZXNzYWdlLAorICAgIGNvbnRleHQsCisgICAgbGluZSwKKyAgICBzb3VyY2VOYW1lOiBz
b3VyY2UubmFtZSwKKyAgICBsZXZlbCwKKyAgICBhdXRvZml4LAorICAgIGlucHV0OiBzdWJzZXF1
ZW50VGV4dCwKKyAgICB0b2tlbnM6IHN1YnNlcXVlbnRUb2tlbnMKKyAgfTsKK30KKworLyoqCisg
KiBAcGFyYW0ge3N0cmluZ30gbWVzc2FnZSBlcnJvciBtZXNzYWdlCisgKi8KK2Z1bmN0aW9uIHN5
bnRheEVycm9yKHNvdXJjZSwgcG9zaXRpb24sIGN1cnJlbnQsIG1lc3NhZ2UpIHsKKyAgcmV0dXJu
IGVycm9yKHNvdXJjZSwgcG9zaXRpb24sIGN1cnJlbnQsIG1lc3NhZ2UsICJTeW50YXgiKTsKK30K
KworLyoqCisgKiBAcGFyYW0ge3N0cmluZ30gbWVzc2FnZSBlcnJvciBtZXNzYWdlCisgKiBAcGFy
YW0ge1dlYklETDJFcnJvck9wdGlvbnN9IFtvcHRpb25zXQorICovCitmdW5jdGlvbiB2YWxpZGF0
aW9uRXJyb3Ioc291cmNlLCB0b2tlbiwgY3VycmVudCwgbWVzc2FnZSwgb3B0aW9ucykgeworICBy
ZXR1cm4gZXJyb3Ioc291cmNlLCB0b2tlbi5pbmRleCwgY3VycmVudCwgbWVzc2FnZSwgIlZhbGlk
YXRpb24iLCBvcHRpb25zKTsKK30KKworCisvKioqLyB9KSwKKy8qIDQgKi8KKy8qKiovIChmdW5j
dGlvbihtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pIHsK
KworInVzZSBzdHJpY3QiOworX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRz
X18pOworLyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFja19yZXF1aXJlX18u
ZChfX3dlYnBhY2tfZXhwb3J0c19fLCAidW5lc2NhcGUiLCBmdW5jdGlvbigpIHsgcmV0dXJuIHVu
ZXNjYXBlOyB9KTsKKy8qIGhhcm1vbnkgZXhwb3J0IChiaW5kaW5nKSAqLyBfX3dlYnBhY2tfcmVx
dWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgImxpc3QiLCBmdW5jdGlvbigpIHsgcmV0dXJu
IGxpc3Q7IH0pOworLyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFja19yZXF1
aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAiY29uc3RfdmFsdWUiLCBmdW5jdGlvbigpIHsg
cmV0dXJuIGNvbnN0X3ZhbHVlOyB9KTsKKy8qIGhhcm1vbnkgZXhwb3J0IChiaW5kaW5nKSAqLyBf
X3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgImNvbnN0X2RhdGEiLCBm
dW5jdGlvbigpIHsgcmV0dXJuIGNvbnN0X2RhdGE7IH0pOworLyogaGFybW9ueSBleHBvcnQgKGJp
bmRpbmcpICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAicHJp
bWl0aXZlX3R5cGUiLCBmdW5jdGlvbigpIHsgcmV0dXJuIHByaW1pdGl2ZV90eXBlOyB9KTsKKy8q
IGhhcm1vbnkgZXhwb3J0IChiaW5kaW5nKSAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJw
YWNrX2V4cG9ydHNfXywgImlkZW50aWZpZXJzIiwgZnVuY3Rpb24oKSB7IHJldHVybiBpZGVudGlm
aWVyczsgfSk7CisvKiBoYXJtb255IGV4cG9ydCAoYmluZGluZykgKi8gX193ZWJwYWNrX3JlcXVp
cmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sICJhcmd1bWVudF9saXN0IiwgZnVuY3Rpb24oKSB7
IHJldHVybiBhcmd1bWVudF9saXN0OyB9KTsKKy8qIGhhcm1vbnkgZXhwb3J0IChiaW5kaW5nKSAq
LyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgInR5cGVfd2l0aF9l
eHRlbmRlZF9hdHRyaWJ1dGVzIiwgZnVuY3Rpb24oKSB7IHJldHVybiB0eXBlX3dpdGhfZXh0ZW5k
ZWRfYXR0cmlidXRlczsgfSk7CisvKiBoYXJtb255IGV4cG9ydCAoYmluZGluZykgKi8gX193ZWJw
YWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sICJyZXR1cm5fdHlwZSIsIGZ1bmN0
aW9uKCkgeyByZXR1cm4gcmV0dXJuX3R5cGU7IH0pOworLyogaGFybW9ueSBleHBvcnQgKGJpbmRp
bmcpICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAic3RyaW5n
aWZpZXIiLCBmdW5jdGlvbigpIHsgcmV0dXJuIHN0cmluZ2lmaWVyOyB9KTsKKy8qIGhhcm1vbnkg
ZXhwb3J0IChiaW5kaW5nKSAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9y
dHNfXywgImF1dG9maXhBZGRFeHBvc2VkV2luZG93IiwgZnVuY3Rpb24oKSB7IHJldHVybiBhdXRv
Zml4QWRkRXhwb3NlZFdpbmRvdzsgfSk7CisvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3R5cGVf
anNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oNSk7
CisvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2FyZ3VtZW50X2pzX19XRUJQQUNLX0lNUE9SVEVE
X01PRFVMRV8xX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDgpOworLyogaGFybW9ueSBpbXBvcnQg
Ki8gdmFyIF90b2tlbl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fID0gX193ZWJwYWNr
X3JlcXVpcmVfXygxMik7CisvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2V4dGVuZGVkX2F0dHJp
YnV0ZXNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXyA9IF9fd2VicGFja19yZXF1aXJl
X18oMTApOworLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9vcGVyYXRpb25fanNfX1dFQlBBQ0tf
SU1QT1JURURfTU9EVUxFXzRfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMTMpOworLyogaGFybW9u
eSBpbXBvcnQgKi8gdmFyIF9hdHRyaWJ1dGVfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVf
XyA9IF9fd2VicGFja19yZXF1aXJlX18oMTQpOworLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF90
b2tlbmlzZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfXyA9IF9fd2VicGFja19yZXF1
aXJlX18oMik7CisKKworCisKKworCisKKworLyoqCisgKiBAcGFyYW0ge3N0cmluZ30gaWRlbnRp
ZmllcgorICovCitmdW5jdGlvbiB1bmVzY2FwZShpZGVudGlmaWVyKSB7CisgIHJldHVybiBpZGVu
dGlmaWVyLnN0YXJ0c1dpdGgoJ18nKSA/IGlkZW50aWZpZXIuc2xpY2UoMSkgOiBpZGVudGlmaWVy
OworfQorCisvKioKKyAqIFBhcnNlcyBjb21tYS1zZXBhcmF0ZWQgbGlzdAorICogQHBhcmFtIHtp
bXBvcnQoIi4uL3Rva2VuaXNlciIpLlRva2VuaXNlcn0gdG9rZW5pc2VyCisgKiBAcGFyYW0ge29i
amVjdH0gYXJncworICogQHBhcmFtIHtGdW5jdGlvbn0gYXJncy5wYXJzZXIgcGFyc2VyIGZ1bmN0
aW9uIGZvciBlYWNoIGl0ZW0KKyAqIEBwYXJhbSB7Ym9vbGVhbn0gW2FyZ3MuYWxsb3dEYW5nbGVy
XSB3aGV0aGVyIHRvIGFsbG93IGRhbmdsaW5nIGNvbW1hCisgKiBAcGFyYW0ge3N0cmluZ30gW2Fy
Z3MubGlzdE5hbWVdIHRoZSBuYW1lIHRvIGJlIHNob3duIG9uIGVycm9yIG1lc3NhZ2VzCisgKi8K
K2Z1bmN0aW9uIGxpc3QodG9rZW5pc2VyLCB7IHBhcnNlciwgYWxsb3dEYW5nbGVyLCBsaXN0TmFt
ZSA9ICJsaXN0IiB9KSB7CisgIGNvbnN0IGZpcnN0ID0gcGFyc2VyKHRva2VuaXNlcik7CisgIGlm
ICghZmlyc3QpIHsKKyAgICByZXR1cm4gW107CisgIH0KKyAgZmlyc3QudG9rZW5zLnNlcGFyYXRv
ciA9IHRva2VuaXNlci5jb25zdW1lKCIsIik7CisgIGNvbnN0IGl0ZW1zID0gW2ZpcnN0XTsKKyAg
d2hpbGUgKGZpcnN0LnRva2Vucy5zZXBhcmF0b3IpIHsKKyAgICBjb25zdCBpdGVtID0gcGFyc2Vy
KHRva2VuaXNlcik7CisgICAgaWYgKCFpdGVtKSB7CisgICAgICBpZiAoIWFsbG93RGFuZ2xlcikg
eworICAgICAgICB0b2tlbmlzZXIuZXJyb3IoYFRyYWlsaW5nIGNvbW1hIGluICR7bGlzdE5hbWV9
YCk7CiAgICAgICB9CisgICAgICBicmVhazsKKyAgICB9CisgICAgaXRlbS50b2tlbnMuc2VwYXJh
dG9yID0gdG9rZW5pc2VyLmNvbnN1bWUoIiwiKTsKKyAgICBpdGVtcy5wdXNoKGl0ZW0pOworICAg
IGlmICghaXRlbS50b2tlbnMuc2VwYXJhdG9yKSBicmVhazsKKyAgfQorICByZXR1cm4gaXRlbXM7
Cit9CisKKy8qKgorICogQHBhcmFtIHtpbXBvcnQoIi4uL3Rva2VuaXNlciIpLlRva2VuaXNlcn0g
dG9rZW5pc2VyCisgKi8KK2Z1bmN0aW9uIGNvbnN0X3ZhbHVlKHRva2VuaXNlcikgeworICByZXR1
cm4gdG9rZW5pc2VyLmNvbnN1bWUoInRydWUiLCAiZmFsc2UiLCAiSW5maW5pdHkiLCAiLUluZmlu
aXR5IiwgIk5hTiIsICJkZWNpbWFsIiwgImludGVnZXIiKTsKK30KKworLyoqCisgKiBAcGFyYW0g
e29iamVjdH0gdG9rZW4KKyAqIEBwYXJhbSB7c3RyaW5nfSB0b2tlbi50eXBlCisgKiBAcGFyYW0g
e3N0cmluZ30gdG9rZW4udmFsdWUKKyAqLworZnVuY3Rpb24gY29uc3RfZGF0YSh7IHR5cGUsIHZh
bHVlIH0pIHsKKyAgc3dpdGNoICh0eXBlKSB7CisgICAgY2FzZSAidHJ1ZSI6CisgICAgY2FzZSAi
ZmFsc2UiOgorICAgICAgcmV0dXJuIHsgdHlwZTogImJvb2xlYW4iLCB2YWx1ZTogdHlwZSA9PT0g
InRydWUiIH07CisgICAgY2FzZSAiSW5maW5pdHkiOgorICAgIGNhc2UgIi1JbmZpbml0eSI6Cisg
ICAgICByZXR1cm4geyB0eXBlOiAiSW5maW5pdHkiLCBuZWdhdGl2ZTogdHlwZS5zdGFydHNXaXRo
KCItIikgfTsKKyAgICBjYXNlICJbIjoKKyAgICAgIHJldHVybiB7IHR5cGU6ICJzZXF1ZW5jZSIs
IHZhbHVlOiBbXSB9OworICAgIGNhc2UgInsiOgorICAgICAgcmV0dXJuIHsgdHlwZTogImRpY3Rp
b25hcnkiIH07CisgICAgY2FzZSAiZGVjaW1hbCI6CisgICAgY2FzZSAiaW50ZWdlciI6CisgICAg
ICByZXR1cm4geyB0eXBlOiAibnVtYmVyIiwgdmFsdWUgfTsKKyAgICBjYXNlICJzdHJpbmciOgor
ICAgICAgcmV0dXJuIHsgdHlwZTogInN0cmluZyIsIHZhbHVlOiB2YWx1ZS5zbGljZSgxLCAtMSkg
fTsKKyAgICBkZWZhdWx0OgorICAgICAgcmV0dXJuIHsgdHlwZSB9OworICB9Cit9CisKKy8qKgor
ICogQHBhcmFtIHtpbXBvcnQoIi4uL3Rva2VuaXNlciIpLlRva2VuaXNlcn0gdG9rZW5pc2VyCisg
Ki8KK2Z1bmN0aW9uIHByaW1pdGl2ZV90eXBlKHRva2VuaXNlcikgeworICBmdW5jdGlvbiBpbnRl
Z2VyX3R5cGUoKSB7CisgICAgY29uc3QgcHJlZml4ID0gdG9rZW5pc2VyLmNvbnN1bWUoInVuc2ln
bmVkIik7CisgICAgY29uc3QgYmFzZSA9IHRva2VuaXNlci5jb25zdW1lKCJzaG9ydCIsICJsb25n
Iik7CisgICAgaWYgKGJhc2UpIHsKKyAgICAgIGNvbnN0IHBvc3RmaXggPSB0b2tlbmlzZXIuY29u
c3VtZSgibG9uZyIpOworICAgICAgcmV0dXJuIG5ldyBfdHlwZV9qc19fV0VCUEFDS19JTVBPUlRF
RF9NT0RVTEVfMF9fWyJUeXBlIl0oeyBzb3VyY2UsIHRva2VuczogeyBwcmVmaXgsIGJhc2UsIHBv
c3RmaXggfSB9KTsKICAgICB9CisgICAgaWYgKHByZWZpeCkgdG9rZW5pc2VyLmVycm9yKCJGYWls
ZWQgdG8gcGFyc2UgaW50ZWdlciB0eXBlIik7CisgIH0KIAotICAgIGZ1bmN0aW9uIG9wZXJhdGlv
bl9yZXN0KHJldCkgewotICAgICAgaWYgKCFyZXQpIHJldCA9IHt9OwotICAgICAgY29uc3QgbmFt
ZSA9IGNvbnN1bWUoSUQpOwotICAgICAgcmV0Lm5hbWUgPSBuYW1lID8gdW5lc2NhcGUobmFtZS52
YWx1ZSkgOiBudWxsOwotICAgICAgcmV0LmVzY2FwZWROYW1lID0gbmFtZSA/IG5hbWUudmFsdWUg
OiBudWxsOwotICAgICAgY29uc3VtZSgiKCIpIHx8IGVycm9yKCJJbnZhbGlkIG9wZXJhdGlvbiIp
OwotICAgICAgcmV0LmFyZ3VtZW50cyA9IGFyZ3VtZW50X2xpc3QoKTsKLSAgICAgIGNvbnN1bWUo
IikiKSB8fCBlcnJvcigiVW50ZXJtaW5hdGVkIG9wZXJhdGlvbiIpOwotICAgICAgY29uc3VtZSgi
OyIpIHx8IGVycm9yKCJVbnRlcm1pbmF0ZWQgb3BlcmF0aW9uIik7Ci0gICAgICByZXR1cm4gcmV0
OwotICAgIH0KLQotICAgIGZ1bmN0aW9uIGNhbGxiYWNrKCkgewotICAgICAgbGV0IHJldDsKLSAg
ICAgIGlmICghY29uc3VtZSgiY2FsbGJhY2siKSkgcmV0dXJuOwotICAgICAgY29uc3QgdG9rID0g
Y29uc3VtZSgiaW50ZXJmYWNlIik7Ci0gICAgICBpZiAodG9rKSB7Ci0gICAgICAgIHJldCA9IGlu
dGVyZmFjZV9yZXN0KGZhbHNlLCAiY2FsbGJhY2sgaW50ZXJmYWNlIik7Ci0gICAgICAgIHJldHVy
biByZXQ7Ci0gICAgICB9Ci0gICAgICBjb25zdCBuYW1lID0gY29uc3VtZShJRCkgfHwgZXJyb3Io
Ik5vIG5hbWUgZm9yIGNhbGxiYWNrIik7Ci0gICAgICByZXQgPSBjdXJyZW50ID0geyB0eXBlOiAi
Y2FsbGJhY2siLCBuYW1lOiBzYW5pdGl6ZV9uYW1lKG5hbWUudmFsdWUsICJjYWxsYmFjayIpIH07
Ci0gICAgICBjb25zdW1lKCI9IikgfHwgZXJyb3IoIk5vIGFzc2lnbm1lbnQgaW4gY2FsbGJhY2si
KTsKLSAgICAgIHJldC5pZGxUeXBlID0gcmV0dXJuX3R5cGUoKSB8fCBlcnJvcigiTWlzc2luZyBy
ZXR1cm4gdHlwZSIpOwotICAgICAgY29uc3VtZSgiKCIpIHx8IGVycm9yKCJObyBhcmd1bWVudHMg
aW4gY2FsbGJhY2siKTsKLSAgICAgIHJldC5hcmd1bWVudHMgPSBhcmd1bWVudF9saXN0KCk7Ci0g
ICAgICBjb25zdW1lKCIpIikgfHwgZXJyb3IoIlVudGVybWluYXRlZCBjYWxsYmFjayIpOwotICAg
ICAgY29uc3VtZSgiOyIpIHx8IGVycm9yKCJVbnRlcm1pbmF0ZWQgY2FsbGJhY2siKTsKLSAgICAg
IHJldHVybiByZXQ7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gYXR0cmlidXRlKHsgbm9Jbmhlcml0
ID0gZmFsc2UsIHJlYWRvbmx5ID0gZmFsc2UgfSA9IHt9KSB7Ci0gICAgICBjb25zdCBzdGFydF9w
b3NpdGlvbiA9IGNvbnN1bWVfcG9zaXRpb247Ci0gICAgICBjb25zdCByZXQgPSB7Ci0gICAgICAg
IHR5cGU6ICJhdHRyaWJ1dGUiLAotICAgICAgICBzdGF0aWM6IGZhbHNlLAotICAgICAgICBzdHJp
bmdpZmllcjogZmFsc2UsCi0gICAgICAgIGluaGVyaXQ6IGZhbHNlLAotICAgICAgICByZWFkb25s
eTogZmFsc2UKLSAgICAgIH07Ci0gICAgICBpZiAoIW5vSW5oZXJpdCAmJiBjb25zdW1lKCJpbmhl
cml0IikpIHsKLSAgICAgICAgcmV0LmluaGVyaXQgPSB0cnVlOwotICAgICAgfQotICAgICAgaWYg
KGNvbnN1bWUoInJlYWRvbmx5IikpIHsKLSAgICAgICAgcmV0LnJlYWRvbmx5ID0gdHJ1ZTsKLSAg
ICAgIH0gZWxzZSBpZiAocmVhZG9ubHkgJiYgcHJvYmUoImF0dHJpYnV0ZSIpKSB7Ci0gICAgICAg
IGVycm9yKCJBdHRyaWJ1dGVzIG11c3QgYmUgcmVhZG9ubHkgaW4gdGhpcyBjb250ZXh0Iik7Ci0g
ICAgICB9Ci0gICAgICBjb25zdCByZXN0ID0gYXR0cmlidXRlX3Jlc3QocmV0KTsKLSAgICAgIGlm
ICghcmVzdCkgewotICAgICAgICB1bmNvbnN1bWUoc3RhcnRfcG9zaXRpb24pOwotICAgICAgfQot
ICAgICAgcmV0dXJuIHJlc3Q7CisgIGZ1bmN0aW9uIGRlY2ltYWxfdHlwZSgpIHsKKyAgICBjb25z
dCBwcmVmaXggPSB0b2tlbmlzZXIuY29uc3VtZSgidW5yZXN0cmljdGVkIik7CisgICAgY29uc3Qg
YmFzZSA9IHRva2VuaXNlci5jb25zdW1lKCJmbG9hdCIsICJkb3VibGUiKTsKKyAgICBpZiAoYmFz
ZSkgeworICAgICAgcmV0dXJuIG5ldyBfdHlwZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVf
MF9fWyJUeXBlIl0oeyBzb3VyY2UsIHRva2VuczogeyBwcmVmaXgsIGJhc2UgfSB9KTsKICAgICB9
CisgICAgaWYgKHByZWZpeCkgdG9rZW5pc2VyLmVycm9yKCJGYWlsZWQgdG8gcGFyc2UgZmxvYXQg
dHlwZSIpOworICB9CiAKLSAgICBmdW5jdGlvbiBhdHRyaWJ1dGVfcmVzdChyZXQpIHsKLSAgICAg
IGlmICghY29uc3VtZSgiYXR0cmlidXRlIikpIHsKLSAgICAgICAgcmV0dXJuOwotICAgICAgfQot
ICAgICAgcmV0LmlkbFR5cGUgPSB0eXBlX3dpdGhfZXh0ZW5kZWRfYXR0cmlidXRlcygiYXR0cmli
dXRlLXR5cGUiKSB8fCBlcnJvcigiTm8gdHlwZSBpbiBhdHRyaWJ1dGUiKTsKLSAgICAgIGlmIChy
ZXQuaWRsVHlwZS5nZW5lcmljID09PSAic2VxdWVuY2UiKSBlcnJvcigiQXR0cmlidXRlcyBjYW5u
b3QgYWNjZXB0IHNlcXVlbmNlIHR5cGVzIik7Ci0gICAgICBpZiAocmV0LmlkbFR5cGUuZ2VuZXJp
YyA9PT0gInJlY29yZCIpIGVycm9yKCJBdHRyaWJ1dGVzIGNhbm5vdCBhY2NlcHQgcmVjb3JkIHR5
cGVzIik7Ci0gICAgICBjb25zdCBuYW1lID0gY29uc3VtZShJRCwgInJlcXVpcmVkIikgfHwgZXJy
b3IoIk5vIG5hbWUgaW4gYXR0cmlidXRlIik7Ci0gICAgICByZXQubmFtZSA9IHVuZXNjYXBlKG5h
bWUudmFsdWUpOwotICAgICAgcmV0LmVzY2FwZWROYW1lID0gbmFtZS52YWx1ZTsKLSAgICAgIGNv
bnN1bWUoIjsiKSB8fCBlcnJvcigiVW50ZXJtaW5hdGVkIGF0dHJpYnV0ZSIpOwotICAgICAgcmV0
dXJuIHJldDsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiByZXR1cm5fdHlwZSh0eXBlTmFtZSkgewot
ICAgICAgY29uc3QgdHlwID0gdHlwZSh0eXBlTmFtZSB8fCAicmV0dXJuLXR5cGUiKTsKLSAgICAg
IGlmICh0eXApIHsKLSAgICAgICAgcmV0dXJuIHR5cDsKLSAgICAgIH0KLSAgICAgIGlmIChjb25z
dW1lKCJ2b2lkIikpIHsKLSAgICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oeyB0eXBlOiAicmV0
dXJuLXR5cGUiIH0sIEVNUFRZX0lETFRZUEUsIHsgaWRsVHlwZTogInZvaWQiIH0pOworICBjb25z
dCB7IHNvdXJjZSB9ID0gdG9rZW5pc2VyOworICBjb25zdCBudW1fdHlwZSA9IGludGVnZXJfdHlw
ZSh0b2tlbmlzZXIpIHx8IGRlY2ltYWxfdHlwZSh0b2tlbmlzZXIpOworICBpZiAobnVtX3R5cGUp
IHJldHVybiBudW1fdHlwZTsKKyAgY29uc3QgYmFzZSA9IHRva2VuaXNlci5jb25zdW1lKCJib29s
ZWFuIiwgImJ5dGUiLCAib2N0ZXQiKTsKKyAgaWYgKGJhc2UpIHsKKyAgICByZXR1cm4gbmV3IF90
eXBlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIlR5cGUiXSh7IHNvdXJjZSwgdG9r
ZW5zOiB7IGJhc2UgfSB9KTsKKyAgfQorfQorCisvKioKKyAqIEBwYXJhbSB7aW1wb3J0KCIuLi90
b2tlbmlzZXIiKS5Ub2tlbmlzZXJ9IHRva2VuaXNlcgorICovCitmdW5jdGlvbiBpZGVudGlmaWVy
cyh0b2tlbmlzZXIpIHsKKyAgY29uc3QgaWRzID0gbGlzdCh0b2tlbmlzZXIsIHsgcGFyc2VyOiBf
dG9rZW5fanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX1siVG9rZW4iXS5wYXJzZXIodG9r
ZW5pc2VyLCAiaWRlbnRpZmllciIpLCBsaXN0TmFtZTogImlkZW50aWZpZXIgbGlzdCIgfSk7Cisg
IGlmICghaWRzLmxlbmd0aCkgeworICAgIHRva2VuaXNlci5lcnJvcigiRXhwZWN0ZWQgaWRlbnRp
ZmllcnMgYnV0IG5vbmUgZm91bmQiKTsKKyAgfQorICByZXR1cm4gaWRzOworfQorCisvKioKKyAq
IEBwYXJhbSB7aW1wb3J0KCIuLi90b2tlbmlzZXIiKS5Ub2tlbmlzZXJ9IHRva2VuaXNlcgorICov
CitmdW5jdGlvbiBhcmd1bWVudF9saXN0KHRva2VuaXNlcikgeworICByZXR1cm4gbGlzdCh0b2tl
bmlzZXIsIHsgcGFyc2VyOiBfYXJndW1lbnRfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFf
X1siQXJndW1lbnQiXS5wYXJzZSwgbGlzdE5hbWU6ICJhcmd1bWVudHMgbGlzdCIgfSk7Cit9CisK
Ky8qKgorICogQHBhcmFtIHtpbXBvcnQoIi4uL3Rva2VuaXNlciIpLlRva2VuaXNlcn0gdG9rZW5p
c2VyCisgKiBAcGFyYW0ge3N0cmluZ30gdHlwZU5hbWUKKyAqLworZnVuY3Rpb24gdHlwZV93aXRo
X2V4dGVuZGVkX2F0dHJpYnV0ZXModG9rZW5pc2VyLCB0eXBlTmFtZSkgeworICBjb25zdCBleHRB
dHRycyA9IF9leHRlbmRlZF9hdHRyaWJ1dGVzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8z
X19bIkV4dGVuZGVkQXR0cmlidXRlcyJdLnBhcnNlKHRva2VuaXNlcik7CisgIGNvbnN0IHJldCA9
IF90eXBlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIlR5cGUiXS5wYXJzZSh0b2tl
bmlzZXIsIHR5cGVOYW1lKTsKKyAgaWYgKHJldCkgcmV0LmV4dEF0dHJzID0gZXh0QXR0cnM7Cisg
IHJldHVybiByZXQ7Cit9CisKKy8qKgorICogQHBhcmFtIHtpbXBvcnQoIi4uL3Rva2VuaXNlciIp
LlRva2VuaXNlcn0gdG9rZW5pc2VyCisgKiBAcGFyYW0ge3N0cmluZ30gdHlwZU5hbWUKKyAqLwor
ZnVuY3Rpb24gcmV0dXJuX3R5cGUodG9rZW5pc2VyLCB0eXBlTmFtZSkgeworICBjb25zdCB0eXAg
PSBfdHlwZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJUeXBlIl0ucGFyc2UodG9r
ZW5pc2VyLCB0eXBlTmFtZSB8fCAicmV0dXJuLXR5cGUiKTsKKyAgaWYgKHR5cCkgeworICAgIHJl
dHVybiB0eXA7CisgIH0KKyAgY29uc3Qgdm9pZFRva2VuID0gdG9rZW5pc2VyLmNvbnN1bWUoInZv
aWQiKTsKKyAgaWYgKHZvaWRUb2tlbikgeworICAgIGNvbnN0IHJldCA9IG5ldyBfdHlwZV9qc19f
V0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJUeXBlIl0oeyBzb3VyY2U6IHRva2VuaXNlci5z
b3VyY2UsIHRva2VuczogeyBiYXNlOiB2b2lkVG9rZW4gfSB9KTsKKyAgICByZXQudHlwZSA9ICJy
ZXR1cm4tdHlwZSI7CisgICAgcmV0dXJuIHJldDsKKyAgfQorfQorCisvKioKKyAqIEBwYXJhbSB7
aW1wb3J0KCIuLi90b2tlbmlzZXIiKS5Ub2tlbmlzZXJ9IHRva2VuaXNlcgorICovCitmdW5jdGlv
biBzdHJpbmdpZmllcih0b2tlbmlzZXIpIHsKKyAgY29uc3Qgc3BlY2lhbCA9IHRva2VuaXNlci5j
b25zdW1lKCJzdHJpbmdpZmllciIpOworICBpZiAoIXNwZWNpYWwpIHJldHVybjsKKyAgY29uc3Qg
bWVtYmVyID0gX2F0dHJpYnV0ZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fWyJBdHRy
aWJ1dGUiXS5wYXJzZSh0b2tlbmlzZXIsIHsgc3BlY2lhbCB9KSB8fAorICAgIF9vcGVyYXRpb25f
anNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfX1siT3BlcmF0aW9uIl0ucGFyc2UodG9rZW5p
c2VyLCB7IHNwZWNpYWwgfSkgfHwKKyAgICB0b2tlbmlzZXIuZXJyb3IoIlVudGVybWluYXRlZCBz
dHJpbmdpZmllciIpOworICByZXR1cm4gbWVtYmVyOworfQorCisvKioKKyAqIEBwYXJhbSB7b2Jq
ZWN0fSBkZWYKKyAqIEBwYXJhbSB7aW1wb3J0KCIuL2V4dGVuZGVkLWF0dHJpYnV0ZXMuanMiKS5F
eHRlbmRlZEF0dHJpYnV0ZXN9IGRlZi5leHRBdHRycworICovCitmdW5jdGlvbiBhdXRvZml4QWRk
RXhwb3NlZFdpbmRvdyhkZWYpIHsKKyAgcmV0dXJuICgpID0+IHsKKyAgICBpZiAoZGVmLmV4dEF0
dHJzLmxlbmd0aCl7CisgICAgICBjb25zdCB0b2tlbmlzZXIgPSBuZXcgX3Rva2VuaXNlcl9qc19f
V0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fWyJUb2tlbmlzZXIiXSgiRXhwb3NlZD1XaW5kb3cs
Iik7CisgICAgICBjb25zdCBleHBvc2VkID0gX2V4dGVuZGVkX2F0dHJpYnV0ZXNfanNfX1dFQlBB
Q0tfSU1QT1JURURfTU9EVUxFXzNfX1siU2ltcGxlRXh0ZW5kZWRBdHRyaWJ1dGUiXS5wYXJzZSh0
b2tlbmlzZXIpOworICAgICAgZXhwb3NlZC50b2tlbnMuc2VwYXJhdG9yID0gdG9rZW5pc2VyLmNv
bnN1bWUoIiwiKTsKKyAgICAgIGNvbnN0IGV4aXN0aW5nID0gZGVmLmV4dEF0dHJzWzBdOworICAg
ICAgaWYgKCEvXlxzLy50ZXN0KGV4aXN0aW5nLnRva2Vucy5uYW1lLnRyaXZpYSkpIHsKKyAgICAg
ICAgZXhpc3RpbmcudG9rZW5zLm5hbWUudHJpdmlhID0gYCAke2V4aXN0aW5nLnRva2Vucy5uYW1l
LnRyaXZpYX1gOwogICAgICAgfQorICAgICAgZGVmLmV4dEF0dHJzLnVuc2hpZnQoZXhwb3NlZCk7
CisgICAgfSBlbHNlIHsKKyAgICAgIGRlZi5leHRBdHRycyA9IF9leHRlbmRlZF9hdHRyaWJ1dGVz
X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX19bIkV4dGVuZGVkQXR0cmlidXRlcyJdLnBh
cnNlKG5ldyBfdG9rZW5pc2VyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X19bIlRva2Vu
aXNlciJdKCJbRXhwb3NlZD1XaW5kb3ddIikpOworICAgICAgZGVmLmV4dEF0dHJzLnRva2Vucy5v
cGVuLnRyaXZpYSA9IGRlZi50b2tlbnMuYmFzZS50cml2aWE7CisgICAgICBkZWYudG9rZW5zLmJh
c2UudHJpdmlhID0gIiAiOwogICAgIH0KKyAgfTsKK30KIAotICAgIGZ1bmN0aW9uIG9wZXJhdGlv
bih7IHJlZ3VsYXIgPSBmYWxzZSB9ID0ge30pIHsKLSAgICAgIGNvbnN0IHJldCA9IE9iamVjdC5h
c3NpZ24oe30sIEVNUFRZX09QRVJBVElPTik7Ci0gICAgICB3aGlsZSAoIXJlZ3VsYXIpIHsKLSAg
ICAgICAgaWYgKGNvbnN1bWUoImdldHRlciIpKSByZXQuZ2V0dGVyID0gdHJ1ZTsKLSAgICAgICAg
ZWxzZSBpZiAoY29uc3VtZSgic2V0dGVyIikpIHJldC5zZXR0ZXIgPSB0cnVlOwotICAgICAgICBl
bHNlIGlmIChjb25zdW1lKCJkZWxldGVyIikpIHJldC5kZWxldGVyID0gdHJ1ZTsKLSAgICAgICAg
ZWxzZSBicmVhazsKLSAgICAgIH0KLSAgICAgIHJldC5pZGxUeXBlID0gcmV0dXJuX3R5cGUoKSB8
fCBlcnJvcigiTWlzc2luZyByZXR1cm4gdHlwZSIpOwotICAgICAgb3BlcmF0aW9uX3Jlc3QocmV0
KTsKLSAgICAgIHJldHVybiByZXQ7CisKKy8qKiovIH0pLAorLyogNSAqLworLyoqKi8gKGZ1bmN0
aW9uKG1vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgewor
CisidXNlIHN0cmljdCI7CitfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNf
Xyk7CisvKiBoYXJtb255IGV4cG9ydCAoYmluZGluZykgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5k
KF9fd2VicGFja19leHBvcnRzX18sICJUeXBlIiwgZnVuY3Rpb24oKSB7IHJldHVybiBUeXBlOyB9
KTsKKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRFRF9N
T0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg2KTsKKy8qIGhhcm1vbnkgaW1wb3J0ICov
IHZhciBfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNr
X3JlcXVpcmVfXyg0KTsKKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfdG9rZW5pc2VyX2pzX19X
RUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDIpOworLyog
aGFybW9ueSBpbXBvcnQgKi8gdmFyIF9lcnJvcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVf
M19fID0gX193ZWJwYWNrX3JlcXVpcmVfXygzKTsKKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBf
dmFsaWRhdG9yc19oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18gPSBfX3dl
YnBhY2tfcmVxdWlyZV9fKDcpOworCisKKworCisKKworLyoqCisgKiBAcGFyYW0ge2ltcG9ydCgi
Li4vdG9rZW5pc2VyIikuVG9rZW5pc2VyfSB0b2tlbmlzZXIKKyAqIEBwYXJhbSB7c3RyaW5nfSB0
eXBlTmFtZQorICovCitmdW5jdGlvbiBnZW5lcmljX3R5cGUodG9rZW5pc2VyLCB0eXBlTmFtZSkg
eworICBjb25zdCBiYXNlID0gdG9rZW5pc2VyLmNvbnN1bWUoIkZyb3plbkFycmF5IiwgIlByb21p
c2UiLCAic2VxdWVuY2UiLCAicmVjb3JkIik7CisgIGlmICghYmFzZSkgeworICAgIHJldHVybjsK
KyAgfQorICBjb25zdCByZXQgPSBuZXcgVHlwZSh7IHNvdXJjZTogdG9rZW5pc2VyLnNvdXJjZSwg
dG9rZW5zOiB7IGJhc2UgfSB9KTsKKyAgcmV0LnRva2Vucy5vcGVuID0gdG9rZW5pc2VyLmNvbnN1
bWUoIjwiKSB8fCB0b2tlbmlzZXIuZXJyb3IoYE5vIG9wZW5pbmcgYnJhY2tldCBhZnRlciAke2Jh
c2UudHlwZX1gKTsKKyAgc3dpdGNoIChiYXNlLnR5cGUpIHsKKyAgICBjYXNlICJQcm9taXNlIjog
eworICAgICAgaWYgKHRva2VuaXNlci5wcm9iZSgiWyIpKSB0b2tlbmlzZXIuZXJyb3IoIlByb21p
c2UgdHlwZSBjYW5ub3QgaGF2ZSBleHRlbmRlZCBhdHRyaWJ1dGUiKTsKKyAgICAgIGNvbnN0IHN1
YnR5cGUgPSBPYmplY3QoX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX1si
cmV0dXJuX3R5cGUiXSkodG9rZW5pc2VyLCB0eXBlTmFtZSkgfHwgdG9rZW5pc2VyLmVycm9yKCJN
aXNzaW5nIFByb21pc2Ugc3VidHlwZSIpOworICAgICAgcmV0LnN1YnR5cGUucHVzaChzdWJ0eXBl
KTsKKyAgICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNlICJzZXF1ZW5jZSI6CisgICAgY2FzZSAi
RnJvemVuQXJyYXkiOiB7CisgICAgICBjb25zdCBzdWJ0eXBlID0gT2JqZWN0KF9oZWxwZXJzX2pz
X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19bInR5cGVfd2l0aF9leHRlbmRlZF9hdHRyaWJ1
dGVzIl0pKHRva2VuaXNlciwgdHlwZU5hbWUpIHx8IHRva2VuaXNlci5lcnJvcihgTWlzc2luZyAk
e2Jhc2UudHlwZX0gc3VidHlwZWApOworICAgICAgcmV0LnN1YnR5cGUucHVzaChzdWJ0eXBlKTsK
KyAgICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNlICJyZWNvcmQiOiB7CisgICAgICBpZiAodG9r
ZW5pc2VyLnByb2JlKCJbIikpIHRva2VuaXNlci5lcnJvcigiUmVjb3JkIGtleSBjYW5ub3QgaGF2
ZSBleHRlbmRlZCBhdHRyaWJ1dGUiKTsKKyAgICAgIGNvbnN0IGtleVR5cGUgPSB0b2tlbmlzZXIu
Y29uc3VtZSguLi5fdG9rZW5pc2VyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19bInN0
cmluZ1R5cGVzIl0pIHx8IHRva2VuaXNlci5lcnJvcihgUmVjb3JkIGtleSBtdXN0IGJlIG9uZSBv
ZjogJHtfdG9rZW5pc2VyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19bInN0cmluZ1R5
cGVzIl0uam9pbigiLCAiKX1gKTsKKyAgICAgIGNvbnN0IGtleUlkbFR5cGUgPSBuZXcgVHlwZSh7
IHNvdXJjZTogdG9rZW5pc2VyLnNvdXJjZSwgdG9rZW5zOiB7IGJhc2U6IGtleVR5cGUgfX0pOwor
ICAgICAga2V5SWRsVHlwZS50b2tlbnMuc2VwYXJhdG9yID0gdG9rZW5pc2VyLmNvbnN1bWUoIiwi
KSB8fCB0b2tlbmlzZXIuZXJyb3IoIk1pc3NpbmcgY29tbWEgYWZ0ZXIgcmVjb3JkIGtleSB0eXBl
Iik7CisgICAgICBrZXlJZGxUeXBlLnR5cGUgPSB0eXBlTmFtZTsKKyAgICAgIGNvbnN0IHZhbHVl
VHlwZSA9IE9iamVjdChfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fWyJ0
eXBlX3dpdGhfZXh0ZW5kZWRfYXR0cmlidXRlcyJdKSh0b2tlbmlzZXIsIHR5cGVOYW1lKSB8fCB0
b2tlbmlzZXIuZXJyb3IoIkVycm9yIHBhcnNpbmcgZ2VuZXJpYyB0eXBlIHJlY29yZCIpOworICAg
ICAgcmV0LnN1YnR5cGUucHVzaChrZXlJZGxUeXBlLCB2YWx1ZVR5cGUpOworICAgICAgYnJlYWs7
CisgICAgfQorICB9CisgIGlmICghcmV0LmlkbFR5cGUpIHRva2VuaXNlci5lcnJvcihgRXJyb3Ig
cGFyc2luZyBnZW5lcmljIHR5cGUgJHtiYXNlLnR5cGV9YCk7CisgIHJldC50b2tlbnMuY2xvc2Ug
PSB0b2tlbmlzZXIuY29uc3VtZSgiPiIpIHx8IHRva2VuaXNlci5lcnJvcihgTWlzc2luZyBjbG9z
aW5nIGJyYWNrZXQgYWZ0ZXIgJHtiYXNlLnR5cGV9YCk7CisgIHJldHVybiByZXQ7Cit9CisKKy8q
KgorICogQHBhcmFtIHtpbXBvcnQoIi4uL3Rva2VuaXNlciIpLlRva2VuaXNlcn0gdG9rZW5pc2Vy
CisgKi8KK2Z1bmN0aW9uIHR5cGVfc3VmZml4KHRva2VuaXNlciwgb2JqKSB7CisgIGNvbnN0IG51
bGxhYmxlID0gdG9rZW5pc2VyLmNvbnN1bWUoIj8iKTsKKyAgaWYgKG51bGxhYmxlKSB7CisgICAg
b2JqLnRva2Vucy5udWxsYWJsZSA9IG51bGxhYmxlOworICB9CisgIGlmICh0b2tlbmlzZXIucHJv
YmUoIj8iKSkgdG9rZW5pc2VyLmVycm9yKCJDYW4ndCBudWxsYWJsZSBtb3JlIHRoYW4gb25jZSIp
OworfQorCisvKioKKyAqIEBwYXJhbSB7aW1wb3J0KCIuLi90b2tlbmlzZXIiKS5Ub2tlbmlzZXJ9
IHRva2VuaXNlcgorICogQHBhcmFtIHtzdHJpbmd9IHR5cGVOYW1lCisgKi8KK2Z1bmN0aW9uIHNp
bmdsZV90eXBlKHRva2VuaXNlciwgdHlwZU5hbWUpIHsKKyAgbGV0IHJldCA9IGdlbmVyaWNfdHlw
ZSh0b2tlbmlzZXIsIHR5cGVOYW1lKSB8fCBPYmplY3QoX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1Q
T1JURURfTU9EVUxFXzFfX1sicHJpbWl0aXZlX3R5cGUiXSkodG9rZW5pc2VyKTsKKyAgaWYgKCFy
ZXQpIHsKKyAgICBjb25zdCBiYXNlID0gdG9rZW5pc2VyLmNvbnN1bWUoImlkZW50aWZpZXIiLCAu
Li5fdG9rZW5pc2VyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19bInN0cmluZ1R5cGVz
Il0pOworICAgIGlmICghYmFzZSkgeworICAgICAgcmV0dXJuOworICAgIH0KKyAgICByZXQgPSBu
ZXcgVHlwZSh7IHNvdXJjZTogdG9rZW5pc2VyLnNvdXJjZSwgdG9rZW5zOiB7IGJhc2UgfSB9KTsK
KyAgICBpZiAodG9rZW5pc2VyLnByb2JlKCI8IikpIHRva2VuaXNlci5lcnJvcihgVW5zdXBwb3J0
ZWQgZ2VuZXJpYyB0eXBlICR7YmFzZS52YWx1ZX1gKTsKKyAgfQorICBpZiAocmV0LmdlbmVyaWMg
PT09ICJQcm9taXNlIiAmJiB0b2tlbmlzZXIucHJvYmUoIj8iKSkgeworICAgIHRva2VuaXNlci5l
cnJvcigiUHJvbWlzZSB0eXBlIGNhbm5vdCBiZSBudWxsYWJsZSIpOworICB9CisgIHJldC50eXBl
ID0gdHlwZU5hbWUgfHwgbnVsbDsKKyAgdHlwZV9zdWZmaXgodG9rZW5pc2VyLCByZXQpOworICBp
ZiAocmV0Lm51bGxhYmxlICYmIHJldC5pZGxUeXBlID09PSAiYW55IikgdG9rZW5pc2VyLmVycm9y
KCJUeXBlIGBhbnlgIGNhbm5vdCBiZSBtYWRlIG51bGxhYmxlIik7CisgIHJldHVybiByZXQ7Cit9
CisKKy8qKgorICogQHBhcmFtIHtpbXBvcnQoIi4uL3Rva2VuaXNlciIpLlRva2VuaXNlcn0gdG9r
ZW5pc2VyCisgKiBAcGFyYW0ge3N0cmluZ30gdHlwZQorICovCitmdW5jdGlvbiB1bmlvbl90eXBl
KHRva2VuaXNlciwgdHlwZSkgeworICBjb25zdCB0b2tlbnMgPSB7fTsKKyAgdG9rZW5zLm9wZW4g
PSB0b2tlbmlzZXIuY29uc3VtZSgiKCIpOworICBpZiAoIXRva2Vucy5vcGVuKSByZXR1cm47Cisg
IGNvbnN0IHJldCA9IG5ldyBUeXBlKHsgc291cmNlOiB0b2tlbmlzZXIuc291cmNlLCB0b2tlbnMg
fSk7CisgIHJldC50eXBlID0gdHlwZSB8fCBudWxsOworICB3aGlsZSAodHJ1ZSkgeworICAgIGNv
bnN0IHR5cCA9IE9iamVjdChfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9f
WyJ0eXBlX3dpdGhfZXh0ZW5kZWRfYXR0cmlidXRlcyJdKSh0b2tlbmlzZXIpIHx8IHRva2VuaXNl
ci5lcnJvcigiTm8gdHlwZSBhZnRlciBvcGVuIHBhcmVudGhlc2lzIG9yICdvcicgaW4gdW5pb24g
dHlwZSIpOworICAgIGlmICh0eXAuaWRsVHlwZSA9PT0gImFueSIpIHRva2VuaXNlci5lcnJvcigi
VHlwZSBgYW55YCBjYW5ub3QgYmUgaW5jbHVkZWQgaW4gYSB1bmlvbiB0eXBlIik7CisgICAgcmV0
LnN1YnR5cGUucHVzaCh0eXApOworICAgIGNvbnN0IG9yID0gdG9rZW5pc2VyLmNvbnN1bWUoIm9y
Iik7CisgICAgaWYgKG9yKSB7CisgICAgICB0eXAudG9rZW5zLnNlcGFyYXRvciA9IG9yOwogICAg
IH0KKyAgICBlbHNlIGJyZWFrOworICB9CisgIGlmIChyZXQuaWRsVHlwZS5sZW5ndGggPCAyKSB7
CisgICAgdG9rZW5pc2VyLmVycm9yKCJBdCBsZWFzdCB0d28gdHlwZXMgYXJlIGV4cGVjdGVkIGlu
IGEgdW5pb24gdHlwZSBidXQgZm91bmQgbGVzcyIpOworICB9CisgIHRva2Vucy5jbG9zZSA9IHRv
a2VuaXNlci5jb25zdW1lKCIpIikgfHwgdG9rZW5pc2VyLmVycm9yKCJVbnRlcm1pbmF0ZWQgdW5p
b24gdHlwZSIpOworICB0eXBlX3N1ZmZpeCh0b2tlbmlzZXIsIHJldCk7CisgIHJldHVybiByZXQ7
Cit9CisKK2NsYXNzIFR5cGUgZXh0ZW5kcyBfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RV
TEVfMF9fWyJCYXNlIl0geworICAvKioKKyAgICogQHBhcmFtIHtpbXBvcnQoIi4uL3Rva2VuaXNl
ciIpLlRva2VuaXNlcn0gdG9rZW5pc2VyCisgICAqIEBwYXJhbSB7c3RyaW5nfSB0eXBlTmFtZQor
ICAgKi8KKyAgc3RhdGljIHBhcnNlKHRva2VuaXNlciwgdHlwZU5hbWUpIHsKKyAgICByZXR1cm4g
c2luZ2xlX3R5cGUodG9rZW5pc2VyLCB0eXBlTmFtZSkgfHwgdW5pb25fdHlwZSh0b2tlbmlzZXIs
IHR5cGVOYW1lKTsKKyAgfQogCi0gICAgZnVuY3Rpb24gc3RhdGljX21lbWJlcigpIHsKLSAgICAg
IGlmICghY29uc3VtZSgic3RhdGljIikpIHJldHVybjsKLSAgICAgIGNvbnN0IG1lbWJlciA9IGF0
dHJpYnV0ZSh7IG5vSW5oZXJpdDogdHJ1ZSB9KSB8fAotICAgICAgICBvcGVyYXRpb24oeyByZWd1
bGFyOiB0cnVlIH0pIHx8Ci0gICAgICAgIGVycm9yKCJObyBib2R5IGluIHN0YXRpYyBtZW1iZXIi
KTsKLSAgICAgIG1lbWJlci5zdGF0aWMgPSB0cnVlOwotICAgICAgcmV0dXJuIG1lbWJlcjsKKyAg
Y29uc3RydWN0b3IoeyBzb3VyY2UsIHRva2VucyB9KSB7CisgICAgc3VwZXIoeyBzb3VyY2UsIHRv
a2VucyB9KTsKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgInN1YnR5cGUiLCB7IHZh
bHVlOiBbXSB9KTsKKyAgICB0aGlzLmV4dEF0dHJzID0gW107CisgIH0KKworICBnZXQgZ2VuZXJp
YygpIHsKKyAgICBpZiAodGhpcy5zdWJ0eXBlLmxlbmd0aCAmJiB0aGlzLnRva2Vucy5iYXNlKSB7
CisgICAgICByZXR1cm4gdGhpcy50b2tlbnMuYmFzZS52YWx1ZTsKKyAgICB9CisgICAgcmV0dXJu
ICIiOworICB9CisgIGdldCBudWxsYWJsZSgpIHsKKyAgICByZXR1cm4gQm9vbGVhbih0aGlzLnRv
a2Vucy5udWxsYWJsZSk7CisgIH0KKyAgZ2V0IHVuaW9uKCkgeworICAgIHJldHVybiBCb29sZWFu
KHRoaXMuc3VidHlwZS5sZW5ndGgpICYmICF0aGlzLnRva2Vucy5iYXNlOworICB9CisgIGdldCBp
ZGxUeXBlKCkgeworICAgIGlmICh0aGlzLnN1YnR5cGUubGVuZ3RoKSB7CisgICAgICByZXR1cm4g
dGhpcy5zdWJ0eXBlOwogICAgIH0KKyAgICAvLyBBZGRpbmcgcHJlZml4ZXMvcG9zdGZpeGVzIGZv
ciAidW5yZXN0cmljdGVkIGZsb2F0IiwgZXRjLgorICAgIGNvbnN0IG5hbWUgPSBbCisgICAgICB0
aGlzLnRva2Vucy5wcmVmaXgsCisgICAgICB0aGlzLnRva2Vucy5iYXNlLAorICAgICAgdGhpcy50
b2tlbnMucG9zdGZpeAorICAgIF0uZmlsdGVyKHQgPT4gdCkubWFwKHQgPT4gdC52YWx1ZSkuam9p
bigiICIpOworICAgIHJldHVybiBPYmplY3QoX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURf
TU9EVUxFXzFfX1sidW5lc2NhcGUiXSkobmFtZSk7CisgIH0KIAotICAgIGZ1bmN0aW9uIHN0cmlu
Z2lmaWVyKCkgewotICAgICAgaWYgKCFjb25zdW1lKCJzdHJpbmdpZmllciIpKSByZXR1cm47Ci0g
ICAgICBpZiAoY29uc3VtZSgiOyIpKSB7Ci0gICAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKHt9
LCBFTVBUWV9PUEVSQVRJT04sIHsgc3RyaW5naWZpZXI6IHRydWUgfSk7Ci0gICAgICB9Ci0gICAg
ICBjb25zdCBtZW1iZXIgPSBhdHRyaWJ1dGUoeyBub0luaGVyaXQ6IHRydWUgfSkgfHwKLSAgICAg
ICAgb3BlcmF0aW9uKHsgcmVndWxhcjogdHJ1ZSB9KSB8fAotICAgICAgICBlcnJvcigiVW50ZXJt
aW5hdGVkIHN0cmluZ2lmaWVyIik7Ci0gICAgICBtZW1iZXIuc3RyaW5naWZpZXIgPSB0cnVlOwot
ICAgICAgcmV0dXJuIG1lbWJlcjsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBpZGVudGlmaWVycygp
IHsKLSAgICAgIGNvbnN0IGFyciA9IFtdOwotICAgICAgY29uc3QgaWQgPSBjb25zdW1lKElEKTsK
LSAgICAgIGlmIChpZCkgewotICAgICAgICBhcnIucHVzaChpZC52YWx1ZSk7CisgICp2YWxpZGF0
ZShkZWZzKSB7CisgICAgLyoKKyAgICAgKiBJZiBhIHVuaW9uIGlzIG51bGxhYmxlLCBpdHMgc3Vi
dW5pb25zIGNhbm5vdCBpbmNsdWRlIGEgZGljdGlvbmFyeQorICAgICAqIElmIG5vdCwgc3VidW5p
b25zIG1heSBpbmNsdWRlIGRpY3Rpb25hcmllcyBpZiBlYWNoIHVuaW9uIGlzIG5vdCBudWxsYWJs
ZQorICAgICAqLworICAgIGNvbnN0IHR5cGVkZWYgPSAhdGhpcy51bmlvbiAmJiBkZWZzLnVuaXF1
ZS5nZXQodGhpcy5pZGxUeXBlKTsKKyAgICBjb25zdCB0YXJnZXQgPQorICAgICAgdGhpcy51bmlv
biA/IHRoaXMgOgorICAgICAgKHR5cGVkZWYgJiYgdHlwZWRlZi50eXBlID09PSAidHlwZWRlZiIp
ID8gdHlwZWRlZi5pZGxUeXBlIDoKKyAgICAgIHVuZGVmaW5lZDsKKyAgICBpZiAodGFyZ2V0ICYm
IHRoaXMubnVsbGFibGUpIHsKKyAgICAgIC8vIGRvIG5vdCBhbGxvdyBhbnkgZGljdGlvbmFyeQor
ICAgICAgY29uc3QgcmVmZXJlbmNlID0gT2JqZWN0KF92YWxpZGF0b3JzX2hlbHBlcnNfanNfX1dF
QlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfX1siaWRsVHlwZUluY2x1ZGVzRGljdGlvbmFyeSJdKSh0
YXJnZXQsIGRlZnMpOworICAgICAgaWYgKHJlZmVyZW5jZSkgeworICAgICAgICBjb25zdCB0YXJn
ZXRUb2tlbiA9ICh0aGlzLnVuaW9uID8gcmVmZXJlbmNlIDogdGhpcykudG9rZW5zLmJhc2U7Cisg
ICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgTnVsbGFibGUgdW5pb24gY2Fubm90IGluY2x1ZGUgYSBk
aWN0aW9uYXJ5IHR5cGVgOworICAgICAgICB5aWVsZCBPYmplY3QoX2Vycm9yX2pzX19XRUJQQUNL
X0lNUE9SVEVEX01PRFVMRV8zX19bInZhbGlkYXRpb25FcnJvciJdKSh0aGlzLnNvdXJjZSwgdGFy
Z2V0VG9rZW4sIHRoaXMsIG1lc3NhZ2UpOwogICAgICAgfQotICAgICAgZWxzZSBlcnJvcigiRXhw
ZWN0ZWQgaWRlbnRpZmllcnMgYnV0IG5vdCBmb3VuZCIpOwotICAgICAgd2hpbGUgKHRydWUpIHsK
LSAgICAgICAgaWYgKGNvbnN1bWUoIiwiKSkgewotICAgICAgICAgIGNvbnN0IG5hbWUgPSBjb25z
dW1lKElEKSB8fCBlcnJvcigiVHJhaWxpbmcgY29tbWEgaW4gaWRlbnRpZmllcnMgbGlzdCIpOwot
ICAgICAgICAgIGFyci5wdXNoKG5hbWUudmFsdWUpOwotICAgICAgICB9IGVsc2UgYnJlYWs7Cisg
ICAgfSBlbHNlIHsKKyAgICAgIC8vIGFsbG93IHNvbWUgZGljdGlvbmFyeQorICAgICAgZm9yIChj
b25zdCBzdWJ0eXBlIG9mIHRoaXMuc3VidHlwZSkgeworICAgICAgICB5aWVsZCogc3VidHlwZS52
YWxpZGF0ZShkZWZzKTsKICAgICAgIH0KLSAgICAgIHJldHVybiBhcnI7Ci0gICAgfQotCi0gICAg
ZnVuY3Rpb24gaXRlcmFibGVfdHlwZSgpIHsKLSAgICAgIGlmIChjb25zdW1lKCJpdGVyYWJsZSIp
KSByZXR1cm4gIml0ZXJhYmxlIjsKLSAgICAgIGVsc2UgaWYgKGNvbnN1bWUoImxlZ2FjeWl0ZXJh
YmxlIikpIHJldHVybiAibGVnYWN5aXRlcmFibGUiOwotICAgICAgZWxzZSBpZiAoY29uc3VtZSgi
bWFwbGlrZSIpKSByZXR1cm4gIm1hcGxpa2UiOwotICAgICAgZWxzZSBpZiAoY29uc3VtZSgic2V0
bGlrZSIpKSByZXR1cm4gInNldGxpa2UiOwotICAgICAgZWxzZSByZXR1cm47CiAgICAgfQorICB9
Cit9CiAKLSAgICBmdW5jdGlvbiByZWFkb25seV9pdGVyYWJsZV90eXBlKCkgewotICAgICAgaWYg
KGNvbnN1bWUoIm1hcGxpa2UiKSkgcmV0dXJuICJtYXBsaWtlIjsKLSAgICAgIGVsc2UgaWYgKGNv
bnN1bWUoInNldGxpa2UiKSkgcmV0dXJuICJzZXRsaWtlIjsKLSAgICAgIGVsc2UgcmV0dXJuOwot
ICAgIH0KIAotICAgIGZ1bmN0aW9uIGl0ZXJhYmxlKCkgewotICAgICAgY29uc3Qgc3RhcnRfcG9z
aXRpb24gPSBjb25zdW1lX3Bvc2l0aW9uOwotICAgICAgY29uc3QgcmV0ID0geyB0eXBlOiBudWxs
LCBpZGxUeXBlOiBudWxsLCByZWFkb25seTogZmFsc2UgfTsKLSAgICAgIGlmIChjb25zdW1lKCJy
ZWFkb25seSIpKSB7Ci0gICAgICAgIHJldC5yZWFkb25seSA9IHRydWU7Ci0gICAgICB9Ci0gICAg
ICBjb25zdCBjb25zdW1lSXRUeXBlID0gcmV0LnJlYWRvbmx5ID8gcmVhZG9ubHlfaXRlcmFibGVf
dHlwZSA6IGl0ZXJhYmxlX3R5cGU7CisvKioqLyB9KSwKKy8qIDYgKi8KKy8qKiovIChmdW5jdGlv
bihtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pIHsKIAot
ICAgICAgY29uc3QgaXR0eXBlID0gY29uc3VtZUl0VHlwZSgpOwotICAgICAgaWYgKCFpdHR5cGUp
IHsKLSAgICAgICAgdW5jb25zdW1lKHN0YXJ0X3Bvc2l0aW9uKTsKLSAgICAgICAgcmV0dXJuOwot
ICAgICAgfQorInVzZSBzdHJpY3QiOworX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19l
eHBvcnRzX18pOworLyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFja19yZXF1
aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAiQmFzZSIsIGZ1bmN0aW9uKCkgeyByZXR1cm4g
QmFzZTsgfSk7CitjbGFzcyBCYXNlIHsKKyAgY29uc3RydWN0b3IoeyBzb3VyY2UsIHRva2VucyB9
KSB7CisgICAgT2JqZWN0LmRlZmluZVByb3BlcnRpZXModGhpcywgeworICAgICAgc291cmNlOiB7
IHZhbHVlOiBzb3VyY2UgfSwKKyAgICAgIHRva2VuczogeyB2YWx1ZTogdG9rZW5zIH0KKyAgICB9
KTsKKyAgfQogCi0gICAgICBjb25zdCBzZWNvbmRUeXBlUmVxdWlyZWQgPSBpdHR5cGUgPT09ICJt
YXBsaWtlIjsKLSAgICAgIGNvbnN0IHNlY29uZFR5cGVBbGxvd2VkID0gc2Vjb25kVHlwZVJlcXVp
cmVkIHx8IGl0dHlwZSA9PT0gIml0ZXJhYmxlIjsKLSAgICAgIHJldC50eXBlID0gaXR0eXBlOwot
ICAgICAgaWYgKHJldC50eXBlICE9PSAnbWFwbGlrZScgJiYgcmV0LnR5cGUgIT09ICdzZXRsaWtl
JykKLSAgICAgICAgZGVsZXRlIHJldC5yZWFkb25seTsKLSAgICAgIGlmIChjb25zdW1lKCI8Iikp
IHsKLSAgICAgICAgcmV0LmlkbFR5cGUgPSBbdHlwZV93aXRoX2V4dGVuZGVkX2F0dHJpYnV0ZXMo
KV0gfHwgZXJyb3IoYEVycm9yIHBhcnNpbmcgJHtpdHR5cGV9IGRlY2xhcmF0aW9uYCk7Ci0gICAg
ICAgIGlmIChzZWNvbmRUeXBlQWxsb3dlZCkgewotICAgICAgICAgIGlmIChjb25zdW1lKCIsIikp
IHsKLSAgICAgICAgICAgIHJldC5pZGxUeXBlLnB1c2godHlwZV93aXRoX2V4dGVuZGVkX2F0dHJp
YnV0ZXMoKSk7Ci0gICAgICAgICAgfQotICAgICAgICAgIGVsc2UgaWYgKHNlY29uZFR5cGVSZXF1
aXJlZCkKLSAgICAgICAgICAgIGVycm9yKGBNaXNzaW5nIHNlY29uZCB0eXBlIGFyZ3VtZW50IGlu
ICR7aXR0eXBlfSBkZWNsYXJhdGlvbmApOwotICAgICAgICB9Ci0gICAgICAgIGlmICghY29uc3Vt
ZSgiPiIpKSBlcnJvcihgVW50ZXJtaW5hdGVkICR7aXR0eXBlfSBkZWNsYXJhdGlvbmApOwotICAg
ICAgICBpZiAoIWNvbnN1bWUoIjsiKSkgZXJyb3IoYE1pc3Npbmcgc2VtaWNvbG9uIGFmdGVyICR7
aXR0eXBlfSBkZWNsYXJhdGlvbmApOwotICAgICAgfSBlbHNlCi0gICAgICAgIGVycm9yKGBFcnJv
ciBwYXJzaW5nICR7aXR0eXBlfSBkZWNsYXJhdGlvbmApOwotCi0gICAgICByZXR1cm4gcmV0Owot
ICAgIH0KLQotICAgIGZ1bmN0aW9uIGludGVyZmFjZV9yZXN0KGlzUGFydGlhbCwgdHlwZU5hbWUg
PSAiaW50ZXJmYWNlIikgewotICAgICAgY29uc3QgbmFtZSA9IGNvbnN1bWUoSUQpIHx8IGVycm9y
KCJObyBuYW1lIGZvciBpbnRlcmZhY2UiKTsKLSAgICAgIGNvbnN0IG1lbXMgPSBbXTsKLSAgICAg
IGNvbnN0IHJldCA9IGN1cnJlbnQgPSB7Ci0gICAgICAgIHR5cGU6IHR5cGVOYW1lLAotICAgICAg
ICBuYW1lOiBpc1BhcnRpYWwgPyBuYW1lLnZhbHVlIDogc2FuaXRpemVfbmFtZShuYW1lLnZhbHVl
LCAiaW50ZXJmYWNlIiksCi0gICAgICAgIHBhcnRpYWw6IGlzUGFydGlhbCwKLSAgICAgICAgbWVt
YmVyczogbWVtcwotICAgICAgfTsKLSAgICAgIGlmICghaXNQYXJ0aWFsKSByZXQuaW5oZXJpdGFu
Y2UgPSBpbmhlcml0YW5jZSgpIHx8IG51bGw7Ci0gICAgICBjb25zdW1lKCJ7IikgfHwgZXJyb3Io
IkJvZHlsZXNzIGludGVyZmFjZSIpOwotICAgICAgd2hpbGUgKHRydWUpIHsKLSAgICAgICAgaWYg
KGNvbnN1bWUoIn0iKSkgewotICAgICAgICAgIGNvbnN1bWUoIjsiKSB8fCBlcnJvcigiTWlzc2lu
ZyBzZW1pY29sb24gYWZ0ZXIgaW50ZXJmYWNlIik7Ci0gICAgICAgICAgcmV0dXJuIHJldDsKKyAg
dG9KU09OKCkgeworICAgIGNvbnN0IGpzb24gPSB7IHR5cGU6IHVuZGVmaW5lZCwgbmFtZTogdW5k
ZWZpbmVkLCBpbmhlcml0YW5jZTogdW5kZWZpbmVkIH07CisgICAgbGV0IHByb3RvID0gdGhpczsK
KyAgICB3aGlsZSAocHJvdG8gIT09IE9iamVjdC5wcm90b3R5cGUpIHsKKyAgICAgIGNvbnN0IGRl
c2NNYXAgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhwcm90byk7CisgICAgICBm
b3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhkZXNjTWFwKSkgeworICAg
ICAgICBpZiAodmFsdWUuZW51bWVyYWJsZSB8fCB2YWx1ZS5nZXQpIHsKKyAgICAgICAgICBqc29u
W2tleV0gPSB0aGlzW2tleV07CiAgICAgICAgIH0KLSAgICAgICAgY29uc3QgZWEgPSBleHRlbmRl
ZF9hdHRycygpOwotICAgICAgICBjb25zdCBtZW0gPSBjb25zdF8oKSB8fAotICAgICAgICAgIHN0
YXRpY19tZW1iZXIoKSB8fAotICAgICAgICAgIHN0cmluZ2lmaWVyKCkgfHwKLSAgICAgICAgICBp
dGVyYWJsZSgpIHx8Ci0gICAgICAgICAgYXR0cmlidXRlKCkgfHwKLSAgICAgICAgICBvcGVyYXRp
b24oKSB8fAotICAgICAgICAgIGVycm9yKCJVbmtub3duIG1lbWJlciIpOwotICAgICAgICBtZW0u
ZXh0QXR0cnMgPSBlYTsKLSAgICAgICAgcmV0Lm1lbWJlcnMucHVzaChtZW0pOwogICAgICAgfQor
ICAgICAgcHJvdG8gPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YocHJvdG8pOwogICAgIH0KKyAgICBy
ZXR1cm4ganNvbjsKKyAgfQorfQogCi0gICAgZnVuY3Rpb24gbWl4aW5fcmVzdChpc1BhcnRpYWwp
IHsKLSAgICAgIGlmICghY29uc3VtZSgibWl4aW4iKSkgcmV0dXJuOwotICAgICAgY29uc3QgbmFt
ZSA9IGNvbnN1bWUoSUQpIHx8IGVycm9yKCJObyBuYW1lIGZvciBpbnRlcmZhY2UgbWl4aW4iKTsK
LSAgICAgIGNvbnN0IG1lbXMgPSBbXTsKLSAgICAgIGNvbnN0IHJldCA9IGN1cnJlbnQgPSB7Ci0g
ICAgICAgIHR5cGU6ICJpbnRlcmZhY2UgbWl4aW4iLAotICAgICAgICBuYW1lOiBpc1BhcnRpYWwg
PyBuYW1lLnZhbHVlIDogc2FuaXRpemVfbmFtZShuYW1lLnZhbHVlLCAiaW50ZXJmYWNlIG1peGlu
IiksCi0gICAgICAgIHBhcnRpYWw6IGlzUGFydGlhbCwKLSAgICAgICAgbWVtYmVyczogbWVtcwot
ICAgICAgfTsKLSAgICAgIGNvbnN1bWUoInsiKSB8fCBlcnJvcigiQm9keWxlc3MgaW50ZXJmYWNl
IG1peGluIik7Ci0gICAgICB3aGlsZSAodHJ1ZSkgewotICAgICAgICBpZiAoY29uc3VtZSgifSIp
KSB7Ci0gICAgICAgICAgY29uc3VtZSgiOyIpIHx8IGVycm9yKCJNaXNzaW5nIHNlbWljb2xvbiBh
ZnRlciBpbnRlcmZhY2UgbWl4aW4iKTsKLSAgICAgICAgICByZXR1cm4gcmV0OwotICAgICAgICB9
Ci0gICAgICAgIGNvbnN0IGVhID0gZXh0ZW5kZWRfYXR0cnMoKTsKLSAgICAgICAgY29uc3QgbWVt
ID0gY29uc3RfKCkgfHwKLSAgICAgICAgICBzdHJpbmdpZmllcigpIHx8Ci0gICAgICAgICAgYXR0
cmlidXRlKHsgbm9Jbmhlcml0OiB0cnVlIH0pIHx8Ci0gICAgICAgICAgb3BlcmF0aW9uKHsgcmVn
dWxhcjogdHJ1ZSB9KSB8fAotICAgICAgICAgIGVycm9yKCJVbmtub3duIG1lbWJlciIpOwotICAg
ICAgICBtZW0uZXh0QXR0cnMgPSBlYTsKLSAgICAgICAgcmV0Lm1lbWJlcnMucHVzaChtZW0pOwot
ICAgICAgfQotICAgIH0KIAotICAgIGZ1bmN0aW9uIGludGVyZmFjZV8oaXNQYXJ0aWFsKSB7Ci0g
ICAgICBpZiAoIWNvbnN1bWUoImludGVyZmFjZSIpKSByZXR1cm47Ci0gICAgICByZXR1cm4gbWl4
aW5fcmVzdChpc1BhcnRpYWwpIHx8Ci0gICAgICAgIGludGVyZmFjZV9yZXN0KGlzUGFydGlhbCkg
fHwKLSAgICAgICAgZXJyb3IoIkludGVyZmFjZSBoYXMgbm8gcHJvcGVyIGJvZHkiKTsKLSAgICB9
Ci0KLSAgICBmdW5jdGlvbiBuYW1lc3BhY2UoaXNQYXJ0aWFsKSB7Ci0gICAgICBpZiAoIWNvbnN1
bWUoIm5hbWVzcGFjZSIpKSByZXR1cm47Ci0gICAgICBjb25zdCBuYW1lID0gY29uc3VtZShJRCkg
fHwgZXJyb3IoIk5vIG5hbWUgZm9yIG5hbWVzcGFjZSIpOwotICAgICAgY29uc3QgbWVtcyA9IFtd
OwotICAgICAgY29uc3QgcmV0ID0gY3VycmVudCA9IHsKLSAgICAgICAgdHlwZTogIm5hbWVzcGFj
ZSIsCi0gICAgICAgIG5hbWU6IGlzUGFydGlhbCA/IG5hbWUudmFsdWUgOiBzYW5pdGl6ZV9uYW1l
KG5hbWUudmFsdWUsICJuYW1lc3BhY2UiKSwKLSAgICAgICAgcGFydGlhbDogaXNQYXJ0aWFsLAot
ICAgICAgICBtZW1iZXJzOiBtZW1zCi0gICAgICB9OwotICAgICAgY29uc3VtZSgieyIpIHx8IGVy
cm9yKCJCb2R5bGVzcyBuYW1lc3BhY2UiKTsKLSAgICAgIHdoaWxlICh0cnVlKSB7Ci0gICAgICAg
IGlmIChjb25zdW1lKCJ9IikpIHsKLSAgICAgICAgICBjb25zdW1lKCI7IikgfHwgZXJyb3IoIk1p
c3Npbmcgc2VtaWNvbG9uIGFmdGVyIG5hbWVzcGFjZSIpOwotICAgICAgICAgIHJldHVybiByZXQ7
Ci0gICAgICAgIH0KLSAgICAgICAgY29uc3QgZWEgPSBleHRlbmRlZF9hdHRycygpOwotICAgICAg
ICBjb25zdCBtZW0gPSBhdHRyaWJ1dGUoeyBub0luaGVyaXQ6IHRydWUsIHJlYWRvbmx5OiB0cnVl
IH0pIHx8Ci0gICAgICAgICAgb3BlcmF0aW9uKHsgcmVndWxhcjogdHJ1ZSB9KSB8fAotICAgICAg
ICAgIGVycm9yKCJVbmtub3duIG1lbWJlciIpOwotICAgICAgICBtZW0uZXh0QXR0cnMgPSBlYTsK
LSAgICAgICAgcmV0Lm1lbWJlcnMucHVzaChtZW0pOwotICAgICAgfQotICAgIH0KKy8qKiovIH0p
LAorLyogNyAqLworLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywg
X193ZWJwYWNrX3JlcXVpcmVfXykgewogCi0gICAgZnVuY3Rpb24gcGFydGlhbCgpIHsKLSAgICAg
IGlmICghY29uc3VtZSgicGFydGlhbCIpKSByZXR1cm47Ci0gICAgICBjb25zdCB0aGluZyA9IGRp
Y3Rpb25hcnkodHJ1ZSkgfHwKLSAgICAgICAgaW50ZXJmYWNlXyh0cnVlKSB8fAotICAgICAgICBu
YW1lc3BhY2UodHJ1ZSkgfHwKLSAgICAgICAgZXJyb3IoIlBhcnRpYWwgZG9lc24ndCBhcHBseSB0
byBhbnl0aGluZyIpOwotICAgICAgcmV0dXJuIHRoaW5nOwotICAgIH0KLQotICAgIGZ1bmN0aW9u
IGRpY3Rpb25hcnkoaXNQYXJ0aWFsKSB7Ci0gICAgICBpZiAoIWNvbnN1bWUoImRpY3Rpb25hcnki
KSkgcmV0dXJuOwotICAgICAgY29uc3QgbmFtZSA9IGNvbnN1bWUoSUQpIHx8IGVycm9yKCJObyBu
YW1lIGZvciBkaWN0aW9uYXJ5Iik7Ci0gICAgICBjb25zdCBtZW1zID0gW107Ci0gICAgICBjb25z
dCByZXQgPSBjdXJyZW50ID0gewotICAgICAgICB0eXBlOiAiZGljdGlvbmFyeSIsCi0gICAgICAg
IG5hbWU6IGlzUGFydGlhbCA/IG5hbWUudmFsdWUgOiBzYW5pdGl6ZV9uYW1lKG5hbWUudmFsdWUs
ICJkaWN0aW9uYXJ5IiksCi0gICAgICAgIHBhcnRpYWw6IGlzUGFydGlhbCwKLSAgICAgICAgbWVt
YmVyczogbWVtcwotICAgICAgfTsKLSAgICAgIGlmICghaXNQYXJ0aWFsKSByZXQuaW5oZXJpdGFu
Y2UgPSBpbmhlcml0YW5jZSgpIHx8IG51bGw7Ci0gICAgICBjb25zdW1lKCJ7IikgfHwgZXJyb3Io
IkJvZHlsZXNzIGRpY3Rpb25hcnkiKTsKLSAgICAgIHdoaWxlICh0cnVlKSB7Ci0gICAgICAgIGlm
IChjb25zdW1lKCJ9IikpIHsKLSAgICAgICAgICBjb25zdW1lKCI7IikgfHwgZXJyb3IoIk1pc3Np
bmcgc2VtaWNvbG9uIGFmdGVyIGRpY3Rpb25hcnkiKTsKLSAgICAgICAgICByZXR1cm4gcmV0Owot
ICAgICAgICB9Ci0gICAgICAgIGNvbnN0IGVhID0gZXh0ZW5kZWRfYXR0cnMoKTsKLSAgICAgICAg
Y29uc3QgcmVxdWlyZWQgPSBjb25zdW1lKCJyZXF1aXJlZCIpOwotICAgICAgICBjb25zdCB0eXAg
PSB0eXBlX3dpdGhfZXh0ZW5kZWRfYXR0cmlidXRlcygiZGljdGlvbmFyeS10eXBlIikgfHwgZXJy
b3IoIk5vIHR5cGUgZm9yIGRpY3Rpb25hcnkgbWVtYmVyIik7Ci0gICAgICAgIGNvbnN0IG5hbWUg
PSBjb25zdW1lKElEKSB8fCBlcnJvcigiTm8gbmFtZSBmb3IgZGljdGlvbmFyeSBtZW1iZXIiKTsK
LSAgICAgICAgY29uc3QgZGZsdCA9IGRlZmF1bHRfKCkgfHwgbnVsbDsKLSAgICAgICAgaWYgKHJl
cXVpcmVkICYmIGRmbHQpIGVycm9yKCJSZXF1aXJlZCBtZW1iZXIgbXVzdCBub3QgaGF2ZSBhIGRl
ZmF1bHQiKTsKLSAgICAgICAgY29uc3QgbWVtYmVyID0gewotICAgICAgICAgIHR5cGU6ICJmaWVs
ZCIsCi0gICAgICAgICAgbmFtZTogdW5lc2NhcGUobmFtZS52YWx1ZSksCi0gICAgICAgICAgZXNj
YXBlZE5hbWU6IG5hbWUudmFsdWUsCi0gICAgICAgICAgcmVxdWlyZWQ6ICEhcmVxdWlyZWQsCi0g
ICAgICAgICAgaWRsVHlwZTogdHlwLAotICAgICAgICAgIGV4dEF0dHJzOiBlYSwKLSAgICAgICAg
ICBkZWZhdWx0OiBkZmx0Ci0gICAgICAgIH07Ci0gICAgICAgIHJldC5tZW1iZXJzLnB1c2gobWVt
YmVyKTsKLSAgICAgICAgY29uc3VtZSgiOyIpIHx8IGVycm9yKCJVbnRlcm1pbmF0ZWQgZGljdGlv
bmFyeSBtZW1iZXIiKTsKKyJ1c2Ugc3RyaWN0IjsKK19fd2VicGFja19yZXF1aXJlX18ucihfX3dl
YnBhY2tfZXhwb3J0c19fKTsKKy8qIGhhcm1vbnkgZXhwb3J0IChiaW5kaW5nKSAqLyBfX3dlYnBh
Y2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgImlkbFR5cGVJbmNsdWRlc0RpY3Rp
b25hcnkiLCBmdW5jdGlvbigpIHsgcmV0dXJuIGlkbFR5cGVJbmNsdWRlc0RpY3Rpb25hcnk7IH0p
OworLyoqCisgKiBAcGFyYW0geyp9IGlkbFR5cGUKKyAqIEBwYXJhbSB7KltdfSBkZWZzCisgKiBA
cGFyYW0ge29iamVjdH0gW29wdGlvbnNdCisgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLnVz
ZU51bGxhYmxlSW5uZXJdIHVzZSB3aGVuIHRoZSBpbnB1dCBpZGxUeXBlIGlzIG51bGxhYmxlIGFu
ZCB5b3Ugd2FudCB0byB1c2UgaXRzIGlubmVyIHR5cGUKKyAqIEByZXR1cm4gdGhlIHR5cGUgcmVm
ZXJlbmNlIHRoYXQgdWx0aW1hdGVseSBpbmNsdWRlcyBkaWN0aW9uYXJ5LgorICovCitmdW5jdGlv
biBpZGxUeXBlSW5jbHVkZXNEaWN0aW9uYXJ5KGlkbFR5cGUsIGRlZnMsIHsgdXNlTnVsbGFibGVJ
bm5lciB9ID0ge30pIHsKKyAgaWYgKCFpZGxUeXBlLnVuaW9uKSB7CisgICAgY29uc3QgZGVmID0g
ZGVmcy51bmlxdWUuZ2V0KGlkbFR5cGUuaWRsVHlwZSk7CisgICAgaWYgKCFkZWYpIHsKKyAgICAg
IHJldHVybjsKKyAgICB9CisgICAgaWYgKGRlZi50eXBlID09PSAidHlwZWRlZiIpIHsKKyAgICAg
IGNvbnN0IHsgdHlwZWRlZkluY2x1ZGVzRGljdGlvbmFyeX0gPSBkZWZzLmNhY2hlOworICAgICAg
aWYgKHR5cGVkZWZJbmNsdWRlc0RpY3Rpb25hcnkuaGFzKGRlZikpIHsKKyAgICAgICAgLy8gTm90
ZSB0aGF0IHRoaXMgYWxzbyBoYWx0cyB3aGVuIGl0IG1ldCBpbmRldGVybWluYXRlIHN0YXRlCisg
ICAgICAgIC8vIHRvIHByZXZlbnQgaW5maW5pdGUgcmVjdXJzaW9uCisgICAgICAgIHJldHVybiB0
eXBlZGVmSW5jbHVkZXNEaWN0aW9uYXJ5LmdldChkZWYpOworICAgICAgfQorICAgICAgZGVmcy5j
YWNoZS50eXBlZGVmSW5jbHVkZXNEaWN0aW9uYXJ5LnNldChkZWYsIHVuZGVmaW5lZCk7IC8vIGlu
ZGV0ZXJtaW5hdGUgc3RhdGUKKyAgICAgIGNvbnN0IHJlc3VsdCA9IGlkbFR5cGVJbmNsdWRlc0Rp
Y3Rpb25hcnkoZGVmLmlkbFR5cGUsIGRlZnMpOworICAgICAgZGVmcy5jYWNoZS50eXBlZGVmSW5j
bHVkZXNEaWN0aW9uYXJ5LnNldChkZWYsIHJlc3VsdCk7CisgICAgICBpZiAocmVzdWx0KSB7Cisg
ICAgICAgIHJldHVybiBpZGxUeXBlOwogICAgICAgfQogICAgIH0KLQotICAgIGZ1bmN0aW9uIGVu
dW1fKCkgewotICAgICAgaWYgKCFjb25zdW1lKCJlbnVtIikpIHJldHVybjsKLSAgICAgIGNvbnN0
IG5hbWUgPSBjb25zdW1lKElEKSB8fCBlcnJvcigiTm8gbmFtZSBmb3IgZW51bSIpOwotICAgICAg
Y29uc3QgdmFscyA9IFtdOwotICAgICAgY29uc3QgcmV0ID0gY3VycmVudCA9IHsKLSAgICAgICAg
dHlwZTogImVudW0iLAotICAgICAgICBuYW1lOiBzYW5pdGl6ZV9uYW1lKG5hbWUudmFsdWUsICJl
bnVtIiksCi0gICAgICAgIHZhbHVlczogdmFscwotICAgICAgfTsKLSAgICAgIGNvbnN1bWUoInsi
KSB8fCBlcnJvcigiTm8gY3VybHkgZm9yIGVudW0iKTsKLSAgICAgIGxldCB2YWx1ZV9leHBlY3Rl
ZCA9IHRydWU7Ci0gICAgICB3aGlsZSAodHJ1ZSkgewotICAgICAgICBpZiAoY29uc3VtZSgifSIp
KSB7Ci0gICAgICAgICAgaWYgKCFyZXQudmFsdWVzLmxlbmd0aCkgZXJyb3IoIk5vIHZhbHVlIGlu
IGVudW0iKTsKLSAgICAgICAgICBjb25zdW1lKCI7IikgfHwgZXJyb3IoIk5vIHNlbWljb2xvbiBh
ZnRlciBlbnVtIik7Ci0gICAgICAgICAgcmV0dXJuIHJldDsKLSAgICAgICAgfQotICAgICAgICBl
bHNlIGlmICghdmFsdWVfZXhwZWN0ZWQpIHsKLSAgICAgICAgICBlcnJvcigiTm8gY29tbWEgYmV0
d2VlbiBlbnVtIHZhbHVlcyIpOwotICAgICAgICB9Ci0gICAgICAgIGNvbnN0IHZhbCA9IGNvbnN1
bWUoU1RSKSB8fCBlcnJvcigiVW5leHBlY3RlZCB2YWx1ZSBpbiBlbnVtIik7Ci0gICAgICAgIHZh
bC52YWx1ZSA9IHZhbC52YWx1ZS5zbGljZSgxLCAtMSk7Ci0gICAgICAgIC8vIE5vIHRyaXZpYSBl
eHBvc3VyZSB5ZXQKLSAgICAgICAgdmFsLnRyaXZpYSA9IHVuZGVmaW5lZDsKLSAgICAgICAgcmV0
LnZhbHVlcy5wdXNoKHZhbCk7Ci0gICAgICAgIHZhbHVlX2V4cGVjdGVkID0gISFjb25zdW1lKCIs
Iik7CisgICAgaWYgKGRlZi50eXBlID09PSAiZGljdGlvbmFyeSIgJiYgKHVzZU51bGxhYmxlSW5u
ZXIgfHwgIWlkbFR5cGUubnVsbGFibGUpKSB7CisgICAgICByZXR1cm4gaWRsVHlwZTsKKyAgICB9
CisgIH0KKyAgZm9yIChjb25zdCBzdWJ0eXBlIG9mIGlkbFR5cGUuc3VidHlwZSkgeworICAgIGNv
bnN0IHJlc3VsdCA9IGlkbFR5cGVJbmNsdWRlc0RpY3Rpb25hcnkoc3VidHlwZSwgZGVmcyk7Cisg
ICAgaWYgKHJlc3VsdCkgeworICAgICAgaWYgKHN1YnR5cGUudW5pb24pIHsKKyAgICAgICAgcmV0
dXJuIHJlc3VsdDsKICAgICAgIH0KKyAgICAgIHJldHVybiBzdWJ0eXBlOwogICAgIH0KKyAgfQor
fQogCi0gICAgZnVuY3Rpb24gdHlwZWRlZigpIHsKLSAgICAgIGlmICghY29uc3VtZSgidHlwZWRl
ZiIpKSByZXR1cm47Ci0gICAgICBjb25zdCByZXQgPSB7Ci0gICAgICAgIHR5cGU6ICJ0eXBlZGVm
IgotICAgICAgfTsKLSAgICAgIHJldC5pZGxUeXBlID0gdHlwZV93aXRoX2V4dGVuZGVkX2F0dHJp
YnV0ZXMoInR5cGVkZWYtdHlwZSIpIHx8IGVycm9yKCJObyB0eXBlIGluIHR5cGVkZWYiKTsKLSAg
ICAgIGNvbnN0IG5hbWUgPSBjb25zdW1lKElEKSB8fCBlcnJvcigiTm8gbmFtZSBpbiB0eXBlZGVm
Iik7Ci0gICAgICByZXQubmFtZSA9IHNhbml0aXplX25hbWUobmFtZS52YWx1ZSwgInR5cGVkZWYi
KTsKLSAgICAgIGN1cnJlbnQgPSByZXQ7Ci0gICAgICBjb25zdW1lKCI7IikgfHwgZXJyb3IoIlVu
dGVybWluYXRlZCB0eXBlZGVmIik7Ci0gICAgICByZXR1cm4gcmV0OwotICAgIH0KLQotICAgIGZ1
bmN0aW9uIGltcGxlbWVudHNfKCkgewotICAgICAgY29uc3Qgc3RhcnRfcG9zaXRpb24gPSBjb25z
dW1lX3Bvc2l0aW9uOwotICAgICAgY29uc3QgdGFyZ2V0ID0gY29uc3VtZShJRCk7Ci0gICAgICBp
ZiAoIXRhcmdldCkgcmV0dXJuOwotICAgICAgaWYgKGNvbnN1bWUoImltcGxlbWVudHMiKSkgewot
ICAgICAgICBjb25zdCByZXQgPSB7Ci0gICAgICAgICAgdHlwZTogImltcGxlbWVudHMiLAotICAg
ICAgICAgIHRhcmdldDogdGFyZ2V0LnZhbHVlCi0gICAgICAgIH07Ci0gICAgICAgIGNvbnN0IGlt
cCA9IGNvbnN1bWUoSUQpIHx8IGVycm9yKCJJbmNvbXBsZXRlIGltcGxlbWVudHMgc3RhdGVtZW50
Iik7Ci0gICAgICAgIHJldC5pbXBsZW1lbnRzID0gaW1wLnZhbHVlOwotICAgICAgICBjb25zdW1l
KCI7IikgfHwgZXJyb3IoIk5vIHRlcm1pbmF0aW5nIDsgZm9yIGltcGxlbWVudHMgc3RhdGVtZW50
Iik7Ci0gICAgICAgIHJldHVybiByZXQ7Ci0gICAgICB9IGVsc2UgewotICAgICAgICAvLyByb2xs
YmFjawotICAgICAgICB1bmNvbnN1bWUoc3RhcnRfcG9zaXRpb24pOwotICAgICAgfQorCisvKioq
LyB9KSwKKy8qIDggKi8KKy8qKiovIChmdW5jdGlvbihtb2R1bGUsIF9fd2VicGFja19leHBvcnRz
X18sIF9fd2VicGFja19yZXF1aXJlX18pIHsKKworInVzZSBzdHJpY3QiOworX193ZWJwYWNrX3Jl
cXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pOworLyogaGFybW9ueSBleHBvcnQgKGJpbmRp
bmcpICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAiQXJndW1l
bnQiLCBmdW5jdGlvbigpIHsgcmV0dXJuIEFyZ3VtZW50OyB9KTsKKy8qIGhhcm1vbnkgaW1wb3J0
ICovIHZhciBfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNr
X3JlcXVpcmVfXyg2KTsKKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfZGVmYXVsdF9qc19fV0VC
UEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg5KTsKKy8qIGhh
cm1vbnkgaW1wb3J0ICovIHZhciBfZXh0ZW5kZWRfYXR0cmlidXRlc19qc19fV0VCUEFDS19JTVBP
UlRFRF9NT0RVTEVfMl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygxMCk7CisvKiBoYXJtb255IGlt
cG9ydCAqLyB2YXIgX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXyA9IF9f
d2VicGFja19yZXF1aXJlX18oNCk7CisvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3Rva2VuaXNl
cl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygy
KTsKKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfZXJyb3JfanNfX1dFQlBBQ0tfSU1QT1JURURf
TU9EVUxFXzVfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMyk7CisvKiBoYXJtb255IGltcG9ydCAq
LyB2YXIgX3ZhbGlkYXRvcnNfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9f
ID0gX193ZWJwYWNrX3JlcXVpcmVfXyg3KTsKKworCisKKworCisKKworCitjbGFzcyBBcmd1bWVu
dCBleHRlbmRzIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIkJhc2UiXSB7
CisgIC8qKgorICAgKiBAcGFyYW0ge2ltcG9ydCgiLi4vdG9rZW5pc2VyIikuVG9rZW5pc2VyfSB0
b2tlbmlzZXIKKyAgICovCisgIHN0YXRpYyBwYXJzZSh0b2tlbmlzZXIpIHsKKyAgICBjb25zdCBz
dGFydF9wb3NpdGlvbiA9IHRva2VuaXNlci5wb3NpdGlvbjsKKyAgICBjb25zdCB0b2tlbnMgPSB7
fTsKKyAgICBjb25zdCByZXQgPSBuZXcgQXJndW1lbnQoeyBzb3VyY2U6IHRva2VuaXNlci5zb3Vy
Y2UsIHRva2VucyB9KTsKKyAgICByZXQuZXh0QXR0cnMgPSBfZXh0ZW5kZWRfYXR0cmlidXRlc19q
c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fWyJFeHRlbmRlZEF0dHJpYnV0ZXMiXS5wYXJz
ZSh0b2tlbmlzZXIpOworICAgIHRva2Vucy5vcHRpb25hbCA9IHRva2VuaXNlci5jb25zdW1lKCJv
cHRpb25hbCIpOworICAgIHJldC5pZGxUeXBlID0gT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNL
X0lNUE9SVEVEX01PRFVMRV8zX19bInR5cGVfd2l0aF9leHRlbmRlZF9hdHRyaWJ1dGVzIl0pKHRv
a2VuaXNlciwgImFyZ3VtZW50LXR5cGUiKTsKKyAgICBpZiAoIXJldC5pZGxUeXBlKSB7CisgICAg
ICByZXR1cm4gdG9rZW5pc2VyLnVuY29uc3VtZShzdGFydF9wb3NpdGlvbik7CiAgICAgfQorICAg
IGlmICghdG9rZW5zLm9wdGlvbmFsKSB7CisgICAgICB0b2tlbnMudmFyaWFkaWMgPSB0b2tlbmlz
ZXIuY29uc3VtZSgiLi4uIik7CisgICAgfQorICAgIHRva2Vucy5uYW1lID0gdG9rZW5pc2VyLmNv
bnN1bWUoImlkZW50aWZpZXIiLCAuLi5fdG9rZW5pc2VyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01P
RFVMRV80X19bImFyZ3VtZW50TmFtZUtleXdvcmRzIl0pOworICAgIGlmICghdG9rZW5zLm5hbWUp
IHsKKyAgICAgIHJldHVybiB0b2tlbmlzZXIudW5jb25zdW1lKHN0YXJ0X3Bvc2l0aW9uKTsKKyAg
ICB9CisgICAgcmV0LmRlZmF1bHQgPSB0b2tlbnMub3B0aW9uYWwgPyBfZGVmYXVsdF9qc19fV0VC
UEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fWyJEZWZhdWx0Il0ucGFyc2UodG9rZW5pc2VyKSA6IG51
bGw7CisgICAgcmV0dXJuIHJldDsKKyAgfQogCi0gICAgZnVuY3Rpb24gaW5jbHVkZXMoKSB7Ci0g
ICAgICBjb25zdCBzdGFydF9wb3NpdGlvbiA9IGNvbnN1bWVfcG9zaXRpb247Ci0gICAgICBjb25z
dCB0YXJnZXQgPSBjb25zdW1lKElEKTsKLSAgICAgIGlmICghdGFyZ2V0KSByZXR1cm47Ci0gICAg
ICBpZiAoY29uc3VtZSgiaW5jbHVkZXMiKSkgewotICAgICAgICBjb25zdCByZXQgPSB7Ci0gICAg
ICAgICAgdHlwZTogImluY2x1ZGVzIiwKLSAgICAgICAgICB0YXJnZXQ6IHRhcmdldC52YWx1ZQot
ICAgICAgICB9OwotICAgICAgICBjb25zdCBpbXAgPSBjb25zdW1lKElEKSB8fCBlcnJvcigiSW5j
b21wbGV0ZSBpbmNsdWRlcyBzdGF0ZW1lbnQiKTsKLSAgICAgICAgcmV0LmluY2x1ZGVzID0gaW1w
LnZhbHVlOwotICAgICAgICBjb25zdW1lKCI7IikgfHwgZXJyb3IoIk5vIHRlcm1pbmF0aW5nIDsg
Zm9yIGluY2x1ZGVzIHN0YXRlbWVudCIpOwotICAgICAgICByZXR1cm4gcmV0OwotICAgICAgfSBl
bHNlIHsKLSAgICAgICAgLy8gcm9sbGJhY2sKLSAgICAgICAgdW5jb25zdW1lKHN0YXJ0X3Bvc2l0
aW9uKTsKKyAgZ2V0IHR5cGUoKSB7CisgICAgcmV0dXJuICJhcmd1bWVudCI7CisgIH0KKyAgZ2V0
IG9wdGlvbmFsKCkgeworICAgIHJldHVybiAhIXRoaXMudG9rZW5zLm9wdGlvbmFsOworICB9Cisg
IGdldCB2YXJpYWRpYygpIHsKKyAgICByZXR1cm4gISF0aGlzLnRva2Vucy52YXJpYWRpYzsKKyAg
fQorICBnZXQgbmFtZSgpIHsKKyAgICByZXR1cm4gT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNL
X0lNUE9SVEVEX01PRFVMRV8zX19bInVuZXNjYXBlIl0pKHRoaXMudG9rZW5zLm5hbWUudmFsdWUp
OworICB9CisKKyAgKnZhbGlkYXRlKGRlZnMpIHsKKyAgICB5aWVsZCogdGhpcy5pZGxUeXBlLnZh
bGlkYXRlKGRlZnMpOworICAgIGlmIChPYmplY3QoX3ZhbGlkYXRvcnNfaGVscGVyc19qc19fV0VC
UEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fWyJpZGxUeXBlSW5jbHVkZXNEaWN0aW9uYXJ5Il0pKHRo
aXMuaWRsVHlwZSwgZGVmcywgeyB1c2VOdWxsYWJsZUlubmVyOiB0cnVlIH0pKSB7CisgICAgICBp
ZiAodGhpcy5pZGxUeXBlLm51bGxhYmxlKSB7CisgICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgRGlj
dGlvbmFyeSBhcmd1bWVudHMgY2Fubm90IGJlIG51bGxhYmxlLmA7CisgICAgICAgIHlpZWxkIE9i
amVjdChfZXJyb3JfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfX1sidmFsaWRhdGlvbkVy
cm9yIl0pKHRoaXMuc291cmNlLCB0aGlzLnRva2Vucy5uYW1lLCB0aGlzLCBtZXNzYWdlKTsKKyAg
ICAgIH0gZWxzZSBpZiAodGhpcy5vcHRpb25hbCAmJiAhdGhpcy5kZWZhdWx0KSB7CisgICAgICAg
IGNvbnN0IG1lc3NhZ2UgPSBgT3B0aW9uYWwgZGljdGlvbmFyeSBhcmd1bWVudHMgbXVzdCBoYXZl
IGEgZGVmYXVsdCB2YWx1ZSBvZiBcYHt9XGAuYDsKKyAgICAgICAgeWllbGQgT2JqZWN0KF9lcnJv
cl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fWyJ2YWxpZGF0aW9uRXJyb3IiXSkodGhp
cy5zb3VyY2UsIHRoaXMudG9rZW5zLm5hbWUsIHRoaXMsIG1lc3NhZ2UsIHsKKyAgICAgICAgICBh
dXRvZml4OiBhdXRvZml4T3B0aW9uYWxEaWN0aW9uYXJ5RGVmYXVsdFZhbHVlKHRoaXMpCisgICAg
ICAgIH0pOwogICAgICAgfQogICAgIH0KKyAgfQorfQorCisvKioKKyAqIEBwYXJhbSB7QXJndW1l
bnR9IGFyZworICovCitmdW5jdGlvbiBhdXRvZml4T3B0aW9uYWxEaWN0aW9uYXJ5RGVmYXVsdFZh
bHVlKGFyZykgeworICByZXR1cm4gKCkgPT4geworICAgIGFyZy5kZWZhdWx0ID0gX2RlZmF1bHRf
anNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX1siRGVmYXVsdCJdLnBhcnNlKG5ldyBfdG9r
ZW5pc2VyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X19bIlRva2VuaXNlciJdKCIgPSB7
fSIpKTsKKyAgfTsKK30KKworCisvKioqLyB9KSwKKy8qIDkgKi8KKy8qKiovIChmdW5jdGlvbiht
b2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pIHsKKworInVz
ZSBzdHJpY3QiOworX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pOwor
LyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dl
YnBhY2tfZXhwb3J0c19fLCAiRGVmYXVsdCIsIGZ1bmN0aW9uKCkgeyByZXR1cm4gRGVmYXVsdDsg
fSk7CisvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURf
TU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oNik7CisvKiBoYXJtb255IGltcG9ydCAq
LyB2YXIgX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFj
a19yZXF1aXJlX18oNCk7CiAKLSAgICBmdW5jdGlvbiBkZWZpbml0aW9uKCkgewotICAgICAgcmV0
dXJuIGNhbGxiYWNrKCkgfHwKLSAgICAgICAgaW50ZXJmYWNlXyhmYWxzZSkgfHwKLSAgICAgICAg
cGFydGlhbCgpIHx8Ci0gICAgICAgIGRpY3Rpb25hcnkoZmFsc2UpIHx8Ci0gICAgICAgIGVudW1f
KCkgfHwKLSAgICAgICAgdHlwZWRlZigpIHx8Ci0gICAgICAgIGltcGxlbWVudHNfKCkgfHwKLSAg
ICAgICAgaW5jbHVkZXMoKSB8fAotICAgICAgICBuYW1lc3BhY2UoZmFsc2UpOworCisKK2NsYXNz
IERlZmF1bHQgZXh0ZW5kcyBfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJC
YXNlIl0geworICAvKioKKyAgICogQHBhcmFtIHtpbXBvcnQoIi4uL3Rva2VuaXNlciIpLlRva2Vu
aXNlcn0gdG9rZW5pc2VyCisgICAqLworICBzdGF0aWMgcGFyc2UodG9rZW5pc2VyKSB7CisgICAg
Y29uc3QgYXNzaWduID0gdG9rZW5pc2VyLmNvbnN1bWUoIj0iKTsKKyAgICBpZiAoIWFzc2lnbikg
eworICAgICAgcmV0dXJuIG51bGw7CiAgICAgfQorICAgIGNvbnN0IGRlZiA9IE9iamVjdChfaGVs
cGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fWyJjb25zdF92YWx1ZSJdKSh0b2tl
bmlzZXIpIHx8IHRva2VuaXNlci5jb25zdW1lKCJzdHJpbmciLCAibnVsbCIsICJbIiwgInsiKSB8
fCB0b2tlbmlzZXIuZXJyb3IoIk5vIHZhbHVlIGZvciBkZWZhdWx0Iik7CisgICAgY29uc3QgZXhw
cmVzc2lvbiA9IFtkZWZdOworICAgIGlmIChkZWYudHlwZSA9PT0gIlsiKSB7CisgICAgICBjb25z
dCBjbG9zZSA9IHRva2VuaXNlci5jb25zdW1lKCJdIikgfHwgdG9rZW5pc2VyLmVycm9yKCJEZWZh
dWx0IHNlcXVlbmNlIHZhbHVlIG11c3QgYmUgZW1wdHkiKTsKKyAgICAgIGV4cHJlc3Npb24ucHVz
aChjbG9zZSk7CisgICAgfSBlbHNlIGlmIChkZWYudHlwZSA9PT0gInsiKSB7CisgICAgICBjb25z
dCBjbG9zZSA9IHRva2VuaXNlci5jb25zdW1lKCJ9IikgfHwgdG9rZW5pc2VyLmVycm9yKCJEZWZh
dWx0IGRpY3Rpb25hcnkgdmFsdWUgbXVzdCBiZSBlbXB0eSIpOworICAgICAgZXhwcmVzc2lvbi5w
dXNoKGNsb3NlKTsKKyAgICB9CisgICAgcmV0dXJuIG5ldyBEZWZhdWx0KHsgc291cmNlOiB0b2tl
bmlzZXIuc291cmNlLCB0b2tlbnM6IHsgYXNzaWduIH0sIGV4cHJlc3Npb24gfSk7CisgIH0KIAot
ICAgIGZ1bmN0aW9uIGRlZmluaXRpb25zKCkgewotICAgICAgaWYgKCF0b2tlbnMubGVuZ3RoKSBy
ZXR1cm4gW107Ci0gICAgICBjb25zdCBkZWZzID0gW107Ci0gICAgICB3aGlsZSAodHJ1ZSkgewot
ICAgICAgICBjb25zdCBlYSA9IGV4dGVuZGVkX2F0dHJzKCk7Ci0gICAgICAgIGNvbnN0IGRlZiA9
IGRlZmluaXRpb24oKTsKLSAgICAgICAgaWYgKCFkZWYpIHsKLSAgICAgICAgICBpZiAoZWEubGVu
Z3RoKSBlcnJvcigiU3RyYXkgZXh0ZW5kZWQgYXR0cmlidXRlcyIpOwotICAgICAgICAgIGJyZWFr
OwotICAgICAgICB9Ci0gICAgICAgIGRlZi5leHRBdHRycyA9IGVhOwotICAgICAgICBkZWZzLnB1
c2goZGVmKTsKLSAgICAgIH0KLSAgICAgIHJldHVybiBkZWZzOworICBjb25zdHJ1Y3Rvcih7IHNv
dXJjZSwgdG9rZW5zLCBleHByZXNzaW9uIH0pIHsKKyAgICBzdXBlcih7IHNvdXJjZSwgdG9rZW5z
IH0pOworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCAiZXhwcmVzc2lvbiIsIHsgdmFs
dWU6IGV4cHJlc3Npb24gfSk7CisgIH0KKworICBnZXQgdHlwZSgpIHsKKyAgICByZXR1cm4gT2Jq
ZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19bImNvbnN0X2RhdGEi
XSkodGhpcy5leHByZXNzaW9uWzBdKS50eXBlOworICB9CisgIGdldCB2YWx1ZSgpIHsKKyAgICBy
ZXR1cm4gT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19bImNv
bnN0X2RhdGEiXSkodGhpcy5leHByZXNzaW9uWzBdKS52YWx1ZTsKKyAgfQorICBnZXQgbmVnYXRp
dmUoKSB7CisgICAgcmV0dXJuIE9iamVjdChfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9N
T0RVTEVfMV9fWyJjb25zdF9kYXRhIl0pKHRoaXMuZXhwcmVzc2lvblswXSkubmVnYXRpdmU7Cisg
IH0KK30KKworCisvKioqLyB9KSwKKy8qIDEwICovCisvKioqLyAoZnVuY3Rpb24obW9kdWxlLCBf
X3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CisKKyJ1c2Ugc3RyaWN0
IjsKK19fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTsKKy8qIGhhcm1v
bnkgZXhwb3J0IChiaW5kaW5nKSAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4
cG9ydHNfXywgIlNpbXBsZUV4dGVuZGVkQXR0cmlidXRlIiwgZnVuY3Rpb24oKSB7IHJldHVybiBT
aW1wbGVFeHRlbmRlZEF0dHJpYnV0ZTsgfSk7CisvKiBoYXJtb255IGV4cG9ydCAoYmluZGluZykg
Ki8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sICJFeHRlbmRlZEF0
dHJpYnV0ZXMiLCBmdW5jdGlvbigpIHsgcmV0dXJuIEV4dGVuZGVkQXR0cmlidXRlczsgfSk7Cisv
KiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxF
XzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oNik7CisvKiBoYXJtb255IGltcG9ydCAqLyB2YXIg
X2FycmF5X2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19y
ZXF1aXJlX18oMTEpOworLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9oZWxwZXJzX2pzX19XRUJQ
QUNLX0lNUE9SVEVEX01PRFVMRV8yX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDQpOworLyogaGFy
bW9ueSBpbXBvcnQgKi8gdmFyIF9lcnJvcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19f
ID0gX193ZWJwYWNrX3JlcXVpcmVfXygzKTsKKworCisKKworCitjbGFzcyBFeHRlbmRlZEF0dHJp
YnV0ZVBhcmFtZXRlcnMgZXh0ZW5kcyBfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVf
MF9fWyJCYXNlIl0geworICAvKioKKyAgICogQHBhcmFtIHtpbXBvcnQoIi4uL3Rva2VuaXNlciIp
LlRva2VuaXNlcn0gdG9rZW5pc2VyCisgICAqLworICBzdGF0aWMgcGFyc2UodG9rZW5pc2VyKSB7
CisgICAgY29uc3QgdG9rZW5zID0geyBhc3NpZ246IHRva2VuaXNlci5jb25zdW1lKCI9IikgfTsK
KyAgICBjb25zdCByZXQgPSBuZXcgRXh0ZW5kZWRBdHRyaWJ1dGVQYXJhbWV0ZXJzKHsgc291cmNl
OiB0b2tlbmlzZXIuc291cmNlLCB0b2tlbnMgfSk7CisgICAgaWYgKHRva2Vucy5hc3NpZ24pIHsK
KyAgICAgIHRva2Vucy5zZWNvbmRhcnlOYW1lID0gdG9rZW5pc2VyLmNvbnN1bWUoImlkZW50aWZp
ZXIiLCAiZGVjaW1hbCIsICJpbnRlZ2VyIiwgInN0cmluZyIpOworICAgIH0KKyAgICB0b2tlbnMu
b3BlbiA9IHRva2VuaXNlci5jb25zdW1lKCIoIik7CisgICAgaWYgKHRva2Vucy5vcGVuKSB7Cisg
ICAgICByZXQubGlzdCA9IHJldC5yaHNUeXBlID09PSAiaWRlbnRpZmllci1saXN0IiA/CisgICAg
ICAgIC8vIFtFeHBvc2VkPShXaW5kb3csV29ya2VyKV0KKyAgICAgICAgT2JqZWN0KF9oZWxwZXJz
X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19bImlkZW50aWZpZXJzIl0pKHRva2VuaXNl
cikgOgorICAgICAgICAvLyBbTmFtZWRDb25zdHJ1Y3Rvcj1BdWRpbyhET01TdHJpbmcgc3JjKV0g
b3IgW0NvbnN0cnVjdG9yKERPTVN0cmluZyBzdHIpXQorICAgICAgICBPYmplY3QoX2hlbHBlcnNf
anNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX1siYXJndW1lbnRfbGlzdCJdKSh0b2tlbmlz
ZXIpOworICAgICAgdG9rZW5zLmNsb3NlID0gdG9rZW5pc2VyLmNvbnN1bWUoIikiKSB8fCB0b2tl
bmlzZXIuZXJyb3IoIlVuZXhwZWN0ZWQgdG9rZW4gaW4gZXh0ZW5kZWQgYXR0cmlidXRlIGFyZ3Vt
ZW50IGxpc3QiKTsKKyAgICB9IGVsc2UgaWYgKHJldC5oYXNSaHMgJiYgIXRva2Vucy5zZWNvbmRh
cnlOYW1lKSB7CisgICAgICB0b2tlbmlzZXIuZXJyb3IoIk5vIHJpZ2h0IGhhbmQgc2lkZSB0byBl
eHRlbmRlZCBhdHRyaWJ1dGUgYXNzaWdubWVudCIpOwogICAgIH0KLSAgICBjb25zdCByZXMgPSBk
ZWZpbml0aW9ucygpOwotICAgIGlmIChjb25zdW1lX3Bvc2l0aW9uIDwgdG9rZW5zLmxlbmd0aCkg
ZXJyb3IoIlVucmVjb2duaXNlZCB0b2tlbnMiKTsKLSAgICByZXR1cm4gcmVzOworICAgIHJldHVy
biByZXQ7CiAgIH0KIAotICBjb25zdCBvYmogPSB7Ci0gICAgcGFyc2Uoc3RyKSB7Ci0gICAgICBj
b25zdCB0b2tlbnMgPSB0b2tlbmlzZShzdHIpOwotICAgICAgcmV0dXJuIHBhcnNlKHRva2Vucyk7
CisgIGdldCByaHNUeXBlKCkgeworICAgIHJldHVybiAhdGhpcy50b2tlbnMuYXNzaWduID8gbnVs
bCA6CisgICAgICAhdGhpcy50b2tlbnMuc2Vjb25kYXJ5TmFtZSA/ICJpZGVudGlmaWVyLWxpc3Qi
IDoKKyAgICAgICAgdGhpcy50b2tlbnMuc2Vjb25kYXJ5TmFtZS50eXBlOworICB9Cit9CisKK2Ns
YXNzIFNpbXBsZUV4dGVuZGVkQXR0cmlidXRlIGV4dGVuZHMgX2Jhc2VfanNfX1dFQlBBQ0tfSU1Q
T1JURURfTU9EVUxFXzBfX1siQmFzZSJdIHsKKyAgLyoqCisgICAqIEBwYXJhbSB7aW1wb3J0KCIu
Li90b2tlbmlzZXIiKS5Ub2tlbmlzZXJ9IHRva2VuaXNlcgorICAgKi8KKyAgc3RhdGljIHBhcnNl
KHRva2VuaXNlcikgeworICAgIGNvbnN0IG5hbWUgPSB0b2tlbmlzZXIuY29uc3VtZSgiaWRlbnRp
ZmllciIpOworICAgIGlmIChuYW1lKSB7CisgICAgICByZXR1cm4gbmV3IFNpbXBsZUV4dGVuZGVk
QXR0cmlidXRlKHsKKyAgICAgICAgc291cmNlOiB0b2tlbmlzZXIuc291cmNlLAorICAgICAgICB0
b2tlbnM6IHsgbmFtZSB9LAorICAgICAgICBwYXJhbXM6IEV4dGVuZGVkQXR0cmlidXRlUGFyYW1l
dGVycy5wYXJzZSh0b2tlbmlzZXIpCisgICAgICB9KTsKICAgICB9Ci0gIH07CisgIH0KKworICBj
b25zdHJ1Y3Rvcih7IHNvdXJjZSwgdG9rZW5zLCBwYXJhbXMgfSkgeworICAgIHN1cGVyKHsgc291
cmNlLCB0b2tlbnMgfSk7CisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsICJwYXJhbXMi
LCB7IHZhbHVlOiBwYXJhbXMgfSk7CisgIH0KIAotICBpZiAodHlwZW9mIG1vZHVsZSAhPT0gJ3Vu
ZGVmaW5lZCcgJiYgdHlwZW9mIG1vZHVsZS5leHBvcnRzICE9PSAndW5kZWZpbmVkJykgewotICAg
IG1vZHVsZS5leHBvcnRzID0gb2JqOwotICB9IGVsc2UgaWYgKHR5cGVvZiBkZWZpbmUgPT09ICdm
dW5jdGlvbicgJiYgZGVmaW5lLmFtZCkgewotICAgIGRlZmluZShbXSwgKCkgPT4gb2JqKTsKLSAg
fSBlbHNlIHsKLSAgICAoc2VsZiB8fCB3aW5kb3cpLldlYklETDIgPSBvYmo7CisgIGdldCB0eXBl
KCkgeworICAgIHJldHVybiAiZXh0ZW5kZWQtYXR0cmlidXRlIjsKKyAgfQorICBnZXQgbmFtZSgp
IHsKKyAgICByZXR1cm4gdGhpcy50b2tlbnMubmFtZS52YWx1ZTsKKyAgfQorICBnZXQgcmhzKCkg
eworICAgIGNvbnN0IHsgcmhzVHlwZTogdHlwZSwgdG9rZW5zLCBsaXN0IH0gPSB0aGlzLnBhcmFt
czsKKyAgICBpZiAoIXR5cGUpIHsKKyAgICAgIHJldHVybiBudWxsOworICAgIH0KKyAgICBjb25z
dCB2YWx1ZSA9IHR5cGUgPT09ICJpZGVudGlmaWVyLWxpc3QiID8gbGlzdCA6IHRva2Vucy5zZWNv
bmRhcnlOYW1lLnZhbHVlOworICAgIHJldHVybiB7IHR5cGUsIHZhbHVlIH07CisgIH0KKyAgZ2V0
IGFyZ3VtZW50cygpIHsKKyAgICBjb25zdCB7IHJoc1R5cGUsIGxpc3QgfSA9IHRoaXMucGFyYW1z
OworICAgIGlmICghbGlzdCB8fCByaHNUeXBlID09PSAiaWRlbnRpZmllci1saXN0IikgeworICAg
ICAgcmV0dXJuIFtdOworICAgIH0KKyAgICByZXR1cm4gbGlzdDsKICAgfQotfSkoKTsKKworICAq
dmFsaWRhdGUoZGVmcykgeworICAgIGlmICh0aGlzLm5hbWUgPT09ICJOb0ludGVyZmFjZU9iamVj
dCIpIHsKKyAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgXGBbTm9JbnRlcmZhY2VPYmplY3RdXGAgZXh0
ZW5kZWQgYXR0cmlidXRlIGlzIGFuIFwKK3VuZGVzaXJhYmxlIGZlYXR1cmUgdGhhdCBtYXkgYmUg
cmVtb3ZlZCBmcm9tIFdlYiBJREwgaW4gdGhlIGZ1dHVyZS4gUmVmZXIgdG8gdGhlIFwKK1tyZWxl
dmFudCB1cHN0cmVhbSBQUl0oaHR0cHM6Ly9naXRodWIuY29tL2hleWNhbS93ZWJpZGwvcHVsbC82
MDkpIGZvciBtb3JlIFwKK2luZm9ybWF0aW9uLmA7CisgICAgICB5aWVsZCBPYmplY3QoX2Vycm9y
X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX19bInZhbGlkYXRpb25FcnJvciJdKSh0aGlz
LnNvdXJjZSwgdGhpcy50b2tlbnMubmFtZSwgdGhpcywgbWVzc2FnZSwgeyBsZXZlbDogIndhcm5p
bmciIH0pOworICAgIH0KKyAgICBmb3IgKGNvbnN0IGFyZyBvZiB0aGlzLmFyZ3VtZW50cykgewor
ICAgICAgeWllbGQqIGFyZy52YWxpZGF0ZShkZWZzKTsKKyAgICB9CisgIH0KK30KKworLy8gTm90
ZTogd2UgcGFyc2Ugc29tZXRoaW5nIHNpbXBsZXIgdGhhbiB0aGUgb2ZmaWNpYWwgc3ludGF4LiBJ
dCdzIGFsbCB0aGF0IGV2ZXIKKy8vIHNlZW1zIHRvIGJlIHVzZWQKK2NsYXNzIEV4dGVuZGVkQXR0
cmlidXRlcyBleHRlbmRzIF9hcnJheV9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8x
X19bIkFycmF5QmFzZSJdIHsKKyAgLyoqCisgICAqIEBwYXJhbSB7aW1wb3J0KCIuLi90b2tlbmlz
ZXIiKS5Ub2tlbmlzZXJ9IHRva2VuaXNlcgorICAgKi8KKyAgc3RhdGljIHBhcnNlKHRva2VuaXNl
cikgeworICAgIGNvbnN0IHRva2VucyA9IHt9OworICAgIHRva2Vucy5vcGVuID0gdG9rZW5pc2Vy
LmNvbnN1bWUoIlsiKTsKKyAgICBpZiAoIXRva2Vucy5vcGVuKSByZXR1cm4gbmV3IEV4dGVuZGVk
QXR0cmlidXRlcyh7fSk7CisgICAgY29uc3QgcmV0ID0gbmV3IEV4dGVuZGVkQXR0cmlidXRlcyh7
IHNvdXJjZTogdG9rZW5pc2VyLnNvdXJjZSwgdG9rZW5zIH0pOworICAgIHJldC5wdXNoKC4uLk9i
amVjdChfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fWyJsaXN0Il0pKHRv
a2VuaXNlciwgeworICAgICAgcGFyc2VyOiBTaW1wbGVFeHRlbmRlZEF0dHJpYnV0ZS5wYXJzZSwK
KyAgICAgIGxpc3ROYW1lOiAiZXh0ZW5kZWQgYXR0cmlidXRlIgorICAgIH0pKTsKKyAgICB0b2tl
bnMuY2xvc2UgPSB0b2tlbmlzZXIuY29uc3VtZSgiXSIpIHx8IHRva2VuaXNlci5lcnJvcigiVW5l
eHBlY3RlZCBjbG9zaW5nIHRva2VuIG9mIGV4dGVuZGVkIGF0dHJpYnV0ZSIpOworICAgIGlmICgh
cmV0Lmxlbmd0aCkgeworICAgICAgdG9rZW5pc2VyLmVycm9yKCJGb3VuZCBhbiBlbXB0eSBleHRl
bmRlZCBhdHRyaWJ1dGUiKTsKKyAgICB9CisgICAgaWYgKHRva2VuaXNlci5wcm9iZSgiWyIpKSB7
CisgICAgICB0b2tlbmlzZXIuZXJyb3IoIklsbGVnYWwgZG91YmxlIGV4dGVuZGVkIGF0dHJpYnV0
ZSBsaXN0cywgY29uc2lkZXIgbWVyZ2luZyB0aGVtIik7CisgICAgfQorICAgIHJldHVybiByZXQ7
CisgIH0KKworICAqdmFsaWRhdGUoZGVmcykgeworICAgIGZvciAoY29uc3QgZXh0QXR0ciBvZiB0
aGlzKSB7CisgICAgICB5aWVsZCogZXh0QXR0ci52YWxpZGF0ZShkZWZzKTsKKyAgICB9CisgIH0K
K30KKworCisvKioqLyB9KSwKKy8qIDExICovCisvKioqLyAoZnVuY3Rpb24obW9kdWxlLCBfX3dl
YnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CisKKyJ1c2Ugc3RyaWN0IjsK
K19fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTsKKy8qIGhhcm1vbnkg
ZXhwb3J0IChiaW5kaW5nKSAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9y
dHNfXywgIkFycmF5QmFzZSIsIGZ1bmN0aW9uKCkgeyByZXR1cm4gQXJyYXlCYXNlOyB9KTsKK2Ns
YXNzIEFycmF5QmFzZSBleHRlbmRzIEFycmF5IHsKKyAgY29uc3RydWN0b3IoeyBzb3VyY2UsIHRv
a2VucyB9KSB7CisgICAgc3VwZXIoKTsKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydGllcyh0aGlz
LCB7CisgICAgICBzb3VyY2U6IHsgdmFsdWU6IHNvdXJjZSB9LAorICAgICAgdG9rZW5zOiB7IHZh
bHVlOiB0b2tlbnMgfQorICAgIH0pOworICB9Cit9CisKKworLyoqKi8gfSksCisvKiAxMiAqLwor
LyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3Jl
cXVpcmVfXykgeworCisidXNlIHN0cmljdCI7CitfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJw
YWNrX2V4cG9ydHNfXyk7CisvKiBoYXJtb255IGV4cG9ydCAoYmluZGluZykgKi8gX193ZWJwYWNr
X3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sICJUb2tlbiIsIGZ1bmN0aW9uKCkgeyBy
ZXR1cm4gVG9rZW47IH0pOworLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9iYXNlX2pzX19XRUJQ
QUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDYpOworCisKK2Ns
YXNzIFRva2VuIGV4dGVuZHMgX2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1si
QmFzZSJdIHsKKyAgLyoqCisgICAqIEBwYXJhbSB7aW1wb3J0KCIuLi90b2tlbmlzZXIiKS5Ub2tl
bmlzZXJ9IHRva2VuaXNlcgorICAgKiBAcGFyYW0ge3N0cmluZ30gdHlwZQorICAgKi8KKyAgc3Rh
dGljIHBhcnNlcih0b2tlbmlzZXIsIHR5cGUpIHsKKyAgICByZXR1cm4gKCkgPT4geworICAgICAg
Y29uc3QgdmFsdWUgPSB0b2tlbmlzZXIuY29uc3VtZSh0eXBlKTsKKyAgICAgIGlmICh2YWx1ZSkg
eworICAgICAgICByZXR1cm4gbmV3IFRva2VuKHsgc291cmNlOiB0b2tlbmlzZXIuc291cmNlLCB0
b2tlbnM6IHsgdmFsdWUgfSB9KTsKKyAgICAgIH0KKyAgICB9OworICB9CisKKyAgZ2V0IHZhbHVl
KCkgeworICAgIHJldHVybiB0aGlzLnRva2Vucy52YWx1ZS52YWx1ZTsKKyAgfQorfQorCisKKy8q
KiovIH0pLAorLyogMTMgKi8KKy8qKiovIChmdW5jdGlvbihtb2R1bGUsIF9fd2VicGFja19leHBv
cnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pIHsKKworInVzZSBzdHJpY3QiOworX193ZWJwYWNr
X3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pOworLyogaGFybW9ueSBleHBvcnQgKGJp
bmRpbmcpICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAiT3Bl
cmF0aW9uIiwgZnVuY3Rpb24oKSB7IHJldHVybiBPcGVyYXRpb247IH0pOworLyogaGFybW9ueSBp
bXBvcnQgKi8gdmFyIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dl
YnBhY2tfcmVxdWlyZV9fKDYpOworLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9oZWxwZXJzX2pz
X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDQpOwor
LyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9lcnJvcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RV
TEVfMl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygzKTsKKworCisKKworY2xhc3MgT3BlcmF0aW9u
IGV4dGVuZHMgX2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siQmFzZSJdIHsK
KyAgLyoqCisgICAqIEBwYXJhbSB7aW1wb3J0KCIuLi90b2tlbmlzZXIuanMiKS5Ub2tlbmlzZXJ9
IHRva2VuaXNlcgorICAgKi8KKyAgc3RhdGljIHBhcnNlKHRva2VuaXNlciwgeyBzcGVjaWFsLCBy
ZWd1bGFyIH0gPSB7fSkgeworICAgIGNvbnN0IHRva2VucyA9IHsgc3BlY2lhbCB9OworICAgIGNv
bnN0IHJldCA9IG5ldyBPcGVyYXRpb24oeyBzb3VyY2U6IHRva2VuaXNlci5zb3VyY2UsIHRva2Vu
cyB9KTsKKyAgICBpZiAoc3BlY2lhbCAmJiBzcGVjaWFsLnZhbHVlID09PSAic3RyaW5naWZpZXIi
KSB7CisgICAgICB0b2tlbnMudGVybWluYXRpb24gPSB0b2tlbmlzZXIuY29uc3VtZSgiOyIpOwor
ICAgICAgaWYgKHRva2Vucy50ZXJtaW5hdGlvbikgeworICAgICAgICByZXQuYXJndW1lbnRzID0g
W107CisgICAgICAgIHJldHVybiByZXQ7CisgICAgICB9CisgICAgfQorICAgIGlmICghc3BlY2lh
bCAmJiAhcmVndWxhcikgeworICAgICAgdG9rZW5zLnNwZWNpYWwgPSB0b2tlbmlzZXIuY29uc3Vt
ZSgiZ2V0dGVyIiwgInNldHRlciIsICJkZWxldGVyIik7CisgICAgfQorICAgIHJldC5pZGxUeXBl
ID0gT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19bInJldHVy
bl90eXBlIl0pKHRva2VuaXNlcikgfHwgdG9rZW5pc2VyLmVycm9yKCJNaXNzaW5nIHJldHVybiB0
eXBlIik7CisgICAgdG9rZW5zLm5hbWUgPSB0b2tlbmlzZXIuY29uc3VtZSgiaWRlbnRpZmllciIs
ICJpbmNsdWRlcyIpOworICAgIHRva2Vucy5vcGVuID0gdG9rZW5pc2VyLmNvbnN1bWUoIigiKSB8
fCB0b2tlbmlzZXIuZXJyb3IoIkludmFsaWQgb3BlcmF0aW9uIik7CisgICAgcmV0LmFyZ3VtZW50
cyA9IE9iamVjdChfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fWyJhcmd1
bWVudF9saXN0Il0pKHRva2VuaXNlcik7CisgICAgdG9rZW5zLmNsb3NlID0gdG9rZW5pc2VyLmNv
bnN1bWUoIikiKSB8fCB0b2tlbmlzZXIuZXJyb3IoIlVudGVybWluYXRlZCBvcGVyYXRpb24iKTsK
KyAgICB0b2tlbnMudGVybWluYXRpb24gPSB0b2tlbmlzZXIuY29uc3VtZSgiOyIpIHx8IHRva2Vu
aXNlci5lcnJvcigiVW50ZXJtaW5hdGVkIG9wZXJhdGlvbiwgZXhwZWN0ZWQgYDtgIik7CisgICAg
cmV0dXJuIHJldDsKKyAgfQorCisgIGdldCB0eXBlKCkgeworICAgIHJldHVybiAib3BlcmF0aW9u
IjsKKyAgfQorICBnZXQgbmFtZSgpIHsKKyAgICBjb25zdCB7IG5hbWUgfSA9IHRoaXMudG9rZW5z
OworICAgIGlmICghbmFtZSkgeworICAgICAgcmV0dXJuICIiOworICAgIH0KKyAgICByZXR1cm4g
T2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19bInVuZXNjYXBl
Il0pKG5hbWUudmFsdWUpOworICB9CisgIGdldCBzcGVjaWFsKCkgeworICAgIGlmICghdGhpcy50
b2tlbnMuc3BlY2lhbCkgeworICAgICAgcmV0dXJuICIiOworICAgIH0KKyAgICByZXR1cm4gdGhp
cy50b2tlbnMuc3BlY2lhbC52YWx1ZTsKKyAgfQorCisgICp2YWxpZGF0ZShkZWZzKSB7CisgICAg
aWYgKCF0aGlzLm5hbWUgJiYgWyIiLCAic3RhdGljIl0uaW5jbHVkZXModGhpcy5zcGVjaWFsKSkg
eworICAgICAgY29uc3QgbWVzc2FnZSA9IGBSZWd1bGFyIG9yIHN0YXRpYyBvcGVyYXRpb25zIG11
c3QgaGF2ZSBib3RoIGEgcmV0dXJuIHR5cGUgYW5kIGFuIGlkZW50aWZpZXIuYDsKKyAgICAgIHlp
ZWxkIE9iamVjdChfZXJyb3JfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX1sidmFsaWRh
dGlvbkVycm9yIl0pKHRoaXMuc291cmNlLCB0aGlzLnRva2Vucy5vcGVuLCB0aGlzLCBtZXNzYWdl
KTsKKyAgICB9CisgICAgaWYgKHRoaXMuaWRsVHlwZSkgeworICAgICAgeWllbGQqIHRoaXMuaWRs
VHlwZS52YWxpZGF0ZShkZWZzKTsKKyAgICB9CisgICAgZm9yIChjb25zdCBhcmd1bWVudCBvZiB0
aGlzLmFyZ3VtZW50cykgeworICAgICAgeWllbGQqIGFyZ3VtZW50LnZhbGlkYXRlKGRlZnMpOwor
ICAgIH0KKyAgfQorfQorCisKKy8qKiovIH0pLAorLyogMTQgKi8KKy8qKiovIChmdW5jdGlvbiht
b2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pIHsKKworInVz
ZSBzdHJpY3QiOworX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pOwor
LyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dl
YnBhY2tfZXhwb3J0c19fLCAiQXR0cmlidXRlIiwgZnVuY3Rpb24oKSB7IHJldHVybiBBdHRyaWJ1
dGU7IH0pOworLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9S
VEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDYpOworLyogaGFybW9ueSBpbXBv
cnQgKi8gdmFyIF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18gPSBfX3dl
YnBhY2tfcmVxdWlyZV9fKDQpOworCisKKworY2xhc3MgQXR0cmlidXRlIGV4dGVuZHMgX2Jhc2Vf
anNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siQmFzZSJdIHsKKyAgLyoqCisgICAqIEBw
YXJhbSB7aW1wb3J0KCIuLi90b2tlbmlzZXIuanMiKS5Ub2tlbmlzZXJ9IHRva2VuaXNlcgorICAg
Ki8KKyAgc3RhdGljIHBhcnNlKHRva2VuaXNlciwgeyBzcGVjaWFsLCBub0luaGVyaXQgPSBmYWxz
ZSwgcmVhZG9ubHkgPSBmYWxzZSB9ID0ge30pIHsKKyAgICBjb25zdCBzdGFydF9wb3NpdGlvbiA9
IHRva2VuaXNlci5wb3NpdGlvbjsKKyAgICBjb25zdCB0b2tlbnMgPSB7IHNwZWNpYWwgfTsKKyAg
ICBjb25zdCByZXQgPSBuZXcgQXR0cmlidXRlKHsgc291cmNlOiB0b2tlbmlzZXIuc291cmNlLCB0
b2tlbnMgfSk7CisgICAgaWYgKCFzcGVjaWFsICYmICFub0luaGVyaXQpIHsKKyAgICAgIHRva2Vu
cy5zcGVjaWFsID0gdG9rZW5pc2VyLmNvbnN1bWUoImluaGVyaXQiKTsKKyAgICB9CisgICAgaWYg
KHJldC5zcGVjaWFsID09PSAiaW5oZXJpdCIgJiYgdG9rZW5pc2VyLnByb2JlKCJyZWFkb25seSIp
KSB7CisgICAgICB0b2tlbmlzZXIuZXJyb3IoIkluaGVyaXRlZCBhdHRyaWJ1dGVzIGNhbm5vdCBi
ZSByZWFkLW9ubHkiKTsKKyAgICB9CisgICAgdG9rZW5zLnJlYWRvbmx5ID0gdG9rZW5pc2VyLmNv
bnN1bWUoInJlYWRvbmx5Iik7CisgICAgaWYgKHJlYWRvbmx5ICYmICF0b2tlbnMucmVhZG9ubHkg
JiYgdG9rZW5pc2VyLnByb2JlKCJhdHRyaWJ1dGUiKSkgeworICAgICAgdG9rZW5pc2VyLmVycm9y
KCJBdHRyaWJ1dGVzIG11c3QgYmUgcmVhZG9ubHkgaW4gdGhpcyBjb250ZXh0Iik7CisgICAgfQor
ICAgIHRva2Vucy5iYXNlID0gdG9rZW5pc2VyLmNvbnN1bWUoImF0dHJpYnV0ZSIpOworICAgIGlm
ICghdG9rZW5zLmJhc2UpIHsKKyAgICAgIHRva2VuaXNlci51bmNvbnN1bWUoc3RhcnRfcG9zaXRp
b24pOworICAgICAgcmV0dXJuOworICAgIH0KKyAgICByZXQuaWRsVHlwZSA9IE9iamVjdChfaGVs
cGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fWyJ0eXBlX3dpdGhfZXh0ZW5kZWRf
YXR0cmlidXRlcyJdKSh0b2tlbmlzZXIsICJhdHRyaWJ1dGUtdHlwZSIpIHx8IHRva2VuaXNlci5l
cnJvcigiQXR0cmlidXRlIGxhY2tzIGEgdHlwZSIpOworICAgIHN3aXRjaCAocmV0LmlkbFR5cGUu
Z2VuZXJpYykgeworICAgICAgY2FzZSAic2VxdWVuY2UiOgorICAgICAgY2FzZSAicmVjb3JkIjog
dG9rZW5pc2VyLmVycm9yKGBBdHRyaWJ1dGVzIGNhbm5vdCBhY2NlcHQgJHtyZXQuaWRsVHlwZS5n
ZW5lcmljfSB0eXBlc2ApOworICAgIH0KKyAgICB0b2tlbnMubmFtZSA9IHRva2VuaXNlci5jb25z
dW1lKCJpZGVudGlmaWVyIiwgImFzeW5jIiwgInJlcXVpcmVkIikgfHwgdG9rZW5pc2VyLmVycm9y
KCJBdHRyaWJ1dGUgbGFja3MgYSBuYW1lIik7CisgICAgdG9rZW5zLnRlcm1pbmF0aW9uID0gdG9r
ZW5pc2VyLmNvbnN1bWUoIjsiKSB8fCB0b2tlbmlzZXIuZXJyb3IoIlVudGVybWluYXRlZCBhdHRy
aWJ1dGUsIGV4cGVjdGVkIGA7YCIpOworICAgIHJldHVybiByZXQ7CisgIH0KKworICBnZXQgdHlw
ZSgpIHsKKyAgICByZXR1cm4gImF0dHJpYnV0ZSI7CisgIH0KKyAgZ2V0IHNwZWNpYWwoKSB7Cisg
ICAgaWYgKCF0aGlzLnRva2Vucy5zcGVjaWFsKSB7CisgICAgICByZXR1cm4gIiI7CisgICAgfQor
ICAgIHJldHVybiB0aGlzLnRva2Vucy5zcGVjaWFsLnZhbHVlOworICB9CisgIGdldCByZWFkb25s
eSgpIHsKKyAgICByZXR1cm4gISF0aGlzLnRva2Vucy5yZWFkb25seTsKKyAgfQorICBnZXQgbmFt
ZSgpIHsKKyAgICByZXR1cm4gT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01P
RFVMRV8xX19bInVuZXNjYXBlIl0pKHRoaXMudG9rZW5zLm5hbWUudmFsdWUpOworICB9CisKKyAg
KnZhbGlkYXRlKGRlZnMpIHsKKyAgICB5aWVsZCogdGhpcy5pZGxUeXBlLnZhbGlkYXRlKGRlZnMp
OworICB9Cit9CisKKworLyoqKi8gfSksCisvKiAxNSAqLworLyoqKi8gKGZ1bmN0aW9uKG1vZHVs
ZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgeworCisidXNlIHN0
cmljdCI7CitfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7CisvKiBo
YXJtb255IGV4cG9ydCAoYmluZGluZykgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFj
a19leHBvcnRzX18sICJFbnVtIiwgZnVuY3Rpb24oKSB7IHJldHVybiBFbnVtOyB9KTsKKy8qIGhh
cm1vbnkgaW1wb3J0ICovIHZhciBfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVf
MF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg0KTsKKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBf
dG9rZW5fanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1aXJl
X18oMTIpOworLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9S
VEVEX01PRFVMRV8yX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDYpOworCisKKworCitjbGFzcyBF
bnVtVmFsdWUgZXh0ZW5kcyBfdG9rZW5fanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX1si
VG9rZW4iXSB7CisgIC8qKgorICAgKiBAcGFyYW0ge2ltcG9ydCgiLi4vdG9rZW5pc2VyIikuVG9r
ZW5pc2VyfSB0b2tlbmlzZXIKKyAgICovCisgIHN0YXRpYyBwYXJzZSh0b2tlbmlzZXIpIHsKKyAg
ICBjb25zdCB2YWx1ZSA9IHRva2VuaXNlci5jb25zdW1lKCJzdHJpbmciKTsKKyAgICBpZiAodmFs
dWUpIHsKKyAgICAgIHJldHVybiBuZXcgRW51bVZhbHVlKHsgc291cmNlOiB0b2tlbmlzZXIuc291
cmNlLCB0b2tlbnM6IHsgdmFsdWUgfSB9KTsKKyAgICB9CisgIH0KKworICBnZXQgdHlwZSgpIHsK
KyAgICByZXR1cm4gImVudW0tdmFsdWUiOworICB9CisgIGdldCB2YWx1ZSgpIHsKKyAgICByZXR1
cm4gc3VwZXIudmFsdWUuc2xpY2UoMSwgLTEpOworICB9Cit9CisKK2NsYXNzIEVudW0gZXh0ZW5k
cyBfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fWyJCYXNlIl0geworICAvKioK
KyAgICogQHBhcmFtIHtpbXBvcnQoIi4uL3Rva2VuaXNlciIpLlRva2VuaXNlcn0gdG9rZW5pc2Vy
CisgICAqLworICBzdGF0aWMgcGFyc2UodG9rZW5pc2VyKSB7CisgICAgY29uc3QgdG9rZW5zID0g
e307CisgICAgdG9rZW5zLmJhc2UgPSB0b2tlbmlzZXIuY29uc3VtZSgiZW51bSIpOworICAgIGlm
ICghdG9rZW5zLmJhc2UpIHsKKyAgICAgIHJldHVybjsKKyAgICB9CisgICAgdG9rZW5zLm5hbWUg
PSB0b2tlbmlzZXIuY29uc3VtZSgiaWRlbnRpZmllciIpIHx8IHRva2VuaXNlci5lcnJvcigiTm8g
bmFtZSBmb3IgZW51bSIpOworICAgIGNvbnN0IHJldCA9IHRva2VuaXNlci5jdXJyZW50ID0gbmV3
IEVudW0oeyBzb3VyY2U6IHRva2VuaXNlci5zb3VyY2UsIHRva2VucyB9KTsKKyAgICB0b2tlbnMu
b3BlbiA9IHRva2VuaXNlci5jb25zdW1lKCJ7IikgfHwgdG9rZW5pc2VyLmVycm9yKCJCb2R5bGVz
cyBlbnVtIik7CisgICAgcmV0LnZhbHVlcyA9IE9iamVjdChfaGVscGVyc19qc19fV0VCUEFDS19J
TVBPUlRFRF9NT0RVTEVfMF9fWyJsaXN0Il0pKHRva2VuaXNlciwgeworICAgICAgcGFyc2VyOiBF
bnVtVmFsdWUucGFyc2UsCisgICAgICBhbGxvd0RhbmdsZXI6IHRydWUsCisgICAgICBsaXN0TmFt
ZTogImVudW1lcmF0aW9uIgorICAgIH0pOworICAgIGlmICh0b2tlbmlzZXIucHJvYmUoInN0cmlu
ZyIpKSB7CisgICAgICB0b2tlbmlzZXIuZXJyb3IoIk5vIGNvbW1hIGJldHdlZW4gZW51bSB2YWx1
ZXMiKTsKKyAgICB9CisgICAgdG9rZW5zLmNsb3NlID0gdG9rZW5pc2VyLmNvbnN1bWUoIn0iKSB8
fCB0b2tlbmlzZXIuZXJyb3IoIlVuZXhwZWN0ZWQgdmFsdWUgaW4gZW51bSIpOworICAgIGlmICgh
cmV0LnZhbHVlcy5sZW5ndGgpIHsKKyAgICAgIHRva2VuaXNlci5lcnJvcigiTm8gdmFsdWUgaW4g
ZW51bSIpOworICAgIH0KKyAgICB0b2tlbnMudGVybWluYXRpb24gPSB0b2tlbmlzZXIuY29uc3Vt
ZSgiOyIpIHx8IHRva2VuaXNlci5lcnJvcigiTm8gc2VtaWNvbG9uIGFmdGVyIGVudW0iKTsKKyAg
ICByZXR1cm4gcmV0OworICB9CisKKyAgZ2V0IHR5cGUoKSB7CisgICAgcmV0dXJuICJlbnVtIjsK
KyAgfQorICBnZXQgbmFtZSgpIHsKKyAgICByZXR1cm4gT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQ
QUNLX0lNUE9SVEVEX01PRFVMRV8wX19bInVuZXNjYXBlIl0pKHRoaXMudG9rZW5zLm5hbWUudmFs
dWUpOworICB9Cit9CisKKworLyoqKi8gfSksCisvKiAxNiAqLworLyoqKi8gKGZ1bmN0aW9uKG1v
ZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgeworCisidXNl
IHN0cmljdCI7CitfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7Cisv
KiBoYXJtb255IGV4cG9ydCAoYmluZGluZykgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2Vi
cGFja19leHBvcnRzX18sICJJbmNsdWRlcyIsIGZ1bmN0aW9uKCkgeyByZXR1cm4gSW5jbHVkZXM7
IH0pOworLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVE
X01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDYpOworLyogaGFybW9ueSBpbXBvcnQg
Ki8gdmFyIF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18gPSBfX3dlYnBh
Y2tfcmVxdWlyZV9fKDQpOworCisKKworY2xhc3MgSW5jbHVkZXMgZXh0ZW5kcyBfYmFzZV9qc19f
V0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJCYXNlIl0geworICAvKioKKyAgICogQHBhcmFt
IHtpbXBvcnQoIi4uL3Rva2VuaXNlciIpLlRva2VuaXNlcn0gdG9rZW5pc2VyCisgICAqLworICBz
dGF0aWMgcGFyc2UodG9rZW5pc2VyKSB7CisgICAgY29uc3QgdGFyZ2V0ID0gdG9rZW5pc2VyLmNv
bnN1bWUoImlkZW50aWZpZXIiKTsKKyAgICBpZiAoIXRhcmdldCkgeworICAgICAgcmV0dXJuOwor
ICAgIH0KKyAgICBjb25zdCB0b2tlbnMgPSB7IHRhcmdldCB9OworICAgIHRva2Vucy5pbmNsdWRl
cyA9IHRva2VuaXNlci5jb25zdW1lKCJpbmNsdWRlcyIpOworICAgIGlmICghdG9rZW5zLmluY2x1
ZGVzKSB7CisgICAgICB0b2tlbmlzZXIudW5jb25zdW1lKHRhcmdldC5pbmRleCk7CisgICAgICBy
ZXR1cm47CisgICAgfQorICAgIHRva2Vucy5taXhpbiA9IHRva2VuaXNlci5jb25zdW1lKCJpZGVu
dGlmaWVyIikgfHwgdG9rZW5pc2VyLmVycm9yKCJJbmNvbXBsZXRlIGluY2x1ZGVzIHN0YXRlbWVu
dCIpOworICAgIHRva2Vucy50ZXJtaW5hdGlvbiA9IHRva2VuaXNlci5jb25zdW1lKCI7IikgfHwg
dG9rZW5pc2VyLmVycm9yKCJObyB0ZXJtaW5hdGluZyA7IGZvciBpbmNsdWRlcyBzdGF0ZW1lbnQi
KTsKKyAgICByZXR1cm4gbmV3IEluY2x1ZGVzKHsgc291cmNlOiB0b2tlbmlzZXIuc291cmNlLCB0
b2tlbnMgfSk7CisgIH0KKworICBnZXQgdHlwZSgpIHsKKyAgICByZXR1cm4gImluY2x1ZGVzIjsK
KyAgfQorICBnZXQgdGFyZ2V0KCkgeworICAgIHJldHVybiBPYmplY3QoX2hlbHBlcnNfanNfX1dF
QlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX1sidW5lc2NhcGUiXSkodGhpcy50b2tlbnMudGFyZ2V0
LnZhbHVlKTsKKyAgfQorICBnZXQgaW5jbHVkZXMoKSB7CisgICAgcmV0dXJuIE9iamVjdChfaGVs
cGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fWyJ1bmVzY2FwZSJdKSh0aGlzLnRv
a2Vucy5taXhpbi52YWx1ZSk7CisgIH0KK30KKworCisvKioqLyB9KSwKKy8qIDE3ICovCisvKioq
LyAoZnVuY3Rpb24obW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWly
ZV9fKSB7CisKKyJ1c2Ugc3RyaWN0IjsKK19fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tf
ZXhwb3J0c19fKTsKKy8qIGhhcm1vbnkgZXhwb3J0IChiaW5kaW5nKSAqLyBfX3dlYnBhY2tfcmVx
dWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgIlR5cGVkZWYiLCBmdW5jdGlvbigpIHsgcmV0
dXJuIFR5cGVkZWY7IH0pOworLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9iYXNlX2pzX19XRUJQ
QUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDYpOworLyogaGFy
bW9ueSBpbXBvcnQgKi8gdmFyIF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8x
X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDQpOworCisKKworY2xhc3MgVHlwZWRlZiBleHRlbmRz
IF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIkJhc2UiXSB7CisgIC8qKgor
ICAgKiBAcGFyYW0ge2ltcG9ydCgiLi4vdG9rZW5pc2VyIikuVG9rZW5pc2VyfSB0b2tlbmlzZXIK
KyAgICovCisgIHN0YXRpYyBwYXJzZSh0b2tlbmlzZXIpIHsKKyAgICBjb25zdCB0b2tlbnMgPSB7
fTsKKyAgICBjb25zdCByZXQgPSBuZXcgVHlwZWRlZih7IHNvdXJjZTogdG9rZW5pc2VyLnNvdXJj
ZSwgdG9rZW5zIH0pOworICAgIHRva2Vucy5iYXNlID0gdG9rZW5pc2VyLmNvbnN1bWUoInR5cGVk
ZWYiKTsKKyAgICBpZiAoIXRva2Vucy5iYXNlKSB7CisgICAgICByZXR1cm47CisgICAgfQorICAg
IHJldC5pZGxUeXBlID0gT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVM
RV8xX19bInR5cGVfd2l0aF9leHRlbmRlZF9hdHRyaWJ1dGVzIl0pKHRva2VuaXNlciwgInR5cGVk
ZWYtdHlwZSIpIHx8IHRva2VuaXNlci5lcnJvcigiVHlwZWRlZiBsYWNrcyBhIHR5cGUiKTsKKyAg
ICB0b2tlbnMubmFtZSA9IHRva2VuaXNlci5jb25zdW1lKCJpZGVudGlmaWVyIikgfHwgdG9rZW5p
c2VyLmVycm9yKCJUeXBlZGVmIGxhY2tzIGEgbmFtZSIpOworICAgIHRva2VuaXNlci5jdXJyZW50
ID0gcmV0OworICAgIHRva2Vucy50ZXJtaW5hdGlvbiA9IHRva2VuaXNlci5jb25zdW1lKCI7Iikg
fHwgdG9rZW5pc2VyLmVycm9yKCJVbnRlcm1pbmF0ZWQgdHlwZWRlZiwgZXhwZWN0ZWQgYDtgIik7
CisgICAgcmV0dXJuIHJldDsKKyAgfQorCisgIGdldCB0eXBlKCkgeworICAgIHJldHVybiAidHlw
ZWRlZiI7CisgIH0KKyAgZ2V0IG5hbWUoKSB7CisgICAgcmV0dXJuIE9iamVjdChfaGVscGVyc19q
c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fWyJ1bmVzY2FwZSJdKSh0aGlzLnRva2Vucy5u
YW1lLnZhbHVlKTsKKyAgfQorCisgICp2YWxpZGF0ZShkZWZzKSB7CisgICAgeWllbGQqIHRoaXMu
aWRsVHlwZS52YWxpZGF0ZShkZWZzKTsKKyAgfQorfQorCisKKy8qKiovIH0pLAorLyogMTggKi8K
Ky8qKiovIChmdW5jdGlvbihtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19y
ZXF1aXJlX18pIHsKKworInVzZSBzdHJpY3QiOworX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2Vi
cGFja19leHBvcnRzX18pOworLyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFj
a19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAiQ2FsbGJhY2tGdW5jdGlvbiIsIGZ1
bmN0aW9uKCkgeyByZXR1cm4gQ2FsbGJhY2tGdW5jdGlvbjsgfSk7CisvKiBoYXJtb255IGltcG9y
dCAqLyB2YXIgX2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFj
a19yZXF1aXJlX18oNik7CisvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2hlbHBlcnNfanNfX1dF
QlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oNCk7CisKKwor
CitjbGFzcyBDYWxsYmFja0Z1bmN0aW9uIGV4dGVuZHMgX2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JU
RURfTU9EVUxFXzBfX1siQmFzZSJdIHsKKyAgLyoqCisgICAqIEBwYXJhbSB7aW1wb3J0KCIuLi90
b2tlbmlzZXIuanMiKS5Ub2tlbmlzZXJ9IHRva2VuaXNlcgorICAgKi8KKyAgc3RhdGljIHBhcnNl
KHRva2VuaXNlciwgYmFzZSkgeworICAgIGNvbnN0IHRva2VucyA9IHsgYmFzZSB9OworICAgIGNv
bnN0IHJldCA9IG5ldyBDYWxsYmFja0Z1bmN0aW9uKHsgc291cmNlOiB0b2tlbmlzZXIuc291cmNl
LCB0b2tlbnMgfSk7CisgICAgdG9rZW5zLm5hbWUgPSB0b2tlbmlzZXIuY29uc3VtZSgiaWRlbnRp
ZmllciIpIHx8IHRva2VuaXNlci5lcnJvcigiQ2FsbGJhY2sgbGFja3MgYSBuYW1lIik7CisgICAg
dG9rZW5pc2VyLmN1cnJlbnQgPSByZXQ7CisgICAgdG9rZW5zLmFzc2lnbiA9IHRva2VuaXNlci5j
b25zdW1lKCI9IikgfHwgdG9rZW5pc2VyLmVycm9yKCJDYWxsYmFjayBsYWNrcyBhbiBhc3NpZ25t
ZW50Iik7CisgICAgcmV0LmlkbFR5cGUgPSBPYmplY3QoX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1Q
T1JURURfTU9EVUxFXzFfX1sicmV0dXJuX3R5cGUiXSkodG9rZW5pc2VyKSB8fCB0b2tlbmlzZXIu
ZXJyb3IoIkNhbGxiYWNrIGxhY2tzIGEgcmV0dXJuIHR5cGUiKTsKKyAgICB0b2tlbnMub3BlbiA9
IHRva2VuaXNlci5jb25zdW1lKCIoIikgfHwgdG9rZW5pc2VyLmVycm9yKCJDYWxsYmFjayBsYWNr
cyBwYXJlbnRoZXNlcyBmb3IgYXJndW1lbnRzIik7CisgICAgcmV0LmFyZ3VtZW50cyA9IE9iamVj
dChfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fWyJhcmd1bWVudF9saXN0
Il0pKHRva2VuaXNlcik7CisgICAgdG9rZW5zLmNsb3NlID0gdG9rZW5pc2VyLmNvbnN1bWUoIiki
KSB8fCB0b2tlbmlzZXIuZXJyb3IoIlVudGVybWluYXRlZCBjYWxsYmFjayIpOworICAgIHRva2Vu
cy50ZXJtaW5hdGlvbiA9IHRva2VuaXNlci5jb25zdW1lKCI7IikgfHwgdG9rZW5pc2VyLmVycm9y
KCJVbnRlcm1pbmF0ZWQgY2FsbGJhY2ssIGV4cGVjdGVkIGA7YCIpOworICAgIHJldHVybiByZXQ7
CisgIH0KKworICBnZXQgdHlwZSgpIHsKKyAgICByZXR1cm4gImNhbGxiYWNrIjsKKyAgfQorICBn
ZXQgbmFtZSgpIHsKKyAgICByZXR1cm4gT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9S
VEVEX01PRFVMRV8xX19bInVuZXNjYXBlIl0pKHRoaXMudG9rZW5zLm5hbWUudmFsdWUpOworICB9
CisKKyAgKnZhbGlkYXRlKGRlZnMpIHsKKyAgICB5aWVsZCogdGhpcy5pZGxUeXBlLnZhbGlkYXRl
KGRlZnMpOworICB9Cit9CisKKworLyoqKi8gfSksCisvKiAxOSAqLworLyoqKi8gKGZ1bmN0aW9u
KG1vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgeworCisi
dXNlIHN0cmljdCI7CitfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7
CisvKiBoYXJtb255IGV4cG9ydCAoYmluZGluZykgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9f
d2VicGFja19leHBvcnRzX18sICJJbnRlcmZhY2UiLCBmdW5jdGlvbigpIHsgcmV0dXJuIEludGVy
ZmFjZTsgfSk7CisvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2NvbnRhaW5lcl9qc19fV0VCUEFD
S19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygyMCk7CisvKiBoYXJt
b255IGltcG9ydCAqLyB2YXIgX2F0dHJpYnV0ZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVf
MV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygxNCk7CisvKiBoYXJtb255IGltcG9ydCAqLyB2YXIg
X29wZXJhdGlvbl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fID0gX193ZWJwYWNrX3Jl
cXVpcmVfXygxMyk7CisvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2NvbnN0YW50X2pzX19XRUJQ
QUNLX0lNUE9SVEVEX01PRFVMRV8zX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDIxKTsKKy8qIGhh
cm1vbnkgaW1wb3J0ICovIHZhciBfaXRlcmFibGVfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxF
XzRfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMjIpOworLyogaGFybW9ueSBpbXBvcnQgKi8gdmFy
IF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18gPSBfX3dlYnBhY2tfcmVx
dWlyZV9fKDQpOworLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9lcnJvcl9qc19fV0VCUEFDS19J
TVBPUlRFRF9NT0RVTEVfNl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygzKTsKKy8qIGhhcm1vbnkg
aW1wb3J0ICovIHZhciBfdmFsaWRhdG9yc19pbnRlcmZhY2VfanNfX1dFQlBBQ0tfSU1QT1JURURf
TU9EVUxFXzdfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMjMpOworLyogaGFybW9ueSBpbXBvcnQg
Ki8gdmFyIF9jb25zdHJ1Y3Rvcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOF9fID0gX193
ZWJwYWNrX3JlcXVpcmVfXygyNCk7CisKKworCisKKworCisKKworCisKKy8qKgorICogQHBhcmFt
IHtpbXBvcnQoIi4uL3Rva2VuaXNlciIpLlRva2VuaXNlcn0gdG9rZW5pc2VyCisgKi8KK2Z1bmN0
aW9uIHN0YXRpY19tZW1iZXIodG9rZW5pc2VyKSB7CisgIGNvbnN0IHNwZWNpYWwgPSB0b2tlbmlz
ZXIuY29uc3VtZSgic3RhdGljIik7CisgIGlmICghc3BlY2lhbCkgcmV0dXJuOworICBjb25zdCBt
ZW1iZXIgPSBfYXR0cmlidXRlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19bIkF0dHJp
YnV0ZSJdLnBhcnNlKHRva2VuaXNlciwgeyBzcGVjaWFsIH0pIHx8CisgICAgX29wZXJhdGlvbl9q
c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fWyJPcGVyYXRpb24iXS5wYXJzZSh0b2tlbmlz
ZXIsIHsgc3BlY2lhbCB9KSB8fAorICAgIHRva2VuaXNlci5lcnJvcigiTm8gYm9keSBpbiBzdGF0
aWMgbWVtYmVyIik7CisgIHJldHVybiBtZW1iZXI7Cit9CisKK2NsYXNzIEludGVyZmFjZSBleHRl
bmRzIF9jb250YWluZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siQ29udGFpbmVy
Il0geworICAvKioKKyAgICogQHBhcmFtIHtpbXBvcnQoIi4uL3Rva2VuaXNlciIpLlRva2VuaXNl
cn0gdG9rZW5pc2VyCisgICAqLworICBzdGF0aWMgcGFyc2UodG9rZW5pc2VyLCBiYXNlLCB7IHBh
cnRpYWwgPSBudWxsIH0gPSB7fSkgeworICAgIGNvbnN0IHRva2VucyA9IHsgcGFydGlhbCwgYmFz
ZSB9OworICAgIHJldHVybiBfY29udGFpbmVyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8w
X19bIkNvbnRhaW5lciJdLnBhcnNlKHRva2VuaXNlciwgbmV3IEludGVyZmFjZSh7IHNvdXJjZTog
dG9rZW5pc2VyLnNvdXJjZSwgdG9rZW5zIH0pLCB7CisgICAgICB0eXBlOiAiaW50ZXJmYWNlIiwK
KyAgICAgIGluaGVyaXRhYmxlOiAhcGFydGlhbCwKKyAgICAgIGFsbG93ZWRNZW1iZXJzOiBbCisg
ICAgICAgIFtfY29uc3RhbnRfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfX1siQ29uc3Rh
bnQiXS5wYXJzZV0sCisgICAgICAgIFtfY29uc3RydWN0b3JfanNfX1dFQlBBQ0tfSU1QT1JURURf
TU9EVUxFXzhfX1siQ29uc3RydWN0b3IiXS5wYXJzZV0sCisgICAgICAgIFtzdGF0aWNfbWVtYmVy
XSwKKyAgICAgICAgW19oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X19bInN0
cmluZ2lmaWVyIl1dLAorICAgICAgICBbX2l0ZXJhYmxlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01P
RFVMRV80X19bIkl0ZXJhYmxlTGlrZSJdLnBhcnNlXSwKKyAgICAgICAgW19hdHRyaWJ1dGVfanNf
X1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX1siQXR0cmlidXRlIl0ucGFyc2VdLAorICAgICAg
ICBbX29wZXJhdGlvbl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fWyJPcGVyYXRpb24i
XS5wYXJzZV0KKyAgICAgIF0KKyAgICB9KTsKKyAgfQorCisgIGdldCB0eXBlKCkgeworICAgIHJl
dHVybiAiaW50ZXJmYWNlIjsKKyAgfQorCisgICp2YWxpZGF0ZShkZWZzKSB7CisgICAgeWllbGQq
IHRoaXMuZXh0QXR0cnMudmFsaWRhdGUoZGVmcyk7CisgICAgaWYgKAorICAgICAgIXRoaXMucGFy
dGlhbCAmJgorICAgICAgdGhpcy5leHRBdHRycy5ldmVyeShleHRBdHRyID0+IGV4dEF0dHIubmFt
ZSAhPT0gIkV4cG9zZWQiKSAmJgorICAgICAgdGhpcy5leHRBdHRycy5ldmVyeShleHRBdHRyID0+
IGV4dEF0dHIubmFtZSAhPT0gIk5vSW50ZXJmYWNlT2JqZWN0IikKKyAgICApIHsKKyAgICAgIGNv
bnN0IG1lc3NhZ2UgPSBgSW50ZXJmYWNlcyBtdXN0IGhhdmUgXGBbRXhwb3NlZF1cYCBleHRlbmRl
ZCBhdHRyaWJ1dGUuIFwKK1RvIGZpeCwgYWRkLCBmb3IgZXhhbXBsZSwgXGBbRXhwb3NlZD1XaW5k
b3ddXGAuIFBsZWFzZSBhbHNvIGNvbnNpZGVyIGNhcmVmdWxseSBcCitpZiB5b3VyIGludGVyZmFj
ZSBzaG91bGQgYWxzbyBiZSBleHBvc2VkIGluIGEgV29ya2VyIHNjb3BlLiBSZWZlciB0byB0aGUg
XAorW1dlYklETCBzcGVjIHNlY3Rpb24gb24gRXhwb3NlZF0oaHR0cHM6Ly9oZXljYW0uZ2l0aHVi
LmlvL3dlYmlkbC8jRXhwb3NlZCkgXAorZm9yIG1vcmUgaW5mb3JtYXRpb24uYDsKKyAgICAgIHlp
ZWxkIE9iamVjdChfZXJyb3JfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfX1sidmFsaWRh
dGlvbkVycm9yIl0pKHRoaXMuc291cmNlLCB0aGlzLnRva2Vucy5uYW1lLCB0aGlzLCBtZXNzYWdl
LCB7CisgICAgICAgIGF1dG9maXg6IE9iamVjdChfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRF
RF9NT0RVTEVfNV9fWyJhdXRvZml4QWRkRXhwb3NlZFdpbmRvdyJdKSh0aGlzKQorICAgICAgfSk7
CisgICAgfQorCisgICAgeWllbGQqIHN1cGVyLnZhbGlkYXRlKGRlZnMpOworICAgIGlmICghdGhp
cy5wYXJ0aWFsKSB7CisgICAgICB5aWVsZCogT2JqZWN0KF92YWxpZGF0b3JzX2ludGVyZmFjZV9q
c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfN19fWyJjaGVja0ludGVyZmFjZU1lbWJlckR1cGxp
Y2F0aW9uIl0pKGRlZnMsIHRoaXMpOworICAgIH0KKyAgfQorfQorCisKKy8qKiovIH0pLAorLyog
MjAgKi8KKy8qKiovIChmdW5jdGlvbihtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2Vi
cGFja19yZXF1aXJlX18pIHsKKworInVzZSBzdHJpY3QiOworX193ZWJwYWNrX3JlcXVpcmVfXy5y
KF9fd2VicGFja19leHBvcnRzX18pOworLyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9f
d2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAiQ29udGFpbmVyIiwgZnVu
Y3Rpb24oKSB7IHJldHVybiBDb250YWluZXI7IH0pOworLyogaGFybW9ueSBpbXBvcnQgKi8gdmFy
IF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWly
ZV9fKDYpOworLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9leHRlbmRlZF9hdHRyaWJ1dGVzX2pz
X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDEwKTsK
Ky8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9N
T0RVTEVfMl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg0KTsKKworCisKKworLyoqCisgKiBAcGFy
YW0ge2ltcG9ydCgiLi4vdG9rZW5pc2VyLmpzIikuVG9rZW5pc2VyfSB0b2tlbmlzZXIKKyAqLwor
ZnVuY3Rpb24gaW5oZXJpdGFuY2UodG9rZW5pc2VyKSB7CisgIGNvbnN0IGNvbG9uID0gdG9rZW5p
c2VyLmNvbnN1bWUoIjoiKTsKKyAgaWYgKCFjb2xvbikgeworICAgIHJldHVybiB7fTsKKyAgfQor
ICBjb25zdCBpbmhlcml0YW5jZSA9IHRva2VuaXNlci5jb25zdW1lKCJpZGVudGlmaWVyIikgfHwg
dG9rZW5pc2VyLmVycm9yKCJJbmhlcml0YW5jZSBsYWNrcyBhIHR5cGUiKTsKKyAgcmV0dXJuIHsg
Y29sb24sIGluaGVyaXRhbmNlIH07Cit9CisKK2NsYXNzIENvbnRhaW5lciBleHRlbmRzIF9iYXNl
X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIkJhc2UiXSB7CisgICAgLyoqCisgICAg
ICogQHBhcmFtIHtpbXBvcnQoIi4uL3Rva2VuaXNlci5qcyIpLlRva2VuaXNlcn0gdG9rZW5pc2Vy
CisgICAgICogQHBhcmFtIHsqfSBpbnN0YW5jZQorICAgICAqIEBwYXJhbSB7Kn0gYXJncworICAg
ICAqLworICAgIHN0YXRpYyBwYXJzZSh0b2tlbmlzZXIsIGluc3RhbmNlLCB7IHR5cGUsIGluaGVy
aXRhYmxlLCBhbGxvd2VkTWVtYmVycyB9KSB7CisgICAgICBjb25zdCB7IHRva2VucyB9ID0gaW5z
dGFuY2U7CisgICAgICB0b2tlbnMubmFtZSA9IHRva2VuaXNlci5jb25zdW1lKCJpZGVudGlmaWVy
IikgfHwgdG9rZW5pc2VyLmVycm9yKGBNaXNzaW5nIG5hbWUgaW4gJHtpbnN0YW5jZS50eXBlfWAp
OworICAgICAgdG9rZW5pc2VyLmN1cnJlbnQgPSBpbnN0YW5jZTsKKyAgICAgIGlmIChpbmhlcml0
YWJsZSkgeworICAgICAgICBPYmplY3QuYXNzaWduKHRva2VucywgaW5oZXJpdGFuY2UodG9rZW5p
c2VyKSk7CisgICAgICB9CisgICAgICB0b2tlbnMub3BlbiA9IHRva2VuaXNlci5jb25zdW1lKCJ7
IikgfHwgdG9rZW5pc2VyLmVycm9yKGBCb2R5bGVzcyAke3R5cGV9YCk7CisgICAgICBpbnN0YW5j
ZS5tZW1iZXJzID0gW107CisgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICB0b2tlbnMuY2xv
c2UgPSB0b2tlbmlzZXIuY29uc3VtZSgifSIpOworICAgICAgICBpZiAodG9rZW5zLmNsb3NlKSB7
CisgICAgICAgICAgdG9rZW5zLnRlcm1pbmF0aW9uID0gdG9rZW5pc2VyLmNvbnN1bWUoIjsiKSB8
fCB0b2tlbmlzZXIuZXJyb3IoYE1pc3Npbmcgc2VtaWNvbG9uIGFmdGVyICR7dHlwZX1gKTsKKyAg
ICAgICAgICByZXR1cm4gaW5zdGFuY2U7CisgICAgICAgIH0KKyAgICAgICAgY29uc3QgZWEgPSBf
ZXh0ZW5kZWRfYXR0cmlidXRlc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fWyJFeHRl
bmRlZEF0dHJpYnV0ZXMiXS5wYXJzZSh0b2tlbmlzZXIpOworICAgICAgICBsZXQgbWVtOworICAg
ICAgICBmb3IgKGNvbnN0IFtwYXJzZXIsIC4uLmFyZ3NdIG9mIGFsbG93ZWRNZW1iZXJzKSB7Cisg
ICAgICAgICAgbWVtID0gcGFyc2VyKHRva2VuaXNlciwgLi4uYXJncyk7CisgICAgICAgICAgaWYg
KG1lbSkgeworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgfQorICAgICAgICB9CisgICAg
ICAgIGlmICghbWVtKSB7CisgICAgICAgICAgdG9rZW5pc2VyLmVycm9yKCJVbmtub3duIG1lbWJl
ciIpOworICAgICAgICB9CisgICAgICAgIG1lbS5leHRBdHRycyA9IGVhOworICAgICAgICBpbnN0
YW5jZS5tZW1iZXJzLnB1c2gobWVtKTsKKyAgICAgIH0KKyAgICB9CisKKyAgICBnZXQgcGFydGlh
bCgpIHsKKyAgICAgIHJldHVybiAhIXRoaXMudG9rZW5zLnBhcnRpYWw7CisgICAgfQorICAgIGdl
dCBuYW1lKCkgeworICAgICAgcmV0dXJuIE9iamVjdChfaGVscGVyc19qc19fV0VCUEFDS19JTVBP
UlRFRF9NT0RVTEVfMl9fWyJ1bmVzY2FwZSJdKSh0aGlzLnRva2Vucy5uYW1lLnZhbHVlKTsKKyAg
ICB9CisgICAgZ2V0IGluaGVyaXRhbmNlKCkgeworICAgICAgaWYgKCF0aGlzLnRva2Vucy5pbmhl
cml0YW5jZSkgeworICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgIH0KKyAgICAgIHJldHVybiBP
YmplY3QoX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX1sidW5lc2NhcGUi
XSkodGhpcy50b2tlbnMuaW5oZXJpdGFuY2UudmFsdWUpOworICAgIH0KKworICAgICp2YWxpZGF0
ZShkZWZzKSB7CisgICAgICBmb3IgKGNvbnN0IG1lbWJlciBvZiB0aGlzLm1lbWJlcnMpIHsKKyAg
ICAgICAgaWYgKG1lbWJlci52YWxpZGF0ZSkgeworICAgICAgICAgIHlpZWxkKiBtZW1iZXIudmFs
aWRhdGUoZGVmcyk7CisgICAgICAgIH0KKyAgICAgIH0KKyAgICB9CisgIH0KKworCisvKioqLyB9
KSwKKy8qIDIxICovCisvKioqLyAoZnVuY3Rpb24obW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19f
LCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CisKKyJ1c2Ugc3RyaWN0IjsKK19fd2VicGFja19yZXF1
aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTsKKy8qIGhhcm1vbnkgZXhwb3J0IChiaW5kaW5n
KSAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgIkNvbnN0YW50
IiwgZnVuY3Rpb24oKSB7IHJldHVybiBDb25zdGFudDsgfSk7CisvKiBoYXJtb255IGltcG9ydCAq
LyB2YXIgX2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19y
ZXF1aXJlX18oNik7CisvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3R5cGVfanNfX1dFQlBBQ0tf
SU1QT1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oNSk7CisvKiBoYXJtb255
IGltcG9ydCAqLyB2YXIgX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXyA9
IF9fd2VicGFja19yZXF1aXJlX18oNCk7CisKKworCisKK2NsYXNzIENvbnN0YW50IGV4dGVuZHMg
X2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siQmFzZSJdIHsKKyAgLyoqCisg
ICAqIEBwYXJhbSB7aW1wb3J0KCIuLi90b2tlbmlzZXIuanMiKS5Ub2tlbmlzZXJ9IHRva2VuaXNl
cgorICAgKi8KKyAgc3RhdGljIHBhcnNlKHRva2VuaXNlcikgeworICAgIGNvbnN0IHRva2VucyA9
IHt9OworICAgIHRva2Vucy5iYXNlID0gdG9rZW5pc2VyLmNvbnN1bWUoImNvbnN0Iik7CisgICAg
aWYgKCF0b2tlbnMuYmFzZSkgeworICAgICAgcmV0dXJuOworICAgIH0KKyAgICBsZXQgaWRsVHlw
ZSA9IE9iamVjdChfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fWyJwcmlt
aXRpdmVfdHlwZSJdKSh0b2tlbmlzZXIpOworICAgIGlmICghaWRsVHlwZSkgeworICAgICAgY29u
c3QgYmFzZSA9IHRva2VuaXNlci5jb25zdW1lKCJpZGVudGlmaWVyIikgfHwgdG9rZW5pc2VyLmVy
cm9yKCJDb25zdCBsYWNrcyBhIHR5cGUiKTsKKyAgICAgIGlkbFR5cGUgPSBuZXcgX3R5cGVfanNf
X1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX1siVHlwZSJdKHsgc291cmNlOiB0b2tlbmlzZXIu
c291cmNlLCB0b2tlbnM6IHsgYmFzZSB9IH0pOworICAgIH0KKyAgICBpZiAodG9rZW5pc2VyLnBy
b2JlKCI/IikpIHsKKyAgICAgIHRva2VuaXNlci5lcnJvcigiVW5leHBlY3RlZCBudWxsYWJsZSBj
b25zdGFudCB0eXBlIik7CisgICAgfQorICAgIGlkbFR5cGUudHlwZSA9ICJjb25zdC10eXBlIjsK
KyAgICB0b2tlbnMubmFtZSA9IHRva2VuaXNlci5jb25zdW1lKCJpZGVudGlmaWVyIikgfHwgdG9r
ZW5pc2VyLmVycm9yKCJDb25zdCBsYWNrcyBhIG5hbWUiKTsKKyAgICB0b2tlbnMuYXNzaWduID0g
dG9rZW5pc2VyLmNvbnN1bWUoIj0iKSB8fCB0b2tlbmlzZXIuZXJyb3IoIkNvbnN0IGxhY2tzIHZh
bHVlIGFzc2lnbm1lbnQiKTsKKyAgICB0b2tlbnMudmFsdWUgPSBPYmplY3QoX2hlbHBlcnNfanNf
X1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX1siY29uc3RfdmFsdWUiXSkodG9rZW5pc2VyKSB8
fCB0b2tlbmlzZXIuZXJyb3IoIkNvbnN0IGxhY2tzIGEgdmFsdWUiKTsKKyAgICB0b2tlbnMudGVy
bWluYXRpb24gPSB0b2tlbmlzZXIuY29uc3VtZSgiOyIpIHx8IHRva2VuaXNlci5lcnJvcigiVW50
ZXJtaW5hdGVkIGNvbnN0LCBleHBlY3RlZCBgO2AiKTsKKyAgICBjb25zdCByZXQgPSBuZXcgQ29u
c3RhbnQoeyBzb3VyY2U6IHRva2VuaXNlci5zb3VyY2UsIHRva2VucyB9KTsKKyAgICByZXQuaWRs
VHlwZSA9IGlkbFR5cGU7CisgICAgcmV0dXJuIHJldDsKKyAgfQorCisgIGdldCB0eXBlKCkgewor
ICAgIHJldHVybiAiY29uc3QiOworICB9CisgIGdldCBuYW1lKCkgeworICAgIHJldHVybiB1bmVz
Y2FwZSh0aGlzLnRva2Vucy5uYW1lLnZhbHVlKTsKKyAgfQorICBnZXQgdmFsdWUoKSB7CisgICAg
cmV0dXJuIE9iamVjdChfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fWyJj
b25zdF9kYXRhIl0pKHRoaXMudG9rZW5zLnZhbHVlKTsKKyAgfQorfQorCisKKy8qKiovIH0pLAor
LyogMjIgKi8KKy8qKiovIChmdW5jdGlvbihtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9f
d2VicGFja19yZXF1aXJlX18pIHsKKworInVzZSBzdHJpY3QiOworX193ZWJwYWNrX3JlcXVpcmVf
Xy5yKF9fd2VicGFja19leHBvcnRzX18pOworLyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICov
IF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAiSXRlcmFibGVMaWtl
IiwgZnVuY3Rpb24oKSB7IHJldHVybiBJdGVyYWJsZUxpa2U7IH0pOworLyogaGFybW9ueSBpbXBv
cnQgKi8gdmFyIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBh
Y2tfcmVxdWlyZV9fKDYpOworLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9oZWxwZXJzX2pzX19X
RUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDQpOworCisK
KworY2xhc3MgSXRlcmFibGVMaWtlIGV4dGVuZHMgX2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURf
TU9EVUxFXzBfX1siQmFzZSJdIHsKKyAgLyoqCisgICAqIEBwYXJhbSB7aW1wb3J0KCIuLi90b2tl
bmlzZXIuanMiKS5Ub2tlbmlzZXJ9IHRva2VuaXNlcgorICAgKi8KKyAgc3RhdGljIHBhcnNlKHRv
a2VuaXNlcikgeworICAgIGNvbnN0IHN0YXJ0X3Bvc2l0aW9uID0gdG9rZW5pc2VyLnBvc2l0aW9u
OworICAgIGNvbnN0IHRva2VucyA9IHt9OworICAgIGNvbnN0IHJldCA9IG5ldyBJdGVyYWJsZUxp
a2UoeyBzb3VyY2U6IHRva2VuaXNlci5zb3VyY2UsIHRva2VucyB9KTsKKyAgICB0b2tlbnMucmVh
ZG9ubHkgPSB0b2tlbmlzZXIuY29uc3VtZSgicmVhZG9ubHkiKTsKKyAgICBpZiAoIXRva2Vucy5y
ZWFkb25seSkgeworICAgICAgdG9rZW5zLmFzeW5jID0gdG9rZW5pc2VyLmNvbnN1bWUoImFzeW5j
Iik7CisgICAgfQorICAgIHRva2Vucy5iYXNlID0KKyAgICAgIHRva2Vucy5yZWFkb25seSA/IHRv
a2VuaXNlci5jb25zdW1lKCJtYXBsaWtlIiwgInNldGxpa2UiKSA6CisgICAgICB0b2tlbnMuYXN5
bmMgPyB0b2tlbmlzZXIuY29uc3VtZSgiaXRlcmFibGUiKSA6CisgICAgICB0b2tlbmlzZXIuY29u
c3VtZSgiaXRlcmFibGUiLCAibWFwbGlrZSIsICJzZXRsaWtlIik7CisgICAgaWYgKCF0b2tlbnMu
YmFzZSkgeworICAgICAgdG9rZW5pc2VyLnVuY29uc3VtZShzdGFydF9wb3NpdGlvbik7CisgICAg
ICByZXR1cm47CisgICAgfQorCisgICAgY29uc3QgeyB0eXBlIH0gPSByZXQ7CisgICAgY29uc3Qg
c2Vjb25kVHlwZVJlcXVpcmVkID0gdHlwZSA9PT0gIm1hcGxpa2UiIHx8IHJldC5hc3luYzsKKyAg
ICBjb25zdCBzZWNvbmRUeXBlQWxsb3dlZCA9IHNlY29uZFR5cGVSZXF1aXJlZCB8fCB0eXBlID09
PSAiaXRlcmFibGUiOworCisgICAgdG9rZW5zLm9wZW4gPSB0b2tlbmlzZXIuY29uc3VtZSgiPCIp
IHx8IHRva2VuaXNlci5lcnJvcihgTWlzc2luZyBsZXNzLXRoYW4gc2lnbiBcYDxcYCBpbiAke3R5
cGV9IGRlY2xhcmF0aW9uYCk7CisgICAgY29uc3QgZmlyc3QgPSBPYmplY3QoX2hlbHBlcnNfanNf
X1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX1sidHlwZV93aXRoX2V4dGVuZGVkX2F0dHJpYnV0
ZXMiXSkodG9rZW5pc2VyKSB8fCB0b2tlbmlzZXIuZXJyb3IoYE1pc3NpbmcgYSB0eXBlIGFyZ3Vt
ZW50IGluICR7dHlwZX0gZGVjbGFyYXRpb25gKTsKKyAgICByZXQuaWRsVHlwZSA9IFtmaXJzdF07
CisgICAgaWYgKHNlY29uZFR5cGVBbGxvd2VkKSB7CisgICAgICBmaXJzdC50b2tlbnMuc2VwYXJh
dG9yID0gdG9rZW5pc2VyLmNvbnN1bWUoIiwiKTsKKyAgICAgIGlmIChmaXJzdC50b2tlbnMuc2Vw
YXJhdG9yKSB7CisgICAgICAgIHJldC5pZGxUeXBlLnB1c2goT2JqZWN0KF9oZWxwZXJzX2pzX19X
RUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19bInR5cGVfd2l0aF9leHRlbmRlZF9hdHRyaWJ1dGVz
Il0pKHRva2VuaXNlcikpOworICAgICAgfQorICAgICAgZWxzZSBpZiAoc2Vjb25kVHlwZVJlcXVp
cmVkKSB7CisgICAgICAgIHRva2VuaXNlci5lcnJvcihgTWlzc2luZyBzZWNvbmQgdHlwZSBhcmd1
bWVudCBpbiAke3R5cGV9IGRlY2xhcmF0aW9uYCk7CisgICAgICB9CisgICAgfQorICAgIHRva2Vu
cy5jbG9zZSA9IHRva2VuaXNlci5jb25zdW1lKCI+IikgfHwgdG9rZW5pc2VyLmVycm9yKGBNaXNz
aW5nIGdyZWF0ZXItdGhhbiBzaWduIFxgPlxgIGluICR7dHlwZX0gZGVjbGFyYXRpb25gKTsKKyAg
ICB0b2tlbnMudGVybWluYXRpb24gPSB0b2tlbmlzZXIuY29uc3VtZSgiOyIpIHx8IHRva2VuaXNl
ci5lcnJvcihgTWlzc2luZyBzZW1pY29sb24gYWZ0ZXIgJHt0eXBlfSBkZWNsYXJhdGlvbmApOwor
CisgICAgcmV0dXJuIHJldDsKKyAgfQorCisgIGdldCB0eXBlKCkgeworICAgIHJldHVybiB0aGlz
LnRva2Vucy5iYXNlLnZhbHVlOworICB9CisgIGdldCByZWFkb25seSgpIHsKKyAgICByZXR1cm4g
ISF0aGlzLnRva2Vucy5yZWFkb25seTsKKyAgfQorICBnZXQgYXN5bmMoKSB7CisgICAgcmV0dXJu
ICEhdGhpcy50b2tlbnMuYXN5bmM7CisgIH0KK30KKworCisvKioqLyB9KSwKKy8qIDIzICovCisv
KioqLyAoZnVuY3Rpb24obW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVx
dWlyZV9fKSB7CisKKyJ1c2Ugc3RyaWN0IjsKK19fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBh
Y2tfZXhwb3J0c19fKTsKKy8qIGhhcm1vbnkgZXhwb3J0IChiaW5kaW5nKSAqLyBfX3dlYnBhY2tf
cmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgImNoZWNrSW50ZXJmYWNlTWVtYmVyRHVw
bGljYXRpb24iLCBmdW5jdGlvbigpIHsgcmV0dXJuIGNoZWNrSW50ZXJmYWNlTWVtYmVyRHVwbGlj
YXRpb247IH0pOworLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9lcnJvcl9qc19fV0VCUEFDS19J
TVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygzKTsKKworCitmdW5jdGlv
biogY2hlY2tJbnRlcmZhY2VNZW1iZXJEdXBsaWNhdGlvbihkZWZzLCBpKSB7CisgIGNvbnN0IG9w
TmFtZXMgPSBuZXcgU2V0KGdldE9wZXJhdGlvbnMoaSkubWFwKG9wID0+IG9wLm5hbWUpKTsKKyAg
Y29uc3QgcGFydGlhbHMgPSBkZWZzLnBhcnRpYWxzLmdldChpLm5hbWUpIHx8IFtdOworICBjb25z
dCBtaXhpbnMgPSBkZWZzLm1peGluTWFwLmdldChpLm5hbWUpIHx8IFtdOworICBmb3IgKGNvbnN0
IGV4dCBvZiBbLi4ucGFydGlhbHMsIC4uLm1peGluc10pIHsKKyAgICBjb25zdCBhZGRpdGlvbnMg
PSBnZXRPcGVyYXRpb25zKGV4dCk7CisgICAgeWllbGQqIGZvckVhY2hFeHRlbnNpb24oYWRkaXRp
b25zLCBvcE5hbWVzLCBleHQsIGkpOworICAgIGZvciAoY29uc3QgYWRkaXRpb24gb2YgYWRkaXRp
b25zKSB7CisgICAgICBvcE5hbWVzLmFkZChhZGRpdGlvbi5uYW1lKTsKKyAgICB9CisgIH0KKwor
ICBmdW5jdGlvbiogZm9yRWFjaEV4dGVuc2lvbihhZGRpdGlvbnMsIGV4aXN0aW5ncywgZXh0LCBi
YXNlKSB7CisgICAgZm9yIChjb25zdCBhZGRpdGlvbiBvZiBhZGRpdGlvbnMpIHsKKyAgICAgIGNv
bnN0IHsgbmFtZSB9ID0gYWRkaXRpb247CisgICAgICBpZiAobmFtZSAmJiBleGlzdGluZ3MuaGFz
KG5hbWUpKSB7CisgICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgVGhlIG9wZXJhdGlvbiAiJHtuYW1l
fSIgaGFzIGFscmVhZHkgYmVlbiBkZWZpbmVkIGZvciB0aGUgYmFzZSBpbnRlcmZhY2UgIiR7YmFz
ZS5uYW1lfSIgZWl0aGVyIGluIGl0c2VsZiBvciBpbiBhIG1peGluYDsKKyAgICAgICAgeWllbGQg
T2JqZWN0KF9lcnJvcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJ2YWxpZGF0aW9u
RXJyb3IiXSkoZXh0LnNvdXJjZSwgYWRkaXRpb24udG9rZW5zLm5hbWUsIGV4dCwgbWVzc2FnZSk7
CisgICAgICB9CisgICAgfQorICB9CisKKyAgZnVuY3Rpb24gZ2V0T3BlcmF0aW9ucyhpKSB7Cisg
ICAgcmV0dXJuIGkubWVtYmVycworICAgICAgLmZpbHRlcigoe3R5cGV9KSA9PiB0eXBlID09PSAi
b3BlcmF0aW9uIik7CisgIH0KK30KKworCisvKioqLyB9KSwKKy8qIDI0ICovCisvKioqLyAoZnVu
Y3Rpb24obW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7
CisKKyJ1c2Ugc3RyaWN0IjsKK19fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0
c19fKTsKKy8qIGhhcm1vbnkgZXhwb3J0IChiaW5kaW5nKSAqLyBfX3dlYnBhY2tfcmVxdWlyZV9f
LmQoX193ZWJwYWNrX2V4cG9ydHNfXywgIkNvbnN0cnVjdG9yIiwgZnVuY3Rpb24oKSB7IHJldHVy
biBDb25zdHJ1Y3RvcjsgfSk7CisvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2Jhc2VfanNfX1dF
QlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oNik7CisvKiBo
YXJtb255IGltcG9ydCAqLyB2YXIgX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxF
XzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oNCk7CisKKworCitjbGFzcyBDb25zdHJ1Y3RvciBl
eHRlbmRzIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIkJhc2UiXSB7Cisg
IC8qKgorICAgKiBAcGFyYW0ge2ltcG9ydCgiLi4vdG9rZW5pc2VyIikuVG9rZW5pc2VyfSB0b2tl
bmlzZXIKKyAgICovCisgIHN0YXRpYyBwYXJzZSh0b2tlbmlzZXIpIHsKKyAgICBjb25zdCBiYXNl
ID0gdG9rZW5pc2VyLmNvbnN1bWUoImNvbnN0cnVjdG9yIik7CisgICAgaWYgKCFiYXNlKSB7Cisg
ICAgICByZXR1cm47CisgICAgfQorICAgIGNvbnN0IHRva2VucyA9IHsgYmFzZSB9OworICAgIHRv
a2Vucy5vcGVuID0gdG9rZW5pc2VyLmNvbnN1bWUoIigiKSB8fCB0b2tlbmlzZXIuZXJyb3IoIk5v
IGFyZ3VtZW50IGxpc3QgaW4gY29uc3RydWN0b3IiKTsKKyAgICBjb25zdCBhcmdzID0gT2JqZWN0
KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19bImFyZ3VtZW50X2xpc3Qi
XSkodG9rZW5pc2VyKTsKKyAgICB0b2tlbnMuY2xvc2UgPSB0b2tlbmlzZXIuY29uc3VtZSgiKSIp
IHx8IHRva2VuaXNlci5lcnJvcigiVW50ZXJtaW5hdGVkIGNvbnN0cnVjdG9yIik7CisgICAgdG9r
ZW5zLnRlcm1pbmF0aW9uID0gdG9rZW5pc2VyLmNvbnN1bWUoIjsiKSB8fCB0b2tlbmlzZXIuZXJy
b3IoIk5vIHNlbWljb2xvbiBhZnRlciBjb25zdHJ1Y3RvciIpOworICAgIGNvbnN0IHJldCA9IG5l
dyBDb25zdHJ1Y3Rvcih7IHRva2VucyB9KTsKKyAgICByZXQuYXJndW1lbnRzID0gYXJnczsKKyAg
ICByZXR1cm4gcmV0OworICB9CisKKyAgZ2V0IHR5cGUoKSB7CisgICAgcmV0dXJuICJjb25zdHJ1
Y3RvciI7CisgIH0KK30KKworCisvKioqLyB9KSwKKy8qIDI1ICovCisvKioqLyAoZnVuY3Rpb24o
bW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CisKKyJ1
c2Ugc3RyaWN0IjsKK19fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTsK
Ky8qIGhhcm1vbnkgZXhwb3J0IChiaW5kaW5nKSAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193
ZWJwYWNrX2V4cG9ydHNfXywgIk1peGluIiwgZnVuY3Rpb24oKSB7IHJldHVybiBNaXhpbjsgfSk7
CisvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2NvbnRhaW5lcl9qc19fV0VCUEFDS19JTVBPUlRF
RF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygyMCk7CisvKiBoYXJtb255IGltcG9y
dCAqLyB2YXIgX2NvbnN0YW50X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18gPSBfX3dl
YnBhY2tfcmVxdWlyZV9fKDIxKTsKKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfYXR0cmlidXRl
X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDE0
KTsKKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfb3BlcmF0aW9uX2pzX19XRUJQQUNLX0lNUE9S
VEVEX01PRFVMRV8zX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDEzKTsKKy8qIGhhcm1vbnkgaW1w
b3J0ICovIHZhciBfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fID0gX193
ZWJwYWNrX3JlcXVpcmVfXyg0KTsKKworCisKKworCisKK2NsYXNzIE1peGluIGV4dGVuZHMgX2Nv
bnRhaW5lcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJDb250YWluZXIiXSB7Cisg
IC8qKgorICAgKiBAcGFyYW0ge2ltcG9ydCgiLi4vdG9rZW5pc2VyIikuVG9rZW5pc2VyfSB0b2tl
bmlzZXIKKyAgICovCisgIHN0YXRpYyBwYXJzZSh0b2tlbmlzZXIsIGJhc2UsIHsgcGFydGlhbCB9
ID0ge30pIHsKKyAgICBjb25zdCB0b2tlbnMgPSB7IHBhcnRpYWwsIGJhc2UgfTsKKyAgICB0b2tl
bnMubWl4aW4gPSB0b2tlbmlzZXIuY29uc3VtZSgibWl4aW4iKTsKKyAgICBpZiAoIXRva2Vucy5t
aXhpbikgeworICAgICAgcmV0dXJuOworICAgIH0KKyAgICByZXR1cm4gX2NvbnRhaW5lcl9qc19f
V0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJDb250YWluZXIiXS5wYXJzZSh0b2tlbmlzZXIs
IG5ldyBNaXhpbih7IHNvdXJjZTogdG9rZW5pc2VyLnNvdXJjZSwgdG9rZW5zIH0pLCB7CisgICAg
ICB0eXBlOiAiaW50ZXJmYWNlIG1peGluIiwKKyAgICAgIGFsbG93ZWRNZW1iZXJzOiBbCisgICAg
ICAgIFtfY29uc3RhbnRfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX1siQ29uc3RhbnQi
XS5wYXJzZV0sCisgICAgICAgIFtfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVf
NF9fWyJzdHJpbmdpZmllciJdXSwKKyAgICAgICAgW19hdHRyaWJ1dGVfanNfX1dFQlBBQ0tfSU1Q
T1JURURfTU9EVUxFXzJfX1siQXR0cmlidXRlIl0ucGFyc2UsIHsgbm9Jbmhlcml0OiB0cnVlIH1d
LAorICAgICAgICBbX29wZXJhdGlvbl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fWyJP
cGVyYXRpb24iXS5wYXJzZSwgeyByZWd1bGFyOiB0cnVlIH1dCisgICAgICBdCisgICAgfSk7Cisg
IH0KKworICBnZXQgdHlwZSgpIHsKKyAgICByZXR1cm4gImludGVyZmFjZSBtaXhpbiI7CisgIH0K
K30KKworCisvKioqLyB9KSwKKy8qIDI2ICovCisvKioqLyAoZnVuY3Rpb24obW9kdWxlLCBfX3dl
YnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CisKKyJ1c2Ugc3RyaWN0IjsK
K19fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTsKKy8qIGhhcm1vbnkg
ZXhwb3J0IChiaW5kaW5nKSAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9y
dHNfXywgIkRpY3Rpb25hcnkiLCBmdW5jdGlvbigpIHsgcmV0dXJuIERpY3Rpb25hcnk7IH0pOwor
LyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9jb250YWluZXJfanNfX1dFQlBBQ0tfSU1QT1JURURf
TU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMjApOworLyogaGFybW9ueSBpbXBvcnQg
Ki8gdmFyIF9maWVsZF9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNr
X3JlcXVpcmVfXygyNyk7CisKKworCitjbGFzcyBEaWN0aW9uYXJ5IGV4dGVuZHMgX2NvbnRhaW5l
cl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJDb250YWluZXIiXSB7CisgIC8qKgor
ICAgKiBAcGFyYW0ge2ltcG9ydCgiLi4vdG9rZW5pc2VyIikuVG9rZW5pc2VyfSB0b2tlbmlzZXIK
KyAgICovCisgIHN0YXRpYyBwYXJzZSh0b2tlbmlzZXIsIHsgcGFydGlhbCB9ID0ge30pIHsKKyAg
ICBjb25zdCB0b2tlbnMgPSB7IHBhcnRpYWwgfTsKKyAgICB0b2tlbnMuYmFzZSA9IHRva2VuaXNl
ci5jb25zdW1lKCJkaWN0aW9uYXJ5Iik7CisgICAgaWYgKCF0b2tlbnMuYmFzZSkgeworICAgICAg
cmV0dXJuOworICAgIH0KKyAgICByZXR1cm4gX2NvbnRhaW5lcl9qc19fV0VCUEFDS19JTVBPUlRF
RF9NT0RVTEVfMF9fWyJDb250YWluZXIiXS5wYXJzZSh0b2tlbmlzZXIsIG5ldyBEaWN0aW9uYXJ5
KHsgc291cmNlOiB0b2tlbmlzZXIuc291cmNlLCB0b2tlbnMgfSksIHsKKyAgICAgIHR5cGU6ICJk
aWN0aW9uYXJ5IiwKKyAgICAgIGluaGVyaXRhYmxlOiAhcGFydGlhbCwKKyAgICAgIGFsbG93ZWRN
ZW1iZXJzOiBbCisgICAgICAgIFtfZmllbGRfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFf
X1siRmllbGQiXS5wYXJzZV0sCisgICAgICBdCisgICAgfSk7CisgIH0KKworICBnZXQgdHlwZSgp
IHsKKyAgICByZXR1cm4gImRpY3Rpb25hcnkiOworICB9Cit9CisKKworLyoqKi8gfSksCisvKiAy
NyAqLworLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJw
YWNrX3JlcXVpcmVfXykgeworCisidXNlIHN0cmljdCI7CitfX3dlYnBhY2tfcmVxdWlyZV9fLnIo
X193ZWJwYWNrX2V4cG9ydHNfXyk7CisvKiBoYXJtb255IGV4cG9ydCAoYmluZGluZykgKi8gX193
ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sICJGaWVsZCIsIGZ1bmN0aW9u
KCkgeyByZXR1cm4gRmllbGQ7IH0pOworLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9iYXNlX2pz
X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDYpOwor
LyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01P
RFVMRV8xX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDQpOworLyogaGFybW9ueSBpbXBvcnQgKi8g
dmFyIF9leHRlbmRlZF9hdHRyaWJ1dGVzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18g
PSBfX3dlYnBhY2tfcmVxdWlyZV9fKDEwKTsKKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfZGVm
YXVsdF9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fID0gX193ZWJwYWNrX3JlcXVpcmVf
Xyg5KTsKKworCisKKworCitjbGFzcyBGaWVsZCBleHRlbmRzIF9iYXNlX2pzX19XRUJQQUNLX0lN
UE9SVEVEX01PRFVMRV8wX19bIkJhc2UiXSB7CisgIC8qKgorICAgKiBAcGFyYW0ge2ltcG9ydCgi
Li4vdG9rZW5pc2VyIikuVG9rZW5pc2VyfSB0b2tlbmlzZXIKKyAgICovCisgIHN0YXRpYyBwYXJz
ZSh0b2tlbmlzZXIpIHsKKyAgICBjb25zdCB0b2tlbnMgPSB7fTsKKyAgICBjb25zdCByZXQgPSBu
ZXcgRmllbGQoeyBzb3VyY2U6IHRva2VuaXNlci5zb3VyY2UsIHRva2VucyB9KTsKKyAgICByZXQu
ZXh0QXR0cnMgPSBfZXh0ZW5kZWRfYXR0cmlidXRlc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RV
TEVfMl9fWyJFeHRlbmRlZEF0dHJpYnV0ZXMiXS5wYXJzZSh0b2tlbmlzZXIpOworICAgIHRva2Vu
cy5yZXF1aXJlZCA9IHRva2VuaXNlci5jb25zdW1lKCJyZXF1aXJlZCIpOworICAgIHJldC5pZGxU
eXBlID0gT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19bInR5
cGVfd2l0aF9leHRlbmRlZF9hdHRyaWJ1dGVzIl0pKHRva2VuaXNlciwgImRpY3Rpb25hcnktdHlw
ZSIpIHx8IHRva2VuaXNlci5lcnJvcigiRGljdGlvbmFyeSBtZW1iZXIgbGFja3MgYSB0eXBlIik7
CisgICAgdG9rZW5zLm5hbWUgPSB0b2tlbmlzZXIuY29uc3VtZSgiaWRlbnRpZmllciIpIHx8IHRv
a2VuaXNlci5lcnJvcigiRGljdGlvbmFyeSBtZW1iZXIgbGFja3MgYSBuYW1lIik7CisgICAgcmV0
LmRlZmF1bHQgPSBfZGVmYXVsdF9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fWyJEZWZh
dWx0Il0ucGFyc2UodG9rZW5pc2VyKTsKKyAgICBpZiAodG9rZW5zLnJlcXVpcmVkICYmIHJldC5k
ZWZhdWx0KSB0b2tlbmlzZXIuZXJyb3IoIlJlcXVpcmVkIG1lbWJlciBtdXN0IG5vdCBoYXZlIGEg
ZGVmYXVsdCIpOworICAgIHRva2Vucy50ZXJtaW5hdGlvbiA9IHRva2VuaXNlci5jb25zdW1lKCI7
IikgfHwgdG9rZW5pc2VyLmVycm9yKCJVbnRlcm1pbmF0ZWQgZGljdGlvbmFyeSBtZW1iZXIsIGV4
cGVjdGVkIGA7YCIpOworICAgIHJldHVybiByZXQ7CisgIH0KKworICBnZXQgdHlwZSgpIHsKKyAg
ICByZXR1cm4gImZpZWxkIjsKKyAgfQorICBnZXQgbmFtZSgpIHsKKyAgICByZXR1cm4gT2JqZWN0
KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19bInVuZXNjYXBlIl0pKHRo
aXMudG9rZW5zLm5hbWUudmFsdWUpOworICB9CisgIGdldCByZXF1aXJlZCgpIHsKKyAgICByZXR1
cm4gISF0aGlzLnRva2Vucy5yZXF1aXJlZDsKKyAgfQorCisgICp2YWxpZGF0ZShkZWZzKSB7Cisg
ICAgeWllbGQqIHRoaXMuaWRsVHlwZS52YWxpZGF0ZShkZWZzKTsKKyAgfQorfQorCisKKy8qKiov
IH0pLAorLyogMjggKi8KKy8qKiovIChmdW5jdGlvbihtb2R1bGUsIF9fd2VicGFja19leHBvcnRz
X18sIF9fd2VicGFja19yZXF1aXJlX18pIHsKKworInVzZSBzdHJpY3QiOworX193ZWJwYWNrX3Jl
cXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pOworLyogaGFybW9ueSBleHBvcnQgKGJpbmRp
bmcpICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAiTmFtZXNw
YWNlIiwgZnVuY3Rpb24oKSB7IHJldHVybiBOYW1lc3BhY2U7IH0pOworLyogaGFybW9ueSBpbXBv
cnQgKi8gdmFyIF9jb250YWluZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9f
d2VicGFja19yZXF1aXJlX18oMjApOworLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9hdHRyaWJ1
dGVfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18o
MTQpOworLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9vcGVyYXRpb25fanNfX1dFQlBBQ0tfSU1Q
T1JURURfTU9EVUxFXzJfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMTMpOworLyogaGFybW9ueSBp
bXBvcnQgKi8gdmFyIF9lcnJvcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fID0gX193
ZWJwYWNrX3JlcXVpcmVfXygzKTsKKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfaGVscGVyc19q
c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg0KTsK
KworCisKKworCisKK2NsYXNzIE5hbWVzcGFjZSBleHRlbmRzIF9jb250YWluZXJfanNfX1dFQlBB
Q0tfSU1QT1JURURfTU9EVUxFXzBfX1siQ29udGFpbmVyIl0geworICAvKioKKyAgICogQHBhcmFt
IHtpbXBvcnQoIi4uL3Rva2VuaXNlciIpLlRva2VuaXNlcn0gdG9rZW5pc2VyCisgICAqLworICBz
dGF0aWMgcGFyc2UodG9rZW5pc2VyLCB7IHBhcnRpYWwgfSA9IHt9KSB7CisgICAgY29uc3QgdG9r
ZW5zID0geyBwYXJ0aWFsIH07CisgICAgdG9rZW5zLmJhc2UgPSB0b2tlbmlzZXIuY29uc3VtZSgi
bmFtZXNwYWNlIik7CisgICAgaWYgKCF0b2tlbnMuYmFzZSkgeworICAgICAgcmV0dXJuOworICAg
IH0KKyAgICByZXR1cm4gX2NvbnRhaW5lcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9f
WyJDb250YWluZXIiXS5wYXJzZSh0b2tlbmlzZXIsIG5ldyBOYW1lc3BhY2UoeyBzb3VyY2U6IHRv
a2VuaXNlci5zb3VyY2UsIHRva2VucyB9KSwgeworICAgICAgdHlwZTogIm5hbWVzcGFjZSIsCisg
ICAgICBhbGxvd2VkTWVtYmVyczogWworICAgICAgICBbX2F0dHJpYnV0ZV9qc19fV0VCUEFDS19J
TVBPUlRFRF9NT0RVTEVfMV9fWyJBdHRyaWJ1dGUiXS5wYXJzZSwgeyBub0luaGVyaXQ6IHRydWUs
IHJlYWRvbmx5OiB0cnVlIH1dLAorICAgICAgICBbX29wZXJhdGlvbl9qc19fV0VCUEFDS19JTVBP
UlRFRF9NT0RVTEVfMl9fWyJPcGVyYXRpb24iXS5wYXJzZSwgeyByZWd1bGFyOiB0cnVlIH1dCisg
ICAgICBdCisgICAgfSk7CisgIH0KKworICBnZXQgdHlwZSgpIHsKKyAgICByZXR1cm4gIm5hbWVz
cGFjZSI7CisgIH0KKworICAqdmFsaWRhdGUoZGVmcykgeworICAgIGlmICghdGhpcy5wYXJ0aWFs
ICYmIHRoaXMuZXh0QXR0cnMuZXZlcnkoZXh0QXR0ciA9PiBleHRBdHRyLm5hbWUgIT09ICJFeHBv
c2VkIikpIHsKKyAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgTmFtZXNwYWNlcyBtdXN0IGhhdmUgW0V4
cG9zZWRdIGV4dGVuZGVkIGF0dHJpYnV0ZS4gXAorVG8gZml4LCBhZGQsIGZvciBleGFtcGxlLCBb
RXhwb3NlZD1XaW5kb3ddLiBQbGVhc2UgYWxzbyBjb25zaWRlciBjYXJlZnVsbHkgXAoraWYgeW91
ciBuYW1lc3BhY2Ugc2hvdWxkIGFsc28gYmUgZXhwb3NlZCBpbiBhIFdvcmtlciBzY29wZS4gUmVm
ZXIgdG8gdGhlIFwKK1tXZWJJREwgc3BlYyBzZWN0aW9uIG9uIEV4cG9zZWRdKGh0dHBzOi8vaGV5
Y2FtLmdpdGh1Yi5pby93ZWJpZGwvI0V4cG9zZWQpIFwKK2ZvciBtb3JlIGluZm9ybWF0aW9uLmA7
CisgICAgICB5aWVsZCBPYmplY3QoX2Vycm9yX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8z
X19bInZhbGlkYXRpb25FcnJvciJdKSh0aGlzLnNvdXJjZSwgdGhpcy50b2tlbnMubmFtZSwgdGhp
cywgbWVzc2FnZSwgeworICAgICAgICBhdXRvZml4OiBPYmplY3QoX2hlbHBlcnNfanNfX1dFQlBB
Q0tfSU1QT1JURURfTU9EVUxFXzRfX1siYXV0b2ZpeEFkZEV4cG9zZWRXaW5kb3ciXSkodGhpcykK
KyAgICAgIH0pOworICAgIH0KKyAgICB5aWVsZCogc3VwZXIudmFsaWRhdGUoZGVmcyk7CisgIH0K
K30KKworCisvKioqLyB9KSwKKy8qIDI5ICovCisvKioqLyAoZnVuY3Rpb24obW9kdWxlLCBfX3dl
YnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CisKKyJ1c2Ugc3RyaWN0IjsK
K19fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTsKKy8qIGhhcm1vbnkg
ZXhwb3J0IChiaW5kaW5nKSAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9y
dHNfXywgIkNhbGxiYWNrSW50ZXJmYWNlIiwgZnVuY3Rpb24oKSB7IHJldHVybiBDYWxsYmFja0lu
dGVyZmFjZTsgfSk7CisvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2NvbnRhaW5lcl9qc19fV0VC
UEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygyMCk7CisvKiBo
YXJtb255IGltcG9ydCAqLyB2YXIgX29wZXJhdGlvbl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RV
TEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygxMyk7CisvKiBoYXJtb255IGltcG9ydCAqLyB2
YXIgX2NvbnN0YW50X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18gPSBfX3dlYnBhY2tf
cmVxdWlyZV9fKDIxKTsKKworCisKKworCitjbGFzcyBDYWxsYmFja0ludGVyZmFjZSBleHRlbmRz
IF9jb250YWluZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siQ29udGFpbmVyIl0g
eworICAvKioKKyAgICogQHBhcmFtIHtpbXBvcnQoIi4uL3Rva2VuaXNlciIpLlRva2VuaXNlcn0g
dG9rZW5pc2VyCisgICAqLworICBzdGF0aWMgcGFyc2UodG9rZW5pc2VyLCBjYWxsYmFjaywgeyBw
YXJ0aWFsID0gbnVsbCB9ID0ge30pIHsKKyAgICBjb25zdCB0b2tlbnMgPSB7IGNhbGxiYWNrIH07
CisgICAgdG9rZW5zLmJhc2UgPSB0b2tlbmlzZXIuY29uc3VtZSgiaW50ZXJmYWNlIik7CisgICAg
aWYgKCF0b2tlbnMuYmFzZSkgeworICAgICAgcmV0dXJuOworICAgIH0KKyAgICByZXR1cm4gX2Nv
bnRhaW5lcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJDb250YWluZXIiXS5wYXJz
ZSh0b2tlbmlzZXIsIG5ldyBDYWxsYmFja0ludGVyZmFjZSh7IHNvdXJjZTogdG9rZW5pc2VyLnNv
dXJjZSwgdG9rZW5zIH0pLCB7CisgICAgICB0eXBlOiAiY2FsbGJhY2sgaW50ZXJmYWNlIiwKKyAg
ICAgIGluaGVyaXRhYmxlOiAhcGFydGlhbCwKKyAgICAgIGFsbG93ZWRNZW1iZXJzOiBbCisgICAg
ICAgIFtfY29uc3RhbnRfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX1siQ29uc3RhbnQi
XS5wYXJzZV0sCisgICAgICAgIFtfb3BlcmF0aW9uX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVM
RV8xX19bIk9wZXJhdGlvbiJdLnBhcnNlLCB7IHJlZ3VsYXI6IHRydWUgfV0KKyAgICAgIF0KKyAg
ICB9KTsKKyAgfQorCisgIGdldCB0eXBlKCkgeworICAgIHJldHVybiAiY2FsbGJhY2sgaW50ZXJm
YWNlIjsKKyAgfQorfQorCisKKy8qKiovIH0pLAorLyogMzAgKi8KKy8qKiovIChmdW5jdGlvbiht
b2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pIHsKKworInVz
ZSBzdHJpY3QiOworX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pOwor
LyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dl
YnBhY2tfZXhwb3J0c19fLCAid3JpdGUiLCBmdW5jdGlvbigpIHsgcmV0dXJuIHdyaXRlOyB9KTsK
KworCitmdW5jdGlvbiBub29wKGFyZykgeworICByZXR1cm4gYXJnOworfQorCitjb25zdCB0ZW1w
bGF0ZXMgPSB7CisgIHdyYXA6IGl0ZW1zID0+IGl0ZW1zLmpvaW4oIiIpLAorICB0cml2aWE6IG5v
b3AsCisgIG5hbWU6IG5vb3AsCisgIHJlZmVyZW5jZTogbm9vcCwKKyAgdHlwZTogbm9vcCwKKyAg
Z2VuZXJpYzogbm9vcCwKKyAgbmFtZWxlc3M6IG5vb3AsCisgIGluaGVyaXRhbmNlOiBub29wLAor
ICBkZWZpbml0aW9uOiBub29wLAorICBleHRlbmRlZEF0dHJpYnV0ZTogbm9vcCwKKyAgZXh0ZW5k
ZWRBdHRyaWJ1dGVSZWZlcmVuY2U6IG5vb3AKK307CisKK2Z1bmN0aW9uIHdyaXRlKGFzdCwgeyB0
ZW1wbGF0ZXM6IHRzID0gdGVtcGxhdGVzIH0gPSB7fSkgeworICB0cyA9IE9iamVjdC5hc3NpZ24o
e30sIHRlbXBsYXRlcywgdHMpOworCisgIGZ1bmN0aW9uIHJlZmVyZW5jZShyYXcsIHsgdW5lc2Nh
cGVkLCBjb250ZXh0IH0pIHsKKyAgICBpZiAoIXVuZXNjYXBlZCkgeworICAgICAgdW5lc2NhcGVk
ID0gcmF3LnN0YXJ0c1dpdGgoIl8iKSA/IHJhdy5zbGljZSgxKSA6IHJhdzsKKyAgICB9CisgICAg
cmV0dXJuIHRzLnJlZmVyZW5jZShyYXcsIHVuZXNjYXBlZCwgY29udGV4dCk7CisgIH0KKworICBm
dW5jdGlvbiB0b2tlbih0LCB3cmFwcGVyID0gbm9vcCwgLi4uYXJncykgeworICAgIGlmICghdCkg
eworICAgICAgcmV0dXJuICIiOworICAgIH0KKyAgICBjb25zdCB2YWx1ZSA9IHdyYXBwZXIodC52
YWx1ZSwgLi4uYXJncyk7CisgICAgcmV0dXJuIHRzLndyYXAoW3RzLnRyaXZpYSh0LnRyaXZpYSks
IHZhbHVlXSk7CisgIH0KKworICBmdW5jdGlvbiByZWZlcmVuY2VfdG9rZW4odCwgY29udGV4dCkg
eworICAgIHJldHVybiB0b2tlbih0LCByZWZlcmVuY2UsIHsgY29udGV4dCB9KTsKKyAgfQorCisg
IGZ1bmN0aW9uIG5hbWVfdG9rZW4odCwgYXJnKSB7CisgICAgcmV0dXJuIHRva2VuKHQsIHRzLm5h
bWUsIGFyZyk7CisgIH0KKworICBmdW5jdGlvbiB0eXBlX2JvZHkoaXQpIHsKKyAgICBpZiAoaXQu
dW5pb24gfHwgaXQuZ2VuZXJpYykgeworICAgICAgcmV0dXJuIHRzLndyYXAoWworICAgICAgICB0
b2tlbihpdC50b2tlbnMuYmFzZSwgdHMuZ2VuZXJpYyksCisgICAgICAgIHRva2VuKGl0LnRva2Vu
cy5vcGVuKSwKKyAgICAgICAgLi4uaXQuc3VidHlwZS5tYXAodHlwZSksCisgICAgICAgIHRva2Vu
KGl0LnRva2Vucy5jbG9zZSkKKyAgICAgIF0pOworICAgIH0KKyAgICBjb25zdCBmaXJzdFRva2Vu
ID0gaXQudG9rZW5zLnByZWZpeCB8fCBpdC50b2tlbnMuYmFzZTsKKyAgICBjb25zdCBwcmVmaXgg
PSBpdC50b2tlbnMucHJlZml4ID8gWworICAgICAgaXQudG9rZW5zLnByZWZpeC52YWx1ZSwKKyAg
ICAgIHRzLnRyaXZpYShpdC50b2tlbnMuYmFzZS50cml2aWEpCisgICAgXSA6IFtdOworICAgIGNv
bnN0IHJlZiA9IHJlZmVyZW5jZSh0cy53cmFwKFsKKyAgICAgIC4uLnByZWZpeCwKKyAgICAgIGl0
LnRva2Vucy5iYXNlLnZhbHVlLAorICAgICAgdG9rZW4oaXQudG9rZW5zLnBvc3RmaXgpCisgICAg
XSksIHsgdW5lc2NhcGVkOiBpdC5pZGxUeXBlLCBjb250ZXh0OiBpdCB9KTsKKyAgICByZXR1cm4g
dHMud3JhcChbdHMudHJpdmlhKGZpcnN0VG9rZW4udHJpdmlhKSwgcmVmXSk7CisgIH0KKyAgZnVu
Y3Rpb24gdHlwZShpdCkgeworICAgIHJldHVybiB0cy53cmFwKFsKKyAgICAgIGV4dGVuZGVkX2F0
dHJpYnV0ZXMoaXQuZXh0QXR0cnMpLAorICAgICAgdHlwZV9ib2R5KGl0KSwKKyAgICAgIHRva2Vu
KGl0LnRva2Vucy5udWxsYWJsZSksCisgICAgICB0b2tlbihpdC50b2tlbnMuc2VwYXJhdG9yKQor
ICAgIF0pOworICB9CisgIGZ1bmN0aW9uIGRlZmF1bHRfKGRlZikgeworICAgIGlmICghZGVmKSB7
CisgICAgICByZXR1cm4gIiI7CisgICAgfQorICAgIHJldHVybiB0cy53cmFwKFsKKyAgICAgIHRv
a2VuKGRlZi50b2tlbnMuYXNzaWduKSwKKyAgICAgIC4uLmRlZi5leHByZXNzaW9uLm1hcCh0ID0+
IHRva2VuKHQpKQorICAgIF0pOworICB9CisgIGZ1bmN0aW9uIGFyZ3VtZW50KGFyZykgeworICAg
IHJldHVybiB0cy53cmFwKFsKKyAgICAgIGV4dGVuZGVkX2F0dHJpYnV0ZXMoYXJnLmV4dEF0dHJz
KSwKKyAgICAgIHRva2VuKGFyZy50b2tlbnMub3B0aW9uYWwpLAorICAgICAgdHMudHlwZSh0eXBl
KGFyZy5pZGxUeXBlKSksCisgICAgICB0b2tlbihhcmcudG9rZW5zLnZhcmlhZGljKSwKKyAgICAg
IG5hbWVfdG9rZW4oYXJnLnRva2Vucy5uYW1lLCB7IGRhdGE6IGFyZyB9KSwKKyAgICAgIGRlZmF1
bHRfKGFyZy5kZWZhdWx0KSwKKyAgICAgIHRva2VuKGFyZy50b2tlbnMuc2VwYXJhdG9yKQorICAg
IF0pOworICB9CisgIGZ1bmN0aW9uIGlkZW50aWZpZXIoaWQsIGNvbnRleHQpIHsKKyAgICByZXR1
cm4gdHMud3JhcChbCisgICAgICByZWZlcmVuY2VfdG9rZW4oaWQudG9rZW5zLnZhbHVlLCBjb250
ZXh0KSwKKyAgICAgIHRva2VuKGlkLnRva2Vucy5zZXBhcmF0b3IpCisgICAgXSk7CisgIH0KKyAg
ZnVuY3Rpb24gbWFrZV9leHRfYXQoaXQpIHsKKyAgICBjb25zdCB7IHJoc1R5cGUgfSA9IGl0LnBh
cmFtczsKKyAgICByZXR1cm4gdHMud3JhcChbCisgICAgICB0cy50cml2aWEoaXQudG9rZW5zLm5h
bWUudHJpdmlhKSwKKyAgICAgIHRzLmV4dGVuZGVkQXR0cmlidXRlKHRzLndyYXAoWworICAgICAg
ICB0cy5leHRlbmRlZEF0dHJpYnV0ZVJlZmVyZW5jZShpdC5uYW1lKSwKKyAgICAgICAgdG9rZW4o
aXQucGFyYW1zLnRva2Vucy5hc3NpZ24pLAorICAgICAgICByZWZlcmVuY2VfdG9rZW4oaXQucGFy
YW1zLnRva2Vucy5zZWNvbmRhcnlOYW1lLCBpdCksCisgICAgICAgIHRva2VuKGl0LnBhcmFtcy50
b2tlbnMub3BlbiksCisgICAgICAgIC4uLiFpdC5wYXJhbXMubGlzdCA/IFtdIDoKKyAgICAgICAg
ICBpdC5wYXJhbXMubGlzdC5tYXAoCisgICAgICAgICAgICByaHNUeXBlID09PSAiaWRlbnRpZmll
ci1saXN0IiA/IGlkID0+IGlkZW50aWZpZXIoaWQsIGl0KSA6IGFyZ3VtZW50CisgICAgICAgICAg
KSwKKyAgICAgICAgdG9rZW4oaXQucGFyYW1zLnRva2Vucy5jbG9zZSkKKyAgICAgIF0pKSwKKyAg
ICAgIHRva2VuKGl0LnRva2Vucy5zZXBhcmF0b3IpCisgICAgXSk7CisgIH0KKyAgZnVuY3Rpb24g
ZXh0ZW5kZWRfYXR0cmlidXRlcyhlYXRzKSB7CisgICAgaWYgKCFlYXRzLmxlbmd0aCkgcmV0dXJu
ICIiOworICAgIHJldHVybiB0cy53cmFwKFsKKyAgICAgIHRva2VuKGVhdHMudG9rZW5zLm9wZW4p
LAorICAgICAgLi4uZWF0cy5tYXAobWFrZV9leHRfYXQpLAorICAgICAgdG9rZW4oZWF0cy50b2tl
bnMuY2xvc2UpCisgICAgXSk7CisgIH0KKworICBmdW5jdGlvbiBvcGVyYXRpb24oaXQsIHBhcmVu
dCkgeworICAgIGNvbnN0IGJvZHkgPSBpdC5pZGxUeXBlID8gWworICAgICAgdHMudHlwZSh0eXBl
KGl0LmlkbFR5cGUpKSwKKyAgICAgIG5hbWVfdG9rZW4oaXQudG9rZW5zLm5hbWUsIHsgZGF0YTog
aXQsIHBhcmVudCB9KSwKKyAgICAgIHRva2VuKGl0LnRva2Vucy5vcGVuKSwKKyAgICAgIHRzLndy
YXAoaXQuYXJndW1lbnRzLm1hcChhcmd1bWVudCkpLAorICAgICAgdG9rZW4oaXQudG9rZW5zLmNs
b3NlKSwKKyAgICBdIDogW107CisgICAgcmV0dXJuIHRzLmRlZmluaXRpb24odHMud3JhcChbCisg
ICAgICBleHRlbmRlZF9hdHRyaWJ1dGVzKGl0LmV4dEF0dHJzKSwKKyAgICAgIGl0LnRva2Vucy5u
YW1lID8gdG9rZW4oaXQudG9rZW5zLnNwZWNpYWwpIDogdG9rZW4oaXQudG9rZW5zLnNwZWNpYWws
IHRzLm5hbWVsZXNzLCB7IGRhdGE6IGl0LCBwYXJlbnQgfSksCisgICAgICAuLi5ib2R5LAorICAg
ICAgdG9rZW4oaXQudG9rZW5zLnRlcm1pbmF0aW9uKQorICAgIF0pLCB7IGRhdGE6IGl0LCBwYXJl
bnQgfSk7CisgIH0KKworICBmdW5jdGlvbiBhdHRyaWJ1dGUoaXQsIHBhcmVudCkgeworICAgIHJl
dHVybiB0cy5kZWZpbml0aW9uKHRzLndyYXAoWworICAgICAgZXh0ZW5kZWRfYXR0cmlidXRlcyhp
dC5leHRBdHRycyksCisgICAgICB0b2tlbihpdC50b2tlbnMuc3BlY2lhbCksCisgICAgICB0b2tl
bihpdC50b2tlbnMucmVhZG9ubHkpLAorICAgICAgdG9rZW4oaXQudG9rZW5zLmJhc2UpLAorICAg
ICAgdHMudHlwZSh0eXBlKGl0LmlkbFR5cGUpKSwKKyAgICAgIG5hbWVfdG9rZW4oaXQudG9rZW5z
Lm5hbWUsIHsgZGF0YTogaXQsIHBhcmVudCB9KSwKKyAgICAgIHRva2VuKGl0LnRva2Vucy50ZXJt
aW5hdGlvbikKKyAgICBdKSwgeyBkYXRhOiBpdCwgcGFyZW50IH0pOworICB9CisKKyAgZnVuY3Rp
b24gY29uc3RydWN0b3IoaXQsIHBhcmVudCkgeworICAgIHJldHVybiB0cy5kZWZpbml0aW9uKHRz
LndyYXAoWworICAgICAgZXh0ZW5kZWRfYXR0cmlidXRlcyhpdC5leHRBdHRycyksCisgICAgICB0
b2tlbihpdC50b2tlbnMuYmFzZSwgdHMubmFtZWxlc3MsIHsgZGF0YTogaXQsIHBhcmVudCB9KSwK
KyAgICAgIHRva2VuKGl0LnRva2Vucy5vcGVuKSwKKyAgICAgIHRzLndyYXAoaXQuYXJndW1lbnRz
Lm1hcChhcmd1bWVudCkpLAorICAgICAgdG9rZW4oaXQudG9rZW5zLmNsb3NlKSwKKyAgICAgIHRv
a2VuKGl0LnRva2Vucy50ZXJtaW5hdGlvbikKKyAgICBdKSwgeyBkYXRhOiBpdCwgcGFyZW50IH0p
OworICB9CisKKyAgZnVuY3Rpb24gaW5oZXJpdGFuY2UoaW5oKSB7CisgICAgaWYgKCFpbmgudG9r
ZW5zLmluaGVyaXRhbmNlKSB7CisgICAgICByZXR1cm4gIiI7CisgICAgfQorICAgIHJldHVybiB0
cy53cmFwKFsKKyAgICAgIHRva2VuKGluaC50b2tlbnMuY29sb24pLAorICAgICAgdHMudHJpdmlh
KGluaC50b2tlbnMuaW5oZXJpdGFuY2UudHJpdmlhKSwKKyAgICAgIHRzLmluaGVyaXRhbmNlKHJl
ZmVyZW5jZShpbmgudG9rZW5zLmluaGVyaXRhbmNlLnZhbHVlLCB7IGNvbnRleHQ6IGluaCB9KSkK
KyAgICBdKTsKKyAgfQorCisgIGZ1bmN0aW9uIGNvbnRhaW5lcihpdCkgeworICAgIHJldHVybiB0
cy5kZWZpbml0aW9uKHRzLndyYXAoWworICAgICAgZXh0ZW5kZWRfYXR0cmlidXRlcyhpdC5leHRB
dHRycyksCisgICAgICB0b2tlbihpdC50b2tlbnMuY2FsbGJhY2spLAorICAgICAgdG9rZW4oaXQu
dG9rZW5zLnBhcnRpYWwpLAorICAgICAgdG9rZW4oaXQudG9rZW5zLmJhc2UpLAorICAgICAgdG9r
ZW4oaXQudG9rZW5zLm1peGluKSwKKyAgICAgIG5hbWVfdG9rZW4oaXQudG9rZW5zLm5hbWUsIHsg
ZGF0YTogaXQgfSksCisgICAgICBpbmhlcml0YW5jZShpdCksCisgICAgICB0b2tlbihpdC50b2tl
bnMub3BlbiksCisgICAgICBpdGVyYXRlKGl0Lm1lbWJlcnMsIGl0KSwKKyAgICAgIHRva2VuKGl0
LnRva2Vucy5jbG9zZSksCisgICAgICB0b2tlbihpdC50b2tlbnMudGVybWluYXRpb24pCisgICAg
XSksIHsgZGF0YTogaXQgfSk7CisgIH0KKworICBmdW5jdGlvbiBmaWVsZChpdCwgcGFyZW50KSB7
CisgICAgcmV0dXJuIHRzLmRlZmluaXRpb24odHMud3JhcChbCisgICAgICBleHRlbmRlZF9hdHRy
aWJ1dGVzKGl0LmV4dEF0dHJzKSwKKyAgICAgIHRva2VuKGl0LnRva2Vucy5yZXF1aXJlZCksCisg
ICAgICB0cy50eXBlKHR5cGUoaXQuaWRsVHlwZSkpLAorICAgICAgbmFtZV90b2tlbihpdC50b2tl
bnMubmFtZSwgeyBkYXRhOiBpdCwgcGFyZW50IH0pLAorICAgICAgZGVmYXVsdF8oaXQuZGVmYXVs
dCksCisgICAgICB0b2tlbihpdC50b2tlbnMudGVybWluYXRpb24pCisgICAgXSksIHsgZGF0YTog
aXQsIHBhcmVudCB9KTsKKyAgfQorICBmdW5jdGlvbiBjb25zdF8oaXQsIHBhcmVudCkgeworICAg
IHJldHVybiB0cy5kZWZpbml0aW9uKHRzLndyYXAoWworICAgICAgZXh0ZW5kZWRfYXR0cmlidXRl
cyhpdC5leHRBdHRycyksCisgICAgICB0b2tlbihpdC50b2tlbnMuYmFzZSksCisgICAgICB0cy50
eXBlKHR5cGUoaXQuaWRsVHlwZSkpLAorICAgICAgbmFtZV90b2tlbihpdC50b2tlbnMubmFtZSwg
eyBkYXRhOiBpdCwgcGFyZW50IH0pLAorICAgICAgdG9rZW4oaXQudG9rZW5zLmFzc2lnbiksCisg
ICAgICB0b2tlbihpdC50b2tlbnMudmFsdWUpLAorICAgICAgdG9rZW4oaXQudG9rZW5zLnRlcm1p
bmF0aW9uKQorICAgIF0pLCB7IGRhdGE6IGl0LCBwYXJlbnQgfSk7CisgIH0KKyAgZnVuY3Rpb24g
dHlwZWRlZihpdCkgeworICAgIHJldHVybiB0cy5kZWZpbml0aW9uKHRzLndyYXAoWworICAgICAg
ZXh0ZW5kZWRfYXR0cmlidXRlcyhpdC5leHRBdHRycyksCisgICAgICB0b2tlbihpdC50b2tlbnMu
YmFzZSksCisgICAgICB0cy50eXBlKHR5cGUoaXQuaWRsVHlwZSkpLAorICAgICAgbmFtZV90b2tl
bihpdC50b2tlbnMubmFtZSwgeyBkYXRhOiBpdCB9KSwKKyAgICAgIHRva2VuKGl0LnRva2Vucy50
ZXJtaW5hdGlvbikKKyAgICBdKSwgeyBkYXRhOiBpdCB9KTsKKyAgfQorICBmdW5jdGlvbiBpbmNs
dWRlcyhpdCkgeworICAgIHJldHVybiB0cy5kZWZpbml0aW9uKHRzLndyYXAoWworICAgICAgZXh0
ZW5kZWRfYXR0cmlidXRlcyhpdC5leHRBdHRycyksCisgICAgICByZWZlcmVuY2VfdG9rZW4oaXQu
dG9rZW5zLnRhcmdldCwgaXQpLAorICAgICAgdG9rZW4oaXQudG9rZW5zLmluY2x1ZGVzKSwKKyAg
ICAgIHJlZmVyZW5jZV90b2tlbihpdC50b2tlbnMubWl4aW4sIGl0KSwKKyAgICAgIHRva2VuKGl0
LnRva2Vucy50ZXJtaW5hdGlvbikKKyAgICBdKSwgeyBkYXRhOiBpdCB9KTsKKyAgfQorICBmdW5j
dGlvbiBjYWxsYmFjayhpdCkgeworICAgIHJldHVybiB0cy5kZWZpbml0aW9uKHRzLndyYXAoWwor
ICAgICAgZXh0ZW5kZWRfYXR0cmlidXRlcyhpdC5leHRBdHRycyksCisgICAgICB0b2tlbihpdC50
b2tlbnMuYmFzZSksCisgICAgICBuYW1lX3Rva2VuKGl0LnRva2Vucy5uYW1lLCB7IGRhdGE6IGl0
IH0pLAorICAgICAgdG9rZW4oaXQudG9rZW5zLmFzc2lnbiksCisgICAgICB0cy50eXBlKHR5cGUo
aXQuaWRsVHlwZSkpLAorICAgICAgdG9rZW4oaXQudG9rZW5zLm9wZW4pLAorICAgICAgLi4uaXQu
YXJndW1lbnRzLm1hcChhcmd1bWVudCksCisgICAgICB0b2tlbihpdC50b2tlbnMuY2xvc2UpLAor
ICAgICAgdG9rZW4oaXQudG9rZW5zLnRlcm1pbmF0aW9uKSwKKyAgICBdKSwgeyBkYXRhOiBpdCB9
KTsKKyAgfQorICBmdW5jdGlvbiBlbnVtXyhpdCkgeworICAgIHJldHVybiB0cy5kZWZpbml0aW9u
KHRzLndyYXAoWworICAgICAgZXh0ZW5kZWRfYXR0cmlidXRlcyhpdC5leHRBdHRycyksCisgICAg
ICB0b2tlbihpdC50b2tlbnMuYmFzZSksCisgICAgICBuYW1lX3Rva2VuKGl0LnRva2Vucy5uYW1l
LCB7IGRhdGE6IGl0IH0pLAorICAgICAgdG9rZW4oaXQudG9rZW5zLm9wZW4pLAorICAgICAgaXRl
cmF0ZShpdC52YWx1ZXMsIGl0KSwKKyAgICAgIHRva2VuKGl0LnRva2Vucy5jbG9zZSksCisgICAg
ICB0b2tlbihpdC50b2tlbnMudGVybWluYXRpb24pCisgICAgXSksIHsgZGF0YTogaXQgfSk7Cisg
IH0KKyAgZnVuY3Rpb24gZW51bV92YWx1ZSh2LCBwYXJlbnQpIHsKKyAgICByZXR1cm4gdHMud3Jh
cChbCisgICAgICB0cy50cml2aWEodi50b2tlbnMudmFsdWUudHJpdmlhKSwKKyAgICAgIHRzLmRl
ZmluaXRpb24oCisgICAgICAgIHRzLndyYXAoWyciJywgdHMubmFtZSh2LnZhbHVlLCB7IGRhdGE6
IHYsIHBhcmVudCB9KSwgJyInXSksCisgICAgICAgIHsgZGF0YTogdiwgcGFyZW50IH0KKyAgICAg
ICksCisgICAgICB0b2tlbih2LnRva2Vucy5zZXBhcmF0b3IpCisgICAgXSk7CisgIH0KKyAgZnVu
Y3Rpb24gaXRlcmFibGVfbGlrZShpdCwgcGFyZW50KSB7CisgICAgcmV0dXJuIHRzLmRlZmluaXRp
b24odHMud3JhcChbCisgICAgICBleHRlbmRlZF9hdHRyaWJ1dGVzKGl0LmV4dEF0dHJzKSwKKyAg
ICAgIHRva2VuKGl0LnRva2Vucy5yZWFkb25seSksCisgICAgICB0b2tlbihpdC50b2tlbnMuYXN5
bmMpLAorICAgICAgdG9rZW4oaXQudG9rZW5zLmJhc2UsIHRzLmdlbmVyaWMpLAorICAgICAgdG9r
ZW4oaXQudG9rZW5zLm9wZW4pLAorICAgICAgdHMud3JhcChpdC5pZGxUeXBlLm1hcCh0eXBlKSks
CisgICAgICB0b2tlbihpdC50b2tlbnMuY2xvc2UpLAorICAgICAgdG9rZW4oaXQudG9rZW5zLnRl
cm1pbmF0aW9uKQorICAgIF0pLCB7IGRhdGE6IGl0LCBwYXJlbnQgfSk7CisgIH0KKyAgZnVuY3Rp
b24gZW9mKGl0KSB7CisgICAgcmV0dXJuIHRzLnRyaXZpYShpdC50cml2aWEpOworICB9CisKKyAg
Y29uc3QgdGFibGUgPSB7CisgICAgaW50ZXJmYWNlOiBjb250YWluZXIsCisgICAgImludGVyZmFj
ZSBtaXhpbiI6IGNvbnRhaW5lciwKKyAgICBuYW1lc3BhY2U6IGNvbnRhaW5lciwKKyAgICBvcGVy
YXRpb24sCisgICAgYXR0cmlidXRlLAorICAgIGNvbnN0cnVjdG9yLAorICAgIGRpY3Rpb25hcnk6
IGNvbnRhaW5lciwKKyAgICBmaWVsZCwKKyAgICBjb25zdDogY29uc3RfLAorICAgIHR5cGVkZWYs
CisgICAgaW5jbHVkZXMsCisgICAgY2FsbGJhY2ssCisgICAgZW51bTogZW51bV8sCisgICAgImVu
dW0tdmFsdWUiOiBlbnVtX3ZhbHVlLAorICAgIGl0ZXJhYmxlOiBpdGVyYWJsZV9saWtlLAorICAg
IGxlZ2FjeWl0ZXJhYmxlOiBpdGVyYWJsZV9saWtlLAorICAgIG1hcGxpa2U6IGl0ZXJhYmxlX2xp
a2UsCisgICAgc2V0bGlrZTogaXRlcmFibGVfbGlrZSwKKyAgICAiY2FsbGJhY2sgaW50ZXJmYWNl
IjogY29udGFpbmVyLAorICAgIGVvZgorICB9OworICBmdW5jdGlvbiBkaXNwYXRjaChpdCwgcGFy
ZW50KSB7CisgICAgY29uc3QgZGlzcGF0Y2hlciA9IHRhYmxlW2l0LnR5cGVdOworICAgIGlmICgh
ZGlzcGF0Y2hlcikgeworICAgICAgdGhyb3cgbmV3IEVycm9yKGBUeXBlICIke2l0LnR5cGV9IiBp
cyB1bnN1cHBvcnRlZGApOworICAgIH0KKyAgICByZXR1cm4gdGFibGVbaXQudHlwZV0oaXQsIHBh
cmVudCk7CisgIH0KKyAgZnVuY3Rpb24gaXRlcmF0ZSh0aGluZ3MsIHBhcmVudCkgeworICAgIGlm
ICghdGhpbmdzKSByZXR1cm47CisgICAgY29uc3QgcmVzdWx0cyA9IHRoaW5ncy5tYXAodGhpbmcg
PT4gZGlzcGF0Y2godGhpbmcsIHBhcmVudCkpOworICAgIHJldHVybiB0cy53cmFwKHJlc3VsdHMp
OworICB9CisgIHJldHVybiBpdGVyYXRlKGFzdCk7Cit9CisKKworLyoqKi8gfSksCisvKiAzMSAq
LworLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNr
X3JlcXVpcmVfXykgeworCisidXNlIHN0cmljdCI7CitfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193
ZWJwYWNrX2V4cG9ydHNfXyk7CisvKiBoYXJtb255IGV4cG9ydCAoYmluZGluZykgKi8gX193ZWJw
YWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sICJ2YWxpZGF0ZSIsIGZ1bmN0aW9u
KCkgeyByZXR1cm4gdmFsaWRhdGU7IH0pOworLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9lcnJv
cl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygz
KTsKKworCisKKworZnVuY3Rpb24gZ2V0TWl4aW5NYXAoYWxsLCB1bmlxdWUpIHsKKyAgY29uc3Qg
bWFwID0gbmV3IE1hcCgpOworICBjb25zdCBpbmNsdWRlcyA9IGFsbC5maWx0ZXIoZGVmID0+IGRl
Zi50eXBlID09PSAiaW5jbHVkZXMiKTsKKyAgZm9yIChjb25zdCBpbmNsdWRlIG9mIGluY2x1ZGVz
KSB7CisgICAgY29uc3QgbWl4aW4gPSB1bmlxdWUuZ2V0KGluY2x1ZGUuaW5jbHVkZXMpOworICAg
IGlmICghbWl4aW4pIHsKKyAgICAgIGNvbnRpbnVlOworICAgIH0KKyAgICBjb25zdCBhcnJheSA9
IG1hcC5nZXQoaW5jbHVkZS50YXJnZXQpOworICAgIGlmIChhcnJheSkgeworICAgICAgYXJyYXku
cHVzaChtaXhpbik7CisgICAgfSBlbHNlIHsKKyAgICAgIG1hcC5zZXQoaW5jbHVkZS50YXJnZXQs
IFttaXhpbl0pOworICAgIH0KKyAgfQorICByZXR1cm4gbWFwOworfQorCitmdW5jdGlvbiBncm91
cERlZmluaXRpb25zKGFsbCkgeworICBjb25zdCB1bmlxdWUgPSBuZXcgTWFwKCk7CisgIGNvbnN0
IGR1cGxpY2F0ZXMgPSBuZXcgU2V0KCk7CisgIGNvbnN0IHBhcnRpYWxzID0gbmV3IE1hcCgpOwor
ICBmb3IgKGNvbnN0IGRlZiBvZiBhbGwpIHsKKyAgICBpZiAoZGVmLnBhcnRpYWwpIHsKKyAgICAg
IGNvbnN0IGFycmF5ID0gcGFydGlhbHMuZ2V0KGRlZi5uYW1lKTsKKyAgICAgIGlmIChhcnJheSkg
eworICAgICAgICBhcnJheS5wdXNoKGRlZik7CisgICAgICB9IGVsc2UgeworICAgICAgICBwYXJ0
aWFscy5zZXQoZGVmLm5hbWUsIFtkZWZdKTsKKyAgICAgIH0KKyAgICAgIGNvbnRpbnVlOworICAg
IH0KKyAgICBpZiAoIWRlZi5uYW1lKSB7CisgICAgICBjb250aW51ZTsKKyAgICB9CisgICAgaWYg
KCF1bmlxdWUuaGFzKGRlZi5uYW1lKSkgeworICAgICAgdW5pcXVlLnNldChkZWYubmFtZSwgZGVm
KTsKKyAgICB9IGVsc2UgeworICAgICAgZHVwbGljYXRlcy5hZGQoZGVmKTsKKyAgICB9CisgIH0K
KyAgcmV0dXJuIHsKKyAgICBhbGwsCisgICAgdW5pcXVlLAorICAgIHBhcnRpYWxzLAorICAgIGR1
cGxpY2F0ZXMsCisgICAgbWl4aW5NYXA6IGdldE1peGluTWFwKGFsbCwgdW5pcXVlKSwKKyAgICBj
YWNoZTogeworICAgICAgdHlwZWRlZkluY2x1ZGVzRGljdGlvbmFyeTogbmV3IFdlYWtNYXAoKQor
ICAgIH0sCisgIH07Cit9CisKK2Z1bmN0aW9uKiBjaGVja0R1cGxpY2F0ZWROYW1lcyh7IHVuaXF1
ZSwgZHVwbGljYXRlcyB9KSB7CisgIGZvciAoY29uc3QgZHVwIG9mIGR1cGxpY2F0ZXMpIHsKKyAg
ICBjb25zdCB7IG5hbWUgfSA9IGR1cDsKKyAgICBjb25zdCBtZXNzYWdlID0gYFRoZSBuYW1lICIk
e25hbWV9IiBvZiB0eXBlICIke3VuaXF1ZS5nZXQobmFtZSkudHlwZX0iIHdhcyBhbHJlYWR5IHNl
ZW5gOworICAgIHlpZWxkIE9iamVjdChfZXJyb3JfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxF
XzBfX1sidmFsaWRhdGlvbkVycm9yIl0pKGR1cC5zb3VyY2UsIGR1cC50b2tlbnMubmFtZSwgZHVw
LCBtZXNzYWdlKTsKKyAgfQorfQorCitmdW5jdGlvbiogdmFsaWRhdGVJdGVyYWJsZShhc3QpIHsK
KyAgY29uc3QgZGVmcyA9IGdyb3VwRGVmaW5pdGlvbnMoYXN0KTsKKyAgZm9yIChjb25zdCBkZWYg
b2YgZGVmcy5hbGwpIHsKKyAgICBpZiAoZGVmLnZhbGlkYXRlKSB7CisgICAgICB5aWVsZCogZGVm
LnZhbGlkYXRlKGRlZnMpOworICAgIH0KKyAgfQorICB5aWVsZCogY2hlY2tEdXBsaWNhdGVkTmFt
ZXMoZGVmcyk7Cit9CisKKy8vIFJlbW92ZSB0aGlzIG9uY2UgYWxsIG9mIG91ciBzdXBwb3J0IHRh
cmdldHMgZXhwb3NlIGAuZmxhdCgpYCBieSBkZWZhdWx0CitmdW5jdGlvbiBmbGF0dGVuKGFycmF5
KSB7CisgIGlmIChhcnJheS5mbGF0KSB7CisgICAgcmV0dXJuIGFycmF5LmZsYXQoKTsKKyAgfQor
ICByZXR1cm4gW10uY29uY2F0KC4uLmFycmF5KTsKK30KKworLyoqCisgKiBAcGFyYW0geyp9IGFz
dCBBU1Qgb3IgYXJyYXkgb2YgQVNUcworICovCitmdW5jdGlvbiB2YWxpZGF0ZShhc3QpIHsKKyAg
cmV0dXJuIFsuLi52YWxpZGF0ZUl0ZXJhYmxlKGZsYXR0ZW4oYXN0KSldOworfQorCisKKy8qKiov
IH0pCisvKioqKioqLyBdKTsKK30pOworLy8jIHNvdXJjZU1hcHBpbmdVUkw9d2ViaWRsMi5qcy5t
YXAKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9jbGllbnRzLW1hdGNoYWxsLWZyb3plbi5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9jbGllbnRzLW1hdGNoYWxsLWZyb3plbi5odHRwcy1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNmVmNTJkNTUwYjNhOThiZWVkNDA5NWI2MjhjYWVhY2IwZDE2YWM3NgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsaWVudHMtbWF0Y2hhbGwtZnJvemVuLmh0
dHBzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworRkFJTCBUZXN0IENsaWVudHMubWF0
Y2hBbGwoKSBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2Jq
ZWN0ICJUeXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzIgorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9jbGllbnRzLW1hdGNoYWxsLWZyb3plbi5odHRwcy5odG1sIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvY2xpZW50cy1tYXRjaGFsbC1mcm96ZW4uaHR0cHMuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5lZjI3YWMzZDM3MmU1ZDQwZmI1NzZlMmI1OTAyMDAyNmRmOGI2NmJjCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xpZW50cy1tYXRjaGFsbC1mcm96ZW4uaHR0cHMuaHRt
bApAQCAtMCwwICsxLDEwMyBAQAorPCFET0NUWVBFIGh0bWw+Cis8dGl0bGU+U2VydmljZSBXb3Jr
ZXI6IENsaWVudHMubWF0Y2hBbGw8L3RpdGxlPgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVz
dGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5l
c3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy90ZXN0LWhlbHBl
cnMuc3ViLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+Cit2YXIgc2NvcGUgPSAncmVzb3VyY2VzL2Ns
aWVudHMtZnJhbWUtZnJlZXplLmh0bWwnOwordmFyIHdpbmRvd3MgPSBbXTsKK3ZhciBleHBlY3Rl
ZF93aW5kb3dfMSA9CisgICAge3Zpc2liaWxpdHlTdGF0ZTogJ3Zpc2libGUnLCBmb2N1c2VkOiBm
YWxzZSwgbGlmZWN5Y2xlU3RhdGU6ICJmcm96ZW4iLCB1cmw6IG5ldyBVUkwoc2NvcGUgKyAnIzEn
LCBsb2NhdGlvbikudG9TdHJpbmcoKSwgdHlwZTogJ3dpbmRvdycsIGZyYW1lVHlwZTogJ3RvcC1s
ZXZlbCd9OwordmFyIGV4cGVjdGVkX3dpbmRvd18yID0KKyAgICB7dmlzaWJpbGl0eVN0YXRlOiAn
dmlzaWJsZScsIGZvY3VzZWQ6IGZhbHNlLCBsaWZlY3ljbGVTdGF0ZTogImFjdGl2ZSIsIHVybDog
bmV3IFVSTChzY29wZSArICcjMicsIGxvY2F0aW9uKS50b1N0cmluZygpLCB0eXBlOiAnd2luZG93
JywgZnJhbWVUeXBlOiAndG9wLWxldmVsJ307CitmdW5jdGlvbiB3aXRoX3dpbmRvdyh1cmwsIG5h
bWUpIHsKKyAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUpIHsKKyAgICB2YXIg
Y2hpbGQgPSB3aW5kb3cub3Blbih1cmwsIG5hbWUpOworICAgIHdpbmRvdy5vbm1lc3NhZ2UgPSAo
KSA9PiB7cmVzb2x2ZShjaGlsZCl9OworICB9KTsKK30KKworcHJvbWlzZV90ZXN0KGZ1bmN0aW9u
KHQpIHsKKyAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIo
CisgICAgICAgIHQsICdyZXNvdXJjZXMvY2xpZW50cy1tYXRjaGFsbC13b3JrZXIuanMnLCBzY29w
ZSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKHJlZ2lzdHJhdGlvbikgeworICAgICAgICAgIHQuYWRk
X2NsZWFudXAoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgIHJldHVybiBzZXJ2aWNlX3dvcmtl
cl91bnJlZ2lzdGVyKHQsIHNjb3BlKTsKKyAgICAgICAgICAgIH0pOworCisgICAgICAgICAgcmV0
dXJuIHdhaXRfZm9yX3N0YXRlKHQsIHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLCAnYWN0aXZhdGVk
Jyk7CisgICAgICAgIH0pCisgICAgICAudGhlbihmdW5jdGlvbigpIHsgcmV0dXJuIHdpdGhfd2lu
ZG93KHNjb3BlICsgJyMxJywgJ0NoaWxkIDEnKTsgfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKHdp
bmRvdzEpIHsKKyAgICAgICAgICB3aW5kb3dzLnB1c2god2luZG93MSk7CisgICAgICAgICAgcmV0
dXJuIHdpdGhfd2luZG93KHNjb3BlICsgJyMyJywgJ0NoaWxkIDInKTsKKyAgICAgICAgfSkKKyAg
ICAgIC50aGVuKGZ1bmN0aW9uKHdpbmRvdzIpIHsKKyAgICAgICAgICB3aW5kb3dzLnB1c2god2lu
ZG93Mik7CisgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUpIHsK
KyAgICAgICAgICAgICAgd2luZG93Lm9ubWVzc2FnZSA9IHJlc29sdmU7CisgICAgICAgICAgICAg
IHdpbmRvd3NbMF0ucG9zdE1lc3NhZ2UoJ2ZyZWV6ZScpOworICAgICAgICAgICAgfSk7CisgICAg
ICAgIH0pCisgICAgICAudGhlbihmdW5jdGlvbigpIHsKKyAgICAgICAgICB2YXIgY2hhbm5lbCA9
IG5ldyBNZXNzYWdlQ2hhbm5lbCgpOworCisgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1
bmN0aW9uKHJlc29sdmUpIHsKKyAgICAgICAgICAgICAgY2hhbm5lbC5wb3J0MS5vbm1lc3NhZ2Ug
PSByZXNvbHZlOworICAgICAgICAgICAgICB3aW5kb3dzWzFdLm5hdmlnYXRvci5zZXJ2aWNlV29y
a2VyLmNvbnRyb2xsZXIucG9zdE1lc3NhZ2UoCisgICAgICAgICAgICAgICAgICB7cG9ydDpjaGFu
bmVsLnBvcnQyLCBpbmNsdWRlTGlmZWN5Y2xlU3RhdGU6IHRydWV9LCBbY2hhbm5lbC5wb3J0Ml0p
OworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pCisgICAgICAudGhlbihmdW5jdGlvbihlKSB7
CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLmRhdGEubGVuZ3RoLCAxKTsKKyAgICAgICAgICBh
c3NlcnRfb2JqZWN0X2VxdWFscyhlLmRhdGFbMF0sIGV4cGVjdGVkX3dpbmRvd18yKTsKKyAgICAg
ICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKCkgeworICAgICAgICAgIHZhciBjaGFubmVsID0g
bmV3IE1lc3NhZ2VDaGFubmVsKCk7CisKKyAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVu
Y3Rpb24ocmVzb2x2ZSkgeworICAgICAgICAgICAgICBjaGFubmVsLnBvcnQxLm9ubWVzc2FnZSA9
IHJlc29sdmU7CisgICAgICAgICAgICAgIHdpbmRvd3NbMV0ubmF2aWdhdG9yLnNlcnZpY2VXb3Jr
ZXIuY29udHJvbGxlci5wb3N0TWVzc2FnZSgKKyAgICAgICAgICAgICAgICAgIHtwb3J0OmNoYW5u
ZWwucG9ydDIsIG9wdGlvbnM6IHtsaWZlY3ljbGVTdGF0ZTogImFsbCJ9LCBpbmNsdWRlTGlmZWN5
Y2xlU3RhdGU6IHRydWV9LCBbY2hhbm5lbC5wb3J0Ml0pOworICAgICAgICAgICAgfSk7CisgICAg
ICAgIH0pCisgICAgICAudGhlbihmdW5jdGlvbihlKSB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFs
cyhlLmRhdGEubGVuZ3RoLCAyKTsKKyAgICAgICAgICAvLyBObyBzcGVjaWZpYyBvcmRlciBpcyBy
ZXF1aXJlZCwgc28gc3VwcG9ydCBpbnZlcnNpb24uCisgICAgICAgICAgaWYgKGUuZGF0YVswXVsz
XSA9PSBuZXcgVVJMKHNjb3BlICsgJyMyJywgbG9jYXRpb24pKSB7CisgICAgICAgICAgICBhc3Nl
cnRfb2JqZWN0X2VxdWFscyhlLmRhdGFbMF0sIGV4cGVjdGVkX3dpbmRvd18yKTsKKyAgICAgICAg
ICAgIGFzc2VydF9vYmplY3RfZXF1YWxzKGUuZGF0YVsxXSwgZXhwZWN0ZWRfd2luZG93XzEpOwor
ICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBhc3NlcnRfb2JqZWN0X2VxdWFscyhlLmRh
dGFbMF0sIGV4cGVjdGVkX3dpbmRvd18xKTsKKyAgICAgICAgICAgIGFzc2VydF9vYmplY3RfZXF1
YWxzKGUuZGF0YVsxXSwgZXhwZWN0ZWRfd2luZG93XzIpOworICAgICAgICAgIH0KKyAgICAgICAg
fSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKCkgeworICAgICAgICAgIHZhciBjaGFubmVsID0gbmV3
IE1lc3NhZ2VDaGFubmVsKCk7CisKKyAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rp
b24ocmVzb2x2ZSkgeworICAgICAgICAgICAgICBjaGFubmVsLnBvcnQxLm9ubWVzc2FnZSA9IHJl
c29sdmU7CisgICAgICAgICAgICAgIHdpbmRvd3NbMV0ubmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIu
Y29udHJvbGxlci5wb3N0TWVzc2FnZSgKKyAgICAgICAgICAgICAgICAgIHtwb3J0OmNoYW5uZWwu
cG9ydDIsIG9wdGlvbnM6IHtsaWZlY3ljbGVTdGF0ZTogImZyb3plbiJ9LCBpbmNsdWRlTGlmZWN5
Y2xlU3RhdGU6IHRydWV9LCBbY2hhbm5lbC5wb3J0Ml0pOworICAgICAgICAgICAgfSk7CisgICAg
ICAgIH0pCisgICAgICAudGhlbihmdW5jdGlvbihlKSB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFs
cyhlLmRhdGEubGVuZ3RoLCAxKTsKKyAgICAgICAgICBhc3NlcnRfb2JqZWN0X2VxdWFscyhlLmRh
dGFbMF0sIGV4cGVjdGVkX3dpbmRvd18xKTsKKyAgICAgICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0
aW9uKCkgeworICAgICAgICAgIHZhciBjaGFubmVsID0gbmV3IE1lc3NhZ2VDaGFubmVsKCk7CisK
KyAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSkgeworICAgICAg
ICAgICAgICBjaGFubmVsLnBvcnQxLm9ubWVzc2FnZSA9IHJlc29sdmU7CisgICAgICAgICAgICAg
IHdpbmRvd3NbMV0ubmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuY29udHJvbGxlci5wb3N0TWVzc2Fn
ZSgKKyAgICAgICAgICAgICAgICAgIHtwb3J0OmNoYW5uZWwucG9ydDIsIG9wdGlvbnM6IHtsaWZl
Y3ljbGVTdGF0ZTogImFjdGl2ZSJ9LCBpbmNsdWRlTGlmZWN5Y2xlU3RhdGU6IHRydWV9LCBbY2hh
bm5lbC5wb3J0Ml0pOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pCisgICAgICAudGhlbihm
dW5jdGlvbihlKSB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLmRhdGEubGVuZ3RoLCAxKTsK
KyAgICAgICAgICBhc3NlcnRfb2JqZWN0X2VxdWFscyhlLmRhdGFbMF0sIGV4cGVjdGVkX3dpbmRv
d18yKTsKKyAgICAgIH0pOworfSwgJ1Rlc3QgQ2xpZW50cy5tYXRjaEFsbCgpJyk7CisKKzwvc2Ny
aXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtY29ycy14aHIuaHR0cHMt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtY29ycy14aHIuaHR0cHMtZXhw
ZWN0ZWQudHh0CmluZGV4IDExYjE3NGEyYzkwNjAyOWVjYzc5ZTgxZDVlOTE2M2NkY2EzNmI5MDQu
LmI1NmZhZTZhZTgwNjIyNDRiMDBiYzAyOGQ5OTQwNTc3MWY1MDhkMmEgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL2ZldGNoLWNvcnMteGhyLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1jb3JzLXhoci5odHRwcy1leHBlY3RlZC50eHQKQEAgLTEs
NDcgKzEsMyBAQAotQ09OU09MRSBNRVNTQUdFOiBGZXRjaEV2ZW50LnJlc3BvbmRXaXRoIHJlY2Vp
dmVkIGFuIGVycm9yOiB1bmRlZmluZWQKLUNPTlNPTEUgTUVTU0FHRTogWE1MSHR0cFJlcXVlc3Qg
Y2Fubm90IGxvYWQgaHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0My9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWFjY2Vzcy1jb250cm9sLnB5P3JlamVjdC4KLUNPTlNP
TEUgTUVTU0FHRTogRmV0Y2hFdmVudC5yZXNwb25kV2l0aCByZWNlaXZlZCBhbiBlcnJvcjogdW5k
ZWZpbmVkCi1DT05TT0xFIE1FU1NBR0U6IFhNTEh0dHBSZXF1ZXN0IGNhbm5vdCBsb2FkIGh0dHBz
Oi8vbG9jYWxob3N0Ojk0NDMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNl
cy9mZXRjaC1hY2Nlc3MtY29udHJvbC5weT9yZWplY3QuCi1DT05TT0xFIE1FU1NBR0U6IEZldGNo
RXZlbnQucmVzcG9uZFdpdGggcmVjZWl2ZWQgYW4gZXJyb3I6IHVuZGVmaW5lZAotQ09OU09MRSBN
RVNTQUdFOiBYTUxIdHRwUmVxdWVzdCBjYW5ub3QgbG9hZCBodHRwczovLzEyNy4wLjAuMTo5NDQz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtYWNjZXNzLWNv
bnRyb2wucHk/cmVqZWN0LgotQ09OU09MRSBNRVNTQUdFOiBGZXRjaEV2ZW50LnJlc3BvbmRXaXRo
IHJlY2VpdmVkIGFuIGVycm9yOiB1bmRlZmluZWQKLUNPTlNPTEUgTUVTU0FHRTogWE1MSHR0cFJl
cXVlc3QgY2Fubm90IGxvYWQgaHR0cHM6Ly8xMjcuMC4wLjE6OTQ0My9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWFjY2Vzcy1jb250cm9sLnB5P3JlamVjdC4K
LUNPTlNPTEUgTUVTU0FHRTogT3JpZ2luIGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMgaXMgbm90IGFs
bG93ZWQgYnkgQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luLgotQ09OU09MRSBNRVNTQUdFOiBY
TUxIdHRwUmVxdWVzdCBjYW5ub3QgbG9hZCBodHRwczovLzEyNy4wLjAuMTo5NDQzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtYWNjZXNzLWNvbnRyb2wucHk/
dGhyb3cgZHVlIHRvIGFjY2VzcyBjb250cm9sIGNoZWNrcy4KLUNPTlNPTEUgTUVTU0FHRTogT3Jp
Z2luIGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMgaXMgbm90IGFsbG93ZWQgYnkgQWNjZXNzLUNvbnRy
b2wtQWxsb3ctT3JpZ2luLgotQ09OU09MRSBNRVNTQUdFOiBYTUxIdHRwUmVxdWVzdCBjYW5ub3Qg
bG9hZCBodHRwczovLzEyNy4wLjAuMTo5NDQzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9yZXNvdXJjZXMvZmV0Y2gtYWNjZXNzLWNvbnRyb2wucHk/dGhyb3cgZHVlIHRvIGFjY2VzcyBj
b250cm9sIGNoZWNrcy4KLUNPTlNPTEUgTUVTU0FHRTogRmV0Y2hFdmVudC5yZXNwb25kV2l0aCBy
ZWNlaXZlZCBhbiBlcnJvcjogUmV0dXJuZWQgcmVzcG9uc2UgaXMgbnVsbC4KLUNPTlNPTEUgTUVT
U0FHRTogWE1MSHR0cFJlcXVlc3QgY2Fubm90IGxvYWQgaHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0My9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWFjY2Vzcy1jb250
cm9sLnB5P3Jlc29sdmUtbnVsbC4KLUNPTlNPTEUgTUVTU0FHRTogRmV0Y2hFdmVudC5yZXNwb25k
V2l0aCByZWNlaXZlZCBhbiBlcnJvcjogUmV0dXJuZWQgcmVzcG9uc2UgaXMgbnVsbC4KLUNPTlNP
TEUgTUVTU0FHRTogWE1MSHR0cFJlcXVlc3QgY2Fubm90IGxvYWQgaHR0cHM6Ly9sb2NhbGhvc3Q6
OTQ0My9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWFjY2Vz
cy1jb250cm9sLnB5P3Jlc29sdmUtbnVsbC4KLUNPTlNPTEUgTUVTU0FHRTogRmV0Y2hFdmVudC5y
ZXNwb25kV2l0aCByZWNlaXZlZCBhbiBlcnJvcjogUmV0dXJuZWQgcmVzcG9uc2UgaXMgbnVsbC4K
LUNPTlNPTEUgTUVTU0FHRTogWE1MSHR0cFJlcXVlc3QgY2Fubm90IGxvYWQgaHR0cHM6Ly8xMjcu
MC4wLjE6OTQ0My9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNo
LWFjY2Vzcy1jb250cm9sLnB5P3Jlc29sdmUtbnVsbC4KLUNPTlNPTEUgTUVTU0FHRTogRmV0Y2hF
dmVudC5yZXNwb25kV2l0aCByZWNlaXZlZCBhbiBlcnJvcjogUmV0dXJuZWQgcmVzcG9uc2UgaXMg
bnVsbC4KLUNPTlNPTEUgTUVTU0FHRTogWE1MSHR0cFJlcXVlc3QgY2Fubm90IGxvYWQgaHR0cHM6
Ly8xMjcuMC4wLjE6OTQ0My9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2Vz
L2ZldGNoLWFjY2Vzcy1jb250cm9sLnB5P3Jlc29sdmUtbnVsbC4KLUNPTlNPTEUgTUVTU0FHRTog
T3JpZ2luIGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMgaXMgbm90IGFsbG93ZWQgYnkgQWNjZXNzLUNv
bnRyb2wtQWxsb3ctT3JpZ2luLgotQ09OU09MRSBNRVNTQUdFOiBYTUxIdHRwUmVxdWVzdCBjYW5u
b3QgbG9hZCBodHRwczovLzEyNy4wLjAuMTo5NDQzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9yZXNvdXJjZXMvZmV0Y2gtYWNjZXNzLWNvbnRyb2wucHk/aWdub3JlIGR1ZSB0byBhY2Nl
c3MgY29udHJvbCBjaGVja3MuCi1DT05TT0xFIE1FU1NBR0U6IE9yaWdpbiBodHRwczovL2xvY2Fs
aG9zdDo5NDQzIGlzIG5vdCBhbGxvd2VkIGJ5IEFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbi4K
LUNPTlNPTEUgTUVTU0FHRTogWE1MSHR0cFJlcXVlc3QgY2Fubm90IGxvYWQgaHR0cHM6Ly8xMjcu
MC4wLjE6OTQ0My9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNo
LWFjY2Vzcy1jb250cm9sLnB5P2lnbm9yZSBkdWUgdG8gYWNjZXNzIGNvbnRyb2wgY2hlY2tzLgot
Q09OU09MRSBNRVNTQUdFOiBDcmVkZW50aWFscyBmbGFnIGlzIHRydWUsIGJ1dCBBY2Nlc3MtQ29u
dHJvbC1BbGxvdy1DcmVkZW50aWFscyBpcyBub3QgInRydWUiLgotQ09OU09MRSBNRVNTQUdFOiBY
TUxIdHRwUmVxdWVzdCBjYW5ub3QgbG9hZCBodHRwczovLzEyNy4wLjAuMTo5NDQzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtYWNjZXNzLWNvbnRyb2wucHk/
QUNBT3JpZ2luPWh0dHBzOi8vbG9jYWxob3N0Ojk0NDMmaWdub3JlIGR1ZSB0byBhY2Nlc3MgY29u
dHJvbCBjaGVja3MuCi1DT05TT0xFIE1FU1NBR0U6IE9yaWdpbiBodHRwczovL2xvY2FsaG9zdDo5
NDQzIGlzIG5vdCBhbGxvd2VkIGJ5IEFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbi4KLUNPTlNP
TEUgTUVTU0FHRTogWE1MSHR0cFJlcXVlc3QgY2Fubm90IGxvYWQgaHR0cHM6Ly8xMjcuMC4wLjE6
OTQ0My9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWFjY2Vz
cy1jb250cm9sLnB5P0F1dGgmaWdub3JlIGR1ZSB0byBhY2Nlc3MgY29udHJvbCBjaGVja3MuCi1D
T05TT0xFIE1FU1NBR0U6IE9yaWdpbiBodHRwczovL2xvY2FsaG9zdDo5NDQzIGlzIG5vdCBhbGxv
d2VkIGJ5IEFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbi4KLUNPTlNPTEUgTUVTU0FHRTogWE1M
SHR0cFJlcXVlc3QgY2Fubm90IGxvYWQgaHR0cHM6Ly8xMjcuMC4wLjE6OTQ0My9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWFjY2Vzcy1jb250cm9sLnB5P0F1
dGgmaWdub3JlIGR1ZSB0byBhY2Nlc3MgY29udHJvbCBjaGVja3MuCi1DT05TT0xFIE1FU1NBR0U6
IENyZWRlbnRpYWxzIGZsYWcgaXMgdHJ1ZSwgYnV0IEFjY2Vzcy1Db250cm9sLUFsbG93LUNyZWRl
bnRpYWxzIGlzIG5vdCAidHJ1ZSIuCi1DT05TT0xFIE1FU1NBR0U6IFhNTEh0dHBSZXF1ZXN0IGNh
bm5vdCBsb2FkIGh0dHBzOi8vMTI3LjAuMC4xOjk0NDMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL3Jlc291cmNlcy9mZXRjaC1hY2Nlc3MtY29udHJvbC5weT9BdXRoJkFDQU9yaWdpbj1o
dHRwczovL2xvY2FsaG9zdDo5NDQzJmlnbm9yZSBkdWUgdG8gYWNjZXNzIGNvbnRyb2wgY2hlY2tz
LgotQ09OU09MRSBNRVNTQUdFOiBSZXNwb25zZSBzZXJ2ZWQgYnkgc2VydmljZSB3b3JrZXIgaXMg
b3BhcXVlCi1DT05TT0xFIE1FU1NBR0U6IFhNTEh0dHBSZXF1ZXN0IGNhbm5vdCBsb2FkIGh0dHBz
Oi8vMTI3LjAuMC4xOjk0NDMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNl
cy9mZXRjaC1hY2Nlc3MtY29udHJvbC5weSBkdWUgdG8gYWNjZXNzIGNvbnRyb2wgY2hlY2tzLgot
Q09OU09MRSBNRVNTQUdFOiBSZXNwb25zZSBzZXJ2ZWQgYnkgc2VydmljZSB3b3JrZXIgaXMgb3Bh
cXVlCi1DT05TT0xFIE1FU1NBR0U6IFhNTEh0dHBSZXF1ZXN0IGNhbm5vdCBsb2FkIGh0dHBzOi8v
MTI3LjAuMC4xOjk0NDMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9m
ZXRjaC1hY2Nlc3MtY29udHJvbC5weSBkdWUgdG8gYWNjZXNzIGNvbnRyb2wgY2hlY2tzLgotQ09O
U09MRSBNRVNTQUdFOiBSZXNwb25zZSBzZXJ2ZWQgYnkgc2VydmljZSB3b3JrZXIgaXMgb3BhcXVl
Ci1DT05TT0xFIE1FU1NBR0U6IFhNTEh0dHBSZXF1ZXN0IGNhbm5vdCBsb2FkIGh0dHBzOi8vMTI3
LjAuMC4xOjk0NDMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRj
aC1hY2Nlc3MtY29udHJvbC5weSBkdWUgdG8gYWNjZXNzIGNvbnRyb2wgY2hlY2tzLgotQ09OU09M
RSBNRVNTQUdFOiBSZXNwb25zZSBzZXJ2ZWQgYnkgc2VydmljZSB3b3JrZXIgaXMgb3BhcXVlCi1D
T05TT0xFIE1FU1NBR0U6IFhNTEh0dHBSZXF1ZXN0IGNhbm5vdCBsb2FkIGh0dHBzOi8vMTI3LjAu
MC4xOjk0NDMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1h
Y2Nlc3MtY29udHJvbC5weSBkdWUgdG8gYWNjZXNzIGNvbnRyb2wgY2hlY2tzLgotQ09OU09MRSBN
RVNTQUdFOiBGZXRjaEV2ZW50LnJlc3BvbmRXaXRoIHJlY2VpdmVkIGFuIGVycm9yOiBUeXBlRXJy
b3I6IENyZWRlbnRpYWxzIGZsYWcgaXMgdHJ1ZSwgYnV0IEFjY2Vzcy1Db250cm9sLUFsbG93LUNy
ZWRlbnRpYWxzIGlzIG5vdCAidHJ1ZSIuCi1DT05TT0xFIE1FU1NBR0U6IFhNTEh0dHBSZXF1ZXN0
IGNhbm5vdCBsb2FkIGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1hY2Nlc3MtY29udHJvbC5weT9tb2RlPWNvcnMmdXJs
PWh0dHBzJTNBJTJGJTJGMTI3LjAuMC4xJTNBOTQ0MyUyRnNlcnZpY2Utd29ya2VycyUyRnNlcnZp
Y2Utd29ya2VyJTJGcmVzb3VyY2VzJTJGZmV0Y2gtYWNjZXNzLWNvbnRyb2wucHklM0ZBQ0FPcmln
aW4lM0RodHRwcyUzQSUyRiUyRmxvY2FsaG9zdCUzQTk0NDMuCi1DT05TT0xFIE1FU1NBR0U6IEZl
dGNoRXZlbnQucmVzcG9uZFdpdGggcmVjZWl2ZWQgYW4gZXJyb3I6IFR5cGVFcnJvcjogQ3JlZGVu
dGlhbHMgZmxhZyBpcyB0cnVlLCBidXQgQWNjZXNzLUNvbnRyb2wtQWxsb3ctQ3JlZGVudGlhbHMg
aXMgbm90ICJ0cnVlIi4KLUNPTlNPTEUgTUVTU0FHRTogWE1MSHR0cFJlcXVlc3QgY2Fubm90IGxv
YWQgaHR0cHM6Ly8xMjcuMC4wLjE6OTQ0My9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
cmVzb3VyY2VzL2ZldGNoLWFjY2Vzcy1jb250cm9sLnB5P21vZGU9Y29ycyZ1cmw9aHR0cHMlM0El
MkYlMkYxMjcuMC4wLjElM0E5NDQzJTJGc2VydmljZS13b3JrZXJzJTJGc2VydmljZS13b3JrZXIl
MkZyZXNvdXJjZXMlMkZmZXRjaC1hY2Nlc3MtY29udHJvbC5weSUzRkFDQU9yaWdpbiUzRGh0dHBz
JTNBJTJGJTJGbG9jYWxob3N0JTNBOTQ0My4KIAogUEFTUyBWZXJpZnkgQ09SUyBYSFIgb2YgZmV0
Y2goKSBpbiBhIFNlcnZpY2UgV29ya2VyIAogUEFTUyB0ZXN0IDE6IGh0dHBzOi8vbG9jYWxob3N0
Ojk0NDMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1hY2Nl
c3MtY29udHJvbC5weT9yZWplY3Qgd2l0aCBjcmVkZW50aWFscyBmYWxzZSBtdXN0IGJlIEZBSUwg
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1ldmVudC13aXRoaW4tc3cuaHR0
cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWV2ZW50LXdpdGhpbi1zdy5odHRwcy5o
dG1sCmluZGV4IGM3M2FiYzRjOThjMDg3MWUzMDIxZTY2MDUzMTFiYTRiMWQ3YTg4OWIuLjhhNTY3
ZmQ3YTkzZjg1NTI0MTJjZmZmNjU3Nzg5YzUzNzVlYmE5NzEgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL2ZldGNoLWV2ZW50LXdpdGhpbi1zdy5odHRwcy5odG1sCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL2ZldGNoLWV2ZW50LXdpdGhpbi1zdy5odHRwcy5odG1sCkBAIC0xLDc5ICsxLDUz
IEBACiA8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9Imxvbmci
PgogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgogPHNj
cmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9Ii9jb21tb24vZ2V0LWhvc3QtaW5mby5zdWIuanMiPjwvc2NyaXB0PgogPHNjcmlw
dCBzcmM9InJlc291cmNlcy90ZXN0LWhlbHBlcnMuc3ViLmpzIj48L3NjcmlwdD4KLTxib2R5Pgor
CiA8c2NyaXB0PgogY29uc3Qgd29ya2VyID0gJ3Jlc291cmNlcy9mZXRjaC1ldmVudC13aXRoaW4t
c3ctd29ya2VyLmpzJzsKIAotZnVuY3Rpb24gcmVzZXQoKSB7Ci0gIGZvciAoY29uc3QgaWZyYW1l
IG9mIFsuLi5kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcudGVzdC1pZnJhbWUnKV0pIHsKLSAg
ICBpZnJhbWUucmVtb3ZlKCk7Ci0gIH0KLSAgcmV0dXJuIG5hdmlnYXRvci5zZXJ2aWNlV29ya2Vy
LmdldFJlZ2lzdHJhdGlvbnMoKS50aGVuKHJlZ2lzdHJhdGlvbnMgPT4gewotICAgIHJldHVybiBQ
cm9taXNlLmFsbChyZWdpc3RyYXRpb25zLm1hcChyID0+IHIudW5yZWdpc3RlcigpKSk7Ci0gIH0p
LnRoZW4oKCkgPT4gY2FjaGVzLmtleXMoKSkudGhlbihjYWNoZUtleXMgPT4gewotICAgIHJldHVy
biBQcm9taXNlLmFsbChjYWNoZUtleXMubWFwKGMgPT4gY2FjaGVzLmRlbGV0ZShjKSkpOwotICB9
KTsKK2FzeW5jIGZ1bmN0aW9uIHJlZ2lzdGVyU3dBbmRPcGVuRnJhbWUodCkgeworICBjb25zdCBy
ZWdpc3RyYXRpb24gPSBhd2FpdCBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3RlcigKKyAg
ICAgIHdvcmtlciwgeyBzY29wZTogJ3Jlc291cmNlcy8nIH0pOworICB0LmFkZF9jbGVhbnVwKCgp
ID0+IHJlZ2lzdHJhdGlvbi51bnJlZ2lzdGVyKCkpOworICBhd2FpdCB3YWl0X2Zvcl9zdGF0ZSh0
LCByZWdpc3RyYXRpb24uaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOworCisgIGNvbnN0IGZyYW1l
ID0gYXdhaXQgd2l0aF9pZnJhbWUoJ3Jlc291cmNlcy9zaW1wbGUuaHRtbCcpOworICB0LmFkZF9j
bGVhbnVwKCgpID0+IGZyYW1lLnJlbW92ZSgpKTsKKyAgcmV0dXJuIGZyYW1lOwogfQogCi1hZGRf
Y29tcGxldGlvbl9jYWxsYmFjayhyZXNldCk7Cithc3luYyBmdW5jdGlvbiBkZWxldGVDYXNoZXMo
KSB7CisgIGNvbnN0IGNhY2hlS2V5cyA9IGF3YWl0IGNhY2hlcy5rZXlzKCk7CisgIGF3YWl0IFBy
b21pc2UuYWxsKGNhY2hlS2V5cy5tYXAoYyA9PiBjYWNoZXMuZGVsZXRlKGMpKSk7Cit9CiAKLWZ1
bmN0aW9uIHJlZ1JlYWR5KHJlZykgewotICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJl
amVjdCkgPT4gewotICAgIGlmIChyZWcuYWN0aXZlKSB7Ci0gICAgICByZXNvbHZlKCk7Ci0gICAg
ICByZXR1cm47Ci0gICAgfQotICAgIGNvbnN0IG5leHRXb3JrZXIgPSByZWcud2FpdGluZyB8fCBy
ZWcuaW5zdGFsbGluZzsKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgdC5hZGRfY2xlYW51
cChkZWxldGVDYXNoZXMpOwogCi0gICAgbmV4dFdvcmtlci5hZGRFdmVudExpc3RlbmVyKCdzdGF0
ZWNoYW5nZScsICgpID0+IHsKLSAgICAgIGlmIChuZXh0V29ya2VyLnN0YXRlID09ICdyZWR1bmRh
bnQnKSB7Ci0gICAgICAgIHJlamVjdChFcnJvcihgU2VydmljZSB3b3JrZXIgZmFpbGVkIHRvIGlu
c3RhbGxgKSk7Ci0gICAgICAgIHJldHVybjsKLSAgICAgIH0KLSAgICAgIGlmIChuZXh0V29ya2Vy
LnN0YXRlID09ICdhY3RpdmF0ZWQnKSB7Ci0gICAgICAgIHJlc29sdmUoKTsKLSAgICAgIH0KLSAg
ICB9KTsKLSAgfSk7Ci19CisgIGNvbnN0IGlmcmFtZSA9IGF3YWl0IHJlZ2lzdGVyU3dBbmRPcGVu
RnJhbWUodCk7CisgIGNvbnN0IGZldGNoVGV4dCA9CisgICAgICBhd2FpdCBpZnJhbWUuY29udGVu
dFdpbmRvdy5mZXRjaCgnZHVtbXkudHh0JykudGhlbihyID0+IHIudGV4dCgpKTsKIAotZnVuY3Rp
b24gcmVnaXN0ZXJTd0FuZE9wZW5GcmFtZSgpIHsKLSAgcmV0dXJuIHJlc2V0KCkudGhlbigoKSA9
PiBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3Rlcih3b3JrZXIsIHsgc2NvcGU6ICdyZXNv
dXJjZXMvJyB9KSkKLSAgICAudGhlbihyZWcgPT4gcmVnUmVhZHkocmVnKSkKLSAgICAudGhlbigo
KSA9PiB3aXRoX2lmcmFtZSgncmVzb3VyY2VzL3NpbXBsZS5odG1sJykpOwotfQorICBjb25zdCBj
YWNoZSA9IGF3YWl0IGlmcmFtZS5jb250ZW50V2luZG93LmNhY2hlcy5vcGVuKCd0ZXN0Jyk7Cisg
IGF3YWl0IGNhY2hlLmFkZCgnZHVtbXkudHh0Jyk7CiAKLXByb21pc2VfdGVzdCgoKSA9PiB7Ci0g
IHJldHVybiByZWdpc3RlclN3QW5kT3BlbkZyYW1lKCkudGhlbihpZnJhbWUgPT4gewotICAgIHJl
dHVybiBQcm9taXNlLmFsbChbCi0gICAgICBpZnJhbWUuY29udGVudFdpbmRvdy5mZXRjaCgnZHVt
bXkudHh0JykudGhlbihyID0+IHIudGV4dCgpKSwKLSAgICAgIGlmcmFtZS5jb250ZW50V2luZG93
LmNhY2hlcy5vcGVuKCd0ZXN0JykKLSAgICAgICAgLnRoZW4oY2FjaGUgPT4KLSAgICAgICAgICBj
YWNoZS5hZGQoJ2R1bW15LnR4dCcpLnRoZW4oKCkgPT4gY2FjaGUubWF0Y2goJ2R1bW15LnR4dCcp
KQotICAgICAgICApLnRoZW4ocmVzcG9uc2UgPT4gewotICAgICAgICAgIGlmICghcmVzcG9uc2Up
IHJldHVybiAnY2FjaGUgbWF0Y2ggZmFpbGVkJzsKLSAgICAgICAgICByZXR1cm4gcmVzcG9uc2Uu
dGV4dCgpOwotICAgICAgICB9KQotICAgIF0pCi0gIH0pLnRoZW4oKFtmZXRjaFRleHQsIGNhY2hl
VGV4dF0pID0+IHsKLSAgICBhc3NlcnRfZXF1YWxzKGZldGNoVGV4dCwgJ2ludGVyY2VwdGVkJywg
J2ZldGNoIGludGVyY2VwdGVkJyk7Ci0gICAgYXNzZXJ0X2VxdWFscyhjYWNoZVRleHQsICdpbnRl
cmNlcHRlZCcsICdjYWNoZS5hZGQgaW50ZXJjZXB0ZWQnKTsKLSAgfSk7CisgIGNvbnN0IHJlc3Bv
bnNlID0gYXdhaXQgY2FjaGUubWF0Y2goJ2R1bW15LnR4dCcpOworICBjb25zdCBjYWNoZVRleHQg
PSBhd2FpdCAocmVzcG9uc2UgPyByZXNwb25zZS50ZXh0KCkgOiAnY2FjaGUgbWF0Y2ggZmFpbGVk
Jyk7CisgIGFzc2VydF9lcXVhbHMoZmV0Y2hUZXh0LCAnaW50ZXJjZXB0ZWQnLCAnZmV0Y2ggaW50
ZXJjZXB0ZWQnKTsKKyAgYXNzZXJ0X2VxdWFscyhjYWNoZVRleHQsICdpbnRlcmNlcHRlZCcsICdj
YWNoZS5hZGQgaW50ZXJjZXB0ZWQnKTsKIH0sICdTZXJ2aWNlIHdvcmtlciBpbnRlcmNlcHRzIHJl
cXVlc3RzIGZyb20gd2luZG93Jyk7CiAKLXByb21pc2VfdGVzdCgoKSA9PiB7Ci0gIHJldHVybiBy
ZWdpc3RlclN3QW5kT3BlbkZyYW1lKCkudGhlbihpZnJhbWUgPT4gewotICAgIHJldHVybiBQcm9t
aXNlLmFsbChbCi0gICAgICBpZnJhbWUuY29udGVudFdpbmRvdy5mZXRjaCgnZHVtbXkudHh0LWlu
bmVyLWZldGNoJykudGhlbihyID0+IHIudGV4dCgpKSwKLSAgICAgIGlmcmFtZS5jb250ZW50V2lu
ZG93LmZldGNoKCdkdW1teS50eHQtaW5uZXItY2FjaGUnKS50aGVuKHIgPT4gci50ZXh0KCkpCi0g
ICAgXSkKLSAgfSkudGhlbigoW2ZldGNoVGV4dCwgY2FjaGVUZXh0XSkgPT4gewotICAgIGFzc2Vy
dF9lcXVhbHMoZmV0Y2hUZXh0LCAnSGVsbG8gd29ybGRcbicsICdmZXRjaCB3aXRoaW4gU1cgbm90
IGludGVyY2VwdGVkJyk7Ci0gICAgYXNzZXJ0X2VxdWFscyhjYWNoZVRleHQsICdIZWxsbyB3b3Js
ZFxuJywgJ2NhY2hlLmFkZCB3aXRoaW4gU1cgbm90IGludGVyY2VwdGVkJyk7Ci0gIH0pOwotfSwg
YFNlcnZpY2Ugd29ya2VyIGRvZXMgbm90IGludGVyY2VwdCBmZXRjaC9jYWNoZSByZXF1ZXN0cyB3
aXRoaW4gc2VydmljZSB3b3JrZXJgKTsKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgY29u
c3QgaWZyYW1lID0gYXdhaXQgcmVnaXN0ZXJTd0FuZE9wZW5GcmFtZSh0KTsKKyAgY29uc3QgW2Zl
dGNoVGV4dCwgY2FjaGVUZXh0XSA9IGF3YWl0IFByb21pc2UuYWxsKFsKKyAgICBpZnJhbWUuY29u
dGVudFdpbmRvdy5mZXRjaCgnZHVtbXkudHh0LWlubmVyLWZldGNoJykudGhlbihyID0+IHIudGV4
dCgpKSwKKyAgICBpZnJhbWUuY29udGVudFdpbmRvdy5mZXRjaCgnZHVtbXkudHh0LWlubmVyLWNh
Y2hlJykudGhlbihyID0+IHIudGV4dCgpKQorICBdKTsKKyAgYXNzZXJ0X2VxdWFscyhmZXRjaFRl
eHQsICdIZWxsbyB3b3JsZFxuJywgJ2ZldGNoIHdpdGhpbiBTVyBub3QgaW50ZXJjZXB0ZWQnKTsK
KyAgYXNzZXJ0X2VxdWFscyhjYWNoZVRleHQsICdIZWxsbyB3b3JsZFxuJywKKyAgICAgICAgICAg
ICAgICAnY2FjaGUuYWRkIHdpdGhpbiBTVyBub3QgaW50ZXJjZXB0ZWQnKTsKK30sICdTZXJ2aWNl
IHdvcmtlciBkb2VzIG5vdCBpbnRlcmNlcHQgZmV0Y2gvY2FjaGUgcmVxdWVzdHMgd2l0aGluIHNl
cnZpY2UgJyArCisgICAnd29ya2VyJyk7CiA8L3NjcmlwdD4KLTwvYm9keT4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL2dldHJlZ2lzdHJhdGlvbnMuaHR0cHMtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvZ2V0cmVnaXN0cmF0aW9ucy5odHRwcy1leHBlY3RlZC50eHQKaW5k
ZXggZjRiNTM0MGJkN2U1OGRlZTkzNjgyZmE3MTE2ZTNmMmZkOWY5YTVkNy4uYTNlNTc3YjRlMzM4
NDYyYWQxZDdkN2JlMTY2Mjc0ODlhNDNiZTBkYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvZ2V0cmVnaXN0cmF0aW9ucy5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvZ2V0cmVnaXN0cmF0aW9ucy5odHRwcy1leHBlY3RlZC50eHQKQEAgLTEsNCArMSw1IEBA
CiAKKwogUEFTUyByZWdpc3RyYXRpb25zIGFyZSBub3QgcmV0dXJuZWQgZm9sbG93aW5nIHVucmVn
aXN0ZXIgCiBQQVNTIFJlZ2lzdGVyIHRoZW4gZ2V0UmVnaXN0cmF0aW9ucyAKIFBBU1MgUmVnaXN0
ZXIgbXVsdGlwbGUgdGltZXMgdGhlbiBnZXRSZWdpc3RyYXRpb25zIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvZ2V0cmVnaXN0cmF0aW9ucy5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvZ2V0cmVnaXN0cmF0aW9ucy5odHRwcy5odG1sCmluZGV4IDExZGEyNzAzNmQwOTJjMmYy
YzZkNThkZjU3NmIyOWU5YmZiOTk1MzcuLjNlNDhkNWZlMzYxOGIzNjcxM2Q3MjRiNzFlNDAyNmVh
MjQ1NTNiZDQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2dldHJlZ2lzdHJhdGlvbnMu
aHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9nZXRyZWdpc3RyYXRpb25zLmh0dHBz
Lmh0bWwKQEAgLTgsMTc4ICs4LDEyMiBAQAogLy8gUHVyZ2UgdGhlIGV4aXN0aW5nIHJlZ2lzdHJh
dGlvbnMgZm9yIHRoZSBvcmlnaW4uCiAvLyBnZXRSZWdpc3RyYXRpb25zKCkgaXMgdXNlZCBpbiBv
cmRlciB0byBhdm9pZCBhZGRpbmcgYWRkaXRpb25hbCBjb21wbGV4aXR5CiAvLyBlLmcuIGFkZGlu
ZyBhbiBpbnRlcm5hbCBmdW5jdGlvbi4KLXByb21pc2VfdGVzdChmdW5jdGlvbigpIHsKLSAgICBy
ZXR1cm4gbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuZ2V0UmVnaXN0cmF0aW9ucygpCi0gICAgICAu
dGhlbihmdW5jdGlvbihyZWdpc3RyYXRpb25zKSB7Ci0gICAgICAgICAgcmV0dXJuIHJlZ2lzdHJh
dGlvbnMucmVkdWNlKGZ1bmN0aW9uKHNlcXVlbmNlLCByZWdpc3RyYXRpb24pIHsKLSAgICAgICAg
ICAgICAgcmV0dXJuIHNlcXVlbmNlLnRoZW4oZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgICAg
ICByZXR1cm4gcmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIoKTsKLSAgICAgICAgICAgICAgICB9KTsK
LSAgICAgICAgICAgIH0sIFByb21pc2UucmVzb2x2ZSgpKTsKLSAgICAgICAgfSkKLSAgICAgIC50
aGVuKGZ1bmN0aW9uKCkgewotICAgICAgICAgIHJldHVybiBuYXZpZ2F0b3Iuc2VydmljZVdvcmtl
ci5nZXRSZWdpc3RyYXRpb25zKCk7Ci0gICAgICAgIH0pCi0gICAgICAudGhlbihmdW5jdGlvbih2
YWx1ZSkgewotICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoCi0gICAgICAgICAgICB2YWx1
ZSwKLSAgICAgICAgICAgIFtdLAotICAgICAgICAgICAgJ2dldFJlZ2lzdHJhdGlvbnMgc2hvdWxk
IHJlc29sdmUgd2l0aCBhbiBlbXB0eSBhcnJheS4nKTsKLSAgICAgICAgfSk7Citwcm9taXNlX3Rl
c3QoYXN5bmMgKCkgPT4geworICBjb25zdCByZWdpc3RyYXRpb25zID0gYXdhaXQgbmF2aWdhdG9y
LnNlcnZpY2VXb3JrZXIuZ2V0UmVnaXN0cmF0aW9ucygpOworICBhd2FpdCBQcm9taXNlLmFsbChy
ZWdpc3RyYXRpb25zLm1hcChyID0+IHIudW5yZWdpc3RlcigpKSk7CisgIGNvbnN0IHZhbHVlID0g
YXdhaXQgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuZ2V0UmVnaXN0cmF0aW9ucygpOworICBhc3Nl
cnRfYXJyYXlfZXF1YWxzKAorICAgICAgdmFsdWUsIFtdLAorICAgICAgJ2dldFJlZ2lzdHJhdGlv
bnMgc2hvdWxkIHJlc29sdmUgd2l0aCBhbiBlbXB0eSBhcnJheS4nKTsKIH0sICdyZWdpc3RyYXRp
b25zIGFyZSBub3QgcmV0dXJuZWQgZm9sbG93aW5nIHVucmVnaXN0ZXInKTsKIAotcHJvbWlzZV90
ZXN0KGZ1bmN0aW9uKHQpIHsKLSAgICB2YXIgc2NvcGUgPSAncmVzb3VyY2VzL3Njb3BlL2dldHJl
Z2lzdHJhdGlvbnMvbm9ybWFsJzsKLSAgICB2YXIgc2NyaXB0ID0gJ3Jlc291cmNlcy9lbXB0eS13
b3JrZXIuanMnOwotICAgIHZhciByZWdpc3RyYXRpb25zID0gW107Ci0gICAgcmV0dXJuIHNlcnZp
Y2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHNjcmlwdCwgc2NvcGUpCi0gICAg
ICAudGhlbihmdW5jdGlvbihyKSB7Ci0gICAgICAgICAgcmVnaXN0cmF0aW9ucy5wdXNoKHIpOwot
ICAgICAgICAgIHJldHVybiBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5nZXRSZWdpc3RyYXRpb25z
KCk7Ci0gICAgICAgIH0pCi0gICAgICAudGhlbihmdW5jdGlvbih2YWx1ZSkgewotICAgICAgICAg
IGFzc2VydF9hcnJheV9lcXVhbHMoCi0gICAgICAgICAgICB2YWx1ZSwKLSAgICAgICAgICAgIHJl
Z2lzdHJhdGlvbnMsCi0gICAgICAgICAgICAnZ2V0UmVnaXN0cmF0aW9ucyBzaG91bGQgcmVzb2x2
ZSB3aXRoIGFycmF5IG9mIHJlZ2lzdHJhdGlvbnMuJyk7Ci0gICAgICAgICAgcmV0dXJuIHNlcnZp
Y2Vfd29ya2VyX3VucmVnaXN0ZXIodCwgc2NvcGUpOwotICAgICAgICB9KTsKLSAgfSwgJ1JlZ2lz
dGVyIHRoZW4gZ2V0UmVnaXN0cmF0aW9ucycpOworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewor
ICBjb25zdCBzY29wZSA9ICdyZXNvdXJjZXMvc2NvcGUvZ2V0cmVnaXN0cmF0aW9ucy9ub3JtYWwn
OworICBjb25zdCBzY3JpcHQgPSAncmVzb3VyY2VzL2VtcHR5LXdvcmtlci5qcyc7CisgIGNvbnN0
IHJlZ2lzdHJhdGlvbnMgPSBbCisgICAgICBhd2FpdCBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVy
X2FuZF9yZWdpc3Rlcih0LCBzY3JpcHQsIHNjb3BlKV07CisgIHQuYWRkX2NsZWFudXAoKCkgPT4g
cmVnaXN0cmF0aW9uc1swXS51bnJlZ2lzdGVyKCkpOworICBjb25zdCB2YWx1ZSA9IGF3YWl0IG5h
dmlnYXRvci5zZXJ2aWNlV29ya2VyLmdldFJlZ2lzdHJhdGlvbnMoKTsKKyAgYXNzZXJ0X2FycmF5
X2VxdWFscyh2YWx1ZSwgcmVnaXN0cmF0aW9ucywKKyAgICAgICdnZXRSZWdpc3RyYXRpb25zIHNo
b3VsZCByZXNvbHZlIHdpdGggYW4gYXJyYXkgb2YgcmVnaXN0cmF0aW9ucycpOworfSwgJ1JlZ2lz
dGVyIHRoZW4gZ2V0UmVnaXN0cmF0aW9ucycpOwogCi1wcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkg
ewotICAgIHZhciBzY29wZTEgPSAncmVzb3VyY2VzL3Njb3BlL2dldHJlZ2lzdHJhdGlvbnMvc2Nv
cGUxJzsKLSAgICB2YXIgc2NvcGUyID0gJ3Jlc291cmNlcy9zY29wZS9nZXRyZWdpc3RyYXRpb25z
L3Njb3BlMic7Ci0gICAgdmFyIHNjcmlwdCA9ICdyZXNvdXJjZXMvZW1wdHktd29ya2VyLmpzJzsK
LSAgICB2YXIgcmVnaXN0cmF0aW9ucyA9IFtdOwotICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91
bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCBzY3JpcHQsIHNjb3BlMSkKLSAgICAgIC50aGVuKGZ1
bmN0aW9uKHIpIHsKLSAgICAgICAgICByZWdpc3RyYXRpb25zLnB1c2gocik7Ci0gICAgICAgICAg
cmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHNjcmlwdCwg
c2NvcGUyKTsKLSAgICAgICAgfSkKLSAgICAgIC50aGVuKGZ1bmN0aW9uKHIpIHsKLSAgICAgICAg
ICByZWdpc3RyYXRpb25zLnB1c2gocik7Ci0gICAgICAgICAgcmV0dXJuIG5hdmlnYXRvci5zZXJ2
aWNlV29ya2VyLmdldFJlZ2lzdHJhdGlvbnMoKTsKLSAgICAgICAgfSkKLSAgICAgIC50aGVuKGZ1
bmN0aW9uKHZhbHVlKSB7Ci0gICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscygKLSAgICAgICAg
ICAgIHZhbHVlLAotICAgICAgICAgICAgcmVnaXN0cmF0aW9ucywKLSAgICAgICAgICAgICdnZXRS
ZWdpc3RyYXRpb25zIHNob3VsZCByZXNvbHZlIHdpdGggYXJyYXkgb2YgcmVnaXN0cmF0aW9ucy4n
KTsKLSAgICAgICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcih0LCBzY29wZTEp
OwotICAgICAgICB9KQotICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgcmV0dXJu
IHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXIodCwgc2NvcGUyKTsKLSAgICAgICAgfSk7Ci0gIH0s
ICdSZWdpc3RlciBtdWx0aXBsZSB0aW1lcyB0aGVuIGdldFJlZ2lzdHJhdGlvbnMnKTsKK3Byb21p
c2VfdGVzdChhc3luYyB0ID0+IHsKKyAgY29uc3Qgc2NvcGUxID0gJ3Jlc291cmNlcy9zY29wZS9n
ZXRyZWdpc3RyYXRpb25zL3Njb3BlMSc7CisgIGNvbnN0IHNjb3BlMiA9ICdyZXNvdXJjZXMvc2Nv
cGUvZ2V0cmVnaXN0cmF0aW9ucy9zY29wZTInOworICBjb25zdCBzY3JpcHQgPSAncmVzb3VyY2Vz
L2VtcHR5LXdvcmtlci5qcyc7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gc2VydmljZV93b3JrZXJf
dW5yZWdpc3Rlcih0LCBzY29wZTEpKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBzZXJ2aWNlX3dv
cmtlcl91bnJlZ2lzdGVyKHQsIHNjb3BlMikpOwogCi1wcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkg
ewotICAgIHZhciBzY29wZSA9ICdyZXNvdXJjZXMvc2NvcGUvZ2V0cmVnaXN0cmF0aW9ucy9yZWdp
c3Rlci11bnJlZ2lzdGVyJzsKLSAgICB2YXIgc2NyaXB0ID0gJ3Jlc291cmNlcy9lbXB0eS13b3Jr
ZXIuanMnOwotICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rl
cih0LCBzY3JpcHQsIHNjb3BlKQotICAgICAgLnRoZW4oZnVuY3Rpb24ocmVnaXN0cmF0aW9uKSB7
Ci0gICAgICAgICAgcmV0dXJuIHJlZ2lzdHJhdGlvbi51bnJlZ2lzdGVyKCk7Ci0gICAgICAgIH0p
Ci0gICAgICAudGhlbihmdW5jdGlvbigpIHsKLSAgICAgICAgICByZXR1cm4gbmF2aWdhdG9yLnNl
cnZpY2VXb3JrZXIuZ2V0UmVnaXN0cmF0aW9ucygpOwotICAgICAgICB9KQotICAgICAgLnRoZW4o
ZnVuY3Rpb24odmFsdWUpIHsKLSAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKAotICAgICAg
ICAgICAgdmFsdWUsCi0gICAgICAgICAgICBbXSwKLSAgICAgICAgICAgICdnZXRSZWdpc3RyYXRp
b25zIHNob3VsZCByZXNvbHZlIHdpdGggYW4gZW1wdHkgYXJyYXkuJyk7Ci0gICAgICAgIH0pOwot
ICB9LCAnUmVnaXN0ZXIgdGhlbiBVbnJlZ2lzdGVyIHRoZW4gZ2V0UmVnaXN0cmF0aW9ucycpOwor
ICBjb25zdCByZWdpc3RyYXRpb25zID0gWworICAgICAgYXdhaXQgc2VydmljZV93b3JrZXJfdW5y
ZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgc2NyaXB0LCBzY29wZTEpLAorICAgICAgYXdhaXQgc2Vy
dmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgc2NyaXB0LCBzY29wZTIpCisg
IF07CisgIGNvbnN0IHZhbHVlID0gYXdhaXQgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuZ2V0UmVn
aXN0cmF0aW9ucygpOworICBhc3NlcnRfYXJyYXlfZXF1YWxzKHZhbHVlLCByZWdpc3RyYXRpb25z
KTsKK30sICdSZWdpc3RlciBtdWx0aXBsZSB0aW1lcyB0aGVuIGdldFJlZ2lzdHJhdGlvbnMnKTsK
IAotcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKLSAgICB2YXIgc2NvcGUgPSAncmVzb3VyY2Vz
L3Njb3BlL2dldHJlZ2lzdHJhdGlvbnMvcmVnaXN0ZXItdW5yZWdpc3Rlci1jb250cm9sbGVkJzsK
LSAgICB2YXIgc2NyaXB0ID0gJ3Jlc291cmNlcy9lbXB0eS13b3JrZXIuanMnOwotICAgIHZhciBy
ZWdpc3RyYXRpb25zOwotICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9y
ZWdpc3Rlcih0LCBzY3JpcHQsIHNjb3BlKQotICAgICAgLnRoZW4oZnVuY3Rpb24ocikgewotICAg
ICAgICAgIHJlZ2lzdHJhdGlvbiA9IHI7Ci0gICAgICAgICAgcmV0dXJuIHdhaXRfZm9yX3N0YXRl
KHQsIHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7Ci0gICAgICAgIH0pCi0g
ICAgICAudGhlbihmdW5jdGlvbigpIHsKLSAgICAgICAgICByZXR1cm4gd2l0aF9pZnJhbWUoc2Nv
cGUpOwotICAgICAgICB9KQotICAgICAgLnRoZW4oZnVuY3Rpb24oZikgewotICAgICAgICAgIHQu
YWRkX2NsZWFudXAoZnVuY3Rpb24oKSB7IGYucmVtb3ZlKCk7IH0pOwotICAgICAgICAgIHJldHVy
biByZWdpc3RyYXRpb24udW5yZWdpc3RlcigpOwotICAgICAgICB9KQotICAgICAgLnRoZW4oZnVu
Y3Rpb24oKSB7Ci0gICAgICAgICAgcmV0dXJuIG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLmdldFJl
Z2lzdHJhdGlvbnMoKTsKLSAgICAgICAgfSkKLSAgICAgIC50aGVuKGZ1bmN0aW9uKHZhbHVlKSB7
Ci0gICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscygKLSAgICAgICAgICAgIHZhbHVlLAotICAg
ICAgICAgICAgW10sCi0gICAgICAgICAgICAnZ2V0UmVnaXN0cmF0aW9ucyBzaG91bGQgcmVzb2x2
ZSB3aXRoIGFuIGVtcHR5IGFycmF5LicpOwotICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVnaXN0
cmF0aW9uLmluc3RhbGxpbmcsIG51bGwpOwotICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVnaXN0
cmF0aW9uLndhaXRpbmcsIG51bGwpOwotICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVnaXN0cmF0
aW9uLmFjdGl2ZS5zdGF0ZSwgJ2FjdGl2YXRlZCcpOwotICAgICAgICB9KTsKLSAgfSwgJ1JlZ2lz
dGVyIHRoZW4gVW5yZWdpc3RlciB3aXRoIGNvbnRyb2xsZWQgZnJhbWUgdGhlbiBnZXRSZWdpc3Ry
YXRpb25zJyk7Citwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0IHNjb3BlID0gJ3Jl
c291cmNlcy9zY29wZS9nZXRyZWdpc3RyYXRpb25zL3JlZ2lzdGVyLXVucmVnaXN0ZXInOworICBj
b25zdCBzY3JpcHQgPSAncmVzb3VyY2VzL2VtcHR5LXdvcmtlci5qcyc7CisgIGNvbnN0IHJlZ2lz
dHJhdGlvbiA9IGF3YWl0IHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQs
IHNjcmlwdCwgc2NvcGUpOworICBhd2FpdCByZWdpc3RyYXRpb24udW5yZWdpc3RlcigpOworICBj
b25zdCB2YWx1ZSA9IGF3YWl0IG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLmdldFJlZ2lzdHJhdGlv
bnMoKTsKKyAgYXNzZXJ0X2FycmF5X2VxdWFscygKKyAgICAgIHZhbHVlLCBbXSwgJ2dldFJlZ2lz
dHJhdGlvbnMgc2hvdWxkIHJlc29sdmUgd2l0aCBhbiBlbXB0eSBhcnJheS4nKTsKK30sICdSZWdp
c3RlciB0aGVuIFVucmVnaXN0ZXIgdGhlbiBnZXRSZWdpc3RyYXRpb25zJyk7CiAKLXByb21pc2Vf
dGVzdChmdW5jdGlvbih0KSB7Ci0gICAgdmFyIGhvc3RfaW5mbyA9IGdldF9ob3N0X2luZm8oKTsK
LSAgICAvLyBSZXdyaXRlIHRoZSB1cmwgdG8gcG9pbnQgdG8gcmVtb3RlIG9yaWdpbi4KLSAgICB2
YXIgZnJhbWVfc2FtZV9vcmlnaW5fdXJsID0gbmV3IFVSTCgicmVzb3VyY2VzL2ZyYW1lLWZvci1n
ZXRyZWdpc3RyYXRpb25zLmh0bWwiLCB3aW5kb3cubG9jYXRpb24pOwotICAgIHZhciBmcmFtZV91
cmwgPSBob3N0X2luZm9bJ0hUVFBTX1JFTU9URV9PUklHSU4nXSArIGZyYW1lX3NhbWVfb3JpZ2lu
X3VybC5wYXRobmFtZTsKLSAgICB2YXIgc2NvcGUgPSAncmVzb3VyY2VzL3Njb3BlLWZvci1nZXRy
ZWdpc3RyYXRpb25zJzsKLSAgICB2YXIgc2NyaXB0ID0gJ3Jlc291cmNlcy9lbXB0eS13b3JrZXIu
anMnOwotICAgIHZhciBmcmFtZTsKLSAgICB2YXIgcmVnaXN0cmF0aW9ucyA9IFtdOworcHJvbWlz
ZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25zdCBzY29wZSA9ICdyZXNvdXJjZXMvc2NvcGUvZ2V0
cmVnaXN0cmF0aW9ucy9yZWdpc3Rlci11bnJlZ2lzdGVyLWNvbnRyb2xsZWQnOworICBjb25zdCBz
Y3JpcHQgPSAncmVzb3VyY2VzL2VtcHR5LXdvcmtlci5qcyc7CisgIGNvbnN0IHJlZ2lzdHJhdGlv
biA9IGF3YWl0IHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHNjcmlw
dCwgc2NvcGUpOworICBhd2FpdCB3YWl0X2Zvcl9zdGF0ZSh0LCByZWdpc3RyYXRpb24uaW5zdGFs
bGluZywgJ2FjdGl2YXRlZCcpOwogCi0gICAgLy8gTG9hZHMgYW4gaWZyYW1lIGFuZCB3YWl0cyBm
b3IgJ3JlYWR5JyBtZXNzYWdlIGZyb20gaXQgdG8gcmVzb2x2ZSBwcm9taXNlLgotICAgIC8vIENh
bGxlciBpcyByZXNwb25zaWJsZSBmb3IgcmVtb3ZpbmcgZnJhbWUuCi0gICAgZnVuY3Rpb24gd2l0
aF9pZnJhbWVfcmVhZHkodXJsKSB7Ci0gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlv
bihyZXNvbHZlKSB7Ci0gICAgICAgICAgICB2YXIgZnJhbWUgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCdpZnJhbWUnKTsKLSAgICAgICAgICAgIGZyYW1lLnNyYyA9IHVybDsKLSAgICAgICAgICAg
IHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgZnVuY3Rpb24gb25NZXNzYWdlKGUp
IHsKLSAgICAgICAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCBv
bk1lc3NhZ2UpOwotICAgICAgICAgICAgICBpZiAoZS5kYXRhID09ICdyZWFkeScpIHsKLSAgICAg
ICAgICAgICAgICByZXNvbHZlKGZyYW1lKTsKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
fSk7Ci0gICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGZyYW1lKTsKLSAgICAg
ICAgfSk7Ci0gICAgfQorICAvLyBDcmVhdGUgYSBmcmFtZSBjb250cm9sbGVkIGJ5IHRoZSBzZXJ2
aWNlIHdvcmtlciBhbmQgdW5yZWdpc3RlciB0aGUKKyAgLy8gd29ya2VyLgorICBjb25zdCBmcmFt
ZSA9IGF3YWl0IHdpdGhfaWZyYW1lKHNjb3BlKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBmcmFt
ZS5yZW1vdmUoKSk7CisgIGF3YWl0IHJlZ2lzdHJhdGlvbi51bnJlZ2lzdGVyKCk7CiAKLSAgICAv
LyBXZSBuZWVkIHRoaXMgc3BlY2lhbCBmcmFtZSBsb2FkaW5nIGZ1bmN0aW9uIGJlY2F1c2UgdGhl
IGZyYW1lIGlzIGdvaW5nCi0gICAgLy8gdG8gcmVnaXN0ZXIgaXQncyBvd24gc2VydmljZSB3b3Jr
ZXIgYW5kIHRoZXJlIGlzIHRoZSBwb3NzaWJpbGl0eSB0aGF0IHRoYXQKLSAgICAvLyByZWdpc3Rl
cigpIGZpbmlzaGVzIGFmdGVyIHRoZSByZWdpc3RlcigpIGZvciB0aGUgc2FtZSBkb21haW4gbGF0
ZXIgaW4gdGhlCi0gICAgLy8gdGVzdC4gU28gd2UgaGF2ZSB0byB3YWl0IHVudGlsIHRoZSBjcm9z
cyBvcmlnaW4gcmVnaXN0ZXIoKSBpcyBkb25lLCBhbmQgbm90Ci0gICAgLy8ganVzdCB1bnRpbCB0
aGUgZnJhbWUgbG9hZHMuCi0gICAgcmV0dXJuIHdpdGhfaWZyYW1lX3JlYWR5KGZyYW1lX3VybCkK
LSAgICAgIC50aGVuKGZ1bmN0aW9uKGYpIHsKLSAgICAgICAgICB0LmFkZF9jbGVhbnVwKGZ1bmN0
aW9uKCkgeyBmLnJlbW92ZSgpOyB9KTsKLSAgICAgICAgICBmcmFtZSA9IGY7Ci0gICAgICAgICAg
cmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHNjcmlwdCwg
c2NvcGUpOwotICAgICAgICB9KQotICAgICAgLnRoZW4oZnVuY3Rpb24ocikgewotICAgICAgICAg
IHJlZ2lzdHJhdGlvbnMucHVzaChyKTsKLSAgICAgICAgICByZXR1cm4gbmF2aWdhdG9yLnNlcnZp
Y2VXb3JrZXIuZ2V0UmVnaXN0cmF0aW9ucygpOwotICAgICAgICB9KQotICAgICAgLnRoZW4oZnVu
Y3Rpb24odmFsdWUpIHsKLSAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKAotICAgICAgICAg
ICAgdmFsdWUsCi0gICAgICAgICAgICByZWdpc3RyYXRpb25zLAotICAgICAgICAgICAgJ2dldFJl
Z2lzdHJhdGlvbnMgc2hvdWxkIG9ubHkgcmV0dXJuIHNhbWUgb3JpZ2luIHJlZ2lzdHJhdGlvbnMu
Jyk7CisgIGNvbnN0IHZhbHVlID0gYXdhaXQgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuZ2V0UmVn
aXN0cmF0aW9ucygpOworICBhc3NlcnRfYXJyYXlfZXF1YWxzKAorICAgICAgdmFsdWUsIFtdLAor
ICAgICAgJ2dldFJlZ2lzdHJhdGlvbnMgc2hvdWxkIHJlc29sdmUgd2l0aCBhbiBlbXB0eSBhcnJh
eS4nKTsKKyAgYXNzZXJ0X2VxdWFscyhyZWdpc3RyYXRpb24uaW5zdGFsbGluZywgbnVsbCk7Cisg
IGFzc2VydF9lcXVhbHMocmVnaXN0cmF0aW9uLndhaXRpbmcsIG51bGwpOworICBhc3NlcnRfZXF1
YWxzKHJlZ2lzdHJhdGlvbi5hY3RpdmUuc3RhdGUsICdhY3RpdmF0ZWQnKTsKK30sICdSZWdpc3Rl
ciB0aGVuIFVucmVnaXN0ZXIgd2l0aCBjb250cm9sbGVkIGZyYW1lIHRoZW4gZ2V0UmVnaXN0cmF0
aW9ucycpOwogCi0gICAgICAgICAgdmFyIGNoYW5uZWwgPSBuZXcgTWVzc2FnZUNoYW5uZWwoKTsK
LSAgICAgICAgICB2YXIgcmVzb2x2ZTsKLSAgICAgICAgICB2YXIgcCA9IG5ldyBQcm9taXNlKGZ1
bmN0aW9uKHIpIHsgcmVzb2x2ZSA9IHI7IH0pOworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewor
ICBjb25zdCBob3N0X2luZm8gPSBnZXRfaG9zdF9pbmZvKCk7CisgIC8vIFJld3JpdGUgdGhlIHVy
bCB0byBwb2ludCB0byByZW1vdGUgb3JpZ2luLgorICBjb25zdCBmcmFtZV9zYW1lX29yaWdpbl91
cmwgPSBuZXcgVVJMKCJyZXNvdXJjZXMvZnJhbWUtZm9yLWdldHJlZ2lzdHJhdGlvbnMuaHRtbCIs
IHdpbmRvdy5sb2NhdGlvbik7CisgIGNvbnN0IGZyYW1lX3VybCA9IGhvc3RfaW5mb1snSFRUUFNf
UkVNT1RFX09SSUdJTiddICsgZnJhbWVfc2FtZV9vcmlnaW5fdXJsLnBhdGhuYW1lOworICBjb25z
dCBzY29wZSA9ICdyZXNvdXJjZXMvc2NvcGUtZm9yLWdldHJlZ2lzdHJhdGlvbnMnOworICBjb25z
dCBzY3JpcHQgPSAncmVzb3VyY2VzL2VtcHR5LXdvcmtlci5qcyc7CiAKLSAgICAgICAgICBjaGFu
bmVsLnBvcnQxLm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgIGlmIChlLmRh
dGEgPT0gJ3VucmVnaXN0ZXJlZCcpCi0gICAgICAgICAgICAgIHJlc29sdmUoKTsKLSAgICAgICAg
ICB9OwotICAgICAgICAgIGZyYW1lLmNvbnRlbnRXaW5kb3cucG9zdE1lc3NhZ2UoJ3VucmVnaXN0
ZXInLCAnKicsIFtjaGFubmVsLnBvcnQyXSk7Ci0gICAgICAgICAgcmV0dXJuIHA7Ci0gICAgICAg
IH0pCi0gICAgICAudGhlbihmdW5jdGlvbigpIHsKLSAgICAgICAgICByZXR1cm4gc2VydmljZV93
b3JrZXJfdW5yZWdpc3Rlcih0LCBzY29wZSk7Ci0gICAgICAgIH0pOwotICB9LCAnZ2V0UmVnaXN0
cmF0aW9ucyBwcm9taXNlIHJlc29sdmVzIG9ubHkgd2l0aCBzYW1lIG9yaWdpbiByZWdpc3RyYXRp
b25zLicpOworICAvLyBMb2FkcyBhbiBpZnJhbWUgYW5kIHdhaXRzIGZvciAncmVhZHknIG1lc3Nh
Z2UgZnJvbSBpdCB0byByZXNvbHZlIHByb21pc2UuCisgIC8vIENhbGxlciBpcyByZXNwb25zaWJs
ZSBmb3IgcmVtb3ZpbmcgZnJhbWUuCisgIGZ1bmN0aW9uIHdpdGhfaWZyYW1lX3JlYWR5KHVybCkg
eworICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4geworICAgICAgICAgIGNvbnN0
IGZyYW1lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaWZyYW1lJyk7CisgICAgICAgICAgZnJh
bWUuc3JjID0gdXJsOworICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdl
JywgZnVuY3Rpb24gb25NZXNzYWdlKGUpIHsKKyAgICAgICAgICAgIHdpbmRvdy5yZW1vdmVFdmVu
dExpc3RlbmVyKCdtZXNzYWdlJywgb25NZXNzYWdlKTsKKyAgICAgICAgICAgIGlmIChlLmRhdGEg
PT0gJ3JlYWR5JykgeworICAgICAgICAgICAgICByZXNvbHZlKGZyYW1lKTsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgICB9KTsKKyAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGZy
YW1lKTsKKyAgICAgIH0pOworICB9CisKKyAgLy8gV2UgbmVlZCB0aGlzIHNwZWNpYWwgZnJhbWUg
bG9hZGluZyBmdW5jdGlvbiBiZWNhdXNlIHRoZSBmcmFtZSBpcyBnb2luZworICAvLyB0byByZWdp
c3RlciBpdCdzIG93biBzZXJ2aWNlIHdvcmtlciBhbmQgdGhlcmUgaXMgdGhlIHBvc3NpYmlsaXR5
IHRoYXQgdGhhdAorICAvLyByZWdpc3RlcigpIGZpbmlzaGVzIGFmdGVyIHRoZSByZWdpc3Rlcigp
IGZvciB0aGUgc2FtZSBkb21haW4gbGF0ZXIgaW4gdGhlCisgIC8vIHRlc3QuIFNvIHdlIGhhdmUg
dG8gd2FpdCB1bnRpbCB0aGUgY3Jvc3Mgb3JpZ2luIHJlZ2lzdGVyKCkgaXMgZG9uZSwgYW5kIG5v
dAorICAvLyBqdXN0IHVudGlsIHRoZSBmcmFtZSBsb2Fkcy4KKyAgY29uc3QgZnJhbWUgPSBhd2Fp
dCB3aXRoX2lmcmFtZV9yZWFkeShmcmFtZV91cmwpOworICB0LmFkZF9jbGVhbnVwKGFzeW5jICgp
ID0+IHsKKyAgICAvLyBXYWl0IHVudGlsIHRoZSBjcm9zcy1vcmlnaW4gd29ya2VyIGlzIHVucmVn
aXN0ZXJlZC4KKyAgICBsZXQgcmVzb2x2ZTsKKyAgICBjb25zdCBjaGFubmVsID0gbmV3IE1lc3Nh
Z2VDaGFubmVsKCk7CisgICAgY2hhbm5lbC5wb3J0MS5vbm1lc3NhZ2UgPSBlID0+IHsKKyAgICAg
IGlmIChlLmRhdGEgPT0gJ3VucmVnaXN0ZXJlZCcpCisgICAgICAgIHJlc29sdmUoKTsKKyAgICB9
OworICAgIGZyYW1lLmNvbnRlbnRXaW5kb3cucG9zdE1lc3NhZ2UoJ3VucmVnaXN0ZXInLCAnKics
IFtjaGFubmVsLnBvcnQyXSk7CisgICAgYXdhaXQgbmV3IFByb21pc2UociA9PiB7IHJlc29sdmUg
PSByOyB9KTsKKworICAgIGZyYW1lLnJlbW92ZSgpOworICB9KTsKKworICBjb25zdCByZWdpc3Ry
YXRpb25zID0gWworICAgIGF3YWl0IHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lz
dGVyKHQsIHNjcmlwdCwgc2NvcGUpXTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiByZWdpc3RyYXRp
b25zWzBdLnVucmVnaXN0ZXIoKSk7CisgIGNvbnN0IHZhbHVlID0gYXdhaXQgbmF2aWdhdG9yLnNl
cnZpY2VXb3JrZXIuZ2V0UmVnaXN0cmF0aW9ucygpOworICBhc3NlcnRfYXJyYXlfZXF1YWxzKAor
ICAgICAgdmFsdWUsIHJlZ2lzdHJhdGlvbnMsCisgICAgICAnZ2V0UmVnaXN0cmF0aW9ucyBzaG91
bGQgb25seSByZXR1cm4gc2FtZSBvcmlnaW4gcmVnaXN0cmF0aW9ucy4nKTsKK30sICdnZXRSZWdp
c3RyYXRpb25zIHByb21pc2UgcmVzb2x2ZXMgb25seSB3aXRoIHNhbWUgb3JpZ2luIHJlZ2lzdHJh
dGlvbnMuJyk7CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ltcG9y
dC1zY3JpcHRzLXJlZGlyZWN0Lmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9pbXBvcnQt
c2NyaXB0cy1yZWRpcmVjdC5odHRwcy5odG1sCmluZGV4IGU1MmFkZmEzNzgwMDg1M2E4NmRhOWY1
ZjMwYmMwZGQ0MWU0YWZjYjYuLjA3ZWE0OTQzOWViYThmOTc2MmIyYmMxN2I1YWUyMzQ2ZDlkMTUz
OTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ltcG9ydC1zY3JpcHRzLXJlZGlyZWN0
Lmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvaW1wb3J0LXNjcmlwdHMtcmVkaXJl
Y3QuaHR0cHMuaHRtbApAQCAtMSw2ICsxLDcgQEAKIDwhRE9DVFlQRSBodG1sPgogPG1ldGEgY2hh
cnNldD0idXRmLTgiPgogPHRpdGxlPlRlc3RzIGZvciBpbXBvcnRTY3JpcHRzOiByZWRpcmVjdDwv
dGl0bGU+Cis8c2NyaXB0IHNyYz0iL2NvbW1vbi91dGlscy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0
IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0i
L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL3Rlc3QtaGVscGVycy5zdWIuanMiPjwvc2NyaXB0PgpAQCAtMjAsMTQgKzIxLDM1
IEBAIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKICAgICBhd2FpdCBzZXJ2aWNlX3dvcmtlcl91
bnJlZ2lzdGVyKHQsIHNjb3BlKTsKICAgICBsZXQgcmVnID0gYXdhaXQgbmF2aWdhdG9yLnNlcnZp
Y2VXb3JrZXIucmVnaXN0ZXIoCiAgICAgICAncmVzb3VyY2VzL2ltcG9ydC1zY3JpcHRzLXJlZGly
ZWN0LXdvcmtlci5qcycsIHsgc2NvcGU6IHNjb3BlIH0pOwotICAgIGFzc2VydF9ub3RfZXF1YWxz
KHJlZy5pbnN0YWxsaW5nLCBudWxsLCAnd29ya2VyIGlzIGluc3RhbGxpbmcnKTsKKyAgICBhc3Nl
cnRfbm90X2VxdWFscyhyZWcuaW5zdGFsbGluZywgbnVsbCwgJ2JlZm9yZSB1cGRhdGUnKTsKICAg
ICBhd2FpdCB3YWl0X2Zvcl9zdGF0ZSh0LCByZWcuaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOwog
ICAgIGF3YWl0IFByb21pc2UuYWxsKFsKICAgICAgIHdhaXRfZm9yX3VwZGF0ZSh0LCByZWcpLAog
ICAgICAgcmVnLnVwZGF0ZSgpCiAgICAgXSk7Ci0gICAgYXNzZXJ0X25vdF9lcXVhbHMocmVnLmlu
c3RhbGxpbmcsIG51bGwsICd3b3JrZXIgaXMgaW5zdGFsbGluZycpOworICAgIGFzc2VydF9ub3Rf
ZXF1YWxzKHJlZy5pbnN0YWxsaW5nLCBudWxsLCAnYWZ0ZXIgdXBkYXRlJyk7CiAgICAgYXdhaXQg
cmVnLnVucmVnaXN0ZXIoKTsKLSAgfSwgJ2ltcG9ydFNjcmlwdHMoKSBzdXBwb3J0cyByZWRpcmVj
dHMgYW5kIGNhbiBiZSB1cGRhdGVkJyk7CisgIH0sCisgICJhbiBpbXBvcnRlZCBzY3JpcHQgcmVk
aXJlY3RzLCBhbmQgdGhlIGJvZHkgY2hhbmdlcyBkdXJpbmcgdGhlIHVwZGF0ZSBjaGVjayIpOwor
Citwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgY29uc3Qga2V5ID0gdG9rZW4oKTsKKyAg
ICBjb25zdCBzY29wZSA9ICdyZXNvdXJjZXMvaW1wb3J0LXNjcmlwdHMtcmVkaXJlY3QnOworICAg
IGF3YWl0IHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXIodCwgc2NvcGUpOworICAgIGxldCByZWcg
PSBhd2FpdCBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3RlcigKKyAgICAgIGByZXNvdXJj
ZXMvaW1wb3J0LXNjcmlwdHMtcmVkaXJlY3Qtb24tc2Vjb25kLXRpbWUtd29ya2VyLmpzP0tleT0k
e2tleX1gLAorICAgICAgeyBzY29wZSB9KTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHJlZy51
bnJlZ2lzdGVyKCkpOworCisgICAgYXNzZXJ0X25vdF9lcXVhbHMocmVnLmluc3RhbGxpbmcsIG51
bGwsICdiZWZvcmUgdXBkYXRlJyk7CisgICAgYXdhaXQgd2FpdF9mb3Jfc3RhdGUodCwgcmVnLmlu
c3RhbGxpbmcsICdhY3RpdmF0ZWQnKTsKKyAgICBhd2FpdCBQcm9taXNlLmFsbChbCisgICAgICB3
YWl0X2Zvcl91cGRhdGUodCwgcmVnKSwKKyAgICAgIHJlZy51cGRhdGUoKQorICAgIF0pOworICAg
IGFzc2VydF9ub3RfZXF1YWxzKHJlZy5pbnN0YWxsaW5nLCBudWxsLCAnYWZ0ZXIgdXBkYXRlJyk7
CisgIH0sCisgICJhbiBpbXBvcnRlZCBzY3JpcHQgZG9lc24ndCByZWRpcmVjdCBpbml0aWFsbHks
IHRoZW4gcmVkaXJlY3RzIGR1cmluZyAiICsKKyAgInRoZSB1cGRhdGUgY2hlY2sgYW5kIHRoZSBi
b2R5IGNoYW5nZXMiKTsKIDwvc2NyaXB0PgogPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvaW50ZXJmYWNlcy1zdy5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9pbnRlcmZhY2VzLXN3Lmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCA1NGVhNjcyYmQ3NTIw
ZmIzMjE0MTZlMzVhMTgwYmFjMjY3MDRlOTQyLi5lZWU4NzcyOTQ0OTQyYzdhOTM1NjIyMDRmZTcy
YzUwOWQxNTdlMTZiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9pbnRlcmZhY2VzLXN3
Lmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9pbnRlcmZhY2VzLXN3
Lmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMTMsNiArMTMsNyBAQCBQQVNTIFNlcnZpY2VXb3JrZXIg
aW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlw
ZSBvYgogUEFTUyBTZXJ2aWNlV29ya2VyIGludGVyZmFjZTogYXR0cmlidXRlIHNjcmlwdFVSTCAK
IFBBU1MgU2VydmljZVdvcmtlciBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBzdGF0ZSAKIFBBU1MgU2Vy
dmljZVdvcmtlciBpbnRlcmZhY2U6IG9wZXJhdGlvbiBwb3N0TWVzc2FnZShhbnksIFtvYmplY3Qg
T2JqZWN0XSkgCitQQVNTIFNlcnZpY2VXb3JrZXIgaW50ZXJmYWNlOiBvcGVyYXRpb24gcG9zdE1l
c3NhZ2UoYW55LCBQb3N0TWVzc2FnZU9wdGlvbnMpIAogUEFTUyBTZXJ2aWNlV29ya2VyIGludGVy
ZmFjZTogYXR0cmlidXRlIG9uc3RhdGVjaGFuZ2UgCiBQQVNTIFNlcnZpY2VXb3JrZXJSZWdpc3Ry
YXRpb24gaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9i
amVjdCAKIFBBU1MgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbiBpbnRlcmZhY2Ugb2JqZWN0IGxl
bmd0aCAKQEAgLTIzLDYgKzI0LDcgQEAgUEFTUyBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uIGlu
dGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZQogUEFTUyBTZXJ2
aWNlV29ya2VyUmVnaXN0cmF0aW9uIGludGVyZmFjZTogYXR0cmlidXRlIGluc3RhbGxpbmcgCiBQ
QVNTIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgd2FpdGlu
ZyAKIFBBU1MgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBh
Y3RpdmUgCitGQUlMIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24gaW50ZXJmYWNlOiBhdHRyaWJ1
dGUgbmF2aWdhdGlvblByZWxvYWQgYXNzZXJ0X3RydWU6IFRoZSBwcm90b3R5cGUgb2JqZWN0IG11
c3QgaGF2ZSBhIHByb3BlcnR5ICJuYXZpZ2F0aW9uUHJlbG9hZCIgZXhwZWN0ZWQgdHJ1ZSBnb3Qg
ZmFsc2UKIFBBU1MgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0
ZSBzY29wZSAKIFBBU1MgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbiBpbnRlcmZhY2U6IGF0dHJp
YnV0ZSB1cGRhdGVWaWFDYWNoZSAKIFBBU1MgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbiBpbnRl
cmZhY2U6IG9wZXJhdGlvbiB1cGRhdGUoKSAKQEAgLTMzLDExICszNSwyMiBAQCBQQVNTIFN0cmlu
Z2lmaWNhdGlvbiBvZiBzZWxmLnJlZ2lzdHJhdGlvbgogUEFTUyBTZXJ2aWNlV29ya2VyUmVnaXN0
cmF0aW9uIGludGVyZmFjZTogc2VsZi5yZWdpc3RyYXRpb24gbXVzdCBpbmhlcml0IHByb3BlcnR5
ICJpbnN0YWxsaW5nIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgU2VydmljZVdvcmtlclJl
Z2lzdHJhdGlvbiBpbnRlcmZhY2U6IHNlbGYucmVnaXN0cmF0aW9uIG11c3QgaW5oZXJpdCBwcm9w
ZXJ0eSAid2FpdGluZyIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCiBQQVNTIFNlcnZpY2VXb3JrZXJS
ZWdpc3RyYXRpb24gaW50ZXJmYWNlOiBzZWxmLnJlZ2lzdHJhdGlvbiBtdXN0IGluaGVyaXQgcHJv
cGVydHkgImFjdGl2ZSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitGQUlMIFNlcnZpY2VXb3JrZXJS
ZWdpc3RyYXRpb24gaW50ZXJmYWNlOiBzZWxmLnJlZ2lzdHJhdGlvbiBtdXN0IGluaGVyaXQgcHJv
cGVydHkgIm5hdmlnYXRpb25QcmVsb2FkIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBhc3NlcnRfaW5o
ZXJpdHM6IHByb3BlcnR5ICJuYXZpZ2F0aW9uUHJlbG9hZCIgbm90IGZvdW5kIGluIHByb3RvdHlw
ZSBjaGFpbgogUEFTUyBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uIGludGVyZmFjZTogc2VsZi5y
ZWdpc3RyYXRpb24gbXVzdCBpbmhlcml0IHByb3BlcnR5ICJzY29wZSIgd2l0aCB0aGUgcHJvcGVy
IHR5cGUgCiBQQVNTIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24gaW50ZXJmYWNlOiBzZWxmLnJl
Z2lzdHJhdGlvbiBtdXN0IGluaGVyaXQgcHJvcGVydHkgInVwZGF0ZVZpYUNhY2hlIiB3aXRoIHRo
ZSBwcm9wZXIgdHlwZSAKIFBBU1MgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbiBpbnRlcmZhY2U6
IHNlbGYucmVnaXN0cmF0aW9uIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAidXBkYXRlKCkiIHdpdGgg
dGhlIHByb3BlciB0eXBlIAogUEFTUyBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uIGludGVyZmFj
ZTogc2VsZi5yZWdpc3RyYXRpb24gbXVzdCBpbmhlcml0IHByb3BlcnR5ICJ1bnJlZ2lzdGVyKCki
IHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uIGlu
dGVyZmFjZTogc2VsZi5yZWdpc3RyYXRpb24gbXVzdCBpbmhlcml0IHByb3BlcnR5ICJvbnVwZGF0
ZWZvdW5kIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK0ZBSUwgTmF2aWdhdGlvblByZWxvYWRNYW5h
Z2VyIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmpl
Y3QgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAi
TmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIiBleHBlY3RlZCBwcm9wZXJ0eSAiTmF2aWdhdGlvblBy
ZWxvYWRNYW5hZ2VyIiBtaXNzaW5nCitGQUlMIE5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciBpbnRl
cmZhY2Ugb2JqZWN0IGxlbmd0aCBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhh
dmUgb3duIHByb3BlcnR5ICJOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIiIGV4cGVjdGVkIHByb3Bl
cnR5ICJOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIiIG1pc3NpbmcKK0ZBSUwgTmF2aWdhdGlvblBy
ZWxvYWRNYW5hZ2VyIGludGVyZmFjZSBvYmplY3QgbmFtZSBhc3NlcnRfb3duX3Byb3BlcnR5OiBz
ZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIi
IGV4cGVjdGVkIHByb3BlcnR5ICJOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIiIG1pc3NpbmcKK0ZB
SUwgTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9w
ZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IGFzc2VydF9vd25fcHJvcGVydHk6
IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIk5hdmlnYXRpb25QcmVsb2FkTWFuYWdl
ciIgZXhwZWN0ZWQgcHJvcGVydHkgIk5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciIgbWlzc2luZwor
RkFJTCBOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHBy
b3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyAiY29uc3RydWN0b3IiIHBy
b3BlcnR5IGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVy
dHkgIk5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciIgZXhwZWN0ZWQgcHJvcGVydHkgIk5hdmlnYXRp
b25QcmVsb2FkTWFuYWdlciIgbWlzc2luZworRkFJTCBOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIg
aW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlw
ZSBvYmplY3QncyBAQHVuc2NvcGFibGVzIHByb3BlcnR5IGFzc2VydF9vd25fcHJvcGVydHk6IHNl
bGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIk5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciIg
ZXhwZWN0ZWQgcHJvcGVydHkgIk5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciIgbWlzc2luZworRkFJ
TCBOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIgaW50ZXJmYWNlOiBvcGVyYXRpb24gZW5hYmxlKCkg
YXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiTmF2
aWdhdGlvblByZWxvYWRNYW5hZ2VyIiBleHBlY3RlZCBwcm9wZXJ0eSAiTmF2aWdhdGlvblByZWxv
YWRNYW5hZ2VyIiBtaXNzaW5nCitGQUlMIE5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciBpbnRlcmZh
Y2U6IG9wZXJhdGlvbiBkaXNhYmxlKCkgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5v
dCBoYXZlIG93biBwcm9wZXJ0eSAiTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIiBleHBlY3RlZCBw
cm9wZXJ0eSAiTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIiBtaXNzaW5nCitGQUlMIE5hdmlnYXRp
b25QcmVsb2FkTWFuYWdlciBpbnRlcmZhY2U6IG9wZXJhdGlvbiBzZXRIZWFkZXJWYWx1ZShCeXRl
U3RyaW5nKSBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3Bl
cnR5ICJOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIiIGV4cGVjdGVkIHByb3BlcnR5ICJOYXZpZ2F0
aW9uUHJlbG9hZE1hbmFnZXIiIG1pc3NpbmcKK0ZBSUwgTmF2aWdhdGlvblByZWxvYWRNYW5hZ2Vy
IGludGVyZmFjZTogb3BlcmF0aW9uIGdldFN0YXRlKCkgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2Vs
ZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIiBl
eHBlY3RlZCBwcm9wZXJ0eSAiTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIiBtaXNzaW5nCiBQQVNT
IFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVy
dGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IAogUEFTUyBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUg
aW50ZXJmYWNlIG9iamVjdCBsZW5ndGggCiBQQVNTIFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSBp
bnRlcmZhY2Ugb2JqZWN0IG5hbWUgCkBAIC01Miw2ICs2NSw3IEBAIFBBU1MgU2VydmljZVdvcmtl
ckdsb2JhbFNjb3BlIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVy
ZmFjZSBwCiBQQVNTIFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSBpbnRlcmZhY2U6IGV4aXN0ZW5j
ZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzIEBAdW5zY29w
YWJsZXMgcHJvcGVydHkgCiBQQVNTIFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSBpbnRlcmZhY2U6
IGF0dHJpYnV0ZSBjbGllbnRzIAogUEFTUyBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUgaW50ZXJm
YWNlOiBhdHRyaWJ1dGUgcmVnaXN0cmF0aW9uIAorRkFJTCBTZXJ2aWNlV29ya2VyR2xvYmFsU2Nv
cGUgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgc2VydmljZVdvcmtlciBhc3NlcnRfb3duX3Byb3BlcnR5
OiBUaGUgZ2xvYmFsIG9iamVjdCBtdXN0IGhhdmUgYSBwcm9wZXJ0eSAic2VydmljZVdvcmtlciIg
ZXhwZWN0ZWQgcHJvcGVydHkgInNlcnZpY2VXb3JrZXIiIG1pc3NpbmcKIFBBU1MgU2VydmljZVdv
cmtlckdsb2JhbFNjb3BlIGludGVyZmFjZTogb3BlcmF0aW9uIHNraXBXYWl0aW5nKCkgCiBQQVNT
IFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBvbmluc3RhbGwg
CiBQQVNTIFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBvbmFj
dGl2YXRlIApAQCAtNjgsNiArODIsNyBAQCBQQVNTIFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSBt
dXN0IGJlIHByaW1hcnkgaW50ZXJmYWNlIG9mIHNlbGYKIFBBU1MgU3RyaW5naWZpY2F0aW9uIG9m
IHNlbGYgCiBQQVNTIFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSBpbnRlcmZhY2U6IHNlbGYgbXVz
dCBpbmhlcml0IHByb3BlcnR5ICJjbGllbnRzIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBBU1Mg
U2VydmljZVdvcmtlckdsb2JhbFNjb3BlIGludGVyZmFjZTogc2VsZiBtdXN0IGluaGVyaXQgcHJv
cGVydHkgInJlZ2lzdHJhdGlvbiIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitGQUlMIFNlcnZpY2VX
b3JrZXJHbG9iYWxTY29wZSBpbnRlcmZhY2U6IHNlbGYgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJz
ZXJ2aWNlV29ya2VyIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBhc3NlcnRfb3duX3Byb3BlcnR5OiBl
eHBlY3RlZCBwcm9wZXJ0eSAic2VydmljZVdvcmtlciIgbWlzc2luZwogUEFTUyBTZXJ2aWNlV29y
a2VyR2xvYmFsU2NvcGUgaW50ZXJmYWNlOiBzZWxmIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAic2tp
cFdhaXRpbmcoKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCiBQQVNTIFNlcnZpY2VXb3JrZXJHbG9i
YWxTY29wZSBpbnRlcmZhY2U6IHNlbGYgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJvbmluc3RhbGwi
IHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUgaW50
ZXJmYWNlOiBzZWxmIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAib25hY3RpdmF0ZSIgd2l0aCB0aGUg
cHJvcGVyIHR5cGUgCkBAIC04NSw2ICsxMDAsNyBAQCBQQVNTIENsaWVudCBpbnRlcmZhY2U6IGF0
dHJpYnV0ZSBmcmFtZVR5cGUKIFBBU1MgQ2xpZW50IGludGVyZmFjZTogYXR0cmlidXRlIGlkIAog
UEFTUyBDbGllbnQgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgdHlwZSAKIFBBU1MgQ2xpZW50IGludGVy
ZmFjZTogb3BlcmF0aW9uIHBvc3RNZXNzYWdlKGFueSwgW29iamVjdCBPYmplY3RdKSAKK1BBU1Mg
Q2xpZW50IGludGVyZmFjZTogb3BlcmF0aW9uIHBvc3RNZXNzYWdlKGFueSwgUG9zdE1lc3NhZ2VP
cHRpb25zKSAKIFBBU1MgV2luZG93Q2xpZW50IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9w
ZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgCiBQQVNTIFdpbmRvd0NsaWVudCBpbnRlcmZhY2Ug
b2JqZWN0IGxlbmd0aCAKIFBBU1MgV2luZG93Q2xpZW50IGludGVyZmFjZSBvYmplY3QgbmFtZSAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ludGVyZmFjZXMtc3cuaHR0cHMuaHRtbCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL2ludGVyZmFjZXMtc3cuaHR0cHMuaHRtbAppbmRleCA1MGM3NmQz
MDZkYzJmNDNlYWMwZjRkODI3ZTliNzI0NjRiNjMyMjBjLi43YmZmNmFjMTA3ZTNkZTBhZTEyMDdm
NDc3YjlmOTQwYWQ0MDRjZDIxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9pbnRlcmZh
Y2VzLXN3Lmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvaW50ZXJmYWNlcy1zdy5o
dHRwcy5odG1sCkBAIC02LDYgKzYsOCBAQAogPHNjcmlwdD4KICd1c2Ugc3RyaWN0JzsKIAorLy8g
Tk9URTogYWZmZWN0ZWQgd2hlbiAncmVzb3VyY2VzL2ludGVyZmFjZXMtd29ya2VyLnN1Yi5qcycg
c3JjcyBjaGFuZ2U6CisvLyBjb25zdCBzcmNzID0gWydkb20nLCAnaHRtbCcsICdzZXJ2aWNlLXdv
cmtlcnMnXTsKIHNlcnZpY2Vfd29ya2VyX3Rlc3QoCiAgICdyZXNvdXJjZXMvaW50ZXJmYWNlcy13
b3JrZXIuc3ViLmpzJywKICAgJ0ludGVyZmFjZXMgYW5kIGF0dHJpYnV0ZXMgaW4gU2VydmljZVdv
cmtlckdsb2JhbFNjb3BlJyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9pbnRlcmZh
Y2VzLXdpbmRvdy5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9pbnRlcmZh
Y2VzLXdpbmRvdy5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggMDBhMjI4YzExMTk0Yzc4OGMwMzMw
MWQwZGJiNGQ1ODgxMDQ4ZWJkYS4uOGYxODk5OTQ0MTRkMGM2MTFkNzY3ZGUyOTZlM2UyYTQ3NjAw
MTAxMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvaW50ZXJmYWNlcy13aW5kb3cuaHR0
cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ludGVyZmFjZXMtd2luZG93
Lmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMTEsNiArMTEsNyBAQCBQQVNTIFNlcnZpY2VXb3JrZXIg
aW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlw
ZSBvYgogUEFTUyBTZXJ2aWNlV29ya2VyIGludGVyZmFjZTogYXR0cmlidXRlIHNjcmlwdFVSTCAK
IFBBU1MgU2VydmljZVdvcmtlciBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBzdGF0ZSAKIFBBU1MgU2Vy
dmljZVdvcmtlciBpbnRlcmZhY2U6IG9wZXJhdGlvbiBwb3N0TWVzc2FnZShhbnksIFtvYmplY3Qg
T2JqZWN0XSkgCitQQVNTIFNlcnZpY2VXb3JrZXIgaW50ZXJmYWNlOiBvcGVyYXRpb24gcG9zdE1l
c3NhZ2UoYW55LCBQb3N0TWVzc2FnZU9wdGlvbnMpIAogUEFTUyBTZXJ2aWNlV29ya2VyIGludGVy
ZmFjZTogYXR0cmlidXRlIG9uc3RhdGVjaGFuZ2UgCiBQQVNTIFNlcnZpY2VXb3JrZXIgbXVzdCBi
ZSBwcmltYXJ5IGludGVyZmFjZSBvZiB3aW5kb3cucmVnaXN0cmF0aW9uSW5zdGFuY2UuaW5zdGFs
bGluZyAKIFBBU1MgU3RyaW5naWZpY2F0aW9uIG9mIHdpbmRvdy5yZWdpc3RyYXRpb25JbnN0YW5j
ZS5pbnN0YWxsaW5nIApAQCAtMTgsNiArMTksOCBAQCBQQVNTIFNlcnZpY2VXb3JrZXIgaW50ZXJm
YWNlOiB3aW5kb3cucmVnaXN0cmF0aW9uSW5zdGFuY2UuaW5zdGFsbGluZyBtdXN0IGluaGVyaQog
UEFTUyBTZXJ2aWNlV29ya2VyIGludGVyZmFjZTogd2luZG93LnJlZ2lzdHJhdGlvbkluc3RhbmNl
Lmluc3RhbGxpbmcgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJzdGF0ZSIgd2l0aCB0aGUgcHJvcGVy
IHR5cGUgCiBQQVNTIFNlcnZpY2VXb3JrZXIgaW50ZXJmYWNlOiB3aW5kb3cucmVnaXN0cmF0aW9u
SW5zdGFuY2UuaW5zdGFsbGluZyBtdXN0IGluaGVyaXQgcHJvcGVydHkgInBvc3RNZXNzYWdlKGFu
eSwgW29iamVjdCBPYmplY3RdKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCiBQQVNTIFNlcnZpY2VX
b3JrZXIgaW50ZXJmYWNlOiBjYWxsaW5nIHBvc3RNZXNzYWdlKGFueSwgW29iamVjdCBPYmplY3Rd
KSBvbiB3aW5kb3cucmVnaXN0cmF0aW9uSW5zdGFuY2UuaW5zdGFsbGluZyB3aXRoIHRvbyBmZXcg
YXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAorUEFTUyBTZXJ2aWNlV29ya2VyIGludGVy
ZmFjZTogd2luZG93LnJlZ2lzdHJhdGlvbkluc3RhbmNlLmluc3RhbGxpbmcgbXVzdCBpbmhlcml0
IHByb3BlcnR5ICJwb3N0TWVzc2FnZShhbnksIFBvc3RNZXNzYWdlT3B0aW9ucykiIHdpdGggdGhl
IHByb3BlciB0eXBlIAorUEFTUyBTZXJ2aWNlV29ya2VyIGludGVyZmFjZTogY2FsbGluZyBwb3N0
TWVzc2FnZShhbnksIFBvc3RNZXNzYWdlT3B0aW9ucykgb24gd2luZG93LnJlZ2lzdHJhdGlvbklu
c3RhbmNlLmluc3RhbGxpbmcgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVF
cnJvciAKIFBBU1MgU2VydmljZVdvcmtlciBpbnRlcmZhY2U6IHdpbmRvdy5yZWdpc3RyYXRpb25J
bnN0YW5jZS5pbnN0YWxsaW5nIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAib25zdGF0ZWNoYW5nZSIg
d2l0aCB0aGUgcHJvcGVyIHR5cGUgCiBQQVNTIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24gaW50
ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCAKIFBB
U1MgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbiBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aCAKQEAg
LTI4LDYgKzMxLDcgQEAgUEFTUyBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uIGludGVyZmFjZTog
ZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZQogUEFTUyBTZXJ2aWNlV29ya2Vy
UmVnaXN0cmF0aW9uIGludGVyZmFjZTogYXR0cmlidXRlIGluc3RhbGxpbmcgCiBQQVNTIFNlcnZp
Y2VXb3JrZXJSZWdpc3RyYXRpb24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgd2FpdGluZyAKIFBBU1Mg
U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBhY3RpdmUgCitG
QUlMIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgbmF2aWdh
dGlvblByZWxvYWQgYXNzZXJ0X3RydWU6IFRoZSBwcm90b3R5cGUgb2JqZWN0IG11c3QgaGF2ZSBh
IHByb3BlcnR5ICJuYXZpZ2F0aW9uUHJlbG9hZCIgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKIFBB
U1MgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBzY29wZSAK
IFBBU1MgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSB1cGRh
dGVWaWFDYWNoZSAKIFBBU1MgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbiBpbnRlcmZhY2U6IG9w
ZXJhdGlvbiB1cGRhdGUoKSAKQEAgLTM4LDExICs0MiwyMiBAQCBQQVNTIFN0cmluZ2lmaWNhdGlv
biBvZiB3aW5kb3cucmVnaXN0cmF0aW9uSW5zdGFuY2UKIFBBU1MgU2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbiBpbnRlcmZhY2U6IHdpbmRvdy5yZWdpc3RyYXRpb25JbnN0YW5jZSBtdXN0IGluaGVy
aXQgcHJvcGVydHkgImluc3RhbGxpbmciIHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBTZXJ2
aWNlV29ya2VyUmVnaXN0cmF0aW9uIGludGVyZmFjZTogd2luZG93LnJlZ2lzdHJhdGlvbkluc3Rh
bmNlIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAid2FpdGluZyIgd2l0aCB0aGUgcHJvcGVyIHR5cGUg
CiBQQVNTIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24gaW50ZXJmYWNlOiB3aW5kb3cucmVnaXN0
cmF0aW9uSW5zdGFuY2UgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJhY3RpdmUiIHdpdGggdGhlIHBy
b3BlciB0eXBlIAorRkFJTCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uIGludGVyZmFjZTogd2lu
ZG93LnJlZ2lzdHJhdGlvbkluc3RhbmNlIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAibmF2aWdhdGlv
blByZWxvYWQiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9pbmhlcml0czogcHJvcGVydHkg
Im5hdmlnYXRpb25QcmVsb2FkIiBub3QgZm91bmQgaW4gcHJvdG90eXBlIGNoYWluCiBQQVNTIFNl
cnZpY2VXb3JrZXJSZWdpc3RyYXRpb24gaW50ZXJmYWNlOiB3aW5kb3cucmVnaXN0cmF0aW9uSW5z
dGFuY2UgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJzY29wZSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUg
CiBQQVNTIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24gaW50ZXJmYWNlOiB3aW5kb3cucmVnaXN0
cmF0aW9uSW5zdGFuY2UgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJ1cGRhdGVWaWFDYWNoZSIgd2l0
aCB0aGUgcHJvcGVyIHR5cGUgCiBQQVNTIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24gaW50ZXJm
YWNlOiB3aW5kb3cucmVnaXN0cmF0aW9uSW5zdGFuY2UgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJ1
cGRhdGUoKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCiBQQVNTIFNlcnZpY2VXb3JrZXJSZWdpc3Ry
YXRpb24gaW50ZXJmYWNlOiB3aW5kb3cucmVnaXN0cmF0aW9uSW5zdGFuY2UgbXVzdCBpbmhlcml0
IHByb3BlcnR5ICJ1bnJlZ2lzdGVyKCkiIHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBTZXJ2
aWNlV29ya2VyUmVnaXN0cmF0aW9uIGludGVyZmFjZTogd2luZG93LnJlZ2lzdHJhdGlvbkluc3Rh
bmNlIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAib251cGRhdGVmb3VuZCIgd2l0aCB0aGUgcHJvcGVy
IHR5cGUgCitGQUlMIE5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciBpbnRlcmZhY2U6IGV4aXN0ZW5j
ZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IGFzc2VydF9vd25fcHJvcGVydHk6
IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIk5hdmlnYXRpb25QcmVsb2FkTWFuYWdl
ciIgZXhwZWN0ZWQgcHJvcGVydHkgIk5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciIgbWlzc2luZwor
RkFJTCBOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIgaW50ZXJmYWNlIG9iamVjdCBsZW5ndGggYXNz
ZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiTmF2aWdh
dGlvblByZWxvYWRNYW5hZ2VyIiBleHBlY3RlZCBwcm9wZXJ0eSAiTmF2aWdhdGlvblByZWxvYWRN
YW5hZ2VyIiBtaXNzaW5nCitGQUlMIE5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciBpbnRlcmZhY2Ug
b2JqZWN0IG5hbWUgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBw
cm9wZXJ0eSAiTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIiBleHBlY3RlZCBwcm9wZXJ0eSAiTmF2
aWdhdGlvblByZWxvYWRNYW5hZ2VyIiBtaXNzaW5nCitGQUlMIE5hdmlnYXRpb25QcmVsb2FkTWFu
YWdlciBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJv
dG90eXBlIG9iamVjdCBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3du
IHByb3BlcnR5ICJOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIiIGV4cGVjdGVkIHByb3BlcnR5ICJO
YXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIiIG1pc3NpbmcKK0ZBSUwgTmF2aWdhdGlvblByZWxvYWRN
YW5hZ2VyIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBw
cm90b3R5cGUgb2JqZWN0J3MgImNvbnN0cnVjdG9yIiBwcm9wZXJ0eSBhc3NlcnRfb3duX3Byb3Bl
cnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJOYXZpZ2F0aW9uUHJlbG9hZE1h
bmFnZXIiIGV4cGVjdGVkIHByb3BlcnR5ICJOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIiIG1pc3Np
bmcKK0ZBSUwgTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIGludGVyZmFjZTogZXhpc3RlbmNlIGFu
ZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgQEB1bnNjb3BhYmxl
cyBwcm9wZXJ0eSBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHBy
b3BlcnR5ICJOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIiIGV4cGVjdGVkIHByb3BlcnR5ICJOYXZp
Z2F0aW9uUHJlbG9hZE1hbmFnZXIiIG1pc3NpbmcKK0ZBSUwgTmF2aWdhdGlvblByZWxvYWRNYW5h
Z2VyIGludGVyZmFjZTogb3BlcmF0aW9uIGVuYWJsZSgpIGFzc2VydF9vd25fcHJvcGVydHk6IHNl
bGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIk5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciIg
ZXhwZWN0ZWQgcHJvcGVydHkgIk5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciIgbWlzc2luZworRkFJ
TCBOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIgaW50ZXJmYWNlOiBvcGVyYXRpb24gZGlzYWJsZSgp
IGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIk5h
dmlnYXRpb25QcmVsb2FkTWFuYWdlciIgZXhwZWN0ZWQgcHJvcGVydHkgIk5hdmlnYXRpb25QcmVs
b2FkTWFuYWdlciIgbWlzc2luZworRkFJTCBOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIgaW50ZXJm
YWNlOiBvcGVyYXRpb24gc2V0SGVhZGVyVmFsdWUoQnl0ZVN0cmluZykgYXNzZXJ0X293bl9wcm9w
ZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiTmF2aWdhdGlvblByZWxvYWRN
YW5hZ2VyIiBleHBlY3RlZCBwcm9wZXJ0eSAiTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIiBtaXNz
aW5nCitGQUlMIE5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciBpbnRlcmZhY2U6IG9wZXJhdGlvbiBn
ZXRTdGF0ZSgpIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJv
cGVydHkgIk5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciIgZXhwZWN0ZWQgcHJvcGVydHkgIk5hdmln
YXRpb25QcmVsb2FkTWFuYWdlciIgbWlzc2luZwogUEFTUyBTZXJ2aWNlV29ya2VyR2xvYmFsU2Nv
cGUgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVj
dCAKIFBBU1MgQ2xpZW50IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGlu
dGVyZmFjZSBvYmplY3QgCiBQQVNTIFdpbmRvd0NsaWVudCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBh
bmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvaW50ZXJmYWNlcy13aW5kb3cuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L2ludGVyZmFjZXMtd2luZG93Lmh0dHBzLmh0bWwKaW5kZXggZjcwY2Y0MDkzMWRiODgzNTBjNWZi
MGY1ZWJiMWZiZDEwZjkxN2RiYS4uY2MzYmRhZjExZmM3YmMxNzRlZWY1NTVhNjAyNjNlMTkyZWZk
YzUzOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvaW50ZXJmYWNlcy13aW5kb3cuaHR0
cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9pbnRlcmZhY2VzLXdpbmRvdy5odHRwcy5o
dG1sCkBAIC0xMCw4ICsxMCw4IEBACiAndXNlIHN0cmljdCc7CiAKIHByb21pc2VfdGVzdChhc3lu
YyAodCkgPT4gewotICBjb25zdCBzcmNzID0gWydkb20nLCAnaHRtbCcsICdzZXJ2aWNlLXdvcmtl
cnMnLCAnZGVkaWNhdGVkLXdvcmtlcnMnXTsKLSAgY29uc3QgW2RvbSwgaHRtbCwgc2VydmljZVdv
cmtlcklkbCwgZGVkaWNhdGVkXSA9IGF3YWl0IFByb21pc2UuYWxsKAorICBjb25zdCBzcmNzID0g
Wydkb20nLCAnaHRtbCcsICdzZXJ2aWNlLXdvcmtlcnMnXTsKKyAgY29uc3QgW2RvbSwgaHRtbCwg
c2VydmljZVdvcmtlcklkbF0gPSBhd2FpdCBQcm9taXNlLmFsbCgKICAgICBzcmNzLm1hcChpID0+
IGZldGNoKGAvaW50ZXJmYWNlcy8ke2l9LmlkbGApLnRoZW4ociA9PiByLnRleHQoKSkpKTsKIAog
ICB2YXIgaWRsQXJyYXkgPSBuZXcgSWRsQXJyYXkoKTsKQEAgLTI5LDcgKzI5LDYgQEAgcHJvbWlz
ZV90ZXN0KGFzeW5jICh0KSA9PiB7CiAgICAgJ0NhY2hlJywKICAgICAnQ2FjaGVTdG9yYWdlJywK
ICAgXX0pOwotICBpZGxBcnJheS5hZGRfZGVwZW5kZW5jeV9pZGxzKGRlZGljYXRlZCk7CiAgIGlk
bEFycmF5LmFkZF9kZXBlbmRlbmN5X2lkbHMoZG9tKTsKICAgaWRsQXJyYXkuYWRkX2RlcGVuZGVu
Y3lfaWRscyhodG1sKTsKICAgaWRsQXJyYXkuYWRkX29iamVjdHMoewpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2NsaWVudHMtZnJhbWUtZnJlZXplLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvY2xpZW50cy1mcmFtZS1mcmVlemUuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi43NDY4YTY2MGU5MDg1ODY2ZThkMzhmZjM1ZjAyY2Y2YTUwODY4MjMyCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2NsaWVudHMtZnJhbWUtZnJlZXpl
Lmh0bWwKQEAgLTAsMCArMSwxNSBAQAorPCFET0NUWVBFIGh0bWw+Cis8c2NyaXB0IHNyYz0iL3Jl
c291cmNlcy90ZXN0ZHJpdmVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2Vz
L3Rlc3Rkcml2ZXItdmVuZG9yLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisgIGRvY3VtZW50LmFk
ZEV2ZW50TGlzdGVuZXIoJ2ZyZWV6ZScsICgpID0+IHsKKyAgICAgIG9wZW5lci5wb3N0TWVzc2Fn
ZSgnZnJvemVuJywgIioiKTsKKyAgfSk7CisKKyAgd2luZG93Lm9ubWVzc2FnZSA9IChlKSA9PiB7
CisgICAgaWYgKGUuZGF0YSA9PSAnZnJlZXplJykgeworICAgICAgdGVzdF9kcml2ZXIuZnJlZXpl
KCk7CisgICAgfQorICB9OworICBvcGVuZXIucG9zdE1lc3NhZ2UoJ2xvYWRlZCcsICcqJyk7Cis8
L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9jbGllbnRz
LW1hdGNoYWxsLXdvcmtlci5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9jbGllbnRz
LW1hdGNoYWxsLXdvcmtlci5qcwppbmRleCBkNjYzNGY0ZDQwZWY2YWRhMzQ0MGI0NDNmYWZmMTc2
ZTU0MDgyYTcxLi4xM2UxMTFhMmY5MTQ2NGJmMTdmYThjNjBmYjZmNjA3MTQ0M2E0NzRmIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvY2xpZW50cy1tYXRjaGFsbC13b3Jr
ZXIuanMKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2NsaWVudHMtbWF0Y2hhbGwt
d29ya2VyLmpzCkBAIC0xMywxMSArMTMsMjAgQEAgc2VsZi5vbm1lc3NhZ2UgPSBmdW5jdGlvbihl
KSB7CiAgICAgICAgICAgICAgIC8vIEluIHRoYXQgY2FzZSwganVzdCBwcmV0ZW5kIGl0J3MgdG9w
LWxldmVsIQogICAgICAgICAgICAgICBmcmFtZV90eXBlID0gJ3RvcC1sZXZlbCc7CiAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICBtZXNzYWdlLnB1c2goW2NsaWVudC52aXNpYmlsaXR5U3RhdGUs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIGNsaWVudC5mb2N1c2VkLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICBjbGllbnQudXJsLAotICAgICAgICAgICAgICAgICAgICAgICAgICBjbGll
bnQudHlwZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgZnJhbWVfdHlwZV0pOworICAgICAg
ICAgICAgaWYgKGUuZGF0YS5pbmNsdWRlTGlmZWN5Y2xlU3RhdGUpIHsKKyAgICAgICAgICAgICAg
bWVzc2FnZS5wdXNoKHt2aXNpYmlsaXR5U3RhdGU6IGNsaWVudC52aXNpYmlsaXR5U3RhdGUsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9jdXNlZDogY2xpZW50LmZvY3VzZWQsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBjbGllbnQudXJsLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGxpZmVjeWNsZVN0YXRlOiBjbGllbnQubGlmZWN5Y2xlU3RhdGUsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogY2xpZW50LnR5cGUsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZnJhbWVUeXBlOiBmcmFtZV90eXBlfSk7CisgICAgICAgICAgICB9IGVs
c2UgeworICAgICAgICAgICAgICBtZXNzYWdlLnB1c2goW2NsaWVudC52aXNpYmlsaXR5U3RhdGUs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xpZW50LmZvY3VzZWQsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY2xpZW50LnVybCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjbGllbnQudHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcmFtZV90eXBlXSk7
CisgICAgICAgICAgICB9CiAgICAgICAgICAgfSk7CiAgICAgICAgIC8vIFNvcnQgYnkgdXJsCiAg
ICAgICAgIGlmICghZS5kYXRhLmRpc2FibGVTb3J0KSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9yZXNvdXJjZXMvZHVtbXktc2hhcmVkLXdvcmtlci1pbnRlcmNlcHRvci5qcyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9kdW1teS1zaGFyZWQtd29ya2VyLWludGVyY2VwdG9y
LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlOTk2ZGE2YjJiN2Y0OTE4MjBkZGFi
MTY4ZTlkMmYyZDZmNmNlYTM1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9kdW1teS1zaGFyZWQtd29ya2Vy
LWludGVyY2VwdG9yLmpzCisrKyAvZGV2L251bGwKQEAgLTEsOSArMCwwIEBACi12YXIgd29ya2Vy
X3RleHQgPSAnb25jb25uZWN0ID0gZnVuY3Rpb24oZSkgeyBlLnBvcnRzWzBdLnBvc3RNZXNzYWdl
KCJ3b3JrZXIgbG9hZGluZyBpbnRlcmNlcHRlZCBieSBzZXJ2aWNlIHdvcmtlciIpOyB9Oyc7Ci0K
LXNlbGYub25mZXRjaCA9IGZ1bmN0aW9uKGV2ZW50KSB7Ci0gIGlmIChldmVudC5yZXF1ZXN0LnVy
bC5pbmRleE9mKCdkdW1teS1zaGFyZWQtd29ya2VyLmpzJykgIT0gLTEpIHsKLSAgICBldmVudC5y
ZXNwb25kV2l0aChuZXcgUmVzcG9uc2UoCi0gICAgICAgIHdvcmtlcl90ZXh0LCB7aGVhZGVyczog
eyJDb250ZW50LVR5cGUiOiAiYXBwbGljYXRpb24vamF2YXNjcmlwdCJ9fSkpOwotICB9Ci19Owot
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZHVtbXktc2hhcmVkLXdv
cmtlci1pbnRlcmNlcHRvci5qcy5oZWFkZXJzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2Vz
L2R1bW15LXNoYXJlZC13b3JrZXItaW50ZXJjZXB0b3IuanMuaGVhZGVycwpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggYTE3YTlhM2ExMmNlZmU4ODNhNWQ0ZGVlNGQ1YTQ1YmVmMTIwZDA1
MC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9yZXNvdXJjZXMvZHVtbXktc2hhcmVkLXdvcmtlci1pbnRlcmNlcHRvci5qcy5o
ZWFkZXJzCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotQ29udGVudC1UeXBlOiBhcHBsaWNh
dGlvbi9qYXZhc2NyaXB0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMv
ZHVtbXktd29ya2VyLWludGVyY2VwdG9yLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2Vz
L2R1bW15LXdvcmtlci1pbnRlcmNlcHRvci5qcwppbmRleCBhYmVjNWZkZDU4YjI4YjdiNmExZDBi
YTQ1M2U2N2NjZTFhNGQ0OTczLi4xYzM4MWZkMTgwZTJiM2QzYjdhMTEzOTQ5MjYwOTYxNDFiMGEz
Yzc2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZHVtbXktd29ya2Vy
LWludGVyY2VwdG9yLmpzCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9kdW1teS13
b3JrZXItaW50ZXJjZXB0b3IuanMKQEAgLTEsMjEgKzEsNDUgQEAKIGltcG9ydFNjcmlwdHMoJy9j
b21tb24vZ2V0LWhvc3QtaW5mby5zdWIuanMnKTsKIAotdmFyIHdvcmtlcl90ZXh0ID0gJ3Bvc3RN
ZXNzYWdlKCJ3b3JrZXIgbG9hZGluZyBpbnRlcmNlcHRlZCBieSBzZXJ2aWNlIHdvcmtlciIpOyAn
OworY29uc3QgdGV4dCA9ICd3b3JrZXIgbG9hZGluZyBpbnRlcmNlcHRlZCBieSBzZXJ2aWNlIHdv
cmtlcic7Citjb25zdCBkZWRpY2F0ZWRfd29ya2VyX3NjcmlwdCA9IGBwb3N0TWVzc2FnZSgnJHt0
ZXh0fScpO2A7Citjb25zdCBzaGFyZWRfd29ya2VyX3NjcmlwdCA9CisgICAgYG9uY29ubmVjdCA9
IGV2dCA9PiBldnQucG9ydHNbMF0ucG9zdE1lc3NhZ2UoJyR7dGV4dH0nKTtgOwogCi1zZWxmLm9u
ZmV0Y2ggPSBmdW5jdGlvbihldmVudCkgewotICBpZiAoZXZlbnQucmVxdWVzdC51cmwuaW5kZXhP
Zignc3ludGhlc2l6ZWQnKSAhPSAtMSkgewotICAgIGV2ZW50LnJlc3BvbmRXaXRoKG5ldyBSZXNw
b25zZSh3b3JrZXJfdGV4dCkpOwotICB9IGVsc2UgaWYgKGV2ZW50LnJlcXVlc3QudXJsLmluZGV4
T2YoJ3NhbWUtb3JpZ2luJykgIT0gLTEpIHsKLSAgICBldmVudC5yZXNwb25kV2l0aChmZXRjaCgn
ZHVtbXktd29ya2VyLXNjcmlwdC5weScpKTsKLSAgfSBlbHNlIGlmIChldmVudC5yZXF1ZXN0LnVy
bC5pbmRleE9mKCdjb3JzJykgIT0gLTEpIHsKLSAgICB2YXIgcGF0aCA9IChuZXcgVVJMKCdkdW1t
eS13b3JrZXItc2NyaXB0LnB5Jywgc2VsZi5sb2NhdGlvbikpLnBhdGhuYW1lOwotICAgIHZhciB1
cmwgPSBnZXRfaG9zdF9pbmZvKClbJ0hUVFBTX1JFTU9URV9PUklHSU4nXSArIHBhdGg7Ci0gICAg
dmFyIG1vZGUgPSAibm8tY29ycyI7Ci0gICAgaWYgKGV2ZW50LnJlcXVlc3QudXJsLmluZGV4T2Yo
J25vLWNvcnMnKSA9PSAtMSkgewotICAgICAgdXJsICs9ICc/QUNBT3JpZ2luPSonOwotICAgICAg
bW9kZSA9ICJjb3JzIjsKK3NlbGYub25mZXRjaCA9IGV2ZW50ID0+IHsKKyAgY29uc3QgdXJsID0g
ZXZlbnQucmVxdWVzdC51cmw7CisgIGNvbnN0IGRlc3RpbmF0aW9uID0gZXZlbnQucmVxdWVzdC5k
ZXN0aW5hdGlvbjsKKworICAvLyBSZXF1ZXN0IGhhbmRsZXIgZm9yIGEgc3ludGhlc2l6ZWQgcmVz
cG9uc2UuCisgIGlmICh1cmwuaW5kZXhPZignc3ludGhlc2l6ZWQnKSAhPSAtMSkgeworICAgIGlm
IChkZXN0aW5hdGlvbiA9PT0gJ3dvcmtlcicpCisgICAgICBldmVudC5yZXNwb25kV2l0aChuZXcg
UmVzcG9uc2UoZGVkaWNhdGVkX3dvcmtlcl9zY3JpcHQpKTsKKyAgICBlbHNlIGlmIChkZXN0aW5h
dGlvbiA9PT0gJ3NoYXJlZHdvcmtlcicpCisgICAgICBldmVudC5yZXNwb25kV2l0aChuZXcgUmVz
cG9uc2Uoc2hhcmVkX3dvcmtlcl9zY3JpcHQpKTsKKyAgICBlbHNlCisgICAgICBldmVudC5yZXNw
b25kV2l0aChuZXcgUmVzcG9uc2UoJ1VuZXhwZWN0ZWQgcmVxdWVzdCEgJyArIGRlc3RpbmF0aW9u
KSk7CisgICAgcmV0dXJuOworICB9CisKKyAgLy8gUmVxdWVzdCBoYW5kbGVyIGZvciBhIHNhbWUt
b3JpZ2luIHJlc3BvbnNlLgorICBpZiAodXJsLmluZGV4T2YoJ3NhbWUtb3JpZ2luJykgIT0gLTEp
IHsKKyAgICBldmVudC5yZXNwb25kV2l0aChmZXRjaCgncG9zdG1lc3NhZ2Utb24tbG9hZC13b3Jr
ZXIuanMnKSk7CisgICAgcmV0dXJuOworICB9CisKKyAgLy8gUmVxdWVzdCBoYW5kbGVyIGZvciBh
IGNyb3NzLW9yaWdpbiByZXNwb25zZS4KKyAgaWYgKHVybC5pbmRleE9mKCdjb3JzJykgIT0gLTEp
IHsKKyAgICBjb25zdCBmaWxlbmFtZSA9ICdwb3N0bWVzc2FnZS1vbi1sb2FkLXdvcmtlci5qcyc7
CisgICAgY29uc3QgcGF0aCA9IChuZXcgVVJMKGZpbGVuYW1lLCBzZWxmLmxvY2F0aW9uKSkucGF0
aG5hbWU7CisgICAgbGV0IG5ld191cmwgPSBnZXRfaG9zdF9pbmZvKClbJ0hUVFBTX1JFTU9URV9P
UklHSU4nXSArIHBhdGg7CisgICAgbGV0IG1vZGU7CisgICAgaWYgKHVybC5pbmRleE9mKCduby1j
b3JzJykgIT0gLTEpIHsKKyAgICAgIC8vIFRlc3Qgbm8tY29ycyBtb2RlLgorICAgICAgbW9kZSA9
ICduby1jb3JzJzsKKyAgICB9IGVsc2UgeworICAgICAgLy8gVGVzdCBjb3JzIG1vZGUuCisgICAg
ICBuZXdfdXJsICs9ICc/cGlwZT1oZWFkZXIoQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luLCop
JzsKKyAgICAgIG1vZGUgPSAnY29ycyc7CiAgICAgfQotICAgIGV2ZW50LnJlc3BvbmRXaXRoKGZl
dGNoKHVybCwgeyBtb2RlOiBtb2RlIH0pKTsKKyAgICBldmVudC5yZXNwb25kV2l0aChmZXRjaChu
ZXdfdXJsLCB7IG1vZGU6IG1vZGUgfSkpOwogICB9CiB9OwotCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9yZXNvdXJjZXMvZHVtbXktd29ya2VyLXNjcmlwdC5weSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL3Jlc291cmNlcy9kdW1teS13b3JrZXItc2NyaXB0LnB5CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA2ZjQwYjVlZDYwNWFjYzQ2YzVlZDk2NjM0OTM4ZDM2MWRkZWU2ZDg2Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL3Jlc291cmNlcy9kdW1teS13b3JrZXItc2NyaXB0LnB5CisrKyAvZGV2L251bGwKQEAg
LTEsOSArMCwwIEBACi1kZWYgbWFpbihyZXF1ZXN0LCByZXNwb25zZSk6Ci0gICAgaGVhZGVycyA9
IFtdCi0KLSAgICBpZiAiQUNBT3JpZ2luIiBpbiByZXF1ZXN0LkdFVDoKLSAgICAgICAgZm9yIGl0
ZW0gaW4gcmVxdWVzdC5HRVRbIkFDQU9yaWdpbiJdLnNwbGl0KCIsIik6Ci0gICAgICAgICAgICBo
ZWFkZXJzLmFwcGVuZCgoIkFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbiIsIGl0ZW0pKQotCi0g
ICAgcmV0dXJuIGhlYWRlcnMsICJwb3N0TWVzc2FnZSgnZHVtbXktd29ya2VyLXNjcmlwdCBsb2Fk
ZWQnKTsiCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9pbXBvcnQt
c2NyaXB0cy00MDQtYWZ0ZXItdXBkYXRlLXBsdXMtdXBkYXRlLXdvcmtlci5qcyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL3Jlc291cmNlcy9pbXBvcnQtc2NyaXB0cy00MDQtYWZ0ZXItdXBkYXRlLXBsdXMt
dXBkYXRlLXdvcmtlci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lOTg5OWQ4ZTcyNzRlYThiNjU2MjNlMDE5NDEx
NzAwZWM2NWRiYzg0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3Vy
Y2VzL2ltcG9ydC1zY3JpcHRzLTQwNC1hZnRlci11cGRhdGUtcGx1cy11cGRhdGUtd29ya2VyLmpz
CkBAIC0wLDAgKzEsOCBAQAorLy8gVGhpcyB3b3JrZXIgaW1wb3J0cyBhIHNjcmlwdCB0aGF0IHJl
dHVybnMgMjAwIG9uIHRoZSBmaXJzdCByZXF1ZXN0IGFuZCA0MDQKKy8vIG9uIHRoZSBzZWNvbmQg
cmVxdWVzdCwgYW5kIGEgc2NyaXB0IHRoYXQgaXMgdXBkYXRlZCBldmVyeSB0aW1lIHdoZW4KKy8v
IHJlcXVlc3RpbmcgaXQuCitjb25zdCBwYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKGxvY2F0
aW9uLnNlYXJjaCk7Citjb25zdCBrZXkgPSBwYXJhbXMuZ2V0KCdLZXknKTsKK2NvbnN0IGFkZGl0
aW9uYWxfa2V5ID0gcGFyYW1zLmdldCgnQWRkaXRpb25hbEtleScpOworaW1wb3J0U2NyaXB0cyhg
dXBkYXRlLXdvcmtlci5weT9LZXk9JHtrZXl9Jk1vZGU9bm90X2ZvdW5kYCwKKyAgICAgICAgICAg
ICAgYHVwZGF0ZS13b3JrZXIucHk/S2V5PSR7YWRkaXRpb25hbF9rZXl9Jk1vZGU9bm9ybWFsYCk7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvaW1wb3J0LXNjcmlwdHMt
NDA0LWFmdGVyLXVwZGF0ZS5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9pbXBvcnQt
c2NyaXB0cy00MDQtYWZ0ZXItdXBkYXRlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI1NjkzNDYwMzVhYzExYzU1
N2ExZTE5ZDZiZjliYThiOTA1OTc1MzkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9yZXNvdXJjZXMvaW1wb3J0LXNjcmlwdHMtNDA0LWFmdGVyLXVwZGF0ZS5qcwpAQCAtMCww
ICsxLDYgQEAKKy8vIFRoaXMgd29ya2VyIGltcG9ydHMgYSBzY3JpcHQgdGhhdCByZXR1cm5zIDIw
MCBvbiB0aGUgZmlyc3QgcmVxdWVzdCBhbmQgNDA0CisvLyBvbiB0aGUgc2Vjb25kIHJlcXVlc3Qu
IFRoZSByZXN1bHRpbmcgYm9keSBhbHNvIGNoYW5nZXMgZWFjaCB0aW1lIGl0IGlzCisvLyByZXF1
ZXN0ZWQuCitjb25zdCBwYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKGxvY2F0aW9uLnNlYXJj
aCk7Citjb25zdCBrZXkgPSBwYXJhbXMuZ2V0KCdLZXknKTsKK2ltcG9ydFNjcmlwdHMoYHVwZGF0
ZS13b3JrZXIucHk/S2V5PSR7a2V5fSZNb2RlPW5vdF9mb3VuZGApOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ltcG9ydC1zY3JpcHRzLTQwNC5qcyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL3Jlc291cmNlcy9pbXBvcnQtc2NyaXB0cy00MDQuanMKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTlj
N2E0YjhlNTYxYjNkOTVmMTA0OTZlOTJhMmM3MjY0ZDY5MzgxNQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9pbXBvcnQtc2NyaXB0cy00MDQuanMKQEAgLTAs
MCArMSBAQAoraW1wb3J0U2NyaXB0cygnNDA0LnB5Jyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9yZXNvdXJjZXMvaW1wb3J0LXNjcmlwdHMtcmVkaXJlY3Qtb24tc2Vjb25kLXRpbWUt
d29ya2VyLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ltcG9ydC1zY3JpcHRzLXJl
ZGlyZWN0LW9uLXNlY29uZC10aW1lLXdvcmtlci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNjEyYWI4ZTZhYTQy
NzIwODNhYmY1NzM5NzhkMTkzMmQxOGY2NTM1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvcmVzb3VyY2VzL2ltcG9ydC1zY3JpcHRzLXJlZGlyZWN0LW9uLXNlY29uZC10aW1l
LXdvcmtlci5qcwpAQCAtMCwwICsxLDcgQEAKKy8vIFRoaXMgd29ya2VyIGltcG9ydHMgYSBzY3Jp
cHQgdGhhdCByZXR1cm5zIDIwMCBvbiB0aGUgZmlyc3QgcmVxdWVzdCBhbmQgYQorLy8gcmVkaXJl
Y3Qgb24gdGhlIHNlY29uZCByZXF1ZXN0LiBUaGUgcmVzdWx0aW5nIGJvZHkgYWxzbyBjaGFuZ2Vz
IGVhY2ggdGltZSBpdAorLy8gaXMgcmVxdWVzdGVkLgorY29uc3QgcGFyYW1zID0gbmV3IFVSTFNl
YXJjaFBhcmFtcyhsb2NhdGlvbi5zZWFyY2gpOworY29uc3Qga2V5ID0gcGFyYW1zLmdldCgnS2V5
Jyk7CitpbXBvcnRTY3JpcHRzKGB1cGRhdGUtd29ya2VyLnB5P0tleT0ke2tleX0mTW9kZT1yZWRp
cmVjdCZgICsKKyAgICAgICAgICAgICAgYFJlZGlyZWN0PXVwZGF0ZS13b3JrZXIucHk/S2V5PSR7
a2V5fSUyNk1vZGU9bm9ybWFsYCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNv
dXJjZXMvaW50ZXJmYWNlcy13b3JrZXIuc3ViLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3Vy
Y2VzL2ludGVyZmFjZXMtd29ya2VyLnN1Yi5qcwppbmRleCA1NmJjOGFmNDQ1ZDVlNzkwMGI0NTcz
YzM1ZTZkNjgwZWZmMTZjNjcxLi5hYzc5ZGRjMDA1Njg4YWZmZTlhY2M2N2I4M2Y0M2VmMzA0Zjgx
YzgxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvaW50ZXJmYWNlcy13
b3JrZXIuc3ViLmpzCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9pbnRlcmZhY2Vz
LXdvcmtlci5zdWIuanMKQEAgLTUsOCArNSw4IEBAIGltcG9ydFNjcmlwdHMoJy9yZXNvdXJjZXMv
V2ViSURMUGFyc2VyLmpzJyk7CiBpbXBvcnRTY3JpcHRzKCcvcmVzb3VyY2VzL2lkbGhhcm5lc3Mu
anMnKTsKIAogcHJvbWlzZV90ZXN0KGFzeW5jICh0KSA9PiB7Ci0gIGNvbnN0IHNyY3MgPSBbJ2Rv
bScsICdodG1sJywgJ3NlcnZpY2Utd29ya2VycycsICdkZWRpY2F0ZWQtd29ya2VycyddOwotICBj
b25zdCBbZG9tLCBodG1sLCBzZXJ2aWNlV29ya2VySWRsLCBkZWRpY2F0ZWRdID0gYXdhaXQgUHJv
bWlzZS5hbGwoCisgIGNvbnN0IHNyY3MgPSBbJ2RvbScsICdodG1sJywgJ3NlcnZpY2Utd29ya2Vy
cyddOworICBjb25zdCBbZG9tLCBodG1sLCBzZXJ2aWNlV29ya2VySWRsXSA9IGF3YWl0IFByb21p
c2UuYWxsKAogICAgIHNyY3MubWFwKGkgPT4gZmV0Y2goYC9pbnRlcmZhY2VzLyR7aX0uaWRsYCku
dGhlbihyID0+IHIudGV4dCgpKSkpOwogCiAgIHZhciBpZGxBcnJheSA9IG5ldyBJZGxBcnJheSgp
OwpAQCAtMjQsNyArMjQsNiBAQCBwcm9taXNlX3Rlc3QoYXN5bmMgKHQpID0+IHsKICAgICAnQ2Fj
aGUnLAogICAgICdDYWNoZVN0b3JhZ2UnLAogICBdfSk7Ci0gIGlkbEFycmF5LmFkZF9kZXBlbmRl
bmN5X2lkbHMoZGVkaWNhdGVkKTsKICAgaWRsQXJyYXkuYWRkX2RlcGVuZGVuY3lfaWRscyhkb20p
OwogICBpZGxBcnJheS5hZGRfZGVwZW5kZW5jeV9pZGxzKGh0bWwpOwogICBpZGxBcnJheS5hZGRf
b2JqZWN0cyh7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvbG9hZF93
b3JrZXIuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvbG9hZF93b3JrZXIuanMKaW5k
ZXggMmM4MGYyNWEzZGIyODMxZjRiMWU1NjMzYTQ1NTQ4MWQ3YTM1YjRjNy4uMThjNjczYmViY2Fi
OTgyNzcwN2RhODU1ZjM4YTc1NDliNjk1ZGE3ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvcmVzb3VyY2VzL2xvYWRfd29ya2VyLmpzCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291
cmNlcy9sb2FkX3dvcmtlci5qcwpAQCAtMSwyOSArMSwyOSBAQAotc2VsZi5vbm1lc3NhZ2UgPSBm
dW5jdGlvbiAoZXZ0KSB7Ci0gICAgaWYgKGV2dC5kYXRhID09ICJ4aHIiKSB7Ci0gICAgICAgIHZh
ciB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKLSAgICAgICAgeGhyLm9wZW4oIkdFVCIsICJz
eW50aGVzaXplZC1yZXNwb25zZS50eHQiLCB0cnVlKTsKLSAgICAgICAgeGhyLnJlc3BvbnNlVHlw
ZSA9ICJ0ZXh0IjsKLSAgICAgICAgeGhyLnNlbmQoKTsKLSAgICAgICAgeGhyLm9ubG9hZCA9IGZ1
bmN0aW9uIChldnQpIHsKLSAgICAgICAgICAgIHBvc3RNZXNzYWdlKHhoci5yZXNwb25zZVRleHQp
OwotICAgICAgICB9OwotICAgICAgICB4aHIub25lcnJvciA9IGZ1bmN0aW9uKCkgewotICAgICAg
ICAgICAgcG9zdE1lc3NhZ2UoIlhIUiBmYWlsZWQhIik7Ci0gICAgICAgIH07Ci0gICAgfSBlbHNl
IGlmIChldnQuZGF0YSA9PSAiZmV0Y2giKSB7Ci0gICAgICAgIGZldGNoKCJzeW50aGVzaXplZC1y
ZXNwb25zZS50eHQiKQotICAgICAgICAgIC50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlKSB7Ci0gICAg
ICAgICAgICAgIHJldHVybiByZXNwb25zZS50ZXh0KCk7Ci0gICAgICAgICAgICB9KQotICAgICAg
ICAgIC50aGVuKGZ1bmN0aW9uKGRhdGEpIHsKLSAgICAgICAgICAgICAgcG9zdE1lc3NhZ2UoZGF0
YSk7Ci0gICAgICAgICAgICB9KQotICAgICAgICAgIC5jYXRjaChmdW5jdGlvbihlcnJvcikgewot
ICAgICAgICAgICAgICBwb3N0TWVzc2FnZSgiRmV0Y2ggZmFpbGVkISIpOwotICAgICAgICAgICAg
fSk7Ci0gICAgfSBlbHNlIGlmIChldnQuZGF0YSA9PSAiaW1wb3J0U2NyaXB0cyIpIHsKLSAgICAg
ICAgaW1wb3J0U2NyaXB0cygic3ludGhlc2l6ZWQtcmVzcG9uc2UuanMiKTsKLSAgICB9IGVsc2Ug
ewotICAgICAgICB0aHJvdyAiVW5leHBlY3RlZCBtZXNzYWdlISAiICsgZXZ0LmRhdGE7Ci0gICAg
fQorZnVuY3Rpb24gcnVuX3Rlc3QoZGF0YSwgc2VuZGVyKSB7CisgIGlmIChkYXRhID09PSAneGhy
JykgeworICAgIGNvbnN0IHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOworICAgIHhoci5vcGVu
KCdHRVQnLCAnc3ludGhlc2l6ZWQtcmVzcG9uc2UudHh0JywgdHJ1ZSk7CisgICAgeGhyLnJlc3Bv
bnNlVHlwZSA9ICd0ZXh0JzsKKyAgICB4aHIuc2VuZCgpOworICAgIHhoci5vbmxvYWQgPSBldnQg
PT4gc2VuZGVyLnBvc3RNZXNzYWdlKHhoci5yZXNwb25zZVRleHQpOworICAgIHhoci5vbmVycm9y
ID0gKCkgPT4gc2VuZGVyLnBvc3RNZXNzYWdlKCdYSFIgZmFpbGVkIScpOworICB9IGVsc2UgaWYg
KGRhdGEgPT09ICdmZXRjaCcpIHsKKyAgICBmZXRjaCgnc3ludGhlc2l6ZWQtcmVzcG9uc2UudHh0
JykKKyAgICAgICAgLnRoZW4ocmVzcG9uc2UgPT4gcmVzcG9uc2UudGV4dCgpKQorICAgICAgICAu
dGhlbihkYXRhID0+IHNlbmRlci5wb3N0TWVzc2FnZShkYXRhKSkKKyAgICAgICAgLmNhdGNoKGVy
cm9yID0+IHNlbmRlci5wb3N0TWVzc2FnZSgnRmV0Y2ggZmFpbGVkIScpKTsKKyAgfSBlbHNlIGlm
IChkYXRhID09PSAnaW1wb3J0U2NyaXB0cycpIHsKKyAgICBpbXBvcnRTY3JpcHRzKCdzeW50aGVz
aXplZC1yZXNwb25zZS5qcycpOworICAgIC8vIHxtZXNzYWdlfCBpcyBwcm92aWRlZCBieSAnc3lu
dGhlc2l6ZWQtcmVzcG9uc2UuanMnOworICAgIHNlbmRlci5wb3N0TWVzc2FnZShtZXNzYWdlKTsK
KyAgfSBlbHNlIHsKKyAgICBzZW5kZXIucG9zdE1lc3NhZ2UoJ1VuZXhwZWN0ZWQgbWVzc2FnZSEg
JyArIGRhdGEpOworICB9Cit9CisKKy8vIEVudHJ5IHBvaW50IGZvciBkZWRpY2F0ZWQgd29ya2Vy
cy4KK3NlbGYub25tZXNzYWdlID0gZXZ0ID0+IHJ1bl90ZXN0KGV2dC5kYXRhLCBzZWxmKTsKKwor
Ly8gRW50cnkgcG9pbnQgZm9yIHNoYXJlZCB3b3JrZXJzLgorc2VsZi5vbmNvbm5lY3QgPSBldnQg
PT4geworICBldnQucG9ydHNbMF0ub25tZXNzYWdlID0gZSA9PiBydW5fdGVzdChlLmRhdGEsIGV2
dC5wb3J0c1swXSk7CiB9OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2Vz
L25lc3RlZF9sb2FkX3dvcmtlci5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9uZXN0
ZWRfbG9hZF93b3JrZXIuanMKaW5kZXggNmUyZTllZGM0ZDhiMzVlMDNmNWFhNGIyOTk2NjgxMmFk
ZGY0MzQ0NC4uZWYwZWQ4ZmM3MDRjZWFhODFmMWVlZjhkNGVkNzVmZDA0MWJhYWU2ZCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL25lc3RlZF9sb2FkX3dvcmtlci5qcwor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvbmVzdGVkX2xvYWRfd29ya2VyLmpzCkBA
IC0xLDkgKzEsMjMgQEAKLXZhciB3b3JrZXIgPSBuZXcgV29ya2VyKCJsb2FkX3dvcmtlci5qcyIp
OwotCi1zZWxmLm9ubWVzc2FnZSA9IGZ1bmN0aW9uIChldnQpIHsKLSAgd29ya2VyLnBvc3RNZXNz
YWdlKGV2dC5kYXRhKTsKKy8vIEVudHJ5IHBvaW50IGZvciBkZWRpY2F0ZWQgd29ya2Vycy4KK3Nl
bGYub25tZXNzYWdlID0gZXZ0ID0+IHsKKyAgdHJ5IHsKKyAgICBjb25zdCB3b3JrZXIgPSBuZXcg
V29ya2VyKCdsb2FkX3dvcmtlci5qcycpOworICAgIHdvcmtlci5vbm1lc3NhZ2UgPSBldnQgPT4g
c2VsZi5wb3N0TWVzc2FnZShldnQuZGF0YSk7CisgICAgd29ya2VyLnBvc3RNZXNzYWdlKGV2dC5k
YXRhKTsKKyAgfSBjYXRjaCAoZXJyKSB7CisgICAgc2VsZi5wb3N0TWVzc2FnZSgnVW5leHBlY3Rl
ZCBlcnJvciEgJyArIGVyci5tZXNzYWdlKTsKKyAgfQogfTsKIAotd29ya2VyLm9ubWVzc2FnZSA9
IGZ1bmN0aW9uIChldnQpIHsKLSAgc2VsZi5wb3N0TWVzc2FnZShldnQuZGF0YSk7Ci19CisvLyBF
bnRyeSBwb2ludCBmb3Igc2hhcmVkIHdvcmtlcnMuCitzZWxmLm9uY29ubmVjdCA9IGV2dCA9PiB7
CisgIGV2dC5wb3J0c1swXS5vbm1lc3NhZ2UgPSBlID0+IHsKKyAgICB0cnkgeworICAgICAgY29u
c3Qgd29ya2VyID0gbmV3IFdvcmtlcignbG9hZF93b3JrZXIuanMnKTsKKyAgICAgIHdvcmtlci5v
bm1lc3NhZ2UgPSBlID0+IGV2dC5wb3J0c1swXS5wb3N0TWVzc2FnZShlLmRhdGEpOworICAgICAg
d29ya2VyLnBvc3RNZXNzYWdlKGV2dC5kYXRhKTsKKyAgICB9IGNhdGNoIChlcnIpIHsKKyAgICAg
IGV2dC5wb3J0c1swXS5wb3N0TWVzc2FnZSgnVW5leHBlY3RlZCBlcnJvciEgJyArIGVyci5tZXNz
YWdlKTsKKyAgICB9CisgIH07Cit9OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVz
b3VyY2VzL3Bvc3RtZXNzYWdlLW9uLWxvYWQtd29ya2VyLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
cmVzb3VyY2VzL3Bvc3RtZXNzYWdlLW9uLWxvYWQtd29ya2VyLmpzCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMyYjBi
Y2I4YmZiMGFhMGE3NjA3MTQzODQwZjFmNTZhMzhkOGIwYTMKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvcG9zdG1lc3NhZ2Utb24tbG9hZC13b3JrZXIuanMK
QEAgLTAsMCArMSw5IEBACitpZiAoJ0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlJyBpbiBzZWxm
ICYmCisgICAgc2VsZiBpbnN0YW5jZW9mIERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlKSB7Cisg
IHBvc3RNZXNzYWdlKCdkZWRpY2F0ZWQgd29ya2VyIHNjcmlwdCBsb2FkZWQnKTsKK30gZWxzZSBp
ZiAoJ1NoYXJlZFdvcmtlckdsb2JhbFNjb3BlJyBpbiBzZWxmICYmCisgICAgc2VsZiBpbnN0YW5j
ZW9mIFNoYXJlZFdvcmtlckdsb2JhbFNjb3BlKSB7CisgIHNlbGYub25jb25uZWN0ID0gZXZ0ID0+
IHsKKyAgICBldnQucG9ydHNbMF0ucG9zdE1lc3NhZ2UoJ3NoYXJlZCB3b3JrZXIgc2NyaXB0IGxv
YWRlZCcpOworICB9OworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2Vz
L3NoYXJlZC13b3JrZXItY29udHJvbGxlZC5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNl
cy9zaGFyZWQtd29ya2VyLWNvbnRyb2xsZWQuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDFjY2MyZmUzYmRiZTY4YWQyMDBmNzAzN2ZkNWM2OGQ3Njg5MzE4MzQuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVz
b3VyY2VzL3NoYXJlZC13b3JrZXItY29udHJvbGxlZC5qcworKysgL2Rldi9udWxsCkBAIC0xLDgg
KzAsMCBAQAotb25jb25uZWN0ID0gZnVuY3Rpb24oZSkgewotICB2YXIgcG9ydCA9IGUucG9ydHNb
MF07Ci0gIHZhciB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKLSAgeGhyLm9ubG9hZCA9IGZ1
bmN0aW9uKCkgeyBwb3J0LnBvc3RNZXNzYWdlKHRoaXMucmVzcG9uc2VUZXh0KTsgfTsKLSAgeGhy
Lm9uZXJyb3IgPSBmdW5jdGlvbihlKSB7IHBvcnQucG9zdE1lc3NhZ2UoZSk7IH07Ci0gIHhoci5v
cGVuKCdHRVQnLCAnZHVtbXkudHh0P3NpbXBsZScsIHRydWUpOwotICB4aHIuc2VuZCgpOwotfTsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9zaGFyZWQtd29ya2VyLWlt
cG9ydC5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9zaGFyZWQtd29ya2VyLWltcG9y
dC5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2M1NTRiZDc0MTUyMDliMjY2ZmZm
Y2ViOTAxODVhNzllYmQ3NTZjNS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvc2hhcmVkLXdvcmtlci1pbXBv
cnQuanMKKysrIC9kZXYvbnVsbApAQCAtMSArMCwwIEBACi1pbXBvcnRTY3JpcHRzKCdpbXBvcnQt
ZHVtbXktc2hhcmVkLXdvcmtlci5qcycpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
cmVzb3VyY2VzL3VwZGF0ZS1kdXJpbmctaW5zdGFsbGF0aW9uLXdvcmtlci5qcyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL3Jlc291cmNlcy91cGRhdGUtZHVyaW5nLWluc3RhbGxhdGlvbi13b3JrZXIuanMK
aW5kZXggM2Y4OTg4MWMwNDM4NDU5MGI4YjEzMmMzOTI5NzcyNTZiZmI4NDdlZC4uZjE5OTdiZDgy
NGU4ZTE2NWNjMTE5YTUyMDgyZDc0MmJkNjNmNGU0ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvcmVzb3VyY2VzL3VwZGF0ZS1kdXJpbmctaW5zdGFsbGF0aW9uLXdvcmtlci5qcworKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvdXBkYXRlLWR1cmluZy1pbnN0YWxsYXRpb24t
d29ya2VyLmpzCkBAIC0xNCw2ICsxNCw5IEBAIGFkZEV2ZW50TGlzdGVuZXIoJ2luc3RhbGwnLCBl
dmVudCA9PiB7CiB9KTsKIAogYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIGV2ZW50ID0+IHsK
KyAgbGV0IHJlc29sdmVXYWl0VW50aWw7CisgIGV2ZW50LndhaXRVbnRpbChuZXcgUHJvbWlzZShy
ZXNvbHZlID0+IHsgcmVzb2x2ZVdhaXRVbnRpbCA9IHJlc29sdmU7IH0pKTsKKwogICAvLyBVc2Ug
YSBkZWRpY2F0ZWQgTWVzc2FnZUNoYW5uZWwgZm9yIGV2ZXJ5IHJlcXVlc3Qgc28gc2VuZGVycyBj
YW4gd2FpdCBmb3IKICAgLy8gaW5kaXZpZHVhbCByZXF1ZXN0cyB0byBmaW5pc2gsIGFuZCBjb25j
dXJyZW50IHJlcXVlc3RzICh0byBkaWZmZXJlbnQKICAgLy8gd29ya2VycykgZG9uJ3QgY2F1c2Ug
cmFjZSBjb25kaXRpb25zLgpAQCAtMjMsMTMgKzI2LDEzIEBAIGFkZEV2ZW50TGlzdGVuZXIoJ21l
c3NhZ2UnLCBldmVudCA9PiB7CiAgICAgICBjYXNlICdhd2FpdEluc3RhbGxFdmVudCc6CiAgICAg
ICAgIGluc3RhbGxFdmVudEZpcmVkLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcG9ydC5wb3N0
TWVzc2FnZSgnaW5zdGFsbEV2ZW50RmlyZWQnKTsKLSAgICAgICAgfSk7CisgICAgICAgIH0pLmZp
bmFsbHkocmVzb2x2ZVdhaXRVbnRpbCk7CiAgICAgICAgIGJyZWFrOwogCiAgICAgICBjYXNlICdm
aW5pc2hJbnN0YWxsJzoKICAgICAgICAgaW5zdGFsbEZpbmlzaGVkLnRoZW4oKCkgPT4gewogICAg
ICAgICAgICAgcG9ydC5wb3N0TWVzc2FnZSgnaW5zdGFsbEZpbmlzaGVkJyk7Ci0gICAgICAgIH0p
OworICAgICAgICB9KS5maW5hbGx5KHJlc29sdmVXYWl0VW50aWwpOwogICAgICAgICBmaW5pc2hJ
bnN0YWxsKCk7CiAgICAgICAgIGJyZWFrOwogCkBAIC00NCwxMyArNDcsMTQgQEAgYWRkRXZlbnRM
aXN0ZW5lcignbWVzc2FnZScsIGV2ZW50ID0+IHsKICAgICAgICAgICAgICAgICBzdWNjZXNzOiBm
YWxzZSwKICAgICAgICAgICAgICAgICBleGNlcHRpb246IGV4Y2VwdGlvbi5uYW1lLAogICAgICAg
ICAgICAgfSk7Ci0gICAgICAgIH0pOworICAgICAgICB9KS5maW5hbGx5KHJlc29sdmVXYWl0VW50
aWwpOwogICAgICAgICBwb3J0LnBvc3RNZXNzYWdlKGNoYW5uZWwucG9ydDEsIFtjaGFubmVsLnBv
cnQxXSk7CiAgICAgICAgIGJyZWFrOwogICAgICAgfQogCiAgICAgICBkZWZhdWx0OgogICAgICAg
ICBwb3J0LnBvc3RNZXNzYWdlKCdVbmV4cGVjdGVkIGNvbW1hbmQgJyArIGV2ZW50LmRhdGEpOwor
ICAgICAgICByZXNvbHZlV2FpdFVudGlsKCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgfTsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy91cGRhdGUtc21hbGxlci1i
b2R5LWFmdGVyLXVwZGF0ZS13b3JrZXIuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMv
dXBkYXRlLXNtYWxsZXItYm9keS1hZnRlci11cGRhdGUtd29ya2VyLmpzCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ0
M2Y2YjJmNWMzZDY0MTU2YWU2ODk3MGVhYjNhNjU1MTFjNWM5NjAKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvdXBkYXRlLXNtYWxsZXItYm9keS1hZnRlci11
cGRhdGUtd29ya2VyLmpzCkBAIC0wLDAgKzEgQEAKKy8vIEhlbGxvIHdvcmxkIQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3VwZGF0ZS1zbWFsbGVyLWJvZHktYmVmb3Jl
LXVwZGF0ZS13b3JrZXIuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvdXBkYXRlLXNt
YWxsZXItYm9keS1iZWZvcmUtdXBkYXRlLXdvcmtlci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMGM4NzgzYTcw
MjU1MDEyZTU3NjM0MDNkMTU0NjdkMTQ4YjI0OWIwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvcmVzb3VyY2VzL3VwZGF0ZS1zbWFsbGVyLWJvZHktYmVmb3JlLXVwZGF0ZS13
b3JrZXIuanMKQEAgLTAsMCArMSwyIEBACisvLyBIZWxsbyB3b3JsZCEKKy8vICoqd2l0aCBleHRy
YSBib2R5KioKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy91cGRhdGUt
d29ya2VyLWZyb20tZmlsZS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy91cGRhdGUt
d29ya2VyLWZyb20tZmlsZS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NjA0NzE5YzhlMGM1ZGFjZDIxNmJmOTY5
MjFkODI1ZGQwMjExYWVhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVz
b3VyY2VzL3VwZGF0ZS13b3JrZXItZnJvbS1maWxlLnB5CkBAIC0wLDAgKzEsMzEgQEAKK2ltcG9y
dCBvcworCitkZWYgc2VydmVfanNfZnJvbV9maWxlKHJlcXVlc3QsIHJlc3BvbnNlLCBmaWxlbmFt
ZSk6CisgIGJvZHkgPSAnJworICBwYXRoID0gb3MucGF0aC5qb2luKG9zLnBhdGguZGlybmFtZShf
X2ZpbGVfXyksIGZpbGVuYW1lKQorICB3aXRoIG9wZW4ocGF0aCwgJ3JiJykgYXMgZjoKKyAgICBi
b2R5ID0gZi5yZWFkKCkKKyAgcmV0dXJuICgKKyAgICBbCisgICAgICAoJ0NhY2hlLUNvbnRyb2wn
LCAnbm8tY2FjaGUsIG11c3QtcmV2YWxpZGF0ZScpLAorICAgICAgKCdQcmFnbWEnLCAnbm8tY2Fj
aGUnKSwKKyAgICAgICgnQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2phdmFzY3JpcHQnKQor
ICAgIF0sIGJvZHkpCisKK2RlZiBtYWluKHJlcXVlc3QsIHJlc3BvbnNlKToKKyAga2V5ID0gcmVx
dWVzdC5HRVRbIktleSJdCisKKyAgdmlzaXRlZF9jb3VudCA9IHJlcXVlc3Quc2VydmVyLnN0YXNo
LnRha2Uoa2V5KQorICBpZiB2aXNpdGVkX2NvdW50IGlzIE5vbmU6CisgICAgdmlzaXRlZF9jb3Vu
dCA9IDAKKworICAjIEtlZXAgaG93IG1hbnkgdGltZXMgdGhlIHRlc3QgcmVxdWVzdGVkIHRoaXMg
cmVzb3VyY2UuCisgIHZpc2l0ZWRfY291bnQgKz0gMQorICByZXF1ZXN0LnNlcnZlci5zdGFzaC5w
dXQoa2V5LCB2aXNpdGVkX2NvdW50KQorCisgICMgU2VydmUgYSBmaWxlIGJhc2VkIG9uIGhvdyBt
YW55IHRpbWVzIGl0J3MgcmVxdWVzdGVkLgorICBpZiB2aXNpdGVkX2NvdW50ID09IDE6CisgICAg
cmV0dXJuIHNlcnZlX2pzX2Zyb21fZmlsZShyZXF1ZXN0LCByZXNwb25zZSwgcmVxdWVzdC5HRVRb
IkZpcnN0Il0pCisgIGlmIHZpc2l0ZWRfY291bnQgPT0gMjoKKyAgICByZXR1cm4gc2VydmVfanNf
ZnJvbV9maWxlKHJlcXVlc3QsIHJlc3BvbnNlLCByZXF1ZXN0LkdFVFsiU2Vjb25kIl0pCisgIHJh
aXNlICJVbmtub3duIHN0YXRlIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3Vy
Y2VzL3VwZGF0ZS13b3JrZXIucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvdXBkYXRl
LXdvcmtlci5weQppbmRleCBiYzliMzJhZDNlNjg4NzBkOWY1NDA1MjRlNzBjZDc5NDczNDZlNWM4
Li5kMjUxNzkzMDRhNzM2NjAxMjIwMzZlNWQ1ZmVjMjA2N2RjNjE1OTdhIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvdXBkYXRlLXdvcmtlci5weQorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9yZXNvdXJjZXMvdXBkYXRlLXdvcmtlci5weQpAQCAtMSw0NiArMSw2MCBAQAot
aW1wb3J0IHRpbWUKK2ltcG9ydCB1cmxsaWIKKworZGVmIHJlZGlyZWN0X3Jlc3BvbnNlKHJlcXVl
c3QsIHJlc3BvbnNlLCB2aXNpdGVkX2NvdW50KToKKyAgIyB8dmlzaXRlZF9jb3VudHwgaXMgdXNl
ZCBhcyBhIHVuaXF1ZSBpZCB0byBkaWZmZXJlbnRpYXRlIHJlc3BvbnNlcworICAjIGV2ZXJ5IHRp
bWUuCisgIGxvY2F0aW9uID0gJ2VtcHR5LmpzJworICBpZiAnUmVkaXJlY3QnIGluIHJlcXVlc3Qu
R0VUOgorICAgICAgbG9jYXRpb24gPSB1cmxsaWIudW5xdW90ZShyZXF1ZXN0LkdFVFsnUmVkaXJl
Y3QnXSkKKyAgcmV0dXJuICgzMDEsCisgIFsKKyAgICAoJ0NhY2hlLUNvbnRyb2wnLCAnbm8tY2Fj
aGUsIG11c3QtcmV2YWxpZGF0ZScpLAorICAgICgnUHJhZ21hJywgJ25vLWNhY2hlJyksCisgICAg
KCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vamF2YXNjcmlwdCcpLAorICAgICgnTG9jYXRp
b24nLCBsb2NhdGlvbiksCisgIF0sCisgICcvKiAlcyAqLycgJSBzdHIodmlzaXRlZF9jb3VudCkp
CisKK2RlZiBub3RfZm91bmRfcmVzcG9uc2UoKToKKyAgcmV0dXJuIDQwNCwgWygnQ29udGVudC1U
eXBlJywgJ3RleHQvcGxhaW4nKV0sICJQYWdlIG5vdCBmb3VuZCIKKworZGVmIG9rX3Jlc3BvbnNl
KHJlcXVlc3QsIHJlc3BvbnNlLCB2aXNpdGVkX2NvdW50LAorICAgICAgICAgICAgICAgIGV4dHJh
X2JvZHk9JycsIG1pbWVfdHlwZT0nYXBwbGljYXRpb24vamF2YXNjcmlwdCcpOgorICAjIHx2aXNp
dGVkX2NvdW50fCBpcyB1c2VkIGFzIGEgdW5pcXVlIGlkIHRvIGRpZmZlcmVudGlhdGUgcmVzcG9u
c2VzCisgICMgZXZlcnkgdGltZS4KKyAgcmV0dXJuICgKKyAgICBbCisgICAgICAoJ0NhY2hlLUNv
bnRyb2wnLCAnbm8tY2FjaGUsIG11c3QtcmV2YWxpZGF0ZScpLAorICAgICAgKCdQcmFnbWEnLCAn
bm8tY2FjaGUnKSwKKyAgICAgICgnQ29udGVudC1UeXBlJywgbWltZV90eXBlKQorICAgIF0sCisg
ICAgJy8qICVzICovICVzJyAlIChzdHIodmlzaXRlZF9jb3VudCksIGV4dHJhX2JvZHkpKQogCiBk
ZWYgbWFpbihyZXF1ZXN0LCByZXNwb25zZSk6Ci0gICAgIyBTZXQgbW9kZSB0byAnaW5pdCcgZm9y
IGluaXRpYWwgZmV0Y2guCi0gICAgbW9kZSA9ICdpbml0JwotICAgIGlmICdtb2RlJyBpbiByZXF1
ZXN0LmNvb2tpZXM6Ci0gICAgICAgIG1vZGUgPSByZXF1ZXN0LmNvb2tpZXNbJ21vZGUnXS52YWx1
ZQotCi0gICAgIyBuby1jYWNoZSBpdHNlbGYgdG8gZW5zdXJlIHRoZSB1c2VyIGFnZW50IGZpbmRz
IGEgbmV3IHZlcnNpb24gZm9yIGVhY2ggdXBkYXRlLgotICAgIGhlYWRlcnMgPSBbKCdDYWNoZS1D
b250cm9sJywgJ25vLWNhY2hlLCBtdXN0LXJldmFsaWRhdGUnKSwKLSAgICAgICAgICAgICAgICgn
UHJhZ21hJywgJ25vLWNhY2hlJyldCi0KLSAgICBjb250ZW50X3R5cGUgPSAnJwotICAgIGV4dHJh
X2JvZHkgPSAnJwotCi0gICAgaWYgbW9kZSA9PSAnaW5pdCc6Ci0gICAgICAgICMgU2V0IGEgbm9y
bWFsIG1pbWV0eXBlLgotICAgICAgICAjIFNldCBjb29raWUgdmFsdWUgdG8gJ25vcm1hbCcgc28g
dGhlIG5leHQgZmV0Y2ggd2lsbCB3b3JrIGluICdub3JtYWwnIG1vZGUuCi0gICAgICAgIGNvbnRl
bnRfdHlwZSA9ICdhcHBsaWNhdGlvbi9qYXZhc2NyaXB0JwotICAgICAgICByZXNwb25zZS5zZXRf
Y29va2llKCdtb2RlJywgJ25vcm1hbCcpCi0gICAgZWxpZiBtb2RlID09ICdub3JtYWwnOgotICAg
ICAgICAjIFNldCBhIG5vcm1hbCBtaW1ldHlwZS4KLSAgICAgICAgIyBTZXQgY29va2llIHZhbHVl
IHRvICdlcnJvcicgc28gdGhlIG5leHQgZmV0Y2ggd2lsbCB3b3JrIGluICdlcnJvcicgbW9kZS4K
LSAgICAgICAgY29udGVudF90eXBlID0gJ2FwcGxpY2F0aW9uL2phdmFzY3JpcHQnCi0gICAgICAg
IHJlc3BvbnNlLnNldF9jb29raWUoJ21vZGUnLCAnZXJyb3InKTsKLSAgICBlbGlmIG1vZGUgPT0g
J2Vycm9yJzoKLSAgICAgICAgIyBTZXQgYSBkaXNhbGxvd2VkIG1pbWV0eXBlLgotICAgICAgICAj
IFNldCBjb29raWUgdmFsdWUgdG8gJ3N5bnRheC1lcnJvcicgc28gdGhlIG5leHQgZmV0Y2ggd2ls
bCB3b3JrIGluICdzeW50YXgtZXJyb3InIG1vZGUuCi0gICAgICAgIGNvbnRlbnRfdHlwZSA9ICd0
ZXh0L2h0bWwnCi0gICAgICAgIHJlc3BvbnNlLnNldF9jb29raWUoJ21vZGUnLCAnc3ludGF4LWVy
cm9yJyk7Ci0gICAgZWxpZiBtb2RlID09ICdzeW50YXgtZXJyb3InOgotICAgICAgICAjIFNldCBj
b29raWUgdmFsdWUgdG8gJ3Rocm93LWluc3RhbGwnIHNvIHRoZSBuZXh0IGZldGNoIHdpbGwgd29y
ayBpbiAndGhyb3ctaW5zdGFsbCcgbW9kZS4KLSAgICAgICAgY29udGVudF90eXBlID0gJ2FwcGxp
Y2F0aW9uL2phdmFzY3JpcHQnCi0gICAgICAgIHJlc3BvbnNlLnNldF9jb29raWUoJ21vZGUnLCAn
dGhyb3ctaW5zdGFsbCcpOwotICAgICAgICBleHRyYV9ib2R5ID0gJ2JhZHN5bnRheChpc2JhZDsn
Ci0gICAgZWxpZiBtb2RlID09ICd0aHJvdy1pbnN0YWxsJzoKLSAgICAgICAgIyBVbnNldCBhbmQg
ZGVsZXRlIGNvb2tpZSB0byBjbGVhbiB1cCB0aGUgdGVzdCBzZXR0aW5nLgotICAgICAgICBjb250
ZW50X3R5cGUgPSAnYXBwbGljYXRpb24vamF2YXNjcmlwdCcKLSAgICAgICAgcmVzcG9uc2UuZGVs
ZXRlX2Nvb2tpZSgnbW9kZScpCi0gICAgICAgIGV4dHJhX2JvZHkgPSAiYWRkRXZlbnRMaXN0ZW5l
cignaW5zdGFsbCcsIGZ1bmN0aW9uKGUpIHsgdGhyb3cgbmV3IEVycm9yKCdib29tJyk7IH0pOyIK
LQotICAgIGhlYWRlcnMuYXBwZW5kKCgnQ29udGVudC1UeXBlJywgY29udGVudF90eXBlKSkKLSAg
ICAjIFJldHVybiBhIGRpZmZlcmVudCBzY3JpcHQgZm9yIGVhY2ggYWNjZXNzLiAgVXNlIC50aW1l
KCkgYW5kIC5jbG9jaygpIGZvcgotICAgICMgYmVzdCB0aW1lIHJlc29sdXRpb24gYWNyb3NzIGRp
ZmZlcmVudCBwbGF0Zm9ybXMuCi0gICAgcmV0dXJuIGhlYWRlcnMsICcvKiAlcyAlcyAqLyAlcycg
JSAodGltZS50aW1lKCksIHRpbWUuY2xvY2soKSwgZXh0cmFfYm9keSkKKyAga2V5ID0gcmVxdWVz
dC5HRVRbIktleSJdCisgIG1vZGUgPSByZXF1ZXN0LkdFVFsiTW9kZSJdCisKKyAgdmlzaXRlZF9j
b3VudCA9IHJlcXVlc3Quc2VydmVyLnN0YXNoLnRha2Uoa2V5KQorICBpZiB2aXNpdGVkX2NvdW50
IGlzIE5vbmU6CisgICAgdmlzaXRlZF9jb3VudCA9IDAKKworICAjIEtlZXAgaG93IG1hbnkgdGlt
ZXMgdGhlIHRlc3QgcmVxdWVzdGVkIHRoaXMgcmVzb3VyY2UuCisgIHZpc2l0ZWRfY291bnQgKz0g
MQorICByZXF1ZXN0LnNlcnZlci5zdGFzaC5wdXQoa2V5LCB2aXNpdGVkX2NvdW50KQorCisgICMg
UmV0dXJuIGEgcmVzcG9uc2UgYmFzZWQgb24gfG1vZGV8IG9ubHkgd2hlbiBpdCdzIHRoZSBzZWNv
bmQgdGltZSAoPT0gdXBkYXRlKS4KKyAgaWYgdmlzaXRlZF9jb3VudCA9PSAyOgorICAgIGlmIG1v
ZGUgPT0gJ25vcm1hbCc6CisgICAgICByZXR1cm4gb2tfcmVzcG9uc2UocmVxdWVzdCwgcmVzcG9u
c2UsIHZpc2l0ZWRfY291bnQpCisgICAgaWYgbW9kZSA9PSAnYmFkX21pbWVfdHlwZSc6CisgICAg
ICByZXR1cm4gb2tfcmVzcG9uc2UocmVxdWVzdCwgcmVzcG9uc2UsIHZpc2l0ZWRfY291bnQsIG1p
bWVfdHlwZT0ndGV4dC9odG1sJykKKyAgICBpZiBtb2RlID09ICdub3RfZm91bmQnOgorICAgICAg
cmV0dXJuIG5vdF9mb3VuZF9yZXNwb25zZSgpCisgICAgaWYgbW9kZSA9PSAncmVkaXJlY3QnOgor
ICAgICAgcmV0dXJuIHJlZGlyZWN0X3Jlc3BvbnNlKHJlcXVlc3QsIHJlc3BvbnNlLCB2aXNpdGVk
X2NvdW50KQorICAgIGlmIG1vZGUgPT0gJ3N5bnRheF9lcnJvcic6CisgICAgICByZXR1cm4gb2tf
cmVzcG9uc2UocmVxdWVzdCwgcmVzcG9uc2UsIHZpc2l0ZWRfY291bnQsIGV4dHJhX2JvZHk9J2Jh
ZHN5bnRheChpc2JhZDsnKQorICAgIGlmIG1vZGUgPT0gJ3Rocm93X2luc3RhbGwnOgorICAgICAg
cmV0dXJuIG9rX3Jlc3BvbnNlKHJlcXVlc3QsIHJlc3BvbnNlLCB2aXNpdGVkX2NvdW50LCBleHRy
YV9ib2R5PSJhZGRFdmVudExpc3RlbmVyKCdpbnN0YWxsJywgZnVuY3Rpb24oZSkgeyB0aHJvdyBu
ZXcgRXJyb3IoJ2Jvb20nKTsgfSk7IikKIAorICByZXR1cm4gb2tfcmVzcG9uc2UocmVxdWVzdCwg
cmVzcG9uc2UsIHZpc2l0ZWRfY291bnQpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9y
ZXNvdXJjZXMvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvdzNj
LWltcG9ydC5sb2cKaW5kZXggOWViYzhiYzMxZmZjY2RlNzczNjNlOTg2MTE3M2QyNWU3NWEyZDIw
Mi4uOGYxYmNmZDM0NTQzYzI1ZDA3MTVlYjliMjZlNTIyZjM2ZDQ2NGE5NSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3czYy1pbXBvcnQubG9nCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL3Jlc291cmNlcy93M2MtaW1wb3J0LmxvZwpAQCAtNDMsNiArNDMsNyBAQCBMaXN0
IG9mIGZpbGVzOgogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9jbGllbnQtbmF2aWdhdGUt
ZnJhbWUuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9jbGllbnQtbmF2aWdhdGUt
d29ya2VyLmpzCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2NsaWVudC1uYXZpZ2F0ZWQt
ZnJhbWUuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9jbGllbnRzLWZyYW1lLWZy
ZWV6ZS5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2NsaWVudHMtZ2V0LWNsaWVu
dC10eXBlcy1mcmFtZS13b3JrZXIuanMKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvY2xp
ZW50cy1nZXQtY2xpZW50LXR5cGVzLWZyYW1lLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNv
dXJjZXMvY2xpZW50cy1nZXQtY2xpZW50LXR5cGVzLXNoYXJlZC13b3JrZXIuanMKQEAgLTYwLDEw
ICs2MSw3IEBAIExpc3Qgb2YgZmlsZXM6CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2Nv
cnMtYXBwcm92ZWQudHh0CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2NvcnMtYXBwcm92
ZWQudHh0LmhlYWRlcnMKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvY29ycy1kZW5pZWQu
dHh0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2R1bW15LXNoYXJlZC13b3JrZXItaW50
ZXJjZXB0b3IuanMKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZHVtbXktc2hhcmVkLXdv
cmtlci1pbnRlcmNlcHRvci5qcy5oZWFkZXJzCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2Vz
L2R1bW15LXdvcmtlci1pbnRlcmNlcHRvci5qcwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNl
cy9kdW1teS13b3JrZXItc2NyaXB0LnB5CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2R1
bW15Lmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZHVtbXkudHh0CiAvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvcmVzb3VyY2VzL2VjaG8tY29udGVudC5weQpAQCAtMTUyLDExICsxNTAsMTUg
QEAgTGlzdCBvZiBmaWxlczoKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvaW1tdXRhYmxl
LXByb3RvdHlwZS1zZXJ2aWNld29ya2VyLmpzCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2Vz
L2ltcG9ydC1taW1lLXR5cGUtd29ya2VyLnB5CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2Vz
L2ltcG9ydC1yZWxhdGl2ZS54c2wKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvaW1wb3J0
LXNjcmlwdHMtNDA0LWFmdGVyLXVwZGF0ZS1wbHVzLXVwZGF0ZS13b3JrZXIuanMKKy9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9yZXNvdXJjZXMvaW1wb3J0LXNjcmlwdHMtNDA0LWFmdGVyLXVwZGF0ZS5qcwor
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9pbXBvcnQtc2NyaXB0cy00MDQuanMKIC9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvaW1wb3J0LXNjcmlwdHMtZGlmZi1yZXNvdXJjZS1tYXAt
d29ya2VyLmpzCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ltcG9ydC1zY3JpcHRzLWVj
aG8ucHkKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvaW1wb3J0LXNjcmlwdHMtZ2V0LnB5
CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ltcG9ydC1zY3JpcHRzLW1pbWUtdHlwZXMt
d29ya2VyLmpzCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ltcG9ydC1zY3JpcHRzLXJl
ZGlyZWN0LWltcG9ydC5qcworL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9pbXBvcnQtc2Ny
aXB0cy1yZWRpcmVjdC1vbi1zZWNvbmQtdGltZS13b3JrZXIuanMKIC9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9yZXNvdXJjZXMvaW1wb3J0LXNjcmlwdHMtcmVkaXJlY3Qtd29ya2VyLmpzCiAvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvcmVzb3VyY2VzL2ltcG9ydC1zY3JpcHRzLXJlc291cmNlLW1hcC13b3JrZXIuanMK
IC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvaW1wb3J0LXNjcmlwdHMtdXBkYXRlZC1mbGFn
LXdvcmtlci5qcwpAQCAtMjI3LDYgKzIyOSw3IEBAIExpc3Qgb2YgZmlsZXM6CiAvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvcmVzb3VyY2VzL3Bvc3RtZXNzYWdlLWRpY3Rpb25hcnktdHJhbnNmZXJhYmxlcy13
b3JrZXIuanMKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvcG9zdG1lc3NhZ2UtZWNoby13
b3JrZXIuanMKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvcG9zdG1lc3NhZ2UtbXNncG9y
dC10by1jbGllbnQtd29ya2VyLmpzCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3Bvc3Rt
ZXNzYWdlLW9uLWxvYWQtd29ya2VyLmpzCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3Bv
c3RtZXNzYWdlLXRvLWNsaWVudC13b3JrZXIuanMKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJj
ZXMvcG9zdG1lc3NhZ2UtdHJhbnNmZXJhYmxlcy13b3JrZXIuanMKIC9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9yZXNvdXJjZXMvcG9zdG1lc3NhZ2Utd29ya2VyLmpzCkBAIC0yNjUsOCArMjY4LDYgQEAgTGlz
dCBvZiBmaWxlczoKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvc2VydmljZS13b3JrZXIt
aW50ZXJjZXB0aW9uLW5ldHdvcmstd29ya2VyLmpzCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3Vy
Y2VzL3NlcnZpY2Utd29ya2VyLWludGVyY2VwdGlvbi1zZXJ2aWNlLXdvcmtlci5qcwogL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL3Jlc291cmNlcy9zZXJ2aWNlLXdvcmtlci1pbnRlcmNlcHRpb24tc3RhdGlj
LWltcG9ydC13b3JrZXIuanMKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvc2hhcmVkLXdv
cmtlci1jb250cm9sbGVkLmpzCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3NoYXJlZC13
b3JrZXItaW1wb3J0LmpzCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3NpbGVuY2Uub2dh
CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3NpbXBsZS1pbnRlcmNlcHQtd29ya2VyLmpz
CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3NpbXBsZS1pbnRlcmNlcHQtd29ya2VyLmpz
LmhlYWRlcnMKQEAgLTI5NSw2ICsyOTYsOSBAQCBMaXN0IG9mIGZpbGVzOgogL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL3Jlc291cmNlcy91cGRhdGUtbm9jb29raWUtd29ya2VyLnB5CiAvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvcmVzb3VyY2VzL3VwZGF0ZS1yZWNvdmVyeS13b3JrZXIucHkKIC9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9yZXNvdXJjZXMvdXBkYXRlLXJlZ2lzdHJhdGlvbi13aXRoLXR5cGUucHkKKy9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9yZXNvdXJjZXMvdXBkYXRlLXNtYWxsZXItYm9keS1hZnRlci11cGRhdGUtd29y
a2VyLmpzCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3VwZGF0ZS1zbWFsbGVyLWJvZHkt
YmVmb3JlLXVwZGF0ZS13b3JrZXIuanMKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvdXBk
YXRlLXdvcmtlci1mcm9tLWZpbGUucHkKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvdXBk
YXRlLXdvcmtlci5weQogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy91cGRhdGVfc2hlbGwu
cHkKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvdnR0LWZyYW1lLmh0bWwKQEAgLTMwNCw3
ICszMDgsNiBAQCBMaXN0IG9mIGZpbGVzOgogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy93
aW5kb3djbGllbnQtbmF2aWdhdGUtd29ya2VyLmpzCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3Vy
Y2VzL3dvcmtlci1jbGllbnQtaWQtd29ya2VyLmpzCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3Vy
Y2VzL3dvcmtlci1mZXRjaGluZy1jcm9zcy1vcmlnaW4uanMKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9y
ZXNvdXJjZXMvd29ya2VyLWludGVyY2VwdGlvbi1pZnJhbWUuaHR0cHMuaHRtbAogL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL3Jlc291cmNlcy93b3JrZXItaW50ZXJjZXB0aW9uLXJlZGlyZWN0LXNlcnZpY2V3
b3JrZXIuanMKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvd29ya2VyLWludGVyY2VwdGlv
bi1yZWRpcmVjdC13ZWJ3b3JrZXIuanMKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvd29y
a2VyLWxvYWQtaW50ZXJjZXB0b3IuanMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jl
c291cmNlcy93b3JrZXItaW50ZXJjZXB0aW9uLWlmcmFtZS5odHRwcy5odG1sIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvcmVzb3VyY2VzL3dvcmtlci1pbnRlcmNlcHRpb24taWZyYW1lLmh0dHBzLmh0bWwK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg0MjA0YTNlZTVkZjFmYzNhNzE3ODQyMTUw
NzFiMTRmMGM2NWY5ZjIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3dvcmtlci1pbnRlcmNlcHRpb24taWZy
YW1lLmh0dHBzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw1NSArMCwwIEBACi08c2NyaXB0IHNy
Yz0iL2NvbW1vbi9nZXQtaG9zdC1pbmZvLnN1Yi5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0i
L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0idGVzdC1o
ZWxwZXJzLnN1Yi5qcz9waXBlPXN1YiI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotdmFyIGhvc3RfaW5m
byA9IGdldF9ob3N0X2luZm8oKTsKLQotZnVuY3Rpb24gYm9pbGVycGxhdGVfdGVzdCh1cmwsIG1z
ZykgewotICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsK
LSAgICAgICAgICB2YXIgd29ya2VyID0gbmV3IFdvcmtlcih1cmwpOwotICAgICAgICAgIHdvcmtl
ci5vbm1lc3NhZ2UgPSBmdW5jdGlvbihlKSB7IHJlc29sdmUoZS5kYXRhKSB9OwotICAgICAgICAg
IHdvcmtlci5vbmVycm9yID0gZnVuY3Rpb24oZSkgeyByZWplY3QoZSkgfTsKLSAgICAgICAgICB3
b3JrZXIucG9zdE1lc3NhZ2UobXNnKTsKLSAgICAgICAgfSkKLSAgICAgIC50aGVuKGZ1bmN0aW9u
KGRhdGEpIHsKLSAgICAgICAgICBhc3NlcnRfZXF1YWxzKGRhdGEsICJUaGlzIGxvYWQgd2FzIHN1
Y2Nlc3NmdWxseSBpbnRlcmNlcHRlZC4iKTsKLSAgICAgICAgfSk7Ci19Ci0KLWZ1bmN0aW9uIHho
cl90ZXN0KCkgewotICAgIHJldHVybiBib2lsZXJwbGF0ZV90ZXN0KCJsb2FkX3dvcmtlci5qcyIs
ICJ4aHIiKTsKLX0KLQotZnVuY3Rpb24gZmV0Y2hfdGVzdCgpIHsKLSAgICByZXR1cm4gYm9pbGVy
cGxhdGVfdGVzdCgibG9hZF93b3JrZXIuanMiLCAiZmV0Y2giKTsKLX0KLQotZnVuY3Rpb24gaW1w
b3J0U2NyaXB0c190ZXN0KCkgewotICAgIHJldHVybiBib2lsZXJwbGF0ZV90ZXN0KCJsb2FkX3dv
cmtlci5qcyIsICJpbXBvcnRTY3JpcHRzIik7Ci19Ci0KLWZ1bmN0aW9uIG5lc3RlZF93b3JrZXJf
eGhyX3Rlc3QoKSB7Ci0gICAgcmV0dXJuIGJvaWxlcnBsYXRlX3Rlc3QoIm5lc3RlZF9sb2FkX3dv
cmtlci5qcyIsICJ4aHIiKTsKLX0KLQotZnVuY3Rpb24gbmVzdGVkX3dvcmtlcl9mZXRjaF90ZXN0
KCkgewotICAgIHJldHVybiBib2lsZXJwbGF0ZV90ZXN0KCJuZXN0ZWRfbG9hZF93b3JrZXIuanMi
LCAiZmV0Y2giKTsKLX0KLQotZnVuY3Rpb24gbmVzdGVkX3dvcmtlcl9pbXBvcnRTY3JpcHRzX3Rl
c3QoKSB7Ci0gICAgcmV0dXJuIGJvaWxlcnBsYXRlX3Rlc3QoIm5lc3RlZF9sb2FkX3dvcmtlci5q
cyIsICJpbXBvcnRTY3JpcHRzIik7Ci19Ci0KLXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtZXNz
YWdlJywgZnVuY3Rpb24oZXZ0KSB7Ci0gICAgdmFyIHBvcnQgPSBldnQucG9ydHNbMF07Ci0gICAg
eGhyX3Rlc3QoKQotICAgICAgLnRoZW4oZmV0Y2hfdGVzdCkKLSAgICAgIC50aGVuKGltcG9ydFNj
cmlwdHNfdGVzdCkKLSAgICAgIC50aGVuKG5lc3RlZF93b3JrZXJfeGhyX3Rlc3QpCi0gICAgICAu
dGhlbihuZXN0ZWRfd29ya2VyX2ZldGNoX3Rlc3QpCi0gICAgICAudGhlbihuZXN0ZWRfd29ya2Vy
X2ltcG9ydFNjcmlwdHNfdGVzdCkKLSAgICAgIC50aGVuKGZ1bmN0aW9uKCkgeyBwb3J0LnBvc3RN
ZXNzYWdlKHtyZXN1bHRzOiAnZmluaXNoJ30pOyB9KQotICAgICAgLmNhdGNoKGZ1bmN0aW9uKGUp
IHsgcG9ydC5wb3N0TWVzc2FnZSh7cmVzdWx0czogJ2ZhaWx1cmU6JyArIGV9KTsgfSk7Ci0gIH0p
OwotCi08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy93
b3JrZXItbG9hZC1pbnRlcmNlcHRvci5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy93
b3JrZXItbG9hZC1pbnRlcmNlcHRvci5qcwppbmRleCBhNWY2NWMzMjE2ZTQ0NjMyZmYwNTJiYWMw
NDQ4MzE2ZjI1ZDQ0M2M2Li5lYmMwZGI2N2FhNTA0NTg0MmE1MWFmZDIyNTY3MWZhMGM3ODI2N2U5
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvd29ya2VyLWxvYWQtaW50
ZXJjZXB0b3IuanMKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3dvcmtlci1sb2Fk
LWludGVyY2VwdG9yLmpzCkBAIC0xLDE1ICsxLDE2IEBACiBpbXBvcnRTY3JpcHRzKCcvY29tbW9u
L2dldC1ob3N0LWluZm8uc3ViLmpzJyk7CiAKLXZhciByZXNwb25zZV90ZXh0ID0gIlRoaXMgbG9h
ZCB3YXMgc3VjY2Vzc2Z1bGx5IGludGVyY2VwdGVkLiI7Ci12YXIgcmVzcG9uc2Vfc2NyaXB0ID0g
InBvc3RNZXNzYWdlKFwiVGhpcyBsb2FkIHdhcyBzdWNjZXNzZnVsbHkgaW50ZXJjZXB0ZWQuXCIp
OyI7Citjb25zdCByZXNwb25zZV90ZXh0ID0gJ1RoaXMgbG9hZCB3YXMgc3VjY2Vzc2Z1bGx5IGlu
dGVyY2VwdGVkLic7Citjb25zdCByZXNwb25zZV9zY3JpcHQgPQorICAgIGBjb25zdCBtZXNzYWdl
ID0gJ1RoaXMgbG9hZCB3YXMgc3VjY2Vzc2Z1bGx5IGludGVyY2VwdGVkLic7YDsKIAotc2VsZi5v
bmZldGNoID0gZnVuY3Rpb24oZXZlbnQpIHsKLSAgICB2YXIgdXJsID0gZXZlbnQucmVxdWVzdC51
cmw7Ci0gICAgaWYgKHVybC5pbmRleE9mKCJzeW50aGVzaXplZC1yZXNwb25zZS50eHQiKSAhPSAt
MSkgewotICAgICAgICBldmVudC5yZXNwb25kV2l0aChuZXcgUmVzcG9uc2UocmVzcG9uc2VfdGV4
dCkpOwotICAgIH0gZWxzZSBpZiAodXJsLmluZGV4T2YoInN5bnRoZXNpemVkLXJlc3BvbnNlLmpz
IikgIT0gLTEpIHsKLSAgICAgIGV2ZW50LnJlc3BvbmRXaXRoKG5ldyBSZXNwb25zZSgKLSAgICAg
ICAgICByZXNwb25zZV9zY3JpcHQsCi0gICAgICAgICAge2hlYWRlcnM6IHsnQ29udGVudC1UeXBl
JzogJ2FwcGxpY2F0aW9uL2phdmFzY3JpcHQnfX0pKTsKLSAgICB9CitzZWxmLm9uZmV0Y2ggPSBl
dmVudCA9PiB7CisgIGNvbnN0IHVybCA9IGV2ZW50LnJlcXVlc3QudXJsOworICBpZiAodXJsLmlu
ZGV4T2YoJ3N5bnRoZXNpemVkLXJlc3BvbnNlLnR4dCcpICE9IC0xKSB7CisgICAgZXZlbnQucmVz
cG9uZFdpdGgobmV3IFJlc3BvbnNlKHJlc3BvbnNlX3RleHQpKTsKKyAgfSBlbHNlIGlmICh1cmwu
aW5kZXhPZignc3ludGhlc2l6ZWQtcmVzcG9uc2UuanMnKSAhPSAtMSkgeworICAgIGV2ZW50LnJl
c3BvbmRXaXRoKG5ldyBSZXNwb25zZSgKKyAgICAgICAgcmVzcG9uc2Vfc2NyaXB0LAorICAgICAg
ICB7aGVhZGVyczogeydDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vamF2YXNjcmlwdCd9fSkp
OworICB9CiB9OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvc2hhcmVkLXdvcmtlci1j
b250cm9sbGVkLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9zaGFyZWQtd29ya2VyLWNv
bnRyb2xsZWQuaHR0cHMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDMyMGMw
MmE0ZmEyYjgwNjZiYzZmNjAzYmY3YWJjM2VlZmUxYzNiMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9zaGFyZWQtd29ya2Vy
LWNvbnRyb2xsZWQuaHR0cHMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDg2ICswLDAgQEAKLTwh
RE9DVFlQRSBodG1sPgotPHRpdGxlPlNlcnZpY2UgV29ya2VyOiBjb250cm9sbGluZyBhIFNoYXJl
ZFdvcmtlcjwvdGl0bGU+Ci08c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Rlc3QtaGVscGVycy5zdWIuanMiPjwv
c2NyaXB0PgotPGJvZHk+Ci08c2NyaXB0PgotcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKLSAg
ICB2YXIgc2hhcmVkX3dvcmtlciA9ICdyZXNvdXJjZXMvc2hhcmVkLXdvcmtlci1jb250cm9sbGVk
LmpzJzsKLSAgICB2YXIgc2VydmljZV93b3JrZXIgPSAncmVzb3VyY2VzL3NpbXBsZS1pbnRlcmNl
cHQtd29ya2VyLmpzJzsKLSAgICB2YXIgc2NvcGUgPSBzaGFyZWRfd29ya2VyOwotCi0gICAgcmV0
dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHNlcnZpY2Vfd29y
a2VyLCBzY29wZSkKLSAgICAgIC50aGVuKGZ1bmN0aW9uKHIpIHsKLSAgICAgICAgICB0LmFkZF9j
bGVhbnVwKGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICByZXR1cm4gc2VydmljZV93b3JrZXJf
dW5yZWdpc3Rlcih0LCBzY29wZSk7Ci0gICAgICAgICAgICB9KTsKLQotICAgICAgICAgIHJldHVy
biB3YWl0X2Zvcl9zdGF0ZSh0LCByLmluc3RhbGxpbmcsICdhY3RpdmF0ZWQnKTsKLSAgICAgICAg
fSkKLSAgICAgIC50aGVuKGZ1bmN0aW9uKCkgewotICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlz
ZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKLSAgICAgICAgICAgICAgdmFyIHcgPSBuZXcg
U2hhcmVkV29ya2VyKHNoYXJlZF93b3JrZXIpOwotICAgICAgICAgICAgICB3LnBvcnQub25tZXNz
YWdlID0gZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgICAgIHJlc29sdmUoZS5kYXRhKTsKLSAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0pCi0gICAgICAudGhlbihm
dW5jdGlvbihkYXRhKSB7Ci0gICAgICAgICAgYXNzZXJ0X2VxdWFscyhkYXRhLCAnaW50ZXJjZXB0
ZWQgYnkgc2VydmljZSB3b3JrZXInKTsKLSAgICAgICAgfSk7Ci0gIH0sICdWZXJpZnkgc3VicmVz
b3VyY2UgbG9hZHMgaW4gU2hhcmVkV29ya2VyIGFyZSBjb250cm9sbGVkIGJ5IGEgU2VydmljZSBX
b3JrZXInKTsKLQotcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKLSAgICB2YXIgc2hhcmVkX3dv
cmtlciA9ICdyZXNvdXJjZXMvZHVtbXktc2hhcmVkLXdvcmtlci5qcyc7Ci0gICAgdmFyIHNlcnZp
Y2Vfd29ya2VyID0gJ3Jlc291cmNlcy9kdW1teS1zaGFyZWQtd29ya2VyLWludGVyY2VwdG9yLmpz
JzsKLSAgICB2YXIgc2NvcGUgPSBzaGFyZWRfd29ya2VyOwotCi0gICAgcmV0dXJuIHNlcnZpY2Vf
d29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHNlcnZpY2Vfd29ya2VyLCBzY29wZSkK
LSAgICAgIC50aGVuKGZ1bmN0aW9uKHIpIHsKLSAgICAgICAgICB0LmFkZF9jbGVhbnVwKGZ1bmN0
aW9uKCkgewotICAgICAgICAgICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcih0
LCBzY29wZSk7Ci0gICAgICAgICAgICB9KTsKLQotICAgICAgICAgIHJldHVybiB3YWl0X2Zvcl9z
dGF0ZSh0LCByLmluc3RhbGxpbmcsICdhY3RpdmF0ZWQnKTsKLSAgICAgICAgfSkKLSAgICAgIC50
aGVuKGZ1bmN0aW9uKCkgewotICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihy
ZXNvbHZlLCByZWplY3QpIHsKLSAgICAgICAgICAgICAgdmFyIHcgPSBuZXcgU2hhcmVkV29ya2Vy
KHNoYXJlZF93b3JrZXIpOwotICAgICAgICAgICAgICB3LnBvcnQub25tZXNzYWdlID0gZnVuY3Rp
b24oZSkgewotICAgICAgICAgICAgICAgIHJlc29sdmUoZS5kYXRhKTsKLSAgICAgICAgICAgICAg
fQotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0pCi0gICAgICAudGhlbihmdW5jdGlvbihkYXRh
KSB7Ci0gICAgICAgICAgYXNzZXJ0X2VxdWFscyhkYXRhLCAnd29ya2VyIGxvYWRpbmcgaW50ZXJj
ZXB0ZWQgYnkgc2VydmljZSB3b3JrZXInKTsKLSAgICAgICAgfSk7Ci0gIH0sICdWZXJpZnkgU2hh
cmVkV29ya2VyIGNvbnN0cnVjdGlvbiBpcyBjb250cm9sbGVkIGJ5IGEgU2VydmljZSBXb3JrZXIn
KTsKLQotcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKLSAgICB2YXIgc2hhcmVkX3dvcmtlciA9
ICdyZXNvdXJjZXMvc2hhcmVkLXdvcmtlci1pbXBvcnQuanMnOwotICAgIHZhciBzZXJ2aWNlX3dv
cmtlciA9ICdyZXNvdXJjZXMvZHVtbXktc2hhcmVkLXdvcmtlci1pbnRlcmNlcHRvci5qcyc7Ci0g
ICAgdmFyIHNjb3BlID0gc2hhcmVkX3dvcmtlcjsKLQotICAgIHJldHVybiBzZXJ2aWNlX3dvcmtl
cl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCBzZXJ2aWNlX3dvcmtlciwgc2NvcGUpCi0gICAg
ICAudGhlbihmdW5jdGlvbihyKSB7Ci0gICAgICAgICAgdC5hZGRfY2xlYW51cChmdW5jdGlvbigp
IHsKLSAgICAgICAgICAgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXIodCwgc2Nv
cGUpOwotICAgICAgICAgICAgfSk7Ci0KLSAgICAgICAgICByZXR1cm4gd2FpdF9mb3Jfc3RhdGUo
dCwgci5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7Ci0gICAgICAgIH0pCi0gICAgICAudGhlbihm
dW5jdGlvbigpIHsKLSAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2
ZSwgcmVqZWN0KSB7Ci0gICAgICAgICAgICAgIHZhciB3ID0gbmV3IFNoYXJlZFdvcmtlcihzaGFy
ZWRfd29ya2VyKTsKLSAgICAgICAgICAgICAgdy5wb3J0Lm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGUp
IHsKLSAgICAgICAgICAgICAgICByZXNvbHZlKGUuZGF0YSk7Ci0gICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgIH0pOwotICAgICAgICB9KQotICAgICAgLnRoZW4oZnVuY3Rpb24oZGF0YSkgewot
ICAgICAgICAgIGFzc2VydF9lcXVhbHMoZGF0YSwgJ3dvcmtlciBsb2FkaW5nIGludGVyY2VwdGVk
IGJ5IHNlcnZpY2Ugd29ya2VyJyk7Ci0gICAgICAgIH0pOwotICB9LCAnVmVyaWZ5IGltcG9ydFNj
cmlwdHMgZnJvbSBTaGFyZWRXb3JrZXIgaXMgY29udHJvbGxlZCBieSBhIFNlcnZpY2UgV29ya2Vy
Jyk7Ci08L3NjcmlwdD4KLTwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Vw
ZGF0ZS1pbXBvcnQtc2NyaXB0cy5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci91cGRhdGUtaW1wb3J0LXNjcmlwdHMuaHR0cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI5
MjcyMDk5ZDkyNWJiYTJjMDA5ZWRlY2JmNmVlZTNhZjE0ZmQ4MTUKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUtaW1wb3J0LXNjcmlwdHMuaHR0cHMtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsNiBAQAorCitQQVNTIHVwZGF0ZSgpIHNob3VsZCBmYWlsIHdoZW4gYSBu
ZXcgd29ya2VyIGltcG9ydHMgYW4gdW5hdmFpbGFibGUgc2NyaXB0LiAKK1BBU1MgdXBkYXRlKCkg
c2hvdWxkIHN1Y2NlZWQgd2hlbiB0aGUgb2xkIGltcG9ydGVkIHNjcmlwdCBubyBsb25nZXIgZXhp
c3QgYnV0IHRoZSBuZXcgd29ya2VyIGRvZXNuJ3QgaW1wb3J0IGl0LiAKK1BBU1MgdXBkYXRlKCkg
c2hvdWxkIHRyZWF0IDQwNCBvbiBpbXBvcnRlZCBzY3JpcHRzIGFzIG5vIGNoYW5nZS4gCitGQUlM
IHVwZGF0ZSgpIHNob3VsZCBmaW5kIGFuIHVwZGF0ZSBpbiBhbiBpbXBvcnRlZCBzY3JpcHQgYnV0
IHVwZGF0ZSgpIHNob3VsZCByZXN1bHQgaW4gZmFpbHVyZSBkdWUgdG8gbWlzc2luZyB0aGUgb3Ro
ZXIgaW1wb3J0ZWQgc2NyaXB0LiBhc3NlcnRfdW5yZWFjaGVkOiBTaG91bGQgaGF2ZSByZWplY3Rl
ZDogdW5kZWZpbmVkIFJlYWNoZWQgdW5yZWFjaGFibGUgY29kZQorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci91cGRhdGUtaW1wb3J0LXNjcmlwdHMuaHR0cHMuaHRtbCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL3VwZGF0ZS1pbXBvcnQtc2NyaXB0cy5odHRwcy5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUw
YmJiMTJiZDY3NWI2MzYxMTZlZjVmODE0NDc5MDRjZGRkOTIyZDkKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUtaW1wb3J0LXNjcmlwdHMuaHR0cHMuaHRtbApAQCAt
MCwwICsxLDEyNyBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8
dGl0bGU+VGVzdHMgZm9yIGltcG9ydFNjcmlwdHM6IGltcG9ydCBzY3JpcHRzIGlnbm9yZWQgZXJy
b3I8L3RpdGxlPgorPHNjcmlwdCBzcmM9Ii9jb21tb24vdXRpbHMuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9InJlc291cmNlcy90ZXN0LWhlbHBlcnMuc3ViLmpzIj48L3NjcmlwdD4KKzxib2R5PgorPHNj
cmlwdD4KKy8vIFRoaXMgZmlsZSBjb250YWlucyB0ZXN0cyB0byBjaGVjayBpZiBpbXBvcnRlZCBz
Y3JpcHRzIGFwcHJvcHJpYXRlbHkgdXBkYXRlZC4KKworY29uc3QgU0NPUEUgPSAncmVzb3VyY2Vz
L3NpbXBsZS50eHQnOworCisvLyBDcmVhdGUgYSBzZXJ2aWNlIHdvcmtlciAodXBkYXRlLXdvcmtl
ci1mcm9tLWZpbGUucHkpLCB3aGljaCBpcyBpbml0aWFsbHkKKy8vIHxpbml0aWFsX3dvcmtlcnwg
YW5kIHx1cGRhdGVkX3dvcmtlcnwgbGF0ZXIuCithc3luYyBmdW5jdGlvbiBwcmVwYXJlX3JlYWR5
X3VwZGF0ZV93b3JrZXJfZnJvbV9maWxlKAorICAgIHQsIGluaXRpYWxfd29ya2VyLCB1cGRhdGVk
X3dvcmtlcikgeworICBjb25zdCBrZXkgPSB0b2tlbigpOworICBjb25zdCB3b3JrZXJfdXJsID0g
YHJlc291cmNlcy91cGRhdGUtd29ya2VyLWZyb20tZmlsZS5weT9gICsKKyAgICAgIGBGaXJzdD0k
e2luaXRpYWxfd29ya2VyfSZTZWNvbmQ9JHt1cGRhdGVkX3dvcmtlcn0mS2V5PSR7a2V5fWA7Cisg
IGNvbnN0IGV4cGVjdGVkX3VybCA9IG5vcm1hbGl6ZVVSTCh3b3JrZXJfdXJsKTsKKworICBjb25z
dCByZWdpc3RyYXRpb24gPSBhd2FpdCBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdp
c3RlcigKKyAgICAgIHQsIHdvcmtlcl91cmwsIFNDT1BFKTsKKyAgYXdhaXQgd2FpdF9mb3Jfc3Rh
dGUodCwgcmVnaXN0cmF0aW9uLmluc3RhbGxpbmcsICdhY3RpdmF0ZWQnKTsKKyAgYXNzZXJ0X2Vx
dWFscyhyZWdpc3RyYXRpb24uaW5zdGFsbGluZywgbnVsbCwKKyAgICAgICAgICAgICAgICAncHJl
cGFyZV9yZWFkeTogaW5zdGFsbGluZycpOworICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi53
YWl0aW5nLCBudWxsLAorICAgICAgICAgICAgICAgICdwcmVwYXJlX3JlYWR5OiB3YWl0aW5nJyk7
CisgIGFzc2VydF9lcXVhbHMocmVnaXN0cmF0aW9uLmFjdGl2ZS5zY3JpcHRVUkwsIGV4cGVjdGVk
X3VybCwKKyAgICAgICAgICAgICAgICAncHJlcGFyZV9yZWFkeTogYWN0aXZlJyk7CisgIHJldHVy
biBbcmVnaXN0cmF0aW9uLCBleHBlY3RlZF91cmxdOworfQorCisvLyBDcmVhdGUgYSBzZXJ2aWNl
IHdvcmtlciB1c2luZyB0aGUgc2NyaXB0IHVuZGVyIHJlc291cmNlcy8uCithc3luYyBmdW5jdGlv
biBwcmVwYXJlX3JlYWR5X25vcm1hbF93b3JrZXIodCwgZmlsZW5hbWUsIGFkZGl0aW9uYWxfcGFy
YW1zPScnKSB7CisgIGNvbnN0IGtleSA9IHRva2VuKCk7CisgIGNvbnN0IHdvcmtlcl91cmwgPSBg
cmVzb3VyY2VzLyR7ZmlsZW5hbWV9P0tleT0ke2tleX0mJHthZGRpdGlvbmFsX3BhcmFtc31gOwor
ICBjb25zdCBleHBlY3RlZF91cmwgPSBub3JtYWxpemVVUkwod29ya2VyX3VybCk7CisKKyAgY29u
c3QgcmVnaXN0cmF0aW9uID0gYXdhaXQgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVn
aXN0ZXIoCisgICAgICB0LCB3b3JrZXJfdXJsLCBTQ09QRSk7CisgIGF3YWl0IHdhaXRfZm9yX3N0
YXRlKHQsIHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7CisgIGFzc2VydF9l
cXVhbHMocmVnaXN0cmF0aW9uLmluc3RhbGxpbmcsIG51bGwsCisgICAgICAgICAgICAgICAgJ3By
ZXBhcmVfcmVhZHk6IGluc3RhbGxpbmcnKTsKKyAgYXNzZXJ0X2VxdWFscyhyZWdpc3RyYXRpb24u
d2FpdGluZywgbnVsbCwKKyAgICAgICAgICAgICAgICAncHJlcGFyZV9yZWFkeTogd2FpdGluZycp
OworICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi5hY3RpdmUuc2NyaXB0VVJMLCBleHBlY3Rl
ZF91cmwsCisgICAgICAgICAgICAgICAgJ3ByZXBhcmVfcmVhZHk6IGFjdGl2ZScpOworICByZXR1
cm4gW3JlZ2lzdHJhdGlvbiwgZXhwZWN0ZWRfdXJsXTsKK30KKworZnVuY3Rpb24gYXNzZXJ0X2lu
c3RhbGxpbmdfYW5kX2FjdGl2ZShyZWdpc3RyYXRpb24sIGV4cGVjdGVkX3VybCkgeworICBhc3Nl
cnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLnNjcmlwdFVSTCwgZXhwZWN0ZWRfdXJs
LAorICAgICAgICAgICAgICAgICdhc3NlcnRfaW5zdGFsbGluZ19hbmRfYWN0aXZlOiBpbnN0YWxs
aW5nJyk7CisgIGFzc2VydF9lcXVhbHMocmVnaXN0cmF0aW9uLndhaXRpbmcsIG51bGwsCisgICAg
ICAgICAgICAgICAgJ2Fzc2VydF9pbnN0YWxsaW5nX2FuZF9hY3RpdmU6IHdhaXRpbmcnKTsKKyAg
YXNzZXJ0X2VxdWFscyhyZWdpc3RyYXRpb24uYWN0aXZlLnNjcmlwdFVSTCwgZXhwZWN0ZWRfdXJs
LAorICAgICAgICAgICAgICAgICdhc3NlcnRfaW5zdGFsbGluZ19hbmRfYWN0aXZlOiBhY3RpdmUn
KTsKK30KKworZnVuY3Rpb24gYXNzZXJ0X3dhaXRpbmdfYW5kX2FjdGl2ZShyZWdpc3RyYXRpb24s
IGV4cGVjdGVkX3VybCkgeworICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5n
LCBudWxsLAorICAgICAgICAgICAgICAgICdhc3NlcnRfd2FpdGluZ19hbmRfYWN0aXZlOiBpbnN0
YWxsaW5nJyk7CisgIGFzc2VydF9lcXVhbHMocmVnaXN0cmF0aW9uLndhaXRpbmcuc2NyaXB0VVJM
LCBleHBlY3RlZF91cmwsCisgICAgICAgICAgICAgICAgJ2Fzc2VydF93YWl0aW5nX2FuZF9hY3Rp
dmU6IHdhaXRpbmcnKTsKKyAgYXNzZXJ0X2VxdWFscyhyZWdpc3RyYXRpb24uYWN0aXZlLnNjcmlw
dFVSTCwgZXhwZWN0ZWRfdXJsLAorICAgICAgICAgICAgICAgICdhc3NlcnRfd2FpdGluZ19hbmRf
YWN0aXZlOiBhY3RpdmUnKTsKK30KKworZnVuY3Rpb24gYXNzZXJ0X2FjdGl2ZV9vbmx5KHJlZ2lz
dHJhdGlvbiwgZXhwZWN0ZWRfdXJsKSB7CisgIGFzc2VydF9lcXVhbHMocmVnaXN0cmF0aW9uLmlu
c3RhbGxpbmcsIG51bGwsCisgICAgICAgICAgICAgICAgJ2Fzc2VydF9hY3RpdmVfb25seTogaW5z
dGFsbGluZycpOworICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi53YWl0aW5nLCBudWxsLAor
ICAgICAgICAgICAgICAgICdhc3NlcnRfYWN0aXZlX29ubHk6IHdhaXRpbmcnKTsKKyAgYXNzZXJ0
X2VxdWFscyhyZWdpc3RyYXRpb24uYWN0aXZlLnNjcmlwdFVSTCwgZXhwZWN0ZWRfdXJsLAorICAg
ICAgICAgICAgICAgICdhc3NlcnRfYWN0aXZlX29ubHk6IGFjdGl2ZScpOworfQorCitwcm9taXNl
X3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0IFtyZWdpc3RyYXRpb24sIGV4cGVjdGVkX3VybF0g
PQorICAgICAgYXdhaXQgcHJlcGFyZV9yZWFkeV91cGRhdGVfd29ya2VyX2Zyb21fZmlsZSgKKyAg
ICAgICAgICB0LCAnZW1wdHkuanMnLCAnaW1wb3J0LXNjcmlwdHMtNDA0LmpzJyk7CisgIHQuYWRk
X2NsZWFudXAoKCkgPT4gcmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIoKSk7CisKKyAgYXdhaXQgcHJv
bWlzZV9yZWplY3RzKHQsIG5ldyBUeXBlRXJyb3IoKSwgcmVnaXN0cmF0aW9uLnVwZGF0ZSgpKTsK
KyAgYXNzZXJ0X2FjdGl2ZV9vbmx5KHJlZ2lzdHJhdGlvbiwgZXhwZWN0ZWRfdXJsKTsKK30sICd1
cGRhdGUoKSBzaG91bGQgZmFpbCB3aGVuIGEgbmV3IHdvcmtlciBpbXBvcnRzIGFuIHVuYXZhaWxh
YmxlIHNjcmlwdC4nKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25zdCBbcmVn
aXN0cmF0aW9uLCBleHBlY3RlZF91cmxdID0KKyAgICAgIGF3YWl0IHByZXBhcmVfcmVhZHlfdXBk
YXRlX3dvcmtlcl9mcm9tX2ZpbGUoCisgICAgICAgICAgdCwgJ2ltcG9ydC1zY3JpcHRzLTQwNC1h
ZnRlci11cGRhdGUuanMnLCAnZW1wdHkuanMnKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiByZWdp
c3RyYXRpb24udW5yZWdpc3RlcigpKTsKKworICBhd2FpdCBQcm9taXNlLmFsbChbcmVnaXN0cmF0
aW9uLnVwZGF0ZSgpLCB3YWl0X2Zvcl91cGRhdGUodCwgcmVnaXN0cmF0aW9uKV0pOworICBhc3Nl
cnRfaW5zdGFsbGluZ19hbmRfYWN0aXZlKHJlZ2lzdHJhdGlvbiwgZXhwZWN0ZWRfdXJsKTsKKwor
ICBhd2FpdCB3YWl0X2Zvcl9zdGF0ZSh0LCByZWdpc3RyYXRpb24uaW5zdGFsbGluZywgJ2luc3Rh
bGxlZCcpOworICBhc3NlcnRfd2FpdGluZ19hbmRfYWN0aXZlKHJlZ2lzdHJhdGlvbiwgZXhwZWN0
ZWRfdXJsKTsKKworICBhd2FpdCB3YWl0X2Zvcl9zdGF0ZSh0LCByZWdpc3RyYXRpb24ud2FpdGlu
ZywgJ2FjdGl2YXRlZCcpOworICBhc3NlcnRfYWN0aXZlX29ubHkocmVnaXN0cmF0aW9uLCBleHBl
Y3RlZF91cmwpOworfSwgJ3VwZGF0ZSgpIHNob3VsZCBzdWNjZWVkIHdoZW4gdGhlIG9sZCBpbXBv
cnRlZCBzY3JpcHQgbm8gbG9uZ2VyIGV4aXN0IGJ1dCAnICsKKyAgICJ0aGUgbmV3IHdvcmtlciBk
b2Vzbid0IGltcG9ydCBpdC4iKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25z
dCBbcmVnaXN0cmF0aW9uLCBleHBlY3RlZF91cmxdID0gYXdhaXQgcHJlcGFyZV9yZWFkeV9ub3Jt
YWxfd29ya2VyKAorICAgIHQsICdpbXBvcnQtc2NyaXB0cy00MDQtYWZ0ZXItdXBkYXRlLmpzJyk7
CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIoKSk7CisKKyAg
YXdhaXQgcmVnaXN0cmF0aW9uLnVwZGF0ZSgpOworICBhc3NlcnRfYWN0aXZlX29ubHkocmVnaXN0
cmF0aW9uLCBleHBlY3RlZF91cmwpOworfSwgJ3VwZGF0ZSgpIHNob3VsZCB0cmVhdCA0MDQgb24g
aW1wb3J0ZWQgc2NyaXB0cyBhcyBubyBjaGFuZ2UuJyk7CisKK3Byb21pc2VfdGVzdChhc3luYyB0
ID0+IHsKKyAgY29uc3QgW3JlZ2lzdHJhdGlvbiwgZXhwZWN0ZWRfdXJsXSA9IGF3YWl0IHByZXBh
cmVfcmVhZHlfbm9ybWFsX3dvcmtlcigKKyAgICB0LCAnaW1wb3J0LXNjcmlwdHMtNDA0LWFmdGVy
LXVwZGF0ZS1wbHVzLXVwZGF0ZS13b3JrZXIuanMnLAorICAgICAgIGBBZGRpdGlvbmFsS2V5PSR7
dG9rZW4oKX1gKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiByZWdpc3RyYXRpb24udW5yZWdpc3Rl
cigpKTsKKworICBhd2FpdCBwcm9taXNlX3JlamVjdHModCwgbmV3IFR5cGVFcnJvcigpLCByZWdp
c3RyYXRpb24udXBkYXRlKCkpOworICBhc3NlcnRfYWN0aXZlX29ubHkocmVnaXN0cmF0aW9uLCBl
eHBlY3RlZF91cmwpOworfSwgJ3VwZGF0ZSgpIHNob3VsZCBmaW5kIGFuIHVwZGF0ZSBpbiBhbiBp
bXBvcnRlZCBzY3JpcHQgYnV0IHVwZGF0ZSgpIHNob3VsZCAnICsKKyAgICdyZXN1bHQgaW4gZmFp
bHVyZSBkdWUgdG8gbWlzc2luZyB0aGUgb3RoZXIgaW1wb3J0ZWQgc2NyaXB0LicpOworPC9zY3Jp
cHQ+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUtbm90LWFs
bG93ZWQuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLW5vdC1h
bGxvd2VkLmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCBjOTU5YWNkNWJiYWY4OTkyMjRiNzI0OWIx
YjZiNmQzMGQ2NDlmYjIxLi43OTFiZTBhYjc2NjkyZjJmYjg3ZDYwZTgxYjc4ZmZhN2FkYWVkOTVi
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUtbm90LWFsbG93ZWQuaHR0cHMt
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0ZS1ub3QtYWxsb3dlZC5o
dHRwcy1leHBlY3RlZC50eHQKQEAgLTEsNiArMSw1IEBACiAKLUhhcm5lc3MgRXJyb3IgKFRJTUVP
VVQpLCBtZXNzYWdlID0gbnVsbAotCi1QQVNTIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24udXBk
YXRlKCkgZnJvbSBjbGllbnQgdGhyb3dzIHdoaWxlIGluc3RhbGxpbmcgc2VydmljZSB3b3JrZXIu
IAotVElNRU9VVCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLnVwZGF0ZSgpIGZyb20gaW5zdGFs
bGluZyBzZXJ2aWNlIHdvcmtlciB0aHJvd3MuIFRlc3QgdGltZWQgb3V0CitQQVNTIFNlcnZpY2VX
b3JrZXJSZWdpc3RyYXRpb24udXBkYXRlKCkgZnJvbSBjbGllbnQgc3VjY2VlZHMgd2hpbGUgaW5z
dGFsbGluZyBzZXJ2aWNlIHdvcmtlci4gCitGQUlMIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24u
dXBkYXRlKCkgZnJvbSBpbnN0YWxsaW5nIHNlcnZpY2Ugd29ya2VyIHRocm93cy4gYXNzZXJ0X2Zh
bHNlOiB1cGRhdGUoKSBzaG91bGQgaGF2ZSBmYWlsZWQuIGV4cGVjdGVkIGZhbHNlIGdvdCB0cnVl
CitGQUlMIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24udXBkYXRlKCkgZnJvbSBhY3RpdmUgc2Vy
dmljZSB3b3JrZXIgc3VjY2VlZHMgd2hpbGUgaW5zdGFsbGluZyBzZXJ2aWNlIHdvcmtlci4gYXNz
ZXJ0X2VxdWFsczogU2VydmljZSB3b3JrZXIgc2hvdWxkIGJlIGFjdGl2YXRlZC4gZXhwZWN0ZWQg
InJlZHVuZGFudCIgYnV0IGdvdCAiYWN0aXZhdGVkIgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci91cGRhdGUtcmVnaXN0cmF0aW9uLXdpdGgtdHlwZS5odHRwcy5odG1sIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvdXBkYXRlLXJlZ2lzdHJhdGlvbi13aXRoLXR5cGUuaHR0cHMuaHRtbAppbmRl
eCBlN2QzNjkyODEyZWI4YTI0ZjI1M2I4N2UxNTdmNGE0MzY2ZTMwOThlLi44MTJmYTBiNGM3Y2Ri
ZGZjYzQwZWNkZjBmNTQ3NzI4OGUwNDVmZmFhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci91cGRhdGUtcmVnaXN0cmF0aW9uLXdpdGgtdHlwZS5odHRwcy5odG1sCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL3VwZGF0ZS1yZWdpc3RyYXRpb24td2l0aC10eXBlLmh0dHBzLmh0bWwKQEAgLTIs
NyArMiw3IEBACiA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CiA8dGl0bGU+U2VydmljZSBXb3JrZXI6
IFVwZGF0ZSB0aGUgcmVnaXN0cmF0aW9uIHdpdGggYSBkaWZmZXJlbnQgc2NyaXB0IHR5cGUuPC90
aXRsZT4KIDwhLS0gY29tbW9uLmpzIGlzIGZvciBndWlkKCkgLS0+Ci08c2NyaXB0IHNyYz0iL2Nv
bW1vbi9zZWN1cml0eS1mZWF0dXJlcy9yZXNvdXJjZXMvY29tbW9uLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIvY29tbW9uL3NlY3VyaXR5LWZlYXR1cmVzL3Jlc291cmNlcy9jb21tb24uc3Vi
LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48
L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48
L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGVzdC1oZWxwZXJzLnN1Yi5qcyI+PC9z
Y3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUuaHR0cHMtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLmh0dHBzLWV4cGVjdGVkLnR4dAppbmRl
eCA5NjdmMGY1ODRkNDAwMTE1ZTQ2ZDFiMzcwMzc5OTBjZWQ1MzI0MGZhLi4xM2QzZmRiNDZmM2Y3
NTUzMmM2YmZiMzhkMTY4ZTlmMjExMzk5ZmE4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci91cGRhdGUuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0
ZS5odHRwcy1leHBlY3RlZC50eHQKQEAgLTEsMyArMSwxMSBAQAorQ09OU09MRSBNRVNTQUdFOiBO
b3QgYWxsb3dlZCB0byBmb2xsb3cgYSByZWRpcmVjdGlvbiB3aGlsZSBsb2FkaW5nIGh0dHBzOi8v
bG9jYWxob3N0Ojk0NDMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy91
cGRhdGUtd29ya2VyLnB5P0tleT1hMjZkYjliNS0wNjFkLTQwNzktYTMxMC0zYTRmOTRlM2NkYTUm
TW9kZT1yZWRpcmVjdAorQ09OU09MRSBNRVNTQUdFOiBDYW5ub3QgbG9hZCBodHRwczovL2xvY2Fs
aG9zdDo5NDQzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvdXBkYXRl
LXdvcmtlci5weT9LZXk9YTI2ZGI5YjUtMDYxZC00MDc5LWEzMTAtM2E0Zjk0ZTNjZGE1Jk1vZGU9
cmVkaXJlY3QgZHVlIHRvIGFjY2VzcyBjb250cm9sIGNoZWNrcy4KIAotUEFTUyBVcGRhdGUgYSBy
ZWdpc3RyYXRpb24uIAorUEFTUyB1cGRhdGUoKSBzaG91bGQgc3VjY2VlZCB3aGVuIG5ldyBzY3Jp
cHQgaXMgYXZhaWxhYmxlLiAKK1BBU1MgdXBkYXRlKCkgc2hvdWxkIGZhaWwgd2hlbiBtaW1lIHR5
cGUgaXMgaW52YWxpZC4gCitGQUlMIHVwZGF0ZSgpIHNob3VsZCBmYWlsIHdoZW4gYSByZXNwb25z
ZSBmb3IgdGhlIG1haW4gc2NyaXB0IGlzIHJlZGlyZWN0LiBhc3NlcnRfdGhyb3dzOiBmdW5jdGlv
biAiZnVuY3Rpb24gKCkgeyB0aHJvdyBlIH0iIHRocmV3IG9iamVjdCAiU2VjdXJpdHlFcnJvcjog
U2NyaXB0IGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3Jlc291cmNlcy91cGRhdGUtd29ya2VyLnB5P0tleT1hMjZkYjliNS0wNjFkLTQwNzktYTMx
MC0zYTRmOTRlM2NkYTUmTW9kZT1yZWRpcmVjdCBsb2FkIGZhaWxlZCIgKCJTZWN1cml0eUVycm9y
IikgZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVycm9yIikKK1BBU1MgdXBkYXRl
KCkgc2hvdWxkIGZhaWwgd2hlbiBhIG5ldyBzY3JpcHQgY29udGFpbnMgYSBzeW50YXggZXJyb3Iu
IAorUEFTUyB1cGRhdGUoKSBzaG91bGQgcmVzb2x2ZSB3aGVuIHRoZSBpbnN0YWxsIGV2ZW50IHRo
cm93cy4gCitQQVNTIHVwZGF0ZSgpIHNob3VsZCBmYWlsIHdoZW4gdGhlIHBlbmRpbmcgdW5pbnN0
YWxsIGZsYWcgaXMgc2V0LiAKK1BBU1MgdXBkYXRlKCkgc2hvdWxkIHN1Y2NlZWQgd2hlbiB0aGUg
c2NyaXB0IHNocmlua3MuIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUu
aHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0ZS5odHRwcy5odG1sCmluZGV4IDY3
MTdkNGQ3YWMyODljOGExOGIxNTAwZTIxNzk1ZmQxNmM1MzIxZTcuLmY3ZmFlMzVlZDI4ZDdjODJj
MjYxNzUyYzIyY2QwOTFlNDczODAxYjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Vw
ZGF0ZS5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0ZS5odHRwcy5odG1s
CkBAIC0xLDUgKzEsNyBAQAogPCFET0NUWVBFIGh0bWw+CiA8dGl0bGU+U2VydmljZSBXb3JrZXI6
IFJlZ2lzdHJhdGlvbiB1cGRhdGUoKTwvdGl0bGU+Cis8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250
ZW50PSJsb25nIj4KKzxzY3JpcHQgc3JjPSIvY29tbW9uL3V0aWxzLmpzIj48L3NjcmlwdD4KIDxz
Y3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQg
c3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQg
c3JjPSJyZXNvdXJjZXMvdGVzdGhhcm5lc3MtaGVscGVycy5qcyI+PC9zY3JpcHQ+CkBAIC03LDEx
NSArOSwxNTYgQEAKIDxzY3JpcHQ+CiAndXNlIHN0cmljdCc7CiAKLXByb21pc2VfdGVzdChmdW5j
dGlvbih0KSB7Ci0gICAgdmFyIHNjb3BlID0gJ3Jlc291cmNlcy9zaW1wbGUudHh0JzsKLSAgICB2
YXIgd29ya2VyX3VybCA9ICdyZXNvdXJjZXMvdXBkYXRlLXdvcmtlci5weSc7Ci0gICAgdmFyIGV4
cGVjdGVkX3VybCA9IG5vcm1hbGl6ZVVSTCh3b3JrZXJfdXJsKTsKLSAgICB2YXIgcmVnaXN0cmF0
aW9uOwotCi0gICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVy
KHQsIHdvcmtlcl91cmwsIHNjb3BlKQotICAgICAgLnRoZW4oZnVuY3Rpb24ocikgewotICAgICAg
ICAgIHJlZ2lzdHJhdGlvbiA9IHI7Ci0gICAgICAgICAgcmV0dXJuIHdhaXRfZm9yX3N0YXRlKHQs
IHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7Ci0gICAgICAgIH0pCi0gICAg
ICAudGhlbihmdW5jdGlvbigpIHsKLSAgICAgICAgICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlv
bi5pbnN0YWxsaW5nLCBudWxsLAotICAgICAgICAgICAgICAgICAgICAgICAgJ2luc3RhbGxpbmcg
c2hvdWxkIGJlIG51bGwgaW4gdGhlIGluaXRpYWwgc3RhdGUuJyk7Ci0gICAgICAgICAgYXNzZXJ0
X2VxdWFscyhyZWdpc3RyYXRpb24ud2FpdGluZywgbnVsbCwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICd3YWl0aW5nIHNob3VsZCBiZSBudWxsIGluIHRoZSBpbml0aWFsIHN0YXRlLicpOwotICAg
ICAgICAgIGFzc2VydF9lcXVhbHMocmVnaXN0cmF0aW9uLmFjdGl2ZS5zY3JpcHRVUkwsIGV4cGVj
dGVkX3VybCwKLSAgICAgICAgICAgICAgICAgICAgICAgICdhY3RpdmUgc2hvdWxkIGV4aXN0IGlu
IHRoZSBpbml0aWFsIHN0YXRlLicpOwotICAgICAgICAgIC8vIEEgbmV3IHdvcmtlciAoZ2VuZXJh
dGVkIGJ5IHVwZGF0ZS13b3JrZXIucHkpIHNob3VsZCBiZSBmb3VuZC4KLSAgICAgICAgICAvLyBU
aGUgcmV0dXJuZWQgcHJvbWlzZSBzaG91bGQgcmVzb2x2ZSB3aGVuIGEgbmV3IHdvcmtlciBzY3Jp
cHQgaXMKLSAgICAgICAgICAvLyBmZXRjaGVkIGFuZCBzdGFydHMgaW5zdGFsbGluZy4KLSAgICAg
ICAgICByZXR1cm4gUHJvbWlzZS5hbGwoW3JlZ2lzdHJhdGlvbi51cGRhdGUoKSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHdhaXRfZm9yX3VwZGF0ZSh0LCByZWdpc3RyYXRpb24pXSk7
Ci0gICAgICAgIH0pCi0gICAgICAudGhlbihmdW5jdGlvbigpIHsKLSAgICAgICAgICBhc3NlcnRf
ZXF1YWxzKHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLnNjcmlwdFVSTCwgZXhwZWN0ZWRfdXJsLAot
ICAgICAgICAgICAgICAgICAgICAgICAgJ25ldyBpbnN0YWxsaW5nIHNob3VsZCBiZSBzZXQgYWZ0
ZXIgdXBkYXRlIHJlc29sdmVzLicpOwotICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVnaXN0cmF0
aW9uLndhaXRpbmcsIG51bGwsCi0gICAgICAgICAgICAgICAgICAgICAgICAnd2FpdGluZyBzaG91
bGQgc3RpbGwgYmUgbnVsbCBhZnRlciB1cGRhdGUgcmVzb2x2ZXMuJyk7Ci0gICAgICAgICAgYXNz
ZXJ0X2VxdWFscyhyZWdpc3RyYXRpb24uYWN0aXZlLnNjcmlwdFVSTCwgZXhwZWN0ZWRfdXJsLAot
ICAgICAgICAgICAgICAgICAgICAgICAgJ2FjdGl2ZSBzaG91bGQgc3RpbGwgZXhpc3QgYWZ0ZXIg
dXBkYXRlIGZvdW5kLicpOwotICAgICAgICAgIHJldHVybiB3YWl0X2Zvcl9zdGF0ZSh0LCByZWdp
c3RyYXRpb24uaW5zdGFsbGluZywgJ2luc3RhbGxlZCcpOwotICAgICAgICB9KQotICAgICAgLnRo
ZW4oZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgYXNzZXJ0X2VxdWFscyhyZWdpc3RyYXRpb24uaW5z
dGFsbGluZywgbnVsbCwKLSAgICAgICAgICAgICAgICAgICAgICAgICdpbnN0YWxsaW5nIHNob3Vs
ZCBiZSBudWxsIGFmdGVyIGluc3RhbGxpbmcuJyk7Ci0gICAgICAgICAgYXNzZXJ0X2VxdWFscyhy
ZWdpc3RyYXRpb24ud2FpdGluZy5zY3JpcHRVUkwsIGV4cGVjdGVkX3VybCwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICd3YWl0aW5nIHNob3VsZCBiZSBzZXQgYWZ0ZXIgaW5zdGFsbGluZy4nKTsK
LSAgICAgICAgICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi5hY3RpdmUuc2NyaXB0VVJMLCBl
eHBlY3RlZF91cmwsCi0gICAgICAgICAgICAgICAgICAgICAgICAnYWN0aXZlIHNob3VsZCBzdGls
bCBleGlzdCBhZnRlciBpbnN0YWxsaW5nLicpOwotICAgICAgICAgIHJldHVybiB3YWl0X2Zvcl9z
dGF0ZSh0LCByZWdpc3RyYXRpb24ud2FpdGluZywgJ2FjdGl2YXRlZCcpOwotICAgICAgICB9KQot
ICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgYXNzZXJ0X2VxdWFscyhyZWdpc3Ry
YXRpb24uaW5zdGFsbGluZywgbnVsbCwKLSAgICAgICAgICAgICAgICAgICAgICAgICdpbnN0YWxs
aW5nIHNob3VsZCBiZSBudWxsIGFmdGVyIGFjdGl2YXRlZC4nKTsKLSAgICAgICAgICBhc3NlcnRf
ZXF1YWxzKHJlZ2lzdHJhdGlvbi53YWl0aW5nLCBudWxsLAotICAgICAgICAgICAgICAgICAgICAg
ICAgJ3dhaXRpbmcgc2hvdWxkIGJlIG51bGwgYWZ0ZXIgYWN0aXZhdGVkLicpOwotICAgICAgICAg
IGFzc2VydF9lcXVhbHMocmVnaXN0cmF0aW9uLmFjdGl2ZS5zY3JpcHRVUkwsIGV4cGVjdGVkX3Vy
bCwKLSAgICAgICAgICAgICAgICAgICAgICAgICduZXcgd29ya2VyIHNob3VsZCBiZSBwcm9tb3Rl
ZCB0byBhY3RpdmUuJyk7Ci0gICAgICAgIH0pCi0gICAgICAudGhlbihmdW5jdGlvbigpIHsKLSAg
ICAgICAgICAvLyBBIG5ldyB3b3JrZXIoZ2VuZXJhdGVkIGJ5IHVwZGF0ZS13b3JrZXIucHkpIHNo
b3VsZCBiZSBmb3VuZC4KLSAgICAgICAgICAvLyBUaGUgcmV0dXJuZWQgcHJvbWlzZSBzaG91bGQg
cmVqZWN0IGFzIHVwZGF0ZS13b3JrZXIucHkgc2V0cyB0aGUKLSAgICAgICAgICAvLyBtaW1ldHlw
ZSB0byBhIGRpc2FsbG93ZWQgdmFsdWUgZm9yIHRoaXMgYXR0ZW1wdC4KLSAgICAgICAgICByZXR1
cm4gcmVnaXN0cmF0aW9uLnVwZGF0ZSgpOwotICAgICAgICB9KQotICAgICAgLnRoZW4oCi0gICAg
ICAgIGZ1bmN0aW9uKCkgeyBhc3NlcnRfdW5yZWFjaGVkKCJ1cGRhdGUoKSBzaG91bGQgcmVqZWN0
LiIpOyB9LAotICAgICAgICBmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgYXNzZXJ0X3Rocm93cygn
U2VjdXJpdHlFcnJvcicsIGZ1bmN0aW9uKCkgeyB0aHJvdyBlOyB9LAotICAgICAgICAgICAgICAg
ICAgICAgICAgJ1VzaW5nIGEgZGlzYWxsb3dlZCBtaW1ldHlwZSBzaG91bGQgbWFrZSB1cGRhdGUo
KSAnICsKLSAgICAgICAgICAgICAgICAgICAgICAgICdwcm9taXNlIHJlamVjdCB3aXRoIGEgU2Vj
dXJpdHlFcnJvci4nKTsKLSAgICAgICAgICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi5hY3Rp
dmUuc2NyaXB0VVJMLCBleHBlY3RlZF91cmwsCi0gICAgICAgICAgICAgICAgICAgICAgICAnYWN0
aXZlIHNob3VsZCBzdGlsbCBleGlzdCBhZnRlciB1cGRhdGUgZmFpbHVyZS4nKTsKLQotICAgICAg
ICAgIC8vIEEgbmV3IHdvcmtlcihnZW5lcmF0ZWQgYnkgdXBkYXRlLXdvcmtlci5weSkgc2hvdWxk
IGJlIGZvdW5kLgotICAgICAgICAgIC8vIFRoZSByZXR1cm5lZCBwcm9taXNlIHNob3VsZCByZWpl
Y3QgYXMgdXBkYXRlLXdvcmtlci5weSByZXR1cm5zCi0gICAgICAgICAgLy8gYSB3b3JrZXIgc2Ny
aXB0IHdpdGggYSBzeW50YXggZXJyb3IuCi0gICAgICAgICAgcmV0dXJuIHJlZ2lzdHJhdGlvbi51
cGRhdGUoKTsKLSAgICAgICAgfSkKLSAgICAgIC50aGVuKAotICAgICAgICBmdW5jdGlvbigpIHsg
YXNzZXJ0X3VucmVhY2hlZCgidXBkYXRlKCkgc2hvdWxkIHJlamVjdC4iKTsgfSwKLSAgICAgICAg
ZnVuY3Rpb24oZSkgewotICAgICAgICAgIGFzc2VydF90aHJvd3Moe25hbWU6ICdUeXBlRXJyb3In
fSwgZnVuY3Rpb24gKCkgeyB0aHJvdyBlOyB9LAotICAgICAgICAgICAgICAgICAgICAgICAgJ0Eg
c2NyaXB0IHN5bnRheCBlcnJvciBzaG91bGQgbWFrZSB1cGRhdGUoKSAnICsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICdwcm9taXNlIHJlamVjdCB3aXRoIGEgVHlwZUVycm9yLicpOwotICAgICAg
ICAgIGFzc2VydF9lcXVhbHMocmVnaXN0cmF0aW9uLmFjdGl2ZS5zY3JpcHRVUkwsIGV4cGVjdGVk
X3VybCwKLSAgICAgICAgICAgICAgICAgICAgICAgICdhY3RpdmUgc2hvdWxkIHN0aWxsIGV4aXN0
IGFmdGVyIHVwZGF0ZSBmYWlsdXJlLicpOwotCi0gICAgICAgICAgLy8gQSBuZXcgd29ya2VyKGdl
bmVyYXRlZCBieSB1cGRhdGUtd29ya2VyLnB5KSBzaG91bGQgYmUgZm91bmQuCi0gICAgICAgICAg
Ly8gVGhlIHJldHVybmVkIHByb21pc2Ugc2hvdWxkIG5vdCByZWplY3QsIGV2ZW4gdGhvdWdoCi0g
ICAgICAgICAgLy8gdXBkYXRlLXdvcmtlci5weSByZXR1cm5zIGEgd29ya2VyIHNjcmlwdCB0aGF0
IHRocm93cyBpbiB0aGUKLSAgICAgICAgICAvLyBpbnN0YWxsIGV2ZW50IGhhbmRsZXIuCi0gICAg
ICAgICAgcmV0dXJuIFByb21pc2UuYWxsKFtyZWdpc3RyYXRpb24udXBkYXRlKCksCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB3YWl0X2Zvcl91cGRhdGUodCwgcmVnaXN0cmF0aW9uKV0p
OwotICAgICAgICB9KQotICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgYXNzZXJ0
X2VxdWFscyhyZWdpc3RyYXRpb24uaW5zdGFsbGluZy5zY3JpcHRVUkwsIGV4cGVjdGVkX3VybCwK
LSAgICAgICAgICAgICAgICAgICAgICAgICduZXcgaW5zdGFsbGluZyBzaG91bGQgYmUgc2V0IGFm
dGVyIHVwZGF0ZSByZXNvbHZlcy4nKTsKLSAgICAgICAgICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJh
dGlvbi53YWl0aW5nLCBudWxsLAotICAgICAgICAgICAgICAgICAgICAgICAgJ3dhaXRpbmcgc2hv
dWxkIGJlIG51bGwgYWZ0ZXIgYWN0aXZhdGVkLicpOwotICAgICAgICAgIGFzc2VydF9lcXVhbHMo
cmVnaXN0cmF0aW9uLmFjdGl2ZS5zY3JpcHRVUkwsIGV4cGVjdGVkX3VybCwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICdhY3RpdmUgc2hvdWxkIHN0aWxsIGV4aXN0IGFmdGVyIHVwZGF0ZSBmb3Vu
ZC4nKTsKLQotICAgICAgICAgIC8vIFdlIG5lZWQgdG8gaG9sZCBhIGNsaWVudCBhbGl2ZSBzbyB0
aGF0IHVucmVnaXN0ZXIoKSBiZWxvdyBkb2Vzbid0Ci0gICAgICAgICAgLy8gcmVtb3ZlIHRoZSBy
ZWdpc3RyYXRpb24gYmVmb3JlIHVwZGF0ZSgpIGhhcyBoYWQgYSBjaGFuY2UgdG8gbG9vawotICAg
ICAgICAgIC8vIGF0IHRoZSBwZW5kaW5nIHVuaW5zdGFsbCBmbGFnLgotICAgICAgICAgIHJldHVy
biB3aXRoX2lmcmFtZShzY29wZSk7Ci0gICAgICAgIH0pCi0gICAgICAudGhlbihmdW5jdGlvbihm
cmFtZSkgewotICAgICAgICAgIHQuYWRkX2NsZWFudXAoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAg
ICAgIGZyYW1lLnJlbW92ZSgpOwotICAgICAgICAgICAgfSk7Ci0KLSAgICAgICAgICByZXR1cm4g
YXNzZXJ0X3Byb21pc2VfcmVqZWN0cygKLSAgICAgICAgICAgICAgUHJvbWlzZS5hbGwoW3JlZ2lz
dHJhdGlvbi51bnJlZ2lzdGVyKCksIHJlZ2lzdHJhdGlvbi51cGRhdGUoKV0pLAotICAgICAgICAg
ICAgICBuZXcgVHlwZUVycm9yKCksCi0gICAgICAgICAgICAgICdDYWxsaW5nIHVwZGF0ZSgpIHdo
aWxlIHRoZSB1bmluc3RhbGxpbmcgZmxhZyBpcyBzZXQgJyArCi0gICAgICAgICAgICAgICdzaG91
bGQgcmV0dXJuIGEgcHJvbWlzZSB0aGF0IHJlamVjdHMgd2l0aCBhIFR5cGVFcnJvci4nKTsKLSAg
ICAgICAgfSk7Ci0gIH0sICdVcGRhdGUgYSByZWdpc3RyYXRpb24uJyk7Citjb25zdCBTQ09QRSA9
ICdyZXNvdXJjZXMvc2ltcGxlLnR4dCc7CisKKy8vIENyZWF0ZSBhIHNlcnZpY2Ugd29ya2VyICh1
cGRhdGUtd29ya2VyLnB5KS4gVGhlIHJlc3BvbnNlIHRvIHVwZGF0ZSgpIHdpbGwgYmUKKy8vIGRp
ZmZlcmVudCBiYXNlZCBvbiB0aGUgbW9kZS4KK2FzeW5jIGZ1bmN0aW9uIHByZXBhcmVfcmVhZHlf
cmVnaXN0cmF0aW9uX3dpdGhfbW9kZSh0LCBtb2RlKSB7CisgIGNvbnN0IGtleSA9IHRva2VuKCk7
CisgIGNvbnN0IHdvcmtlcl91cmwgPSBgcmVzb3VyY2VzL3VwZGF0ZS13b3JrZXIucHk/S2V5PSR7
a2V5fSZNb2RlPSR7bW9kZX1gOworICBjb25zdCBleHBlY3RlZF91cmwgPSBub3JtYWxpemVVUkwo
d29ya2VyX3VybCk7CisgIGNvbnN0IHJlZ2lzdHJhdGlvbiA9IGF3YWl0IHNlcnZpY2Vfd29ya2Vy
X3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKAorICAgICAgdCwgd29ya2VyX3VybCwgU0NPUEUpOwor
ICBhd2FpdCB3YWl0X2Zvcl9zdGF0ZSh0LCByZWdpc3RyYXRpb24uaW5zdGFsbGluZywgJ2FjdGl2
YXRlZCcpOworICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLCBudWxsLAor
ICAgICAgICAgICAgICAgICdwcmVwYXJlX3JlYWR5OiBpbnN0YWxsaW5nJyk7CisgIGFzc2VydF9l
cXVhbHMocmVnaXN0cmF0aW9uLndhaXRpbmcsIG51bGwsCisgICAgICAgICAgICAgICAgJ3ByZXBh
cmVfcmVhZHk6IHdhaXRpbmcnKTsKKyAgYXNzZXJ0X2VxdWFscyhyZWdpc3RyYXRpb24uYWN0aXZl
LnNjcmlwdFVSTCwgZXhwZWN0ZWRfdXJsLAorICAgICAgICAgICAgICAgICdwcmVwYXJlX3JlYWR5
OiBhY3RpdmUnKTsKKyAgcmV0dXJuIFtyZWdpc3RyYXRpb24sIGV4cGVjdGVkX3VybF07Cit9CisK
Ky8vIENyZWF0ZSBhIHNlcnZpY2Ugd29ya2VyICh1cGRhdGUtd29ya2VyLWZyb20tZmlsZS5weSks
IHdoaWNoIGlzIGluaXRpYWxseQorLy8gfGluaXRpYWxfd29ya2VyfCBhbmQgfHVwZGF0ZWRfd29y
a2VyfCBsYXRlci4KK2FzeW5jIGZ1bmN0aW9uIHByZXBhcmVfcmVhZHlfcmVnaXN0cmF0aW9uX3dp
dGhfZmlsZSgKKyAgICB0LCBpbml0aWFsX3dvcmtlciwgdXBkYXRlZF93b3JrZXIpIHsKKyAgY29u
c3Qga2V5ID0gdG9rZW4oKTsKKyAgY29uc3Qgd29ya2VyX3VybCA9IGByZXNvdXJjZXMvdXBkYXRl
LXdvcmtlci1mcm9tLWZpbGUucHk/YCArCisgICAgICBgRmlyc3Q9JHtpbml0aWFsX3dvcmtlcn0m
U2Vjb25kPSR7dXBkYXRlZF93b3JrZXJ9JktleT0ke2tleX1gOworICBjb25zdCBleHBlY3RlZF91
cmwgPSBub3JtYWxpemVVUkwod29ya2VyX3VybCk7CisKKyAgY29uc3QgcmVnaXN0cmF0aW9uID0g
YXdhaXQgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIoCisgICAgICB0LCB3
b3JrZXJfdXJsLCBTQ09QRSk7CisgIGF3YWl0IHdhaXRfZm9yX3N0YXRlKHQsIHJlZ2lzdHJhdGlv
bi5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7CisgIGFzc2VydF9lcXVhbHMocmVnaXN0cmF0aW9u
Lmluc3RhbGxpbmcsIG51bGwsCisgICAgICAgICAgICAgICAgJ3ByZXBhcmVfcmVhZHk6IGluc3Rh
bGxpbmcnKTsKKyAgYXNzZXJ0X2VxdWFscyhyZWdpc3RyYXRpb24ud2FpdGluZywgbnVsbCwKKyAg
ICAgICAgICAgICAgICAncHJlcGFyZV9yZWFkeTogd2FpdGluZycpOworICBhc3NlcnRfZXF1YWxz
KHJlZ2lzdHJhdGlvbi5hY3RpdmUuc2NyaXB0VVJMLCBleHBlY3RlZF91cmwsCisgICAgICAgICAg
ICAgICAgJ3ByZXBhcmVfcmVhZHk6IGFjdGl2ZScpOworICByZXR1cm4gW3JlZ2lzdHJhdGlvbiwg
ZXhwZWN0ZWRfdXJsXTsKK30KKworZnVuY3Rpb24gYXNzZXJ0X2luc3RhbGxpbmdfYW5kX2FjdGl2
ZShyZWdpc3RyYXRpb24sIGV4cGVjdGVkX3VybCkgeworICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJh
dGlvbi5pbnN0YWxsaW5nLnNjcmlwdFVSTCwgZXhwZWN0ZWRfdXJsLAorICAgICAgICAgICAgICAg
ICdhc3NlcnRfaW5zdGFsbGluZ19hbmRfYWN0aXZlOiBpbnN0YWxsaW5nJyk7CisgIGFzc2VydF9l
cXVhbHMocmVnaXN0cmF0aW9uLndhaXRpbmcsIG51bGwsCisgICAgICAgICAgICAgICAgJ2Fzc2Vy
dF9pbnN0YWxsaW5nX2FuZF9hY3RpdmU6IHdhaXRpbmcnKTsKKyAgYXNzZXJ0X2VxdWFscyhyZWdp
c3RyYXRpb24uYWN0aXZlLnNjcmlwdFVSTCwgZXhwZWN0ZWRfdXJsLAorICAgICAgICAgICAgICAg
ICdhc3NlcnRfaW5zdGFsbGluZ19hbmRfYWN0aXZlOiBhY3RpdmUnKTsKK30KKworZnVuY3Rpb24g
YXNzZXJ0X3dhaXRpbmdfYW5kX2FjdGl2ZShyZWdpc3RyYXRpb24sIGV4cGVjdGVkX3VybCkgewor
ICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLCBudWxsLAorICAgICAgICAg
ICAgICAgICdhc3NlcnRfd2FpdGluZ19hbmRfYWN0aXZlOiBpbnN0YWxsaW5nJyk7CisgIGFzc2Vy
dF9lcXVhbHMocmVnaXN0cmF0aW9uLndhaXRpbmcuc2NyaXB0VVJMLCBleHBlY3RlZF91cmwsCisg
ICAgICAgICAgICAgICAgJ2Fzc2VydF93YWl0aW5nX2FuZF9hY3RpdmU6IHdhaXRpbmcnKTsKKyAg
YXNzZXJ0X2VxdWFscyhyZWdpc3RyYXRpb24uYWN0aXZlLnNjcmlwdFVSTCwgZXhwZWN0ZWRfdXJs
LAorICAgICAgICAgICAgICAgICdhc3NlcnRfd2FpdGluZ19hbmRfYWN0aXZlOiBhY3RpdmUnKTsK
K30KKworZnVuY3Rpb24gYXNzZXJ0X2FjdGl2ZV9vbmx5KHJlZ2lzdHJhdGlvbiwgZXhwZWN0ZWRf
dXJsKSB7CisgIGFzc2VydF9lcXVhbHMocmVnaXN0cmF0aW9uLmluc3RhbGxpbmcsIG51bGwsCisg
ICAgICAgICAgICAgICAgJ2Fzc2VydF9hY3RpdmVfb25seTogaW5zdGFsbGluZycpOworICBhc3Nl
cnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi53YWl0aW5nLCBudWxsLAorICAgICAgICAgICAgICAgICdh
c3NlcnRfYWN0aXZlX29ubHk6IHdhaXRpbmcnKTsKKyAgYXNzZXJ0X2VxdWFscyhyZWdpc3RyYXRp
b24uYWN0aXZlLnNjcmlwdFVSTCwgZXhwZWN0ZWRfdXJsLAorICAgICAgICAgICAgICAgICdhc3Nl
cnRfYWN0aXZlX29ubHk6IGFjdGl2ZScpOworfQorCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7
CisgIGNvbnN0IFtyZWdpc3RyYXRpb24sIGV4cGVjdGVkX3VybF0gPQorICAgICAgYXdhaXQgcHJl
cGFyZV9yZWFkeV9yZWdpc3RyYXRpb25fd2l0aF9tb2RlKHQsICdub3JtYWwnKTsKKyAgdC5hZGRf
Y2xlYW51cCgoKSA9PiByZWdpc3RyYXRpb24udW5yZWdpc3RlcigpKTsKKworICBhd2FpdCBQcm9t
aXNlLmFsbChbcmVnaXN0cmF0aW9uLnVwZGF0ZSgpLCB3YWl0X2Zvcl91cGRhdGUodCwgcmVnaXN0
cmF0aW9uKV0pOworICBhc3NlcnRfaW5zdGFsbGluZ19hbmRfYWN0aXZlKHJlZ2lzdHJhdGlvbiwg
ZXhwZWN0ZWRfdXJsKTsKKworICBhd2FpdCB3YWl0X2Zvcl9zdGF0ZSh0LCByZWdpc3RyYXRpb24u
aW5zdGFsbGluZywgJ2luc3RhbGxlZCcpOworICBhc3NlcnRfd2FpdGluZ19hbmRfYWN0aXZlKHJl
Z2lzdHJhdGlvbiwgZXhwZWN0ZWRfdXJsKTsKKworICBhd2FpdCB3YWl0X2Zvcl9zdGF0ZSh0LCBy
ZWdpc3RyYXRpb24ud2FpdGluZywgJ2FjdGl2YXRlZCcpOworICBhc3NlcnRfYWN0aXZlX29ubHko
cmVnaXN0cmF0aW9uLCBleHBlY3RlZF91cmwpOworfSwgJ3VwZGF0ZSgpIHNob3VsZCBzdWNjZWVk
IHdoZW4gbmV3IHNjcmlwdCBpcyBhdmFpbGFibGUuJyk7CisKK3Byb21pc2VfdGVzdChhc3luYyB0
ID0+IHsKKyAgY29uc3QgW3JlZ2lzdHJhdGlvbiwgZXhwZWN0ZWRfdXJsXSA9CisgICAgICBhd2Fp
dCBwcmVwYXJlX3JlYWR5X3JlZ2lzdHJhdGlvbl93aXRoX21vZGUodCwgJ2JhZF9taW1lX3R5cGUn
KTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiByZWdpc3RyYXRpb24udW5yZWdpc3RlcigpKTsKKwor
ICBhd2FpdCBwcm9taXNlX3JlamVjdHModCwgJ1NlY3VyaXR5RXJyb3InLCByZWdpc3RyYXRpb24u
dXBkYXRlKCkpOworICBhc3NlcnRfYWN0aXZlX29ubHkocmVnaXN0cmF0aW9uLCBleHBlY3RlZF91
cmwpOworfSwgJ3VwZGF0ZSgpIHNob3VsZCBmYWlsIHdoZW4gbWltZSB0eXBlIGlzIGludmFsaWQu
Jyk7CisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgY29uc3QgW3JlZ2lzdHJhdGlvbiwg
ZXhwZWN0ZWRfdXJsXSA9CisgICAgICBhd2FpdCBwcmVwYXJlX3JlYWR5X3JlZ2lzdHJhdGlvbl93
aXRoX21vZGUodCwgJ3JlZGlyZWN0Jyk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcmVnaXN0cmF0
aW9uLnVucmVnaXN0ZXIoKSk7CisKKyAgYXdhaXQgcHJvbWlzZV9yZWplY3RzKHQsIG5ldyBUeXBl
RXJyb3IoKSwgcmVnaXN0cmF0aW9uLnVwZGF0ZSgpKTsKKyAgYXNzZXJ0X2FjdGl2ZV9vbmx5KHJl
Z2lzdHJhdGlvbiwgZXhwZWN0ZWRfdXJsKTsKK30sICd1cGRhdGUoKSBzaG91bGQgZmFpbCB3aGVu
IGEgcmVzcG9uc2UgZm9yIHRoZSBtYWluIHNjcmlwdCBpcyByZWRpcmVjdC4nKTsKKworcHJvbWlz
ZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25zdCBbcmVnaXN0cmF0aW9uLCBleHBlY3RlZF91cmxd
ID0KKyAgICAgIGF3YWl0IHByZXBhcmVfcmVhZHlfcmVnaXN0cmF0aW9uX3dpdGhfbW9kZSh0LCAn
c3ludGF4X2Vycm9yJyk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcmVnaXN0cmF0aW9uLnVucmVn
aXN0ZXIoKSk7CisKKyAgYXdhaXQgcHJvbWlzZV9yZWplY3RzKHQsIG5ldyBUeXBlRXJyb3IoKSwg
cmVnaXN0cmF0aW9uLnVwZGF0ZSgpKTsKKyAgYXNzZXJ0X2FjdGl2ZV9vbmx5KHJlZ2lzdHJhdGlv
biwgZXhwZWN0ZWRfdXJsKTsKK30sICd1cGRhdGUoKSBzaG91bGQgZmFpbCB3aGVuIGEgbmV3IHNj
cmlwdCBjb250YWlucyBhIHN5bnRheCBlcnJvci4nKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jIHQg
PT4geworICBjb25zdCBbcmVnaXN0cmF0aW9uLCBleHBlY3RlZF91cmxdID0KKyAgICAgIGF3YWl0
IHByZXBhcmVfcmVhZHlfcmVnaXN0cmF0aW9uX3dpdGhfbW9kZSh0LCAndGhyb3dfaW5zdGFsbCcp
OworICB0LmFkZF9jbGVhbnVwKCgpID0+IHJlZ2lzdHJhdGlvbi51bnJlZ2lzdGVyKCkpOworCisg
IGF3YWl0IFByb21pc2UuYWxsKFtyZWdpc3RyYXRpb24udXBkYXRlKCksIHdhaXRfZm9yX3VwZGF0
ZSh0LCByZWdpc3RyYXRpb24pXSk7CisgIGFzc2VydF9pbnN0YWxsaW5nX2FuZF9hY3RpdmUocmVn
aXN0cmF0aW9uLCBleHBlY3RlZF91cmwpOworfSwgJ3VwZGF0ZSgpIHNob3VsZCByZXNvbHZlIHdo
ZW4gdGhlIGluc3RhbGwgZXZlbnQgdGhyb3dzLicpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9
PiB7CisgIGNvbnN0IFtyZWdpc3RyYXRpb24sIGV4cGVjdGVkX3VybF0gPQorICAgICAgYXdhaXQg
cHJlcGFyZV9yZWFkeV9yZWdpc3RyYXRpb25fd2l0aF9tb2RlKHQsICdub3JtYWwnKTsKKyAgdC5h
ZGRfY2xlYW51cCgoKSA9PiByZWdpc3RyYXRpb24udW5yZWdpc3RlcigpKTsKKworICAvLyBXZSBu
ZWVkIHRvIGhvbGQgYSBjbGllbnQgYWxpdmUgc28gdGhhdCB1bnJlZ2lzdGVyKCkgYmVsb3cgZG9l
c24ndCByZW1vdmUKKyAgLy8gdGhlIHJlZ2lzdHJhdGlvbiBiZWZvcmUgdXBkYXRlKCkgaGFzIGhh
ZCBhIGNoYW5jZSB0byBsb29rIGF0IHRoZSBwZW5kaW5nCisgIC8vIHVuaW5zdGFsbCBmbGFnLgor
ICBjb25zdCBmcmFtZSA9IGF3YWl0IHdpdGhfaWZyYW1lKFNDT1BFKTsKKyAgdC5hZGRfY2xlYW51
cCgoKSA9PiBmcmFtZS5yZW1vdmUoKSk7CisKKyAgYXdhaXQgcHJvbWlzZV9yZWplY3RzKAorICAg
ICAgdCwgbmV3IFR5cGVFcnJvcigpLAorICAgICAgUHJvbWlzZS5hbGwoW3JlZ2lzdHJhdGlvbi51
bnJlZ2lzdGVyKCksIHJlZ2lzdHJhdGlvbi51cGRhdGUoKV0pKTsKK30sICd1cGRhdGUoKSBzaG91
bGQgZmFpbCB3aGVuIHRoZSBwZW5kaW5nIHVuaW5zdGFsbCBmbGFnIGlzIHNldC4nKTsKKworcHJv
bWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25zdCBbcmVnaXN0cmF0aW9uLCBleHBlY3RlZF91
cmxdID0KKyAgICAgIGF3YWl0IHByZXBhcmVfcmVhZHlfcmVnaXN0cmF0aW9uX3dpdGhfZmlsZSgK
KyAgICAgICAgdCwKKyAgICAgICAgJ3VwZGF0ZS1zbWFsbGVyLWJvZHktYmVmb3JlLXVwZGF0ZS13
b3JrZXIuanMnLAorICAgICAgICAndXBkYXRlLXNtYWxsZXItYm9keS1hZnRlci11cGRhdGUtd29y
a2VyLmpzJyk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIo
KSk7CisKKyAgYXdhaXQgUHJvbWlzZS5hbGwoW3JlZ2lzdHJhdGlvbi51cGRhdGUoKSwgd2FpdF9m
b3JfdXBkYXRlKHQsIHJlZ2lzdHJhdGlvbildKTsKKyAgYXNzZXJ0X2luc3RhbGxpbmdfYW5kX2Fj
dGl2ZShyZWdpc3RyYXRpb24sIGV4cGVjdGVkX3VybCk7CisKKyAgYXdhaXQgd2FpdF9mb3Jfc3Rh
dGUodCwgcmVnaXN0cmF0aW9uLmluc3RhbGxpbmcsICdpbnN0YWxsZWQnKTsKKyAgYXNzZXJ0X3dh
aXRpbmdfYW5kX2FjdGl2ZShyZWdpc3RyYXRpb24sIGV4cGVjdGVkX3VybCk7CisKKyAgYXdhaXQg
d2FpdF9mb3Jfc3RhdGUodCwgcmVnaXN0cmF0aW9uLndhaXRpbmcsICdhY3RpdmF0ZWQnKTsKKyAg
YXNzZXJ0X2FjdGl2ZV9vbmx5KHJlZ2lzdHJhdGlvbiwgZXhwZWN0ZWRfdXJsKTsKK30sICd1cGRh
dGUoKSBzaG91bGQgc3VjY2VlZCB3aGVuIHRoZSBzY3JpcHQgc2hyaW5rcy4nKTsKIDwvc2NyaXB0
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci93M2MtaW1wb3J0LmxvZwppbmRleCBhMzNlZjA1YjRiYzA3NzI4YjE5ODc2M2Zl
OWJmZjE0NDkzZGU4YTBmLi4xOGJhMjVkNDJiM2UzNGI0ZjVlNGZlMTUzMDNjZTMyYTEwOTM0NjIz
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci93M2MtaW1wb3J0LmxvZworKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci93M2MtaW1wb3J0LmxvZwpAQCAtMzcsNiArMzcsNyBAQCBMaXN0IG9mIGZp
bGVzOgogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsaWVudHMtZ2V0Lmh0dHBzLmh0bWwKIC9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9jbGllbnRzLW1hdGNoYWxsLWNsaWVudC10eXBlcy5odHRwcy5odG1sCiAvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvY2xpZW50cy1tYXRjaGFsbC1leGFjdC1jb250cm9sbGVyLmh0dHBzLmh0
bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGllbnRzLW1hdGNoYWxsLWZyb3plbi5odHRwcy5odG1s
CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvY2xpZW50cy1tYXRjaGFsbC1pbmNsdWRlLXVuY29udHJvbGxl
ZC5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xpZW50cy1tYXRjaGFsbC1vbi1ldmFs
dWF0aW9uLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGllbnRzLW1hdGNoYWxsLW9y
ZGVyLmh0dHBzLmh0bWwKQEAgLTEwMiw2ICsxMDMsNyBAQCBMaXN0IG9mIGZpbGVzOgogL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL2ZldGNoLXdhaXRzLWZvci1hY3RpdmF0ZS5odHRwcy5odG1sCiAvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvZ2V0cmVnaXN0cmF0aW9uLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9nZXRyZWdpc3RyYXRpb25zLmh0dHBzLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9nbG9iYWwt
c2VydmljZXdvcmtlci5odHRwcy5hbnkuanMKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9odHRwLXRvLWh0
dHBzLXJlZGlyZWN0LWFuZC1yZWdpc3Rlci5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
aW1tdXRhYmxlLXByb3RvdHlwZS1zZXJ2aWNld29ya2VyLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9pbXBvcnQtbW9kdWxlLXNjcmlwdHMuaHR0cHMuaHRtbApAQCAtMTcwLDcgKzE3Miw2
IEBAIExpc3Qgb2YgZmlsZXM6CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvc2VydmljZS13b3JrZXItaGVh
ZGVyLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9zZXJ2aWNld29ya2VyLW1lc3NhZ2Ut
ZXZlbnQtaGlzdG9yaWNhbC5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvc2VydmljZXdv
cmtlcm9iamVjdC1zY3JpcHR1cmwuaHR0cHMuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3NoYXJl
ZC13b3JrZXItY29udHJvbGxlZC5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvc2tpcC13
YWl0aW5nLWluc3RhbGxlZC5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvc2tpcC13YWl0
aW5nLXVzaW5nLXJlZ2lzdHJhdGlvbi5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvc2tp
cC13YWl0aW5nLXdpdGhvdXQtY2xpZW50Lmh0dHBzLmh0bWwKQEAgLTE4OSw2ICsxOTAsNyBAQCBM
aXN0IG9mIGZpbGVzOgogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0ZS1hZnRlci1uYXZpZ2F0aW9u
LXJlZGlyZWN0Lmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUtYWZ0ZXItb25l
ZGF5Lmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUtYnl0ZWNoZWNrLmh0dHBz
Lmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUtaW1wb3J0LXNjcmlwdHMuaHR0cHMuaHRt
bAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0ZS1taXNzaW5nLWltcG9ydC1zY3JpcHRzLmh0dHBz
Lmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUtbm8tY2FjaGUtcmVxdWVzdC1oZWFkZXJz
Lmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUtbm90LWFsbG93ZWQuaHR0cHMu
aHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvd2Vic29ja2V0Lmh0dHBzLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3dlYnNvY2tldC5odHRwcy1leHBlY3RlZC50eHQK
aW5kZXggY2NkMzc2ZmJkMTQwZTZjYzI1MWE1MjA2NDI3MzBkYzFhOWU4Njc4Zi4uMjUxY2JhOWUw
MzE5NzhlYmNkMzY5NTU5NzBiNzIwMDhiZDFlZTllZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvd2Vic29ja2V0Lmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci93ZWJzb2NrZXQuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0xLDYgKzEsMyBAQAotQ09OU09MRSBN
RVNTQUdFOiBXZWJTb2NrZXQgbmV0d29yayBlcnJvcjogT1NTdGF0dXMgRXJyb3IgLTk4MDc6IElu
dmFsaWQgY2VydGlmaWNhdGUgY2hhaW4gCi1DT05TT0xFIE1FU1NBR0U6IFdlYlNvY2tldCBuZXR3
b3JrIGVycm9yOiBPU1N0YXR1cyBFcnJvciAtOTgwNzogSW52YWxpZCBjZXJ0aWZpY2F0ZSBjaGFp
biAKIAotCi1GQUlMIFZlcmlmeSBXZWJTb2NrZXQgaGFuZHNoYWtlIGNoYW5uZWwgZG9lcyBub3Qg
Z2V0IGludGVyY2VwdGVkIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZh
bHVlOiBvYmplY3QgIltvYmplY3QgRXZlbnRdIgorUEFTUyBWZXJpZnkgV2ViU29ja2V0IGhhbmRz
aGFrZSBjaGFubmVsIGRvZXMgbm90IGdldCBpbnRlcmNlcHRlZCAKIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvd29ya2VyLWNsaWVudC1pZC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci93b3JrZXItY2xpZW50LWlkLmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCAx
MGM5ZTI0ZDk5N2Q5Njk4Nzc0MzViMGZmNjFmMTAyNjg3MGY2MTIyLi4wMmI4MTEyMGE5ZDVmODlj
MzBhYjE2YTkzM2QxNWQ3NmEyMWNkYWI5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci93
b3JrZXItY2xpZW50LWlkLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci93b3JrZXItY2xpZW50LWlkLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMSwzICsxLDMgQEAKIAot
RkFJTCBWZXJpZnkgd29ya2VycyBoYXZlIGEgdW5pcXVlIGNsaWVudCBpZCBzZXBhcmF0ZSBmcm9t
IHRoZWlyIG93bmluZyBkb2N1bWVudHMgd2luZG93IGFzc2VydF9ub3RfZXF1YWxzOiBmcmFtZSBh
bmQgd29ya2VyIGNsaWVudCBpZHMgc2hvdWxkIGJlIGRpZmZlcmVudCBnb3QgZGlzYWxsb3dlZCB2
YWx1ZSAiMS0xOSIKK0ZBSUwgVmVyaWZ5IHdvcmtlcnMgaGF2ZSBhIHVuaXF1ZSBjbGllbnQgaWQg
c2VwYXJhdGUgZnJvbSB0aGVpciBvd25pbmcgZG9jdW1lbnRzIHdpbmRvdyBhc3NlcnRfbm90X2Vx
dWFsczogZnJhbWUgYW5kIHdvcmtlciBjbGllbnQgaWRzIHNob3VsZCBiZSBkaWZmZXJlbnQgZ290
IGRpc2FsbG93ZWQgdmFsdWUgIjQtMzQwOCIKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvd29ya2VyLWludGVyY2VwdGlvbi5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci93b3JrZXItaW50ZXJjZXB0aW9uLmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCBiNGVkNGVl
OWExNzQ1ZWMzMjgxNmFkYzFkY2RjYmJmYThmNzFjMDI5Li41NDNlMDM3NWVkYmEyNTJkOGM1M2Zl
NTk3NDEwMGQxYzNlNTI4NTEzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci93b3JrZXIt
aW50ZXJjZXB0aW9uLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci93
b3JrZXItaW50ZXJjZXB0aW9uLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMSw4ICsxLDE2IEBACi1D
T05TT0xFIE1FU1NBR0U6IGxpbmUgMTogUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFi
bGU6IFdvcmtlcgogCi1GQUlMIFZlcmlmeSB3b3JrZXIgc2NyaXB0IGZyb20gdW5jb250cm9sbGVk
IGRvY3VtZW50IGlzIGludGVyY2VwdGVkIGJ5IFNlcnZpY2UgV29ya2VyIHByb21pc2VfdGVzdDog
VW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiB1bmRlZmluZWQKLUZBSUwgVmVyaWZ5IHdv
cmtlciBzY3JpcHQgaW50ZXJjZXB0ZWQgYnkgc2FtZS1vcmlnaW4gcmVzcG9uc2Ugc3VjY2VlZHMg
cHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IHVuZGVmaW5lZAot
UEFTUyBWZXJpZnkgd29ya2VyIHNjcmlwdCBpbnRlcmNlcHRlZCBieSBjb3JzIHJlc3BvbnNlIGZh
aWxzIAotUEFTUyBWZXJpZnkgd29ya2VyIHNjcmlwdCBpbnRlcmNlcHRlZCBieSBuby1jb3JzIGNy
b3NzLW9yaWdpbiByZXNwb25zZSBmYWlscyAKLUZBSUwgVmVyaWZ5IHdvcmtlciBsb2FkcyBmcm9t
IGNvbnRyb2xsZWQgZG9jdW1lbnQgYXJlIGludGVyY2VwdGVkIGJ5IFNlcnZpY2UgV29ya2VyIGFz
c2VydF9lcXVhbHM6IGV4cGVjdGVkICJmaW5pc2giIGJ1dCBnb3QgImZhaWx1cmU6W29iamVjdCBF
cnJvckV2ZW50XSIKK0ZBSUwgVmVyaWZ5IGEgZGVkaWNhdGVkIHdvcmtlciBzY3JpcHQgcmVxdWVz
dCBpc3N1ZWQgZnJvbSBhIHVuY29udHJvbGxlZCBkb2N1bWVudCBpcyBpbnRlcmNlcHRlZCBieSB3
b3JrZXIncyBvd24gc2VydmljZSB3b3JrZXIuIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVj
dGlvbiB3aXRoIHZhbHVlOiB1bmRlZmluZWQKK0ZBSUwgVmVyaWZ5IGEgc2hhcmVkIHdvcmtlciBz
Y3JpcHQgcmVxdWVzdCBpc3N1ZWQgZnJvbSBhIHVuY29udHJvbGxlZCBkb2N1bWVudCBpcyBpbnRl
cmNlcHRlZCBieSB3b3JrZXIncyBvd24gc2VydmljZSB3b3JrZXIuIHByb21pc2VfdGVzdDogVW5o
YW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlJlZmVyZW5jZUVycm9yOiBDYW4n
dCBmaW5kIHZhcmlhYmxlOiBTaGFyZWRXb3JrZXIiCitGQUlMIFZlcmlmeSBhIHNhbWUtb3JpZ2lu
IHdvcmtlciBzY3JpcHQgc2VydmVkIGJ5IGEgc2VydmljZSB3b3JrZXIgc3VjY2VlZHMgaW4gc3Rh
cnRpbmcgYSBkZWRpY2F0ZWQgd29ya2VyLiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rp
b24gd2l0aCB2YWx1ZTogdW5kZWZpbmVkCitGQUlMIFZlcmlmeSBhIHNhbWUtb3JpZ2luIHdvcmtl
ciBzY3JpcHQgc2VydmVkIGJ5IGEgc2VydmljZSB3b3JrZXIgc3VjY2VlZHMgaW4gc3RhcnRpbmcg
YSBzaGFyZWQgd29ya2VyLiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2
YWx1ZTogb2JqZWN0ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogU2hhcmVk
V29ya2VyIgorUEFTUyBWZXJpZnkgYSBjb3JzIHdvcmtlciBzY3JpcHQgc2VydmVkIGJ5IGEgc2Vy
dmljZSB3b3JrZXIgZmFpbHMgZGVkaWNhdGVkIHdvcmtlciBzdGFydC4gCitGQUlMIFZlcmlmeSBh
IGNvcnMgd29ya2VyIHNjcmlwdCBzZXJ2ZWQgYnkgYSBzZXJ2aWNlIHdvcmtlciBmYWlscyBzaGFy
ZWQgd29ya2VyIHN0YXJ0LiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2
YWx1ZTogb2JqZWN0ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogU2hhcmVk
V29ya2VyIgorUEFTUyBWZXJpZnkgYSBuby1jb3JzIGNyb3NzLW9yaWdpbiB3b3JrZXIgc2NyaXB0
IHNlcnZlZCBieSBhIHNlcnZpY2Ugd29ya2VyIGZhaWxzIGRlZGljYXRlZCB3b3JrZXIgc3RhcnQu
IAorRkFJTCBWZXJpZnkgYSBuby1jb3JzIGNyb3NzLW9yaWdpbiB3b3JrZXIgc2NyaXB0IHNlcnZl
ZCBieSBhIHNlcnZpY2Ugd29ya2VyIGZhaWxzIHNoYXJlZCB3b3JrZXIgc3RhcnQuIHByb21pc2Vf
dGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlJlZmVyZW5jZUVy
cm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBTaGFyZWRXb3JrZXIiCitQQVNTIFJlZ2lzdGVyIGEg
c2VydmljZSB3b3JrZXIgZm9yIHdvcmtlciBzdWJyZXNvdXJjZSBpbnRlcmNlcHRpb24gdGVzdHMu
IAorRkFJTCBSZXF1ZXN0cyBvbiBhIGRlZGljYXRlZCB3b3JrZXIgY29udHJvbGxlZCBieSBhIHNl
cnZpY2Ugd29ya2VyLiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiVGhpcyBsb2FkIHdhcyBzdWNj
ZXNzZnVsbHkgaW50ZXJjZXB0ZWQuIiBidXQgZ290ICJ7XCJlcnJvclwiOiB7XCJtZXNzYWdlXCI6
IFwiXCIsIFwiY29kZVwiOiA0MDR9fSIKK0ZBSUwgUmVxdWVzdHMgb24gYSBzaGFyZWQgd29ya2Vy
IGNvbnRyb2xsZWQgYnkgYSBzZXJ2aWNlIHdvcmtlci4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQg
cmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQg
dmFyaWFibGU6IFNoYXJlZFdvcmtlciIKK0ZBSUwgUmVxdWVzdHMgb24gYSBkZWRpY2F0ZWQgd29y
a2VyIG5lc3RlZCBpbiBhIGRlZGljYXRlZCB3b3JrZXIgYW5kIGNvbnRyb2xsZWQgYnkgYSBzZXJ2
aWNlIHdvcmtlciBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiVGhpcyBsb2FkIHdhcyBzdWNjZXNz
ZnVsbHkgaW50ZXJjZXB0ZWQuIiBidXQgZ290ICJVbmV4cGVjdGVkIGVycm9yISBDYW4ndCBmaW5k
IHZhcmlhYmxlOiBXb3JrZXIiCitGQUlMIFJlcXVlc3RzIG9uIGEgZGVkaWNhdGVkIHdvcmtlciBu
ZXN0ZWQgaW4gYSBzaGFyZWQgd29ya2VyIGFuZCBjb250cm9sbGVkIGJ5IGEgc2VydmljZSB3b3Jr
ZXIgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAi
UmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IFNoYXJlZFdvcmtlciIKK1BBU1Mg
VW5yZWdpc3RlciBhIHNlcnZpY2Ugd29ya2VyIGZvciBzdWJyZXNvdXJjZSBpbnRlcmNlcHRpb24g
dGVzdHMuIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci93b3JrZXItaW50ZXJjZXB0
aW9uLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci93b3JrZXItaW50ZXJjZXB0aW9uLmh0
dHBzLmh0bWwKaW5kZXggN2IyOTQxMjYzYmY3NTZjMzNlNmQxNWIzNmVkOTY1NDhmODg2YzZjMi4u
MzAyYTIxNGFjNjE5NDAwYzM4Zjc1NjRjMDY1YTVlMGJlNDdhYzZkZiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvd29ya2VyLWludGVyY2VwdGlvbi5odHRwcy5odG1sCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL3dvcmtlci1pbnRlcmNlcHRpb24uaHR0cHMuaHRtbApAQCAtMSwxMzUgKzEs
MTg4IEBACiA8IURPQ1RZUEUgaHRtbD4KIDx0aXRsZT5TZXJ2aWNlIFdvcmtlcjogaW50ZXJjZXB0
aW5nIFdvcmtlciBzY3JpcHQgbG9hZHM8L3RpdGxlPgorPG1ldGEgbmFtZT0idGltZW91dCIgY29u
dGVudD0ibG9uZyI+CiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9z
Y3JpcHQ+CiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9z
Y3JpcHQ+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Rlc3QtaGVscGVycy5zdWIuanMiPjwvc2Ny
aXB0PgogPGJvZHk+CiA8c2NyaXB0PgotcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKLSAgICB2
YXIgd29ya2VyX3VybCA9ICdyZXNvdXJjZXMvZHVtbXktc3ludGhlc2l6ZWQtd29ya2VyLmpzJzsK
LSAgICB2YXIgc2VydmljZV93b3JrZXIgPSAncmVzb3VyY2VzL2R1bW15LXdvcmtlci1pbnRlcmNl
cHRvci5qcyc7Ci0gICAgdmFyIHNjb3BlID0gd29ya2VyX3VybDsKLQotICAgIHJldHVybiBzZXJ2
aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCBzZXJ2aWNlX3dvcmtlciwgc2Nv
cGUpCi0gICAgICAudGhlbihmdW5jdGlvbihyKSB7Ci0gICAgICAgICAgdC5hZGRfY2xlYW51cChm
dW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0
ZXIodCwgc2NvcGUpOwotICAgICAgICAgICAgfSk7Ci0KLSAgICAgICAgICByZXR1cm4gd2FpdF9m
b3Jfc3RhdGUodCwgci5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7Ci0gICAgICAgIH0pCi0gICAg
ICAudGhlbihmdW5jdGlvbigpIHsKLSAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rp
b24ocmVzb2x2ZSwgcmVqZWN0KSB7Ci0gICAgICAgICAgICAgIHZhciB3ID0gbmV3IFdvcmtlcih3
b3JrZXJfdXJsKTsKLSAgICAgICAgICAgICAgdy5vbm1lc3NhZ2UgPSBmdW5jdGlvbihlKSB7Ci0g
ICAgICAgICAgICAgICAgcmVzb2x2ZShlLmRhdGEpOwotICAgICAgICAgICAgICB9Ci0KLSAgICAg
ICAgICAgICAgdy5vbmVycm9yID0gZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgICAgIHJlamVj
dChlLm1lc3NhZ2UpOwotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAg
fSkKLSAgICAgIC50aGVuKGZ1bmN0aW9uKGRhdGEpIHsKLSAgICAgICAgICBhc3NlcnRfZXF1YWxz
KGRhdGEsICd3b3JrZXIgbG9hZGluZyBpbnRlcmNlcHRlZCBieSBzZXJ2aWNlIHdvcmtlcicpOwot
ICAgICAgICB9KTsKLSAgfSwgJ1ZlcmlmeSB3b3JrZXIgc2NyaXB0IGZyb20gdW5jb250cm9sbGVk
IGRvY3VtZW50IGlzIGludGVyY2VwdGVkIGJ5IFNlcnZpY2UgV29ya2VyJyk7Ci0KLXByb21pc2Vf
dGVzdChmdW5jdGlvbih0KSB7Ci0gICAgdmFyIHdvcmtlcl91cmwgPSAncmVzb3VyY2VzL2R1bW15
LXNhbWUtb3JpZ2luLXdvcmtlci5qcyc7Ci0gICAgdmFyIHNlcnZpY2Vfd29ya2VyID0gJ3Jlc291
cmNlcy9kdW1teS13b3JrZXItaW50ZXJjZXB0b3IuanMnOwotICAgIHZhciBzY29wZSA9IHdvcmtl
cl91cmw7Ci0KLSAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0
ZXIodCwgc2VydmljZV93b3JrZXIsIHNjb3BlKQotICAgICAgLnRoZW4oZnVuY3Rpb24ocikgewot
ICAgICAgICAgIHQuYWRkX2NsZWFudXAoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgIHJldHVy
biBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyKHQsIHNjb3BlKTsKLSAgICAgICAgICAgIH0pOwot
Ci0gICAgICAgICAgcmV0dXJuIHdhaXRfZm9yX3N0YXRlKHQsIHIuaW5zdGFsbGluZywgJ2FjdGl2
YXRlZCcpOwotICAgICAgICB9KQotICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7Ci0gICAgICAgICAg
cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgewotICAgICAgICAg
ICAgICB2YXIgdyA9IG5ldyBXb3JrZXIod29ya2VyX3VybCk7Ci0gICAgICAgICAgICAgIHcub25t
ZXNzYWdlID0gZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgICAgIHJlc29sdmUoZS5kYXRhKTsK
LSAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgIHcub25lcnJvciA9IGZ1bmN0aW9uKGUp
IHsKLSAgICAgICAgICAgICAgICByZWplY3QoZS5tZXNzYWdlKTsKLSAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0pCi0gICAgICAudGhlbihmdW5jdGlvbihkYXRhKSB7
Ci0gICAgICAgICAgYXNzZXJ0X2VxdWFscyhkYXRhLCAnZHVtbXktd29ya2VyLXNjcmlwdCBsb2Fk
ZWQnKTsKLSAgICAgICAgfSk7Ci0gIH0sICdWZXJpZnkgd29ya2VyIHNjcmlwdCBpbnRlcmNlcHRl
ZCBieSBzYW1lLW9yaWdpbiByZXNwb25zZSBzdWNjZWVkcycpOwotCi1wcm9taXNlX3Rlc3QoZnVu
Y3Rpb24odCkgewotICAgIHZhciB3b3JrZXJfdXJsID0gJ3Jlc291cmNlcy9kdW1teS1jb3JzLXdv
cmtlci5qcyc7Ci0gICAgdmFyIHNlcnZpY2Vfd29ya2VyID0gJ3Jlc291cmNlcy9kdW1teS13b3Jr
ZXItaW50ZXJjZXB0b3IuanMnOwotICAgIHZhciBzY29wZSA9IHdvcmtlcl91cmw7Ci0KLSAgICBy
ZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgc2VydmljZV93
b3JrZXIsIHNjb3BlKQotICAgICAgLnRoZW4oZnVuY3Rpb24ocikgewotICAgICAgICAgIHJldHVy
biB3YWl0X2Zvcl9zdGF0ZSh0LCByLmluc3RhbGxpbmcsICdhY3RpdmF0ZWQnKTsKLSAgICAgICAg
fSkKLSAgICAgIC50aGVuKGZ1bmN0aW9uKCkgewotICAgICAgICAgIHZhciB3ID0gbmV3IFdvcmtl
cih3b3JrZXJfdXJsKTsKLSAgICAgICAgICB2YXIgd2F0Y2hlciA9IG5ldyBFdmVudFdhdGNoZXIo
dCwgdywgWydtZXNzYWdlJywgJ2Vycm9yJ10pOwotICAgICAgICAgIHJldHVybiB3YXRjaGVyLndh
aXRfZm9yKCdlcnJvcicpOwotICAgICAgICB9KTsKLSAgfSwgJ1ZlcmlmeSB3b3JrZXIgc2NyaXB0
IGludGVyY2VwdGVkIGJ5IGNvcnMgcmVzcG9uc2UgZmFpbHMnKTsKLQotcHJvbWlzZV90ZXN0KGZ1
bmN0aW9uKHQpIHsKLSAgICB2YXIgd29ya2VyX3VybCA9ICdyZXNvdXJjZXMvZHVtbXktbm8tY29y
cy13b3JrZXIuanMnOwotICAgIHZhciBzZXJ2aWNlX3dvcmtlciA9ICdyZXNvdXJjZXMvZHVtbXkt
d29ya2VyLWludGVyY2VwdG9yLmpzJzsKLSAgICB2YXIgc2NvcGUgPSB3b3JrZXJfdXJsOwotCi0g
ICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHNlcnZp
Y2Vfd29ya2VyLCBzY29wZSkKLSAgICAgIC50aGVuKGZ1bmN0aW9uKHIpIHsKLSAgICAgICAgICB0
LmFkZF9jbGVhbnVwKGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICByZXR1cm4gc2VydmljZV93
b3JrZXJfdW5yZWdpc3Rlcih0LCBzY29wZSk7Ci0gICAgICAgICAgICB9KTsKLQotICAgICAgICAg
IHJldHVybiB3YWl0X2Zvcl9zdGF0ZSh0LCByLmluc3RhbGxpbmcsICdhY3RpdmF0ZWQnKTsKLSAg
ICAgICAgfSkKLSAgICAgIC50aGVuKGZ1bmN0aW9uKCkgewotICAgICAgICAgIHZhciB3ID0gbmV3
IFdvcmtlcih3b3JrZXJfdXJsKTsKLSAgICAgICAgICB2YXIgd2F0Y2hlciA9IG5ldyBFdmVudFdh
dGNoZXIodCwgdywgWydtZXNzYWdlJywgJ2Vycm9yJ10pOwotICAgICAgICAgIHJldHVybiB3YXRj
aGVyLndhaXRfZm9yKCdlcnJvcicpOwotICAgICAgICB9KTsKLSAgfSwgJ1ZlcmlmeSB3b3JrZXIg
c2NyaXB0IGludGVyY2VwdGVkIGJ5IG5vLWNvcnMgY3Jvc3Mtb3JpZ2luIHJlc3BvbnNlIGZhaWxz
Jyk7Ci0KLXByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7Ci0gICAgdmFyIHN1YmRvY191cmwgPSAn
cmVzb3VyY2VzL3dvcmtlci1pbnRlcmNlcHRpb24taWZyYW1lLmh0dHBzLmh0bWw/YnlwYXNzJzsK
LSAgICB2YXIgc2VydmljZV93b3JrZXIgPSAncmVzb3VyY2VzL3dvcmtlci1sb2FkLWludGVyY2Vw
dG9yLmpzJzsKLSAgICB2YXIgc2NvcGUgPSAncmVzb3VyY2VzLyc7Ci0KLSAgICByZXR1cm4gc2Vy
dmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgc2VydmljZV93b3JrZXIsIHNj
b3BlKQotICAgICAgLnRoZW4oZnVuY3Rpb24ocikgewotICAgICAgICAgIHQuYWRkX2NsZWFudXAo
ZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lz
dGVyKHQsIHNjb3BlKTsKLSAgICAgICAgICAgIH0pOwotCi0gICAgICAgICAgcmV0dXJuIHdhaXRf
Zm9yX3N0YXRlKHQsIHIuaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOwotICAgICAgICB9KQotICAg
ICAgLnRoZW4oZnVuY3Rpb24oKSB7IHJldHVybiB3aXRoX2lmcmFtZShzdWJkb2NfdXJsKTsgfSkK
LSAgICAgIC50aGVuKGZ1bmN0aW9uKGZyYW1lKSB7Ci0gICAgICAgICAgcmV0dXJuIG5ldyBQcm9t
aXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgewotICAgICAgICAgICAgICB2YXIgY2hhbm5l
bCA9IG5ldyBNZXNzYWdlQ2hhbm5lbCgpOwotICAgICAgICAgICAgICBjaGFubmVsLnBvcnQxLm9u
bWVzc2FnZSA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgICAgICBmcmFtZS5yZW1vdmUoKTsK
LSAgICAgICAgICAgICAgICByZXNvbHZlKGUuZGF0YSk7Ci0gICAgICAgICAgICAgIH0KLQotICAg
ICAgICAgICAgICBmcmFtZS5jb250ZW50V2luZG93LnBvc3RNZXNzYWdlKCJHTyIsICIqIiwgW2No
YW5uZWwucG9ydDJdKTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9KQotICAgICAgLnRoZW4o
ZnVuY3Rpb24oZGF0YSkgewotICAgICAgICAgIGFzc2VydF9lcXVhbHMoZGF0YS5yZXN1bHRzLCAn
ZmluaXNoJyk7Ci0gICAgICAgIH0pOwotICB9LCAnVmVyaWZ5IHdvcmtlciBsb2FkcyBmcm9tIGNv
bnRyb2xsZWQgZG9jdW1lbnQgYXJlIGludGVyY2VwdGVkIGJ5IFNlcnZpY2UgV29ya2VyJyk7CisK
Ky8vID09PT09PT09PT0gV29ya2VyIG1haW4gcmVzb3VyY2UgaW50ZXJjZXB0aW9uIHRlc3RzID09
PT09PT09PT0KKworYXN5bmMgZnVuY3Rpb24gc2V0dXBfc2VydmljZV93b3JrZXIodCwgc2Vydmlj
ZV93b3JrZXJfdXJsLCBzY29wZSkgeworICBjb25zdCByID0gYXdhaXQgc2VydmljZV93b3JrZXJf
dW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIoCisgICAgICB0LCBzZXJ2aWNlX3dvcmtlcl91cmwsIHNj
b3BlKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyKHQs
IHNjb3BlKSk7CisgIGF3YWl0IHdhaXRfZm9yX3N0YXRlKHQsIHIuaW5zdGFsbGluZywgJ2FjdGl2
YXRlZCcpOworfQorCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0IHdvcmtlcl91
cmwgPSAncmVzb3VyY2VzL2R1bW15LXN5bnRoZXNpemVkLXdvcmtlci5qcz9kZWRpY2F0ZWQnOwor
ICBjb25zdCBzZXJ2aWNlX3dvcmtlcl91cmwgPSAncmVzb3VyY2VzL2R1bW15LXdvcmtlci1pbnRl
cmNlcHRvci5qcyc7CisgIGNvbnN0IHNjb3BlID0gd29ya2VyX3VybDsKKworICBhd2FpdCBzZXR1
cF9zZXJ2aWNlX3dvcmtlcih0LCBzZXJ2aWNlX3dvcmtlcl91cmwsIHNjb3BlKTsKKyAgY29uc3Qg
dyA9IG5ldyBXb3JrZXIod29ya2VyX3VybCk7CisgIGNvbnN0IGRhdGEgPSBhd2FpdCBuZXcgUHJv
bWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7CisgICAgdy5vbm1lc3NhZ2UgPSBlID0+IHJlc29s
dmUoZS5kYXRhKTsKKyAgICB3Lm9uZXJyb3IgPSBlID0+IHJlamVjdChlLm1lc3NhZ2UpOworICB9
KTsKKyAgYXNzZXJ0X2VxdWFscyhkYXRhLCAnd29ya2VyIGxvYWRpbmcgaW50ZXJjZXB0ZWQgYnkg
c2VydmljZSB3b3JrZXInKTsKK30sIGBWZXJpZnkgYSBkZWRpY2F0ZWQgd29ya2VyIHNjcmlwdCBy
ZXF1ZXN0IGlzc3VlZCBmcm9tIGEgdW5jb250cm9sbGVkIGAgKworICAgYGRvY3VtZW50IGlzIGlu
dGVyY2VwdGVkIGJ5IHdvcmtlcidzIG93biBzZXJ2aWNlIHdvcmtlci5gKTsKKworcHJvbWlzZV90
ZXN0KGFzeW5jIHQgPT4geworICBjb25zdCB3b3JrZXJfdXJsID0gJ3Jlc291cmNlcy9kdW1teS1z
eW50aGVzaXplZC13b3JrZXIuanM/c2hhcmVkJzsKKyAgY29uc3Qgc2VydmljZV93b3JrZXJfdXJs
ID0gJ3Jlc291cmNlcy9kdW1teS13b3JrZXItaW50ZXJjZXB0b3IuanMnOworICBjb25zdCBzY29w
ZSA9IHdvcmtlcl91cmw7CisKKyAgYXdhaXQgc2V0dXBfc2VydmljZV93b3JrZXIodCwgc2Vydmlj
ZV93b3JrZXJfdXJsLCBzY29wZSk7CisgIGNvbnN0IHcgPSBuZXcgU2hhcmVkV29ya2VyKHdvcmtl
cl91cmwpOworICBjb25zdCBkYXRhID0gYXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVj
dCkgPT4geworICAgIHcucG9ydC5vbm1lc3NhZ2UgPSBlID0+IHJlc29sdmUoZS5kYXRhKTsKKyAg
ICB3Lm9uZXJyb3IgPSBlID0+IHJlamVjdChlLm1lc3NhZ2UpOworICB9KTsKKyAgYXNzZXJ0X2Vx
dWFscyhkYXRhLCAnd29ya2VyIGxvYWRpbmcgaW50ZXJjZXB0ZWQgYnkgc2VydmljZSB3b3JrZXIn
KTsKK30sIGBWZXJpZnkgYSBzaGFyZWQgd29ya2VyIHNjcmlwdCByZXF1ZXN0IGlzc3VlZCBmcm9t
IGEgdW5jb250cm9sbGVkIGAgKworICAgYGRvY3VtZW50IGlzIGludGVyY2VwdGVkIGJ5IHdvcmtl
cidzIG93biBzZXJ2aWNlIHdvcmtlci5gKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewor
ICBjb25zdCB3b3JrZXJfdXJsID0gJ3Jlc291cmNlcy9kdW1teS1zYW1lLW9yaWdpbi13b3JrZXIu
anM/ZGVkaWNhdGVkJzsKKyAgY29uc3Qgc2VydmljZV93b3JrZXJfdXJsID0gJ3Jlc291cmNlcy9k
dW1teS13b3JrZXItaW50ZXJjZXB0b3IuanMnOworICBjb25zdCBzY29wZSA9IHdvcmtlcl91cmw7
CisKKyAgYXdhaXQgc2V0dXBfc2VydmljZV93b3JrZXIodCwgc2VydmljZV93b3JrZXJfdXJsLCBz
Y29wZSk7CisgIGNvbnN0IHcgPSBuZXcgV29ya2VyKHdvcmtlcl91cmwpOworICBjb25zdCBkYXRh
ID0gYXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4geworICAgIHcub25tZXNz
YWdlID0gZSA9PiByZXNvbHZlKGUuZGF0YSk7CisgICAgdy5vbmVycm9yID0gZSA9PiByZWplY3Qo
ZS5tZXNzYWdlKTsKKyAgfSk7CisgIGFzc2VydF9lcXVhbHMoZGF0YSwgJ2RlZGljYXRlZCB3b3Jr
ZXIgc2NyaXB0IGxvYWRlZCcpOworfSwgJ1ZlcmlmeSBhIHNhbWUtb3JpZ2luIHdvcmtlciBzY3Jp
cHQgc2VydmVkIGJ5IGEgc2VydmljZSB3b3JrZXIgc3VjY2VlZHMgJyArCisgICAnaW4gc3RhcnRp
bmcgYSBkZWRpY2F0ZWQgd29ya2VyLicpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7Cisg
IGNvbnN0IHdvcmtlcl91cmwgPSAncmVzb3VyY2VzL2R1bW15LXNhbWUtb3JpZ2luLXdvcmtlci5q
cz9zaGFyZWQnOworICBjb25zdCBzZXJ2aWNlX3dvcmtlcl91cmwgPSAncmVzb3VyY2VzL2R1bW15
LXdvcmtlci1pbnRlcmNlcHRvci5qcyc7CisgIGNvbnN0IHNjb3BlID0gd29ya2VyX3VybDsKKwor
ICBhd2FpdCBzZXR1cF9zZXJ2aWNlX3dvcmtlcih0LCBzZXJ2aWNlX3dvcmtlcl91cmwsIHNjb3Bl
KTsKKyAgY29uc3QgdyA9IG5ldyBTaGFyZWRXb3JrZXIod29ya2VyX3VybCk7CisgIGNvbnN0IGRh
dGEgPSBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7CisgICAgdy5wb3J0
Lm9ubWVzc2FnZSA9IGUgPT4gcmVzb2x2ZShlLmRhdGEpOworICAgIHcub25lcnJvciA9IGUgPT4g
cmVqZWN0KGUubWVzc2FnZSk7CisgIH0pOworICBhc3NlcnRfZXF1YWxzKGRhdGEsICdzaGFyZWQg
d29ya2VyIHNjcmlwdCBsb2FkZWQnKTsKK30sICdWZXJpZnkgYSBzYW1lLW9yaWdpbiB3b3JrZXIg
c2NyaXB0IHNlcnZlZCBieSBhIHNlcnZpY2Ugd29ya2VyIHN1Y2NlZWRzICcgKworICAgJ2luIHN0
YXJ0aW5nIGEgc2hhcmVkIHdvcmtlci4nKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewor
ICBjb25zdCB3b3JrZXJfdXJsID0gJ3Jlc291cmNlcy9kdW1teS1jb3JzLXdvcmtlci5qcz9kZWRp
Y2F0ZWQnOworICBjb25zdCBzZXJ2aWNlX3dvcmtlcl91cmwgPSAncmVzb3VyY2VzL2R1bW15LXdv
cmtlci1pbnRlcmNlcHRvci5qcyc7CisgIGNvbnN0IHNjb3BlID0gd29ya2VyX3VybDsKKworICBh
d2FpdCBzZXR1cF9zZXJ2aWNlX3dvcmtlcih0LCBzZXJ2aWNlX3dvcmtlcl91cmwsIHNjb3BlKTsK
KyAgY29uc3QgdyA9IG5ldyBXb3JrZXIod29ya2VyX3VybCk7CisgIGNvbnN0IHdhdGNoZXIgPSBu
ZXcgRXZlbnRXYXRjaGVyKHQsIHcsIFsnbWVzc2FnZScsICdlcnJvciddKTsKKyAgYXdhaXQgd2F0
Y2hlci53YWl0X2ZvcignZXJyb3InKTsKK30sICdWZXJpZnkgYSBjb3JzIHdvcmtlciBzY3JpcHQg
c2VydmVkIGJ5IGEgc2VydmljZSB3b3JrZXIgZmFpbHMgZGVkaWNhdGVkICcgKworICAgJ3dvcmtl
ciBzdGFydC4nKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25zdCB3b3JrZXJf
dXJsID0gJ3Jlc291cmNlcy9kdW1teS1jb3JzLXdvcmtlci5qcz9zaGFyZWQnOworICBjb25zdCBz
ZXJ2aWNlX3dvcmtlcl91cmwgPSAncmVzb3VyY2VzL2R1bW15LXdvcmtlci1pbnRlcmNlcHRvci5q
cyc7CisgIGNvbnN0IHNjb3BlID0gd29ya2VyX3VybDsKKworICBhd2FpdCBzZXR1cF9zZXJ2aWNl
X3dvcmtlcih0LCBzZXJ2aWNlX3dvcmtlcl91cmwsIHNjb3BlKTsKKyAgY29uc3QgdyA9IG5ldyBT
aGFyZWRXb3JrZXIod29ya2VyX3VybCk7CisgIGNvbnN0IHdhdGNoZXIgPSBuZXcgRXZlbnRXYXRj
aGVyKHQsIHcsIFsnbWVzc2FnZScsICdlcnJvciddKTsKKyAgYXdhaXQgd2F0Y2hlci53YWl0X2Zv
cignZXJyb3InKTsKK30sICdWZXJpZnkgYSBjb3JzIHdvcmtlciBzY3JpcHQgc2VydmVkIGJ5IGEg
c2VydmljZSB3b3JrZXIgZmFpbHMgc2hhcmVkICcgKworICAgJ3dvcmtlciBzdGFydC4nKTsKKwor
cHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25zdCB3b3JrZXJfdXJsID0gJ3Jlc291cmNl
cy9kdW1teS1uby1jb3JzLXdvcmtlci5qcz9kZWRpY2F0ZWQnOworICBjb25zdCBzZXJ2aWNlX3dv
cmtlcl91cmwgPSAncmVzb3VyY2VzL2R1bW15LXdvcmtlci1pbnRlcmNlcHRvci5qcyc7CisgIGNv
bnN0IHNjb3BlID0gd29ya2VyX3VybDsKKworICBhd2FpdCBzZXR1cF9zZXJ2aWNlX3dvcmtlcih0
LCBzZXJ2aWNlX3dvcmtlcl91cmwsIHNjb3BlKTsKKyAgY29uc3QgdyA9IG5ldyBXb3JrZXIod29y
a2VyX3VybCk7CisgIGNvbnN0IHdhdGNoZXIgPSBuZXcgRXZlbnRXYXRjaGVyKHQsIHcsIFsnbWVz
c2FnZScsICdlcnJvciddKTsKKyAgYXdhaXQgd2F0Y2hlci53YWl0X2ZvcignZXJyb3InKTsKK30s
ICdWZXJpZnkgYSBuby1jb3JzIGNyb3NzLW9yaWdpbiB3b3JrZXIgc2NyaXB0IHNlcnZlZCBieSBh
IHNlcnZpY2Ugd29ya2VyICcgKworICAgJ2ZhaWxzIGRlZGljYXRlZCB3b3JrZXIgc3RhcnQuJyk7
CisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgY29uc3Qgd29ya2VyX3VybCA9ICdyZXNv
dXJjZXMvZHVtbXktbm8tY29ycy13b3JrZXIuanM/c2hhcmVkJzsKKyAgY29uc3Qgc2VydmljZV93
b3JrZXJfdXJsID0gJ3Jlc291cmNlcy9kdW1teS13b3JrZXItaW50ZXJjZXB0b3IuanMnOworICBj
b25zdCBzY29wZSA9IHdvcmtlcl91cmw7CisKKyAgYXdhaXQgc2V0dXBfc2VydmljZV93b3JrZXIo
dCwgc2VydmljZV93b3JrZXJfdXJsLCBzY29wZSk7CisgIGNvbnN0IHcgPSBuZXcgU2hhcmVkV29y
a2VyKHdvcmtlcl91cmwpOworICBjb25zdCB3YXRjaGVyID0gbmV3IEV2ZW50V2F0Y2hlcih0LCB3
LCBbJ21lc3NhZ2UnLCAnZXJyb3InXSk7CisgIGF3YWl0IHdhdGNoZXIud2FpdF9mb3IoJ2Vycm9y
Jyk7Cit9LCAnVmVyaWZ5IGEgbm8tY29ycyBjcm9zcy1vcmlnaW4gd29ya2VyIHNjcmlwdCBzZXJ2
ZWQgYnkgYSBzZXJ2aWNlIHdvcmtlciAnICsKKyAgICdmYWlscyBzaGFyZWQgd29ya2VyIHN0YXJ0
LicpOworCisvLyA9PT09PT09PT09IFdvcmtlciBzdWJyZXNvdXJjZSBpbnRlcmNlcHRpb24gdGVz
dHMgPT09PT09PT09PQorCitjb25zdCBzY29wZV9mb3Jfc3VicmVzb3VyY2VfaW50ZXJjZXB0aW9u
ID0gJ3Jlc291cmNlcy9sb2FkX3dvcmtlci5qcyc7CisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+
IHsKKyAgY29uc3Qgc2VydmljZV93b3JrZXJfdXJsID0gJ3Jlc291cmNlcy93b3JrZXItbG9hZC1p
bnRlcmNlcHRvci5qcyc7CisgIGNvbnN0IHIgPSBhd2FpdCBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lz
dGVyX2FuZF9yZWdpc3RlcigKKyAgICAgIHQsIHNlcnZpY2Vfd29ya2VyX3VybCwgc2NvcGVfZm9y
X3N1YnJlc291cmNlX2ludGVyY2VwdGlvbik7CisgIGF3YWl0IHdhaXRfZm9yX3N0YXRlKHQsIHIu
aW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOworfSwgJ1JlZ2lzdGVyIGEgc2VydmljZSB3b3JrZXIg
Zm9yIHdvcmtlciBzdWJyZXNvdXJjZSBpbnRlcmNlcHRpb24gdGVzdHMuJyk7CisKKy8vIERvIG5v
dCBjYWxsIHRoaXMgZnVuY3Rpb24gbXVsdGlwbGUgdGltZXMgd2l0aG91dCB3YWl0aW5nIGZvciB0
aGUgcHJvbWlzZQorLy8gcmVzb2x1dGlvbiBiZWNhdXNlIHRoaXMgc2V0cyBuZXcgZXZlbnQgaGFu
ZGxlcnMgb24gfHdvcmtlcnwuCisvLyBUT0RPKG5oaXJva2kpOiBUbyBpc29sYXRlIG11bHRpcGxl
IGZ1bmN0aW9uIGNhbGxzLCB1c2UgTWVzc2FnZVBvcnQgaW5zdGVhZCBvZgorLy8gd29ya2VyJ3Mg
b25tZXNzYWdlIGV2ZW50IGhhbmRsZXIuCithc3luYyBmdW5jdGlvbiByZXF1ZXN0X29uX3dvcmtl
cih3b3JrZXIsIHJlc291cmNlX3R5cGUpIHsKKyAgY29uc3QgZGF0YSA9IGF3YWl0IG5ldyBQcm9t
aXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsKKyAgICBpZiAod29ya2VyIGluc3RhbmNlb2YgV29y
a2VyKSB7CisgICAgICB3b3JrZXIub25tZXNzYWdlID0gZSA9PiByZXNvbHZlKGUuZGF0YSk7Cisg
ICAgICB3b3JrZXIub25lcnJvciA9IGUgPT4gcmVqZWN0KGUpOworICAgICAgd29ya2VyLnBvc3RN
ZXNzYWdlKHJlc291cmNlX3R5cGUpOworICAgIH0gZWxzZSBpZiAod29ya2VyIGluc3RhbmNlb2Yg
U2hhcmVkV29ya2VyKSB7CisgICAgICB3b3JrZXIucG9ydC5vbm1lc3NhZ2UgPSBlID0+IHJlc29s
dmUoZS5kYXRhKTsKKyAgICAgIHdvcmtlci5vbmVycm9yID0gZSA9PiByZWplY3QoZSk7CisgICAg
ICB3b3JrZXIucG9ydC5wb3N0TWVzc2FnZShyZXNvdXJjZV90eXBlKTsKKyAgICB9IGVsc2Ugewor
ICAgICAgcmVqZWN0KCdVbmV4cGVjdGVkIHdvcmtlciB0eXBlIScpOworICAgIH0KKyAgfSk7Cisg
IGFzc2VydF9lcXVhbHMoZGF0YSwgJ1RoaXMgbG9hZCB3YXMgc3VjY2Vzc2Z1bGx5IGludGVyY2Vw
dGVkLicpOworfQorCithc3luYyBmdW5jdGlvbiBzdWJyZXNvdXJjZV90ZXN0KHdvcmtlcikgewor
ICBhd2FpdCByZXF1ZXN0X29uX3dvcmtlcih3b3JrZXIsICd4aHInKTsKKyAgYXdhaXQgcmVxdWVz
dF9vbl93b3JrZXIod29ya2VyLCAnZmV0Y2gnKTsKKyAgYXdhaXQgcmVxdWVzdF9vbl93b3JrZXIo
d29ya2VyLCAnaW1wb3J0U2NyaXB0cycpOworfQorCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7
CisgIGF3YWl0IHN1YnJlc291cmNlX3Rlc3QobmV3IFdvcmtlcigncmVzb3VyY2VzL2xvYWRfd29y
a2VyLmpzJykpOworfSwgJ1JlcXVlc3RzIG9uIGEgZGVkaWNhdGVkIHdvcmtlciBjb250cm9sbGVk
IGJ5IGEgc2VydmljZSB3b3JrZXIuJyk7CisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAg
YXdhaXQgc3VicmVzb3VyY2VfdGVzdChuZXcgU2hhcmVkV29ya2VyKCdyZXNvdXJjZXMvbG9hZF93
b3JrZXIuanMnKSk7Cit9LCAnUmVxdWVzdHMgb24gYSBzaGFyZWQgd29ya2VyIGNvbnRyb2xsZWQg
YnkgYSBzZXJ2aWNlIHdvcmtlci4nKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBh
d2FpdCBzdWJyZXNvdXJjZV90ZXN0KG5ldyBXb3JrZXIoJ3Jlc291cmNlcy9uZXN0ZWRfbG9hZF93
b3JrZXIuanMnKSk7Cit9LCAnUmVxdWVzdHMgb24gYSBkZWRpY2F0ZWQgd29ya2VyIG5lc3RlZCBp
biBhIGRlZGljYXRlZCB3b3JrZXIgYW5kICcgKworICAgICAgICdjb250cm9sbGVkIGJ5IGEgc2Vy
dmljZSB3b3JrZXInKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBhd2FpdCBzdWJy
ZXNvdXJjZV90ZXN0KG5ldyBTaGFyZWRXb3JrZXIoJ3Jlc291cmNlcy9uZXN0ZWRfbG9hZF93b3Jr
ZXIuanMnKSk7Cit9LCAnUmVxdWVzdHMgb24gYSBkZWRpY2F0ZWQgd29ya2VyIG5lc3RlZCBpbiBh
IHNoYXJlZCB3b3JrZXIgYW5kIGNvbnRyb2xsZWQgJyArCisgICAgICAgJ2J5IGEgc2VydmljZSB3
b3JrZXInKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBhd2FpdCBzZXJ2aWNlX3dv
cmtlcl91bnJlZ2lzdGVyKHQsIHNjb3BlX2Zvcl9zdWJyZXNvdXJjZV9pbnRlcmNlcHRpb24pOwor
fSwgJ1VucmVnaXN0ZXIgYSBzZXJ2aWNlIHdvcmtlciBmb3Igc3VicmVzb3VyY2UgaW50ZXJjZXB0
aW9uIHRlc3RzLicpOwogCiA8L3NjcmlwdD4KIDwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3N0dWIt
My4xLXNlcnZpY2Utd29ya2VyLW9iai1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zdHViLTMuMS1zZXJ2aWNl
LXdvcmtlci1vYmotZXhwZWN0ZWQudHh0CmluZGV4IDc5MWIxYTFmZjcyZGI1NjhiMjYyNTlkNWMw
MDlmYjM2NGE3N2FkYzEuLmVkNjlkMWMxZGY5NDAzNTVmZDlhNmRmZmZiODU2YTc1YTU1NTAwZmEg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3N0dWItMy4xLXNlcnZpY2Utd29ya2VyLW9iai1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc3R1Yi0zLjEtc2VydmljZS13b3JrZXItb2JqLWV4cGVjdGVkLnR4dApAQCAtMSw0
ICsxLDQgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA4Njc6IEludmFsaWQgb2JqZWN0IG1lbWJl
ciBuYW1lIFNlcnZpY2VXb3JrZXJTdGF0ZQorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDg3MTogSW52
YWxpZCBvYmplY3QgbWVtYmVyIG5hbWUgU2VydmljZVdvcmtlclN0YXRlCiAKIEhhcm5lc3MgRXJy
b3IgKEZBSUwpLCBtZXNzYWdlID0gSW52YWxpZCBvYmplY3QgbWVtYmVyIG5hbWUgU2VydmljZVdv
cmtlclN0YXRlCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhw
ZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMKaW5k
ZXggNzMwMGQ5ZjkyYTI4MzdhMjA1MTk5MzRiZjAzNWFkMjlkMjc2MDY2Mi4uM2MwZjUwYWM4MzBh
NjYxNDlmOWMzN2QwNzU1NjBkNDRlYzFkMTRhMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9z
L1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTMyMDMsMTAgKzMyMDMsNiBAQCB3ZWJraXQub3JnL2IvMTkw
NzY0IGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctZG90cy1wb3NpdGlvbi0zLmh0bWwgWyBTa2lw
IF0KIAogd2Via2l0Lm9yZy9iLzE5MjI3OSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZWdpc3Rlci1jbG9zZWQtd2luZG93Lmh0
dHBzLmh0bWwgWyBQYXNzIEZhaWx1cmUgXQogCi13ZWJraXQub3JnL2IvMTkyMjUwIGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Vw
ZGF0ZS1taXNzaW5nLWltcG9ydC1zY3JpcHRzLmh0dHBzLmh0bWwgWyBQYXNzIEZhaWx1cmUgXQot
Ci13ZWJraXQub3JnL2IvMTkyMzk4IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0ZS1yZWdpc3RyYXRpb24td2l0aC10eXBl
Lmh0dHBzLmh0bWwgWyBQYXNzIEZhaWx1cmUgXQotCiB3ZWJraXQub3JnL2IvMTkxNzA0IGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L3dpbmRvd2NsaWVudC1uYXZpZ2F0ZS5odHRwcy5odG1sIFsgUGFzcyBGYWlsdXJlIF0KIAogd2Vi
a2l0Lm9yZy9iLzE5Mzk1NSBjb21wb3NpdGluZy9pZnJhbWVzL3JlbW92ZS1yZWluc2VydC13ZWJ2
aWV3LXdpdGgtaWZyYW1lLmh0bWwgWyBTa2lwIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Rl
c3RzLW9wdGlvbnMuanNvbiBiL0xheW91dFRlc3RzL3Rlc3RzLW9wdGlvbnMuanNvbgppbmRleCAx
ODI0Y2RjZDFjNDY0ZjhhZjc0ZWU3NTg2YjczMTYzZmNhNjMyYmMyLi5jYzIwMzRlODUxYmY4Zjgw
NTM3MzkxYjgyNTMwZDE2OGM1NDIyZDE3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy90ZXN0cy1v
cHRpb25zLmpzb24KKysrIGIvTGF5b3V0VGVzdHMvdGVzdHMtb3B0aW9ucy5qc29uCkBAIC0xLDQg
KzEsNyBAQAogeworICAgICJodHRwL3Rlc3RzL3BheW1lbnRyZXF1ZXN0L3BheW1lbnQtcmVzcG9u
c2UtcmVmZXJlbmNlLWN5Y2xlLWxlYWsuaHR0cHMuaHRtbCI6IFsKKyAgICAgICAgInNsb3ciCisg
ICAgXSwKICAgICAiaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9vbi1uZXR3b3JrLXRpbWVvdXQt
ZXJyb3ItZHVyaW5nLXByZWZsaWdodC5odG1sIjogWwogICAgICAgICAic2xvdyIKICAgICBdLApA
QCAtMTcyNCw2ICsxNzI3LDkgQEAKICAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtZXZlbnQtcmVzcG9uZC13aXRo
LWJvZHktbG9hZGVkLWluLWNodW5rLmh0dHBzLmh0bWwiOiBbCiAgICAgICAgICJzbG93IgogICAg
IF0sCisgICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL2ZldGNoLWV2ZW50LXdpdGhpbi1zdy5odHRwcy5odG1sIjogWworICAg
ICAgICAic2xvdyIKKyAgICBdLAogICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1ldmVudC5odHRwcy5odG1sIjog
WwogICAgICAgICAic2xvdyIKICAgICBdLApAQCAtMTc3OCw2ICsxNzg0LDEyIEBACiAgICAgImlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3VwZGF0ZS1ieXRlY2hlY2suaHR0cHMuaHRtbCI6IFsKICAgICAgICAgInNsb3ciCiAgICAg
XSwKKyAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvdXBkYXRlLmh0dHBzLmh0bWwiOiBbCisgICAgICAgICJzbG93IgorICAg
IF0sCisgICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL3dvcmtlci1pbnRlcmNlcHRpb24uaHR0cHMuaHRtbCI6IFsKKyAgICAg
ICAgInNsb3ciCisgICAgXSwKICAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvUlRDRFRNRlNlbmRlci1vbnRvbmVjaGFuZ2UtbG9uZy5odG1sIjogWwogICAgICAgICAi
c2xvdyIKICAgICBdLApAQCAtMTkwMCw4ICsxOTEyLDUgQEAKICAgICBdLAogICAgICJpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3hoci94bWxodHRwcmVxdWVzdC10aW1lb3V0LXdvcmtl
ci10d2ljZS5odG1sIjogWwogICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJodHRwL3Rlc3Rz
L3BheW1lbnRyZXF1ZXN0L3BheW1lbnQtcmVzcG9uc2UtcmVmZXJlbmNlLWN5Y2xlLWxlYWsuaHR0
cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCiAgICAgXQogfQpcIE5vIG5ld2xpbmUgYXQgZW5k
IG9mIGZpbGUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>378387</attachid>
            <date>2019-09-09 11:12:51 -0700</date>
            <delta_ts>2019-09-09 12:23:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201589-20190909111234.patch</filename>
            <type>text/plain</type>
            <size>684529</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5NjI5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggY2U3MTRhOWFmMmU0NDczZjc2NzM5
MzY2N2ZiYTEwNDFjMzYxNmNkOC4uOTlhMjA0ZWIwMzFlYzRhMTRjZDljYTdhNmE0ZTA2YTY4NWFk
MGM0NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDE5LTA5LTA4ICBDaHJpcyBEdW1leiAgPGNk
dW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUmVzeW5jIHNlcnZpY2Ugd29ya2VycyBXUFQgdGVz
dHMgZnJvbSB1cHN0cmVhbQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjAxNTg5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWW91ZW5uIEZhYmxldC4KKwor
ICAgICAgICAqIFRlc3RFeHBlY3RhdGlvbnM6CisKIDIwMTktMDktMDcgIENocmlzIER1bWV6ICA8
Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgc3VwcG9ydCBmb3IgcG9zdE1lc3NhZ2Ug
YnVmZmVyaW5nIGJldHdlZW4gdGhlIHNlcnZpY2Ugd29ya2VyIGFuZCB3aW5kb3cKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IGNiNDYzNTViZjRkMTRmN2NkYTIzMTc0ZWUxYjMwNWU5
MGY4Nzg5M2UuLjJlNzIxZjc1ZWQzY2MxYjY1MjJmN2Y0YmE2MmQ0NmE4NjAxNjljZTcgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1NSBAQAorMjAxOS0wOS0wOCAg
Q2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFJlc3luYyBzZXJ2aWNl
IHdvcmtlcnMgV1BUIHRlc3RzIGZyb20gdXBzdHJlYW0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMTU4OQorCisgICAgICAgIFJldmlld2VkIGJ5IFlv
dWVubiBGYWJsZXQuCisKKyAgICAgICAgUmVzeW5jIHNlcnZpY2Ugd29ya2VycyBXUFQgdGVzdHMg
ZnJvbSB1cHN0cmVhbSA4MjBmMGY4NjA0N2U2ZTI2NDAxZS4KKworICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvU2VydmljZS1Xb3JrZXIt
QWxsb3dlZC1oZWFkZXIuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvU2VydmljZS1Xb3JrZXItQWxs
b3dlZC1oZWFkZXIuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS9wb3N0
bWVzc2FnZS5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlL3VucmVnaXN0
ZXIuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS91cGRhdGUuaHR0cHMu
aHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL2Fib3V0LWJsYW5rLXJlcGxhY2VtZW50Lmh0dHBzLmh0bWw6CisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9hY3RpdmF0
ZS1ldmVudC1hZnRlci1pbnN0YWxsLXN0YXRlLWNoYW5nZS5odHRwcy5odG1sOgorICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvYWN0aXZh
dGlvbi1hZnRlci1yZWdpc3RyYXRpb24uaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2FjdGl2YXRpb24uaHR0cHMt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvYWN0aXZhdGlvbi5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvYXBwY2FjaGUtb3Jk
ZXJpbmctbWFpbi5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xhaW0tZmV0Y2gtd2l0aC1hcHBjYWNoZS5odHRw
cy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGFpbS1mZXRjaC13aXRoLWFwcGNhY2hlLmh0
dHBzLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGFpbS1mZXRjaC5odHRwcy5odG1sOgorICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xhaW0t
bm90LXVzaW5nLXJlZ2lzdHJhdGlvbi5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xhaW0tc2hhcmVkLXdvcmtl
ci1mZXRjaC5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xhaW0tdXNpbmctcmVnaXN0cmF0aW9uLmh0dHBzLmh0
bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9jbGFpbS13b3JrZXItZmV0Y2guaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xhaW0t
d29ya2VyLWZldGNoLmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGllbnQtaWQuaHR0cHMuaHRtbDoKKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2Ns
aWVudHMtZ2V0LWNsaWVudC10eXBlcy5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xpZW50cy1nZXQtcmVzdWx0
aW5nQ2xpZW50SWQuaHR0cHMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xpZW50cy1nZXQt
cmVzdWx0aW5nQ2xpZW50SWQuaHR0cHMuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsaWVudHMtZ2V0Lmh0
dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsaWVudHMtZ2V0Lmh0dHBzLmh0bWw6CisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGllbnRz
LW1hdGNoYWxsLWNsaWVudC10eXBlcy5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xpZW50cy1tYXRjaGFsbC1l
eGFjdC1jb250cm9sbGVyLmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsaWVudHMtbWF0Y2hhbGwt
ZXhhY3QtY29udHJvbGxlci5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xpZW50cy1tYXRjaGFsbC1pbmNsdWRl
LXVuY29udHJvbGxlZC5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xpZW50cy1tYXRjaGFsbC1vcmRlci5odHRw
cy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvY2xpZW50cy1tYXRjaGFsbC5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY29udHJvbGxlci1v
bi1kaXNjb25uZWN0Lmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jb250cm9sbGVyLW9uLWxvYWQuaHR0cHMuaHRt
bDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL2NvbnRyb2xsZXItb24tcmVsb2FkLmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9kYXRhLXRyYW5zZmVy
LWZpbGVzLmh0dHBzLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2RhdGEtdHJhbnNmZXItZmls
ZXMuaHR0cHMuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2RldGFjaGVkLWNvbnRleHQuaHR0cHMtZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvZGV0YWNoZWQtY29udGV4dC5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZXh0ZW5kYWJsZS1l
dmVudC1hc3luYy13YWl0dW50aWwuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZXh0ZW5kYWJsZS1l
dmVudC1hc3luYy13YWl0dW50aWwuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2V4dGVuZGFibGUtZXZlbnQtd2Fp
dHVudGlsLmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1hdWRpby10YWludGluZy5odHRwcy1leHBlY3Rl
ZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1hdWRpby10YWludGluZy5odHRwcy5odG1sOiBSZW1v
dmVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvZmV0Y2gtY2FudmFzLXRhaW50aW5nLWRvdWJsZS13cml0ZS5odHRwcy1leHBlY3Rl
ZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1jYW52YXMtdGFpbnRpbmctZG91YmxlLXdyaXRlLmh0
dHBzLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1jYW52YXMtdGFpbnRpbmctdmlkZW8tY2FjaGUu
aHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL2ZldGNoLWNhbnZhcy10YWludGluZy12aWRlby5odHRwcy5odG1sOgor
ICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvZmV0Y2gtY29ycy14aHIuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtY29ycy14aHIu
aHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL2ZldGNoLWNzcC5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtZXZlbnQtYWZ0
ZXItbmF2aWdhdGlvbi13aXRoaW4tcGFnZS5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtZXZlbnQtYXN5
bmMtcmVzcG9uZC13aXRoLmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWV2ZW50LWFzeW5j
LXJlc3BvbmQtd2l0aC5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtZXZlbnQtbmV0d29yay1lcnJvci5o
dHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvZmV0Y2gtZXZlbnQtcmVmZXJyZXItcG9saWN5Lmh0dHBzLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL2ZldGNoLWV2ZW50LXJlZmVycmVyLXBvbGljeS5odHRwcy5odG1sOgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0
Y2gtZXZlbnQtcmVzcG9uZC13aXRoLWFyZ3VtZW50Lmh0dHBzLmh0bWw6CisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1ldmVu
dC1yZXNwb25kLXdpdGgtYm9keS1sb2FkZWQtaW4tY2h1bmsuaHR0cHMuaHRtbDoKKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNo
LWV2ZW50LXJlc3BvbmQtd2l0aC1zdG9wcy1wcm9wYWdhdGlvbi5odHRwcy5odG1sOgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0
Y2gtZXZlbnQtdGhyb3dzLWFmdGVyLXJlc3BvbmQtd2l0aC5odHRwcy5odG1sOgorICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gt
ZXZlbnQuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtZXZlbnQuaHR0cHMuaHRtbDoKKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L2ZldGNoLWZyYW1lLXJlc291cmNlLmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1oZWFkZXItdmlzaWJp
bGl0eS5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtcmVxdWVzdC1jc3MtYmFzZS11cmwuaHR0cHMtZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvZmV0Y2gtcmVxdWVzdC1jc3MtYmFzZS11cmwuaHR0cHMuaHRtbDoKKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L2ZldGNoLXJlcXVlc3QtY3NzLWltYWdlcy5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtcmVxdWVzdC1o
dG1sLWltcG9ydHMuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtcmVxdWVzdC1odG1sLWlt
cG9ydHMuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLXJlcXVlc3Qtbm8tZnJlc2huZXNzLWhlYWRlcnMu
aHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL2ZldGNoLXJlcXVlc3QtcmVkaXJlY3QuaHR0cHMuaHRtbDoKKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2Zl
dGNoLXJlcXVlc3QteGhyLXN5bmMuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLXJlc3BvbnNlLXhoci5o
dHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvZmV0Y2gtd2FpdHMtZm9yLWFjdGl2YXRlLmh0dHBzLmh0bWw6CisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9n
ZXRyZWdpc3RyYXRpb24uaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZ2V0cmVnaXN0cmF0aW9uLmh0
dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9pbXBvcnQtbW9kdWxlLXNjcmlwdHMuaHR0cHMtZXhwZWN0ZWQudHh0OiBS
ZW1vdmVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvaW1wb3J0LW1vZHVsZS1zY3JpcHRzLmh0dHBzLmh0bWw6IFJlbW92ZWQuCisg
ICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9pbXBvcnQtc2NyaXB0cy1taW1lLXR5cGVzLmh0dHBzLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4K
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL2ltcG9ydC1zY3JpcHRzLW1pbWUtdHlwZXMuaHR0cHMuaHRtbDogUmVtb3ZlZC4KKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2lt
cG9ydC1zY3JpcHRzLXJlc291cmNlLW1hcC5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9pbXBvcnQt
c2NyaXB0cy1yZXNvdXJjZS1tYXAuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ludGVyZmFjZXMtd2luZG93Lmh0
dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9pbnZhbGlkLWJsb2J0eXBlLmh0dHBzLmh0bWw6CisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9pbnZhbGlkLWhl
YWRlci5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvaXNvLWxhdGluMS1oZWFkZXIuaHR0cHMuaHRtbDoKKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL211
bHRpcGxlLXVwZGF0ZS5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvbmF2aWdhdGlvbi1yZWRpcmVjdC5odHRwcy5o
dG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvb25hY3RpdmF0ZS1zY3JpcHQtZXJyb3IuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3BlcmZvcm1h
bmNlLXRpbWVsaW5lLmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9wb3N0bWVzc2FnZS1mcm9tLXdhaXRpbmctc2Vy
dmljZXdvcmtlci5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcG9zdG1lc3NhZ2UtdG8tY2xpZW50LW1lc3NhZ2Ut
cXVldWUuaHR0cHMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcG9zdG1lc3NhZ2UtdG8tY2xp
ZW50LW1lc3NhZ2UtcXVldWUuaHR0cHMuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Bvc3RtZXNzYWdlLXRv
LWNsaWVudC5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvcG9zdG1lc3NhZ2UuaHR0cHMtZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvcG9zdG1lc3NhZ2UuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlYWR5Lmh0dHBzLmh0bWw6CisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZWRp
cmVjdGVkLXJlc3BvbnNlLmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlZGlyZWN0ZWQtcmVzcG9u
c2UuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL3JlZmVyZXIuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlZ2lzdGVyLWRlZmF1
bHQtc2NvcGUuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlZ2lzdGVyLXdhaXQtZm9yZXZlci1pbi1pbnN0YWxs
LXdvcmtlci5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVnaXN0cmF0aW9uLWVuZC10by1lbmQuaHR0cHMuaHRt
bDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL3JlZ2lzdHJhdGlvbi1ldmVudHMuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlZ2lzdHJhdGlvbi1t
aW1lLXR5cGVzLmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlZ2lzdHJhdGlvbi1taW1lLXR5cGVz
Lmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci9yZWdpc3RyYXRpb24tc2NoZWR1bGUtam9iLmh0dHBzLWV4cGVjdGVk
LnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL3JlZ2lzdHJhdGlvbi1zY2hlZHVsZS1qb2IuaHR0cHMuaHRtbDog
UmVtb3ZlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL3JlZ2lzdHJhdGlvbi1zY29wZS5odHRwcy1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9y
ZWdpc3RyYXRpb24tc2VjdXJpdHktZXJyb3IuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVnaXN0
cmF0aW9uLXNlcnZpY2Utd29ya2VyLWF0dHJpYnV0ZXMuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlZ2lzdHJh
dGlvbi11cGRhdGV2aWFjYWNoZS5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZWdpc3RyYXRpb24t
dXBkYXRldmlhY2FjaGUuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlLXRpbWluZy5odHRwcy5odG1s
OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2UtdGltaW5nLnN1Yi5odHRw
cy5odG1sLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvcmVzb3VyY2UtdGltaW5nLnN1Yi5odHRwcy1leHBlY3RlZC50eHQ6IFJlbW92
ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9yZXNvdXJjZXMvYWJvdXQtYmxhbmstcmVwbGFjZW1lbnQtcGluZy1mcmFtZS5weToK
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3Jlc291cmNlcy9hcHBjYWNoZS1vcmRlcmluZy5tYW5pZmVzdDoKKyAgICAgICAgKiB3ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9j
bGFpbS13b3JrZXIuanM6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvY2xhc3NpYy13b3JrZXIuanM6IFJlbW92ZWQu
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9yZXNvdXJjZXMvY2xpZW50cy1nZXQtY3Jvc3Mtb3JpZ2luLWZyYW1lLmh0bWw6CisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9y
ZXNvdXJjZXMvY2xpZW50cy1nZXQtcmVzdWx0aW5nQ2xpZW50SWQtd29ya2VyLmpzOiBSZW1vdmVk
LgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvcmVzb3VyY2VzL2NsaWVudHMtZ2V0LXdvcmtlci5qczoKKyAgICAgICAgKHNlbGYub25t
ZXNzYWdlKToKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL3Jlc291cmNlcy9lbmFibGUtY2xpZW50LW1lc3NhZ2UtcXVldWUuaHRtbDog
UmVtb3ZlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL3Jlc291cmNlcy9leHRlbmRhYmxlLWV2ZW50LWFzeW5jLXdhaXR1bnRpbC5q
czoKKyAgICAgICAgKHN3aXRjaCk6CisgICAgICAgIChldmVudC5yZXF1ZXN0LnVybC5pbmRleE9m
KToKKyAgICAgICAgKGVsc2UuZXZlbnQucmVxdWVzdC51cmwuaW5kZXhPZik6CisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJj
ZXMvZmV0Y2gtY2FudmFzLXRhaW50aW5nLWRvdWJsZS13cml0ZS13b3JrZXIuanM6IFJlbW92ZWQu
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9yZXNvdXJjZXMvZmV0Y2gtY29ycy14aHItaWZyYW1lLmh0bWw6CisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMv
ZmV0Y2gtZXZlbnQtYXN5bmMtcmVzcG9uZC13aXRoLXdvcmtlci5qczoKKyAgICAgICAgKHNldFRp
bWVvdXQpOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWV2ZW50LW5ldHdvcmstZmFsbGJhY2std29ya2Vy
LmpzOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWV2ZW50LXRlc3Qtd29ya2VyLmpzOgorICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3Vy
Y2VzL2ZldGNoLXJlcXVlc3QtY3NzLWJhc2UtdXJsLWlmcmFtZS5odG1sOgorICAgICAgICAqIHdl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2Vz
L2ZldGNoLXJlcXVlc3QtY3NzLWJhc2UtdXJsLXdvcmtlci5qczoKKyAgICAgICAgKHNlbGYub25t
ZXNzYWdlKToKKyAgICAgICAgKHVybC5pbmRleE9mKToKKyAgICAgICAgKGVsc2UudXJsLmluZGV4
T2YpOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvcmVzb3VyY2VzL2dldC1yZXN1bHRpbmdDbGllbnRJZC13b3JrZXIuanM6IFJlbW92
ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9yZXNvdXJjZXMvaW1wb3J0LXJlbGF0aXZlLnhzbDogUmVtb3ZlZC4KKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291
cmNlcy9pbXBvcnQtc2NyaXB0cy1kaWZmLXJlc291cmNlLW1hcC13b3JrZXIuanM6IFJlbW92ZWQu
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9yZXNvdXJjZXMvaW1wb3J0LXNjcmlwdHMtZ2V0LnB5OiBSZW1vdmVkLgorICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3Vy
Y2VzL2ltcG9ydC1zY3JpcHRzLW1pbWUtdHlwZXMtd29ya2VyLmpzOiBSZW1vdmVkLgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVz
b3VyY2VzL2ltcG9ydGVkLWNsYXNzaWMtc2NyaXB0LmpzOiBSZW1vdmVkLgorICAgICAgICAqIHdl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2Vz
L2ltcG9ydGVkLW1vZHVsZS1zY3JpcHQuanM6IFJlbW92ZWQuCisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvbWVzc2Fn
ZS12cy1taWNyb3Rhc2suaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9tb2R1bGUtd29ya2Vy
LmpzOiBSZW1vdmVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL25hdmlnYXRpb24tcmVkaXJlY3Qtb3RoZXItb3Jp
Z2luLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvbmF2aWdhdGlvbi1yZWRpcmVjdC1vdXQtc2NvcGUucHk6
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9yZXNvdXJjZXMvbmF2aWdhdGlvbi1yZWRpcmVjdC1zY29wZTEucHk6CisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJj
ZXMvbmF2aWdhdGlvbi1yZWRpcmVjdC1zY29wZTIucHk6CisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvbmVzdGVkLWlm
cmFtZS1wYXJlbnQuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9wZXJmb3JtYW5jZS10aW1l
bGluZS13b3JrZXIuanM6CisgICAgICAgIChwcm9taXNlX3Rlc3QuKToKKyAgICAgICAgKHByb21p
c2VfdGVzdCk6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvcG9zdG1lc3NhZ2UtZWNoby13b3JrZXIuanM6IFJlbW92
ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9yZXNvdXJjZXMvcmVkaXJlY3Qtd29ya2VyLmpzOgorICAgICAgICAoZXZlbnQud2Fp
dFVudGlsLlByb21pc2UuYWxsLndhaXRVbnRpbFByb21pc2VMaXN0LnRoZW4pOgorICAgICAgICAo
dGhlbik6CisgICAgICAgICh3YWl0VW50aWxQcm9taXNlLmNhY2hlcy5vcGVuLmNhY2hlTmFtZS50
aGVuKToKKyAgICAgICAgKGV2ZW50LnJlc3BvbmRXaXRoLndhaXRVbnRpbFByb21pc2UudGhlbik6
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9yZXNvdXJjZXMvcmVnaXN0cmF0aW9uLXRlc3RzLW1pbWUtdHlwZXMuanM6CisgICAgICAg
IChyZWdpc3RyYXRpb25fdGVzdHNfbWltZV90eXBlcyk6CisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvcmVnaXN0cmF0
aW9uLXRlc3RzLXNjb3BlLmpzOgorICAgICAgICAocmVnaXN0cmF0aW9uX3Rlc3RzX3Njb3BlKToK
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3Jlc291cmNlcy9yZWdpc3RyYXRpb24tdGVzdHMtc2VjdXJpdHktZXJyb3IuanM6CisgICAg
ICAgIChyZWdpc3RyYXRpb25fdGVzdHNfc2VjdXJpdHlfZXJyb3IpOgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3Jl
c291cmNlLXRpbWluZy1pZnJhbWUuc3ViLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvc2VydmljZS13b3Jr
ZXItY3NwLXdvcmtlci5weToKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9zZXJ2aWNlLXdvcmtlci1oZWFkZXIucHk6
CisgICAgICAgIChtYWluKToKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9za2lwLXdhaXRpbmctaW5zdGFsbGVkLXdv
cmtlci5qczoKKyAgICAgICAgKGV2ZW50LndhaXRVbnRpbC5zZWxmLnNraXBXYWl0aW5nLnRoZW4p
OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvcmVzb3VyY2VzL3N0YWxsaW5nLXNlcnZpY2Utd29ya2VyLmpzOiBSZW1vdmVkLgorICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
cmVzb3VyY2VzL3Rlc3QtaGVscGVycy5zdWIuanM6CisgICAgICAgICh3YWl0X2Zvcl91cGRhdGUp
OgorICAgICAgICAoYXN5bmMud2FpdF9mb3JfYWN0aXZhdGlvbl9vbl9kdW1teV9zY29wZSk6Cisg
ICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9yZXNvdXJjZXMvdGVzdC1yZXF1ZXN0LWhlYWRlcnMtd29ya2VyLmpzOiBSZW1vdmVkLgorICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
cmVzb3VyY2VzL3Rlc3QtcmVxdWVzdC1oZWFkZXJzLXdvcmtlci5weTogUmVtb3ZlZC4KKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jl
c291cmNlcy90cmlja2xlLnB5OiBSZW1vdmVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3VwZGF0ZS1kdXJpbmct
aW5zdGFsbGF0aW9uLXdvcmtlci5qczogUmVtb3ZlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy91cGRhdGUtZHVy
aW5nLWluc3RhbGxhdGlvbi13b3JrZXIucHk6IFJlbW92ZWQuCisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvdXBkYXRl
LWZldGNoLXdvcmtlci5weTogUmVtb3ZlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy91cGRhdGUtbWlzc2luZy1p
bXBvcnQtc2NyaXB0cy1pbXBvcnRlZC13b3JrZXIucHk6IFJlbW92ZWQuCisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMv
dXBkYXRlLW1pc3NpbmctaW1wb3J0LXNjcmlwdHMtbWFpbi13b3JrZXIucHk6IFJlbW92ZWQuCisg
ICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9yZXNvdXJjZXMvdXBkYXRlLXJlZ2lzdHJhdGlvbi13aXRoLXR5cGUucHk6IFJlbW92ZWQuCisg
ICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9yZXNvdXJjZXMvdzNjLWltcG9ydC5sb2c6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvd29ya2VyLWludGVyY2Vw
dGlvbi1pZnJhbWUuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy93b3JrZXItbG9hZC1pbnRlcmNl
cHRvci5qczoKKyAgICAgICAgKHNlbGYub25mZXRjaCk6CisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvd29ya2VyLXRl
c3RoYXJuZXNzLmpzOgorICAgICAgICAoY3JlYXRlX3RlbXBvcmFyeV9jYWNoZSk6CisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNv
dXJjZXMveGhyLWlmcmFtZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3hoci1yZXNwb25z
ZS11cmwtd29ya2VyLmpzOiBSZW1vdmVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3hzbC1iYXNlLXVybC1pZnJh
bWUueG1sOiBSZW1vdmVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3hzbC1iYXNlLXVybC13b3JrZXIuanM6IFJl
bW92ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9yZXNvdXJjZXMveHNsdC1wYXNzLnhzbDogUmVtb3ZlZC4KKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3NlcnZpY2Ut
d29ya2VyLWNzcC1jb25uZWN0Lmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3NlcnZpY2Utd29ya2Vy
LWNzcC1kZWZhdWx0Lmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3NlcnZpY2Utd29ya2VyLWNzcC1z
Y3JpcHQuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvc2VydmljZS13b3JrZXItaGVhZGVyLmh0dHBz
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL3NlcnZpY2Utd29ya2VyLWhlYWRlci5odHRwcy5odG1sOgorICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
c2VydmljZXdvcmtlci1tZXNzYWdlLWV2ZW50LWhpc3RvcmljYWwuaHR0cHMuaHRtbDoKKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3No
YXJlZC13b3JrZXItY29udHJvbGxlZC5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvc2tpcC13YWl0aW5nLWluc3Rh
bGxlZC5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9za2lwLXdhaXRpbmctaW5zdGFsbGVkLmh0dHBz
Lmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9za2lwLXdhaXRpbmctdXNpbmctcmVnaXN0cmF0aW9uLmh0dHBzLmh0bWw6Cisg
ICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9za2lwLXdhaXRpbmctd2l0aG91dC11c2luZy1yZWdpc3RyYXRpb24uaHR0cHMuaHRtbDoKKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L3NraXAtd2FpdGluZy5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvc3RhdGUuaHR0cHMuaHRtbDoKKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3N5bmNl
ZC1zdGF0ZS5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvdW5jb250cm9sbGVkLXBhZ2UuaHR0cHMuaHRtbDoKKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L3VucmVnaXN0ZXItdGhlbi1yZWdpc3Rlci1uZXctc2NyaXB0Lmh0dHBzLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3VucmVnaXN0ZXItdGhlbi1yZWdpc3Rlci1uZXctc2NyaXB0Lmh0dHBzLmh0bWw6CisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91
bnJlZ2lzdGVyLXRoZW4tcmVnaXN0ZXIuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdW5yZWdpc3Rl
ci10aGVuLXJlZ2lzdGVyLmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUtYWZ0ZXItbmF2aWdhdGlvbi1y
ZWRpcmVjdC5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLWFmdGVyLW9uZWRheS5odHRwcy5odG1sOgor
ICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvdXBkYXRlLWJ5dGVjaGVjay5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLW1pc3NpbmctaW1wb3J0
LXNjcmlwdHMuaHR0cHMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLW1pc3Npbmct
aW1wb3J0LXNjcmlwdHMuaHR0cHMuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0ZS1uby1jYWNoZS1y
ZXF1ZXN0LWhlYWRlcnMuaHR0cHMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIHdl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLW5v
LWNhY2hlLXJlcXVlc3QtaGVhZGVycy5odHRwcy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIHdl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLW5v
dC1hbGxvd2VkLmh0dHBzLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0ZS1ub3QtYWxs
b3dlZC5odHRwcy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLW9uLW5hdmlnYXRpb24uaHR0cHMt
ZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLW9uLW5hdmlnYXRpb24uaHR0cHMuaHRt
bDogUmVtb3ZlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL3VwZGF0ZS1yZWNvdmVyeS5odHRwcy5odG1sOgorICAgICAgICAqIHdl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLXJl
Z2lzdHJhdGlvbi13aXRoLXR5cGUuaHR0cHMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBk
YXRlLXJlZ2lzdHJhdGlvbi13aXRoLXR5cGUuaHR0cHMuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3czYy1p
bXBvcnQubG9nOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvd2Vic29ja2V0Lmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3dlYnNvY2tl
dC5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvd2luZG93Y2xpZW50LW5hdmlnYXRlLmh0dHBzLmh0bWw6CisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci93
b3JrZXItY2xpZW50LWlkLmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3dvcmtlci1pbnRlcmNlcHRp
b24uaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvd29ya2VyLWludGVyY2VwdGlvbi5odHRwcy5odG1s
OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIveGhyLXJlc3BvbnNlLXVybC5odHRwcy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci94
aHItcmVzcG9uc2UtdXJsLmh0dHBzLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci94c2wtYmFzZS11cmwuaHR0
cHMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIveHNsLWJhc2UtdXJsLmh0dHBzLmh0bWw6IFJl
bW92ZWQuCisKIDIwMTktMDktMDcgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAog
ICAgICAgICBBZGQgc3VwcG9ydCBmb3IgcG9zdE1lc3NhZ2UgYnVmZmVyaW5nIGJldHdlZW4gdGhl
IHNlcnZpY2Ugd29ya2VyIGFuZCB3aW5kb3cKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL1Rlc3RF
eHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDlmMTQzNGMw
YjAxM2ZiZjNjZDY2MzdkMzg3OTUzNTY5NTg2MjQwNjQuLmY5NmMyNTM1YTI3NzFhZWRhOTU5NGUw
Y2M2NmNjOTU4NmI1N2FhNTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlv
bnMKKysrIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMjExLDE2ICsyMTEsMTcg
QEAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvZmV0Y2gtbWl4ZWQtY29udGUKIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL211bHRpcGFydC1pbWFnZS5odHRwcy5o
dG1sIFsgU2tpcCBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9za2lwLXdhaXRpbmctdXNpbmctcmVnaXN0cmF0aW9uLmh0dHBz
Lmh0bWwgWyBTa2lwIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3NraXAtd2FpdGluZy13aXRob3V0LXVzaW5nLXJlZ2lzdHJh
dGlvbi5odHRwcy5odG1sIFsgU2tpcCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUtbm90LWFsbG93ZWQuaHR0cHMu
aHRtbCBbIFNraXAgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvd29ya2VyLWluLXNhbmRib3hlZC1pZnJhbWUtYnktY3NwLWZl
dGNoLWV2ZW50Lmh0dHBzLmh0bWwgWyBTa2lwIF0KIFsgRGVidWcgXSBpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZWFkeS5odHRw
cy5odG1sIFsgU2tpcCBdCiAKICMgTmV3bHkgaW1wb3J0ZWQgc2VydmljZSB3b3JrZXIgdGVzdHMg
dGhhdCBhcmUgZmxha3kuCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9uYXZpZ2F0aW9uLXJlZGlyZWN0LXRvLWh0dHAuaHR0cHMu
aHRtbCBbIFBhc3MgRmFpbHVyZSBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZS10aW1pbmcuc3ViLmh0dHBzLmh0
bWwgWyBQYXNzIEZhaWx1cmUgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvd29ya2VyLWNsaWVudC1pZC5odHRwcy5odG1sIFsg
UGFzcyBGYWlsdXJlIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMveGhyL2V2ZW50
LXRpbWVvdXQtb3JkZXIuaHRtIFsgUGFzcyBGYWlsdXJlIF0KIAorIyBUaGUgdGVzdHMgcHJpbnRz
IG91dCBhIFVVSUQgdGhhdCBpcyBkaWZmZXJlbnQgZXZlcnkgdGltZS4KK2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0ZS5o
dHRwcy5odG1sIFsgUGFzcyBGYWlsdXJlIF0KKwogIyBUaGlzIHRlc3QgaXMgdGltaW5nIG91dCBi
ZWNhdXNlIGl0IHJlbGllcyBvbiBodHRwOi8vd3d3MS5sb2NhbGhvc3Q6ODgwMCBob3N0IGZvciBj
cm9zcyBvcmlnaW4gY2hlY2tzLgogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jb3Jz
L3JlbW90ZS1vcmlnaW4uaHRtIFsgU2tpcCBdCiAKQEAgLTI0OCw3ICsyNDksNiBAQCBpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91
cGRhdGUtYWZ0ZXItb25lZAogCiAjIFVuc3VwcG9ydGVkIGZlYXR1cmVzOiBTaGFyZWRXb3JrZXIs
IE5hdmlnYXRpb25QcmVsb2FkCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9uYXZpZ2F0aW9uLXByZWxvYWQgWyBTa2lwIF0KLWlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3NoYXJlZC13b3JrZXItY29udHJvbGxlZC5odHRwcy5odG1sIFsgU2tpcCBdCiBpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9j
bGFpbS1zaGFyZWQtd29ya2VyLWZldGNoLmh0dHBzLmh0bWwgWyBTa2lwIF0KIAogIyBVbnN1cHBv
cnRlZCBmZWF0dXJlczogUGVyZm9ybWFuY2VOYXZpZ2F0aW9uVGltaW5nCkBAIC0yNjYsNiArMjY2
LDcgQEAgd2Via2l0Lm9yZy9iLzE4ODI0NiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmsKICMgQ29uc29sZSBsb2cgbGluZXMgbWF5IGFw
cGVhciBpbiBhIGRpZmZlcmVudCBvcmRlciBzbyB3ZSBzaWxlbmNlIHRoZW0uCiBpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvaGlzdG9yeS90aGUtbG9jYXRpb24t
aW50ZXJmYWNlL2xvY2F0aW9uLXByb3RvY29sLXNldHRlci1ub24tYnJva2VuLmh0bWwgWyBEdW1w
SlNDb25zb2xlTG9nSW5TdGRFcnIgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL2Jyb3dzZXJzL2hpc3RvcnkvdGhlLWxvY2F0aW9uLWludGVyZmFjZS9sb2NhdGlvbi1wcm90
b2NvbC1zZXR0ZXItbm9uLWJyb2tlbi13ZWlyZC5odG1sIFsgRHVtcEpTQ29uc29sZUxvZ0luU3Rk
RXJyIF0KK2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL2ZldGNoLWNvcnMteGhyLmh0dHBzLmh0bWwgWyBEdW1wSlNDb25zb2xlTG9n
SW5TdGRFcnIgXQogCiAjIE5ld2x5IGltcG9ydGVkIFdQVCB0ZXN0cyB0aGF0IGFyZSB0aW1pbmcg
b3V0LgogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL2hpc3Rv
cnkvdGhlLWxvY2F0aW9uLWludGVyZmFjZS9sb2NhdGlvbi1vcmlnaW4taWRuYS5zdWIud2luZG93
Lmh0bWwgWyBTa2lwIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9yZXNv
dXJjZXMvaW1wb3J0LWV4cGVjdGF0aW9ucy5qc29uIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3Jlc291cmNlcy9pbXBvcnQtZXhwZWN0YXRpb25zLmpzb24KaW5kZXggMDg4ZGY3NjE5Nzc4MzA4
NGZlZDM4MTkwYmE2Yjg3YzVjMWI1NzIxMC4uY2I0ZWE4NzhmNTI3YmExZGFhMzA1NmNiYTEwOThj
MzI4NDAxOTAwZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3Jlc291cmNl
cy9pbXBvcnQtZXhwZWN0YXRpb25zLmpzb24KKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3Jlc291cmNlcy9pbXBvcnQtZXhwZWN0YXRpb25zLmpzb24KQEAgLTM2OCw0ICszNjgsNCBAQAog
ICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvd29ya2xldHMiOiAic2tpcCIsIAogICAgICJ3ZWItcGxh
dGZvcm0tdGVzdHMveC1mcmFtZS1vcHRpb25zIjogInNraXAiLCAKICAgICAid2ViLXBsYXRmb3Jt
LXRlc3RzL3hociI6ICJpbXBvcnQiCi19Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9J
bmRleGVkREIvaW50ZXJmYWNlcy5hbnktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaW50ZXJmYWNlcy5hbnktZXhwZWN0
ZWQudHh0CmluZGV4IGYxNGY1MzljYTI2NjA5ZDE5ZTgxMDg0OTVhOGRhYzMzZWY5OTQzMjUuLmQy
ODUxYTZjOGM5ZGE4ZDg5ZDhmY2ZhMjVjNzExMTY5NTNmYThmM2MgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2ludGVyZmFj
ZXMuYW55LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pbnRlcmZhY2VzLmFueS1leHBlY3RlZC50eHQKQEAgLTEs
NCArMSwzIEBACi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNDgyOiBjYWxsYmFjayBub3QgeWV0IHN1
cHBvcnRlZAogCiBQQVNTIFRlc3QgZHJpdmVyIAogUEFTUyBQYXJ0aWFsIGludGVyZmFjZSBXaW5k
b3dPcldvcmtlckdsb2JhbFNjb3BlOiBvcmlnaW5hbCBpbnRlcmZhY2UgZGVmaW5lZCAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhl
ZERCL2ludGVyZmFjZXMuYW55Lndvcmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pbnRlcmZhY2VzLmFueS53b3Jr
ZXItZXhwZWN0ZWQudHh0CmluZGV4IGIzYjk1MTBiOTIyNGY4MWI4OTJiOWI4YWUwOWI4N2Y5MTg1
ZDFjODUuLmU0ZGY0YzkyNTE2YzkwNDQ4NDc4NDk2NjFkZGYzYWNiMTRmYmZiZjUgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERC
L2ludGVyZmFjZXMuYW55Lndvcmtlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaW50ZXJmYWNlcy5hbnkud29y
a2VyLWV4cGVjdGVkLnR4dApAQCAtMjgsNiArMjgsMTAgQEAgUEFTUyBOb2RlSXRlcmF0b3IgaW50
ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdAogUEFT
UyBUcmVlV2Fsa2VyIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVy
ZmFjZSBvYmplY3QgCiBQQVNTIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHBy
b3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCAKIFBBU1MgRE9NVG9rZW5MaXN0IGludGVyZmFj
ZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgCitQQVNTIFhQ
YXRoUmVzdWx0IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFj
ZSBvYmplY3QgCitQQVNTIFhQYXRoRXhwcmVzc2lvbiBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQg
cHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IAorUEFTUyBYUGF0aE5TUmVzb2x2ZXIgaW50
ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCAKK1BB
U1MgWFBhdGhFdmFsdWF0b3IgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2Yg
aW50ZXJmYWNlIG9iamVjdCAKIFBBU1MgSURCUmVxdWVzdCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBh
bmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IAogUEFTUyBJREJSZXF1ZXN0IGludGVy
ZmFjZSBvYmplY3QgbGVuZ3RoIAogUEFTUyBJREJSZXF1ZXN0IGludGVyZmFjZSBvYmplY3QgbmFt
ZSAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvV2ViSURML2ludGVyZmFjZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9XZWJJREwvaW50ZXJmYWNlcy1leHBlY3RlZC50eHQKaW5k
ZXggNzlkNWExZTFiNmEyYjA0OTk2N2E1OTUxNjcyZWNmZjQ1YTBkMzAwMy4uNTE0YjZmNDkxODky
YWFmY2YyZjIyNzQxMTRhM2MzMTk2YzQ0MDFkZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9XZWJJREwvaW50ZXJmYWNlcy1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9XZWJJ
REwvaW50ZXJmYWNlcy1leHBlY3RlZC50eHQKQEAgLTEsNSArMSwzIEBACi1DT05TT0xFIE1FU1NB
R0U6IGxpbmUgNDgyOiBjYWxsYmFjayBub3QgeWV0IHN1cHBvcnRlZAotQ09OU09MRSBNRVNTQUdF
OiBsaW5lIDQ4MjogY2FsbGJhY2sgbm90IHlldCBzdXBwb3J0ZWQKIAogUEFTUyBUZXN0IGRyaXZl
ciAKIFBBU1MgRE9NRXhjZXB0aW9uIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVz
IG9mIGludGVyZmFjZSBvYmplY3QgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2NvbW1vbi9zZWN1cml0eS1mZWF0dXJlcy9yZXNvdXJjZXMv
Y29tbW9uLnN1Yi5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY29tbW9uL3NlY3VyaXR5LWZlYXR1cmVzL3Jlc291cmNlcy9jb21tb24uc3ViLmpzCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmM3Zjk0ZTgwNmY5NGRhNDk0NTgwZGUyZjI1YzY3NjgxNWNhOTQ2NGUKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nv
bW1vbi9zZWN1cml0eS1mZWF0dXJlcy9yZXNvdXJjZXMvY29tbW9uLnN1Yi5qcwpAQCAtMCwwICsx
LDEyMjYgQEAKKy8qKgorICogQGZpbGVvdmVydmlldyBVdGlsaXRpZXMgZm9yIG1peGVkLWNvbnRl
bnQgaW4gV2ViIFBsYXRmb3JtIFRlc3RzLgorICogQGF1dGhvciBidXJuaWtAZ29vZ2xlLmNvbSAo
S3Jpc3RpamFuIEJ1cm5paykKKyAqIERpc2NsYWltZXI6IFNvbWUgbWV0aG9kcyBvZiBvdGhlciBh
dXRob3JzIGFyZSBhbm5vdGF0ZWQgaW4gdGhlIGNvcnJlc3BvbmRpbmcKKyAqICAgICBtZXRob2Qn
cyBKU0RvYy4KKyAqLworCisvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy8vIFR5cGVzCisvLyA9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy8vIE9iamVj
dHMgb2YgdGhlIGZvbGxvd2luZyB0eXBlcyBhcmUgdXNlZCB0byByZXByZXNlbnQgd2hhdCBraW5k
IG9mCisvLyBzdWJyZXNvdXJjZSByZXF1ZXN0cyBzaG91bGQgYmUgc2VudCB3aXRoIHdoYXQga2lu
ZCBvZiBwb2xpY2llcywKKy8vIGZyb20gd2hhdCBraW5kIG9mIHBvc3NpYmx5IG5lc3RlZCBzb3Vy
Y2UgY29udGV4dHMuCisvLyBUaGUgb2JqZWN0cyBhcmUgcmVwcmVzZW50ZWQgYXMgSlNPTiBvYmpl
Y3RzIChub3QgSmF2YVNjcmlwdC9QeXRob24gY2xhc3NlcworLy8gaW4gYSBzdHJpY3Qgc2Vuc2Up
IHRvIGJlIHBhc3NlZCBiZXR3ZWVuIEphdmFTY3JpcHQvUHl0aG9uIGNvZGUuCisKKy8vIE5vdGU6
IFNvIGZhciB0aGlzIGRvY3VtZW50IGNvdmVyczoKKy8vIC0gcmVzb3VyY2VzL2NvbW1vbi5zdWIu
anMgOiBjbGllbnQtc2lkZSB0ZXN0IGluZnJhIGNvZGUKKy8vIC0gc2NvcGUvIC0gc2VydmVyLXNp
ZGUgc2NyaXB0cyB0aGF0IHNlcnZlcyBuZXN0ZWQgc291cmNlIGNvbnRleHRzCisvLyBidXQgZG9l
c24ndCBjb3ZlcjoKKy8vIC0gdG9vbHMvIC0gZ2VuZXJhdG9yIHNjcmlwdHMgdGhhdCBnZW5lcmF0
ZXMgdG9wLWxldmVsIEhUTUwgZG9jdW1lbnRzLgorLy8gVGhlcmUgYXJlIHNvbWUgcG9saWNpZXMg
b25seSBoYW5kbGVkIGJ5IGdlbmVyYXRvcnMgKGUuZy4gbWl4ZWQtY29udGVudAorLy8gb3B0LWlu
cykgYW5kIG5vdCB5ZXQgY292ZXJlZCBieSB0aGUgZG9jcyBoZXJlLgorCisvKioKKyAgQHR5cGVk
ZWYgUG9saWN5RGVsaXZlcnkKKyAgQHR5cGUge29iamVjdH0KKyAgUmVmZXJyZXIgcG9saWN5IGV0
Yy4gY2FuIGJlIGFwcGxpZWQvZGVsaXZlcmVkIGluIHNldmVyYWwgd2F5cy4KKyAgQSBQb2xpY3lE
ZWxpdmVyeSBvYmplY3Qgc3BlY2lmaWVzIHdoYXQgcG9saWN5IGlzIGRlbGl2ZXJlZCBhbmQgaG93
LgorCisgIEBwcm9wZXJ0eSB7c3RyaW5nfSBkZWxpdmVyeVR5cGUKKyAgICBTcGVjaWZpZXMgaG93
IHRoZSBwb2xpY3kgaXMgZGVsaXZlcmVkLgorICAgIFRoZSB2YWxpZCBkZWxpdmVyeVR5cGUgYXJl
OgorCisgICAgICJhdHRyIgorICAgICAgICBbQV0gRE9NIGF0dHJpYnV0ZXMgZS5nLiByZWZlcnJl
clBvbGljeS4KKworICAgICAgInJlbC1ub3JlZiIKKyAgICAgICAgW0FdIDxsaW5rIHJlbD0ibm9y
ZWZlcnJlciI+IChyZWZlcnJlci1wb2xpY3kgb25seSkuCisKKyAgICAgICJodHRwLXJwIgorICAg
ICAgICBbQl0gSFRUUCByZXNwb25zZSBoZWFkZXJzLgorCisgICAgICAibWV0YSIKKyAgICAgICAg
W0JdIDxtZXRhPiBlbGVtZW50cy4KKworICBAcHJvcGVydHkge3N0cmluZ30ga2V5CisgIEBwcm9w
ZXJ0eSB7c3RyaW5nfSB2YWx1ZQorICAgIFNwZWNpZmllcyB3aGF0IHBvbGljeSB0byBiZSBkZWxp
dmVyZWQuIFRoZSB2YWxpZCBrZXlzIGFyZToKKworICAgICAgInJlZmVycmVyUG9saWN5IgorICAg
ICAgICBSZWZlcnJlciBQb2xpY3kKKyAgICAgICAgaHR0cHM6Ly93M2MuZ2l0aHViLmlvL3dlYmFw
cHNlYy1yZWZlcnJlci1wb2xpY3kvCisgICAgICAgIFZhbGlkIHZhbHVlcyBhcmUgdGhvc2UgbGlz
dGVkIGluCisgICAgICAgIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby93ZWJhcHBzZWMtcmVmZXJyZXIt
cG9saWN5LyNyZWZlcnJlci1wb2xpY3kKKyAgICAgICAgKGV4Y2VwdCB0aGF0ICIiIGlzIHJlcHJl
c2VudGVkIGFzIG51bGwvTm9uZSkKKworICBBIFBvbGljeURlbGl2ZXJ5IGNhbiBiZSBzcGVjaWZp
ZWQgaW4gc2V2ZXJhbCB3YXlzOgorCisgIC0gKGZvciBbQV0pIEFzc29jaWF0ZWQgd2l0aCBhbiBp
bmRpdmlkdWFsIHN1YnJlc291cmNlIHJlcXVlc3QgYW5kCisgICAgc3BlY2lmaWVkIGluIGBTdWJy
ZXNvdXJjZS5wb2xpY2llc2AsCisgICAgZS5nLiByZWZlcnJlclBvbGljeSBhdHRyaWJ1dGVzIG9m
IERPTSBlbGVtZW50cy4KKyAgICBUaGlzIGlzIGhhbmRsZWQgaW4gaW52b2tlUmVxdWVzdCgpLgor
CisgIC0gKGZvciBbQl0pIEFzc29jaWF0ZWQgd2l0aCBhbiBuZXN0ZWQgZW52aXJvbm1lbnRhbCBz
ZXR0aW5ncyBvYmplY3QgYW5kCisgICAgc3BlY2lmaWVkIGluIGBTb3VyY2VDb250ZXh0LnBvbGlj
aWVzYCwKKyAgICBlLmcuIEhUVFAgcmVmZXJyZXItcG9saWN5IHJlc3BvbnNlIGhlYWRlcnMgb2Yg
SFRNTC93b3JrZXIgc2NyaXB0cy4KKyAgICBUaGlzIGlzIGhhbmRsZWQgaW4gc2VydmVyLXNpZGUg
dW5kZXIgL2NvbW1vbi9zZWN1cml0eS1mZWF0dXJlcy9zY29wZS8uCisKKyAgLSAoZm9yIFtCXSkg
QXNzb2NpYXRlZCB3aXRoIHRoZSB0b3AtbGV2ZWwgSFRNTCBkb2N1bWVudC4KKyAgICBUaGlzIGlz
IGhhbmRsZWQgYnkgdGhlIGdlbmVyYXRvcnMuZAorKi8KKworLyoqCisgIEB0eXBlZGVmIFN1YnJl
c291cmNlCisgIEB0eXBlIHtvYmplY3R9CisgIEEgU3VicmVzb3VyY2UgcmVwcmVzZW50cyBob3cg
YSBzdWJyZXNvdXJjZSByZXF1ZXN0IGlzIHNlbnQuCisKKyAgQHByb3BlcnR5e1N1YnJlc291cmNl
VHlwZX0gc3VicmVzb3VyY2VUeXBlCisgICAgSG93IHRoZSBzdWJyZXNvdXJjZSByZXF1ZXN0IGlz
IHNlbnQsCisgICAgZS5nLiAiaW1nLXRhZyIgZm9yIHNlbmRpbmcgYSByZXF1ZXN0IHZpYSA8aW1n
IHNyYz4uCisgICAgU2VlIHRoZSBrZXlzIG9mIGBzdWJyZXNvdXJjZU1hcGAgZm9yIHZhbGlkIHZh
bHVlcy4KKworICBAcHJvcGVydHl7c3RyaW5nfSB1cmwKKyAgICBzdWJyZXNvdXJjZSdzIFVSTC4K
KyAgICBUeXBpY2FsbHkgdGhpcyBpcyBjb25zdHJ1Y3RlZCBieSBnZXRSZXF1ZXN0VVJMcygpIGJl
bG93LgorCisgIEBwcm9wZXJ0eXtQb2xpY3lEZWxpdmVyeX0gcG9saWN5RGVsaXZlcmllcworICAg
IFBvbGljaWVzIGRlbGl2ZXJlZCBzcGVjaWZpYyB0byB0aGUgc3VicmVzb3VyY2UgcmVxdWVzdC4K
KyovCisKKy8qKgorICBAdHlwZWRlZiBTb3VyY2VDb250ZXh0CisgIEB0eXBlIHtvYmplY3R9Cisg
IFJlcXVlc3RzIGNhbiBiZSBwb3NzaWJseSBzZW50IGZyb20gdmFyaW91cyBraW5kcyBvZiBzb3Vy
Y2UgY29udGV4dHMsIGkuZS4KKyAgZmV0Y2ggY2xpZW50J3MgZW52aXJvbm1lbnQgc2V0dGluZ3Mg
b2JqZWN0czoKKyAgdG9wLWxldmVsIHdpbmRvd3MsIGlmcmFtZXMsIG9yIHdvcmtlcnMuCisgIEEg
U291cmNlQ29udGV4dCBvYmplY3Qgc3BlY2lmaWVzIG9uZSBlbnZpcm9ubWVudCBzZXR0aW5ncyBv
YmplY3QsIGFuZAorICBhbiBBcnJheTxTb3VyY2VDb250ZXh0PiBzcGVjaWZpZXMgYSBwb3NzaWJs
eSBuZXN0ZWQgY29udGV4dCwKKyAgZnJvbSB0aGUgb3V0ZXItbW9zdCB0byBpbm5lci1tb3N0IGVu
dmlyb25tZW50IHNldHRpbmdzIG9iamVjdHMuCisKKyAgRm9yIGV4YW1wbGU6CisgICAgW3tzb3Vy
Y2VDb250ZXh0VHlwZTogInNyY2RvYyJ9LCB7c291cmNlQ29udGV4dFR5cGU6ICJ3b3JrZXItY2xh
c3NpYyJ9XQorICBtZWFucyB0aGF0IGEgc3VicmVzb3VyY2UgcmVxdWVzdCBpcyB0byBiZSBzZW50
IGZyb20KKyAgYSBjbGFzc2ljIGRlZGljYXRlZCB3b3JrZXIgY3JlYXRlZCBmcm9tIDxpZnJhbWUg
c3JjZG9jPgorICBpbnNpZGUgdGhlIHRvcC1sZXZlbCBIVE1MIGRvY3VtZW50LgorICBOb3RlOiB0
aGUgdG9wLWxldmVsIGRvY3VtZW50IGlzIG5vdCBpbmNsdWRlZCBpbiB0aGUgYXJyYXkgYW5kCisg
IGlzIGFzc3VtZWQgaW1wbGljaXRseS4KKworICBTb3VyY2VDb250ZXh0IChvciBBcnJheTxTb3Vy
Y2VDb250ZXh0PikgaXMgc2V0IGJhc2VkIG9uCisgIHRoZSBmZXRjaCBjbGllbnQncyBzZXR0aW5n
cyBvYmplY3QgdGhhdCBpcyB1c2VkIGZvciB0aGUgc3VicmVzb3VyY2UgcmVxdWVzdCwKKyAgTk9U
IG9uIG1vZHVsZSBtYXAgc2V0dGluZ3Mgb2JqZWN0LCBhbmQKKyAgTk9UIG9uIHRoZSBpbm5lci1t
b3N0IHNldHRpbmdzIG9iamVjdCB0aGF0IGFwcGVhcnMgaW4gdGhlIHRlc3QuCisgIEZvciBleGFt
cGxlLCBBcnJheTxTb3VyY2VDb250ZXh0PiBpcyBgW11gIChpbmRpY2F0aW5nIHRoZSB0b3AgV2lu
ZG93KQorICBmb3IgYHdvcmtlci5qc2AKKyAgLSBXaGVuIGl0IGlzIHRoZSByb290IHdvcmtlciBz
Y3JpcHQ6IGBuZXcgV29ya2VyKCd3b3JrZXIuanMnKWAsIG9yCisgIC0gV2hlbiBpdCBpcyBpbXBv
cnRlZCBmcm9tIHRoZSByb290IHdvcmtlciBzY3JpcHQ6CisgICAgYG5ldyBXb3JrZXIoJ3RvcC5q
cycsIHt0eXBlOiAnbW9kdWxlJ30pYAorICAgIHdoZXJlIGB0b3AuanNgIGhhcyBgaW1wb3J0ICd3
b3JrZXIuanMnYC4KKyAgYmVjYXVzZSB0aGUgcmVxdWVzdCBmb3IgYHdvcmtlci5qc2AgdXNlcyB0
aGUgV2luZG93IGFzIGl0cyBmZXRjaCBjbGllbnQncworICBzZXR0aW5ncyBvYmplY3QsIHdoaWxl
IGEgV29ya2VyR2xvYmFsU2NvcGUgaXMgY3JlYXRlZCB0aG91Z2guCisKKyAgQHByb3BlcnR5IHtz
dHJpbmd9IHNvdXJjZUNvbnRleHRUeXBlCisgICAgS2luZCBvZiB0aGUgc291cmNlIGNvbnRleHQg
dG8gYmUgdXNlZC4KKyAgICBWYWxpZCB2YWx1ZXMgYXJlIHRoZSBrZXlzIG9mIGBzb3VyY2VDb250
ZXh0TWFwYCBiZWxvdy4KKworICBAcHJvcGVydHkge0FycmF5PFBvbGljeURlbGl2ZXJ5Pn0gcG9s
aWN5RGVsaXZlcmllcworICAgIEEgbGlzdCBvZiBQb2xpY3lEZWxpdmVyeSBhcHBsaWVkIHRvIHRo
ZSBzb3VyY2UgY29udGV4dC4KKyovCisKKy8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLy8gR2VuZXJhbCB1dGlsaXR5IGZ1
bmN0aW9ucworLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09CisKK2Z1bmN0aW9uIHRpbWVvdXRQcm9taXNlKHQsIG1zKSB7Cisg
IHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHsgdC5zdGVwX3RpbWVvdXQocmVzb2x2ZSwg
bXMpOyB9KTsKK30KKworLyoqCisgKiBOb3JtYWxpemVzIHRoZSB0YXJnZXQgcG9ydCBmb3IgdXNl
IGluIGEgVVJMLiBGb3IgZGVmYXVsdCBwb3J0cywgdGhpcyBpcyB0aGUKKyAqICAgICBlbXB0eSBz
dHJpbmcgKG9taXR0ZWQgcG9ydCksIG90aGVyd2lzZSBpdCdzIGEgY29sb24gZm9sbG93ZWQgYnkg
dGhlIHBvcnQKKyAqICAgICBudW1iZXIuIFBvcnRzIDgwLCA0NDMgYW5kIGFuIGVtcHR5IHN0cmlu
ZyBhcmUgcmVnYXJkZWQgYXMgZGVmYXVsdCBwb3J0cy4KKyAqIEBwYXJhbSB7bnVtYmVyfSB0YXJn
ZXRQb3J0IFRoZSBwb3J0IHRvIHVzZQorICogQHJldHVybiB7c3RyaW5nfSBUaGUgcG9ydCBwb3J0
aW9uIGZvciB1c2luZyBhcyBwYXJ0IG9mIGEgVVJMLgorICovCitmdW5jdGlvbiBnZXROb3JtYWxp
emVkUG9ydCh0YXJnZXRQb3J0KSB7CisgIHJldHVybiAoWzgwLCA0NDMsICIiXS5pbmRleE9mKHRh
cmdldFBvcnQpID49IDApID8gIiIgOiAiOiIgKyB0YXJnZXRQb3J0OworfQorCisvKioKKyAqIENy
ZWF0ZXMgYSBHVUlELgorICogICAgIFNlZTogaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kv
R2xvYmFsbHlfdW5pcXVlX2lkZW50aWZpZXIKKyAqICAgICBPcmlnaW5hbCBhdXRob3I6IGJyb29m
YSAoaHR0cDovL3d3dy5icm9vZmEuY29tLykKKyAqICAgICBTb3VyY2VkIGZyb206IGh0dHA6Ly9z
dGFja292ZXJmbG93LmNvbS9hLzIxMTc1MjMvNDk0OTcxNQorICogQHJldHVybiB7c3RyaW5nfSBB
IHBzZXVkby1yYW5kb20gR1VJRC4KKyAqLworZnVuY3Rpb24gZ3VpZCgpIHsKKyAgcmV0dXJuICd4
eHh4eHh4eC14eHh4LTR4eHgteXh4eC14eHh4eHh4eHh4eHgnLnJlcGxhY2UoL1t4eV0vZywgZnVu
Y3Rpb24oYykgeworICAgIHZhciByID0gTWF0aC5yYW5kb20oKSAqIDE2IHwgMCwgdiA9IGMgPT0g
J3gnID8gciA6IChyICYgMHgzIHwgMHg4KTsKKyAgICByZXR1cm4gdi50b1N0cmluZygxNik7Cisg
IH0pOworfQorCisvKioKKyAqIEluaXRpYXRlcyBhIG5ldyBYSFIgdmlhIEdFVC4KKyAqIEBwYXJh
bSB7c3RyaW5nfSB1cmwgVGhlIGVuZHBvaW50IFVSTCBmb3IgdGhlIFhIUi4KKyAqIEBwYXJhbSB7
c3RyaW5nfSByZXNwb25zZVR5cGUgT3B0aW9uYWwgLSBob3cgc2hvdWxkIHRoZSByZXNwb25zZSBi
ZSBwYXJzZWQuCisgKiAgICAgRGVmYXVsdCBpcyAianNvbiIuCisgKiAgICAgU2VlOiBodHRwczov
L3hoci5zcGVjLndoYXR3Zy5vcmcvI2RvbS14bWxodHRwcmVxdWVzdC1yZXNwb25zZXR5cGUKKyAq
IEByZXR1cm4ge1Byb21pc2V9IEEgcHJvbWlzZSB3cmFwcGluZyB0aGUgc3VjY2VzcyBhbmQgZXJy
b3IgZXZlbnRzLgorICovCitmdW5jdGlvbiB4aHJSZXF1ZXN0KHVybCwgcmVzcG9uc2VUeXBlKSB7
CisgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKKyAgICB2
YXIgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7CisgICAgeGhyLm9wZW4oJ0dFVCcsIHVybCwg
dHJ1ZSk7CisgICAgeGhyLnJlc3BvbnNlVHlwZSA9IHJlc3BvbnNlVHlwZSB8fCAianNvbiI7CisK
KyAgICB4aHIuYWRkRXZlbnRMaXN0ZW5lcigiZXJyb3IiLCBmdW5jdGlvbigpIHsKKyAgICAgIHJl
amVjdChFcnJvcigiTmV0d29yayBFcnJvciIpKTsKKyAgICB9KTsKKworICAgIHhoci5hZGRFdmVu
dExpc3RlbmVyKCJsb2FkIiwgZnVuY3Rpb24oKSB7CisgICAgICBpZiAoeGhyLnN0YXR1cyAhPSAy
MDApCisgICAgICAgIHJlamVjdChFcnJvcih4aHIuc3RhdHVzVGV4dCkpOworICAgICAgZWxzZQor
ICAgICAgICByZXNvbHZlKHhoci5yZXNwb25zZSk7CisgICAgfSk7CisKKyAgICB4aHIuc2VuZCgp
OworICB9KTsKK30KKworLyoqCisgKiBTZXRzIGF0dHJpYnV0ZXMgb24gYSBnaXZlbiBET00gZWxl
bWVudC4KKyAqIEBwYXJhbSB7RE9NRWxlbWVudH0gZWxlbWVudCBUaGUgZWxlbWVudCBvbiB3aGlj
aCB0byBzZXQgdGhlIGF0dHJpYnV0ZXMuCisgKiBAcGFyYW0ge29iamVjdH0gQW4gb2JqZWN0IHdp
dGgga2V5cyAoc2VydmluZyBhcyBhdHRyaWJ1dGUgbmFtZXMpIGFuZCB2YWx1ZXMuCisgKi8KK2Z1
bmN0aW9uIHNldEF0dHJpYnV0ZXMoZWwsIGF0dHJzKSB7CisgIGF0dHJzID0gYXR0cnMgfHwge30K
KyAgZm9yICh2YXIgYXR0ciBpbiBhdHRycykgeworICAgIGlmIChhdHRyICE9PSAnc3JjJykKKyAg
ICAgIGVsLnNldEF0dHJpYnV0ZShhdHRyLCBhdHRyc1thdHRyXSk7CisgIH0KKyAgLy8gV29ya2Fy
b3VuZCBmb3IgQ2hyb21pdW06IHNldCA8aW1nPidzIHNyYyBhdHRyaWJ1dGUgYWZ0ZXIgYWxsIG90
aGVyCisgIC8vIGF0dHJpYnV0ZXMgdG8gZW5zdXJlIHRoZSBwb2xpY3kgaXMgYXBwbGllZC4KKyAg
Zm9yICh2YXIgYXR0ciBpbiBhdHRycykgeworICAgIGlmIChhdHRyID09PSAnc3JjJykKKyAgICAg
IGVsLnNldEF0dHJpYnV0ZShhdHRyLCBhdHRyc1thdHRyXSk7CisgIH0KK30KKworLyoqCisgKiBC
aW5kcyB0byBzdWNjZXNzIGFuZCBlcnJvciBldmVudHMgb2YgYW4gb2JqZWN0IHdyYXBwaW5nIHRo
ZW0gaW50byBhIHByb21pc2UKKyAqICAgICBhdmFpbGFibGUgdGhyb3VnaCB7QGNvZGUgZWxlbWVu
dC5ldmVudFByb21pc2V9LiBUaGUgc3VjY2VzcyBldmVudAorICogICAgIHJlc29sdmVzIGFuZCBl
cnJvciBldmVudCByZWplY3RzLgorICogVGhpcyBtZXRob2QgYWRkcyBldmVudCBsaXN0ZW5lcnMs
IGFuZCB0aGVuIHJlbW92ZXMgYWxsIHRoZSBhZGRlZCBsaXN0ZW5lcnMKKyAqIHdoZW4gb25lIG9m
IGxpc3RlbmVkIGV2ZW50IGlzIGZpcmVkLgorICogQHBhcmFtIHtvYmplY3R9IGVsZW1lbnQgQW4g
b2JqZWN0IHN1cHBvcnRpbmcgZXZlbnRzIG9uIHdoaWNoIHRvIGJpbmQgdGhlCisgKiAgICAgcHJv
bWlzZS4KKyAqIEBwYXJhbSB7c3RyaW5nfSByZXNvbHZlRXZlbnROYW1lIFs9ImxvYWQiXSBUaGUg
ZXZlbnQgbmFtZSB0byBiaW5kIHJlc29sdmUgdG8uCisgKiBAcGFyYW0ge3N0cmluZ30gcmVqZWN0
RXZlbnROYW1lIFs9ImVycm9yIl0gVGhlIGV2ZW50IG5hbWUgdG8gYmluZCByZWplY3QgdG8uCisg
Ki8KK2Z1bmN0aW9uIGJpbmRFdmVudHMoZWxlbWVudCwgcmVzb2x2ZUV2ZW50TmFtZSwgcmVqZWN0
RXZlbnROYW1lKSB7CisgIGVsZW1lbnQuZXZlbnRQcm9taXNlID0KKyAgICAgIGJpbmRFdmVudHMy
KGVsZW1lbnQsIHJlc29sdmVFdmVudE5hbWUsIGVsZW1lbnQsIHJlamVjdEV2ZW50TmFtZSk7Cit9
CisKKy8vIFJldHVybnMgYSBwcm9taXNlIHdyYXBwaW5nIHN1Y2Nlc3MgYW5kIGVycm9yIGV2ZW50
cyBvZiBvYmplY3RzLgorLy8gVGhpcyBpcyBhIHZhcmlhbnQgb2YgYmluZEV2ZW50cyB0aGF0IGNh
biBhY2NlcHQgc2VwYXJhdGUgb2JqZWN0cyBmb3IgZWFjaAorLy8gZXZlbnRzIGFuZCB0d28gZXZl
bnRzIHRvIHJlamVjdCwgYW5kIGRvZXNuJ3Qgc2V0IGBldmVudFByb21pc2VgLgorLy8KKy8vIFdo
ZW4gYHJlc29sdmVPYmplY3RgJ3MgYHJlc29sdmVFdmVudE5hbWVgIGV2ZW50IChkZWZhdWx0OiAi
bG9hZCIpIGlzCisvLyBmaXJlZCwgdGhlIHByb21pc2UgaXMgcmVzb2x2ZWQgd2l0aCB0aGUgZXZl
bnQuCisvLworLy8gV2hlbiBgcmVqZWN0T2JqZWN0YCdzIGByZWplY3RFdmVudE5hbWVgIGV2ZW50
IChkZWZhdWx0OiAiZXJyb3IiKSBvcgorLy8gYHJlamVjdE9iamVjdDJgJ3MgYHJlamVjdEV2ZW50
TmFtZTJgIGV2ZW50IChkZWZhdWx0OiAiZXJyb3IiKSBpcworLy8gZmlyZWQsIHRoZSBwcm9taXNl
IGlzIHJlamVjdGVkLgorLy8KKy8vIGByZWplY3RPYmplY3QyYCBpcyBvcHRpb25hbC4KK2Z1bmN0
aW9uIGJpbmRFdmVudHMyKHJlc29sdmVPYmplY3QsIHJlc29sdmVFdmVudE5hbWUsIHJlamVjdE9i
amVjdCwgcmVqZWN0RXZlbnROYW1lLCByZWplY3RPYmplY3QyLCByZWplY3RFdmVudE5hbWUyKSB7
CisgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKKyAgICBj
b25zdCBhY3R1YWxSZXNvbHZlRXZlbnROYW1lID0gcmVzb2x2ZUV2ZW50TmFtZSB8fCAibG9hZCI7
CisgICAgY29uc3QgYWN0dWFsUmVqZWN0RXZlbnROYW1lID0gcmVqZWN0RXZlbnROYW1lIHx8ICJl
cnJvciI7CisgICAgY29uc3QgYWN0dWFsUmVqZWN0RXZlbnROYW1lMiA9IHJlamVjdEV2ZW50TmFt
ZTIgfHwgImVycm9yIjsKKworICAgIGNvbnN0IHJlc29sdmVIYW5kbGVyID0gZnVuY3Rpb24oZXZl
bnQpIHsKKyAgICAgIGNsZWFudXAoKTsKKyAgICAgIHJlc29sdmUoZXZlbnQpOworICAgIH07CisK
KyAgICBjb25zdCByZWplY3RIYW5kbGVyID0gZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgIC8vIENo
cm9taXVtIHN0YXJ0cyBwcm9wYWdhdGluZyBlcnJvcnMgZnJvbSB3b3JrZXIub25lcnJvciB0bwor
ICAgICAgLy8gd2luZG93Lm9uZXJyb3IuIFRoaXMgaGFuZGxlcyB0aGUgdW5jYXVnaHQgZXhjZXB0
aW9ucyBpbiB0ZXN0cy4KKyAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7CisgICAgICBjbGVh
bnVwKCk7CisgICAgICByZWplY3QoZXZlbnQpOworICAgIH07CisKKyAgICBjb25zdCBjbGVhbnVw
ID0gZnVuY3Rpb24oKSB7CisgICAgICByZXNvbHZlT2JqZWN0LnJlbW92ZUV2ZW50TGlzdGVuZXIo
YWN0dWFsUmVzb2x2ZUV2ZW50TmFtZSwgcmVzb2x2ZUhhbmRsZXIpOworICAgICAgcmVqZWN0T2Jq
ZWN0LnJlbW92ZUV2ZW50TGlzdGVuZXIoYWN0dWFsUmVqZWN0RXZlbnROYW1lLCByZWplY3RIYW5k
bGVyKTsKKyAgICAgIGlmIChyZWplY3RPYmplY3QyKSB7CisgICAgICAgIHJlamVjdE9iamVjdDIu
cmVtb3ZlRXZlbnRMaXN0ZW5lcihhY3R1YWxSZWplY3RFdmVudE5hbWUyLCByZWplY3RIYW5kbGVy
KTsKKyAgICAgIH0KKyAgICB9OworCisgICAgcmVzb2x2ZU9iamVjdC5hZGRFdmVudExpc3RlbmVy
KGFjdHVhbFJlc29sdmVFdmVudE5hbWUsIHJlc29sdmVIYW5kbGVyKTsKKyAgICByZWplY3RPYmpl
Y3QuYWRkRXZlbnRMaXN0ZW5lcihhY3R1YWxSZWplY3RFdmVudE5hbWUsIHJlamVjdEhhbmRsZXIp
OworICAgIGlmIChyZWplY3RPYmplY3QyKSB7CisgICAgICByZWplY3RPYmplY3QyLmFkZEV2ZW50
TGlzdGVuZXIoYWN0dWFsUmVqZWN0RXZlbnROYW1lMiwgcmVqZWN0SGFuZGxlcik7CisgICAgfQor
ICB9KTsKK30KKworLyoqCisgKiBDcmVhdGVzIGEgbmV3IERPTSBlbGVtZW50LgorICogQHBhcmFt
IHtzdHJpbmd9IHRhZ05hbWUgVGhlIHR5cGUgb2YgdGhlIERPTSBlbGVtZW50LgorICogQHBhcmFt
IHtvYmplY3R9IGF0dHJzIEEgSlNPTiB3aXRoIGF0dHJpYnV0ZXMgdG8gYXBwbHkgdG8gdGhlIGVs
ZW1lbnQuCisgKiBAcGFyYW0ge0RPTUVsZW1lbnR9IHBhcmVudCBPcHRpb25hbCAtIGFuIGV4aXN0
aW5nIERPTSBlbGVtZW50IHRvIGFwcGVuZCB0bworICogICAgIElmIG5vdCBwcm92aWRlZCwgdGhl
IHJldHVybmVkIGVsZW1lbnQgd2lsbCByZW1haW4gb3JwaGFuZWQuCisgKiBAcGFyYW0ge2Jvb2xl
YW59IGRvQmluZEV2ZW50cyBPcHRpb25hbCAtIFdoZXRoZXIgdG8gYmluZCB0byBsb2FkIGFuZCBl
cnJvcgorICogICAgIGV2ZW50cyBhbmQgcHJvdmlkZSB0aGUgcHJvbWlzZSB3cmFwcGluZyB0aGUg
ZXZlbnRzIHZpYSB0aGUgZWxlbWVudCdzCisgKiAgICAge0Bjb2RlIGV2ZW50UHJvbWlzZX0gcHJv
cGVydHkuIERlZmF1bHQgdmFsdWUgZXZhbHVhdGVzIHRvIGZhbHNlLgorICogQHJldHVybiB7RE9N
RWxlbWVudH0gVGhlIG5ld2x5IGNyZWF0ZWQgRE9NIGVsZW1lbnQuCisgKi8KK2Z1bmN0aW9uIGNy
ZWF0ZUVsZW1lbnQodGFnTmFtZSwgYXR0cnMsIHBhcmVudE5vZGUsIGRvQmluZEV2ZW50cykgewor
ICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGFnTmFtZSk7CisKKyAgaWYg
KGRvQmluZEV2ZW50cykKKyAgICBiaW5kRXZlbnRzKGVsZW1lbnQpOworCisgIC8vIFdlIHNldCB0
aGUgYXR0cmlidXRlcyBhZnRlciBiaW5kaW5nIHRvIGV2ZW50cyB0byBjYXRjaCBhbnkKKyAgLy8g
ZXZlbnQtdHJpZ2dlcmluZyBhdHRyaWJ1dGUgY2hhbmdlcy4gRS5nLiBmb3JtIHN1Ym1pc3Npb24u
CisgIC8vCisgIC8vIEJ1dCBiZSBjYXJlZnVsIHdpdGggaW1hZ2VzOiB1bmxpa2Ugb3RoZXIgZWxl
bWVudHMgdGhleSB3aWxsIHN0YXJ0IHRoZSBsb2FkCisgIC8vIGFzIHNvb24gYXMgdGhlIGF0dHIg
aXMgc2V0LCBldmVuIGlmIG5vdCBpbiB0aGUgZG9jdW1lbnQgeWV0LCBhbmQgc29tZXRpbWVzCisg
IC8vIGNvbXBsZXRlIGl0IHN5bmNocm9ub3VzbHksIHNvIHRoZSBhcHBlbmQgZG9lc24ndCBoYXZl
IHRoZSBlZmZlY3Qgd2Ugd2FudC4KKyAgLy8gU28gZm9yIGltYWdlcywgd2Ugd2FudCB0byBzZXQg
dGhlIGF0dHJzIGFmdGVyIGFwcGVuZGluZywgd2hlcmVhcyBmb3Igb3RoZXIKKyAgLy8gZWxlbWVu
dHMgd2Ugd2FudCB0byBkbyBpdCBiZWZvcmUgYXBwZW5kaW5nLgorICB2YXIgaXNJbWcgPSAodGFn
TmFtZSA9PSAiaW1nIik7CisgIGlmICghaXNJbWcpCisgICAgc2V0QXR0cmlidXRlcyhlbGVtZW50
LCBhdHRycyk7CisKKyAgaWYgKHBhcmVudE5vZGUpCisgICAgcGFyZW50Tm9kZS5hcHBlbmRDaGls
ZChlbGVtZW50KTsKKworICBpZiAoaXNJbWcpCisgICAgc2V0QXR0cmlidXRlcyhlbGVtZW50LCBh
dHRycyk7CisKKyAgcmV0dXJuIGVsZW1lbnQ7Cit9CisKK2Z1bmN0aW9uIGNyZWF0ZVJlcXVlc3RW
aWFFbGVtZW50KHRhZ05hbWUsIGF0dHJzLCBwYXJlbnROb2RlKSB7CisgIHJldHVybiBjcmVhdGVF
bGVtZW50KHRhZ05hbWUsIGF0dHJzLCBwYXJlbnROb2RlLCB0cnVlKS5ldmVudFByb21pc2U7Cit9
CisKKy8qKgorICogQ3JlYXRlcyBhIG5ldyBlbXB0eSBpZnJhbWUgYW5kIGFwcGVuZHMgaXQgdG8g
e0Bjb2RlIGRvY3VtZW50LmJvZHl9IC4KKyAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lIFRoZSBuYW1l
IGFuZCBJRCBvZiB0aGUgbmV3IGlmcmFtZS4KKyAqIEBwYXJhbSB7Ym9vbGVhbn0gZG9CaW5kRXZl
bnRzIFdoZXRoZXIgdG8gYmluZCBsb2FkIGFuZCBlcnJvciBldmVudHMuCisgKiBAcmV0dXJuIHtE
T01FbGVtZW50fSBUaGUgbmV3bHkgY3JlYXRlZCBpZnJhbWUuCisgKi8KK2Z1bmN0aW9uIGNyZWF0
ZUhlbHBlcklmcmFtZShuYW1lLCBkb0JpbmRFdmVudHMpIHsKKyAgcmV0dXJuIGNyZWF0ZUVsZW1l
bnQoImlmcmFtZSIsCisgICAgICAgICAgICAgICAgICAgICAgIHsibmFtZSI6IG5hbWUsICJpZCI6
IG5hbWV9LAorICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LAorICAgICAgICAg
ICAgICAgICAgICAgICBkb0JpbmRFdmVudHMpOworfQorCitmdW5jdGlvbiB3cmFwUmVzdWx0KHNl
cnZlcl9kYXRhKSB7CisgIGlmICh0eXBlb2Yoc2VydmVyX2RhdGEpID09PSAic3RyaW5nIikgewor
ICAgIHRocm93IHNlcnZlcl9kYXRhOworICB9CisgIHJldHVybiB7CisgICAgcmVmZXJyZXI6IHNl
cnZlcl9kYXRhLmhlYWRlcnMucmVmZXJlciwKKyAgICBoZWFkZXJzOiBzZXJ2ZXJfZGF0YS5oZWFk
ZXJzCisgIH0KK30KKworLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09CisvLyBTdWJyZXNvdXJjZXMKKy8vID09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisv
KioKKyAgQHR5cGVkZWYgUmVxdWVzdFJlc3VsdAorICBAdHlwZSB7b2JqZWN0fQorICBSZXByZXNl
bnRzIHRoZSByZXN1bHQgb2Ygc2VuZGluZyBhbiByZXF1ZXN0LgorICBBbGwgcHJvcGVydGllcyBh
cmUgb3B0aW9uYWwuIFNlZSB0aGUgY29tbWVudHMgZm9yCisgIHJlcXVlc3RWaWEqKCkgYW5kIGlu
dm9rZVJlcXVlc3QoKSBiZWxvdyB0byBzZWUgd2hpY2ggcHJvcGVydGllcyBhcmUgc2V0LgorCisg
IEBwcm9wZXJ0eSB7QXJyYXk8T2JqZWN0PHN0cmluZywgc3RyaW5nPj59IGhlYWRlcnMKKyAgICBI
VFRQIHJlcXVlc3QgaGVhZGVycyBzZW50IHRvIHNlcnZlci4KKyAgQHByb3BlcnR5IHtzdHJpbmd9
IHJlZmVycmVyIC0gUmVmZXJyZXIuCisgIEBwcm9wZXJ0eSB7c3RyaW5nfSBsb2NhdGlvbiAtIFRo
ZSBVUkwgb2YgdGhlIHN1YnJlc291cmNlLgorICBAcHJvcGVydHkge3N0cmluZ30gc291cmNlQ29u
dGV4dFVybAorICAgIHRoZSBVUkwgb2YgdGhlIGdsb2JhbCBvYmplY3Qgd2hlcmUgdGhlIGFjdHVh
bCByZXF1ZXN0IGlzIHNlbnQuCisqLworCisvKioKKyAgcmVxdWVzdFZpYSoodXJsLCBhZGRpdGlv
bmFsQXR0cmlidXRlcykgZnVuY3Rpb25zIHNlbmQgYSBzdWJyZXNvdXJjZQorICByZXF1ZXN0IGZy
b20gdGhlIGN1cnJlbnQgZW52aXJvbm1lbnQgc2V0dGluZ3Mgb2JqZWN0LgorCisgIEBwYXJhbSB7
c3RyaW5nfSB1cmwKKyAgICBUaGUgVVJMIG9mIHRoZSBzdWJyZXNvdXJjZS4KKyAgQHBhcmFtIHtP
YmplY3Q8c3RyaW5nLCBzdHJpbmc+fSBhZGRpdGlvbmFsQXR0cmlidXRlcworICAgIEFkZGl0aW9u
YWwgYXR0cmlidXRlcyBzZXQgdG8gRE9NIGVsZW1lbnRzCisgICAgKGVsZW1lbnQtaW5pdGlhdGVk
IHJlcXVlc3RzIG9ubHkpLgorCisgIEByZXR1cm5zIHtQcm9taXNlfSB0aGF0IGFyZSByZXNvbHZl
ZCB3aXRoIGEgUmVxdWVzdFJlc3VsdCBvYmplY3QKKyAgb24gc3VjY2Vzc2Z1bCByZXF1ZXN0cy4K
KworICAtIENhdGVnb3J5IDE6CisgICAgICBgaGVhZGVyc2A6IHNldC4KKyAgICAgIGByZWZlcnJl
cmA6IHNldCB2aWEgYGRvY3VtZW50LnJlZmVycmVyYC4KKyAgICAgIGBsb2NhdGlvbmA6IHNldCB2
aWEgYGRvY3VtZW50LmxvY2F0aW9uYC4KKyAgICAgIFNlZSBgdGVtcGxhdGUvZG9jdW1lbnQuaHRt
bC50ZW1wbGF0ZWAuCisgIC0gQ2F0ZWdvcnkgMjoKKyAgICAgIGBoZWFkZXJzYDogc2V0LgorICAg
ICAgYHJlZmVycmVyYDogc2V0IHRvIGBoZWFkZXJzLnJlZmVyZXJgIGJ5IGB3cmFwUmVzdWx0KClg
LgorICAgICAgYGxvY2F0aW9uYDogbm90IHNldC4KKyAgLSBDYXRlZ29yeSAzOgorICAgICAgQWxs
IHRoZSBrZXlzIGxpc3RlZCBhYm92ZSBhcmUgTk9UIHNldC4KKyAgYHNvdXJjZUNvbnRleHRVcmxg
IGlzIG5vdCBzZXQgaGVyZS4KKworICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAt
LS0tLS0tLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICBGdW5jdGlvbiBuYW1lICAgICAg
ICAgICAgICAgICAgICBDYXRlZ29yeSBVc2VkIGluCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIC0tLS0tLS0tIC0tLS0tLS0gLS0tLS0tLS0tCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZmVycmVyIG1peGVkLSAgdXBncmFk
ZS0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9saWN5ICAg
Y29udGVudCBpbnNlY3VyZS0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcG9saWN5ICAgY29udGVudCByZXF1ZXN0CisgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tIC0tLS0tLS0tIC0tLS0tLS0tIC0tLS0tLS0gLS0tLS0tLS0tCisgIHJlcXVlc3RW
aWFBbmNob3IgICAgICAgICAgICAgICAgIDEgICAgICAgIFkgICAgICAgIFkgICAgICAgLQorICBy
ZXF1ZXN0VmlhQXJlYSAgICAgICAgICAgICAgICAgICAxICAgICAgICBZICAgICAgICBZICAgICAg
IC0KKyAgcmVxdWVzdFZpYUF1ZGlvICAgICAgICAgICAgICAgICAgMyAgICAgICAgLSAgICAgICAg
WSAgICAgICAtCisgIHJlcXVlc3RWaWFEZWRpY2F0ZWRXb3JrZXIgICAgICAgIDIgICAgICAgIFkg
ICAgICAgIFkgICAgICAgWQorICByZXF1ZXN0VmlhRmV0Y2ggICAgICAgICAgICAgICAgICAyICAg
ICAgICBZICAgICAgICBZICAgICAgIC0KKyAgcmVxdWVzdFZpYUZvcm0gICAgICAgICAgICAgICAg
ICAgMyAgICAgICAgLSAgICAgICAgWSAgICAgICAtCisgIHJlcXVlc3RWaWFJZnJhbWUgICAgICAg
ICAgICAgICAgIDEgICAgICAgIFkgICAgICAgIFkgICAgICAgLQorICByZXF1ZXN0VmlhSW1hZ2Ug
ICAgICAgICAgICAgICAgICAyICAgICAgICBZICAgICAgICBZICAgICAgIC0KKyAgcmVxdWVzdFZp
YUxpbmtQcmVmZXRjaCAgICAgICAgICAgMyAgICAgICAgLSAgICAgICAgWSAgICAgICAtCisgIHJl
cXVlc3RWaWFMaW5rU3R5bGVzaGVldCAgICAgICAgIDMgICAgICAgIC0gICAgICAgIFkgICAgICAg
LQorICByZXF1ZXN0VmlhT2JqZWN0ICAgICAgICAgICAgICAgICAzICAgICAgICAtICAgICAgICBZ
ICAgICAgIC0KKyAgcmVxdWVzdFZpYVBpY3R1cmUgICAgICAgICAgICAgICAgMyAgICAgICAgLSAg
ICAgICAgWSAgICAgICAtCisgIHJlcXVlc3RWaWFTY3JpcHQgICAgICAgICAgICAgICAgIDIgICAg
ICAgIFkgICAgICAgIFkgICAgICAgLQorICByZXF1ZXN0VmlhU2VuZEJlYWNvbiAgICAgICAgICAg
ICAzICAgICAgICAtICAgICAgICBZICAgICAgIC0KKyAgcmVxdWVzdFZpYVNoYXJlZFdvcmtlciAg
ICAgICAgICAgMiAgICAgICAgWSAgICAgICAgLSAgICAgICAtCisgIHJlcXVlc3RWaWFWaWRlbyAg
ICAgICAgICAgICAgICAgIDMgICAgICAgIC0gICAgICAgIFkgICAgICAgLQorICByZXF1ZXN0Vmlh
V2ViU29ja2V0ICAgICAgICAgICAgICAzICAgICAgICAtICAgICAgICBZICAgICAgIC0KKyAgcmVx
dWVzdFZpYVdvcmtsZXQgICAgICAgICAgICAgICAgMyAgICAgICAgLSAgICAgICAgWSAgICAgICBZ
CisgIHJlcXVlc3RWaWFYaHIgICAgICAgICAgICAgICAgICAgIDIgICAgICAgIFkgICAgICAgIFkg
ICAgICAgLQorICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAtLS0tLS0tLSAtLS0t
LS0tLSAtLS0tLS0tIC0tLS0tLS0tLQorKi8KKworLyoqCisgKiBDcmVhdGVzIGEgbmV3IGlmcmFt
ZSwgYmluZHMgbG9hZCBhbmQgZXJyb3IgZXZlbnRzLCBzZXRzIHRoZSBzcmMgYXR0cmlidXRlIGFu
ZAorICogICAgIGFwcGVuZHMgaXQgdG8ge0Bjb2RlIGRvY3VtZW50LmJvZHl9IC4KKyAqIEBwYXJh
bSB7c3RyaW5nfSB1cmwgVGhlIHNyYyBmb3IgdGhlIGlmcmFtZS4KKyAqIEByZXR1cm4ge1Byb21p
c2V9IFRoZSBwcm9taXNlIGZvciBzdWNjZXNzL2Vycm9yIGV2ZW50cy4KKyAqLworZnVuY3Rpb24g
cmVxdWVzdFZpYUlmcmFtZSh1cmwsIGFkZGl0aW9uYWxBdHRyaWJ1dGVzKSB7CisgIGNvbnN0IGlm
cmFtZSA9IGNyZWF0ZUVsZW1lbnQoCisgICAgICAiaWZyYW1lIiwKKyAgICAgIE9iamVjdC5hc3Np
Z24oeyJzcmMiOiB1cmx9LCBhZGRpdGlvbmFsQXR0cmlidXRlcyksCisgICAgICBkb2N1bWVudC5i
b2R5LAorICAgICAgZmFsc2UpOworICByZXR1cm4gYmluZEV2ZW50czIod2luZG93LCAibWVzc2Fn
ZSIsIGlmcmFtZSwgImVycm9yIiwgd2luZG93LCAiZXJyb3IiKQorICAgICAgLnRoZW4oZXZlbnQg
PT4geworICAgICAgICAgIGlmIChldmVudC5zb3VyY2UgIT09IGlmcmFtZS5jb250ZW50V2luZG93
KQorICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KG5ldyBFcnJvcignVW5leHBlY3Rl
ZCBldmVudC5zb3VyY2UnKSk7CisgICAgICAgICAgcmV0dXJuIGV2ZW50LmRhdGE7CisgICAgICAg
IH0pOworfQorCisvKioKKyAqIENyZWF0ZXMgYSBuZXcgaW1hZ2UsIGJpbmRzIGxvYWQgYW5kIGVy
cm9yIGV2ZW50cywgc2V0cyB0aGUgc3JjIGF0dHJpYnV0ZSBhbmQKKyAqICAgICBhcHBlbmRzIGl0
IHRvIHtAY29kZSBkb2N1bWVudC5ib2R5fSAuCisgKiBAcGFyYW0ge3N0cmluZ30gdXJsIFRoZSBz
cmMgZm9yIHRoZSBpbWFnZS4KKyAqIEByZXR1cm4ge1Byb21pc2V9IFRoZSBwcm9taXNlIGZvciBz
dWNjZXNzL2Vycm9yIGV2ZW50cy4KKyAqLworZnVuY3Rpb24gcmVxdWVzdFZpYUltYWdlKHVybCwg
YWRkaXRpb25hbEF0dHJpYnV0ZXMpIHsKKyAgY29uc3QgaW1nID0gY3JlYXRlRWxlbWVudCgKKyAg
ICAgICJpbWciLAorICAgICAgLy8gY3Jvc3NPcmlnaW4gYXR0cmlidXRlIGlzIGFkZGVkIHRvIHJl
YWQgdGhlIHBpeGVsIGRhdGEgb2YgdGhlIHJlc3BvbnNlLgorICAgICAgT2JqZWN0LmFzc2lnbih7
InNyYyI6IHVybCwgImNyb3NzT3JpZ2luIjogIkFub255bW91cyJ9LCBhZGRpdGlvbmFsQXR0cmli
dXRlcyksCisgICAgICBkb2N1bWVudC5ib2R5LCB0cnVlKTsKKyAgcmV0dXJuIGltZy5ldmVudFBy
b21pc2UudGhlbigoKSA9PiB3cmFwUmVzdWx0KGRlY29kZUltYWdlRGF0YShpbWcpKSk7Cit9CisK
Ky8vIEhlbHBlciBmb3IgcmVxdWVzdFZpYUltYWdlKCkuCitmdW5jdGlvbiBkZWNvZGVJbWFnZURh
dGEoaW1nKSB7CisgIHZhciBjYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMi
KTsKKyAgdmFyIGNvbnRleHQgPSBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKTsKKyAgY29udGV4dC5k
cmF3SW1hZ2UoaW1nLCAwLCAwKTsKKyAgdmFyIGltZ0RhdGEgPSBjb250ZXh0LmdldEltYWdlRGF0
YSgwLCAwLCBpbWcuY2xpZW50V2lkdGgsIGltZy5jbGllbnRIZWlnaHQpOworICBjb25zdCByZ2Jh
ID0gaW1nRGF0YS5kYXRhOworCisgIGxldCBkZWNvZGVkQnl0ZXMgPSBuZXcgVWludDhDbGFtcGVk
QXJyYXkocmdiYS5sZW5ndGgpOworICBsZXQgZGVjb2RlZExlbmd0aCA9IDA7CisKKyAgZm9yICh2
YXIgaSA9IDA7IGkgKyAxMiA8PSByZ2JhLmxlbmd0aDsgaSArPSAxMikgeworICAgIC8vIEEgc2lu
Z2xlIGJ5dGUgaXMgZW5jb2RlZCBpbiB0aHJlZSBwaXhlbHMuIDggcGl4ZWwgb2N0ZXRzIChhbW9u
ZworICAgIC8vIDkgb2N0ZXRzID0gMyBwaXhlbHMgKiAzIGNoYW5uZWxzKSBhcmUgdXNlZCB0byBl
bmNvZGUgOCBiaXRzLAorICAgIC8vIHRoZSBtb3N0IHNpZ25pZmljYW50IGJpdCBmaXJzdCwgd2hl
cmUgYDBgIGFuZCBgMjU1YCBpbiBwaXhlbCB2YWx1ZXMKKyAgICAvLyByZXByZXNlbnQgYDBgIGFu
ZCBgMWAgaW4gYml0cywgcmVzcGVjdGl2ZWx5LgorICAgIC8vIFRoaXMgZW5jb2RpbmcgaXMgdXNl
ZCB0byBhdm9pZCBlcnJvcnMgZHVlIHRvIGRpZmZlcmVudCBjb2xvciBzcGFjZXMuCisgICAgY29u
c3QgYml0cyA9IFtdOworICAgIGZvciAobGV0IGogPSAwOyBqIDwgMzsgKytqKSB7CisgICAgICBi
aXRzLnB1c2gocmdiYVtpICsgaiAqIDQgKyAwXSk7CisgICAgICBiaXRzLnB1c2gocmdiYVtpICsg
aiAqIDQgKyAxXSk7CisgICAgICBiaXRzLnB1c2gocmdiYVtpICsgaiAqIDQgKyAyXSk7CisgICAg
ICAvLyByZ2JhW2kgKyBqICogNCArIDNdOiBTa2lwIGFscGhhIGNoYW5uZWwuCisgICAgfQorICAg
IC8vIFRoZSBsYXN0IG9uZSBlbGVtZW50IGlzIG5vdCB1c2VkLgorICAgIGJpdHMucG9wKCk7CisK
KyAgICAvLyBEZWNvZGUgYSBzaW5nbGUgYnl0ZS4KKyAgICBsZXQgYnl0ZSA9IDA7CisgICAgZm9y
IChsZXQgaiA9IDA7IGogPCA4OyArK2opIHsKKyAgICAgIGJ5dGUgPDw9IDE7CisgICAgICBpZiAo
Yml0c1tqXSA+PSAxMjgpCisgICAgICAgIGJ5dGUgfD0gMTsKKyAgICB9CisKKyAgICAvLyBaZXJv
IGlzIHRoZSBzdHJpbmcgdGVybWluYXRvci4KKyAgICBpZiAoYnl0ZSA9PSAwKQorICAgICAgYnJl
YWs7CisKKyAgICBkZWNvZGVkQnl0ZXNbZGVjb2RlZExlbmd0aCsrXSA9IGJ5dGU7CisgIH0KKwor
ICAvLyBSZW1vdmUgdHJhaWxpbmcgbnVsbHMgZnJvbSBkYXRhLgorICBkZWNvZGVkQnl0ZXMgPSBk
ZWNvZGVkQnl0ZXMuc3ViYXJyYXkoMCwgZGVjb2RlZExlbmd0aCk7CisgIHZhciBzdHJpbmdfZGF0
YSA9IChuZXcgVGV4dERlY29kZXIoImFzY2lpIikpLmRlY29kZShkZWNvZGVkQnl0ZXMpOworCisg
IHJldHVybiBKU09OLnBhcnNlKHN0cmluZ19kYXRhKTsKK30KKworLyoqCisgKiBJbml0aWF0ZXMg
YSBuZXcgWEhSIEdFVCByZXF1ZXN0IHRvIHByb3ZpZGVkIFVSTC4KKyAqIEBwYXJhbSB7c3RyaW5n
fSB1cmwgVGhlIGVuZHBvaW50IFVSTCBmb3IgdGhlIFhIUi4KKyAqIEByZXR1cm4ge1Byb21pc2V9
IFRoZSBwcm9taXNlIGZvciBzdWNjZXNzL2Vycm9yIGV2ZW50cy4KKyAqLworZnVuY3Rpb24gcmVx
dWVzdFZpYVhocih1cmwpIHsKKyAgcmV0dXJuIHhoclJlcXVlc3QodXJsKS50aGVuKHJlc3VsdCA9
PiB3cmFwUmVzdWx0KHJlc3VsdCkpOworfQorCisvKioKKyAqIEluaXRpYXRlcyBhIG5ldyBHRVQg
cmVxdWVzdCB0byBwcm92aWRlZCBVUkwgdmlhIHRoZSBGZXRjaCBBUEkuCisgKiBAcGFyYW0ge3N0
cmluZ30gdXJsIFRoZSBlbmRwb2ludCBVUkwgZm9yIHRoZSBGZXRjaC4KKyAqIEByZXR1cm4ge1By
b21pc2V9IFRoZSBwcm9taXNlIGZvciBzdWNjZXNzL2Vycm9yIGV2ZW50cy4KKyAqLworZnVuY3Rp
b24gcmVxdWVzdFZpYUZldGNoKHVybCkgeworICByZXR1cm4gZmV0Y2godXJsKQorICAgIC50aGVu
KHJlcyA9PiByZXMuanNvbigpKQorICAgIC50aGVuKGogPT4gd3JhcFJlc3VsdChqKSk7Cit9CisK
K2Z1bmN0aW9uIGRlZGljYXRlZFdvcmtlclVybFRoYXRGZXRjaGVzKHVybCkgeworICByZXR1cm4g
YGRhdGE6dGV4dC9qYXZhc2NyaXB0LAorICAgIGZldGNoKCcke3VybH0nKQorICAgICAgLnRoZW4o
ciA9PiByLmpzb24oKSkKKyAgICAgIC50aGVuKGogPT4gcG9zdE1lc3NhZ2UoaikpCisgICAgICAu
Y2F0Y2goKGUpID0+IHBvc3RNZXNzYWdlKGUubWVzc2FnZSkpO2A7Cit9CisKK2Z1bmN0aW9uIHdv
cmtlclVybFRoYXRJbXBvcnRzKHVybCkgeworICByZXR1cm4gYGRhdGE6dGV4dC9qYXZhc2NyaXB0
LGltcG9ydCAnJHt1cmx9JztgOworfQorCisvKioKKyAqIENyZWF0ZXMgYSBuZXcgV29ya2VyLCBi
aW5kcyBtZXNzYWdlIGFuZCBlcnJvciBldmVudHMgd3JhcHBpbmcgdGhlbSBpbnRvLgorICogICAg
IHtAY29kZSB3b3JrZXIuZXZlbnRQcm9taXNlfSBhbmQgcG9zdHMgYW4gZW1wdHkgc3RyaW5nIG1l
c3NhZ2UgdG8gc3RhcnQKKyAqICAgICB0aGUgd29ya2VyLgorICogQHBhcmFtIHtzdHJpbmd9IHVy
bCBUaGUgZW5kcG9pbnQgVVJMIGZvciB0aGUgd29ya2VyIHNjcmlwdC4KKyAqIEBwYXJhbSB7b2Jq
ZWN0fSBvcHRpb25zIFRoZSBvcHRpb25zIGZvciBXb3JrZXIgY29uc3RydWN0b3IuCisgKiBAcmV0
dXJuIHtQcm9taXNlfSBUaGUgcHJvbWlzZSBmb3Igc3VjY2Vzcy9lcnJvciBldmVudHMuCisgKi8K
K2Z1bmN0aW9uIHJlcXVlc3RWaWFEZWRpY2F0ZWRXb3JrZXIodXJsLCBvcHRpb25zKSB7CisgIHZh
ciB3b3JrZXI7CisgIHRyeSB7CisgICAgd29ya2VyID0gbmV3IFdvcmtlcih1cmwsIG9wdGlvbnMp
OworICB9IGNhdGNoIChlKSB7CisgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KGUpOworICB9Cisg
IHdvcmtlci5wb3N0TWVzc2FnZSgnJyk7CisgIHJldHVybiBiaW5kRXZlbnRzMih3b3JrZXIsICJt
ZXNzYWdlIiwgd29ya2VyLCAiZXJyb3IiKQorICAgIC50aGVuKGV2ZW50ID0+IHdyYXBSZXN1bHQo
ZXZlbnQuZGF0YSkpOworfQorCitmdW5jdGlvbiByZXF1ZXN0VmlhU2hhcmVkV29ya2VyKHVybCkg
eworICB2YXIgd29ya2VyOworICB0cnkgeworICAgIHdvcmtlciA9IG5ldyBTaGFyZWRXb3JrZXIo
dXJsKTsKKyAgfSBjYXRjaChlKSB7CisgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KGUpOworICB9
CisgIGNvbnN0IHByb21pc2UgPSBiaW5kRXZlbnRzMih3b3JrZXIucG9ydCwgIm1lc3NhZ2UiLCB3
b3JrZXIsICJlcnJvciIpCisgICAgLnRoZW4oZXZlbnQgPT4gd3JhcFJlc3VsdChldmVudC5kYXRh
KSk7CisgIHdvcmtlci5wb3J0LnN0YXJ0KCk7CisgIHJldHVybiBwcm9taXNlOworfQorCisvLyBS
ZXR1cm5zIGEgcmVmZXJlbmNlIHRvIGEgd29ya2xldCBvYmplY3QgY29ycmVzcG9uZGluZyB0byBh
IGdpdmVuIHR5cGUuCitmdW5jdGlvbiBnZXRfd29ya2xldCh0eXBlKSB7CisgIGlmICh0eXBlID09
ICdhbmltYXRpb24nKQorICAgIHJldHVybiBDU1MuYW5pbWF0aW9uV29ya2xldDsKKyAgaWYgKHR5
cGUgPT0gJ2xheW91dCcpCisgICAgcmV0dXJuIENTUy5sYXlvdXRXb3JrbGV0OworICBpZiAodHlw
ZSA9PSAncGFpbnQnKQorICAgIHJldHVybiBDU1MucGFpbnRXb3JrbGV0OworICBpZiAodHlwZSA9
PSAnYXVkaW8nKQorICAgIHJldHVybiBuZXcgT2ZmbGluZUF1ZGlvQ29udGV4dCgyLDQ0MTAwKjQw
LDQ0MTAwKS5hdWRpb1dvcmtsZXQ7CisKKyAgdGhyb3cgbmV3IEVycm9yKCd1bmtub3duIHdvcmts
ZXQgdHlwZSBpcyBwYXNzZWQuJyk7Cit9CisKK2Z1bmN0aW9uIHJlcXVlc3RWaWFXb3JrbGV0KHR5
cGUsIHVybCkgeworICB0cnkgeworICAgIHJldHVybiBnZXRfd29ya2xldCh0eXBlKS5hZGRNb2R1
bGUodXJsKTsKKyAgfSBjYXRjaCAoZSkgeworICAgIHJldHVybiBQcm9taXNlLnJlamVjdChlKTsK
KyAgfQorfQorCisvKioKKyAqIFNldHMgdGhlIGhyZWYgYXR0cmlidXRlIG9uIGEgbmF2aWdhYmxl
IERPTSBlbGVtZW50IGFuZCBwZXJmb3JtcyBhIG5hdmlnYXRpb24KKyAqICAgICBieSBjbGlja2lu
ZyBpdC4gVG8gYXZvaWQgbmF2aWdhdGluZyBhd2F5IGZyb20gdGhlIGN1cnJlbnQgZXhlY3V0aW9u
CisgKiAgICAgY29udGV4dCwgYSB0YXJnZXQgYXR0cmlidXRlIGlzIHNldCB0byBwb2ludCB0byBh
IG5ldyBoZWxwZXIgaWZyYW1lLgorICogQHBhcmFtIHtET01FbGVtZW50fSBuYXZpZ2FibGVFbGVt
ZW50IFRoZSBuYXZpZ2FibGUgRE9NRWxlbWVudAorICogQHBhcmFtIHtzdHJpbmd9IHVybCBUaGUg
aHJlZiBmb3IgdGhlIG5hdmlnYWJsZSBlbGVtZW50LgorICogQHJldHVybiB7UHJvbWlzZX0gVGhl
IHByb21pc2UgZm9yIHN1Y2Nlc3MvZXJyb3IgZXZlbnRzLgorICovCitmdW5jdGlvbiByZXF1ZXN0
VmlhTmF2aWdhYmxlKG5hdmlnYWJsZUVsZW1lbnQsIHVybCkgeworICB2YXIgaWZyYW1lID0gY3Jl
YXRlSGVscGVySWZyYW1lKGd1aWQoKSwgZmFsc2UpOworICBzZXRBdHRyaWJ1dGVzKG5hdmlnYWJs
ZUVsZW1lbnQsCisgICAgICAgICAgICAgICAgeyJocmVmIjogdXJsLAorICAgICAgICAgICAgICAg
ICAidGFyZ2V0IjogaWZyYW1lLm5hbWV9KTsKKworICBjb25zdCBwcm9taXNlID0KKyAgICBiaW5k
RXZlbnRzMih3aW5kb3csICJtZXNzYWdlIiwgaWZyYW1lLCAiZXJyb3IiLCB3aW5kb3csICJlcnJv
ciIpCisgICAgICAudGhlbihldmVudCA9PiB7CisgICAgICAgICAgaWYgKGV2ZW50LnNvdXJjZSAh
PT0gaWZyYW1lLmNvbnRlbnRXaW5kb3cpCisgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWpl
Y3QobmV3IEVycm9yKCdVbmV4cGVjdGVkIGV2ZW50LnNvdXJjZScpKTsKKyAgICAgICAgICByZXR1
cm4gZXZlbnQuZGF0YTsKKyAgICAgICAgfSk7CisgIG5hdmlnYWJsZUVsZW1lbnQuY2xpY2soKTsK
KyAgcmV0dXJuIHByb21pc2U7Cit9CisKKy8qKgorICogQ3JlYXRlcyBhIG5ldyBhbmNob3IgZWxl
bWVudCwgYXBwZW5kcyBpdCB0byB7QGNvZGUgZG9jdW1lbnQuYm9keX0gYW5kCisgKiAgICAgcGVy
Zm9ybXMgdGhlIG5hdmlnYXRpb24uCisgKiBAcGFyYW0ge3N0cmluZ30gdXJsIFRoZSBVUkwgdG8g
bmF2aWdhdGUgdG8uCisgKiBAcmV0dXJuIHtQcm9taXNlfSBUaGUgcHJvbWlzZSBmb3Igc3VjY2Vz
cy9lcnJvciBldmVudHMuCisgKi8KK2Z1bmN0aW9uIHJlcXVlc3RWaWFBbmNob3IodXJsLCBhZGRp
dGlvbmFsQXR0cmlidXRlcykgeworICB2YXIgYSA9IGNyZWF0ZUVsZW1lbnQoCisgICAgICAiYSIs
CisgICAgICBPYmplY3QuYXNzaWduKHsiaW5uZXJIVE1MIjogIkxpbmsgdG8gcmVzb3VyY2UifSwg
YWRkaXRpb25hbEF0dHJpYnV0ZXMpLAorICAgICAgZG9jdW1lbnQuYm9keSk7CisKKyAgcmV0dXJu
IHJlcXVlc3RWaWFOYXZpZ2FibGUoYSwgdXJsKTsKK30KKworLyoqCisgKiBDcmVhdGVzIGEgbmV3
IGFyZWEgZWxlbWVudCwgYXBwZW5kcyBpdCB0byB7QGNvZGUgZG9jdW1lbnQuYm9keX0gYW5kIHBl
cmZvcm1zCisgKiAgICAgdGhlIG5hdmlnYXRpb24uCisgKiBAcGFyYW0ge3N0cmluZ30gdXJsIFRo
ZSBVUkwgdG8gbmF2aWdhdGUgdG8uCisgKiBAcmV0dXJuIHtQcm9taXNlfSBUaGUgcHJvbWlzZSBm
b3Igc3VjY2Vzcy9lcnJvciBldmVudHMuCisgKi8KK2Z1bmN0aW9uIHJlcXVlc3RWaWFBcmVhKHVy
bCwgYWRkaXRpb25hbEF0dHJpYnV0ZXMpIHsKKyAgdmFyIGFyZWEgPSBjcmVhdGVFbGVtZW50KAor
ICAgICAgImFyZWEiLAorICAgICAgT2JqZWN0LmFzc2lnbih7fSwgYWRkaXRpb25hbEF0dHJpYnV0
ZXMpLAorICAgICAgZG9jdW1lbnQuYm9keSk7CisKKyAgLy8gVE9ETyhrcmlzdGlqYW5idXJuaWsp
OiBBcHBlbmQgdG8gbWFwIGFuZCBhZGQgaW1hZ2UuCisgIHJldHVybiByZXF1ZXN0VmlhTmF2aWdh
YmxlKGFyZWEsIHVybCk7Cit9CisKKy8qKgorICogQ3JlYXRlcyBhIG5ldyBzY3JpcHQgZWxlbWVu
dCwgc2V0cyB0aGUgc3JjIHRvIHVybCwgYW5kIGFwcGVuZHMgaXQgdG8KKyAqICAgICB7QGNvZGUg
ZG9jdW1lbnQuYm9keX0uCisgKiBAcGFyYW0ge3N0cmluZ30gdXJsIFRoZSBzcmMgVVJMLgorICog
QHJldHVybiB7UHJvbWlzZX0gVGhlIHByb21pc2UgZm9yIHN1Y2Nlc3MvZXJyb3IgZXZlbnRzLgor
ICovCitmdW5jdGlvbiByZXF1ZXN0VmlhU2NyaXB0KHVybCwgYWRkaXRpb25hbEF0dHJpYnV0ZXMp
IHsKKyAgY29uc3Qgc2NyaXB0ID0gY3JlYXRlRWxlbWVudCgKKyAgICAgICJzY3JpcHQiLAorICAg
ICAgT2JqZWN0LmFzc2lnbih7InNyYyI6IHVybH0sIGFkZGl0aW9uYWxBdHRyaWJ1dGVzKSwKKyAg
ICAgIGRvY3VtZW50LmJvZHksCisgICAgICBmYWxzZSk7CisKKyAgcmV0dXJuIGJpbmRFdmVudHMy
KHdpbmRvdywgIm1lc3NhZ2UiLCBzY3JpcHQsICJlcnJvciIsIHdpbmRvdywgImVycm9yIikKKyAg
ICAudGhlbihldmVudCA9PiB3cmFwUmVzdWx0KGV2ZW50LmRhdGEpKTsKK30KKworLyoqCisgKiBD
cmVhdGVzIGEgbmV3IGZvcm0gZWxlbWVudCwgc2V0cyBhdHRyaWJ1dGVzLCBhcHBlbmRzIGl0IHRv
CisgKiAgICAge0Bjb2RlIGRvY3VtZW50LmJvZHl9IGFuZCBzdWJtaXRzIHRoZSBmb3JtLgorICog
QHBhcmFtIHtzdHJpbmd9IHVybCBUaGUgVVJMIHRvIHN1Ym1pdCB0by4KKyAqIEByZXR1cm4ge1By
b21pc2V9IFRoZSBwcm9taXNlIGZvciBzdWNjZXNzL2Vycm9yIGV2ZW50cy4KKyAqLworZnVuY3Rp
b24gcmVxdWVzdFZpYUZvcm0odXJsKSB7CisgIHZhciBpZnJhbWUgPSBjcmVhdGVIZWxwZXJJZnJh
bWUoZ3VpZCgpKTsKKyAgdmFyIGZvcm0gPSBjcmVhdGVFbGVtZW50KCJmb3JtIiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHsiYWN0aW9uIjogdXJsLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJtZXRob2QiOiAiUE9TVCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgInRh
cmdldCI6IGlmcmFtZS5uYW1lfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50
LmJvZHkpOworICBiaW5kRXZlbnRzKGlmcmFtZSk7CisgIGZvcm0uc3VibWl0KCk7CisKKyAgcmV0
dXJuIGlmcmFtZS5ldmVudFByb21pc2U7Cit9CisKKy8qKgorICogQ3JlYXRlcyBhIG5ldyBsaW5r
IGVsZW1lbnQgZm9yIGEgc3R5bGVzaGVldCwgYmluZHMgbG9hZCBhbmQgZXJyb3IgZXZlbnRzLAor
ICogICAgIHNldHMgdGhlIGhyZWYgdG8gdXJsIGFuZCBhcHBlbmRzIGl0IHRvIHtAY29kZSBkb2N1
bWVudC5oZWFkfS4KKyAqIEBwYXJhbSB7c3RyaW5nfSB1cmwgVGhlIFVSTCBmb3IgYSBzdHlsZXNo
ZWV0LgorICogQHJldHVybiB7UHJvbWlzZX0gVGhlIHByb21pc2UgZm9yIHN1Y2Nlc3MvZXJyb3Ig
ZXZlbnRzLgorICovCitmdW5jdGlvbiByZXF1ZXN0VmlhTGlua1N0eWxlc2hlZXQodXJsKSB7Cisg
IHJldHVybiBjcmVhdGVSZXF1ZXN0VmlhRWxlbWVudCgibGluayIsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB7InJlbCI6ICJzdHlsZXNoZWV0IiwgImhyZWYiOiB1cmx9LAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuaGVhZCk7Cit9CisKKy8qKgor
ICogQ3JlYXRlcyBhIG5ldyBsaW5rIGVsZW1lbnQgZm9yIGEgcHJlZmV0Y2gsIGJpbmRzIGxvYWQg
YW5kIGVycm9yIGV2ZW50cywgc2V0cworICogICAgIHRoZSBocmVmIHRvIHVybCBhbmQgYXBwZW5k
cyBpdCB0byB7QGNvZGUgZG9jdW1lbnQuaGVhZH0uCisgKiBAcGFyYW0ge3N0cmluZ30gdXJsIFRo
ZSBVUkwgb2YgYSByZXNvdXJjZSB0byBwcmVmZXRjaC4KKyAqIEByZXR1cm4ge1Byb21pc2V9IFRo
ZSBwcm9taXNlIGZvciBzdWNjZXNzL2Vycm9yIGV2ZW50cy4KKyAqLworZnVuY3Rpb24gcmVxdWVz
dFZpYUxpbmtQcmVmZXRjaCh1cmwpIHsKKyAgdmFyIGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCdsaW5rJyk7CisgIGlmIChsaW5rLnJlbExpc3QgJiYgbGluay5yZWxMaXN0LnN1cHBvcnRz
ICYmIGxpbmsucmVsTGlzdC5zdXBwb3J0cygicHJlZmV0Y2giKSkgeworICAgIHJldHVybiBjcmVh
dGVSZXF1ZXN0VmlhRWxlbWVudCgibGluayIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHsicmVsIjogInByZWZldGNoIiwgImhyZWYiOiB1cmx9LAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5oZWFkKTsKKyAgfSBlbHNlIHsKKyAgICByZXR1
cm4gUHJvbWlzZS5yZWplY3QoIlRoaXMgYnJvd3NlciBkb2VzIG5vdCBzdXBwb3J0ICdwcmVmZXRj
aCcuIik7CisgIH0KK30KKworLyoqCisgKiBJbml0aWF0ZXMgYSBuZXcgYmVhY29uIHJlcXVlc3Qu
CisgKiBAcGFyYW0ge3N0cmluZ30gdXJsIFRoZSBVUkwgb2YgYSByZXNvdXJjZSB0byBwcmVmZXRj
aC4KKyAqIEByZXR1cm4ge1Byb21pc2V9IFRoZSBwcm9taXNlIGZvciBzdWNjZXNzL2Vycm9yIGV2
ZW50cy4KKyAqLworYXN5bmMgZnVuY3Rpb24gcmVxdWVzdFZpYVNlbmRCZWFjb24odXJsKSB7Cisg
IGZ1bmN0aW9uIHdhaXQobXMpIHsKKyAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiBz
dGVwX3RpbWVvdXQocmVzb2x2ZSwgbXMpKTsKKyAgfQorICBpZiAoIW5hdmlnYXRvci5zZW5kQmVh
Y29uKHVybCkpIHsKKyAgICAvLyBJZiBtaXhlZC1jb250ZW50IGNoZWNrIGZhaWxzLCBpdCBzaG91
bGQgcmV0dXJuIGZhbHNlLgorICAgIHRocm93IG5ldyBFcnJvcignc2VuZEJlYWNvbigpIGZhaWxz
LicpOworICB9CisgIC8vIFdlIGRvbid0IGhhdmUgYSBtZWFucyB0byBzZWUgdGhlIHJlc3VsdCBv
ZiBzZW5kQmVhY29uKCkgcmVxdWVzdAorICAvLyBmb3Igc3VyZS4gTGV0J3Mgd2FpdCBmb3IgYSB3
aGlsZSBhbmQgbGV0IHRoZSBnZW5lcmljIHRlc3QgZnVuY3Rpb24KKyAgLy8gYXNrIHRoZSBzZXJ2
ZXIgZm9yIHRoZSByZXN1bHQuCisgIGF3YWl0IHdhaXQoNTAwKTsKKyAgcmV0dXJuICdhbGxvd2Vk
JzsKK30KKworLyoqCisgKiBDcmVhdGVzIGEgbmV3IG1lZGlhIGVsZW1lbnQgd2l0aCBhIGNoaWxk
IHNvdXJjZSBlbGVtZW50LCBiaW5kcyBsb2FkZWRkYXRhIGFuZAorICogICAgIGVycm9yIGV2ZW50
cywgc2V0cyBhdHRyaWJ1dGVzIGFuZCBhcHBlbmRzIHRvIGRvY3VtZW50LmJvZHkuCisgKiBAcGFy
YW0ge3N0cmluZ30gdHlwZSBUaGUgdHlwZSBvZiB0aGUgbWVkaWEgZWxlbWVudCAoYXVkaW8vdmlk
ZW8vcGljdHVyZSkuCisgKiBAcGFyYW0ge29iamVjdH0gbWVkaWFfYXR0cnMgVGhlIGF0dHJpYnV0
ZXMgZm9yIHRoZSBtZWRpYSBlbGVtZW50LgorICogQHBhcmFtIHtvYmplY3R9IHNvdXJjZV9hdHRy
cyBUaGUgYXR0cmlidXRlcyBmb3IgdGhlIGNoaWxkIHNvdXJjZSBlbGVtZW50LgorICogQHJldHVy
biB7RE9NRWxlbWVudH0gVGhlIG5ld2x5IGNyZWF0ZWQgbWVkaWEgZWxlbWVudC4KKyAqLworZnVu
Y3Rpb24gY3JlYXRlTWVkaWFFbGVtZW50KHR5cGUsIG1lZGlhX2F0dHJzLCBzb3VyY2VfYXR0cnMp
IHsKKyAgdmFyIG1lZGlhRWxlbWVudCA9IGNyZWF0ZUVsZW1lbnQodHlwZSwge30pOworCisgIHZh
ciBzb3VyY2VFbGVtZW50ID0gY3JlYXRlRWxlbWVudCgic291cmNlIiwge30pOworCisgIG1lZGlh
RWxlbWVudC5ldmVudFByb21pc2UgPSBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWpl
Y3QpIHsKKyAgICBtZWRpYUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibG9hZGVkZGF0YSIsIGZ1
bmN0aW9uIChlKSB7CisgICAgICByZXNvbHZlKGUpOworICAgIH0pOworCisgICAgLy8gU2FmYXJp
IGRvZXNuJ3QgZmlyZSBhbiBgZXJyb3JgIGV2ZW50IHdoZW4gYmxvY2tpbmcgbWl4ZWQgY29udGVu
dC4KKyAgICBtZWRpYUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigic3RhbGxlZCIsIGZ1bmN0aW9u
KGUpIHsKKyAgICAgIHJlamVjdChlKTsKKyAgICB9KTsKKworICAgIHNvdXJjZUVsZW1lbnQuYWRk
RXZlbnRMaXN0ZW5lcigiZXJyb3IiLCBmdW5jdGlvbihlKSB7CisgICAgICByZWplY3QoZSk7Cisg
ICAgfSk7CisgIH0pOworCisgIHNldEF0dHJpYnV0ZXMobWVkaWFFbGVtZW50LCBtZWRpYV9hdHRy
cyk7CisgIHNldEF0dHJpYnV0ZXMoc291cmNlRWxlbWVudCwgc291cmNlX2F0dHJzKTsKKworICBt
ZWRpYUVsZW1lbnQuYXBwZW5kQ2hpbGQoc291cmNlRWxlbWVudCk7CisgIGRvY3VtZW50LmJvZHku
YXBwZW5kQ2hpbGQobWVkaWFFbGVtZW50KTsKKworICByZXR1cm4gbWVkaWFFbGVtZW50OworfQor
CisvKioKKyAqIENyZWF0ZXMgYSBuZXcgdmlkZW8gZWxlbWVudCwgYmluZHMgbG9hZGVkZGF0YSBh
bmQgZXJyb3IgZXZlbnRzLCBzZXRzCisgKiAgICAgYXR0cmlidXRlcyBhbmQgc291cmNlIFVSTCBh
bmQgYXBwZW5kcyB0byB7QGNvZGUgZG9jdW1lbnQuYm9keX0uCisgKiBAcGFyYW0ge3N0cmluZ30g
dXJsIFRoZSBVUkwgb2YgdGhlIHZpZGVvLgorICogQHJldHVybiB7UHJvbWlzZX0gVGhlIHByb21p
c2UgZm9yIHN1Y2Nlc3MvZXJyb3IgZXZlbnRzLgorICovCitmdW5jdGlvbiByZXF1ZXN0VmlhVmlk
ZW8odXJsKSB7CisgIHJldHVybiBjcmVhdGVNZWRpYUVsZW1lbnQoInZpZGVvIiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB7fSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB7InNy
YyI6IHVybH0pLmV2ZW50UHJvbWlzZTsKK30KKworLyoqCisgKiBDcmVhdGVzIGEgbmV3IGF1ZGlv
IGVsZW1lbnQsIGJpbmRzIGxvYWRlZGRhdGEgYW5kIGVycm9yIGV2ZW50cywgc2V0cworICogICAg
IGF0dHJpYnV0ZXMgYW5kIHNvdXJjZSBVUkwgYW5kIGFwcGVuZHMgdG8ge0Bjb2RlIGRvY3VtZW50
LmJvZHl9LgorICogQHBhcmFtIHtzdHJpbmd9IHVybCBUaGUgVVJMIG9mIHRoZSBhdWRpby4KKyAq
IEByZXR1cm4ge1Byb21pc2V9IFRoZSBwcm9taXNlIGZvciBzdWNjZXNzL2Vycm9yIGV2ZW50cy4K
KyAqLworZnVuY3Rpb24gcmVxdWVzdFZpYUF1ZGlvKHVybCkgeworICByZXR1cm4gY3JlYXRlTWVk
aWFFbGVtZW50KCJhdWRpbyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAge30sCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgeyJ0eXBlIjogImF1ZGlvL3dhdiIsICJzcmMiOiB1cmx9
KS5ldmVudFByb21pc2U7Cit9CisKKy8qKgorICogQ3JlYXRlcyBhIG5ldyBwaWN0dXJlIGVsZW1l
bnQsIGJpbmRzIGxvYWRlZGRhdGEgYW5kIGVycm9yIGV2ZW50cywgc2V0cworICogICAgIGF0dHJp
YnV0ZXMgYW5kIHNvdXJjZSBVUkwgYW5kIGFwcGVuZHMgdG8ge0Bjb2RlIGRvY3VtZW50LmJvZHl9
LiBBbHNvCisgKiAgICAgY3JlYXRlcyBuZXcgaW1hZ2UgZWxlbWVudCBhcHBlbmRpbmcgaXQgdG8g
dGhlIHBpY3R1cmUKKyAqIEBwYXJhbSB7c3RyaW5nfSB1cmwgVGhlIFVSTCBvZiB0aGUgaW1hZ2Ug
Zm9yIHRoZSBzb3VyY2UgYW5kIGltYWdlIGVsZW1lbnRzLgorICogQHJldHVybiB7UHJvbWlzZX0g
VGhlIHByb21pc2UgZm9yIHN1Y2Nlc3MvZXJyb3IgZXZlbnRzLgorICovCitmdW5jdGlvbiByZXF1
ZXN0VmlhUGljdHVyZSh1cmwpIHsKKyAgdmFyIHBpY3R1cmUgPSBjcmVhdGVNZWRpYUVsZW1lbnQo
InBpY3R1cmUiLCB7fSwgeyJzcmNzZXQiOiB1cmwsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAidHlwZSI6ICJpbWFnZS9wbmcifSk7CisgIHJldHVybiBj
cmVhdGVSZXF1ZXN0VmlhRWxlbWVudCgiaW1nIiwgeyJzcmMiOiB1cmx9LCBwaWN0dXJlKTsKK30K
KworLyoqCisgKiBDcmVhdGVzIGEgbmV3IG9iamVjdCBlbGVtZW50LCBiaW5kcyBsb2FkIGFuZCBl
cnJvciBldmVudHMsIHNldHMgdGhlIGRhdGEgdG8KKyAqICAgICB1cmwsIGFuZCBhcHBlbmRzIGl0
IHRvIHtAY29kZSBkb2N1bWVudC5ib2R5fS4KKyAqIEBwYXJhbSB7c3RyaW5nfSB1cmwgVGhlIGRh
dGEgVVJMLgorICogQHJldHVybiB7UHJvbWlzZX0gVGhlIHByb21pc2UgZm9yIHN1Y2Nlc3MvZXJy
b3IgZXZlbnRzLgorICovCitmdW5jdGlvbiByZXF1ZXN0VmlhT2JqZWN0KHVybCkgeworICByZXR1
cm4gY3JlYXRlUmVxdWVzdFZpYUVsZW1lbnQoIm9iamVjdCIsIHsiZGF0YSI6IHVybCwgInR5cGUi
OiAidGV4dC9odG1sIn0sIGRvY3VtZW50LmJvZHkpOworfQorCisvKioKKyAqIENyZWF0ZXMgYSBu
ZXcgV2ViU29ja2V0IHBvaW50aW5nIHRvIHtAY29kZSB1cmx9IGFuZCBzZW5kcyBhIG1lc3NhZ2Ug
c3RyaW5nCisgKiAiZWNobyIuIFRoZSB7QGNvZGUgbWVzc2FnZX0gYW5kIHtAY29kZSBlcnJvcn0g
ZXZlbnRzIGFyZSB0cmlnZ2VyaW5nIHRoZQorICogcmV0dXJuZWQgcHJvbWlzZSByZXNvbHZlL3Jl
amVjdCBldmVudHMuCisgKiBAcGFyYW0ge3N0cmluZ30gdXJsIFRoZSBVUkwgZm9yIFdlYlNvY2tl
dCB0byBjb25uZWN0IHRvLgorICogQHJldHVybiB7UHJvbWlzZX0gVGhlIHByb21pc2UgZm9yIHN1
Y2Nlc3MvZXJyb3IgZXZlbnRzLgorICovCitmdW5jdGlvbiByZXF1ZXN0VmlhV2ViU29ja2V0KHVy
bCkgeworICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7Cisg
ICAgdmFyIHdlYnNvY2tldCA9IG5ldyBXZWJTb2NrZXQodXJsKTsKKworICAgIHdlYnNvY2tldC5h
ZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgZnVuY3Rpb24oZSkgeworICAgICAgcmVzb2x2ZShl
LmRhdGEpOworICAgIH0pOworCisgICAgd2Vic29ja2V0LmFkZEV2ZW50TGlzdGVuZXIoIm9wZW4i
LCBmdW5jdGlvbihlKSB7CisgICAgICB3ZWJzb2NrZXQuc2VuZCgiZWNobyIpOworICAgIH0pOwor
CisgICAgd2Vic29ja2V0LmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIiwgZnVuY3Rpb24oZSkgewor
ICAgICAgcmVqZWN0KGUpCisgICAgfSk7CisgIH0pCisgIC50aGVuKGRhdGEgPT4geworICAgICAg
cmV0dXJuIEpTT04ucGFyc2UoZGF0YSk7CisgICAgfSk7Cit9CisKKy8qKgorICBAdHlwZWRlZiBT
dWJyZXNvdXJjZVR5cGUKKyAgQHR5cGUge3N0cmluZ30KKworICBSZXByZXNlbnRzIGhvdyBhIHN1
YnJlc291cmNlIGlzIHNlbnQuCisgIFRoZSBrZXlzIG9mIGBzdWJyZXNvdXJjZU1hcGAgYmVsb3cg
YXJlIHRoZSB2YWxpZCB2YWx1ZXMuCisqLworCisvLyBTdWJyZXNvdXJjZSBwYXRocyBhbmQgaW52
b2tlcnMuCitjb25zdCBzdWJyZXNvdXJjZU1hcCA9IHsKKyAgImEtdGFnIjogeworICAgIHBhdGg6
ICIvY29tbW9uL3NlY3VyaXR5LWZlYXR1cmVzL3N1YnJlc291cmNlL2RvY3VtZW50LnB5IiwKKyAg
ICBpbnZva2VyOiByZXF1ZXN0VmlhQW5jaG9yLAorICB9LAorICAiYXJlYS10YWciOiB7CisgICAg
cGF0aDogIi9jb21tb24vc2VjdXJpdHktZmVhdHVyZXMvc3VicmVzb3VyY2UvZG9jdW1lbnQucHki
LAorICAgIGludm9rZXI6IHJlcXVlc3RWaWFBcmVhLAorICB9LAorICAiYXVkaW8tdGFnIjogewor
ICAgIHBhdGg6ICIvY29tbW9uL3NlY3VyaXR5LWZlYXR1cmVzL3N1YnJlc291cmNlL2F1ZGlvLnB5
IiwKKyAgICBpbnZva2VyOiByZXF1ZXN0VmlhQXVkaW8sCisgIH0sCisgICJiZWFjb24iOiB7Cisg
ICAgcGF0aDogIi9jb21tb24vc2VjdXJpdHktZmVhdHVyZXMvc3VicmVzb3VyY2UvZW1wdHkucHki
LAorICAgIGludm9rZXI6IHJlcXVlc3RWaWFTZW5kQmVhY29uLAorICB9LAorICAiZmV0Y2giOiB7
CisgICAgcGF0aDogIi9jb21tb24vc2VjdXJpdHktZmVhdHVyZXMvc3VicmVzb3VyY2UveGhyLnB5
IiwKKyAgICBpbnZva2VyOiByZXF1ZXN0VmlhRmV0Y2gsCisgIH0sCisgICJmb3JtLXRhZyI6IHsK
KyAgICBwYXRoOiAiL2NvbW1vbi9zZWN1cml0eS1mZWF0dXJlcy9zdWJyZXNvdXJjZS9lbXB0eS5w
eSIsCisgICAgaW52b2tlcjogcmVxdWVzdFZpYUZvcm0sCisgIH0sCisgICJpZnJhbWUtdGFnIjog
eworICAgIHBhdGg6ICIvY29tbW9uL3NlY3VyaXR5LWZlYXR1cmVzL3N1YnJlc291cmNlL2RvY3Vt
ZW50LnB5IiwKKyAgICBpbnZva2VyOiByZXF1ZXN0VmlhSWZyYW1lLAorICB9LAorICAiaW1nLXRh
ZyI6IHsKKyAgICBwYXRoOiAiL2NvbW1vbi9zZWN1cml0eS1mZWF0dXJlcy9zdWJyZXNvdXJjZS9p
bWFnZS5weSIsCisgICAgaW52b2tlcjogcmVxdWVzdFZpYUltYWdlLAorICB9LAorICAibGluay1j
c3MtdGFnIjogeworICAgIHBhdGg6ICIvY29tbW9uL3NlY3VyaXR5LWZlYXR1cmVzL3N1YnJlc291
cmNlL2VtcHR5LnB5IiwKKyAgICBpbnZva2VyOiByZXF1ZXN0VmlhTGlua1N0eWxlc2hlZXQsCisg
IH0sCisgICJsaW5rLXByZWZldGNoLXRhZyI6IHsKKyAgICBwYXRoOiAiL2NvbW1vbi9zZWN1cml0
eS1mZWF0dXJlcy9zdWJyZXNvdXJjZS9lbXB0eS5weSIsCisgICAgaW52b2tlcjogcmVxdWVzdFZp
YUxpbmtQcmVmZXRjaCwKKyAgfSwKKyAgIm9iamVjdC10YWciOiB7CisgICAgcGF0aDogIi9jb21t
b24vc2VjdXJpdHktZmVhdHVyZXMvc3VicmVzb3VyY2UvZW1wdHkucHkiLAorICAgIGludm9rZXI6
IHJlcXVlc3RWaWFPYmplY3QsCisgIH0sCisgICJwaWN0dXJlLXRhZyI6IHsKKyAgICBwYXRoOiAi
L2NvbW1vbi9zZWN1cml0eS1mZWF0dXJlcy9zdWJyZXNvdXJjZS9pbWFnZS5weSIsCisgICAgaW52
b2tlcjogcmVxdWVzdFZpYVBpY3R1cmUsCisgIH0sCisgICJzY3JpcHQtdGFnIjogeworICAgIHBh
dGg6ICIvY29tbW9uL3NlY3VyaXR5LWZlYXR1cmVzL3N1YnJlc291cmNlL3NjcmlwdC5weSIsCisg
ICAgaW52b2tlcjogcmVxdWVzdFZpYVNjcmlwdCwKKyAgfSwKKyAgInZpZGVvLXRhZyI6IHsKKyAg
ICBwYXRoOiAiL2NvbW1vbi9zZWN1cml0eS1mZWF0dXJlcy9zdWJyZXNvdXJjZS92aWRlby5weSIs
CisgICAgaW52b2tlcjogcmVxdWVzdFZpYVZpZGVvLAorICB9LAorICAieGhyIjogeworICAgIHBh
dGg6ICIvY29tbW9uL3NlY3VyaXR5LWZlYXR1cmVzL3N1YnJlc291cmNlL3hoci5weSIsCisgICAg
aW52b2tlcjogcmVxdWVzdFZpYVhociwKKyAgfSwKKworICAid29ya2VyLWNsYXNzaWMiOiB7Cisg
ICAgcGF0aDogIi9jb21tb24vc2VjdXJpdHktZmVhdHVyZXMvc3VicmVzb3VyY2Uvd29ya2VyLnB5
IiwKKyAgICBpbnZva2VyOiB1cmwgPT4gcmVxdWVzdFZpYURlZGljYXRlZFdvcmtlcih1cmwpLAor
ICB9LAorICAid29ya2VyLW1vZHVsZSI6IHsKKyAgICBwYXRoOiAiL2NvbW1vbi9zZWN1cml0eS1m
ZWF0dXJlcy9zdWJyZXNvdXJjZS93b3JrZXIucHkiLAorICAgIGludm9rZXI6IHVybCA9PiByZXF1
ZXN0VmlhRGVkaWNhdGVkV29ya2VyKHVybCwge3R5cGU6ICJtb2R1bGUifSksCisgIH0sCisgICJ3
b3JrZXItaW1wb3J0LWRhdGEiOiB7CisgICAgcGF0aDogIi9jb21tb24vc2VjdXJpdHktZmVhdHVy
ZXMvc3VicmVzb3VyY2Uvd29ya2VyLnB5IiwKKyAgICBpbnZva2VyOiB1cmwgPT4KKyAgICAgICAg
cmVxdWVzdFZpYURlZGljYXRlZFdvcmtlcih3b3JrZXJVcmxUaGF0SW1wb3J0cyh1cmwpLCB7dHlw
ZTogIm1vZHVsZSJ9KSwKKyAgfSwKKyAgInNoYXJlZHdvcmtlci1jbGFzc2ljIjogeworICAgIHBh
dGg6ICIvY29tbW9uL3NlY3VyaXR5LWZlYXR1cmVzL3N1YnJlc291cmNlL3NoYXJlZC13b3JrZXIu
cHkiLAorICAgIGludm9rZXI6IHJlcXVlc3RWaWFTaGFyZWRXb3JrZXIsCisgIH0sCisKKyAgIndl
YnNvY2tldCI6IHsKKyAgICBwYXRoOiAiL3N0YXNoX3Jlc3BvbmRlciIsCisgICAgaW52b2tlcjog
cmVxdWVzdFZpYVdlYlNvY2tldCwKKyAgfSwKK307Citmb3IgKGNvbnN0IHdvcmtsZXRUeXBlIG9m
IFsnYW5pbWF0aW9uJywgJ2F1ZGlvJywgJ2xheW91dCcsICdwYWludCddKSB7CisgIHN1YnJlc291
cmNlTWFwW2B3b3JrbGV0LSR7d29ya2xldFR5cGV9YF0gPSB7CisgICAgICBwYXRoOiAiL2NvbW1v
bi9zZWN1cml0eS1mZWF0dXJlcy9zdWJyZXNvdXJjZS93b3JrZXIucHkiLAorICAgICAgaW52b2tl
cjogdXJsID0+IHJlcXVlc3RWaWFXb3JrbGV0KHdvcmtsZXRUeXBlLCB1cmwpCisgICAgfTsKKyAg
c3VicmVzb3VyY2VNYXBbYHdvcmtsZXQtJHt3b3JrbGV0VHlwZX0taW1wb3J0LWRhdGFgXSA9IHsK
KyAgICAgIHBhdGg6ICIvY29tbW9uL3NlY3VyaXR5LWZlYXR1cmVzL3N1YnJlc291cmNlL3dvcmtl
ci5weSIsCisgICAgICBpbnZva2VyOiB1cmwgPT4KKyAgICAgICAgICByZXF1ZXN0VmlhV29ya2xl
dCh3b3JrbGV0VHlwZSwgd29ya2VyVXJsVGhhdEltcG9ydHModXJsKSkKKyAgICB9OworfQorCisv
KioKKyAgQHR5cGVkZWYgUmVkaXJlY3Rpb25UeXBlCisgIEB0eXBlIHtzdHJpbmd9CisKKyAgUmVw
cmVzZW50cyB3aGF0IHJlZGlyZWN0cyBzaG91bGQgb2NjdXIgdG8gdGhlIHN1YnJlc291cmNlIHJl
cXVlc3QKKyAgYWZ0ZXIgaW5pdGlhbCByZXF1ZXN0LgorICBTZWUgcHJlcHJvY2Vzc19yZWRpcmVj
dGlvbigpIGluCisgIC9jb21tb24vc2VjdXJpdHktZmVhdHVyZXMvc3VicmVzb3VyY2Uvc3VicmVz
b3VyY2UucHkgZm9yIHZhbGlkIHZhbHVlcy4KKyovCisKKy8qKgorICBDb25zdHJ1Y3Qgc3VicmVz
b3VyY2UgKGFuZCByZWxhdGVkKSBvcmlnaW4uCisKKyAgQHBhcmFtIHtzdHJpbmd9IG9yaWdpblR5
cGUKKyAgQHJldHVybnMge29iamVjdH0gdGhlIG9yaWdpbiBvZiB0aGUgc3VicmVzb3VyY2UuCisq
LworZnVuY3Rpb24gZ2V0U3VicmVzb3VyY2VPcmlnaW4ob3JpZ2luVHlwZSkgeworICBjb25zdCBo
dHRwUHJvdG9jb2wgPSAiaHR0cCI7CisgIGNvbnN0IGh0dHBzUHJvdG9jb2wgPSAiaHR0cHMiOwor
ICBjb25zdCB3c1Byb3RvY29sID0gIndzIjsKKyAgY29uc3Qgd3NzUHJvdG9jb2wgPSAid3NzIjsK
KworICBjb25zdCBzYW1lT3JpZ2luSG9zdCA9ICJ7e2hvc3R9fSI7CisgIGNvbnN0IGNyb3NzT3Jp
Z2luSG9zdCA9ICJ7e2RvbWFpbnNbd3d3MV19fSI7CisKKyAgLy8gVGhlc2UgdmFsdWVzIGNhbiBl
dmFsdWF0ZSB0byBlaXRoZXIgZW1wdHkgc3RyaW5ncyBvciBhICI6cG9ydCIgc3RyaW5nLgorICBj
b25zdCBodHRwUG9ydCA9IGdldE5vcm1hbGl6ZWRQb3J0KHBhcnNlSW50KCJ7e3BvcnRzW2h0dHBd
WzBdfX0iLCAxMCkpOworICBjb25zdCBodHRwc1BvcnQgPSBnZXROb3JtYWxpemVkUG9ydChwYXJz
ZUludCgie3twb3J0c1todHRwc11bMF19fSIsIDEwKSk7CisgIGNvbnN0IHdzUG9ydCA9IGdldE5v
cm1hbGl6ZWRQb3J0KHBhcnNlSW50KCJ7e3BvcnRzW3dzXVswXX19IiwgMTApKTsKKyAgY29uc3Qg
d3NzUG9ydCA9IGdldE5vcm1hbGl6ZWRQb3J0KHBhcnNlSW50KCJ7e3BvcnRzW3dzc11bMF19fSIs
IDEwKSk7CisKKyAgLyoqCisgICAgQHR5cGVkZWYgT3JpZ2luVHlwZQorICAgIEB0eXBlIHtzdHJp
bmd9CisKKyAgICBSZXByZXNlbnRzIHRoZSBvcmlnaW4gb2YgdGhlIHN1YnJlc291cmNlIHJlcXVl
c3QgVVJMLgorICAgIFRoZSBrZXlzIG9mIGBvcmlnaW5NYXBgIGJlbG93IGFyZSB0aGUgdmFsaWQg
dmFsdWVzLgorCisgICAgTm90ZSB0aGF0IHRoZXJlIGNhbiBiZSByZWRpcmVjdHMgZnJvbSB0aGUg
c3BlY2lmaWVkIG9yaWdpbgorICAgIChzZWUgUmVkaXJlY3Rpb25UeXBlKSwgYW5kIHRodXMgdGhl
IG9yaWdpbiBvZiB0aGUgc3VicmVzb3VyY2UKKyAgICByZXNwb25zZSBVUkwgbWlnaHQgYmUgZGlm
ZmVyZW50IGZyb20gd2hhdCBpcyBzcGVjaWZpZWQgYnkgT3JpZ2luVHlwZS4KKyAgKi8KKyAgY29u
c3Qgb3JpZ2luTWFwID0geworICAgICJzYW1lLWh0dHBzIjogaHR0cHNQcm90b2NvbCArICI6Ly8i
ICsgc2FtZU9yaWdpbkhvc3QgKyBodHRwc1BvcnQsCisgICAgInNhbWUtaHR0cCI6IGh0dHBQcm90
b2NvbCArICI6Ly8iICsgc2FtZU9yaWdpbkhvc3QgKyBodHRwUG9ydCwKKyAgICAiY3Jvc3MtaHR0
cHMiOiBodHRwc1Byb3RvY29sICsgIjovLyIgKyBjcm9zc09yaWdpbkhvc3QgKyBodHRwc1BvcnQs
CisgICAgImNyb3NzLWh0dHAiOiBodHRwUHJvdG9jb2wgKyAiOi8vIiArIGNyb3NzT3JpZ2luSG9z
dCArIGh0dHBQb3J0LAorICAgICJzYW1lLXdzcyI6IHdzc1Byb3RvY29sICsgIjovLyIgKyBzYW1l
T3JpZ2luSG9zdCArIHdzc1BvcnQsCisgICAgInNhbWUtd3MiOiB3c1Byb3RvY29sICsgIjovLyIg
KyBzYW1lT3JpZ2luSG9zdCArIHdzUG9ydCwKKyAgICAiY3Jvc3Mtd3NzIjogd3NzUHJvdG9jb2wg
KyAiOi8vIiArIGNyb3NzT3JpZ2luSG9zdCArIHdzc1BvcnQsCisgICAgImNyb3NzLXdzIjogd3NQ
cm90b2NvbCArICI6Ly8iICsgY3Jvc3NPcmlnaW5Ib3N0ICsgd3NQb3J0LAorICB9OworCisgIHJl
dHVybiBvcmlnaW5NYXBbb3JpZ2luVHlwZV07Cit9CisKKy8qKgorICBDb25zdHJ1Y3Qgc3VicmVz
b3VyY2UgKGFuZCByZWxhdGVkKSBVUkxzLgorCisgIEBwYXJhbSB7U3VicmVzb3VyY2VUeXBlfSBz
dWJyZXNvdXJjZVR5cGUKKyAgQHBhcmFtIHtPcmlnaW5UeXBlfSBvcmlnaW5UeXBlCisgIEBwYXJh
bSB7UmVkaXJlY3Rpb25UeXBlfSByZWRpcmVjdGlvblR5cGUKKyAgQHJldHVybnMge29iamVjdH0g
d2l0aCBmb2xsb3dpbmcgcHJvcGVydGllczoKKyAgICB7c3RyaW5nfSB0ZXN0VXJsCisgICAgICBU
aGUgc3VicmVzb3VyY2UgcmVxdWVzdCBVUkwuCisgICAge3N0cmluZ30gYW5ub3VuY2VVcmwKKyAg
ICB7c3RyaW5nfSBhc3NlcnRVcmwKKyAgICAgIFRoZSBVUkxzIHRvIGJlIHVzZWQgZm9yIGRldGVj
dGluZyB3aGV0aGVyIGB0ZXN0VXJsYCBpcyBhY3R1YWxseSBzZW50CisgICAgICB0byB0aGUgc2Vy
dmVyLgorICAgICAgMS4gRmV0Y2ggYGFubm91bmNlVXJsYCBmaXJzdCwKKyAgICAgIDIuIHRoZW4g
cG9zc2libHkgZmV0Y2ggYHRlc3RVcmxgLCBhbmQKKyAgICAgIDMuIGZpbmFsbHkgZmV0Y2ggYGFz
c2VydFVybGAuCisgICAgICAgICBUaGUgZmV0Y2ggcmVzdWx0IG9mIGBhc3NlcnRVcmxgIHNob3Vs
ZCBpbmRpY2F0ZSB3aGV0aGVyCisgICAgICAgICBgdGVzdFVybGAgaXMgYWN0dWFsbHkgc2VudCB0
byB0aGUgc2VydmVyIG9yIG5vdC4KKyovCitmdW5jdGlvbiBnZXRSZXF1ZXN0VVJMcyhzdWJyZXNv
dXJjZVR5cGUsIG9yaWdpblR5cGUsIHJlZGlyZWN0aW9uVHlwZSkgeworICBjb25zdCBrZXkgPSBn
dWlkKCk7CisgIGNvbnN0IHZhbHVlID0gZ3VpZCgpOworCisgIC8vIFdlIHVzZSB0aGUgc2FtZSBz
dGFzaCBwYXRoIGZvciBib3RoIEhUVFAvUyBhbmQgV1MvUyBzdGFzaCByZXF1ZXN0cy4KKyAgY29u
c3Qgc3Rhc2hQYXRoID0gZW5jb2RlVVJJQ29tcG9uZW50KCIvbWl4ZWQtY29udGVudCIpOworCisg
IGNvbnN0IHN0YXNoRW5kcG9pbnQgPSAiL2NvbW1vbi9zZWN1cml0eS1mZWF0dXJlcy9zdWJyZXNv
dXJjZS94aHIucHk/a2V5PSIgKworICAgICAgICAgICAgICAgICAgICAgICAga2V5ICsgIiZwYXRo
PSIgKyBzdGFzaFBhdGg7CisgIHJldHVybiB7CisgICAgdGVzdFVybDoKKyAgICAgIGdldFN1YnJl
c291cmNlT3JpZ2luKG9yaWdpblR5cGUpICsKKyAgICAgICAgc3VicmVzb3VyY2VNYXBbc3VicmVz
b3VyY2VUeXBlXS5wYXRoICsKKyAgICAgICAgIj9yZWRpcmVjdGlvbj0iICsgZW5jb2RlVVJJQ29t
cG9uZW50KHJlZGlyZWN0aW9uVHlwZSkgKworICAgICAgICAiJmFjdGlvbj1wdXJnZSZrZXk9IiAr
IGtleSArCisgICAgICAgICImcGF0aD0iICsgc3Rhc2hQYXRoLAorICAgIGFubm91bmNlVXJsOiBz
dGFzaEVuZHBvaW50ICsgIiZhY3Rpb249cHV0JnZhbHVlPSIgKyB2YWx1ZSwKKyAgICBhc3NlcnRV
cmw6IHN0YXNoRW5kcG9pbnQgKyAiJmFjdGlvbj10YWtlIiwKKyAgfTsKK30KKworLy8gPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
CisvLyBTb3VyY2UgQ29udGV4dAorLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisvLyBSZXF1ZXN0cyBjYW4gYmUgc2VudCBm
cm9tIHNldmVyYWwgc291cmNlIGNvbnRleHRzLAorLy8gc3VjaCBhcyB0aGUgbWFpbiBkb2N1bWVu
dHMsIGlmcmFtZXMsIHdvcmtlcnMsIG9yIHNvLAorLy8gcG9zc2libHkgbmVzdGVkLCBhbmQgcG9z
c2libHkgd2l0aCA8bWV0YT4vaHR0cCBoZWFkZXJzIGFkZGVkLgorLy8gaW52b2tlUmVxdWVzdCgp
IGFuZCBpbnZva2VGcm9tKigpIGZ1bmN0aW9ucyBoYW5kbGVzCisvLyBTb3VyY2VDb250ZXh0LXJl
bGF0ZWQgc2V0dXAgaW4gY2xpZW50LXNpZGUuCisKKy8qKgorICBpbnZva2VSZXF1ZXN0KCkgaW52
b2tlcyBhIHN1YnJlc291cmNlIHJlcXVlc3QKKyAgKHNwZWNpZmllZCBhcyBgc3VicmVzb3VyY2Vg
KQorICBmcm9tIGEgKHBvc3NpYmx5IG5lc3RlZCkgZW52aXJvbm1lbnQgc2V0dGluZ3Mgb2JqZWN0
CisgIChzcGVjaWZpZWQgYXMgYHNvdXJjZUNvbnRleHRMaXN0YCkuCisKKyAgRm9yIG5lc3RlZCBj
b250ZXh0cywgaW52b2tlUmVxdWVzdCgpIGNhbGxzIGFuIGludm9rZUZyb20qKCkgZnVuY3Rpb24K
KyAgdGhhdCBjcmVhdGVzIGEgbmVzdGVkIGVudmlyb25tZW50IHNldHRpbmdzIG9iamVjdCB1c2lu
ZworICAvY29tbW9uL3NlY3VyaXR5LWZlYXR1cmVzL3Njb3BlLywgd2hpY2ggY2FsbHMgaW52b2tl
UmVxdWVzdCgpCisgIGFnYWluIGluc2lkZSB0aGUgbmVzdGVkIGVudmlyb25tZW50IHNldHRpbmdz
IG9iamVjdC4KKyAgVGhpcyBjeWNsZSBjb250aW51ZXMgdW50aWwgYWxsIHNwZWNpZmllZAorICBu
ZXN0ZWQgZW52aXJvbm1lbnQgc2V0dGluZ3Mgb2JqZWN0IGFyZSBjcmVhdGVkLCBhbmQKKyAgZmlu
YWxseSBpbnZva2VSZXF1ZXN0KCkgY2FsbHMgYSByZXF1ZXN0VmlhKigpIGZ1bmN0aW9uIHRvIHN0
YXJ0IHRoZQorICBzdWJyZXNvdXJjZSByZXF1ZXN0IGZyb20gdGhlIGlubmVyLW1vc3QgZW52aXJv
bm1lbnQgc2V0dGluZ3Mgb2JqZWN0LgorCisgIEBwYXJhbSB7U3VicmVzb3VyY2V9IHN1YnJlc291
cmNlCisgIEBwYXJhbSB7QXJyYXk8U291cmNlQ29udGV4dD59IHNvdXJjZUNvbnRleHRMaXN0CisK
KyAgQHJldHVybnMge1Byb21pc2V9IEEgcHJvbWlzZSB0aGF0IGlzIHJlc29sdmVkIHdpdGggYW4g
UmVxdWVzdFJlc3VsdCBvYmplY3QuCisgIGBzb3VyY2VDb250ZXh0VXJsYCBpcyBhbHdheXMgc2V0
LiBGb3Igd2hldGhlciBvdGhlciBwcm9wZXJ0aWVzIGFyZSBzZXQsCisgIHNlZSB0aGUgY29tbWVu
dHMgZm9yIHJlcXVlc3RWaWEqKCkgYWJvdmUuCisqLworZnVuY3Rpb24gaW52b2tlUmVxdWVzdChz
dWJyZXNvdXJjZSwgc291cmNlQ29udGV4dExpc3QpIHsKKyAgaWYgKHNvdXJjZUNvbnRleHRMaXN0
Lmxlbmd0aCA9PT0gMCkgeworICAgIC8vIE5vIGZ1cnRoZXIgbmVzdGVkIGdsb2JhbCBvYmplY3Rz
LiBTZW5kIHRoZSBzdWJyZXNvdXJjZSByZXF1ZXN0IGhlcmUuCisKKyAgICBjb25zdCBhZGRpdGlv
bmFsQXR0cmlidXRlcyA9IHt9OworICAgIC8qKiBAdHlwZSB7UG9saWN5RGVsaXZlcnl9IHBvbGlj
eURlbGl2ZXJ5ICovCisgICAgZm9yIChjb25zdCBwb2xpY3lEZWxpdmVyeSBvZiAoc3VicmVzb3Vy
Y2UucG9saWN5RGVsaXZlcmllcyB8fCBbXSkpIHsKKyAgICAgIC8vIERlcGVuZGluZyBvbiB0aGUg
ZGVsaXZlcnkgbWV0aG9kLCBleHRlbmQgdGhlIHN1YnJlc291cmNlIGVsZW1lbnQgd2l0aAorICAg
ICAgLy8gdGhlc2UgYXR0cmlidXRlcy4KKyAgICAgIGlmIChwb2xpY3lEZWxpdmVyeS5kZWxpdmVy
eVR5cGUgPT09ICJhdHRyIikgeworICAgICAgICBhZGRpdGlvbmFsQXR0cmlidXRlc1twb2xpY3lE
ZWxpdmVyeS5rZXldID0gcG9saWN5RGVsaXZlcnkudmFsdWU7CisgICAgICB9IGVsc2UgaWYgKHBv
bGljeURlbGl2ZXJ5LmRlbGl2ZXJ5VHlwZSA9PT0gInJlbC1ub3JlZiIpIHsKKyAgICAgICAgYWRk
aXRpb25hbEF0dHJpYnV0ZXNbInJlbCJdID0gIm5vcmVmZXJyZXIiOworICAgICAgfQorICAgIH0K
KworICAgIHJldHVybiBzdWJyZXNvdXJjZU1hcFtzdWJyZXNvdXJjZS5zdWJyZXNvdXJjZVR5cGVd
Lmludm9rZXIoCisgICAgICAgIHN1YnJlc291cmNlLnVybCwKKyAgICAgICAgYWRkaXRpb25hbEF0
dHJpYnV0ZXMpCisgICAgICAudGhlbihyZXN1bHQgPT4gT2JqZWN0LmFzc2lnbigKKyAgICAgICAg
ICB7c291cmNlQ29udGV4dFVybDogbG9jYXRpb24udG9TdHJpbmcoKX0sCisgICAgICAgICAgcmVz
dWx0KSk7CisgIH0KKworICAvLyBEZWZpbmVzIGludm9rZXJzIGZvciBlYWNoIHZhbGlkIFNvdXJj
ZUNvbnRleHQuc291cmNlQ29udGV4dFR5cGUuCisgIGNvbnN0IHNvdXJjZUNvbnRleHRNYXAgPSB7
CisgICAgInNyY2RvYyI6IHsgLy8gPGlmcmFtZSBzcmNkb2M+PC9pZnJhbWU+CisgICAgICBpbnZv
a2VyOiBpbnZva2VGcm9tSWZyYW1lLAorICAgIH0sCisgICAgImlmcmFtZSI6IHsgLy8gPGlmcmFt
ZSBzcmM9InNhbWUtb3JpZ2luLVVSTCI+PC9pZnJhbWU+CisgICAgICBpbnZva2VyOiBpbnZva2VG
cm9tSWZyYW1lLAorICAgIH0sCisgICAgIndvcmtlci1jbGFzc2ljIjogeworICAgICAgLy8gQ2xh
c3NpYyBkZWRpY2F0ZWQgd29ya2VyIGxvYWRlZCBmcm9tIHNhbWUtb3JpZ2luLgorICAgICAgaW52
b2tlcjogaW52b2tlRnJvbVdvcmtlci5iaW5kKHVuZGVmaW5lZCwgZmFsc2UsIHt9KSwKKyAgICB9
LAorICAgICJ3b3JrZXItY2xhc3NpYy1kYXRhIjogeworICAgICAgLy8gQ2xhc3NpYyBkZWRpY2F0
ZWQgd29ya2VyIGxvYWRlZCBmcm9tIGRhdGE6IFVSTC4KKyAgICAgIGludm9rZXI6IGludm9rZUZy
b21Xb3JrZXIuYmluZCh1bmRlZmluZWQsIHRydWUsIHt9KSwKKyAgICB9LAorICAgICJ3b3JrZXIt
bW9kdWxlIjogeworICAgICAgLy8gTW9kdWxlIGRlZGljYXRlZCB3b3JrZXIgbG9hZGVkIGZyb20g
c2FtZS1vcmlnaW4uCisgICAgICBpbnZva2VyOiBpbnZva2VGcm9tV29ya2VyLmJpbmQodW5kZWZp
bmVkLCBmYWxzZSwge3R5cGU6ICdtb2R1bGUnfSksCisgICAgfSwKKyAgICAid29ya2VyLW1vZHVs
ZS1kYXRhIjogeworICAgICAgLy8gTW9kdWxlIGRlZGljYXRlZCB3b3JrZXIgbG9hZGVkIGZyb20g
ZGF0YTogVVJMLgorICAgICAgaW52b2tlcjogaW52b2tlRnJvbVdvcmtlci5iaW5kKHVuZGVmaW5l
ZCwgdHJ1ZSwge3R5cGU6ICdtb2R1bGUnfSksCisgICAgfSwKKyAgfTsKKworICByZXR1cm4gc291
cmNlQ29udGV4dE1hcFtzb3VyY2VDb250ZXh0TGlzdFswXS5zb3VyY2VDb250ZXh0VHlwZV0uaW52
b2tlcigKKyAgICAgIHN1YnJlc291cmNlLCBzb3VyY2VDb250ZXh0TGlzdCk7Cit9CisKKy8vIFF1
aWNrIGhhY2sgdG8gZXhwb3NlIGludm9rZVJlcXVlc3Qgd2hlbiBjb21tb24uc3ViLmpzIGlzIGxv
YWRlZCBlaXRoZXIKKy8vIGFzIGEgY2xhc3NpYyBvciBtb2R1bGUgc2NyaXB0Lgorc2VsZi5pbnZv
a2VSZXF1ZXN0ID0gaW52b2tlUmVxdWVzdDsKKworLyoqCisgIGludm9rZUZyb20qKCkgZnVuY3Rp
b25zIGFyZSBoZWxwZXIgZnVuY3Rpb25zIHdpdGggdGhlIHNhbWUgcGFyYW1ldGVycworICBhbmQg
cmV0dXJuIHZhbHVlcyBhcyBpbnZva2VSZXF1ZXN0KCksIHRoYXQgYXJlIHRpZWQgdG8gc3BlY2lm
aWMgdHlwZXMKKyAgb2YgdG9wLW1vc3QgZW52aXJvbm1lbnQgc2V0dGluZ3Mgb2JqZWN0cy4KKyAg
Rm9yIGV4YW1wbGUsIGludm9rZUZyb21JZnJhbWUoKSBpcyB0aGUgaGVscGVyIGZ1bmN0aW9uIGZv
ciB0aGUgY2FzZXMgd2hlcmUKKyAgc291cmNlQ29udGV4dExpc3RbMF0gaXMgYW4gaWZyYW1lLgor
Ki8KKworLyoqCisgIEBwYXJhbSB7Ym9vbGVhbn0gaXNEYXRhVXJsCisgICAgdHJ1ZSBpZiB0aGUg
d29ya2VyIHNjcmlwdCBpcyBsb2FkZWQgZnJvbSBkYXRhOiBVUkwuCisgICAgT3RoZXJ3aXNlLCB0
aGUgc2NyaXB0IGlzIGxvYWRlZCBmcm9tIHNhbWUtb3JpZ2luLgorICBAcGFyYW0ge29iamVjdH0g
d29ya2VyT3B0aW9ucworICAgIFRoZSBgb3B0aW9uc2AgYXJndW1lbnQgZm9yIFdvcmtlciBjb25z
dHJ1Y3Rvci4KKworICBPdGhlciBwYXJhbWV0ZXJzIGFuZCByZXR1cm4gdmFsdWVzIGFyZSB0aGUg
c2FtZSBhcyB0aG9zZSBvZiBpbnZva2VSZXF1ZXN0KCkuCisqLworZnVuY3Rpb24gaW52b2tlRnJv
bVdvcmtlcihpc0RhdGFVcmwsIHdvcmtlck9wdGlvbnMsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgIHN1YnJlc291cmNlLCBzb3VyY2VDb250ZXh0TGlzdCkgeworICBjb25zdCBjdXJyZW50U291
cmNlQ29udGV4dCA9IHNvdXJjZUNvbnRleHRMaXN0WzBdOworICBsZXQgd29ya2VyVXJsID0KKyAg
ICAiL2NvbW1vbi9zZWN1cml0eS1mZWF0dXJlcy9zY29wZS93b3JrZXIucHk/cG9saWN5RGVsaXZl
cmllcz0iICsKKyAgICBlbmNvZGVVUklDb21wb25lbnQoSlNPTi5zdHJpbmdpZnkoCisgICAgICAg
IGN1cnJlbnRTb3VyY2VDb250ZXh0LnBvbGljeURlbGl2ZXJpZXMgfHwgW10pKTsKKyAgaWYgKHdv
cmtlck9wdGlvbnMudHlwZSA9PT0gJ21vZHVsZScpIHsKKyAgICB3b3JrZXJVcmwgKz0gIiZ0eXBl
PW1vZHVsZSI7CisgIH0KKworICBsZXQgcHJvbWlzZTsKKyAgaWYgKGlzRGF0YVVybCkgeworICAg
IHByb21pc2UgPSBmZXRjaCh3b3JrZXJVcmwpCisgICAgICAudGhlbihyID0+IHIudGV4dCgpKQor
ICAgICAgLnRoZW4oc291cmNlID0+IHsKKyAgICAgICAgICByZXR1cm4gJ2RhdGE6dGV4dC9qYXZh
c2NyaXB0O2Jhc2U2NCwnICsgYnRvYShzb3VyY2UpOworICAgICAgICB9KTsKKyAgfSBlbHNlIHsK
KyAgICBwcm9taXNlID0gUHJvbWlzZS5yZXNvbHZlKHdvcmtlclVybCk7CisgIH0KKworICByZXR1
cm4gcHJvbWlzZQorICAgIC50aGVuKHVybCA9PiB7CisgICAgICBjb25zdCB3b3JrZXIgPSBuZXcg
V29ya2VyKHVybCwgd29ya2VyT3B0aW9ucyk7CisgICAgICB3b3JrZXIucG9zdE1lc3NhZ2Uoe3N1
YnJlc291cmNlOiBzdWJyZXNvdXJjZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNl
Q29udGV4dExpc3Q6IHNvdXJjZUNvbnRleHRMaXN0LnNsaWNlKDEpfSk7CisgICAgICByZXR1cm4g
YmluZEV2ZW50czIod29ya2VyLCAibWVzc2FnZSIsIHdvcmtlciwgImVycm9yIiwgd2luZG93LCAi
ZXJyb3IiKTsKKyAgICB9KQorICAgIC50aGVuKGV2ZW50ID0+IHsKKyAgICAgICAgaWYgKGV2ZW50
LmRhdGEuZXJyb3IpCisgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KGV2ZW50LmRhdGEu
ZXJyb3IpOworICAgICAgICByZXR1cm4gZXZlbnQuZGF0YTsKKyAgICAgIH0pOworfQorCitmdW5j
dGlvbiBpbnZva2VGcm9tSWZyYW1lKHN1YnJlc291cmNlLCBzb3VyY2VDb250ZXh0TGlzdCkgewor
ICBjb25zdCBjdXJyZW50U291cmNlQ29udGV4dCA9IHNvdXJjZUNvbnRleHRMaXN0WzBdOworICBj
b25zdCBmcmFtZVVybCA9CisgICAgIi9jb21tb24vc2VjdXJpdHktZmVhdHVyZXMvc2NvcGUvZG9j
dW1lbnQucHk/cG9saWN5RGVsaXZlcmllcz0iICsKKyAgICBlbmNvZGVVUklDb21wb25lbnQoSlNP
Ti5zdHJpbmdpZnkoCisgICAgICAgIGN1cnJlbnRTb3VyY2VDb250ZXh0LnBvbGljeURlbGl2ZXJp
ZXMgfHwgW10pKTsKKworICBsZXQgcHJvbWlzZTsKKyAgaWYgKGN1cnJlbnRTb3VyY2VDb250ZXh0
LnNvdXJjZUNvbnRleHRUeXBlID09PSAnc3JjZG9jJykgeworICAgIHByb21pc2UgPSBmZXRjaChm
cmFtZVVybCkKKyAgICAgIC50aGVuKHIgPT4gci50ZXh0KCkpCisgICAgICAudGhlbihzcmNkb2Mg
PT4geworICAgICAgICAgIHJldHVybiBjcmVhdGVFbGVtZW50KCJpZnJhbWUiLCB7c3JjZG9jOiBz
cmNkb2N9LCBkb2N1bWVudC5ib2R5LCB0cnVlKTsKKyAgICAgICAgfSk7CisgIH0gZWxzZSBpZiAo
Y3VycmVudFNvdXJjZUNvbnRleHQuc291cmNlQ29udGV4dFR5cGUgPT09ICdpZnJhbWUnKSB7Cisg
ICAgcHJvbWlzZSA9IFByb21pc2UucmVzb2x2ZSgKKyAgICAgICAgY3JlYXRlRWxlbWVudCgiaWZy
YW1lIiwge3NyYzogZnJhbWVVcmx9LCBkb2N1bWVudC5ib2R5LCB0cnVlKSk7CisgIH0KKworICBy
ZXR1cm4gcHJvbWlzZQorICAgIC50aGVuKGlmcmFtZSA9PiB7CisgICAgICAgIHJldHVybiBpZnJh
bWUuZXZlbnRQcm9taXNlCisgICAgICAgICAgLnRoZW4oKCkgPT4geworICAgICAgICAgICAgICBj
b25zdCBwcm9taXNlID0gYmluZEV2ZW50czIoCisgICAgICAgICAgICAgICAgICB3aW5kb3csICJt
ZXNzYWdlIiwgaWZyYW1lLCAiZXJyb3IiLCB3aW5kb3csICJlcnJvciIpOworICAgICAgICAgICAg
ICBpZnJhbWUuY29udGVudFdpbmRvdy5wb3N0TWVzc2FnZSgKKyAgICAgICAgICAgICAgICAgIHtz
dWJyZXNvdXJjZTogc3VicmVzb3VyY2UsCisgICAgICAgICAgICAgICAgICAgc291cmNlQ29udGV4
dExpc3Q6IHNvdXJjZUNvbnRleHRMaXN0LnNsaWNlKDEpfSwKKyAgICAgICAgICAgICAgICAgICIq
Iik7CisgICAgICAgICAgICAgIHJldHVybiBwcm9taXNlOworICAgICAgICAgICAgfSkKKyAgICAg
ICAgICAudGhlbihldmVudCA9PiB7CisgICAgICAgICAgICAgIGlmIChldmVudC5kYXRhLmVycm9y
KQorICAgICAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChldmVudC5kYXRhLmVycm9y
KTsKKyAgICAgICAgICAgICAgcmV0dXJuIGV2ZW50LmRhdGE7CisgICAgICAgICAgICB9KTsKKyAg
ICAgIH0pOworfQorCisvLyBTYW5pdHlDaGVja2VyIGRvZXMgbm90aGluZyBpbiByZWxlYXNlIG1v
ZGUuIFNlZSBzYW5pdHktY2hlY2tlci5qcyBmb3IgZGVidWcKKy8vIG1vZGUuCitmdW5jdGlvbiBT
YW5pdHlDaGVja2VyKCkge30KK1Nhbml0eUNoZWNrZXIucHJvdG90eXBlLmNoZWNrU2NlbmFyaW8g
PSBmdW5jdGlvbigpIHt9OworU2FuaXR5Q2hlY2tlci5wcm90b3R5cGUuc2V0RmFpbFRpbWVvdXQg
PSBmdW5jdGlvbih0ZXN0LCB0aW1lb3V0KSB7fTsKK1Nhbml0eUNoZWNrZXIucHJvdG90eXBlLmNo
ZWNrU3VicmVzb3VyY2VSZXN1bHQgPSBmdW5jdGlvbigpIHt9OwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jb250ZW50LXNlY3VyaXR5LXBv
bGljeS9zZWN1cml0eXBvbGljeXZpb2xhdGlvbi9pZGxoYXJuZXNzLndpbmRvdy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2NvbnRlbnQt
c2VjdXJpdHktcG9saWN5L3NlY3VyaXR5cG9saWN5dmlvbGF0aW9uL2lkbGhhcm5lc3Mud2luZG93
LWV4cGVjdGVkLnR4dAppbmRleCBhN2VhMzI3OTFjYjAwNjkzZjM3OTRhMjNkMzI4NGE5MjY3OWM1
MmZmLi4xZTFjZjY2N2QzYjUwYWVmMWYxNjkxOGRmM2IwNDgzZGVkZTFmNWQ2IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2NvbnRlbnQtc2Vj
dXJpdHktcG9saWN5L3NlY3VyaXR5cG9saWN5dmlvbGF0aW9uL2lkbGhhcm5lc3Mud2luZG93LWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2NvbnRlbnQtc2VjdXJpdHktcG9saWN5L3NlY3VyaXR5cG9saWN5dmlvbGF0aW9uL2lkbGhh
cm5lc3Mud2luZG93LWV4cGVjdGVkLnR4dApAQCAtMSwzMCArMSwzIEBACiAKLUZBSUwgaWRsX3Rl
c3Qgc2V0dXAgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9i
amVjdCAiR290IGFuIGVycm9yIGJlZm9yZSBwYXJzaW5nIGFueSBuYW1lZCBkZWZpbml0aW9uOiBV
bnJlY29nbmlzZWQgdG9rZW5zLCBsaW5lIDEgKHRva2VuczogIntcImVycm9yXCI6IHtcIm1lc3Nh
Z2VcIiIpCi1bCi0gICAgewotICAgICAgICAidHlwZSI6ICJ7IiwKLSAgICAgICAgInZhbHVlIjog
InsiLAotICAgICAgICAidHJpdmlhIjogIiIKLSAgICB9LAotICAgIHsKLSAgICAgICAgInR5cGUi
OiAic3RyaW5nIiwKLSAgICAgICAgInZhbHVlIjogIlwiZXJyb3JcIiIsCi0gICAgICAgICJ0cml2
aWEiOiAiIgotICAgIH0sCi0gICAgewotICAgICAgICAidHlwZSI6ICI6IiwKLSAgICAgICAgInZh
bHVlIjogIjoiLAotICAgICAgICAidHJpdmlhIjogIiIKLSAgICB9LAotICAgIHsKLSAgICAgICAg
InR5cGUiOiAieyIsCi0gICAgICAgICJ2YWx1ZSI6ICJ7IiwKLSAgICAgICAgInRyaXZpYSI6ICIg
IgotICAgIH0sCi0gICAgewotICAgICAgICAidHlwZSI6ICJzdHJpbmciLAotICAgICAgICAidmFs
dWUiOiAiXCJtZXNzYWdlXCIiLAotICAgICAgICAidHJpdmlhIjogIiIKLSAgICB9Ci1dIgorRkFJ
TCBpZGxfdGVzdCBzZXR1cCBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2
YWx1ZTogb2JqZWN0ICJFcnJvciBmZXRjaGluZyAvaW50ZXJmYWNlcy9DU1AuaWRsLiIKIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jcmVk
ZW50aWFsLW1hbmFnZW1lbnQvTUVUQS55bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2NyZWRlbnRpYWwtbWFuYWdlbWVudC9NRVRBLnltbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li43YjE4NjA5MjEzMTJjYzlkOTkzNGFhODAzZTNmNjM5ZGYyMTQyM2EwCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jcmVkZW50
aWFsLW1hbmFnZW1lbnQvTUVUQS55bWwKQEAgLTAsMCArMSwzIEBACitzcGVjOiBodHRwczovL3cz
Yy5naXRodWIuaW8vd2ViYXBwc2VjLWNyZWRlbnRpYWwtbWFuYWdlbWVudC8KK3N1Z2dlc3RlZF9y
ZXZpZXdlcnM6CisgIC0gbWlrZXdlc3QKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3JlZGVudGlhbC1tYW5hZ2VtZW50L09XTkVSUyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3JlZGVudGlhbC1tYW5h
Z2VtZW50L09XTkVSUwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTJmOTA3Y2ViNDE4
MTQwMThiNzM0OGQ0MzBkN2JlNWJiOWRjNzM3Mi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2NyZWRlbnRpYWwtbWFuYWdlbWVudC9PV05FUlMKKysrIC9kZXYvbnVsbApAQCAtMSAr
MCwwIEBACi1AbWlrZXdlc3QKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3JlZGVudGlhbC1tYW5hZ2VtZW50L2lkbC5odHRwcy1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2NyZWRl
bnRpYWwtbWFuYWdlbWVudC9pZGwuaHR0cHMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBlZDNiMWMxODYxZTZkZmVmOTE3MTdmN2ZkYTliOThhZmUwMWYwNmYxLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3JlZGVudGlhbC1tYW5hZ2VtZW50L2lk
bC5odHRwcy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw0MyArMCwwIEBACi0KLVBB
U1MgQ3JlZGVudGlhbHNDb250YWluZXIgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRp
ZXMgb2YgaW50ZXJmYWNlIG9iamVjdCAKLVBBU1MgQ3JlZGVudGlhbHNDb250YWluZXIgaW50ZXJm
YWNlIG9iamVjdCBsZW5ndGggCi1QQVNTIENyZWRlbnRpYWxzQ29udGFpbmVyIGludGVyZmFjZSBv
YmplY3QgbmFtZSAKLVBBU1MgQ3JlZGVudGlhbHNDb250YWluZXIgaW50ZXJmYWNlOiBleGlzdGVu
Y2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgCi1QQVNTIENy
ZWRlbnRpYWxzQ29udGFpbmVyIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9m
IGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgImNvbnN0cnVjdG9yIiBwcm9wZXJ0eSAKLVBB
U1MgQ3JlZGVudGlhbHNDb250YWluZXIgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRp
ZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyBAQHVuc2NvcGFibGVzIHByb3BlcnR5
IAotUEFTUyBDcmVkZW50aWFsc0NvbnRhaW5lciBpbnRlcmZhY2U6IG9wZXJhdGlvbiBnZXQoQ3Jl
ZGVudGlhbFJlcXVlc3RPcHRpb25zKSAKLVBBU1MgQ3JlZGVudGlhbHNDb250YWluZXIgaW50ZXJm
YWNlOiBvcGVyYXRpb24gc3RvcmUoQ3JlZGVudGlhbCkgCi1QQVNTIENyZWRlbnRpYWxzQ29udGFp
bmVyIGludGVyZmFjZTogb3BlcmF0aW9uIGNyZWF0ZShDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25z
KSAKLVBBU1MgQ3JlZGVudGlhbHNDb250YWluZXIgaW50ZXJmYWNlOiBvcGVyYXRpb24gcHJldmVu
dFNpbGVudEFjY2VzcygpIAotUEFTUyBDcmVkZW50aWFsc0NvbnRhaW5lciBtdXN0IGJlIHByaW1h
cnkgaW50ZXJmYWNlIG9mIG5hdmlnYXRvci5jcmVkZW50aWFscyAKLVBBU1MgU3RyaW5naWZpY2F0
aW9uIG9mIG5hdmlnYXRvci5jcmVkZW50aWFscyAKLVBBU1MgQ3JlZGVudGlhbHNDb250YWluZXIg
aW50ZXJmYWNlOiBuYXZpZ2F0b3IuY3JlZGVudGlhbHMgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJn
ZXQoQ3JlZGVudGlhbFJlcXVlc3RPcHRpb25zKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCi1QQVNT
IENyZWRlbnRpYWxzQ29udGFpbmVyIGludGVyZmFjZTogY2FsbGluZyBnZXQoQ3JlZGVudGlhbFJl
cXVlc3RPcHRpb25zKSBvbiBuYXZpZ2F0b3IuY3JlZGVudGlhbHMgd2l0aCB0b28gZmV3IGFyZ3Vt
ZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKLVBBU1MgQ3JlZGVudGlhbHNDb250YWluZXIgaW50
ZXJmYWNlOiBuYXZpZ2F0b3IuY3JlZGVudGlhbHMgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJzdG9y
ZShDcmVkZW50aWFsKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCi1QQVNTIENyZWRlbnRpYWxzQ29u
dGFpbmVyIGludGVyZmFjZTogY2FsbGluZyBzdG9yZShDcmVkZW50aWFsKSBvbiBuYXZpZ2F0b3Iu
Y3JlZGVudGlhbHMgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAK
LVBBU1MgQ3JlZGVudGlhbHNDb250YWluZXIgaW50ZXJmYWNlOiBuYXZpZ2F0b3IuY3JlZGVudGlh
bHMgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJjcmVhdGUoQ3JlZGVudGlhbENyZWF0aW9uT3B0aW9u
cykiIHdpdGggdGhlIHByb3BlciB0eXBlIAotUEFTUyBDcmVkZW50aWFsc0NvbnRhaW5lciBpbnRl
cmZhY2U6IGNhbGxpbmcgY3JlYXRlKENyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMpIG9uIG5hdmln
YXRvci5jcmVkZW50aWFscyB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVy
cm9yIAotUEFTUyBDcmVkZW50aWFsc0NvbnRhaW5lciBpbnRlcmZhY2U6IG5hdmlnYXRvci5jcmVk
ZW50aWFscyBtdXN0IGluaGVyaXQgcHJvcGVydHkgInByZXZlbnRTaWxlbnRBY2Nlc3MoKSIgd2l0
aCB0aGUgcHJvcGVyIHR5cGUgCi1GQUlMIFBhc3N3b3JkQ3JlZGVudGlhbCBpbnRlcmZhY2U6IGV4
aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IGFzc2VydF9vd25fcHJv
cGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlBhc3N3b3JkQ3JlZGVudGlh
bCIgZXhwZWN0ZWQgcHJvcGVydHkgIlBhc3N3b3JkQ3JlZGVudGlhbCIgbWlzc2luZwotRkFJTCBQ
YXNzd29yZENyZWRlbnRpYWwgaW50ZXJmYWNlIG9iamVjdCBsZW5ndGggYXNzZXJ0X293bl9wcm9w
ZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiUGFzc3dvcmRDcmVkZW50aWFs
IiBleHBlY3RlZCBwcm9wZXJ0eSAiUGFzc3dvcmRDcmVkZW50aWFsIiBtaXNzaW5nCi1GQUlMIFBh
c3N3b3JkQ3JlZGVudGlhbCBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUgYXNzZXJ0X293bl9wcm9wZXJ0
eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiUGFzc3dvcmRDcmVkZW50aWFsIiBl
eHBlY3RlZCBwcm9wZXJ0eSAiUGFzc3dvcmRDcmVkZW50aWFsIiBtaXNzaW5nCi1GQUlMIFBhc3N3
b3JkQ3JlZGVudGlhbCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRl
cmZhY2UgcHJvdG90eXBlIG9iamVjdCBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90
IGhhdmUgb3duIHByb3BlcnR5ICJQYXNzd29yZENyZWRlbnRpYWwiIGV4cGVjdGVkIHByb3BlcnR5
ICJQYXNzd29yZENyZWRlbnRpYWwiIG1pc3NpbmcKLUZBSUwgUGFzc3dvcmRDcmVkZW50aWFsIGlu
dGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUg
b2JqZWN0J3MgImNvbnN0cnVjdG9yIiBwcm9wZXJ0eSBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxm
IGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJQYXNzd29yZENyZWRlbnRpYWwiIGV4cGVjdGVk
IHByb3BlcnR5ICJQYXNzd29yZENyZWRlbnRpYWwiIG1pc3NpbmcKLUZBSUwgUGFzc3dvcmRDcmVk
ZW50aWFsIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBw
cm90b3R5cGUgb2JqZWN0J3MgQEB1bnNjb3BhYmxlcyBwcm9wZXJ0eSBhc3NlcnRfb3duX3Byb3Bl
cnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJQYXNzd29yZENyZWRlbnRpYWwi
IGV4cGVjdGVkIHByb3BlcnR5ICJQYXNzd29yZENyZWRlbnRpYWwiIG1pc3NpbmcKLUZBSUwgUGFz
c3dvcmRDcmVkZW50aWFsIGludGVyZmFjZTogYXR0cmlidXRlIHBhc3N3b3JkIGFzc2VydF9vd25f
cHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlBhc3N3b3JkQ3JlZGVu
dGlhbCIgZXhwZWN0ZWQgcHJvcGVydHkgIlBhc3N3b3JkQ3JlZGVudGlhbCIgbWlzc2luZwotRkFJ
TCBQYXNzd29yZENyZWRlbnRpYWwgbXVzdCBiZSBwcmltYXJ5IGludGVyZmFjZSBvZiBuZXcgUGFz
c3dvcmRDcmVkZW50aWFsKHsgaWQ6ICJpZCIsIHBhc3N3b3JkOiAicGVuY2lsIiwgaWNvblVSTDog
Imh0dHBzOi8vZXhhbXBsZS5jb20vIiwgbmFtZTogIm5hbWUiIH0pIGFzc2VydF9lcXVhbHM6IFVu
ZXhwZWN0ZWQgZXhjZXB0aW9uIHdoZW4gZXZhbHVhdGluZyBvYmplY3QgZXhwZWN0ZWQgbnVsbCBi
dXQgZ290IG9iamVjdCAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IFBhc3N3
b3JkQ3JlZGVudGlhbCIKLUZBSUwgU3RyaW5naWZpY2F0aW9uIG9mIG5ldyBQYXNzd29yZENyZWRl
bnRpYWwoeyBpZDogImlkIiwgcGFzc3dvcmQ6ICJwZW5jaWwiLCBpY29uVVJMOiAiaHR0cHM6Ly9l
eGFtcGxlLmNvbS8iLCBuYW1lOiAibmFtZSIgfSkgYXNzZXJ0X2VxdWFsczogVW5leHBlY3RlZCBl
eGNlcHRpb24gd2hlbiBldmFsdWF0aW5nIG9iamVjdCBleHBlY3RlZCBudWxsIGJ1dCBnb3Qgb2Jq
ZWN0ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogUGFzc3dvcmRDcmVkZW50
aWFsIgotRkFJTCBQYXNzd29yZENyZWRlbnRpYWwgaW50ZXJmYWNlOiBuZXcgUGFzc3dvcmRDcmVk
ZW50aWFsKHsgaWQ6ICJpZCIsIHBhc3N3b3JkOiAicGVuY2lsIiwgaWNvblVSTDogImh0dHBzOi8v
ZXhhbXBsZS5jb20vIiwgbmFtZTogIm5hbWUiIH0pIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAicGFz
c3dvcmQiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9lcXVhbHM6IFVuZXhwZWN0ZWQgZXhj
ZXB0aW9uIHdoZW4gZXZhbHVhdGluZyBvYmplY3QgZXhwZWN0ZWQgbnVsbCBidXQgZ290IG9iamVj
dCAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IFBhc3N3b3JkQ3JlZGVudGlh
bCIKLUZBSUwgRmVkZXJhdGVkQ3JlZGVudGlhbCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJv
cGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9l
cyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIkZlZGVyYXRlZENyZWRlbnRpYWwiIGV4cGVjdGVkIHBy
b3BlcnR5ICJGZWRlcmF0ZWRDcmVkZW50aWFsIiBtaXNzaW5nCi1GQUlMIEZlZGVyYXRlZENyZWRl
bnRpYWwgaW50ZXJmYWNlIG9iamVjdCBsZW5ndGggYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBk
b2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiRmVkZXJhdGVkQ3JlZGVudGlhbCIgZXhwZWN0ZWQg
cHJvcGVydHkgIkZlZGVyYXRlZENyZWRlbnRpYWwiIG1pc3NpbmcKLUZBSUwgRmVkZXJhdGVkQ3Jl
ZGVudGlhbCBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBk
b2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiRmVkZXJhdGVkQ3JlZGVudGlhbCIgZXhwZWN0ZWQg
cHJvcGVydHkgIkZlZGVyYXRlZENyZWRlbnRpYWwiIG1pc3NpbmcKLUZBSUwgRmVkZXJhdGVkQ3Jl
ZGVudGlhbCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ug
cHJvdG90eXBlIG9iamVjdCBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUg
b3duIHByb3BlcnR5ICJGZWRlcmF0ZWRDcmVkZW50aWFsIiBleHBlY3RlZCBwcm9wZXJ0eSAiRmVk
ZXJhdGVkQ3JlZGVudGlhbCIgbWlzc2luZwotRkFJTCBGZWRlcmF0ZWRDcmVkZW50aWFsIGludGVy
ZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2Jq
ZWN0J3MgImNvbnN0cnVjdG9yIiBwcm9wZXJ0eSBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRv
ZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJGZWRlcmF0ZWRDcmVkZW50aWFsIiBleHBlY3RlZCBw
cm9wZXJ0eSAiRmVkZXJhdGVkQ3JlZGVudGlhbCIgbWlzc2luZwotRkFJTCBGZWRlcmF0ZWRDcmVk
ZW50aWFsIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBw
cm90b3R5cGUgb2JqZWN0J3MgQEB1bnNjb3BhYmxlcyBwcm9wZXJ0eSBhc3NlcnRfb3duX3Byb3Bl
cnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJGZWRlcmF0ZWRDcmVkZW50aWFs
IiBleHBlY3RlZCBwcm9wZXJ0eSAiRmVkZXJhdGVkQ3JlZGVudGlhbCIgbWlzc2luZwotRkFJTCBG
ZWRlcmF0ZWRDcmVkZW50aWFsIGludGVyZmFjZTogYXR0cmlidXRlIHByb3ZpZGVyIGFzc2VydF9v
d25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIkZlZGVyYXRlZENy
ZWRlbnRpYWwiIGV4cGVjdGVkIHByb3BlcnR5ICJGZWRlcmF0ZWRDcmVkZW50aWFsIiBtaXNzaW5n
Ci1GQUlMIEZlZGVyYXRlZENyZWRlbnRpYWwgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgcHJvdG9jb2wg
YXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiRmVk
ZXJhdGVkQ3JlZGVudGlhbCIgZXhwZWN0ZWQgcHJvcGVydHkgIkZlZGVyYXRlZENyZWRlbnRpYWwi
IG1pc3NpbmcKLUZBSUwgRmVkZXJhdGVkQ3JlZGVudGlhbCBtdXN0IGJlIHByaW1hcnkgaW50ZXJm
YWNlIG9mIG5ldyBGZWRlcmF0ZWRDcmVkZW50aWFsKHsgaWQ6ICJpZCIsIHByb3ZpZGVyOiAiaHR0
cHM6Ly9leGFtcGxlLmNvbSIsIGljb25VUkw6ICJodHRwczovL2V4YW1wbGUuY29tLyIsIG5hbWU6
ICJuYW1lIiB9KSBhc3NlcnRfZXF1YWxzOiBVbmV4cGVjdGVkIGV4Y2VwdGlvbiB3aGVuIGV2YWx1
YXRpbmcgb2JqZWN0IGV4cGVjdGVkIG51bGwgYnV0IGdvdCBvYmplY3QgIlJlZmVyZW5jZUVycm9y
OiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBGZWRlcmF0ZWRDcmVkZW50aWFsIgotRkFJTCBTdHJpbmdp
ZmljYXRpb24gb2YgbmV3IEZlZGVyYXRlZENyZWRlbnRpYWwoeyBpZDogImlkIiwgcHJvdmlkZXI6
ICJodHRwczovL2V4YW1wbGUuY29tIiwgaWNvblVSTDogImh0dHBzOi8vZXhhbXBsZS5jb20vIiwg
bmFtZTogIm5hbWUiIH0pIGFzc2VydF9lcXVhbHM6IFVuZXhwZWN0ZWQgZXhjZXB0aW9uIHdoZW4g
ZXZhbHVhdGluZyBvYmplY3QgZXhwZWN0ZWQgbnVsbCBidXQgZ290IG9iamVjdCAiUmVmZXJlbmNl
RXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IEZlZGVyYXRlZENyZWRlbnRpYWwiCi1GQUlMIEZl
ZGVyYXRlZENyZWRlbnRpYWwgaW50ZXJmYWNlOiBuZXcgRmVkZXJhdGVkQ3JlZGVudGlhbCh7IGlk
OiAiaWQiLCBwcm92aWRlcjogImh0dHBzOi8vZXhhbXBsZS5jb20iLCBpY29uVVJMOiAiaHR0cHM6
Ly9leGFtcGxlLmNvbS8iLCBuYW1lOiAibmFtZSIgfSkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJw
cm92aWRlciIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2VxdWFsczogVW5leHBlY3RlZCBl
eGNlcHRpb24gd2hlbiBldmFsdWF0aW5nIG9iamVjdCBleHBlY3RlZCBudWxsIGJ1dCBnb3Qgb2Jq
ZWN0ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogRmVkZXJhdGVkQ3JlZGVu
dGlhbCIKLUZBSUwgRmVkZXJhdGVkQ3JlZGVudGlhbCBpbnRlcmZhY2U6IG5ldyBGZWRlcmF0ZWRD
cmVkZW50aWFsKHsgaWQ6ICJpZCIsIHByb3ZpZGVyOiAiaHR0cHM6Ly9leGFtcGxlLmNvbSIsIGlj
b25VUkw6ICJodHRwczovL2V4YW1wbGUuY29tLyIsIG5hbWU6ICJuYW1lIiB9KSBtdXN0IGluaGVy
aXQgcHJvcGVydHkgInByb3RvY29sIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBhc3NlcnRfZXF1YWxz
OiBVbmV4cGVjdGVkIGV4Y2VwdGlvbiB3aGVuIGV2YWx1YXRpbmcgb2JqZWN0IGV4cGVjdGVkIG51
bGwgYnV0IGdvdCBvYmplY3QgIlJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBG
ZWRlcmF0ZWRDcmVkZW50aWFsIgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2NyZWRlbnRpYWwtbWFuYWdlbWVudC9pZGwuaHR0cHMuaHRt
bCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3JlZGVudGlh
bC1tYW5hZ2VtZW50L2lkbC5odHRwcy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA4NzU0YjVhMzBiNmMyYzRhYzM4NmUwOWE4MjA5Njc3NDUwNGEyZjJlLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3JlZGVudGlhbC1tYW5hZ2VtZW50L2lkbC5odHRwcy5odG1s
CisrKyAvZGV2L251bGwKQEAgLTEsMTAzICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPHNjcmlw
dCBzcmM9L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcz48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPS9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanM+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0vcmVz
b3VyY2VzL1dlYklETFBhcnNlci5qcz48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPS9yZXNvdXJjZXMv
aWRsaGFybmVzcy5qcz48L3NjcmlwdD4KLTxzY3JpcHQgdHlwZT0idGV4dC9wbGFpbiIgaWQ9InVu
dGVzdGVkIj4KLSAgICBkaWN0aW9uYXJ5IENyZWRlbnRpYWxEYXRhIHsKLSAgICAgIFVTVlN0cmlu
ZyBpZDsKLSAgICB9OwotCi0gICAgW0V4cG9zZWQ9V2luZG93LCBTZWN1cmVDb250ZXh0XQotICAg
IGludGVyZmFjZSBDcmVkZW50aWFsIHsKLSAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBVU1ZTdHJp
bmcgaWQ7Ci0gICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHR5cGU7Ci0gICAgfTsK
LQotICAgIFtOb0ludGVyZmFjZU9iamVjdCwgU2VjdXJlQ29udGV4dF0KLSAgICBpbnRlcmZhY2Ug
Q3JlZGVudGlhbFVzZXJEYXRhIHsKLSAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBVU1ZTdHJpbmcg
bmFtZTsKLSAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBVU1ZTdHJpbmcgaWNvblVSTDsKLSAgICB9
OwotCi0gICAgZGljdGlvbmFyeSBQYXNzd29yZENyZWRlbnRpYWxEYXRhIDogQ3JlZGVudGlhbERh
dGEgewotICAgICAgVVNWU3RyaW5nIG5hbWU7Ci0gICAgICBVU1ZTdHJpbmcgaWNvblVSTDsKLSAg
ICAgIHJlcXVpcmVkIFVTVlN0cmluZyBwYXNzd29yZDsKLSAgICB9OwotCi0gICAgdHlwZWRlZiAo
UGFzc3dvcmRDcmVkZW50aWFsRGF0YSBvciBIVE1MRm9ybUVsZW1lbnQpIFBhc3N3b3JkQ3JlZGVu
dGlhbEluaXQ7Ci0KLSAgICB0eXBlZGVmIChGb3JtRGF0YSBvciBVUkxTZWFyY2hQYXJhbXMpIENy
ZWRlbnRpYWxCb2R5VHlwZTsKLQotCi0gICAgZGljdGlvbmFyeSBGZWRlcmF0ZWRDcmVkZW50aWFs
SW5pdCA6IENyZWRlbnRpYWxEYXRhIHsKLSAgICAgIFVTVlN0cmluZyBuYW1lOwotICAgICAgVVNW
U3RyaW5nIGljb25VUkw7Ci0gICAgICByZXF1aXJlZCBVU1ZTdHJpbmcgcHJvdmlkZXI7Ci0gICAg
ICBET01TdHJpbmcgcHJvdG9jb2w7Ci0gICAgfTsKLQotICAgIGRpY3Rpb25hcnkgQ3JlZGVudGlh
bENyZWF0aW9uT3B0aW9ucyB7Ci0gICAgICBQYXNzd29yZENyZWRlbnRpYWxJbml0PyBwYXNzd29y
ZDsKLSAgICAgIEZlZGVyYXRlZENyZWRlbnRpYWxJbml0PyBmZWRlcmF0ZWQ7Ci0gICAgfTsKLQot
ICAgIGVudW0gQ3JlZGVudGlhbE1lZGlhdGlvblJlcXVpcmVtZW50IHsKLSAgICAgICJzaWxlbnQi
LAotICAgICAgIm9wdGlvbmFsIiwKLSAgICAgICJyZXF1aXJlZCIKLSAgICB9OwotCi0gICAgZGlj
dGlvbmFyeSBDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMgewotICAgICAgYm9vbGVhbiBwYXNzd29y
ZCA9IGZhbHNlOwotICAgICAgRmVkZXJhdGVkQ3JlZGVudGlhbFJlcXVlc3RPcHRpb25zIGZlZGVy
YXRlZDsKLQotICAgICAgQ3JlZGVudGlhbE1lZGlhdGlvblJlcXVpcmVtZW50IG1lZGlhdGlvbiA9
ICJvcHRpb25hbCI7Ci0gICAgfTsKLQotICAgIGRpY3Rpb25hcnkgRmVkZXJhdGVkQ3JlZGVudGlh
bFJlcXVlc3RPcHRpb25zIHsKLSAgICAgIHNlcXVlbmNlPFVTVlN0cmluZz4gcHJvdmlkZXJzOwot
ICAgICAgc2VxdWVuY2U8RE9NU3RyaW5nPiBwcm90b2NvbHM7Ci0gICAgfTsKLQotPC9zY3JpcHQ+
Ci08c2NyaXB0IHR5cGU9InRleHQvcGxhaW4iIGlkPSJ0ZXN0ZWQiPgotICAgIFtFeHBvc2VkPVdp
bmRvdywgU2VjdXJlQ29udGV4dF0KLSAgICBpbnRlcmZhY2UgQ3JlZGVudGlhbHNDb250YWluZXIg
ewotICAgICAgUHJvbWlzZTxDcmVkZW50aWFsPiBnZXQob3B0aW9uYWwgQ3JlZGVudGlhbFJlcXVl
c3RPcHRpb25zIG9wdGlvbnMpOwotICAgICAgUHJvbWlzZTxDcmVkZW50aWFsPiBzdG9yZShDcmVk
ZW50aWFsIGNyZWRlbnRpYWwpOwotICAgICAgUHJvbWlzZTxDcmVkZW50aWFsPz4gY3JlYXRlKG9w
dGlvbmFsIENyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMgb3B0aW9ucyk7Ci0gICAgICBQcm9taXNl
PHZvaWQ+IHByZXZlbnRTaWxlbnRBY2Nlc3MoKTsKLSAgICB9OwotCi0gICAgW0NvbnN0cnVjdG9y
KFBhc3N3b3JkQ3JlZGVudGlhbERhdGEgZGF0YSksCi0gICAgIENvbnN0cnVjdG9yKEhUTUxGb3Jt
RWxlbWVudCBmb3JtKSwKLSAgICAgRXhwb3NlZD1XaW5kb3csCi0gICAgIFNlY3VyZUNvbnRleHRd
Ci0gICAgaW50ZXJmYWNlIFBhc3N3b3JkQ3JlZGVudGlhbCA6IENyZWRlbnRpYWwgewotICAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBwYXNzd29yZDsKLSAgICB9OwotICAgIFBhc3N3
b3JkQ3JlZGVudGlhbCBpbXBsZW1lbnRzIENyZWRlbnRpYWxVc2VyRGF0YTsKLQotICAgIFtDb25z
dHJ1Y3RvcihGZWRlcmF0ZWRDcmVkZW50aWFsSW5pdCBkYXRhKSwKLSAgICAgRXhwb3NlZD1XaW5k
b3csCi0gICAgIFNlY3VyZUNvbnRleHRdCi0gICAgaW50ZXJmYWNlIEZlZGVyYXRlZENyZWRlbnRp
YWwgOiBDcmVkZW50aWFsIHsKLSAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBVU1ZTdHJpbmcgcHJv
dmlkZXI7Ci0gICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nPyBwcm90b2NvbDsKLSAg
ICB9OwotICAgIEZlZGVyYXRlZENyZWRlbnRpYWwgaW1wbGVtZW50cyBDcmVkZW50aWFsVXNlckRh
dGE7Ci08L3NjcmlwdD4KLTxzY3JpcHQ+Ci0gICAgInVzZSBzdHJpY3QiOwotICAgIHZhciBpZGxf
YXJyYXkgPSBuZXcgSWRsQXJyYXkoKTsKLSAgICBpZGxfYXJyYXkuYWRkX3VudGVzdGVkX2lkbHMo
ZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3VudGVzdGVkJykudGV4dENvbnRlbnQpOwotICAgIGlk
bF9hcnJheS5hZGRfaWRscyhkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjdGVzdGVkJykudGV4dENv
bnRlbnQpOwotICAgIGlkbF9hcnJheS5hZGRfb2JqZWN0cyh7Ci0gICAgICBDcmVkZW50aWFsc0Nv
bnRhaW5lcjogWyduYXZpZ2F0b3IuY3JlZGVudGlhbHMnXSwKLSAgICAgIFBhc3N3b3JkQ3JlZGVu
dGlhbDogWyduZXcgUGFzc3dvcmRDcmVkZW50aWFsKHsgaWQ6ICJpZCIsIHBhc3N3b3JkOiAicGVu
Y2lsIiwgaWNvblVSTDogImh0dHBzOi8vZXhhbXBsZS5jb20vIiwgbmFtZTogIm5hbWUiIH0pJ10s
Ci0gICAgICBGZWRlcmF0ZWRDcmVkZW50aWFsOiBbJ25ldyBGZWRlcmF0ZWRDcmVkZW50aWFsKHsg
aWQ6ICJpZCIsIHByb3ZpZGVyOiAiaHR0cHM6Ly9leGFtcGxlLmNvbSIsIGljb25VUkw6ICJodHRw
czovL2V4YW1wbGUuY29tLyIsIG5hbWU6ICJuYW1lIiB9KSddCi0gICAgfSk7Ci0gICAgaWRsX2Fy
cmF5LnRlc3QoKTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jcmVkZW50aWFsLW1hbmFnZW1lbnQvaWRsaGFybmVzcy5o
dHRwcy53aW5kb3ctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jcmVkZW50aWFsLW1hbmFnZW1lbnQvaWRsaGFybmVzcy5odHRwcy53aW5k
b3ctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFmODI0NWM4MTIxOGQ1NWExMGI1ZGY3YTJhNmQ2
ZWYzOWI3Mjk0ODIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2NyZWRlbnRpYWwtbWFuYWdlbWVudC9pZGxoYXJuZXNzLmh0dHBz
LndpbmRvdy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw3MCBAQAorCitQQVNTIGlkbF90ZXN0IHNl
dHVwIAorUEFTUyBQYXJ0aWFsIGludGVyZmFjZSBOYXZpZ2F0b3I6IG9yaWdpbmFsIGludGVyZmFj
ZSBkZWZpbmVkIAorUEFTUyBQYXJ0aWFsIGRpY3Rpb25hcnkgQ3JlZGVudGlhbFJlcXVlc3RPcHRp
b25zOiBvcmlnaW5hbCBkaWN0aW9uYXJ5IGRlZmluZWQgCitQQVNTIFBhcnRpYWwgZGljdGlvbmFy
eSBDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zOiBvcmlnaW5hbCBkaWN0aW9uYXJ5IGRlZmluZWQg
CitQQVNTIFBhcnRpYWwgZGljdGlvbmFyeSBDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnNbMl06IG9y
aWdpbmFsIGRpY3Rpb25hcnkgZGVmaW5lZCAKK1BBU1MgUGFydGlhbCBkaWN0aW9uYXJ5IENyZWRl
bnRpYWxDcmVhdGlvbk9wdGlvbnNbMl06IG9yaWdpbmFsIGRpY3Rpb25hcnkgZGVmaW5lZCAKK1BB
U1MgQ3JlZGVudGlhbCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRl
cmZhY2Ugb2JqZWN0IAorUEFTUyBDcmVkZW50aWFsIGludGVyZmFjZSBvYmplY3QgbGVuZ3RoIAor
UEFTUyBDcmVkZW50aWFsIGludGVyZmFjZSBvYmplY3QgbmFtZSAKK1BBU1MgQ3JlZGVudGlhbCBp
bnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBl
IG9iamVjdCAKK1BBU1MgQ3JlZGVudGlhbCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVy
dGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzICJjb25zdHJ1Y3RvciIgcHJvcGVy
dHkgCitQQVNTIENyZWRlbnRpYWwgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMg
b2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyBAQHVuc2NvcGFibGVzIHByb3BlcnR5IAor
UEFTUyBDcmVkZW50aWFsIGludGVyZmFjZTogYXR0cmlidXRlIGlkIAorUEFTUyBDcmVkZW50aWFs
IGludGVyZmFjZTogYXR0cmlidXRlIHR5cGUgCitQQVNTIENyZWRlbnRpYWxzQ29udGFpbmVyIGlu
dGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgCitQ
QVNTIENyZWRlbnRpYWxzQ29udGFpbmVyIGludGVyZmFjZSBvYmplY3QgbGVuZ3RoIAorUEFTUyBD
cmVkZW50aWFsc0NvbnRhaW5lciBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUgCitQQVNTIENyZWRlbnRp
YWxzQ29udGFpbmVyIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVy
ZmFjZSBwcm90b3R5cGUgb2JqZWN0IAorUEFTUyBDcmVkZW50aWFsc0NvbnRhaW5lciBpbnRlcmZh
Y2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVj
dCdzICJjb25zdHJ1Y3RvciIgcHJvcGVydHkgCitQQVNTIENyZWRlbnRpYWxzQ29udGFpbmVyIGlu
dGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUg
b2JqZWN0J3MgQEB1bnNjb3BhYmxlcyBwcm9wZXJ0eSAKK1BBU1MgQ3JlZGVudGlhbHNDb250YWlu
ZXIgaW50ZXJmYWNlOiBvcGVyYXRpb24gZ2V0KENyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucykgCitQ
QVNTIENyZWRlbnRpYWxzQ29udGFpbmVyIGludGVyZmFjZTogb3BlcmF0aW9uIHN0b3JlKENyZWRl
bnRpYWwpIAorUEFTUyBDcmVkZW50aWFsc0NvbnRhaW5lciBpbnRlcmZhY2U6IG9wZXJhdGlvbiBj
cmVhdGUoQ3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucykgCitQQVNTIENyZWRlbnRpYWxzQ29udGFp
bmVyIGludGVyZmFjZTogb3BlcmF0aW9uIHByZXZlbnRTaWxlbnRBY2Nlc3MoKSAKK1BBU1MgQ3Jl
ZGVudGlhbHNDb250YWluZXIgbXVzdCBiZSBwcmltYXJ5IGludGVyZmFjZSBvZiBuYXZpZ2F0b3Iu
Y3JlZGVudGlhbHMgCitQQVNTIFN0cmluZ2lmaWNhdGlvbiBvZiBuYXZpZ2F0b3IuY3JlZGVudGlh
bHMgCitQQVNTIENyZWRlbnRpYWxzQ29udGFpbmVyIGludGVyZmFjZTogbmF2aWdhdG9yLmNyZWRl
bnRpYWxzIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiZ2V0KENyZWRlbnRpYWxSZXF1ZXN0T3B0aW9u
cykiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBDcmVkZW50aWFsc0NvbnRhaW5lciBpbnRl
cmZhY2U6IGNhbGxpbmcgZ2V0KENyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucykgb24gbmF2aWdhdG9y
LmNyZWRlbnRpYWxzIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3Ig
CitQQVNTIENyZWRlbnRpYWxzQ29udGFpbmVyIGludGVyZmFjZTogbmF2aWdhdG9yLmNyZWRlbnRp
YWxzIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAic3RvcmUoQ3JlZGVudGlhbCkiIHdpdGggdGhlIHBy
b3BlciB0eXBlIAorUEFTUyBDcmVkZW50aWFsc0NvbnRhaW5lciBpbnRlcmZhY2U6IGNhbGxpbmcg
c3RvcmUoQ3JlZGVudGlhbCkgb24gbmF2aWdhdG9yLmNyZWRlbnRpYWxzIHdpdGggdG9vIGZldyBh
cmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCitQQVNTIENyZWRlbnRpYWxzQ29udGFpbmVy
IGludGVyZmFjZTogbmF2aWdhdG9yLmNyZWRlbnRpYWxzIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAi
Y3JlYXRlKENyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAK
K1BBU1MgQ3JlZGVudGlhbHNDb250YWluZXIgaW50ZXJmYWNlOiBjYWxsaW5nIGNyZWF0ZShDcmVk
ZW50aWFsQ3JlYXRpb25PcHRpb25zKSBvbiBuYXZpZ2F0b3IuY3JlZGVudGlhbHMgd2l0aCB0b28g
ZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKK1BBU1MgQ3JlZGVudGlhbHNDb250
YWluZXIgaW50ZXJmYWNlOiBuYXZpZ2F0b3IuY3JlZGVudGlhbHMgbXVzdCBpbmhlcml0IHByb3Bl
cnR5ICJwcmV2ZW50U2lsZW50QWNjZXNzKCkiIHdpdGggdGhlIHByb3BlciB0eXBlIAorRkFJTCBQ
YXNzd29yZENyZWRlbnRpYWwgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2Yg
aW50ZXJmYWNlIG9iamVjdCBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUg
b3duIHByb3BlcnR5ICJQYXNzd29yZENyZWRlbnRpYWwiIGV4cGVjdGVkIHByb3BlcnR5ICJQYXNz
d29yZENyZWRlbnRpYWwiIG1pc3NpbmcKK0ZBSUwgUGFzc3dvcmRDcmVkZW50aWFsIGludGVyZmFj
ZSBvYmplY3QgbGVuZ3RoIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBv
d24gcHJvcGVydHkgIlBhc3N3b3JkQ3JlZGVudGlhbCIgZXhwZWN0ZWQgcHJvcGVydHkgIlBhc3N3
b3JkQ3JlZGVudGlhbCIgbWlzc2luZworRkFJTCBQYXNzd29yZENyZWRlbnRpYWwgaW50ZXJmYWNl
IG9iamVjdCBuYW1lIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24g
cHJvcGVydHkgIlBhc3N3b3JkQ3JlZGVudGlhbCIgZXhwZWN0ZWQgcHJvcGVydHkgIlBhc3N3b3Jk
Q3JlZGVudGlhbCIgbWlzc2luZworRkFJTCBQYXNzd29yZENyZWRlbnRpYWwgaW50ZXJmYWNlOiBl
eGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgYXNz
ZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiUGFzc3dv
cmRDcmVkZW50aWFsIiBleHBlY3RlZCBwcm9wZXJ0eSAiUGFzc3dvcmRDcmVkZW50aWFsIiBtaXNz
aW5nCitGQUlMIFBhc3N3b3JkQ3JlZGVudGlhbCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJv
cGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzICJjb25zdHJ1Y3RvciIgcHJv
cGVydHkgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0
eSAiUGFzc3dvcmRDcmVkZW50aWFsIiBleHBlY3RlZCBwcm9wZXJ0eSAiUGFzc3dvcmRDcmVkZW50
aWFsIiBtaXNzaW5nCitGQUlMIFBhc3N3b3JkQ3JlZGVudGlhbCBpbnRlcmZhY2U6IGV4aXN0ZW5j
ZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzIEBAdW5zY29w
YWJsZXMgcHJvcGVydHkgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93
biBwcm9wZXJ0eSAiUGFzc3dvcmRDcmVkZW50aWFsIiBleHBlY3RlZCBwcm9wZXJ0eSAiUGFzc3dv
cmRDcmVkZW50aWFsIiBtaXNzaW5nCitGQUlMIFBhc3N3b3JkQ3JlZGVudGlhbCBpbnRlcmZhY2U6
IGF0dHJpYnV0ZSBwYXNzd29yZCBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhh
dmUgb3duIHByb3BlcnR5ICJQYXNzd29yZENyZWRlbnRpYWwiIGV4cGVjdGVkIHByb3BlcnR5ICJQ
YXNzd29yZENyZWRlbnRpYWwiIG1pc3NpbmcKK0ZBSUwgUGFzc3dvcmRDcmVkZW50aWFsIGludGVy
ZmFjZTogYXR0cmlidXRlIG5hbWUgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBo
YXZlIG93biBwcm9wZXJ0eSAiUGFzc3dvcmRDcmVkZW50aWFsIiBleHBlY3RlZCBwcm9wZXJ0eSAi
UGFzc3dvcmRDcmVkZW50aWFsIiBtaXNzaW5nCitGQUlMIFBhc3N3b3JkQ3JlZGVudGlhbCBpbnRl
cmZhY2U6IGF0dHJpYnV0ZSBpY29uVVJMIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBu
b3QgaGF2ZSBvd24gcHJvcGVydHkgIlBhc3N3b3JkQ3JlZGVudGlhbCIgZXhwZWN0ZWQgcHJvcGVy
dHkgIlBhc3N3b3JkQ3JlZGVudGlhbCIgbWlzc2luZworRkFJTCBQYXNzd29yZENyZWRlbnRpYWwg
bXVzdCBiZSBwcmltYXJ5IGludGVyZmFjZSBvZiBwYXNzd29yZENyZWRlbnRpYWwgYXNzZXJ0X2Vx
dWFsczogVW5leHBlY3RlZCBleGNlcHRpb24gd2hlbiBldmFsdWF0aW5nIG9iamVjdCBleHBlY3Rl
ZCBudWxsIGJ1dCBnb3Qgb2JqZWN0ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJs
ZTogcGFzc3dvcmRDcmVkZW50aWFsIgorRkFJTCBTdHJpbmdpZmljYXRpb24gb2YgcGFzc3dvcmRD
cmVkZW50aWFsIGFzc2VydF9lcXVhbHM6IFVuZXhwZWN0ZWQgZXhjZXB0aW9uIHdoZW4gZXZhbHVh
dGluZyBvYmplY3QgZXhwZWN0ZWQgbnVsbCBidXQgZ290IG9iamVjdCAiUmVmZXJlbmNlRXJyb3I6
IENhbid0IGZpbmQgdmFyaWFibGU6IHBhc3N3b3JkQ3JlZGVudGlhbCIKK0ZBSUwgUGFzc3dvcmRD
cmVkZW50aWFsIGludGVyZmFjZTogcGFzc3dvcmRDcmVkZW50aWFsIG11c3QgaW5oZXJpdCBwcm9w
ZXJ0eSAicGFzc3dvcmQiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9lcXVhbHM6IFVuZXhw
ZWN0ZWQgZXhjZXB0aW9uIHdoZW4gZXZhbHVhdGluZyBvYmplY3QgZXhwZWN0ZWQgbnVsbCBidXQg
Z290IG9iamVjdCAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IHBhc3N3b3Jk
Q3JlZGVudGlhbCIKK0ZBSUwgUGFzc3dvcmRDcmVkZW50aWFsIGludGVyZmFjZTogcGFzc3dvcmRD
cmVkZW50aWFsIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAibmFtZSIgd2l0aCB0aGUgcHJvcGVyIHR5
cGUgYXNzZXJ0X2VxdWFsczogVW5leHBlY3RlZCBleGNlcHRpb24gd2hlbiBldmFsdWF0aW5nIG9i
amVjdCBleHBlY3RlZCBudWxsIGJ1dCBnb3Qgb2JqZWN0ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3Qg
ZmluZCB2YXJpYWJsZTogcGFzc3dvcmRDcmVkZW50aWFsIgorRkFJTCBQYXNzd29yZENyZWRlbnRp
YWwgaW50ZXJmYWNlOiBwYXNzd29yZENyZWRlbnRpYWwgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJp
Y29uVVJMIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBhc3NlcnRfZXF1YWxzOiBVbmV4cGVjdGVkIGV4
Y2VwdGlvbiB3aGVuIGV2YWx1YXRpbmcgb2JqZWN0IGV4cGVjdGVkIG51bGwgYnV0IGdvdCBvYmpl
Y3QgIlJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBwYXNzd29yZENyZWRlbnRp
YWwiCitGQUlMIENyZWRlbnRpYWwgaW50ZXJmYWNlOiBwYXNzd29yZENyZWRlbnRpYWwgbXVzdCBp
bmhlcml0IHByb3BlcnR5ICJpZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2VxdWFsczog
VW5leHBlY3RlZCBleGNlcHRpb24gd2hlbiBldmFsdWF0aW5nIG9iamVjdCBleHBlY3RlZCBudWxs
IGJ1dCBnb3Qgb2JqZWN0ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogcGFz
c3dvcmRDcmVkZW50aWFsIgorRkFJTCBDcmVkZW50aWFsIGludGVyZmFjZTogcGFzc3dvcmRDcmVk
ZW50aWFsIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAidHlwZSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUg
YXNzZXJ0X2VxdWFsczogVW5leHBlY3RlZCBleGNlcHRpb24gd2hlbiBldmFsdWF0aW5nIG9iamVj
dCBleHBlY3RlZCBudWxsIGJ1dCBnb3Qgb2JqZWN0ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmlu
ZCB2YXJpYWJsZTogcGFzc3dvcmRDcmVkZW50aWFsIgorRkFJTCBGZWRlcmF0ZWRDcmVkZW50aWFs
IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3Qg
YXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiRmVk
ZXJhdGVkQ3JlZGVudGlhbCIgZXhwZWN0ZWQgcHJvcGVydHkgIkZlZGVyYXRlZENyZWRlbnRpYWwi
IG1pc3NpbmcKK0ZBSUwgRmVkZXJhdGVkQ3JlZGVudGlhbCBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0
aCBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJG
ZWRlcmF0ZWRDcmVkZW50aWFsIiBleHBlY3RlZCBwcm9wZXJ0eSAiRmVkZXJhdGVkQ3JlZGVudGlh
bCIgbWlzc2luZworRkFJTCBGZWRlcmF0ZWRDcmVkZW50aWFsIGludGVyZmFjZSBvYmplY3QgbmFt
ZSBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJG
ZWRlcmF0ZWRDcmVkZW50aWFsIiBleHBlY3RlZCBwcm9wZXJ0eSAiRmVkZXJhdGVkQ3JlZGVudGlh
bCIgbWlzc2luZworRkFJTCBGZWRlcmF0ZWRDcmVkZW50aWFsIGludGVyZmFjZTogZXhpc3RlbmNl
IGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IGFzc2VydF9vd25f
cHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIkZlZGVyYXRlZENyZWRl
bnRpYWwiIGV4cGVjdGVkIHByb3BlcnR5ICJGZWRlcmF0ZWRDcmVkZW50aWFsIiBtaXNzaW5nCitG
QUlMIEZlZGVyYXRlZENyZWRlbnRpYWwgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRp
ZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyAiY29uc3RydWN0b3IiIHByb3BlcnR5
IGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIkZl
ZGVyYXRlZENyZWRlbnRpYWwiIGV4cGVjdGVkIHByb3BlcnR5ICJGZWRlcmF0ZWRDcmVkZW50aWFs
IiBtaXNzaW5nCitGQUlMIEZlZGVyYXRlZENyZWRlbnRpYWwgaW50ZXJmYWNlOiBleGlzdGVuY2Ug
YW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyBAQHVuc2NvcGFi
bGVzIHByb3BlcnR5IGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24g
cHJvcGVydHkgIkZlZGVyYXRlZENyZWRlbnRpYWwiIGV4cGVjdGVkIHByb3BlcnR5ICJGZWRlcmF0
ZWRDcmVkZW50aWFsIiBtaXNzaW5nCitGQUlMIEZlZGVyYXRlZENyZWRlbnRpYWwgaW50ZXJmYWNl
OiBhdHRyaWJ1dGUgcHJvdmlkZXIgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBo
YXZlIG93biBwcm9wZXJ0eSAiRmVkZXJhdGVkQ3JlZGVudGlhbCIgZXhwZWN0ZWQgcHJvcGVydHkg
IkZlZGVyYXRlZENyZWRlbnRpYWwiIG1pc3NpbmcKK0ZBSUwgRmVkZXJhdGVkQ3JlZGVudGlhbCBp
bnRlcmZhY2U6IGF0dHJpYnV0ZSBwcm90b2NvbCBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRv
ZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJGZWRlcmF0ZWRDcmVkZW50aWFsIiBleHBlY3RlZCBw
cm9wZXJ0eSAiRmVkZXJhdGVkQ3JlZGVudGlhbCIgbWlzc2luZworRkFJTCBGZWRlcmF0ZWRDcmVk
ZW50aWFsIGludGVyZmFjZTogYXR0cmlidXRlIG5hbWUgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2Vs
ZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiRmVkZXJhdGVkQ3JlZGVudGlhbCIgZXhwZWN0
ZWQgcHJvcGVydHkgIkZlZGVyYXRlZENyZWRlbnRpYWwiIG1pc3NpbmcKK0ZBSUwgRmVkZXJhdGVk
Q3JlZGVudGlhbCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBpY29uVVJMIGFzc2VydF9vd25fcHJvcGVy
dHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIkZlZGVyYXRlZENyZWRlbnRpYWwi
IGV4cGVjdGVkIHByb3BlcnR5ICJGZWRlcmF0ZWRDcmVkZW50aWFsIiBtaXNzaW5nCitGQUlMIEZl
ZGVyYXRlZENyZWRlbnRpYWwgbXVzdCBiZSBwcmltYXJ5IGludGVyZmFjZSBvZiBmZWRlcmF0ZWRD
cmVkZW50aWFsIGFzc2VydF9lcXVhbHM6IFVuZXhwZWN0ZWQgZXhjZXB0aW9uIHdoZW4gZXZhbHVh
dGluZyBvYmplY3QgZXhwZWN0ZWQgbnVsbCBidXQgZ290IG9iamVjdCAiUmVmZXJlbmNlRXJyb3I6
IENhbid0IGZpbmQgdmFyaWFibGU6IGZlZGVyYXRlZENyZWRlbnRpYWwiCitGQUlMIFN0cmluZ2lm
aWNhdGlvbiBvZiBmZWRlcmF0ZWRDcmVkZW50aWFsIGFzc2VydF9lcXVhbHM6IFVuZXhwZWN0ZWQg
ZXhjZXB0aW9uIHdoZW4gZXZhbHVhdGluZyBvYmplY3QgZXhwZWN0ZWQgbnVsbCBidXQgZ290IG9i
amVjdCAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IGZlZGVyYXRlZENyZWRl
bnRpYWwiCitGQUlMIEZlZGVyYXRlZENyZWRlbnRpYWwgaW50ZXJmYWNlOiBmZWRlcmF0ZWRDcmVk
ZW50aWFsIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAicHJvdmlkZXIiIHdpdGggdGhlIHByb3BlciB0
eXBlIGFzc2VydF9lcXVhbHM6IFVuZXhwZWN0ZWQgZXhjZXB0aW9uIHdoZW4gZXZhbHVhdGluZyBv
YmplY3QgZXhwZWN0ZWQgbnVsbCBidXQgZ290IG9iamVjdCAiUmVmZXJlbmNlRXJyb3I6IENhbid0
IGZpbmQgdmFyaWFibGU6IGZlZGVyYXRlZENyZWRlbnRpYWwiCitGQUlMIEZlZGVyYXRlZENyZWRl
bnRpYWwgaW50ZXJmYWNlOiBmZWRlcmF0ZWRDcmVkZW50aWFsIG11c3QgaW5oZXJpdCBwcm9wZXJ0
eSAicHJvdG9jb2wiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9lcXVhbHM6IFVuZXhwZWN0
ZWQgZXhjZXB0aW9uIHdoZW4gZXZhbHVhdGluZyBvYmplY3QgZXhwZWN0ZWQgbnVsbCBidXQgZ290
IG9iamVjdCAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IGZlZGVyYXRlZENy
ZWRlbnRpYWwiCitGQUlMIEZlZGVyYXRlZENyZWRlbnRpYWwgaW50ZXJmYWNlOiBmZWRlcmF0ZWRD
cmVkZW50aWFsIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAibmFtZSIgd2l0aCB0aGUgcHJvcGVyIHR5
cGUgYXNzZXJ0X2VxdWFsczogVW5leHBlY3RlZCBleGNlcHRpb24gd2hlbiBldmFsdWF0aW5nIG9i
amVjdCBleHBlY3RlZCBudWxsIGJ1dCBnb3Qgb2JqZWN0ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3Qg
ZmluZCB2YXJpYWJsZTogZmVkZXJhdGVkQ3JlZGVudGlhbCIKK0ZBSUwgRmVkZXJhdGVkQ3JlZGVu
dGlhbCBpbnRlcmZhY2U6IGZlZGVyYXRlZENyZWRlbnRpYWwgbXVzdCBpbmhlcml0IHByb3BlcnR5
ICJpY29uVVJMIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBhc3NlcnRfZXF1YWxzOiBVbmV4cGVjdGVk
IGV4Y2VwdGlvbiB3aGVuIGV2YWx1YXRpbmcgb2JqZWN0IGV4cGVjdGVkIG51bGwgYnV0IGdvdCBv
YmplY3QgIlJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBmZWRlcmF0ZWRDcmVk
ZW50aWFsIgorRkFJTCBDcmVkZW50aWFsIGludGVyZmFjZTogZmVkZXJhdGVkQ3JlZGVudGlhbCBt
dXN0IGluaGVyaXQgcHJvcGVydHkgImlkIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBhc3NlcnRfZXF1
YWxzOiBVbmV4cGVjdGVkIGV4Y2VwdGlvbiB3aGVuIGV2YWx1YXRpbmcgb2JqZWN0IGV4cGVjdGVk
IG51bGwgYnV0IGdvdCBvYmplY3QgIlJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxl
OiBmZWRlcmF0ZWRDcmVkZW50aWFsIgorRkFJTCBDcmVkZW50aWFsIGludGVyZmFjZTogZmVkZXJh
dGVkQ3JlZGVudGlhbCBtdXN0IGluaGVyaXQgcHJvcGVydHkgInR5cGUiIHdpdGggdGhlIHByb3Bl
ciB0eXBlIGFzc2VydF9lcXVhbHM6IFVuZXhwZWN0ZWQgZXhjZXB0aW9uIHdoZW4gZXZhbHVhdGlu
ZyBvYmplY3QgZXhwZWN0ZWQgbnVsbCBidXQgZ290IG9iamVjdCAiUmVmZXJlbmNlRXJyb3I6IENh
bid0IGZpbmQgdmFyaWFibGU6IGZlZGVyYXRlZENyZWRlbnRpYWwiCitQQVNTIE5hdmlnYXRvciBp
bnRlcmZhY2U6IGF0dHJpYnV0ZSBjcmVkZW50aWFscyAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jcmVkZW50aWFsLW1hbmFnZW1lbnQv
aWRsaGFybmVzcy5odHRwcy53aW5kb3cuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3JlZGVudGlhbC1tYW5hZ2VtZW50L2lkbGhhcm5lc3MuaHR0cHMu
d2luZG93Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjM4MjkxMzUyOGU2OTNiM2E1ZDU2YzY2MGE0NTA2MDk4
MGI1NDhjMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvY3JlZGVudGlhbC1tYW5hZ2VtZW50L2lkbGhhcm5lc3MuaHR0cHMud2lu
ZG93Lmh0bWwKQEAgLTAsMCArMSBAQAorPCEtLSBUaGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9yIFdl
YktpdCB0ZXN0IGluZnJhc3RydWN0dXJlIHRvIHJ1biB0aGUgdGVtcGxhdGVkIHRlc3QgLS0+Clwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jcmVkZW50aWFsLW1hbmFnZW1lbnQvaWRsaGFybmVz
cy5odHRwcy53aW5kb3cuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2NyZWRlbnRpYWwtbWFuYWdlbWVudC9pZGxoYXJuZXNzLmh0dHBzLndpbmRvdy5qcwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi43ODk2NDNlMjM2OWZjYTBiYWVkMTI1NzliYzBjZmIyM2Y5NDNmNjFlCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jcmVkZW50aWFsLW1hbmFnZW1lbnQvaWRsaGFybmVzcy5odHRwcy53aW5kb3cuanMKQEAgLTAs
MCArMSwzNiBAQAorLy8gTUVUQTogc2NyaXB0PS9yZXNvdXJjZXMvV2ViSURMUGFyc2VyLmpzCisv
LyBNRVRBOiBzY3JpcHQ9L3Jlc291cmNlcy9pZGxoYXJuZXNzLmpzCisKKy8vIGh0dHBzOi8vdzNj
LmdpdGh1Yi5pby93ZWJhcHBzZWMtY3JlZGVudGlhbC1tYW5hZ2VtZW50LworCisndXNlIHN0cmlj
dCc7CisKK2lkbF90ZXN0KAorICBbJ2NyZWRlbnRpYWwtbWFuYWdlbWVudCddLAorICBbJ2h0bWwn
LCAnZG9tJ10sCisgIGlkbF9hcnJheSA9PiB7CisgICAgaWRsX2FycmF5LmFkZF9vYmplY3RzKHsK
KyAgICAgIENyZWRlbnRpYWxzQ29udGFpbmVyOiBbJ25hdmlnYXRvci5jcmVkZW50aWFscyddLAor
ICAgICAgUGFzc3dvcmRDcmVkZW50aWFsOiBbJ3Bhc3N3b3JkQ3JlZGVudGlhbCddLAorICAgICAg
RmVkZXJhdGVkQ3JlZGVudGlhbDogWydmZWRlcmF0ZWRDcmVkZW50aWFsJ10sCisgICAgfSk7CisK
KyAgICB0cnkgeworICAgICAgc2VsZi5wYXNzd29yZENyZWRlbnRpYWwgPSBuZXcgUGFzc3dvcmRD
cmVkZW50aWFsKHsKKyAgICAgICAgaWQ6ICJpZCIsCisgICAgICAgIHBhc3N3b3JkOiAicGVuY2ls
IiwKKyAgICAgICAgaWNvblVSTDogImh0dHBzOi8vZXhhbXBsZS5jb20vIiwKKyAgICAgICAgbmFt
ZTogIm5hbWUiCisgICAgICB9KTsKKyAgICB9IGNhdGNoIChlKSB7fQorCisgICAgdHJ5IHsKKyAg
ICAgIHNlbGYuZmVkZXJhdGVkQ3JlZGVudGlhbCA9IG5ldyBGZWRlcmF0ZWRDcmVkZW50aWFsKHsK
KyAgICAgICAgaWQ6ICJpZCIsCisgICAgICAgIHByb3ZpZGVyOiAiaHR0cHM6Ly9leGFtcGxlLmNv
bSIsCisgICAgICAgIGljb25VUkw6ICJodHRwczovL2V4YW1wbGUuY29tLyIsCisgICAgICAgIG5h
bWU6ICJuYW1lIgorICAgICAgfSk7CisgICAgfSBjYXRjaCAoZSkge30KKyAgfQorKQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jcmVkZW50
aWFsLW1hbmFnZW1lbnQvc3VwcG9ydC93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3JlZGVudGlhbC1tYW5hZ2VtZW50L3N1cHBvcnQv
dzNjLWltcG9ydC5sb2cKaW5kZXggYWYyMDRiZDY1NDRmZjFmOTQxZjNlYmFjZWYxY2VjMTgwMWJk
NDhkNC4uN2YzNGI5N2ZmMjYyMTQ1ZjE1MGRkM2NmZjk1Mjc5NGI2Njc2NTgwZCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jcmVkZW50aWFs
LW1hbmFnZW1lbnQvc3VwcG9ydC93M2MtaW1wb3J0LmxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2NyZWRlbnRpYWwtbWFuYWdlbWVudC9zdXBwb3J0
L3czYy1pbXBvcnQubG9nCkBAIC0xLDcgKzEsNyBAQAogVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0
b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCiBEbyBOT1QgbW9kaWZ5
IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KIEluc3RlYWQsIGNyZWF0ZSBhIHB1bGwg
cmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cworCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0
CiAKIFRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0
IHRvIHJlaW1wb3J0CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvY3JlZGVudGlhbC1tYW5hZ2VtZW50L3czYy1pbXBvcnQubG9nIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jcmVkZW50aWFsLW1hbmFn
ZW1lbnQvdzNjLWltcG9ydC5sb2cKaW5kZXggMmIxMTc2NWZmYjIxNDYyM2Y5MzBiNGQ1ZmVkOTJm
ZjBlYmRlMzQ4ZC4uN2Y5ZTgwZTIyZDc3NDVjNGY5MDAwMDY1NzU0M2ZiMzQwYWUxNTQ3ZSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jcmVk
ZW50aWFsLW1hbmFnZW1lbnQvdzNjLWltcG9ydC5sb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jcmVkZW50aWFsLW1hbmFnZW1lbnQvdzNjLWltcG9y
dC5sb2cKQEAgLTEsNyArMSw3IEBACiBUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBp
bXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KIERvIE5PVCBtb2RpZnkgdGhlc2UgdGVz
dHMgZGlyZWN0bHkgaW4gV2ViS2l0LgogSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9u
IHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzCisJaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKIAogVGhlbiBy
dW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBv
cnQKIApAQCAtMTQsOSArMTQsOSBAQCBQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBw
cmVmaXhlczoKIE5vbmUKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2NyZWRlbnRpYWwtbWFuYWdlbWVu
dC9PV05FUlMKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Ny
ZWRlbnRpYWwtbWFuYWdlbWVudC9NRVRBLnltbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3JlZGVudGlhbC1tYW5hZ2VtZW50L2NyZWRlbnRpYWxzY29udGFp
bmVyLWNyZWF0ZS1iYXNpY3MuaHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3JlZGVudGlhbC1tYW5hZ2VtZW50L2ZlZGVyYXRlZGNyZWRlbnRp
YWwtZnJhbWVkLWdldC5zdWIuaHR0cHMuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3JlZGVudGlhbC1tYW5hZ2VtZW50L2lkbC5odHRwcy5odG1sCisv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jcmVkZW50aWFsLW1h
bmFnZW1lbnQvaWRsaGFybmVzcy5odHRwcy53aW5kb3cuanMKIC9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2NyZWRlbnRpYWwtbWFuYWdlbWVudC9wYXNzd29yZGNy
ZWRlbnRpYWwtZnJhbWVkLWdldC5zdWIuaHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3JlZGVudGlhbC1tYW5hZ2VtZW50L3JlcXVpcmVfc2Vj
dXJlY29udGV4dC5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtcHJvcGVydGllcy12YWx1ZXMtYXBpL2lkbGhhcm5lc3Mt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3NzLXByb3BlcnRpZXMtdmFsdWVzLWFwaS9pZGxoYXJuZXNzLWV4cGVjdGVkLnR4dApp
bmRleCBiNjVmNTQ0ODVmYjYyN2RmMDgwZTRhYWY1Mjg3ZGZmN2E0OWIyZGFjLi4yMGM1YWYyZTI5
NDBhZmI1ZDYyMzBhNzg2NTBkNmQ2MTY0MTg2ZjZkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtcHJvcGVydGllcy12YWx1ZXMt
YXBpL2lkbGhhcm5lc3MtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1wcm9wZXJ0aWVzLXZhbHVlcy1hcGkvaWRsaGFy
bmVzcy1leHBlY3RlZC50eHQKQEAgLTEsMzAgKzEsMTYgQEAKIAotRkFJTCBUZXN0IElETCBpbXBs
ZW1lbnRhdGlvbiBvZiBDU1MgUHJvcGVydGllcyBWYWx1ZXMgQVBJIHByb21pc2VfdGVzdDogVW5o
YW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIkdvdCBhbiBlcnJvciBiZWZvcmUg
cGFyc2luZyBhbnkgbmFtZWQgZGVmaW5pdGlvbjogVW5yZWNvZ25pc2VkIHRva2VucywgbGluZSAx
ICh0b2tlbnM6ICJ7XCJlcnJvclwiOiB7XCJtZXNzYWdlXCIiKQotWwotICAgIHsKLSAgICAgICAg
InR5cGUiOiAieyIsCi0gICAgICAgICJ2YWx1ZSI6ICJ7IiwKLSAgICAgICAgInRyaXZpYSI6ICIi
Ci0gICAgfSwKLSAgICB7Ci0gICAgICAgICJ0eXBlIjogInN0cmluZyIsCi0gICAgICAgICJ2YWx1
ZSI6ICJcImVycm9yXCIiLAotICAgICAgICAidHJpdmlhIjogIiIKLSAgICB9LAotICAgIHsKLSAg
ICAgICAgInR5cGUiOiAiOiIsCi0gICAgICAgICJ2YWx1ZSI6ICI6IiwKLSAgICAgICAgInRyaXZp
YSI6ICIiCi0gICAgfSwKLSAgICB7Ci0gICAgICAgICJ0eXBlIjogInsiLAotICAgICAgICAidmFs
dWUiOiAieyIsCi0gICAgICAgICJ0cml2aWEiOiAiICIKLSAgICB9LAotICAgIHsKLSAgICAgICAg
InR5cGUiOiAic3RyaW5nIiwKLSAgICAgICAgInZhbHVlIjogIlwibWVzc2FnZVwiIiwKLSAgICAg
ICAgInRyaXZpYSI6ICIiCi0gICAgfQotXSIKK1BBU1MgaWRsX3Rlc3Qgc2V0dXAgCitQQVNTIFBh
cnRpYWwgbmFtZXNwYWNlIENTUzogb3JpZ2luYWwgbmFtZXNwYWNlIGRlZmluZWQgCitGQUlMIENT
U1Byb3BlcnR5UnVsZSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRl
cmZhY2Ugb2JqZWN0IGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24g
cHJvcGVydHkgIkNTU1Byb3BlcnR5UnVsZSIgZXhwZWN0ZWQgcHJvcGVydHkgIkNTU1Byb3BlcnR5
UnVsZSIgbWlzc2luZworRkFJTCBDU1NQcm9wZXJ0eVJ1bGUgaW50ZXJmYWNlIG9iamVjdCBsZW5n
dGggYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAi
Q1NTUHJvcGVydHlSdWxlIiBleHBlY3RlZCBwcm9wZXJ0eSAiQ1NTUHJvcGVydHlSdWxlIiBtaXNz
aW5nCitGQUlMIENTU1Byb3BlcnR5UnVsZSBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUgYXNzZXJ0X293
bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiQ1NTUHJvcGVydHlS
dWxlIiBleHBlY3RlZCBwcm9wZXJ0eSAiQ1NTUHJvcGVydHlSdWxlIiBtaXNzaW5nCitGQUlMIENT
U1Byb3BlcnR5UnVsZSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRl
cmZhY2UgcHJvdG90eXBlIG9iamVjdCBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90
IGhhdmUgb3duIHByb3BlcnR5ICJDU1NQcm9wZXJ0eVJ1bGUiIGV4cGVjdGVkIHByb3BlcnR5ICJD
U1NQcm9wZXJ0eVJ1bGUiIG1pc3NpbmcKK0ZBSUwgQ1NTUHJvcGVydHlSdWxlIGludGVyZmFjZTog
ZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3Mg
ImNvbnN0cnVjdG9yIiBwcm9wZXJ0eSBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90
IGhhdmUgb3duIHByb3BlcnR5ICJDU1NQcm9wZXJ0eVJ1bGUiIGV4cGVjdGVkIHByb3BlcnR5ICJD
U1NQcm9wZXJ0eVJ1bGUiIG1pc3NpbmcKK0ZBSUwgQ1NTUHJvcGVydHlSdWxlIGludGVyZmFjZTog
ZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3Mg
QEB1bnNjb3BhYmxlcyBwcm9wZXJ0eSBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90
IGhhdmUgb3duIHByb3BlcnR5ICJDU1NQcm9wZXJ0eVJ1bGUiIGV4cGVjdGVkIHByb3BlcnR5ICJD
U1NQcm9wZXJ0eVJ1bGUiIG1pc3NpbmcKK0ZBSUwgQ1NTUHJvcGVydHlSdWxlIGludGVyZmFjZTog
YXR0cmlidXRlIG5hbWUgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93
biBwcm9wZXJ0eSAiQ1NTUHJvcGVydHlSdWxlIiBleHBlY3RlZCBwcm9wZXJ0eSAiQ1NTUHJvcGVy
dHlSdWxlIiBtaXNzaW5nCitGQUlMIENTU1Byb3BlcnR5UnVsZSBpbnRlcmZhY2U6IGF0dHJpYnV0
ZSBzeW50YXggYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9w
ZXJ0eSAiQ1NTUHJvcGVydHlSdWxlIiBleHBlY3RlZCBwcm9wZXJ0eSAiQ1NTUHJvcGVydHlSdWxl
IiBtaXNzaW5nCitGQUlMIENTU1Byb3BlcnR5UnVsZSBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBpbmhl
cml0cyBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5
ICJDU1NQcm9wZXJ0eVJ1bGUiIGV4cGVjdGVkIHByb3BlcnR5ICJDU1NQcm9wZXJ0eVJ1bGUiIG1p
c3NpbmcKK0ZBSUwgQ1NTUHJvcGVydHlSdWxlIGludGVyZmFjZTogYXR0cmlidXRlIGluaXRpYWxW
YWx1ZSBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5
ICJDU1NQcm9wZXJ0eVJ1bGUiIGV4cGVjdGVkIHByb3BlcnR5ICJDU1NQcm9wZXJ0eVJ1bGUiIG1p
c3NpbmcKK1BBU1MgQ1NTIG5hbWVzcGFjZTogb3BlcmF0aW9uIGVzY2FwZShDU1NPTVN0cmluZykg
CitQQVNTIENTUyBuYW1lc3BhY2U6IG9wZXJhdGlvbiByZWdpc3RlclByb3BlcnR5KFByb3BlcnR5
RGVmaW5pdGlvbikgCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1wcm9wZXJ0aWVzLXZhbHVlcy1hcGkvaWRsaGFybmVzcy5o
dG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
LXByb3BlcnRpZXMtdmFsdWVzLWFwaS9pZGxoYXJuZXNzLmh0bWwKaW5kZXggZTU3ZjBmMDBjYTI2
Y2I2YTkzNDJiMWI2Zjg0MjU5ZTJiYjkwODc5MC4uNmYwNTM3NTdjM2NlZjA5OWYwY2VhNDE3MTZh
OTQyZGZhN2U2NjEwMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXByb3BlcnRpZXMtdmFsdWVzLWFwaS9pZGxoYXJuZXNzLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mv
Y3NzLXByb3BlcnRpZXMtdmFsdWVzLWFwaS9pZGxoYXJuZXNzLmh0bWwKQEAgLTgsMTMgKzgsOSBA
QAogPHNjcmlwdD4KICAgInVzZSBzdHJpY3QiOwogCi0gIHByb21pc2VfdGVzdChhc3luYyAoKSA9
PiB7Ci0gICAgY29uc3QgaWRsID0gYXdhaXQgZmV0Y2goIi9pbnRlcmZhY2VzL2Nzcy1wcm9wZXJ0
aWVzLXZhbHVlcy1hcGkuaWRsIikudGhlbihyID0+IHIudGV4dCgpKTsKLSAgICBjb25zdCBjc3Nv
bSA9IGF3YWl0IGZldGNoKCIvaW50ZXJmYWNlcy9jc3NvbS5pZGwiKS50aGVuKHIgPT4gci50ZXh0
KCkpOwotCi0gICAgY29uc3QgaWRsX2FycmF5ID0gbmV3IElkbEFycmF5KCk7Ci0gICAgaWRsX2Fy
cmF5LmFkZF9pZGxzKGlkbCk7Ci0gICAgaWRsX2FycmF5LmFkZF9kZXBlbmRlbmN5X2lkbHMoY3Nz
b20pOwotICAgIGlkbF9hcnJheS50ZXN0KCk7Ci0gIH0sICJUZXN0IElETCBpbXBsZW1lbnRhdGlv
biBvZiBDU1MgUHJvcGVydGllcyBWYWx1ZXMgQVBJIik7CisgIGlkbF90ZXN0KAorICAgIFsiY3Nz
LXByb3BlcnRpZXMtdmFsdWVzLWFwaSJdLAorICAgIFsiY3Nzb20iXQorICAgIC8vIE5vIG9iamVj
dHMKKyAgKTsKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9pbnRlcmZhY2VzLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29t
LXZpZXcvaW50ZXJmYWNlcy1leHBlY3RlZC50eHQKaW5kZXggYjU1YzFlY2I4NDc2MGIxNTU4ODhi
YjkwMzEyZGJmYTc4YjE4MWZhNS4uOWU0NGFlMTRiODBmYWMwYTM3NzhmNzc0NTRhYTg2OTk5YjZk
YmMxZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvY3Nzb20tdmlldy9pbnRlcmZhY2VzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L2ludGVy
ZmFjZXMtZXhwZWN0ZWQudHh0CkBAIC0yLDM4ICsyLDM0MSBAQAogQ1NTT00gVmlldyBJREwgdGVz
dHMKIAogCi1GQUlMIGlkbF90ZXN0IHNldHVwIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVj
dGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIkdvdCBhbiBlcnJvciBiZWZvcmUgcGFyc2luZyBhbnkg
bmFtZWQgZGVmaW5pdGlvbjogVW5yZWNvZ25pc2VkIHRva2VucywgbGluZSAxICh0b2tlbnM6ICJ7
XCJlcnJvclwiOiB7XCJtZXNzYWdlXCIiKQotWwotICAgIHsKLSAgICAgICAgInR5cGUiOiAieyIs
Ci0gICAgICAgICJ2YWx1ZSI6ICJ7IiwKLSAgICAgICAgInRyaXZpYSI6ICIiCi0gICAgfSwKLSAg
ICB7Ci0gICAgICAgICJ0eXBlIjogInN0cmluZyIsCi0gICAgICAgICJ2YWx1ZSI6ICJcImVycm9y
XCIiLAotICAgICAgICAidHJpdmlhIjogIiIKLSAgICB9LAotICAgIHsKLSAgICAgICAgInR5cGUi
OiAiOiIsCi0gICAgICAgICJ2YWx1ZSI6ICI6IiwKLSAgICAgICAgInRyaXZpYSI6ICIiCi0gICAg
fSwKLSAgICB7Ci0gICAgICAgICJ0eXBlIjogInsiLAotICAgICAgICAidmFsdWUiOiAieyIsCi0g
ICAgICAgICJ0cml2aWEiOiAiICIKLSAgICB9LAotICAgIHsKLSAgICAgICAgInR5cGUiOiAic3Ry
aW5nIiwKLSAgICAgICAgInZhbHVlIjogIlwibWVzc2FnZVwiIiwKLSAgICAgICAgInRyaXZpYSI6
ICIiCi0gICAgfQotXSIKLUZBSUwgUGFydGlhbCBpbnRlcmZhY2UgV2luZG93OiBvcmlnaW5hbCBp
bnRlcmZhY2UgZGVmaW5lZCBhc3NlcnRfdHJ1ZTogT3JpZ2luYWwgaW50ZXJmYWNlIHNob3VsZCBi
ZSBkZWZpbmVkIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFBhcnRpYWwgaW50ZXJmYWNl
IERvY3VtZW50OiBvcmlnaW5hbCBpbnRlcmZhY2UgZGVmaW5lZCBhc3NlcnRfdHJ1ZTogT3JpZ2lu
YWwgaW50ZXJmYWNlIHNob3VsZCBiZSBkZWZpbmVkIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1G
QUlMIFBhcnRpYWwgaW50ZXJmYWNlIEVsZW1lbnQ6IG9yaWdpbmFsIGludGVyZmFjZSBkZWZpbmVk
IGFzc2VydF90cnVlOiBPcmlnaW5hbCBpbnRlcmZhY2Ugc2hvdWxkIGJlIGRlZmluZWQgZXhwZWN0
ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgUGFydGlhbCBpbnRlcmZhY2UgSFRNTEVsZW1lbnQ6IG9y
aWdpbmFsIGludGVyZmFjZSBkZWZpbmVkIGFzc2VydF90cnVlOiBPcmlnaW5hbCBpbnRlcmZhY2Ug
c2hvdWxkIGJlIGRlZmluZWQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgUGFydGlhbCBp
bnRlcmZhY2UgSFRNTEltYWdlRWxlbWVudDogb3JpZ2luYWwgaW50ZXJmYWNlIGRlZmluZWQgYXNz
ZXJ0X3RydWU6IE9yaWdpbmFsIGludGVyZmFjZSBzaG91bGQgYmUgZGVmaW5lZCBleHBlY3RlZCB0
cnVlIGdvdCBmYWxzZQotRkFJTCBQYXJ0aWFsIGludGVyZmFjZSBSYW5nZTogb3JpZ2luYWwgaW50
ZXJmYWNlIGRlZmluZWQgYXNzZXJ0X3RydWU6IE9yaWdpbmFsIGludGVyZmFjZSBzaG91bGQgYmUg
ZGVmaW5lZCBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorUEFTUyBpZGxfdGVzdCBzZXR1cCAKK1BB
U1MgUGFydGlhbCBpbnRlcmZhY2UgV2luZG93OiBvcmlnaW5hbCBpbnRlcmZhY2UgZGVmaW5lZCAK
K1BBU1MgUGFydGlhbCBpbnRlcmZhY2UgRG9jdW1lbnQ6IG9yaWdpbmFsIGludGVyZmFjZSBkZWZp
bmVkIAorUEFTUyBQYXJ0aWFsIGludGVyZmFjZSBFbGVtZW50OiBvcmlnaW5hbCBpbnRlcmZhY2Ug
ZGVmaW5lZCAKK1BBU1MgUGFydGlhbCBpbnRlcmZhY2UgSFRNTEVsZW1lbnQ6IG9yaWdpbmFsIGlu
dGVyZmFjZSBkZWZpbmVkIAorUEFTUyBQYXJ0aWFsIGludGVyZmFjZSBIVE1MSW1hZ2VFbGVtZW50
OiBvcmlnaW5hbCBpbnRlcmZhY2UgZGVmaW5lZCAKK1BBU1MgUGFydGlhbCBpbnRlcmZhY2UgUmFu
Z2U6IG9yaWdpbmFsIGludGVyZmFjZSBkZWZpbmVkIAorUEFTUyBQYXJ0aWFsIGludGVyZmFjZSBN
b3VzZUV2ZW50OiBvcmlnaW5hbCBpbnRlcmZhY2UgZGVmaW5lZCAKK1BBU1MgUGFydGlhbCBkaWN0
aW9uYXJ5IE1vdXNlRXZlbnRJbml0OiBvcmlnaW5hbCBkaWN0aW9uYXJ5IGRlZmluZWQgCitGQUlM
IE1lZGlhUXVlcnlMaXN0IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGlu
dGVyZmFjZSBvYmplY3QgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93
biBwcm9wZXJ0eSAiTWVkaWFRdWVyeUxpc3QiIGV4cGVjdGVkIHByb3BlcnR5ICJNZWRpYVF1ZXJ5
TGlzdCIgbWlzc2luZworRkFJTCBNZWRpYVF1ZXJ5TGlzdCBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0
aCBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJN
ZWRpYVF1ZXJ5TGlzdCIgZXhwZWN0ZWQgcHJvcGVydHkgIk1lZGlhUXVlcnlMaXN0IiBtaXNzaW5n
CitGQUlMIE1lZGlhUXVlcnlMaXN0IGludGVyZmFjZSBvYmplY3QgbmFtZSBhc3NlcnRfb3duX3By
b3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJNZWRpYVF1ZXJ5TGlzdCIg
ZXhwZWN0ZWQgcHJvcGVydHkgIk1lZGlhUXVlcnlMaXN0IiBtaXNzaW5nCitGQUlMIE1lZGlhUXVl
cnlMaXN0IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBw
cm90b3R5cGUgb2JqZWN0IGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBv
d24gcHJvcGVydHkgIk1lZGlhUXVlcnlMaXN0IiBleHBlY3RlZCBwcm9wZXJ0eSAiTWVkaWFRdWVy
eUxpc3QiIG1pc3NpbmcKK0ZBSUwgTWVkaWFRdWVyeUxpc3QgaW50ZXJmYWNlOiBleGlzdGVuY2Ug
YW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyAiY29uc3RydWN0
b3IiIHByb3BlcnR5IGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24g
cHJvcGVydHkgIk1lZGlhUXVlcnlMaXN0IiBleHBlY3RlZCBwcm9wZXJ0eSAiTWVkaWFRdWVyeUxp
c3QiIG1pc3NpbmcKK0ZBSUwgTWVkaWFRdWVyeUxpc3QgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5k
IHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyBAQHVuc2NvcGFibGVz
IHByb3BlcnR5IGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJv
cGVydHkgIk1lZGlhUXVlcnlMaXN0IiBleHBlY3RlZCBwcm9wZXJ0eSAiTWVkaWFRdWVyeUxpc3Qi
IG1pc3NpbmcKK0ZBSUwgTWVkaWFRdWVyeUxpc3QgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgbWVkaWEg
YXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiTWVk
aWFRdWVyeUxpc3QiIGV4cGVjdGVkIHByb3BlcnR5ICJNZWRpYVF1ZXJ5TGlzdCIgbWlzc2luZwor
RkFJTCBNZWRpYVF1ZXJ5TGlzdCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBtYXRjaGVzIGFzc2VydF9v
d25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIk1lZGlhUXVlcnlM
aXN0IiBleHBlY3RlZCBwcm9wZXJ0eSAiTWVkaWFRdWVyeUxpc3QiIG1pc3NpbmcKK0ZBSUwgTWVk
aWFRdWVyeUxpc3QgaW50ZXJmYWNlOiBvcGVyYXRpb24gYWRkTGlzdGVuZXIoRXZlbnRMaXN0ZW5l
cikgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAi
TWVkaWFRdWVyeUxpc3QiIGV4cGVjdGVkIHByb3BlcnR5ICJNZWRpYVF1ZXJ5TGlzdCIgbWlzc2lu
ZworRkFJTCBNZWRpYVF1ZXJ5TGlzdCBpbnRlcmZhY2U6IG9wZXJhdGlvbiByZW1vdmVMaXN0ZW5l
cihFdmVudExpc3RlbmVyKSBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUg
b3duIHByb3BlcnR5ICJNZWRpYVF1ZXJ5TGlzdCIgZXhwZWN0ZWQgcHJvcGVydHkgIk1lZGlhUXVl
cnlMaXN0IiBtaXNzaW5nCitGQUlMIE1lZGlhUXVlcnlMaXN0IGludGVyZmFjZTogYXR0cmlidXRl
IG9uY2hhbmdlIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJv
cGVydHkgIk1lZGlhUXVlcnlMaXN0IiBleHBlY3RlZCBwcm9wZXJ0eSAiTWVkaWFRdWVyeUxpc3Qi
IG1pc3NpbmcKK0ZBSUwgTWVkaWFRdWVyeUxpc3QgbXVzdCBiZSBwcmltYXJ5IGludGVyZmFjZSBv
ZiBtYXRjaE1lZGlhKCJhbGwiKSBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhh
dmUgb3duIHByb3BlcnR5ICJNZWRpYVF1ZXJ5TGlzdCIgZXhwZWN0ZWQgcHJvcGVydHkgIk1lZGlh
UXVlcnlMaXN0IiBtaXNzaW5nCitQQVNTIFN0cmluZ2lmaWNhdGlvbiBvZiBtYXRjaE1lZGlhKCJh
bGwiKSAKK1BBU1MgTWVkaWFRdWVyeUxpc3QgaW50ZXJmYWNlOiBtYXRjaE1lZGlhKCJhbGwiKSBt
dXN0IGluaGVyaXQgcHJvcGVydHkgIm1lZGlhIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1Mg
TWVkaWFRdWVyeUxpc3QgaW50ZXJmYWNlOiBtYXRjaE1lZGlhKCJhbGwiKSBtdXN0IGluaGVyaXQg
cHJvcGVydHkgIm1hdGNoZXMiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBNZWRpYVF1ZXJ5
TGlzdCBpbnRlcmZhY2U6IG1hdGNoTWVkaWEoImFsbCIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAi
YWRkTGlzdGVuZXIoRXZlbnRMaXN0ZW5lcikiIHdpdGggdGhlIHByb3BlciB0eXBlIAorRkFJTCBN
ZWRpYVF1ZXJ5TGlzdCBpbnRlcmZhY2U6IGNhbGxpbmcgYWRkTGlzdGVuZXIoRXZlbnRMaXN0ZW5l
cikgb24gbWF0Y2hNZWRpYSgiYWxsIikgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93
IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlv
biAiZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgZm4uYXBwbHkob2JqLCBhcmdzKTsKKyAgICAg
ICAgfSIgZGlkIG5vdCB0aHJvdworUEFTUyBNZWRpYVF1ZXJ5TGlzdCBpbnRlcmZhY2U6IG1hdGNo
TWVkaWEoImFsbCIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAicmVtb3ZlTGlzdGVuZXIoRXZlbnRM
aXN0ZW5lcikiIHdpdGggdGhlIHByb3BlciB0eXBlIAorRkFJTCBNZWRpYVF1ZXJ5TGlzdCBpbnRl
cmZhY2U6IGNhbGxpbmcgcmVtb3ZlTGlzdGVuZXIoRXZlbnRMaXN0ZW5lcikgb24gbWF0Y2hNZWRp
YSgiYWxsIikgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3Nl
cnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkg
eworICAgICAgICAgICAgZm4uYXBwbHkob2JqLCBhcmdzKTsKKyAgICAgICAgfSIgZGlkIG5vdCB0
aHJvdworRkFJTCBNZWRpYVF1ZXJ5TGlzdCBpbnRlcmZhY2U6IG1hdGNoTWVkaWEoImFsbCIpIG11
c3QgaW5oZXJpdCBwcm9wZXJ0eSAib25jaGFuZ2UiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2Vy
dF9pbmhlcml0czogcHJvcGVydHkgIm9uY2hhbmdlIiBub3QgZm91bmQgaW4gcHJvdG90eXBlIGNo
YWluCitGQUlMIE1lZGlhUXVlcnlMaXN0RXZlbnQgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHBy
b3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRv
ZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJNZWRpYVF1ZXJ5TGlzdEV2ZW50IiBleHBlY3RlZCBw
cm9wZXJ0eSAiTWVkaWFRdWVyeUxpc3RFdmVudCIgbWlzc2luZworRkFJTCBNZWRpYVF1ZXJ5TGlz
dEV2ZW50IGludGVyZmFjZSBvYmplY3QgbGVuZ3RoIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYg
ZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIk1lZGlhUXVlcnlMaXN0RXZlbnQiIGV4cGVjdGVk
IHByb3BlcnR5ICJNZWRpYVF1ZXJ5TGlzdEV2ZW50IiBtaXNzaW5nCitGQUlMIE1lZGlhUXVlcnlM
aXN0RXZlbnQgaW50ZXJmYWNlIG9iamVjdCBuYW1lIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYg
ZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIk1lZGlhUXVlcnlMaXN0RXZlbnQiIGV4cGVjdGVk
IHByb3BlcnR5ICJNZWRpYVF1ZXJ5TGlzdEV2ZW50IiBtaXNzaW5nCitGQUlMIE1lZGlhUXVlcnlM
aXN0RXZlbnQgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNl
IHByb3RvdHlwZSBvYmplY3QgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZl
IG93biBwcm9wZXJ0eSAiTWVkaWFRdWVyeUxpc3RFdmVudCIgZXhwZWN0ZWQgcHJvcGVydHkgIk1l
ZGlhUXVlcnlMaXN0RXZlbnQiIG1pc3NpbmcKK0ZBSUwgTWVkaWFRdWVyeUxpc3RFdmVudCBpbnRl
cmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9i
amVjdCdzICJjb25zdHJ1Y3RvciIgcHJvcGVydHkgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBk
b2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiTWVkaWFRdWVyeUxpc3RFdmVudCIgZXhwZWN0ZWQg
cHJvcGVydHkgIk1lZGlhUXVlcnlMaXN0RXZlbnQiIG1pc3NpbmcKK0ZBSUwgTWVkaWFRdWVyeUxp
c3RFdmVudCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ug
cHJvdG90eXBlIG9iamVjdCdzIEBAdW5zY29wYWJsZXMgcHJvcGVydHkgYXNzZXJ0X293bl9wcm9w
ZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiTWVkaWFRdWVyeUxpc3RFdmVu
dCIgZXhwZWN0ZWQgcHJvcGVydHkgIk1lZGlhUXVlcnlMaXN0RXZlbnQiIG1pc3NpbmcKK0ZBSUwg
TWVkaWFRdWVyeUxpc3RFdmVudCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBtZWRpYSBhc3NlcnRfb3du
X3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJNZWRpYVF1ZXJ5TGlz
dEV2ZW50IiBleHBlY3RlZCBwcm9wZXJ0eSAiTWVkaWFRdWVyeUxpc3RFdmVudCIgbWlzc2luZwor
RkFJTCBNZWRpYVF1ZXJ5TGlzdEV2ZW50IGludGVyZmFjZTogYXR0cmlidXRlIG1hdGNoZXMgYXNz
ZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiTWVkaWFR
dWVyeUxpc3RFdmVudCIgZXhwZWN0ZWQgcHJvcGVydHkgIk1lZGlhUXVlcnlMaXN0RXZlbnQiIG1p
c3NpbmcKK0ZBSUwgTWVkaWFRdWVyeUxpc3RFdmVudCBtdXN0IGJlIHByaW1hcnkgaW50ZXJmYWNl
IG9mIG5ldyBNZWRpYVF1ZXJ5TGlzdEV2ZW50KCJjaGFuZ2UiKSBhc3NlcnRfZXF1YWxzOiBVbmV4
cGVjdGVkIGV4Y2VwdGlvbiB3aGVuIGV2YWx1YXRpbmcgb2JqZWN0IGV4cGVjdGVkIG51bGwgYnV0
IGdvdCBvYmplY3QgIlJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBNZWRpYVF1
ZXJ5TGlzdEV2ZW50IgorRkFJTCBTdHJpbmdpZmljYXRpb24gb2YgbmV3IE1lZGlhUXVlcnlMaXN0
RXZlbnQoImNoYW5nZSIpIGFzc2VydF9lcXVhbHM6IFVuZXhwZWN0ZWQgZXhjZXB0aW9uIHdoZW4g
ZXZhbHVhdGluZyBvYmplY3QgZXhwZWN0ZWQgbnVsbCBidXQgZ290IG9iamVjdCAiUmVmZXJlbmNl
RXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IE1lZGlhUXVlcnlMaXN0RXZlbnQiCitGQUlMIE1l
ZGlhUXVlcnlMaXN0RXZlbnQgaW50ZXJmYWNlOiBuZXcgTWVkaWFRdWVyeUxpc3RFdmVudCgiY2hh
bmdlIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJtZWRpYSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUg
YXNzZXJ0X2VxdWFsczogVW5leHBlY3RlZCBleGNlcHRpb24gd2hlbiBldmFsdWF0aW5nIG9iamVj
dCBleHBlY3RlZCBudWxsIGJ1dCBnb3Qgb2JqZWN0ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmlu
ZCB2YXJpYWJsZTogTWVkaWFRdWVyeUxpc3RFdmVudCIKK0ZBSUwgTWVkaWFRdWVyeUxpc3RFdmVu
dCBpbnRlcmZhY2U6IG5ldyBNZWRpYVF1ZXJ5TGlzdEV2ZW50KCJjaGFuZ2UiKSBtdXN0IGluaGVy
aXQgcHJvcGVydHkgIm1hdGNoZXMiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9lcXVhbHM6
IFVuZXhwZWN0ZWQgZXhjZXB0aW9uIHdoZW4gZXZhbHVhdGluZyBvYmplY3QgZXhwZWN0ZWQgbnVs
bCBidXQgZ290IG9iamVjdCAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IE1l
ZGlhUXVlcnlMaXN0RXZlbnQiCitQQVNTIFNjcmVlbiBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQg
cHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IAorUEFTUyBTY3JlZW4gaW50ZXJmYWNlIG9i
amVjdCBsZW5ndGggCitQQVNTIFNjcmVlbiBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUgCitQQVNTIFNj
cmVlbiBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJv
dG90eXBlIG9iamVjdCAKK1BBU1MgU2NyZWVuIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9w
ZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgImNvbnN0cnVjdG9yIiBwcm9w
ZXJ0eSAKK1BBU1MgU2NyZWVuIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9m
IGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgQEB1bnNjb3BhYmxlcyBwcm9wZXJ0eSAKK1BB
U1MgU2NyZWVuIGludGVyZmFjZTogYXR0cmlidXRlIGF2YWlsV2lkdGggCitQQVNTIFNjcmVlbiBp
bnRlcmZhY2U6IGF0dHJpYnV0ZSBhdmFpbEhlaWdodCAKK1BBU1MgU2NyZWVuIGludGVyZmFjZTog
YXR0cmlidXRlIHdpZHRoIAorUEFTUyBTY3JlZW4gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgaGVpZ2h0
IAorUEFTUyBTY3JlZW4gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgY29sb3JEZXB0aCAKK1BBU1MgU2Ny
ZWVuIGludGVyZmFjZTogYXR0cmlidXRlIHBpeGVsRGVwdGggCitQQVNTIFNjcmVlbiBtdXN0IGJl
IHByaW1hcnkgaW50ZXJmYWNlIG9mIHNjcmVlbiAKK1BBU1MgU3RyaW5naWZpY2F0aW9uIG9mIHNj
cmVlbiAKK1BBU1MgU2NyZWVuIGludGVyZmFjZTogc2NyZWVuIG11c3QgaW5oZXJpdCBwcm9wZXJ0
eSAiYXZhaWxXaWR0aCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIFNjcmVlbiBpbnRlcmZh
Y2U6IHNjcmVlbiBtdXN0IGluaGVyaXQgcHJvcGVydHkgImF2YWlsSGVpZ2h0IiB3aXRoIHRoZSBw
cm9wZXIgdHlwZSAKK1BBU1MgU2NyZWVuIGludGVyZmFjZTogc2NyZWVuIG11c3QgaW5oZXJpdCBw
cm9wZXJ0eSAid2lkdGgiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBTY3JlZW4gaW50ZXJm
YWNlOiBzY3JlZW4gbXVzdCBpbmhlcml0IHByb3BlcnR5ICJoZWlnaHQiIHdpdGggdGhlIHByb3Bl
ciB0eXBlIAorUEFTUyBTY3JlZW4gaW50ZXJmYWNlOiBzY3JlZW4gbXVzdCBpbmhlcml0IHByb3Bl
cnR5ICJjb2xvckRlcHRoIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgU2NyZWVuIGludGVy
ZmFjZTogc2NyZWVuIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAicGl4ZWxEZXB0aCIgd2l0aCB0aGUg
cHJvcGVyIHR5cGUgCitGQUlMIENhcmV0UG9zaXRpb24gaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5k
IHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxm
IGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJDYXJldFBvc2l0aW9uIiBleHBlY3RlZCBwcm9w
ZXJ0eSAiQ2FyZXRQb3NpdGlvbiIgbWlzc2luZworRkFJTCBDYXJldFBvc2l0aW9uIGludGVyZmFj
ZSBvYmplY3QgbGVuZ3RoIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBv
d24gcHJvcGVydHkgIkNhcmV0UG9zaXRpb24iIGV4cGVjdGVkIHByb3BlcnR5ICJDYXJldFBvc2l0
aW9uIiBtaXNzaW5nCitGQUlMIENhcmV0UG9zaXRpb24gaW50ZXJmYWNlIG9iamVjdCBuYW1lIGFz
c2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIkNhcmV0
UG9zaXRpb24iIGV4cGVjdGVkIHByb3BlcnR5ICJDYXJldFBvc2l0aW9uIiBtaXNzaW5nCitGQUlM
IENhcmV0UG9zaXRpb24gaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50
ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5v
dCBoYXZlIG93biBwcm9wZXJ0eSAiQ2FyZXRQb3NpdGlvbiIgZXhwZWN0ZWQgcHJvcGVydHkgIkNh
cmV0UG9zaXRpb24iIG1pc3NpbmcKK0ZBSUwgQ2FyZXRQb3NpdGlvbiBpbnRlcmZhY2U6IGV4aXN0
ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzICJjb25z
dHJ1Y3RvciIgcHJvcGVydHkgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZl
IG93biBwcm9wZXJ0eSAiQ2FyZXRQb3NpdGlvbiIgZXhwZWN0ZWQgcHJvcGVydHkgIkNhcmV0UG9z
aXRpb24iIG1pc3NpbmcKK0ZBSUwgQ2FyZXRQb3NpdGlvbiBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBh
bmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzIEBAdW5zY29wYWJs
ZXMgcHJvcGVydHkgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBw
cm9wZXJ0eSAiQ2FyZXRQb3NpdGlvbiIgZXhwZWN0ZWQgcHJvcGVydHkgIkNhcmV0UG9zaXRpb24i
IG1pc3NpbmcKK0ZBSUwgQ2FyZXRQb3NpdGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBvZmZzZXRO
b2RlIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkg
IkNhcmV0UG9zaXRpb24iIGV4cGVjdGVkIHByb3BlcnR5ICJDYXJldFBvc2l0aW9uIiBtaXNzaW5n
CitGQUlMIENhcmV0UG9zaXRpb24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgb2Zmc2V0IGFzc2VydF9v
d25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIkNhcmV0UG9zaXRp
b24iIGV4cGVjdGVkIHByb3BlcnR5ICJDYXJldFBvc2l0aW9uIiBtaXNzaW5nCitGQUlMIENhcmV0
UG9zaXRpb24gaW50ZXJmYWNlOiBvcGVyYXRpb24gZ2V0Q2xpZW50UmVjdCgpIGFzc2VydF9vd25f
cHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIkNhcmV0UG9zaXRpb24i
IGV4cGVjdGVkIHByb3BlcnR5ICJDYXJldFBvc2l0aW9uIiBtaXNzaW5nCitGQUlMIENhcmV0UG9z
aXRpb24gbXVzdCBiZSBwcmltYXJ5IGludGVyZmFjZSBvZiBkb2N1bWVudC5jYXJldFBvc2l0aW9u
RnJvbVBvaW50KDUsIDUpIGFzc2VydF9lcXVhbHM6IFVuZXhwZWN0ZWQgZXhjZXB0aW9uIHdoZW4g
ZXZhbHVhdGluZyBvYmplY3QgZXhwZWN0ZWQgbnVsbCBidXQgZ290IG9iamVjdCAiVHlwZUVycm9y
OiBkb2N1bWVudC5jYXJldFBvc2l0aW9uRnJvbVBvaW50IGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4g
J2RvY3VtZW50LmNhcmV0UG9zaXRpb25Gcm9tUG9pbnQoNSwgNSknLCAnZG9jdW1lbnQuY2FyZXRQ
b3NpdGlvbkZyb21Qb2ludCcgaXMgdW5kZWZpbmVkKSIKK0ZBSUwgU3RyaW5naWZpY2F0aW9uIG9m
IGRvY3VtZW50LmNhcmV0UG9zaXRpb25Gcm9tUG9pbnQoNSwgNSkgYXNzZXJ0X2VxdWFsczogVW5l
eHBlY3RlZCBleGNlcHRpb24gd2hlbiBldmFsdWF0aW5nIG9iamVjdCBleHBlY3RlZCBudWxsIGJ1
dCBnb3Qgb2JqZWN0ICJUeXBlRXJyb3I6IGRvY3VtZW50LmNhcmV0UG9zaXRpb25Gcm9tUG9pbnQg
aXMgbm90IGEgZnVuY3Rpb24uIChJbiAnZG9jdW1lbnQuY2FyZXRQb3NpdGlvbkZyb21Qb2ludCg1
LCA1KScsICdkb2N1bWVudC5jYXJldFBvc2l0aW9uRnJvbVBvaW50JyBpcyB1bmRlZmluZWQpIgor
RkFJTCBDYXJldFBvc2l0aW9uIGludGVyZmFjZTogZG9jdW1lbnQuY2FyZXRQb3NpdGlvbkZyb21Q
b2ludCg1LCA1KSBtdXN0IGluaGVyaXQgcHJvcGVydHkgIm9mZnNldE5vZGUiIHdpdGggdGhlIHBy
b3BlciB0eXBlIGFzc2VydF9lcXVhbHM6IFVuZXhwZWN0ZWQgZXhjZXB0aW9uIHdoZW4gZXZhbHVh
dGluZyBvYmplY3QgZXhwZWN0ZWQgbnVsbCBidXQgZ290IG9iamVjdCAiVHlwZUVycm9yOiBkb2N1
bWVudC5jYXJldFBvc2l0aW9uRnJvbVBvaW50IGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ2RvY3Vt
ZW50LmNhcmV0UG9zaXRpb25Gcm9tUG9pbnQoNSwgNSknLCAnZG9jdW1lbnQuY2FyZXRQb3NpdGlv
bkZyb21Qb2ludCcgaXMgdW5kZWZpbmVkKSIKK0ZBSUwgQ2FyZXRQb3NpdGlvbiBpbnRlcmZhY2U6
IGRvY3VtZW50LmNhcmV0UG9zaXRpb25Gcm9tUG9pbnQoNSwgNSkgbXVzdCBpbmhlcml0IHByb3Bl
cnR5ICJvZmZzZXQiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9lcXVhbHM6IFVuZXhwZWN0
ZWQgZXhjZXB0aW9uIHdoZW4gZXZhbHVhdGluZyBvYmplY3QgZXhwZWN0ZWQgbnVsbCBidXQgZ290
IG9iamVjdCAiVHlwZUVycm9yOiBkb2N1bWVudC5jYXJldFBvc2l0aW9uRnJvbVBvaW50IGlzIG5v
dCBhIGZ1bmN0aW9uLiAoSW4gJ2RvY3VtZW50LmNhcmV0UG9zaXRpb25Gcm9tUG9pbnQoNSwgNSkn
LCAnZG9jdW1lbnQuY2FyZXRQb3NpdGlvbkZyb21Qb2ludCcgaXMgdW5kZWZpbmVkKSIKK0ZBSUwg
Q2FyZXRQb3NpdGlvbiBpbnRlcmZhY2U6IGRvY3VtZW50LmNhcmV0UG9zaXRpb25Gcm9tUG9pbnQo
NSwgNSkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJnZXRDbGllbnRSZWN0KCkiIHdpdGggdGhlIHBy
b3BlciB0eXBlIGFzc2VydF9lcXVhbHM6IFVuZXhwZWN0ZWQgZXhjZXB0aW9uIHdoZW4gZXZhbHVh
dGluZyBvYmplY3QgZXhwZWN0ZWQgbnVsbCBidXQgZ290IG9iamVjdCAiVHlwZUVycm9yOiBkb2N1
bWVudC5jYXJldFBvc2l0aW9uRnJvbVBvaW50IGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ2RvY3Vt
ZW50LmNhcmV0UG9zaXRpb25Gcm9tUG9pbnQoNSwgNSknLCAnZG9jdW1lbnQuY2FyZXRQb3NpdGlv
bkZyb21Qb2ludCcgaXMgdW5kZWZpbmVkKSIKK0ZBSUwgQ1NTUHNldWRvRWxlbWVudCBpbnRlcmZh
Y2U6IG9wZXJhdGlvbiBnZXRCb3hRdWFkcyhCb3hRdWFkT3B0aW9ucykgYXNzZXJ0X293bl9wcm9w
ZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiQ1NTUHNldWRvRWxlbWVudCIg
ZXhwZWN0ZWQgcHJvcGVydHkgIkNTU1BzZXVkb0VsZW1lbnQiIG1pc3NpbmcKK0ZBSUwgQ1NTUHNl
dWRvRWxlbWVudCBpbnRlcmZhY2U6IG9wZXJhdGlvbiBjb252ZXJ0UXVhZEZyb21Ob2RlKERPTVF1
YWRJbml0LCBHZW9tZXRyeU5vZGUsIENvbnZlcnRDb29yZGluYXRlT3B0aW9ucykgYXNzZXJ0X293
bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiQ1NTUHNldWRvRWxl
bWVudCIgZXhwZWN0ZWQgcHJvcGVydHkgIkNTU1BzZXVkb0VsZW1lbnQiIG1pc3NpbmcKK0ZBSUwg
Q1NTUHNldWRvRWxlbWVudCBpbnRlcmZhY2U6IG9wZXJhdGlvbiBjb252ZXJ0UmVjdEZyb21Ob2Rl
KERPTVJlY3RSZWFkT25seSwgR2VvbWV0cnlOb2RlLCBDb252ZXJ0Q29vcmRpbmF0ZU9wdGlvbnMp
IGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIkNT
U1BzZXVkb0VsZW1lbnQiIGV4cGVjdGVkIHByb3BlcnR5ICJDU1NQc2V1ZG9FbGVtZW50IiBtaXNz
aW5nCitGQUlMIENTU1BzZXVkb0VsZW1lbnQgaW50ZXJmYWNlOiBvcGVyYXRpb24gY29udmVydFBv
aW50RnJvbU5vZGUoRE9NUG9pbnRJbml0LCBHZW9tZXRyeU5vZGUsIENvbnZlcnRDb29yZGluYXRl
T3B0aW9ucykgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9w
ZXJ0eSAiQ1NTUHNldWRvRWxlbWVudCIgZXhwZWN0ZWQgcHJvcGVydHkgIkNTU1BzZXVkb0VsZW1l
bnQiIG1pc3NpbmcKK1BBU1MgTW91c2VFdmVudCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBzY3JlZW5Y
IAorUEFTUyBNb3VzZUV2ZW50IGludGVyZmFjZTogYXR0cmlidXRlIHNjcmVlblkgCitGQUlMIE1v
dXNlRXZlbnQgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgcGFnZVggYXNzZXJ0X293bl9wcm9wZXJ0eTog
ZXhwZWN0ZWQgcHJvcGVydHkgInBhZ2VYIiBtaXNzaW5nCitGQUlMIE1vdXNlRXZlbnQgaW50ZXJm
YWNlOiBhdHRyaWJ1dGUgcGFnZVkgYXNzZXJ0X293bl9wcm9wZXJ0eTogZXhwZWN0ZWQgcHJvcGVy
dHkgInBhZ2VZIiBtaXNzaW5nCitQQVNTIE1vdXNlRXZlbnQgaW50ZXJmYWNlOiBhdHRyaWJ1dGUg
Y2xpZW50WCAKK1BBU1MgTW91c2VFdmVudCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBjbGllbnRZIAor
UEFTUyBNb3VzZUV2ZW50IGludGVyZmFjZTogYXR0cmlidXRlIHggCitQQVNTIE1vdXNlRXZlbnQg
aW50ZXJmYWNlOiBhdHRyaWJ1dGUgeSAKK1BBU1MgTW91c2VFdmVudCBpbnRlcmZhY2U6IGF0dHJp
YnV0ZSBvZmZzZXRYIAorUEFTUyBNb3VzZUV2ZW50IGludGVyZmFjZTogYXR0cmlidXRlIG9mZnNl
dFkgCitQQVNTIEhUTUxFbGVtZW50IGludGVyZmFjZTogYXR0cmlidXRlIG9mZnNldFBhcmVudCAK
K1BBU1MgSFRNTEVsZW1lbnQgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgb2Zmc2V0VG9wIAorUEFTUyBI
VE1MRWxlbWVudCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBvZmZzZXRMZWZ0IAorUEFTUyBIVE1MRWxl
bWVudCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBvZmZzZXRXaWR0aCAKK1BBU1MgSFRNTEVsZW1lbnQg
aW50ZXJmYWNlOiBhdHRyaWJ1dGUgb2Zmc2V0SGVpZ2h0IAorUEFTUyBIVE1MRWxlbWVudCBpbnRl
cmZhY2U6IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0
eSAib2Zmc2V0UGFyZW50IiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgSFRNTEVsZW1lbnQg
aW50ZXJmYWNlOiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSBtdXN0IGluaGVyaXQgcHJv
cGVydHkgIm9mZnNldFRvcCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIEhUTUxFbGVtZW50
IGludGVyZmFjZTogZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikgbXVzdCBpbmhlcml0IHBy
b3BlcnR5ICJvZmZzZXRMZWZ0IiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgSFRNTEVsZW1l
bnQgaW50ZXJmYWNlOiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSBtdXN0IGluaGVyaXQg
cHJvcGVydHkgIm9mZnNldFdpZHRoIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgSFRNTEVs
ZW1lbnQgaW50ZXJmYWNlOiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSBtdXN0IGluaGVy
aXQgcHJvcGVydHkgIm9mZnNldEhlaWdodCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIEVs
ZW1lbnQgaW50ZXJmYWNlOiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSBtdXN0IGluaGVy
aXQgcHJvcGVydHkgImdldENsaWVudFJlY3RzKCkiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFT
UyBFbGVtZW50IGludGVyZmFjZTogZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikgbXVzdCBp
bmhlcml0IHByb3BlcnR5ICJnZXRCb3VuZGluZ0NsaWVudFJlY3QoKSIgd2l0aCB0aGUgcHJvcGVy
IHR5cGUgCitQQVNTIEVsZW1lbnQgaW50ZXJmYWNlOiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJk
aXYiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInNjcm9sbEludG9WaWV3KFtvYmplY3QgT2JqZWN0
XSxbb2JqZWN0IE9iamVjdF0pIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgRWxlbWVudCBp
bnRlcmZhY2U6IGNhbGxpbmcgc2Nyb2xsSW50b1ZpZXcoW29iamVjdCBPYmplY3RdLFtvYmplY3Qg
T2JqZWN0XSkgb24gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iikgd2l0aCB0b28gZmV3IGFy
Z3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKK1BBU1MgRWxlbWVudCBpbnRlcmZhY2U6IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAic2Nyb2xs
KFNjcm9sbFRvT3B0aW9ucykiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBFbGVtZW50IGlu
dGVyZmFjZTogY2FsbGluZyBzY3JvbGwoU2Nyb2xsVG9PcHRpb25zKSBvbiBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJkaXYiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVy
cm9yIAorUEFTUyBFbGVtZW50IGludGVyZmFjZTogZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2
IikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJzY3JvbGwodW5yZXN0cmljdGVkIGRvdWJsZSwgdW5y
ZXN0cmljdGVkIGRvdWJsZSkiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBFbGVtZW50IGlu
dGVyZmFjZTogY2FsbGluZyBzY3JvbGwodW5yZXN0cmljdGVkIGRvdWJsZSwgdW5yZXN0cmljdGVk
IGRvdWJsZSkgb24gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iikgd2l0aCB0b28gZmV3IGFy
Z3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKK1BBU1MgRWxlbWVudCBpbnRlcmZhY2U6IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAic2Nyb2xs
VG8oU2Nyb2xsVG9PcHRpb25zKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIEVsZW1lbnQg
aW50ZXJmYWNlOiBjYWxsaW5nIHNjcm9sbFRvKFNjcm9sbFRvT3B0aW9ucykgb24gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgiZGl2Iikgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5
cGVFcnJvciAKK1BBU1MgRWxlbWVudCBpbnRlcmZhY2U6IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
ImRpdiIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAic2Nyb2xsVG8odW5yZXN0cmljdGVkIGRvdWJs
ZSwgdW5yZXN0cmljdGVkIGRvdWJsZSkiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBFbGVt
ZW50IGludGVyZmFjZTogY2FsbGluZyBzY3JvbGxUbyh1bnJlc3RyaWN0ZWQgZG91YmxlLCB1bnJl
c3RyaWN0ZWQgZG91YmxlKSBvbiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSB3aXRoIHRv
byBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAorUEFTUyBFbGVtZW50IGludGVy
ZmFjZTogZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikgbXVzdCBpbmhlcml0IHByb3BlcnR5
ICJzY3JvbGxCeShTY3JvbGxUb09wdGlvbnMpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1Mg
RWxlbWVudCBpbnRlcmZhY2U6IGNhbGxpbmcgc2Nyb2xsQnkoU2Nyb2xsVG9PcHRpb25zKSBvbiBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3Qg
dGhyb3cgVHlwZUVycm9yIAorUEFTUyBFbGVtZW50IGludGVyZmFjZTogZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgiZGl2IikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJzY3JvbGxCeSh1bnJlc3RyaWN0
ZWQgZG91YmxlLCB1bnJlc3RyaWN0ZWQgZG91YmxlKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQ
QVNTIEVsZW1lbnQgaW50ZXJmYWNlOiBjYWxsaW5nIHNjcm9sbEJ5KHVucmVzdHJpY3RlZCBkb3Vi
bGUsIHVucmVzdHJpY3RlZCBkb3VibGUpIG9uIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIp
IHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCitQQVNTIEVsZW1l
bnQgaW50ZXJmYWNlOiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSBtdXN0IGluaGVyaXQg
cHJvcGVydHkgInNjcm9sbFRvcCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIEVsZW1lbnQg
aW50ZXJmYWNlOiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSBtdXN0IGluaGVyaXQgcHJv
cGVydHkgInNjcm9sbExlZnQiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBFbGVtZW50IGlu
dGVyZmFjZTogZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikgbXVzdCBpbmhlcml0IHByb3Bl
cnR5ICJzY3JvbGxXaWR0aCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIEVsZW1lbnQgaW50
ZXJmYWNlOiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSBtdXN0IGluaGVyaXQgcHJvcGVy
dHkgInNjcm9sbEhlaWdodCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIEVsZW1lbnQgaW50
ZXJmYWNlOiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSBtdXN0IGluaGVyaXQgcHJvcGVy
dHkgImNsaWVudFRvcCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIEVsZW1lbnQgaW50ZXJm
YWNlOiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkg
ImNsaWVudExlZnQiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBFbGVtZW50IGludGVyZmFj
ZTogZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJj
bGllbnRXaWR0aCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIEVsZW1lbnQgaW50ZXJmYWNl
OiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImNs
aWVudEhlaWdodCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitGQUlMIEVsZW1lbnQgaW50ZXJmYWNl
OiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImdl
dEJveFF1YWRzKEJveFF1YWRPcHRpb25zKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2lu
aGVyaXRzOiBwcm9wZXJ0eSAiZ2V0Qm94UXVhZHMiIG5vdCBmb3VuZCBpbiBwcm90b3R5cGUgY2hh
aW4KK0ZBSUwgRWxlbWVudCBpbnRlcmZhY2U6IGNhbGxpbmcgZ2V0Qm94UXVhZHMoQm94UXVhZE9w
dGlvbnMpIG9uIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpIHdpdGggdG9vIGZldyBhcmd1
bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X2luaGVyaXRzOiBwcm9wZXJ0eSAiZ2V0
Qm94UXVhZHMiIG5vdCBmb3VuZCBpbiBwcm90b3R5cGUgY2hhaW4KK0ZBSUwgRWxlbWVudCBpbnRl
cmZhY2U6IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0
eSAiY29udmVydFF1YWRGcm9tTm9kZShET01RdWFkSW5pdCwgR2VvbWV0cnlOb2RlLCBDb252ZXJ0
Q29vcmRpbmF0ZU9wdGlvbnMpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBhc3NlcnRfaW5oZXJpdHM6
IHByb3BlcnR5ICJjb252ZXJ0UXVhZEZyb21Ob2RlIiBub3QgZm91bmQgaW4gcHJvdG90eXBlIGNo
YWluCitGQUlMIEVsZW1lbnQgaW50ZXJmYWNlOiBjYWxsaW5nIGNvbnZlcnRRdWFkRnJvbU5vZGUo
RE9NUXVhZEluaXQsIEdlb21ldHJ5Tm9kZSwgQ29udmVydENvb3JkaW5hdGVPcHRpb25zKSBvbiBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3Qg
dGhyb3cgVHlwZUVycm9yIGFzc2VydF9pbmhlcml0czogcHJvcGVydHkgImNvbnZlcnRRdWFkRnJv
bU5vZGUiIG5vdCBmb3VuZCBpbiBwcm90b3R5cGUgY2hhaW4KK0ZBSUwgRWxlbWVudCBpbnRlcmZh
Y2U6IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAi
Y29udmVydFJlY3RGcm9tTm9kZShET01SZWN0UmVhZE9ubHksIEdlb21ldHJ5Tm9kZSwgQ29udmVy
dENvb3JkaW5hdGVPcHRpb25zKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2luaGVyaXRz
OiBwcm9wZXJ0eSAiY29udmVydFJlY3RGcm9tTm9kZSIgbm90IGZvdW5kIGluIHByb3RvdHlwZSBj
aGFpbgorRkFJTCBFbGVtZW50IGludGVyZmFjZTogY2FsbGluZyBjb252ZXJ0UmVjdEZyb21Ob2Rl
KERPTVJlY3RSZWFkT25seSwgR2VvbWV0cnlOb2RlLCBDb252ZXJ0Q29vcmRpbmF0ZU9wdGlvbnMp
IG9uIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpIHdpdGggdG9vIGZldyBhcmd1bWVudHMg
bXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X2luaGVyaXRzOiBwcm9wZXJ0eSAiY29udmVydFJl
Y3RGcm9tTm9kZSIgbm90IGZvdW5kIGluIHByb3RvdHlwZSBjaGFpbgorRkFJTCBFbGVtZW50IGlu
dGVyZmFjZTogZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikgbXVzdCBpbmhlcml0IHByb3Bl
cnR5ICJjb252ZXJ0UG9pbnRGcm9tTm9kZShET01Qb2ludEluaXQsIEdlb21ldHJ5Tm9kZSwgQ29u
dmVydENvb3JkaW5hdGVPcHRpb25zKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2luaGVy
aXRzOiBwcm9wZXJ0eSAiY29udmVydFBvaW50RnJvbU5vZGUiIG5vdCBmb3VuZCBpbiBwcm90b3R5
cGUgY2hhaW4KK0ZBSUwgRWxlbWVudCBpbnRlcmZhY2U6IGNhbGxpbmcgY29udmVydFBvaW50RnJv
bU5vZGUoRE9NUG9pbnRJbml0LCBHZW9tZXRyeU5vZGUsIENvbnZlcnRDb29yZGluYXRlT3B0aW9u
cykgb24gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iikgd2l0aCB0b28gZmV3IGFyZ3VtZW50
cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfaW5oZXJpdHM6IHByb3BlcnR5ICJjb252ZXJ0
UG9pbnRGcm9tTm9kZSIgbm90IGZvdW5kIGluIHByb3RvdHlwZSBjaGFpbgorUEFTUyBIVE1MSW1h
Z2VFbGVtZW50IGludGVyZmFjZTogYXR0cmlidXRlIHggCitQQVNTIEhUTUxJbWFnZUVsZW1lbnQg
aW50ZXJmYWNlOiBhdHRyaWJ1dGUgeSAKK1BBU1MgSFRNTEltYWdlRWxlbWVudCBpbnRlcmZhY2U6
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImltZyIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAieCIg
d2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIEhUTUxJbWFnZUVsZW1lbnQgaW50ZXJmYWNlOiBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbWciKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInkiIHdp
dGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBIVE1MRWxlbWVudCBpbnRlcmZhY2U6IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoImltZyIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAib2Zmc2V0UGFyZW50
IiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgSFRNTEVsZW1lbnQgaW50ZXJmYWNlOiBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJpbWciKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgIm9mZnNldFRv
cCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIEhUTUxFbGVtZW50IGludGVyZmFjZTogZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgiaW1nIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJvZmZzZXRM
ZWZ0IiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgSFRNTEVsZW1lbnQgaW50ZXJmYWNlOiBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbWciKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgIm9mZnNl
dFdpZHRoIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgSFRNTEVsZW1lbnQgaW50ZXJmYWNl
OiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbWciKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgIm9m
ZnNldEhlaWdodCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIEVsZW1lbnQgaW50ZXJmYWNl
OiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbWciKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImdl
dENsaWVudFJlY3RzKCkiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBFbGVtZW50IGludGVy
ZmFjZTogZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW1nIikgbXVzdCBpbmhlcml0IHByb3BlcnR5
ICJnZXRCb3VuZGluZ0NsaWVudFJlY3QoKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIEVs
ZW1lbnQgaW50ZXJmYWNlOiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbWciKSBtdXN0IGluaGVy
aXQgcHJvcGVydHkgInNjcm9sbEludG9WaWV3KFtvYmplY3QgT2JqZWN0XSxbb2JqZWN0IE9iamVj
dF0pIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgRWxlbWVudCBpbnRlcmZhY2U6IGNhbGxp
bmcgc2Nyb2xsSW50b1ZpZXcoW29iamVjdCBPYmplY3RdLFtvYmplY3QgT2JqZWN0XSkgb24gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgiaW1nIikgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRo
cm93IFR5cGVFcnJvciAKK1BBU1MgRWxlbWVudCBpbnRlcmZhY2U6IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoImltZyIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAic2Nyb2xsKFNjcm9sbFRvT3B0aW9u
cykiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBFbGVtZW50IGludGVyZmFjZTogY2FsbGlu
ZyBzY3JvbGwoU2Nyb2xsVG9PcHRpb25zKSBvbiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbWci
KSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAorUEFTUyBFbGVt
ZW50IGludGVyZmFjZTogZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW1nIikgbXVzdCBpbmhlcml0
IHByb3BlcnR5ICJzY3JvbGwodW5yZXN0cmljdGVkIGRvdWJsZSwgdW5yZXN0cmljdGVkIGRvdWJs
ZSkiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBFbGVtZW50IGludGVyZmFjZTogY2FsbGlu
ZyBzY3JvbGwodW5yZXN0cmljdGVkIGRvdWJsZSwgdW5yZXN0cmljdGVkIGRvdWJsZSkgb24gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgiaW1nIikgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRo
cm93IFR5cGVFcnJvciAKK1BBU1MgRWxlbWVudCBpbnRlcmZhY2U6IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoImltZyIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAic2Nyb2xsVG8oU2Nyb2xsVG9PcHRp
b25zKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIEVsZW1lbnQgaW50ZXJmYWNlOiBjYWxs
aW5nIHNjcm9sbFRvKFNjcm9sbFRvT3B0aW9ucykgb24gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi
aW1nIikgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKK1BBU1Mg
RWxlbWVudCBpbnRlcmZhY2U6IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImltZyIpIG11c3QgaW5o
ZXJpdCBwcm9wZXJ0eSAic2Nyb2xsVG8odW5yZXN0cmljdGVkIGRvdWJsZSwgdW5yZXN0cmljdGVk
IGRvdWJsZSkiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBFbGVtZW50IGludGVyZmFjZTog
Y2FsbGluZyBzY3JvbGxUbyh1bnJlc3RyaWN0ZWQgZG91YmxlLCB1bnJlc3RyaWN0ZWQgZG91Ymxl
KSBvbiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbWciKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRz
IG11c3QgdGhyb3cgVHlwZUVycm9yIAorUEFTUyBFbGVtZW50IGludGVyZmFjZTogZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgiaW1nIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJzY3JvbGxCeShTY3Jv
bGxUb09wdGlvbnMpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgRWxlbWVudCBpbnRlcmZh
Y2U6IGNhbGxpbmcgc2Nyb2xsQnkoU2Nyb2xsVG9PcHRpb25zKSBvbiBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJpbWciKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9y
IAorUEFTUyBFbGVtZW50IGludGVyZmFjZTogZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW1nIikg
bXVzdCBpbmhlcml0IHByb3BlcnR5ICJzY3JvbGxCeSh1bnJlc3RyaWN0ZWQgZG91YmxlLCB1bnJl
c3RyaWN0ZWQgZG91YmxlKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIEVsZW1lbnQgaW50
ZXJmYWNlOiBjYWxsaW5nIHNjcm9sbEJ5KHVucmVzdHJpY3RlZCBkb3VibGUsIHVucmVzdHJpY3Rl
ZCBkb3VibGUpIG9uIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImltZyIpIHdpdGggdG9vIGZldyBh
cmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCitQQVNTIEVsZW1lbnQgaW50ZXJmYWNlOiBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbWciKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInNjcm9s
bFRvcCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIEVsZW1lbnQgaW50ZXJmYWNlOiBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJpbWciKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInNjcm9sbExl
ZnQiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBFbGVtZW50IGludGVyZmFjZTogZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgiaW1nIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJzY3JvbGxXaWR0
aCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIEVsZW1lbnQgaW50ZXJmYWNlOiBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJpbWciKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInNjcm9sbEhlaWdo
dCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIEVsZW1lbnQgaW50ZXJmYWNlOiBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJpbWciKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImNsaWVudFRvcCIg
d2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIEVsZW1lbnQgaW50ZXJmYWNlOiBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCJpbWciKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImNsaWVudExlZnQiIHdp
dGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBFbGVtZW50IGludGVyZmFjZTogZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgiaW1nIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJjbGllbnRXaWR0aCIgd2l0
aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIEVsZW1lbnQgaW50ZXJmYWNlOiBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJpbWciKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImNsaWVudEhlaWdodCIgd2l0
aCB0aGUgcHJvcGVyIHR5cGUgCitGQUlMIEVsZW1lbnQgaW50ZXJmYWNlOiBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJpbWciKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImdldEJveFF1YWRzKEJveFF1
YWRPcHRpb25zKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2luaGVyaXRzOiBwcm9wZXJ0
eSAiZ2V0Qm94UXVhZHMiIG5vdCBmb3VuZCBpbiBwcm90b3R5cGUgY2hhaW4KK0ZBSUwgRWxlbWVu
dCBpbnRlcmZhY2U6IGNhbGxpbmcgZ2V0Qm94UXVhZHMoQm94UXVhZE9wdGlvbnMpIG9uIGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoImltZyIpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJv
dyBUeXBlRXJyb3IgYXNzZXJ0X2luaGVyaXRzOiBwcm9wZXJ0eSAiZ2V0Qm94UXVhZHMiIG5vdCBm
b3VuZCBpbiBwcm90b3R5cGUgY2hhaW4KK0ZBSUwgRWxlbWVudCBpbnRlcmZhY2U6IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoImltZyIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiY29udmVydFF1YWRG
cm9tTm9kZShET01RdWFkSW5pdCwgR2VvbWV0cnlOb2RlLCBDb252ZXJ0Q29vcmRpbmF0ZU9wdGlv
bnMpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBhc3NlcnRfaW5oZXJpdHM6IHByb3BlcnR5ICJjb252
ZXJ0UXVhZEZyb21Ob2RlIiBub3QgZm91bmQgaW4gcHJvdG90eXBlIGNoYWluCitGQUlMIEVsZW1l
bnQgaW50ZXJmYWNlOiBjYWxsaW5nIGNvbnZlcnRRdWFkRnJvbU5vZGUoRE9NUXVhZEluaXQsIEdl
b21ldHJ5Tm9kZSwgQ29udmVydENvb3JkaW5hdGVPcHRpb25zKSBvbiBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJpbWciKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9y
IGFzc2VydF9pbmhlcml0czogcHJvcGVydHkgImNvbnZlcnRRdWFkRnJvbU5vZGUiIG5vdCBmb3Vu
ZCBpbiBwcm90b3R5cGUgY2hhaW4KK0ZBSUwgRWxlbWVudCBpbnRlcmZhY2U6IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoImltZyIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiY29udmVydFJlY3RGcm9t
Tm9kZShET01SZWN0UmVhZE9ubHksIEdlb21ldHJ5Tm9kZSwgQ29udmVydENvb3JkaW5hdGVPcHRp
b25zKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2luaGVyaXRzOiBwcm9wZXJ0eSAiY29u
dmVydFJlY3RGcm9tTm9kZSIgbm90IGZvdW5kIGluIHByb3RvdHlwZSBjaGFpbgorRkFJTCBFbGVt
ZW50IGludGVyZmFjZTogY2FsbGluZyBjb252ZXJ0UmVjdEZyb21Ob2RlKERPTVJlY3RSZWFkT25s
eSwgR2VvbWV0cnlOb2RlLCBDb252ZXJ0Q29vcmRpbmF0ZU9wdGlvbnMpIG9uIGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoImltZyIpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBl
RXJyb3IgYXNzZXJ0X2luaGVyaXRzOiBwcm9wZXJ0eSAiY29udmVydFJlY3RGcm9tTm9kZSIgbm90
IGZvdW5kIGluIHByb3RvdHlwZSBjaGFpbgorRkFJTCBFbGVtZW50IGludGVyZmFjZTogZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgiaW1nIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJjb252ZXJ0UG9p
bnRGcm9tTm9kZShET01Qb2ludEluaXQsIEdlb21ldHJ5Tm9kZSwgQ29udmVydENvb3JkaW5hdGVP
cHRpb25zKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2luaGVyaXRzOiBwcm9wZXJ0eSAi
Y29udmVydFBvaW50RnJvbU5vZGUiIG5vdCBmb3VuZCBpbiBwcm90b3R5cGUgY2hhaW4KK0ZBSUwg
RWxlbWVudCBpbnRlcmZhY2U6IGNhbGxpbmcgY29udmVydFBvaW50RnJvbU5vZGUoRE9NUG9pbnRJ
bml0LCBHZW9tZXRyeU5vZGUsIENvbnZlcnRDb29yZGluYXRlT3B0aW9ucykgb24gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgiaW1nIikgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5
cGVFcnJvciBhc3NlcnRfaW5oZXJpdHM6IHByb3BlcnR5ICJjb252ZXJ0UG9pbnRGcm9tTm9kZSIg
bm90IGZvdW5kIGluIHByb3RvdHlwZSBjaGFpbgorUEFTUyBXaW5kb3cgaW50ZXJmYWNlOiBvcGVy
YXRpb24gbWF0Y2hNZWRpYShDU1NPTVN0cmluZykgCitQQVNTIFdpbmRvdyBpbnRlcmZhY2U6IGF0
dHJpYnV0ZSBzY3JlZW4gCitGQUlMIFdpbmRvdyBpbnRlcmZhY2U6IG9wZXJhdGlvbiBtb3ZlVG8o
bG9uZywgbG9uZykgYXNzZXJ0X2VxdWFsczogcHJvcGVydHkgaGFzIHdyb25nIC5sZW5ndGggZXhw
ZWN0ZWQgMiBidXQgZ290IDAKK0ZBSUwgV2luZG93IGludGVyZmFjZTogb3BlcmF0aW9uIG1vdmVC
eShsb25nLCBsb25nKSBhc3NlcnRfZXF1YWxzOiBwcm9wZXJ0eSBoYXMgd3JvbmcgLmxlbmd0aCBl
eHBlY3RlZCAyIGJ1dCBnb3QgMAorRkFJTCBXaW5kb3cgaW50ZXJmYWNlOiBvcGVyYXRpb24gcmVz
aXplVG8obG9uZywgbG9uZykgYXNzZXJ0X2VxdWFsczogcHJvcGVydHkgaGFzIHdyb25nIC5sZW5n
dGggZXhwZWN0ZWQgMiBidXQgZ290IDAKK0ZBSUwgV2luZG93IGludGVyZmFjZTogb3BlcmF0aW9u
IHJlc2l6ZUJ5KGxvbmcsIGxvbmcpIGFzc2VydF9lcXVhbHM6IHByb3BlcnR5IGhhcyB3cm9uZyAu
bGVuZ3RoIGV4cGVjdGVkIDIgYnV0IGdvdCAwCitQQVNTIFdpbmRvdyBpbnRlcmZhY2U6IGF0dHJp
YnV0ZSBpbm5lcldpZHRoIAorUEFTUyBXaW5kb3cgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgaW5uZXJI
ZWlnaHQgCitQQVNTIFdpbmRvdyBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBzY3JvbGxYIAorUEFTUyBX
aW5kb3cgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgcGFnZVhPZmZzZXQgCitQQVNTIFdpbmRvdyBpbnRl
cmZhY2U6IGF0dHJpYnV0ZSBzY3JvbGxZIAorUEFTUyBXaW5kb3cgaW50ZXJmYWNlOiBhdHRyaWJ1
dGUgcGFnZVlPZmZzZXQgCitQQVNTIFdpbmRvdyBpbnRlcmZhY2U6IG9wZXJhdGlvbiBzY3JvbGwo
U2Nyb2xsVG9PcHRpb25zKSAKK1BBU1MgV2luZG93IGludGVyZmFjZTogb3BlcmF0aW9uIHNjcm9s
bCh1bnJlc3RyaWN0ZWQgZG91YmxlLCB1bnJlc3RyaWN0ZWQgZG91YmxlKSAKK1BBU1MgV2luZG93
IGludGVyZmFjZTogb3BlcmF0aW9uIHNjcm9sbFRvKFNjcm9sbFRvT3B0aW9ucykgCitQQVNTIFdp
bmRvdyBpbnRlcmZhY2U6IG9wZXJhdGlvbiBzY3JvbGxUbyh1bnJlc3RyaWN0ZWQgZG91YmxlLCB1
bnJlc3RyaWN0ZWQgZG91YmxlKSAKK1BBU1MgV2luZG93IGludGVyZmFjZTogb3BlcmF0aW9uIHNj
cm9sbEJ5KFNjcm9sbFRvT3B0aW9ucykgCitQQVNTIFdpbmRvdyBpbnRlcmZhY2U6IG9wZXJhdGlv
biBzY3JvbGxCeSh1bnJlc3RyaWN0ZWQgZG91YmxlLCB1bnJlc3RyaWN0ZWQgZG91YmxlKSAKK1BB
U1MgV2luZG93IGludGVyZmFjZTogYXR0cmlidXRlIHNjcmVlblggCitQQVNTIFdpbmRvdyBpbnRl
cmZhY2U6IGF0dHJpYnV0ZSBzY3JlZW5MZWZ0IAorUEFTUyBXaW5kb3cgaW50ZXJmYWNlOiBhdHRy
aWJ1dGUgc2NyZWVuWSAKK1BBU1MgV2luZG93IGludGVyZmFjZTogYXR0cmlidXRlIHNjcmVlblRv
cCAKK1BBU1MgV2luZG93IGludGVyZmFjZTogYXR0cmlidXRlIG91dGVyV2lkdGggCitQQVNTIFdp
bmRvdyBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBvdXRlckhlaWdodCAKK1BBU1MgV2luZG93IGludGVy
ZmFjZTogYXR0cmlidXRlIGRldmljZVBpeGVsUmF0aW8gCitQQVNTIFdpbmRvdyBpbnRlcmZhY2U6
IHdpbmRvdyBtdXN0IGluaGVyaXQgcHJvcGVydHkgIm1hdGNoTWVkaWEoQ1NTT01TdHJpbmcpIiB3
aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgV2luZG93IGludGVyZmFjZTogY2FsbGluZyBtYXRj
aE1lZGlhKENTU09NU3RyaW5nKSBvbiB3aW5kb3cgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0
IHRocm93IFR5cGVFcnJvciAKK1BBU1MgV2luZG93IGludGVyZmFjZTogd2luZG93IG11c3QgaW5o
ZXJpdCBwcm9wZXJ0eSAic2NyZWVuIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgV2luZG93
IGludGVyZmFjZTogd2luZG93IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAibW92ZVRvKGxvbmcsIGxv
bmcpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK0ZBSUwgV2luZG93IGludGVyZmFjZTogY2FsbGlu
ZyBtb3ZlVG8obG9uZywgbG9uZykgb24gd2luZG93IHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVz
dCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMg
ZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIGZuLmFwcGx5KG9iaiwgYXJncyk7
CisgICAgICAgIH0iIGRpZCBub3QgdGhyb3cKK1BBU1MgV2luZG93IGludGVyZmFjZTogd2luZG93
IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAibW92ZUJ5KGxvbmcsIGxvbmcpIiB3aXRoIHRoZSBwcm9w
ZXIgdHlwZSAKK0ZBSUwgV2luZG93IGludGVyZmFjZTogY2FsbGluZyBtb3ZlQnkobG9uZywgbG9u
Zykgb24gd2luZG93IHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3Ig
YXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9u
ICgpIHsKKyAgICAgICAgICAgIGZuLmFwcGx5KG9iaiwgYXJncyk7CisgICAgICAgIH0iIGRpZCBu
b3QgdGhyb3cKK1BBU1MgV2luZG93IGludGVyZmFjZTogd2luZG93IG11c3QgaW5oZXJpdCBwcm9w
ZXJ0eSAicmVzaXplVG8obG9uZywgbG9uZykiIHdpdGggdGhlIHByb3BlciB0eXBlIAorRkFJTCBX
aW5kb3cgaW50ZXJmYWNlOiBjYWxsaW5nIHJlc2l6ZVRvKGxvbmcsIGxvbmcpIG9uIHdpbmRvdyB3
aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6
IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7CisgICAgICAg
ICAgICBmbi5hcHBseShvYmosIGFyZ3MpOworICAgICAgICB9IiBkaWQgbm90IHRocm93CitQQVNT
IFdpbmRvdyBpbnRlcmZhY2U6IHdpbmRvdyBtdXN0IGluaGVyaXQgcHJvcGVydHkgInJlc2l6ZUJ5
KGxvbmcsIGxvbmcpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK0ZBSUwgV2luZG93IGludGVyZmFj
ZTogY2FsbGluZyByZXNpemVCeShsb25nLCBsb25nKSBvbiB3aW5kb3cgd2l0aCB0b28gZmV3IGFy
Z3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAw
IGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgZm4uYXBwbHko
b2JqLCBhcmdzKTsKKyAgICAgICAgfSIgZGlkIG5vdCB0aHJvdworUEFTUyBXaW5kb3cgaW50ZXJm
YWNlOiB3aW5kb3cgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJpbm5lcldpZHRoIiB3aXRoIHRoZSBw
cm9wZXIgdHlwZSAKK1BBU1MgV2luZG93IGludGVyZmFjZTogd2luZG93IG11c3QgaW5oZXJpdCBw
cm9wZXJ0eSAiaW5uZXJIZWlnaHQiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBXaW5kb3cg
aW50ZXJmYWNlOiB3aW5kb3cgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJzY3JvbGxYIiB3aXRoIHRo
ZSBwcm9wZXIgdHlwZSAKK1BBU1MgV2luZG93IGludGVyZmFjZTogd2luZG93IG11c3QgaW5oZXJp
dCBwcm9wZXJ0eSAicGFnZVhPZmZzZXQiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBXaW5k
b3cgaW50ZXJmYWNlOiB3aW5kb3cgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJzY3JvbGxZIiB3aXRo
IHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgV2luZG93IGludGVyZmFjZTogd2luZG93IG11c3QgaW5o
ZXJpdCBwcm9wZXJ0eSAicGFnZVlPZmZzZXQiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBX
aW5kb3cgaW50ZXJmYWNlOiB3aW5kb3cgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJzY3JvbGwoU2Ny
b2xsVG9PcHRpb25zKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIFdpbmRvdyBpbnRlcmZh
Y2U6IGNhbGxpbmcgc2Nyb2xsKFNjcm9sbFRvT3B0aW9ucykgb24gd2luZG93IHdpdGggdG9vIGZl
dyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCitQQVNTIFdpbmRvdyBpbnRlcmZhY2U6
IHdpbmRvdyBtdXN0IGluaGVyaXQgcHJvcGVydHkgInNjcm9sbCh1bnJlc3RyaWN0ZWQgZG91Ymxl
LCB1bnJlc3RyaWN0ZWQgZG91YmxlKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIFdpbmRv
dyBpbnRlcmZhY2U6IGNhbGxpbmcgc2Nyb2xsKHVucmVzdHJpY3RlZCBkb3VibGUsIHVucmVzdHJp
Y3RlZCBkb3VibGUpIG9uIHdpbmRvdyB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cg
VHlwZUVycm9yIAorUEFTUyBXaW5kb3cgaW50ZXJmYWNlOiB3aW5kb3cgbXVzdCBpbmhlcml0IHBy
b3BlcnR5ICJzY3JvbGxUbyhTY3JvbGxUb09wdGlvbnMpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAK
K1BBU1MgV2luZG93IGludGVyZmFjZTogY2FsbGluZyBzY3JvbGxUbyhTY3JvbGxUb09wdGlvbnMp
IG9uIHdpbmRvdyB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAor
UEFTUyBXaW5kb3cgaW50ZXJmYWNlOiB3aW5kb3cgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJzY3Jv
bGxUbyh1bnJlc3RyaWN0ZWQgZG91YmxlLCB1bnJlc3RyaWN0ZWQgZG91YmxlKSIgd2l0aCB0aGUg
cHJvcGVyIHR5cGUgCitQQVNTIFdpbmRvdyBpbnRlcmZhY2U6IGNhbGxpbmcgc2Nyb2xsVG8odW5y
ZXN0cmljdGVkIGRvdWJsZSwgdW5yZXN0cmljdGVkIGRvdWJsZSkgb24gd2luZG93IHdpdGggdG9v
IGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCitQQVNTIFdpbmRvdyBpbnRlcmZh
Y2U6IHdpbmRvdyBtdXN0IGluaGVyaXQgcHJvcGVydHkgInNjcm9sbEJ5KFNjcm9sbFRvT3B0aW9u
cykiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBXaW5kb3cgaW50ZXJmYWNlOiBjYWxsaW5n
IHNjcm9sbEJ5KFNjcm9sbFRvT3B0aW9ucykgb24gd2luZG93IHdpdGggdG9vIGZldyBhcmd1bWVu
dHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCitQQVNTIFdpbmRvdyBpbnRlcmZhY2U6IHdpbmRvdyBt
dXN0IGluaGVyaXQgcHJvcGVydHkgInNjcm9sbEJ5KHVucmVzdHJpY3RlZCBkb3VibGUsIHVucmVz
dHJpY3RlZCBkb3VibGUpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgV2luZG93IGludGVy
ZmFjZTogY2FsbGluZyBzY3JvbGxCeSh1bnJlc3RyaWN0ZWQgZG91YmxlLCB1bnJlc3RyaWN0ZWQg
ZG91YmxlKSBvbiB3aW5kb3cgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVF
cnJvciAKK1BBU1MgV2luZG93IGludGVyZmFjZTogd2luZG93IG11c3QgaW5oZXJpdCBwcm9wZXJ0
eSAic2NyZWVuWCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIFdpbmRvdyBpbnRlcmZhY2U6
IHdpbmRvdyBtdXN0IGluaGVyaXQgcHJvcGVydHkgInNjcmVlbkxlZnQiIHdpdGggdGhlIHByb3Bl
ciB0eXBlIAorUEFTUyBXaW5kb3cgaW50ZXJmYWNlOiB3aW5kb3cgbXVzdCBpbmhlcml0IHByb3Bl
cnR5ICJzY3JlZW5ZIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgV2luZG93IGludGVyZmFj
ZTogd2luZG93IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAic2NyZWVuVG9wIiB3aXRoIHRoZSBwcm9w
ZXIgdHlwZSAKK1BBU1MgV2luZG93IGludGVyZmFjZTogd2luZG93IG11c3QgaW5oZXJpdCBwcm9w
ZXJ0eSAib3V0ZXJXaWR0aCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIFdpbmRvdyBpbnRl
cmZhY2U6IHdpbmRvdyBtdXN0IGluaGVyaXQgcHJvcGVydHkgIm91dGVySGVpZ2h0IiB3aXRoIHRo
ZSBwcm9wZXIgdHlwZSAKK1BBU1MgV2luZG93IGludGVyZmFjZTogd2luZG93IG11c3QgaW5oZXJp
dCBwcm9wZXJ0eSAiZGV2aWNlUGl4ZWxSYXRpbyIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNT
IERvY3VtZW50IGludGVyZmFjZTogb3BlcmF0aW9uIGVsZW1lbnRGcm9tUG9pbnQoZG91YmxlLCBk
b3VibGUpIAorUEFTUyBEb2N1bWVudCBpbnRlcmZhY2U6IG9wZXJhdGlvbiBlbGVtZW50c0Zyb21Q
b2ludChkb3VibGUsIGRvdWJsZSkgCitGQUlMIERvY3VtZW50IGludGVyZmFjZTogb3BlcmF0aW9u
IGNhcmV0UG9zaXRpb25Gcm9tUG9pbnQoZG91YmxlLCBkb3VibGUpIGFzc2VydF9vd25fcHJvcGVy
dHk6IGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IG1pc3Npbmcgbm9uLXN0YXRpYyBvcGVyYXRp
b24gZXhwZWN0ZWQgcHJvcGVydHkgImNhcmV0UG9zaXRpb25Gcm9tUG9pbnQiIG1pc3NpbmcKK1BB
U1MgRG9jdW1lbnQgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgc2Nyb2xsaW5nRWxlbWVudCAKK0ZBSUwg
RG9jdW1lbnQgaW50ZXJmYWNlOiBvcGVyYXRpb24gZ2V0Qm94UXVhZHMoQm94UXVhZE9wdGlvbnMp
IGFzc2VydF9vd25fcHJvcGVydHk6IGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IG1pc3Npbmcg
bm9uLXN0YXRpYyBvcGVyYXRpb24gZXhwZWN0ZWQgcHJvcGVydHkgImdldEJveFF1YWRzIiBtaXNz
aW5nCitGQUlMIERvY3VtZW50IGludGVyZmFjZTogb3BlcmF0aW9uIGNvbnZlcnRRdWFkRnJvbU5v
ZGUoRE9NUXVhZEluaXQsIEdlb21ldHJ5Tm9kZSwgQ29udmVydENvb3JkaW5hdGVPcHRpb25zKSBh
c3NlcnRfb3duX3Byb3BlcnR5OiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCBtaXNzaW5nIG5v
bi1zdGF0aWMgb3BlcmF0aW9uIGV4cGVjdGVkIHByb3BlcnR5ICJjb252ZXJ0UXVhZEZyb21Ob2Rl
IiBtaXNzaW5nCitGQUlMIERvY3VtZW50IGludGVyZmFjZTogb3BlcmF0aW9uIGNvbnZlcnRSZWN0
RnJvbU5vZGUoRE9NUmVjdFJlYWRPbmx5LCBHZW9tZXRyeU5vZGUsIENvbnZlcnRDb29yZGluYXRl
T3B0aW9ucykgYXNzZXJ0X293bl9wcm9wZXJ0eTogaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3Qg
bWlzc2luZyBub24tc3RhdGljIG9wZXJhdGlvbiBleHBlY3RlZCBwcm9wZXJ0eSAiY29udmVydFJl
Y3RGcm9tTm9kZSIgbWlzc2luZworRkFJTCBEb2N1bWVudCBpbnRlcmZhY2U6IG9wZXJhdGlvbiBj
b252ZXJ0UG9pbnRGcm9tTm9kZShET01Qb2ludEluaXQsIEdlb21ldHJ5Tm9kZSwgQ29udmVydENv
b3JkaW5hdGVPcHRpb25zKSBhc3NlcnRfb3duX3Byb3BlcnR5OiBpbnRlcmZhY2UgcHJvdG90eXBl
IG9iamVjdCBtaXNzaW5nIG5vbi1zdGF0aWMgb3BlcmF0aW9uIGV4cGVjdGVkIHByb3BlcnR5ICJj
b252ZXJ0UG9pbnRGcm9tTm9kZSIgbWlzc2luZworUEFTUyBEb2N1bWVudCBpbnRlcmZhY2U6IGRv
Y3VtZW50IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiZWxlbWVudEZyb21Qb2ludChkb3VibGUsIGRv
dWJsZSkiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBEb2N1bWVudCBpbnRlcmZhY2U6IGNh
bGxpbmcgZWxlbWVudEZyb21Qb2ludChkb3VibGUsIGRvdWJsZSkgb24gZG9jdW1lbnQgd2l0aCB0
b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKK1BBU1MgRG9jdW1lbnQgaW50
ZXJmYWNlOiBkb2N1bWVudCBtdXN0IGluaGVyaXQgcHJvcGVydHkgImVsZW1lbnRzRnJvbVBvaW50
KGRvdWJsZSwgZG91YmxlKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIERvY3VtZW50IGlu
dGVyZmFjZTogY2FsbGluZyBlbGVtZW50c0Zyb21Qb2ludChkb3VibGUsIGRvdWJsZSkgb24gZG9j
dW1lbnQgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKK0ZBSUwg
RG9jdW1lbnQgaW50ZXJmYWNlOiBkb2N1bWVudCBtdXN0IGluaGVyaXQgcHJvcGVydHkgImNhcmV0
UG9zaXRpb25Gcm9tUG9pbnQoZG91YmxlLCBkb3VibGUpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBh
c3NlcnRfaW5oZXJpdHM6IHByb3BlcnR5ICJjYXJldFBvc2l0aW9uRnJvbVBvaW50IiBub3QgZm91
bmQgaW4gcHJvdG90eXBlIGNoYWluCitGQUlMIERvY3VtZW50IGludGVyZmFjZTogY2FsbGluZyBj
YXJldFBvc2l0aW9uRnJvbVBvaW50KGRvdWJsZSwgZG91YmxlKSBvbiBkb2N1bWVudCB3aXRoIHRv
byBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF9pbmhlcml0czogcHJv
cGVydHkgImNhcmV0UG9zaXRpb25Gcm9tUG9pbnQiIG5vdCBmb3VuZCBpbiBwcm90b3R5cGUgY2hh
aW4KK1BBU1MgRG9jdW1lbnQgaW50ZXJmYWNlOiBkb2N1bWVudCBtdXN0IGluaGVyaXQgcHJvcGVy
dHkgInNjcm9sbGluZ0VsZW1lbnQiIHdpdGggdGhlIHByb3BlciB0eXBlIAorRkFJTCBEb2N1bWVu
dCBpbnRlcmZhY2U6IGRvY3VtZW50IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiZ2V0Qm94UXVhZHMo
Qm94UXVhZE9wdGlvbnMpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBhc3NlcnRfaW5oZXJpdHM6IHBy
b3BlcnR5ICJnZXRCb3hRdWFkcyIgbm90IGZvdW5kIGluIHByb3RvdHlwZSBjaGFpbgorRkFJTCBE
b2N1bWVudCBpbnRlcmZhY2U6IGNhbGxpbmcgZ2V0Qm94UXVhZHMoQm94UXVhZE9wdGlvbnMpIG9u
IGRvY3VtZW50IHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNz
ZXJ0X2luaGVyaXRzOiBwcm9wZXJ0eSAiZ2V0Qm94UXVhZHMiIG5vdCBmb3VuZCBpbiBwcm90b3R5
cGUgY2hhaW4KK0ZBSUwgRG9jdW1lbnQgaW50ZXJmYWNlOiBkb2N1bWVudCBtdXN0IGluaGVyaXQg
cHJvcGVydHkgImNvbnZlcnRRdWFkRnJvbU5vZGUoRE9NUXVhZEluaXQsIEdlb21ldHJ5Tm9kZSwg
Q29udmVydENvb3JkaW5hdGVPcHRpb25zKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2lu
aGVyaXRzOiBwcm9wZXJ0eSAiY29udmVydFF1YWRGcm9tTm9kZSIgbm90IGZvdW5kIGluIHByb3Rv
dHlwZSBjaGFpbgorRkFJTCBEb2N1bWVudCBpbnRlcmZhY2U6IGNhbGxpbmcgY29udmVydFF1YWRG
cm9tTm9kZShET01RdWFkSW5pdCwgR2VvbWV0cnlOb2RlLCBDb252ZXJ0Q29vcmRpbmF0ZU9wdGlv
bnMpIG9uIGRvY3VtZW50IHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJy
b3IgYXNzZXJ0X2luaGVyaXRzOiBwcm9wZXJ0eSAiY29udmVydFF1YWRGcm9tTm9kZSIgbm90IGZv
dW5kIGluIHByb3RvdHlwZSBjaGFpbgorRkFJTCBEb2N1bWVudCBpbnRlcmZhY2U6IGRvY3VtZW50
IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiY29udmVydFJlY3RGcm9tTm9kZShET01SZWN0UmVhZE9u
bHksIEdlb21ldHJ5Tm9kZSwgQ29udmVydENvb3JkaW5hdGVPcHRpb25zKSIgd2l0aCB0aGUgcHJv
cGVyIHR5cGUgYXNzZXJ0X2luaGVyaXRzOiBwcm9wZXJ0eSAiY29udmVydFJlY3RGcm9tTm9kZSIg
bm90IGZvdW5kIGluIHByb3RvdHlwZSBjaGFpbgorRkFJTCBEb2N1bWVudCBpbnRlcmZhY2U6IGNh
bGxpbmcgY29udmVydFJlY3RGcm9tTm9kZShET01SZWN0UmVhZE9ubHksIEdlb21ldHJ5Tm9kZSwg
Q29udmVydENvb3JkaW5hdGVPcHRpb25zKSBvbiBkb2N1bWVudCB3aXRoIHRvbyBmZXcgYXJndW1l
bnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF9pbmhlcml0czogcHJvcGVydHkgImNvbnZl
cnRSZWN0RnJvbU5vZGUiIG5vdCBmb3VuZCBpbiBwcm90b3R5cGUgY2hhaW4KK0ZBSUwgRG9jdW1l
bnQgaW50ZXJmYWNlOiBkb2N1bWVudCBtdXN0IGluaGVyaXQgcHJvcGVydHkgImNvbnZlcnRQb2lu
dEZyb21Ob2RlKERPTVBvaW50SW5pdCwgR2VvbWV0cnlOb2RlLCBDb252ZXJ0Q29vcmRpbmF0ZU9w
dGlvbnMpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBhc3NlcnRfaW5oZXJpdHM6IHByb3BlcnR5ICJj
b252ZXJ0UG9pbnRGcm9tTm9kZSIgbm90IGZvdW5kIGluIHByb3RvdHlwZSBjaGFpbgorRkFJTCBE
b2N1bWVudCBpbnRlcmZhY2U6IGNhbGxpbmcgY29udmVydFBvaW50RnJvbU5vZGUoRE9NUG9pbnRJ
bml0LCBHZW9tZXRyeU5vZGUsIENvbnZlcnRDb29yZGluYXRlT3B0aW9ucykgb24gZG9jdW1lbnQg
d2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfaW5oZXJp
dHM6IHByb3BlcnR5ICJjb252ZXJ0UG9pbnRGcm9tTm9kZSIgbm90IGZvdW5kIGluIHByb3RvdHlw
ZSBjaGFpbgorUEFTUyBFbGVtZW50IGludGVyZmFjZTogb3BlcmF0aW9uIGdldENsaWVudFJlY3Rz
KCkgCitQQVNTIEVsZW1lbnQgaW50ZXJmYWNlOiBvcGVyYXRpb24gZ2V0Qm91bmRpbmdDbGllbnRS
ZWN0KCkgCitQQVNTIEVsZW1lbnQgaW50ZXJmYWNlOiBvcGVyYXRpb24gc2Nyb2xsSW50b1ZpZXco
W29iamVjdCBPYmplY3RdLFtvYmplY3QgT2JqZWN0XSkgCitQQVNTIEVsZW1lbnQgaW50ZXJmYWNl
OiBvcGVyYXRpb24gc2Nyb2xsKFNjcm9sbFRvT3B0aW9ucykgCitQQVNTIEVsZW1lbnQgaW50ZXJm
YWNlOiBvcGVyYXRpb24gc2Nyb2xsKHVucmVzdHJpY3RlZCBkb3VibGUsIHVucmVzdHJpY3RlZCBk
b3VibGUpIAorUEFTUyBFbGVtZW50IGludGVyZmFjZTogb3BlcmF0aW9uIHNjcm9sbFRvKFNjcm9s
bFRvT3B0aW9ucykgCitQQVNTIEVsZW1lbnQgaW50ZXJmYWNlOiBvcGVyYXRpb24gc2Nyb2xsVG8o
dW5yZXN0cmljdGVkIGRvdWJsZSwgdW5yZXN0cmljdGVkIGRvdWJsZSkgCitQQVNTIEVsZW1lbnQg
aW50ZXJmYWNlOiBvcGVyYXRpb24gc2Nyb2xsQnkoU2Nyb2xsVG9PcHRpb25zKSAKK1BBU1MgRWxl
bWVudCBpbnRlcmZhY2U6IG9wZXJhdGlvbiBzY3JvbGxCeSh1bnJlc3RyaWN0ZWQgZG91YmxlLCB1
bnJlc3RyaWN0ZWQgZG91YmxlKSAKK1BBU1MgRWxlbWVudCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBz
Y3JvbGxUb3AgCitQQVNTIEVsZW1lbnQgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgc2Nyb2xsTGVmdCAK
K1BBU1MgRWxlbWVudCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBzY3JvbGxXaWR0aCAKK1BBU1MgRWxl
bWVudCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBzY3JvbGxIZWlnaHQgCitQQVNTIEVsZW1lbnQgaW50
ZXJmYWNlOiBhdHRyaWJ1dGUgY2xpZW50VG9wIAorUEFTUyBFbGVtZW50IGludGVyZmFjZTogYXR0
cmlidXRlIGNsaWVudExlZnQgCitQQVNTIEVsZW1lbnQgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgY2xp
ZW50V2lkdGggCitQQVNTIEVsZW1lbnQgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgY2xpZW50SGVpZ2h0
IAorRkFJTCBFbGVtZW50IGludGVyZmFjZTogb3BlcmF0aW9uIGdldEJveFF1YWRzKEJveFF1YWRP
cHRpb25zKSBhc3NlcnRfb3duX3Byb3BlcnR5OiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCBt
aXNzaW5nIG5vbi1zdGF0aWMgb3BlcmF0aW9uIGV4cGVjdGVkIHByb3BlcnR5ICJnZXRCb3hRdWFk
cyIgbWlzc2luZworRkFJTCBFbGVtZW50IGludGVyZmFjZTogb3BlcmF0aW9uIGNvbnZlcnRRdWFk
RnJvbU5vZGUoRE9NUXVhZEluaXQsIEdlb21ldHJ5Tm9kZSwgQ29udmVydENvb3JkaW5hdGVPcHRp
b25zKSBhc3NlcnRfb3duX3Byb3BlcnR5OiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCBtaXNz
aW5nIG5vbi1zdGF0aWMgb3BlcmF0aW9uIGV4cGVjdGVkIHByb3BlcnR5ICJjb252ZXJ0UXVhZEZy
b21Ob2RlIiBtaXNzaW5nCitGQUlMIEVsZW1lbnQgaW50ZXJmYWNlOiBvcGVyYXRpb24gY29udmVy
dFJlY3RGcm9tTm9kZShET01SZWN0UmVhZE9ubHksIEdlb21ldHJ5Tm9kZSwgQ29udmVydENvb3Jk
aW5hdGVPcHRpb25zKSBhc3NlcnRfb3duX3Byb3BlcnR5OiBpbnRlcmZhY2UgcHJvdG90eXBlIG9i
amVjdCBtaXNzaW5nIG5vbi1zdGF0aWMgb3BlcmF0aW9uIGV4cGVjdGVkIHByb3BlcnR5ICJjb252
ZXJ0UmVjdEZyb21Ob2RlIiBtaXNzaW5nCitGQUlMIEVsZW1lbnQgaW50ZXJmYWNlOiBvcGVyYXRp
b24gY29udmVydFBvaW50RnJvbU5vZGUoRE9NUG9pbnRJbml0LCBHZW9tZXRyeU5vZGUsIENvbnZl
cnRDb29yZGluYXRlT3B0aW9ucykgYXNzZXJ0X293bl9wcm9wZXJ0eTogaW50ZXJmYWNlIHByb3Rv
dHlwZSBvYmplY3QgbWlzc2luZyBub24tc3RhdGljIG9wZXJhdGlvbiBleHBlY3RlZCBwcm9wZXJ0
eSAiY29udmVydFBvaW50RnJvbU5vZGUiIG1pc3NpbmcKK1BBU1MgRWxlbWVudCBpbnRlcmZhY2U6
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygieCIsICJ5IikgbXVzdCBpbmhlcml0IHByb3BlcnR5
ICJnZXRDbGllbnRSZWN0cygpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgRWxlbWVudCBp
bnRlcmZhY2U6IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygieCIsICJ5IikgbXVzdCBpbmhlcml0
IHByb3BlcnR5ICJnZXRCb3VuZGluZ0NsaWVudFJlY3QoKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUg
CitQQVNTIEVsZW1lbnQgaW50ZXJmYWNlOiBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoIngiLCAi
eSIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAic2Nyb2xsSW50b1ZpZXcoW29iamVjdCBPYmplY3Rd
LFtvYmplY3QgT2JqZWN0XSkiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBFbGVtZW50IGlu
dGVyZmFjZTogY2FsbGluZyBzY3JvbGxJbnRvVmlldyhbb2JqZWN0IE9iamVjdF0sW29iamVjdCBP
YmplY3RdKSBvbiBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoIngiLCAieSIpIHdpdGggdG9vIGZl
dyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCitQQVNTIEVsZW1lbnQgaW50ZXJmYWNl
OiBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoIngiLCAieSIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0
eSAic2Nyb2xsKFNjcm9sbFRvT3B0aW9ucykiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBF
bGVtZW50IGludGVyZmFjZTogY2FsbGluZyBzY3JvbGwoU2Nyb2xsVG9PcHRpb25zKSBvbiBkb2N1
bWVudC5jcmVhdGVFbGVtZW50TlMoIngiLCAieSIpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVz
dCB0aHJvdyBUeXBlRXJyb3IgCitQQVNTIEVsZW1lbnQgaW50ZXJmYWNlOiBkb2N1bWVudC5jcmVh
dGVFbGVtZW50TlMoIngiLCAieSIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAic2Nyb2xsKHVucmVz
dHJpY3RlZCBkb3VibGUsIHVucmVzdHJpY3RlZCBkb3VibGUpIiB3aXRoIHRoZSBwcm9wZXIgdHlw
ZSAKK1BBU1MgRWxlbWVudCBpbnRlcmZhY2U6IGNhbGxpbmcgc2Nyb2xsKHVucmVzdHJpY3RlZCBk
b3VibGUsIHVucmVzdHJpY3RlZCBkb3VibGUpIG9uIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygi
eCIsICJ5Iikgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKK1BB
U1MgRWxlbWVudCBpbnRlcmZhY2U6IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygieCIsICJ5Iikg
bXVzdCBpbmhlcml0IHByb3BlcnR5ICJzY3JvbGxUbyhTY3JvbGxUb09wdGlvbnMpIiB3aXRoIHRo
ZSBwcm9wZXIgdHlwZSAKK1BBU1MgRWxlbWVudCBpbnRlcmZhY2U6IGNhbGxpbmcgc2Nyb2xsVG8o
U2Nyb2xsVG9PcHRpb25zKSBvbiBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoIngiLCAieSIpIHdp
dGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCitQQVNTIEVsZW1lbnQg
aW50ZXJmYWNlOiBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoIngiLCAieSIpIG11c3QgaW5oZXJp
dCBwcm9wZXJ0eSAic2Nyb2xsVG8odW5yZXN0cmljdGVkIGRvdWJsZSwgdW5yZXN0cmljdGVkIGRv
dWJsZSkiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBFbGVtZW50IGludGVyZmFjZTogY2Fs
bGluZyBzY3JvbGxUbyh1bnJlc3RyaWN0ZWQgZG91YmxlLCB1bnJlc3RyaWN0ZWQgZG91YmxlKSBv
biBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoIngiLCAieSIpIHdpdGggdG9vIGZldyBhcmd1bWVu
dHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCitQQVNTIEVsZW1lbnQgaW50ZXJmYWNlOiBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50TlMoIngiLCAieSIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAic2Nyb2xs
QnkoU2Nyb2xsVG9PcHRpb25zKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIEVsZW1lbnQg
aW50ZXJmYWNlOiBjYWxsaW5nIHNjcm9sbEJ5KFNjcm9sbFRvT3B0aW9ucykgb24gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudE5TKCJ4IiwgInkiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhy
b3cgVHlwZUVycm9yIAorUEFTUyBFbGVtZW50IGludGVyZmFjZTogZG9jdW1lbnQuY3JlYXRlRWxl
bWVudE5TKCJ4IiwgInkiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInNjcm9sbEJ5KHVucmVzdHJp
Y3RlZCBkb3VibGUsIHVucmVzdHJpY3RlZCBkb3VibGUpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAK
K1BBU1MgRWxlbWVudCBpbnRlcmZhY2U6IGNhbGxpbmcgc2Nyb2xsQnkodW5yZXN0cmljdGVkIGRv
dWJsZSwgdW5yZXN0cmljdGVkIGRvdWJsZSkgb24gZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJ4
IiwgInkiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAorUEFT
UyBFbGVtZW50IGludGVyZmFjZTogZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJ4IiwgInkiKSBt
dXN0IGluaGVyaXQgcHJvcGVydHkgInNjcm9sbFRvcCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQ
QVNTIEVsZW1lbnQgaW50ZXJmYWNlOiBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoIngiLCAieSIp
IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAic2Nyb2xsTGVmdCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUg
CitQQVNTIEVsZW1lbnQgaW50ZXJmYWNlOiBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoIngiLCAi
eSIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAic2Nyb2xsV2lkdGgiIHdpdGggdGhlIHByb3BlciB0
eXBlIAorUEFTUyBFbGVtZW50IGludGVyZmFjZTogZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJ4
IiwgInkiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInNjcm9sbEhlaWdodCIgd2l0aCB0aGUgcHJv
cGVyIHR5cGUgCitQQVNTIEVsZW1lbnQgaW50ZXJmYWNlOiBkb2N1bWVudC5jcmVhdGVFbGVtZW50
TlMoIngiLCAieSIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiY2xpZW50VG9wIiB3aXRoIHRoZSBw
cm9wZXIgdHlwZSAKK1BBU1MgRWxlbWVudCBpbnRlcmZhY2U6IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnROUygieCIsICJ5IikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJjbGllbnRMZWZ0IiB3aXRoIHRo
ZSBwcm9wZXIgdHlwZSAKK1BBU1MgRWxlbWVudCBpbnRlcmZhY2U6IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnROUygieCIsICJ5IikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJjbGllbnRXaWR0aCIgd2l0
aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIEVsZW1lbnQgaW50ZXJmYWNlOiBkb2N1bWVudC5jcmVh
dGVFbGVtZW50TlMoIngiLCAieSIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiY2xpZW50SGVpZ2h0
IiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK0ZBSUwgRWxlbWVudCBpbnRlcmZhY2U6IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnROUygieCIsICJ5IikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJnZXRCb3hR
dWFkcyhCb3hRdWFkT3B0aW9ucykiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9pbmhlcml0
czogcHJvcGVydHkgImdldEJveFF1YWRzIiBub3QgZm91bmQgaW4gcHJvdG90eXBlIGNoYWluCitG
QUlMIEVsZW1lbnQgaW50ZXJmYWNlOiBjYWxsaW5nIGdldEJveFF1YWRzKEJveFF1YWRPcHRpb25z
KSBvbiBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoIngiLCAieSIpIHdpdGggdG9vIGZldyBhcmd1
bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X2luaGVyaXRzOiBwcm9wZXJ0eSAiZ2V0
Qm94UXVhZHMiIG5vdCBmb3VuZCBpbiBwcm90b3R5cGUgY2hhaW4KK0ZBSUwgRWxlbWVudCBpbnRl
cmZhY2U6IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygieCIsICJ5IikgbXVzdCBpbmhlcml0IHBy
b3BlcnR5ICJjb252ZXJ0UXVhZEZyb21Ob2RlKERPTVF1YWRJbml0LCBHZW9tZXRyeU5vZGUsIENv
bnZlcnRDb29yZGluYXRlT3B0aW9ucykiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9pbmhl
cml0czogcHJvcGVydHkgImNvbnZlcnRRdWFkRnJvbU5vZGUiIG5vdCBmb3VuZCBpbiBwcm90b3R5
cGUgY2hhaW4KK0ZBSUwgRWxlbWVudCBpbnRlcmZhY2U6IGNhbGxpbmcgY29udmVydFF1YWRGcm9t
Tm9kZShET01RdWFkSW5pdCwgR2VvbWV0cnlOb2RlLCBDb252ZXJ0Q29vcmRpbmF0ZU9wdGlvbnMp
IG9uIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygieCIsICJ5Iikgd2l0aCB0b28gZmV3IGFyZ3Vt
ZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfaW5oZXJpdHM6IHByb3BlcnR5ICJjb252
ZXJ0UXVhZEZyb21Ob2RlIiBub3QgZm91bmQgaW4gcHJvdG90eXBlIGNoYWluCitGQUlMIEVsZW1l
bnQgaW50ZXJmYWNlOiBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoIngiLCAieSIpIG11c3QgaW5o
ZXJpdCBwcm9wZXJ0eSAiY29udmVydFJlY3RGcm9tTm9kZShET01SZWN0UmVhZE9ubHksIEdlb21l
dHJ5Tm9kZSwgQ29udmVydENvb3JkaW5hdGVPcHRpb25zKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUg
YXNzZXJ0X2luaGVyaXRzOiBwcm9wZXJ0eSAiY29udmVydFJlY3RGcm9tTm9kZSIgbm90IGZvdW5k
IGluIHByb3RvdHlwZSBjaGFpbgorRkFJTCBFbGVtZW50IGludGVyZmFjZTogY2FsbGluZyBjb252
ZXJ0UmVjdEZyb21Ob2RlKERPTVJlY3RSZWFkT25seSwgR2VvbWV0cnlOb2RlLCBDb252ZXJ0Q29v
cmRpbmF0ZU9wdGlvbnMpIG9uIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygieCIsICJ5Iikgd2l0
aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfaW5oZXJpdHM6
IHByb3BlcnR5ICJjb252ZXJ0UmVjdEZyb21Ob2RlIiBub3QgZm91bmQgaW4gcHJvdG90eXBlIGNo
YWluCitGQUlMIEVsZW1lbnQgaW50ZXJmYWNlOiBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoIngi
LCAieSIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiY29udmVydFBvaW50RnJvbU5vZGUoRE9NUG9p
bnRJbml0LCBHZW9tZXRyeU5vZGUsIENvbnZlcnRDb29yZGluYXRlT3B0aW9ucykiIHdpdGggdGhl
IHByb3BlciB0eXBlIGFzc2VydF9pbmhlcml0czogcHJvcGVydHkgImNvbnZlcnRQb2ludEZyb21O
b2RlIiBub3QgZm91bmQgaW4gcHJvdG90eXBlIGNoYWluCitGQUlMIEVsZW1lbnQgaW50ZXJmYWNl
OiBjYWxsaW5nIGNvbnZlcnRQb2ludEZyb21Ob2RlKERPTVBvaW50SW5pdCwgR2VvbWV0cnlOb2Rl
LCBDb252ZXJ0Q29vcmRpbmF0ZU9wdGlvbnMpIG9uIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygi
eCIsICJ5Iikgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3Nl
cnRfaW5oZXJpdHM6IHByb3BlcnR5ICJjb252ZXJ0UG9pbnRGcm9tTm9kZSIgbm90IGZvdW5kIGlu
IHByb3RvdHlwZSBjaGFpbgorRkFJTCBUZXh0IGludGVyZmFjZTogb3BlcmF0aW9uIGdldEJveFF1
YWRzKEJveFF1YWRPcHRpb25zKSBhc3NlcnRfb3duX3Byb3BlcnR5OiBpbnRlcmZhY2UgcHJvdG90
eXBlIG9iamVjdCBtaXNzaW5nIG5vbi1zdGF0aWMgb3BlcmF0aW9uIGV4cGVjdGVkIHByb3BlcnR5
ICJnZXRCb3hRdWFkcyIgbWlzc2luZworRkFJTCBUZXh0IGludGVyZmFjZTogb3BlcmF0aW9uIGNv
bnZlcnRRdWFkRnJvbU5vZGUoRE9NUXVhZEluaXQsIEdlb21ldHJ5Tm9kZSwgQ29udmVydENvb3Jk
aW5hdGVPcHRpb25zKSBhc3NlcnRfb3duX3Byb3BlcnR5OiBpbnRlcmZhY2UgcHJvdG90eXBlIG9i
amVjdCBtaXNzaW5nIG5vbi1zdGF0aWMgb3BlcmF0aW9uIGV4cGVjdGVkIHByb3BlcnR5ICJjb252
ZXJ0UXVhZEZyb21Ob2RlIiBtaXNzaW5nCitGQUlMIFRleHQgaW50ZXJmYWNlOiBvcGVyYXRpb24g
Y29udmVydFJlY3RGcm9tTm9kZShET01SZWN0UmVhZE9ubHksIEdlb21ldHJ5Tm9kZSwgQ29udmVy
dENvb3JkaW5hdGVPcHRpb25zKSBhc3NlcnRfb3duX3Byb3BlcnR5OiBpbnRlcmZhY2UgcHJvdG90
eXBlIG9iamVjdCBtaXNzaW5nIG5vbi1zdGF0aWMgb3BlcmF0aW9uIGV4cGVjdGVkIHByb3BlcnR5
ICJjb252ZXJ0UmVjdEZyb21Ob2RlIiBtaXNzaW5nCitGQUlMIFRleHQgaW50ZXJmYWNlOiBvcGVy
YXRpb24gY29udmVydFBvaW50RnJvbU5vZGUoRE9NUG9pbnRJbml0LCBHZW9tZXRyeU5vZGUsIENv
bnZlcnRDb29yZGluYXRlT3B0aW9ucykgYXNzZXJ0X293bl9wcm9wZXJ0eTogaW50ZXJmYWNlIHBy
b3RvdHlwZSBvYmplY3QgbWlzc2luZyBub24tc3RhdGljIG9wZXJhdGlvbiBleHBlY3RlZCBwcm9w
ZXJ0eSAiY29udmVydFBvaW50RnJvbU5vZGUiIG1pc3NpbmcKK0ZBSUwgVGV4dCBpbnRlcmZhY2U6
IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJ4IikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJnZXRC
b3hRdWFkcyhCb3hRdWFkT3B0aW9ucykiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9pbmhl
cml0czogcHJvcGVydHkgImdldEJveFF1YWRzIiBub3QgZm91bmQgaW4gcHJvdG90eXBlIGNoYWlu
CitGQUlMIFRleHQgaW50ZXJmYWNlOiBjYWxsaW5nIGdldEJveFF1YWRzKEJveFF1YWRPcHRpb25z
KSBvbiBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgieCIpIHdpdGggdG9vIGZldyBhcmd1bWVudHMg
bXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X2luaGVyaXRzOiBwcm9wZXJ0eSAiZ2V0Qm94UXVh
ZHMiIG5vdCBmb3VuZCBpbiBwcm90b3R5cGUgY2hhaW4KK0ZBSUwgVGV4dCBpbnRlcmZhY2U6IGRv
Y3VtZW50LmNyZWF0ZVRleHROb2RlKCJ4IikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJjb252ZXJ0
UXVhZEZyb21Ob2RlKERPTVF1YWRJbml0LCBHZW9tZXRyeU5vZGUsIENvbnZlcnRDb29yZGluYXRl
T3B0aW9ucykiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9pbmhlcml0czogcHJvcGVydHkg
ImNvbnZlcnRRdWFkRnJvbU5vZGUiIG5vdCBmb3VuZCBpbiBwcm90b3R5cGUgY2hhaW4KK0ZBSUwg
VGV4dCBpbnRlcmZhY2U6IGNhbGxpbmcgY29udmVydFF1YWRGcm9tTm9kZShET01RdWFkSW5pdCwg
R2VvbWV0cnlOb2RlLCBDb252ZXJ0Q29vcmRpbmF0ZU9wdGlvbnMpIG9uIGRvY3VtZW50LmNyZWF0
ZVRleHROb2RlKCJ4Iikgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJv
ciBhc3NlcnRfaW5oZXJpdHM6IHByb3BlcnR5ICJjb252ZXJ0UXVhZEZyb21Ob2RlIiBub3QgZm91
bmQgaW4gcHJvdG90eXBlIGNoYWluCitGQUlMIFRleHQgaW50ZXJmYWNlOiBkb2N1bWVudC5jcmVh
dGVUZXh0Tm9kZSgieCIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiY29udmVydFJlY3RGcm9tTm9k
ZShET01SZWN0UmVhZE9ubHksIEdlb21ldHJ5Tm9kZSwgQ29udmVydENvb3JkaW5hdGVPcHRpb25z
KSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2luaGVyaXRzOiBwcm9wZXJ0eSAiY29udmVy
dFJlY3RGcm9tTm9kZSIgbm90IGZvdW5kIGluIHByb3RvdHlwZSBjaGFpbgorRkFJTCBUZXh0IGlu
dGVyZmFjZTogY2FsbGluZyBjb252ZXJ0UmVjdEZyb21Ob2RlKERPTVJlY3RSZWFkT25seSwgR2Vv
bWV0cnlOb2RlLCBDb252ZXJ0Q29vcmRpbmF0ZU9wdGlvbnMpIG9uIGRvY3VtZW50LmNyZWF0ZVRl
eHROb2RlKCJ4Iikgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBh
c3NlcnRfaW5oZXJpdHM6IHByb3BlcnR5ICJjb252ZXJ0UmVjdEZyb21Ob2RlIiBub3QgZm91bmQg
aW4gcHJvdG90eXBlIGNoYWluCitGQUlMIFRleHQgaW50ZXJmYWNlOiBkb2N1bWVudC5jcmVhdGVU
ZXh0Tm9kZSgieCIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiY29udmVydFBvaW50RnJvbU5vZGUo
RE9NUG9pbnRJbml0LCBHZW9tZXRyeU5vZGUsIENvbnZlcnRDb29yZGluYXRlT3B0aW9ucykiIHdp
dGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9pbmhlcml0czogcHJvcGVydHkgImNvbnZlcnRQb2lu
dEZyb21Ob2RlIiBub3QgZm91bmQgaW4gcHJvdG90eXBlIGNoYWluCitGQUlMIFRleHQgaW50ZXJm
YWNlOiBjYWxsaW5nIGNvbnZlcnRQb2ludEZyb21Ob2RlKERPTVBvaW50SW5pdCwgR2VvbWV0cnlO
b2RlLCBDb252ZXJ0Q29vcmRpbmF0ZU9wdGlvbnMpIG9uIGRvY3VtZW50LmNyZWF0ZVRleHROb2Rl
KCJ4Iikgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRf
aW5oZXJpdHM6IHByb3BlcnR5ICJjb252ZXJ0UG9pbnRGcm9tTm9kZSIgbm90IGZvdW5kIGluIHBy
b3RvdHlwZSBjaGFpbgorUEFTUyBSYW5nZSBpbnRlcmZhY2U6IG9wZXJhdGlvbiBnZXRDbGllbnRS
ZWN0cygpIAorUEFTUyBSYW5nZSBpbnRlcmZhY2U6IG9wZXJhdGlvbiBnZXRCb3VuZGluZ0NsaWVu
dFJlY3QoKSAKK1BBU1MgUmFuZ2UgaW50ZXJmYWNlOiBuZXcgUmFuZ2UoKSBtdXN0IGluaGVyaXQg
cHJvcGVydHkgImdldENsaWVudFJlY3RzKCkiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBS
YW5nZSBpbnRlcmZhY2U6IG5ldyBSYW5nZSgpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiZ2V0Qm91
bmRpbmdDbGllbnRSZWN0KCkiIHdpdGggdGhlIHByb3BlciB0eXBlIAogCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9nZW9tZXRyeS9p
bnRlcmZhY2VzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2dlb21ldHJ5L2ludGVyZmFjZXMtZXhwZWN0ZWQudHh0CmluZGV4IGZh
NjM1ZGY0MzQ0MDExMzdiOWI1MTAzZDFkNDRlYmJlMzBiNWJkMzguLjcyNzRjYWY1ZWI3ZDJmMDZi
MTM3N2Q3ZmMzOTMwOTNjZTkyNGI5YTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2dlb21ldHJ5L2ludGVyZmFjZXMtZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2dlb21ldHJ5L2ludGVyZmFjZXMtZXhwZWN0ZWQudHh0CkBAIC0yNCw3ICsyNCw3IEBAIFBBU1Mg
RE9NUG9pbnRSZWFkT25seSBpbnRlcmZhY2U6IG5ldyBET01Qb2ludFJlYWRPbmx5KCkgbXVzdCBp
bmhlcml0IHByb3BlcnR5ICJ3CiBQQVNTIERPTVBvaW50UmVhZE9ubHkgaW50ZXJmYWNlOiBuZXcg
RE9NUG9pbnRSZWFkT25seSgpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAibWF0cml4VHJhbnNmb3Jt
KERPTU1hdHJpeEluaXQpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgRE9NUG9pbnRSZWFk
T25seSBpbnRlcmZhY2U6IGNhbGxpbmcgbWF0cml4VHJhbnNmb3JtKERPTU1hdHJpeEluaXQpIG9u
IG5ldyBET01Qb2ludFJlYWRPbmx5KCkgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93
IFR5cGVFcnJvciAKIFBBU1MgRE9NUG9pbnRSZWFkT25seSBpbnRlcmZhY2U6IG5ldyBET01Qb2lu
dFJlYWRPbmx5KCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJ0b0pTT04oKSIgd2l0aCB0aGUgcHJv
cGVyIHR5cGUgCi1QQVNTIFRlc3QgZGVmYXVsdCB0b0pTT04gb3BlcmF0aW9uIG9mIERPTVBvaW50
UmVhZE9ubHkgCitQQVNTIERPTVBvaW50UmVhZE9ubHkgaW50ZXJmYWNlOiBkZWZhdWx0IHRvSlNP
TiBvcGVyYXRpb24gb24gbmV3IERPTVBvaW50UmVhZE9ubHkoKSAKIFBBU1MgRE9NUG9pbnQgaW50
ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCAKIFBB
U1MgRE9NUG9pbnQgaW50ZXJmYWNlIG9iamVjdCBsZW5ndGggCiBQQVNTIERPTVBvaW50IGludGVy
ZmFjZSBvYmplY3QgbmFtZSAKQEAgLTU4LDcgKzU4LDcgQEAgUEFTUyBET01Qb2ludFJlYWRPbmx5
IGludGVyZmFjZTogbmV3IERPTVBvaW50KCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJ3IiB3aXRo
IHQKIFBBU1MgRE9NUG9pbnRSZWFkT25seSBpbnRlcmZhY2U6IG5ldyBET01Qb2ludCgpIG11c3Qg
aW5oZXJpdCBwcm9wZXJ0eSAibWF0cml4VHJhbnNmb3JtKERPTU1hdHJpeEluaXQpIiB3aXRoIHRo
ZSBwcm9wZXIgdHlwZSAKIFBBU1MgRE9NUG9pbnRSZWFkT25seSBpbnRlcmZhY2U6IGNhbGxpbmcg
bWF0cml4VHJhbnNmb3JtKERPTU1hdHJpeEluaXQpIG9uIG5ldyBET01Qb2ludCgpIHdpdGggdG9v
IGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCiBQQVNTIERPTVBvaW50UmVhZE9u
bHkgaW50ZXJmYWNlOiBuZXcgRE9NUG9pbnQoKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInRvSlNP
TigpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKLVBBU1MgVGVzdCBkZWZhdWx0IHRvSlNPTiBvcGVy
YXRpb24gb2YgRE9NUG9pbnQgCitQQVNTIERPTVBvaW50UmVhZE9ubHkgaW50ZXJmYWNlOiBkZWZh
dWx0IHRvSlNPTiBvcGVyYXRpb24gb24gbmV3IERPTVBvaW50KCkgCiBQQVNTIERPTVJlY3RSZWFk
T25seSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2Jq
ZWN0IAogUEFTUyBET01SZWN0UmVhZE9ubHkgaW50ZXJmYWNlIG9iamVjdCBsZW5ndGggCiBQQVNT
IERPTVJlY3RSZWFkT25seSBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUgCkBAIC04OCw3ICs4OCw3IEBA
IFBBU1MgRE9NUmVjdFJlYWRPbmx5IGludGVyZmFjZTogbmV3IERPTVJlY3RSZWFkT25seSgpIG11
c3QgaW5oZXJpdCBwcm9wZXJ0eSAicmlnCiBQQVNTIERPTVJlY3RSZWFkT25seSBpbnRlcmZhY2U6
IG5ldyBET01SZWN0UmVhZE9ubHkoKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImJvdHRvbSIgd2l0
aCB0aGUgcHJvcGVyIHR5cGUgCiBQQVNTIERPTVJlY3RSZWFkT25seSBpbnRlcmZhY2U6IG5ldyBE
T01SZWN0UmVhZE9ubHkoKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImxlZnQiIHdpdGggdGhlIHBy
b3BlciB0eXBlIAogUEFTUyBET01SZWN0UmVhZE9ubHkgaW50ZXJmYWNlOiBuZXcgRE9NUmVjdFJl
YWRPbmx5KCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJ0b0pTT04oKSIgd2l0aCB0aGUgcHJvcGVy
IHR5cGUgCi1QQVNTIFRlc3QgZGVmYXVsdCB0b0pTT04gb3BlcmF0aW9uIG9mIERPTVJlY3RSZWFk
T25seSAKK1BBU1MgRE9NUmVjdFJlYWRPbmx5IGludGVyZmFjZTogZGVmYXVsdCB0b0pTT04gb3Bl
cmF0aW9uIG9uIG5ldyBET01SZWN0UmVhZE9ubHkoKSAKIFBBU1MgRE9NUmVjdCBpbnRlcmZhY2U6
IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IAogUEFTUyBET01S
ZWN0IGludGVyZmFjZSBvYmplY3QgbGVuZ3RoIAogUEFTUyBET01SZWN0IGludGVyZmFjZSBvYmpl
Y3QgbmFtZSAKQEAgLTEyNCw3ICsxMjQsNyBAQCBQQVNTIERPTVJlY3RSZWFkT25seSBpbnRlcmZh
Y2U6IG5ldyBET01SZWN0KCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJyaWdodCIgd2l0aAogUEFT
UyBET01SZWN0UmVhZE9ubHkgaW50ZXJmYWNlOiBuZXcgRE9NUmVjdCgpIG11c3QgaW5oZXJpdCBw
cm9wZXJ0eSAiYm90dG9tIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgRE9NUmVjdFJlYWRP
bmx5IGludGVyZmFjZTogbmV3IERPTVJlY3QoKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImxlZnQi
IHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBET01SZWN0UmVhZE9ubHkgaW50ZXJmYWNlOiBu
ZXcgRE9NUmVjdCgpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAidG9KU09OKCkiIHdpdGggdGhlIHBy
b3BlciB0eXBlIAotUEFTUyBUZXN0IGRlZmF1bHQgdG9KU09OIG9wZXJhdGlvbiBvZiBET01SZWN0
IAorUEFTUyBET01SZWN0UmVhZE9ubHkgaW50ZXJmYWNlOiBkZWZhdWx0IHRvSlNPTiBvcGVyYXRp
b24gb24gbmV3IERPTVJlY3QoKSAKIFBBU1MgRE9NUmVjdExpc3QgaW50ZXJmYWNlOiBleGlzdGVu
Y2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCAKIFBBU1MgRE9NUmVjdExpc3Qg
aW50ZXJmYWNlIG9iamVjdCBsZW5ndGggCiBQQVNTIERPTVJlY3RMaXN0IGludGVyZmFjZSBvYmpl
Y3QgbmFtZSAKQEAgLTE2NCw3ICsxNjQsNyBAQCBQQVNTIERPTVF1YWQgaW50ZXJmYWNlOiBuZXcg
RE9NUXVhZCgpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAicDMiIHdpdGggdGhlIHByb3BlcgogUEFT
UyBET01RdWFkIGludGVyZmFjZTogbmV3IERPTVF1YWQoKSBtdXN0IGluaGVyaXQgcHJvcGVydHkg
InA0IiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgRE9NUXVhZCBpbnRlcmZhY2U6IG5ldyBE
T01RdWFkKCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJnZXRCb3VuZHMoKSIgd2l0aCB0aGUgcHJv
cGVyIHR5cGUgCiBQQVNTIERPTVF1YWQgaW50ZXJmYWNlOiBuZXcgRE9NUXVhZCgpIG11c3QgaW5o
ZXJpdCBwcm9wZXJ0eSAidG9KU09OKCkiIHdpdGggdGhlIHByb3BlciB0eXBlIAotRkFJTCBUZXN0
IGRlZmF1bHQgdG9KU09OIG9wZXJhdGlvbiBvZiBET01RdWFkIGFzc2VydF90cnVlOiBpbnN0YW5j
ZW9mIERPTVBvaW50IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitGQUlMIERPTVF1YWQgaW50ZXJm
YWNlOiBkZWZhdWx0IHRvSlNPTiBvcGVyYXRpb24gb24gbmV3IERPTVF1YWQoKSBhc3NlcnRfdHJ1
ZTogaW5zdGFuY2VvZiBET01Qb2ludCBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQogUEFTUyBET01N
YXRyaXhSZWFkT25seSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRl
cmZhY2Ugb2JqZWN0IAogUEFTUyBET01NYXRyaXhSZWFkT25seSBpbnRlcmZhY2Ugb2JqZWN0IGxl
bmd0aCAKIFBBU1MgRE9NTWF0cml4UmVhZE9ubHkgaW50ZXJmYWNlIG9iamVjdCBuYW1lIApAQCAt
MjczLDcgKzI3Myw3IEBAIFBBU1MgRE9NTWF0cml4UmVhZE9ubHkgaW50ZXJmYWNlOiBjYWxsaW5n
IHRyYW5zZm9ybVBvaW50KERPTVBvaW50SW5pdCkgb24gbmV3IERPCiBQQVNTIERPTU1hdHJpeFJl
YWRPbmx5IGludGVyZmFjZTogbmV3IERPTU1hdHJpeFJlYWRPbmx5KCkgbXVzdCBpbmhlcml0IHBy
b3BlcnR5ICJ0b0Zsb2F0MzJBcnJheSgpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgRE9N
TWF0cml4UmVhZE9ubHkgaW50ZXJmYWNlOiBuZXcgRE9NTWF0cml4UmVhZE9ubHkoKSBtdXN0IGlu
aGVyaXQgcHJvcGVydHkgInRvRmxvYXQ2NEFycmF5KCkiIHdpdGggdGhlIHByb3BlciB0eXBlIAog
UEFTUyBET01NYXRyaXhSZWFkT25seSBpbnRlcmZhY2U6IG5ldyBET01NYXRyaXhSZWFkT25seSgp
IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAidG9KU09OKCkiIHdpdGggdGhlIHByb3BlciB0eXBlIAot
UEFTUyBUZXN0IGRlZmF1bHQgdG9KU09OIG9wZXJhdGlvbiBvZiBET01NYXRyaXhSZWFkT25seSAK
K1BBU1MgRE9NTWF0cml4UmVhZE9ubHkgaW50ZXJmYWNlOiBkZWZhdWx0IHRvSlNPTiBvcGVyYXRp
b24gb24gbmV3IERPTU1hdHJpeFJlYWRPbmx5KCkgCiBQQVNTIERPTU1hdHJpeFJlYWRPbmx5IG11
c3QgYmUgcHJpbWFyeSBpbnRlcmZhY2Ugb2YgRE9NTWF0cml4UmVhZE9ubHkuZnJvbU1hdHJpeCh7
aXMyRDogZmFsc2V9KSAKIFBBU1MgU3RyaW5naWZpY2F0aW9uIG9mIERPTU1hdHJpeFJlYWRPbmx5
LmZyb21NYXRyaXgoe2lzMkQ6IGZhbHNlfSkgCiBQQVNTIERPTU1hdHJpeCBpbnRlcmZhY2U6IGV4
aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvZ2VvbWV0cnkv
aW50ZXJmYWNlcy53b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvZ2VvbWV0cnkvaW50ZXJmYWNlcy53b3JrZXItZXhwZWN0
ZWQudHh0CmluZGV4IDkwNTg3MDgyNTAyZmIwMzg3YjJlZDRlY2VjZmEwNmFkN2MxMDRmODguLmNi
M2JlODk3OGEzYmMwZDRlNzIzNzc1ODAzZWJlOGRjMDNhMGM0MWIgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2dlb21ldHJ5L2ludGVy
ZmFjZXMud29ya2VyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9nZW9tZXRyeS9pbnRlcmZhY2VzLndvcmtlci1leHBlY3Rl
ZC50eHQKQEAgLTI0LDcgKzI0LDcgQEAgUEFTUyBET01Qb2ludFJlYWRPbmx5IGludGVyZmFjZTog
bmV3IERPTVBvaW50UmVhZE9ubHkoKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgIncKIFBBU1MgRE9N
UG9pbnRSZWFkT25seSBpbnRlcmZhY2U6IG5ldyBET01Qb2ludFJlYWRPbmx5KCkgbXVzdCBpbmhl
cml0IHByb3BlcnR5ICJtYXRyaXhUcmFuc2Zvcm0oRE9NTWF0cml4SW5pdCkiIHdpdGggdGhlIHBy
b3BlciB0eXBlIAogUEFTUyBET01Qb2ludFJlYWRPbmx5IGludGVyZmFjZTogY2FsbGluZyBtYXRy
aXhUcmFuc2Zvcm0oRE9NTWF0cml4SW5pdCkgb24gbmV3IERPTVBvaW50UmVhZE9ubHkoKSB3aXRo
IHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAogUEFTUyBET01Qb2ludFJl
YWRPbmx5IGludGVyZmFjZTogbmV3IERPTVBvaW50UmVhZE9ubHkoKSBtdXN0IGluaGVyaXQgcHJv
cGVydHkgInRvSlNPTigpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKLVBBU1MgVGVzdCBkZWZhdWx0
IHRvSlNPTiBvcGVyYXRpb24gb2YgRE9NUG9pbnRSZWFkT25seSAKK1BBU1MgRE9NUG9pbnRSZWFk
T25seSBpbnRlcmZhY2U6IGRlZmF1bHQgdG9KU09OIG9wZXJhdGlvbiBvbiBuZXcgRE9NUG9pbnRS
ZWFkT25seSgpIAogUEFTUyBET01Qb2ludCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVy
dGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IAogUEFTUyBET01Qb2ludCBpbnRlcmZhY2Ugb2JqZWN0
IGxlbmd0aCAKIFBBU1MgRE9NUG9pbnQgaW50ZXJmYWNlIG9iamVjdCBuYW1lIApAQCAtNTQsNyAr
NTQsNyBAQCBQQVNTIERPTVBvaW50UmVhZE9ubHkgaW50ZXJmYWNlOiBuZXcgRE9NUG9pbnQoKSBt
dXN0IGluaGVyaXQgcHJvcGVydHkgInciIHdpdGggdAogUEFTUyBET01Qb2ludFJlYWRPbmx5IGlu
dGVyZmFjZTogbmV3IERPTVBvaW50KCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJtYXRyaXhUcmFu
c2Zvcm0oRE9NTWF0cml4SW5pdCkiIHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBET01Qb2lu
dFJlYWRPbmx5IGludGVyZmFjZTogY2FsbGluZyBtYXRyaXhUcmFuc2Zvcm0oRE9NTWF0cml4SW5p
dCkgb24gbmV3IERPTVBvaW50KCkgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5
cGVFcnJvciAKIFBBU1MgRE9NUG9pbnRSZWFkT25seSBpbnRlcmZhY2U6IG5ldyBET01Qb2ludCgp
IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAidG9KU09OKCkiIHdpdGggdGhlIHByb3BlciB0eXBlIAot
UEFTUyBUZXN0IGRlZmF1bHQgdG9KU09OIG9wZXJhdGlvbiBvZiBET01Qb2ludCAKK1BBU1MgRE9N
UG9pbnRSZWFkT25seSBpbnRlcmZhY2U6IGRlZmF1bHQgdG9KU09OIG9wZXJhdGlvbiBvbiBuZXcg
RE9NUG9pbnQoKSAKIFBBU1MgRE9NUmVjdFJlYWRPbmx5IGludGVyZmFjZTogZXhpc3RlbmNlIGFu
ZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgCiBQQVNTIERPTVJlY3RSZWFkT25seSBp
bnRlcmZhY2Ugb2JqZWN0IGxlbmd0aCAKIFBBU1MgRE9NUmVjdFJlYWRPbmx5IGludGVyZmFjZSBv
YmplY3QgbmFtZSAKQEAgLTg0LDcgKzg0LDcgQEAgUEFTUyBET01SZWN0UmVhZE9ubHkgaW50ZXJm
YWNlOiBuZXcgRE9NUmVjdFJlYWRPbmx5KCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJyaWcKIFBB
U1MgRE9NUmVjdFJlYWRPbmx5IGludGVyZmFjZTogbmV3IERPTVJlY3RSZWFkT25seSgpIG11c3Qg
aW5oZXJpdCBwcm9wZXJ0eSAiYm90dG9tIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgRE9N
UmVjdFJlYWRPbmx5IGludGVyZmFjZTogbmV3IERPTVJlY3RSZWFkT25seSgpIG11c3QgaW5oZXJp
dCBwcm9wZXJ0eSAibGVmdCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCiBQQVNTIERPTVJlY3RSZWFk
T25seSBpbnRlcmZhY2U6IG5ldyBET01SZWN0UmVhZE9ubHkoKSBtdXN0IGluaGVyaXQgcHJvcGVy
dHkgInRvSlNPTigpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKLVBBU1MgVGVzdCBkZWZhdWx0IHRv
SlNPTiBvcGVyYXRpb24gb2YgRE9NUmVjdFJlYWRPbmx5IAorUEFTUyBET01SZWN0UmVhZE9ubHkg
aW50ZXJmYWNlOiBkZWZhdWx0IHRvSlNPTiBvcGVyYXRpb24gb24gbmV3IERPTVJlY3RSZWFkT25s
eSgpIAogUEFTUyBET01SZWN0IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9m
IGludGVyZmFjZSBvYmplY3QgCiBQQVNTIERPTVJlY3QgaW50ZXJmYWNlIG9iamVjdCBsZW5ndGgg
CiBQQVNTIERPTVJlY3QgaW50ZXJmYWNlIG9iamVjdCBuYW1lIApAQCAtMTE2LDcgKzExNiw3IEBA
IFBBU1MgRE9NUmVjdFJlYWRPbmx5IGludGVyZmFjZTogbmV3IERPTVJlY3QoKSBtdXN0IGluaGVy
aXQgcHJvcGVydHkgInJpZ2h0IiB3aXRoCiBQQVNTIERPTVJlY3RSZWFkT25seSBpbnRlcmZhY2U6
IG5ldyBET01SZWN0KCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJib3R0b20iIHdpdGggdGhlIHBy
b3BlciB0eXBlIAogUEFTUyBET01SZWN0UmVhZE9ubHkgaW50ZXJmYWNlOiBuZXcgRE9NUmVjdCgp
IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAibGVmdCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCiBQQVNT
IERPTVJlY3RSZWFkT25seSBpbnRlcmZhY2U6IG5ldyBET01SZWN0KCkgbXVzdCBpbmhlcml0IHBy
b3BlcnR5ICJ0b0pTT04oKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCi1QQVNTIFRlc3QgZGVmYXVs
dCB0b0pTT04gb3BlcmF0aW9uIG9mIERPTVJlY3QgCitQQVNTIERPTVJlY3RSZWFkT25seSBpbnRl
cmZhY2U6IGRlZmF1bHQgdG9KU09OIG9wZXJhdGlvbiBvbiBuZXcgRE9NUmVjdCgpIAogUEFTUyBE
T01SZWN0TGlzdCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZh
Y2Ugb2JqZWN0IAogUEFTUyBET01RdWFkIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0
aWVzIG9mIGludGVyZmFjZSBvYmplY3QgCiBQQVNTIERPTVF1YWQgaW50ZXJmYWNlIG9iamVjdCBs
ZW5ndGggCkBAIC0xNDQsNyArMTQ0LDcgQEAgUEFTUyBET01RdWFkIGludGVyZmFjZTogbmV3IERP
TVF1YWQoKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInAzIiB3aXRoIHRoZSBwcm9wZXIKIFBBU1Mg
RE9NUXVhZCBpbnRlcmZhY2U6IG5ldyBET01RdWFkKCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJw
NCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCiBQQVNTIERPTVF1YWQgaW50ZXJmYWNlOiBuZXcgRE9N
UXVhZCgpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiZ2V0Qm91bmRzKCkiIHdpdGggdGhlIHByb3Bl
ciB0eXBlIAogUEFTUyBET01RdWFkIGludGVyZmFjZTogbmV3IERPTVF1YWQoKSBtdXN0IGluaGVy
aXQgcHJvcGVydHkgInRvSlNPTigpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKLUZBSUwgVGVzdCBk
ZWZhdWx0IHRvSlNPTiBvcGVyYXRpb24gb2YgRE9NUXVhZCBhc3NlcnRfdHJ1ZTogaW5zdGFuY2Vv
ZiBET01Qb2ludCBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorRkFJTCBET01RdWFkIGludGVyZmFj
ZTogZGVmYXVsdCB0b0pTT04gb3BlcmF0aW9uIG9uIG5ldyBET01RdWFkKCkgYXNzZXJ0X3RydWU6
IGluc3RhbmNlb2YgRE9NUG9pbnQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKIFBBU1MgRE9NTWF0
cml4UmVhZE9ubHkgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJm
YWNlIG9iamVjdCAKIFBBU1MgRE9NTWF0cml4UmVhZE9ubHkgaW50ZXJmYWNlIG9iamVjdCBsZW5n
dGggCiBQQVNTIERPTU1hdHJpeFJlYWRPbmx5IGludGVyZmFjZSBvYmplY3QgbmFtZSAKQEAgLTE5
Myw3ICsxOTMsNyBAQCBQQVNTIERPTU1hdHJpeFJlYWRPbmx5IGludGVyZmFjZTogb3BlcmF0aW9u
IGludmVyc2UoKQogUEFTUyBET01NYXRyaXhSZWFkT25seSBpbnRlcmZhY2U6IG9wZXJhdGlvbiB0
cmFuc2Zvcm1Qb2ludChET01Qb2ludEluaXQpIAogUEFTUyBET01NYXRyaXhSZWFkT25seSBpbnRl
cmZhY2U6IG9wZXJhdGlvbiB0b0Zsb2F0MzJBcnJheSgpIAogUEFTUyBET01NYXRyaXhSZWFkT25s
eSBpbnRlcmZhY2U6IG9wZXJhdGlvbiB0b0Zsb2F0NjRBcnJheSgpIAotUEFTUyBET01NYXRyaXhS
ZWFkT25seSBpbnRlcmZhY2U6IG1lbWJlciB1bmRlZmluZWQgCitQQVNTIERPTU1hdHJpeFJlYWRP
bmx5IGludGVyZmFjZTogbWVtYmVyICAKIFBBU1MgRE9NTWF0cml4UmVhZE9ubHkgaW50ZXJmYWNl
OiBvcGVyYXRpb24gdG9KU09OKCkgCiBQQVNTIERPTU1hdHJpeFJlYWRPbmx5IG11c3QgYmUgcHJp
bWFyeSBpbnRlcmZhY2Ugb2YgbmV3IERPTU1hdHJpeFJlYWRPbmx5KCkgCiBQQVNTIFN0cmluZ2lm
aWNhdGlvbiBvZiBuZXcgRE9NTWF0cml4UmVhZE9ubHkoKSAKQEAgLTI1Miw5ICsyNTIsOSBAQCBQ
QVNTIERPTU1hdHJpeFJlYWRPbmx5IGludGVyZmFjZTogbmV3IERPTU1hdHJpeFJlYWRPbmx5KCkg
bXVzdCBpbmhlcml0IHByb3BlcnR5CiBQQVNTIERPTU1hdHJpeFJlYWRPbmx5IGludGVyZmFjZTog
Y2FsbGluZyB0cmFuc2Zvcm1Qb2ludChET01Qb2ludEluaXQpIG9uIG5ldyBET01NYXRyaXhSZWFk
T25seSgpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCiBQQVNT
IERPTU1hdHJpeFJlYWRPbmx5IGludGVyZmFjZTogbmV3IERPTU1hdHJpeFJlYWRPbmx5KCkgbXVz
dCBpbmhlcml0IHByb3BlcnR5ICJ0b0Zsb2F0MzJBcnJheSgpIiB3aXRoIHRoZSBwcm9wZXIgdHlw
ZSAKIFBBU1MgRE9NTWF0cml4UmVhZE9ubHkgaW50ZXJmYWNlOiBuZXcgRE9NTWF0cml4UmVhZE9u
bHkoKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInRvRmxvYXQ2NEFycmF5KCkiIHdpdGggdGhlIHBy
b3BlciB0eXBlIAotUEFTUyBET01NYXRyaXhSZWFkT25seSBpbnRlcmZhY2U6IG5ldyBET01NYXRy
aXhSZWFkT25seSgpIG11c3Qgbm90IGhhdmUgcHJvcGVydHkgInVuZGVmaW5lZCIgCitQQVNTIERP
TU1hdHJpeFJlYWRPbmx5IGludGVyZmFjZTogbmV3IERPTU1hdHJpeFJlYWRPbmx5KCkgbXVzdCBu
b3QgaGF2ZSBwcm9wZXJ0eSAiIiAKIFBBU1MgRE9NTWF0cml4UmVhZE9ubHkgaW50ZXJmYWNlOiBu
ZXcgRE9NTWF0cml4UmVhZE9ubHkoKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInRvSlNPTigpIiB3
aXRoIHRoZSBwcm9wZXIgdHlwZSAKLVBBU1MgVGVzdCBkZWZhdWx0IHRvSlNPTiBvcGVyYXRpb24g
b2YgRE9NTWF0cml4UmVhZE9ubHkgCitQQVNTIERPTU1hdHJpeFJlYWRPbmx5IGludGVyZmFjZTog
ZGVmYXVsdCB0b0pTT04gb3BlcmF0aW9uIG9uIG5ldyBET01NYXRyaXhSZWFkT25seSgpIAogUEFT
UyBET01NYXRyaXhSZWFkT25seSBtdXN0IGJlIHByaW1hcnkgaW50ZXJmYWNlIG9mIERPTU1hdHJp
eFJlYWRPbmx5LmZyb21NYXRyaXgoe2lzMkQ6IGZhbHNlfSkgCiBQQVNTIFN0cmluZ2lmaWNhdGlv
biBvZiBET01NYXRyaXhSZWFkT25seS5mcm9tTWF0cml4KHtpczJEOiBmYWxzZX0pIAogUEFTUyBE
T01NYXRyaXggaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNl
IG9iamVjdCAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZG9tL2ludGVyZmFjZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vaW50ZXJmYWNlcy1leHBlY3RlZC50eHQKaW5k
ZXggMWYzZjEzYjBiZDc1MDMzMWY2ODhiZGZlNmMxMTUxNmE2N2M1YTY5Yi4uYTk4ZTA4NTY5YWY5
MDQyMzMzOWQwMTY3ZjZmODNkODhmYWI4YmM2NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vaW50ZXJmYWNlcy1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vaW50
ZXJmYWNlcy1leHBlY3RlZC50eHQKQEAgLTEsOCArMSw4IEBACi1DT05TT0xFIE1FU1NBR0U6IGxp
bmUgNDgyOiBjYWxsYmFjayBub3QgeWV0IHN1cHBvcnRlZAogRE9NIElETCB0ZXN0cwogCiAKIFBB
U1MgVGVzdCBkcml2ZXIgCitQQVNTIFBhcnRpYWwgaW50ZXJmYWNlIFdpbmRvdzogb3JpZ2luYWwg
aW50ZXJmYWNlIGRlZmluZWQgCiBQQVNTIEV2ZW50IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBw
cm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgCiBQQVNTIEV2ZW50IGludGVyZmFjZSBvYmpl
Y3QgbGVuZ3RoIAogUEFTUyBFdmVudCBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUgCkBAIC0xMyw2ICsx
Myw3IEBAIFBBU1MgRXZlbnQgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgdHlwZQogUEFTUyBFdmVudCBp
bnRlcmZhY2U6IGF0dHJpYnV0ZSB0YXJnZXQgCiBQQVNTIEV2ZW50IGludGVyZmFjZTogYXR0cmli
dXRlIHNyY0VsZW1lbnQgCiBQQVNTIEV2ZW50IGludGVyZmFjZTogYXR0cmlidXRlIGN1cnJlbnRU
YXJnZXQgCitQQVNTIEV2ZW50IGludGVyZmFjZTogb3BlcmF0aW9uIGNvbXBvc2VkUGF0aCgpIAog
UEFTUyBFdmVudCBpbnRlcmZhY2U6IGNvbnN0YW50IE5PTkUgb24gaW50ZXJmYWNlIG9iamVjdCAK
IFBBU1MgRXZlbnQgaW50ZXJmYWNlOiBjb25zdGFudCBOT05FIG9uIGludGVyZmFjZSBwcm90b3R5
cGUgb2JqZWN0IAogUEFTUyBFdmVudCBpbnRlcmZhY2U6IGNvbnN0YW50IENBUFRVUklOR19QSEFT
RSBvbiBpbnRlcmZhY2Ugb2JqZWN0IApAQCAtMjMsMTIgKzI0LDE0IEBAIFBBU1MgRXZlbnQgaW50
ZXJmYWNlOiBjb25zdGFudCBCVUJCTElOR19QSEFTRSBvbiBpbnRlcmZhY2Ugb2JqZWN0CiBQQVNT
IEV2ZW50IGludGVyZmFjZTogY29uc3RhbnQgQlVCQkxJTkdfUEhBU0Ugb24gaW50ZXJmYWNlIHBy
b3RvdHlwZSBvYmplY3QgCiBQQVNTIEV2ZW50IGludGVyZmFjZTogYXR0cmlidXRlIGV2ZW50UGhh
c2UgCiBQQVNTIEV2ZW50IGludGVyZmFjZTogb3BlcmF0aW9uIHN0b3BQcm9wYWdhdGlvbigpIAor
UEFTUyBFdmVudCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBjYW5jZWxCdWJibGUgCiBQQVNTIEV2ZW50
IGludGVyZmFjZTogb3BlcmF0aW9uIHN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpIAogUEFTUyBF
dmVudCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBidWJibGVzIAogUEFTUyBFdmVudCBpbnRlcmZhY2U6
IGF0dHJpYnV0ZSBjYW5jZWxhYmxlIAogUEFTUyBFdmVudCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBy
ZXR1cm5WYWx1ZSAKIFBBU1MgRXZlbnQgaW50ZXJmYWNlOiBvcGVyYXRpb24gcHJldmVudERlZmF1
bHQoKSAKIFBBU1MgRXZlbnQgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgZGVmYXVsdFByZXZlbnRlZCAK
K1BBU1MgRXZlbnQgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgY29tcG9zZWQgCiBQQVNTIEV2ZW50IGlu
dGVyZmFjZTogYXR0cmlidXRlIHRpbWVTdGFtcCAKIFBBU1MgRXZlbnQgaW50ZXJmYWNlOiBvcGVy
YXRpb24gaW5pdEV2ZW50KERPTVN0cmluZywgYm9vbGVhbiwgYm9vbGVhbikgCiBQQVNTIEV2ZW50
IG11c3QgYmUgcHJpbWFyeSBpbnRlcmZhY2Ugb2YgZG9jdW1lbnQuY3JlYXRlRXZlbnQoIkV2ZW50
IikgCkBAIC0zNywxOCArNDAsMjEgQEAgUEFTUyBFdmVudCBpbnRlcmZhY2U6IGRvY3VtZW50LmNy
ZWF0ZUV2ZW50KCJFdmVudCIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAidHlwZSIKIFBBU1MgRXZl
bnQgaW50ZXJmYWNlOiBkb2N1bWVudC5jcmVhdGVFdmVudCgiRXZlbnQiKSBtdXN0IGluaGVyaXQg
cHJvcGVydHkgInRhcmdldCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCiBQQVNTIEV2ZW50IGludGVy
ZmFjZTogZG9jdW1lbnQuY3JlYXRlRXZlbnQoIkV2ZW50IikgbXVzdCBpbmhlcml0IHByb3BlcnR5
ICJzcmNFbGVtZW50IiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgRXZlbnQgaW50ZXJmYWNl
OiBkb2N1bWVudC5jcmVhdGVFdmVudCgiRXZlbnQiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImN1
cnJlbnRUYXJnZXQiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBFdmVudCBpbnRlcmZhY2U6
IGRvY3VtZW50LmNyZWF0ZUV2ZW50KCJFdmVudCIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiY29t
cG9zZWRQYXRoKCkiIHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBFdmVudCBpbnRlcmZhY2U6
IGRvY3VtZW50LmNyZWF0ZUV2ZW50KCJFdmVudCIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiTk9O
RSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCiBQQVNTIEV2ZW50IGludGVyZmFjZTogZG9jdW1lbnQu
Y3JlYXRlRXZlbnQoIkV2ZW50IikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJDQVBUVVJJTkdfUEhB
U0UiIHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBFdmVudCBpbnRlcmZhY2U6IGRvY3VtZW50
LmNyZWF0ZUV2ZW50KCJFdmVudCIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiQVRfVEFSR0VUIiB3
aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgRXZlbnQgaW50ZXJmYWNlOiBkb2N1bWVudC5jcmVh
dGVFdmVudCgiRXZlbnQiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgIkJVQkJMSU5HX1BIQVNFIiB3
aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgRXZlbnQgaW50ZXJmYWNlOiBkb2N1bWVudC5jcmVh
dGVFdmVudCgiRXZlbnQiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImV2ZW50UGhhc2UiIHdpdGgg
dGhlIHByb3BlciB0eXBlIAogUEFTUyBFdmVudCBpbnRlcmZhY2U6IGRvY3VtZW50LmNyZWF0ZUV2
ZW50KCJFdmVudCIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAic3RvcFByb3BhZ2F0aW9uKCkiIHdp
dGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBFdmVudCBpbnRlcmZhY2U6IGRvY3VtZW50LmNyZWF0
ZUV2ZW50KCJFdmVudCIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiY2FuY2VsQnViYmxlIiB3aXRo
IHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgRXZlbnQgaW50ZXJmYWNlOiBkb2N1bWVudC5jcmVhdGVF
dmVudCgiRXZlbnQiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInN0b3BJbW1lZGlhdGVQcm9wYWdh
dGlvbigpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgRXZlbnQgaW50ZXJmYWNlOiBkb2N1
bWVudC5jcmVhdGVFdmVudCgiRXZlbnQiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImJ1YmJsZXMi
IHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBFdmVudCBpbnRlcmZhY2U6IGRvY3VtZW50LmNy
ZWF0ZUV2ZW50KCJFdmVudCIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiY2FuY2VsYWJsZSIgd2l0
aCB0aGUgcHJvcGVyIHR5cGUgCiBQQVNTIEV2ZW50IGludGVyZmFjZTogZG9jdW1lbnQuY3JlYXRl
RXZlbnQoIkV2ZW50IikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJyZXR1cm5WYWx1ZSIgd2l0aCB0
aGUgcHJvcGVyIHR5cGUgCiBQQVNTIEV2ZW50IGludGVyZmFjZTogZG9jdW1lbnQuY3JlYXRlRXZl
bnQoIkV2ZW50IikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJwcmV2ZW50RGVmYXVsdCgpIiB3aXRo
IHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgRXZlbnQgaW50ZXJmYWNlOiBkb2N1bWVudC5jcmVhdGVF
dmVudCgiRXZlbnQiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImRlZmF1bHRQcmV2ZW50ZWQiIHdp
dGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBFdmVudCBpbnRlcmZhY2U6IGRvY3VtZW50LmNyZWF0
ZUV2ZW50KCJFdmVudCIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiY29tcG9zZWQiIHdpdGggdGhl
IHByb3BlciB0eXBlIAogUEFTUyBFdmVudCBpbnRlcmZhY2U6IGRvY3VtZW50LmNyZWF0ZUV2ZW50
KCJFdmVudCIpIG11c3QgaGF2ZSBvd24gcHJvcGVydHkgImlzVHJ1c3RlZCIgCiBQQVNTIEV2ZW50
IGludGVyZmFjZTogZG9jdW1lbnQuY3JlYXRlRXZlbnQoIkV2ZW50IikgbXVzdCBpbmhlcml0IHBy
b3BlcnR5ICJ0aW1lU3RhbXAiIHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBFdmVudCBpbnRl
cmZhY2U6IGRvY3VtZW50LmNyZWF0ZUV2ZW50KCJFdmVudCIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0
eSAiaW5pdEV2ZW50KERPTVN0cmluZywgYm9vbGVhbiwgYm9vbGVhbikiIHdpdGggdGhlIHByb3Bl
ciB0eXBlIApAQCAtNTksMTggKzY1LDIxIEBAIFBBU1MgRXZlbnQgaW50ZXJmYWNlOiBuZXcgRXZl
bnQoImZvbyIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAidHlwZSIgd2l0aCB0aGUgcHJvCiBQQVNT
IEV2ZW50IGludGVyZmFjZTogbmV3IEV2ZW50KCJmb28iKSBtdXN0IGluaGVyaXQgcHJvcGVydHkg
InRhcmdldCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCiBQQVNTIEV2ZW50IGludGVyZmFjZTogbmV3
IEV2ZW50KCJmb28iKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInNyY0VsZW1lbnQiIHdpdGggdGhl
IHByb3BlciB0eXBlIAogUEFTUyBFdmVudCBpbnRlcmZhY2U6IG5ldyBFdmVudCgiZm9vIikgbXVz
dCBpbmhlcml0IHByb3BlcnR5ICJjdXJyZW50VGFyZ2V0IiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAK
K1BBU1MgRXZlbnQgaW50ZXJmYWNlOiBuZXcgRXZlbnQoImZvbyIpIG11c3QgaW5oZXJpdCBwcm9w
ZXJ0eSAiY29tcG9zZWRQYXRoKCkiIHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBFdmVudCBp
bnRlcmZhY2U6IG5ldyBFdmVudCgiZm9vIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJOT05FIiB3
aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgRXZlbnQgaW50ZXJmYWNlOiBuZXcgRXZlbnQoImZv
byIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiQ0FQVFVSSU5HX1BIQVNFIiB3aXRoIHRoZSBwcm9w
ZXIgdHlwZSAKIFBBU1MgRXZlbnQgaW50ZXJmYWNlOiBuZXcgRXZlbnQoImZvbyIpIG11c3QgaW5o
ZXJpdCBwcm9wZXJ0eSAiQVRfVEFSR0VUIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgRXZl
bnQgaW50ZXJmYWNlOiBuZXcgRXZlbnQoImZvbyIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiQlVC
QkxJTkdfUEhBU0UiIHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBFdmVudCBpbnRlcmZhY2U6
IG5ldyBFdmVudCgiZm9vIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJldmVudFBoYXNlIiB3aXRo
IHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgRXZlbnQgaW50ZXJmYWNlOiBuZXcgRXZlbnQoImZvbyIp
IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAic3RvcFByb3BhZ2F0aW9uKCkiIHdpdGggdGhlIHByb3Bl
ciB0eXBlIAorUEFTUyBFdmVudCBpbnRlcmZhY2U6IG5ldyBFdmVudCgiZm9vIikgbXVzdCBpbmhl
cml0IHByb3BlcnR5ICJjYW5jZWxCdWJibGUiIHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBF
dmVudCBpbnRlcmZhY2U6IG5ldyBFdmVudCgiZm9vIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJz
dG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCiBQQVNTIEV2
ZW50IGludGVyZmFjZTogbmV3IEV2ZW50KCJmb28iKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImJ1
YmJsZXMiIHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBFdmVudCBpbnRlcmZhY2U6IG5ldyBF
dmVudCgiZm9vIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJjYW5jZWxhYmxlIiB3aXRoIHRoZSBw
cm9wZXIgdHlwZSAKIFBBU1MgRXZlbnQgaW50ZXJmYWNlOiBuZXcgRXZlbnQoImZvbyIpIG11c3Qg
aW5oZXJpdCBwcm9wZXJ0eSAicmV0dXJuVmFsdWUiIHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFT
UyBFdmVudCBpbnRlcmZhY2U6IG5ldyBFdmVudCgiZm9vIikgbXVzdCBpbmhlcml0IHByb3BlcnR5
ICJwcmV2ZW50RGVmYXVsdCgpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgRXZlbnQgaW50
ZXJmYWNlOiBuZXcgRXZlbnQoImZvbyIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiZGVmYXVsdFBy
ZXZlbnRlZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIEV2ZW50IGludGVyZmFjZTogbmV3
IEV2ZW50KCJmb28iKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImNvbXBvc2VkIiB3aXRoIHRoZSBw
cm9wZXIgdHlwZSAKIFBBU1MgRXZlbnQgaW50ZXJmYWNlOiBuZXcgRXZlbnQoImZvbyIpIG11c3Qg
aGF2ZSBvd24gcHJvcGVydHkgImlzVHJ1c3RlZCIgCiBQQVNTIEV2ZW50IGludGVyZmFjZTogbmV3
IEV2ZW50KCJmb28iKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInRpbWVTdGFtcCIgd2l0aCB0aGUg
cHJvcGVyIHR5cGUgCiBQQVNTIEV2ZW50IGludGVyZmFjZTogbmV3IEV2ZW50KCJmb28iKSBtdXN0
IGluaGVyaXQgcHJvcGVydHkgImluaXRFdmVudChET01TdHJpbmcsIGJvb2xlYW4sIGJvb2xlYW4p
IiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKQEAgLTkyLDE4ICsxMDEsMjEgQEAgUEFTUyBFdmVudCBp
bnRlcmZhY2U6IG5ldyBDdXN0b21FdmVudCgiZm9vIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJ0
eXBlIiB3aXRoIHQKIFBBU1MgRXZlbnQgaW50ZXJmYWNlOiBuZXcgQ3VzdG9tRXZlbnQoImZvbyIp
IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAidGFyZ2V0IiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBB
U1MgRXZlbnQgaW50ZXJmYWNlOiBuZXcgQ3VzdG9tRXZlbnQoImZvbyIpIG11c3QgaW5oZXJpdCBw
cm9wZXJ0eSAic3JjRWxlbWVudCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCiBQQVNTIEV2ZW50IGlu
dGVyZmFjZTogbmV3IEN1c3RvbUV2ZW50KCJmb28iKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImN1
cnJlbnRUYXJnZXQiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBFdmVudCBpbnRlcmZhY2U6
IG5ldyBDdXN0b21FdmVudCgiZm9vIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJjb21wb3NlZFBh
dGgoKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCiBQQVNTIEV2ZW50IGludGVyZmFjZTogbmV3IEN1
c3RvbUV2ZW50KCJmb28iKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgIk5PTkUiIHdpdGggdGhlIHBy
b3BlciB0eXBlIAogUEFTUyBFdmVudCBpbnRlcmZhY2U6IG5ldyBDdXN0b21FdmVudCgiZm9vIikg
bXVzdCBpbmhlcml0IHByb3BlcnR5ICJDQVBUVVJJTkdfUEhBU0UiIHdpdGggdGhlIHByb3BlciB0
eXBlIAogUEFTUyBFdmVudCBpbnRlcmZhY2U6IG5ldyBDdXN0b21FdmVudCgiZm9vIikgbXVzdCBp
bmhlcml0IHByb3BlcnR5ICJBVF9UQVJHRVQiIHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBF
dmVudCBpbnRlcmZhY2U6IG5ldyBDdXN0b21FdmVudCgiZm9vIikgbXVzdCBpbmhlcml0IHByb3Bl
cnR5ICJCVUJCTElOR19QSEFTRSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCiBQQVNTIEV2ZW50IGlu
dGVyZmFjZTogbmV3IEN1c3RvbUV2ZW50KCJmb28iKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImV2
ZW50UGhhc2UiIHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBFdmVudCBpbnRlcmZhY2U6IG5l
dyBDdXN0b21FdmVudCgiZm9vIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJzdG9wUHJvcGFnYXRp
b24oKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIEV2ZW50IGludGVyZmFjZTogbmV3IEN1
c3RvbUV2ZW50KCJmb28iKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImNhbmNlbEJ1YmJsZSIgd2l0
aCB0aGUgcHJvcGVyIHR5cGUgCiBQQVNTIEV2ZW50IGludGVyZmFjZTogbmV3IEN1c3RvbUV2ZW50
KCJmb28iKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigp
IiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgRXZlbnQgaW50ZXJmYWNlOiBuZXcgQ3VzdG9t
RXZlbnQoImZvbyIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiYnViYmxlcyIgd2l0aCB0aGUgcHJv
cGVyIHR5cGUgCiBQQVNTIEV2ZW50IGludGVyZmFjZTogbmV3IEN1c3RvbUV2ZW50KCJmb28iKSBt
dXN0IGluaGVyaXQgcHJvcGVydHkgImNhbmNlbGFibGUiIHdpdGggdGhlIHByb3BlciB0eXBlIAog
UEFTUyBFdmVudCBpbnRlcmZhY2U6IG5ldyBDdXN0b21FdmVudCgiZm9vIikgbXVzdCBpbmhlcml0
IHByb3BlcnR5ICJyZXR1cm5WYWx1ZSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCiBQQVNTIEV2ZW50
IGludGVyZmFjZTogbmV3IEN1c3RvbUV2ZW50KCJmb28iKSBtdXN0IGluaGVyaXQgcHJvcGVydHkg
InByZXZlbnREZWZhdWx0KCkiIHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBFdmVudCBpbnRl
cmZhY2U6IG5ldyBDdXN0b21FdmVudCgiZm9vIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJkZWZh
dWx0UHJldmVudGVkIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgRXZlbnQgaW50ZXJmYWNl
OiBuZXcgQ3VzdG9tRXZlbnQoImZvbyIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiY29tcG9zZWQi
IHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBFdmVudCBpbnRlcmZhY2U6IG5ldyBDdXN0b21F
dmVudCgiZm9vIikgbXVzdCBoYXZlIG93biBwcm9wZXJ0eSAiaXNUcnVzdGVkIiAKIFBBU1MgRXZl
bnQgaW50ZXJmYWNlOiBuZXcgQ3VzdG9tRXZlbnQoImZvbyIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0
eSAidGltZVN0YW1wIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgRXZlbnQgaW50ZXJmYWNl
OiBuZXcgQ3VzdG9tRXZlbnQoImZvbyIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiaW5pdEV2ZW50
KERPTVN0cmluZywgYm9vbGVhbiwgYm9vbGVhbikiIHdpdGggdGhlIHByb3BlciB0eXBlIApAQCAt
MTY4LDYgKzE4MCw3IEBAIFBBU1MgTm9kZUxpc3QgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHBy
b3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QnCiBQQVNTIE5vZGVMaXN0IGlu
dGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUg
b2JqZWN0J3MgQEB1bnNjb3BhYmxlcyBwcm9wZXJ0eSAKIFBBU1MgTm9kZUxpc3QgaW50ZXJmYWNl
OiBvcGVyYXRpb24gaXRlbSh1bnNpZ25lZCBsb25nKSAKIFBBU1MgTm9kZUxpc3QgaW50ZXJmYWNl
OiBhdHRyaWJ1dGUgbGVuZ3RoIAorUEFTUyBOb2RlTGlzdCBpbnRlcmZhY2U6IGl0ZXJhYmxlPE5v
ZGU+IAogUEFTUyBOb2RlTGlzdCBtdXN0IGJlIHByaW1hcnkgaW50ZXJmYWNlIG9mIGRvY3VtZW50
LnF1ZXJ5U2VsZWN0b3JBbGwoInNjcmlwdCIpIAogUEFTUyBTdHJpbmdpZmljYXRpb24gb2YgZG9j
dW1lbnQucXVlcnlTZWxlY3RvckFsbCgic2NyaXB0IikgCiBQQVNTIE5vZGVMaXN0IGludGVyZmFj
ZTogZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgic2NyaXB0IikgbXVzdCBpbmhlcml0IHByb3Bl
cnR5ICJpdGVtKHVuc2lnbmVkIGxvbmcpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKQEAgLTMyOCw2
ICszNDEsOSBAQCBQQVNTIERvY3VtZW50IGludGVyZmFjZTogb3BlcmF0aW9uIHByZXBlbmQoW29i
amVjdCBPYmplY3RdLFtvYmplY3QgT2JqZWN0XSkKIFBBU1MgRG9jdW1lbnQgaW50ZXJmYWNlOiBv
cGVyYXRpb24gYXBwZW5kKFtvYmplY3QgT2JqZWN0XSxbb2JqZWN0IE9iamVjdF0pIAogUEFTUyBE
b2N1bWVudCBpbnRlcmZhY2U6IG9wZXJhdGlvbiBxdWVyeVNlbGVjdG9yKERPTVN0cmluZykgCiBQ
QVNTIERvY3VtZW50IGludGVyZmFjZTogb3BlcmF0aW9uIHF1ZXJ5U2VsZWN0b3JBbGwoRE9NU3Ry
aW5nKSAKK0ZBSUwgRG9jdW1lbnQgaW50ZXJmYWNlOiBvcGVyYXRpb24gY3JlYXRlRXhwcmVzc2lv
bihET01TdHJpbmcsIFhQYXRoTlNSZXNvbHZlcikgYXNzZXJ0X2VxdWFsczogcHJvcGVydHkgaGFz
IHdyb25nIC5sZW5ndGggZXhwZWN0ZWQgMSBidXQgZ290IDAKK1BBU1MgRG9jdW1lbnQgaW50ZXJm
YWNlOiBvcGVyYXRpb24gY3JlYXRlTlNSZXNvbHZlcihOb2RlKSAKK0ZBSUwgRG9jdW1lbnQgaW50
ZXJmYWNlOiBvcGVyYXRpb24gZXZhbHVhdGUoRE9NU3RyaW5nLCBOb2RlLCBYUGF0aE5TUmVzb2x2
ZXIsIHVuc2lnbmVkIHNob3J0LCBYUGF0aFJlc3VsdCkgYXNzZXJ0X2VxdWFsczogcHJvcGVydHkg
aGFzIHdyb25nIC5sZW5ndGggZXhwZWN0ZWQgMiBidXQgZ290IDAKIFBBU1MgRG9jdW1lbnQgbXVz
dCBiZSBwcmltYXJ5IGludGVyZmFjZSBvZiBuZXcgRG9jdW1lbnQoKSAKIFBBU1MgU3RyaW5naWZp
Y2F0aW9uIG9mIG5ldyBEb2N1bWVudCgpIAogUEFTUyBEb2N1bWVudCBpbnRlcmZhY2U6IG5ldyBE
b2N1bWVudCgpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiaW1wbGVtZW50YXRpb24iIHdpdGggdGhl
IHByb3BlciB0eXBlIApAQCAtMzg5LDYgKzQwNSwxNiBAQCBQQVNTIERvY3VtZW50IGludGVyZmFj
ZTogbmV3IERvY3VtZW50KCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJxdWVyeVNlbGVjdG9yKERP
TQogUEFTUyBEb2N1bWVudCBpbnRlcmZhY2U6IGNhbGxpbmcgcXVlcnlTZWxlY3RvcihET01TdHJp
bmcpIG9uIG5ldyBEb2N1bWVudCgpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBU
eXBlRXJyb3IgCiBQQVNTIERvY3VtZW50IGludGVyZmFjZTogbmV3IERvY3VtZW50KCkgbXVzdCBp
bmhlcml0IHByb3BlcnR5ICJxdWVyeVNlbGVjdG9yQWxsKERPTVN0cmluZykiIHdpdGggdGhlIHBy
b3BlciB0eXBlIAogUEFTUyBEb2N1bWVudCBpbnRlcmZhY2U6IGNhbGxpbmcgcXVlcnlTZWxlY3Rv
ckFsbChET01TdHJpbmcpIG9uIG5ldyBEb2N1bWVudCgpIHdpdGggdG9vIGZldyBhcmd1bWVudHMg
bXVzdCB0aHJvdyBUeXBlRXJyb3IgCitQQVNTIERvY3VtZW50IGludGVyZmFjZTogbmV3IERvY3Vt
ZW50KCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJjcmVhdGVFeHByZXNzaW9uKERPTVN0cmluZywg
WFBhdGhOU1Jlc29sdmVyKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitGQUlMIERvY3VtZW50IGlu
dGVyZmFjZTogY2FsbGluZyBjcmVhdGVFeHByZXNzaW9uKERPTVN0cmluZywgWFBhdGhOU1Jlc29s
dmVyKSBvbiBuZXcgRG9jdW1lbnQoKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cg
VHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9u
ICJmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICBmbi5hcHBseShvYmosIGFyZ3MpOworICAgICAg
ICB9IiBkaWQgbm90IHRocm93CitQQVNTIERvY3VtZW50IGludGVyZmFjZTogbmV3IERvY3VtZW50
KCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJjcmVhdGVOU1Jlc29sdmVyKE5vZGUpIiB3aXRoIHRo
ZSBwcm9wZXIgdHlwZSAKK1BBU1MgRG9jdW1lbnQgaW50ZXJmYWNlOiBjYWxsaW5nIGNyZWF0ZU5T
UmVzb2x2ZXIoTm9kZSkgb24gbmV3IERvY3VtZW50KCkgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBt
dXN0IHRocm93IFR5cGVFcnJvciAKK1BBU1MgRG9jdW1lbnQgaW50ZXJmYWNlOiBuZXcgRG9jdW1l
bnQoKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImV2YWx1YXRlKERPTVN0cmluZywgTm9kZSwgWFBh
dGhOU1Jlc29sdmVyLCB1bnNpZ25lZCBzaG9ydCwgWFBhdGhSZXN1bHQpIiB3aXRoIHRoZSBwcm9w
ZXIgdHlwZSAKK0ZBSUwgRG9jdW1lbnQgaW50ZXJmYWNlOiBjYWxsaW5nIGV2YWx1YXRlKERPTVN0
cmluZywgTm9kZSwgWFBhdGhOU1Jlc29sdmVyLCB1bnNpZ25lZCBzaG9ydCwgWFBhdGhSZXN1bHQp
IG9uIG5ldyBEb2N1bWVudCgpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBl
RXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1
bmN0aW9uICgpIHsKKyAgICAgICAgICAgIGZuLmFwcGx5KG9iaiwgYXJncyk7CisgICAgICAgIH0i
IHRocmV3IG9iamVjdCAiTm90U3VwcG9ydGVkRXJyb3I6IFRoZSBvcGVyYXRpb24gaXMgbm90IHN1
cHBvcnRlZC4iICgiTm90U3VwcG9ydGVkRXJyb3IiKSBleHBlY3RlZCBvYmplY3QgIlR5cGVFcnJv
ciIgKCJUeXBlRXJyb3IiKQogUEFTUyBOb2RlIGludGVyZmFjZTogbmV3IERvY3VtZW50KCkgbXVz
dCBpbmhlcml0IHByb3BlcnR5ICJFTEVNRU5UX05PREUiIHdpdGggdGhlIHByb3BlciB0eXBlIAog
UEFTUyBOb2RlIGludGVyZmFjZTogbmV3IERvY3VtZW50KCkgbXVzdCBpbmhlcml0IHByb3BlcnR5
ICJBVFRSSUJVVEVfTk9ERSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCiBQQVNTIE5vZGUgaW50ZXJm
YWNlOiBuZXcgRG9jdW1lbnQoKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgIlRFWFRfTk9ERSIgd2l0
aCB0aGUgcHJvcGVyIHR5cGUgCkBAIC01MjIsNiArNTQ4LDE2IEBAIFBBU1MgRG9jdW1lbnQgaW50
ZXJmYWNlOiB4bWxEb2MgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJxdWVyeVNlbGVjdG9yKERPTVN0
cmluZykiCiBQQVNTIERvY3VtZW50IGludGVyZmFjZTogY2FsbGluZyBxdWVyeVNlbGVjdG9yKERP
TVN0cmluZykgb24geG1sRG9jIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBl
RXJyb3IgCiBQQVNTIERvY3VtZW50IGludGVyZmFjZTogeG1sRG9jIG11c3QgaW5oZXJpdCBwcm9w
ZXJ0eSAicXVlcnlTZWxlY3RvckFsbChET01TdHJpbmcpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAK
IFBBU1MgRG9jdW1lbnQgaW50ZXJmYWNlOiBjYWxsaW5nIHF1ZXJ5U2VsZWN0b3JBbGwoRE9NU3Ry
aW5nKSBvbiB4bWxEb2Mgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJv
ciAKK1BBU1MgRG9jdW1lbnQgaW50ZXJmYWNlOiB4bWxEb2MgbXVzdCBpbmhlcml0IHByb3BlcnR5
ICJjcmVhdGVFeHByZXNzaW9uKERPTVN0cmluZywgWFBhdGhOU1Jlc29sdmVyKSIgd2l0aCB0aGUg
cHJvcGVyIHR5cGUgCitGQUlMIERvY3VtZW50IGludGVyZmFjZTogY2FsbGluZyBjcmVhdGVFeHBy
ZXNzaW9uKERPTVN0cmluZywgWFBhdGhOU1Jlc29sdmVyKSBvbiB4bWxEb2Mgd2l0aCB0b28gZmV3
IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0
aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgZm4uYXBw
bHkob2JqLCBhcmdzKTsKKyAgICAgICAgfSIgZGlkIG5vdCB0aHJvdworUEFTUyBEb2N1bWVudCBp
bnRlcmZhY2U6IHhtbERvYyBtdXN0IGluaGVyaXQgcHJvcGVydHkgImNyZWF0ZU5TUmVzb2x2ZXIo
Tm9kZSkiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBEb2N1bWVudCBpbnRlcmZhY2U6IGNh
bGxpbmcgY3JlYXRlTlNSZXNvbHZlcihOb2RlKSBvbiB4bWxEb2Mgd2l0aCB0b28gZmV3IGFyZ3Vt
ZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKK1BBU1MgRG9jdW1lbnQgaW50ZXJmYWNlOiB4bWxE
b2MgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJldmFsdWF0ZShET01TdHJpbmcsIE5vZGUsIFhQYXRo
TlNSZXNvbHZlciwgdW5zaWduZWQgc2hvcnQsIFhQYXRoUmVzdWx0KSIgd2l0aCB0aGUgcHJvcGVy
IHR5cGUgCitGQUlMIERvY3VtZW50IGludGVyZmFjZTogY2FsbGluZyBldmFsdWF0ZShET01TdHJp
bmcsIE5vZGUsIFhQYXRoTlNSZXNvbHZlciwgdW5zaWduZWQgc2hvcnQsIFhQYXRoUmVzdWx0KSBv
biB4bWxEb2Mgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3Nl
cnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkg
eworICAgICAgICAgICAgZm4uYXBwbHkob2JqLCBhcmdzKTsKKyAgICAgICAgfSIgdGhyZXcgb2Jq
ZWN0ICJOb3RTdXBwb3J0ZWRFcnJvcjogVGhlIG9wZXJhdGlvbiBpcyBub3Qgc3VwcG9ydGVkLiIg
KCJOb3RTdXBwb3J0ZWRFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVF
cnJvciIpCiBQQVNTIE5vZGUgaW50ZXJmYWNlOiB4bWxEb2MgbXVzdCBpbmhlcml0IHByb3BlcnR5
ICJFTEVNRU5UX05PREUiIHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBOb2RlIGludGVyZmFj
ZTogeG1sRG9jIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiQVRUUklCVVRFX05PREUiIHdpdGggdGhl
IHByb3BlciB0eXBlIAogUEFTUyBOb2RlIGludGVyZmFjZTogeG1sRG9jIG11c3QgaW5oZXJpdCBw
cm9wZXJ0eSAiVEVYVF9OT0RFIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKQEAgLTgyNiw2ICs4NjIs
NyBAQCBQQVNTIEVsZW1lbnQgaW50ZXJmYWNlOiBvcGVyYXRpb24gc2V0QXR0cmlidXRlKERPTVN0
cmluZywgRE9NU3RyaW5nKQogUEFTUyBFbGVtZW50IGludGVyZmFjZTogb3BlcmF0aW9uIHNldEF0
dHJpYnV0ZU5TKERPTVN0cmluZywgRE9NU3RyaW5nLCBET01TdHJpbmcpIAogUEFTUyBFbGVtZW50
IGludGVyZmFjZTogb3BlcmF0aW9uIHJlbW92ZUF0dHJpYnV0ZShET01TdHJpbmcpIAogUEFTUyBF
bGVtZW50IGludGVyZmFjZTogb3BlcmF0aW9uIHJlbW92ZUF0dHJpYnV0ZU5TKERPTVN0cmluZywg
RE9NU3RyaW5nKSAKK1BBU1MgRWxlbWVudCBpbnRlcmZhY2U6IG9wZXJhdGlvbiB0b2dnbGVBdHRy
aWJ1dGUoRE9NU3RyaW5nLCBib29sZWFuKSAKIFBBU1MgRWxlbWVudCBpbnRlcmZhY2U6IG9wZXJh
dGlvbiBoYXNBdHRyaWJ1dGUoRE9NU3RyaW5nKSAKIFBBU1MgRWxlbWVudCBpbnRlcmZhY2U6IG9w
ZXJhdGlvbiBoYXNBdHRyaWJ1dGVOUyhET01TdHJpbmcsIERPTVN0cmluZykgCiBQQVNTIEVsZW1l
bnQgaW50ZXJmYWNlOiBvcGVyYXRpb24gZ2V0QXR0cmlidXRlTm9kZShET01TdHJpbmcpIApAQCAt
ODgzLDYgKzkyMCw4IEBAIFBBU1MgRWxlbWVudCBpbnRlcmZhY2U6IGVsZW1lbnQgbXVzdCBpbmhl
cml0IHByb3BlcnR5ICJyZW1vdmVBdHRyaWJ1dGUoRE9NU3RyaW5nCiBQQVNTIEVsZW1lbnQgaW50
ZXJmYWNlOiBjYWxsaW5nIHJlbW92ZUF0dHJpYnV0ZShET01TdHJpbmcpIG9uIGVsZW1lbnQgd2l0
aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKIFBBU1MgRWxlbWVudCBp
bnRlcmZhY2U6IGVsZW1lbnQgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJyZW1vdmVBdHRyaWJ1dGVO
UyhET01TdHJpbmcsIERPTVN0cmluZykiIHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBFbGVt
ZW50IGludGVyZmFjZTogY2FsbGluZyByZW1vdmVBdHRyaWJ1dGVOUyhET01TdHJpbmcsIERPTVN0
cmluZykgb24gZWxlbWVudCB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVy
cm9yIAorUEFTUyBFbGVtZW50IGludGVyZmFjZTogZWxlbWVudCBtdXN0IGluaGVyaXQgcHJvcGVy
dHkgInRvZ2dsZUF0dHJpYnV0ZShET01TdHJpbmcsIGJvb2xlYW4pIiB3aXRoIHRoZSBwcm9wZXIg
dHlwZSAKK1BBU1MgRWxlbWVudCBpbnRlcmZhY2U6IGNhbGxpbmcgdG9nZ2xlQXR0cmlidXRlKERP
TVN0cmluZywgYm9vbGVhbikgb24gZWxlbWVudCB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3Qg
dGhyb3cgVHlwZUVycm9yIAogUEFTUyBFbGVtZW50IGludGVyZmFjZTogZWxlbWVudCBtdXN0IGlu
aGVyaXQgcHJvcGVydHkgImhhc0F0dHJpYnV0ZShET01TdHJpbmcpIiB3aXRoIHRoZSBwcm9wZXIg
dHlwZSAKIFBBU1MgRWxlbWVudCBpbnRlcmZhY2U6IGNhbGxpbmcgaGFzQXR0cmlidXRlKERPTVN0
cmluZykgb24gZWxlbWVudCB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVy
cm9yIAogUEFTUyBFbGVtZW50IGludGVyZmFjZTogZWxlbWVudCBtdXN0IGluaGVyaXQgcHJvcGVy
dHkgImhhc0F0dHJpYnV0ZU5TKERPTVN0cmluZywgRE9NU3RyaW5nKSIgd2l0aCB0aGUgcHJvcGVy
IHR5cGUgCkBAIC0xNDM2LDE2ICsxNDc1LDE2IEBAIEZBSUwgQWJzdHJhY3RSYW5nZSBpbnRlcmZh
Y2U6IGF0dHJpYnV0ZSBzdGFydE9mZnNldCBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvCiBG
QUlMIEFic3RyYWN0UmFuZ2UgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgZW5kQ29udGFpbmVyIGFzc2Vy
dF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIkFic3RyYWN0
UmFuZ2UiIGV4cGVjdGVkIHByb3BlcnR5ICJBYnN0cmFjdFJhbmdlIiBtaXNzaW5nCiBGQUlMIEFi
c3RyYWN0UmFuZ2UgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgZW5kT2Zmc2V0IGFzc2VydF9vd25fcHJv
cGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIkFic3RyYWN0UmFuZ2UiIGV4
cGVjdGVkIHByb3BlcnR5ICJBYnN0cmFjdFJhbmdlIiBtaXNzaW5nCiBGQUlMIEFic3RyYWN0UmFu
Z2UgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgY29sbGFwc2VkIGFzc2VydF9vd25fcHJvcGVydHk6IHNl
bGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIkFic3RyYWN0UmFuZ2UiIGV4cGVjdGVkIHBy
b3BlcnR5ICJBYnN0cmFjdFJhbmdlIiBtaXNzaW5nCi1GQUlMIFN0YXRpY1JhbmdlIGludGVyZmFj
ZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgYXNzZXJ0X293
bl9wcm9wZXJ0eTogc2hvdWxkIGluaGVyaXQgZnJvbSBBYnN0cmFjdFJhbmdlLCBidXQgc2VsZiBo
YXMgbm8gc3VjaCBwcm9wZXJ0eSBleHBlY3RlZCBwcm9wZXJ0eSAiQWJzdHJhY3RSYW5nZSIgbWlz
c2luZwotRkFJTCBTdGF0aWNSYW5nZSBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aCBhc3NlcnRfZXF1
YWxzOiB3cm9uZyB2YWx1ZSBmb3IgU3RhdGljUmFuZ2UubGVuZ3RoIGV4cGVjdGVkIDAgYnV0IGdv
dCAxCitGQUlMIFN0YXRpY1JhbmdlIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVz
IG9mIGludGVyZmFjZSBvYmplY3QgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBo
YXZlIG93biBwcm9wZXJ0eSAiQWJzdHJhY3RSYW5nZSIgZXhwZWN0ZWQgcHJvcGVydHkgIkFic3Ry
YWN0UmFuZ2UiIG1pc3NpbmcKK1BBU1MgU3RhdGljUmFuZ2UgaW50ZXJmYWNlIG9iamVjdCBsZW5n
dGggCiBQQVNTIFN0YXRpY1JhbmdlIGludGVyZmFjZSBvYmplY3QgbmFtZSAKLUZBSUwgU3RhdGlj
UmFuZ2UgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHBy
b3RvdHlwZSBvYmplY3QgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2hvdWxkIGluaGVyaXQgZnJvbSBB
YnN0cmFjdFJhbmdlLCBidXQgc2VsZiBoYXMgbm8gc3VjaCBwcm9wZXJ0eSBleHBlY3RlZCBwcm9w
ZXJ0eSAiQWJzdHJhY3RSYW5nZSIgbWlzc2luZworRkFJTCBTdGF0aWNSYW5nZSBpbnRlcmZhY2U6
IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCBh
c3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJBYnN0
cmFjdFJhbmdlIiBleHBlY3RlZCBwcm9wZXJ0eSAiQWJzdHJhY3RSYW5nZSIgbWlzc2luZwogUEFT
UyBTdGF0aWNSYW5nZSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRl
cmZhY2UgcHJvdG90eXBlIG9iamVjdCdzICJjb25zdHJ1Y3RvciIgcHJvcGVydHkgCiBQQVNTIFN0
YXRpY1JhbmdlIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFj
ZSBwcm90b3R5cGUgb2JqZWN0J3MgQEB1bnNjb3BhYmxlcyBwcm9wZXJ0eSAKLUZBSUwgUmFuZ2Ug
aW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCBh
c3NlcnRfb3duX3Byb3BlcnR5OiBzaG91bGQgaW5oZXJpdCBmcm9tIEFic3RyYWN0UmFuZ2UsIGJ1
dCBzZWxmIGhhcyBubyBzdWNoIHByb3BlcnR5IGV4cGVjdGVkIHByb3BlcnR5ICJBYnN0cmFjdFJh
bmdlIiBtaXNzaW5nCitGQUlMIFJhbmdlIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0
aWVzIG9mIGludGVyZmFjZSBvYmplY3QgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5v
dCBoYXZlIG93biBwcm9wZXJ0eSAiQWJzdHJhY3RSYW5nZSIgZXhwZWN0ZWQgcHJvcGVydHkgIkFi
c3RyYWN0UmFuZ2UiIG1pc3NpbmcKIFBBU1MgUmFuZ2UgaW50ZXJmYWNlIG9iamVjdCBsZW5ndGgg
CiBQQVNTIFJhbmdlIGludGVyZmFjZSBvYmplY3QgbmFtZSAKLUZBSUwgUmFuZ2UgaW50ZXJmYWNl
OiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3Qg
YXNzZXJ0X293bl9wcm9wZXJ0eTogc2hvdWxkIGluaGVyaXQgZnJvbSBBYnN0cmFjdFJhbmdlLCBi
dXQgc2VsZiBoYXMgbm8gc3VjaCBwcm9wZXJ0eSBleHBlY3RlZCBwcm9wZXJ0eSAiQWJzdHJhY3RS
YW5nZSIgbWlzc2luZworRkFJTCBSYW5nZSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVy
dGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCBhc3NlcnRfb3duX3Byb3BlcnR5OiBz
ZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJBYnN0cmFjdFJhbmdlIiBleHBlY3RlZCBw
cm9wZXJ0eSAiQWJzdHJhY3RSYW5nZSIgbWlzc2luZwogUEFTUyBSYW5nZSBpbnRlcmZhY2U6IGV4
aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzICJj
b25zdHJ1Y3RvciIgcHJvcGVydHkgCiBQQVNTIFJhbmdlIGludGVyZmFjZTogZXhpc3RlbmNlIGFu
ZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgQEB1bnNjb3BhYmxl
cyBwcm9wZXJ0eSAKIFBBU1MgUmFuZ2UgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgY29tbW9uQW5jZXN0
b3JDb250YWluZXIgCkBAIC0xNjgwLDYgKzE3MTksNyBAQCBQQVNTIERPTVRva2VuTGlzdCBpbnRl
cmZhY2U6IG9wZXJhdGlvbiByZXBsYWNlKERPTVN0cmluZywgRE9NU3RyaW5nKQogUEFTUyBET01U
b2tlbkxpc3QgaW50ZXJmYWNlOiBvcGVyYXRpb24gc3VwcG9ydHMoRE9NU3RyaW5nKSAKIFBBU1Mg
RE9NVG9rZW5MaXN0IGludGVyZmFjZTogYXR0cmlidXRlIHZhbHVlIAogUEFTUyBET01Ub2tlbkxp
c3QgaW50ZXJmYWNlOiBzdHJpbmdpZmllciAKK1BBU1MgRE9NVG9rZW5MaXN0IGludGVyZmFjZTog
aXRlcmFibGU8RE9NU3RyaW5nPiAKIFBBU1MgRE9NVG9rZW5MaXN0IG11c3QgYmUgcHJpbWFyeSBp
bnRlcmZhY2Ugb2YgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QgCiBQQVNTIFN0cmluZ2lmaWNhdGlv
biBvZiBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdCAKIFBBU1MgRE9NVG9rZW5MaXN0IGludGVyZmFj
ZTogZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJsZW5ndGgi
IHdpdGggdGhlIHByb3BlciB0eXBlIApAQCAtMTY5OCw1ICsxNzM4LDYxIEBAIFBBU1MgRE9NVG9r
ZW5MaXN0IGludGVyZmFjZTogY2FsbGluZyByZXBsYWNlKERPTVN0cmluZywgRE9NU3RyaW5nKSBv
biBkb2N1bWVudC5iCiBQQVNTIERPTVRva2VuTGlzdCBpbnRlcmZhY2U6IGRvY3VtZW50LmJvZHku
Y2xhc3NMaXN0IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAic3VwcG9ydHMoRE9NU3RyaW5nKSIgd2l0
aCB0aGUgcHJvcGVyIHR5cGUgCiBQQVNTIERPTVRva2VuTGlzdCBpbnRlcmZhY2U6IGNhbGxpbmcg
c3VwcG9ydHMoRE9NU3RyaW5nKSBvbiBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdCB3aXRoIHRvbyBm
ZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAogUEFTUyBET01Ub2tlbkxpc3QgaW50
ZXJmYWNlOiBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdCBtdXN0IGluaGVyaXQgcHJvcGVydHkgInZh
bHVlIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKLVBBU1MgV29ya2VyR2xvYmFsU2NvcGUgaW50ZXJm
YWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCAKK1BBU1Mg
WFBhdGhSZXN1bHQgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJm
YWNlIG9iamVjdCAKK1BBU1MgWFBhdGhSZXN1bHQgaW50ZXJmYWNlIG9iamVjdCBsZW5ndGggCitQ
QVNTIFhQYXRoUmVzdWx0IGludGVyZmFjZSBvYmplY3QgbmFtZSAKK1BBU1MgWFBhdGhSZXN1bHQg
aW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlw
ZSBvYmplY3QgCitQQVNTIFhQYXRoUmVzdWx0IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9w
ZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgImNvbnN0cnVjdG9yIiBwcm9w
ZXJ0eSAKK1BBU1MgWFBhdGhSZXN1bHQgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRp
ZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyBAQHVuc2NvcGFibGVzIHByb3BlcnR5
IAorUEFTUyBYUGF0aFJlc3VsdCBpbnRlcmZhY2U6IGNvbnN0YW50IEFOWV9UWVBFIG9uIGludGVy
ZmFjZSBvYmplY3QgCitQQVNTIFhQYXRoUmVzdWx0IGludGVyZmFjZTogY29uc3RhbnQgQU5ZX1RZ
UEUgb24gaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgCitQQVNTIFhQYXRoUmVzdWx0IGludGVy
ZmFjZTogY29uc3RhbnQgTlVNQkVSX1RZUEUgb24gaW50ZXJmYWNlIG9iamVjdCAKK1BBU1MgWFBh
dGhSZXN1bHQgaW50ZXJmYWNlOiBjb25zdGFudCBOVU1CRVJfVFlQRSBvbiBpbnRlcmZhY2UgcHJv
dG90eXBlIG9iamVjdCAKK1BBU1MgWFBhdGhSZXN1bHQgaW50ZXJmYWNlOiBjb25zdGFudCBTVFJJ
TkdfVFlQRSBvbiBpbnRlcmZhY2Ugb2JqZWN0IAorUEFTUyBYUGF0aFJlc3VsdCBpbnRlcmZhY2U6
IGNvbnN0YW50IFNUUklOR19UWVBFIG9uIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IAorUEFT
UyBYUGF0aFJlc3VsdCBpbnRlcmZhY2U6IGNvbnN0YW50IEJPT0xFQU5fVFlQRSBvbiBpbnRlcmZh
Y2Ugb2JqZWN0IAorUEFTUyBYUGF0aFJlc3VsdCBpbnRlcmZhY2U6IGNvbnN0YW50IEJPT0xFQU5f
VFlQRSBvbiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCAKK1BBU1MgWFBhdGhSZXN1bHQgaW50
ZXJmYWNlOiBjb25zdGFudCBVTk9SREVSRURfTk9ERV9JVEVSQVRPUl9UWVBFIG9uIGludGVyZmFj
ZSBvYmplY3QgCitQQVNTIFhQYXRoUmVzdWx0IGludGVyZmFjZTogY29uc3RhbnQgVU5PUkRFUkVE
X05PREVfSVRFUkFUT1JfVFlQRSBvbiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCAKK1BBU1Mg
WFBhdGhSZXN1bHQgaW50ZXJmYWNlOiBjb25zdGFudCBPUkRFUkVEX05PREVfSVRFUkFUT1JfVFlQ
RSBvbiBpbnRlcmZhY2Ugb2JqZWN0IAorUEFTUyBYUGF0aFJlc3VsdCBpbnRlcmZhY2U6IGNvbnN0
YW50IE9SREVSRURfTk9ERV9JVEVSQVRPUl9UWVBFIG9uIGludGVyZmFjZSBwcm90b3R5cGUgb2Jq
ZWN0IAorUEFTUyBYUGF0aFJlc3VsdCBpbnRlcmZhY2U6IGNvbnN0YW50IFVOT1JERVJFRF9OT0RF
X1NOQVBTSE9UX1RZUEUgb24gaW50ZXJmYWNlIG9iamVjdCAKK1BBU1MgWFBhdGhSZXN1bHQgaW50
ZXJmYWNlOiBjb25zdGFudCBVTk9SREVSRURfTk9ERV9TTkFQU0hPVF9UWVBFIG9uIGludGVyZmFj
ZSBwcm90b3R5cGUgb2JqZWN0IAorUEFTUyBYUGF0aFJlc3VsdCBpbnRlcmZhY2U6IGNvbnN0YW50
IE9SREVSRURfTk9ERV9TTkFQU0hPVF9UWVBFIG9uIGludGVyZmFjZSBvYmplY3QgCitQQVNTIFhQ
YXRoUmVzdWx0IGludGVyZmFjZTogY29uc3RhbnQgT1JERVJFRF9OT0RFX1NOQVBTSE9UX1RZUEUg
b24gaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgCitQQVNTIFhQYXRoUmVzdWx0IGludGVyZmFj
ZTogY29uc3RhbnQgQU5ZX1VOT1JERVJFRF9OT0RFX1RZUEUgb24gaW50ZXJmYWNlIG9iamVjdCAK
K1BBU1MgWFBhdGhSZXN1bHQgaW50ZXJmYWNlOiBjb25zdGFudCBBTllfVU5PUkRFUkVEX05PREVf
VFlQRSBvbiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCAKK1BBU1MgWFBhdGhSZXN1bHQgaW50
ZXJmYWNlOiBjb25zdGFudCBGSVJTVF9PUkRFUkVEX05PREVfVFlQRSBvbiBpbnRlcmZhY2Ugb2Jq
ZWN0IAorUEFTUyBYUGF0aFJlc3VsdCBpbnRlcmZhY2U6IGNvbnN0YW50IEZJUlNUX09SREVSRURf
Tk9ERV9UWVBFIG9uIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IAorUEFTUyBYUGF0aFJlc3Vs
dCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSByZXN1bHRUeXBlIAorUEFTUyBYUGF0aFJlc3VsdCBpbnRl
cmZhY2U6IGF0dHJpYnV0ZSBudW1iZXJWYWx1ZSAKK1BBU1MgWFBhdGhSZXN1bHQgaW50ZXJmYWNl
OiBhdHRyaWJ1dGUgc3RyaW5nVmFsdWUgCitQQVNTIFhQYXRoUmVzdWx0IGludGVyZmFjZTogYXR0
cmlidXRlIGJvb2xlYW5WYWx1ZSAKK1BBU1MgWFBhdGhSZXN1bHQgaW50ZXJmYWNlOiBhdHRyaWJ1
dGUgc2luZ2xlTm9kZVZhbHVlIAorUEFTUyBYUGF0aFJlc3VsdCBpbnRlcmZhY2U6IGF0dHJpYnV0
ZSBpbnZhbGlkSXRlcmF0b3JTdGF0ZSAKK1BBU1MgWFBhdGhSZXN1bHQgaW50ZXJmYWNlOiBhdHRy
aWJ1dGUgc25hcHNob3RMZW5ndGggCitQQVNTIFhQYXRoUmVzdWx0IGludGVyZmFjZTogb3BlcmF0
aW9uIGl0ZXJhdGVOZXh0KCkgCitGQUlMIFhQYXRoUmVzdWx0IGludGVyZmFjZTogb3BlcmF0aW9u
IHNuYXBzaG90SXRlbSh1bnNpZ25lZCBsb25nKSBhc3NlcnRfZXF1YWxzOiBwcm9wZXJ0eSBoYXMg
d3JvbmcgLmxlbmd0aCBleHBlY3RlZCAxIGJ1dCBnb3QgMAorUEFTUyBYUGF0aEV4cHJlc3Npb24g
aW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCAK
K1BBU1MgWFBhdGhFeHByZXNzaW9uIGludGVyZmFjZSBvYmplY3QgbGVuZ3RoIAorUEFTUyBYUGF0
aEV4cHJlc3Npb24gaW50ZXJmYWNlIG9iamVjdCBuYW1lIAorUEFTUyBYUGF0aEV4cHJlc3Npb24g
aW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlw
ZSBvYmplY3QgCitQQVNTIFhQYXRoRXhwcmVzc2lvbiBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQg
cHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzICJjb25zdHJ1Y3RvciIg
cHJvcGVydHkgCitQQVNTIFhQYXRoRXhwcmVzc2lvbiBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQg
cHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzIEBAdW5zY29wYWJsZXMg
cHJvcGVydHkgCitGQUlMIFhQYXRoRXhwcmVzc2lvbiBpbnRlcmZhY2U6IG9wZXJhdGlvbiBldmFs
dWF0ZShOb2RlLCB1bnNpZ25lZCBzaG9ydCwgWFBhdGhSZXN1bHQpIGFzc2VydF9lcXVhbHM6IHBy
b3BlcnR5IGhhcyB3cm9uZyAubGVuZ3RoIGV4cGVjdGVkIDEgYnV0IGdvdCAwCitQQVNTIFhQYXRo
TlNSZXNvbHZlciBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZh
Y2Ugb2JqZWN0IAorUEFTUyBYUGF0aE5TUmVzb2x2ZXIgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5k
IHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgCitQQVNTIFhQYXRoTlNS
ZXNvbHZlciBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ug
cHJvdG90eXBlIG9iamVjdCdzICJjb25zdHJ1Y3RvciIgcHJvcGVydHkgCitQQVNTIFhQYXRoTlNS
ZXNvbHZlciBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ug
cHJvdG90eXBlIG9iamVjdCdzIEBAdW5zY29wYWJsZXMgcHJvcGVydHkgCitQQVNTIFhQYXRoTlNS
ZXNvbHZlciBpbnRlcmZhY2U6IG9wZXJhdGlvbiBsb29rdXBOYW1lc3BhY2VVUkkoRE9NU3RyaW5n
KSAKK1BBU1MgWFBhdGhFdmFsdWF0b3IgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRp
ZXMgb2YgaW50ZXJmYWNlIG9iamVjdCAKK1BBU1MgWFBhdGhFdmFsdWF0b3IgaW50ZXJmYWNlIG9i
amVjdCBsZW5ndGggCitQQVNTIFhQYXRoRXZhbHVhdG9yIGludGVyZmFjZSBvYmplY3QgbmFtZSAK
K1BBU1MgWFBhdGhFdmFsdWF0b3IgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMg
b2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgCitQQVNTIFhQYXRoRXZhbHVhdG9yIGludGVy
ZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2Jq
ZWN0J3MgImNvbnN0cnVjdG9yIiBwcm9wZXJ0eSAKK1BBU1MgWFBhdGhFdmFsdWF0b3IgaW50ZXJm
YWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmpl
Y3QncyBAQHVuc2NvcGFibGVzIHByb3BlcnR5IAorRkFJTCBYUGF0aEV2YWx1YXRvciBpbnRlcmZh
Y2U6IG9wZXJhdGlvbiBjcmVhdGVFeHByZXNzaW9uKERPTVN0cmluZywgWFBhdGhOU1Jlc29sdmVy
KSBhc3NlcnRfZXF1YWxzOiBwcm9wZXJ0eSBoYXMgd3JvbmcgLmxlbmd0aCBleHBlY3RlZCAxIGJ1
dCBnb3QgMAorRkFJTCBYUGF0aEV2YWx1YXRvciBpbnRlcmZhY2U6IG9wZXJhdGlvbiBjcmVhdGVO
U1Jlc29sdmVyKE5vZGUpIGFzc2VydF9lcXVhbHM6IHByb3BlcnR5IGhhcyB3cm9uZyAubGVuZ3Ro
IGV4cGVjdGVkIDEgYnV0IGdvdCAwCitGQUlMIFhQYXRoRXZhbHVhdG9yIGludGVyZmFjZTogb3Bl
cmF0aW9uIGV2YWx1YXRlKERPTVN0cmluZywgTm9kZSwgWFBhdGhOU1Jlc29sdmVyLCB1bnNpZ25l
ZCBzaG9ydCwgWFBhdGhSZXN1bHQpIGFzc2VydF9lcXVhbHM6IHByb3BlcnR5IGhhcyB3cm9uZyAu
bGVuZ3RoIGV4cGVjdGVkIDIgYnV0IGdvdCAwCitQQVNTIFdpbmRvdyBpbnRlcmZhY2U6IGF0dHJp
YnV0ZSBldmVudCAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9kb21wYXJzaW5nL2ludGVyZmFjZXMuYW55Lndvcmtlci1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbXBhcnNp
bmcvaW50ZXJmYWNlcy5hbnkud29ya2VyLWV4cGVjdGVkLnR4dAppbmRleCAxNGMyZWQ5NTgxZjFh
MDhkZTBjMTJmMzJlMjljNTY4NTk1YmNkYmQ1Li44ZWZmOTk0NzhiYWEyNzQ5ZTdmM2NmOTk5ZmZl
NTc0NmJhZjEzOTIyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2RvbXBhcnNpbmcvaW50ZXJmYWNlcy5hbnkud29ya2VyLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbXBh
cnNpbmcvaW50ZXJmYWNlcy5hbnkud29ya2VyLWV4cGVjdGVkLnR4dApAQCAtMTEsMTYgKzExLDEy
IEBAIEZBSUwgWE1MU2VyaWFsaXplciBtdXN0IGJlIHByaW1hcnkgaW50ZXJmYWNlIG9mIG5ldyBY
TUxTZXJpYWxpemVyKCkgYXNzZXJ0X2VxdWFsCiBGQUlMIFN0cmluZ2lmaWNhdGlvbiBvZiBuZXcg
WE1MU2VyaWFsaXplcigpIGFzc2VydF9lcXVhbHM6IFVuZXhwZWN0ZWQgZXhjZXB0aW9uIHdoZW4g
ZXZhbHVhdGluZyBvYmplY3QgZXhwZWN0ZWQgbnVsbCBidXQgZ290IG9iamVjdCAiUmVmZXJlbmNl
RXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IFhNTFNlcmlhbGl6ZXIiCiBGQUlMIFhNTFNlcmlh
bGl6ZXIgaW50ZXJmYWNlOiBuZXcgWE1MU2VyaWFsaXplcigpIG11c3Qgbm90IGhhdmUgcHJvcGVy
dHkgInNlcmlhbGl6ZVRvU3RyaW5nIiBhc3NlcnRfZXF1YWxzOiBVbmV4cGVjdGVkIGV4Y2VwdGlv
biB3aGVuIGV2YWx1YXRpbmcgb2JqZWN0IGV4cGVjdGVkIG51bGwgYnV0IGdvdCBvYmplY3QgIlJl
ZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBYTUxTZXJpYWxpemVyIgogUEFTUyBO
b2RlIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmpl
Y3QgCi1QQVNTIERvY3VtZW50IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9m
IGludGVyZmFjZSBvYmplY3QgCi1QQVNTIERvY3VtZW50VHlwZSBpbnRlcmZhY2U6IGV4aXN0ZW5j
ZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IAogUEFTUyBEb2N1bWVudEZyYWdt
ZW50IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmpl
Y3QgCiBQQVNTIFNoYWRvd1Jvb3QgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMg
b2YgaW50ZXJmYWNlIG9iamVjdCAKIFBBU1MgRWxlbWVudCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBh
bmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IAogRkFJTCBFbGVtZW50IGludGVyZmFj
ZTogZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikgbXVzdCBub3QgaGF2ZSBwcm9wZXJ0eSAi
b3V0ZXJIVE1MIiBhc3NlcnRfZXF1YWxzOiBVbmV4cGVjdGVkIGV4Y2VwdGlvbiB3aGVuIGV2YWx1
YXRpbmcgb2JqZWN0IGV4cGVjdGVkIG51bGwgYnV0IGdvdCBvYmplY3QgIlJlZmVyZW5jZUVycm9y
OiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBkb2N1bWVudCIKIEZBSUwgRWxlbWVudCBpbnRlcmZhY2U6
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpIG11c3Qgbm90IGhhdmUgcHJvcGVydHkgImlu
c2VydEFkamFjZW50SFRNTCIgYXNzZXJ0X2VxdWFsczogVW5leHBlY3RlZCBleGNlcHRpb24gd2hl
biBldmFsdWF0aW5nIG9iamVjdCBleHBlY3RlZCBudWxsIGJ1dCBnb3Qgb2JqZWN0ICJSZWZlcmVu
Y2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogZG9jdW1lbnQiCiBGQUlMIEVsZW1lbnQgaW50
ZXJmYWNlOiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSBtdXN0IG5vdCBoYXZlIHByb3Bl
cnR5ICJpbm5lckhUTUwiIGFzc2VydF9lcXVhbHM6IFVuZXhwZWN0ZWQgZXhjZXB0aW9uIHdoZW4g
ZXZhbHVhdGluZyBvYmplY3QgZXhwZWN0ZWQgbnVsbCBidXQgZ290IG9iamVjdCAiUmVmZXJlbmNl
RXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IGRvY3VtZW50IgotUEFTUyBDaGFyYWN0ZXJEYXRh
IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3Qg
Ci1QQVNTIFRleHQgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJm
YWNlIG9iamVjdCAKIFBBU1MgQWJzdHJhY3RSYW5nZSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQg
cHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IAogUEFTUyBSYW5nZSBpbnRlcmZhY2U6IGV4
aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IAogRkFJTCBSYW5nZSBp
bnRlcmZhY2U6IG5ldyBSYW5nZSgpIG11c3Qgbm90IGhhdmUgcHJvcGVydHkgImNyZWF0ZUNvbnRl
eHR1YWxGcmFnbWVudCIgYXNzZXJ0X2VxdWFsczogVW5leHBlY3RlZCBleGNlcHRpb24gd2hlbiBl
dmFsdWF0aW5nIG9iamVjdCBleHBlY3RlZCBudWxsIGJ1dCBnb3Qgb2JqZWN0ICJSZWZlcmVuY2VF
cnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogUmFuZ2UiCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2V2ZW50c291cmNlL2ludGVyZmFjZXMt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9ldmVudHNvdXJjZS9pbnRlcmZhY2VzLWV4cGVjdGVkLnR4dAppbmRleCBiYWQzMGFkZmY2MGYz
YjI2MDM3MTY0NzAxYTZhZDgwZWZhODlkZmU4Li4wMzZlZWRkYTVlZGQwMWMzNWJjNmU5Nzg1NDc4
YTczOWUwNTZmNTM5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2V2ZW50c291cmNlL2ludGVyZmFjZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZXZlbnRzb3VyY2UvaW50
ZXJmYWNlcy1leHBlY3RlZC50eHQKQEAgLTEsNCArMSwzIEBACi1DT05TT0xFIE1FU1NBR0U6IGxp
bmUgNDgyOiBjYWxsYmFjayBub3QgeWV0IHN1cHBvcnRlZAogQmxvY2tlZCBhY2Nlc3MgdG8gZXh0
ZXJuYWwgVVJMIGh0dHA6Ly9mb28vCiBDT05TT0xFIE1FU1NBR0U6IEV2ZW50U291cmNlIGNhbm5v
dCBsb2FkIGh0dHA6Ly9mb28vIGR1ZSB0byBhY2Nlc3MgY29udHJvbCBjaGVja3MuCiBFdmVudFNv
dXJjZSBJREwgdGVzdHMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2lkbC5hbnktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaWRsLmFueS1leHBl
Y3RlZC50eHQKaW5kZXggMWRkZmE1ZjU1ZjIyYTFkYWY1OTQyYTFhZmM1MzQ1MDFiOWEwYjUzZC4u
NzJlNzdkMGFjZTI5NTQyNTRlNzQyNTNiNjMxNzhhMDJjZjkzZTBlNyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaWRsLmFu
eS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9hcGkvaWRsLmFueS1leHBlY3RlZC50eHQKQEAgLTEyLDEyICsxMiw3IEBA
IFBBU1MgSGVhZGVycyBpbnRlcmZhY2U6IG9wZXJhdGlvbiBkZWxldGUoQnl0ZVN0cmluZykKIFBB
U1MgSGVhZGVycyBpbnRlcmZhY2U6IG9wZXJhdGlvbiBnZXQoQnl0ZVN0cmluZykgCiBQQVNTIEhl
YWRlcnMgaW50ZXJmYWNlOiBvcGVyYXRpb24gaGFzKEJ5dGVTdHJpbmcpIAogUEFTUyBIZWFkZXJz
IGludGVyZmFjZTogb3BlcmF0aW9uIHNldChCeXRlU3RyaW5nLCBCeXRlU3RyaW5nKSAKLVBBU1Mg
VGVzdGluZyBTeW1ib2wuaXRlcmF0b3IgcHJvcGVydHkgb2YgaXRlcmFibGUgaW50ZXJmYWNlIEhl
YWRlcnMgCi1QQVNTIFRlc3RpbmcgcGFpciBpdGVyYWJsZSBpbnRlcmZhY2UgSGVhZGVycyAKLVBB
U1MgSGVhZGVycyBpbnRlcmZhY2U6IG9wZXJhdGlvbiBlbnRyaWVzKCkgCi1QQVNTIEhlYWRlcnMg
aW50ZXJmYWNlOiBvcGVyYXRpb24ga2V5cygpIAotUEFTUyBIZWFkZXJzIGludGVyZmFjZTogb3Bl
cmF0aW9uIHZhbHVlcygpIAotUEFTUyBIZWFkZXJzIGludGVyZmFjZTogb3BlcmF0aW9uIGZvckVh
Y2goZnVuY3Rpb24sIGFueSkgCitQQVNTIEhlYWRlcnMgaW50ZXJmYWNlOiBpdGVyYWJsZTxCeXRl
U3RyaW5nLCBCeXRlU3RyaW5nPiAKIFBBU1MgSGVhZGVycyBtdXN0IGJlIHByaW1hcnkgaW50ZXJm
YWNlIG9mIG5ldyBIZWFkZXJzKCkgCiBQQVNTIFN0cmluZ2lmaWNhdGlvbiBvZiBuZXcgSGVhZGVy
cygpIAogUEFTUyBIZWFkZXJzIGludGVyZmFjZTogbmV3IEhlYWRlcnMoKSBtdXN0IGluaGVyaXQg
cHJvcGVydHkgImFwcGVuZChCeXRlU3RyaW5nLCBCeXRlU3RyaW5nKSIgd2l0aCB0aGUgcHJvcGVy
IHR5cGUgCkBAIC0zMCwxMSArMjUsNiBAQCBQQVNTIEhlYWRlcnMgaW50ZXJmYWNlOiBuZXcgSGVh
ZGVycygpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiaGFzKEJ5dGVTdHJpbmcpIiB3aQogUEFTUyBI
ZWFkZXJzIGludGVyZmFjZTogY2FsbGluZyBoYXMoQnl0ZVN0cmluZykgb24gbmV3IEhlYWRlcnMo
KSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAogUEFTUyBIZWFk
ZXJzIGludGVyZmFjZTogbmV3IEhlYWRlcnMoKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInNldChC
eXRlU3RyaW5nLCBCeXRlU3RyaW5nKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCiBQQVNTIEhlYWRl
cnMgaW50ZXJmYWNlOiBjYWxsaW5nIHNldChCeXRlU3RyaW5nLCBCeXRlU3RyaW5nKSBvbiBuZXcg
SGVhZGVycygpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCi1Q
QVNTIEhlYWRlcnMgaW50ZXJmYWNlOiBuZXcgSGVhZGVycygpIG11c3QgaW5oZXJpdCBwcm9wZXJ0
eSAiZW50cmllcygpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKLVBBU1MgSGVhZGVycyBpbnRlcmZh
Y2U6IG5ldyBIZWFkZXJzKCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJrZXlzKCkiIHdpdGggdGhl
IHByb3BlciB0eXBlIAotUEFTUyBIZWFkZXJzIGludGVyZmFjZTogbmV3IEhlYWRlcnMoKSBtdXN0
IGluaGVyaXQgcHJvcGVydHkgInZhbHVlcygpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKLVBBU1Mg
SGVhZGVycyBpbnRlcmZhY2U6IG5ldyBIZWFkZXJzKCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJm
b3JFYWNoKGZ1bmN0aW9uLCBhbnkpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKLVBBU1MgSGVhZGVy
cyBpbnRlcmZhY2U6IGNhbGxpbmcgZm9yRWFjaChmdW5jdGlvbiwgYW55KSBvbiBuZXcgSGVhZGVy
cygpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCiBQQVNTIFJl
cXVlc3QgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9i
amVjdCAKIFBBU1MgUmVxdWVzdCBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aCAKIFBBU1MgUmVxdWVz
dCBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9pZGwuYW55Lndvcmtlci1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L2FwaS9pZGwuYW55Lndvcmtlci1leHBlY3RlZC50eHQKaW5kZXggYTQ0NGNmNzJiZmNmZmE2YmRl
NzZmNzViNTkwMzdkMjgxMWY1YjViNC4uN2E0NDlhYzY2MGY4OTA1OGYzYTAzMWZiZGQ5MGZkZTQw
YWIzNzQ1OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9hcGkvaWRsLmFueS53b3JrZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2lkbC5hbnku
d29ya2VyLWV4cGVjdGVkLnR4dApAQCAtMTIsMTIgKzEyLDcgQEAgUEFTUyBIZWFkZXJzIGludGVy
ZmFjZTogb3BlcmF0aW9uIGRlbGV0ZShCeXRlU3RyaW5nKQogUEFTUyBIZWFkZXJzIGludGVyZmFj
ZTogb3BlcmF0aW9uIGdldChCeXRlU3RyaW5nKSAKIFBBU1MgSGVhZGVycyBpbnRlcmZhY2U6IG9w
ZXJhdGlvbiBoYXMoQnl0ZVN0cmluZykgCiBQQVNTIEhlYWRlcnMgaW50ZXJmYWNlOiBvcGVyYXRp
b24gc2V0KEJ5dGVTdHJpbmcsIEJ5dGVTdHJpbmcpIAotUEFTUyBUZXN0aW5nIFN5bWJvbC5pdGVy
YXRvciBwcm9wZXJ0eSBvZiBpdGVyYWJsZSBpbnRlcmZhY2UgSGVhZGVycyAKLVBBU1MgVGVzdGlu
ZyBwYWlyIGl0ZXJhYmxlIGludGVyZmFjZSBIZWFkZXJzIAotUEFTUyBIZWFkZXJzIGludGVyZmFj
ZTogb3BlcmF0aW9uIGVudHJpZXMoKSAKLVBBU1MgSGVhZGVycyBpbnRlcmZhY2U6IG9wZXJhdGlv
biBrZXlzKCkgCi1QQVNTIEhlYWRlcnMgaW50ZXJmYWNlOiBvcGVyYXRpb24gdmFsdWVzKCkgCi1Q
QVNTIEhlYWRlcnMgaW50ZXJmYWNlOiBvcGVyYXRpb24gZm9yRWFjaChmdW5jdGlvbiwgYW55KSAK
K1BBU1MgSGVhZGVycyBpbnRlcmZhY2U6IGl0ZXJhYmxlPEJ5dGVTdHJpbmcsIEJ5dGVTdHJpbmc+
IAogUEFTUyBIZWFkZXJzIG11c3QgYmUgcHJpbWFyeSBpbnRlcmZhY2Ugb2YgbmV3IEhlYWRlcnMo
KSAKIFBBU1MgU3RyaW5naWZpY2F0aW9uIG9mIG5ldyBIZWFkZXJzKCkgCiBQQVNTIEhlYWRlcnMg
aW50ZXJmYWNlOiBuZXcgSGVhZGVycygpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiYXBwZW5kKEJ5
dGVTdHJpbmcsIEJ5dGVTdHJpbmcpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKQEAgLTMwLDExICsy
NSw2IEBAIFBBU1MgSGVhZGVycyBpbnRlcmZhY2U6IG5ldyBIZWFkZXJzKCkgbXVzdCBpbmhlcml0
IHByb3BlcnR5ICJoYXMoQnl0ZVN0cmluZykiIHdpCiBQQVNTIEhlYWRlcnMgaW50ZXJmYWNlOiBj
YWxsaW5nIGhhcyhCeXRlU3RyaW5nKSBvbiBuZXcgSGVhZGVycygpIHdpdGggdG9vIGZldyBhcmd1
bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCiBQQVNTIEhlYWRlcnMgaW50ZXJmYWNlOiBuZXcg
SGVhZGVycygpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAic2V0KEJ5dGVTdHJpbmcsIEJ5dGVTdHJp
bmcpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgSGVhZGVycyBpbnRlcmZhY2U6IGNhbGxp
bmcgc2V0KEJ5dGVTdHJpbmcsIEJ5dGVTdHJpbmcpIG9uIG5ldyBIZWFkZXJzKCkgd2l0aCB0b28g
ZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKLVBBU1MgSGVhZGVycyBpbnRlcmZh
Y2U6IG5ldyBIZWFkZXJzKCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJlbnRyaWVzKCkiIHdpdGgg
dGhlIHByb3BlciB0eXBlIAotUEFTUyBIZWFkZXJzIGludGVyZmFjZTogbmV3IEhlYWRlcnMoKSBt
dXN0IGluaGVyaXQgcHJvcGVydHkgImtleXMoKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCi1QQVNT
IEhlYWRlcnMgaW50ZXJmYWNlOiBuZXcgSGVhZGVycygpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAi
dmFsdWVzKCkiIHdpdGggdGhlIHByb3BlciB0eXBlIAotUEFTUyBIZWFkZXJzIGludGVyZmFjZTog
bmV3IEhlYWRlcnMoKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImZvckVhY2goZnVuY3Rpb24sIGFu
eSkiIHdpdGggdGhlIHByb3BlciB0eXBlIAotUEFTUyBIZWFkZXJzIGludGVyZmFjZTogY2FsbGlu
ZyBmb3JFYWNoKGZ1bmN0aW9uLCBhbnkpIG9uIG5ldyBIZWFkZXJzKCkgd2l0aCB0b28gZmV3IGFy
Z3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKIFBBU1MgUmVxdWVzdCBpbnRlcmZhY2U6IGV4
aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IAogUEFTUyBSZXF1ZXN0
IGludGVyZmFjZSBvYmplY3QgbGVuZ3RoIAogUEFTUyBSZXF1ZXN0IGludGVyZmFjZSBvYmplY3Qg
bmFtZSAKQEAgLTEzNCwxOSArMTI0LDggQEAgUEFTUyBSZXNwb25zZSBpbnRlcmZhY2U6IG5ldyBS
ZXNwb25zZSgpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiYmxvYigpIiB3aXRoIHRoZQogUEFTUyBS
ZXNwb25zZSBpbnRlcmZhY2U6IG5ldyBSZXNwb25zZSgpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAi
Zm9ybURhdGEoKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCiBQQVNTIFJlc3BvbnNlIGludGVyZmFj
ZTogbmV3IFJlc3BvbnNlKCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJqc29uKCkiIHdpdGggdGhl
IHByb3BlciB0eXBlIAogUEFTUyBSZXNwb25zZSBpbnRlcmZhY2U6IG5ldyBSZXNwb25zZSgpIG11
c3QgaW5oZXJpdCBwcm9wZXJ0eSAidGV4dCgpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKLVBBU1Mg
SFRNTEVsZW1lbnQgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJm
YWNlIG9iamVjdCAKLVBBU1MgSFRNTEJvZHlFbGVtZW50IGludGVyZmFjZTogZXhpc3RlbmNlIGFu
ZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgCiBQQVNTIFdpbmRvdyBpbnRlcmZhY2U6
IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IAogUEFTUyBXb3Jr
ZXJHbG9iYWxTY29wZSBpbnRlcmZhY2U6IG9wZXJhdGlvbiBmZXRjaChSZXF1ZXN0SW5mbywgUmVx
dWVzdEluaXQpIAogUEFTUyBXb3JrZXJHbG9iYWxTY29wZSBpbnRlcmZhY2U6IHNlbGYgbXVzdCBp
bmhlcml0IHByb3BlcnR5ICJmZXRjaChSZXF1ZXN0SW5mbywgUmVxdWVzdEluaXQpIiB3aXRoIHRo
ZSBwcm9wZXIgdHlwZSAKIFBBU1MgV29ya2VyR2xvYmFsU2NvcGUgaW50ZXJmYWNlOiBjYWxsaW5n
IGZldGNoKFJlcXVlc3RJbmZvLCBSZXF1ZXN0SW5pdCkgb24gc2VsZiB3aXRoIHRvbyBmZXcgYXJn
dW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAotUEFTUyBIVE1MRnJhbWVTZXRFbGVtZW50IGlu
dGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgCi1Q
QVNTIE5vZGUgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNl
IG9iamVjdCAKLVBBU1MgRG9jdW1lbnQgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRp
ZXMgb2YgaW50ZXJmYWNlIG9iamVjdCAKLVBBU1MgRG9jdW1lbnRUeXBlIGludGVyZmFjZTogZXhp
c3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgCi1QQVNTIERvY3VtZW50
RnJhZ21lbnQgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNl
IG9iamVjdCAKLVBBU1MgU2hhZG93Um9vdCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVy
dGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IAotUEFTUyBFbGVtZW50IGludGVyZmFjZTogZXhpc3Rl
bmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgCi1QQVNTIENoYXJhY3RlckRh
dGEgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVj
dCAKLVBBU1MgVGV4dCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRl
cmZhY2Ugb2JqZWN0IAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZldGNoL2NvcnMtcmZjMTkxOC9pZGxoYXJuZXNzLnRlbnRhdGl2ZS5h
bnktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9jb3JzLXJmYzE5MTgvaWRsaGFybmVzcy50ZW50YXRpdmUuYW55LWV4cGVjdGVk
LnR4dAppbmRleCBhN2VhMzI3OTFjYjAwNjkzZjM3OTRhMjNkMzI4NGE5MjY3OWM1MmZmLi5kMmYz
MDIxN2M3Yzc3Y2VlZDM3OTYzNDNhNGQzNDVhZjM1YWFjNzBjIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2NvcnMtcmZjMTkxOC9p
ZGxoYXJuZXNzLnRlbnRhdGl2ZS5hbnktZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvY29ycy1yZmMxOTE4L2lkbGhhcm5l
c3MudGVudGF0aXZlLmFueS1leHBlY3RlZC50eHQKQEAgLTEsMzAgKzEsMyBAQAogCi1GQUlMIGlk
bF90ZXN0IHNldHVwIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVl
OiBvYmplY3QgIkdvdCBhbiBlcnJvciBiZWZvcmUgcGFyc2luZyBhbnkgbmFtZWQgZGVmaW5pdGlv
bjogVW5yZWNvZ25pc2VkIHRva2VucywgbGluZSAxICh0b2tlbnM6ICJ7XCJlcnJvclwiOiB7XCJt
ZXNzYWdlXCIiKQotWwotICAgIHsKLSAgICAgICAgInR5cGUiOiAieyIsCi0gICAgICAgICJ2YWx1
ZSI6ICJ7IiwKLSAgICAgICAgInRyaXZpYSI6ICIiCi0gICAgfSwKLSAgICB7Ci0gICAgICAgICJ0
eXBlIjogInN0cmluZyIsCi0gICAgICAgICJ2YWx1ZSI6ICJcImVycm9yXCIiLAotICAgICAgICAi
dHJpdmlhIjogIiIKLSAgICB9LAotICAgIHsKLSAgICAgICAgInR5cGUiOiAiOiIsCi0gICAgICAg
ICJ2YWx1ZSI6ICI6IiwKLSAgICAgICAgInRyaXZpYSI6ICIiCi0gICAgfSwKLSAgICB7Ci0gICAg
ICAgICJ0eXBlIjogInsiLAotICAgICAgICAidmFsdWUiOiAieyIsCi0gICAgICAgICJ0cml2aWEi
OiAiICIKLSAgICB9LAotICAgIHsKLSAgICAgICAgInR5cGUiOiAic3RyaW5nIiwKLSAgICAgICAg
InZhbHVlIjogIlwibWVzc2FnZVwiIiwKLSAgICAgICAgInRyaXZpYSI6ICIiCi0gICAgfQotXSIK
K0ZBSUwgaWRsX3Rlc3Qgc2V0dXAgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdp
dGggdmFsdWU6IG9iamVjdCAiRXJyb3IgZmV0Y2hpbmcgL2ludGVyZmFjZXMvY29ycy1yZmMxOTE4
LmlkbC4iCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvY29ycy1yZmMxOTE4L2lkbGhhcm5lc3MudGVudGF0aXZlLmFueS53b3Jr
ZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9jb3JzLXJmYzE5MTgvaWRsaGFybmVzcy50ZW50YXRpdmUuYW55Lndvcmtlci1l
eHBlY3RlZC50eHQKaW5kZXggYTdlYTMyNzkxY2IwMDY5M2YzNzk0YTIzZDMyODRhOTI2NzljNTJm
Zi4uZDJmMzAyMTdjN2M3N2NlZWQzNzk2MzQzYTRkMzQ1YWYzNWFhYzcwYyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9jb3JzLXJm
YzE5MTgvaWRsaGFybmVzcy50ZW50YXRpdmUuYW55Lndvcmtlci1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9jb3JzLXJm
YzE5MTgvaWRsaGFybmVzcy50ZW50YXRpdmUuYW55Lndvcmtlci1leHBlY3RlZC50eHQKQEAgLTEs
MzAgKzEsMyBAQAogCi1GQUlMIGlkbF90ZXN0IHNldHVwIHByb21pc2VfdGVzdDogVW5oYW5kbGVk
IHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIkdvdCBhbiBlcnJvciBiZWZvcmUgcGFyc2lu
ZyBhbnkgbmFtZWQgZGVmaW5pdGlvbjogVW5yZWNvZ25pc2VkIHRva2VucywgbGluZSAxICh0b2tl
bnM6ICJ7XCJlcnJvclwiOiB7XCJtZXNzYWdlXCIiKQotWwotICAgIHsKLSAgICAgICAgInR5cGUi
OiAieyIsCi0gICAgICAgICJ2YWx1ZSI6ICJ7IiwKLSAgICAgICAgInRyaXZpYSI6ICIiCi0gICAg
fSwKLSAgICB7Ci0gICAgICAgICJ0eXBlIjogInN0cmluZyIsCi0gICAgICAgICJ2YWx1ZSI6ICJc
ImVycm9yXCIiLAotICAgICAgICAidHJpdmlhIjogIiIKLSAgICB9LAotICAgIHsKLSAgICAgICAg
InR5cGUiOiAiOiIsCi0gICAgICAgICJ2YWx1ZSI6ICI6IiwKLSAgICAgICAgInRyaXZpYSI6ICIi
Ci0gICAgfSwKLSAgICB7Ci0gICAgICAgICJ0eXBlIjogInsiLAotICAgICAgICAidmFsdWUiOiAi
eyIsCi0gICAgICAgICJ0cml2aWEiOiAiICIKLSAgICB9LAotICAgIHsKLSAgICAgICAgInR5cGUi
OiAic3RyaW5nIiwKLSAgICAgICAgInZhbHVlIjogIlwibWVzc2FnZVwiIiwKLSAgICAgICAgInRy
aXZpYSI6ICIiCi0gICAgfQotXSIKK0ZBSUwgaWRsX3Rlc3Qgc2V0dXAgcHJvbWlzZV90ZXN0OiBV
bmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiRXJyb3IgZmV0Y2hpbmcgL2lu
dGVyZmFjZXMvY29ycy1yZmMxOTE4LmlkbC4iCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHItdGltZS9pZGxoYXJuZXNzLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHItdGlt
ZS9pZGxoYXJuZXNzLWV4cGVjdGVkLnR4dAppbmRleCA0MmI1YWJkOWE3OGEzOWIxYjFhZmZiMGVm
YjA2NmIzNTUyZmFlZWYxLi5jNDkwZDA1MDUwMmIwM2M4MDE2NGI5OGYwOTMxYWJhZmU2MTY2YTg2
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2hyLXRpbWUvaWRsaGFybmVzcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9oci10aW1lL2lkbGhhcm5lc3MtZXhwZWN0ZWQudHh0
CkBAIC0xNyw3ICsxNyw3IEBAIFBBU1MgU3RyaW5naWZpY2F0aW9uIG9mIHdpbmRvdy5wZXJmb3Jt
YW5jZQogUEFTUyBQZXJmb3JtYW5jZSBpbnRlcmZhY2U6IHdpbmRvdy5wZXJmb3JtYW5jZSBtdXN0
IGluaGVyaXQgcHJvcGVydHkgIm5vdygpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKIEZBSUwgUGVy
Zm9ybWFuY2UgaW50ZXJmYWNlOiB3aW5kb3cucGVyZm9ybWFuY2UgbXVzdCBpbmhlcml0IHByb3Bl
cnR5ICJ0aW1lT3JpZ2luIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBhc3NlcnRfaW5oZXJpdHM6IHBy
b3BlcnR5ICJ0aW1lT3JpZ2luIiBub3QgZm91bmQgaW4gcHJvdG90eXBlIGNoYWluCiBGQUlMIFBl
cmZvcm1hbmNlIGludGVyZmFjZTogd2luZG93LnBlcmZvcm1hbmNlIG11c3QgaW5oZXJpdCBwcm9w
ZXJ0eSAidG9KU09OKCkiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9pbmhlcml0czogcHJv
cGVydHkgInRvSlNPTiIgbm90IGZvdW5kIGluIHByb3RvdHlwZSBjaGFpbgotRkFJTCBUZXN0IGRl
ZmF1bHQgdG9KU09OIG9wZXJhdGlvbiBvZiBQZXJmb3JtYW5jZSBtZW1iZXJIb2xkZXJPYmplY3Qu
dG9KU09OIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ21lbWJlckhvbGRlck9iamVjdC50b0pTT04o
KScsICdtZW1iZXJIb2xkZXJPYmplY3QudG9KU09OJyBpcyB1bmRlZmluZWQpCitGQUlMIFBlcmZv
cm1hbmNlIGludGVyZmFjZTogZGVmYXVsdCB0b0pTT04gb3BlcmF0aW9uIG9uIHdpbmRvdy5wZXJm
b3JtYW5jZSBtZW1iZXJIb2xkZXJPYmplY3QudG9KU09OIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4g
J21lbWJlckhvbGRlck9iamVjdC50b0pTT04oKScsICdtZW1iZXJIb2xkZXJPYmplY3QudG9KU09O
JyBpcyB1bmRlZmluZWQpCiBQQVNTIFdpbmRvdyBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBwZXJmb3Jt
YW5jZSAKIFBBU1MgV2luZG93IGludGVyZmFjZTogd2luZG93IG11c3QgaW5oZXJpdCBwcm9wZXJ0
eSAicGVyZm9ybWFuY2UiIHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBXb3JrZXJHbG9iYWxT
Y29wZSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2Jq
ZWN0IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL3dlYmFwcGFwaXMvYW5pbWF0aW9uLWZyYW1lcy9pZGxoYXJuZXNzLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC93
ZWJhcHBhcGlzL2FuaW1hdGlvbi1mcmFtZXMvaWRsaGFybmVzcy1leHBlY3RlZC50eHQKaW5kZXgg
NmQ4YmY2ZTdmNzFmMTU5OTM5ZjMzNjMyYzFmYWU5ZGQ3NjMxOTRmZC4uNTQ5ODA4ODVhYzdiNjdk
N2RlNTJhMWE1ZmI3MDE5MTQzNTQxYjNmNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3dlYmFwcGFwaXMvYW5pbWF0aW9uLWZyYW1l
cy9pZGxoYXJuZXNzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvd2ViYXBwYXBpcy9hbmltYXRpb24tZnJhbWVzL2lkbGhh
cm5lc3MtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsMyBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5l
IDQ4MjogY2FsbGJhY2sgbm90IHlldCBzdXBwb3J0ZWQKIGlkbGhhcm5lc3MgdGVzdAogCiBUaGlz
IHRlc3QgdmFsaWRhdGVzIHRoZSBXZWJJREwgaW5jbHVkZWQgaW4gdGhlIFRpbWluZyBjb250cm9s
IGZvciBzY3JpcHQtYmFzZWQgYW5pbWF0aW9ucyBzcGVjaWZpY2F0aW9uLgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3dlYmFwcGFw
aXMvc2NyaXB0aW5nL2V2ZW50cy9ldmVudC1oYW5kbGVyLWFsbC1nbG9iYWwtZXZlbnRzLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bC93ZWJhcHBhcGlzL3NjcmlwdGluZy9ldmVudHMvZXZlbnQtaGFuZGxlci1hbGwtZ2xvYmFsLWV2
ZW50cy1leHBlY3RlZC50eHQKaW5kZXggMDBiMTdmZTYwY2RlZjBmZGRhZDEwMTY1NjdmMzAxZmE5
MTY1Njc4Ny4uNjY4MWMyOGMxMWE1ZWVkNDMyMmFhNDE2MTYxYzZlYTRlYjQ0MTA1YSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3dl
YmFwcGFwaXMvc2NyaXB0aW5nL2V2ZW50cy9ldmVudC1oYW5kbGVyLWFsbC1nbG9iYWwtZXZlbnRz
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvd2ViYXBwYXBpcy9zY3JpcHRpbmcvZXZlbnRzL2V2ZW50LWhhbmRsZXItYWxs
LWdsb2JhbC1ldmVudHMtZXhwZWN0ZWQudHh0CkBAIC0xMTksNiArMTE5LDExIEBAIFBBU1Mgb25m
b2N1czogdGhlIGRlZmF1bHQgdmFsdWUgbXVzdCBiZSBudWxsCiBQQVNTIG9uZm9jdXM6IHRoZSBj
b250ZW50IGF0dHJpYnV0ZSBtdXN0IGJlIGNvbXBpbGVkIGludG8gYSBmdW5jdGlvbiBhcyB0aGUg
Y29ycmVzcG9uZGluZyBwcm9wZXJ0eSAKIFBBU1Mgb25mb2N1czogdGhlIGNvbnRlbnQgYXR0cmli
dXRlIG11c3QgZXhlY3V0ZSB3aGVuIGFuIGV2ZW50IGlzIGRpc3BhdGNoZWQgCiBQQVNTIG9uZm9j
dXM6IGRpc3BhdGNoaW5nIGFuIEV2ZW50IGF0IGEgPG1ldGE+IGVsZW1lbnQgbXVzdCB0cmlnZ2Vy
IGVsZW1lbnQub25mb2N1cyAKK0ZBSUwgb25mb3JtZGF0YTogbXVzdCBiZSBvbiB0aGUgYXBwcm9w
cmlhdGUgbG9jYXRpb25zIGZvciBHbG9iYWxFdmVudEhhbmRsZXJzIGFzc2VydF90cnVlOiBXaW5k
b3cgaGFzIGFuIG93biBwcm9wZXJ0eSBuYW1lZCAib25mb3JtZGF0YSIgZXhwZWN0ZWQgdHJ1ZSBn
b3QgZmFsc2UKK0ZBSUwgb25mb3JtZGF0YTogdGhlIGRlZmF1bHQgdmFsdWUgbXVzdCBiZSBudWxs
IGFzc2VydF9lcXVhbHM6IFRoZSBkZWZhdWx0IHZhbHVlIG9mIHRoZSBwcm9wZXJ0eSBpcyBudWxs
IGZvciBhIFdpbmRvdyBpbnN0YW5jZSBleHBlY3RlZCAob2JqZWN0KSBudWxsIGJ1dCBnb3QgKHVu
ZGVmaW5lZCkgdW5kZWZpbmVkCitGQUlMIG9uZm9ybWRhdGE6IHRoZSBjb250ZW50IGF0dHJpYnV0
ZSBtdXN0IGJlIGNvbXBpbGVkIGludG8gYSBmdW5jdGlvbiBhcyB0aGUgY29ycmVzcG9uZGluZyBw
cm9wZXJ0eSBhc3NlcnRfZXF1YWxzOiBUaGUgb25mb3JtZGF0YSBwcm9wZXJ0eSBtdXN0IGJlIGEg
ZnVuY3Rpb24gZXhwZWN0ZWQgImZ1bmN0aW9uIiBidXQgZ290ICJ1bmRlZmluZWQiCitGQUlMIG9u
Zm9ybWRhdGE6IHRoZSBjb250ZW50IGF0dHJpYnV0ZSBtdXN0IGV4ZWN1dGUgd2hlbiBhbiBldmVu
dCBpcyBkaXNwYXRjaGVkIGFzc2VydF90cnVlOiBEaXNwYXRjaGluZyBhbiBldmVudCBtdXN0IHJ1
biB0aGUgY29kZSBleHBlY3RlZCB0cnVlIGdvdCB1bmRlZmluZWQKK1BBU1Mgb25mb3JtZGF0YTog
ZGlzcGF0Y2hpbmcgYW4gRXZlbnQgYXQgYSA8bWV0YT4gZWxlbWVudCBtdXN0IHRyaWdnZXIgZWxl
bWVudC5vbmZvcm1kYXRhIAogUEFTUyBvbmlucHV0OiBtdXN0IGJlIG9uIHRoZSBhcHByb3ByaWF0
ZSBsb2NhdGlvbnMgZm9yIEdsb2JhbEV2ZW50SGFuZGxlcnMgCiBQQVNTIG9uaW5wdXQ6IHRoZSBk
ZWZhdWx0IHZhbHVlIG11c3QgYmUgbnVsbCAKIFBBU1Mgb25pbnB1dDogdGhlIGNvbnRlbnQgYXR0
cmlidXRlIG11c3QgYmUgY29tcGlsZWQgaW50byBhIGZ1bmN0aW9uIGFzIHRoZSBjb3JyZXNwb25k
aW5nIHByb3BlcnR5IApAQCAtMTU5LDExICsxNjQsNiBAQCBQQVNTIG9ubG9hZGVkbWV0YWRhdGE6
IHRoZSBkZWZhdWx0IHZhbHVlIG11c3QgYmUgbnVsbAogUEFTUyBvbmxvYWRlZG1ldGFkYXRhOiB0
aGUgY29udGVudCBhdHRyaWJ1dGUgbXVzdCBiZSBjb21waWxlZCBpbnRvIGEgZnVuY3Rpb24gYXMg
dGhlIGNvcnJlc3BvbmRpbmcgcHJvcGVydHkgCiBQQVNTIG9ubG9hZGVkbWV0YWRhdGE6IHRoZSBj
b250ZW50IGF0dHJpYnV0ZSBtdXN0IGV4ZWN1dGUgd2hlbiBhbiBldmVudCBpcyBkaXNwYXRjaGVk
IAogUEFTUyBvbmxvYWRlZG1ldGFkYXRhOiBkaXNwYXRjaGluZyBhbiBFdmVudCBhdCBhIDxtZXRh
PiBlbGVtZW50IG11c3QgdHJpZ2dlciBlbGVtZW50Lm9ubG9hZGVkbWV0YWRhdGEgCi1GQUlMIG9u
bG9hZGVuZDogbXVzdCBiZSBvbiB0aGUgYXBwcm9wcmlhdGUgbG9jYXRpb25zIGZvciBHbG9iYWxF
dmVudEhhbmRsZXJzIGFzc2VydF90cnVlOiBXaW5kb3cgaGFzIGFuIG93biBwcm9wZXJ0eSBuYW1l
ZCAib25sb2FkZW5kIiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBvbmxvYWRlbmQ6IHRo
ZSBkZWZhdWx0IHZhbHVlIG11c3QgYmUgbnVsbCBhc3NlcnRfZXF1YWxzOiBUaGUgZGVmYXVsdCB2
YWx1ZSBvZiB0aGUgcHJvcGVydHkgaXMgbnVsbCBmb3IgYSBXaW5kb3cgaW5zdGFuY2UgZXhwZWN0
ZWQgKG9iamVjdCkgbnVsbCBidXQgZ290ICh1bmRlZmluZWQpIHVuZGVmaW5lZAotRkFJTCBvbmxv
YWRlbmQ6IHRoZSBjb250ZW50IGF0dHJpYnV0ZSBtdXN0IGJlIGNvbXBpbGVkIGludG8gYSBmdW5j
dGlvbiBhcyB0aGUgY29ycmVzcG9uZGluZyBwcm9wZXJ0eSBhc3NlcnRfZXF1YWxzOiBUaGUgb25s
b2FkZW5kIHByb3BlcnR5IG11c3QgYmUgYSBmdW5jdGlvbiBleHBlY3RlZCAiZnVuY3Rpb24iIGJ1
dCBnb3QgInVuZGVmaW5lZCIKLUZBSUwgb25sb2FkZW5kOiB0aGUgY29udGVudCBhdHRyaWJ1dGUg
bXVzdCBleGVjdXRlIHdoZW4gYW4gZXZlbnQgaXMgZGlzcGF0Y2hlZCBhc3NlcnRfdHJ1ZTogRGlz
cGF0Y2hpbmcgYW4gZXZlbnQgbXVzdCBydW4gdGhlIGNvZGUgZXhwZWN0ZWQgdHJ1ZSBnb3QgdW5k
ZWZpbmVkCi1QQVNTIG9ubG9hZGVuZDogZGlzcGF0Y2hpbmcgYW4gRXZlbnQgYXQgYSA8bWV0YT4g
ZWxlbWVudCBtdXN0IHRyaWdnZXIgZWxlbWVudC5vbmxvYWRlbmQgCiBQQVNTIG9ubG9hZHN0YXJ0
OiBtdXN0IGJlIG9uIHRoZSBhcHByb3ByaWF0ZSBsb2NhdGlvbnMgZm9yIEdsb2JhbEV2ZW50SGFu
ZGxlcnMgCiBQQVNTIG9ubG9hZHN0YXJ0OiB0aGUgZGVmYXVsdCB2YWx1ZSBtdXN0IGJlIG51bGwg
CiBQQVNTIG9ubG9hZHN0YXJ0OiB0aGUgY29udGVudCBhdHRyaWJ1dGUgbXVzdCBiZSBjb21waWxl
ZCBpbnRvIGEgZnVuY3Rpb24gYXMgdGhlIGNvcnJlc3BvbmRpbmcgcHJvcGVydHkgCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ludGVyZmFj
ZXMvU1ZHLmlkbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aW50ZXJmYWNlcy9TVkcuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk3ODcxYzJmMDIzMDM5Nzg4ZDczNzliZDE5
NjhmNzVkYzNkM2JlZTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ludGVyZmFjZXMvU1ZHLmlkbApAQCAtMCwwICsxLDY3OSBA
QAorLy8gR0VORVJBVEVEIENPTlRFTlQgLSBETyBOT1QgRURJVAorLy8gQ29udGVudCB3YXMgYXV0
b21hdGljYWxseSBleHRyYWN0ZWQgYnkgUmVmZnkgaW50byByZWZmeS1yZXBvcnRzCisvLyAoaHR0
cHM6Ly9naXRodWIuY29tL3RpZG91c3QvcmVmZnktcmVwb3J0cykKKy8vIFNvdXJjZTogU2NhbGFi
bGUgVmVjdG9yIEdyYXBoaWNzIChTVkcpIDIgKGh0dHBzOi8vc3Znd2cub3JnL3N2ZzItZHJhZnQv
KQorCitbRXhwb3NlZD1XaW5kb3ddCitpbnRlcmZhY2UgU1ZHRWxlbWVudCA6IEVsZW1lbnQgewor
CisgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRTdHJpbmcgY2xh
c3NOYW1lOworCisgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdTVkdFbGVtZW50PyBvd25lclNWR0Vs
ZW1lbnQ7CisgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdFbGVtZW50PyB2aWV3cG9ydEVsZW1lbnQ7
Cit9OworCitTVkdFbGVtZW50IGluY2x1ZGVzIEdsb2JhbEV2ZW50SGFuZGxlcnM7CitTVkdFbGVt
ZW50IGluY2x1ZGVzIERvY3VtZW50QW5kRWxlbWVudEV2ZW50SGFuZGxlcnM7CitTVkdFbGVtZW50
IGluY2x1ZGVzIFNWR0VsZW1lbnRJbnN0YW5jZTsKK1NWR0VsZW1lbnQgaW5jbHVkZXMgSFRNTE9y
U1ZHRWxlbWVudDsKKworZGljdGlvbmFyeSBTVkdCb3VuZGluZ0JveE9wdGlvbnMgeworICBib29s
ZWFuIGZpbGwgPSB0cnVlOworICBib29sZWFuIHN0cm9rZSA9IGZhbHNlOworICBib29sZWFuIG1h
cmtlcnMgPSBmYWxzZTsKKyAgYm9vbGVhbiBjbGlwcGVkID0gZmFsc2U7Cit9OworCitpbnRlcmZh
Y2UgU1ZHR3JhcGhpY3NFbGVtZW50IDogU1ZHRWxlbWVudCB7CisgIFtTYW1lT2JqZWN0XSByZWFk
b25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0IHRyYW5zZm9ybTsKKworICBE
T01SZWN0IGdldEJCb3gob3B0aW9uYWwgU1ZHQm91bmRpbmdCb3hPcHRpb25zIG9wdGlvbnMpOwor
ICBET01NYXRyaXg/IGdldENUTSgpOworICBET01NYXRyaXg/IGdldFNjcmVlbkNUTSgpOworfTsK
KworU1ZHR3JhcGhpY3NFbGVtZW50IGluY2x1ZGVzIFNWR1Rlc3RzOworCitbRXhwb3NlZD1XaW5k
b3ddCitpbnRlcmZhY2UgU1ZHR2VvbWV0cnlFbGVtZW50IDogU1ZHR3JhcGhpY3NFbGVtZW50IHsK
KyAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZE51bWJlciBwYXRo
TGVuZ3RoOworCisgIGJvb2xlYW4gaXNQb2ludEluRmlsbChvcHRpb25hbCBET01Qb2ludEluaXQg
cG9pbnQpOworICBib29sZWFuIGlzUG9pbnRJblN0cm9rZShvcHRpb25hbCBET01Qb2ludEluaXQg
cG9pbnQpOworICBmbG9hdCBnZXRUb3RhbExlbmd0aCgpOworICBET01Qb2ludCBnZXRQb2ludEF0
TGVuZ3RoKGZsb2F0IGRpc3RhbmNlKTsKK307CisKK1tFeHBvc2VkPVdpbmRvd10KK2ludGVyZmFj
ZSBTVkdOdW1iZXIgeworICBhdHRyaWJ1dGUgZmxvYXQgdmFsdWU7Cit9OworCitbRXhwb3NlZD1X
aW5kb3ddCitpbnRlcmZhY2UgU1ZHTGVuZ3RoIHsKKworICAvLyBMZW5ndGggVW5pdCBUeXBlcwor
ICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfTEVOR1RIVFlQRV9VTktOT1dOID0gMDsKKyAgY29u
c3QgdW5zaWduZWQgc2hvcnQgU1ZHX0xFTkdUSFRZUEVfTlVNQkVSID0gMTsKKyAgY29uc3QgdW5z
aWduZWQgc2hvcnQgU1ZHX0xFTkdUSFRZUEVfUEVSQ0VOVEFHRSA9IDI7CisgIGNvbnN0IHVuc2ln
bmVkIHNob3J0IFNWR19MRU5HVEhUWVBFX0VNUyA9IDM7CisgIGNvbnN0IHVuc2lnbmVkIHNob3J0
IFNWR19MRU5HVEhUWVBFX0VYUyA9IDQ7CisgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19MRU5H
VEhUWVBFX1BYID0gNTsKKyAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX0xFTkdUSFRZUEVfQ00g
PSA2OworICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfTEVOR1RIVFlQRV9NTSA9IDc7CisgIGNv
bnN0IHVuc2lnbmVkIHNob3J0IFNWR19MRU5HVEhUWVBFX0lOID0gODsKKyAgY29uc3QgdW5zaWdu
ZWQgc2hvcnQgU1ZHX0xFTkdUSFRZUEVfUFQgPSA5OworICBjb25zdCB1bnNpZ25lZCBzaG9ydCBT
VkdfTEVOR1RIVFlQRV9QQyA9IDEwOworCisgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBz
aG9ydCB1bml0VHlwZTsKKyAgICAgICAgICAgYXR0cmlidXRlIGZsb2F0IHZhbHVlOworICAgICAg
ICAgICBhdHRyaWJ1dGUgZmxvYXQgdmFsdWVJblNwZWNpZmllZFVuaXRzOworICAgICAgICAgICBh
dHRyaWJ1dGUgRE9NU3RyaW5nIHZhbHVlQXNTdHJpbmc7CisKKyAgdm9pZCBuZXdWYWx1ZVNwZWNp
ZmllZFVuaXRzKHVuc2lnbmVkIHNob3J0IHVuaXRUeXBlLCBmbG9hdCB2YWx1ZUluU3BlY2lmaWVk
VW5pdHMpOworICB2b2lkIGNvbnZlcnRUb1NwZWNpZmllZFVuaXRzKHVuc2lnbmVkIHNob3J0IHVu
aXRUeXBlKTsKK307CisKK1tFeHBvc2VkPVdpbmRvd10KK2ludGVyZmFjZSBTVkdBbmdsZSB7CisK
KyAgLy8gQW5nbGUgVW5pdCBUeXBlcworICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfQU5HTEVU
WVBFX1VOS05PV04gPSAwOworICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfQU5HTEVUWVBFX1VO
U1BFQ0lGSUVEID0gMTsKKyAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX0FOR0xFVFlQRV9ERUcg
PSAyOworICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfQU5HTEVUWVBFX1JBRCA9IDM7CisgIGNv
bnN0IHVuc2lnbmVkIHNob3J0IFNWR19BTkdMRVRZUEVfR1JBRCA9IDQ7CisKKyAgcmVhZG9ubHkg
YXR0cmlidXRlIHVuc2lnbmVkIHNob3J0IHVuaXRUeXBlOworICAgICAgICAgICBhdHRyaWJ1dGUg
ZmxvYXQgdmFsdWU7CisgICAgICAgICAgIGF0dHJpYnV0ZSBmbG9hdCB2YWx1ZUluU3BlY2lmaWVk
VW5pdHM7CisgICAgICAgICAgIGF0dHJpYnV0ZSBET01TdHJpbmcgdmFsdWVBc1N0cmluZzsKKwor
ICB2b2lkIG5ld1ZhbHVlU3BlY2lmaWVkVW5pdHModW5zaWduZWQgc2hvcnQgdW5pdFR5cGUsIGZs
b2F0IHZhbHVlSW5TcGVjaWZpZWRVbml0cyk7CisgIHZvaWQgY29udmVydFRvU3BlY2lmaWVkVW5p
dHModW5zaWduZWQgc2hvcnQgdW5pdFR5cGUpOworfTsKKworW0V4cG9zZWQ9V2luZG93XQoraW50
ZXJmYWNlIFNWR051bWJlckxpc3QgeworCisgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBs
b25nIGxlbmd0aDsKKyAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbnVtYmVyT2ZJ
dGVtczsKKworICB2b2lkIGNsZWFyKCk7CisgIFNWR051bWJlciBpbml0aWFsaXplKFNWR051bWJl
ciBuZXdJdGVtKTsKKyAgZ2V0dGVyIFNWR051bWJlciBnZXRJdGVtKHVuc2lnbmVkIGxvbmcgaW5k
ZXgpOworICBTVkdOdW1iZXIgaW5zZXJ0SXRlbUJlZm9yZShTVkdOdW1iZXIgbmV3SXRlbSwgdW5z
aWduZWQgbG9uZyBpbmRleCk7CisgIFNWR051bWJlciByZXBsYWNlSXRlbShTVkdOdW1iZXIgbmV3
SXRlbSwgdW5zaWduZWQgbG9uZyBpbmRleCk7CisgIFNWR051bWJlciByZW1vdmVJdGVtKHVuc2ln
bmVkIGxvbmcgaW5kZXgpOworICBTVkdOdW1iZXIgYXBwZW5kSXRlbShTVkdOdW1iZXIgbmV3SXRl
bSk7CisgIHNldHRlciB2b2lkICh1bnNpZ25lZCBsb25nIGluZGV4LCBTVkdOdW1iZXIgbmV3SXRl
bSk7Cit9OworCitbRXhwb3NlZD1XaW5kb3ddCitpbnRlcmZhY2UgU1ZHTGVuZ3RoTGlzdCB7CisK
KyAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbGVuZ3RoOworICByZWFkb25seSBh
dHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBudW1iZXJPZkl0ZW1zOworCisgIHZvaWQgY2xlYXIoKTsK
KyAgU1ZHTGVuZ3RoIGluaXRpYWxpemUoU1ZHTGVuZ3RoIG5ld0l0ZW0pOworICBnZXR0ZXIgU1ZH
TGVuZ3RoIGdldEl0ZW0odW5zaWduZWQgbG9uZyBpbmRleCk7CisgIFNWR0xlbmd0aCBpbnNlcnRJ
dGVtQmVmb3JlKFNWR0xlbmd0aCBuZXdJdGVtLCB1bnNpZ25lZCBsb25nIGluZGV4KTsKKyAgU1ZH
TGVuZ3RoIHJlcGxhY2VJdGVtKFNWR0xlbmd0aCBuZXdJdGVtLCB1bnNpZ25lZCBsb25nIGluZGV4
KTsKKyAgU1ZHTGVuZ3RoIHJlbW92ZUl0ZW0odW5zaWduZWQgbG9uZyBpbmRleCk7CisgIFNWR0xl
bmd0aCBhcHBlbmRJdGVtKFNWR0xlbmd0aCBuZXdJdGVtKTsKKyAgc2V0dGVyIHZvaWQgKHVuc2ln
bmVkIGxvbmcgaW5kZXgsIFNWR0xlbmd0aCBuZXdJdGVtKTsKK307CisKK1tFeHBvc2VkPVdpbmRv
d10KK2ludGVyZmFjZSBTVkdTdHJpbmdMaXN0IHsKKworICByZWFkb25seSBhdHRyaWJ1dGUgdW5z
aWduZWQgbG9uZyBsZW5ndGg7CisgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIG51
bWJlck9mSXRlbXM7CisKKyAgdm9pZCBjbGVhcigpOworICBET01TdHJpbmcgaW5pdGlhbGl6ZShE
T01TdHJpbmcgbmV3SXRlbSk7CisgIGdldHRlciBET01TdHJpbmcgZ2V0SXRlbSh1bnNpZ25lZCBs
b25nIGluZGV4KTsKKyAgRE9NU3RyaW5nIGluc2VydEl0ZW1CZWZvcmUoRE9NU3RyaW5nIG5ld0l0
ZW0sIHVuc2lnbmVkIGxvbmcgaW5kZXgpOworICBET01TdHJpbmcgcmVwbGFjZUl0ZW0oRE9NU3Ry
aW5nIG5ld0l0ZW0sIHVuc2lnbmVkIGxvbmcgaW5kZXgpOworICBET01TdHJpbmcgcmVtb3ZlSXRl
bSh1bnNpZ25lZCBsb25nIGluZGV4KTsKKyAgRE9NU3RyaW5nIGFwcGVuZEl0ZW0oRE9NU3RyaW5n
IG5ld0l0ZW0pOworICBzZXR0ZXIgdm9pZCAodW5zaWduZWQgbG9uZyBpbmRleCwgRE9NU3RyaW5n
IG5ld0l0ZW0pOworfTsKKworW0V4cG9zZWQ9V2luZG93XQoraW50ZXJmYWNlIFNWR0FuaW1hdGVk
Qm9vbGVhbiB7CisgICAgICAgICAgIGF0dHJpYnV0ZSBib29sZWFuIGJhc2VWYWw7CisgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBib29sZWFuIGFuaW1WYWw7Cit9OworCitbRXhwb3NlZD1XaW5kb3ddCitp
bnRlcmZhY2UgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbiB7CisgICAgICAgICAgIGF0dHJpYnV0ZSB1
bnNpZ25lZCBzaG9ydCBiYXNlVmFsOworICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgc2hv
cnQgYW5pbVZhbDsKK307CisKK1tFeHBvc2VkPVdpbmRvd10KK2ludGVyZmFjZSBTVkdBbmltYXRl
ZEludGVnZXIgeworICAgICAgICAgICBhdHRyaWJ1dGUgbG9uZyBiYXNlVmFsOworICByZWFkb25s
eSBhdHRyaWJ1dGUgbG9uZyBhbmltVmFsOworfTsKKworW0V4cG9zZWQ9V2luZG93XQoraW50ZXJm
YWNlIFNWR0FuaW1hdGVkTnVtYmVyIHsKKyAgICAgICAgICAgYXR0cmlidXRlIGZsb2F0IGJhc2VW
YWw7CisgIHJlYWRvbmx5IGF0dHJpYnV0ZSBmbG9hdCBhbmltVmFsOworfTsKKworW0V4cG9zZWQ9
V2luZG93XQoraW50ZXJmYWNlIFNWR0FuaW1hdGVkTGVuZ3RoIHsKKyAgW1NhbWVPYmplY3RdIHJl
YWRvbmx5IGF0dHJpYnV0ZSBTVkdMZW5ndGggYmFzZVZhbDsKKyAgW1NhbWVPYmplY3RdIHJlYWRv
bmx5IGF0dHJpYnV0ZSBTVkdMZW5ndGggYW5pbVZhbDsKK307CisKK1tFeHBvc2VkPVdpbmRvd10K
K2ludGVyZmFjZSBTVkdBbmltYXRlZEFuZ2xlIHsKKyAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0
dHJpYnV0ZSBTVkdBbmdsZSBiYXNlVmFsOworICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmli
dXRlIFNWR0FuZ2xlIGFuaW1WYWw7Cit9OworCitbRXhwb3NlZD1XaW5kb3ddCitpbnRlcmZhY2Ug
U1ZHQW5pbWF0ZWRTdHJpbmcgeworICAgICAgICAgICBhdHRyaWJ1dGUgRE9NU3RyaW5nIGJhc2VW
YWw7CisgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgYW5pbVZhbDsKK307CisKK1tFeHBv
c2VkPVdpbmRvd10KK2ludGVyZmFjZSBTVkdBbmltYXRlZFJlY3QgeworICBbU2FtZU9iamVjdF0g
cmVhZG9ubHkgYXR0cmlidXRlIERPTVJlY3QgYmFzZVZhbDsKKyAgW1NhbWVPYmplY3RdIHJlYWRv
bmx5IGF0dHJpYnV0ZSBET01SZWN0UmVhZE9ubHkgYW5pbVZhbDsKK307CisKK1tFeHBvc2VkPVdp
bmRvd10KK2ludGVyZmFjZSBTVkdBbmltYXRlZE51bWJlckxpc3QgeworICBbU2FtZU9iamVjdF0g
cmVhZG9ubHkgYXR0cmlidXRlIFNWR051bWJlckxpc3QgYmFzZVZhbDsKKyAgW1NhbWVPYmplY3Rd
IHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdOdW1iZXJMaXN0IGFuaW1WYWw7Cit9OworCitbRXhwb3Nl
ZD1XaW5kb3ddCitpbnRlcmZhY2UgU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0IHsKKyAgW1NhbWVPYmpl
Y3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdMZW5ndGhMaXN0IGJhc2VWYWw7CisgIFtTYW1lT2Jq
ZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgU1ZHTGVuZ3RoTGlzdCBhbmltVmFsOworfTsKKworW0V4
cG9zZWQ9V2luZG93XQoraW50ZXJmYWNlIFNWR1VuaXRUeXBlcyB7CisgIC8vIFVuaXQgVHlwZXMK
KyAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX1VOSVRfVFlQRV9VTktOT1dOID0gMDsKKyAgY29u
c3QgdW5zaWduZWQgc2hvcnQgU1ZHX1VOSVRfVFlQRV9VU0VSU1BBQ0VPTlVTRSA9IDE7CisgIGNv
bnN0IHVuc2lnbmVkIHNob3J0IFNWR19VTklUX1RZUEVfT0JKRUNUQk9VTkRJTkdCT1ggPSAyOwor
fTsKKworaW50ZXJmYWNlIG1peGluIFNWR1Rlc3RzIHsKKyAgW1NhbWVPYmplY3RdIHJlYWRvbmx5
IGF0dHJpYnV0ZSBTVkdTdHJpbmdMaXN0IHJlcXVpcmVkRXh0ZW5zaW9uczsKKyAgW1NhbWVPYmpl
Y3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdTdHJpbmdMaXN0IHN5c3RlbUxhbmd1YWdlOworfTsK
KworaW50ZXJmYWNlIG1peGluIFNWR0ZpdFRvVmlld0JveCB7CisgIFtTYW1lT2JqZWN0XSByZWFk
b25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRSZWN0IHZpZXdCb3g7CisgIFtTYW1lT2JqZWN0XSBy
ZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvIHByZXNlcnZl
QXNwZWN0UmF0aW87Cit9OworCitpbnRlcmZhY2UgbWl4aW4gU1ZHVVJJUmVmZXJlbmNlIHsKKyAg
W1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZFN0cmluZyBocmVmOwor
fTsKKworcGFydGlhbCBpbnRlcmZhY2UgRG9jdW1lbnQgeworICByZWFkb25seSBhdHRyaWJ1dGUg
U1ZHU1ZHRWxlbWVudD8gcm9vdEVsZW1lbnQ7Cit9OworCitbRXhwb3NlZD1XaW5kb3ddCitpbnRl
cmZhY2UgU1ZHU1ZHRWxlbWVudCA6IFNWR0dyYXBoaWNzRWxlbWVudCB7CisKKyAgW1NhbWVPYmpl
Y3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZExlbmd0aCB4OworICBbU2FtZU9iamVj
dF0gcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTGVuZ3RoIHk7CisgIFtTYW1lT2JqZWN0
XSByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRMZW5ndGggd2lkdGg7CisgIFtTYW1lT2Jq
ZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRMZW5ndGggaGVpZ2h0OworCisgIGF0
dHJpYnV0ZSBmbG9hdCBjdXJyZW50U2NhbGU7CisgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRy
aWJ1dGUgRE9NUG9pbnRSZWFkT25seSBjdXJyZW50VHJhbnNsYXRlOworCisgIE5vZGVMaXN0IGdl
dEludGVyc2VjdGlvbkxpc3QoRE9NUmVjdFJlYWRPbmx5IHJlY3QsIFNWR0VsZW1lbnQ/IHJlZmVy
ZW5jZUVsZW1lbnQpOworICBOb2RlTGlzdCBnZXRFbmNsb3N1cmVMaXN0KERPTVJlY3RSZWFkT25s
eSByZWN0LCBTVkdFbGVtZW50PyByZWZlcmVuY2VFbGVtZW50KTsKKyAgYm9vbGVhbiBjaGVja0lu
dGVyc2VjdGlvbihTVkdFbGVtZW50IGVsZW1lbnQsIERPTVJlY3RSZWFkT25seSByZWN0KTsKKyAg
Ym9vbGVhbiBjaGVja0VuY2xvc3VyZShTVkdFbGVtZW50IGVsZW1lbnQsIERPTVJlY3RSZWFkT25s
eSByZWN0KTsKKworICB2b2lkIGRlc2VsZWN0QWxsKCk7CisKKyAgU1ZHTnVtYmVyIGNyZWF0ZVNW
R051bWJlcigpOworICBTVkdMZW5ndGggY3JlYXRlU1ZHTGVuZ3RoKCk7CisgIFNWR0FuZ2xlIGNy
ZWF0ZVNWR0FuZ2xlKCk7CisgIERPTVBvaW50IGNyZWF0ZVNWR1BvaW50KCk7CisgIERPTU1hdHJp
eCBjcmVhdGVTVkdNYXRyaXgoKTsKKyAgRE9NUmVjdCBjcmVhdGVTVkdSZWN0KCk7CisgIFNWR1Ry
YW5zZm9ybSBjcmVhdGVTVkdUcmFuc2Zvcm0oKTsKKyAgU1ZHVHJhbnNmb3JtIGNyZWF0ZVNWR1Ry
YW5zZm9ybUZyb21NYXRyaXgob3B0aW9uYWwgRE9NTWF0cml4MkRJbml0IG1hdHJpeCk7CisKKyAg
RWxlbWVudCBnZXRFbGVtZW50QnlJZChET01TdHJpbmcgZWxlbWVudElkKTsKKworICAvLyBEZXBy
ZWNhdGVkIG1ldGhvZHMgdGhhdCBoYXZlIG5vIGVmZmVjdCB3aGVuIGNhbGxlZCwKKyAgLy8gYnV0
IHdoaWNoIGFyZSBrZXB0IGZvciBjb21wYXRpYmlsaXR5IHJlYXNvbnMuCisgIHVuc2lnbmVkIGxv
bmcgc3VzcGVuZFJlZHJhdyh1bnNpZ25lZCBsb25nIG1heFdhaXRNaWxsaXNlY29uZHMpOworICB2
b2lkIHVuc3VzcGVuZFJlZHJhdyh1bnNpZ25lZCBsb25nIHN1c3BlbmRIYW5kbGVJRCk7CisgIHZv
aWQgdW5zdXNwZW5kUmVkcmF3QWxsKCk7CisgIHZvaWQgZm9yY2VSZWRyYXcoKTsKK307CisKK1NW
R1NWR0VsZW1lbnQgaW5jbHVkZXMgU1ZHRml0VG9WaWV3Qm94OworU1ZHU1ZHRWxlbWVudCBpbmNs
dWRlcyBXaW5kb3dFdmVudEhhbmRsZXJzOworCitbRXhwb3NlZD1XaW5kb3ddCitpbnRlcmZhY2Ug
U1ZHR0VsZW1lbnQgOiBTVkdHcmFwaGljc0VsZW1lbnQgeworfTsKKworW0V4cG9zZWQ9V2luZG93
XQoraW50ZXJmYWNlIFNWR0RlZnNFbGVtZW50IDogU1ZHR3JhcGhpY3NFbGVtZW50IHsKK307CisK
K1tFeHBvc2VkPVdpbmRvd10KK2ludGVyZmFjZSBTVkdEZXNjRWxlbWVudCA6IFNWR0VsZW1lbnQg
eworfTsKKworW0V4cG9zZWQ9V2luZG93XQoraW50ZXJmYWNlIFNWR01ldGFkYXRhRWxlbWVudCA6
IFNWR0VsZW1lbnQgeworfTsKKworW0V4cG9zZWQ9V2luZG93XQoraW50ZXJmYWNlIFNWR1RpdGxl
RWxlbWVudCA6IFNWR0VsZW1lbnQgeworfTsKKworW0V4cG9zZWQ9V2luZG93XQoraW50ZXJmYWNl
IFNWR1N5bWJvbEVsZW1lbnQgOiBTVkdHcmFwaGljc0VsZW1lbnQgeworfTsKKworU1ZHU3ltYm9s
RWxlbWVudCBpbmNsdWRlcyBTVkdGaXRUb1ZpZXdCb3g7CisKK1tFeHBvc2VkPVdpbmRvd10KK2lu
dGVyZmFjZSBTVkdVc2VFbGVtZW50IDogU1ZHR3JhcGhpY3NFbGVtZW50IHsKKyAgW1NhbWVPYmpl
Y3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZExlbmd0aCB4OworICBbU2FtZU9iamVj
dF0gcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTGVuZ3RoIHk7CisgIFtTYW1lT2JqZWN0
XSByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRMZW5ndGggd2lkdGg7CisgIFtTYW1lT2Jq
ZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRMZW5ndGggaGVpZ2h0OworICBbU2Ft
ZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIFNWR0VsZW1lbnQ/IGluc3RhbmNlUm9vdDsKKyAg
W1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdFbGVtZW50PyBhbmltYXRlZEluc3Rh
bmNlUm9vdDsKK307CisKK1NWR1VzZUVsZW1lbnQgaW5jbHVkZXMgU1ZHVVJJUmVmZXJlbmNlOwor
CitbRXhwb3NlZD1XaW5kb3ddCitpbnRlcmZhY2UgU1ZHVXNlRWxlbWVudFNoYWRvd1Jvb3QgOiBT
aGFkb3dSb290IHsKK307CisKK2ludGVyZmFjZSBtaXhpbiBTVkdFbGVtZW50SW5zdGFuY2Ugewor
ICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIFNWR0VsZW1lbnQ/IGNvcnJlc3BvbmRp
bmdFbGVtZW50OworICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIFNWR1VzZUVsZW1l
bnQ/IGNvcnJlc3BvbmRpbmdVc2VFbGVtZW50OworfTsKKworW0NvbnN0cnVjdG9yKEFuaW1hdGlv
biBzb3VyY2UsIEFuaW1hdGFibGUgbmV3VGFyZ2V0KSwgRXhwb3NlZD1XaW5kb3ddCitpbnRlcmZh
Y2UgU2hhZG93QW5pbWF0aW9uIDogQW5pbWF0aW9uIHsKKyAgW1NhbWVPYmplY3RdIHJlYWRvbmx5
IGF0dHJpYnV0ZSBBbmltYXRpb24gc291cmNlQW5pbWF0aW9uOworfTsKKworW0V4cG9zZWQ9V2lu
ZG93XQoraW50ZXJmYWNlIFNWR1N3aXRjaEVsZW1lbnQgOiBTVkdHcmFwaGljc0VsZW1lbnQgewor
fTsKKworaW50ZXJmYWNlIG1peGluIEdldFNWR0RvY3VtZW50IHsKKyAgRG9jdW1lbnQgZ2V0U1ZH
RG9jdW1lbnQoKTsKK307CisKK1tFeHBvc2VkPVdpbmRvd10KK2ludGVyZmFjZSBTVkdTdHlsZUVs
ZW1lbnQgOiBTVkdFbGVtZW50IHsKKyAgYXR0cmlidXRlIERPTVN0cmluZyB0eXBlOworICBhdHRy
aWJ1dGUgRE9NU3RyaW5nIG1lZGlhOworICBhdHRyaWJ1dGUgRE9NU3RyaW5nIHRpdGxlOworfTsK
KworU1ZHU3R5bGVFbGVtZW50IGluY2x1ZGVzIExpbmtTdHlsZTsKKworW0V4cG9zZWQ9V2luZG93
XQoraW50ZXJmYWNlIFNWR1RyYW5zZm9ybSB7CisKKyAgLy8gVHJhbnNmb3JtIFR5cGVzCisgIGNv
bnN0IHVuc2lnbmVkIHNob3J0IFNWR19UUkFOU0ZPUk1fVU5LTk9XTiA9IDA7CisgIGNvbnN0IHVu
c2lnbmVkIHNob3J0IFNWR19UUkFOU0ZPUk1fTUFUUklYID0gMTsKKyAgY29uc3QgdW5zaWduZWQg
c2hvcnQgU1ZHX1RSQU5TRk9STV9UUkFOU0xBVEUgPSAyOworICBjb25zdCB1bnNpZ25lZCBzaG9y
dCBTVkdfVFJBTlNGT1JNX1NDQUxFID0gMzsKKyAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX1RS
QU5TRk9STV9ST1RBVEUgPSA0OworICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfVFJBTlNGT1JN
X1NLRVdYID0gNTsKKyAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX1RSQU5TRk9STV9TS0VXWSA9
IDY7CisKKyAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIHNob3J0IHR5cGU7CisgIFtTYW1l
T2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgRE9NTWF0cml4IG1hdHJpeDsKKyAgcmVhZG9ubHkg
YXR0cmlidXRlIGZsb2F0IGFuZ2xlOworCisgIHZvaWQgc2V0TWF0cml4KG9wdGlvbmFsIERPTU1h
dHJpeDJESW5pdCBtYXRyaXgpOworICB2b2lkIHNldFRyYW5zbGF0ZShmbG9hdCB0eCwgZmxvYXQg
dHkpOworICB2b2lkIHNldFNjYWxlKGZsb2F0IHN4LCBmbG9hdCBzeSk7CisgIHZvaWQgc2V0Um90
YXRlKGZsb2F0IGFuZ2xlLCBmbG9hdCBjeCwgZmxvYXQgY3kpOworICB2b2lkIHNldFNrZXdYKGZs
b2F0IGFuZ2xlKTsKKyAgdm9pZCBzZXRTa2V3WShmbG9hdCBhbmdsZSk7Cit9OworCitbRXhwb3Nl
ZD1XaW5kb3ddCitpbnRlcmZhY2UgU1ZHVHJhbnNmb3JtTGlzdCB7CisKKyAgcmVhZG9ubHkgYXR0
cmlidXRlIHVuc2lnbmVkIGxvbmcgbGVuZ3RoOworICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWdu
ZWQgbG9uZyBudW1iZXJPZkl0ZW1zOworCisgIHZvaWQgY2xlYXIoKTsKKyAgU1ZHVHJhbnNmb3Jt
IGluaXRpYWxpemUoU1ZHVHJhbnNmb3JtIG5ld0l0ZW0pOworICBnZXR0ZXIgU1ZHVHJhbnNmb3Jt
IGdldEl0ZW0odW5zaWduZWQgbG9uZyBpbmRleCk7CisgIFNWR1RyYW5zZm9ybSBpbnNlcnRJdGVt
QmVmb3JlKFNWR1RyYW5zZm9ybSBuZXdJdGVtLCB1bnNpZ25lZCBsb25nIGluZGV4KTsKKyAgU1ZH
VHJhbnNmb3JtIHJlcGxhY2VJdGVtKFNWR1RyYW5zZm9ybSBuZXdJdGVtLCB1bnNpZ25lZCBsb25n
IGluZGV4KTsKKyAgU1ZHVHJhbnNmb3JtIHJlbW92ZUl0ZW0odW5zaWduZWQgbG9uZyBpbmRleCk7
CisgIFNWR1RyYW5zZm9ybSBhcHBlbmRJdGVtKFNWR1RyYW5zZm9ybSBuZXdJdGVtKTsKKyAgc2V0
dGVyIHZvaWQgKHVuc2lnbmVkIGxvbmcgaW5kZXgsIFNWR1RyYW5zZm9ybSBuZXdJdGVtKTsKKwor
ICAvLyBBZGRpdGlvbmFsIG1ldGhvZHMgbm90IGNvbW1vbiB0byBvdGhlciBsaXN0IGludGVyZmFj
ZXMuCisgIFNWR1RyYW5zZm9ybSBjcmVhdGVTVkdUcmFuc2Zvcm1Gcm9tTWF0cml4KG9wdGlvbmFs
IERPTU1hdHJpeDJESW5pdCBtYXRyaXgpOworICBTVkdUcmFuc2Zvcm0/IGNvbnNvbGlkYXRlKCk7
Cit9OworCitbRXhwb3NlZD1XaW5kb3ddCitpbnRlcmZhY2UgU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1M
aXN0IHsKKyAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdUcmFuc2Zvcm1MaXN0
IGJhc2VWYWw7CisgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgU1ZHVHJhbnNmb3Jt
TGlzdCBhbmltVmFsOworfTsKKworW0V4cG9zZWQ9V2luZG93XQoraW50ZXJmYWNlIFNWR1ByZXNl
cnZlQXNwZWN0UmF0aW8geworCisgIC8vIEFsaWdubWVudCBUeXBlcworICBjb25zdCB1bnNpZ25l
ZCBzaG9ydCBTVkdfUFJFU0VSVkVBU1BFQ1RSQVRJT19VTktOT1dOID0gMDsKKyAgY29uc3QgdW5z
aWduZWQgc2hvcnQgU1ZHX1BSRVNFUlZFQVNQRUNUUkFUSU9fTk9ORSA9IDE7CisgIGNvbnN0IHVu
c2lnbmVkIHNob3J0IFNWR19QUkVTRVJWRUFTUEVDVFJBVElPX1hNSU5ZTUlOID0gMjsKKyAgY29u
c3QgdW5zaWduZWQgc2hvcnQgU1ZHX1BSRVNFUlZFQVNQRUNUUkFUSU9fWE1JRFlNSU4gPSAzOwor
ICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfUFJFU0VSVkVBU1BFQ1RSQVRJT19YTUFYWU1JTiA9
IDQ7CisgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19QUkVTRVJWRUFTUEVDVFJBVElPX1hNSU5Z
TUlEID0gNTsKKyAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX1BSRVNFUlZFQVNQRUNUUkFUSU9f
WE1JRFlNSUQgPSA2OworICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfUFJFU0VSVkVBU1BFQ1RS
QVRJT19YTUFYWU1JRCA9IDc7CisgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19QUkVTRVJWRUFT
UEVDVFJBVElPX1hNSU5ZTUFYID0gODsKKyAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX1BSRVNF
UlZFQVNQRUNUUkFUSU9fWE1JRFlNQVggPSA5OworICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdf
UFJFU0VSVkVBU1BFQ1RSQVRJT19YTUFYWU1BWCA9IDEwOworCisgIC8vIE1lZXQtb3Itc2xpY2Ug
VHlwZXMKKyAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX01FRVRPUlNMSUNFX1VOS05PV04gPSAw
OworICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfTUVFVE9SU0xJQ0VfTUVFVCA9IDE7CisgIGNv
bnN0IHVuc2lnbmVkIHNob3J0IFNWR19NRUVUT1JTTElDRV9TTElDRSA9IDI7CisKKyAgYXR0cmli
dXRlIHVuc2lnbmVkIHNob3J0IGFsaWduOworICBhdHRyaWJ1dGUgdW5zaWduZWQgc2hvcnQgbWVl
dE9yU2xpY2U7Cit9OworCitbRXhwb3NlZD1XaW5kb3ddCitpbnRlcmZhY2UgU1ZHQW5pbWF0ZWRQ
cmVzZXJ2ZUFzcGVjdFJhdGlvIHsKKyAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBT
VkdQcmVzZXJ2ZUFzcGVjdFJhdGlvIGJhc2VWYWw7CisgIFtTYW1lT2JqZWN0XSByZWFkb25seSBh
dHRyaWJ1dGUgU1ZHUHJlc2VydmVBc3BlY3RSYXRpbyBhbmltVmFsOworfTsKKworW0V4cG9zZWQ9
V2luZG93XQoraW50ZXJmYWNlIFNWR1BhdGhFbGVtZW50IDogU1ZHR2VvbWV0cnlFbGVtZW50IHsK
K307CisKK1tFeHBvc2VkPVdpbmRvd10KK2ludGVyZmFjZSBTVkdSZWN0RWxlbWVudCA6IFNWR0dl
b21ldHJ5RWxlbWVudCB7CisgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5p
bWF0ZWRMZW5ndGggeDsKKyAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmlt
YXRlZExlbmd0aCB5OworICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1h
dGVkTGVuZ3RoIHdpZHRoOworICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIFNWR0Fu
aW1hdGVkTGVuZ3RoIGhlaWdodDsKKyAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBT
VkdBbmltYXRlZExlbmd0aCByeDsKKyAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBT
VkdBbmltYXRlZExlbmd0aCByeTsKK307CisKK1tFeHBvc2VkPVdpbmRvd10KK2ludGVyZmFjZSBT
VkdDaXJjbGVFbGVtZW50IDogU1ZHR2VvbWV0cnlFbGVtZW50IHsKKyAgW1NhbWVPYmplY3RdIHJl
YWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZExlbmd0aCBjeDsKKyAgW1NhbWVPYmplY3RdIHJl
YWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZExlbmd0aCBjeTsKKyAgW1NhbWVPYmplY3RdIHJl
YWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZExlbmd0aCByOworfTsKKworW0V4cG9zZWQ9V2lu
ZG93XQoraW50ZXJmYWNlIFNWR0VsbGlwc2VFbGVtZW50IDogU1ZHR2VvbWV0cnlFbGVtZW50IHsK
KyAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZExlbmd0aCBjeDsK
KyAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZExlbmd0aCBjeTsK
KyAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZExlbmd0aCByeDsK
KyAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZExlbmd0aCByeTsK
K307CisKK1tFeHBvc2VkPVdpbmRvd10KK2ludGVyZmFjZSBTVkdMaW5lRWxlbWVudCA6IFNWR0dl
b21ldHJ5RWxlbWVudCB7CisgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5p
bWF0ZWRMZW5ndGggeDE7CisgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5p
bWF0ZWRMZW5ndGggeTE7CisgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5p
bWF0ZWRMZW5ndGggeDI7CisgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5p
bWF0ZWRMZW5ndGggeTI7Cit9OworCitpbnRlcmZhY2UgbWl4aW4gU1ZHQW5pbWF0ZWRQb2ludHMg
eworICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIFNWR1BvaW50TGlzdCBwb2ludHM7
CisgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgU1ZHUG9pbnRMaXN0IGFuaW1hdGVk
UG9pbnRzOworfTsKKworW0V4cG9zZWQ9V2luZG93XQoraW50ZXJmYWNlIFNWR1BvaW50TGlzdCB7
CisKKyAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbGVuZ3RoOworICByZWFkb25s
eSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBudW1iZXJPZkl0ZW1zOworCisgIHZvaWQgY2xlYXIo
KTsKKyAgRE9NUG9pbnQgaW5pdGlhbGl6ZShET01Qb2ludCBuZXdJdGVtKTsKKyAgZ2V0dGVyIERP
TVBvaW50IGdldEl0ZW0odW5zaWduZWQgbG9uZyBpbmRleCk7CisgIERPTVBvaW50IGluc2VydEl0
ZW1CZWZvcmUoRE9NUG9pbnQgbmV3SXRlbSwgdW5zaWduZWQgbG9uZyBpbmRleCk7CisgIERPTVBv
aW50IHJlcGxhY2VJdGVtKERPTVBvaW50IG5ld0l0ZW0sIHVuc2lnbmVkIGxvbmcgaW5kZXgpOwor
ICBET01Qb2ludCByZW1vdmVJdGVtKHVuc2lnbmVkIGxvbmcgaW5kZXgpOworICBET01Qb2ludCBh
cHBlbmRJdGVtKERPTVBvaW50IG5ld0l0ZW0pOworICBzZXR0ZXIgdm9pZCAodW5zaWduZWQgbG9u
ZyBpbmRleCwgRE9NUG9pbnQgbmV3SXRlbSk7Cit9OworCitbRXhwb3NlZD1XaW5kb3ddCitpbnRl
cmZhY2UgU1ZHUG9seWxpbmVFbGVtZW50IDogU1ZHR2VvbWV0cnlFbGVtZW50IHsKK307CisKK1NW
R1BvbHlsaW5lRWxlbWVudCBpbmNsdWRlcyBTVkdBbmltYXRlZFBvaW50czsKKworW0V4cG9zZWQ9
V2luZG93XQoraW50ZXJmYWNlIFNWR1BvbHlnb25FbGVtZW50IDogU1ZHR2VvbWV0cnlFbGVtZW50
IHsKK307CisKK1NWR1BvbHlnb25FbGVtZW50IGluY2x1ZGVzIFNWR0FuaW1hdGVkUG9pbnRzOwor
CitbRXhwb3NlZD1XaW5kb3ddCitpbnRlcmZhY2UgU1ZHVGV4dENvbnRlbnRFbGVtZW50IDogU1ZH
R3JhcGhpY3NFbGVtZW50IHsKKworICAvLyBsZW5ndGhBZGp1c3QgVHlwZXMKKyAgY29uc3QgdW5z
aWduZWQgc2hvcnQgTEVOR1RIQURKVVNUX1VOS05PV04gPSAwOworICBjb25zdCB1bnNpZ25lZCBz
aG9ydCBMRU5HVEhBREpVU1RfU1BBQ0lORyA9IDE7CisgIGNvbnN0IHVuc2lnbmVkIHNob3J0IExF
TkdUSEFESlVTVF9TUEFDSU5HQU5ER0xZUEhTID0gMjsKKworICBbU2FtZU9iamVjdF0gcmVhZG9u
bHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTGVuZ3RoIHRleHRMZW5ndGg7CisgIFtTYW1lT2JqZWN0
XSByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbiBsZW5ndGhBZGp1c3Q7
CisKKyAgbG9uZyBnZXROdW1iZXJPZkNoYXJzKCk7CisgIGZsb2F0IGdldENvbXB1dGVkVGV4dExl
bmd0aCgpOworICBmbG9hdCBnZXRTdWJTdHJpbmdMZW5ndGgodW5zaWduZWQgbG9uZyBjaGFybnVt
LCB1bnNpZ25lZCBsb25nIG5jaGFycyk7CisgIERPTVBvaW50IGdldFN0YXJ0UG9zaXRpb25PZkNo
YXIodW5zaWduZWQgbG9uZyBjaGFybnVtKTsKKyAgRE9NUG9pbnQgZ2V0RW5kUG9zaXRpb25PZkNo
YXIodW5zaWduZWQgbG9uZyBjaGFybnVtKTsKKyAgRE9NUmVjdCBnZXRFeHRlbnRPZkNoYXIodW5z
aWduZWQgbG9uZyBjaGFybnVtKTsKKyAgZmxvYXQgZ2V0Um90YXRpb25PZkNoYXIodW5zaWduZWQg
bG9uZyBjaGFybnVtKTsKKyAgbG9uZyBnZXRDaGFyTnVtQXRQb3NpdGlvbihvcHRpb25hbCBET01Q
b2ludEluaXQgcG9pbnQpOworICB2b2lkIHNlbGVjdFN1YlN0cmluZyh1bnNpZ25lZCBsb25nIGNo
YXJudW0sIHVuc2lnbmVkIGxvbmcgbmNoYXJzKTsKK307CisKK1tFeHBvc2VkPVdpbmRvd10KK2lu
dGVyZmFjZSBTVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50IDogU1ZHVGV4dENvbnRlbnRFbGVtZW50
IHsKKyAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZExlbmd0aExp
c3QgeDsKKyAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZExlbmd0
aExpc3QgeTsKKyAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZExl
bmd0aExpc3QgZHg7CisgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0
ZWRMZW5ndGhMaXN0IGR5OworICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIFNWR0Fu
aW1hdGVkTnVtYmVyTGlzdCByb3RhdGU7Cit9OworCitbRXhwb3NlZD1XaW5kb3ddCitpbnRlcmZh
Y2UgU1ZHVGV4dEVsZW1lbnQgOiBTVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50IHsKK307CisKK1tF
eHBvc2VkPVdpbmRvd10KK2ludGVyZmFjZSBTVkdUU3BhbkVsZW1lbnQgOiBTVkdUZXh0UG9zaXRp
b25pbmdFbGVtZW50IHsKK307CisKK1tFeHBvc2VkPVdpbmRvd10KK2ludGVyZmFjZSBTVkdUZXh0
UGF0aEVsZW1lbnQgOiBTVkdUZXh0Q29udGVudEVsZW1lbnQgeworCisgIC8vIHRleHRQYXRoIE1l
dGhvZCBUeXBlcworICBjb25zdCB1bnNpZ25lZCBzaG9ydCBURVhUUEFUSF9NRVRIT0RUWVBFX1VO
S05PV04gPSAwOworICBjb25zdCB1bnNpZ25lZCBzaG9ydCBURVhUUEFUSF9NRVRIT0RUWVBFX0FM
SUdOID0gMTsKKyAgY29uc3QgdW5zaWduZWQgc2hvcnQgVEVYVFBBVEhfTUVUSE9EVFlQRV9TVFJF
VENIID0gMjsKKworICAvLyB0ZXh0UGF0aCBTcGFjaW5nIFR5cGVzCisgIGNvbnN0IHVuc2lnbmVk
IHNob3J0IFRFWFRQQVRIX1NQQUNJTkdUWVBFX1VOS05PV04gPSAwOworICBjb25zdCB1bnNpZ25l
ZCBzaG9ydCBURVhUUEFUSF9TUEFDSU5HVFlQRV9BVVRPID0gMTsKKyAgY29uc3QgdW5zaWduZWQg
c2hvcnQgVEVYVFBBVEhfU1BBQ0lOR1RZUEVfRVhBQ1QgPSAyOworCisgIFtTYW1lT2JqZWN0XSBy
ZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRMZW5ndGggc3RhcnRPZmZzZXQ7CisgIFtTYW1l
T2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbiBtZXRob2Q7
CisgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlv
biBzcGFjaW5nOworfTsKKworU1ZHVGV4dFBhdGhFbGVtZW50IGluY2x1ZGVzIFNWR1VSSVJlZmVy
ZW5jZTsKKworW0V4cG9zZWQ9V2luZG93XQoraW50ZXJmYWNlIFNWR0ltYWdlRWxlbWVudCA6IFNW
R0dyYXBoaWNzRWxlbWVudCB7CisgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgU1ZH
QW5pbWF0ZWRMZW5ndGggeDsKKyAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdB
bmltYXRlZExlbmd0aCB5OworICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIFNWR0Fu
aW1hdGVkTGVuZ3RoIHdpZHRoOworICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIFNW
R0FuaW1hdGVkTGVuZ3RoIGhlaWdodDsKKyAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0
ZSBTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8gcHJlc2VydmVBc3BlY3RSYXRpbzsKKyAg
YXR0cmlidXRlIERPTVN0cmluZz8gY3Jvc3NPcmlnaW47Cit9OworCitTVkdJbWFnZUVsZW1lbnQg
aW5jbHVkZXMgU1ZHVVJJUmVmZXJlbmNlOworCitbRXhwb3NlZD1XaW5kb3ddCitpbnRlcmZhY2Ug
U1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQgOiBTVkdHcmFwaGljc0VsZW1lbnQgeworICBbU2FtZU9i
amVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTGVuZ3RoIHg7CisgIFtTYW1lT2Jq
ZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRMZW5ndGggeTsKKyAgW1NhbWVPYmpl
Y3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZExlbmd0aCB3aWR0aDsKKyAgW1NhbWVP
YmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZExlbmd0aCBoZWlnaHQ7Cit9Owor
CitbRXhwb3NlZD1XaW5kb3ddCitpbnRlcmZhY2UgU1ZHTWFya2VyRWxlbWVudCA6IFNWR0VsZW1l
bnQgeworCisgIC8vIE1hcmtlciBVbml0IFR5cGVzCisgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNW
R19NQVJLRVJVTklUU19VTktOT1dOID0gMDsKKyAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX01B
UktFUlVOSVRTX1VTRVJTUEFDRU9OVVNFID0gMTsKKyAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZH
X01BUktFUlVOSVRTX1NUUk9LRVdJRFRIID0gMjsKKworICAvLyBNYXJrZXIgT3JpZW50YXRpb24g
VHlwZXMKKyAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX01BUktFUl9PUklFTlRfVU5LTk9XTiA9
IDA7CisgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19NQVJLRVJfT1JJRU5UX0FVVE8gPSAxOwor
ICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfTUFSS0VSX09SSUVOVF9BTkdMRSA9IDI7CisKKyAg
W1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZExlbmd0aCByZWZYOwor
ICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTGVuZ3RoIHJlZlk7
CisgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlv
biBtYXJrZXJVbml0czsKKyAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmlt
YXRlZExlbmd0aCBtYXJrZXJXaWR0aDsKKyAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0
ZSBTVkdBbmltYXRlZExlbmd0aCBtYXJrZXJIZWlnaHQ7CisgIFtTYW1lT2JqZWN0XSByZWFkb25s
eSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbiBvcmllbnRUeXBlOworICBbU2FtZU9i
amVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkQW5nbGUgb3JpZW50QW5nbGU7Cisg
IGF0dHJpYnV0ZSBET01TdHJpbmcgb3JpZW50OworCisgIHZvaWQgc2V0T3JpZW50VG9BdXRvKCk7
CisgIHZvaWQgc2V0T3JpZW50VG9BbmdsZShTVkdBbmdsZSBhbmdsZSk7Cit9OworCitTVkdNYXJr
ZXJFbGVtZW50IGluY2x1ZGVzIFNWR0ZpdFRvVmlld0JveDsKKworW0V4cG9zZWQ9V2luZG93XQor
aW50ZXJmYWNlIFNWR0dyYWRpZW50RWxlbWVudCA6IFNWR0VsZW1lbnQgeworCisgIC8vIFNwcmVh
ZCBNZXRob2QgVHlwZXMKKyAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX1NQUkVBRE1FVEhPRF9V
TktOT1dOID0gMDsKKyAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX1NQUkVBRE1FVEhPRF9QQUQg
PSAxOworICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfU1BSRUFETUVUSE9EX1JFRkxFQ1QgPSAy
OworICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfU1BSRUFETUVUSE9EX1JFUEVBVCA9IDM7CisK
KyAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZEVudW1lcmF0aW9u
IGdyYWRpZW50VW5pdHM7CisgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5p
bWF0ZWRUcmFuc2Zvcm1MaXN0IGdyYWRpZW50VHJhbnNmb3JtOworICBbU2FtZU9iamVjdF0gcmVh
ZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkRW51bWVyYXRpb24gc3ByZWFkTWV0aG9kOworfTsK
KworU1ZHR3JhZGllbnRFbGVtZW50IGluY2x1ZGVzIFNWR1VSSVJlZmVyZW5jZTsKKworW0V4cG9z
ZWQ9V2luZG93XQoraW50ZXJmYWNlIFNWR0xpbmVhckdyYWRpZW50RWxlbWVudCA6IFNWR0dyYWRp
ZW50RWxlbWVudCB7CisgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0
ZWRMZW5ndGggeDE7CisgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0
ZWRMZW5ndGggeTE7CisgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0
ZWRMZW5ndGggeDI7CisgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0
ZWRMZW5ndGggeTI7Cit9OworCitbRXhwb3NlZD1XaW5kb3ddCitpbnRlcmZhY2UgU1ZHUmFkaWFs
R3JhZGllbnRFbGVtZW50IDogU1ZHR3JhZGllbnRFbGVtZW50IHsKKyAgW1NhbWVPYmplY3RdIHJl
YWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZExlbmd0aCBjeDsKKyAgW1NhbWVPYmplY3RdIHJl
YWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZExlbmd0aCBjeTsKKyAgW1NhbWVPYmplY3RdIHJl
YWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZExlbmd0aCByOworICBbU2FtZU9iamVjdF0gcmVh
ZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTGVuZ3RoIGZ4OworICBbU2FtZU9iamVjdF0gcmVh
ZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTGVuZ3RoIGZ5OworICBbU2FtZU9iamVjdF0gcmVh
ZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTGVuZ3RoIGZyOworfTsKKworW0V4cG9zZWQ9V2lu
ZG93XQoraW50ZXJmYWNlIFNWR1N0b3BFbGVtZW50IDogU1ZHRWxlbWVudCB7CisgIFtTYW1lT2Jq
ZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWROdW1iZXIgb2Zmc2V0OworfTsKKwor
W0V4cG9zZWQ9V2luZG93XQoraW50ZXJmYWNlIFNWR1BhdHRlcm5FbGVtZW50IDogU1ZHRWxlbWVu
dCB7CisgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRFbnVtZXJh
dGlvbiBwYXR0ZXJuVW5pdHM7CisgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgU1ZH
QW5pbWF0ZWRFbnVtZXJhdGlvbiBwYXR0ZXJuQ29udGVudFVuaXRzOworICBbU2FtZU9iamVjdF0g
cmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdCBwYXR0ZXJuVHJhbnNm
b3JtOworICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTGVuZ3Ro
IHg7CisgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRMZW5ndGgg
eTsKKyAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZExlbmd0aCB3
aWR0aDsKKyAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZExlbmd0
aCBoZWlnaHQ7Cit9OworCitTVkdQYXR0ZXJuRWxlbWVudCBpbmNsdWRlcyBTVkdGaXRUb1ZpZXdC
b3g7CitTVkdQYXR0ZXJuRWxlbWVudCBpbmNsdWRlcyBTVkdVUklSZWZlcmVuY2U7CisKK1tFeHBv
c2VkPVdpbmRvd10KK2ludGVyZmFjZSBTVkdTY3JpcHRFbGVtZW50IDogU1ZHRWxlbWVudCB7Cisg
IGF0dHJpYnV0ZSBET01TdHJpbmcgdHlwZTsKKyAgYXR0cmlidXRlIERPTVN0cmluZz8gY3Jvc3NP
cmlnaW47Cit9OworCitTVkdTY3JpcHRFbGVtZW50IGluY2x1ZGVzIFNWR1VSSVJlZmVyZW5jZTsK
KworW0V4cG9zZWQ9V2luZG93XQoraW50ZXJmYWNlIFNWR0FFbGVtZW50IDogU1ZHR3JhcGhpY3NF
bGVtZW50IHsKKyAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZFN0
cmluZyB0YXJnZXQ7CisgIGF0dHJpYnV0ZSBET01TdHJpbmcgZG93bmxvYWQ7CisgIGF0dHJpYnV0
ZSBVU1ZTdHJpbmcgcGluZzsKKyAgYXR0cmlidXRlIERPTVN0cmluZyByZWw7CisgIFtTYW1lT2Jq
ZWN0LCBQdXRGb3J3YXJkcz12YWx1ZV0gcmVhZG9ubHkgYXR0cmlidXRlIERPTVRva2VuTGlzdCBy
ZWxMaXN0OworICBhdHRyaWJ1dGUgRE9NU3RyaW5nIGhyZWZsYW5nOworICBhdHRyaWJ1dGUgRE9N
U3RyaW5nIHR5cGU7CisKKyAgYXR0cmlidXRlIERPTVN0cmluZyB0ZXh0OworCisgIGF0dHJpYnV0
ZSBET01TdHJpbmcgcmVmZXJyZXJQb2xpY3k7Cit9OworCitTVkdBRWxlbWVudCBpbmNsdWRlcyBT
VkdVUklSZWZlcmVuY2U7CitTVkdBRWxlbWVudCBpbmNsdWRlcyBIVE1MSHlwZXJsaW5rRWxlbWVu
dFV0aWxzOworCitbRXhwb3NlZD1XaW5kb3ddCitpbnRlcmZhY2UgU1ZHVmlld0VsZW1lbnQgOiBT
VkdFbGVtZW50IHt9OworCitTVkdWaWV3RWxlbWVudCBpbmNsdWRlcyBTVkdGaXRUb1ZpZXdCb3g7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ludGVyZmFjZXMvY3JlZGVudGlhbC1tYW5hZ2VtZW50LmlkbCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW50ZXJmYWNlcy9jcmVkZW50aWFsLW1hbmFnZW1l
bnQuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmRhMWI5ZGZjYTY5MDllYWIxZTNjN2ZkNWUxNmYxMzkxZDY5Zjlk
Y2IKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ludGVyZmFjZXMvY3JlZGVudGlhbC1tYW5hZ2VtZW50LmlkbApAQCAtMCwwICsx
LDEwMyBAQAorLy8gR0VORVJBVEVEIENPTlRFTlQgLSBETyBOT1QgRURJVAorLy8gQ29udGVudCB3
YXMgYXV0b21hdGljYWxseSBleHRyYWN0ZWQgYnkgUmVmZnkgaW50byByZWZmeS1yZXBvcnRzCisv
LyAoaHR0cHM6Ly9naXRodWIuY29tL3RpZG91c3QvcmVmZnktcmVwb3J0cykKKy8vIFNvdXJjZTog
Q3JlZGVudGlhbCBNYW5hZ2VtZW50IExldmVsIDEgKGh0dHBzOi8vdzNjLmdpdGh1Yi5pby93ZWJh
cHBzZWMtY3JlZGVudGlhbC1tYW5hZ2VtZW50LykKKworW0V4cG9zZWQ9V2luZG93LCBTZWN1cmVD
b250ZXh0XQoraW50ZXJmYWNlIENyZWRlbnRpYWwgeworICByZWFkb25seSBhdHRyaWJ1dGUgVVNW
U3RyaW5nIGlkOworICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHR5cGU7Cit9OworCitb
U2VjdXJlQ29udGV4dF0KK2ludGVyZmFjZSBtaXhpbiBDcmVkZW50aWFsVXNlckRhdGEgeworICBy
ZWFkb25seSBhdHRyaWJ1dGUgVVNWU3RyaW5nIG5hbWU7CisgIHJlYWRvbmx5IGF0dHJpYnV0ZSBV
U1ZTdHJpbmcgaWNvblVSTDsKK307CisKK3BhcnRpYWwgaW50ZXJmYWNlIE5hdmlnYXRvciB7Cisg
IFtTZWN1cmVDb250ZXh0LCBTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgQ3JlZGVudGlh
bHNDb250YWluZXIgY3JlZGVudGlhbHM7Cit9OworCitbRXhwb3NlZD1XaW5kb3csIFNlY3VyZUNv
bnRleHRdCitpbnRlcmZhY2UgQ3JlZGVudGlhbHNDb250YWluZXIgeworICBQcm9taXNlPENyZWRl
bnRpYWw/PiBnZXQob3B0aW9uYWwgQ3JlZGVudGlhbFJlcXVlc3RPcHRpb25zIG9wdGlvbnMpOwor
ICBQcm9taXNlPENyZWRlbnRpYWw+IHN0b3JlKENyZWRlbnRpYWwgY3JlZGVudGlhbCk7CisgIFBy
b21pc2U8Q3JlZGVudGlhbD8+IGNyZWF0ZShvcHRpb25hbCBDcmVkZW50aWFsQ3JlYXRpb25PcHRp
b25zIG9wdGlvbnMpOworICBQcm9taXNlPHZvaWQ+IHByZXZlbnRTaWxlbnRBY2Nlc3MoKTsKK307
CisKK2RpY3Rpb25hcnkgQ3JlZGVudGlhbERhdGEgeworICByZXF1aXJlZCBVU1ZTdHJpbmcgaWQ7
Cit9OworCitkaWN0aW9uYXJ5IENyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucyB7CisgIENyZWRlbnRp
YWxNZWRpYXRpb25SZXF1aXJlbWVudCBtZWRpYXRpb24gPSAib3B0aW9uYWwiOworICBBYm9ydFNp
Z25hbCBzaWduYWw7Cit9OworCitlbnVtIENyZWRlbnRpYWxNZWRpYXRpb25SZXF1aXJlbWVudCB7
CisgICJzaWxlbnQiLAorICAib3B0aW9uYWwiLAorICAicmVxdWlyZWQiCit9OworCitkaWN0aW9u
YXJ5IENyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMgeworICBBYm9ydFNpZ25hbCBzaWduYWw7Cit9
OworCitbQ29uc3RydWN0b3IoSFRNTEZvcm1FbGVtZW50IGZvcm0pLAorIENvbnN0cnVjdG9yKFBh
c3N3b3JkQ3JlZGVudGlhbERhdGEgZGF0YSksCisgRXhwb3NlZD1XaW5kb3csCisgU2VjdXJlQ29u
dGV4dF0KK2ludGVyZmFjZSBQYXNzd29yZENyZWRlbnRpYWwgOiBDcmVkZW50aWFsIHsKKyAgcmVh
ZG9ubHkgYXR0cmlidXRlIFVTVlN0cmluZyBwYXNzd29yZDsKK307CitQYXNzd29yZENyZWRlbnRp
YWwgaW5jbHVkZXMgQ3JlZGVudGlhbFVzZXJEYXRhOworCitwYXJ0aWFsIGRpY3Rpb25hcnkgQ3Jl
ZGVudGlhbFJlcXVlc3RPcHRpb25zIHsKKyAgYm9vbGVhbiBwYXNzd29yZCA9IGZhbHNlOworfTsK
KworZGljdGlvbmFyeSBQYXNzd29yZENyZWRlbnRpYWxEYXRhIDogQ3JlZGVudGlhbERhdGEgewor
ICBVU1ZTdHJpbmcgbmFtZTsKKyAgVVNWU3RyaW5nIGljb25VUkw7CisgIHJlcXVpcmVkIFVTVlN0
cmluZyBvcmlnaW47CisgIHJlcXVpcmVkIFVTVlN0cmluZyBwYXNzd29yZDsKK307CisKK3R5cGVk
ZWYgKFBhc3N3b3JkQ3JlZGVudGlhbERhdGEgb3IgSFRNTEZvcm1FbGVtZW50KSBQYXNzd29yZENy
ZWRlbnRpYWxJbml0OworCitwYXJ0aWFsIGRpY3Rpb25hcnkgQ3JlZGVudGlhbENyZWF0aW9uT3B0
aW9ucyB7CisgIFBhc3N3b3JkQ3JlZGVudGlhbEluaXQgcGFzc3dvcmQ7Cit9OworCitbQ29uc3Ry
dWN0b3IoRmVkZXJhdGVkQ3JlZGVudGlhbEluaXQgZGF0YSksCisgRXhwb3NlZD1XaW5kb3csCisg
U2VjdXJlQ29udGV4dF0KK2ludGVyZmFjZSBGZWRlcmF0ZWRDcmVkZW50aWFsIDogQ3JlZGVudGlh
bCB7CisgIHJlYWRvbmx5IGF0dHJpYnV0ZSBVU1ZTdHJpbmcgcHJvdmlkZXI7CisgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBET01TdHJpbmc/IHByb3RvY29sOworfTsKK0ZlZGVyYXRlZENyZWRlbnRpYWwg
aW5jbHVkZXMgQ3JlZGVudGlhbFVzZXJEYXRhOworCitkaWN0aW9uYXJ5IEZlZGVyYXRlZENyZWRl
bnRpYWxSZXF1ZXN0T3B0aW9ucyB7CisgIHNlcXVlbmNlPFVTVlN0cmluZz4gcHJvdmlkZXJzOwor
ICBzZXF1ZW5jZTxET01TdHJpbmc+IHByb3RvY29sczsKK307CisKK3BhcnRpYWwgZGljdGlvbmFy
eSBDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMgeworICBGZWRlcmF0ZWRDcmVkZW50aWFsUmVxdWVz
dE9wdGlvbnMgZmVkZXJhdGVkOworfTsKKworZGljdGlvbmFyeSBGZWRlcmF0ZWRDcmVkZW50aWFs
SW5pdCA6IENyZWRlbnRpYWxEYXRhIHsKKyAgVVNWU3RyaW5nIG5hbWU7CisgIFVTVlN0cmluZyBp
Y29uVVJMOworICByZXF1aXJlZCBVU1ZTdHJpbmcgb3JpZ2luOworICByZXF1aXJlZCBVU1ZTdHJp
bmcgcHJvdmlkZXI7CisgIERPTVN0cmluZyBwcm90b2NvbDsKK307CisKK3BhcnRpYWwgZGljdGlv
bmFyeSBDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zIHsKKyAgRmVkZXJhdGVkQ3JlZGVudGlhbElu
aXQgZmVkZXJhdGVkOworfTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaW50ZXJmYWNlcy9jc3MtcHJvcGVydGllcy12YWx1ZXMtYXBpLmlk
bCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW50ZXJmYWNl
cy9jc3MtcHJvcGVydGllcy12YWx1ZXMtYXBpLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kOGY1NGIxZTE1YmMw
MjBlZjEwMWFiNTM2MjZlZWU2OTg1YzYzZGNiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbnRlcmZhY2VzL2Nzcy1wcm9wZXJ0
aWVzLXZhbHVlcy1hcGkuaWRsCkBAIC0wLDAgKzEsMjMgQEAKKy8vIEdFTkVSQVRFRCBDT05URU5U
IC0gRE8gTk9UIEVESVQKKy8vIENvbnRlbnQgd2FzIGF1dG9tYXRpY2FsbHkgZXh0cmFjdGVkIGJ5
IFJlZmZ5IGludG8gcmVmZnktcmVwb3J0cworLy8gKGh0dHBzOi8vZ2l0aHViLmNvbS90aWRvdXN0
L3JlZmZ5LXJlcG9ydHMpCisvLyBTb3VyY2U6IENTUyBQcm9wZXJ0aWVzIGFuZCBWYWx1ZXMgQVBJ
IExldmVsIDEgKGh0dHBzOi8vZHJhZnRzLmNzcy1ob3VkaW5pLm9yZy9jc3MtcHJvcGVydGllcy12
YWx1ZXMtYXBpLTEvKQorCitkaWN0aW9uYXJ5IFByb3BlcnR5RGVmaW5pdGlvbiB7CisgIHJlcXVp
cmVkIERPTVN0cmluZyBuYW1lOworICAgICAgICAgICBET01TdHJpbmcgc3ludGF4ICAgICAgID0g
IioiOworICByZXF1aXJlZCBib29sZWFuICAgaW5oZXJpdHM7CisgICAgICAgICAgIERPTVN0cmlu
ZyBpbml0aWFsVmFsdWU7Cit9OworCitwYXJ0aWFsIG5hbWVzcGFjZSBDU1MgeworICB2b2lkIHJl
Z2lzdGVyUHJvcGVydHkoUHJvcGVydHlEZWZpbml0aW9uIGRlZmluaXRpb24pOworfTsKKworW0V4
cG9zZWQ9V2luZG93XQoraW50ZXJmYWNlIENTU1Byb3BlcnR5UnVsZSA6IENTU1J1bGUgeworICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBDU1NPTVN0cmluZyBuYW1lOworICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBDU1NPTVN0cmluZyBzeW50YXg7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4g
aW5oZXJpdHM7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIENTU09NU3RyaW5nPyBpbml0aWFsVmFs
dWU7Cit9OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9pbnRlcmZhY2VzL2Nzcy1wc2V1ZG8uaWRsIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbnRlcmZhY2VzL2Nzcy1wc2V1ZG8uaWRsCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjJiNTU3ZTY1MzE2Mzg2M2ZlZmZhMDVkM2Y0YTRlOTYxMTQyYWE5NDQKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ludGVy
ZmFjZXMvY3NzLXBzZXVkby5pZGwKQEAgLTAsMCArMSwxNCBAQAorLy8gR0VORVJBVEVEIENPTlRF
TlQgLSBETyBOT1QgRURJVAorLy8gQ29udGVudCB3YXMgYXV0b21hdGljYWxseSBleHRyYWN0ZWQg
YnkgUmVmZnkgaW50byByZWZmeS1yZXBvcnRzCisvLyAoaHR0cHM6Ly9naXRodWIuY29tL3RpZG91
c3QvcmVmZnktcmVwb3J0cykKKy8vIFNvdXJjZTogQ1NTIFBzZXVkby1FbGVtZW50cyBNb2R1bGUg
TGV2ZWwgNCAoaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzcy1wc2V1ZG8tNC8pCisKK1tFeHBv
c2VkPVdpbmRvd10KK2ludGVyZmFjZSBDU1NQc2V1ZG9FbGVtZW50IDogRXZlbnRUYXJnZXQgewor
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBDU1NPTVN0cmluZyB0eXBlOworICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBFbGVtZW50IGVsZW1lbnQ7Cit9OworCitwYXJ0aWFsIGludGVyZmFjZSBFbGVtZW50
IHsKKyAgQ1NTUHNldWRvRWxlbWVudD8gcHNldWRvKENTU09NU3RyaW5nIHR5cGUpOworfTsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW50
ZXJmYWNlcy9jc3NvbS12aWV3LmlkbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaW50ZXJmYWNlcy9jc3NvbS12aWV3LmlkbAppbmRleCA0YTcwY2I5OTc5NTk3
YTdkZDUxMDhhZGY0YWJmOWM1ZmEwODEyMzgwLi41ZDMwZWRlMWU0MGRlYmM1NmFiNzFiYTU4YTdk
ZGVjMGJhNWI0MGNmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2ludGVyZmFjZXMvY3Nzb20tdmlldy5pZGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbnRlcmZhY2VzL2Nzc29tLXZpZXcuaWRs
CkBAIC0xLDQgKzEsOSBAQAotZW51bSBTY3JvbGxCZWhhdmlvciB7ICJhdXRvIiwgImluc3RhbnQi
LCAic21vb3RoIiB9OworLy8gR0VORVJBVEVEIENPTlRFTlQgLSBETyBOT1QgRURJVAorLy8gQ29u
dGVudCB3YXMgYXV0b21hdGljYWxseSBleHRyYWN0ZWQgYnkgUmVmZnkgaW50byByZWZmeS1yZXBv
cnRzCisvLyAoaHR0cHM6Ly9naXRodWIuY29tL3RpZG91c3QvcmVmZnktcmVwb3J0cykKKy8vIFNv
dXJjZTogQ1NTT00gVmlldyBNb2R1bGUgKGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3NvbS12
aWV3LykKKworZW51bSBTY3JvbGxCZWhhdmlvciB7ICJhdXRvIiwgInNtb290aCIgfTsKIAogZGlj
dGlvbmFyeSBTY3JvbGxPcHRpb25zIHsKICAgICBTY3JvbGxCZWhhdmlvciBiZWhhdmlvciA9ICJh
dXRvIjsKQEAgLTI3LDE2ICszMiwxOCBAQCBwYXJ0aWFsIGludGVyZmFjZSBXaW5kb3cgewogICAg
IFtSZXBsYWNlYWJsZV0gcmVhZG9ubHkgYXR0cmlidXRlIGRvdWJsZSBwYWdlWE9mZnNldDsKICAg
ICBbUmVwbGFjZWFibGVdIHJlYWRvbmx5IGF0dHJpYnV0ZSBkb3VibGUgc2Nyb2xsWTsKICAgICBb
UmVwbGFjZWFibGVdIHJlYWRvbmx5IGF0dHJpYnV0ZSBkb3VibGUgcGFnZVlPZmZzZXQ7Ci0gICAg
dm9pZCBzY3JvbGwob3B0aW9uYWwgU2Nyb2xsVG9PcHRpb25zIG9wdGlvbnMpOworICAgIHZvaWQg
c2Nyb2xsKG9wdGlvbmFsIFNjcm9sbFRvT3B0aW9ucyBvcHRpb25zID0ge30pOwogICAgIHZvaWQg
c2Nyb2xsKHVucmVzdHJpY3RlZCBkb3VibGUgeCwgdW5yZXN0cmljdGVkIGRvdWJsZSB5KTsKLSAg
ICB2b2lkIHNjcm9sbFRvKG9wdGlvbmFsIFNjcm9sbFRvT3B0aW9ucyBvcHRpb25zKTsKKyAgICB2
b2lkIHNjcm9sbFRvKG9wdGlvbmFsIFNjcm9sbFRvT3B0aW9ucyBvcHRpb25zID0ge30pOwogICAg
IHZvaWQgc2Nyb2xsVG8odW5yZXN0cmljdGVkIGRvdWJsZSB4LCB1bnJlc3RyaWN0ZWQgZG91Ymxl
IHkpOwotICAgIHZvaWQgc2Nyb2xsQnkob3B0aW9uYWwgU2Nyb2xsVG9PcHRpb25zIG9wdGlvbnMp
OworICAgIHZvaWQgc2Nyb2xsQnkob3B0aW9uYWwgU2Nyb2xsVG9PcHRpb25zIG9wdGlvbnMgPSB7
fSk7CiAgICAgdm9pZCBzY3JvbGxCeSh1bnJlc3RyaWN0ZWQgZG91YmxlIHgsIHVucmVzdHJpY3Rl
ZCBkb3VibGUgeSk7CiAKICAgICAvLyBjbGllbnQKICAgICBbUmVwbGFjZWFibGVdIHJlYWRvbmx5
IGF0dHJpYnV0ZSBsb25nIHNjcmVlblg7CisgICAgW1JlcGxhY2VhYmxlXSByZWFkb25seSBhdHRy
aWJ1dGUgbG9uZyBzY3JlZW5MZWZ0OwogICAgIFtSZXBsYWNlYWJsZV0gcmVhZG9ubHkgYXR0cmli
dXRlIGxvbmcgc2NyZWVuWTsKKyAgICBbUmVwbGFjZWFibGVdIHJlYWRvbmx5IGF0dHJpYnV0ZSBs
b25nIHNjcmVlblRvcDsKICAgICBbUmVwbGFjZWFibGVdIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25n
IG91dGVyV2lkdGg7CiAgICAgW1JlcGxhY2VhYmxlXSByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyBv
dXRlckhlaWdodDsKICAgICBbUmVwbGFjZWFibGVdIHJlYWRvbmx5IGF0dHJpYnV0ZSBkb3VibGUg
ZGV2aWNlUGl4ZWxSYXRpbzsKQEAgLTUyLDcgKzU5LDcgQEAgaW50ZXJmYWNlIE1lZGlhUXVlcnlM
aXN0IDogRXZlbnRUYXJnZXQgewogfTsKIAogW0V4cG9zZWQ9V2luZG93LAotIENvbnN0cnVjdG9y
KENTU09NU3RyaW5nIHR5cGUsIG9wdGlvbmFsIE1lZGlhUXVlcnlMaXN0RXZlbnRJbml0IGV2ZW50
SW5pdERpY3QpXQorIENvbnN0cnVjdG9yKENTU09NU3RyaW5nIHR5cGUsIG9wdGlvbmFsIE1lZGlh
UXVlcnlMaXN0RXZlbnRJbml0IGV2ZW50SW5pdERpY3QgPSB7fSldCiBpbnRlcmZhY2UgTWVkaWFR
dWVyeUxpc3RFdmVudCA6IEV2ZW50IHsKICAgcmVhZG9ubHkgYXR0cmlidXRlIENTU09NU3RyaW5n
IG1lZGlhOwogICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBtYXRjaGVzOwpAQCAtOTYsMTIg
KzEwMywxMiBAQCBkaWN0aW9uYXJ5IFNjcm9sbEludG9WaWV3T3B0aW9ucyA6IFNjcm9sbE9wdGlv
bnMgewogcGFydGlhbCBpbnRlcmZhY2UgRWxlbWVudCB7CiAgIERPTVJlY3RMaXN0IGdldENsaWVu
dFJlY3RzKCk7CiAgIFtOZXdPYmplY3RdIERPTVJlY3QgZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7
Ci0gIHZvaWQgc2Nyb2xsSW50b1ZpZXcob3B0aW9uYWwgKGJvb2xlYW4gb3IgU2Nyb2xsSW50b1Zp
ZXdPcHRpb25zKSBhcmcpOwotICB2b2lkIHNjcm9sbChvcHRpb25hbCBTY3JvbGxUb09wdGlvbnMg
b3B0aW9ucyk7CisgIHZvaWQgc2Nyb2xsSW50b1ZpZXcob3B0aW9uYWwgKGJvb2xlYW4gb3IgU2Ny
b2xsSW50b1ZpZXdPcHRpb25zKSBhcmcgPSB7fSk7CisgIHZvaWQgc2Nyb2xsKG9wdGlvbmFsIFNj
cm9sbFRvT3B0aW9ucyBvcHRpb25zID0ge30pOwogICB2b2lkIHNjcm9sbCh1bnJlc3RyaWN0ZWQg
ZG91YmxlIHgsIHVucmVzdHJpY3RlZCBkb3VibGUgeSk7Ci0gIHZvaWQgc2Nyb2xsVG8ob3B0aW9u
YWwgU2Nyb2xsVG9PcHRpb25zIG9wdGlvbnMpOworICB2b2lkIHNjcm9sbFRvKG9wdGlvbmFsIFNj
cm9sbFRvT3B0aW9ucyBvcHRpb25zID0ge30pOwogICB2b2lkIHNjcm9sbFRvKHVucmVzdHJpY3Rl
ZCBkb3VibGUgeCwgdW5yZXN0cmljdGVkIGRvdWJsZSB5KTsKLSAgdm9pZCBzY3JvbGxCeShvcHRp
b25hbCBTY3JvbGxUb09wdGlvbnMgb3B0aW9ucyk7CisgIHZvaWQgc2Nyb2xsQnkob3B0aW9uYWwg
U2Nyb2xsVG9PcHRpb25zIG9wdGlvbnMgPSB7fSk7CiAgIHZvaWQgc2Nyb2xsQnkodW5yZXN0cmlj
dGVkIGRvdWJsZSB4LCB1bnJlc3RyaWN0ZWQgZG91YmxlIHkpOwogICBhdHRyaWJ1dGUgdW5yZXN0
cmljdGVkIGRvdWJsZSBzY3JvbGxUb3A7CiAgIGF0dHJpYnV0ZSB1bnJlc3RyaWN0ZWQgZG91Ymxl
IHNjcm9sbExlZnQ7CkBAIC0xMzEsNyArMTM4LDYgQEAgcGFydGlhbCBpbnRlcmZhY2UgUmFuZ2Ug
ewogICBbTmV3T2JqZWN0XSBET01SZWN0IGdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwogfTsKIAot
LyogVE9ETyBUaGlzIGlzIGNvbW1lbnRlZCBvdXQgYmVjYXVzZTogIlBhcnRpYWwgaW50ZXJmYWNl
IE1vdXNlRXZlbnQgd2l0aCBubyBvcmlnaW5hbCBpbnRlcmZhY2UiCiBwYXJ0aWFsIGludGVyZmFj
ZSBNb3VzZUV2ZW50IHsKICAgcmVhZG9ubHkgYXR0cmlidXRlIGRvdWJsZSBzY3JlZW5YOwogICBy
ZWFkb25seSBhdHRyaWJ1dGUgZG91YmxlIHNjcmVlblk7CkBAIC0xNTEsNyArMTU3LDYgQEAgcGFy
dGlhbCBkaWN0aW9uYXJ5IE1vdXNlRXZlbnRJbml0IHsKICAgZG91YmxlIGNsaWVudFggPSAwLjA7
CiAgIGRvdWJsZSBjbGllbnRZID0gMC4wOwogfTsKLSovCiAKIGVudW0gQ1NTQm94VHlwZSB7ICJt
YXJnaW4iLCAiYm9yZGVyIiwgInBhZGRpbmciLCAiY29udGVudCIgfTsKIGRpY3Rpb25hcnkgQm94
UXVhZE9wdGlvbnMgewpAQCAtMTY0LDIwICsxNjksMTYgQEAgZGljdGlvbmFyeSBDb252ZXJ0Q29v
cmRpbmF0ZU9wdGlvbnMgewogICBDU1NCb3hUeXBlIHRvQm94ID0gImJvcmRlciI7CiB9OwogCi1b
RXhwb3NlZD1XaW5kb3csCi0gTm9JbnRlcmZhY2VPYmplY3RdCi1pbnRlcmZhY2UgR2VvbWV0cnlV
dGlscyB7Ci0gIHNlcXVlbmNlPERPTVF1YWQ+IGdldEJveFF1YWRzKG9wdGlvbmFsIEJveFF1YWRP
cHRpb25zIG9wdGlvbnMpOwotICBET01RdWFkIGNvbnZlcnRRdWFkRnJvbU5vZGUoRE9NUXVhZElu
aXQgcXVhZCwgR2VvbWV0cnlOb2RlIGZyb20sIG9wdGlvbmFsIENvbnZlcnRDb29yZGluYXRlT3B0
aW9ucyBvcHRpb25zKTsKLSAgRE9NUXVhZCBjb252ZXJ0UmVjdEZyb21Ob2RlKERPTVJlY3RSZWFk
T25seSByZWN0LCBHZW9tZXRyeU5vZGUgZnJvbSwgb3B0aW9uYWwgQ29udmVydENvb3JkaW5hdGVP
cHRpb25zIG9wdGlvbnMpOwotICBET01Qb2ludCBjb252ZXJ0UG9pbnRGcm9tTm9kZShET01Qb2lu
dEluaXQgcG9pbnQsIEdlb21ldHJ5Tm9kZSBmcm9tLCBvcHRpb25hbCBDb252ZXJ0Q29vcmRpbmF0
ZU9wdGlvbnMgb3B0aW9ucyk7IC8vIFhYWCB6LHcgdHVybnMgaW50byAwCi19OwotCi1UZXh0IGlt
cGxlbWVudHMgR2VvbWV0cnlVdGlsczsgLy8gbGlrZSBSYW5nZQotRWxlbWVudCBpbXBsZW1lbnRz
IEdlb21ldHJ5VXRpbHM7Ci0vKiBUT0RPIENvbW1lbnRlZCBvdXQgYmVjYXVzZTogIkNTU1BzZXVk
b0VsZW1lbnQgaW1wbGVtZW50cyBHZW9tZXRyeVV0aWxzLCBidXQgQ1NTUHNldWRvRWxlbWVudCBp
cyB1bmRlZmluZWQuIgotQ1NTUHNldWRvRWxlbWVudCBpbXBsZW1lbnRzIEdlb21ldHJ5VXRpbHM7
Ci0qLwotRG9jdW1lbnQgaW1wbGVtZW50cyBHZW9tZXRyeVV0aWxzOworaW50ZXJmYWNlIG1peGlu
IEdlb21ldHJ5VXRpbHMgeworICBzZXF1ZW5jZTxET01RdWFkPiBnZXRCb3hRdWFkcyhvcHRpb25h
bCBCb3hRdWFkT3B0aW9ucyBvcHRpb25zID0ge30pOworICBET01RdWFkIGNvbnZlcnRRdWFkRnJv
bU5vZGUoRE9NUXVhZEluaXQgcXVhZCwgR2VvbWV0cnlOb2RlIGZyb20sIG9wdGlvbmFsIENvbnZl
cnRDb29yZGluYXRlT3B0aW9ucyBvcHRpb25zID0ge30pOworICBET01RdWFkIGNvbnZlcnRSZWN0
RnJvbU5vZGUoRE9NUmVjdFJlYWRPbmx5IHJlY3QsIEdlb21ldHJ5Tm9kZSBmcm9tLCBvcHRpb25h
bCBDb252ZXJ0Q29vcmRpbmF0ZU9wdGlvbnMgb3B0aW9ucyA9IHt9KTsKKyAgRE9NUG9pbnQgY29u
dmVydFBvaW50RnJvbU5vZGUoRE9NUG9pbnRJbml0IHBvaW50LCBHZW9tZXRyeU5vZGUgZnJvbSwg
b3B0aW9uYWwgQ29udmVydENvb3JkaW5hdGVPcHRpb25zIG9wdGlvbnMgPSB7fSk7IC8vIFhYWCB6
LHcgdHVybnMgaW50byAwCit9OworCitUZXh0IGluY2x1ZGVzIEdlb21ldHJ5VXRpbHM7IC8vIGxp
a2UgUmFuZ2UKK0VsZW1lbnQgaW5jbHVkZXMgR2VvbWV0cnlVdGlsczsKK0NTU1BzZXVkb0VsZW1l
bnQgaW5jbHVkZXMgR2VvbWV0cnlVdGlsczsKK0RvY3VtZW50IGluY2x1ZGVzIEdlb21ldHJ5VXRp
bHM7CiAKIHR5cGVkZWYgKFRleHQgb3IgRWxlbWVudCBvciBDU1NQc2V1ZG9FbGVtZW50IG9yIERv
Y3VtZW50KSBHZW9tZXRyeU5vZGU7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ludGVyZmFjZXMvY3Nzb20uaWRsIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbnRlcmZhY2VzL2Nzc29tLmlkbAppbmRl
eCBiMzcyZWQ2YjJiNWMwMTQ3MDkyZGE3M2FhYmYxOGIxZjk5Y2FhNDYyLi5kYzliNzhmZGE2MTgw
ZGJhNmI3OTU4YzM0MjlhNzdlMGZiNTA0OGIyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ludGVyZmFjZXMvY3Nzb20uaWRsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW50ZXJmYWNlcy9jc3Nv
bS5pZGwKQEAgLTEsNyArMSwxOCBAQAotdHlwZWRlZiBVU1ZTdHJpbmcgQ1NTT01TdHJpbmc7Cisv
LyBHRU5FUkFURUQgUFJFQU1CTEUgLSBETyBOT1QgRURJVAorLy8gVGhpcyBwcmVhbWJsZSB3YXMg
YWRkZWQgYnkgcmVmZnktcmVwb3J0cyBmb3Igd2ViLXBsYXRmb3JtLXRlc3RzLgorLy8gQ1NTT01T
dHJpbmcgaXMgYW4gaW1wbGVtZW50YXRpb24tZGVmaW5lZCB0eXBlIG9mIGVpdGhlciBET01TdHJp
bmcgb3IKKy8vIFVTVlN0cmluZyBpbiBDU1NPTTogaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nz
c29tLyNjc3NvbXN0cmluZy10eXBlCisvLyBGb3Igd2ViLXBsYXRmb3JtLXRlc3RzLCB1c2UgRE9N
U3RyaW5nIGJlY2F1c2UgVVNWU3RyaW5nIGhhcyBhZGRpdGlvbmFsCisvLyByZXF1aXJlbWVudHMg
aW4gdHlwZSBjb252ZXJzaW9uIGFuZCBjb3VsZCByZXN1bHQgaW4gc3B1cmlvdXMgZmFpbHVyZXMg
Zm9yCisvLyBpbXBsZW1lbnRhdGlvbnMgdGhhdCB1c2UgRE9NU3RyaW5nLgordHlwZWRlZiBET01T
dHJpbmcgQ1NTT01TdHJpbmc7CisKKy8vIEdFTkVSQVRFRCBDT05URU5UIC0gRE8gTk9UIEVESVQK
Ky8vIENvbnRlbnQgd2FzIGF1dG9tYXRpY2FsbHkgZXh0cmFjdGVkIGJ5IFJlZmZ5IGludG8gcmVm
ZnktcmVwb3J0cworLy8gKGh0dHBzOi8vZ2l0aHViLmNvbS90aWRvdXN0L3JlZmZ5LXJlcG9ydHMp
CisvLyBTb3VyY2U6IENTUyBPYmplY3QgTW9kZWwgKENTU09NKSAoaHR0cHM6Ly9kcmFmdHMuY3Nz
d2cub3JnL2Nzc29tLykKIAotW0V4cG9zZWQ9V2luZG93LAotIExlZ2FjeUFycmF5Q2xhc3NdCitb
RXhwb3NlZD1XaW5kb3ddCiBpbnRlcmZhY2UgTWVkaWFMaXN0IHsKICAgc3RyaW5naWZpZXIgYXR0
cmlidXRlIFtUcmVhdE51bGxBcz1FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgbWVkaWFUZXh0Owog
ICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsZW5ndGg7CkBAIC0xNSw3ICsyNiw3
IEBAIGludGVyZmFjZSBTdHlsZVNoZWV0IHsKICAgcmVhZG9ubHkgYXR0cmlidXRlIENTU09NU3Ry
aW5nIHR5cGU7CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBVU1ZTdHJpbmc/IGhyZWY7CiAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSAoRWxlbWVudCBvciBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24pPyBvd25lck5v
ZGU7Ci0gIHJlYWRvbmx5IGF0dHJpYnV0ZSBTdHlsZVNoZWV0PyBwYXJlbnRTdHlsZVNoZWV0Owor
ICByZWFkb25seSBhdHRyaWJ1dGUgQ1NTU3R5bGVTaGVldD8gcGFyZW50U3R5bGVTaGVldDsKICAg
cmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZz8gdGl0bGU7CiAgIFtTYW1lT2JqZWN0LCBQdXRG
b3J3YXJkcz1tZWRpYVRleHRdIHJlYWRvbmx5IGF0dHJpYnV0ZSBNZWRpYUxpc3QgbWVkaWE7CiAg
IGF0dHJpYnV0ZSBib29sZWFuIGRpc2FibGVkOwpAQCAtMjksMjYgKzQwLDI4IEBAIGludGVyZmFj
ZSBDU1NTdHlsZVNoZWV0IDogU3R5bGVTaGVldCB7CiAgIHZvaWQgZGVsZXRlUnVsZSh1bnNpZ25l
ZCBsb25nIGluZGV4KTsKIH07CiAKLVtFeHBvc2VkPVdpbmRvdywKLSBMZWdhY3lBcnJheUNsYXNz
XQorcGFydGlhbCBpbnRlcmZhY2UgQ1NTU3R5bGVTaGVldCB7CisgIFtTYW1lT2JqZWN0XSByZWFk
b25seSBhdHRyaWJ1dGUgQ1NTUnVsZUxpc3QgcnVsZXM7CisgIGxvbmcgYWRkUnVsZShvcHRpb25h
bCBET01TdHJpbmcgc2VsZWN0b3IgPSAidW5kZWZpbmVkIiwgb3B0aW9uYWwgRE9NU3RyaW5nIHN0
eWxlID0gInVuZGVmaW5lZCIsIG9wdGlvbmFsIHVuc2lnbmVkIGxvbmcgaW5kZXgpOworICB2b2lk
IHJlbW92ZVJ1bGUob3B0aW9uYWwgdW5zaWduZWQgbG9uZyBpbmRleCA9IDApOworfTsKKworW0V4
cG9zZWQ9V2luZG93XQogaW50ZXJmYWNlIFN0eWxlU2hlZXRMaXN0IHsKLSAgZ2V0dGVyIFN0eWxl
U2hlZXQ/IGl0ZW0odW5zaWduZWQgbG9uZyBpbmRleCk7CisgIGdldHRlciBDU1NTdHlsZVNoZWV0
PyBpdGVtKHVuc2lnbmVkIGxvbmcgaW5kZXgpOwogICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWdu
ZWQgbG9uZyBsZW5ndGg7CiB9OwogCi1wYXJ0aWFsIGludGVyZmFjZSBEb2N1bWVudCB7CitwYXJ0
aWFsIGludGVyZmFjZSBtaXhpbiBEb2N1bWVudE9yU2hhZG93Um9vdCB7CiAgIFtTYW1lT2JqZWN0
XSByZWFkb25seSBhdHRyaWJ1dGUgU3R5bGVTaGVldExpc3Qgc3R5bGVTaGVldHM7CiB9OwogCi1b
RXhwb3NlZD1XaW5kb3csCi0gTm9JbnRlcmZhY2VPYmplY3RdCi1pbnRlcmZhY2UgTGlua1N0eWxl
IHsKLSAgcmVhZG9ubHkgYXR0cmlidXRlIFN0eWxlU2hlZXQ/IHNoZWV0OworaW50ZXJmYWNlIG1p
eGluIExpbmtTdHlsZSB7CisgIHJlYWRvbmx5IGF0dHJpYnV0ZSBDU1NTdHlsZVNoZWV0PyBzaGVl
dDsKIH07CiAKLVByb2Nlc3NpbmdJbnN0cnVjdGlvbiBpbXBsZW1lbnRzIExpbmtTdHlsZTsKLVtF
eHBvc2VkPVdpbmRvdywKLSBMZWdhY3lBcnJheUNsYXNzXQorUHJvY2Vzc2luZ0luc3RydWN0aW9u
IGluY2x1ZGVzIExpbmtTdHlsZTsKK1tFeHBvc2VkPVdpbmRvd10KIGludGVyZmFjZSBDU1NSdWxl
TGlzdCB7CiAgIGdldHRlciBDU1NSdWxlPyBpdGVtKHVuc2lnbmVkIGxvbmcgaW5kZXgpOwogICBy
ZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsZW5ndGg7CkBAIC01NiwxOCArNjksMjAg
QEAgaW50ZXJmYWNlIENTU1J1bGVMaXN0IHsKIAogW0V4cG9zZWQ9V2luZG93XQogaW50ZXJmYWNl
IENTU1J1bGUgeworICBhdHRyaWJ1dGUgQ1NTT01TdHJpbmcgY3NzVGV4dDsKKyAgcmVhZG9ubHkg
YXR0cmlidXRlIENTU1J1bGU/IHBhcmVudFJ1bGU7CisgIHJlYWRvbmx5IGF0dHJpYnV0ZSBDU1NT
dHlsZVNoZWV0PyBwYXJlbnRTdHlsZVNoZWV0OworCisgIC8vIHRoZSBmb2xsb3dpbmcgYXR0cmli
dXRlIGFuZCBjb25zdGFudHMgYXJlIGhpc3RvcmlhbAorICByZWFkb25seSBhdHRyaWJ1dGUgdW5z
aWduZWQgc2hvcnQgdHlwZTsKICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1RZTEVfUlVMRSA9IDE7
Ci0gIGNvbnN0IHVuc2lnbmVkIHNob3J0IENIQVJTRVRfUlVMRSA9IDI7IC8vIGhpc3RvcmljYWwK
KyAgY29uc3QgdW5zaWduZWQgc2hvcnQgQ0hBUlNFVF9SVUxFID0gMjsKICAgY29uc3QgdW5zaWdu
ZWQgc2hvcnQgSU1QT1JUX1JVTEUgPSAzOwogICBjb25zdCB1bnNpZ25lZCBzaG9ydCBNRURJQV9S
VUxFID0gNDsKICAgY29uc3QgdW5zaWduZWQgc2hvcnQgRk9OVF9GQUNFX1JVTEUgPSA1OwogICBj
b25zdCB1bnNpZ25lZCBzaG9ydCBQQUdFX1JVTEUgPSA2OwogICBjb25zdCB1bnNpZ25lZCBzaG9y
dCBNQVJHSU5fUlVMRSA9IDk7CiAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IE5BTUVTUEFDRV9SVUxF
ID0gMTA7Ci0gIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBzaG9ydCB0eXBlOwotICBhdHRy
aWJ1dGUgQ1NTT01TdHJpbmcgY3NzVGV4dDsKLSAgcmVhZG9ubHkgYXR0cmlidXRlIENTU1J1bGU/
IHBhcmVudFJ1bGU7Ci0gIHJlYWRvbmx5IGF0dHJpYnV0ZSBDU1NTdHlsZVNoZWV0PyBwYXJlbnRT
dHlsZVNoZWV0OwogfTsKIAogW0V4cG9zZWQ9V2luZG93XQpAQCAtMTE1LDI5ICsxMzAsMjUgQEAg
aW50ZXJmYWNlIENTU1N0eWxlRGVjbGFyYXRpb24gewogICBnZXR0ZXIgQ1NTT01TdHJpbmcgaXRl
bSh1bnNpZ25lZCBsb25nIGluZGV4KTsKICAgQ1NTT01TdHJpbmcgZ2V0UHJvcGVydHlWYWx1ZShD
U1NPTVN0cmluZyBwcm9wZXJ0eSk7CiAgIENTU09NU3RyaW5nIGdldFByb3BlcnR5UHJpb3JpdHko
Q1NTT01TdHJpbmcgcHJvcGVydHkpOwotICBbQ0VSZWFjdGlvbnNdIHZvaWQgc2V0UHJvcGVydHko
Q1NTT01TdHJpbmcgcHJvcGVydHksIFtUcmVhdE51bGxBcz1FbXB0eVN0cmluZ10gQ1NTT01TdHJp
bmcgdmFsdWUsIFtUcmVhdE51bGxBcz1FbXB0eVN0cmluZ10gb3B0aW9uYWwgQ1NTT01TdHJpbmcg
cHJpb3JpdHkgPSAiIik7Ci0gIFtDRVJlYWN0aW9uc10gdm9pZCBzZXRQcm9wZXJ0eVZhbHVlKENT
U09NU3RyaW5nIHByb3BlcnR5LCBbVHJlYXROdWxsQXM9RW1wdHlTdHJpbmddIENTU09NU3RyaW5n
IHZhbHVlKTsKLSAgW0NFUmVhY3Rpb25zXSB2b2lkIHNldFByb3BlcnR5UHJpb3JpdHkoQ1NTT01T
dHJpbmcgcHJvcGVydHksIFtUcmVhdE51bGxBcz1FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgcHJp
b3JpdHkpOworICBbQ0VSZWFjdGlvbnNdIHZvaWQgc2V0UHJvcGVydHkoQ1NTT01TdHJpbmcgcHJv
cGVydHksIFtUcmVhdE51bGxBcz1FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgdmFsdWUsIG9wdGlv
bmFsIFtUcmVhdE51bGxBcz1FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgcHJpb3JpdHkgPSAiIik7
CiAgIFtDRVJlYWN0aW9uc10gQ1NTT01TdHJpbmcgcmVtb3ZlUHJvcGVydHkoQ1NTT01TdHJpbmcg
cHJvcGVydHkpOwogICByZWFkb25seSBhdHRyaWJ1dGUgQ1NTUnVsZT8gcGFyZW50UnVsZTsKICAg
W0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgW1RyZWF0TnVsbEFzPUVtcHR5U3RyaW5nXSBDU1NPTVN0
cmluZyBjc3NGbG9hdDsKIH07CiAKLVtFeHBvc2VkPVdpbmRvdywKLSBOb0ludGVyZmFjZU9iamVj
dF0KLWludGVyZmFjZSBFbGVtZW50Q1NTSW5saW5lU3R5bGUgeworaW50ZXJmYWNlIG1peGluIEVs
ZW1lbnRDU1NJbmxpbmVTdHlsZSB7CiAgIFtTYW1lT2JqZWN0LCBQdXRGb3J3YXJkcz1jc3NUZXh0
XSByZWFkb25seSBhdHRyaWJ1dGUgQ1NTU3R5bGVEZWNsYXJhdGlvbiBzdHlsZTsKIH07CiAKLUhU
TUxFbGVtZW50IGltcGxlbWVudHMgRWxlbWVudENTU0lubGluZVN0eWxlOworSFRNTEVsZW1lbnQg
aW5jbHVkZXMgRWxlbWVudENTU0lubGluZVN0eWxlOwogCi1TVkdFbGVtZW50IGltcGxlbWVudHMg
RWxlbWVudENTU0lubGluZVN0eWxlOworU1ZHRWxlbWVudCBpbmNsdWRlcyBFbGVtZW50Q1NTSW5s
aW5lU3R5bGU7CiAKIHBhcnRpYWwgaW50ZXJmYWNlIFdpbmRvdyB7CiAgIFtOZXdPYmplY3RdIENT
U1N0eWxlRGVjbGFyYXRpb24gZ2V0Q29tcHV0ZWRTdHlsZShFbGVtZW50IGVsdCwgb3B0aW9uYWwg
Q1NTT01TdHJpbmc/IHBzZXVkb0VsdCk7CiB9OwogCiBbRXhwb3NlZD1XaW5kb3ddCi1pbnRlcmZh
Y2UgQ1NTIHsKLSAgc3RhdGljIENTU09NU3RyaW5nIGVzY2FwZShDU1NPTVN0cmluZyBpZGVudCk7
CituYW1lc3BhY2UgQ1NTIHsKKyAgQ1NTT01TdHJpbmcgZXNjYXBlKENTU09NU3RyaW5nIGlkZW50
KTsKIH07CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ludGVyZmFjZXMvZG9tLmlkbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaW50ZXJmYWNlcy9kb20uaWRsCmluZGV4IDA4N2ZlNGQ2NjFjYmIxMzU1
NTM3MzIzZTA5M2ZhM2IzZDM0Mjk3NjMuLjAzYTAyMDFiMTZmZWQ1Njk0MjljNmNmYzcwOTA2M2Vk
MzE2ODE0MjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvaW50ZXJmYWNlcy9kb20uaWRsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaW50ZXJmYWNlcy9kb20uaWRsCkBAIC0xLDEwICsxLDE2IEBA
Ci1bQ29uc3RydWN0b3IoRE9NU3RyaW5nIHR5cGUsIG9wdGlvbmFsIEV2ZW50SW5pdCBldmVudElu
aXREaWN0KSwKLSBFeHBvc2VkPShXaW5kb3csV29ya2VyKV0KKy8vIEdFTkVSQVRFRCBDT05URU5U
IC0gRE8gTk9UIEVESVQKKy8vIENvbnRlbnQgd2FzIGF1dG9tYXRpY2FsbHkgZXh0cmFjdGVkIGJ5
IFJlZmZ5IGludG8gcmVmZnktcmVwb3J0cworLy8gKGh0dHBzOi8vZ2l0aHViLmNvbS90aWRvdXN0
L3JlZmZ5LXJlcG9ydHMpCisvLyBTb3VyY2U6IERPTSBTdGFuZGFyZCAoaHR0cHM6Ly9kb20uc3Bl
Yy53aGF0d2cub3JnLykKKworW0NvbnN0cnVjdG9yKERPTVN0cmluZyB0eXBlLCBvcHRpb25hbCBF
dmVudEluaXQgZXZlbnRJbml0RGljdCA9IHt9KSwKKyBFeHBvc2VkPShXaW5kb3csV29ya2VyLEF1
ZGlvV29ya2xldCldCiBpbnRlcmZhY2UgRXZlbnQgewogICByZWFkb25seSBhdHRyaWJ1dGUgRE9N
U3RyaW5nIHR5cGU7CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBFdmVudFRhcmdldD8gdGFyZ2V0Owot
ICByZWFkb25seSBhdHRyaWJ1dGUgRXZlbnRUYXJnZXQ/IHNyY0VsZW1lbnQ7CisgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBFdmVudFRhcmdldD8gc3JjRWxlbWVudDsgLy8gaGlzdG9yaWNhbAogICByZWFk
b25seSBhdHRyaWJ1dGUgRXZlbnRUYXJnZXQ/IGN1cnJlbnRUYXJnZXQ7CisgIHNlcXVlbmNlPEV2
ZW50VGFyZ2V0PiBjb21wb3NlZFBhdGgoKTsKIAogICBjb25zdCB1bnNpZ25lZCBzaG9ydCBOT05F
ID0gMDsKICAgY29uc3QgdW5zaWduZWQgc2hvcnQgQ0FQVFVSSU5HX1BIQVNFID0gMTsKQEAgLTEz
LDI3ICsxOSwzMyBAQCBpbnRlcmZhY2UgRXZlbnQgewogICByZWFkb25seSBhdHRyaWJ1dGUgdW5z
aWduZWQgc2hvcnQgZXZlbnRQaGFzZTsKIAogICB2b2lkIHN0b3BQcm9wYWdhdGlvbigpOworICAg
ICAgICAgICBhdHRyaWJ1dGUgYm9vbGVhbiBjYW5jZWxCdWJibGU7IC8vIGhpc3RvcmljYWwgYWxp
YXMgb2YgLnN0b3BQcm9wYWdhdGlvbgogICB2b2lkIHN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigp
OwogCiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIGJ1YmJsZXM7CiAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBib29sZWFuIGNhbmNlbGFibGU7Ci0gICAgICAgICAgIGF0dHJpYnV0ZSBib29sZWFu
IHJldHVyblZhbHVlOworICAgICAgICAgICBhdHRyaWJ1dGUgYm9vbGVhbiByZXR1cm5WYWx1ZTsg
IC8vIGhpc3RvcmljYWwKICAgdm9pZCBwcmV2ZW50RGVmYXVsdCgpOwogICByZWFkb25seSBhdHRy
aWJ1dGUgYm9vbGVhbiBkZWZhdWx0UHJldmVudGVkOworICByZWFkb25seSBhdHRyaWJ1dGUgYm9v
bGVhbiBjb21wb3NlZDsKIAogICBbVW5mb3JnZWFibGVdIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29s
ZWFuIGlzVHJ1c3RlZDsKLSAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVRpbWVTdGFtcCB0aW1lU3Rh
bXA7CisgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01IaWdoUmVzVGltZVN0YW1wIHRpbWVTdGFtcDsK
IAotICB2b2lkIGluaXRFdmVudChET01TdHJpbmcgdHlwZSwgb3B0aW9uYWwgYm9vbGVhbiBidWJi
bGVzID0gZmFsc2UsIG9wdGlvbmFsIGJvb2xlYW4gY2FuY2VsYWJsZSA9IGZhbHNlKTsKKyAgdm9p
ZCBpbml0RXZlbnQoRE9NU3RyaW5nIHR5cGUsIG9wdGlvbmFsIGJvb2xlYW4gYnViYmxlcyA9IGZh
bHNlLCBvcHRpb25hbCBib29sZWFuIGNhbmNlbGFibGUgPSBmYWxzZSk7IC8vIGhpc3RvcmljYWwK
IH07CiAKIGRpY3Rpb25hcnkgRXZlbnRJbml0IHsKICAgYm9vbGVhbiBidWJibGVzID0gZmFsc2U7
CiAgIGJvb2xlYW4gY2FuY2VsYWJsZSA9IGZhbHNlOworICBib29sZWFuIGNvbXBvc2VkID0gZmFs
c2U7CiB9OwogCitwYXJ0aWFsIGludGVyZmFjZSBXaW5kb3cgeworICBbUmVwbGFjZWFibGVdIHJl
YWRvbmx5IGF0dHJpYnV0ZSBhbnkgZXZlbnQ7IC8vIGhpc3RvcmljYWwKK307CiAKLVtDb25zdHJ1
Y3RvcihET01TdHJpbmcgdHlwZSwgb3B0aW9uYWwgQ3VzdG9tRXZlbnRJbml0IGV2ZW50SW5pdERp
Y3QpLAorW0NvbnN0cnVjdG9yKERPTVN0cmluZyB0eXBlLCBvcHRpb25hbCBDdXN0b21FdmVudElu
aXQgZXZlbnRJbml0RGljdCA9IHt9KSwKICBFeHBvc2VkPShXaW5kb3csV29ya2VyKV0KIGludGVy
ZmFjZSBDdXN0b21FdmVudCA6IEV2ZW50IHsKICAgcmVhZG9ubHkgYXR0cmlidXRlIGFueSBkZXRh
aWw7CkBAIC00NSwxMiArNTcsMTEgQEAgZGljdGlvbmFyeSBDdXN0b21FdmVudEluaXQgOiBFdmVu
dEluaXQgewogICBhbnkgZGV0YWlsID0gbnVsbDsKIH07CiAKLQogW0NvbnN0cnVjdG9yLAotIEV4
cG9zZWQ9KFdpbmRvdyxXb3JrZXIpXQorIEV4cG9zZWQ9KFdpbmRvdyxXb3JrZXIsQXVkaW9Xb3Jr
bGV0KV0KIGludGVyZmFjZSBFdmVudFRhcmdldCB7Ci0gIHZvaWQgYWRkRXZlbnRMaXN0ZW5lcihE
T01TdHJpbmcgdHlwZSwgRXZlbnRMaXN0ZW5lcj8gY2FsbGJhY2ssIG9wdGlvbmFsIChFdmVudExp
c3RlbmVyT3B0aW9ucyBvciBib29sZWFuKSBvcHRpb25zKTsKLSAgdm9pZCByZW1vdmVFdmVudExp
c3RlbmVyKERPTVN0cmluZyB0eXBlLCBFdmVudExpc3RlbmVyPyBjYWxsYmFjaywgb3B0aW9uYWwg
KEV2ZW50TGlzdGVuZXJPcHRpb25zIG9yIGJvb2xlYW4pIG9wdGlvbnMpOworICB2b2lkIGFkZEV2
ZW50TGlzdGVuZXIoRE9NU3RyaW5nIHR5cGUsIEV2ZW50TGlzdGVuZXI/IGNhbGxiYWNrLCBvcHRp
b25hbCAoQWRkRXZlbnRMaXN0ZW5lck9wdGlvbnMgb3IgYm9vbGVhbikgb3B0aW9ucyA9IHt9KTsK
KyAgdm9pZCByZW1vdmVFdmVudExpc3RlbmVyKERPTVN0cmluZyB0eXBlLCBFdmVudExpc3RlbmVy
PyBjYWxsYmFjaywgb3B0aW9uYWwgKEV2ZW50TGlzdGVuZXJPcHRpb25zIG9yIGJvb2xlYW4pIG9w
dGlvbnMgPSB7fSk7CiAgIGJvb2xlYW4gZGlzcGF0Y2hFdmVudChFdmVudCBldmVudCk7CiB9Owog
CkBAIC01OSwxMCArNzAsMTMgQEAgY2FsbGJhY2sgaW50ZXJmYWNlIEV2ZW50TGlzdGVuZXIgewog
fTsKIAogZGljdGlvbmFyeSBFdmVudExpc3RlbmVyT3B0aW9ucyB7Ci0gIGJvb2xlYW4gY2FwdHVy
ZTsKLSAgYm9vbGVhbiBwYXNzaXZlOworICBib29sZWFuIGNhcHR1cmUgPSBmYWxzZTsKIH07CiAK
K2RpY3Rpb25hcnkgQWRkRXZlbnRMaXN0ZW5lck9wdGlvbnMgOiBFdmVudExpc3RlbmVyT3B0aW9u
cyB7CisgIGJvb2xlYW4gcGFzc2l2ZSA9IGZhbHNlOworICBib29sZWFuIG9uY2UgPSBmYWxzZTsK
K307CiAKIFtDb25zdHJ1Y3RvciwKICBFeHBvc2VkPShXaW5kb3csV29ya2VyKV0KQEAgLTcxLDM3
ICs4NSwzMSBAQCBpbnRlcmZhY2UgQWJvcnRDb250cm9sbGVyIHsKIAogICB2b2lkIGFib3J0KCk7
CiB9OwotCi0KIFtFeHBvc2VkPShXaW5kb3csV29ya2VyKV0KIGludGVyZmFjZSBBYm9ydFNpZ25h
bCA6IEV2ZW50VGFyZ2V0IHsKICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gYWJvcnRlZDsK
IAogICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9uYWJvcnQ7CiB9OwotCi0KIGludGVyZmFjZSBt
aXhpbiBOb25FbGVtZW50UGFyZW50Tm9kZSB7CiAgIEVsZW1lbnQ/IGdldEVsZW1lbnRCeUlkKERP
TVN0cmluZyBlbGVtZW50SWQpOwogfTsKIERvY3VtZW50IGluY2x1ZGVzIE5vbkVsZW1lbnRQYXJl
bnROb2RlOwogRG9jdW1lbnRGcmFnbWVudCBpbmNsdWRlcyBOb25FbGVtZW50UGFyZW50Tm9kZTsK
IAotCiBpbnRlcmZhY2UgbWl4aW4gRG9jdW1lbnRPclNoYWRvd1Jvb3QgewogfTsKIERvY3VtZW50
IGluY2x1ZGVzIERvY3VtZW50T3JTaGFkb3dSb290OwogU2hhZG93Um9vdCBpbmNsdWRlcyBEb2N1
bWVudE9yU2hhZG93Um9vdDsKIAotCiBpbnRlcmZhY2UgbWl4aW4gUGFyZW50Tm9kZSB7CiAgIFtT
YW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgSFRNTENvbGxlY3Rpb24gY2hpbGRyZW47CiAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBFbGVtZW50PyBmaXJzdEVsZW1lbnRDaGlsZDsKICAgcmVhZG9u
bHkgYXR0cmlidXRlIEVsZW1lbnQ/IGxhc3RFbGVtZW50Q2hpbGQ7CiAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSB1bnNpZ25lZCBsb25nIGNoaWxkRWxlbWVudENvdW50OwogCi0gIFtVbnNjb3BhYmxlXSB2
b2lkIHByZXBlbmQoKE5vZGUgb3IgRE9NU3RyaW5nKS4uLiBub2Rlcyk7Ci0gIFtVbnNjb3BhYmxl
XSB2b2lkIGFwcGVuZCgoTm9kZSBvciBET01TdHJpbmcpLi4uIG5vZGVzKTsKKyAgW0NFUmVhY3Rp
b25zLCBVbnNjb3BhYmxlXSB2b2lkIHByZXBlbmQoKE5vZGUgb3IgRE9NU3RyaW5nKS4uLiBub2Rl
cyk7CisgIFtDRVJlYWN0aW9ucywgVW5zY29wYWJsZV0gdm9pZCBhcHBlbmQoKE5vZGUgb3IgRE9N
U3RyaW5nKS4uLiBub2Rlcyk7CiAKICAgRWxlbWVudD8gcXVlcnlTZWxlY3RvcihET01TdHJpbmcg
c2VsZWN0b3JzKTsKICAgW05ld09iamVjdF0gTm9kZUxpc3QgcXVlcnlTZWxlY3RvckFsbChET01T
dHJpbmcgc2VsZWN0b3JzKTsKQEAgLTExMCw3ICsxMTgsNiBAQCBEb2N1bWVudCBpbmNsdWRlcyBQ
YXJlbnROb2RlOwogRG9jdW1lbnRGcmFnbWVudCBpbmNsdWRlcyBQYXJlbnROb2RlOwogRWxlbWVu
dCBpbmNsdWRlcyBQYXJlbnROb2RlOwogCi0KIGludGVyZmFjZSBtaXhpbiBOb25Eb2N1bWVudFR5
cGVDaGlsZE5vZGUgewogICByZWFkb25seSBhdHRyaWJ1dGUgRWxlbWVudD8gcHJldmlvdXNFbGVt
ZW50U2libGluZzsKICAgcmVhZG9ubHkgYXR0cmlidXRlIEVsZW1lbnQ/IG5leHRFbGVtZW50U2li
bGluZzsKQEAgLTExOCwzMyArMTI1LDI5IEBAIGludGVyZmFjZSBtaXhpbiBOb25Eb2N1bWVudFR5
cGVDaGlsZE5vZGUgewogRWxlbWVudCBpbmNsdWRlcyBOb25Eb2N1bWVudFR5cGVDaGlsZE5vZGU7
CiBDaGFyYWN0ZXJEYXRhIGluY2x1ZGVzIE5vbkRvY3VtZW50VHlwZUNoaWxkTm9kZTsKIAotCiBp
bnRlcmZhY2UgbWl4aW4gQ2hpbGROb2RlIHsKLSAgW1Vuc2NvcGFibGVdIHZvaWQgYmVmb3JlKChO
b2RlIG9yIERPTVN0cmluZykuLi4gbm9kZXMpOwotICBbVW5zY29wYWJsZV0gdm9pZCBhZnRlcigo
Tm9kZSBvciBET01TdHJpbmcpLi4uIG5vZGVzKTsKLSAgW1Vuc2NvcGFibGVdIHZvaWQgcmVwbGFj
ZVdpdGgoKE5vZGUgb3IgRE9NU3RyaW5nKS4uLiBub2Rlcyk7Ci0gIFtVbnNjb3BhYmxlXSB2b2lk
IHJlbW92ZSgpOworICBbQ0VSZWFjdGlvbnMsIFVuc2NvcGFibGVdIHZvaWQgYmVmb3JlKChOb2Rl
IG9yIERPTVN0cmluZykuLi4gbm9kZXMpOworICBbQ0VSZWFjdGlvbnMsIFVuc2NvcGFibGVdIHZv
aWQgYWZ0ZXIoKE5vZGUgb3IgRE9NU3RyaW5nKS4uLiBub2Rlcyk7CisgIFtDRVJlYWN0aW9ucywg
VW5zY29wYWJsZV0gdm9pZCByZXBsYWNlV2l0aCgoTm9kZSBvciBET01TdHJpbmcpLi4uIG5vZGVz
KTsKKyAgW0NFUmVhY3Rpb25zLCBVbnNjb3BhYmxlXSB2b2lkIHJlbW92ZSgpOwogfTsKIERvY3Vt
ZW50VHlwZSBpbmNsdWRlcyBDaGlsZE5vZGU7CiBFbGVtZW50IGluY2x1ZGVzIENoaWxkTm9kZTsK
IENoYXJhY3RlckRhdGEgaW5jbHVkZXMgQ2hpbGROb2RlOwogCi0KIGludGVyZmFjZSBtaXhpbiBT
bG90YWJsZSB7CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBIVE1MU2xvdEVsZW1lbnQ/IGFzc2lnbmVk
U2xvdDsKIH07CiBFbGVtZW50IGluY2x1ZGVzIFNsb3RhYmxlOwogVGV4dCBpbmNsdWRlcyBTbG90
YWJsZTsKIAotCiBbRXhwb3NlZD1XaW5kb3ddCiBpbnRlcmZhY2UgTm9kZUxpc3QgewogICBnZXR0
ZXIgTm9kZT8gaXRlbSh1bnNpZ25lZCBsb25nIGluZGV4KTsKICAgcmVhZG9ubHkgYXR0cmlidXRl
IHVuc2lnbmVkIGxvbmcgbGVuZ3RoOwotLy8gIGl0ZXJhYmxlPE5vZGU+OworICBpdGVyYWJsZTxO
b2RlPjsKIH07CiAKLQogW0V4cG9zZWQ9V2luZG93LCBMZWdhY3lVbmVudW1lcmFibGVOYW1lZFBy
b3BlcnRpZXNdCiBpbnRlcmZhY2UgSFRNTENvbGxlY3Rpb24gewogICByZWFkb25seSBhdHRyaWJ1
dGUgdW5zaWduZWQgbG9uZyBsZW5ndGg7CkBAIC0xNTIsMTAgKzE1NSwxMCBAQCBpbnRlcmZhY2Ug
SFRNTENvbGxlY3Rpb24gewogICBnZXR0ZXIgRWxlbWVudD8gbmFtZWRJdGVtKERPTVN0cmluZyBu
YW1lKTsKIH07CiAKLQotW0NvbnN0cnVjdG9yKE11dGF0aW9uQ2FsbGJhY2sgY2FsbGJhY2spXQor
W0NvbnN0cnVjdG9yKE11dGF0aW9uQ2FsbGJhY2sgY2FsbGJhY2spLAorIEV4cG9zZWQ9V2luZG93
XQogaW50ZXJmYWNlIE11dGF0aW9uT2JzZXJ2ZXIgewotICB2b2lkIG9ic2VydmUoTm9kZSB0YXJn
ZXQsIG9wdGlvbmFsIE11dGF0aW9uT2JzZXJ2ZXJJbml0IG9wdGlvbnMpOworICB2b2lkIG9ic2Vy
dmUoTm9kZSB0YXJnZXQsIG9wdGlvbmFsIE11dGF0aW9uT2JzZXJ2ZXJJbml0IG9wdGlvbnMgPSB7
fSk7CiAgIHZvaWQgZGlzY29ubmVjdCgpOwogICBzZXF1ZW5jZTxNdXRhdGlvblJlY29yZD4gdGFr
ZVJlY29yZHMoKTsKIH07CkBAIC0xNzIsNyArMTc1LDYgQEAgZGljdGlvbmFyeSBNdXRhdGlvbk9i
c2VydmVySW5pdCB7CiAgIHNlcXVlbmNlPERPTVN0cmluZz4gYXR0cmlidXRlRmlsdGVyOwogfTsK
IAotCiBbRXhwb3NlZD1XaW5kb3ddCiBpbnRlcmZhY2UgTXV0YXRpb25SZWNvcmQgewogICByZWFk
b25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHR5cGU7CkBAIC0xODYsMTEgKzE4OCwxMCBAQCBpbnRl
cmZhY2UgTXV0YXRpb25SZWNvcmQgewogICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nPyBv
bGRWYWx1ZTsKIH07CiAKLQogW0V4cG9zZWQ9V2luZG93XQogaW50ZXJmYWNlIE5vZGUgOiBFdmVu
dFRhcmdldCB7CiAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IEVMRU1FTlRfTk9ERSA9IDE7Ci0gIGNv
bnN0IHVuc2lnbmVkIHNob3J0IEFUVFJJQlVURV9OT0RFID0gMjsgLy8gaGlzdG9yaWNhbAorICBj
b25zdCB1bnNpZ25lZCBzaG9ydCBBVFRSSUJVVEVfTk9ERSA9IDI7CiAgIGNvbnN0IHVuc2lnbmVk
IHNob3J0IFRFWFRfTk9ERSA9IDM7CiAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IENEQVRBX1NFQ1RJ
T05fTk9ERSA9IDQ7CiAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IEVOVElUWV9SRUZFUkVOQ0VfTk9E
RSA9IDU7IC8vIGhpc3RvcmljYWwKQEAgLTIwNCwxMSArMjA1LDExIEBAIGludGVyZmFjZSBOb2Rl
IDogRXZlbnRUYXJnZXQgewogICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgc2hvcnQgbm9k
ZVR5cGU7CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgbm9kZU5hbWU7CiAKLSAgcmVh
ZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBiYXNlVVJJOworICByZWFkb25seSBhdHRyaWJ1dGUg
VVNWU3RyaW5nIGJhc2VVUkk7CiAKICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gaXNDb25u
ZWN0ZWQ7CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBEb2N1bWVudD8gb3duZXJEb2N1bWVudDsKLSAg
Tm9kZSBnZXRSb290Tm9kZShvcHRpb25hbCBHZXRSb290Tm9kZU9wdGlvbnMgb3B0aW9ucyk7Cisg
IE5vZGUgZ2V0Um9vdE5vZGUob3B0aW9uYWwgR2V0Um9vdE5vZGVPcHRpb25zIG9wdGlvbnMgPSB7
fSk7CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBOb2RlPyBwYXJlbnROb2RlOwogICByZWFkb25seSBh
dHRyaWJ1dGUgRWxlbWVudD8gcGFyZW50RWxlbWVudDsKICAgYm9vbGVhbiBoYXNDaGlsZE5vZGVz
KCk7CkBAIC0yMTgsMTEgKzIxOSwxMSBAQCBpbnRlcmZhY2UgTm9kZSA6IEV2ZW50VGFyZ2V0IHsK
ICAgcmVhZG9ubHkgYXR0cmlidXRlIE5vZGU/IHByZXZpb3VzU2libGluZzsKICAgcmVhZG9ubHkg
YXR0cmlidXRlIE5vZGU/IG5leHRTaWJsaW5nOwogCi0gICAgICAgICAgIGF0dHJpYnV0ZSBET01T
dHJpbmc/IG5vZGVWYWx1ZTsKLSAgICAgICAgICAgYXR0cmlidXRlIERPTVN0cmluZz8gdGV4dENv
bnRlbnQ7Ci0gIHZvaWQgbm9ybWFsaXplKCk7CisgIFtDRVJlYWN0aW9uc10gYXR0cmlidXRlIERP
TVN0cmluZz8gbm9kZVZhbHVlOworICBbQ0VSZWFjdGlvbnNdIGF0dHJpYnV0ZSBET01TdHJpbmc/
IHRleHRDb250ZW50OworICBbQ0VSZWFjdGlvbnNdIHZvaWQgbm9ybWFsaXplKCk7CiAKLSAgW05l
d09iamVjdF0gTm9kZSBjbG9uZU5vZGUob3B0aW9uYWwgYm9vbGVhbiBkZWVwID0gZmFsc2UpOwor
ICBbQ0VSZWFjdGlvbnMsIE5ld09iamVjdF0gTm9kZSBjbG9uZU5vZGUob3B0aW9uYWwgYm9vbGVh
biBkZWVwID0gZmFsc2UpOwogICBib29sZWFuIGlzRXF1YWxOb2RlKE5vZGU/IG90aGVyTm9kZSk7
CiAgIGJvb2xlYW4gaXNTYW1lTm9kZShOb2RlPyBvdGhlck5vZGUpOyAvLyBoaXN0b3JpY2FsIGFs
aWFzIG9mID09PQogCkBAIC0yMzksMTAgKzI0MCwxMCBAQCBpbnRlcmZhY2UgTm9kZSA6IEV2ZW50
VGFyZ2V0IHsKICAgRE9NU3RyaW5nPyBsb29rdXBOYW1lc3BhY2VVUkkoRE9NU3RyaW5nPyBwcmVm
aXgpOwogICBib29sZWFuIGlzRGVmYXVsdE5hbWVzcGFjZShET01TdHJpbmc/IG5hbWVzcGFjZSk7
CiAKLSAgTm9kZSBpbnNlcnRCZWZvcmUoTm9kZSBub2RlLCBOb2RlPyBjaGlsZCk7Ci0gIE5vZGUg
YXBwZW5kQ2hpbGQoTm9kZSBub2RlKTsKLSAgTm9kZSByZXBsYWNlQ2hpbGQoTm9kZSBub2RlLCBO
b2RlIGNoaWxkKTsKLSAgTm9kZSByZW1vdmVDaGlsZChOb2RlIGNoaWxkKTsKKyAgW0NFUmVhY3Rp
b25zXSBOb2RlIGluc2VydEJlZm9yZShOb2RlIG5vZGUsIE5vZGU/IGNoaWxkKTsKKyAgW0NFUmVh
Y3Rpb25zXSBOb2RlIGFwcGVuZENoaWxkKE5vZGUgbm9kZSk7CisgIFtDRVJlYWN0aW9uc10gTm9k
ZSByZXBsYWNlQ2hpbGQoTm9kZSBub2RlLCBOb2RlIGNoaWxkKTsKKyAgW0NFUmVhY3Rpb25zXSBO
b2RlIHJlbW92ZUNoaWxkKE5vZGUgY2hpbGQpOwogfTsKIAogZGljdGlvbmFyeSBHZXRSb290Tm9k
ZU9wdGlvbnMgewpAQCAtMjUzLDkgKzI1NCw5IEBAIGRpY3Rpb25hcnkgR2V0Um9vdE5vZGVPcHRp
b25zIHsKICBFeHBvc2VkPVdpbmRvd10KIGludGVyZmFjZSBEb2N1bWVudCA6IE5vZGUgewogICBb
U2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIERPTUltcGxlbWVudGF0aW9uIGltcGxlbWVu
dGF0aW9uOwotICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIFVSTDsKLSAgcmVhZG9ubHkg
YXR0cmlidXRlIERPTVN0cmluZyBkb2N1bWVudFVSSTsKLSAgcmVhZG9ubHkgYXR0cmlidXRlIERP
TVN0cmluZyBvcmlnaW47CisgIHJlYWRvbmx5IGF0dHJpYnV0ZSBVU1ZTdHJpbmcgVVJMOworICBy
ZWFkb25seSBhdHRyaWJ1dGUgVVNWU3RyaW5nIGRvY3VtZW50VVJJOworICByZWFkb25seSBhdHRy
aWJ1dGUgVVNWU3RyaW5nIG9yaWdpbjsKICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBj
b21wYXRNb2RlOwogICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGNoYXJhY3RlclNldDsK
ICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBjaGFyc2V0OyAvLyBoaXN0b3JpY2FsIGFs
aWFzIG9mIC5jaGFyYWN0ZXJTZXQKQEAgLTI2OCwxNiArMjY5LDE2IEBAIGludGVyZmFjZSBEb2N1
bWVudCA6IE5vZGUgewogICBIVE1MQ29sbGVjdGlvbiBnZXRFbGVtZW50c0J5VGFnTmFtZU5TKERP
TVN0cmluZz8gbmFtZXNwYWNlLCBET01TdHJpbmcgbG9jYWxOYW1lKTsKICAgSFRNTENvbGxlY3Rp
b24gZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShET01TdHJpbmcgY2xhc3NOYW1lcyk7CiAKLSAgW05l
d09iamVjdF0gRWxlbWVudCBjcmVhdGVFbGVtZW50KERPTVN0cmluZyBsb2NhbE5hbWUsIG9wdGlv
bmFsIChET01TdHJpbmcgb3IgRWxlbWVudENyZWF0aW9uT3B0aW9ucykgb3B0aW9ucyk7Ci0gIFtO
ZXdPYmplY3RdIEVsZW1lbnQgY3JlYXRlRWxlbWVudE5TKERPTVN0cmluZz8gbmFtZXNwYWNlLCBE
T01TdHJpbmcgcXVhbGlmaWVkTmFtZSwgb3B0aW9uYWwgKERPTVN0cmluZyBvciBFbGVtZW50Q3Jl
YXRpb25PcHRpb25zKSBvcHRpb25zKTsKKyAgW0NFUmVhY3Rpb25zLCBOZXdPYmplY3RdIEVsZW1l
bnQgY3JlYXRlRWxlbWVudChET01TdHJpbmcgbG9jYWxOYW1lLCBvcHRpb25hbCAoRE9NU3RyaW5n
IG9yIEVsZW1lbnRDcmVhdGlvbk9wdGlvbnMpIG9wdGlvbnMgPSB7fSk7CisgIFtDRVJlYWN0aW9u
cywgTmV3T2JqZWN0XSBFbGVtZW50IGNyZWF0ZUVsZW1lbnROUyhET01TdHJpbmc/IG5hbWVzcGFj
ZSwgRE9NU3RyaW5nIHF1YWxpZmllZE5hbWUsIG9wdGlvbmFsIChET01TdHJpbmcgb3IgRWxlbWVu
dENyZWF0aW9uT3B0aW9ucykgb3B0aW9ucyA9IHt9KTsKICAgW05ld09iamVjdF0gRG9jdW1lbnRG
cmFnbWVudCBjcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7CiAgIFtOZXdPYmplY3RdIFRleHQgY3Jl
YXRlVGV4dE5vZGUoRE9NU3RyaW5nIGRhdGEpOwogICBbTmV3T2JqZWN0XSBDREFUQVNlY3Rpb24g
Y3JlYXRlQ0RBVEFTZWN0aW9uKERPTVN0cmluZyBkYXRhKTsKICAgW05ld09iamVjdF0gQ29tbWVu
dCBjcmVhdGVDb21tZW50KERPTVN0cmluZyBkYXRhKTsKICAgW05ld09iamVjdF0gUHJvY2Vzc2lu
Z0luc3RydWN0aW9uIGNyZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbihET01TdHJpbmcgdGFyZ2V0
LCBET01TdHJpbmcgZGF0YSk7CiAKLSAgW05ld09iamVjdF0gTm9kZSBpbXBvcnROb2RlKE5vZGUg
bm9kZSwgb3B0aW9uYWwgYm9vbGVhbiBkZWVwID0gZmFsc2UpOwotICBOb2RlIGFkb3B0Tm9kZShO
b2RlIG5vZGUpOworICBbQ0VSZWFjdGlvbnMsIE5ld09iamVjdF0gTm9kZSBpbXBvcnROb2RlKE5v
ZGUgbm9kZSwgb3B0aW9uYWwgYm9vbGVhbiBkZWVwID0gZmFsc2UpOworICBbQ0VSZWFjdGlvbnNd
IE5vZGUgYWRvcHROb2RlKE5vZGUgbm9kZSk7CiAKICAgW05ld09iamVjdF0gQXR0ciBjcmVhdGVB
dHRyaWJ1dGUoRE9NU3RyaW5nIGxvY2FsTmFtZSk7CiAgIFtOZXdPYmplY3RdIEF0dHIgY3JlYXRl
QXR0cmlidXRlTlMoRE9NU3RyaW5nPyBuYW1lc3BhY2UsIERPTVN0cmluZyBxdWFsaWZpZWROYW1l
KTsKQEAgLTI5OCw3ICsyOTksNiBAQCBkaWN0aW9uYXJ5IEVsZW1lbnRDcmVhdGlvbk9wdGlvbnMg
ewogICBET01TdHJpbmcgaXM7CiB9OwogCi0KIFtFeHBvc2VkPVdpbmRvd10KIGludGVyZmFjZSBE
T01JbXBsZW1lbnRhdGlvbiB7CiAgIFtOZXdPYmplY3RdIERvY3VtZW50VHlwZSBjcmVhdGVEb2N1
bWVudFR5cGUoRE9NU3RyaW5nIHF1YWxpZmllZE5hbWUsIERPTVN0cmluZyBwdWJsaWNJZCwgRE9N
U3RyaW5nIHN5c3RlbUlkKTsKQEAgLTMwOCw3ICszMDgsNiBAQCBpbnRlcmZhY2UgRE9NSW1wbGVt
ZW50YXRpb24gewogICBib29sZWFuIGhhc0ZlYXR1cmUoKTsgLy8gdXNlbGVzczsgYWx3YXlzIHJl
dHVybnMgdHJ1ZQogfTsKIAotCiBbRXhwb3NlZD1XaW5kb3ddCiBpbnRlcmZhY2UgRG9jdW1lbnRU
eXBlIDogTm9kZSB7CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgbmFtZTsKQEAgLTMx
NiwxMyArMzE1LDExIEBAIGludGVyZmFjZSBEb2N1bWVudFR5cGUgOiBOb2RlIHsKICAgcmVhZG9u
bHkgYXR0cmlidXRlIERPTVN0cmluZyBzeXN0ZW1JZDsKIH07CiAKLQogW0NvbnN0cnVjdG9yLAog
IEV4cG9zZWQ9V2luZG93XQogaW50ZXJmYWNlIERvY3VtZW50RnJhZ21lbnQgOiBOb2RlIHsKIH07
CiAKLQogW0V4cG9zZWQ9V2luZG93XQogaW50ZXJmYWNlIFNoYWRvd1Jvb3QgOiBEb2N1bWVudEZy
YWdtZW50IHsKICAgcmVhZG9ubHkgYXR0cmlidXRlIFNoYWRvd1Jvb3RNb2RlIG1vZGU7CkBAIC0z
MzEsNyArMzI4LDYgQEAgaW50ZXJmYWNlIFNoYWRvd1Jvb3QgOiBEb2N1bWVudEZyYWdtZW50IHsK
IAogZW51bSBTaGFkb3dSb290TW9kZSB7ICJvcGVuIiwgImNsb3NlZCIgfTsKIAotCiBbRXhwb3Nl
ZD1XaW5kb3ddCiBpbnRlcmZhY2UgRWxlbWVudCA6IE5vZGUgewogICByZWFkb25seSBhdHRyaWJ1
dGUgRE9NU3RyaW5nPyBuYW1lc3BhY2VVUkk7CkBAIC0zMzksMjggKzMzNSwyOSBAQCBpbnRlcmZh
Y2UgRWxlbWVudCA6IE5vZGUgewogICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGxvY2Fs
TmFtZTsKICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyB0YWdOYW1lOwogCi0gICAgICAg
ICAgIGF0dHJpYnV0ZSBET01TdHJpbmcgaWQ7Ci0gICAgICAgICAgIGF0dHJpYnV0ZSBET01TdHJp
bmcgY2xhc3NOYW1lOworICBbQ0VSZWFjdGlvbnNdIGF0dHJpYnV0ZSBET01TdHJpbmcgaWQ7Cisg
IFtDRVJlYWN0aW9uc10gYXR0cmlidXRlIERPTVN0cmluZyBjbGFzc05hbWU7CiAgIFtTYW1lT2Jq
ZWN0LCBQdXRGb3J3YXJkcz12YWx1ZV0gcmVhZG9ubHkgYXR0cmlidXRlIERPTVRva2VuTGlzdCBj
bGFzc0xpc3Q7Ci0gIFtVbnNjb3BhYmxlXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHNsb3Q7CisgIFtD
RVJlYWN0aW9ucywgVW5zY29wYWJsZV0gYXR0cmlidXRlIERPTVN0cmluZyBzbG90OwogCiAgIGJv
b2xlYW4gaGFzQXR0cmlidXRlcygpOwogICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRl
IE5hbWVkTm9kZU1hcCBhdHRyaWJ1dGVzOwogICBzZXF1ZW5jZTxET01TdHJpbmc+IGdldEF0dHJp
YnV0ZU5hbWVzKCk7CiAgIERPTVN0cmluZz8gZ2V0QXR0cmlidXRlKERPTVN0cmluZyBxdWFsaWZp
ZWROYW1lKTsKICAgRE9NU3RyaW5nPyBnZXRBdHRyaWJ1dGVOUyhET01TdHJpbmc/IG5hbWVzcGFj
ZSwgRE9NU3RyaW5nIGxvY2FsTmFtZSk7Ci0gIHZvaWQgc2V0QXR0cmlidXRlKERPTVN0cmluZyBx
dWFsaWZpZWROYW1lLCBET01TdHJpbmcgdmFsdWUpOwotICB2b2lkIHNldEF0dHJpYnV0ZU5TKERP
TVN0cmluZz8gbmFtZXNwYWNlLCBET01TdHJpbmcgcXVhbGlmaWVkTmFtZSwgRE9NU3RyaW5nIHZh
bHVlKTsKLSAgdm9pZCByZW1vdmVBdHRyaWJ1dGUoRE9NU3RyaW5nIHF1YWxpZmllZE5hbWUpOwot
ICB2b2lkIHJlbW92ZUF0dHJpYnV0ZU5TKERPTVN0cmluZz8gbmFtZXNwYWNlLCBET01TdHJpbmcg
bG9jYWxOYW1lKTsKKyAgW0NFUmVhY3Rpb25zXSB2b2lkIHNldEF0dHJpYnV0ZShET01TdHJpbmcg
cXVhbGlmaWVkTmFtZSwgRE9NU3RyaW5nIHZhbHVlKTsKKyAgW0NFUmVhY3Rpb25zXSB2b2lkIHNl
dEF0dHJpYnV0ZU5TKERPTVN0cmluZz8gbmFtZXNwYWNlLCBET01TdHJpbmcgcXVhbGlmaWVkTmFt
ZSwgRE9NU3RyaW5nIHZhbHVlKTsKKyAgW0NFUmVhY3Rpb25zXSB2b2lkIHJlbW92ZUF0dHJpYnV0
ZShET01TdHJpbmcgcXVhbGlmaWVkTmFtZSk7CisgIFtDRVJlYWN0aW9uc10gdm9pZCByZW1vdmVB
dHRyaWJ1dGVOUyhET01TdHJpbmc/IG5hbWVzcGFjZSwgRE9NU3RyaW5nIGxvY2FsTmFtZSk7Cisg
IFtDRVJlYWN0aW9uc10gYm9vbGVhbiB0b2dnbGVBdHRyaWJ1dGUoRE9NU3RyaW5nIHF1YWxpZmll
ZE5hbWUsIG9wdGlvbmFsIGJvb2xlYW4gZm9yY2UpOwogICBib29sZWFuIGhhc0F0dHJpYnV0ZShE
T01TdHJpbmcgcXVhbGlmaWVkTmFtZSk7CiAgIGJvb2xlYW4gaGFzQXR0cmlidXRlTlMoRE9NU3Ry
aW5nPyBuYW1lc3BhY2UsIERPTVN0cmluZyBsb2NhbE5hbWUpOwogCiAgIEF0dHI/IGdldEF0dHJp
YnV0ZU5vZGUoRE9NU3RyaW5nIHF1YWxpZmllZE5hbWUpOwogICBBdHRyPyBnZXRBdHRyaWJ1dGVO
b2RlTlMoRE9NU3RyaW5nPyBuYW1lc3BhY2UsIERPTVN0cmluZyBsb2NhbE5hbWUpOwotICBBdHRy
PyBzZXRBdHRyaWJ1dGVOb2RlKEF0dHIgYXR0cik7Ci0gIEF0dHI/IHNldEF0dHJpYnV0ZU5vZGVO
UyhBdHRyIGF0dHIpOwotICBBdHRyIHJlbW92ZUF0dHJpYnV0ZU5vZGUoQXR0ciBhdHRyKTsKKyAg
W0NFUmVhY3Rpb25zXSBBdHRyPyBzZXRBdHRyaWJ1dGVOb2RlKEF0dHIgYXR0cik7CisgIFtDRVJl
YWN0aW9uc10gQXR0cj8gc2V0QXR0cmlidXRlTm9kZU5TKEF0dHIgYXR0cik7CisgIFtDRVJlYWN0
aW9uc10gQXR0ciByZW1vdmVBdHRyaWJ1dGVOb2RlKEF0dHIgYXR0cik7CiAKICAgU2hhZG93Um9v
dCBhdHRhY2hTaGFkb3coU2hhZG93Um9vdEluaXQgaW5pdCk7CiAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBTaGFkb3dSb290PyBzaGFkb3dSb290OwpAQCAtMzczLDQxICszNzAsMzkgQEAgaW50ZXJmYWNl
IEVsZW1lbnQgOiBOb2RlIHsKICAgSFRNTENvbGxlY3Rpb24gZ2V0RWxlbWVudHNCeVRhZ05hbWVO
UyhET01TdHJpbmc/IG5hbWVzcGFjZSwgRE9NU3RyaW5nIGxvY2FsTmFtZSk7CiAgIEhUTUxDb2xs
ZWN0aW9uIGdldEVsZW1lbnRzQnlDbGFzc05hbWUoRE9NU3RyaW5nIGNsYXNzTmFtZXMpOwogCi0g
IEVsZW1lbnQ/IGluc2VydEFkamFjZW50RWxlbWVudChET01TdHJpbmcgd2hlcmUsIEVsZW1lbnQg
ZWxlbWVudCk7IC8vIGhpc3RvcmljYWwKKyAgW0NFUmVhY3Rpb25zXSBFbGVtZW50PyBpbnNlcnRB
ZGphY2VudEVsZW1lbnQoRE9NU3RyaW5nIHdoZXJlLCBFbGVtZW50IGVsZW1lbnQpOyAvLyBoaXN0
b3JpY2FsCiAgIHZvaWQgaW5zZXJ0QWRqYWNlbnRUZXh0KERPTVN0cmluZyB3aGVyZSwgRE9NU3Ry
aW5nIGRhdGEpOyAvLyBoaXN0b3JpY2FsCiB9OwogCiBkaWN0aW9uYXJ5IFNoYWRvd1Jvb3RJbml0
IHsKLS8vICByZXF1aXJlZCBTaGFkb3dSb290TW9kZSBtb2RlOworICByZXF1aXJlZCBTaGFkb3dS
b290TW9kZSBtb2RlOwogfTsKIAotCi1bRXhwb3NlZD1XaW5kb3csIExlZ2FjeVVuZW51bWVyYWJs
ZU5hbWVkUHJvcGVydGllc10KK1tFeHBvc2VkPVdpbmRvdywKKyBMZWdhY3lVbmVudW1lcmFibGVO
YW1lZFByb3BlcnRpZXNdCiBpbnRlcmZhY2UgTmFtZWROb2RlTWFwIHsKICAgcmVhZG9ubHkgYXR0
cmlidXRlIHVuc2lnbmVkIGxvbmcgbGVuZ3RoOwogICBnZXR0ZXIgQXR0cj8gaXRlbSh1bnNpZ25l
ZCBsb25nIGluZGV4KTsKICAgZ2V0dGVyIEF0dHI/IGdldE5hbWVkSXRlbShET01TdHJpbmcgcXVh
bGlmaWVkTmFtZSk7CiAgIEF0dHI/IGdldE5hbWVkSXRlbU5TKERPTVN0cmluZz8gbmFtZXNwYWNl
LCBET01TdHJpbmcgbG9jYWxOYW1lKTsKLSAgQXR0cj8gc2V0TmFtZWRJdGVtKEF0dHIgYXR0cik7
Ci0gIEF0dHI/IHNldE5hbWVkSXRlbU5TKEF0dHIgYXR0cik7Ci0gIEF0dHIgcmVtb3ZlTmFtZWRJ
dGVtKERPTVN0cmluZyBxdWFsaWZpZWROYW1lKTsKLSAgQXR0ciByZW1vdmVOYW1lZEl0ZW1OUyhE
T01TdHJpbmc/IG5hbWVzcGFjZSwgRE9NU3RyaW5nIGxvY2FsTmFtZSk7CisgIFtDRVJlYWN0aW9u
c10gQXR0cj8gc2V0TmFtZWRJdGVtKEF0dHIgYXR0cik7CisgIFtDRVJlYWN0aW9uc10gQXR0cj8g
c2V0TmFtZWRJdGVtTlMoQXR0ciBhdHRyKTsKKyAgW0NFUmVhY3Rpb25zXSBBdHRyIHJlbW92ZU5h
bWVkSXRlbShET01TdHJpbmcgcXVhbGlmaWVkTmFtZSk7CisgIFtDRVJlYWN0aW9uc10gQXR0ciBy
ZW1vdmVOYW1lZEl0ZW1OUyhET01TdHJpbmc/IG5hbWVzcGFjZSwgRE9NU3RyaW5nIGxvY2FsTmFt
ZSk7CiB9OwogCi0KIFtFeHBvc2VkPVdpbmRvd10KIGludGVyZmFjZSBBdHRyIDogTm9kZSB7CiAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmc/IG5hbWVzcGFjZVVSSTsKICAgcmVhZG9ubHkg
YXR0cmlidXRlIERPTVN0cmluZz8gcHJlZml4OwogICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3Ry
aW5nIGxvY2FsTmFtZTsKICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBuYW1lOwotICAg
ICAgICAgICBhdHRyaWJ1dGUgRE9NU3RyaW5nIHZhbHVlOworICBbQ0VSZWFjdGlvbnNdIGF0dHJp
YnV0ZSBET01TdHJpbmcgdmFsdWU7CiAKICAgcmVhZG9ubHkgYXR0cmlidXRlIEVsZW1lbnQ/IG93
bmVyRWxlbWVudDsKIAogICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBzcGVjaWZpZWQ7IC8v
IHVzZWxlc3M7IGFsd2F5cyByZXR1cm5zIHRydWUKIH07Ci0KIFtFeHBvc2VkPVdpbmRvd10KIGlu
dGVyZmFjZSBDaGFyYWN0ZXJEYXRhIDogTm9kZSB7CiAgIGF0dHJpYnV0ZSBbVHJlYXROdWxsQXM9
RW1wdHlTdHJpbmddIERPTVN0cmluZyBkYXRhOwpAQCAtNDE5LDI5ICs0MTQsMjQgQEAgaW50ZXJm
YWNlIENoYXJhY3RlckRhdGEgOiBOb2RlIHsKICAgdm9pZCByZXBsYWNlRGF0YSh1bnNpZ25lZCBs
b25nIG9mZnNldCwgdW5zaWduZWQgbG9uZyBjb3VudCwgRE9NU3RyaW5nIGRhdGEpOwogfTsKIAot
CiBbQ29uc3RydWN0b3Iob3B0aW9uYWwgRE9NU3RyaW5nIGRhdGEgPSAiIiksCiAgRXhwb3NlZD1X
aW5kb3ddCiBpbnRlcmZhY2UgVGV4dCA6IENoYXJhY3RlckRhdGEgewogICBbTmV3T2JqZWN0XSBU
ZXh0IHNwbGl0VGV4dCh1bnNpZ25lZCBsb25nIG9mZnNldCk7CiAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBET01TdHJpbmcgd2hvbGVUZXh0OwogfTsKLQogW0V4cG9zZWQ9V2luZG93XQogaW50ZXJmYWNl
IENEQVRBU2VjdGlvbiA6IFRleHQgewogfTsKLQogW0V4cG9zZWQ9V2luZG93XQogaW50ZXJmYWNl
IFByb2Nlc3NpbmdJbnN0cnVjdGlvbiA6IENoYXJhY3RlckRhdGEgewogICByZWFkb25seSBhdHRy
aWJ1dGUgRE9NU3RyaW5nIHRhcmdldDsKIH07Ci0KIFtDb25zdHJ1Y3RvcihvcHRpb25hbCBET01T
dHJpbmcgZGF0YSA9ICIiKSwKICBFeHBvc2VkPVdpbmRvd10KIGludGVyZmFjZSBDb21tZW50IDog
Q2hhcmFjdGVyRGF0YSB7CiB9OwogCi0KIFtFeHBvc2VkPVdpbmRvd10KIGludGVyZmFjZSBBYnN0
cmFjdFJhbmdlIHsKICAgcmVhZG9ubHkgYXR0cmlidXRlIE5vZGUgc3RhcnRDb250YWluZXI7CkBA
IC00NTEsNyArNDQxLDE1IEBAIGludGVyZmFjZSBBYnN0cmFjdFJhbmdlIHsKICAgcmVhZG9ubHkg
YXR0cmlidXRlIGJvb2xlYW4gY29sbGFwc2VkOwogfTsKIAotW0V4cG9zZWQ9V2luZG93XQorZGlj
dGlvbmFyeSBTdGF0aWNSYW5nZUluaXQgeworICByZXF1aXJlZCBOb2RlIHN0YXJ0Q29udGFpbmVy
OworICByZXF1aXJlZCB1bnNpZ25lZCBsb25nIHN0YXJ0T2Zmc2V0OworICByZXF1aXJlZCBOb2Rl
IGVuZENvbnRhaW5lcjsKKyAgcmVxdWlyZWQgdW5zaWduZWQgbG9uZyBlbmRPZmZzZXQ7Cit9Owor
CitbQ29uc3RydWN0b3IoU3RhdGljUmFuZ2VJbml0IGluaXQpLAorIEV4cG9zZWQ9V2luZG93XQog
aW50ZXJmYWNlIFN0YXRpY1JhbmdlIDogQWJzdHJhY3RSYW5nZSB7CiB9OwogCkBAIC00NzYsMTEg
KzQ3NCwxMSBAQCBpbnRlcmZhY2UgUmFuZ2UgOiBBYnN0cmFjdFJhbmdlIHsKICAgY29uc3QgdW5z
aWduZWQgc2hvcnQgRU5EX1RPX1NUQVJUID0gMzsKICAgc2hvcnQgY29tcGFyZUJvdW5kYXJ5UG9p
bnRzKHVuc2lnbmVkIHNob3J0IGhvdywgUmFuZ2Ugc291cmNlUmFuZ2UpOwogCi0gIHZvaWQgZGVs
ZXRlQ29udGVudHMoKTsKLSAgW05ld09iamVjdF0gRG9jdW1lbnRGcmFnbWVudCBleHRyYWN0Q29u
dGVudHMoKTsKLSAgW05ld09iamVjdF0gRG9jdW1lbnRGcmFnbWVudCBjbG9uZUNvbnRlbnRzKCk7
Ci0gIHZvaWQgaW5zZXJ0Tm9kZShOb2RlIG5vZGUpOwotICB2b2lkIHN1cnJvdW5kQ29udGVudHMo
Tm9kZSBuZXdQYXJlbnQpOworICBbQ0VSZWFjdGlvbnNdIHZvaWQgZGVsZXRlQ29udGVudHMoKTsK
KyAgW0NFUmVhY3Rpb25zLCBOZXdPYmplY3RdIERvY3VtZW50RnJhZ21lbnQgZXh0cmFjdENvbnRl
bnRzKCk7CisgIFtDRVJlYWN0aW9ucywgTmV3T2JqZWN0XSBEb2N1bWVudEZyYWdtZW50IGNsb25l
Q29udGVudHMoKTsKKyAgW0NFUmVhY3Rpb25zXSB2b2lkIGluc2VydE5vZGUoTm9kZSBub2RlKTsK
KyAgW0NFUmVhY3Rpb25zXSB2b2lkIHN1cnJvdW5kQ29udGVudHMoTm9kZSBuZXdQYXJlbnQpOwog
CiAgIFtOZXdPYmplY3RdIFJhbmdlIGNsb25lUmFuZ2UoKTsKICAgdm9pZCBkZXRhY2goKTsKQEAg
LTQ5Myw3ICs0OTEsNiBAQCBpbnRlcmZhY2UgUmFuZ2UgOiBBYnN0cmFjdFJhbmdlIHsKICAgc3Ry
aW5naWZpZXI7CiB9OwogCi0KIFtFeHBvc2VkPVdpbmRvd10KIGludGVyZmFjZSBOb2RlSXRlcmF0
b3IgewogICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIE5vZGUgcm9vdDsKQEAgLTUw
OCw3ICs1MDUsNiBAQCBpbnRlcmZhY2UgTm9kZUl0ZXJhdG9yIHsKICAgdm9pZCBkZXRhY2goKTsK
IH07CiAKLQogW0V4cG9zZWQ9V2luZG93XQogaW50ZXJmYWNlIFRyZWVXYWxrZXIgewogICBbU2Ft
ZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIE5vZGUgcm9vdDsKQEAgLTUyNCw3ICs1MjAsNiBA
QCBpbnRlcmZhY2UgVHJlZVdhbGtlciB7CiAgIE5vZGU/IHByZXZpb3VzTm9kZSgpOwogICBOb2Rl
PyBuZXh0Tm9kZSgpOwogfTsKLQogW0V4cG9zZWQ9V2luZG93XQogY2FsbGJhY2sgaW50ZXJmYWNl
IE5vZGVGaWx0ZXIgewogICAvLyBDb25zdGFudHMgZm9yIGFjY2VwdE5vZGUoKQpAQCAtNTM1LDcg
KzUzMCw3IEBAIGNhbGxiYWNrIGludGVyZmFjZSBOb2RlRmlsdGVyIHsKICAgLy8gQ29uc3RhbnRz
IGZvciB3aGF0VG9TaG93CiAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgU0hPV19BTEwgPSAweEZGRkZG
RkZGOwogICBjb25zdCB1bnNpZ25lZCBsb25nIFNIT1dfRUxFTUVOVCA9IDB4MTsKLSAgY29uc3Qg
dW5zaWduZWQgbG9uZyBTSE9XX0FUVFJJQlVURSA9IDB4MjsgLy8gaGlzdG9yaWNhbAorICBjb25z
dCB1bnNpZ25lZCBsb25nIFNIT1dfQVRUUklCVVRFID0gMHgyOwogICBjb25zdCB1bnNpZ25lZCBs
b25nIFNIT1dfVEVYVCA9IDB4NDsKICAgY29uc3QgdW5zaWduZWQgbG9uZyBTSE9XX0NEQVRBX1NF
Q1RJT04gPSAweDg7CiAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgU0hPV19FTlRJVFlfUkVGRVJFTkNF
ID0gMHgxMDsgLy8gaGlzdG9yaWNhbApAQCAtNTUwLDcgKzU0NSw3IEBAIGNhbGxiYWNrIGludGVy
ZmFjZSBOb2RlRmlsdGVyIHsKICAgdW5zaWduZWQgc2hvcnQgYWNjZXB0Tm9kZShOb2RlIG5vZGUp
OwogfTsKIAotCitbRXhwb3NlZD1XaW5kb3ddCiBpbnRlcmZhY2UgRE9NVG9rZW5MaXN0IHsKICAg
cmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbGVuZ3RoOwogICBnZXR0ZXIgRE9NU3Ry
aW5nPyBpdGVtKHVuc2lnbmVkIGxvbmcgaW5kZXgpOwpAQCAtNTYxLDUgKzU1Niw1MyBAQCBpbnRl
cmZhY2UgRE9NVG9rZW5MaXN0IHsKICAgW0NFUmVhY3Rpb25zXSBib29sZWFuIHJlcGxhY2UoRE9N
U3RyaW5nIHRva2VuLCBET01TdHJpbmcgbmV3VG9rZW4pOwogICBib29sZWFuIHN1cHBvcnRzKERP
TVN0cmluZyB0b2tlbik7CiAgIFtDRVJlYWN0aW9uc10gc3RyaW5naWZpZXIgYXR0cmlidXRlIERP
TVN0cmluZyB2YWx1ZTsKLSAgLy8gIGl0ZXJhYmxlPERPTVN0cmluZz47CisgIGl0ZXJhYmxlPERP
TVN0cmluZz47Cit9OworCitbRXhwb3NlZD1XaW5kb3ddCitpbnRlcmZhY2UgWFBhdGhSZXN1bHQg
eworICBjb25zdCB1bnNpZ25lZCBzaG9ydCBBTllfVFlQRSA9IDA7CisgIGNvbnN0IHVuc2lnbmVk
IHNob3J0IE5VTUJFUl9UWVBFID0gMTsKKyAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1RSSU5HX1RZ
UEUgPSAyOworICBjb25zdCB1bnNpZ25lZCBzaG9ydCBCT09MRUFOX1RZUEUgPSAzOworICBjb25z
dCB1bnNpZ25lZCBzaG9ydCBVTk9SREVSRURfTk9ERV9JVEVSQVRPUl9UWVBFID0gNDsKKyAgY29u
c3QgdW5zaWduZWQgc2hvcnQgT1JERVJFRF9OT0RFX0lURVJBVE9SX1RZUEUgPSA1OworICBjb25z
dCB1bnNpZ25lZCBzaG9ydCBVTk9SREVSRURfTk9ERV9TTkFQU0hPVF9UWVBFID0gNjsKKyAgY29u
c3QgdW5zaWduZWQgc2hvcnQgT1JERVJFRF9OT0RFX1NOQVBTSE9UX1RZUEUgPSA3OworICBjb25z
dCB1bnNpZ25lZCBzaG9ydCBBTllfVU5PUkRFUkVEX05PREVfVFlQRSA9IDg7CisgIGNvbnN0IHVu
c2lnbmVkIHNob3J0IEZJUlNUX09SREVSRURfTk9ERV9UWVBFID0gOTsKKworICByZWFkb25seSBh
dHRyaWJ1dGUgdW5zaWduZWQgc2hvcnQgcmVzdWx0VHlwZTsKKyAgcmVhZG9ubHkgYXR0cmlidXRl
IHVucmVzdHJpY3RlZCBkb3VibGUgbnVtYmVyVmFsdWU7CisgIHJlYWRvbmx5IGF0dHJpYnV0ZSBE
T01TdHJpbmcgc3RyaW5nVmFsdWU7CisgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIGJvb2xl
YW5WYWx1ZTsKKyAgcmVhZG9ubHkgYXR0cmlidXRlIE5vZGU/IHNpbmdsZU5vZGVWYWx1ZTsKKyAg
cmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gaW52YWxpZEl0ZXJhdG9yU3RhdGU7CisgIHJlYWRv
bmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIHNuYXBzaG90TGVuZ3RoOworCisgIE5vZGU/IGl0
ZXJhdGVOZXh0KCk7CisgIE5vZGU/IHNuYXBzaG90SXRlbSh1bnNpZ25lZCBsb25nIGluZGV4KTsK
K307CisKK1tFeHBvc2VkPVdpbmRvd10KK2ludGVyZmFjZSBYUGF0aEV4cHJlc3Npb24geworICAv
LyBYUGF0aFJlc3VsdC5BTllfVFlQRSA9IDAKKyAgWFBhdGhSZXN1bHQgZXZhbHVhdGUoTm9kZSBj
b250ZXh0Tm9kZSwgb3B0aW9uYWwgdW5zaWduZWQgc2hvcnQgdHlwZSA9IDAsIG9wdGlvbmFsIFhQ
YXRoUmVzdWx0PyByZXN1bHQgPSBudWxsKTsKIH07CisKK2NhbGxiYWNrIGludGVyZmFjZSBYUGF0
aE5TUmVzb2x2ZXIgeworICBET01TdHJpbmc/IGxvb2t1cE5hbWVzcGFjZVVSSShET01TdHJpbmc/
IHByZWZpeCk7Cit9OworCitpbnRlcmZhY2UgbWl4aW4gWFBhdGhFdmFsdWF0b3JCYXNlIHsKKyAg
W05ld09iamVjdF0gWFBhdGhFeHByZXNzaW9uIGNyZWF0ZUV4cHJlc3Npb24oRE9NU3RyaW5nIGV4
cHJlc3Npb24sIG9wdGlvbmFsIFhQYXRoTlNSZXNvbHZlcj8gcmVzb2x2ZXIgPSBudWxsKTsKKyAg
WFBhdGhOU1Jlc29sdmVyIGNyZWF0ZU5TUmVzb2x2ZXIoTm9kZSBub2RlUmVzb2x2ZXIpOworICAv
LyBYUGF0aFJlc3VsdC5BTllfVFlQRSA9IDAKKyAgWFBhdGhSZXN1bHQgZXZhbHVhdGUoRE9NU3Ry
aW5nIGV4cHJlc3Npb24sIE5vZGUgY29udGV4dE5vZGUsIG9wdGlvbmFsIFhQYXRoTlNSZXNvbHZl
cj8gcmVzb2x2ZXIgPSBudWxsLCBvcHRpb25hbCB1bnNpZ25lZCBzaG9ydCB0eXBlID0gMCwgb3B0
aW9uYWwgWFBhdGhSZXN1bHQ/IHJlc3VsdCA9IG51bGwpOworfTsKK0RvY3VtZW50IGluY2x1ZGVz
IFhQYXRoRXZhbHVhdG9yQmFzZTsKKworW0V4cG9zZWQ9V2luZG93LCBDb25zdHJ1Y3Rvcl0KK2lu
dGVyZmFjZSBYUGF0aEV2YWx1YXRvciB7fTsKKworWFBhdGhFdmFsdWF0b3IgaW5jbHVkZXMgWFBh
dGhFdmFsdWF0b3JCYXNlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9pbnRlcmZhY2VzL2h0bWwuaWRsIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbnRlcmZhY2VzL2h0bWwuaWRsCmluZGV4IDQ5MzQ4
YTcyM2IzNTkzNTFhZmZiODE0NmYwMGEwMGJiNGU2YTMxOTkuLmQ4NTZjZDU3OGFhMGEwZDE1ZjA5
ZDBjOTViZWJmNDhiMGY5NWMwZDYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaW50ZXJmYWNlcy9odG1sLmlkbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ludGVyZmFjZXMvaHRtbC5pZGwKQEAg
LTEsOCArMSwxMyBAQAorLy8gR0VORVJBVEVEIENPTlRFTlQgLSBETyBOT1QgRURJVAorLy8gQ29u
dGVudCB3YXMgYXV0b21hdGljYWxseSBleHRyYWN0ZWQgYnkgUmVmZnkgaW50byByZWZmeS1yZXBv
cnRzCisvLyAoaHR0cHM6Ly9naXRodWIuY29tL3RpZG91c3QvcmVmZnktcmVwb3J0cykKKy8vIFNv
dXJjZTogSFRNTCBTdGFuZGFyZCAoaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy8pCisKIFtF
eHBvc2VkPVdpbmRvdywKICBMZWdhY3lVbmVudW1lcmFibGVOYW1lZFByb3BlcnRpZXNdCiBpbnRl
cmZhY2UgSFRNTEFsbENvbGxlY3Rpb24gewogICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQg
bG9uZyBsZW5ndGg7Ci0gIGdldHRlciBFbGVtZW50PyAodW5zaWduZWQgbG9uZyBpbmRleCk7Cisg
IGdldHRlciBFbGVtZW50ICh1bnNpZ25lZCBsb25nIGluZGV4KTsKICAgZ2V0dGVyIChIVE1MQ29s
bGVjdGlvbiBvciBFbGVtZW50KT8gbmFtZWRJdGVtKERPTVN0cmluZyBuYW1lKTsKICAgKEhUTUxD
b2xsZWN0aW9uIG9yIEVsZW1lbnQpPyBpdGVtKG9wdGlvbmFsIERPTVN0cmluZyBuYW1lT3JJbmRl
eCk7CiAKQEAgLTE1LDYgKzIwLDcgQEAgaW50ZXJmYWNlIEhUTUxGb3JtQ29udHJvbHNDb2xsZWN0
aW9uIDogSFRNTENvbGxlY3Rpb24gewogICBnZXR0ZXIgKFJhZGlvTm9kZUxpc3Qgb3IgRWxlbWVu
dCk/IG5hbWVkSXRlbShET01TdHJpbmcgbmFtZSk7IC8vIHNoYWRvd3MgaW5oZXJpdGVkIG5hbWVk
SXRlbSgpCiB9OwogCitbRXhwb3NlZD1XaW5kb3ddCiBpbnRlcmZhY2UgUmFkaW9Ob2RlTGlzdCA6
IE5vZGVMaXN0IHsKICAgYXR0cmlidXRlIERPTVN0cmluZyB2YWx1ZTsKIH07CkBAIC02NSwxNSAr
NzEsMTQgQEAgcGFydGlhbCBpbnRlcmZhY2UgRG9jdW1lbnQgewogICByZWFkb25seSBhdHRyaWJ1
dGUgSFRNTE9yU1ZHU2NyaXB0RWxlbWVudD8gY3VycmVudFNjcmlwdDsgLy8gY2xhc3NpYyBzY3Jp
cHRzIGluIGEgZG9jdW1lbnQgdHJlZSBvbmx5CiAKICAgLy8gZHluYW1pYyBtYXJrdXAgaW5zZXJ0
aW9uCi0gIFtDRVJlYWN0aW9uc10gRG9jdW1lbnQgb3BlbihvcHRpb25hbCBET01TdHJpbmcgdHlw
ZSA9ICJ0ZXh0L2h0bWwiLCBvcHRpb25hbCBET01TdHJpbmcgcmVwbGFjZSA9ICIiKTsKLSAgV2lu
ZG93UHJveHkgb3BlbihVU1ZTdHJpbmcgdXJsLCBET01TdHJpbmcgbmFtZSwgRE9NU3RyaW5nIGZl
YXR1cmVzKTsKKyAgW0NFUmVhY3Rpb25zXSBEb2N1bWVudCBvcGVuKG9wdGlvbmFsIERPTVN0cmlu
ZyB1bnVzZWQxLCBvcHRpb25hbCBET01TdHJpbmcgdW51c2VkMik7IC8vIGJvdGggYXJndW1lbnRz
IGFyZSBpZ25vcmVkCisgIFdpbmRvd1Byb3h5PyBvcGVuKFVTVlN0cmluZyB1cmwsIERPTVN0cmlu
ZyBuYW1lLCBET01TdHJpbmcgZmVhdHVyZXMpOwogICBbQ0VSZWFjdGlvbnNdIHZvaWQgY2xvc2Uo
KTsKICAgW0NFUmVhY3Rpb25zXSB2b2lkIHdyaXRlKERPTVN0cmluZy4uLiB0ZXh0KTsKICAgW0NF
UmVhY3Rpb25zXSB2b2lkIHdyaXRlbG4oRE9NU3RyaW5nLi4uIHRleHQpOwogCiAgIC8vIHVzZXIg
aW50ZXJhY3Rpb24KICAgcmVhZG9ubHkgYXR0cmlidXRlIFdpbmRvd1Byb3h5PyBkZWZhdWx0Vmll
dzsKLSAgcmVhZG9ubHkgYXR0cmlidXRlIEVsZW1lbnQ/IGFjdGl2ZUVsZW1lbnQ7CiAgIGJvb2xl
YW4gaGFzRm9jdXMoKTsKICAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGRlc2ln
bk1vZGU7CiAgIFtDRVJlYWN0aW9uc10gYm9vbGVhbiBleGVjQ29tbWFuZChET01TdHJpbmcgY29t
bWFuZElkLCBvcHRpb25hbCBib29sZWFuIHNob3dVSSA9IGZhbHNlLCBvcHRpb25hbCBET01TdHJp
bmcgdmFsdWUgPSAiIik7CkBAIC04NSwxMCArOTAsMTYgQEAgcGFydGlhbCBpbnRlcmZhY2UgRG9j
dW1lbnQgewogCiAgIC8vIHNwZWNpYWwgZXZlbnQgaGFuZGxlciBJREwgYXR0cmlidXRlcyB0aGF0
IG9ubHkgYXBwbHkgdG8gRG9jdW1lbnQgb2JqZWN0cwogICBbTGVuaWVudFRoaXNdIGF0dHJpYnV0
ZSBFdmVudEhhbmRsZXIgb25yZWFkeXN0YXRlY2hhbmdlOworCisgIC8vIGFsc28gaGFzIG9ic29s
ZXRlIG1lbWJlcnMKIH07CiBEb2N1bWVudCBpbmNsdWRlcyBHbG9iYWxFdmVudEhhbmRsZXJzOwog
RG9jdW1lbnQgaW5jbHVkZXMgRG9jdW1lbnRBbmRFbGVtZW50RXZlbnRIYW5kbGVyczsKIAorcGFy
dGlhbCBpbnRlcmZhY2UgbWl4aW4gRG9jdW1lbnRPclNoYWRvd1Jvb3QgeworICByZWFkb25seSBh
dHRyaWJ1dGUgRWxlbWVudD8gYWN0aXZlRWxlbWVudDsKK307CisKIFtFeHBvc2VkPVdpbmRvdywK
ICBIVE1MQ29uc3RydWN0b3JdCiBpbnRlcmZhY2UgSFRNTEVsZW1lbnQgOiBFbGVtZW50IHsKQEAg
LTk3LDMzICsxMDgsNDAgQEAgaW50ZXJmYWNlIEhUTUxFbGVtZW50IDogRWxlbWVudCB7CiAgIFtD
RVJlYWN0aW9uc10gYXR0cmlidXRlIERPTVN0cmluZyBsYW5nOwogICBbQ0VSZWFjdGlvbnNdIGF0
dHJpYnV0ZSBib29sZWFuIHRyYW5zbGF0ZTsKICAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgRE9N
U3RyaW5nIGRpcjsKLSAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmdN
YXAgZGF0YXNldDsKIAogICAvLyB1c2VyIGludGVyYWN0aW9uCiAgIFtDRVJlYWN0aW9uc10gYXR0
cmlidXRlIGJvb2xlYW4gaGlkZGVuOwogICB2b2lkIGNsaWNrKCk7Ci0gIFtDRVJlYWN0aW9uc10g
YXR0cmlidXRlIGxvbmcgdGFiSW5kZXg7Ci0gIHZvaWQgZm9jdXMob3B0aW9uYWwgRm9jdXNPcHRp
b25zIG9wdGlvbnMpOwotICB2b2lkIGJsdXIoKTsKICAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUg
RE9NU3RyaW5nIGFjY2Vzc0tleTsKICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBhY2Nl
c3NLZXlMYWJlbDsKICAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgYm9vbGVhbiBkcmFnZ2FibGU7
CiAgIFtDRVJlYWN0aW9uc10gYXR0cmlidXRlIGJvb2xlYW4gc3BlbGxjaGVjazsKKyAgW0NFUmVh
Y3Rpb25zXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGF1dG9jYXBpdGFsaXplOwogCiAgIFtDRVJlYWN0
aW9uc10gYXR0cmlidXRlIFtUcmVhdE51bGxBcz1FbXB0eVN0cmluZ10gRE9NU3RyaW5nIGlubmVy
VGV4dDsKLX07CiAKLWRpY3Rpb25hcnkgRm9jdXNPcHRpb25zIHsKLSAgYm9vbGVhbiBwcmV2ZW50
U2Nyb2xsID0gZmFsc2U7CisgIEVsZW1lbnRJbnRlcm5hbHMgYXR0YWNoSW50ZXJuYWxzKCk7CiB9
OwogCiBIVE1MRWxlbWVudCBpbmNsdWRlcyBHbG9iYWxFdmVudEhhbmRsZXJzOwogSFRNTEVsZW1l
bnQgaW5jbHVkZXMgRG9jdW1lbnRBbmRFbGVtZW50RXZlbnRIYW5kbGVyczsKIEhUTUxFbGVtZW50
IGluY2x1ZGVzIEVsZW1lbnRDb250ZW50RWRpdGFibGU7CitIVE1MRWxlbWVudCBpbmNsdWRlcyBI
VE1MT3JTVkdFbGVtZW50OwogCiAvLyBOb3RlOiBpbnRlbnRpb25hbGx5IG5vdCBbSFRNTENvbnN0
cnVjdG9yXQorW0V4cG9zZWQ9V2luZG93XQogaW50ZXJmYWNlIEhUTUxVbmtub3duRWxlbWVudCA6
IEhUTUxFbGVtZW50IHsgfTsKIAoraW50ZXJmYWNlIG1peGluIEhUTUxPclNWR0VsZW1lbnQgewor
ICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZ01hcCBkYXRhc2V0Owor
ICBhdHRyaWJ1dGUgRE9NU3RyaW5nIG5vbmNlOyAvLyBpbnRlbnRpb25hbGx5IG5vIFtDRVJlYWN0
aW9uc10KKworICBbQ0VSZWFjdGlvbnNdIGF0dHJpYnV0ZSBib29sZWFuIGF1dG9mb2N1czsKKyAg
W0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgbG9uZyB0YWJJbmRleDsKKyAgdm9pZCBmb2N1cyhvcHRp
b25hbCBGb2N1c09wdGlvbnMgb3B0aW9ucyA9IHt9KTsKKyAgdm9pZCBibHVyKCk7Cit9OworCiBb
RXhwb3NlZD1XaW5kb3csCiAgT3ZlcnJpZGVCdWlsdGluc10KIGludGVyZmFjZSBET01TdHJpbmdN
YXAgewpAQCAtMTY0LDE0ICsxODIsMTMgQEAgaW50ZXJmYWNlIEhUTUxMaW5rRWxlbWVudCA6IEhU
TUxFbGVtZW50IHsKICAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGFzOyAvLyAo
ZGVmYXVsdCAiIikKICAgW1NhbWVPYmplY3QsIFB1dEZvcndhcmRzPXZhbHVlXSByZWFkb25seSBh
dHRyaWJ1dGUgRE9NVG9rZW5MaXN0IHJlbExpc3Q7CiAgIFtDRVJlYWN0aW9uc10gYXR0cmlidXRl
IERPTVN0cmluZyBtZWRpYTsKLSAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIG5v
bmNlOwogICBbQ0VSZWFjdGlvbnNdIGF0dHJpYnV0ZSBET01TdHJpbmcgaW50ZWdyaXR5OwogICBb
Q0VSZWFjdGlvbnNdIGF0dHJpYnV0ZSBET01TdHJpbmcgaHJlZmxhbmc7CiAgIFtDRVJlYWN0aW9u
c10gYXR0cmlidXRlIERPTVN0cmluZyB0eXBlOwogICBbU2FtZU9iamVjdCwgUHV0Rm9yd2FyZHM9
dmFsdWVdIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01Ub2tlbkxpc3Qgc2l6ZXM7CisgIFtDRVJlYWN0
aW9uc10gYXR0cmlidXRlIFVTVlN0cmluZyBpbWFnZVNyY3NldDsKKyAgW0NFUmVhY3Rpb25zXSBh
dHRyaWJ1dGUgRE9NU3RyaW5nIGltYWdlU2l6ZXM7CiAgIFtDRVJlYWN0aW9uc10gYXR0cmlidXRl
IERPTVN0cmluZyByZWZlcnJlclBvbGljeTsKLSAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgRE9N
U3RyaW5nIHdvcmtlclR5cGU7Ci0gIFtDRVJlYWN0aW9uc10gYXR0cmlidXRlIERPTVN0cmluZyB1
cGRhdGVWaWFDYWNoZTsKIAogICAvLyBhbHNvIGhhcyBvYnNvbGV0ZSBtZW1iZXJzCiB9OwpAQCAt
MTkxLDggKzIwOCw4IEBAIGludGVyZmFjZSBIVE1MTWV0YUVsZW1lbnQgOiBIVE1MRWxlbWVudCB7
CiAgSFRNTENvbnN0cnVjdG9yXQogaW50ZXJmYWNlIEhUTUxTdHlsZUVsZW1lbnQgOiBIVE1MRWxl
bWVudCB7CiAgIFtDRVJlYWN0aW9uc10gYXR0cmlidXRlIERPTVN0cmluZyBtZWRpYTsKLSAgW0NF
UmVhY3Rpb25zXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIG5vbmNlOwotICBbQ0VSZWFjdGlvbnNdIGF0
dHJpYnV0ZSBET01TdHJpbmcgdHlwZTsKKworICAvLyBhbHNvIGhhcyBvYnNvbGV0ZSBtZW1iZXJz
CiB9OwogSFRNTFN0eWxlRWxlbWVudCBpbmNsdWRlcyBMaW5rU3R5bGU7CiAKQEAgLTM3MSw2ICsz
ODgsNyBAQCBpbnRlcmZhY2UgSFRNTEltYWdlRWxlbWVudCA6IEhUTUxFbGVtZW50IHsKICAgcmVh
ZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gY29tcGxldGU7CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBV
U1ZTdHJpbmcgY3VycmVudFNyYzsKICAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgRE9NU3RyaW5n
IHJlZmVycmVyUG9saWN5OworICBbQ0VSZWFjdGlvbnNdIGF0dHJpYnV0ZSBET01TdHJpbmcgZGVj
b2Rpbmc7CiAKICAgUHJvbWlzZTx2b2lkPiBkZWNvZGUoKTsKIApAQCAtMzg0LDE2ICs0MDIsMTUg
QEAgaW50ZXJmYWNlIEhUTUxJRnJhbWVFbGVtZW50IDogSFRNTEVsZW1lbnQgewogICBbQ0VSZWFj
dGlvbnNdIGF0dHJpYnV0ZSBET01TdHJpbmcgc3JjZG9jOwogICBbQ0VSZWFjdGlvbnNdIGF0dHJp
YnV0ZSBET01TdHJpbmcgbmFtZTsKICAgW1NhbWVPYmplY3QsIFB1dEZvcndhcmRzPXZhbHVlXSBy
ZWFkb25seSBhdHRyaWJ1dGUgRE9NVG9rZW5MaXN0IHNhbmRib3g7CisgIFtDRVJlYWN0aW9uc10g
YXR0cmlidXRlIERPTVN0cmluZyBhbGxvdzsKICAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgYm9v
bGVhbiBhbGxvd0Z1bGxzY3JlZW47CiAgIFtDRVJlYWN0aW9uc10gYXR0cmlidXRlIGJvb2xlYW4g
YWxsb3dQYXltZW50UmVxdWVzdDsKLSAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgYm9vbGVhbiBh
bGxvd1VzZXJNZWRpYTsKICAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHdpZHRo
OwogICBbQ0VSZWFjdGlvbnNdIGF0dHJpYnV0ZSBET01TdHJpbmcgaGVpZ2h0OwogICBbQ0VSZWFj
dGlvbnNdIGF0dHJpYnV0ZSBET01TdHJpbmcgcmVmZXJyZXJQb2xpY3k7CiAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBEb2N1bWVudD8gY29udGVudERvY3VtZW50OwogICByZWFkb25seSBhdHRyaWJ1dGUg
V2luZG93UHJveHk/IGNvbnRlbnRXaW5kb3c7CiAgIERvY3VtZW50PyBnZXRTVkdEb2N1bWVudCgp
OwotICBbU2FtZU9iamVjdCwgUHV0Rm9yd2FyZHM9dmFsdWVdIHJlYWRvbmx5IGF0dHJpYnV0ZSBE
T01Ub2tlbkxpc3QgZGVsZWdhdGVTdGlja3lVc2VyQWN0aXZhdGlvbjsKIAogICAvLyBhbHNvIGhh
cyBvYnNvbGV0ZSBtZW1iZXJzCiB9OwpAQCAtNDE1LDcgKzQzMiw2IEBAIGludGVyZmFjZSBIVE1M
RW1iZWRFbGVtZW50IDogSFRNTEVsZW1lbnQgewogaW50ZXJmYWNlIEhUTUxPYmplY3RFbGVtZW50
IDogSFRNTEVsZW1lbnQgewogICBbQ0VSZWFjdGlvbnNdIGF0dHJpYnV0ZSBVU1ZTdHJpbmcgZGF0
YTsKICAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHR5cGU7Ci0gIFtDRVJlYWN0
aW9uc10gYXR0cmlidXRlIGJvb2xlYW4gdHlwZU11c3RNYXRjaDsKICAgW0NFUmVhY3Rpb25zXSBh
dHRyaWJ1dGUgRE9NU3RyaW5nIG5hbWU7CiAgIFtDRVJlYWN0aW9uc10gYXR0cmlidXRlIERPTVN0
cmluZyB1c2VNYXA7CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBIVE1MRm9ybUVsZW1lbnQ/IGZvcm07
CkBAIC02NTQsNyArNjcwLDcgQEAgaW50ZXJmYWNlIFRpbWVSYW5nZXMgewogfTsKIAogW0V4cG9z
ZWQ9V2luZG93LAotIENvbnN0cnVjdG9yKERPTVN0cmluZyB0eXBlLCBvcHRpb25hbCBUcmFja0V2
ZW50SW5pdCBldmVudEluaXREaWN0KV0KKyBDb25zdHJ1Y3RvcihET01TdHJpbmcgdHlwZSwgb3B0
aW9uYWwgVHJhY2tFdmVudEluaXQgZXZlbnRJbml0RGljdCA9IHt9KV0KIGludGVyZmFjZSBUcmFj
a0V2ZW50IDogRXZlbnQgewogICByZWFkb25seSBhdHRyaWJ1dGUgKFZpZGVvVHJhY2sgb3IgQXVk
aW9UcmFjayBvciBUZXh0VHJhY2spPyB0cmFjazsKIH07CkBAIC03MzAsNyArNzQ2LDcgQEAgaW50
ZXJmYWNlIEhUTUxUYWJsZUNvbEVsZW1lbnQgOiBIVE1MRWxlbWVudCB7CiAgSFRNTENvbnN0cnVj
dG9yXQogaW50ZXJmYWNlIEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50IDogSFRNTEVsZW1lbnQgewog
ICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIEhUTUxDb2xsZWN0aW9uIHJvd3M7Ci0g
IEhUTUxFbGVtZW50IGluc2VydFJvdyhvcHRpb25hbCBsb25nIGluZGV4ID0gLTEpOworICBIVE1M
VGFibGVSb3dFbGVtZW50IGluc2VydFJvdyhvcHRpb25hbCBsb25nIGluZGV4ID0gLTEpOwogICBb
Q0VSZWFjdGlvbnNdIHZvaWQgZGVsZXRlUm93KGxvbmcgaW5kZXgpOwogCiAgIC8vIGFsc28gaGFz
IG9ic29sZXRlIG1lbWJlcnMKQEAgLTc3Niw2ICs3OTIsOCBAQCBpbnRlcmZhY2UgSFRNTEZvcm1F
bGVtZW50IDogSFRNTEVsZW1lbnQgewogICBbQ0VSZWFjdGlvbnNdIGF0dHJpYnV0ZSBET01TdHJp
bmcgbmFtZTsKICAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgYm9vbGVhbiBub1ZhbGlkYXRlOwog
ICBbQ0VSZWFjdGlvbnNdIGF0dHJpYnV0ZSBET01TdHJpbmcgdGFyZ2V0OworICBbQ0VSZWFjdGlv
bnNdIGF0dHJpYnV0ZSBET01TdHJpbmcgcmVsOworICBbU2FtZU9iamVjdCwgUHV0Rm9yd2FyZHM9
dmFsdWVdIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01Ub2tlbkxpc3QgcmVsTGlzdDsKIAogICBbU2Ft
ZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIEhUTUxGb3JtQ29udHJvbHNDb2xsZWN0aW9uIGVs
ZW1lbnRzOwogICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsZW5ndGg7CkBAIC03
ODMsNiArODAxLDcgQEAgaW50ZXJmYWNlIEhUTUxGb3JtRWxlbWVudCA6IEhUTUxFbGVtZW50IHsK
ICAgZ2V0dGVyIChSYWRpb05vZGVMaXN0IG9yIEVsZW1lbnQpIChET01TdHJpbmcgbmFtZSk7CiAK
ICAgdm9pZCBzdWJtaXQoKTsKKyAgdm9pZCByZXF1ZXN0U3VibWl0KG9wdGlvbmFsIEhUTUxFbGVt
ZW50IHN1Ym1pdHRlcik7CiAgIFtDRVJlYWN0aW9uc10gdm9pZCByZXNldCgpOwogICBib29sZWFu
IGNoZWNrVmFsaWRpdHkoKTsKICAgYm9vbGVhbiByZXBvcnRWYWxpZGl0eSgpOwpAQCAtODAyLDcg
KzgyMSw2IEBAIGludGVyZmFjZSBIVE1MSW5wdXRFbGVtZW50IDogSFRNTEVsZW1lbnQgewogICBb
Q0VSZWFjdGlvbnNdIGF0dHJpYnV0ZSBET01TdHJpbmcgYWNjZXB0OwogICBbQ0VSZWFjdGlvbnNd
IGF0dHJpYnV0ZSBET01TdHJpbmcgYWx0OwogICBbQ0VSZWFjdGlvbnNdIGF0dHJpYnV0ZSBET01T
dHJpbmcgYXV0b2NvbXBsZXRlOwotICBbQ0VSZWFjdGlvbnNdIGF0dHJpYnV0ZSBib29sZWFuIGF1
dG9mb2N1czsKICAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgYm9vbGVhbiBkZWZhdWx0Q2hlY2tl
ZDsKICAgYXR0cmlidXRlIGJvb2xlYW4gY2hlY2tlZDsKICAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1
dGUgRE9NU3RyaW5nIGRpck5hbWU7CkBAIC04NjMsNyArODgxLDYgQEAgaW50ZXJmYWNlIEhUTUxJ
bnB1dEVsZW1lbnQgOiBIVE1MRWxlbWVudCB7CiBbRXhwb3NlZD1XaW5kb3csCiAgSFRNTENvbnN0
cnVjdG9yXQogaW50ZXJmYWNlIEhUTUxCdXR0b25FbGVtZW50IDogSFRNTEVsZW1lbnQgewotICBb
Q0VSZWFjdGlvbnNdIGF0dHJpYnV0ZSBib29sZWFuIGF1dG9mb2N1czsKICAgW0NFUmVhY3Rpb25z
XSBhdHRyaWJ1dGUgYm9vbGVhbiBkaXNhYmxlZDsKICAgcmVhZG9ubHkgYXR0cmlidXRlIEhUTUxG
b3JtRWxlbWVudD8gZm9ybTsKICAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgVVNWU3RyaW5nIGZv
cm1BY3Rpb247CkBAIC04ODksNyArOTA2LDYgQEAgaW50ZXJmYWNlIEhUTUxCdXR0b25FbGVtZW50
IDogSFRNTEVsZW1lbnQgewogIEhUTUxDb25zdHJ1Y3Rvcl0KIGludGVyZmFjZSBIVE1MU2VsZWN0
RWxlbWVudCA6IEhUTUxFbGVtZW50IHsKICAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgRE9NU3Ry
aW5nIGF1dG9jb21wbGV0ZTsKLSAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgYm9vbGVhbiBhdXRv
Zm9jdXM7CiAgIFtDRVJlYWN0aW9uc10gYXR0cmlidXRlIGJvb2xlYW4gZGlzYWJsZWQ7CiAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBIVE1MRm9ybUVsZW1lbnQ/IGZvcm07CiAgIFtDRVJlYWN0aW9uc10g
YXR0cmlidXRlIGJvb2xlYW4gbXVsdGlwbGU7CkBAIC05NTQsNyArOTcwLDYgQEAgaW50ZXJmYWNl
IEhUTUxPcHRpb25FbGVtZW50IDogSFRNTEVsZW1lbnQgewogIEhUTUxDb25zdHJ1Y3Rvcl0KIGlu
dGVyZmFjZSBIVE1MVGV4dEFyZWFFbGVtZW50IDogSFRNTEVsZW1lbnQgewogICBbQ0VSZWFjdGlv
bnNdIGF0dHJpYnV0ZSBET01TdHJpbmcgYXV0b2NvbXBsZXRlOwotICBbQ0VSZWFjdGlvbnNdIGF0
dHJpYnV0ZSBib29sZWFuIGF1dG9mb2N1czsKICAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgdW5z
aWduZWQgbG9uZyBjb2xzOwogICBbQ0VSZWFjdGlvbnNdIGF0dHJpYnV0ZSBET01TdHJpbmcgZGly
TmFtZTsKICAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgYm9vbGVhbiBkaXNhYmxlZDsKQEAgLTk3
MCw3ICs5ODUsNyBAQCBpbnRlcmZhY2UgSFRNTFRleHRBcmVhRWxlbWVudCA6IEhUTUxFbGVtZW50
IHsKIAogICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHR5cGU7CiAgIFtDRVJlYWN0aW9u
c10gYXR0cmlidXRlIERPTVN0cmluZyBkZWZhdWx0VmFsdWU7Ci0gIFtDRVJlYWN0aW9uc10gYXR0
cmlidXRlIFtUcmVhdE51bGxBcz1FbXB0eVN0cmluZ10gRE9NU3RyaW5nIHZhbHVlOworICBhdHRy
aWJ1dGUgW1RyZWF0TnVsbEFzPUVtcHR5U3RyaW5nXSBET01TdHJpbmcgdmFsdWU7CiAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIHRleHRMZW5ndGg7CiAKICAgcmVhZG9ubHkgYXR0
cmlidXRlIGJvb2xlYW4gd2lsbFZhbGlkYXRlOwpAQCAtMTA4Miw2ICsxMDk3LDE2IEBAIGludGVy
ZmFjZSBWYWxpZGl0eVN0YXRlIHsKICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gdmFsaWQ7
CiB9OwogCitbRXhwb3NlZD1XaW5kb3csCisgQ29uc3RydWN0b3IoRE9NU3RyaW5nIHR5cGUsIG9w
dGlvbmFsIEZvcm1EYXRhRXZlbnRJbml0IGV2ZW50SW5pdERpY3QgPSB7fSldCitpbnRlcmZhY2Ug
Rm9ybURhdGFFdmVudCA6IEV2ZW50IHsKKyAgcmVhZG9ubHkgYXR0cmlidXRlIEZvcm1EYXRhIGZv
cm1EYXRhOworfTsKKworZGljdGlvbmFyeSBGb3JtRGF0YUV2ZW50SW5pdCA6IEV2ZW50SW5pdCB7
CisgIHJlcXVpcmVkIEZvcm1EYXRhIGZvcm1EYXRhOworfTsKKwogW0V4cG9zZWQ9V2luZG93LAog
IEhUTUxDb25zdHJ1Y3Rvcl0KIGludGVyZmFjZSBIVE1MRGV0YWlsc0VsZW1lbnQgOiBIVE1MRWxl
bWVudCB7CkBAIC0xMTA4LDkgKzExMzMsOCBAQCBpbnRlcmZhY2UgSFRNTFNjcmlwdEVsZW1lbnQg
OiBIVE1MRWxlbWVudCB7CiAgIFtDRVJlYWN0aW9uc10gYXR0cmlidXRlIGJvb2xlYW4gZGVmZXI7
CiAgIFtDRVJlYWN0aW9uc10gYXR0cmlidXRlIERPTVN0cmluZz8gY3Jvc3NPcmlnaW47CiAgIFtD
RVJlYWN0aW9uc10gYXR0cmlidXRlIERPTVN0cmluZyB0ZXh0OwotICBbQ0VSZWFjdGlvbnNdIGF0
dHJpYnV0ZSBET01TdHJpbmcgbm9uY2U7CiAgIFtDRVJlYWN0aW9uc10gYXR0cmlidXRlIERPTVN0
cmluZyBpbnRlZ3JpdHk7Ci0KKyAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHJl
ZmVycmVyUG9saWN5OwogCiAgIC8vIGFsc28gaGFzIG9ic29sZXRlIG1lbWJlcnMKIH07CkBAIC0x
MTI1LDE1ICsxMTQ5LDE1IEBAIGludGVyZmFjZSBIVE1MVGVtcGxhdGVFbGVtZW50IDogSFRNTEVs
ZW1lbnQgewogIEhUTUxDb25zdHJ1Y3Rvcl0KIGludGVyZmFjZSBIVE1MU2xvdEVsZW1lbnQgOiBI
VE1MRWxlbWVudCB7CiAgIFtDRVJlYWN0aW9uc10gYXR0cmlidXRlIERPTVN0cmluZyBuYW1lOwot
ICBzZXF1ZW5jZTxOb2RlPiBhc3NpZ25lZE5vZGVzKG9wdGlvbmFsIEFzc2lnbmVkTm9kZXNPcHRp
b25zIG9wdGlvbnMpOwotICBzZXF1ZW5jZTxFbGVtZW50PiBhc3NpZ25lZEVsZW1lbnRzKG9wdGlv
bmFsIEFzc2lnbmVkTm9kZXNPcHRpb25zIG9wdGlvbnMpOworICBzZXF1ZW5jZTxOb2RlPiBhc3Np
Z25lZE5vZGVzKG9wdGlvbmFsIEFzc2lnbmVkTm9kZXNPcHRpb25zIG9wdGlvbnMgPSB7fSk7Cisg
IHNlcXVlbmNlPEVsZW1lbnQ+IGFzc2lnbmVkRWxlbWVudHMob3B0aW9uYWwgQXNzaWduZWROb2Rl
c09wdGlvbnMgb3B0aW9ucyA9IHt9KTsKIH07CiAKIGRpY3Rpb25hcnkgQXNzaWduZWROb2Rlc09w
dGlvbnMgewogICBib29sZWFuIGZsYXR0ZW4gPSBmYWxzZTsKIH07CiAKLXR5cGVkZWYgKENhbnZh
c1JlbmRlcmluZ0NvbnRleHQyRCBvciBJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQgb3IgV2Vi
R0xSZW5kZXJpbmdDb250ZXh0KSBSZW5kZXJpbmdDb250ZXh0OwordHlwZWRlZiAoQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dDJEIG9yIEltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dCBvciBXZWJHTFJl
bmRlcmluZ0NvbnRleHQgb3IgV2ViR0wyUmVuZGVyaW5nQ29udGV4dCkgUmVuZGVyaW5nQ29udGV4
dDsKIAogW0V4cG9zZWQ9V2luZG93LAogIEhUTUxDb25zdHJ1Y3Rvcl0KQEAgLTExNDMsOCArMTE2
Nyw4IEBAIGludGVyZmFjZSBIVE1MQ2FudmFzRWxlbWVudCA6IEhUTUxFbGVtZW50IHsKIAogICBS
ZW5kZXJpbmdDb250ZXh0PyBnZXRDb250ZXh0KERPTVN0cmluZyBjb250ZXh0SWQsIG9wdGlvbmFs
IGFueSBvcHRpb25zID0gbnVsbCk7CiAKLSAgVVNWU3RyaW5nIHRvRGF0YVVSTChvcHRpb25hbCBE
T01TdHJpbmcgdHlwZSwgb3B0aW9uYWwgYW55IHF1YWxpdHkpOwotICB2b2lkIHRvQmxvYihCbG9i
Q2FsbGJhY2sgX2NhbGxiYWNrLCBvcHRpb25hbCBET01TdHJpbmcgdHlwZSwgb3B0aW9uYWwgYW55
IHF1YWxpdHkpOworICBVU1ZTdHJpbmcgdG9EYXRhVVJMKG9wdGlvbmFsIERPTVN0cmluZyB0eXBl
ID0gImltYWdlL3BuZyIsIG9wdGlvbmFsIGFueSBxdWFsaXR5KTsKKyAgdm9pZCB0b0Jsb2IoQmxv
YkNhbGxiYWNrIF9jYWxsYmFjaywgb3B0aW9uYWwgRE9NU3RyaW5nIHR5cGUgPSAiaW1hZ2UvcG5n
Iiwgb3B0aW9uYWwgYW55IHF1YWxpdHkpOwogICBPZmZzY3JlZW5DYW52YXMgdHJhbnNmZXJDb250
cm9sVG9PZmZzY3JlZW4oKTsKIH07CiAKQEAgLTExNjMsNiArMTE4Nyw3IEBAIGVudW0gQ2FudmFz
RmlsbFJ1bGUgeyAibm9uemVybyIsICJldmVub2RkIiB9OwogCiBkaWN0aW9uYXJ5IENhbnZhc1Jl
bmRlcmluZ0NvbnRleHQyRFNldHRpbmdzIHsKICAgYm9vbGVhbiBhbHBoYSA9IHRydWU7CisgIGJv
b2xlYW4gZGVzeW5jaHJvbml6ZWQgPSBmYWxzZTsKIH07CiAKIGVudW0gSW1hZ2VTbW9vdGhpbmdR
dWFsaXR5IHsgImxvdyIsICJtZWRpdW0iLCAiaGlnaCIgfTsKQEAgLTExNzEsNiArMTE5Niw4IEBA
IGVudW0gSW1hZ2VTbW9vdGhpbmdRdWFsaXR5IHsgImxvdyIsICJtZWRpdW0iLCAiaGlnaCIgfTsK
IGludGVyZmFjZSBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQgewogICAvLyBiYWNrLXJlZmVyZW5j
ZSB0byB0aGUgY2FudmFzCiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBIVE1MQ2FudmFzRWxlbWVudCBj
YW52YXM7CisKKyAgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEU2V0dGluZ3MgZ2V0Q29udGV4dEF0
dHJpYnV0ZXMoKTsKIH07CiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQgaW5jbHVkZXMgQ2FudmFz
U3RhdGU7CiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQgaW5jbHVkZXMgQ2FudmFzVHJhbnNmb3Jt
OwpAQCAtMTIwNCw4ICsxMjMxLDkgQEAgaW50ZXJmYWNlIG1peGluIENhbnZhc1RyYW5zZm9ybSB7
CiAKICAgW05ld09iamVjdF0gRE9NTWF0cml4IGdldFRyYW5zZm9ybSgpOwogICB2b2lkIHNldFRy
YW5zZm9ybSh1bnJlc3RyaWN0ZWQgZG91YmxlIGEsIHVucmVzdHJpY3RlZCBkb3VibGUgYiwgdW5y
ZXN0cmljdGVkIGRvdWJsZSBjLCB1bnJlc3RyaWN0ZWQgZG91YmxlIGQsIHVucmVzdHJpY3RlZCBk
b3VibGUgZSwgdW5yZXN0cmljdGVkIGRvdWJsZSBmKTsKLSAgdm9pZCBzZXRUcmFuc2Zvcm0ob3B0
aW9uYWwgRE9NTWF0cml4MkRJbml0IHRyYW5zZm9ybSk7CisgIHZvaWQgc2V0VHJhbnNmb3JtKG9w
dGlvbmFsIERPTU1hdHJpeDJESW5pdCB0cmFuc2Zvcm0gPSB7fSk7CiAgIHZvaWQgcmVzZXRUcmFu
c2Zvcm0oKTsKKwogfTsKIAogaW50ZXJmYWNlIG1peGluIENhbnZhc0NvbXBvc2l0aW5nIHsKQEAg
LTEyMTgsNiArMTI0Niw3IEBAIGludGVyZmFjZSBtaXhpbiBDYW52YXNJbWFnZVNtb290aGluZyB7
CiAgIC8vIGltYWdlIHNtb290aGluZwogICBhdHRyaWJ1dGUgYm9vbGVhbiBpbWFnZVNtb290aGlu
Z0VuYWJsZWQ7IC8vIChkZWZhdWx0IHRydWUpCiAgIGF0dHJpYnV0ZSBJbWFnZVNtb290aGluZ1F1
YWxpdHkgaW1hZ2VTbW9vdGhpbmdRdWFsaXR5OyAvLyAoZGVmYXVsdCBsb3cpCisKIH07CiAKIGlu
dGVyZmFjZSBtaXhpbiBDYW52YXNGaWxsU3Ryb2tlU3R5bGVzIHsKQEAgLTEyMjcsNiArMTI1Niw3
IEBAIGludGVyZmFjZSBtaXhpbiBDYW52YXNGaWxsU3Ryb2tlU3R5bGVzIHsKICAgQ2FudmFzR3Jh
ZGllbnQgY3JlYXRlTGluZWFyR3JhZGllbnQoZG91YmxlIHgwLCBkb3VibGUgeTAsIGRvdWJsZSB4
MSwgZG91YmxlIHkxKTsKICAgQ2FudmFzR3JhZGllbnQgY3JlYXRlUmFkaWFsR3JhZGllbnQoZG91
YmxlIHgwLCBkb3VibGUgeTAsIGRvdWJsZSByMCwgZG91YmxlIHgxLCBkb3VibGUgeTEsIGRvdWJs
ZSByMSk7CiAgIENhbnZhc1BhdHRlcm4/IGNyZWF0ZVBhdHRlcm4oQ2FudmFzSW1hZ2VTb3VyY2Ug
aW1hZ2UsIFtUcmVhdE51bGxBcz1FbXB0eVN0cmluZ10gRE9NU3RyaW5nIHJlcGV0aXRpb24pOwor
CiB9OwogCiBpbnRlcmZhY2UgbWl4aW4gQ2FudmFzU2hhZG93U3R5bGVzIHsKQEAgLTEyNTgsNyAr
MTI4OCw2IEBAIGludGVyZmFjZSBtaXhpbiBDYW52YXNEcmF3UGF0aCB7CiAgIHZvaWQgc3Ryb2tl
KFBhdGgyRCBwYXRoKTsKICAgdm9pZCBjbGlwKG9wdGlvbmFsIENhbnZhc0ZpbGxSdWxlIGZpbGxS
dWxlID0gIm5vbnplcm8iKTsKICAgdm9pZCBjbGlwKFBhdGgyRCBwYXRoLCBvcHRpb25hbCBDYW52
YXNGaWxsUnVsZSBmaWxsUnVsZSA9ICJub256ZXJvIik7Ci0gIHZvaWQgcmVzZXRDbGlwKCk7CiAg
IGJvb2xlYW4gaXNQb2ludEluUGF0aCh1bnJlc3RyaWN0ZWQgZG91YmxlIHgsIHVucmVzdHJpY3Rl
ZCBkb3VibGUgeSwgb3B0aW9uYWwgQ2FudmFzRmlsbFJ1bGUgZmlsbFJ1bGUgPSAibm9uemVybyIp
OwogICBib29sZWFuIGlzUG9pbnRJblBhdGgoUGF0aDJEIHBhdGgsIHVucmVzdHJpY3RlZCBkb3Vi
bGUgeCwgdW5yZXN0cmljdGVkIGRvdWJsZSB5LCBvcHRpb25hbCBDYW52YXNGaWxsUnVsZSBmaWxs
UnVsZSA9ICJub256ZXJvIik7CiAgIGJvb2xlYW4gaXNQb2ludEluU3Ryb2tlKHVucmVzdHJpY3Rl
ZCBkb3VibGUgeCwgdW5yZXN0cmljdGVkIGRvdWJsZSB5KTsKQEAgLTEzNDQsMTAgKzEzNzMsMTAg
QEAgaW50ZXJmYWNlIENhbnZhc0dyYWRpZW50IHsKIFtFeHBvc2VkPShXaW5kb3csV29ya2VyKV0K
IGludGVyZmFjZSBDYW52YXNQYXR0ZXJuIHsKICAgLy8gb3BhcXVlIG9iamVjdAotICB2b2lkIHNl
dFRyYW5zZm9ybShvcHRpb25hbCBET01NYXRyaXgyREluaXQgdHJhbnNmb3JtKTsKKyAgdm9pZCBz
ZXRUcmFuc2Zvcm0ob3B0aW9uYWwgRE9NTWF0cml4MkRJbml0IHRyYW5zZm9ybSA9IHt9KTsKIH07
CiAKLVtFeHBvc2VkPVdpbmRvd10KK1tFeHBvc2VkPShXaW5kb3csV29ya2VyKV0KIGludGVyZmFj
ZSBUZXh0TWV0cmljcyB7CiAgIC8vIHgtZGlyZWN0aW9uCiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBk
b3VibGUgd2lkdGg7IC8vIGFkdmFuY2Ugd2lkdGgKQEAgLTEzNzksMTMgKzE0MDgsMTMgQEAgaW50
ZXJmYWNlIEltYWdlRGF0YSB7CiBbQ29uc3RydWN0b3Iob3B0aW9uYWwgKFBhdGgyRCBvciBET01T
dHJpbmcpIHBhdGgpLAogIEV4cG9zZWQ9KFdpbmRvdyxXb3JrZXIpXQogaW50ZXJmYWNlIFBhdGgy
RCB7Ci0gIHZvaWQgYWRkUGF0aChQYXRoMkQgcGF0aCwgb3B0aW9uYWwgRE9NTWF0cml4MkRJbml0
IHRyYW5zZm9ybSk7CisgIHZvaWQgYWRkUGF0aChQYXRoMkQgcGF0aCwgb3B0aW9uYWwgRE9NTWF0
cml4MkRJbml0IHRyYW5zZm9ybSA9IHt9KTsKIH07CiBQYXRoMkQgaW5jbHVkZXMgQ2FudmFzUGF0
aDsKIAotW0V4cG9zZWQ9V2luZG93XQorW0V4cG9zZWQ9KFdpbmRvdyxXb3JrZXIpXQogaW50ZXJm
YWNlIEltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dCB7Ci0gIHJlYWRvbmx5IGF0dHJpYnV0ZSBI
VE1MQ2FudmFzRWxlbWVudCBjYW52YXM7CisgIHJlYWRvbmx5IGF0dHJpYnV0ZSAoSFRNTENhbnZh
c0VsZW1lbnQgb3IgT2Zmc2NyZWVuQ2FudmFzKSBjYW52YXM7CiAgIHZvaWQgdHJhbnNmZXJGcm9t
SW1hZ2VCaXRtYXAoSW1hZ2VCaXRtYXA/IGJpdG1hcCk7CiB9OwogCkBAIC0xMzkzLDI3ICsxNDIy
LDI1IEBAIGRpY3Rpb25hcnkgSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0U2V0dGluZ3Mgewog
ICBib29sZWFuIGFscGhhID0gdHJ1ZTsKIH07CiAKLXR5cGVkZWYgKE9mZnNjcmVlbkNhbnZhc1Jl
bmRlcmluZ0NvbnRleHQyRCBvcgotICAgICAgICBXZWJHTFJlbmRlcmluZ0NvbnRleHQpIE9mZnNj
cmVlblJlbmRlcmluZ0NvbnRleHQ7Cit0eXBlZGVmIChPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdD
b250ZXh0MkQgb3IgSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0IG9yIFdlYkdMUmVuZGVyaW5n
Q29udGV4dCBvciBXZWJHTDJSZW5kZXJpbmdDb250ZXh0KSBPZmZzY3JlZW5SZW5kZXJpbmdDb250
ZXh0OwogCiBkaWN0aW9uYXJ5IEltYWdlRW5jb2RlT3B0aW9ucyB7CiAgIERPTVN0cmluZyB0eXBl
ID0gImltYWdlL3BuZyI7Ci0gIHVucmVzdHJpY3RlZCBkb3VibGUgcXVhbGl0eSA9IDEuMDsKKyAg
dW5yZXN0cmljdGVkIGRvdWJsZSBxdWFsaXR5OwogfTsKIAotZW51bSBPZmZzY3JlZW5SZW5kZXJp
bmdDb250ZXh0SWQgeyAiMmQiLCAid2ViZ2wiIH07CitlbnVtIE9mZnNjcmVlblJlbmRlcmluZ0Nv
bnRleHRJZCB7ICIyZCIsICJiaXRtYXByZW5kZXJlciIsICJ3ZWJnbCIsICJ3ZWJnbDIiIH07CiAK
IFtDb25zdHJ1Y3RvcihbRW5mb3JjZVJhbmdlXSB1bnNpZ25lZCBsb25nIGxvbmcgd2lkdGgsIFtF
bmZvcmNlUmFuZ2VdIHVuc2lnbmVkIGxvbmcgbG9uZyBoZWlnaHQpLCBFeHBvc2VkPShXaW5kb3cs
V29ya2VyKSwgVHJhbnNmZXJhYmxlXQogaW50ZXJmYWNlIE9mZnNjcmVlbkNhbnZhcyA6IEV2ZW50
VGFyZ2V0IHsKLSAgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbG9uZyB3aWR0aDsKLSAgYXR0cmli
dXRlIHVuc2lnbmVkIGxvbmcgbG9uZyBoZWlnaHQ7CisgIGF0dHJpYnV0ZSBbRW5mb3JjZVJhbmdl
XSB1bnNpZ25lZCBsb25nIGxvbmcgd2lkdGg7CisgIGF0dHJpYnV0ZSBbRW5mb3JjZVJhbmdlXSB1
bnNpZ25lZCBsb25nIGxvbmcgaGVpZ2h0OwogCiAgIE9mZnNjcmVlblJlbmRlcmluZ0NvbnRleHQ/
IGdldENvbnRleHQoT2Zmc2NyZWVuUmVuZGVyaW5nQ29udGV4dElkIGNvbnRleHRJZCwgb3B0aW9u
YWwgYW55IG9wdGlvbnMgPSBudWxsKTsKICAgSW1hZ2VCaXRtYXAgdHJhbnNmZXJUb0ltYWdlQml0
bWFwKCk7Ci0gIFByb21pc2U8QmxvYj4gY29udmVydFRvQmxvYihvcHRpb25hbCBJbWFnZUVuY29k
ZU9wdGlvbnMgb3B0aW9ucyk7CisgIFByb21pc2U8QmxvYj4gY29udmVydFRvQmxvYihvcHRpb25h
bCBJbWFnZUVuY29kZU9wdGlvbnMgb3B0aW9ucyA9IHt9KTsKIH07CiAKLQogW0V4cG9zZWQ9KFdp
bmRvdyxXb3JrZXIpXQogaW50ZXJmYWNlIE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQy
RCB7CiAgIHZvaWQgY29tbWl0KCk7CkBAIC0xNDI5LDMyICsxNDU2LDc1IEBAIE9mZnNjcmVlbkNh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRCBpbmNsdWRlcyBDYW52YXNTaGFkb3dTdHlsZXM7CiBPZmZz
Y3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQgaW5jbHVkZXMgQ2FudmFzRmlsdGVyczsKIE9m
ZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCBpbmNsdWRlcyBDYW52YXNSZWN0OwogT2Zm
c2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEIGluY2x1ZGVzIENhbnZhc0RyYXdQYXRoOwor
T2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEIGluY2x1ZGVzIENhbnZhc1RleHQ7CiBP
ZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQgaW5jbHVkZXMgQ2FudmFzRHJhd0ltYWdl
OwogT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEIGluY2x1ZGVzIENhbnZhc0ltYWdl
RGF0YTsKIE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCBpbmNsdWRlcyBDYW52YXNQ
YXRoRHJhd2luZ1N0eWxlczsKK09mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCBpbmNs
dWRlcyBDYW52YXNUZXh0RHJhd2luZ1N0eWxlczsKIE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyRCBpbmNsdWRlcyBDYW52YXNQYXRoOwogCi0KIFtFeHBvc2VkPVdpbmRvd10KIGludGVy
ZmFjZSBDdXN0b21FbGVtZW50UmVnaXN0cnkgewotICBbQ0VSZWFjdGlvbnNdIHZvaWQgZGVmaW5l
KERPTVN0cmluZyBuYW1lLCBGdW5jdGlvbiBjb25zdHJ1Y3Rvciwgb3B0aW9uYWwgRWxlbWVudERl
ZmluaXRpb25PcHRpb25zIG9wdGlvbnMpOworICBbQ0VSZWFjdGlvbnNdIHZvaWQgZGVmaW5lKERP
TVN0cmluZyBuYW1lLCBDdXN0b21FbGVtZW50Q29uc3RydWN0b3IgY29uc3RydWN0b3IsIG9wdGlv
bmFsIEVsZW1lbnREZWZpbml0aW9uT3B0aW9ucyBvcHRpb25zID0ge30pOwogICBhbnkgZ2V0KERP
TVN0cmluZyBuYW1lKTsKICAgUHJvbWlzZTx2b2lkPiB3aGVuRGVmaW5lZChET01TdHJpbmcgbmFt
ZSk7CisgIFtDRVJlYWN0aW9uc10gdm9pZCB1cGdyYWRlKE5vZGUgcm9vdCk7CiB9OwogCitjYWxs
YmFjayBDdXN0b21FbGVtZW50Q29uc3RydWN0b3IgPSBIVE1MRWxlbWVudCAoKTsKKwogZGljdGlv
bmFyeSBFbGVtZW50RGVmaW5pdGlvbk9wdGlvbnMgewogICBET01TdHJpbmcgZXh0ZW5kczsKIH07
CiAKK1tFeHBvc2VkPVdpbmRvd10KK2ludGVyZmFjZSBFbGVtZW50SW50ZXJuYWxzIHsKKyAgLy8g
Rm9ybS1hc3NvY2lhdGVkIGN1c3RvbSBlbGVtZW50cworCisgIHZvaWQgc2V0Rm9ybVZhbHVlKChG
aWxlIG9yIFVTVlN0cmluZyBvciBGb3JtRGF0YSk/IHZhbHVlLAorICAgICAgICAgICAgICAgICAg
ICBvcHRpb25hbCAoRmlsZSBvciBVU1ZTdHJpbmcgb3IgRm9ybURhdGEpPyBzdGF0ZSk7CisKKyAg
cmVhZG9ubHkgYXR0cmlidXRlIEhUTUxGb3JtRWxlbWVudD8gZm9ybTsKKworICB2b2lkIHNldFZh
bGlkaXR5KFZhbGlkaXR5U3RhdGVGbGFncyBmbGFncywKKyAgICAgICAgICAgICAgICAgICBvcHRp
b25hbCBET01TdHJpbmcgbWVzc2FnZSwKKyAgICAgICAgICAgICAgICAgICBvcHRpb25hbCBIVE1M
RWxlbWVudCBhbmNob3IpOworICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiB3aWxsVmFsaWRh
dGU7CisgIHJlYWRvbmx5IGF0dHJpYnV0ZSBWYWxpZGl0eVN0YXRlIHZhbGlkaXR5OworICByZWFk
b25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlOworICBib29sZWFuIGNo
ZWNrVmFsaWRpdHkoKTsKKyAgYm9vbGVhbiByZXBvcnRWYWxpZGl0eSgpOworCisgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBOb2RlTGlzdCBsYWJlbHM7Cit9OworCitkaWN0aW9uYXJ5IFZhbGlkaXR5U3Rh
dGVGbGFncyB7CisgIGJvb2xlYW4gdmFsdWVNaXNzaW5nID0gZmFsc2U7CisgIGJvb2xlYW4gdHlw
ZU1pc21hdGNoID0gZmFsc2U7CisgIGJvb2xlYW4gcGF0dGVybk1pc21hdGNoID0gZmFsc2U7Cisg
IGJvb2xlYW4gdG9vTG9uZyA9IGZhbHNlOworICBib29sZWFuIHRvb1Nob3J0ID0gZmFsc2U7Cisg
IGJvb2xlYW4gcmFuZ2VVbmRlcmZsb3cgPSBmYWxzZTsKKyAgYm9vbGVhbiByYW5nZU92ZXJmbG93
ID0gZmFsc2U7CisgIGJvb2xlYW4gc3RlcE1pc21hdGNoID0gZmFsc2U7CisgIGJvb2xlYW4gYmFk
SW5wdXQgPSBmYWxzZTsKKyAgYm9vbGVhbiBjdXN0b21FcnJvciA9IGZhbHNlOworfTsKKworZGlj
dGlvbmFyeSBGb2N1c09wdGlvbnMgeworICBib29sZWFuIHByZXZlbnRTY3JvbGwgPSBmYWxzZTsK
K307CisKIGludGVyZmFjZSBtaXhpbiBFbGVtZW50Q29udGVudEVkaXRhYmxlIHsKICAgW0NFUmVh
Y3Rpb25zXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGNvbnRlbnRFZGl0YWJsZTsKKyAgW0NFUmVhY3Rp
b25zXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGVudGVyS2V5SGludDsKICAgcmVhZG9ubHkgYXR0cmli
dXRlIGJvb2xlYW4gaXNDb250ZW50RWRpdGFibGU7CiAgIFtDRVJlYWN0aW9uc10gYXR0cmlidXRl
IERPTVN0cmluZyBpbnB1dE1vZGU7CiB9OwogCiBbRXhwb3NlZD1XaW5kb3csCiAgQ29uc3RydWN0
b3JdCi0gIGludGVyZmFjZSBEYXRhVHJhbnNmZXIgeworaW50ZXJmYWNlIERhdGFUcmFuc2ZlciB7
CiAgIGF0dHJpYnV0ZSBET01TdHJpbmcgZHJvcEVmZmVjdDsKICAgYXR0cmlidXRlIERPTVN0cmlu
ZyBlZmZlY3RBbGxvd2VkOwogCkBAIC0xNDkxLDcgKzE1NjEsNyBAQCBpbnRlcmZhY2UgRGF0YVRy
YW5zZmVySXRlbSB7CiBjYWxsYmFjayBGdW5jdGlvblN0cmluZ0NhbGxiYWNrID0gdm9pZCAoRE9N
U3RyaW5nIGRhdGEpOwogCiBbRXhwb3NlZD1XaW5kb3csCi0gQ29uc3RydWN0b3IoRE9NU3RyaW5n
IHR5cGUsIG9wdGlvbmFsIERyYWdFdmVudEluaXQgZXZlbnRJbml0RGljdCldCisgQ29uc3RydWN0
b3IoRE9NU3RyaW5nIHR5cGUsIG9wdGlvbmFsIERyYWdFdmVudEluaXQgZXZlbnRJbml0RGljdCA9
IHt9KV0KIGludGVyZmFjZSBEcmFnRXZlbnQgOiBNb3VzZUV2ZW50IHsKICAgcmVhZG9ubHkgYXR0
cmlidXRlIERhdGFUcmFuc2Zlcj8gZGF0YVRyYW5zZmVyOwogfTsKQEAgLTE1MzIsNyArMTYwMiw3
IEBAIGludGVyZmFjZSBXaW5kb3cgOiBFdmVudFRhcmdldCB7CiAgIGF0dHJpYnV0ZSBhbnkgb3Bl
bmVyOwogICBbUmVwbGFjZWFibGVdIHJlYWRvbmx5IGF0dHJpYnV0ZSBXaW5kb3dQcm94eT8gcGFy
ZW50OwogICByZWFkb25seSBhdHRyaWJ1dGUgRWxlbWVudD8gZnJhbWVFbGVtZW50OwotICBXaW5k
b3dQcm94eT8gb3BlbihvcHRpb25hbCBVU1ZTdHJpbmcgdXJsID0gImFib3V0OmJsYW5rIiwgb3B0
aW9uYWwgRE9NU3RyaW5nIHRhcmdldCA9ICJfYmxhbmsiLCBvcHRpb25hbCBbVHJlYXROdWxsQXM9
RW1wdHlTdHJpbmddIERPTVN0cmluZyBmZWF0dXJlcyA9ICIiKTsKKyAgV2luZG93UHJveHk/IG9w
ZW4ob3B0aW9uYWwgVVNWU3RyaW5nIHVybCA9ICIiLCBvcHRpb25hbCBET01TdHJpbmcgdGFyZ2V0
ID0gIl9ibGFuayIsIG9wdGlvbmFsIFtUcmVhdE51bGxBcz1FbXB0eVN0cmluZ10gRE9NU3RyaW5n
IGZlYXR1cmVzID0gIiIpOwogICBnZXR0ZXIgb2JqZWN0IChET01TdHJpbmcgbmFtZSk7CiAgIC8v
IFNpbmNlIHRoaXMgaXMgdGhlIGdsb2JhbCBvYmplY3QsIHRoZSBJREwgbmFtZWQgZ2V0dGVyIGFk
ZHMgYSBOYW1lZFByb3BlcnRpZXNPYmplY3QgZXhvdGljCiAgIC8vIG9iamVjdCBvbiB0aGUgcHJv
dG90eXBlIGNoYWluLiBJbmRlZWQsIHRoaXMgZG9lcyBub3QgbWFrZSB0aGUgZ2xvYmFsIG9iamVj
dCBhbiBleG90aWMgb2JqZWN0LgpAQCAtMTU0MCw3ICsxNjEwLDcgQEAgaW50ZXJmYWNlIFdpbmRv
dyA6IEV2ZW50VGFyZ2V0IHsKIAogICAvLyB0aGUgdXNlciBhZ2VudAogICByZWFkb25seSBhdHRy
aWJ1dGUgTmF2aWdhdG9yIG5hdmlnYXRvcjsKLSAgcmVhZG9ubHkgYXR0cmlidXRlIEFwcGxpY2F0
aW9uQ2FjaGUgYXBwbGljYXRpb25DYWNoZTsKKyAgW1NlY3VyZUNvbnRleHRdIHJlYWRvbmx5IGF0
dHJpYnV0ZSBBcHBsaWNhdGlvbkNhY2hlIGFwcGxpY2F0aW9uQ2FjaGU7CiAKICAgLy8gdXNlciBw
cm9tcHRzCiAgIHZvaWQgYWxlcnQoKTsKQEAgLTE1NDksMTcgKzE2MTksMTUgQEAgaW50ZXJmYWNl
IFdpbmRvdyA6IEV2ZW50VGFyZ2V0IHsKICAgRE9NU3RyaW5nPyBwcm9tcHQob3B0aW9uYWwgRE9N
U3RyaW5nIG1lc3NhZ2UgPSAiIiwgb3B0aW9uYWwgRE9NU3RyaW5nIGRlZmF1bHQgPSAiIik7CiAg
IHZvaWQgcHJpbnQoKTsKIAotICB1bnNpZ25lZCBsb25nIHJlcXVlc3RBbmltYXRpb25GcmFtZShG
cmFtZVJlcXVlc3RDYWxsYmFjayBjYWxsYmFjayk7Ci0gIHZvaWQgY2FuY2VsQW5pbWF0aW9uRnJh
bWUodW5zaWduZWQgbG9uZyBoYW5kbGUpOwotCiAgIHZvaWQgcG9zdE1lc3NhZ2UoYW55IG1lc3Nh
Z2UsIFVTVlN0cmluZyB0YXJnZXRPcmlnaW4sIG9wdGlvbmFsIHNlcXVlbmNlPG9iamVjdD4gdHJh
bnNmZXIgPSBbXSk7Ci0KLSAgLy8gYWxzbyBoYXMgb2Jzb2xldGUgbWVtYmVycworICB2b2lkIHBv
c3RNZXNzYWdlKGFueSBtZXNzYWdlLCBvcHRpb25hbCBXaW5kb3dQb3N0TWVzc2FnZU9wdGlvbnMg
b3B0aW9ucyA9IHt9KTsKIH07CiBXaW5kb3cgaW5jbHVkZXMgR2xvYmFsRXZlbnRIYW5kbGVyczsK
IFdpbmRvdyBpbmNsdWRlcyBXaW5kb3dFdmVudEhhbmRsZXJzOwogCi1jYWxsYmFjayBGcmFtZVJl
cXVlc3RDYWxsYmFjayA9IHZvaWQgKERPTUhpZ2hSZXNUaW1lU3RhbXAgdGltZSk7CitkaWN0aW9u
YXJ5IFdpbmRvd1Bvc3RNZXNzYWdlT3B0aW9ucyA6IFBvc3RNZXNzYWdlT3B0aW9ucyB7CisgIFVT
VlN0cmluZyB0YXJnZXRPcmlnaW4gPSAiLyI7Cit9OwogCiBbRXhwb3NlZD1XaW5kb3ddCiBpbnRl
cmZhY2UgQmFyUHJvcCB7CkBAIC0xNTcwLDcgKzE2MzgsNiBAQCBlbnVtIFNjcm9sbFJlc3RvcmF0
aW9uIHsgImF1dG8iLCAibWFudWFsIiB9OwogCiBbRXhwb3NlZD1XaW5kb3ddCiBpbnRlcmZhY2Ug
SGlzdG9yeSB7Ci0gIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGluZGV4OwogICBy
ZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsZW5ndGg7CiAgIGF0dHJpYnV0ZSBTY3Jv
bGxSZXN0b3JhdGlvbiBzY3JvbGxSZXN0b3JhdGlvbjsKICAgcmVhZG9ubHkgYXR0cmlidXRlIGFu
eSBzdGF0ZTsKQEAgLTE2MDEsNyArMTY2OCw3IEBAIGludGVyZmFjZSBMb2NhdGlvbiB7IC8vIGJ1
dCBzZWUgYWxzbyBhZGRpdGlvbmFsIGNyZWF0aW9uIHN0ZXBzIGFuZCBvdmVycmlkZGVuIGluCiB9
OwogCiBbRXhwb3NlZD1XaW5kb3csCi0gQ29uc3RydWN0b3IoRE9NU3RyaW5nIHR5cGUsIG9wdGlv
bmFsIFBvcFN0YXRlRXZlbnRJbml0IGV2ZW50SW5pdERpY3QpXQorIENvbnN0cnVjdG9yKERPTVN0
cmluZyB0eXBlLCBvcHRpb25hbCBQb3BTdGF0ZUV2ZW50SW5pdCBldmVudEluaXREaWN0ID0ge30p
XQogaW50ZXJmYWNlIFBvcFN0YXRlRXZlbnQgOiBFdmVudCB7CiAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBhbnkgc3RhdGU7CiB9OwpAQCAtMTYxMSw3ICsxNjc4LDcgQEAgZGljdGlvbmFyeSBQb3BTdGF0
ZUV2ZW50SW5pdCA6IEV2ZW50SW5pdCB7CiB9OwogCiBbRXhwb3NlZD1XaW5kb3csCi0gQ29uc3Ry
dWN0b3IoRE9NU3RyaW5nIHR5cGUsIG9wdGlvbmFsIEhhc2hDaGFuZ2VFdmVudEluaXQgZXZlbnRJ
bml0RGljdCldCisgQ29uc3RydWN0b3IoRE9NU3RyaW5nIHR5cGUsIG9wdGlvbmFsIEhhc2hDaGFu
Z2VFdmVudEluaXQgZXZlbnRJbml0RGljdCA9IHt9KV0KIGludGVyZmFjZSBIYXNoQ2hhbmdlRXZl
bnQgOiBFdmVudCB7CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBVU1ZTdHJpbmcgb2xkVVJMOwogICBy
ZWFkb25seSBhdHRyaWJ1dGUgVVNWU3RyaW5nIG5ld1VSTDsKQEAgLTE2MjMsNyArMTY5MCw3IEBA
IGRpY3Rpb25hcnkgSGFzaENoYW5nZUV2ZW50SW5pdCA6IEV2ZW50SW5pdCB7CiB9OwogCiBbRXhw
b3NlZD1XaW5kb3csCi0gQ29uc3RydWN0b3IoRE9NU3RyaW5nIHR5cGUsIG9wdGlvbmFsIFBhZ2VU
cmFuc2l0aW9uRXZlbnRJbml0IGV2ZW50SW5pdERpY3QpXQorIENvbnN0cnVjdG9yKERPTVN0cmlu
ZyB0eXBlLCBvcHRpb25hbCBQYWdlVHJhbnNpdGlvbkV2ZW50SW5pdCBldmVudEluaXREaWN0ID0g
e30pXQogaW50ZXJmYWNlIFBhZ2VUcmFuc2l0aW9uRXZlbnQgOiBFdmVudCB7CiAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBib29sZWFuIHBlcnNpc3RlZDsKIH07CkBAIC0xNjM3LDcgKzE3MDQsOCBAQCBp
bnRlcmZhY2UgQmVmb3JlVW5sb2FkRXZlbnQgOiBFdmVudCB7CiAgIGF0dHJpYnV0ZSBET01TdHJp
bmcgcmV0dXJuVmFsdWU7CiB9OwogCi1bRXhwb3NlZD1XaW5kb3ddCitbU2VjdXJlQ29udGV4dCwK
KyBFeHBvc2VkPVdpbmRvd10KIGludGVyZmFjZSBBcHBsaWNhdGlvbkNhY2hlIDogRXZlbnRUYXJn
ZXQgewogCiAgIC8vIHVwZGF0ZSBzdGF0dXMKQEAgLTE2NjksNyArMTczNyw4IEBAIGludGVyZmFj
ZSBtaXhpbiBOYXZpZ2F0b3JPbkxpbmUgewogICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBv
bkxpbmU7CiB9OwogCi1bQ29uc3RydWN0b3IoRE9NU3RyaW5nIHR5cGUsIG9wdGlvbmFsIEVycm9y
RXZlbnRJbml0IGV2ZW50SW5pdERpY3QpLCBFeHBvc2VkPShXaW5kb3csV29ya2VyKV0KK1tDb25z
dHJ1Y3RvcihET01TdHJpbmcgdHlwZSwgb3B0aW9uYWwgRXJyb3JFdmVudEluaXQgZXZlbnRJbml0
RGljdCA9IHt9KSwKKyBFeHBvc2VkPShXaW5kb3csV29ya2VyKV0KIGludGVyZmFjZSBFcnJvckV2
ZW50IDogRXZlbnQgewogICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIG1lc3NhZ2U7CiAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBVU1ZTdHJpbmcgZmlsZW5hbWU7CkBAIC0xNzM1LDYgKzE4MDQs
NyBAQCBpbnRlcmZhY2UgbWl4aW4gR2xvYmFsRXZlbnRIYW5kbGVycyB7CiAgIGF0dHJpYnV0ZSBF
dmVudEhhbmRsZXIgb25lbmRlZDsKICAgYXR0cmlidXRlIE9uRXJyb3JFdmVudEhhbmRsZXIgb25l
cnJvcjsKICAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbmZvY3VzOworICBhdHRyaWJ1dGUgRXZl
bnRIYW5kbGVyIG9uZm9ybWRhdGE7CiAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25pbnB1dDsK
ICAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbmludmFsaWQ7CiAgIGF0dHJpYnV0ZSBFdmVudEhh
bmRsZXIgb25rZXlkb3duOwpAQCAtMTc0Myw3ICsxODEzLDYgQEAgaW50ZXJmYWNlIG1peGluIEds
b2JhbEV2ZW50SGFuZGxlcnMgewogICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9ubG9hZDsKICAg
YXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbmxvYWRlZGRhdGE7CiAgIGF0dHJpYnV0ZSBFdmVudEhh
bmRsZXIgb25sb2FkZWRtZXRhZGF0YTsKLSAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbmxvYWRl
bmQ7CiAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25sb2Fkc3RhcnQ7CiAgIGF0dHJpYnV0ZSBF
dmVudEhhbmRsZXIgb25tb3VzZWRvd247CiAgIFtMZW5pZW50VGhpc10gYXR0cmlidXRlIEV2ZW50
SGFuZGxlciBvbm1vdXNlZW50ZXI7CkBAIC0xODE0LDkgKzE4ODMsMTIgQEAgaW50ZXJmYWNlIG1p
eGluIFdpbmRvd09yV29ya2VyR2xvYmFsU2NvcGUgewogICBsb25nIHNldEludGVydmFsKFRpbWVy
SGFuZGxlciBoYW5kbGVyLCBvcHRpb25hbCBsb25nIHRpbWVvdXQgPSAwLCBhbnkuLi4gYXJndW1l
bnRzKTsKICAgdm9pZCBjbGVhckludGVydmFsKG9wdGlvbmFsIGxvbmcgaGFuZGxlID0gMCk7CiAK
KyAgLy8gbWljcm90YXNrIHF1ZXVpbmcKKyAgdm9pZCBxdWV1ZU1pY3JvdGFzayhWb2lkRnVuY3Rp
b24gY2FsbGJhY2spOworCiAgIC8vIEltYWdlQml0bWFwCi0gIFByb21pc2U8SW1hZ2VCaXRtYXA+
IGNyZWF0ZUltYWdlQml0bWFwKEltYWdlQml0bWFwU291cmNlIGltYWdlLCBvcHRpb25hbCBJbWFn
ZUJpdG1hcE9wdGlvbnMgb3B0aW9ucyk7Ci0gIFByb21pc2U8SW1hZ2VCaXRtYXA+IGNyZWF0ZUlt
YWdlQml0bWFwKEltYWdlQml0bWFwU291cmNlIGltYWdlLCBsb25nIHN4LCBsb25nIHN5LCBsb25n
IHN3LCBsb25nIHNoLCBvcHRpb25hbCBJbWFnZUJpdG1hcE9wdGlvbnMgb3B0aW9ucyk7CisgIFBy
b21pc2U8SW1hZ2VCaXRtYXA+IGNyZWF0ZUltYWdlQml0bWFwKEltYWdlQml0bWFwU291cmNlIGlt
YWdlLCBvcHRpb25hbCBJbWFnZUJpdG1hcE9wdGlvbnMgb3B0aW9ucyA9IHt9KTsKKyAgUHJvbWlz
ZTxJbWFnZUJpdG1hcD4gY3JlYXRlSW1hZ2VCaXRtYXAoSW1hZ2VCaXRtYXBTb3VyY2UgaW1hZ2Us
IGxvbmcgc3gsIGxvbmcgc3ksIGxvbmcgc3csIGxvbmcgc2gsIG9wdGlvbmFsIEltYWdlQml0bWFw
T3B0aW9ucyBvcHRpb25zID0ge30pOwogfTsKIFdpbmRvdyBpbmNsdWRlcyBXaW5kb3dPcldvcmtl
ckdsb2JhbFNjb3BlOwogV29ya2VyR2xvYmFsU2NvcGUgaW5jbHVkZXMgV2luZG93T3JXb3JrZXJH
bG9iYWxTY29wZTsKQEAgLTE4NDMsMTEgKzE5MTUsOSBAQCBpbnRlcmZhY2UgbWl4aW4gTmF2aWdh
dG9ySUQgewogICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHVzZXJBZ2VudDsKICAgW0V4
cG9zZWQ9V2luZG93XSByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHZlbmRvcjsKICAgW0V4
cG9zZWQ9V2luZG93XSByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHZlbmRvclN1YjsgLy8g
Y29uc3RhbnQgIiIKLQotICAvLyBhbHNvIGhhcyBhZGRpdGlvbmFsIG1lbWJlcnMgaW4gYSBwYXJ0
aWFsIGludGVyZmFjZQogfTsKIAotcGFydGlhbCBpbnRlcmZhY2UgTmF2aWdhdG9ySUQgeworcGFy
dGlhbCBpbnRlcmZhY2UgbWl4aW4gTmF2aWdhdG9ySUQgewogICBbRXhwb3NlZD1XaW5kb3ddIGJv
b2xlYW4gdGFpbnRFbmFibGVkKCk7IC8vIGNvbnN0YW50IGZhbHNlCiAgIFtFeHBvc2VkPVdpbmRv
d10gcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBvc2NwdTsKIH07CkBAIC0xOTMzLDcgKzIw
MDMsMTcgQEAgZGljdGlvbmFyeSBJbWFnZUJpdG1hcE9wdGlvbnMgewogICBSZXNpemVRdWFsaXR5
IHJlc2l6ZVF1YWxpdHkgPSAibG93IjsKIH07CiAKLVtDb25zdHJ1Y3RvcihET01TdHJpbmcgdHlw
ZSwgb3B0aW9uYWwgTWVzc2FnZUV2ZW50SW5pdCBldmVudEluaXREaWN0KSwgRXhwb3NlZD0oV2lu
ZG93LFdvcmtlcixBdWRpb1dvcmtsZXQpXQorY2FsbGJhY2sgRnJhbWVSZXF1ZXN0Q2FsbGJhY2sg
PSB2b2lkIChET01IaWdoUmVzVGltZVN0YW1wIHRpbWUpOworCitpbnRlcmZhY2UgbWl4aW4gQW5p
bWF0aW9uRnJhbWVQcm92aWRlciB7CisgIHVuc2lnbmVkIGxvbmcgcmVxdWVzdEFuaW1hdGlvbkZy
YW1lKEZyYW1lUmVxdWVzdENhbGxiYWNrIGNhbGxiYWNrKTsKKyAgdm9pZCBjYW5jZWxBbmltYXRp
b25GcmFtZSh1bnNpZ25lZCBsb25nIGhhbmRsZSk7Cit9OworV2luZG93IGluY2x1ZGVzIEFuaW1h
dGlvbkZyYW1lUHJvdmlkZXI7CitEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZSBpbmNsdWRlcyBB
bmltYXRpb25GcmFtZVByb3ZpZGVyOworCitbQ29uc3RydWN0b3IoRE9NU3RyaW5nIHR5cGUsIG9w
dGlvbmFsIE1lc3NhZ2VFdmVudEluaXQgZXZlbnRJbml0RGljdCA9IHt9KSwKKyBFeHBvc2VkPShX
aW5kb3csV29ya2VyLEF1ZGlvV29ya2xldCldCiBpbnRlcmZhY2UgTWVzc2FnZUV2ZW50IDogRXZl
bnQgewogICByZWFkb25seSBhdHRyaWJ1dGUgYW55IGRhdGE7CiAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBVU1ZTdHJpbmcgb3JpZ2luOwpAQCAtMTk1NCw3ICsyMDM0LDcgQEAgZGljdGlvbmFyeSBNZXNz
YWdlRXZlbnRJbml0IDogRXZlbnRJbml0IHsKIAogdHlwZWRlZiAoV2luZG93UHJveHkgb3IgTWVz
c2FnZVBvcnQgb3IgU2VydmljZVdvcmtlcikgTWVzc2FnZUV2ZW50U291cmNlOwogCi1bQ29uc3Ry
dWN0b3IoVVNWU3RyaW5nIHVybCwgb3B0aW9uYWwgRXZlbnRTb3VyY2VJbml0IGV2ZW50U291cmNl
SW5pdERpY3QpLCBFeHBvc2VkPShXaW5kb3csV29ya2VyKV0KK1tDb25zdHJ1Y3RvcihVU1ZTdHJp
bmcgdXJsLCBvcHRpb25hbCBFdmVudFNvdXJjZUluaXQgZXZlbnRTb3VyY2VJbml0RGljdCA9IHt9
KSwgRXhwb3NlZD0oV2luZG93LFdvcmtlcildCiBpbnRlcmZhY2UgRXZlbnRTb3VyY2UgOiBFdmVu
dFRhcmdldCB7CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBVU1ZTdHJpbmcgdXJsOwogICByZWFkb25s
eSBhdHRyaWJ1dGUgYm9vbGVhbiB3aXRoQ3JlZGVudGlhbHM7CkBAIC0yMDA2LDcgKzIwODYsOCBA
QCBpbnRlcmZhY2UgV2ViU29ja2V0IDogRXZlbnRUYXJnZXQgewogICB2b2lkIHNlbmQoQXJyYXlC
dWZmZXJWaWV3IGRhdGEpOwogfTsKIAotW0NvbnN0cnVjdG9yKERPTVN0cmluZyB0eXBlLCBvcHRp
b25hbCBDbG9zZUV2ZW50SW5pdCBldmVudEluaXREaWN0KSwgRXhwb3NlZD0oV2luZG93LFdvcmtl
cildCitbQ29uc3RydWN0b3IoRE9NU3RyaW5nIHR5cGUsIG9wdGlvbmFsIENsb3NlRXZlbnRJbml0
IGV2ZW50SW5pdERpY3QgPSB7fSksCisgRXhwb3NlZD0oV2luZG93LFdvcmtlcildCiBpbnRlcmZh
Y2UgQ2xvc2VFdmVudCA6IEV2ZW50IHsKICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gd2Fz
Q2xlYW47CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBzaG9ydCBjb2RlOwpAQCAtMjAy
Nyw3ICsyMTA4LDggQEAgaW50ZXJmYWNlIE1lc3NhZ2VDaGFubmVsIHsKIAogW0V4cG9zZWQ9KFdp
bmRvdyxXb3JrZXIsQXVkaW9Xb3JrbGV0KSwgVHJhbnNmZXJhYmxlXQogaW50ZXJmYWNlIE1lc3Nh
Z2VQb3J0IDogRXZlbnRUYXJnZXQgewotICB2b2lkIHBvc3RNZXNzYWdlKGFueSBtZXNzYWdlLCBv
cHRpb25hbCBzZXF1ZW5jZTxvYmplY3Q+IHRyYW5zZmVyID0gW10pOworICB2b2lkIHBvc3RNZXNz
YWdlKGFueSBtZXNzYWdlLCBzZXF1ZW5jZTxvYmplY3Q+IHRyYW5zZmVyKTsKKyAgdm9pZCBwb3N0
TWVzc2FnZShhbnkgbWVzc2FnZSwgb3B0aW9uYWwgUG9zdE1lc3NhZ2VPcHRpb25zIG9wdGlvbnMg
PSB7fSk7CiAgIHZvaWQgc3RhcnQoKTsKICAgdm9pZCBjbG9zZSgpOwogCkBAIC0yMDM2LDYgKzIx
MTgsMTAgQEAgaW50ZXJmYWNlIE1lc3NhZ2VQb3J0IDogRXZlbnRUYXJnZXQgewogICBhdHRyaWJ1
dGUgRXZlbnRIYW5kbGVyIG9ubWVzc2FnZWVycm9yOwogfTsKIAorZGljdGlvbmFyeSBQb3N0TWVz
c2FnZU9wdGlvbnMgeworICBzZXF1ZW5jZTxvYmplY3Q+IHRyYW5zZmVyID0gW107Cit9OworCiBb
Q29uc3RydWN0b3IoRE9NU3RyaW5nIG5hbWUpLCBFeHBvc2VkPShXaW5kb3csV29ya2VyKV0KIGlu
dGVyZmFjZSBCcm9hZGNhc3RDaGFubmVsIDogRXZlbnRUYXJnZXQgewogICByZWFkb25seSBhdHRy
aWJ1dGUgRE9NU3RyaW5nIG5hbWU7CkBAIC0yMDY0LDcgKzIxNTAsOCBAQCBpbnRlcmZhY2UgV29y
a2VyR2xvYmFsU2NvcGUgOiBFdmVudFRhcmdldCB7CiBpbnRlcmZhY2UgRGVkaWNhdGVkV29ya2Vy
R2xvYmFsU2NvcGUgOiBXb3JrZXJHbG9iYWxTY29wZSB7CiAgIFtSZXBsYWNlYWJsZV0gcmVhZG9u
bHkgYXR0cmlidXRlIERPTVN0cmluZyBuYW1lOwogCi0gIHZvaWQgcG9zdE1lc3NhZ2UoYW55IG1l
c3NhZ2UsIG9wdGlvbmFsIHNlcXVlbmNlPG9iamVjdD4gdHJhbnNmZXIgPSBbXSk7CisgIHZvaWQg
cG9zdE1lc3NhZ2UoYW55IG1lc3NhZ2UsIHNlcXVlbmNlPG9iamVjdD4gdHJhbnNmZXIpOworICB2
b2lkIHBvc3RNZXNzYWdlKGFueSBtZXNzYWdlLCBvcHRpb25hbCBQb3N0TWVzc2FnZU9wdGlvbnMg
b3B0aW9ucyA9IHt9KTsKIAogICB2b2lkIGNsb3NlKCk7CiAKQEAgLTIwODUsMTggKzIxNzIsMjAg
QEAgaW50ZXJmYWNlIG1peGluIEFic3RyYWN0V29ya2VyIHsKICAgYXR0cmlidXRlIEV2ZW50SGFu
ZGxlciBvbmVycm9yOwogfTsKIAotW0NvbnN0cnVjdG9yKFVTVlN0cmluZyBzY3JpcHRVUkwsIG9w
dGlvbmFsIFdvcmtlck9wdGlvbnMgb3B0aW9ucyksIEV4cG9zZWQ9KFdpbmRvdyxXb3JrZXIpXQor
W0NvbnN0cnVjdG9yKFVTVlN0cmluZyBzY3JpcHRVUkwsIG9wdGlvbmFsIFdvcmtlck9wdGlvbnMg
b3B0aW9ucyA9IHt9KSwKKyBFeHBvc2VkPShXaW5kb3csV29ya2VyKV0KIGludGVyZmFjZSBXb3Jr
ZXIgOiBFdmVudFRhcmdldCB7CiAgIHZvaWQgdGVybWluYXRlKCk7CiAKLSAgdm9pZCBwb3N0TWVz
c2FnZShhbnkgbWVzc2FnZSwgb3B0aW9uYWwgc2VxdWVuY2U8b2JqZWN0PiB0cmFuc2ZlciA9IFtd
KTsKKyAgdm9pZCBwb3N0TWVzc2FnZShhbnkgbWVzc2FnZSwgc2VxdWVuY2U8b2JqZWN0PiB0cmFu
c2Zlcik7CisgIHZvaWQgcG9zdE1lc3NhZ2UoYW55IG1lc3NhZ2UsIG9wdGlvbmFsIFBvc3RNZXNz
YWdlT3B0aW9ucyBvcHRpb25zID0ge30pOwogICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9ubWVz
c2FnZTsKICAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbm1lc3NhZ2VlcnJvcjsKIH07CiAKIGRp
Y3Rpb25hcnkgV29ya2VyT3B0aW9ucyB7CiAgIFdvcmtlclR5cGUgdHlwZSA9ICJjbGFzc2ljIjsK
LSAgUmVxdWVzdENyZWRlbnRpYWxzIGNyZWRlbnRpYWxzID0gIm9taXQiOyAvLyBjcmVkZW50aWFs
cyBpcyBvbmx5IHVzZWQgaWYgdHlwZSBpcyAibW9kdWxlIgorICBSZXF1ZXN0Q3JlZGVudGlhbHMg
Y3JlZGVudGlhbHMgPSAic2FtZS1vcmlnaW4iOyAvLyBjcmVkZW50aWFscyBpcyBvbmx5IHVzZWQg
aWYgdHlwZSBpcyAibW9kdWxlIgogICBET01TdHJpbmcgbmFtZSA9ICIiOwogfTsKIApAQCAtMjEw
NCw3ICsyMTkzLDcgQEAgZW51bSBXb3JrZXJUeXBlIHsgImNsYXNzaWMiLCAibW9kdWxlIiB9Owog
CiBXb3JrZXIgaW5jbHVkZXMgQWJzdHJhY3RXb3JrZXI7CiAKLVtDb25zdHJ1Y3RvcihVU1ZTdHJp
bmcgc2NyaXB0VVJMLCBvcHRpb25hbCAoRE9NU3RyaW5nIG9yIFdvcmtlck9wdGlvbnMpIG9wdGlv
bnMpLAorW0NvbnN0cnVjdG9yKFVTVlN0cmluZyBzY3JpcHRVUkwsIG9wdGlvbmFsIChET01TdHJp
bmcgb3IgV29ya2VyT3B0aW9ucykgb3B0aW9ucyA9IHt9KSwKICBFeHBvc2VkPShXaW5kb3csV29y
a2VyKV0KIGludGVyZmFjZSBTaGFyZWRXb3JrZXIgOiBFdmVudFRhcmdldCB7CiAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBNZXNzYWdlUG9ydCBwb3J0OwpAQCAtMjE1NiwxMyArMjI0NSwxNSBAQCBpbnRl
cmZhY2UgbWl4aW4gV2luZG93TG9jYWxTdG9yYWdlIHsKIFdpbmRvdyBpbmNsdWRlcyBXaW5kb3dM
b2NhbFN0b3JhZ2U7CiAKIFtFeHBvc2VkPVdpbmRvdywKLSBDb25zdHJ1Y3RvcihET01TdHJpbmcg
dHlwZSwgb3B0aW9uYWwgU3RvcmFnZUV2ZW50SW5pdCBldmVudEluaXREaWN0KV0KKyBDb25zdHJ1
Y3RvcihET01TdHJpbmcgdHlwZSwgb3B0aW9uYWwgU3RvcmFnZUV2ZW50SW5pdCBldmVudEluaXRE
aWN0ID0ge30pXQogaW50ZXJmYWNlIFN0b3JhZ2VFdmVudCA6IEV2ZW50IHsKICAgcmVhZG9ubHkg
YXR0cmlidXRlIERPTVN0cmluZz8ga2V5OwogICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5n
PyBvbGRWYWx1ZTsKICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZz8gbmV3VmFsdWU7CiAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBVU1ZTdHJpbmcgdXJsOwogICByZWFkb25seSBhdHRyaWJ1dGUg
U3RvcmFnZT8gc3RvcmFnZUFyZWE7CisKKyAgdm9pZCBpbml0U3RvcmFnZUV2ZW50KERPTVN0cmlu
ZyB0eXBlLCBvcHRpb25hbCBib29sZWFuIGJ1YmJsZXMgPSBmYWxzZSwgb3B0aW9uYWwgYm9vbGVh
biBjYW5jZWxhYmxlID0gZmFsc2UsIG9wdGlvbmFsIERPTVN0cmluZz8ga2V5ID0gbnVsbCwgb3B0
aW9uYWwgRE9NU3RyaW5nPyBvbGRWYWx1ZSA9IG51bGwsIG9wdGlvbmFsIERPTVN0cmluZz8gbmV3
VmFsdWUgPSBudWxsLCBvcHRpb25hbCBVU1ZTdHJpbmcgdXJsID0gIiIsIG9wdGlvbmFsIFN0b3Jh
Z2U/IHN0b3JhZ2VBcmVhID0gbnVsbCk7CiB9OwogCiBkaWN0aW9uYXJ5IFN0b3JhZ2VFdmVudElu
aXQgOiBFdmVudEluaXQgewpAQCAtMjM3OSw2ICsyNDcwLDEwIEBAIHBhcnRpYWwgaW50ZXJmYWNl
IEhUTUxQcmVFbGVtZW50IHsKICAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgbG9uZyB3aWR0aDsK
IH07CiAKK3BhcnRpYWwgaW50ZXJmYWNlIEhUTUxTdHlsZUVsZW1lbnQgeworICBbQ0VSZWFjdGlv
bnNdIGF0dHJpYnV0ZSBET01TdHJpbmcgdHlwZTsKK307CisKIHBhcnRpYWwgaW50ZXJmYWNlIEhU
TUxTY3JpcHRFbGVtZW50IHsKICAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGNo
YXJzZXQ7CiAgIFtDRVJlYWN0aW9uc10gYXR0cmlidXRlIERPTVN0cmluZyBldmVudDsKQEAgLTI0
NTcsOCArMjU1Miw3IEBAIHBhcnRpYWwgaW50ZXJmYWNlIFdpbmRvdyB7CiAgIFtSZXBsYWNlYWJs
ZSwgU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIEV4dGVybmFsIGV4dGVybmFsOwogfTsK
IAotW0V4cG9zZWQ9V2luZG93LAotIE5vSW50ZXJmYWNlT2JqZWN0XQorW0V4cG9zZWQ9V2luZG93
XQogaW50ZXJmYWNlIEV4dGVybmFsIHsKICAgdm9pZCBBZGRTZWFyY2hQcm92aWRlcigpOwogICB2
b2lkIElzU2VhcmNoUHJvdmlkZXJJbnN0YWxsZWQoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW50ZXJmYWNlcy9zZXJ2aWNlLXdvcmtl
cnMuaWRsIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbnRl
cmZhY2VzL3NlcnZpY2Utd29ya2Vycy5pZGwKaW5kZXggZmIyZTAzM2E3YWEwNmIyMTkxZWI5MzM1
NGNmN2Y0ZTU2YTU0Y2NmMy4uMGZlYWJkMzg5Y2Y1NTZhNmZmNmQzOTc4ZmQyM2UyZTI4ODYyNDA1
NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9pbnRlcmZhY2VzL3NlcnZpY2Utd29ya2Vycy5pZGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbnRlcmZhY2VzL3NlcnZpY2Utd29ya2Vycy5pZGwK
QEAgLTEsMTMgKzEsMTQgQEAKIC8vIEdFTkVSQVRFRCBDT05URU5UIC0gRE8gTk9UIEVESVQKIC8v
IENvbnRlbnQgd2FzIGF1dG9tYXRpY2FsbHkgZXh0cmFjdGVkIGJ5IFJlZmZ5IGludG8gcmVmZnkt
cmVwb3J0cwogLy8gKGh0dHBzOi8vZ2l0aHViLmNvbS90aWRvdXN0L3JlZmZ5LXJlcG9ydHMpCi0v
LyBTb3VyY2U6IFNlcnZpY2UgV29ya2VycyAxIChodHRwczovL3czYy5naXRodWIuaW8vU2Vydmlj
ZVdvcmtlci92MS8pCisvLyBTb3VyY2U6IFNlcnZpY2UgV29ya2VycyBOaWdodGx5IChodHRwczov
L3czYy5naXRodWIuaW8vU2VydmljZVdvcmtlci8pCiAKIFtTZWN1cmVDb250ZXh0LCBFeHBvc2Vk
PShXaW5kb3csV29ya2VyKV0KIGludGVyZmFjZSBTZXJ2aWNlV29ya2VyIDogRXZlbnRUYXJnZXQg
ewogICByZWFkb25seSBhdHRyaWJ1dGUgVVNWU3RyaW5nIHNjcmlwdFVSTDsKICAgcmVhZG9ubHkg
YXR0cmlidXRlIFNlcnZpY2VXb3JrZXJTdGF0ZSBzdGF0ZTsKLSAgdm9pZCBwb3N0TWVzc2FnZShh
bnkgbWVzc2FnZSwgb3B0aW9uYWwgc2VxdWVuY2U8b2JqZWN0PiB0cmFuc2ZlciA9IFtdKTsKKyAg
dm9pZCBwb3N0TWVzc2FnZShhbnkgbWVzc2FnZSwgc2VxdWVuY2U8b2JqZWN0PiB0cmFuc2Zlcik7
CisgIHZvaWQgcG9zdE1lc3NhZ2UoYW55IG1lc3NhZ2UsIG9wdGlvbmFsIFBvc3RNZXNzYWdlT3B0
aW9ucyBvcHRpb25zID0ge30pOwogCiAgIC8vIGV2ZW50CiAgIGF0dHJpYnV0ZSBFdmVudEhhbmRs
ZXIgb25zdGF0ZWNoYW5nZTsKQEAgLTE1LDYgKzE2LDcgQEAgaW50ZXJmYWNlIFNlcnZpY2VXb3Jr
ZXIgOiBFdmVudFRhcmdldCB7CiBTZXJ2aWNlV29ya2VyIGluY2x1ZGVzIEFic3RyYWN0V29ya2Vy
OwogCiBlbnVtIFNlcnZpY2VXb3JrZXJTdGF0ZSB7CisgICJwYXJzZWQiLAogICAiaW5zdGFsbGlu
ZyIsCiAgICJpbnN0YWxsZWQiLAogICAiYWN0aXZhdGluZyIsCkBAIC0yNyw2ICsyOSw3IEBAIGlu
dGVyZmFjZSBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uIDogRXZlbnRUYXJnZXQgewogICByZWFk
b25seSBhdHRyaWJ1dGUgU2VydmljZVdvcmtlcj8gaW5zdGFsbGluZzsKICAgcmVhZG9ubHkgYXR0
cmlidXRlIFNlcnZpY2VXb3JrZXI/IHdhaXRpbmc7CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTZXJ2
aWNlV29ya2VyPyBhY3RpdmU7CisgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgTmF2
aWdhdGlvblByZWxvYWRNYW5hZ2VyIG5hdmlnYXRpb25QcmVsb2FkOwogCiAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBVU1ZTdHJpbmcgc2NvcGU7CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTZXJ2aWNlV29y
a2VyVXBkYXRlVmlhQ2FjaGUgdXBkYXRlVmlhQ2FjaGU7CkBAIC01Nyw3ICs2MCw3IEBAIGludGVy
ZmFjZSBTZXJ2aWNlV29ya2VyQ29udGFpbmVyIDogRXZlbnRUYXJnZXQgewogICByZWFkb25seSBh
dHRyaWJ1dGUgU2VydmljZVdvcmtlcj8gY29udHJvbGxlcjsKICAgcmVhZG9ubHkgYXR0cmlidXRl
IFByb21pc2U8U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbj4gcmVhZHk7CiAKLSAgW05ld09iamVj
dF0gUHJvbWlzZTxTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uPiByZWdpc3RlcihVU1ZTdHJpbmcg
c2NyaXB0VVJMLCBvcHRpb25hbCBSZWdpc3RyYXRpb25PcHRpb25zIG9wdGlvbnMpOworICBbTmV3
T2JqZWN0XSBQcm9taXNlPFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24+IHJlZ2lzdGVyKFVTVlN0
cmluZyBzY3JpcHRVUkwsIG9wdGlvbmFsIFJlZ2lzdHJhdGlvbk9wdGlvbnMgb3B0aW9ucyA9IHt9
KTsKIAogICBbTmV3T2JqZWN0XSBQcm9taXNlPGFueT4gZ2V0UmVnaXN0cmF0aW9uKG9wdGlvbmFs
IFVTVlN0cmluZyBjbGllbnRVUkwgPSAiIik7CiAgIFtOZXdPYmplY3RdIFByb21pc2U8RnJvemVu
QXJyYXk8U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbj4+IGdldFJlZ2lzdHJhdGlvbnMoKTsKQEAg
LTc2LDEwICs3OSwyNCBAQCBkaWN0aW9uYXJ5IFJlZ2lzdHJhdGlvbk9wdGlvbnMgewogICBTZXJ2
aWNlV29ya2VyVXBkYXRlVmlhQ2FjaGUgdXBkYXRlVmlhQ2FjaGUgPSAiaW1wb3J0cyI7CiB9Owog
CitbU2VjdXJlQ29udGV4dCwgRXhwb3NlZD0oV2luZG93LFdvcmtlcildCitpbnRlcmZhY2UgTmF2
aWdhdGlvblByZWxvYWRNYW5hZ2VyIHsKKyAgUHJvbWlzZTx2b2lkPiBlbmFibGUoKTsKKyAgUHJv
bWlzZTx2b2lkPiBkaXNhYmxlKCk7CisgIFByb21pc2U8dm9pZD4gc2V0SGVhZGVyVmFsdWUoQnl0
ZVN0cmluZyB2YWx1ZSk7CisgIFByb21pc2U8TmF2aWdhdGlvblByZWxvYWRTdGF0ZT4gZ2V0U3Rh
dGUoKTsKK307CisKK2RpY3Rpb25hcnkgTmF2aWdhdGlvblByZWxvYWRTdGF0ZSB7CisgIGJvb2xl
YW4gZW5hYmxlZCA9IGZhbHNlOworICBCeXRlU3RyaW5nIGhlYWRlclZhbHVlOworfTsKKwogW0ds
b2JhbD0oV29ya2VyLFNlcnZpY2VXb3JrZXIpLCBFeHBvc2VkPVNlcnZpY2VXb3JrZXJdCiBpbnRl
cmZhY2UgU2VydmljZVdvcmtlckdsb2JhbFNjb3BlIDogV29ya2VyR2xvYmFsU2NvcGUgewogICBb
U2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIENsaWVudHMgY2xpZW50czsKICAgW1NhbWVP
YmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uIHJlZ2lz
dHJhdGlvbjsKKyAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBTZXJ2aWNlV29ya2Vy
IHNlcnZpY2VXb3JrZXI7CiAKICAgW05ld09iamVjdF0gUHJvbWlzZTx2b2lkPiBza2lwV2FpdGlu
ZygpOwogCkBAIC04Nyw4ICsxMDQsNyBAQCBpbnRlcmZhY2UgU2VydmljZVdvcmtlckdsb2JhbFNj
b3BlIDogV29ya2VyR2xvYmFsU2NvcGUgewogICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9uYWN0
aXZhdGU7CiAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25mZXRjaDsKIAotICAvLyBldmVudAot
ICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9ubWVzc2FnZTsgLy8gZXZlbnQuc291cmNlIG9mIHRo
ZSBtZXNzYWdlIGV2ZW50cyBpcyBDbGllbnQgb2JqZWN0CisgIGF0dHJpYnV0ZSBFdmVudEhhbmRs
ZXIgb25tZXNzYWdlOwogICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9ubWVzc2FnZWVycm9yOwog
fTsKIApAQCAtOTgsNyArMTE0LDggQEAgaW50ZXJmYWNlIENsaWVudCB7CiAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBGcmFtZVR5cGUgZnJhbWVUeXBlOwogICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3Ry
aW5nIGlkOwogICByZWFkb25seSBhdHRyaWJ1dGUgQ2xpZW50VHlwZSB0eXBlOwotICB2b2lkIHBv
c3RNZXNzYWdlKGFueSBtZXNzYWdlLCBvcHRpb25hbCBzZXF1ZW5jZTxvYmplY3Q+IHRyYW5zZmVy
ID0gW10pOworICB2b2lkIHBvc3RNZXNzYWdlKGFueSBtZXNzYWdlLCBzZXF1ZW5jZTxvYmplY3Q+
IHRyYW5zZmVyKTsKKyAgdm9pZCBwb3N0TWVzc2FnZShhbnkgbWVzc2FnZSwgb3B0aW9uYWwgUG9z
dE1lc3NhZ2VPcHRpb25zIG9wdGlvbnMgPSB7fSk7CiB9OwogCiBbRXhwb3NlZD1TZXJ2aWNlV29y
a2VyXQpAQCAtMTIxLDcgKzEzOCw3IEBAIGVudW0gRnJhbWVUeXBlIHsKIGludGVyZmFjZSBDbGll
bnRzIHsKICAgLy8gVGhlIG9iamVjdHMgcmV0dXJuZWQgd2lsbCBiZSBuZXcgaW5zdGFuY2VzIGV2
ZXJ5IHRpbWUKICAgW05ld09iamVjdF0gUHJvbWlzZTxhbnk+IGdldChET01TdHJpbmcgaWQpOwot
ICBbTmV3T2JqZWN0XSBQcm9taXNlPEZyb3plbkFycmF5PENsaWVudD4+IG1hdGNoQWxsKG9wdGlv
bmFsIENsaWVudFF1ZXJ5T3B0aW9ucyBvcHRpb25zKTsKKyAgW05ld09iamVjdF0gUHJvbWlzZTxG
cm96ZW5BcnJheTxDbGllbnQ+PiBtYXRjaEFsbChvcHRpb25hbCBDbGllbnRRdWVyeU9wdGlvbnMg
b3B0aW9ucyA9IHt9KTsKICAgW05ld09iamVjdF0gUHJvbWlzZTxXaW5kb3dDbGllbnQ/PiBvcGVu
V2luZG93KFVTVlN0cmluZyB1cmwpOwogICBbTmV3T2JqZWN0XSBQcm9taXNlPHZvaWQ+IGNsYWlt
KCk7CiB9OwpAQCAtMTM4LDcgKzE1NSw3IEBAIGVudW0gQ2xpZW50VHlwZSB7CiAgICJhbGwiCiB9
OwogCi1bQ29uc3RydWN0b3IoRE9NU3RyaW5nIHR5cGUsIG9wdGlvbmFsIEV4dGVuZGFibGVFdmVu
dEluaXQgZXZlbnRJbml0RGljdCksIEV4cG9zZWQ9U2VydmljZVdvcmtlcl0KK1tDb25zdHJ1Y3Rv
cihET01TdHJpbmcgdHlwZSwgb3B0aW9uYWwgRXh0ZW5kYWJsZUV2ZW50SW5pdCBldmVudEluaXRE
aWN0ID0ge30pLCBFeHBvc2VkPVNlcnZpY2VXb3JrZXJdCiBpbnRlcmZhY2UgRXh0ZW5kYWJsZUV2
ZW50IDogRXZlbnQgewogICB2b2lkIHdhaXRVbnRpbChQcm9taXNlPGFueT4gZik7CiB9OwpAQCAt
MTUwLDE3ICsxNjcsMjMgQEAgZGljdGlvbmFyeSBFeHRlbmRhYmxlRXZlbnRJbml0IDogRXZlbnRJ
bml0IHsKIFtDb25zdHJ1Y3RvcihET01TdHJpbmcgdHlwZSwgRmV0Y2hFdmVudEluaXQgZXZlbnRJ
bml0RGljdCksIEV4cG9zZWQ9U2VydmljZVdvcmtlcl0KIGludGVyZmFjZSBGZXRjaEV2ZW50IDog
RXh0ZW5kYWJsZUV2ZW50IHsKICAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBSZXF1
ZXN0IHJlcXVlc3Q7CisgIHJlYWRvbmx5IGF0dHJpYnV0ZSBQcm9taXNlPGFueT4gcHJlbG9hZFJl
c3BvbnNlOwogICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGNsaWVudElkOworICByZWFk
b25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHJlc3VsdGluZ0NsaWVudElkOworICByZWFkb25seSBh
dHRyaWJ1dGUgRE9NU3RyaW5nIHJlcGxhY2VzQ2xpZW50SWQ7CiAKICAgdm9pZCByZXNwb25kV2l0
aChQcm9taXNlPFJlc3BvbnNlPiByKTsKIH07CiAKIGRpY3Rpb25hcnkgRmV0Y2hFdmVudEluaXQg
OiBFeHRlbmRhYmxlRXZlbnRJbml0IHsKICAgcmVxdWlyZWQgUmVxdWVzdCByZXF1ZXN0OworICBQ
cm9taXNlPGFueT4gcHJlbG9hZFJlc3BvbnNlOwogICBET01TdHJpbmcgY2xpZW50SWQgPSAiIjsK
KyAgRE9NU3RyaW5nIHJlc3VsdGluZ0NsaWVudElkID0gIiI7CisgIERPTVN0cmluZyByZXBsYWNl
c0NsaWVudElkID0gIiI7CiB9OwogCi1bQ29uc3RydWN0b3IoRE9NU3RyaW5nIHR5cGUsIG9wdGlv
bmFsIEV4dGVuZGFibGVNZXNzYWdlRXZlbnRJbml0IGV2ZW50SW5pdERpY3QpLCBFeHBvc2VkPVNl
cnZpY2VXb3JrZXJdCitbQ29uc3RydWN0b3IoRE9NU3RyaW5nIHR5cGUsIG9wdGlvbmFsIEV4dGVu
ZGFibGVNZXNzYWdlRXZlbnRJbml0IGV2ZW50SW5pdERpY3QgPSB7fSksIEV4cG9zZWQ9U2Vydmlj
ZVdvcmtlcl0KIGludGVyZmFjZSBFeHRlbmRhYmxlTWVzc2FnZUV2ZW50IDogRXh0ZW5kYWJsZUV2
ZW50IHsKICAgcmVhZG9ubHkgYXR0cmlidXRlIGFueSBkYXRhOwogICByZWFkb25seSBhdHRyaWJ1
dGUgVVNWU3RyaW5nIG9yaWdpbjsKQEAgLTE3NywxOSArMjAwLDE5IEBAIGRpY3Rpb25hcnkgRXh0
ZW5kYWJsZU1lc3NhZ2VFdmVudEluaXQgOiBFeHRlbmRhYmxlRXZlbnRJbml0IHsKICAgc2VxdWVu
Y2U8TWVzc2FnZVBvcnQ+IHBvcnRzID0gW107CiB9OwogCi1wYXJ0aWFsIGludGVyZmFjZSBXaW5k
b3dPcldvcmtlckdsb2JhbFNjb3BlIHsKK3BhcnRpYWwgaW50ZXJmYWNlIG1peGluIFdpbmRvd09y
V29ya2VyR2xvYmFsU2NvcGUgewogICBbU2VjdXJlQ29udGV4dCwgU2FtZU9iamVjdF0gcmVhZG9u
bHkgYXR0cmlidXRlIENhY2hlU3RvcmFnZSBjYWNoZXM7CiB9OwogCiBbU2VjdXJlQ29udGV4dCwg
RXhwb3NlZD0oV2luZG93LFdvcmtlcildCiBpbnRlcmZhY2UgQ2FjaGUgewotICBbTmV3T2JqZWN0
XSBQcm9taXNlPGFueT4gbWF0Y2goUmVxdWVzdEluZm8gcmVxdWVzdCwgb3B0aW9uYWwgQ2FjaGVR
dWVyeU9wdGlvbnMgb3B0aW9ucyk7Ci0gIFtOZXdPYmplY3RdIFByb21pc2U8RnJvemVuQXJyYXk8
UmVzcG9uc2U+PiBtYXRjaEFsbChvcHRpb25hbCBSZXF1ZXN0SW5mbyByZXF1ZXN0LCBvcHRpb25h
bCBDYWNoZVF1ZXJ5T3B0aW9ucyBvcHRpb25zKTsKKyAgW05ld09iamVjdF0gUHJvbWlzZTxhbnk+
IG1hdGNoKFJlcXVlc3RJbmZvIHJlcXVlc3QsIG9wdGlvbmFsIENhY2hlUXVlcnlPcHRpb25zIG9w
dGlvbnMgPSB7fSk7CisgIFtOZXdPYmplY3RdIFByb21pc2U8RnJvemVuQXJyYXk8UmVzcG9uc2U+
PiBtYXRjaEFsbChvcHRpb25hbCBSZXF1ZXN0SW5mbyByZXF1ZXN0LCBvcHRpb25hbCBDYWNoZVF1
ZXJ5T3B0aW9ucyBvcHRpb25zID0ge30pOwogICBbTmV3T2JqZWN0XSBQcm9taXNlPHZvaWQ+IGFk
ZChSZXF1ZXN0SW5mbyByZXF1ZXN0KTsKICAgW05ld09iamVjdF0gUHJvbWlzZTx2b2lkPiBhZGRB
bGwoc2VxdWVuY2U8UmVxdWVzdEluZm8+IHJlcXVlc3RzKTsKICAgW05ld09iamVjdF0gUHJvbWlz
ZTx2b2lkPiBwdXQoUmVxdWVzdEluZm8gcmVxdWVzdCwgUmVzcG9uc2UgcmVzcG9uc2UpOwotICBb
TmV3T2JqZWN0XSBQcm9taXNlPGJvb2xlYW4+IGRlbGV0ZShSZXF1ZXN0SW5mbyByZXF1ZXN0LCBv
cHRpb25hbCBDYWNoZVF1ZXJ5T3B0aW9ucyBvcHRpb25zKTsKLSAgW05ld09iamVjdF0gUHJvbWlz
ZTxGcm96ZW5BcnJheTxSZXF1ZXN0Pj4ga2V5cyhvcHRpb25hbCBSZXF1ZXN0SW5mbyByZXF1ZXN0
LCBvcHRpb25hbCBDYWNoZVF1ZXJ5T3B0aW9ucyBvcHRpb25zKTsKKyAgW05ld09iamVjdF0gUHJv
bWlzZTxib29sZWFuPiBkZWxldGUoUmVxdWVzdEluZm8gcmVxdWVzdCwgb3B0aW9uYWwgQ2FjaGVR
dWVyeU9wdGlvbnMgb3B0aW9ucyA9IHt9KTsKKyAgW05ld09iamVjdF0gUHJvbWlzZTxGcm96ZW5B
cnJheTxSZXF1ZXN0Pj4ga2V5cyhvcHRpb25hbCBSZXF1ZXN0SW5mbyByZXF1ZXN0LCBvcHRpb25h
bCBDYWNoZVF1ZXJ5T3B0aW9ucyBvcHRpb25zID0ge30pOwogfTsKIAogZGljdGlvbmFyeSBDYWNo
ZVF1ZXJ5T3B0aW9ucyB7CkBAIC0yMDAsNyArMjIzLDcgQEAgZGljdGlvbmFyeSBDYWNoZVF1ZXJ5
T3B0aW9ucyB7CiAKIFtTZWN1cmVDb250ZXh0LCBFeHBvc2VkPShXaW5kb3csV29ya2VyKV0KIGlu
dGVyZmFjZSBDYWNoZVN0b3JhZ2UgewotICBbTmV3T2JqZWN0XSBQcm9taXNlPGFueT4gbWF0Y2go
UmVxdWVzdEluZm8gcmVxdWVzdCwgb3B0aW9uYWwgTXVsdGlDYWNoZVF1ZXJ5T3B0aW9ucyBvcHRp
b25zKTsKKyAgW05ld09iamVjdF0gUHJvbWlzZTxhbnk+IG1hdGNoKFJlcXVlc3RJbmZvIHJlcXVl
c3QsIG9wdGlvbmFsIE11bHRpQ2FjaGVRdWVyeU9wdGlvbnMgb3B0aW9ucyA9IHt9KTsKICAgW05l
d09iamVjdF0gUHJvbWlzZTxib29sZWFuPiBoYXMoRE9NU3RyaW5nIGNhY2hlTmFtZSk7CiAgIFtO
ZXdPYmplY3RdIFByb21pc2U8Q2FjaGU+IG9wZW4oRE9NU3RyaW5nIGNhY2hlTmFtZSk7CiAgIFtO
ZXdPYmplY3RdIFByb21pc2U8Ym9vbGVhbj4gZGVsZXRlKERPTVN0cmluZyBjYWNoZU5hbWUpOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9p
bnRlcnNlY3Rpb24tb2JzZXJ2ZXIvaWRsaGFybmVzcy53aW5kb3ctZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbnRlcnNlY3Rpb24tb2Jz
ZXJ2ZXIvaWRsaGFybmVzcy53aW5kb3ctZXhwZWN0ZWQudHh0CmluZGV4IGYxMDg1OWUxMzlhYmU0
YzkzMmE2NTcwZTkzMDdiNjA4ZGQwYmI5ODMuLmRjODA3ZjI1MGE4ZjA4ZmY3ZjFkMDA2YThkOTAx
YjA1MjU2MDhmMGEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaW50ZXJzZWN0aW9uLW9ic2VydmVyL2lkbGhhcm5lc3Mud2luZG93LWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ludGVyc2VjdGlvbi1vYnNlcnZlci9pZGxoYXJuZXNzLndpbmRvdy1leHBlY3RlZC50eHQKQEAg
LTEsNCArMSwzIEBACi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNDgyOiBjYWxsYmFjayBub3QgeWV0
IHN1cHBvcnRlZAogCiBQQVNTIGlkbF90ZXN0IHNldHVwIAogUEFTUyBJbnRlcnNlY3Rpb25PYnNl
cnZlciBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2Jq
ZWN0IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9tYXRobWwvcmVsYXRpb25zL2h0bWw1LXRyZWUvbWF0aC1nbG9iYWwtZXZlbnQtaGFuZGxl
cnMudGVudGF0aXZlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvbWF0aG1sL3JlbGF0aW9ucy9odG1sNS10cmVlL21hdGgtZ2xvYmFsLWV2
ZW50LWhhbmRsZXJzLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQKaW5kZXggYzQxNThhZDVkMmZhZWY1
N2UwZjQzNjBmNTU5YmFiOTM5NDQ5YTZlZC4uYTUxYzJiMTY0NTIwYzA3NTM0NGJlZGRmMmI3MjMw
NmM2ZjA2ODYwYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9tYXRobWwvcmVsYXRpb25zL2h0bWw1LXRyZWUvbWF0aC1nbG9iYWwtZXZlbnQt
aGFuZGxlcnMudGVudGF0aXZlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21hdGhtbC9yZWxhdGlvbnMvaHRtbDUtdHJlZS9tYXRo
LWdsb2JhbC1ldmVudC1oYW5kbGVycy50ZW50YXRpdmUtZXhwZWN0ZWQudHh0CkBAIC05NSw2ICs5
NSwxMCBAQCBQQVNTIG9uZm9jdXM6IG11c3QgYmUgb24gdGhlIGFwcHJvcHJpYXRlIGxvY2F0aW9u
cyBmb3IgR2xvYmFsRXZlbnRIYW5kbGVycwogUEFTUyBvbmZvY3VzOiB0aGUgZGVmYXVsdCB2YWx1
ZSBtdXN0IGJlIG51bGwgCiBQQVNTIG9uZm9jdXM6IHRoZSBjb250ZW50IGF0dHJpYnV0ZSBtdXN0
IGJlIGNvbXBpbGVkIGludG8gYSBmdW5jdGlvbiBhcyB0aGUgY29ycmVzcG9uZGluZyBwcm9wZXJ0
eSAKIFBBU1Mgb25mb2N1czogZGlzcGF0Y2hpbmcgYW4gRXZlbnQgYXQgYSA8bWF0aD4gZWxlbWVu
dCBtdXN0IHRyaWdnZXIgZWxlbWVudC5vbmZvY3VzIAorRkFJTCBvbmZvcm1kYXRhOiBtdXN0IGJl
IG9uIHRoZSBhcHByb3ByaWF0ZSBsb2NhdGlvbnMgZm9yIEdsb2JhbEV2ZW50SGFuZGxlcnMgYXNz
ZXJ0X3RydWU6IE1hdGhNTEVsZW1lbnQgaGFzIGFuIG93biBwcm9wZXJ0eSBuYW1lZCAib25mb3Jt
ZGF0YSIgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK0ZBSUwgb25mb3JtZGF0YTogdGhlIGRlZmF1
bHQgdmFsdWUgbXVzdCBiZSBudWxsIGFzc2VydF9lcXVhbHM6IFRoZSBkZWZhdWx0IHZhbHVlIG9m
IHRoZSBwcm9wZXJ0eSBpcyBudWxsIGZvciBhIE1hdGhNTE1hdGhFbGVtZW50IGluc3RhbmNlIGV4
cGVjdGVkIChvYmplY3QpIG51bGwgYnV0IGdvdCAodW5kZWZpbmVkKSB1bmRlZmluZWQKK0ZBSUwg
b25mb3JtZGF0YTogdGhlIGNvbnRlbnQgYXR0cmlidXRlIG11c3QgYmUgY29tcGlsZWQgaW50byBh
IGZ1bmN0aW9uIGFzIHRoZSBjb3JyZXNwb25kaW5nIHByb3BlcnR5IGFzc2VydF9lcXVhbHM6IFRo
ZSBvbmZvcm1kYXRhIHByb3BlcnR5IG11c3QgYmUgYSBmdW5jdGlvbiBleHBlY3RlZCAiZnVuY3Rp
b24iIGJ1dCBnb3QgInVuZGVmaW5lZCIKK1BBU1Mgb25mb3JtZGF0YTogZGlzcGF0Y2hpbmcgYW4g
RXZlbnQgYXQgYSA8bWF0aD4gZWxlbWVudCBtdXN0IHRyaWdnZXIgZWxlbWVudC5vbmZvcm1kYXRh
IAogUEFTUyBvbmlucHV0OiBtdXN0IGJlIG9uIHRoZSBhcHByb3ByaWF0ZSBsb2NhdGlvbnMgZm9y
IEdsb2JhbEV2ZW50SGFuZGxlcnMgCiBQQVNTIG9uaW5wdXQ6IHRoZSBkZWZhdWx0IHZhbHVlIG11
c3QgYmUgbnVsbCAKIFBBU1Mgb25pbnB1dDogdGhlIGNvbnRlbnQgYXR0cmlidXRlIG11c3QgYmUg
Y29tcGlsZWQgaW50byBhIGZ1bmN0aW9uIGFzIHRoZSBjb3JyZXNwb25kaW5nIHByb3BlcnR5IApA
QCAtMTI3LDEwICsxMzEsNiBAQCBQQVNTIG9ubG9hZGVkbWV0YWRhdGE6IG11c3QgYmUgb24gdGhl
IGFwcHJvcHJpYXRlIGxvY2F0aW9ucyBmb3IgR2xvYmFsRXZlbnRIYW5kbAogUEFTUyBvbmxvYWRl
ZG1ldGFkYXRhOiB0aGUgZGVmYXVsdCB2YWx1ZSBtdXN0IGJlIG51bGwgCiBQQVNTIG9ubG9hZGVk
bWV0YWRhdGE6IHRoZSBjb250ZW50IGF0dHJpYnV0ZSBtdXN0IGJlIGNvbXBpbGVkIGludG8gYSBm
dW5jdGlvbiBhcyB0aGUgY29ycmVzcG9uZGluZyBwcm9wZXJ0eSAKIFBBU1Mgb25sb2FkZWRtZXRh
ZGF0YTogZGlzcGF0Y2hpbmcgYW4gRXZlbnQgYXQgYSA8bWF0aD4gZWxlbWVudCBtdXN0IHRyaWdn
ZXIgZWxlbWVudC5vbmxvYWRlZG1ldGFkYXRhIAotRkFJTCBvbmxvYWRlbmQ6IG11c3QgYmUgb24g
dGhlIGFwcHJvcHJpYXRlIGxvY2F0aW9ucyBmb3IgR2xvYmFsRXZlbnRIYW5kbGVycyBhc3NlcnRf
dHJ1ZTogTWF0aE1MRWxlbWVudCBoYXMgYW4gb3duIHByb3BlcnR5IG5hbWVkICJvbmxvYWRlbmQi
IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIG9ubG9hZGVuZDogdGhlIGRlZmF1bHQgdmFs
dWUgbXVzdCBiZSBudWxsIGFzc2VydF9lcXVhbHM6IFRoZSBkZWZhdWx0IHZhbHVlIG9mIHRoZSBw
cm9wZXJ0eSBpcyBudWxsIGZvciBhIE1hdGhNTE1hdGhFbGVtZW50IGluc3RhbmNlIGV4cGVjdGVk
IChvYmplY3QpIG51bGwgYnV0IGdvdCAodW5kZWZpbmVkKSB1bmRlZmluZWQKLUZBSUwgb25sb2Fk
ZW5kOiB0aGUgY29udGVudCBhdHRyaWJ1dGUgbXVzdCBiZSBjb21waWxlZCBpbnRvIGEgZnVuY3Rp
b24gYXMgdGhlIGNvcnJlc3BvbmRpbmcgcHJvcGVydHkgYXNzZXJ0X2VxdWFsczogVGhlIG9ubG9h
ZGVuZCBwcm9wZXJ0eSBtdXN0IGJlIGEgZnVuY3Rpb24gZXhwZWN0ZWQgImZ1bmN0aW9uIiBidXQg
Z290ICJ1bmRlZmluZWQiCi1QQVNTIG9ubG9hZGVuZDogZGlzcGF0Y2hpbmcgYW4gRXZlbnQgYXQg
YSA8bWF0aD4gZWxlbWVudCBtdXN0IHRyaWdnZXIgZWxlbWVudC5vbmxvYWRlbmQgCiBQQVNTIG9u
bG9hZHN0YXJ0OiBtdXN0IGJlIG9uIHRoZSBhcHByb3ByaWF0ZSBsb2NhdGlvbnMgZm9yIEdsb2Jh
bEV2ZW50SGFuZGxlcnMgCiBQQVNTIG9ubG9hZHN0YXJ0OiB0aGUgZGVmYXVsdCB2YWx1ZSBtdXN0
IGJlIG51bGwgCiBQQVNTIG9ubG9hZHN0YXJ0OiB0aGUgY29udGVudCBhdHRyaWJ1dGUgbXVzdCBi
ZSBjb21waWxlZCBpbnRvIGEgZnVuY3Rpb24gYXMgdGhlIGNvcnJlc3BvbmRpbmcgcHJvcGVydHkg
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L21lZGlhY2FwdHVyZS1yZWNvcmQvaWRsaGFybmVzcy53aW5kb3ctZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtcmVj
b3JkL2lkbGhhcm5lc3Mud2luZG93LWV4cGVjdGVkLnR4dAppbmRleCBhN2VhMzI3OTFjYjAwNjkz
ZjM3OTRhMjNkMzI4NGE5MjY3OWM1MmZmLi4xMmQ1YzczYjdhZTE3NGMzYjRiYzNkY2VjMzcxNzg4
MmMzYjZmODJlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL21lZGlhY2FwdHVyZS1yZWNvcmQvaWRsaGFybmVzcy53aW5kb3ctZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVk
aWFjYXB0dXJlLXJlY29yZC9pZGxoYXJuZXNzLndpbmRvdy1leHBlY3RlZC50eHQKQEAgLTEsMzAg
KzEsMyBAQAogCi1GQUlMIGlkbF90ZXN0IHNldHVwIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJl
amVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIkdvdCBhbiBlcnJvciBiZWZvcmUgcGFyc2luZyBh
bnkgbmFtZWQgZGVmaW5pdGlvbjogVW5yZWNvZ25pc2VkIHRva2VucywgbGluZSAxICh0b2tlbnM6
ICJ7XCJlcnJvclwiOiB7XCJtZXNzYWdlXCIiKQotWwotICAgIHsKLSAgICAgICAgInR5cGUiOiAi
eyIsCi0gICAgICAgICJ2YWx1ZSI6ICJ7IiwKLSAgICAgICAgInRyaXZpYSI6ICIiCi0gICAgfSwK
LSAgICB7Ci0gICAgICAgICJ0eXBlIjogInN0cmluZyIsCi0gICAgICAgICJ2YWx1ZSI6ICJcImVy
cm9yXCIiLAotICAgICAgICAidHJpdmlhIjogIiIKLSAgICB9LAotICAgIHsKLSAgICAgICAgInR5
cGUiOiAiOiIsCi0gICAgICAgICJ2YWx1ZSI6ICI6IiwKLSAgICAgICAgInRyaXZpYSI6ICIiCi0g
ICAgfSwKLSAgICB7Ci0gICAgICAgICJ0eXBlIjogInsiLAotICAgICAgICAidmFsdWUiOiAieyIs
Ci0gICAgICAgICJ0cml2aWEiOiAiICIKLSAgICB9LAotICAgIHsKLSAgICAgICAgInR5cGUiOiAi
c3RyaW5nIiwKLSAgICAgICAgInZhbHVlIjogIlwibWVzc2FnZVwiIiwKLSAgICAgICAgInRyaXZp
YSI6ICIiCi0gICAgfQotXSIKK0ZBSUwgaWRsX3Rlc3Qgc2V0dXAgcHJvbWlzZV90ZXN0OiBVbmhh
bmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiRXJyb3IgZmV0Y2hpbmcgL2ludGVy
ZmFjZXMvbWVkaWFzdHJlYW0tcmVjb3JkaW5nLmlkbC4iCiAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFjYXB0dXJlLXN0cmVhbXMv
TWVkaWFEZXZpY2VzLUlETC1hbGwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtc3RyZWFtcy9NZWRpYURldmljZXMt
SURMLWFsbC1leHBlY3RlZC50eHQKaW5kZXggMGE3Y2FjNjU1N2U3YTk1OWRjMWE4ZDQxMWQxNDI2
NjMyMjYyOWE3Zi4uMzUxZTM0NTJmMzg3NzAzZDFjNGFiNzc1YTdhMWYwMzM3MmQ1MWRjNCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRp
YWNhcHR1cmUtc3RyZWFtcy9NZWRpYURldmljZXMtSURMLWFsbC1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUt
c3RyZWFtcy9NZWRpYURldmljZXMtSURMLWFsbC1leHBlY3RlZC50eHQKQEAgLTEsMTA1ICsxLDkg
QEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA0ODI6IGNhbGxiYWNrIG5vdCB5ZXQgc3VwcG9ydGVk
Ci1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNDgyOiBjYWxsYmFjayBub3QgeWV0IHN1cHBvcnRlZAog
RGVzY3JpcHRpb24KIAogVGhpcyB0ZXN0IGNoZWNrcyBmb3IgdGhlIHByZXNlbmNlIG9mIHRoZSBu
YXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSBtZXRob2QuCiAKIAotUEFTUyBpZGxf
dGVzdCBzZXR1cCAKLVBBU1MgUGFydGlhbCBpbnRlcmZhY2UgTmF2aWdhdG9yVXNlck1lZGlhOiBv
cmlnaW5hbCBpbnRlcmZhY2UgZGVmaW5lZCAKLVBBU1MgUGFydGlhbCBpbnRlcmZhY2UgTWVkaWFE
ZXZpY2VzOiBvcmlnaW5hbCBpbnRlcmZhY2UgZGVmaW5lZCAKLVBBU1MgTWVkaWFTdHJlYW0gaW50
ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCAKLVBB
U1MgTWVkaWFTdHJlYW0gaW50ZXJmYWNlIG9iamVjdCBsZW5ndGggCi1QQVNTIE1lZGlhU3RyZWFt
IGludGVyZmFjZSBvYmplY3QgbmFtZSAKLVBBU1MgTWVkaWFTdHJlYW0gaW50ZXJmYWNlOiBleGlz
dGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgCi1QQVNT
IE1lZGlhU3RyZWFtIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVy
ZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgImNvbnN0cnVjdG9yIiBwcm9wZXJ0eSAKLVBBU1MgTWVk
aWFTdHJlYW0gaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNl
IHByb3RvdHlwZSBvYmplY3QncyBAQHVuc2NvcGFibGVzIHByb3BlcnR5IAotUEFTUyBNZWRpYVN0
cmVhbSBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBpZCAKLVBBU1MgTWVkaWFTdHJlYW0gaW50ZXJmYWNl
OiBvcGVyYXRpb24gZ2V0QXVkaW9UcmFja3MoKSAKLVBBU1MgTWVkaWFTdHJlYW0gaW50ZXJmYWNl
OiBvcGVyYXRpb24gZ2V0VmlkZW9UcmFja3MoKSAKLVBBU1MgTWVkaWFTdHJlYW0gaW50ZXJmYWNl
OiBvcGVyYXRpb24gZ2V0VHJhY2tzKCkgCi1QQVNTIE1lZGlhU3RyZWFtIGludGVyZmFjZTogb3Bl
cmF0aW9uIGdldFRyYWNrQnlJZChET01TdHJpbmcpIAotUEFTUyBNZWRpYVN0cmVhbSBpbnRlcmZh
Y2U6IG9wZXJhdGlvbiBhZGRUcmFjayhNZWRpYVN0cmVhbVRyYWNrKSAKLVBBU1MgTWVkaWFTdHJl
YW0gaW50ZXJmYWNlOiBvcGVyYXRpb24gcmVtb3ZlVHJhY2soTWVkaWFTdHJlYW1UcmFjaykgCi1Q
QVNTIE1lZGlhU3RyZWFtIGludGVyZmFjZTogb3BlcmF0aW9uIGNsb25lKCkgCi1QQVNTIE1lZGlh
U3RyZWFtIGludGVyZmFjZTogYXR0cmlidXRlIGFjdGl2ZSAKLVBBU1MgTWVkaWFTdHJlYW0gaW50
ZXJmYWNlOiBhdHRyaWJ1dGUgb25hZGR0cmFjayAKLVBBU1MgTWVkaWFTdHJlYW0gaW50ZXJmYWNl
OiBhdHRyaWJ1dGUgb25yZW1vdmV0cmFjayAKLVBBU1MgTWVkaWFTdHJlYW1UcmFjayBpbnRlcmZh
Y2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IAotUEFTUyBN
ZWRpYVN0cmVhbVRyYWNrIGludGVyZmFjZSBvYmplY3QgbGVuZ3RoIAotUEFTUyBNZWRpYVN0cmVh
bVRyYWNrIGludGVyZmFjZSBvYmplY3QgbmFtZSAKLVBBU1MgTWVkaWFTdHJlYW1UcmFjayBpbnRl
cmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9i
amVjdCAKLVBBU1MgTWVkaWFTdHJlYW1UcmFjayBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJv
cGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzICJjb25zdHJ1Y3RvciIgcHJv
cGVydHkgCi1QQVNTIE1lZGlhU3RyZWFtVHJhY2sgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHBy
b3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyBAQHVuc2NvcGFibGVzIHBy
b3BlcnR5IAotUEFTUyBNZWRpYVN0cmVhbVRyYWNrIGludGVyZmFjZTogYXR0cmlidXRlIGtpbmQg
Ci1QQVNTIE1lZGlhU3RyZWFtVHJhY2sgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgaWQgCi1QQVNTIE1l
ZGlhU3RyZWFtVHJhY2sgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgbGFiZWwgCi1QQVNTIE1lZGlhU3Ry
ZWFtVHJhY2sgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgZW5hYmxlZCAKLVBBU1MgTWVkaWFTdHJlYW1U
cmFjayBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBtdXRlZCAKLVBBU1MgTWVkaWFTdHJlYW1UcmFjayBp
bnRlcmZhY2U6IGF0dHJpYnV0ZSBvbm11dGUgCi1QQVNTIE1lZGlhU3RyZWFtVHJhY2sgaW50ZXJm
YWNlOiBhdHRyaWJ1dGUgb251bm11dGUgCi1QQVNTIE1lZGlhU3RyZWFtVHJhY2sgaW50ZXJmYWNl
OiBhdHRyaWJ1dGUgcmVhZHlTdGF0ZSAKLVBBU1MgTWVkaWFTdHJlYW1UcmFjayBpbnRlcmZhY2U6
IGF0dHJpYnV0ZSBvbmVuZGVkIAotUEFTUyBNZWRpYVN0cmVhbVRyYWNrIGludGVyZmFjZTogb3Bl
cmF0aW9uIGNsb25lKCkgCi1QQVNTIE1lZGlhU3RyZWFtVHJhY2sgaW50ZXJmYWNlOiBvcGVyYXRp
b24gc3RvcCgpIAotUEFTUyBNZWRpYVN0cmVhbVRyYWNrIGludGVyZmFjZTogb3BlcmF0aW9uIGdl
dENhcGFiaWxpdGllcygpIAotUEFTUyBNZWRpYVN0cmVhbVRyYWNrIGludGVyZmFjZTogb3BlcmF0
aW9uIGdldENvbnN0cmFpbnRzKCkgCi1QQVNTIE1lZGlhU3RyZWFtVHJhY2sgaW50ZXJmYWNlOiBv
cGVyYXRpb24gZ2V0U2V0dGluZ3MoKSAKLVBBU1MgTWVkaWFTdHJlYW1UcmFjayBpbnRlcmZhY2U6
IG9wZXJhdGlvbiBhcHBseUNvbnN0cmFpbnRzKE1lZGlhVHJhY2tDb25zdHJhaW50cykgCi1QQVNT
IE1lZGlhU3RyZWFtVHJhY2sgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgb25vdmVyY29uc3RyYWluZWQg
Ci1QQVNTIE1lZGlhU3RyZWFtVHJhY2tFdmVudCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJv
cGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IAotUEFTUyBNZWRpYVN0cmVhbVRyYWNrRXZlbnQg
aW50ZXJmYWNlIG9iamVjdCBsZW5ndGggCi1QQVNTIE1lZGlhU3RyZWFtVHJhY2tFdmVudCBpbnRl
cmZhY2Ugb2JqZWN0IG5hbWUgCi1QQVNTIE1lZGlhU3RyZWFtVHJhY2tFdmVudCBpbnRlcmZhY2U6
IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCAK
LVBBU1MgTWVkaWFTdHJlYW1UcmFja0V2ZW50IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9w
ZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgImNvbnN0cnVjdG9yIiBwcm9w
ZXJ0eSAKLVBBU1MgTWVkaWFTdHJlYW1UcmFja0V2ZW50IGludGVyZmFjZTogZXhpc3RlbmNlIGFu
ZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgQEB1bnNjb3BhYmxl
cyBwcm9wZXJ0eSAKLVBBU1MgTWVkaWFTdHJlYW1UcmFja0V2ZW50IGludGVyZmFjZTogYXR0cmli
dXRlIHRyYWNrIAotUEFTUyBPdmVyY29uc3RyYWluZWRFcnJvckV2ZW50IGludGVyZmFjZTogZXhp
c3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgCi1GQUlMIE92ZXJjb25z
dHJhaW5lZEVycm9yRXZlbnQgaW50ZXJmYWNlIG9iamVjdCBsZW5ndGggYXNzZXJ0X2VxdWFsczog
d3JvbmcgdmFsdWUgZm9yIE92ZXJjb25zdHJhaW5lZEVycm9yRXZlbnQubGVuZ3RoIGV4cGVjdGVk
IDIgYnV0IGdvdCAxCi1QQVNTIE92ZXJjb25zdHJhaW5lZEVycm9yRXZlbnQgaW50ZXJmYWNlIG9i
amVjdCBuYW1lIAotUEFTUyBPdmVyY29uc3RyYWluZWRFcnJvckV2ZW50IGludGVyZmFjZTogZXhp
c3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IAotUEFT
UyBPdmVyY29uc3RyYWluZWRFcnJvckV2ZW50IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9w
ZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgImNvbnN0cnVjdG9yIiBwcm9w
ZXJ0eSAKLVBBU1MgT3ZlcmNvbnN0cmFpbmVkRXJyb3JFdmVudCBpbnRlcmZhY2U6IGV4aXN0ZW5j
ZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzIEBAdW5zY29w
YWJsZXMgcHJvcGVydHkgCi1QQVNTIE92ZXJjb25zdHJhaW5lZEVycm9yRXZlbnQgaW50ZXJmYWNl
OiBhdHRyaWJ1dGUgZXJyb3IgCi1QQVNTIE1lZGlhRGV2aWNlcyBpbnRlcmZhY2U6IGV4aXN0ZW5j
ZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IAotUEFTUyBNZWRpYURldmljZXMg
aW50ZXJmYWNlIG9iamVjdCBsZW5ndGggCi1QQVNTIE1lZGlhRGV2aWNlcyBpbnRlcmZhY2Ugb2Jq
ZWN0IG5hbWUgCi1QQVNTIE1lZGlhRGV2aWNlcyBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJv
cGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCAKLVBBU1MgTWVkaWFEZXZpY2Vz
IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5
cGUgb2JqZWN0J3MgImNvbnN0cnVjdG9yIiBwcm9wZXJ0eSAKLVBBU1MgTWVkaWFEZXZpY2VzIGlu
dGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUg
b2JqZWN0J3MgQEB1bnNjb3BhYmxlcyBwcm9wZXJ0eSAKLVBBU1MgTWVkaWFEZXZpY2VzIGludGVy
ZmFjZTogYXR0cmlidXRlIG9uZGV2aWNlY2hhbmdlIAotUEFTUyBNZWRpYURldmljZXMgaW50ZXJm
YWNlOiBvcGVyYXRpb24gZW51bWVyYXRlRGV2aWNlcygpIAotUEFTUyBNZWRpYURldmljZXMgaW50
ZXJmYWNlOiBvcGVyYXRpb24gZ2V0U3VwcG9ydGVkQ29uc3RyYWludHMoKSAKLVBBU1MgTWVkaWFE
ZXZpY2VzIGludGVyZmFjZTogb3BlcmF0aW9uIGdldFVzZXJNZWRpYShNZWRpYVN0cmVhbUNvbnN0
cmFpbnRzKSAKLVBBU1MgTWVkaWFEZXZpY2VzIG11c3QgYmUgcHJpbWFyeSBpbnRlcmZhY2Ugb2Yg
bmF2aWdhdG9yLm1lZGlhRGV2aWNlcyAKLVBBU1MgU3RyaW5naWZpY2F0aW9uIG9mIG5hdmlnYXRv
ci5tZWRpYURldmljZXMgCi1QQVNTIE1lZGlhRGV2aWNlcyBpbnRlcmZhY2U6IG5hdmlnYXRvci5t
ZWRpYURldmljZXMgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJvbmRldmljZWNoYW5nZSIgd2l0aCB0
aGUgcHJvcGVyIHR5cGUgCi1QQVNTIE1lZGlhRGV2aWNlcyBpbnRlcmZhY2U6IG5hdmlnYXRvci5t
ZWRpYURldmljZXMgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJlbnVtZXJhdGVEZXZpY2VzKCkiIHdp
dGggdGhlIHByb3BlciB0eXBlIAotUEFTUyBNZWRpYURldmljZXMgaW50ZXJmYWNlOiBuYXZpZ2F0
b3IubWVkaWFEZXZpY2VzIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiZ2V0U3VwcG9ydGVkQ29uc3Ry
YWludHMoKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCi1QQVNTIE1lZGlhRGV2aWNlcyBpbnRlcmZh
Y2U6IG5hdmlnYXRvci5tZWRpYURldmljZXMgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJnZXRVc2Vy
TWVkaWEoTWVkaWFTdHJlYW1Db25zdHJhaW50cykiIHdpdGggdGhlIHByb3BlciB0eXBlIAotUEFT
UyBNZWRpYURldmljZXMgaW50ZXJmYWNlOiBjYWxsaW5nIGdldFVzZXJNZWRpYShNZWRpYVN0cmVh
bUNvbnN0cmFpbnRzKSBvbiBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzIHdpdGggdG9vIGZldyBhcmd1
bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCi1QQVNTIE1lZGlhRGV2aWNlSW5mbyBpbnRlcmZh
Y2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IAotUEFTUyBN
ZWRpYURldmljZUluZm8gaW50ZXJmYWNlIG9iamVjdCBsZW5ndGggCi1QQVNTIE1lZGlhRGV2aWNl
SW5mbyBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUgCi1QQVNTIE1lZGlhRGV2aWNlSW5mbyBpbnRlcmZh
Y2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVj
dCAKLVBBU1MgTWVkaWFEZXZpY2VJbmZvIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0
aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgImNvbnN0cnVjdG9yIiBwcm9wZXJ0
eSAKLVBBU1MgTWVkaWFEZXZpY2VJbmZvIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0
aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgQEB1bnNjb3BhYmxlcyBwcm9wZXJ0
eSAKLVBBU1MgTWVkaWFEZXZpY2VJbmZvIGludGVyZmFjZTogYXR0cmlidXRlIGRldmljZUlkIAot
UEFTUyBNZWRpYURldmljZUluZm8gaW50ZXJmYWNlOiBhdHRyaWJ1dGUga2luZCAKLVBBU1MgTWVk
aWFEZXZpY2VJbmZvIGludGVyZmFjZTogYXR0cmlidXRlIGxhYmVsIAotUEFTUyBNZWRpYURldmlj
ZUluZm8gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgZ3JvdXBJZCAKLVBBU1MgTWVkaWFEZXZpY2VJbmZv
IGludGVyZmFjZTogb3BlcmF0aW9uIHRvSlNPTigpIAotRkFJTCBJbnB1dERldmljZUluZm8gaW50
ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCBhc3Nl
cnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJJbnB1dERl
dmljZUluZm8iIGV4cGVjdGVkIHByb3BlcnR5ICJJbnB1dERldmljZUluZm8iIG1pc3NpbmcKLUZB
SUwgSW5wdXREZXZpY2VJbmZvIGludGVyZmFjZSBvYmplY3QgbGVuZ3RoIGFzc2VydF9vd25fcHJv
cGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIklucHV0RGV2aWNlSW5mbyIg
ZXhwZWN0ZWQgcHJvcGVydHkgIklucHV0RGV2aWNlSW5mbyIgbWlzc2luZwotRkFJTCBJbnB1dERl
dmljZUluZm8gaW50ZXJmYWNlIG9iamVjdCBuYW1lIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYg
ZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIklucHV0RGV2aWNlSW5mbyIgZXhwZWN0ZWQgcHJv
cGVydHkgIklucHV0RGV2aWNlSW5mbyIgbWlzc2luZwotRkFJTCBJbnB1dERldmljZUluZm8gaW50
ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBv
YmplY3QgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0
eSAiSW5wdXREZXZpY2VJbmZvIiBleHBlY3RlZCBwcm9wZXJ0eSAiSW5wdXREZXZpY2VJbmZvIiBt
aXNzaW5nCi1GQUlMIElucHV0RGV2aWNlSW5mbyBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJv
cGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzICJjb25zdHJ1Y3RvciIgcHJv
cGVydHkgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0
eSAiSW5wdXREZXZpY2VJbmZvIiBleHBlY3RlZCBwcm9wZXJ0eSAiSW5wdXREZXZpY2VJbmZvIiBt
aXNzaW5nCi1GQUlMIElucHV0RGV2aWNlSW5mbyBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJv
cGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzIEBAdW5zY29wYWJsZXMgcHJv
cGVydHkgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0
eSAiSW5wdXREZXZpY2VJbmZvIiBleHBlY3RlZCBwcm9wZXJ0eSAiSW5wdXREZXZpY2VJbmZvIiBt
aXNzaW5nCi1GQUlMIElucHV0RGV2aWNlSW5mbyBpbnRlcmZhY2U6IG9wZXJhdGlvbiBnZXRDYXBh
YmlsaXRpZXMoKSBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHBy
b3BlcnR5ICJJbnB1dERldmljZUluZm8iIGV4cGVjdGVkIHByb3BlcnR5ICJJbnB1dERldmljZUlu
Zm8iIG1pc3NpbmcKLVBBU1MgTmF2aWdhdG9yIGludGVyZmFjZTogYXR0cmlidXRlIG1lZGlhRGV2
aWNlcyAKLUZBSUwgTmF2aWdhdG9yIGludGVyZmFjZTogb3BlcmF0aW9uIGdldFVzZXJNZWRpYShN
ZWRpYVN0cmVhbUNvbnN0cmFpbnRzLCBOYXZpZ2F0b3JVc2VyTWVkaWFTdWNjZXNzQ2FsbGJhY2ss
IE5hdmlnYXRvclVzZXJNZWRpYUVycm9yQ2FsbGJhY2spIGFzc2VydF9vd25fcHJvcGVydHk6IGlu
dGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IG1pc3Npbmcgbm9uLXN0YXRpYyBvcGVyYXRpb24gZXhw
ZWN0ZWQgcHJvcGVydHkgImdldFVzZXJNZWRpYSIgbWlzc2luZwotUEFTUyBOYXZpZ2F0b3IgaW50
ZXJmYWNlOiBuYXZpZ2F0b3IgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJtZWRpYURldmljZXMiIHdp
dGggdGhlIHByb3BlciB0eXBlIAotRkFJTCBOYXZpZ2F0b3IgaW50ZXJmYWNlOiBuYXZpZ2F0b3Ig
bXVzdCBpbmhlcml0IHByb3BlcnR5ICJnZXRVc2VyTWVkaWEoTWVkaWFTdHJlYW1Db25zdHJhaW50
cywgTmF2aWdhdG9yVXNlck1lZGlhU3VjY2Vzc0NhbGxiYWNrLCBOYXZpZ2F0b3JVc2VyTWVkaWFF
cnJvckNhbGxiYWNrKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2luaGVyaXRzOiBwcm9w
ZXJ0eSAiZ2V0VXNlck1lZGlhIiBub3QgZm91bmQgaW4gcHJvdG90eXBlIGNoYWluCi1GQUlMIE5h
dmlnYXRvciBpbnRlcmZhY2U6IGNhbGxpbmcgZ2V0VXNlck1lZGlhKE1lZGlhU3RyZWFtQ29uc3Ry
YWludHMsIE5hdmlnYXRvclVzZXJNZWRpYVN1Y2Nlc3NDYWxsYmFjaywgTmF2aWdhdG9yVXNlck1l
ZGlhRXJyb3JDYWxsYmFjaykgb24gbmF2aWdhdG9yIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVz
dCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X2luaGVyaXRzOiBwcm9wZXJ0eSAiZ2V0VXNlck1lZGlh
IiBub3QgZm91bmQgaW4gcHJvdG90eXBlIGNoYWluCi1QQVNTIFdvcmtlck5hdmlnYXRvciBpbnRl
cmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IAorRkFJ
TCBpZGxfdGVzdCBzZXR1cCBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2
YWx1ZTogb2JqZWN0ICJXZWJJRExQYXJzZUVycm9yOiBTeW50YXggZXJyb3IgYXQgbGluZSAxNDcs
IHNpbmNlIGBpbnRlcmZhY2UgTmF2aWdhdG9yVXNlck1lZGlhYDoKK05hdmlnYXRvciBpbXBsZW1l
bnRzIE5hdmlnYXRvclVzZXJNZWRpYTsKK14gVW5yZWNvZ25pc2VkIHRva2VucyIKIApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNh
cHR1cmUtc3RyZWFtcy9NZWRpYURldmljZXMtSURMLWVudW1lcmF0ZURldmljZXMtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNh
cHR1cmUtc3RyZWFtcy9NZWRpYURldmljZXMtSURMLWVudW1lcmF0ZURldmljZXMtZXhwZWN0ZWQu
dHh0CmluZGV4IDk0ZTRkYjUzMGJkMDg3YTA1MzJlZmNmNTg1ZTAwZWY5NzkwOWMyOTcuLmY0ZTEy
YjJhNmE3NjVhMDUzNmYwNjkyNWFiNzRjYjNmYjc4MDQzY2EgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFjYXB0dXJlLXN0cmVhbXMv
TWVkaWFEZXZpY2VzLUlETC1lbnVtZXJhdGVEZXZpY2VzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhY2FwdHVyZS1zdHJl
YW1zL01lZGlhRGV2aWNlcy1JREwtZW51bWVyYXRlRGV2aWNlcy1leHBlY3RlZC50eHQKQEAgLTEs
MTAzICsxLDkgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA0ODI6IGNhbGxiYWNrIG5vdCB5ZXQg
c3VwcG9ydGVkCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNDgyOiBjYWxsYmFjayBub3QgeWV0IHN1
cHBvcnRlZAogRGVzY3JpcHRpb24KIAogVGhpcyB0ZXN0IGNoZWNrcyBmb3IgdGhlIHByZXNlbmNl
IG9mIHRoZSBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmVudW1lcmF0ZURldmljZXMoKSBtZXRob2Qu
CiAKIAotUEFTUyBpZGxfdGVzdCBzZXR1cCAKLVBBU1MgUGFydGlhbCBpbnRlcmZhY2UgTmF2aWdh
dG9yVXNlck1lZGlhOiBvcmlnaW5hbCBpbnRlcmZhY2UgZGVmaW5lZCAKLVBBU1MgUGFydGlhbCBp
bnRlcmZhY2UgTWVkaWFEZXZpY2VzOiBvcmlnaW5hbCBpbnRlcmZhY2UgZGVmaW5lZCAKLVBBU1Mg
TWVkaWFTdHJlYW0gaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJm
YWNlIG9iamVjdCAKLVBBU1MgTWVkaWFTdHJlYW0gaW50ZXJmYWNlIG9iamVjdCBsZW5ndGggCi1Q
QVNTIE1lZGlhU3RyZWFtIGludGVyZmFjZSBvYmplY3QgbmFtZSAKLVBBU1MgTWVkaWFTdHJlYW0g
aW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlw
ZSBvYmplY3QgCi1QQVNTIE1lZGlhU3RyZWFtIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9w
ZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgImNvbnN0cnVjdG9yIiBwcm9w
ZXJ0eSAKLVBBU1MgTWVkaWFTdHJlYW0gaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRp
ZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyBAQHVuc2NvcGFibGVzIHByb3BlcnR5
IAotUEFTUyBNZWRpYVN0cmVhbSBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBpZCAKLVBBU1MgTWVkaWFT
dHJlYW0gaW50ZXJmYWNlOiBvcGVyYXRpb24gZ2V0QXVkaW9UcmFja3MoKSAKLVBBU1MgTWVkaWFT
dHJlYW0gaW50ZXJmYWNlOiBvcGVyYXRpb24gZ2V0VmlkZW9UcmFja3MoKSAKLVBBU1MgTWVkaWFT
dHJlYW0gaW50ZXJmYWNlOiBvcGVyYXRpb24gZ2V0VHJhY2tzKCkgCi1QQVNTIE1lZGlhU3RyZWFt
IGludGVyZmFjZTogb3BlcmF0aW9uIGdldFRyYWNrQnlJZChET01TdHJpbmcpIAotUEFTUyBNZWRp
YVN0cmVhbSBpbnRlcmZhY2U6IG9wZXJhdGlvbiBhZGRUcmFjayhNZWRpYVN0cmVhbVRyYWNrKSAK
LVBBU1MgTWVkaWFTdHJlYW0gaW50ZXJmYWNlOiBvcGVyYXRpb24gcmVtb3ZlVHJhY2soTWVkaWFT
dHJlYW1UcmFjaykgCi1QQVNTIE1lZGlhU3RyZWFtIGludGVyZmFjZTogb3BlcmF0aW9uIGNsb25l
KCkgCi1QQVNTIE1lZGlhU3RyZWFtIGludGVyZmFjZTogYXR0cmlidXRlIGFjdGl2ZSAKLVBBU1Mg
TWVkaWFTdHJlYW0gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgb25hZGR0cmFjayAKLVBBU1MgTWVkaWFT
dHJlYW0gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgb25yZW1vdmV0cmFjayAKLVBBU1MgTWVkaWFTdHJl
YW1UcmFjayBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ug
b2JqZWN0IAotUEFTUyBNZWRpYVN0cmVhbVRyYWNrIGludGVyZmFjZSBvYmplY3QgbGVuZ3RoIAot
UEFTUyBNZWRpYVN0cmVhbVRyYWNrIGludGVyZmFjZSBvYmplY3QgbmFtZSAKLVBBU1MgTWVkaWFT
dHJlYW1UcmFjayBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZh
Y2UgcHJvdG90eXBlIG9iamVjdCAKLVBBU1MgTWVkaWFTdHJlYW1UcmFjayBpbnRlcmZhY2U6IGV4
aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzICJj
b25zdHJ1Y3RvciIgcHJvcGVydHkgCi1QQVNTIE1lZGlhU3RyZWFtVHJhY2sgaW50ZXJmYWNlOiBl
eGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyBA
QHVuc2NvcGFibGVzIHByb3BlcnR5IAotUEFTUyBNZWRpYVN0cmVhbVRyYWNrIGludGVyZmFjZTog
YXR0cmlidXRlIGtpbmQgCi1QQVNTIE1lZGlhU3RyZWFtVHJhY2sgaW50ZXJmYWNlOiBhdHRyaWJ1
dGUgaWQgCi1QQVNTIE1lZGlhU3RyZWFtVHJhY2sgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgbGFiZWwg
Ci1QQVNTIE1lZGlhU3RyZWFtVHJhY2sgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgZW5hYmxlZCAKLVBB
U1MgTWVkaWFTdHJlYW1UcmFjayBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBtdXRlZCAKLVBBU1MgTWVk
aWFTdHJlYW1UcmFjayBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBvbm11dGUgCi1QQVNTIE1lZGlhU3Ry
ZWFtVHJhY2sgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgb251bm11dGUgCi1QQVNTIE1lZGlhU3RyZWFt
VHJhY2sgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgcmVhZHlTdGF0ZSAKLVBBU1MgTWVkaWFTdHJlYW1U
cmFjayBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBvbmVuZGVkIAotUEFTUyBNZWRpYVN0cmVhbVRyYWNr
IGludGVyZmFjZTogb3BlcmF0aW9uIGNsb25lKCkgCi1QQVNTIE1lZGlhU3RyZWFtVHJhY2sgaW50
ZXJmYWNlOiBvcGVyYXRpb24gc3RvcCgpIAotUEFTUyBNZWRpYVN0cmVhbVRyYWNrIGludGVyZmFj
ZTogb3BlcmF0aW9uIGdldENhcGFiaWxpdGllcygpIAotUEFTUyBNZWRpYVN0cmVhbVRyYWNrIGlu
dGVyZmFjZTogb3BlcmF0aW9uIGdldENvbnN0cmFpbnRzKCkgCi1QQVNTIE1lZGlhU3RyZWFtVHJh
Y2sgaW50ZXJmYWNlOiBvcGVyYXRpb24gZ2V0U2V0dGluZ3MoKSAKLVBBU1MgTWVkaWFTdHJlYW1U
cmFjayBpbnRlcmZhY2U6IG9wZXJhdGlvbiBhcHBseUNvbnN0cmFpbnRzKE1lZGlhVHJhY2tDb25z
dHJhaW50cykgCi1QQVNTIE1lZGlhU3RyZWFtVHJhY2sgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgb25v
dmVyY29uc3RyYWluZWQgCi1QQVNTIE1lZGlhU3RyZWFtVHJhY2tFdmVudCBpbnRlcmZhY2U6IGV4
aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IAotUEFTUyBNZWRpYVN0
cmVhbVRyYWNrRXZlbnQgaW50ZXJmYWNlIG9iamVjdCBsZW5ndGggCi1QQVNTIE1lZGlhU3RyZWFt
VHJhY2tFdmVudCBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUgCi1QQVNTIE1lZGlhU3RyZWFtVHJhY2tF
dmVudCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJv
dG90eXBlIG9iamVjdCAKLVBBU1MgTWVkaWFTdHJlYW1UcmFja0V2ZW50IGludGVyZmFjZTogZXhp
c3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgImNv
bnN0cnVjdG9yIiBwcm9wZXJ0eSAKLVBBU1MgTWVkaWFTdHJlYW1UcmFja0V2ZW50IGludGVyZmFj
ZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0
J3MgQEB1bnNjb3BhYmxlcyBwcm9wZXJ0eSAKLVBBU1MgTWVkaWFTdHJlYW1UcmFja0V2ZW50IGlu
dGVyZmFjZTogYXR0cmlidXRlIHRyYWNrIAotUEFTUyBPdmVyY29uc3RyYWluZWRFcnJvckV2ZW50
IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3Qg
Ci1GQUlMIE92ZXJjb25zdHJhaW5lZEVycm9yRXZlbnQgaW50ZXJmYWNlIG9iamVjdCBsZW5ndGgg
YXNzZXJ0X2VxdWFsczogd3JvbmcgdmFsdWUgZm9yIE92ZXJjb25zdHJhaW5lZEVycm9yRXZlbnQu
bGVuZ3RoIGV4cGVjdGVkIDIgYnV0IGdvdCAxCi1QQVNTIE92ZXJjb25zdHJhaW5lZEVycm9yRXZl
bnQgaW50ZXJmYWNlIG9iamVjdCBuYW1lIAotUEFTUyBPdmVyY29uc3RyYWluZWRFcnJvckV2ZW50
IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5
cGUgb2JqZWN0IAotUEFTUyBPdmVyY29uc3RyYWluZWRFcnJvckV2ZW50IGludGVyZmFjZTogZXhp
c3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgImNv
bnN0cnVjdG9yIiBwcm9wZXJ0eSAKLVBBU1MgT3ZlcmNvbnN0cmFpbmVkRXJyb3JFdmVudCBpbnRl
cmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9i
amVjdCdzIEBAdW5zY29wYWJsZXMgcHJvcGVydHkgCi1QQVNTIE92ZXJjb25zdHJhaW5lZEVycm9y
RXZlbnQgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgZXJyb3IgCi1QQVNTIE1lZGlhRGV2aWNlcyBpbnRl
cmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IAotUEFT
UyBNZWRpYURldmljZXMgaW50ZXJmYWNlIG9iamVjdCBsZW5ndGggCi1QQVNTIE1lZGlhRGV2aWNl
cyBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUgCi1QQVNTIE1lZGlhRGV2aWNlcyBpbnRlcmZhY2U6IGV4
aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCAKLVBB
U1MgTWVkaWFEZXZpY2VzIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGlu
dGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgImNvbnN0cnVjdG9yIiBwcm9wZXJ0eSAKLVBBU1Mg
TWVkaWFEZXZpY2VzIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVy
ZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgQEB1bnNjb3BhYmxlcyBwcm9wZXJ0eSAKLVBBU1MgTWVk
aWFEZXZpY2VzIGludGVyZmFjZTogYXR0cmlidXRlIG9uZGV2aWNlY2hhbmdlIAotUEFTUyBNZWRp
YURldmljZXMgaW50ZXJmYWNlOiBvcGVyYXRpb24gZW51bWVyYXRlRGV2aWNlcygpIAotUEFTUyBN
ZWRpYURldmljZXMgaW50ZXJmYWNlOiBvcGVyYXRpb24gZ2V0U3VwcG9ydGVkQ29uc3RyYWludHMo
KSAKLVBBU1MgTWVkaWFEZXZpY2VzIGludGVyZmFjZTogb3BlcmF0aW9uIGdldFVzZXJNZWRpYShN
ZWRpYVN0cmVhbUNvbnN0cmFpbnRzKSAKLVBBU1MgTWVkaWFEZXZpY2VJbmZvIGludGVyZmFjZTog
ZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgCi1QQVNTIE1lZGlh
RGV2aWNlSW5mbyBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aCAKLVBBU1MgTWVkaWFEZXZpY2VJbmZv
IGludGVyZmFjZSBvYmplY3QgbmFtZSAKLVBBU1MgTWVkaWFEZXZpY2VJbmZvIGludGVyZmFjZTog
ZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IAot
UEFTUyBNZWRpYURldmljZUluZm8gaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMg
b2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyAiY29uc3RydWN0b3IiIHByb3BlcnR5IAot
UEFTUyBNZWRpYURldmljZUluZm8gaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMg
b2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyBAQHVuc2NvcGFibGVzIHByb3BlcnR5IAot
UEFTUyBNZWRpYURldmljZUluZm8gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgZGV2aWNlSWQgCi1QQVNT
IE1lZGlhRGV2aWNlSW5mbyBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBraW5kIAotUEFTUyBNZWRpYURl
dmljZUluZm8gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgbGFiZWwgCi1QQVNTIE1lZGlhRGV2aWNlSW5m
byBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBncm91cElkIAotUEFTUyBNZWRpYURldmljZUluZm8gaW50
ZXJmYWNlOiBvcGVyYXRpb24gdG9KU09OKCkgCi1QQVNTIE1lZGlhRGV2aWNlSW5mbyBtdXN0IGJl
IHByaW1hcnkgaW50ZXJmYWNlIG9mIF9tZWRpYUluZm8gCi1QQVNTIFN0cmluZ2lmaWNhdGlvbiBv
ZiBfbWVkaWFJbmZvIAotUEFTUyBNZWRpYURldmljZUluZm8gaW50ZXJmYWNlOiBfbWVkaWFJbmZv
IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiZGV2aWNlSWQiIHdpdGggdGhlIHByb3BlciB0eXBlIAot
UEFTUyBNZWRpYURldmljZUluZm8gaW50ZXJmYWNlOiBfbWVkaWFJbmZvIG11c3QgaW5oZXJpdCBw
cm9wZXJ0eSAia2luZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCi1QQVNTIE1lZGlhRGV2aWNlSW5m
byBpbnRlcmZhY2U6IF9tZWRpYUluZm8gbXVzdCBpbmhlcml0IHByb3BlcnR5ICJsYWJlbCIgd2l0
aCB0aGUgcHJvcGVyIHR5cGUgCi1QQVNTIE1lZGlhRGV2aWNlSW5mbyBpbnRlcmZhY2U6IF9tZWRp
YUluZm8gbXVzdCBpbmhlcml0IHByb3BlcnR5ICJncm91cElkIiB3aXRoIHRoZSBwcm9wZXIgdHlw
ZSAKLVBBU1MgTWVkaWFEZXZpY2VJbmZvIGludGVyZmFjZTogX21lZGlhSW5mbyBtdXN0IGluaGVy
aXQgcHJvcGVydHkgInRvSlNPTigpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKLVBBU1MgVGVzdCBk
ZWZhdWx0IHRvSlNPTiBvcGVyYXRpb24gb2YgTWVkaWFEZXZpY2VJbmZvIAotRkFJTCBJbnB1dERl
dmljZUluZm8gaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNl
IG9iamVjdCBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3Bl
cnR5ICJJbnB1dERldmljZUluZm8iIGV4cGVjdGVkIHByb3BlcnR5ICJJbnB1dERldmljZUluZm8i
IG1pc3NpbmcKLUZBSUwgSW5wdXREZXZpY2VJbmZvIGludGVyZmFjZSBvYmplY3QgbGVuZ3RoIGFz
c2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIklucHV0
RGV2aWNlSW5mbyIgZXhwZWN0ZWQgcHJvcGVydHkgIklucHV0RGV2aWNlSW5mbyIgbWlzc2luZwot
RkFJTCBJbnB1dERldmljZUluZm8gaW50ZXJmYWNlIG9iamVjdCBuYW1lIGFzc2VydF9vd25fcHJv
cGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIklucHV0RGV2aWNlSW5mbyIg
ZXhwZWN0ZWQgcHJvcGVydHkgIklucHV0RGV2aWNlSW5mbyIgbWlzc2luZwotRkFJTCBJbnB1dERl
dmljZUluZm8gaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNl
IHByb3RvdHlwZSBvYmplY3QgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZl
IG93biBwcm9wZXJ0eSAiSW5wdXREZXZpY2VJbmZvIiBleHBlY3RlZCBwcm9wZXJ0eSAiSW5wdXRE
ZXZpY2VJbmZvIiBtaXNzaW5nCi1GQUlMIElucHV0RGV2aWNlSW5mbyBpbnRlcmZhY2U6IGV4aXN0
ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzICJjb25z
dHJ1Y3RvciIgcHJvcGVydHkgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZl
IG93biBwcm9wZXJ0eSAiSW5wdXREZXZpY2VJbmZvIiBleHBlY3RlZCBwcm9wZXJ0eSAiSW5wdXRE
ZXZpY2VJbmZvIiBtaXNzaW5nCi1GQUlMIElucHV0RGV2aWNlSW5mbyBpbnRlcmZhY2U6IGV4aXN0
ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzIEBAdW5z
Y29wYWJsZXMgcHJvcGVydHkgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZl
IG93biBwcm9wZXJ0eSAiSW5wdXREZXZpY2VJbmZvIiBleHBlY3RlZCBwcm9wZXJ0eSAiSW5wdXRE
ZXZpY2VJbmZvIiBtaXNzaW5nCi1GQUlMIElucHV0RGV2aWNlSW5mbyBpbnRlcmZhY2U6IG9wZXJh
dGlvbiBnZXRDYXBhYmlsaXRpZXMoKSBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90
IGhhdmUgb3duIHByb3BlcnR5ICJJbnB1dERldmljZUluZm8iIGV4cGVjdGVkIHByb3BlcnR5ICJJ
bnB1dERldmljZUluZm8iIG1pc3NpbmcKLVBBU1MgTmF2aWdhdG9yIGludGVyZmFjZTogYXR0cmli
dXRlIG1lZGlhRGV2aWNlcyAKLUZBSUwgTmF2aWdhdG9yIGludGVyZmFjZTogb3BlcmF0aW9uIGdl
dFVzZXJNZWRpYShNZWRpYVN0cmVhbUNvbnN0cmFpbnRzLCBOYXZpZ2F0b3JVc2VyTWVkaWFTdWNj
ZXNzQ2FsbGJhY2ssIE5hdmlnYXRvclVzZXJNZWRpYUVycm9yQ2FsbGJhY2spIGFzc2VydF9vd25f
cHJvcGVydHk6IGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IG1pc3Npbmcgbm9uLXN0YXRpYyBv
cGVyYXRpb24gZXhwZWN0ZWQgcHJvcGVydHkgImdldFVzZXJNZWRpYSIgbWlzc2luZwotUEFTUyBX
b3JrZXJOYXZpZ2F0b3IgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50
ZXJmYWNlIG9iamVjdCAKK0ZBSUwgaWRsX3Rlc3Qgc2V0dXAgcHJvbWlzZV90ZXN0OiBVbmhhbmRs
ZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiV2ViSURMUGFyc2VFcnJvcjogU3ludGF4
IGVycm9yIGF0IGxpbmUgMTQ3LCBzaW5jZSBgaW50ZXJmYWNlIE5hdmlnYXRvclVzZXJNZWRpYWA6
CitOYXZpZ2F0b3IgaW1wbGVtZW50cyBOYXZpZ2F0b3JVc2VyTWVkaWE7CiteIFVucmVjb2duaXNl
ZCB0b2tlbnMiCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvbXN0LWNvbnRlbnQtaGludC9pZGxoYXJuZXNzLndpbmRvdy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21zdC1jb250
ZW50LWhpbnQvaWRsaGFybmVzcy53aW5kb3ctZXhwZWN0ZWQudHh0CmluZGV4IGE3ZWEzMjc5MWNi
MDA2OTNmMzc5NGEyM2QzMjg0YTkyNjc5YzUyZmYuLmZhNmJhMDY1NTY5MjlkNTc0ZjJkYjY3ODVl
MzhiNzAwYTYyYWI3ZWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvbXN0LWNvbnRlbnQtaGludC9pZGxoYXJuZXNzLndpbmRvdy1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9t
c3QtY29udGVudC1oaW50L2lkbGhhcm5lc3Mud2luZG93LWV4cGVjdGVkLnR4dApAQCAtMSwzMCAr
MSwzIEBACiAKLUZBSUwgaWRsX3Rlc3Qgc2V0dXAgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVq
ZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiR290IGFuIGVycm9yIGJlZm9yZSBwYXJzaW5nIGFu
eSBuYW1lZCBkZWZpbml0aW9uOiBVbnJlY29nbmlzZWQgdG9rZW5zLCBsaW5lIDEgKHRva2Vuczog
IntcImVycm9yXCI6IHtcIm1lc3NhZ2VcIiIpCi1bCi0gICAgewotICAgICAgICAidHlwZSI6ICJ7
IiwKLSAgICAgICAgInZhbHVlIjogInsiLAotICAgICAgICAidHJpdmlhIjogIiIKLSAgICB9LAot
ICAgIHsKLSAgICAgICAgInR5cGUiOiAic3RyaW5nIiwKLSAgICAgICAgInZhbHVlIjogIlwiZXJy
b3JcIiIsCi0gICAgICAgICJ0cml2aWEiOiAiIgotICAgIH0sCi0gICAgewotICAgICAgICAidHlw
ZSI6ICI6IiwKLSAgICAgICAgInZhbHVlIjogIjoiLAotICAgICAgICAidHJpdmlhIjogIiIKLSAg
ICB9LAotICAgIHsKLSAgICAgICAgInR5cGUiOiAieyIsCi0gICAgICAgICJ2YWx1ZSI6ICJ7IiwK
LSAgICAgICAgInRyaXZpYSI6ICIgIgotICAgIH0sCi0gICAgewotICAgICAgICAidHlwZSI6ICJz
dHJpbmciLAotICAgICAgICAidmFsdWUiOiAiXCJtZXNzYWdlXCIiLAotICAgICAgICAidHJpdmlh
IjogIiIKLSAgICB9Ci1dIgorRkFJTCBpZGxfdGVzdCBzZXR1cCBwcm9taXNlX3Rlc3Q6IFVuaGFu
ZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJFcnJvciBmZXRjaGluZyAvaW50ZXJm
YWNlcy9tc3QtY29udGVudC1oaW50LmlkbC4iCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbm90aWZpY2F0aW9ucy9pbnRlcmZhY2VzLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
bm90aWZpY2F0aW9ucy9pbnRlcmZhY2VzLWV4cGVjdGVkLnR4dAppbmRleCA5NzA2NmIyYjY0YjMy
NGMzMWE4MmFjYTM4NTk0MTA0M2M5ZmVlZjQ3Li42MTY4Y2RkYmQ0NTEwOTM3YjJhMjA3N2NjM2U5
NjEzY2VkM2JlMDlkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL25vdGlmaWNhdGlvbnMvaW50ZXJmYWNlcy1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9ub3RpZmljYXRpb25z
L2ludGVyZmFjZXMtZXhwZWN0ZWQudHh0CkBAIC0xLDUgKzEsMyBAQAotQ09OU09MRSBNRVNTQUdF
OiBsaW5lIDQ4MjogY2FsbGJhY2sgbm90IHlldCBzdXBwb3J0ZWQKLUNPTlNPTEUgTUVTU0FHRTog
bGluZSA0ODI6IGNhbGxiYWNrIG5vdCB5ZXQgc3VwcG9ydGVkCiAKIFBBU1MgTm90aWZpY2F0aW9u
IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3Qg
CiBQQVNTIE5vdGlmaWNhdGlvbiBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aCAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzaXplLW9ic2Vy
dmVyL2lkbGhhcm5lc3Mud2luZG93LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzaXplLW9ic2VydmVyL2lkbGhhcm5lc3Mud2luZG93
LWV4cGVjdGVkLnR4dAppbmRleCA4Yzg0OTI4ZGYzMTFjODM1ZGE5YTA5NDVjZjVhYTJiMzQ3OWVl
NWExLi4xZDMzNzNkOGQ4NGU4OGFmM2M0MDdlYmFlYTliOGE3NjgwOWI3YTg4IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc2l6ZS1vYnNl
cnZlci9pZGxoYXJuZXNzLndpbmRvdy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNpemUtb2JzZXJ2ZXIvaWRsaGFybmVzcy53
aW5kb3ctZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsMyBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5l
IDQ4MjogY2FsbGJhY2sgbm90IHlldCBzdXBwb3J0ZWQKIAogUEFTUyBpZGxfdGVzdCBzZXR1cCAK
IFBBU1MgUmVzaXplT2JzZXJ2ZXJFbnRyeSBjcmVhdG9yIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvaWRsaGFybmVzcy5q
cyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2Vz
L2lkbGhhcm5lc3MuanMKaW5kZXggYTA4OGJjNGMyYTc4MDAyNTAwZmI4Nzk0MTBlMTgwMGYxNjg0
NWFmNy4uZjY4YWQxZGQ3ZDgxZTU0YmVhNWY5MDA0Mjg0ZWZmNDlhNzEzYTMyZSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMv
aWRsaGFybmVzcy5qcworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Jlc291cmNlcy9pZGxoYXJuZXNzLmpzCkBAIC01Nyw3ICs1Nyw2IEBAIGlmICghKCdz
dWJzZXRUZXN0QnlLZXknIGluIHNlbGYpKSB7CiB9CiAvLy8gSGVscGVycyAvLy8KIGZ1bmN0aW9u
IGNvbnN0VmFsdWUgKGNudCkKLS8vQHsKIHsKICAgICBpZiAoY250LnR5cGUgPT09ICJudWxsIikg
cmV0dXJuIG51bGw7CiAgICAgaWYgKGNudC50eXBlID09PSAiTmFOIikgcmV0dXJuIE5hTjsKQEAg
LTY2LDkgKzY1LDcgQEAgZnVuY3Rpb24gY29uc3RWYWx1ZSAoY250KQogICAgIHJldHVybiBjbnQu
dmFsdWU7CiB9CiAKLS8vQH0KIGZ1bmN0aW9uIG1pbk92ZXJsb2FkTGVuZ3RoKG92ZXJsb2FkcykK
LS8vQHsKIHsKICAgICAvLyAiVGhlIHZhbHVlIG9mIHRoZSBGdW5jdGlvbiBvYmplY3TigJlzIOKA
nGxlbmd0aOKAnSBwcm9wZXJ0eSBpcwogICAgIC8vIGEgTnVtYmVyIGRldGVybWluZWQgYXMgZm9s
bG93czoKQEAgLTg3LDkgKzg0LDcgQEAgZnVuY3Rpb24gbWluT3ZlcmxvYWRMZW5ndGgob3Zlcmxv
YWRzKQogICAgIC5yZWR1Y2UoZnVuY3Rpb24obSwgbikgeyByZXR1cm4gTWF0aC5taW4obSwgbik7
IH0pOwogfQogCi0vL0B9CiBmdW5jdGlvbiB0aHJvd09yUmVqZWN0KGFfdGVzdCwgb3BlcmF0aW9u
LCBmbiwgb2JqLCBhcmdzLCBtZXNzYWdlLCBjYikKLS8vQHsKIHsKICAgICBpZiAob3BlcmF0aW9u
LmlkbFR5cGUuZ2VuZXJpYyAhPT0gIlByb21pc2UiKSB7CiAgICAgICAgIGFzc2VydF90aHJvd3Mo
bmV3IFR5cGVFcnJvcigpLCBmdW5jdGlvbigpIHsKQEAgLTEwOCw5ICsxMDMsNyBAQCBmdW5jdGlv
biB0aHJvd09yUmVqZWN0KGFfdGVzdCwgb3BlcmF0aW9uLCBmbiwgb2JqLCBhcmdzLCBtZXNzYWdl
LCBjYikKICAgICB9CiB9CiAKLS8vQH0KIGZ1bmN0aW9uIGF3YWl0TkNhbGxiYWNrcyhuLCBjYiwg
Y3R4KQotLy9AewogewogICAgIHZhciBjb3VudGVyID0gMDsKICAgICByZXR1cm4gZnVuY3Rpb24o
KSB7CkBAIC0xMjEsOSArMTE0LDcgQEAgZnVuY3Rpb24gYXdhaXROQ2FsbGJhY2tzKG4sIGNiLCBj
dHgpCiAgICAgfTsKIH0KIAotLy9AfQogdmFyIGZyb3VuZCA9Ci0vL0B7CiAoZnVuY3Rpb24oKXsK
ICAgICBpZiAoTWF0aC5mcm91bmQpIHJldHVybiBNYXRoLmZyb3VuZDsKIApAQCAtMTMzLDEyICsx
MjQsMTAgQEAgdmFyIGZyb3VuZCA9CiAgICAgICAgIHJldHVybiBhcnJbMF07CiAgICAgfTsKIH0p
KCk7Ci0vL0B9CiAKIC8vLyBJZGxIYXJuZXNzRXJyb3IgLy8vCiAvLyBFbnRyeSBwb2ludAogc2Vs
Zi5JZGxIYXJuZXNzRXJyb3IgPSBmdW5jdGlvbihtZXNzYWdlKQotLy9AewogewogICAgIC8qKgog
ICAgICAqIE1lc3NhZ2UgdG8gYmUgcHJpbnRlZCBhcyB0aGUgZXJyb3IncyB0b1N0cmluZyBpbnZv
Y2F0aW9uLgpAQCAtMTQ4LDE5ICsxMzcsMTUgQEAgc2VsZi5JZGxIYXJuZXNzRXJyb3IgPSBmdW5j
dGlvbihtZXNzYWdlKQogCiBJZGxIYXJuZXNzRXJyb3IucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0
ZShFcnJvci5wcm90b3R5cGUpOwogCi0vL0B9CiBJZGxIYXJuZXNzRXJyb3IucHJvdG90eXBlLnRv
U3RyaW5nID0gZnVuY3Rpb24oKQotLy9AewogewogICAgIHJldHVybiB0aGlzLm1lc3NhZ2U7CiB9
OwogCi0vL0B9CiAKIC8vLyBJZGxBcnJheSAvLy8KIC8vIEVudHJ5IHBvaW50CiBzZWxmLklkbEFy
cmF5ID0gZnVuY3Rpb24oKQotLy9AewogewogICAgIC8qKgogICAgICAqIEEgbWFwIGZyb20gc3Ry
aW5ncyB0byB0aGUgY29ycmVzcG9uZGluZyBuYW1lZCBJZGxPYmplY3QsIHN1Y2ggYXMKQEAgLTIw
OCwxOSArMTkzLDIxIEBAIHNlbGYuSWRsQXJyYXkgPSBmdW5jdGlvbigpCiAgICAgdGhpc1siaW1w
bGVtZW50cyJdID0ge307CiAgICAgdGhpc1siaW5jbHVkZXMiXSA9IHt9OwogICAgIHRoaXNbImlu
aGVyaXRhbmNlIl0gPSB7fTsKKworICAgIC8qKgorICAgICAqIFJlY29yZCBvZiBza2lwcGVkIElE
TCBpdGVtcywgaW4gY2FzZSB3ZSBsYXRlciByZWFsaXplIHRoYXQgdGhleSBhcmUgYQorICAgICAq
IGRlcGVuZGVuY3kgKHRvIHJldHJvYWN0aXZlbHkgcHJvY2VzcyB0aGVtKS4KKyAgICAgKi8KKyAg
ICB0aGlzLnNraXBwZWQgPSBuZXcgTWFwKCk7CiB9OwogCi0vL0B9CiBJZGxBcnJheS5wcm90b3R5
cGUuYWRkX2lkbHMgPSBmdW5jdGlvbihyYXdfaWRscywgb3B0aW9ucykKLS8vQHsKIHsKICAgICAv
KiogRW50cnkgcG9pbnQuICBTZWUgZG9jdW1lbnRhdGlvbiBhdCBiZWdpbm5pbmcgb2YgZmlsZS4g
Ki8KICAgICB0aGlzLmludGVybmFsX2FkZF9pZGxzKFdlYklETDIucGFyc2UocmF3X2lkbHMpLCBv
cHRpb25zKTsKIH07CiAKLS8vQH0KIElkbEFycmF5LnByb3RvdHlwZS5hZGRfdW50ZXN0ZWRfaWRs
cyA9IGZ1bmN0aW9uKHJhd19pZGxzLCBvcHRpb25zKQotLy9AewogewogICAgIC8qKiBFbnRyeSBw
b2ludC4gIFNlZSBkb2N1bWVudGF0aW9uIGF0IGJlZ2lubmluZyBvZiBmaWxlLiAqLwogICAgIHZh
ciBwYXJzZWRfaWRscyA9IFdlYklETDIucGFyc2UocmF3X2lkbHMpOwpAQCAtMjI4LDkgKzIxNSw3
IEBAIElkbEFycmF5LnByb3RvdHlwZS5hZGRfdW50ZXN0ZWRfaWRscyA9IGZ1bmN0aW9uKHJhd19p
ZGxzLCBvcHRpb25zKQogICAgIHRoaXMuaW50ZXJuYWxfYWRkX2lkbHMocGFyc2VkX2lkbHMsIG9w
dGlvbnMpOwogfTsKIAotLy9AfQogSWRsQXJyYXkucHJvdG90eXBlLm1hcmtfYXNfdW50ZXN0ZWQg
PSBmdW5jdGlvbiAocGFyc2VkX2lkbHMpCi0vL0B7CiB7CiAgICAgZm9yICh2YXIgaSA9IDA7IGkg
PCBwYXJzZWRfaWRscy5sZW5ndGg7IGkrKykgewogICAgICAgICBwYXJzZWRfaWRsc1tpXS51bnRl
c3RlZCA9IHRydWU7CkBAIC0yNDEsMjEgKzIyNiwxNSBAQCBJZGxBcnJheS5wcm90b3R5cGUubWFy
a19hc191bnRlc3RlZCA9IGZ1bmN0aW9uIChwYXJzZWRfaWRscykKICAgICAgICAgfQogICAgIH0K
IH07Ci0vL0B9CiAKLS8vQH0KIElkbEFycmF5LnByb3RvdHlwZS5pc19leGNsdWRlZF9ieV9vcHRp
b25zID0gZnVuY3Rpb24gKG5hbWUsIG9wdGlvbnMpCi0vL0B7CiB7CiAgICAgcmV0dXJuIG9wdGlv
bnMgJiYKICAgICAgICAgKG9wdGlvbnMuZXhjZXB0ICYmIG9wdGlvbnMuZXhjZXB0LmluY2x1ZGVz
KG5hbWUpCiAgICAgICAgICB8fCBvcHRpb25zLm9ubHkgJiYgIW9wdGlvbnMub25seS5pbmNsdWRl
cyhuYW1lKSk7CiB9OwotLy9AfQogCi0vL0B9CiBJZGxBcnJheS5wcm90b3R5cGUuYWRkX2RlcGVu
ZGVuY3lfaWRscyA9IGZ1bmN0aW9uKHJhd19pZGxzLCBvcHRpb25zKQotLy9AewogewogICAgIGNv
bnN0IHBhcnNlZF9pZGxzID0gV2ViSURMMi5wYXJzZShyYXdfaWRscyk7CiAgICAgY29uc3QgbmV3
X29wdGlvbnMgPSB7IG9ubHk6IFtdIH0KQEAgLTI3MSwyMiArMjUwLDUwIEBAIElkbEFycmF5LnBy
b3RvdHlwZS5hZGRfZGVwZW5kZW5jeV9pZGxzID0gZnVuY3Rpb24ocmF3X2lkbHMsIG9wdGlvbnMp
CiAgICAgICAgIGFsbF9kZXBzLmFkZChrKTsKICAgICAgICAgdGhpcy5pbmNsdWRlc1trXS5mb3JF
YWNoKHYgPT4gYWxsX2RlcHMuYWRkKHYpKTsKICAgICB9KTsKLSAgICB0aGlzLnBhcnRpYWxzLm1h
cChwID0+IHAubmFtZSkuZm9yRWFjaCh2ID0+IGFsbF9kZXBzLmFkZCh2KSk7Ci0gICAgLy8gQWRk
IHRoZSBhdHRyaWJ1dGUgaWRsVHlwZXMgb2YgYWxsIHRoZSBuZXN0ZWQgbWVtYmVycyBvZiBhbGwg
dGVzdGVkIGlkbHMuCi0gICAgZm9yIChjb25zdCBvYmogb2YgW3RoaXMubWVtYmVycywgdGhpcy5w
YXJ0aWFsc10pIHsKLSAgICAgICAgY29uc3QgdGVzdGVkID0gT2JqZWN0LnZhbHVlcyhvYmopLmZp
bHRlcihtID0+ICFtLnVudGVzdGVkICYmIG0ubWVtYmVycyk7Ci0gICAgICAgIGZvciAoY29uc3Qg
cGFyc2VkIG9mIHRlc3RlZCkgewotICAgICAgICAgICAgZm9yIChjb25zdCBhdHRyIG9mIE9iamVj
dC52YWx1ZXMocGFyc2VkLm1lbWJlcnMpLmZpbHRlcihtID0+ICFtLnVudGVzdGVkICYmIG0udHlw
ZSA9PT0gJ2F0dHJpYnV0ZScpKSB7Ci0gICAgICAgICAgICAgICAgYWxsX2RlcHMuYWRkKGF0dHIu
aWRsVHlwZS5pZGxUeXBlKTsKLSAgICAgICAgICAgIH0KKyAgICB0aGlzLnBhcnRpYWxzLmZvckVh
Y2gocCA9PiBhbGxfZGVwcy5hZGQocC5uYW1lKSk7CisgICAgLy8gQWRkICdUeXBlT2ZUeXBlJyBm
b3IgZWFjaCAidHlwZWRlZiBUeXBlT2ZUeXBlIE15VHlwZTsiIGVudHJ5LgorICAgIE9iamVjdC5l
bnRyaWVzKHRoaXMubWVtYmVycykuZm9yRWFjaCgoW2ssIHZdKSA9PiB7CisgICAgICAgIGlmICh2
IGluc3RhbmNlb2YgSWRsVHlwZWRlZikgeworICAgICAgICAgICAgbGV0IGRlZnMgPSB2LmlkbFR5
cGUudW5pb24KKyAgICAgICAgICAgICAgICA/IHYuaWRsVHlwZS5pZGxUeXBlLm1hcCh0ID0+IHQu
aWRsVHlwZSkKKyAgICAgICAgICAgICAgICA6IFt2LmlkbFR5cGUuaWRsVHlwZV07CisgICAgICAg
ICAgICBkZWZzLmZvckVhY2goZCA9PiBhbGxfZGVwcy5hZGQoZCkpOwogICAgICAgICB9Ci0gICAg
fQorICAgIH0pOworCisgICAgLy8gQWRkIHRoZSBhdHRyaWJ1dGUgaWRsVHlwZXMgb2YgYWxsIHRo
ZSBuZXN0ZWQgbWVtYmVycyBvZiBpZGxzLgorICAgIGNvbnN0IGF0dHJEZXBzID0gcGFyc2VkSWRs
cyA9PiB7CisgICAgICAgIHJldHVybiBwYXJzZWRJZGxzLnJlZHVjZSgoZGVwcywgcGFyc2VkKSA9
PiB7CisgICAgICAgICAgICBpZiAocGFyc2VkLm1lbWJlcnMpIHsKKyAgICAgICAgICAgICAgICBm
b3IgKGNvbnN0IGF0dHIgb2YgT2JqZWN0LnZhbHVlcyhwYXJzZWQubWVtYmVycykuZmlsdGVyKG0g
PT4gbS50eXBlID09PSAnYXR0cmlidXRlJykpIHsKKyAgICAgICAgICAgICAgICAgICAgbGV0IGF0
dHJUeXBlID0gYXR0ci5pZGxUeXBlOworICAgICAgICAgICAgICAgICAgICAvLyBDaGVjayBmb3Ig
Z2VuZXJpYyBtZW1iZXJzIChlLmcuIEZyb3plbkFycmF5PE15VHlwZT4pCisgICAgICAgICAgICAg
ICAgICAgIGlmIChhdHRyVHlwZS5nZW5lcmljKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBk
ZXBzLmFkZChhdHRyVHlwZS5nZW5lcmljKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGF0dHJU
eXBlID0gYXR0clR5cGUuaWRsVHlwZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgICAgICBkZXBzLmFkZChhdHRyVHlwZS5pZGxUeXBlKTsKKyAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAocGFyc2VkLmJhc2UgaW4gdGhpcy5tZW1i
ZXJzKSB7CisgICAgICAgICAgICAgICAgYXR0ckRlcHMoW3RoaXMubWVtYmVyc1twYXJzZWQuYmFz
ZV1dKS5mb3JFYWNoKGRlcCA9PiBkZXBzLmFkZChkZXApKTsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIHJldHVybiBkZXBzOworICAgICAgICB9LCBuZXcgU2V0KCkpOworICAgIH07CisKKyAg
ICBjb25zdCB0ZXN0ZWRNZW1iZXJzID0gT2JqZWN0LnZhbHVlcyh0aGlzLm1lbWJlcnMpLmZpbHRl
cihtID0+ICFtLnVudGVzdGVkICYmIG0ubWVtYmVycyk7CisgICAgYXR0ckRlcHModGVzdGVkTWVt
YmVycykuZm9yRWFjaChkZXAgPT4gYWxsX2RlcHMuYWRkKGRlcCkpOworCisgICAgY29uc3QgdGVz
dGVkUGFydGlhbHMgPSB0aGlzLnBhcnRpYWxzLmZpbHRlcihtID0+ICFtLnVudGVzdGVkICYmIG0u
bWVtYmVycyk7CisgICAgYXR0ckRlcHModGVzdGVkUGFydGlhbHMpLmZvckVhY2goZGVwID0+IGFs
bF9kZXBzLmFkZChkZXApKTsKKwogCiAgICAgaWYgKG9wdGlvbnMgJiYgb3B0aW9ucy5leGNlcHQg
JiYgb3B0aW9ucy5vbmx5KSB7CiAgICAgICAgIHRocm93IG5ldyBJZGxIYXJuZXNzRXJyb3IoIlRo
ZSBvbmx5IGFuZCBleGNlcHQgb3B0aW9ucyBjYW4ndCBiZSB1c2VkIHRvZ2V0aGVyLiIpOwogICAg
IH0KIAotICAgIGNvbnN0IHNob3VsZF9za2lwID0gbmFtZSA9PiB7CisgICAgY29uc3QgZGVmaW5l
ZF9vcl91bnRlc3RlZCA9IG5hbWUgPT4gewogICAgICAgICAvLyBOT1RFOiBEZXBzIGFyZSB1bnRl
c3RlZCwgc28gd2UncmUgbGVuaWVudCwgYW5kIHNraXAgcmUtZW5jb3VudGVyZWQgZGVmaW5pdGlv
bnMuCiAgICAgICAgIC8vIGUuZy4gZm9yICdpZGwnIGNvbnRhaW5pbmcgQTpCLCBCOkMsIEM6RAog
ICAgICAgICAvLyAgICAgIGFycmF5LmFkZF9pZGxzKGlkbCwge29ubHk6IFsnQScsJ0InXX0pLgpA
QCAtMjk1LDkgKzMwMiw3IEBAIElkbEFycmF5LnByb3RvdHlwZS5hZGRfZGVwZW5kZW5jeV9pZGxz
ID0gZnVuY3Rpb24ocmF3X2lkbHMsIG9wdGlvbnMpCiAgICAgICAgIHJldHVybiBuYW1lIGluIHRo
aXMubWVtYmVycwogICAgICAgICAgICAgfHwgdGhpcy5pc19leGNsdWRlZF9ieV9vcHRpb25zKG5h
bWUsIG9wdGlvbnMpOwogICAgIH0KLSAgICAvLyBSZWNvcmQgb2Ygc2tpcHBlZCBpdGVtcywgaW4g
Y2FzZSB3ZSBsYXRlciBkZXRlcm1pbmUgdGhleSBhcmUgYSBkZXBlbmRlbmN5LgogICAgIC8vIE1h
cHMgbmFtZSAtPiBbcGFyc2VkX2lkbCwgLi4uXQotICAgIGNvbnN0IHNraXBwZWQgPSBuZXcgTWFw
KCk7CiAgICAgY29uc3QgcHJvY2VzcyA9IGZ1bmN0aW9uKHBhcnNlZCkgewogICAgICAgICB2YXIg
ZGVwcyA9IFtdOwogICAgICAgICBpZiAocGFyc2VkLm5hbWUpIHsKQEAgLTMxMSwxMyArMzE2LDE1
IEBAIElkbEFycmF5LnByb3RvdHlwZS5hZGRfZGVwZW5kZW5jeV9pZGxzID0gZnVuY3Rpb24ocmF3
X2lkbHMsIG9wdGlvbnMpCiAgICAgICAgIH0KIAogICAgICAgICBkZXBzID0gZGVwcy5maWx0ZXIo
ZnVuY3Rpb24obmFtZSkgewotICAgICAgICAgICAgaWYgKCFuYW1lIHx8IHNob3VsZF9za2lwKG5h
bWUpIHx8ICFhbGxfZGVwcy5oYXMobmFtZSkpIHsKKyAgICAgICAgICAgIGlmICghbmFtZQorICAg
ICAgICAgICAgICAgIHx8IG5hbWUgPT09IHBhcnNlZC5uYW1lICYmIGRlZmluZWRfb3JfdW50ZXN0
ZWQobmFtZSkKKyAgICAgICAgICAgICAgICB8fCAhYWxsX2RlcHMuaGFzKG5hbWUpKSB7CiAgICAg
ICAgICAgICAgICAgLy8gRmxhZyBhcyBza2lwcGVkLCBpZiBpdCdzIG5vdCBhbHJlYWR5IHByb2Nl
c3NlZCwgc28gd2UgY2FuCiAgICAgICAgICAgICAgICAgLy8gY29tZSBiYWNrIHRvIGl0IGxhdGVy
IGlmIHdlIHJldHJvc3BlY3RpdmVseSBjYWxsIGl0IGEgZGVwLgogICAgICAgICAgICAgICAgIGlm
IChuYW1lICYmICEobmFtZSBpbiB0aGlzLm1lbWJlcnMpKSB7Ci0gICAgICAgICAgICAgICAgICAg
IHNraXBwZWQuaGFzKG5hbWUpCi0gICAgICAgICAgICAgICAgICAgICAgICA/IHNraXBwZWQuZ2V0
KG5hbWUpLnB1c2gocGFyc2VkKQotICAgICAgICAgICAgICAgICAgICAgICAgOiBza2lwcGVkLnNl
dChuYW1lLCBbcGFyc2VkXSk7CisgICAgICAgICAgICAgICAgICAgIHRoaXMuc2tpcHBlZC5oYXMo
bmFtZSkKKyAgICAgICAgICAgICAgICAgICAgICAgID8gdGhpcy5za2lwcGVkLmdldChuYW1lKS5w
dXNoKHBhcnNlZCkKKyAgICAgICAgICAgICAgICAgICAgICAgIDogdGhpcy5za2lwcGVkLnNldChu
YW1lLCBbcGFyc2VkXSk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKICAgICAgICAgICAgIH0KQEAgLTMyNSwxNSArMzMyLDI5IEBAIElkbEFycmF5LnBy
b3RvdHlwZS5hZGRfZGVwZW5kZW5jeV9pZGxzID0gZnVuY3Rpb24ocmF3X2lkbHMsIG9wdGlvbnMp
CiAgICAgICAgIH0uYmluZCh0aGlzKSk7CiAKICAgICAgICAgZGVwcy5mb3JFYWNoKGZ1bmN0aW9u
KG5hbWUpIHsKLSAgICAgICAgICAgIG5ld19vcHRpb25zLm9ubHkucHVzaChuYW1lKTsKKyAgICAg
ICAgICAgIGlmICghbmV3X29wdGlvbnMub25seS5pbmNsdWRlcyhuYW1lKSkgeworICAgICAgICAg
ICAgICAgIG5ld19vcHRpb25zLm9ubHkucHVzaChuYW1lKTsKKyAgICAgICAgICAgIH0KIAogICAg
ICAgICAgICAgY29uc3QgZm9sbG93X3VwID0gbmV3IFNldCgpOwogICAgICAgICAgICAgZm9yIChj
b25zdCBkZXBfdHlwZSBvZiBbImluaGVyaXRhbmNlIiwgImltcGxlbWVudHMiLCAiaW5jbHVkZXMi
XSkgewogICAgICAgICAgICAgICAgIGlmIChwYXJzZWRbZGVwX3R5cGVdKSB7CiAgICAgICAgICAg
ICAgICAgICAgIGNvbnN0IGluaGVyaXRpbmcgPSBwYXJzZWRbZGVwX3R5cGVdOwogICAgICAgICAg
ICAgICAgICAgICBjb25zdCBpbmhlcml0b3IgPSBwYXJzZWQubmFtZSB8fCBwYXJzZWQudGFyZ2V0
OwotICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGRlcCBvZiBbaW5oZXJpdGluZywgaW5o
ZXJpdG9yXSkgewotICAgICAgICAgICAgICAgICAgICAgICAgbmV3X29wdGlvbnMub25seS5wdXNo
KGRlcCk7CisgICAgICAgICAgICAgICAgICAgIGNvbnN0IGRlcHMgPSBbaW5oZXJpdGluZ107Cisg
ICAgICAgICAgICAgICAgICAgIC8vIEZvciBBIGluY2x1ZGVzIEIsIHdlIGNhbiBpZ25vcmUgQSwg
dW5sZXNzIEIgKG9yIHNvbWUgb2YgaXRzCisgICAgICAgICAgICAgICAgICAgIC8vIG1lbWJlcnMp
IGlzIGJlaW5nIHRlc3RlZC4KKyAgICAgICAgICAgICAgICAgICAgaWYgKGRlcF90eXBlICE9PSAi
aW5jbHVkZXMiCisgICAgICAgICAgICAgICAgICAgICAgICB8fCBpbmhlcml0aW5nIGluIHRoaXMu
bWVtYmVycyAmJiAhdGhpcy5tZW1iZXJzW2luaGVyaXRpbmddLnVudGVzdGVkCisgICAgICAgICAg
ICAgICAgICAgICAgICB8fCB0aGlzLnBhcnRpYWxzLnNvbWUoZnVuY3Rpb24ocCkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcC5uYW1lID09PSBpbmhlcml0aW5nOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICBkZXBzLnB1c2goaW5oZXJpdG9yKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgICAgICBmb3IgKGNvbnN0IGRlcCBvZiBkZXBzKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICBpZiAoIW5ld19vcHRpb25zLm9ubHkuaW5jbHVkZXMoZGVwKSkgeworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIG5ld19vcHRpb25zLm9ubHkucHVzaChkZXApOworICAgICAgICAgICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgYWxsX2RlcHMuYWRkKGRlcCk7
CiAgICAgICAgICAgICAgICAgICAgICAgICBmb2xsb3dfdXAuYWRkKGRlcCk7CiAgICAgICAgICAg
ICAgICAgICAgIH0KQEAgLTM0MSwxMyArMzYyLDEzIEBAIElkbEFycmF5LnByb3RvdHlwZS5hZGRf
ZGVwZW5kZW5jeV9pZGxzID0gZnVuY3Rpb24ocmF3X2lkbHMsIG9wdGlvbnMpCiAgICAgICAgICAg
ICB9CiAKICAgICAgICAgICAgIGZvciAoY29uc3QgZGVmZXJyZWQgb2YgZm9sbG93X3VwKSB7Ci0g
ICAgICAgICAgICAgICAgaWYgKHNraXBwZWQuaGFzKGRlZmVycmVkKSkgewotICAgICAgICAgICAg
ICAgICAgICBjb25zdCBuZXh0ID0gc2tpcHBlZC5nZXQoZGVmZXJyZWQpOwotICAgICAgICAgICAg
ICAgICAgICBza2lwcGVkLmRlbGV0ZShkZWZlcnJlZCk7CisgICAgICAgICAgICAgICAgaWYgKHRo
aXMuc2tpcHBlZC5oYXMoZGVmZXJyZWQpKSB7CisgICAgICAgICAgICAgICAgICAgIGNvbnN0IG5l
eHQgPSB0aGlzLnNraXBwZWQuZ2V0KGRlZmVycmVkKTsKKyAgICAgICAgICAgICAgICAgICAgdGhp
cy5za2lwcGVkLmRlbGV0ZShkZWZlcnJlZCk7CiAgICAgICAgICAgICAgICAgICAgIG5leHQuZm9y
RWFjaChwcm9jZXNzKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9Ci0gICAgICAg
IH0pOworICAgICAgICB9LmJpbmQodGhpcykpOwogICAgIH0uYmluZCh0aGlzKTsKIAogICAgIGZv
ciAobGV0IHBhcnNlZCBvZiBwYXJzZWRfaWRscykgewpAQCAtMzYxLDkgKzM4Miw3IEBAIElkbEFy
cmF5LnByb3RvdHlwZS5hZGRfZGVwZW5kZW5jeV9pZGxzID0gZnVuY3Rpb24ocmF3X2lkbHMsIG9w
dGlvbnMpCiAgICAgfQogfQogCi0vL0B9CiBJZGxBcnJheS5wcm90b3R5cGUuaW50ZXJuYWxfYWRk
X2lkbHMgPSBmdW5jdGlvbihwYXJzZWRfaWRscywgb3B0aW9ucykKLS8vQHsKIHsKICAgICAvKioK
ICAgICAgKiBJbnRlcm5hbCBoZWxwZXIgY2FsbGVkIGJ5IGFkZF9pZGxzKCkgYW5kIGFkZF91bnRl
c3RlZF9pZGxzKCkuCkBAIC00NzgsOCArNDk3LDcgQEAgSWRsQXJyYXkucHJvdG90eXBlLmludGVy
bmFsX2FkZF9pZGxzID0gZnVuY3Rpb24ocGFyc2VkX2lkbHMsIG9wdGlvbnMpCiAgICAgICAgICAg
ICBicmVhazsKIAogICAgICAgICBjYXNlICJjYWxsYmFjayI6Ci0gICAgICAgICAgICAvLyBUT0RP
Ci0gICAgICAgICAgICBjb25zb2xlLmxvZygiY2FsbGJhY2sgbm90IHlldCBzdXBwb3J0ZWQiKTsK
KyAgICAgICAgICAgIHRoaXMubWVtYmVyc1twYXJzZWRfaWRsLm5hbWVdID0gbmV3IElkbENhbGxi
YWNrKHBhcnNlZF9pZGwpOwogICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgY2FzZSAiZW51
bSI6CkBAIC01MDEsOSArNTE5LDcgQEAgSWRsQXJyYXkucHJvdG90eXBlLmludGVybmFsX2FkZF9p
ZGxzID0gZnVuY3Rpb24ocGFyc2VkX2lkbHMsIG9wdGlvbnMpCiAgICAgfS5iaW5kKHRoaXMpKTsK
IH07CiAKLS8vQH0KIElkbEFycmF5LnByb3RvdHlwZS5hZGRfb2JqZWN0cyA9IGZ1bmN0aW9uKGRp
Y3QpCi0vL0B7CiB7CiAgICAgLyoqIEVudHJ5IHBvaW50LiAgU2VlIGRvY3VtZW50YXRpb24gYXQg
YmVnaW5uaW5nIG9mIGZpbGUuICovCiAgICAgZm9yICh2YXIgayBpbiBkaWN0KQpAQCAtNTE5LDE3
ICs1MzUsMTMgQEAgSWRsQXJyYXkucHJvdG90eXBlLmFkZF9vYmplY3RzID0gZnVuY3Rpb24oZGlj
dCkKICAgICB9CiB9OwogCi0vL0B9CiBJZGxBcnJheS5wcm90b3R5cGUucHJldmVudF9tdWx0aXBs
ZV90ZXN0aW5nID0gZnVuY3Rpb24obmFtZSkKLS8vQHsKIHsKICAgICAvKiogRW50cnkgcG9pbnQu
ICBTZWUgZG9jdW1lbnRhdGlvbiBhdCBiZWdpbm5pbmcgb2YgZmlsZS4gKi8KICAgICB0aGlzLm1l
bWJlcnNbbmFtZV0ucHJldmVudF9tdWx0aXBsZV90ZXN0aW5nID0gdHJ1ZTsKIH07CiAKLS8vQH0K
IElkbEFycmF5LnByb3RvdHlwZS5yZWN1cnNpdmVseV9nZXRfaW1wbGVtZW50cyA9IGZ1bmN0aW9u
KGludGVyZmFjZV9uYW1lKQotLy9AewogewogICAgIC8qKgogICAgICAqIEhlbHBlciBmdW5jdGlv
biBmb3IgdGVzdCgpLiAgUmV0dXJucyBhbiBhcnJheSBvZiB0aGluZ3MgdGhhdCBpbXBsZW1lbnQK
QEAgLTU1Nyw5ICs1NjksNyBAQCBJZGxBcnJheS5wcm90b3R5cGUucmVjdXJzaXZlbHlfZ2V0X2lt
cGxlbWVudHMgPSBmdW5jdGlvbihpbnRlcmZhY2VfbmFtZSkKICAgICByZXR1cm4gcmV0OwogfTsK
IAotLy9AfQogSWRsQXJyYXkucHJvdG90eXBlLnJlY3Vyc2l2ZWx5X2dldF9pbmNsdWRlcyA9IGZ1
bmN0aW9uKGludGVyZmFjZV9uYW1lKQotLy9AewogewogICAgIC8qKgogICAgICAqIEhlbHBlciBm
dW5jdGlvbiBmb3IgdGVzdCgpLiAgUmV0dXJucyBhbiBhcnJheSBvZiB0aGluZ3MgdGhhdCBpbXBs
ZW1lbnQKQEAgLTU4Nyw5ICs1OTcsNyBAQCBJZGxBcnJheS5wcm90b3R5cGUucmVjdXJzaXZlbHlf
Z2V0X2luY2x1ZGVzID0gZnVuY3Rpb24oaW50ZXJmYWNlX25hbWUpCiAgICAgcmV0dXJuIHJldDsK
IH07CiAKLS8vQH0KIElkbEFycmF5LnByb3RvdHlwZS5pc19qc29uX3R5cGUgPSBmdW5jdGlvbih0
eXBlKQotLy9AewogewogICAgIC8qKgogICAgICAqIENoZWNrcyB3aGV0aGVyIHR5cGUgaXMgYSBK
U09OIHR5cGUgYXMgcGVyCkBAIC02MTEsNyArNjE5LDcgQEAgSWRsQXJyYXkucHJvdG90eXBlLmlz
X2pzb25fdHlwZSA9IGZ1bmN0aW9uKHR5cGUpCiAKICAgICAvLyBzZXF1ZW5jZSB0eXBlcwogICAg
IGlmICh0eXBlLmdlbmVyaWMgPT0gInNlcXVlbmNlIiB8fCB0eXBlLmdlbmVyaWMgPT0gIkZyb3pl
bkFycmF5IikgewotICAgICAgICByZXR1cm4gdGhpcy5pc19qc29uX3R5cGUoaWRsVHlwZSk7Cisg
ICAgICAgIHJldHVybiB0aGlzLmlzX2pzb25fdHlwZShpZGxUeXBlWzBdKTsKICAgICB9CiAKICAg
ICBpZiAodHlwZW9mIGlkbFR5cGUgIT0gInN0cmluZyIpIHsgdGhyb3cgbmV3IEVycm9yKCJVbmV4
cGVjdGVkIHR5cGUgIiArIEpTT04uc3RyaW5naWZ5KGlkbFR5cGUpKTsgfQpAQCAtNzE5LDExICs3
MjcsMTEgQEAgZnVuY3Rpb24gZXhwb3N1cmVfc2V0KG9iamVjdCwgZGVmYXVsdF9zZXQpIHsKICAg
ICAgICAgcmVzdWx0ID0gbmV3IFNldChyZXN1bHQpOwogICAgIH0KICAgICBpZiAoZXhwb3NlZCAm
JiBleHBvc2VkLmxlbmd0aCkgewotICAgICAgICB2YXIgc2V0ID0gZXhwb3NlZFswXS5yaHMudmFs
dWU7CisgICAgICAgIGNvbnN0IHsgcmhzIH0gPSBleHBvc2VkWzBdOwogICAgICAgICAvLyBDb3Vs
ZCBiZSBhIGxpc3Qgb3IgYSBzdHJpbmcuCi0gICAgICAgIGlmICh0eXBlb2Ygc2V0ID09ICJzdHJp
bmciKSB7Ci0gICAgICAgICAgICBzZXQgPSBbIHNldCBdOwotICAgICAgICB9CisgICAgICAgIGNv
bnN0IHNldCA9IHJocy50eXBlID09PSAiaWRlbnRpZmllci1saXN0IiA/CisgICAgICAgICAgICBy
aHMudmFsdWUubWFwKGlkID0+IGlkLnZhbHVlKSA6CisgICAgICAgICAgICBbIHJocy52YWx1ZSBd
OwogICAgICAgICByZXN1bHQgPSBuZXcgU2V0KHNldCk7CiAgICAgfQogICAgIGlmIChyZXN1bHQg
JiYgcmVzdWx0LmhhcygiV29ya2VyIikpIHsKQEAgLTc1NCwxNCArNzYyLDEyIEBAIGZ1bmN0aW9u
IGV4cG9zZWRfaW4oZ2xvYmFscykgewogICAgIHRocm93IG5ldyBJZGxIYXJuZXNzRXJyb3IoIlVu
ZXhwZWN0ZWQgZ2xvYmFsIG9iamVjdCIpOwogfQogCi0vL0B9CiAvKioKICAqIEFzc2VydHMgdGhh
dCB0aGUgZ2l2ZW4gZXJyb3IgbWVzc2FnZSBpcyB0aHJvd24gZm9yIHRoZSBnaXZlbiBmdW5jdGlv
bi4KICAqIEBwYXJhbSB7c3RyaW5nfElkbEhhcm5lc3NFcnJvcn0gZXJyb3IgRXhwZWN0ZWQgRXJy
b3IgbWVzc2FnZS4KICAqIEBwYXJhbSB7RnVuY3Rpb259IGlkbEFycmF5RnVuYyBGdW5jdGlvbiBv
cGVyYXRpbmcgb24gYW4gSWRsQXJyYXkgdGhhdCBzaG91bGQgdGhyb3cuCiAgKi8KIElkbEFycmF5
LnByb3RvdHlwZS5hc3NlcnRfdGhyb3dzID0gZnVuY3Rpb24oZXJyb3IsIGlkbEFycmF5RnVuYykK
LS8vQHsKIHsKICAgICB0cnkgewogICAgICAgICBpZGxBcnJheUZ1bmMuY2FsbCh0aGlzLCB0aGlz
KTsKQEAgLTc4MSw5ICs3ODcsNyBAQCBJZGxBcnJheS5wcm90b3R5cGUuYXNzZXJ0X3Rocm93cyA9
IGZ1bmN0aW9uKGVycm9yLCBpZGxBcnJheUZ1bmMpCiAgICAgdGhyb3cgbmV3IElkbEhhcm5lc3NF
cnJvcihgJHtpZGxBcnJheUZ1bmN9IGRpZCBub3QgdGhyb3cgdGhlIGV4cGVjdGVkIElkbEhhcm5l
c3NFcnJvcmApOwogfQogCi0vL0B9CiBJZGxBcnJheS5wcm90b3R5cGUudGVzdCA9IGZ1bmN0aW9u
KCkKLS8vQHsKIHsKICAgICAvKiogRW50cnkgcG9pbnQuICBTZWUgZG9jdW1lbnRhdGlvbiBhdCBi
ZWdpbm5pbmcgb2YgZmlsZS4gKi8KIApAQCAtODcyLDkgKzg3Niw3IEBAIElkbEFycmF5LnByb3Rv
dHlwZS50ZXN0ID0gZnVuY3Rpb24oKQogICAgIH0KIH07CiAKLS8vQH0KIElkbEFycmF5LnByb3Rv
dHlwZS5jb2xsYXBzZV9wYXJ0aWFscyA9IGZ1bmN0aW9uKCkKLS8vQHsKIHsKICAgICBjb25zdCB0
ZXN0ZWRQYXJ0aWFscyA9IG5ldyBNYXAoKTsKICAgICB0aGlzLnBhcnRpYWxzLmZvckVhY2goZnVu
Y3Rpb24ocGFyc2VkX2lkbCkKQEAgLTk1NSw5ICs5NTcsNyBAQCBJZGxBcnJheS5wcm90b3R5cGUu
Y29sbGFwc2VfcGFydGlhbHMgPSBmdW5jdGlvbigpCiAgICAgdGhpcy5wYXJ0aWFscyA9IFtdOwog
fQogCi0vL0B9CiBJZGxBcnJheS5wcm90b3R5cGUuYXNzZXJ0X3R5cGVfaXMgPSBmdW5jdGlvbih2
YWx1ZSwgdHlwZSkKLS8vQHsKIHsKICAgICBpZiAodHlwZS5pZGxUeXBlIGluIHRoaXMubWVtYmVy
cwogICAgICYmIHRoaXMubWVtYmVyc1t0eXBlLmlkbFR5cGVdIGluc3RhbmNlb2YgSWRsVHlwZWRl
ZikgewpAQCAtMTAxNyw3ICsxMDE3LDcgQEAgSWRsQXJyYXkucHJvdG90eXBlLmFzc2VydF90eXBl
X2lzID0gZnVuY3Rpb24odmFsdWUsIHR5cGUpCiAgICAgICAgICAgICAvLyBOb3RoaW5nIHdlIGNh
biBkby4KICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQotICAgICAgICB0aGlzLmFzc2Vy
dF90eXBlX2lzKHZhbHVlWzBdLCB0eXBlLmlkbFR5cGUpOworICAgICAgICB0aGlzLmFzc2VydF90
eXBlX2lzKHZhbHVlWzBdLCB0eXBlLmlkbFR5cGVbMF0pOwogICAgICAgICByZXR1cm47CiAgICAg
fQogCkBAIC0xMDM3LDExICsxMDM3LDExIEBAIElkbEFycmF5LnByb3RvdHlwZS5hc3NlcnRfdHlw
ZV9pcyA9IGZ1bmN0aW9uKHZhbHVlLCB0eXBlKQogICAgICAgICAgICAgLy8gTm90aGluZyB3ZSBj
YW4gZG8uCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KLSAgICAgICAgdGhpcy5hc3Nl
cnRfdHlwZV9pcyh2YWx1ZVswXSwgdHlwZS5pZGxUeXBlKTsKKyAgICAgICAgdGhpcy5hc3NlcnRf
dHlwZV9pcyh2YWx1ZVswXSwgdHlwZS5pZGxUeXBlWzBdKTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KIAotICAgIHR5cGUgPSB0eXBlLmlkbFR5cGU7CisgICAgdHlwZSA9IEFycmF5LmlzQXJyYXko
dHlwZS5pZGxUeXBlKSA/IHR5cGUuaWRsVHlwZVswXSA6IHR5cGUuaWRsVHlwZTsKIAogICAgIHN3
aXRjaCh0eXBlKQogICAgIHsKQEAgLTExNzEsMTcgKzExNzEsMTkgQEAgSWRsQXJyYXkucHJvdG90
eXBlLmFzc2VydF90eXBlX2lzID0gZnVuY3Rpb24odmFsdWUsIHR5cGUpCiAgICAgewogICAgICAg
ICAvLyBUT0RPOiBUZXN0IHdoZW4gd2UgYWN0dWFsbHkgaGF2ZSBzb21ldGhpbmcgdG8gdGVzdCB0
aGlzIG9uCiAgICAgfQorICAgIGVsc2UgaWYgKHRoaXMubWVtYmVyc1t0eXBlXSBpbnN0YW5jZW9m
IElkbENhbGxiYWNrKQorICAgIHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyh0eXBlb2YgdmFsdWUs
ICJmdW5jdGlvbiIpOworICAgIH0KICAgICBlbHNlCiAgICAgewotICAgICAgICB0aHJvdyBuZXcg
SWRsSGFybmVzc0Vycm9yKCJUeXBlICIgKyB0eXBlICsgIiBpc24ndCBhbiBpbnRlcmZhY2Ugb3Ig
ZGljdGlvbmFyeSIpOworICAgICAgICB0aHJvdyBuZXcgSWRsSGFybmVzc0Vycm9yKCJUeXBlICIg
KyB0eXBlICsgIiBpc24ndCBhbiBpbnRlcmZhY2UsIGNhbGxiYWNrIG9yIGRpY3Rpb25hcnkiKTsK
ICAgICB9CiB9OwotLy9AfQogCiAvLy8gSWRsT2JqZWN0IC8vLwogZnVuY3Rpb24gSWRsT2JqZWN0
KCkge30KIElkbE9iamVjdC5wcm90b3R5cGUudGVzdCA9IGZ1bmN0aW9uKCkKLS8vQHsKIHsKICAg
ICAvKioKICAgICAgKiBCeSBkZWZhdWx0LCB0aGlzIGRvZXMgbm90aGluZywgc28gbm8gYWN0dWFs
IHRlc3RzIGFyZSBydW4gZm9yIElkbE9iamVjdHMKQEAgLTExODksOSArMTE5MSw3IEBAIElkbE9i
amVjdC5wcm90b3R5cGUudGVzdCA9IGZ1bmN0aW9uKCkKICAgICAgKi8KIH07CiAKLS8vQH0KIElk
bE9iamVjdC5wcm90b3R5cGUuaGFzX2V4dGVuZGVkX2F0dHJpYnV0ZSA9IGZ1bmN0aW9uKG5hbWUp
Ci0vL0B7CiB7CiAgICAgLyoqCiAgICAgICogVGhpcyBpcyBvbmx5IG1lYW5pbmdmdWwgZm9yIHRo
aW5ncyB0aGF0IHN1cHBvcnQgZXh0ZW5kZWQgYXR0cmlidXRlcywKQEAgLTEyMDMsMTIgKzEyMDMs
MTAgQEAgSWRsT2JqZWN0LnByb3RvdHlwZS5oYXNfZXh0ZW5kZWRfYXR0cmlidXRlID0gZnVuY3Rp
b24obmFtZSkKICAgICB9KTsKIH07CiAKLS8vQH0KIAogLy8vIElkbERpY3Rpb25hcnkgLy8vCiAv
LyBVc2VkIGZvciBJZGxBcnJheS5wcm90b3R5cGUuYXNzZXJ0X3R5cGVfaXMKIGZ1bmN0aW9uIElk
bERpY3Rpb25hcnkob2JqKQotLy9AewogewogICAgIC8qKgogICAgICAqIG9iaiBpcyBhbiBvYmpl
Y3QgcHJvZHVjZWQgYnkgdGhlIFdlYklETFBhcnNlci5qcyAiZGljdGlvbmFyeSIKQEAgLTEyMzEs
NyArMTIyOSw2IEBAIGZ1bmN0aW9uIElkbERpY3Rpb25hcnkob2JqKQogICAgIHRoaXMuYmFzZSA9
IG9iai5pbmhlcml0YW5jZTsKIH0KIAotLy9AfQogSWRsRGljdGlvbmFyeS5wcm90b3R5cGUgPSBP
YmplY3QuY3JlYXRlKElkbE9iamVjdC5wcm90b3R5cGUpOwogCiBJZGxEaWN0aW9uYXJ5LnByb3Rv
dHlwZS5nZXRfaW5oZXJpdGFuY2Vfc3RhY2sgPSBmdW5jdGlvbigpIHsKQEAgLTEyNDAsNyArMTIz
Nyw2IEBAIElkbERpY3Rpb25hcnkucHJvdG90eXBlLmdldF9pbmhlcml0YW5jZV9zdGFjayA9IGZ1
bmN0aW9uKCkgewogCiAvLy8gSWRsSW50ZXJmYWNlIC8vLwogZnVuY3Rpb24gSWRsSW50ZXJmYWNl
KG9iaiwgaXNfY2FsbGJhY2ssIGlzX21peGluKQotLy9AewogewogICAgIC8qKgogICAgICAqIG9i
aiBpcyBhbiBvYmplY3QgcHJvZHVjZWQgYnkgdGhlIFdlYklETFBhcnNlci5qcyAiaW50ZXJmYWNl
IiBwcm9kdWN0aW9uLgpAQCAtMTI2Niw3ICsxMjYyLDcgQEAgZnVuY3Rpb24gSWRsSW50ZXJmYWNl
KG9iaiwgaXNfY2FsbGJhY2ssIGlzX21peGluKQogICAgIHRoaXMubWVtYmVycyA9IG9iai5tZW1i
ZXJzLm1hcChmdW5jdGlvbihtKXtyZXR1cm4gbmV3IElkbEludGVyZmFjZU1lbWJlcihtKTsgfSk7
CiAgICAgaWYgKHRoaXMuaGFzX2V4dGVuZGVkX2F0dHJpYnV0ZSgiVW5mb3JnZWFibGUiKSkgewog
ICAgICAgICB0aGlzLm1lbWJlcnMKLSAgICAgICAgICAgIC5maWx0ZXIoZnVuY3Rpb24obSkgeyBy
ZXR1cm4gIW1bInN0YXRpYyJdICYmIChtLnR5cGUgPT0gImF0dHJpYnV0ZSIgfHwgbS50eXBlID09
ICJvcGVyYXRpb24iKTsgfSkKKyAgICAgICAgICAgIC5maWx0ZXIoZnVuY3Rpb24obSkgeyByZXR1
cm4gbS5zcGVjaWFsICE9PSAic3RhdGljIiAmJiAobS50eXBlID09ICJhdHRyaWJ1dGUiIHx8IG0u
dHlwZSA9PSAib3BlcmF0aW9uIik7IH0pCiAgICAgICAgICAgICAuZm9yRWFjaChmdW5jdGlvbiht
KSB7IHJldHVybiBtLmlzVW5mb3JnZWFibGUgPSB0cnVlOyB9KTsKICAgICB9CiAKQEAgLTEyNzks
MzAgKzEyNzUsMjMgQEAgZnVuY3Rpb24gSWRsSW50ZXJmYWNlKG9iaiwgaXNfY2FsbGJhY2ssIGlz
X21peGluKQogICAgIHRoaXMuX2lzX2NhbGxiYWNrID0gaXNfY2FsbGJhY2s7CiAgICAgdGhpcy5f
aXNfbWl4aW4gPSBpc19taXhpbjsKIH0KLS8vQH0KIElkbEludGVyZmFjZS5wcm90b3R5cGUgPSBP
YmplY3QuY3JlYXRlKElkbE9iamVjdC5wcm90b3R5cGUpOwogSWRsSW50ZXJmYWNlLnByb3RvdHlw
ZS5pc19jYWxsYmFjayA9IGZ1bmN0aW9uKCkKLS8vQHsKIHsKICAgICByZXR1cm4gdGhpcy5faXNf
Y2FsbGJhY2s7CiB9OwotLy9AfQogCiBJZGxJbnRlcmZhY2UucHJvdG90eXBlLmlzX21peGluID0g
ZnVuY3Rpb24oKQotLy9AewogewogICAgIHJldHVybiB0aGlzLl9pc19taXhpbjsKIH07Ci0vL0B9
CiAKIElkbEludGVyZmFjZS5wcm90b3R5cGUuaGFzX2NvbnN0YW50cyA9IGZ1bmN0aW9uKCkKLS8v
QHsKIHsKICAgICByZXR1cm4gdGhpcy5tZW1iZXJzLnNvbWUoZnVuY3Rpb24obWVtYmVyKSB7CiAg
ICAgICAgIHJldHVybiBtZW1iZXIudHlwZSA9PT0gImNvbnN0IjsKICAgICB9KTsKIH07Ci0vL0B9
CiAKIElkbEludGVyZmFjZS5wcm90b3R5cGUuZ2V0X3Vuc2NvcGFibGVzID0gZnVuY3Rpb24oKQog
ewpAQCAtMTMxMiwxMyArMTMwMSw1MyBAQCBJZGxJbnRlcmZhY2UucHJvdG90eXBlLmdldF91bnNj
b3BhYmxlcyA9IGZ1bmN0aW9uKCkKIH07CiAKIElkbEludGVyZmFjZS5wcm90b3R5cGUuaXNfZ2xv
YmFsID0gZnVuY3Rpb24oKQotLy9AewogewogICAgIHJldHVybiB0aGlzLmV4dEF0dHJzLnNvbWUo
ZnVuY3Rpb24oYXR0cmlidXRlKSB7CiAgICAgICAgIHJldHVybiBhdHRyaWJ1dGUubmFtZSA9PT0g
Ikdsb2JhbCI7CiAgICAgfSk7CiB9OwotLy9AfQorCisvKioKKyAqIFZhbHVlIG9mIHRoZSBMZWdh
Y3lOYW1lc3BhY2UgZXh0ZW5kZWQgYXR0cmlidXRlLCBpZiBhbnkuCisgKgorICogaHR0cHM6Ly9o
ZXljYW0uZ2l0aHViLmlvL3dlYmlkbC8jTGVnYWN5TmFtZXNwYWNlCisgKi8KK0lkbEludGVyZmFj
ZS5wcm90b3R5cGUuZ2V0X2xlZ2FjeV9uYW1lc3BhY2UgPSBmdW5jdGlvbigpCit7CisgICAgdmFy
IGxlZ2FjeU5hbWVzcGFjZSA9IHRoaXMuZXh0QXR0cnMuZmluZChmdW5jdGlvbihhdHRyaWJ1dGUp
IHsKKyAgICAgICAgcmV0dXJuIGF0dHJpYnV0ZS5uYW1lID09PSAiTGVnYWN5TmFtZXNwYWNlIjsK
KyAgICB9KTsKKyAgICByZXR1cm4gbGVnYWN5TmFtZXNwYWNlID8gbGVnYWN5TmFtZXNwYWNlLnJo
cy52YWx1ZSA6IHVuZGVmaW5lZDsKK307CisKK0lkbEludGVyZmFjZS5wcm90b3R5cGUuZ2V0X2lu
dGVyZmFjZV9vYmplY3Rfb3duZXIgPSBmdW5jdGlvbigpCit7CisgICAgdmFyIGxlZ2FjeU5hbWVz
cGFjZSA9IHRoaXMuZ2V0X2xlZ2FjeV9uYW1lc3BhY2UoKTsKKyAgICByZXR1cm4gbGVnYWN5TmFt
ZXNwYWNlID8gc2VsZltsZWdhY3lOYW1lc3BhY2VdIDogc2VsZjsKK307CisKK0lkbEludGVyZmFj
ZS5wcm90b3R5cGUuYXNzZXJ0X2ludGVyZmFjZV9vYmplY3RfZXhpc3RzID0gZnVuY3Rpb24oKQor
eworICAgIHZhciBvd25lciA9IHRoaXMuZ2V0X2xlZ2FjeV9uYW1lc3BhY2UoKSB8fCAic2VsZiI7
CisgICAgYXNzZXJ0X293bl9wcm9wZXJ0eShzZWxmW293bmVyXSwgdGhpcy5uYW1lLCBvd25lciAr
ICIgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIiArIGZvcm1hdF92YWx1ZSh0aGlzLm5hbWUp
KTsKK307CisKK0lkbEludGVyZmFjZS5wcm90b3R5cGUuZ2V0X2ludGVyZmFjZV9vYmplY3QgPSBm
dW5jdGlvbigpIHsKKyAgICBpZiAodGhpcy5oYXNfZXh0ZW5kZWRfYXR0cmlidXRlKCJOb0ludGVy
ZmFjZU9iamVjdCIpKSB7CisgICAgICAgIHRocm93IG5ldyBJZGxIYXJuZXNzRXJyb3IodGhpcy5u
YW1lICsgIiBoYXMgbm8gaW50ZXJmYWNlIG9iamVjdCBkdWUgdG8gTm9JbnRlcmZhY2VPYmplY3Qi
KTsKKyAgICB9CisKKyAgICByZXR1cm4gdGhpcy5nZXRfaW50ZXJmYWNlX29iamVjdF9vd25lcigp
W3RoaXMubmFtZV07Cit9OworCitJZGxJbnRlcmZhY2UucHJvdG90eXBlLmdldF9xdWFsaWZpZWRf
bmFtZSA9IGZ1bmN0aW9uKCkgeworICAgIC8vIGh0dHBzOi8vaGV5Y2FtLmdpdGh1Yi5pby93ZWJp
ZGwvI3F1YWxpZmllZC1uYW1lCisgICAgdmFyIGxlZ2FjeU5hbWVzcGFjZSA9IHRoaXMuZ2V0X2xl
Z2FjeV9uYW1lc3BhY2UoKTsKKyAgICBpZiAobGVnYWN5TmFtZXNwYWNlKSB7CisgICAgICAgIHJl
dHVybiBsZWdhY3lOYW1lc3BhY2UgKyAiLiIgKyB0aGlzLm5hbWU7CisgICAgfQorICAgIHJldHVy
biB0aGlzLm5hbWU7Cit9OwogCiBJZGxJbnRlcmZhY2UucHJvdG90eXBlLmhhc190b19qc29uX3Jl
Z3VsYXJfb3BlcmF0aW9uID0gZnVuY3Rpb24oKSB7CiAgICAgcmV0dXJuIHRoaXMubWVtYmVycy5z
b21lKGZ1bmN0aW9uKG0pIHsKQEAgLTEzODQsNyArMTQxMyw3IEBAIElkbEludGVyZmFjZS5wcm90
b3R5cGUuZGVmYXVsdF90b19qc29uX29wZXJhdGlvbiA9IGZ1bmN0aW9uKGNhbGxiYWNrKSB7CiAg
ICAgICAgIGlmIChJLmhhc19kZWZhdWx0X3RvX2pzb25fcmVndWxhcl9vcGVyYXRpb24oKSkgewog
ICAgICAgICAgICAgaXNEZWZhdWx0ID0gdHJ1ZTsKICAgICAgICAgICAgIEkubWVtYmVycy5mb3JF
YWNoKGZ1bmN0aW9uKG0pIHsKLSAgICAgICAgICAgICAgICBpZiAoIW0uc3RhdGljICYmIG0udHlw
ZSA9PSAiYXR0cmlidXRlIiAmJiBJLmFycmF5LmlzX2pzb25fdHlwZShtLmlkbFR5cGUpKSB7Cisg
ICAgICAgICAgICAgICAgaWYgKG0uc3BlY2lhbCAhPT0gInN0YXRpYyIgJiYgbS50eXBlID09ICJh
dHRyaWJ1dGUiICYmIEkuYXJyYXkuaXNfanNvbl90eXBlKG0uaWRsVHlwZSkpIHsKICAgICAgICAg
ICAgICAgICAgICAgbWFwLnNldChtLm5hbWUsIG0uaWRsVHlwZSk7CiAgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgfSk7CkBAIC0xNDQ2LDcgKzE0NzUsNiBAQCBmdW5jdGlvbiBfdHJhdmVy
c2VfaW5oZXJpdGVkX2FuZF9jb25zZXF1ZW50aWFsX2ludGVyZmFjZXMoc3RhY2ssIGNhbGxiYWNr
KSB7CiB9CiAKIElkbEludGVyZmFjZS5wcm90b3R5cGUudGVzdCA9IGZ1bmN0aW9uKCkKLS8vQHsK
IHsKICAgICBpZiAodGhpcy5oYXNfZXh0ZW5kZWRfYXR0cmlidXRlKCJOb0ludGVyZmFjZU9iamVj
dCIpIHx8IHRoaXMuaXNfbWl4aW4oKSkKICAgICB7CkBAIC0xNDc4LDEwICsxNTA2LDE5IEBAIElk
bEludGVyZmFjZS5wcm90b3R5cGUudGVzdCA9IGZ1bmN0aW9uKCkKICAgICAvLyBpbnRlcmZhY2Ug
YXJlIHN0aWxsIHRlc3RlZC4KICAgICB0aGlzLnRlc3RfbWVtYmVycygpOwogfTsKLS8vQH0KKwor
Ly8gVGhpcyBzdXBwb3J0cyBib3RoIENvbnN0cnVjdG9yIGV4dGVuZGVkIGF0dHJpYnV0ZXMgYW5k
IGNvbnN0cnVjdG9yCisvLyBvcGVyYXRpb25zIHVudGlsIGFsbCBpZGwgZnJhZ21lbnRzIGhhdmUg
YmVlbiB1cGRhdGVkLgorSWRsSW50ZXJmYWNlLnByb3RvdHlwZS5jb25zdHJ1Y3RvcnMgPSBmdW5j
dGlvbigpCit7CisgICAgdmFyIGV4dGVuZGVkQXR0cmlidXRlcyA9IHRoaXMuZXh0QXR0cnMKKyAg
ICAgICAgLmZpbHRlcihmdW5jdGlvbihhdHRyKSB7IHJldHVybiBhdHRyLm5hbWUgPT0gIkNvbnN0
cnVjdG9yIjsgfSk7CisgICAgdmFyIG9wZXJhdGlvbnMgPSB0aGlzLm1lbWJlcnMKKyAgICAgICAg
LmZpbHRlcihmdW5jdGlvbihtKSB7IHJldHVybiBtLnR5cGUgPT0gImNvbnN0cnVjdG9yIjsgfSk7
CisgICAgcmV0dXJuIGV4dGVuZGVkQXR0cmlidXRlcy5jb25jYXQob3BlcmF0aW9ucyk7Cit9CiAK
IElkbEludGVyZmFjZS5wcm90b3R5cGUudGVzdF9zZWxmID0gZnVuY3Rpb24oKQotLy9Aewogewog
ICAgIHN1YnNldFRlc3RCeUtleSh0aGlzLm5hbWUsIHRlc3QsIGZ1bmN0aW9uKCkKICAgICB7CkBA
IC0xNTAzLDkgKzE1NDAsOCBAQCBJZGxJbnRlcmZhY2UucHJvdG90eXBlLnRlc3Rfc2VsZiA9IGZ1
bmN0aW9uKCkKIAogICAgICAgICAvLyBUT0RPOiBTaG91bGQgd2UgdGVzdCBoZXJlIHRoYXQgdGhl
IHByb3BlcnR5IGlzIGFjdHVhbGx5IHdyaXRhYmxlCiAgICAgICAgIC8vIGV0Yy4sIG9yIHRydXN0
IGdldE93blByb3BlcnR5RGVzY3JpcHRvcj8KLSAgICAgICAgYXNzZXJ0X293bl9wcm9wZXJ0eShz
ZWxmLCB0aGlzLm5hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgInNlbGYgZG9lcyBu
b3QgaGF2ZSBvd24gcHJvcGVydHkgIiArIGZvcm1hdF92YWx1ZSh0aGlzLm5hbWUpKTsKLSAgICAg
ICAgdmFyIGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHNlbGYsIHRoaXMu
bmFtZSk7CisgICAgICAgIHRoaXMuYXNzZXJ0X2ludGVyZmFjZV9vYmplY3RfZXhpc3RzKCk7Cisg
ICAgICAgIHZhciBkZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0aGlzLmdl
dF9pbnRlcmZhY2Vfb2JqZWN0X293bmVyKCksIHRoaXMubmFtZSk7CiAgICAgICAgIGFzc2VydF9m
YWxzZSgiZ2V0IiBpbiBkZXNjLCAic2VsZidzIHByb3BlcnR5ICIgKyBmb3JtYXRfdmFsdWUodGhp
cy5uYW1lKSArICIgc2hvdWxkIG5vdCBoYXZlIGEgZ2V0dGVyIik7CiAgICAgICAgIGFzc2VydF9m
YWxzZSgic2V0IiBpbiBkZXNjLCAic2VsZidzIHByb3BlcnR5ICIgKyBmb3JtYXRfdmFsdWUodGhp
cy5uYW1lKSArICIgc2hvdWxkIG5vdCBoYXZlIGEgc2V0dGVyIik7CiAgICAgICAgIGFzc2VydF90
cnVlKGRlc2Mud3JpdGFibGUsICJzZWxmJ3MgcHJvcGVydHkgIiArIGZvcm1hdF92YWx1ZSh0aGlz
Lm5hbWUpICsgIiBzaG91bGQgYmUgd3JpdGFibGUiKTsKQEAgLTE1MTUsNyArMTU1MSw3IEBAIElk
bEludGVyZmFjZS5wcm90b3R5cGUudGVzdF9zZWxmID0gZnVuY3Rpb24oKQogICAgICAgICBpZiAo
dGhpcy5pc19jYWxsYmFjaygpKSB7CiAgICAgICAgICAgICAvLyAiVGhlIGludGVybmFsIFtbUHJv
dG90eXBlXV0gcHJvcGVydHkgb2YgYW4gaW50ZXJmYWNlIG9iamVjdCBmb3IKICAgICAgICAgICAg
IC8vIGEgY2FsbGJhY2sgaW50ZXJmYWNlIG11c3QgYmUgdGhlIEZ1bmN0aW9uLnByb3RvdHlwZSBv
YmplY3QuIgotICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhPYmplY3QuZ2V0UHJvdG90eXBlT2Yo
c2VsZlt0aGlzLm5hbWVdKSwgRnVuY3Rpb24ucHJvdG90eXBlLAorICAgICAgICAgICAgYXNzZXJ0
X2VxdWFscyhPYmplY3QuZ2V0UHJvdG90eXBlT2YodGhpcy5nZXRfaW50ZXJmYWNlX29iamVjdCgp
KSwgRnVuY3Rpb24ucHJvdG90eXBlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAicHJvdG90
eXBlIG9mIHNlbGYncyBwcm9wZXJ0eSAiICsgZm9ybWF0X3ZhbHVlKHRoaXMubmFtZSkgKyAiIGlz
IG5vdCBPYmplY3QucHJvdG90eXBlIik7CiAKICAgICAgICAgICAgIHJldHVybjsKQEAgLTE1NDUs
MjQgKzE1ODEsMTkgQEAgSWRsSW50ZXJmYWNlLnByb3RvdHlwZS50ZXN0X3NlbGYgPSBmdW5jdGlv
bigpCiAgICAgICAgIC8vIEVTNiAocmV2IDMwKSAxOS4xLjMuNjoKICAgICAgICAgLy8gIkVsc2Us
IGlmIE8gaGFzIGEgW1tDYWxsXV0gaW50ZXJuYWwgbWV0aG9kLCB0aGVuIGxldCBidWlsdGluVGFn
IGJlCiAgICAgICAgIC8vICJGdW5jdGlvbiIuIgotICAgICAgICBhc3NlcnRfY2xhc3Nfc3RyaW5n
KHNlbGZbdGhpcy5uYW1lXSwgIkZ1bmN0aW9uIiwgImNsYXNzIHN0cmluZyBvZiAiICsgdGhpcy5u
YW1lKTsKKyAgICAgICAgYXNzZXJ0X2NsYXNzX3N0cmluZyh0aGlzLmdldF9pbnRlcmZhY2Vfb2Jq
ZWN0KCksICJGdW5jdGlvbiIsICJjbGFzcyBzdHJpbmcgb2YgIiArIHRoaXMubmFtZSk7CiAKICAg
ICAgICAgLy8gIlRoZSBbW1Byb3RvdHlwZV1dIGludGVybmFsIHByb3BlcnR5IG9mIGFuIGludGVy
ZmFjZSBvYmplY3QgZm9yIGEKICAgICAgICAgLy8gbm9uLWNhbGxiYWNrIGludGVyZmFjZSBpcyBk
ZXRlcm1pbmVkIGFzIGZvbGxvd3M6IgotICAgICAgICB2YXIgcHJvdG90eXBlID0gT2JqZWN0Lmdl
dFByb3RvdHlwZU9mKHNlbGZbdGhpcy5uYW1lXSk7CisgICAgICAgIHZhciBwcm90b3R5cGUgPSBP
YmplY3QuZ2V0UHJvdG90eXBlT2YodGhpcy5nZXRfaW50ZXJmYWNlX29iamVjdCgpKTsKICAgICAg
ICAgaWYgKHRoaXMuYmFzZSkgewogICAgICAgICAgICAgLy8gIiogSWYgdGhlIGludGVyZmFjZSBp
bmhlcml0cyBmcm9tIHNvbWUgb3RoZXIgaW50ZXJmYWNlLCB0aGUKICAgICAgICAgICAgIC8vICAg
IHZhbHVlIG9mIFtbUHJvdG90eXBlXV0gaXMgdGhlIGludGVyZmFjZSBvYmplY3QgZm9yIHRoYXQg
b3RoZXIKICAgICAgICAgICAgIC8vICAgIGludGVyZmFjZS4iCi0gICAgICAgICAgICB2YXIgaGFz
X2ludGVyZmFjZV9vYmplY3QgPQotICAgICAgICAgICAgICAgICF0aGlzLmFycmF5Ci0gICAgICAg
ICAgICAgICAgICAgICAubWVtYmVyc1t0aGlzLmJhc2VdCi0gICAgICAgICAgICAgICAgICAgICAu
aGFzX2V4dGVuZGVkX2F0dHJpYnV0ZSgiTm9JbnRlcmZhY2VPYmplY3QiKTsKLSAgICAgICAgICAg
IGlmIChoYXNfaW50ZXJmYWNlX29iamVjdCkgewotICAgICAgICAgICAgICAgIGFzc2VydF9vd25f
cHJvcGVydHkoc2VsZiwgdGhpcy5iYXNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgJ3Nob3VsZCBpbmhlcml0IGZyb20gJyArIHRoaXMuYmFzZSArCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAnLCBidXQgc2VsZiBoYXMgbm8gc3VjaCBwcm9wZXJ0eScp
OwotICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMocHJvdG90eXBlLCBzZWxmW3RoaXMuYmFz
ZV0sCisgICAgICAgICAgICB2YXIgaW5oZXJpdGVkX2ludGVyZmFjZSA9IHRoaXMuYXJyYXkubWVt
YmVyc1t0aGlzLmJhc2VdOworICAgICAgICAgICAgaWYgKCFpbmhlcml0ZWRfaW50ZXJmYWNlLmhh
c19leHRlbmRlZF9hdHRyaWJ1dGUoIk5vSW50ZXJmYWNlT2JqZWN0IikpIHsKKyAgICAgICAgICAg
ICAgICBpbmhlcml0ZWRfaW50ZXJmYWNlLmFzc2VydF9pbnRlcmZhY2Vfb2JqZWN0X2V4aXN0cygp
OworICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMocHJvdG90eXBlLCBpbmhlcml0ZWRfaW50
ZXJmYWNlLmdldF9pbnRlcmZhY2Vfb2JqZWN0KCksCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAncHJvdG90eXBlIG9mICcgKyB0aGlzLm5hbWUgKyAnIGlzIG5vdCAnICsKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYmFzZSk7CiAgICAgICAgICAgICB9CkBAIC0xNTc0
LDE4ICsxNjA1LDE5IEBAIElkbEludGVyZmFjZS5wcm90b3R5cGUudGVzdF9zZWxmID0gZnVuY3Rp
b24oKQogICAgICAgICAgICAgICAgICAgICAgICAgICAicHJvdG90eXBlIG9mIHNlbGYncyBwcm9w
ZXJ0eSAiICsgZm9ybWF0X3ZhbHVlKHRoaXMubmFtZSkgKyAiIGlzIG5vdCBGdW5jdGlvbi5wcm90
b3R5cGUiKTsKICAgICAgICAgfQogCi0gICAgICAgIGlmICghdGhpcy5oYXNfZXh0ZW5kZWRfYXR0
cmlidXRlKCJDb25zdHJ1Y3RvciIpKSB7CisgICAgICAgIGlmICghdGhpcy5jb25zdHJ1Y3RvcnMo
KS5sZW5ndGgpIHsKICAgICAgICAgICAgIC8vICJUaGUgaW50ZXJuYWwgW1tDYWxsXV0gbWV0aG9k
IG9mIHRoZSBpbnRlcmZhY2Ugb2JqZWN0IGJlaGF2ZXMgYXMKICAgICAgICAgICAgIC8vIGZvbGxv
d3MgLiAuIC4KICAgICAgICAgICAgIC8vCiAgICAgICAgICAgICAvLyAiSWYgSSB3YXMgbm90IGRl
Y2xhcmVkIHdpdGggYSBbQ29uc3RydWN0b3JdIGV4dGVuZGVkIGF0dHJpYnV0ZSwKICAgICAgICAg
ICAgIC8vIHRoZW4gdGhyb3cgYSBUeXBlRXJyb3IuIgorICAgICAgICAgICAgdmFyIGludGVyZmFj
ZV9vYmplY3QgPSB0aGlzLmdldF9pbnRlcmZhY2Vfb2JqZWN0KCk7CiAgICAgICAgICAgICBhc3Nl
cnRfdGhyb3dzKG5ldyBUeXBlRXJyb3IoKSwgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgICAg
c2VsZlt0aGlzLm5hbWVdKCk7Ci0gICAgICAgICAgICB9LmJpbmQodGhpcyksICJpbnRlcmZhY2Ug
b2JqZWN0IGRpZG4ndCB0aHJvdyBUeXBlRXJyb3Igd2hlbiBjYWxsZWQgYXMgYSBmdW5jdGlvbiIp
OworICAgICAgICAgICAgICAgIGludGVyZmFjZV9vYmplY3QoKTsKKyAgICAgICAgICAgIH0sICJp
bnRlcmZhY2Ugb2JqZWN0IGRpZG4ndCB0aHJvdyBUeXBlRXJyb3Igd2hlbiBjYWxsZWQgYXMgYSBm
dW5jdGlvbiIpOwogICAgICAgICAgICAgYXNzZXJ0X3Rocm93cyhuZXcgVHlwZUVycm9yKCksIGZ1
bmN0aW9uKCkgewotICAgICAgICAgICAgICAgIG5ldyBzZWxmW3RoaXMubmFtZV0oKTsKLSAgICAg
ICAgICAgIH0uYmluZCh0aGlzKSwgImludGVyZmFjZSBvYmplY3QgZGlkbid0IHRocm93IFR5cGVF
cnJvciB3aGVuIGNhbGxlZCBhcyBhIGNvbnN0cnVjdG9yIik7CisgICAgICAgICAgICAgICAgbmV3
IGludGVyZmFjZV9vYmplY3QoKTsKKyAgICAgICAgICAgIH0sICJpbnRlcmZhY2Ugb2JqZWN0IGRp
ZG4ndCB0aHJvdyBUeXBlRXJyb3Igd2hlbiBjYWxsZWQgYXMgYSBjb25zdHJ1Y3RvciIpOwogICAg
ICAgICB9CiAgICAgfS5iaW5kKHRoaXMpLCB0aGlzLm5hbWUgKyAiIGludGVyZmFjZTogZXhpc3Rl
bmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QiKTsKIApAQCAtMTU5NCwyNSAr
MTYyNiwyMyBAQCBJZGxJbnRlcmZhY2UucHJvdG90eXBlLnRlc3Rfc2VsZiA9IGZ1bmN0aW9uKCkK
ICAgICAgICAgICAgIC8vIFRoaXMgZnVuY3Rpb24gdGVzdHMgV2ViSURMIGFzIG9mIDIwMTQtMTAt
MjUuCiAgICAgICAgICAgICAvLyBodHRwczovL2hleWNhbS5naXRodWIuaW8vd2ViaWRsLyNlcy1p
bnRlcmZhY2UtY2FsbAogCi0gICAgICAgICAgICBhc3NlcnRfb3duX3Byb3BlcnR5KHNlbGYsIHRo
aXMubmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInNlbGYgZG9lcyBub3Qg
aGF2ZSBvd24gcHJvcGVydHkgIiArIGZvcm1hdF92YWx1ZSh0aGlzLm5hbWUpKTsKKyAgICAgICAg
ICAgIHRoaXMuYXNzZXJ0X2ludGVyZmFjZV9vYmplY3RfZXhpc3RzKCk7CiAKICAgICAgICAgICAg
IC8vICJJbnRlcmZhY2Ugb2JqZWN0cyBmb3Igbm9uLWNhbGxiYWNrIGludGVyZmFjZXMgTVVTVCBo
YXZlIGEKICAgICAgICAgICAgIC8vIHByb3BlcnR5IG5hbWVkIOKAnGxlbmd0aOKAnSB3aXRoIGF0
dHJpYnV0ZXMgeyBbW1dyaXRhYmxlXV06IGZhbHNlLAogICAgICAgICAgICAgLy8gW1tFbnVtZXJh
YmxlXV06IGZhbHNlLCBbW0NvbmZpZ3VyYWJsZV1dOiB0cnVlIH0gd2hvc2UgdmFsdWUgaXMKICAg
ICAgICAgICAgIC8vIGEgTnVtYmVyLiIKLSAgICAgICAgICAgIGFzc2VydF9vd25fcHJvcGVydHko
c2VsZlt0aGlzLm5hbWVdLCAibGVuZ3RoIik7Ci0gICAgICAgICAgICB2YXIgZGVzYyA9IE9iamVj
dC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Ioc2VsZlt0aGlzLm5hbWVdLCAibGVuZ3RoIik7Cisg
ICAgICAgICAgICBhc3NlcnRfb3duX3Byb3BlcnR5KHRoaXMuZ2V0X2ludGVyZmFjZV9vYmplY3Qo
KSwgImxlbmd0aCIpOworICAgICAgICAgICAgdmFyIGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKHRoaXMuZ2V0X2ludGVyZmFjZV9vYmplY3QoKSwgImxlbmd0aCIpOwogICAg
ICAgICAgICAgYXNzZXJ0X2ZhbHNlKCJnZXQiIGluIGRlc2MsIHRoaXMubmFtZSArICIubGVuZ3Ro
IHNob3VsZCBub3QgaGF2ZSBhIGdldHRlciIpOwogICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKCJz
ZXQiIGluIGRlc2MsIHRoaXMubmFtZSArICIubGVuZ3RoIHNob3VsZCBub3QgaGF2ZSBhIHNldHRl
ciIpOwogICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKGRlc2Mud3JpdGFibGUsIHRoaXMubmFtZSAr
ICIubGVuZ3RoIHNob3VsZCBub3QgYmUgd3JpdGFibGUiKTsKICAgICAgICAgICAgIGFzc2VydF9m
YWxzZShkZXNjLmVudW1lcmFibGUsIHRoaXMubmFtZSArICIubGVuZ3RoIHNob3VsZCBub3QgYmUg
ZW51bWVyYWJsZSIpOwogICAgICAgICAgICAgYXNzZXJ0X3RydWUoZGVzYy5jb25maWd1cmFibGUs
IHRoaXMubmFtZSArICIubGVuZ3RoIHNob3VsZCBiZSBjb25maWd1cmFibGUiKTsKIAotICAgICAg
ICAgICAgdmFyIGNvbnN0cnVjdG9ycyA9IHRoaXMuZXh0QXR0cnMKLSAgICAgICAgICAgICAgICAu
ZmlsdGVyKGZ1bmN0aW9uKGF0dHIpIHsgcmV0dXJuIGF0dHIubmFtZSA9PSAiQ29uc3RydWN0b3Ii
OyB9KTsKKyAgICAgICAgICAgIHZhciBjb25zdHJ1Y3RvcnMgPSB0aGlzLmNvbnN0cnVjdG9ycygp
OwogICAgICAgICAgICAgdmFyIGV4cGVjdGVkX2xlbmd0aCA9IG1pbk92ZXJsb2FkTGVuZ3RoKGNv
bnN0cnVjdG9ycyk7Ci0gICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNlbGZbdGhpcy5uYW1lXS5s
ZW5ndGgsIGV4cGVjdGVkX2xlbmd0aCwgIndyb25nIHZhbHVlIGZvciAiICsgdGhpcy5uYW1lICsg
Ii5sZW5ndGgiKTsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHModGhpcy5nZXRfaW50ZXJmYWNl
X29iamVjdCgpLmxlbmd0aCwgZXhwZWN0ZWRfbGVuZ3RoLCAid3JvbmcgdmFsdWUgZm9yICIgKyB0
aGlzLm5hbWUgKyAiLmxlbmd0aCIpOwogICAgICAgICB9LmJpbmQodGhpcyksIHRoaXMubmFtZSAr
ICIgaW50ZXJmYWNlIG9iamVjdCBsZW5ndGgiKTsKICAgICB9CiAKQEAgLTE2MjEsMjIgKzE2NTEs
MjEgQEAgSWRsSW50ZXJmYWNlLnByb3RvdHlwZS50ZXN0X3NlbGYgPSBmdW5jdGlvbigpCiAgICAg
ICAgICAgICAvLyBUaGlzIGZ1bmN0aW9uIHRlc3RzIFdlYklETCBhcyBvZiAyMDE1LTExLTE3Lgog
ICAgICAgICAgICAgLy8gaHR0cHM6Ly9oZXljYW0uZ2l0aHViLmlvL3dlYmlkbC8jaW50ZXJmYWNl
LW9iamVjdAogCi0gICAgICAgICAgICBhc3NlcnRfb3duX3Byb3BlcnR5KHNlbGYsIHRoaXMubmFt
ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInNlbGYgZG9lcyBub3QgaGF2ZSBv
d24gcHJvcGVydHkgIiArIGZvcm1hdF92YWx1ZSh0aGlzLm5hbWUpKTsKKyAgICAgICAgICAgIHRo
aXMuYXNzZXJ0X2ludGVyZmFjZV9vYmplY3RfZXhpc3RzKCk7CiAKICAgICAgICAgICAgIC8vICJB
bGwgaW50ZXJmYWNlIG9iamVjdHMgbXVzdCBoYXZlIGEgcHJvcGVydHkgbmFtZWQg4oCcbmFtZeKA
nSB3aXRoCiAgICAgICAgICAgICAvLyBhdHRyaWJ1dGVzIHsgW1tXcml0YWJsZV1dOiBmYWxzZSwg
W1tFbnVtZXJhYmxlXV06IGZhbHNlLAogICAgICAgICAgICAgLy8gW1tDb25maWd1cmFibGVdXTog
dHJ1ZSB9IHdob3NlIHZhbHVlIGlzIHRoZSBpZGVudGlmaWVyIG9mIHRoZQogICAgICAgICAgICAg
Ly8gY29ycmVzcG9uZGluZyBpbnRlcmZhY2UuIgogCi0gICAgICAgICAgICBhc3NlcnRfb3duX3By
b3BlcnR5KHNlbGZbdGhpcy5uYW1lXSwgIm5hbWUiKTsKLSAgICAgICAgICAgIHZhciBkZXNjID0g
T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihzZWxmW3RoaXMubmFtZV0sICJuYW1lIik7
CisgICAgICAgICAgICBhc3NlcnRfb3duX3Byb3BlcnR5KHRoaXMuZ2V0X2ludGVyZmFjZV9vYmpl
Y3QoKSwgIm5hbWUiKTsKKyAgICAgICAgICAgIHZhciBkZXNjID0gT2JqZWN0LmdldE93blByb3Bl
cnR5RGVzY3JpcHRvcih0aGlzLmdldF9pbnRlcmZhY2Vfb2JqZWN0KCksICJuYW1lIik7CiAgICAg
ICAgICAgICBhc3NlcnRfZmFsc2UoImdldCIgaW4gZGVzYywgdGhpcy5uYW1lICsgIi5uYW1lIHNo
b3VsZCBub3QgaGF2ZSBhIGdldHRlciIpOwogICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKCJzZXQi
IGluIGRlc2MsIHRoaXMubmFtZSArICIubmFtZSBzaG91bGQgbm90IGhhdmUgYSBzZXR0ZXIiKTsK
ICAgICAgICAgICAgIGFzc2VydF9mYWxzZShkZXNjLndyaXRhYmxlLCB0aGlzLm5hbWUgKyAiLm5h
bWUgc2hvdWxkIG5vdCBiZSB3cml0YWJsZSIpOwogICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKGRl
c2MuZW51bWVyYWJsZSwgdGhpcy5uYW1lICsgIi5uYW1lIHNob3VsZCBub3QgYmUgZW51bWVyYWJs
ZSIpOwogICAgICAgICAgICAgYXNzZXJ0X3RydWUoZGVzYy5jb25maWd1cmFibGUsIHRoaXMubmFt
ZSArICIubmFtZSBzaG91bGQgYmUgY29uZmlndXJhYmxlIik7Ci0gICAgICAgICAgICBhc3NlcnRf
ZXF1YWxzKHNlbGZbdGhpcy5uYW1lXS5uYW1lLCB0aGlzLm5hbWUsICJ3cm9uZyB2YWx1ZSBmb3Ig
IiArIHRoaXMubmFtZSArICIubmFtZSIpOworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyh0aGlz
LmdldF9pbnRlcmZhY2Vfb2JqZWN0KCkubmFtZSwgdGhpcy5uYW1lLCAid3JvbmcgdmFsdWUgZm9y
ICIgKyB0aGlzLm5hbWUgKyAiLm5hbWUiKTsKICAgICAgICAgfS5iaW5kKHRoaXMpLCB0aGlzLm5h
bWUgKyAiIGludGVyZmFjZSBvYmplY3QgbmFtZSIpOwogICAgIH0KIApAQCAtMTY2NSw3ICsxNjk0
LDcgQEAgSWRsSW50ZXJmYWNlLnByb3RvdHlwZS50ZXN0X3NlbGYgPSBmdW5jdGlvbigpCiAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICB2YXIgYWxpYXNlczsKICAgICAgICAgICAgIGlmIChyaHMu
dHlwZSA9PT0gImlkZW50aWZpZXItbGlzdCIpIHsKLSAgICAgICAgICAgICAgICBhbGlhc2VzID0g
cmhzLnZhbHVlOworICAgICAgICAgICAgICAgIGFsaWFzZXMgPSByaHMudmFsdWUubWFwKGlkID0+
IGlkLnZhbHVlKTsKICAgICAgICAgICAgIH0gZWxzZSB7IC8vIHJocy50eXBlID09PSBpZGVudGlm
aWVyCiAgICAgICAgICAgICAgICAgYWxpYXNlcyA9IFsgcmhzLnZhbHVlIF07CiAgICAgICAgICAg
ICB9CkBAIC0xNjc1LDkgKzE3MDQsOSBAQCBJZGxJbnRlcmZhY2UucHJvdG90eXBlLnRlc3Rfc2Vs
ZiA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIGlmIChleHBvc2VkX2luKGV4cG9zdXJlX3NldCh0
aGlzLCB0aGlzLmV4cG9zdXJlU2V0KSkgJiYgJ2RvY3VtZW50JyBpbiBzZWxmKSB7CiAgICAgICAg
ICAgICAgICAgZm9yIChhbGlhcyBvZiBhbGlhc2VzKSB7CiAgICAgICAgICAgICAgICAgICAgIGFz
c2VydF90cnVlKGFsaWFzIGluIHNlbGYsIGFsaWFzICsgIiBzaG91bGQgZXhpc3QiKTsKLSAgICAg
ICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzZWxmW2FsaWFzXSwgc2VsZlt0aGlzLm5hbWVd
LCAic2VsZi4iICsgYWxpYXMgKyAiIHNob3VsZCBiZSB0aGUgc2FtZSB2YWx1ZSBhcyBzZWxmLiIg
KyB0aGlzLm5hbWUpOworICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNlbGZbYWxp
YXNdLCB0aGlzLmdldF9pbnRlcmZhY2Vfb2JqZWN0KCksICJzZWxmLiIgKyBhbGlhcyArICIgc2hv
dWxkIGJlIHRoZSBzYW1lIHZhbHVlIGFzIHNlbGYuIiArIHRoaXMuZ2V0X3F1YWxpZmllZF9uYW1l
KCkpOwogICAgICAgICAgICAgICAgICAgICB2YXIgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3Ioc2VsZiwgYWxpYXMpOwotICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1
YWxzKGRlc2MudmFsdWUsIHNlbGZbdGhpcy5uYW1lXSwgIndyb25nIHZhbHVlIGluICIgKyBhbGlh
cyArICIgcHJvcGVydHkgZGVzY3JpcHRvciIpOworICAgICAgICAgICAgICAgICAgICBhc3NlcnRf
ZXF1YWxzKGRlc2MudmFsdWUsIHRoaXMuZ2V0X2ludGVyZmFjZV9vYmplY3QoKSwgIndyb25nIHZh
bHVlIGluICIgKyBhbGlhcyArICIgcHJvcGVydHkgZGVzY3JpcHRvciIpOwogICAgICAgICAgICAg
ICAgICAgICBhc3NlcnRfdHJ1ZShkZXNjLndyaXRhYmxlLCBhbGlhcyArICIgc2hvdWxkIGJlIHdy
aXRhYmxlIik7CiAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9mYWxzZShkZXNjLmVudW1lcmFi
bGUsIGFsaWFzICsgIiBzaG91bGQgbm90IGJlIGVudW1lcmFibGUiKTsKICAgICAgICAgICAgICAg
ICAgICAgYXNzZXJ0X3RydWUoZGVzYy5jb25maWd1cmFibGUsIGFsaWFzICsgIiBzaG91bGQgYmUg
Y29uZmlndXJhYmxlIik7CkBAIC0xNjkyLDcgKzE3MjEsMTIyIEBAIElkbEludGVyZmFjZS5wcm90
b3R5cGUudGVzdF9zZWxmID0gZnVuY3Rpb24oKQogCiAgICAgICAgIH0uYmluZCh0aGlzKSwgdGhp
cy5uYW1lICsgIiBpbnRlcmZhY2U6IGxlZ2FjeSB3aW5kb3cgYWxpYXMiKTsKICAgICB9Ci0gICAg
Ly8gVE9ETzogVGVzdCBuYW1lZCBjb25zdHJ1Y3RvcnMgaWYgSSBmaW5kIGFueSBpbnRlcmZhY2Vz
IHRoYXQgaGF2ZSB0aGVtLgorCisgICAgaWYgKHRoaXMuaGFzX2V4dGVuZGVkX2F0dHJpYnV0ZSgi
TmFtZWRDb25zdHJ1Y3RvciIpKSB7CisgICAgICAgIHZhciBjb25zdHJ1Y3RvcnMgPSB0aGlzLmV4
dEF0dHJzCisgICAgICAgICAgICAuZmlsdGVyKGZ1bmN0aW9uKGF0dHIpIHsgcmV0dXJuIGF0dHIu
bmFtZSA9PSAiTmFtZWRDb25zdHJ1Y3RvciI7IH0pOworICAgICAgICBpZiAoY29uc3RydWN0b3Jz
Lmxlbmd0aCAhPT0gMSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElkbEhhcm5lc3NFcnJvcigi
SW50ZXJuYWwgZXJyb3I6IG1pc3Npbmcgc3VwcG9ydCBmb3IgbXVsdGlwbGUgTmFtZWRDb25zdHJ1
Y3RvciBleHRlbmRlZCBhdHRyaWJ1dGVzIik7CisgICAgICAgIH0KKyAgICAgICAgdmFyIGNvbnN0
cnVjdG9yID0gY29uc3RydWN0b3JzWzBdOworICAgICAgICB2YXIgbWluX2xlbmd0aCA9IG1pbk92
ZXJsb2FkTGVuZ3RoKFtjb25zdHJ1Y3Rvcl0pOworCisgICAgICAgIHN1YnNldFRlc3RCeUtleSh0
aGlzLm5hbWUsIHRlc3QsIGZ1bmN0aW9uKCkKKyAgICAgICAgeworICAgICAgICAgICAgLy8gVGhp
cyBmdW5jdGlvbiB0ZXN0cyBXZWJJREwgYXMgb2YgMjAxOS0wMS0xNC4KKworICAgICAgICAgICAg
Ly8gImZvciBldmVyeSBbTmFtZWRDb25zdHJ1Y3Rvcl0gZXh0ZW5kZWQgYXR0cmlidXRlIG9uIGFu
IGV4cG9zZWQKKyAgICAgICAgICAgIC8vIGludGVyZmFjZSwgYSBjb3JyZXNwb25kaW5nIHByb3Bl
cnR5IG11c3QgZXhpc3Qgb24gdGhlIEVDTUFTY3JpcHQKKyAgICAgICAgICAgIC8vIGdsb2JhbCBv
YmplY3QuIFRoZSBuYW1lIG9mIHRoZSBwcm9wZXJ0eSBpcyB0aGUKKyAgICAgICAgICAgIC8vIFtO
YW1lZENvbnN0cnVjdG9yXSdzIGlkZW50aWZpZXIsIGFuZCBpdHMgdmFsdWUgaXMgYW4gb2JqZWN0
CisgICAgICAgICAgICAvLyBjYWxsZWQgYSBuYW1lZCBjb25zdHJ1Y3RvciwgLi4uIC4gVGhlIHBy
b3BlcnR5IGhhcyB0aGUgYXR0cmlidXRlcworICAgICAgICAgICAgLy8geyBbW1dyaXRhYmxlXV06
IHRydWUsIFtbRW51bWVyYWJsZV1dOiBmYWxzZSwKKyAgICAgICAgICAgIC8vIFtbQ29uZmlndXJh
YmxlXV06IHRydWUgfS4iCisgICAgICAgICAgICB2YXIgbmFtZSA9IGNvbnN0cnVjdG9yLnJocy52
YWx1ZTsKKyAgICAgICAgICAgIGFzc2VydF9vd25fcHJvcGVydHkoc2VsZiwgbmFtZSk7CisgICAg
ICAgICAgICB2YXIgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Ioc2VsZiwg
bmFtZSk7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGRlc2MudmFsdWUsIHNlbGZbbmFtZV0s
ICJ3cm9uZyB2YWx1ZSBpbiAiICsgbmFtZSArICIgcHJvcGVydHkgZGVzY3JpcHRvciIpOworICAg
ICAgICAgICAgYXNzZXJ0X3RydWUoZGVzYy53cml0YWJsZSwgbmFtZSArICIgc2hvdWxkIGJlIHdy
aXRhYmxlIik7CisgICAgICAgICAgICBhc3NlcnRfZmFsc2UoZGVzYy5lbnVtZXJhYmxlLCBuYW1l
ICsgIiBzaG91bGQgbm90IGJlIGVudW1lcmFibGUiKTsKKyAgICAgICAgICAgIGFzc2VydF90cnVl
KGRlc2MuY29uZmlndXJhYmxlLCBuYW1lICsgIiBzaG91bGQgYmUgY29uZmlndXJhYmxlIik7Cisg
ICAgICAgICAgICBhc3NlcnRfZmFsc2UoImdldCIgaW4gZGVzYywgbmFtZSArICIgc2hvdWxkIG5v
dCBoYXZlIGEgZ2V0dGVyIik7CisgICAgICAgICAgICBhc3NlcnRfZmFsc2UoInNldCIgaW4gZGVz
YywgbmFtZSArICIgc2hvdWxkIG5vdCBoYXZlIGEgc2V0dGVyIik7CisgICAgICAgIH0uYmluZCh0
aGlzKSwgdGhpcy5uYW1lICsgIiBpbnRlcmZhY2U6IG5hbWVkIGNvbnN0cnVjdG9yIik7CisKKyAg
ICAgICAgc3Vic2V0VGVzdEJ5S2V5KHRoaXMubmFtZSwgdGVzdCwgZnVuY3Rpb24oKQorICAgICAg
ICB7CisgICAgICAgICAgICAvLyBUaGlzIGZ1bmN0aW9uIHRlc3RzIFdlYklETCBhcyBvZiAyMDE5
LTAxLTE0LgorCisgICAgICAgICAgICAvLyAiMi4gTGV0IEYgYmUgISBDcmVhdGVCdWlsdGluRnVu
Y3Rpb24ocmVhbG0sIHN0ZXBzLAorICAgICAgICAgICAgLy8gICAgIHJlYWxtLltbSW50cmluc2lj
c11dLltbJUZ1bmN0aW9uUHJvdG90eXBlJV1dKS4iCisgICAgICAgICAgICB2YXIgbmFtZSA9IGNv
bnN0cnVjdG9yLnJocy52YWx1ZTsKKyAgICAgICAgICAgIHZhciB2YWx1ZSA9IHNlbGZbbmFtZV07
CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHR5cGVvZiB2YWx1ZSwgImZ1bmN0aW9uIiwgInR5
cGUgb2YgdmFsdWUgaW4gIiArIG5hbWUgKyAiIHByb3BlcnR5IGRlc2NyaXB0b3IiKTsKKyAgICAg
ICAgICAgIGFzc2VydF9ub3RfZXF1YWxzKHZhbHVlLCB0aGlzLmdldF9pbnRlcmZhY2Vfb2JqZWN0
KCksICJ3cm9uZyB2YWx1ZSBpbiAiICsgbmFtZSArICIgcHJvcGVydHkgZGVzY3JpcHRvciIpOwor
ICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhPYmplY3QuZ2V0UHJvdG90eXBlT2YodmFsdWUpLCBG
dW5jdGlvbi5wcm90b3R5cGUsICJ3cm9uZyB2YWx1ZSBmb3IgIiArIG5hbWUgKyAiJ3MgcHJvdG90
eXBlIik7CisgICAgICAgIH0uYmluZCh0aGlzKSwgdGhpcy5uYW1lICsgIiBpbnRlcmZhY2U6IG5h
bWVkIGNvbnN0cnVjdG9yIG9iamVjdCIpOworCisgICAgICAgIHN1YnNldFRlc3RCeUtleSh0aGlz
Lm5hbWUsIHRlc3QsIGZ1bmN0aW9uKCkKKyAgICAgICAgeworICAgICAgICAgICAgLy8gVGhpcyBm
dW5jdGlvbiB0ZXN0cyBXZWJJREwgYXMgb2YgMjAxOS0wMS0xNC4KKworICAgICAgICAgICAgLy8g
IjcuIExldCBwcm90byBiZSB0aGUgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3Qgb2YgaW50ZXJm
YWNlIEkKKyAgICAgICAgICAgIC8vICAgICBpbiByZWFsbS4KKyAgICAgICAgICAgIC8vICI4LiBQ
ZXJmb3JtICEgRGVmaW5lUHJvcGVydHlPclRocm93KEYsICJwcm90b3R5cGUiLAorICAgICAgICAg
ICAgLy8gICAgIFByb3BlcnR5RGVzY3JpcHRvcnsKKyAgICAgICAgICAgIC8vICAgICAgICAgW1tW
YWx1ZV1dOiBwcm90bywgW1tXcml0YWJsZV1dOiBmYWxzZSwKKyAgICAgICAgICAgIC8vICAgICAg
ICAgW1tFbnVtZXJhYmxlXV06IGZhbHNlLCBbW0NvbmZpZ3VyYWJsZV1dOiBmYWxzZQorICAgICAg
ICAgICAgLy8gICAgIH0pLiIKKyAgICAgICAgICAgIHZhciBuYW1lID0gY29uc3RydWN0b3Iucmhz
LnZhbHVlOworICAgICAgICAgICAgdmFyIGV4cGVjdGVkID0gdGhpcy5nZXRfaW50ZXJmYWNlX29i
amVjdCgpLnByb3RvdHlwZTsKKyAgICAgICAgICAgIHZhciBkZXNjID0gT2JqZWN0LmdldE93blBy
b3BlcnR5RGVzY3JpcHRvcihzZWxmW25hbWVdLCAicHJvdG90eXBlIik7CisgICAgICAgICAgICBh
c3NlcnRfZXF1YWxzKGRlc2MudmFsdWUsIGV4cGVjdGVkLCAid3JvbmcgdmFsdWUgZm9yICIgKyBu
YW1lICsgIi5wcm90b3R5cGUiKTsKKyAgICAgICAgICAgIGFzc2VydF9mYWxzZShkZXNjLndyaXRh
YmxlLCAicHJvdG90eXBlIHNob3VsZCBub3QgYmUgd3JpdGFibGUiKTsKKyAgICAgICAgICAgIGFz
c2VydF9mYWxzZShkZXNjLmVudW1lcmFibGUsICJwcm90b3R5cGUgc2hvdWxkIG5vdCBiZSBlbnVt
ZXJhYmxlIik7CisgICAgICAgICAgICBhc3NlcnRfZmFsc2UoZGVzYy5jb25maWd1cmFibGUsICJw
cm90b3R5cGUgc2hvdWxkIG5vdCBiZSBjb25maWd1cmFibGUiKTsKKyAgICAgICAgICAgIGFzc2Vy
dF9mYWxzZSgiZ2V0IiBpbiBkZXNjLCAicHJvdG90eXBlIHNob3VsZCBub3QgaGF2ZSBhIGdldHRl
ciIpOworICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKCJzZXQiIGluIGRlc2MsICJwcm90b3R5cGUg
c2hvdWxkIG5vdCBoYXZlIGEgc2V0dGVyIik7CisgICAgICAgIH0uYmluZCh0aGlzKSwgdGhpcy5u
YW1lICsgIiBpbnRlcmZhY2U6IG5hbWVkIGNvbnN0cnVjdG9yIHByb3RvdHlwZSBwcm9wZXJ0eSIp
OworCisgICAgICAgIHN1YnNldFRlc3RCeUtleSh0aGlzLm5hbWUsIHRlc3QsIGZ1bmN0aW9uKCkK
KyAgICAgICAgeworICAgICAgICAgICAgLy8gVGhpcyBmdW5jdGlvbiB0ZXN0cyBXZWJJREwgYXMg
b2YgMjAxOS0wMS0xNC4KKworICAgICAgICAgICAgLy8gIjMuIFBlcmZvcm0gISBTZXRGdW5jdGlv
bk5hbWUoRiwgaWQpLiIKKyAgICAgICAgICAgIHZhciBuYW1lID0gY29uc3RydWN0b3IucmhzLnZh
bHVlOworICAgICAgICAgICAgdmFyIGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yKHNlbGZbbmFtZV0sICJuYW1lIik7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGRlc2Mu
dmFsdWUsIG5hbWUsICJ3cm9uZyB2YWx1ZSBmb3IgIiArIG5hbWUgKyAiLm5hbWUiKTsKKyAgICAg
ICAgICAgIGFzc2VydF9mYWxzZShkZXNjLndyaXRhYmxlLCAibmFtZSBzaG91bGQgbm90IGJlIHdy
aXRhYmxlIik7CisgICAgICAgICAgICBhc3NlcnRfZmFsc2UoZGVzYy5lbnVtZXJhYmxlLCAibmFt
ZSBzaG91bGQgbm90IGJlIGVudW1lcmFibGUiKTsKKyAgICAgICAgICAgIGFzc2VydF90cnVlKGRl
c2MuY29uZmlndXJhYmxlLCAibmFtZSBzaG91bGQgYmUgY29uZmlndXJhYmxlIik7CisgICAgICAg
ICAgICBhc3NlcnRfZmFsc2UoImdldCIgaW4gZGVzYywgIm5hbWUgc2hvdWxkIG5vdCBoYXZlIGEg
Z2V0dGVyIik7CisgICAgICAgICAgICBhc3NlcnRfZmFsc2UoInNldCIgaW4gZGVzYywgIm5hbWUg
c2hvdWxkIG5vdCBoYXZlIGEgc2V0dGVyIik7CisgICAgICAgIH0uYmluZCh0aGlzKSwgdGhpcy5u
YW1lICsgIiBpbnRlcmZhY2U6IG5hbWVkIGNvbnN0cnVjdG9yIG5hbWUiKTsKKworICAgICAgICBz
dWJzZXRUZXN0QnlLZXkodGhpcy5uYW1lLCB0ZXN0LCBmdW5jdGlvbigpCisgICAgICAgIHsKKyAg
ICAgICAgICAgIC8vIFRoaXMgZnVuY3Rpb24gdGVzdHMgV2ViSURMIGFzIG9mIDIwMTktMDEtMTQu
CisKKyAgICAgICAgICAgIC8vICI0LiBJbml0aWFsaXplIFMgdG8gdGhlIGVmZmVjdGl2ZSBvdmVy
bG9hZCBzZXQgZm9yIGNvbnN0cnVjdG9ycworICAgICAgICAgICAgLy8gICAgIHdpdGggaWRlbnRp
ZmllciBpZCBvbiBpbnRlcmZhY2UgSSBhbmQgd2l0aCBhcmd1bWVudCBjb3VudCAwLgorICAgICAg
ICAgICAgLy8gIjUuIExldCBsZW5ndGggYmUgdGhlIGxlbmd0aCBvZiB0aGUgc2hvcnRlc3QgYXJn
dW1lbnQgbGlzdCBvZgorICAgICAgICAgICAgLy8gICAgIHRoZSBlbnRyaWVzIGluIFMuCisgICAg
ICAgICAgICAvLyAiNi4gUGVyZm9ybSAhIFNldEZ1bmN0aW9uTGVuZ3RoKEYsIGxlbmd0aCkuIgor
ICAgICAgICAgICAgdmFyIG5hbWUgPSBjb25zdHJ1Y3Rvci5yaHMudmFsdWU7CisgICAgICAgICAg
ICB2YXIgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Ioc2VsZltuYW1lXSwg
Imxlbmd0aCIpOworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhkZXNjLnZhbHVlLCBtaW5fbGVu
Z3RoLCAid3JvbmcgdmFsdWUgZm9yICIgKyBuYW1lICsgIi5sZW5ndGgiKTsKKyAgICAgICAgICAg
IGFzc2VydF9mYWxzZShkZXNjLndyaXRhYmxlLCAibGVuZ3RoIHNob3VsZCBub3QgYmUgd3JpdGFi
bGUiKTsKKyAgICAgICAgICAgIGFzc2VydF9mYWxzZShkZXNjLmVudW1lcmFibGUsICJsZW5ndGgg
c2hvdWxkIG5vdCBiZSBlbnVtZXJhYmxlIik7CisgICAgICAgICAgICBhc3NlcnRfdHJ1ZShkZXNj
LmNvbmZpZ3VyYWJsZSwgImxlbmd0aCBzaG91bGQgYmUgY29uZmlndXJhYmxlIik7CisgICAgICAg
ICAgICBhc3NlcnRfZmFsc2UoImdldCIgaW4gZGVzYywgImxlbmd0aCBzaG91bGQgbm90IGhhdmUg
YSBnZXR0ZXIiKTsKKyAgICAgICAgICAgIGFzc2VydF9mYWxzZSgic2V0IiBpbiBkZXNjLCAibGVu
Z3RoIHNob3VsZCBub3QgaGF2ZSBhIHNldHRlciIpOworICAgICAgICB9LmJpbmQodGhpcyksIHRo
aXMubmFtZSArICIgaW50ZXJmYWNlOiBuYW1lZCBjb25zdHJ1Y3RvciBsZW5ndGgiKTsKKworICAg
ICAgICBzdWJzZXRUZXN0QnlLZXkodGhpcy5uYW1lLCB0ZXN0LCBmdW5jdGlvbigpCisgICAgICAg
IHsKKyAgICAgICAgICAgIC8vIFRoaXMgZnVuY3Rpb24gdGVzdHMgV2ViSURMIGFzIG9mIDIwMTkt
MDEtMTQuCisKKyAgICAgICAgICAgIC8vICIxLiBMZXQgc3RlcHMgYmUgdGhlIGZvbGxvd2luZyBz
dGVwczoKKyAgICAgICAgICAgIC8vICIgICAgMS4gSWYgTmV3VGFyZ2V0IGlzIHVuZGVmaW5lZCwg
dGhlbiB0aHJvdyBhIFR5cGVFcnJvci4iCisgICAgICAgICAgICB2YXIgbmFtZSA9IGNvbnN0cnVj
dG9yLnJocy52YWx1ZTsKKyAgICAgICAgICAgIHZhciBhcmdzID0gY29uc3RydWN0b3IuYXJndW1l
bnRzLm1hcChmdW5jdGlvbihhcmcpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gY3JlYXRlX3N1
aXRhYmxlX29iamVjdChhcmcuaWRsVHlwZSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
IGFzc2VydF90aHJvd3MobmV3IFR5cGVFcnJvcigpLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAg
ICAgICBzZWxmW25hbWVdKC4uLmFyZ3MpOworICAgICAgICAgICAgfS5iaW5kKHRoaXMpKTsKKyAg
ICAgICAgfS5iaW5kKHRoaXMpLCB0aGlzLm5hbWUgKyAiIGludGVyZmFjZTogbmFtZWQgY29uc3Ry
dWN0b3Igd2l0aG91dCAnbmV3JyIpOworICAgIH0KIAogICAgIHN1YnNldFRlc3RCeUtleSh0aGlz
Lm5hbWUsIHRlc3QsIGZ1bmN0aW9uKCkKICAgICB7CkBAIC0xNzAzLDExICsxODQ3LDEwIEBAIElk
bEludGVyZmFjZS5wcm90b3R5cGUudGVzdF9zZWxmID0gZnVuY3Rpb24oKQogICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICB9CiAKLSAgICAgICAgYXNzZXJ0X293bl9wcm9wZXJ0eShzZWxmLCB0
aGlzLm5hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgInNlbGYgZG9lcyBub3QgaGF2
ZSBvd24gcHJvcGVydHkgIiArIGZvcm1hdF92YWx1ZSh0aGlzLm5hbWUpKTsKKyAgICAgICAgdGhp
cy5hc3NlcnRfaW50ZXJmYWNlX29iamVjdF9leGlzdHMoKTsKIAogICAgICAgICBpZiAodGhpcy5p
c19jYWxsYmFjaygpKSB7Ci0gICAgICAgICAgICBhc3NlcnRfZmFsc2UoInByb3RvdHlwZSIgaW4g
c2VsZlt0aGlzLm5hbWVdLAorICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKCJwcm90b3R5cGUiIGlu
IHRoaXMuZ2V0X2ludGVyZmFjZV9vYmplY3QoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICB0
aGlzLm5hbWUgKyAnIHNob3VsZCBub3QgaGF2ZSBhICJwcm90b3R5cGUiIHByb3BlcnR5Jyk7CiAg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KQEAgLTE3MTksOSArMTg2Miw5IEBAIElkbElu
dGVyZmFjZS5wcm90b3R5cGUudGVzdF9zZWxmID0gZnVuY3Rpb24oKQogICAgICAgICAvLyBwcm9w
ZXJ0aWVzIHRoYXQgY29ycmVzcG9uZCB0byB0aGUgcmVndWxhciBhdHRyaWJ1dGVzIGFuZCByZWd1
bGFyCiAgICAgICAgIC8vIG9wZXJhdGlvbnMgZGVmaW5lZCBvbiB0aGUgaW50ZXJmYWNlLCBhbmQg
aXMgZGVzY3JpYmVkIGluIG1vcmUgZGV0YWlsCiAgICAgICAgIC8vIGluIHNlY3Rpb24gNC41LjQg
YmVsb3cuIgotICAgICAgICBhc3NlcnRfb3duX3Byb3BlcnR5KHNlbGZbdGhpcy5uYW1lXSwgInBy
b3RvdHlwZSIsCisgICAgICAgIGFzc2VydF9vd25fcHJvcGVydHkodGhpcy5nZXRfaW50ZXJmYWNl
X29iamVjdCgpLCAicHJvdG90eXBlIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaW50
ZXJmYWNlICInICsgdGhpcy5uYW1lICsgJyIgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgInBy
b3RvdHlwZSInKTsKLSAgICAgICAgdmFyIGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKHNlbGZbdGhpcy5uYW1lXSwgInByb3RvdHlwZSIpOworICAgICAgICB2YXIgZGVzYyA9
IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodGhpcy5nZXRfaW50ZXJmYWNlX29iamVj
dCgpLCAicHJvdG90eXBlIik7CiAgICAgICAgIGFzc2VydF9mYWxzZSgiZ2V0IiBpbiBkZXNjLCB0
aGlzLm5hbWUgKyAiLnByb3RvdHlwZSBzaG91bGQgbm90IGhhdmUgYSBnZXR0ZXIiKTsKICAgICAg
ICAgYXNzZXJ0X2ZhbHNlKCJzZXQiIGluIGRlc2MsIHRoaXMubmFtZSArICIucHJvdG90eXBlIHNo
b3VsZCBub3QgaGF2ZSBhIHNldHRlciIpOwogICAgICAgICBhc3NlcnRfZmFsc2UoZGVzYy53cml0
YWJsZSwgdGhpcy5uYW1lICsgIi5wcm90b3R5cGUgc2hvdWxkIG5vdCBiZSB3cml0YWJsZSIpOwpA
QCAtMTc1NCwzOCArMTg5NywzOSBAQCBJZGxJbnRlcmZhY2UucHJvdG90eXBlLnRlc3Rfc2VsZiA9
IGZ1bmN0aW9uKCkKICAgICAgICAgLy8gICAgIG9iamVjdCAlRXJyb3JQcm90b3R5cGUlLiIKICAg
ICAgICAgLy8KICAgICAgICAgaWYgKHRoaXMubmFtZSA9PT0gIldpbmRvdyIpIHsKLSAgICAgICAg
ICAgIGFzc2VydF9jbGFzc19zdHJpbmcoT2JqZWN0LmdldFByb3RvdHlwZU9mKHNlbGZbdGhpcy5u
YW1lXS5wcm90b3R5cGUpLAorICAgICAgICAgICAgYXNzZXJ0X2NsYXNzX3N0cmluZyhPYmplY3Qu
Z2V0UHJvdG90eXBlT2YodGhpcy5nZXRfaW50ZXJmYWNlX29iamVjdCgpLnByb3RvdHlwZSksCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdXaW5kb3dQcm9wZXJ0aWVzJywKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0NsYXNzIG5hbWUgZm9yIHByb3RvdHlwZSBvZiBX
aW5kb3cnICsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy5wcm90b3R5cGUgaXMg
bm90ICJXaW5kb3dQcm9wZXJ0aWVzIicpOwogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAg
dmFyIGluaGVyaXRfaW50ZXJmYWNlLCBpbmhlcml0X2ludGVyZmFjZV9oYXNfaW50ZXJmYWNlX29i
amVjdDsKKyAgICAgICAgICAgIHZhciBpbmhlcml0X2ludGVyZmFjZSwgaW5oZXJpdF9pbnRlcmZh
Y2VfaW50ZXJmYWNlX29iamVjdDsKICAgICAgICAgICAgIGlmICh0aGlzLmJhc2UpIHsKICAgICAg
ICAgICAgICAgICBpbmhlcml0X2ludGVyZmFjZSA9IHRoaXMuYmFzZTsKLSAgICAgICAgICAgICAg
ICBpbmhlcml0X2ludGVyZmFjZV9oYXNfaW50ZXJmYWNlX29iamVjdCA9Ci0gICAgICAgICAgICAg
ICAgICAgICF0aGlzLmFycmF5Ci0gICAgICAgICAgICAgICAgICAgICAgICAgLm1lbWJlcnNbaW5o
ZXJpdF9pbnRlcmZhY2VdCi0gICAgICAgICAgICAgICAgICAgICAgICAgLmhhc19leHRlbmRlZF9h
dHRyaWJ1dGUoIk5vSW50ZXJmYWNlT2JqZWN0Iik7CisgICAgICAgICAgICAgICAgdmFyIHBhcmVu
dCA9IHRoaXMuYXJyYXkubWVtYmVyc1tpbmhlcml0X2ludGVyZmFjZV07CisgICAgICAgICAgICAg
ICAgaWYgKCFwYXJlbnQuaGFzX2V4dGVuZGVkX2F0dHJpYnV0ZSgiTm9JbnRlcmZhY2VPYmplY3Qi
KSkgeworICAgICAgICAgICAgICAgICAgICBwYXJlbnQuYXNzZXJ0X2ludGVyZmFjZV9vYmplY3Rf
ZXhpc3RzKCk7CisgICAgICAgICAgICAgICAgICAgIGluaGVyaXRfaW50ZXJmYWNlX2ludGVyZmFj
ZV9vYmplY3QgPSBwYXJlbnQuZ2V0X2ludGVyZmFjZV9vYmplY3QoKTsKKyAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMubmFtZSA9PT0gIkRPTUV4Y2VwdGlvbiIp
IHsKICAgICAgICAgICAgICAgICBpbmhlcml0X2ludGVyZmFjZSA9ICdFcnJvcic7Ci0gICAgICAg
ICAgICAgICAgaW5oZXJpdF9pbnRlcmZhY2VfaGFzX2ludGVyZmFjZV9vYmplY3QgPSB0cnVlOwor
ICAgICAgICAgICAgICAgIGluaGVyaXRfaW50ZXJmYWNlX2ludGVyZmFjZV9vYmplY3QgPSBzZWxm
LkVycm9yOwogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICBpbmhlcml0X2lu
dGVyZmFjZSA9ICdPYmplY3QnOwotICAgICAgICAgICAgICAgIGluaGVyaXRfaW50ZXJmYWNlX2hh
c19pbnRlcmZhY2Vfb2JqZWN0ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBpbmhlcml0X2ludGVy
ZmFjZV9pbnRlcmZhY2Vfb2JqZWN0ID0gc2VsZi5PYmplY3Q7CiAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICBpZiAoaW5oZXJpdF9pbnRlcmZhY2VfaGFzX2ludGVyZmFjZV9vYmplY3QpIHsKLSAg
ICAgICAgICAgICAgICBhc3NlcnRfb3duX3Byb3BlcnR5KHNlbGYsIGluaGVyaXRfaW50ZXJmYWNl
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Nob3VsZCBpbmhlcml0IGZy
b20gJyArIGluaGVyaXRfaW50ZXJmYWNlICsgJywgYnV0IHNlbGYgaGFzIG5vIHN1Y2ggcHJvcGVy
dHknKTsKLSAgICAgICAgICAgICAgICBhc3NlcnRfb3duX3Byb3BlcnR5KHNlbGZbaW5oZXJpdF9p
bnRlcmZhY2VdLCAncHJvdG90eXBlJywKKyAgICAgICAgICAgIGlmIChpbmhlcml0X2ludGVyZmFj
ZV9pbnRlcmZhY2Vfb2JqZWN0KSB7CisgICAgICAgICAgICAgICAgYXNzZXJ0X25vdF9lcXVhbHMo
aW5oZXJpdF9pbnRlcmZhY2VfaW50ZXJmYWNlX29iamVjdCwgdW5kZWZpbmVkLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICdzaG91bGQgaW5oZXJpdCBmcm9tICcgKyBpbmhlcml0
X2ludGVyZmFjZSArICcsIGJ1dCB0aGVyZSBpcyBubyBzdWNoIHByb3BlcnR5Jyk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0X293bl9wcm9wZXJ0eShpbmhlcml0X2ludGVyZmFjZV9pbnRlcmZhY2Vf
b2JqZWN0LCAncHJvdG90eXBlJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICdzaG91bGQgaW5oZXJpdCBmcm9tICcgKyBpbmhlcml0X2ludGVyZmFjZSArICcsIGJ1dCB0aGF0
IG9iamVjdCBoYXMgbm8gInByb3RvdHlwZSIgcHJvcGVydHknKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnRfZXF1YWxzKE9iamVjdC5nZXRQcm90b3R5cGVPZihzZWxmW3RoaXMubmFtZV0ucHJvdG90
eXBlKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGZbaW5oZXJpdF9pbnRlcmZh
Y2VdLnByb3RvdHlwZSwKKyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKE9iamVjdC5nZXRQ
cm90b3R5cGVPZih0aGlzLmdldF9pbnRlcmZhY2Vfb2JqZWN0KCkucHJvdG90eXBlKSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGluaGVyaXRfaW50ZXJmYWNlX2ludGVyZmFjZV9vYmpl
Y3QucHJvdG90eXBlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Byb3RvdHlwZSBv
ZiAnICsgdGhpcy5uYW1lICsgJy5wcm90b3R5cGUgaXMgbm90ICcgKyBpbmhlcml0X2ludGVyZmFj
ZSArICcucHJvdG90eXBlJyk7CiAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAg
IC8vIFdlIGNhbid0IHRlc3QgdGhhdCB3ZSBnZXQgdGhlIGNvcnJlY3Qgb2JqZWN0LCBiZWNhdXNl
IHRoaXMgaXMgdGhlCiAgICAgICAgICAgICAgICAgLy8gb25seSB3YXkgdG8gZ2V0IG91ciBoYW5k
cyBvbiBpdC4gV2Ugb25seSB0ZXN0IHRoYXQgaXRzIGNsYXNzCiAgICAgICAgICAgICAgICAgLy8g
c3RyaW5nLCBhdCBsZWFzdCwgaXMgY29ycmVjdC4KLSAgICAgICAgICAgICAgICBhc3NlcnRfY2xh
c3Nfc3RyaW5nKE9iamVjdC5nZXRQcm90b3R5cGVPZihzZWxmW3RoaXMubmFtZV0ucHJvdG90eXBl
KSwKKyAgICAgICAgICAgICAgICBhc3NlcnRfY2xhc3Nfc3RyaW5nKE9iamVjdC5nZXRQcm90b3R5
cGVPZih0aGlzLmdldF9pbnRlcmZhY2Vfb2JqZWN0KCkucHJvdG90eXBlKSwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGluaGVyaXRfaW50ZXJmYWNlICsgJ1Byb3RvdHlwZScs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnQ2xhc3MgbmFtZSBmb3IgcHJv
dG90eXBlIG9mICcgKyB0aGlzLm5hbWUgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgJy5wcm90b3R5cGUgaXMgbm90ICInICsgaW5oZXJpdF9pbnRlcmZhY2UgKyAnUHJvdG90
eXBlIicpOwpAQCAtMTc5MywyMCArMTkzNywyMCBAQCBJZGxJbnRlcmZhY2UucHJvdG90eXBlLnRl
c3Rfc2VsZiA9IGZ1bmN0aW9uKCkKICAgICAgICAgfQogCiAgICAgICAgIC8vICJUaGUgY2xhc3Mg
c3RyaW5nIG9mIGFuIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IGlzIHRoZQotICAgICAgICAv
LyBjb25jYXRlbmF0aW9uIG9mIHRoZSBpbnRlcmZhY2XigJlzIGlkZW50aWZpZXIgYW5kIHRoZSBz
dHJpbmcKKyAgICAgICAgLy8gY29uY2F0ZW5hdGlvbiBvZiB0aGUgaW50ZXJmYWNl4oCZcyBxdWFs
aWZpZWQgaWRlbnRpZmllciBhbmQgdGhlIHN0cmluZwogICAgICAgICAvLyDigJxQcm90b3R5cGXi
gJ0uIgogCiAgICAgICAgIC8vIFNraXAgdGhlc2UgdGVzdHMgZm9yIG5vdyBkdWUgdG8gYSBzcGVj
aWZpY2F0aW9uIGlzc3VlIGFib3V0CiAgICAgICAgIC8vIHByb3RvdHlwZSBuYW1lLgogICAgICAg
ICAvLyBodHRwczovL3d3dy53My5vcmcvQnVncy9QdWJsaWMvc2hvd19idWcuY2dpP2lkPTI4MjQ0
CiAKLSAgICAgICAgLy8gYXNzZXJ0X2NsYXNzX3N0cmluZyhzZWxmW3RoaXMubmFtZV0ucHJvdG90
eXBlLCB0aGlzLm5hbWUgKyAiUHJvdG90eXBlIiwKKyAgICAgICAgLy8gYXNzZXJ0X2NsYXNzX3N0
cmluZyh0aGlzLmdldF9pbnRlcmZhY2Vfb2JqZWN0KCkucHJvdG90eXBlLCB0aGlzLmdldF9xdWFs
aWZpZWRfbmFtZSgpICsgIlByb3RvdHlwZSIsCiAgICAgICAgIC8vICAgICAgICAgICAgICAgICAg
ICAgImNsYXNzIHN0cmluZyBvZiAiICsgdGhpcy5uYW1lICsgIi5wcm90b3R5cGUiKTsKIAogICAg
ICAgICAvLyBTdHJpbmcoKSBzaG91bGQgZW5kIHVwIGNhbGxpbmcge30udG9TdHJpbmcgaWYgbm90
aGluZyBkZWZpbmVzIGEKICAgICAgICAgLy8gc3RyaW5naWZpZXIuCiAgICAgICAgIGlmICghdGhp
cy5oYXNfc3RyaW5naWZpZXIoKSkgewotICAgICAgICAgICAgLy8gYXNzZXJ0X2VxdWFscyhTdHJp
bmcoc2VsZlt0aGlzLm5hbWVdLnByb3RvdHlwZSksICJbb2JqZWN0ICIgKyB0aGlzLm5hbWUgKyAi
UHJvdG90eXBlXSIsCisgICAgICAgICAgICAvLyBhc3NlcnRfZXF1YWxzKFN0cmluZyh0aGlzLmdl
dF9pbnRlcmZhY2Vfb2JqZWN0KCkucHJvdG90eXBlKSwgIltvYmplY3QgIiArIHRoaXMuZ2V0X3F1
YWxpZmllZF9uYW1lKCkgKyAiUHJvdG90eXBlXSIsCiAgICAgICAgICAgICAvLyAgICAgICAgICJT
dHJpbmcoIiArIHRoaXMubmFtZSArICIucHJvdG90eXBlKSIpOwogICAgICAgICB9CiAgICAgfS5i
aW5kKHRoaXMpLCB0aGlzLm5hbWUgKyAiIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0
aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0Iik7CkBAIC0xODE4LDcgKzE5NjIsNyBA
QCBJZGxJbnRlcmZhY2UucHJvdG90eXBlLnRlc3Rfc2VsZiA9IGZ1bmN0aW9uKCkKICAgICAvLyBw
cm90b3R5cGUgZXhvdGljIG9iamVjdC4iCiAgICAgLy8gaHR0cHM6Ly9oZXljYW0uZ2l0aHViLmlv
L3dlYmlkbC8jaW50ZXJmYWNlLXByb3RvdHlwZS1vYmplY3QKICAgICBpZiAodGhpcy5pc19nbG9i
YWwoKSkgewotICAgICAgICB0aGlzLnRlc3RfaW1tdXRhYmxlX3Byb3RvdHlwZSgiaW50ZXJmYWNl
IHByb3RvdHlwZSBvYmplY3QiLCBzZWxmW3RoaXMubmFtZV0ucHJvdG90eXBlKTsKKyAgICAgICAg
dGhpcy50ZXN0X2ltbXV0YWJsZV9wcm90b3R5cGUoImludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0
IiwgdGhpcy5nZXRfaW50ZXJmYWNlX29iamVjdCgpLnByb3RvdHlwZSk7CiAgICAgfQogCiAgICAg
c3Vic2V0VGVzdEJ5S2V5KHRoaXMubmFtZSwgdGVzdCwgZnVuY3Rpb24oKQpAQCAtMTgyNywxNiAr
MTk3MSwxNSBAQCBJZGxJbnRlcmZhY2UucHJvdG90eXBlLnRlc3Rfc2VsZiA9IGZ1bmN0aW9uKCkK
ICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIGFzc2VydF9vd25fcHJv
cGVydHkoc2VsZiwgdGhpcy5uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzZWxm
IGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICIgKyBmb3JtYXRfdmFsdWUodGhpcy5uYW1lKSk7
CisgICAgICAgIHRoaXMuYXNzZXJ0X2ludGVyZmFjZV9vYmplY3RfZXhpc3RzKCk7CiAKICAgICAg
ICAgaWYgKHRoaXMuaXNfY2FsbGJhY2soKSkgewotICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKCJw
cm90b3R5cGUiIGluIHNlbGZbdGhpcy5uYW1lXSwKKyAgICAgICAgICAgIGFzc2VydF9mYWxzZSgi
cHJvdG90eXBlIiBpbiB0aGlzLmdldF9pbnRlcmZhY2Vfb2JqZWN0KCksCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgdGhpcy5uYW1lICsgJyBzaG91bGQgbm90IGhhdmUgYSAicHJvdG90eXBlIiBw
cm9wZXJ0eScpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAgICAgYXNz
ZXJ0X293bl9wcm9wZXJ0eShzZWxmW3RoaXMubmFtZV0sICJwcm90b3R5cGUiLAorICAgICAgICBh
c3NlcnRfb3duX3Byb3BlcnR5KHRoaXMuZ2V0X2ludGVyZmFjZV9vYmplY3QoKSwgInByb3RvdHlw
ZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ludGVyZmFjZSAiJyArIHRoaXMubmFt
ZSArICciIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJwcm90b3R5cGUiJyk7CiAKICAgICAg
ICAgLy8gIklmIHRoZSBbTm9JbnRlcmZhY2VPYmplY3RdIGV4dGVuZGVkIGF0dHJpYnV0ZSB3YXMg
bm90IHNwZWNpZmllZCBvbgpAQCAtMTg0NCwxNSArMTk4NywxNSBAQCBJZGxJbnRlcmZhY2UucHJv
dG90eXBlLnRlc3Rfc2VsZiA9IGZ1bmN0aW9uKCkKICAgICAgICAgLy8gcHJvcGVydHkgbmFtZWQg
4oCcY29uc3RydWN0b3LigJ0gd2l0aCBhdHRyaWJ1dGVzIHsgW1tXcml0YWJsZV1dOiB0cnVlLAog
ICAgICAgICAvLyBbW0VudW1lcmFibGVdXTogZmFsc2UsIFtbQ29uZmlndXJhYmxlXV06IHRydWUg
fSB3aG9zZSB2YWx1ZSBpcyBhCiAgICAgICAgIC8vIHJlZmVyZW5jZSB0byB0aGUgaW50ZXJmYWNl
IG9iamVjdCBmb3IgdGhlIGludGVyZmFjZS4iCi0gICAgICAgIGFzc2VydF9vd25fcHJvcGVydHko
c2VsZlt0aGlzLm5hbWVdLnByb3RvdHlwZSwgImNvbnN0cnVjdG9yIiwKKyAgICAgICAgYXNzZXJ0
X293bl9wcm9wZXJ0eSh0aGlzLmdldF9pbnRlcmZhY2Vfb2JqZWN0KCkucHJvdG90eXBlLCAiY29u
c3RydWN0b3IiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubmFtZSArICcucHJv
dG90eXBlIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJjb25zdHJ1Y3RvciInKTsKLSAgICAg
ICAgdmFyIGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHNlbGZbdGhpcy5u
YW1lXS5wcm90b3R5cGUsICJjb25zdHJ1Y3RvciIpOworICAgICAgICB2YXIgZGVzYyA9IE9iamVj
dC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodGhpcy5nZXRfaW50ZXJmYWNlX29iamVjdCgpLnBy
b3RvdHlwZSwgImNvbnN0cnVjdG9yIik7CiAgICAgICAgIGFzc2VydF9mYWxzZSgiZ2V0IiBpbiBk
ZXNjLCB0aGlzLm5hbWUgKyAiLnByb3RvdHlwZS5jb25zdHJ1Y3RvciBzaG91bGQgbm90IGhhdmUg
YSBnZXR0ZXIiKTsKICAgICAgICAgYXNzZXJ0X2ZhbHNlKCJzZXQiIGluIGRlc2MsIHRoaXMubmFt
ZSArICIucHJvdG90eXBlLmNvbnN0cnVjdG9yIHNob3VsZCBub3QgaGF2ZSBhIHNldHRlciIpOwog
ICAgICAgICBhc3NlcnRfdHJ1ZShkZXNjLndyaXRhYmxlLCB0aGlzLm5hbWUgKyAiLnByb3RvdHlw
ZS5jb25zdHJ1Y3RvciBzaG91bGQgYmUgd3JpdGFibGUiKTsKICAgICAgICAgYXNzZXJ0X2ZhbHNl
KGRlc2MuZW51bWVyYWJsZSwgdGhpcy5uYW1lICsgIi5wcm90b3R5cGUuY29uc3RydWN0b3Igc2hv
dWxkIG5vdCBiZSBlbnVtZXJhYmxlIik7CiAgICAgICAgIGFzc2VydF90cnVlKGRlc2MuY29uZmln
dXJhYmxlLCB0aGlzLm5hbWUgKyAiLnByb3RvdHlwZS5jb25zdHJ1Y3RvciBzaG91bGQgYmUgY29u
ZmlndXJhYmxlIik7Ci0gICAgICAgIGFzc2VydF9lcXVhbHMoc2VsZlt0aGlzLm5hbWVdLnByb3Rv
dHlwZS5jb25zdHJ1Y3Rvciwgc2VsZlt0aGlzLm5hbWVdLAorICAgICAgICBhc3NlcnRfZXF1YWxz
KHRoaXMuZ2V0X2ludGVyZmFjZV9vYmplY3QoKS5wcm90b3R5cGUuY29uc3RydWN0b3IsIHRoaXMu
Z2V0X2ludGVyZmFjZV9vYmplY3QoKSwKICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm5hbWUg
KyAnLnByb3RvdHlwZS5jb25zdHJ1Y3RvciBpcyBub3QgdGhlIHNhbWUgb2JqZWN0IGFzICcgKyB0
aGlzLm5hbWUpOwogICAgIH0uYmluZCh0aGlzKSwgdGhpcy5uYW1lICsgJyBpbnRlcmZhY2U6IGV4
aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdFwncyAi
Y29uc3RydWN0b3IiIHByb3BlcnR5Jyk7CiAKQEAgLTE4NjMsMTYgKzIwMDYsMTUgQEAgSWRsSW50
ZXJmYWNlLnByb3RvdHlwZS50ZXN0X3NlbGYgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgIH0KIAotICAgICAgICBhc3NlcnRfb3duX3Byb3BlcnR5KHNlbGYsIHRoaXMu
bmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2VsZiBkb2VzIG5vdCBoYXZlIG93
biBwcm9wZXJ0eSAiICsgZm9ybWF0X3ZhbHVlKHRoaXMubmFtZSkpOworICAgICAgICB0aGlzLmFz
c2VydF9pbnRlcmZhY2Vfb2JqZWN0X2V4aXN0cygpOwogCiAgICAgICAgIGlmICh0aGlzLmlzX2Nh
bGxiYWNrKCkpIHsKLSAgICAgICAgICAgIGFzc2VydF9mYWxzZSgicHJvdG90eXBlIiBpbiBzZWxm
W3RoaXMubmFtZV0sCisgICAgICAgICAgICBhc3NlcnRfZmFsc2UoInByb3RvdHlwZSIgaW4gdGhp
cy5nZXRfaW50ZXJmYWNlX29iamVjdCgpLAogICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMu
bmFtZSArICcgc2hvdWxkIG5vdCBoYXZlIGEgInByb3RvdHlwZSIgcHJvcGVydHknKTsKICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIGFzc2VydF9vd25fcHJvcGVydHko
c2VsZlt0aGlzLm5hbWVdLCAicHJvdG90eXBlIiwKKyAgICAgICAgYXNzZXJ0X293bl9wcm9wZXJ0
eSh0aGlzLmdldF9pbnRlcmZhY2Vfb2JqZWN0KCksICJwcm90b3R5cGUiLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICdpbnRlcmZhY2UgIicgKyB0aGlzLm5hbWUgKyAnIiBkb2VzIG5vdCBo
YXZlIG93biBwcm9wZXJ0eSAicHJvdG90eXBlIicpOwogCiAgICAgICAgIC8vIElmIHRoZSBpbnRl
cmZhY2UgaGFzIGFueSBtZW1iZXIgZGVjbGFyZWQgd2l0aCB0aGUgW1Vuc2NvcGFibGVdIGV4dGVu
ZGVkCkBAIC0xODgxLDcgKzIwMjMsNyBAQCBJZGxJbnRlcmZhY2UucHJvdG90eXBlLnRlc3Rfc2Vs
ZiA9IGZ1bmN0aW9uKCkKICAgICAgICAgLy8geyBbW1dyaXRhYmxlXV06IGZhbHNlLCBbW0VudW1l
cmFibGVdXTogZmFsc2UsIFtbQ29uZmlndXJhYmxlXV06IHRydWUgfSwKICAgICAgICAgLy8gYW5k
IHdob3NlIHZhbHVlIGlzIGFuIG9iamVjdCBjcmVhdGVkIGFzIGZvbGxvd3MuLi4KICAgICAgICAg
dmFyIHVuc2NvcGFibGVzID0gdGhpcy5nZXRfdW5zY29wYWJsZXMoKS5tYXAobSA9PiBtLm5hbWUp
OwotICAgICAgICB2YXIgcHJvdG8gPSBzZWxmW3RoaXMubmFtZV0ucHJvdG90eXBlOworICAgICAg
ICB2YXIgcHJvdG8gPSB0aGlzLmdldF9pbnRlcmZhY2Vfb2JqZWN0KCkucHJvdG90eXBlOwogICAg
ICAgICBpZiAodW5zY29wYWJsZXMubGVuZ3RoICE9IDApIHsKICAgICAgICAgICAgIGFzc2VydF9v
d25fcHJvcGVydHkoCiAgICAgICAgICAgICAgICAgcHJvdG8sIFN5bWJvbC51bnNjb3BhYmxlcywK
QEAgLTE5MTIsMTYgKzIwNTQsMTQgQEAgSWRsSW50ZXJmYWNlLnByb3RvdHlwZS50ZXN0X3NlbGYg
PSBmdW5jdGlvbigpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5uYW1l
ICsgJy5wcm90b3R5cGVbU3ltYm9sLnVuc2NvcGFibGVzXSBoYXMgdW5leHBlY3RlZCBwcm9wZXJ0
eSAiJyArIHByb3AgKyAnIicpOwogICAgICAgICAgICAgfQogICAgICAgICB9IGVsc2UgewotICAg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHNl
bGZbdGhpcy5uYW1lXS5wcm90b3R5cGUsIFN5bWJvbC51bnNjb3BhYmxlcyksCisgICAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodGhpcy5nZXRf
aW50ZXJmYWNlX29iamVjdCgpLnByb3RvdHlwZSwgU3ltYm9sLnVuc2NvcGFibGVzKSwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdW5kZWZpbmVkLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICB0aGlzLm5hbWUgKyAnLnByb3RvdHlwZSBzaG91bGQgbm90IGhhdmUgQEB1bnNjb3BhYmxlcycp
OwogICAgICAgICB9CiAgICAgfS5iaW5kKHRoaXMpLCB0aGlzLm5hbWUgKyAnIGludGVyZmFjZTog
ZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0XCdz
IEBAdW5zY29wYWJsZXMgcHJvcGVydHknKTsKIH07CiAKLS8vQH0KIElkbEludGVyZmFjZS5wcm90
b3R5cGUudGVzdF9pbW11dGFibGVfcHJvdG90eXBlID0gZnVuY3Rpb24odHlwZSwgb2JqKQotLy9A
ewogewogICAgIGlmICh0eXBlb2YgT2JqZWN0LnNldFByb3RvdHlwZU9mICE9PSAiZnVuY3Rpb24i
KSB7CiAgICAgICAgIHJldHVybjsKQEAgLTIwMjMsOSArMjE2Myw3IEBAIElkbEludGVyZmFjZS5w
cm90b3R5cGUudGVzdF9pbW11dGFibGVfcHJvdG90eXBlID0gZnVuY3Rpb24odHlwZSwgb2JqKQog
ICAgICAgICAic2hvdWxkIHJldHVybiB0cnVlIik7CiB9OwogCi0vL0B9CiBJZGxJbnRlcmZhY2Uu
cHJvdG90eXBlLnRlc3RfbWVtYmVyX2NvbnN0ID0gZnVuY3Rpb24obWVtYmVyKQotLy9Aewogewog
ICAgIGlmICghdGhpcy5oYXNfY29uc3RhbnRzKCkpIHsKICAgICAgICAgdGhyb3cgbmV3IElkbEhh
cm5lc3NFcnJvcigiSW50ZXJuYWwgZXJyb3I6IHRlc3RfbWVtYmVyX2NvbnN0IGNhbGxlZCB3aXRo
b3V0IGFueSBjb25zdGFudHMiKTsKQEAgLTIwMzMsMjEgKzIxNzEsMjAgQEAgSWRsSW50ZXJmYWNl
LnByb3RvdHlwZS50ZXN0X21lbWJlcl9jb25zdCA9IGZ1bmN0aW9uKG1lbWJlcikKIAogICAgIHN1
YnNldFRlc3RCeUtleSh0aGlzLm5hbWUsIHRlc3QsIGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAg
IGFzc2VydF9vd25fcHJvcGVydHkoc2VsZiwgdGhpcy5uYW1lLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICIgKyBmb3JtYXRfdmFs
dWUodGhpcy5uYW1lKSk7CisgICAgICAgIHRoaXMuYXNzZXJ0X2ludGVyZmFjZV9vYmplY3RfZXhp
c3RzKCk7CiAKICAgICAgICAgLy8gIkZvciBlYWNoIGNvbnN0YW50IGRlZmluZWQgb24gYW4gaW50
ZXJmYWNlIEEsIHRoZXJlIG11c3QgYmUKICAgICAgICAgLy8gYSBjb3JyZXNwb25kaW5nIHByb3Bl
cnR5IG9uIHRoZSBpbnRlcmZhY2Ugb2JqZWN0LCBpZiBpdAogICAgICAgICAvLyBleGlzdHMuIgot
ICAgICAgICBhc3NlcnRfb3duX3Byb3BlcnR5KHNlbGZbdGhpcy5uYW1lXSwgbWVtYmVyLm5hbWUp
OworICAgICAgICBhc3NlcnRfb3duX3Byb3BlcnR5KHRoaXMuZ2V0X2ludGVyZmFjZV9vYmplY3Qo
KSwgbWVtYmVyLm5hbWUpOwogICAgICAgICAvLyAiVGhlIHZhbHVlIG9mIHRoZSBwcm9wZXJ0eSBp
cyB0aGF0IHdoaWNoIGlzIG9idGFpbmVkIGJ5CiAgICAgICAgIC8vIGNvbnZlcnRpbmcgdGhlIGNv
bnN0YW504oCZcyBJREwgdmFsdWUgdG8gYW4gRUNNQVNjcmlwdAogICAgICAgICAvLyB2YWx1ZS4i
Ci0gICAgICAgIGFzc2VydF9lcXVhbHMoc2VsZlt0aGlzLm5hbWVdW21lbWJlci5uYW1lXSwgY29u
c3RWYWx1ZShtZW1iZXIudmFsdWUpLAorICAgICAgICBhc3NlcnRfZXF1YWxzKHRoaXMuZ2V0X2lu
dGVyZmFjZV9vYmplY3QoKVttZW1iZXIubmFtZV0sIGNvbnN0VmFsdWUobWVtYmVyLnZhbHVlKSwK
ICAgICAgICAgICAgICAgICAgICAgICAicHJvcGVydHkgaGFzIHdyb25nIHZhbHVlIik7CiAgICAg
ICAgIC8vICJUaGUgcHJvcGVydHkgaGFzIGF0dHJpYnV0ZXMgeyBbW1dyaXRhYmxlXV06IGZhbHNl
LAogICAgICAgICAvLyBbW0VudW1lcmFibGVdXTogdHJ1ZSwgW1tDb25maWd1cmFibGVdXTogZmFs
c2UgfS4iCi0gICAgICAgIHZhciBkZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRv
cihzZWxmW3RoaXMubmFtZV0sIG1lbWJlci5uYW1lKTsKKyAgICAgICAgdmFyIGRlc2MgPSBPYmpl
Y3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRoaXMuZ2V0X2ludGVyZmFjZV9vYmplY3QoKSwg
bWVtYmVyLm5hbWUpOwogICAgICAgICBhc3NlcnRfZmFsc2UoImdldCIgaW4gZGVzYywgInByb3Bl
cnR5IHNob3VsZCBub3QgaGF2ZSBhIGdldHRlciIpOwogICAgICAgICBhc3NlcnRfZmFsc2UoInNl
dCIgaW4gZGVzYywgInByb3BlcnR5IHNob3VsZCBub3QgaGF2ZSBhIHNldHRlciIpOwogICAgICAg
ICBhc3NlcnRfZmFsc2UoZGVzYy53cml0YWJsZSwgInByb3BlcnR5IHNob3VsZCBub3QgYmUgd3Jp
dGFibGUiKTsKQEAgLTIwNTksMjIgKzIxOTYsMjEgQEAgSWRsSW50ZXJmYWNlLnByb3RvdHlwZS50
ZXN0X21lbWJlcl9jb25zdCA9IGZ1bmN0aW9uKG1lbWJlcikKICAgICAvLyBleGlzdCBvbiB0aGUg
aW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QuIgogICAgIHN1YnNldFRlc3RCeUtleSh0aGlzLm5h
bWUsIHRlc3QsIGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIGFzc2VydF9vd25fcHJvcGVydHko
c2VsZiwgdGhpcy5uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzZWxmIGRvZXMg
bm90IGhhdmUgb3duIHByb3BlcnR5ICIgKyBmb3JtYXRfdmFsdWUodGhpcy5uYW1lKSk7CisgICAg
ICAgIHRoaXMuYXNzZXJ0X2ludGVyZmFjZV9vYmplY3RfZXhpc3RzKCk7CiAKICAgICAgICAgaWYg
KHRoaXMuaXNfY2FsbGJhY2soKSkgewotICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKCJwcm90b3R5
cGUiIGluIHNlbGZbdGhpcy5uYW1lXSwKKyAgICAgICAgICAgIGFzc2VydF9mYWxzZSgicHJvdG90
eXBlIiBpbiB0aGlzLmdldF9pbnRlcmZhY2Vfb2JqZWN0KCksCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgdGhpcy5uYW1lICsgJyBzaG91bGQgbm90IGhhdmUgYSAicHJvdG90eXBlIiBwcm9wZXJ0
eScpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAgICAgYXNzZXJ0X293
bl9wcm9wZXJ0eShzZWxmW3RoaXMubmFtZV0sICJwcm90b3R5cGUiLAorICAgICAgICBhc3NlcnRf
b3duX3Byb3BlcnR5KHRoaXMuZ2V0X2ludGVyZmFjZV9vYmplY3QoKSwgInByb3RvdHlwZSIsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ludGVyZmFjZSAiJyArIHRoaXMubmFtZSArICci
IGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJwcm90b3R5cGUiJyk7CiAKLSAgICAgICAgYXNz
ZXJ0X293bl9wcm9wZXJ0eShzZWxmW3RoaXMubmFtZV0ucHJvdG90eXBlLCBtZW1iZXIubmFtZSk7
Ci0gICAgICAgIGFzc2VydF9lcXVhbHMoc2VsZlt0aGlzLm5hbWVdLnByb3RvdHlwZVttZW1iZXIu
bmFtZV0sIGNvbnN0VmFsdWUobWVtYmVyLnZhbHVlKSwKKyAgICAgICAgYXNzZXJ0X293bl9wcm9w
ZXJ0eSh0aGlzLmdldF9pbnRlcmZhY2Vfb2JqZWN0KCkucHJvdG90eXBlLCBtZW1iZXIubmFtZSk7
CisgICAgICAgIGFzc2VydF9lcXVhbHModGhpcy5nZXRfaW50ZXJmYWNlX29iamVjdCgpLnByb3Rv
dHlwZVttZW1iZXIubmFtZV0sIGNvbnN0VmFsdWUobWVtYmVyLnZhbHVlKSwKICAgICAgICAgICAg
ICAgICAgICAgICAicHJvcGVydHkgaGFzIHdyb25nIHZhbHVlIik7Ci0gICAgICAgIHZhciBkZXNj
ID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihzZWxmW3RoaXMubmFtZV0sIG1lbWJl
ci5uYW1lKTsKKyAgICAgICAgdmFyIGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yKHRoaXMuZ2V0X2ludGVyZmFjZV9vYmplY3QoKSwgbWVtYmVyLm5hbWUpOwogICAgICAgICBh
c3NlcnRfZmFsc2UoImdldCIgaW4gZGVzYywgInByb3BlcnR5IHNob3VsZCBub3QgaGF2ZSBhIGdl
dHRlciIpOwogICAgICAgICBhc3NlcnRfZmFsc2UoInNldCIgaW4gZGVzYywgInByb3BlcnR5IHNo
b3VsZCBub3QgaGF2ZSBhIHNldHRlciIpOwogICAgICAgICBhc3NlcnRfZmFsc2UoZGVzYy53cml0
YWJsZSwgInByb3BlcnR5IHNob3VsZCBub3QgYmUgd3JpdGFibGUiKTsKQEAgLTIwODQsOSArMjIy
MCw3IEBAIElkbEludGVyZmFjZS5wcm90b3R5cGUudGVzdF9tZW1iZXJfY29uc3QgPSBmdW5jdGlv
bihtZW1iZXIpCiB9OwogCiAKLS8vQH0KIElkbEludGVyZmFjZS5wcm90b3R5cGUudGVzdF9tZW1i
ZXJfYXR0cmlidXRlID0gZnVuY3Rpb24obWVtYmVyKQotLy9AewogICB7CiAgICAgaWYgKCFzaG91
bGRSdW5TdWJUZXN0KHRoaXMubmFtZSkpIHsKICAgICAgICAgcmV0dXJuOwpAQCAtMjA5OSwxMyAr
MjIzMywxMiBAQCBJZGxJbnRlcmZhY2UucHJvdG90eXBlLnRlc3RfbWVtYmVyX2F0dHJpYnV0ZSA9
IGZ1bmN0aW9uKG1lbWJlcikKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAg
ICAgIGFzc2VydF9vd25fcHJvcGVydHkoc2VsZiwgdGhpcy5uYW1lLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICJzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICIgKyBmb3JtYXRf
dmFsdWUodGhpcy5uYW1lKSk7Ci0gICAgICAgIGFzc2VydF9vd25fcHJvcGVydHkoc2VsZlt0aGlz
Lm5hbWVdLCAicHJvdG90eXBlIiwKKyAgICAgICAgdGhpcy5hc3NlcnRfaW50ZXJmYWNlX29iamVj
dF9leGlzdHMoKTsKKyAgICAgICAgYXNzZXJ0X293bl9wcm9wZXJ0eSh0aGlzLmdldF9pbnRlcmZh
Y2Vfb2JqZWN0KCksICJwcm90b3R5cGUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICdp
bnRlcmZhY2UgIicgKyB0aGlzLm5hbWUgKyAnIiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAi
cHJvdG90eXBlIicpOwogCi0gICAgICAgIGlmIChtZW1iZXJbInN0YXRpYyJdKSB7Ci0gICAgICAg
ICAgICBhc3NlcnRfb3duX3Byb3BlcnR5KHNlbGZbdGhpcy5uYW1lXSwgbWVtYmVyLm5hbWUsCisg
ICAgICAgIGlmIChtZW1iZXIuc3BlY2lhbCA9PT0gInN0YXRpYyIpIHsKKyAgICAgICAgICAgIGFz
c2VydF9vd25fcHJvcGVydHkodGhpcy5nZXRfaW50ZXJmYWNlX29iamVjdCgpLCBtZW1iZXIubmFt
ZSwKICAgICAgICAgICAgICAgICAiVGhlIGludGVyZmFjZSBvYmplY3QgbXVzdCBoYXZlIGEgcHJv
cGVydHkgIiArCiAgICAgICAgICAgICAgICAgZm9ybWF0X3ZhbHVlKG1lbWJlci5uYW1lKSk7CiAg
ICAgICAgICAgICBhX3Rlc3QuZG9uZSgpOwpAQCAtMjExOCw3ICsyMjUxLDcgQEAgSWRsSW50ZXJm
YWNlLnByb3RvdHlwZS50ZXN0X21lbWJlcl9hdHRyaWJ1dGUgPSBmdW5jdGlvbihtZW1iZXIpCiAg
ICAgICAgICAgICBhc3NlcnRfb3duX3Byb3BlcnR5KHNlbGYsIG1lbWJlci5uYW1lLAogICAgICAg
ICAgICAgICAgICJUaGUgZ2xvYmFsIG9iamVjdCBtdXN0IGhhdmUgYSBwcm9wZXJ0eSAiICsKICAg
ICAgICAgICAgICAgICBmb3JtYXRfdmFsdWUobWVtYmVyLm5hbWUpKTsKLSAgICAgICAgICAgIGFz
c2VydF9mYWxzZShtZW1iZXIubmFtZSBpbiBzZWxmW3RoaXMubmFtZV0ucHJvdG90eXBlLAorICAg
ICAgICAgICAgYXNzZXJ0X2ZhbHNlKG1lbWJlci5uYW1lIGluIHRoaXMuZ2V0X2ludGVyZmFjZV9v
YmplY3QoKS5wcm90b3R5cGUsCiAgICAgICAgICAgICAgICAgIlRoZSBwcm90b3R5cGUgb2JqZWN0
IHNob3VsZCBub3QgaGF2ZSBhIHByb3BlcnR5ICIgKwogICAgICAgICAgICAgICAgIGZvcm1hdF92
YWx1ZShtZW1iZXIubmFtZSkpOwogCkBAIC0yMTQ2LDQyICsyMjc5LDQwIEBAIElkbEludGVyZmFj
ZS5wcm90b3R5cGUudGVzdF9tZW1iZXJfYXR0cmlidXRlID0gZnVuY3Rpb24obWVtYmVyKQogICAg
ICAgICAgICAgLy8gc2luY2UgaXQgd2lsbCBjYWxsIGRvbmUoKSBvbiBhX3Rlc3QuCiAgICAgICAg
ICAgICB0aGlzLmRvX2ludGVyZmFjZV9hdHRyaWJ1dGVfYXNzZXJ0cyhzZWxmLCBtZW1iZXIsIGFf
dGVzdCk7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBhc3NlcnRfdHJ1ZShtZW1iZXIu
bmFtZSBpbiBzZWxmW3RoaXMubmFtZV0ucHJvdG90eXBlLAorICAgICAgICAgICAgYXNzZXJ0X3Ry
dWUobWVtYmVyLm5hbWUgaW4gdGhpcy5nZXRfaW50ZXJmYWNlX29iamVjdCgpLnByb3RvdHlwZSwK
ICAgICAgICAgICAgICAgICAiVGhlIHByb3RvdHlwZSBvYmplY3QgbXVzdCBoYXZlIGEgcHJvcGVy
dHkgIiArCiAgICAgICAgICAgICAgICAgZm9ybWF0X3ZhbHVlKG1lbWJlci5uYW1lKSk7CiAKICAg
ICAgICAgICAgIGlmICghbWVtYmVyLmhhc19leHRlbmRlZF9hdHRyaWJ1dGUoIkxlbmllbnRUaGlz
IikpIHsKICAgICAgICAgICAgICAgICBpZiAobWVtYmVyLmlkbFR5cGUuZ2VuZXJpYyAhPT0gIlBy
b21pc2UiKSB7CiAgICAgICAgICAgICAgICAgICAgIGFzc2VydF90aHJvd3MobmV3IFR5cGVFcnJv
cigpLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHNlbGZbdGhpcy5uYW1l
XS5wcm90b3R5cGVbbWVtYmVyLm5hbWVdOworICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5n
ZXRfaW50ZXJmYWNlX29iamVjdCgpLnByb3RvdHlwZVttZW1iZXIubmFtZV07CiAgICAgICAgICAg
ICAgICAgICAgIH0uYmluZCh0aGlzKSwgImdldHRpbmcgcHJvcGVydHkgb24gcHJvdG90eXBlIG9i
amVjdCBtdXN0IHRocm93IFR5cGVFcnJvciIpOwogICAgICAgICAgICAgICAgICAgICAvLyBkb19p
bnRlcmZhY2VfYXR0cmlidXRlX2Fzc2VydHMgbXVzdCBiZSB0aGUgbGFzdCB0aGluZyB3ZQogICAg
ICAgICAgICAgICAgICAgICAvLyBkbywgc2luY2UgaXQgd2lsbCBjYWxsIGRvbmUoKSBvbiBhX3Rl
c3QuCi0gICAgICAgICAgICAgICAgICAgIHRoaXMuZG9faW50ZXJmYWNlX2F0dHJpYnV0ZV9hc3Nl
cnRzKHNlbGZbdGhpcy5uYW1lXS5wcm90b3R5cGUsIG1lbWJlciwgYV90ZXN0KTsKKyAgICAgICAg
ICAgICAgICAgICAgdGhpcy5kb19pbnRlcmZhY2VfYXR0cmlidXRlX2Fzc2VydHModGhpcy5nZXRf
aW50ZXJmYWNlX29iamVjdCgpLnByb3RvdHlwZSwgbWVtYmVyLCBhX3Rlc3QpOwogICAgICAgICAg
ICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgIHByb21pc2VfcmVqZWN0cyhhX3Rl
c3QsIG5ldyBUeXBlRXJyb3IoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHNlbGZbdGhpcy5uYW1lXS5wcm90b3R5cGVbbWVtYmVyLm5hbWVdKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXRfaW50ZXJmYWNlX29iamVjdCgpLnByb3RvdHlw
ZVttZW1iZXIubmFtZV0pCiAgICAgICAgICAgICAgICAgICAgICAgICAudGhlbihmdW5jdGlvbigp
IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBkb19pbnRlcmZhY2VfYXR0cmlidXRl
X2Fzc2VydHMgbXVzdCBiZSB0aGUgbGFzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v
IHRoaW5nIHdlIGRvLCBzaW5jZSBpdCB3aWxsIGNhbGwgZG9uZSgpIG9uIGFfdGVzdC4KLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRvX2ludGVyZmFjZV9hdHRyaWJ1dGVfYXNzZXJ0
cyhzZWxmW3RoaXMubmFtZV0ucHJvdG90eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHRoaXMuZG9faW50ZXJmYWNlX2F0dHJpYnV0ZV9hc3NlcnRzKHRoaXMuZ2V0X2ludGVyZmFjZV9v
YmplY3QoKS5wcm90b3R5cGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVtYmVyLCBhX3Rlc3QpOwogICAgICAgICAgICAg
ICAgICAgICAgICAgfS5iaW5kKHRoaXMpKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICB9IGVsc2UgewotICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2VsZlt0aGlzLm5hbWVd
LnByb3RvdHlwZVttZW1iZXIubmFtZV0sIHVuZGVmaW5lZCwKKyAgICAgICAgICAgICAgICBhc3Nl
cnRfZXF1YWxzKHRoaXMuZ2V0X2ludGVyZmFjZV9vYmplY3QoKS5wcm90b3R5cGVbbWVtYmVyLm5h
bWVdLCB1bmRlZmluZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZ2V0dGluZyBw
cm9wZXJ0eSBvbiBwcm90b3R5cGUgb2JqZWN0IG11c3QgcmV0dXJuIHVuZGVmaW5lZCIpOwogICAg
ICAgICAgICAgICAvLyBkb19pbnRlcmZhY2VfYXR0cmlidXRlX2Fzc2VydHMgbXVzdCBiZSB0aGUg
bGFzdCB0aGluZyB3ZSBkbywKICAgICAgICAgICAgICAgLy8gc2luY2UgaXQgd2lsbCBjYWxsIGRv
bmUoKSBvbiBhX3Rlc3QuCi0gICAgICAgICAgICAgIHRoaXMuZG9faW50ZXJmYWNlX2F0dHJpYnV0
ZV9hc3NlcnRzKHNlbGZbdGhpcy5uYW1lXS5wcm90b3R5cGUsIG1lbWJlciwgYV90ZXN0KTsKKyAg
ICAgICAgICAgICAgdGhpcy5kb19pbnRlcmZhY2VfYXR0cmlidXRlX2Fzc2VydHModGhpcy5nZXRf
aW50ZXJmYWNlX29iamVjdCgpLnByb3RvdHlwZSwgbWVtYmVyLCBhX3Rlc3QpOwogICAgICAgICAg
ICAgfQogICAgICAgICB9CiAgICAgfS5iaW5kKHRoaXMpKTsKIH07CiAKLS8vQH0KIElkbEludGVy
ZmFjZS5wcm90b3R5cGUudGVzdF9tZW1iZXJfb3BlcmF0aW9uID0gZnVuY3Rpb24obWVtYmVyKQot
Ly9AewogewogICAgIGlmICghc2hvdWxkUnVuU3ViVGVzdCh0aGlzLm5hbWUpKSB7CiAgICAgICAg
IHJldHVybjsKQEAgLTIyMDAsMTcgKzIzMzEsMTYgQEAgSWRsSW50ZXJmYWNlLnByb3RvdHlwZS50
ZXN0X21lbWJlcl9vcGVyYXRpb24gPSBmdW5jdGlvbihtZW1iZXIpCiAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgIH0KIAotICAgICAgICBhc3NlcnRfb3duX3Byb3BlcnR5KHNlbGYsIHRoaXMu
bmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2VsZiBkb2VzIG5vdCBoYXZlIG93
biBwcm9wZXJ0eSAiICsgZm9ybWF0X3ZhbHVlKHRoaXMubmFtZSkpOworICAgICAgICB0aGlzLmFz
c2VydF9pbnRlcmZhY2Vfb2JqZWN0X2V4aXN0cygpOwogCiAgICAgICAgIGlmICh0aGlzLmlzX2Nh
bGxiYWNrKCkpIHsKLSAgICAgICAgICAgIGFzc2VydF9mYWxzZSgicHJvdG90eXBlIiBpbiBzZWxm
W3RoaXMubmFtZV0sCisgICAgICAgICAgICBhc3NlcnRfZmFsc2UoInByb3RvdHlwZSIgaW4gdGhp
cy5nZXRfaW50ZXJmYWNlX29iamVjdCgpLAogICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMu
bmFtZSArICcgc2hvdWxkIG5vdCBoYXZlIGEgInByb3RvdHlwZSIgcHJvcGVydHknKTsKICAgICAg
ICAgICAgIGFfdGVzdC5kb25lKCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAot
ICAgICAgICBhc3NlcnRfb3duX3Byb3BlcnR5KHNlbGZbdGhpcy5uYW1lXSwgInByb3RvdHlwZSIs
CisgICAgICAgIGFzc2VydF9vd25fcHJvcGVydHkodGhpcy5nZXRfaW50ZXJmYWNlX29iamVjdCgp
LCAicHJvdG90eXBlIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaW50ZXJmYWNlICIn
ICsgdGhpcy5uYW1lICsgJyIgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgInByb3RvdHlwZSIn
KTsKIAogICAgICAgICAvLyAiRm9yIGVhY2ggdW5pcXVlIGlkZW50aWZpZXIgb2YgYW4gZXhwb3Nl
ZCBvcGVyYXRpb24gZGVmaW5lZCBvbiB0aGUKQEAgLTIyMjQsMTAgKzIzNTQsMTAgQEAgSWRsSW50
ZXJmYWNlLnByb3RvdHlwZS50ZXN0X21lbWJlcl9vcGVyYXRpb24gPSBmdW5jdGlvbihtZW1iZXIp
CiAgICAgICAgIHZhciBtZW1iZXJIb2xkZXJPYmplY3Q7CiAgICAgICAgIC8vICIqIElmIHRoZSBv
cGVyYXRpb24gaXMgc3RhdGljLCB0aGVuIHRoZSBwcm9wZXJ0eSBleGlzdHMgb24gdGhlCiAgICAg
ICAgIC8vICAgIGludGVyZmFjZSBvYmplY3QuIgotICAgICAgICBpZiAobWVtYmVyWyJzdGF0aWMi
XSkgewotICAgICAgICAgICAgYXNzZXJ0X293bl9wcm9wZXJ0eShzZWxmW3RoaXMubmFtZV0sIG1l
bWJlci5uYW1lLAorICAgICAgICBpZiAobWVtYmVyLnNwZWNpYWwgPT09ICJzdGF0aWMiKSB7Cisg
ICAgICAgICAgICBhc3NlcnRfb3duX3Byb3BlcnR5KHRoaXMuZ2V0X2ludGVyZmFjZV9vYmplY3Qo
KSwgbWVtYmVyLm5hbWUsCiAgICAgICAgICAgICAgICAgICAgICJpbnRlcmZhY2Ugb2JqZWN0IG1p
c3Npbmcgc3RhdGljIG9wZXJhdGlvbiIpOwotICAgICAgICAgICAgbWVtYmVySG9sZGVyT2JqZWN0
ID0gc2VsZlt0aGlzLm5hbWVdOworICAgICAgICAgICAgbWVtYmVySG9sZGVyT2JqZWN0ID0gdGhp
cy5nZXRfaW50ZXJmYWNlX29iamVjdCgpOwogICAgICAgICAvLyAiKiBPdGhlcndpc2UsIFsuLi5d
IGlmIHRoZSBpbnRlcmZhY2Ugd2FzIGRlY2xhcmVkIHdpdGggdGhlIFtHbG9iYWxdCiAgICAgICAg
IC8vICAgIGV4dGVuZGVkIGF0dHJpYnV0ZSwgdGhlbiB0aGUgcHJvcGVydHkgZXhpc3RzCiAgICAg
ICAgIC8vICAgIG9uIGV2ZXJ5IG9iamVjdCB0aGF0IGltcGxlbWVudHMgdGhlIGludGVyZmFjZS4i
CkBAIC0yMjM4LDkgKzIzNjgsOSBAQCBJZGxJbnRlcmZhY2UucHJvdG90eXBlLnRlc3RfbWVtYmVy
X29wZXJhdGlvbiA9IGZ1bmN0aW9uKG1lbWJlcikKICAgICAgICAgLy8gIiogT3RoZXJ3aXNlLCB0
aGUgcHJvcGVydHkgZXhpc3RzIHNvbGVseSBvbiB0aGUgaW50ZXJmYWNl4oCZcwogICAgICAgICAv
LyAgICBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdC4iCiAgICAgICAgIH0gZWxzZSB7Ci0gICAg
ICAgICAgICBhc3NlcnRfb3duX3Byb3BlcnR5KHNlbGZbdGhpcy5uYW1lXS5wcm90b3R5cGUsIG1l
bWJlci5uYW1lLAorICAgICAgICAgICAgYXNzZXJ0X293bl9wcm9wZXJ0eSh0aGlzLmdldF9pbnRl
cmZhY2Vfb2JqZWN0KCkucHJvdG90eXBlLCBtZW1iZXIubmFtZSwKICAgICAgICAgICAgICAgICAg
ICAgImludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IG1pc3Npbmcgbm9uLXN0YXRpYyBvcGVyYXRp
b24iKTsKLSAgICAgICAgICAgIG1lbWJlckhvbGRlck9iamVjdCA9IHNlbGZbdGhpcy5uYW1lXS5w
cm90b3R5cGU7CisgICAgICAgICAgICBtZW1iZXJIb2xkZXJPYmplY3QgPSB0aGlzLmdldF9pbnRl
cmZhY2Vfb2JqZWN0KCkucHJvdG90eXBlOwogICAgICAgICB9CiAgICAgICAgIHRoaXMuZG9fbWVt
YmVyX3Vuc2NvcGFibGVfYXNzZXJ0cyhtZW1iZXIpOwogICAgICAgICB0aGlzLmRvX21lbWJlcl9v
cGVyYXRpb25fYXNzZXJ0cyhtZW1iZXJIb2xkZXJPYmplY3QsIG1lbWJlciwgYV90ZXN0KTsKQEAg
LTIyNTUsNyArMjM4NSw3IEBAIElkbEludGVyZmFjZS5wcm90b3R5cGUuZG9fbWVtYmVyX3Vuc2Nv
cGFibGVfYXNzZXJ0cyA9IGZ1bmN0aW9uKG1lbWJlcikKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IAotICAgIHZhciB1bnNjb3BhYmxlcyA9IHNlbGZbdGhpcy5uYW1lXS5wcm90b3R5cGVbU3ltYm9s
LnVuc2NvcGFibGVzXTsKKyAgICB2YXIgdW5zY29wYWJsZXMgPSB0aGlzLmdldF9pbnRlcmZhY2Vf
b2JqZWN0KCkucHJvdG90eXBlW1N5bWJvbC51bnNjb3BhYmxlc107CiAgICAgdmFyIHByb3AgPSBt
ZW1iZXIubmFtZTsKICAgICB2YXIgcHJvcERlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKHVuc2NvcGFibGVzLCBwcm9wKTsKICAgICBhc3NlcnRfZXF1YWxzKHR5cGVvZiBwcm9w
RGVzYywgIm9iamVjdCIsCkBAIC0yMjc0LDkgKzI0MDQsNyBAQCBJZGxJbnRlcmZhY2UucHJvdG90
eXBlLmRvX21lbWJlcl91bnNjb3BhYmxlX2Fzc2VydHMgPSBmdW5jdGlvbihtZW1iZXIpCiAgICAg
ICAgICAgICAgICAgICB0aGlzLm5hbWUgKyAnLnByb3RvdHlwZVtTeW1ib2wudW5zY29wYWJsZXNd
LicgKyBwcm9wICsgJyBtdXN0IGhhdmUgdGhlIHZhbHVlIGB0cnVlYCcpOwogfTsKIAotLy9AfQog
SWRsSW50ZXJmYWNlLnByb3RvdHlwZS5kb19tZW1iZXJfb3BlcmF0aW9uX2Fzc2VydHMgPSBmdW5j
dGlvbihtZW1iZXJIb2xkZXJPYmplY3QsIG1lbWJlciwgYV90ZXN0KQotLy9AewogewogICAgIHZh
ciBkb25lID0gYV90ZXN0LmRvbmUuYmluZChhX3Rlc3QpOwogICAgIHZhciBvcGVyYXRpb25VbmZv
cmdlYWJsZSA9IG1lbWJlci5pc1VuZm9yZ2VhYmxlOwpAQCAtMjMxOSw3ICsyNDQ3LDcgQEAgSWRs
SW50ZXJmYWNlLnByb3RvdHlwZS5kb19tZW1iZXJfb3BlcmF0aW9uX2Fzc2VydHMgPSBmdW5jdGlv
bihtZW1iZXJIb2xkZXJPYmplY3QKICAgICAvLyBjaGVjayBmb3IgZ2xvYmFscywgc2luY2Ugb3Ro
ZXJ3aXNlIHdlJ2xsIGludm9rZSB3aW5kb3cuY2xvc2UoKS4gIEFuZCB3ZQogICAgIC8vIGhhdmUg
dG8gc2tpcCB0aGlzIHRlc3QgZm9yIGFueXRoaW5nIHRoYXQgb24gdGhlIHByb3RvIGNoYWluIG9m
ICJzZWxmIiwKICAgICAvLyBzaW5jZSB0aGF0IGRvZXMgaW4gZmFjdCBoYXZlIGltcGxpY2l0LXRo
aXMgYmVoYXZpb3IuCi0gICAgaWYgKCFtZW1iZXJbInN0YXRpYyJdKSB7CisgICAgaWYgKG1lbWJl
ci5zcGVjaWFsICE9PSAic3RhdGljIikgewogICAgICAgICB2YXIgY2I7CiAgICAgICAgIGlmICgh
dGhpcy5pc19nbG9iYWwoKSAmJgogICAgICAgICAgICAgbWVtYmVySG9sZGVyT2JqZWN0W21lbWJl
ci5uYW1lXSAhPSBzZWxmW21lbWJlci5uYW1lXSkKQEAgLTIzNDMsMjQgKzI0NzEsNyBAQCBJZGxJ
bnRlcmZhY2UucHJvdG90eXBlLmRvX21lbWJlcl9vcGVyYXRpb25fYXNzZXJ0cyA9IGZ1bmN0aW9u
KG1lbWJlckhvbGRlck9iamVjdAogICAgIH0KIH0KIAotLy9AfQotSWRsSW50ZXJmYWNlLnByb3Rv
dHlwZS5hZGRfaXRlcmFibGVfbWVtYmVycyA9IGZ1bmN0aW9uKG1lbWJlcikKLS8vQHsKLXsKLSAg
ICB0aGlzLm1lbWJlcnMucHVzaChuZXcgSWRsSW50ZXJmYWNlTWVtYmVyKAotICAgICAgICB7IHR5
cGU6ICJvcGVyYXRpb24iLCBuYW1lOiAiZW50cmllcyIsIGlkbFR5cGU6ICJpdGVyYXRvciIsIGFy
Z3VtZW50czogW119KSk7Ci0gICAgdGhpcy5tZW1iZXJzLnB1c2gobmV3IElkbEludGVyZmFjZU1l
bWJlcigKLSAgICAgICAgeyB0eXBlOiAib3BlcmF0aW9uIiwgbmFtZTogImtleXMiLCBpZGxUeXBl
OiAiaXRlcmF0b3IiLCBhcmd1bWVudHM6IFtdfSkpOwotICAgIHRoaXMubWVtYmVycy5wdXNoKG5l
dyBJZGxJbnRlcmZhY2VNZW1iZXIoCi0gICAgICAgIHsgdHlwZTogIm9wZXJhdGlvbiIsIG5hbWU6
ICJ2YWx1ZXMiLCBpZGxUeXBlOiAiaXRlcmF0b3IiLCBhcmd1bWVudHM6IFtdfSkpOwotICAgIHRo
aXMubWVtYmVycy5wdXNoKG5ldyBJZGxJbnRlcmZhY2VNZW1iZXIoCi0gICAgICAgIHsgdHlwZTog
Im9wZXJhdGlvbiIsIG5hbWU6ICJmb3JFYWNoIiwgaWRsVHlwZTogInZvaWQiLAotICAgICAgICAg
IGFyZ3VtZW50czoKLSAgICAgICAgICBbeyBuYW1lOiAiY2FsbGJhY2siLCBpZGxUeXBlOiB7aWRs
VHlwZTogImZ1bmN0aW9uIn19LAotICAgICAgICAgICB7IG5hbWU6ICJ0aGlzVmFsdWUiLCBpZGxU
eXBlOiB7aWRsVHlwZTogImFueSJ9LCBvcHRpb25hbDogdHJ1ZX1dfSkpOwotfTsKLQotSWRsSW50
ZXJmYWNlLnByb3RvdHlwZS50ZXN0X3RvX2pzb25fb3BlcmF0aW9uID0gZnVuY3Rpb24obWVtYmVy
SG9sZGVyT2JqZWN0LCBtZW1iZXIpIHsKK0lkbEludGVyZmFjZS5wcm90b3R5cGUudGVzdF90b19q
c29uX29wZXJhdGlvbiA9IGZ1bmN0aW9uKGRlc2MsIG1lbWJlckhvbGRlck9iamVjdCwgbWVtYmVy
KSB7CiAgICAgdmFyIGluc3RhbmNlTmFtZSA9IG1lbWJlckhvbGRlck9iamVjdCAmJiBtZW1iZXJI
b2xkZXJPYmplY3QuY29uc3RydWN0b3IubmFtZQogICAgICAgICB8fCBtZW1iZXIubmFtZSArICIg
b2JqZWN0IjsKICAgICBpZiAobWVtYmVyLmhhc19leHRlbmRlZF9hdHRyaWJ1dGUoIkRlZmF1bHQi
KSkgewpAQCAtMjM3Niw0NiArMjQ4Nyw0MyBAQCBJZGxJbnRlcmZhY2UucHJvdG90eXBlLnRlc3Rf
dG9fanNvbl9vcGVyYXRpb24gPSBmdW5jdGlvbihtZW1iZXJIb2xkZXJPYmplY3QsIG1lbQogICAg
ICAgICAgICAgICAgIHRoaXMuYXJyYXkuYXNzZXJ0X3R5cGVfaXMoanNvbltrXSwgdHlwZSk7CiAg
ICAgICAgICAgICAgICAgZGVsZXRlIGpzb25ba107CiAgICAgICAgICAgICB9LCB0aGlzKTsKLSAg
ICAgICAgfS5iaW5kKHRoaXMpLCAiVGVzdCBkZWZhdWx0IHRvSlNPTiBvcGVyYXRpb24gb2YgIiAr
IGluc3RhbmNlTmFtZSk7CisgICAgICAgIH0uYmluZCh0aGlzKSwgdGhpcy5uYW1lICsgIiBpbnRl
cmZhY2U6IGRlZmF1bHQgdG9KU09OIG9wZXJhdGlvbiBvbiAiICsgZGVzYyk7CiAgICAgfSBlbHNl
IHsKICAgICAgICAgc3Vic2V0VGVzdEJ5S2V5KHRoaXMubmFtZSwgdGVzdCwgZnVuY3Rpb24oKSB7
CiAgICAgICAgICAgICBhc3NlcnRfdHJ1ZSh0aGlzLmFycmF5LmlzX2pzb25fdHlwZShtZW1iZXIu
aWRsVHlwZSksIEpTT04uc3RyaW5naWZ5KG1lbWJlci5pZGxUeXBlKSArICIgaXMgbm90IGFuIGFw
cHJvcHJpYXRlIHJldHVybiB2YWx1ZSBmb3IgdGhlIHRvSlNPTiBvcGVyYXRpb24gb2YgIiArIGlu
c3RhbmNlTmFtZSk7CiAgICAgICAgICAgICB0aGlzLmFycmF5LmFzc2VydF90eXBlX2lzKG1lbWJl
ckhvbGRlck9iamVjdC50b0pTT04oKSwgbWVtYmVyLmlkbFR5cGUpOwotICAgICAgICB9LmJpbmQo
dGhpcyksICJUZXN0IHRvSlNPTiBvcGVyYXRpb24gb2YgIiArIGluc3RhbmNlTmFtZSk7CisgICAg
ICAgIH0uYmluZCh0aGlzKSwgdGhpcy5uYW1lICsgIiBpbnRlcmZhY2U6IHRvSlNPTiBvcGVyYXRp
b24gb24gIiArIGRlc2MpOwogICAgIH0KIH07CiAKLS8vQH0KIElkbEludGVyZmFjZS5wcm90b3R5
cGUudGVzdF9tZW1iZXJfaXRlcmFibGUgPSBmdW5jdGlvbihtZW1iZXIpCi0vL0B7CiB7Ci0gICAg
dmFyIGludGVyZmFjZU5hbWUgPSB0aGlzLm5hbWU7Ci0gICAgdmFyIGlzUGFpckl0ZXJhdG9yID0g
bWVtYmVyLmlkbFR5cGUubGVuZ3RoID09PSAyOwogICAgIHN1YnNldFRlc3RCeUtleSh0aGlzLm5h
bWUsIHRlc3QsIGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIHZhciBkZXNjcmlwdG9yID0gT2Jq
ZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihzZWxmW2ludGVyZmFjZU5hbWVdLnByb3RvdHlw
ZSwgU3ltYm9sLml0ZXJhdG9yKTsKLSAgICAgICAgYXNzZXJ0X3RydWUoZGVzY3JpcHRvci53cml0
YWJsZSwgInByb3BlcnR5IHNob3VsZCBiZSB3cml0YWJsZSIpOwotICAgICAgICBhc3NlcnRfdHJ1
ZShkZXNjcmlwdG9yLmNvbmZpZ3VyYWJsZSwgInByb3BlcnR5IHNob3VsZCBiZSBjb25maWd1cmFi
bGUiKTsKLSAgICAgICAgYXNzZXJ0X2ZhbHNlKGRlc2NyaXB0b3IuZW51bWVyYWJsZSwgInByb3Bl
cnR5IHNob3VsZCBub3QgYmUgZW51bWVyYWJsZSIpOwotICAgICAgICBhc3NlcnRfZXF1YWxzKHNl
bGZbaW50ZXJmYWNlTmFtZV0ucHJvdG90eXBlW1N5bWJvbC5pdGVyYXRvcl0ubmFtZSwgaXNQYWly
SXRlcmF0b3IgPyAiZW50cmllcyIgOiAidmFsdWVzIiwgIkBAaXRlcmF0b3IgZnVuY3Rpb24gZG9l
cyBub3QgaGF2ZSB0aGUgcmlnaHQgbmFtZSIpOwotICAgIH0sICJUZXN0aW5nIFN5bWJvbC5pdGVy
YXRvciBwcm9wZXJ0eSBvZiBpdGVyYWJsZSBpbnRlcmZhY2UgIiArIGludGVyZmFjZU5hbWUpOwot
Ci0gICAgaWYgKGlzUGFpckl0ZXJhdG9yKSB7Ci0gICAgICAgIHN1YnNldFRlc3RCeUtleSh0aGlz
Lm5hbWUsIHRlc3QsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzZWxm
W2ludGVyZmFjZU5hbWVdLnByb3RvdHlwZVtTeW1ib2wuaXRlcmF0b3JdLCBzZWxmW2ludGVyZmFj
ZU5hbWVdLnByb3RvdHlwZVsiZW50cmllcyJdLCAiZW50cmllcyBtZXRob2QgaXMgbm90IHRoZSBz
YW1lIGFzIEBAaXRlcmF0b3IiKTsKLSAgICAgICAgfSwgIlRlc3RpbmcgcGFpciBpdGVyYWJsZSBp
bnRlcmZhY2UgIiArIGludGVyZmFjZU5hbWUpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIHN1YnNl
dFRlc3RCeUtleSh0aGlzLm5hbWUsIHRlc3QsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgWyJl
bnRyaWVzIiwgImtleXMiLCAidmFsdWVzIiwgImZvckVhY2giLCBTeW1ib2wuSXRlcmF0b3JdLmZv
ckVhY2goZnVuY3Rpb24ocHJvcGVydHkpIHsKLSAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxz
KHNlbGZbaW50ZXJmYWNlTmFtZV0ucHJvdG90eXBlW3Byb3BlcnR5XSwgQXJyYXkucHJvdG90eXBl
W3Byb3BlcnR5XSwgcHJvcGVydHkgKyAiIGZ1bmN0aW9uIGlzIG5vdCB0aGUgc2FtZSBhcyBBcnJh
eSBvbmUiKTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9LCAiVGVzdGluZyB2YWx1ZSBpdGVy
YWJsZSBpbnRlcmZhY2UgIiArIGludGVyZmFjZU5hbWUpOwotICAgIH0KKyAgICAgICAgdmFyIGlz
UGFpckl0ZXJhdG9yID0gbWVtYmVyLmlkbFR5cGUubGVuZ3RoID09PSAyOworICAgICAgICB2YXIg
cHJvdG8gPSB0aGlzLmdldF9pbnRlcmZhY2Vfb2JqZWN0KCkucHJvdG90eXBlOworICAgICAgICB2
YXIgZGVzY3JpcHRvciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocHJvdG8sIFN5
bWJvbC5pdGVyYXRvcik7CisKKyAgICAgICAgYXNzZXJ0X3RydWUoZGVzY3JpcHRvci53cml0YWJs
ZSwgIkBAaXRlcmF0b3IgcHJvcGVydHkgc2hvdWxkIGJlIHdyaXRhYmxlIik7CisgICAgICAgIGFz
c2VydF90cnVlKGRlc2NyaXB0b3IuY29uZmlndXJhYmxlLCAiQEBpdGVyYXRvciBwcm9wZXJ0eSBz
aG91bGQgYmUgY29uZmlndXJhYmxlIik7CisgICAgICAgIGFzc2VydF9mYWxzZShkZXNjcmlwdG9y
LmVudW1lcmFibGUsICJAQGl0ZXJhdG9yIHByb3BlcnR5IHNob3VsZCBub3QgYmUgZW51bWVyYWJs
ZSIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHR5cGVvZiBkZXNjcmlwdG9yLnZhbHVlLCAiZnVu
Y3Rpb24iLCAiQEBpdGVyYXRvciBwcm9wZXJ0eSBzaG91bGQgYmUgYSBmdW5jdGlvbiIpOworICAg
ICAgICBhc3NlcnRfZXF1YWxzKGRlc2NyaXB0b3IudmFsdWUubGVuZ3RoLCAwLCAiQEBpdGVyYXRv
ciBmdW5jdGlvbiBvYmplY3QgbGVuZ3RoIHNob3VsZCBiZSAwIik7CisgICAgICAgIGFzc2VydF9l
cXVhbHMoZGVzY3JpcHRvci52YWx1ZS5uYW1lLCBpc1BhaXJJdGVyYXRvciA/ICJlbnRyaWVzIiA6
ICJ2YWx1ZXMiLCAiQEBpdGVyYXRvciBmdW5jdGlvbiBvYmplY3Qgc2hvdWxkIGhhdmUgdGhlIHJp
Z2h0IG5hbWUiKTsKKworICAgICAgICBpZiAoaXNQYWlySXRlcmF0b3IpIHsKKyAgICAgICAgICAg
IGFzc2VydF9lcXVhbHMocHJvdG9bImVudHJpZXMiXSwgcHJvdG9bU3ltYm9sLml0ZXJhdG9yXSwg
ImVudHJpZXMgbWV0aG9kIHNob3VsZCBiZSB0aGUgc2FtZSBhcyBAQGl0ZXJhdG9yIG1ldGhvZCIp
OworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhwcm90b1tTeW1i
b2wuaXRlcmF0b3JdLCBBcnJheS5wcm90b3R5cGVbU3ltYm9sLml0ZXJhdG9yXSwgIkBAaXRlcmF0
b3IgbWV0aG9kIHNob3VsZCBiZSB0aGUgc2FtZSBhcyBBcnJheSBwcm90b3R5cGUncyIpOworICAg
ICAgICAgICAgWyJlbnRyaWVzIiwgImtleXMiLCAidmFsdWVzIiwgImZvckVhY2giLCBTeW1ib2wu
aXRlcmF0b3JdLmZvckVhY2goZnVuY3Rpb24ocHJvcGVydHkpIHsKKyAgICAgICAgICAgICAgICB2
YXIgcHJvcGVydHlOYW1lID0gcHJvcGVydHkgPT09IFN5bWJvbC5pdGVyYXRvciA/ICJAQGl0ZXJh
dG9yIiA6IHByb3BlcnR5OworICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMocHJvdG9bcHJv
cGVydHldLCBBcnJheS5wcm90b3R5cGVbcHJvcGVydHldLCBwcm9wZXJ0eU5hbWUgKyAiIG1ldGhv
ZCBzaG91bGQgYmUgdGhlIHNhbWUgYXMgQXJyYXkgcHJvdG90eXBlJ3MiKTsKKyAgICAgICAgICAg
IH0uYmluZCh0aGlzKSk7CisgICAgICAgIH0KKyAgICB9LmJpbmQodGhpcyksIHRoaXMubmFtZSAr
ICIgaW50ZXJmYWNlOiBpdGVyYWJsZTwiICsgbWVtYmVyLmlkbFR5cGUubWFwKGZ1bmN0aW9uKHQp
IHsgcmV0dXJuIHQuaWRsVHlwZTsgfSkuam9pbigiLCAiKSArICI+Iik7CiB9OwogCi0vL0B9CiBJ
ZGxJbnRlcmZhY2UucHJvdG90eXBlLnRlc3RfbWVtYmVyX3N0cmluZ2lmaWVyID0gZnVuY3Rpb24o
bWVtYmVyKQotLy9AewogewogICAgIHN1YnNldFRlc3RCeUtleSh0aGlzLm5hbWUsIHRlc3QsIGZ1
bmN0aW9uKCkKICAgICB7CkBAIC0yNDIzLDIxICsyNTMxLDIwIEBAIElkbEludGVyZmFjZS5wcm90
b3R5cGUudGVzdF9tZW1iZXJfc3RyaW5naWZpZXIgPSBmdW5jdGlvbihtZW1iZXIpCiAgICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgIH0KIAotICAgICAgICBhc3NlcnRfb3duX3Byb3BlcnR5KHNl
bGYsIHRoaXMubmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2VsZiBkb2VzIG5v
dCBoYXZlIG93biBwcm9wZXJ0eSAiICsgZm9ybWF0X3ZhbHVlKHRoaXMubmFtZSkpOworICAgICAg
ICB0aGlzLmFzc2VydF9pbnRlcmZhY2Vfb2JqZWN0X2V4aXN0cygpOwogCiAgICAgICAgIGlmICh0
aGlzLmlzX2NhbGxiYWNrKCkpIHsKLSAgICAgICAgICAgIGFzc2VydF9mYWxzZSgicHJvdG90eXBl
IiBpbiBzZWxmW3RoaXMubmFtZV0sCisgICAgICAgICAgICBhc3NlcnRfZmFsc2UoInByb3RvdHlw
ZSIgaW4gdGhpcy5nZXRfaW50ZXJmYWNlX29iamVjdCgpLAogICAgICAgICAgICAgICAgICAgICAg
ICAgIHRoaXMubmFtZSArICcgc2hvdWxkIG5vdCBoYXZlIGEgInByb3RvdHlwZSIgcHJvcGVydHkn
KTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIGFzc2VydF9vd25f
cHJvcGVydHkoc2VsZlt0aGlzLm5hbWVdLCAicHJvdG90eXBlIiwKKyAgICAgICAgYXNzZXJ0X293
bl9wcm9wZXJ0eSh0aGlzLmdldF9pbnRlcmZhY2Vfb2JqZWN0KCksICJwcm90b3R5cGUiLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICdpbnRlcmZhY2UgIicgKyB0aGlzLm5hbWUgKyAnIiBk
b2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAicHJvdG90eXBlIicpOwogCiAgICAgICAgIC8vICIu
IC4gLiB0aGUgcHJvcGVydHkgZXhpc3RzIG9uIHRoZSBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVj
dC4iCi0gICAgICAgIHZhciBpbnRlcmZhY2VQcm90b3R5cGVPYmplY3QgPSBzZWxmW3RoaXMubmFt
ZV0ucHJvdG90eXBlOwotICAgICAgICBhc3NlcnRfb3duX3Byb3BlcnR5KHNlbGZbdGhpcy5uYW1l
XS5wcm90b3R5cGUsICJ0b1N0cmluZyIsCisgICAgICAgIHZhciBpbnRlcmZhY2VQcm90b3R5cGVP
YmplY3QgPSB0aGlzLmdldF9pbnRlcmZhY2Vfb2JqZWN0KCkucHJvdG90eXBlOworICAgICAgICBh
c3NlcnRfb3duX3Byb3BlcnR5KGludGVyZmFjZVByb3RvdHlwZU9iamVjdCwgInRvU3RyaW5nIiwK
ICAgICAgICAgICAgICAgICAiaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgbWlzc2luZyBub24t
c3RhdGljIG9wZXJhdGlvbiIpOwogCiAgICAgICAgIHZhciBzdHJpbmdpZmllclVuZm9yZ2VhYmxl
ID0gbWVtYmVyLmlzVW5mb3JnZWFibGU7CkBAIC0yNDYzLDcgKzI1NzAsNyBAQCBJZGxJbnRlcmZh
Y2UucHJvdG90eXBlLnRlc3RfbWVtYmVyX3N0cmluZ2lmaWVyID0gZnVuY3Rpb24obWVtYmVyKQog
CiAgICAgICAgIC8vICJMZXQgTyBiZSB0aGUgcmVzdWx0IG9mIGNhbGxpbmcgVG9PYmplY3Qgb24g
dGhlIHRoaXMgdmFsdWUuIgogICAgICAgICBhc3NlcnRfdGhyb3dzKG5ldyBUeXBlRXJyb3IoKSwg
ZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBzZWxmW3RoaXMubmFtZV0ucHJvdG90eXBlLnRvU3Ry
aW5nLmFwcGx5KG51bGwsIFtdKTsKKyAgICAgICAgICAgIGludGVyZmFjZVByb3RvdHlwZU9iamVj
dC50b1N0cmluZy5hcHBseShudWxsLCBbXSk7CiAgICAgICAgIH0sICJjYWxsaW5nIHN0cmluZ2lm
aWVyIHdpdGggdGhpcyA9IG51bGwgZGlkbid0IHRocm93IFR5cGVFcnJvciIpOwogCiAgICAgICAg
IC8vICJJZiBPIGlzIG5vdCBhbiBvYmplY3QgdGhhdCBpbXBsZW1lbnRzIHRoZSBpbnRlcmZhY2Ug
b24gd2hpY2ggdGhlCkBAIC0yNDcyLDI4ICsyNTc5LDEzIEBAIElkbEludGVyZmFjZS5wcm90b3R5
cGUudGVzdF9tZW1iZXJfc3RyaW5naWZpZXIgPSBmdW5jdGlvbihtZW1iZXIpCiAgICAgICAgIC8v
IFRPRE86IFRlc3QgYSBwbGF0Zm9ybSBvYmplY3QgdGhhdCBpbXBsZW1lbnRzIHNvbWUgb3RoZXIK
ICAgICAgICAgLy8gaW50ZXJmYWNlLiAgKEhhdmUgdG8gYmUgc3VyZSB0byBnZXQgaW5oZXJpdGFu
Y2UgcmlnaHQuKQogICAgICAgICBhc3NlcnRfdGhyb3dzKG5ldyBUeXBlRXJyb3IoKSwgZnVuY3Rp
b24oKSB7Ci0gICAgICAgICAgICBzZWxmW3RoaXMubmFtZV0ucHJvdG90eXBlLnRvU3RyaW5nLmFw
cGx5KHt9LCBbXSk7CisgICAgICAgICAgICBpbnRlcmZhY2VQcm90b3R5cGVPYmplY3QudG9TdHJp
bmcuYXBwbHkoe30sIFtdKTsKICAgICAgICAgfSwgImNhbGxpbmcgc3RyaW5naWZpZXIgd2l0aCB0
aGlzID0ge30gZGlkbid0IHRocm93IFR5cGVFcnJvciIpOwogICAgIH0uYmluZCh0aGlzKSwgdGhp
cy5uYW1lICsgIiBpbnRlcmZhY2U6IHN0cmluZ2lmaWVyIik7CiB9OwogCi0vL0B9CiBJZGxJbnRl
cmZhY2UucHJvdG90eXBlLnRlc3RfbWVtYmVycyA9IGZ1bmN0aW9uKCkKLS8vQHsKIHsKLSAgICBm
b3IgKHZhciBpID0gMDsgaSA8IHRoaXMubWVtYmVycy5sZW5ndGg7IGkrKykKLSAgICB7Ci0gICAg
ICAgIHZhciBtZW1iZXIgPSB0aGlzLm1lbWJlcnNbaV07Ci0gICAgICAgIHN3aXRjaCAobWVtYmVy
LnR5cGUpIHsKLSAgICAgICAgY2FzZSAiaXRlcmFibGUiOgotICAgICAgICAgICAgdGhpcy5hZGRf
aXRlcmFibGVfbWVtYmVycyhtZW1iZXIpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIC8v
IFRPRE86IGFkZCBzZXRsaWtlIGFuZCBtYXBsaWtlIGhhbmRsaW5nLgotICAgICAgICBkZWZhdWx0
OgotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICB9Ci0KICAgICBmb3IgKHZhciBp
ID0gMDsgaSA8IHRoaXMubWVtYmVycy5sZW5ndGg7IGkrKykKICAgICB7CiAgICAgICAgIHZhciBt
ZW1iZXIgPSB0aGlzLm1lbWJlcnNbaV07CkBAIC0yNTA0LDEwICsyNTk2LDEwIEBAIElkbEludGVy
ZmFjZS5wcm90b3R5cGUudGVzdF9tZW1iZXJzID0gZnVuY3Rpb24oKQogICAgICAgICBpZiAoIWV4
cG9zZWRfaW4oZXhwb3N1cmVfc2V0KG1lbWJlciwgdGhpcy5leHBvc3VyZVNldCkpKSB7CiAgICAg
ICAgICAgICBzdWJzZXRUZXN0QnlLZXkodGhpcy5uYW1lLCB0ZXN0LCBmdW5jdGlvbigpIHsKICAg
ICAgICAgICAgICAgICAvLyBJdCdzIG5vdCBleHBvc2VkLCBzbyB3ZSBzaG91bGRuJ3QgZmluZCBp
dCBhbnl3aGVyZS4KLSAgICAgICAgICAgICAgICBhc3NlcnRfZmFsc2UobWVtYmVyLm5hbWUgaW4g
c2VsZlt0aGlzLm5hbWVdLAorICAgICAgICAgICAgICAgIGFzc2VydF9mYWxzZShtZW1iZXIubmFt
ZSBpbiB0aGlzLmdldF9pbnRlcmZhY2Vfb2JqZWN0KCksCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJUaGUgaW50ZXJmYWNlIG9iamVjdCBtdXN0IG5vdCBoYXZlIGEgcHJvcGVydHkgIiAr
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdF92YWx1ZShtZW1iZXIubmFtZSkp
OwotICAgICAgICAgICAgICAgIGFzc2VydF9mYWxzZShtZW1iZXIubmFtZSBpbiBzZWxmW3RoaXMu
bmFtZV0ucHJvdG90eXBlLAorICAgICAgICAgICAgICAgIGFzc2VydF9mYWxzZShtZW1iZXIubmFt
ZSBpbiB0aGlzLmdldF9pbnRlcmZhY2Vfb2JqZWN0KCkucHJvdG90eXBlLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAiVGhlIHByb3RvdHlwZSBvYmplY3QgbXVzdCBub3QgaGF2ZSBhIHBy
b3BlcnR5ICIgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXRfdmFsdWUobWVt
YmVyLm5hbWUpKTsKICAgICAgICAgICAgIH0uYmluZCh0aGlzKSwgdGhpcy5uYW1lICsgIiBpbnRl
cmZhY2U6IG1lbWJlciAiICsgbWVtYmVyLm5hbWUpOwpAQCAtMjUyNiw3ICsyNjE4LDcgQEAgSWRs
SW50ZXJmYWNlLnByb3RvdHlwZS50ZXN0X21lbWJlcnMgPSBmdW5jdGlvbigpCiAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgdGhpcy50ZXN0X21lbWJlcl9hdHRyaWJ1dGUobWVtYmVyKTsK
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChtZW1iZXIuc3RyaW5naWZpZXIpIHsKKyAg
ICAgICAgICAgIGlmIChtZW1iZXIuc3BlY2lhbCA9PT0gInN0cmluZ2lmaWVyIikgewogICAgICAg
ICAgICAgICAgIHRoaXMudGVzdF9tZW1iZXJfc3RyaW5naWZpZXIobWVtYmVyKTsKICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgIGJyZWFrOwpAQCAtMjU0MSw3ICsyNjMzLDcgQEAgSWRsSW50ZXJm
YWNlLnByb3RvdHlwZS50ZXN0X21lbWJlcnMgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgICAgICB0aGlzLnRlc3RfbWVtYmVyX29wZXJhdGlvbihtZW1iZXIp
OwogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSBpZiAobWVtYmVyLnN0cmlu
Z2lmaWVyKSB7CisgICAgICAgICAgICB9IGVsc2UgaWYgKG1lbWJlci5zcGVjaWFsID09PSAic3Ry
aW5naWZpZXIiKSB7CiAgICAgICAgICAgICAgICAgdGhpcy50ZXN0X21lbWJlcl9zdHJpbmdpZmll
cihtZW1iZXIpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7CkBAIC0yNTU2LDkg
KzI2NDgsNyBAQCBJZGxJbnRlcmZhY2UucHJvdG90eXBlLnRlc3RfbWVtYmVycyA9IGZ1bmN0aW9u
KCkKICAgICB9CiB9OwogCi0vL0B9CiBJZGxJbnRlcmZhY2UucHJvdG90eXBlLnRlc3Rfb2JqZWN0
ID0gZnVuY3Rpb24oZGVzYykKLS8vQHsKIHsKICAgICB2YXIgb2JqLCBleGNlcHRpb24gPSBudWxs
OwogICAgIHRyeQpAQCAtMjU5Myw5ICsyNjgzLDcgQEAgSWRsSW50ZXJmYWNlLnByb3RvdHlwZS50
ZXN0X29iamVjdCA9IGZ1bmN0aW9uKGRlc2MpCiAgICAgfQogfTsKIAotLy9AfQogSWRsSW50ZXJm
YWNlLnByb3RvdHlwZS50ZXN0X3ByaW1hcnlfaW50ZXJmYWNlX29mID0gZnVuY3Rpb24oZGVzYywg
b2JqLCBleGNlcHRpb24sIGV4cGVjdGVkX3R5cGVvZikKLS8vQHsKIHsKICAgICAvLyBPbmx5IHRo
ZSBvYmplY3QgaXRzZWxmLCBub3QgaXRzIG1lbWJlcnMsIGFyZSB0ZXN0ZWQgaGVyZSwgc28gaWYg
dGhlCiAgICAgLy8gaW50ZXJmYWNlIGlzIHVudGVzdGVkLCB0aGVyZSBpcyBub3RoaW5nIHRvIGRv
LgpAQCAtMjYyNyw5ICsyNzE1LDggQEAgSWRsSW50ZXJmYWNlLnByb3RvdHlwZS50ZXN0X3ByaW1h
cnlfaW50ZXJmYWNlX29mID0gZnVuY3Rpb24oZGVzYywgb2JqLCBleGNlcHRpb24KICAgICAgICAg
ewogICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhleGNlcHRpb24sIG51bGwsICJVbmV4cGVjdGVk
IGV4Y2VwdGlvbiB3aGVuIGV2YWx1YXRpbmcgb2JqZWN0Iik7CiAgICAgICAgICAgICBhc3NlcnRf
ZXF1YWxzKHR5cGVvZiBvYmosIGV4cGVjdGVkX3R5cGVvZiwgIndyb25nIHR5cGVvZiBvYmplY3Qi
KTsKLSAgICAgICAgICAgIGFzc2VydF9vd25fcHJvcGVydHkoc2VsZiwgdGhpcy5uYW1lLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9w
ZXJ0eSAiICsgZm9ybWF0X3ZhbHVlKHRoaXMubmFtZSkpOwotICAgICAgICAgICAgYXNzZXJ0X293
bl9wcm9wZXJ0eShzZWxmW3RoaXMubmFtZV0sICJwcm90b3R5cGUiLAorICAgICAgICAgICAgdGhp
cy5hc3NlcnRfaW50ZXJmYWNlX29iamVjdF9leGlzdHMoKTsKKyAgICAgICAgICAgIGFzc2VydF9v
d25fcHJvcGVydHkodGhpcy5nZXRfaW50ZXJmYWNlX29iamVjdCgpLCAicHJvdG90eXBlIiwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ludGVyZmFjZSAiJyArIHRoaXMubmFtZSAr
ICciIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJwcm90b3R5cGUiJyk7CiAKICAgICAgICAg
ICAgIC8vICJUaGUgdmFsdWUgb2YgdGhlIGludGVybmFsIFtbUHJvdG90eXBlXV0gcHJvcGVydHkg
b2YgdGhlCkBAIC0yNjM3LDI5ICsyNzI0LDI3IEBAIElkbEludGVyZmFjZS5wcm90b3R5cGUudGVz
dF9wcmltYXJ5X2ludGVyZmFjZV9vZiA9IGZ1bmN0aW9uKGRlc2MsIG9iaiwgZXhjZXB0aW9uCiAg
ICAgICAgICAgICAvLyBpbnRlcmZhY2UgZnJvbSB0aGUgcGxhdGZvcm0gb2JqZWN04oCZcyBhc3Nv
Y2lhdGVkIGdsb2JhbAogICAgICAgICAgICAgLy8gZW52aXJvbm1lbnQuIgogICAgICAgICAgICAg
YXNzZXJ0X2VxdWFscyhPYmplY3QuZ2V0UHJvdG90eXBlT2Yob2JqKSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgc2VsZlt0aGlzLm5hbWVdLnByb3RvdHlwZSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgdGhpcy5nZXRfaW50ZXJmYWNlX29iamVjdCgpLnByb3RvdHlwZSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZGVzYyArICIncyBwcm90b3R5cGUgaXMgbm90ICIgKyB0aGlzLm5h
bWUgKyAiLnByb3RvdHlwZSIpOwogICAgICAgICB9LmJpbmQodGhpcyksIHRoaXMubmFtZSArICIg
bXVzdCBiZSBwcmltYXJ5IGludGVyZmFjZSBvZiAiICsgZGVzYyk7CiAgICAgfQogCiAgICAgLy8g
IlRoZSBjbGFzcyBzdHJpbmcgb2YgYSBwbGF0Zm9ybSBvYmplY3QgdGhhdCBpbXBsZW1lbnRzIG9u
ZSBvciBtb3JlCi0gICAgLy8gaW50ZXJmYWNlcyBtdXN0IGJlIHRoZSBpZGVudGlmaWVyIG9mIHRo
ZSBwcmltYXJ5IGludGVyZmFjZSBvZiB0aGUKKyAgICAvLyBpbnRlcmZhY2VzIG11c3QgYmUgdGhl
IHF1YWxpZmllZCBuYW1lIG9mIHRoZSBwcmltYXJ5IGludGVyZmFjZSBvZiB0aGUKICAgICAvLyBw
bGF0Zm9ybSBvYmplY3QuIgogICAgIHN1YnNldFRlc3RCeUtleSh0aGlzLm5hbWUsIHRlc3QsIGZ1
bmN0aW9uKCkKICAgICB7CiAgICAgICAgIGFzc2VydF9lcXVhbHMoZXhjZXB0aW9uLCBudWxsLCAi
VW5leHBlY3RlZCBleGNlcHRpb24gd2hlbiBldmFsdWF0aW5nIG9iamVjdCIpOwogICAgICAgICBh
c3NlcnRfZXF1YWxzKHR5cGVvZiBvYmosIGV4cGVjdGVkX3R5cGVvZiwgIndyb25nIHR5cGVvZiBv
YmplY3QiKTsKLSAgICAgICAgYXNzZXJ0X2NsYXNzX3N0cmluZyhvYmosIHRoaXMubmFtZSwgImNs
YXNzIHN0cmluZyBvZiAiICsgZGVzYyk7CisgICAgICAgIGFzc2VydF9jbGFzc19zdHJpbmcob2Jq
LCB0aGlzLmdldF9xdWFsaWZpZWRfbmFtZSgpLCAiY2xhc3Mgc3RyaW5nIG9mICIgKyBkZXNjKTsK
ICAgICAgICAgaWYgKCF0aGlzLmhhc19zdHJpbmdpZmllcigpKQogICAgICAgICB7Ci0gICAgICAg
ICAgICBhc3NlcnRfZXF1YWxzKFN0cmluZyhvYmopLCAiW29iamVjdCAiICsgdGhpcy5uYW1lICsg
Il0iLCAiU3RyaW5nKCIgKyBkZXNjICsgIikiKTsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMo
U3RyaW5nKG9iaiksICJbb2JqZWN0ICIgKyB0aGlzLmdldF9xdWFsaWZpZWRfbmFtZSgpICsgIl0i
LCAiU3RyaW5nKCIgKyBkZXNjICsgIikiKTsKICAgICAgICAgfQogICAgIH0uYmluZCh0aGlzKSwg
IlN0cmluZ2lmaWNhdGlvbiBvZiAiICsgZGVzYyk7CiB9OwogCi0vL0B9CiBJZGxJbnRlcmZhY2Uu
cHJvdG90eXBlLnRlc3RfaW50ZXJmYWNlX29mID0gZnVuY3Rpb24oZGVzYywgb2JqLCBleGNlcHRp
b24sIGV4cGVjdGVkX3R5cGVvZikKLS8vQHsKIHsKICAgICAvLyBUT0RPOiBJbmRleGVkIGFuZCBu
YW1lZCBwcm9wZXJ0aWVzLCBtb3JlIGNoZWNrcyBvbiBpbnRlcmZhY2UgbWVtYmVycwogICAgIHRo
aXMuYWxyZWFkeV90ZXN0ZWQgPSB0cnVlOwpAQCAtMjcxOCw3ICsyODAzLDcgQEAgSWRsSW50ZXJm
YWNlLnByb3RvdHlwZS50ZXN0X2ludGVyZmFjZV9vZiA9IGZ1bmN0aW9uKGRlc2MsIG9iaiwgZXhj
ZXB0aW9uLCBleHBlY3QKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1
YWxzKGV4Y2VwdGlvbiwgbnVsbCwgIlVuZXhwZWN0ZWQgZXhjZXB0aW9uIHdoZW4gZXZhbHVhdGlu
ZyBvYmplY3QiKTsKICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHR5cGVvZiBvYmosIGV4
cGVjdGVkX3R5cGVvZiwgIndyb25nIHR5cGVvZiBvYmplY3QiKTsKLSAgICAgICAgICAgICAgICBp
ZiAoIW1lbWJlclsic3RhdGljIl0pIHsKKyAgICAgICAgICAgICAgICBpZiAobWVtYmVyLnNwZWNp
YWwgIT09ICJzdGF0aWMiKSB7CiAgICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5pc19nbG9i
YWwoKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2luaGVyaXRzKG9iaiwgbWVt
YmVyLm5hbWUpOwogICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewpAQCAtMjc2OCw3ICsyODUz
LDcgQEAgSWRsSW50ZXJmYWNlLnByb3RvdHlwZS50ZXN0X2ludGVyZmFjZV9vZiA9IGZ1bmN0aW9u
KGRlc2MsIG9iaiwgZXhjZXB0aW9uLCBleHBlY3QKICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1
YWxzKGV4Y2VwdGlvbiwgbnVsbCwgIlVuZXhwZWN0ZWQgZXhjZXB0aW9uIHdoZW4gZXZhbHVhdGlu
ZyBvYmplY3QiKTsKICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHR5cGVvZiBvYmosIGV4
cGVjdGVkX3R5cGVvZiwgIndyb25nIHR5cGVvZiBvYmplY3QiKTsKICAgICAgICAgICAgICAgICB2
YXIgZm47Ci0gICAgICAgICAgICAgICAgaWYgKCFtZW1iZXJbInN0YXRpYyJdKSB7CisgICAgICAg
ICAgICAgICAgaWYgKG1lbWJlci5zcGVjaWFsICE9PSAic3RhdGljIikgewogICAgICAgICAgICAg
ICAgICAgICBpZiAoIXRoaXMuaXNfZ2xvYmFsKCkgJiYgIW1lbWJlci5pc1VuZm9yZ2VhYmxlKSB7
CiAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfaW5oZXJpdHMob2JqLCBtZW1iZXIubmFt
ZSk7CiAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CkBAIC0yNzk5LDIxICsyODg0LDE5IEBA
IElkbEludGVyZmFjZS5wcm90b3R5cGUudGVzdF9pbnRlcmZhY2Vfb2YgPSBmdW5jdGlvbihkZXNj
LCBvYmosIGV4Y2VwdGlvbiwgZXhwZWN0CiAgICAgICAgIH0KIAogICAgICAgICBpZiAobWVtYmVy
LmlzX3RvX2pzb25fcmVndWxhcl9vcGVyYXRpb24oKSkgewotICAgICAgICAgICAgdGhpcy50ZXN0
X3RvX2pzb25fb3BlcmF0aW9uKG9iaiwgbWVtYmVyKTsKKyAgICAgICAgICAgIHRoaXMudGVzdF90
b19qc29uX29wZXJhdGlvbihkZXNjLCBvYmosIG1lbWJlcik7CiAgICAgICAgIH0KICAgICB9CiB9
OwogCi0vL0B9CiBJZGxJbnRlcmZhY2UucHJvdG90eXBlLmhhc19zdHJpbmdpZmllciA9IGZ1bmN0
aW9uKCkKLS8vQHsKIHsKICAgICBpZiAodGhpcy5uYW1lID09PSAiRE9NRXhjZXB0aW9uIikgewog
ICAgICAgICAvLyB0b1N0cmluZyBpcyBpbmhlcml0ZWQgZnJvbSBFcnJvciwgc28gZG9uJ3QgYXNz
dW1lIHdlIGhhdmUgdGhlCiAgICAgICAgIC8vIGRlZmF1bHQgc3RyaW5naWZlcgogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICB9Ci0gICAgaWYgKHRoaXMubWVtYmVycy5zb21lKGZ1bmN0aW9uKG1l
bWJlcikgeyByZXR1cm4gbWVtYmVyLnN0cmluZ2lmaWVyOyB9KSkgeworICAgIGlmICh0aGlzLm1l
bWJlcnMuc29tZShmdW5jdGlvbihtZW1iZXIpIHsgcmV0dXJuIG1lbWJlci5zcGVjaWFsID09PSAi
c3RyaW5naWZpZXIiOyB9KSkgewogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgaWYg
KHRoaXMuYmFzZSAmJgpAQCAtMjgyMyw5ICsyOTA2LDcgQEAgSWRsSW50ZXJmYWNlLnByb3RvdHlw
ZS5oYXNfc3RyaW5naWZpZXIgPSBmdW5jdGlvbigpCiAgICAgcmV0dXJuIGZhbHNlOwogfTsKIAot
Ly9AfQogSWRsSW50ZXJmYWNlLnByb3RvdHlwZS5kb19pbnRlcmZhY2VfYXR0cmlidXRlX2Fzc2Vy
dHMgPSBmdW5jdGlvbihvYmosIG1lbWJlciwgYV90ZXN0KQotLy9AewogewogICAgIC8vIFRoaXMg
ZnVuY3Rpb24gdGVzdHMgV2ViSURMIGFzIG9mIDIwMTUtMDEtMjcuCiAgICAgLy8gVE9ETzogQ29u
c2lkZXIgW0V4cG9zZWRdLgpAQCAtMjg2OSw3ICsyOTUwLDcgQEAgSWRsSW50ZXJmYWNlLnByb3Rv
dHlwZS5kb19pbnRlcmZhY2VfYXR0cmlidXRlX2Fzc2VydHMgPSBmdW5jdGlvbihvYmosIG1lbWJl
ciwgYV8KICAgICBhc3NlcnRfZXF1YWxzKHR5cGVvZiBkZXNjLmdldCwgImZ1bmN0aW9uIiwgImdl
dHRlciBtdXN0IGJlIEZ1bmN0aW9uIik7CiAKICAgICAvLyAiSWYgdGhlIGF0dHJpYnV0ZSBpcyBh
IHJlZ3VsYXIgYXR0cmlidXRlLCB0aGVuOiIKLSAgICBpZiAoIW1lbWJlclsic3RhdGljIl0pIHsK
KyAgICBpZiAobWVtYmVyLnNwZWNpYWwgIT09ICJzdGF0aWMiKSB7CiAgICAgICAgIC8vICJJZiBP
IGlzIG5vdCBhIHBsYXRmb3JtIG9iamVjdCB0aGF0IGltcGxlbWVudHMgSSwgdGhlbjoKICAgICAg
ICAgLy8gIklmIHRoZSBhdHRyaWJ1dGUgd2FzIHNwZWNpZmllZCB3aXRoIHRoZSBbTGVuaWVudFRo
aXNdIGV4dGVuZGVkCiAgICAgICAgIC8vIGF0dHJpYnV0ZSwgdGhlbiByZXR1cm4gdW5kZWZpbmVk
LgpAQCAtMjg5NCw2ICsyOTc1LDExIEBAIElkbEludGVyZmFjZS5wcm90b3R5cGUuZG9faW50ZXJm
YWNlX2F0dHJpYnV0ZV9hc3NlcnRzID0gZnVuY3Rpb24ob2JqLCBtZW1iZXIsIGFfCiAgICAgLy8g
dmFsdWUgMC4iCiAgICAgYXNzZXJ0X2VxdWFscyhkZXNjLmdldC5sZW5ndGgsIDAsICJnZXR0ZXIg
bGVuZ3RoIG11c3QgYmUgMCIpOwogCisgICAgLy8gIkxldCBuYW1lIGJlIHRoZSBzdHJpbmcgImdl
dCAiIHByZXBlbmRlZCB0byBhdHRyaWJ1dGXigJlzIGlkZW50aWZpZXIuIgorICAgIC8vICJQZXJm
b3JtICEgU2V0RnVuY3Rpb25OYW1lKEYsIG5hbWUpLiIKKyAgICBhc3NlcnRfZXF1YWxzKGRlc2Mu
Z2V0Lm5hbWUsICJnZXQgIiArIG1lbWJlci5uYW1lLAorICAgICAgICAiZ2V0dGVyIG11c3QgaGF2
ZSB0aGUgbmFtZSAnZ2V0ICIgKyBtZW1iZXIubmFtZSArICInIik7CisKIAogICAgIC8vIFRPRE86
IFRlc3QgY2FsbGluZyBzZXR0ZXIgb24gdGhlIGludGVyZmFjZSBwcm90b3R5cGUgKHNob3VsZCB0
aHJvdwogICAgIC8vIFR5cGVFcnJvciBpbiBtb3N0IGNhc2VzKS4KQEAgLTI5MTQsNyArMzAwMCw3
IEBAIElkbEludGVyZmFjZS5wcm90b3R5cGUuZG9faW50ZXJmYWNlX2F0dHJpYnV0ZV9hc3NlcnRz
ID0gZnVuY3Rpb24ob2JqLCBtZW1iZXIsIGFfCiAgICAgICAgIGFzc2VydF9lcXVhbHModHlwZW9m
IGRlc2Muc2V0LCAiZnVuY3Rpb24iLCAic2V0dGVyIG11c3QgYmUgZnVuY3Rpb24gZm9yIFB1dEZv
cndhcmRzLCBSZXBsYWNlYWJsZSwgb3Igbm9uLXJlYWRvbmx5IGF0dHJpYnV0ZXMiKTsKIAogICAg
ICAgICAvLyAiSWYgdGhlIGF0dHJpYnV0ZSBpcyBhIHJlZ3VsYXIgYXR0cmlidXRlLCB0aGVuOiIK
LSAgICAgICAgaWYgKCFtZW1iZXJbInN0YXRpYyJdKSB7CisgICAgICAgIGlmIChtZW1iZXIuc3Bl
Y2lhbCAhPT0gInN0YXRpYyIpIHsKICAgICAgICAgICAgIC8vICJJZiAvdmFsaWRUaGlzLyBpcyBm
YWxzZSBhbmQgdGhlIGF0dHJpYnV0ZSB3YXMgbm90IHNwZWNpZmllZAogICAgICAgICAgICAgLy8g
d2l0aCB0aGUgW0xlbmllbnRUaGlzXSBleHRlbmRlZCBhdHRyaWJ1dGUsIHRoZW4gdGhyb3cgYQog
ICAgICAgICAgICAgLy8gVHlwZUVycm9yLiIKQEAgLTI5MzQsMjIgKzMwMjAsMjUgQEAgSWRsSW50
ZXJmYWNlLnByb3RvdHlwZS5kb19pbnRlcmZhY2VfYXR0cmlidXRlX2Fzc2VydHMgPSBmdW5jdGlv
bihvYmosIG1lbWJlciwgYV8KICAgICAgICAgLy8gIlRoZSB2YWx1ZSBvZiB0aGUgRnVuY3Rpb24g
b2JqZWN04oCZcyDigJxsZW5ndGjigJ0gcHJvcGVydHkgaXMgdGhlIE51bWJlcgogICAgICAgICAv
LyB2YWx1ZSAxLiIKICAgICAgICAgYXNzZXJ0X2VxdWFscyhkZXNjLnNldC5sZW5ndGgsIDEsICJz
ZXR0ZXIgbGVuZ3RoIG11c3QgYmUgMSIpOworCisgICAgICAgIC8vICJMZXQgbmFtZSBiZSB0aGUg
c3RyaW5nICJzZXQgIiBwcmVwZW5kZWQgdG8gaWQuIgorICAgICAgICAvLyAiUGVyZm9ybSAhIFNl
dEZ1bmN0aW9uTmFtZShGLCBuYW1lKS4iCisgICAgICAgIGFzc2VydF9lcXVhbHMoZGVzYy5zZXQu
bmFtZSwgInNldCAiICsgbWVtYmVyLm5hbWUsCisgICAgICAgICAgICAiVGhlIGF0dHJpYnV0ZSBz
ZXR0ZXIgbXVzdCBoYXZlIHRoZSBuYW1lICdzZXQgIiArIG1lbWJlci5uYW1lICsgIiciKTsKICAg
ICB9CiAKICAgICBQcm9taXNlLmFsbChwZW5kaW5nUHJvbWlzZXMpLnRoZW4oYV90ZXN0LmRvbmUu
YmluZChhX3Rlc3QpKTsKIH0KLS8vQH0KIAogLy8vIElkbEludGVyZmFjZU1lbWJlciAvLy8KIGZ1
bmN0aW9uIElkbEludGVyZmFjZU1lbWJlcihvYmopCi0vL0B7CiB7CiAgICAgLyoqCiAgICAgICog
b2JqIGlzIGFuIG9iamVjdCBwcm9kdWNlZCBieSB0aGUgV2ViSURMUGFyc2VyLmpzICJpZk1lbWJl
ciIgcHJvZHVjdGlvbi4KICAgICAgKiBXZSBqdXN0IGZvcndhcmQgYWxsIHByb3BlcnRpZXMgdG8g
dGhpcyBvYmplY3Qgd2l0aG91dCBtb2RpZmljYXRpb24sCiAgICAgICogZXhjZXB0IGZvciBzcGVj
aWFsIGV4dEF0dHJzIGhhbmRsaW5nLgogICAgICAqLwotICAgIGZvciAodmFyIGsgaW4gb2JqKQor
ICAgIGZvciAodmFyIGsgaW4gb2JqLnRvSlNPTigpKQogICAgIHsKICAgICAgICAgdGhpc1trXSA9
IG9ialtrXTsKICAgICB9CkBAIC0yOTYyLDE2ICszMDUxLDE4IEBAIGZ1bmN0aW9uIElkbEludGVy
ZmFjZU1lbWJlcihvYmopCiAgICAgdGhpcy5pc1Vuc2NvcGFibGUgPSB0aGlzLmhhc19leHRlbmRl
ZF9hdHRyaWJ1dGUoIlVuc2NvcGFibGUiKTsKIH0KIAotLy9AfQogSWRsSW50ZXJmYWNlTWVtYmVy
LnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoSWRsT2JqZWN0LnByb3RvdHlwZSk7CiAKK0lkbElu
dGVyZmFjZU1lbWJlci5wcm90b3R5cGUudG9KU09OID0gZnVuY3Rpb24oKSB7CisgICAgcmV0dXJu
IHRoaXM7Cit9OworCiBJZGxJbnRlcmZhY2VNZW1iZXIucHJvdG90eXBlLmlzX3RvX2pzb25fcmVn
dWxhcl9vcGVyYXRpb24gPSBmdW5jdGlvbigpIHsKLSAgICByZXR1cm4gdGhpcy50eXBlID09ICJv
cGVyYXRpb24iICYmICF0aGlzLnN0YXRpYyAmJiB0aGlzLm5hbWUgPT0gInRvSlNPTiI7CisgICAg
cmV0dXJuIHRoaXMudHlwZSA9PSAib3BlcmF0aW9uIiAmJiB0aGlzLnNwZWNpYWwgIT09ICJzdGF0
aWMiICYmIHRoaXMubmFtZSA9PSAidG9KU09OIjsKIH07CiAKIC8vLyBJbnRlcm5hbCBoZWxwZXIg
ZnVuY3Rpb25zIC8vLwogZnVuY3Rpb24gY3JlYXRlX3N1aXRhYmxlX29iamVjdCh0eXBlKQotLy9A
ewogewogICAgIC8qKgogICAgICAqIHR5cGUgaXMgYW4gb2JqZWN0IHByb2R1Y2VkIGJ5IHRoZSBX
ZWJJRExQYXJzZXIuanMgInR5cGUiIHByb2R1Y3Rpb24uICBXZQpAQCAtMzAwNywxMiArMzA5OCwx
MCBAQCBmdW5jdGlvbiBjcmVhdGVfc3VpdGFibGVfb2JqZWN0KHR5cGUpCiAgICAgfQogICAgIHJl
dHVybiBudWxsOwogfQotLy9AfQogCiAvLy8gSWRsRW51bSAvLy8KIC8vIFVzZWQgZm9yIElkbEFy
cmF5LnByb3RvdHlwZS5hc3NlcnRfdHlwZV9pcwogZnVuY3Rpb24gSWRsRW51bShvYmopCi0vL0B7
CiB7CiAgICAgLyoqCiAgICAgICogb2JqIGlzIGFuIG9iamVjdCBwcm9kdWNlZCBieSB0aGUgV2Vi
SURMUGFyc2VyLmpzICJkaWN0aW9uYXJ5IgpAQCAtMzAyNiwxNCArMzExNSwzMCBAQCBmdW5jdGlv
biBJZGxFbnVtKG9iaikKICAgICB0aGlzLnZhbHVlcyA9IG9iai52YWx1ZXM7CiAKIH0KLS8vQH0K
IAogSWRsRW51bS5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKElkbE9iamVjdC5wcm90b3R5cGUp
OwogCisvLy8gSWRsQ2FsbGJhY2sgLy8vCisvLyBVc2VkIGZvciBJZGxBcnJheS5wcm90b3R5cGUu
YXNzZXJ0X3R5cGVfaXMKK2Z1bmN0aW9uIElkbENhbGxiYWNrKG9iaikKK3sKKyAgICAvKioKKyAg
ICAgKiBvYmogaXMgYW4gb2JqZWN0IHByb2R1Y2VkIGJ5IHRoZSBXZWJJRExQYXJzZXIuanMgImNh
bGxiYWNrIgorICAgICAqIHByb2R1Y3Rpb24uCisgICAgICovCisKKyAgICAvKiogU2VsZi1leHBs
YW5hdG9yeS4gKi8KKyAgICB0aGlzLm5hbWUgPSBvYmoubmFtZTsKKworICAgIC8qKiBBcmd1bWVu
dHMgZm9yIHRoZSBjYWxsYmFjay4gKi8KKyAgICB0aGlzLmFyZ3VtZW50cyA9IG9iai5hcmd1bWVu
dHM7Cit9CisKK0lkbENhbGxiYWNrLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoSWRsT2JqZWN0
LnByb3RvdHlwZSk7CisKIC8vLyBJZGxUeXBlZGVmIC8vLwogLy8gVXNlZCBmb3IgSWRsQXJyYXku
cHJvdG90eXBlLmFzc2VydF90eXBlX2lzCiBmdW5jdGlvbiBJZGxUeXBlZGVmKG9iaikKLS8vQHsK
IHsKICAgICAvKioKICAgICAgKiBvYmogaXMgYW4gb2JqZWN0IHByb2R1Y2VkIGJ5IHRoZSBXZWJJ
RExQYXJzZXIuanMgInR5cGVkZWYiCkBAIC0zMDQ3LDEzICszMTUyLDExIEBAIGZ1bmN0aW9uIElk
bFR5cGVkZWYob2JqKQogICAgIHRoaXMuaWRsVHlwZSA9IG9iai5pZGxUeXBlOwogCiB9Ci0vL0B9
CiAKIElkbFR5cGVkZWYucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShJZGxPYmplY3QucHJvdG90
eXBlKTsKIAogLy8vIElkbE5hbWVzcGFjZSAvLy8KIGZ1bmN0aW9uIElkbE5hbWVzcGFjZShvYmop
Ci0vL0B7CiB7CiAgICAgdGhpcy5uYW1lID0gb2JqLm5hbWU7CiAgICAgdGhpcy5leHRBdHRycyA9
IG9iai5leHRBdHRyczsKQEAgLTMwNjQsMTIgKzMxNjcsMTAgQEAgZnVuY3Rpb24gSWRsTmFtZXNw
YWNlKG9iaikKICAgICAvKiogQW4gYXJyYXkgb2YgSWRsSW50ZXJmYWNlTWVtYmVycy4gKi8KICAg
ICB0aGlzLm1lbWJlcnMgPSBvYmoubWVtYmVycy5tYXAobSA9PiBuZXcgSWRsSW50ZXJmYWNlTWVt
YmVyKG0pKTsKIH0KLS8vQH0KIAogSWRsTmFtZXNwYWNlLnByb3RvdHlwZSA9IE9iamVjdC5jcmVh
dGUoSWRsT2JqZWN0LnByb3RvdHlwZSk7CiAKIElkbE5hbWVzcGFjZS5wcm90b3R5cGUuZG9fbWVt
YmVyX29wZXJhdGlvbl9hc3NlcnRzID0gZnVuY3Rpb24gKG1lbWJlckhvbGRlck9iamVjdCwgbWVt
YmVyLCBhX3Rlc3QpCi0vL0B7CiB7CiAgICAgdmFyIGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKG1lbWJlckhvbGRlck9iamVjdCwgbWVtYmVyLm5hbWUpOwogCkBAIC0zMDk4
LDEwICszMTk5LDggQEAgSWRsTmFtZXNwYWNlLnByb3RvdHlwZS5kb19tZW1iZXJfb3BlcmF0aW9u
X2Fzc2VydHMgPSBmdW5jdGlvbiAobWVtYmVySG9sZGVyT2JqZWMKICAgICAgICAgIm9wZXJhdGlv
biBoYXMgd3JvbmcgLmxlbmd0aCIpOwogICAgIGFfdGVzdC5kb25lKCk7CiB9Ci0vL0B9CiAKIElk
bE5hbWVzcGFjZS5wcm90b3R5cGUudGVzdF9tZW1iZXJfb3BlcmF0aW9uID0gZnVuY3Rpb24obWVt
YmVyKQotLy9AewogewogICAgIGlmICghc2hvdWxkUnVuU3ViVGVzdCh0aGlzLm5hbWUpKSB7CiAg
ICAgICAgIHJldHVybjsKQEAgLTMxMjYsMTAgKzMyMjUsOCBAQCBJZGxOYW1lc3BhY2UucHJvdG90
eXBlLnRlc3RfbWVtYmVyX29wZXJhdGlvbiA9IGZ1bmN0aW9uKG1lbWJlcikKICAgICAgICAgdGhp
cy5kb19tZW1iZXJfb3BlcmF0aW9uX2Fzc2VydHMoc2VsZlt0aGlzLm5hbWVdLCBtZW1iZXIsIGFf
dGVzdCk7CiAgICAgfS5iaW5kKHRoaXMpKTsKIH07Ci0vL0B9CiAKIElkbE5hbWVzcGFjZS5wcm90
b3R5cGUudGVzdF9tZW1iZXJfYXR0cmlidXRlID0gZnVuY3Rpb24gKG1lbWJlcikKLS8vQHsKIHsK
ICAgICBpZiAoIXNob3VsZFJ1blN1YlRlc3QodGhpcy5uYW1lKSkgewogICAgICAgICByZXR1cm47
CkBAIC0zMTUwLDEwICszMjQ3LDggQEAgSWRsTmFtZXNwYWNlLnByb3RvdHlwZS50ZXN0X21lbWJl
cl9hdHRyaWJ1dGUgPSBmdW5jdGlvbiAobWVtYmVyKQogICAgICAgICBhX3Rlc3QuZG9uZSgpOwog
ICAgIH0uYmluZCh0aGlzKSk7CiB9OwotLy9AfQogCiBJZGxOYW1lc3BhY2UucHJvdG90eXBlLnRl
c3QgPSBmdW5jdGlvbiAoKQotLy9AewogewogICAgIC8qKgogICAgICAqIFRPRE8obHVrZWJqZXJy
aW5nKTogQXNzZXJ0OgpAQCAtMzE3OSw3ICszMjc0LDYgQEAgSWRsTmFtZXNwYWNlLnByb3RvdHlw
ZS50ZXN0ID0gZnVuY3Rpb24gKCkKICAgICAgICAgfQogICAgIH07CiB9OwotLy9AfQogCiB9KCkp
OwogCkBAIC0zMjQxLDcgKzMzMzUsMTEgQEAgZnVuY3Rpb24gaWRsX3Rlc3Qoc3JjcywgZGVwcywg
aWRsX3NldHVwX2Z1bmMpIHsKICAqIGZldGNoX3NwZWMgaXMgYSBzaG9ydGhhbmQgZm9yIGEgUHJv
bWlzZSB0aGF0IGZldGNoZXMgdGhlIHNwZWMncyBjb250ZW50LgogICovCiBmdW5jdGlvbiBmZXRj
aF9zcGVjKHNwZWMpIHsKLSAgICByZXR1cm4gZmV0Y2goJy9pbnRlcmZhY2VzLycgKyBzcGVjICsg
Jy5pZGwnKS50aGVuKGZ1bmN0aW9uIChyKSB7CisgICAgdmFyIHVybCA9ICcvaW50ZXJmYWNlcy8n
ICsgc3BlYyArICcuaWRsJzsKKyAgICByZXR1cm4gZmV0Y2godXJsKS50aGVuKGZ1bmN0aW9uIChy
KSB7CisgICAgICAgIGlmICghci5vaykgeworICAgICAgICAgICAgdGhyb3cgbmV3IElkbEhhcm5l
c3NFcnJvcigiRXJyb3IgZmV0Y2hpbmcgIiArIHVybCArICIuIik7CisgICAgICAgIH0KICAgICAg
ICAgcmV0dXJuIHIudGV4dCgpOwogICAgIH0pOwogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvd2ViaWRsMi9saWIvd2Vi
aWRsMi5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVz
b3VyY2VzL3dlYmlkbDIvbGliL3dlYmlkbDIuanMKaW5kZXggZWY1MTljMDlkZjZkNmRhODEyZmNi
YmE1N2M3Y2EwZjQ3NWFmMWVkNS4uYzYwYTQ1NmMzMjQxNjU1ZDA1YTdlNDBmODJiMTlkODczNWQw
MTdkNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9yZXNvdXJjZXMvd2ViaWRsMi9saWIvd2ViaWRsMi5qcworKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy93ZWJpZGwyL2xpYi93ZWJp
ZGwyLmpzCkBAIC0xLDk3MCArMSwyNzc3IEBACisoZnVuY3Rpb24gd2VicGFja1VuaXZlcnNhbE1v
ZHVsZURlZmluaXRpb24ocm9vdCwgZmFjdG9yeSkgeworCWlmKHR5cGVvZiBleHBvcnRzID09PSAn
b2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlID09PSAnb2JqZWN0JykKKwkJbW9kdWxlLmV4cG9ydHMg
PSBmYWN0b3J5KCk7CisJZWxzZSBpZih0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRl
ZmluZS5hbWQpCisJCWRlZmluZShbXSwgZmFjdG9yeSk7CisJZWxzZSBpZih0eXBlb2YgZXhwb3J0
cyA9PT0gJ29iamVjdCcpCisJCWV4cG9ydHNbIldlYklETDIiXSA9IGZhY3RvcnkoKTsKKwllbHNl
CisJCXJvb3RbIldlYklETDIiXSA9IGZhY3RvcnkoKTsKK30pKHRoaXMsIGZ1bmN0aW9uKCkgewor
cmV0dXJuIC8qKioqKiovIChmdW5jdGlvbihtb2R1bGVzKSB7IC8vIHdlYnBhY2tCb290c3RyYXAK
Ky8qKioqKiovIAkvLyBUaGUgbW9kdWxlIGNhY2hlCisvKioqKioqLyAJdmFyIGluc3RhbGxlZE1v
ZHVsZXMgPSB7fTsKKy8qKioqKiovCisvKioqKioqLyAJLy8gVGhlIHJlcXVpcmUgZnVuY3Rpb24K
Ky8qKioqKiovIAlmdW5jdGlvbiBfX3dlYnBhY2tfcmVxdWlyZV9fKG1vZHVsZUlkKSB7CisvKioq
KioqLworLyoqKioqKi8gCQkvLyBDaGVjayBpZiBtb2R1bGUgaXMgaW4gY2FjaGUKKy8qKioqKiov
IAkJaWYoaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0pIHsKKy8qKioqKiovIAkJCXJldHVybiBp
bnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXS5leHBvcnRzOworLyoqKioqKi8gCQl9CisvKioqKioq
LyAJCS8vIENyZWF0ZSBhIG5ldyBtb2R1bGUgKGFuZCBwdXQgaXQgaW50byB0aGUgY2FjaGUpCisv
KioqKioqLyAJCXZhciBtb2R1bGUgPSBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXSA9IHsKKy8q
KioqKiovIAkJCWk6IG1vZHVsZUlkLAorLyoqKioqKi8gCQkJbDogZmFsc2UsCisvKioqKioqLyAJ
CQlleHBvcnRzOiB7fQorLyoqKioqKi8gCQl9OworLyoqKioqKi8KKy8qKioqKiovIAkJLy8gRXhl
Y3V0ZSB0aGUgbW9kdWxlIGZ1bmN0aW9uCisvKioqKioqLyAJCW1vZHVsZXNbbW9kdWxlSWRdLmNh
bGwobW9kdWxlLmV4cG9ydHMsIG1vZHVsZSwgbW9kdWxlLmV4cG9ydHMsIF9fd2VicGFja19yZXF1
aXJlX18pOworLyoqKioqKi8KKy8qKioqKiovIAkJLy8gRmxhZyB0aGUgbW9kdWxlIGFzIGxvYWRl
ZAorLyoqKioqKi8gCQltb2R1bGUubCA9IHRydWU7CisvKioqKioqLworLyoqKioqKi8gCQkvLyBS
ZXR1cm4gdGhlIGV4cG9ydHMgb2YgdGhlIG1vZHVsZQorLyoqKioqKi8gCQlyZXR1cm4gbW9kdWxl
LmV4cG9ydHM7CisvKioqKioqLyAJfQorLyoqKioqKi8KKy8qKioqKiovCisvKioqKioqLyAJLy8g
ZXhwb3NlIHRoZSBtb2R1bGVzIG9iamVjdCAoX193ZWJwYWNrX21vZHVsZXNfXykKKy8qKioqKiov
IAlfX3dlYnBhY2tfcmVxdWlyZV9fLm0gPSBtb2R1bGVzOworLyoqKioqKi8KKy8qKioqKiovIAkv
LyBleHBvc2UgdGhlIG1vZHVsZSBjYWNoZQorLyoqKioqKi8gCV9fd2VicGFja19yZXF1aXJlX18u
YyA9IGluc3RhbGxlZE1vZHVsZXM7CisvKioqKioqLworLyoqKioqKi8gCS8vIGRlZmluZSBnZXR0
ZXIgZnVuY3Rpb24gZm9yIGhhcm1vbnkgZXhwb3J0cworLyoqKioqKi8gCV9fd2VicGFja19yZXF1
aXJlX18uZCA9IGZ1bmN0aW9uKGV4cG9ydHMsIG5hbWUsIGdldHRlcikgeworLyoqKioqKi8gCQlp
ZighX193ZWJwYWNrX3JlcXVpcmVfXy5vKGV4cG9ydHMsIG5hbWUpKSB7CisvKioqKioqLyAJCQlP
YmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgbmFtZSwgeyBlbnVtZXJhYmxlOiB0cnVlLCBn
ZXQ6IGdldHRlciB9KTsKKy8qKioqKiovIAkJfQorLyoqKioqKi8gCX07CisvKioqKioqLworLyoq
KioqKi8gCS8vIGRlZmluZSBfX2VzTW9kdWxlIG9uIGV4cG9ydHMKKy8qKioqKiovIAlfX3dlYnBh
Y2tfcmVxdWlyZV9fLnIgPSBmdW5jdGlvbihleHBvcnRzKSB7CisvKioqKioqLyAJCWlmKHR5cGVv
ZiBTeW1ib2wgIT09ICd1bmRlZmluZWQnICYmIFN5bWJvbC50b1N0cmluZ1RhZykgeworLyoqKioq
Ki8gCQkJT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFN5bWJvbC50b1N0cmluZ1RhZywg
eyB2YWx1ZTogJ01vZHVsZScgfSk7CisvKioqKioqLyAJCX0KKy8qKioqKiovIAkJT2JqZWN0LmRl
ZmluZVByb3BlcnR5KGV4cG9ydHMsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTsKKy8q
KioqKiovIAl9OworLyoqKioqKi8KKy8qKioqKiovIAkvLyBjcmVhdGUgYSBmYWtlIG5hbWVzcGFj
ZSBvYmplY3QKKy8qKioqKiovIAkvLyBtb2RlICYgMTogdmFsdWUgaXMgYSBtb2R1bGUgaWQsIHJl
cXVpcmUgaXQKKy8qKioqKiovIAkvLyBtb2RlICYgMjogbWVyZ2UgYWxsIHByb3BlcnRpZXMgb2Yg
dmFsdWUgaW50byB0aGUgbnMKKy8qKioqKiovIAkvLyBtb2RlICYgNDogcmV0dXJuIHZhbHVlIHdo
ZW4gYWxyZWFkeSBucyBvYmplY3QKKy8qKioqKiovIAkvLyBtb2RlICYgOHwxOiBiZWhhdmUgbGlr
ZSByZXF1aXJlCisvKioqKioqLyAJX193ZWJwYWNrX3JlcXVpcmVfXy50ID0gZnVuY3Rpb24odmFs
dWUsIG1vZGUpIHsKKy8qKioqKiovIAkJaWYobW9kZSAmIDEpIHZhbHVlID0gX193ZWJwYWNrX3Jl
cXVpcmVfXyh2YWx1ZSk7CisvKioqKioqLyAJCWlmKG1vZGUgJiA4KSByZXR1cm4gdmFsdWU7Cisv
KioqKioqLyAJCWlmKChtb2RlICYgNCkgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiB2
YWx1ZSAmJiB2YWx1ZS5fX2VzTW9kdWxlKSByZXR1cm4gdmFsdWU7CisvKioqKioqLyAJCXZhciBu
cyA9IE9iamVjdC5jcmVhdGUobnVsbCk7CisvKioqKioqLyAJCV9fd2VicGFja19yZXF1aXJlX18u
cihucyk7CisvKioqKioqLyAJCU9iamVjdC5kZWZpbmVQcm9wZXJ0eShucywgJ2RlZmF1bHQnLCB7
IGVudW1lcmFibGU6IHRydWUsIHZhbHVlOiB2YWx1ZSB9KTsKKy8qKioqKiovIAkJaWYobW9kZSAm
IDIgJiYgdHlwZW9mIHZhbHVlICE9ICdzdHJpbmcnKSBmb3IodmFyIGtleSBpbiB2YWx1ZSkgX193
ZWJwYWNrX3JlcXVpcmVfXy5kKG5zLCBrZXksIGZ1bmN0aW9uKGtleSkgeyByZXR1cm4gdmFsdWVb
a2V5XTsgfS5iaW5kKG51bGwsIGtleSkpOworLyoqKioqKi8gCQlyZXR1cm4gbnM7CisvKioqKioq
LyAJfTsKKy8qKioqKiovCisvKioqKioqLyAJLy8gZ2V0RGVmYXVsdEV4cG9ydCBmdW5jdGlvbiBm
b3IgY29tcGF0aWJpbGl0eSB3aXRoIG5vbi1oYXJtb255IG1vZHVsZXMKKy8qKioqKiovIAlfX3dl
YnBhY2tfcmVxdWlyZV9fLm4gPSBmdW5jdGlvbihtb2R1bGUpIHsKKy8qKioqKiovIAkJdmFyIGdl
dHRlciA9IG1vZHVsZSAmJiBtb2R1bGUuX19lc01vZHVsZSA/CisvKioqKioqLyAJCQlmdW5jdGlv
biBnZXREZWZhdWx0KCkgeyByZXR1cm4gbW9kdWxlWydkZWZhdWx0J107IH0gOgorLyoqKioqKi8g
CQkJZnVuY3Rpb24gZ2V0TW9kdWxlRXhwb3J0cygpIHsgcmV0dXJuIG1vZHVsZTsgfTsKKy8qKioq
KiovIAkJX193ZWJwYWNrX3JlcXVpcmVfXy5kKGdldHRlciwgJ2EnLCBnZXR0ZXIpOworLyoqKioq
Ki8gCQlyZXR1cm4gZ2V0dGVyOworLyoqKioqKi8gCX07CisvKioqKioqLworLyoqKioqKi8gCS8v
IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbAorLyoqKioqKi8gCV9fd2VicGFj
a19yZXF1aXJlX18ubyA9IGZ1bmN0aW9uKG9iamVjdCwgcHJvcGVydHkpIHsgcmV0dXJuIE9iamVj
dC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsIHByb3BlcnR5KTsgfTsKKy8q
KioqKiovCisvKioqKioqLyAJLy8gX193ZWJwYWNrX3B1YmxpY19wYXRoX18KKy8qKioqKiovIAlf
X3dlYnBhY2tfcmVxdWlyZV9fLnAgPSAiIjsKKy8qKioqKiovCisvKioqKioqLworLyoqKioqKi8g
CS8vIExvYWQgZW50cnkgbW9kdWxlIGFuZCByZXR1cm4gZXhwb3J0cworLyoqKioqKi8gCXJldHVy
biBfX3dlYnBhY2tfcmVxdWlyZV9fKF9fd2VicGFja19yZXF1aXJlX18ucyA9IDApOworLyoqKioq
Ki8gfSkKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKiovCisvKioqKioqLyAoWworLyogMCAqLworLyoqKi8gKGZ1
bmN0aW9uKG1vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykg
eworCiAidXNlIHN0cmljdCI7CitfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9y
dHNfXyk7CisvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2xpYl93ZWJpZGwyX2pzX19XRUJQQUNL
X0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDEpOworLyogaGFybW9u
eSByZWV4cG9ydCAoc2FmZSkgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBv
cnRzX18sICJwYXJzZSIsIGZ1bmN0aW9uKCkgeyByZXR1cm4gX2xpYl93ZWJpZGwyX2pzX19XRUJQ
QUNLX0lNUE9SVEVEX01PRFVMRV8wX19bInBhcnNlIl07IH0pOwogCi0oKCkgPT4gewotICAvLyBU
aGVzZSByZWd1bGFyIGV4cHJlc3Npb25zIHVzZSB0aGUgc3RpY2t5IGZsYWcgc28gdGhleSB3aWxs
IG9ubHkgbWF0Y2ggYXQKLSAgLy8gdGhlIGN1cnJlbnQgbG9jYXRpb24gKGllLiB0aGUgb2Zmc2V0
IG9mIGxhc3RJbmRleCkuCi0gIGNvbnN0IHRva2VuUmUgPSB7Ci0gICAgLy8gVGhpcyBleHByZXNz
aW9uIHVzZXMgYSBsb29rYWhlYWQgYXNzZXJ0aW9uIHRvIGNhdGNoIGZhbHNlIG1hdGNoZXMKLSAg
ICAvLyBhZ2FpbnN0IGludGVnZXJzIGVhcmx5LgotICAgICJmbG9hdCI6IC8tPyg/PVswLTldKlwu
fFswLTldK1tlRV0pKChbMC05XStcLlswLTldKnxbMC05XSpcLlswLTldKykoW0VlXVstK10/WzAt
OV0rKT98WzAtOV0rW0VlXVstK10/WzAtOV0rKS95LAotICAgICJpbnRlZ2VyIjogLy0/KDAoW1h4
XVswLTlBLUZhLWZdK3xbMC03XSopfFsxLTldWzAtOV0qKS95LAotICAgICJpZGVudGlmaWVyIjog
L18/W0EtWmEtel1bMC05QS1aX2Etei1dKi95LAotICAgICJzdHJpbmciOiAvIlteIl0qIi95LAot
ICAgICJ3aGl0ZXNwYWNlIjogL1tcdFxuXHIgXSsveSwKLSAgICAiY29tbWVudCI6IC8oKFwvKFwv
Lip8XCooW14qXXxcKlteXC9dKSpcKlwvKVtcdFxuXHIgXSopKykveSwKLSAgICAib3RoZXIiOiAv
W15cdFxuXHIgMC05QS1aYS16XS95Ci0gIH07CisvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2xp
Yl93cml0ZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1
aXJlX18oMzApOworLyogaGFybW9ueSByZWV4cG9ydCAoc2FmZSkgKi8gX193ZWJwYWNrX3JlcXVp
cmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sICJ3cml0ZSIsIGZ1bmN0aW9uKCkgeyByZXR1cm4g
X2xpYl93cml0ZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX1sid3JpdGUiXTsgfSk7
CiAKLSAgY29uc3Qgc3RyaW5nVHlwZXMgPSBbCi0gICAgIkJ5dGVTdHJpbmciLAotICAgICJET01T
dHJpbmciLAotICAgICJVU1ZTdHJpbmciCi0gIF07Ci0KLSAgY29uc3QgYXJndW1lbnROYW1lS2V5
d29yZHMgPSBbCi0gICAgImF0dHJpYnV0ZSIsCi0gICAgImNhbGxiYWNrIiwKLSAgICAiY29uc3Qi
LAotICAgICJkZWxldGVyIiwKLSAgICAiZGljdGlvbmFyeSIsCi0gICAgImVudW0iLAotICAgICJn
ZXR0ZXIiLAotICAgICJpbmNsdWRlcyIsCi0gICAgImluaGVyaXQiLAotICAgICJpbnRlcmZhY2Ui
LAotICAgICJpdGVyYWJsZSIsCi0gICAgIm1hcGxpa2UiLAotICAgICJuYW1lc3BhY2UiLAotICAg
ICJwYXJ0aWFsIiwKLSAgICAicmVxdWlyZWQiLAotICAgICJzZXRsaWtlIiwKLSAgICAic2V0dGVy
IiwKLSAgICAic3RhdGljIiwKLSAgICAic3RyaW5naWZpZXIiLAotICAgICJ0eXBlZGVmIiwKLSAg
ICAidW5yZXN0cmljdGVkIgotICBdOwotCi0gIGNvbnN0IG5vblJlZ2V4VGVybWluYWxzID0gWwot
ICAgICJGcm96ZW5BcnJheSIsCi0gICAgIkluZmluaXR5IiwKLSAgICAiTmFOIiwKLSAgICAiUHJv
bWlzZSIsCi0gICAgImJvb2xlYW4iLAotICAgICJieXRlIiwKLSAgICAiZG91YmxlIiwKLSAgICAi
ZmFsc2UiLAotICAgICJmbG9hdCIsCi0gICAgImltcGxlbWVudHMiLAotICAgICJsZWdhY3lpdGVy
YWJsZSIsCi0gICAgImxvbmciLAotICAgICJtaXhpbiIsCi0gICAgIm51bGwiLAotICAgICJvY3Rl
dCIsCi0gICAgIm9wdGlvbmFsIiwKLSAgICAib3IiLAotICAgICJyZWFkb25seSIsCi0gICAgInJl
Y29yZCIsCi0gICAgInNlcXVlbmNlIiwKLSAgICAic2hvcnQiLAotICAgICJ0cnVlIiwKLSAgICAi
dW5zaWduZWQiLAotICAgICJ2b2lkIgotICBdLmNvbmNhdChhcmd1bWVudE5hbWVLZXl3b3Jkcywg
c3RyaW5nVHlwZXMpOwotCi0gIGNvbnN0IHB1bmN0dWF0aW9ucyA9IFsKLSAgICAiKCIsCi0gICAg
IikiLAotICAgICIsIiwKLSAgICAiLUluZmluaXR5IiwKLSAgICAiLi4uIiwKLSAgICAiOiIsCi0g
ICAgIjsiLAotICAgICI8IiwKLSAgICAiPSIsCi0gICAgIj4iLAotICAgICI/IiwKLSAgICAiWyIs
Ci0gICAgIl0iLAotICAgICJ7IiwKLSAgICAifSIKLSAgXTsKLQotICBmdW5jdGlvbiB0b2tlbmlz
ZShzdHIpIHsKLSAgICBjb25zdCB0b2tlbnMgPSBbXTsKLSAgICBsZXQgbGFzdEluZGV4ID0gMDsK
LSAgICBsZXQgdHJpdmlhID0gIiI7Ci0gICAgd2hpbGUgKGxhc3RJbmRleCA8IHN0ci5sZW5ndGgp
IHsKLSAgICAgIGNvbnN0IG5leHRDaGFyID0gc3RyLmNoYXJBdChsYXN0SW5kZXgpOwotICAgICAg
bGV0IHJlc3VsdCA9IC0xOwotCi0gICAgICBpZiAoL1tcdFxuXHIgXS8udGVzdChuZXh0Q2hhcikp
IHsKLSAgICAgICAgcmVzdWx0ID0gYXR0ZW1wdFRva2VuTWF0Y2goIndoaXRlc3BhY2UiLCB7IG5v
Rmx1c2hUcml2aWE6IHRydWUgfSk7Ci0gICAgICB9IGVsc2UgaWYgKG5leHRDaGFyID09PSAnLycp
IHsKLSAgICAgICAgcmVzdWx0ID0gYXR0ZW1wdFRva2VuTWF0Y2goImNvbW1lbnQiLCB7IG5vRmx1
c2hUcml2aWE6IHRydWUgfSk7Ci0gICAgICB9CisvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2xp
Yl92YWxpZGF0b3JfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXyA9IF9fd2VicGFja19y
ZXF1aXJlX18oMzEpOworLyogaGFybW9ueSByZWV4cG9ydCAoc2FmZSkgKi8gX193ZWJwYWNrX3Jl
cXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sICJ2YWxpZGF0ZSIsIGZ1bmN0aW9uKCkgeyBy
ZXR1cm4gX2xpYl92YWxpZGF0b3JfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX1sidmFs
aWRhdGUiXTsgfSk7CiAKLSAgICAgIGlmIChyZXN1bHQgIT09IC0xKSB7Ci0gICAgICAgIHRyaXZp
YSArPSB0b2tlbnMucG9wKCkudmFsdWU7Ci0gICAgICB9IGVsc2UgaWYgKC9bLTAtOS5dLy50ZXN0
KG5leHRDaGFyKSkgewotICAgICAgICByZXN1bHQgPSBhdHRlbXB0VG9rZW5NYXRjaCgiZmxvYXQi
KTsKLSAgICAgICAgaWYgKHJlc3VsdCA9PT0gLTEpIHsKLSAgICAgICAgICByZXN1bHQgPSBhdHRl
bXB0VG9rZW5NYXRjaCgiaW50ZWdlciIpOwotICAgICAgICB9Ci0gICAgICB9IGVsc2UgaWYgKC9b
QS1aX2Etel0vLnRlc3QobmV4dENoYXIpKSB7Ci0gICAgICAgIHJlc3VsdCA9IGF0dGVtcHRUb2tl
bk1hdGNoKCJpZGVudGlmaWVyIik7Ci0gICAgICAgIGNvbnN0IHRva2VuID0gdG9rZW5zW3Rva2Vu
cy5sZW5ndGggLSAxXTsKLSAgICAgICAgaWYgKHJlc3VsdCAhPT0gLTEgJiYgbm9uUmVnZXhUZXJt
aW5hbHMuaW5jbHVkZXModG9rZW4udmFsdWUpKSB7Ci0gICAgICAgICAgdG9rZW4udHlwZSA9IHRv
a2VuLnZhbHVlOwotICAgICAgICB9Ci0gICAgICB9IGVsc2UgaWYgKG5leHRDaGFyID09PSAnIicp
IHsKLSAgICAgICAgcmVzdWx0ID0gYXR0ZW1wdFRva2VuTWF0Y2goInN0cmluZyIpOwotICAgICAg
fQogCi0gICAgICBmb3IgKGNvbnN0IHB1bmN0dWF0aW9uIG9mIHB1bmN0dWF0aW9ucykgewotICAg
ICAgICBpZiAoc3RyLnN0YXJ0c1dpdGgocHVuY3R1YXRpb24sIGxhc3RJbmRleCkpIHsKLSAgICAg
ICAgICB0b2tlbnMucHVzaCh7IHR5cGU6IHB1bmN0dWF0aW9uLCB2YWx1ZTogcHVuY3R1YXRpb24s
IHRyaXZpYSB9KTsKLSAgICAgICAgICB0cml2aWEgPSAiIjsKLSAgICAgICAgICBsYXN0SW5kZXgg
Kz0gcHVuY3R1YXRpb24ubGVuZ3RoOwotICAgICAgICAgIHJlc3VsdCA9IGxhc3RJbmRleDsKLSAg
ICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAgfQogCi0gICAgICAvLyBvdGhlciBhcyB0
aGUgbGFzdCB0cnkKLSAgICAgIGlmIChyZXN1bHQgPT09IC0xKSB7Ci0gICAgICAgIHJlc3VsdCA9
IGF0dGVtcHRUb2tlbk1hdGNoKCJvdGhlciIpOwotICAgICAgfQotICAgICAgaWYgKHJlc3VsdCA9
PT0gLTEpIHsKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJUb2tlbiBzdHJlYW0gbm90IHByb2dy
ZXNzaW5nIik7Ci0gICAgICB9Ci0gICAgICBsYXN0SW5kZXggPSByZXN1bHQ7Ci0gICAgfQotICAg
IHJldHVybiB0b2tlbnM7CiAKLSAgICBmdW5jdGlvbiBhdHRlbXB0VG9rZW5NYXRjaCh0eXBlLCB7
IG5vRmx1c2hUcml2aWEgfSA9IHt9KSB7Ci0gICAgICBjb25zdCByZSA9IHRva2VuUmVbdHlwZV07
Ci0gICAgICByZS5sYXN0SW5kZXggPSBsYXN0SW5kZXg7Ci0gICAgICBjb25zdCByZXN1bHQgPSBy
ZS5leGVjKHN0cik7Ci0gICAgICBpZiAocmVzdWx0KSB7Ci0gICAgICAgIHRva2Vucy5wdXNoKHsg
dHlwZSwgdmFsdWU6IHJlc3VsdFswXSwgdHJpdmlhIH0pOwotICAgICAgICBpZiAoIW5vRmx1c2hU
cml2aWEpIHsKLSAgICAgICAgICB0cml2aWEgPSAiIjsKLSAgICAgICAgfQotICAgICAgICByZXR1
cm4gcmUubGFzdEluZGV4OwotICAgICAgfQotICAgICAgcmV0dXJuIC0xOwotICAgIH0KLSAgfQog
Ci0gIGNsYXNzIFdlYklETFBhcnNlRXJyb3IgewotICAgIGNvbnN0cnVjdG9yKHN0ciwgbGluZSwg
aW5wdXQsIHRva2VucykgewotICAgICAgdGhpcy5tZXNzYWdlID0gc3RyOwotICAgICAgdGhpcy5s
aW5lID0gbGluZTsKLSAgICAgIHRoaXMuaW5wdXQgPSBpbnB1dDsKLSAgICAgIHRoaXMudG9rZW5z
ID0gdG9rZW5zOwotICAgIH0KIAotICAgIHRvU3RyaW5nKCkgewotICAgICAgY29uc3QgZXNjYXBl
ZElucHV0ID0gSlNPTi5zdHJpbmdpZnkodGhpcy5pbnB1dCk7Ci0gICAgICBjb25zdCB0b2tlbnMg
PSBKU09OLnN0cmluZ2lmeSh0aGlzLnRva2VucywgbnVsbCwgNCk7Ci0gICAgICByZXR1cm4gYCR7
dGhpcy5tZXNzYWdlfSwgbGluZSAke3RoaXMubGluZX0gKHRva2VuczogJHtlc2NhcGVkSW5wdXR9
KVxuJHt0b2tlbnN9YDsKLSAgICB9Ci0gIH0KKy8qKiovIH0pLAorLyogMSAqLworLyoqKi8gKGZ1
bmN0aW9uKG1vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykg
ewogCi0gIGZ1bmN0aW9uIHBhcnNlKHRva2VucykgewotICAgIGxldCBsaW5lID0gMTsKLSAgICB0
b2tlbnMgPSB0b2tlbnMuc2xpY2UoKTsKLSAgICBjb25zdCBuYW1lcyA9IG5ldyBNYXAoKTsKLSAg
ICBsZXQgY3VycmVudCA9IG51bGw7CisidXNlIHN0cmljdCI7CitfX3dlYnBhY2tfcmVxdWlyZV9f
LnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7CisvKiBoYXJtb255IGV4cG9ydCAoYmluZGluZykgKi8g
X193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sICJwYXJzZSIsIGZ1bmN0
aW9uKCkgeyByZXR1cm4gcGFyc2U7IH0pOworLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF90b2tl
bmlzZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJl
X18oMik7CisvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3Byb2R1Y3Rpb25zX2VudW1fanNfX1dF
QlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMTUpOworLyog
aGFybW9ueSBpbXBvcnQgKi8gdmFyIF9wcm9kdWN0aW9uc19pbmNsdWRlc19qc19fV0VCUEFDS19J
TVBPUlRFRF9NT0RVTEVfMl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygxNik7CisvKiBoYXJtb255
IGltcG9ydCAqLyB2YXIgX3Byb2R1Y3Rpb25zX2V4dGVuZGVkX2F0dHJpYnV0ZXNfanNfX1dFQlBB
Q0tfSU1QT1JURURfTU9EVUxFXzNfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMTApOworLyogaGFy
bW9ueSBpbXBvcnQgKi8gdmFyIF9wcm9kdWN0aW9uc190eXBlZGVmX2pzX19XRUJQQUNLX0lNUE9S
VEVEX01PRFVMRV80X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDE3KTsKKy8qIGhhcm1vbnkgaW1w
b3J0ICovIHZhciBfcHJvZHVjdGlvbnNfY2FsbGJhY2tfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9E
VUxFXzVfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMTgpOworLyogaGFybW9ueSBpbXBvcnQgKi8g
dmFyIF9wcm9kdWN0aW9uc19pbnRlcmZhY2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZf
XyA9IF9fd2VicGFja19yZXF1aXJlX18oMTkpOworLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9w
cm9kdWN0aW9uc19taXhpbl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfN19fID0gX193ZWJw
YWNrX3JlcXVpcmVfXygyNSk7CisvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3Byb2R1Y3Rpb25z
X2RpY3Rpb25hcnlfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzhfXyA9IF9fd2VicGFja19y
ZXF1aXJlX18oMjYpOworLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9wcm9kdWN0aW9uc19uYW1l
c3BhY2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzlfXyA9IF9fd2VicGFja19yZXF1aXJl
X18oMjgpOworLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9wcm9kdWN0aW9uc19jYWxsYmFja19p
bnRlcmZhY2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEwX18gPSBfX3dlYnBhY2tfcmVx
dWlyZV9fKDI5KTsKIAotICAgIGNvbnN0IEZMT0FUID0gImZsb2F0IjsKLSAgICBjb25zdCBJTlQg
PSAiaW50ZWdlciI7Ci0gICAgY29uc3QgSUQgPSAiaWRlbnRpZmllciI7Ci0gICAgY29uc3QgU1RS
ID0gInN0cmluZyI7Ci0gICAgY29uc3QgT1RIRVIgPSAib3RoZXIiOwogCi0gICAgY29uc3QgRU1Q
VFlfT1BFUkFUSU9OID0gT2JqZWN0LmZyZWV6ZSh7Ci0gICAgICB0eXBlOiAib3BlcmF0aW9uIiwK
LSAgICAgIGdldHRlcjogZmFsc2UsCi0gICAgICBzZXR0ZXI6IGZhbHNlLAotICAgICAgZGVsZXRl
cjogZmFsc2UsCi0gICAgICBzdGF0aWM6IGZhbHNlLAotICAgICAgc3RyaW5naWZpZXI6IGZhbHNl
Ci0gICAgfSk7CiAKLSAgICBjb25zdCBFTVBUWV9JRExUWVBFID0gT2JqZWN0LmZyZWV6ZSh7Ci0g
ICAgICBnZW5lcmljOiBudWxsLAotICAgICAgbnVsbGFibGU6IGZhbHNlLAotICAgICAgdW5pb246
IGZhbHNlLAotICAgICAgaWRsVHlwZTogbnVsbCwKLSAgICAgIGV4dEF0dHJzOiBbXQotICAgIH0p
OwogCi0gICAgZnVuY3Rpb24gZXJyb3Ioc3RyKSB7Ci0gICAgICBjb25zdCBtYXhUb2tlbnMgPSA1
OwotICAgICAgY29uc3QgdG9rID0gdG9rZW5zCi0gICAgICAgIC5zbGljZShjb25zdW1lX3Bvc2l0
aW9uLCBjb25zdW1lX3Bvc2l0aW9uICsgbWF4VG9rZW5zKQotICAgICAgICAubWFwKHQgPT4gdC50
cml2aWEgKyB0LnZhbHVlKS5qb2luKCIiKTsKLSAgICAgIC8vIENvdW50IG5ld2xpbmVzIHByZWNl
ZGluZyB0aGUgYWN0dWFsIGVycm9uZW91cyB0b2tlbgotICAgICAgaWYgKHRva2Vucy5sZW5ndGgp
IHsKLSAgICAgICAgbGluZSArPSBjb3VudCh0b2tlbnNbY29uc3VtZV9wb3NpdGlvbl0udHJpdmlh
LCAiXG4iKTsKLSAgICAgIH0KIAotICAgICAgbGV0IG1lc3NhZ2U7Ci0gICAgICBpZiAoY3VycmVu
dCkgewotICAgICAgICBtZXNzYWdlID0gYEdvdCBhbiBlcnJvciBkdXJpbmcgb3IgcmlnaHQgYWZ0
ZXIgcGFyc2luZyBcYCR7Y3VycmVudC5wYXJ0aWFsID8gInBhcnRpYWwgIiA6ICIifSR7Y3VycmVu
dC50eXBlfSAke2N1cnJlbnQubmFtZX1cYDogJHtzdHJ9YAotICAgICAgfQotICAgICAgZWxzZSB7
Ci0gICAgICAgIC8vIHRocm93aW5nIGJlZm9yZSBhbnkgdmFsaWQgZGVmaW5pdGlvbgotICAgICAg
ICBtZXNzYWdlID0gYEdvdCBhbiBlcnJvciBiZWZvcmUgcGFyc2luZyBhbnkgbmFtZWQgZGVmaW5p
dGlvbjogJHtzdHJ9YDsKLSAgICAgIH0KIAotICAgICAgdGhyb3cgbmV3IFdlYklETFBhcnNlRXJy
b3IobWVzc2FnZSwgbGluZSwgdG9rLCB0b2tlbnMuc2xpY2UoMCwgbWF4VG9rZW5zKSk7Ci0gICAg
fQogCi0gICAgZnVuY3Rpb24gc2FuaXRpemVfbmFtZShuYW1lLCB0eXBlKSB7Ci0gICAgICBpZiAo
bmFtZXMuaGFzKG5hbWUpKSB7Ci0gICAgICAgIGVycm9yKGBUaGUgbmFtZSAiJHtuYW1lfSIgb2Yg
dHlwZSAiJHtuYW1lcy5nZXQobmFtZSl9IiBpcyBhbHJlYWR5IHNlZW5gKTsKLSAgICAgIH0KLSAg
ICAgIG5hbWVzLnNldChuYW1lLCB0eXBlKTsKLSAgICAgIHJldHVybiBuYW1lOwotICAgIH0KIAot
ICAgIGxldCBjb25zdW1lX3Bvc2l0aW9uID0gMDsKIAotICAgIGZ1bmN0aW9uIHByb2JlKHR5cGUp
IHsKLSAgICAgIHJldHVybiB0b2tlbnMubGVuZ3RoID4gY29uc3VtZV9wb3NpdGlvbiAmJiB0b2tl
bnNbY29uc3VtZV9wb3NpdGlvbl0udHlwZSA9PT0gdHlwZTsKLSAgICB9CiAKLSAgICBmdW5jdGlv
biBjb25zdW1lKC4uLmNhbmRpZGF0ZXMpIHsKLSAgICAgIC8vIFRPRE86IHVzZSBjb25zdCB3aGVu
IFNlcnZvIHVwZGF0ZXMgaXRzIEpTIGVuZ2luZQotICAgICAgZm9yIChsZXQgdHlwZSBvZiBjYW5k
aWRhdGVzKSB7Ci0gICAgICAgIGlmICghcHJvYmUodHlwZSkpIGNvbnRpbnVlOwotICAgICAgICBj
b25zdCB0b2tlbiA9IHRva2Vuc1tjb25zdW1lX3Bvc2l0aW9uXTsKLSAgICAgICAgY29uc3VtZV9w
b3NpdGlvbisrOwotICAgICAgICBsaW5lICs9IGNvdW50KHRva2VuLnRyaXZpYSwgIlxuIik7Ci0g
ICAgICAgIHJldHVybiB0b2tlbjsKLSAgICAgIH0KLSAgICB9CiAKLSAgICBmdW5jdGlvbiB1bmVz
Y2FwZShpZGVudGlmaWVyKSB7Ci0gICAgICByZXR1cm4gaWRlbnRpZmllci5zdGFydHNXaXRoKCdf
JykgPyBpZGVudGlmaWVyLnNsaWNlKDEpIDogaWRlbnRpZmllcjsKLSAgICB9CiAKLSAgICBmdW5j
dGlvbiB1bmNvbnN1bWUocG9zaXRpb24pIHsKLSAgICAgIHdoaWxlIChjb25zdW1lX3Bvc2l0aW9u
ID4gcG9zaXRpb24pIHsKLSAgICAgICAgY29uc3VtZV9wb3NpdGlvbi0tOwotICAgICAgICBsaW5l
IC09IGNvdW50KHRva2Vuc1tjb25zdW1lX3Bvc2l0aW9uXS50cml2aWEsICJcbiIpOwotICAgICAg
fQotICAgIH0KIAotICAgIGZ1bmN0aW9uIGNvdW50KHN0ciwgY2hhcikgewotICAgICAgbGV0IHRv
dGFsID0gMDsKLSAgICAgIGZvciAobGV0IGkgPSBzdHIuaW5kZXhPZihjaGFyKTsgaSAhPT0gLTE7
IGkgPSBzdHIuaW5kZXhPZihjaGFyLCBpICsgMSkpIHsKLSAgICAgICAgKyt0b3RhbDsKLSAgICAg
IH0KLSAgICAgIHJldHVybiB0b3RhbDsKKworLyoqCisgKiBAcGFyYW0ge1Rva2VuaXNlcn0gdG9r
ZW5pc2VyCisgKiBAcGFyYW0ge29iamVjdH0gb3B0aW9ucworICogQHBhcmFtIHtib29sZWFufSBb
b3B0aW9ucy5jb25jcmV0ZV0KKyAqLworZnVuY3Rpb24gcGFyc2VCeVRva2Vucyh0b2tlbmlzZXIs
IG9wdGlvbnMpIHsKKyAgY29uc3Qgc291cmNlID0gdG9rZW5pc2VyLnNvdXJjZTsKKworICBmdW5j
dGlvbiBlcnJvcihzdHIpIHsKKyAgICB0b2tlbmlzZXIuZXJyb3Ioc3RyKTsKKyAgfQorCisgIGZ1
bmN0aW9uIGNvbnN1bWUoLi4uY2FuZGlkYXRlcykgeworICAgIHJldHVybiB0b2tlbmlzZXIuY29u
c3VtZSguLi5jYW5kaWRhdGVzKTsKKyAgfQorCisgIGZ1bmN0aW9uIGNhbGxiYWNrKCkgeworICAg
IGNvbnN0IGNhbGxiYWNrID0gY29uc3VtZSgiY2FsbGJhY2siKTsKKyAgICBpZiAoIWNhbGxiYWNr
KSByZXR1cm47CisgICAgaWYgKHRva2VuaXNlci5wcm9iZSgiaW50ZXJmYWNlIikpIHsKKyAgICAg
IHJldHVybiBfcHJvZHVjdGlvbnNfY2FsbGJhY2tfaW50ZXJmYWNlX2pzX19XRUJQQUNLX0lNUE9S
VEVEX01PRFVMRV8xMF9fWyJDYWxsYmFja0ludGVyZmFjZSJdLnBhcnNlKHRva2VuaXNlciwgY2Fs
bGJhY2spOwogICAgIH0KKyAgICByZXR1cm4gX3Byb2R1Y3Rpb25zX2NhbGxiYWNrX2pzX19XRUJQ
QUNLX0lNUE9SVEVEX01PRFVMRV81X19bIkNhbGxiYWNrRnVuY3Rpb24iXS5wYXJzZSh0b2tlbmlz
ZXIsIGNhbGxiYWNrKTsKKyAgfQogCi0gICAgZnVuY3Rpb24gaW50ZWdlcl90eXBlKCkgewotICAg
ICAgbGV0IHJldCA9ICIiOwotICAgICAgaWYgKGNvbnN1bWUoInVuc2lnbmVkIikpIHJldCA9ICJ1
bnNpZ25lZCAiOwotICAgICAgaWYgKGNvbnN1bWUoInNob3J0IikpIHJldHVybiByZXQgKyAic2hv
cnQiOwotICAgICAgaWYgKGNvbnN1bWUoImxvbmciKSkgewotICAgICAgICByZXQgKz0gImxvbmci
OwotICAgICAgICBpZiAoY29uc3VtZSgibG9uZyIpKSByZXR1cm4gcmV0ICsgIiBsb25nIjsKLSAg
ICAgICAgcmV0dXJuIHJldDsKKyAgZnVuY3Rpb24gaW50ZXJmYWNlXyhvcHRzKSB7CisgICAgY29u
c3QgYmFzZSA9IGNvbnN1bWUoImludGVyZmFjZSIpOworICAgIGlmICghYmFzZSkgcmV0dXJuOwor
ICAgIGNvbnN0IHJldCA9IF9wcm9kdWN0aW9uc19taXhpbl9qc19fV0VCUEFDS19JTVBPUlRFRF9N
T0RVTEVfN19fWyJNaXhpbiJdLnBhcnNlKHRva2VuaXNlciwgYmFzZSwgb3B0cykgfHwKKyAgICAg
IF9wcm9kdWN0aW9uc19pbnRlcmZhY2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfX1si
SW50ZXJmYWNlIl0ucGFyc2UodG9rZW5pc2VyLCBiYXNlLCBvcHRzKSB8fAorICAgICAgZXJyb3Io
IkludGVyZmFjZSBoYXMgbm8gcHJvcGVyIGJvZHkiKTsKKyAgICByZXR1cm4gcmV0OworICB9CisK
KyAgZnVuY3Rpb24gcGFydGlhbCgpIHsKKyAgICBjb25zdCBwYXJ0aWFsID0gY29uc3VtZSgicGFy
dGlhbCIpOworICAgIGlmICghcGFydGlhbCkgcmV0dXJuOworICAgIHJldHVybiBfcHJvZHVjdGlv
bnNfZGljdGlvbmFyeV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOF9fWyJEaWN0aW9uYXJ5
Il0ucGFyc2UodG9rZW5pc2VyLCB7IHBhcnRpYWwgfSkgfHwKKyAgICAgIGludGVyZmFjZV8oeyBw
YXJ0aWFsIH0pIHx8CisgICAgICBfcHJvZHVjdGlvbnNfbmFtZXNwYWNlX2pzX19XRUJQQUNLX0lN
UE9SVEVEX01PRFVMRV85X19bIk5hbWVzcGFjZSJdLnBhcnNlKHRva2VuaXNlciwgeyBwYXJ0aWFs
IH0pIHx8CisgICAgICBlcnJvcigiUGFydGlhbCBkb2Vzbid0IGFwcGx5IHRvIGFueXRoaW5nIik7
CisgIH0KKworICBmdW5jdGlvbiBkZWZpbml0aW9uKCkgeworICAgIHJldHVybiBjYWxsYmFjaygp
IHx8CisgICAgICBpbnRlcmZhY2VfKCkgfHwKKyAgICAgIHBhcnRpYWwoKSB8fAorICAgICAgX3By
b2R1Y3Rpb25zX2RpY3Rpb25hcnlfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzhfX1siRGlj
dGlvbmFyeSJdLnBhcnNlKHRva2VuaXNlcikgfHwKKyAgICAgIF9wcm9kdWN0aW9uc19lbnVtX2pz
X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19bIkVudW0iXS5wYXJzZSh0b2tlbmlzZXIpIHx8
CisgICAgICBfcHJvZHVjdGlvbnNfdHlwZWRlZl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVf
NF9fWyJUeXBlZGVmIl0ucGFyc2UodG9rZW5pc2VyKSB8fAorICAgICAgX3Byb2R1Y3Rpb25zX2lu
Y2x1ZGVzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19bIkluY2x1ZGVzIl0ucGFyc2Uo
dG9rZW5pc2VyKSB8fAorICAgICAgX3Byb2R1Y3Rpb25zX25hbWVzcGFjZV9qc19fV0VCUEFDS19J
TVBPUlRFRF9NT0RVTEVfOV9fWyJOYW1lc3BhY2UiXS5wYXJzZSh0b2tlbmlzZXIpOworICB9CisK
KyAgZnVuY3Rpb24gZGVmaW5pdGlvbnMoKSB7CisgICAgaWYgKCFzb3VyY2UubGVuZ3RoKSByZXR1
cm4gW107CisgICAgY29uc3QgZGVmcyA9IFtdOworICAgIHdoaWxlICh0cnVlKSB7CisgICAgICBj
b25zdCBlYSA9IF9wcm9kdWN0aW9uc19leHRlbmRlZF9hdHRyaWJ1dGVzX2pzX19XRUJQQUNLX0lN
UE9SVEVEX01PRFVMRV8zX19bIkV4dGVuZGVkQXR0cmlidXRlcyJdLnBhcnNlKHRva2VuaXNlcik7
CisgICAgICBjb25zdCBkZWYgPSBkZWZpbml0aW9uKCk7CisgICAgICBpZiAoIWRlZikgeworICAg
ICAgICBpZiAoZWEubGVuZ3RoKSBlcnJvcigiU3RyYXkgZXh0ZW5kZWQgYXR0cmlidXRlcyIpOwor
ICAgICAgICBicmVhazsKICAgICAgIH0KLSAgICAgIGlmIChyZXQpIGVycm9yKCJGYWlsZWQgdG8g
cGFyc2UgaW50ZWdlciB0eXBlIik7CisgICAgICBkZWYuZXh0QXR0cnMgPSBlYTsKKyAgICAgIGRl
ZnMucHVzaChkZWYpOwogICAgIH0KLQotICAgIGZ1bmN0aW9uIGZsb2F0X3R5cGUoKSB7Ci0gICAg
ICBsZXQgcmV0ID0gIiI7Ci0gICAgICBpZiAoY29uc3VtZSgidW5yZXN0cmljdGVkIikpIHJldCA9
ICJ1bnJlc3RyaWN0ZWQgIjsKLSAgICAgIGlmIChjb25zdW1lKCJmbG9hdCIpKSByZXR1cm4gcmV0
ICsgImZsb2F0IjsKLSAgICAgIGlmIChjb25zdW1lKCJkb3VibGUiKSkgcmV0dXJuIHJldCArICJk
b3VibGUiOwotICAgICAgaWYgKHJldCkgZXJyb3IoIkZhaWxlZCB0byBwYXJzZSBmbG9hdCB0eXBl
Iik7CisgICAgY29uc3QgZW9mID0gY29uc3VtZSgiZW9mIik7CisgICAgaWYgKG9wdGlvbnMuY29u
Y3JldGUpIHsKKyAgICAgIGRlZnMucHVzaChlb2YpOwogICAgIH0KKyAgICByZXR1cm4gZGVmczsK
KyAgfQorICBjb25zdCByZXMgPSBkZWZpbml0aW9ucygpOworICBpZiAodG9rZW5pc2VyLnBvc2l0
aW9uIDwgc291cmNlLmxlbmd0aCkgZXJyb3IoIlVucmVjb2duaXNlZCB0b2tlbnMiKTsKKyAgcmV0
dXJuIHJlczsKK30KKworZnVuY3Rpb24gcGFyc2Uoc3RyLCBvcHRpb25zID0ge30pIHsKKyAgY29u
c3QgdG9rZW5pc2VyID0gbmV3IF90b2tlbmlzZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxF
XzBfX1siVG9rZW5pc2VyIl0oc3RyKTsKKyAgaWYgKHR5cGVvZiBvcHRpb25zLnNvdXJjZU5hbWUg
IT09ICJ1bmRlZmluZWQiKSB7CisgICAgdG9rZW5pc2VyLnNvdXJjZS5uYW1lID0gb3B0aW9ucy5z
b3VyY2VOYW1lOworICB9CisgIHJldHVybiBwYXJzZUJ5VG9rZW5zKHRva2VuaXNlciwgb3B0aW9u
cyk7Cit9CiAKLSAgICBmdW5jdGlvbiBwcmltaXRpdmVfdHlwZSgpIHsKLSAgICAgIGNvbnN0IG51
bV90eXBlID0gaW50ZWdlcl90eXBlKCkgfHwgZmxvYXRfdHlwZSgpOwotICAgICAgaWYgKG51bV90
eXBlKSByZXR1cm4gbnVtX3R5cGU7Ci0gICAgICBpZiAoY29uc3VtZSgiYm9vbGVhbiIpKSByZXR1
cm4gImJvb2xlYW4iOwotICAgICAgaWYgKGNvbnN1bWUoImJ5dGUiKSkgcmV0dXJuICJieXRlIjsK
LSAgICAgIGlmIChjb25zdW1lKCJvY3RldCIpKSByZXR1cm4gIm9jdGV0IjsKLSAgICB9CiAKLSAg
ICBmdW5jdGlvbiBjb25zdF92YWx1ZSgpIHsKLSAgICAgIGlmIChjb25zdW1lKCJ0cnVlIikpIHJl
dHVybiB7IHR5cGU6ICJib29sZWFuIiwgdmFsdWU6IHRydWUgfTsKLSAgICAgIGlmIChjb25zdW1l
KCJmYWxzZSIpKSByZXR1cm4geyB0eXBlOiAiYm9vbGVhbiIsIHZhbHVlOiBmYWxzZSB9OwotICAg
ICAgaWYgKGNvbnN1bWUoIm51bGwiKSkgcmV0dXJuIHsgdHlwZTogIm51bGwiIH07Ci0gICAgICBp
ZiAoY29uc3VtZSgiSW5maW5pdHkiKSkgcmV0dXJuIHsgdHlwZTogIkluZmluaXR5IiwgbmVnYXRp
dmU6IGZhbHNlIH07Ci0gICAgICBpZiAoY29uc3VtZSgiLUluZmluaXR5IikpIHJldHVybiB7IHR5
cGU6ICJJbmZpbml0eSIsIG5lZ2F0aXZlOiB0cnVlIH07Ci0gICAgICBpZiAoY29uc3VtZSgiTmFO
IikpIHJldHVybiB7IHR5cGU6ICJOYU4iIH07Ci0gICAgICBjb25zdCByZXQgPSBjb25zdW1lKEZM
T0FULCBJTlQpOwotICAgICAgaWYgKHJldCkgcmV0dXJuIHsgdHlwZTogIm51bWJlciIsIHZhbHVl
OiByZXQudmFsdWUgfTsKLSAgICB9CisvKioqLyB9KSwKKy8qIDIgKi8KKy8qKiovIChmdW5jdGlv
bihtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pIHsKIAot
ICAgIGZ1bmN0aW9uIHR5cGVfc3VmZml4KG9iaikgewotICAgICAgb2JqLm51bGxhYmxlID0gISFj
b25zdW1lKCI/Iik7Ci0gICAgICBpZiAocHJvYmUoIj8iKSkgZXJyb3IoIkNhbid0IG51bGxhYmxl
IG1vcmUgdGhhbiBvbmNlIik7CisidXNlIHN0cmljdCI7CitfX3dlYnBhY2tfcmVxdWlyZV9fLnIo
X193ZWJwYWNrX2V4cG9ydHNfXyk7CisvKiBoYXJtb255IGV4cG9ydCAoYmluZGluZykgKi8gX193
ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sICJzdHJpbmdUeXBlcyIsIGZ1
bmN0aW9uKCkgeyByZXR1cm4gc3RyaW5nVHlwZXM7IH0pOworLyogaGFybW9ueSBleHBvcnQgKGJp
bmRpbmcpICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAiYXJn
dW1lbnROYW1lS2V5d29yZHMiLCBmdW5jdGlvbigpIHsgcmV0dXJuIGFyZ3VtZW50TmFtZUtleXdv
cmRzOyB9KTsKKy8qIGhhcm1vbnkgZXhwb3J0IChiaW5kaW5nKSAqLyBfX3dlYnBhY2tfcmVxdWly
ZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgIlRva2VuaXNlciIsIGZ1bmN0aW9uKCkgeyByZXR1
cm4gVG9rZW5pc2VyOyB9KTsKKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfZXJyb3JfanNfX1dF
QlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMyk7CisvKiBo
YXJtb255IGltcG9ydCAqLyB2YXIgX3Byb2R1Y3Rpb25zX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1Q
T1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oNCk7CisKKworCisvLyBUaGVz
ZSByZWd1bGFyIGV4cHJlc3Npb25zIHVzZSB0aGUgc3RpY2t5IGZsYWcgc28gdGhleSB3aWxsIG9u
bHkgbWF0Y2ggYXQKKy8vIHRoZSBjdXJyZW50IGxvY2F0aW9uIChpZS4gdGhlIG9mZnNldCBvZiBs
YXN0SW5kZXgpLgorY29uc3QgdG9rZW5SZSA9IHsKKyAgLy8gVGhpcyBleHByZXNzaW9uIHVzZXMg
YSBsb29rYWhlYWQgYXNzZXJ0aW9uIHRvIGNhdGNoIGZhbHNlIG1hdGNoZXMKKyAgLy8gYWdhaW5z
dCBpbnRlZ2VycyBlYXJseS4KKyAgImRlY2ltYWwiOiAvLT8oPz1bMC05XSpcLnxbMC05XStbZUVd
KSgoWzAtOV0rXC5bMC05XSp8WzAtOV0qXC5bMC05XSspKFtFZV1bLStdP1swLTldKyk/fFswLTld
K1tFZV1bLStdP1swLTldKykveSwKKyAgImludGVnZXIiOiAvLT8oMChbWHhdWzAtOUEtRmEtZl0r
fFswLTddKil8WzEtOV1bMC05XSopL3ksCisgICJpZGVudGlmaWVyIjogL1tfLV0/W0EtWmEtel1b
MC05QS1aX2Etei1dKi95LAorICAic3RyaW5nIjogLyJbXiJdKiIveSwKKyAgIndoaXRlc3BhY2Ui
OiAvW1x0XG5cciBdKy95LAorICAiY29tbWVudCI6IC8oKFwvKFwvLip8XCooW14qXXxcKlteL10p
KlwqXC8pW1x0XG5cciBdKikrKS95LAorICAib3RoZXIiOiAvW15cdFxuXHIgMC05QS1aYS16XS95
Cit9OworCitjb25zdCBzdHJpbmdUeXBlcyA9IFsKKyAgIkJ5dGVTdHJpbmciLAorICAiRE9NU3Ry
aW5nIiwKKyAgIlVTVlN0cmluZyIKK107CisKK2NvbnN0IGFyZ3VtZW50TmFtZUtleXdvcmRzID0g
WworICAiYXN5bmMiLAorICAiYXR0cmlidXRlIiwKKyAgImNhbGxiYWNrIiwKKyAgImNvbnN0IiwK
KyAgImNvbnN0cnVjdG9yIiwKKyAgImRlbGV0ZXIiLAorICAiZGljdGlvbmFyeSIsCisgICJlbnVt
IiwKKyAgImdldHRlciIsCisgICJpbmNsdWRlcyIsCisgICJpbmhlcml0IiwKKyAgImludGVyZmFj
ZSIsCisgICJpdGVyYWJsZSIsCisgICJtYXBsaWtlIiwKKyAgIm5hbWVzcGFjZSIsCisgICJwYXJ0
aWFsIiwKKyAgInJlcXVpcmVkIiwKKyAgInNldGxpa2UiLAorICAic2V0dGVyIiwKKyAgInN0YXRp
YyIsCisgICJzdHJpbmdpZmllciIsCisgICJ0eXBlZGVmIiwKKyAgInVucmVzdHJpY3RlZCIKK107
CisKK2NvbnN0IG5vblJlZ2V4VGVybWluYWxzID0gWworICAiLUluZmluaXR5IiwKKyAgIkZyb3pl
bkFycmF5IiwKKyAgIkluZmluaXR5IiwKKyAgIk5hTiIsCisgICJQcm9taXNlIiwKKyAgImFzeW5j
IiwKKyAgImJvb2xlYW4iLAorICAiYnl0ZSIsCisgICJjb25zdHJ1Y3RvciIsCisgICJkb3VibGUi
LAorICAiZmFsc2UiLAorICAiZmxvYXQiLAorICAibG9uZyIsCisgICJtaXhpbiIsCisgICJudWxs
IiwKKyAgIm9jdGV0IiwKKyAgIm9wdGlvbmFsIiwKKyAgIm9yIiwKKyAgInJlYWRvbmx5IiwKKyAg
InJlY29yZCIsCisgICJzZXF1ZW5jZSIsCisgICJzaG9ydCIsCisgICJ0cnVlIiwKKyAgInVuc2ln
bmVkIiwKKyAgInZvaWQiCitdLmNvbmNhdChhcmd1bWVudE5hbWVLZXl3b3Jkcywgc3RyaW5nVHlw
ZXMpOworCitjb25zdCBwdW5jdHVhdGlvbnMgPSBbCisgICIoIiwKKyAgIikiLAorICAiLCIsCisg
ICIuLi4iLAorICAiOiIsCisgICI7IiwKKyAgIjwiLAorICAiPSIsCisgICI+IiwKKyAgIj8iLAor
ICAiWyIsCisgICJdIiwKKyAgInsiLAorICAifSIKK107CisKK2NvbnN0IHJlc2VydmVkID0gWwor
ICAvLyAiY29uc3RydWN0b3IiIGlzIG5vdyBhIGtleXdvcmQKKyAgIl9jb25zdHJ1Y3RvciIsCisg
ICJ0b1N0cmluZyIsCisgICJfdG9TdHJpbmciLAorXTsKKworLyoqCisgKiBAcGFyYW0ge3N0cmlu
Z30gc3RyCisgKi8KK2Z1bmN0aW9uIHRva2VuaXNlKHN0cikgeworICBjb25zdCB0b2tlbnMgPSBb
XTsKKyAgbGV0IGxhc3RDaGFySW5kZXggPSAwOworICBsZXQgdHJpdmlhID0gIiI7CisgIGxldCBs
aW5lID0gMTsKKyAgbGV0IGluZGV4ID0gMDsKKyAgd2hpbGUgKGxhc3RDaGFySW5kZXggPCBzdHIu
bGVuZ3RoKSB7CisgICAgY29uc3QgbmV4dENoYXIgPSBzdHIuY2hhckF0KGxhc3RDaGFySW5kZXgp
OworICAgIGxldCByZXN1bHQgPSAtMTsKKworICAgIGlmICgvW1x0XG5cciBdLy50ZXN0KG5leHRD
aGFyKSkgeworICAgICAgcmVzdWx0ID0gYXR0ZW1wdFRva2VuTWF0Y2goIndoaXRlc3BhY2UiLCB7
IG5vRmx1c2hUcml2aWE6IHRydWUgfSk7CisgICAgfSBlbHNlIGlmIChuZXh0Q2hhciA9PT0gJy8n
KSB7CisgICAgICByZXN1bHQgPSBhdHRlbXB0VG9rZW5NYXRjaCgiY29tbWVudCIsIHsgbm9GbHVz
aFRyaXZpYTogdHJ1ZSB9KTsKICAgICB9CiAKLSAgICBmdW5jdGlvbiBnZW5lcmljX3R5cGUodHlw
ZU5hbWUpIHsKLSAgICAgIGNvbnN0IG5hbWUgPSBjb25zdW1lKCJGcm96ZW5BcnJheSIsICJQcm9t
aXNlIiwgInNlcXVlbmNlIiwgInJlY29yZCIpOwotICAgICAgaWYgKCFuYW1lKSB7Ci0gICAgICAg
IHJldHVybjsKLSAgICAgIH0KLSAgICAgIGNvbnN0IHJldCA9IHsgZ2VuZXJpYzogbmFtZS50eXBl
IH07Ci0gICAgICBjb25zdW1lKCI8IikgfHwgZXJyb3IoYE5vIG9wZW5pbmcgYnJhY2tldCBhZnRl
ciAke25hbWUudHlwZX1gKTsKLSAgICAgIHN3aXRjaCAobmFtZS50eXBlKSB7Ci0gICAgICAgIGNh
c2UgIlByb21pc2UiOgotICAgICAgICAgIGlmIChwcm9iZSgiWyIpKSBlcnJvcigiUHJvbWlzZSB0
eXBlIGNhbm5vdCBoYXZlIGV4dGVuZGVkIGF0dHJpYnV0ZSIpOwotICAgICAgICAgIHJldC5pZGxU
eXBlID0gcmV0dXJuX3R5cGUodHlwZU5hbWUpOwotICAgICAgICAgIGJyZWFrOwotICAgICAgICBj
YXNlICJzZXF1ZW5jZSI6Ci0gICAgICAgIGNhc2UgIkZyb3plbkFycmF5IjoKLSAgICAgICAgICBy
ZXQuaWRsVHlwZSA9IHR5cGVfd2l0aF9leHRlbmRlZF9hdHRyaWJ1dGVzKHR5cGVOYW1lKTsKLSAg
ICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSAicmVjb3JkIjoKLSAgICAgICAgICBpZiAocHJv
YmUoIlsiKSkgZXJyb3IoIlJlY29yZCBrZXkgY2Fubm90IGhhdmUgZXh0ZW5kZWQgYXR0cmlidXRl
Iik7Ci0gICAgICAgICAgcmV0LmlkbFR5cGUgPSBbXTsKLSAgICAgICAgICBjb25zdCBrZXlUeXBl
ID0gY29uc3VtZSguLi5zdHJpbmdUeXBlcyk7Ci0gICAgICAgICAgaWYgKCFrZXlUeXBlKSBlcnJv
cihgUmVjb3JkIGtleSBtdXN0IGJlIGEgc3RyaW5nIHR5cGVgKTsKLSAgICAgICAgICByZXQuaWRs
VHlwZS5wdXNoKE9iamVjdC5hc3NpZ24oeyB0eXBlOiB0eXBlTmFtZSB9LCBFTVBUWV9JRExUWVBF
LCB7IGlkbFR5cGU6IGtleVR5cGUudmFsdWUgfSkpOwotICAgICAgICAgIGNvbnN1bWUoIiwiKSB8
fCBlcnJvcigiTWlzc2luZyBjb21tYSBhZnRlciByZWNvcmQga2V5IHR5cGUiKTsKLSAgICAgICAg
ICBjb25zdCB2YWx1ZVR5cGUgPSB0eXBlX3dpdGhfZXh0ZW5kZWRfYXR0cmlidXRlcyh0eXBlTmFt
ZSkgfHwgZXJyb3IoIkVycm9yIHBhcnNpbmcgZ2VuZXJpYyB0eXBlIHJlY29yZCIpOwotICAgICAg
ICAgIHJldC5pZGxUeXBlLnB1c2godmFsdWVUeXBlKTsKLSAgICAgICAgICBicmVhazsKKyAgICBp
ZiAocmVzdWx0ICE9PSAtMSkgeworICAgICAgY29uc3QgY3VycmVudFRyaXZpYSA9IHRva2Vucy5w
b3AoKS52YWx1ZTsKKyAgICAgIGxpbmUgKz0gKGN1cnJlbnRUcml2aWEubWF0Y2goL1xuL2cpIHx8
IFtdKS5sZW5ndGg7CisgICAgICB0cml2aWEgKz0gY3VycmVudFRyaXZpYTsKKyAgICAgIGluZGV4
IC09IDE7CisgICAgfSBlbHNlIGlmICgvWy0wLTkuQS1aX2Etel0vLnRlc3QobmV4dENoYXIpKSB7
CisgICAgICByZXN1bHQgPSBhdHRlbXB0VG9rZW5NYXRjaCgiZGVjaW1hbCIpOworICAgICAgaWYg
KHJlc3VsdCA9PT0gLTEpIHsKKyAgICAgICAgcmVzdWx0ID0gYXR0ZW1wdFRva2VuTWF0Y2goImlu
dGVnZXIiKTsKICAgICAgIH0KLSAgICAgIGlmICghcmV0LmlkbFR5cGUpIGVycm9yKGBFcnJvciBw
YXJzaW5nIGdlbmVyaWMgdHlwZSAke25hbWUudHlwZX1gKTsKLSAgICAgIGNvbnN1bWUoIj4iKSB8
fCBlcnJvcihgTWlzc2luZyBjbG9zaW5nIGJyYWNrZXQgYWZ0ZXIgJHtuYW1lLnR5cGV9YCk7Ci0g
ICAgICBpZiAobmFtZS50eXBlID09PSAiUHJvbWlzZSIgJiYgcHJvYmUoIj8iKSkgewotICAgICAg
ICBlcnJvcigiUHJvbWlzZSB0eXBlIGNhbm5vdCBiZSBudWxsYWJsZSIpOworICAgICAgaWYgKHJl
c3VsdCA9PT0gLTEpIHsKKyAgICAgICAgcmVzdWx0ID0gYXR0ZW1wdFRva2VuTWF0Y2goImlkZW50
aWZpZXIiKTsKKyAgICAgICAgY29uc3QgbGFzdEluZGV4ID0gdG9rZW5zLmxlbmd0aCAtIDE7Cisg
ICAgICAgIGNvbnN0IHRva2VuID0gdG9rZW5zW2xhc3RJbmRleF07CisgICAgICAgIGlmIChyZXN1
bHQgIT09IC0xKSB7CisgICAgICAgICAgaWYgKHJlc2VydmVkLmluY2x1ZGVzKHRva2VuLnZhbHVl
KSkgeworICAgICAgICAgICAgY29uc3QgbWVzc2FnZSA9IGAke09iamVjdChfcHJvZHVjdGlvbnNf
aGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fWyJ1bmVzY2FwZSJdKSh0b2tl
bi52YWx1ZSl9IGlzIGEgcmVzZXJ2ZWQgaWRlbnRpZmllciBhbmQgbXVzdCBub3QgYmUgdXNlZC5g
OworICAgICAgICAgICAgdGhyb3cgbmV3IFdlYklETFBhcnNlRXJyb3IoT2JqZWN0KF9lcnJvcl9q
c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJzeW50YXhFcnJvciJdKSh0b2tlbnMsIGxh
c3RJbmRleCwgbnVsbCwgbWVzc2FnZSkpOworICAgICAgICAgIH0gZWxzZSBpZiAobm9uUmVnZXhU
ZXJtaW5hbHMuaW5jbHVkZXModG9rZW4udmFsdWUpKSB7CisgICAgICAgICAgICB0b2tlbi50eXBl
ID0gdG9rZW4udmFsdWU7CisgICAgICAgICAgfQorICAgICAgICB9CiAgICAgICB9Ci0gICAgICB0
eXBlX3N1ZmZpeChyZXQpOwotICAgICAgcmV0dXJuIHJldDsKKyAgICB9IGVsc2UgaWYgKG5leHRD
aGFyID09PSAnIicpIHsKKyAgICAgIHJlc3VsdCA9IGF0dGVtcHRUb2tlbk1hdGNoKCJzdHJpbmci
KTsKICAgICB9CiAKLSAgICBmdW5jdGlvbiBzaW5nbGVfdHlwZSh0eXBlTmFtZSkgewotICAgICAg
Y29uc3QgcmV0ID0gT2JqZWN0LmFzc2lnbih7IHR5cGU6IHR5cGVOYW1lIHx8IG51bGwgfSwgRU1Q
VFlfSURMVFlQRSk7Ci0gICAgICBjb25zdCBnZW5lcmljID0gZ2VuZXJpY190eXBlKHR5cGVOYW1l
KTsKLSAgICAgIGlmIChnZW5lcmljKSB7Ci0gICAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKHJl
dCwgZ2VuZXJpYyk7CisgICAgZm9yIChjb25zdCBwdW5jdHVhdGlvbiBvZiBwdW5jdHVhdGlvbnMp
IHsKKyAgICAgIGlmIChzdHIuc3RhcnRzV2l0aChwdW5jdHVhdGlvbiwgbGFzdENoYXJJbmRleCkp
IHsKKyAgICAgICAgdG9rZW5zLnB1c2goeyB0eXBlOiBwdW5jdHVhdGlvbiwgdmFsdWU6IHB1bmN0
dWF0aW9uLCB0cml2aWEsIGxpbmUsIGluZGV4IH0pOworICAgICAgICB0cml2aWEgPSAiIjsKKyAg
ICAgICAgbGFzdENoYXJJbmRleCArPSBwdW5jdHVhdGlvbi5sZW5ndGg7CisgICAgICAgIHJlc3Vs
dCA9IGxhc3RDaGFySW5kZXg7CisgICAgICAgIGJyZWFrOwogICAgICAgfQotICAgICAgY29uc3Qg
cHJpbSA9IHByaW1pdGl2ZV90eXBlKCk7Ci0gICAgICBsZXQgbmFtZTsKLSAgICAgIGlmIChwcmlt
KSB7Ci0gICAgICAgIHJldC5pZGxUeXBlID0gcHJpbTsKLSAgICAgIH0gZWxzZSBpZiAobmFtZSA9
IGNvbnN1bWUoSUQsIC4uLnN0cmluZ1R5cGVzKSkgewotICAgICAgICByZXQuaWRsVHlwZSA9IG5h
bWUudmFsdWU7Ci0gICAgICAgIGlmIChwcm9iZSgiPCIpKSBlcnJvcihgVW5zdXBwb3J0ZWQgZ2Vu
ZXJpYyB0eXBlICR7bmFtZS52YWx1ZX1gKTsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIHJldHVy
bjsKLSAgICAgIH0KLSAgICAgIHR5cGVfc3VmZml4KHJldCk7Ci0gICAgICBpZiAocmV0Lm51bGxh
YmxlICYmIHJldC5pZGxUeXBlID09PSAiYW55IikgZXJyb3IoIlR5cGUgYW55IGNhbm5vdCBiZSBt
YWRlIG51bGxhYmxlIik7Ci0gICAgICByZXR1cm4gcmV0OwotICAgIH0KLQotICAgIGZ1bmN0aW9u
IHVuaW9uX3R5cGUodHlwZU5hbWUpIHsKLSAgICAgIGlmICghY29uc3VtZSgiKCIpKSByZXR1cm47
Ci0gICAgICBjb25zdCByZXQgPSBPYmplY3QuYXNzaWduKHsgdHlwZTogdHlwZU5hbWUgfHwgbnVs
bCB9LCBFTVBUWV9JRExUWVBFLCB7IHVuaW9uOiB0cnVlLCBpZGxUeXBlOiBbXSB9KTsKLSAgICAg
IGRvIHsKLSAgICAgICAgY29uc3QgdHlwID0gdHlwZV93aXRoX2V4dGVuZGVkX2F0dHJpYnV0ZXMo
KSB8fCBlcnJvcigiTm8gdHlwZSBhZnRlciBvcGVuIHBhcmVudGhlc2lzIG9yICdvcicgaW4gdW5p
b24gdHlwZSIpOwotICAgICAgICByZXQuaWRsVHlwZS5wdXNoKHR5cCk7Ci0gICAgICB9IHdoaWxl
IChjb25zdW1lKCJvciIpKTsKLSAgICAgIGlmIChyZXQuaWRsVHlwZS5sZW5ndGggPCAyKSB7Ci0g
ICAgICAgIGVycm9yKCJBdCBsZWFzdCB0d28gdHlwZXMgYXJlIGV4cGVjdGVkIGluIGEgdW5pb24g
dHlwZSBidXQgZm91bmQgbGVzcyIpOwotICAgICAgfQotICAgICAgaWYgKCFjb25zdW1lKCIpIikp
IGVycm9yKCJVbnRlcm1pbmF0ZWQgdW5pb24gdHlwZSIpOwotICAgICAgdHlwZV9zdWZmaXgocmV0
KTsKLSAgICAgIHJldHVybiByZXQ7CiAgICAgfQogCi0gICAgZnVuY3Rpb24gdHlwZSh0eXBlTmFt
ZSkgewotICAgICAgcmV0dXJuIHNpbmdsZV90eXBlKHR5cGVOYW1lKSB8fCB1bmlvbl90eXBlKHR5
cGVOYW1lKTsKKyAgICAvLyBvdGhlciBhcyB0aGUgbGFzdCB0cnkKKyAgICBpZiAocmVzdWx0ID09
PSAtMSkgeworICAgICAgcmVzdWx0ID0gYXR0ZW1wdFRva2VuTWF0Y2goIm90aGVyIik7CiAgICAg
fQotCi0gICAgZnVuY3Rpb24gdHlwZV93aXRoX2V4dGVuZGVkX2F0dHJpYnV0ZXModHlwZU5hbWUp
IHsKLSAgICAgIGNvbnN0IGV4dEF0dHJzID0gZXh0ZW5kZWRfYXR0cnMoKTsKLSAgICAgIGNvbnN0
IHJldCA9IHNpbmdsZV90eXBlKHR5cGVOYW1lKSB8fCB1bmlvbl90eXBlKHR5cGVOYW1lKTsKLSAg
ICAgIGlmIChleHRBdHRycy5sZW5ndGggJiYgcmV0KSByZXQuZXh0QXR0cnMgPSBleHRBdHRyczsK
LSAgICAgIHJldHVybiByZXQ7CisgICAgaWYgKHJlc3VsdCA9PT0gLTEpIHsKKyAgICAgIHRocm93
IG5ldyBFcnJvcigiVG9rZW4gc3RyZWFtIG5vdCBwcm9ncmVzc2luZyIpOwogICAgIH0KKyAgICBs
YXN0Q2hhckluZGV4ID0gcmVzdWx0OworICAgIGluZGV4ICs9IDE7CisgIH0KIAotICAgIGZ1bmN0
aW9uIGFyZ3VtZW50KCkgewotICAgICAgY29uc3Qgc3RhcnRfcG9zaXRpb24gPSBjb25zdW1lX3Bv
c2l0aW9uOwotICAgICAgY29uc3QgcmV0ID0geyBvcHRpb25hbDogZmFsc2UsIHZhcmlhZGljOiBm
YWxzZSwgZGVmYXVsdDogbnVsbCB9OwotICAgICAgcmV0LmV4dEF0dHJzID0gZXh0ZW5kZWRfYXR0
cnMoKTsKLSAgICAgIGNvbnN0IG9wdF90b2tlbiA9IGNvbnN1bWUoIm9wdGlvbmFsIik7Ci0gICAg
ICBpZiAob3B0X3Rva2VuKSB7Ci0gICAgICAgIHJldC5vcHRpb25hbCA9IHRydWU7Ci0gICAgICB9
Ci0gICAgICByZXQuaWRsVHlwZSA9IHR5cGVfd2l0aF9leHRlbmRlZF9hdHRyaWJ1dGVzKCJhcmd1
bWVudC10eXBlIik7Ci0gICAgICBpZiAoIXJldC5pZGxUeXBlKSB7Ci0gICAgICAgIHVuY29uc3Vt
ZShzdGFydF9wb3NpdGlvbik7Ci0gICAgICAgIHJldHVybjsKLSAgICAgIH0KLSAgICAgIGlmICgh
cmV0Lm9wdGlvbmFsICYmIGNvbnN1bWUoIi4uLiIpKSB7Ci0gICAgICAgIHJldC52YXJpYWRpYyA9
IHRydWU7Ci0gICAgICB9Ci0gICAgICBjb25zdCBuYW1lID0gY29uc3VtZShJRCwgLi4uYXJndW1l
bnROYW1lS2V5d29yZHMpOwotICAgICAgaWYgKCFuYW1lKSB7Ci0gICAgICAgIHVuY29uc3VtZShz
dGFydF9wb3NpdGlvbik7Ci0gICAgICAgIHJldHVybjsKKyAgLy8gcmVtYWluaW5nIHRyaXZpYSBh
cyBlb2YKKyAgdG9rZW5zLnB1c2goeworICAgIHR5cGU6ICJlb2YiLAorICAgIHZhbHVlOiAiIiwK
KyAgICB0cml2aWEKKyAgfSk7CisKKyAgcmV0dXJuIHRva2VuczsKKworICAvKioKKyAgICogQHBh
cmFtIHtrZXlvZiB0b2tlblJlfSB0eXBlCisgICAqIEBwYXJhbSB7b2JqZWN0fSBbb3B0aW9uc10K
KyAgICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5ub0ZsdXNoVHJpdmlhXQorICAgKi8KKyAg
ZnVuY3Rpb24gYXR0ZW1wdFRva2VuTWF0Y2godHlwZSwgeyBub0ZsdXNoVHJpdmlhIH0gPSB7fSkg
eworICAgIGNvbnN0IHJlID0gdG9rZW5SZVt0eXBlXTsKKyAgICByZS5sYXN0SW5kZXggPSBsYXN0
Q2hhckluZGV4OworICAgIGNvbnN0IHJlc3VsdCA9IHJlLmV4ZWMoc3RyKTsKKyAgICBpZiAocmVz
dWx0KSB7CisgICAgICB0b2tlbnMucHVzaCh7IHR5cGUsIHZhbHVlOiByZXN1bHRbMF0sIHRyaXZp
YSwgbGluZSwgaW5kZXggfSk7CisgICAgICBpZiAoIW5vRmx1c2hUcml2aWEpIHsKKyAgICAgICAg
dHJpdmlhID0gIiI7CiAgICAgICB9Ci0gICAgICByZXQubmFtZSA9IHVuZXNjYXBlKG5hbWUudmFs
dWUpOwotICAgICAgcmV0LmVzY2FwZWROYW1lID0gbmFtZS52YWx1ZTsKLSAgICAgIGlmIChyZXQu
b3B0aW9uYWwpIHsKLSAgICAgICAgcmV0LmRlZmF1bHQgPSBkZWZhdWx0XygpIHx8IG51bGw7Ci0g
ICAgICB9Ci0gICAgICByZXR1cm4gcmV0OworICAgICAgcmV0dXJuIHJlLmxhc3RJbmRleDsKICAg
ICB9CisgICAgcmV0dXJuIC0xOworICB9Cit9CisKK2NsYXNzIFRva2VuaXNlciB7CisgIC8qKgor
ICAgKiBAcGFyYW0ge3N0cmluZ30gaWRsCisgICAqLworICBjb25zdHJ1Y3RvcihpZGwpIHsKKyAg
ICB0aGlzLnNvdXJjZSA9IHRva2VuaXNlKGlkbCk7CisgICAgdGhpcy5wb3NpdGlvbiA9IDA7Cisg
IH0KIAotICAgIGZ1bmN0aW9uIGFyZ3VtZW50X2xpc3QoKSB7Ci0gICAgICBjb25zdCByZXQgPSBb
XTsKLSAgICAgIGNvbnN0IGFyZyA9IGFyZ3VtZW50KCk7Ci0gICAgICBpZiAoIWFyZykgcmV0dXJu
IHJldDsKLSAgICAgIHJldC5wdXNoKGFyZyk7Ci0gICAgICB3aGlsZSAodHJ1ZSkgewotICAgICAg
ICBpZiAoIWNvbnN1bWUoIiwiKSkgcmV0dXJuIHJldDsKLSAgICAgICAgY29uc3Qgbnh0ID0gYXJn
dW1lbnQoKSB8fCBlcnJvcigiVHJhaWxpbmcgY29tbWEgaW4gYXJndW1lbnRzIGxpc3QiKTsKLSAg
ICAgICAgcmV0LnB1c2gobnh0KTsKLSAgICAgIH0KKyAgLyoqCisgICAqIEBwYXJhbSB7c3RyaW5n
fSBtZXNzYWdlCisgICAqLworICBlcnJvcihtZXNzYWdlKSB7CisgICAgdGhyb3cgbmV3IFdlYklE
TFBhcnNlRXJyb3IoT2JqZWN0KF9lcnJvcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9f
WyJzeW50YXhFcnJvciJdKSh0aGlzLnNvdXJjZSwgdGhpcy5wb3NpdGlvbiwgdGhpcy5jdXJyZW50
LCBtZXNzYWdlKSk7CisgIH0KKworICAvKioKKyAgICogQHBhcmFtIHtzdHJpbmd9IHR5cGUKKyAg
ICovCisgIHByb2JlKHR5cGUpIHsKKyAgICByZXR1cm4gdGhpcy5zb3VyY2UubGVuZ3RoID4gdGhp
cy5wb3NpdGlvbiAmJiB0aGlzLnNvdXJjZVt0aGlzLnBvc2l0aW9uXS50eXBlID09PSB0eXBlOwor
ICB9CisKKyAgLyoqCisgICAqIEBwYXJhbSAgey4uLnN0cmluZ30gY2FuZGlkYXRlcworICAgKi8K
KyAgY29uc3VtZSguLi5jYW5kaWRhdGVzKSB7CisgICAgZm9yIChjb25zdCB0eXBlIG9mIGNhbmRp
ZGF0ZXMpIHsKKyAgICAgIGlmICghdGhpcy5wcm9iZSh0eXBlKSkgY29udGludWU7CisgICAgICBj
b25zdCB0b2tlbiA9IHRoaXMuc291cmNlW3RoaXMucG9zaXRpb25dOworICAgICAgdGhpcy5wb3Np
dGlvbisrOworICAgICAgcmV0dXJuIHRva2VuOwogICAgIH0KKyAgfQogCi0gICAgZnVuY3Rpb24g
c2ltcGxlX2V4dGVuZGVkX2F0dHIoKSB7Ci0gICAgICBjb25zdCBuYW1lID0gY29uc3VtZShJRCk7
Ci0gICAgICBpZiAoIW5hbWUpIHJldHVybjsKLSAgICAgIGNvbnN0IHJldCA9IHsKLSAgICAgICAg
bmFtZTogbmFtZS52YWx1ZSwKLSAgICAgICAgYXJndW1lbnRzOiBudWxsLAotICAgICAgICB0eXBl
OiAiZXh0ZW5kZWQtYXR0cmlidXRlIiwKLSAgICAgICAgcmhzOiBudWxsCi0gICAgICB9OwotICAg
ICAgY29uc3QgZXEgPSBjb25zdW1lKCI9Iik7Ci0gICAgICBpZiAoZXEpIHsKLSAgICAgICAgcmV0
LnJocyA9IGNvbnN1bWUoSUQsIEZMT0FULCBJTlQsIFNUUik7Ci0gICAgICAgIGlmIChyZXQucmhz
KSB7Ci0gICAgICAgICAgLy8gTm8gdHJpdmlhIGV4cG9zdXJlIHlldAotICAgICAgICAgIHJldC5y
aHMudHJpdmlhID0gdW5kZWZpbmVkOwotICAgICAgICB9Ci0gICAgICB9Ci0gICAgICBpZiAoY29u
c3VtZSgiKCIpKSB7Ci0gICAgICAgIGlmIChlcSAmJiAhcmV0LnJocykgewotICAgICAgICAgIC8v
IFtFeHBvc2VkPShXaW5kb3csV29ya2VyKV0KLSAgICAgICAgICByZXQucmhzID0gewotICAgICAg
ICAgICAgdHlwZTogImlkZW50aWZpZXItbGlzdCIsCi0gICAgICAgICAgICB2YWx1ZTogaWRlbnRp
ZmllcnMoKQotICAgICAgICAgIH07Ci0gICAgICAgIH0KLSAgICAgICAgZWxzZSB7Ci0gICAgICAg
ICAgLy8gW05hbWVkQ29uc3RydWN0b3I9QXVkaW8oRE9NU3RyaW5nIHNyYyldIG9yIFtDb25zdHJ1
Y3RvcihET01TdHJpbmcgc3RyKV0KLSAgICAgICAgICByZXQuYXJndW1lbnRzID0gYXJndW1lbnRf
bGlzdCgpOwotICAgICAgICB9Ci0gICAgICAgIGNvbnN1bWUoIikiKSB8fCBlcnJvcigiVW5leHBl
Y3RlZCB0b2tlbiBpbiBleHRlbmRlZCBhdHRyaWJ1dGUgYXJndW1lbnQgbGlzdCIpOwotICAgICAg
fQotICAgICAgaWYgKGVxICYmICFyZXQucmhzKSBlcnJvcigiTm8gcmlnaHQgaGFuZCBzaWRlIHRv
IGV4dGVuZGVkIGF0dHJpYnV0ZSBhc3NpZ25tZW50Iik7Ci0gICAgICByZXR1cm4gcmV0OwotICAg
IH0KLQotICAgIC8vIE5vdGU6IHdlIHBhcnNlIHNvbWV0aGluZyBzaW1wbGVyIHRoYW4gdGhlIG9m
ZmljaWFsIHN5bnRheC4gSXQncyBhbGwgdGhhdCBldmVyCi0gICAgLy8gc2VlbXMgdG8gYmUgdXNl
ZAotICAgIGZ1bmN0aW9uIGV4dGVuZGVkX2F0dHJzKCkgewotICAgICAgY29uc3QgZWFzID0gW107
Ci0gICAgICBpZiAoIWNvbnN1bWUoIlsiKSkgcmV0dXJuIGVhczsKLSAgICAgIGVhc1swXSA9IHNp
bXBsZV9leHRlbmRlZF9hdHRyKCkgfHwgZXJyb3IoIkV4dGVuZGVkIGF0dHJpYnV0ZSB3aXRoIG5v
dCBjb250ZW50Iik7Ci0gICAgICB3aGlsZSAoY29uc3VtZSgiLCIpKSB7Ci0gICAgICAgIGVhcy5w
dXNoKHNpbXBsZV9leHRlbmRlZF9hdHRyKCkgfHwgZXJyb3IoIlRyYWlsaW5nIGNvbW1hIGluIGV4
dGVuZGVkIGF0dHJpYnV0ZSIpKTsKLSAgICAgIH0KLSAgICAgIGNvbnN1bWUoIl0iKSB8fCBlcnJv
cigiTm8gZW5kIG9mIGV4dGVuZGVkIGF0dHJpYnV0ZSIpOwotICAgICAgcmV0dXJuIGVhczsKLSAg
ICB9Ci0KLSAgICBmdW5jdGlvbiBkZWZhdWx0XygpIHsKLSAgICAgIGlmIChjb25zdW1lKCI9Iikp
IHsKLSAgICAgICAgY29uc3QgZGVmID0gY29uc3RfdmFsdWUoKTsKLSAgICAgICAgaWYgKGRlZikg
ewotICAgICAgICAgIHJldHVybiBkZWY7Ci0gICAgICAgIH0gZWxzZSBpZiAoY29uc3VtZSgiWyIp
KSB7Ci0gICAgICAgICAgaWYgKCFjb25zdW1lKCJdIikpIGVycm9yKCJEZWZhdWx0IHNlcXVlbmNl
IHZhbHVlIG11c3QgYmUgZW1wdHkiKTsKLSAgICAgICAgICByZXR1cm4geyB0eXBlOiAic2VxdWVu
Y2UiLCB2YWx1ZTogW10gfTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICBjb25zdCBzdHIg
PSBjb25zdW1lKFNUUikgfHwgZXJyb3IoIk5vIHZhbHVlIGZvciBkZWZhdWx0Iik7Ci0gICAgICAg
ICAgc3RyLnZhbHVlID0gc3RyLnZhbHVlLnNsaWNlKDEsIC0xKTsKLSAgICAgICAgICAvLyBObyB0
cml2aWEgZXhwb3N1cmUgeWV0Ci0gICAgICAgICAgc3RyLnRyaXZpYSA9IHVuZGVmaW5lZDsKLSAg
ICAgICAgICByZXR1cm4gc3RyOwotICAgICAgICB9Ci0gICAgICB9CisgIC8qKgorICAgKiBAcGFy
YW0ge251bWJlcn0gcG9zaXRpb24KKyAgICovCisgIHVuY29uc3VtZShwb3NpdGlvbikgeworICAg
IHRoaXMucG9zaXRpb24gPSBwb3NpdGlvbjsKKyAgfQorfQorCitjbGFzcyBXZWJJRExQYXJzZUVy
cm9yIGV4dGVuZHMgRXJyb3IgeworICBjb25zdHJ1Y3Rvcih7IG1lc3NhZ2UsIGJhcmVNZXNzYWdl
LCBjb250ZXh0LCBsaW5lLCBzb3VyY2VOYW1lLCBpbnB1dCwgdG9rZW5zIH0pIHsKKyAgICBzdXBl
cihtZXNzYWdlKTsKKworICAgIHRoaXMubmFtZSA9ICJXZWJJRExQYXJzZUVycm9yIjsgLy8gbm90
IHRvIGJlIG1hbmdsZWQKKyAgICB0aGlzLmJhcmVNZXNzYWdlID0gYmFyZU1lc3NhZ2U7CisgICAg
dGhpcy5jb250ZXh0ID0gY29udGV4dDsKKyAgICB0aGlzLmxpbmUgPSBsaW5lOworICAgIHRoaXMu
c291cmNlTmFtZSA9IHNvdXJjZU5hbWU7CisgICAgdGhpcy5pbnB1dCA9IGlucHV0OworICAgIHRo
aXMudG9rZW5zID0gdG9rZW5zOworICB9Cit9CisKKworLyoqKi8gfSksCisvKiAzICovCisvKioq
LyAoZnVuY3Rpb24obW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWly
ZV9fKSB7CisKKyJ1c2Ugc3RyaWN0IjsKK19fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tf
ZXhwb3J0c19fKTsKKy8qIGhhcm1vbnkgZXhwb3J0IChiaW5kaW5nKSAqLyBfX3dlYnBhY2tfcmVx
dWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgInN5bnRheEVycm9yIiwgZnVuY3Rpb24oKSB7
IHJldHVybiBzeW50YXhFcnJvcjsgfSk7CisvKiBoYXJtb255IGV4cG9ydCAoYmluZGluZykgKi8g
X193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sICJ2YWxpZGF0aW9uRXJy
b3IiLCBmdW5jdGlvbigpIHsgcmV0dXJuIHZhbGlkYXRpb25FcnJvcjsgfSk7CisvKioKKyAqIEBw
YXJhbSB7c3RyaW5nfSB0ZXh0CisgKi8KK2Z1bmN0aW9uIGxhc3RMaW5lKHRleHQpIHsKKyAgY29u
c3Qgc3BsaXR0ZWQgPSB0ZXh0LnNwbGl0KCJcbiIpOworICByZXR1cm4gc3BsaXR0ZWRbc3BsaXR0
ZWQubGVuZ3RoIC0gMV07Cit9CisKKy8qKgorICogQHR5cGVkZWYge29iamVjdH0gV2ViSURMMkVy
cm9yT3B0aW9ucworICogQHByb3BlcnR5IHsiZXJyb3IiIHwgIndhcm5pbmcifSBsZXZlbAorICog
QHByb3BlcnR5IHtGdW5jdGlvbn0gYXV0b2ZpeAorICoKKyAqIEBwYXJhbSB7c3RyaW5nfSBtZXNz
YWdlIGVycm9yIG1lc3NhZ2UKKyAqIEBwYXJhbSB7IlN5bnRheCIgfCAiVmFsaWRhdGlvbiJ9IGtp
bmQgZXJyb3IgdHlwZQorICogQHBhcmFtIHtXZWJJREwyRXJyb3JPcHRpb25zfSBbb3B0aW9uc10K
KyAqLworZnVuY3Rpb24gZXJyb3Ioc291cmNlLCBwb3NpdGlvbiwgY3VycmVudCwgbWVzc2FnZSwg
a2luZCwgeyBsZXZlbCA9ICJlcnJvciIsIGF1dG9maXggfSA9IHt9KSB7CisgIC8qKgorICAgKiBA
cGFyYW0ge251bWJlcn0gY291bnQKKyAgICovCisgIGZ1bmN0aW9uIHNsaWNlVG9rZW5zKGNvdW50
KSB7CisgICAgcmV0dXJuIGNvdW50ID4gMCA/CisgICAgICBzb3VyY2Uuc2xpY2UocG9zaXRpb24s
IHBvc2l0aW9uICsgY291bnQpIDoKKyAgICAgIHNvdXJjZS5zbGljZShNYXRoLm1heChwb3NpdGlv
biArIGNvdW50LCAwKSwgcG9zaXRpb24pOworICB9CisKKyAgZnVuY3Rpb24gdG9rZW5zVG9UZXh0
KGlucHV0cywgeyBwcmVjZWRlcyB9ID0ge30pIHsKKyAgICBjb25zdCB0ZXh0ID0gaW5wdXRzLm1h
cCh0ID0+IHQudHJpdmlhICsgdC52YWx1ZSkuam9pbigiIik7CisgICAgY29uc3QgbmV4dFRva2Vu
ID0gc291cmNlW3Bvc2l0aW9uXTsKKyAgICBpZiAobmV4dFRva2VuLnR5cGUgPT09ICJlb2YiKSB7
CisgICAgICByZXR1cm4gdGV4dDsKICAgICB9CisgICAgaWYgKHByZWNlZGVzKSB7CisgICAgICBy
ZXR1cm4gdGV4dCArIG5leHRUb2tlbi50cml2aWE7CisgICAgfQorICAgIHJldHVybiB0ZXh0LnNs
aWNlKG5leHRUb2tlbi50cml2aWEubGVuZ3RoKTsKKyAgfQogCi0gICAgZnVuY3Rpb24gY29uc3Rf
KCkgewotICAgICAgaWYgKCFjb25zdW1lKCJjb25zdCIpKSByZXR1cm47Ci0gICAgICBjb25zdCBy
ZXQgPSB7IHR5cGU6ICJjb25zdCIsIG51bGxhYmxlOiBmYWxzZSB9OwotICAgICAgbGV0IHR5cCA9
IHByaW1pdGl2ZV90eXBlKCk7Ci0gICAgICBpZiAoIXR5cCkgewotICAgICAgICB0eXAgPSBjb25z
dW1lKElEKSB8fCBlcnJvcigiTm8gdHlwZSBmb3IgY29uc3QiKTsKLSAgICAgICAgdHlwID0gdHlw
LnZhbHVlOwotICAgICAgfQotICAgICAgcmV0LmlkbFR5cGUgPSBPYmplY3QuYXNzaWduKHsgdHlw
ZTogImNvbnN0LXR5cGUiIH0sIEVNUFRZX0lETFRZUEUsIHsgaWRsVHlwZTogdHlwIH0pOwotICAg
ICAgdHlwZV9zdWZmaXgocmV0KTsKLSAgICAgIGNvbnN0IG5hbWUgPSBjb25zdW1lKElEKSB8fCBl
cnJvcigiTm8gbmFtZSBmb3IgY29uc3QiKTsKLSAgICAgIHJldC5uYW1lID0gbmFtZS52YWx1ZTsK
LSAgICAgIGNvbnN1bWUoIj0iKSB8fCBlcnJvcigiTm8gdmFsdWUgYXNzaWdubWVudCBmb3IgY29u
c3QiKTsKLSAgICAgIGNvbnN0IGNudCA9IGNvbnN0X3ZhbHVlKCk7Ci0gICAgICBpZiAoY250KSBy
ZXQudmFsdWUgPSBjbnQ7Ci0gICAgICBlbHNlIGVycm9yKCJObyB2YWx1ZSBmb3IgY29uc3QiKTsK
LSAgICAgIGNvbnN1bWUoIjsiKSB8fCBlcnJvcigiVW50ZXJtaW5hdGVkIGNvbnN0Iik7Ci0gICAg
ICByZXR1cm4gcmV0OwotICAgIH0KLQotICAgIGZ1bmN0aW9uIGluaGVyaXRhbmNlKCkgewotICAg
ICAgaWYgKGNvbnN1bWUoIjoiKSkgewotICAgICAgICBjb25zdCBpbmggPSBjb25zdW1lKElEKSB8
fCBlcnJvcigiTm8gdHlwZSBpbiBpbmhlcml0YW5jZSIpOwotICAgICAgICByZXR1cm4gaW5oLnZh
bHVlOworICBjb25zdCBtYXhUb2tlbnMgPSA1OyAvLyBhcmJpdHJhcnkgYnV0IHdvcmtzIHdlbGwg
ZW5vdWdoCisgIGNvbnN0IGxpbmUgPQorICAgIHNvdXJjZVtwb3NpdGlvbl0udHlwZSAhPT0gImVv
ZiIgPyBzb3VyY2VbcG9zaXRpb25dLmxpbmUgOgorICAgIHNvdXJjZS5sZW5ndGggPiAxID8gc291
cmNlW3Bvc2l0aW9uIC0gMV0ubGluZSA6CisgICAgMTsKKworICBjb25zdCBwcmVjZWRpbmdMYXN0
TGluZSA9IGxhc3RMaW5lKAorICAgIHRva2Vuc1RvVGV4dChzbGljZVRva2VucygtbWF4VG9rZW5z
KSwgeyBwcmVjZWRlczogdHJ1ZSB9KQorICApOworCisgIGNvbnN0IHN1YnNlcXVlbnRUb2tlbnMg
PSBzbGljZVRva2VucyhtYXhUb2tlbnMpOworICBjb25zdCBzdWJzZXF1ZW50VGV4dCA9IHRva2Vu
c1RvVGV4dChzdWJzZXF1ZW50VG9rZW5zKTsKKyAgY29uc3Qgc3Vic2VxdWVudEZpcnN0TGluZSA9
IHN1YnNlcXVlbnRUZXh0LnNwbGl0KCJcbiIpWzBdOworCisgIGNvbnN0IHNwYWNlZCA9ICIgIi5y
ZXBlYXQocHJlY2VkaW5nTGFzdExpbmUubGVuZ3RoKSArICJeIjsKKyAgY29uc3Qgc291cmNlQ29u
dGV4dCA9IHByZWNlZGluZ0xhc3RMaW5lICsgc3Vic2VxdWVudEZpcnN0TGluZSArICJcbiIgKyBz
cGFjZWQ7CisKKyAgY29uc3QgY29udGV4dFR5cGUgPSBraW5kID09PSAiU3ludGF4IiA/ICJzaW5j
ZSIgOiAiaW5zaWRlIjsKKyAgY29uc3QgaW5Tb3VyY2VOYW1lID0gc291cmNlLm5hbWUgPyBgIGlu
ICR7c291cmNlLm5hbWV9YCA6ICIiOworICBjb25zdCBncmFtbWF0aWNhbENvbnRleHQgPSAoY3Vy
cmVudCAmJiBjdXJyZW50Lm5hbWUpID8gYCwgJHtjb250ZXh0VHlwZX0gXGAke2N1cnJlbnQucGFy
dGlhbCA/ICJwYXJ0aWFsICIgOiAiIn0ke2N1cnJlbnQudHlwZX0gJHtjdXJyZW50Lm5hbWV9XGBg
IDogIiI7CisgIGNvbnN0IGNvbnRleHQgPSBgJHtraW5kfSBlcnJvciBhdCBsaW5lICR7bGluZX0k
e2luU291cmNlTmFtZX0ke2dyYW1tYXRpY2FsQ29udGV4dH06XG4ke3NvdXJjZUNvbnRleHR9YDsK
KyAgcmV0dXJuIHsKKyAgICBtZXNzYWdlOiBgJHtjb250ZXh0fSAke21lc3NhZ2V9YCwKKyAgICBi
YXJlTWVzc2FnZTogbWVzc2FnZSwKKyAgICBjb250ZXh0LAorICAgIGxpbmUsCisgICAgc291cmNl
TmFtZTogc291cmNlLm5hbWUsCisgICAgbGV2ZWwsCisgICAgYXV0b2ZpeCwKKyAgICBpbnB1dDog
c3Vic2VxdWVudFRleHQsCisgICAgdG9rZW5zOiBzdWJzZXF1ZW50VG9rZW5zCisgIH07Cit9CisK
Ky8qKgorICogQHBhcmFtIHtzdHJpbmd9IG1lc3NhZ2UgZXJyb3IgbWVzc2FnZQorICovCitmdW5j
dGlvbiBzeW50YXhFcnJvcihzb3VyY2UsIHBvc2l0aW9uLCBjdXJyZW50LCBtZXNzYWdlKSB7Cisg
IHJldHVybiBlcnJvcihzb3VyY2UsIHBvc2l0aW9uLCBjdXJyZW50LCBtZXNzYWdlLCAiU3ludGF4
Iik7Cit9CisKKy8qKgorICogQHBhcmFtIHtzdHJpbmd9IG1lc3NhZ2UgZXJyb3IgbWVzc2FnZQor
ICogQHBhcmFtIHtXZWJJREwyRXJyb3JPcHRpb25zfSBbb3B0aW9uc10KKyAqLworZnVuY3Rpb24g
dmFsaWRhdGlvbkVycm9yKHNvdXJjZSwgdG9rZW4sIGN1cnJlbnQsIG1lc3NhZ2UsIG9wdGlvbnMp
IHsKKyAgcmV0dXJuIGVycm9yKHNvdXJjZSwgdG9rZW4uaW5kZXgsIGN1cnJlbnQsIG1lc3NhZ2Us
ICJWYWxpZGF0aW9uIiwgb3B0aW9ucyk7Cit9CisKKworLyoqKi8gfSksCisvKiA0ICovCisvKioq
LyAoZnVuY3Rpb24obW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWly
ZV9fKSB7CisKKyJ1c2Ugc3RyaWN0IjsKK19fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tf
ZXhwb3J0c19fKTsKKy8qIGhhcm1vbnkgZXhwb3J0IChiaW5kaW5nKSAqLyBfX3dlYnBhY2tfcmVx
dWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgInVuZXNjYXBlIiwgZnVuY3Rpb24oKSB7IHJl
dHVybiB1bmVzY2FwZTsgfSk7CisvKiBoYXJtb255IGV4cG9ydCAoYmluZGluZykgKi8gX193ZWJw
YWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sICJsaXN0IiwgZnVuY3Rpb24oKSB7
IHJldHVybiBsaXN0OyB9KTsKKy8qIGhhcm1vbnkgZXhwb3J0IChiaW5kaW5nKSAqLyBfX3dlYnBh
Y2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgImNvbnN0X3ZhbHVlIiwgZnVuY3Rp
b24oKSB7IHJldHVybiBjb25zdF92YWx1ZTsgfSk7CisvKiBoYXJtb255IGV4cG9ydCAoYmluZGlu
ZykgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sICJjb25zdF9k
YXRhIiwgZnVuY3Rpb24oKSB7IHJldHVybiBjb25zdF9kYXRhOyB9KTsKKy8qIGhhcm1vbnkgZXhw
b3J0IChiaW5kaW5nKSAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNf
XywgInByaW1pdGl2ZV90eXBlIiwgZnVuY3Rpb24oKSB7IHJldHVybiBwcmltaXRpdmVfdHlwZTsg
fSk7CisvKiBoYXJtb255IGV4cG9ydCAoYmluZGluZykgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5k
KF9fd2VicGFja19leHBvcnRzX18sICJpZGVudGlmaWVycyIsIGZ1bmN0aW9uKCkgeyByZXR1cm4g
aWRlbnRpZmllcnM7IH0pOworLyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFj
a19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAiYXJndW1lbnRfbGlzdCIsIGZ1bmN0
aW9uKCkgeyByZXR1cm4gYXJndW1lbnRfbGlzdDsgfSk7CisvKiBoYXJtb255IGV4cG9ydCAoYmlu
ZGluZykgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sICJ0eXBl
X3dpdGhfZXh0ZW5kZWRfYXR0cmlidXRlcyIsIGZ1bmN0aW9uKCkgeyByZXR1cm4gdHlwZV93aXRo
X2V4dGVuZGVkX2F0dHJpYnV0ZXM7IH0pOworLyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICov
IF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAicmV0dXJuX3R5cGUi
LCBmdW5jdGlvbigpIHsgcmV0dXJuIHJldHVybl90eXBlOyB9KTsKKy8qIGhhcm1vbnkgZXhwb3J0
IChiaW5kaW5nKSAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywg
InN0cmluZ2lmaWVyIiwgZnVuY3Rpb24oKSB7IHJldHVybiBzdHJpbmdpZmllcjsgfSk7CisvKiBo
YXJtb255IGV4cG9ydCAoYmluZGluZykgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFj
a19leHBvcnRzX18sICJhdXRvZml4QWRkRXhwb3NlZFdpbmRvdyIsIGZ1bmN0aW9uKCkgeyByZXR1
cm4gYXV0b2ZpeEFkZEV4cG9zZWRXaW5kb3c7IH0pOworLyogaGFybW9ueSBpbXBvcnQgKi8gdmFy
IF90eXBlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWly
ZV9fKDUpOworLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9hcmd1bWVudF9qc19fV0VCUEFDS19J
TVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg4KTsKKy8qIGhhcm1vbnkg
aW1wb3J0ICovIHZhciBfdG9rZW5fanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXyA9IF9f
d2VicGFja19yZXF1aXJlX18oMTIpOworLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9leHRlbmRl
ZF9hdHRyaWJ1dGVzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18gPSBfX3dlYnBhY2tf
cmVxdWlyZV9fKDEwKTsKKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfb3BlcmF0aW9uX2pzX19X
RUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDEzKTsKKy8q
IGhhcm1vbnkgaW1wb3J0ICovIHZhciBfYXR0cmlidXRlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01P
RFVMRV81X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDE0KTsKKy8qIGhhcm1vbnkgaW1wb3J0ICov
IHZhciBfdG9rZW5pc2VyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X18gPSBfX3dlYnBh
Y2tfcmVxdWlyZV9fKDIpOworCisKKworCisKKworCisKKy8qKgorICogQHBhcmFtIHtzdHJpbmd9
IGlkZW50aWZpZXIKKyAqLworZnVuY3Rpb24gdW5lc2NhcGUoaWRlbnRpZmllcikgeworICByZXR1
cm4gaWRlbnRpZmllci5zdGFydHNXaXRoKCdfJykgPyBpZGVudGlmaWVyLnNsaWNlKDEpIDogaWRl
bnRpZmllcjsKK30KKworLyoqCisgKiBQYXJzZXMgY29tbWEtc2VwYXJhdGVkIGxpc3QKKyAqIEBw
YXJhbSB7aW1wb3J0KCIuLi90b2tlbmlzZXIiKS5Ub2tlbmlzZXJ9IHRva2VuaXNlcgorICogQHBh
cmFtIHtvYmplY3R9IGFyZ3MKKyAqIEBwYXJhbSB7RnVuY3Rpb259IGFyZ3MucGFyc2VyIHBhcnNl
ciBmdW5jdGlvbiBmb3IgZWFjaCBpdGVtCisgKiBAcGFyYW0ge2Jvb2xlYW59IFthcmdzLmFsbG93
RGFuZ2xlcl0gd2hldGhlciB0byBhbGxvdyBkYW5nbGluZyBjb21tYQorICogQHBhcmFtIHtzdHJp
bmd9IFthcmdzLmxpc3ROYW1lXSB0aGUgbmFtZSB0byBiZSBzaG93biBvbiBlcnJvciBtZXNzYWdl
cworICovCitmdW5jdGlvbiBsaXN0KHRva2VuaXNlciwgeyBwYXJzZXIsIGFsbG93RGFuZ2xlciwg
bGlzdE5hbWUgPSAibGlzdCIgfSkgeworICBjb25zdCBmaXJzdCA9IHBhcnNlcih0b2tlbmlzZXIp
OworICBpZiAoIWZpcnN0KSB7CisgICAgcmV0dXJuIFtdOworICB9CisgIGZpcnN0LnRva2Vucy5z
ZXBhcmF0b3IgPSB0b2tlbmlzZXIuY29uc3VtZSgiLCIpOworICBjb25zdCBpdGVtcyA9IFtmaXJz
dF07CisgIHdoaWxlIChmaXJzdC50b2tlbnMuc2VwYXJhdG9yKSB7CisgICAgY29uc3QgaXRlbSA9
IHBhcnNlcih0b2tlbmlzZXIpOworICAgIGlmICghaXRlbSkgeworICAgICAgaWYgKCFhbGxvd0Rh
bmdsZXIpIHsKKyAgICAgICAgdG9rZW5pc2VyLmVycm9yKGBUcmFpbGluZyBjb21tYSBpbiAke2xp
c3ROYW1lfWApOwogICAgICAgfQorICAgICAgYnJlYWs7CisgICAgfQorICAgIGl0ZW0udG9rZW5z
LnNlcGFyYXRvciA9IHRva2VuaXNlci5jb25zdW1lKCIsIik7CisgICAgaXRlbXMucHVzaChpdGVt
KTsKKyAgICBpZiAoIWl0ZW0udG9rZW5zLnNlcGFyYXRvcikgYnJlYWs7CisgIH0KKyAgcmV0dXJu
IGl0ZW1zOworfQorCisvKioKKyAqIEBwYXJhbSB7aW1wb3J0KCIuLi90b2tlbmlzZXIiKS5Ub2tl
bmlzZXJ9IHRva2VuaXNlcgorICovCitmdW5jdGlvbiBjb25zdF92YWx1ZSh0b2tlbmlzZXIpIHsK
KyAgcmV0dXJuIHRva2VuaXNlci5jb25zdW1lKCJ0cnVlIiwgImZhbHNlIiwgIkluZmluaXR5Iiwg
Ii1JbmZpbml0eSIsICJOYU4iLCAiZGVjaW1hbCIsICJpbnRlZ2VyIik7Cit9CisKKy8qKgorICog
QHBhcmFtIHtvYmplY3R9IHRva2VuCisgKiBAcGFyYW0ge3N0cmluZ30gdG9rZW4udHlwZQorICog
QHBhcmFtIHtzdHJpbmd9IHRva2VuLnZhbHVlCisgKi8KK2Z1bmN0aW9uIGNvbnN0X2RhdGEoeyB0
eXBlLCB2YWx1ZSB9KSB7CisgIHN3aXRjaCAodHlwZSkgeworICAgIGNhc2UgInRydWUiOgorICAg
IGNhc2UgImZhbHNlIjoKKyAgICAgIHJldHVybiB7IHR5cGU6ICJib29sZWFuIiwgdmFsdWU6IHR5
cGUgPT09ICJ0cnVlIiB9OworICAgIGNhc2UgIkluZmluaXR5IjoKKyAgICBjYXNlICItSW5maW5p
dHkiOgorICAgICAgcmV0dXJuIHsgdHlwZTogIkluZmluaXR5IiwgbmVnYXRpdmU6IHR5cGUuc3Rh
cnRzV2l0aCgiLSIpIH07CisgICAgY2FzZSAiWyI6CisgICAgICByZXR1cm4geyB0eXBlOiAic2Vx
dWVuY2UiLCB2YWx1ZTogW10gfTsKKyAgICBjYXNlICJ7IjoKKyAgICAgIHJldHVybiB7IHR5cGU6
ICJkaWN0aW9uYXJ5IiB9OworICAgIGNhc2UgImRlY2ltYWwiOgorICAgIGNhc2UgImludGVnZXIi
OgorICAgICAgcmV0dXJuIHsgdHlwZTogIm51bWJlciIsIHZhbHVlIH07CisgICAgY2FzZSAic3Ry
aW5nIjoKKyAgICAgIHJldHVybiB7IHR5cGU6ICJzdHJpbmciLCB2YWx1ZTogdmFsdWUuc2xpY2Uo
MSwgLTEpIH07CisgICAgZGVmYXVsdDoKKyAgICAgIHJldHVybiB7IHR5cGUgfTsKKyAgfQorfQor
CisvKioKKyAqIEBwYXJhbSB7aW1wb3J0KCIuLi90b2tlbmlzZXIiKS5Ub2tlbmlzZXJ9IHRva2Vu
aXNlcgorICovCitmdW5jdGlvbiBwcmltaXRpdmVfdHlwZSh0b2tlbmlzZXIpIHsKKyAgZnVuY3Rp
b24gaW50ZWdlcl90eXBlKCkgeworICAgIGNvbnN0IHByZWZpeCA9IHRva2VuaXNlci5jb25zdW1l
KCJ1bnNpZ25lZCIpOworICAgIGNvbnN0IGJhc2UgPSB0b2tlbmlzZXIuY29uc3VtZSgic2hvcnQi
LCAibG9uZyIpOworICAgIGlmIChiYXNlKSB7CisgICAgICBjb25zdCBwb3N0Zml4ID0gdG9rZW5p
c2VyLmNvbnN1bWUoImxvbmciKTsKKyAgICAgIHJldHVybiBuZXcgX3R5cGVfanNfX1dFQlBBQ0tf
SU1QT1JURURfTU9EVUxFXzBfX1siVHlwZSJdKHsgc291cmNlLCB0b2tlbnM6IHsgcHJlZml4LCBi
YXNlLCBwb3N0Zml4IH0gfSk7CiAgICAgfQorICAgIGlmIChwcmVmaXgpIHRva2VuaXNlci5lcnJv
cigiRmFpbGVkIHRvIHBhcnNlIGludGVnZXIgdHlwZSIpOworICB9CiAKLSAgICBmdW5jdGlvbiBv
cGVyYXRpb25fcmVzdChyZXQpIHsKLSAgICAgIGlmICghcmV0KSByZXQgPSB7fTsKLSAgICAgIGNv
bnN0IG5hbWUgPSBjb25zdW1lKElEKTsKLSAgICAgIHJldC5uYW1lID0gbmFtZSA/IHVuZXNjYXBl
KG5hbWUudmFsdWUpIDogbnVsbDsKLSAgICAgIHJldC5lc2NhcGVkTmFtZSA9IG5hbWUgPyBuYW1l
LnZhbHVlIDogbnVsbDsKLSAgICAgIGNvbnN1bWUoIigiKSB8fCBlcnJvcigiSW52YWxpZCBvcGVy
YXRpb24iKTsKLSAgICAgIHJldC5hcmd1bWVudHMgPSBhcmd1bWVudF9saXN0KCk7Ci0gICAgICBj
b25zdW1lKCIpIikgfHwgZXJyb3IoIlVudGVybWluYXRlZCBvcGVyYXRpb24iKTsKLSAgICAgIGNv
bnN1bWUoIjsiKSB8fCBlcnJvcigiVW50ZXJtaW5hdGVkIG9wZXJhdGlvbiIpOwotICAgICAgcmV0
dXJuIHJldDsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBjYWxsYmFjaygpIHsKLSAgICAgIGxldCBy
ZXQ7Ci0gICAgICBpZiAoIWNvbnN1bWUoImNhbGxiYWNrIikpIHJldHVybjsKLSAgICAgIGNvbnN0
IHRvayA9IGNvbnN1bWUoImludGVyZmFjZSIpOwotICAgICAgaWYgKHRvaykgewotICAgICAgICBy
ZXQgPSBpbnRlcmZhY2VfcmVzdChmYWxzZSwgImNhbGxiYWNrIGludGVyZmFjZSIpOwotICAgICAg
ICByZXR1cm4gcmV0OwotICAgICAgfQotICAgICAgY29uc3QgbmFtZSA9IGNvbnN1bWUoSUQpIHx8
IGVycm9yKCJObyBuYW1lIGZvciBjYWxsYmFjayIpOwotICAgICAgcmV0ID0gY3VycmVudCA9IHsg
dHlwZTogImNhbGxiYWNrIiwgbmFtZTogc2FuaXRpemVfbmFtZShuYW1lLnZhbHVlLCAiY2FsbGJh
Y2siKSB9OwotICAgICAgY29uc3VtZSgiPSIpIHx8IGVycm9yKCJObyBhc3NpZ25tZW50IGluIGNh
bGxiYWNrIik7Ci0gICAgICByZXQuaWRsVHlwZSA9IHJldHVybl90eXBlKCkgfHwgZXJyb3IoIk1p
c3NpbmcgcmV0dXJuIHR5cGUiKTsKLSAgICAgIGNvbnN1bWUoIigiKSB8fCBlcnJvcigiTm8gYXJn
dW1lbnRzIGluIGNhbGxiYWNrIik7Ci0gICAgICByZXQuYXJndW1lbnRzID0gYXJndW1lbnRfbGlz
dCgpOwotICAgICAgY29uc3VtZSgiKSIpIHx8IGVycm9yKCJVbnRlcm1pbmF0ZWQgY2FsbGJhY2si
KTsKLSAgICAgIGNvbnN1bWUoIjsiKSB8fCBlcnJvcigiVW50ZXJtaW5hdGVkIGNhbGxiYWNrIik7
Ci0gICAgICByZXR1cm4gcmV0OwotICAgIH0KLQotICAgIGZ1bmN0aW9uIGF0dHJpYnV0ZSh7IG5v
SW5oZXJpdCA9IGZhbHNlLCByZWFkb25seSA9IGZhbHNlIH0gPSB7fSkgewotICAgICAgY29uc3Qg
c3RhcnRfcG9zaXRpb24gPSBjb25zdW1lX3Bvc2l0aW9uOwotICAgICAgY29uc3QgcmV0ID0gewot
ICAgICAgICB0eXBlOiAiYXR0cmlidXRlIiwKLSAgICAgICAgc3RhdGljOiBmYWxzZSwKLSAgICAg
ICAgc3RyaW5naWZpZXI6IGZhbHNlLAotICAgICAgICBpbmhlcml0OiBmYWxzZSwKLSAgICAgICAg
cmVhZG9ubHk6IGZhbHNlCi0gICAgICB9OwotICAgICAgaWYgKCFub0luaGVyaXQgJiYgY29uc3Vt
ZSgiaW5oZXJpdCIpKSB7Ci0gICAgICAgIHJldC5pbmhlcml0ID0gdHJ1ZTsKLSAgICAgIH0KLSAg
ICAgIGlmIChjb25zdW1lKCJyZWFkb25seSIpKSB7Ci0gICAgICAgIHJldC5yZWFkb25seSA9IHRy
dWU7Ci0gICAgICB9IGVsc2UgaWYgKHJlYWRvbmx5ICYmIHByb2JlKCJhdHRyaWJ1dGUiKSkgewot
ICAgICAgICBlcnJvcigiQXR0cmlidXRlcyBtdXN0IGJlIHJlYWRvbmx5IGluIHRoaXMgY29udGV4
dCIpOwotICAgICAgfQotICAgICAgY29uc3QgcmVzdCA9IGF0dHJpYnV0ZV9yZXN0KHJldCk7Ci0g
ICAgICBpZiAoIXJlc3QpIHsKLSAgICAgICAgdW5jb25zdW1lKHN0YXJ0X3Bvc2l0aW9uKTsKLSAg
ICAgIH0KLSAgICAgIHJldHVybiByZXN0OworICBmdW5jdGlvbiBkZWNpbWFsX3R5cGUoKSB7Cisg
ICAgY29uc3QgcHJlZml4ID0gdG9rZW5pc2VyLmNvbnN1bWUoInVucmVzdHJpY3RlZCIpOworICAg
IGNvbnN0IGJhc2UgPSB0b2tlbmlzZXIuY29uc3VtZSgiZmxvYXQiLCAiZG91YmxlIik7CisgICAg
aWYgKGJhc2UpIHsKKyAgICAgIHJldHVybiBuZXcgX3R5cGVfanNfX1dFQlBBQ0tfSU1QT1JURURf
TU9EVUxFXzBfX1siVHlwZSJdKHsgc291cmNlLCB0b2tlbnM6IHsgcHJlZml4LCBiYXNlIH0gfSk7
CiAgICAgfQorICAgIGlmIChwcmVmaXgpIHRva2VuaXNlci5lcnJvcigiRmFpbGVkIHRvIHBhcnNl
IGZsb2F0IHR5cGUiKTsKKyAgfQogCi0gICAgZnVuY3Rpb24gYXR0cmlidXRlX3Jlc3QocmV0KSB7
Ci0gICAgICBpZiAoIWNvbnN1bWUoImF0dHJpYnV0ZSIpKSB7Ci0gICAgICAgIHJldHVybjsKLSAg
ICAgIH0KLSAgICAgIHJldC5pZGxUeXBlID0gdHlwZV93aXRoX2V4dGVuZGVkX2F0dHJpYnV0ZXMo
ImF0dHJpYnV0ZS10eXBlIikgfHwgZXJyb3IoIk5vIHR5cGUgaW4gYXR0cmlidXRlIik7Ci0gICAg
ICBpZiAocmV0LmlkbFR5cGUuZ2VuZXJpYyA9PT0gInNlcXVlbmNlIikgZXJyb3IoIkF0dHJpYnV0
ZXMgY2Fubm90IGFjY2VwdCBzZXF1ZW5jZSB0eXBlcyIpOwotICAgICAgaWYgKHJldC5pZGxUeXBl
LmdlbmVyaWMgPT09ICJyZWNvcmQiKSBlcnJvcigiQXR0cmlidXRlcyBjYW5ub3QgYWNjZXB0IHJl
Y29yZCB0eXBlcyIpOwotICAgICAgY29uc3QgbmFtZSA9IGNvbnN1bWUoSUQsICJyZXF1aXJlZCIp
IHx8IGVycm9yKCJObyBuYW1lIGluIGF0dHJpYnV0ZSIpOwotICAgICAgcmV0Lm5hbWUgPSB1bmVz
Y2FwZShuYW1lLnZhbHVlKTsKLSAgICAgIHJldC5lc2NhcGVkTmFtZSA9IG5hbWUudmFsdWU7Ci0g
ICAgICBjb25zdW1lKCI7IikgfHwgZXJyb3IoIlVudGVybWluYXRlZCBhdHRyaWJ1dGUiKTsKLSAg
ICAgIHJldHVybiByZXQ7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gcmV0dXJuX3R5cGUodHlwZU5h
bWUpIHsKLSAgICAgIGNvbnN0IHR5cCA9IHR5cGUodHlwZU5hbWUgfHwgInJldHVybi10eXBlIik7
Ci0gICAgICBpZiAodHlwKSB7Ci0gICAgICAgIHJldHVybiB0eXA7Ci0gICAgICB9Ci0gICAgICBp
ZiAoY29uc3VtZSgidm9pZCIpKSB7Ci0gICAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKHsgdHlw
ZTogInJldHVybi10eXBlIiB9LCBFTVBUWV9JRExUWVBFLCB7IGlkbFR5cGU6ICJ2b2lkIiB9KTsK
KyAgY29uc3QgeyBzb3VyY2UgfSA9IHRva2VuaXNlcjsKKyAgY29uc3QgbnVtX3R5cGUgPSBpbnRl
Z2VyX3R5cGUodG9rZW5pc2VyKSB8fCBkZWNpbWFsX3R5cGUodG9rZW5pc2VyKTsKKyAgaWYgKG51
bV90eXBlKSByZXR1cm4gbnVtX3R5cGU7CisgIGNvbnN0IGJhc2UgPSB0b2tlbmlzZXIuY29uc3Vt
ZSgiYm9vbGVhbiIsICJieXRlIiwgIm9jdGV0Iik7CisgIGlmIChiYXNlKSB7CisgICAgcmV0dXJu
IG5ldyBfdHlwZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJUeXBlIl0oeyBzb3Vy
Y2UsIHRva2VuczogeyBiYXNlIH0gfSk7CisgIH0KK30KKworLyoqCisgKiBAcGFyYW0ge2ltcG9y
dCgiLi4vdG9rZW5pc2VyIikuVG9rZW5pc2VyfSB0b2tlbmlzZXIKKyAqLworZnVuY3Rpb24gaWRl
bnRpZmllcnModG9rZW5pc2VyKSB7CisgIGNvbnN0IGlkcyA9IGxpc3QodG9rZW5pc2VyLCB7IHBh
cnNlcjogX3Rva2VuX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19bIlRva2VuIl0ucGFy
c2VyKHRva2VuaXNlciwgImlkZW50aWZpZXIiKSwgbGlzdE5hbWU6ICJpZGVudGlmaWVyIGxpc3Qi
IH0pOworICBpZiAoIWlkcy5sZW5ndGgpIHsKKyAgICB0b2tlbmlzZXIuZXJyb3IoIkV4cGVjdGVk
IGlkZW50aWZpZXJzIGJ1dCBub25lIGZvdW5kIik7CisgIH0KKyAgcmV0dXJuIGlkczsKK30KKwor
LyoqCisgKiBAcGFyYW0ge2ltcG9ydCgiLi4vdG9rZW5pc2VyIikuVG9rZW5pc2VyfSB0b2tlbmlz
ZXIKKyAqLworZnVuY3Rpb24gYXJndW1lbnRfbGlzdCh0b2tlbmlzZXIpIHsKKyAgcmV0dXJuIGxp
c3QodG9rZW5pc2VyLCB7IHBhcnNlcjogX2FyZ3VtZW50X2pzX19XRUJQQUNLX0lNUE9SVEVEX01P
RFVMRV8xX19bIkFyZ3VtZW50Il0ucGFyc2UsIGxpc3ROYW1lOiAiYXJndW1lbnRzIGxpc3QiIH0p
OworfQorCisvKioKKyAqIEBwYXJhbSB7aW1wb3J0KCIuLi90b2tlbmlzZXIiKS5Ub2tlbmlzZXJ9
IHRva2VuaXNlcgorICogQHBhcmFtIHtzdHJpbmd9IHR5cGVOYW1lCisgKi8KK2Z1bmN0aW9uIHR5
cGVfd2l0aF9leHRlbmRlZF9hdHRyaWJ1dGVzKHRva2VuaXNlciwgdHlwZU5hbWUpIHsKKyAgY29u
c3QgZXh0QXR0cnMgPSBfZXh0ZW5kZWRfYXR0cmlidXRlc19qc19fV0VCUEFDS19JTVBPUlRFRF9N
T0RVTEVfM19fWyJFeHRlbmRlZEF0dHJpYnV0ZXMiXS5wYXJzZSh0b2tlbmlzZXIpOworICBjb25z
dCByZXQgPSBfdHlwZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJUeXBlIl0ucGFy
c2UodG9rZW5pc2VyLCB0eXBlTmFtZSk7CisgIGlmIChyZXQpIHJldC5leHRBdHRycyA9IGV4dEF0
dHJzOworICByZXR1cm4gcmV0OworfQorCisvKioKKyAqIEBwYXJhbSB7aW1wb3J0KCIuLi90b2tl
bmlzZXIiKS5Ub2tlbmlzZXJ9IHRva2VuaXNlcgorICogQHBhcmFtIHtzdHJpbmd9IHR5cGVOYW1l
CisgKi8KK2Z1bmN0aW9uIHJldHVybl90eXBlKHRva2VuaXNlciwgdHlwZU5hbWUpIHsKKyAgY29u
c3QgdHlwID0gX3R5cGVfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siVHlwZSJdLnBh
cnNlKHRva2VuaXNlciwgdHlwZU5hbWUgfHwgInJldHVybi10eXBlIik7CisgIGlmICh0eXApIHsK
KyAgICByZXR1cm4gdHlwOworICB9CisgIGNvbnN0IHZvaWRUb2tlbiA9IHRva2VuaXNlci5jb25z
dW1lKCJ2b2lkIik7CisgIGlmICh2b2lkVG9rZW4pIHsKKyAgICBjb25zdCByZXQgPSBuZXcgX3R5
cGVfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siVHlwZSJdKHsgc291cmNlOiB0b2tl
bmlzZXIuc291cmNlLCB0b2tlbnM6IHsgYmFzZTogdm9pZFRva2VuIH0gfSk7CisgICAgcmV0LnR5
cGUgPSAicmV0dXJuLXR5cGUiOworICAgIHJldHVybiByZXQ7CisgIH0KK30KKworLyoqCisgKiBA
cGFyYW0ge2ltcG9ydCgiLi4vdG9rZW5pc2VyIikuVG9rZW5pc2VyfSB0b2tlbmlzZXIKKyAqLwor
ZnVuY3Rpb24gc3RyaW5naWZpZXIodG9rZW5pc2VyKSB7CisgIGNvbnN0IHNwZWNpYWwgPSB0b2tl
bmlzZXIuY29uc3VtZSgic3RyaW5naWZpZXIiKTsKKyAgaWYgKCFzcGVjaWFsKSByZXR1cm47Cisg
IGNvbnN0IG1lbWJlciA9IF9hdHRyaWJ1dGVfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVf
X1siQXR0cmlidXRlIl0ucGFyc2UodG9rZW5pc2VyLCB7IHNwZWNpYWwgfSkgfHwKKyAgICBfb3Bl
cmF0aW9uX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X19bIk9wZXJhdGlvbiJdLnBhcnNl
KHRva2VuaXNlciwgeyBzcGVjaWFsIH0pIHx8CisgICAgdG9rZW5pc2VyLmVycm9yKCJVbnRlcm1p
bmF0ZWQgc3RyaW5naWZpZXIiKTsKKyAgcmV0dXJuIG1lbWJlcjsKK30KKworLyoqCisgKiBAcGFy
YW0ge29iamVjdH0gZGVmCisgKiBAcGFyYW0ge2ltcG9ydCgiLi9leHRlbmRlZC1hdHRyaWJ1dGVz
LmpzIikuRXh0ZW5kZWRBdHRyaWJ1dGVzfSBkZWYuZXh0QXR0cnMKKyAqLworZnVuY3Rpb24gYXV0
b2ZpeEFkZEV4cG9zZWRXaW5kb3coZGVmKSB7CisgIHJldHVybiAoKSA9PiB7CisgICAgaWYgKGRl
Zi5leHRBdHRycy5sZW5ndGgpeworICAgICAgY29uc3QgdG9rZW5pc2VyID0gbmV3IF90b2tlbmlz
ZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfX1siVG9rZW5pc2VyIl0oIkV4cG9zZWQ9
V2luZG93LCIpOworICAgICAgY29uc3QgZXhwb3NlZCA9IF9leHRlbmRlZF9hdHRyaWJ1dGVzX2pz
X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX19bIlNpbXBsZUV4dGVuZGVkQXR0cmlidXRlIl0u
cGFyc2UodG9rZW5pc2VyKTsKKyAgICAgIGV4cG9zZWQudG9rZW5zLnNlcGFyYXRvciA9IHRva2Vu
aXNlci5jb25zdW1lKCIsIik7CisgICAgICBjb25zdCBleGlzdGluZyA9IGRlZi5leHRBdHRyc1sw
XTsKKyAgICAgIGlmICghL15ccy8udGVzdChleGlzdGluZy50b2tlbnMubmFtZS50cml2aWEpKSB7
CisgICAgICAgIGV4aXN0aW5nLnRva2Vucy5uYW1lLnRyaXZpYSA9IGAgJHtleGlzdGluZy50b2tl
bnMubmFtZS50cml2aWF9YDsKICAgICAgIH0KKyAgICAgIGRlZi5leHRBdHRycy51bnNoaWZ0KGV4
cG9zZWQpOworICAgIH0gZWxzZSB7CisgICAgICBkZWYuZXh0QXR0cnMgPSBfZXh0ZW5kZWRfYXR0
cmlidXRlc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fWyJFeHRlbmRlZEF0dHJpYnV0
ZXMiXS5wYXJzZShuZXcgX3Rva2VuaXNlcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9f
WyJUb2tlbmlzZXIiXSgiW0V4cG9zZWQ9V2luZG93XSIpKTsKKyAgICAgIGRlZi5leHRBdHRycy50
b2tlbnMub3Blbi50cml2aWEgPSBkZWYudG9rZW5zLmJhc2UudHJpdmlhOworICAgICAgZGVmLnRv
a2Vucy5iYXNlLnRyaXZpYSA9ICIgIjsKICAgICB9CisgIH07Cit9CiAKLSAgICBmdW5jdGlvbiBv
cGVyYXRpb24oeyByZWd1bGFyID0gZmFsc2UgfSA9IHt9KSB7Ci0gICAgICBjb25zdCByZXQgPSBP
YmplY3QuYXNzaWduKHt9LCBFTVBUWV9PUEVSQVRJT04pOwotICAgICAgd2hpbGUgKCFyZWd1bGFy
KSB7Ci0gICAgICAgIGlmIChjb25zdW1lKCJnZXR0ZXIiKSkgcmV0LmdldHRlciA9IHRydWU7Ci0g
ICAgICAgIGVsc2UgaWYgKGNvbnN1bWUoInNldHRlciIpKSByZXQuc2V0dGVyID0gdHJ1ZTsKLSAg
ICAgICAgZWxzZSBpZiAoY29uc3VtZSgiZGVsZXRlciIpKSByZXQuZGVsZXRlciA9IHRydWU7Ci0g
ICAgICAgIGVsc2UgYnJlYWs7Ci0gICAgICB9Ci0gICAgICByZXQuaWRsVHlwZSA9IHJldHVybl90
eXBlKCkgfHwgZXJyb3IoIk1pc3NpbmcgcmV0dXJuIHR5cGUiKTsKLSAgICAgIG9wZXJhdGlvbl9y
ZXN0KHJldCk7Ci0gICAgICByZXR1cm4gcmV0OworCisvKioqLyB9KSwKKy8qIDUgKi8KKy8qKiov
IChmdW5jdGlvbihtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJl
X18pIHsKKworInVzZSBzdHJpY3QiOworX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19l
eHBvcnRzX18pOworLyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFja19yZXF1
aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAiVHlwZSIsIGZ1bmN0aW9uKCkgeyByZXR1cm4g
VHlwZTsgfSk7CisvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2Jhc2VfanNfX1dFQlBBQ0tfSU1Q
T1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oNik7CisvKiBoYXJtb255IGlt
cG9ydCAqLyB2YXIgX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9f
d2VicGFja19yZXF1aXJlX18oNCk7CisvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3Rva2VuaXNl
cl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygy
KTsKKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfZXJyb3JfanNfX1dFQlBBQ0tfSU1QT1JURURf
TU9EVUxFXzNfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMyk7CisvKiBoYXJtb255IGltcG9ydCAq
LyB2YXIgX3ZhbGlkYXRvcnNfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9f
ID0gX193ZWJwYWNrX3JlcXVpcmVfXyg3KTsKKworCisKKworCisKKy8qKgorICogQHBhcmFtIHtp
bXBvcnQoIi4uL3Rva2VuaXNlciIpLlRva2VuaXNlcn0gdG9rZW5pc2VyCisgKiBAcGFyYW0ge3N0
cmluZ30gdHlwZU5hbWUKKyAqLworZnVuY3Rpb24gZ2VuZXJpY190eXBlKHRva2VuaXNlciwgdHlw
ZU5hbWUpIHsKKyAgY29uc3QgYmFzZSA9IHRva2VuaXNlci5jb25zdW1lKCJGcm96ZW5BcnJheSIs
ICJQcm9taXNlIiwgInNlcXVlbmNlIiwgInJlY29yZCIpOworICBpZiAoIWJhc2UpIHsKKyAgICBy
ZXR1cm47CisgIH0KKyAgY29uc3QgcmV0ID0gbmV3IFR5cGUoeyBzb3VyY2U6IHRva2VuaXNlci5z
b3VyY2UsIHRva2VuczogeyBiYXNlIH0gfSk7CisgIHJldC50b2tlbnMub3BlbiA9IHRva2VuaXNl
ci5jb25zdW1lKCI8IikgfHwgdG9rZW5pc2VyLmVycm9yKGBObyBvcGVuaW5nIGJyYWNrZXQgYWZ0
ZXIgJHtiYXNlLnR5cGV9YCk7CisgIHN3aXRjaCAoYmFzZS50eXBlKSB7CisgICAgY2FzZSAiUHJv
bWlzZSI6IHsKKyAgICAgIGlmICh0b2tlbmlzZXIucHJvYmUoIlsiKSkgdG9rZW5pc2VyLmVycm9y
KCJQcm9taXNlIHR5cGUgY2Fubm90IGhhdmUgZXh0ZW5kZWQgYXR0cmlidXRlIik7CisgICAgICBj
b25zdCBzdWJ0eXBlID0gT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVM
RV8xX19bInJldHVybl90eXBlIl0pKHRva2VuaXNlciwgdHlwZU5hbWUpIHx8IHRva2VuaXNlci5l
cnJvcigiTWlzc2luZyBQcm9taXNlIHN1YnR5cGUiKTsKKyAgICAgIHJldC5zdWJ0eXBlLnB1c2go
c3VidHlwZSk7CisgICAgICBicmVhazsKKyAgICB9CisgICAgY2FzZSAic2VxdWVuY2UiOgorICAg
IGNhc2UgIkZyb3plbkFycmF5IjogeworICAgICAgY29uc3Qgc3VidHlwZSA9IE9iamVjdChfaGVs
cGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fWyJ0eXBlX3dpdGhfZXh0ZW5kZWRf
YXR0cmlidXRlcyJdKSh0b2tlbmlzZXIsIHR5cGVOYW1lKSB8fCB0b2tlbmlzZXIuZXJyb3IoYE1p
c3NpbmcgJHtiYXNlLnR5cGV9IHN1YnR5cGVgKTsKKyAgICAgIHJldC5zdWJ0eXBlLnB1c2goc3Vi
dHlwZSk7CisgICAgICBicmVhazsKKyAgICB9CisgICAgY2FzZSAicmVjb3JkIjogeworICAgICAg
aWYgKHRva2VuaXNlci5wcm9iZSgiWyIpKSB0b2tlbmlzZXIuZXJyb3IoIlJlY29yZCBrZXkgY2Fu
bm90IGhhdmUgZXh0ZW5kZWQgYXR0cmlidXRlIik7CisgICAgICBjb25zdCBrZXlUeXBlID0gdG9r
ZW5pc2VyLmNvbnN1bWUoLi4uX3Rva2VuaXNlcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVf
Ml9fWyJzdHJpbmdUeXBlcyJdKSB8fCB0b2tlbmlzZXIuZXJyb3IoYFJlY29yZCBrZXkgbXVzdCBi
ZSBvbmUgb2Y6ICR7X3Rva2VuaXNlcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fWyJz
dHJpbmdUeXBlcyJdLmpvaW4oIiwgIil9YCk7CisgICAgICBjb25zdCBrZXlJZGxUeXBlID0gbmV3
IFR5cGUoeyBzb3VyY2U6IHRva2VuaXNlci5zb3VyY2UsIHRva2VuczogeyBiYXNlOiBrZXlUeXBl
IH19KTsKKyAgICAgIGtleUlkbFR5cGUudG9rZW5zLnNlcGFyYXRvciA9IHRva2VuaXNlci5jb25z
dW1lKCIsIikgfHwgdG9rZW5pc2VyLmVycm9yKCJNaXNzaW5nIGNvbW1hIGFmdGVyIHJlY29yZCBr
ZXkgdHlwZSIpOworICAgICAga2V5SWRsVHlwZS50eXBlID0gdHlwZU5hbWU7CisgICAgICBjb25z
dCB2YWx1ZVR5cGUgPSBPYmplY3QoX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxF
XzFfX1sidHlwZV93aXRoX2V4dGVuZGVkX2F0dHJpYnV0ZXMiXSkodG9rZW5pc2VyLCB0eXBlTmFt
ZSkgfHwgdG9rZW5pc2VyLmVycm9yKCJFcnJvciBwYXJzaW5nIGdlbmVyaWMgdHlwZSByZWNvcmQi
KTsKKyAgICAgIHJldC5zdWJ0eXBlLnB1c2goa2V5SWRsVHlwZSwgdmFsdWVUeXBlKTsKKyAgICAg
IGJyZWFrOworICAgIH0KKyAgfQorICBpZiAoIXJldC5pZGxUeXBlKSB0b2tlbmlzZXIuZXJyb3Io
YEVycm9yIHBhcnNpbmcgZ2VuZXJpYyB0eXBlICR7YmFzZS50eXBlfWApOworICByZXQudG9rZW5z
LmNsb3NlID0gdG9rZW5pc2VyLmNvbnN1bWUoIj4iKSB8fCB0b2tlbmlzZXIuZXJyb3IoYE1pc3Np
bmcgY2xvc2luZyBicmFja2V0IGFmdGVyICR7YmFzZS50eXBlfWApOworICByZXR1cm4gcmV0Owor
fQorCisvKioKKyAqIEBwYXJhbSB7aW1wb3J0KCIuLi90b2tlbmlzZXIiKS5Ub2tlbmlzZXJ9IHRv
a2VuaXNlcgorICovCitmdW5jdGlvbiB0eXBlX3N1ZmZpeCh0b2tlbmlzZXIsIG9iaikgeworICBj
b25zdCBudWxsYWJsZSA9IHRva2VuaXNlci5jb25zdW1lKCI/Iik7CisgIGlmIChudWxsYWJsZSkg
eworICAgIG9iai50b2tlbnMubnVsbGFibGUgPSBudWxsYWJsZTsKKyAgfQorICBpZiAodG9rZW5p
c2VyLnByb2JlKCI/IikpIHRva2VuaXNlci5lcnJvcigiQ2FuJ3QgbnVsbGFibGUgbW9yZSB0aGFu
IG9uY2UiKTsKK30KKworLyoqCisgKiBAcGFyYW0ge2ltcG9ydCgiLi4vdG9rZW5pc2VyIikuVG9r
ZW5pc2VyfSB0b2tlbmlzZXIKKyAqIEBwYXJhbSB7c3RyaW5nfSB0eXBlTmFtZQorICovCitmdW5j
dGlvbiBzaW5nbGVfdHlwZSh0b2tlbmlzZXIsIHR5cGVOYW1lKSB7CisgIGxldCByZXQgPSBnZW5l
cmljX3R5cGUodG9rZW5pc2VyLCB0eXBlTmFtZSkgfHwgT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQ
QUNLX0lNUE9SVEVEX01PRFVMRV8xX19bInByaW1pdGl2ZV90eXBlIl0pKHRva2VuaXNlcik7Cisg
IGlmICghcmV0KSB7CisgICAgY29uc3QgYmFzZSA9IHRva2VuaXNlci5jb25zdW1lKCJpZGVudGlm
aWVyIiwgLi4uX3Rva2VuaXNlcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fWyJzdHJp
bmdUeXBlcyJdKTsKKyAgICBpZiAoIWJhc2UpIHsKKyAgICAgIHJldHVybjsKKyAgICB9CisgICAg
cmV0ID0gbmV3IFR5cGUoeyBzb3VyY2U6IHRva2VuaXNlci5zb3VyY2UsIHRva2VuczogeyBiYXNl
IH0gfSk7CisgICAgaWYgKHRva2VuaXNlci5wcm9iZSgiPCIpKSB0b2tlbmlzZXIuZXJyb3IoYFVu
c3VwcG9ydGVkIGdlbmVyaWMgdHlwZSAke2Jhc2UudmFsdWV9YCk7CisgIH0KKyAgaWYgKHJldC5n
ZW5lcmljID09PSAiUHJvbWlzZSIgJiYgdG9rZW5pc2VyLnByb2JlKCI/IikpIHsKKyAgICB0b2tl
bmlzZXIuZXJyb3IoIlByb21pc2UgdHlwZSBjYW5ub3QgYmUgbnVsbGFibGUiKTsKKyAgfQorICBy
ZXQudHlwZSA9IHR5cGVOYW1lIHx8IG51bGw7CisgIHR5cGVfc3VmZml4KHRva2VuaXNlciwgcmV0
KTsKKyAgaWYgKHJldC5udWxsYWJsZSAmJiByZXQuaWRsVHlwZSA9PT0gImFueSIpIHRva2VuaXNl
ci5lcnJvcigiVHlwZSBgYW55YCBjYW5ub3QgYmUgbWFkZSBudWxsYWJsZSIpOworICByZXR1cm4g
cmV0OworfQorCisvKioKKyAqIEBwYXJhbSB7aW1wb3J0KCIuLi90b2tlbmlzZXIiKS5Ub2tlbmlz
ZXJ9IHRva2VuaXNlcgorICogQHBhcmFtIHtzdHJpbmd9IHR5cGUKKyAqLworZnVuY3Rpb24gdW5p
b25fdHlwZSh0b2tlbmlzZXIsIHR5cGUpIHsKKyAgY29uc3QgdG9rZW5zID0ge307CisgIHRva2Vu
cy5vcGVuID0gdG9rZW5pc2VyLmNvbnN1bWUoIigiKTsKKyAgaWYgKCF0b2tlbnMub3BlbikgcmV0
dXJuOworICBjb25zdCByZXQgPSBuZXcgVHlwZSh7IHNvdXJjZTogdG9rZW5pc2VyLnNvdXJjZSwg
dG9rZW5zIH0pOworICByZXQudHlwZSA9IHR5cGUgfHwgbnVsbDsKKyAgd2hpbGUgKHRydWUpIHsK
KyAgICBjb25zdCB0eXAgPSBPYmplY3QoX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9E
VUxFXzFfX1sidHlwZV93aXRoX2V4dGVuZGVkX2F0dHJpYnV0ZXMiXSkodG9rZW5pc2VyKSB8fCB0
b2tlbmlzZXIuZXJyb3IoIk5vIHR5cGUgYWZ0ZXIgb3BlbiBwYXJlbnRoZXNpcyBvciAnb3InIGlu
IHVuaW9uIHR5cGUiKTsKKyAgICBpZiAodHlwLmlkbFR5cGUgPT09ICJhbnkiKSB0b2tlbmlzZXIu
ZXJyb3IoIlR5cGUgYGFueWAgY2Fubm90IGJlIGluY2x1ZGVkIGluIGEgdW5pb24gdHlwZSIpOwor
ICAgIHJldC5zdWJ0eXBlLnB1c2godHlwKTsKKyAgICBjb25zdCBvciA9IHRva2VuaXNlci5jb25z
dW1lKCJvciIpOworICAgIGlmIChvcikgeworICAgICAgdHlwLnRva2Vucy5zZXBhcmF0b3IgPSBv
cjsKICAgICB9CisgICAgZWxzZSBicmVhazsKKyAgfQorICBpZiAocmV0LmlkbFR5cGUubGVuZ3Ro
IDwgMikgeworICAgIHRva2VuaXNlci5lcnJvcigiQXQgbGVhc3QgdHdvIHR5cGVzIGFyZSBleHBl
Y3RlZCBpbiBhIHVuaW9uIHR5cGUgYnV0IGZvdW5kIGxlc3MiKTsKKyAgfQorICB0b2tlbnMuY2xv
c2UgPSB0b2tlbmlzZXIuY29uc3VtZSgiKSIpIHx8IHRva2VuaXNlci5lcnJvcigiVW50ZXJtaW5h
dGVkIHVuaW9uIHR5cGUiKTsKKyAgdHlwZV9zdWZmaXgodG9rZW5pc2VyLCByZXQpOworICByZXR1
cm4gcmV0OworfQorCitjbGFzcyBUeXBlIGV4dGVuZHMgX2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JU
RURfTU9EVUxFXzBfX1siQmFzZSJdIHsKKyAgLyoqCisgICAqIEBwYXJhbSB7aW1wb3J0KCIuLi90
b2tlbmlzZXIiKS5Ub2tlbmlzZXJ9IHRva2VuaXNlcgorICAgKiBAcGFyYW0ge3N0cmluZ30gdHlw
ZU5hbWUKKyAgICovCisgIHN0YXRpYyBwYXJzZSh0b2tlbmlzZXIsIHR5cGVOYW1lKSB7CisgICAg
cmV0dXJuIHNpbmdsZV90eXBlKHRva2VuaXNlciwgdHlwZU5hbWUpIHx8IHVuaW9uX3R5cGUodG9r
ZW5pc2VyLCB0eXBlTmFtZSk7CisgIH0KIAotICAgIGZ1bmN0aW9uIHN0YXRpY19tZW1iZXIoKSB7
Ci0gICAgICBpZiAoIWNvbnN1bWUoInN0YXRpYyIpKSByZXR1cm47Ci0gICAgICBjb25zdCBtZW1i
ZXIgPSBhdHRyaWJ1dGUoeyBub0luaGVyaXQ6IHRydWUgfSkgfHwKLSAgICAgICAgb3BlcmF0aW9u
KHsgcmVndWxhcjogdHJ1ZSB9KSB8fAotICAgICAgICBlcnJvcigiTm8gYm9keSBpbiBzdGF0aWMg
bWVtYmVyIik7Ci0gICAgICBtZW1iZXIuc3RhdGljID0gdHJ1ZTsKLSAgICAgIHJldHVybiBtZW1i
ZXI7CisgIGNvbnN0cnVjdG9yKHsgc291cmNlLCB0b2tlbnMgfSkgeworICAgIHN1cGVyKHsgc291
cmNlLCB0b2tlbnMgfSk7CisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsICJzdWJ0eXBl
IiwgeyB2YWx1ZTogW10gfSk7CisgICAgdGhpcy5leHRBdHRycyA9IFtdOworICB9CisKKyAgZ2V0
IGdlbmVyaWMoKSB7CisgICAgaWYgKHRoaXMuc3VidHlwZS5sZW5ndGggJiYgdGhpcy50b2tlbnMu
YmFzZSkgeworICAgICAgcmV0dXJuIHRoaXMudG9rZW5zLmJhc2UudmFsdWU7CisgICAgfQorICAg
IHJldHVybiAiIjsKKyAgfQorICBnZXQgbnVsbGFibGUoKSB7CisgICAgcmV0dXJuIEJvb2xlYW4o
dGhpcy50b2tlbnMubnVsbGFibGUpOworICB9CisgIGdldCB1bmlvbigpIHsKKyAgICByZXR1cm4g
Qm9vbGVhbih0aGlzLnN1YnR5cGUubGVuZ3RoKSAmJiAhdGhpcy50b2tlbnMuYmFzZTsKKyAgfQor
ICBnZXQgaWRsVHlwZSgpIHsKKyAgICBpZiAodGhpcy5zdWJ0eXBlLmxlbmd0aCkgeworICAgICAg
cmV0dXJuIHRoaXMuc3VidHlwZTsKICAgICB9CisgICAgLy8gQWRkaW5nIHByZWZpeGVzL3Bvc3Rm
aXhlcyBmb3IgInVucmVzdHJpY3RlZCBmbG9hdCIsIGV0Yy4KKyAgICBjb25zdCBuYW1lID0gWwor
ICAgICAgdGhpcy50b2tlbnMucHJlZml4LAorICAgICAgdGhpcy50b2tlbnMuYmFzZSwKKyAgICAg
IHRoaXMudG9rZW5zLnBvc3RmaXgKKyAgICBdLmZpbHRlcih0ID0+IHQpLm1hcCh0ID0+IHQudmFs
dWUpLmpvaW4oIiAiKTsKKyAgICByZXR1cm4gT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lN
UE9SVEVEX01PRFVMRV8xX19bInVuZXNjYXBlIl0pKG5hbWUpOworICB9CiAKLSAgICBmdW5jdGlv
biBzdHJpbmdpZmllcigpIHsKLSAgICAgIGlmICghY29uc3VtZSgic3RyaW5naWZpZXIiKSkgcmV0
dXJuOwotICAgICAgaWYgKGNvbnN1bWUoIjsiKSkgewotICAgICAgICByZXR1cm4gT2JqZWN0LmFz
c2lnbih7fSwgRU1QVFlfT1BFUkFUSU9OLCB7IHN0cmluZ2lmaWVyOiB0cnVlIH0pOwotICAgICAg
fQotICAgICAgY29uc3QgbWVtYmVyID0gYXR0cmlidXRlKHsgbm9Jbmhlcml0OiB0cnVlIH0pIHx8
Ci0gICAgICAgIG9wZXJhdGlvbih7IHJlZ3VsYXI6IHRydWUgfSkgfHwKLSAgICAgICAgZXJyb3Io
IlVudGVybWluYXRlZCBzdHJpbmdpZmllciIpOwotICAgICAgbWVtYmVyLnN0cmluZ2lmaWVyID0g
dHJ1ZTsKLSAgICAgIHJldHVybiBtZW1iZXI7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gaWRlbnRp
ZmllcnMoKSB7Ci0gICAgICBjb25zdCBhcnIgPSBbXTsKLSAgICAgIGNvbnN0IGlkID0gY29uc3Vt
ZShJRCk7Ci0gICAgICBpZiAoaWQpIHsKLSAgICAgICAgYXJyLnB1c2goaWQudmFsdWUpOworICAq
dmFsaWRhdGUoZGVmcykgeworICAgIC8qCisgICAgICogSWYgYSB1bmlvbiBpcyBudWxsYWJsZSwg
aXRzIHN1YnVuaW9ucyBjYW5ub3QgaW5jbHVkZSBhIGRpY3Rpb25hcnkKKyAgICAgKiBJZiBub3Qs
IHN1YnVuaW9ucyBtYXkgaW5jbHVkZSBkaWN0aW9uYXJpZXMgaWYgZWFjaCB1bmlvbiBpcyBub3Qg
bnVsbGFibGUKKyAgICAgKi8KKyAgICBjb25zdCB0eXBlZGVmID0gIXRoaXMudW5pb24gJiYgZGVm
cy51bmlxdWUuZ2V0KHRoaXMuaWRsVHlwZSk7CisgICAgY29uc3QgdGFyZ2V0ID0KKyAgICAgIHRo
aXMudW5pb24gPyB0aGlzIDoKKyAgICAgICh0eXBlZGVmICYmIHR5cGVkZWYudHlwZSA9PT0gInR5
cGVkZWYiKSA/IHR5cGVkZWYuaWRsVHlwZSA6CisgICAgICB1bmRlZmluZWQ7CisgICAgaWYgKHRh
cmdldCAmJiB0aGlzLm51bGxhYmxlKSB7CisgICAgICAvLyBkbyBub3QgYWxsb3cgYW55IGRpY3Rp
b25hcnkKKyAgICAgIGNvbnN0IHJlZmVyZW5jZSA9IE9iamVjdChfdmFsaWRhdG9yc19oZWxwZXJz
X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X19bImlkbFR5cGVJbmNsdWRlc0RpY3Rpb25h
cnkiXSkodGFyZ2V0LCBkZWZzKTsKKyAgICAgIGlmIChyZWZlcmVuY2UpIHsKKyAgICAgICAgY29u
c3QgdGFyZ2V0VG9rZW4gPSAodGhpcy51bmlvbiA/IHJlZmVyZW5jZSA6IHRoaXMpLnRva2Vucy5i
YXNlOworICAgICAgICBjb25zdCBtZXNzYWdlID0gYE51bGxhYmxlIHVuaW9uIGNhbm5vdCBpbmNs
dWRlIGEgZGljdGlvbmFyeSB0eXBlYDsKKyAgICAgICAgeWllbGQgT2JqZWN0KF9lcnJvcl9qc19f
V0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fWyJ2YWxpZGF0aW9uRXJyb3IiXSkodGhpcy5zb3Vy
Y2UsIHRhcmdldFRva2VuLCB0aGlzLCBtZXNzYWdlKTsKICAgICAgIH0KLSAgICAgIGVsc2UgZXJy
b3IoIkV4cGVjdGVkIGlkZW50aWZpZXJzIGJ1dCBub3QgZm91bmQiKTsKLSAgICAgIHdoaWxlICh0
cnVlKSB7Ci0gICAgICAgIGlmIChjb25zdW1lKCIsIikpIHsKLSAgICAgICAgICBjb25zdCBuYW1l
ID0gY29uc3VtZShJRCkgfHwgZXJyb3IoIlRyYWlsaW5nIGNvbW1hIGluIGlkZW50aWZpZXJzIGxp
c3QiKTsKLSAgICAgICAgICBhcnIucHVzaChuYW1lLnZhbHVlKTsKLSAgICAgICAgfSBlbHNlIGJy
ZWFrOworICAgIH0gZWxzZSB7CisgICAgICAvLyBhbGxvdyBzb21lIGRpY3Rpb25hcnkKKyAgICAg
IGZvciAoY29uc3Qgc3VidHlwZSBvZiB0aGlzLnN1YnR5cGUpIHsKKyAgICAgICAgeWllbGQqIHN1
YnR5cGUudmFsaWRhdGUoZGVmcyk7CiAgICAgICB9Ci0gICAgICByZXR1cm4gYXJyOwotICAgIH0K
LQotICAgIGZ1bmN0aW9uIGl0ZXJhYmxlX3R5cGUoKSB7Ci0gICAgICBpZiAoY29uc3VtZSgiaXRl
cmFibGUiKSkgcmV0dXJuICJpdGVyYWJsZSI7Ci0gICAgICBlbHNlIGlmIChjb25zdW1lKCJsZWdh
Y3lpdGVyYWJsZSIpKSByZXR1cm4gImxlZ2FjeWl0ZXJhYmxlIjsKLSAgICAgIGVsc2UgaWYgKGNv
bnN1bWUoIm1hcGxpa2UiKSkgcmV0dXJuICJtYXBsaWtlIjsKLSAgICAgIGVsc2UgaWYgKGNvbnN1
bWUoInNldGxpa2UiKSkgcmV0dXJuICJzZXRsaWtlIjsKLSAgICAgIGVsc2UgcmV0dXJuOwogICAg
IH0KKyAgfQorfQogCi0gICAgZnVuY3Rpb24gcmVhZG9ubHlfaXRlcmFibGVfdHlwZSgpIHsKLSAg
ICAgIGlmIChjb25zdW1lKCJtYXBsaWtlIikpIHJldHVybiAibWFwbGlrZSI7Ci0gICAgICBlbHNl
IGlmIChjb25zdW1lKCJzZXRsaWtlIikpIHJldHVybiAic2V0bGlrZSI7Ci0gICAgICBlbHNlIHJl
dHVybjsKLSAgICB9CiAKLSAgICBmdW5jdGlvbiBpdGVyYWJsZSgpIHsKLSAgICAgIGNvbnN0IHN0
YXJ0X3Bvc2l0aW9uID0gY29uc3VtZV9wb3NpdGlvbjsKLSAgICAgIGNvbnN0IHJldCA9IHsgdHlw
ZTogbnVsbCwgaWRsVHlwZTogbnVsbCwgcmVhZG9ubHk6IGZhbHNlIH07Ci0gICAgICBpZiAoY29u
c3VtZSgicmVhZG9ubHkiKSkgewotICAgICAgICByZXQucmVhZG9ubHkgPSB0cnVlOwotICAgICAg
fQotICAgICAgY29uc3QgY29uc3VtZUl0VHlwZSA9IHJldC5yZWFkb25seSA/IHJlYWRvbmx5X2l0
ZXJhYmxlX3R5cGUgOiBpdGVyYWJsZV90eXBlOworLyoqKi8gfSksCisvKiA2ICovCisvKioqLyAo
ZnVuY3Rpb24obW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9f
KSB7CiAKLSAgICAgIGNvbnN0IGl0dHlwZSA9IGNvbnN1bWVJdFR5cGUoKTsKLSAgICAgIGlmICgh
aXR0eXBlKSB7Ci0gICAgICAgIHVuY29uc3VtZShzdGFydF9wb3NpdGlvbik7Ci0gICAgICAgIHJl
dHVybjsKLSAgICAgIH0KKyJ1c2Ugc3RyaWN0IjsKK19fd2VicGFja19yZXF1aXJlX18ucihfX3dl
YnBhY2tfZXhwb3J0c19fKTsKKy8qIGhhcm1vbnkgZXhwb3J0IChiaW5kaW5nKSAqLyBfX3dlYnBh
Y2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgIkJhc2UiLCBmdW5jdGlvbigpIHsg
cmV0dXJuIEJhc2U7IH0pOworY2xhc3MgQmFzZSB7CisgIGNvbnN0cnVjdG9yKHsgc291cmNlLCB0
b2tlbnMgfSkgeworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHRoaXMsIHsKKyAgICAgIHNv
dXJjZTogeyB2YWx1ZTogc291cmNlIH0sCisgICAgICB0b2tlbnM6IHsgdmFsdWU6IHRva2VucyB9
CisgICAgfSk7CisgIH0KIAotICAgICAgY29uc3Qgc2Vjb25kVHlwZVJlcXVpcmVkID0gaXR0eXBl
ID09PSAibWFwbGlrZSI7Ci0gICAgICBjb25zdCBzZWNvbmRUeXBlQWxsb3dlZCA9IHNlY29uZFR5
cGVSZXF1aXJlZCB8fCBpdHR5cGUgPT09ICJpdGVyYWJsZSI7Ci0gICAgICByZXQudHlwZSA9IGl0
dHlwZTsKLSAgICAgIGlmIChyZXQudHlwZSAhPT0gJ21hcGxpa2UnICYmIHJldC50eXBlICE9PSAn
c2V0bGlrZScpCi0gICAgICAgIGRlbGV0ZSByZXQucmVhZG9ubHk7Ci0gICAgICBpZiAoY29uc3Vt
ZSgiPCIpKSB7Ci0gICAgICAgIHJldC5pZGxUeXBlID0gW3R5cGVfd2l0aF9leHRlbmRlZF9hdHRy
aWJ1dGVzKCldIHx8IGVycm9yKGBFcnJvciBwYXJzaW5nICR7aXR0eXBlfSBkZWNsYXJhdGlvbmAp
OwotICAgICAgICBpZiAoc2Vjb25kVHlwZUFsbG93ZWQpIHsKLSAgICAgICAgICBpZiAoY29uc3Vt
ZSgiLCIpKSB7Ci0gICAgICAgICAgICByZXQuaWRsVHlwZS5wdXNoKHR5cGVfd2l0aF9leHRlbmRl
ZF9hdHRyaWJ1dGVzKCkpOwotICAgICAgICAgIH0KLSAgICAgICAgICBlbHNlIGlmIChzZWNvbmRU
eXBlUmVxdWlyZWQpCi0gICAgICAgICAgICBlcnJvcihgTWlzc2luZyBzZWNvbmQgdHlwZSBhcmd1
bWVudCBpbiAke2l0dHlwZX0gZGVjbGFyYXRpb25gKTsKLSAgICAgICAgfQotICAgICAgICBpZiAo
IWNvbnN1bWUoIj4iKSkgZXJyb3IoYFVudGVybWluYXRlZCAke2l0dHlwZX0gZGVjbGFyYXRpb25g
KTsKLSAgICAgICAgaWYgKCFjb25zdW1lKCI7IikpIGVycm9yKGBNaXNzaW5nIHNlbWljb2xvbiBh
ZnRlciAke2l0dHlwZX0gZGVjbGFyYXRpb25gKTsKLSAgICAgIH0gZWxzZQotICAgICAgICBlcnJv
cihgRXJyb3IgcGFyc2luZyAke2l0dHlwZX0gZGVjbGFyYXRpb25gKTsKLQotICAgICAgcmV0dXJu
IHJldDsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBpbnRlcmZhY2VfcmVzdChpc1BhcnRpYWwsIHR5
cGVOYW1lID0gImludGVyZmFjZSIpIHsKLSAgICAgIGNvbnN0IG5hbWUgPSBjb25zdW1lKElEKSB8
fCBlcnJvcigiTm8gbmFtZSBmb3IgaW50ZXJmYWNlIik7Ci0gICAgICBjb25zdCBtZW1zID0gW107
Ci0gICAgICBjb25zdCByZXQgPSBjdXJyZW50ID0gewotICAgICAgICB0eXBlOiB0eXBlTmFtZSwK
LSAgICAgICAgbmFtZTogaXNQYXJ0aWFsID8gbmFtZS52YWx1ZSA6IHNhbml0aXplX25hbWUobmFt
ZS52YWx1ZSwgImludGVyZmFjZSIpLAotICAgICAgICBwYXJ0aWFsOiBpc1BhcnRpYWwsCi0gICAg
ICAgIG1lbWJlcnM6IG1lbXMKLSAgICAgIH07Ci0gICAgICBpZiAoIWlzUGFydGlhbCkgcmV0Lmlu
aGVyaXRhbmNlID0gaW5oZXJpdGFuY2UoKSB8fCBudWxsOwotICAgICAgY29uc3VtZSgieyIpIHx8
IGVycm9yKCJCb2R5bGVzcyBpbnRlcmZhY2UiKTsKLSAgICAgIHdoaWxlICh0cnVlKSB7Ci0gICAg
ICAgIGlmIChjb25zdW1lKCJ9IikpIHsKLSAgICAgICAgICBjb25zdW1lKCI7IikgfHwgZXJyb3Io
Ik1pc3Npbmcgc2VtaWNvbG9uIGFmdGVyIGludGVyZmFjZSIpOwotICAgICAgICAgIHJldHVybiBy
ZXQ7CisgIHRvSlNPTigpIHsKKyAgICBjb25zdCBqc29uID0geyB0eXBlOiB1bmRlZmluZWQsIG5h
bWU6IHVuZGVmaW5lZCwgaW5oZXJpdGFuY2U6IHVuZGVmaW5lZCB9OworICAgIGxldCBwcm90byA9
IHRoaXM7CisgICAgd2hpbGUgKHByb3RvICE9PSBPYmplY3QucHJvdG90eXBlKSB7CisgICAgICBj
b25zdCBkZXNjTWFwID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMocHJvdG8pOwor
ICAgICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoZGVzY01hcCkp
IHsKKyAgICAgICAgaWYgKHZhbHVlLmVudW1lcmFibGUgfHwgdmFsdWUuZ2V0KSB7CisgICAgICAg
ICAganNvbltrZXldID0gdGhpc1trZXldOwogICAgICAgICB9Ci0gICAgICAgIGNvbnN0IGVhID0g
ZXh0ZW5kZWRfYXR0cnMoKTsKLSAgICAgICAgY29uc3QgbWVtID0gY29uc3RfKCkgfHwKLSAgICAg
ICAgICBzdGF0aWNfbWVtYmVyKCkgfHwKLSAgICAgICAgICBzdHJpbmdpZmllcigpIHx8Ci0gICAg
ICAgICAgaXRlcmFibGUoKSB8fAotICAgICAgICAgIGF0dHJpYnV0ZSgpIHx8Ci0gICAgICAgICAg
b3BlcmF0aW9uKCkgfHwKLSAgICAgICAgICBlcnJvcigiVW5rbm93biBtZW1iZXIiKTsKLSAgICAg
ICAgbWVtLmV4dEF0dHJzID0gZWE7Ci0gICAgICAgIHJldC5tZW1iZXJzLnB1c2gobWVtKTsKICAg
ICAgIH0KKyAgICAgIHByb3RvID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKHByb3RvKTsKICAgICB9
CisgICAgcmV0dXJuIGpzb247CisgIH0KK30KIAotICAgIGZ1bmN0aW9uIG1peGluX3Jlc3QoaXNQ
YXJ0aWFsKSB7Ci0gICAgICBpZiAoIWNvbnN1bWUoIm1peGluIikpIHJldHVybjsKLSAgICAgIGNv
bnN0IG5hbWUgPSBjb25zdW1lKElEKSB8fCBlcnJvcigiTm8gbmFtZSBmb3IgaW50ZXJmYWNlIG1p
eGluIik7Ci0gICAgICBjb25zdCBtZW1zID0gW107Ci0gICAgICBjb25zdCByZXQgPSBjdXJyZW50
ID0gewotICAgICAgICB0eXBlOiAiaW50ZXJmYWNlIG1peGluIiwKLSAgICAgICAgbmFtZTogaXNQ
YXJ0aWFsID8gbmFtZS52YWx1ZSA6IHNhbml0aXplX25hbWUobmFtZS52YWx1ZSwgImludGVyZmFj
ZSBtaXhpbiIpLAotICAgICAgICBwYXJ0aWFsOiBpc1BhcnRpYWwsCi0gICAgICAgIG1lbWJlcnM6
IG1lbXMKLSAgICAgIH07Ci0gICAgICBjb25zdW1lKCJ7IikgfHwgZXJyb3IoIkJvZHlsZXNzIGlu
dGVyZmFjZSBtaXhpbiIpOwotICAgICAgd2hpbGUgKHRydWUpIHsKLSAgICAgICAgaWYgKGNvbnN1
bWUoIn0iKSkgewotICAgICAgICAgIGNvbnN1bWUoIjsiKSB8fCBlcnJvcigiTWlzc2luZyBzZW1p
Y29sb24gYWZ0ZXIgaW50ZXJmYWNlIG1peGluIik7Ci0gICAgICAgICAgcmV0dXJuIHJldDsKLSAg
ICAgICAgfQotICAgICAgICBjb25zdCBlYSA9IGV4dGVuZGVkX2F0dHJzKCk7Ci0gICAgICAgIGNv
bnN0IG1lbSA9IGNvbnN0XygpIHx8Ci0gICAgICAgICAgc3RyaW5naWZpZXIoKSB8fAotICAgICAg
ICAgIGF0dHJpYnV0ZSh7IG5vSW5oZXJpdDogdHJ1ZSB9KSB8fAotICAgICAgICAgIG9wZXJhdGlv
bih7IHJlZ3VsYXI6IHRydWUgfSkgfHwKLSAgICAgICAgICBlcnJvcigiVW5rbm93biBtZW1iZXIi
KTsKLSAgICAgICAgbWVtLmV4dEF0dHJzID0gZWE7Ci0gICAgICAgIHJldC5tZW1iZXJzLnB1c2go
bWVtKTsKLSAgICAgIH0KLSAgICB9CiAKLSAgICBmdW5jdGlvbiBpbnRlcmZhY2VfKGlzUGFydGlh
bCkgewotICAgICAgaWYgKCFjb25zdW1lKCJpbnRlcmZhY2UiKSkgcmV0dXJuOwotICAgICAgcmV0
dXJuIG1peGluX3Jlc3QoaXNQYXJ0aWFsKSB8fAotICAgICAgICBpbnRlcmZhY2VfcmVzdChpc1Bh
cnRpYWwpIHx8Ci0gICAgICAgIGVycm9yKCJJbnRlcmZhY2UgaGFzIG5vIHByb3BlciBib2R5Iik7
Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gbmFtZXNwYWNlKGlzUGFydGlhbCkgewotICAgICAgaWYg
KCFjb25zdW1lKCJuYW1lc3BhY2UiKSkgcmV0dXJuOwotICAgICAgY29uc3QgbmFtZSA9IGNvbnN1
bWUoSUQpIHx8IGVycm9yKCJObyBuYW1lIGZvciBuYW1lc3BhY2UiKTsKLSAgICAgIGNvbnN0IG1l
bXMgPSBbXTsKLSAgICAgIGNvbnN0IHJldCA9IGN1cnJlbnQgPSB7Ci0gICAgICAgIHR5cGU6ICJu
YW1lc3BhY2UiLAotICAgICAgICBuYW1lOiBpc1BhcnRpYWwgPyBuYW1lLnZhbHVlIDogc2FuaXRp
emVfbmFtZShuYW1lLnZhbHVlLCAibmFtZXNwYWNlIiksCi0gICAgICAgIHBhcnRpYWw6IGlzUGFy
dGlhbCwKLSAgICAgICAgbWVtYmVyczogbWVtcwotICAgICAgfTsKLSAgICAgIGNvbnN1bWUoInsi
KSB8fCBlcnJvcigiQm9keWxlc3MgbmFtZXNwYWNlIik7Ci0gICAgICB3aGlsZSAodHJ1ZSkgewot
ICAgICAgICBpZiAoY29uc3VtZSgifSIpKSB7Ci0gICAgICAgICAgY29uc3VtZSgiOyIpIHx8IGVy
cm9yKCJNaXNzaW5nIHNlbWljb2xvbiBhZnRlciBuYW1lc3BhY2UiKTsKLSAgICAgICAgICByZXR1
cm4gcmV0OwotICAgICAgICB9Ci0gICAgICAgIGNvbnN0IGVhID0gZXh0ZW5kZWRfYXR0cnMoKTsK
LSAgICAgICAgY29uc3QgbWVtID0gYXR0cmlidXRlKHsgbm9Jbmhlcml0OiB0cnVlLCByZWFkb25s
eTogdHJ1ZSB9KSB8fAotICAgICAgICAgIG9wZXJhdGlvbih7IHJlZ3VsYXI6IHRydWUgfSkgfHwK
LSAgICAgICAgICBlcnJvcigiVW5rbm93biBtZW1iZXIiKTsKLSAgICAgICAgbWVtLmV4dEF0dHJz
ID0gZWE7Ci0gICAgICAgIHJldC5tZW1iZXJzLnB1c2gobWVtKTsKLSAgICAgIH0KLSAgICB9Cisv
KioqLyB9KSwKKy8qIDcgKi8KKy8qKiovIChmdW5jdGlvbihtb2R1bGUsIF9fd2VicGFja19leHBv
cnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pIHsKIAotICAgIGZ1bmN0aW9uIHBhcnRpYWwoKSB7
Ci0gICAgICBpZiAoIWNvbnN1bWUoInBhcnRpYWwiKSkgcmV0dXJuOwotICAgICAgY29uc3QgdGhp
bmcgPSBkaWN0aW9uYXJ5KHRydWUpIHx8Ci0gICAgICAgIGludGVyZmFjZV8odHJ1ZSkgfHwKLSAg
ICAgICAgbmFtZXNwYWNlKHRydWUpIHx8Ci0gICAgICAgIGVycm9yKCJQYXJ0aWFsIGRvZXNuJ3Qg
YXBwbHkgdG8gYW55dGhpbmciKTsKLSAgICAgIHJldHVybiB0aGluZzsKLSAgICB9Ci0KLSAgICBm
dW5jdGlvbiBkaWN0aW9uYXJ5KGlzUGFydGlhbCkgewotICAgICAgaWYgKCFjb25zdW1lKCJkaWN0
aW9uYXJ5IikpIHJldHVybjsKLSAgICAgIGNvbnN0IG5hbWUgPSBjb25zdW1lKElEKSB8fCBlcnJv
cigiTm8gbmFtZSBmb3IgZGljdGlvbmFyeSIpOwotICAgICAgY29uc3QgbWVtcyA9IFtdOwotICAg
ICAgY29uc3QgcmV0ID0gY3VycmVudCA9IHsKLSAgICAgICAgdHlwZTogImRpY3Rpb25hcnkiLAot
ICAgICAgICBuYW1lOiBpc1BhcnRpYWwgPyBuYW1lLnZhbHVlIDogc2FuaXRpemVfbmFtZShuYW1l
LnZhbHVlLCAiZGljdGlvbmFyeSIpLAotICAgICAgICBwYXJ0aWFsOiBpc1BhcnRpYWwsCi0gICAg
ICAgIG1lbWJlcnM6IG1lbXMKLSAgICAgIH07Ci0gICAgICBpZiAoIWlzUGFydGlhbCkgcmV0Lmlu
aGVyaXRhbmNlID0gaW5oZXJpdGFuY2UoKSB8fCBudWxsOwotICAgICAgY29uc3VtZSgieyIpIHx8
IGVycm9yKCJCb2R5bGVzcyBkaWN0aW9uYXJ5Iik7Ci0gICAgICB3aGlsZSAodHJ1ZSkgewotICAg
ICAgICBpZiAoY29uc3VtZSgifSIpKSB7Ci0gICAgICAgICAgY29uc3VtZSgiOyIpIHx8IGVycm9y
KCJNaXNzaW5nIHNlbWljb2xvbiBhZnRlciBkaWN0aW9uYXJ5Iik7Ci0gICAgICAgICAgcmV0dXJu
IHJldDsKLSAgICAgICAgfQotICAgICAgICBjb25zdCBlYSA9IGV4dGVuZGVkX2F0dHJzKCk7Ci0g
ICAgICAgIGNvbnN0IHJlcXVpcmVkID0gY29uc3VtZSgicmVxdWlyZWQiKTsKLSAgICAgICAgY29u
c3QgdHlwID0gdHlwZV93aXRoX2V4dGVuZGVkX2F0dHJpYnV0ZXMoImRpY3Rpb25hcnktdHlwZSIp
IHx8IGVycm9yKCJObyB0eXBlIGZvciBkaWN0aW9uYXJ5IG1lbWJlciIpOwotICAgICAgICBjb25z
dCBuYW1lID0gY29uc3VtZShJRCkgfHwgZXJyb3IoIk5vIG5hbWUgZm9yIGRpY3Rpb25hcnkgbWVt
YmVyIik7Ci0gICAgICAgIGNvbnN0IGRmbHQgPSBkZWZhdWx0XygpIHx8IG51bGw7Ci0gICAgICAg
IGlmIChyZXF1aXJlZCAmJiBkZmx0KSBlcnJvcigiUmVxdWlyZWQgbWVtYmVyIG11c3Qgbm90IGhh
dmUgYSBkZWZhdWx0Iik7Ci0gICAgICAgIGNvbnN0IG1lbWJlciA9IHsKLSAgICAgICAgICB0eXBl
OiAiZmllbGQiLAotICAgICAgICAgIG5hbWU6IHVuZXNjYXBlKG5hbWUudmFsdWUpLAotICAgICAg
ICAgIGVzY2FwZWROYW1lOiBuYW1lLnZhbHVlLAotICAgICAgICAgIHJlcXVpcmVkOiAhIXJlcXVp
cmVkLAotICAgICAgICAgIGlkbFR5cGU6IHR5cCwKLSAgICAgICAgICBleHRBdHRyczogZWEsCi0g
ICAgICAgICAgZGVmYXVsdDogZGZsdAotICAgICAgICB9OwotICAgICAgICByZXQubWVtYmVycy5w
dXNoKG1lbWJlcik7Ci0gICAgICAgIGNvbnN1bWUoIjsiKSB8fCBlcnJvcigiVW50ZXJtaW5hdGVk
IGRpY3Rpb25hcnkgbWVtYmVyIik7CisidXNlIHN0cmljdCI7CitfX3dlYnBhY2tfcmVxdWlyZV9f
LnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7CisvKiBoYXJtb255IGV4cG9ydCAoYmluZGluZykgKi8g
X193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sICJpZGxUeXBlSW5jbHVk
ZXNEaWN0aW9uYXJ5IiwgZnVuY3Rpb24oKSB7IHJldHVybiBpZGxUeXBlSW5jbHVkZXNEaWN0aW9u
YXJ5OyB9KTsKKy8qKgorICogQHBhcmFtIHsqfSBpZGxUeXBlCisgKiBAcGFyYW0geypbXX0gZGVm
cworICogQHBhcmFtIHtvYmplY3R9IFtvcHRpb25zXQorICogQHBhcmFtIHtib29sZWFufSBbb3B0
aW9ucy51c2VOdWxsYWJsZUlubmVyXSB1c2Ugd2hlbiB0aGUgaW5wdXQgaWRsVHlwZSBpcyBudWxs
YWJsZSBhbmQgeW91IHdhbnQgdG8gdXNlIGl0cyBpbm5lciB0eXBlCisgKiBAcmV0dXJuIHRoZSB0
eXBlIHJlZmVyZW5jZSB0aGF0IHVsdGltYXRlbHkgaW5jbHVkZXMgZGljdGlvbmFyeS4KKyAqLwor
ZnVuY3Rpb24gaWRsVHlwZUluY2x1ZGVzRGljdGlvbmFyeShpZGxUeXBlLCBkZWZzLCB7IHVzZU51
bGxhYmxlSW5uZXIgfSA9IHt9KSB7CisgIGlmICghaWRsVHlwZS51bmlvbikgeworICAgIGNvbnN0
IGRlZiA9IGRlZnMudW5pcXVlLmdldChpZGxUeXBlLmlkbFR5cGUpOworICAgIGlmICghZGVmKSB7
CisgICAgICByZXR1cm47CisgICAgfQorICAgIGlmIChkZWYudHlwZSA9PT0gInR5cGVkZWYiKSB7
CisgICAgICBjb25zdCB7IHR5cGVkZWZJbmNsdWRlc0RpY3Rpb25hcnl9ID0gZGVmcy5jYWNoZTsK
KyAgICAgIGlmICh0eXBlZGVmSW5jbHVkZXNEaWN0aW9uYXJ5LmhhcyhkZWYpKSB7CisgICAgICAg
IC8vIE5vdGUgdGhhdCB0aGlzIGFsc28gaGFsdHMgd2hlbiBpdCBtZXQgaW5kZXRlcm1pbmF0ZSBz
dGF0ZQorICAgICAgICAvLyB0byBwcmV2ZW50IGluZmluaXRlIHJlY3Vyc2lvbgorICAgICAgICBy
ZXR1cm4gdHlwZWRlZkluY2x1ZGVzRGljdGlvbmFyeS5nZXQoZGVmKTsKKyAgICAgIH0KKyAgICAg
IGRlZnMuY2FjaGUudHlwZWRlZkluY2x1ZGVzRGljdGlvbmFyeS5zZXQoZGVmLCB1bmRlZmluZWQp
OyAvLyBpbmRldGVybWluYXRlIHN0YXRlCisgICAgICBjb25zdCByZXN1bHQgPSBpZGxUeXBlSW5j
bHVkZXNEaWN0aW9uYXJ5KGRlZi5pZGxUeXBlLCBkZWZzKTsKKyAgICAgIGRlZnMuY2FjaGUudHlw
ZWRlZkluY2x1ZGVzRGljdGlvbmFyeS5zZXQoZGVmLCByZXN1bHQpOworICAgICAgaWYgKHJlc3Vs
dCkgeworICAgICAgICByZXR1cm4gaWRsVHlwZTsKICAgICAgIH0KICAgICB9Ci0KLSAgICBmdW5j
dGlvbiBlbnVtXygpIHsKLSAgICAgIGlmICghY29uc3VtZSgiZW51bSIpKSByZXR1cm47Ci0gICAg
ICBjb25zdCBuYW1lID0gY29uc3VtZShJRCkgfHwgZXJyb3IoIk5vIG5hbWUgZm9yIGVudW0iKTsK
LSAgICAgIGNvbnN0IHZhbHMgPSBbXTsKLSAgICAgIGNvbnN0IHJldCA9IGN1cnJlbnQgPSB7Ci0g
ICAgICAgIHR5cGU6ICJlbnVtIiwKLSAgICAgICAgbmFtZTogc2FuaXRpemVfbmFtZShuYW1lLnZh
bHVlLCAiZW51bSIpLAotICAgICAgICB2YWx1ZXM6IHZhbHMKLSAgICAgIH07Ci0gICAgICBjb25z
dW1lKCJ7IikgfHwgZXJyb3IoIk5vIGN1cmx5IGZvciBlbnVtIik7Ci0gICAgICBsZXQgdmFsdWVf
ZXhwZWN0ZWQgPSB0cnVlOwotICAgICAgd2hpbGUgKHRydWUpIHsKLSAgICAgICAgaWYgKGNvbnN1
bWUoIn0iKSkgewotICAgICAgICAgIGlmICghcmV0LnZhbHVlcy5sZW5ndGgpIGVycm9yKCJObyB2
YWx1ZSBpbiBlbnVtIik7Ci0gICAgICAgICAgY29uc3VtZSgiOyIpIHx8IGVycm9yKCJObyBzZW1p
Y29sb24gYWZ0ZXIgZW51bSIpOwotICAgICAgICAgIHJldHVybiByZXQ7Ci0gICAgICAgIH0KLSAg
ICAgICAgZWxzZSBpZiAoIXZhbHVlX2V4cGVjdGVkKSB7Ci0gICAgICAgICAgZXJyb3IoIk5vIGNv
bW1hIGJldHdlZW4gZW51bSB2YWx1ZXMiKTsKLSAgICAgICAgfQotICAgICAgICBjb25zdCB2YWwg
PSBjb25zdW1lKFNUUikgfHwgZXJyb3IoIlVuZXhwZWN0ZWQgdmFsdWUgaW4gZW51bSIpOwotICAg
ICAgICB2YWwudmFsdWUgPSB2YWwudmFsdWUuc2xpY2UoMSwgLTEpOwotICAgICAgICAvLyBObyB0
cml2aWEgZXhwb3N1cmUgeWV0Ci0gICAgICAgIHZhbC50cml2aWEgPSB1bmRlZmluZWQ7Ci0gICAg
ICAgIHJldC52YWx1ZXMucHVzaCh2YWwpOwotICAgICAgICB2YWx1ZV9leHBlY3RlZCA9ICEhY29u
c3VtZSgiLCIpOworICAgIGlmIChkZWYudHlwZSA9PT0gImRpY3Rpb25hcnkiICYmICh1c2VOdWxs
YWJsZUlubmVyIHx8ICFpZGxUeXBlLm51bGxhYmxlKSkgeworICAgICAgcmV0dXJuIGlkbFR5cGU7
CisgICAgfQorICB9CisgIGZvciAoY29uc3Qgc3VidHlwZSBvZiBpZGxUeXBlLnN1YnR5cGUpIHsK
KyAgICBjb25zdCByZXN1bHQgPSBpZGxUeXBlSW5jbHVkZXNEaWN0aW9uYXJ5KHN1YnR5cGUsIGRl
ZnMpOworICAgIGlmIChyZXN1bHQpIHsKKyAgICAgIGlmIChzdWJ0eXBlLnVuaW9uKSB7CisgICAg
ICAgIHJldHVybiByZXN1bHQ7CiAgICAgICB9CisgICAgICByZXR1cm4gc3VidHlwZTsKICAgICB9
CisgIH0KK30KIAotICAgIGZ1bmN0aW9uIHR5cGVkZWYoKSB7Ci0gICAgICBpZiAoIWNvbnN1bWUo
InR5cGVkZWYiKSkgcmV0dXJuOwotICAgICAgY29uc3QgcmV0ID0gewotICAgICAgICB0eXBlOiAi
dHlwZWRlZiIKLSAgICAgIH07Ci0gICAgICByZXQuaWRsVHlwZSA9IHR5cGVfd2l0aF9leHRlbmRl
ZF9hdHRyaWJ1dGVzKCJ0eXBlZGVmLXR5cGUiKSB8fCBlcnJvcigiTm8gdHlwZSBpbiB0eXBlZGVm
Iik7Ci0gICAgICBjb25zdCBuYW1lID0gY29uc3VtZShJRCkgfHwgZXJyb3IoIk5vIG5hbWUgaW4g
dHlwZWRlZiIpOwotICAgICAgcmV0Lm5hbWUgPSBzYW5pdGl6ZV9uYW1lKG5hbWUudmFsdWUsICJ0
eXBlZGVmIik7Ci0gICAgICBjdXJyZW50ID0gcmV0OwotICAgICAgY29uc3VtZSgiOyIpIHx8IGVy
cm9yKCJVbnRlcm1pbmF0ZWQgdHlwZWRlZiIpOwotICAgICAgcmV0dXJuIHJldDsKLSAgICB9Ci0K
LSAgICBmdW5jdGlvbiBpbXBsZW1lbnRzXygpIHsKLSAgICAgIGNvbnN0IHN0YXJ0X3Bvc2l0aW9u
ID0gY29uc3VtZV9wb3NpdGlvbjsKLSAgICAgIGNvbnN0IHRhcmdldCA9IGNvbnN1bWUoSUQpOwot
ICAgICAgaWYgKCF0YXJnZXQpIHJldHVybjsKLSAgICAgIGlmIChjb25zdW1lKCJpbXBsZW1lbnRz
IikpIHsKLSAgICAgICAgY29uc3QgcmV0ID0gewotICAgICAgICAgIHR5cGU6ICJpbXBsZW1lbnRz
IiwKLSAgICAgICAgICB0YXJnZXQ6IHRhcmdldC52YWx1ZQotICAgICAgICB9OwotICAgICAgICBj
b25zdCBpbXAgPSBjb25zdW1lKElEKSB8fCBlcnJvcigiSW5jb21wbGV0ZSBpbXBsZW1lbnRzIHN0
YXRlbWVudCIpOwotICAgICAgICByZXQuaW1wbGVtZW50cyA9IGltcC52YWx1ZTsKLSAgICAgICAg
Y29uc3VtZSgiOyIpIHx8IGVycm9yKCJObyB0ZXJtaW5hdGluZyA7IGZvciBpbXBsZW1lbnRzIHN0
YXRlbWVudCIpOwotICAgICAgICByZXR1cm4gcmV0OwotICAgICAgfSBlbHNlIHsKLSAgICAgICAg
Ly8gcm9sbGJhY2sKLSAgICAgICAgdW5jb25zdW1lKHN0YXJ0X3Bvc2l0aW9uKTsKLSAgICAgIH0K
KworLyoqKi8gfSksCisvKiA4ICovCisvKioqLyAoZnVuY3Rpb24obW9kdWxlLCBfX3dlYnBhY2tf
ZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CisKKyJ1c2Ugc3RyaWN0IjsKK19fd2Vi
cGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTsKKy8qIGhhcm1vbnkgZXhwb3J0
IChiaW5kaW5nKSAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywg
IkFyZ3VtZW50IiwgZnVuY3Rpb24oKSB7IHJldHVybiBBcmd1bWVudDsgfSk7CisvKiBoYXJtb255
IGltcG9ydCAqLyB2YXIgX2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9f
d2VicGFja19yZXF1aXJlX18oNik7CisvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2RlZmF1bHRf
anNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oOSk7
CisvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2V4dGVuZGVkX2F0dHJpYnV0ZXNfanNfX1dFQlBB
Q0tfSU1QT1JURURfTU9EVUxFXzJfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMTApOworLyogaGFy
bW9ueSBpbXBvcnQgKi8gdmFyIF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8z
X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDQpOworLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF90
b2tlbmlzZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXyA9IF9fd2VicGFja19yZXF1
aXJlX18oMik7CisvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2Vycm9yX2pzX19XRUJQQUNLX0lN
UE9SVEVEX01PRFVMRV81X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDMpOworLyogaGFybW9ueSBp
bXBvcnQgKi8gdmFyIF92YWxpZGF0b3JzX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9E
VUxFXzZfXyA9IF9fd2VicGFja19yZXF1aXJlX18oNyk7CisKKworCisKKworCisKKworY2xhc3Mg
QXJndW1lbnQgZXh0ZW5kcyBfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJC
YXNlIl0geworICAvKioKKyAgICogQHBhcmFtIHtpbXBvcnQoIi4uL3Rva2VuaXNlciIpLlRva2Vu
aXNlcn0gdG9rZW5pc2VyCisgICAqLworICBzdGF0aWMgcGFyc2UodG9rZW5pc2VyKSB7CisgICAg
Y29uc3Qgc3RhcnRfcG9zaXRpb24gPSB0b2tlbmlzZXIucG9zaXRpb247CisgICAgY29uc3QgdG9r
ZW5zID0ge307CisgICAgY29uc3QgcmV0ID0gbmV3IEFyZ3VtZW50KHsgc291cmNlOiB0b2tlbmlz
ZXIuc291cmNlLCB0b2tlbnMgfSk7CisgICAgcmV0LmV4dEF0dHJzID0gX2V4dGVuZGVkX2F0dHJp
YnV0ZXNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX1siRXh0ZW5kZWRBdHRyaWJ1dGVz
Il0ucGFyc2UodG9rZW5pc2VyKTsKKyAgICB0b2tlbnMub3B0aW9uYWwgPSB0b2tlbmlzZXIuY29u
c3VtZSgib3B0aW9uYWwiKTsKKyAgICByZXQuaWRsVHlwZSA9IE9iamVjdChfaGVscGVyc19qc19f
V0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fWyJ0eXBlX3dpdGhfZXh0ZW5kZWRfYXR0cmlidXRl
cyJdKSh0b2tlbmlzZXIsICJhcmd1bWVudC10eXBlIik7CisgICAgaWYgKCFyZXQuaWRsVHlwZSkg
eworICAgICAgcmV0dXJuIHRva2VuaXNlci51bmNvbnN1bWUoc3RhcnRfcG9zaXRpb24pOwogICAg
IH0KKyAgICBpZiAoIXRva2Vucy5vcHRpb25hbCkgeworICAgICAgdG9rZW5zLnZhcmlhZGljID0g
dG9rZW5pc2VyLmNvbnN1bWUoIi4uLiIpOworICAgIH0KKyAgICB0b2tlbnMubmFtZSA9IHRva2Vu
aXNlci5jb25zdW1lKCJpZGVudGlmaWVyIiwgLi4uX3Rva2VuaXNlcl9qc19fV0VCUEFDS19JTVBP
UlRFRF9NT0RVTEVfNF9fWyJhcmd1bWVudE5hbWVLZXl3b3JkcyJdKTsKKyAgICBpZiAoIXRva2Vu
cy5uYW1lKSB7CisgICAgICByZXR1cm4gdG9rZW5pc2VyLnVuY29uc3VtZShzdGFydF9wb3NpdGlv
bik7CisgICAgfQorICAgIHJldC5kZWZhdWx0ID0gdG9rZW5zLm9wdGlvbmFsID8gX2RlZmF1bHRf
anNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX1siRGVmYXVsdCJdLnBhcnNlKHRva2VuaXNl
cikgOiBudWxsOworICAgIHJldHVybiByZXQ7CisgIH0KIAotICAgIGZ1bmN0aW9uIGluY2x1ZGVz
KCkgewotICAgICAgY29uc3Qgc3RhcnRfcG9zaXRpb24gPSBjb25zdW1lX3Bvc2l0aW9uOwotICAg
ICAgY29uc3QgdGFyZ2V0ID0gY29uc3VtZShJRCk7Ci0gICAgICBpZiAoIXRhcmdldCkgcmV0dXJu
OwotICAgICAgaWYgKGNvbnN1bWUoImluY2x1ZGVzIikpIHsKLSAgICAgICAgY29uc3QgcmV0ID0g
ewotICAgICAgICAgIHR5cGU6ICJpbmNsdWRlcyIsCi0gICAgICAgICAgdGFyZ2V0OiB0YXJnZXQu
dmFsdWUKLSAgICAgICAgfTsKLSAgICAgICAgY29uc3QgaW1wID0gY29uc3VtZShJRCkgfHwgZXJy
b3IoIkluY29tcGxldGUgaW5jbHVkZXMgc3RhdGVtZW50Iik7Ci0gICAgICAgIHJldC5pbmNsdWRl
cyA9IGltcC52YWx1ZTsKLSAgICAgICAgY29uc3VtZSgiOyIpIHx8IGVycm9yKCJObyB0ZXJtaW5h
dGluZyA7IGZvciBpbmNsdWRlcyBzdGF0ZW1lbnQiKTsKLSAgICAgICAgcmV0dXJuIHJldDsKLSAg
ICAgIH0gZWxzZSB7Ci0gICAgICAgIC8vIHJvbGxiYWNrCi0gICAgICAgIHVuY29uc3VtZShzdGFy
dF9wb3NpdGlvbik7CisgIGdldCB0eXBlKCkgeworICAgIHJldHVybiAiYXJndW1lbnQiOworICB9
CisgIGdldCBvcHRpb25hbCgpIHsKKyAgICByZXR1cm4gISF0aGlzLnRva2Vucy5vcHRpb25hbDsK
KyAgfQorICBnZXQgdmFyaWFkaWMoKSB7CisgICAgcmV0dXJuICEhdGhpcy50b2tlbnMudmFyaWFk
aWM7CisgIH0KKyAgZ2V0IG5hbWUoKSB7CisgICAgcmV0dXJuIE9iamVjdChfaGVscGVyc19qc19f
V0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fWyJ1bmVzY2FwZSJdKSh0aGlzLnRva2Vucy5uYW1l
LnZhbHVlKTsKKyAgfQorCisgICp2YWxpZGF0ZShkZWZzKSB7CisgICAgeWllbGQqIHRoaXMuaWRs
VHlwZS52YWxpZGF0ZShkZWZzKTsKKyAgICBpZiAoT2JqZWN0KF92YWxpZGF0b3JzX2hlbHBlcnNf
anNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfX1siaWRsVHlwZUluY2x1ZGVzRGljdGlvbmFy
eSJdKSh0aGlzLmlkbFR5cGUsIGRlZnMsIHsgdXNlTnVsbGFibGVJbm5lcjogdHJ1ZSB9KSkgewor
ICAgICAgaWYgKHRoaXMuaWRsVHlwZS5udWxsYWJsZSkgeworICAgICAgICBjb25zdCBtZXNzYWdl
ID0gYERpY3Rpb25hcnkgYXJndW1lbnRzIGNhbm5vdCBiZSBudWxsYWJsZS5gOworICAgICAgICB5
aWVsZCBPYmplY3QoX2Vycm9yX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X19bInZhbGlk
YXRpb25FcnJvciJdKSh0aGlzLnNvdXJjZSwgdGhpcy50b2tlbnMubmFtZSwgdGhpcywgbWVzc2Fn
ZSk7CisgICAgICB9IGVsc2UgaWYgKHRoaXMub3B0aW9uYWwgJiYgIXRoaXMuZGVmYXVsdCkgewor
ICAgICAgICBjb25zdCBtZXNzYWdlID0gYE9wdGlvbmFsIGRpY3Rpb25hcnkgYXJndW1lbnRzIG11
c3QgaGF2ZSBhIGRlZmF1bHQgdmFsdWUgb2YgXGB7fVxgLmA7CisgICAgICAgIHlpZWxkIE9iamVj
dChfZXJyb3JfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfX1sidmFsaWRhdGlvbkVycm9y
Il0pKHRoaXMuc291cmNlLCB0aGlzLnRva2Vucy5uYW1lLCB0aGlzLCBtZXNzYWdlLCB7CisgICAg
ICAgICAgYXV0b2ZpeDogYXV0b2ZpeE9wdGlvbmFsRGljdGlvbmFyeURlZmF1bHRWYWx1ZSh0aGlz
KQorICAgICAgICB9KTsKICAgICAgIH0KICAgICB9CisgIH0KK30KKworLyoqCisgKiBAcGFyYW0g
e0FyZ3VtZW50fSBhcmcKKyAqLworZnVuY3Rpb24gYXV0b2ZpeE9wdGlvbmFsRGljdGlvbmFyeURl
ZmF1bHRWYWx1ZShhcmcpIHsKKyAgcmV0dXJuICgpID0+IHsKKyAgICBhcmcuZGVmYXVsdCA9IF9k
ZWZhdWx0X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19bIkRlZmF1bHQiXS5wYXJzZShu
ZXcgX3Rva2VuaXNlcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fWyJUb2tlbmlzZXIi
XSgiID0ge30iKSk7CisgIH07Cit9CisKKworLyoqKi8gfSksCisvKiA5ICovCisvKioqLyAoZnVu
Y3Rpb24obW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7
CisKKyJ1c2Ugc3RyaWN0IjsKK19fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0
c19fKTsKKy8qIGhhcm1vbnkgZXhwb3J0IChiaW5kaW5nKSAqLyBfX3dlYnBhY2tfcmVxdWlyZV9f
LmQoX193ZWJwYWNrX2V4cG9ydHNfXywgIkRlZmF1bHQiLCBmdW5jdGlvbigpIHsgcmV0dXJuIERl
ZmF1bHQ7IH0pOworLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9iYXNlX2pzX19XRUJQQUNLX0lN
UE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDYpOworLyogaGFybW9ueSBp
bXBvcnQgKi8gdmFyIF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18gPSBf
X3dlYnBhY2tfcmVxdWlyZV9fKDQpOwogCi0gICAgZnVuY3Rpb24gZGVmaW5pdGlvbigpIHsKLSAg
ICAgIHJldHVybiBjYWxsYmFjaygpIHx8Ci0gICAgICAgIGludGVyZmFjZV8oZmFsc2UpIHx8Ci0g
ICAgICAgIHBhcnRpYWwoKSB8fAotICAgICAgICBkaWN0aW9uYXJ5KGZhbHNlKSB8fAotICAgICAg
ICBlbnVtXygpIHx8Ci0gICAgICAgIHR5cGVkZWYoKSB8fAotICAgICAgICBpbXBsZW1lbnRzXygp
IHx8Ci0gICAgICAgIGluY2x1ZGVzKCkgfHwKLSAgICAgICAgbmFtZXNwYWNlKGZhbHNlKTsKKwor
CitjbGFzcyBEZWZhdWx0IGV4dGVuZHMgX2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxF
XzBfX1siQmFzZSJdIHsKKyAgLyoqCisgICAqIEBwYXJhbSB7aW1wb3J0KCIuLi90b2tlbmlzZXIi
KS5Ub2tlbmlzZXJ9IHRva2VuaXNlcgorICAgKi8KKyAgc3RhdGljIHBhcnNlKHRva2VuaXNlcikg
eworICAgIGNvbnN0IGFzc2lnbiA9IHRva2VuaXNlci5jb25zdW1lKCI9Iik7CisgICAgaWYgKCFh
c3NpZ24pIHsKKyAgICAgIHJldHVybiBudWxsOwogICAgIH0KKyAgICBjb25zdCBkZWYgPSBPYmpl
Y3QoX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX1siY29uc3RfdmFsdWUi
XSkodG9rZW5pc2VyKSB8fCB0b2tlbmlzZXIuY29uc3VtZSgic3RyaW5nIiwgIm51bGwiLCAiWyIs
ICJ7IikgfHwgdG9rZW5pc2VyLmVycm9yKCJObyB2YWx1ZSBmb3IgZGVmYXVsdCIpOworICAgIGNv
bnN0IGV4cHJlc3Npb24gPSBbZGVmXTsKKyAgICBpZiAoZGVmLnR5cGUgPT09ICJbIikgeworICAg
ICAgY29uc3QgY2xvc2UgPSB0b2tlbmlzZXIuY29uc3VtZSgiXSIpIHx8IHRva2VuaXNlci5lcnJv
cigiRGVmYXVsdCBzZXF1ZW5jZSB2YWx1ZSBtdXN0IGJlIGVtcHR5Iik7CisgICAgICBleHByZXNz
aW9uLnB1c2goY2xvc2UpOworICAgIH0gZWxzZSBpZiAoZGVmLnR5cGUgPT09ICJ7IikgeworICAg
ICAgY29uc3QgY2xvc2UgPSB0b2tlbmlzZXIuY29uc3VtZSgifSIpIHx8IHRva2VuaXNlci5lcnJv
cigiRGVmYXVsdCBkaWN0aW9uYXJ5IHZhbHVlIG11c3QgYmUgZW1wdHkiKTsKKyAgICAgIGV4cHJl
c3Npb24ucHVzaChjbG9zZSk7CisgICAgfQorICAgIHJldHVybiBuZXcgRGVmYXVsdCh7IHNvdXJj
ZTogdG9rZW5pc2VyLnNvdXJjZSwgdG9rZW5zOiB7IGFzc2lnbiB9LCBleHByZXNzaW9uIH0pOwor
ICB9CiAKLSAgICBmdW5jdGlvbiBkZWZpbml0aW9ucygpIHsKLSAgICAgIGlmICghdG9rZW5zLmxl
bmd0aCkgcmV0dXJuIFtdOwotICAgICAgY29uc3QgZGVmcyA9IFtdOwotICAgICAgd2hpbGUgKHRy
dWUpIHsKLSAgICAgICAgY29uc3QgZWEgPSBleHRlbmRlZF9hdHRycygpOwotICAgICAgICBjb25z
dCBkZWYgPSBkZWZpbml0aW9uKCk7Ci0gICAgICAgIGlmICghZGVmKSB7Ci0gICAgICAgICAgaWYg
KGVhLmxlbmd0aCkgZXJyb3IoIlN0cmF5IGV4dGVuZGVkIGF0dHJpYnV0ZXMiKTsKLSAgICAgICAg
ICBicmVhazsKLSAgICAgICAgfQotICAgICAgICBkZWYuZXh0QXR0cnMgPSBlYTsKLSAgICAgICAg
ZGVmcy5wdXNoKGRlZik7Ci0gICAgICB9Ci0gICAgICByZXR1cm4gZGVmczsKKyAgY29uc3RydWN0
b3IoeyBzb3VyY2UsIHRva2VucywgZXhwcmVzc2lvbiB9KSB7CisgICAgc3VwZXIoeyBzb3VyY2Us
IHRva2VucyB9KTsKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgImV4cHJlc3Npb24i
LCB7IHZhbHVlOiBleHByZXNzaW9uIH0pOworICB9CisKKyAgZ2V0IHR5cGUoKSB7CisgICAgcmV0
dXJuIE9iamVjdChfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fWyJjb25z
dF9kYXRhIl0pKHRoaXMuZXhwcmVzc2lvblswXSkudHlwZTsKKyAgfQorICBnZXQgdmFsdWUoKSB7
CisgICAgcmV0dXJuIE9iamVjdChfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVf
MV9fWyJjb25zdF9kYXRhIl0pKHRoaXMuZXhwcmVzc2lvblswXSkudmFsdWU7CisgIH0KKyAgZ2V0
IG5lZ2F0aXZlKCkgeworICAgIHJldHVybiBPYmplY3QoX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1Q
T1JURURfTU9EVUxFXzFfX1siY29uc3RfZGF0YSJdKSh0aGlzLmV4cHJlc3Npb25bMF0pLm5lZ2F0
aXZlOworICB9Cit9CisKKworLyoqKi8gfSksCisvKiAxMCAqLworLyoqKi8gKGZ1bmN0aW9uKG1v
ZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgeworCisidXNl
IHN0cmljdCI7CitfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7Cisv
KiBoYXJtb255IGV4cG9ydCAoYmluZGluZykgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2Vi
cGFja19leHBvcnRzX18sICJTaW1wbGVFeHRlbmRlZEF0dHJpYnV0ZSIsIGZ1bmN0aW9uKCkgeyBy
ZXR1cm4gU2ltcGxlRXh0ZW5kZWRBdHRyaWJ1dGU7IH0pOworLyogaGFybW9ueSBleHBvcnQgKGJp
bmRpbmcpICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAiRXh0
ZW5kZWRBdHRyaWJ1dGVzIiwgZnVuY3Rpb24oKSB7IHJldHVybiBFeHRlbmRlZEF0dHJpYnV0ZXM7
IH0pOworLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVE
X01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDYpOworLyogaGFybW9ueSBpbXBvcnQg
Ki8gdmFyIF9hcnJheV9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18gPSBfX3dl
YnBhY2tfcmVxdWlyZV9fKDExKTsKKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfaGVscGVyc19q
c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg0KTsK
Ky8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfZXJyb3JfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9E
VUxFXzNfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMyk7CisKKworCisKKworY2xhc3MgRXh0ZW5k
ZWRBdHRyaWJ1dGVQYXJhbWV0ZXJzIGV4dGVuZHMgX2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURf
TU9EVUxFXzBfX1siQmFzZSJdIHsKKyAgLyoqCisgICAqIEBwYXJhbSB7aW1wb3J0KCIuLi90b2tl
bmlzZXIiKS5Ub2tlbmlzZXJ9IHRva2VuaXNlcgorICAgKi8KKyAgc3RhdGljIHBhcnNlKHRva2Vu
aXNlcikgeworICAgIGNvbnN0IHRva2VucyA9IHsgYXNzaWduOiB0b2tlbmlzZXIuY29uc3VtZSgi
PSIpIH07CisgICAgY29uc3QgcmV0ID0gbmV3IEV4dGVuZGVkQXR0cmlidXRlUGFyYW1ldGVycyh7
IHNvdXJjZTogdG9rZW5pc2VyLnNvdXJjZSwgdG9rZW5zIH0pOworICAgIGlmICh0b2tlbnMuYXNz
aWduKSB7CisgICAgICB0b2tlbnMuc2Vjb25kYXJ5TmFtZSA9IHRva2VuaXNlci5jb25zdW1lKCJp
ZGVudGlmaWVyIiwgImRlY2ltYWwiLCAiaW50ZWdlciIsICJzdHJpbmciKTsKKyAgICB9CisgICAg
dG9rZW5zLm9wZW4gPSB0b2tlbmlzZXIuY29uc3VtZSgiKCIpOworICAgIGlmICh0b2tlbnMub3Bl
bikgeworICAgICAgcmV0Lmxpc3QgPSByZXQucmhzVHlwZSA9PT0gImlkZW50aWZpZXItbGlzdCIg
PworICAgICAgICAvLyBbRXhwb3NlZD0oV2luZG93LFdvcmtlcildCisgICAgICAgIE9iamVjdChf
aGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fWyJpZGVudGlmaWVycyJdKSh0
b2tlbmlzZXIpIDoKKyAgICAgICAgLy8gW05hbWVkQ29uc3RydWN0b3I9QXVkaW8oRE9NU3RyaW5n
IHNyYyldIG9yIFtDb25zdHJ1Y3RvcihET01TdHJpbmcgc3RyKV0KKyAgICAgICAgT2JqZWN0KF9o
ZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19bImFyZ3VtZW50X2xpc3QiXSko
dG9rZW5pc2VyKTsKKyAgICAgIHRva2Vucy5jbG9zZSA9IHRva2VuaXNlci5jb25zdW1lKCIpIikg
fHwgdG9rZW5pc2VyLmVycm9yKCJVbmV4cGVjdGVkIHRva2VuIGluIGV4dGVuZGVkIGF0dHJpYnV0
ZSBhcmd1bWVudCBsaXN0Iik7CisgICAgfSBlbHNlIGlmIChyZXQuaGFzUmhzICYmICF0b2tlbnMu
c2Vjb25kYXJ5TmFtZSkgeworICAgICAgdG9rZW5pc2VyLmVycm9yKCJObyByaWdodCBoYW5kIHNp
ZGUgdG8gZXh0ZW5kZWQgYXR0cmlidXRlIGFzc2lnbm1lbnQiKTsKICAgICB9Ci0gICAgY29uc3Qg
cmVzID0gZGVmaW5pdGlvbnMoKTsKLSAgICBpZiAoY29uc3VtZV9wb3NpdGlvbiA8IHRva2Vucy5s
ZW5ndGgpIGVycm9yKCJVbnJlY29nbmlzZWQgdG9rZW5zIik7Ci0gICAgcmV0dXJuIHJlczsKKyAg
ICByZXR1cm4gcmV0OwogICB9CiAKLSAgY29uc3Qgb2JqID0gewotICAgIHBhcnNlKHN0cikgewot
ICAgICAgY29uc3QgdG9rZW5zID0gdG9rZW5pc2Uoc3RyKTsKLSAgICAgIHJldHVybiBwYXJzZSh0
b2tlbnMpOworICBnZXQgcmhzVHlwZSgpIHsKKyAgICByZXR1cm4gIXRoaXMudG9rZW5zLmFzc2ln
biA/IG51bGwgOgorICAgICAgIXRoaXMudG9rZW5zLnNlY29uZGFyeU5hbWUgPyAiaWRlbnRpZmll
ci1saXN0IiA6CisgICAgICAgIHRoaXMudG9rZW5zLnNlY29uZGFyeU5hbWUudHlwZTsKKyAgfQor
fQorCitjbGFzcyBTaW1wbGVFeHRlbmRlZEF0dHJpYnV0ZSBleHRlbmRzIF9iYXNlX2pzX19XRUJQ
QUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIkJhc2UiXSB7CisgIC8qKgorICAgKiBAcGFyYW0ge2lt
cG9ydCgiLi4vdG9rZW5pc2VyIikuVG9rZW5pc2VyfSB0b2tlbmlzZXIKKyAgICovCisgIHN0YXRp
YyBwYXJzZSh0b2tlbmlzZXIpIHsKKyAgICBjb25zdCBuYW1lID0gdG9rZW5pc2VyLmNvbnN1bWUo
ImlkZW50aWZpZXIiKTsKKyAgICBpZiAobmFtZSkgeworICAgICAgcmV0dXJuIG5ldyBTaW1wbGVF
eHRlbmRlZEF0dHJpYnV0ZSh7CisgICAgICAgIHNvdXJjZTogdG9rZW5pc2VyLnNvdXJjZSwKKyAg
ICAgICAgdG9rZW5zOiB7IG5hbWUgfSwKKyAgICAgICAgcGFyYW1zOiBFeHRlbmRlZEF0dHJpYnV0
ZVBhcmFtZXRlcnMucGFyc2UodG9rZW5pc2VyKQorICAgICAgfSk7CiAgICAgfQotICB9OworICB9
CisKKyAgY29uc3RydWN0b3IoeyBzb3VyY2UsIHRva2VucywgcGFyYW1zIH0pIHsKKyAgICBzdXBl
cih7IHNvdXJjZSwgdG9rZW5zIH0pOworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCAi
cGFyYW1zIiwgeyB2YWx1ZTogcGFyYW1zIH0pOworICB9CiAKLSAgaWYgKHR5cGVvZiBtb2R1bGUg
IT09ICd1bmRlZmluZWQnICYmIHR5cGVvZiBtb2R1bGUuZXhwb3J0cyAhPT0gJ3VuZGVmaW5lZCcp
IHsKLSAgICBtb2R1bGUuZXhwb3J0cyA9IG9iajsKLSAgfSBlbHNlIGlmICh0eXBlb2YgZGVmaW5l
ID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQpIHsKLSAgICBkZWZpbmUoW10sICgpID0+IG9i
aik7Ci0gIH0gZWxzZSB7Ci0gICAgKHNlbGYgfHwgd2luZG93KS5XZWJJREwyID0gb2JqOworICBn
ZXQgdHlwZSgpIHsKKyAgICByZXR1cm4gImV4dGVuZGVkLWF0dHJpYnV0ZSI7CisgIH0KKyAgZ2V0
IG5hbWUoKSB7CisgICAgcmV0dXJuIHRoaXMudG9rZW5zLm5hbWUudmFsdWU7CisgIH0KKyAgZ2V0
IHJocygpIHsKKyAgICBjb25zdCB7IHJoc1R5cGU6IHR5cGUsIHRva2VucywgbGlzdCB9ID0gdGhp
cy5wYXJhbXM7CisgICAgaWYgKCF0eXBlKSB7CisgICAgICByZXR1cm4gbnVsbDsKKyAgICB9Cisg
ICAgY29uc3QgdmFsdWUgPSB0eXBlID09PSAiaWRlbnRpZmllci1saXN0IiA/IGxpc3QgOiB0b2tl
bnMuc2Vjb25kYXJ5TmFtZS52YWx1ZTsKKyAgICByZXR1cm4geyB0eXBlLCB2YWx1ZSB9OworICB9
CisgIGdldCBhcmd1bWVudHMoKSB7CisgICAgY29uc3QgeyByaHNUeXBlLCBsaXN0IH0gPSB0aGlz
LnBhcmFtczsKKyAgICBpZiAoIWxpc3QgfHwgcmhzVHlwZSA9PT0gImlkZW50aWZpZXItbGlzdCIp
IHsKKyAgICAgIHJldHVybiBbXTsKKyAgICB9CisgICAgcmV0dXJuIGxpc3Q7CiAgIH0KLX0pKCk7
CisKKyAgKnZhbGlkYXRlKGRlZnMpIHsKKyAgICBpZiAodGhpcy5uYW1lID09PSAiTm9JbnRlcmZh
Y2VPYmplY3QiKSB7CisgICAgICBjb25zdCBtZXNzYWdlID0gYFxgW05vSW50ZXJmYWNlT2JqZWN0
XVxgIGV4dGVuZGVkIGF0dHJpYnV0ZSBpcyBhbiBcCit1bmRlc2lyYWJsZSBmZWF0dXJlIHRoYXQg
bWF5IGJlIHJlbW92ZWQgZnJvbSBXZWIgSURMIGluIHRoZSBmdXR1cmUuIFJlZmVyIHRvIHRoZSBc
CitbcmVsZXZhbnQgdXBzdHJlYW0gUFJdKGh0dHBzOi8vZ2l0aHViLmNvbS9oZXljYW0vd2ViaWRs
L3B1bGwvNjA5KSBmb3IgbW9yZSBcCitpbmZvcm1hdGlvbi5gOworICAgICAgeWllbGQgT2JqZWN0
KF9lcnJvcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fWyJ2YWxpZGF0aW9uRXJyb3Ii
XSkodGhpcy5zb3VyY2UsIHRoaXMudG9rZW5zLm5hbWUsIHRoaXMsIG1lc3NhZ2UsIHsgbGV2ZWw6
ICJ3YXJuaW5nIiB9KTsKKyAgICB9CisgICAgZm9yIChjb25zdCBhcmcgb2YgdGhpcy5hcmd1bWVu
dHMpIHsKKyAgICAgIHlpZWxkKiBhcmcudmFsaWRhdGUoZGVmcyk7CisgICAgfQorICB9Cit9CisK
Ky8vIE5vdGU6IHdlIHBhcnNlIHNvbWV0aGluZyBzaW1wbGVyIHRoYW4gdGhlIG9mZmljaWFsIHN5
bnRheC4gSXQncyBhbGwgdGhhdCBldmVyCisvLyBzZWVtcyB0byBiZSB1c2VkCitjbGFzcyBFeHRl
bmRlZEF0dHJpYnV0ZXMgZXh0ZW5kcyBfYXJyYXlfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRFRF9N
T0RVTEVfMV9fWyJBcnJheUJhc2UiXSB7CisgIC8qKgorICAgKiBAcGFyYW0ge2ltcG9ydCgiLi4v
dG9rZW5pc2VyIikuVG9rZW5pc2VyfSB0b2tlbmlzZXIKKyAgICovCisgIHN0YXRpYyBwYXJzZSh0
b2tlbmlzZXIpIHsKKyAgICBjb25zdCB0b2tlbnMgPSB7fTsKKyAgICB0b2tlbnMub3BlbiA9IHRv
a2VuaXNlci5jb25zdW1lKCJbIik7CisgICAgaWYgKCF0b2tlbnMub3BlbikgcmV0dXJuIG5ldyBF
eHRlbmRlZEF0dHJpYnV0ZXMoe30pOworICAgIGNvbnN0IHJldCA9IG5ldyBFeHRlbmRlZEF0dHJp
YnV0ZXMoeyBzb3VyY2U6IHRva2VuaXNlci5zb3VyY2UsIHRva2VucyB9KTsKKyAgICByZXQucHVz
aCguLi5PYmplY3QoX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX1sibGlz
dCJdKSh0b2tlbmlzZXIsIHsKKyAgICAgIHBhcnNlcjogU2ltcGxlRXh0ZW5kZWRBdHRyaWJ1dGUu
cGFyc2UsCisgICAgICBsaXN0TmFtZTogImV4dGVuZGVkIGF0dHJpYnV0ZSIKKyAgICB9KSk7Cisg
ICAgdG9rZW5zLmNsb3NlID0gdG9rZW5pc2VyLmNvbnN1bWUoIl0iKSB8fCB0b2tlbmlzZXIuZXJy
b3IoIlVuZXhwZWN0ZWQgY2xvc2luZyB0b2tlbiBvZiBleHRlbmRlZCBhdHRyaWJ1dGUiKTsKKyAg
ICBpZiAoIXJldC5sZW5ndGgpIHsKKyAgICAgIHRva2VuaXNlci5lcnJvcigiRm91bmQgYW4gZW1w
dHkgZXh0ZW5kZWQgYXR0cmlidXRlIik7CisgICAgfQorICAgIGlmICh0b2tlbmlzZXIucHJvYmUo
IlsiKSkgeworICAgICAgdG9rZW5pc2VyLmVycm9yKCJJbGxlZ2FsIGRvdWJsZSBleHRlbmRlZCBh
dHRyaWJ1dGUgbGlzdHMsIGNvbnNpZGVyIG1lcmdpbmcgdGhlbSIpOworICAgIH0KKyAgICByZXR1
cm4gcmV0OworICB9CisKKyAgKnZhbGlkYXRlKGRlZnMpIHsKKyAgICBmb3IgKGNvbnN0IGV4dEF0
dHIgb2YgdGhpcykgeworICAgICAgeWllbGQqIGV4dEF0dHIudmFsaWRhdGUoZGVmcyk7CisgICAg
fQorICB9Cit9CisKKworLyoqKi8gfSksCisvKiAxMSAqLworLyoqKi8gKGZ1bmN0aW9uKG1vZHVs
ZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgeworCisidXNlIHN0
cmljdCI7CitfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7CisvKiBo
YXJtb255IGV4cG9ydCAoYmluZGluZykgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFj
a19leHBvcnRzX18sICJBcnJheUJhc2UiLCBmdW5jdGlvbigpIHsgcmV0dXJuIEFycmF5QmFzZTsg
fSk7CitjbGFzcyBBcnJheUJhc2UgZXh0ZW5kcyBBcnJheSB7CisgIGNvbnN0cnVjdG9yKHsgc291
cmNlLCB0b2tlbnMgfSkgeworICAgIHN1cGVyKCk7CisgICAgT2JqZWN0LmRlZmluZVByb3BlcnRp
ZXModGhpcywgeworICAgICAgc291cmNlOiB7IHZhbHVlOiBzb3VyY2UgfSwKKyAgICAgIHRva2Vu
czogeyB2YWx1ZTogdG9rZW5zIH0KKyAgICB9KTsKKyAgfQorfQorCisKKy8qKiovIH0pLAorLyog
MTIgKi8KKy8qKiovIChmdW5jdGlvbihtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2Vi
cGFja19yZXF1aXJlX18pIHsKKworInVzZSBzdHJpY3QiOworX193ZWJwYWNrX3JlcXVpcmVfXy5y
KF9fd2VicGFja19leHBvcnRzX18pOworLyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9f
d2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAiVG9rZW4iLCBmdW5jdGlv
bigpIHsgcmV0dXJuIFRva2VuOyB9KTsKKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfYmFzZV9q
c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg2KTsK
KworCitjbGFzcyBUb2tlbiBleHRlbmRzIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVM
RV8wX19bIkJhc2UiXSB7CisgIC8qKgorICAgKiBAcGFyYW0ge2ltcG9ydCgiLi4vdG9rZW5pc2Vy
IikuVG9rZW5pc2VyfSB0b2tlbmlzZXIKKyAgICogQHBhcmFtIHtzdHJpbmd9IHR5cGUKKyAgICov
CisgIHN0YXRpYyBwYXJzZXIodG9rZW5pc2VyLCB0eXBlKSB7CisgICAgcmV0dXJuICgpID0+IHsK
KyAgICAgIGNvbnN0IHZhbHVlID0gdG9rZW5pc2VyLmNvbnN1bWUodHlwZSk7CisgICAgICBpZiAo
dmFsdWUpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBUb2tlbih7IHNvdXJjZTogdG9rZW5pc2VyLnNv
dXJjZSwgdG9rZW5zOiB7IHZhbHVlIH0gfSk7CisgICAgICB9CisgICAgfTsKKyAgfQorCisgIGdl
dCB2YWx1ZSgpIHsKKyAgICByZXR1cm4gdGhpcy50b2tlbnMudmFsdWUudmFsdWU7CisgIH0KK30K
KworCisvKioqLyB9KSwKKy8qIDEzICovCisvKioqLyAoZnVuY3Rpb24obW9kdWxlLCBfX3dlYnBh
Y2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CisKKyJ1c2Ugc3RyaWN0IjsKK19f
d2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTsKKy8qIGhhcm1vbnkgZXhw
b3J0IChiaW5kaW5nKSAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNf
XywgIk9wZXJhdGlvbiIsIGZ1bmN0aW9uKCkgeyByZXR1cm4gT3BlcmF0aW9uOyB9KTsKKy8qIGhh
cm1vbnkgaW1wb3J0ICovIHZhciBfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9f
ID0gX193ZWJwYWNrX3JlcXVpcmVfXyg2KTsKKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfaGVs
cGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVf
Xyg0KTsKKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfZXJyb3JfanNfX1dFQlBBQ0tfSU1QT1JU
RURfTU9EVUxFXzJfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMyk7CisKKworCisKK2NsYXNzIE9w
ZXJhdGlvbiBleHRlbmRzIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIkJh
c2UiXSB7CisgIC8qKgorICAgKiBAcGFyYW0ge2ltcG9ydCgiLi4vdG9rZW5pc2VyLmpzIikuVG9r
ZW5pc2VyfSB0b2tlbmlzZXIKKyAgICovCisgIHN0YXRpYyBwYXJzZSh0b2tlbmlzZXIsIHsgc3Bl
Y2lhbCwgcmVndWxhciB9ID0ge30pIHsKKyAgICBjb25zdCB0b2tlbnMgPSB7IHNwZWNpYWwgfTsK
KyAgICBjb25zdCByZXQgPSBuZXcgT3BlcmF0aW9uKHsgc291cmNlOiB0b2tlbmlzZXIuc291cmNl
LCB0b2tlbnMgfSk7CisgICAgaWYgKHNwZWNpYWwgJiYgc3BlY2lhbC52YWx1ZSA9PT0gInN0cmlu
Z2lmaWVyIikgeworICAgICAgdG9rZW5zLnRlcm1pbmF0aW9uID0gdG9rZW5pc2VyLmNvbnN1bWUo
IjsiKTsKKyAgICAgIGlmICh0b2tlbnMudGVybWluYXRpb24pIHsKKyAgICAgICAgcmV0LmFyZ3Vt
ZW50cyA9IFtdOworICAgICAgICByZXR1cm4gcmV0OworICAgICAgfQorICAgIH0KKyAgICBpZiAo
IXNwZWNpYWwgJiYgIXJlZ3VsYXIpIHsKKyAgICAgIHRva2Vucy5zcGVjaWFsID0gdG9rZW5pc2Vy
LmNvbnN1bWUoImdldHRlciIsICJzZXR0ZXIiLCAiZGVsZXRlciIpOworICAgIH0KKyAgICByZXQu
aWRsVHlwZSA9IE9iamVjdChfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9f
WyJyZXR1cm5fdHlwZSJdKSh0b2tlbmlzZXIpIHx8IHRva2VuaXNlci5lcnJvcigiTWlzc2luZyBy
ZXR1cm4gdHlwZSIpOworICAgIHRva2Vucy5uYW1lID0gdG9rZW5pc2VyLmNvbnN1bWUoImlkZW50
aWZpZXIiLCAiaW5jbHVkZXMiKTsKKyAgICB0b2tlbnMub3BlbiA9IHRva2VuaXNlci5jb25zdW1l
KCIoIikgfHwgdG9rZW5pc2VyLmVycm9yKCJJbnZhbGlkIG9wZXJhdGlvbiIpOworICAgIHJldC5h
cmd1bWVudHMgPSBPYmplY3QoX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFf
X1siYXJndW1lbnRfbGlzdCJdKSh0b2tlbmlzZXIpOworICAgIHRva2Vucy5jbG9zZSA9IHRva2Vu
aXNlci5jb25zdW1lKCIpIikgfHwgdG9rZW5pc2VyLmVycm9yKCJVbnRlcm1pbmF0ZWQgb3BlcmF0
aW9uIik7CisgICAgdG9rZW5zLnRlcm1pbmF0aW9uID0gdG9rZW5pc2VyLmNvbnN1bWUoIjsiKSB8
fCB0b2tlbmlzZXIuZXJyb3IoIlVudGVybWluYXRlZCBvcGVyYXRpb24sIGV4cGVjdGVkIGA7YCIp
OworICAgIHJldHVybiByZXQ7CisgIH0KKworICBnZXQgdHlwZSgpIHsKKyAgICByZXR1cm4gIm9w
ZXJhdGlvbiI7CisgIH0KKyAgZ2V0IG5hbWUoKSB7CisgICAgY29uc3QgeyBuYW1lIH0gPSB0aGlz
LnRva2VuczsKKyAgICBpZiAoIW5hbWUpIHsKKyAgICAgIHJldHVybiAiIjsKKyAgICB9CisgICAg
cmV0dXJuIE9iamVjdChfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fWyJ1
bmVzY2FwZSJdKShuYW1lLnZhbHVlKTsKKyAgfQorICBnZXQgc3BlY2lhbCgpIHsKKyAgICBpZiAo
IXRoaXMudG9rZW5zLnNwZWNpYWwpIHsKKyAgICAgIHJldHVybiAiIjsKKyAgICB9CisgICAgcmV0
dXJuIHRoaXMudG9rZW5zLnNwZWNpYWwudmFsdWU7CisgIH0KKworICAqdmFsaWRhdGUoZGVmcykg
eworICAgIGlmICghdGhpcy5uYW1lICYmIFsiIiwgInN0YXRpYyJdLmluY2x1ZGVzKHRoaXMuc3Bl
Y2lhbCkpIHsKKyAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgUmVndWxhciBvciBzdGF0aWMgb3BlcmF0
aW9ucyBtdXN0IGhhdmUgYm90aCBhIHJldHVybiB0eXBlIGFuZCBhbiBpZGVudGlmaWVyLmA7Cisg
ICAgICB5aWVsZCBPYmplY3QoX2Vycm9yX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19b
InZhbGlkYXRpb25FcnJvciJdKSh0aGlzLnNvdXJjZSwgdGhpcy50b2tlbnMub3BlbiwgdGhpcywg
bWVzc2FnZSk7CisgICAgfQorICAgIGlmICh0aGlzLmlkbFR5cGUpIHsKKyAgICAgIHlpZWxkKiB0
aGlzLmlkbFR5cGUudmFsaWRhdGUoZGVmcyk7CisgICAgfQorICAgIGZvciAoY29uc3QgYXJndW1l
bnQgb2YgdGhpcy5hcmd1bWVudHMpIHsKKyAgICAgIHlpZWxkKiBhcmd1bWVudC52YWxpZGF0ZShk
ZWZzKTsKKyAgICB9CisgIH0KK30KKworCisvKioqLyB9KSwKKy8qIDE0ICovCisvKioqLyAoZnVu
Y3Rpb24obW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7
CisKKyJ1c2Ugc3RyaWN0IjsKK19fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0
c19fKTsKKy8qIGhhcm1vbnkgZXhwb3J0IChiaW5kaW5nKSAqLyBfX3dlYnBhY2tfcmVxdWlyZV9f
LmQoX193ZWJwYWNrX2V4cG9ydHNfXywgIkF0dHJpYnV0ZSIsIGZ1bmN0aW9uKCkgeyByZXR1cm4g
QXR0cmlidXRlOyB9KTsKKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfYmFzZV9qc19fV0VCUEFD
S19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg2KTsKKy8qIGhhcm1v
bnkgaW1wb3J0ICovIHZhciBfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9f
ID0gX193ZWJwYWNrX3JlcXVpcmVfXyg0KTsKKworCisKK2NsYXNzIEF0dHJpYnV0ZSBleHRlbmRz
IF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIkJhc2UiXSB7CisgIC8qKgor
ICAgKiBAcGFyYW0ge2ltcG9ydCgiLi4vdG9rZW5pc2VyLmpzIikuVG9rZW5pc2VyfSB0b2tlbmlz
ZXIKKyAgICovCisgIHN0YXRpYyBwYXJzZSh0b2tlbmlzZXIsIHsgc3BlY2lhbCwgbm9Jbmhlcml0
ID0gZmFsc2UsIHJlYWRvbmx5ID0gZmFsc2UgfSA9IHt9KSB7CisgICAgY29uc3Qgc3RhcnRfcG9z
aXRpb24gPSB0b2tlbmlzZXIucG9zaXRpb247CisgICAgY29uc3QgdG9rZW5zID0geyBzcGVjaWFs
IH07CisgICAgY29uc3QgcmV0ID0gbmV3IEF0dHJpYnV0ZSh7IHNvdXJjZTogdG9rZW5pc2VyLnNv
dXJjZSwgdG9rZW5zIH0pOworICAgIGlmICghc3BlY2lhbCAmJiAhbm9Jbmhlcml0KSB7CisgICAg
ICB0b2tlbnMuc3BlY2lhbCA9IHRva2VuaXNlci5jb25zdW1lKCJpbmhlcml0Iik7CisgICAgfQor
ICAgIGlmIChyZXQuc3BlY2lhbCA9PT0gImluaGVyaXQiICYmIHRva2VuaXNlci5wcm9iZSgicmVh
ZG9ubHkiKSkgeworICAgICAgdG9rZW5pc2VyLmVycm9yKCJJbmhlcml0ZWQgYXR0cmlidXRlcyBj
YW5ub3QgYmUgcmVhZC1vbmx5Iik7CisgICAgfQorICAgIHRva2Vucy5yZWFkb25seSA9IHRva2Vu
aXNlci5jb25zdW1lKCJyZWFkb25seSIpOworICAgIGlmIChyZWFkb25seSAmJiAhdG9rZW5zLnJl
YWRvbmx5ICYmIHRva2VuaXNlci5wcm9iZSgiYXR0cmlidXRlIikpIHsKKyAgICAgIHRva2VuaXNl
ci5lcnJvcigiQXR0cmlidXRlcyBtdXN0IGJlIHJlYWRvbmx5IGluIHRoaXMgY29udGV4dCIpOwor
ICAgIH0KKyAgICB0b2tlbnMuYmFzZSA9IHRva2VuaXNlci5jb25zdW1lKCJhdHRyaWJ1dGUiKTsK
KyAgICBpZiAoIXRva2Vucy5iYXNlKSB7CisgICAgICB0b2tlbmlzZXIudW5jb25zdW1lKHN0YXJ0
X3Bvc2l0aW9uKTsKKyAgICAgIHJldHVybjsKKyAgICB9CisgICAgcmV0LmlkbFR5cGUgPSBPYmpl
Y3QoX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX1sidHlwZV93aXRoX2V4
dGVuZGVkX2F0dHJpYnV0ZXMiXSkodG9rZW5pc2VyLCAiYXR0cmlidXRlLXR5cGUiKSB8fCB0b2tl
bmlzZXIuZXJyb3IoIkF0dHJpYnV0ZSBsYWNrcyBhIHR5cGUiKTsKKyAgICBzd2l0Y2ggKHJldC5p
ZGxUeXBlLmdlbmVyaWMpIHsKKyAgICAgIGNhc2UgInNlcXVlbmNlIjoKKyAgICAgIGNhc2UgInJl
Y29yZCI6IHRva2VuaXNlci5lcnJvcihgQXR0cmlidXRlcyBjYW5ub3QgYWNjZXB0ICR7cmV0Lmlk
bFR5cGUuZ2VuZXJpY30gdHlwZXNgKTsKKyAgICB9CisgICAgdG9rZW5zLm5hbWUgPSB0b2tlbmlz
ZXIuY29uc3VtZSgiaWRlbnRpZmllciIsICJhc3luYyIsICJyZXF1aXJlZCIpIHx8IHRva2VuaXNl
ci5lcnJvcigiQXR0cmlidXRlIGxhY2tzIGEgbmFtZSIpOworICAgIHRva2Vucy50ZXJtaW5hdGlv
biA9IHRva2VuaXNlci5jb25zdW1lKCI7IikgfHwgdG9rZW5pc2VyLmVycm9yKCJVbnRlcm1pbmF0
ZWQgYXR0cmlidXRlLCBleHBlY3RlZCBgO2AiKTsKKyAgICByZXR1cm4gcmV0OworICB9CisKKyAg
Z2V0IHR5cGUoKSB7CisgICAgcmV0dXJuICJhdHRyaWJ1dGUiOworICB9CisgIGdldCBzcGVjaWFs
KCkgeworICAgIGlmICghdGhpcy50b2tlbnMuc3BlY2lhbCkgeworICAgICAgcmV0dXJuICIiOwor
ICAgIH0KKyAgICByZXR1cm4gdGhpcy50b2tlbnMuc3BlY2lhbC52YWx1ZTsKKyAgfQorICBnZXQg
cmVhZG9ubHkoKSB7CisgICAgcmV0dXJuICEhdGhpcy50b2tlbnMucmVhZG9ubHk7CisgIH0KKyAg
Z2V0IG5hbWUoKSB7CisgICAgcmV0dXJuIE9iamVjdChfaGVscGVyc19qc19fV0VCUEFDS19JTVBP
UlRFRF9NT0RVTEVfMV9fWyJ1bmVzY2FwZSJdKSh0aGlzLnRva2Vucy5uYW1lLnZhbHVlKTsKKyAg
fQorCisgICp2YWxpZGF0ZShkZWZzKSB7CisgICAgeWllbGQqIHRoaXMuaWRsVHlwZS52YWxpZGF0
ZShkZWZzKTsKKyAgfQorfQorCisKKy8qKiovIH0pLAorLyogMTUgKi8KKy8qKiovIChmdW5jdGlv
bihtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pIHsKKwor
InVzZSBzdHJpY3QiOworX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18p
OworLyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFja19yZXF1aXJlX18uZChf
X3dlYnBhY2tfZXhwb3J0c19fLCAiRW51bSIsIGZ1bmN0aW9uKCkgeyByZXR1cm4gRW51bTsgfSk7
CisvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURf
TU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oNCk7CisvKiBoYXJtb255IGltcG9ydCAq
LyB2YXIgX3Rva2VuX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18gPSBfX3dlYnBhY2tf
cmVxdWlyZV9fKDEyKTsKKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfYmFzZV9qc19fV0VCUEFD
S19JTVBPUlRFRF9NT0RVTEVfMl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg2KTsKKworCisKKwor
Y2xhc3MgRW51bVZhbHVlIGV4dGVuZHMgX3Rva2VuX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVM
RV8xX19bIlRva2VuIl0geworICAvKioKKyAgICogQHBhcmFtIHtpbXBvcnQoIi4uL3Rva2VuaXNl
ciIpLlRva2VuaXNlcn0gdG9rZW5pc2VyCisgICAqLworICBzdGF0aWMgcGFyc2UodG9rZW5pc2Vy
KSB7CisgICAgY29uc3QgdmFsdWUgPSB0b2tlbmlzZXIuY29uc3VtZSgic3RyaW5nIik7CisgICAg
aWYgKHZhbHVlKSB7CisgICAgICByZXR1cm4gbmV3IEVudW1WYWx1ZSh7IHNvdXJjZTogdG9rZW5p
c2VyLnNvdXJjZSwgdG9rZW5zOiB7IHZhbHVlIH0gfSk7CisgICAgfQorICB9CisKKyAgZ2V0IHR5
cGUoKSB7CisgICAgcmV0dXJuICJlbnVtLXZhbHVlIjsKKyAgfQorICBnZXQgdmFsdWUoKSB7Cisg
ICAgcmV0dXJuIHN1cGVyLnZhbHVlLnNsaWNlKDEsIC0xKTsKKyAgfQorfQorCitjbGFzcyBFbnVt
IGV4dGVuZHMgX2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX1siQmFzZSJdIHsK
KyAgLyoqCisgICAqIEBwYXJhbSB7aW1wb3J0KCIuLi90b2tlbmlzZXIiKS5Ub2tlbmlzZXJ9IHRv
a2VuaXNlcgorICAgKi8KKyAgc3RhdGljIHBhcnNlKHRva2VuaXNlcikgeworICAgIGNvbnN0IHRv
a2VucyA9IHt9OworICAgIHRva2Vucy5iYXNlID0gdG9rZW5pc2VyLmNvbnN1bWUoImVudW0iKTsK
KyAgICBpZiAoIXRva2Vucy5iYXNlKSB7CisgICAgICByZXR1cm47CisgICAgfQorICAgIHRva2Vu
cy5uYW1lID0gdG9rZW5pc2VyLmNvbnN1bWUoImlkZW50aWZpZXIiKSB8fCB0b2tlbmlzZXIuZXJy
b3IoIk5vIG5hbWUgZm9yIGVudW0iKTsKKyAgICBjb25zdCByZXQgPSB0b2tlbmlzZXIuY3VycmVu
dCA9IG5ldyBFbnVtKHsgc291cmNlOiB0b2tlbmlzZXIuc291cmNlLCB0b2tlbnMgfSk7CisgICAg
dG9rZW5zLm9wZW4gPSB0b2tlbmlzZXIuY29uc3VtZSgieyIpIHx8IHRva2VuaXNlci5lcnJvcigi
Qm9keWxlc3MgZW51bSIpOworICAgIHJldC52YWx1ZXMgPSBPYmplY3QoX2hlbHBlcnNfanNfX1dF
QlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1sibGlzdCJdKSh0b2tlbmlzZXIsIHsKKyAgICAgIHBh
cnNlcjogRW51bVZhbHVlLnBhcnNlLAorICAgICAgYWxsb3dEYW5nbGVyOiB0cnVlLAorICAgICAg
bGlzdE5hbWU6ICJlbnVtZXJhdGlvbiIKKyAgICB9KTsKKyAgICBpZiAodG9rZW5pc2VyLnByb2Jl
KCJzdHJpbmciKSkgeworICAgICAgdG9rZW5pc2VyLmVycm9yKCJObyBjb21tYSBiZXR3ZWVuIGVu
dW0gdmFsdWVzIik7CisgICAgfQorICAgIHRva2Vucy5jbG9zZSA9IHRva2VuaXNlci5jb25zdW1l
KCJ9IikgfHwgdG9rZW5pc2VyLmVycm9yKCJVbmV4cGVjdGVkIHZhbHVlIGluIGVudW0iKTsKKyAg
ICBpZiAoIXJldC52YWx1ZXMubGVuZ3RoKSB7CisgICAgICB0b2tlbmlzZXIuZXJyb3IoIk5vIHZh
bHVlIGluIGVudW0iKTsKKyAgICB9CisgICAgdG9rZW5zLnRlcm1pbmF0aW9uID0gdG9rZW5pc2Vy
LmNvbnN1bWUoIjsiKSB8fCB0b2tlbmlzZXIuZXJyb3IoIk5vIHNlbWljb2xvbiBhZnRlciBlbnVt
Iik7CisgICAgcmV0dXJuIHJldDsKKyAgfQorCisgIGdldCB0eXBlKCkgeworICAgIHJldHVybiAi
ZW51bSI7CisgIH0KKyAgZ2V0IG5hbWUoKSB7CisgICAgcmV0dXJuIE9iamVjdChfaGVscGVyc19q
c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJ1bmVzY2FwZSJdKSh0aGlzLnRva2Vucy5u
YW1lLnZhbHVlKTsKKyAgfQorfQorCisKKy8qKiovIH0pLAorLyogMTYgKi8KKy8qKiovIChmdW5j
dGlvbihtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pIHsK
KworInVzZSBzdHJpY3QiOworX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRz
X18pOworLyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFja19yZXF1aXJlX18u
ZChfX3dlYnBhY2tfZXhwb3J0c19fLCAiSW5jbHVkZXMiLCBmdW5jdGlvbigpIHsgcmV0dXJuIElu
Y2x1ZGVzOyB9KTsKKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfYmFzZV9qc19fV0VCUEFDS19J
TVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg2KTsKKy8qIGhhcm1vbnkg
aW1wb3J0ICovIHZhciBfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0g
X193ZWJwYWNrX3JlcXVpcmVfXyg0KTsKKworCisKK2NsYXNzIEluY2x1ZGVzIGV4dGVuZHMgX2Jh
c2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siQmFzZSJdIHsKKyAgLyoqCisgICAq
IEBwYXJhbSB7aW1wb3J0KCIuLi90b2tlbmlzZXIiKS5Ub2tlbmlzZXJ9IHRva2VuaXNlcgorICAg
Ki8KKyAgc3RhdGljIHBhcnNlKHRva2VuaXNlcikgeworICAgIGNvbnN0IHRhcmdldCA9IHRva2Vu
aXNlci5jb25zdW1lKCJpZGVudGlmaWVyIik7CisgICAgaWYgKCF0YXJnZXQpIHsKKyAgICAgIHJl
dHVybjsKKyAgICB9CisgICAgY29uc3QgdG9rZW5zID0geyB0YXJnZXQgfTsKKyAgICB0b2tlbnMu
aW5jbHVkZXMgPSB0b2tlbmlzZXIuY29uc3VtZSgiaW5jbHVkZXMiKTsKKyAgICBpZiAoIXRva2Vu
cy5pbmNsdWRlcykgeworICAgICAgdG9rZW5pc2VyLnVuY29uc3VtZSh0YXJnZXQuaW5kZXgpOwor
ICAgICAgcmV0dXJuOworICAgIH0KKyAgICB0b2tlbnMubWl4aW4gPSB0b2tlbmlzZXIuY29uc3Vt
ZSgiaWRlbnRpZmllciIpIHx8IHRva2VuaXNlci5lcnJvcigiSW5jb21wbGV0ZSBpbmNsdWRlcyBz
dGF0ZW1lbnQiKTsKKyAgICB0b2tlbnMudGVybWluYXRpb24gPSB0b2tlbmlzZXIuY29uc3VtZSgi
OyIpIHx8IHRva2VuaXNlci5lcnJvcigiTm8gdGVybWluYXRpbmcgOyBmb3IgaW5jbHVkZXMgc3Rh
dGVtZW50Iik7CisgICAgcmV0dXJuIG5ldyBJbmNsdWRlcyh7IHNvdXJjZTogdG9rZW5pc2VyLnNv
dXJjZSwgdG9rZW5zIH0pOworICB9CisKKyAgZ2V0IHR5cGUoKSB7CisgICAgcmV0dXJuICJpbmNs
dWRlcyI7CisgIH0KKyAgZ2V0IHRhcmdldCgpIHsKKyAgICByZXR1cm4gT2JqZWN0KF9oZWxwZXJz
X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19bInVuZXNjYXBlIl0pKHRoaXMudG9rZW5z
LnRhcmdldC52YWx1ZSk7CisgIH0KKyAgZ2V0IGluY2x1ZGVzKCkgeworICAgIHJldHVybiBPYmpl
Y3QoX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX1sidW5lc2NhcGUiXSko
dGhpcy50b2tlbnMubWl4aW4udmFsdWUpOworICB9Cit9CisKKworLyoqKi8gfSksCisvKiAxNyAq
LworLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNr
X3JlcXVpcmVfXykgeworCisidXNlIHN0cmljdCI7CitfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193
ZWJwYWNrX2V4cG9ydHNfXyk7CisvKiBoYXJtb255IGV4cG9ydCAoYmluZGluZykgKi8gX193ZWJw
YWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sICJUeXBlZGVmIiwgZnVuY3Rpb24o
KSB7IHJldHVybiBUeXBlZGVmOyB9KTsKKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfYmFzZV9q
c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg2KTsK
Ky8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9N
T0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg0KTsKKworCisKK2NsYXNzIFR5cGVkZWYg
ZXh0ZW5kcyBfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJCYXNlIl0gewor
ICAvKioKKyAgICogQHBhcmFtIHtpbXBvcnQoIi4uL3Rva2VuaXNlciIpLlRva2VuaXNlcn0gdG9r
ZW5pc2VyCisgICAqLworICBzdGF0aWMgcGFyc2UodG9rZW5pc2VyKSB7CisgICAgY29uc3QgdG9r
ZW5zID0ge307CisgICAgY29uc3QgcmV0ID0gbmV3IFR5cGVkZWYoeyBzb3VyY2U6IHRva2VuaXNl
ci5zb3VyY2UsIHRva2VucyB9KTsKKyAgICB0b2tlbnMuYmFzZSA9IHRva2VuaXNlci5jb25zdW1l
KCJ0eXBlZGVmIik7CisgICAgaWYgKCF0b2tlbnMuYmFzZSkgeworICAgICAgcmV0dXJuOworICAg
IH0KKyAgICByZXQuaWRsVHlwZSA9IE9iamVjdChfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRF
RF9NT0RVTEVfMV9fWyJ0eXBlX3dpdGhfZXh0ZW5kZWRfYXR0cmlidXRlcyJdKSh0b2tlbmlzZXIs
ICJ0eXBlZGVmLXR5cGUiKSB8fCB0b2tlbmlzZXIuZXJyb3IoIlR5cGVkZWYgbGFja3MgYSB0eXBl
Iik7CisgICAgdG9rZW5zLm5hbWUgPSB0b2tlbmlzZXIuY29uc3VtZSgiaWRlbnRpZmllciIpIHx8
IHRva2VuaXNlci5lcnJvcigiVHlwZWRlZiBsYWNrcyBhIG5hbWUiKTsKKyAgICB0b2tlbmlzZXIu
Y3VycmVudCA9IHJldDsKKyAgICB0b2tlbnMudGVybWluYXRpb24gPSB0b2tlbmlzZXIuY29uc3Vt
ZSgiOyIpIHx8IHRva2VuaXNlci5lcnJvcigiVW50ZXJtaW5hdGVkIHR5cGVkZWYsIGV4cGVjdGVk
IGA7YCIpOworICAgIHJldHVybiByZXQ7CisgIH0KKworICBnZXQgdHlwZSgpIHsKKyAgICByZXR1
cm4gInR5cGVkZWYiOworICB9CisgIGdldCBuYW1lKCkgeworICAgIHJldHVybiBPYmplY3QoX2hl
bHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX1sidW5lc2NhcGUiXSkodGhpcy50
b2tlbnMubmFtZS52YWx1ZSk7CisgIH0KKworICAqdmFsaWRhdGUoZGVmcykgeworICAgIHlpZWxk
KiB0aGlzLmlkbFR5cGUudmFsaWRhdGUoZGVmcyk7CisgIH0KK30KKworCisvKioqLyB9KSwKKy8q
IDE4ICovCisvKioqLyAoZnVuY3Rpb24obW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dl
YnBhY2tfcmVxdWlyZV9fKSB7CisKKyJ1c2Ugc3RyaWN0IjsKK19fd2VicGFja19yZXF1aXJlX18u
cihfX3dlYnBhY2tfZXhwb3J0c19fKTsKKy8qIGhhcm1vbnkgZXhwb3J0IChiaW5kaW5nKSAqLyBf
X3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgIkNhbGxiYWNrRnVuY3Rp
b24iLCBmdW5jdGlvbigpIHsgcmV0dXJuIENhbGxiYWNrRnVuY3Rpb247IH0pOworLyogaGFybW9u
eSBpbXBvcnQgKi8gdmFyIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBf
X3dlYnBhY2tfcmVxdWlyZV9fKDYpOworLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9oZWxwZXJz
X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDQp
OworCisKKworY2xhc3MgQ2FsbGJhY2tGdW5jdGlvbiBleHRlbmRzIF9iYXNlX2pzX19XRUJQQUNL
X0lNUE9SVEVEX01PRFVMRV8wX19bIkJhc2UiXSB7CisgIC8qKgorICAgKiBAcGFyYW0ge2ltcG9y
dCgiLi4vdG9rZW5pc2VyLmpzIikuVG9rZW5pc2VyfSB0b2tlbmlzZXIKKyAgICovCisgIHN0YXRp
YyBwYXJzZSh0b2tlbmlzZXIsIGJhc2UpIHsKKyAgICBjb25zdCB0b2tlbnMgPSB7IGJhc2UgfTsK
KyAgICBjb25zdCByZXQgPSBuZXcgQ2FsbGJhY2tGdW5jdGlvbih7IHNvdXJjZTogdG9rZW5pc2Vy
LnNvdXJjZSwgdG9rZW5zIH0pOworICAgIHRva2Vucy5uYW1lID0gdG9rZW5pc2VyLmNvbnN1bWUo
ImlkZW50aWZpZXIiKSB8fCB0b2tlbmlzZXIuZXJyb3IoIkNhbGxiYWNrIGxhY2tzIGEgbmFtZSIp
OworICAgIHRva2VuaXNlci5jdXJyZW50ID0gcmV0OworICAgIHRva2Vucy5hc3NpZ24gPSB0b2tl
bmlzZXIuY29uc3VtZSgiPSIpIHx8IHRva2VuaXNlci5lcnJvcigiQ2FsbGJhY2sgbGFja3MgYW4g
YXNzaWdubWVudCIpOworICAgIHJldC5pZGxUeXBlID0gT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQ
QUNLX0lNUE9SVEVEX01PRFVMRV8xX19bInJldHVybl90eXBlIl0pKHRva2VuaXNlcikgfHwgdG9r
ZW5pc2VyLmVycm9yKCJDYWxsYmFjayBsYWNrcyBhIHJldHVybiB0eXBlIik7CisgICAgdG9rZW5z
Lm9wZW4gPSB0b2tlbmlzZXIuY29uc3VtZSgiKCIpIHx8IHRva2VuaXNlci5lcnJvcigiQ2FsbGJh
Y2sgbGFja3MgcGFyZW50aGVzZXMgZm9yIGFyZ3VtZW50cyIpOworICAgIHJldC5hcmd1bWVudHMg
PSBPYmplY3QoX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX1siYXJndW1l
bnRfbGlzdCJdKSh0b2tlbmlzZXIpOworICAgIHRva2Vucy5jbG9zZSA9IHRva2VuaXNlci5jb25z
dW1lKCIpIikgfHwgdG9rZW5pc2VyLmVycm9yKCJVbnRlcm1pbmF0ZWQgY2FsbGJhY2siKTsKKyAg
ICB0b2tlbnMudGVybWluYXRpb24gPSB0b2tlbmlzZXIuY29uc3VtZSgiOyIpIHx8IHRva2VuaXNl
ci5lcnJvcigiVW50ZXJtaW5hdGVkIGNhbGxiYWNrLCBleHBlY3RlZCBgO2AiKTsKKyAgICByZXR1
cm4gcmV0OworICB9CisKKyAgZ2V0IHR5cGUoKSB7CisgICAgcmV0dXJuICJjYWxsYmFjayI7Cisg
IH0KKyAgZ2V0IG5hbWUoKSB7CisgICAgcmV0dXJuIE9iamVjdChfaGVscGVyc19qc19fV0VCUEFD
S19JTVBPUlRFRF9NT0RVTEVfMV9fWyJ1bmVzY2FwZSJdKSh0aGlzLnRva2Vucy5uYW1lLnZhbHVl
KTsKKyAgfQorCisgICp2YWxpZGF0ZShkZWZzKSB7CisgICAgeWllbGQqIHRoaXMuaWRsVHlwZS52
YWxpZGF0ZShkZWZzKTsKKyAgfQorfQorCisKKy8qKiovIH0pLAorLyogMTkgKi8KKy8qKiovIChm
dW5jdGlvbihtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18p
IHsKKworInVzZSBzdHJpY3QiOworX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBv
cnRzX18pOworLyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFja19yZXF1aXJl
X18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAiSW50ZXJmYWNlIiwgZnVuY3Rpb24oKSB7IHJldHVy
biBJbnRlcmZhY2U7IH0pOworLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9jb250YWluZXJfanNf
X1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMjApOwor
LyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9hdHRyaWJ1dGVfanNfX1dFQlBBQ0tfSU1QT1JURURf
TU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMTQpOworLyogaGFybW9ueSBpbXBvcnQg
Ki8gdmFyIF9vcGVyYXRpb25fanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXyA9IF9fd2Vi
cGFja19yZXF1aXJlX18oMTMpOworLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9jb25zdGFudF9q
c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fID0gX193ZWJwYWNrX3JlcXVpcmVfXygyMSk7
CisvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2l0ZXJhYmxlX2pzX19XRUJQQUNLX0lNUE9SVEVE
X01PRFVMRV80X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDIyKTsKKy8qIGhhcm1vbnkgaW1wb3J0
ICovIHZhciBfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fID0gX193ZWJw
YWNrX3JlcXVpcmVfXyg0KTsKKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfZXJyb3JfanNfX1dF
QlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMyk7CisvKiBo
YXJtb255IGltcG9ydCAqLyB2YXIgX3ZhbGlkYXRvcnNfaW50ZXJmYWNlX2pzX19XRUJQQUNLX0lN
UE9SVEVEX01PRFVMRV83X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDIzKTsKKy8qIGhhcm1vbnkg
aW1wb3J0ICovIHZhciBfY29uc3RydWN0b3JfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzhf
XyA9IF9fd2VicGFja19yZXF1aXJlX18oMjQpOworCisKKworCisKKworCisKKworCisvKioKKyAq
IEBwYXJhbSB7aW1wb3J0KCIuLi90b2tlbmlzZXIiKS5Ub2tlbmlzZXJ9IHRva2VuaXNlcgorICov
CitmdW5jdGlvbiBzdGF0aWNfbWVtYmVyKHRva2VuaXNlcikgeworICBjb25zdCBzcGVjaWFsID0g
dG9rZW5pc2VyLmNvbnN1bWUoInN0YXRpYyIpOworICBpZiAoIXNwZWNpYWwpIHJldHVybjsKKyAg
Y29uc3QgbWVtYmVyID0gX2F0dHJpYnV0ZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9f
WyJBdHRyaWJ1dGUiXS5wYXJzZSh0b2tlbmlzZXIsIHsgc3BlY2lhbCB9KSB8fAorICAgIF9vcGVy
YXRpb25fanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX1siT3BlcmF0aW9uIl0ucGFyc2Uo
dG9rZW5pc2VyLCB7IHNwZWNpYWwgfSkgfHwKKyAgICB0b2tlbmlzZXIuZXJyb3IoIk5vIGJvZHkg
aW4gc3RhdGljIG1lbWJlciIpOworICByZXR1cm4gbWVtYmVyOworfQorCitjbGFzcyBJbnRlcmZh
Y2UgZXh0ZW5kcyBfY29udGFpbmVyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIkNv
bnRhaW5lciJdIHsKKyAgLyoqCisgICAqIEBwYXJhbSB7aW1wb3J0KCIuLi90b2tlbmlzZXIiKS5U
b2tlbmlzZXJ9IHRva2VuaXNlcgorICAgKi8KKyAgc3RhdGljIHBhcnNlKHRva2VuaXNlciwgYmFz
ZSwgeyBwYXJ0aWFsID0gbnVsbCB9ID0ge30pIHsKKyAgICBjb25zdCB0b2tlbnMgPSB7IHBhcnRp
YWwsIGJhc2UgfTsKKyAgICByZXR1cm4gX2NvbnRhaW5lcl9qc19fV0VCUEFDS19JTVBPUlRFRF9N
T0RVTEVfMF9fWyJDb250YWluZXIiXS5wYXJzZSh0b2tlbmlzZXIsIG5ldyBJbnRlcmZhY2UoeyBz
b3VyY2U6IHRva2VuaXNlci5zb3VyY2UsIHRva2VucyB9KSwgeworICAgICAgdHlwZTogImludGVy
ZmFjZSIsCisgICAgICBpbmhlcml0YWJsZTogIXBhcnRpYWwsCisgICAgICBhbGxvd2VkTWVtYmVy
czogWworICAgICAgICBbX2NvbnN0YW50X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX19b
IkNvbnN0YW50Il0ucGFyc2VdLAorICAgICAgICBbX2NvbnN0cnVjdG9yX2pzX19XRUJQQUNLX0lN
UE9SVEVEX01PRFVMRV84X19bIkNvbnN0cnVjdG9yIl0ucGFyc2VdLAorICAgICAgICBbc3RhdGlj
X21lbWJlcl0sCisgICAgICAgIFtfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVf
NV9fWyJzdHJpbmdpZmllciJdXSwKKyAgICAgICAgW19pdGVyYWJsZV9qc19fV0VCUEFDS19JTVBP
UlRFRF9NT0RVTEVfNF9fWyJJdGVyYWJsZUxpa2UiXS5wYXJzZV0sCisgICAgICAgIFtfYXR0cmli
dXRlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19bIkF0dHJpYnV0ZSJdLnBhcnNlXSwK
KyAgICAgICAgW19vcGVyYXRpb25fanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX1siT3Bl
cmF0aW9uIl0ucGFyc2VdCisgICAgICBdCisgICAgfSk7CisgIH0KKworICBnZXQgdHlwZSgpIHsK
KyAgICByZXR1cm4gImludGVyZmFjZSI7CisgIH0KKworICAqdmFsaWRhdGUoZGVmcykgeworICAg
IHlpZWxkKiB0aGlzLmV4dEF0dHJzLnZhbGlkYXRlKGRlZnMpOworICAgIGlmICgKKyAgICAgICF0
aGlzLnBhcnRpYWwgJiYKKyAgICAgIHRoaXMuZXh0QXR0cnMuZXZlcnkoZXh0QXR0ciA9PiBleHRB
dHRyLm5hbWUgIT09ICJFeHBvc2VkIikgJiYKKyAgICAgIHRoaXMuZXh0QXR0cnMuZXZlcnkoZXh0
QXR0ciA9PiBleHRBdHRyLm5hbWUgIT09ICJOb0ludGVyZmFjZU9iamVjdCIpCisgICAgKSB7Cisg
ICAgICBjb25zdCBtZXNzYWdlID0gYEludGVyZmFjZXMgbXVzdCBoYXZlIFxgW0V4cG9zZWRdXGAg
ZXh0ZW5kZWQgYXR0cmlidXRlLiBcCitUbyBmaXgsIGFkZCwgZm9yIGV4YW1wbGUsIFxgW0V4cG9z
ZWQ9V2luZG93XVxgLiBQbGVhc2UgYWxzbyBjb25zaWRlciBjYXJlZnVsbHkgXAoraWYgeW91ciBp
bnRlcmZhY2Ugc2hvdWxkIGFsc28gYmUgZXhwb3NlZCBpbiBhIFdvcmtlciBzY29wZS4gUmVmZXIg
dG8gdGhlIFwKK1tXZWJJREwgc3BlYyBzZWN0aW9uIG9uIEV4cG9zZWRdKGh0dHBzOi8vaGV5Y2Ft
LmdpdGh1Yi5pby93ZWJpZGwvI0V4cG9zZWQpIFwKK2ZvciBtb3JlIGluZm9ybWF0aW9uLmA7Cisg
ICAgICB5aWVsZCBPYmplY3QoX2Vycm9yX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X19b
InZhbGlkYXRpb25FcnJvciJdKSh0aGlzLnNvdXJjZSwgdGhpcy50b2tlbnMubmFtZSwgdGhpcywg
bWVzc2FnZSwgeworICAgICAgICBhdXRvZml4OiBPYmplY3QoX2hlbHBlcnNfanNfX1dFQlBBQ0tf
SU1QT1JURURfTU9EVUxFXzVfX1siYXV0b2ZpeEFkZEV4cG9zZWRXaW5kb3ciXSkodGhpcykKKyAg
ICAgIH0pOworICAgIH0KKworICAgIHlpZWxkKiBzdXBlci52YWxpZGF0ZShkZWZzKTsKKyAgICBp
ZiAoIXRoaXMucGFydGlhbCkgeworICAgICAgeWllbGQqIE9iamVjdChfdmFsaWRhdG9yc19pbnRl
cmZhY2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzdfX1siY2hlY2tJbnRlcmZhY2VNZW1i
ZXJEdXBsaWNhdGlvbiJdKShkZWZzLCB0aGlzKTsKKyAgICB9CisgIH0KK30KKworCisvKioqLyB9
KSwKKy8qIDIwICovCisvKioqLyAoZnVuY3Rpb24obW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19f
LCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CisKKyJ1c2Ugc3RyaWN0IjsKK19fd2VicGFja19yZXF1
aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTsKKy8qIGhhcm1vbnkgZXhwb3J0IChiaW5kaW5n
KSAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgIkNvbnRhaW5l
ciIsIGZ1bmN0aW9uKCkgeyByZXR1cm4gQ29udGFpbmVyOyB9KTsKKy8qIGhhcm1vbnkgaW1wb3J0
ICovIHZhciBfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNr
X3JlcXVpcmVfXyg2KTsKKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfZXh0ZW5kZWRfYXR0cmli
dXRlc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVf
XygxMCk7CisvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1Q
T1JURURfTU9EVUxFXzJfXyA9IF9fd2VicGFja19yZXF1aXJlX18oNCk7CisKKworCisKKy8qKgor
ICogQHBhcmFtIHtpbXBvcnQoIi4uL3Rva2VuaXNlci5qcyIpLlRva2VuaXNlcn0gdG9rZW5pc2Vy
CisgKi8KK2Z1bmN0aW9uIGluaGVyaXRhbmNlKHRva2VuaXNlcikgeworICBjb25zdCBjb2xvbiA9
IHRva2VuaXNlci5jb25zdW1lKCI6Iik7CisgIGlmICghY29sb24pIHsKKyAgICByZXR1cm4ge307
CisgIH0KKyAgY29uc3QgaW5oZXJpdGFuY2UgPSB0b2tlbmlzZXIuY29uc3VtZSgiaWRlbnRpZmll
ciIpIHx8IHRva2VuaXNlci5lcnJvcigiSW5oZXJpdGFuY2UgbGFja3MgYSB0eXBlIik7CisgIHJl
dHVybiB7IGNvbG9uLCBpbmhlcml0YW5jZSB9OworfQorCitjbGFzcyBDb250YWluZXIgZXh0ZW5k
cyBfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJCYXNlIl0geworICAgIC8q
KgorICAgICAqIEBwYXJhbSB7aW1wb3J0KCIuLi90b2tlbmlzZXIuanMiKS5Ub2tlbmlzZXJ9IHRv
a2VuaXNlcgorICAgICAqIEBwYXJhbSB7Kn0gaW5zdGFuY2UKKyAgICAgKiBAcGFyYW0geyp9IGFy
Z3MKKyAgICAgKi8KKyAgICBzdGF0aWMgcGFyc2UodG9rZW5pc2VyLCBpbnN0YW5jZSwgeyB0eXBl
LCBpbmhlcml0YWJsZSwgYWxsb3dlZE1lbWJlcnMgfSkgeworICAgICAgY29uc3QgeyB0b2tlbnMg
fSA9IGluc3RhbmNlOworICAgICAgdG9rZW5zLm5hbWUgPSB0b2tlbmlzZXIuY29uc3VtZSgiaWRl
bnRpZmllciIpIHx8IHRva2VuaXNlci5lcnJvcihgTWlzc2luZyBuYW1lIGluICR7aW5zdGFuY2Uu
dHlwZX1gKTsKKyAgICAgIHRva2VuaXNlci5jdXJyZW50ID0gaW5zdGFuY2U7CisgICAgICBpZiAo
aW5oZXJpdGFibGUpIHsKKyAgICAgICAgT2JqZWN0LmFzc2lnbih0b2tlbnMsIGluaGVyaXRhbmNl
KHRva2VuaXNlcikpOworICAgICAgfQorICAgICAgdG9rZW5zLm9wZW4gPSB0b2tlbmlzZXIuY29u
c3VtZSgieyIpIHx8IHRva2VuaXNlci5lcnJvcihgQm9keWxlc3MgJHt0eXBlfWApOworICAgICAg
aW5zdGFuY2UubWVtYmVycyA9IFtdOworICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgdG9r
ZW5zLmNsb3NlID0gdG9rZW5pc2VyLmNvbnN1bWUoIn0iKTsKKyAgICAgICAgaWYgKHRva2Vucy5j
bG9zZSkgeworICAgICAgICAgIHRva2Vucy50ZXJtaW5hdGlvbiA9IHRva2VuaXNlci5jb25zdW1l
KCI7IikgfHwgdG9rZW5pc2VyLmVycm9yKGBNaXNzaW5nIHNlbWljb2xvbiBhZnRlciAke3R5cGV9
YCk7CisgICAgICAgICAgcmV0dXJuIGluc3RhbmNlOworICAgICAgICB9CisgICAgICAgIGNvbnN0
IGVhID0gX2V4dGVuZGVkX2F0dHJpYnV0ZXNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFf
X1siRXh0ZW5kZWRBdHRyaWJ1dGVzIl0ucGFyc2UodG9rZW5pc2VyKTsKKyAgICAgICAgbGV0IG1l
bTsKKyAgICAgICAgZm9yIChjb25zdCBbcGFyc2VyLCAuLi5hcmdzXSBvZiBhbGxvd2VkTWVtYmVy
cykgeworICAgICAgICAgIG1lbSA9IHBhcnNlcih0b2tlbmlzZXIsIC4uLmFyZ3MpOworICAgICAg
ICAgIGlmIChtZW0pIHsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgIH0KKyAgICAgICAg
fQorICAgICAgICBpZiAoIW1lbSkgeworICAgICAgICAgIHRva2VuaXNlci5lcnJvcigiVW5rbm93
biBtZW1iZXIiKTsKKyAgICAgICAgfQorICAgICAgICBtZW0uZXh0QXR0cnMgPSBlYTsKKyAgICAg
ICAgaW5zdGFuY2UubWVtYmVycy5wdXNoKG1lbSk7CisgICAgICB9CisgICAgfQorCisgICAgZ2V0
IHBhcnRpYWwoKSB7CisgICAgICByZXR1cm4gISF0aGlzLnRva2Vucy5wYXJ0aWFsOworICAgIH0K
KyAgICBnZXQgbmFtZSgpIHsKKyAgICAgIHJldHVybiBPYmplY3QoX2hlbHBlcnNfanNfX1dFQlBB
Q0tfSU1QT1JURURfTU9EVUxFXzJfX1sidW5lc2NhcGUiXSkodGhpcy50b2tlbnMubmFtZS52YWx1
ZSk7CisgICAgfQorICAgIGdldCBpbmhlcml0YW5jZSgpIHsKKyAgICAgIGlmICghdGhpcy50b2tl
bnMuaW5oZXJpdGFuY2UpIHsKKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICB9CisgICAgICBy
ZXR1cm4gT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19bInVu
ZXNjYXBlIl0pKHRoaXMudG9rZW5zLmluaGVyaXRhbmNlLnZhbHVlKTsKKyAgICB9CisKKyAgICAq
dmFsaWRhdGUoZGVmcykgeworICAgICAgZm9yIChjb25zdCBtZW1iZXIgb2YgdGhpcy5tZW1iZXJz
KSB7CisgICAgICAgIGlmIChtZW1iZXIudmFsaWRhdGUpIHsKKyAgICAgICAgICB5aWVsZCogbWVt
YmVyLnZhbGlkYXRlKGRlZnMpOworICAgICAgICB9CisgICAgICB9CisgICAgfQorICB9CisKKwor
LyoqKi8gfSksCisvKiAyMSAqLworLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgX193ZWJwYWNrX2V4
cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgeworCisidXNlIHN0cmljdCI7CitfX3dlYnBh
Y2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7CisvKiBoYXJtb255IGV4cG9ydCAo
YmluZGluZykgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sICJD
b25zdGFudCIsIGZ1bmN0aW9uKCkgeyByZXR1cm4gQ29uc3RhbnQ7IH0pOworLyogaGFybW9ueSBp
bXBvcnQgKi8gdmFyIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dl
YnBhY2tfcmVxdWlyZV9fKDYpOworLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF90eXBlX2pzX19X
RUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDUpOworLyog
aGFybW9ueSBpbXBvcnQgKi8gdmFyIF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVM
RV8yX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDQpOworCisKKworCitjbGFzcyBDb25zdGFudCBl
eHRlbmRzIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIkJhc2UiXSB7Cisg
IC8qKgorICAgKiBAcGFyYW0ge2ltcG9ydCgiLi4vdG9rZW5pc2VyLmpzIikuVG9rZW5pc2VyfSB0
b2tlbmlzZXIKKyAgICovCisgIHN0YXRpYyBwYXJzZSh0b2tlbmlzZXIpIHsKKyAgICBjb25zdCB0
b2tlbnMgPSB7fTsKKyAgICB0b2tlbnMuYmFzZSA9IHRva2VuaXNlci5jb25zdW1lKCJjb25zdCIp
OworICAgIGlmICghdG9rZW5zLmJhc2UpIHsKKyAgICAgIHJldHVybjsKKyAgICB9CisgICAgbGV0
IGlkbFR5cGUgPSBPYmplY3QoX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJf
X1sicHJpbWl0aXZlX3R5cGUiXSkodG9rZW5pc2VyKTsKKyAgICBpZiAoIWlkbFR5cGUpIHsKKyAg
ICAgIGNvbnN0IGJhc2UgPSB0b2tlbmlzZXIuY29uc3VtZSgiaWRlbnRpZmllciIpIHx8IHRva2Vu
aXNlci5lcnJvcigiQ29uc3QgbGFja3MgYSB0eXBlIik7CisgICAgICBpZGxUeXBlID0gbmV3IF90
eXBlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19bIlR5cGUiXSh7IHNvdXJjZTogdG9r
ZW5pc2VyLnNvdXJjZSwgdG9rZW5zOiB7IGJhc2UgfSB9KTsKKyAgICB9CisgICAgaWYgKHRva2Vu
aXNlci5wcm9iZSgiPyIpKSB7CisgICAgICB0b2tlbmlzZXIuZXJyb3IoIlVuZXhwZWN0ZWQgbnVs
bGFibGUgY29uc3RhbnQgdHlwZSIpOworICAgIH0KKyAgICBpZGxUeXBlLnR5cGUgPSAiY29uc3Qt
dHlwZSI7CisgICAgdG9rZW5zLm5hbWUgPSB0b2tlbmlzZXIuY29uc3VtZSgiaWRlbnRpZmllciIp
IHx8IHRva2VuaXNlci5lcnJvcigiQ29uc3QgbGFja3MgYSBuYW1lIik7CisgICAgdG9rZW5zLmFz
c2lnbiA9IHRva2VuaXNlci5jb25zdW1lKCI9IikgfHwgdG9rZW5pc2VyLmVycm9yKCJDb25zdCBs
YWNrcyB2YWx1ZSBhc3NpZ25tZW50Iik7CisgICAgdG9rZW5zLnZhbHVlID0gT2JqZWN0KF9oZWxw
ZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19bImNvbnN0X3ZhbHVlIl0pKHRva2Vu
aXNlcikgfHwgdG9rZW5pc2VyLmVycm9yKCJDb25zdCBsYWNrcyBhIHZhbHVlIik7CisgICAgdG9r
ZW5zLnRlcm1pbmF0aW9uID0gdG9rZW5pc2VyLmNvbnN1bWUoIjsiKSB8fCB0b2tlbmlzZXIuZXJy
b3IoIlVudGVybWluYXRlZCBjb25zdCwgZXhwZWN0ZWQgYDtgIik7CisgICAgY29uc3QgcmV0ID0g
bmV3IENvbnN0YW50KHsgc291cmNlOiB0b2tlbmlzZXIuc291cmNlLCB0b2tlbnMgfSk7CisgICAg
cmV0LmlkbFR5cGUgPSBpZGxUeXBlOworICAgIHJldHVybiByZXQ7CisgIH0KKworICBnZXQgdHlw
ZSgpIHsKKyAgICByZXR1cm4gImNvbnN0IjsKKyAgfQorICBnZXQgbmFtZSgpIHsKKyAgICByZXR1
cm4gdW5lc2NhcGUodGhpcy50b2tlbnMubmFtZS52YWx1ZSk7CisgIH0KKyAgZ2V0IHZhbHVlKCkg
eworICAgIHJldHVybiBPYmplY3QoX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxF
XzJfX1siY29uc3RfZGF0YSJdKSh0aGlzLnRva2Vucy52YWx1ZSk7CisgIH0KK30KKworCisvKioq
LyB9KSwKKy8qIDIyICovCisvKioqLyAoZnVuY3Rpb24obW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0
c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CisKKyJ1c2Ugc3RyaWN0IjsKK19fd2VicGFja19y
ZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTsKKy8qIGhhcm1vbnkgZXhwb3J0IChiaW5k
aW5nKSAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgIkl0ZXJh
YmxlTGlrZSIsIGZ1bmN0aW9uKCkgeyByZXR1cm4gSXRlcmFibGVMaWtlOyB9KTsKKy8qIGhhcm1v
bnkgaW1wb3J0ICovIHZhciBfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0g
X193ZWJwYWNrX3JlcXVpcmVfXyg2KTsKKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfaGVscGVy
c19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg0
KTsKKworCisKK2NsYXNzIEl0ZXJhYmxlTGlrZSBleHRlbmRzIF9iYXNlX2pzX19XRUJQQUNLX0lN
UE9SVEVEX01PRFVMRV8wX19bIkJhc2UiXSB7CisgIC8qKgorICAgKiBAcGFyYW0ge2ltcG9ydCgi
Li4vdG9rZW5pc2VyLmpzIikuVG9rZW5pc2VyfSB0b2tlbmlzZXIKKyAgICovCisgIHN0YXRpYyBw
YXJzZSh0b2tlbmlzZXIpIHsKKyAgICBjb25zdCBzdGFydF9wb3NpdGlvbiA9IHRva2VuaXNlci5w
b3NpdGlvbjsKKyAgICBjb25zdCB0b2tlbnMgPSB7fTsKKyAgICBjb25zdCByZXQgPSBuZXcgSXRl
cmFibGVMaWtlKHsgc291cmNlOiB0b2tlbmlzZXIuc291cmNlLCB0b2tlbnMgfSk7CisgICAgdG9r
ZW5zLnJlYWRvbmx5ID0gdG9rZW5pc2VyLmNvbnN1bWUoInJlYWRvbmx5Iik7CisgICAgaWYgKCF0
b2tlbnMucmVhZG9ubHkpIHsKKyAgICAgIHRva2Vucy5hc3luYyA9IHRva2VuaXNlci5jb25zdW1l
KCJhc3luYyIpOworICAgIH0KKyAgICB0b2tlbnMuYmFzZSA9CisgICAgICB0b2tlbnMucmVhZG9u
bHkgPyB0b2tlbmlzZXIuY29uc3VtZSgibWFwbGlrZSIsICJzZXRsaWtlIikgOgorICAgICAgdG9r
ZW5zLmFzeW5jID8gdG9rZW5pc2VyLmNvbnN1bWUoIml0ZXJhYmxlIikgOgorICAgICAgdG9rZW5p
c2VyLmNvbnN1bWUoIml0ZXJhYmxlIiwgIm1hcGxpa2UiLCAic2V0bGlrZSIpOworICAgIGlmICgh
dG9rZW5zLmJhc2UpIHsKKyAgICAgIHRva2VuaXNlci51bmNvbnN1bWUoc3RhcnRfcG9zaXRpb24p
OworICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGNvbnN0IHsgdHlwZSB9ID0gcmV0OworICAg
IGNvbnN0IHNlY29uZFR5cGVSZXF1aXJlZCA9IHR5cGUgPT09ICJtYXBsaWtlIiB8fCByZXQuYXN5
bmM7CisgICAgY29uc3Qgc2Vjb25kVHlwZUFsbG93ZWQgPSBzZWNvbmRUeXBlUmVxdWlyZWQgfHwg
dHlwZSA9PT0gIml0ZXJhYmxlIjsKKworICAgIHRva2Vucy5vcGVuID0gdG9rZW5pc2VyLmNvbnN1
bWUoIjwiKSB8fCB0b2tlbmlzZXIuZXJyb3IoYE1pc3NpbmcgbGVzcy10aGFuIHNpZ24gXGA8XGAg
aW4gJHt0eXBlfSBkZWNsYXJhdGlvbmApOworICAgIGNvbnN0IGZpcnN0ID0gT2JqZWN0KF9oZWxw
ZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19bInR5cGVfd2l0aF9leHRlbmRlZF9h
dHRyaWJ1dGVzIl0pKHRva2VuaXNlcikgfHwgdG9rZW5pc2VyLmVycm9yKGBNaXNzaW5nIGEgdHlw
ZSBhcmd1bWVudCBpbiAke3R5cGV9IGRlY2xhcmF0aW9uYCk7CisgICAgcmV0LmlkbFR5cGUgPSBb
Zmlyc3RdOworICAgIGlmIChzZWNvbmRUeXBlQWxsb3dlZCkgeworICAgICAgZmlyc3QudG9rZW5z
LnNlcGFyYXRvciA9IHRva2VuaXNlci5jb25zdW1lKCIsIik7CisgICAgICBpZiAoZmlyc3QudG9r
ZW5zLnNlcGFyYXRvcikgeworICAgICAgICByZXQuaWRsVHlwZS5wdXNoKE9iamVjdChfaGVscGVy
c19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fWyJ0eXBlX3dpdGhfZXh0ZW5kZWRfYXR0
cmlidXRlcyJdKSh0b2tlbmlzZXIpKTsKKyAgICAgIH0KKyAgICAgIGVsc2UgaWYgKHNlY29uZFR5
cGVSZXF1aXJlZCkgeworICAgICAgICB0b2tlbmlzZXIuZXJyb3IoYE1pc3Npbmcgc2Vjb25kIHR5
cGUgYXJndW1lbnQgaW4gJHt0eXBlfSBkZWNsYXJhdGlvbmApOworICAgICAgfQorICAgIH0KKyAg
ICB0b2tlbnMuY2xvc2UgPSB0b2tlbmlzZXIuY29uc3VtZSgiPiIpIHx8IHRva2VuaXNlci5lcnJv
cihgTWlzc2luZyBncmVhdGVyLXRoYW4gc2lnbiBcYD5cYCBpbiAke3R5cGV9IGRlY2xhcmF0aW9u
YCk7CisgICAgdG9rZW5zLnRlcm1pbmF0aW9uID0gdG9rZW5pc2VyLmNvbnN1bWUoIjsiKSB8fCB0
b2tlbmlzZXIuZXJyb3IoYE1pc3Npbmcgc2VtaWNvbG9uIGFmdGVyICR7dHlwZX0gZGVjbGFyYXRp
b25gKTsKKworICAgIHJldHVybiByZXQ7CisgIH0KKworICBnZXQgdHlwZSgpIHsKKyAgICByZXR1
cm4gdGhpcy50b2tlbnMuYmFzZS52YWx1ZTsKKyAgfQorICBnZXQgcmVhZG9ubHkoKSB7CisgICAg
cmV0dXJuICEhdGhpcy50b2tlbnMucmVhZG9ubHk7CisgIH0KKyAgZ2V0IGFzeW5jKCkgeworICAg
IHJldHVybiAhIXRoaXMudG9rZW5zLmFzeW5jOworICB9Cit9CisKKworLyoqKi8gfSksCisvKiAy
MyAqLworLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJw
YWNrX3JlcXVpcmVfXykgeworCisidXNlIHN0cmljdCI7CitfX3dlYnBhY2tfcmVxdWlyZV9fLnIo
X193ZWJwYWNrX2V4cG9ydHNfXyk7CisvKiBoYXJtb255IGV4cG9ydCAoYmluZGluZykgKi8gX193
ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sICJjaGVja0ludGVyZmFjZU1l
bWJlckR1cGxpY2F0aW9uIiwgZnVuY3Rpb24oKSB7IHJldHVybiBjaGVja0ludGVyZmFjZU1lbWJl
ckR1cGxpY2F0aW9uOyB9KTsKKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfZXJyb3JfanNfX1dF
QlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMyk7CisKKwor
ZnVuY3Rpb24qIGNoZWNrSW50ZXJmYWNlTWVtYmVyRHVwbGljYXRpb24oZGVmcywgaSkgeworICBj
b25zdCBvcE5hbWVzID0gbmV3IFNldChnZXRPcGVyYXRpb25zKGkpLm1hcChvcCA9PiBvcC5uYW1l
KSk7CisgIGNvbnN0IHBhcnRpYWxzID0gZGVmcy5wYXJ0aWFscy5nZXQoaS5uYW1lKSB8fCBbXTsK
KyAgY29uc3QgbWl4aW5zID0gZGVmcy5taXhpbk1hcC5nZXQoaS5uYW1lKSB8fCBbXTsKKyAgZm9y
IChjb25zdCBleHQgb2YgWy4uLnBhcnRpYWxzLCAuLi5taXhpbnNdKSB7CisgICAgY29uc3QgYWRk
aXRpb25zID0gZ2V0T3BlcmF0aW9ucyhleHQpOworICAgIHlpZWxkKiBmb3JFYWNoRXh0ZW5zaW9u
KGFkZGl0aW9ucywgb3BOYW1lcywgZXh0LCBpKTsKKyAgICBmb3IgKGNvbnN0IGFkZGl0aW9uIG9m
IGFkZGl0aW9ucykgeworICAgICAgb3BOYW1lcy5hZGQoYWRkaXRpb24ubmFtZSk7CisgICAgfQor
ICB9CisKKyAgZnVuY3Rpb24qIGZvckVhY2hFeHRlbnNpb24oYWRkaXRpb25zLCBleGlzdGluZ3Ms
IGV4dCwgYmFzZSkgeworICAgIGZvciAoY29uc3QgYWRkaXRpb24gb2YgYWRkaXRpb25zKSB7Cisg
ICAgICBjb25zdCB7IG5hbWUgfSA9IGFkZGl0aW9uOworICAgICAgaWYgKG5hbWUgJiYgZXhpc3Rp
bmdzLmhhcyhuYW1lKSkgeworICAgICAgICBjb25zdCBtZXNzYWdlID0gYFRoZSBvcGVyYXRpb24g
IiR7bmFtZX0iIGhhcyBhbHJlYWR5IGJlZW4gZGVmaW5lZCBmb3IgdGhlIGJhc2UgaW50ZXJmYWNl
ICIke2Jhc2UubmFtZX0iIGVpdGhlciBpbiBpdHNlbGYgb3IgaW4gYSBtaXhpbmA7CisgICAgICAg
IHlpZWxkIE9iamVjdChfZXJyb3JfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1sidmFs
aWRhdGlvbkVycm9yIl0pKGV4dC5zb3VyY2UsIGFkZGl0aW9uLnRva2Vucy5uYW1lLCBleHQsIG1l
c3NhZ2UpOworICAgICAgfQorICAgIH0KKyAgfQorCisgIGZ1bmN0aW9uIGdldE9wZXJhdGlvbnMo
aSkgeworICAgIHJldHVybiBpLm1lbWJlcnMKKyAgICAgIC5maWx0ZXIoKHt0eXBlfSkgPT4gdHlw
ZSA9PT0gIm9wZXJhdGlvbiIpOworICB9Cit9CisKKworLyoqKi8gfSksCisvKiAyNCAqLworLyoq
Ki8gKGZ1bmN0aW9uKG1vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVp
cmVfXykgeworCisidXNlIHN0cmljdCI7CitfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNr
X2V4cG9ydHNfXyk7CisvKiBoYXJtb255IGV4cG9ydCAoYmluZGluZykgKi8gX193ZWJwYWNrX3Jl
cXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sICJDb25zdHJ1Y3RvciIsIGZ1bmN0aW9uKCkg
eyByZXR1cm4gQ29uc3RydWN0b3I7IH0pOworLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9iYXNl
X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDYp
OworLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVE
X01PRFVMRV8xX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDQpOworCisKKworY2xhc3MgQ29uc3Ry
dWN0b3IgZXh0ZW5kcyBfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJCYXNl
Il0geworICAvKioKKyAgICogQHBhcmFtIHtpbXBvcnQoIi4uL3Rva2VuaXNlciIpLlRva2VuaXNl
cn0gdG9rZW5pc2VyCisgICAqLworICBzdGF0aWMgcGFyc2UodG9rZW5pc2VyKSB7CisgICAgY29u
c3QgYmFzZSA9IHRva2VuaXNlci5jb25zdW1lKCJjb25zdHJ1Y3RvciIpOworICAgIGlmICghYmFz
ZSkgeworICAgICAgcmV0dXJuOworICAgIH0KKyAgICBjb25zdCB0b2tlbnMgPSB7IGJhc2UgfTsK
KyAgICB0b2tlbnMub3BlbiA9IHRva2VuaXNlci5jb25zdW1lKCIoIikgfHwgdG9rZW5pc2VyLmVy
cm9yKCJObyBhcmd1bWVudCBsaXN0IGluIGNvbnN0cnVjdG9yIik7CisgICAgY29uc3QgYXJncyA9
IE9iamVjdChfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fWyJhcmd1bWVu
dF9saXN0Il0pKHRva2VuaXNlcik7CisgICAgdG9rZW5zLmNsb3NlID0gdG9rZW5pc2VyLmNvbnN1
bWUoIikiKSB8fCB0b2tlbmlzZXIuZXJyb3IoIlVudGVybWluYXRlZCBjb25zdHJ1Y3RvciIpOwor
ICAgIHRva2Vucy50ZXJtaW5hdGlvbiA9IHRva2VuaXNlci5jb25zdW1lKCI7IikgfHwgdG9rZW5p
c2VyLmVycm9yKCJObyBzZW1pY29sb24gYWZ0ZXIgY29uc3RydWN0b3IiKTsKKyAgICBjb25zdCBy
ZXQgPSBuZXcgQ29uc3RydWN0b3IoeyB0b2tlbnMgfSk7CisgICAgcmV0LmFyZ3VtZW50cyA9IGFy
Z3M7CisgICAgcmV0dXJuIHJldDsKKyAgfQorCisgIGdldCB0eXBlKCkgeworICAgIHJldHVybiAi
Y29uc3RydWN0b3IiOworICB9Cit9CisKKworLyoqKi8gfSksCisvKiAyNSAqLworLyoqKi8gKGZ1
bmN0aW9uKG1vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykg
eworCisidXNlIHN0cmljdCI7CitfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9y
dHNfXyk7CisvKiBoYXJtb255IGV4cG9ydCAoYmluZGluZykgKi8gX193ZWJwYWNrX3JlcXVpcmVf
Xy5kKF9fd2VicGFja19leHBvcnRzX18sICJNaXhpbiIsIGZ1bmN0aW9uKCkgeyByZXR1cm4gTWl4
aW47IH0pOworLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9jb250YWluZXJfanNfX1dFQlBBQ0tf
SU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMjApOworLyogaGFybW9u
eSBpbXBvcnQgKi8gdmFyIF9jb25zdGFudF9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9f
ID0gX193ZWJwYWNrX3JlcXVpcmVfXygyMSk7CisvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2F0
dHJpYnV0ZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fID0gX193ZWJwYWNrX3JlcXVp
cmVfXygxNCk7CisvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX29wZXJhdGlvbl9qc19fV0VCUEFD
S19JTVBPUlRFRF9NT0RVTEVfM19fID0gX193ZWJwYWNrX3JlcXVpcmVfXygxMyk7CisvKiBoYXJt
b255IGltcG9ydCAqLyB2YXIgX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRf
XyA9IF9fd2VicGFja19yZXF1aXJlX18oNCk7CisKKworCisKKworCitjbGFzcyBNaXhpbiBleHRl
bmRzIF9jb250YWluZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siQ29udGFpbmVy
Il0geworICAvKioKKyAgICogQHBhcmFtIHtpbXBvcnQoIi4uL3Rva2VuaXNlciIpLlRva2VuaXNl
cn0gdG9rZW5pc2VyCisgICAqLworICBzdGF0aWMgcGFyc2UodG9rZW5pc2VyLCBiYXNlLCB7IHBh
cnRpYWwgfSA9IHt9KSB7CisgICAgY29uc3QgdG9rZW5zID0geyBwYXJ0aWFsLCBiYXNlIH07Cisg
ICAgdG9rZW5zLm1peGluID0gdG9rZW5pc2VyLmNvbnN1bWUoIm1peGluIik7CisgICAgaWYgKCF0
b2tlbnMubWl4aW4pIHsKKyAgICAgIHJldHVybjsKKyAgICB9CisgICAgcmV0dXJuIF9jb250YWlu
ZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siQ29udGFpbmVyIl0ucGFyc2UodG9r
ZW5pc2VyLCBuZXcgTWl4aW4oeyBzb3VyY2U6IHRva2VuaXNlci5zb3VyY2UsIHRva2VucyB9KSwg
eworICAgICAgdHlwZTogImludGVyZmFjZSBtaXhpbiIsCisgICAgICBhbGxvd2VkTWVtYmVyczog
WworICAgICAgICBbX2NvbnN0YW50X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19bIkNv
bnN0YW50Il0ucGFyc2VdLAorICAgICAgICBbX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURf
TU9EVUxFXzRfX1sic3RyaW5naWZpZXIiXV0sCisgICAgICAgIFtfYXR0cmlidXRlX2pzX19XRUJQ
QUNLX0lNUE9SVEVEX01PRFVMRV8yX19bIkF0dHJpYnV0ZSJdLnBhcnNlLCB7IG5vSW5oZXJpdDog
dHJ1ZSB9XSwKKyAgICAgICAgW19vcGVyYXRpb25fanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxF
XzNfX1siT3BlcmF0aW9uIl0ucGFyc2UsIHsgcmVndWxhcjogdHJ1ZSB9XQorICAgICAgXQorICAg
IH0pOworICB9CisKKyAgZ2V0IHR5cGUoKSB7CisgICAgcmV0dXJuICJpbnRlcmZhY2UgbWl4aW4i
OworICB9Cit9CisKKworLyoqKi8gfSksCisvKiAyNiAqLworLyoqKi8gKGZ1bmN0aW9uKG1vZHVs
ZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgeworCisidXNlIHN0
cmljdCI7CitfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7CisvKiBo
YXJtb255IGV4cG9ydCAoYmluZGluZykgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFj
a19leHBvcnRzX18sICJEaWN0aW9uYXJ5IiwgZnVuY3Rpb24oKSB7IHJldHVybiBEaWN0aW9uYXJ5
OyB9KTsKKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfY29udGFpbmVyX2pzX19XRUJQQUNLX0lN
UE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDIwKTsKKy8qIGhhcm1vbnkg
aW1wb3J0ICovIHZhciBfZmllbGRfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9f
d2VicGFja19yZXF1aXJlX18oMjcpOworCisKKworY2xhc3MgRGljdGlvbmFyeSBleHRlbmRzIF9j
b250YWluZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siQ29udGFpbmVyIl0gewor
ICAvKioKKyAgICogQHBhcmFtIHtpbXBvcnQoIi4uL3Rva2VuaXNlciIpLlRva2VuaXNlcn0gdG9r
ZW5pc2VyCisgICAqLworICBzdGF0aWMgcGFyc2UodG9rZW5pc2VyLCB7IHBhcnRpYWwgfSA9IHt9
KSB7CisgICAgY29uc3QgdG9rZW5zID0geyBwYXJ0aWFsIH07CisgICAgdG9rZW5zLmJhc2UgPSB0
b2tlbmlzZXIuY29uc3VtZSgiZGljdGlvbmFyeSIpOworICAgIGlmICghdG9rZW5zLmJhc2UpIHsK
KyAgICAgIHJldHVybjsKKyAgICB9CisgICAgcmV0dXJuIF9jb250YWluZXJfanNfX1dFQlBBQ0tf
SU1QT1JURURfTU9EVUxFXzBfX1siQ29udGFpbmVyIl0ucGFyc2UodG9rZW5pc2VyLCBuZXcgRGlj
dGlvbmFyeSh7IHNvdXJjZTogdG9rZW5pc2VyLnNvdXJjZSwgdG9rZW5zIH0pLCB7CisgICAgICB0
eXBlOiAiZGljdGlvbmFyeSIsCisgICAgICBpbmhlcml0YWJsZTogIXBhcnRpYWwsCisgICAgICBh
bGxvd2VkTWVtYmVyczogWworICAgICAgICBbX2ZpZWxkX2pzX19XRUJQQUNLX0lNUE9SVEVEX01P
RFVMRV8xX19bIkZpZWxkIl0ucGFyc2VdLAorICAgICAgXQorICAgIH0pOworICB9CisKKyAgZ2V0
IHR5cGUoKSB7CisgICAgcmV0dXJuICJkaWN0aW9uYXJ5IjsKKyAgfQorfQorCisKKy8qKiovIH0p
LAorLyogMjcgKi8KKy8qKiovIChmdW5jdGlvbihtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18s
IF9fd2VicGFja19yZXF1aXJlX18pIHsKKworInVzZSBzdHJpY3QiOworX193ZWJwYWNrX3JlcXVp
cmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pOworLyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcp
ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAiRmllbGQiLCBm
dW5jdGlvbigpIHsgcmV0dXJuIEZpZWxkOyB9KTsKKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBf
YmFzZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVf
Xyg2KTsKKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfaGVscGVyc19qc19fV0VCUEFDS19JTVBP
UlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg0KTsKKy8qIGhhcm1vbnkgaW1w
b3J0ICovIHZhciBfZXh0ZW5kZWRfYXR0cmlidXRlc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RV
TEVfMl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygxMCk7CisvKiBoYXJtb255IGltcG9ydCAqLyB2
YXIgX2RlZmF1bHRfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXyA9IF9fd2VicGFja19y
ZXF1aXJlX18oOSk7CisKKworCisKKworY2xhc3MgRmllbGQgZXh0ZW5kcyBfYmFzZV9qc19fV0VC
UEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJCYXNlIl0geworICAvKioKKyAgICogQHBhcmFtIHtp
bXBvcnQoIi4uL3Rva2VuaXNlciIpLlRva2VuaXNlcn0gdG9rZW5pc2VyCisgICAqLworICBzdGF0
aWMgcGFyc2UodG9rZW5pc2VyKSB7CisgICAgY29uc3QgdG9rZW5zID0ge307CisgICAgY29uc3Qg
cmV0ID0gbmV3IEZpZWxkKHsgc291cmNlOiB0b2tlbmlzZXIuc291cmNlLCB0b2tlbnMgfSk7Cisg
ICAgcmV0LmV4dEF0dHJzID0gX2V4dGVuZGVkX2F0dHJpYnV0ZXNfanNfX1dFQlBBQ0tfSU1QT1JU
RURfTU9EVUxFXzJfX1siRXh0ZW5kZWRBdHRyaWJ1dGVzIl0ucGFyc2UodG9rZW5pc2VyKTsKKyAg
ICB0b2tlbnMucmVxdWlyZWQgPSB0b2tlbmlzZXIuY29uc3VtZSgicmVxdWlyZWQiKTsKKyAgICBy
ZXQuaWRsVHlwZSA9IE9iamVjdChfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVf
MV9fWyJ0eXBlX3dpdGhfZXh0ZW5kZWRfYXR0cmlidXRlcyJdKSh0b2tlbmlzZXIsICJkaWN0aW9u
YXJ5LXR5cGUiKSB8fCB0b2tlbmlzZXIuZXJyb3IoIkRpY3Rpb25hcnkgbWVtYmVyIGxhY2tzIGEg
dHlwZSIpOworICAgIHRva2Vucy5uYW1lID0gdG9rZW5pc2VyLmNvbnN1bWUoImlkZW50aWZpZXIi
KSB8fCB0b2tlbmlzZXIuZXJyb3IoIkRpY3Rpb25hcnkgbWVtYmVyIGxhY2tzIGEgbmFtZSIpOwor
ICAgIHJldC5kZWZhdWx0ID0gX2RlZmF1bHRfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNf
X1siRGVmYXVsdCJdLnBhcnNlKHRva2VuaXNlcik7CisgICAgaWYgKHRva2Vucy5yZXF1aXJlZCAm
JiByZXQuZGVmYXVsdCkgdG9rZW5pc2VyLmVycm9yKCJSZXF1aXJlZCBtZW1iZXIgbXVzdCBub3Qg
aGF2ZSBhIGRlZmF1bHQiKTsKKyAgICB0b2tlbnMudGVybWluYXRpb24gPSB0b2tlbmlzZXIuY29u
c3VtZSgiOyIpIHx8IHRva2VuaXNlci5lcnJvcigiVW50ZXJtaW5hdGVkIGRpY3Rpb25hcnkgbWVt
YmVyLCBleHBlY3RlZCBgO2AiKTsKKyAgICByZXR1cm4gcmV0OworICB9CisKKyAgZ2V0IHR5cGUo
KSB7CisgICAgcmV0dXJuICJmaWVsZCI7CisgIH0KKyAgZ2V0IG5hbWUoKSB7CisgICAgcmV0dXJu
IE9iamVjdChfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fWyJ1bmVzY2Fw
ZSJdKSh0aGlzLnRva2Vucy5uYW1lLnZhbHVlKTsKKyAgfQorICBnZXQgcmVxdWlyZWQoKSB7Cisg
ICAgcmV0dXJuICEhdGhpcy50b2tlbnMucmVxdWlyZWQ7CisgIH0KKworICAqdmFsaWRhdGUoZGVm
cykgeworICAgIHlpZWxkKiB0aGlzLmlkbFR5cGUudmFsaWRhdGUoZGVmcyk7CisgIH0KK30KKwor
CisvKioqLyB9KSwKKy8qIDI4ICovCisvKioqLyAoZnVuY3Rpb24obW9kdWxlLCBfX3dlYnBhY2tf
ZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CisKKyJ1c2Ugc3RyaWN0IjsKK19fd2Vi
cGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTsKKy8qIGhhcm1vbnkgZXhwb3J0
IChiaW5kaW5nKSAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywg
Ik5hbWVzcGFjZSIsIGZ1bmN0aW9uKCkgeyByZXR1cm4gTmFtZXNwYWNlOyB9KTsKKy8qIGhhcm1v
bnkgaW1wb3J0ICovIHZhciBfY29udGFpbmVyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8w
X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDIwKTsKKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBf
YXR0cmlidXRlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18gPSBfX3dlYnBhY2tfcmVx
dWlyZV9fKDE0KTsKKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfb3BlcmF0aW9uX2pzX19XRUJQ
QUNLX0lNUE9SVEVEX01PRFVMRV8yX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDEzKTsKKy8qIGhh
cm1vbnkgaW1wb3J0ICovIHZhciBfZXJyb3JfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNf
XyA9IF9fd2VicGFja19yZXF1aXJlX18oMyk7CisvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2hl
bHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXyA9IF9fd2VicGFja19yZXF1aXJl
X18oNCk7CisKKworCisKKworCitjbGFzcyBOYW1lc3BhY2UgZXh0ZW5kcyBfY29udGFpbmVyX2pz
X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIkNvbnRhaW5lciJdIHsKKyAgLyoqCisgICAq
IEBwYXJhbSB7aW1wb3J0KCIuLi90b2tlbmlzZXIiKS5Ub2tlbmlzZXJ9IHRva2VuaXNlcgorICAg
Ki8KKyAgc3RhdGljIHBhcnNlKHRva2VuaXNlciwgeyBwYXJ0aWFsIH0gPSB7fSkgeworICAgIGNv
bnN0IHRva2VucyA9IHsgcGFydGlhbCB9OworICAgIHRva2Vucy5iYXNlID0gdG9rZW5pc2VyLmNv
bnN1bWUoIm5hbWVzcGFjZSIpOworICAgIGlmICghdG9rZW5zLmJhc2UpIHsKKyAgICAgIHJldHVy
bjsKKyAgICB9CisgICAgcmV0dXJuIF9jb250YWluZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9E
VUxFXzBfX1siQ29udGFpbmVyIl0ucGFyc2UodG9rZW5pc2VyLCBuZXcgTmFtZXNwYWNlKHsgc291
cmNlOiB0b2tlbmlzZXIuc291cmNlLCB0b2tlbnMgfSksIHsKKyAgICAgIHR5cGU6ICJuYW1lc3Bh
Y2UiLAorICAgICAgYWxsb3dlZE1lbWJlcnM6IFsKKyAgICAgICAgW19hdHRyaWJ1dGVfanNfX1dF
QlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX1siQXR0cmlidXRlIl0ucGFyc2UsIHsgbm9Jbmhlcml0
OiB0cnVlLCByZWFkb25seTogdHJ1ZSB9XSwKKyAgICAgICAgW19vcGVyYXRpb25fanNfX1dFQlBB
Q0tfSU1QT1JURURfTU9EVUxFXzJfX1siT3BlcmF0aW9uIl0ucGFyc2UsIHsgcmVndWxhcjogdHJ1
ZSB9XQorICAgICAgXQorICAgIH0pOworICB9CisKKyAgZ2V0IHR5cGUoKSB7CisgICAgcmV0dXJu
ICJuYW1lc3BhY2UiOworICB9CisKKyAgKnZhbGlkYXRlKGRlZnMpIHsKKyAgICBpZiAoIXRoaXMu
cGFydGlhbCAmJiB0aGlzLmV4dEF0dHJzLmV2ZXJ5KGV4dEF0dHIgPT4gZXh0QXR0ci5uYW1lICE9
PSAiRXhwb3NlZCIpKSB7CisgICAgICBjb25zdCBtZXNzYWdlID0gYE5hbWVzcGFjZXMgbXVzdCBo
YXZlIFtFeHBvc2VkXSBleHRlbmRlZCBhdHRyaWJ1dGUuIFwKK1RvIGZpeCwgYWRkLCBmb3IgZXhh
bXBsZSwgW0V4cG9zZWQ9V2luZG93XS4gUGxlYXNlIGFsc28gY29uc2lkZXIgY2FyZWZ1bGx5IFwK
K2lmIHlvdXIgbmFtZXNwYWNlIHNob3VsZCBhbHNvIGJlIGV4cG9zZWQgaW4gYSBXb3JrZXIgc2Nv
cGUuIFJlZmVyIHRvIHRoZSBcCitbV2ViSURMIHNwZWMgc2VjdGlvbiBvbiBFeHBvc2VkXShodHRw
czovL2hleWNhbS5naXRodWIuaW8vd2ViaWRsLyNFeHBvc2VkKSBcCitmb3IgbW9yZSBpbmZvcm1h
dGlvbi5gOworICAgICAgeWllbGQgT2JqZWN0KF9lcnJvcl9qc19fV0VCUEFDS19JTVBPUlRFRF9N
T0RVTEVfM19fWyJ2YWxpZGF0aW9uRXJyb3IiXSkodGhpcy5zb3VyY2UsIHRoaXMudG9rZW5zLm5h
bWUsIHRoaXMsIG1lc3NhZ2UsIHsKKyAgICAgICAgYXV0b2ZpeDogT2JqZWN0KF9oZWxwZXJzX2pz
X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X19bImF1dG9maXhBZGRFeHBvc2VkV2luZG93Il0p
KHRoaXMpCisgICAgICB9KTsKKyAgICB9CisgICAgeWllbGQqIHN1cGVyLnZhbGlkYXRlKGRlZnMp
OworICB9Cit9CisKKworLyoqKi8gfSksCisvKiAyOSAqLworLyoqKi8gKGZ1bmN0aW9uKG1vZHVs
ZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgeworCisidXNlIHN0
cmljdCI7CitfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7CisvKiBo
YXJtb255IGV4cG9ydCAoYmluZGluZykgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFj
a19leHBvcnRzX18sICJDYWxsYmFja0ludGVyZmFjZSIsIGZ1bmN0aW9uKCkgeyByZXR1cm4gQ2Fs
bGJhY2tJbnRlcmZhY2U7IH0pOworLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9jb250YWluZXJf
anNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMjAp
OworLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9vcGVyYXRpb25fanNfX1dFQlBBQ0tfSU1QT1JU
RURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMTMpOworLyogaGFybW9ueSBpbXBv
cnQgKi8gdmFyIF9jb25zdGFudF9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fID0gX193
ZWJwYWNrX3JlcXVpcmVfXygyMSk7CisKKworCisKKworY2xhc3MgQ2FsbGJhY2tJbnRlcmZhY2Ug
ZXh0ZW5kcyBfY29udGFpbmVyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIkNvbnRh
aW5lciJdIHsKKyAgLyoqCisgICAqIEBwYXJhbSB7aW1wb3J0KCIuLi90b2tlbmlzZXIiKS5Ub2tl
bmlzZXJ9IHRva2VuaXNlcgorICAgKi8KKyAgc3RhdGljIHBhcnNlKHRva2VuaXNlciwgY2FsbGJh
Y2ssIHsgcGFydGlhbCA9IG51bGwgfSA9IHt9KSB7CisgICAgY29uc3QgdG9rZW5zID0geyBjYWxs
YmFjayB9OworICAgIHRva2Vucy5iYXNlID0gdG9rZW5pc2VyLmNvbnN1bWUoImludGVyZmFjZSIp
OworICAgIGlmICghdG9rZW5zLmJhc2UpIHsKKyAgICAgIHJldHVybjsKKyAgICB9CisgICAgcmV0
dXJuIF9jb250YWluZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siQ29udGFpbmVy
Il0ucGFyc2UodG9rZW5pc2VyLCBuZXcgQ2FsbGJhY2tJbnRlcmZhY2UoeyBzb3VyY2U6IHRva2Vu
aXNlci5zb3VyY2UsIHRva2VucyB9KSwgeworICAgICAgdHlwZTogImNhbGxiYWNrIGludGVyZmFj
ZSIsCisgICAgICBpbmhlcml0YWJsZTogIXBhcnRpYWwsCisgICAgICBhbGxvd2VkTWVtYmVyczog
WworICAgICAgICBbX2NvbnN0YW50X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19bIkNv
bnN0YW50Il0ucGFyc2VdLAorICAgICAgICBbX29wZXJhdGlvbl9qc19fV0VCUEFDS19JTVBPUlRF
RF9NT0RVTEVfMV9fWyJPcGVyYXRpb24iXS5wYXJzZSwgeyByZWd1bGFyOiB0cnVlIH1dCisgICAg
ICBdCisgICAgfSk7CisgIH0KKworICBnZXQgdHlwZSgpIHsKKyAgICByZXR1cm4gImNhbGxiYWNr
IGludGVyZmFjZSI7CisgIH0KK30KKworCisvKioqLyB9KSwKKy8qIDMwICovCisvKioqLyAoZnVu
Y3Rpb24obW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7
CisKKyJ1c2Ugc3RyaWN0IjsKK19fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0
c19fKTsKKy8qIGhhcm1vbnkgZXhwb3J0IChiaW5kaW5nKSAqLyBfX3dlYnBhY2tfcmVxdWlyZV9f
LmQoX193ZWJwYWNrX2V4cG9ydHNfXywgIndyaXRlIiwgZnVuY3Rpb24oKSB7IHJldHVybiB3cml0
ZTsgfSk7CisKKworZnVuY3Rpb24gbm9vcChhcmcpIHsKKyAgcmV0dXJuIGFyZzsKK30KKworY29u
c3QgdGVtcGxhdGVzID0geworICB3cmFwOiBpdGVtcyA9PiBpdGVtcy5qb2luKCIiKSwKKyAgdHJp
dmlhOiBub29wLAorICBuYW1lOiBub29wLAorICByZWZlcmVuY2U6IG5vb3AsCisgIHR5cGU6IG5v
b3AsCisgIGdlbmVyaWM6IG5vb3AsCisgIG5hbWVsZXNzOiBub29wLAorICBpbmhlcml0YW5jZTog
bm9vcCwKKyAgZGVmaW5pdGlvbjogbm9vcCwKKyAgZXh0ZW5kZWRBdHRyaWJ1dGU6IG5vb3AsCisg
IGV4dGVuZGVkQXR0cmlidXRlUmVmZXJlbmNlOiBub29wCit9OworCitmdW5jdGlvbiB3cml0ZShh
c3QsIHsgdGVtcGxhdGVzOiB0cyA9IHRlbXBsYXRlcyB9ID0ge30pIHsKKyAgdHMgPSBPYmplY3Qu
YXNzaWduKHt9LCB0ZW1wbGF0ZXMsIHRzKTsKKworICBmdW5jdGlvbiByZWZlcmVuY2UocmF3LCB7
IHVuZXNjYXBlZCwgY29udGV4dCB9KSB7CisgICAgaWYgKCF1bmVzY2FwZWQpIHsKKyAgICAgIHVu
ZXNjYXBlZCA9IHJhdy5zdGFydHNXaXRoKCJfIikgPyByYXcuc2xpY2UoMSkgOiByYXc7CisgICAg
fQorICAgIHJldHVybiB0cy5yZWZlcmVuY2UocmF3LCB1bmVzY2FwZWQsIGNvbnRleHQpOworICB9
CisKKyAgZnVuY3Rpb24gdG9rZW4odCwgd3JhcHBlciA9IG5vb3AsIC4uLmFyZ3MpIHsKKyAgICBp
ZiAoIXQpIHsKKyAgICAgIHJldHVybiAiIjsKKyAgICB9CisgICAgY29uc3QgdmFsdWUgPSB3cmFw
cGVyKHQudmFsdWUsIC4uLmFyZ3MpOworICAgIHJldHVybiB0cy53cmFwKFt0cy50cml2aWEodC50
cml2aWEpLCB2YWx1ZV0pOworICB9CisKKyAgZnVuY3Rpb24gcmVmZXJlbmNlX3Rva2VuKHQsIGNv
bnRleHQpIHsKKyAgICByZXR1cm4gdG9rZW4odCwgcmVmZXJlbmNlLCB7IGNvbnRleHQgfSk7Cisg
IH0KKworICBmdW5jdGlvbiBuYW1lX3Rva2VuKHQsIGFyZykgeworICAgIHJldHVybiB0b2tlbih0
LCB0cy5uYW1lLCBhcmcpOworICB9CisKKyAgZnVuY3Rpb24gdHlwZV9ib2R5KGl0KSB7CisgICAg
aWYgKGl0LnVuaW9uIHx8IGl0LmdlbmVyaWMpIHsKKyAgICAgIHJldHVybiB0cy53cmFwKFsKKyAg
ICAgICAgdG9rZW4oaXQudG9rZW5zLmJhc2UsIHRzLmdlbmVyaWMpLAorICAgICAgICB0b2tlbihp
dC50b2tlbnMub3BlbiksCisgICAgICAgIC4uLml0LnN1YnR5cGUubWFwKHR5cGUpLAorICAgICAg
ICB0b2tlbihpdC50b2tlbnMuY2xvc2UpCisgICAgICBdKTsKKyAgICB9CisgICAgY29uc3QgZmly
c3RUb2tlbiA9IGl0LnRva2Vucy5wcmVmaXggfHwgaXQudG9rZW5zLmJhc2U7CisgICAgY29uc3Qg
cHJlZml4ID0gaXQudG9rZW5zLnByZWZpeCA/IFsKKyAgICAgIGl0LnRva2Vucy5wcmVmaXgudmFs
dWUsCisgICAgICB0cy50cml2aWEoaXQudG9rZW5zLmJhc2UudHJpdmlhKQorICAgIF0gOiBbXTsK
KyAgICBjb25zdCByZWYgPSByZWZlcmVuY2UodHMud3JhcChbCisgICAgICAuLi5wcmVmaXgsCisg
ICAgICBpdC50b2tlbnMuYmFzZS52YWx1ZSwKKyAgICAgIHRva2VuKGl0LnRva2Vucy5wb3N0Zml4
KQorICAgIF0pLCB7IHVuZXNjYXBlZDogaXQuaWRsVHlwZSwgY29udGV4dDogaXQgfSk7CisgICAg
cmV0dXJuIHRzLndyYXAoW3RzLnRyaXZpYShmaXJzdFRva2VuLnRyaXZpYSksIHJlZl0pOworICB9
CisgIGZ1bmN0aW9uIHR5cGUoaXQpIHsKKyAgICByZXR1cm4gdHMud3JhcChbCisgICAgICBleHRl
bmRlZF9hdHRyaWJ1dGVzKGl0LmV4dEF0dHJzKSwKKyAgICAgIHR5cGVfYm9keShpdCksCisgICAg
ICB0b2tlbihpdC50b2tlbnMubnVsbGFibGUpLAorICAgICAgdG9rZW4oaXQudG9rZW5zLnNlcGFy
YXRvcikKKyAgICBdKTsKKyAgfQorICBmdW5jdGlvbiBkZWZhdWx0XyhkZWYpIHsKKyAgICBpZiAo
IWRlZikgeworICAgICAgcmV0dXJuICIiOworICAgIH0KKyAgICByZXR1cm4gdHMud3JhcChbCisg
ICAgICB0b2tlbihkZWYudG9rZW5zLmFzc2lnbiksCisgICAgICAuLi5kZWYuZXhwcmVzc2lvbi5t
YXAodCA9PiB0b2tlbih0KSkKKyAgICBdKTsKKyAgfQorICBmdW5jdGlvbiBhcmd1bWVudChhcmcp
IHsKKyAgICByZXR1cm4gdHMud3JhcChbCisgICAgICBleHRlbmRlZF9hdHRyaWJ1dGVzKGFyZy5l
eHRBdHRycyksCisgICAgICB0b2tlbihhcmcudG9rZW5zLm9wdGlvbmFsKSwKKyAgICAgIHRzLnR5
cGUodHlwZShhcmcuaWRsVHlwZSkpLAorICAgICAgdG9rZW4oYXJnLnRva2Vucy52YXJpYWRpYyks
CisgICAgICBuYW1lX3Rva2VuKGFyZy50b2tlbnMubmFtZSwgeyBkYXRhOiBhcmcgfSksCisgICAg
ICBkZWZhdWx0XyhhcmcuZGVmYXVsdCksCisgICAgICB0b2tlbihhcmcudG9rZW5zLnNlcGFyYXRv
cikKKyAgICBdKTsKKyAgfQorICBmdW5jdGlvbiBpZGVudGlmaWVyKGlkLCBjb250ZXh0KSB7Cisg
ICAgcmV0dXJuIHRzLndyYXAoWworICAgICAgcmVmZXJlbmNlX3Rva2VuKGlkLnRva2Vucy52YWx1
ZSwgY29udGV4dCksCisgICAgICB0b2tlbihpZC50b2tlbnMuc2VwYXJhdG9yKQorICAgIF0pOwor
ICB9CisgIGZ1bmN0aW9uIG1ha2VfZXh0X2F0KGl0KSB7CisgICAgY29uc3QgeyByaHNUeXBlIH0g
PSBpdC5wYXJhbXM7CisgICAgcmV0dXJuIHRzLndyYXAoWworICAgICAgdHMudHJpdmlhKGl0LnRv
a2Vucy5uYW1lLnRyaXZpYSksCisgICAgICB0cy5leHRlbmRlZEF0dHJpYnV0ZSh0cy53cmFwKFsK
KyAgICAgICAgdHMuZXh0ZW5kZWRBdHRyaWJ1dGVSZWZlcmVuY2UoaXQubmFtZSksCisgICAgICAg
IHRva2VuKGl0LnBhcmFtcy50b2tlbnMuYXNzaWduKSwKKyAgICAgICAgcmVmZXJlbmNlX3Rva2Vu
KGl0LnBhcmFtcy50b2tlbnMuc2Vjb25kYXJ5TmFtZSwgaXQpLAorICAgICAgICB0b2tlbihpdC5w
YXJhbXMudG9rZW5zLm9wZW4pLAorICAgICAgICAuLi4haXQucGFyYW1zLmxpc3QgPyBbXSA6Cisg
ICAgICAgICAgaXQucGFyYW1zLmxpc3QubWFwKAorICAgICAgICAgICAgcmhzVHlwZSA9PT0gImlk
ZW50aWZpZXItbGlzdCIgPyBpZCA9PiBpZGVudGlmaWVyKGlkLCBpdCkgOiBhcmd1bWVudAorICAg
ICAgICAgICksCisgICAgICAgIHRva2VuKGl0LnBhcmFtcy50b2tlbnMuY2xvc2UpCisgICAgICBd
KSksCisgICAgICB0b2tlbihpdC50b2tlbnMuc2VwYXJhdG9yKQorICAgIF0pOworICB9CisgIGZ1
bmN0aW9uIGV4dGVuZGVkX2F0dHJpYnV0ZXMoZWF0cykgeworICAgIGlmICghZWF0cy5sZW5ndGgp
IHJldHVybiAiIjsKKyAgICByZXR1cm4gdHMud3JhcChbCisgICAgICB0b2tlbihlYXRzLnRva2Vu
cy5vcGVuKSwKKyAgICAgIC4uLmVhdHMubWFwKG1ha2VfZXh0X2F0KSwKKyAgICAgIHRva2VuKGVh
dHMudG9rZW5zLmNsb3NlKQorICAgIF0pOworICB9CisKKyAgZnVuY3Rpb24gb3BlcmF0aW9uKGl0
LCBwYXJlbnQpIHsKKyAgICBjb25zdCBib2R5ID0gaXQuaWRsVHlwZSA/IFsKKyAgICAgIHRzLnR5
cGUodHlwZShpdC5pZGxUeXBlKSksCisgICAgICBuYW1lX3Rva2VuKGl0LnRva2Vucy5uYW1lLCB7
IGRhdGE6IGl0LCBwYXJlbnQgfSksCisgICAgICB0b2tlbihpdC50b2tlbnMub3BlbiksCisgICAg
ICB0cy53cmFwKGl0LmFyZ3VtZW50cy5tYXAoYXJndW1lbnQpKSwKKyAgICAgIHRva2VuKGl0LnRv
a2Vucy5jbG9zZSksCisgICAgXSA6IFtdOworICAgIHJldHVybiB0cy5kZWZpbml0aW9uKHRzLndy
YXAoWworICAgICAgZXh0ZW5kZWRfYXR0cmlidXRlcyhpdC5leHRBdHRycyksCisgICAgICBpdC50
b2tlbnMubmFtZSA/IHRva2VuKGl0LnRva2Vucy5zcGVjaWFsKSA6IHRva2VuKGl0LnRva2Vucy5z
cGVjaWFsLCB0cy5uYW1lbGVzcywgeyBkYXRhOiBpdCwgcGFyZW50IH0pLAorICAgICAgLi4uYm9k
eSwKKyAgICAgIHRva2VuKGl0LnRva2Vucy50ZXJtaW5hdGlvbikKKyAgICBdKSwgeyBkYXRhOiBp
dCwgcGFyZW50IH0pOworICB9CisKKyAgZnVuY3Rpb24gYXR0cmlidXRlKGl0LCBwYXJlbnQpIHsK
KyAgICByZXR1cm4gdHMuZGVmaW5pdGlvbih0cy53cmFwKFsKKyAgICAgIGV4dGVuZGVkX2F0dHJp
YnV0ZXMoaXQuZXh0QXR0cnMpLAorICAgICAgdG9rZW4oaXQudG9rZW5zLnNwZWNpYWwpLAorICAg
ICAgdG9rZW4oaXQudG9rZW5zLnJlYWRvbmx5KSwKKyAgICAgIHRva2VuKGl0LnRva2Vucy5iYXNl
KSwKKyAgICAgIHRzLnR5cGUodHlwZShpdC5pZGxUeXBlKSksCisgICAgICBuYW1lX3Rva2VuKGl0
LnRva2Vucy5uYW1lLCB7IGRhdGE6IGl0LCBwYXJlbnQgfSksCisgICAgICB0b2tlbihpdC50b2tl
bnMudGVybWluYXRpb24pCisgICAgXSksIHsgZGF0YTogaXQsIHBhcmVudCB9KTsKKyAgfQorCisg
IGZ1bmN0aW9uIGNvbnN0cnVjdG9yKGl0LCBwYXJlbnQpIHsKKyAgICByZXR1cm4gdHMuZGVmaW5p
dGlvbih0cy53cmFwKFsKKyAgICAgIGV4dGVuZGVkX2F0dHJpYnV0ZXMoaXQuZXh0QXR0cnMpLAor
ICAgICAgdG9rZW4oaXQudG9rZW5zLmJhc2UsIHRzLm5hbWVsZXNzLCB7IGRhdGE6IGl0LCBwYXJl
bnQgfSksCisgICAgICB0b2tlbihpdC50b2tlbnMub3BlbiksCisgICAgICB0cy53cmFwKGl0LmFy
Z3VtZW50cy5tYXAoYXJndW1lbnQpKSwKKyAgICAgIHRva2VuKGl0LnRva2Vucy5jbG9zZSksCisg
ICAgICB0b2tlbihpdC50b2tlbnMudGVybWluYXRpb24pCisgICAgXSksIHsgZGF0YTogaXQsIHBh
cmVudCB9KTsKKyAgfQorCisgIGZ1bmN0aW9uIGluaGVyaXRhbmNlKGluaCkgeworICAgIGlmICgh
aW5oLnRva2Vucy5pbmhlcml0YW5jZSkgeworICAgICAgcmV0dXJuICIiOworICAgIH0KKyAgICBy
ZXR1cm4gdHMud3JhcChbCisgICAgICB0b2tlbihpbmgudG9rZW5zLmNvbG9uKSwKKyAgICAgIHRz
LnRyaXZpYShpbmgudG9rZW5zLmluaGVyaXRhbmNlLnRyaXZpYSksCisgICAgICB0cy5pbmhlcml0
YW5jZShyZWZlcmVuY2UoaW5oLnRva2Vucy5pbmhlcml0YW5jZS52YWx1ZSwgeyBjb250ZXh0OiBp
bmggfSkpCisgICAgXSk7CisgIH0KKworICBmdW5jdGlvbiBjb250YWluZXIoaXQpIHsKKyAgICBy
ZXR1cm4gdHMuZGVmaW5pdGlvbih0cy53cmFwKFsKKyAgICAgIGV4dGVuZGVkX2F0dHJpYnV0ZXMo
aXQuZXh0QXR0cnMpLAorICAgICAgdG9rZW4oaXQudG9rZW5zLmNhbGxiYWNrKSwKKyAgICAgIHRv
a2VuKGl0LnRva2Vucy5wYXJ0aWFsKSwKKyAgICAgIHRva2VuKGl0LnRva2Vucy5iYXNlKSwKKyAg
ICAgIHRva2VuKGl0LnRva2Vucy5taXhpbiksCisgICAgICBuYW1lX3Rva2VuKGl0LnRva2Vucy5u
YW1lLCB7IGRhdGE6IGl0IH0pLAorICAgICAgaW5oZXJpdGFuY2UoaXQpLAorICAgICAgdG9rZW4o
aXQudG9rZW5zLm9wZW4pLAorICAgICAgaXRlcmF0ZShpdC5tZW1iZXJzLCBpdCksCisgICAgICB0
b2tlbihpdC50b2tlbnMuY2xvc2UpLAorICAgICAgdG9rZW4oaXQudG9rZW5zLnRlcm1pbmF0aW9u
KQorICAgIF0pLCB7IGRhdGE6IGl0IH0pOworICB9CisKKyAgZnVuY3Rpb24gZmllbGQoaXQsIHBh
cmVudCkgeworICAgIHJldHVybiB0cy5kZWZpbml0aW9uKHRzLndyYXAoWworICAgICAgZXh0ZW5k
ZWRfYXR0cmlidXRlcyhpdC5leHRBdHRycyksCisgICAgICB0b2tlbihpdC50b2tlbnMucmVxdWly
ZWQpLAorICAgICAgdHMudHlwZSh0eXBlKGl0LmlkbFR5cGUpKSwKKyAgICAgIG5hbWVfdG9rZW4o
aXQudG9rZW5zLm5hbWUsIHsgZGF0YTogaXQsIHBhcmVudCB9KSwKKyAgICAgIGRlZmF1bHRfKGl0
LmRlZmF1bHQpLAorICAgICAgdG9rZW4oaXQudG9rZW5zLnRlcm1pbmF0aW9uKQorICAgIF0pLCB7
IGRhdGE6IGl0LCBwYXJlbnQgfSk7CisgIH0KKyAgZnVuY3Rpb24gY29uc3RfKGl0LCBwYXJlbnQp
IHsKKyAgICByZXR1cm4gdHMuZGVmaW5pdGlvbih0cy53cmFwKFsKKyAgICAgIGV4dGVuZGVkX2F0
dHJpYnV0ZXMoaXQuZXh0QXR0cnMpLAorICAgICAgdG9rZW4oaXQudG9rZW5zLmJhc2UpLAorICAg
ICAgdHMudHlwZSh0eXBlKGl0LmlkbFR5cGUpKSwKKyAgICAgIG5hbWVfdG9rZW4oaXQudG9rZW5z
Lm5hbWUsIHsgZGF0YTogaXQsIHBhcmVudCB9KSwKKyAgICAgIHRva2VuKGl0LnRva2Vucy5hc3Np
Z24pLAorICAgICAgdG9rZW4oaXQudG9rZW5zLnZhbHVlKSwKKyAgICAgIHRva2VuKGl0LnRva2Vu
cy50ZXJtaW5hdGlvbikKKyAgICBdKSwgeyBkYXRhOiBpdCwgcGFyZW50IH0pOworICB9CisgIGZ1
bmN0aW9uIHR5cGVkZWYoaXQpIHsKKyAgICByZXR1cm4gdHMuZGVmaW5pdGlvbih0cy53cmFwKFsK
KyAgICAgIGV4dGVuZGVkX2F0dHJpYnV0ZXMoaXQuZXh0QXR0cnMpLAorICAgICAgdG9rZW4oaXQu
dG9rZW5zLmJhc2UpLAorICAgICAgdHMudHlwZSh0eXBlKGl0LmlkbFR5cGUpKSwKKyAgICAgIG5h
bWVfdG9rZW4oaXQudG9rZW5zLm5hbWUsIHsgZGF0YTogaXQgfSksCisgICAgICB0b2tlbihpdC50
b2tlbnMudGVybWluYXRpb24pCisgICAgXSksIHsgZGF0YTogaXQgfSk7CisgIH0KKyAgZnVuY3Rp
b24gaW5jbHVkZXMoaXQpIHsKKyAgICByZXR1cm4gdHMuZGVmaW5pdGlvbih0cy53cmFwKFsKKyAg
ICAgIGV4dGVuZGVkX2F0dHJpYnV0ZXMoaXQuZXh0QXR0cnMpLAorICAgICAgcmVmZXJlbmNlX3Rv
a2VuKGl0LnRva2Vucy50YXJnZXQsIGl0KSwKKyAgICAgIHRva2VuKGl0LnRva2Vucy5pbmNsdWRl
cyksCisgICAgICByZWZlcmVuY2VfdG9rZW4oaXQudG9rZW5zLm1peGluLCBpdCksCisgICAgICB0
b2tlbihpdC50b2tlbnMudGVybWluYXRpb24pCisgICAgXSksIHsgZGF0YTogaXQgfSk7CisgIH0K
KyAgZnVuY3Rpb24gY2FsbGJhY2soaXQpIHsKKyAgICByZXR1cm4gdHMuZGVmaW5pdGlvbih0cy53
cmFwKFsKKyAgICAgIGV4dGVuZGVkX2F0dHJpYnV0ZXMoaXQuZXh0QXR0cnMpLAorICAgICAgdG9r
ZW4oaXQudG9rZW5zLmJhc2UpLAorICAgICAgbmFtZV90b2tlbihpdC50b2tlbnMubmFtZSwgeyBk
YXRhOiBpdCB9KSwKKyAgICAgIHRva2VuKGl0LnRva2Vucy5hc3NpZ24pLAorICAgICAgdHMudHlw
ZSh0eXBlKGl0LmlkbFR5cGUpKSwKKyAgICAgIHRva2VuKGl0LnRva2Vucy5vcGVuKSwKKyAgICAg
IC4uLml0LmFyZ3VtZW50cy5tYXAoYXJndW1lbnQpLAorICAgICAgdG9rZW4oaXQudG9rZW5zLmNs
b3NlKSwKKyAgICAgIHRva2VuKGl0LnRva2Vucy50ZXJtaW5hdGlvbiksCisgICAgXSksIHsgZGF0
YTogaXQgfSk7CisgIH0KKyAgZnVuY3Rpb24gZW51bV8oaXQpIHsKKyAgICByZXR1cm4gdHMuZGVm
aW5pdGlvbih0cy53cmFwKFsKKyAgICAgIGV4dGVuZGVkX2F0dHJpYnV0ZXMoaXQuZXh0QXR0cnMp
LAorICAgICAgdG9rZW4oaXQudG9rZW5zLmJhc2UpLAorICAgICAgbmFtZV90b2tlbihpdC50b2tl
bnMubmFtZSwgeyBkYXRhOiBpdCB9KSwKKyAgICAgIHRva2VuKGl0LnRva2Vucy5vcGVuKSwKKyAg
ICAgIGl0ZXJhdGUoaXQudmFsdWVzLCBpdCksCisgICAgICB0b2tlbihpdC50b2tlbnMuY2xvc2Up
LAorICAgICAgdG9rZW4oaXQudG9rZW5zLnRlcm1pbmF0aW9uKQorICAgIF0pLCB7IGRhdGE6IGl0
IH0pOworICB9CisgIGZ1bmN0aW9uIGVudW1fdmFsdWUodiwgcGFyZW50KSB7CisgICAgcmV0dXJu
IHRzLndyYXAoWworICAgICAgdHMudHJpdmlhKHYudG9rZW5zLnZhbHVlLnRyaXZpYSksCisgICAg
ICB0cy5kZWZpbml0aW9uKAorICAgICAgICB0cy53cmFwKFsnIicsIHRzLm5hbWUodi52YWx1ZSwg
eyBkYXRhOiB2LCBwYXJlbnQgfSksICciJ10pLAorICAgICAgICB7IGRhdGE6IHYsIHBhcmVudCB9
CisgICAgICApLAorICAgICAgdG9rZW4odi50b2tlbnMuc2VwYXJhdG9yKQorICAgIF0pOworICB9
CisgIGZ1bmN0aW9uIGl0ZXJhYmxlX2xpa2UoaXQsIHBhcmVudCkgeworICAgIHJldHVybiB0cy5k
ZWZpbml0aW9uKHRzLndyYXAoWworICAgICAgZXh0ZW5kZWRfYXR0cmlidXRlcyhpdC5leHRBdHRy
cyksCisgICAgICB0b2tlbihpdC50b2tlbnMucmVhZG9ubHkpLAorICAgICAgdG9rZW4oaXQudG9r
ZW5zLmFzeW5jKSwKKyAgICAgIHRva2VuKGl0LnRva2Vucy5iYXNlLCB0cy5nZW5lcmljKSwKKyAg
ICAgIHRva2VuKGl0LnRva2Vucy5vcGVuKSwKKyAgICAgIHRzLndyYXAoaXQuaWRsVHlwZS5tYXAo
dHlwZSkpLAorICAgICAgdG9rZW4oaXQudG9rZW5zLmNsb3NlKSwKKyAgICAgIHRva2VuKGl0LnRv
a2Vucy50ZXJtaW5hdGlvbikKKyAgICBdKSwgeyBkYXRhOiBpdCwgcGFyZW50IH0pOworICB9Cisg
IGZ1bmN0aW9uIGVvZihpdCkgeworICAgIHJldHVybiB0cy50cml2aWEoaXQudHJpdmlhKTsKKyAg
fQorCisgIGNvbnN0IHRhYmxlID0geworICAgIGludGVyZmFjZTogY29udGFpbmVyLAorICAgICJp
bnRlcmZhY2UgbWl4aW4iOiBjb250YWluZXIsCisgICAgbmFtZXNwYWNlOiBjb250YWluZXIsCisg
ICAgb3BlcmF0aW9uLAorICAgIGF0dHJpYnV0ZSwKKyAgICBjb25zdHJ1Y3RvciwKKyAgICBkaWN0
aW9uYXJ5OiBjb250YWluZXIsCisgICAgZmllbGQsCisgICAgY29uc3Q6IGNvbnN0XywKKyAgICB0
eXBlZGVmLAorICAgIGluY2x1ZGVzLAorICAgIGNhbGxiYWNrLAorICAgIGVudW06IGVudW1fLAor
ICAgICJlbnVtLXZhbHVlIjogZW51bV92YWx1ZSwKKyAgICBpdGVyYWJsZTogaXRlcmFibGVfbGlr
ZSwKKyAgICBsZWdhY3lpdGVyYWJsZTogaXRlcmFibGVfbGlrZSwKKyAgICBtYXBsaWtlOiBpdGVy
YWJsZV9saWtlLAorICAgIHNldGxpa2U6IGl0ZXJhYmxlX2xpa2UsCisgICAgImNhbGxiYWNrIGlu
dGVyZmFjZSI6IGNvbnRhaW5lciwKKyAgICBlb2YKKyAgfTsKKyAgZnVuY3Rpb24gZGlzcGF0Y2go
aXQsIHBhcmVudCkgeworICAgIGNvbnN0IGRpc3BhdGNoZXIgPSB0YWJsZVtpdC50eXBlXTsKKyAg
ICBpZiAoIWRpc3BhdGNoZXIpIHsKKyAgICAgIHRocm93IG5ldyBFcnJvcihgVHlwZSAiJHtpdC50
eXBlfSIgaXMgdW5zdXBwb3J0ZWRgKTsKKyAgICB9CisgICAgcmV0dXJuIHRhYmxlW2l0LnR5cGVd
KGl0LCBwYXJlbnQpOworICB9CisgIGZ1bmN0aW9uIGl0ZXJhdGUodGhpbmdzLCBwYXJlbnQpIHsK
KyAgICBpZiAoIXRoaW5ncykgcmV0dXJuOworICAgIGNvbnN0IHJlc3VsdHMgPSB0aGluZ3MubWFw
KHRoaW5nID0+IGRpc3BhdGNoKHRoaW5nLCBwYXJlbnQpKTsKKyAgICByZXR1cm4gdHMud3JhcChy
ZXN1bHRzKTsKKyAgfQorICByZXR1cm4gaXRlcmF0ZShhc3QpOworfQorCisKKy8qKiovIH0pLAor
LyogMzEgKi8KKy8qKiovIChmdW5jdGlvbihtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9f
d2VicGFja19yZXF1aXJlX18pIHsKKworInVzZSBzdHJpY3QiOworX193ZWJwYWNrX3JlcXVpcmVf
Xy5yKF9fd2VicGFja19leHBvcnRzX18pOworLyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICov
IF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAidmFsaWRhdGUiLCBm
dW5jdGlvbigpIHsgcmV0dXJuIHZhbGlkYXRlOyB9KTsKKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZh
ciBfZXJyb3JfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1
aXJlX18oMyk7CisKKworCisKK2Z1bmN0aW9uIGdldE1peGluTWFwKGFsbCwgdW5pcXVlKSB7Cisg
IGNvbnN0IG1hcCA9IG5ldyBNYXAoKTsKKyAgY29uc3QgaW5jbHVkZXMgPSBhbGwuZmlsdGVyKGRl
ZiA9PiBkZWYudHlwZSA9PT0gImluY2x1ZGVzIik7CisgIGZvciAoY29uc3QgaW5jbHVkZSBvZiBp
bmNsdWRlcykgeworICAgIGNvbnN0IG1peGluID0gdW5pcXVlLmdldChpbmNsdWRlLmluY2x1ZGVz
KTsKKyAgICBpZiAoIW1peGluKSB7CisgICAgICBjb250aW51ZTsKKyAgICB9CisgICAgY29uc3Qg
YXJyYXkgPSBtYXAuZ2V0KGluY2x1ZGUudGFyZ2V0KTsKKyAgICBpZiAoYXJyYXkpIHsKKyAgICAg
IGFycmF5LnB1c2gobWl4aW4pOworICAgIH0gZWxzZSB7CisgICAgICBtYXAuc2V0KGluY2x1ZGUu
dGFyZ2V0LCBbbWl4aW5dKTsKKyAgICB9CisgIH0KKyAgcmV0dXJuIG1hcDsKK30KKworZnVuY3Rp
b24gZ3JvdXBEZWZpbml0aW9ucyhhbGwpIHsKKyAgY29uc3QgdW5pcXVlID0gbmV3IE1hcCgpOwor
ICBjb25zdCBkdXBsaWNhdGVzID0gbmV3IFNldCgpOworICBjb25zdCBwYXJ0aWFscyA9IG5ldyBN
YXAoKTsKKyAgZm9yIChjb25zdCBkZWYgb2YgYWxsKSB7CisgICAgaWYgKGRlZi5wYXJ0aWFsKSB7
CisgICAgICBjb25zdCBhcnJheSA9IHBhcnRpYWxzLmdldChkZWYubmFtZSk7CisgICAgICBpZiAo
YXJyYXkpIHsKKyAgICAgICAgYXJyYXkucHVzaChkZWYpOworICAgICAgfSBlbHNlIHsKKyAgICAg
ICAgcGFydGlhbHMuc2V0KGRlZi5uYW1lLCBbZGVmXSk7CisgICAgICB9CisgICAgICBjb250aW51
ZTsKKyAgICB9CisgICAgaWYgKCFkZWYubmFtZSkgeworICAgICAgY29udGludWU7CisgICAgfQor
ICAgIGlmICghdW5pcXVlLmhhcyhkZWYubmFtZSkpIHsKKyAgICAgIHVuaXF1ZS5zZXQoZGVmLm5h
bWUsIGRlZik7CisgICAgfSBlbHNlIHsKKyAgICAgIGR1cGxpY2F0ZXMuYWRkKGRlZik7CisgICAg
fQorICB9CisgIHJldHVybiB7CisgICAgYWxsLAorICAgIHVuaXF1ZSwKKyAgICBwYXJ0aWFscywK
KyAgICBkdXBsaWNhdGVzLAorICAgIG1peGluTWFwOiBnZXRNaXhpbk1hcChhbGwsIHVuaXF1ZSks
CisgICAgY2FjaGU6IHsKKyAgICAgIHR5cGVkZWZJbmNsdWRlc0RpY3Rpb25hcnk6IG5ldyBXZWFr
TWFwKCkKKyAgICB9LAorICB9OworfQorCitmdW5jdGlvbiogY2hlY2tEdXBsaWNhdGVkTmFtZXMo
eyB1bmlxdWUsIGR1cGxpY2F0ZXMgfSkgeworICBmb3IgKGNvbnN0IGR1cCBvZiBkdXBsaWNhdGVz
KSB7CisgICAgY29uc3QgeyBuYW1lIH0gPSBkdXA7CisgICAgY29uc3QgbWVzc2FnZSA9IGBUaGUg
bmFtZSAiJHtuYW1lfSIgb2YgdHlwZSAiJHt1bmlxdWUuZ2V0KG5hbWUpLnR5cGV9IiB3YXMgYWxy
ZWFkeSBzZWVuYDsKKyAgICB5aWVsZCBPYmplY3QoX2Vycm9yX2pzX19XRUJQQUNLX0lNUE9SVEVE
X01PRFVMRV8wX19bInZhbGlkYXRpb25FcnJvciJdKShkdXAuc291cmNlLCBkdXAudG9rZW5zLm5h
bWUsIGR1cCwgbWVzc2FnZSk7CisgIH0KK30KKworZnVuY3Rpb24qIHZhbGlkYXRlSXRlcmFibGUo
YXN0KSB7CisgIGNvbnN0IGRlZnMgPSBncm91cERlZmluaXRpb25zKGFzdCk7CisgIGZvciAoY29u
c3QgZGVmIG9mIGRlZnMuYWxsKSB7CisgICAgaWYgKGRlZi52YWxpZGF0ZSkgeworICAgICAgeWll
bGQqIGRlZi52YWxpZGF0ZShkZWZzKTsKKyAgICB9CisgIH0KKyAgeWllbGQqIGNoZWNrRHVwbGlj
YXRlZE5hbWVzKGRlZnMpOworfQorCisvLyBSZW1vdmUgdGhpcyBvbmNlIGFsbCBvZiBvdXIgc3Vw
cG9ydCB0YXJnZXRzIGV4cG9zZSBgLmZsYXQoKWAgYnkgZGVmYXVsdAorZnVuY3Rpb24gZmxhdHRl
bihhcnJheSkgeworICBpZiAoYXJyYXkuZmxhdCkgeworICAgIHJldHVybiBhcnJheS5mbGF0KCk7
CisgIH0KKyAgcmV0dXJuIFtdLmNvbmNhdCguLi5hcnJheSk7Cit9CisKKy8qKgorICogQHBhcmFt
IHsqfSBhc3QgQVNUIG9yIGFycmF5IG9mIEFTVHMKKyAqLworZnVuY3Rpb24gdmFsaWRhdGUoYXN0
KSB7CisgIHJldHVybiBbLi4udmFsaWRhdGVJdGVyYWJsZShmbGF0dGVuKGFzdCkpXTsKK30KKwor
CisvKioqLyB9KQorLyoqKioqKi8gXSk7Cit9KTsKKy8vIyBzb3VyY2VNYXBwaW5nVVJMPXdlYmlk
bDIuanMubWFwClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvY2xpZW50cy1tYXRjaGFsbC1mcm96ZW4uaHR0cHMtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvY2xpZW50cy1tYXRjaGFsbC1mcm96ZW4uaHR0cHMtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjZlZjUyZDU1MGIzYTk4YmVlZDQwOTViNjI4Y2FlYWNiMGQxNmFjNzYK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGllbnRzLW1hdGNoYWxsLWZy
b3plbi5odHRwcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK0ZBSUwgVGVzdCBDbGll
bnRzLm1hdGNoQWxsKCkgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFs
dWU6IG9iamVjdCAiVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cyIKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvY2xpZW50cy1tYXRjaGFsbC1mcm96ZW4uaHR0cHMuaHRtbCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL2NsaWVudHMtbWF0Y2hhbGwtZnJvemVuLmh0dHBzLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZWYyN2FjM2QzNzJlNWQ0MGZiNTc2ZTJiNTkwMjAwMjZkZjhiNjZiYwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsaWVudHMtbWF0Y2hhbGwtZnJvemVuLmh0
dHBzLmh0bWwKQEAgLTAsMCArMSwxMDMgQEAKKzwhRE9DVFlQRSBodG1sPgorPHRpdGxlPlNlcnZp
Y2UgV29ya2VyOiBDbGllbnRzLm1hdGNoQWxsPC90aXRsZT4KKzxzY3JpcHQgc3JjPSIvcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGVz
dC1oZWxwZXJzLnN1Yi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgordmFyIHNjb3BlID0gJ3Jlc291
cmNlcy9jbGllbnRzLWZyYW1lLWZyZWV6ZS5odG1sJzsKK3ZhciB3aW5kb3dzID0gW107Cit2YXIg
ZXhwZWN0ZWRfd2luZG93XzEgPQorICAgIHt2aXNpYmlsaXR5U3RhdGU6ICd2aXNpYmxlJywgZm9j
dXNlZDogZmFsc2UsIGxpZmVjeWNsZVN0YXRlOiAiZnJvemVuIiwgdXJsOiBuZXcgVVJMKHNjb3Bl
ICsgJyMxJywgbG9jYXRpb24pLnRvU3RyaW5nKCksIHR5cGU6ICd3aW5kb3cnLCBmcmFtZVR5cGU6
ICd0b3AtbGV2ZWwnfTsKK3ZhciBleHBlY3RlZF93aW5kb3dfMiA9CisgICAge3Zpc2liaWxpdHlT
dGF0ZTogJ3Zpc2libGUnLCBmb2N1c2VkOiBmYWxzZSwgbGlmZWN5Y2xlU3RhdGU6ICJhY3RpdmUi
LCB1cmw6IG5ldyBVUkwoc2NvcGUgKyAnIzInLCBsb2NhdGlvbikudG9TdHJpbmcoKSwgdHlwZTog
J3dpbmRvdycsIGZyYW1lVHlwZTogJ3RvcC1sZXZlbCd9OworZnVuY3Rpb24gd2l0aF93aW5kb3co
dXJsLCBuYW1lKSB7CisgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlKSB7Cisg
ICAgdmFyIGNoaWxkID0gd2luZG93Lm9wZW4odXJsLCBuYW1lKTsKKyAgICB3aW5kb3cub25tZXNz
YWdlID0gKCkgPT4ge3Jlc29sdmUoY2hpbGQpfTsKKyAgfSk7Cit9CisKK3Byb21pc2VfdGVzdChm
dW5jdGlvbih0KSB7CisgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3Jl
Z2lzdGVyKAorICAgICAgICB0LCAncmVzb3VyY2VzL2NsaWVudHMtbWF0Y2hhbGwtd29ya2VyLmpz
Jywgc2NvcGUpCisgICAgICAudGhlbihmdW5jdGlvbihyZWdpc3RyYXRpb24pIHsKKyAgICAgICAg
ICB0LmFkZF9jbGVhbnVwKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICByZXR1cm4gc2Vydmlj
ZV93b3JrZXJfdW5yZWdpc3Rlcih0LCBzY29wZSk7CisgICAgICAgICAgICB9KTsKKworICAgICAg
ICAgIHJldHVybiB3YWl0X2Zvcl9zdGF0ZSh0LCByZWdpc3RyYXRpb24uaW5zdGFsbGluZywgJ2Fj
dGl2YXRlZCcpOworICAgICAgICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7IHJldHVybiB3
aXRoX3dpbmRvdyhzY29wZSArICcjMScsICdDaGlsZCAxJyk7IH0pCisgICAgICAudGhlbihmdW5j
dGlvbih3aW5kb3cxKSB7CisgICAgICAgICAgd2luZG93cy5wdXNoKHdpbmRvdzEpOworICAgICAg
ICAgIHJldHVybiB3aXRoX3dpbmRvdyhzY29wZSArICcjMicsICdDaGlsZCAyJyk7CisgICAgICAg
IH0pCisgICAgICAudGhlbihmdW5jdGlvbih3aW5kb3cyKSB7CisgICAgICAgICAgd2luZG93cy5w
dXNoKHdpbmRvdzIpOworICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNv
bHZlKSB7CisgICAgICAgICAgICAgIHdpbmRvdy5vbm1lc3NhZ2UgPSByZXNvbHZlOworICAgICAg
ICAgICAgICB3aW5kb3dzWzBdLnBvc3RNZXNzYWdlKCdmcmVlemUnKTsKKyAgICAgICAgICAgIH0p
OworICAgICAgICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7CisgICAgICAgICAgdmFyIGNo
YW5uZWwgPSBuZXcgTWVzc2FnZUNoYW5uZWwoKTsKKworICAgICAgICAgIHJldHVybiBuZXcgUHJv
bWlzZShmdW5jdGlvbihyZXNvbHZlKSB7CisgICAgICAgICAgICAgIGNoYW5uZWwucG9ydDEub25t
ZXNzYWdlID0gcmVzb2x2ZTsKKyAgICAgICAgICAgICAgd2luZG93c1sxXS5uYXZpZ2F0b3Iuc2Vy
dmljZVdvcmtlci5jb250cm9sbGVyLnBvc3RNZXNzYWdlKAorICAgICAgICAgICAgICAgICAge3Bv
cnQ6Y2hhbm5lbC5wb3J0MiwgaW5jbHVkZUxpZmVjeWNsZVN0YXRlOiB0cnVlfSwgW2NoYW5uZWwu
cG9ydDJdKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KQorICAgICAgLnRoZW4oZnVuY3Rp
b24oZSkgeworICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS5kYXRhLmxlbmd0aCwgMSk7CisgICAg
ICAgICAgYXNzZXJ0X29iamVjdF9lcXVhbHMoZS5kYXRhWzBdLCBleHBlY3RlZF93aW5kb3dfMik7
CisgICAgICAgIH0pCisgICAgICAudGhlbihmdW5jdGlvbigpIHsKKyAgICAgICAgICB2YXIgY2hh
bm5lbCA9IG5ldyBNZXNzYWdlQ2hhbm5lbCgpOworCisgICAgICAgICAgcmV0dXJuIG5ldyBQcm9t
aXNlKGZ1bmN0aW9uKHJlc29sdmUpIHsKKyAgICAgICAgICAgICAgY2hhbm5lbC5wb3J0MS5vbm1l
c3NhZ2UgPSByZXNvbHZlOworICAgICAgICAgICAgICB3aW5kb3dzWzFdLm5hdmlnYXRvci5zZXJ2
aWNlV29ya2VyLmNvbnRyb2xsZXIucG9zdE1lc3NhZ2UoCisgICAgICAgICAgICAgICAgICB7cG9y
dDpjaGFubmVsLnBvcnQyLCBvcHRpb25zOiB7bGlmZWN5Y2xlU3RhdGU6ICJhbGwifSwgaW5jbHVk
ZUxpZmVjeWNsZVN0YXRlOiB0cnVlfSwgW2NoYW5uZWwucG9ydDJdKTsKKyAgICAgICAgICAgIH0p
OworICAgICAgICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24oZSkgeworICAgICAgICAgIGFzc2Vy
dF9lcXVhbHMoZS5kYXRhLmxlbmd0aCwgMik7CisgICAgICAgICAgLy8gTm8gc3BlY2lmaWMgb3Jk
ZXIgaXMgcmVxdWlyZWQsIHNvIHN1cHBvcnQgaW52ZXJzaW9uLgorICAgICAgICAgIGlmIChlLmRh
dGFbMF1bM10gPT0gbmV3IFVSTChzY29wZSArICcjMicsIGxvY2F0aW9uKSkgeworICAgICAgICAg
ICAgYXNzZXJ0X29iamVjdF9lcXVhbHMoZS5kYXRhWzBdLCBleHBlY3RlZF93aW5kb3dfMik7Cisg
ICAgICAgICAgICBhc3NlcnRfb2JqZWN0X2VxdWFscyhlLmRhdGFbMV0sIGV4cGVjdGVkX3dpbmRv
d18xKTsKKyAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgYXNzZXJ0X29iamVjdF9lcXVh
bHMoZS5kYXRhWzBdLCBleHBlY3RlZF93aW5kb3dfMSk7CisgICAgICAgICAgICBhc3NlcnRfb2Jq
ZWN0X2VxdWFscyhlLmRhdGFbMV0sIGV4cGVjdGVkX3dpbmRvd18yKTsKKyAgICAgICAgICB9Cisg
ICAgICAgIH0pCisgICAgICAudGhlbihmdW5jdGlvbigpIHsKKyAgICAgICAgICB2YXIgY2hhbm5l
bCA9IG5ldyBNZXNzYWdlQ2hhbm5lbCgpOworCisgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNl
KGZ1bmN0aW9uKHJlc29sdmUpIHsKKyAgICAgICAgICAgICAgY2hhbm5lbC5wb3J0MS5vbm1lc3Nh
Z2UgPSByZXNvbHZlOworICAgICAgICAgICAgICB3aW5kb3dzWzFdLm5hdmlnYXRvci5zZXJ2aWNl
V29ya2VyLmNvbnRyb2xsZXIucG9zdE1lc3NhZ2UoCisgICAgICAgICAgICAgICAgICB7cG9ydDpj
aGFubmVsLnBvcnQyLCBvcHRpb25zOiB7bGlmZWN5Y2xlU3RhdGU6ICJmcm96ZW4ifSwgaW5jbHVk
ZUxpZmVjeWNsZVN0YXRlOiB0cnVlfSwgW2NoYW5uZWwucG9ydDJdKTsKKyAgICAgICAgICAgIH0p
OworICAgICAgICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24oZSkgeworICAgICAgICAgIGFzc2Vy
dF9lcXVhbHMoZS5kYXRhLmxlbmd0aCwgMSk7CisgICAgICAgICAgYXNzZXJ0X29iamVjdF9lcXVh
bHMoZS5kYXRhWzBdLCBleHBlY3RlZF93aW5kb3dfMSk7CisgICAgICAgIH0pCisgICAgICAudGhl
bihmdW5jdGlvbigpIHsKKyAgICAgICAgICB2YXIgY2hhbm5lbCA9IG5ldyBNZXNzYWdlQ2hhbm5l
bCgpOworCisgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUpIHsK
KyAgICAgICAgICAgICAgY2hhbm5lbC5wb3J0MS5vbm1lc3NhZ2UgPSByZXNvbHZlOworICAgICAg
ICAgICAgICB3aW5kb3dzWzFdLm5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLmNvbnRyb2xsZXIucG9z
dE1lc3NhZ2UoCisgICAgICAgICAgICAgICAgICB7cG9ydDpjaGFubmVsLnBvcnQyLCBvcHRpb25z
OiB7bGlmZWN5Y2xlU3RhdGU6ICJhY3RpdmUifSwgaW5jbHVkZUxpZmVjeWNsZVN0YXRlOiB0cnVl
fSwgW2NoYW5uZWwucG9ydDJdKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KQorICAgICAg
LnRoZW4oZnVuY3Rpb24oZSkgeworICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS5kYXRhLmxlbmd0
aCwgMSk7CisgICAgICAgICAgYXNzZXJ0X29iamVjdF9lcXVhbHMoZS5kYXRhWzBdLCBleHBlY3Rl
ZF93aW5kb3dfMik7CisgICAgICB9KTsKK30sICdUZXN0IENsaWVudHMubWF0Y2hBbGwoKScpOwor
Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWNvcnMteGhy
Lmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWNvcnMteGhyLmh0
dHBzLWV4cGVjdGVkLnR4dAppbmRleCAxMWIxNzRhMmM5MDYwMjllY2M3OWU4MWQ1ZTkxNjNjZGNh
MzZiOTA0Li5iNTZmYWU2YWU4MDYyMjQ0YjAwYmMwMjhkOTk0MDU3NzFmNTA4ZDJhIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1jb3JzLXhoci5odHRwcy1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtY29ycy14aHIuaHR0cHMtZXhwZWN0ZWQudHh0
CkBAIC0xLDQ3ICsxLDMgQEAKLUNPTlNPTEUgTUVTU0FHRTogRmV0Y2hFdmVudC5yZXNwb25kV2l0
aCByZWNlaXZlZCBhbiBlcnJvcjogdW5kZWZpbmVkCi1DT05TT0xFIE1FU1NBR0U6IFhNTEh0dHBS
ZXF1ZXN0IGNhbm5vdCBsb2FkIGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1hY2Nlc3MtY29udHJvbC5weT9yZWplY3Qu
Ci1DT05TT0xFIE1FU1NBR0U6IEZldGNoRXZlbnQucmVzcG9uZFdpdGggcmVjZWl2ZWQgYW4gZXJy
b3I6IHVuZGVmaW5lZAotQ09OU09MRSBNRVNTQUdFOiBYTUxIdHRwUmVxdWVzdCBjYW5ub3QgbG9h
ZCBodHRwczovL2xvY2FsaG9zdDo5NDQzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9y
ZXNvdXJjZXMvZmV0Y2gtYWNjZXNzLWNvbnRyb2wucHk/cmVqZWN0LgotQ09OU09MRSBNRVNTQUdF
OiBGZXRjaEV2ZW50LnJlc3BvbmRXaXRoIHJlY2VpdmVkIGFuIGVycm9yOiB1bmRlZmluZWQKLUNP
TlNPTEUgTUVTU0FHRTogWE1MSHR0cFJlcXVlc3QgY2Fubm90IGxvYWQgaHR0cHM6Ly8xMjcuMC4w
LjE6OTQ0My9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWFj
Y2Vzcy1jb250cm9sLnB5P3JlamVjdC4KLUNPTlNPTEUgTUVTU0FHRTogRmV0Y2hFdmVudC5yZXNw
b25kV2l0aCByZWNlaXZlZCBhbiBlcnJvcjogdW5kZWZpbmVkCi1DT05TT0xFIE1FU1NBR0U6IFhN
TEh0dHBSZXF1ZXN0IGNhbm5vdCBsb2FkIGh0dHBzOi8vMTI3LjAuMC4xOjk0NDMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1hY2Nlc3MtY29udHJvbC5weT9y
ZWplY3QuCi1DT05TT0xFIE1FU1NBR0U6IE9yaWdpbiBodHRwczovL2xvY2FsaG9zdDo5NDQzIGlz
IG5vdCBhbGxvd2VkIGJ5IEFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbi4KLUNPTlNPTEUgTUVT
U0FHRTogWE1MSHR0cFJlcXVlc3QgY2Fubm90IGxvYWQgaHR0cHM6Ly8xMjcuMC4wLjE6OTQ0My9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWFjY2Vzcy1jb250
cm9sLnB5P3Rocm93IGR1ZSB0byBhY2Nlc3MgY29udHJvbCBjaGVja3MuCi1DT05TT0xFIE1FU1NB
R0U6IE9yaWdpbiBodHRwczovL2xvY2FsaG9zdDo5NDQzIGlzIG5vdCBhbGxvd2VkIGJ5IEFjY2Vz
cy1Db250cm9sLUFsbG93LU9yaWdpbi4KLUNPTlNPTEUgTUVTU0FHRTogWE1MSHR0cFJlcXVlc3Qg
Y2Fubm90IGxvYWQgaHR0cHM6Ly8xMjcuMC4wLjE6OTQ0My9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWFjY2Vzcy1jb250cm9sLnB5P3Rocm93IGR1ZSB0byBh
Y2Nlc3MgY29udHJvbCBjaGVja3MuCi1DT05TT0xFIE1FU1NBR0U6IEZldGNoRXZlbnQucmVzcG9u
ZFdpdGggcmVjZWl2ZWQgYW4gZXJyb3I6IFJldHVybmVkIHJlc3BvbnNlIGlzIG51bGwuCi1DT05T
T0xFIE1FU1NBR0U6IFhNTEh0dHBSZXF1ZXN0IGNhbm5vdCBsb2FkIGh0dHBzOi8vbG9jYWxob3N0
Ojk0NDMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1hY2Nl
c3MtY29udHJvbC5weT9yZXNvbHZlLW51bGwuCi1DT05TT0xFIE1FU1NBR0U6IEZldGNoRXZlbnQu
cmVzcG9uZFdpdGggcmVjZWl2ZWQgYW4gZXJyb3I6IFJldHVybmVkIHJlc3BvbnNlIGlzIG51bGwu
Ci1DT05TT0xFIE1FU1NBR0U6IFhNTEh0dHBSZXF1ZXN0IGNhbm5vdCBsb2FkIGh0dHBzOi8vbG9j
YWxob3N0Ojk0NDMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRj
aC1hY2Nlc3MtY29udHJvbC5weT9yZXNvbHZlLW51bGwuCi1DT05TT0xFIE1FU1NBR0U6IEZldGNo
RXZlbnQucmVzcG9uZFdpdGggcmVjZWl2ZWQgYW4gZXJyb3I6IFJldHVybmVkIHJlc3BvbnNlIGlz
IG51bGwuCi1DT05TT0xFIE1FU1NBR0U6IFhNTEh0dHBSZXF1ZXN0IGNhbm5vdCBsb2FkIGh0dHBz
Oi8vMTI3LjAuMC4xOjk0NDMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNl
cy9mZXRjaC1hY2Nlc3MtY29udHJvbC5weT9yZXNvbHZlLW51bGwuCi1DT05TT0xFIE1FU1NBR0U6
IEZldGNoRXZlbnQucmVzcG9uZFdpdGggcmVjZWl2ZWQgYW4gZXJyb3I6IFJldHVybmVkIHJlc3Bv
bnNlIGlzIG51bGwuCi1DT05TT0xFIE1FU1NBR0U6IFhNTEh0dHBSZXF1ZXN0IGNhbm5vdCBsb2Fk
IGh0dHBzOi8vMTI3LjAuMC4xOjk0NDMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jl
c291cmNlcy9mZXRjaC1hY2Nlc3MtY29udHJvbC5weT9yZXNvbHZlLW51bGwuCi1DT05TT0xFIE1F
U1NBR0U6IE9yaWdpbiBodHRwczovL2xvY2FsaG9zdDo5NDQzIGlzIG5vdCBhbGxvd2VkIGJ5IEFj
Y2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbi4KLUNPTlNPTEUgTUVTU0FHRTogWE1MSHR0cFJlcXVl
c3QgY2Fubm90IGxvYWQgaHR0cHM6Ly8xMjcuMC4wLjE6OTQ0My9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWFjY2Vzcy1jb250cm9sLnB5P2lnbm9yZSBkdWUg
dG8gYWNjZXNzIGNvbnRyb2wgY2hlY2tzLgotQ09OU09MRSBNRVNTQUdFOiBPcmlnaW4gaHR0cHM6
Ly9sb2NhbGhvc3Q6OTQ0MyBpcyBub3QgYWxsb3dlZCBieSBBY2Nlc3MtQ29udHJvbC1BbGxvdy1P
cmlnaW4uCi1DT05TT0xFIE1FU1NBR0U6IFhNTEh0dHBSZXF1ZXN0IGNhbm5vdCBsb2FkIGh0dHBz
Oi8vMTI3LjAuMC4xOjk0NDMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNl
cy9mZXRjaC1hY2Nlc3MtY29udHJvbC5weT9pZ25vcmUgZHVlIHRvIGFjY2VzcyBjb250cm9sIGNo
ZWNrcy4KLUNPTlNPTEUgTUVTU0FHRTogQ3JlZGVudGlhbHMgZmxhZyBpcyB0cnVlLCBidXQgQWNj
ZXNzLUNvbnRyb2wtQWxsb3ctQ3JlZGVudGlhbHMgaXMgbm90ICJ0cnVlIi4KLUNPTlNPTEUgTUVT
U0FHRTogWE1MSHR0cFJlcXVlc3QgY2Fubm90IGxvYWQgaHR0cHM6Ly8xMjcuMC4wLjE6OTQ0My9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWFjY2Vzcy1jb250
cm9sLnB5P0FDQU9yaWdpbj1odHRwczovL2xvY2FsaG9zdDo5NDQzJmlnbm9yZSBkdWUgdG8gYWNj
ZXNzIGNvbnRyb2wgY2hlY2tzLgotQ09OU09MRSBNRVNTQUdFOiBPcmlnaW4gaHR0cHM6Ly9sb2Nh
bGhvc3Q6OTQ0MyBpcyBub3QgYWxsb3dlZCBieSBBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4u
Ci1DT05TT0xFIE1FU1NBR0U6IFhNTEh0dHBSZXF1ZXN0IGNhbm5vdCBsb2FkIGh0dHBzOi8vMTI3
LjAuMC4xOjk0NDMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRj
aC1hY2Nlc3MtY29udHJvbC5weT9BdXRoJmlnbm9yZSBkdWUgdG8gYWNjZXNzIGNvbnRyb2wgY2hl
Y2tzLgotQ09OU09MRSBNRVNTQUdFOiBPcmlnaW4gaHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0MyBpcyBu
b3QgYWxsb3dlZCBieSBBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4uCi1DT05TT0xFIE1FU1NB
R0U6IFhNTEh0dHBSZXF1ZXN0IGNhbm5vdCBsb2FkIGh0dHBzOi8vMTI3LjAuMC4xOjk0NDMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1hY2Nlc3MtY29udHJv
bC5weT9BdXRoJmlnbm9yZSBkdWUgdG8gYWNjZXNzIGNvbnRyb2wgY2hlY2tzLgotQ09OU09MRSBN
RVNTQUdFOiBDcmVkZW50aWFscyBmbGFnIGlzIHRydWUsIGJ1dCBBY2Nlc3MtQ29udHJvbC1BbGxv
dy1DcmVkZW50aWFscyBpcyBub3QgInRydWUiLgotQ09OU09MRSBNRVNTQUdFOiBYTUxIdHRwUmVx
dWVzdCBjYW5ub3QgbG9hZCBodHRwczovLzEyNy4wLjAuMTo5NDQzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtYWNjZXNzLWNvbnRyb2wucHk/QXV0aCZBQ0FP
cmlnaW49aHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0MyZpZ25vcmUgZHVlIHRvIGFjY2VzcyBjb250cm9s
IGNoZWNrcy4KLUNPTlNPTEUgTUVTU0FHRTogUmVzcG9uc2Ugc2VydmVkIGJ5IHNlcnZpY2Ugd29y
a2VyIGlzIG9wYXF1ZQotQ09OU09MRSBNRVNTQUdFOiBYTUxIdHRwUmVxdWVzdCBjYW5ub3QgbG9h
ZCBodHRwczovLzEyNy4wLjAuMTo5NDQzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9y
ZXNvdXJjZXMvZmV0Y2gtYWNjZXNzLWNvbnRyb2wucHkgZHVlIHRvIGFjY2VzcyBjb250cm9sIGNo
ZWNrcy4KLUNPTlNPTEUgTUVTU0FHRTogUmVzcG9uc2Ugc2VydmVkIGJ5IHNlcnZpY2Ugd29ya2Vy
IGlzIG9wYXF1ZQotQ09OU09MRSBNRVNTQUdFOiBYTUxIdHRwUmVxdWVzdCBjYW5ub3QgbG9hZCBo
dHRwczovLzEyNy4wLjAuMTo5NDQzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNv
dXJjZXMvZmV0Y2gtYWNjZXNzLWNvbnRyb2wucHkgZHVlIHRvIGFjY2VzcyBjb250cm9sIGNoZWNr
cy4KLUNPTlNPTEUgTUVTU0FHRTogUmVzcG9uc2Ugc2VydmVkIGJ5IHNlcnZpY2Ugd29ya2VyIGlz
IG9wYXF1ZQotQ09OU09MRSBNRVNTQUdFOiBYTUxIdHRwUmVxdWVzdCBjYW5ub3QgbG9hZCBodHRw
czovLzEyNy4wLjAuMTo5NDQzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJj
ZXMvZmV0Y2gtYWNjZXNzLWNvbnRyb2wucHkgZHVlIHRvIGFjY2VzcyBjb250cm9sIGNoZWNrcy4K
LUNPTlNPTEUgTUVTU0FHRTogUmVzcG9uc2Ugc2VydmVkIGJ5IHNlcnZpY2Ugd29ya2VyIGlzIG9w
YXF1ZQotQ09OU09MRSBNRVNTQUdFOiBYTUxIdHRwUmVxdWVzdCBjYW5ub3QgbG9hZCBodHRwczov
LzEyNy4wLjAuMTo5NDQzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMv
ZmV0Y2gtYWNjZXNzLWNvbnRyb2wucHkgZHVlIHRvIGFjY2VzcyBjb250cm9sIGNoZWNrcy4KLUNP
TlNPTEUgTUVTU0FHRTogRmV0Y2hFdmVudC5yZXNwb25kV2l0aCByZWNlaXZlZCBhbiBlcnJvcjog
VHlwZUVycm9yOiBDcmVkZW50aWFscyBmbGFnIGlzIHRydWUsIGJ1dCBBY2Nlc3MtQ29udHJvbC1B
bGxvdy1DcmVkZW50aWFscyBpcyBub3QgInRydWUiLgotQ09OU09MRSBNRVNTQUdFOiBYTUxIdHRw
UmVxdWVzdCBjYW5ub3QgbG9hZCBodHRwczovL2xvY2FsaG9zdDo5NDQzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtYWNjZXNzLWNvbnRyb2wucHk/bW9kZT1j
b3JzJnVybD1odHRwcyUzQSUyRiUyRjEyNy4wLjAuMSUzQTk0NDMlMkZzZXJ2aWNlLXdvcmtlcnMl
MkZzZXJ2aWNlLXdvcmtlciUyRnJlc291cmNlcyUyRmZldGNoLWFjY2Vzcy1jb250cm9sLnB5JTNG
QUNBT3JpZ2luJTNEaHR0cHMlM0ElMkYlMkZsb2NhbGhvc3QlM0E5NDQzLgotQ09OU09MRSBNRVNT
QUdFOiBGZXRjaEV2ZW50LnJlc3BvbmRXaXRoIHJlY2VpdmVkIGFuIGVycm9yOiBUeXBlRXJyb3I6
IENyZWRlbnRpYWxzIGZsYWcgaXMgdHJ1ZSwgYnV0IEFjY2Vzcy1Db250cm9sLUFsbG93LUNyZWRl
bnRpYWxzIGlzIG5vdCAidHJ1ZSIuCi1DT05TT0xFIE1FU1NBR0U6IFhNTEh0dHBSZXF1ZXN0IGNh
bm5vdCBsb2FkIGh0dHBzOi8vMTI3LjAuMC4xOjk0NDMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL3Jlc291cmNlcy9mZXRjaC1hY2Nlc3MtY29udHJvbC5weT9tb2RlPWNvcnMmdXJsPWh0
dHBzJTNBJTJGJTJGMTI3LjAuMC4xJTNBOTQ0MyUyRnNlcnZpY2Utd29ya2VycyUyRnNlcnZpY2Ut
d29ya2VyJTJGcmVzb3VyY2VzJTJGZmV0Y2gtYWNjZXNzLWNvbnRyb2wucHklM0ZBQ0FPcmlnaW4l
M0RodHRwcyUzQSUyRiUyRmxvY2FsaG9zdCUzQTk0NDMuCiAKIFBBU1MgVmVyaWZ5IENPUlMgWEhS
IG9mIGZldGNoKCkgaW4gYSBTZXJ2aWNlIFdvcmtlciAKIFBBU1MgdGVzdCAxOiBodHRwczovL2xv
Y2FsaG9zdDo5NDQzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0
Y2gtYWNjZXNzLWNvbnRyb2wucHk/cmVqZWN0IHdpdGggY3JlZGVudGlhbHMgZmFsc2UgbXVzdCBi
ZSBGQUlMIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtZXZlbnQtd2l0aGlu
LXN3Lmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1ldmVudC13aXRoaW4tc3cu
aHR0cHMuaHRtbAppbmRleCBjNzNhYmM0Yzk4YzA4NzFlMzAyMWU2NjA1MzExYmE0YjFkN2E4ODli
Li44YTU2N2ZkN2E5M2Y4NTUyNDEyY2ZmZjY1Nzc4OWM1Mzc1ZWJhOTcxIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1ldmVudC13aXRoaW4tc3cuaHR0cHMuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1ldmVudC13aXRoaW4tc3cuaHR0cHMuaHRtbApAQCAtMSw3
OSArMSw1MyBAQAogPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50
PSJsb25nIj4KIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Njcmlw
dD4KIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSIvY29tbW9uL2dldC1ob3N0LWluZm8uc3ViLmpzIj48L3NjcmlwdD4K
IDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGVzdC1oZWxwZXJzLnN1Yi5qcyI+PC9zY3JpcHQ+Ci08
Ym9keT4KKwogPHNjcmlwdD4KIGNvbnN0IHdvcmtlciA9ICdyZXNvdXJjZXMvZmV0Y2gtZXZlbnQt
d2l0aGluLXN3LXdvcmtlci5qcyc7CiAKLWZ1bmN0aW9uIHJlc2V0KCkgewotICBmb3IgKGNvbnN0
IGlmcmFtZSBvZiBbLi4uZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLnRlc3QtaWZyYW1lJyld
KSB7Ci0gICAgaWZyYW1lLnJlbW92ZSgpOwotICB9Ci0gIHJldHVybiBuYXZpZ2F0b3Iuc2Vydmlj
ZVdvcmtlci5nZXRSZWdpc3RyYXRpb25zKCkudGhlbihyZWdpc3RyYXRpb25zID0+IHsKLSAgICBy
ZXR1cm4gUHJvbWlzZS5hbGwocmVnaXN0cmF0aW9ucy5tYXAociA9PiByLnVucmVnaXN0ZXIoKSkp
OwotICB9KS50aGVuKCgpID0+IGNhY2hlcy5rZXlzKCkpLnRoZW4oY2FjaGVLZXlzID0+IHsKLSAg
ICByZXR1cm4gUHJvbWlzZS5hbGwoY2FjaGVLZXlzLm1hcChjID0+IGNhY2hlcy5kZWxldGUoYykp
KTsKLSAgfSk7Cithc3luYyBmdW5jdGlvbiByZWdpc3RlclN3QW5kT3BlbkZyYW1lKHQpIHsKKyAg
Y29uc3QgcmVnaXN0cmF0aW9uID0gYXdhaXQgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0
ZXIoCisgICAgICB3b3JrZXIsIHsgc2NvcGU6ICdyZXNvdXJjZXMvJyB9KTsKKyAgdC5hZGRfY2xl
YW51cCgoKSA9PiByZWdpc3RyYXRpb24udW5yZWdpc3RlcigpKTsKKyAgYXdhaXQgd2FpdF9mb3Jf
c3RhdGUodCwgcmVnaXN0cmF0aW9uLmluc3RhbGxpbmcsICdhY3RpdmF0ZWQnKTsKKworICBjb25z
dCBmcmFtZSA9IGF3YWl0IHdpdGhfaWZyYW1lKCdyZXNvdXJjZXMvc2ltcGxlLmh0bWwnKTsKKyAg
dC5hZGRfY2xlYW51cCgoKSA9PiBmcmFtZS5yZW1vdmUoKSk7CisgIHJldHVybiBmcmFtZTsKIH0K
IAotYWRkX2NvbXBsZXRpb25fY2FsbGJhY2socmVzZXQpOworYXN5bmMgZnVuY3Rpb24gZGVsZXRl
Q2FzaGVzKCkgeworICBjb25zdCBjYWNoZUtleXMgPSBhd2FpdCBjYWNoZXMua2V5cygpOworICBh
d2FpdCBQcm9taXNlLmFsbChjYWNoZUtleXMubWFwKGMgPT4gY2FjaGVzLmRlbGV0ZShjKSkpOwor
fQogCi1mdW5jdGlvbiByZWdSZWFkeShyZWcpIHsKLSAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNv
bHZlLCByZWplY3QpID0+IHsKLSAgICBpZiAocmVnLmFjdGl2ZSkgewotICAgICAgcmVzb2x2ZSgp
OwotICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBjb25zdCBuZXh0V29ya2VyID0gcmVnLndhaXRp
bmcgfHwgcmVnLmluc3RhbGxpbmc7Citwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIHQuYWRk
X2NsZWFudXAoZGVsZXRlQ2FzaGVzKTsKIAotICAgIG5leHRXb3JrZXIuYWRkRXZlbnRMaXN0ZW5l
cignc3RhdGVjaGFuZ2UnLCAoKSA9PiB7Ci0gICAgICBpZiAobmV4dFdvcmtlci5zdGF0ZSA9PSAn
cmVkdW5kYW50JykgewotICAgICAgICByZWplY3QoRXJyb3IoYFNlcnZpY2Ugd29ya2VyIGZhaWxl
ZCB0byBpbnN0YWxsYCkpOwotICAgICAgICByZXR1cm47Ci0gICAgICB9Ci0gICAgICBpZiAobmV4
dFdvcmtlci5zdGF0ZSA9PSAnYWN0aXZhdGVkJykgewotICAgICAgICByZXNvbHZlKCk7Ci0gICAg
ICB9Ci0gICAgfSk7Ci0gIH0pOwotfQorICBjb25zdCBpZnJhbWUgPSBhd2FpdCByZWdpc3RlclN3
QW5kT3BlbkZyYW1lKHQpOworICBjb25zdCBmZXRjaFRleHQgPQorICAgICAgYXdhaXQgaWZyYW1l
LmNvbnRlbnRXaW5kb3cuZmV0Y2goJ2R1bW15LnR4dCcpLnRoZW4ociA9PiByLnRleHQoKSk7CiAK
LWZ1bmN0aW9uIHJlZ2lzdGVyU3dBbmRPcGVuRnJhbWUoKSB7Ci0gIHJldHVybiByZXNldCgpLnRo
ZW4oKCkgPT4gbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIod29ya2VyLCB7IHNjb3Bl
OiAncmVzb3VyY2VzLycgfSkpCi0gICAgLnRoZW4ocmVnID0+IHJlZ1JlYWR5KHJlZykpCi0gICAg
LnRoZW4oKCkgPT4gd2l0aF9pZnJhbWUoJ3Jlc291cmNlcy9zaW1wbGUuaHRtbCcpKTsKLX0KKyAg
Y29uc3QgY2FjaGUgPSBhd2FpdCBpZnJhbWUuY29udGVudFdpbmRvdy5jYWNoZXMub3BlbigndGVz
dCcpOworICBhd2FpdCBjYWNoZS5hZGQoJ2R1bW15LnR4dCcpOwogCi1wcm9taXNlX3Rlc3QoKCkg
PT4gewotICByZXR1cm4gcmVnaXN0ZXJTd0FuZE9wZW5GcmFtZSgpLnRoZW4oaWZyYW1lID0+IHsK
LSAgICByZXR1cm4gUHJvbWlzZS5hbGwoWwotICAgICAgaWZyYW1lLmNvbnRlbnRXaW5kb3cuZmV0
Y2goJ2R1bW15LnR4dCcpLnRoZW4ociA9PiByLnRleHQoKSksCi0gICAgICBpZnJhbWUuY29udGVu
dFdpbmRvdy5jYWNoZXMub3BlbigndGVzdCcpCi0gICAgICAgIC50aGVuKGNhY2hlID0+Ci0gICAg
ICAgICAgY2FjaGUuYWRkKCdkdW1teS50eHQnKS50aGVuKCgpID0+IGNhY2hlLm1hdGNoKCdkdW1t
eS50eHQnKSkKLSAgICAgICAgKS50aGVuKHJlc3BvbnNlID0+IHsKLSAgICAgICAgICBpZiAoIXJl
c3BvbnNlKSByZXR1cm4gJ2NhY2hlIG1hdGNoIGZhaWxlZCc7Ci0gICAgICAgICAgcmV0dXJuIHJl
c3BvbnNlLnRleHQoKTsKLSAgICAgICAgfSkKLSAgICBdKQotICB9KS50aGVuKChbZmV0Y2hUZXh0
LCBjYWNoZVRleHRdKSA9PiB7Ci0gICAgYXNzZXJ0X2VxdWFscyhmZXRjaFRleHQsICdpbnRlcmNl
cHRlZCcsICdmZXRjaCBpbnRlcmNlcHRlZCcpOwotICAgIGFzc2VydF9lcXVhbHMoY2FjaGVUZXh0
LCAnaW50ZXJjZXB0ZWQnLCAnY2FjaGUuYWRkIGludGVyY2VwdGVkJyk7Ci0gIH0pOworICBjb25z
dCByZXNwb25zZSA9IGF3YWl0IGNhY2hlLm1hdGNoKCdkdW1teS50eHQnKTsKKyAgY29uc3QgY2Fj
aGVUZXh0ID0gYXdhaXQgKHJlc3BvbnNlID8gcmVzcG9uc2UudGV4dCgpIDogJ2NhY2hlIG1hdGNo
IGZhaWxlZCcpOworICBhc3NlcnRfZXF1YWxzKGZldGNoVGV4dCwgJ2ludGVyY2VwdGVkJywgJ2Zl
dGNoIGludGVyY2VwdGVkJyk7CisgIGFzc2VydF9lcXVhbHMoY2FjaGVUZXh0LCAnaW50ZXJjZXB0
ZWQnLCAnY2FjaGUuYWRkIGludGVyY2VwdGVkJyk7CiB9LCAnU2VydmljZSB3b3JrZXIgaW50ZXJj
ZXB0cyByZXF1ZXN0cyBmcm9tIHdpbmRvdycpOwogCi1wcm9taXNlX3Rlc3QoKCkgPT4gewotICBy
ZXR1cm4gcmVnaXN0ZXJTd0FuZE9wZW5GcmFtZSgpLnRoZW4oaWZyYW1lID0+IHsKLSAgICByZXR1
cm4gUHJvbWlzZS5hbGwoWwotICAgICAgaWZyYW1lLmNvbnRlbnRXaW5kb3cuZmV0Y2goJ2R1bW15
LnR4dC1pbm5lci1mZXRjaCcpLnRoZW4ociA9PiByLnRleHQoKSksCi0gICAgICBpZnJhbWUuY29u
dGVudFdpbmRvdy5mZXRjaCgnZHVtbXkudHh0LWlubmVyLWNhY2hlJykudGhlbihyID0+IHIudGV4
dCgpKQotICAgIF0pCi0gIH0pLnRoZW4oKFtmZXRjaFRleHQsIGNhY2hlVGV4dF0pID0+IHsKLSAg
ICBhc3NlcnRfZXF1YWxzKGZldGNoVGV4dCwgJ0hlbGxvIHdvcmxkXG4nLCAnZmV0Y2ggd2l0aGlu
IFNXIG5vdCBpbnRlcmNlcHRlZCcpOwotICAgIGFzc2VydF9lcXVhbHMoY2FjaGVUZXh0LCAnSGVs
bG8gd29ybGRcbicsICdjYWNoZS5hZGQgd2l0aGluIFNXIG5vdCBpbnRlcmNlcHRlZCcpOwotICB9
KTsKLX0sIGBTZXJ2aWNlIHdvcmtlciBkb2VzIG5vdCBpbnRlcmNlcHQgZmV0Y2gvY2FjaGUgcmVx
dWVzdHMgd2l0aGluIHNlcnZpY2Ugd29ya2VyYCk7Citwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7
CisgIGNvbnN0IGlmcmFtZSA9IGF3YWl0IHJlZ2lzdGVyU3dBbmRPcGVuRnJhbWUodCk7CisgIGNv
bnN0IFtmZXRjaFRleHQsIGNhY2hlVGV4dF0gPSBhd2FpdCBQcm9taXNlLmFsbChbCisgICAgaWZy
YW1lLmNvbnRlbnRXaW5kb3cuZmV0Y2goJ2R1bW15LnR4dC1pbm5lci1mZXRjaCcpLnRoZW4ociA9
PiByLnRleHQoKSksCisgICAgaWZyYW1lLmNvbnRlbnRXaW5kb3cuZmV0Y2goJ2R1bW15LnR4dC1p
bm5lci1jYWNoZScpLnRoZW4ociA9PiByLnRleHQoKSkKKyAgXSk7CisgIGFzc2VydF9lcXVhbHMo
ZmV0Y2hUZXh0LCAnSGVsbG8gd29ybGRcbicsICdmZXRjaCB3aXRoaW4gU1cgbm90IGludGVyY2Vw
dGVkJyk7CisgIGFzc2VydF9lcXVhbHMoY2FjaGVUZXh0LCAnSGVsbG8gd29ybGRcbicsCisgICAg
ICAgICAgICAgICAgJ2NhY2hlLmFkZCB3aXRoaW4gU1cgbm90IGludGVyY2VwdGVkJyk7Cit9LCAn
U2VydmljZSB3b3JrZXIgZG9lcyBub3QgaW50ZXJjZXB0IGZldGNoL2NhY2hlIHJlcXVlc3RzIHdp
dGhpbiBzZXJ2aWNlICcgKworICAgJ3dvcmtlcicpOwogPC9zY3JpcHQ+Ci08L2JvZHk+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9nZXRyZWdpc3RyYXRpb25zLmh0dHBzLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2dldHJlZ2lzdHJhdGlvbnMuaHR0cHMtZXhwZWN0ZWQu
dHh0CmluZGV4IGY0YjUzNDBiZDdlNThkZWU5MzY4MmZhNzExNmUzZjJmZDlmOWE1ZDcuLmEzZTU3
N2I0ZTMzODQ2MmFkMWQ3ZDdiZTE2NjI3NDg5YTQzYmUwZGEgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL2dldHJlZ2lzdHJhdGlvbnMuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL2dldHJlZ2lzdHJhdGlvbnMuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0xLDQg
KzEsNSBAQAogCisKIFBBU1MgcmVnaXN0cmF0aW9ucyBhcmUgbm90IHJldHVybmVkIGZvbGxvd2lu
ZyB1bnJlZ2lzdGVyIAogUEFTUyBSZWdpc3RlciB0aGVuIGdldFJlZ2lzdHJhdGlvbnMgCiBQQVNT
IFJlZ2lzdGVyIG11bHRpcGxlIHRpbWVzIHRoZW4gZ2V0UmVnaXN0cmF0aW9ucyAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL2dldHJlZ2lzdHJhdGlvbnMuaHR0cHMuaHRtbCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL2dldHJlZ2lzdHJhdGlvbnMuaHR0cHMuaHRtbAppbmRleCAxMWRhMjcwMzZk
MDkyYzJmMmM2ZDU4ZGY1NzZiMjllOWJmYjk5NTM3Li4zZTQ4ZDVmZTM2MThiMzY3MTNkNzI0Yjcx
ZTQwMjZlYTI0NTUzYmQ0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9nZXRyZWdpc3Ry
YXRpb25zLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZ2V0cmVnaXN0cmF0aW9u
cy5odHRwcy5odG1sCkBAIC04LDE3OCArOCwxMjIgQEAKIC8vIFB1cmdlIHRoZSBleGlzdGluZyBy
ZWdpc3RyYXRpb25zIGZvciB0aGUgb3JpZ2luLgogLy8gZ2V0UmVnaXN0cmF0aW9ucygpIGlzIHVz
ZWQgaW4gb3JkZXIgdG8gYXZvaWQgYWRkaW5nIGFkZGl0aW9uYWwgY29tcGxleGl0eQogLy8gZS5n
LiBhZGRpbmcgYW4gaW50ZXJuYWwgZnVuY3Rpb24uCi1wcm9taXNlX3Rlc3QoZnVuY3Rpb24oKSB7
Ci0gICAgcmV0dXJuIG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLmdldFJlZ2lzdHJhdGlvbnMoKQot
ICAgICAgLnRoZW4oZnVuY3Rpb24ocmVnaXN0cmF0aW9ucykgewotICAgICAgICAgIHJldHVybiBy
ZWdpc3RyYXRpb25zLnJlZHVjZShmdW5jdGlvbihzZXF1ZW5jZSwgcmVnaXN0cmF0aW9uKSB7Ci0g
ICAgICAgICAgICAgIHJldHVybiBzZXF1ZW5jZS50aGVuKGZ1bmN0aW9uKCkgewotICAgICAgICAg
ICAgICAgICAgcmV0dXJuIHJlZ2lzdHJhdGlvbi51bnJlZ2lzdGVyKCk7Ci0gICAgICAgICAgICAg
ICAgfSk7Ci0gICAgICAgICAgICB9LCBQcm9taXNlLnJlc29sdmUoKSk7Ci0gICAgICAgIH0pCi0g
ICAgICAudGhlbihmdW5jdGlvbigpIHsKLSAgICAgICAgICByZXR1cm4gbmF2aWdhdG9yLnNlcnZp
Y2VXb3JrZXIuZ2V0UmVnaXN0cmF0aW9ucygpOwotICAgICAgICB9KQotICAgICAgLnRoZW4oZnVu
Y3Rpb24odmFsdWUpIHsKLSAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKAotICAgICAgICAg
ICAgdmFsdWUsCi0gICAgICAgICAgICBbXSwKLSAgICAgICAgICAgICdnZXRSZWdpc3RyYXRpb25z
IHNob3VsZCByZXNvbHZlIHdpdGggYW4gZW1wdHkgYXJyYXkuJyk7Ci0gICAgICAgIH0pOworcHJv
bWlzZV90ZXN0KGFzeW5jICgpID0+IHsKKyAgY29uc3QgcmVnaXN0cmF0aW9ucyA9IGF3YWl0IG5h
dmlnYXRvci5zZXJ2aWNlV29ya2VyLmdldFJlZ2lzdHJhdGlvbnMoKTsKKyAgYXdhaXQgUHJvbWlz
ZS5hbGwocmVnaXN0cmF0aW9ucy5tYXAociA9PiByLnVucmVnaXN0ZXIoKSkpOworICBjb25zdCB2
YWx1ZSA9IGF3YWl0IG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLmdldFJlZ2lzdHJhdGlvbnMoKTsK
KyAgYXNzZXJ0X2FycmF5X2VxdWFscygKKyAgICAgIHZhbHVlLCBbXSwKKyAgICAgICdnZXRSZWdp
c3RyYXRpb25zIHNob3VsZCByZXNvbHZlIHdpdGggYW4gZW1wdHkgYXJyYXkuJyk7CiB9LCAncmVn
aXN0cmF0aW9ucyBhcmUgbm90IHJldHVybmVkIGZvbGxvd2luZyB1bnJlZ2lzdGVyJyk7CiAKLXBy
b21pc2VfdGVzdChmdW5jdGlvbih0KSB7Ci0gICAgdmFyIHNjb3BlID0gJ3Jlc291cmNlcy9zY29w
ZS9nZXRyZWdpc3RyYXRpb25zL25vcm1hbCc7Ci0gICAgdmFyIHNjcmlwdCA9ICdyZXNvdXJjZXMv
ZW1wdHktd29ya2VyLmpzJzsKLSAgICB2YXIgcmVnaXN0cmF0aW9ucyA9IFtdOwotICAgIHJldHVy
biBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCBzY3JpcHQsIHNjb3Bl
KQotICAgICAgLnRoZW4oZnVuY3Rpb24ocikgewotICAgICAgICAgIHJlZ2lzdHJhdGlvbnMucHVz
aChyKTsKLSAgICAgICAgICByZXR1cm4gbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuZ2V0UmVnaXN0
cmF0aW9ucygpOwotICAgICAgICB9KQotICAgICAgLnRoZW4oZnVuY3Rpb24odmFsdWUpIHsKLSAg
ICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKAotICAgICAgICAgICAgdmFsdWUsCi0gICAgICAg
ICAgICByZWdpc3RyYXRpb25zLAotICAgICAgICAgICAgJ2dldFJlZ2lzdHJhdGlvbnMgc2hvdWxk
IHJlc29sdmUgd2l0aCBhcnJheSBvZiByZWdpc3RyYXRpb25zLicpOwotICAgICAgICAgIHJldHVy
biBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyKHQsIHNjb3BlKTsKLSAgICAgICAgfSk7Ci0gIH0s
ICdSZWdpc3RlciB0aGVuIGdldFJlZ2lzdHJhdGlvbnMnKTsKK3Byb21pc2VfdGVzdChhc3luYyB0
ID0+IHsKKyAgY29uc3Qgc2NvcGUgPSAncmVzb3VyY2VzL3Njb3BlL2dldHJlZ2lzdHJhdGlvbnMv
bm9ybWFsJzsKKyAgY29uc3Qgc2NyaXB0ID0gJ3Jlc291cmNlcy9lbXB0eS13b3JrZXIuanMnOwor
ICBjb25zdCByZWdpc3RyYXRpb25zID0gWworICAgICAgYXdhaXQgc2VydmljZV93b3JrZXJfdW5y
ZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgc2NyaXB0LCBzY29wZSldOworICB0LmFkZF9jbGVhbnVw
KCgpID0+IHJlZ2lzdHJhdGlvbnNbMF0udW5yZWdpc3RlcigpKTsKKyAgY29uc3QgdmFsdWUgPSBh
d2FpdCBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5nZXRSZWdpc3RyYXRpb25zKCk7CisgIGFzc2Vy
dF9hcnJheV9lcXVhbHModmFsdWUsIHJlZ2lzdHJhdGlvbnMsCisgICAgICAnZ2V0UmVnaXN0cmF0
aW9ucyBzaG91bGQgcmVzb2x2ZSB3aXRoIGFuIGFycmF5IG9mIHJlZ2lzdHJhdGlvbnMnKTsKK30s
ICdSZWdpc3RlciB0aGVuIGdldFJlZ2lzdHJhdGlvbnMnKTsKIAotcHJvbWlzZV90ZXN0KGZ1bmN0
aW9uKHQpIHsKLSAgICB2YXIgc2NvcGUxID0gJ3Jlc291cmNlcy9zY29wZS9nZXRyZWdpc3RyYXRp
b25zL3Njb3BlMSc7Ci0gICAgdmFyIHNjb3BlMiA9ICdyZXNvdXJjZXMvc2NvcGUvZ2V0cmVnaXN0
cmF0aW9ucy9zY29wZTInOwotICAgIHZhciBzY3JpcHQgPSAncmVzb3VyY2VzL2VtcHR5LXdvcmtl
ci5qcyc7Ci0gICAgdmFyIHJlZ2lzdHJhdGlvbnMgPSBbXTsKLSAgICByZXR1cm4gc2VydmljZV93
b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgc2NyaXB0LCBzY29wZTEpCi0gICAgICAu
dGhlbihmdW5jdGlvbihyKSB7Ci0gICAgICAgICAgcmVnaXN0cmF0aW9ucy5wdXNoKHIpOwotICAg
ICAgICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCBz
Y3JpcHQsIHNjb3BlMik7Ci0gICAgICAgIH0pCi0gICAgICAudGhlbihmdW5jdGlvbihyKSB7Ci0g
ICAgICAgICAgcmVnaXN0cmF0aW9ucy5wdXNoKHIpOwotICAgICAgICAgIHJldHVybiBuYXZpZ2F0
b3Iuc2VydmljZVdvcmtlci5nZXRSZWdpc3RyYXRpb25zKCk7Ci0gICAgICAgIH0pCi0gICAgICAu
dGhlbihmdW5jdGlvbih2YWx1ZSkgewotICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoCi0g
ICAgICAgICAgICB2YWx1ZSwKLSAgICAgICAgICAgIHJlZ2lzdHJhdGlvbnMsCi0gICAgICAgICAg
ICAnZ2V0UmVnaXN0cmF0aW9ucyBzaG91bGQgcmVzb2x2ZSB3aXRoIGFycmF5IG9mIHJlZ2lzdHJh
dGlvbnMuJyk7Ci0gICAgICAgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXIodCwg
c2NvcGUxKTsKLSAgICAgICAgfSkKLSAgICAgIC50aGVuKGZ1bmN0aW9uKCkgewotICAgICAgICAg
IHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyKHQsIHNjb3BlMik7Ci0gICAgICAgIH0p
OwotICB9LCAnUmVnaXN0ZXIgbXVsdGlwbGUgdGltZXMgdGhlbiBnZXRSZWdpc3RyYXRpb25zJyk7
Citwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0IHNjb3BlMSA9ICdyZXNvdXJjZXMv
c2NvcGUvZ2V0cmVnaXN0cmF0aW9ucy9zY29wZTEnOworICBjb25zdCBzY29wZTIgPSAncmVzb3Vy
Y2VzL3Njb3BlL2dldHJlZ2lzdHJhdGlvbnMvc2NvcGUyJzsKKyAgY29uc3Qgc2NyaXB0ID0gJ3Jl
c291cmNlcy9lbXB0eS13b3JrZXIuanMnOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHNlcnZpY2Vf
d29ya2VyX3VucmVnaXN0ZXIodCwgc2NvcGUxKSk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gc2Vy
dmljZV93b3JrZXJfdW5yZWdpc3Rlcih0LCBzY29wZTIpKTsKIAotcHJvbWlzZV90ZXN0KGZ1bmN0
aW9uKHQpIHsKLSAgICB2YXIgc2NvcGUgPSAncmVzb3VyY2VzL3Njb3BlL2dldHJlZ2lzdHJhdGlv
bnMvcmVnaXN0ZXItdW5yZWdpc3Rlcic7Ci0gICAgdmFyIHNjcmlwdCA9ICdyZXNvdXJjZXMvZW1w
dHktd29ya2VyLmpzJzsKLSAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRf
cmVnaXN0ZXIodCwgc2NyaXB0LCBzY29wZSkKLSAgICAgIC50aGVuKGZ1bmN0aW9uKHJlZ2lzdHJh
dGlvbikgewotICAgICAgICAgIHJldHVybiByZWdpc3RyYXRpb24udW5yZWdpc3RlcigpOwotICAg
ICAgICB9KQotICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgcmV0dXJuIG5hdmln
YXRvci5zZXJ2aWNlV29ya2VyLmdldFJlZ2lzdHJhdGlvbnMoKTsKLSAgICAgICAgfSkKLSAgICAg
IC50aGVuKGZ1bmN0aW9uKHZhbHVlKSB7Ci0gICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscygK
LSAgICAgICAgICAgIHZhbHVlLAotICAgICAgICAgICAgW10sCi0gICAgICAgICAgICAnZ2V0UmVn
aXN0cmF0aW9ucyBzaG91bGQgcmVzb2x2ZSB3aXRoIGFuIGVtcHR5IGFycmF5LicpOwotICAgICAg
ICB9KTsKLSAgfSwgJ1JlZ2lzdGVyIHRoZW4gVW5yZWdpc3RlciB0aGVuIGdldFJlZ2lzdHJhdGlv
bnMnKTsKKyAgY29uc3QgcmVnaXN0cmF0aW9ucyA9IFsKKyAgICAgIGF3YWl0IHNlcnZpY2Vfd29y
a2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHNjcmlwdCwgc2NvcGUxKSwKKyAgICAgIGF3
YWl0IHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHNjcmlwdCwgc2Nv
cGUyKQorICBdOworICBjb25zdCB2YWx1ZSA9IGF3YWl0IG5hdmlnYXRvci5zZXJ2aWNlV29ya2Vy
LmdldFJlZ2lzdHJhdGlvbnMoKTsKKyAgYXNzZXJ0X2FycmF5X2VxdWFscyh2YWx1ZSwgcmVnaXN0
cmF0aW9ucyk7Cit9LCAnUmVnaXN0ZXIgbXVsdGlwbGUgdGltZXMgdGhlbiBnZXRSZWdpc3RyYXRp
b25zJyk7CiAKLXByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7Ci0gICAgdmFyIHNjb3BlID0gJ3Jl
c291cmNlcy9zY29wZS9nZXRyZWdpc3RyYXRpb25zL3JlZ2lzdGVyLXVucmVnaXN0ZXItY29udHJv
bGxlZCc7Ci0gICAgdmFyIHNjcmlwdCA9ICdyZXNvdXJjZXMvZW1wdHktd29ya2VyLmpzJzsKLSAg
ICB2YXIgcmVnaXN0cmF0aW9uczsKLSAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rl
cl9hbmRfcmVnaXN0ZXIodCwgc2NyaXB0LCBzY29wZSkKLSAgICAgIC50aGVuKGZ1bmN0aW9uKHIp
IHsKLSAgICAgICAgICByZWdpc3RyYXRpb24gPSByOwotICAgICAgICAgIHJldHVybiB3YWl0X2Zv
cl9zdGF0ZSh0LCByZWdpc3RyYXRpb24uaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOwotICAgICAg
ICB9KQotICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgcmV0dXJuIHdpdGhfaWZy
YW1lKHNjb3BlKTsKLSAgICAgICAgfSkKLSAgICAgIC50aGVuKGZ1bmN0aW9uKGYpIHsKLSAgICAg
ICAgICB0LmFkZF9jbGVhbnVwKGZ1bmN0aW9uKCkgeyBmLnJlbW92ZSgpOyB9KTsKLSAgICAgICAg
ICByZXR1cm4gcmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIoKTsKLSAgICAgICAgfSkKLSAgICAgIC50
aGVuKGZ1bmN0aW9uKCkgewotICAgICAgICAgIHJldHVybiBuYXZpZ2F0b3Iuc2VydmljZVdvcmtl
ci5nZXRSZWdpc3RyYXRpb25zKCk7Ci0gICAgICAgIH0pCi0gICAgICAudGhlbihmdW5jdGlvbih2
YWx1ZSkgewotICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoCi0gICAgICAgICAgICB2YWx1
ZSwKLSAgICAgICAgICAgIFtdLAotICAgICAgICAgICAgJ2dldFJlZ2lzdHJhdGlvbnMgc2hvdWxk
IHJlc29sdmUgd2l0aCBhbiBlbXB0eSBhcnJheS4nKTsKLSAgICAgICAgICBhc3NlcnRfZXF1YWxz
KHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLCBudWxsKTsKLSAgICAgICAgICBhc3NlcnRfZXF1YWxz
KHJlZ2lzdHJhdGlvbi53YWl0aW5nLCBudWxsKTsKLSAgICAgICAgICBhc3NlcnRfZXF1YWxzKHJl
Z2lzdHJhdGlvbi5hY3RpdmUuc3RhdGUsICdhY3RpdmF0ZWQnKTsKLSAgICAgICAgfSk7Ci0gIH0s
ICdSZWdpc3RlciB0aGVuIFVucmVnaXN0ZXIgd2l0aCBjb250cm9sbGVkIGZyYW1lIHRoZW4gZ2V0
UmVnaXN0cmF0aW9ucycpOworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25zdCBzY29w
ZSA9ICdyZXNvdXJjZXMvc2NvcGUvZ2V0cmVnaXN0cmF0aW9ucy9yZWdpc3Rlci11bnJlZ2lzdGVy
JzsKKyAgY29uc3Qgc2NyaXB0ID0gJ3Jlc291cmNlcy9lbXB0eS13b3JrZXIuanMnOworICBjb25z
dCByZWdpc3RyYXRpb24gPSBhd2FpdCBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdp
c3Rlcih0LCBzY3JpcHQsIHNjb3BlKTsKKyAgYXdhaXQgcmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIo
KTsKKyAgY29uc3QgdmFsdWUgPSBhd2FpdCBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5nZXRSZWdp
c3RyYXRpb25zKCk7CisgIGFzc2VydF9hcnJheV9lcXVhbHMoCisgICAgICB2YWx1ZSwgW10sICdn
ZXRSZWdpc3RyYXRpb25zIHNob3VsZCByZXNvbHZlIHdpdGggYW4gZW1wdHkgYXJyYXkuJyk7Cit9
LCAnUmVnaXN0ZXIgdGhlbiBVbnJlZ2lzdGVyIHRoZW4gZ2V0UmVnaXN0cmF0aW9ucycpOwogCi1w
cm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewotICAgIHZhciBob3N0X2luZm8gPSBnZXRfaG9zdF9p
bmZvKCk7Ci0gICAgLy8gUmV3cml0ZSB0aGUgdXJsIHRvIHBvaW50IHRvIHJlbW90ZSBvcmlnaW4u
Ci0gICAgdmFyIGZyYW1lX3NhbWVfb3JpZ2luX3VybCA9IG5ldyBVUkwoInJlc291cmNlcy9mcmFt
ZS1mb3ItZ2V0cmVnaXN0cmF0aW9ucy5odG1sIiwgd2luZG93LmxvY2F0aW9uKTsKLSAgICB2YXIg
ZnJhbWVfdXJsID0gaG9zdF9pbmZvWydIVFRQU19SRU1PVEVfT1JJR0lOJ10gKyBmcmFtZV9zYW1l
X29yaWdpbl91cmwucGF0aG5hbWU7Ci0gICAgdmFyIHNjb3BlID0gJ3Jlc291cmNlcy9zY29wZS1m
b3ItZ2V0cmVnaXN0cmF0aW9ucyc7Ci0gICAgdmFyIHNjcmlwdCA9ICdyZXNvdXJjZXMvZW1wdHkt
d29ya2VyLmpzJzsKLSAgICB2YXIgZnJhbWU7Ci0gICAgdmFyIHJlZ2lzdHJhdGlvbnMgPSBbXTsK
K3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgY29uc3Qgc2NvcGUgPSAncmVzb3VyY2VzL3Nj
b3BlL2dldHJlZ2lzdHJhdGlvbnMvcmVnaXN0ZXItdW5yZWdpc3Rlci1jb250cm9sbGVkJzsKKyAg
Y29uc3Qgc2NyaXB0ID0gJ3Jlc291cmNlcy9lbXB0eS13b3JrZXIuanMnOworICBjb25zdCByZWdp
c3RyYXRpb24gPSBhd2FpdCBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0
LCBzY3JpcHQsIHNjb3BlKTsKKyAgYXdhaXQgd2FpdF9mb3Jfc3RhdGUodCwgcmVnaXN0cmF0aW9u
Lmluc3RhbGxpbmcsICdhY3RpdmF0ZWQnKTsKIAotICAgIC8vIExvYWRzIGFuIGlmcmFtZSBhbmQg
d2FpdHMgZm9yICdyZWFkeScgbWVzc2FnZSBmcm9tIGl0IHRvIHJlc29sdmUgcHJvbWlzZS4KLSAg
ICAvLyBDYWxsZXIgaXMgcmVzcG9uc2libGUgZm9yIHJlbW92aW5nIGZyYW1lLgotICAgIGZ1bmN0
aW9uIHdpdGhfaWZyYW1lX3JlYWR5KHVybCkgewotICAgICAgICByZXR1cm4gbmV3IFByb21pc2Uo
ZnVuY3Rpb24ocmVzb2x2ZSkgewotICAgICAgICAgICAgdmFyIGZyYW1lID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgnaWZyYW1lJyk7Ci0gICAgICAgICAgICBmcmFtZS5zcmMgPSB1cmw7Ci0gICAg
ICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIGZ1bmN0aW9uIG9uTWVz
c2FnZShlKSB7Ci0gICAgICAgICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdtZXNz
YWdlJywgb25NZXNzYWdlKTsKLSAgICAgICAgICAgICAgaWYgKGUuZGF0YSA9PSAncmVhZHknKSB7
Ci0gICAgICAgICAgICAgICAgcmVzb2x2ZShmcmFtZSk7Ci0gICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgIH0pOwotICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChmcmFtZSk7
Ci0gICAgICAgIH0pOwotICAgIH0KKyAgLy8gQ3JlYXRlIGEgZnJhbWUgY29udHJvbGxlZCBieSB0
aGUgc2VydmljZSB3b3JrZXIgYW5kIHVucmVnaXN0ZXIgdGhlCisgIC8vIHdvcmtlci4KKyAgY29u
c3QgZnJhbWUgPSBhd2FpdCB3aXRoX2lmcmFtZShzY29wZSk7CisgIHQuYWRkX2NsZWFudXAoKCkg
PT4gZnJhbWUucmVtb3ZlKCkpOworICBhd2FpdCByZWdpc3RyYXRpb24udW5yZWdpc3RlcigpOwog
Ci0gICAgLy8gV2UgbmVlZCB0aGlzIHNwZWNpYWwgZnJhbWUgbG9hZGluZyBmdW5jdGlvbiBiZWNh
dXNlIHRoZSBmcmFtZSBpcyBnb2luZwotICAgIC8vIHRvIHJlZ2lzdGVyIGl0J3Mgb3duIHNlcnZp
Y2Ugd29ya2VyIGFuZCB0aGVyZSBpcyB0aGUgcG9zc2liaWxpdHkgdGhhdCB0aGF0Ci0gICAgLy8g
cmVnaXN0ZXIoKSBmaW5pc2hlcyBhZnRlciB0aGUgcmVnaXN0ZXIoKSBmb3IgdGhlIHNhbWUgZG9t
YWluIGxhdGVyIGluIHRoZQotICAgIC8vIHRlc3QuIFNvIHdlIGhhdmUgdG8gd2FpdCB1bnRpbCB0
aGUgY3Jvc3Mgb3JpZ2luIHJlZ2lzdGVyKCkgaXMgZG9uZSwgYW5kIG5vdAotICAgIC8vIGp1c3Qg
dW50aWwgdGhlIGZyYW1lIGxvYWRzLgotICAgIHJldHVybiB3aXRoX2lmcmFtZV9yZWFkeShmcmFt
ZV91cmwpCi0gICAgICAudGhlbihmdW5jdGlvbihmKSB7Ci0gICAgICAgICAgdC5hZGRfY2xlYW51
cChmdW5jdGlvbigpIHsgZi5yZW1vdmUoKTsgfSk7Ci0gICAgICAgICAgZnJhbWUgPSBmOwotICAg
ICAgICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCBz
Y3JpcHQsIHNjb3BlKTsKLSAgICAgICAgfSkKLSAgICAgIC50aGVuKGZ1bmN0aW9uKHIpIHsKLSAg
ICAgICAgICByZWdpc3RyYXRpb25zLnB1c2gocik7Ci0gICAgICAgICAgcmV0dXJuIG5hdmlnYXRv
ci5zZXJ2aWNlV29ya2VyLmdldFJlZ2lzdHJhdGlvbnMoKTsKLSAgICAgICAgfSkKLSAgICAgIC50
aGVuKGZ1bmN0aW9uKHZhbHVlKSB7Ci0gICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscygKLSAg
ICAgICAgICAgIHZhbHVlLAotICAgICAgICAgICAgcmVnaXN0cmF0aW9ucywKLSAgICAgICAgICAg
ICdnZXRSZWdpc3RyYXRpb25zIHNob3VsZCBvbmx5IHJldHVybiBzYW1lIG9yaWdpbiByZWdpc3Ry
YXRpb25zLicpOworICBjb25zdCB2YWx1ZSA9IGF3YWl0IG5hdmlnYXRvci5zZXJ2aWNlV29ya2Vy
LmdldFJlZ2lzdHJhdGlvbnMoKTsKKyAgYXNzZXJ0X2FycmF5X2VxdWFscygKKyAgICAgIHZhbHVl
LCBbXSwKKyAgICAgICdnZXRSZWdpc3RyYXRpb25zIHNob3VsZCByZXNvbHZlIHdpdGggYW4gZW1w
dHkgYXJyYXkuJyk7CisgIGFzc2VydF9lcXVhbHMocmVnaXN0cmF0aW9uLmluc3RhbGxpbmcsIG51
bGwpOworICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi53YWl0aW5nLCBudWxsKTsKKyAgYXNz
ZXJ0X2VxdWFscyhyZWdpc3RyYXRpb24uYWN0aXZlLnN0YXRlLCAnYWN0aXZhdGVkJyk7Cit9LCAn
UmVnaXN0ZXIgdGhlbiBVbnJlZ2lzdGVyIHdpdGggY29udHJvbGxlZCBmcmFtZSB0aGVuIGdldFJl
Z2lzdHJhdGlvbnMnKTsKIAotICAgICAgICAgIHZhciBjaGFubmVsID0gbmV3IE1lc3NhZ2VDaGFu
bmVsKCk7Ci0gICAgICAgICAgdmFyIHJlc29sdmU7Ci0gICAgICAgICAgdmFyIHAgPSBuZXcgUHJv
bWlzZShmdW5jdGlvbihyKSB7IHJlc29sdmUgPSByOyB9KTsKK3Byb21pc2VfdGVzdChhc3luYyB0
ID0+IHsKKyAgY29uc3QgaG9zdF9pbmZvID0gZ2V0X2hvc3RfaW5mbygpOworICAvLyBSZXdyaXRl
IHRoZSB1cmwgdG8gcG9pbnQgdG8gcmVtb3RlIG9yaWdpbi4KKyAgY29uc3QgZnJhbWVfc2FtZV9v
cmlnaW5fdXJsID0gbmV3IFVSTCgicmVzb3VyY2VzL2ZyYW1lLWZvci1nZXRyZWdpc3RyYXRpb25z
Lmh0bWwiLCB3aW5kb3cubG9jYXRpb24pOworICBjb25zdCBmcmFtZV91cmwgPSBob3N0X2luZm9b
J0hUVFBTX1JFTU9URV9PUklHSU4nXSArIGZyYW1lX3NhbWVfb3JpZ2luX3VybC5wYXRobmFtZTsK
KyAgY29uc3Qgc2NvcGUgPSAncmVzb3VyY2VzL3Njb3BlLWZvci1nZXRyZWdpc3RyYXRpb25zJzsK
KyAgY29uc3Qgc2NyaXB0ID0gJ3Jlc291cmNlcy9lbXB0eS13b3JrZXIuanMnOwogCi0gICAgICAg
ICAgY2hhbm5lbC5wb3J0MS5vbm1lc3NhZ2UgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICBp
ZiAoZS5kYXRhID09ICd1bnJlZ2lzdGVyZWQnKQotICAgICAgICAgICAgICByZXNvbHZlKCk7Ci0g
ICAgICAgICAgfTsKLSAgICAgICAgICBmcmFtZS5jb250ZW50V2luZG93LnBvc3RNZXNzYWdlKCd1
bnJlZ2lzdGVyJywgJyonLCBbY2hhbm5lbC5wb3J0Ml0pOwotICAgICAgICAgIHJldHVybiBwOwot
ICAgICAgICB9KQotICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgcmV0dXJuIHNl
cnZpY2Vfd29ya2VyX3VucmVnaXN0ZXIodCwgc2NvcGUpOwotICAgICAgICB9KTsKLSAgfSwgJ2dl
dFJlZ2lzdHJhdGlvbnMgcHJvbWlzZSByZXNvbHZlcyBvbmx5IHdpdGggc2FtZSBvcmlnaW4gcmVn
aXN0cmF0aW9ucy4nKTsKKyAgLy8gTG9hZHMgYW4gaWZyYW1lIGFuZCB3YWl0cyBmb3IgJ3JlYWR5
JyBtZXNzYWdlIGZyb20gaXQgdG8gcmVzb2x2ZSBwcm9taXNlLgorICAvLyBDYWxsZXIgaXMgcmVz
cG9uc2libGUgZm9yIHJlbW92aW5nIGZyYW1lLgorICBmdW5jdGlvbiB3aXRoX2lmcmFtZV9yZWFk
eSh1cmwpIHsKKyAgICAgIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHsKKyAgICAgICAg
ICBjb25zdCBmcmFtZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lmcmFtZScpOworICAgICAg
ICAgIGZyYW1lLnNyYyA9IHVybDsKKyAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcign
bWVzc2FnZScsIGZ1bmN0aW9uIG9uTWVzc2FnZShlKSB7CisgICAgICAgICAgICB3aW5kb3cucmVt
b3ZlRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIG9uTWVzc2FnZSk7CisgICAgICAgICAgICBpZiAo
ZS5kYXRhID09ICdyZWFkeScpIHsKKyAgICAgICAgICAgICAgcmVzb2x2ZShmcmFtZSk7CisgICAg
ICAgICAgICB9CisgICAgICAgICAgfSk7CisgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRD
aGlsZChmcmFtZSk7CisgICAgICB9KTsKKyAgfQorCisgIC8vIFdlIG5lZWQgdGhpcyBzcGVjaWFs
IGZyYW1lIGxvYWRpbmcgZnVuY3Rpb24gYmVjYXVzZSB0aGUgZnJhbWUgaXMgZ29pbmcKKyAgLy8g
dG8gcmVnaXN0ZXIgaXQncyBvd24gc2VydmljZSB3b3JrZXIgYW5kIHRoZXJlIGlzIHRoZSBwb3Nz
aWJpbGl0eSB0aGF0IHRoYXQKKyAgLy8gcmVnaXN0ZXIoKSBmaW5pc2hlcyBhZnRlciB0aGUgcmVn
aXN0ZXIoKSBmb3IgdGhlIHNhbWUgZG9tYWluIGxhdGVyIGluIHRoZQorICAvLyB0ZXN0LiBTbyB3
ZSBoYXZlIHRvIHdhaXQgdW50aWwgdGhlIGNyb3NzIG9yaWdpbiByZWdpc3RlcigpIGlzIGRvbmUs
IGFuZCBub3QKKyAgLy8ganVzdCB1bnRpbCB0aGUgZnJhbWUgbG9hZHMuCisgIGNvbnN0IGZyYW1l
ID0gYXdhaXQgd2l0aF9pZnJhbWVfcmVhZHkoZnJhbWVfdXJsKTsKKyAgdC5hZGRfY2xlYW51cChh
c3luYyAoKSA9PiB7CisgICAgLy8gV2FpdCB1bnRpbCB0aGUgY3Jvc3Mtb3JpZ2luIHdvcmtlciBp
cyB1bnJlZ2lzdGVyZWQuCisgICAgbGV0IHJlc29sdmU7CisgICAgY29uc3QgY2hhbm5lbCA9IG5l
dyBNZXNzYWdlQ2hhbm5lbCgpOworICAgIGNoYW5uZWwucG9ydDEub25tZXNzYWdlID0gZSA9PiB7
CisgICAgICBpZiAoZS5kYXRhID09ICd1bnJlZ2lzdGVyZWQnKQorICAgICAgICByZXNvbHZlKCk7
CisgICAgfTsKKyAgICBmcmFtZS5jb250ZW50V2luZG93LnBvc3RNZXNzYWdlKCd1bnJlZ2lzdGVy
JywgJyonLCBbY2hhbm5lbC5wb3J0Ml0pOworICAgIGF3YWl0IG5ldyBQcm9taXNlKHIgPT4geyBy
ZXNvbHZlID0gcjsgfSk7CisKKyAgICBmcmFtZS5yZW1vdmUoKTsKKyAgfSk7CisKKyAgY29uc3Qg
cmVnaXN0cmF0aW9ucyA9IFsKKyAgICBhd2FpdCBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2Fu
ZF9yZWdpc3Rlcih0LCBzY3JpcHQsIHNjb3BlKV07CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcmVn
aXN0cmF0aW9uc1swXS51bnJlZ2lzdGVyKCkpOworICBjb25zdCB2YWx1ZSA9IGF3YWl0IG5hdmln
YXRvci5zZXJ2aWNlV29ya2VyLmdldFJlZ2lzdHJhdGlvbnMoKTsKKyAgYXNzZXJ0X2FycmF5X2Vx
dWFscygKKyAgICAgIHZhbHVlLCByZWdpc3RyYXRpb25zLAorICAgICAgJ2dldFJlZ2lzdHJhdGlv
bnMgc2hvdWxkIG9ubHkgcmV0dXJuIHNhbWUgb3JpZ2luIHJlZ2lzdHJhdGlvbnMuJyk7Cit9LCAn
Z2V0UmVnaXN0cmF0aW9ucyBwcm9taXNlIHJlc29sdmVzIG9ubHkgd2l0aCBzYW1lIG9yaWdpbiBy
ZWdpc3RyYXRpb25zLicpOwogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9pbXBvcnQtc2NyaXB0cy1yZWRpcmVjdC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
aW1wb3J0LXNjcmlwdHMtcmVkaXJlY3QuaHR0cHMuaHRtbAppbmRleCBlNTJhZGZhMzc4MDA4NTNh
ODZkYTlmNWYzMGJjMGRkNDFlNGFmY2I2Li4wN2VhNDk0MzllYmE4Zjk3NjJiMmJjMTdiNWFlMjM0
NmQ5ZDE1Mzk3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9pbXBvcnQtc2NyaXB0cy1y
ZWRpcmVjdC5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ltcG9ydC1zY3JpcHRz
LXJlZGlyZWN0Lmh0dHBzLmh0bWwKQEAgLTEsNiArMSw3IEBACiA8IURPQ1RZUEUgaHRtbD4KIDxt
ZXRhIGNoYXJzZXQ9InV0Zi04Ij4KIDx0aXRsZT5UZXN0cyBmb3IgaW1wb3J0U2NyaXB0czogcmVk
aXJlY3Q8L3RpdGxlPgorPHNjcmlwdCBzcmM9Ii9jb21tb24vdXRpbHMuanMiPjwvc2NyaXB0Pgog
PHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgogPHNjcmlw
dCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgogPHNjcmlw
dCBzcmM9InJlc291cmNlcy90ZXN0LWhlbHBlcnMuc3ViLmpzIj48L3NjcmlwdD4KQEAgLTIwLDE0
ICsyMSwzNSBAQCBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CiAgICAgYXdhaXQgc2VydmljZV93
b3JrZXJfdW5yZWdpc3Rlcih0LCBzY29wZSk7CiAgICAgbGV0IHJlZyA9IGF3YWl0IG5hdmlnYXRv
ci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKAogICAgICAgJ3Jlc291cmNlcy9pbXBvcnQtc2NyaXB0
cy1yZWRpcmVjdC13b3JrZXIuanMnLCB7IHNjb3BlOiBzY29wZSB9KTsKLSAgICBhc3NlcnRfbm90
X2VxdWFscyhyZWcuaW5zdGFsbGluZywgbnVsbCwgJ3dvcmtlciBpcyBpbnN0YWxsaW5nJyk7Cisg
ICAgYXNzZXJ0X25vdF9lcXVhbHMocmVnLmluc3RhbGxpbmcsIG51bGwsICdiZWZvcmUgdXBkYXRl
Jyk7CiAgICAgYXdhaXQgd2FpdF9mb3Jfc3RhdGUodCwgcmVnLmluc3RhbGxpbmcsICdhY3RpdmF0
ZWQnKTsKICAgICBhd2FpdCBQcm9taXNlLmFsbChbCiAgICAgICB3YWl0X2Zvcl91cGRhdGUodCwg
cmVnKSwKICAgICAgIHJlZy51cGRhdGUoKQogICAgIF0pOwotICAgIGFzc2VydF9ub3RfZXF1YWxz
KHJlZy5pbnN0YWxsaW5nLCBudWxsLCAnd29ya2VyIGlzIGluc3RhbGxpbmcnKTsKKyAgICBhc3Nl
cnRfbm90X2VxdWFscyhyZWcuaW5zdGFsbGluZywgbnVsbCwgJ2FmdGVyIHVwZGF0ZScpOwogICAg
IGF3YWl0IHJlZy51bnJlZ2lzdGVyKCk7Ci0gIH0sICdpbXBvcnRTY3JpcHRzKCkgc3VwcG9ydHMg
cmVkaXJlY3RzIGFuZCBjYW4gYmUgdXBkYXRlZCcpOworICB9LAorICAiYW4gaW1wb3J0ZWQgc2Ny
aXB0IHJlZGlyZWN0cywgYW5kIHRoZSBib2R5IGNoYW5nZXMgZHVyaW5nIHRoZSB1cGRhdGUgY2hl
Y2siKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICAgIGNvbnN0IGtleSA9IHRva2Vu
KCk7CisgICAgY29uc3Qgc2NvcGUgPSAncmVzb3VyY2VzL2ltcG9ydC1zY3JpcHRzLXJlZGlyZWN0
JzsKKyAgICBhd2FpdCBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyKHQsIHNjb3BlKTsKKyAgICBs
ZXQgcmVnID0gYXdhaXQgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoCisgICAgICBg
cmVzb3VyY2VzL2ltcG9ydC1zY3JpcHRzLXJlZGlyZWN0LW9uLXNlY29uZC10aW1lLXdvcmtlci5q
cz9LZXk9JHtrZXl9YCwKKyAgICAgIHsgc2NvcGUgfSk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9
PiByZWcudW5yZWdpc3RlcigpKTsKKworICAgIGFzc2VydF9ub3RfZXF1YWxzKHJlZy5pbnN0YWxs
aW5nLCBudWxsLCAnYmVmb3JlIHVwZGF0ZScpOworICAgIGF3YWl0IHdhaXRfZm9yX3N0YXRlKHQs
IHJlZy5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7CisgICAgYXdhaXQgUHJvbWlzZS5hbGwoWwor
ICAgICAgd2FpdF9mb3JfdXBkYXRlKHQsIHJlZyksCisgICAgICByZWcudXBkYXRlKCkKKyAgICBd
KTsKKyAgICBhc3NlcnRfbm90X2VxdWFscyhyZWcuaW5zdGFsbGluZywgbnVsbCwgJ2FmdGVyIHVw
ZGF0ZScpOworICB9LAorICAiYW4gaW1wb3J0ZWQgc2NyaXB0IGRvZXNuJ3QgcmVkaXJlY3QgaW5p
dGlhbGx5LCB0aGVuIHJlZGlyZWN0cyBkdXJpbmcgIiArCisgICJ0aGUgdXBkYXRlIGNoZWNrIGFu
ZCB0aGUgYm9keSBjaGFuZ2VzIik7CiA8L3NjcmlwdD4KIDwvYm9keT4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL2ludGVyZmFjZXMtc3cuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvaW50ZXJmYWNlcy1zdy5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggNTRlYTY3
MmJkNzUyMGZiMzIxNDE2ZTM1YTE4MGJhYzI2NzA0ZTk0Mi4uZWVlODc3Mjk0NDk0MmM3YTkzNTYy
MjA0ZmU3MmM1MDlkMTU3ZTE2YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvaW50ZXJm
YWNlcy1zdy5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvaW50ZXJm
YWNlcy1zdy5odHRwcy1leHBlY3RlZC50eHQKQEAgLTEzLDYgKzEzLDcgQEAgUEFTUyBTZXJ2aWNl
V29ya2VyIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBw
cm90b3R5cGUgb2IKIFBBU1MgU2VydmljZVdvcmtlciBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBzY3Jp
cHRVUkwgCiBQQVNTIFNlcnZpY2VXb3JrZXIgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgc3RhdGUgCiBQ
QVNTIFNlcnZpY2VXb3JrZXIgaW50ZXJmYWNlOiBvcGVyYXRpb24gcG9zdE1lc3NhZ2UoYW55LCBb
b2JqZWN0IE9iamVjdF0pIAorUEFTUyBTZXJ2aWNlV29ya2VyIGludGVyZmFjZTogb3BlcmF0aW9u
IHBvc3RNZXNzYWdlKGFueSwgUG9zdE1lc3NhZ2VPcHRpb25zKSAKIFBBU1MgU2VydmljZVdvcmtl
ciBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBvbnN0YXRlY2hhbmdlIAogUEFTUyBTZXJ2aWNlV29ya2Vy
UmVnaXN0cmF0aW9uIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVy
ZmFjZSBvYmplY3QgCiBQQVNTIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24gaW50ZXJmYWNlIG9i
amVjdCBsZW5ndGggCkBAIC0yMyw2ICsyNCw3IEBAIFBBU1MgU2VydmljZVdvcmtlclJlZ2lzdHJh
dGlvbiBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UKIFBB
U1MgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBpbnN0YWxs
aW5nIAogUEFTUyBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uIGludGVyZmFjZTogYXR0cmlidXRl
IHdhaXRpbmcgCiBQQVNTIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24gaW50ZXJmYWNlOiBhdHRy
aWJ1dGUgYWN0aXZlIAorRkFJTCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uIGludGVyZmFjZTog
YXR0cmlidXRlIG5hdmlnYXRpb25QcmVsb2FkIGFzc2VydF90cnVlOiBUaGUgcHJvdG90eXBlIG9i
amVjdCBtdXN0IGhhdmUgYSBwcm9wZXJ0eSAibmF2aWdhdGlvblByZWxvYWQiIGV4cGVjdGVkIHRy
dWUgZ290IGZhbHNlCiBQQVNTIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24gaW50ZXJmYWNlOiBh
dHRyaWJ1dGUgc2NvcGUgCiBQQVNTIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24gaW50ZXJmYWNl
OiBhdHRyaWJ1dGUgdXBkYXRlVmlhQ2FjaGUgCiBQQVNTIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRp
b24gaW50ZXJmYWNlOiBvcGVyYXRpb24gdXBkYXRlKCkgCkBAIC0zMywxMSArMzUsMjIgQEAgUEFT
UyBTdHJpbmdpZmljYXRpb24gb2Ygc2VsZi5yZWdpc3RyYXRpb24KIFBBU1MgU2VydmljZVdvcmtl
clJlZ2lzdHJhdGlvbiBpbnRlcmZhY2U6IHNlbGYucmVnaXN0cmF0aW9uIG11c3QgaW5oZXJpdCBw
cm9wZXJ0eSAiaW5zdGFsbGluZyIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCiBQQVNTIFNlcnZpY2VX
b3JrZXJSZWdpc3RyYXRpb24gaW50ZXJmYWNlOiBzZWxmLnJlZ2lzdHJhdGlvbiBtdXN0IGluaGVy
aXQgcHJvcGVydHkgIndhaXRpbmciIHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBTZXJ2aWNl
V29ya2VyUmVnaXN0cmF0aW9uIGludGVyZmFjZTogc2VsZi5yZWdpc3RyYXRpb24gbXVzdCBpbmhl
cml0IHByb3BlcnR5ICJhY3RpdmUiIHdpdGggdGhlIHByb3BlciB0eXBlIAorRkFJTCBTZXJ2aWNl
V29ya2VyUmVnaXN0cmF0aW9uIGludGVyZmFjZTogc2VsZi5yZWdpc3RyYXRpb24gbXVzdCBpbmhl
cml0IHByb3BlcnR5ICJuYXZpZ2F0aW9uUHJlbG9hZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNz
ZXJ0X2luaGVyaXRzOiBwcm9wZXJ0eSAibmF2aWdhdGlvblByZWxvYWQiIG5vdCBmb3VuZCBpbiBw
cm90b3R5cGUgY2hhaW4KIFBBU1MgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbiBpbnRlcmZhY2U6
IHNlbGYucmVnaXN0cmF0aW9uIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAic2NvcGUiIHdpdGggdGhl
IHByb3BlciB0eXBlIAogUEFTUyBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uIGludGVyZmFjZTog
c2VsZi5yZWdpc3RyYXRpb24gbXVzdCBpbmhlcml0IHByb3BlcnR5ICJ1cGRhdGVWaWFDYWNoZSIg
d2l0aCB0aGUgcHJvcGVyIHR5cGUgCiBQQVNTIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24gaW50
ZXJmYWNlOiBzZWxmLnJlZ2lzdHJhdGlvbiBtdXN0IGluaGVyaXQgcHJvcGVydHkgInVwZGF0ZSgp
IiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbiBp
bnRlcmZhY2U6IHNlbGYucmVnaXN0cmF0aW9uIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAidW5yZWdp
c3RlcigpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgU2VydmljZVdvcmtlclJlZ2lzdHJh
dGlvbiBpbnRlcmZhY2U6IHNlbGYucmVnaXN0cmF0aW9uIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAi
b251cGRhdGVmb3VuZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitGQUlMIE5hdmlnYXRpb25QcmVs
b2FkTWFuYWdlciBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZh
Y2Ugb2JqZWN0IGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJv
cGVydHkgIk5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciIgZXhwZWN0ZWQgcHJvcGVydHkgIk5hdmln
YXRpb25QcmVsb2FkTWFuYWdlciIgbWlzc2luZworRkFJTCBOYXZpZ2F0aW9uUHJlbG9hZE1hbmFn
ZXIgaW50ZXJmYWNlIG9iamVjdCBsZW5ndGggYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2Vz
IG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIiBleHBlY3Rl
ZCBwcm9wZXJ0eSAiTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIiBtaXNzaW5nCitGQUlMIE5hdmln
YXRpb25QcmVsb2FkTWFuYWdlciBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUgYXNzZXJ0X293bl9wcm9w
ZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiTmF2aWdhdGlvblByZWxvYWRN
YW5hZ2VyIiBleHBlY3RlZCBwcm9wZXJ0eSAiTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIiBtaXNz
aW5nCitGQUlMIE5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBh
bmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCBhc3NlcnRfb3duX3By
b3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJOYXZpZ2F0aW9uUHJlbG9h
ZE1hbmFnZXIiIGV4cGVjdGVkIHByb3BlcnR5ICJOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIiIG1p
c3NpbmcKK0ZBSUwgTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIGludGVyZmFjZTogZXhpc3RlbmNl
IGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgImNvbnN0cnVj
dG9yIiBwcm9wZXJ0eSBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3du
IHByb3BlcnR5ICJOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIiIGV4cGVjdGVkIHByb3BlcnR5ICJO
YXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIiIG1pc3NpbmcKK0ZBSUwgTmF2aWdhdGlvblByZWxvYWRN
YW5hZ2VyIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBw
cm90b3R5cGUgb2JqZWN0J3MgQEB1bnNjb3BhYmxlcyBwcm9wZXJ0eSBhc3NlcnRfb3duX3Byb3Bl
cnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJOYXZpZ2F0aW9uUHJlbG9hZE1h
bmFnZXIiIGV4cGVjdGVkIHByb3BlcnR5ICJOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIiIG1pc3Np
bmcKK0ZBSUwgTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIGludGVyZmFjZTogb3BlcmF0aW9uIGVu
YWJsZSgpIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVy
dHkgIk5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciIgZXhwZWN0ZWQgcHJvcGVydHkgIk5hdmlnYXRp
b25QcmVsb2FkTWFuYWdlciIgbWlzc2luZworRkFJTCBOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIg
aW50ZXJmYWNlOiBvcGVyYXRpb24gZGlzYWJsZSgpIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYg
ZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIk5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciIgZXhw
ZWN0ZWQgcHJvcGVydHkgIk5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciIgbWlzc2luZworRkFJTCBO
YXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIgaW50ZXJmYWNlOiBvcGVyYXRpb24gc2V0SGVhZGVyVmFs
dWUoQnl0ZVN0cmluZykgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93
biBwcm9wZXJ0eSAiTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIiBleHBlY3RlZCBwcm9wZXJ0eSAi
TmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIiBtaXNzaW5nCitGQUlMIE5hdmlnYXRpb25QcmVsb2Fk
TWFuYWdlciBpbnRlcmZhY2U6IG9wZXJhdGlvbiBnZXRTdGF0ZSgpIGFzc2VydF9vd25fcHJvcGVy
dHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIk5hdmlnYXRpb25QcmVsb2FkTWFu
YWdlciIgZXhwZWN0ZWQgcHJvcGVydHkgIk5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciIgbWlzc2lu
ZwogUEFTUyBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5k
IHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCAKIFBBU1MgU2VydmljZVdvcmtlckdsb2Jh
bFNjb3BlIGludGVyZmFjZSBvYmplY3QgbGVuZ3RoIAogUEFTUyBTZXJ2aWNlV29ya2VyR2xvYmFs
U2NvcGUgaW50ZXJmYWNlIG9iamVjdCBuYW1lIApAQCAtNTIsNiArNjUsNyBAQCBQQVNTIFNlcnZp
Y2VXb3JrZXJHbG9iYWxTY29wZSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBv
ZiBpbnRlcmZhY2UgcAogUEFTUyBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUgaW50ZXJmYWNlOiBl
eGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyBA
QHVuc2NvcGFibGVzIHByb3BlcnR5IAogUEFTUyBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUgaW50
ZXJmYWNlOiBhdHRyaWJ1dGUgY2xpZW50cyAKIFBBU1MgU2VydmljZVdvcmtlckdsb2JhbFNjb3Bl
IGludGVyZmFjZTogYXR0cmlidXRlIHJlZ2lzdHJhdGlvbiAKK0ZBSUwgU2VydmljZVdvcmtlckds
b2JhbFNjb3BlIGludGVyZmFjZTogYXR0cmlidXRlIHNlcnZpY2VXb3JrZXIgYXNzZXJ0X293bl9w
cm9wZXJ0eTogVGhlIGdsb2JhbCBvYmplY3QgbXVzdCBoYXZlIGEgcHJvcGVydHkgInNlcnZpY2VX
b3JrZXIiIGV4cGVjdGVkIHByb3BlcnR5ICJzZXJ2aWNlV29ya2VyIiBtaXNzaW5nCiBQQVNTIFNl
cnZpY2VXb3JrZXJHbG9iYWxTY29wZSBpbnRlcmZhY2U6IG9wZXJhdGlvbiBza2lwV2FpdGluZygp
IAogUEFTUyBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgb25p
bnN0YWxsIAogUEFTUyBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUgaW50ZXJmYWNlOiBhdHRyaWJ1
dGUgb25hY3RpdmF0ZSAKQEAgLTY4LDYgKzgyLDcgQEAgUEFTUyBTZXJ2aWNlV29ya2VyR2xvYmFs
U2NvcGUgbXVzdCBiZSBwcmltYXJ5IGludGVyZmFjZSBvZiBzZWxmCiBQQVNTIFN0cmluZ2lmaWNh
dGlvbiBvZiBzZWxmIAogUEFTUyBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUgaW50ZXJmYWNlOiBz
ZWxmIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiY2xpZW50cyIgd2l0aCB0aGUgcHJvcGVyIHR5cGUg
CiBQQVNTIFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSBpbnRlcmZhY2U6IHNlbGYgbXVzdCBpbmhl
cml0IHByb3BlcnR5ICJyZWdpc3RyYXRpb24iIHdpdGggdGhlIHByb3BlciB0eXBlIAorRkFJTCBT
ZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUgaW50ZXJmYWNlOiBzZWxmIG11c3QgaW5oZXJpdCBwcm9w
ZXJ0eSAic2VydmljZVdvcmtlciIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X293bl9wcm9w
ZXJ0eTogZXhwZWN0ZWQgcHJvcGVydHkgInNlcnZpY2VXb3JrZXIiIG1pc3NpbmcKIFBBU1MgU2Vy
dmljZVdvcmtlckdsb2JhbFNjb3BlIGludGVyZmFjZTogc2VsZiBtdXN0IGluaGVyaXQgcHJvcGVy
dHkgInNraXBXYWl0aW5nKCkiIHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBTZXJ2aWNlV29y
a2VyR2xvYmFsU2NvcGUgaW50ZXJmYWNlOiBzZWxmIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAib25p
bnN0YWxsIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgU2VydmljZVdvcmtlckdsb2JhbFNj
b3BlIGludGVyZmFjZTogc2VsZiBtdXN0IGluaGVyaXQgcHJvcGVydHkgIm9uYWN0aXZhdGUiIHdp
dGggdGhlIHByb3BlciB0eXBlIApAQCAtODUsNiArMTAwLDcgQEAgUEFTUyBDbGllbnQgaW50ZXJm
YWNlOiBhdHRyaWJ1dGUgZnJhbWVUeXBlCiBQQVNTIENsaWVudCBpbnRlcmZhY2U6IGF0dHJpYnV0
ZSBpZCAKIFBBU1MgQ2xpZW50IGludGVyZmFjZTogYXR0cmlidXRlIHR5cGUgCiBQQVNTIENsaWVu
dCBpbnRlcmZhY2U6IG9wZXJhdGlvbiBwb3N0TWVzc2FnZShhbnksIFtvYmplY3QgT2JqZWN0XSkg
CitQQVNTIENsaWVudCBpbnRlcmZhY2U6IG9wZXJhdGlvbiBwb3N0TWVzc2FnZShhbnksIFBvc3RN
ZXNzYWdlT3B0aW9ucykgCiBQQVNTIFdpbmRvd0NsaWVudCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBh
bmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IAogUEFTUyBXaW5kb3dDbGllbnQgaW50
ZXJmYWNlIG9iamVjdCBsZW5ndGggCiBQQVNTIFdpbmRvd0NsaWVudCBpbnRlcmZhY2Ugb2JqZWN0
IG5hbWUgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9pbnRlcmZhY2VzLXN3Lmh0dHBz
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9pbnRlcmZhY2VzLXN3Lmh0dHBzLmh0bWwKaW5kZXgg
NTBjNzZkMzA2ZGMyZjQzZWFjMGY0ZDgyN2U5YjcyNDY0YjYzMjIwYy4uN2JmZjZhYzEwN2UzZGUw
YWUxMjA3ZjQ3N2I5Zjk0MGFkNDA0Y2QyMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
aW50ZXJmYWNlcy1zdy5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ludGVyZmFj
ZXMtc3cuaHR0cHMuaHRtbApAQCAtNiw2ICs2LDggQEAKIDxzY3JpcHQ+CiAndXNlIHN0cmljdCc7
CiAKKy8vIE5PVEU6IGFmZmVjdGVkIHdoZW4gJ3Jlc291cmNlcy9pbnRlcmZhY2VzLXdvcmtlci5z
dWIuanMnIHNyY3MgY2hhbmdlOgorLy8gY29uc3Qgc3JjcyA9IFsnZG9tJywgJ2h0bWwnLCAnc2Vy
dmljZS13b3JrZXJzJ107CiBzZXJ2aWNlX3dvcmtlcl90ZXN0KAogICAncmVzb3VyY2VzL2ludGVy
ZmFjZXMtd29ya2VyLnN1Yi5qcycsCiAgICdJbnRlcmZhY2VzIGFuZCBhdHRyaWJ1dGVzIGluIFNl
cnZpY2VXb3JrZXJHbG9iYWxTY29wZScpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
aW50ZXJmYWNlcy13aW5kb3cuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
aW50ZXJmYWNlcy13aW5kb3cuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IDAwYTIyOGMxMTE5NGM3
ODhjMDMzMDFkMGRiYjRkNTg4MTA0OGViZGEuLjhmMTg5OTk0NDE0ZDBjNjExZDc2N2RlMjk2ZTNl
MmE0NzYwMDEwMTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ludGVyZmFjZXMtd2lu
ZG93Lmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9pbnRlcmZhY2Vz
LXdpbmRvdy5odHRwcy1leHBlY3RlZC50eHQKQEAgLTExLDYgKzExLDcgQEAgUEFTUyBTZXJ2aWNl
V29ya2VyIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBw
cm90b3R5cGUgb2IKIFBBU1MgU2VydmljZVdvcmtlciBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBzY3Jp
cHRVUkwgCiBQQVNTIFNlcnZpY2VXb3JrZXIgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgc3RhdGUgCiBQ
QVNTIFNlcnZpY2VXb3JrZXIgaW50ZXJmYWNlOiBvcGVyYXRpb24gcG9zdE1lc3NhZ2UoYW55LCBb
b2JqZWN0IE9iamVjdF0pIAorUEFTUyBTZXJ2aWNlV29ya2VyIGludGVyZmFjZTogb3BlcmF0aW9u
IHBvc3RNZXNzYWdlKGFueSwgUG9zdE1lc3NhZ2VPcHRpb25zKSAKIFBBU1MgU2VydmljZVdvcmtl
ciBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBvbnN0YXRlY2hhbmdlIAogUEFTUyBTZXJ2aWNlV29ya2Vy
IG11c3QgYmUgcHJpbWFyeSBpbnRlcmZhY2Ugb2Ygd2luZG93LnJlZ2lzdHJhdGlvbkluc3RhbmNl
Lmluc3RhbGxpbmcgCiBQQVNTIFN0cmluZ2lmaWNhdGlvbiBvZiB3aW5kb3cucmVnaXN0cmF0aW9u
SW5zdGFuY2UuaW5zdGFsbGluZyAKQEAgLTE4LDYgKzE5LDggQEAgUEFTUyBTZXJ2aWNlV29ya2Vy
IGludGVyZmFjZTogd2luZG93LnJlZ2lzdHJhdGlvbkluc3RhbmNlLmluc3RhbGxpbmcgbXVzdCBp
bmhlcmkKIFBBU1MgU2VydmljZVdvcmtlciBpbnRlcmZhY2U6IHdpbmRvdy5yZWdpc3RyYXRpb25J
bnN0YW5jZS5pbnN0YWxsaW5nIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAic3RhdGUiIHdpdGggdGhl
IHByb3BlciB0eXBlIAogUEFTUyBTZXJ2aWNlV29ya2VyIGludGVyZmFjZTogd2luZG93LnJlZ2lz
dHJhdGlvbkluc3RhbmNlLmluc3RhbGxpbmcgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJwb3N0TWVz
c2FnZShhbnksIFtvYmplY3QgT2JqZWN0XSkiIHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBT
ZXJ2aWNlV29ya2VyIGludGVyZmFjZTogY2FsbGluZyBwb3N0TWVzc2FnZShhbnksIFtvYmplY3Qg
T2JqZWN0XSkgb24gd2luZG93LnJlZ2lzdHJhdGlvbkluc3RhbmNlLmluc3RhbGxpbmcgd2l0aCB0
b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKK1BBU1MgU2VydmljZVdvcmtl
ciBpbnRlcmZhY2U6IHdpbmRvdy5yZWdpc3RyYXRpb25JbnN0YW5jZS5pbnN0YWxsaW5nIG11c3Qg
aW5oZXJpdCBwcm9wZXJ0eSAicG9zdE1lc3NhZ2UoYW55LCBQb3N0TWVzc2FnZU9wdGlvbnMpIiB3
aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgU2VydmljZVdvcmtlciBpbnRlcmZhY2U6IGNhbGxp
bmcgcG9zdE1lc3NhZ2UoYW55LCBQb3N0TWVzc2FnZU9wdGlvbnMpIG9uIHdpbmRvdy5yZWdpc3Ry
YXRpb25JbnN0YW5jZS5pbnN0YWxsaW5nIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJv
dyBUeXBlRXJyb3IgCiBQQVNTIFNlcnZpY2VXb3JrZXIgaW50ZXJmYWNlOiB3aW5kb3cucmVnaXN0
cmF0aW9uSW5zdGFuY2UuaW5zdGFsbGluZyBtdXN0IGluaGVyaXQgcHJvcGVydHkgIm9uc3RhdGVj
aGFuZ2UiIHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0
aW9uIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmpl
Y3QgCiBQQVNTIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24gaW50ZXJmYWNlIG9iamVjdCBsZW5n
dGggCkBAIC0yOCw2ICszMSw3IEBAIFBBU1MgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbiBpbnRl
cmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UKIFBBU1MgU2Vydmlj
ZVdvcmtlclJlZ2lzdHJhdGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBpbnN0YWxsaW5nIAogUEFT
UyBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uIGludGVyZmFjZTogYXR0cmlidXRlIHdhaXRpbmcg
CiBQQVNTIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgYWN0
aXZlIAorRkFJTCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uIGludGVyZmFjZTogYXR0cmlidXRl
IG5hdmlnYXRpb25QcmVsb2FkIGFzc2VydF90cnVlOiBUaGUgcHJvdG90eXBlIG9iamVjdCBtdXN0
IGhhdmUgYSBwcm9wZXJ0eSAibmF2aWdhdGlvblByZWxvYWQiIGV4cGVjdGVkIHRydWUgZ290IGZh
bHNlCiBQQVNTIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUg
c2NvcGUgCiBQQVNTIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24gaW50ZXJmYWNlOiBhdHRyaWJ1
dGUgdXBkYXRlVmlhQ2FjaGUgCiBQQVNTIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24gaW50ZXJm
YWNlOiBvcGVyYXRpb24gdXBkYXRlKCkgCkBAIC0zOCwxMSArNDIsMjIgQEAgUEFTUyBTdHJpbmdp
ZmljYXRpb24gb2Ygd2luZG93LnJlZ2lzdHJhdGlvbkluc3RhbmNlCiBQQVNTIFNlcnZpY2VXb3Jr
ZXJSZWdpc3RyYXRpb24gaW50ZXJmYWNlOiB3aW5kb3cucmVnaXN0cmF0aW9uSW5zdGFuY2UgbXVz
dCBpbmhlcml0IHByb3BlcnR5ICJpbnN0YWxsaW5nIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBB
U1MgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbiBpbnRlcmZhY2U6IHdpbmRvdy5yZWdpc3RyYXRp
b25JbnN0YW5jZSBtdXN0IGluaGVyaXQgcHJvcGVydHkgIndhaXRpbmciIHdpdGggdGhlIHByb3Bl
ciB0eXBlIAogUEFTUyBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uIGludGVyZmFjZTogd2luZG93
LnJlZ2lzdHJhdGlvbkluc3RhbmNlIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiYWN0aXZlIiB3aXRo
IHRoZSBwcm9wZXIgdHlwZSAKK0ZBSUwgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbiBpbnRlcmZh
Y2U6IHdpbmRvdy5yZWdpc3RyYXRpb25JbnN0YW5jZSBtdXN0IGluaGVyaXQgcHJvcGVydHkgIm5h
dmlnYXRpb25QcmVsb2FkIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBhc3NlcnRfaW5oZXJpdHM6IHBy
b3BlcnR5ICJuYXZpZ2F0aW9uUHJlbG9hZCIgbm90IGZvdW5kIGluIHByb3RvdHlwZSBjaGFpbgog
UEFTUyBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uIGludGVyZmFjZTogd2luZG93LnJlZ2lzdHJh
dGlvbkluc3RhbmNlIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAic2NvcGUiIHdpdGggdGhlIHByb3Bl
ciB0eXBlIAogUEFTUyBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uIGludGVyZmFjZTogd2luZG93
LnJlZ2lzdHJhdGlvbkluc3RhbmNlIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAidXBkYXRlVmlhQ2Fj
aGUiIHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9u
IGludGVyZmFjZTogd2luZG93LnJlZ2lzdHJhdGlvbkluc3RhbmNlIG11c3QgaW5oZXJpdCBwcm9w
ZXJ0eSAidXBkYXRlKCkiIHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBTZXJ2aWNlV29ya2Vy
UmVnaXN0cmF0aW9uIGludGVyZmFjZTogd2luZG93LnJlZ2lzdHJhdGlvbkluc3RhbmNlIG11c3Qg
aW5oZXJpdCBwcm9wZXJ0eSAidW5yZWdpc3RlcigpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBB
U1MgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbiBpbnRlcmZhY2U6IHdpbmRvdy5yZWdpc3RyYXRp
b25JbnN0YW5jZSBtdXN0IGluaGVyaXQgcHJvcGVydHkgIm9udXBkYXRlZm91bmQiIHdpdGggdGhl
IHByb3BlciB0eXBlIAorRkFJTCBOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIgaW50ZXJmYWNlOiBl
eGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCBhc3NlcnRfb3duX3By
b3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJOYXZpZ2F0aW9uUHJlbG9h
ZE1hbmFnZXIiIGV4cGVjdGVkIHByb3BlcnR5ICJOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIiIG1p
c3NpbmcKK0ZBSUwgTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIGludGVyZmFjZSBvYmplY3QgbGVu
Z3RoIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkg
Ik5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciIgZXhwZWN0ZWQgcHJvcGVydHkgIk5hdmlnYXRpb25Q
cmVsb2FkTWFuYWdlciIgbWlzc2luZworRkFJTCBOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIgaW50
ZXJmYWNlIG9iamVjdCBuYW1lIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2
ZSBvd24gcHJvcGVydHkgIk5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciIgZXhwZWN0ZWQgcHJvcGVy
dHkgIk5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciIgbWlzc2luZworRkFJTCBOYXZpZ2F0aW9uUHJl
bG9hZE1hbmFnZXIgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJm
YWNlIHByb3RvdHlwZSBvYmplY3QgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBo
YXZlIG93biBwcm9wZXJ0eSAiTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIiBleHBlY3RlZCBwcm9w
ZXJ0eSAiTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIiBtaXNzaW5nCitGQUlMIE5hdmlnYXRpb25Q
cmVsb2FkTWFuYWdlciBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRl
cmZhY2UgcHJvdG90eXBlIG9iamVjdCdzICJjb25zdHJ1Y3RvciIgcHJvcGVydHkgYXNzZXJ0X293
bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiTmF2aWdhdGlvblBy
ZWxvYWRNYW5hZ2VyIiBleHBlY3RlZCBwcm9wZXJ0eSAiTmF2aWdhdGlvblByZWxvYWRNYW5hZ2Vy
IiBtaXNzaW5nCitGQUlMIE5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciBpbnRlcmZhY2U6IGV4aXN0
ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzIEBAdW5z
Y29wYWJsZXMgcHJvcGVydHkgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZl
IG93biBwcm9wZXJ0eSAiTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIiBleHBlY3RlZCBwcm9wZXJ0
eSAiTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIiBtaXNzaW5nCitGQUlMIE5hdmlnYXRpb25QcmVs
b2FkTWFuYWdlciBpbnRlcmZhY2U6IG9wZXJhdGlvbiBlbmFibGUoKSBhc3NlcnRfb3duX3Byb3Bl
cnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJOYXZpZ2F0aW9uUHJlbG9hZE1h
bmFnZXIiIGV4cGVjdGVkIHByb3BlcnR5ICJOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIiIG1pc3Np
bmcKK0ZBSUwgTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIGludGVyZmFjZTogb3BlcmF0aW9uIGRp
c2FibGUoKSBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3Bl
cnR5ICJOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIiIGV4cGVjdGVkIHByb3BlcnR5ICJOYXZpZ2F0
aW9uUHJlbG9hZE1hbmFnZXIiIG1pc3NpbmcKK0ZBSUwgTmF2aWdhdGlvblByZWxvYWRNYW5hZ2Vy
IGludGVyZmFjZTogb3BlcmF0aW9uIHNldEhlYWRlclZhbHVlKEJ5dGVTdHJpbmcpIGFzc2VydF9v
d25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIk5hdmlnYXRpb25Q
cmVsb2FkTWFuYWdlciIgZXhwZWN0ZWQgcHJvcGVydHkgIk5hdmlnYXRpb25QcmVsb2FkTWFuYWdl
ciIgbWlzc2luZworRkFJTCBOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIgaW50ZXJmYWNlOiBvcGVy
YXRpb24gZ2V0U3RhdGUoKSBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUg
b3duIHByb3BlcnR5ICJOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIiIGV4cGVjdGVkIHByb3BlcnR5
ICJOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIiIG1pc3NpbmcKIFBBU1MgU2VydmljZVdvcmtlckds
b2JhbFNjb3BlIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFj
ZSBvYmplY3QgCiBQQVNTIENsaWVudCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGll
cyBvZiBpbnRlcmZhY2Ugb2JqZWN0IAogUEFTUyBXaW5kb3dDbGllbnQgaW50ZXJmYWNlOiBleGlz
dGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCAKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL2ludGVyZmFjZXMtd2luZG93Lmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9pbnRlcmZhY2VzLXdpbmRvdy5odHRwcy5odG1sCmluZGV4IGY3MGNmNDA5MzFkYjg4
MzUwYzVmYjBmNWViYjFmYmQxMGY5MTdkYmEuLmNjM2JkYWYxMWZjN2JjMTc0ZWVmNTU1YTYwMjYz
ZTE5MmVmZGM1MzkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ludGVyZmFjZXMtd2lu
ZG93Lmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvaW50ZXJmYWNlcy13aW5kb3cu
aHR0cHMuaHRtbApAQCAtMTAsOCArMTAsOCBAQAogJ3VzZSBzdHJpY3QnOwogCiBwcm9taXNlX3Rl
c3QoYXN5bmMgKHQpID0+IHsKLSAgY29uc3Qgc3JjcyA9IFsnZG9tJywgJ2h0bWwnLCAnc2Vydmlj
ZS13b3JrZXJzJywgJ2RlZGljYXRlZC13b3JrZXJzJ107Ci0gIGNvbnN0IFtkb20sIGh0bWwsIHNl
cnZpY2VXb3JrZXJJZGwsIGRlZGljYXRlZF0gPSBhd2FpdCBQcm9taXNlLmFsbCgKKyAgY29uc3Qg
c3JjcyA9IFsnZG9tJywgJ2h0bWwnLCAnc2VydmljZS13b3JrZXJzJ107CisgIGNvbnN0IFtkb20s
IGh0bWwsIHNlcnZpY2VXb3JrZXJJZGxdID0gYXdhaXQgUHJvbWlzZS5hbGwoCiAgICAgc3Jjcy5t
YXAoaSA9PiBmZXRjaChgL2ludGVyZmFjZXMvJHtpfS5pZGxgKS50aGVuKHIgPT4gci50ZXh0KCkp
KSk7CiAKICAgdmFyIGlkbEFycmF5ID0gbmV3IElkbEFycmF5KCk7CkBAIC0yOSw3ICsyOSw2IEBA
IHByb21pc2VfdGVzdChhc3luYyAodCkgPT4gewogICAgICdDYWNoZScsCiAgICAgJ0NhY2hlU3Rv
cmFnZScsCiAgIF19KTsKLSAgaWRsQXJyYXkuYWRkX2RlcGVuZGVuY3lfaWRscyhkZWRpY2F0ZWQp
OwogICBpZGxBcnJheS5hZGRfZGVwZW5kZW5jeV9pZGxzKGRvbSk7CiAgIGlkbEFycmF5LmFkZF9k
ZXBlbmRlbmN5X2lkbHMoaHRtbCk7CiAgIGlkbEFycmF5LmFkZF9vYmplY3RzKHsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9jbGllbnRzLWZyYW1lLWZyZWV6ZS5odG1s
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2NsaWVudHMtZnJhbWUtZnJlZXplLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNzQ2OGE2NjBlOTA4NTg2NmU4ZDM4ZmYzNWYwMmNmNmE1MDg2ODIzMgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9jbGllbnRzLWZyYW1l
LWZyZWV6ZS5odG1sCkBAIC0wLDAgKzEsMTUgQEAKKzwhRE9DVFlQRSBodG1sPgorPHNjcmlwdCBz
cmM9Ii9yZXNvdXJjZXMvdGVzdGRyaXZlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jl
c291cmNlcy90ZXN0ZHJpdmVyLXZlbmRvci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorICBkb2N1
bWVudC5hZGRFdmVudExpc3RlbmVyKCdmcmVlemUnLCAoKSA9PiB7CisgICAgICBvcGVuZXIucG9z
dE1lc3NhZ2UoJ2Zyb3plbicsICIqIik7CisgIH0pOworCisgIHdpbmRvdy5vbm1lc3NhZ2UgPSAo
ZSkgPT4geworICAgIGlmIChlLmRhdGEgPT0gJ2ZyZWV6ZScpIHsKKyAgICAgIHRlc3RfZHJpdmVy
LmZyZWV6ZSgpOworICAgIH0KKyAgfTsKKyAgb3BlbmVyLnBvc3RNZXNzYWdlKCdsb2FkZWQnLCAn
KicpOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMv
Y2xpZW50cy1tYXRjaGFsbC13b3JrZXIuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMv
Y2xpZW50cy1tYXRjaGFsbC13b3JrZXIuanMKaW5kZXggZDY2MzRmNGQ0MGVmNmFkYTM0NDBiNDQz
ZmFmZjE3NmU1NDA4MmE3MS4uMTNlMTExYTJmOTE0NjRiZjE3ZmE4YzYwZmI2ZjYwNzE0NDNhNDc0
ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2NsaWVudHMtbWF0Y2hh
bGwtd29ya2VyLmpzCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9jbGllbnRzLW1h
dGNoYWxsLXdvcmtlci5qcwpAQCAtMTMsMTEgKzEzLDIwIEBAIHNlbGYub25tZXNzYWdlID0gZnVu
Y3Rpb24oZSkgewogICAgICAgICAgICAgICAvLyBJbiB0aGF0IGNhc2UsIGp1c3QgcHJldGVuZCBp
dCdzIHRvcC1sZXZlbCEKICAgICAgICAgICAgICAgZnJhbWVfdHlwZSA9ICd0b3AtbGV2ZWwnOwog
ICAgICAgICAgICAgfQotICAgICAgICAgICAgbWVzc2FnZS5wdXNoKFtjbGllbnQudmlzaWJpbGl0
eVN0YXRlLAotICAgICAgICAgICAgICAgICAgICAgICAgICBjbGllbnQuZm9jdXNlZCwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgY2xpZW50LnVybCwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgY2xpZW50LnR5cGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGZyYW1lX3R5cGVdKTsK
KyAgICAgICAgICAgIGlmIChlLmRhdGEuaW5jbHVkZUxpZmVjeWNsZVN0YXRlKSB7CisgICAgICAg
ICAgICAgIG1lc3NhZ2UucHVzaCh7dmlzaWJpbGl0eVN0YXRlOiBjbGllbnQudmlzaWJpbGl0eVN0
YXRlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvY3VzZWQ6IGNsaWVudC5mb2N1c2Vk
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDogY2xpZW50LnVybCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBsaWZlY3ljbGVTdGF0ZTogY2xpZW50LmxpZmVjeWNsZVN0YXRl
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IGNsaWVudC50eXBlLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGZyYW1lVHlwZTogZnJhbWVfdHlwZX0pOworICAgICAgICAg
ICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgbWVzc2FnZS5wdXNoKFtjbGllbnQudmlzaWJpbGl0
eVN0YXRlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsaWVudC5mb2N1c2VkLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNsaWVudC51cmwsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY2xpZW50LnR5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJhbWVf
dHlwZV0pOworICAgICAgICAgICAgfQogICAgICAgICAgIH0pOwogICAgICAgICAvLyBTb3J0IGJ5
IHVybAogICAgICAgICBpZiAoIWUuZGF0YS5kaXNhYmxlU29ydCkgewpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2R1bW15LXNoYXJlZC13b3JrZXItaW50ZXJjZXB0b3Iu
anMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZHVtbXktc2hhcmVkLXdvcmtlci1pbnRl
cmNlcHRvci5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTk5NmRhNmIyYjdmNDkx
ODIwZGRhYjE2OGU5ZDJmMmQ2ZjZjZWEzNS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZHVtbXktc2hhcmVk
LXdvcmtlci1pbnRlcmNlcHRvci5qcworKysgL2Rldi9udWxsCkBAIC0xLDkgKzAsMCBAQAotdmFy
IHdvcmtlcl90ZXh0ID0gJ29uY29ubmVjdCA9IGZ1bmN0aW9uKGUpIHsgZS5wb3J0c1swXS5wb3N0
TWVzc2FnZSgid29ya2VyIGxvYWRpbmcgaW50ZXJjZXB0ZWQgYnkgc2VydmljZSB3b3JrZXIiKTsg
fTsnOwotCi1zZWxmLm9uZmV0Y2ggPSBmdW5jdGlvbihldmVudCkgewotICBpZiAoZXZlbnQucmVx
dWVzdC51cmwuaW5kZXhPZignZHVtbXktc2hhcmVkLXdvcmtlci5qcycpICE9IC0xKSB7Ci0gICAg
ZXZlbnQucmVzcG9uZFdpdGgobmV3IFJlc3BvbnNlKAotICAgICAgICB3b3JrZXJfdGV4dCwge2hl
YWRlcnM6IHsiQ29udGVudC1UeXBlIjogImFwcGxpY2F0aW9uL2phdmFzY3JpcHQifX0pKTsKLSAg
fQotfTsKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2R1bW15LXNo
YXJlZC13b3JrZXItaW50ZXJjZXB0b3IuanMuaGVhZGVycyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jl
c291cmNlcy9kdW1teS1zaGFyZWQtd29ya2VyLWludGVyY2VwdG9yLmpzLmhlYWRlcnMKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGExN2E5YTNhMTJjZWZlODgzYTVkNGRlZTRkNWE0NWJl
ZjEyMGQwNTAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2R1bW15LXNoYXJlZC13b3JrZXItaW50ZXJjZXB0
b3IuanMuaGVhZGVycworKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLUNvbnRlbnQtVHlwZTog
YXBwbGljYXRpb24vamF2YXNjcmlwdApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVz
b3VyY2VzL2R1bW15LXdvcmtlci1pbnRlcmNlcHRvci5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jl
c291cmNlcy9kdW1teS13b3JrZXItaW50ZXJjZXB0b3IuanMKaW5kZXggYWJlYzVmZGQ1OGIyOGI3
YjZhMWQwYmE0NTNlNjdjY2UxYTRkNDk3My4uMWMzODFmZDE4MGUyYjNkM2I3YTExMzk0OTI2MDk2
MTQxYjBhM2M3NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2R1bW15
LXdvcmtlci1pbnRlcmNlcHRvci5qcworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMv
ZHVtbXktd29ya2VyLWludGVyY2VwdG9yLmpzCkBAIC0xLDIxICsxLDQ1IEBACiBpbXBvcnRTY3Jp
cHRzKCcvY29tbW9uL2dldC1ob3N0LWluZm8uc3ViLmpzJyk7CiAKLXZhciB3b3JrZXJfdGV4dCA9
ICdwb3N0TWVzc2FnZSgid29ya2VyIGxvYWRpbmcgaW50ZXJjZXB0ZWQgYnkgc2VydmljZSB3b3Jr
ZXIiKTsgJzsKK2NvbnN0IHRleHQgPSAnd29ya2VyIGxvYWRpbmcgaW50ZXJjZXB0ZWQgYnkgc2Vy
dmljZSB3b3JrZXInOworY29uc3QgZGVkaWNhdGVkX3dvcmtlcl9zY3JpcHQgPSBgcG9zdE1lc3Nh
Z2UoJyR7dGV4dH0nKTtgOworY29uc3Qgc2hhcmVkX3dvcmtlcl9zY3JpcHQgPQorICAgIGBvbmNv
bm5lY3QgPSBldnQgPT4gZXZ0LnBvcnRzWzBdLnBvc3RNZXNzYWdlKCcke3RleHR9Jyk7YDsKIAot
c2VsZi5vbmZldGNoID0gZnVuY3Rpb24oZXZlbnQpIHsKLSAgaWYgKGV2ZW50LnJlcXVlc3QudXJs
LmluZGV4T2YoJ3N5bnRoZXNpemVkJykgIT0gLTEpIHsKLSAgICBldmVudC5yZXNwb25kV2l0aChu
ZXcgUmVzcG9uc2Uod29ya2VyX3RleHQpKTsKLSAgfSBlbHNlIGlmIChldmVudC5yZXF1ZXN0LnVy
bC5pbmRleE9mKCdzYW1lLW9yaWdpbicpICE9IC0xKSB7Ci0gICAgZXZlbnQucmVzcG9uZFdpdGgo
ZmV0Y2goJ2R1bW15LXdvcmtlci1zY3JpcHQucHknKSk7Ci0gIH0gZWxzZSBpZiAoZXZlbnQucmVx
dWVzdC51cmwuaW5kZXhPZignY29ycycpICE9IC0xKSB7Ci0gICAgdmFyIHBhdGggPSAobmV3IFVS
TCgnZHVtbXktd29ya2VyLXNjcmlwdC5weScsIHNlbGYubG9jYXRpb24pKS5wYXRobmFtZTsKLSAg
ICB2YXIgdXJsID0gZ2V0X2hvc3RfaW5mbygpWydIVFRQU19SRU1PVEVfT1JJR0lOJ10gKyBwYXRo
OwotICAgIHZhciBtb2RlID0gIm5vLWNvcnMiOwotICAgIGlmIChldmVudC5yZXF1ZXN0LnVybC5p
bmRleE9mKCduby1jb3JzJykgPT0gLTEpIHsKLSAgICAgIHVybCArPSAnP0FDQU9yaWdpbj0qJzsK
LSAgICAgIG1vZGUgPSAiY29ycyI7CitzZWxmLm9uZmV0Y2ggPSBldmVudCA9PiB7CisgIGNvbnN0
IHVybCA9IGV2ZW50LnJlcXVlc3QudXJsOworICBjb25zdCBkZXN0aW5hdGlvbiA9IGV2ZW50LnJl
cXVlc3QuZGVzdGluYXRpb247CisKKyAgLy8gUmVxdWVzdCBoYW5kbGVyIGZvciBhIHN5bnRoZXNp
emVkIHJlc3BvbnNlLgorICBpZiAodXJsLmluZGV4T2YoJ3N5bnRoZXNpemVkJykgIT0gLTEpIHsK
KyAgICBpZiAoZGVzdGluYXRpb24gPT09ICd3b3JrZXInKQorICAgICAgZXZlbnQucmVzcG9uZFdp
dGgobmV3IFJlc3BvbnNlKGRlZGljYXRlZF93b3JrZXJfc2NyaXB0KSk7CisgICAgZWxzZSBpZiAo
ZGVzdGluYXRpb24gPT09ICdzaGFyZWR3b3JrZXInKQorICAgICAgZXZlbnQucmVzcG9uZFdpdGgo
bmV3IFJlc3BvbnNlKHNoYXJlZF93b3JrZXJfc2NyaXB0KSk7CisgICAgZWxzZQorICAgICAgZXZl
bnQucmVzcG9uZFdpdGgobmV3IFJlc3BvbnNlKCdVbmV4cGVjdGVkIHJlcXVlc3QhICcgKyBkZXN0
aW5hdGlvbikpOworICAgIHJldHVybjsKKyAgfQorCisgIC8vIFJlcXVlc3QgaGFuZGxlciBmb3Ig
YSBzYW1lLW9yaWdpbiByZXNwb25zZS4KKyAgaWYgKHVybC5pbmRleE9mKCdzYW1lLW9yaWdpbicp
ICE9IC0xKSB7CisgICAgZXZlbnQucmVzcG9uZFdpdGgoZmV0Y2goJ3Bvc3RtZXNzYWdlLW9uLWxv
YWQtd29ya2VyLmpzJykpOworICAgIHJldHVybjsKKyAgfQorCisgIC8vIFJlcXVlc3QgaGFuZGxl
ciBmb3IgYSBjcm9zcy1vcmlnaW4gcmVzcG9uc2UuCisgIGlmICh1cmwuaW5kZXhPZignY29ycycp
ICE9IC0xKSB7CisgICAgY29uc3QgZmlsZW5hbWUgPSAncG9zdG1lc3NhZ2Utb24tbG9hZC13b3Jr
ZXIuanMnOworICAgIGNvbnN0IHBhdGggPSAobmV3IFVSTChmaWxlbmFtZSwgc2VsZi5sb2NhdGlv
bikpLnBhdGhuYW1lOworICAgIGxldCBuZXdfdXJsID0gZ2V0X2hvc3RfaW5mbygpWydIVFRQU19S
RU1PVEVfT1JJR0lOJ10gKyBwYXRoOworICAgIGxldCBtb2RlOworICAgIGlmICh1cmwuaW5kZXhP
Zignbm8tY29ycycpICE9IC0xKSB7CisgICAgICAvLyBUZXN0IG5vLWNvcnMgbW9kZS4KKyAgICAg
IG1vZGUgPSAnbm8tY29ycyc7CisgICAgfSBlbHNlIHsKKyAgICAgIC8vIFRlc3QgY29ycyBtb2Rl
LgorICAgICAgbmV3X3VybCArPSAnP3BpcGU9aGVhZGVyKEFjY2Vzcy1Db250cm9sLUFsbG93LU9y
aWdpbiwqKSc7CisgICAgICBtb2RlID0gJ2NvcnMnOwogICAgIH0KLSAgICBldmVudC5yZXNwb25k
V2l0aChmZXRjaCh1cmwsIHsgbW9kZTogbW9kZSB9KSk7CisgICAgZXZlbnQucmVzcG9uZFdpdGgo
ZmV0Y2gobmV3X3VybCwgeyBtb2RlOiBtb2RlIH0pKTsKICAgfQogfTsKLQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2R1bW15LXdvcmtlci1zY3JpcHQucHkgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZHVtbXktd29ya2VyLXNjcmlwdC5weQpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggNmY0MGI1ZWQ2MDVhY2M0NmM1ZWQ5NjYzNDkzOGQzNjFkZGVl
NmQ4Ni4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZHVtbXktd29ya2VyLXNjcmlwdC5weQorKysgL2Rldi9u
dWxsCkBAIC0xLDkgKzAsMCBAQAotZGVmIG1haW4ocmVxdWVzdCwgcmVzcG9uc2UpOgotICAgIGhl
YWRlcnMgPSBbXQotCi0gICAgaWYgIkFDQU9yaWdpbiIgaW4gcmVxdWVzdC5HRVQ6Ci0gICAgICAg
IGZvciBpdGVtIGluIHJlcXVlc3QuR0VUWyJBQ0FPcmlnaW4iXS5zcGxpdCgiLCIpOgotICAgICAg
ICAgICAgaGVhZGVycy5hcHBlbmQoKCJBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4iLCBpdGVt
KSkKLQotICAgIHJldHVybiBoZWFkZXJzLCAicG9zdE1lc3NhZ2UoJ2R1bW15LXdvcmtlci1zY3Jp
cHQgbG9hZGVkJyk7IgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMv
aW1wb3J0LXNjcmlwdHMtNDA0LWFmdGVyLXVwZGF0ZS1wbHVzLXVwZGF0ZS13b3JrZXIuanMgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvaW1wb3J0LXNjcmlwdHMtNDA0LWFmdGVyLXVwZGF0
ZS1wbHVzLXVwZGF0ZS13b3JrZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTk4OTlkOGU3Mjc0ZWE4YjY1NjIz
ZTAxOTQxMTcwMGVjNjVkYmM4NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L3Jlc291cmNlcy9pbXBvcnQtc2NyaXB0cy00MDQtYWZ0ZXItdXBkYXRlLXBsdXMtdXBkYXRlLXdv
cmtlci5qcwpAQCAtMCwwICsxLDggQEAKKy8vIFRoaXMgd29ya2VyIGltcG9ydHMgYSBzY3JpcHQg
dGhhdCByZXR1cm5zIDIwMCBvbiB0aGUgZmlyc3QgcmVxdWVzdCBhbmQgNDA0CisvLyBvbiB0aGUg
c2Vjb25kIHJlcXVlc3QsIGFuZCBhIHNjcmlwdCB0aGF0IGlzIHVwZGF0ZWQgZXZlcnkgdGltZSB3
aGVuCisvLyByZXF1ZXN0aW5nIGl0LgorY29uc3QgcGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFt
cyhsb2NhdGlvbi5zZWFyY2gpOworY29uc3Qga2V5ID0gcGFyYW1zLmdldCgnS2V5Jyk7Citjb25z
dCBhZGRpdGlvbmFsX2tleSA9IHBhcmFtcy5nZXQoJ0FkZGl0aW9uYWxLZXknKTsKK2ltcG9ydFNj
cmlwdHMoYHVwZGF0ZS13b3JrZXIucHk/S2V5PSR7a2V5fSZNb2RlPW5vdF9mb3VuZGAsCisgICAg
ICAgICAgICAgIGB1cGRhdGUtd29ya2VyLnB5P0tleT0ke2FkZGl0aW9uYWxfa2V5fSZNb2RlPW5v
cm1hbGApOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ltcG9ydC1z
Y3JpcHRzLTQwNC1hZnRlci11cGRhdGUuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMv
aW1wb3J0LXNjcmlwdHMtNDA0LWFmdGVyLXVwZGF0ZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNTY5MzQ2MDM1
YWMxMWM1NTdhMWUxOWQ2YmY5YmE4YjkwNTk3NTM5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvcmVzb3VyY2VzL2ltcG9ydC1zY3JpcHRzLTQwNC1hZnRlci11cGRhdGUuanMK
QEAgLTAsMCArMSw2IEBACisvLyBUaGlzIHdvcmtlciBpbXBvcnRzIGEgc2NyaXB0IHRoYXQgcmV0
dXJucyAyMDAgb24gdGhlIGZpcnN0IHJlcXVlc3QgYW5kIDQwNAorLy8gb24gdGhlIHNlY29uZCBy
ZXF1ZXN0LiBUaGUgcmVzdWx0aW5nIGJvZHkgYWxzbyBjaGFuZ2VzIGVhY2ggdGltZSBpdCBpcwor
Ly8gcmVxdWVzdGVkLgorY29uc3QgcGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyhsb2NhdGlv
bi5zZWFyY2gpOworY29uc3Qga2V5ID0gcGFyYW1zLmdldCgnS2V5Jyk7CitpbXBvcnRTY3JpcHRz
KGB1cGRhdGUtd29ya2VyLnB5P0tleT0ke2tleX0mTW9kZT1ub3RfZm91bmRgKTsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9pbXBvcnQtc2NyaXB0cy00MDQuanMgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvaW1wb3J0LXNjcmlwdHMtNDA0LmpzCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjE5YzdhNGI4ZTU2MWIzZDk1ZjEwNDk2ZTkyYTJjNzI2NGQ2OTM4MTUKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvaW1wb3J0LXNjcmlwdHMtNDA0Lmpz
CkBAIC0wLDAgKzEgQEAKK2ltcG9ydFNjcmlwdHMoJzQwNC5weScpOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ltcG9ydC1zY3JpcHRzLXJlZGlyZWN0LW9uLXNlY29u
ZC10aW1lLXdvcmtlci5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9pbXBvcnQtc2Ny
aXB0cy1yZWRpcmVjdC1vbi1zZWNvbmQtdGltZS13b3JrZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjYxMmFi
OGU2YWE0MjcyMDgzYWJmNTczOTc4ZDE5MzJkMThmNjUzNQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9pbXBvcnQtc2NyaXB0cy1yZWRpcmVjdC1vbi1zZWNv
bmQtdGltZS13b3JrZXIuanMKQEAgLTAsMCArMSw3IEBACisvLyBUaGlzIHdvcmtlciBpbXBvcnRz
IGEgc2NyaXB0IHRoYXQgcmV0dXJucyAyMDAgb24gdGhlIGZpcnN0IHJlcXVlc3QgYW5kIGEKKy8v
IHJlZGlyZWN0IG9uIHRoZSBzZWNvbmQgcmVxdWVzdC4gVGhlIHJlc3VsdGluZyBib2R5IGFsc28g
Y2hhbmdlcyBlYWNoIHRpbWUgaXQKKy8vIGlzIHJlcXVlc3RlZC4KK2NvbnN0IHBhcmFtcyA9IG5l
dyBVUkxTZWFyY2hQYXJhbXMobG9jYXRpb24uc2VhcmNoKTsKK2NvbnN0IGtleSA9IHBhcmFtcy5n
ZXQoJ0tleScpOworaW1wb3J0U2NyaXB0cyhgdXBkYXRlLXdvcmtlci5weT9LZXk9JHtrZXl9Jk1v
ZGU9cmVkaXJlY3QmYCArCisgICAgICAgICAgICAgIGBSZWRpcmVjdD11cGRhdGUtd29ya2VyLnB5
P0tleT0ke2tleX0lMjZNb2RlPW5vcm1hbGApOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvcmVzb3VyY2VzL2ludGVyZmFjZXMtd29ya2VyLnN1Yi5qcyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L3Jlc291cmNlcy9pbnRlcmZhY2VzLXdvcmtlci5zdWIuanMKaW5kZXggNTZiYzhhZjQ0NWQ1ZTc5
MDBiNDU3M2MzNWU2ZDY4MGVmZjE2YzY3MS4uYWM3OWRkYzAwNTY4OGFmZmU5YWNjNjdiODNmNDNl
ZjMwNGY4MWM4MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ludGVy
ZmFjZXMtd29ya2VyLnN1Yi5qcworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvaW50
ZXJmYWNlcy13b3JrZXIuc3ViLmpzCkBAIC01LDggKzUsOCBAQCBpbXBvcnRTY3JpcHRzKCcvcmVz
b3VyY2VzL1dlYklETFBhcnNlci5qcycpOwogaW1wb3J0U2NyaXB0cygnL3Jlc291cmNlcy9pZGxo
YXJuZXNzLmpzJyk7CiAKIHByb21pc2VfdGVzdChhc3luYyAodCkgPT4gewotICBjb25zdCBzcmNz
ID0gWydkb20nLCAnaHRtbCcsICdzZXJ2aWNlLXdvcmtlcnMnLCAnZGVkaWNhdGVkLXdvcmtlcnMn
XTsKLSAgY29uc3QgW2RvbSwgaHRtbCwgc2VydmljZVdvcmtlcklkbCwgZGVkaWNhdGVkXSA9IGF3
YWl0IFByb21pc2UuYWxsKAorICBjb25zdCBzcmNzID0gWydkb20nLCAnaHRtbCcsICdzZXJ2aWNl
LXdvcmtlcnMnXTsKKyAgY29uc3QgW2RvbSwgaHRtbCwgc2VydmljZVdvcmtlcklkbF0gPSBhd2Fp
dCBQcm9taXNlLmFsbCgKICAgICBzcmNzLm1hcChpID0+IGZldGNoKGAvaW50ZXJmYWNlcy8ke2l9
LmlkbGApLnRoZW4ociA9PiByLnRleHQoKSkpKTsKIAogICB2YXIgaWRsQXJyYXkgPSBuZXcgSWRs
QXJyYXkoKTsKQEAgLTI0LDcgKzI0LDYgQEAgcHJvbWlzZV90ZXN0KGFzeW5jICh0KSA9PiB7CiAg
ICAgJ0NhY2hlJywKICAgICAnQ2FjaGVTdG9yYWdlJywKICAgXX0pOwotICBpZGxBcnJheS5hZGRf
ZGVwZW5kZW5jeV9pZGxzKGRlZGljYXRlZCk7CiAgIGlkbEFycmF5LmFkZF9kZXBlbmRlbmN5X2lk
bHMoZG9tKTsKICAgaWRsQXJyYXkuYWRkX2RlcGVuZGVuY3lfaWRscyhodG1sKTsKICAgaWRsQXJy
YXkuYWRkX29iamVjdHMoewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2Vz
L2xvYWRfd29ya2VyLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2xvYWRfd29ya2Vy
LmpzCmluZGV4IDJjODBmMjVhM2RiMjgzMWY0YjFlNTYzM2E0NTU0ODFkN2EzNWI0YzcuLjE4YzY3
M2JlYmNhYjk4Mjc3MDdkYTg1NWYzOGE3NTQ5YjY5NWRhN2YgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL3Jlc291cmNlcy9sb2FkX3dvcmtlci5qcworKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9yZXNvdXJjZXMvbG9hZF93b3JrZXIuanMKQEAgLTEsMjkgKzEsMjkgQEAKLXNlbGYub25tZXNz
YWdlID0gZnVuY3Rpb24gKGV2dCkgewotICAgIGlmIChldnQuZGF0YSA9PSAieGhyIikgewotICAg
ICAgICB2YXIgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7Ci0gICAgICAgIHhoci5vcGVuKCJH
RVQiLCAic3ludGhlc2l6ZWQtcmVzcG9uc2UudHh0IiwgdHJ1ZSk7Ci0gICAgICAgIHhoci5yZXNw
b25zZVR5cGUgPSAidGV4dCI7Ci0gICAgICAgIHhoci5zZW5kKCk7Ci0gICAgICAgIHhoci5vbmxv
YWQgPSBmdW5jdGlvbiAoZXZ0KSB7Ci0gICAgICAgICAgICBwb3N0TWVzc2FnZSh4aHIucmVzcG9u
c2VUZXh0KTsKLSAgICAgICAgfTsKLSAgICAgICAgeGhyLm9uZXJyb3IgPSBmdW5jdGlvbigpIHsK
LSAgICAgICAgICAgIHBvc3RNZXNzYWdlKCJYSFIgZmFpbGVkISIpOwotICAgICAgICB9OwotICAg
IH0gZWxzZSBpZiAoZXZ0LmRhdGEgPT0gImZldGNoIikgewotICAgICAgICBmZXRjaCgic3ludGhl
c2l6ZWQtcmVzcG9uc2UudHh0IikKLSAgICAgICAgICAudGhlbihmdW5jdGlvbihyZXNwb25zZSkg
ewotICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2UudGV4dCgpOwotICAgICAgICAgICAgfSkK
LSAgICAgICAgICAudGhlbihmdW5jdGlvbihkYXRhKSB7Ci0gICAgICAgICAgICAgIHBvc3RNZXNz
YWdlKGRhdGEpOwotICAgICAgICAgICAgfSkKLSAgICAgICAgICAuY2F0Y2goZnVuY3Rpb24oZXJy
b3IpIHsKLSAgICAgICAgICAgICAgcG9zdE1lc3NhZ2UoIkZldGNoIGZhaWxlZCEiKTsKLSAgICAg
ICAgICAgIH0pOwotICAgIH0gZWxzZSBpZiAoZXZ0LmRhdGEgPT0gImltcG9ydFNjcmlwdHMiKSB7
Ci0gICAgICAgIGltcG9ydFNjcmlwdHMoInN5bnRoZXNpemVkLXJlc3BvbnNlLmpzIik7Ci0gICAg
fSBlbHNlIHsKLSAgICAgICAgdGhyb3cgIlVuZXhwZWN0ZWQgbWVzc2FnZSEgIiArIGV2dC5kYXRh
OwotICAgIH0KK2Z1bmN0aW9uIHJ1bl90ZXN0KGRhdGEsIHNlbmRlcikgeworICBpZiAoZGF0YSA9
PT0gJ3hocicpIHsKKyAgICBjb25zdCB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKKyAgICB4
aHIub3BlbignR0VUJywgJ3N5bnRoZXNpemVkLXJlc3BvbnNlLnR4dCcsIHRydWUpOworICAgIHho
ci5yZXNwb25zZVR5cGUgPSAndGV4dCc7CisgICAgeGhyLnNlbmQoKTsKKyAgICB4aHIub25sb2Fk
ID0gZXZ0ID0+IHNlbmRlci5wb3N0TWVzc2FnZSh4aHIucmVzcG9uc2VUZXh0KTsKKyAgICB4aHIu
b25lcnJvciA9ICgpID0+IHNlbmRlci5wb3N0TWVzc2FnZSgnWEhSIGZhaWxlZCEnKTsKKyAgfSBl
bHNlIGlmIChkYXRhID09PSAnZmV0Y2gnKSB7CisgICAgZmV0Y2goJ3N5bnRoZXNpemVkLXJlc3Bv
bnNlLnR4dCcpCisgICAgICAgIC50aGVuKHJlc3BvbnNlID0+IHJlc3BvbnNlLnRleHQoKSkKKyAg
ICAgICAgLnRoZW4oZGF0YSA9PiBzZW5kZXIucG9zdE1lc3NhZ2UoZGF0YSkpCisgICAgICAgIC5j
YXRjaChlcnJvciA9PiBzZW5kZXIucG9zdE1lc3NhZ2UoJ0ZldGNoIGZhaWxlZCEnKSk7CisgIH0g
ZWxzZSBpZiAoZGF0YSA9PT0gJ2ltcG9ydFNjcmlwdHMnKSB7CisgICAgaW1wb3J0U2NyaXB0cygn
c3ludGhlc2l6ZWQtcmVzcG9uc2UuanMnKTsKKyAgICAvLyB8bWVzc2FnZXwgaXMgcHJvdmlkZWQg
YnkgJ3N5bnRoZXNpemVkLXJlc3BvbnNlLmpzJzsKKyAgICBzZW5kZXIucG9zdE1lc3NhZ2UobWVz
c2FnZSk7CisgIH0gZWxzZSB7CisgICAgc2VuZGVyLnBvc3RNZXNzYWdlKCdVbmV4cGVjdGVkIG1l
c3NhZ2UhICcgKyBkYXRhKTsKKyAgfQorfQorCisvLyBFbnRyeSBwb2ludCBmb3IgZGVkaWNhdGVk
IHdvcmtlcnMuCitzZWxmLm9ubWVzc2FnZSA9IGV2dCA9PiBydW5fdGVzdChldnQuZGF0YSwgc2Vs
Zik7CisKKy8vIEVudHJ5IHBvaW50IGZvciBzaGFyZWQgd29ya2Vycy4KK3NlbGYub25jb25uZWN0
ID0gZXZ0ID0+IHsKKyAgZXZ0LnBvcnRzWzBdLm9ubWVzc2FnZSA9IGUgPT4gcnVuX3Rlc3QoZS5k
YXRhLCBldnQucG9ydHNbMF0pOwogfTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jl
c291cmNlcy9uZXN0ZWRfbG9hZF93b3JrZXIuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJj
ZXMvbmVzdGVkX2xvYWRfd29ya2VyLmpzCmluZGV4IDZlMmU5ZWRjNGQ4YjM1ZTAzZjVhYTRiMjk5
NjY4MTJhZGRmNDM0NDQuLmVmMGVkOGZjNzA0Y2VhYTgxZjFlZWY4ZDRlZDc1ZmQwNDFiYWFlNmQg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9uZXN0ZWRfbG9hZF93b3Jr
ZXIuanMKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL25lc3RlZF9sb2FkX3dvcmtl
ci5qcwpAQCAtMSw5ICsxLDIzIEBACi12YXIgd29ya2VyID0gbmV3IFdvcmtlcigibG9hZF93b3Jr
ZXIuanMiKTsKLQotc2VsZi5vbm1lc3NhZ2UgPSBmdW5jdGlvbiAoZXZ0KSB7Ci0gIHdvcmtlci5w
b3N0TWVzc2FnZShldnQuZGF0YSk7CisvLyBFbnRyeSBwb2ludCBmb3IgZGVkaWNhdGVkIHdvcmtl
cnMuCitzZWxmLm9ubWVzc2FnZSA9IGV2dCA9PiB7CisgIHRyeSB7CisgICAgY29uc3Qgd29ya2Vy
ID0gbmV3IFdvcmtlcignbG9hZF93b3JrZXIuanMnKTsKKyAgICB3b3JrZXIub25tZXNzYWdlID0g
ZXZ0ID0+IHNlbGYucG9zdE1lc3NhZ2UoZXZ0LmRhdGEpOworICAgIHdvcmtlci5wb3N0TWVzc2Fn
ZShldnQuZGF0YSk7CisgIH0gY2F0Y2ggKGVycikgeworICAgIHNlbGYucG9zdE1lc3NhZ2UoJ1Vu
ZXhwZWN0ZWQgZXJyb3IhICcgKyBlcnIubWVzc2FnZSk7CisgIH0KIH07CiAKLXdvcmtlci5vbm1l
c3NhZ2UgPSBmdW5jdGlvbiAoZXZ0KSB7Ci0gIHNlbGYucG9zdE1lc3NhZ2UoZXZ0LmRhdGEpOwot
fQorLy8gRW50cnkgcG9pbnQgZm9yIHNoYXJlZCB3b3JrZXJzLgorc2VsZi5vbmNvbm5lY3QgPSBl
dnQgPT4geworICBldnQucG9ydHNbMF0ub25tZXNzYWdlID0gZSA9PiB7CisgICAgdHJ5IHsKKyAg
ICAgIGNvbnN0IHdvcmtlciA9IG5ldyBXb3JrZXIoJ2xvYWRfd29ya2VyLmpzJyk7CisgICAgICB3
b3JrZXIub25tZXNzYWdlID0gZSA9PiBldnQucG9ydHNbMF0ucG9zdE1lc3NhZ2UoZS5kYXRhKTsK
KyAgICAgIHdvcmtlci5wb3N0TWVzc2FnZShldnQuZGF0YSk7CisgICAgfSBjYXRjaCAoZXJyKSB7
CisgICAgICBldnQucG9ydHNbMF0ucG9zdE1lc3NhZ2UoJ1VuZXhwZWN0ZWQgZXJyb3IhICcgKyBl
cnIubWVzc2FnZSk7CisgICAgfQorICB9OworfTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3Jlc291cmNlcy9wb3N0bWVzc2FnZS1vbi1sb2FkLXdvcmtlci5qcyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL3Jlc291cmNlcy9wb3N0bWVzc2FnZS1vbi1sb2FkLXdvcmtlci5qcwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5jMmIwYmNiOGJmYjBhYTBhNzYwNzE0Mzg0MGYxZjU2YTM4ZDhiMGEzCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3Bvc3RtZXNzYWdlLW9uLWxvYWQtd29y
a2VyLmpzCkBAIC0wLDAgKzEsOSBAQAoraWYgKCdEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZScg
aW4gc2VsZiAmJgorICAgIHNlbGYgaW5zdGFuY2VvZiBEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29w
ZSkgeworICBwb3N0TWVzc2FnZSgnZGVkaWNhdGVkIHdvcmtlciBzY3JpcHQgbG9hZGVkJyk7Cit9
IGVsc2UgaWYgKCdTaGFyZWRXb3JrZXJHbG9iYWxTY29wZScgaW4gc2VsZiAmJgorICAgIHNlbGYg
aW5zdGFuY2VvZiBTaGFyZWRXb3JrZXJHbG9iYWxTY29wZSkgeworICBzZWxmLm9uY29ubmVjdCA9
IGV2dCA9PiB7CisgICAgZXZ0LnBvcnRzWzBdLnBvc3RNZXNzYWdlKCdzaGFyZWQgd29ya2VyIHNj
cmlwdCBsb2FkZWQnKTsKKyAgfTsKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jl
c291cmNlcy9zaGFyZWQtd29ya2VyLWNvbnRyb2xsZWQuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9y
ZXNvdXJjZXMvc2hhcmVkLXdvcmtlci1jb250cm9sbGVkLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAxY2NjMmZlM2JkYmU2OGFkMjAwZjcwMzdmZDVjNjhkNzY4OTMxODM0Li4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3Jlc291cmNlcy9zaGFyZWQtd29ya2VyLWNvbnRyb2xsZWQuanMKKysrIC9kZXYvbnVsbApA
QCAtMSw4ICswLDAgQEAKLW9uY29ubmVjdCA9IGZ1bmN0aW9uKGUpIHsKLSAgdmFyIHBvcnQgPSBl
LnBvcnRzWzBdOwotICB2YXIgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7Ci0gIHhoci5vbmxv
YWQgPSBmdW5jdGlvbigpIHsgcG9ydC5wb3N0TWVzc2FnZSh0aGlzLnJlc3BvbnNlVGV4dCk7IH07
Ci0gIHhoci5vbmVycm9yID0gZnVuY3Rpb24oZSkgeyBwb3J0LnBvc3RNZXNzYWdlKGUpOyB9Owot
ICB4aHIub3BlbignR0VUJywgJ2R1bW15LnR4dD9zaW1wbGUnLCB0cnVlKTsKLSAgeGhyLnNlbmQo
KTsKLX07CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvc2hhcmVkLXdv
cmtlci1pbXBvcnQuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvc2hhcmVkLXdvcmtl
ci1pbXBvcnQuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdjNTU0YmQ3NDE1MjA5
YjI2NmZmZmNlYjkwMTg1YTc5ZWJkNzU2YzUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3NoYXJlZC13b3Jr
ZXItaW1wb3J0LmpzCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotaW1wb3J0U2NyaXB0cygn
aW1wb3J0LWR1bW15LXNoYXJlZC13b3JrZXIuanMnKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL3Jlc291cmNlcy91cGRhdGUtZHVyaW5nLWluc3RhbGxhdGlvbi13b3JrZXIuanMgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvdXBkYXRlLWR1cmluZy1pbnN0YWxsYXRpb24td29y
a2VyLmpzCmluZGV4IDNmODk4ODFjMDQzODQ1OTBiOGIxMzJjMzkyOTc3MjU2YmZiODQ3ZWQuLmYx
OTk3YmQ4MjRlOGUxNjVjYzExOWE1MjA4MmQ3NDJiZDYzZjRlNGQgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL3Jlc291cmNlcy91cGRhdGUtZHVyaW5nLWluc3RhbGxhdGlvbi13b3JrZXIu
anMKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3VwZGF0ZS1kdXJpbmctaW5zdGFs
bGF0aW9uLXdvcmtlci5qcwpAQCAtMTQsNiArMTQsOSBAQCBhZGRFdmVudExpc3RlbmVyKCdpbnN0
YWxsJywgZXZlbnQgPT4gewogfSk7CiAKIGFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCBldmVu
dCA9PiB7CisgIGxldCByZXNvbHZlV2FpdFVudGlsOworICBldmVudC53YWl0VW50aWwobmV3IFBy
b21pc2UocmVzb2x2ZSA9PiB7IHJlc29sdmVXYWl0VW50aWwgPSByZXNvbHZlOyB9KSk7CisKICAg
Ly8gVXNlIGEgZGVkaWNhdGVkIE1lc3NhZ2VDaGFubmVsIGZvciBldmVyeSByZXF1ZXN0IHNvIHNl
bmRlcnMgY2FuIHdhaXQgZm9yCiAgIC8vIGluZGl2aWR1YWwgcmVxdWVzdHMgdG8gZmluaXNoLCBh
bmQgY29uY3VycmVudCByZXF1ZXN0cyAodG8gZGlmZmVyZW50CiAgIC8vIHdvcmtlcnMpIGRvbid0
IGNhdXNlIHJhY2UgY29uZGl0aW9ucy4KQEAgLTIzLDEzICsyNiwxMyBAQCBhZGRFdmVudExpc3Rl
bmVyKCdtZXNzYWdlJywgZXZlbnQgPT4gewogICAgICAgY2FzZSAnYXdhaXRJbnN0YWxsRXZlbnQn
OgogICAgICAgICBpbnN0YWxsRXZlbnRGaXJlZC50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHBv
cnQucG9zdE1lc3NhZ2UoJ2luc3RhbGxFdmVudEZpcmVkJyk7Ci0gICAgICAgIH0pOworICAgICAg
ICB9KS5maW5hbGx5KHJlc29sdmVXYWl0VW50aWwpOwogICAgICAgICBicmVhazsKIAogICAgICAg
Y2FzZSAnZmluaXNoSW5zdGFsbCc6CiAgICAgICAgIGluc3RhbGxGaW5pc2hlZC50aGVuKCgpID0+
IHsKICAgICAgICAgICAgIHBvcnQucG9zdE1lc3NhZ2UoJ2luc3RhbGxGaW5pc2hlZCcpOwotICAg
ICAgICB9KTsKKyAgICAgICAgfSkuZmluYWxseShyZXNvbHZlV2FpdFVudGlsKTsKICAgICAgICAg
ZmluaXNoSW5zdGFsbCgpOwogICAgICAgICBicmVhazsKIApAQCAtNDQsMTMgKzQ3LDE0IEBAIGFk
ZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCBldmVudCA9PiB7CiAgICAgICAgICAgICAgICAgc3Vj
Y2VzczogZmFsc2UsCiAgICAgICAgICAgICAgICAgZXhjZXB0aW9uOiBleGNlcHRpb24ubmFtZSwK
ICAgICAgICAgICAgIH0pOwotICAgICAgICB9KTsKKyAgICAgICAgfSkuZmluYWxseShyZXNvbHZl
V2FpdFVudGlsKTsKICAgICAgICAgcG9ydC5wb3N0TWVzc2FnZShjaGFubmVsLnBvcnQxLCBbY2hh
bm5lbC5wb3J0MV0pOwogICAgICAgICBicmVhazsKICAgICAgIH0KIAogICAgICAgZGVmYXVsdDoK
ICAgICAgICAgcG9ydC5wb3N0TWVzc2FnZSgnVW5leHBlY3RlZCBjb21tYW5kICcgKyBldmVudC5k
YXRhKTsKKyAgICAgICAgcmVzb2x2ZVdhaXRVbnRpbCgpOwogICAgICAgICBicmVhazsKICAgICB9
CiAgIH07CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvdXBkYXRlLXNt
YWxsZXItYm9keS1hZnRlci11cGRhdGUtd29ya2VyLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVz
b3VyY2VzL3VwZGF0ZS1zbWFsbGVyLWJvZHktYWZ0ZXItdXBkYXRlLXdvcmtlci5qcwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5kNDNmNmIyZjVjM2Q2NDE1NmFlNjg5NzBlYWIzYTY1NTExYzVjOTYwCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3VwZGF0ZS1zbWFsbGVyLWJvZHkt
YWZ0ZXItdXBkYXRlLXdvcmtlci5qcwpAQCAtMCwwICsxIEBACisvLyBIZWxsbyB3b3JsZCEKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy91cGRhdGUtc21hbGxlci1ib2R5
LWJlZm9yZS11cGRhdGUtd29ya2VyLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3Vw
ZGF0ZS1zbWFsbGVyLWJvZHktYmVmb3JlLXVwZGF0ZS13b3JrZXIuanMKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzBj
ODc4M2E3MDI1NTAxMmU1NzYzNDAzZDE1NDY3ZDE0OGIyNDliMAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy91cGRhdGUtc21hbGxlci1ib2R5LWJlZm9yZS11
cGRhdGUtd29ya2VyLmpzCkBAIC0wLDAgKzEsMiBAQAorLy8gSGVsbG8gd29ybGQhCisvLyAqKndp
dGggZXh0cmEgYm9keSoqCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMv
dXBkYXRlLXdvcmtlci1mcm9tLWZpbGUucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMv
dXBkYXRlLXdvcmtlci1mcm9tLWZpbGUucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzYwNDcxOWM4ZTBjNWRhY2Qy
MTZiZjk2OTIxZDgyNWRkMDIxMWFlYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3Jlc291cmNlcy91cGRhdGUtd29ya2VyLWZyb20tZmlsZS5weQpAQCAtMCwwICsxLDMxIEBA
CitpbXBvcnQgb3MKKworZGVmIHNlcnZlX2pzX2Zyb21fZmlsZShyZXF1ZXN0LCByZXNwb25zZSwg
ZmlsZW5hbWUpOgorICBib2R5ID0gJycKKyAgcGF0aCA9IG9zLnBhdGguam9pbihvcy5wYXRoLmRp
cm5hbWUoX19maWxlX18pLCBmaWxlbmFtZSkKKyAgd2l0aCBvcGVuKHBhdGgsICdyYicpIGFzIGY6
CisgICAgYm9keSA9IGYucmVhZCgpCisgIHJldHVybiAoCisgICAgWworICAgICAgKCdDYWNoZS1D
b250cm9sJywgJ25vLWNhY2hlLCBtdXN0LXJldmFsaWRhdGUnKSwKKyAgICAgICgnUHJhZ21hJywg
J25vLWNhY2hlJyksCisgICAgICAoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qYXZhc2Ny
aXB0JykKKyAgICBdLCBib2R5KQorCitkZWYgbWFpbihyZXF1ZXN0LCByZXNwb25zZSk6CisgIGtl
eSA9IHJlcXVlc3QuR0VUWyJLZXkiXQorCisgIHZpc2l0ZWRfY291bnQgPSByZXF1ZXN0LnNlcnZl
ci5zdGFzaC50YWtlKGtleSkKKyAgaWYgdmlzaXRlZF9jb3VudCBpcyBOb25lOgorICAgIHZpc2l0
ZWRfY291bnQgPSAwCisKKyAgIyBLZWVwIGhvdyBtYW55IHRpbWVzIHRoZSB0ZXN0IHJlcXVlc3Rl
ZCB0aGlzIHJlc291cmNlLgorICB2aXNpdGVkX2NvdW50ICs9IDEKKyAgcmVxdWVzdC5zZXJ2ZXIu
c3Rhc2gucHV0KGtleSwgdmlzaXRlZF9jb3VudCkKKworICAjIFNlcnZlIGEgZmlsZSBiYXNlZCBv
biBob3cgbWFueSB0aW1lcyBpdCdzIHJlcXVlc3RlZC4KKyAgaWYgdmlzaXRlZF9jb3VudCA9PSAx
OgorICAgIHJldHVybiBzZXJ2ZV9qc19mcm9tX2ZpbGUocmVxdWVzdCwgcmVzcG9uc2UsIHJlcXVl
c3QuR0VUWyJGaXJzdCJdKQorICBpZiB2aXNpdGVkX2NvdW50ID09IDI6CisgICAgcmV0dXJuIHNl
cnZlX2pzX2Zyb21fZmlsZShyZXF1ZXN0LCByZXNwb25zZSwgcmVxdWVzdC5HRVRbIlNlY29uZCJd
KQorICByYWlzZSAiVW5rbm93biBzdGF0ZSIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L3Jlc291cmNlcy91cGRhdGUtd29ya2VyLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2Vz
L3VwZGF0ZS13b3JrZXIucHkKaW5kZXggYmM5YjMyYWQzZTY4ODcwZDlmNTQwNTI0ZTcwY2Q3OTQ3
MzQ2ZTVjOC4uZDI1MTc5MzA0YTczNjYwMTIyMDM2ZTVkNWZlYzIwNjdkYzYxNTk3YSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3VwZGF0ZS13b3JrZXIucHkKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3VwZGF0ZS13b3JrZXIucHkKQEAgLTEsNDYgKzEs
NjAgQEAKLWltcG9ydCB0aW1lCitpbXBvcnQgdXJsbGliCisKK2RlZiByZWRpcmVjdF9yZXNwb25z
ZShyZXF1ZXN0LCByZXNwb25zZSwgdmlzaXRlZF9jb3VudCk6CisgICMgfHZpc2l0ZWRfY291bnR8
IGlzIHVzZWQgYXMgYSB1bmlxdWUgaWQgdG8gZGlmZmVyZW50aWF0ZSByZXNwb25zZXMKKyAgIyBl
dmVyeSB0aW1lLgorICBsb2NhdGlvbiA9ICdlbXB0eS5qcycKKyAgaWYgJ1JlZGlyZWN0JyBpbiBy
ZXF1ZXN0LkdFVDoKKyAgICAgIGxvY2F0aW9uID0gdXJsbGliLnVucXVvdGUocmVxdWVzdC5HRVRb
J1JlZGlyZWN0J10pCisgIHJldHVybiAoMzAxLAorICBbCisgICAgKCdDYWNoZS1Db250cm9sJywg
J25vLWNhY2hlLCBtdXN0LXJldmFsaWRhdGUnKSwKKyAgICAoJ1ByYWdtYScsICduby1jYWNoZScp
LAorICAgICgnQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2phdmFzY3JpcHQnKSwKKyAgICAo
J0xvY2F0aW9uJywgbG9jYXRpb24pLAorICBdLAorICAnLyogJXMgKi8nICUgc3RyKHZpc2l0ZWRf
Y291bnQpKQorCitkZWYgbm90X2ZvdW5kX3Jlc3BvbnNlKCk6CisgIHJldHVybiA0MDQsIFsoJ0Nv
bnRlbnQtVHlwZScsICd0ZXh0L3BsYWluJyldLCAiUGFnZSBub3QgZm91bmQiCisKK2RlZiBva19y
ZXNwb25zZShyZXF1ZXN0LCByZXNwb25zZSwgdmlzaXRlZF9jb3VudCwKKyAgICAgICAgICAgICAg
ICBleHRyYV9ib2R5PScnLCBtaW1lX3R5cGU9J2FwcGxpY2F0aW9uL2phdmFzY3JpcHQnKToKKyAg
IyB8dmlzaXRlZF9jb3VudHwgaXMgdXNlZCBhcyBhIHVuaXF1ZSBpZCB0byBkaWZmZXJlbnRpYXRl
IHJlc3BvbnNlcworICAjIGV2ZXJ5IHRpbWUuCisgIHJldHVybiAoCisgICAgWworICAgICAgKCdD
YWNoZS1Db250cm9sJywgJ25vLWNhY2hlLCBtdXN0LXJldmFsaWRhdGUnKSwKKyAgICAgICgnUHJh
Z21hJywgJ25vLWNhY2hlJyksCisgICAgICAoJ0NvbnRlbnQtVHlwZScsIG1pbWVfdHlwZSkKKyAg
ICBdLAorICAgICcvKiAlcyAqLyAlcycgJSAoc3RyKHZpc2l0ZWRfY291bnQpLCBleHRyYV9ib2R5
KSkKIAogZGVmIG1haW4ocmVxdWVzdCwgcmVzcG9uc2UpOgotICAgICMgU2V0IG1vZGUgdG8gJ2lu
aXQnIGZvciBpbml0aWFsIGZldGNoLgotICAgIG1vZGUgPSAnaW5pdCcKLSAgICBpZiAnbW9kZScg
aW4gcmVxdWVzdC5jb29raWVzOgotICAgICAgICBtb2RlID0gcmVxdWVzdC5jb29raWVzWydtb2Rl
J10udmFsdWUKLQotICAgICMgbm8tY2FjaGUgaXRzZWxmIHRvIGVuc3VyZSB0aGUgdXNlciBhZ2Vu
dCBmaW5kcyBhIG5ldyB2ZXJzaW9uIGZvciBlYWNoIHVwZGF0ZS4KLSAgICBoZWFkZXJzID0gWygn
Q2FjaGUtQ29udHJvbCcsICduby1jYWNoZSwgbXVzdC1yZXZhbGlkYXRlJyksCi0gICAgICAgICAg
ICAgICAoJ1ByYWdtYScsICduby1jYWNoZScpXQotCi0gICAgY29udGVudF90eXBlID0gJycKLSAg
ICBleHRyYV9ib2R5ID0gJycKLQotICAgIGlmIG1vZGUgPT0gJ2luaXQnOgotICAgICAgICAjIFNl
dCBhIG5vcm1hbCBtaW1ldHlwZS4KLSAgICAgICAgIyBTZXQgY29va2llIHZhbHVlIHRvICdub3Jt
YWwnIHNvIHRoZSBuZXh0IGZldGNoIHdpbGwgd29yayBpbiAnbm9ybWFsJyBtb2RlLgotICAgICAg
ICBjb250ZW50X3R5cGUgPSAnYXBwbGljYXRpb24vamF2YXNjcmlwdCcKLSAgICAgICAgcmVzcG9u
c2Uuc2V0X2Nvb2tpZSgnbW9kZScsICdub3JtYWwnKQotICAgIGVsaWYgbW9kZSA9PSAnbm9ybWFs
JzoKLSAgICAgICAgIyBTZXQgYSBub3JtYWwgbWltZXR5cGUuCi0gICAgICAgICMgU2V0IGNvb2tp
ZSB2YWx1ZSB0byAnZXJyb3InIHNvIHRoZSBuZXh0IGZldGNoIHdpbGwgd29yayBpbiAnZXJyb3In
IG1vZGUuCi0gICAgICAgIGNvbnRlbnRfdHlwZSA9ICdhcHBsaWNhdGlvbi9qYXZhc2NyaXB0Jwot
ICAgICAgICByZXNwb25zZS5zZXRfY29va2llKCdtb2RlJywgJ2Vycm9yJyk7Ci0gICAgZWxpZiBt
b2RlID09ICdlcnJvcic6Ci0gICAgICAgICMgU2V0IGEgZGlzYWxsb3dlZCBtaW1ldHlwZS4KLSAg
ICAgICAgIyBTZXQgY29va2llIHZhbHVlIHRvICdzeW50YXgtZXJyb3InIHNvIHRoZSBuZXh0IGZl
dGNoIHdpbGwgd29yayBpbiAnc3ludGF4LWVycm9yJyBtb2RlLgotICAgICAgICBjb250ZW50X3R5
cGUgPSAndGV4dC9odG1sJwotICAgICAgICByZXNwb25zZS5zZXRfY29va2llKCdtb2RlJywgJ3N5
bnRheC1lcnJvcicpOwotICAgIGVsaWYgbW9kZSA9PSAnc3ludGF4LWVycm9yJzoKLSAgICAgICAg
IyBTZXQgY29va2llIHZhbHVlIHRvICd0aHJvdy1pbnN0YWxsJyBzbyB0aGUgbmV4dCBmZXRjaCB3
aWxsIHdvcmsgaW4gJ3Rocm93LWluc3RhbGwnIG1vZGUuCi0gICAgICAgIGNvbnRlbnRfdHlwZSA9
ICdhcHBsaWNhdGlvbi9qYXZhc2NyaXB0JwotICAgICAgICByZXNwb25zZS5zZXRfY29va2llKCdt
b2RlJywgJ3Rocm93LWluc3RhbGwnKTsKLSAgICAgICAgZXh0cmFfYm9keSA9ICdiYWRzeW50YXgo
aXNiYWQ7JwotICAgIGVsaWYgbW9kZSA9PSAndGhyb3ctaW5zdGFsbCc6Ci0gICAgICAgICMgVW5z
ZXQgYW5kIGRlbGV0ZSBjb29raWUgdG8gY2xlYW4gdXAgdGhlIHRlc3Qgc2V0dGluZy4KLSAgICAg
ICAgY29udGVudF90eXBlID0gJ2FwcGxpY2F0aW9uL2phdmFzY3JpcHQnCi0gICAgICAgIHJlc3Bv
bnNlLmRlbGV0ZV9jb29raWUoJ21vZGUnKQotICAgICAgICBleHRyYV9ib2R5ID0gImFkZEV2ZW50
TGlzdGVuZXIoJ2luc3RhbGwnLCBmdW5jdGlvbihlKSB7IHRocm93IG5ldyBFcnJvcignYm9vbScp
OyB9KTsiCi0KLSAgICBoZWFkZXJzLmFwcGVuZCgoJ0NvbnRlbnQtVHlwZScsIGNvbnRlbnRfdHlw
ZSkpCi0gICAgIyBSZXR1cm4gYSBkaWZmZXJlbnQgc2NyaXB0IGZvciBlYWNoIGFjY2Vzcy4gIFVz
ZSAudGltZSgpIGFuZCAuY2xvY2soKSBmb3IKLSAgICAjIGJlc3QgdGltZSByZXNvbHV0aW9uIGFj
cm9zcyBkaWZmZXJlbnQgcGxhdGZvcm1zLgotICAgIHJldHVybiBoZWFkZXJzLCAnLyogJXMgJXMg
Ki8gJXMnICUgKHRpbWUudGltZSgpLCB0aW1lLmNsb2NrKCksIGV4dHJhX2JvZHkpCisgIGtleSA9
IHJlcXVlc3QuR0VUWyJLZXkiXQorICBtb2RlID0gcmVxdWVzdC5HRVRbIk1vZGUiXQorCisgIHZp
c2l0ZWRfY291bnQgPSByZXF1ZXN0LnNlcnZlci5zdGFzaC50YWtlKGtleSkKKyAgaWYgdmlzaXRl
ZF9jb3VudCBpcyBOb25lOgorICAgIHZpc2l0ZWRfY291bnQgPSAwCisKKyAgIyBLZWVwIGhvdyBt
YW55IHRpbWVzIHRoZSB0ZXN0IHJlcXVlc3RlZCB0aGlzIHJlc291cmNlLgorICB2aXNpdGVkX2Nv
dW50ICs9IDEKKyAgcmVxdWVzdC5zZXJ2ZXIuc3Rhc2gucHV0KGtleSwgdmlzaXRlZF9jb3VudCkK
KworICAjIFJldHVybiBhIHJlc3BvbnNlIGJhc2VkIG9uIHxtb2RlfCBvbmx5IHdoZW4gaXQncyB0
aGUgc2Vjb25kIHRpbWUgKD09IHVwZGF0ZSkuCisgIGlmIHZpc2l0ZWRfY291bnQgPT0gMjoKKyAg
ICBpZiBtb2RlID09ICdub3JtYWwnOgorICAgICAgcmV0dXJuIG9rX3Jlc3BvbnNlKHJlcXVlc3Qs
IHJlc3BvbnNlLCB2aXNpdGVkX2NvdW50KQorICAgIGlmIG1vZGUgPT0gJ2JhZF9taW1lX3R5cGUn
OgorICAgICAgcmV0dXJuIG9rX3Jlc3BvbnNlKHJlcXVlc3QsIHJlc3BvbnNlLCB2aXNpdGVkX2Nv
dW50LCBtaW1lX3R5cGU9J3RleHQvaHRtbCcpCisgICAgaWYgbW9kZSA9PSAnbm90X2ZvdW5kJzoK
KyAgICAgIHJldHVybiBub3RfZm91bmRfcmVzcG9uc2UoKQorICAgIGlmIG1vZGUgPT0gJ3JlZGly
ZWN0JzoKKyAgICAgIHJldHVybiByZWRpcmVjdF9yZXNwb25zZShyZXF1ZXN0LCByZXNwb25zZSwg
dmlzaXRlZF9jb3VudCkKKyAgICBpZiBtb2RlID09ICdzeW50YXhfZXJyb3InOgorICAgICAgcmV0
dXJuIG9rX3Jlc3BvbnNlKHJlcXVlc3QsIHJlc3BvbnNlLCB2aXNpdGVkX2NvdW50LCBleHRyYV9i
b2R5PSdiYWRzeW50YXgoaXNiYWQ7JykKKyAgICBpZiBtb2RlID09ICd0aHJvd19pbnN0YWxsJzoK
KyAgICAgIHJldHVybiBva19yZXNwb25zZShyZXF1ZXN0LCByZXNwb25zZSwgdmlzaXRlZF9jb3Vu
dCwgZXh0cmFfYm9keT0iYWRkRXZlbnRMaXN0ZW5lcignaW5zdGFsbCcsIGZ1bmN0aW9uKGUpIHsg
dGhyb3cgbmV3IEVycm9yKCdib29tJyk7IH0pOyIpCiAKKyAgcmV0dXJuIG9rX3Jlc3BvbnNlKHJl
cXVlc3QsIHJlc3BvbnNlLCB2aXNpdGVkX2NvdW50KQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvcmVzb3VyY2VzL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3Vy
Y2VzL3czYy1pbXBvcnQubG9nCmluZGV4IDllYmM4YmMzMWZmY2NkZTc3MzYzZTk4NjExNzNkMjVl
NzVhMmQyMDIuLjhmMWJjZmQzNDU0M2MyNWQwNzE1ZWI5YjI2ZTUyMmYzNmQ0NjRhOTUgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy93M2MtaW1wb3J0LmxvZworKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvdzNjLWltcG9ydC5sb2cKQEAgLTQzLDYgKzQzLDcg
QEAgTGlzdCBvZiBmaWxlczoKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvY2xpZW50LW5h
dmlnYXRlLWZyYW1lLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvY2xpZW50LW5h
dmlnYXRlLXdvcmtlci5qcwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9jbGllbnQtbmF2
aWdhdGVkLWZyYW1lLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvY2xpZW50cy1m
cmFtZS1mcmVlemUuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9jbGllbnRzLWdl
dC1jbGllbnQtdHlwZXMtZnJhbWUtd29ya2VyLmpzCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3Vy
Y2VzL2NsaWVudHMtZ2V0LWNsaWVudC10eXBlcy1mcmFtZS5odG1sCiAvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvcmVzb3VyY2VzL2NsaWVudHMtZ2V0LWNsaWVudC10eXBlcy1zaGFyZWQtd29ya2VyLmpzCkBA
IC02MCwxMCArNjEsNyBAQCBMaXN0IG9mIGZpbGVzOgogL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291
cmNlcy9jb3JzLWFwcHJvdmVkLnR4dAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9jb3Jz
LWFwcHJvdmVkLnR4dC5oZWFkZXJzCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2NvcnMt
ZGVuaWVkLnR4dAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9kdW1teS1zaGFyZWQtd29y
a2VyLWludGVyY2VwdG9yLmpzCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2R1bW15LXNo
YXJlZC13b3JrZXItaW50ZXJjZXB0b3IuanMuaGVhZGVycwogL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jl
c291cmNlcy9kdW1teS13b3JrZXItaW50ZXJjZXB0b3IuanMKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9y
ZXNvdXJjZXMvZHVtbXktd29ya2VyLXNjcmlwdC5weQogL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291
cmNlcy9kdW1teS5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2R1bW15LnR4dAog
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9lY2hvLWNvbnRlbnQucHkKQEAgLTE1MiwxMSAr
MTUwLDE1IEBAIExpc3Qgb2YgZmlsZXM6CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2lt
bXV0YWJsZS1wcm90b3R5cGUtc2VydmljZXdvcmtlci5qcwogL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jl
c291cmNlcy9pbXBvcnQtbWltZS10eXBlLXdvcmtlci5weQogL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jl
c291cmNlcy9pbXBvcnQtcmVsYXRpdmUueHNsCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2Vz
L2ltcG9ydC1zY3JpcHRzLTQwNC1hZnRlci11cGRhdGUtcGx1cy11cGRhdGUtd29ya2VyLmpzCisv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ltcG9ydC1zY3JpcHRzLTQwNC1hZnRlci11cGRh
dGUuanMKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvaW1wb3J0LXNjcmlwdHMtNDA0Lmpz
CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ltcG9ydC1zY3JpcHRzLWRpZmYtcmVzb3Vy
Y2UtbWFwLXdvcmtlci5qcwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9pbXBvcnQtc2Ny
aXB0cy1lY2hvLnB5CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ltcG9ydC1zY3JpcHRz
LWdldC5weQogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9pbXBvcnQtc2NyaXB0cy1taW1l
LXR5cGVzLXdvcmtlci5qcwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9pbXBvcnQtc2Ny
aXB0cy1yZWRpcmVjdC1pbXBvcnQuanMKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvaW1w
b3J0LXNjcmlwdHMtcmVkaXJlY3Qtb24tc2Vjb25kLXRpbWUtd29ya2VyLmpzCiAvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvcmVzb3VyY2VzL2ltcG9ydC1zY3JpcHRzLXJlZGlyZWN0LXdvcmtlci5qcwogL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9pbXBvcnQtc2NyaXB0cy1yZXNvdXJjZS1tYXAtd29y
a2VyLmpzCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ltcG9ydC1zY3JpcHRzLXVwZGF0
ZWQtZmxhZy13b3JrZXIuanMKQEAgLTIyNyw2ICsyMjksNyBAQCBMaXN0IG9mIGZpbGVzOgogL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9wb3N0bWVzc2FnZS1kaWN0aW9uYXJ5LXRyYW5zZmVy
YWJsZXMtd29ya2VyLmpzCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3Bvc3RtZXNzYWdl
LWVjaG8td29ya2VyLmpzCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3Bvc3RtZXNzYWdl
LW1zZ3BvcnQtdG8tY2xpZW50LXdvcmtlci5qcworL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNl
cy9wb3N0bWVzc2FnZS1vbi1sb2FkLXdvcmtlci5qcwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291
cmNlcy9wb3N0bWVzc2FnZS10by1jbGllbnQtd29ya2VyLmpzCiAvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
cmVzb3VyY2VzL3Bvc3RtZXNzYWdlLXRyYW5zZmVyYWJsZXMtd29ya2VyLmpzCiAvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvcmVzb3VyY2VzL3Bvc3RtZXNzYWdlLXdvcmtlci5qcwpAQCAtMjY1LDggKzI2OCw2
IEBAIExpc3Qgb2YgZmlsZXM6CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3NlcnZpY2Ut
d29ya2VyLWludGVyY2VwdGlvbi1uZXR3b3JrLXdvcmtlci5qcwogL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L3Jlc291cmNlcy9zZXJ2aWNlLXdvcmtlci1pbnRlcmNlcHRpb24tc2VydmljZS13b3JrZXIuanMK
IC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvc2VydmljZS13b3JrZXItaW50ZXJjZXB0aW9u
LXN0YXRpYy1pbXBvcnQtd29ya2VyLmpzCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3No
YXJlZC13b3JrZXItY29udHJvbGxlZC5qcwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9z
aGFyZWQtd29ya2VyLWltcG9ydC5qcwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9zaWxl
bmNlLm9nYQogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9zaW1wbGUtaW50ZXJjZXB0LXdv
cmtlci5qcwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9zaW1wbGUtaW50ZXJjZXB0LXdv
cmtlci5qcy5oZWFkZXJzCkBAIC0yOTUsNiArMjk2LDkgQEAgTGlzdCBvZiBmaWxlczoKIC9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvdXBkYXRlLW5vY29va2llLXdvcmtlci5weQogL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL3Jlc291cmNlcy91cGRhdGUtcmVjb3Zlcnktd29ya2VyLnB5CiAvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvcmVzb3VyY2VzL3VwZGF0ZS1yZWdpc3RyYXRpb24td2l0aC10eXBlLnB5Cisv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3VwZGF0ZS1zbWFsbGVyLWJvZHktYWZ0ZXItdXBk
YXRlLXdvcmtlci5qcworL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy91cGRhdGUtc21hbGxl
ci1ib2R5LWJlZm9yZS11cGRhdGUtd29ya2VyLmpzCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3Vy
Y2VzL3VwZGF0ZS13b3JrZXItZnJvbS1maWxlLnB5CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3Vy
Y2VzL3VwZGF0ZS13b3JrZXIucHkKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvdXBkYXRl
X3NoZWxsLnB5CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3Z0dC1mcmFtZS5odG1sCkBA
IC0zMDQsNyArMzA4LDYgQEAgTGlzdCBvZiBmaWxlczoKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNv
dXJjZXMvd2luZG93Y2xpZW50LW5hdmlnYXRlLXdvcmtlci5qcwogL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L3Jlc291cmNlcy93b3JrZXItY2xpZW50LWlkLXdvcmtlci5qcwogL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L3Jlc291cmNlcy93b3JrZXItZmV0Y2hpbmctY3Jvc3Mtb3JpZ2luLmpzCi0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvcmVzb3VyY2VzL3dvcmtlci1pbnRlcmNlcHRpb24taWZyYW1lLmh0dHBzLmh0bWwKIC9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvd29ya2VyLWludGVyY2VwdGlvbi1yZWRpcmVjdC1z
ZXJ2aWNld29ya2VyLmpzCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3dvcmtlci1pbnRl
cmNlcHRpb24tcmVkaXJlY3Qtd2Vid29ya2VyLmpzCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3Vy
Y2VzL3dvcmtlci1sb2FkLWludGVyY2VwdG9yLmpzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9yZXNvdXJjZXMvd29ya2VyLWludGVyY2VwdGlvbi1pZnJhbWUuaHR0cHMuaHRtbCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy93b3JrZXItaW50ZXJjZXB0aW9uLWlmcmFtZS5odHRw
cy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4NDIwNGEzZWU1ZGYxZmMzYTcx
Nzg0MjE1MDcxYjE0ZjBjNjVmOWYyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy93b3JrZXItaW50ZXJjZXB0
aW9uLWlmcmFtZS5odHRwcy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNTUgKzAsMCBAQAotPHNj
cmlwdCBzcmM9Ii9jb21tb24vZ2V0LWhvc3QtaW5mby5zdWIuanMiPjwvc2NyaXB0PgotPHNjcmlw
dCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9
InRlc3QtaGVscGVycy5zdWIuanM/cGlwZT1zdWIiPjwvc2NyaXB0PgotPHNjcmlwdD4KLXZhciBo
b3N0X2luZm8gPSBnZXRfaG9zdF9pbmZvKCk7Ci0KLWZ1bmN0aW9uIGJvaWxlcnBsYXRlX3Rlc3Qo
dXJsLCBtc2cpIHsKLSAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVq
ZWN0KSB7Ci0gICAgICAgICAgdmFyIHdvcmtlciA9IG5ldyBXb3JrZXIodXJsKTsKLSAgICAgICAg
ICB3b3JrZXIub25tZXNzYWdlID0gZnVuY3Rpb24oZSkgeyByZXNvbHZlKGUuZGF0YSkgfTsKLSAg
ICAgICAgICB3b3JrZXIub25lcnJvciA9IGZ1bmN0aW9uKGUpIHsgcmVqZWN0KGUpIH07Ci0gICAg
ICAgICAgd29ya2VyLnBvc3RNZXNzYWdlKG1zZyk7Ci0gICAgICAgIH0pCi0gICAgICAudGhlbihm
dW5jdGlvbihkYXRhKSB7Ci0gICAgICAgICAgYXNzZXJ0X2VxdWFscyhkYXRhLCAiVGhpcyBsb2Fk
IHdhcyBzdWNjZXNzZnVsbHkgaW50ZXJjZXB0ZWQuIik7Ci0gICAgICAgIH0pOwotfQotCi1mdW5j
dGlvbiB4aHJfdGVzdCgpIHsKLSAgICByZXR1cm4gYm9pbGVycGxhdGVfdGVzdCgibG9hZF93b3Jr
ZXIuanMiLCAieGhyIik7Ci19Ci0KLWZ1bmN0aW9uIGZldGNoX3Rlc3QoKSB7Ci0gICAgcmV0dXJu
IGJvaWxlcnBsYXRlX3Rlc3QoImxvYWRfd29ya2VyLmpzIiwgImZldGNoIik7Ci19Ci0KLWZ1bmN0
aW9uIGltcG9ydFNjcmlwdHNfdGVzdCgpIHsKLSAgICByZXR1cm4gYm9pbGVycGxhdGVfdGVzdCgi
bG9hZF93b3JrZXIuanMiLCAiaW1wb3J0U2NyaXB0cyIpOwotfQotCi1mdW5jdGlvbiBuZXN0ZWRf
d29ya2VyX3hocl90ZXN0KCkgewotICAgIHJldHVybiBib2lsZXJwbGF0ZV90ZXN0KCJuZXN0ZWRf
bG9hZF93b3JrZXIuanMiLCAieGhyIik7Ci19Ci0KLWZ1bmN0aW9uIG5lc3RlZF93b3JrZXJfZmV0
Y2hfdGVzdCgpIHsKLSAgICByZXR1cm4gYm9pbGVycGxhdGVfdGVzdCgibmVzdGVkX2xvYWRfd29y
a2VyLmpzIiwgImZldGNoIik7Ci19Ci0KLWZ1bmN0aW9uIG5lc3RlZF93b3JrZXJfaW1wb3J0U2Ny
aXB0c190ZXN0KCkgewotICAgIHJldHVybiBib2lsZXJwbGF0ZV90ZXN0KCJuZXN0ZWRfbG9hZF93
b3JrZXIuanMiLCAiaW1wb3J0U2NyaXB0cyIpOwotfQotCi13aW5kb3cuYWRkRXZlbnRMaXN0ZW5l
cignbWVzc2FnZScsIGZ1bmN0aW9uKGV2dCkgewotICAgIHZhciBwb3J0ID0gZXZ0LnBvcnRzWzBd
OwotICAgIHhocl90ZXN0KCkKLSAgICAgIC50aGVuKGZldGNoX3Rlc3QpCi0gICAgICAudGhlbihp
bXBvcnRTY3JpcHRzX3Rlc3QpCi0gICAgICAudGhlbihuZXN0ZWRfd29ya2VyX3hocl90ZXN0KQot
ICAgICAgLnRoZW4obmVzdGVkX3dvcmtlcl9mZXRjaF90ZXN0KQotICAgICAgLnRoZW4obmVzdGVk
X3dvcmtlcl9pbXBvcnRTY3JpcHRzX3Rlc3QpCi0gICAgICAudGhlbihmdW5jdGlvbigpIHsgcG9y
dC5wb3N0TWVzc2FnZSh7cmVzdWx0czogJ2ZpbmlzaCd9KTsgfSkKLSAgICAgIC5jYXRjaChmdW5j
dGlvbihlKSB7IHBvcnQucG9zdE1lc3NhZ2Uoe3Jlc3VsdHM6ICdmYWlsdXJlOicgKyBlfSk7IH0p
OwotICB9KTsKLQotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNv
dXJjZXMvd29ya2VyLWxvYWQtaW50ZXJjZXB0b3IuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNv
dXJjZXMvd29ya2VyLWxvYWQtaW50ZXJjZXB0b3IuanMKaW5kZXggYTVmNjVjMzIxNmU0NDYzMmZm
MDUyYmFjMDQ0ODMxNmYyNWQ0NDNjNi4uZWJjMGRiNjdhYTUwNDU4NDJhNTFhZmQyMjU2NzFmYTBj
NzgyNjdlOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3dvcmtlci1s
b2FkLWludGVyY2VwdG9yLmpzCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy93b3Jr
ZXItbG9hZC1pbnRlcmNlcHRvci5qcwpAQCAtMSwxNSArMSwxNiBAQAogaW1wb3J0U2NyaXB0cygn
L2NvbW1vbi9nZXQtaG9zdC1pbmZvLnN1Yi5qcycpOwogCi12YXIgcmVzcG9uc2VfdGV4dCA9ICJU
aGlzIGxvYWQgd2FzIHN1Y2Nlc3NmdWxseSBpbnRlcmNlcHRlZC4iOwotdmFyIHJlc3BvbnNlX3Nj
cmlwdCA9ICJwb3N0TWVzc2FnZShcIlRoaXMgbG9hZCB3YXMgc3VjY2Vzc2Z1bGx5IGludGVyY2Vw
dGVkLlwiKTsiOworY29uc3QgcmVzcG9uc2VfdGV4dCA9ICdUaGlzIGxvYWQgd2FzIHN1Y2Nlc3Nm
dWxseSBpbnRlcmNlcHRlZC4nOworY29uc3QgcmVzcG9uc2Vfc2NyaXB0ID0KKyAgICBgY29uc3Qg
bWVzc2FnZSA9ICdUaGlzIGxvYWQgd2FzIHN1Y2Nlc3NmdWxseSBpbnRlcmNlcHRlZC4nO2A7CiAK
LXNlbGYub25mZXRjaCA9IGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgdmFyIHVybCA9IGV2ZW50LnJl
cXVlc3QudXJsOwotICAgIGlmICh1cmwuaW5kZXhPZigic3ludGhlc2l6ZWQtcmVzcG9uc2UudHh0
IikgIT0gLTEpIHsKLSAgICAgICAgZXZlbnQucmVzcG9uZFdpdGgobmV3IFJlc3BvbnNlKHJlc3Bv
bnNlX3RleHQpKTsKLSAgICB9IGVsc2UgaWYgKHVybC5pbmRleE9mKCJzeW50aGVzaXplZC1yZXNw
b25zZS5qcyIpICE9IC0xKSB7Ci0gICAgICBldmVudC5yZXNwb25kV2l0aChuZXcgUmVzcG9uc2Uo
Ci0gICAgICAgICAgcmVzcG9uc2Vfc2NyaXB0LAotICAgICAgICAgIHtoZWFkZXJzOiB7J0NvbnRl
bnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qYXZhc2NyaXB0J319KSk7Ci0gICAgfQorc2VsZi5vbmZl
dGNoID0gZXZlbnQgPT4geworICBjb25zdCB1cmwgPSBldmVudC5yZXF1ZXN0LnVybDsKKyAgaWYg
KHVybC5pbmRleE9mKCdzeW50aGVzaXplZC1yZXNwb25zZS50eHQnKSAhPSAtMSkgeworICAgIGV2
ZW50LnJlc3BvbmRXaXRoKG5ldyBSZXNwb25zZShyZXNwb25zZV90ZXh0KSk7CisgIH0gZWxzZSBp
ZiAodXJsLmluZGV4T2YoJ3N5bnRoZXNpemVkLXJlc3BvbnNlLmpzJykgIT0gLTEpIHsKKyAgICBl
dmVudC5yZXNwb25kV2l0aChuZXcgUmVzcG9uc2UoCisgICAgICAgIHJlc3BvbnNlX3NjcmlwdCwK
KyAgICAgICAge2hlYWRlcnM6IHsnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2phdmFzY3Jp
cHQnfX0pKTsKKyAgfQogfTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3NoYXJlZC13
b3JrZXItY29udHJvbGxlZC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvc2hhcmVkLXdv
cmtlci1jb250cm9sbGVkLmh0dHBzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAzMjBjMDJhNGZhMmI4MDY2YmM2ZjYwM2JmN2FiYzNlZWZlMWMzYjMuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvc2hhcmVk
LXdvcmtlci1jb250cm9sbGVkLmh0dHBzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw4NiArMCww
IEBACi08IURPQ1RZUEUgaHRtbD4KLTx0aXRsZT5TZXJ2aWNlIFdvcmtlcjogY29udHJvbGxpbmcg
YSBTaGFyZWRXb3JrZXI8L3RpdGxlPgotPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5l
c3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBv
cnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy90ZXN0LWhlbHBlcnMuc3Vi
LmpzIj48L3NjcmlwdD4KLTxib2R5PgotPHNjcmlwdD4KLXByb21pc2VfdGVzdChmdW5jdGlvbih0
KSB7Ci0gICAgdmFyIHNoYXJlZF93b3JrZXIgPSAncmVzb3VyY2VzL3NoYXJlZC13b3JrZXItY29u
dHJvbGxlZC5qcyc7Ci0gICAgdmFyIHNlcnZpY2Vfd29ya2VyID0gJ3Jlc291cmNlcy9zaW1wbGUt
aW50ZXJjZXB0LXdvcmtlci5qcyc7Ci0gICAgdmFyIHNjb3BlID0gc2hhcmVkX3dvcmtlcjsKLQot
ICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCBzZXJ2
aWNlX3dvcmtlciwgc2NvcGUpCi0gICAgICAudGhlbihmdW5jdGlvbihyKSB7Ci0gICAgICAgICAg
dC5hZGRfY2xlYW51cChmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgcmV0dXJuIHNlcnZpY2Vf
d29ya2VyX3VucmVnaXN0ZXIodCwgc2NvcGUpOwotICAgICAgICAgICAgfSk7Ci0KLSAgICAgICAg
ICByZXR1cm4gd2FpdF9mb3Jfc3RhdGUodCwgci5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7Ci0g
ICAgICAgIH0pCi0gICAgICAudGhlbihmdW5jdGlvbigpIHsKLSAgICAgICAgICByZXR1cm4gbmV3
IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7Ci0gICAgICAgICAgICAgIHZhciB3
ID0gbmV3IFNoYXJlZFdvcmtlcihzaGFyZWRfd29ya2VyKTsKLSAgICAgICAgICAgICAgdy5wb3J0
Lm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgICAgICByZXNvbHZlKGUuZGF0
YSk7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0pOwotICAgICAgICB9KQotICAgICAg
LnRoZW4oZnVuY3Rpb24oZGF0YSkgewotICAgICAgICAgIGFzc2VydF9lcXVhbHMoZGF0YSwgJ2lu
dGVyY2VwdGVkIGJ5IHNlcnZpY2Ugd29ya2VyJyk7Ci0gICAgICAgIH0pOwotICB9LCAnVmVyaWZ5
IHN1YnJlc291cmNlIGxvYWRzIGluIFNoYXJlZFdvcmtlciBhcmUgY29udHJvbGxlZCBieSBhIFNl
cnZpY2UgV29ya2VyJyk7Ci0KLXByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7Ci0gICAgdmFyIHNo
YXJlZF93b3JrZXIgPSAncmVzb3VyY2VzL2R1bW15LXNoYXJlZC13b3JrZXIuanMnOwotICAgIHZh
ciBzZXJ2aWNlX3dvcmtlciA9ICdyZXNvdXJjZXMvZHVtbXktc2hhcmVkLXdvcmtlci1pbnRlcmNl
cHRvci5qcyc7Ci0gICAgdmFyIHNjb3BlID0gc2hhcmVkX3dvcmtlcjsKLQotICAgIHJldHVybiBz
ZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCBzZXJ2aWNlX3dvcmtlciwg
c2NvcGUpCi0gICAgICAudGhlbihmdW5jdGlvbihyKSB7Ci0gICAgICAgICAgdC5hZGRfY2xlYW51
cChmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVn
aXN0ZXIodCwgc2NvcGUpOwotICAgICAgICAgICAgfSk7Ci0KLSAgICAgICAgICByZXR1cm4gd2Fp
dF9mb3Jfc3RhdGUodCwgci5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7Ci0gICAgICAgIH0pCi0g
ICAgICAudGhlbihmdW5jdGlvbigpIHsKLSAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVu
Y3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7Ci0gICAgICAgICAgICAgIHZhciB3ID0gbmV3IFNoYXJl
ZFdvcmtlcihzaGFyZWRfd29ya2VyKTsKLSAgICAgICAgICAgICAgdy5wb3J0Lm9ubWVzc2FnZSA9
IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgICAgICByZXNvbHZlKGUuZGF0YSk7Ci0gICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgIH0pOwotICAgICAgICB9KQotICAgICAgLnRoZW4oZnVuY3Rp
b24oZGF0YSkgewotICAgICAgICAgIGFzc2VydF9lcXVhbHMoZGF0YSwgJ3dvcmtlciBsb2FkaW5n
IGludGVyY2VwdGVkIGJ5IHNlcnZpY2Ugd29ya2VyJyk7Ci0gICAgICAgIH0pOwotICB9LCAnVmVy
aWZ5IFNoYXJlZFdvcmtlciBjb25zdHJ1Y3Rpb24gaXMgY29udHJvbGxlZCBieSBhIFNlcnZpY2Ug
V29ya2VyJyk7Ci0KLXByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7Ci0gICAgdmFyIHNoYXJlZF93
b3JrZXIgPSAncmVzb3VyY2VzL3NoYXJlZC13b3JrZXItaW1wb3J0LmpzJzsKLSAgICB2YXIgc2Vy
dmljZV93b3JrZXIgPSAncmVzb3VyY2VzL2R1bW15LXNoYXJlZC13b3JrZXItaW50ZXJjZXB0b3Iu
anMnOwotICAgIHZhciBzY29wZSA9IHNoYXJlZF93b3JrZXI7Ci0KLSAgICByZXR1cm4gc2Vydmlj
ZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgc2VydmljZV93b3JrZXIsIHNjb3Bl
KQotICAgICAgLnRoZW4oZnVuY3Rpb24ocikgewotICAgICAgICAgIHQuYWRkX2NsZWFudXAoZnVu
Y3Rpb24oKSB7Ci0gICAgICAgICAgICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVy
KHQsIHNjb3BlKTsKLSAgICAgICAgICAgIH0pOwotCi0gICAgICAgICAgcmV0dXJuIHdhaXRfZm9y
X3N0YXRlKHQsIHIuaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOwotICAgICAgICB9KQotICAgICAg
LnRoZW4oZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9u
KHJlc29sdmUsIHJlamVjdCkgewotICAgICAgICAgICAgICB2YXIgdyA9IG5ldyBTaGFyZWRXb3Jr
ZXIoc2hhcmVkX3dvcmtlcik7Ci0gICAgICAgICAgICAgIHcucG9ydC5vbm1lc3NhZ2UgPSBmdW5j
dGlvbihlKSB7Ci0gICAgICAgICAgICAgICAgcmVzb2x2ZShlLmRhdGEpOwotICAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfSkKLSAgICAgIC50aGVuKGZ1bmN0aW9uKGRh
dGEpIHsKLSAgICAgICAgICBhc3NlcnRfZXF1YWxzKGRhdGEsICd3b3JrZXIgbG9hZGluZyBpbnRl
cmNlcHRlZCBieSBzZXJ2aWNlIHdvcmtlcicpOwotICAgICAgICB9KTsKLSAgfSwgJ1ZlcmlmeSBp
bXBvcnRTY3JpcHRzIGZyb20gU2hhcmVkV29ya2VyIGlzIGNvbnRyb2xsZWQgYnkgYSBTZXJ2aWNl
IFdvcmtlcicpOwotPC9zY3JpcHQ+Ci08L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci91cGRhdGUtaW1wb3J0LXNjcmlwdHMuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvdXBkYXRlLWltcG9ydC1zY3JpcHRzLmh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4yOTI3MjA5OWQ5MjViYmEyYzAwOWVkZWNiZjZlZWUzYWYxNGZkODE1Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLWltcG9ydC1zY3JpcHRzLmh0dHBzLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDYgQEAKKworUEFTUyB1cGRhdGUoKSBzaG91bGQgZmFpbCB3
aGVuIGEgbmV3IHdvcmtlciBpbXBvcnRzIGFuIHVuYXZhaWxhYmxlIHNjcmlwdC4gCitQQVNTIHVw
ZGF0ZSgpIHNob3VsZCBzdWNjZWVkIHdoZW4gdGhlIG9sZCBpbXBvcnRlZCBzY3JpcHQgbm8gbG9u
Z2VyIGV4aXN0IGJ1dCB0aGUgbmV3IHdvcmtlciBkb2Vzbid0IGltcG9ydCBpdC4gCitQQVNTIHVw
ZGF0ZSgpIHNob3VsZCB0cmVhdCA0MDQgb24gaW1wb3J0ZWQgc2NyaXB0cyBhcyBubyBjaGFuZ2Uu
IAorRkFJTCB1cGRhdGUoKSBzaG91bGQgZmluZCBhbiB1cGRhdGUgaW4gYW4gaW1wb3J0ZWQgc2Ny
aXB0IGJ1dCB1cGRhdGUoKSBzaG91bGQgcmVzdWx0IGluIGZhaWx1cmUgZHVlIHRvIG1pc3Npbmcg
dGhlIG90aGVyIGltcG9ydGVkIHNjcmlwdC4gYXNzZXJ0X3VucmVhY2hlZDogU2hvdWxkIGhhdmUg
cmVqZWN0ZWQ6IHVuZGVmaW5lZCBSZWFjaGVkIHVucmVhY2hhYmxlIGNvZGUKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLWltcG9ydC1zY3JpcHRzLmh0dHBzLmh0bWwgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci91cGRhdGUtaW1wb3J0LXNjcmlwdHMuaHR0cHMuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5lMGJiYjEyYmQ2NzViNjM2MTE2ZWY1ZjgxNDQ3OTA0Y2RkZDkyMmQ5Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLWltcG9ydC1zY3JpcHRzLmh0dHBzLmh0
bWwKQEAgLTAsMCArMSwxMjcgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRm
LTgiPgorPHRpdGxlPlRlc3RzIGZvciBpbXBvcnRTY3JpcHRzOiBpbXBvcnQgc2NyaXB0cyBpZ25v
cmVkIGVycm9yPC90aXRsZT4KKzxzY3JpcHQgc3JjPSIvY29tbW9uL3V0aWxzLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvdGVzdC1oZWxwZXJzLnN1Yi5qcyI+PC9zY3JpcHQ+Cis8Ym9k
eT4KKzxzY3JpcHQ+CisvLyBUaGlzIGZpbGUgY29udGFpbnMgdGVzdHMgdG8gY2hlY2sgaWYgaW1w
b3J0ZWQgc2NyaXB0cyBhcHByb3ByaWF0ZWx5IHVwZGF0ZWQuCisKK2NvbnN0IFNDT1BFID0gJ3Jl
c291cmNlcy9zaW1wbGUudHh0JzsKKworLy8gQ3JlYXRlIGEgc2VydmljZSB3b3JrZXIgKHVwZGF0
ZS13b3JrZXItZnJvbS1maWxlLnB5KSwgd2hpY2ggaXMgaW5pdGlhbGx5CisvLyB8aW5pdGlhbF93
b3JrZXJ8IGFuZCB8dXBkYXRlZF93b3JrZXJ8IGxhdGVyLgorYXN5bmMgZnVuY3Rpb24gcHJlcGFy
ZV9yZWFkeV91cGRhdGVfd29ya2VyX2Zyb21fZmlsZSgKKyAgICB0LCBpbml0aWFsX3dvcmtlciwg
dXBkYXRlZF93b3JrZXIpIHsKKyAgY29uc3Qga2V5ID0gdG9rZW4oKTsKKyAgY29uc3Qgd29ya2Vy
X3VybCA9IGByZXNvdXJjZXMvdXBkYXRlLXdvcmtlci1mcm9tLWZpbGUucHk/YCArCisgICAgICBg
Rmlyc3Q9JHtpbml0aWFsX3dvcmtlcn0mU2Vjb25kPSR7dXBkYXRlZF93b3JrZXJ9JktleT0ke2tl
eX1gOworICBjb25zdCBleHBlY3RlZF91cmwgPSBub3JtYWxpemVVUkwod29ya2VyX3VybCk7CisK
KyAgY29uc3QgcmVnaXN0cmF0aW9uID0gYXdhaXQgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9h
bmRfcmVnaXN0ZXIoCisgICAgICB0LCB3b3JrZXJfdXJsLCBTQ09QRSk7CisgIGF3YWl0IHdhaXRf
Zm9yX3N0YXRlKHQsIHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7CisgIGFz
c2VydF9lcXVhbHMocmVnaXN0cmF0aW9uLmluc3RhbGxpbmcsIG51bGwsCisgICAgICAgICAgICAg
ICAgJ3ByZXBhcmVfcmVhZHk6IGluc3RhbGxpbmcnKTsKKyAgYXNzZXJ0X2VxdWFscyhyZWdpc3Ry
YXRpb24ud2FpdGluZywgbnVsbCwKKyAgICAgICAgICAgICAgICAncHJlcGFyZV9yZWFkeTogd2Fp
dGluZycpOworICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi5hY3RpdmUuc2NyaXB0VVJMLCBl
eHBlY3RlZF91cmwsCisgICAgICAgICAgICAgICAgJ3ByZXBhcmVfcmVhZHk6IGFjdGl2ZScpOwor
ICByZXR1cm4gW3JlZ2lzdHJhdGlvbiwgZXhwZWN0ZWRfdXJsXTsKK30KKworLy8gQ3JlYXRlIGEg
c2VydmljZSB3b3JrZXIgdXNpbmcgdGhlIHNjcmlwdCB1bmRlciByZXNvdXJjZXMvLgorYXN5bmMg
ZnVuY3Rpb24gcHJlcGFyZV9yZWFkeV9ub3JtYWxfd29ya2VyKHQsIGZpbGVuYW1lLCBhZGRpdGlv
bmFsX3BhcmFtcz0nJykgeworICBjb25zdCBrZXkgPSB0b2tlbigpOworICBjb25zdCB3b3JrZXJf
dXJsID0gYHJlc291cmNlcy8ke2ZpbGVuYW1lfT9LZXk9JHtrZXl9JiR7YWRkaXRpb25hbF9wYXJh
bXN9YDsKKyAgY29uc3QgZXhwZWN0ZWRfdXJsID0gbm9ybWFsaXplVVJMKHdvcmtlcl91cmwpOwor
CisgIGNvbnN0IHJlZ2lzdHJhdGlvbiA9IGF3YWl0IHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJf
YW5kX3JlZ2lzdGVyKAorICAgICAgdCwgd29ya2VyX3VybCwgU0NPUEUpOworICBhd2FpdCB3YWl0
X2Zvcl9zdGF0ZSh0LCByZWdpc3RyYXRpb24uaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOworICBh
c3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLCBudWxsLAorICAgICAgICAgICAg
ICAgICdwcmVwYXJlX3JlYWR5OiBpbnN0YWxsaW5nJyk7CisgIGFzc2VydF9lcXVhbHMocmVnaXN0
cmF0aW9uLndhaXRpbmcsIG51bGwsCisgICAgICAgICAgICAgICAgJ3ByZXBhcmVfcmVhZHk6IHdh
aXRpbmcnKTsKKyAgYXNzZXJ0X2VxdWFscyhyZWdpc3RyYXRpb24uYWN0aXZlLnNjcmlwdFVSTCwg
ZXhwZWN0ZWRfdXJsLAorICAgICAgICAgICAgICAgICdwcmVwYXJlX3JlYWR5OiBhY3RpdmUnKTsK
KyAgcmV0dXJuIFtyZWdpc3RyYXRpb24sIGV4cGVjdGVkX3VybF07Cit9CisKK2Z1bmN0aW9uIGFz
c2VydF9pbnN0YWxsaW5nX2FuZF9hY3RpdmUocmVnaXN0cmF0aW9uLCBleHBlY3RlZF91cmwpIHsK
KyAgYXNzZXJ0X2VxdWFscyhyZWdpc3RyYXRpb24uaW5zdGFsbGluZy5zY3JpcHRVUkwsIGV4cGVj
dGVkX3VybCwKKyAgICAgICAgICAgICAgICAnYXNzZXJ0X2luc3RhbGxpbmdfYW5kX2FjdGl2ZTog
aW5zdGFsbGluZycpOworICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi53YWl0aW5nLCBudWxs
LAorICAgICAgICAgICAgICAgICdhc3NlcnRfaW5zdGFsbGluZ19hbmRfYWN0aXZlOiB3YWl0aW5n
Jyk7CisgIGFzc2VydF9lcXVhbHMocmVnaXN0cmF0aW9uLmFjdGl2ZS5zY3JpcHRVUkwsIGV4cGVj
dGVkX3VybCwKKyAgICAgICAgICAgICAgICAnYXNzZXJ0X2luc3RhbGxpbmdfYW5kX2FjdGl2ZTog
YWN0aXZlJyk7Cit9CisKK2Z1bmN0aW9uIGFzc2VydF93YWl0aW5nX2FuZF9hY3RpdmUocmVnaXN0
cmF0aW9uLCBleHBlY3RlZF91cmwpIHsKKyAgYXNzZXJ0X2VxdWFscyhyZWdpc3RyYXRpb24uaW5z
dGFsbGluZywgbnVsbCwKKyAgICAgICAgICAgICAgICAnYXNzZXJ0X3dhaXRpbmdfYW5kX2FjdGl2
ZTogaW5zdGFsbGluZycpOworICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi53YWl0aW5nLnNj
cmlwdFVSTCwgZXhwZWN0ZWRfdXJsLAorICAgICAgICAgICAgICAgICdhc3NlcnRfd2FpdGluZ19h
bmRfYWN0aXZlOiB3YWl0aW5nJyk7CisgIGFzc2VydF9lcXVhbHMocmVnaXN0cmF0aW9uLmFjdGl2
ZS5zY3JpcHRVUkwsIGV4cGVjdGVkX3VybCwKKyAgICAgICAgICAgICAgICAnYXNzZXJ0X3dhaXRp
bmdfYW5kX2FjdGl2ZTogYWN0aXZlJyk7Cit9CisKK2Z1bmN0aW9uIGFzc2VydF9hY3RpdmVfb25s
eShyZWdpc3RyYXRpb24sIGV4cGVjdGVkX3VybCkgeworICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJh
dGlvbi5pbnN0YWxsaW5nLCBudWxsLAorICAgICAgICAgICAgICAgICdhc3NlcnRfYWN0aXZlX29u
bHk6IGluc3RhbGxpbmcnKTsKKyAgYXNzZXJ0X2VxdWFscyhyZWdpc3RyYXRpb24ud2FpdGluZywg
bnVsbCwKKyAgICAgICAgICAgICAgICAnYXNzZXJ0X2FjdGl2ZV9vbmx5OiB3YWl0aW5nJyk7Cisg
IGFzc2VydF9lcXVhbHMocmVnaXN0cmF0aW9uLmFjdGl2ZS5zY3JpcHRVUkwsIGV4cGVjdGVkX3Vy
bCwKKyAgICAgICAgICAgICAgICAnYXNzZXJ0X2FjdGl2ZV9vbmx5OiBhY3RpdmUnKTsKK30KKwor
cHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25zdCBbcmVnaXN0cmF0aW9uLCBleHBlY3Rl
ZF91cmxdID0KKyAgICAgIGF3YWl0IHByZXBhcmVfcmVhZHlfdXBkYXRlX3dvcmtlcl9mcm9tX2Zp
bGUoCisgICAgICAgICAgdCwgJ2VtcHR5LmpzJywgJ2ltcG9ydC1zY3JpcHRzLTQwNC5qcycpOwor
ICB0LmFkZF9jbGVhbnVwKCgpID0+IHJlZ2lzdHJhdGlvbi51bnJlZ2lzdGVyKCkpOworCisgIGF3
YWl0IHByb21pc2VfcmVqZWN0cyh0LCBuZXcgVHlwZUVycm9yKCksIHJlZ2lzdHJhdGlvbi51cGRh
dGUoKSk7CisgIGFzc2VydF9hY3RpdmVfb25seShyZWdpc3RyYXRpb24sIGV4cGVjdGVkX3VybCk7
Cit9LCAndXBkYXRlKCkgc2hvdWxkIGZhaWwgd2hlbiBhIG5ldyB3b3JrZXIgaW1wb3J0cyBhbiB1
bmF2YWlsYWJsZSBzY3JpcHQuJyk7CisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgY29u
c3QgW3JlZ2lzdHJhdGlvbiwgZXhwZWN0ZWRfdXJsXSA9CisgICAgICBhd2FpdCBwcmVwYXJlX3Jl
YWR5X3VwZGF0ZV93b3JrZXJfZnJvbV9maWxlKAorICAgICAgICAgIHQsICdpbXBvcnQtc2NyaXB0
cy00MDQtYWZ0ZXItdXBkYXRlLmpzJywgJ2VtcHR5LmpzJyk7CisgIHQuYWRkX2NsZWFudXAoKCkg
PT4gcmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIoKSk7CisKKyAgYXdhaXQgUHJvbWlzZS5hbGwoW3Jl
Z2lzdHJhdGlvbi51cGRhdGUoKSwgd2FpdF9mb3JfdXBkYXRlKHQsIHJlZ2lzdHJhdGlvbildKTsK
KyAgYXNzZXJ0X2luc3RhbGxpbmdfYW5kX2FjdGl2ZShyZWdpc3RyYXRpb24sIGV4cGVjdGVkX3Vy
bCk7CisKKyAgYXdhaXQgd2FpdF9mb3Jfc3RhdGUodCwgcmVnaXN0cmF0aW9uLmluc3RhbGxpbmcs
ICdpbnN0YWxsZWQnKTsKKyAgYXNzZXJ0X3dhaXRpbmdfYW5kX2FjdGl2ZShyZWdpc3RyYXRpb24s
IGV4cGVjdGVkX3VybCk7CisKKyAgYXdhaXQgd2FpdF9mb3Jfc3RhdGUodCwgcmVnaXN0cmF0aW9u
LndhaXRpbmcsICdhY3RpdmF0ZWQnKTsKKyAgYXNzZXJ0X2FjdGl2ZV9vbmx5KHJlZ2lzdHJhdGlv
biwgZXhwZWN0ZWRfdXJsKTsKK30sICd1cGRhdGUoKSBzaG91bGQgc3VjY2VlZCB3aGVuIHRoZSBv
bGQgaW1wb3J0ZWQgc2NyaXB0IG5vIGxvbmdlciBleGlzdCBidXQgJyArCisgICAidGhlIG5ldyB3
b3JrZXIgZG9lc24ndCBpbXBvcnQgaXQuIik7CisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsK
KyAgY29uc3QgW3JlZ2lzdHJhdGlvbiwgZXhwZWN0ZWRfdXJsXSA9IGF3YWl0IHByZXBhcmVfcmVh
ZHlfbm9ybWFsX3dvcmtlcigKKyAgICB0LCAnaW1wb3J0LXNjcmlwdHMtNDA0LWFmdGVyLXVwZGF0
ZS5qcycpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHJlZ2lzdHJhdGlvbi51bnJlZ2lzdGVyKCkp
OworCisgIGF3YWl0IHJlZ2lzdHJhdGlvbi51cGRhdGUoKTsKKyAgYXNzZXJ0X2FjdGl2ZV9vbmx5
KHJlZ2lzdHJhdGlvbiwgZXhwZWN0ZWRfdXJsKTsKK30sICd1cGRhdGUoKSBzaG91bGQgdHJlYXQg
NDA0IG9uIGltcG9ydGVkIHNjcmlwdHMgYXMgbm8gY2hhbmdlLicpOworCitwcm9taXNlX3Rlc3Qo
YXN5bmMgdCA9PiB7CisgIGNvbnN0IFtyZWdpc3RyYXRpb24sIGV4cGVjdGVkX3VybF0gPSBhd2Fp
dCBwcmVwYXJlX3JlYWR5X25vcm1hbF93b3JrZXIoCisgICAgdCwgJ2ltcG9ydC1zY3JpcHRzLTQw
NC1hZnRlci11cGRhdGUtcGx1cy11cGRhdGUtd29ya2VyLmpzJywKKyAgICAgICBgQWRkaXRpb25h
bEtleT0ke3Rva2VuKCl9YCk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcmVnaXN0cmF0aW9uLnVu
cmVnaXN0ZXIoKSk7CisKKyAgYXdhaXQgcHJvbWlzZV9yZWplY3RzKHQsIG5ldyBUeXBlRXJyb3Io
KSwgcmVnaXN0cmF0aW9uLnVwZGF0ZSgpKTsKKyAgYXNzZXJ0X2FjdGl2ZV9vbmx5KHJlZ2lzdHJh
dGlvbiwgZXhwZWN0ZWRfdXJsKTsKK30sICd1cGRhdGUoKSBzaG91bGQgZmluZCBhbiB1cGRhdGUg
aW4gYW4gaW1wb3J0ZWQgc2NyaXB0IGJ1dCB1cGRhdGUoKSBzaG91bGQgJyArCisgICAncmVzdWx0
IGluIGZhaWx1cmUgZHVlIHRvIG1pc3NpbmcgdGhlIG90aGVyIGltcG9ydGVkIHNjcmlwdC4nKTsK
Kzwvc2NyaXB0PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRl
LW5vdC1hbGxvd2VkLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0
ZS1ub3QtYWxsb3dlZC5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggYzk1OWFjZDViYmFmODk5MjI0
YjcyNDliMWI2YjZkMzBkNjQ5ZmIyMS4uNzkxYmUwYWI3NjY5MmYyZmI4N2Q2MGU4MWI3OGZmYTdh
ZGFlZDk1YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLW5vdC1hbGxvd2Vk
Lmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUtbm90LWFs
bG93ZWQuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0xLDYgKzEsNSBAQAogCi1IYXJuZXNzIEVycm9y
IChUSU1FT1VUKSwgbWVzc2FnZSA9IG51bGwKLQotUEFTUyBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0
aW9uLnVwZGF0ZSgpIGZyb20gY2xpZW50IHRocm93cyB3aGlsZSBpbnN0YWxsaW5nIHNlcnZpY2Ug
d29ya2VyLiAKLVRJTUVPVVQgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbi51cGRhdGUoKSBmcm9t
IGluc3RhbGxpbmcgc2VydmljZSB3b3JrZXIgdGhyb3dzLiBUZXN0IHRpbWVkIG91dAorUEFTUyBT
ZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLnVwZGF0ZSgpIGZyb20gY2xpZW50IHN1Y2NlZWRzIHdo
aWxlIGluc3RhbGxpbmcgc2VydmljZSB3b3JrZXIuIAorRkFJTCBTZXJ2aWNlV29ya2VyUmVnaXN0
cmF0aW9uLnVwZGF0ZSgpIGZyb20gaW5zdGFsbGluZyBzZXJ2aWNlIHdvcmtlciB0aHJvd3MuIGFz
c2VydF9mYWxzZTogdXBkYXRlKCkgc2hvdWxkIGhhdmUgZmFpbGVkLiBleHBlY3RlZCBmYWxzZSBn
b3QgdHJ1ZQorRkFJTCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLnVwZGF0ZSgpIGZyb20gYWN0
aXZlIHNlcnZpY2Ugd29ya2VyIHN1Y2NlZWRzIHdoaWxlIGluc3RhbGxpbmcgc2VydmljZSB3b3Jr
ZXIuIGFzc2VydF9lcXVhbHM6IFNlcnZpY2Ugd29ya2VyIHNob3VsZCBiZSBhY3RpdmF0ZWQuIGV4
cGVjdGVkICJyZWR1bmRhbnQiIGJ1dCBnb3QgImFjdGl2YXRlZCIKIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvdXBkYXRlLXJlZ2lzdHJhdGlvbi13aXRoLXR5cGUuaHR0cHMuaHRtbCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0ZS1yZWdpc3RyYXRpb24td2l0aC10eXBlLmh0dHBzLmh0
bWwKaW5kZXggZTdkMzY5MjgxMmViOGEyNGYyNTNiODdlMTU3ZjRhNDM2NmUzMDk4ZS4uODEyZmEw
YjRjN2NkYmRmY2M0MGVjZGYwZjU0NzcyODhlMDQ1ZmZhYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvdXBkYXRlLXJlZ2lzdHJhdGlvbi13aXRoLXR5cGUuaHR0cHMuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci91cGRhdGUtcmVnaXN0cmF0aW9uLXdpdGgtdHlwZS5odHRwcy5odG1s
CkBAIC0yLDcgKzIsNyBAQAogPG1ldGEgY2hhcnNldD0idXRmLTgiPgogPHRpdGxlPlNlcnZpY2Ug
V29ya2VyOiBVcGRhdGUgdGhlIHJlZ2lzdHJhdGlvbiB3aXRoIGEgZGlmZmVyZW50IHNjcmlwdCB0
eXBlLjwvdGl0bGU+CiA8IS0tIGNvbW1vbi5qcyBpcyBmb3IgZ3VpZCgpIC0tPgotPHNjcmlwdCBz
cmM9Ii9jb21tb24vc2VjdXJpdHktZmVhdHVyZXMvcmVzb3VyY2VzL2NvbW1vbi5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iL2NvbW1vbi9zZWN1cml0eS1mZWF0dXJlcy9yZXNvdXJjZXMvY29t
bW9uLnN1Yi5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVz
cy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9y
dC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Rlc3QtaGVscGVycy5zdWIu
anMiPjwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLmh0dHBz
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0ZS5odHRwcy1leHBlY3RlZC50
eHQKaW5kZXggOTY3ZjBmNTg0ZDQwMDExNWU0NmQxYjM3MDM3OTkwY2VkNTMyNDBmYS4uMTNkM2Zk
YjQ2ZjNmNzU1MzJjNmJmYjM4ZDE2OGU5ZjIxMTM5OWZhOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvdXBkYXRlLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci91cGRhdGUuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsMTEgQEAKK0NPTlNPTEUgTUVT
U0FHRTogTm90IGFsbG93ZWQgdG8gZm9sbG93IGEgcmVkaXJlY3Rpb24gd2hpbGUgbG9hZGluZyBo
dHRwczovL2xvY2FsaG9zdDo5NDQzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNv
dXJjZXMvdXBkYXRlLXdvcmtlci5weT9LZXk9YTI2ZGI5YjUtMDYxZC00MDc5LWEzMTAtM2E0Zjk0
ZTNjZGE1Jk1vZGU9cmVkaXJlY3QKK0NPTlNPTEUgTUVTU0FHRTogQ2Fubm90IGxvYWQgaHR0cHM6
Ly9sb2NhbGhvc3Q6OTQ0My9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2Vz
L3VwZGF0ZS13b3JrZXIucHk/S2V5PWEyNmRiOWI1LTA2MWQtNDA3OS1hMzEwLTNhNGY5NGUzY2Rh
NSZNb2RlPXJlZGlyZWN0IGR1ZSB0byBhY2Nlc3MgY29udHJvbCBjaGVja3MuCiAKLVBBU1MgVXBk
YXRlIGEgcmVnaXN0cmF0aW9uLiAKK1BBU1MgdXBkYXRlKCkgc2hvdWxkIHN1Y2NlZWQgd2hlbiBu
ZXcgc2NyaXB0IGlzIGF2YWlsYWJsZS4gCitQQVNTIHVwZGF0ZSgpIHNob3VsZCBmYWlsIHdoZW4g
bWltZSB0eXBlIGlzIGludmFsaWQuIAorRkFJTCB1cGRhdGUoKSBzaG91bGQgZmFpbCB3aGVuIGEg
cmVzcG9uc2UgZm9yIHRoZSBtYWluIHNjcmlwdCBpcyByZWRpcmVjdC4gYXNzZXJ0X3Rocm93czog
ZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsgdGhyb3cgZSB9IiB0aHJldyBvYmplY3QgIlNlY3VyaXR5
RXJyb3I6IFNjcmlwdCBodHRwczovL2xvY2FsaG9zdDo5NDQzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9yZXNvdXJjZXMvdXBkYXRlLXdvcmtlci5weT9LZXk9YTI2ZGI5YjUtMDYxZC00
MDc5LWEzMTAtM2E0Zjk0ZTNjZGE1Jk1vZGU9cmVkaXJlY3QgbG9hZCBmYWlsZWQiICgiU2VjdXJp
dHlFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCitQQVNT
IHVwZGF0ZSgpIHNob3VsZCBmYWlsIHdoZW4gYSBuZXcgc2NyaXB0IGNvbnRhaW5zIGEgc3ludGF4
IGVycm9yLiAKK1BBU1MgdXBkYXRlKCkgc2hvdWxkIHJlc29sdmUgd2hlbiB0aGUgaW5zdGFsbCBl
dmVudCB0aHJvd3MuIAorUEFTUyB1cGRhdGUoKSBzaG91bGQgZmFpbCB3aGVuIHRoZSBwZW5kaW5n
IHVuaW5zdGFsbCBmbGFnIGlzIHNldC4gCitQQVNTIHVwZGF0ZSgpIHNob3VsZCBzdWNjZWVkIHdo
ZW4gdGhlIHNjcmlwdCBzaHJpbmtzLiAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
dXBkYXRlLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUuaHR0cHMuaHRtbApp
bmRleCA2NzE3ZDRkN2FjMjg5YzhhMThiMTUwMGUyMTc5NWZkMTZjNTMyMWU3Li5mN2ZhZTM1ZWQy
OGQ3YzgyYzI2MTc1MmMyMmNkMDkxZTQ3MzgwMWIwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci91cGRhdGUuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUuaHR0
cHMuaHRtbApAQCAtMSw1ICsxLDcgQEAKIDwhRE9DVFlQRSBodG1sPgogPHRpdGxlPlNlcnZpY2Ug
V29ya2VyOiBSZWdpc3RyYXRpb24gdXBkYXRlKCk8L3RpdGxlPgorPG1ldGEgbmFtZT0idGltZW91
dCIgY29udGVudD0ibG9uZyI+Cis8c2NyaXB0IHNyYz0iL2NvbW1vbi91dGlscy5qcyI+PC9zY3Jp
cHQ+CiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CiA8
c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CiA8
c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Rlc3RoYXJuZXNzLWhlbHBlcnMuanMiPjwvc2NyaXB0PgpA
QCAtNywxMTUgKzksMTU2IEBACiA8c2NyaXB0PgogJ3VzZSBzdHJpY3QnOwogCi1wcm9taXNlX3Rl
c3QoZnVuY3Rpb24odCkgewotICAgIHZhciBzY29wZSA9ICdyZXNvdXJjZXMvc2ltcGxlLnR4dCc7
Ci0gICAgdmFyIHdvcmtlcl91cmwgPSAncmVzb3VyY2VzL3VwZGF0ZS13b3JrZXIucHknOwotICAg
IHZhciBleHBlY3RlZF91cmwgPSBub3JtYWxpemVVUkwod29ya2VyX3VybCk7Ci0gICAgdmFyIHJl
Z2lzdHJhdGlvbjsKLQotICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9y
ZWdpc3Rlcih0LCB3b3JrZXJfdXJsLCBzY29wZSkKLSAgICAgIC50aGVuKGZ1bmN0aW9uKHIpIHsK
LSAgICAgICAgICByZWdpc3RyYXRpb24gPSByOwotICAgICAgICAgIHJldHVybiB3YWl0X2Zvcl9z
dGF0ZSh0LCByZWdpc3RyYXRpb24uaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOwotICAgICAgICB9
KQotICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgYXNzZXJ0X2VxdWFscyhyZWdp
c3RyYXRpb24uaW5zdGFsbGluZywgbnVsbCwKLSAgICAgICAgICAgICAgICAgICAgICAgICdpbnN0
YWxsaW5nIHNob3VsZCBiZSBudWxsIGluIHRoZSBpbml0aWFsIHN0YXRlLicpOwotICAgICAgICAg
IGFzc2VydF9lcXVhbHMocmVnaXN0cmF0aW9uLndhaXRpbmcsIG51bGwsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAnd2FpdGluZyBzaG91bGQgYmUgbnVsbCBpbiB0aGUgaW5pdGlhbCBzdGF0ZS4n
KTsKLSAgICAgICAgICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi5hY3RpdmUuc2NyaXB0VVJM
LCBleHBlY3RlZF91cmwsCi0gICAgICAgICAgICAgICAgICAgICAgICAnYWN0aXZlIHNob3VsZCBl
eGlzdCBpbiB0aGUgaW5pdGlhbCBzdGF0ZS4nKTsKLSAgICAgICAgICAvLyBBIG5ldyB3b3JrZXIg
KGdlbmVyYXRlZCBieSB1cGRhdGUtd29ya2VyLnB5KSBzaG91bGQgYmUgZm91bmQuCi0gICAgICAg
ICAgLy8gVGhlIHJldHVybmVkIHByb21pc2Ugc2hvdWxkIHJlc29sdmUgd2hlbiBhIG5ldyB3b3Jr
ZXIgc2NyaXB0IGlzCi0gICAgICAgICAgLy8gZmV0Y2hlZCBhbmQgc3RhcnRzIGluc3RhbGxpbmcu
Ci0gICAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKFtyZWdpc3RyYXRpb24udXBkYXRlKCksCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3YWl0X2Zvcl91cGRhdGUodCwgcmVnaXN0cmF0
aW9uKV0pOwotICAgICAgICB9KQotICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7Ci0gICAgICAgICAg
YXNzZXJ0X2VxdWFscyhyZWdpc3RyYXRpb24uaW5zdGFsbGluZy5zY3JpcHRVUkwsIGV4cGVjdGVk
X3VybCwKLSAgICAgICAgICAgICAgICAgICAgICAgICduZXcgaW5zdGFsbGluZyBzaG91bGQgYmUg
c2V0IGFmdGVyIHVwZGF0ZSByZXNvbHZlcy4nKTsKLSAgICAgICAgICBhc3NlcnRfZXF1YWxzKHJl
Z2lzdHJhdGlvbi53YWl0aW5nLCBudWxsLAotICAgICAgICAgICAgICAgICAgICAgICAgJ3dhaXRp
bmcgc2hvdWxkIHN0aWxsIGJlIG51bGwgYWZ0ZXIgdXBkYXRlIHJlc29sdmVzLicpOwotICAgICAg
ICAgIGFzc2VydF9lcXVhbHMocmVnaXN0cmF0aW9uLmFjdGl2ZS5zY3JpcHRVUkwsIGV4cGVjdGVk
X3VybCwKLSAgICAgICAgICAgICAgICAgICAgICAgICdhY3RpdmUgc2hvdWxkIHN0aWxsIGV4aXN0
IGFmdGVyIHVwZGF0ZSBmb3VuZC4nKTsKLSAgICAgICAgICByZXR1cm4gd2FpdF9mb3Jfc3RhdGUo
dCwgcmVnaXN0cmF0aW9uLmluc3RhbGxpbmcsICdpbnN0YWxsZWQnKTsKLSAgICAgICAgfSkKLSAg
ICAgIC50aGVuKGZ1bmN0aW9uKCkgewotICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVnaXN0cmF0
aW9uLmluc3RhbGxpbmcsIG51bGwsCi0gICAgICAgICAgICAgICAgICAgICAgICAnaW5zdGFsbGlu
ZyBzaG91bGQgYmUgbnVsbCBhZnRlciBpbnN0YWxsaW5nLicpOwotICAgICAgICAgIGFzc2VydF9l
cXVhbHMocmVnaXN0cmF0aW9uLndhaXRpbmcuc2NyaXB0VVJMLCBleHBlY3RlZF91cmwsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAnd2FpdGluZyBzaG91bGQgYmUgc2V0IGFmdGVyIGluc3RhbGxp
bmcuJyk7Ci0gICAgICAgICAgYXNzZXJ0X2VxdWFscyhyZWdpc3RyYXRpb24uYWN0aXZlLnNjcmlw
dFVSTCwgZXhwZWN0ZWRfdXJsLAotICAgICAgICAgICAgICAgICAgICAgICAgJ2FjdGl2ZSBzaG91
bGQgc3RpbGwgZXhpc3QgYWZ0ZXIgaW5zdGFsbGluZy4nKTsKLSAgICAgICAgICByZXR1cm4gd2Fp
dF9mb3Jfc3RhdGUodCwgcmVnaXN0cmF0aW9uLndhaXRpbmcsICdhY3RpdmF0ZWQnKTsKLSAgICAg
ICAgfSkKLSAgICAgIC50aGVuKGZ1bmN0aW9uKCkgewotICAgICAgICAgIGFzc2VydF9lcXVhbHMo
cmVnaXN0cmF0aW9uLmluc3RhbGxpbmcsIG51bGwsCi0gICAgICAgICAgICAgICAgICAgICAgICAn
aW5zdGFsbGluZyBzaG91bGQgYmUgbnVsbCBhZnRlciBhY3RpdmF0ZWQuJyk7Ci0gICAgICAgICAg
YXNzZXJ0X2VxdWFscyhyZWdpc3RyYXRpb24ud2FpdGluZywgbnVsbCwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICd3YWl0aW5nIHNob3VsZCBiZSBudWxsIGFmdGVyIGFjdGl2YXRlZC4nKTsKLSAg
ICAgICAgICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi5hY3RpdmUuc2NyaXB0VVJMLCBleHBl
Y3RlZF91cmwsCi0gICAgICAgICAgICAgICAgICAgICAgICAnbmV3IHdvcmtlciBzaG91bGQgYmUg
cHJvbW90ZWQgdG8gYWN0aXZlLicpOwotICAgICAgICB9KQotICAgICAgLnRoZW4oZnVuY3Rpb24o
KSB7Ci0gICAgICAgICAgLy8gQSBuZXcgd29ya2VyKGdlbmVyYXRlZCBieSB1cGRhdGUtd29ya2Vy
LnB5KSBzaG91bGQgYmUgZm91bmQuCi0gICAgICAgICAgLy8gVGhlIHJldHVybmVkIHByb21pc2Ug
c2hvdWxkIHJlamVjdCBhcyB1cGRhdGUtd29ya2VyLnB5IHNldHMgdGhlCi0gICAgICAgICAgLy8g
bWltZXR5cGUgdG8gYSBkaXNhbGxvd2VkIHZhbHVlIGZvciB0aGlzIGF0dGVtcHQuCi0gICAgICAg
ICAgcmV0dXJuIHJlZ2lzdHJhdGlvbi51cGRhdGUoKTsKLSAgICAgICAgfSkKLSAgICAgIC50aGVu
KAotICAgICAgICBmdW5jdGlvbigpIHsgYXNzZXJ0X3VucmVhY2hlZCgidXBkYXRlKCkgc2hvdWxk
IHJlamVjdC4iKTsgfSwKLSAgICAgICAgZnVuY3Rpb24oZSkgewotICAgICAgICAgIGFzc2VydF90
aHJvd3MoJ1NlY3VyaXR5RXJyb3InLCBmdW5jdGlvbigpIHsgdGhyb3cgZTsgfSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICdVc2luZyBhIGRpc2FsbG93ZWQgbWltZXR5cGUgc2hvdWxkIG1ha2Ug
dXBkYXRlKCkgJyArCi0gICAgICAgICAgICAgICAgICAgICAgICAncHJvbWlzZSByZWplY3Qgd2l0
aCBhIFNlY3VyaXR5RXJyb3IuJyk7Ci0gICAgICAgICAgYXNzZXJ0X2VxdWFscyhyZWdpc3RyYXRp
b24uYWN0aXZlLnNjcmlwdFVSTCwgZXhwZWN0ZWRfdXJsLAotICAgICAgICAgICAgICAgICAgICAg
ICAgJ2FjdGl2ZSBzaG91bGQgc3RpbGwgZXhpc3QgYWZ0ZXIgdXBkYXRlIGZhaWx1cmUuJyk7Ci0K
LSAgICAgICAgICAvLyBBIG5ldyB3b3JrZXIoZ2VuZXJhdGVkIGJ5IHVwZGF0ZS13b3JrZXIucHkp
IHNob3VsZCBiZSBmb3VuZC4KLSAgICAgICAgICAvLyBUaGUgcmV0dXJuZWQgcHJvbWlzZSBzaG91
bGQgcmVqZWN0IGFzIHVwZGF0ZS13b3JrZXIucHkgcmV0dXJucwotICAgICAgICAgIC8vIGEgd29y
a2VyIHNjcmlwdCB3aXRoIGEgc3ludGF4IGVycm9yLgotICAgICAgICAgIHJldHVybiByZWdpc3Ry
YXRpb24udXBkYXRlKCk7Ci0gICAgICAgIH0pCi0gICAgICAudGhlbigKLSAgICAgICAgZnVuY3Rp
b24oKSB7IGFzc2VydF91bnJlYWNoZWQoInVwZGF0ZSgpIHNob3VsZCByZWplY3QuIik7IH0sCi0g
ICAgICAgIGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICBhc3NlcnRfdGhyb3dzKHtuYW1lOiAnVHlw
ZUVycm9yJ30sIGZ1bmN0aW9uICgpIHsgdGhyb3cgZTsgfSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICdBIHNjcmlwdCBzeW50YXggZXJyb3Igc2hvdWxkIG1ha2UgdXBkYXRlKCkgJyArCi0gICAg
ICAgICAgICAgICAgICAgICAgICAncHJvbWlzZSByZWplY3Qgd2l0aCBhIFR5cGVFcnJvci4nKTsK
LSAgICAgICAgICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi5hY3RpdmUuc2NyaXB0VVJMLCBl
eHBlY3RlZF91cmwsCi0gICAgICAgICAgICAgICAgICAgICAgICAnYWN0aXZlIHNob3VsZCBzdGls
bCBleGlzdCBhZnRlciB1cGRhdGUgZmFpbHVyZS4nKTsKLQotICAgICAgICAgIC8vIEEgbmV3IHdv
cmtlcihnZW5lcmF0ZWQgYnkgdXBkYXRlLXdvcmtlci5weSkgc2hvdWxkIGJlIGZvdW5kLgotICAg
ICAgICAgIC8vIFRoZSByZXR1cm5lZCBwcm9taXNlIHNob3VsZCBub3QgcmVqZWN0LCBldmVuIHRo
b3VnaAotICAgICAgICAgIC8vIHVwZGF0ZS13b3JrZXIucHkgcmV0dXJucyBhIHdvcmtlciBzY3Jp
cHQgdGhhdCB0aHJvd3MgaW4gdGhlCi0gICAgICAgICAgLy8gaW5zdGFsbCBldmVudCBoYW5kbGVy
LgotICAgICAgICAgIHJldHVybiBQcm9taXNlLmFsbChbcmVnaXN0cmF0aW9uLnVwZGF0ZSgpLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2FpdF9mb3JfdXBkYXRlKHQsIHJlZ2lzdHJh
dGlvbildKTsKLSAgICAgICAgfSkKLSAgICAgIC50aGVuKGZ1bmN0aW9uKCkgewotICAgICAgICAg
IGFzc2VydF9lcXVhbHMocmVnaXN0cmF0aW9uLmluc3RhbGxpbmcuc2NyaXB0VVJMLCBleHBlY3Rl
ZF91cmwsCi0gICAgICAgICAgICAgICAgICAgICAgICAnbmV3IGluc3RhbGxpbmcgc2hvdWxkIGJl
IHNldCBhZnRlciB1cGRhdGUgcmVzb2x2ZXMuJyk7Ci0gICAgICAgICAgYXNzZXJ0X2VxdWFscyhy
ZWdpc3RyYXRpb24ud2FpdGluZywgbnVsbCwKLSAgICAgICAgICAgICAgICAgICAgICAgICd3YWl0
aW5nIHNob3VsZCBiZSBudWxsIGFmdGVyIGFjdGl2YXRlZC4nKTsKLSAgICAgICAgICBhc3NlcnRf
ZXF1YWxzKHJlZ2lzdHJhdGlvbi5hY3RpdmUuc2NyaXB0VVJMLCBleHBlY3RlZF91cmwsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAnYWN0aXZlIHNob3VsZCBzdGlsbCBleGlzdCBhZnRlciB1cGRh
dGUgZm91bmQuJyk7Ci0KLSAgICAgICAgICAvLyBXZSBuZWVkIHRvIGhvbGQgYSBjbGllbnQgYWxp
dmUgc28gdGhhdCB1bnJlZ2lzdGVyKCkgYmVsb3cgZG9lc24ndAotICAgICAgICAgIC8vIHJlbW92
ZSB0aGUgcmVnaXN0cmF0aW9uIGJlZm9yZSB1cGRhdGUoKSBoYXMgaGFkIGEgY2hhbmNlIHRvIGxv
b2sKLSAgICAgICAgICAvLyBhdCB0aGUgcGVuZGluZyB1bmluc3RhbGwgZmxhZy4KLSAgICAgICAg
ICByZXR1cm4gd2l0aF9pZnJhbWUoc2NvcGUpOwotICAgICAgICB9KQotICAgICAgLnRoZW4oZnVu
Y3Rpb24oZnJhbWUpIHsKLSAgICAgICAgICB0LmFkZF9jbGVhbnVwKGZ1bmN0aW9uKCkgewotICAg
ICAgICAgICAgICBmcmFtZS5yZW1vdmUoKTsKLSAgICAgICAgICAgIH0pOwotCi0gICAgICAgICAg
cmV0dXJuIGFzc2VydF9wcm9taXNlX3JlamVjdHMoCi0gICAgICAgICAgICAgIFByb21pc2UuYWxs
KFtyZWdpc3RyYXRpb24udW5yZWdpc3RlcigpLCByZWdpc3RyYXRpb24udXBkYXRlKCldKSwKLSAg
ICAgICAgICAgICAgbmV3IFR5cGVFcnJvcigpLAotICAgICAgICAgICAgICAnQ2FsbGluZyB1cGRh
dGUoKSB3aGlsZSB0aGUgdW5pbnN0YWxsaW5nIGZsYWcgaXMgc2V0ICcgKwotICAgICAgICAgICAg
ICAnc2hvdWxkIHJldHVybiBhIHByb21pc2UgdGhhdCByZWplY3RzIHdpdGggYSBUeXBlRXJyb3Iu
Jyk7Ci0gICAgICAgIH0pOwotICB9LCAnVXBkYXRlIGEgcmVnaXN0cmF0aW9uLicpOworY29uc3Qg
U0NPUEUgPSAncmVzb3VyY2VzL3NpbXBsZS50eHQnOworCisvLyBDcmVhdGUgYSBzZXJ2aWNlIHdv
cmtlciAodXBkYXRlLXdvcmtlci5weSkuIFRoZSByZXNwb25zZSB0byB1cGRhdGUoKSB3aWxsIGJl
CisvLyBkaWZmZXJlbnQgYmFzZWQgb24gdGhlIG1vZGUuCithc3luYyBmdW5jdGlvbiBwcmVwYXJl
X3JlYWR5X3JlZ2lzdHJhdGlvbl93aXRoX21vZGUodCwgbW9kZSkgeworICBjb25zdCBrZXkgPSB0
b2tlbigpOworICBjb25zdCB3b3JrZXJfdXJsID0gYHJlc291cmNlcy91cGRhdGUtd29ya2VyLnB5
P0tleT0ke2tleX0mTW9kZT0ke21vZGV9YDsKKyAgY29uc3QgZXhwZWN0ZWRfdXJsID0gbm9ybWFs
aXplVVJMKHdvcmtlcl91cmwpOworICBjb25zdCByZWdpc3RyYXRpb24gPSBhd2FpdCBzZXJ2aWNl
X3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3RlcigKKyAgICAgIHQsIHdvcmtlcl91cmwsIFND
T1BFKTsKKyAgYXdhaXQgd2FpdF9mb3Jfc3RhdGUodCwgcmVnaXN0cmF0aW9uLmluc3RhbGxpbmcs
ICdhY3RpdmF0ZWQnKTsKKyAgYXNzZXJ0X2VxdWFscyhyZWdpc3RyYXRpb24uaW5zdGFsbGluZywg
bnVsbCwKKyAgICAgICAgICAgICAgICAncHJlcGFyZV9yZWFkeTogaW5zdGFsbGluZycpOworICBh
c3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi53YWl0aW5nLCBudWxsLAorICAgICAgICAgICAgICAg
ICdwcmVwYXJlX3JlYWR5OiB3YWl0aW5nJyk7CisgIGFzc2VydF9lcXVhbHMocmVnaXN0cmF0aW9u
LmFjdGl2ZS5zY3JpcHRVUkwsIGV4cGVjdGVkX3VybCwKKyAgICAgICAgICAgICAgICAncHJlcGFy
ZV9yZWFkeTogYWN0aXZlJyk7CisgIHJldHVybiBbcmVnaXN0cmF0aW9uLCBleHBlY3RlZF91cmxd
OworfQorCisvLyBDcmVhdGUgYSBzZXJ2aWNlIHdvcmtlciAodXBkYXRlLXdvcmtlci1mcm9tLWZp
bGUucHkpLCB3aGljaCBpcyBpbml0aWFsbHkKKy8vIHxpbml0aWFsX3dvcmtlcnwgYW5kIHx1cGRh
dGVkX3dvcmtlcnwgbGF0ZXIuCithc3luYyBmdW5jdGlvbiBwcmVwYXJlX3JlYWR5X3JlZ2lzdHJh
dGlvbl93aXRoX2ZpbGUoCisgICAgdCwgaW5pdGlhbF93b3JrZXIsIHVwZGF0ZWRfd29ya2VyKSB7
CisgIGNvbnN0IGtleSA9IHRva2VuKCk7CisgIGNvbnN0IHdvcmtlcl91cmwgPSBgcmVzb3VyY2Vz
L3VwZGF0ZS13b3JrZXItZnJvbS1maWxlLnB5P2AgKworICAgICAgYEZpcnN0PSR7aW5pdGlhbF93
b3JrZXJ9JlNlY29uZD0ke3VwZGF0ZWRfd29ya2VyfSZLZXk9JHtrZXl9YDsKKyAgY29uc3QgZXhw
ZWN0ZWRfdXJsID0gbm9ybWFsaXplVVJMKHdvcmtlcl91cmwpOworCisgIGNvbnN0IHJlZ2lzdHJh
dGlvbiA9IGF3YWl0IHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKAorICAg
ICAgdCwgd29ya2VyX3VybCwgU0NPUEUpOworICBhd2FpdCB3YWl0X2Zvcl9zdGF0ZSh0LCByZWdp
c3RyYXRpb24uaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOworICBhc3NlcnRfZXF1YWxzKHJlZ2lz
dHJhdGlvbi5pbnN0YWxsaW5nLCBudWxsLAorICAgICAgICAgICAgICAgICdwcmVwYXJlX3JlYWR5
OiBpbnN0YWxsaW5nJyk7CisgIGFzc2VydF9lcXVhbHMocmVnaXN0cmF0aW9uLndhaXRpbmcsIG51
bGwsCisgICAgICAgICAgICAgICAgJ3ByZXBhcmVfcmVhZHk6IHdhaXRpbmcnKTsKKyAgYXNzZXJ0
X2VxdWFscyhyZWdpc3RyYXRpb24uYWN0aXZlLnNjcmlwdFVSTCwgZXhwZWN0ZWRfdXJsLAorICAg
ICAgICAgICAgICAgICdwcmVwYXJlX3JlYWR5OiBhY3RpdmUnKTsKKyAgcmV0dXJuIFtyZWdpc3Ry
YXRpb24sIGV4cGVjdGVkX3VybF07Cit9CisKK2Z1bmN0aW9uIGFzc2VydF9pbnN0YWxsaW5nX2Fu
ZF9hY3RpdmUocmVnaXN0cmF0aW9uLCBleHBlY3RlZF91cmwpIHsKKyAgYXNzZXJ0X2VxdWFscyhy
ZWdpc3RyYXRpb24uaW5zdGFsbGluZy5zY3JpcHRVUkwsIGV4cGVjdGVkX3VybCwKKyAgICAgICAg
ICAgICAgICAnYXNzZXJ0X2luc3RhbGxpbmdfYW5kX2FjdGl2ZTogaW5zdGFsbGluZycpOworICBh
c3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi53YWl0aW5nLCBudWxsLAorICAgICAgICAgICAgICAg
ICdhc3NlcnRfaW5zdGFsbGluZ19hbmRfYWN0aXZlOiB3YWl0aW5nJyk7CisgIGFzc2VydF9lcXVh
bHMocmVnaXN0cmF0aW9uLmFjdGl2ZS5zY3JpcHRVUkwsIGV4cGVjdGVkX3VybCwKKyAgICAgICAg
ICAgICAgICAnYXNzZXJ0X2luc3RhbGxpbmdfYW5kX2FjdGl2ZTogYWN0aXZlJyk7Cit9CisKK2Z1
bmN0aW9uIGFzc2VydF93YWl0aW5nX2FuZF9hY3RpdmUocmVnaXN0cmF0aW9uLCBleHBlY3RlZF91
cmwpIHsKKyAgYXNzZXJ0X2VxdWFscyhyZWdpc3RyYXRpb24uaW5zdGFsbGluZywgbnVsbCwKKyAg
ICAgICAgICAgICAgICAnYXNzZXJ0X3dhaXRpbmdfYW5kX2FjdGl2ZTogaW5zdGFsbGluZycpOwor
ICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi53YWl0aW5nLnNjcmlwdFVSTCwgZXhwZWN0ZWRf
dXJsLAorICAgICAgICAgICAgICAgICdhc3NlcnRfd2FpdGluZ19hbmRfYWN0aXZlOiB3YWl0aW5n
Jyk7CisgIGFzc2VydF9lcXVhbHMocmVnaXN0cmF0aW9uLmFjdGl2ZS5zY3JpcHRVUkwsIGV4cGVj
dGVkX3VybCwKKyAgICAgICAgICAgICAgICAnYXNzZXJ0X3dhaXRpbmdfYW5kX2FjdGl2ZTogYWN0
aXZlJyk7Cit9CisKK2Z1bmN0aW9uIGFzc2VydF9hY3RpdmVfb25seShyZWdpc3RyYXRpb24sIGV4
cGVjdGVkX3VybCkgeworICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLCBu
dWxsLAorICAgICAgICAgICAgICAgICdhc3NlcnRfYWN0aXZlX29ubHk6IGluc3RhbGxpbmcnKTsK
KyAgYXNzZXJ0X2VxdWFscyhyZWdpc3RyYXRpb24ud2FpdGluZywgbnVsbCwKKyAgICAgICAgICAg
ICAgICAnYXNzZXJ0X2FjdGl2ZV9vbmx5OiB3YWl0aW5nJyk7CisgIGFzc2VydF9lcXVhbHMocmVn
aXN0cmF0aW9uLmFjdGl2ZS5zY3JpcHRVUkwsIGV4cGVjdGVkX3VybCwKKyAgICAgICAgICAgICAg
ICAnYXNzZXJ0X2FjdGl2ZV9vbmx5OiBhY3RpdmUnKTsKK30KKworcHJvbWlzZV90ZXN0KGFzeW5j
IHQgPT4geworICBjb25zdCBbcmVnaXN0cmF0aW9uLCBleHBlY3RlZF91cmxdID0KKyAgICAgIGF3
YWl0IHByZXBhcmVfcmVhZHlfcmVnaXN0cmF0aW9uX3dpdGhfbW9kZSh0LCAnbm9ybWFsJyk7Cisg
IHQuYWRkX2NsZWFudXAoKCkgPT4gcmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIoKSk7CisKKyAgYXdh
aXQgUHJvbWlzZS5hbGwoW3JlZ2lzdHJhdGlvbi51cGRhdGUoKSwgd2FpdF9mb3JfdXBkYXRlKHQs
IHJlZ2lzdHJhdGlvbildKTsKKyAgYXNzZXJ0X2luc3RhbGxpbmdfYW5kX2FjdGl2ZShyZWdpc3Ry
YXRpb24sIGV4cGVjdGVkX3VybCk7CisKKyAgYXdhaXQgd2FpdF9mb3Jfc3RhdGUodCwgcmVnaXN0
cmF0aW9uLmluc3RhbGxpbmcsICdpbnN0YWxsZWQnKTsKKyAgYXNzZXJ0X3dhaXRpbmdfYW5kX2Fj
dGl2ZShyZWdpc3RyYXRpb24sIGV4cGVjdGVkX3VybCk7CisKKyAgYXdhaXQgd2FpdF9mb3Jfc3Rh
dGUodCwgcmVnaXN0cmF0aW9uLndhaXRpbmcsICdhY3RpdmF0ZWQnKTsKKyAgYXNzZXJ0X2FjdGl2
ZV9vbmx5KHJlZ2lzdHJhdGlvbiwgZXhwZWN0ZWRfdXJsKTsKK30sICd1cGRhdGUoKSBzaG91bGQg
c3VjY2VlZCB3aGVuIG5ldyBzY3JpcHQgaXMgYXZhaWxhYmxlLicpOworCitwcm9taXNlX3Rlc3Qo
YXN5bmMgdCA9PiB7CisgIGNvbnN0IFtyZWdpc3RyYXRpb24sIGV4cGVjdGVkX3VybF0gPQorICAg
ICAgYXdhaXQgcHJlcGFyZV9yZWFkeV9yZWdpc3RyYXRpb25fd2l0aF9tb2RlKHQsICdiYWRfbWlt
ZV90eXBlJyk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIo
KSk7CisKKyAgYXdhaXQgcHJvbWlzZV9yZWplY3RzKHQsICdTZWN1cml0eUVycm9yJywgcmVnaXN0
cmF0aW9uLnVwZGF0ZSgpKTsKKyAgYXNzZXJ0X2FjdGl2ZV9vbmx5KHJlZ2lzdHJhdGlvbiwgZXhw
ZWN0ZWRfdXJsKTsKK30sICd1cGRhdGUoKSBzaG91bGQgZmFpbCB3aGVuIG1pbWUgdHlwZSBpcyBp
bnZhbGlkLicpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0IFtyZWdpc3Ry
YXRpb24sIGV4cGVjdGVkX3VybF0gPQorICAgICAgYXdhaXQgcHJlcGFyZV9yZWFkeV9yZWdpc3Ry
YXRpb25fd2l0aF9tb2RlKHQsICdyZWRpcmVjdCcpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHJl
Z2lzdHJhdGlvbi51bnJlZ2lzdGVyKCkpOworCisgIGF3YWl0IHByb21pc2VfcmVqZWN0cyh0LCBu
ZXcgVHlwZUVycm9yKCksIHJlZ2lzdHJhdGlvbi51cGRhdGUoKSk7CisgIGFzc2VydF9hY3RpdmVf
b25seShyZWdpc3RyYXRpb24sIGV4cGVjdGVkX3VybCk7Cit9LCAndXBkYXRlKCkgc2hvdWxkIGZh
aWwgd2hlbiBhIHJlc3BvbnNlIGZvciB0aGUgbWFpbiBzY3JpcHQgaXMgcmVkaXJlY3QuJyk7CisK
K3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgY29uc3QgW3JlZ2lzdHJhdGlvbiwgZXhwZWN0
ZWRfdXJsXSA9CisgICAgICBhd2FpdCBwcmVwYXJlX3JlYWR5X3JlZ2lzdHJhdGlvbl93aXRoX21v
ZGUodCwgJ3N5bnRheF9lcnJvcicpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHJlZ2lzdHJhdGlv
bi51bnJlZ2lzdGVyKCkpOworCisgIGF3YWl0IHByb21pc2VfcmVqZWN0cyh0LCBuZXcgVHlwZUVy
cm9yKCksIHJlZ2lzdHJhdGlvbi51cGRhdGUoKSk7CisgIGFzc2VydF9hY3RpdmVfb25seShyZWdp
c3RyYXRpb24sIGV4cGVjdGVkX3VybCk7Cit9LCAndXBkYXRlKCkgc2hvdWxkIGZhaWwgd2hlbiBh
IG5ldyBzY3JpcHQgY29udGFpbnMgYSBzeW50YXggZXJyb3IuJyk7CisKK3Byb21pc2VfdGVzdChh
c3luYyB0ID0+IHsKKyAgY29uc3QgW3JlZ2lzdHJhdGlvbiwgZXhwZWN0ZWRfdXJsXSA9CisgICAg
ICBhd2FpdCBwcmVwYXJlX3JlYWR5X3JlZ2lzdHJhdGlvbl93aXRoX21vZGUodCwgJ3Rocm93X2lu
c3RhbGwnKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiByZWdpc3RyYXRpb24udW5yZWdpc3Rlcigp
KTsKKworICBhd2FpdCBQcm9taXNlLmFsbChbcmVnaXN0cmF0aW9uLnVwZGF0ZSgpLCB3YWl0X2Zv
cl91cGRhdGUodCwgcmVnaXN0cmF0aW9uKV0pOworICBhc3NlcnRfaW5zdGFsbGluZ19hbmRfYWN0
aXZlKHJlZ2lzdHJhdGlvbiwgZXhwZWN0ZWRfdXJsKTsKK30sICd1cGRhdGUoKSBzaG91bGQgcmVz
b2x2ZSB3aGVuIHRoZSBpbnN0YWxsIGV2ZW50IHRocm93cy4nKTsKKworcHJvbWlzZV90ZXN0KGFz
eW5jIHQgPT4geworICBjb25zdCBbcmVnaXN0cmF0aW9uLCBleHBlY3RlZF91cmxdID0KKyAgICAg
IGF3YWl0IHByZXBhcmVfcmVhZHlfcmVnaXN0cmF0aW9uX3dpdGhfbW9kZSh0LCAnbm9ybWFsJyk7
CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIoKSk7CisKKyAg
Ly8gV2UgbmVlZCB0byBob2xkIGEgY2xpZW50IGFsaXZlIHNvIHRoYXQgdW5yZWdpc3RlcigpIGJl
bG93IGRvZXNuJ3QgcmVtb3ZlCisgIC8vIHRoZSByZWdpc3RyYXRpb24gYmVmb3JlIHVwZGF0ZSgp
IGhhcyBoYWQgYSBjaGFuY2UgdG8gbG9vayBhdCB0aGUgcGVuZGluZworICAvLyB1bmluc3RhbGwg
ZmxhZy4KKyAgY29uc3QgZnJhbWUgPSBhd2FpdCB3aXRoX2lmcmFtZShTQ09QRSk7CisgIHQuYWRk
X2NsZWFudXAoKCkgPT4gZnJhbWUucmVtb3ZlKCkpOworCisgIGF3YWl0IHByb21pc2VfcmVqZWN0
cygKKyAgICAgIHQsIG5ldyBUeXBlRXJyb3IoKSwKKyAgICAgIFByb21pc2UuYWxsKFtyZWdpc3Ry
YXRpb24udW5yZWdpc3RlcigpLCByZWdpc3RyYXRpb24udXBkYXRlKCldKSk7Cit9LCAndXBkYXRl
KCkgc2hvdWxkIGZhaWwgd2hlbiB0aGUgcGVuZGluZyB1bmluc3RhbGwgZmxhZyBpcyBzZXQuJyk7
CisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgY29uc3QgW3JlZ2lzdHJhdGlvbiwgZXhw
ZWN0ZWRfdXJsXSA9CisgICAgICBhd2FpdCBwcmVwYXJlX3JlYWR5X3JlZ2lzdHJhdGlvbl93aXRo
X2ZpbGUoCisgICAgICAgIHQsCisgICAgICAgICd1cGRhdGUtc21hbGxlci1ib2R5LWJlZm9yZS11
cGRhdGUtd29ya2VyLmpzJywKKyAgICAgICAgJ3VwZGF0ZS1zbWFsbGVyLWJvZHktYWZ0ZXItdXBk
YXRlLXdvcmtlci5qcycpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHJlZ2lzdHJhdGlvbi51bnJl
Z2lzdGVyKCkpOworCisgIGF3YWl0IFByb21pc2UuYWxsKFtyZWdpc3RyYXRpb24udXBkYXRlKCks
IHdhaXRfZm9yX3VwZGF0ZSh0LCByZWdpc3RyYXRpb24pXSk7CisgIGFzc2VydF9pbnN0YWxsaW5n
X2FuZF9hY3RpdmUocmVnaXN0cmF0aW9uLCBleHBlY3RlZF91cmwpOworCisgIGF3YWl0IHdhaXRf
Zm9yX3N0YXRlKHQsIHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLCAnaW5zdGFsbGVkJyk7CisgIGFz
c2VydF93YWl0aW5nX2FuZF9hY3RpdmUocmVnaXN0cmF0aW9uLCBleHBlY3RlZF91cmwpOworCisg
IGF3YWl0IHdhaXRfZm9yX3N0YXRlKHQsIHJlZ2lzdHJhdGlvbi53YWl0aW5nLCAnYWN0aXZhdGVk
Jyk7CisgIGFzc2VydF9hY3RpdmVfb25seShyZWdpc3RyYXRpb24sIGV4cGVjdGVkX3VybCk7Cit9
LCAndXBkYXRlKCkgc2hvdWxkIHN1Y2NlZWQgd2hlbiB0aGUgc2NyaXB0IHNocmlua3MuJyk7CiA8
L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3czYy1pbXBvcnQubG9nIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvdzNjLWltcG9ydC5sb2cKaW5kZXggYTMzZWYwNWI0YmMwNzcyOGIx
OTg3NjNmZTliZmYxNDQ5M2RlOGEwZi4uMThiYTI1ZDQyYjNlMzRiNGY1ZTRmZTE1MzAzY2UzMmEx
MDkzNDYyMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdzNjLWltcG9ydC5sb2cKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvdzNjLWltcG9ydC5sb2cKQEAgLTM3LDYgKzM3LDcgQEAgTGlz
dCBvZiBmaWxlczoKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGllbnRzLWdldC5odHRwcy5odG1sCiAv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvY2xpZW50cy1tYXRjaGFsbC1jbGllbnQtdHlwZXMuaHR0cHMuaHRt
bAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsaWVudHMtbWF0Y2hhbGwtZXhhY3QtY29udHJvbGxlci5o
dHRwcy5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xpZW50cy1tYXRjaGFsbC1mcm96ZW4uaHR0
cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsaWVudHMtbWF0Y2hhbGwtaW5jbHVkZS11bmNv
bnRyb2xsZWQuaHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsaWVudHMtbWF0Y2hhbGwt
b24tZXZhbHVhdGlvbi5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xpZW50cy1tYXRj
aGFsbC1vcmRlci5odHRwcy5odG1sCkBAIC0xMDIsNiArMTAzLDcgQEAgTGlzdCBvZiBmaWxlczoK
IC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC13YWl0cy1mb3ItYWN0aXZhdGUuaHR0cHMuaHRtbAog
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL2dldHJlZ2lzdHJhdGlvbi5odHRwcy5odG1sCiAvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvZ2V0cmVnaXN0cmF0aW9ucy5odHRwcy5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
Z2xvYmFsLXNlcnZpY2V3b3JrZXIuaHR0cHMuYW55LmpzCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvaHR0
cC10by1odHRwcy1yZWRpcmVjdC1hbmQtcmVnaXN0ZXIuaHR0cHMuaHRtbAogL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL2ltbXV0YWJsZS1wcm90b3R5cGUtc2VydmljZXdvcmtlci5odHRwcy5odG1sCiAvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvaW1wb3J0LW1vZHVsZS1zY3JpcHRzLmh0dHBzLmh0bWwKQEAgLTE3MCw3
ICsxNzIsNiBAQCBMaXN0IG9mIGZpbGVzOgogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3NlcnZpY2Utd29y
a2VyLWhlYWRlci5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvc2VydmljZXdvcmtlci1t
ZXNzYWdlLWV2ZW50LWhpc3RvcmljYWwuaHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Nl
cnZpY2V3b3JrZXJvYmplY3Qtc2NyaXB0dXJsLmh0dHBzLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9zaGFyZWQtd29ya2VyLWNvbnRyb2xsZWQuaHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L3NraXAtd2FpdGluZy1pbnN0YWxsZWQuaHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Nr
aXAtd2FpdGluZy11c2luZy1yZWdpc3RyYXRpb24uaHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3NraXAtd2FpdGluZy13aXRob3V0LWNsaWVudC5odHRwcy5odG1sCkBAIC0xODksNiArMTkw
LDcgQEAgTGlzdCBvZiBmaWxlczoKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUtYWZ0ZXItbmF2
aWdhdGlvbi1yZWRpcmVjdC5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLWFm
dGVyLW9uZWRheS5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLWJ5dGVjaGVj
ay5odHRwcy5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLWltcG9ydC1zY3JpcHRzLmh0
dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUtbWlzc2luZy1pbXBvcnQtc2NyaXB0
cy5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLW5vLWNhY2hlLXJlcXVlc3Qt
aGVhZGVycy5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLW5vdC1hbGxvd2Vk
Lmh0dHBzLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3dlYnNvY2tldC5odHRw
cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci93ZWJzb2NrZXQuaHR0cHMtZXhwZWN0
ZWQudHh0CmluZGV4IGNjZDM3NmZiZDE0MGU2Y2MyNTFhNTIwNjQyNzMwZGMxYTllODY3OGYuLjI1
MWNiYTllMDMxOTc4ZWJjZDM2OTU1OTcwYjcyMDA4YmQxZWU5ZWUgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL3dlYnNvY2tldC5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvd2Vic29ja2V0Lmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMSw2ICsxLDMgQEAKLUNP
TlNPTEUgTUVTU0FHRTogV2ViU29ja2V0IG5ldHdvcmsgZXJyb3I6IE9TU3RhdHVzIEVycm9yIC05
ODA3OiBJbnZhbGlkIGNlcnRpZmljYXRlIGNoYWluIAotQ09OU09MRSBNRVNTQUdFOiBXZWJTb2Nr
ZXQgbmV0d29yayBlcnJvcjogT1NTdGF0dXMgRXJyb3IgLTk4MDc6IEludmFsaWQgY2VydGlmaWNh
dGUgY2hhaW4gCiAKLQotRkFJTCBWZXJpZnkgV2ViU29ja2V0IGhhbmRzaGFrZSBjaGFubmVsIGRv
ZXMgbm90IGdldCBpbnRlcmNlcHRlZCBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24g
d2l0aCB2YWx1ZTogb2JqZWN0ICJbb2JqZWN0IEV2ZW50XSIKK1BBU1MgVmVyaWZ5IFdlYlNvY2tl
dCBoYW5kc2hha2UgY2hhbm5lbCBkb2VzIG5vdCBnZXQgaW50ZXJjZXB0ZWQgCiAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3dvcmtlci1jbGllbnQtaWQuaHR0cHMtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvd29ya2VyLWNsaWVudC1pZC5odHRwcy1leHBlY3RlZC50eHQK
aW5kZXggMTBjOWUyNGQ5OTdkOTY5ODc3NDM1YjBmZjYxZjEwMjY4NzBmNjEyMi4uMDJiODExMjBh
OWQ1Zjg5YzMwYWIxNmE5MzNkMTVkNzZhMjFjZGFiOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvd29ya2VyLWNsaWVudC1pZC5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvd29ya2VyLWNsaWVudC1pZC5odHRwcy1leHBlY3RlZC50eHQKQEAgLTEsMyArMSwz
IEBACiAKLUZBSUwgVmVyaWZ5IHdvcmtlcnMgaGF2ZSBhIHVuaXF1ZSBjbGllbnQgaWQgc2VwYXJh
dGUgZnJvbSB0aGVpciBvd25pbmcgZG9jdW1lbnRzIHdpbmRvdyBhc3NlcnRfbm90X2VxdWFsczog
ZnJhbWUgYW5kIHdvcmtlciBjbGllbnQgaWRzIHNob3VsZCBiZSBkaWZmZXJlbnQgZ290IGRpc2Fs
bG93ZWQgdmFsdWUgIjEtMTkiCitGQUlMIFZlcmlmeSB3b3JrZXJzIGhhdmUgYSB1bmlxdWUgY2xp
ZW50IGlkIHNlcGFyYXRlIGZyb20gdGhlaXIgb3duaW5nIGRvY3VtZW50cyB3aW5kb3cgYXNzZXJ0
X25vdF9lcXVhbHM6IGZyYW1lIGFuZCB3b3JrZXIgY2xpZW50IGlkcyBzaG91bGQgYmUgZGlmZmVy
ZW50IGdvdCBkaXNhbGxvd2VkIHZhbHVlICI0LTM0MDgiCiAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL3dvcmtlci1pbnRlcmNlcHRpb24uaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvd29ya2VyLWludGVyY2VwdGlvbi5odHRwcy1leHBlY3RlZC50eHQKaW5kZXgg
YjRlZDRlZTlhMTc0NWVjMzI4MTZhZGMxZGNkY2JiZmE4ZjcxYzAyOS4uNTQzZTAzNzVlZGJhMjUy
ZDhjNTNmZTU5NzQxMDBkMWMzZTUyODUxMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
d29ya2VyLWludGVyY2VwdGlvbi5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvd29ya2VyLWludGVyY2VwdGlvbi5odHRwcy1leHBlY3RlZC50eHQKQEAgLTEsOCArMSwx
NiBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE6IFJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5k
IHZhcmlhYmxlOiBXb3JrZXIKIAotRkFJTCBWZXJpZnkgd29ya2VyIHNjcmlwdCBmcm9tIHVuY29u
dHJvbGxlZCBkb2N1bWVudCBpcyBpbnRlcmNlcHRlZCBieSBTZXJ2aWNlIFdvcmtlciBwcm9taXNl
X3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogdW5kZWZpbmVkCi1GQUlMIFZl
cmlmeSB3b3JrZXIgc2NyaXB0IGludGVyY2VwdGVkIGJ5IHNhbWUtb3JpZ2luIHJlc3BvbnNlIHN1
Y2NlZWRzIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiB1bmRl
ZmluZWQKLVBBU1MgVmVyaWZ5IHdvcmtlciBzY3JpcHQgaW50ZXJjZXB0ZWQgYnkgY29ycyByZXNw
b25zZSBmYWlscyAKLVBBU1MgVmVyaWZ5IHdvcmtlciBzY3JpcHQgaW50ZXJjZXB0ZWQgYnkgbm8t
Y29ycyBjcm9zcy1vcmlnaW4gcmVzcG9uc2UgZmFpbHMgCi1GQUlMIFZlcmlmeSB3b3JrZXIgbG9h
ZHMgZnJvbSBjb250cm9sbGVkIGRvY3VtZW50IGFyZSBpbnRlcmNlcHRlZCBieSBTZXJ2aWNlIFdv
cmtlciBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiZmluaXNoIiBidXQgZ290ICJmYWlsdXJlOltv
YmplY3QgRXJyb3JFdmVudF0iCitGQUlMIFZlcmlmeSBhIGRlZGljYXRlZCB3b3JrZXIgc2NyaXB0
IHJlcXVlc3QgaXNzdWVkIGZyb20gYSB1bmNvbnRyb2xsZWQgZG9jdW1lbnQgaXMgaW50ZXJjZXB0
ZWQgYnkgd29ya2VyJ3Mgb3duIHNlcnZpY2Ugd29ya2VyLiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxl
ZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogdW5kZWZpbmVkCitGQUlMIFZlcmlmeSBhIHNoYXJlZCB3
b3JrZXIgc2NyaXB0IHJlcXVlc3QgaXNzdWVkIGZyb20gYSB1bmNvbnRyb2xsZWQgZG9jdW1lbnQg
aXMgaW50ZXJjZXB0ZWQgYnkgd29ya2VyJ3Mgb3duIHNlcnZpY2Ugd29ya2VyLiBwcm9taXNlX3Rl
c3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJSZWZlcmVuY2VFcnJv
cjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogU2hhcmVkV29ya2VyIgorRkFJTCBWZXJpZnkgYSBzYW1l
LW9yaWdpbiB3b3JrZXIgc2NyaXB0IHNlcnZlZCBieSBhIHNlcnZpY2Ugd29ya2VyIHN1Y2NlZWRz
IGluIHN0YXJ0aW5nIGEgZGVkaWNhdGVkIHdvcmtlci4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQg
cmVqZWN0aW9uIHdpdGggdmFsdWU6IHVuZGVmaW5lZAorRkFJTCBWZXJpZnkgYSBzYW1lLW9yaWdp
biB3b3JrZXIgc2NyaXB0IHNlcnZlZCBieSBhIHNlcnZpY2Ugd29ya2VyIHN1Y2NlZWRzIGluIHN0
YXJ0aW5nIGEgc2hhcmVkIHdvcmtlci4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9u
IHdpdGggdmFsdWU6IG9iamVjdCAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6
IFNoYXJlZFdvcmtlciIKK1BBU1MgVmVyaWZ5IGEgY29ycyB3b3JrZXIgc2NyaXB0IHNlcnZlZCBi
eSBhIHNlcnZpY2Ugd29ya2VyIGZhaWxzIGRlZGljYXRlZCB3b3JrZXIgc3RhcnQuIAorRkFJTCBW
ZXJpZnkgYSBjb3JzIHdvcmtlciBzY3JpcHQgc2VydmVkIGJ5IGEgc2VydmljZSB3b3JrZXIgZmFp
bHMgc2hhcmVkIHdvcmtlciBzdGFydC4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9u
IHdpdGggdmFsdWU6IG9iamVjdCAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6
IFNoYXJlZFdvcmtlciIKK1BBU1MgVmVyaWZ5IGEgbm8tY29ycyBjcm9zcy1vcmlnaW4gd29ya2Vy
IHNjcmlwdCBzZXJ2ZWQgYnkgYSBzZXJ2aWNlIHdvcmtlciBmYWlscyBkZWRpY2F0ZWQgd29ya2Vy
IHN0YXJ0LiAKK0ZBSUwgVmVyaWZ5IGEgbm8tY29ycyBjcm9zcy1vcmlnaW4gd29ya2VyIHNjcmlw
dCBzZXJ2ZWQgYnkgYSBzZXJ2aWNlIHdvcmtlciBmYWlscyBzaGFyZWQgd29ya2VyIHN0YXJ0LiBw
cm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJSZWZl
cmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogU2hhcmVkV29ya2VyIgorUEFTUyBSZWdp
c3RlciBhIHNlcnZpY2Ugd29ya2VyIGZvciB3b3JrZXIgc3VicmVzb3VyY2UgaW50ZXJjZXB0aW9u
IHRlc3RzLiAKK0ZBSUwgUmVxdWVzdHMgb24gYSBkZWRpY2F0ZWQgd29ya2VyIGNvbnRyb2xsZWQg
YnkgYSBzZXJ2aWNlIHdvcmtlci4gYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIlRoaXMgbG9hZCB3
YXMgc3VjY2Vzc2Z1bGx5IGludGVyY2VwdGVkLiIgYnV0IGdvdCAie1wiZXJyb3JcIjoge1wibWVz
c2FnZVwiOiBcIlwiLCBcImNvZGVcIjogNDA0fX0iCitGQUlMIFJlcXVlc3RzIG9uIGEgc2hhcmVk
IHdvcmtlciBjb250cm9sbGVkIGJ5IGEgc2VydmljZSB3b3JrZXIuIHByb21pc2VfdGVzdDogVW5o
YW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlJlZmVyZW5jZUVycm9yOiBDYW4n
dCBmaW5kIHZhcmlhYmxlOiBTaGFyZWRXb3JrZXIiCitGQUlMIFJlcXVlc3RzIG9uIGEgZGVkaWNh
dGVkIHdvcmtlciBuZXN0ZWQgaW4gYSBkZWRpY2F0ZWQgd29ya2VyIGFuZCBjb250cm9sbGVkIGJ5
IGEgc2VydmljZSB3b3JrZXIgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIlRoaXMgbG9hZCB3YXMg
c3VjY2Vzc2Z1bGx5IGludGVyY2VwdGVkLiIgYnV0IGdvdCAiVW5leHBlY3RlZCBlcnJvciEgQ2Fu
J3QgZmluZCB2YXJpYWJsZTogV29ya2VyIgorRkFJTCBSZXF1ZXN0cyBvbiBhIGRlZGljYXRlZCB3
b3JrZXIgbmVzdGVkIGluIGEgc2hhcmVkIHdvcmtlciBhbmQgY29udHJvbGxlZCBieSBhIHNlcnZp
Y2Ugd29ya2VyIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBv
YmplY3QgIlJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBTaGFyZWRXb3JrZXIi
CitQQVNTIFVucmVnaXN0ZXIgYSBzZXJ2aWNlIHdvcmtlciBmb3Igc3VicmVzb3VyY2UgaW50ZXJj
ZXB0aW9uIHRlc3RzLiAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvd29ya2VyLWlu
dGVyY2VwdGlvbi5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvd29ya2VyLWludGVyY2Vw
dGlvbi5odHRwcy5odG1sCmluZGV4IDdiMjk0MTI2M2JmNzU2YzMzZTZkMTViMzZlZDk2NTQ4Zjg4
NmM2YzIuLjMwMmEyMTRhYzYxOTQwMGMzOGY3NTY0YzA2NWE1ZTBiZTQ3YWM2ZGYgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3dvcmtlci1pbnRlcmNlcHRpb24uaHR0cHMuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci93b3JrZXItaW50ZXJjZXB0aW9uLmh0dHBzLmh0bWwKQEAgLTEs
MTM1ICsxLDE4OCBAQAogPCFET0NUWVBFIGh0bWw+CiA8dGl0bGU+U2VydmljZSBXb3JrZXI6IGlu
dGVyY2VwdGluZyBXb3JrZXIgc2NyaXB0IGxvYWRzPC90aXRsZT4KKzxtZXRhIG5hbWU9InRpbWVv
dXQiIGNvbnRlbnQ9ImxvbmciPgogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3Mu
anMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQu
anMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9InJlc291cmNlcy90ZXN0LWhlbHBlcnMuc3ViLmpz
Ij48L3NjcmlwdD4KIDxib2R5PgogPHNjcmlwdD4KLXByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7
Ci0gICAgdmFyIHdvcmtlcl91cmwgPSAncmVzb3VyY2VzL2R1bW15LXN5bnRoZXNpemVkLXdvcmtl
ci5qcyc7Ci0gICAgdmFyIHNlcnZpY2Vfd29ya2VyID0gJ3Jlc291cmNlcy9kdW1teS13b3JrZXIt
aW50ZXJjZXB0b3IuanMnOwotICAgIHZhciBzY29wZSA9IHdvcmtlcl91cmw7Ci0KLSAgICByZXR1
cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgc2VydmljZV93b3Jr
ZXIsIHNjb3BlKQotICAgICAgLnRoZW4oZnVuY3Rpb24ocikgewotICAgICAgICAgIHQuYWRkX2Ns
ZWFudXAoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91
bnJlZ2lzdGVyKHQsIHNjb3BlKTsKLSAgICAgICAgICAgIH0pOwotCi0gICAgICAgICAgcmV0dXJu
IHdhaXRfZm9yX3N0YXRlKHQsIHIuaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOwotICAgICAgICB9
KQotICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNl
KGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgewotICAgICAgICAgICAgICB2YXIgdyA9IG5ldyBX
b3JrZXIod29ya2VyX3VybCk7Ci0gICAgICAgICAgICAgIHcub25tZXNzYWdlID0gZnVuY3Rpb24o
ZSkgewotICAgICAgICAgICAgICAgIHJlc29sdmUoZS5kYXRhKTsKLSAgICAgICAgICAgICAgfQot
Ci0gICAgICAgICAgICAgIHcub25lcnJvciA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgICAg
ICByZWplY3QoZS5tZXNzYWdlKTsKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSk7Ci0g
ICAgICAgIH0pCi0gICAgICAudGhlbihmdW5jdGlvbihkYXRhKSB7Ci0gICAgICAgICAgYXNzZXJ0
X2VxdWFscyhkYXRhLCAnd29ya2VyIGxvYWRpbmcgaW50ZXJjZXB0ZWQgYnkgc2VydmljZSB3b3Jr
ZXInKTsKLSAgICAgICAgfSk7Ci0gIH0sICdWZXJpZnkgd29ya2VyIHNjcmlwdCBmcm9tIHVuY29u
dHJvbGxlZCBkb2N1bWVudCBpcyBpbnRlcmNlcHRlZCBieSBTZXJ2aWNlIFdvcmtlcicpOwotCi1w
cm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewotICAgIHZhciB3b3JrZXJfdXJsID0gJ3Jlc291cmNl
cy9kdW1teS1zYW1lLW9yaWdpbi13b3JrZXIuanMnOwotICAgIHZhciBzZXJ2aWNlX3dvcmtlciA9
ICdyZXNvdXJjZXMvZHVtbXktd29ya2VyLWludGVyY2VwdG9yLmpzJzsKLSAgICB2YXIgc2NvcGUg
PSB3b3JrZXJfdXJsOwotCi0gICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5k
X3JlZ2lzdGVyKHQsIHNlcnZpY2Vfd29ya2VyLCBzY29wZSkKLSAgICAgIC50aGVuKGZ1bmN0aW9u
KHIpIHsKLSAgICAgICAgICB0LmFkZF9jbGVhbnVwKGZ1bmN0aW9uKCkgewotICAgICAgICAgICAg
ICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcih0LCBzY29wZSk7Ci0gICAgICAgICAg
ICB9KTsKLQotICAgICAgICAgIHJldHVybiB3YWl0X2Zvcl9zdGF0ZSh0LCByLmluc3RhbGxpbmcs
ICdhY3RpdmF0ZWQnKTsKLSAgICAgICAgfSkKLSAgICAgIC50aGVuKGZ1bmN0aW9uKCkgewotICAg
ICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKLSAg
ICAgICAgICAgICAgdmFyIHcgPSBuZXcgV29ya2VyKHdvcmtlcl91cmwpOwotICAgICAgICAgICAg
ICB3Lm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgICAgICByZXNvbHZlKGUu
ZGF0YSk7Ci0gICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICB3Lm9uZXJyb3IgPSBmdW5j
dGlvbihlKSB7Ci0gICAgICAgICAgICAgICAgcmVqZWN0KGUubWVzc2FnZSk7Ci0gICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgIH0pOwotICAgICAgICB9KQotICAgICAgLnRoZW4oZnVuY3Rpb24o
ZGF0YSkgewotICAgICAgICAgIGFzc2VydF9lcXVhbHMoZGF0YSwgJ2R1bW15LXdvcmtlci1zY3Jp
cHQgbG9hZGVkJyk7Ci0gICAgICAgIH0pOwotICB9LCAnVmVyaWZ5IHdvcmtlciBzY3JpcHQgaW50
ZXJjZXB0ZWQgYnkgc2FtZS1vcmlnaW4gcmVzcG9uc2Ugc3VjY2VlZHMnKTsKLQotcHJvbWlzZV90
ZXN0KGZ1bmN0aW9uKHQpIHsKLSAgICB2YXIgd29ya2VyX3VybCA9ICdyZXNvdXJjZXMvZHVtbXkt
Y29ycy13b3JrZXIuanMnOwotICAgIHZhciBzZXJ2aWNlX3dvcmtlciA9ICdyZXNvdXJjZXMvZHVt
bXktd29ya2VyLWludGVyY2VwdG9yLmpzJzsKLSAgICB2YXIgc2NvcGUgPSB3b3JrZXJfdXJsOwot
Ci0gICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHNl
cnZpY2Vfd29ya2VyLCBzY29wZSkKLSAgICAgIC50aGVuKGZ1bmN0aW9uKHIpIHsKLSAgICAgICAg
ICByZXR1cm4gd2FpdF9mb3Jfc3RhdGUodCwgci5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7Ci0g
ICAgICAgIH0pCi0gICAgICAudGhlbihmdW5jdGlvbigpIHsKLSAgICAgICAgICB2YXIgdyA9IG5l
dyBXb3JrZXIod29ya2VyX3VybCk7Ci0gICAgICAgICAgdmFyIHdhdGNoZXIgPSBuZXcgRXZlbnRX
YXRjaGVyKHQsIHcsIFsnbWVzc2FnZScsICdlcnJvciddKTsKLSAgICAgICAgICByZXR1cm4gd2F0
Y2hlci53YWl0X2ZvcignZXJyb3InKTsKLSAgICAgICAgfSk7Ci0gIH0sICdWZXJpZnkgd29ya2Vy
IHNjcmlwdCBpbnRlcmNlcHRlZCBieSBjb3JzIHJlc3BvbnNlIGZhaWxzJyk7Ci0KLXByb21pc2Vf
dGVzdChmdW5jdGlvbih0KSB7Ci0gICAgdmFyIHdvcmtlcl91cmwgPSAncmVzb3VyY2VzL2R1bW15
LW5vLWNvcnMtd29ya2VyLmpzJzsKLSAgICB2YXIgc2VydmljZV93b3JrZXIgPSAncmVzb3VyY2Vz
L2R1bW15LXdvcmtlci1pbnRlcmNlcHRvci5qcyc7Ci0gICAgdmFyIHNjb3BlID0gd29ya2VyX3Vy
bDsKLQotICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0
LCBzZXJ2aWNlX3dvcmtlciwgc2NvcGUpCi0gICAgICAudGhlbihmdW5jdGlvbihyKSB7Ci0gICAg
ICAgICAgdC5hZGRfY2xlYW51cChmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgcmV0dXJuIHNl
cnZpY2Vfd29ya2VyX3VucmVnaXN0ZXIodCwgc2NvcGUpOwotICAgICAgICAgICAgfSk7Ci0KLSAg
ICAgICAgICByZXR1cm4gd2FpdF9mb3Jfc3RhdGUodCwgci5pbnN0YWxsaW5nLCAnYWN0aXZhdGVk
Jyk7Ci0gICAgICAgIH0pCi0gICAgICAudGhlbihmdW5jdGlvbigpIHsKLSAgICAgICAgICB2YXIg
dyA9IG5ldyBXb3JrZXIod29ya2VyX3VybCk7Ci0gICAgICAgICAgdmFyIHdhdGNoZXIgPSBuZXcg
RXZlbnRXYXRjaGVyKHQsIHcsIFsnbWVzc2FnZScsICdlcnJvciddKTsKLSAgICAgICAgICByZXR1
cm4gd2F0Y2hlci53YWl0X2ZvcignZXJyb3InKTsKLSAgICAgICAgfSk7Ci0gIH0sICdWZXJpZnkg
d29ya2VyIHNjcmlwdCBpbnRlcmNlcHRlZCBieSBuby1jb3JzIGNyb3NzLW9yaWdpbiByZXNwb25z
ZSBmYWlscycpOwotCi1wcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewotICAgIHZhciBzdWJkb2Nf
dXJsID0gJ3Jlc291cmNlcy93b3JrZXItaW50ZXJjZXB0aW9uLWlmcmFtZS5odHRwcy5odG1sP2J5
cGFzcyc7Ci0gICAgdmFyIHNlcnZpY2Vfd29ya2VyID0gJ3Jlc291cmNlcy93b3JrZXItbG9hZC1p
bnRlcmNlcHRvci5qcyc7Ci0gICAgdmFyIHNjb3BlID0gJ3Jlc291cmNlcy8nOwotCi0gICAgcmV0
dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHNlcnZpY2Vfd29y
a2VyLCBzY29wZSkKLSAgICAgIC50aGVuKGZ1bmN0aW9uKHIpIHsKLSAgICAgICAgICB0LmFkZF9j
bGVhbnVwKGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICByZXR1cm4gc2VydmljZV93b3JrZXJf
dW5yZWdpc3Rlcih0LCBzY29wZSk7Ci0gICAgICAgICAgICB9KTsKLQotICAgICAgICAgIHJldHVy
biB3YWl0X2Zvcl9zdGF0ZSh0LCByLmluc3RhbGxpbmcsICdhY3RpdmF0ZWQnKTsKLSAgICAgICAg
fSkKLSAgICAgIC50aGVuKGZ1bmN0aW9uKCkgeyByZXR1cm4gd2l0aF9pZnJhbWUoc3ViZG9jX3Vy
bCk7IH0pCi0gICAgICAudGhlbihmdW5jdGlvbihmcmFtZSkgewotICAgICAgICAgIHJldHVybiBu
ZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKLSAgICAgICAgICAgICAgdmFy
IGNoYW5uZWwgPSBuZXcgTWVzc2FnZUNoYW5uZWwoKTsKLSAgICAgICAgICAgICAgY2hhbm5lbC5w
b3J0MS5vbm1lc3NhZ2UgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICAgICAgZnJhbWUucmVt
b3ZlKCk7Ci0gICAgICAgICAgICAgICAgcmVzb2x2ZShlLmRhdGEpOwotICAgICAgICAgICAgICB9
Ci0KLSAgICAgICAgICAgICAgZnJhbWUuY29udGVudFdpbmRvdy5wb3N0TWVzc2FnZSgiR08iLCAi
KiIsIFtjaGFubmVsLnBvcnQyXSk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfSkKLSAgICAg
IC50aGVuKGZ1bmN0aW9uKGRhdGEpIHsKLSAgICAgICAgICBhc3NlcnRfZXF1YWxzKGRhdGEucmVz
dWx0cywgJ2ZpbmlzaCcpOwotICAgICAgICB9KTsKLSAgfSwgJ1ZlcmlmeSB3b3JrZXIgbG9hZHMg
ZnJvbSBjb250cm9sbGVkIGRvY3VtZW50IGFyZSBpbnRlcmNlcHRlZCBieSBTZXJ2aWNlIFdvcmtl
cicpOworCisvLyA9PT09PT09PT09IFdvcmtlciBtYWluIHJlc291cmNlIGludGVyY2VwdGlvbiB0
ZXN0cyA9PT09PT09PT09CisKK2FzeW5jIGZ1bmN0aW9uIHNldHVwX3NlcnZpY2Vfd29ya2VyKHQs
IHNlcnZpY2Vfd29ya2VyX3VybCwgc2NvcGUpIHsKKyAgY29uc3QgciA9IGF3YWl0IHNlcnZpY2Vf
d29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKAorICAgICAgdCwgc2VydmljZV93b3JrZXJf
dXJsLCBzY29wZSk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gc2VydmljZV93b3JrZXJfdW5yZWdp
c3Rlcih0LCBzY29wZSkpOworICBhd2FpdCB3YWl0X2Zvcl9zdGF0ZSh0LCByLmluc3RhbGxpbmcs
ICdhY3RpdmF0ZWQnKTsKK30KKworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25zdCB3
b3JrZXJfdXJsID0gJ3Jlc291cmNlcy9kdW1teS1zeW50aGVzaXplZC13b3JrZXIuanM/ZGVkaWNh
dGVkJzsKKyAgY29uc3Qgc2VydmljZV93b3JrZXJfdXJsID0gJ3Jlc291cmNlcy9kdW1teS13b3Jr
ZXItaW50ZXJjZXB0b3IuanMnOworICBjb25zdCBzY29wZSA9IHdvcmtlcl91cmw7CisKKyAgYXdh
aXQgc2V0dXBfc2VydmljZV93b3JrZXIodCwgc2VydmljZV93b3JrZXJfdXJsLCBzY29wZSk7Cisg
IGNvbnN0IHcgPSBuZXcgV29ya2VyKHdvcmtlcl91cmwpOworICBjb25zdCBkYXRhID0gYXdhaXQg
bmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4geworICAgIHcub25tZXNzYWdlID0gZSA9
PiByZXNvbHZlKGUuZGF0YSk7CisgICAgdy5vbmVycm9yID0gZSA9PiByZWplY3QoZS5tZXNzYWdl
KTsKKyAgfSk7CisgIGFzc2VydF9lcXVhbHMoZGF0YSwgJ3dvcmtlciBsb2FkaW5nIGludGVyY2Vw
dGVkIGJ5IHNlcnZpY2Ugd29ya2VyJyk7Cit9LCBgVmVyaWZ5IGEgZGVkaWNhdGVkIHdvcmtlciBz
Y3JpcHQgcmVxdWVzdCBpc3N1ZWQgZnJvbSBhIHVuY29udHJvbGxlZCBgICsKKyAgIGBkb2N1bWVu
dCBpcyBpbnRlcmNlcHRlZCBieSB3b3JrZXIncyBvd24gc2VydmljZSB3b3JrZXIuYCk7CisKK3By
b21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgY29uc3Qgd29ya2VyX3VybCA9ICdyZXNvdXJjZXMv
ZHVtbXktc3ludGhlc2l6ZWQtd29ya2VyLmpzP3NoYXJlZCc7CisgIGNvbnN0IHNlcnZpY2Vfd29y
a2VyX3VybCA9ICdyZXNvdXJjZXMvZHVtbXktd29ya2VyLWludGVyY2VwdG9yLmpzJzsKKyAgY29u
c3Qgc2NvcGUgPSB3b3JrZXJfdXJsOworCisgIGF3YWl0IHNldHVwX3NlcnZpY2Vfd29ya2VyKHQs
IHNlcnZpY2Vfd29ya2VyX3VybCwgc2NvcGUpOworICBjb25zdCB3ID0gbmV3IFNoYXJlZFdvcmtl
cih3b3JrZXJfdXJsKTsKKyAgY29uc3QgZGF0YSA9IGF3YWl0IG5ldyBQcm9taXNlKChyZXNvbHZl
LCByZWplY3QpID0+IHsKKyAgICB3LnBvcnQub25tZXNzYWdlID0gZSA9PiByZXNvbHZlKGUuZGF0
YSk7CisgICAgdy5vbmVycm9yID0gZSA9PiByZWplY3QoZS5tZXNzYWdlKTsKKyAgfSk7CisgIGFz
c2VydF9lcXVhbHMoZGF0YSwgJ3dvcmtlciBsb2FkaW5nIGludGVyY2VwdGVkIGJ5IHNlcnZpY2Ug
d29ya2VyJyk7Cit9LCBgVmVyaWZ5IGEgc2hhcmVkIHdvcmtlciBzY3JpcHQgcmVxdWVzdCBpc3N1
ZWQgZnJvbSBhIHVuY29udHJvbGxlZCBgICsKKyAgIGBkb2N1bWVudCBpcyBpbnRlcmNlcHRlZCBi
eSB3b3JrZXIncyBvd24gc2VydmljZSB3b3JrZXIuYCk7CisKK3Byb21pc2VfdGVzdChhc3luYyB0
ID0+IHsKKyAgY29uc3Qgd29ya2VyX3VybCA9ICdyZXNvdXJjZXMvZHVtbXktc2FtZS1vcmlnaW4t
d29ya2VyLmpzP2RlZGljYXRlZCc7CisgIGNvbnN0IHNlcnZpY2Vfd29ya2VyX3VybCA9ICdyZXNv
dXJjZXMvZHVtbXktd29ya2VyLWludGVyY2VwdG9yLmpzJzsKKyAgY29uc3Qgc2NvcGUgPSB3b3Jr
ZXJfdXJsOworCisgIGF3YWl0IHNldHVwX3NlcnZpY2Vfd29ya2VyKHQsIHNlcnZpY2Vfd29ya2Vy
X3VybCwgc2NvcGUpOworICBjb25zdCB3ID0gbmV3IFdvcmtlcih3b3JrZXJfdXJsKTsKKyAgY29u
c3QgZGF0YSA9IGF3YWl0IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsKKyAgICB3
Lm9ubWVzc2FnZSA9IGUgPT4gcmVzb2x2ZShlLmRhdGEpOworICAgIHcub25lcnJvciA9IGUgPT4g
cmVqZWN0KGUubWVzc2FnZSk7CisgIH0pOworICBhc3NlcnRfZXF1YWxzKGRhdGEsICdkZWRpY2F0
ZWQgd29ya2VyIHNjcmlwdCBsb2FkZWQnKTsKK30sICdWZXJpZnkgYSBzYW1lLW9yaWdpbiB3b3Jr
ZXIgc2NyaXB0IHNlcnZlZCBieSBhIHNlcnZpY2Ugd29ya2VyIHN1Y2NlZWRzICcgKworICAgJ2lu
IHN0YXJ0aW5nIGEgZGVkaWNhdGVkIHdvcmtlci4nKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jIHQg
PT4geworICBjb25zdCB3b3JrZXJfdXJsID0gJ3Jlc291cmNlcy9kdW1teS1zYW1lLW9yaWdpbi13
b3JrZXIuanM/c2hhcmVkJzsKKyAgY29uc3Qgc2VydmljZV93b3JrZXJfdXJsID0gJ3Jlc291cmNl
cy9kdW1teS13b3JrZXItaW50ZXJjZXB0b3IuanMnOworICBjb25zdCBzY29wZSA9IHdvcmtlcl91
cmw7CisKKyAgYXdhaXQgc2V0dXBfc2VydmljZV93b3JrZXIodCwgc2VydmljZV93b3JrZXJfdXJs
LCBzY29wZSk7CisgIGNvbnN0IHcgPSBuZXcgU2hhcmVkV29ya2VyKHdvcmtlcl91cmwpOworICBj
b25zdCBkYXRhID0gYXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4geworICAg
IHcucG9ydC5vbm1lc3NhZ2UgPSBlID0+IHJlc29sdmUoZS5kYXRhKTsKKyAgICB3Lm9uZXJyb3Ig
PSBlID0+IHJlamVjdChlLm1lc3NhZ2UpOworICB9KTsKKyAgYXNzZXJ0X2VxdWFscyhkYXRhLCAn
c2hhcmVkIHdvcmtlciBzY3JpcHQgbG9hZGVkJyk7Cit9LCAnVmVyaWZ5IGEgc2FtZS1vcmlnaW4g
d29ya2VyIHNjcmlwdCBzZXJ2ZWQgYnkgYSBzZXJ2aWNlIHdvcmtlciBzdWNjZWVkcyAnICsKKyAg
ICdpbiBzdGFydGluZyBhIHNoYXJlZCB3b3JrZXIuJyk7CisKK3Byb21pc2VfdGVzdChhc3luYyB0
ID0+IHsKKyAgY29uc3Qgd29ya2VyX3VybCA9ICdyZXNvdXJjZXMvZHVtbXktY29ycy13b3JrZXIu
anM/ZGVkaWNhdGVkJzsKKyAgY29uc3Qgc2VydmljZV93b3JrZXJfdXJsID0gJ3Jlc291cmNlcy9k
dW1teS13b3JrZXItaW50ZXJjZXB0b3IuanMnOworICBjb25zdCBzY29wZSA9IHdvcmtlcl91cmw7
CisKKyAgYXdhaXQgc2V0dXBfc2VydmljZV93b3JrZXIodCwgc2VydmljZV93b3JrZXJfdXJsLCBz
Y29wZSk7CisgIGNvbnN0IHcgPSBuZXcgV29ya2VyKHdvcmtlcl91cmwpOworICBjb25zdCB3YXRj
aGVyID0gbmV3IEV2ZW50V2F0Y2hlcih0LCB3LCBbJ21lc3NhZ2UnLCAnZXJyb3InXSk7CisgIGF3
YWl0IHdhdGNoZXIud2FpdF9mb3IoJ2Vycm9yJyk7Cit9LCAnVmVyaWZ5IGEgY29ycyB3b3JrZXIg
c2NyaXB0IHNlcnZlZCBieSBhIHNlcnZpY2Ugd29ya2VyIGZhaWxzIGRlZGljYXRlZCAnICsKKyAg
ICd3b3JrZXIgc3RhcnQuJyk7CisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgY29uc3Qg
d29ya2VyX3VybCA9ICdyZXNvdXJjZXMvZHVtbXktY29ycy13b3JrZXIuanM/c2hhcmVkJzsKKyAg
Y29uc3Qgc2VydmljZV93b3JrZXJfdXJsID0gJ3Jlc291cmNlcy9kdW1teS13b3JrZXItaW50ZXJj
ZXB0b3IuanMnOworICBjb25zdCBzY29wZSA9IHdvcmtlcl91cmw7CisKKyAgYXdhaXQgc2V0dXBf
c2VydmljZV93b3JrZXIodCwgc2VydmljZV93b3JrZXJfdXJsLCBzY29wZSk7CisgIGNvbnN0IHcg
PSBuZXcgU2hhcmVkV29ya2VyKHdvcmtlcl91cmwpOworICBjb25zdCB3YXRjaGVyID0gbmV3IEV2
ZW50V2F0Y2hlcih0LCB3LCBbJ21lc3NhZ2UnLCAnZXJyb3InXSk7CisgIGF3YWl0IHdhdGNoZXIu
d2FpdF9mb3IoJ2Vycm9yJyk7Cit9LCAnVmVyaWZ5IGEgY29ycyB3b3JrZXIgc2NyaXB0IHNlcnZl
ZCBieSBhIHNlcnZpY2Ugd29ya2VyIGZhaWxzIHNoYXJlZCAnICsKKyAgICd3b3JrZXIgc3RhcnQu
Jyk7CisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgY29uc3Qgd29ya2VyX3VybCA9ICdy
ZXNvdXJjZXMvZHVtbXktbm8tY29ycy13b3JrZXIuanM/ZGVkaWNhdGVkJzsKKyAgY29uc3Qgc2Vy
dmljZV93b3JrZXJfdXJsID0gJ3Jlc291cmNlcy9kdW1teS13b3JrZXItaW50ZXJjZXB0b3IuanMn
OworICBjb25zdCBzY29wZSA9IHdvcmtlcl91cmw7CisKKyAgYXdhaXQgc2V0dXBfc2VydmljZV93
b3JrZXIodCwgc2VydmljZV93b3JrZXJfdXJsLCBzY29wZSk7CisgIGNvbnN0IHcgPSBuZXcgV29y
a2VyKHdvcmtlcl91cmwpOworICBjb25zdCB3YXRjaGVyID0gbmV3IEV2ZW50V2F0Y2hlcih0LCB3
LCBbJ21lc3NhZ2UnLCAnZXJyb3InXSk7CisgIGF3YWl0IHdhdGNoZXIud2FpdF9mb3IoJ2Vycm9y
Jyk7Cit9LCAnVmVyaWZ5IGEgbm8tY29ycyBjcm9zcy1vcmlnaW4gd29ya2VyIHNjcmlwdCBzZXJ2
ZWQgYnkgYSBzZXJ2aWNlIHdvcmtlciAnICsKKyAgICdmYWlscyBkZWRpY2F0ZWQgd29ya2VyIHN0
YXJ0LicpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0IHdvcmtlcl91cmwg
PSAncmVzb3VyY2VzL2R1bW15LW5vLWNvcnMtd29ya2VyLmpzP3NoYXJlZCc7CisgIGNvbnN0IHNl
cnZpY2Vfd29ya2VyX3VybCA9ICdyZXNvdXJjZXMvZHVtbXktd29ya2VyLWludGVyY2VwdG9yLmpz
JzsKKyAgY29uc3Qgc2NvcGUgPSB3b3JrZXJfdXJsOworCisgIGF3YWl0IHNldHVwX3NlcnZpY2Vf
d29ya2VyKHQsIHNlcnZpY2Vfd29ya2VyX3VybCwgc2NvcGUpOworICBjb25zdCB3ID0gbmV3IFNo
YXJlZFdvcmtlcih3b3JrZXJfdXJsKTsKKyAgY29uc3Qgd2F0Y2hlciA9IG5ldyBFdmVudFdhdGNo
ZXIodCwgdywgWydtZXNzYWdlJywgJ2Vycm9yJ10pOworICBhd2FpdCB3YXRjaGVyLndhaXRfZm9y
KCdlcnJvcicpOworfSwgJ1ZlcmlmeSBhIG5vLWNvcnMgY3Jvc3Mtb3JpZ2luIHdvcmtlciBzY3Jp
cHQgc2VydmVkIGJ5IGEgc2VydmljZSB3b3JrZXIgJyArCisgICAnZmFpbHMgc2hhcmVkIHdvcmtl
ciBzdGFydC4nKTsKKworLy8gPT09PT09PT09PSBXb3JrZXIgc3VicmVzb3VyY2UgaW50ZXJjZXB0
aW9uIHRlc3RzID09PT09PT09PT0KKworY29uc3Qgc2NvcGVfZm9yX3N1YnJlc291cmNlX2ludGVy
Y2VwdGlvbiA9ICdyZXNvdXJjZXMvbG9hZF93b3JrZXIuanMnOworCitwcm9taXNlX3Rlc3QoYXN5
bmMgdCA9PiB7CisgIGNvbnN0IHNlcnZpY2Vfd29ya2VyX3VybCA9ICdyZXNvdXJjZXMvd29ya2Vy
LWxvYWQtaW50ZXJjZXB0b3IuanMnOworICBjb25zdCByID0gYXdhaXQgc2VydmljZV93b3JrZXJf
dW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIoCisgICAgICB0LCBzZXJ2aWNlX3dvcmtlcl91cmwsIHNj
b3BlX2Zvcl9zdWJyZXNvdXJjZV9pbnRlcmNlcHRpb24pOworICBhd2FpdCB3YWl0X2Zvcl9zdGF0
ZSh0LCByLmluc3RhbGxpbmcsICdhY3RpdmF0ZWQnKTsKK30sICdSZWdpc3RlciBhIHNlcnZpY2Ug
d29ya2VyIGZvciB3b3JrZXIgc3VicmVzb3VyY2UgaW50ZXJjZXB0aW9uIHRlc3RzLicpOworCisv
LyBEbyBub3QgY2FsbCB0aGlzIGZ1bmN0aW9uIG11bHRpcGxlIHRpbWVzIHdpdGhvdXQgd2FpdGlu
ZyBmb3IgdGhlIHByb21pc2UKKy8vIHJlc29sdXRpb24gYmVjYXVzZSB0aGlzIHNldHMgbmV3IGV2
ZW50IGhhbmRsZXJzIG9uIHx3b3JrZXJ8LgorLy8gVE9ETyhuaGlyb2tpKTogVG8gaXNvbGF0ZSBt
dWx0aXBsZSBmdW5jdGlvbiBjYWxscywgdXNlIE1lc3NhZ2VQb3J0IGluc3RlYWQgb2YKKy8vIHdv
cmtlcidzIG9ubWVzc2FnZSBldmVudCBoYW5kbGVyLgorYXN5bmMgZnVuY3Rpb24gcmVxdWVzdF9v
bl93b3JrZXIod29ya2VyLCByZXNvdXJjZV90eXBlKSB7CisgIGNvbnN0IGRhdGEgPSBhd2FpdCBu
ZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7CisgICAgaWYgKHdvcmtlciBpbnN0YW5j
ZW9mIFdvcmtlcikgeworICAgICAgd29ya2VyLm9ubWVzc2FnZSA9IGUgPT4gcmVzb2x2ZShlLmRh
dGEpOworICAgICAgd29ya2VyLm9uZXJyb3IgPSBlID0+IHJlamVjdChlKTsKKyAgICAgIHdvcmtl
ci5wb3N0TWVzc2FnZShyZXNvdXJjZV90eXBlKTsKKyAgICB9IGVsc2UgaWYgKHdvcmtlciBpbnN0
YW5jZW9mIFNoYXJlZFdvcmtlcikgeworICAgICAgd29ya2VyLnBvcnQub25tZXNzYWdlID0gZSA9
PiByZXNvbHZlKGUuZGF0YSk7CisgICAgICB3b3JrZXIub25lcnJvciA9IGUgPT4gcmVqZWN0KGUp
OworICAgICAgd29ya2VyLnBvcnQucG9zdE1lc3NhZ2UocmVzb3VyY2VfdHlwZSk7CisgICAgfSBl
bHNlIHsKKyAgICAgIHJlamVjdCgnVW5leHBlY3RlZCB3b3JrZXIgdHlwZSEnKTsKKyAgICB9Cisg
IH0pOworICBhc3NlcnRfZXF1YWxzKGRhdGEsICdUaGlzIGxvYWQgd2FzIHN1Y2Nlc3NmdWxseSBp
bnRlcmNlcHRlZC4nKTsKK30KKworYXN5bmMgZnVuY3Rpb24gc3VicmVzb3VyY2VfdGVzdCh3b3Jr
ZXIpIHsKKyAgYXdhaXQgcmVxdWVzdF9vbl93b3JrZXIod29ya2VyLCAneGhyJyk7CisgIGF3YWl0
IHJlcXVlc3Rfb25fd29ya2VyKHdvcmtlciwgJ2ZldGNoJyk7CisgIGF3YWl0IHJlcXVlc3Rfb25f
d29ya2VyKHdvcmtlciwgJ2ltcG9ydFNjcmlwdHMnKTsKK30KKworcHJvbWlzZV90ZXN0KGFzeW5j
IHQgPT4geworICBhd2FpdCBzdWJyZXNvdXJjZV90ZXN0KG5ldyBXb3JrZXIoJ3Jlc291cmNlcy9s
b2FkX3dvcmtlci5qcycpKTsKK30sICdSZXF1ZXN0cyBvbiBhIGRlZGljYXRlZCB3b3JrZXIgY29u
dHJvbGxlZCBieSBhIHNlcnZpY2Ugd29ya2VyLicpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9
PiB7CisgIGF3YWl0IHN1YnJlc291cmNlX3Rlc3QobmV3IFNoYXJlZFdvcmtlcigncmVzb3VyY2Vz
L2xvYWRfd29ya2VyLmpzJykpOworfSwgJ1JlcXVlc3RzIG9uIGEgc2hhcmVkIHdvcmtlciBjb250
cm9sbGVkIGJ5IGEgc2VydmljZSB3b3JrZXIuJyk7CisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+
IHsKKyAgYXdhaXQgc3VicmVzb3VyY2VfdGVzdChuZXcgV29ya2VyKCdyZXNvdXJjZXMvbmVzdGVk
X2xvYWRfd29ya2VyLmpzJykpOworfSwgJ1JlcXVlc3RzIG9uIGEgZGVkaWNhdGVkIHdvcmtlciBu
ZXN0ZWQgaW4gYSBkZWRpY2F0ZWQgd29ya2VyIGFuZCAnICsKKyAgICAgICAnY29udHJvbGxlZCBi
eSBhIHNlcnZpY2Ugd29ya2VyJyk7CisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgYXdh
aXQgc3VicmVzb3VyY2VfdGVzdChuZXcgU2hhcmVkV29ya2VyKCdyZXNvdXJjZXMvbmVzdGVkX2xv
YWRfd29ya2VyLmpzJykpOworfSwgJ1JlcXVlc3RzIG9uIGEgZGVkaWNhdGVkIHdvcmtlciBuZXN0
ZWQgaW4gYSBzaGFyZWQgd29ya2VyIGFuZCBjb250cm9sbGVkICcgKworICAgICAgICdieSBhIHNl
cnZpY2Ugd29ya2VyJyk7CisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgYXdhaXQgc2Vy
dmljZV93b3JrZXJfdW5yZWdpc3Rlcih0LCBzY29wZV9mb3Jfc3VicmVzb3VyY2VfaW50ZXJjZXB0
aW9uKTsKK30sICdVbnJlZ2lzdGVyIGEgc2VydmljZSB3b3JrZXIgZm9yIHN1YnJlc291cmNlIGlu
dGVyY2VwdGlvbiB0ZXN0cy4nKTsKIAogPC9zY3JpcHQ+CiA8L2JvZHk+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zdHViLTMuMS1zZXJ2aWNlLXdvcmtlci1vYmotZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc3R1Yi0zLjEt
c2VydmljZS13b3JrZXItb2JqLWV4cGVjdGVkLnR4dAppbmRleCA3OTFiMWExZmY3MmRiNTY4YjI2
MjU5ZDVjMDA5ZmIzNjRhNzdhZGMxLi5lZDY5ZDFjMWRmOTQwMzU1ZmQ5YTZkZmZmYjg1NmE3NWE1
NTUwMGZhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zdHViLTMuMS1zZXJ2aWNlLXdvcmtlci1vYmotZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3N0dWItMy4xLXNlcnZpY2Utd29ya2VyLW9iai1leHBlY3RlZC50eHQK
QEAgLTEsNCArMSw0IEBACi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgODY3OiBJbnZhbGlkIG9iamVj
dCBtZW1iZXIgbmFtZSBTZXJ2aWNlV29ya2VyU3RhdGUKK0NPTlNPTEUgTUVTU0FHRTogbGluZSA4
NzE6IEludmFsaWQgb2JqZWN0IG1lbWJlciBuYW1lIFNlcnZpY2VXb3JrZXJTdGF0ZQogCiBIYXJu
ZXNzIEVycm9yIChGQUlMKSwgbWVzc2FnZSA9IEludmFsaWQgb2JqZWN0IG1lbWJlciBuYW1lIFNl
cnZpY2VXb3JrZXJTdGF0ZQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mv
VGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRp
b25zCmluZGV4IDczMDBkOWY5MmEyODM3YTIwNTE5OTM0YmYwMzVhZDI5ZDI3NjA2NjIuLjNjMGY1
MGFjODMwYTY2MTQ5ZjljMzdkMDc1NTYwZDQ0ZWMxZDE0YTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zCkBAIC0zMjAzLDEwICszMjAzLDYgQEAgd2Via2l0Lm9y
Zy9iLzE5MDc2NCBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLWRvdHMtcG9zaXRpb24tMy5odG1s
IFsgU2tpcCBdCiAKIHdlYmtpdC5vcmcvYi8xOTIyNzkgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVnaXN0ZXItY2xvc2VkLXdp
bmRvdy5odHRwcy5odG1sIFsgUGFzcyBGYWlsdXJlIF0KIAotd2Via2l0Lm9yZy9iLzE5MjI1MCBp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci91cGRhdGUtbWlzc2luZy1pbXBvcnQtc2NyaXB0cy5odHRwcy5odG1sIFsgUGFzcyBGYWls
dXJlIF0KLQotd2Via2l0Lm9yZy9iLzE5MjM5OCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUtcmVnaXN0cmF0aW9uLXdp
dGgtdHlwZS5odHRwcy5odG1sIFsgUGFzcyBGYWlsdXJlIF0KLQogd2Via2l0Lm9yZy9iLzE5MTcw
NCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci93aW5kb3djbGllbnQtbmF2aWdhdGUuaHR0cHMuaHRtbCBbIFBhc3MgRmFpbHVyZSBd
CiAKIHdlYmtpdC5vcmcvYi8xOTM5NTUgY29tcG9zaXRpbmcvaWZyYW1lcy9yZW1vdmUtcmVpbnNl
cnQtd2Vidmlldy13aXRoLWlmcmFtZS5odG1sIFsgU2tpcCBdCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy90ZXN0cy1vcHRpb25zLmpzb24gYi9MYXlvdXRUZXN0cy90ZXN0cy1vcHRpb25zLmpzb24K
aW5kZXggMTgyNGNkY2QxYzQ2NGY4YWY3NGVlNzU4NmI3MzE2M2ZjYTYzMmJjMi4uY2MyMDM0ZTg1
MWJmOGY4MDUzNzM5MWI4MjUzMGQxNjhjNTQyMmQxNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
dGVzdHMtb3B0aW9ucy5qc29uCisrKyBiL0xheW91dFRlc3RzL3Rlc3RzLW9wdGlvbnMuanNvbgpA
QCAtMSw0ICsxLDcgQEAKIHsKKyAgICAiaHR0cC90ZXN0cy9wYXltZW50cmVxdWVzdC9wYXltZW50
LXJlc3BvbnNlLXJlZmVyZW5jZS1jeWNsZS1sZWFrLmh0dHBzLmh0bWwiOiBbCisgICAgICAgICJz
bG93IgorICAgIF0sCiAgICAgImh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvb24tbmV0d29yay10
aW1lb3V0LWVycm9yLWR1cmluZy1wcmVmbGlnaHQuaHRtbCI6IFsKICAgICAgICAgInNsb3ciCiAg
ICAgXSwKQEAgLTE3MjQsNiArMTcyNyw5IEBACiAgICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWV2ZW50LXJlc3Bv
bmQtd2l0aC1ib2R5LWxvYWRlZC1pbi1jaHVuay5odHRwcy5odG1sIjogWwogICAgICAgICAic2xv
dyIKICAgICBdLAorICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1ldmVudC13aXRoaW4tc3cuaHR0cHMuaHRtbCI6
IFsKKyAgICAgICAgInNsb3ciCisgICAgXSwKICAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtZXZlbnQuaHR0cHMu
aHRtbCI6IFsKICAgICAgICAgInNsb3ciCiAgICAgXSwKQEAgLTE3NzgsNiArMTc4NCwxMiBAQAog
ICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci91cGRhdGUtYnl0ZWNoZWNrLmh0dHBzLmh0bWwiOiBbCiAgICAgICAgICJzbG93
IgogICAgIF0sCisgICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0ZS5odHRwcy5odG1sIjogWworICAgICAgICAic2xv
dyIKKyAgICBdLAorICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci93b3JrZXItaW50ZXJjZXB0aW9uLmh0dHBzLmh0bWwiOiBb
CisgICAgICAgICJzbG93IgorICAgIF0sCiAgICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL1JUQ0RUTUZTZW5kZXItb250b25lY2hhbmdlLWxvbmcuaHRtbCI6IFsKICAg
ICAgICAgInNsb3ciCiAgICAgXSwKQEAgLTE5MDAsOCArMTkxMiw1IEBACiAgICAgXSwKICAgICAi
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy94aHIveG1saHR0cHJlcXVlc3QtdGltZW91
dC13b3JrZXItdHdpY2UuaHRtbCI6IFsKICAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaHR0
cC90ZXN0cy9wYXltZW50cmVxdWVzdC9wYXltZW50LXJlc3BvbnNlLXJlZmVyZW5jZS1jeWNsZS1s
ZWFrLmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgogICAgIF0KIH0KXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBmaWxlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>378393</attachid>
            <date>2019-09-09 12:23:12 -0700</date>
            <delta_ts>2019-09-09 14:18:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201589-20190909122255.patch</filename>
            <type>text/plain</type>
            <size>737758</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5NjI5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggY2U3MTRhOWFmMmU0NDczZjc2NzM5
MzY2N2ZiYTEwNDFjMzYxNmNkOC4uOTlhMjA0ZWIwMzFlYzRhMTRjZDljYTdhNmE0ZTA2YTY4NWFk
MGM0NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDE5LTA5LTA4ICBDaHJpcyBEdW1leiAgPGNk
dW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUmVzeW5jIHNlcnZpY2Ugd29ya2VycyBXUFQgdGVz
dHMgZnJvbSB1cHN0cmVhbQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjAxNTg5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWW91ZW5uIEZhYmxldC4KKwor
ICAgICAgICAqIFRlc3RFeHBlY3RhdGlvbnM6CisKIDIwMTktMDktMDcgIENocmlzIER1bWV6ICA8
Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgc3VwcG9ydCBmb3IgcG9zdE1lc3NhZ2Ug
YnVmZmVyaW5nIGJldHdlZW4gdGhlIHNlcnZpY2Ugd29ya2VyIGFuZCB3aW5kb3cKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IGNiNDYzNTViZjRkMTRmN2NkYTIzMTc0ZWUxYjMwNWU5
MGY4Nzg5M2UuLjJlNzIxZjc1ZWQzY2MxYjY1MjJmN2Y0YmE2MmQ0NmE4NjAxNjljZTcgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1NSBAQAorMjAxOS0wOS0wOCAg
Q2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFJlc3luYyBzZXJ2aWNl
IHdvcmtlcnMgV1BUIHRlc3RzIGZyb20gdXBzdHJlYW0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMTU4OQorCisgICAgICAgIFJldmlld2VkIGJ5IFlv
dWVubiBGYWJsZXQuCisKKyAgICAgICAgUmVzeW5jIHNlcnZpY2Ugd29ya2VycyBXUFQgdGVzdHMg
ZnJvbSB1cHN0cmVhbSA4MjBmMGY4NjA0N2U2ZTI2NDAxZS4KKworICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvU2VydmljZS1Xb3JrZXIt
QWxsb3dlZC1oZWFkZXIuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvU2VydmljZS1Xb3JrZXItQWxs
b3dlZC1oZWFkZXIuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS9wb3N0
bWVzc2FnZS5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlL3VucmVnaXN0
ZXIuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS91cGRhdGUuaHR0cHMu
aHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL2Fib3V0LWJsYW5rLXJlcGxhY2VtZW50Lmh0dHBzLmh0bWw6CisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9hY3RpdmF0
ZS1ldmVudC1hZnRlci1pbnN0YWxsLXN0YXRlLWNoYW5nZS5odHRwcy5odG1sOgorICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvYWN0aXZh
dGlvbi1hZnRlci1yZWdpc3RyYXRpb24uaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2FjdGl2YXRpb24uaHR0cHMt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvYWN0aXZhdGlvbi5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvYXBwY2FjaGUtb3Jk
ZXJpbmctbWFpbi5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xhaW0tZmV0Y2gtd2l0aC1hcHBjYWNoZS5odHRw
cy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGFpbS1mZXRjaC13aXRoLWFwcGNhY2hlLmh0
dHBzLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGFpbS1mZXRjaC5odHRwcy5odG1sOgorICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xhaW0t
bm90LXVzaW5nLXJlZ2lzdHJhdGlvbi5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xhaW0tc2hhcmVkLXdvcmtl
ci1mZXRjaC5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xhaW0tdXNpbmctcmVnaXN0cmF0aW9uLmh0dHBzLmh0
bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9jbGFpbS13b3JrZXItZmV0Y2guaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xhaW0t
d29ya2VyLWZldGNoLmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGllbnQtaWQuaHR0cHMuaHRtbDoKKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2Ns
aWVudHMtZ2V0LWNsaWVudC10eXBlcy5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xpZW50cy1nZXQtcmVzdWx0
aW5nQ2xpZW50SWQuaHR0cHMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xpZW50cy1nZXQt
cmVzdWx0aW5nQ2xpZW50SWQuaHR0cHMuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsaWVudHMtZ2V0Lmh0
dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsaWVudHMtZ2V0Lmh0dHBzLmh0bWw6CisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGllbnRz
LW1hdGNoYWxsLWNsaWVudC10eXBlcy5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xpZW50cy1tYXRjaGFsbC1l
eGFjdC1jb250cm9sbGVyLmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsaWVudHMtbWF0Y2hhbGwt
ZXhhY3QtY29udHJvbGxlci5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xpZW50cy1tYXRjaGFsbC1pbmNsdWRl
LXVuY29udHJvbGxlZC5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xpZW50cy1tYXRjaGFsbC1vcmRlci5odHRw
cy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvY2xpZW50cy1tYXRjaGFsbC5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY29udHJvbGxlci1v
bi1kaXNjb25uZWN0Lmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jb250cm9sbGVyLW9uLWxvYWQuaHR0cHMuaHRt
bDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL2NvbnRyb2xsZXItb24tcmVsb2FkLmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9kYXRhLXRyYW5zZmVy
LWZpbGVzLmh0dHBzLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2RhdGEtdHJhbnNmZXItZmls
ZXMuaHR0cHMuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2RldGFjaGVkLWNvbnRleHQuaHR0cHMtZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvZGV0YWNoZWQtY29udGV4dC5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZXh0ZW5kYWJsZS1l
dmVudC1hc3luYy13YWl0dW50aWwuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZXh0ZW5kYWJsZS1l
dmVudC1hc3luYy13YWl0dW50aWwuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2V4dGVuZGFibGUtZXZlbnQtd2Fp
dHVudGlsLmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1hdWRpby10YWludGluZy5odHRwcy1leHBlY3Rl
ZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1hdWRpby10YWludGluZy5odHRwcy5odG1sOiBSZW1v
dmVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvZmV0Y2gtY2FudmFzLXRhaW50aW5nLWRvdWJsZS13cml0ZS5odHRwcy1leHBlY3Rl
ZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1jYW52YXMtdGFpbnRpbmctZG91YmxlLXdyaXRlLmh0
dHBzLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1jYW52YXMtdGFpbnRpbmctdmlkZW8tY2FjaGUu
aHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL2ZldGNoLWNhbnZhcy10YWludGluZy12aWRlby5odHRwcy5odG1sOgor
ICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvZmV0Y2gtY29ycy14aHIuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtY29ycy14aHIu
aHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL2ZldGNoLWNzcC5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtZXZlbnQtYWZ0
ZXItbmF2aWdhdGlvbi13aXRoaW4tcGFnZS5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtZXZlbnQtYXN5
bmMtcmVzcG9uZC13aXRoLmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWV2ZW50LWFzeW5j
LXJlc3BvbmQtd2l0aC5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtZXZlbnQtbmV0d29yay1lcnJvci5o
dHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvZmV0Y2gtZXZlbnQtcmVmZXJyZXItcG9saWN5Lmh0dHBzLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL2ZldGNoLWV2ZW50LXJlZmVycmVyLXBvbGljeS5odHRwcy5odG1sOgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0
Y2gtZXZlbnQtcmVzcG9uZC13aXRoLWFyZ3VtZW50Lmh0dHBzLmh0bWw6CisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1ldmVu
dC1yZXNwb25kLXdpdGgtYm9keS1sb2FkZWQtaW4tY2h1bmsuaHR0cHMuaHRtbDoKKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNo
LWV2ZW50LXJlc3BvbmQtd2l0aC1zdG9wcy1wcm9wYWdhdGlvbi5odHRwcy5odG1sOgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0
Y2gtZXZlbnQtdGhyb3dzLWFmdGVyLXJlc3BvbmQtd2l0aC5odHRwcy5odG1sOgorICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gt
ZXZlbnQuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtZXZlbnQuaHR0cHMuaHRtbDoKKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L2ZldGNoLWZyYW1lLXJlc291cmNlLmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1oZWFkZXItdmlzaWJp
bGl0eS5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtcmVxdWVzdC1jc3MtYmFzZS11cmwuaHR0cHMtZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvZmV0Y2gtcmVxdWVzdC1jc3MtYmFzZS11cmwuaHR0cHMuaHRtbDoKKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L2ZldGNoLXJlcXVlc3QtY3NzLWltYWdlcy5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtcmVxdWVzdC1o
dG1sLWltcG9ydHMuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtcmVxdWVzdC1odG1sLWlt
cG9ydHMuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLXJlcXVlc3Qtbm8tZnJlc2huZXNzLWhlYWRlcnMu
aHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL2ZldGNoLXJlcXVlc3QtcmVkaXJlY3QuaHR0cHMuaHRtbDoKKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2Zl
dGNoLXJlcXVlc3QteGhyLXN5bmMuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLXJlc3BvbnNlLXhoci5o
dHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvZmV0Y2gtd2FpdHMtZm9yLWFjdGl2YXRlLmh0dHBzLmh0bWw6CisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9n
ZXRyZWdpc3RyYXRpb24uaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZ2V0cmVnaXN0cmF0aW9uLmh0
dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9pbXBvcnQtbW9kdWxlLXNjcmlwdHMuaHR0cHMtZXhwZWN0ZWQudHh0OiBS
ZW1vdmVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvaW1wb3J0LW1vZHVsZS1zY3JpcHRzLmh0dHBzLmh0bWw6IFJlbW92ZWQuCisg
ICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9pbXBvcnQtc2NyaXB0cy1taW1lLXR5cGVzLmh0dHBzLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4K
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL2ltcG9ydC1zY3JpcHRzLW1pbWUtdHlwZXMuaHR0cHMuaHRtbDogUmVtb3ZlZC4KKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2lt
cG9ydC1zY3JpcHRzLXJlc291cmNlLW1hcC5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9pbXBvcnQt
c2NyaXB0cy1yZXNvdXJjZS1tYXAuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ludGVyZmFjZXMtd2luZG93Lmh0
dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9pbnZhbGlkLWJsb2J0eXBlLmh0dHBzLmh0bWw6CisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9pbnZhbGlkLWhl
YWRlci5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvaXNvLWxhdGluMS1oZWFkZXIuaHR0cHMuaHRtbDoKKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL211
bHRpcGxlLXVwZGF0ZS5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvbmF2aWdhdGlvbi1yZWRpcmVjdC5odHRwcy5o
dG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvb25hY3RpdmF0ZS1zY3JpcHQtZXJyb3IuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3BlcmZvcm1h
bmNlLXRpbWVsaW5lLmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9wb3N0bWVzc2FnZS1mcm9tLXdhaXRpbmctc2Vy
dmljZXdvcmtlci5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcG9zdG1lc3NhZ2UtdG8tY2xpZW50LW1lc3NhZ2Ut
cXVldWUuaHR0cHMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcG9zdG1lc3NhZ2UtdG8tY2xp
ZW50LW1lc3NhZ2UtcXVldWUuaHR0cHMuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Bvc3RtZXNzYWdlLXRv
LWNsaWVudC5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvcG9zdG1lc3NhZ2UuaHR0cHMtZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvcG9zdG1lc3NhZ2UuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlYWR5Lmh0dHBzLmh0bWw6CisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZWRp
cmVjdGVkLXJlc3BvbnNlLmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlZGlyZWN0ZWQtcmVzcG9u
c2UuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL3JlZmVyZXIuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlZ2lzdGVyLWRlZmF1
bHQtc2NvcGUuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlZ2lzdGVyLXdhaXQtZm9yZXZlci1pbi1pbnN0YWxs
LXdvcmtlci5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVnaXN0cmF0aW9uLWVuZC10by1lbmQuaHR0cHMuaHRt
bDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL3JlZ2lzdHJhdGlvbi1ldmVudHMuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlZ2lzdHJhdGlvbi1t
aW1lLXR5cGVzLmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlZ2lzdHJhdGlvbi1taW1lLXR5cGVz
Lmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci9yZWdpc3RyYXRpb24tc2NoZWR1bGUtam9iLmh0dHBzLWV4cGVjdGVk
LnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL3JlZ2lzdHJhdGlvbi1zY2hlZHVsZS1qb2IuaHR0cHMuaHRtbDog
UmVtb3ZlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL3JlZ2lzdHJhdGlvbi1zY29wZS5odHRwcy1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9y
ZWdpc3RyYXRpb24tc2VjdXJpdHktZXJyb3IuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVnaXN0
cmF0aW9uLXNlcnZpY2Utd29ya2VyLWF0dHJpYnV0ZXMuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlZ2lzdHJh
dGlvbi11cGRhdGV2aWFjYWNoZS5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZWdpc3RyYXRpb24t
dXBkYXRldmlhY2FjaGUuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlLXRpbWluZy5odHRwcy5odG1s
OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2UtdGltaW5nLnN1Yi5odHRw
cy5odG1sLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvcmVzb3VyY2UtdGltaW5nLnN1Yi5odHRwcy1leHBlY3RlZC50eHQ6IFJlbW92
ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9yZXNvdXJjZXMvYWJvdXQtYmxhbmstcmVwbGFjZW1lbnQtcGluZy1mcmFtZS5weToK
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3Jlc291cmNlcy9hcHBjYWNoZS1vcmRlcmluZy5tYW5pZmVzdDoKKyAgICAgICAgKiB3ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9j
bGFpbS13b3JrZXIuanM6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvY2xhc3NpYy13b3JrZXIuanM6IFJlbW92ZWQu
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9yZXNvdXJjZXMvY2xpZW50cy1nZXQtY3Jvc3Mtb3JpZ2luLWZyYW1lLmh0bWw6CisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9y
ZXNvdXJjZXMvY2xpZW50cy1nZXQtcmVzdWx0aW5nQ2xpZW50SWQtd29ya2VyLmpzOiBSZW1vdmVk
LgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvcmVzb3VyY2VzL2NsaWVudHMtZ2V0LXdvcmtlci5qczoKKyAgICAgICAgKHNlbGYub25t
ZXNzYWdlKToKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL3Jlc291cmNlcy9lbmFibGUtY2xpZW50LW1lc3NhZ2UtcXVldWUuaHRtbDog
UmVtb3ZlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL3Jlc291cmNlcy9leHRlbmRhYmxlLWV2ZW50LWFzeW5jLXdhaXR1bnRpbC5q
czoKKyAgICAgICAgKHN3aXRjaCk6CisgICAgICAgIChldmVudC5yZXF1ZXN0LnVybC5pbmRleE9m
KToKKyAgICAgICAgKGVsc2UuZXZlbnQucmVxdWVzdC51cmwuaW5kZXhPZik6CisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJj
ZXMvZmV0Y2gtY2FudmFzLXRhaW50aW5nLWRvdWJsZS13cml0ZS13b3JrZXIuanM6IFJlbW92ZWQu
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9yZXNvdXJjZXMvZmV0Y2gtY29ycy14aHItaWZyYW1lLmh0bWw6CisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMv
ZmV0Y2gtZXZlbnQtYXN5bmMtcmVzcG9uZC13aXRoLXdvcmtlci5qczoKKyAgICAgICAgKHNldFRp
bWVvdXQpOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWV2ZW50LW5ldHdvcmstZmFsbGJhY2std29ya2Vy
LmpzOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWV2ZW50LXRlc3Qtd29ya2VyLmpzOgorICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3Vy
Y2VzL2ZldGNoLXJlcXVlc3QtY3NzLWJhc2UtdXJsLWlmcmFtZS5odG1sOgorICAgICAgICAqIHdl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2Vz
L2ZldGNoLXJlcXVlc3QtY3NzLWJhc2UtdXJsLXdvcmtlci5qczoKKyAgICAgICAgKHNlbGYub25t
ZXNzYWdlKToKKyAgICAgICAgKHVybC5pbmRleE9mKToKKyAgICAgICAgKGVsc2UudXJsLmluZGV4
T2YpOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvcmVzb3VyY2VzL2dldC1yZXN1bHRpbmdDbGllbnRJZC13b3JrZXIuanM6IFJlbW92
ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9yZXNvdXJjZXMvaW1wb3J0LXJlbGF0aXZlLnhzbDogUmVtb3ZlZC4KKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291
cmNlcy9pbXBvcnQtc2NyaXB0cy1kaWZmLXJlc291cmNlLW1hcC13b3JrZXIuanM6IFJlbW92ZWQu
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9yZXNvdXJjZXMvaW1wb3J0LXNjcmlwdHMtZ2V0LnB5OiBSZW1vdmVkLgorICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3Vy
Y2VzL2ltcG9ydC1zY3JpcHRzLW1pbWUtdHlwZXMtd29ya2VyLmpzOiBSZW1vdmVkLgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVz
b3VyY2VzL2ltcG9ydGVkLWNsYXNzaWMtc2NyaXB0LmpzOiBSZW1vdmVkLgorICAgICAgICAqIHdl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2Vz
L2ltcG9ydGVkLW1vZHVsZS1zY3JpcHQuanM6IFJlbW92ZWQuCisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvbWVzc2Fn
ZS12cy1taWNyb3Rhc2suaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9tb2R1bGUtd29ya2Vy
LmpzOiBSZW1vdmVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL25hdmlnYXRpb24tcmVkaXJlY3Qtb3RoZXItb3Jp
Z2luLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvbmF2aWdhdGlvbi1yZWRpcmVjdC1vdXQtc2NvcGUucHk6
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9yZXNvdXJjZXMvbmF2aWdhdGlvbi1yZWRpcmVjdC1zY29wZTEucHk6CisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJj
ZXMvbmF2aWdhdGlvbi1yZWRpcmVjdC1zY29wZTIucHk6CisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvbmVzdGVkLWlm
cmFtZS1wYXJlbnQuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9wZXJmb3JtYW5jZS10aW1l
bGluZS13b3JrZXIuanM6CisgICAgICAgIChwcm9taXNlX3Rlc3QuKToKKyAgICAgICAgKHByb21p
c2VfdGVzdCk6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvcG9zdG1lc3NhZ2UtZWNoby13b3JrZXIuanM6IFJlbW92
ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9yZXNvdXJjZXMvcmVkaXJlY3Qtd29ya2VyLmpzOgorICAgICAgICAoZXZlbnQud2Fp
dFVudGlsLlByb21pc2UuYWxsLndhaXRVbnRpbFByb21pc2VMaXN0LnRoZW4pOgorICAgICAgICAo
dGhlbik6CisgICAgICAgICh3YWl0VW50aWxQcm9taXNlLmNhY2hlcy5vcGVuLmNhY2hlTmFtZS50
aGVuKToKKyAgICAgICAgKGV2ZW50LnJlc3BvbmRXaXRoLndhaXRVbnRpbFByb21pc2UudGhlbik6
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9yZXNvdXJjZXMvcmVnaXN0cmF0aW9uLXRlc3RzLW1pbWUtdHlwZXMuanM6CisgICAgICAg
IChyZWdpc3RyYXRpb25fdGVzdHNfbWltZV90eXBlcyk6CisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvcmVnaXN0cmF0
aW9uLXRlc3RzLXNjb3BlLmpzOgorICAgICAgICAocmVnaXN0cmF0aW9uX3Rlc3RzX3Njb3BlKToK
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3Jlc291cmNlcy9yZWdpc3RyYXRpb24tdGVzdHMtc2VjdXJpdHktZXJyb3IuanM6CisgICAg
ICAgIChyZWdpc3RyYXRpb25fdGVzdHNfc2VjdXJpdHlfZXJyb3IpOgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3Jl
c291cmNlLXRpbWluZy1pZnJhbWUuc3ViLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvc2VydmljZS13b3Jr
ZXItY3NwLXdvcmtlci5weToKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9zZXJ2aWNlLXdvcmtlci1oZWFkZXIucHk6
CisgICAgICAgIChtYWluKToKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9za2lwLXdhaXRpbmctaW5zdGFsbGVkLXdv
cmtlci5qczoKKyAgICAgICAgKGV2ZW50LndhaXRVbnRpbC5zZWxmLnNraXBXYWl0aW5nLnRoZW4p
OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvcmVzb3VyY2VzL3N0YWxsaW5nLXNlcnZpY2Utd29ya2VyLmpzOiBSZW1vdmVkLgorICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
cmVzb3VyY2VzL3Rlc3QtaGVscGVycy5zdWIuanM6CisgICAgICAgICh3YWl0X2Zvcl91cGRhdGUp
OgorICAgICAgICAoYXN5bmMud2FpdF9mb3JfYWN0aXZhdGlvbl9vbl9kdW1teV9zY29wZSk6Cisg
ICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9yZXNvdXJjZXMvdGVzdC1yZXF1ZXN0LWhlYWRlcnMtd29ya2VyLmpzOiBSZW1vdmVkLgorICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
cmVzb3VyY2VzL3Rlc3QtcmVxdWVzdC1oZWFkZXJzLXdvcmtlci5weTogUmVtb3ZlZC4KKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jl
c291cmNlcy90cmlja2xlLnB5OiBSZW1vdmVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3VwZGF0ZS1kdXJpbmct
aW5zdGFsbGF0aW9uLXdvcmtlci5qczogUmVtb3ZlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy91cGRhdGUtZHVy
aW5nLWluc3RhbGxhdGlvbi13b3JrZXIucHk6IFJlbW92ZWQuCisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvdXBkYXRl
LWZldGNoLXdvcmtlci5weTogUmVtb3ZlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy91cGRhdGUtbWlzc2luZy1p
bXBvcnQtc2NyaXB0cy1pbXBvcnRlZC13b3JrZXIucHk6IFJlbW92ZWQuCisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMv
dXBkYXRlLW1pc3NpbmctaW1wb3J0LXNjcmlwdHMtbWFpbi13b3JrZXIucHk6IFJlbW92ZWQuCisg
ICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9yZXNvdXJjZXMvdXBkYXRlLXJlZ2lzdHJhdGlvbi13aXRoLXR5cGUucHk6IFJlbW92ZWQuCisg
ICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9yZXNvdXJjZXMvdzNjLWltcG9ydC5sb2c6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvd29ya2VyLWludGVyY2Vw
dGlvbi1pZnJhbWUuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy93b3JrZXItbG9hZC1pbnRlcmNl
cHRvci5qczoKKyAgICAgICAgKHNlbGYub25mZXRjaCk6CisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvd29ya2VyLXRl
c3RoYXJuZXNzLmpzOgorICAgICAgICAoY3JlYXRlX3RlbXBvcmFyeV9jYWNoZSk6CisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNv
dXJjZXMveGhyLWlmcmFtZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3hoci1yZXNwb25z
ZS11cmwtd29ya2VyLmpzOiBSZW1vdmVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3hzbC1iYXNlLXVybC1pZnJh
bWUueG1sOiBSZW1vdmVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3hzbC1iYXNlLXVybC13b3JrZXIuanM6IFJl
bW92ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9yZXNvdXJjZXMveHNsdC1wYXNzLnhzbDogUmVtb3ZlZC4KKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3NlcnZpY2Ut
d29ya2VyLWNzcC1jb25uZWN0Lmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3NlcnZpY2Utd29ya2Vy
LWNzcC1kZWZhdWx0Lmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3NlcnZpY2Utd29ya2VyLWNzcC1z
Y3JpcHQuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvc2VydmljZS13b3JrZXItaGVhZGVyLmh0dHBz
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL3NlcnZpY2Utd29ya2VyLWhlYWRlci5odHRwcy5odG1sOgorICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
c2VydmljZXdvcmtlci1tZXNzYWdlLWV2ZW50LWhpc3RvcmljYWwuaHR0cHMuaHRtbDoKKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3No
YXJlZC13b3JrZXItY29udHJvbGxlZC5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvc2tpcC13YWl0aW5nLWluc3Rh
bGxlZC5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9za2lwLXdhaXRpbmctaW5zdGFsbGVkLmh0dHBz
Lmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9za2lwLXdhaXRpbmctdXNpbmctcmVnaXN0cmF0aW9uLmh0dHBzLmh0bWw6Cisg
ICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9za2lwLXdhaXRpbmctd2l0aG91dC11c2luZy1yZWdpc3RyYXRpb24uaHR0cHMuaHRtbDoKKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L3NraXAtd2FpdGluZy5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvc3RhdGUuaHR0cHMuaHRtbDoKKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3N5bmNl
ZC1zdGF0ZS5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvdW5jb250cm9sbGVkLXBhZ2UuaHR0cHMuaHRtbDoKKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L3VucmVnaXN0ZXItdGhlbi1yZWdpc3Rlci1uZXctc2NyaXB0Lmh0dHBzLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3VucmVnaXN0ZXItdGhlbi1yZWdpc3Rlci1uZXctc2NyaXB0Lmh0dHBzLmh0bWw6CisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91
bnJlZ2lzdGVyLXRoZW4tcmVnaXN0ZXIuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdW5yZWdpc3Rl
ci10aGVuLXJlZ2lzdGVyLmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUtYWZ0ZXItbmF2aWdhdGlvbi1y
ZWRpcmVjdC5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLWFmdGVyLW9uZWRheS5odHRwcy5odG1sOgor
ICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvdXBkYXRlLWJ5dGVjaGVjay5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLW1pc3NpbmctaW1wb3J0
LXNjcmlwdHMuaHR0cHMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLW1pc3Npbmct
aW1wb3J0LXNjcmlwdHMuaHR0cHMuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0ZS1uby1jYWNoZS1y
ZXF1ZXN0LWhlYWRlcnMuaHR0cHMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIHdl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLW5v
LWNhY2hlLXJlcXVlc3QtaGVhZGVycy5odHRwcy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIHdl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLW5v
dC1hbGxvd2VkLmh0dHBzLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0ZS1ub3QtYWxs
b3dlZC5odHRwcy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLW9uLW5hdmlnYXRpb24uaHR0cHMt
ZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLW9uLW5hdmlnYXRpb24uaHR0cHMuaHRt
bDogUmVtb3ZlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL3VwZGF0ZS1yZWNvdmVyeS5odHRwcy5odG1sOgorICAgICAgICAqIHdl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLXJl
Z2lzdHJhdGlvbi13aXRoLXR5cGUuaHR0cHMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBk
YXRlLXJlZ2lzdHJhdGlvbi13aXRoLXR5cGUuaHR0cHMuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3czYy1p
bXBvcnQubG9nOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvd2Vic29ja2V0Lmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3dlYnNvY2tl
dC5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvd2luZG93Y2xpZW50LW5hdmlnYXRlLmh0dHBzLmh0bWw6CisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci93
b3JrZXItY2xpZW50LWlkLmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3dvcmtlci1pbnRlcmNlcHRp
b24uaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvd29ya2VyLWludGVyY2VwdGlvbi5odHRwcy5odG1s
OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIveGhyLXJlc3BvbnNlLXVybC5odHRwcy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci94
aHItcmVzcG9uc2UtdXJsLmh0dHBzLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci94c2wtYmFzZS11cmwuaHR0
cHMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIveHNsLWJhc2UtdXJsLmh0dHBzLmh0bWw6IFJl
bW92ZWQuCisKIDIwMTktMDktMDcgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAog
ICAgICAgICBBZGQgc3VwcG9ydCBmb3IgcG9zdE1lc3NhZ2UgYnVmZmVyaW5nIGJldHdlZW4gdGhl
IHNlcnZpY2Ugd29ya2VyIGFuZCB3aW5kb3cKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL1Rlc3RF
eHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDlmMTQzNGMw
YjAxM2ZiZjNjZDY2MzdkMzg3OTUzNTY5NTg2MjQwNjQuLmY5NmMyNTM1YTI3NzFhZWRhOTU5NGUw
Y2M2NmNjOTU4NmI1N2FhNTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlv
bnMKKysrIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMjExLDE2ICsyMTEsMTcg
QEAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvZmV0Y2gtbWl4ZWQtY29udGUKIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL211bHRpcGFydC1pbWFnZS5odHRwcy5o
dG1sIFsgU2tpcCBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9za2lwLXdhaXRpbmctdXNpbmctcmVnaXN0cmF0aW9uLmh0dHBz
Lmh0bWwgWyBTa2lwIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3NraXAtd2FpdGluZy13aXRob3V0LXVzaW5nLXJlZ2lzdHJh
dGlvbi5odHRwcy5odG1sIFsgU2tpcCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUtbm90LWFsbG93ZWQuaHR0cHMu
aHRtbCBbIFNraXAgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvd29ya2VyLWluLXNhbmRib3hlZC1pZnJhbWUtYnktY3NwLWZl
dGNoLWV2ZW50Lmh0dHBzLmh0bWwgWyBTa2lwIF0KIFsgRGVidWcgXSBpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZWFkeS5odHRw
cy5odG1sIFsgU2tpcCBdCiAKICMgTmV3bHkgaW1wb3J0ZWQgc2VydmljZSB3b3JrZXIgdGVzdHMg
dGhhdCBhcmUgZmxha3kuCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9uYXZpZ2F0aW9uLXJlZGlyZWN0LXRvLWh0dHAuaHR0cHMu
aHRtbCBbIFBhc3MgRmFpbHVyZSBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZS10aW1pbmcuc3ViLmh0dHBzLmh0
bWwgWyBQYXNzIEZhaWx1cmUgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvd29ya2VyLWNsaWVudC1pZC5odHRwcy5odG1sIFsg
UGFzcyBGYWlsdXJlIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMveGhyL2V2ZW50
LXRpbWVvdXQtb3JkZXIuaHRtIFsgUGFzcyBGYWlsdXJlIF0KIAorIyBUaGUgdGVzdHMgcHJpbnRz
IG91dCBhIFVVSUQgdGhhdCBpcyBkaWZmZXJlbnQgZXZlcnkgdGltZS4KK2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0ZS5o
dHRwcy5odG1sIFsgUGFzcyBGYWlsdXJlIF0KKwogIyBUaGlzIHRlc3QgaXMgdGltaW5nIG91dCBi
ZWNhdXNlIGl0IHJlbGllcyBvbiBodHRwOi8vd3d3MS5sb2NhbGhvc3Q6ODgwMCBob3N0IGZvciBj
cm9zcyBvcmlnaW4gY2hlY2tzLgogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jb3Jz
L3JlbW90ZS1vcmlnaW4uaHRtIFsgU2tpcCBdCiAKQEAgLTI0OCw3ICsyNDksNiBAQCBpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91
cGRhdGUtYWZ0ZXItb25lZAogCiAjIFVuc3VwcG9ydGVkIGZlYXR1cmVzOiBTaGFyZWRXb3JrZXIs
IE5hdmlnYXRpb25QcmVsb2FkCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9uYXZpZ2F0aW9uLXByZWxvYWQgWyBTa2lwIF0KLWlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3NoYXJlZC13b3JrZXItY29udHJvbGxlZC5odHRwcy5odG1sIFsgU2tpcCBdCiBpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9j
bGFpbS1zaGFyZWQtd29ya2VyLWZldGNoLmh0dHBzLmh0bWwgWyBTa2lwIF0KIAogIyBVbnN1cHBv
cnRlZCBmZWF0dXJlczogUGVyZm9ybWFuY2VOYXZpZ2F0aW9uVGltaW5nCkBAIC0yNjYsNiArMjY2
LDcgQEAgd2Via2l0Lm9yZy9iLzE4ODI0NiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmsKICMgQ29uc29sZSBsb2cgbGluZXMgbWF5IGFw
cGVhciBpbiBhIGRpZmZlcmVudCBvcmRlciBzbyB3ZSBzaWxlbmNlIHRoZW0uCiBpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvaGlzdG9yeS90aGUtbG9jYXRpb24t
aW50ZXJmYWNlL2xvY2F0aW9uLXByb3RvY29sLXNldHRlci1ub24tYnJva2VuLmh0bWwgWyBEdW1w
SlNDb25zb2xlTG9nSW5TdGRFcnIgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL2Jyb3dzZXJzL2hpc3RvcnkvdGhlLWxvY2F0aW9uLWludGVyZmFjZS9sb2NhdGlvbi1wcm90
b2NvbC1zZXR0ZXItbm9uLWJyb2tlbi13ZWlyZC5odG1sIFsgRHVtcEpTQ29uc29sZUxvZ0luU3Rk
RXJyIF0KK2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL2ZldGNoLWNvcnMteGhyLmh0dHBzLmh0bWwgWyBEdW1wSlNDb25zb2xlTG9n
SW5TdGRFcnIgXQogCiAjIE5ld2x5IGltcG9ydGVkIFdQVCB0ZXN0cyB0aGF0IGFyZSB0aW1pbmcg
b3V0LgogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL2hpc3Rv
cnkvdGhlLWxvY2F0aW9uLWludGVyZmFjZS9sb2NhdGlvbi1vcmlnaW4taWRuYS5zdWIud2luZG93
Lmh0bWwgWyBTa2lwIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9yZXNv
dXJjZXMvaW1wb3J0LWV4cGVjdGF0aW9ucy5qc29uIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3Jlc291cmNlcy9pbXBvcnQtZXhwZWN0YXRpb25zLmpzb24KaW5kZXggMDg4ZGY3NjE5Nzc4MzA4
NGZlZDM4MTkwYmE2Yjg3YzVjMWI1NzIxMC4uY2I0ZWE4NzhmNTI3YmExZGFhMzA1NmNiYTEwOThj
MzI4NDAxOTAwZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3Jlc291cmNl
cy9pbXBvcnQtZXhwZWN0YXRpb25zLmpzb24KKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3Jlc291cmNlcy9pbXBvcnQtZXhwZWN0YXRpb25zLmpzb24KQEAgLTM2OCw0ICszNjgsNCBAQAog
ICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvd29ya2xldHMiOiAic2tpcCIsIAogICAgICJ3ZWItcGxh
dGZvcm0tdGVzdHMveC1mcmFtZS1vcHRpb25zIjogInNraXAiLCAKICAgICAid2ViLXBsYXRmb3Jt
LXRlc3RzL3hociI6ICJpbXBvcnQiCi19Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9J
bmRleGVkREIvaW50ZXJmYWNlcy5hbnktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaW50ZXJmYWNlcy5hbnktZXhwZWN0
ZWQudHh0CmluZGV4IGYxNGY1MzljYTI2NjA5ZDE5ZTgxMDg0OTVhOGRhYzMzZWY5OTQzMjUuLmQy
ODUxYTZjOGM5ZGE4ZDg5ZDhmY2ZhMjVjNzExMTY5NTNmYThmM2MgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2ludGVyZmFj
ZXMuYW55LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pbnRlcmZhY2VzLmFueS1leHBlY3RlZC50eHQKQEAgLTEs
NCArMSwzIEBACi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNDgyOiBjYWxsYmFjayBub3QgeWV0IHN1
cHBvcnRlZAogCiBQQVNTIFRlc3QgZHJpdmVyIAogUEFTUyBQYXJ0aWFsIGludGVyZmFjZSBXaW5k
b3dPcldvcmtlckdsb2JhbFNjb3BlOiBvcmlnaW5hbCBpbnRlcmZhY2UgZGVmaW5lZCAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhl
ZERCL2ludGVyZmFjZXMuYW55Lndvcmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pbnRlcmZhY2VzLmFueS53b3Jr
ZXItZXhwZWN0ZWQudHh0CmluZGV4IGIzYjk1MTBiOTIyNGY4MWI4OTJiOWI4YWUwOWI4N2Y5MTg1
ZDFjODUuLmU0ZGY0YzkyNTE2YzkwNDQ4NDc4NDk2NjFkZGYzYWNiMTRmYmZiZjUgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERC
L2ludGVyZmFjZXMuYW55Lndvcmtlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaW50ZXJmYWNlcy5hbnkud29y
a2VyLWV4cGVjdGVkLnR4dApAQCAtMjgsNiArMjgsMTAgQEAgUEFTUyBOb2RlSXRlcmF0b3IgaW50
ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdAogUEFT
UyBUcmVlV2Fsa2VyIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVy
ZmFjZSBvYmplY3QgCiBQQVNTIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHBy
b3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCAKIFBBU1MgRE9NVG9rZW5MaXN0IGludGVyZmFj
ZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgCitQQVNTIFhQ
YXRoUmVzdWx0IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFj
ZSBvYmplY3QgCitQQVNTIFhQYXRoRXhwcmVzc2lvbiBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQg
cHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IAorUEFTUyBYUGF0aE5TUmVzb2x2ZXIgaW50
ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCAKK1BB
U1MgWFBhdGhFdmFsdWF0b3IgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2Yg
aW50ZXJmYWNlIG9iamVjdCAKIFBBU1MgSURCUmVxdWVzdCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBh
bmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IAogUEFTUyBJREJSZXF1ZXN0IGludGVy
ZmFjZSBvYmplY3QgbGVuZ3RoIAogUEFTUyBJREJSZXF1ZXN0IGludGVyZmFjZSBvYmplY3QgbmFt
ZSAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvV2ViSURML2ludGVyZmFjZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9XZWJJREwvaW50ZXJmYWNlcy1leHBlY3RlZC50eHQKaW5k
ZXggNzlkNWExZTFiNmEyYjA0OTk2N2E1OTUxNjcyZWNmZjQ1YTBkMzAwMy4uNTE0YjZmNDkxODky
YWFmY2YyZjIyNzQxMTRhM2MzMTk2YzQ0MDFkZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9XZWJJREwvaW50ZXJmYWNlcy1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9XZWJJ
REwvaW50ZXJmYWNlcy1leHBlY3RlZC50eHQKQEAgLTEsNSArMSwzIEBACi1DT05TT0xFIE1FU1NB
R0U6IGxpbmUgNDgyOiBjYWxsYmFjayBub3QgeWV0IHN1cHBvcnRlZAotQ09OU09MRSBNRVNTQUdF
OiBsaW5lIDQ4MjogY2FsbGJhY2sgbm90IHlldCBzdXBwb3J0ZWQKIAogUEFTUyBUZXN0IGRyaXZl
ciAKIFBBU1MgRE9NRXhjZXB0aW9uIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVz
IG9mIGludGVyZmFjZSBvYmplY3QgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2NvbW1vbi9zZWN1cml0eS1mZWF0dXJlcy9yZXNvdXJjZXMv
Y29tbW9uLnN1Yi5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY29tbW9uL3NlY3VyaXR5LWZlYXR1cmVzL3Jlc291cmNlcy9jb21tb24uc3ViLmpzCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmM3Zjk0ZTgwNmY5NGRhNDk0NTgwZGUyZjI1YzY3NjgxNWNhOTQ2NGUKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nv
bW1vbi9zZWN1cml0eS1mZWF0dXJlcy9yZXNvdXJjZXMvY29tbW9uLnN1Yi5qcwpAQCAtMCwwICsx
LDEyMjYgQEAKKy8qKgorICogQGZpbGVvdmVydmlldyBVdGlsaXRpZXMgZm9yIG1peGVkLWNvbnRl
bnQgaW4gV2ViIFBsYXRmb3JtIFRlc3RzLgorICogQGF1dGhvciBidXJuaWtAZ29vZ2xlLmNvbSAo
S3Jpc3RpamFuIEJ1cm5paykKKyAqIERpc2NsYWltZXI6IFNvbWUgbWV0aG9kcyBvZiBvdGhlciBh
dXRob3JzIGFyZSBhbm5vdGF0ZWQgaW4gdGhlIGNvcnJlc3BvbmRpbmcKKyAqICAgICBtZXRob2Qn
cyBKU0RvYy4KKyAqLworCisvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy8vIFR5cGVzCisvLyA9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy8vIE9iamVj
dHMgb2YgdGhlIGZvbGxvd2luZyB0eXBlcyBhcmUgdXNlZCB0byByZXByZXNlbnQgd2hhdCBraW5k
IG9mCisvLyBzdWJyZXNvdXJjZSByZXF1ZXN0cyBzaG91bGQgYmUgc2VudCB3aXRoIHdoYXQga2lu
ZCBvZiBwb2xpY2llcywKKy8vIGZyb20gd2hhdCBraW5kIG9mIHBvc3NpYmx5IG5lc3RlZCBzb3Vy
Y2UgY29udGV4dHMuCisvLyBUaGUgb2JqZWN0cyBhcmUgcmVwcmVzZW50ZWQgYXMgSlNPTiBvYmpl
Y3RzIChub3QgSmF2YVNjcmlwdC9QeXRob24gY2xhc3NlcworLy8gaW4gYSBzdHJpY3Qgc2Vuc2Up
IHRvIGJlIHBhc3NlZCBiZXR3ZWVuIEphdmFTY3JpcHQvUHl0aG9uIGNvZGUuCisKKy8vIE5vdGU6
IFNvIGZhciB0aGlzIGRvY3VtZW50IGNvdmVyczoKKy8vIC0gcmVzb3VyY2VzL2NvbW1vbi5zdWIu
anMgOiBjbGllbnQtc2lkZSB0ZXN0IGluZnJhIGNvZGUKKy8vIC0gc2NvcGUvIC0gc2VydmVyLXNp
ZGUgc2NyaXB0cyB0aGF0IHNlcnZlcyBuZXN0ZWQgc291cmNlIGNvbnRleHRzCisvLyBidXQgZG9l
c24ndCBjb3ZlcjoKKy8vIC0gdG9vbHMvIC0gZ2VuZXJhdG9yIHNjcmlwdHMgdGhhdCBnZW5lcmF0
ZXMgdG9wLWxldmVsIEhUTUwgZG9jdW1lbnRzLgorLy8gVGhlcmUgYXJlIHNvbWUgcG9saWNpZXMg
b25seSBoYW5kbGVkIGJ5IGdlbmVyYXRvcnMgKGUuZy4gbWl4ZWQtY29udGVudAorLy8gb3B0LWlu
cykgYW5kIG5vdCB5ZXQgY292ZXJlZCBieSB0aGUgZG9jcyBoZXJlLgorCisvKioKKyAgQHR5cGVk
ZWYgUG9saWN5RGVsaXZlcnkKKyAgQHR5cGUge29iamVjdH0KKyAgUmVmZXJyZXIgcG9saWN5IGV0
Yy4gY2FuIGJlIGFwcGxpZWQvZGVsaXZlcmVkIGluIHNldmVyYWwgd2F5cy4KKyAgQSBQb2xpY3lE
ZWxpdmVyeSBvYmplY3Qgc3BlY2lmaWVzIHdoYXQgcG9saWN5IGlzIGRlbGl2ZXJlZCBhbmQgaG93
LgorCisgIEBwcm9wZXJ0eSB7c3RyaW5nfSBkZWxpdmVyeVR5cGUKKyAgICBTcGVjaWZpZXMgaG93
IHRoZSBwb2xpY3kgaXMgZGVsaXZlcmVkLgorICAgIFRoZSB2YWxpZCBkZWxpdmVyeVR5cGUgYXJl
OgorCisgICAgICJhdHRyIgorICAgICAgICBbQV0gRE9NIGF0dHJpYnV0ZXMgZS5nLiByZWZlcnJl
clBvbGljeS4KKworICAgICAgInJlbC1ub3JlZiIKKyAgICAgICAgW0FdIDxsaW5rIHJlbD0ibm9y
ZWZlcnJlciI+IChyZWZlcnJlci1wb2xpY3kgb25seSkuCisKKyAgICAgICJodHRwLXJwIgorICAg
ICAgICBbQl0gSFRUUCByZXNwb25zZSBoZWFkZXJzLgorCisgICAgICAibWV0YSIKKyAgICAgICAg
W0JdIDxtZXRhPiBlbGVtZW50cy4KKworICBAcHJvcGVydHkge3N0cmluZ30ga2V5CisgIEBwcm9w
ZXJ0eSB7c3RyaW5nfSB2YWx1ZQorICAgIFNwZWNpZmllcyB3aGF0IHBvbGljeSB0byBiZSBkZWxp
dmVyZWQuIFRoZSB2YWxpZCBrZXlzIGFyZToKKworICAgICAgInJlZmVycmVyUG9saWN5IgorICAg
ICAgICBSZWZlcnJlciBQb2xpY3kKKyAgICAgICAgaHR0cHM6Ly93M2MuZ2l0aHViLmlvL3dlYmFw
cHNlYy1yZWZlcnJlci1wb2xpY3kvCisgICAgICAgIFZhbGlkIHZhbHVlcyBhcmUgdGhvc2UgbGlz
dGVkIGluCisgICAgICAgIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby93ZWJhcHBzZWMtcmVmZXJyZXIt
cG9saWN5LyNyZWZlcnJlci1wb2xpY3kKKyAgICAgICAgKGV4Y2VwdCB0aGF0ICIiIGlzIHJlcHJl
c2VudGVkIGFzIG51bGwvTm9uZSkKKworICBBIFBvbGljeURlbGl2ZXJ5IGNhbiBiZSBzcGVjaWZp
ZWQgaW4gc2V2ZXJhbCB3YXlzOgorCisgIC0gKGZvciBbQV0pIEFzc29jaWF0ZWQgd2l0aCBhbiBp
bmRpdmlkdWFsIHN1YnJlc291cmNlIHJlcXVlc3QgYW5kCisgICAgc3BlY2lmaWVkIGluIGBTdWJy
ZXNvdXJjZS5wb2xpY2llc2AsCisgICAgZS5nLiByZWZlcnJlclBvbGljeSBhdHRyaWJ1dGVzIG9m
IERPTSBlbGVtZW50cy4KKyAgICBUaGlzIGlzIGhhbmRsZWQgaW4gaW52b2tlUmVxdWVzdCgpLgor
CisgIC0gKGZvciBbQl0pIEFzc29jaWF0ZWQgd2l0aCBhbiBuZXN0ZWQgZW52aXJvbm1lbnRhbCBz
ZXR0aW5ncyBvYmplY3QgYW5kCisgICAgc3BlY2lmaWVkIGluIGBTb3VyY2VDb250ZXh0LnBvbGlj
aWVzYCwKKyAgICBlLmcuIEhUVFAgcmVmZXJyZXItcG9saWN5IHJlc3BvbnNlIGhlYWRlcnMgb2Yg
SFRNTC93b3JrZXIgc2NyaXB0cy4KKyAgICBUaGlzIGlzIGhhbmRsZWQgaW4gc2VydmVyLXNpZGUg
dW5kZXIgL2NvbW1vbi9zZWN1cml0eS1mZWF0dXJlcy9zY29wZS8uCisKKyAgLSAoZm9yIFtCXSkg
QXNzb2NpYXRlZCB3aXRoIHRoZSB0b3AtbGV2ZWwgSFRNTCBkb2N1bWVudC4KKyAgICBUaGlzIGlz
IGhhbmRsZWQgYnkgdGhlIGdlbmVyYXRvcnMuZAorKi8KKworLyoqCisgIEB0eXBlZGVmIFN1YnJl
c291cmNlCisgIEB0eXBlIHtvYmplY3R9CisgIEEgU3VicmVzb3VyY2UgcmVwcmVzZW50cyBob3cg
YSBzdWJyZXNvdXJjZSByZXF1ZXN0IGlzIHNlbnQuCisKKyAgQHByb3BlcnR5e1N1YnJlc291cmNl
VHlwZX0gc3VicmVzb3VyY2VUeXBlCisgICAgSG93IHRoZSBzdWJyZXNvdXJjZSByZXF1ZXN0IGlz
IHNlbnQsCisgICAgZS5nLiAiaW1nLXRhZyIgZm9yIHNlbmRpbmcgYSByZXF1ZXN0IHZpYSA8aW1n
IHNyYz4uCisgICAgU2VlIHRoZSBrZXlzIG9mIGBzdWJyZXNvdXJjZU1hcGAgZm9yIHZhbGlkIHZh
bHVlcy4KKworICBAcHJvcGVydHl7c3RyaW5nfSB1cmwKKyAgICBzdWJyZXNvdXJjZSdzIFVSTC4K
KyAgICBUeXBpY2FsbHkgdGhpcyBpcyBjb25zdHJ1Y3RlZCBieSBnZXRSZXF1ZXN0VVJMcygpIGJl
bG93LgorCisgIEBwcm9wZXJ0eXtQb2xpY3lEZWxpdmVyeX0gcG9saWN5RGVsaXZlcmllcworICAg
IFBvbGljaWVzIGRlbGl2ZXJlZCBzcGVjaWZpYyB0byB0aGUgc3VicmVzb3VyY2UgcmVxdWVzdC4K
KyovCisKKy8qKgorICBAdHlwZWRlZiBTb3VyY2VDb250ZXh0CisgIEB0eXBlIHtvYmplY3R9Cisg
IFJlcXVlc3RzIGNhbiBiZSBwb3NzaWJseSBzZW50IGZyb20gdmFyaW91cyBraW5kcyBvZiBzb3Vy
Y2UgY29udGV4dHMsIGkuZS4KKyAgZmV0Y2ggY2xpZW50J3MgZW52aXJvbm1lbnQgc2V0dGluZ3Mg
b2JqZWN0czoKKyAgdG9wLWxldmVsIHdpbmRvd3MsIGlmcmFtZXMsIG9yIHdvcmtlcnMuCisgIEEg
U291cmNlQ29udGV4dCBvYmplY3Qgc3BlY2lmaWVzIG9uZSBlbnZpcm9ubWVudCBzZXR0aW5ncyBv
YmplY3QsIGFuZAorICBhbiBBcnJheTxTb3VyY2VDb250ZXh0PiBzcGVjaWZpZXMgYSBwb3NzaWJs
eSBuZXN0ZWQgY29udGV4dCwKKyAgZnJvbSB0aGUgb3V0ZXItbW9zdCB0byBpbm5lci1tb3N0IGVu
dmlyb25tZW50IHNldHRpbmdzIG9iamVjdHMuCisKKyAgRm9yIGV4YW1wbGU6CisgICAgW3tzb3Vy
Y2VDb250ZXh0VHlwZTogInNyY2RvYyJ9LCB7c291cmNlQ29udGV4dFR5cGU6ICJ3b3JrZXItY2xh
c3NpYyJ9XQorICBtZWFucyB0aGF0IGEgc3VicmVzb3VyY2UgcmVxdWVzdCBpcyB0byBiZSBzZW50
IGZyb20KKyAgYSBjbGFzc2ljIGRlZGljYXRlZCB3b3JrZXIgY3JlYXRlZCBmcm9tIDxpZnJhbWUg
c3JjZG9jPgorICBpbnNpZGUgdGhlIHRvcC1sZXZlbCBIVE1MIGRvY3VtZW50LgorICBOb3RlOiB0
aGUgdG9wLWxldmVsIGRvY3VtZW50IGlzIG5vdCBpbmNsdWRlZCBpbiB0aGUgYXJyYXkgYW5kCisg
IGlzIGFzc3VtZWQgaW1wbGljaXRseS4KKworICBTb3VyY2VDb250ZXh0IChvciBBcnJheTxTb3Vy
Y2VDb250ZXh0PikgaXMgc2V0IGJhc2VkIG9uCisgIHRoZSBmZXRjaCBjbGllbnQncyBzZXR0aW5n
cyBvYmplY3QgdGhhdCBpcyB1c2VkIGZvciB0aGUgc3VicmVzb3VyY2UgcmVxdWVzdCwKKyAgTk9U
IG9uIG1vZHVsZSBtYXAgc2V0dGluZ3Mgb2JqZWN0LCBhbmQKKyAgTk9UIG9uIHRoZSBpbm5lci1t
b3N0IHNldHRpbmdzIG9iamVjdCB0aGF0IGFwcGVhcnMgaW4gdGhlIHRlc3QuCisgIEZvciBleGFt
cGxlLCBBcnJheTxTb3VyY2VDb250ZXh0PiBpcyBgW11gIChpbmRpY2F0aW5nIHRoZSB0b3AgV2lu
ZG93KQorICBmb3IgYHdvcmtlci5qc2AKKyAgLSBXaGVuIGl0IGlzIHRoZSByb290IHdvcmtlciBz
Y3JpcHQ6IGBuZXcgV29ya2VyKCd3b3JrZXIuanMnKWAsIG9yCisgIC0gV2hlbiBpdCBpcyBpbXBv
cnRlZCBmcm9tIHRoZSByb290IHdvcmtlciBzY3JpcHQ6CisgICAgYG5ldyBXb3JrZXIoJ3RvcC5q
cycsIHt0eXBlOiAnbW9kdWxlJ30pYAorICAgIHdoZXJlIGB0b3AuanNgIGhhcyBgaW1wb3J0ICd3
b3JrZXIuanMnYC4KKyAgYmVjYXVzZSB0aGUgcmVxdWVzdCBmb3IgYHdvcmtlci5qc2AgdXNlcyB0
aGUgV2luZG93IGFzIGl0cyBmZXRjaCBjbGllbnQncworICBzZXR0aW5ncyBvYmplY3QsIHdoaWxl
IGEgV29ya2VyR2xvYmFsU2NvcGUgaXMgY3JlYXRlZCB0aG91Z2guCisKKyAgQHByb3BlcnR5IHtz
dHJpbmd9IHNvdXJjZUNvbnRleHRUeXBlCisgICAgS2luZCBvZiB0aGUgc291cmNlIGNvbnRleHQg
dG8gYmUgdXNlZC4KKyAgICBWYWxpZCB2YWx1ZXMgYXJlIHRoZSBrZXlzIG9mIGBzb3VyY2VDb250
ZXh0TWFwYCBiZWxvdy4KKworICBAcHJvcGVydHkge0FycmF5PFBvbGljeURlbGl2ZXJ5Pn0gcG9s
aWN5RGVsaXZlcmllcworICAgIEEgbGlzdCBvZiBQb2xpY3lEZWxpdmVyeSBhcHBsaWVkIHRvIHRo
ZSBzb3VyY2UgY29udGV4dC4KKyovCisKKy8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLy8gR2VuZXJhbCB1dGlsaXR5IGZ1
bmN0aW9ucworLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09CisKK2Z1bmN0aW9uIHRpbWVvdXRQcm9taXNlKHQsIG1zKSB7Cisg
IHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHsgdC5zdGVwX3RpbWVvdXQocmVzb2x2ZSwg
bXMpOyB9KTsKK30KKworLyoqCisgKiBOb3JtYWxpemVzIHRoZSB0YXJnZXQgcG9ydCBmb3IgdXNl
IGluIGEgVVJMLiBGb3IgZGVmYXVsdCBwb3J0cywgdGhpcyBpcyB0aGUKKyAqICAgICBlbXB0eSBz
dHJpbmcgKG9taXR0ZWQgcG9ydCksIG90aGVyd2lzZSBpdCdzIGEgY29sb24gZm9sbG93ZWQgYnkg
dGhlIHBvcnQKKyAqICAgICBudW1iZXIuIFBvcnRzIDgwLCA0NDMgYW5kIGFuIGVtcHR5IHN0cmlu
ZyBhcmUgcmVnYXJkZWQgYXMgZGVmYXVsdCBwb3J0cy4KKyAqIEBwYXJhbSB7bnVtYmVyfSB0YXJn
ZXRQb3J0IFRoZSBwb3J0IHRvIHVzZQorICogQHJldHVybiB7c3RyaW5nfSBUaGUgcG9ydCBwb3J0
aW9uIGZvciB1c2luZyBhcyBwYXJ0IG9mIGEgVVJMLgorICovCitmdW5jdGlvbiBnZXROb3JtYWxp
emVkUG9ydCh0YXJnZXRQb3J0KSB7CisgIHJldHVybiAoWzgwLCA0NDMsICIiXS5pbmRleE9mKHRh
cmdldFBvcnQpID49IDApID8gIiIgOiAiOiIgKyB0YXJnZXRQb3J0OworfQorCisvKioKKyAqIENy
ZWF0ZXMgYSBHVUlELgorICogICAgIFNlZTogaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kv
R2xvYmFsbHlfdW5pcXVlX2lkZW50aWZpZXIKKyAqICAgICBPcmlnaW5hbCBhdXRob3I6IGJyb29m
YSAoaHR0cDovL3d3dy5icm9vZmEuY29tLykKKyAqICAgICBTb3VyY2VkIGZyb206IGh0dHA6Ly9z
dGFja292ZXJmbG93LmNvbS9hLzIxMTc1MjMvNDk0OTcxNQorICogQHJldHVybiB7c3RyaW5nfSBB
IHBzZXVkby1yYW5kb20gR1VJRC4KKyAqLworZnVuY3Rpb24gZ3VpZCgpIHsKKyAgcmV0dXJuICd4
eHh4eHh4eC14eHh4LTR4eHgteXh4eC14eHh4eHh4eHh4eHgnLnJlcGxhY2UoL1t4eV0vZywgZnVu
Y3Rpb24oYykgeworICAgIHZhciByID0gTWF0aC5yYW5kb20oKSAqIDE2IHwgMCwgdiA9IGMgPT0g
J3gnID8gciA6IChyICYgMHgzIHwgMHg4KTsKKyAgICByZXR1cm4gdi50b1N0cmluZygxNik7Cisg
IH0pOworfQorCisvKioKKyAqIEluaXRpYXRlcyBhIG5ldyBYSFIgdmlhIEdFVC4KKyAqIEBwYXJh
bSB7c3RyaW5nfSB1cmwgVGhlIGVuZHBvaW50IFVSTCBmb3IgdGhlIFhIUi4KKyAqIEBwYXJhbSB7
c3RyaW5nfSByZXNwb25zZVR5cGUgT3B0aW9uYWwgLSBob3cgc2hvdWxkIHRoZSByZXNwb25zZSBi
ZSBwYXJzZWQuCisgKiAgICAgRGVmYXVsdCBpcyAianNvbiIuCisgKiAgICAgU2VlOiBodHRwczov
L3hoci5zcGVjLndoYXR3Zy5vcmcvI2RvbS14bWxodHRwcmVxdWVzdC1yZXNwb25zZXR5cGUKKyAq
IEByZXR1cm4ge1Byb21pc2V9IEEgcHJvbWlzZSB3cmFwcGluZyB0aGUgc3VjY2VzcyBhbmQgZXJy
b3IgZXZlbnRzLgorICovCitmdW5jdGlvbiB4aHJSZXF1ZXN0KHVybCwgcmVzcG9uc2VUeXBlKSB7
CisgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKKyAgICB2
YXIgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7CisgICAgeGhyLm9wZW4oJ0dFVCcsIHVybCwg
dHJ1ZSk7CisgICAgeGhyLnJlc3BvbnNlVHlwZSA9IHJlc3BvbnNlVHlwZSB8fCAianNvbiI7CisK
KyAgICB4aHIuYWRkRXZlbnRMaXN0ZW5lcigiZXJyb3IiLCBmdW5jdGlvbigpIHsKKyAgICAgIHJl
amVjdChFcnJvcigiTmV0d29yayBFcnJvciIpKTsKKyAgICB9KTsKKworICAgIHhoci5hZGRFdmVu
dExpc3RlbmVyKCJsb2FkIiwgZnVuY3Rpb24oKSB7CisgICAgICBpZiAoeGhyLnN0YXR1cyAhPSAy
MDApCisgICAgICAgIHJlamVjdChFcnJvcih4aHIuc3RhdHVzVGV4dCkpOworICAgICAgZWxzZQor
ICAgICAgICByZXNvbHZlKHhoci5yZXNwb25zZSk7CisgICAgfSk7CisKKyAgICB4aHIuc2VuZCgp
OworICB9KTsKK30KKworLyoqCisgKiBTZXRzIGF0dHJpYnV0ZXMgb24gYSBnaXZlbiBET00gZWxl
bWVudC4KKyAqIEBwYXJhbSB7RE9NRWxlbWVudH0gZWxlbWVudCBUaGUgZWxlbWVudCBvbiB3aGlj
aCB0byBzZXQgdGhlIGF0dHJpYnV0ZXMuCisgKiBAcGFyYW0ge29iamVjdH0gQW4gb2JqZWN0IHdp
dGgga2V5cyAoc2VydmluZyBhcyBhdHRyaWJ1dGUgbmFtZXMpIGFuZCB2YWx1ZXMuCisgKi8KK2Z1
bmN0aW9uIHNldEF0dHJpYnV0ZXMoZWwsIGF0dHJzKSB7CisgIGF0dHJzID0gYXR0cnMgfHwge30K
KyAgZm9yICh2YXIgYXR0ciBpbiBhdHRycykgeworICAgIGlmIChhdHRyICE9PSAnc3JjJykKKyAg
ICAgIGVsLnNldEF0dHJpYnV0ZShhdHRyLCBhdHRyc1thdHRyXSk7CisgIH0KKyAgLy8gV29ya2Fy
b3VuZCBmb3IgQ2hyb21pdW06IHNldCA8aW1nPidzIHNyYyBhdHRyaWJ1dGUgYWZ0ZXIgYWxsIG90
aGVyCisgIC8vIGF0dHJpYnV0ZXMgdG8gZW5zdXJlIHRoZSBwb2xpY3kgaXMgYXBwbGllZC4KKyAg
Zm9yICh2YXIgYXR0ciBpbiBhdHRycykgeworICAgIGlmIChhdHRyID09PSAnc3JjJykKKyAgICAg
IGVsLnNldEF0dHJpYnV0ZShhdHRyLCBhdHRyc1thdHRyXSk7CisgIH0KK30KKworLyoqCisgKiBC
aW5kcyB0byBzdWNjZXNzIGFuZCBlcnJvciBldmVudHMgb2YgYW4gb2JqZWN0IHdyYXBwaW5nIHRo
ZW0gaW50byBhIHByb21pc2UKKyAqICAgICBhdmFpbGFibGUgdGhyb3VnaCB7QGNvZGUgZWxlbWVu
dC5ldmVudFByb21pc2V9LiBUaGUgc3VjY2VzcyBldmVudAorICogICAgIHJlc29sdmVzIGFuZCBl
cnJvciBldmVudCByZWplY3RzLgorICogVGhpcyBtZXRob2QgYWRkcyBldmVudCBsaXN0ZW5lcnMs
IGFuZCB0aGVuIHJlbW92ZXMgYWxsIHRoZSBhZGRlZCBsaXN0ZW5lcnMKKyAqIHdoZW4gb25lIG9m
IGxpc3RlbmVkIGV2ZW50IGlzIGZpcmVkLgorICogQHBhcmFtIHtvYmplY3R9IGVsZW1lbnQgQW4g
b2JqZWN0IHN1cHBvcnRpbmcgZXZlbnRzIG9uIHdoaWNoIHRvIGJpbmQgdGhlCisgKiAgICAgcHJv
bWlzZS4KKyAqIEBwYXJhbSB7c3RyaW5nfSByZXNvbHZlRXZlbnROYW1lIFs9ImxvYWQiXSBUaGUg
ZXZlbnQgbmFtZSB0byBiaW5kIHJlc29sdmUgdG8uCisgKiBAcGFyYW0ge3N0cmluZ30gcmVqZWN0
RXZlbnROYW1lIFs9ImVycm9yIl0gVGhlIGV2ZW50IG5hbWUgdG8gYmluZCByZWplY3QgdG8uCisg
Ki8KK2Z1bmN0aW9uIGJpbmRFdmVudHMoZWxlbWVudCwgcmVzb2x2ZUV2ZW50TmFtZSwgcmVqZWN0
RXZlbnROYW1lKSB7CisgIGVsZW1lbnQuZXZlbnRQcm9taXNlID0KKyAgICAgIGJpbmRFdmVudHMy
KGVsZW1lbnQsIHJlc29sdmVFdmVudE5hbWUsIGVsZW1lbnQsIHJlamVjdEV2ZW50TmFtZSk7Cit9
CisKKy8vIFJldHVybnMgYSBwcm9taXNlIHdyYXBwaW5nIHN1Y2Nlc3MgYW5kIGVycm9yIGV2ZW50
cyBvZiBvYmplY3RzLgorLy8gVGhpcyBpcyBhIHZhcmlhbnQgb2YgYmluZEV2ZW50cyB0aGF0IGNh
biBhY2NlcHQgc2VwYXJhdGUgb2JqZWN0cyBmb3IgZWFjaAorLy8gZXZlbnRzIGFuZCB0d28gZXZl
bnRzIHRvIHJlamVjdCwgYW5kIGRvZXNuJ3Qgc2V0IGBldmVudFByb21pc2VgLgorLy8KKy8vIFdo
ZW4gYHJlc29sdmVPYmplY3RgJ3MgYHJlc29sdmVFdmVudE5hbWVgIGV2ZW50IChkZWZhdWx0OiAi
bG9hZCIpIGlzCisvLyBmaXJlZCwgdGhlIHByb21pc2UgaXMgcmVzb2x2ZWQgd2l0aCB0aGUgZXZl
bnQuCisvLworLy8gV2hlbiBgcmVqZWN0T2JqZWN0YCdzIGByZWplY3RFdmVudE5hbWVgIGV2ZW50
IChkZWZhdWx0OiAiZXJyb3IiKSBvcgorLy8gYHJlamVjdE9iamVjdDJgJ3MgYHJlamVjdEV2ZW50
TmFtZTJgIGV2ZW50IChkZWZhdWx0OiAiZXJyb3IiKSBpcworLy8gZmlyZWQsIHRoZSBwcm9taXNl
IGlzIHJlamVjdGVkLgorLy8KKy8vIGByZWplY3RPYmplY3QyYCBpcyBvcHRpb25hbC4KK2Z1bmN0
aW9uIGJpbmRFdmVudHMyKHJlc29sdmVPYmplY3QsIHJlc29sdmVFdmVudE5hbWUsIHJlamVjdE9i
amVjdCwgcmVqZWN0RXZlbnROYW1lLCByZWplY3RPYmplY3QyLCByZWplY3RFdmVudE5hbWUyKSB7
CisgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKKyAgICBj
b25zdCBhY3R1YWxSZXNvbHZlRXZlbnROYW1lID0gcmVzb2x2ZUV2ZW50TmFtZSB8fCAibG9hZCI7
CisgICAgY29uc3QgYWN0dWFsUmVqZWN0RXZlbnROYW1lID0gcmVqZWN0RXZlbnROYW1lIHx8ICJl
cnJvciI7CisgICAgY29uc3QgYWN0dWFsUmVqZWN0RXZlbnROYW1lMiA9IHJlamVjdEV2ZW50TmFt
ZTIgfHwgImVycm9yIjsKKworICAgIGNvbnN0IHJlc29sdmVIYW5kbGVyID0gZnVuY3Rpb24oZXZl
bnQpIHsKKyAgICAgIGNsZWFudXAoKTsKKyAgICAgIHJlc29sdmUoZXZlbnQpOworICAgIH07CisK
KyAgICBjb25zdCByZWplY3RIYW5kbGVyID0gZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgIC8vIENo
cm9taXVtIHN0YXJ0cyBwcm9wYWdhdGluZyBlcnJvcnMgZnJvbSB3b3JrZXIub25lcnJvciB0bwor
ICAgICAgLy8gd2luZG93Lm9uZXJyb3IuIFRoaXMgaGFuZGxlcyB0aGUgdW5jYXVnaHQgZXhjZXB0
aW9ucyBpbiB0ZXN0cy4KKyAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7CisgICAgICBjbGVh
bnVwKCk7CisgICAgICByZWplY3QoZXZlbnQpOworICAgIH07CisKKyAgICBjb25zdCBjbGVhbnVw
ID0gZnVuY3Rpb24oKSB7CisgICAgICByZXNvbHZlT2JqZWN0LnJlbW92ZUV2ZW50TGlzdGVuZXIo
YWN0dWFsUmVzb2x2ZUV2ZW50TmFtZSwgcmVzb2x2ZUhhbmRsZXIpOworICAgICAgcmVqZWN0T2Jq
ZWN0LnJlbW92ZUV2ZW50TGlzdGVuZXIoYWN0dWFsUmVqZWN0RXZlbnROYW1lLCByZWplY3RIYW5k
bGVyKTsKKyAgICAgIGlmIChyZWplY3RPYmplY3QyKSB7CisgICAgICAgIHJlamVjdE9iamVjdDIu
cmVtb3ZlRXZlbnRMaXN0ZW5lcihhY3R1YWxSZWplY3RFdmVudE5hbWUyLCByZWplY3RIYW5kbGVy
KTsKKyAgICAgIH0KKyAgICB9OworCisgICAgcmVzb2x2ZU9iamVjdC5hZGRFdmVudExpc3RlbmVy
KGFjdHVhbFJlc29sdmVFdmVudE5hbWUsIHJlc29sdmVIYW5kbGVyKTsKKyAgICByZWplY3RPYmpl
Y3QuYWRkRXZlbnRMaXN0ZW5lcihhY3R1YWxSZWplY3RFdmVudE5hbWUsIHJlamVjdEhhbmRsZXIp
OworICAgIGlmIChyZWplY3RPYmplY3QyKSB7CisgICAgICByZWplY3RPYmplY3QyLmFkZEV2ZW50
TGlzdGVuZXIoYWN0dWFsUmVqZWN0RXZlbnROYW1lMiwgcmVqZWN0SGFuZGxlcik7CisgICAgfQor
ICB9KTsKK30KKworLyoqCisgKiBDcmVhdGVzIGEgbmV3IERPTSBlbGVtZW50LgorICogQHBhcmFt
IHtzdHJpbmd9IHRhZ05hbWUgVGhlIHR5cGUgb2YgdGhlIERPTSBlbGVtZW50LgorICogQHBhcmFt
IHtvYmplY3R9IGF0dHJzIEEgSlNPTiB3aXRoIGF0dHJpYnV0ZXMgdG8gYXBwbHkgdG8gdGhlIGVs
ZW1lbnQuCisgKiBAcGFyYW0ge0RPTUVsZW1lbnR9IHBhcmVudCBPcHRpb25hbCAtIGFuIGV4aXN0
aW5nIERPTSBlbGVtZW50IHRvIGFwcGVuZCB0bworICogICAgIElmIG5vdCBwcm92aWRlZCwgdGhl
IHJldHVybmVkIGVsZW1lbnQgd2lsbCByZW1haW4gb3JwaGFuZWQuCisgKiBAcGFyYW0ge2Jvb2xl
YW59IGRvQmluZEV2ZW50cyBPcHRpb25hbCAtIFdoZXRoZXIgdG8gYmluZCB0byBsb2FkIGFuZCBl
cnJvcgorICogICAgIGV2ZW50cyBhbmQgcHJvdmlkZSB0aGUgcHJvbWlzZSB3cmFwcGluZyB0aGUg
ZXZlbnRzIHZpYSB0aGUgZWxlbWVudCdzCisgKiAgICAge0Bjb2RlIGV2ZW50UHJvbWlzZX0gcHJv
cGVydHkuIERlZmF1bHQgdmFsdWUgZXZhbHVhdGVzIHRvIGZhbHNlLgorICogQHJldHVybiB7RE9N
RWxlbWVudH0gVGhlIG5ld2x5IGNyZWF0ZWQgRE9NIGVsZW1lbnQuCisgKi8KK2Z1bmN0aW9uIGNy
ZWF0ZUVsZW1lbnQodGFnTmFtZSwgYXR0cnMsIHBhcmVudE5vZGUsIGRvQmluZEV2ZW50cykgewor
ICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGFnTmFtZSk7CisKKyAgaWYg
KGRvQmluZEV2ZW50cykKKyAgICBiaW5kRXZlbnRzKGVsZW1lbnQpOworCisgIC8vIFdlIHNldCB0
aGUgYXR0cmlidXRlcyBhZnRlciBiaW5kaW5nIHRvIGV2ZW50cyB0byBjYXRjaCBhbnkKKyAgLy8g
ZXZlbnQtdHJpZ2dlcmluZyBhdHRyaWJ1dGUgY2hhbmdlcy4gRS5nLiBmb3JtIHN1Ym1pc3Npb24u
CisgIC8vCisgIC8vIEJ1dCBiZSBjYXJlZnVsIHdpdGggaW1hZ2VzOiB1bmxpa2Ugb3RoZXIgZWxl
bWVudHMgdGhleSB3aWxsIHN0YXJ0IHRoZSBsb2FkCisgIC8vIGFzIHNvb24gYXMgdGhlIGF0dHIg
aXMgc2V0LCBldmVuIGlmIG5vdCBpbiB0aGUgZG9jdW1lbnQgeWV0LCBhbmQgc29tZXRpbWVzCisg
IC8vIGNvbXBsZXRlIGl0IHN5bmNocm9ub3VzbHksIHNvIHRoZSBhcHBlbmQgZG9lc24ndCBoYXZl
IHRoZSBlZmZlY3Qgd2Ugd2FudC4KKyAgLy8gU28gZm9yIGltYWdlcywgd2Ugd2FudCB0byBzZXQg
dGhlIGF0dHJzIGFmdGVyIGFwcGVuZGluZywgd2hlcmVhcyBmb3Igb3RoZXIKKyAgLy8gZWxlbWVu
dHMgd2Ugd2FudCB0byBkbyBpdCBiZWZvcmUgYXBwZW5kaW5nLgorICB2YXIgaXNJbWcgPSAodGFn
TmFtZSA9PSAiaW1nIik7CisgIGlmICghaXNJbWcpCisgICAgc2V0QXR0cmlidXRlcyhlbGVtZW50
LCBhdHRycyk7CisKKyAgaWYgKHBhcmVudE5vZGUpCisgICAgcGFyZW50Tm9kZS5hcHBlbmRDaGls
ZChlbGVtZW50KTsKKworICBpZiAoaXNJbWcpCisgICAgc2V0QXR0cmlidXRlcyhlbGVtZW50LCBh
dHRycyk7CisKKyAgcmV0dXJuIGVsZW1lbnQ7Cit9CisKK2Z1bmN0aW9uIGNyZWF0ZVJlcXVlc3RW
aWFFbGVtZW50KHRhZ05hbWUsIGF0dHJzLCBwYXJlbnROb2RlKSB7CisgIHJldHVybiBjcmVhdGVF
bGVtZW50KHRhZ05hbWUsIGF0dHJzLCBwYXJlbnROb2RlLCB0cnVlKS5ldmVudFByb21pc2U7Cit9
CisKKy8qKgorICogQ3JlYXRlcyBhIG5ldyBlbXB0eSBpZnJhbWUgYW5kIGFwcGVuZHMgaXQgdG8g
e0Bjb2RlIGRvY3VtZW50LmJvZHl9IC4KKyAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lIFRoZSBuYW1l
IGFuZCBJRCBvZiB0aGUgbmV3IGlmcmFtZS4KKyAqIEBwYXJhbSB7Ym9vbGVhbn0gZG9CaW5kRXZl
bnRzIFdoZXRoZXIgdG8gYmluZCBsb2FkIGFuZCBlcnJvciBldmVudHMuCisgKiBAcmV0dXJuIHtE
T01FbGVtZW50fSBUaGUgbmV3bHkgY3JlYXRlZCBpZnJhbWUuCisgKi8KK2Z1bmN0aW9uIGNyZWF0
ZUhlbHBlcklmcmFtZShuYW1lLCBkb0JpbmRFdmVudHMpIHsKKyAgcmV0dXJuIGNyZWF0ZUVsZW1l
bnQoImlmcmFtZSIsCisgICAgICAgICAgICAgICAgICAgICAgIHsibmFtZSI6IG5hbWUsICJpZCI6
IG5hbWV9LAorICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LAorICAgICAgICAg
ICAgICAgICAgICAgICBkb0JpbmRFdmVudHMpOworfQorCitmdW5jdGlvbiB3cmFwUmVzdWx0KHNl
cnZlcl9kYXRhKSB7CisgIGlmICh0eXBlb2Yoc2VydmVyX2RhdGEpID09PSAic3RyaW5nIikgewor
ICAgIHRocm93IHNlcnZlcl9kYXRhOworICB9CisgIHJldHVybiB7CisgICAgcmVmZXJyZXI6IHNl
cnZlcl9kYXRhLmhlYWRlcnMucmVmZXJlciwKKyAgICBoZWFkZXJzOiBzZXJ2ZXJfZGF0YS5oZWFk
ZXJzCisgIH0KK30KKworLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09CisvLyBTdWJyZXNvdXJjZXMKKy8vID09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisv
KioKKyAgQHR5cGVkZWYgUmVxdWVzdFJlc3VsdAorICBAdHlwZSB7b2JqZWN0fQorICBSZXByZXNl
bnRzIHRoZSByZXN1bHQgb2Ygc2VuZGluZyBhbiByZXF1ZXN0LgorICBBbGwgcHJvcGVydGllcyBh
cmUgb3B0aW9uYWwuIFNlZSB0aGUgY29tbWVudHMgZm9yCisgIHJlcXVlc3RWaWEqKCkgYW5kIGlu
dm9rZVJlcXVlc3QoKSBiZWxvdyB0byBzZWUgd2hpY2ggcHJvcGVydGllcyBhcmUgc2V0LgorCisg
IEBwcm9wZXJ0eSB7QXJyYXk8T2JqZWN0PHN0cmluZywgc3RyaW5nPj59IGhlYWRlcnMKKyAgICBI
VFRQIHJlcXVlc3QgaGVhZGVycyBzZW50IHRvIHNlcnZlci4KKyAgQHByb3BlcnR5IHtzdHJpbmd9
IHJlZmVycmVyIC0gUmVmZXJyZXIuCisgIEBwcm9wZXJ0eSB7c3RyaW5nfSBsb2NhdGlvbiAtIFRo
ZSBVUkwgb2YgdGhlIHN1YnJlc291cmNlLgorICBAcHJvcGVydHkge3N0cmluZ30gc291cmNlQ29u
dGV4dFVybAorICAgIHRoZSBVUkwgb2YgdGhlIGdsb2JhbCBvYmplY3Qgd2hlcmUgdGhlIGFjdHVh
bCByZXF1ZXN0IGlzIHNlbnQuCisqLworCisvKioKKyAgcmVxdWVzdFZpYSoodXJsLCBhZGRpdGlv
bmFsQXR0cmlidXRlcykgZnVuY3Rpb25zIHNlbmQgYSBzdWJyZXNvdXJjZQorICByZXF1ZXN0IGZy
b20gdGhlIGN1cnJlbnQgZW52aXJvbm1lbnQgc2V0dGluZ3Mgb2JqZWN0LgorCisgIEBwYXJhbSB7
c3RyaW5nfSB1cmwKKyAgICBUaGUgVVJMIG9mIHRoZSBzdWJyZXNvdXJjZS4KKyAgQHBhcmFtIHtP
YmplY3Q8c3RyaW5nLCBzdHJpbmc+fSBhZGRpdGlvbmFsQXR0cmlidXRlcworICAgIEFkZGl0aW9u
YWwgYXR0cmlidXRlcyBzZXQgdG8gRE9NIGVsZW1lbnRzCisgICAgKGVsZW1lbnQtaW5pdGlhdGVk
IHJlcXVlc3RzIG9ubHkpLgorCisgIEByZXR1cm5zIHtQcm9taXNlfSB0aGF0IGFyZSByZXNvbHZl
ZCB3aXRoIGEgUmVxdWVzdFJlc3VsdCBvYmplY3QKKyAgb24gc3VjY2Vzc2Z1bCByZXF1ZXN0cy4K
KworICAtIENhdGVnb3J5IDE6CisgICAgICBgaGVhZGVyc2A6IHNldC4KKyAgICAgIGByZWZlcnJl
cmA6IHNldCB2aWEgYGRvY3VtZW50LnJlZmVycmVyYC4KKyAgICAgIGBsb2NhdGlvbmA6IHNldCB2
aWEgYGRvY3VtZW50LmxvY2F0aW9uYC4KKyAgICAgIFNlZSBgdGVtcGxhdGUvZG9jdW1lbnQuaHRt
bC50ZW1wbGF0ZWAuCisgIC0gQ2F0ZWdvcnkgMjoKKyAgICAgIGBoZWFkZXJzYDogc2V0LgorICAg
ICAgYHJlZmVycmVyYDogc2V0IHRvIGBoZWFkZXJzLnJlZmVyZXJgIGJ5IGB3cmFwUmVzdWx0KClg
LgorICAgICAgYGxvY2F0aW9uYDogbm90IHNldC4KKyAgLSBDYXRlZ29yeSAzOgorICAgICAgQWxs
IHRoZSBrZXlzIGxpc3RlZCBhYm92ZSBhcmUgTk9UIHNldC4KKyAgYHNvdXJjZUNvbnRleHRVcmxg
IGlzIG5vdCBzZXQgaGVyZS4KKworICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAt
LS0tLS0tLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICBGdW5jdGlvbiBuYW1lICAgICAg
ICAgICAgICAgICAgICBDYXRlZ29yeSBVc2VkIGluCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIC0tLS0tLS0tIC0tLS0tLS0gLS0tLS0tLS0tCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZmVycmVyIG1peGVkLSAgdXBncmFk
ZS0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9saWN5ICAg
Y29udGVudCBpbnNlY3VyZS0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcG9saWN5ICAgY29udGVudCByZXF1ZXN0CisgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tIC0tLS0tLS0tIC0tLS0tLS0tIC0tLS0tLS0gLS0tLS0tLS0tCisgIHJlcXVlc3RW
aWFBbmNob3IgICAgICAgICAgICAgICAgIDEgICAgICAgIFkgICAgICAgIFkgICAgICAgLQorICBy
ZXF1ZXN0VmlhQXJlYSAgICAgICAgICAgICAgICAgICAxICAgICAgICBZICAgICAgICBZICAgICAg
IC0KKyAgcmVxdWVzdFZpYUF1ZGlvICAgICAgICAgICAgICAgICAgMyAgICAgICAgLSAgICAgICAg
WSAgICAgICAtCisgIHJlcXVlc3RWaWFEZWRpY2F0ZWRXb3JrZXIgICAgICAgIDIgICAgICAgIFkg
ICAgICAgIFkgICAgICAgWQorICByZXF1ZXN0VmlhRmV0Y2ggICAgICAgICAgICAgICAgICAyICAg
ICAgICBZICAgICAgICBZICAgICAgIC0KKyAgcmVxdWVzdFZpYUZvcm0gICAgICAgICAgICAgICAg
ICAgMyAgICAgICAgLSAgICAgICAgWSAgICAgICAtCisgIHJlcXVlc3RWaWFJZnJhbWUgICAgICAg
ICAgICAgICAgIDEgICAgICAgIFkgICAgICAgIFkgICAgICAgLQorICByZXF1ZXN0VmlhSW1hZ2Ug
ICAgICAgICAgICAgICAgICAyICAgICAgICBZICAgICAgICBZICAgICAgIC0KKyAgcmVxdWVzdFZp
YUxpbmtQcmVmZXRjaCAgICAgICAgICAgMyAgICAgICAgLSAgICAgICAgWSAgICAgICAtCisgIHJl
cXVlc3RWaWFMaW5rU3R5bGVzaGVldCAgICAgICAgIDMgICAgICAgIC0gICAgICAgIFkgICAgICAg
LQorICByZXF1ZXN0VmlhT2JqZWN0ICAgICAgICAgICAgICAgICAzICAgICAgICAtICAgICAgICBZ
ICAgICAgIC0KKyAgcmVxdWVzdFZpYVBpY3R1cmUgICAgICAgICAgICAgICAgMyAgICAgICAgLSAg
ICAgICAgWSAgICAgICAtCisgIHJlcXVlc3RWaWFTY3JpcHQgICAgICAgICAgICAgICAgIDIgICAg
ICAgIFkgICAgICAgIFkgICAgICAgLQorICByZXF1ZXN0VmlhU2VuZEJlYWNvbiAgICAgICAgICAg
ICAzICAgICAgICAtICAgICAgICBZICAgICAgIC0KKyAgcmVxdWVzdFZpYVNoYXJlZFdvcmtlciAg
ICAgICAgICAgMiAgICAgICAgWSAgICAgICAgLSAgICAgICAtCisgIHJlcXVlc3RWaWFWaWRlbyAg
ICAgICAgICAgICAgICAgIDMgICAgICAgIC0gICAgICAgIFkgICAgICAgLQorICByZXF1ZXN0Vmlh
V2ViU29ja2V0ICAgICAgICAgICAgICAzICAgICAgICAtICAgICAgICBZICAgICAgIC0KKyAgcmVx
dWVzdFZpYVdvcmtsZXQgICAgICAgICAgICAgICAgMyAgICAgICAgLSAgICAgICAgWSAgICAgICBZ
CisgIHJlcXVlc3RWaWFYaHIgICAgICAgICAgICAgICAgICAgIDIgICAgICAgIFkgICAgICAgIFkg
ICAgICAgLQorICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAtLS0tLS0tLSAtLS0t
LS0tLSAtLS0tLS0tIC0tLS0tLS0tLQorKi8KKworLyoqCisgKiBDcmVhdGVzIGEgbmV3IGlmcmFt
ZSwgYmluZHMgbG9hZCBhbmQgZXJyb3IgZXZlbnRzLCBzZXRzIHRoZSBzcmMgYXR0cmlidXRlIGFu
ZAorICogICAgIGFwcGVuZHMgaXQgdG8ge0Bjb2RlIGRvY3VtZW50LmJvZHl9IC4KKyAqIEBwYXJh
bSB7c3RyaW5nfSB1cmwgVGhlIHNyYyBmb3IgdGhlIGlmcmFtZS4KKyAqIEByZXR1cm4ge1Byb21p
c2V9IFRoZSBwcm9taXNlIGZvciBzdWNjZXNzL2Vycm9yIGV2ZW50cy4KKyAqLworZnVuY3Rpb24g
cmVxdWVzdFZpYUlmcmFtZSh1cmwsIGFkZGl0aW9uYWxBdHRyaWJ1dGVzKSB7CisgIGNvbnN0IGlm
cmFtZSA9IGNyZWF0ZUVsZW1lbnQoCisgICAgICAiaWZyYW1lIiwKKyAgICAgIE9iamVjdC5hc3Np
Z24oeyJzcmMiOiB1cmx9LCBhZGRpdGlvbmFsQXR0cmlidXRlcyksCisgICAgICBkb2N1bWVudC5i
b2R5LAorICAgICAgZmFsc2UpOworICByZXR1cm4gYmluZEV2ZW50czIod2luZG93LCAibWVzc2Fn
ZSIsIGlmcmFtZSwgImVycm9yIiwgd2luZG93LCAiZXJyb3IiKQorICAgICAgLnRoZW4oZXZlbnQg
PT4geworICAgICAgICAgIGlmIChldmVudC5zb3VyY2UgIT09IGlmcmFtZS5jb250ZW50V2luZG93
KQorICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KG5ldyBFcnJvcignVW5leHBlY3Rl
ZCBldmVudC5zb3VyY2UnKSk7CisgICAgICAgICAgcmV0dXJuIGV2ZW50LmRhdGE7CisgICAgICAg
IH0pOworfQorCisvKioKKyAqIENyZWF0ZXMgYSBuZXcgaW1hZ2UsIGJpbmRzIGxvYWQgYW5kIGVy
cm9yIGV2ZW50cywgc2V0cyB0aGUgc3JjIGF0dHJpYnV0ZSBhbmQKKyAqICAgICBhcHBlbmRzIGl0
IHRvIHtAY29kZSBkb2N1bWVudC5ib2R5fSAuCisgKiBAcGFyYW0ge3N0cmluZ30gdXJsIFRoZSBz
cmMgZm9yIHRoZSBpbWFnZS4KKyAqIEByZXR1cm4ge1Byb21pc2V9IFRoZSBwcm9taXNlIGZvciBz
dWNjZXNzL2Vycm9yIGV2ZW50cy4KKyAqLworZnVuY3Rpb24gcmVxdWVzdFZpYUltYWdlKHVybCwg
YWRkaXRpb25hbEF0dHJpYnV0ZXMpIHsKKyAgY29uc3QgaW1nID0gY3JlYXRlRWxlbWVudCgKKyAg
ICAgICJpbWciLAorICAgICAgLy8gY3Jvc3NPcmlnaW4gYXR0cmlidXRlIGlzIGFkZGVkIHRvIHJl
YWQgdGhlIHBpeGVsIGRhdGEgb2YgdGhlIHJlc3BvbnNlLgorICAgICAgT2JqZWN0LmFzc2lnbih7
InNyYyI6IHVybCwgImNyb3NzT3JpZ2luIjogIkFub255bW91cyJ9LCBhZGRpdGlvbmFsQXR0cmli
dXRlcyksCisgICAgICBkb2N1bWVudC5ib2R5LCB0cnVlKTsKKyAgcmV0dXJuIGltZy5ldmVudFBy
b21pc2UudGhlbigoKSA9PiB3cmFwUmVzdWx0KGRlY29kZUltYWdlRGF0YShpbWcpKSk7Cit9CisK
Ky8vIEhlbHBlciBmb3IgcmVxdWVzdFZpYUltYWdlKCkuCitmdW5jdGlvbiBkZWNvZGVJbWFnZURh
dGEoaW1nKSB7CisgIHZhciBjYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMi
KTsKKyAgdmFyIGNvbnRleHQgPSBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKTsKKyAgY29udGV4dC5k
cmF3SW1hZ2UoaW1nLCAwLCAwKTsKKyAgdmFyIGltZ0RhdGEgPSBjb250ZXh0LmdldEltYWdlRGF0
YSgwLCAwLCBpbWcuY2xpZW50V2lkdGgsIGltZy5jbGllbnRIZWlnaHQpOworICBjb25zdCByZ2Jh
ID0gaW1nRGF0YS5kYXRhOworCisgIGxldCBkZWNvZGVkQnl0ZXMgPSBuZXcgVWludDhDbGFtcGVk
QXJyYXkocmdiYS5sZW5ndGgpOworICBsZXQgZGVjb2RlZExlbmd0aCA9IDA7CisKKyAgZm9yICh2
YXIgaSA9IDA7IGkgKyAxMiA8PSByZ2JhLmxlbmd0aDsgaSArPSAxMikgeworICAgIC8vIEEgc2lu
Z2xlIGJ5dGUgaXMgZW5jb2RlZCBpbiB0aHJlZSBwaXhlbHMuIDggcGl4ZWwgb2N0ZXRzIChhbW9u
ZworICAgIC8vIDkgb2N0ZXRzID0gMyBwaXhlbHMgKiAzIGNoYW5uZWxzKSBhcmUgdXNlZCB0byBl
bmNvZGUgOCBiaXRzLAorICAgIC8vIHRoZSBtb3N0IHNpZ25pZmljYW50IGJpdCBmaXJzdCwgd2hl
cmUgYDBgIGFuZCBgMjU1YCBpbiBwaXhlbCB2YWx1ZXMKKyAgICAvLyByZXByZXNlbnQgYDBgIGFu
ZCBgMWAgaW4gYml0cywgcmVzcGVjdGl2ZWx5LgorICAgIC8vIFRoaXMgZW5jb2RpbmcgaXMgdXNl
ZCB0byBhdm9pZCBlcnJvcnMgZHVlIHRvIGRpZmZlcmVudCBjb2xvciBzcGFjZXMuCisgICAgY29u
c3QgYml0cyA9IFtdOworICAgIGZvciAobGV0IGogPSAwOyBqIDwgMzsgKytqKSB7CisgICAgICBi
aXRzLnB1c2gocmdiYVtpICsgaiAqIDQgKyAwXSk7CisgICAgICBiaXRzLnB1c2gocmdiYVtpICsg
aiAqIDQgKyAxXSk7CisgICAgICBiaXRzLnB1c2gocmdiYVtpICsgaiAqIDQgKyAyXSk7CisgICAg
ICAvLyByZ2JhW2kgKyBqICogNCArIDNdOiBTa2lwIGFscGhhIGNoYW5uZWwuCisgICAgfQorICAg
IC8vIFRoZSBsYXN0IG9uZSBlbGVtZW50IGlzIG5vdCB1c2VkLgorICAgIGJpdHMucG9wKCk7CisK
KyAgICAvLyBEZWNvZGUgYSBzaW5nbGUgYnl0ZS4KKyAgICBsZXQgYnl0ZSA9IDA7CisgICAgZm9y
IChsZXQgaiA9IDA7IGogPCA4OyArK2opIHsKKyAgICAgIGJ5dGUgPDw9IDE7CisgICAgICBpZiAo
Yml0c1tqXSA+PSAxMjgpCisgICAgICAgIGJ5dGUgfD0gMTsKKyAgICB9CisKKyAgICAvLyBaZXJv
IGlzIHRoZSBzdHJpbmcgdGVybWluYXRvci4KKyAgICBpZiAoYnl0ZSA9PSAwKQorICAgICAgYnJl
YWs7CisKKyAgICBkZWNvZGVkQnl0ZXNbZGVjb2RlZExlbmd0aCsrXSA9IGJ5dGU7CisgIH0KKwor
ICAvLyBSZW1vdmUgdHJhaWxpbmcgbnVsbHMgZnJvbSBkYXRhLgorICBkZWNvZGVkQnl0ZXMgPSBk
ZWNvZGVkQnl0ZXMuc3ViYXJyYXkoMCwgZGVjb2RlZExlbmd0aCk7CisgIHZhciBzdHJpbmdfZGF0
YSA9IChuZXcgVGV4dERlY29kZXIoImFzY2lpIikpLmRlY29kZShkZWNvZGVkQnl0ZXMpOworCisg
IHJldHVybiBKU09OLnBhcnNlKHN0cmluZ19kYXRhKTsKK30KKworLyoqCisgKiBJbml0aWF0ZXMg
YSBuZXcgWEhSIEdFVCByZXF1ZXN0IHRvIHByb3ZpZGVkIFVSTC4KKyAqIEBwYXJhbSB7c3RyaW5n
fSB1cmwgVGhlIGVuZHBvaW50IFVSTCBmb3IgdGhlIFhIUi4KKyAqIEByZXR1cm4ge1Byb21pc2V9
IFRoZSBwcm9taXNlIGZvciBzdWNjZXNzL2Vycm9yIGV2ZW50cy4KKyAqLworZnVuY3Rpb24gcmVx
dWVzdFZpYVhocih1cmwpIHsKKyAgcmV0dXJuIHhoclJlcXVlc3QodXJsKS50aGVuKHJlc3VsdCA9
PiB3cmFwUmVzdWx0KHJlc3VsdCkpOworfQorCisvKioKKyAqIEluaXRpYXRlcyBhIG5ldyBHRVQg
cmVxdWVzdCB0byBwcm92aWRlZCBVUkwgdmlhIHRoZSBGZXRjaCBBUEkuCisgKiBAcGFyYW0ge3N0
cmluZ30gdXJsIFRoZSBlbmRwb2ludCBVUkwgZm9yIHRoZSBGZXRjaC4KKyAqIEByZXR1cm4ge1By
b21pc2V9IFRoZSBwcm9taXNlIGZvciBzdWNjZXNzL2Vycm9yIGV2ZW50cy4KKyAqLworZnVuY3Rp
b24gcmVxdWVzdFZpYUZldGNoKHVybCkgeworICByZXR1cm4gZmV0Y2godXJsKQorICAgIC50aGVu
KHJlcyA9PiByZXMuanNvbigpKQorICAgIC50aGVuKGogPT4gd3JhcFJlc3VsdChqKSk7Cit9CisK
K2Z1bmN0aW9uIGRlZGljYXRlZFdvcmtlclVybFRoYXRGZXRjaGVzKHVybCkgeworICByZXR1cm4g
YGRhdGE6dGV4dC9qYXZhc2NyaXB0LAorICAgIGZldGNoKCcke3VybH0nKQorICAgICAgLnRoZW4o
ciA9PiByLmpzb24oKSkKKyAgICAgIC50aGVuKGogPT4gcG9zdE1lc3NhZ2UoaikpCisgICAgICAu
Y2F0Y2goKGUpID0+IHBvc3RNZXNzYWdlKGUubWVzc2FnZSkpO2A7Cit9CisKK2Z1bmN0aW9uIHdv
cmtlclVybFRoYXRJbXBvcnRzKHVybCkgeworICByZXR1cm4gYGRhdGE6dGV4dC9qYXZhc2NyaXB0
LGltcG9ydCAnJHt1cmx9JztgOworfQorCisvKioKKyAqIENyZWF0ZXMgYSBuZXcgV29ya2VyLCBi
aW5kcyBtZXNzYWdlIGFuZCBlcnJvciBldmVudHMgd3JhcHBpbmcgdGhlbSBpbnRvLgorICogICAg
IHtAY29kZSB3b3JrZXIuZXZlbnRQcm9taXNlfSBhbmQgcG9zdHMgYW4gZW1wdHkgc3RyaW5nIG1l
c3NhZ2UgdG8gc3RhcnQKKyAqICAgICB0aGUgd29ya2VyLgorICogQHBhcmFtIHtzdHJpbmd9IHVy
bCBUaGUgZW5kcG9pbnQgVVJMIGZvciB0aGUgd29ya2VyIHNjcmlwdC4KKyAqIEBwYXJhbSB7b2Jq
ZWN0fSBvcHRpb25zIFRoZSBvcHRpb25zIGZvciBXb3JrZXIgY29uc3RydWN0b3IuCisgKiBAcmV0
dXJuIHtQcm9taXNlfSBUaGUgcHJvbWlzZSBmb3Igc3VjY2Vzcy9lcnJvciBldmVudHMuCisgKi8K
K2Z1bmN0aW9uIHJlcXVlc3RWaWFEZWRpY2F0ZWRXb3JrZXIodXJsLCBvcHRpb25zKSB7CisgIHZh
ciB3b3JrZXI7CisgIHRyeSB7CisgICAgd29ya2VyID0gbmV3IFdvcmtlcih1cmwsIG9wdGlvbnMp
OworICB9IGNhdGNoIChlKSB7CisgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KGUpOworICB9Cisg
IHdvcmtlci5wb3N0TWVzc2FnZSgnJyk7CisgIHJldHVybiBiaW5kRXZlbnRzMih3b3JrZXIsICJt
ZXNzYWdlIiwgd29ya2VyLCAiZXJyb3IiKQorICAgIC50aGVuKGV2ZW50ID0+IHdyYXBSZXN1bHQo
ZXZlbnQuZGF0YSkpOworfQorCitmdW5jdGlvbiByZXF1ZXN0VmlhU2hhcmVkV29ya2VyKHVybCkg
eworICB2YXIgd29ya2VyOworICB0cnkgeworICAgIHdvcmtlciA9IG5ldyBTaGFyZWRXb3JrZXIo
dXJsKTsKKyAgfSBjYXRjaChlKSB7CisgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KGUpOworICB9
CisgIGNvbnN0IHByb21pc2UgPSBiaW5kRXZlbnRzMih3b3JrZXIucG9ydCwgIm1lc3NhZ2UiLCB3
b3JrZXIsICJlcnJvciIpCisgICAgLnRoZW4oZXZlbnQgPT4gd3JhcFJlc3VsdChldmVudC5kYXRh
KSk7CisgIHdvcmtlci5wb3J0LnN0YXJ0KCk7CisgIHJldHVybiBwcm9taXNlOworfQorCisvLyBS
ZXR1cm5zIGEgcmVmZXJlbmNlIHRvIGEgd29ya2xldCBvYmplY3QgY29ycmVzcG9uZGluZyB0byBh
IGdpdmVuIHR5cGUuCitmdW5jdGlvbiBnZXRfd29ya2xldCh0eXBlKSB7CisgIGlmICh0eXBlID09
ICdhbmltYXRpb24nKQorICAgIHJldHVybiBDU1MuYW5pbWF0aW9uV29ya2xldDsKKyAgaWYgKHR5
cGUgPT0gJ2xheW91dCcpCisgICAgcmV0dXJuIENTUy5sYXlvdXRXb3JrbGV0OworICBpZiAodHlw
ZSA9PSAncGFpbnQnKQorICAgIHJldHVybiBDU1MucGFpbnRXb3JrbGV0OworICBpZiAodHlwZSA9
PSAnYXVkaW8nKQorICAgIHJldHVybiBuZXcgT2ZmbGluZUF1ZGlvQ29udGV4dCgyLDQ0MTAwKjQw
LDQ0MTAwKS5hdWRpb1dvcmtsZXQ7CisKKyAgdGhyb3cgbmV3IEVycm9yKCd1bmtub3duIHdvcmts
ZXQgdHlwZSBpcyBwYXNzZWQuJyk7Cit9CisKK2Z1bmN0aW9uIHJlcXVlc3RWaWFXb3JrbGV0KHR5
cGUsIHVybCkgeworICB0cnkgeworICAgIHJldHVybiBnZXRfd29ya2xldCh0eXBlKS5hZGRNb2R1
bGUodXJsKTsKKyAgfSBjYXRjaCAoZSkgeworICAgIHJldHVybiBQcm9taXNlLnJlamVjdChlKTsK
KyAgfQorfQorCisvKioKKyAqIFNldHMgdGhlIGhyZWYgYXR0cmlidXRlIG9uIGEgbmF2aWdhYmxl
IERPTSBlbGVtZW50IGFuZCBwZXJmb3JtcyBhIG5hdmlnYXRpb24KKyAqICAgICBieSBjbGlja2lu
ZyBpdC4gVG8gYXZvaWQgbmF2aWdhdGluZyBhd2F5IGZyb20gdGhlIGN1cnJlbnQgZXhlY3V0aW9u
CisgKiAgICAgY29udGV4dCwgYSB0YXJnZXQgYXR0cmlidXRlIGlzIHNldCB0byBwb2ludCB0byBh
IG5ldyBoZWxwZXIgaWZyYW1lLgorICogQHBhcmFtIHtET01FbGVtZW50fSBuYXZpZ2FibGVFbGVt
ZW50IFRoZSBuYXZpZ2FibGUgRE9NRWxlbWVudAorICogQHBhcmFtIHtzdHJpbmd9IHVybCBUaGUg
aHJlZiBmb3IgdGhlIG5hdmlnYWJsZSBlbGVtZW50LgorICogQHJldHVybiB7UHJvbWlzZX0gVGhl
IHByb21pc2UgZm9yIHN1Y2Nlc3MvZXJyb3IgZXZlbnRzLgorICovCitmdW5jdGlvbiByZXF1ZXN0
VmlhTmF2aWdhYmxlKG5hdmlnYWJsZUVsZW1lbnQsIHVybCkgeworICB2YXIgaWZyYW1lID0gY3Jl
YXRlSGVscGVySWZyYW1lKGd1aWQoKSwgZmFsc2UpOworICBzZXRBdHRyaWJ1dGVzKG5hdmlnYWJs
ZUVsZW1lbnQsCisgICAgICAgICAgICAgICAgeyJocmVmIjogdXJsLAorICAgICAgICAgICAgICAg
ICAidGFyZ2V0IjogaWZyYW1lLm5hbWV9KTsKKworICBjb25zdCBwcm9taXNlID0KKyAgICBiaW5k
RXZlbnRzMih3aW5kb3csICJtZXNzYWdlIiwgaWZyYW1lLCAiZXJyb3IiLCB3aW5kb3csICJlcnJv
ciIpCisgICAgICAudGhlbihldmVudCA9PiB7CisgICAgICAgICAgaWYgKGV2ZW50LnNvdXJjZSAh
PT0gaWZyYW1lLmNvbnRlbnRXaW5kb3cpCisgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWpl
Y3QobmV3IEVycm9yKCdVbmV4cGVjdGVkIGV2ZW50LnNvdXJjZScpKTsKKyAgICAgICAgICByZXR1
cm4gZXZlbnQuZGF0YTsKKyAgICAgICAgfSk7CisgIG5hdmlnYWJsZUVsZW1lbnQuY2xpY2soKTsK
KyAgcmV0dXJuIHByb21pc2U7Cit9CisKKy8qKgorICogQ3JlYXRlcyBhIG5ldyBhbmNob3IgZWxl
bWVudCwgYXBwZW5kcyBpdCB0byB7QGNvZGUgZG9jdW1lbnQuYm9keX0gYW5kCisgKiAgICAgcGVy
Zm9ybXMgdGhlIG5hdmlnYXRpb24uCisgKiBAcGFyYW0ge3N0cmluZ30gdXJsIFRoZSBVUkwgdG8g
bmF2aWdhdGUgdG8uCisgKiBAcmV0dXJuIHtQcm9taXNlfSBUaGUgcHJvbWlzZSBmb3Igc3VjY2Vz
cy9lcnJvciBldmVudHMuCisgKi8KK2Z1bmN0aW9uIHJlcXVlc3RWaWFBbmNob3IodXJsLCBhZGRp
dGlvbmFsQXR0cmlidXRlcykgeworICB2YXIgYSA9IGNyZWF0ZUVsZW1lbnQoCisgICAgICAiYSIs
CisgICAgICBPYmplY3QuYXNzaWduKHsiaW5uZXJIVE1MIjogIkxpbmsgdG8gcmVzb3VyY2UifSwg
YWRkaXRpb25hbEF0dHJpYnV0ZXMpLAorICAgICAgZG9jdW1lbnQuYm9keSk7CisKKyAgcmV0dXJu
IHJlcXVlc3RWaWFOYXZpZ2FibGUoYSwgdXJsKTsKK30KKworLyoqCisgKiBDcmVhdGVzIGEgbmV3
IGFyZWEgZWxlbWVudCwgYXBwZW5kcyBpdCB0byB7QGNvZGUgZG9jdW1lbnQuYm9keX0gYW5kIHBl
cmZvcm1zCisgKiAgICAgdGhlIG5hdmlnYXRpb24uCisgKiBAcGFyYW0ge3N0cmluZ30gdXJsIFRo
ZSBVUkwgdG8gbmF2aWdhdGUgdG8uCisgKiBAcmV0dXJuIHtQcm9taXNlfSBUaGUgcHJvbWlzZSBm
b3Igc3VjY2Vzcy9lcnJvciBldmVudHMuCisgKi8KK2Z1bmN0aW9uIHJlcXVlc3RWaWFBcmVhKHVy
bCwgYWRkaXRpb25hbEF0dHJpYnV0ZXMpIHsKKyAgdmFyIGFyZWEgPSBjcmVhdGVFbGVtZW50KAor
ICAgICAgImFyZWEiLAorICAgICAgT2JqZWN0LmFzc2lnbih7fSwgYWRkaXRpb25hbEF0dHJpYnV0
ZXMpLAorICAgICAgZG9jdW1lbnQuYm9keSk7CisKKyAgLy8gVE9ETyhrcmlzdGlqYW5idXJuaWsp
OiBBcHBlbmQgdG8gbWFwIGFuZCBhZGQgaW1hZ2UuCisgIHJldHVybiByZXF1ZXN0VmlhTmF2aWdh
YmxlKGFyZWEsIHVybCk7Cit9CisKKy8qKgorICogQ3JlYXRlcyBhIG5ldyBzY3JpcHQgZWxlbWVu
dCwgc2V0cyB0aGUgc3JjIHRvIHVybCwgYW5kIGFwcGVuZHMgaXQgdG8KKyAqICAgICB7QGNvZGUg
ZG9jdW1lbnQuYm9keX0uCisgKiBAcGFyYW0ge3N0cmluZ30gdXJsIFRoZSBzcmMgVVJMLgorICog
QHJldHVybiB7UHJvbWlzZX0gVGhlIHByb21pc2UgZm9yIHN1Y2Nlc3MvZXJyb3IgZXZlbnRzLgor
ICovCitmdW5jdGlvbiByZXF1ZXN0VmlhU2NyaXB0KHVybCwgYWRkaXRpb25hbEF0dHJpYnV0ZXMp
IHsKKyAgY29uc3Qgc2NyaXB0ID0gY3JlYXRlRWxlbWVudCgKKyAgICAgICJzY3JpcHQiLAorICAg
ICAgT2JqZWN0LmFzc2lnbih7InNyYyI6IHVybH0sIGFkZGl0aW9uYWxBdHRyaWJ1dGVzKSwKKyAg
ICAgIGRvY3VtZW50LmJvZHksCisgICAgICBmYWxzZSk7CisKKyAgcmV0dXJuIGJpbmRFdmVudHMy
KHdpbmRvdywgIm1lc3NhZ2UiLCBzY3JpcHQsICJlcnJvciIsIHdpbmRvdywgImVycm9yIikKKyAg
ICAudGhlbihldmVudCA9PiB3cmFwUmVzdWx0KGV2ZW50LmRhdGEpKTsKK30KKworLyoqCisgKiBD
cmVhdGVzIGEgbmV3IGZvcm0gZWxlbWVudCwgc2V0cyBhdHRyaWJ1dGVzLCBhcHBlbmRzIGl0IHRv
CisgKiAgICAge0Bjb2RlIGRvY3VtZW50LmJvZHl9IGFuZCBzdWJtaXRzIHRoZSBmb3JtLgorICog
QHBhcmFtIHtzdHJpbmd9IHVybCBUaGUgVVJMIHRvIHN1Ym1pdCB0by4KKyAqIEByZXR1cm4ge1By
b21pc2V9IFRoZSBwcm9taXNlIGZvciBzdWNjZXNzL2Vycm9yIGV2ZW50cy4KKyAqLworZnVuY3Rp
b24gcmVxdWVzdFZpYUZvcm0odXJsKSB7CisgIHZhciBpZnJhbWUgPSBjcmVhdGVIZWxwZXJJZnJh
bWUoZ3VpZCgpKTsKKyAgdmFyIGZvcm0gPSBjcmVhdGVFbGVtZW50KCJmb3JtIiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHsiYWN0aW9uIjogdXJsLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJtZXRob2QiOiAiUE9TVCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgInRh
cmdldCI6IGlmcmFtZS5uYW1lfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50
LmJvZHkpOworICBiaW5kRXZlbnRzKGlmcmFtZSk7CisgIGZvcm0uc3VibWl0KCk7CisKKyAgcmV0
dXJuIGlmcmFtZS5ldmVudFByb21pc2U7Cit9CisKKy8qKgorICogQ3JlYXRlcyBhIG5ldyBsaW5r
IGVsZW1lbnQgZm9yIGEgc3R5bGVzaGVldCwgYmluZHMgbG9hZCBhbmQgZXJyb3IgZXZlbnRzLAor
ICogICAgIHNldHMgdGhlIGhyZWYgdG8gdXJsIGFuZCBhcHBlbmRzIGl0IHRvIHtAY29kZSBkb2N1
bWVudC5oZWFkfS4KKyAqIEBwYXJhbSB7c3RyaW5nfSB1cmwgVGhlIFVSTCBmb3IgYSBzdHlsZXNo
ZWV0LgorICogQHJldHVybiB7UHJvbWlzZX0gVGhlIHByb21pc2UgZm9yIHN1Y2Nlc3MvZXJyb3Ig
ZXZlbnRzLgorICovCitmdW5jdGlvbiByZXF1ZXN0VmlhTGlua1N0eWxlc2hlZXQodXJsKSB7Cisg
IHJldHVybiBjcmVhdGVSZXF1ZXN0VmlhRWxlbWVudCgibGluayIsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB7InJlbCI6ICJzdHlsZXNoZWV0IiwgImhyZWYiOiB1cmx9LAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuaGVhZCk7Cit9CisKKy8qKgor
ICogQ3JlYXRlcyBhIG5ldyBsaW5rIGVsZW1lbnQgZm9yIGEgcHJlZmV0Y2gsIGJpbmRzIGxvYWQg
YW5kIGVycm9yIGV2ZW50cywgc2V0cworICogICAgIHRoZSBocmVmIHRvIHVybCBhbmQgYXBwZW5k
cyBpdCB0byB7QGNvZGUgZG9jdW1lbnQuaGVhZH0uCisgKiBAcGFyYW0ge3N0cmluZ30gdXJsIFRo
ZSBVUkwgb2YgYSByZXNvdXJjZSB0byBwcmVmZXRjaC4KKyAqIEByZXR1cm4ge1Byb21pc2V9IFRo
ZSBwcm9taXNlIGZvciBzdWNjZXNzL2Vycm9yIGV2ZW50cy4KKyAqLworZnVuY3Rpb24gcmVxdWVz
dFZpYUxpbmtQcmVmZXRjaCh1cmwpIHsKKyAgdmFyIGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCdsaW5rJyk7CisgIGlmIChsaW5rLnJlbExpc3QgJiYgbGluay5yZWxMaXN0LnN1cHBvcnRz
ICYmIGxpbmsucmVsTGlzdC5zdXBwb3J0cygicHJlZmV0Y2giKSkgeworICAgIHJldHVybiBjcmVh
dGVSZXF1ZXN0VmlhRWxlbWVudCgibGluayIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHsicmVsIjogInByZWZldGNoIiwgImhyZWYiOiB1cmx9LAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5oZWFkKTsKKyAgfSBlbHNlIHsKKyAgICByZXR1
cm4gUHJvbWlzZS5yZWplY3QoIlRoaXMgYnJvd3NlciBkb2VzIG5vdCBzdXBwb3J0ICdwcmVmZXRj
aCcuIik7CisgIH0KK30KKworLyoqCisgKiBJbml0aWF0ZXMgYSBuZXcgYmVhY29uIHJlcXVlc3Qu
CisgKiBAcGFyYW0ge3N0cmluZ30gdXJsIFRoZSBVUkwgb2YgYSByZXNvdXJjZSB0byBwcmVmZXRj
aC4KKyAqIEByZXR1cm4ge1Byb21pc2V9IFRoZSBwcm9taXNlIGZvciBzdWNjZXNzL2Vycm9yIGV2
ZW50cy4KKyAqLworYXN5bmMgZnVuY3Rpb24gcmVxdWVzdFZpYVNlbmRCZWFjb24odXJsKSB7Cisg
IGZ1bmN0aW9uIHdhaXQobXMpIHsKKyAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiBz
dGVwX3RpbWVvdXQocmVzb2x2ZSwgbXMpKTsKKyAgfQorICBpZiAoIW5hdmlnYXRvci5zZW5kQmVh
Y29uKHVybCkpIHsKKyAgICAvLyBJZiBtaXhlZC1jb250ZW50IGNoZWNrIGZhaWxzLCBpdCBzaG91
bGQgcmV0dXJuIGZhbHNlLgorICAgIHRocm93IG5ldyBFcnJvcignc2VuZEJlYWNvbigpIGZhaWxz
LicpOworICB9CisgIC8vIFdlIGRvbid0IGhhdmUgYSBtZWFucyB0byBzZWUgdGhlIHJlc3VsdCBv
ZiBzZW5kQmVhY29uKCkgcmVxdWVzdAorICAvLyBmb3Igc3VyZS4gTGV0J3Mgd2FpdCBmb3IgYSB3
aGlsZSBhbmQgbGV0IHRoZSBnZW5lcmljIHRlc3QgZnVuY3Rpb24KKyAgLy8gYXNrIHRoZSBzZXJ2
ZXIgZm9yIHRoZSByZXN1bHQuCisgIGF3YWl0IHdhaXQoNTAwKTsKKyAgcmV0dXJuICdhbGxvd2Vk
JzsKK30KKworLyoqCisgKiBDcmVhdGVzIGEgbmV3IG1lZGlhIGVsZW1lbnQgd2l0aCBhIGNoaWxk
IHNvdXJjZSBlbGVtZW50LCBiaW5kcyBsb2FkZWRkYXRhIGFuZAorICogICAgIGVycm9yIGV2ZW50
cywgc2V0cyBhdHRyaWJ1dGVzIGFuZCBhcHBlbmRzIHRvIGRvY3VtZW50LmJvZHkuCisgKiBAcGFy
YW0ge3N0cmluZ30gdHlwZSBUaGUgdHlwZSBvZiB0aGUgbWVkaWEgZWxlbWVudCAoYXVkaW8vdmlk
ZW8vcGljdHVyZSkuCisgKiBAcGFyYW0ge29iamVjdH0gbWVkaWFfYXR0cnMgVGhlIGF0dHJpYnV0
ZXMgZm9yIHRoZSBtZWRpYSBlbGVtZW50LgorICogQHBhcmFtIHtvYmplY3R9IHNvdXJjZV9hdHRy
cyBUaGUgYXR0cmlidXRlcyBmb3IgdGhlIGNoaWxkIHNvdXJjZSBlbGVtZW50LgorICogQHJldHVy
biB7RE9NRWxlbWVudH0gVGhlIG5ld2x5IGNyZWF0ZWQgbWVkaWEgZWxlbWVudC4KKyAqLworZnVu
Y3Rpb24gY3JlYXRlTWVkaWFFbGVtZW50KHR5cGUsIG1lZGlhX2F0dHJzLCBzb3VyY2VfYXR0cnMp
IHsKKyAgdmFyIG1lZGlhRWxlbWVudCA9IGNyZWF0ZUVsZW1lbnQodHlwZSwge30pOworCisgIHZh
ciBzb3VyY2VFbGVtZW50ID0gY3JlYXRlRWxlbWVudCgic291cmNlIiwge30pOworCisgIG1lZGlh
RWxlbWVudC5ldmVudFByb21pc2UgPSBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWpl
Y3QpIHsKKyAgICBtZWRpYUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibG9hZGVkZGF0YSIsIGZ1
bmN0aW9uIChlKSB7CisgICAgICByZXNvbHZlKGUpOworICAgIH0pOworCisgICAgLy8gU2FmYXJp
IGRvZXNuJ3QgZmlyZSBhbiBgZXJyb3JgIGV2ZW50IHdoZW4gYmxvY2tpbmcgbWl4ZWQgY29udGVu
dC4KKyAgICBtZWRpYUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigic3RhbGxlZCIsIGZ1bmN0aW9u
KGUpIHsKKyAgICAgIHJlamVjdChlKTsKKyAgICB9KTsKKworICAgIHNvdXJjZUVsZW1lbnQuYWRk
RXZlbnRMaXN0ZW5lcigiZXJyb3IiLCBmdW5jdGlvbihlKSB7CisgICAgICByZWplY3QoZSk7Cisg
ICAgfSk7CisgIH0pOworCisgIHNldEF0dHJpYnV0ZXMobWVkaWFFbGVtZW50LCBtZWRpYV9hdHRy
cyk7CisgIHNldEF0dHJpYnV0ZXMoc291cmNlRWxlbWVudCwgc291cmNlX2F0dHJzKTsKKworICBt
ZWRpYUVsZW1lbnQuYXBwZW5kQ2hpbGQoc291cmNlRWxlbWVudCk7CisgIGRvY3VtZW50LmJvZHku
YXBwZW5kQ2hpbGQobWVkaWFFbGVtZW50KTsKKworICByZXR1cm4gbWVkaWFFbGVtZW50OworfQor
CisvKioKKyAqIENyZWF0ZXMgYSBuZXcgdmlkZW8gZWxlbWVudCwgYmluZHMgbG9hZGVkZGF0YSBh
bmQgZXJyb3IgZXZlbnRzLCBzZXRzCisgKiAgICAgYXR0cmlidXRlcyBhbmQgc291cmNlIFVSTCBh
bmQgYXBwZW5kcyB0byB7QGNvZGUgZG9jdW1lbnQuYm9keX0uCisgKiBAcGFyYW0ge3N0cmluZ30g
dXJsIFRoZSBVUkwgb2YgdGhlIHZpZGVvLgorICogQHJldHVybiB7UHJvbWlzZX0gVGhlIHByb21p
c2UgZm9yIHN1Y2Nlc3MvZXJyb3IgZXZlbnRzLgorICovCitmdW5jdGlvbiByZXF1ZXN0VmlhVmlk
ZW8odXJsKSB7CisgIHJldHVybiBjcmVhdGVNZWRpYUVsZW1lbnQoInZpZGVvIiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB7fSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB7InNy
YyI6IHVybH0pLmV2ZW50UHJvbWlzZTsKK30KKworLyoqCisgKiBDcmVhdGVzIGEgbmV3IGF1ZGlv
IGVsZW1lbnQsIGJpbmRzIGxvYWRlZGRhdGEgYW5kIGVycm9yIGV2ZW50cywgc2V0cworICogICAg
IGF0dHJpYnV0ZXMgYW5kIHNvdXJjZSBVUkwgYW5kIGFwcGVuZHMgdG8ge0Bjb2RlIGRvY3VtZW50
LmJvZHl9LgorICogQHBhcmFtIHtzdHJpbmd9IHVybCBUaGUgVVJMIG9mIHRoZSBhdWRpby4KKyAq
IEByZXR1cm4ge1Byb21pc2V9IFRoZSBwcm9taXNlIGZvciBzdWNjZXNzL2Vycm9yIGV2ZW50cy4K
KyAqLworZnVuY3Rpb24gcmVxdWVzdFZpYUF1ZGlvKHVybCkgeworICByZXR1cm4gY3JlYXRlTWVk
aWFFbGVtZW50KCJhdWRpbyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAge30sCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgeyJ0eXBlIjogImF1ZGlvL3dhdiIsICJzcmMiOiB1cmx9
KS5ldmVudFByb21pc2U7Cit9CisKKy8qKgorICogQ3JlYXRlcyBhIG5ldyBwaWN0dXJlIGVsZW1l
bnQsIGJpbmRzIGxvYWRlZGRhdGEgYW5kIGVycm9yIGV2ZW50cywgc2V0cworICogICAgIGF0dHJp
YnV0ZXMgYW5kIHNvdXJjZSBVUkwgYW5kIGFwcGVuZHMgdG8ge0Bjb2RlIGRvY3VtZW50LmJvZHl9
LiBBbHNvCisgKiAgICAgY3JlYXRlcyBuZXcgaW1hZ2UgZWxlbWVudCBhcHBlbmRpbmcgaXQgdG8g
dGhlIHBpY3R1cmUKKyAqIEBwYXJhbSB7c3RyaW5nfSB1cmwgVGhlIFVSTCBvZiB0aGUgaW1hZ2Ug
Zm9yIHRoZSBzb3VyY2UgYW5kIGltYWdlIGVsZW1lbnRzLgorICogQHJldHVybiB7UHJvbWlzZX0g
VGhlIHByb21pc2UgZm9yIHN1Y2Nlc3MvZXJyb3IgZXZlbnRzLgorICovCitmdW5jdGlvbiByZXF1
ZXN0VmlhUGljdHVyZSh1cmwpIHsKKyAgdmFyIHBpY3R1cmUgPSBjcmVhdGVNZWRpYUVsZW1lbnQo
InBpY3R1cmUiLCB7fSwgeyJzcmNzZXQiOiB1cmwsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAidHlwZSI6ICJpbWFnZS9wbmcifSk7CisgIHJldHVybiBj
cmVhdGVSZXF1ZXN0VmlhRWxlbWVudCgiaW1nIiwgeyJzcmMiOiB1cmx9LCBwaWN0dXJlKTsKK30K
KworLyoqCisgKiBDcmVhdGVzIGEgbmV3IG9iamVjdCBlbGVtZW50LCBiaW5kcyBsb2FkIGFuZCBl
cnJvciBldmVudHMsIHNldHMgdGhlIGRhdGEgdG8KKyAqICAgICB1cmwsIGFuZCBhcHBlbmRzIGl0
IHRvIHtAY29kZSBkb2N1bWVudC5ib2R5fS4KKyAqIEBwYXJhbSB7c3RyaW5nfSB1cmwgVGhlIGRh
dGEgVVJMLgorICogQHJldHVybiB7UHJvbWlzZX0gVGhlIHByb21pc2UgZm9yIHN1Y2Nlc3MvZXJy
b3IgZXZlbnRzLgorICovCitmdW5jdGlvbiByZXF1ZXN0VmlhT2JqZWN0KHVybCkgeworICByZXR1
cm4gY3JlYXRlUmVxdWVzdFZpYUVsZW1lbnQoIm9iamVjdCIsIHsiZGF0YSI6IHVybCwgInR5cGUi
OiAidGV4dC9odG1sIn0sIGRvY3VtZW50LmJvZHkpOworfQorCisvKioKKyAqIENyZWF0ZXMgYSBu
ZXcgV2ViU29ja2V0IHBvaW50aW5nIHRvIHtAY29kZSB1cmx9IGFuZCBzZW5kcyBhIG1lc3NhZ2Ug
c3RyaW5nCisgKiAiZWNobyIuIFRoZSB7QGNvZGUgbWVzc2FnZX0gYW5kIHtAY29kZSBlcnJvcn0g
ZXZlbnRzIGFyZSB0cmlnZ2VyaW5nIHRoZQorICogcmV0dXJuZWQgcHJvbWlzZSByZXNvbHZlL3Jl
amVjdCBldmVudHMuCisgKiBAcGFyYW0ge3N0cmluZ30gdXJsIFRoZSBVUkwgZm9yIFdlYlNvY2tl
dCB0byBjb25uZWN0IHRvLgorICogQHJldHVybiB7UHJvbWlzZX0gVGhlIHByb21pc2UgZm9yIHN1
Y2Nlc3MvZXJyb3IgZXZlbnRzLgorICovCitmdW5jdGlvbiByZXF1ZXN0VmlhV2ViU29ja2V0KHVy
bCkgeworICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7Cisg
ICAgdmFyIHdlYnNvY2tldCA9IG5ldyBXZWJTb2NrZXQodXJsKTsKKworICAgIHdlYnNvY2tldC5h
ZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgZnVuY3Rpb24oZSkgeworICAgICAgcmVzb2x2ZShl
LmRhdGEpOworICAgIH0pOworCisgICAgd2Vic29ja2V0LmFkZEV2ZW50TGlzdGVuZXIoIm9wZW4i
LCBmdW5jdGlvbihlKSB7CisgICAgICB3ZWJzb2NrZXQuc2VuZCgiZWNobyIpOworICAgIH0pOwor
CisgICAgd2Vic29ja2V0LmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIiwgZnVuY3Rpb24oZSkgewor
ICAgICAgcmVqZWN0KGUpCisgICAgfSk7CisgIH0pCisgIC50aGVuKGRhdGEgPT4geworICAgICAg
cmV0dXJuIEpTT04ucGFyc2UoZGF0YSk7CisgICAgfSk7Cit9CisKKy8qKgorICBAdHlwZWRlZiBT
dWJyZXNvdXJjZVR5cGUKKyAgQHR5cGUge3N0cmluZ30KKworICBSZXByZXNlbnRzIGhvdyBhIHN1
YnJlc291cmNlIGlzIHNlbnQuCisgIFRoZSBrZXlzIG9mIGBzdWJyZXNvdXJjZU1hcGAgYmVsb3cg
YXJlIHRoZSB2YWxpZCB2YWx1ZXMuCisqLworCisvLyBTdWJyZXNvdXJjZSBwYXRocyBhbmQgaW52
b2tlcnMuCitjb25zdCBzdWJyZXNvdXJjZU1hcCA9IHsKKyAgImEtdGFnIjogeworICAgIHBhdGg6
ICIvY29tbW9uL3NlY3VyaXR5LWZlYXR1cmVzL3N1YnJlc291cmNlL2RvY3VtZW50LnB5IiwKKyAg
ICBpbnZva2VyOiByZXF1ZXN0VmlhQW5jaG9yLAorICB9LAorICAiYXJlYS10YWciOiB7CisgICAg
cGF0aDogIi9jb21tb24vc2VjdXJpdHktZmVhdHVyZXMvc3VicmVzb3VyY2UvZG9jdW1lbnQucHki
LAorICAgIGludm9rZXI6IHJlcXVlc3RWaWFBcmVhLAorICB9LAorICAiYXVkaW8tdGFnIjogewor
ICAgIHBhdGg6ICIvY29tbW9uL3NlY3VyaXR5LWZlYXR1cmVzL3N1YnJlc291cmNlL2F1ZGlvLnB5
IiwKKyAgICBpbnZva2VyOiByZXF1ZXN0VmlhQXVkaW8sCisgIH0sCisgICJiZWFjb24iOiB7Cisg
ICAgcGF0aDogIi9jb21tb24vc2VjdXJpdHktZmVhdHVyZXMvc3VicmVzb3VyY2UvZW1wdHkucHki
LAorICAgIGludm9rZXI6IHJlcXVlc3RWaWFTZW5kQmVhY29uLAorICB9LAorICAiZmV0Y2giOiB7
CisgICAgcGF0aDogIi9jb21tb24vc2VjdXJpdHktZmVhdHVyZXMvc3VicmVzb3VyY2UveGhyLnB5
IiwKKyAgICBpbnZva2VyOiByZXF1ZXN0VmlhRmV0Y2gsCisgIH0sCisgICJmb3JtLXRhZyI6IHsK
KyAgICBwYXRoOiAiL2NvbW1vbi9zZWN1cml0eS1mZWF0dXJlcy9zdWJyZXNvdXJjZS9lbXB0eS5w
eSIsCisgICAgaW52b2tlcjogcmVxdWVzdFZpYUZvcm0sCisgIH0sCisgICJpZnJhbWUtdGFnIjog
eworICAgIHBhdGg6ICIvY29tbW9uL3NlY3VyaXR5LWZlYXR1cmVzL3N1YnJlc291cmNlL2RvY3Vt
ZW50LnB5IiwKKyAgICBpbnZva2VyOiByZXF1ZXN0VmlhSWZyYW1lLAorICB9LAorICAiaW1nLXRh
ZyI6IHsKKyAgICBwYXRoOiAiL2NvbW1vbi9zZWN1cml0eS1mZWF0dXJlcy9zdWJyZXNvdXJjZS9p
bWFnZS5weSIsCisgICAgaW52b2tlcjogcmVxdWVzdFZpYUltYWdlLAorICB9LAorICAibGluay1j
c3MtdGFnIjogeworICAgIHBhdGg6ICIvY29tbW9uL3NlY3VyaXR5LWZlYXR1cmVzL3N1YnJlc291
cmNlL2VtcHR5LnB5IiwKKyAgICBpbnZva2VyOiByZXF1ZXN0VmlhTGlua1N0eWxlc2hlZXQsCisg
IH0sCisgICJsaW5rLXByZWZldGNoLXRhZyI6IHsKKyAgICBwYXRoOiAiL2NvbW1vbi9zZWN1cml0
eS1mZWF0dXJlcy9zdWJyZXNvdXJjZS9lbXB0eS5weSIsCisgICAgaW52b2tlcjogcmVxdWVzdFZp
YUxpbmtQcmVmZXRjaCwKKyAgfSwKKyAgIm9iamVjdC10YWciOiB7CisgICAgcGF0aDogIi9jb21t
b24vc2VjdXJpdHktZmVhdHVyZXMvc3VicmVzb3VyY2UvZW1wdHkucHkiLAorICAgIGludm9rZXI6
IHJlcXVlc3RWaWFPYmplY3QsCisgIH0sCisgICJwaWN0dXJlLXRhZyI6IHsKKyAgICBwYXRoOiAi
L2NvbW1vbi9zZWN1cml0eS1mZWF0dXJlcy9zdWJyZXNvdXJjZS9pbWFnZS5weSIsCisgICAgaW52
b2tlcjogcmVxdWVzdFZpYVBpY3R1cmUsCisgIH0sCisgICJzY3JpcHQtdGFnIjogeworICAgIHBh
dGg6ICIvY29tbW9uL3NlY3VyaXR5LWZlYXR1cmVzL3N1YnJlc291cmNlL3NjcmlwdC5weSIsCisg
ICAgaW52b2tlcjogcmVxdWVzdFZpYVNjcmlwdCwKKyAgfSwKKyAgInZpZGVvLXRhZyI6IHsKKyAg
ICBwYXRoOiAiL2NvbW1vbi9zZWN1cml0eS1mZWF0dXJlcy9zdWJyZXNvdXJjZS92aWRlby5weSIs
CisgICAgaW52b2tlcjogcmVxdWVzdFZpYVZpZGVvLAorICB9LAorICAieGhyIjogeworICAgIHBh
dGg6ICIvY29tbW9uL3NlY3VyaXR5LWZlYXR1cmVzL3N1YnJlc291cmNlL3hoci5weSIsCisgICAg
aW52b2tlcjogcmVxdWVzdFZpYVhociwKKyAgfSwKKworICAid29ya2VyLWNsYXNzaWMiOiB7Cisg
ICAgcGF0aDogIi9jb21tb24vc2VjdXJpdHktZmVhdHVyZXMvc3VicmVzb3VyY2Uvd29ya2VyLnB5
IiwKKyAgICBpbnZva2VyOiB1cmwgPT4gcmVxdWVzdFZpYURlZGljYXRlZFdvcmtlcih1cmwpLAor
ICB9LAorICAid29ya2VyLW1vZHVsZSI6IHsKKyAgICBwYXRoOiAiL2NvbW1vbi9zZWN1cml0eS1m
ZWF0dXJlcy9zdWJyZXNvdXJjZS93b3JrZXIucHkiLAorICAgIGludm9rZXI6IHVybCA9PiByZXF1
ZXN0VmlhRGVkaWNhdGVkV29ya2VyKHVybCwge3R5cGU6ICJtb2R1bGUifSksCisgIH0sCisgICJ3
b3JrZXItaW1wb3J0LWRhdGEiOiB7CisgICAgcGF0aDogIi9jb21tb24vc2VjdXJpdHktZmVhdHVy
ZXMvc3VicmVzb3VyY2Uvd29ya2VyLnB5IiwKKyAgICBpbnZva2VyOiB1cmwgPT4KKyAgICAgICAg
cmVxdWVzdFZpYURlZGljYXRlZFdvcmtlcih3b3JrZXJVcmxUaGF0SW1wb3J0cyh1cmwpLCB7dHlw
ZTogIm1vZHVsZSJ9KSwKKyAgfSwKKyAgInNoYXJlZHdvcmtlci1jbGFzc2ljIjogeworICAgIHBh
dGg6ICIvY29tbW9uL3NlY3VyaXR5LWZlYXR1cmVzL3N1YnJlc291cmNlL3NoYXJlZC13b3JrZXIu
cHkiLAorICAgIGludm9rZXI6IHJlcXVlc3RWaWFTaGFyZWRXb3JrZXIsCisgIH0sCisKKyAgIndl
YnNvY2tldCI6IHsKKyAgICBwYXRoOiAiL3N0YXNoX3Jlc3BvbmRlciIsCisgICAgaW52b2tlcjog
cmVxdWVzdFZpYVdlYlNvY2tldCwKKyAgfSwKK307Citmb3IgKGNvbnN0IHdvcmtsZXRUeXBlIG9m
IFsnYW5pbWF0aW9uJywgJ2F1ZGlvJywgJ2xheW91dCcsICdwYWludCddKSB7CisgIHN1YnJlc291
cmNlTWFwW2B3b3JrbGV0LSR7d29ya2xldFR5cGV9YF0gPSB7CisgICAgICBwYXRoOiAiL2NvbW1v
bi9zZWN1cml0eS1mZWF0dXJlcy9zdWJyZXNvdXJjZS93b3JrZXIucHkiLAorICAgICAgaW52b2tl
cjogdXJsID0+IHJlcXVlc3RWaWFXb3JrbGV0KHdvcmtsZXRUeXBlLCB1cmwpCisgICAgfTsKKyAg
c3VicmVzb3VyY2VNYXBbYHdvcmtsZXQtJHt3b3JrbGV0VHlwZX0taW1wb3J0LWRhdGFgXSA9IHsK
KyAgICAgIHBhdGg6ICIvY29tbW9uL3NlY3VyaXR5LWZlYXR1cmVzL3N1YnJlc291cmNlL3dvcmtl
ci5weSIsCisgICAgICBpbnZva2VyOiB1cmwgPT4KKyAgICAgICAgICByZXF1ZXN0VmlhV29ya2xl
dCh3b3JrbGV0VHlwZSwgd29ya2VyVXJsVGhhdEltcG9ydHModXJsKSkKKyAgICB9OworfQorCisv
KioKKyAgQHR5cGVkZWYgUmVkaXJlY3Rpb25UeXBlCisgIEB0eXBlIHtzdHJpbmd9CisKKyAgUmVw
cmVzZW50cyB3aGF0IHJlZGlyZWN0cyBzaG91bGQgb2NjdXIgdG8gdGhlIHN1YnJlc291cmNlIHJl
cXVlc3QKKyAgYWZ0ZXIgaW5pdGlhbCByZXF1ZXN0LgorICBTZWUgcHJlcHJvY2Vzc19yZWRpcmVj
dGlvbigpIGluCisgIC9jb21tb24vc2VjdXJpdHktZmVhdHVyZXMvc3VicmVzb3VyY2Uvc3VicmVz
b3VyY2UucHkgZm9yIHZhbGlkIHZhbHVlcy4KKyovCisKKy8qKgorICBDb25zdHJ1Y3Qgc3VicmVz
b3VyY2UgKGFuZCByZWxhdGVkKSBvcmlnaW4uCisKKyAgQHBhcmFtIHtzdHJpbmd9IG9yaWdpblR5
cGUKKyAgQHJldHVybnMge29iamVjdH0gdGhlIG9yaWdpbiBvZiB0aGUgc3VicmVzb3VyY2UuCisq
LworZnVuY3Rpb24gZ2V0U3VicmVzb3VyY2VPcmlnaW4ob3JpZ2luVHlwZSkgeworICBjb25zdCBo
dHRwUHJvdG9jb2wgPSAiaHR0cCI7CisgIGNvbnN0IGh0dHBzUHJvdG9jb2wgPSAiaHR0cHMiOwor
ICBjb25zdCB3c1Byb3RvY29sID0gIndzIjsKKyAgY29uc3Qgd3NzUHJvdG9jb2wgPSAid3NzIjsK
KworICBjb25zdCBzYW1lT3JpZ2luSG9zdCA9ICJ7e2hvc3R9fSI7CisgIGNvbnN0IGNyb3NzT3Jp
Z2luSG9zdCA9ICJ7e2RvbWFpbnNbd3d3MV19fSI7CisKKyAgLy8gVGhlc2UgdmFsdWVzIGNhbiBl
dmFsdWF0ZSB0byBlaXRoZXIgZW1wdHkgc3RyaW5ncyBvciBhICI6cG9ydCIgc3RyaW5nLgorICBj
b25zdCBodHRwUG9ydCA9IGdldE5vcm1hbGl6ZWRQb3J0KHBhcnNlSW50KCJ7e3BvcnRzW2h0dHBd
WzBdfX0iLCAxMCkpOworICBjb25zdCBodHRwc1BvcnQgPSBnZXROb3JtYWxpemVkUG9ydChwYXJz
ZUludCgie3twb3J0c1todHRwc11bMF19fSIsIDEwKSk7CisgIGNvbnN0IHdzUG9ydCA9IGdldE5v
cm1hbGl6ZWRQb3J0KHBhcnNlSW50KCJ7e3BvcnRzW3dzXVswXX19IiwgMTApKTsKKyAgY29uc3Qg
d3NzUG9ydCA9IGdldE5vcm1hbGl6ZWRQb3J0KHBhcnNlSW50KCJ7e3BvcnRzW3dzc11bMF19fSIs
IDEwKSk7CisKKyAgLyoqCisgICAgQHR5cGVkZWYgT3JpZ2luVHlwZQorICAgIEB0eXBlIHtzdHJp
bmd9CisKKyAgICBSZXByZXNlbnRzIHRoZSBvcmlnaW4gb2YgdGhlIHN1YnJlc291cmNlIHJlcXVl
c3QgVVJMLgorICAgIFRoZSBrZXlzIG9mIGBvcmlnaW5NYXBgIGJlbG93IGFyZSB0aGUgdmFsaWQg
dmFsdWVzLgorCisgICAgTm90ZSB0aGF0IHRoZXJlIGNhbiBiZSByZWRpcmVjdHMgZnJvbSB0aGUg
c3BlY2lmaWVkIG9yaWdpbgorICAgIChzZWUgUmVkaXJlY3Rpb25UeXBlKSwgYW5kIHRodXMgdGhl
IG9yaWdpbiBvZiB0aGUgc3VicmVzb3VyY2UKKyAgICByZXNwb25zZSBVUkwgbWlnaHQgYmUgZGlm
ZmVyZW50IGZyb20gd2hhdCBpcyBzcGVjaWZpZWQgYnkgT3JpZ2luVHlwZS4KKyAgKi8KKyAgY29u
c3Qgb3JpZ2luTWFwID0geworICAgICJzYW1lLWh0dHBzIjogaHR0cHNQcm90b2NvbCArICI6Ly8i
ICsgc2FtZU9yaWdpbkhvc3QgKyBodHRwc1BvcnQsCisgICAgInNhbWUtaHR0cCI6IGh0dHBQcm90
b2NvbCArICI6Ly8iICsgc2FtZU9yaWdpbkhvc3QgKyBodHRwUG9ydCwKKyAgICAiY3Jvc3MtaHR0
cHMiOiBodHRwc1Byb3RvY29sICsgIjovLyIgKyBjcm9zc09yaWdpbkhvc3QgKyBodHRwc1BvcnQs
CisgICAgImNyb3NzLWh0dHAiOiBodHRwUHJvdG9jb2wgKyAiOi8vIiArIGNyb3NzT3JpZ2luSG9z
dCArIGh0dHBQb3J0LAorICAgICJzYW1lLXdzcyI6IHdzc1Byb3RvY29sICsgIjovLyIgKyBzYW1l
T3JpZ2luSG9zdCArIHdzc1BvcnQsCisgICAgInNhbWUtd3MiOiB3c1Byb3RvY29sICsgIjovLyIg
KyBzYW1lT3JpZ2luSG9zdCArIHdzUG9ydCwKKyAgICAiY3Jvc3Mtd3NzIjogd3NzUHJvdG9jb2wg
KyAiOi8vIiArIGNyb3NzT3JpZ2luSG9zdCArIHdzc1BvcnQsCisgICAgImNyb3NzLXdzIjogd3NQ
cm90b2NvbCArICI6Ly8iICsgY3Jvc3NPcmlnaW5Ib3N0ICsgd3NQb3J0LAorICB9OworCisgIHJl
dHVybiBvcmlnaW5NYXBbb3JpZ2luVHlwZV07Cit9CisKKy8qKgorICBDb25zdHJ1Y3Qgc3VicmVz
b3VyY2UgKGFuZCByZWxhdGVkKSBVUkxzLgorCisgIEBwYXJhbSB7U3VicmVzb3VyY2VUeXBlfSBz
dWJyZXNvdXJjZVR5cGUKKyAgQHBhcmFtIHtPcmlnaW5UeXBlfSBvcmlnaW5UeXBlCisgIEBwYXJh
bSB7UmVkaXJlY3Rpb25UeXBlfSByZWRpcmVjdGlvblR5cGUKKyAgQHJldHVybnMge29iamVjdH0g
d2l0aCBmb2xsb3dpbmcgcHJvcGVydGllczoKKyAgICB7c3RyaW5nfSB0ZXN0VXJsCisgICAgICBU
aGUgc3VicmVzb3VyY2UgcmVxdWVzdCBVUkwuCisgICAge3N0cmluZ30gYW5ub3VuY2VVcmwKKyAg
ICB7c3RyaW5nfSBhc3NlcnRVcmwKKyAgICAgIFRoZSBVUkxzIHRvIGJlIHVzZWQgZm9yIGRldGVj
dGluZyB3aGV0aGVyIGB0ZXN0VXJsYCBpcyBhY3R1YWxseSBzZW50CisgICAgICB0byB0aGUgc2Vy
dmVyLgorICAgICAgMS4gRmV0Y2ggYGFubm91bmNlVXJsYCBmaXJzdCwKKyAgICAgIDIuIHRoZW4g
cG9zc2libHkgZmV0Y2ggYHRlc3RVcmxgLCBhbmQKKyAgICAgIDMuIGZpbmFsbHkgZmV0Y2ggYGFz
c2VydFVybGAuCisgICAgICAgICBUaGUgZmV0Y2ggcmVzdWx0IG9mIGBhc3NlcnRVcmxgIHNob3Vs
ZCBpbmRpY2F0ZSB3aGV0aGVyCisgICAgICAgICBgdGVzdFVybGAgaXMgYWN0dWFsbHkgc2VudCB0
byB0aGUgc2VydmVyIG9yIG5vdC4KKyovCitmdW5jdGlvbiBnZXRSZXF1ZXN0VVJMcyhzdWJyZXNv
dXJjZVR5cGUsIG9yaWdpblR5cGUsIHJlZGlyZWN0aW9uVHlwZSkgeworICBjb25zdCBrZXkgPSBn
dWlkKCk7CisgIGNvbnN0IHZhbHVlID0gZ3VpZCgpOworCisgIC8vIFdlIHVzZSB0aGUgc2FtZSBz
dGFzaCBwYXRoIGZvciBib3RoIEhUVFAvUyBhbmQgV1MvUyBzdGFzaCByZXF1ZXN0cy4KKyAgY29u
c3Qgc3Rhc2hQYXRoID0gZW5jb2RlVVJJQ29tcG9uZW50KCIvbWl4ZWQtY29udGVudCIpOworCisg
IGNvbnN0IHN0YXNoRW5kcG9pbnQgPSAiL2NvbW1vbi9zZWN1cml0eS1mZWF0dXJlcy9zdWJyZXNv
dXJjZS94aHIucHk/a2V5PSIgKworICAgICAgICAgICAgICAgICAgICAgICAga2V5ICsgIiZwYXRo
PSIgKyBzdGFzaFBhdGg7CisgIHJldHVybiB7CisgICAgdGVzdFVybDoKKyAgICAgIGdldFN1YnJl
c291cmNlT3JpZ2luKG9yaWdpblR5cGUpICsKKyAgICAgICAgc3VicmVzb3VyY2VNYXBbc3VicmVz
b3VyY2VUeXBlXS5wYXRoICsKKyAgICAgICAgIj9yZWRpcmVjdGlvbj0iICsgZW5jb2RlVVJJQ29t
cG9uZW50KHJlZGlyZWN0aW9uVHlwZSkgKworICAgICAgICAiJmFjdGlvbj1wdXJnZSZrZXk9IiAr
IGtleSArCisgICAgICAgICImcGF0aD0iICsgc3Rhc2hQYXRoLAorICAgIGFubm91bmNlVXJsOiBz
dGFzaEVuZHBvaW50ICsgIiZhY3Rpb249cHV0JnZhbHVlPSIgKyB2YWx1ZSwKKyAgICBhc3NlcnRV
cmw6IHN0YXNoRW5kcG9pbnQgKyAiJmFjdGlvbj10YWtlIiwKKyAgfTsKK30KKworLy8gPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
CisvLyBTb3VyY2UgQ29udGV4dAorLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisvLyBSZXF1ZXN0cyBjYW4gYmUgc2VudCBm
cm9tIHNldmVyYWwgc291cmNlIGNvbnRleHRzLAorLy8gc3VjaCBhcyB0aGUgbWFpbiBkb2N1bWVu
dHMsIGlmcmFtZXMsIHdvcmtlcnMsIG9yIHNvLAorLy8gcG9zc2libHkgbmVzdGVkLCBhbmQgcG9z
c2libHkgd2l0aCA8bWV0YT4vaHR0cCBoZWFkZXJzIGFkZGVkLgorLy8gaW52b2tlUmVxdWVzdCgp
IGFuZCBpbnZva2VGcm9tKigpIGZ1bmN0aW9ucyBoYW5kbGVzCisvLyBTb3VyY2VDb250ZXh0LXJl
bGF0ZWQgc2V0dXAgaW4gY2xpZW50LXNpZGUuCisKKy8qKgorICBpbnZva2VSZXF1ZXN0KCkgaW52
b2tlcyBhIHN1YnJlc291cmNlIHJlcXVlc3QKKyAgKHNwZWNpZmllZCBhcyBgc3VicmVzb3VyY2Vg
KQorICBmcm9tIGEgKHBvc3NpYmx5IG5lc3RlZCkgZW52aXJvbm1lbnQgc2V0dGluZ3Mgb2JqZWN0
CisgIChzcGVjaWZpZWQgYXMgYHNvdXJjZUNvbnRleHRMaXN0YCkuCisKKyAgRm9yIG5lc3RlZCBj
b250ZXh0cywgaW52b2tlUmVxdWVzdCgpIGNhbGxzIGFuIGludm9rZUZyb20qKCkgZnVuY3Rpb24K
KyAgdGhhdCBjcmVhdGVzIGEgbmVzdGVkIGVudmlyb25tZW50IHNldHRpbmdzIG9iamVjdCB1c2lu
ZworICAvY29tbW9uL3NlY3VyaXR5LWZlYXR1cmVzL3Njb3BlLywgd2hpY2ggY2FsbHMgaW52b2tl
UmVxdWVzdCgpCisgIGFnYWluIGluc2lkZSB0aGUgbmVzdGVkIGVudmlyb25tZW50IHNldHRpbmdz
IG9iamVjdC4KKyAgVGhpcyBjeWNsZSBjb250aW51ZXMgdW50aWwgYWxsIHNwZWNpZmllZAorICBu
ZXN0ZWQgZW52aXJvbm1lbnQgc2V0dGluZ3Mgb2JqZWN0IGFyZSBjcmVhdGVkLCBhbmQKKyAgZmlu
YWxseSBpbnZva2VSZXF1ZXN0KCkgY2FsbHMgYSByZXF1ZXN0VmlhKigpIGZ1bmN0aW9uIHRvIHN0
YXJ0IHRoZQorICBzdWJyZXNvdXJjZSByZXF1ZXN0IGZyb20gdGhlIGlubmVyLW1vc3QgZW52aXJv
bm1lbnQgc2V0dGluZ3Mgb2JqZWN0LgorCisgIEBwYXJhbSB7U3VicmVzb3VyY2V9IHN1YnJlc291
cmNlCisgIEBwYXJhbSB7QXJyYXk8U291cmNlQ29udGV4dD59IHNvdXJjZUNvbnRleHRMaXN0CisK
KyAgQHJldHVybnMge1Byb21pc2V9IEEgcHJvbWlzZSB0aGF0IGlzIHJlc29sdmVkIHdpdGggYW4g
UmVxdWVzdFJlc3VsdCBvYmplY3QuCisgIGBzb3VyY2VDb250ZXh0VXJsYCBpcyBhbHdheXMgc2V0
LiBGb3Igd2hldGhlciBvdGhlciBwcm9wZXJ0aWVzIGFyZSBzZXQsCisgIHNlZSB0aGUgY29tbWVu
dHMgZm9yIHJlcXVlc3RWaWEqKCkgYWJvdmUuCisqLworZnVuY3Rpb24gaW52b2tlUmVxdWVzdChz
dWJyZXNvdXJjZSwgc291cmNlQ29udGV4dExpc3QpIHsKKyAgaWYgKHNvdXJjZUNvbnRleHRMaXN0
Lmxlbmd0aCA9PT0gMCkgeworICAgIC8vIE5vIGZ1cnRoZXIgbmVzdGVkIGdsb2JhbCBvYmplY3Rz
LiBTZW5kIHRoZSBzdWJyZXNvdXJjZSByZXF1ZXN0IGhlcmUuCisKKyAgICBjb25zdCBhZGRpdGlv
bmFsQXR0cmlidXRlcyA9IHt9OworICAgIC8qKiBAdHlwZSB7UG9saWN5RGVsaXZlcnl9IHBvbGlj
eURlbGl2ZXJ5ICovCisgICAgZm9yIChjb25zdCBwb2xpY3lEZWxpdmVyeSBvZiAoc3VicmVzb3Vy
Y2UucG9saWN5RGVsaXZlcmllcyB8fCBbXSkpIHsKKyAgICAgIC8vIERlcGVuZGluZyBvbiB0aGUg
ZGVsaXZlcnkgbWV0aG9kLCBleHRlbmQgdGhlIHN1YnJlc291cmNlIGVsZW1lbnQgd2l0aAorICAg
ICAgLy8gdGhlc2UgYXR0cmlidXRlcy4KKyAgICAgIGlmIChwb2xpY3lEZWxpdmVyeS5kZWxpdmVy
eVR5cGUgPT09ICJhdHRyIikgeworICAgICAgICBhZGRpdGlvbmFsQXR0cmlidXRlc1twb2xpY3lE
ZWxpdmVyeS5rZXldID0gcG9saWN5RGVsaXZlcnkudmFsdWU7CisgICAgICB9IGVsc2UgaWYgKHBv
bGljeURlbGl2ZXJ5LmRlbGl2ZXJ5VHlwZSA9PT0gInJlbC1ub3JlZiIpIHsKKyAgICAgICAgYWRk
aXRpb25hbEF0dHJpYnV0ZXNbInJlbCJdID0gIm5vcmVmZXJyZXIiOworICAgICAgfQorICAgIH0K
KworICAgIHJldHVybiBzdWJyZXNvdXJjZU1hcFtzdWJyZXNvdXJjZS5zdWJyZXNvdXJjZVR5cGVd
Lmludm9rZXIoCisgICAgICAgIHN1YnJlc291cmNlLnVybCwKKyAgICAgICAgYWRkaXRpb25hbEF0
dHJpYnV0ZXMpCisgICAgICAudGhlbihyZXN1bHQgPT4gT2JqZWN0LmFzc2lnbigKKyAgICAgICAg
ICB7c291cmNlQ29udGV4dFVybDogbG9jYXRpb24udG9TdHJpbmcoKX0sCisgICAgICAgICAgcmVz
dWx0KSk7CisgIH0KKworICAvLyBEZWZpbmVzIGludm9rZXJzIGZvciBlYWNoIHZhbGlkIFNvdXJj
ZUNvbnRleHQuc291cmNlQ29udGV4dFR5cGUuCisgIGNvbnN0IHNvdXJjZUNvbnRleHRNYXAgPSB7
CisgICAgInNyY2RvYyI6IHsgLy8gPGlmcmFtZSBzcmNkb2M+PC9pZnJhbWU+CisgICAgICBpbnZv
a2VyOiBpbnZva2VGcm9tSWZyYW1lLAorICAgIH0sCisgICAgImlmcmFtZSI6IHsgLy8gPGlmcmFt
ZSBzcmM9InNhbWUtb3JpZ2luLVVSTCI+PC9pZnJhbWU+CisgICAgICBpbnZva2VyOiBpbnZva2VG
cm9tSWZyYW1lLAorICAgIH0sCisgICAgIndvcmtlci1jbGFzc2ljIjogeworICAgICAgLy8gQ2xh
c3NpYyBkZWRpY2F0ZWQgd29ya2VyIGxvYWRlZCBmcm9tIHNhbWUtb3JpZ2luLgorICAgICAgaW52
b2tlcjogaW52b2tlRnJvbVdvcmtlci5iaW5kKHVuZGVmaW5lZCwgZmFsc2UsIHt9KSwKKyAgICB9
LAorICAgICJ3b3JrZXItY2xhc3NpYy1kYXRhIjogeworICAgICAgLy8gQ2xhc3NpYyBkZWRpY2F0
ZWQgd29ya2VyIGxvYWRlZCBmcm9tIGRhdGE6IFVSTC4KKyAgICAgIGludm9rZXI6IGludm9rZUZy
b21Xb3JrZXIuYmluZCh1bmRlZmluZWQsIHRydWUsIHt9KSwKKyAgICB9LAorICAgICJ3b3JrZXIt
bW9kdWxlIjogeworICAgICAgLy8gTW9kdWxlIGRlZGljYXRlZCB3b3JrZXIgbG9hZGVkIGZyb20g
c2FtZS1vcmlnaW4uCisgICAgICBpbnZva2VyOiBpbnZva2VGcm9tV29ya2VyLmJpbmQodW5kZWZp
bmVkLCBmYWxzZSwge3R5cGU6ICdtb2R1bGUnfSksCisgICAgfSwKKyAgICAid29ya2VyLW1vZHVs
ZS1kYXRhIjogeworICAgICAgLy8gTW9kdWxlIGRlZGljYXRlZCB3b3JrZXIgbG9hZGVkIGZyb20g
ZGF0YTogVVJMLgorICAgICAgaW52b2tlcjogaW52b2tlRnJvbVdvcmtlci5iaW5kKHVuZGVmaW5l
ZCwgdHJ1ZSwge3R5cGU6ICdtb2R1bGUnfSksCisgICAgfSwKKyAgfTsKKworICByZXR1cm4gc291
cmNlQ29udGV4dE1hcFtzb3VyY2VDb250ZXh0TGlzdFswXS5zb3VyY2VDb250ZXh0VHlwZV0uaW52
b2tlcigKKyAgICAgIHN1YnJlc291cmNlLCBzb3VyY2VDb250ZXh0TGlzdCk7Cit9CisKKy8vIFF1
aWNrIGhhY2sgdG8gZXhwb3NlIGludm9rZVJlcXVlc3Qgd2hlbiBjb21tb24uc3ViLmpzIGlzIGxv
YWRlZCBlaXRoZXIKKy8vIGFzIGEgY2xhc3NpYyBvciBtb2R1bGUgc2NyaXB0Lgorc2VsZi5pbnZv
a2VSZXF1ZXN0ID0gaW52b2tlUmVxdWVzdDsKKworLyoqCisgIGludm9rZUZyb20qKCkgZnVuY3Rp
b25zIGFyZSBoZWxwZXIgZnVuY3Rpb25zIHdpdGggdGhlIHNhbWUgcGFyYW1ldGVycworICBhbmQg
cmV0dXJuIHZhbHVlcyBhcyBpbnZva2VSZXF1ZXN0KCksIHRoYXQgYXJlIHRpZWQgdG8gc3BlY2lm
aWMgdHlwZXMKKyAgb2YgdG9wLW1vc3QgZW52aXJvbm1lbnQgc2V0dGluZ3Mgb2JqZWN0cy4KKyAg
Rm9yIGV4YW1wbGUsIGludm9rZUZyb21JZnJhbWUoKSBpcyB0aGUgaGVscGVyIGZ1bmN0aW9uIGZv
ciB0aGUgY2FzZXMgd2hlcmUKKyAgc291cmNlQ29udGV4dExpc3RbMF0gaXMgYW4gaWZyYW1lLgor
Ki8KKworLyoqCisgIEBwYXJhbSB7Ym9vbGVhbn0gaXNEYXRhVXJsCisgICAgdHJ1ZSBpZiB0aGUg
d29ya2VyIHNjcmlwdCBpcyBsb2FkZWQgZnJvbSBkYXRhOiBVUkwuCisgICAgT3RoZXJ3aXNlLCB0
aGUgc2NyaXB0IGlzIGxvYWRlZCBmcm9tIHNhbWUtb3JpZ2luLgorICBAcGFyYW0ge29iamVjdH0g
d29ya2VyT3B0aW9ucworICAgIFRoZSBgb3B0aW9uc2AgYXJndW1lbnQgZm9yIFdvcmtlciBjb25z
dHJ1Y3Rvci4KKworICBPdGhlciBwYXJhbWV0ZXJzIGFuZCByZXR1cm4gdmFsdWVzIGFyZSB0aGUg
c2FtZSBhcyB0aG9zZSBvZiBpbnZva2VSZXF1ZXN0KCkuCisqLworZnVuY3Rpb24gaW52b2tlRnJv
bVdvcmtlcihpc0RhdGFVcmwsIHdvcmtlck9wdGlvbnMsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgIHN1YnJlc291cmNlLCBzb3VyY2VDb250ZXh0TGlzdCkgeworICBjb25zdCBjdXJyZW50U291
cmNlQ29udGV4dCA9IHNvdXJjZUNvbnRleHRMaXN0WzBdOworICBsZXQgd29ya2VyVXJsID0KKyAg
ICAiL2NvbW1vbi9zZWN1cml0eS1mZWF0dXJlcy9zY29wZS93b3JrZXIucHk/cG9saWN5RGVsaXZl
cmllcz0iICsKKyAgICBlbmNvZGVVUklDb21wb25lbnQoSlNPTi5zdHJpbmdpZnkoCisgICAgICAg
IGN1cnJlbnRTb3VyY2VDb250ZXh0LnBvbGljeURlbGl2ZXJpZXMgfHwgW10pKTsKKyAgaWYgKHdv
cmtlck9wdGlvbnMudHlwZSA9PT0gJ21vZHVsZScpIHsKKyAgICB3b3JrZXJVcmwgKz0gIiZ0eXBl
PW1vZHVsZSI7CisgIH0KKworICBsZXQgcHJvbWlzZTsKKyAgaWYgKGlzRGF0YVVybCkgeworICAg
IHByb21pc2UgPSBmZXRjaCh3b3JrZXJVcmwpCisgICAgICAudGhlbihyID0+IHIudGV4dCgpKQor
ICAgICAgLnRoZW4oc291cmNlID0+IHsKKyAgICAgICAgICByZXR1cm4gJ2RhdGE6dGV4dC9qYXZh
c2NyaXB0O2Jhc2U2NCwnICsgYnRvYShzb3VyY2UpOworICAgICAgICB9KTsKKyAgfSBlbHNlIHsK
KyAgICBwcm9taXNlID0gUHJvbWlzZS5yZXNvbHZlKHdvcmtlclVybCk7CisgIH0KKworICByZXR1
cm4gcHJvbWlzZQorICAgIC50aGVuKHVybCA9PiB7CisgICAgICBjb25zdCB3b3JrZXIgPSBuZXcg
V29ya2VyKHVybCwgd29ya2VyT3B0aW9ucyk7CisgICAgICB3b3JrZXIucG9zdE1lc3NhZ2Uoe3N1
YnJlc291cmNlOiBzdWJyZXNvdXJjZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNl
Q29udGV4dExpc3Q6IHNvdXJjZUNvbnRleHRMaXN0LnNsaWNlKDEpfSk7CisgICAgICByZXR1cm4g
YmluZEV2ZW50czIod29ya2VyLCAibWVzc2FnZSIsIHdvcmtlciwgImVycm9yIiwgd2luZG93LCAi
ZXJyb3IiKTsKKyAgICB9KQorICAgIC50aGVuKGV2ZW50ID0+IHsKKyAgICAgICAgaWYgKGV2ZW50
LmRhdGEuZXJyb3IpCisgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KGV2ZW50LmRhdGEu
ZXJyb3IpOworICAgICAgICByZXR1cm4gZXZlbnQuZGF0YTsKKyAgICAgIH0pOworfQorCitmdW5j
dGlvbiBpbnZva2VGcm9tSWZyYW1lKHN1YnJlc291cmNlLCBzb3VyY2VDb250ZXh0TGlzdCkgewor
ICBjb25zdCBjdXJyZW50U291cmNlQ29udGV4dCA9IHNvdXJjZUNvbnRleHRMaXN0WzBdOworICBj
b25zdCBmcmFtZVVybCA9CisgICAgIi9jb21tb24vc2VjdXJpdHktZmVhdHVyZXMvc2NvcGUvZG9j
dW1lbnQucHk/cG9saWN5RGVsaXZlcmllcz0iICsKKyAgICBlbmNvZGVVUklDb21wb25lbnQoSlNP
Ti5zdHJpbmdpZnkoCisgICAgICAgIGN1cnJlbnRTb3VyY2VDb250ZXh0LnBvbGljeURlbGl2ZXJp
ZXMgfHwgW10pKTsKKworICBsZXQgcHJvbWlzZTsKKyAgaWYgKGN1cnJlbnRTb3VyY2VDb250ZXh0
LnNvdXJjZUNvbnRleHRUeXBlID09PSAnc3JjZG9jJykgeworICAgIHByb21pc2UgPSBmZXRjaChm
cmFtZVVybCkKKyAgICAgIC50aGVuKHIgPT4gci50ZXh0KCkpCisgICAgICAudGhlbihzcmNkb2Mg
PT4geworICAgICAgICAgIHJldHVybiBjcmVhdGVFbGVtZW50KCJpZnJhbWUiLCB7c3JjZG9jOiBz
cmNkb2N9LCBkb2N1bWVudC5ib2R5LCB0cnVlKTsKKyAgICAgICAgfSk7CisgIH0gZWxzZSBpZiAo
Y3VycmVudFNvdXJjZUNvbnRleHQuc291cmNlQ29udGV4dFR5cGUgPT09ICdpZnJhbWUnKSB7Cisg
ICAgcHJvbWlzZSA9IFByb21pc2UucmVzb2x2ZSgKKyAgICAgICAgY3JlYXRlRWxlbWVudCgiaWZy
YW1lIiwge3NyYzogZnJhbWVVcmx9LCBkb2N1bWVudC5ib2R5LCB0cnVlKSk7CisgIH0KKworICBy
ZXR1cm4gcHJvbWlzZQorICAgIC50aGVuKGlmcmFtZSA9PiB7CisgICAgICAgIHJldHVybiBpZnJh
bWUuZXZlbnRQcm9taXNlCisgICAgICAgICAgLnRoZW4oKCkgPT4geworICAgICAgICAgICAgICBj
b25zdCBwcm9taXNlID0gYmluZEV2ZW50czIoCisgICAgICAgICAgICAgICAgICB3aW5kb3csICJt
ZXNzYWdlIiwgaWZyYW1lLCAiZXJyb3IiLCB3aW5kb3csICJlcnJvciIpOworICAgICAgICAgICAg
ICBpZnJhbWUuY29udGVudFdpbmRvdy5wb3N0TWVzc2FnZSgKKyAgICAgICAgICAgICAgICAgIHtz
dWJyZXNvdXJjZTogc3VicmVzb3VyY2UsCisgICAgICAgICAgICAgICAgICAgc291cmNlQ29udGV4
dExpc3Q6IHNvdXJjZUNvbnRleHRMaXN0LnNsaWNlKDEpfSwKKyAgICAgICAgICAgICAgICAgICIq
Iik7CisgICAgICAgICAgICAgIHJldHVybiBwcm9taXNlOworICAgICAgICAgICAgfSkKKyAgICAg
ICAgICAudGhlbihldmVudCA9PiB7CisgICAgICAgICAgICAgIGlmIChldmVudC5kYXRhLmVycm9y
KQorICAgICAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChldmVudC5kYXRhLmVycm9y
KTsKKyAgICAgICAgICAgICAgcmV0dXJuIGV2ZW50LmRhdGE7CisgICAgICAgICAgICB9KTsKKyAg
ICAgIH0pOworfQorCisvLyBTYW5pdHlDaGVja2VyIGRvZXMgbm90aGluZyBpbiByZWxlYXNlIG1v
ZGUuIFNlZSBzYW5pdHktY2hlY2tlci5qcyBmb3IgZGVidWcKKy8vIG1vZGUuCitmdW5jdGlvbiBT
YW5pdHlDaGVja2VyKCkge30KK1Nhbml0eUNoZWNrZXIucHJvdG90eXBlLmNoZWNrU2NlbmFyaW8g
PSBmdW5jdGlvbigpIHt9OworU2FuaXR5Q2hlY2tlci5wcm90b3R5cGUuc2V0RmFpbFRpbWVvdXQg
PSBmdW5jdGlvbih0ZXN0LCB0aW1lb3V0KSB7fTsKK1Nhbml0eUNoZWNrZXIucHJvdG90eXBlLmNo
ZWNrU3VicmVzb3VyY2VSZXN1bHQgPSBmdW5jdGlvbigpIHt9OwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jb250ZW50LXNlY3VyaXR5LXBv
bGljeS9zZWN1cml0eXBvbGljeXZpb2xhdGlvbi9pZGxoYXJuZXNzLndpbmRvdy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2NvbnRlbnQt
c2VjdXJpdHktcG9saWN5L3NlY3VyaXR5cG9saWN5dmlvbGF0aW9uL2lkbGhhcm5lc3Mud2luZG93
LWV4cGVjdGVkLnR4dAppbmRleCBhN2VhMzI3OTFjYjAwNjkzZjM3OTRhMjNkMzI4NGE5MjY3OWM1
MmZmLi4xZTFjZjY2N2QzYjUwYWVmMWYxNjkxOGRmM2IwNDgzZGVkZTFmNWQ2IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2NvbnRlbnQtc2Vj
dXJpdHktcG9saWN5L3NlY3VyaXR5cG9saWN5dmlvbGF0aW9uL2lkbGhhcm5lc3Mud2luZG93LWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2NvbnRlbnQtc2VjdXJpdHktcG9saWN5L3NlY3VyaXR5cG9saWN5dmlvbGF0aW9uL2lkbGhh
cm5lc3Mud2luZG93LWV4cGVjdGVkLnR4dApAQCAtMSwzMCArMSwzIEBACiAKLUZBSUwgaWRsX3Rl
c3Qgc2V0dXAgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9i
amVjdCAiR290IGFuIGVycm9yIGJlZm9yZSBwYXJzaW5nIGFueSBuYW1lZCBkZWZpbml0aW9uOiBV
bnJlY29nbmlzZWQgdG9rZW5zLCBsaW5lIDEgKHRva2VuczogIntcImVycm9yXCI6IHtcIm1lc3Nh
Z2VcIiIpCi1bCi0gICAgewotICAgICAgICAidHlwZSI6ICJ7IiwKLSAgICAgICAgInZhbHVlIjog
InsiLAotICAgICAgICAidHJpdmlhIjogIiIKLSAgICB9LAotICAgIHsKLSAgICAgICAgInR5cGUi
OiAic3RyaW5nIiwKLSAgICAgICAgInZhbHVlIjogIlwiZXJyb3JcIiIsCi0gICAgICAgICJ0cml2
aWEiOiAiIgotICAgIH0sCi0gICAgewotICAgICAgICAidHlwZSI6ICI6IiwKLSAgICAgICAgInZh
bHVlIjogIjoiLAotICAgICAgICAidHJpdmlhIjogIiIKLSAgICB9LAotICAgIHsKLSAgICAgICAg
InR5cGUiOiAieyIsCi0gICAgICAgICJ2YWx1ZSI6ICJ7IiwKLSAgICAgICAgInRyaXZpYSI6ICIg
IgotICAgIH0sCi0gICAgewotICAgICAgICAidHlwZSI6ICJzdHJpbmciLAotICAgICAgICAidmFs
dWUiOiAiXCJtZXNzYWdlXCIiLAotICAgICAgICAidHJpdmlhIjogIiIKLSAgICB9Ci1dIgorRkFJ
TCBpZGxfdGVzdCBzZXR1cCBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2
YWx1ZTogb2JqZWN0ICJFcnJvciBmZXRjaGluZyAvaW50ZXJmYWNlcy9DU1AuaWRsLiIKIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jcmVk
ZW50aWFsLW1hbmFnZW1lbnQvTUVUQS55bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2NyZWRlbnRpYWwtbWFuYWdlbWVudC9NRVRBLnltbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li43YjE4NjA5MjEzMTJjYzlkOTkzNGFhODAzZTNmNjM5ZGYyMTQyM2EwCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jcmVkZW50
aWFsLW1hbmFnZW1lbnQvTUVUQS55bWwKQEAgLTAsMCArMSwzIEBACitzcGVjOiBodHRwczovL3cz
Yy5naXRodWIuaW8vd2ViYXBwc2VjLWNyZWRlbnRpYWwtbWFuYWdlbWVudC8KK3N1Z2dlc3RlZF9y
ZXZpZXdlcnM6CisgIC0gbWlrZXdlc3QKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3JlZGVudGlhbC1tYW5hZ2VtZW50L09XTkVSUyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3JlZGVudGlhbC1tYW5h
Z2VtZW50L09XTkVSUwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTJmOTA3Y2ViNDE4
MTQwMThiNzM0OGQ0MzBkN2JlNWJiOWRjNzM3Mi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2NyZWRlbnRpYWwtbWFuYWdlbWVudC9PV05FUlMKKysrIC9kZXYvbnVsbApAQCAtMSAr
MCwwIEBACi1AbWlrZXdlc3QKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3JlZGVudGlhbC1tYW5hZ2VtZW50L2lkbC5odHRwcy1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2NyZWRl
bnRpYWwtbWFuYWdlbWVudC9pZGwuaHR0cHMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBlZDNiMWMxODYxZTZkZmVmOTE3MTdmN2ZkYTliOThhZmUwMWYwNmYxLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3JlZGVudGlhbC1tYW5hZ2VtZW50L2lk
bC5odHRwcy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw0MyArMCwwIEBACi0KLVBB
U1MgQ3JlZGVudGlhbHNDb250YWluZXIgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRp
ZXMgb2YgaW50ZXJmYWNlIG9iamVjdCAKLVBBU1MgQ3JlZGVudGlhbHNDb250YWluZXIgaW50ZXJm
YWNlIG9iamVjdCBsZW5ndGggCi1QQVNTIENyZWRlbnRpYWxzQ29udGFpbmVyIGludGVyZmFjZSBv
YmplY3QgbmFtZSAKLVBBU1MgQ3JlZGVudGlhbHNDb250YWluZXIgaW50ZXJmYWNlOiBleGlzdGVu
Y2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgCi1QQVNTIENy
ZWRlbnRpYWxzQ29udGFpbmVyIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9m
IGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgImNvbnN0cnVjdG9yIiBwcm9wZXJ0eSAKLVBB
U1MgQ3JlZGVudGlhbHNDb250YWluZXIgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRp
ZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyBAQHVuc2NvcGFibGVzIHByb3BlcnR5
IAotUEFTUyBDcmVkZW50aWFsc0NvbnRhaW5lciBpbnRlcmZhY2U6IG9wZXJhdGlvbiBnZXQoQ3Jl
ZGVudGlhbFJlcXVlc3RPcHRpb25zKSAKLVBBU1MgQ3JlZGVudGlhbHNDb250YWluZXIgaW50ZXJm
YWNlOiBvcGVyYXRpb24gc3RvcmUoQ3JlZGVudGlhbCkgCi1QQVNTIENyZWRlbnRpYWxzQ29udGFp
bmVyIGludGVyZmFjZTogb3BlcmF0aW9uIGNyZWF0ZShDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25z
KSAKLVBBU1MgQ3JlZGVudGlhbHNDb250YWluZXIgaW50ZXJmYWNlOiBvcGVyYXRpb24gcHJldmVu
dFNpbGVudEFjY2VzcygpIAotUEFTUyBDcmVkZW50aWFsc0NvbnRhaW5lciBtdXN0IGJlIHByaW1h
cnkgaW50ZXJmYWNlIG9mIG5hdmlnYXRvci5jcmVkZW50aWFscyAKLVBBU1MgU3RyaW5naWZpY2F0
aW9uIG9mIG5hdmlnYXRvci5jcmVkZW50aWFscyAKLVBBU1MgQ3JlZGVudGlhbHNDb250YWluZXIg
aW50ZXJmYWNlOiBuYXZpZ2F0b3IuY3JlZGVudGlhbHMgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJn
ZXQoQ3JlZGVudGlhbFJlcXVlc3RPcHRpb25zKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCi1QQVNT
IENyZWRlbnRpYWxzQ29udGFpbmVyIGludGVyZmFjZTogY2FsbGluZyBnZXQoQ3JlZGVudGlhbFJl
cXVlc3RPcHRpb25zKSBvbiBuYXZpZ2F0b3IuY3JlZGVudGlhbHMgd2l0aCB0b28gZmV3IGFyZ3Vt
ZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKLVBBU1MgQ3JlZGVudGlhbHNDb250YWluZXIgaW50
ZXJmYWNlOiBuYXZpZ2F0b3IuY3JlZGVudGlhbHMgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJzdG9y
ZShDcmVkZW50aWFsKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCi1QQVNTIENyZWRlbnRpYWxzQ29u
dGFpbmVyIGludGVyZmFjZTogY2FsbGluZyBzdG9yZShDcmVkZW50aWFsKSBvbiBuYXZpZ2F0b3Iu
Y3JlZGVudGlhbHMgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAK
LVBBU1MgQ3JlZGVudGlhbHNDb250YWluZXIgaW50ZXJmYWNlOiBuYXZpZ2F0b3IuY3JlZGVudGlh
bHMgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJjcmVhdGUoQ3JlZGVudGlhbENyZWF0aW9uT3B0aW9u
cykiIHdpdGggdGhlIHByb3BlciB0eXBlIAotUEFTUyBDcmVkZW50aWFsc0NvbnRhaW5lciBpbnRl
cmZhY2U6IGNhbGxpbmcgY3JlYXRlKENyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMpIG9uIG5hdmln
YXRvci5jcmVkZW50aWFscyB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVy
cm9yIAotUEFTUyBDcmVkZW50aWFsc0NvbnRhaW5lciBpbnRlcmZhY2U6IG5hdmlnYXRvci5jcmVk
ZW50aWFscyBtdXN0IGluaGVyaXQgcHJvcGVydHkgInByZXZlbnRTaWxlbnRBY2Nlc3MoKSIgd2l0
aCB0aGUgcHJvcGVyIHR5cGUgCi1GQUlMIFBhc3N3b3JkQ3JlZGVudGlhbCBpbnRlcmZhY2U6IGV4
aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IGFzc2VydF9vd25fcHJv
cGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlBhc3N3b3JkQ3JlZGVudGlh
bCIgZXhwZWN0ZWQgcHJvcGVydHkgIlBhc3N3b3JkQ3JlZGVudGlhbCIgbWlzc2luZwotRkFJTCBQ
YXNzd29yZENyZWRlbnRpYWwgaW50ZXJmYWNlIG9iamVjdCBsZW5ndGggYXNzZXJ0X293bl9wcm9w
ZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiUGFzc3dvcmRDcmVkZW50aWFs
IiBleHBlY3RlZCBwcm9wZXJ0eSAiUGFzc3dvcmRDcmVkZW50aWFsIiBtaXNzaW5nCi1GQUlMIFBh
c3N3b3JkQ3JlZGVudGlhbCBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUgYXNzZXJ0X293bl9wcm9wZXJ0
eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiUGFzc3dvcmRDcmVkZW50aWFsIiBl
eHBlY3RlZCBwcm9wZXJ0eSAiUGFzc3dvcmRDcmVkZW50aWFsIiBtaXNzaW5nCi1GQUlMIFBhc3N3
b3JkQ3JlZGVudGlhbCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRl
cmZhY2UgcHJvdG90eXBlIG9iamVjdCBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90
IGhhdmUgb3duIHByb3BlcnR5ICJQYXNzd29yZENyZWRlbnRpYWwiIGV4cGVjdGVkIHByb3BlcnR5
ICJQYXNzd29yZENyZWRlbnRpYWwiIG1pc3NpbmcKLUZBSUwgUGFzc3dvcmRDcmVkZW50aWFsIGlu
dGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUg
b2JqZWN0J3MgImNvbnN0cnVjdG9yIiBwcm9wZXJ0eSBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxm
IGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJQYXNzd29yZENyZWRlbnRpYWwiIGV4cGVjdGVk
IHByb3BlcnR5ICJQYXNzd29yZENyZWRlbnRpYWwiIG1pc3NpbmcKLUZBSUwgUGFzc3dvcmRDcmVk
ZW50aWFsIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBw
cm90b3R5cGUgb2JqZWN0J3MgQEB1bnNjb3BhYmxlcyBwcm9wZXJ0eSBhc3NlcnRfb3duX3Byb3Bl
cnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJQYXNzd29yZENyZWRlbnRpYWwi
IGV4cGVjdGVkIHByb3BlcnR5ICJQYXNzd29yZENyZWRlbnRpYWwiIG1pc3NpbmcKLUZBSUwgUGFz
c3dvcmRDcmVkZW50aWFsIGludGVyZmFjZTogYXR0cmlidXRlIHBhc3N3b3JkIGFzc2VydF9vd25f
cHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlBhc3N3b3JkQ3JlZGVu
dGlhbCIgZXhwZWN0ZWQgcHJvcGVydHkgIlBhc3N3b3JkQ3JlZGVudGlhbCIgbWlzc2luZwotRkFJ
TCBQYXNzd29yZENyZWRlbnRpYWwgbXVzdCBiZSBwcmltYXJ5IGludGVyZmFjZSBvZiBuZXcgUGFz
c3dvcmRDcmVkZW50aWFsKHsgaWQ6ICJpZCIsIHBhc3N3b3JkOiAicGVuY2lsIiwgaWNvblVSTDog
Imh0dHBzOi8vZXhhbXBsZS5jb20vIiwgbmFtZTogIm5hbWUiIH0pIGFzc2VydF9lcXVhbHM6IFVu
ZXhwZWN0ZWQgZXhjZXB0aW9uIHdoZW4gZXZhbHVhdGluZyBvYmplY3QgZXhwZWN0ZWQgbnVsbCBi
dXQgZ290IG9iamVjdCAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IFBhc3N3
b3JkQ3JlZGVudGlhbCIKLUZBSUwgU3RyaW5naWZpY2F0aW9uIG9mIG5ldyBQYXNzd29yZENyZWRl
bnRpYWwoeyBpZDogImlkIiwgcGFzc3dvcmQ6ICJwZW5jaWwiLCBpY29uVVJMOiAiaHR0cHM6Ly9l
eGFtcGxlLmNvbS8iLCBuYW1lOiAibmFtZSIgfSkgYXNzZXJ0X2VxdWFsczogVW5leHBlY3RlZCBl
eGNlcHRpb24gd2hlbiBldmFsdWF0aW5nIG9iamVjdCBleHBlY3RlZCBudWxsIGJ1dCBnb3Qgb2Jq
ZWN0ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogUGFzc3dvcmRDcmVkZW50
aWFsIgotRkFJTCBQYXNzd29yZENyZWRlbnRpYWwgaW50ZXJmYWNlOiBuZXcgUGFzc3dvcmRDcmVk
ZW50aWFsKHsgaWQ6ICJpZCIsIHBhc3N3b3JkOiAicGVuY2lsIiwgaWNvblVSTDogImh0dHBzOi8v
ZXhhbXBsZS5jb20vIiwgbmFtZTogIm5hbWUiIH0pIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAicGFz
c3dvcmQiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9lcXVhbHM6IFVuZXhwZWN0ZWQgZXhj
ZXB0aW9uIHdoZW4gZXZhbHVhdGluZyBvYmplY3QgZXhwZWN0ZWQgbnVsbCBidXQgZ290IG9iamVj
dCAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IFBhc3N3b3JkQ3JlZGVudGlh
bCIKLUZBSUwgRmVkZXJhdGVkQ3JlZGVudGlhbCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJv
cGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9l
cyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIkZlZGVyYXRlZENyZWRlbnRpYWwiIGV4cGVjdGVkIHBy
b3BlcnR5ICJGZWRlcmF0ZWRDcmVkZW50aWFsIiBtaXNzaW5nCi1GQUlMIEZlZGVyYXRlZENyZWRl
bnRpYWwgaW50ZXJmYWNlIG9iamVjdCBsZW5ndGggYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBk
b2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiRmVkZXJhdGVkQ3JlZGVudGlhbCIgZXhwZWN0ZWQg
cHJvcGVydHkgIkZlZGVyYXRlZENyZWRlbnRpYWwiIG1pc3NpbmcKLUZBSUwgRmVkZXJhdGVkQ3Jl
ZGVudGlhbCBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBk
b2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiRmVkZXJhdGVkQ3JlZGVudGlhbCIgZXhwZWN0ZWQg
cHJvcGVydHkgIkZlZGVyYXRlZENyZWRlbnRpYWwiIG1pc3NpbmcKLUZBSUwgRmVkZXJhdGVkQ3Jl
ZGVudGlhbCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ug
cHJvdG90eXBlIG9iamVjdCBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUg
b3duIHByb3BlcnR5ICJGZWRlcmF0ZWRDcmVkZW50aWFsIiBleHBlY3RlZCBwcm9wZXJ0eSAiRmVk
ZXJhdGVkQ3JlZGVudGlhbCIgbWlzc2luZwotRkFJTCBGZWRlcmF0ZWRDcmVkZW50aWFsIGludGVy
ZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2Jq
ZWN0J3MgImNvbnN0cnVjdG9yIiBwcm9wZXJ0eSBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRv
ZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJGZWRlcmF0ZWRDcmVkZW50aWFsIiBleHBlY3RlZCBw
cm9wZXJ0eSAiRmVkZXJhdGVkQ3JlZGVudGlhbCIgbWlzc2luZwotRkFJTCBGZWRlcmF0ZWRDcmVk
ZW50aWFsIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBw
cm90b3R5cGUgb2JqZWN0J3MgQEB1bnNjb3BhYmxlcyBwcm9wZXJ0eSBhc3NlcnRfb3duX3Byb3Bl
cnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJGZWRlcmF0ZWRDcmVkZW50aWFs
IiBleHBlY3RlZCBwcm9wZXJ0eSAiRmVkZXJhdGVkQ3JlZGVudGlhbCIgbWlzc2luZwotRkFJTCBG
ZWRlcmF0ZWRDcmVkZW50aWFsIGludGVyZmFjZTogYXR0cmlidXRlIHByb3ZpZGVyIGFzc2VydF9v
d25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIkZlZGVyYXRlZENy
ZWRlbnRpYWwiIGV4cGVjdGVkIHByb3BlcnR5ICJGZWRlcmF0ZWRDcmVkZW50aWFsIiBtaXNzaW5n
Ci1GQUlMIEZlZGVyYXRlZENyZWRlbnRpYWwgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgcHJvdG9jb2wg
YXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiRmVk
ZXJhdGVkQ3JlZGVudGlhbCIgZXhwZWN0ZWQgcHJvcGVydHkgIkZlZGVyYXRlZENyZWRlbnRpYWwi
IG1pc3NpbmcKLUZBSUwgRmVkZXJhdGVkQ3JlZGVudGlhbCBtdXN0IGJlIHByaW1hcnkgaW50ZXJm
YWNlIG9mIG5ldyBGZWRlcmF0ZWRDcmVkZW50aWFsKHsgaWQ6ICJpZCIsIHByb3ZpZGVyOiAiaHR0
cHM6Ly9leGFtcGxlLmNvbSIsIGljb25VUkw6ICJodHRwczovL2V4YW1wbGUuY29tLyIsIG5hbWU6
ICJuYW1lIiB9KSBhc3NlcnRfZXF1YWxzOiBVbmV4cGVjdGVkIGV4Y2VwdGlvbiB3aGVuIGV2YWx1
YXRpbmcgb2JqZWN0IGV4cGVjdGVkIG51bGwgYnV0IGdvdCBvYmplY3QgIlJlZmVyZW5jZUVycm9y
OiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBGZWRlcmF0ZWRDcmVkZW50aWFsIgotRkFJTCBTdHJpbmdp
ZmljYXRpb24gb2YgbmV3IEZlZGVyYXRlZENyZWRlbnRpYWwoeyBpZDogImlkIiwgcHJvdmlkZXI6
ICJodHRwczovL2V4YW1wbGUuY29tIiwgaWNvblVSTDogImh0dHBzOi8vZXhhbXBsZS5jb20vIiwg
bmFtZTogIm5hbWUiIH0pIGFzc2VydF9lcXVhbHM6IFVuZXhwZWN0ZWQgZXhjZXB0aW9uIHdoZW4g
ZXZhbHVhdGluZyBvYmplY3QgZXhwZWN0ZWQgbnVsbCBidXQgZ290IG9iamVjdCAiUmVmZXJlbmNl
RXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IEZlZGVyYXRlZENyZWRlbnRpYWwiCi1GQUlMIEZl
ZGVyYXRlZENyZWRlbnRpYWwgaW50ZXJmYWNlOiBuZXcgRmVkZXJhdGVkQ3JlZGVudGlhbCh7IGlk
OiAiaWQiLCBwcm92aWRlcjogImh0dHBzOi8vZXhhbXBsZS5jb20iLCBpY29uVVJMOiAiaHR0cHM6
Ly9leGFtcGxlLmNvbS8iLCBuYW1lOiAibmFtZSIgfSkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJw
cm92aWRlciIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2VxdWFsczogVW5leHBlY3RlZCBl
eGNlcHRpb24gd2hlbiBldmFsdWF0aW5nIG9iamVjdCBleHBlY3RlZCBudWxsIGJ1dCBnb3Qgb2Jq
ZWN0ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogRmVkZXJhdGVkQ3JlZGVu
dGlhbCIKLUZBSUwgRmVkZXJhdGVkQ3JlZGVudGlhbCBpbnRlcmZhY2U6IG5ldyBGZWRlcmF0ZWRD
cmVkZW50aWFsKHsgaWQ6ICJpZCIsIHByb3ZpZGVyOiAiaHR0cHM6Ly9leGFtcGxlLmNvbSIsIGlj
b25VUkw6ICJodHRwczovL2V4YW1wbGUuY29tLyIsIG5hbWU6ICJuYW1lIiB9KSBtdXN0IGluaGVy
aXQgcHJvcGVydHkgInByb3RvY29sIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBhc3NlcnRfZXF1YWxz
OiBVbmV4cGVjdGVkIGV4Y2VwdGlvbiB3aGVuIGV2YWx1YXRpbmcgb2JqZWN0IGV4cGVjdGVkIG51
bGwgYnV0IGdvdCBvYmplY3QgIlJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBG
ZWRlcmF0ZWRDcmVkZW50aWFsIgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2NyZWRlbnRpYWwtbWFuYWdlbWVudC9pZGwuaHR0cHMuaHRt
bCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3JlZGVudGlh
bC1tYW5hZ2VtZW50L2lkbC5odHRwcy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA4NzU0YjVhMzBiNmMyYzRhYzM4NmUwOWE4MjA5Njc3NDUwNGEyZjJlLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3JlZGVudGlhbC1tYW5hZ2VtZW50L2lkbC5odHRwcy5odG1s
CisrKyAvZGV2L251bGwKQEAgLTEsMTAzICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPHNjcmlw
dCBzcmM9L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcz48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPS9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanM+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0vcmVz
b3VyY2VzL1dlYklETFBhcnNlci5qcz48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPS9yZXNvdXJjZXMv
aWRsaGFybmVzcy5qcz48L3NjcmlwdD4KLTxzY3JpcHQgdHlwZT0idGV4dC9wbGFpbiIgaWQ9InVu
dGVzdGVkIj4KLSAgICBkaWN0aW9uYXJ5IENyZWRlbnRpYWxEYXRhIHsKLSAgICAgIFVTVlN0cmlu
ZyBpZDsKLSAgICB9OwotCi0gICAgW0V4cG9zZWQ9V2luZG93LCBTZWN1cmVDb250ZXh0XQotICAg
IGludGVyZmFjZSBDcmVkZW50aWFsIHsKLSAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBVU1ZTdHJp
bmcgaWQ7Ci0gICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHR5cGU7Ci0gICAgfTsK
LQotICAgIFtOb0ludGVyZmFjZU9iamVjdCwgU2VjdXJlQ29udGV4dF0KLSAgICBpbnRlcmZhY2Ug
Q3JlZGVudGlhbFVzZXJEYXRhIHsKLSAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBVU1ZTdHJpbmcg
bmFtZTsKLSAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBVU1ZTdHJpbmcgaWNvblVSTDsKLSAgICB9
OwotCi0gICAgZGljdGlvbmFyeSBQYXNzd29yZENyZWRlbnRpYWxEYXRhIDogQ3JlZGVudGlhbERh
dGEgewotICAgICAgVVNWU3RyaW5nIG5hbWU7Ci0gICAgICBVU1ZTdHJpbmcgaWNvblVSTDsKLSAg
ICAgIHJlcXVpcmVkIFVTVlN0cmluZyBwYXNzd29yZDsKLSAgICB9OwotCi0gICAgdHlwZWRlZiAo
UGFzc3dvcmRDcmVkZW50aWFsRGF0YSBvciBIVE1MRm9ybUVsZW1lbnQpIFBhc3N3b3JkQ3JlZGVu
dGlhbEluaXQ7Ci0KLSAgICB0eXBlZGVmIChGb3JtRGF0YSBvciBVUkxTZWFyY2hQYXJhbXMpIENy
ZWRlbnRpYWxCb2R5VHlwZTsKLQotCi0gICAgZGljdGlvbmFyeSBGZWRlcmF0ZWRDcmVkZW50aWFs
SW5pdCA6IENyZWRlbnRpYWxEYXRhIHsKLSAgICAgIFVTVlN0cmluZyBuYW1lOwotICAgICAgVVNW
U3RyaW5nIGljb25VUkw7Ci0gICAgICByZXF1aXJlZCBVU1ZTdHJpbmcgcHJvdmlkZXI7Ci0gICAg
ICBET01TdHJpbmcgcHJvdG9jb2w7Ci0gICAgfTsKLQotICAgIGRpY3Rpb25hcnkgQ3JlZGVudGlh
bENyZWF0aW9uT3B0aW9ucyB7Ci0gICAgICBQYXNzd29yZENyZWRlbnRpYWxJbml0PyBwYXNzd29y
ZDsKLSAgICAgIEZlZGVyYXRlZENyZWRlbnRpYWxJbml0PyBmZWRlcmF0ZWQ7Ci0gICAgfTsKLQot
ICAgIGVudW0gQ3JlZGVudGlhbE1lZGlhdGlvblJlcXVpcmVtZW50IHsKLSAgICAgICJzaWxlbnQi
LAotICAgICAgIm9wdGlvbmFsIiwKLSAgICAgICJyZXF1aXJlZCIKLSAgICB9OwotCi0gICAgZGlj
dGlvbmFyeSBDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMgewotICAgICAgYm9vbGVhbiBwYXNzd29y
ZCA9IGZhbHNlOwotICAgICAgRmVkZXJhdGVkQ3JlZGVudGlhbFJlcXVlc3RPcHRpb25zIGZlZGVy
YXRlZDsKLQotICAgICAgQ3JlZGVudGlhbE1lZGlhdGlvblJlcXVpcmVtZW50IG1lZGlhdGlvbiA9
ICJvcHRpb25hbCI7Ci0gICAgfTsKLQotICAgIGRpY3Rpb25hcnkgRmVkZXJhdGVkQ3JlZGVudGlh
bFJlcXVlc3RPcHRpb25zIHsKLSAgICAgIHNlcXVlbmNlPFVTVlN0cmluZz4gcHJvdmlkZXJzOwot
ICAgICAgc2VxdWVuY2U8RE9NU3RyaW5nPiBwcm90b2NvbHM7Ci0gICAgfTsKLQotPC9zY3JpcHQ+
Ci08c2NyaXB0IHR5cGU9InRleHQvcGxhaW4iIGlkPSJ0ZXN0ZWQiPgotICAgIFtFeHBvc2VkPVdp
bmRvdywgU2VjdXJlQ29udGV4dF0KLSAgICBpbnRlcmZhY2UgQ3JlZGVudGlhbHNDb250YWluZXIg
ewotICAgICAgUHJvbWlzZTxDcmVkZW50aWFsPiBnZXQob3B0aW9uYWwgQ3JlZGVudGlhbFJlcXVl
c3RPcHRpb25zIG9wdGlvbnMpOwotICAgICAgUHJvbWlzZTxDcmVkZW50aWFsPiBzdG9yZShDcmVk
ZW50aWFsIGNyZWRlbnRpYWwpOwotICAgICAgUHJvbWlzZTxDcmVkZW50aWFsPz4gY3JlYXRlKG9w
dGlvbmFsIENyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMgb3B0aW9ucyk7Ci0gICAgICBQcm9taXNl
PHZvaWQ+IHByZXZlbnRTaWxlbnRBY2Nlc3MoKTsKLSAgICB9OwotCi0gICAgW0NvbnN0cnVjdG9y
KFBhc3N3b3JkQ3JlZGVudGlhbERhdGEgZGF0YSksCi0gICAgIENvbnN0cnVjdG9yKEhUTUxGb3Jt
RWxlbWVudCBmb3JtKSwKLSAgICAgRXhwb3NlZD1XaW5kb3csCi0gICAgIFNlY3VyZUNvbnRleHRd
Ci0gICAgaW50ZXJmYWNlIFBhc3N3b3JkQ3JlZGVudGlhbCA6IENyZWRlbnRpYWwgewotICAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBwYXNzd29yZDsKLSAgICB9OwotICAgIFBhc3N3
b3JkQ3JlZGVudGlhbCBpbXBsZW1lbnRzIENyZWRlbnRpYWxVc2VyRGF0YTsKLQotICAgIFtDb25z
dHJ1Y3RvcihGZWRlcmF0ZWRDcmVkZW50aWFsSW5pdCBkYXRhKSwKLSAgICAgRXhwb3NlZD1XaW5k
b3csCi0gICAgIFNlY3VyZUNvbnRleHRdCi0gICAgaW50ZXJmYWNlIEZlZGVyYXRlZENyZWRlbnRp
YWwgOiBDcmVkZW50aWFsIHsKLSAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBVU1ZTdHJpbmcgcHJv
dmlkZXI7Ci0gICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nPyBwcm90b2NvbDsKLSAg
ICB9OwotICAgIEZlZGVyYXRlZENyZWRlbnRpYWwgaW1wbGVtZW50cyBDcmVkZW50aWFsVXNlckRh
dGE7Ci08L3NjcmlwdD4KLTxzY3JpcHQ+Ci0gICAgInVzZSBzdHJpY3QiOwotICAgIHZhciBpZGxf
YXJyYXkgPSBuZXcgSWRsQXJyYXkoKTsKLSAgICBpZGxfYXJyYXkuYWRkX3VudGVzdGVkX2lkbHMo
ZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3VudGVzdGVkJykudGV4dENvbnRlbnQpOwotICAgIGlk
bF9hcnJheS5hZGRfaWRscyhkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjdGVzdGVkJykudGV4dENv
bnRlbnQpOwotICAgIGlkbF9hcnJheS5hZGRfb2JqZWN0cyh7Ci0gICAgICBDcmVkZW50aWFsc0Nv
bnRhaW5lcjogWyduYXZpZ2F0b3IuY3JlZGVudGlhbHMnXSwKLSAgICAgIFBhc3N3b3JkQ3JlZGVu
dGlhbDogWyduZXcgUGFzc3dvcmRDcmVkZW50aWFsKHsgaWQ6ICJpZCIsIHBhc3N3b3JkOiAicGVu
Y2lsIiwgaWNvblVSTDogImh0dHBzOi8vZXhhbXBsZS5jb20vIiwgbmFtZTogIm5hbWUiIH0pJ10s
Ci0gICAgICBGZWRlcmF0ZWRDcmVkZW50aWFsOiBbJ25ldyBGZWRlcmF0ZWRDcmVkZW50aWFsKHsg
aWQ6ICJpZCIsIHByb3ZpZGVyOiAiaHR0cHM6Ly9leGFtcGxlLmNvbSIsIGljb25VUkw6ICJodHRw
czovL2V4YW1wbGUuY29tLyIsIG5hbWU6ICJuYW1lIiB9KSddCi0gICAgfSk7Ci0gICAgaWRsX2Fy
cmF5LnRlc3QoKTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jcmVkZW50aWFsLW1hbmFnZW1lbnQvaWRsaGFybmVzcy5o
dHRwcy53aW5kb3ctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jcmVkZW50aWFsLW1hbmFnZW1lbnQvaWRsaGFybmVzcy5odHRwcy53aW5k
b3ctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFmODI0NWM4MTIxOGQ1NWExMGI1ZGY3YTJhNmQ2
ZWYzOWI3Mjk0ODIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2NyZWRlbnRpYWwtbWFuYWdlbWVudC9pZGxoYXJuZXNzLmh0dHBz
LndpbmRvdy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw3MCBAQAorCitQQVNTIGlkbF90ZXN0IHNl
dHVwIAorUEFTUyBQYXJ0aWFsIGludGVyZmFjZSBOYXZpZ2F0b3I6IG9yaWdpbmFsIGludGVyZmFj
ZSBkZWZpbmVkIAorUEFTUyBQYXJ0aWFsIGRpY3Rpb25hcnkgQ3JlZGVudGlhbFJlcXVlc3RPcHRp
b25zOiBvcmlnaW5hbCBkaWN0aW9uYXJ5IGRlZmluZWQgCitQQVNTIFBhcnRpYWwgZGljdGlvbmFy
eSBDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zOiBvcmlnaW5hbCBkaWN0aW9uYXJ5IGRlZmluZWQg
CitQQVNTIFBhcnRpYWwgZGljdGlvbmFyeSBDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnNbMl06IG9y
aWdpbmFsIGRpY3Rpb25hcnkgZGVmaW5lZCAKK1BBU1MgUGFydGlhbCBkaWN0aW9uYXJ5IENyZWRl
bnRpYWxDcmVhdGlvbk9wdGlvbnNbMl06IG9yaWdpbmFsIGRpY3Rpb25hcnkgZGVmaW5lZCAKK1BB
U1MgQ3JlZGVudGlhbCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRl
cmZhY2Ugb2JqZWN0IAorUEFTUyBDcmVkZW50aWFsIGludGVyZmFjZSBvYmplY3QgbGVuZ3RoIAor
UEFTUyBDcmVkZW50aWFsIGludGVyZmFjZSBvYmplY3QgbmFtZSAKK1BBU1MgQ3JlZGVudGlhbCBp
bnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBl
IG9iamVjdCAKK1BBU1MgQ3JlZGVudGlhbCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVy
dGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzICJjb25zdHJ1Y3RvciIgcHJvcGVy
dHkgCitQQVNTIENyZWRlbnRpYWwgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMg
b2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyBAQHVuc2NvcGFibGVzIHByb3BlcnR5IAor
UEFTUyBDcmVkZW50aWFsIGludGVyZmFjZTogYXR0cmlidXRlIGlkIAorUEFTUyBDcmVkZW50aWFs
IGludGVyZmFjZTogYXR0cmlidXRlIHR5cGUgCitQQVNTIENyZWRlbnRpYWxzQ29udGFpbmVyIGlu
dGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgCitQ
QVNTIENyZWRlbnRpYWxzQ29udGFpbmVyIGludGVyZmFjZSBvYmplY3QgbGVuZ3RoIAorUEFTUyBD
cmVkZW50aWFsc0NvbnRhaW5lciBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUgCitQQVNTIENyZWRlbnRp
YWxzQ29udGFpbmVyIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVy
ZmFjZSBwcm90b3R5cGUgb2JqZWN0IAorUEFTUyBDcmVkZW50aWFsc0NvbnRhaW5lciBpbnRlcmZh
Y2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVj
dCdzICJjb25zdHJ1Y3RvciIgcHJvcGVydHkgCitQQVNTIENyZWRlbnRpYWxzQ29udGFpbmVyIGlu
dGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUg
b2JqZWN0J3MgQEB1bnNjb3BhYmxlcyBwcm9wZXJ0eSAKK1BBU1MgQ3JlZGVudGlhbHNDb250YWlu
ZXIgaW50ZXJmYWNlOiBvcGVyYXRpb24gZ2V0KENyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucykgCitQ
QVNTIENyZWRlbnRpYWxzQ29udGFpbmVyIGludGVyZmFjZTogb3BlcmF0aW9uIHN0b3JlKENyZWRl
bnRpYWwpIAorUEFTUyBDcmVkZW50aWFsc0NvbnRhaW5lciBpbnRlcmZhY2U6IG9wZXJhdGlvbiBj
cmVhdGUoQ3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucykgCitQQVNTIENyZWRlbnRpYWxzQ29udGFp
bmVyIGludGVyZmFjZTogb3BlcmF0aW9uIHByZXZlbnRTaWxlbnRBY2Nlc3MoKSAKK1BBU1MgQ3Jl
ZGVudGlhbHNDb250YWluZXIgbXVzdCBiZSBwcmltYXJ5IGludGVyZmFjZSBvZiBuYXZpZ2F0b3Iu
Y3JlZGVudGlhbHMgCitQQVNTIFN0cmluZ2lmaWNhdGlvbiBvZiBuYXZpZ2F0b3IuY3JlZGVudGlh
bHMgCitQQVNTIENyZWRlbnRpYWxzQ29udGFpbmVyIGludGVyZmFjZTogbmF2aWdhdG9yLmNyZWRl
bnRpYWxzIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiZ2V0KENyZWRlbnRpYWxSZXF1ZXN0T3B0aW9u
cykiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBDcmVkZW50aWFsc0NvbnRhaW5lciBpbnRl
cmZhY2U6IGNhbGxpbmcgZ2V0KENyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucykgb24gbmF2aWdhdG9y
LmNyZWRlbnRpYWxzIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3Ig
CitQQVNTIENyZWRlbnRpYWxzQ29udGFpbmVyIGludGVyZmFjZTogbmF2aWdhdG9yLmNyZWRlbnRp
YWxzIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAic3RvcmUoQ3JlZGVudGlhbCkiIHdpdGggdGhlIHBy
b3BlciB0eXBlIAorUEFTUyBDcmVkZW50aWFsc0NvbnRhaW5lciBpbnRlcmZhY2U6IGNhbGxpbmcg
c3RvcmUoQ3JlZGVudGlhbCkgb24gbmF2aWdhdG9yLmNyZWRlbnRpYWxzIHdpdGggdG9vIGZldyBh
cmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCitQQVNTIENyZWRlbnRpYWxzQ29udGFpbmVy
IGludGVyZmFjZTogbmF2aWdhdG9yLmNyZWRlbnRpYWxzIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAi
Y3JlYXRlKENyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAK
K1BBU1MgQ3JlZGVudGlhbHNDb250YWluZXIgaW50ZXJmYWNlOiBjYWxsaW5nIGNyZWF0ZShDcmVk
ZW50aWFsQ3JlYXRpb25PcHRpb25zKSBvbiBuYXZpZ2F0b3IuY3JlZGVudGlhbHMgd2l0aCB0b28g
ZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKK1BBU1MgQ3JlZGVudGlhbHNDb250
YWluZXIgaW50ZXJmYWNlOiBuYXZpZ2F0b3IuY3JlZGVudGlhbHMgbXVzdCBpbmhlcml0IHByb3Bl
cnR5ICJwcmV2ZW50U2lsZW50QWNjZXNzKCkiIHdpdGggdGhlIHByb3BlciB0eXBlIAorRkFJTCBQ
YXNzd29yZENyZWRlbnRpYWwgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2Yg
aW50ZXJmYWNlIG9iamVjdCBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUg
b3duIHByb3BlcnR5ICJQYXNzd29yZENyZWRlbnRpYWwiIGV4cGVjdGVkIHByb3BlcnR5ICJQYXNz
d29yZENyZWRlbnRpYWwiIG1pc3NpbmcKK0ZBSUwgUGFzc3dvcmRDcmVkZW50aWFsIGludGVyZmFj
ZSBvYmplY3QgbGVuZ3RoIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBv
d24gcHJvcGVydHkgIlBhc3N3b3JkQ3JlZGVudGlhbCIgZXhwZWN0ZWQgcHJvcGVydHkgIlBhc3N3
b3JkQ3JlZGVudGlhbCIgbWlzc2luZworRkFJTCBQYXNzd29yZENyZWRlbnRpYWwgaW50ZXJmYWNl
IG9iamVjdCBuYW1lIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24g
cHJvcGVydHkgIlBhc3N3b3JkQ3JlZGVudGlhbCIgZXhwZWN0ZWQgcHJvcGVydHkgIlBhc3N3b3Jk
Q3JlZGVudGlhbCIgbWlzc2luZworRkFJTCBQYXNzd29yZENyZWRlbnRpYWwgaW50ZXJmYWNlOiBl
eGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgYXNz
ZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiUGFzc3dv
cmRDcmVkZW50aWFsIiBleHBlY3RlZCBwcm9wZXJ0eSAiUGFzc3dvcmRDcmVkZW50aWFsIiBtaXNz
aW5nCitGQUlMIFBhc3N3b3JkQ3JlZGVudGlhbCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJv
cGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzICJjb25zdHJ1Y3RvciIgcHJv
cGVydHkgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0
eSAiUGFzc3dvcmRDcmVkZW50aWFsIiBleHBlY3RlZCBwcm9wZXJ0eSAiUGFzc3dvcmRDcmVkZW50
aWFsIiBtaXNzaW5nCitGQUlMIFBhc3N3b3JkQ3JlZGVudGlhbCBpbnRlcmZhY2U6IGV4aXN0ZW5j
ZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzIEBAdW5zY29w
YWJsZXMgcHJvcGVydHkgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93
biBwcm9wZXJ0eSAiUGFzc3dvcmRDcmVkZW50aWFsIiBleHBlY3RlZCBwcm9wZXJ0eSAiUGFzc3dv
cmRDcmVkZW50aWFsIiBtaXNzaW5nCitGQUlMIFBhc3N3b3JkQ3JlZGVudGlhbCBpbnRlcmZhY2U6
IGF0dHJpYnV0ZSBwYXNzd29yZCBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhh
dmUgb3duIHByb3BlcnR5ICJQYXNzd29yZENyZWRlbnRpYWwiIGV4cGVjdGVkIHByb3BlcnR5ICJQ
YXNzd29yZENyZWRlbnRpYWwiIG1pc3NpbmcKK0ZBSUwgUGFzc3dvcmRDcmVkZW50aWFsIGludGVy
ZmFjZTogYXR0cmlidXRlIG5hbWUgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBo
YXZlIG93biBwcm9wZXJ0eSAiUGFzc3dvcmRDcmVkZW50aWFsIiBleHBlY3RlZCBwcm9wZXJ0eSAi
UGFzc3dvcmRDcmVkZW50aWFsIiBtaXNzaW5nCitGQUlMIFBhc3N3b3JkQ3JlZGVudGlhbCBpbnRl
cmZhY2U6IGF0dHJpYnV0ZSBpY29uVVJMIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBu
b3QgaGF2ZSBvd24gcHJvcGVydHkgIlBhc3N3b3JkQ3JlZGVudGlhbCIgZXhwZWN0ZWQgcHJvcGVy
dHkgIlBhc3N3b3JkQ3JlZGVudGlhbCIgbWlzc2luZworRkFJTCBQYXNzd29yZENyZWRlbnRpYWwg
bXVzdCBiZSBwcmltYXJ5IGludGVyZmFjZSBvZiBwYXNzd29yZENyZWRlbnRpYWwgYXNzZXJ0X2Vx
dWFsczogVW5leHBlY3RlZCBleGNlcHRpb24gd2hlbiBldmFsdWF0aW5nIG9iamVjdCBleHBlY3Rl
ZCBudWxsIGJ1dCBnb3Qgb2JqZWN0ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJs
ZTogcGFzc3dvcmRDcmVkZW50aWFsIgorRkFJTCBTdHJpbmdpZmljYXRpb24gb2YgcGFzc3dvcmRD
cmVkZW50aWFsIGFzc2VydF9lcXVhbHM6IFVuZXhwZWN0ZWQgZXhjZXB0aW9uIHdoZW4gZXZhbHVh
dGluZyBvYmplY3QgZXhwZWN0ZWQgbnVsbCBidXQgZ290IG9iamVjdCAiUmVmZXJlbmNlRXJyb3I6
IENhbid0IGZpbmQgdmFyaWFibGU6IHBhc3N3b3JkQ3JlZGVudGlhbCIKK0ZBSUwgUGFzc3dvcmRD
cmVkZW50aWFsIGludGVyZmFjZTogcGFzc3dvcmRDcmVkZW50aWFsIG11c3QgaW5oZXJpdCBwcm9w
ZXJ0eSAicGFzc3dvcmQiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9lcXVhbHM6IFVuZXhw
ZWN0ZWQgZXhjZXB0aW9uIHdoZW4gZXZhbHVhdGluZyBvYmplY3QgZXhwZWN0ZWQgbnVsbCBidXQg
Z290IG9iamVjdCAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IHBhc3N3b3Jk
Q3JlZGVudGlhbCIKK0ZBSUwgUGFzc3dvcmRDcmVkZW50aWFsIGludGVyZmFjZTogcGFzc3dvcmRD
cmVkZW50aWFsIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAibmFtZSIgd2l0aCB0aGUgcHJvcGVyIHR5
cGUgYXNzZXJ0X2VxdWFsczogVW5leHBlY3RlZCBleGNlcHRpb24gd2hlbiBldmFsdWF0aW5nIG9i
amVjdCBleHBlY3RlZCBudWxsIGJ1dCBnb3Qgb2JqZWN0ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3Qg
ZmluZCB2YXJpYWJsZTogcGFzc3dvcmRDcmVkZW50aWFsIgorRkFJTCBQYXNzd29yZENyZWRlbnRp
YWwgaW50ZXJmYWNlOiBwYXNzd29yZENyZWRlbnRpYWwgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJp
Y29uVVJMIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBhc3NlcnRfZXF1YWxzOiBVbmV4cGVjdGVkIGV4
Y2VwdGlvbiB3aGVuIGV2YWx1YXRpbmcgb2JqZWN0IGV4cGVjdGVkIG51bGwgYnV0IGdvdCBvYmpl
Y3QgIlJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBwYXNzd29yZENyZWRlbnRp
YWwiCitGQUlMIENyZWRlbnRpYWwgaW50ZXJmYWNlOiBwYXNzd29yZENyZWRlbnRpYWwgbXVzdCBp
bmhlcml0IHByb3BlcnR5ICJpZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2VxdWFsczog
VW5leHBlY3RlZCBleGNlcHRpb24gd2hlbiBldmFsdWF0aW5nIG9iamVjdCBleHBlY3RlZCBudWxs
IGJ1dCBnb3Qgb2JqZWN0ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogcGFz
c3dvcmRDcmVkZW50aWFsIgorRkFJTCBDcmVkZW50aWFsIGludGVyZmFjZTogcGFzc3dvcmRDcmVk
ZW50aWFsIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAidHlwZSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUg
YXNzZXJ0X2VxdWFsczogVW5leHBlY3RlZCBleGNlcHRpb24gd2hlbiBldmFsdWF0aW5nIG9iamVj
dCBleHBlY3RlZCBudWxsIGJ1dCBnb3Qgb2JqZWN0ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmlu
ZCB2YXJpYWJsZTogcGFzc3dvcmRDcmVkZW50aWFsIgorRkFJTCBGZWRlcmF0ZWRDcmVkZW50aWFs
IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3Qg
YXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiRmVk
ZXJhdGVkQ3JlZGVudGlhbCIgZXhwZWN0ZWQgcHJvcGVydHkgIkZlZGVyYXRlZENyZWRlbnRpYWwi
IG1pc3NpbmcKK0ZBSUwgRmVkZXJhdGVkQ3JlZGVudGlhbCBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0
aCBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJG
ZWRlcmF0ZWRDcmVkZW50aWFsIiBleHBlY3RlZCBwcm9wZXJ0eSAiRmVkZXJhdGVkQ3JlZGVudGlh
bCIgbWlzc2luZworRkFJTCBGZWRlcmF0ZWRDcmVkZW50aWFsIGludGVyZmFjZSBvYmplY3QgbmFt
ZSBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJG
ZWRlcmF0ZWRDcmVkZW50aWFsIiBleHBlY3RlZCBwcm9wZXJ0eSAiRmVkZXJhdGVkQ3JlZGVudGlh
bCIgbWlzc2luZworRkFJTCBGZWRlcmF0ZWRDcmVkZW50aWFsIGludGVyZmFjZTogZXhpc3RlbmNl
IGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IGFzc2VydF9vd25f
cHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIkZlZGVyYXRlZENyZWRl
bnRpYWwiIGV4cGVjdGVkIHByb3BlcnR5ICJGZWRlcmF0ZWRDcmVkZW50aWFsIiBtaXNzaW5nCitG
QUlMIEZlZGVyYXRlZENyZWRlbnRpYWwgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRp
ZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyAiY29uc3RydWN0b3IiIHByb3BlcnR5
IGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIkZl
ZGVyYXRlZENyZWRlbnRpYWwiIGV4cGVjdGVkIHByb3BlcnR5ICJGZWRlcmF0ZWRDcmVkZW50aWFs
IiBtaXNzaW5nCitGQUlMIEZlZGVyYXRlZENyZWRlbnRpYWwgaW50ZXJmYWNlOiBleGlzdGVuY2Ug
YW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyBAQHVuc2NvcGFi
bGVzIHByb3BlcnR5IGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24g
cHJvcGVydHkgIkZlZGVyYXRlZENyZWRlbnRpYWwiIGV4cGVjdGVkIHByb3BlcnR5ICJGZWRlcmF0
ZWRDcmVkZW50aWFsIiBtaXNzaW5nCitGQUlMIEZlZGVyYXRlZENyZWRlbnRpYWwgaW50ZXJmYWNl
OiBhdHRyaWJ1dGUgcHJvdmlkZXIgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBo
YXZlIG93biBwcm9wZXJ0eSAiRmVkZXJhdGVkQ3JlZGVudGlhbCIgZXhwZWN0ZWQgcHJvcGVydHkg
IkZlZGVyYXRlZENyZWRlbnRpYWwiIG1pc3NpbmcKK0ZBSUwgRmVkZXJhdGVkQ3JlZGVudGlhbCBp
bnRlcmZhY2U6IGF0dHJpYnV0ZSBwcm90b2NvbCBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRv
ZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJGZWRlcmF0ZWRDcmVkZW50aWFsIiBleHBlY3RlZCBw
cm9wZXJ0eSAiRmVkZXJhdGVkQ3JlZGVudGlhbCIgbWlzc2luZworRkFJTCBGZWRlcmF0ZWRDcmVk
ZW50aWFsIGludGVyZmFjZTogYXR0cmlidXRlIG5hbWUgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2Vs
ZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiRmVkZXJhdGVkQ3JlZGVudGlhbCIgZXhwZWN0
ZWQgcHJvcGVydHkgIkZlZGVyYXRlZENyZWRlbnRpYWwiIG1pc3NpbmcKK0ZBSUwgRmVkZXJhdGVk
Q3JlZGVudGlhbCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBpY29uVVJMIGFzc2VydF9vd25fcHJvcGVy
dHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIkZlZGVyYXRlZENyZWRlbnRpYWwi
IGV4cGVjdGVkIHByb3BlcnR5ICJGZWRlcmF0ZWRDcmVkZW50aWFsIiBtaXNzaW5nCitGQUlMIEZl
ZGVyYXRlZENyZWRlbnRpYWwgbXVzdCBiZSBwcmltYXJ5IGludGVyZmFjZSBvZiBmZWRlcmF0ZWRD
cmVkZW50aWFsIGFzc2VydF9lcXVhbHM6IFVuZXhwZWN0ZWQgZXhjZXB0aW9uIHdoZW4gZXZhbHVh
dGluZyBvYmplY3QgZXhwZWN0ZWQgbnVsbCBidXQgZ290IG9iamVjdCAiUmVmZXJlbmNlRXJyb3I6
IENhbid0IGZpbmQgdmFyaWFibGU6IGZlZGVyYXRlZENyZWRlbnRpYWwiCitGQUlMIFN0cmluZ2lm
aWNhdGlvbiBvZiBmZWRlcmF0ZWRDcmVkZW50aWFsIGFzc2VydF9lcXVhbHM6IFVuZXhwZWN0ZWQg
ZXhjZXB0aW9uIHdoZW4gZXZhbHVhdGluZyBvYmplY3QgZXhwZWN0ZWQgbnVsbCBidXQgZ290IG9i
amVjdCAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IGZlZGVyYXRlZENyZWRl
bnRpYWwiCitGQUlMIEZlZGVyYXRlZENyZWRlbnRpYWwgaW50ZXJmYWNlOiBmZWRlcmF0ZWRDcmVk
ZW50aWFsIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAicHJvdmlkZXIiIHdpdGggdGhlIHByb3BlciB0
eXBlIGFzc2VydF9lcXVhbHM6IFVuZXhwZWN0ZWQgZXhjZXB0aW9uIHdoZW4gZXZhbHVhdGluZyBv
YmplY3QgZXhwZWN0ZWQgbnVsbCBidXQgZ290IG9iamVjdCAiUmVmZXJlbmNlRXJyb3I6IENhbid0
IGZpbmQgdmFyaWFibGU6IGZlZGVyYXRlZENyZWRlbnRpYWwiCitGQUlMIEZlZGVyYXRlZENyZWRl
bnRpYWwgaW50ZXJmYWNlOiBmZWRlcmF0ZWRDcmVkZW50aWFsIG11c3QgaW5oZXJpdCBwcm9wZXJ0
eSAicHJvdG9jb2wiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9lcXVhbHM6IFVuZXhwZWN0
ZWQgZXhjZXB0aW9uIHdoZW4gZXZhbHVhdGluZyBvYmplY3QgZXhwZWN0ZWQgbnVsbCBidXQgZ290
IG9iamVjdCAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IGZlZGVyYXRlZENy
ZWRlbnRpYWwiCitGQUlMIEZlZGVyYXRlZENyZWRlbnRpYWwgaW50ZXJmYWNlOiBmZWRlcmF0ZWRD
cmVkZW50aWFsIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAibmFtZSIgd2l0aCB0aGUgcHJvcGVyIHR5
cGUgYXNzZXJ0X2VxdWFsczogVW5leHBlY3RlZCBleGNlcHRpb24gd2hlbiBldmFsdWF0aW5nIG9i
amVjdCBleHBlY3RlZCBudWxsIGJ1dCBnb3Qgb2JqZWN0ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3Qg
ZmluZCB2YXJpYWJsZTogZmVkZXJhdGVkQ3JlZGVudGlhbCIKK0ZBSUwgRmVkZXJhdGVkQ3JlZGVu
dGlhbCBpbnRlcmZhY2U6IGZlZGVyYXRlZENyZWRlbnRpYWwgbXVzdCBpbmhlcml0IHByb3BlcnR5
ICJpY29uVVJMIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBhc3NlcnRfZXF1YWxzOiBVbmV4cGVjdGVk
IGV4Y2VwdGlvbiB3aGVuIGV2YWx1YXRpbmcgb2JqZWN0IGV4cGVjdGVkIG51bGwgYnV0IGdvdCBv
YmplY3QgIlJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBmZWRlcmF0ZWRDcmVk
ZW50aWFsIgorRkFJTCBDcmVkZW50aWFsIGludGVyZmFjZTogZmVkZXJhdGVkQ3JlZGVudGlhbCBt
dXN0IGluaGVyaXQgcHJvcGVydHkgImlkIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBhc3NlcnRfZXF1
YWxzOiBVbmV4cGVjdGVkIGV4Y2VwdGlvbiB3aGVuIGV2YWx1YXRpbmcgb2JqZWN0IGV4cGVjdGVk
IG51bGwgYnV0IGdvdCBvYmplY3QgIlJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxl
OiBmZWRlcmF0ZWRDcmVkZW50aWFsIgorRkFJTCBDcmVkZW50aWFsIGludGVyZmFjZTogZmVkZXJh
dGVkQ3JlZGVudGlhbCBtdXN0IGluaGVyaXQgcHJvcGVydHkgInR5cGUiIHdpdGggdGhlIHByb3Bl
ciB0eXBlIGFzc2VydF9lcXVhbHM6IFVuZXhwZWN0ZWQgZXhjZXB0aW9uIHdoZW4gZXZhbHVhdGlu
ZyBvYmplY3QgZXhwZWN0ZWQgbnVsbCBidXQgZ290IG9iamVjdCAiUmVmZXJlbmNlRXJyb3I6IENh
bid0IGZpbmQgdmFyaWFibGU6IGZlZGVyYXRlZENyZWRlbnRpYWwiCitQQVNTIE5hdmlnYXRvciBp
bnRlcmZhY2U6IGF0dHJpYnV0ZSBjcmVkZW50aWFscyAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jcmVkZW50aWFsLW1hbmFnZW1lbnQv
aWRsaGFybmVzcy5odHRwcy53aW5kb3cuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3JlZGVudGlhbC1tYW5hZ2VtZW50L2lkbGhhcm5lc3MuaHR0cHMu
d2luZG93Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjM4MjkxMzUyOGU2OTNiM2E1ZDU2YzY2MGE0NTA2MDk4
MGI1NDhjMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvY3JlZGVudGlhbC1tYW5hZ2VtZW50L2lkbGhhcm5lc3MuaHR0cHMud2lu
ZG93Lmh0bWwKQEAgLTAsMCArMSBAQAorPCEtLSBUaGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9yIFdl
YktpdCB0ZXN0IGluZnJhc3RydWN0dXJlIHRvIHJ1biB0aGUgdGVtcGxhdGVkIHRlc3QgLS0+Clwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jcmVkZW50aWFsLW1hbmFnZW1lbnQvaWRsaGFybmVz
cy5odHRwcy53aW5kb3cuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2NyZWRlbnRpYWwtbWFuYWdlbWVudC9pZGxoYXJuZXNzLmh0dHBzLndpbmRvdy5qcwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi43ODk2NDNlMjM2OWZjYTBiYWVkMTI1NzliYzBjZmIyM2Y5NDNmNjFlCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jcmVkZW50aWFsLW1hbmFnZW1lbnQvaWRsaGFybmVzcy5odHRwcy53aW5kb3cuanMKQEAgLTAs
MCArMSwzNiBAQAorLy8gTUVUQTogc2NyaXB0PS9yZXNvdXJjZXMvV2ViSURMUGFyc2VyLmpzCisv
LyBNRVRBOiBzY3JpcHQ9L3Jlc291cmNlcy9pZGxoYXJuZXNzLmpzCisKKy8vIGh0dHBzOi8vdzNj
LmdpdGh1Yi5pby93ZWJhcHBzZWMtY3JlZGVudGlhbC1tYW5hZ2VtZW50LworCisndXNlIHN0cmlj
dCc7CisKK2lkbF90ZXN0KAorICBbJ2NyZWRlbnRpYWwtbWFuYWdlbWVudCddLAorICBbJ2h0bWwn
LCAnZG9tJ10sCisgIGlkbF9hcnJheSA9PiB7CisgICAgaWRsX2FycmF5LmFkZF9vYmplY3RzKHsK
KyAgICAgIENyZWRlbnRpYWxzQ29udGFpbmVyOiBbJ25hdmlnYXRvci5jcmVkZW50aWFscyddLAor
ICAgICAgUGFzc3dvcmRDcmVkZW50aWFsOiBbJ3Bhc3N3b3JkQ3JlZGVudGlhbCddLAorICAgICAg
RmVkZXJhdGVkQ3JlZGVudGlhbDogWydmZWRlcmF0ZWRDcmVkZW50aWFsJ10sCisgICAgfSk7CisK
KyAgICB0cnkgeworICAgICAgc2VsZi5wYXNzd29yZENyZWRlbnRpYWwgPSBuZXcgUGFzc3dvcmRD
cmVkZW50aWFsKHsKKyAgICAgICAgaWQ6ICJpZCIsCisgICAgICAgIHBhc3N3b3JkOiAicGVuY2ls
IiwKKyAgICAgICAgaWNvblVSTDogImh0dHBzOi8vZXhhbXBsZS5jb20vIiwKKyAgICAgICAgbmFt
ZTogIm5hbWUiCisgICAgICB9KTsKKyAgICB9IGNhdGNoIChlKSB7fQorCisgICAgdHJ5IHsKKyAg
ICAgIHNlbGYuZmVkZXJhdGVkQ3JlZGVudGlhbCA9IG5ldyBGZWRlcmF0ZWRDcmVkZW50aWFsKHsK
KyAgICAgICAgaWQ6ICJpZCIsCisgICAgICAgIHByb3ZpZGVyOiAiaHR0cHM6Ly9leGFtcGxlLmNv
bSIsCisgICAgICAgIGljb25VUkw6ICJodHRwczovL2V4YW1wbGUuY29tLyIsCisgICAgICAgIG5h
bWU6ICJuYW1lIgorICAgICAgfSk7CisgICAgfSBjYXRjaCAoZSkge30KKyAgfQorKQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jcmVkZW50
aWFsLW1hbmFnZW1lbnQvc3VwcG9ydC93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3JlZGVudGlhbC1tYW5hZ2VtZW50L3N1cHBvcnQv
dzNjLWltcG9ydC5sb2cKaW5kZXggYWYyMDRiZDY1NDRmZjFmOTQxZjNlYmFjZWYxY2VjMTgwMWJk
NDhkNC4uN2YzNGI5N2ZmMjYyMTQ1ZjE1MGRkM2NmZjk1Mjc5NGI2Njc2NTgwZCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jcmVkZW50aWFs
LW1hbmFnZW1lbnQvc3VwcG9ydC93M2MtaW1wb3J0LmxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2NyZWRlbnRpYWwtbWFuYWdlbWVudC9zdXBwb3J0
L3czYy1pbXBvcnQubG9nCkBAIC0xLDcgKzEsNyBAQAogVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0
b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCiBEbyBOT1QgbW9kaWZ5
IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KIEluc3RlYWQsIGNyZWF0ZSBhIHB1bGwg
cmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cworCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0
CiAKIFRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0
IHRvIHJlaW1wb3J0CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvY3JlZGVudGlhbC1tYW5hZ2VtZW50L3czYy1pbXBvcnQubG9nIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jcmVkZW50aWFsLW1hbmFn
ZW1lbnQvdzNjLWltcG9ydC5sb2cKaW5kZXggMmIxMTc2NWZmYjIxNDYyM2Y5MzBiNGQ1ZmVkOTJm
ZjBlYmRlMzQ4ZC4uN2Y5ZTgwZTIyZDc3NDVjNGY5MDAwMDY1NzU0M2ZiMzQwYWUxNTQ3ZSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jcmVk
ZW50aWFsLW1hbmFnZW1lbnQvdzNjLWltcG9ydC5sb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jcmVkZW50aWFsLW1hbmFnZW1lbnQvdzNjLWltcG9y
dC5sb2cKQEAgLTEsNyArMSw3IEBACiBUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBp
bXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KIERvIE5PVCBtb2RpZnkgdGhlc2UgdGVz
dHMgZGlyZWN0bHkgaW4gV2ViS2l0LgogSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9u
IHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzCisJaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKIAogVGhlbiBy
dW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBv
cnQKIApAQCAtMTQsOSArMTQsOSBAQCBQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBw
cmVmaXhlczoKIE5vbmUKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2NyZWRlbnRpYWwtbWFuYWdlbWVu
dC9PV05FUlMKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Ny
ZWRlbnRpYWwtbWFuYWdlbWVudC9NRVRBLnltbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3JlZGVudGlhbC1tYW5hZ2VtZW50L2NyZWRlbnRpYWxzY29udGFp
bmVyLWNyZWF0ZS1iYXNpY3MuaHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3JlZGVudGlhbC1tYW5hZ2VtZW50L2ZlZGVyYXRlZGNyZWRlbnRp
YWwtZnJhbWVkLWdldC5zdWIuaHR0cHMuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3JlZGVudGlhbC1tYW5hZ2VtZW50L2lkbC5odHRwcy5odG1sCisv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jcmVkZW50aWFsLW1h
bmFnZW1lbnQvaWRsaGFybmVzcy5odHRwcy53aW5kb3cuanMKIC9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2NyZWRlbnRpYWwtbWFuYWdlbWVudC9wYXNzd29yZGNy
ZWRlbnRpYWwtZnJhbWVkLWdldC5zdWIuaHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3JlZGVudGlhbC1tYW5hZ2VtZW50L3JlcXVpcmVfc2Vj
dXJlY29udGV4dC5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtcHJvcGVydGllcy12YWx1ZXMtYXBpL2lkbGhhcm5lc3Mt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3NzLXByb3BlcnRpZXMtdmFsdWVzLWFwaS9pZGxoYXJuZXNzLWV4cGVjdGVkLnR4dApp
bmRleCBiNjVmNTQ0ODVmYjYyN2RmMDgwZTRhYWY1Mjg3ZGZmN2E0OWIyZGFjLi4yMGM1YWYyZTI5
NDBhZmI1ZDYyMzBhNzg2NTBkNmQ2MTY0MTg2ZjZkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtcHJvcGVydGllcy12YWx1ZXMt
YXBpL2lkbGhhcm5lc3MtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1wcm9wZXJ0aWVzLXZhbHVlcy1hcGkvaWRsaGFy
bmVzcy1leHBlY3RlZC50eHQKQEAgLTEsMzAgKzEsMTYgQEAKIAotRkFJTCBUZXN0IElETCBpbXBs
ZW1lbnRhdGlvbiBvZiBDU1MgUHJvcGVydGllcyBWYWx1ZXMgQVBJIHByb21pc2VfdGVzdDogVW5o
YW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIkdvdCBhbiBlcnJvciBiZWZvcmUg
cGFyc2luZyBhbnkgbmFtZWQgZGVmaW5pdGlvbjogVW5yZWNvZ25pc2VkIHRva2VucywgbGluZSAx
ICh0b2tlbnM6ICJ7XCJlcnJvclwiOiB7XCJtZXNzYWdlXCIiKQotWwotICAgIHsKLSAgICAgICAg
InR5cGUiOiAieyIsCi0gICAgICAgICJ2YWx1ZSI6ICJ7IiwKLSAgICAgICAgInRyaXZpYSI6ICIi
Ci0gICAgfSwKLSAgICB7Ci0gICAgICAgICJ0eXBlIjogInN0cmluZyIsCi0gICAgICAgICJ2YWx1
ZSI6ICJcImVycm9yXCIiLAotICAgICAgICAidHJpdmlhIjogIiIKLSAgICB9LAotICAgIHsKLSAg
ICAgICAgInR5cGUiOiAiOiIsCi0gICAgICAgICJ2YWx1ZSI6ICI6IiwKLSAgICAgICAgInRyaXZp
YSI6ICIiCi0gICAgfSwKLSAgICB7Ci0gICAgICAgICJ0eXBlIjogInsiLAotICAgICAgICAidmFs
dWUiOiAieyIsCi0gICAgICAgICJ0cml2aWEiOiAiICIKLSAgICB9LAotICAgIHsKLSAgICAgICAg
InR5cGUiOiAic3RyaW5nIiwKLSAgICAgICAgInZhbHVlIjogIlwibWVzc2FnZVwiIiwKLSAgICAg
ICAgInRyaXZpYSI6ICIiCi0gICAgfQotXSIKK1BBU1MgaWRsX3Rlc3Qgc2V0dXAgCitQQVNTIFBh
cnRpYWwgbmFtZXNwYWNlIENTUzogb3JpZ2luYWwgbmFtZXNwYWNlIGRlZmluZWQgCitGQUlMIENT
U1Byb3BlcnR5UnVsZSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRl
cmZhY2Ugb2JqZWN0IGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24g
cHJvcGVydHkgIkNTU1Byb3BlcnR5UnVsZSIgZXhwZWN0ZWQgcHJvcGVydHkgIkNTU1Byb3BlcnR5
UnVsZSIgbWlzc2luZworRkFJTCBDU1NQcm9wZXJ0eVJ1bGUgaW50ZXJmYWNlIG9iamVjdCBsZW5n
dGggYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAi
Q1NTUHJvcGVydHlSdWxlIiBleHBlY3RlZCBwcm9wZXJ0eSAiQ1NTUHJvcGVydHlSdWxlIiBtaXNz
aW5nCitGQUlMIENTU1Byb3BlcnR5UnVsZSBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUgYXNzZXJ0X293
bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiQ1NTUHJvcGVydHlS
dWxlIiBleHBlY3RlZCBwcm9wZXJ0eSAiQ1NTUHJvcGVydHlSdWxlIiBtaXNzaW5nCitGQUlMIENT
U1Byb3BlcnR5UnVsZSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRl
cmZhY2UgcHJvdG90eXBlIG9iamVjdCBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90
IGhhdmUgb3duIHByb3BlcnR5ICJDU1NQcm9wZXJ0eVJ1bGUiIGV4cGVjdGVkIHByb3BlcnR5ICJD
U1NQcm9wZXJ0eVJ1bGUiIG1pc3NpbmcKK0ZBSUwgQ1NTUHJvcGVydHlSdWxlIGludGVyZmFjZTog
ZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3Mg
ImNvbnN0cnVjdG9yIiBwcm9wZXJ0eSBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90
IGhhdmUgb3duIHByb3BlcnR5ICJDU1NQcm9wZXJ0eVJ1bGUiIGV4cGVjdGVkIHByb3BlcnR5ICJD
U1NQcm9wZXJ0eVJ1bGUiIG1pc3NpbmcKK0ZBSUwgQ1NTUHJvcGVydHlSdWxlIGludGVyZmFjZTog
ZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3Mg
QEB1bnNjb3BhYmxlcyBwcm9wZXJ0eSBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90
IGhhdmUgb3duIHByb3BlcnR5ICJDU1NQcm9wZXJ0eVJ1bGUiIGV4cGVjdGVkIHByb3BlcnR5ICJD
U1NQcm9wZXJ0eVJ1bGUiIG1pc3NpbmcKK0ZBSUwgQ1NTUHJvcGVydHlSdWxlIGludGVyZmFjZTog
YXR0cmlidXRlIG5hbWUgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93
biBwcm9wZXJ0eSAiQ1NTUHJvcGVydHlSdWxlIiBleHBlY3RlZCBwcm9wZXJ0eSAiQ1NTUHJvcGVy
dHlSdWxlIiBtaXNzaW5nCitGQUlMIENTU1Byb3BlcnR5UnVsZSBpbnRlcmZhY2U6IGF0dHJpYnV0
ZSBzeW50YXggYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9w
ZXJ0eSAiQ1NTUHJvcGVydHlSdWxlIiBleHBlY3RlZCBwcm9wZXJ0eSAiQ1NTUHJvcGVydHlSdWxl
IiBtaXNzaW5nCitGQUlMIENTU1Byb3BlcnR5UnVsZSBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBpbmhl
cml0cyBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5
ICJDU1NQcm9wZXJ0eVJ1bGUiIGV4cGVjdGVkIHByb3BlcnR5ICJDU1NQcm9wZXJ0eVJ1bGUiIG1p
c3NpbmcKK0ZBSUwgQ1NTUHJvcGVydHlSdWxlIGludGVyZmFjZTogYXR0cmlidXRlIGluaXRpYWxW
YWx1ZSBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5
ICJDU1NQcm9wZXJ0eVJ1bGUiIGV4cGVjdGVkIHByb3BlcnR5ICJDU1NQcm9wZXJ0eVJ1bGUiIG1p
c3NpbmcKK1BBU1MgQ1NTIG5hbWVzcGFjZTogb3BlcmF0aW9uIGVzY2FwZShDU1NPTVN0cmluZykg
CitQQVNTIENTUyBuYW1lc3BhY2U6IG9wZXJhdGlvbiByZWdpc3RlclByb3BlcnR5KFByb3BlcnR5
RGVmaW5pdGlvbikgCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1wcm9wZXJ0aWVzLXZhbHVlcy1hcGkvaWRsaGFybmVzcy5o
dG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
LXByb3BlcnRpZXMtdmFsdWVzLWFwaS9pZGxoYXJuZXNzLmh0bWwKaW5kZXggZTU3ZjBmMDBjYTI2
Y2I2YTkzNDJiMWI2Zjg0MjU5ZTJiYjkwODc5MC4uNmYwNTM3NTdjM2NlZjA5OWYwY2VhNDE3MTZh
OTQyZGZhN2U2NjEwMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXByb3BlcnRpZXMtdmFsdWVzLWFwaS9pZGxoYXJuZXNzLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mv
Y3NzLXByb3BlcnRpZXMtdmFsdWVzLWFwaS9pZGxoYXJuZXNzLmh0bWwKQEAgLTgsMTMgKzgsOSBA
QAogPHNjcmlwdD4KICAgInVzZSBzdHJpY3QiOwogCi0gIHByb21pc2VfdGVzdChhc3luYyAoKSA9
PiB7Ci0gICAgY29uc3QgaWRsID0gYXdhaXQgZmV0Y2goIi9pbnRlcmZhY2VzL2Nzcy1wcm9wZXJ0
aWVzLXZhbHVlcy1hcGkuaWRsIikudGhlbihyID0+IHIudGV4dCgpKTsKLSAgICBjb25zdCBjc3Nv
bSA9IGF3YWl0IGZldGNoKCIvaW50ZXJmYWNlcy9jc3NvbS5pZGwiKS50aGVuKHIgPT4gci50ZXh0
KCkpOwotCi0gICAgY29uc3QgaWRsX2FycmF5ID0gbmV3IElkbEFycmF5KCk7Ci0gICAgaWRsX2Fy
cmF5LmFkZF9pZGxzKGlkbCk7Ci0gICAgaWRsX2FycmF5LmFkZF9kZXBlbmRlbmN5X2lkbHMoY3Nz
b20pOwotICAgIGlkbF9hcnJheS50ZXN0KCk7Ci0gIH0sICJUZXN0IElETCBpbXBsZW1lbnRhdGlv
biBvZiBDU1MgUHJvcGVydGllcyBWYWx1ZXMgQVBJIik7CisgIGlkbF90ZXN0KAorICAgIFsiY3Nz
LXByb3BlcnRpZXMtdmFsdWVzLWFwaSJdLAorICAgIFsiY3Nzb20iXQorICAgIC8vIE5vIG9iamVj
dHMKKyAgKTsKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9pbnRlcmZhY2VzLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29t
LXZpZXcvaW50ZXJmYWNlcy1leHBlY3RlZC50eHQKaW5kZXggYjU1YzFlY2I4NDc2MGIxNTU4ODhi
YjkwMzEyZGJmYTc4YjE4MWZhNS4uOWU0NGFlMTRiODBmYWMwYTM3NzhmNzc0NTRhYTg2OTk5YjZk
YmMxZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvY3Nzb20tdmlldy9pbnRlcmZhY2VzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L2ludGVy
ZmFjZXMtZXhwZWN0ZWQudHh0CkBAIC0yLDM4ICsyLDM0MSBAQAogQ1NTT00gVmlldyBJREwgdGVz
dHMKIAogCi1GQUlMIGlkbF90ZXN0IHNldHVwIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVj
dGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIkdvdCBhbiBlcnJvciBiZWZvcmUgcGFyc2luZyBhbnkg
bmFtZWQgZGVmaW5pdGlvbjogVW5yZWNvZ25pc2VkIHRva2VucywgbGluZSAxICh0b2tlbnM6ICJ7
XCJlcnJvclwiOiB7XCJtZXNzYWdlXCIiKQotWwotICAgIHsKLSAgICAgICAgInR5cGUiOiAieyIs
Ci0gICAgICAgICJ2YWx1ZSI6ICJ7IiwKLSAgICAgICAgInRyaXZpYSI6ICIiCi0gICAgfSwKLSAg
ICB7Ci0gICAgICAgICJ0eXBlIjogInN0cmluZyIsCi0gICAgICAgICJ2YWx1ZSI6ICJcImVycm9y
XCIiLAotICAgICAgICAidHJpdmlhIjogIiIKLSAgICB9LAotICAgIHsKLSAgICAgICAgInR5cGUi
OiAiOiIsCi0gICAgICAgICJ2YWx1ZSI6ICI6IiwKLSAgICAgICAgInRyaXZpYSI6ICIiCi0gICAg
fSwKLSAgICB7Ci0gICAgICAgICJ0eXBlIjogInsiLAotICAgICAgICAidmFsdWUiOiAieyIsCi0g
ICAgICAgICJ0cml2aWEiOiAiICIKLSAgICB9LAotICAgIHsKLSAgICAgICAgInR5cGUiOiAic3Ry
aW5nIiwKLSAgICAgICAgInZhbHVlIjogIlwibWVzc2FnZVwiIiwKLSAgICAgICAgInRyaXZpYSI6
ICIiCi0gICAgfQotXSIKLUZBSUwgUGFydGlhbCBpbnRlcmZhY2UgV2luZG93OiBvcmlnaW5hbCBp
bnRlcmZhY2UgZGVmaW5lZCBhc3NlcnRfdHJ1ZTogT3JpZ2luYWwgaW50ZXJmYWNlIHNob3VsZCBi
ZSBkZWZpbmVkIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFBhcnRpYWwgaW50ZXJmYWNl
IERvY3VtZW50OiBvcmlnaW5hbCBpbnRlcmZhY2UgZGVmaW5lZCBhc3NlcnRfdHJ1ZTogT3JpZ2lu
YWwgaW50ZXJmYWNlIHNob3VsZCBiZSBkZWZpbmVkIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1G
QUlMIFBhcnRpYWwgaW50ZXJmYWNlIEVsZW1lbnQ6IG9yaWdpbmFsIGludGVyZmFjZSBkZWZpbmVk
IGFzc2VydF90cnVlOiBPcmlnaW5hbCBpbnRlcmZhY2Ugc2hvdWxkIGJlIGRlZmluZWQgZXhwZWN0
ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgUGFydGlhbCBpbnRlcmZhY2UgSFRNTEVsZW1lbnQ6IG9y
aWdpbmFsIGludGVyZmFjZSBkZWZpbmVkIGFzc2VydF90cnVlOiBPcmlnaW5hbCBpbnRlcmZhY2Ug
c2hvdWxkIGJlIGRlZmluZWQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgUGFydGlhbCBp
bnRlcmZhY2UgSFRNTEltYWdlRWxlbWVudDogb3JpZ2luYWwgaW50ZXJmYWNlIGRlZmluZWQgYXNz
ZXJ0X3RydWU6IE9yaWdpbmFsIGludGVyZmFjZSBzaG91bGQgYmUgZGVmaW5lZCBleHBlY3RlZCB0
cnVlIGdvdCBmYWxzZQotRkFJTCBQYXJ0aWFsIGludGVyZmFjZSBSYW5nZTogb3JpZ2luYWwgaW50
ZXJmYWNlIGRlZmluZWQgYXNzZXJ0X3RydWU6IE9yaWdpbmFsIGludGVyZmFjZSBzaG91bGQgYmUg
ZGVmaW5lZCBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorUEFTUyBpZGxfdGVzdCBzZXR1cCAKK1BB
U1MgUGFydGlhbCBpbnRlcmZhY2UgV2luZG93OiBvcmlnaW5hbCBpbnRlcmZhY2UgZGVmaW5lZCAK
K1BBU1MgUGFydGlhbCBpbnRlcmZhY2UgRG9jdW1lbnQ6IG9yaWdpbmFsIGludGVyZmFjZSBkZWZp
bmVkIAorUEFTUyBQYXJ0aWFsIGludGVyZmFjZSBFbGVtZW50OiBvcmlnaW5hbCBpbnRlcmZhY2Ug
ZGVmaW5lZCAKK1BBU1MgUGFydGlhbCBpbnRlcmZhY2UgSFRNTEVsZW1lbnQ6IG9yaWdpbmFsIGlu
dGVyZmFjZSBkZWZpbmVkIAorUEFTUyBQYXJ0aWFsIGludGVyZmFjZSBIVE1MSW1hZ2VFbGVtZW50
OiBvcmlnaW5hbCBpbnRlcmZhY2UgZGVmaW5lZCAKK1BBU1MgUGFydGlhbCBpbnRlcmZhY2UgUmFu
Z2U6IG9yaWdpbmFsIGludGVyZmFjZSBkZWZpbmVkIAorUEFTUyBQYXJ0aWFsIGludGVyZmFjZSBN
b3VzZUV2ZW50OiBvcmlnaW5hbCBpbnRlcmZhY2UgZGVmaW5lZCAKK1BBU1MgUGFydGlhbCBkaWN0
aW9uYXJ5IE1vdXNlRXZlbnRJbml0OiBvcmlnaW5hbCBkaWN0aW9uYXJ5IGRlZmluZWQgCitGQUlM
IE1lZGlhUXVlcnlMaXN0IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGlu
dGVyZmFjZSBvYmplY3QgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93
biBwcm9wZXJ0eSAiTWVkaWFRdWVyeUxpc3QiIGV4cGVjdGVkIHByb3BlcnR5ICJNZWRpYVF1ZXJ5
TGlzdCIgbWlzc2luZworRkFJTCBNZWRpYVF1ZXJ5TGlzdCBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0
aCBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJN
ZWRpYVF1ZXJ5TGlzdCIgZXhwZWN0ZWQgcHJvcGVydHkgIk1lZGlhUXVlcnlMaXN0IiBtaXNzaW5n
CitGQUlMIE1lZGlhUXVlcnlMaXN0IGludGVyZmFjZSBvYmplY3QgbmFtZSBhc3NlcnRfb3duX3By
b3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJNZWRpYVF1ZXJ5TGlzdCIg
ZXhwZWN0ZWQgcHJvcGVydHkgIk1lZGlhUXVlcnlMaXN0IiBtaXNzaW5nCitGQUlMIE1lZGlhUXVl
cnlMaXN0IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBw
cm90b3R5cGUgb2JqZWN0IGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBv
d24gcHJvcGVydHkgIk1lZGlhUXVlcnlMaXN0IiBleHBlY3RlZCBwcm9wZXJ0eSAiTWVkaWFRdWVy
eUxpc3QiIG1pc3NpbmcKK0ZBSUwgTWVkaWFRdWVyeUxpc3QgaW50ZXJmYWNlOiBleGlzdGVuY2Ug
YW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyAiY29uc3RydWN0
b3IiIHByb3BlcnR5IGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24g
cHJvcGVydHkgIk1lZGlhUXVlcnlMaXN0IiBleHBlY3RlZCBwcm9wZXJ0eSAiTWVkaWFRdWVyeUxp
c3QiIG1pc3NpbmcKK0ZBSUwgTWVkaWFRdWVyeUxpc3QgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5k
IHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyBAQHVuc2NvcGFibGVz
IHByb3BlcnR5IGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJv
cGVydHkgIk1lZGlhUXVlcnlMaXN0IiBleHBlY3RlZCBwcm9wZXJ0eSAiTWVkaWFRdWVyeUxpc3Qi
IG1pc3NpbmcKK0ZBSUwgTWVkaWFRdWVyeUxpc3QgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgbWVkaWEg
YXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiTWVk
aWFRdWVyeUxpc3QiIGV4cGVjdGVkIHByb3BlcnR5ICJNZWRpYVF1ZXJ5TGlzdCIgbWlzc2luZwor
RkFJTCBNZWRpYVF1ZXJ5TGlzdCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBtYXRjaGVzIGFzc2VydF9v
d25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIk1lZGlhUXVlcnlM
aXN0IiBleHBlY3RlZCBwcm9wZXJ0eSAiTWVkaWFRdWVyeUxpc3QiIG1pc3NpbmcKK0ZBSUwgTWVk
aWFRdWVyeUxpc3QgaW50ZXJmYWNlOiBvcGVyYXRpb24gYWRkTGlzdGVuZXIoRXZlbnRMaXN0ZW5l
cikgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAi
TWVkaWFRdWVyeUxpc3QiIGV4cGVjdGVkIHByb3BlcnR5ICJNZWRpYVF1ZXJ5TGlzdCIgbWlzc2lu
ZworRkFJTCBNZWRpYVF1ZXJ5TGlzdCBpbnRlcmZhY2U6IG9wZXJhdGlvbiByZW1vdmVMaXN0ZW5l
cihFdmVudExpc3RlbmVyKSBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUg
b3duIHByb3BlcnR5ICJNZWRpYVF1ZXJ5TGlzdCIgZXhwZWN0ZWQgcHJvcGVydHkgIk1lZGlhUXVl
cnlMaXN0IiBtaXNzaW5nCitGQUlMIE1lZGlhUXVlcnlMaXN0IGludGVyZmFjZTogYXR0cmlidXRl
IG9uY2hhbmdlIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJv
cGVydHkgIk1lZGlhUXVlcnlMaXN0IiBleHBlY3RlZCBwcm9wZXJ0eSAiTWVkaWFRdWVyeUxpc3Qi
IG1pc3NpbmcKK0ZBSUwgTWVkaWFRdWVyeUxpc3QgbXVzdCBiZSBwcmltYXJ5IGludGVyZmFjZSBv
ZiBtYXRjaE1lZGlhKCJhbGwiKSBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhh
dmUgb3duIHByb3BlcnR5ICJNZWRpYVF1ZXJ5TGlzdCIgZXhwZWN0ZWQgcHJvcGVydHkgIk1lZGlh
UXVlcnlMaXN0IiBtaXNzaW5nCitQQVNTIFN0cmluZ2lmaWNhdGlvbiBvZiBtYXRjaE1lZGlhKCJh
bGwiKSAKK1BBU1MgTWVkaWFRdWVyeUxpc3QgaW50ZXJmYWNlOiBtYXRjaE1lZGlhKCJhbGwiKSBt
dXN0IGluaGVyaXQgcHJvcGVydHkgIm1lZGlhIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1Mg
TWVkaWFRdWVyeUxpc3QgaW50ZXJmYWNlOiBtYXRjaE1lZGlhKCJhbGwiKSBtdXN0IGluaGVyaXQg
cHJvcGVydHkgIm1hdGNoZXMiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBNZWRpYVF1ZXJ5
TGlzdCBpbnRlcmZhY2U6IG1hdGNoTWVkaWEoImFsbCIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAi
YWRkTGlzdGVuZXIoRXZlbnRMaXN0ZW5lcikiIHdpdGggdGhlIHByb3BlciB0eXBlIAorRkFJTCBN
ZWRpYVF1ZXJ5TGlzdCBpbnRlcmZhY2U6IGNhbGxpbmcgYWRkTGlzdGVuZXIoRXZlbnRMaXN0ZW5l
cikgb24gbWF0Y2hNZWRpYSgiYWxsIikgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93
IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlv
biAiZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgZm4uYXBwbHkob2JqLCBhcmdzKTsKKyAgICAg
ICAgfSIgZGlkIG5vdCB0aHJvdworUEFTUyBNZWRpYVF1ZXJ5TGlzdCBpbnRlcmZhY2U6IG1hdGNo
TWVkaWEoImFsbCIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAicmVtb3ZlTGlzdGVuZXIoRXZlbnRM
aXN0ZW5lcikiIHdpdGggdGhlIHByb3BlciB0eXBlIAorRkFJTCBNZWRpYVF1ZXJ5TGlzdCBpbnRl
cmZhY2U6IGNhbGxpbmcgcmVtb3ZlTGlzdGVuZXIoRXZlbnRMaXN0ZW5lcikgb24gbWF0Y2hNZWRp
YSgiYWxsIikgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3Nl
cnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkg
eworICAgICAgICAgICAgZm4uYXBwbHkob2JqLCBhcmdzKTsKKyAgICAgICAgfSIgZGlkIG5vdCB0
aHJvdworRkFJTCBNZWRpYVF1ZXJ5TGlzdCBpbnRlcmZhY2U6IG1hdGNoTWVkaWEoImFsbCIpIG11
c3QgaW5oZXJpdCBwcm9wZXJ0eSAib25jaGFuZ2UiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2Vy
dF9pbmhlcml0czogcHJvcGVydHkgIm9uY2hhbmdlIiBub3QgZm91bmQgaW4gcHJvdG90eXBlIGNo
YWluCitGQUlMIE1lZGlhUXVlcnlMaXN0RXZlbnQgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHBy
b3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRv
ZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJNZWRpYVF1ZXJ5TGlzdEV2ZW50IiBleHBlY3RlZCBw
cm9wZXJ0eSAiTWVkaWFRdWVyeUxpc3RFdmVudCIgbWlzc2luZworRkFJTCBNZWRpYVF1ZXJ5TGlz
dEV2ZW50IGludGVyZmFjZSBvYmplY3QgbGVuZ3RoIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYg
ZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIk1lZGlhUXVlcnlMaXN0RXZlbnQiIGV4cGVjdGVk
IHByb3BlcnR5ICJNZWRpYVF1ZXJ5TGlzdEV2ZW50IiBtaXNzaW5nCitGQUlMIE1lZGlhUXVlcnlM
aXN0RXZlbnQgaW50ZXJmYWNlIG9iamVjdCBuYW1lIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYg
ZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIk1lZGlhUXVlcnlMaXN0RXZlbnQiIGV4cGVjdGVk
IHByb3BlcnR5ICJNZWRpYVF1ZXJ5TGlzdEV2ZW50IiBtaXNzaW5nCitGQUlMIE1lZGlhUXVlcnlM
aXN0RXZlbnQgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNl
IHByb3RvdHlwZSBvYmplY3QgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZl
IG93biBwcm9wZXJ0eSAiTWVkaWFRdWVyeUxpc3RFdmVudCIgZXhwZWN0ZWQgcHJvcGVydHkgIk1l
ZGlhUXVlcnlMaXN0RXZlbnQiIG1pc3NpbmcKK0ZBSUwgTWVkaWFRdWVyeUxpc3RFdmVudCBpbnRl
cmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9i
amVjdCdzICJjb25zdHJ1Y3RvciIgcHJvcGVydHkgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBk
b2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiTWVkaWFRdWVyeUxpc3RFdmVudCIgZXhwZWN0ZWQg
cHJvcGVydHkgIk1lZGlhUXVlcnlMaXN0RXZlbnQiIG1pc3NpbmcKK0ZBSUwgTWVkaWFRdWVyeUxp
c3RFdmVudCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ug
cHJvdG90eXBlIG9iamVjdCdzIEBAdW5zY29wYWJsZXMgcHJvcGVydHkgYXNzZXJ0X293bl9wcm9w
ZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiTWVkaWFRdWVyeUxpc3RFdmVu
dCIgZXhwZWN0ZWQgcHJvcGVydHkgIk1lZGlhUXVlcnlMaXN0RXZlbnQiIG1pc3NpbmcKK0ZBSUwg
TWVkaWFRdWVyeUxpc3RFdmVudCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBtZWRpYSBhc3NlcnRfb3du
X3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJNZWRpYVF1ZXJ5TGlz
dEV2ZW50IiBleHBlY3RlZCBwcm9wZXJ0eSAiTWVkaWFRdWVyeUxpc3RFdmVudCIgbWlzc2luZwor
RkFJTCBNZWRpYVF1ZXJ5TGlzdEV2ZW50IGludGVyZmFjZTogYXR0cmlidXRlIG1hdGNoZXMgYXNz
ZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiTWVkaWFR
dWVyeUxpc3RFdmVudCIgZXhwZWN0ZWQgcHJvcGVydHkgIk1lZGlhUXVlcnlMaXN0RXZlbnQiIG1p
c3NpbmcKK0ZBSUwgTWVkaWFRdWVyeUxpc3RFdmVudCBtdXN0IGJlIHByaW1hcnkgaW50ZXJmYWNl
IG9mIG5ldyBNZWRpYVF1ZXJ5TGlzdEV2ZW50KCJjaGFuZ2UiKSBhc3NlcnRfZXF1YWxzOiBVbmV4
cGVjdGVkIGV4Y2VwdGlvbiB3aGVuIGV2YWx1YXRpbmcgb2JqZWN0IGV4cGVjdGVkIG51bGwgYnV0
IGdvdCBvYmplY3QgIlJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBNZWRpYVF1
ZXJ5TGlzdEV2ZW50IgorRkFJTCBTdHJpbmdpZmljYXRpb24gb2YgbmV3IE1lZGlhUXVlcnlMaXN0
RXZlbnQoImNoYW5nZSIpIGFzc2VydF9lcXVhbHM6IFVuZXhwZWN0ZWQgZXhjZXB0aW9uIHdoZW4g
ZXZhbHVhdGluZyBvYmplY3QgZXhwZWN0ZWQgbnVsbCBidXQgZ290IG9iamVjdCAiUmVmZXJlbmNl
RXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IE1lZGlhUXVlcnlMaXN0RXZlbnQiCitGQUlMIE1l
ZGlhUXVlcnlMaXN0RXZlbnQgaW50ZXJmYWNlOiBuZXcgTWVkaWFRdWVyeUxpc3RFdmVudCgiY2hh
bmdlIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJtZWRpYSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUg
YXNzZXJ0X2VxdWFsczogVW5leHBlY3RlZCBleGNlcHRpb24gd2hlbiBldmFsdWF0aW5nIG9iamVj
dCBleHBlY3RlZCBudWxsIGJ1dCBnb3Qgb2JqZWN0ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmlu
ZCB2YXJpYWJsZTogTWVkaWFRdWVyeUxpc3RFdmVudCIKK0ZBSUwgTWVkaWFRdWVyeUxpc3RFdmVu
dCBpbnRlcmZhY2U6IG5ldyBNZWRpYVF1ZXJ5TGlzdEV2ZW50KCJjaGFuZ2UiKSBtdXN0IGluaGVy
aXQgcHJvcGVydHkgIm1hdGNoZXMiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9lcXVhbHM6
IFVuZXhwZWN0ZWQgZXhjZXB0aW9uIHdoZW4gZXZhbHVhdGluZyBvYmplY3QgZXhwZWN0ZWQgbnVs
bCBidXQgZ290IG9iamVjdCAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IE1l
ZGlhUXVlcnlMaXN0RXZlbnQiCitQQVNTIFNjcmVlbiBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQg
cHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IAorUEFTUyBTY3JlZW4gaW50ZXJmYWNlIG9i
amVjdCBsZW5ndGggCitQQVNTIFNjcmVlbiBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUgCitQQVNTIFNj
cmVlbiBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJv
dG90eXBlIG9iamVjdCAKK1BBU1MgU2NyZWVuIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9w
ZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgImNvbnN0cnVjdG9yIiBwcm9w
ZXJ0eSAKK1BBU1MgU2NyZWVuIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9m
IGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgQEB1bnNjb3BhYmxlcyBwcm9wZXJ0eSAKK1BB
U1MgU2NyZWVuIGludGVyZmFjZTogYXR0cmlidXRlIGF2YWlsV2lkdGggCitQQVNTIFNjcmVlbiBp
bnRlcmZhY2U6IGF0dHJpYnV0ZSBhdmFpbEhlaWdodCAKK1BBU1MgU2NyZWVuIGludGVyZmFjZTog
YXR0cmlidXRlIHdpZHRoIAorUEFTUyBTY3JlZW4gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgaGVpZ2h0
IAorUEFTUyBTY3JlZW4gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgY29sb3JEZXB0aCAKK1BBU1MgU2Ny
ZWVuIGludGVyZmFjZTogYXR0cmlidXRlIHBpeGVsRGVwdGggCitQQVNTIFNjcmVlbiBtdXN0IGJl
IHByaW1hcnkgaW50ZXJmYWNlIG9mIHNjcmVlbiAKK1BBU1MgU3RyaW5naWZpY2F0aW9uIG9mIHNj
cmVlbiAKK1BBU1MgU2NyZWVuIGludGVyZmFjZTogc2NyZWVuIG11c3QgaW5oZXJpdCBwcm9wZXJ0
eSAiYXZhaWxXaWR0aCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIFNjcmVlbiBpbnRlcmZh
Y2U6IHNjcmVlbiBtdXN0IGluaGVyaXQgcHJvcGVydHkgImF2YWlsSGVpZ2h0IiB3aXRoIHRoZSBw
cm9wZXIgdHlwZSAKK1BBU1MgU2NyZWVuIGludGVyZmFjZTogc2NyZWVuIG11c3QgaW5oZXJpdCBw
cm9wZXJ0eSAid2lkdGgiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBTY3JlZW4gaW50ZXJm
YWNlOiBzY3JlZW4gbXVzdCBpbmhlcml0IHByb3BlcnR5ICJoZWlnaHQiIHdpdGggdGhlIHByb3Bl
ciB0eXBlIAorUEFTUyBTY3JlZW4gaW50ZXJmYWNlOiBzY3JlZW4gbXVzdCBpbmhlcml0IHByb3Bl
cnR5ICJjb2xvckRlcHRoIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgU2NyZWVuIGludGVy
ZmFjZTogc2NyZWVuIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAicGl4ZWxEZXB0aCIgd2l0aCB0aGUg
cHJvcGVyIHR5cGUgCitGQUlMIENhcmV0UG9zaXRpb24gaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5k
IHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxm
IGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJDYXJldFBvc2l0aW9uIiBleHBlY3RlZCBwcm9w
ZXJ0eSAiQ2FyZXRQb3NpdGlvbiIgbWlzc2luZworRkFJTCBDYXJldFBvc2l0aW9uIGludGVyZmFj
ZSBvYmplY3QgbGVuZ3RoIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBv
d24gcHJvcGVydHkgIkNhcmV0UG9zaXRpb24iIGV4cGVjdGVkIHByb3BlcnR5ICJDYXJldFBvc2l0
aW9uIiBtaXNzaW5nCitGQUlMIENhcmV0UG9zaXRpb24gaW50ZXJmYWNlIG9iamVjdCBuYW1lIGFz
c2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIkNhcmV0
UG9zaXRpb24iIGV4cGVjdGVkIHByb3BlcnR5ICJDYXJldFBvc2l0aW9uIiBtaXNzaW5nCitGQUlM
IENhcmV0UG9zaXRpb24gaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50
ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5v
dCBoYXZlIG93biBwcm9wZXJ0eSAiQ2FyZXRQb3NpdGlvbiIgZXhwZWN0ZWQgcHJvcGVydHkgIkNh
cmV0UG9zaXRpb24iIG1pc3NpbmcKK0ZBSUwgQ2FyZXRQb3NpdGlvbiBpbnRlcmZhY2U6IGV4aXN0
ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzICJjb25z
dHJ1Y3RvciIgcHJvcGVydHkgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZl
IG93biBwcm9wZXJ0eSAiQ2FyZXRQb3NpdGlvbiIgZXhwZWN0ZWQgcHJvcGVydHkgIkNhcmV0UG9z
aXRpb24iIG1pc3NpbmcKK0ZBSUwgQ2FyZXRQb3NpdGlvbiBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBh
bmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzIEBAdW5zY29wYWJs
ZXMgcHJvcGVydHkgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBw
cm9wZXJ0eSAiQ2FyZXRQb3NpdGlvbiIgZXhwZWN0ZWQgcHJvcGVydHkgIkNhcmV0UG9zaXRpb24i
IG1pc3NpbmcKK0ZBSUwgQ2FyZXRQb3NpdGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBvZmZzZXRO
b2RlIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkg
IkNhcmV0UG9zaXRpb24iIGV4cGVjdGVkIHByb3BlcnR5ICJDYXJldFBvc2l0aW9uIiBtaXNzaW5n
CitGQUlMIENhcmV0UG9zaXRpb24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgb2Zmc2V0IGFzc2VydF9v
d25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIkNhcmV0UG9zaXRp
b24iIGV4cGVjdGVkIHByb3BlcnR5ICJDYXJldFBvc2l0aW9uIiBtaXNzaW5nCitGQUlMIENhcmV0
UG9zaXRpb24gaW50ZXJmYWNlOiBvcGVyYXRpb24gZ2V0Q2xpZW50UmVjdCgpIGFzc2VydF9vd25f
cHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIkNhcmV0UG9zaXRpb24i
IGV4cGVjdGVkIHByb3BlcnR5ICJDYXJldFBvc2l0aW9uIiBtaXNzaW5nCitGQUlMIENhcmV0UG9z
aXRpb24gbXVzdCBiZSBwcmltYXJ5IGludGVyZmFjZSBvZiBkb2N1bWVudC5jYXJldFBvc2l0aW9u
RnJvbVBvaW50KDUsIDUpIGFzc2VydF9lcXVhbHM6IFVuZXhwZWN0ZWQgZXhjZXB0aW9uIHdoZW4g
ZXZhbHVhdGluZyBvYmplY3QgZXhwZWN0ZWQgbnVsbCBidXQgZ290IG9iamVjdCAiVHlwZUVycm9y
OiBkb2N1bWVudC5jYXJldFBvc2l0aW9uRnJvbVBvaW50IGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4g
J2RvY3VtZW50LmNhcmV0UG9zaXRpb25Gcm9tUG9pbnQoNSwgNSknLCAnZG9jdW1lbnQuY2FyZXRQ
b3NpdGlvbkZyb21Qb2ludCcgaXMgdW5kZWZpbmVkKSIKK0ZBSUwgU3RyaW5naWZpY2F0aW9uIG9m
IGRvY3VtZW50LmNhcmV0UG9zaXRpb25Gcm9tUG9pbnQoNSwgNSkgYXNzZXJ0X2VxdWFsczogVW5l
eHBlY3RlZCBleGNlcHRpb24gd2hlbiBldmFsdWF0aW5nIG9iamVjdCBleHBlY3RlZCBudWxsIGJ1
dCBnb3Qgb2JqZWN0ICJUeXBlRXJyb3I6IGRvY3VtZW50LmNhcmV0UG9zaXRpb25Gcm9tUG9pbnQg
aXMgbm90IGEgZnVuY3Rpb24uIChJbiAnZG9jdW1lbnQuY2FyZXRQb3NpdGlvbkZyb21Qb2ludCg1
LCA1KScsICdkb2N1bWVudC5jYXJldFBvc2l0aW9uRnJvbVBvaW50JyBpcyB1bmRlZmluZWQpIgor
RkFJTCBDYXJldFBvc2l0aW9uIGludGVyZmFjZTogZG9jdW1lbnQuY2FyZXRQb3NpdGlvbkZyb21Q
b2ludCg1LCA1KSBtdXN0IGluaGVyaXQgcHJvcGVydHkgIm9mZnNldE5vZGUiIHdpdGggdGhlIHBy
b3BlciB0eXBlIGFzc2VydF9lcXVhbHM6IFVuZXhwZWN0ZWQgZXhjZXB0aW9uIHdoZW4gZXZhbHVh
dGluZyBvYmplY3QgZXhwZWN0ZWQgbnVsbCBidXQgZ290IG9iamVjdCAiVHlwZUVycm9yOiBkb2N1
bWVudC5jYXJldFBvc2l0aW9uRnJvbVBvaW50IGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ2RvY3Vt
ZW50LmNhcmV0UG9zaXRpb25Gcm9tUG9pbnQoNSwgNSknLCAnZG9jdW1lbnQuY2FyZXRQb3NpdGlv
bkZyb21Qb2ludCcgaXMgdW5kZWZpbmVkKSIKK0ZBSUwgQ2FyZXRQb3NpdGlvbiBpbnRlcmZhY2U6
IGRvY3VtZW50LmNhcmV0UG9zaXRpb25Gcm9tUG9pbnQoNSwgNSkgbXVzdCBpbmhlcml0IHByb3Bl
cnR5ICJvZmZzZXQiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9lcXVhbHM6IFVuZXhwZWN0
ZWQgZXhjZXB0aW9uIHdoZW4gZXZhbHVhdGluZyBvYmplY3QgZXhwZWN0ZWQgbnVsbCBidXQgZ290
IG9iamVjdCAiVHlwZUVycm9yOiBkb2N1bWVudC5jYXJldFBvc2l0aW9uRnJvbVBvaW50IGlzIG5v
dCBhIGZ1bmN0aW9uLiAoSW4gJ2RvY3VtZW50LmNhcmV0UG9zaXRpb25Gcm9tUG9pbnQoNSwgNSkn
LCAnZG9jdW1lbnQuY2FyZXRQb3NpdGlvbkZyb21Qb2ludCcgaXMgdW5kZWZpbmVkKSIKK0ZBSUwg
Q2FyZXRQb3NpdGlvbiBpbnRlcmZhY2U6IGRvY3VtZW50LmNhcmV0UG9zaXRpb25Gcm9tUG9pbnQo
NSwgNSkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJnZXRDbGllbnRSZWN0KCkiIHdpdGggdGhlIHBy
b3BlciB0eXBlIGFzc2VydF9lcXVhbHM6IFVuZXhwZWN0ZWQgZXhjZXB0aW9uIHdoZW4gZXZhbHVh
dGluZyBvYmplY3QgZXhwZWN0ZWQgbnVsbCBidXQgZ290IG9iamVjdCAiVHlwZUVycm9yOiBkb2N1
bWVudC5jYXJldFBvc2l0aW9uRnJvbVBvaW50IGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ2RvY3Vt
ZW50LmNhcmV0UG9zaXRpb25Gcm9tUG9pbnQoNSwgNSknLCAnZG9jdW1lbnQuY2FyZXRQb3NpdGlv
bkZyb21Qb2ludCcgaXMgdW5kZWZpbmVkKSIKK0ZBSUwgQ1NTUHNldWRvRWxlbWVudCBpbnRlcmZh
Y2U6IG9wZXJhdGlvbiBnZXRCb3hRdWFkcyhCb3hRdWFkT3B0aW9ucykgYXNzZXJ0X293bl9wcm9w
ZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiQ1NTUHNldWRvRWxlbWVudCIg
ZXhwZWN0ZWQgcHJvcGVydHkgIkNTU1BzZXVkb0VsZW1lbnQiIG1pc3NpbmcKK0ZBSUwgQ1NTUHNl
dWRvRWxlbWVudCBpbnRlcmZhY2U6IG9wZXJhdGlvbiBjb252ZXJ0UXVhZEZyb21Ob2RlKERPTVF1
YWRJbml0LCBHZW9tZXRyeU5vZGUsIENvbnZlcnRDb29yZGluYXRlT3B0aW9ucykgYXNzZXJ0X293
bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiQ1NTUHNldWRvRWxl
bWVudCIgZXhwZWN0ZWQgcHJvcGVydHkgIkNTU1BzZXVkb0VsZW1lbnQiIG1pc3NpbmcKK0ZBSUwg
Q1NTUHNldWRvRWxlbWVudCBpbnRlcmZhY2U6IG9wZXJhdGlvbiBjb252ZXJ0UmVjdEZyb21Ob2Rl
KERPTVJlY3RSZWFkT25seSwgR2VvbWV0cnlOb2RlLCBDb252ZXJ0Q29vcmRpbmF0ZU9wdGlvbnMp
IGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIkNT
U1BzZXVkb0VsZW1lbnQiIGV4cGVjdGVkIHByb3BlcnR5ICJDU1NQc2V1ZG9FbGVtZW50IiBtaXNz
aW5nCitGQUlMIENTU1BzZXVkb0VsZW1lbnQgaW50ZXJmYWNlOiBvcGVyYXRpb24gY29udmVydFBv
aW50RnJvbU5vZGUoRE9NUG9pbnRJbml0LCBHZW9tZXRyeU5vZGUsIENvbnZlcnRDb29yZGluYXRl
T3B0aW9ucykgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9w
ZXJ0eSAiQ1NTUHNldWRvRWxlbWVudCIgZXhwZWN0ZWQgcHJvcGVydHkgIkNTU1BzZXVkb0VsZW1l
bnQiIG1pc3NpbmcKK1BBU1MgTW91c2VFdmVudCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBzY3JlZW5Y
IAorUEFTUyBNb3VzZUV2ZW50IGludGVyZmFjZTogYXR0cmlidXRlIHNjcmVlblkgCitGQUlMIE1v
dXNlRXZlbnQgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgcGFnZVggYXNzZXJ0X293bl9wcm9wZXJ0eTog
ZXhwZWN0ZWQgcHJvcGVydHkgInBhZ2VYIiBtaXNzaW5nCitGQUlMIE1vdXNlRXZlbnQgaW50ZXJm
YWNlOiBhdHRyaWJ1dGUgcGFnZVkgYXNzZXJ0X293bl9wcm9wZXJ0eTogZXhwZWN0ZWQgcHJvcGVy
dHkgInBhZ2VZIiBtaXNzaW5nCitQQVNTIE1vdXNlRXZlbnQgaW50ZXJmYWNlOiBhdHRyaWJ1dGUg
Y2xpZW50WCAKK1BBU1MgTW91c2VFdmVudCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBjbGllbnRZIAor
UEFTUyBNb3VzZUV2ZW50IGludGVyZmFjZTogYXR0cmlidXRlIHggCitQQVNTIE1vdXNlRXZlbnQg
aW50ZXJmYWNlOiBhdHRyaWJ1dGUgeSAKK1BBU1MgTW91c2VFdmVudCBpbnRlcmZhY2U6IGF0dHJp
YnV0ZSBvZmZzZXRYIAorUEFTUyBNb3VzZUV2ZW50IGludGVyZmFjZTogYXR0cmlidXRlIG9mZnNl
dFkgCitQQVNTIEhUTUxFbGVtZW50IGludGVyZmFjZTogYXR0cmlidXRlIG9mZnNldFBhcmVudCAK
K1BBU1MgSFRNTEVsZW1lbnQgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgb2Zmc2V0VG9wIAorUEFTUyBI
VE1MRWxlbWVudCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBvZmZzZXRMZWZ0IAorUEFTUyBIVE1MRWxl
bWVudCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBvZmZzZXRXaWR0aCAKK1BBU1MgSFRNTEVsZW1lbnQg
aW50ZXJmYWNlOiBhdHRyaWJ1dGUgb2Zmc2V0SGVpZ2h0IAorUEFTUyBIVE1MRWxlbWVudCBpbnRl
cmZhY2U6IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0
eSAib2Zmc2V0UGFyZW50IiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgSFRNTEVsZW1lbnQg
aW50ZXJmYWNlOiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSBtdXN0IGluaGVyaXQgcHJv
cGVydHkgIm9mZnNldFRvcCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIEhUTUxFbGVtZW50
IGludGVyZmFjZTogZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikgbXVzdCBpbmhlcml0IHBy
b3BlcnR5ICJvZmZzZXRMZWZ0IiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgSFRNTEVsZW1l
bnQgaW50ZXJmYWNlOiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSBtdXN0IGluaGVyaXQg
cHJvcGVydHkgIm9mZnNldFdpZHRoIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgSFRNTEVs
ZW1lbnQgaW50ZXJmYWNlOiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSBtdXN0IGluaGVy
aXQgcHJvcGVydHkgIm9mZnNldEhlaWdodCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIEVs
ZW1lbnQgaW50ZXJmYWNlOiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSBtdXN0IGluaGVy
aXQgcHJvcGVydHkgImdldENsaWVudFJlY3RzKCkiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFT
UyBFbGVtZW50IGludGVyZmFjZTogZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikgbXVzdCBp
bmhlcml0IHByb3BlcnR5ICJnZXRCb3VuZGluZ0NsaWVudFJlY3QoKSIgd2l0aCB0aGUgcHJvcGVy
IHR5cGUgCitQQVNTIEVsZW1lbnQgaW50ZXJmYWNlOiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJk
aXYiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInNjcm9sbEludG9WaWV3KFtvYmplY3QgT2JqZWN0
XSxbb2JqZWN0IE9iamVjdF0pIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgRWxlbWVudCBp
bnRlcmZhY2U6IGNhbGxpbmcgc2Nyb2xsSW50b1ZpZXcoW29iamVjdCBPYmplY3RdLFtvYmplY3Qg
T2JqZWN0XSkgb24gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iikgd2l0aCB0b28gZmV3IGFy
Z3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKK1BBU1MgRWxlbWVudCBpbnRlcmZhY2U6IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAic2Nyb2xs
KFNjcm9sbFRvT3B0aW9ucykiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBFbGVtZW50IGlu
dGVyZmFjZTogY2FsbGluZyBzY3JvbGwoU2Nyb2xsVG9PcHRpb25zKSBvbiBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJkaXYiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVy
cm9yIAorUEFTUyBFbGVtZW50IGludGVyZmFjZTogZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2
IikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJzY3JvbGwodW5yZXN0cmljdGVkIGRvdWJsZSwgdW5y
ZXN0cmljdGVkIGRvdWJsZSkiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBFbGVtZW50IGlu
dGVyZmFjZTogY2FsbGluZyBzY3JvbGwodW5yZXN0cmljdGVkIGRvdWJsZSwgdW5yZXN0cmljdGVk
IGRvdWJsZSkgb24gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iikgd2l0aCB0b28gZmV3IGFy
Z3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKK1BBU1MgRWxlbWVudCBpbnRlcmZhY2U6IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAic2Nyb2xs
VG8oU2Nyb2xsVG9PcHRpb25zKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIEVsZW1lbnQg
aW50ZXJmYWNlOiBjYWxsaW5nIHNjcm9sbFRvKFNjcm9sbFRvT3B0aW9ucykgb24gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgiZGl2Iikgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5
cGVFcnJvciAKK1BBU1MgRWxlbWVudCBpbnRlcmZhY2U6IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
ImRpdiIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAic2Nyb2xsVG8odW5yZXN0cmljdGVkIGRvdWJs
ZSwgdW5yZXN0cmljdGVkIGRvdWJsZSkiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBFbGVt
ZW50IGludGVyZmFjZTogY2FsbGluZyBzY3JvbGxUbyh1bnJlc3RyaWN0ZWQgZG91YmxlLCB1bnJl
c3RyaWN0ZWQgZG91YmxlKSBvbiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSB3aXRoIHRv
byBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAorUEFTUyBFbGVtZW50IGludGVy
ZmFjZTogZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikgbXVzdCBpbmhlcml0IHByb3BlcnR5
ICJzY3JvbGxCeShTY3JvbGxUb09wdGlvbnMpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1Mg
RWxlbWVudCBpbnRlcmZhY2U6IGNhbGxpbmcgc2Nyb2xsQnkoU2Nyb2xsVG9PcHRpb25zKSBvbiBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3Qg
dGhyb3cgVHlwZUVycm9yIAorUEFTUyBFbGVtZW50IGludGVyZmFjZTogZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgiZGl2IikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJzY3JvbGxCeSh1bnJlc3RyaWN0
ZWQgZG91YmxlLCB1bnJlc3RyaWN0ZWQgZG91YmxlKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQ
QVNTIEVsZW1lbnQgaW50ZXJmYWNlOiBjYWxsaW5nIHNjcm9sbEJ5KHVucmVzdHJpY3RlZCBkb3Vi
bGUsIHVucmVzdHJpY3RlZCBkb3VibGUpIG9uIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIp
IHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCitQQVNTIEVsZW1l
bnQgaW50ZXJmYWNlOiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSBtdXN0IGluaGVyaXQg
cHJvcGVydHkgInNjcm9sbFRvcCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIEVsZW1lbnQg
aW50ZXJmYWNlOiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSBtdXN0IGluaGVyaXQgcHJv
cGVydHkgInNjcm9sbExlZnQiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBFbGVtZW50IGlu
dGVyZmFjZTogZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikgbXVzdCBpbmhlcml0IHByb3Bl
cnR5ICJzY3JvbGxXaWR0aCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIEVsZW1lbnQgaW50
ZXJmYWNlOiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSBtdXN0IGluaGVyaXQgcHJvcGVy
dHkgInNjcm9sbEhlaWdodCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIEVsZW1lbnQgaW50
ZXJmYWNlOiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSBtdXN0IGluaGVyaXQgcHJvcGVy
dHkgImNsaWVudFRvcCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIEVsZW1lbnQgaW50ZXJm
YWNlOiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkg
ImNsaWVudExlZnQiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBFbGVtZW50IGludGVyZmFj
ZTogZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJj
bGllbnRXaWR0aCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIEVsZW1lbnQgaW50ZXJmYWNl
OiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImNs
aWVudEhlaWdodCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitGQUlMIEVsZW1lbnQgaW50ZXJmYWNl
OiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImdl
dEJveFF1YWRzKEJveFF1YWRPcHRpb25zKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2lu
aGVyaXRzOiBwcm9wZXJ0eSAiZ2V0Qm94UXVhZHMiIG5vdCBmb3VuZCBpbiBwcm90b3R5cGUgY2hh
aW4KK0ZBSUwgRWxlbWVudCBpbnRlcmZhY2U6IGNhbGxpbmcgZ2V0Qm94UXVhZHMoQm94UXVhZE9w
dGlvbnMpIG9uIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpIHdpdGggdG9vIGZldyBhcmd1
bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X2luaGVyaXRzOiBwcm9wZXJ0eSAiZ2V0
Qm94UXVhZHMiIG5vdCBmb3VuZCBpbiBwcm90b3R5cGUgY2hhaW4KK0ZBSUwgRWxlbWVudCBpbnRl
cmZhY2U6IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0
eSAiY29udmVydFF1YWRGcm9tTm9kZShET01RdWFkSW5pdCwgR2VvbWV0cnlOb2RlLCBDb252ZXJ0
Q29vcmRpbmF0ZU9wdGlvbnMpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBhc3NlcnRfaW5oZXJpdHM6
IHByb3BlcnR5ICJjb252ZXJ0UXVhZEZyb21Ob2RlIiBub3QgZm91bmQgaW4gcHJvdG90eXBlIGNo
YWluCitGQUlMIEVsZW1lbnQgaW50ZXJmYWNlOiBjYWxsaW5nIGNvbnZlcnRRdWFkRnJvbU5vZGUo
RE9NUXVhZEluaXQsIEdlb21ldHJ5Tm9kZSwgQ29udmVydENvb3JkaW5hdGVPcHRpb25zKSBvbiBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3Qg
dGhyb3cgVHlwZUVycm9yIGFzc2VydF9pbmhlcml0czogcHJvcGVydHkgImNvbnZlcnRRdWFkRnJv
bU5vZGUiIG5vdCBmb3VuZCBpbiBwcm90b3R5cGUgY2hhaW4KK0ZBSUwgRWxlbWVudCBpbnRlcmZh
Y2U6IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAi
Y29udmVydFJlY3RGcm9tTm9kZShET01SZWN0UmVhZE9ubHksIEdlb21ldHJ5Tm9kZSwgQ29udmVy
dENvb3JkaW5hdGVPcHRpb25zKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2luaGVyaXRz
OiBwcm9wZXJ0eSAiY29udmVydFJlY3RGcm9tTm9kZSIgbm90IGZvdW5kIGluIHByb3RvdHlwZSBj
aGFpbgorRkFJTCBFbGVtZW50IGludGVyZmFjZTogY2FsbGluZyBjb252ZXJ0UmVjdEZyb21Ob2Rl
KERPTVJlY3RSZWFkT25seSwgR2VvbWV0cnlOb2RlLCBDb252ZXJ0Q29vcmRpbmF0ZU9wdGlvbnMp
IG9uIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpIHdpdGggdG9vIGZldyBhcmd1bWVudHMg
bXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X2luaGVyaXRzOiBwcm9wZXJ0eSAiY29udmVydFJl
Y3RGcm9tTm9kZSIgbm90IGZvdW5kIGluIHByb3RvdHlwZSBjaGFpbgorRkFJTCBFbGVtZW50IGlu
dGVyZmFjZTogZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikgbXVzdCBpbmhlcml0IHByb3Bl
cnR5ICJjb252ZXJ0UG9pbnRGcm9tTm9kZShET01Qb2ludEluaXQsIEdlb21ldHJ5Tm9kZSwgQ29u
dmVydENvb3JkaW5hdGVPcHRpb25zKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2luaGVy
aXRzOiBwcm9wZXJ0eSAiY29udmVydFBvaW50RnJvbU5vZGUiIG5vdCBmb3VuZCBpbiBwcm90b3R5
cGUgY2hhaW4KK0ZBSUwgRWxlbWVudCBpbnRlcmZhY2U6IGNhbGxpbmcgY29udmVydFBvaW50RnJv
bU5vZGUoRE9NUG9pbnRJbml0LCBHZW9tZXRyeU5vZGUsIENvbnZlcnRDb29yZGluYXRlT3B0aW9u
cykgb24gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iikgd2l0aCB0b28gZmV3IGFyZ3VtZW50
cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfaW5oZXJpdHM6IHByb3BlcnR5ICJjb252ZXJ0
UG9pbnRGcm9tTm9kZSIgbm90IGZvdW5kIGluIHByb3RvdHlwZSBjaGFpbgorUEFTUyBIVE1MSW1h
Z2VFbGVtZW50IGludGVyZmFjZTogYXR0cmlidXRlIHggCitQQVNTIEhUTUxJbWFnZUVsZW1lbnQg
aW50ZXJmYWNlOiBhdHRyaWJ1dGUgeSAKK1BBU1MgSFRNTEltYWdlRWxlbWVudCBpbnRlcmZhY2U6
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImltZyIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAieCIg
d2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIEhUTUxJbWFnZUVsZW1lbnQgaW50ZXJmYWNlOiBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbWciKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInkiIHdp
dGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBIVE1MRWxlbWVudCBpbnRlcmZhY2U6IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoImltZyIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAib2Zmc2V0UGFyZW50
IiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgSFRNTEVsZW1lbnQgaW50ZXJmYWNlOiBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJpbWciKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgIm9mZnNldFRv
cCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIEhUTUxFbGVtZW50IGludGVyZmFjZTogZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgiaW1nIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJvZmZzZXRM
ZWZ0IiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgSFRNTEVsZW1lbnQgaW50ZXJmYWNlOiBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbWciKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgIm9mZnNl
dFdpZHRoIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgSFRNTEVsZW1lbnQgaW50ZXJmYWNl
OiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbWciKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgIm9m
ZnNldEhlaWdodCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIEVsZW1lbnQgaW50ZXJmYWNl
OiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbWciKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImdl
dENsaWVudFJlY3RzKCkiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBFbGVtZW50IGludGVy
ZmFjZTogZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW1nIikgbXVzdCBpbmhlcml0IHByb3BlcnR5
ICJnZXRCb3VuZGluZ0NsaWVudFJlY3QoKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIEVs
ZW1lbnQgaW50ZXJmYWNlOiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbWciKSBtdXN0IGluaGVy
aXQgcHJvcGVydHkgInNjcm9sbEludG9WaWV3KFtvYmplY3QgT2JqZWN0XSxbb2JqZWN0IE9iamVj
dF0pIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgRWxlbWVudCBpbnRlcmZhY2U6IGNhbGxp
bmcgc2Nyb2xsSW50b1ZpZXcoW29iamVjdCBPYmplY3RdLFtvYmplY3QgT2JqZWN0XSkgb24gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgiaW1nIikgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRo
cm93IFR5cGVFcnJvciAKK1BBU1MgRWxlbWVudCBpbnRlcmZhY2U6IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoImltZyIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAic2Nyb2xsKFNjcm9sbFRvT3B0aW9u
cykiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBFbGVtZW50IGludGVyZmFjZTogY2FsbGlu
ZyBzY3JvbGwoU2Nyb2xsVG9PcHRpb25zKSBvbiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbWci
KSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAorUEFTUyBFbGVt
ZW50IGludGVyZmFjZTogZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW1nIikgbXVzdCBpbmhlcml0
IHByb3BlcnR5ICJzY3JvbGwodW5yZXN0cmljdGVkIGRvdWJsZSwgdW5yZXN0cmljdGVkIGRvdWJs
ZSkiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBFbGVtZW50IGludGVyZmFjZTogY2FsbGlu
ZyBzY3JvbGwodW5yZXN0cmljdGVkIGRvdWJsZSwgdW5yZXN0cmljdGVkIGRvdWJsZSkgb24gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgiaW1nIikgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRo
cm93IFR5cGVFcnJvciAKK1BBU1MgRWxlbWVudCBpbnRlcmZhY2U6IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoImltZyIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAic2Nyb2xsVG8oU2Nyb2xsVG9PcHRp
b25zKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIEVsZW1lbnQgaW50ZXJmYWNlOiBjYWxs
aW5nIHNjcm9sbFRvKFNjcm9sbFRvT3B0aW9ucykgb24gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi
aW1nIikgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKK1BBU1Mg
RWxlbWVudCBpbnRlcmZhY2U6IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImltZyIpIG11c3QgaW5o
ZXJpdCBwcm9wZXJ0eSAic2Nyb2xsVG8odW5yZXN0cmljdGVkIGRvdWJsZSwgdW5yZXN0cmljdGVk
IGRvdWJsZSkiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBFbGVtZW50IGludGVyZmFjZTog
Y2FsbGluZyBzY3JvbGxUbyh1bnJlc3RyaWN0ZWQgZG91YmxlLCB1bnJlc3RyaWN0ZWQgZG91Ymxl
KSBvbiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbWciKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRz
IG11c3QgdGhyb3cgVHlwZUVycm9yIAorUEFTUyBFbGVtZW50IGludGVyZmFjZTogZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgiaW1nIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJzY3JvbGxCeShTY3Jv
bGxUb09wdGlvbnMpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgRWxlbWVudCBpbnRlcmZh
Y2U6IGNhbGxpbmcgc2Nyb2xsQnkoU2Nyb2xsVG9PcHRpb25zKSBvbiBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJpbWciKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9y
IAorUEFTUyBFbGVtZW50IGludGVyZmFjZTogZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW1nIikg
bXVzdCBpbmhlcml0IHByb3BlcnR5ICJzY3JvbGxCeSh1bnJlc3RyaWN0ZWQgZG91YmxlLCB1bnJl
c3RyaWN0ZWQgZG91YmxlKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIEVsZW1lbnQgaW50
ZXJmYWNlOiBjYWxsaW5nIHNjcm9sbEJ5KHVucmVzdHJpY3RlZCBkb3VibGUsIHVucmVzdHJpY3Rl
ZCBkb3VibGUpIG9uIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImltZyIpIHdpdGggdG9vIGZldyBh
cmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCitQQVNTIEVsZW1lbnQgaW50ZXJmYWNlOiBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbWciKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInNjcm9s
bFRvcCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIEVsZW1lbnQgaW50ZXJmYWNlOiBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJpbWciKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInNjcm9sbExl
ZnQiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBFbGVtZW50IGludGVyZmFjZTogZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgiaW1nIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJzY3JvbGxXaWR0
aCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIEVsZW1lbnQgaW50ZXJmYWNlOiBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJpbWciKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInNjcm9sbEhlaWdo
dCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIEVsZW1lbnQgaW50ZXJmYWNlOiBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJpbWciKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImNsaWVudFRvcCIg
d2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIEVsZW1lbnQgaW50ZXJmYWNlOiBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCJpbWciKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImNsaWVudExlZnQiIHdp
dGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBFbGVtZW50IGludGVyZmFjZTogZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgiaW1nIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJjbGllbnRXaWR0aCIgd2l0
aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIEVsZW1lbnQgaW50ZXJmYWNlOiBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJpbWciKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImNsaWVudEhlaWdodCIgd2l0
aCB0aGUgcHJvcGVyIHR5cGUgCitGQUlMIEVsZW1lbnQgaW50ZXJmYWNlOiBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJpbWciKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImdldEJveFF1YWRzKEJveFF1
YWRPcHRpb25zKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2luaGVyaXRzOiBwcm9wZXJ0
eSAiZ2V0Qm94UXVhZHMiIG5vdCBmb3VuZCBpbiBwcm90b3R5cGUgY2hhaW4KK0ZBSUwgRWxlbWVu
dCBpbnRlcmZhY2U6IGNhbGxpbmcgZ2V0Qm94UXVhZHMoQm94UXVhZE9wdGlvbnMpIG9uIGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoImltZyIpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJv
dyBUeXBlRXJyb3IgYXNzZXJ0X2luaGVyaXRzOiBwcm9wZXJ0eSAiZ2V0Qm94UXVhZHMiIG5vdCBm
b3VuZCBpbiBwcm90b3R5cGUgY2hhaW4KK0ZBSUwgRWxlbWVudCBpbnRlcmZhY2U6IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoImltZyIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiY29udmVydFF1YWRG
cm9tTm9kZShET01RdWFkSW5pdCwgR2VvbWV0cnlOb2RlLCBDb252ZXJ0Q29vcmRpbmF0ZU9wdGlv
bnMpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBhc3NlcnRfaW5oZXJpdHM6IHByb3BlcnR5ICJjb252
ZXJ0UXVhZEZyb21Ob2RlIiBub3QgZm91bmQgaW4gcHJvdG90eXBlIGNoYWluCitGQUlMIEVsZW1l
bnQgaW50ZXJmYWNlOiBjYWxsaW5nIGNvbnZlcnRRdWFkRnJvbU5vZGUoRE9NUXVhZEluaXQsIEdl
b21ldHJ5Tm9kZSwgQ29udmVydENvb3JkaW5hdGVPcHRpb25zKSBvbiBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJpbWciKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9y
IGFzc2VydF9pbmhlcml0czogcHJvcGVydHkgImNvbnZlcnRRdWFkRnJvbU5vZGUiIG5vdCBmb3Vu
ZCBpbiBwcm90b3R5cGUgY2hhaW4KK0ZBSUwgRWxlbWVudCBpbnRlcmZhY2U6IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoImltZyIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiY29udmVydFJlY3RGcm9t
Tm9kZShET01SZWN0UmVhZE9ubHksIEdlb21ldHJ5Tm9kZSwgQ29udmVydENvb3JkaW5hdGVPcHRp
b25zKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2luaGVyaXRzOiBwcm9wZXJ0eSAiY29u
dmVydFJlY3RGcm9tTm9kZSIgbm90IGZvdW5kIGluIHByb3RvdHlwZSBjaGFpbgorRkFJTCBFbGVt
ZW50IGludGVyZmFjZTogY2FsbGluZyBjb252ZXJ0UmVjdEZyb21Ob2RlKERPTVJlY3RSZWFkT25s
eSwgR2VvbWV0cnlOb2RlLCBDb252ZXJ0Q29vcmRpbmF0ZU9wdGlvbnMpIG9uIGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoImltZyIpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBl
RXJyb3IgYXNzZXJ0X2luaGVyaXRzOiBwcm9wZXJ0eSAiY29udmVydFJlY3RGcm9tTm9kZSIgbm90
IGZvdW5kIGluIHByb3RvdHlwZSBjaGFpbgorRkFJTCBFbGVtZW50IGludGVyZmFjZTogZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgiaW1nIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJjb252ZXJ0UG9p
bnRGcm9tTm9kZShET01Qb2ludEluaXQsIEdlb21ldHJ5Tm9kZSwgQ29udmVydENvb3JkaW5hdGVP
cHRpb25zKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2luaGVyaXRzOiBwcm9wZXJ0eSAi
Y29udmVydFBvaW50RnJvbU5vZGUiIG5vdCBmb3VuZCBpbiBwcm90b3R5cGUgY2hhaW4KK0ZBSUwg
RWxlbWVudCBpbnRlcmZhY2U6IGNhbGxpbmcgY29udmVydFBvaW50RnJvbU5vZGUoRE9NUG9pbnRJ
bml0LCBHZW9tZXRyeU5vZGUsIENvbnZlcnRDb29yZGluYXRlT3B0aW9ucykgb24gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgiaW1nIikgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5
cGVFcnJvciBhc3NlcnRfaW5oZXJpdHM6IHByb3BlcnR5ICJjb252ZXJ0UG9pbnRGcm9tTm9kZSIg
bm90IGZvdW5kIGluIHByb3RvdHlwZSBjaGFpbgorUEFTUyBXaW5kb3cgaW50ZXJmYWNlOiBvcGVy
YXRpb24gbWF0Y2hNZWRpYShDU1NPTVN0cmluZykgCitQQVNTIFdpbmRvdyBpbnRlcmZhY2U6IGF0
dHJpYnV0ZSBzY3JlZW4gCitGQUlMIFdpbmRvdyBpbnRlcmZhY2U6IG9wZXJhdGlvbiBtb3ZlVG8o
bG9uZywgbG9uZykgYXNzZXJ0X2VxdWFsczogcHJvcGVydHkgaGFzIHdyb25nIC5sZW5ndGggZXhw
ZWN0ZWQgMiBidXQgZ290IDAKK0ZBSUwgV2luZG93IGludGVyZmFjZTogb3BlcmF0aW9uIG1vdmVC
eShsb25nLCBsb25nKSBhc3NlcnRfZXF1YWxzOiBwcm9wZXJ0eSBoYXMgd3JvbmcgLmxlbmd0aCBl
eHBlY3RlZCAyIGJ1dCBnb3QgMAorRkFJTCBXaW5kb3cgaW50ZXJmYWNlOiBvcGVyYXRpb24gcmVz
aXplVG8obG9uZywgbG9uZykgYXNzZXJ0X2VxdWFsczogcHJvcGVydHkgaGFzIHdyb25nIC5sZW5n
dGggZXhwZWN0ZWQgMiBidXQgZ290IDAKK0ZBSUwgV2luZG93IGludGVyZmFjZTogb3BlcmF0aW9u
IHJlc2l6ZUJ5KGxvbmcsIGxvbmcpIGFzc2VydF9lcXVhbHM6IHByb3BlcnR5IGhhcyB3cm9uZyAu
bGVuZ3RoIGV4cGVjdGVkIDIgYnV0IGdvdCAwCitQQVNTIFdpbmRvdyBpbnRlcmZhY2U6IGF0dHJp
YnV0ZSBpbm5lcldpZHRoIAorUEFTUyBXaW5kb3cgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgaW5uZXJI
ZWlnaHQgCitQQVNTIFdpbmRvdyBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBzY3JvbGxYIAorUEFTUyBX
aW5kb3cgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgcGFnZVhPZmZzZXQgCitQQVNTIFdpbmRvdyBpbnRl
cmZhY2U6IGF0dHJpYnV0ZSBzY3JvbGxZIAorUEFTUyBXaW5kb3cgaW50ZXJmYWNlOiBhdHRyaWJ1
dGUgcGFnZVlPZmZzZXQgCitQQVNTIFdpbmRvdyBpbnRlcmZhY2U6IG9wZXJhdGlvbiBzY3JvbGwo
U2Nyb2xsVG9PcHRpb25zKSAKK1BBU1MgV2luZG93IGludGVyZmFjZTogb3BlcmF0aW9uIHNjcm9s
bCh1bnJlc3RyaWN0ZWQgZG91YmxlLCB1bnJlc3RyaWN0ZWQgZG91YmxlKSAKK1BBU1MgV2luZG93
IGludGVyZmFjZTogb3BlcmF0aW9uIHNjcm9sbFRvKFNjcm9sbFRvT3B0aW9ucykgCitQQVNTIFdp
bmRvdyBpbnRlcmZhY2U6IG9wZXJhdGlvbiBzY3JvbGxUbyh1bnJlc3RyaWN0ZWQgZG91YmxlLCB1
bnJlc3RyaWN0ZWQgZG91YmxlKSAKK1BBU1MgV2luZG93IGludGVyZmFjZTogb3BlcmF0aW9uIHNj
cm9sbEJ5KFNjcm9sbFRvT3B0aW9ucykgCitQQVNTIFdpbmRvdyBpbnRlcmZhY2U6IG9wZXJhdGlv
biBzY3JvbGxCeSh1bnJlc3RyaWN0ZWQgZG91YmxlLCB1bnJlc3RyaWN0ZWQgZG91YmxlKSAKK1BB
U1MgV2luZG93IGludGVyZmFjZTogYXR0cmlidXRlIHNjcmVlblggCitQQVNTIFdpbmRvdyBpbnRl
cmZhY2U6IGF0dHJpYnV0ZSBzY3JlZW5MZWZ0IAorUEFTUyBXaW5kb3cgaW50ZXJmYWNlOiBhdHRy
aWJ1dGUgc2NyZWVuWSAKK1BBU1MgV2luZG93IGludGVyZmFjZTogYXR0cmlidXRlIHNjcmVlblRv
cCAKK1BBU1MgV2luZG93IGludGVyZmFjZTogYXR0cmlidXRlIG91dGVyV2lkdGggCitQQVNTIFdp
bmRvdyBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBvdXRlckhlaWdodCAKK1BBU1MgV2luZG93IGludGVy
ZmFjZTogYXR0cmlidXRlIGRldmljZVBpeGVsUmF0aW8gCitQQVNTIFdpbmRvdyBpbnRlcmZhY2U6
IHdpbmRvdyBtdXN0IGluaGVyaXQgcHJvcGVydHkgIm1hdGNoTWVkaWEoQ1NTT01TdHJpbmcpIiB3
aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgV2luZG93IGludGVyZmFjZTogY2FsbGluZyBtYXRj
aE1lZGlhKENTU09NU3RyaW5nKSBvbiB3aW5kb3cgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0
IHRocm93IFR5cGVFcnJvciAKK1BBU1MgV2luZG93IGludGVyZmFjZTogd2luZG93IG11c3QgaW5o
ZXJpdCBwcm9wZXJ0eSAic2NyZWVuIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgV2luZG93
IGludGVyZmFjZTogd2luZG93IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAibW92ZVRvKGxvbmcsIGxv
bmcpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK0ZBSUwgV2luZG93IGludGVyZmFjZTogY2FsbGlu
ZyBtb3ZlVG8obG9uZywgbG9uZykgb24gd2luZG93IHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVz
dCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMg
ZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIGZuLmFwcGx5KG9iaiwgYXJncyk7
CisgICAgICAgIH0iIGRpZCBub3QgdGhyb3cKK1BBU1MgV2luZG93IGludGVyZmFjZTogd2luZG93
IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAibW92ZUJ5KGxvbmcsIGxvbmcpIiB3aXRoIHRoZSBwcm9w
ZXIgdHlwZSAKK0ZBSUwgV2luZG93IGludGVyZmFjZTogY2FsbGluZyBtb3ZlQnkobG9uZywgbG9u
Zykgb24gd2luZG93IHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3Ig
YXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9u
ICgpIHsKKyAgICAgICAgICAgIGZuLmFwcGx5KG9iaiwgYXJncyk7CisgICAgICAgIH0iIGRpZCBu
b3QgdGhyb3cKK1BBU1MgV2luZG93IGludGVyZmFjZTogd2luZG93IG11c3QgaW5oZXJpdCBwcm9w
ZXJ0eSAicmVzaXplVG8obG9uZywgbG9uZykiIHdpdGggdGhlIHByb3BlciB0eXBlIAorRkFJTCBX
aW5kb3cgaW50ZXJmYWNlOiBjYWxsaW5nIHJlc2l6ZVRvKGxvbmcsIGxvbmcpIG9uIHdpbmRvdyB3
aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6
IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7CisgICAgICAg
ICAgICBmbi5hcHBseShvYmosIGFyZ3MpOworICAgICAgICB9IiBkaWQgbm90IHRocm93CitQQVNT
IFdpbmRvdyBpbnRlcmZhY2U6IHdpbmRvdyBtdXN0IGluaGVyaXQgcHJvcGVydHkgInJlc2l6ZUJ5
KGxvbmcsIGxvbmcpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK0ZBSUwgV2luZG93IGludGVyZmFj
ZTogY2FsbGluZyByZXNpemVCeShsb25nLCBsb25nKSBvbiB3aW5kb3cgd2l0aCB0b28gZmV3IGFy
Z3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAw
IGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgZm4uYXBwbHko
b2JqLCBhcmdzKTsKKyAgICAgICAgfSIgZGlkIG5vdCB0aHJvdworUEFTUyBXaW5kb3cgaW50ZXJm
YWNlOiB3aW5kb3cgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJpbm5lcldpZHRoIiB3aXRoIHRoZSBw
cm9wZXIgdHlwZSAKK1BBU1MgV2luZG93IGludGVyZmFjZTogd2luZG93IG11c3QgaW5oZXJpdCBw
cm9wZXJ0eSAiaW5uZXJIZWlnaHQiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBXaW5kb3cg
aW50ZXJmYWNlOiB3aW5kb3cgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJzY3JvbGxYIiB3aXRoIHRo
ZSBwcm9wZXIgdHlwZSAKK1BBU1MgV2luZG93IGludGVyZmFjZTogd2luZG93IG11c3QgaW5oZXJp
dCBwcm9wZXJ0eSAicGFnZVhPZmZzZXQiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBXaW5k
b3cgaW50ZXJmYWNlOiB3aW5kb3cgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJzY3JvbGxZIiB3aXRo
IHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgV2luZG93IGludGVyZmFjZTogd2luZG93IG11c3QgaW5o
ZXJpdCBwcm9wZXJ0eSAicGFnZVlPZmZzZXQiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBX
aW5kb3cgaW50ZXJmYWNlOiB3aW5kb3cgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJzY3JvbGwoU2Ny
b2xsVG9PcHRpb25zKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIFdpbmRvdyBpbnRlcmZh
Y2U6IGNhbGxpbmcgc2Nyb2xsKFNjcm9sbFRvT3B0aW9ucykgb24gd2luZG93IHdpdGggdG9vIGZl
dyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCitQQVNTIFdpbmRvdyBpbnRlcmZhY2U6
IHdpbmRvdyBtdXN0IGluaGVyaXQgcHJvcGVydHkgInNjcm9sbCh1bnJlc3RyaWN0ZWQgZG91Ymxl
LCB1bnJlc3RyaWN0ZWQgZG91YmxlKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIFdpbmRv
dyBpbnRlcmZhY2U6IGNhbGxpbmcgc2Nyb2xsKHVucmVzdHJpY3RlZCBkb3VibGUsIHVucmVzdHJp
Y3RlZCBkb3VibGUpIG9uIHdpbmRvdyB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cg
VHlwZUVycm9yIAorUEFTUyBXaW5kb3cgaW50ZXJmYWNlOiB3aW5kb3cgbXVzdCBpbmhlcml0IHBy
b3BlcnR5ICJzY3JvbGxUbyhTY3JvbGxUb09wdGlvbnMpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAK
K1BBU1MgV2luZG93IGludGVyZmFjZTogY2FsbGluZyBzY3JvbGxUbyhTY3JvbGxUb09wdGlvbnMp
IG9uIHdpbmRvdyB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAor
UEFTUyBXaW5kb3cgaW50ZXJmYWNlOiB3aW5kb3cgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJzY3Jv
bGxUbyh1bnJlc3RyaWN0ZWQgZG91YmxlLCB1bnJlc3RyaWN0ZWQgZG91YmxlKSIgd2l0aCB0aGUg
cHJvcGVyIHR5cGUgCitQQVNTIFdpbmRvdyBpbnRlcmZhY2U6IGNhbGxpbmcgc2Nyb2xsVG8odW5y
ZXN0cmljdGVkIGRvdWJsZSwgdW5yZXN0cmljdGVkIGRvdWJsZSkgb24gd2luZG93IHdpdGggdG9v
IGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCitQQVNTIFdpbmRvdyBpbnRlcmZh
Y2U6IHdpbmRvdyBtdXN0IGluaGVyaXQgcHJvcGVydHkgInNjcm9sbEJ5KFNjcm9sbFRvT3B0aW9u
cykiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBXaW5kb3cgaW50ZXJmYWNlOiBjYWxsaW5n
IHNjcm9sbEJ5KFNjcm9sbFRvT3B0aW9ucykgb24gd2luZG93IHdpdGggdG9vIGZldyBhcmd1bWVu
dHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCitQQVNTIFdpbmRvdyBpbnRlcmZhY2U6IHdpbmRvdyBt
dXN0IGluaGVyaXQgcHJvcGVydHkgInNjcm9sbEJ5KHVucmVzdHJpY3RlZCBkb3VibGUsIHVucmVz
dHJpY3RlZCBkb3VibGUpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgV2luZG93IGludGVy
ZmFjZTogY2FsbGluZyBzY3JvbGxCeSh1bnJlc3RyaWN0ZWQgZG91YmxlLCB1bnJlc3RyaWN0ZWQg
ZG91YmxlKSBvbiB3aW5kb3cgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVF
cnJvciAKK1BBU1MgV2luZG93IGludGVyZmFjZTogd2luZG93IG11c3QgaW5oZXJpdCBwcm9wZXJ0
eSAic2NyZWVuWCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIFdpbmRvdyBpbnRlcmZhY2U6
IHdpbmRvdyBtdXN0IGluaGVyaXQgcHJvcGVydHkgInNjcmVlbkxlZnQiIHdpdGggdGhlIHByb3Bl
ciB0eXBlIAorUEFTUyBXaW5kb3cgaW50ZXJmYWNlOiB3aW5kb3cgbXVzdCBpbmhlcml0IHByb3Bl
cnR5ICJzY3JlZW5ZIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgV2luZG93IGludGVyZmFj
ZTogd2luZG93IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAic2NyZWVuVG9wIiB3aXRoIHRoZSBwcm9w
ZXIgdHlwZSAKK1BBU1MgV2luZG93IGludGVyZmFjZTogd2luZG93IG11c3QgaW5oZXJpdCBwcm9w
ZXJ0eSAib3V0ZXJXaWR0aCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIFdpbmRvdyBpbnRl
cmZhY2U6IHdpbmRvdyBtdXN0IGluaGVyaXQgcHJvcGVydHkgIm91dGVySGVpZ2h0IiB3aXRoIHRo
ZSBwcm9wZXIgdHlwZSAKK1BBU1MgV2luZG93IGludGVyZmFjZTogd2luZG93IG11c3QgaW5oZXJp
dCBwcm9wZXJ0eSAiZGV2aWNlUGl4ZWxSYXRpbyIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNT
IERvY3VtZW50IGludGVyZmFjZTogb3BlcmF0aW9uIGVsZW1lbnRGcm9tUG9pbnQoZG91YmxlLCBk
b3VibGUpIAorUEFTUyBEb2N1bWVudCBpbnRlcmZhY2U6IG9wZXJhdGlvbiBlbGVtZW50c0Zyb21Q
b2ludChkb3VibGUsIGRvdWJsZSkgCitGQUlMIERvY3VtZW50IGludGVyZmFjZTogb3BlcmF0aW9u
IGNhcmV0UG9zaXRpb25Gcm9tUG9pbnQoZG91YmxlLCBkb3VibGUpIGFzc2VydF9vd25fcHJvcGVy
dHk6IGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IG1pc3Npbmcgbm9uLXN0YXRpYyBvcGVyYXRp
b24gZXhwZWN0ZWQgcHJvcGVydHkgImNhcmV0UG9zaXRpb25Gcm9tUG9pbnQiIG1pc3NpbmcKK1BB
U1MgRG9jdW1lbnQgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgc2Nyb2xsaW5nRWxlbWVudCAKK0ZBSUwg
RG9jdW1lbnQgaW50ZXJmYWNlOiBvcGVyYXRpb24gZ2V0Qm94UXVhZHMoQm94UXVhZE9wdGlvbnMp
IGFzc2VydF9vd25fcHJvcGVydHk6IGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IG1pc3Npbmcg
bm9uLXN0YXRpYyBvcGVyYXRpb24gZXhwZWN0ZWQgcHJvcGVydHkgImdldEJveFF1YWRzIiBtaXNz
aW5nCitGQUlMIERvY3VtZW50IGludGVyZmFjZTogb3BlcmF0aW9uIGNvbnZlcnRRdWFkRnJvbU5v
ZGUoRE9NUXVhZEluaXQsIEdlb21ldHJ5Tm9kZSwgQ29udmVydENvb3JkaW5hdGVPcHRpb25zKSBh
c3NlcnRfb3duX3Byb3BlcnR5OiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCBtaXNzaW5nIG5v
bi1zdGF0aWMgb3BlcmF0aW9uIGV4cGVjdGVkIHByb3BlcnR5ICJjb252ZXJ0UXVhZEZyb21Ob2Rl
IiBtaXNzaW5nCitGQUlMIERvY3VtZW50IGludGVyZmFjZTogb3BlcmF0aW9uIGNvbnZlcnRSZWN0
RnJvbU5vZGUoRE9NUmVjdFJlYWRPbmx5LCBHZW9tZXRyeU5vZGUsIENvbnZlcnRDb29yZGluYXRl
T3B0aW9ucykgYXNzZXJ0X293bl9wcm9wZXJ0eTogaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3Qg
bWlzc2luZyBub24tc3RhdGljIG9wZXJhdGlvbiBleHBlY3RlZCBwcm9wZXJ0eSAiY29udmVydFJl
Y3RGcm9tTm9kZSIgbWlzc2luZworRkFJTCBEb2N1bWVudCBpbnRlcmZhY2U6IG9wZXJhdGlvbiBj
b252ZXJ0UG9pbnRGcm9tTm9kZShET01Qb2ludEluaXQsIEdlb21ldHJ5Tm9kZSwgQ29udmVydENv
b3JkaW5hdGVPcHRpb25zKSBhc3NlcnRfb3duX3Byb3BlcnR5OiBpbnRlcmZhY2UgcHJvdG90eXBl
IG9iamVjdCBtaXNzaW5nIG5vbi1zdGF0aWMgb3BlcmF0aW9uIGV4cGVjdGVkIHByb3BlcnR5ICJj
b252ZXJ0UG9pbnRGcm9tTm9kZSIgbWlzc2luZworUEFTUyBEb2N1bWVudCBpbnRlcmZhY2U6IGRv
Y3VtZW50IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiZWxlbWVudEZyb21Qb2ludChkb3VibGUsIGRv
dWJsZSkiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBEb2N1bWVudCBpbnRlcmZhY2U6IGNh
bGxpbmcgZWxlbWVudEZyb21Qb2ludChkb3VibGUsIGRvdWJsZSkgb24gZG9jdW1lbnQgd2l0aCB0
b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKK1BBU1MgRG9jdW1lbnQgaW50
ZXJmYWNlOiBkb2N1bWVudCBtdXN0IGluaGVyaXQgcHJvcGVydHkgImVsZW1lbnRzRnJvbVBvaW50
KGRvdWJsZSwgZG91YmxlKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIERvY3VtZW50IGlu
dGVyZmFjZTogY2FsbGluZyBlbGVtZW50c0Zyb21Qb2ludChkb3VibGUsIGRvdWJsZSkgb24gZG9j
dW1lbnQgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKK0ZBSUwg
RG9jdW1lbnQgaW50ZXJmYWNlOiBkb2N1bWVudCBtdXN0IGluaGVyaXQgcHJvcGVydHkgImNhcmV0
UG9zaXRpb25Gcm9tUG9pbnQoZG91YmxlLCBkb3VibGUpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBh
c3NlcnRfaW5oZXJpdHM6IHByb3BlcnR5ICJjYXJldFBvc2l0aW9uRnJvbVBvaW50IiBub3QgZm91
bmQgaW4gcHJvdG90eXBlIGNoYWluCitGQUlMIERvY3VtZW50IGludGVyZmFjZTogY2FsbGluZyBj
YXJldFBvc2l0aW9uRnJvbVBvaW50KGRvdWJsZSwgZG91YmxlKSBvbiBkb2N1bWVudCB3aXRoIHRv
byBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF9pbmhlcml0czogcHJv
cGVydHkgImNhcmV0UG9zaXRpb25Gcm9tUG9pbnQiIG5vdCBmb3VuZCBpbiBwcm90b3R5cGUgY2hh
aW4KK1BBU1MgRG9jdW1lbnQgaW50ZXJmYWNlOiBkb2N1bWVudCBtdXN0IGluaGVyaXQgcHJvcGVy
dHkgInNjcm9sbGluZ0VsZW1lbnQiIHdpdGggdGhlIHByb3BlciB0eXBlIAorRkFJTCBEb2N1bWVu
dCBpbnRlcmZhY2U6IGRvY3VtZW50IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiZ2V0Qm94UXVhZHMo
Qm94UXVhZE9wdGlvbnMpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBhc3NlcnRfaW5oZXJpdHM6IHBy
b3BlcnR5ICJnZXRCb3hRdWFkcyIgbm90IGZvdW5kIGluIHByb3RvdHlwZSBjaGFpbgorRkFJTCBE
b2N1bWVudCBpbnRlcmZhY2U6IGNhbGxpbmcgZ2V0Qm94UXVhZHMoQm94UXVhZE9wdGlvbnMpIG9u
IGRvY3VtZW50IHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNz
ZXJ0X2luaGVyaXRzOiBwcm9wZXJ0eSAiZ2V0Qm94UXVhZHMiIG5vdCBmb3VuZCBpbiBwcm90b3R5
cGUgY2hhaW4KK0ZBSUwgRG9jdW1lbnQgaW50ZXJmYWNlOiBkb2N1bWVudCBtdXN0IGluaGVyaXQg
cHJvcGVydHkgImNvbnZlcnRRdWFkRnJvbU5vZGUoRE9NUXVhZEluaXQsIEdlb21ldHJ5Tm9kZSwg
Q29udmVydENvb3JkaW5hdGVPcHRpb25zKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2lu
aGVyaXRzOiBwcm9wZXJ0eSAiY29udmVydFF1YWRGcm9tTm9kZSIgbm90IGZvdW5kIGluIHByb3Rv
dHlwZSBjaGFpbgorRkFJTCBEb2N1bWVudCBpbnRlcmZhY2U6IGNhbGxpbmcgY29udmVydFF1YWRG
cm9tTm9kZShET01RdWFkSW5pdCwgR2VvbWV0cnlOb2RlLCBDb252ZXJ0Q29vcmRpbmF0ZU9wdGlv
bnMpIG9uIGRvY3VtZW50IHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJy
b3IgYXNzZXJ0X2luaGVyaXRzOiBwcm9wZXJ0eSAiY29udmVydFF1YWRGcm9tTm9kZSIgbm90IGZv
dW5kIGluIHByb3RvdHlwZSBjaGFpbgorRkFJTCBEb2N1bWVudCBpbnRlcmZhY2U6IGRvY3VtZW50
IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiY29udmVydFJlY3RGcm9tTm9kZShET01SZWN0UmVhZE9u
bHksIEdlb21ldHJ5Tm9kZSwgQ29udmVydENvb3JkaW5hdGVPcHRpb25zKSIgd2l0aCB0aGUgcHJv
cGVyIHR5cGUgYXNzZXJ0X2luaGVyaXRzOiBwcm9wZXJ0eSAiY29udmVydFJlY3RGcm9tTm9kZSIg
bm90IGZvdW5kIGluIHByb3RvdHlwZSBjaGFpbgorRkFJTCBEb2N1bWVudCBpbnRlcmZhY2U6IGNh
bGxpbmcgY29udmVydFJlY3RGcm9tTm9kZShET01SZWN0UmVhZE9ubHksIEdlb21ldHJ5Tm9kZSwg
Q29udmVydENvb3JkaW5hdGVPcHRpb25zKSBvbiBkb2N1bWVudCB3aXRoIHRvbyBmZXcgYXJndW1l
bnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF9pbmhlcml0czogcHJvcGVydHkgImNvbnZl
cnRSZWN0RnJvbU5vZGUiIG5vdCBmb3VuZCBpbiBwcm90b3R5cGUgY2hhaW4KK0ZBSUwgRG9jdW1l
bnQgaW50ZXJmYWNlOiBkb2N1bWVudCBtdXN0IGluaGVyaXQgcHJvcGVydHkgImNvbnZlcnRQb2lu
dEZyb21Ob2RlKERPTVBvaW50SW5pdCwgR2VvbWV0cnlOb2RlLCBDb252ZXJ0Q29vcmRpbmF0ZU9w
dGlvbnMpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBhc3NlcnRfaW5oZXJpdHM6IHByb3BlcnR5ICJj
b252ZXJ0UG9pbnRGcm9tTm9kZSIgbm90IGZvdW5kIGluIHByb3RvdHlwZSBjaGFpbgorRkFJTCBE
b2N1bWVudCBpbnRlcmZhY2U6IGNhbGxpbmcgY29udmVydFBvaW50RnJvbU5vZGUoRE9NUG9pbnRJ
bml0LCBHZW9tZXRyeU5vZGUsIENvbnZlcnRDb29yZGluYXRlT3B0aW9ucykgb24gZG9jdW1lbnQg
d2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfaW5oZXJp
dHM6IHByb3BlcnR5ICJjb252ZXJ0UG9pbnRGcm9tTm9kZSIgbm90IGZvdW5kIGluIHByb3RvdHlw
ZSBjaGFpbgorUEFTUyBFbGVtZW50IGludGVyZmFjZTogb3BlcmF0aW9uIGdldENsaWVudFJlY3Rz
KCkgCitQQVNTIEVsZW1lbnQgaW50ZXJmYWNlOiBvcGVyYXRpb24gZ2V0Qm91bmRpbmdDbGllbnRS
ZWN0KCkgCitQQVNTIEVsZW1lbnQgaW50ZXJmYWNlOiBvcGVyYXRpb24gc2Nyb2xsSW50b1ZpZXco
W29iamVjdCBPYmplY3RdLFtvYmplY3QgT2JqZWN0XSkgCitQQVNTIEVsZW1lbnQgaW50ZXJmYWNl
OiBvcGVyYXRpb24gc2Nyb2xsKFNjcm9sbFRvT3B0aW9ucykgCitQQVNTIEVsZW1lbnQgaW50ZXJm
YWNlOiBvcGVyYXRpb24gc2Nyb2xsKHVucmVzdHJpY3RlZCBkb3VibGUsIHVucmVzdHJpY3RlZCBk
b3VibGUpIAorUEFTUyBFbGVtZW50IGludGVyZmFjZTogb3BlcmF0aW9uIHNjcm9sbFRvKFNjcm9s
bFRvT3B0aW9ucykgCitQQVNTIEVsZW1lbnQgaW50ZXJmYWNlOiBvcGVyYXRpb24gc2Nyb2xsVG8o
dW5yZXN0cmljdGVkIGRvdWJsZSwgdW5yZXN0cmljdGVkIGRvdWJsZSkgCitQQVNTIEVsZW1lbnQg
aW50ZXJmYWNlOiBvcGVyYXRpb24gc2Nyb2xsQnkoU2Nyb2xsVG9PcHRpb25zKSAKK1BBU1MgRWxl
bWVudCBpbnRlcmZhY2U6IG9wZXJhdGlvbiBzY3JvbGxCeSh1bnJlc3RyaWN0ZWQgZG91YmxlLCB1
bnJlc3RyaWN0ZWQgZG91YmxlKSAKK1BBU1MgRWxlbWVudCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBz
Y3JvbGxUb3AgCitQQVNTIEVsZW1lbnQgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgc2Nyb2xsTGVmdCAK
K1BBU1MgRWxlbWVudCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBzY3JvbGxXaWR0aCAKK1BBU1MgRWxl
bWVudCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBzY3JvbGxIZWlnaHQgCitQQVNTIEVsZW1lbnQgaW50
ZXJmYWNlOiBhdHRyaWJ1dGUgY2xpZW50VG9wIAorUEFTUyBFbGVtZW50IGludGVyZmFjZTogYXR0
cmlidXRlIGNsaWVudExlZnQgCitQQVNTIEVsZW1lbnQgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgY2xp
ZW50V2lkdGggCitQQVNTIEVsZW1lbnQgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgY2xpZW50SGVpZ2h0
IAorRkFJTCBFbGVtZW50IGludGVyZmFjZTogb3BlcmF0aW9uIGdldEJveFF1YWRzKEJveFF1YWRP
cHRpb25zKSBhc3NlcnRfb3duX3Byb3BlcnR5OiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCBt
aXNzaW5nIG5vbi1zdGF0aWMgb3BlcmF0aW9uIGV4cGVjdGVkIHByb3BlcnR5ICJnZXRCb3hRdWFk
cyIgbWlzc2luZworRkFJTCBFbGVtZW50IGludGVyZmFjZTogb3BlcmF0aW9uIGNvbnZlcnRRdWFk
RnJvbU5vZGUoRE9NUXVhZEluaXQsIEdlb21ldHJ5Tm9kZSwgQ29udmVydENvb3JkaW5hdGVPcHRp
b25zKSBhc3NlcnRfb3duX3Byb3BlcnR5OiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCBtaXNz
aW5nIG5vbi1zdGF0aWMgb3BlcmF0aW9uIGV4cGVjdGVkIHByb3BlcnR5ICJjb252ZXJ0UXVhZEZy
b21Ob2RlIiBtaXNzaW5nCitGQUlMIEVsZW1lbnQgaW50ZXJmYWNlOiBvcGVyYXRpb24gY29udmVy
dFJlY3RGcm9tTm9kZShET01SZWN0UmVhZE9ubHksIEdlb21ldHJ5Tm9kZSwgQ29udmVydENvb3Jk
aW5hdGVPcHRpb25zKSBhc3NlcnRfb3duX3Byb3BlcnR5OiBpbnRlcmZhY2UgcHJvdG90eXBlIG9i
amVjdCBtaXNzaW5nIG5vbi1zdGF0aWMgb3BlcmF0aW9uIGV4cGVjdGVkIHByb3BlcnR5ICJjb252
ZXJ0UmVjdEZyb21Ob2RlIiBtaXNzaW5nCitGQUlMIEVsZW1lbnQgaW50ZXJmYWNlOiBvcGVyYXRp
b24gY29udmVydFBvaW50RnJvbU5vZGUoRE9NUG9pbnRJbml0LCBHZW9tZXRyeU5vZGUsIENvbnZl
cnRDb29yZGluYXRlT3B0aW9ucykgYXNzZXJ0X293bl9wcm9wZXJ0eTogaW50ZXJmYWNlIHByb3Rv
dHlwZSBvYmplY3QgbWlzc2luZyBub24tc3RhdGljIG9wZXJhdGlvbiBleHBlY3RlZCBwcm9wZXJ0
eSAiY29udmVydFBvaW50RnJvbU5vZGUiIG1pc3NpbmcKK1BBU1MgRWxlbWVudCBpbnRlcmZhY2U6
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygieCIsICJ5IikgbXVzdCBpbmhlcml0IHByb3BlcnR5
ICJnZXRDbGllbnRSZWN0cygpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgRWxlbWVudCBp
bnRlcmZhY2U6IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygieCIsICJ5IikgbXVzdCBpbmhlcml0
IHByb3BlcnR5ICJnZXRCb3VuZGluZ0NsaWVudFJlY3QoKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUg
CitQQVNTIEVsZW1lbnQgaW50ZXJmYWNlOiBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoIngiLCAi
eSIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAic2Nyb2xsSW50b1ZpZXcoW29iamVjdCBPYmplY3Rd
LFtvYmplY3QgT2JqZWN0XSkiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBFbGVtZW50IGlu
dGVyZmFjZTogY2FsbGluZyBzY3JvbGxJbnRvVmlldyhbb2JqZWN0IE9iamVjdF0sW29iamVjdCBP
YmplY3RdKSBvbiBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoIngiLCAieSIpIHdpdGggdG9vIGZl
dyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCitQQVNTIEVsZW1lbnQgaW50ZXJmYWNl
OiBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoIngiLCAieSIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0
eSAic2Nyb2xsKFNjcm9sbFRvT3B0aW9ucykiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBF
bGVtZW50IGludGVyZmFjZTogY2FsbGluZyBzY3JvbGwoU2Nyb2xsVG9PcHRpb25zKSBvbiBkb2N1
bWVudC5jcmVhdGVFbGVtZW50TlMoIngiLCAieSIpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVz
dCB0aHJvdyBUeXBlRXJyb3IgCitQQVNTIEVsZW1lbnQgaW50ZXJmYWNlOiBkb2N1bWVudC5jcmVh
dGVFbGVtZW50TlMoIngiLCAieSIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAic2Nyb2xsKHVucmVz
dHJpY3RlZCBkb3VibGUsIHVucmVzdHJpY3RlZCBkb3VibGUpIiB3aXRoIHRoZSBwcm9wZXIgdHlw
ZSAKK1BBU1MgRWxlbWVudCBpbnRlcmZhY2U6IGNhbGxpbmcgc2Nyb2xsKHVucmVzdHJpY3RlZCBk
b3VibGUsIHVucmVzdHJpY3RlZCBkb3VibGUpIG9uIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygi
eCIsICJ5Iikgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKK1BB
U1MgRWxlbWVudCBpbnRlcmZhY2U6IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygieCIsICJ5Iikg
bXVzdCBpbmhlcml0IHByb3BlcnR5ICJzY3JvbGxUbyhTY3JvbGxUb09wdGlvbnMpIiB3aXRoIHRo
ZSBwcm9wZXIgdHlwZSAKK1BBU1MgRWxlbWVudCBpbnRlcmZhY2U6IGNhbGxpbmcgc2Nyb2xsVG8o
U2Nyb2xsVG9PcHRpb25zKSBvbiBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoIngiLCAieSIpIHdp
dGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCitQQVNTIEVsZW1lbnQg
aW50ZXJmYWNlOiBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoIngiLCAieSIpIG11c3QgaW5oZXJp
dCBwcm9wZXJ0eSAic2Nyb2xsVG8odW5yZXN0cmljdGVkIGRvdWJsZSwgdW5yZXN0cmljdGVkIGRv
dWJsZSkiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBFbGVtZW50IGludGVyZmFjZTogY2Fs
bGluZyBzY3JvbGxUbyh1bnJlc3RyaWN0ZWQgZG91YmxlLCB1bnJlc3RyaWN0ZWQgZG91YmxlKSBv
biBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoIngiLCAieSIpIHdpdGggdG9vIGZldyBhcmd1bWVu
dHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCitQQVNTIEVsZW1lbnQgaW50ZXJmYWNlOiBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50TlMoIngiLCAieSIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAic2Nyb2xs
QnkoU2Nyb2xsVG9PcHRpb25zKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIEVsZW1lbnQg
aW50ZXJmYWNlOiBjYWxsaW5nIHNjcm9sbEJ5KFNjcm9sbFRvT3B0aW9ucykgb24gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudE5TKCJ4IiwgInkiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhy
b3cgVHlwZUVycm9yIAorUEFTUyBFbGVtZW50IGludGVyZmFjZTogZG9jdW1lbnQuY3JlYXRlRWxl
bWVudE5TKCJ4IiwgInkiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInNjcm9sbEJ5KHVucmVzdHJp
Y3RlZCBkb3VibGUsIHVucmVzdHJpY3RlZCBkb3VibGUpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAK
K1BBU1MgRWxlbWVudCBpbnRlcmZhY2U6IGNhbGxpbmcgc2Nyb2xsQnkodW5yZXN0cmljdGVkIGRv
dWJsZSwgdW5yZXN0cmljdGVkIGRvdWJsZSkgb24gZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJ4
IiwgInkiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAorUEFT
UyBFbGVtZW50IGludGVyZmFjZTogZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJ4IiwgInkiKSBt
dXN0IGluaGVyaXQgcHJvcGVydHkgInNjcm9sbFRvcCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQ
QVNTIEVsZW1lbnQgaW50ZXJmYWNlOiBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoIngiLCAieSIp
IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAic2Nyb2xsTGVmdCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUg
CitQQVNTIEVsZW1lbnQgaW50ZXJmYWNlOiBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoIngiLCAi
eSIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAic2Nyb2xsV2lkdGgiIHdpdGggdGhlIHByb3BlciB0
eXBlIAorUEFTUyBFbGVtZW50IGludGVyZmFjZTogZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJ4
IiwgInkiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInNjcm9sbEhlaWdodCIgd2l0aCB0aGUgcHJv
cGVyIHR5cGUgCitQQVNTIEVsZW1lbnQgaW50ZXJmYWNlOiBkb2N1bWVudC5jcmVhdGVFbGVtZW50
TlMoIngiLCAieSIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiY2xpZW50VG9wIiB3aXRoIHRoZSBw
cm9wZXIgdHlwZSAKK1BBU1MgRWxlbWVudCBpbnRlcmZhY2U6IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnROUygieCIsICJ5IikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJjbGllbnRMZWZ0IiB3aXRoIHRo
ZSBwcm9wZXIgdHlwZSAKK1BBU1MgRWxlbWVudCBpbnRlcmZhY2U6IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnROUygieCIsICJ5IikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJjbGllbnRXaWR0aCIgd2l0
aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIEVsZW1lbnQgaW50ZXJmYWNlOiBkb2N1bWVudC5jcmVh
dGVFbGVtZW50TlMoIngiLCAieSIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiY2xpZW50SGVpZ2h0
IiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK0ZBSUwgRWxlbWVudCBpbnRlcmZhY2U6IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnROUygieCIsICJ5IikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJnZXRCb3hR
dWFkcyhCb3hRdWFkT3B0aW9ucykiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9pbmhlcml0
czogcHJvcGVydHkgImdldEJveFF1YWRzIiBub3QgZm91bmQgaW4gcHJvdG90eXBlIGNoYWluCitG
QUlMIEVsZW1lbnQgaW50ZXJmYWNlOiBjYWxsaW5nIGdldEJveFF1YWRzKEJveFF1YWRPcHRpb25z
KSBvbiBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoIngiLCAieSIpIHdpdGggdG9vIGZldyBhcmd1
bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X2luaGVyaXRzOiBwcm9wZXJ0eSAiZ2V0
Qm94UXVhZHMiIG5vdCBmb3VuZCBpbiBwcm90b3R5cGUgY2hhaW4KK0ZBSUwgRWxlbWVudCBpbnRl
cmZhY2U6IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygieCIsICJ5IikgbXVzdCBpbmhlcml0IHBy
b3BlcnR5ICJjb252ZXJ0UXVhZEZyb21Ob2RlKERPTVF1YWRJbml0LCBHZW9tZXRyeU5vZGUsIENv
bnZlcnRDb29yZGluYXRlT3B0aW9ucykiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9pbmhl
cml0czogcHJvcGVydHkgImNvbnZlcnRRdWFkRnJvbU5vZGUiIG5vdCBmb3VuZCBpbiBwcm90b3R5
cGUgY2hhaW4KK0ZBSUwgRWxlbWVudCBpbnRlcmZhY2U6IGNhbGxpbmcgY29udmVydFF1YWRGcm9t
Tm9kZShET01RdWFkSW5pdCwgR2VvbWV0cnlOb2RlLCBDb252ZXJ0Q29vcmRpbmF0ZU9wdGlvbnMp
IG9uIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygieCIsICJ5Iikgd2l0aCB0b28gZmV3IGFyZ3Vt
ZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfaW5oZXJpdHM6IHByb3BlcnR5ICJjb252
ZXJ0UXVhZEZyb21Ob2RlIiBub3QgZm91bmQgaW4gcHJvdG90eXBlIGNoYWluCitGQUlMIEVsZW1l
bnQgaW50ZXJmYWNlOiBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoIngiLCAieSIpIG11c3QgaW5o
ZXJpdCBwcm9wZXJ0eSAiY29udmVydFJlY3RGcm9tTm9kZShET01SZWN0UmVhZE9ubHksIEdlb21l
dHJ5Tm9kZSwgQ29udmVydENvb3JkaW5hdGVPcHRpb25zKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUg
YXNzZXJ0X2luaGVyaXRzOiBwcm9wZXJ0eSAiY29udmVydFJlY3RGcm9tTm9kZSIgbm90IGZvdW5k
IGluIHByb3RvdHlwZSBjaGFpbgorRkFJTCBFbGVtZW50IGludGVyZmFjZTogY2FsbGluZyBjb252
ZXJ0UmVjdEZyb21Ob2RlKERPTVJlY3RSZWFkT25seSwgR2VvbWV0cnlOb2RlLCBDb252ZXJ0Q29v
cmRpbmF0ZU9wdGlvbnMpIG9uIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygieCIsICJ5Iikgd2l0
aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfaW5oZXJpdHM6
IHByb3BlcnR5ICJjb252ZXJ0UmVjdEZyb21Ob2RlIiBub3QgZm91bmQgaW4gcHJvdG90eXBlIGNo
YWluCitGQUlMIEVsZW1lbnQgaW50ZXJmYWNlOiBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoIngi
LCAieSIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiY29udmVydFBvaW50RnJvbU5vZGUoRE9NUG9p
bnRJbml0LCBHZW9tZXRyeU5vZGUsIENvbnZlcnRDb29yZGluYXRlT3B0aW9ucykiIHdpdGggdGhl
IHByb3BlciB0eXBlIGFzc2VydF9pbmhlcml0czogcHJvcGVydHkgImNvbnZlcnRQb2ludEZyb21O
b2RlIiBub3QgZm91bmQgaW4gcHJvdG90eXBlIGNoYWluCitGQUlMIEVsZW1lbnQgaW50ZXJmYWNl
OiBjYWxsaW5nIGNvbnZlcnRQb2ludEZyb21Ob2RlKERPTVBvaW50SW5pdCwgR2VvbWV0cnlOb2Rl
LCBDb252ZXJ0Q29vcmRpbmF0ZU9wdGlvbnMpIG9uIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygi
eCIsICJ5Iikgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3Nl
cnRfaW5oZXJpdHM6IHByb3BlcnR5ICJjb252ZXJ0UG9pbnRGcm9tTm9kZSIgbm90IGZvdW5kIGlu
IHByb3RvdHlwZSBjaGFpbgorRkFJTCBUZXh0IGludGVyZmFjZTogb3BlcmF0aW9uIGdldEJveFF1
YWRzKEJveFF1YWRPcHRpb25zKSBhc3NlcnRfb3duX3Byb3BlcnR5OiBpbnRlcmZhY2UgcHJvdG90
eXBlIG9iamVjdCBtaXNzaW5nIG5vbi1zdGF0aWMgb3BlcmF0aW9uIGV4cGVjdGVkIHByb3BlcnR5
ICJnZXRCb3hRdWFkcyIgbWlzc2luZworRkFJTCBUZXh0IGludGVyZmFjZTogb3BlcmF0aW9uIGNv
bnZlcnRRdWFkRnJvbU5vZGUoRE9NUXVhZEluaXQsIEdlb21ldHJ5Tm9kZSwgQ29udmVydENvb3Jk
aW5hdGVPcHRpb25zKSBhc3NlcnRfb3duX3Byb3BlcnR5OiBpbnRlcmZhY2UgcHJvdG90eXBlIG9i
amVjdCBtaXNzaW5nIG5vbi1zdGF0aWMgb3BlcmF0aW9uIGV4cGVjdGVkIHByb3BlcnR5ICJjb252
ZXJ0UXVhZEZyb21Ob2RlIiBtaXNzaW5nCitGQUlMIFRleHQgaW50ZXJmYWNlOiBvcGVyYXRpb24g
Y29udmVydFJlY3RGcm9tTm9kZShET01SZWN0UmVhZE9ubHksIEdlb21ldHJ5Tm9kZSwgQ29udmVy
dENvb3JkaW5hdGVPcHRpb25zKSBhc3NlcnRfb3duX3Byb3BlcnR5OiBpbnRlcmZhY2UgcHJvdG90
eXBlIG9iamVjdCBtaXNzaW5nIG5vbi1zdGF0aWMgb3BlcmF0aW9uIGV4cGVjdGVkIHByb3BlcnR5
ICJjb252ZXJ0UmVjdEZyb21Ob2RlIiBtaXNzaW5nCitGQUlMIFRleHQgaW50ZXJmYWNlOiBvcGVy
YXRpb24gY29udmVydFBvaW50RnJvbU5vZGUoRE9NUG9pbnRJbml0LCBHZW9tZXRyeU5vZGUsIENv
bnZlcnRDb29yZGluYXRlT3B0aW9ucykgYXNzZXJ0X293bl9wcm9wZXJ0eTogaW50ZXJmYWNlIHBy
b3RvdHlwZSBvYmplY3QgbWlzc2luZyBub24tc3RhdGljIG9wZXJhdGlvbiBleHBlY3RlZCBwcm9w
ZXJ0eSAiY29udmVydFBvaW50RnJvbU5vZGUiIG1pc3NpbmcKK0ZBSUwgVGV4dCBpbnRlcmZhY2U6
IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJ4IikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJnZXRC
b3hRdWFkcyhCb3hRdWFkT3B0aW9ucykiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9pbmhl
cml0czogcHJvcGVydHkgImdldEJveFF1YWRzIiBub3QgZm91bmQgaW4gcHJvdG90eXBlIGNoYWlu
CitGQUlMIFRleHQgaW50ZXJmYWNlOiBjYWxsaW5nIGdldEJveFF1YWRzKEJveFF1YWRPcHRpb25z
KSBvbiBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgieCIpIHdpdGggdG9vIGZldyBhcmd1bWVudHMg
bXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X2luaGVyaXRzOiBwcm9wZXJ0eSAiZ2V0Qm94UXVh
ZHMiIG5vdCBmb3VuZCBpbiBwcm90b3R5cGUgY2hhaW4KK0ZBSUwgVGV4dCBpbnRlcmZhY2U6IGRv
Y3VtZW50LmNyZWF0ZVRleHROb2RlKCJ4IikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJjb252ZXJ0
UXVhZEZyb21Ob2RlKERPTVF1YWRJbml0LCBHZW9tZXRyeU5vZGUsIENvbnZlcnRDb29yZGluYXRl
T3B0aW9ucykiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9pbmhlcml0czogcHJvcGVydHkg
ImNvbnZlcnRRdWFkRnJvbU5vZGUiIG5vdCBmb3VuZCBpbiBwcm90b3R5cGUgY2hhaW4KK0ZBSUwg
VGV4dCBpbnRlcmZhY2U6IGNhbGxpbmcgY29udmVydFF1YWRGcm9tTm9kZShET01RdWFkSW5pdCwg
R2VvbWV0cnlOb2RlLCBDb252ZXJ0Q29vcmRpbmF0ZU9wdGlvbnMpIG9uIGRvY3VtZW50LmNyZWF0
ZVRleHROb2RlKCJ4Iikgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJv
ciBhc3NlcnRfaW5oZXJpdHM6IHByb3BlcnR5ICJjb252ZXJ0UXVhZEZyb21Ob2RlIiBub3QgZm91
bmQgaW4gcHJvdG90eXBlIGNoYWluCitGQUlMIFRleHQgaW50ZXJmYWNlOiBkb2N1bWVudC5jcmVh
dGVUZXh0Tm9kZSgieCIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiY29udmVydFJlY3RGcm9tTm9k
ZShET01SZWN0UmVhZE9ubHksIEdlb21ldHJ5Tm9kZSwgQ29udmVydENvb3JkaW5hdGVPcHRpb25z
KSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2luaGVyaXRzOiBwcm9wZXJ0eSAiY29udmVy
dFJlY3RGcm9tTm9kZSIgbm90IGZvdW5kIGluIHByb3RvdHlwZSBjaGFpbgorRkFJTCBUZXh0IGlu
dGVyZmFjZTogY2FsbGluZyBjb252ZXJ0UmVjdEZyb21Ob2RlKERPTVJlY3RSZWFkT25seSwgR2Vv
bWV0cnlOb2RlLCBDb252ZXJ0Q29vcmRpbmF0ZU9wdGlvbnMpIG9uIGRvY3VtZW50LmNyZWF0ZVRl
eHROb2RlKCJ4Iikgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBh
c3NlcnRfaW5oZXJpdHM6IHByb3BlcnR5ICJjb252ZXJ0UmVjdEZyb21Ob2RlIiBub3QgZm91bmQg
aW4gcHJvdG90eXBlIGNoYWluCitGQUlMIFRleHQgaW50ZXJmYWNlOiBkb2N1bWVudC5jcmVhdGVU
ZXh0Tm9kZSgieCIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiY29udmVydFBvaW50RnJvbU5vZGUo
RE9NUG9pbnRJbml0LCBHZW9tZXRyeU5vZGUsIENvbnZlcnRDb29yZGluYXRlT3B0aW9ucykiIHdp
dGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9pbmhlcml0czogcHJvcGVydHkgImNvbnZlcnRQb2lu
dEZyb21Ob2RlIiBub3QgZm91bmQgaW4gcHJvdG90eXBlIGNoYWluCitGQUlMIFRleHQgaW50ZXJm
YWNlOiBjYWxsaW5nIGNvbnZlcnRQb2ludEZyb21Ob2RlKERPTVBvaW50SW5pdCwgR2VvbWV0cnlO
b2RlLCBDb252ZXJ0Q29vcmRpbmF0ZU9wdGlvbnMpIG9uIGRvY3VtZW50LmNyZWF0ZVRleHROb2Rl
KCJ4Iikgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRf
aW5oZXJpdHM6IHByb3BlcnR5ICJjb252ZXJ0UG9pbnRGcm9tTm9kZSIgbm90IGZvdW5kIGluIHBy
b3RvdHlwZSBjaGFpbgorUEFTUyBSYW5nZSBpbnRlcmZhY2U6IG9wZXJhdGlvbiBnZXRDbGllbnRS
ZWN0cygpIAorUEFTUyBSYW5nZSBpbnRlcmZhY2U6IG9wZXJhdGlvbiBnZXRCb3VuZGluZ0NsaWVu
dFJlY3QoKSAKK1BBU1MgUmFuZ2UgaW50ZXJmYWNlOiBuZXcgUmFuZ2UoKSBtdXN0IGluaGVyaXQg
cHJvcGVydHkgImdldENsaWVudFJlY3RzKCkiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBS
YW5nZSBpbnRlcmZhY2U6IG5ldyBSYW5nZSgpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiZ2V0Qm91
bmRpbmdDbGllbnRSZWN0KCkiIHdpdGggdGhlIHByb3BlciB0eXBlIAogCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9nZW9tZXRyeS9p
bnRlcmZhY2VzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2dlb21ldHJ5L2ludGVyZmFjZXMtZXhwZWN0ZWQudHh0CmluZGV4IGZh
NjM1ZGY0MzQ0MDExMzdiOWI1MTAzZDFkNDRlYmJlMzBiNWJkMzguLjcyNzRjYWY1ZWI3ZDJmMDZi
MTM3N2Q3ZmMzOTMwOTNjZTkyNGI5YTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2dlb21ldHJ5L2ludGVyZmFjZXMtZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2dlb21ldHJ5L2ludGVyZmFjZXMtZXhwZWN0ZWQudHh0CkBAIC0yNCw3ICsyNCw3IEBAIFBBU1Mg
RE9NUG9pbnRSZWFkT25seSBpbnRlcmZhY2U6IG5ldyBET01Qb2ludFJlYWRPbmx5KCkgbXVzdCBp
bmhlcml0IHByb3BlcnR5ICJ3CiBQQVNTIERPTVBvaW50UmVhZE9ubHkgaW50ZXJmYWNlOiBuZXcg
RE9NUG9pbnRSZWFkT25seSgpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAibWF0cml4VHJhbnNmb3Jt
KERPTU1hdHJpeEluaXQpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgRE9NUG9pbnRSZWFk
T25seSBpbnRlcmZhY2U6IGNhbGxpbmcgbWF0cml4VHJhbnNmb3JtKERPTU1hdHJpeEluaXQpIG9u
IG5ldyBET01Qb2ludFJlYWRPbmx5KCkgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93
IFR5cGVFcnJvciAKIFBBU1MgRE9NUG9pbnRSZWFkT25seSBpbnRlcmZhY2U6IG5ldyBET01Qb2lu
dFJlYWRPbmx5KCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJ0b0pTT04oKSIgd2l0aCB0aGUgcHJv
cGVyIHR5cGUgCi1QQVNTIFRlc3QgZGVmYXVsdCB0b0pTT04gb3BlcmF0aW9uIG9mIERPTVBvaW50
UmVhZE9ubHkgCitQQVNTIERPTVBvaW50UmVhZE9ubHkgaW50ZXJmYWNlOiBkZWZhdWx0IHRvSlNP
TiBvcGVyYXRpb24gb24gbmV3IERPTVBvaW50UmVhZE9ubHkoKSAKIFBBU1MgRE9NUG9pbnQgaW50
ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCAKIFBB
U1MgRE9NUG9pbnQgaW50ZXJmYWNlIG9iamVjdCBsZW5ndGggCiBQQVNTIERPTVBvaW50IGludGVy
ZmFjZSBvYmplY3QgbmFtZSAKQEAgLTU4LDcgKzU4LDcgQEAgUEFTUyBET01Qb2ludFJlYWRPbmx5
IGludGVyZmFjZTogbmV3IERPTVBvaW50KCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJ3IiB3aXRo
IHQKIFBBU1MgRE9NUG9pbnRSZWFkT25seSBpbnRlcmZhY2U6IG5ldyBET01Qb2ludCgpIG11c3Qg
aW5oZXJpdCBwcm9wZXJ0eSAibWF0cml4VHJhbnNmb3JtKERPTU1hdHJpeEluaXQpIiB3aXRoIHRo
ZSBwcm9wZXIgdHlwZSAKIFBBU1MgRE9NUG9pbnRSZWFkT25seSBpbnRlcmZhY2U6IGNhbGxpbmcg
bWF0cml4VHJhbnNmb3JtKERPTU1hdHJpeEluaXQpIG9uIG5ldyBET01Qb2ludCgpIHdpdGggdG9v
IGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCiBQQVNTIERPTVBvaW50UmVhZE9u
bHkgaW50ZXJmYWNlOiBuZXcgRE9NUG9pbnQoKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInRvSlNP
TigpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKLVBBU1MgVGVzdCBkZWZhdWx0IHRvSlNPTiBvcGVy
YXRpb24gb2YgRE9NUG9pbnQgCitQQVNTIERPTVBvaW50UmVhZE9ubHkgaW50ZXJmYWNlOiBkZWZh
dWx0IHRvSlNPTiBvcGVyYXRpb24gb24gbmV3IERPTVBvaW50KCkgCiBQQVNTIERPTVJlY3RSZWFk
T25seSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2Jq
ZWN0IAogUEFTUyBET01SZWN0UmVhZE9ubHkgaW50ZXJmYWNlIG9iamVjdCBsZW5ndGggCiBQQVNT
IERPTVJlY3RSZWFkT25seSBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUgCkBAIC04OCw3ICs4OCw3IEBA
IFBBU1MgRE9NUmVjdFJlYWRPbmx5IGludGVyZmFjZTogbmV3IERPTVJlY3RSZWFkT25seSgpIG11
c3QgaW5oZXJpdCBwcm9wZXJ0eSAicmlnCiBQQVNTIERPTVJlY3RSZWFkT25seSBpbnRlcmZhY2U6
IG5ldyBET01SZWN0UmVhZE9ubHkoKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImJvdHRvbSIgd2l0
aCB0aGUgcHJvcGVyIHR5cGUgCiBQQVNTIERPTVJlY3RSZWFkT25seSBpbnRlcmZhY2U6IG5ldyBE
T01SZWN0UmVhZE9ubHkoKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImxlZnQiIHdpdGggdGhlIHBy
b3BlciB0eXBlIAogUEFTUyBET01SZWN0UmVhZE9ubHkgaW50ZXJmYWNlOiBuZXcgRE9NUmVjdFJl
YWRPbmx5KCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJ0b0pTT04oKSIgd2l0aCB0aGUgcHJvcGVy
IHR5cGUgCi1QQVNTIFRlc3QgZGVmYXVsdCB0b0pTT04gb3BlcmF0aW9uIG9mIERPTVJlY3RSZWFk
T25seSAKK1BBU1MgRE9NUmVjdFJlYWRPbmx5IGludGVyZmFjZTogZGVmYXVsdCB0b0pTT04gb3Bl
cmF0aW9uIG9uIG5ldyBET01SZWN0UmVhZE9ubHkoKSAKIFBBU1MgRE9NUmVjdCBpbnRlcmZhY2U6
IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IAogUEFTUyBET01S
ZWN0IGludGVyZmFjZSBvYmplY3QgbGVuZ3RoIAogUEFTUyBET01SZWN0IGludGVyZmFjZSBvYmpl
Y3QgbmFtZSAKQEAgLTEyNCw3ICsxMjQsNyBAQCBQQVNTIERPTVJlY3RSZWFkT25seSBpbnRlcmZh
Y2U6IG5ldyBET01SZWN0KCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJyaWdodCIgd2l0aAogUEFT
UyBET01SZWN0UmVhZE9ubHkgaW50ZXJmYWNlOiBuZXcgRE9NUmVjdCgpIG11c3QgaW5oZXJpdCBw
cm9wZXJ0eSAiYm90dG9tIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgRE9NUmVjdFJlYWRP
bmx5IGludGVyZmFjZTogbmV3IERPTVJlY3QoKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImxlZnQi
IHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBET01SZWN0UmVhZE9ubHkgaW50ZXJmYWNlOiBu
ZXcgRE9NUmVjdCgpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAidG9KU09OKCkiIHdpdGggdGhlIHBy
b3BlciB0eXBlIAotUEFTUyBUZXN0IGRlZmF1bHQgdG9KU09OIG9wZXJhdGlvbiBvZiBET01SZWN0
IAorUEFTUyBET01SZWN0UmVhZE9ubHkgaW50ZXJmYWNlOiBkZWZhdWx0IHRvSlNPTiBvcGVyYXRp
b24gb24gbmV3IERPTVJlY3QoKSAKIFBBU1MgRE9NUmVjdExpc3QgaW50ZXJmYWNlOiBleGlzdGVu
Y2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCAKIFBBU1MgRE9NUmVjdExpc3Qg
aW50ZXJmYWNlIG9iamVjdCBsZW5ndGggCiBQQVNTIERPTVJlY3RMaXN0IGludGVyZmFjZSBvYmpl
Y3QgbmFtZSAKQEAgLTE2NCw3ICsxNjQsNyBAQCBQQVNTIERPTVF1YWQgaW50ZXJmYWNlOiBuZXcg
RE9NUXVhZCgpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAicDMiIHdpdGggdGhlIHByb3BlcgogUEFT
UyBET01RdWFkIGludGVyZmFjZTogbmV3IERPTVF1YWQoKSBtdXN0IGluaGVyaXQgcHJvcGVydHkg
InA0IiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgRE9NUXVhZCBpbnRlcmZhY2U6IG5ldyBE
T01RdWFkKCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJnZXRCb3VuZHMoKSIgd2l0aCB0aGUgcHJv
cGVyIHR5cGUgCiBQQVNTIERPTVF1YWQgaW50ZXJmYWNlOiBuZXcgRE9NUXVhZCgpIG11c3QgaW5o
ZXJpdCBwcm9wZXJ0eSAidG9KU09OKCkiIHdpdGggdGhlIHByb3BlciB0eXBlIAotRkFJTCBUZXN0
IGRlZmF1bHQgdG9KU09OIG9wZXJhdGlvbiBvZiBET01RdWFkIGFzc2VydF90cnVlOiBpbnN0YW5j
ZW9mIERPTVBvaW50IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitGQUlMIERPTVF1YWQgaW50ZXJm
YWNlOiBkZWZhdWx0IHRvSlNPTiBvcGVyYXRpb24gb24gbmV3IERPTVF1YWQoKSBhc3NlcnRfdHJ1
ZTogaW5zdGFuY2VvZiBET01Qb2ludCBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQogUEFTUyBET01N
YXRyaXhSZWFkT25seSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRl
cmZhY2Ugb2JqZWN0IAogUEFTUyBET01NYXRyaXhSZWFkT25seSBpbnRlcmZhY2Ugb2JqZWN0IGxl
bmd0aCAKIFBBU1MgRE9NTWF0cml4UmVhZE9ubHkgaW50ZXJmYWNlIG9iamVjdCBuYW1lIApAQCAt
MjczLDcgKzI3Myw3IEBAIFBBU1MgRE9NTWF0cml4UmVhZE9ubHkgaW50ZXJmYWNlOiBjYWxsaW5n
IHRyYW5zZm9ybVBvaW50KERPTVBvaW50SW5pdCkgb24gbmV3IERPCiBQQVNTIERPTU1hdHJpeFJl
YWRPbmx5IGludGVyZmFjZTogbmV3IERPTU1hdHJpeFJlYWRPbmx5KCkgbXVzdCBpbmhlcml0IHBy
b3BlcnR5ICJ0b0Zsb2F0MzJBcnJheSgpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgRE9N
TWF0cml4UmVhZE9ubHkgaW50ZXJmYWNlOiBuZXcgRE9NTWF0cml4UmVhZE9ubHkoKSBtdXN0IGlu
aGVyaXQgcHJvcGVydHkgInRvRmxvYXQ2NEFycmF5KCkiIHdpdGggdGhlIHByb3BlciB0eXBlIAog
UEFTUyBET01NYXRyaXhSZWFkT25seSBpbnRlcmZhY2U6IG5ldyBET01NYXRyaXhSZWFkT25seSgp
IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAidG9KU09OKCkiIHdpdGggdGhlIHByb3BlciB0eXBlIAot
UEFTUyBUZXN0IGRlZmF1bHQgdG9KU09OIG9wZXJhdGlvbiBvZiBET01NYXRyaXhSZWFkT25seSAK
K1BBU1MgRE9NTWF0cml4UmVhZE9ubHkgaW50ZXJmYWNlOiBkZWZhdWx0IHRvSlNPTiBvcGVyYXRp
b24gb24gbmV3IERPTU1hdHJpeFJlYWRPbmx5KCkgCiBQQVNTIERPTU1hdHJpeFJlYWRPbmx5IG11
c3QgYmUgcHJpbWFyeSBpbnRlcmZhY2Ugb2YgRE9NTWF0cml4UmVhZE9ubHkuZnJvbU1hdHJpeCh7
aXMyRDogZmFsc2V9KSAKIFBBU1MgU3RyaW5naWZpY2F0aW9uIG9mIERPTU1hdHJpeFJlYWRPbmx5
LmZyb21NYXRyaXgoe2lzMkQ6IGZhbHNlfSkgCiBQQVNTIERPTU1hdHJpeCBpbnRlcmZhY2U6IGV4
aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvZ2VvbWV0cnkv
aW50ZXJmYWNlcy53b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvZ2VvbWV0cnkvaW50ZXJmYWNlcy53b3JrZXItZXhwZWN0
ZWQudHh0CmluZGV4IDkwNTg3MDgyNTAyZmIwMzg3YjJlZDRlY2VjZmEwNmFkN2MxMDRmODguLmNi
M2JlODk3OGEzYmMwZDRlNzIzNzc1ODAzZWJlOGRjMDNhMGM0MWIgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2dlb21ldHJ5L2ludGVy
ZmFjZXMud29ya2VyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9nZW9tZXRyeS9pbnRlcmZhY2VzLndvcmtlci1leHBlY3Rl
ZC50eHQKQEAgLTI0LDcgKzI0LDcgQEAgUEFTUyBET01Qb2ludFJlYWRPbmx5IGludGVyZmFjZTog
bmV3IERPTVBvaW50UmVhZE9ubHkoKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgIncKIFBBU1MgRE9N
UG9pbnRSZWFkT25seSBpbnRlcmZhY2U6IG5ldyBET01Qb2ludFJlYWRPbmx5KCkgbXVzdCBpbmhl
cml0IHByb3BlcnR5ICJtYXRyaXhUcmFuc2Zvcm0oRE9NTWF0cml4SW5pdCkiIHdpdGggdGhlIHBy
b3BlciB0eXBlIAogUEFTUyBET01Qb2ludFJlYWRPbmx5IGludGVyZmFjZTogY2FsbGluZyBtYXRy
aXhUcmFuc2Zvcm0oRE9NTWF0cml4SW5pdCkgb24gbmV3IERPTVBvaW50UmVhZE9ubHkoKSB3aXRo
IHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAogUEFTUyBET01Qb2ludFJl
YWRPbmx5IGludGVyZmFjZTogbmV3IERPTVBvaW50UmVhZE9ubHkoKSBtdXN0IGluaGVyaXQgcHJv
cGVydHkgInRvSlNPTigpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKLVBBU1MgVGVzdCBkZWZhdWx0
IHRvSlNPTiBvcGVyYXRpb24gb2YgRE9NUG9pbnRSZWFkT25seSAKK1BBU1MgRE9NUG9pbnRSZWFk
T25seSBpbnRlcmZhY2U6IGRlZmF1bHQgdG9KU09OIG9wZXJhdGlvbiBvbiBuZXcgRE9NUG9pbnRS
ZWFkT25seSgpIAogUEFTUyBET01Qb2ludCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVy
dGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IAogUEFTUyBET01Qb2ludCBpbnRlcmZhY2Ugb2JqZWN0
IGxlbmd0aCAKIFBBU1MgRE9NUG9pbnQgaW50ZXJmYWNlIG9iamVjdCBuYW1lIApAQCAtNTQsNyAr
NTQsNyBAQCBQQVNTIERPTVBvaW50UmVhZE9ubHkgaW50ZXJmYWNlOiBuZXcgRE9NUG9pbnQoKSBt
dXN0IGluaGVyaXQgcHJvcGVydHkgInciIHdpdGggdAogUEFTUyBET01Qb2ludFJlYWRPbmx5IGlu
dGVyZmFjZTogbmV3IERPTVBvaW50KCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJtYXRyaXhUcmFu
c2Zvcm0oRE9NTWF0cml4SW5pdCkiIHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBET01Qb2lu
dFJlYWRPbmx5IGludGVyZmFjZTogY2FsbGluZyBtYXRyaXhUcmFuc2Zvcm0oRE9NTWF0cml4SW5p
dCkgb24gbmV3IERPTVBvaW50KCkgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5
cGVFcnJvciAKIFBBU1MgRE9NUG9pbnRSZWFkT25seSBpbnRlcmZhY2U6IG5ldyBET01Qb2ludCgp
IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAidG9KU09OKCkiIHdpdGggdGhlIHByb3BlciB0eXBlIAot
UEFTUyBUZXN0IGRlZmF1bHQgdG9KU09OIG9wZXJhdGlvbiBvZiBET01Qb2ludCAKK1BBU1MgRE9N
UG9pbnRSZWFkT25seSBpbnRlcmZhY2U6IGRlZmF1bHQgdG9KU09OIG9wZXJhdGlvbiBvbiBuZXcg
RE9NUG9pbnQoKSAKIFBBU1MgRE9NUmVjdFJlYWRPbmx5IGludGVyZmFjZTogZXhpc3RlbmNlIGFu
ZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgCiBQQVNTIERPTVJlY3RSZWFkT25seSBp
bnRlcmZhY2Ugb2JqZWN0IGxlbmd0aCAKIFBBU1MgRE9NUmVjdFJlYWRPbmx5IGludGVyZmFjZSBv
YmplY3QgbmFtZSAKQEAgLTg0LDcgKzg0LDcgQEAgUEFTUyBET01SZWN0UmVhZE9ubHkgaW50ZXJm
YWNlOiBuZXcgRE9NUmVjdFJlYWRPbmx5KCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJyaWcKIFBB
U1MgRE9NUmVjdFJlYWRPbmx5IGludGVyZmFjZTogbmV3IERPTVJlY3RSZWFkT25seSgpIG11c3Qg
aW5oZXJpdCBwcm9wZXJ0eSAiYm90dG9tIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgRE9N
UmVjdFJlYWRPbmx5IGludGVyZmFjZTogbmV3IERPTVJlY3RSZWFkT25seSgpIG11c3QgaW5oZXJp
dCBwcm9wZXJ0eSAibGVmdCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCiBQQVNTIERPTVJlY3RSZWFk
T25seSBpbnRlcmZhY2U6IG5ldyBET01SZWN0UmVhZE9ubHkoKSBtdXN0IGluaGVyaXQgcHJvcGVy
dHkgInRvSlNPTigpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKLVBBU1MgVGVzdCBkZWZhdWx0IHRv
SlNPTiBvcGVyYXRpb24gb2YgRE9NUmVjdFJlYWRPbmx5IAorUEFTUyBET01SZWN0UmVhZE9ubHkg
aW50ZXJmYWNlOiBkZWZhdWx0IHRvSlNPTiBvcGVyYXRpb24gb24gbmV3IERPTVJlY3RSZWFkT25s
eSgpIAogUEFTUyBET01SZWN0IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9m
IGludGVyZmFjZSBvYmplY3QgCiBQQVNTIERPTVJlY3QgaW50ZXJmYWNlIG9iamVjdCBsZW5ndGgg
CiBQQVNTIERPTVJlY3QgaW50ZXJmYWNlIG9iamVjdCBuYW1lIApAQCAtMTE2LDcgKzExNiw3IEBA
IFBBU1MgRE9NUmVjdFJlYWRPbmx5IGludGVyZmFjZTogbmV3IERPTVJlY3QoKSBtdXN0IGluaGVy
aXQgcHJvcGVydHkgInJpZ2h0IiB3aXRoCiBQQVNTIERPTVJlY3RSZWFkT25seSBpbnRlcmZhY2U6
IG5ldyBET01SZWN0KCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJib3R0b20iIHdpdGggdGhlIHBy
b3BlciB0eXBlIAogUEFTUyBET01SZWN0UmVhZE9ubHkgaW50ZXJmYWNlOiBuZXcgRE9NUmVjdCgp
IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAibGVmdCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCiBQQVNT
IERPTVJlY3RSZWFkT25seSBpbnRlcmZhY2U6IG5ldyBET01SZWN0KCkgbXVzdCBpbmhlcml0IHBy
b3BlcnR5ICJ0b0pTT04oKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCi1QQVNTIFRlc3QgZGVmYXVs
dCB0b0pTT04gb3BlcmF0aW9uIG9mIERPTVJlY3QgCitQQVNTIERPTVJlY3RSZWFkT25seSBpbnRl
cmZhY2U6IGRlZmF1bHQgdG9KU09OIG9wZXJhdGlvbiBvbiBuZXcgRE9NUmVjdCgpIAogUEFTUyBE
T01SZWN0TGlzdCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZh
Y2Ugb2JqZWN0IAogUEFTUyBET01RdWFkIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0
aWVzIG9mIGludGVyZmFjZSBvYmplY3QgCiBQQVNTIERPTVF1YWQgaW50ZXJmYWNlIG9iamVjdCBs
ZW5ndGggCkBAIC0xNDQsNyArMTQ0LDcgQEAgUEFTUyBET01RdWFkIGludGVyZmFjZTogbmV3IERP
TVF1YWQoKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInAzIiB3aXRoIHRoZSBwcm9wZXIKIFBBU1Mg
RE9NUXVhZCBpbnRlcmZhY2U6IG5ldyBET01RdWFkKCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJw
NCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCiBQQVNTIERPTVF1YWQgaW50ZXJmYWNlOiBuZXcgRE9N
UXVhZCgpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiZ2V0Qm91bmRzKCkiIHdpdGggdGhlIHByb3Bl
ciB0eXBlIAogUEFTUyBET01RdWFkIGludGVyZmFjZTogbmV3IERPTVF1YWQoKSBtdXN0IGluaGVy
aXQgcHJvcGVydHkgInRvSlNPTigpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKLUZBSUwgVGVzdCBk
ZWZhdWx0IHRvSlNPTiBvcGVyYXRpb24gb2YgRE9NUXVhZCBhc3NlcnRfdHJ1ZTogaW5zdGFuY2Vv
ZiBET01Qb2ludCBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorRkFJTCBET01RdWFkIGludGVyZmFj
ZTogZGVmYXVsdCB0b0pTT04gb3BlcmF0aW9uIG9uIG5ldyBET01RdWFkKCkgYXNzZXJ0X3RydWU6
IGluc3RhbmNlb2YgRE9NUG9pbnQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKIFBBU1MgRE9NTWF0
cml4UmVhZE9ubHkgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJm
YWNlIG9iamVjdCAKIFBBU1MgRE9NTWF0cml4UmVhZE9ubHkgaW50ZXJmYWNlIG9iamVjdCBsZW5n
dGggCiBQQVNTIERPTU1hdHJpeFJlYWRPbmx5IGludGVyZmFjZSBvYmplY3QgbmFtZSAKQEAgLTE5
Myw3ICsxOTMsNyBAQCBQQVNTIERPTU1hdHJpeFJlYWRPbmx5IGludGVyZmFjZTogb3BlcmF0aW9u
IGludmVyc2UoKQogUEFTUyBET01NYXRyaXhSZWFkT25seSBpbnRlcmZhY2U6IG9wZXJhdGlvbiB0
cmFuc2Zvcm1Qb2ludChET01Qb2ludEluaXQpIAogUEFTUyBET01NYXRyaXhSZWFkT25seSBpbnRl
cmZhY2U6IG9wZXJhdGlvbiB0b0Zsb2F0MzJBcnJheSgpIAogUEFTUyBET01NYXRyaXhSZWFkT25s
eSBpbnRlcmZhY2U6IG9wZXJhdGlvbiB0b0Zsb2F0NjRBcnJheSgpIAotUEFTUyBET01NYXRyaXhS
ZWFkT25seSBpbnRlcmZhY2U6IG1lbWJlciB1bmRlZmluZWQgCitQQVNTIERPTU1hdHJpeFJlYWRP
bmx5IGludGVyZmFjZTogbWVtYmVyICAKIFBBU1MgRE9NTWF0cml4UmVhZE9ubHkgaW50ZXJmYWNl
OiBvcGVyYXRpb24gdG9KU09OKCkgCiBQQVNTIERPTU1hdHJpeFJlYWRPbmx5IG11c3QgYmUgcHJp
bWFyeSBpbnRlcmZhY2Ugb2YgbmV3IERPTU1hdHJpeFJlYWRPbmx5KCkgCiBQQVNTIFN0cmluZ2lm
aWNhdGlvbiBvZiBuZXcgRE9NTWF0cml4UmVhZE9ubHkoKSAKQEAgLTI1Miw5ICsyNTIsOSBAQCBQ
QVNTIERPTU1hdHJpeFJlYWRPbmx5IGludGVyZmFjZTogbmV3IERPTU1hdHJpeFJlYWRPbmx5KCkg
bXVzdCBpbmhlcml0IHByb3BlcnR5CiBQQVNTIERPTU1hdHJpeFJlYWRPbmx5IGludGVyZmFjZTog
Y2FsbGluZyB0cmFuc2Zvcm1Qb2ludChET01Qb2ludEluaXQpIG9uIG5ldyBET01NYXRyaXhSZWFk
T25seSgpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCiBQQVNT
IERPTU1hdHJpeFJlYWRPbmx5IGludGVyZmFjZTogbmV3IERPTU1hdHJpeFJlYWRPbmx5KCkgbXVz
dCBpbmhlcml0IHByb3BlcnR5ICJ0b0Zsb2F0MzJBcnJheSgpIiB3aXRoIHRoZSBwcm9wZXIgdHlw
ZSAKIFBBU1MgRE9NTWF0cml4UmVhZE9ubHkgaW50ZXJmYWNlOiBuZXcgRE9NTWF0cml4UmVhZE9u
bHkoKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInRvRmxvYXQ2NEFycmF5KCkiIHdpdGggdGhlIHBy
b3BlciB0eXBlIAotUEFTUyBET01NYXRyaXhSZWFkT25seSBpbnRlcmZhY2U6IG5ldyBET01NYXRy
aXhSZWFkT25seSgpIG11c3Qgbm90IGhhdmUgcHJvcGVydHkgInVuZGVmaW5lZCIgCitQQVNTIERP
TU1hdHJpeFJlYWRPbmx5IGludGVyZmFjZTogbmV3IERPTU1hdHJpeFJlYWRPbmx5KCkgbXVzdCBu
b3QgaGF2ZSBwcm9wZXJ0eSAiIiAKIFBBU1MgRE9NTWF0cml4UmVhZE9ubHkgaW50ZXJmYWNlOiBu
ZXcgRE9NTWF0cml4UmVhZE9ubHkoKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInRvSlNPTigpIiB3
aXRoIHRoZSBwcm9wZXIgdHlwZSAKLVBBU1MgVGVzdCBkZWZhdWx0IHRvSlNPTiBvcGVyYXRpb24g
b2YgRE9NTWF0cml4UmVhZE9ubHkgCitQQVNTIERPTU1hdHJpeFJlYWRPbmx5IGludGVyZmFjZTog
ZGVmYXVsdCB0b0pTT04gb3BlcmF0aW9uIG9uIG5ldyBET01NYXRyaXhSZWFkT25seSgpIAogUEFT
UyBET01NYXRyaXhSZWFkT25seSBtdXN0IGJlIHByaW1hcnkgaW50ZXJmYWNlIG9mIERPTU1hdHJp
eFJlYWRPbmx5LmZyb21NYXRyaXgoe2lzMkQ6IGZhbHNlfSkgCiBQQVNTIFN0cmluZ2lmaWNhdGlv
biBvZiBET01NYXRyaXhSZWFkT25seS5mcm9tTWF0cml4KHtpczJEOiBmYWxzZX0pIAogUEFTUyBE
T01NYXRyaXggaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNl
IG9iamVjdCAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZG9tL2ludGVyZmFjZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vaW50ZXJmYWNlcy1leHBlY3RlZC50eHQKaW5k
ZXggMWYzZjEzYjBiZDc1MDMzMWY2ODhiZGZlNmMxMTUxNmE2N2M1YTY5Yi4uYTk4ZTA4NTY5YWY5
MDQyMzMzOWQwMTY3ZjZmODNkODhmYWI4YmM2NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vaW50ZXJmYWNlcy1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vaW50
ZXJmYWNlcy1leHBlY3RlZC50eHQKQEAgLTEsOCArMSw4IEBACi1DT05TT0xFIE1FU1NBR0U6IGxp
bmUgNDgyOiBjYWxsYmFjayBub3QgeWV0IHN1cHBvcnRlZAogRE9NIElETCB0ZXN0cwogCiAKIFBB
U1MgVGVzdCBkcml2ZXIgCitQQVNTIFBhcnRpYWwgaW50ZXJmYWNlIFdpbmRvdzogb3JpZ2luYWwg
aW50ZXJmYWNlIGRlZmluZWQgCiBQQVNTIEV2ZW50IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBw
cm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgCiBQQVNTIEV2ZW50IGludGVyZmFjZSBvYmpl
Y3QgbGVuZ3RoIAogUEFTUyBFdmVudCBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUgCkBAIC0xMyw2ICsx
Myw3IEBAIFBBU1MgRXZlbnQgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgdHlwZQogUEFTUyBFdmVudCBp
bnRlcmZhY2U6IGF0dHJpYnV0ZSB0YXJnZXQgCiBQQVNTIEV2ZW50IGludGVyZmFjZTogYXR0cmli
dXRlIHNyY0VsZW1lbnQgCiBQQVNTIEV2ZW50IGludGVyZmFjZTogYXR0cmlidXRlIGN1cnJlbnRU
YXJnZXQgCitQQVNTIEV2ZW50IGludGVyZmFjZTogb3BlcmF0aW9uIGNvbXBvc2VkUGF0aCgpIAog
UEFTUyBFdmVudCBpbnRlcmZhY2U6IGNvbnN0YW50IE5PTkUgb24gaW50ZXJmYWNlIG9iamVjdCAK
IFBBU1MgRXZlbnQgaW50ZXJmYWNlOiBjb25zdGFudCBOT05FIG9uIGludGVyZmFjZSBwcm90b3R5
cGUgb2JqZWN0IAogUEFTUyBFdmVudCBpbnRlcmZhY2U6IGNvbnN0YW50IENBUFRVUklOR19QSEFT
RSBvbiBpbnRlcmZhY2Ugb2JqZWN0IApAQCAtMjMsMTIgKzI0LDE0IEBAIFBBU1MgRXZlbnQgaW50
ZXJmYWNlOiBjb25zdGFudCBCVUJCTElOR19QSEFTRSBvbiBpbnRlcmZhY2Ugb2JqZWN0CiBQQVNT
IEV2ZW50IGludGVyZmFjZTogY29uc3RhbnQgQlVCQkxJTkdfUEhBU0Ugb24gaW50ZXJmYWNlIHBy
b3RvdHlwZSBvYmplY3QgCiBQQVNTIEV2ZW50IGludGVyZmFjZTogYXR0cmlidXRlIGV2ZW50UGhh
c2UgCiBQQVNTIEV2ZW50IGludGVyZmFjZTogb3BlcmF0aW9uIHN0b3BQcm9wYWdhdGlvbigpIAor
UEFTUyBFdmVudCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBjYW5jZWxCdWJibGUgCiBQQVNTIEV2ZW50
IGludGVyZmFjZTogb3BlcmF0aW9uIHN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpIAogUEFTUyBF
dmVudCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBidWJibGVzIAogUEFTUyBFdmVudCBpbnRlcmZhY2U6
IGF0dHJpYnV0ZSBjYW5jZWxhYmxlIAogUEFTUyBFdmVudCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBy
ZXR1cm5WYWx1ZSAKIFBBU1MgRXZlbnQgaW50ZXJmYWNlOiBvcGVyYXRpb24gcHJldmVudERlZmF1
bHQoKSAKIFBBU1MgRXZlbnQgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgZGVmYXVsdFByZXZlbnRlZCAK
K1BBU1MgRXZlbnQgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgY29tcG9zZWQgCiBQQVNTIEV2ZW50IGlu
dGVyZmFjZTogYXR0cmlidXRlIHRpbWVTdGFtcCAKIFBBU1MgRXZlbnQgaW50ZXJmYWNlOiBvcGVy
YXRpb24gaW5pdEV2ZW50KERPTVN0cmluZywgYm9vbGVhbiwgYm9vbGVhbikgCiBQQVNTIEV2ZW50
IG11c3QgYmUgcHJpbWFyeSBpbnRlcmZhY2Ugb2YgZG9jdW1lbnQuY3JlYXRlRXZlbnQoIkV2ZW50
IikgCkBAIC0zNywxOCArNDAsMjEgQEAgUEFTUyBFdmVudCBpbnRlcmZhY2U6IGRvY3VtZW50LmNy
ZWF0ZUV2ZW50KCJFdmVudCIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAidHlwZSIKIFBBU1MgRXZl
bnQgaW50ZXJmYWNlOiBkb2N1bWVudC5jcmVhdGVFdmVudCgiRXZlbnQiKSBtdXN0IGluaGVyaXQg
cHJvcGVydHkgInRhcmdldCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCiBQQVNTIEV2ZW50IGludGVy
ZmFjZTogZG9jdW1lbnQuY3JlYXRlRXZlbnQoIkV2ZW50IikgbXVzdCBpbmhlcml0IHByb3BlcnR5
ICJzcmNFbGVtZW50IiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgRXZlbnQgaW50ZXJmYWNl
OiBkb2N1bWVudC5jcmVhdGVFdmVudCgiRXZlbnQiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImN1
cnJlbnRUYXJnZXQiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBFdmVudCBpbnRlcmZhY2U6
IGRvY3VtZW50LmNyZWF0ZUV2ZW50KCJFdmVudCIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiY29t
cG9zZWRQYXRoKCkiIHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBFdmVudCBpbnRlcmZhY2U6
IGRvY3VtZW50LmNyZWF0ZUV2ZW50KCJFdmVudCIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiTk9O
RSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCiBQQVNTIEV2ZW50IGludGVyZmFjZTogZG9jdW1lbnQu
Y3JlYXRlRXZlbnQoIkV2ZW50IikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJDQVBUVVJJTkdfUEhB
U0UiIHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBFdmVudCBpbnRlcmZhY2U6IGRvY3VtZW50
LmNyZWF0ZUV2ZW50KCJFdmVudCIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiQVRfVEFSR0VUIiB3
aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgRXZlbnQgaW50ZXJmYWNlOiBkb2N1bWVudC5jcmVh
dGVFdmVudCgiRXZlbnQiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgIkJVQkJMSU5HX1BIQVNFIiB3
aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgRXZlbnQgaW50ZXJmYWNlOiBkb2N1bWVudC5jcmVh
dGVFdmVudCgiRXZlbnQiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImV2ZW50UGhhc2UiIHdpdGgg
dGhlIHByb3BlciB0eXBlIAogUEFTUyBFdmVudCBpbnRlcmZhY2U6IGRvY3VtZW50LmNyZWF0ZUV2
ZW50KCJFdmVudCIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAic3RvcFByb3BhZ2F0aW9uKCkiIHdp
dGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBFdmVudCBpbnRlcmZhY2U6IGRvY3VtZW50LmNyZWF0
ZUV2ZW50KCJFdmVudCIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiY2FuY2VsQnViYmxlIiB3aXRo
IHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgRXZlbnQgaW50ZXJmYWNlOiBkb2N1bWVudC5jcmVhdGVF
dmVudCgiRXZlbnQiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInN0b3BJbW1lZGlhdGVQcm9wYWdh
dGlvbigpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgRXZlbnQgaW50ZXJmYWNlOiBkb2N1
bWVudC5jcmVhdGVFdmVudCgiRXZlbnQiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImJ1YmJsZXMi
IHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBFdmVudCBpbnRlcmZhY2U6IGRvY3VtZW50LmNy
ZWF0ZUV2ZW50KCJFdmVudCIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiY2FuY2VsYWJsZSIgd2l0
aCB0aGUgcHJvcGVyIHR5cGUgCiBQQVNTIEV2ZW50IGludGVyZmFjZTogZG9jdW1lbnQuY3JlYXRl
RXZlbnQoIkV2ZW50IikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJyZXR1cm5WYWx1ZSIgd2l0aCB0
aGUgcHJvcGVyIHR5cGUgCiBQQVNTIEV2ZW50IGludGVyZmFjZTogZG9jdW1lbnQuY3JlYXRlRXZl
bnQoIkV2ZW50IikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJwcmV2ZW50RGVmYXVsdCgpIiB3aXRo
IHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgRXZlbnQgaW50ZXJmYWNlOiBkb2N1bWVudC5jcmVhdGVF
dmVudCgiRXZlbnQiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImRlZmF1bHRQcmV2ZW50ZWQiIHdp
dGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBFdmVudCBpbnRlcmZhY2U6IGRvY3VtZW50LmNyZWF0
ZUV2ZW50KCJFdmVudCIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiY29tcG9zZWQiIHdpdGggdGhl
IHByb3BlciB0eXBlIAogUEFTUyBFdmVudCBpbnRlcmZhY2U6IGRvY3VtZW50LmNyZWF0ZUV2ZW50
KCJFdmVudCIpIG11c3QgaGF2ZSBvd24gcHJvcGVydHkgImlzVHJ1c3RlZCIgCiBQQVNTIEV2ZW50
IGludGVyZmFjZTogZG9jdW1lbnQuY3JlYXRlRXZlbnQoIkV2ZW50IikgbXVzdCBpbmhlcml0IHBy
b3BlcnR5ICJ0aW1lU3RhbXAiIHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBFdmVudCBpbnRl
cmZhY2U6IGRvY3VtZW50LmNyZWF0ZUV2ZW50KCJFdmVudCIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0
eSAiaW5pdEV2ZW50KERPTVN0cmluZywgYm9vbGVhbiwgYm9vbGVhbikiIHdpdGggdGhlIHByb3Bl
ciB0eXBlIApAQCAtNTksMTggKzY1LDIxIEBAIFBBU1MgRXZlbnQgaW50ZXJmYWNlOiBuZXcgRXZl
bnQoImZvbyIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAidHlwZSIgd2l0aCB0aGUgcHJvCiBQQVNT
IEV2ZW50IGludGVyZmFjZTogbmV3IEV2ZW50KCJmb28iKSBtdXN0IGluaGVyaXQgcHJvcGVydHkg
InRhcmdldCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCiBQQVNTIEV2ZW50IGludGVyZmFjZTogbmV3
IEV2ZW50KCJmb28iKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInNyY0VsZW1lbnQiIHdpdGggdGhl
IHByb3BlciB0eXBlIAogUEFTUyBFdmVudCBpbnRlcmZhY2U6IG5ldyBFdmVudCgiZm9vIikgbXVz
dCBpbmhlcml0IHByb3BlcnR5ICJjdXJyZW50VGFyZ2V0IiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAK
K1BBU1MgRXZlbnQgaW50ZXJmYWNlOiBuZXcgRXZlbnQoImZvbyIpIG11c3QgaW5oZXJpdCBwcm9w
ZXJ0eSAiY29tcG9zZWRQYXRoKCkiIHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBFdmVudCBp
bnRlcmZhY2U6IG5ldyBFdmVudCgiZm9vIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJOT05FIiB3
aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgRXZlbnQgaW50ZXJmYWNlOiBuZXcgRXZlbnQoImZv
byIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiQ0FQVFVSSU5HX1BIQVNFIiB3aXRoIHRoZSBwcm9w
ZXIgdHlwZSAKIFBBU1MgRXZlbnQgaW50ZXJmYWNlOiBuZXcgRXZlbnQoImZvbyIpIG11c3QgaW5o
ZXJpdCBwcm9wZXJ0eSAiQVRfVEFSR0VUIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgRXZl
bnQgaW50ZXJmYWNlOiBuZXcgRXZlbnQoImZvbyIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiQlVC
QkxJTkdfUEhBU0UiIHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBFdmVudCBpbnRlcmZhY2U6
IG5ldyBFdmVudCgiZm9vIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJldmVudFBoYXNlIiB3aXRo
IHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgRXZlbnQgaW50ZXJmYWNlOiBuZXcgRXZlbnQoImZvbyIp
IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAic3RvcFByb3BhZ2F0aW9uKCkiIHdpdGggdGhlIHByb3Bl
ciB0eXBlIAorUEFTUyBFdmVudCBpbnRlcmZhY2U6IG5ldyBFdmVudCgiZm9vIikgbXVzdCBpbmhl
cml0IHByb3BlcnR5ICJjYW5jZWxCdWJibGUiIHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBF
dmVudCBpbnRlcmZhY2U6IG5ldyBFdmVudCgiZm9vIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJz
dG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCiBQQVNTIEV2
ZW50IGludGVyZmFjZTogbmV3IEV2ZW50KCJmb28iKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImJ1
YmJsZXMiIHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBFdmVudCBpbnRlcmZhY2U6IG5ldyBF
dmVudCgiZm9vIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJjYW5jZWxhYmxlIiB3aXRoIHRoZSBw
cm9wZXIgdHlwZSAKIFBBU1MgRXZlbnQgaW50ZXJmYWNlOiBuZXcgRXZlbnQoImZvbyIpIG11c3Qg
aW5oZXJpdCBwcm9wZXJ0eSAicmV0dXJuVmFsdWUiIHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFT
UyBFdmVudCBpbnRlcmZhY2U6IG5ldyBFdmVudCgiZm9vIikgbXVzdCBpbmhlcml0IHByb3BlcnR5
ICJwcmV2ZW50RGVmYXVsdCgpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgRXZlbnQgaW50
ZXJmYWNlOiBuZXcgRXZlbnQoImZvbyIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiZGVmYXVsdFBy
ZXZlbnRlZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIEV2ZW50IGludGVyZmFjZTogbmV3
IEV2ZW50KCJmb28iKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImNvbXBvc2VkIiB3aXRoIHRoZSBw
cm9wZXIgdHlwZSAKIFBBU1MgRXZlbnQgaW50ZXJmYWNlOiBuZXcgRXZlbnQoImZvbyIpIG11c3Qg
aGF2ZSBvd24gcHJvcGVydHkgImlzVHJ1c3RlZCIgCiBQQVNTIEV2ZW50IGludGVyZmFjZTogbmV3
IEV2ZW50KCJmb28iKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInRpbWVTdGFtcCIgd2l0aCB0aGUg
cHJvcGVyIHR5cGUgCiBQQVNTIEV2ZW50IGludGVyZmFjZTogbmV3IEV2ZW50KCJmb28iKSBtdXN0
IGluaGVyaXQgcHJvcGVydHkgImluaXRFdmVudChET01TdHJpbmcsIGJvb2xlYW4sIGJvb2xlYW4p
IiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKQEAgLTkyLDE4ICsxMDEsMjEgQEAgUEFTUyBFdmVudCBp
bnRlcmZhY2U6IG5ldyBDdXN0b21FdmVudCgiZm9vIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJ0
eXBlIiB3aXRoIHQKIFBBU1MgRXZlbnQgaW50ZXJmYWNlOiBuZXcgQ3VzdG9tRXZlbnQoImZvbyIp
IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAidGFyZ2V0IiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBB
U1MgRXZlbnQgaW50ZXJmYWNlOiBuZXcgQ3VzdG9tRXZlbnQoImZvbyIpIG11c3QgaW5oZXJpdCBw
cm9wZXJ0eSAic3JjRWxlbWVudCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCiBQQVNTIEV2ZW50IGlu
dGVyZmFjZTogbmV3IEN1c3RvbUV2ZW50KCJmb28iKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImN1
cnJlbnRUYXJnZXQiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBFdmVudCBpbnRlcmZhY2U6
IG5ldyBDdXN0b21FdmVudCgiZm9vIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJjb21wb3NlZFBh
dGgoKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCiBQQVNTIEV2ZW50IGludGVyZmFjZTogbmV3IEN1
c3RvbUV2ZW50KCJmb28iKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgIk5PTkUiIHdpdGggdGhlIHBy
b3BlciB0eXBlIAogUEFTUyBFdmVudCBpbnRlcmZhY2U6IG5ldyBDdXN0b21FdmVudCgiZm9vIikg
bXVzdCBpbmhlcml0IHByb3BlcnR5ICJDQVBUVVJJTkdfUEhBU0UiIHdpdGggdGhlIHByb3BlciB0
eXBlIAogUEFTUyBFdmVudCBpbnRlcmZhY2U6IG5ldyBDdXN0b21FdmVudCgiZm9vIikgbXVzdCBp
bmhlcml0IHByb3BlcnR5ICJBVF9UQVJHRVQiIHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBF
dmVudCBpbnRlcmZhY2U6IG5ldyBDdXN0b21FdmVudCgiZm9vIikgbXVzdCBpbmhlcml0IHByb3Bl
cnR5ICJCVUJCTElOR19QSEFTRSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCiBQQVNTIEV2ZW50IGlu
dGVyZmFjZTogbmV3IEN1c3RvbUV2ZW50KCJmb28iKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImV2
ZW50UGhhc2UiIHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBFdmVudCBpbnRlcmZhY2U6IG5l
dyBDdXN0b21FdmVudCgiZm9vIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJzdG9wUHJvcGFnYXRp
b24oKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIEV2ZW50IGludGVyZmFjZTogbmV3IEN1
c3RvbUV2ZW50KCJmb28iKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImNhbmNlbEJ1YmJsZSIgd2l0
aCB0aGUgcHJvcGVyIHR5cGUgCiBQQVNTIEV2ZW50IGludGVyZmFjZTogbmV3IEN1c3RvbUV2ZW50
KCJmb28iKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigp
IiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgRXZlbnQgaW50ZXJmYWNlOiBuZXcgQ3VzdG9t
RXZlbnQoImZvbyIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiYnViYmxlcyIgd2l0aCB0aGUgcHJv
cGVyIHR5cGUgCiBQQVNTIEV2ZW50IGludGVyZmFjZTogbmV3IEN1c3RvbUV2ZW50KCJmb28iKSBt
dXN0IGluaGVyaXQgcHJvcGVydHkgImNhbmNlbGFibGUiIHdpdGggdGhlIHByb3BlciB0eXBlIAog
UEFTUyBFdmVudCBpbnRlcmZhY2U6IG5ldyBDdXN0b21FdmVudCgiZm9vIikgbXVzdCBpbmhlcml0
IHByb3BlcnR5ICJyZXR1cm5WYWx1ZSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCiBQQVNTIEV2ZW50
IGludGVyZmFjZTogbmV3IEN1c3RvbUV2ZW50KCJmb28iKSBtdXN0IGluaGVyaXQgcHJvcGVydHkg
InByZXZlbnREZWZhdWx0KCkiIHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBFdmVudCBpbnRl
cmZhY2U6IG5ldyBDdXN0b21FdmVudCgiZm9vIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJkZWZh
dWx0UHJldmVudGVkIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgRXZlbnQgaW50ZXJmYWNl
OiBuZXcgQ3VzdG9tRXZlbnQoImZvbyIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiY29tcG9zZWQi
IHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBFdmVudCBpbnRlcmZhY2U6IG5ldyBDdXN0b21F
dmVudCgiZm9vIikgbXVzdCBoYXZlIG93biBwcm9wZXJ0eSAiaXNUcnVzdGVkIiAKIFBBU1MgRXZl
bnQgaW50ZXJmYWNlOiBuZXcgQ3VzdG9tRXZlbnQoImZvbyIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0
eSAidGltZVN0YW1wIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgRXZlbnQgaW50ZXJmYWNl
OiBuZXcgQ3VzdG9tRXZlbnQoImZvbyIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiaW5pdEV2ZW50
KERPTVN0cmluZywgYm9vbGVhbiwgYm9vbGVhbikiIHdpdGggdGhlIHByb3BlciB0eXBlIApAQCAt
MTY4LDYgKzE4MCw3IEBAIFBBU1MgTm9kZUxpc3QgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHBy
b3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QnCiBQQVNTIE5vZGVMaXN0IGlu
dGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUg
b2JqZWN0J3MgQEB1bnNjb3BhYmxlcyBwcm9wZXJ0eSAKIFBBU1MgTm9kZUxpc3QgaW50ZXJmYWNl
OiBvcGVyYXRpb24gaXRlbSh1bnNpZ25lZCBsb25nKSAKIFBBU1MgTm9kZUxpc3QgaW50ZXJmYWNl
OiBhdHRyaWJ1dGUgbGVuZ3RoIAorUEFTUyBOb2RlTGlzdCBpbnRlcmZhY2U6IGl0ZXJhYmxlPE5v
ZGU+IAogUEFTUyBOb2RlTGlzdCBtdXN0IGJlIHByaW1hcnkgaW50ZXJmYWNlIG9mIGRvY3VtZW50
LnF1ZXJ5U2VsZWN0b3JBbGwoInNjcmlwdCIpIAogUEFTUyBTdHJpbmdpZmljYXRpb24gb2YgZG9j
dW1lbnQucXVlcnlTZWxlY3RvckFsbCgic2NyaXB0IikgCiBQQVNTIE5vZGVMaXN0IGludGVyZmFj
ZTogZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgic2NyaXB0IikgbXVzdCBpbmhlcml0IHByb3Bl
cnR5ICJpdGVtKHVuc2lnbmVkIGxvbmcpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKQEAgLTMyOCw2
ICszNDEsOSBAQCBQQVNTIERvY3VtZW50IGludGVyZmFjZTogb3BlcmF0aW9uIHByZXBlbmQoW29i
amVjdCBPYmplY3RdLFtvYmplY3QgT2JqZWN0XSkKIFBBU1MgRG9jdW1lbnQgaW50ZXJmYWNlOiBv
cGVyYXRpb24gYXBwZW5kKFtvYmplY3QgT2JqZWN0XSxbb2JqZWN0IE9iamVjdF0pIAogUEFTUyBE
b2N1bWVudCBpbnRlcmZhY2U6IG9wZXJhdGlvbiBxdWVyeVNlbGVjdG9yKERPTVN0cmluZykgCiBQ
QVNTIERvY3VtZW50IGludGVyZmFjZTogb3BlcmF0aW9uIHF1ZXJ5U2VsZWN0b3JBbGwoRE9NU3Ry
aW5nKSAKK0ZBSUwgRG9jdW1lbnQgaW50ZXJmYWNlOiBvcGVyYXRpb24gY3JlYXRlRXhwcmVzc2lv
bihET01TdHJpbmcsIFhQYXRoTlNSZXNvbHZlcikgYXNzZXJ0X2VxdWFsczogcHJvcGVydHkgaGFz
IHdyb25nIC5sZW5ndGggZXhwZWN0ZWQgMSBidXQgZ290IDAKK1BBU1MgRG9jdW1lbnQgaW50ZXJm
YWNlOiBvcGVyYXRpb24gY3JlYXRlTlNSZXNvbHZlcihOb2RlKSAKK0ZBSUwgRG9jdW1lbnQgaW50
ZXJmYWNlOiBvcGVyYXRpb24gZXZhbHVhdGUoRE9NU3RyaW5nLCBOb2RlLCBYUGF0aE5TUmVzb2x2
ZXIsIHVuc2lnbmVkIHNob3J0LCBYUGF0aFJlc3VsdCkgYXNzZXJ0X2VxdWFsczogcHJvcGVydHkg
aGFzIHdyb25nIC5sZW5ndGggZXhwZWN0ZWQgMiBidXQgZ290IDAKIFBBU1MgRG9jdW1lbnQgbXVz
dCBiZSBwcmltYXJ5IGludGVyZmFjZSBvZiBuZXcgRG9jdW1lbnQoKSAKIFBBU1MgU3RyaW5naWZp
Y2F0aW9uIG9mIG5ldyBEb2N1bWVudCgpIAogUEFTUyBEb2N1bWVudCBpbnRlcmZhY2U6IG5ldyBE
b2N1bWVudCgpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiaW1wbGVtZW50YXRpb24iIHdpdGggdGhl
IHByb3BlciB0eXBlIApAQCAtMzg5LDYgKzQwNSwxNiBAQCBQQVNTIERvY3VtZW50IGludGVyZmFj
ZTogbmV3IERvY3VtZW50KCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJxdWVyeVNlbGVjdG9yKERP
TQogUEFTUyBEb2N1bWVudCBpbnRlcmZhY2U6IGNhbGxpbmcgcXVlcnlTZWxlY3RvcihET01TdHJp
bmcpIG9uIG5ldyBEb2N1bWVudCgpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBU
eXBlRXJyb3IgCiBQQVNTIERvY3VtZW50IGludGVyZmFjZTogbmV3IERvY3VtZW50KCkgbXVzdCBp
bmhlcml0IHByb3BlcnR5ICJxdWVyeVNlbGVjdG9yQWxsKERPTVN0cmluZykiIHdpdGggdGhlIHBy
b3BlciB0eXBlIAogUEFTUyBEb2N1bWVudCBpbnRlcmZhY2U6IGNhbGxpbmcgcXVlcnlTZWxlY3Rv
ckFsbChET01TdHJpbmcpIG9uIG5ldyBEb2N1bWVudCgpIHdpdGggdG9vIGZldyBhcmd1bWVudHMg
bXVzdCB0aHJvdyBUeXBlRXJyb3IgCitQQVNTIERvY3VtZW50IGludGVyZmFjZTogbmV3IERvY3Vt
ZW50KCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJjcmVhdGVFeHByZXNzaW9uKERPTVN0cmluZywg
WFBhdGhOU1Jlc29sdmVyKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitGQUlMIERvY3VtZW50IGlu
dGVyZmFjZTogY2FsbGluZyBjcmVhdGVFeHByZXNzaW9uKERPTVN0cmluZywgWFBhdGhOU1Jlc29s
dmVyKSBvbiBuZXcgRG9jdW1lbnQoKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cg
VHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9u
ICJmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICBmbi5hcHBseShvYmosIGFyZ3MpOworICAgICAg
ICB9IiBkaWQgbm90IHRocm93CitQQVNTIERvY3VtZW50IGludGVyZmFjZTogbmV3IERvY3VtZW50
KCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJjcmVhdGVOU1Jlc29sdmVyKE5vZGUpIiB3aXRoIHRo
ZSBwcm9wZXIgdHlwZSAKK1BBU1MgRG9jdW1lbnQgaW50ZXJmYWNlOiBjYWxsaW5nIGNyZWF0ZU5T
UmVzb2x2ZXIoTm9kZSkgb24gbmV3IERvY3VtZW50KCkgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBt
dXN0IHRocm93IFR5cGVFcnJvciAKK1BBU1MgRG9jdW1lbnQgaW50ZXJmYWNlOiBuZXcgRG9jdW1l
bnQoKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImV2YWx1YXRlKERPTVN0cmluZywgTm9kZSwgWFBh
dGhOU1Jlc29sdmVyLCB1bnNpZ25lZCBzaG9ydCwgWFBhdGhSZXN1bHQpIiB3aXRoIHRoZSBwcm9w
ZXIgdHlwZSAKK0ZBSUwgRG9jdW1lbnQgaW50ZXJmYWNlOiBjYWxsaW5nIGV2YWx1YXRlKERPTVN0
cmluZywgTm9kZSwgWFBhdGhOU1Jlc29sdmVyLCB1bnNpZ25lZCBzaG9ydCwgWFBhdGhSZXN1bHQp
IG9uIG5ldyBEb2N1bWVudCgpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBl
RXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1
bmN0aW9uICgpIHsKKyAgICAgICAgICAgIGZuLmFwcGx5KG9iaiwgYXJncyk7CisgICAgICAgIH0i
IHRocmV3IG9iamVjdCAiTm90U3VwcG9ydGVkRXJyb3I6IFRoZSBvcGVyYXRpb24gaXMgbm90IHN1
cHBvcnRlZC4iICgiTm90U3VwcG9ydGVkRXJyb3IiKSBleHBlY3RlZCBvYmplY3QgIlR5cGVFcnJv
ciIgKCJUeXBlRXJyb3IiKQogUEFTUyBOb2RlIGludGVyZmFjZTogbmV3IERvY3VtZW50KCkgbXVz
dCBpbmhlcml0IHByb3BlcnR5ICJFTEVNRU5UX05PREUiIHdpdGggdGhlIHByb3BlciB0eXBlIAog
UEFTUyBOb2RlIGludGVyZmFjZTogbmV3IERvY3VtZW50KCkgbXVzdCBpbmhlcml0IHByb3BlcnR5
ICJBVFRSSUJVVEVfTk9ERSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCiBQQVNTIE5vZGUgaW50ZXJm
YWNlOiBuZXcgRG9jdW1lbnQoKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgIlRFWFRfTk9ERSIgd2l0
aCB0aGUgcHJvcGVyIHR5cGUgCkBAIC01MjIsNiArNTQ4LDE2IEBAIFBBU1MgRG9jdW1lbnQgaW50
ZXJmYWNlOiB4bWxEb2MgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJxdWVyeVNlbGVjdG9yKERPTVN0
cmluZykiCiBQQVNTIERvY3VtZW50IGludGVyZmFjZTogY2FsbGluZyBxdWVyeVNlbGVjdG9yKERP
TVN0cmluZykgb24geG1sRG9jIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBl
RXJyb3IgCiBQQVNTIERvY3VtZW50IGludGVyZmFjZTogeG1sRG9jIG11c3QgaW5oZXJpdCBwcm9w
ZXJ0eSAicXVlcnlTZWxlY3RvckFsbChET01TdHJpbmcpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAK
IFBBU1MgRG9jdW1lbnQgaW50ZXJmYWNlOiBjYWxsaW5nIHF1ZXJ5U2VsZWN0b3JBbGwoRE9NU3Ry
aW5nKSBvbiB4bWxEb2Mgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJv
ciAKK1BBU1MgRG9jdW1lbnQgaW50ZXJmYWNlOiB4bWxEb2MgbXVzdCBpbmhlcml0IHByb3BlcnR5
ICJjcmVhdGVFeHByZXNzaW9uKERPTVN0cmluZywgWFBhdGhOU1Jlc29sdmVyKSIgd2l0aCB0aGUg
cHJvcGVyIHR5cGUgCitGQUlMIERvY3VtZW50IGludGVyZmFjZTogY2FsbGluZyBjcmVhdGVFeHBy
ZXNzaW9uKERPTVN0cmluZywgWFBhdGhOU1Jlc29sdmVyKSBvbiB4bWxEb2Mgd2l0aCB0b28gZmV3
IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0
aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgZm4uYXBw
bHkob2JqLCBhcmdzKTsKKyAgICAgICAgfSIgZGlkIG5vdCB0aHJvdworUEFTUyBEb2N1bWVudCBp
bnRlcmZhY2U6IHhtbERvYyBtdXN0IGluaGVyaXQgcHJvcGVydHkgImNyZWF0ZU5TUmVzb2x2ZXIo
Tm9kZSkiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBEb2N1bWVudCBpbnRlcmZhY2U6IGNh
bGxpbmcgY3JlYXRlTlNSZXNvbHZlcihOb2RlKSBvbiB4bWxEb2Mgd2l0aCB0b28gZmV3IGFyZ3Vt
ZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKK1BBU1MgRG9jdW1lbnQgaW50ZXJmYWNlOiB4bWxE
b2MgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJldmFsdWF0ZShET01TdHJpbmcsIE5vZGUsIFhQYXRo
TlNSZXNvbHZlciwgdW5zaWduZWQgc2hvcnQsIFhQYXRoUmVzdWx0KSIgd2l0aCB0aGUgcHJvcGVy
IHR5cGUgCitGQUlMIERvY3VtZW50IGludGVyZmFjZTogY2FsbGluZyBldmFsdWF0ZShET01TdHJp
bmcsIE5vZGUsIFhQYXRoTlNSZXNvbHZlciwgdW5zaWduZWQgc2hvcnQsIFhQYXRoUmVzdWx0KSBv
biB4bWxEb2Mgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3Nl
cnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkg
eworICAgICAgICAgICAgZm4uYXBwbHkob2JqLCBhcmdzKTsKKyAgICAgICAgfSIgdGhyZXcgb2Jq
ZWN0ICJOb3RTdXBwb3J0ZWRFcnJvcjogVGhlIG9wZXJhdGlvbiBpcyBub3Qgc3VwcG9ydGVkLiIg
KCJOb3RTdXBwb3J0ZWRFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVF
cnJvciIpCiBQQVNTIE5vZGUgaW50ZXJmYWNlOiB4bWxEb2MgbXVzdCBpbmhlcml0IHByb3BlcnR5
ICJFTEVNRU5UX05PREUiIHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBOb2RlIGludGVyZmFj
ZTogeG1sRG9jIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiQVRUUklCVVRFX05PREUiIHdpdGggdGhl
IHByb3BlciB0eXBlIAogUEFTUyBOb2RlIGludGVyZmFjZTogeG1sRG9jIG11c3QgaW5oZXJpdCBw
cm9wZXJ0eSAiVEVYVF9OT0RFIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKQEAgLTgyNiw2ICs4NjIs
NyBAQCBQQVNTIEVsZW1lbnQgaW50ZXJmYWNlOiBvcGVyYXRpb24gc2V0QXR0cmlidXRlKERPTVN0
cmluZywgRE9NU3RyaW5nKQogUEFTUyBFbGVtZW50IGludGVyZmFjZTogb3BlcmF0aW9uIHNldEF0
dHJpYnV0ZU5TKERPTVN0cmluZywgRE9NU3RyaW5nLCBET01TdHJpbmcpIAogUEFTUyBFbGVtZW50
IGludGVyZmFjZTogb3BlcmF0aW9uIHJlbW92ZUF0dHJpYnV0ZShET01TdHJpbmcpIAogUEFTUyBF
bGVtZW50IGludGVyZmFjZTogb3BlcmF0aW9uIHJlbW92ZUF0dHJpYnV0ZU5TKERPTVN0cmluZywg
RE9NU3RyaW5nKSAKK1BBU1MgRWxlbWVudCBpbnRlcmZhY2U6IG9wZXJhdGlvbiB0b2dnbGVBdHRy
aWJ1dGUoRE9NU3RyaW5nLCBib29sZWFuKSAKIFBBU1MgRWxlbWVudCBpbnRlcmZhY2U6IG9wZXJh
dGlvbiBoYXNBdHRyaWJ1dGUoRE9NU3RyaW5nKSAKIFBBU1MgRWxlbWVudCBpbnRlcmZhY2U6IG9w
ZXJhdGlvbiBoYXNBdHRyaWJ1dGVOUyhET01TdHJpbmcsIERPTVN0cmluZykgCiBQQVNTIEVsZW1l
bnQgaW50ZXJmYWNlOiBvcGVyYXRpb24gZ2V0QXR0cmlidXRlTm9kZShET01TdHJpbmcpIApAQCAt
ODgzLDYgKzkyMCw4IEBAIFBBU1MgRWxlbWVudCBpbnRlcmZhY2U6IGVsZW1lbnQgbXVzdCBpbmhl
cml0IHByb3BlcnR5ICJyZW1vdmVBdHRyaWJ1dGUoRE9NU3RyaW5nCiBQQVNTIEVsZW1lbnQgaW50
ZXJmYWNlOiBjYWxsaW5nIHJlbW92ZUF0dHJpYnV0ZShET01TdHJpbmcpIG9uIGVsZW1lbnQgd2l0
aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKIFBBU1MgRWxlbWVudCBp
bnRlcmZhY2U6IGVsZW1lbnQgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJyZW1vdmVBdHRyaWJ1dGVO
UyhET01TdHJpbmcsIERPTVN0cmluZykiIHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBFbGVt
ZW50IGludGVyZmFjZTogY2FsbGluZyByZW1vdmVBdHRyaWJ1dGVOUyhET01TdHJpbmcsIERPTVN0
cmluZykgb24gZWxlbWVudCB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVy
cm9yIAorUEFTUyBFbGVtZW50IGludGVyZmFjZTogZWxlbWVudCBtdXN0IGluaGVyaXQgcHJvcGVy
dHkgInRvZ2dsZUF0dHJpYnV0ZShET01TdHJpbmcsIGJvb2xlYW4pIiB3aXRoIHRoZSBwcm9wZXIg
dHlwZSAKK1BBU1MgRWxlbWVudCBpbnRlcmZhY2U6IGNhbGxpbmcgdG9nZ2xlQXR0cmlidXRlKERP
TVN0cmluZywgYm9vbGVhbikgb24gZWxlbWVudCB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3Qg
dGhyb3cgVHlwZUVycm9yIAogUEFTUyBFbGVtZW50IGludGVyZmFjZTogZWxlbWVudCBtdXN0IGlu
aGVyaXQgcHJvcGVydHkgImhhc0F0dHJpYnV0ZShET01TdHJpbmcpIiB3aXRoIHRoZSBwcm9wZXIg
dHlwZSAKIFBBU1MgRWxlbWVudCBpbnRlcmZhY2U6IGNhbGxpbmcgaGFzQXR0cmlidXRlKERPTVN0
cmluZykgb24gZWxlbWVudCB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVy
cm9yIAogUEFTUyBFbGVtZW50IGludGVyZmFjZTogZWxlbWVudCBtdXN0IGluaGVyaXQgcHJvcGVy
dHkgImhhc0F0dHJpYnV0ZU5TKERPTVN0cmluZywgRE9NU3RyaW5nKSIgd2l0aCB0aGUgcHJvcGVy
IHR5cGUgCkBAIC0xNDM2LDE2ICsxNDc1LDE2IEBAIEZBSUwgQWJzdHJhY3RSYW5nZSBpbnRlcmZh
Y2U6IGF0dHJpYnV0ZSBzdGFydE9mZnNldCBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvCiBG
QUlMIEFic3RyYWN0UmFuZ2UgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgZW5kQ29udGFpbmVyIGFzc2Vy
dF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIkFic3RyYWN0
UmFuZ2UiIGV4cGVjdGVkIHByb3BlcnR5ICJBYnN0cmFjdFJhbmdlIiBtaXNzaW5nCiBGQUlMIEFi
c3RyYWN0UmFuZ2UgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgZW5kT2Zmc2V0IGFzc2VydF9vd25fcHJv
cGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIkFic3RyYWN0UmFuZ2UiIGV4
cGVjdGVkIHByb3BlcnR5ICJBYnN0cmFjdFJhbmdlIiBtaXNzaW5nCiBGQUlMIEFic3RyYWN0UmFu
Z2UgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgY29sbGFwc2VkIGFzc2VydF9vd25fcHJvcGVydHk6IHNl
bGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIkFic3RyYWN0UmFuZ2UiIGV4cGVjdGVkIHBy
b3BlcnR5ICJBYnN0cmFjdFJhbmdlIiBtaXNzaW5nCi1GQUlMIFN0YXRpY1JhbmdlIGludGVyZmFj
ZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgYXNzZXJ0X293
bl9wcm9wZXJ0eTogc2hvdWxkIGluaGVyaXQgZnJvbSBBYnN0cmFjdFJhbmdlLCBidXQgc2VsZiBo
YXMgbm8gc3VjaCBwcm9wZXJ0eSBleHBlY3RlZCBwcm9wZXJ0eSAiQWJzdHJhY3RSYW5nZSIgbWlz
c2luZwotRkFJTCBTdGF0aWNSYW5nZSBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aCBhc3NlcnRfZXF1
YWxzOiB3cm9uZyB2YWx1ZSBmb3IgU3RhdGljUmFuZ2UubGVuZ3RoIGV4cGVjdGVkIDAgYnV0IGdv
dCAxCitGQUlMIFN0YXRpY1JhbmdlIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVz
IG9mIGludGVyZmFjZSBvYmplY3QgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBo
YXZlIG93biBwcm9wZXJ0eSAiQWJzdHJhY3RSYW5nZSIgZXhwZWN0ZWQgcHJvcGVydHkgIkFic3Ry
YWN0UmFuZ2UiIG1pc3NpbmcKK1BBU1MgU3RhdGljUmFuZ2UgaW50ZXJmYWNlIG9iamVjdCBsZW5n
dGggCiBQQVNTIFN0YXRpY1JhbmdlIGludGVyZmFjZSBvYmplY3QgbmFtZSAKLUZBSUwgU3RhdGlj
UmFuZ2UgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHBy
b3RvdHlwZSBvYmplY3QgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2hvdWxkIGluaGVyaXQgZnJvbSBB
YnN0cmFjdFJhbmdlLCBidXQgc2VsZiBoYXMgbm8gc3VjaCBwcm9wZXJ0eSBleHBlY3RlZCBwcm9w
ZXJ0eSAiQWJzdHJhY3RSYW5nZSIgbWlzc2luZworRkFJTCBTdGF0aWNSYW5nZSBpbnRlcmZhY2U6
IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCBh
c3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJBYnN0
cmFjdFJhbmdlIiBleHBlY3RlZCBwcm9wZXJ0eSAiQWJzdHJhY3RSYW5nZSIgbWlzc2luZwogUEFT
UyBTdGF0aWNSYW5nZSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRl
cmZhY2UgcHJvdG90eXBlIG9iamVjdCdzICJjb25zdHJ1Y3RvciIgcHJvcGVydHkgCiBQQVNTIFN0
YXRpY1JhbmdlIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFj
ZSBwcm90b3R5cGUgb2JqZWN0J3MgQEB1bnNjb3BhYmxlcyBwcm9wZXJ0eSAKLUZBSUwgUmFuZ2Ug
aW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCBh
c3NlcnRfb3duX3Byb3BlcnR5OiBzaG91bGQgaW5oZXJpdCBmcm9tIEFic3RyYWN0UmFuZ2UsIGJ1
dCBzZWxmIGhhcyBubyBzdWNoIHByb3BlcnR5IGV4cGVjdGVkIHByb3BlcnR5ICJBYnN0cmFjdFJh
bmdlIiBtaXNzaW5nCitGQUlMIFJhbmdlIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0
aWVzIG9mIGludGVyZmFjZSBvYmplY3QgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5v
dCBoYXZlIG93biBwcm9wZXJ0eSAiQWJzdHJhY3RSYW5nZSIgZXhwZWN0ZWQgcHJvcGVydHkgIkFi
c3RyYWN0UmFuZ2UiIG1pc3NpbmcKIFBBU1MgUmFuZ2UgaW50ZXJmYWNlIG9iamVjdCBsZW5ndGgg
CiBQQVNTIFJhbmdlIGludGVyZmFjZSBvYmplY3QgbmFtZSAKLUZBSUwgUmFuZ2UgaW50ZXJmYWNl
OiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3Qg
YXNzZXJ0X293bl9wcm9wZXJ0eTogc2hvdWxkIGluaGVyaXQgZnJvbSBBYnN0cmFjdFJhbmdlLCBi
dXQgc2VsZiBoYXMgbm8gc3VjaCBwcm9wZXJ0eSBleHBlY3RlZCBwcm9wZXJ0eSAiQWJzdHJhY3RS
YW5nZSIgbWlzc2luZworRkFJTCBSYW5nZSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVy
dGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCBhc3NlcnRfb3duX3Byb3BlcnR5OiBz
ZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJBYnN0cmFjdFJhbmdlIiBleHBlY3RlZCBw
cm9wZXJ0eSAiQWJzdHJhY3RSYW5nZSIgbWlzc2luZwogUEFTUyBSYW5nZSBpbnRlcmZhY2U6IGV4
aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzICJj
b25zdHJ1Y3RvciIgcHJvcGVydHkgCiBQQVNTIFJhbmdlIGludGVyZmFjZTogZXhpc3RlbmNlIGFu
ZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgQEB1bnNjb3BhYmxl
cyBwcm9wZXJ0eSAKIFBBU1MgUmFuZ2UgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgY29tbW9uQW5jZXN0
b3JDb250YWluZXIgCkBAIC0xNjgwLDYgKzE3MTksNyBAQCBQQVNTIERPTVRva2VuTGlzdCBpbnRl
cmZhY2U6IG9wZXJhdGlvbiByZXBsYWNlKERPTVN0cmluZywgRE9NU3RyaW5nKQogUEFTUyBET01U
b2tlbkxpc3QgaW50ZXJmYWNlOiBvcGVyYXRpb24gc3VwcG9ydHMoRE9NU3RyaW5nKSAKIFBBU1Mg
RE9NVG9rZW5MaXN0IGludGVyZmFjZTogYXR0cmlidXRlIHZhbHVlIAogUEFTUyBET01Ub2tlbkxp
c3QgaW50ZXJmYWNlOiBzdHJpbmdpZmllciAKK1BBU1MgRE9NVG9rZW5MaXN0IGludGVyZmFjZTog
aXRlcmFibGU8RE9NU3RyaW5nPiAKIFBBU1MgRE9NVG9rZW5MaXN0IG11c3QgYmUgcHJpbWFyeSBp
bnRlcmZhY2Ugb2YgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QgCiBQQVNTIFN0cmluZ2lmaWNhdGlv
biBvZiBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdCAKIFBBU1MgRE9NVG9rZW5MaXN0IGludGVyZmFj
ZTogZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJsZW5ndGgi
IHdpdGggdGhlIHByb3BlciB0eXBlIApAQCAtMTY5OCw1ICsxNzM4LDYxIEBAIFBBU1MgRE9NVG9r
ZW5MaXN0IGludGVyZmFjZTogY2FsbGluZyByZXBsYWNlKERPTVN0cmluZywgRE9NU3RyaW5nKSBv
biBkb2N1bWVudC5iCiBQQVNTIERPTVRva2VuTGlzdCBpbnRlcmZhY2U6IGRvY3VtZW50LmJvZHku
Y2xhc3NMaXN0IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAic3VwcG9ydHMoRE9NU3RyaW5nKSIgd2l0
aCB0aGUgcHJvcGVyIHR5cGUgCiBQQVNTIERPTVRva2VuTGlzdCBpbnRlcmZhY2U6IGNhbGxpbmcg
c3VwcG9ydHMoRE9NU3RyaW5nKSBvbiBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdCB3aXRoIHRvbyBm
ZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAogUEFTUyBET01Ub2tlbkxpc3QgaW50
ZXJmYWNlOiBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdCBtdXN0IGluaGVyaXQgcHJvcGVydHkgInZh
bHVlIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKLVBBU1MgV29ya2VyR2xvYmFsU2NvcGUgaW50ZXJm
YWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCAKK1BBU1Mg
WFBhdGhSZXN1bHQgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJm
YWNlIG9iamVjdCAKK1BBU1MgWFBhdGhSZXN1bHQgaW50ZXJmYWNlIG9iamVjdCBsZW5ndGggCitQ
QVNTIFhQYXRoUmVzdWx0IGludGVyZmFjZSBvYmplY3QgbmFtZSAKK1BBU1MgWFBhdGhSZXN1bHQg
aW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlw
ZSBvYmplY3QgCitQQVNTIFhQYXRoUmVzdWx0IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9w
ZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgImNvbnN0cnVjdG9yIiBwcm9w
ZXJ0eSAKK1BBU1MgWFBhdGhSZXN1bHQgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRp
ZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyBAQHVuc2NvcGFibGVzIHByb3BlcnR5
IAorUEFTUyBYUGF0aFJlc3VsdCBpbnRlcmZhY2U6IGNvbnN0YW50IEFOWV9UWVBFIG9uIGludGVy
ZmFjZSBvYmplY3QgCitQQVNTIFhQYXRoUmVzdWx0IGludGVyZmFjZTogY29uc3RhbnQgQU5ZX1RZ
UEUgb24gaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgCitQQVNTIFhQYXRoUmVzdWx0IGludGVy
ZmFjZTogY29uc3RhbnQgTlVNQkVSX1RZUEUgb24gaW50ZXJmYWNlIG9iamVjdCAKK1BBU1MgWFBh
dGhSZXN1bHQgaW50ZXJmYWNlOiBjb25zdGFudCBOVU1CRVJfVFlQRSBvbiBpbnRlcmZhY2UgcHJv
dG90eXBlIG9iamVjdCAKK1BBU1MgWFBhdGhSZXN1bHQgaW50ZXJmYWNlOiBjb25zdGFudCBTVFJJ
TkdfVFlQRSBvbiBpbnRlcmZhY2Ugb2JqZWN0IAorUEFTUyBYUGF0aFJlc3VsdCBpbnRlcmZhY2U6
IGNvbnN0YW50IFNUUklOR19UWVBFIG9uIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IAorUEFT
UyBYUGF0aFJlc3VsdCBpbnRlcmZhY2U6IGNvbnN0YW50IEJPT0xFQU5fVFlQRSBvbiBpbnRlcmZh
Y2Ugb2JqZWN0IAorUEFTUyBYUGF0aFJlc3VsdCBpbnRlcmZhY2U6IGNvbnN0YW50IEJPT0xFQU5f
VFlQRSBvbiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCAKK1BBU1MgWFBhdGhSZXN1bHQgaW50
ZXJmYWNlOiBjb25zdGFudCBVTk9SREVSRURfTk9ERV9JVEVSQVRPUl9UWVBFIG9uIGludGVyZmFj
ZSBvYmplY3QgCitQQVNTIFhQYXRoUmVzdWx0IGludGVyZmFjZTogY29uc3RhbnQgVU5PUkRFUkVE
X05PREVfSVRFUkFUT1JfVFlQRSBvbiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCAKK1BBU1Mg
WFBhdGhSZXN1bHQgaW50ZXJmYWNlOiBjb25zdGFudCBPUkRFUkVEX05PREVfSVRFUkFUT1JfVFlQ
RSBvbiBpbnRlcmZhY2Ugb2JqZWN0IAorUEFTUyBYUGF0aFJlc3VsdCBpbnRlcmZhY2U6IGNvbnN0
YW50IE9SREVSRURfTk9ERV9JVEVSQVRPUl9UWVBFIG9uIGludGVyZmFjZSBwcm90b3R5cGUgb2Jq
ZWN0IAorUEFTUyBYUGF0aFJlc3VsdCBpbnRlcmZhY2U6IGNvbnN0YW50IFVOT1JERVJFRF9OT0RF
X1NOQVBTSE9UX1RZUEUgb24gaW50ZXJmYWNlIG9iamVjdCAKK1BBU1MgWFBhdGhSZXN1bHQgaW50
ZXJmYWNlOiBjb25zdGFudCBVTk9SREVSRURfTk9ERV9TTkFQU0hPVF9UWVBFIG9uIGludGVyZmFj
ZSBwcm90b3R5cGUgb2JqZWN0IAorUEFTUyBYUGF0aFJlc3VsdCBpbnRlcmZhY2U6IGNvbnN0YW50
IE9SREVSRURfTk9ERV9TTkFQU0hPVF9UWVBFIG9uIGludGVyZmFjZSBvYmplY3QgCitQQVNTIFhQ
YXRoUmVzdWx0IGludGVyZmFjZTogY29uc3RhbnQgT1JERVJFRF9OT0RFX1NOQVBTSE9UX1RZUEUg
b24gaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgCitQQVNTIFhQYXRoUmVzdWx0IGludGVyZmFj
ZTogY29uc3RhbnQgQU5ZX1VOT1JERVJFRF9OT0RFX1RZUEUgb24gaW50ZXJmYWNlIG9iamVjdCAK
K1BBU1MgWFBhdGhSZXN1bHQgaW50ZXJmYWNlOiBjb25zdGFudCBBTllfVU5PUkRFUkVEX05PREVf
VFlQRSBvbiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCAKK1BBU1MgWFBhdGhSZXN1bHQgaW50
ZXJmYWNlOiBjb25zdGFudCBGSVJTVF9PUkRFUkVEX05PREVfVFlQRSBvbiBpbnRlcmZhY2Ugb2Jq
ZWN0IAorUEFTUyBYUGF0aFJlc3VsdCBpbnRlcmZhY2U6IGNvbnN0YW50IEZJUlNUX09SREVSRURf
Tk9ERV9UWVBFIG9uIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IAorUEFTUyBYUGF0aFJlc3Vs
dCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSByZXN1bHRUeXBlIAorUEFTUyBYUGF0aFJlc3VsdCBpbnRl
cmZhY2U6IGF0dHJpYnV0ZSBudW1iZXJWYWx1ZSAKK1BBU1MgWFBhdGhSZXN1bHQgaW50ZXJmYWNl
OiBhdHRyaWJ1dGUgc3RyaW5nVmFsdWUgCitQQVNTIFhQYXRoUmVzdWx0IGludGVyZmFjZTogYXR0
cmlidXRlIGJvb2xlYW5WYWx1ZSAKK1BBU1MgWFBhdGhSZXN1bHQgaW50ZXJmYWNlOiBhdHRyaWJ1
dGUgc2luZ2xlTm9kZVZhbHVlIAorUEFTUyBYUGF0aFJlc3VsdCBpbnRlcmZhY2U6IGF0dHJpYnV0
ZSBpbnZhbGlkSXRlcmF0b3JTdGF0ZSAKK1BBU1MgWFBhdGhSZXN1bHQgaW50ZXJmYWNlOiBhdHRy
aWJ1dGUgc25hcHNob3RMZW5ndGggCitQQVNTIFhQYXRoUmVzdWx0IGludGVyZmFjZTogb3BlcmF0
aW9uIGl0ZXJhdGVOZXh0KCkgCitGQUlMIFhQYXRoUmVzdWx0IGludGVyZmFjZTogb3BlcmF0aW9u
IHNuYXBzaG90SXRlbSh1bnNpZ25lZCBsb25nKSBhc3NlcnRfZXF1YWxzOiBwcm9wZXJ0eSBoYXMg
d3JvbmcgLmxlbmd0aCBleHBlY3RlZCAxIGJ1dCBnb3QgMAorUEFTUyBYUGF0aEV4cHJlc3Npb24g
aW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCAK
K1BBU1MgWFBhdGhFeHByZXNzaW9uIGludGVyZmFjZSBvYmplY3QgbGVuZ3RoIAorUEFTUyBYUGF0
aEV4cHJlc3Npb24gaW50ZXJmYWNlIG9iamVjdCBuYW1lIAorUEFTUyBYUGF0aEV4cHJlc3Npb24g
aW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlw
ZSBvYmplY3QgCitQQVNTIFhQYXRoRXhwcmVzc2lvbiBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQg
cHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzICJjb25zdHJ1Y3RvciIg
cHJvcGVydHkgCitQQVNTIFhQYXRoRXhwcmVzc2lvbiBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQg
cHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzIEBAdW5zY29wYWJsZXMg
cHJvcGVydHkgCitGQUlMIFhQYXRoRXhwcmVzc2lvbiBpbnRlcmZhY2U6IG9wZXJhdGlvbiBldmFs
dWF0ZShOb2RlLCB1bnNpZ25lZCBzaG9ydCwgWFBhdGhSZXN1bHQpIGFzc2VydF9lcXVhbHM6IHBy
b3BlcnR5IGhhcyB3cm9uZyAubGVuZ3RoIGV4cGVjdGVkIDEgYnV0IGdvdCAwCitQQVNTIFhQYXRo
TlNSZXNvbHZlciBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZh
Y2Ugb2JqZWN0IAorUEFTUyBYUGF0aE5TUmVzb2x2ZXIgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5k
IHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgCitQQVNTIFhQYXRoTlNS
ZXNvbHZlciBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ug
cHJvdG90eXBlIG9iamVjdCdzICJjb25zdHJ1Y3RvciIgcHJvcGVydHkgCitQQVNTIFhQYXRoTlNS
ZXNvbHZlciBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ug
cHJvdG90eXBlIG9iamVjdCdzIEBAdW5zY29wYWJsZXMgcHJvcGVydHkgCitQQVNTIFhQYXRoTlNS
ZXNvbHZlciBpbnRlcmZhY2U6IG9wZXJhdGlvbiBsb29rdXBOYW1lc3BhY2VVUkkoRE9NU3RyaW5n
KSAKK1BBU1MgWFBhdGhFdmFsdWF0b3IgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRp
ZXMgb2YgaW50ZXJmYWNlIG9iamVjdCAKK1BBU1MgWFBhdGhFdmFsdWF0b3IgaW50ZXJmYWNlIG9i
amVjdCBsZW5ndGggCitQQVNTIFhQYXRoRXZhbHVhdG9yIGludGVyZmFjZSBvYmplY3QgbmFtZSAK
K1BBU1MgWFBhdGhFdmFsdWF0b3IgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMg
b2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgCitQQVNTIFhQYXRoRXZhbHVhdG9yIGludGVy
ZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2Jq
ZWN0J3MgImNvbnN0cnVjdG9yIiBwcm9wZXJ0eSAKK1BBU1MgWFBhdGhFdmFsdWF0b3IgaW50ZXJm
YWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmpl
Y3QncyBAQHVuc2NvcGFibGVzIHByb3BlcnR5IAorRkFJTCBYUGF0aEV2YWx1YXRvciBpbnRlcmZh
Y2U6IG9wZXJhdGlvbiBjcmVhdGVFeHByZXNzaW9uKERPTVN0cmluZywgWFBhdGhOU1Jlc29sdmVy
KSBhc3NlcnRfZXF1YWxzOiBwcm9wZXJ0eSBoYXMgd3JvbmcgLmxlbmd0aCBleHBlY3RlZCAxIGJ1
dCBnb3QgMAorRkFJTCBYUGF0aEV2YWx1YXRvciBpbnRlcmZhY2U6IG9wZXJhdGlvbiBjcmVhdGVO
U1Jlc29sdmVyKE5vZGUpIGFzc2VydF9lcXVhbHM6IHByb3BlcnR5IGhhcyB3cm9uZyAubGVuZ3Ro
IGV4cGVjdGVkIDEgYnV0IGdvdCAwCitGQUlMIFhQYXRoRXZhbHVhdG9yIGludGVyZmFjZTogb3Bl
cmF0aW9uIGV2YWx1YXRlKERPTVN0cmluZywgTm9kZSwgWFBhdGhOU1Jlc29sdmVyLCB1bnNpZ25l
ZCBzaG9ydCwgWFBhdGhSZXN1bHQpIGFzc2VydF9lcXVhbHM6IHByb3BlcnR5IGhhcyB3cm9uZyAu
bGVuZ3RoIGV4cGVjdGVkIDIgYnV0IGdvdCAwCitQQVNTIFdpbmRvdyBpbnRlcmZhY2U6IGF0dHJp
YnV0ZSBldmVudCAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9kb21wYXJzaW5nL2ludGVyZmFjZXMuYW55Lndvcmtlci1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbXBhcnNp
bmcvaW50ZXJmYWNlcy5hbnkud29ya2VyLWV4cGVjdGVkLnR4dAppbmRleCAxNGMyZWQ5NTgxZjFh
MDhkZTBjMTJmMzJlMjljNTY4NTk1YmNkYmQ1Li44ZWZmOTk0NzhiYWEyNzQ5ZTdmM2NmOTk5ZmZl
NTc0NmJhZjEzOTIyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2RvbXBhcnNpbmcvaW50ZXJmYWNlcy5hbnkud29ya2VyLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbXBh
cnNpbmcvaW50ZXJmYWNlcy5hbnkud29ya2VyLWV4cGVjdGVkLnR4dApAQCAtMTEsMTYgKzExLDEy
IEBAIEZBSUwgWE1MU2VyaWFsaXplciBtdXN0IGJlIHByaW1hcnkgaW50ZXJmYWNlIG9mIG5ldyBY
TUxTZXJpYWxpemVyKCkgYXNzZXJ0X2VxdWFsCiBGQUlMIFN0cmluZ2lmaWNhdGlvbiBvZiBuZXcg
WE1MU2VyaWFsaXplcigpIGFzc2VydF9lcXVhbHM6IFVuZXhwZWN0ZWQgZXhjZXB0aW9uIHdoZW4g
ZXZhbHVhdGluZyBvYmplY3QgZXhwZWN0ZWQgbnVsbCBidXQgZ290IG9iamVjdCAiUmVmZXJlbmNl
RXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IFhNTFNlcmlhbGl6ZXIiCiBGQUlMIFhNTFNlcmlh
bGl6ZXIgaW50ZXJmYWNlOiBuZXcgWE1MU2VyaWFsaXplcigpIG11c3Qgbm90IGhhdmUgcHJvcGVy
dHkgInNlcmlhbGl6ZVRvU3RyaW5nIiBhc3NlcnRfZXF1YWxzOiBVbmV4cGVjdGVkIGV4Y2VwdGlv
biB3aGVuIGV2YWx1YXRpbmcgb2JqZWN0IGV4cGVjdGVkIG51bGwgYnV0IGdvdCBvYmplY3QgIlJl
ZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBYTUxTZXJpYWxpemVyIgogUEFTUyBO
b2RlIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmpl
Y3QgCi1QQVNTIERvY3VtZW50IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9m
IGludGVyZmFjZSBvYmplY3QgCi1QQVNTIERvY3VtZW50VHlwZSBpbnRlcmZhY2U6IGV4aXN0ZW5j
ZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IAogUEFTUyBEb2N1bWVudEZyYWdt
ZW50IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmpl
Y3QgCiBQQVNTIFNoYWRvd1Jvb3QgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMg
b2YgaW50ZXJmYWNlIG9iamVjdCAKIFBBU1MgRWxlbWVudCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBh
bmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IAogRkFJTCBFbGVtZW50IGludGVyZmFj
ZTogZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikgbXVzdCBub3QgaGF2ZSBwcm9wZXJ0eSAi
b3V0ZXJIVE1MIiBhc3NlcnRfZXF1YWxzOiBVbmV4cGVjdGVkIGV4Y2VwdGlvbiB3aGVuIGV2YWx1
YXRpbmcgb2JqZWN0IGV4cGVjdGVkIG51bGwgYnV0IGdvdCBvYmplY3QgIlJlZmVyZW5jZUVycm9y
OiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBkb2N1bWVudCIKIEZBSUwgRWxlbWVudCBpbnRlcmZhY2U6
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpIG11c3Qgbm90IGhhdmUgcHJvcGVydHkgImlu
c2VydEFkamFjZW50SFRNTCIgYXNzZXJ0X2VxdWFsczogVW5leHBlY3RlZCBleGNlcHRpb24gd2hl
biBldmFsdWF0aW5nIG9iamVjdCBleHBlY3RlZCBudWxsIGJ1dCBnb3Qgb2JqZWN0ICJSZWZlcmVu
Y2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogZG9jdW1lbnQiCiBGQUlMIEVsZW1lbnQgaW50
ZXJmYWNlOiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSBtdXN0IG5vdCBoYXZlIHByb3Bl
cnR5ICJpbm5lckhUTUwiIGFzc2VydF9lcXVhbHM6IFVuZXhwZWN0ZWQgZXhjZXB0aW9uIHdoZW4g
ZXZhbHVhdGluZyBvYmplY3QgZXhwZWN0ZWQgbnVsbCBidXQgZ290IG9iamVjdCAiUmVmZXJlbmNl
RXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IGRvY3VtZW50IgotUEFTUyBDaGFyYWN0ZXJEYXRh
IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3Qg
Ci1QQVNTIFRleHQgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJm
YWNlIG9iamVjdCAKIFBBU1MgQWJzdHJhY3RSYW5nZSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQg
cHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IAogUEFTUyBSYW5nZSBpbnRlcmZhY2U6IGV4
aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IAogRkFJTCBSYW5nZSBp
bnRlcmZhY2U6IG5ldyBSYW5nZSgpIG11c3Qgbm90IGhhdmUgcHJvcGVydHkgImNyZWF0ZUNvbnRl
eHR1YWxGcmFnbWVudCIgYXNzZXJ0X2VxdWFsczogVW5leHBlY3RlZCBleGNlcHRpb24gd2hlbiBl
dmFsdWF0aW5nIG9iamVjdCBleHBlY3RlZCBudWxsIGJ1dCBnb3Qgb2JqZWN0ICJSZWZlcmVuY2VF
cnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogUmFuZ2UiCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2V2ZW50c291cmNlL2ludGVyZmFjZXMt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9ldmVudHNvdXJjZS9pbnRlcmZhY2VzLWV4cGVjdGVkLnR4dAppbmRleCBiYWQzMGFkZmY2MGYz
YjI2MDM3MTY0NzAxYTZhZDgwZWZhODlkZmU4Li4wMzZlZWRkYTVlZGQwMWMzNWJjNmU5Nzg1NDc4
YTczOWUwNTZmNTM5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2V2ZW50c291cmNlL2ludGVyZmFjZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZXZlbnRzb3VyY2UvaW50
ZXJmYWNlcy1leHBlY3RlZC50eHQKQEAgLTEsNCArMSwzIEBACi1DT05TT0xFIE1FU1NBR0U6IGxp
bmUgNDgyOiBjYWxsYmFjayBub3QgeWV0IHN1cHBvcnRlZAogQmxvY2tlZCBhY2Nlc3MgdG8gZXh0
ZXJuYWwgVVJMIGh0dHA6Ly9mb28vCiBDT05TT0xFIE1FU1NBR0U6IEV2ZW50U291cmNlIGNhbm5v
dCBsb2FkIGh0dHA6Ly9mb28vIGR1ZSB0byBhY2Nlc3MgY29udHJvbCBjaGVja3MuCiBFdmVudFNv
dXJjZSBJREwgdGVzdHMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2lkbC5hbnktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaWRsLmFueS1leHBl
Y3RlZC50eHQKaW5kZXggMWRkZmE1ZjU1ZjIyYTFkYWY1OTQyYTFhZmM1MzQ1MDFiOWEwYjUzZC4u
NzJlNzdkMGFjZTI5NTQyNTRlNzQyNTNiNjMxNzhhMDJjZjkzZTBlNyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaWRsLmFu
eS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9hcGkvaWRsLmFueS1leHBlY3RlZC50eHQKQEAgLTEyLDEyICsxMiw3IEBA
IFBBU1MgSGVhZGVycyBpbnRlcmZhY2U6IG9wZXJhdGlvbiBkZWxldGUoQnl0ZVN0cmluZykKIFBB
U1MgSGVhZGVycyBpbnRlcmZhY2U6IG9wZXJhdGlvbiBnZXQoQnl0ZVN0cmluZykgCiBQQVNTIEhl
YWRlcnMgaW50ZXJmYWNlOiBvcGVyYXRpb24gaGFzKEJ5dGVTdHJpbmcpIAogUEFTUyBIZWFkZXJz
IGludGVyZmFjZTogb3BlcmF0aW9uIHNldChCeXRlU3RyaW5nLCBCeXRlU3RyaW5nKSAKLVBBU1Mg
VGVzdGluZyBTeW1ib2wuaXRlcmF0b3IgcHJvcGVydHkgb2YgaXRlcmFibGUgaW50ZXJmYWNlIEhl
YWRlcnMgCi1QQVNTIFRlc3RpbmcgcGFpciBpdGVyYWJsZSBpbnRlcmZhY2UgSGVhZGVycyAKLVBB
U1MgSGVhZGVycyBpbnRlcmZhY2U6IG9wZXJhdGlvbiBlbnRyaWVzKCkgCi1QQVNTIEhlYWRlcnMg
aW50ZXJmYWNlOiBvcGVyYXRpb24ga2V5cygpIAotUEFTUyBIZWFkZXJzIGludGVyZmFjZTogb3Bl
cmF0aW9uIHZhbHVlcygpIAotUEFTUyBIZWFkZXJzIGludGVyZmFjZTogb3BlcmF0aW9uIGZvckVh
Y2goZnVuY3Rpb24sIGFueSkgCitQQVNTIEhlYWRlcnMgaW50ZXJmYWNlOiBpdGVyYWJsZTxCeXRl
U3RyaW5nLCBCeXRlU3RyaW5nPiAKIFBBU1MgSGVhZGVycyBtdXN0IGJlIHByaW1hcnkgaW50ZXJm
YWNlIG9mIG5ldyBIZWFkZXJzKCkgCiBQQVNTIFN0cmluZ2lmaWNhdGlvbiBvZiBuZXcgSGVhZGVy
cygpIAogUEFTUyBIZWFkZXJzIGludGVyZmFjZTogbmV3IEhlYWRlcnMoKSBtdXN0IGluaGVyaXQg
cHJvcGVydHkgImFwcGVuZChCeXRlU3RyaW5nLCBCeXRlU3RyaW5nKSIgd2l0aCB0aGUgcHJvcGVy
IHR5cGUgCkBAIC0zMCwxMSArMjUsNiBAQCBQQVNTIEhlYWRlcnMgaW50ZXJmYWNlOiBuZXcgSGVh
ZGVycygpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiaGFzKEJ5dGVTdHJpbmcpIiB3aQogUEFTUyBI
ZWFkZXJzIGludGVyZmFjZTogY2FsbGluZyBoYXMoQnl0ZVN0cmluZykgb24gbmV3IEhlYWRlcnMo
KSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAogUEFTUyBIZWFk
ZXJzIGludGVyZmFjZTogbmV3IEhlYWRlcnMoKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInNldChC
eXRlU3RyaW5nLCBCeXRlU3RyaW5nKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCiBQQVNTIEhlYWRl
cnMgaW50ZXJmYWNlOiBjYWxsaW5nIHNldChCeXRlU3RyaW5nLCBCeXRlU3RyaW5nKSBvbiBuZXcg
SGVhZGVycygpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCi1Q
QVNTIEhlYWRlcnMgaW50ZXJmYWNlOiBuZXcgSGVhZGVycygpIG11c3QgaW5oZXJpdCBwcm9wZXJ0
eSAiZW50cmllcygpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKLVBBU1MgSGVhZGVycyBpbnRlcmZh
Y2U6IG5ldyBIZWFkZXJzKCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJrZXlzKCkiIHdpdGggdGhl
IHByb3BlciB0eXBlIAotUEFTUyBIZWFkZXJzIGludGVyZmFjZTogbmV3IEhlYWRlcnMoKSBtdXN0
IGluaGVyaXQgcHJvcGVydHkgInZhbHVlcygpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKLVBBU1Mg
SGVhZGVycyBpbnRlcmZhY2U6IG5ldyBIZWFkZXJzKCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJm
b3JFYWNoKGZ1bmN0aW9uLCBhbnkpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKLVBBU1MgSGVhZGVy
cyBpbnRlcmZhY2U6IGNhbGxpbmcgZm9yRWFjaChmdW5jdGlvbiwgYW55KSBvbiBuZXcgSGVhZGVy
cygpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCiBQQVNTIFJl
cXVlc3QgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9i
amVjdCAKIFBBU1MgUmVxdWVzdCBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aCAKIFBBU1MgUmVxdWVz
dCBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9pZGwuYW55Lndvcmtlci1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L2FwaS9pZGwuYW55Lndvcmtlci1leHBlY3RlZC50eHQKaW5kZXggYTQ0NGNmNzJiZmNmZmE2YmRl
NzZmNzViNTkwMzdkMjgxMWY1YjViNC4uN2E0NDlhYzY2MGY4OTA1OGYzYTAzMWZiZGQ5MGZkZTQw
YWIzNzQ1OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9hcGkvaWRsLmFueS53b3JrZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2lkbC5hbnku
d29ya2VyLWV4cGVjdGVkLnR4dApAQCAtMTIsMTIgKzEyLDcgQEAgUEFTUyBIZWFkZXJzIGludGVy
ZmFjZTogb3BlcmF0aW9uIGRlbGV0ZShCeXRlU3RyaW5nKQogUEFTUyBIZWFkZXJzIGludGVyZmFj
ZTogb3BlcmF0aW9uIGdldChCeXRlU3RyaW5nKSAKIFBBU1MgSGVhZGVycyBpbnRlcmZhY2U6IG9w
ZXJhdGlvbiBoYXMoQnl0ZVN0cmluZykgCiBQQVNTIEhlYWRlcnMgaW50ZXJmYWNlOiBvcGVyYXRp
b24gc2V0KEJ5dGVTdHJpbmcsIEJ5dGVTdHJpbmcpIAotUEFTUyBUZXN0aW5nIFN5bWJvbC5pdGVy
YXRvciBwcm9wZXJ0eSBvZiBpdGVyYWJsZSBpbnRlcmZhY2UgSGVhZGVycyAKLVBBU1MgVGVzdGlu
ZyBwYWlyIGl0ZXJhYmxlIGludGVyZmFjZSBIZWFkZXJzIAotUEFTUyBIZWFkZXJzIGludGVyZmFj
ZTogb3BlcmF0aW9uIGVudHJpZXMoKSAKLVBBU1MgSGVhZGVycyBpbnRlcmZhY2U6IG9wZXJhdGlv
biBrZXlzKCkgCi1QQVNTIEhlYWRlcnMgaW50ZXJmYWNlOiBvcGVyYXRpb24gdmFsdWVzKCkgCi1Q
QVNTIEhlYWRlcnMgaW50ZXJmYWNlOiBvcGVyYXRpb24gZm9yRWFjaChmdW5jdGlvbiwgYW55KSAK
K1BBU1MgSGVhZGVycyBpbnRlcmZhY2U6IGl0ZXJhYmxlPEJ5dGVTdHJpbmcsIEJ5dGVTdHJpbmc+
IAogUEFTUyBIZWFkZXJzIG11c3QgYmUgcHJpbWFyeSBpbnRlcmZhY2Ugb2YgbmV3IEhlYWRlcnMo
KSAKIFBBU1MgU3RyaW5naWZpY2F0aW9uIG9mIG5ldyBIZWFkZXJzKCkgCiBQQVNTIEhlYWRlcnMg
aW50ZXJmYWNlOiBuZXcgSGVhZGVycygpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiYXBwZW5kKEJ5
dGVTdHJpbmcsIEJ5dGVTdHJpbmcpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKQEAgLTMwLDExICsy
NSw2IEBAIFBBU1MgSGVhZGVycyBpbnRlcmZhY2U6IG5ldyBIZWFkZXJzKCkgbXVzdCBpbmhlcml0
IHByb3BlcnR5ICJoYXMoQnl0ZVN0cmluZykiIHdpCiBQQVNTIEhlYWRlcnMgaW50ZXJmYWNlOiBj
YWxsaW5nIGhhcyhCeXRlU3RyaW5nKSBvbiBuZXcgSGVhZGVycygpIHdpdGggdG9vIGZldyBhcmd1
bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCiBQQVNTIEhlYWRlcnMgaW50ZXJmYWNlOiBuZXcg
SGVhZGVycygpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAic2V0KEJ5dGVTdHJpbmcsIEJ5dGVTdHJp
bmcpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgSGVhZGVycyBpbnRlcmZhY2U6IGNhbGxp
bmcgc2V0KEJ5dGVTdHJpbmcsIEJ5dGVTdHJpbmcpIG9uIG5ldyBIZWFkZXJzKCkgd2l0aCB0b28g
ZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKLVBBU1MgSGVhZGVycyBpbnRlcmZh
Y2U6IG5ldyBIZWFkZXJzKCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJlbnRyaWVzKCkiIHdpdGgg
dGhlIHByb3BlciB0eXBlIAotUEFTUyBIZWFkZXJzIGludGVyZmFjZTogbmV3IEhlYWRlcnMoKSBt
dXN0IGluaGVyaXQgcHJvcGVydHkgImtleXMoKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCi1QQVNT
IEhlYWRlcnMgaW50ZXJmYWNlOiBuZXcgSGVhZGVycygpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAi
dmFsdWVzKCkiIHdpdGggdGhlIHByb3BlciB0eXBlIAotUEFTUyBIZWFkZXJzIGludGVyZmFjZTog
bmV3IEhlYWRlcnMoKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImZvckVhY2goZnVuY3Rpb24sIGFu
eSkiIHdpdGggdGhlIHByb3BlciB0eXBlIAotUEFTUyBIZWFkZXJzIGludGVyZmFjZTogY2FsbGlu
ZyBmb3JFYWNoKGZ1bmN0aW9uLCBhbnkpIG9uIG5ldyBIZWFkZXJzKCkgd2l0aCB0b28gZmV3IGFy
Z3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKIFBBU1MgUmVxdWVzdCBpbnRlcmZhY2U6IGV4
aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IAogUEFTUyBSZXF1ZXN0
IGludGVyZmFjZSBvYmplY3QgbGVuZ3RoIAogUEFTUyBSZXF1ZXN0IGludGVyZmFjZSBvYmplY3Qg
bmFtZSAKQEAgLTEzNCwxOSArMTI0LDggQEAgUEFTUyBSZXNwb25zZSBpbnRlcmZhY2U6IG5ldyBS
ZXNwb25zZSgpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiYmxvYigpIiB3aXRoIHRoZQogUEFTUyBS
ZXNwb25zZSBpbnRlcmZhY2U6IG5ldyBSZXNwb25zZSgpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAi
Zm9ybURhdGEoKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCiBQQVNTIFJlc3BvbnNlIGludGVyZmFj
ZTogbmV3IFJlc3BvbnNlKCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJqc29uKCkiIHdpdGggdGhl
IHByb3BlciB0eXBlIAogUEFTUyBSZXNwb25zZSBpbnRlcmZhY2U6IG5ldyBSZXNwb25zZSgpIG11
c3QgaW5oZXJpdCBwcm9wZXJ0eSAidGV4dCgpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKLVBBU1Mg
SFRNTEVsZW1lbnQgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJm
YWNlIG9iamVjdCAKLVBBU1MgSFRNTEJvZHlFbGVtZW50IGludGVyZmFjZTogZXhpc3RlbmNlIGFu
ZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgCiBQQVNTIFdpbmRvdyBpbnRlcmZhY2U6
IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IAogUEFTUyBXb3Jr
ZXJHbG9iYWxTY29wZSBpbnRlcmZhY2U6IG9wZXJhdGlvbiBmZXRjaChSZXF1ZXN0SW5mbywgUmVx
dWVzdEluaXQpIAogUEFTUyBXb3JrZXJHbG9iYWxTY29wZSBpbnRlcmZhY2U6IHNlbGYgbXVzdCBp
bmhlcml0IHByb3BlcnR5ICJmZXRjaChSZXF1ZXN0SW5mbywgUmVxdWVzdEluaXQpIiB3aXRoIHRo
ZSBwcm9wZXIgdHlwZSAKIFBBU1MgV29ya2VyR2xvYmFsU2NvcGUgaW50ZXJmYWNlOiBjYWxsaW5n
IGZldGNoKFJlcXVlc3RJbmZvLCBSZXF1ZXN0SW5pdCkgb24gc2VsZiB3aXRoIHRvbyBmZXcgYXJn
dW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAotUEFTUyBIVE1MRnJhbWVTZXRFbGVtZW50IGlu
dGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgCi1Q
QVNTIE5vZGUgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNl
IG9iamVjdCAKLVBBU1MgRG9jdW1lbnQgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRp
ZXMgb2YgaW50ZXJmYWNlIG9iamVjdCAKLVBBU1MgRG9jdW1lbnRUeXBlIGludGVyZmFjZTogZXhp
c3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgCi1QQVNTIERvY3VtZW50
RnJhZ21lbnQgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNl
IG9iamVjdCAKLVBBU1MgU2hhZG93Um9vdCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVy
dGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IAotUEFTUyBFbGVtZW50IGludGVyZmFjZTogZXhpc3Rl
bmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgCi1QQVNTIENoYXJhY3RlckRh
dGEgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVj
dCAKLVBBU1MgVGV4dCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRl
cmZhY2Ugb2JqZWN0IAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZldGNoL2NvcnMtcmZjMTkxOC9pZGxoYXJuZXNzLnRlbnRhdGl2ZS5h
bnktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9jb3JzLXJmYzE5MTgvaWRsaGFybmVzcy50ZW50YXRpdmUuYW55LWV4cGVjdGVk
LnR4dAppbmRleCBhN2VhMzI3OTFjYjAwNjkzZjM3OTRhMjNkMzI4NGE5MjY3OWM1MmZmLi5kMmYz
MDIxN2M3Yzc3Y2VlZDM3OTYzNDNhNGQzNDVhZjM1YWFjNzBjIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2NvcnMtcmZjMTkxOC9p
ZGxoYXJuZXNzLnRlbnRhdGl2ZS5hbnktZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvY29ycy1yZmMxOTE4L2lkbGhhcm5l
c3MudGVudGF0aXZlLmFueS1leHBlY3RlZC50eHQKQEAgLTEsMzAgKzEsMyBAQAogCi1GQUlMIGlk
bF90ZXN0IHNldHVwIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVl
OiBvYmplY3QgIkdvdCBhbiBlcnJvciBiZWZvcmUgcGFyc2luZyBhbnkgbmFtZWQgZGVmaW5pdGlv
bjogVW5yZWNvZ25pc2VkIHRva2VucywgbGluZSAxICh0b2tlbnM6ICJ7XCJlcnJvclwiOiB7XCJt
ZXNzYWdlXCIiKQotWwotICAgIHsKLSAgICAgICAgInR5cGUiOiAieyIsCi0gICAgICAgICJ2YWx1
ZSI6ICJ7IiwKLSAgICAgICAgInRyaXZpYSI6ICIiCi0gICAgfSwKLSAgICB7Ci0gICAgICAgICJ0
eXBlIjogInN0cmluZyIsCi0gICAgICAgICJ2YWx1ZSI6ICJcImVycm9yXCIiLAotICAgICAgICAi
dHJpdmlhIjogIiIKLSAgICB9LAotICAgIHsKLSAgICAgICAgInR5cGUiOiAiOiIsCi0gICAgICAg
ICJ2YWx1ZSI6ICI6IiwKLSAgICAgICAgInRyaXZpYSI6ICIiCi0gICAgfSwKLSAgICB7Ci0gICAg
ICAgICJ0eXBlIjogInsiLAotICAgICAgICAidmFsdWUiOiAieyIsCi0gICAgICAgICJ0cml2aWEi
OiAiICIKLSAgICB9LAotICAgIHsKLSAgICAgICAgInR5cGUiOiAic3RyaW5nIiwKLSAgICAgICAg
InZhbHVlIjogIlwibWVzc2FnZVwiIiwKLSAgICAgICAgInRyaXZpYSI6ICIiCi0gICAgfQotXSIK
K0ZBSUwgaWRsX3Rlc3Qgc2V0dXAgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdp
dGggdmFsdWU6IG9iamVjdCAiRXJyb3IgZmV0Y2hpbmcgL2ludGVyZmFjZXMvY29ycy1yZmMxOTE4
LmlkbC4iCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvY29ycy1yZmMxOTE4L2lkbGhhcm5lc3MudGVudGF0aXZlLmFueS53b3Jr
ZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9jb3JzLXJmYzE5MTgvaWRsaGFybmVzcy50ZW50YXRpdmUuYW55Lndvcmtlci1l
eHBlY3RlZC50eHQKaW5kZXggYTdlYTMyNzkxY2IwMDY5M2YzNzk0YTIzZDMyODRhOTI2NzljNTJm
Zi4uZDJmMzAyMTdjN2M3N2NlZWQzNzk2MzQzYTRkMzQ1YWYzNWFhYzcwYyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9jb3JzLXJm
YzE5MTgvaWRsaGFybmVzcy50ZW50YXRpdmUuYW55Lndvcmtlci1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9jb3JzLXJm
YzE5MTgvaWRsaGFybmVzcy50ZW50YXRpdmUuYW55Lndvcmtlci1leHBlY3RlZC50eHQKQEAgLTEs
MzAgKzEsMyBAQAogCi1GQUlMIGlkbF90ZXN0IHNldHVwIHByb21pc2VfdGVzdDogVW5oYW5kbGVk
IHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIkdvdCBhbiBlcnJvciBiZWZvcmUgcGFyc2lu
ZyBhbnkgbmFtZWQgZGVmaW5pdGlvbjogVW5yZWNvZ25pc2VkIHRva2VucywgbGluZSAxICh0b2tl
bnM6ICJ7XCJlcnJvclwiOiB7XCJtZXNzYWdlXCIiKQotWwotICAgIHsKLSAgICAgICAgInR5cGUi
OiAieyIsCi0gICAgICAgICJ2YWx1ZSI6ICJ7IiwKLSAgICAgICAgInRyaXZpYSI6ICIiCi0gICAg
fSwKLSAgICB7Ci0gICAgICAgICJ0eXBlIjogInN0cmluZyIsCi0gICAgICAgICJ2YWx1ZSI6ICJc
ImVycm9yXCIiLAotICAgICAgICAidHJpdmlhIjogIiIKLSAgICB9LAotICAgIHsKLSAgICAgICAg
InR5cGUiOiAiOiIsCi0gICAgICAgICJ2YWx1ZSI6ICI6IiwKLSAgICAgICAgInRyaXZpYSI6ICIi
Ci0gICAgfSwKLSAgICB7Ci0gICAgICAgICJ0eXBlIjogInsiLAotICAgICAgICAidmFsdWUiOiAi
eyIsCi0gICAgICAgICJ0cml2aWEiOiAiICIKLSAgICB9LAotICAgIHsKLSAgICAgICAgInR5cGUi
OiAic3RyaW5nIiwKLSAgICAgICAgInZhbHVlIjogIlwibWVzc2FnZVwiIiwKLSAgICAgICAgInRy
aXZpYSI6ICIiCi0gICAgfQotXSIKK0ZBSUwgaWRsX3Rlc3Qgc2V0dXAgcHJvbWlzZV90ZXN0OiBV
bmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiRXJyb3IgZmV0Y2hpbmcgL2lu
dGVyZmFjZXMvY29ycy1yZmMxOTE4LmlkbC4iCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHItdGltZS9pZGxoYXJuZXNzLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHItdGlt
ZS9pZGxoYXJuZXNzLWV4cGVjdGVkLnR4dAppbmRleCA0MmI1YWJkOWE3OGEzOWIxYjFhZmZiMGVm
YjA2NmIzNTUyZmFlZWYxLi5jNDkwZDA1MDUwMmIwM2M4MDE2NGI5OGYwOTMxYWJhZmU2MTY2YTg2
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2hyLXRpbWUvaWRsaGFybmVzcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9oci10aW1lL2lkbGhhcm5lc3MtZXhwZWN0ZWQudHh0
CkBAIC0xNyw3ICsxNyw3IEBAIFBBU1MgU3RyaW5naWZpY2F0aW9uIG9mIHdpbmRvdy5wZXJmb3Jt
YW5jZQogUEFTUyBQZXJmb3JtYW5jZSBpbnRlcmZhY2U6IHdpbmRvdy5wZXJmb3JtYW5jZSBtdXN0
IGluaGVyaXQgcHJvcGVydHkgIm5vdygpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKIEZBSUwgUGVy
Zm9ybWFuY2UgaW50ZXJmYWNlOiB3aW5kb3cucGVyZm9ybWFuY2UgbXVzdCBpbmhlcml0IHByb3Bl
cnR5ICJ0aW1lT3JpZ2luIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBhc3NlcnRfaW5oZXJpdHM6IHBy
b3BlcnR5ICJ0aW1lT3JpZ2luIiBub3QgZm91bmQgaW4gcHJvdG90eXBlIGNoYWluCiBGQUlMIFBl
cmZvcm1hbmNlIGludGVyZmFjZTogd2luZG93LnBlcmZvcm1hbmNlIG11c3QgaW5oZXJpdCBwcm9w
ZXJ0eSAidG9KU09OKCkiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9pbmhlcml0czogcHJv
cGVydHkgInRvSlNPTiIgbm90IGZvdW5kIGluIHByb3RvdHlwZSBjaGFpbgotRkFJTCBUZXN0IGRl
ZmF1bHQgdG9KU09OIG9wZXJhdGlvbiBvZiBQZXJmb3JtYW5jZSBtZW1iZXJIb2xkZXJPYmplY3Qu
dG9KU09OIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ21lbWJlckhvbGRlck9iamVjdC50b0pTT04o
KScsICdtZW1iZXJIb2xkZXJPYmplY3QudG9KU09OJyBpcyB1bmRlZmluZWQpCitGQUlMIFBlcmZv
cm1hbmNlIGludGVyZmFjZTogZGVmYXVsdCB0b0pTT04gb3BlcmF0aW9uIG9uIHdpbmRvdy5wZXJm
b3JtYW5jZSBtZW1iZXJIb2xkZXJPYmplY3QudG9KU09OIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4g
J21lbWJlckhvbGRlck9iamVjdC50b0pTT04oKScsICdtZW1iZXJIb2xkZXJPYmplY3QudG9KU09O
JyBpcyB1bmRlZmluZWQpCiBQQVNTIFdpbmRvdyBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBwZXJmb3Jt
YW5jZSAKIFBBU1MgV2luZG93IGludGVyZmFjZTogd2luZG93IG11c3QgaW5oZXJpdCBwcm9wZXJ0
eSAicGVyZm9ybWFuY2UiIHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBXb3JrZXJHbG9iYWxT
Y29wZSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2Jq
ZWN0IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL3dlYmFwcGFwaXMvYW5pbWF0aW9uLWZyYW1lcy9pZGxoYXJuZXNzLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC93
ZWJhcHBhcGlzL2FuaW1hdGlvbi1mcmFtZXMvaWRsaGFybmVzcy1leHBlY3RlZC50eHQKaW5kZXgg
NmQ4YmY2ZTdmNzFmMTU5OTM5ZjMzNjMyYzFmYWU5ZGQ3NjMxOTRmZC4uNTQ5ODA4ODVhYzdiNjdk
N2RlNTJhMWE1ZmI3MDE5MTQzNTQxYjNmNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3dlYmFwcGFwaXMvYW5pbWF0aW9uLWZyYW1l
cy9pZGxoYXJuZXNzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvd2ViYXBwYXBpcy9hbmltYXRpb24tZnJhbWVzL2lkbGhh
cm5lc3MtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsMyBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5l
IDQ4MjogY2FsbGJhY2sgbm90IHlldCBzdXBwb3J0ZWQKIGlkbGhhcm5lc3MgdGVzdAogCiBUaGlz
IHRlc3QgdmFsaWRhdGVzIHRoZSBXZWJJREwgaW5jbHVkZWQgaW4gdGhlIFRpbWluZyBjb250cm9s
IGZvciBzY3JpcHQtYmFzZWQgYW5pbWF0aW9ucyBzcGVjaWZpY2F0aW9uLgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3dlYmFwcGFw
aXMvc2NyaXB0aW5nL2V2ZW50cy9ldmVudC1oYW5kbGVyLWFsbC1nbG9iYWwtZXZlbnRzLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bC93ZWJhcHBhcGlzL3NjcmlwdGluZy9ldmVudHMvZXZlbnQtaGFuZGxlci1hbGwtZ2xvYmFsLWV2
ZW50cy1leHBlY3RlZC50eHQKaW5kZXggMDBiMTdmZTYwY2RlZjBmZGRhZDEwMTY1NjdmMzAxZmE5
MTY1Njc4Ny4uNjY4MWMyOGMxMWE1ZWVkNDMyMmFhNDE2MTYxYzZlYTRlYjQ0MTA1YSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3dl
YmFwcGFwaXMvc2NyaXB0aW5nL2V2ZW50cy9ldmVudC1oYW5kbGVyLWFsbC1nbG9iYWwtZXZlbnRz
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvd2ViYXBwYXBpcy9zY3JpcHRpbmcvZXZlbnRzL2V2ZW50LWhhbmRsZXItYWxs
LWdsb2JhbC1ldmVudHMtZXhwZWN0ZWQudHh0CkBAIC0xMTksNiArMTE5LDExIEBAIFBBU1Mgb25m
b2N1czogdGhlIGRlZmF1bHQgdmFsdWUgbXVzdCBiZSBudWxsCiBQQVNTIG9uZm9jdXM6IHRoZSBj
b250ZW50IGF0dHJpYnV0ZSBtdXN0IGJlIGNvbXBpbGVkIGludG8gYSBmdW5jdGlvbiBhcyB0aGUg
Y29ycmVzcG9uZGluZyBwcm9wZXJ0eSAKIFBBU1Mgb25mb2N1czogdGhlIGNvbnRlbnQgYXR0cmli
dXRlIG11c3QgZXhlY3V0ZSB3aGVuIGFuIGV2ZW50IGlzIGRpc3BhdGNoZWQgCiBQQVNTIG9uZm9j
dXM6IGRpc3BhdGNoaW5nIGFuIEV2ZW50IGF0IGEgPG1ldGE+IGVsZW1lbnQgbXVzdCB0cmlnZ2Vy
IGVsZW1lbnQub25mb2N1cyAKK0ZBSUwgb25mb3JtZGF0YTogbXVzdCBiZSBvbiB0aGUgYXBwcm9w
cmlhdGUgbG9jYXRpb25zIGZvciBHbG9iYWxFdmVudEhhbmRsZXJzIGFzc2VydF90cnVlOiBXaW5k
b3cgaGFzIGFuIG93biBwcm9wZXJ0eSBuYW1lZCAib25mb3JtZGF0YSIgZXhwZWN0ZWQgdHJ1ZSBn
b3QgZmFsc2UKK0ZBSUwgb25mb3JtZGF0YTogdGhlIGRlZmF1bHQgdmFsdWUgbXVzdCBiZSBudWxs
IGFzc2VydF9lcXVhbHM6IFRoZSBkZWZhdWx0IHZhbHVlIG9mIHRoZSBwcm9wZXJ0eSBpcyBudWxs
IGZvciBhIFdpbmRvdyBpbnN0YW5jZSBleHBlY3RlZCAob2JqZWN0KSBudWxsIGJ1dCBnb3QgKHVu
ZGVmaW5lZCkgdW5kZWZpbmVkCitGQUlMIG9uZm9ybWRhdGE6IHRoZSBjb250ZW50IGF0dHJpYnV0
ZSBtdXN0IGJlIGNvbXBpbGVkIGludG8gYSBmdW5jdGlvbiBhcyB0aGUgY29ycmVzcG9uZGluZyBw
cm9wZXJ0eSBhc3NlcnRfZXF1YWxzOiBUaGUgb25mb3JtZGF0YSBwcm9wZXJ0eSBtdXN0IGJlIGEg
ZnVuY3Rpb24gZXhwZWN0ZWQgImZ1bmN0aW9uIiBidXQgZ290ICJ1bmRlZmluZWQiCitGQUlMIG9u
Zm9ybWRhdGE6IHRoZSBjb250ZW50IGF0dHJpYnV0ZSBtdXN0IGV4ZWN1dGUgd2hlbiBhbiBldmVu
dCBpcyBkaXNwYXRjaGVkIGFzc2VydF90cnVlOiBEaXNwYXRjaGluZyBhbiBldmVudCBtdXN0IHJ1
biB0aGUgY29kZSBleHBlY3RlZCB0cnVlIGdvdCB1bmRlZmluZWQKK1BBU1Mgb25mb3JtZGF0YTog
ZGlzcGF0Y2hpbmcgYW4gRXZlbnQgYXQgYSA8bWV0YT4gZWxlbWVudCBtdXN0IHRyaWdnZXIgZWxl
bWVudC5vbmZvcm1kYXRhIAogUEFTUyBvbmlucHV0OiBtdXN0IGJlIG9uIHRoZSBhcHByb3ByaWF0
ZSBsb2NhdGlvbnMgZm9yIEdsb2JhbEV2ZW50SGFuZGxlcnMgCiBQQVNTIG9uaW5wdXQ6IHRoZSBk
ZWZhdWx0IHZhbHVlIG11c3QgYmUgbnVsbCAKIFBBU1Mgb25pbnB1dDogdGhlIGNvbnRlbnQgYXR0
cmlidXRlIG11c3QgYmUgY29tcGlsZWQgaW50byBhIGZ1bmN0aW9uIGFzIHRoZSBjb3JyZXNwb25k
aW5nIHByb3BlcnR5IApAQCAtMTU5LDExICsxNjQsNiBAQCBQQVNTIG9ubG9hZGVkbWV0YWRhdGE6
IHRoZSBkZWZhdWx0IHZhbHVlIG11c3QgYmUgbnVsbAogUEFTUyBvbmxvYWRlZG1ldGFkYXRhOiB0
aGUgY29udGVudCBhdHRyaWJ1dGUgbXVzdCBiZSBjb21waWxlZCBpbnRvIGEgZnVuY3Rpb24gYXMg
dGhlIGNvcnJlc3BvbmRpbmcgcHJvcGVydHkgCiBQQVNTIG9ubG9hZGVkbWV0YWRhdGE6IHRoZSBj
b250ZW50IGF0dHJpYnV0ZSBtdXN0IGV4ZWN1dGUgd2hlbiBhbiBldmVudCBpcyBkaXNwYXRjaGVk
IAogUEFTUyBvbmxvYWRlZG1ldGFkYXRhOiBkaXNwYXRjaGluZyBhbiBFdmVudCBhdCBhIDxtZXRh
PiBlbGVtZW50IG11c3QgdHJpZ2dlciBlbGVtZW50Lm9ubG9hZGVkbWV0YWRhdGEgCi1GQUlMIG9u
bG9hZGVuZDogbXVzdCBiZSBvbiB0aGUgYXBwcm9wcmlhdGUgbG9jYXRpb25zIGZvciBHbG9iYWxF
dmVudEhhbmRsZXJzIGFzc2VydF90cnVlOiBXaW5kb3cgaGFzIGFuIG93biBwcm9wZXJ0eSBuYW1l
ZCAib25sb2FkZW5kIiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBvbmxvYWRlbmQ6IHRo
ZSBkZWZhdWx0IHZhbHVlIG11c3QgYmUgbnVsbCBhc3NlcnRfZXF1YWxzOiBUaGUgZGVmYXVsdCB2
YWx1ZSBvZiB0aGUgcHJvcGVydHkgaXMgbnVsbCBmb3IgYSBXaW5kb3cgaW5zdGFuY2UgZXhwZWN0
ZWQgKG9iamVjdCkgbnVsbCBidXQgZ290ICh1bmRlZmluZWQpIHVuZGVmaW5lZAotRkFJTCBvbmxv
YWRlbmQ6IHRoZSBjb250ZW50IGF0dHJpYnV0ZSBtdXN0IGJlIGNvbXBpbGVkIGludG8gYSBmdW5j
dGlvbiBhcyB0aGUgY29ycmVzcG9uZGluZyBwcm9wZXJ0eSBhc3NlcnRfZXF1YWxzOiBUaGUgb25s
b2FkZW5kIHByb3BlcnR5IG11c3QgYmUgYSBmdW5jdGlvbiBleHBlY3RlZCAiZnVuY3Rpb24iIGJ1
dCBnb3QgInVuZGVmaW5lZCIKLUZBSUwgb25sb2FkZW5kOiB0aGUgY29udGVudCBhdHRyaWJ1dGUg
bXVzdCBleGVjdXRlIHdoZW4gYW4gZXZlbnQgaXMgZGlzcGF0Y2hlZCBhc3NlcnRfdHJ1ZTogRGlz
cGF0Y2hpbmcgYW4gZXZlbnQgbXVzdCBydW4gdGhlIGNvZGUgZXhwZWN0ZWQgdHJ1ZSBnb3QgdW5k
ZWZpbmVkCi1QQVNTIG9ubG9hZGVuZDogZGlzcGF0Y2hpbmcgYW4gRXZlbnQgYXQgYSA8bWV0YT4g
ZWxlbWVudCBtdXN0IHRyaWdnZXIgZWxlbWVudC5vbmxvYWRlbmQgCiBQQVNTIG9ubG9hZHN0YXJ0
OiBtdXN0IGJlIG9uIHRoZSBhcHByb3ByaWF0ZSBsb2NhdGlvbnMgZm9yIEdsb2JhbEV2ZW50SGFu
ZGxlcnMgCiBQQVNTIG9ubG9hZHN0YXJ0OiB0aGUgZGVmYXVsdCB2YWx1ZSBtdXN0IGJlIG51bGwg
CiBQQVNTIG9ubG9hZHN0YXJ0OiB0aGUgY29udGVudCBhdHRyaWJ1dGUgbXVzdCBiZSBjb21waWxl
ZCBpbnRvIGEgZnVuY3Rpb24gYXMgdGhlIGNvcnJlc3BvbmRpbmcgcHJvcGVydHkgCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ludGVyZmFj
ZXMvU1ZHLmlkbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aW50ZXJmYWNlcy9TVkcuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk3ODcxYzJmMDIzMDM5Nzg4ZDczNzliZDE5
NjhmNzVkYzNkM2JlZTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ludGVyZmFjZXMvU1ZHLmlkbApAQCAtMCwwICsxLDY3OSBA
QAorLy8gR0VORVJBVEVEIENPTlRFTlQgLSBETyBOT1QgRURJVAorLy8gQ29udGVudCB3YXMgYXV0
b21hdGljYWxseSBleHRyYWN0ZWQgYnkgUmVmZnkgaW50byByZWZmeS1yZXBvcnRzCisvLyAoaHR0
cHM6Ly9naXRodWIuY29tL3RpZG91c3QvcmVmZnktcmVwb3J0cykKKy8vIFNvdXJjZTogU2NhbGFi
bGUgVmVjdG9yIEdyYXBoaWNzIChTVkcpIDIgKGh0dHBzOi8vc3Znd2cub3JnL3N2ZzItZHJhZnQv
KQorCitbRXhwb3NlZD1XaW5kb3ddCitpbnRlcmZhY2UgU1ZHRWxlbWVudCA6IEVsZW1lbnQgewor
CisgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRTdHJpbmcgY2xh
c3NOYW1lOworCisgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdTVkdFbGVtZW50PyBvd25lclNWR0Vs
ZW1lbnQ7CisgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdFbGVtZW50PyB2aWV3cG9ydEVsZW1lbnQ7
Cit9OworCitTVkdFbGVtZW50IGluY2x1ZGVzIEdsb2JhbEV2ZW50SGFuZGxlcnM7CitTVkdFbGVt
ZW50IGluY2x1ZGVzIERvY3VtZW50QW5kRWxlbWVudEV2ZW50SGFuZGxlcnM7CitTVkdFbGVtZW50
IGluY2x1ZGVzIFNWR0VsZW1lbnRJbnN0YW5jZTsKK1NWR0VsZW1lbnQgaW5jbHVkZXMgSFRNTE9y
U1ZHRWxlbWVudDsKKworZGljdGlvbmFyeSBTVkdCb3VuZGluZ0JveE9wdGlvbnMgeworICBib29s
ZWFuIGZpbGwgPSB0cnVlOworICBib29sZWFuIHN0cm9rZSA9IGZhbHNlOworICBib29sZWFuIG1h
cmtlcnMgPSBmYWxzZTsKKyAgYm9vbGVhbiBjbGlwcGVkID0gZmFsc2U7Cit9OworCitpbnRlcmZh
Y2UgU1ZHR3JhcGhpY3NFbGVtZW50IDogU1ZHRWxlbWVudCB7CisgIFtTYW1lT2JqZWN0XSByZWFk
b25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0IHRyYW5zZm9ybTsKKworICBE
T01SZWN0IGdldEJCb3gob3B0aW9uYWwgU1ZHQm91bmRpbmdCb3hPcHRpb25zIG9wdGlvbnMpOwor
ICBET01NYXRyaXg/IGdldENUTSgpOworICBET01NYXRyaXg/IGdldFNjcmVlbkNUTSgpOworfTsK
KworU1ZHR3JhcGhpY3NFbGVtZW50IGluY2x1ZGVzIFNWR1Rlc3RzOworCitbRXhwb3NlZD1XaW5k
b3ddCitpbnRlcmZhY2UgU1ZHR2VvbWV0cnlFbGVtZW50IDogU1ZHR3JhcGhpY3NFbGVtZW50IHsK
KyAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZE51bWJlciBwYXRo
TGVuZ3RoOworCisgIGJvb2xlYW4gaXNQb2ludEluRmlsbChvcHRpb25hbCBET01Qb2ludEluaXQg
cG9pbnQpOworICBib29sZWFuIGlzUG9pbnRJblN0cm9rZShvcHRpb25hbCBET01Qb2ludEluaXQg
cG9pbnQpOworICBmbG9hdCBnZXRUb3RhbExlbmd0aCgpOworICBET01Qb2ludCBnZXRQb2ludEF0
TGVuZ3RoKGZsb2F0IGRpc3RhbmNlKTsKK307CisKK1tFeHBvc2VkPVdpbmRvd10KK2ludGVyZmFj
ZSBTVkdOdW1iZXIgeworICBhdHRyaWJ1dGUgZmxvYXQgdmFsdWU7Cit9OworCitbRXhwb3NlZD1X
aW5kb3ddCitpbnRlcmZhY2UgU1ZHTGVuZ3RoIHsKKworICAvLyBMZW5ndGggVW5pdCBUeXBlcwor
ICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfTEVOR1RIVFlQRV9VTktOT1dOID0gMDsKKyAgY29u
c3QgdW5zaWduZWQgc2hvcnQgU1ZHX0xFTkdUSFRZUEVfTlVNQkVSID0gMTsKKyAgY29uc3QgdW5z
aWduZWQgc2hvcnQgU1ZHX0xFTkdUSFRZUEVfUEVSQ0VOVEFHRSA9IDI7CisgIGNvbnN0IHVuc2ln
bmVkIHNob3J0IFNWR19MRU5HVEhUWVBFX0VNUyA9IDM7CisgIGNvbnN0IHVuc2lnbmVkIHNob3J0
IFNWR19MRU5HVEhUWVBFX0VYUyA9IDQ7CisgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19MRU5H
VEhUWVBFX1BYID0gNTsKKyAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX0xFTkdUSFRZUEVfQ00g
PSA2OworICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfTEVOR1RIVFlQRV9NTSA9IDc7CisgIGNv
bnN0IHVuc2lnbmVkIHNob3J0IFNWR19MRU5HVEhUWVBFX0lOID0gODsKKyAgY29uc3QgdW5zaWdu
ZWQgc2hvcnQgU1ZHX0xFTkdUSFRZUEVfUFQgPSA5OworICBjb25zdCB1bnNpZ25lZCBzaG9ydCBT
VkdfTEVOR1RIVFlQRV9QQyA9IDEwOworCisgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBz
aG9ydCB1bml0VHlwZTsKKyAgICAgICAgICAgYXR0cmlidXRlIGZsb2F0IHZhbHVlOworICAgICAg
ICAgICBhdHRyaWJ1dGUgZmxvYXQgdmFsdWVJblNwZWNpZmllZFVuaXRzOworICAgICAgICAgICBh
dHRyaWJ1dGUgRE9NU3RyaW5nIHZhbHVlQXNTdHJpbmc7CisKKyAgdm9pZCBuZXdWYWx1ZVNwZWNp
ZmllZFVuaXRzKHVuc2lnbmVkIHNob3J0IHVuaXRUeXBlLCBmbG9hdCB2YWx1ZUluU3BlY2lmaWVk
VW5pdHMpOworICB2b2lkIGNvbnZlcnRUb1NwZWNpZmllZFVuaXRzKHVuc2lnbmVkIHNob3J0IHVu
aXRUeXBlKTsKK307CisKK1tFeHBvc2VkPVdpbmRvd10KK2ludGVyZmFjZSBTVkdBbmdsZSB7CisK
KyAgLy8gQW5nbGUgVW5pdCBUeXBlcworICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfQU5HTEVU
WVBFX1VOS05PV04gPSAwOworICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfQU5HTEVUWVBFX1VO
U1BFQ0lGSUVEID0gMTsKKyAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX0FOR0xFVFlQRV9ERUcg
PSAyOworICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfQU5HTEVUWVBFX1JBRCA9IDM7CisgIGNv
bnN0IHVuc2lnbmVkIHNob3J0IFNWR19BTkdMRVRZUEVfR1JBRCA9IDQ7CisKKyAgcmVhZG9ubHkg
YXR0cmlidXRlIHVuc2lnbmVkIHNob3J0IHVuaXRUeXBlOworICAgICAgICAgICBhdHRyaWJ1dGUg
ZmxvYXQgdmFsdWU7CisgICAgICAgICAgIGF0dHJpYnV0ZSBmbG9hdCB2YWx1ZUluU3BlY2lmaWVk
VW5pdHM7CisgICAgICAgICAgIGF0dHJpYnV0ZSBET01TdHJpbmcgdmFsdWVBc1N0cmluZzsKKwor
ICB2b2lkIG5ld1ZhbHVlU3BlY2lmaWVkVW5pdHModW5zaWduZWQgc2hvcnQgdW5pdFR5cGUsIGZs
b2F0IHZhbHVlSW5TcGVjaWZpZWRVbml0cyk7CisgIHZvaWQgY29udmVydFRvU3BlY2lmaWVkVW5p
dHModW5zaWduZWQgc2hvcnQgdW5pdFR5cGUpOworfTsKKworW0V4cG9zZWQ9V2luZG93XQoraW50
ZXJmYWNlIFNWR051bWJlckxpc3QgeworCisgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBs
b25nIGxlbmd0aDsKKyAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbnVtYmVyT2ZJ
dGVtczsKKworICB2b2lkIGNsZWFyKCk7CisgIFNWR051bWJlciBpbml0aWFsaXplKFNWR051bWJl
ciBuZXdJdGVtKTsKKyAgZ2V0dGVyIFNWR051bWJlciBnZXRJdGVtKHVuc2lnbmVkIGxvbmcgaW5k
ZXgpOworICBTVkdOdW1iZXIgaW5zZXJ0SXRlbUJlZm9yZShTVkdOdW1iZXIgbmV3SXRlbSwgdW5z
aWduZWQgbG9uZyBpbmRleCk7CisgIFNWR051bWJlciByZXBsYWNlSXRlbShTVkdOdW1iZXIgbmV3
SXRlbSwgdW5zaWduZWQgbG9uZyBpbmRleCk7CisgIFNWR051bWJlciByZW1vdmVJdGVtKHVuc2ln
bmVkIGxvbmcgaW5kZXgpOworICBTVkdOdW1iZXIgYXBwZW5kSXRlbShTVkdOdW1iZXIgbmV3SXRl
bSk7CisgIHNldHRlciB2b2lkICh1bnNpZ25lZCBsb25nIGluZGV4LCBTVkdOdW1iZXIgbmV3SXRl
bSk7Cit9OworCitbRXhwb3NlZD1XaW5kb3ddCitpbnRlcmZhY2UgU1ZHTGVuZ3RoTGlzdCB7CisK
KyAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbGVuZ3RoOworICByZWFkb25seSBh
dHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBudW1iZXJPZkl0ZW1zOworCisgIHZvaWQgY2xlYXIoKTsK
KyAgU1ZHTGVuZ3RoIGluaXRpYWxpemUoU1ZHTGVuZ3RoIG5ld0l0ZW0pOworICBnZXR0ZXIgU1ZH
TGVuZ3RoIGdldEl0ZW0odW5zaWduZWQgbG9uZyBpbmRleCk7CisgIFNWR0xlbmd0aCBpbnNlcnRJ
dGVtQmVmb3JlKFNWR0xlbmd0aCBuZXdJdGVtLCB1bnNpZ25lZCBsb25nIGluZGV4KTsKKyAgU1ZH
TGVuZ3RoIHJlcGxhY2VJdGVtKFNWR0xlbmd0aCBuZXdJdGVtLCB1bnNpZ25lZCBsb25nIGluZGV4
KTsKKyAgU1ZHTGVuZ3RoIHJlbW92ZUl0ZW0odW5zaWduZWQgbG9uZyBpbmRleCk7CisgIFNWR0xl
bmd0aCBhcHBlbmRJdGVtKFNWR0xlbmd0aCBuZXdJdGVtKTsKKyAgc2V0dGVyIHZvaWQgKHVuc2ln
bmVkIGxvbmcgaW5kZXgsIFNWR0xlbmd0aCBuZXdJdGVtKTsKK307CisKK1tFeHBvc2VkPVdpbmRv
d10KK2ludGVyZmFjZSBTVkdTdHJpbmdMaXN0IHsKKworICByZWFkb25seSBhdHRyaWJ1dGUgdW5z
aWduZWQgbG9uZyBsZW5ndGg7CisgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIG51
bWJlck9mSXRlbXM7CisKKyAgdm9pZCBjbGVhcigpOworICBET01TdHJpbmcgaW5pdGlhbGl6ZShE
T01TdHJpbmcgbmV3SXRlbSk7CisgIGdldHRlciBET01TdHJpbmcgZ2V0SXRlbSh1bnNpZ25lZCBs
b25nIGluZGV4KTsKKyAgRE9NU3RyaW5nIGluc2VydEl0ZW1CZWZvcmUoRE9NU3RyaW5nIG5ld0l0
ZW0sIHVuc2lnbmVkIGxvbmcgaW5kZXgpOworICBET01TdHJpbmcgcmVwbGFjZUl0ZW0oRE9NU3Ry
aW5nIG5ld0l0ZW0sIHVuc2lnbmVkIGxvbmcgaW5kZXgpOworICBET01TdHJpbmcgcmVtb3ZlSXRl
bSh1bnNpZ25lZCBsb25nIGluZGV4KTsKKyAgRE9NU3RyaW5nIGFwcGVuZEl0ZW0oRE9NU3RyaW5n
IG5ld0l0ZW0pOworICBzZXR0ZXIgdm9pZCAodW5zaWduZWQgbG9uZyBpbmRleCwgRE9NU3RyaW5n
IG5ld0l0ZW0pOworfTsKKworW0V4cG9zZWQ9V2luZG93XQoraW50ZXJmYWNlIFNWR0FuaW1hdGVk
Qm9vbGVhbiB7CisgICAgICAgICAgIGF0dHJpYnV0ZSBib29sZWFuIGJhc2VWYWw7CisgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBib29sZWFuIGFuaW1WYWw7Cit9OworCitbRXhwb3NlZD1XaW5kb3ddCitp
bnRlcmZhY2UgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbiB7CisgICAgICAgICAgIGF0dHJpYnV0ZSB1
bnNpZ25lZCBzaG9ydCBiYXNlVmFsOworICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgc2hv
cnQgYW5pbVZhbDsKK307CisKK1tFeHBvc2VkPVdpbmRvd10KK2ludGVyZmFjZSBTVkdBbmltYXRl
ZEludGVnZXIgeworICAgICAgICAgICBhdHRyaWJ1dGUgbG9uZyBiYXNlVmFsOworICByZWFkb25s
eSBhdHRyaWJ1dGUgbG9uZyBhbmltVmFsOworfTsKKworW0V4cG9zZWQ9V2luZG93XQoraW50ZXJm
YWNlIFNWR0FuaW1hdGVkTnVtYmVyIHsKKyAgICAgICAgICAgYXR0cmlidXRlIGZsb2F0IGJhc2VW
YWw7CisgIHJlYWRvbmx5IGF0dHJpYnV0ZSBmbG9hdCBhbmltVmFsOworfTsKKworW0V4cG9zZWQ9
V2luZG93XQoraW50ZXJmYWNlIFNWR0FuaW1hdGVkTGVuZ3RoIHsKKyAgW1NhbWVPYmplY3RdIHJl
YWRvbmx5IGF0dHJpYnV0ZSBTVkdMZW5ndGggYmFzZVZhbDsKKyAgW1NhbWVPYmplY3RdIHJlYWRv
bmx5IGF0dHJpYnV0ZSBTVkdMZW5ndGggYW5pbVZhbDsKK307CisKK1tFeHBvc2VkPVdpbmRvd10K
K2ludGVyZmFjZSBTVkdBbmltYXRlZEFuZ2xlIHsKKyAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0
dHJpYnV0ZSBTVkdBbmdsZSBiYXNlVmFsOworICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmli
dXRlIFNWR0FuZ2xlIGFuaW1WYWw7Cit9OworCitbRXhwb3NlZD1XaW5kb3ddCitpbnRlcmZhY2Ug
U1ZHQW5pbWF0ZWRTdHJpbmcgeworICAgICAgICAgICBhdHRyaWJ1dGUgRE9NU3RyaW5nIGJhc2VW
YWw7CisgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgYW5pbVZhbDsKK307CisKK1tFeHBv
c2VkPVdpbmRvd10KK2ludGVyZmFjZSBTVkdBbmltYXRlZFJlY3QgeworICBbU2FtZU9iamVjdF0g
cmVhZG9ubHkgYXR0cmlidXRlIERPTVJlY3QgYmFzZVZhbDsKKyAgW1NhbWVPYmplY3RdIHJlYWRv
bmx5IGF0dHJpYnV0ZSBET01SZWN0UmVhZE9ubHkgYW5pbVZhbDsKK307CisKK1tFeHBvc2VkPVdp
bmRvd10KK2ludGVyZmFjZSBTVkdBbmltYXRlZE51bWJlckxpc3QgeworICBbU2FtZU9iamVjdF0g
cmVhZG9ubHkgYXR0cmlidXRlIFNWR051bWJlckxpc3QgYmFzZVZhbDsKKyAgW1NhbWVPYmplY3Rd
IHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdOdW1iZXJMaXN0IGFuaW1WYWw7Cit9OworCitbRXhwb3Nl
ZD1XaW5kb3ddCitpbnRlcmZhY2UgU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0IHsKKyAgW1NhbWVPYmpl
Y3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdMZW5ndGhMaXN0IGJhc2VWYWw7CisgIFtTYW1lT2Jq
ZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgU1ZHTGVuZ3RoTGlzdCBhbmltVmFsOworfTsKKworW0V4
cG9zZWQ9V2luZG93XQoraW50ZXJmYWNlIFNWR1VuaXRUeXBlcyB7CisgIC8vIFVuaXQgVHlwZXMK
KyAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX1VOSVRfVFlQRV9VTktOT1dOID0gMDsKKyAgY29u
c3QgdW5zaWduZWQgc2hvcnQgU1ZHX1VOSVRfVFlQRV9VU0VSU1BBQ0VPTlVTRSA9IDE7CisgIGNv
bnN0IHVuc2lnbmVkIHNob3J0IFNWR19VTklUX1RZUEVfT0JKRUNUQk9VTkRJTkdCT1ggPSAyOwor
fTsKKworaW50ZXJmYWNlIG1peGluIFNWR1Rlc3RzIHsKKyAgW1NhbWVPYmplY3RdIHJlYWRvbmx5
IGF0dHJpYnV0ZSBTVkdTdHJpbmdMaXN0IHJlcXVpcmVkRXh0ZW5zaW9uczsKKyAgW1NhbWVPYmpl
Y3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdTdHJpbmdMaXN0IHN5c3RlbUxhbmd1YWdlOworfTsK
KworaW50ZXJmYWNlIG1peGluIFNWR0ZpdFRvVmlld0JveCB7CisgIFtTYW1lT2JqZWN0XSByZWFk
b25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRSZWN0IHZpZXdCb3g7CisgIFtTYW1lT2JqZWN0XSBy
ZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvIHByZXNlcnZl
QXNwZWN0UmF0aW87Cit9OworCitpbnRlcmZhY2UgbWl4aW4gU1ZHVVJJUmVmZXJlbmNlIHsKKyAg
W1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZFN0cmluZyBocmVmOwor
fTsKKworcGFydGlhbCBpbnRlcmZhY2UgRG9jdW1lbnQgeworICByZWFkb25seSBhdHRyaWJ1dGUg
U1ZHU1ZHRWxlbWVudD8gcm9vdEVsZW1lbnQ7Cit9OworCitbRXhwb3NlZD1XaW5kb3ddCitpbnRl
cmZhY2UgU1ZHU1ZHRWxlbWVudCA6IFNWR0dyYXBoaWNzRWxlbWVudCB7CisKKyAgW1NhbWVPYmpl
Y3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZExlbmd0aCB4OworICBbU2FtZU9iamVj
dF0gcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTGVuZ3RoIHk7CisgIFtTYW1lT2JqZWN0
XSByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRMZW5ndGggd2lkdGg7CisgIFtTYW1lT2Jq
ZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRMZW5ndGggaGVpZ2h0OworCisgIGF0
dHJpYnV0ZSBmbG9hdCBjdXJyZW50U2NhbGU7CisgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRy
aWJ1dGUgRE9NUG9pbnRSZWFkT25seSBjdXJyZW50VHJhbnNsYXRlOworCisgIE5vZGVMaXN0IGdl
dEludGVyc2VjdGlvbkxpc3QoRE9NUmVjdFJlYWRPbmx5IHJlY3QsIFNWR0VsZW1lbnQ/IHJlZmVy
ZW5jZUVsZW1lbnQpOworICBOb2RlTGlzdCBnZXRFbmNsb3N1cmVMaXN0KERPTVJlY3RSZWFkT25s
eSByZWN0LCBTVkdFbGVtZW50PyByZWZlcmVuY2VFbGVtZW50KTsKKyAgYm9vbGVhbiBjaGVja0lu
dGVyc2VjdGlvbihTVkdFbGVtZW50IGVsZW1lbnQsIERPTVJlY3RSZWFkT25seSByZWN0KTsKKyAg
Ym9vbGVhbiBjaGVja0VuY2xvc3VyZShTVkdFbGVtZW50IGVsZW1lbnQsIERPTVJlY3RSZWFkT25s
eSByZWN0KTsKKworICB2b2lkIGRlc2VsZWN0QWxsKCk7CisKKyAgU1ZHTnVtYmVyIGNyZWF0ZVNW
R051bWJlcigpOworICBTVkdMZW5ndGggY3JlYXRlU1ZHTGVuZ3RoKCk7CisgIFNWR0FuZ2xlIGNy
ZWF0ZVNWR0FuZ2xlKCk7CisgIERPTVBvaW50IGNyZWF0ZVNWR1BvaW50KCk7CisgIERPTU1hdHJp
eCBjcmVhdGVTVkdNYXRyaXgoKTsKKyAgRE9NUmVjdCBjcmVhdGVTVkdSZWN0KCk7CisgIFNWR1Ry
YW5zZm9ybSBjcmVhdGVTVkdUcmFuc2Zvcm0oKTsKKyAgU1ZHVHJhbnNmb3JtIGNyZWF0ZVNWR1Ry
YW5zZm9ybUZyb21NYXRyaXgob3B0aW9uYWwgRE9NTWF0cml4MkRJbml0IG1hdHJpeCk7CisKKyAg
RWxlbWVudCBnZXRFbGVtZW50QnlJZChET01TdHJpbmcgZWxlbWVudElkKTsKKworICAvLyBEZXBy
ZWNhdGVkIG1ldGhvZHMgdGhhdCBoYXZlIG5vIGVmZmVjdCB3aGVuIGNhbGxlZCwKKyAgLy8gYnV0
IHdoaWNoIGFyZSBrZXB0IGZvciBjb21wYXRpYmlsaXR5IHJlYXNvbnMuCisgIHVuc2lnbmVkIGxv
bmcgc3VzcGVuZFJlZHJhdyh1bnNpZ25lZCBsb25nIG1heFdhaXRNaWxsaXNlY29uZHMpOworICB2
b2lkIHVuc3VzcGVuZFJlZHJhdyh1bnNpZ25lZCBsb25nIHN1c3BlbmRIYW5kbGVJRCk7CisgIHZv
aWQgdW5zdXNwZW5kUmVkcmF3QWxsKCk7CisgIHZvaWQgZm9yY2VSZWRyYXcoKTsKK307CisKK1NW
R1NWR0VsZW1lbnQgaW5jbHVkZXMgU1ZHRml0VG9WaWV3Qm94OworU1ZHU1ZHRWxlbWVudCBpbmNs
dWRlcyBXaW5kb3dFdmVudEhhbmRsZXJzOworCitbRXhwb3NlZD1XaW5kb3ddCitpbnRlcmZhY2Ug
U1ZHR0VsZW1lbnQgOiBTVkdHcmFwaGljc0VsZW1lbnQgeworfTsKKworW0V4cG9zZWQ9V2luZG93
XQoraW50ZXJmYWNlIFNWR0RlZnNFbGVtZW50IDogU1ZHR3JhcGhpY3NFbGVtZW50IHsKK307CisK
K1tFeHBvc2VkPVdpbmRvd10KK2ludGVyZmFjZSBTVkdEZXNjRWxlbWVudCA6IFNWR0VsZW1lbnQg
eworfTsKKworW0V4cG9zZWQ9V2luZG93XQoraW50ZXJmYWNlIFNWR01ldGFkYXRhRWxlbWVudCA6
IFNWR0VsZW1lbnQgeworfTsKKworW0V4cG9zZWQ9V2luZG93XQoraW50ZXJmYWNlIFNWR1RpdGxl
RWxlbWVudCA6IFNWR0VsZW1lbnQgeworfTsKKworW0V4cG9zZWQ9V2luZG93XQoraW50ZXJmYWNl
IFNWR1N5bWJvbEVsZW1lbnQgOiBTVkdHcmFwaGljc0VsZW1lbnQgeworfTsKKworU1ZHU3ltYm9s
RWxlbWVudCBpbmNsdWRlcyBTVkdGaXRUb1ZpZXdCb3g7CisKK1tFeHBvc2VkPVdpbmRvd10KK2lu
dGVyZmFjZSBTVkdVc2VFbGVtZW50IDogU1ZHR3JhcGhpY3NFbGVtZW50IHsKKyAgW1NhbWVPYmpl
Y3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZExlbmd0aCB4OworICBbU2FtZU9iamVj
dF0gcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTGVuZ3RoIHk7CisgIFtTYW1lT2JqZWN0
XSByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRMZW5ndGggd2lkdGg7CisgIFtTYW1lT2Jq
ZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRMZW5ndGggaGVpZ2h0OworICBbU2Ft
ZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIFNWR0VsZW1lbnQ/IGluc3RhbmNlUm9vdDsKKyAg
W1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdFbGVtZW50PyBhbmltYXRlZEluc3Rh
bmNlUm9vdDsKK307CisKK1NWR1VzZUVsZW1lbnQgaW5jbHVkZXMgU1ZHVVJJUmVmZXJlbmNlOwor
CitbRXhwb3NlZD1XaW5kb3ddCitpbnRlcmZhY2UgU1ZHVXNlRWxlbWVudFNoYWRvd1Jvb3QgOiBT
aGFkb3dSb290IHsKK307CisKK2ludGVyZmFjZSBtaXhpbiBTVkdFbGVtZW50SW5zdGFuY2Ugewor
ICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIFNWR0VsZW1lbnQ/IGNvcnJlc3BvbmRp
bmdFbGVtZW50OworICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIFNWR1VzZUVsZW1l
bnQ/IGNvcnJlc3BvbmRpbmdVc2VFbGVtZW50OworfTsKKworW0NvbnN0cnVjdG9yKEFuaW1hdGlv
biBzb3VyY2UsIEFuaW1hdGFibGUgbmV3VGFyZ2V0KSwgRXhwb3NlZD1XaW5kb3ddCitpbnRlcmZh
Y2UgU2hhZG93QW5pbWF0aW9uIDogQW5pbWF0aW9uIHsKKyAgW1NhbWVPYmplY3RdIHJlYWRvbmx5
IGF0dHJpYnV0ZSBBbmltYXRpb24gc291cmNlQW5pbWF0aW9uOworfTsKKworW0V4cG9zZWQ9V2lu
ZG93XQoraW50ZXJmYWNlIFNWR1N3aXRjaEVsZW1lbnQgOiBTVkdHcmFwaGljc0VsZW1lbnQgewor
fTsKKworaW50ZXJmYWNlIG1peGluIEdldFNWR0RvY3VtZW50IHsKKyAgRG9jdW1lbnQgZ2V0U1ZH
RG9jdW1lbnQoKTsKK307CisKK1tFeHBvc2VkPVdpbmRvd10KK2ludGVyZmFjZSBTVkdTdHlsZUVs
ZW1lbnQgOiBTVkdFbGVtZW50IHsKKyAgYXR0cmlidXRlIERPTVN0cmluZyB0eXBlOworICBhdHRy
aWJ1dGUgRE9NU3RyaW5nIG1lZGlhOworICBhdHRyaWJ1dGUgRE9NU3RyaW5nIHRpdGxlOworfTsK
KworU1ZHU3R5bGVFbGVtZW50IGluY2x1ZGVzIExpbmtTdHlsZTsKKworW0V4cG9zZWQ9V2luZG93
XQoraW50ZXJmYWNlIFNWR1RyYW5zZm9ybSB7CisKKyAgLy8gVHJhbnNmb3JtIFR5cGVzCisgIGNv
bnN0IHVuc2lnbmVkIHNob3J0IFNWR19UUkFOU0ZPUk1fVU5LTk9XTiA9IDA7CisgIGNvbnN0IHVu
c2lnbmVkIHNob3J0IFNWR19UUkFOU0ZPUk1fTUFUUklYID0gMTsKKyAgY29uc3QgdW5zaWduZWQg
c2hvcnQgU1ZHX1RSQU5TRk9STV9UUkFOU0xBVEUgPSAyOworICBjb25zdCB1bnNpZ25lZCBzaG9y
dCBTVkdfVFJBTlNGT1JNX1NDQUxFID0gMzsKKyAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX1RS
QU5TRk9STV9ST1RBVEUgPSA0OworICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfVFJBTlNGT1JN
X1NLRVdYID0gNTsKKyAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX1RSQU5TRk9STV9TS0VXWSA9
IDY7CisKKyAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIHNob3J0IHR5cGU7CisgIFtTYW1l
T2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgRE9NTWF0cml4IG1hdHJpeDsKKyAgcmVhZG9ubHkg
YXR0cmlidXRlIGZsb2F0IGFuZ2xlOworCisgIHZvaWQgc2V0TWF0cml4KG9wdGlvbmFsIERPTU1h
dHJpeDJESW5pdCBtYXRyaXgpOworICB2b2lkIHNldFRyYW5zbGF0ZShmbG9hdCB0eCwgZmxvYXQg
dHkpOworICB2b2lkIHNldFNjYWxlKGZsb2F0IHN4LCBmbG9hdCBzeSk7CisgIHZvaWQgc2V0Um90
YXRlKGZsb2F0IGFuZ2xlLCBmbG9hdCBjeCwgZmxvYXQgY3kpOworICB2b2lkIHNldFNrZXdYKGZs
b2F0IGFuZ2xlKTsKKyAgdm9pZCBzZXRTa2V3WShmbG9hdCBhbmdsZSk7Cit9OworCitbRXhwb3Nl
ZD1XaW5kb3ddCitpbnRlcmZhY2UgU1ZHVHJhbnNmb3JtTGlzdCB7CisKKyAgcmVhZG9ubHkgYXR0
cmlidXRlIHVuc2lnbmVkIGxvbmcgbGVuZ3RoOworICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWdu
ZWQgbG9uZyBudW1iZXJPZkl0ZW1zOworCisgIHZvaWQgY2xlYXIoKTsKKyAgU1ZHVHJhbnNmb3Jt
IGluaXRpYWxpemUoU1ZHVHJhbnNmb3JtIG5ld0l0ZW0pOworICBnZXR0ZXIgU1ZHVHJhbnNmb3Jt
IGdldEl0ZW0odW5zaWduZWQgbG9uZyBpbmRleCk7CisgIFNWR1RyYW5zZm9ybSBpbnNlcnRJdGVt
QmVmb3JlKFNWR1RyYW5zZm9ybSBuZXdJdGVtLCB1bnNpZ25lZCBsb25nIGluZGV4KTsKKyAgU1ZH
VHJhbnNmb3JtIHJlcGxhY2VJdGVtKFNWR1RyYW5zZm9ybSBuZXdJdGVtLCB1bnNpZ25lZCBsb25n
IGluZGV4KTsKKyAgU1ZHVHJhbnNmb3JtIHJlbW92ZUl0ZW0odW5zaWduZWQgbG9uZyBpbmRleCk7
CisgIFNWR1RyYW5zZm9ybSBhcHBlbmRJdGVtKFNWR1RyYW5zZm9ybSBuZXdJdGVtKTsKKyAgc2V0
dGVyIHZvaWQgKHVuc2lnbmVkIGxvbmcgaW5kZXgsIFNWR1RyYW5zZm9ybSBuZXdJdGVtKTsKKwor
ICAvLyBBZGRpdGlvbmFsIG1ldGhvZHMgbm90IGNvbW1vbiB0byBvdGhlciBsaXN0IGludGVyZmFj
ZXMuCisgIFNWR1RyYW5zZm9ybSBjcmVhdGVTVkdUcmFuc2Zvcm1Gcm9tTWF0cml4KG9wdGlvbmFs
IERPTU1hdHJpeDJESW5pdCBtYXRyaXgpOworICBTVkdUcmFuc2Zvcm0/IGNvbnNvbGlkYXRlKCk7
Cit9OworCitbRXhwb3NlZD1XaW5kb3ddCitpbnRlcmZhY2UgU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1M
aXN0IHsKKyAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdUcmFuc2Zvcm1MaXN0
IGJhc2VWYWw7CisgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgU1ZHVHJhbnNmb3Jt
TGlzdCBhbmltVmFsOworfTsKKworW0V4cG9zZWQ9V2luZG93XQoraW50ZXJmYWNlIFNWR1ByZXNl
cnZlQXNwZWN0UmF0aW8geworCisgIC8vIEFsaWdubWVudCBUeXBlcworICBjb25zdCB1bnNpZ25l
ZCBzaG9ydCBTVkdfUFJFU0VSVkVBU1BFQ1RSQVRJT19VTktOT1dOID0gMDsKKyAgY29uc3QgdW5z
aWduZWQgc2hvcnQgU1ZHX1BSRVNFUlZFQVNQRUNUUkFUSU9fTk9ORSA9IDE7CisgIGNvbnN0IHVu
c2lnbmVkIHNob3J0IFNWR19QUkVTRVJWRUFTUEVDVFJBVElPX1hNSU5ZTUlOID0gMjsKKyAgY29u
c3QgdW5zaWduZWQgc2hvcnQgU1ZHX1BSRVNFUlZFQVNQRUNUUkFUSU9fWE1JRFlNSU4gPSAzOwor
ICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfUFJFU0VSVkVBU1BFQ1RSQVRJT19YTUFYWU1JTiA9
IDQ7CisgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19QUkVTRVJWRUFTUEVDVFJBVElPX1hNSU5Z
TUlEID0gNTsKKyAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX1BSRVNFUlZFQVNQRUNUUkFUSU9f
WE1JRFlNSUQgPSA2OworICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfUFJFU0VSVkVBU1BFQ1RS
QVRJT19YTUFYWU1JRCA9IDc7CisgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19QUkVTRVJWRUFT
UEVDVFJBVElPX1hNSU5ZTUFYID0gODsKKyAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX1BSRVNF
UlZFQVNQRUNUUkFUSU9fWE1JRFlNQVggPSA5OworICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdf
UFJFU0VSVkVBU1BFQ1RSQVRJT19YTUFYWU1BWCA9IDEwOworCisgIC8vIE1lZXQtb3Itc2xpY2Ug
VHlwZXMKKyAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX01FRVRPUlNMSUNFX1VOS05PV04gPSAw
OworICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfTUVFVE9SU0xJQ0VfTUVFVCA9IDE7CisgIGNv
bnN0IHVuc2lnbmVkIHNob3J0IFNWR19NRUVUT1JTTElDRV9TTElDRSA9IDI7CisKKyAgYXR0cmli
dXRlIHVuc2lnbmVkIHNob3J0IGFsaWduOworICBhdHRyaWJ1dGUgdW5zaWduZWQgc2hvcnQgbWVl
dE9yU2xpY2U7Cit9OworCitbRXhwb3NlZD1XaW5kb3ddCitpbnRlcmZhY2UgU1ZHQW5pbWF0ZWRQ
cmVzZXJ2ZUFzcGVjdFJhdGlvIHsKKyAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBT
VkdQcmVzZXJ2ZUFzcGVjdFJhdGlvIGJhc2VWYWw7CisgIFtTYW1lT2JqZWN0XSByZWFkb25seSBh
dHRyaWJ1dGUgU1ZHUHJlc2VydmVBc3BlY3RSYXRpbyBhbmltVmFsOworfTsKKworW0V4cG9zZWQ9
V2luZG93XQoraW50ZXJmYWNlIFNWR1BhdGhFbGVtZW50IDogU1ZHR2VvbWV0cnlFbGVtZW50IHsK
K307CisKK1tFeHBvc2VkPVdpbmRvd10KK2ludGVyZmFjZSBTVkdSZWN0RWxlbWVudCA6IFNWR0dl
b21ldHJ5RWxlbWVudCB7CisgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5p
bWF0ZWRMZW5ndGggeDsKKyAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmlt
YXRlZExlbmd0aCB5OworICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1h
dGVkTGVuZ3RoIHdpZHRoOworICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIFNWR0Fu
aW1hdGVkTGVuZ3RoIGhlaWdodDsKKyAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBT
VkdBbmltYXRlZExlbmd0aCByeDsKKyAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBT
VkdBbmltYXRlZExlbmd0aCByeTsKK307CisKK1tFeHBvc2VkPVdpbmRvd10KK2ludGVyZmFjZSBT
VkdDaXJjbGVFbGVtZW50IDogU1ZHR2VvbWV0cnlFbGVtZW50IHsKKyAgW1NhbWVPYmplY3RdIHJl
YWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZExlbmd0aCBjeDsKKyAgW1NhbWVPYmplY3RdIHJl
YWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZExlbmd0aCBjeTsKKyAgW1NhbWVPYmplY3RdIHJl
YWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZExlbmd0aCByOworfTsKKworW0V4cG9zZWQ9V2lu
ZG93XQoraW50ZXJmYWNlIFNWR0VsbGlwc2VFbGVtZW50IDogU1ZHR2VvbWV0cnlFbGVtZW50IHsK
KyAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZExlbmd0aCBjeDsK
KyAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZExlbmd0aCBjeTsK
KyAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZExlbmd0aCByeDsK
KyAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZExlbmd0aCByeTsK
K307CisKK1tFeHBvc2VkPVdpbmRvd10KK2ludGVyZmFjZSBTVkdMaW5lRWxlbWVudCA6IFNWR0dl
b21ldHJ5RWxlbWVudCB7CisgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5p
bWF0ZWRMZW5ndGggeDE7CisgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5p
bWF0ZWRMZW5ndGggeTE7CisgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5p
bWF0ZWRMZW5ndGggeDI7CisgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5p
bWF0ZWRMZW5ndGggeTI7Cit9OworCitpbnRlcmZhY2UgbWl4aW4gU1ZHQW5pbWF0ZWRQb2ludHMg
eworICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIFNWR1BvaW50TGlzdCBwb2ludHM7
CisgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgU1ZHUG9pbnRMaXN0IGFuaW1hdGVk
UG9pbnRzOworfTsKKworW0V4cG9zZWQ9V2luZG93XQoraW50ZXJmYWNlIFNWR1BvaW50TGlzdCB7
CisKKyAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbGVuZ3RoOworICByZWFkb25s
eSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBudW1iZXJPZkl0ZW1zOworCisgIHZvaWQgY2xlYXIo
KTsKKyAgRE9NUG9pbnQgaW5pdGlhbGl6ZShET01Qb2ludCBuZXdJdGVtKTsKKyAgZ2V0dGVyIERP
TVBvaW50IGdldEl0ZW0odW5zaWduZWQgbG9uZyBpbmRleCk7CisgIERPTVBvaW50IGluc2VydEl0
ZW1CZWZvcmUoRE9NUG9pbnQgbmV3SXRlbSwgdW5zaWduZWQgbG9uZyBpbmRleCk7CisgIERPTVBv
aW50IHJlcGxhY2VJdGVtKERPTVBvaW50IG5ld0l0ZW0sIHVuc2lnbmVkIGxvbmcgaW5kZXgpOwor
ICBET01Qb2ludCByZW1vdmVJdGVtKHVuc2lnbmVkIGxvbmcgaW5kZXgpOworICBET01Qb2ludCBh
cHBlbmRJdGVtKERPTVBvaW50IG5ld0l0ZW0pOworICBzZXR0ZXIgdm9pZCAodW5zaWduZWQgbG9u
ZyBpbmRleCwgRE9NUG9pbnQgbmV3SXRlbSk7Cit9OworCitbRXhwb3NlZD1XaW5kb3ddCitpbnRl
cmZhY2UgU1ZHUG9seWxpbmVFbGVtZW50IDogU1ZHR2VvbWV0cnlFbGVtZW50IHsKK307CisKK1NW
R1BvbHlsaW5lRWxlbWVudCBpbmNsdWRlcyBTVkdBbmltYXRlZFBvaW50czsKKworW0V4cG9zZWQ9
V2luZG93XQoraW50ZXJmYWNlIFNWR1BvbHlnb25FbGVtZW50IDogU1ZHR2VvbWV0cnlFbGVtZW50
IHsKK307CisKK1NWR1BvbHlnb25FbGVtZW50IGluY2x1ZGVzIFNWR0FuaW1hdGVkUG9pbnRzOwor
CitbRXhwb3NlZD1XaW5kb3ddCitpbnRlcmZhY2UgU1ZHVGV4dENvbnRlbnRFbGVtZW50IDogU1ZH
R3JhcGhpY3NFbGVtZW50IHsKKworICAvLyBsZW5ndGhBZGp1c3QgVHlwZXMKKyAgY29uc3QgdW5z
aWduZWQgc2hvcnQgTEVOR1RIQURKVVNUX1VOS05PV04gPSAwOworICBjb25zdCB1bnNpZ25lZCBz
aG9ydCBMRU5HVEhBREpVU1RfU1BBQ0lORyA9IDE7CisgIGNvbnN0IHVuc2lnbmVkIHNob3J0IExF
TkdUSEFESlVTVF9TUEFDSU5HQU5ER0xZUEhTID0gMjsKKworICBbU2FtZU9iamVjdF0gcmVhZG9u
bHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTGVuZ3RoIHRleHRMZW5ndGg7CisgIFtTYW1lT2JqZWN0
XSByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbiBsZW5ndGhBZGp1c3Q7
CisKKyAgbG9uZyBnZXROdW1iZXJPZkNoYXJzKCk7CisgIGZsb2F0IGdldENvbXB1dGVkVGV4dExl
bmd0aCgpOworICBmbG9hdCBnZXRTdWJTdHJpbmdMZW5ndGgodW5zaWduZWQgbG9uZyBjaGFybnVt
LCB1bnNpZ25lZCBsb25nIG5jaGFycyk7CisgIERPTVBvaW50IGdldFN0YXJ0UG9zaXRpb25PZkNo
YXIodW5zaWduZWQgbG9uZyBjaGFybnVtKTsKKyAgRE9NUG9pbnQgZ2V0RW5kUG9zaXRpb25PZkNo
YXIodW5zaWduZWQgbG9uZyBjaGFybnVtKTsKKyAgRE9NUmVjdCBnZXRFeHRlbnRPZkNoYXIodW5z
aWduZWQgbG9uZyBjaGFybnVtKTsKKyAgZmxvYXQgZ2V0Um90YXRpb25PZkNoYXIodW5zaWduZWQg
bG9uZyBjaGFybnVtKTsKKyAgbG9uZyBnZXRDaGFyTnVtQXRQb3NpdGlvbihvcHRpb25hbCBET01Q
b2ludEluaXQgcG9pbnQpOworICB2b2lkIHNlbGVjdFN1YlN0cmluZyh1bnNpZ25lZCBsb25nIGNo
YXJudW0sIHVuc2lnbmVkIGxvbmcgbmNoYXJzKTsKK307CisKK1tFeHBvc2VkPVdpbmRvd10KK2lu
dGVyZmFjZSBTVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50IDogU1ZHVGV4dENvbnRlbnRFbGVtZW50
IHsKKyAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZExlbmd0aExp
c3QgeDsKKyAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZExlbmd0
aExpc3QgeTsKKyAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZExl
bmd0aExpc3QgZHg7CisgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0
ZWRMZW5ndGhMaXN0IGR5OworICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIFNWR0Fu
aW1hdGVkTnVtYmVyTGlzdCByb3RhdGU7Cit9OworCitbRXhwb3NlZD1XaW5kb3ddCitpbnRlcmZh
Y2UgU1ZHVGV4dEVsZW1lbnQgOiBTVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50IHsKK307CisKK1tF
eHBvc2VkPVdpbmRvd10KK2ludGVyZmFjZSBTVkdUU3BhbkVsZW1lbnQgOiBTVkdUZXh0UG9zaXRp
b25pbmdFbGVtZW50IHsKK307CisKK1tFeHBvc2VkPVdpbmRvd10KK2ludGVyZmFjZSBTVkdUZXh0
UGF0aEVsZW1lbnQgOiBTVkdUZXh0Q29udGVudEVsZW1lbnQgeworCisgIC8vIHRleHRQYXRoIE1l
dGhvZCBUeXBlcworICBjb25zdCB1bnNpZ25lZCBzaG9ydCBURVhUUEFUSF9NRVRIT0RUWVBFX1VO
S05PV04gPSAwOworICBjb25zdCB1bnNpZ25lZCBzaG9ydCBURVhUUEFUSF9NRVRIT0RUWVBFX0FM
SUdOID0gMTsKKyAgY29uc3QgdW5zaWduZWQgc2hvcnQgVEVYVFBBVEhfTUVUSE9EVFlQRV9TVFJF
VENIID0gMjsKKworICAvLyB0ZXh0UGF0aCBTcGFjaW5nIFR5cGVzCisgIGNvbnN0IHVuc2lnbmVk
IHNob3J0IFRFWFRQQVRIX1NQQUNJTkdUWVBFX1VOS05PV04gPSAwOworICBjb25zdCB1bnNpZ25l
ZCBzaG9ydCBURVhUUEFUSF9TUEFDSU5HVFlQRV9BVVRPID0gMTsKKyAgY29uc3QgdW5zaWduZWQg
c2hvcnQgVEVYVFBBVEhfU1BBQ0lOR1RZUEVfRVhBQ1QgPSAyOworCisgIFtTYW1lT2JqZWN0XSBy
ZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRMZW5ndGggc3RhcnRPZmZzZXQ7CisgIFtTYW1l
T2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbiBtZXRob2Q7
CisgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlv
biBzcGFjaW5nOworfTsKKworU1ZHVGV4dFBhdGhFbGVtZW50IGluY2x1ZGVzIFNWR1VSSVJlZmVy
ZW5jZTsKKworW0V4cG9zZWQ9V2luZG93XQoraW50ZXJmYWNlIFNWR0ltYWdlRWxlbWVudCA6IFNW
R0dyYXBoaWNzRWxlbWVudCB7CisgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgU1ZH
QW5pbWF0ZWRMZW5ndGggeDsKKyAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdB
bmltYXRlZExlbmd0aCB5OworICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIFNWR0Fu
aW1hdGVkTGVuZ3RoIHdpZHRoOworICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIFNW
R0FuaW1hdGVkTGVuZ3RoIGhlaWdodDsKKyAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0
ZSBTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8gcHJlc2VydmVBc3BlY3RSYXRpbzsKKyAg
YXR0cmlidXRlIERPTVN0cmluZz8gY3Jvc3NPcmlnaW47Cit9OworCitTVkdJbWFnZUVsZW1lbnQg
aW5jbHVkZXMgU1ZHVVJJUmVmZXJlbmNlOworCitbRXhwb3NlZD1XaW5kb3ddCitpbnRlcmZhY2Ug
U1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQgOiBTVkdHcmFwaGljc0VsZW1lbnQgeworICBbU2FtZU9i
amVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTGVuZ3RoIHg7CisgIFtTYW1lT2Jq
ZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRMZW5ndGggeTsKKyAgW1NhbWVPYmpl
Y3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZExlbmd0aCB3aWR0aDsKKyAgW1NhbWVP
YmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZExlbmd0aCBoZWlnaHQ7Cit9Owor
CitbRXhwb3NlZD1XaW5kb3ddCitpbnRlcmZhY2UgU1ZHTWFya2VyRWxlbWVudCA6IFNWR0VsZW1l
bnQgeworCisgIC8vIE1hcmtlciBVbml0IFR5cGVzCisgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNW
R19NQVJLRVJVTklUU19VTktOT1dOID0gMDsKKyAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX01B
UktFUlVOSVRTX1VTRVJTUEFDRU9OVVNFID0gMTsKKyAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZH
X01BUktFUlVOSVRTX1NUUk9LRVdJRFRIID0gMjsKKworICAvLyBNYXJrZXIgT3JpZW50YXRpb24g
VHlwZXMKKyAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX01BUktFUl9PUklFTlRfVU5LTk9XTiA9
IDA7CisgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19NQVJLRVJfT1JJRU5UX0FVVE8gPSAxOwor
ICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfTUFSS0VSX09SSUVOVF9BTkdMRSA9IDI7CisKKyAg
W1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZExlbmd0aCByZWZYOwor
ICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTGVuZ3RoIHJlZlk7
CisgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlv
biBtYXJrZXJVbml0czsKKyAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmlt
YXRlZExlbmd0aCBtYXJrZXJXaWR0aDsKKyAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0
ZSBTVkdBbmltYXRlZExlbmd0aCBtYXJrZXJIZWlnaHQ7CisgIFtTYW1lT2JqZWN0XSByZWFkb25s
eSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbiBvcmllbnRUeXBlOworICBbU2FtZU9i
amVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkQW5nbGUgb3JpZW50QW5nbGU7Cisg
IGF0dHJpYnV0ZSBET01TdHJpbmcgb3JpZW50OworCisgIHZvaWQgc2V0T3JpZW50VG9BdXRvKCk7
CisgIHZvaWQgc2V0T3JpZW50VG9BbmdsZShTVkdBbmdsZSBhbmdsZSk7Cit9OworCitTVkdNYXJr
ZXJFbGVtZW50IGluY2x1ZGVzIFNWR0ZpdFRvVmlld0JveDsKKworW0V4cG9zZWQ9V2luZG93XQor
aW50ZXJmYWNlIFNWR0dyYWRpZW50RWxlbWVudCA6IFNWR0VsZW1lbnQgeworCisgIC8vIFNwcmVh
ZCBNZXRob2QgVHlwZXMKKyAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX1NQUkVBRE1FVEhPRF9V
TktOT1dOID0gMDsKKyAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX1NQUkVBRE1FVEhPRF9QQUQg
PSAxOworICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfU1BSRUFETUVUSE9EX1JFRkxFQ1QgPSAy
OworICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfU1BSRUFETUVUSE9EX1JFUEVBVCA9IDM7CisK
KyAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZEVudW1lcmF0aW9u
IGdyYWRpZW50VW5pdHM7CisgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5p
bWF0ZWRUcmFuc2Zvcm1MaXN0IGdyYWRpZW50VHJhbnNmb3JtOworICBbU2FtZU9iamVjdF0gcmVh
ZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkRW51bWVyYXRpb24gc3ByZWFkTWV0aG9kOworfTsK
KworU1ZHR3JhZGllbnRFbGVtZW50IGluY2x1ZGVzIFNWR1VSSVJlZmVyZW5jZTsKKworW0V4cG9z
ZWQ9V2luZG93XQoraW50ZXJmYWNlIFNWR0xpbmVhckdyYWRpZW50RWxlbWVudCA6IFNWR0dyYWRp
ZW50RWxlbWVudCB7CisgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0
ZWRMZW5ndGggeDE7CisgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0
ZWRMZW5ndGggeTE7CisgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0
ZWRMZW5ndGggeDI7CisgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0
ZWRMZW5ndGggeTI7Cit9OworCitbRXhwb3NlZD1XaW5kb3ddCitpbnRlcmZhY2UgU1ZHUmFkaWFs
R3JhZGllbnRFbGVtZW50IDogU1ZHR3JhZGllbnRFbGVtZW50IHsKKyAgW1NhbWVPYmplY3RdIHJl
YWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZExlbmd0aCBjeDsKKyAgW1NhbWVPYmplY3RdIHJl
YWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZExlbmd0aCBjeTsKKyAgW1NhbWVPYmplY3RdIHJl
YWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZExlbmd0aCByOworICBbU2FtZU9iamVjdF0gcmVh
ZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTGVuZ3RoIGZ4OworICBbU2FtZU9iamVjdF0gcmVh
ZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTGVuZ3RoIGZ5OworICBbU2FtZU9iamVjdF0gcmVh
ZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTGVuZ3RoIGZyOworfTsKKworW0V4cG9zZWQ9V2lu
ZG93XQoraW50ZXJmYWNlIFNWR1N0b3BFbGVtZW50IDogU1ZHRWxlbWVudCB7CisgIFtTYW1lT2Jq
ZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWROdW1iZXIgb2Zmc2V0OworfTsKKwor
W0V4cG9zZWQ9V2luZG93XQoraW50ZXJmYWNlIFNWR1BhdHRlcm5FbGVtZW50IDogU1ZHRWxlbWVu
dCB7CisgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRFbnVtZXJh
dGlvbiBwYXR0ZXJuVW5pdHM7CisgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgU1ZH
QW5pbWF0ZWRFbnVtZXJhdGlvbiBwYXR0ZXJuQ29udGVudFVuaXRzOworICBbU2FtZU9iamVjdF0g
cmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdCBwYXR0ZXJuVHJhbnNm
b3JtOworICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTGVuZ3Ro
IHg7CisgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRMZW5ndGgg
eTsKKyAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZExlbmd0aCB3
aWR0aDsKKyAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZExlbmd0
aCBoZWlnaHQ7Cit9OworCitTVkdQYXR0ZXJuRWxlbWVudCBpbmNsdWRlcyBTVkdGaXRUb1ZpZXdC
b3g7CitTVkdQYXR0ZXJuRWxlbWVudCBpbmNsdWRlcyBTVkdVUklSZWZlcmVuY2U7CisKK1tFeHBv
c2VkPVdpbmRvd10KK2ludGVyZmFjZSBTVkdTY3JpcHRFbGVtZW50IDogU1ZHRWxlbWVudCB7Cisg
IGF0dHJpYnV0ZSBET01TdHJpbmcgdHlwZTsKKyAgYXR0cmlidXRlIERPTVN0cmluZz8gY3Jvc3NP
cmlnaW47Cit9OworCitTVkdTY3JpcHRFbGVtZW50IGluY2x1ZGVzIFNWR1VSSVJlZmVyZW5jZTsK
KworW0V4cG9zZWQ9V2luZG93XQoraW50ZXJmYWNlIFNWR0FFbGVtZW50IDogU1ZHR3JhcGhpY3NF
bGVtZW50IHsKKyAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZFN0
cmluZyB0YXJnZXQ7CisgIGF0dHJpYnV0ZSBET01TdHJpbmcgZG93bmxvYWQ7CisgIGF0dHJpYnV0
ZSBVU1ZTdHJpbmcgcGluZzsKKyAgYXR0cmlidXRlIERPTVN0cmluZyByZWw7CisgIFtTYW1lT2Jq
ZWN0LCBQdXRGb3J3YXJkcz12YWx1ZV0gcmVhZG9ubHkgYXR0cmlidXRlIERPTVRva2VuTGlzdCBy
ZWxMaXN0OworICBhdHRyaWJ1dGUgRE9NU3RyaW5nIGhyZWZsYW5nOworICBhdHRyaWJ1dGUgRE9N
U3RyaW5nIHR5cGU7CisKKyAgYXR0cmlidXRlIERPTVN0cmluZyB0ZXh0OworCisgIGF0dHJpYnV0
ZSBET01TdHJpbmcgcmVmZXJyZXJQb2xpY3k7Cit9OworCitTVkdBRWxlbWVudCBpbmNsdWRlcyBT
VkdVUklSZWZlcmVuY2U7CitTVkdBRWxlbWVudCBpbmNsdWRlcyBIVE1MSHlwZXJsaW5rRWxlbWVu
dFV0aWxzOworCitbRXhwb3NlZD1XaW5kb3ddCitpbnRlcmZhY2UgU1ZHVmlld0VsZW1lbnQgOiBT
VkdFbGVtZW50IHt9OworCitTVkdWaWV3RWxlbWVudCBpbmNsdWRlcyBTVkdGaXRUb1ZpZXdCb3g7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ludGVyZmFjZXMvY3JlZGVudGlhbC1tYW5hZ2VtZW50LmlkbCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW50ZXJmYWNlcy9jcmVkZW50aWFsLW1hbmFnZW1l
bnQuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmRhMWI5ZGZjYTY5MDllYWIxZTNjN2ZkNWUxNmYxMzkxZDY5Zjlk
Y2IKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ludGVyZmFjZXMvY3JlZGVudGlhbC1tYW5hZ2VtZW50LmlkbApAQCAtMCwwICsx
LDEwMyBAQAorLy8gR0VORVJBVEVEIENPTlRFTlQgLSBETyBOT1QgRURJVAorLy8gQ29udGVudCB3
YXMgYXV0b21hdGljYWxseSBleHRyYWN0ZWQgYnkgUmVmZnkgaW50byByZWZmeS1yZXBvcnRzCisv
LyAoaHR0cHM6Ly9naXRodWIuY29tL3RpZG91c3QvcmVmZnktcmVwb3J0cykKKy8vIFNvdXJjZTog
Q3JlZGVudGlhbCBNYW5hZ2VtZW50IExldmVsIDEgKGh0dHBzOi8vdzNjLmdpdGh1Yi5pby93ZWJh
cHBzZWMtY3JlZGVudGlhbC1tYW5hZ2VtZW50LykKKworW0V4cG9zZWQ9V2luZG93LCBTZWN1cmVD
b250ZXh0XQoraW50ZXJmYWNlIENyZWRlbnRpYWwgeworICByZWFkb25seSBhdHRyaWJ1dGUgVVNW
U3RyaW5nIGlkOworICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHR5cGU7Cit9OworCitb
U2VjdXJlQ29udGV4dF0KK2ludGVyZmFjZSBtaXhpbiBDcmVkZW50aWFsVXNlckRhdGEgeworICBy
ZWFkb25seSBhdHRyaWJ1dGUgVVNWU3RyaW5nIG5hbWU7CisgIHJlYWRvbmx5IGF0dHJpYnV0ZSBV
U1ZTdHJpbmcgaWNvblVSTDsKK307CisKK3BhcnRpYWwgaW50ZXJmYWNlIE5hdmlnYXRvciB7Cisg
IFtTZWN1cmVDb250ZXh0LCBTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgQ3JlZGVudGlh
bHNDb250YWluZXIgY3JlZGVudGlhbHM7Cit9OworCitbRXhwb3NlZD1XaW5kb3csIFNlY3VyZUNv
bnRleHRdCitpbnRlcmZhY2UgQ3JlZGVudGlhbHNDb250YWluZXIgeworICBQcm9taXNlPENyZWRl
bnRpYWw/PiBnZXQob3B0aW9uYWwgQ3JlZGVudGlhbFJlcXVlc3RPcHRpb25zIG9wdGlvbnMpOwor
ICBQcm9taXNlPENyZWRlbnRpYWw+IHN0b3JlKENyZWRlbnRpYWwgY3JlZGVudGlhbCk7CisgIFBy
b21pc2U8Q3JlZGVudGlhbD8+IGNyZWF0ZShvcHRpb25hbCBDcmVkZW50aWFsQ3JlYXRpb25PcHRp
b25zIG9wdGlvbnMpOworICBQcm9taXNlPHZvaWQ+IHByZXZlbnRTaWxlbnRBY2Nlc3MoKTsKK307
CisKK2RpY3Rpb25hcnkgQ3JlZGVudGlhbERhdGEgeworICByZXF1aXJlZCBVU1ZTdHJpbmcgaWQ7
Cit9OworCitkaWN0aW9uYXJ5IENyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucyB7CisgIENyZWRlbnRp
YWxNZWRpYXRpb25SZXF1aXJlbWVudCBtZWRpYXRpb24gPSAib3B0aW9uYWwiOworICBBYm9ydFNp
Z25hbCBzaWduYWw7Cit9OworCitlbnVtIENyZWRlbnRpYWxNZWRpYXRpb25SZXF1aXJlbWVudCB7
CisgICJzaWxlbnQiLAorICAib3B0aW9uYWwiLAorICAicmVxdWlyZWQiCit9OworCitkaWN0aW9u
YXJ5IENyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMgeworICBBYm9ydFNpZ25hbCBzaWduYWw7Cit9
OworCitbQ29uc3RydWN0b3IoSFRNTEZvcm1FbGVtZW50IGZvcm0pLAorIENvbnN0cnVjdG9yKFBh
c3N3b3JkQ3JlZGVudGlhbERhdGEgZGF0YSksCisgRXhwb3NlZD1XaW5kb3csCisgU2VjdXJlQ29u
dGV4dF0KK2ludGVyZmFjZSBQYXNzd29yZENyZWRlbnRpYWwgOiBDcmVkZW50aWFsIHsKKyAgcmVh
ZG9ubHkgYXR0cmlidXRlIFVTVlN0cmluZyBwYXNzd29yZDsKK307CitQYXNzd29yZENyZWRlbnRp
YWwgaW5jbHVkZXMgQ3JlZGVudGlhbFVzZXJEYXRhOworCitwYXJ0aWFsIGRpY3Rpb25hcnkgQ3Jl
ZGVudGlhbFJlcXVlc3RPcHRpb25zIHsKKyAgYm9vbGVhbiBwYXNzd29yZCA9IGZhbHNlOworfTsK
KworZGljdGlvbmFyeSBQYXNzd29yZENyZWRlbnRpYWxEYXRhIDogQ3JlZGVudGlhbERhdGEgewor
ICBVU1ZTdHJpbmcgbmFtZTsKKyAgVVNWU3RyaW5nIGljb25VUkw7CisgIHJlcXVpcmVkIFVTVlN0
cmluZyBvcmlnaW47CisgIHJlcXVpcmVkIFVTVlN0cmluZyBwYXNzd29yZDsKK307CisKK3R5cGVk
ZWYgKFBhc3N3b3JkQ3JlZGVudGlhbERhdGEgb3IgSFRNTEZvcm1FbGVtZW50KSBQYXNzd29yZENy
ZWRlbnRpYWxJbml0OworCitwYXJ0aWFsIGRpY3Rpb25hcnkgQ3JlZGVudGlhbENyZWF0aW9uT3B0
aW9ucyB7CisgIFBhc3N3b3JkQ3JlZGVudGlhbEluaXQgcGFzc3dvcmQ7Cit9OworCitbQ29uc3Ry
dWN0b3IoRmVkZXJhdGVkQ3JlZGVudGlhbEluaXQgZGF0YSksCisgRXhwb3NlZD1XaW5kb3csCisg
U2VjdXJlQ29udGV4dF0KK2ludGVyZmFjZSBGZWRlcmF0ZWRDcmVkZW50aWFsIDogQ3JlZGVudGlh
bCB7CisgIHJlYWRvbmx5IGF0dHJpYnV0ZSBVU1ZTdHJpbmcgcHJvdmlkZXI7CisgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBET01TdHJpbmc/IHByb3RvY29sOworfTsKK0ZlZGVyYXRlZENyZWRlbnRpYWwg
aW5jbHVkZXMgQ3JlZGVudGlhbFVzZXJEYXRhOworCitkaWN0aW9uYXJ5IEZlZGVyYXRlZENyZWRl
bnRpYWxSZXF1ZXN0T3B0aW9ucyB7CisgIHNlcXVlbmNlPFVTVlN0cmluZz4gcHJvdmlkZXJzOwor
ICBzZXF1ZW5jZTxET01TdHJpbmc+IHByb3RvY29sczsKK307CisKK3BhcnRpYWwgZGljdGlvbmFy
eSBDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMgeworICBGZWRlcmF0ZWRDcmVkZW50aWFsUmVxdWVz
dE9wdGlvbnMgZmVkZXJhdGVkOworfTsKKworZGljdGlvbmFyeSBGZWRlcmF0ZWRDcmVkZW50aWFs
SW5pdCA6IENyZWRlbnRpYWxEYXRhIHsKKyAgVVNWU3RyaW5nIG5hbWU7CisgIFVTVlN0cmluZyBp
Y29uVVJMOworICByZXF1aXJlZCBVU1ZTdHJpbmcgb3JpZ2luOworICByZXF1aXJlZCBVU1ZTdHJp
bmcgcHJvdmlkZXI7CisgIERPTVN0cmluZyBwcm90b2NvbDsKK307CisKK3BhcnRpYWwgZGljdGlv
bmFyeSBDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zIHsKKyAgRmVkZXJhdGVkQ3JlZGVudGlhbElu
aXQgZmVkZXJhdGVkOworfTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaW50ZXJmYWNlcy9jc3MtcHJvcGVydGllcy12YWx1ZXMtYXBpLmlk
bCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW50ZXJmYWNl
cy9jc3MtcHJvcGVydGllcy12YWx1ZXMtYXBpLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kOGY1NGIxZTE1YmMw
MjBlZjEwMWFiNTM2MjZlZWU2OTg1YzYzZGNiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbnRlcmZhY2VzL2Nzcy1wcm9wZXJ0
aWVzLXZhbHVlcy1hcGkuaWRsCkBAIC0wLDAgKzEsMjMgQEAKKy8vIEdFTkVSQVRFRCBDT05URU5U
IC0gRE8gTk9UIEVESVQKKy8vIENvbnRlbnQgd2FzIGF1dG9tYXRpY2FsbHkgZXh0cmFjdGVkIGJ5
IFJlZmZ5IGludG8gcmVmZnktcmVwb3J0cworLy8gKGh0dHBzOi8vZ2l0aHViLmNvbS90aWRvdXN0
L3JlZmZ5LXJlcG9ydHMpCisvLyBTb3VyY2U6IENTUyBQcm9wZXJ0aWVzIGFuZCBWYWx1ZXMgQVBJ
IExldmVsIDEgKGh0dHBzOi8vZHJhZnRzLmNzcy1ob3VkaW5pLm9yZy9jc3MtcHJvcGVydGllcy12
YWx1ZXMtYXBpLTEvKQorCitkaWN0aW9uYXJ5IFByb3BlcnR5RGVmaW5pdGlvbiB7CisgIHJlcXVp
cmVkIERPTVN0cmluZyBuYW1lOworICAgICAgICAgICBET01TdHJpbmcgc3ludGF4ICAgICAgID0g
IioiOworICByZXF1aXJlZCBib29sZWFuICAgaW5oZXJpdHM7CisgICAgICAgICAgIERPTVN0cmlu
ZyBpbml0aWFsVmFsdWU7Cit9OworCitwYXJ0aWFsIG5hbWVzcGFjZSBDU1MgeworICB2b2lkIHJl
Z2lzdGVyUHJvcGVydHkoUHJvcGVydHlEZWZpbml0aW9uIGRlZmluaXRpb24pOworfTsKKworW0V4
cG9zZWQ9V2luZG93XQoraW50ZXJmYWNlIENTU1Byb3BlcnR5UnVsZSA6IENTU1J1bGUgeworICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBDU1NPTVN0cmluZyBuYW1lOworICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBDU1NPTVN0cmluZyBzeW50YXg7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4g
aW5oZXJpdHM7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIENTU09NU3RyaW5nPyBpbml0aWFsVmFs
dWU7Cit9OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9pbnRlcmZhY2VzL2Nzcy1wc2V1ZG8uaWRsIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbnRlcmZhY2VzL2Nzcy1wc2V1ZG8uaWRsCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjJiNTU3ZTY1MzE2Mzg2M2ZlZmZhMDVkM2Y0YTRlOTYxMTQyYWE5NDQKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ludGVy
ZmFjZXMvY3NzLXBzZXVkby5pZGwKQEAgLTAsMCArMSwxNCBAQAorLy8gR0VORVJBVEVEIENPTlRF
TlQgLSBETyBOT1QgRURJVAorLy8gQ29udGVudCB3YXMgYXV0b21hdGljYWxseSBleHRyYWN0ZWQg
YnkgUmVmZnkgaW50byByZWZmeS1yZXBvcnRzCisvLyAoaHR0cHM6Ly9naXRodWIuY29tL3RpZG91
c3QvcmVmZnktcmVwb3J0cykKKy8vIFNvdXJjZTogQ1NTIFBzZXVkby1FbGVtZW50cyBNb2R1bGUg
TGV2ZWwgNCAoaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzcy1wc2V1ZG8tNC8pCisKK1tFeHBv
c2VkPVdpbmRvd10KK2ludGVyZmFjZSBDU1NQc2V1ZG9FbGVtZW50IDogRXZlbnRUYXJnZXQgewor
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBDU1NPTVN0cmluZyB0eXBlOworICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBFbGVtZW50IGVsZW1lbnQ7Cit9OworCitwYXJ0aWFsIGludGVyZmFjZSBFbGVtZW50
IHsKKyAgQ1NTUHNldWRvRWxlbWVudD8gcHNldWRvKENTU09NU3RyaW5nIHR5cGUpOworfTsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW50
ZXJmYWNlcy9jc3NvbS12aWV3LmlkbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaW50ZXJmYWNlcy9jc3NvbS12aWV3LmlkbAppbmRleCA0YTcwY2I5OTc5NTk3
YTdkZDUxMDhhZGY0YWJmOWM1ZmEwODEyMzgwLi41ZDMwZWRlMWU0MGRlYmM1NmFiNzFiYTU4YTdk
ZGVjMGJhNWI0MGNmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2ludGVyZmFjZXMvY3Nzb20tdmlldy5pZGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbnRlcmZhY2VzL2Nzc29tLXZpZXcuaWRs
CkBAIC0xLDQgKzEsOSBAQAotZW51bSBTY3JvbGxCZWhhdmlvciB7ICJhdXRvIiwgImluc3RhbnQi
LCAic21vb3RoIiB9OworLy8gR0VORVJBVEVEIENPTlRFTlQgLSBETyBOT1QgRURJVAorLy8gQ29u
dGVudCB3YXMgYXV0b21hdGljYWxseSBleHRyYWN0ZWQgYnkgUmVmZnkgaW50byByZWZmeS1yZXBv
cnRzCisvLyAoaHR0cHM6Ly9naXRodWIuY29tL3RpZG91c3QvcmVmZnktcmVwb3J0cykKKy8vIFNv
dXJjZTogQ1NTT00gVmlldyBNb2R1bGUgKGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3NvbS12
aWV3LykKKworZW51bSBTY3JvbGxCZWhhdmlvciB7ICJhdXRvIiwgInNtb290aCIgfTsKIAogZGlj
dGlvbmFyeSBTY3JvbGxPcHRpb25zIHsKICAgICBTY3JvbGxCZWhhdmlvciBiZWhhdmlvciA9ICJh
dXRvIjsKQEAgLTI3LDE2ICszMiwxOCBAQCBwYXJ0aWFsIGludGVyZmFjZSBXaW5kb3cgewogICAg
IFtSZXBsYWNlYWJsZV0gcmVhZG9ubHkgYXR0cmlidXRlIGRvdWJsZSBwYWdlWE9mZnNldDsKICAg
ICBbUmVwbGFjZWFibGVdIHJlYWRvbmx5IGF0dHJpYnV0ZSBkb3VibGUgc2Nyb2xsWTsKICAgICBb
UmVwbGFjZWFibGVdIHJlYWRvbmx5IGF0dHJpYnV0ZSBkb3VibGUgcGFnZVlPZmZzZXQ7Ci0gICAg
dm9pZCBzY3JvbGwob3B0aW9uYWwgU2Nyb2xsVG9PcHRpb25zIG9wdGlvbnMpOworICAgIHZvaWQg
c2Nyb2xsKG9wdGlvbmFsIFNjcm9sbFRvT3B0aW9ucyBvcHRpb25zID0ge30pOwogICAgIHZvaWQg
c2Nyb2xsKHVucmVzdHJpY3RlZCBkb3VibGUgeCwgdW5yZXN0cmljdGVkIGRvdWJsZSB5KTsKLSAg
ICB2b2lkIHNjcm9sbFRvKG9wdGlvbmFsIFNjcm9sbFRvT3B0aW9ucyBvcHRpb25zKTsKKyAgICB2
b2lkIHNjcm9sbFRvKG9wdGlvbmFsIFNjcm9sbFRvT3B0aW9ucyBvcHRpb25zID0ge30pOwogICAg
IHZvaWQgc2Nyb2xsVG8odW5yZXN0cmljdGVkIGRvdWJsZSB4LCB1bnJlc3RyaWN0ZWQgZG91Ymxl
IHkpOwotICAgIHZvaWQgc2Nyb2xsQnkob3B0aW9uYWwgU2Nyb2xsVG9PcHRpb25zIG9wdGlvbnMp
OworICAgIHZvaWQgc2Nyb2xsQnkob3B0aW9uYWwgU2Nyb2xsVG9PcHRpb25zIG9wdGlvbnMgPSB7
fSk7CiAgICAgdm9pZCBzY3JvbGxCeSh1bnJlc3RyaWN0ZWQgZG91YmxlIHgsIHVucmVzdHJpY3Rl
ZCBkb3VibGUgeSk7CiAKICAgICAvLyBjbGllbnQKICAgICBbUmVwbGFjZWFibGVdIHJlYWRvbmx5
IGF0dHJpYnV0ZSBsb25nIHNjcmVlblg7CisgICAgW1JlcGxhY2VhYmxlXSByZWFkb25seSBhdHRy
aWJ1dGUgbG9uZyBzY3JlZW5MZWZ0OwogICAgIFtSZXBsYWNlYWJsZV0gcmVhZG9ubHkgYXR0cmli
dXRlIGxvbmcgc2NyZWVuWTsKKyAgICBbUmVwbGFjZWFibGVdIHJlYWRvbmx5IGF0dHJpYnV0ZSBs
b25nIHNjcmVlblRvcDsKICAgICBbUmVwbGFjZWFibGVdIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25n
IG91dGVyV2lkdGg7CiAgICAgW1JlcGxhY2VhYmxlXSByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyBv
dXRlckhlaWdodDsKICAgICBbUmVwbGFjZWFibGVdIHJlYWRvbmx5IGF0dHJpYnV0ZSBkb3VibGUg
ZGV2aWNlUGl4ZWxSYXRpbzsKQEAgLTUyLDcgKzU5LDcgQEAgaW50ZXJmYWNlIE1lZGlhUXVlcnlM
aXN0IDogRXZlbnRUYXJnZXQgewogfTsKIAogW0V4cG9zZWQ9V2luZG93LAotIENvbnN0cnVjdG9y
KENTU09NU3RyaW5nIHR5cGUsIG9wdGlvbmFsIE1lZGlhUXVlcnlMaXN0RXZlbnRJbml0IGV2ZW50
SW5pdERpY3QpXQorIENvbnN0cnVjdG9yKENTU09NU3RyaW5nIHR5cGUsIG9wdGlvbmFsIE1lZGlh
UXVlcnlMaXN0RXZlbnRJbml0IGV2ZW50SW5pdERpY3QgPSB7fSldCiBpbnRlcmZhY2UgTWVkaWFR
dWVyeUxpc3RFdmVudCA6IEV2ZW50IHsKICAgcmVhZG9ubHkgYXR0cmlidXRlIENTU09NU3RyaW5n
IG1lZGlhOwogICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBtYXRjaGVzOwpAQCAtOTYsMTIg
KzEwMywxMiBAQCBkaWN0aW9uYXJ5IFNjcm9sbEludG9WaWV3T3B0aW9ucyA6IFNjcm9sbE9wdGlv
bnMgewogcGFydGlhbCBpbnRlcmZhY2UgRWxlbWVudCB7CiAgIERPTVJlY3RMaXN0IGdldENsaWVu
dFJlY3RzKCk7CiAgIFtOZXdPYmplY3RdIERPTVJlY3QgZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7
Ci0gIHZvaWQgc2Nyb2xsSW50b1ZpZXcob3B0aW9uYWwgKGJvb2xlYW4gb3IgU2Nyb2xsSW50b1Zp
ZXdPcHRpb25zKSBhcmcpOwotICB2b2lkIHNjcm9sbChvcHRpb25hbCBTY3JvbGxUb09wdGlvbnMg
b3B0aW9ucyk7CisgIHZvaWQgc2Nyb2xsSW50b1ZpZXcob3B0aW9uYWwgKGJvb2xlYW4gb3IgU2Ny
b2xsSW50b1ZpZXdPcHRpb25zKSBhcmcgPSB7fSk7CisgIHZvaWQgc2Nyb2xsKG9wdGlvbmFsIFNj
cm9sbFRvT3B0aW9ucyBvcHRpb25zID0ge30pOwogICB2b2lkIHNjcm9sbCh1bnJlc3RyaWN0ZWQg
ZG91YmxlIHgsIHVucmVzdHJpY3RlZCBkb3VibGUgeSk7Ci0gIHZvaWQgc2Nyb2xsVG8ob3B0aW9u
YWwgU2Nyb2xsVG9PcHRpb25zIG9wdGlvbnMpOworICB2b2lkIHNjcm9sbFRvKG9wdGlvbmFsIFNj
cm9sbFRvT3B0aW9ucyBvcHRpb25zID0ge30pOwogICB2b2lkIHNjcm9sbFRvKHVucmVzdHJpY3Rl
ZCBkb3VibGUgeCwgdW5yZXN0cmljdGVkIGRvdWJsZSB5KTsKLSAgdm9pZCBzY3JvbGxCeShvcHRp
b25hbCBTY3JvbGxUb09wdGlvbnMgb3B0aW9ucyk7CisgIHZvaWQgc2Nyb2xsQnkob3B0aW9uYWwg
U2Nyb2xsVG9PcHRpb25zIG9wdGlvbnMgPSB7fSk7CiAgIHZvaWQgc2Nyb2xsQnkodW5yZXN0cmlj
dGVkIGRvdWJsZSB4LCB1bnJlc3RyaWN0ZWQgZG91YmxlIHkpOwogICBhdHRyaWJ1dGUgdW5yZXN0
cmljdGVkIGRvdWJsZSBzY3JvbGxUb3A7CiAgIGF0dHJpYnV0ZSB1bnJlc3RyaWN0ZWQgZG91Ymxl
IHNjcm9sbExlZnQ7CkBAIC0xMzEsNyArMTM4LDYgQEAgcGFydGlhbCBpbnRlcmZhY2UgUmFuZ2Ug
ewogICBbTmV3T2JqZWN0XSBET01SZWN0IGdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwogfTsKIAot
LyogVE9ETyBUaGlzIGlzIGNvbW1lbnRlZCBvdXQgYmVjYXVzZTogIlBhcnRpYWwgaW50ZXJmYWNl
IE1vdXNlRXZlbnQgd2l0aCBubyBvcmlnaW5hbCBpbnRlcmZhY2UiCiBwYXJ0aWFsIGludGVyZmFj
ZSBNb3VzZUV2ZW50IHsKICAgcmVhZG9ubHkgYXR0cmlidXRlIGRvdWJsZSBzY3JlZW5YOwogICBy
ZWFkb25seSBhdHRyaWJ1dGUgZG91YmxlIHNjcmVlblk7CkBAIC0xNTEsNyArMTU3LDYgQEAgcGFy
dGlhbCBkaWN0aW9uYXJ5IE1vdXNlRXZlbnRJbml0IHsKICAgZG91YmxlIGNsaWVudFggPSAwLjA7
CiAgIGRvdWJsZSBjbGllbnRZID0gMC4wOwogfTsKLSovCiAKIGVudW0gQ1NTQm94VHlwZSB7ICJt
YXJnaW4iLCAiYm9yZGVyIiwgInBhZGRpbmciLCAiY29udGVudCIgfTsKIGRpY3Rpb25hcnkgQm94
UXVhZE9wdGlvbnMgewpAQCAtMTY0LDIwICsxNjksMTYgQEAgZGljdGlvbmFyeSBDb252ZXJ0Q29v
cmRpbmF0ZU9wdGlvbnMgewogICBDU1NCb3hUeXBlIHRvQm94ID0gImJvcmRlciI7CiB9OwogCi1b
RXhwb3NlZD1XaW5kb3csCi0gTm9JbnRlcmZhY2VPYmplY3RdCi1pbnRlcmZhY2UgR2VvbWV0cnlV
dGlscyB7Ci0gIHNlcXVlbmNlPERPTVF1YWQ+IGdldEJveFF1YWRzKG9wdGlvbmFsIEJveFF1YWRP
cHRpb25zIG9wdGlvbnMpOwotICBET01RdWFkIGNvbnZlcnRRdWFkRnJvbU5vZGUoRE9NUXVhZElu
aXQgcXVhZCwgR2VvbWV0cnlOb2RlIGZyb20sIG9wdGlvbmFsIENvbnZlcnRDb29yZGluYXRlT3B0
aW9ucyBvcHRpb25zKTsKLSAgRE9NUXVhZCBjb252ZXJ0UmVjdEZyb21Ob2RlKERPTVJlY3RSZWFk
T25seSByZWN0LCBHZW9tZXRyeU5vZGUgZnJvbSwgb3B0aW9uYWwgQ29udmVydENvb3JkaW5hdGVP
cHRpb25zIG9wdGlvbnMpOwotICBET01Qb2ludCBjb252ZXJ0UG9pbnRGcm9tTm9kZShET01Qb2lu
dEluaXQgcG9pbnQsIEdlb21ldHJ5Tm9kZSBmcm9tLCBvcHRpb25hbCBDb252ZXJ0Q29vcmRpbmF0
ZU9wdGlvbnMgb3B0aW9ucyk7IC8vIFhYWCB6LHcgdHVybnMgaW50byAwCi19OwotCi1UZXh0IGlt
cGxlbWVudHMgR2VvbWV0cnlVdGlsczsgLy8gbGlrZSBSYW5nZQotRWxlbWVudCBpbXBsZW1lbnRz
IEdlb21ldHJ5VXRpbHM7Ci0vKiBUT0RPIENvbW1lbnRlZCBvdXQgYmVjYXVzZTogIkNTU1BzZXVk
b0VsZW1lbnQgaW1wbGVtZW50cyBHZW9tZXRyeVV0aWxzLCBidXQgQ1NTUHNldWRvRWxlbWVudCBp
cyB1bmRlZmluZWQuIgotQ1NTUHNldWRvRWxlbWVudCBpbXBsZW1lbnRzIEdlb21ldHJ5VXRpbHM7
Ci0qLwotRG9jdW1lbnQgaW1wbGVtZW50cyBHZW9tZXRyeVV0aWxzOworaW50ZXJmYWNlIG1peGlu
IEdlb21ldHJ5VXRpbHMgeworICBzZXF1ZW5jZTxET01RdWFkPiBnZXRCb3hRdWFkcyhvcHRpb25h
bCBCb3hRdWFkT3B0aW9ucyBvcHRpb25zID0ge30pOworICBET01RdWFkIGNvbnZlcnRRdWFkRnJv
bU5vZGUoRE9NUXVhZEluaXQgcXVhZCwgR2VvbWV0cnlOb2RlIGZyb20sIG9wdGlvbmFsIENvbnZl
cnRDb29yZGluYXRlT3B0aW9ucyBvcHRpb25zID0ge30pOworICBET01RdWFkIGNvbnZlcnRSZWN0
RnJvbU5vZGUoRE9NUmVjdFJlYWRPbmx5IHJlY3QsIEdlb21ldHJ5Tm9kZSBmcm9tLCBvcHRpb25h
bCBDb252ZXJ0Q29vcmRpbmF0ZU9wdGlvbnMgb3B0aW9ucyA9IHt9KTsKKyAgRE9NUG9pbnQgY29u
dmVydFBvaW50RnJvbU5vZGUoRE9NUG9pbnRJbml0IHBvaW50LCBHZW9tZXRyeU5vZGUgZnJvbSwg
b3B0aW9uYWwgQ29udmVydENvb3JkaW5hdGVPcHRpb25zIG9wdGlvbnMgPSB7fSk7IC8vIFhYWCB6
LHcgdHVybnMgaW50byAwCit9OworCitUZXh0IGluY2x1ZGVzIEdlb21ldHJ5VXRpbHM7IC8vIGxp
a2UgUmFuZ2UKK0VsZW1lbnQgaW5jbHVkZXMgR2VvbWV0cnlVdGlsczsKK0NTU1BzZXVkb0VsZW1l
bnQgaW5jbHVkZXMgR2VvbWV0cnlVdGlsczsKK0RvY3VtZW50IGluY2x1ZGVzIEdlb21ldHJ5VXRp
bHM7CiAKIHR5cGVkZWYgKFRleHQgb3IgRWxlbWVudCBvciBDU1NQc2V1ZG9FbGVtZW50IG9yIERv
Y3VtZW50KSBHZW9tZXRyeU5vZGU7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ludGVyZmFjZXMvY3Nzb20uaWRsIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbnRlcmZhY2VzL2Nzc29tLmlkbAppbmRl
eCBiMzcyZWQ2YjJiNWMwMTQ3MDkyZGE3M2FhYmYxOGIxZjk5Y2FhNDYyLi5kYzliNzhmZGE2MTgw
ZGJhNmI3OTU4YzM0MjlhNzdlMGZiNTA0OGIyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ludGVyZmFjZXMvY3Nzb20uaWRsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW50ZXJmYWNlcy9jc3Nv
bS5pZGwKQEAgLTEsNyArMSwxOCBAQAotdHlwZWRlZiBVU1ZTdHJpbmcgQ1NTT01TdHJpbmc7Cisv
LyBHRU5FUkFURUQgUFJFQU1CTEUgLSBETyBOT1QgRURJVAorLy8gVGhpcyBwcmVhbWJsZSB3YXMg
YWRkZWQgYnkgcmVmZnktcmVwb3J0cyBmb3Igd2ViLXBsYXRmb3JtLXRlc3RzLgorLy8gQ1NTT01T
dHJpbmcgaXMgYW4gaW1wbGVtZW50YXRpb24tZGVmaW5lZCB0eXBlIG9mIGVpdGhlciBET01TdHJp
bmcgb3IKKy8vIFVTVlN0cmluZyBpbiBDU1NPTTogaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nz
c29tLyNjc3NvbXN0cmluZy10eXBlCisvLyBGb3Igd2ViLXBsYXRmb3JtLXRlc3RzLCB1c2UgRE9N
U3RyaW5nIGJlY2F1c2UgVVNWU3RyaW5nIGhhcyBhZGRpdGlvbmFsCisvLyByZXF1aXJlbWVudHMg
aW4gdHlwZSBjb252ZXJzaW9uIGFuZCBjb3VsZCByZXN1bHQgaW4gc3B1cmlvdXMgZmFpbHVyZXMg
Zm9yCisvLyBpbXBsZW1lbnRhdGlvbnMgdGhhdCB1c2UgRE9NU3RyaW5nLgordHlwZWRlZiBET01T
dHJpbmcgQ1NTT01TdHJpbmc7CisKKy8vIEdFTkVSQVRFRCBDT05URU5UIC0gRE8gTk9UIEVESVQK
Ky8vIENvbnRlbnQgd2FzIGF1dG9tYXRpY2FsbHkgZXh0cmFjdGVkIGJ5IFJlZmZ5IGludG8gcmVm
ZnktcmVwb3J0cworLy8gKGh0dHBzOi8vZ2l0aHViLmNvbS90aWRvdXN0L3JlZmZ5LXJlcG9ydHMp
CisvLyBTb3VyY2U6IENTUyBPYmplY3QgTW9kZWwgKENTU09NKSAoaHR0cHM6Ly9kcmFmdHMuY3Nz
d2cub3JnL2Nzc29tLykKIAotW0V4cG9zZWQ9V2luZG93LAotIExlZ2FjeUFycmF5Q2xhc3NdCitb
RXhwb3NlZD1XaW5kb3ddCiBpbnRlcmZhY2UgTWVkaWFMaXN0IHsKICAgc3RyaW5naWZpZXIgYXR0
cmlidXRlIFtUcmVhdE51bGxBcz1FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgbWVkaWFUZXh0Owog
ICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsZW5ndGg7CkBAIC0xNSw3ICsyNiw3
IEBAIGludGVyZmFjZSBTdHlsZVNoZWV0IHsKICAgcmVhZG9ubHkgYXR0cmlidXRlIENTU09NU3Ry
aW5nIHR5cGU7CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBVU1ZTdHJpbmc/IGhyZWY7CiAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSAoRWxlbWVudCBvciBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24pPyBvd25lck5v
ZGU7Ci0gIHJlYWRvbmx5IGF0dHJpYnV0ZSBTdHlsZVNoZWV0PyBwYXJlbnRTdHlsZVNoZWV0Owor
ICByZWFkb25seSBhdHRyaWJ1dGUgQ1NTU3R5bGVTaGVldD8gcGFyZW50U3R5bGVTaGVldDsKICAg
cmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZz8gdGl0bGU7CiAgIFtTYW1lT2JqZWN0LCBQdXRG
b3J3YXJkcz1tZWRpYVRleHRdIHJlYWRvbmx5IGF0dHJpYnV0ZSBNZWRpYUxpc3QgbWVkaWE7CiAg
IGF0dHJpYnV0ZSBib29sZWFuIGRpc2FibGVkOwpAQCAtMjksMjYgKzQwLDI4IEBAIGludGVyZmFj
ZSBDU1NTdHlsZVNoZWV0IDogU3R5bGVTaGVldCB7CiAgIHZvaWQgZGVsZXRlUnVsZSh1bnNpZ25l
ZCBsb25nIGluZGV4KTsKIH07CiAKLVtFeHBvc2VkPVdpbmRvdywKLSBMZWdhY3lBcnJheUNsYXNz
XQorcGFydGlhbCBpbnRlcmZhY2UgQ1NTU3R5bGVTaGVldCB7CisgIFtTYW1lT2JqZWN0XSByZWFk
b25seSBhdHRyaWJ1dGUgQ1NTUnVsZUxpc3QgcnVsZXM7CisgIGxvbmcgYWRkUnVsZShvcHRpb25h
bCBET01TdHJpbmcgc2VsZWN0b3IgPSAidW5kZWZpbmVkIiwgb3B0aW9uYWwgRE9NU3RyaW5nIHN0
eWxlID0gInVuZGVmaW5lZCIsIG9wdGlvbmFsIHVuc2lnbmVkIGxvbmcgaW5kZXgpOworICB2b2lk
IHJlbW92ZVJ1bGUob3B0aW9uYWwgdW5zaWduZWQgbG9uZyBpbmRleCA9IDApOworfTsKKworW0V4
cG9zZWQ9V2luZG93XQogaW50ZXJmYWNlIFN0eWxlU2hlZXRMaXN0IHsKLSAgZ2V0dGVyIFN0eWxl
U2hlZXQ/IGl0ZW0odW5zaWduZWQgbG9uZyBpbmRleCk7CisgIGdldHRlciBDU1NTdHlsZVNoZWV0
PyBpdGVtKHVuc2lnbmVkIGxvbmcgaW5kZXgpOwogICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWdu
ZWQgbG9uZyBsZW5ndGg7CiB9OwogCi1wYXJ0aWFsIGludGVyZmFjZSBEb2N1bWVudCB7CitwYXJ0
aWFsIGludGVyZmFjZSBtaXhpbiBEb2N1bWVudE9yU2hhZG93Um9vdCB7CiAgIFtTYW1lT2JqZWN0
XSByZWFkb25seSBhdHRyaWJ1dGUgU3R5bGVTaGVldExpc3Qgc3R5bGVTaGVldHM7CiB9OwogCi1b
RXhwb3NlZD1XaW5kb3csCi0gTm9JbnRlcmZhY2VPYmplY3RdCi1pbnRlcmZhY2UgTGlua1N0eWxl
IHsKLSAgcmVhZG9ubHkgYXR0cmlidXRlIFN0eWxlU2hlZXQ/IHNoZWV0OworaW50ZXJmYWNlIG1p
eGluIExpbmtTdHlsZSB7CisgIHJlYWRvbmx5IGF0dHJpYnV0ZSBDU1NTdHlsZVNoZWV0PyBzaGVl
dDsKIH07CiAKLVByb2Nlc3NpbmdJbnN0cnVjdGlvbiBpbXBsZW1lbnRzIExpbmtTdHlsZTsKLVtF
eHBvc2VkPVdpbmRvdywKLSBMZWdhY3lBcnJheUNsYXNzXQorUHJvY2Vzc2luZ0luc3RydWN0aW9u
IGluY2x1ZGVzIExpbmtTdHlsZTsKK1tFeHBvc2VkPVdpbmRvd10KIGludGVyZmFjZSBDU1NSdWxl
TGlzdCB7CiAgIGdldHRlciBDU1NSdWxlPyBpdGVtKHVuc2lnbmVkIGxvbmcgaW5kZXgpOwogICBy
ZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsZW5ndGg7CkBAIC01NiwxOCArNjksMjAg
QEAgaW50ZXJmYWNlIENTU1J1bGVMaXN0IHsKIAogW0V4cG9zZWQ9V2luZG93XQogaW50ZXJmYWNl
IENTU1J1bGUgeworICBhdHRyaWJ1dGUgQ1NTT01TdHJpbmcgY3NzVGV4dDsKKyAgcmVhZG9ubHkg
YXR0cmlidXRlIENTU1J1bGU/IHBhcmVudFJ1bGU7CisgIHJlYWRvbmx5IGF0dHJpYnV0ZSBDU1NT
dHlsZVNoZWV0PyBwYXJlbnRTdHlsZVNoZWV0OworCisgIC8vIHRoZSBmb2xsb3dpbmcgYXR0cmli
dXRlIGFuZCBjb25zdGFudHMgYXJlIGhpc3RvcmlhbAorICByZWFkb25seSBhdHRyaWJ1dGUgdW5z
aWduZWQgc2hvcnQgdHlwZTsKICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1RZTEVfUlVMRSA9IDE7
Ci0gIGNvbnN0IHVuc2lnbmVkIHNob3J0IENIQVJTRVRfUlVMRSA9IDI7IC8vIGhpc3RvcmljYWwK
KyAgY29uc3QgdW5zaWduZWQgc2hvcnQgQ0hBUlNFVF9SVUxFID0gMjsKICAgY29uc3QgdW5zaWdu
ZWQgc2hvcnQgSU1QT1JUX1JVTEUgPSAzOwogICBjb25zdCB1bnNpZ25lZCBzaG9ydCBNRURJQV9S
VUxFID0gNDsKICAgY29uc3QgdW5zaWduZWQgc2hvcnQgRk9OVF9GQUNFX1JVTEUgPSA1OwogICBj
b25zdCB1bnNpZ25lZCBzaG9ydCBQQUdFX1JVTEUgPSA2OwogICBjb25zdCB1bnNpZ25lZCBzaG9y
dCBNQVJHSU5fUlVMRSA9IDk7CiAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IE5BTUVTUEFDRV9SVUxF
ID0gMTA7Ci0gIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBzaG9ydCB0eXBlOwotICBhdHRy
aWJ1dGUgQ1NTT01TdHJpbmcgY3NzVGV4dDsKLSAgcmVhZG9ubHkgYXR0cmlidXRlIENTU1J1bGU/
IHBhcmVudFJ1bGU7Ci0gIHJlYWRvbmx5IGF0dHJpYnV0ZSBDU1NTdHlsZVNoZWV0PyBwYXJlbnRT
dHlsZVNoZWV0OwogfTsKIAogW0V4cG9zZWQ9V2luZG93XQpAQCAtMTE1LDI5ICsxMzAsMjUgQEAg
aW50ZXJmYWNlIENTU1N0eWxlRGVjbGFyYXRpb24gewogICBnZXR0ZXIgQ1NTT01TdHJpbmcgaXRl
bSh1bnNpZ25lZCBsb25nIGluZGV4KTsKICAgQ1NTT01TdHJpbmcgZ2V0UHJvcGVydHlWYWx1ZShD
U1NPTVN0cmluZyBwcm9wZXJ0eSk7CiAgIENTU09NU3RyaW5nIGdldFByb3BlcnR5UHJpb3JpdHko
Q1NTT01TdHJpbmcgcHJvcGVydHkpOwotICBbQ0VSZWFjdGlvbnNdIHZvaWQgc2V0UHJvcGVydHko
Q1NTT01TdHJpbmcgcHJvcGVydHksIFtUcmVhdE51bGxBcz1FbXB0eVN0cmluZ10gQ1NTT01TdHJp
bmcgdmFsdWUsIFtUcmVhdE51bGxBcz1FbXB0eVN0cmluZ10gb3B0aW9uYWwgQ1NTT01TdHJpbmcg
cHJpb3JpdHkgPSAiIik7Ci0gIFtDRVJlYWN0aW9uc10gdm9pZCBzZXRQcm9wZXJ0eVZhbHVlKENT
U09NU3RyaW5nIHByb3BlcnR5LCBbVHJlYXROdWxsQXM9RW1wdHlTdHJpbmddIENTU09NU3RyaW5n
IHZhbHVlKTsKLSAgW0NFUmVhY3Rpb25zXSB2b2lkIHNldFByb3BlcnR5UHJpb3JpdHkoQ1NTT01T
dHJpbmcgcHJvcGVydHksIFtUcmVhdE51bGxBcz1FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgcHJp
b3JpdHkpOworICBbQ0VSZWFjdGlvbnNdIHZvaWQgc2V0UHJvcGVydHkoQ1NTT01TdHJpbmcgcHJv
cGVydHksIFtUcmVhdE51bGxBcz1FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgdmFsdWUsIG9wdGlv
bmFsIFtUcmVhdE51bGxBcz1FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgcHJpb3JpdHkgPSAiIik7
CiAgIFtDRVJlYWN0aW9uc10gQ1NTT01TdHJpbmcgcmVtb3ZlUHJvcGVydHkoQ1NTT01TdHJpbmcg
cHJvcGVydHkpOwogICByZWFkb25seSBhdHRyaWJ1dGUgQ1NTUnVsZT8gcGFyZW50UnVsZTsKICAg
W0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgW1RyZWF0TnVsbEFzPUVtcHR5U3RyaW5nXSBDU1NPTVN0
cmluZyBjc3NGbG9hdDsKIH07CiAKLVtFeHBvc2VkPVdpbmRvdywKLSBOb0ludGVyZmFjZU9iamVj
dF0KLWludGVyZmFjZSBFbGVtZW50Q1NTSW5saW5lU3R5bGUgeworaW50ZXJmYWNlIG1peGluIEVs
ZW1lbnRDU1NJbmxpbmVTdHlsZSB7CiAgIFtTYW1lT2JqZWN0LCBQdXRGb3J3YXJkcz1jc3NUZXh0
XSByZWFkb25seSBhdHRyaWJ1dGUgQ1NTU3R5bGVEZWNsYXJhdGlvbiBzdHlsZTsKIH07CiAKLUhU
TUxFbGVtZW50IGltcGxlbWVudHMgRWxlbWVudENTU0lubGluZVN0eWxlOworSFRNTEVsZW1lbnQg
aW5jbHVkZXMgRWxlbWVudENTU0lubGluZVN0eWxlOwogCi1TVkdFbGVtZW50IGltcGxlbWVudHMg
RWxlbWVudENTU0lubGluZVN0eWxlOworU1ZHRWxlbWVudCBpbmNsdWRlcyBFbGVtZW50Q1NTSW5s
aW5lU3R5bGU7CiAKIHBhcnRpYWwgaW50ZXJmYWNlIFdpbmRvdyB7CiAgIFtOZXdPYmplY3RdIENT
U1N0eWxlRGVjbGFyYXRpb24gZ2V0Q29tcHV0ZWRTdHlsZShFbGVtZW50IGVsdCwgb3B0aW9uYWwg
Q1NTT01TdHJpbmc/IHBzZXVkb0VsdCk7CiB9OwogCiBbRXhwb3NlZD1XaW5kb3ddCi1pbnRlcmZh
Y2UgQ1NTIHsKLSAgc3RhdGljIENTU09NU3RyaW5nIGVzY2FwZShDU1NPTVN0cmluZyBpZGVudCk7
CituYW1lc3BhY2UgQ1NTIHsKKyAgQ1NTT01TdHJpbmcgZXNjYXBlKENTU09NU3RyaW5nIGlkZW50
KTsKIH07CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ludGVyZmFjZXMvZG9tLmlkbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaW50ZXJmYWNlcy9kb20uaWRsCmluZGV4IDA4N2ZlNGQ2NjFjYmIxMzU1
NTM3MzIzZTA5M2ZhM2IzZDM0Mjk3NjMuLjAzYTAyMDFiMTZmZWQ1Njk0MjljNmNmYzcwOTA2M2Vk
MzE2ODE0MjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvaW50ZXJmYWNlcy9kb20uaWRsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaW50ZXJmYWNlcy9kb20uaWRsCkBAIC0xLDEwICsxLDE2IEBA
Ci1bQ29uc3RydWN0b3IoRE9NU3RyaW5nIHR5cGUsIG9wdGlvbmFsIEV2ZW50SW5pdCBldmVudElu
aXREaWN0KSwKLSBFeHBvc2VkPShXaW5kb3csV29ya2VyKV0KKy8vIEdFTkVSQVRFRCBDT05URU5U
IC0gRE8gTk9UIEVESVQKKy8vIENvbnRlbnQgd2FzIGF1dG9tYXRpY2FsbHkgZXh0cmFjdGVkIGJ5
IFJlZmZ5IGludG8gcmVmZnktcmVwb3J0cworLy8gKGh0dHBzOi8vZ2l0aHViLmNvbS90aWRvdXN0
L3JlZmZ5LXJlcG9ydHMpCisvLyBTb3VyY2U6IERPTSBTdGFuZGFyZCAoaHR0cHM6Ly9kb20uc3Bl
Yy53aGF0d2cub3JnLykKKworW0NvbnN0cnVjdG9yKERPTVN0cmluZyB0eXBlLCBvcHRpb25hbCBF
dmVudEluaXQgZXZlbnRJbml0RGljdCA9IHt9KSwKKyBFeHBvc2VkPShXaW5kb3csV29ya2VyLEF1
ZGlvV29ya2xldCldCiBpbnRlcmZhY2UgRXZlbnQgewogICByZWFkb25seSBhdHRyaWJ1dGUgRE9N
U3RyaW5nIHR5cGU7CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBFdmVudFRhcmdldD8gdGFyZ2V0Owot
ICByZWFkb25seSBhdHRyaWJ1dGUgRXZlbnRUYXJnZXQ/IHNyY0VsZW1lbnQ7CisgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBFdmVudFRhcmdldD8gc3JjRWxlbWVudDsgLy8gaGlzdG9yaWNhbAogICByZWFk
b25seSBhdHRyaWJ1dGUgRXZlbnRUYXJnZXQ/IGN1cnJlbnRUYXJnZXQ7CisgIHNlcXVlbmNlPEV2
ZW50VGFyZ2V0PiBjb21wb3NlZFBhdGgoKTsKIAogICBjb25zdCB1bnNpZ25lZCBzaG9ydCBOT05F
ID0gMDsKICAgY29uc3QgdW5zaWduZWQgc2hvcnQgQ0FQVFVSSU5HX1BIQVNFID0gMTsKQEAgLTEz
LDI3ICsxOSwzMyBAQCBpbnRlcmZhY2UgRXZlbnQgewogICByZWFkb25seSBhdHRyaWJ1dGUgdW5z
aWduZWQgc2hvcnQgZXZlbnRQaGFzZTsKIAogICB2b2lkIHN0b3BQcm9wYWdhdGlvbigpOworICAg
ICAgICAgICBhdHRyaWJ1dGUgYm9vbGVhbiBjYW5jZWxCdWJibGU7IC8vIGhpc3RvcmljYWwgYWxp
YXMgb2YgLnN0b3BQcm9wYWdhdGlvbgogICB2b2lkIHN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigp
OwogCiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIGJ1YmJsZXM7CiAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBib29sZWFuIGNhbmNlbGFibGU7Ci0gICAgICAgICAgIGF0dHJpYnV0ZSBib29sZWFu
IHJldHVyblZhbHVlOworICAgICAgICAgICBhdHRyaWJ1dGUgYm9vbGVhbiByZXR1cm5WYWx1ZTsg
IC8vIGhpc3RvcmljYWwKICAgdm9pZCBwcmV2ZW50RGVmYXVsdCgpOwogICByZWFkb25seSBhdHRy
aWJ1dGUgYm9vbGVhbiBkZWZhdWx0UHJldmVudGVkOworICByZWFkb25seSBhdHRyaWJ1dGUgYm9v
bGVhbiBjb21wb3NlZDsKIAogICBbVW5mb3JnZWFibGVdIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29s
ZWFuIGlzVHJ1c3RlZDsKLSAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVRpbWVTdGFtcCB0aW1lU3Rh
bXA7CisgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01IaWdoUmVzVGltZVN0YW1wIHRpbWVTdGFtcDsK
IAotICB2b2lkIGluaXRFdmVudChET01TdHJpbmcgdHlwZSwgb3B0aW9uYWwgYm9vbGVhbiBidWJi
bGVzID0gZmFsc2UsIG9wdGlvbmFsIGJvb2xlYW4gY2FuY2VsYWJsZSA9IGZhbHNlKTsKKyAgdm9p
ZCBpbml0RXZlbnQoRE9NU3RyaW5nIHR5cGUsIG9wdGlvbmFsIGJvb2xlYW4gYnViYmxlcyA9IGZh
bHNlLCBvcHRpb25hbCBib29sZWFuIGNhbmNlbGFibGUgPSBmYWxzZSk7IC8vIGhpc3RvcmljYWwK
IH07CiAKIGRpY3Rpb25hcnkgRXZlbnRJbml0IHsKICAgYm9vbGVhbiBidWJibGVzID0gZmFsc2U7
CiAgIGJvb2xlYW4gY2FuY2VsYWJsZSA9IGZhbHNlOworICBib29sZWFuIGNvbXBvc2VkID0gZmFs
c2U7CiB9OwogCitwYXJ0aWFsIGludGVyZmFjZSBXaW5kb3cgeworICBbUmVwbGFjZWFibGVdIHJl
YWRvbmx5IGF0dHJpYnV0ZSBhbnkgZXZlbnQ7IC8vIGhpc3RvcmljYWwKK307CiAKLVtDb25zdHJ1
Y3RvcihET01TdHJpbmcgdHlwZSwgb3B0aW9uYWwgQ3VzdG9tRXZlbnRJbml0IGV2ZW50SW5pdERp
Y3QpLAorW0NvbnN0cnVjdG9yKERPTVN0cmluZyB0eXBlLCBvcHRpb25hbCBDdXN0b21FdmVudElu
aXQgZXZlbnRJbml0RGljdCA9IHt9KSwKICBFeHBvc2VkPShXaW5kb3csV29ya2VyKV0KIGludGVy
ZmFjZSBDdXN0b21FdmVudCA6IEV2ZW50IHsKICAgcmVhZG9ubHkgYXR0cmlidXRlIGFueSBkZXRh
aWw7CkBAIC00NSwxMiArNTcsMTEgQEAgZGljdGlvbmFyeSBDdXN0b21FdmVudEluaXQgOiBFdmVu
dEluaXQgewogICBhbnkgZGV0YWlsID0gbnVsbDsKIH07CiAKLQogW0NvbnN0cnVjdG9yLAotIEV4
cG9zZWQ9KFdpbmRvdyxXb3JrZXIpXQorIEV4cG9zZWQ9KFdpbmRvdyxXb3JrZXIsQXVkaW9Xb3Jr
bGV0KV0KIGludGVyZmFjZSBFdmVudFRhcmdldCB7Ci0gIHZvaWQgYWRkRXZlbnRMaXN0ZW5lcihE
T01TdHJpbmcgdHlwZSwgRXZlbnRMaXN0ZW5lcj8gY2FsbGJhY2ssIG9wdGlvbmFsIChFdmVudExp
c3RlbmVyT3B0aW9ucyBvciBib29sZWFuKSBvcHRpb25zKTsKLSAgdm9pZCByZW1vdmVFdmVudExp
c3RlbmVyKERPTVN0cmluZyB0eXBlLCBFdmVudExpc3RlbmVyPyBjYWxsYmFjaywgb3B0aW9uYWwg
KEV2ZW50TGlzdGVuZXJPcHRpb25zIG9yIGJvb2xlYW4pIG9wdGlvbnMpOworICB2b2lkIGFkZEV2
ZW50TGlzdGVuZXIoRE9NU3RyaW5nIHR5cGUsIEV2ZW50TGlzdGVuZXI/IGNhbGxiYWNrLCBvcHRp
b25hbCAoQWRkRXZlbnRMaXN0ZW5lck9wdGlvbnMgb3IgYm9vbGVhbikgb3B0aW9ucyA9IHt9KTsK
KyAgdm9pZCByZW1vdmVFdmVudExpc3RlbmVyKERPTVN0cmluZyB0eXBlLCBFdmVudExpc3RlbmVy
PyBjYWxsYmFjaywgb3B0aW9uYWwgKEV2ZW50TGlzdGVuZXJPcHRpb25zIG9yIGJvb2xlYW4pIG9w
dGlvbnMgPSB7fSk7CiAgIGJvb2xlYW4gZGlzcGF0Y2hFdmVudChFdmVudCBldmVudCk7CiB9Owog
CkBAIC01OSwxMCArNzAsMTMgQEAgY2FsbGJhY2sgaW50ZXJmYWNlIEV2ZW50TGlzdGVuZXIgewog
fTsKIAogZGljdGlvbmFyeSBFdmVudExpc3RlbmVyT3B0aW9ucyB7Ci0gIGJvb2xlYW4gY2FwdHVy
ZTsKLSAgYm9vbGVhbiBwYXNzaXZlOworICBib29sZWFuIGNhcHR1cmUgPSBmYWxzZTsKIH07CiAK
K2RpY3Rpb25hcnkgQWRkRXZlbnRMaXN0ZW5lck9wdGlvbnMgOiBFdmVudExpc3RlbmVyT3B0aW9u
cyB7CisgIGJvb2xlYW4gcGFzc2l2ZSA9IGZhbHNlOworICBib29sZWFuIG9uY2UgPSBmYWxzZTsK
K307CiAKIFtDb25zdHJ1Y3RvciwKICBFeHBvc2VkPShXaW5kb3csV29ya2VyKV0KQEAgLTcxLDM3
ICs4NSwzMSBAQCBpbnRlcmZhY2UgQWJvcnRDb250cm9sbGVyIHsKIAogICB2b2lkIGFib3J0KCk7
CiB9OwotCi0KIFtFeHBvc2VkPShXaW5kb3csV29ya2VyKV0KIGludGVyZmFjZSBBYm9ydFNpZ25h
bCA6IEV2ZW50VGFyZ2V0IHsKICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gYWJvcnRlZDsK
IAogICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9uYWJvcnQ7CiB9OwotCi0KIGludGVyZmFjZSBt
aXhpbiBOb25FbGVtZW50UGFyZW50Tm9kZSB7CiAgIEVsZW1lbnQ/IGdldEVsZW1lbnRCeUlkKERP
TVN0cmluZyBlbGVtZW50SWQpOwogfTsKIERvY3VtZW50IGluY2x1ZGVzIE5vbkVsZW1lbnRQYXJl
bnROb2RlOwogRG9jdW1lbnRGcmFnbWVudCBpbmNsdWRlcyBOb25FbGVtZW50UGFyZW50Tm9kZTsK
IAotCiBpbnRlcmZhY2UgbWl4aW4gRG9jdW1lbnRPclNoYWRvd1Jvb3QgewogfTsKIERvY3VtZW50
IGluY2x1ZGVzIERvY3VtZW50T3JTaGFkb3dSb290OwogU2hhZG93Um9vdCBpbmNsdWRlcyBEb2N1
bWVudE9yU2hhZG93Um9vdDsKIAotCiBpbnRlcmZhY2UgbWl4aW4gUGFyZW50Tm9kZSB7CiAgIFtT
YW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgSFRNTENvbGxlY3Rpb24gY2hpbGRyZW47CiAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBFbGVtZW50PyBmaXJzdEVsZW1lbnRDaGlsZDsKICAgcmVhZG9u
bHkgYXR0cmlidXRlIEVsZW1lbnQ/IGxhc3RFbGVtZW50Q2hpbGQ7CiAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSB1bnNpZ25lZCBsb25nIGNoaWxkRWxlbWVudENvdW50OwogCi0gIFtVbnNjb3BhYmxlXSB2
b2lkIHByZXBlbmQoKE5vZGUgb3IgRE9NU3RyaW5nKS4uLiBub2Rlcyk7Ci0gIFtVbnNjb3BhYmxl
XSB2b2lkIGFwcGVuZCgoTm9kZSBvciBET01TdHJpbmcpLi4uIG5vZGVzKTsKKyAgW0NFUmVhY3Rp
b25zLCBVbnNjb3BhYmxlXSB2b2lkIHByZXBlbmQoKE5vZGUgb3IgRE9NU3RyaW5nKS4uLiBub2Rl
cyk7CisgIFtDRVJlYWN0aW9ucywgVW5zY29wYWJsZV0gdm9pZCBhcHBlbmQoKE5vZGUgb3IgRE9N
U3RyaW5nKS4uLiBub2Rlcyk7CiAKICAgRWxlbWVudD8gcXVlcnlTZWxlY3RvcihET01TdHJpbmcg
c2VsZWN0b3JzKTsKICAgW05ld09iamVjdF0gTm9kZUxpc3QgcXVlcnlTZWxlY3RvckFsbChET01T
dHJpbmcgc2VsZWN0b3JzKTsKQEAgLTExMCw3ICsxMTgsNiBAQCBEb2N1bWVudCBpbmNsdWRlcyBQ
YXJlbnROb2RlOwogRG9jdW1lbnRGcmFnbWVudCBpbmNsdWRlcyBQYXJlbnROb2RlOwogRWxlbWVu
dCBpbmNsdWRlcyBQYXJlbnROb2RlOwogCi0KIGludGVyZmFjZSBtaXhpbiBOb25Eb2N1bWVudFR5
cGVDaGlsZE5vZGUgewogICByZWFkb25seSBhdHRyaWJ1dGUgRWxlbWVudD8gcHJldmlvdXNFbGVt
ZW50U2libGluZzsKICAgcmVhZG9ubHkgYXR0cmlidXRlIEVsZW1lbnQ/IG5leHRFbGVtZW50U2li
bGluZzsKQEAgLTExOCwzMyArMTI1LDI5IEBAIGludGVyZmFjZSBtaXhpbiBOb25Eb2N1bWVudFR5
cGVDaGlsZE5vZGUgewogRWxlbWVudCBpbmNsdWRlcyBOb25Eb2N1bWVudFR5cGVDaGlsZE5vZGU7
CiBDaGFyYWN0ZXJEYXRhIGluY2x1ZGVzIE5vbkRvY3VtZW50VHlwZUNoaWxkTm9kZTsKIAotCiBp
bnRlcmZhY2UgbWl4aW4gQ2hpbGROb2RlIHsKLSAgW1Vuc2NvcGFibGVdIHZvaWQgYmVmb3JlKChO
b2RlIG9yIERPTVN0cmluZykuLi4gbm9kZXMpOwotICBbVW5zY29wYWJsZV0gdm9pZCBhZnRlcigo
Tm9kZSBvciBET01TdHJpbmcpLi4uIG5vZGVzKTsKLSAgW1Vuc2NvcGFibGVdIHZvaWQgcmVwbGFj
ZVdpdGgoKE5vZGUgb3IgRE9NU3RyaW5nKS4uLiBub2Rlcyk7Ci0gIFtVbnNjb3BhYmxlXSB2b2lk
IHJlbW92ZSgpOworICBbQ0VSZWFjdGlvbnMsIFVuc2NvcGFibGVdIHZvaWQgYmVmb3JlKChOb2Rl
IG9yIERPTVN0cmluZykuLi4gbm9kZXMpOworICBbQ0VSZWFjdGlvbnMsIFVuc2NvcGFibGVdIHZv
aWQgYWZ0ZXIoKE5vZGUgb3IgRE9NU3RyaW5nKS4uLiBub2Rlcyk7CisgIFtDRVJlYWN0aW9ucywg
VW5zY29wYWJsZV0gdm9pZCByZXBsYWNlV2l0aCgoTm9kZSBvciBET01TdHJpbmcpLi4uIG5vZGVz
KTsKKyAgW0NFUmVhY3Rpb25zLCBVbnNjb3BhYmxlXSB2b2lkIHJlbW92ZSgpOwogfTsKIERvY3Vt
ZW50VHlwZSBpbmNsdWRlcyBDaGlsZE5vZGU7CiBFbGVtZW50IGluY2x1ZGVzIENoaWxkTm9kZTsK
IENoYXJhY3RlckRhdGEgaW5jbHVkZXMgQ2hpbGROb2RlOwogCi0KIGludGVyZmFjZSBtaXhpbiBT
bG90YWJsZSB7CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBIVE1MU2xvdEVsZW1lbnQ/IGFzc2lnbmVk
U2xvdDsKIH07CiBFbGVtZW50IGluY2x1ZGVzIFNsb3RhYmxlOwogVGV4dCBpbmNsdWRlcyBTbG90
YWJsZTsKIAotCiBbRXhwb3NlZD1XaW5kb3ddCiBpbnRlcmZhY2UgTm9kZUxpc3QgewogICBnZXR0
ZXIgTm9kZT8gaXRlbSh1bnNpZ25lZCBsb25nIGluZGV4KTsKICAgcmVhZG9ubHkgYXR0cmlidXRl
IHVuc2lnbmVkIGxvbmcgbGVuZ3RoOwotLy8gIGl0ZXJhYmxlPE5vZGU+OworICBpdGVyYWJsZTxO
b2RlPjsKIH07CiAKLQogW0V4cG9zZWQ9V2luZG93LCBMZWdhY3lVbmVudW1lcmFibGVOYW1lZFBy
b3BlcnRpZXNdCiBpbnRlcmZhY2UgSFRNTENvbGxlY3Rpb24gewogICByZWFkb25seSBhdHRyaWJ1
dGUgdW5zaWduZWQgbG9uZyBsZW5ndGg7CkBAIC0xNTIsMTAgKzE1NSwxMCBAQCBpbnRlcmZhY2Ug
SFRNTENvbGxlY3Rpb24gewogICBnZXR0ZXIgRWxlbWVudD8gbmFtZWRJdGVtKERPTVN0cmluZyBu
YW1lKTsKIH07CiAKLQotW0NvbnN0cnVjdG9yKE11dGF0aW9uQ2FsbGJhY2sgY2FsbGJhY2spXQor
W0NvbnN0cnVjdG9yKE11dGF0aW9uQ2FsbGJhY2sgY2FsbGJhY2spLAorIEV4cG9zZWQ9V2luZG93
XQogaW50ZXJmYWNlIE11dGF0aW9uT2JzZXJ2ZXIgewotICB2b2lkIG9ic2VydmUoTm9kZSB0YXJn
ZXQsIG9wdGlvbmFsIE11dGF0aW9uT2JzZXJ2ZXJJbml0IG9wdGlvbnMpOworICB2b2lkIG9ic2Vy
dmUoTm9kZSB0YXJnZXQsIG9wdGlvbmFsIE11dGF0aW9uT2JzZXJ2ZXJJbml0IG9wdGlvbnMgPSB7
fSk7CiAgIHZvaWQgZGlzY29ubmVjdCgpOwogICBzZXF1ZW5jZTxNdXRhdGlvblJlY29yZD4gdGFr
ZVJlY29yZHMoKTsKIH07CkBAIC0xNzIsNyArMTc1LDYgQEAgZGljdGlvbmFyeSBNdXRhdGlvbk9i
c2VydmVySW5pdCB7CiAgIHNlcXVlbmNlPERPTVN0cmluZz4gYXR0cmlidXRlRmlsdGVyOwogfTsK
IAotCiBbRXhwb3NlZD1XaW5kb3ddCiBpbnRlcmZhY2UgTXV0YXRpb25SZWNvcmQgewogICByZWFk
b25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHR5cGU7CkBAIC0xODYsMTEgKzE4OCwxMCBAQCBpbnRl
cmZhY2UgTXV0YXRpb25SZWNvcmQgewogICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nPyBv
bGRWYWx1ZTsKIH07CiAKLQogW0V4cG9zZWQ9V2luZG93XQogaW50ZXJmYWNlIE5vZGUgOiBFdmVu
dFRhcmdldCB7CiAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IEVMRU1FTlRfTk9ERSA9IDE7Ci0gIGNv
bnN0IHVuc2lnbmVkIHNob3J0IEFUVFJJQlVURV9OT0RFID0gMjsgLy8gaGlzdG9yaWNhbAorICBj
b25zdCB1bnNpZ25lZCBzaG9ydCBBVFRSSUJVVEVfTk9ERSA9IDI7CiAgIGNvbnN0IHVuc2lnbmVk
IHNob3J0IFRFWFRfTk9ERSA9IDM7CiAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IENEQVRBX1NFQ1RJ
T05fTk9ERSA9IDQ7CiAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IEVOVElUWV9SRUZFUkVOQ0VfTk9E
RSA9IDU7IC8vIGhpc3RvcmljYWwKQEAgLTIwNCwxMSArMjA1LDExIEBAIGludGVyZmFjZSBOb2Rl
IDogRXZlbnRUYXJnZXQgewogICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgc2hvcnQgbm9k
ZVR5cGU7CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgbm9kZU5hbWU7CiAKLSAgcmVh
ZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBiYXNlVVJJOworICByZWFkb25seSBhdHRyaWJ1dGUg
VVNWU3RyaW5nIGJhc2VVUkk7CiAKICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gaXNDb25u
ZWN0ZWQ7CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBEb2N1bWVudD8gb3duZXJEb2N1bWVudDsKLSAg
Tm9kZSBnZXRSb290Tm9kZShvcHRpb25hbCBHZXRSb290Tm9kZU9wdGlvbnMgb3B0aW9ucyk7Cisg
IE5vZGUgZ2V0Um9vdE5vZGUob3B0aW9uYWwgR2V0Um9vdE5vZGVPcHRpb25zIG9wdGlvbnMgPSB7
fSk7CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBOb2RlPyBwYXJlbnROb2RlOwogICByZWFkb25seSBh
dHRyaWJ1dGUgRWxlbWVudD8gcGFyZW50RWxlbWVudDsKICAgYm9vbGVhbiBoYXNDaGlsZE5vZGVz
KCk7CkBAIC0yMTgsMTEgKzIxOSwxMSBAQCBpbnRlcmZhY2UgTm9kZSA6IEV2ZW50VGFyZ2V0IHsK
ICAgcmVhZG9ubHkgYXR0cmlidXRlIE5vZGU/IHByZXZpb3VzU2libGluZzsKICAgcmVhZG9ubHkg
YXR0cmlidXRlIE5vZGU/IG5leHRTaWJsaW5nOwogCi0gICAgICAgICAgIGF0dHJpYnV0ZSBET01T
dHJpbmc/IG5vZGVWYWx1ZTsKLSAgICAgICAgICAgYXR0cmlidXRlIERPTVN0cmluZz8gdGV4dENv
bnRlbnQ7Ci0gIHZvaWQgbm9ybWFsaXplKCk7CisgIFtDRVJlYWN0aW9uc10gYXR0cmlidXRlIERP
TVN0cmluZz8gbm9kZVZhbHVlOworICBbQ0VSZWFjdGlvbnNdIGF0dHJpYnV0ZSBET01TdHJpbmc/
IHRleHRDb250ZW50OworICBbQ0VSZWFjdGlvbnNdIHZvaWQgbm9ybWFsaXplKCk7CiAKLSAgW05l
d09iamVjdF0gTm9kZSBjbG9uZU5vZGUob3B0aW9uYWwgYm9vbGVhbiBkZWVwID0gZmFsc2UpOwor
ICBbQ0VSZWFjdGlvbnMsIE5ld09iamVjdF0gTm9kZSBjbG9uZU5vZGUob3B0aW9uYWwgYm9vbGVh
biBkZWVwID0gZmFsc2UpOwogICBib29sZWFuIGlzRXF1YWxOb2RlKE5vZGU/IG90aGVyTm9kZSk7
CiAgIGJvb2xlYW4gaXNTYW1lTm9kZShOb2RlPyBvdGhlck5vZGUpOyAvLyBoaXN0b3JpY2FsIGFs
aWFzIG9mID09PQogCkBAIC0yMzksMTAgKzI0MCwxMCBAQCBpbnRlcmZhY2UgTm9kZSA6IEV2ZW50
VGFyZ2V0IHsKICAgRE9NU3RyaW5nPyBsb29rdXBOYW1lc3BhY2VVUkkoRE9NU3RyaW5nPyBwcmVm
aXgpOwogICBib29sZWFuIGlzRGVmYXVsdE5hbWVzcGFjZShET01TdHJpbmc/IG5hbWVzcGFjZSk7
CiAKLSAgTm9kZSBpbnNlcnRCZWZvcmUoTm9kZSBub2RlLCBOb2RlPyBjaGlsZCk7Ci0gIE5vZGUg
YXBwZW5kQ2hpbGQoTm9kZSBub2RlKTsKLSAgTm9kZSByZXBsYWNlQ2hpbGQoTm9kZSBub2RlLCBO
b2RlIGNoaWxkKTsKLSAgTm9kZSByZW1vdmVDaGlsZChOb2RlIGNoaWxkKTsKKyAgW0NFUmVhY3Rp
b25zXSBOb2RlIGluc2VydEJlZm9yZShOb2RlIG5vZGUsIE5vZGU/IGNoaWxkKTsKKyAgW0NFUmVh
Y3Rpb25zXSBOb2RlIGFwcGVuZENoaWxkKE5vZGUgbm9kZSk7CisgIFtDRVJlYWN0aW9uc10gTm9k
ZSByZXBsYWNlQ2hpbGQoTm9kZSBub2RlLCBOb2RlIGNoaWxkKTsKKyAgW0NFUmVhY3Rpb25zXSBO
b2RlIHJlbW92ZUNoaWxkKE5vZGUgY2hpbGQpOwogfTsKIAogZGljdGlvbmFyeSBHZXRSb290Tm9k
ZU9wdGlvbnMgewpAQCAtMjUzLDkgKzI1NCw5IEBAIGRpY3Rpb25hcnkgR2V0Um9vdE5vZGVPcHRp
b25zIHsKICBFeHBvc2VkPVdpbmRvd10KIGludGVyZmFjZSBEb2N1bWVudCA6IE5vZGUgewogICBb
U2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIERPTUltcGxlbWVudGF0aW9uIGltcGxlbWVu
dGF0aW9uOwotICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIFVSTDsKLSAgcmVhZG9ubHkg
YXR0cmlidXRlIERPTVN0cmluZyBkb2N1bWVudFVSSTsKLSAgcmVhZG9ubHkgYXR0cmlidXRlIERP
TVN0cmluZyBvcmlnaW47CisgIHJlYWRvbmx5IGF0dHJpYnV0ZSBVU1ZTdHJpbmcgVVJMOworICBy
ZWFkb25seSBhdHRyaWJ1dGUgVVNWU3RyaW5nIGRvY3VtZW50VVJJOworICByZWFkb25seSBhdHRy
aWJ1dGUgVVNWU3RyaW5nIG9yaWdpbjsKICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBj
b21wYXRNb2RlOwogICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGNoYXJhY3RlclNldDsK
ICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBjaGFyc2V0OyAvLyBoaXN0b3JpY2FsIGFs
aWFzIG9mIC5jaGFyYWN0ZXJTZXQKQEAgLTI2OCwxNiArMjY5LDE2IEBAIGludGVyZmFjZSBEb2N1
bWVudCA6IE5vZGUgewogICBIVE1MQ29sbGVjdGlvbiBnZXRFbGVtZW50c0J5VGFnTmFtZU5TKERP
TVN0cmluZz8gbmFtZXNwYWNlLCBET01TdHJpbmcgbG9jYWxOYW1lKTsKICAgSFRNTENvbGxlY3Rp
b24gZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShET01TdHJpbmcgY2xhc3NOYW1lcyk7CiAKLSAgW05l
d09iamVjdF0gRWxlbWVudCBjcmVhdGVFbGVtZW50KERPTVN0cmluZyBsb2NhbE5hbWUsIG9wdGlv
bmFsIChET01TdHJpbmcgb3IgRWxlbWVudENyZWF0aW9uT3B0aW9ucykgb3B0aW9ucyk7Ci0gIFtO
ZXdPYmplY3RdIEVsZW1lbnQgY3JlYXRlRWxlbWVudE5TKERPTVN0cmluZz8gbmFtZXNwYWNlLCBE
T01TdHJpbmcgcXVhbGlmaWVkTmFtZSwgb3B0aW9uYWwgKERPTVN0cmluZyBvciBFbGVtZW50Q3Jl
YXRpb25PcHRpb25zKSBvcHRpb25zKTsKKyAgW0NFUmVhY3Rpb25zLCBOZXdPYmplY3RdIEVsZW1l
bnQgY3JlYXRlRWxlbWVudChET01TdHJpbmcgbG9jYWxOYW1lLCBvcHRpb25hbCAoRE9NU3RyaW5n
IG9yIEVsZW1lbnRDcmVhdGlvbk9wdGlvbnMpIG9wdGlvbnMgPSB7fSk7CisgIFtDRVJlYWN0aW9u
cywgTmV3T2JqZWN0XSBFbGVtZW50IGNyZWF0ZUVsZW1lbnROUyhET01TdHJpbmc/IG5hbWVzcGFj
ZSwgRE9NU3RyaW5nIHF1YWxpZmllZE5hbWUsIG9wdGlvbmFsIChET01TdHJpbmcgb3IgRWxlbWVu
dENyZWF0aW9uT3B0aW9ucykgb3B0aW9ucyA9IHt9KTsKICAgW05ld09iamVjdF0gRG9jdW1lbnRG
cmFnbWVudCBjcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7CiAgIFtOZXdPYmplY3RdIFRleHQgY3Jl
YXRlVGV4dE5vZGUoRE9NU3RyaW5nIGRhdGEpOwogICBbTmV3T2JqZWN0XSBDREFUQVNlY3Rpb24g
Y3JlYXRlQ0RBVEFTZWN0aW9uKERPTVN0cmluZyBkYXRhKTsKICAgW05ld09iamVjdF0gQ29tbWVu
dCBjcmVhdGVDb21tZW50KERPTVN0cmluZyBkYXRhKTsKICAgW05ld09iamVjdF0gUHJvY2Vzc2lu
Z0luc3RydWN0aW9uIGNyZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbihET01TdHJpbmcgdGFyZ2V0
LCBET01TdHJpbmcgZGF0YSk7CiAKLSAgW05ld09iamVjdF0gTm9kZSBpbXBvcnROb2RlKE5vZGUg
bm9kZSwgb3B0aW9uYWwgYm9vbGVhbiBkZWVwID0gZmFsc2UpOwotICBOb2RlIGFkb3B0Tm9kZShO
b2RlIG5vZGUpOworICBbQ0VSZWFjdGlvbnMsIE5ld09iamVjdF0gTm9kZSBpbXBvcnROb2RlKE5v
ZGUgbm9kZSwgb3B0aW9uYWwgYm9vbGVhbiBkZWVwID0gZmFsc2UpOworICBbQ0VSZWFjdGlvbnNd
IE5vZGUgYWRvcHROb2RlKE5vZGUgbm9kZSk7CiAKICAgW05ld09iamVjdF0gQXR0ciBjcmVhdGVB
dHRyaWJ1dGUoRE9NU3RyaW5nIGxvY2FsTmFtZSk7CiAgIFtOZXdPYmplY3RdIEF0dHIgY3JlYXRl
QXR0cmlidXRlTlMoRE9NU3RyaW5nPyBuYW1lc3BhY2UsIERPTVN0cmluZyBxdWFsaWZpZWROYW1l
KTsKQEAgLTI5OCw3ICsyOTksNiBAQCBkaWN0aW9uYXJ5IEVsZW1lbnRDcmVhdGlvbk9wdGlvbnMg
ewogICBET01TdHJpbmcgaXM7CiB9OwogCi0KIFtFeHBvc2VkPVdpbmRvd10KIGludGVyZmFjZSBE
T01JbXBsZW1lbnRhdGlvbiB7CiAgIFtOZXdPYmplY3RdIERvY3VtZW50VHlwZSBjcmVhdGVEb2N1
bWVudFR5cGUoRE9NU3RyaW5nIHF1YWxpZmllZE5hbWUsIERPTVN0cmluZyBwdWJsaWNJZCwgRE9N
U3RyaW5nIHN5c3RlbUlkKTsKQEAgLTMwOCw3ICszMDgsNiBAQCBpbnRlcmZhY2UgRE9NSW1wbGVt
ZW50YXRpb24gewogICBib29sZWFuIGhhc0ZlYXR1cmUoKTsgLy8gdXNlbGVzczsgYWx3YXlzIHJl
dHVybnMgdHJ1ZQogfTsKIAotCiBbRXhwb3NlZD1XaW5kb3ddCiBpbnRlcmZhY2UgRG9jdW1lbnRU
eXBlIDogTm9kZSB7CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgbmFtZTsKQEAgLTMx
NiwxMyArMzE1LDExIEBAIGludGVyZmFjZSBEb2N1bWVudFR5cGUgOiBOb2RlIHsKICAgcmVhZG9u
bHkgYXR0cmlidXRlIERPTVN0cmluZyBzeXN0ZW1JZDsKIH07CiAKLQogW0NvbnN0cnVjdG9yLAog
IEV4cG9zZWQ9V2luZG93XQogaW50ZXJmYWNlIERvY3VtZW50RnJhZ21lbnQgOiBOb2RlIHsKIH07
CiAKLQogW0V4cG9zZWQ9V2luZG93XQogaW50ZXJmYWNlIFNoYWRvd1Jvb3QgOiBEb2N1bWVudEZy
YWdtZW50IHsKICAgcmVhZG9ubHkgYXR0cmlidXRlIFNoYWRvd1Jvb3RNb2RlIG1vZGU7CkBAIC0z
MzEsNyArMzI4LDYgQEAgaW50ZXJmYWNlIFNoYWRvd1Jvb3QgOiBEb2N1bWVudEZyYWdtZW50IHsK
IAogZW51bSBTaGFkb3dSb290TW9kZSB7ICJvcGVuIiwgImNsb3NlZCIgfTsKIAotCiBbRXhwb3Nl
ZD1XaW5kb3ddCiBpbnRlcmZhY2UgRWxlbWVudCA6IE5vZGUgewogICByZWFkb25seSBhdHRyaWJ1
dGUgRE9NU3RyaW5nPyBuYW1lc3BhY2VVUkk7CkBAIC0zMzksMjggKzMzNSwyOSBAQCBpbnRlcmZh
Y2UgRWxlbWVudCA6IE5vZGUgewogICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGxvY2Fs
TmFtZTsKICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyB0YWdOYW1lOwogCi0gICAgICAg
ICAgIGF0dHJpYnV0ZSBET01TdHJpbmcgaWQ7Ci0gICAgICAgICAgIGF0dHJpYnV0ZSBET01TdHJp
bmcgY2xhc3NOYW1lOworICBbQ0VSZWFjdGlvbnNdIGF0dHJpYnV0ZSBET01TdHJpbmcgaWQ7Cisg
IFtDRVJlYWN0aW9uc10gYXR0cmlidXRlIERPTVN0cmluZyBjbGFzc05hbWU7CiAgIFtTYW1lT2Jq
ZWN0LCBQdXRGb3J3YXJkcz12YWx1ZV0gcmVhZG9ubHkgYXR0cmlidXRlIERPTVRva2VuTGlzdCBj
bGFzc0xpc3Q7Ci0gIFtVbnNjb3BhYmxlXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHNsb3Q7CisgIFtD
RVJlYWN0aW9ucywgVW5zY29wYWJsZV0gYXR0cmlidXRlIERPTVN0cmluZyBzbG90OwogCiAgIGJv
b2xlYW4gaGFzQXR0cmlidXRlcygpOwogICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRl
IE5hbWVkTm9kZU1hcCBhdHRyaWJ1dGVzOwogICBzZXF1ZW5jZTxET01TdHJpbmc+IGdldEF0dHJp
YnV0ZU5hbWVzKCk7CiAgIERPTVN0cmluZz8gZ2V0QXR0cmlidXRlKERPTVN0cmluZyBxdWFsaWZp
ZWROYW1lKTsKICAgRE9NU3RyaW5nPyBnZXRBdHRyaWJ1dGVOUyhET01TdHJpbmc/IG5hbWVzcGFj
ZSwgRE9NU3RyaW5nIGxvY2FsTmFtZSk7Ci0gIHZvaWQgc2V0QXR0cmlidXRlKERPTVN0cmluZyBx
dWFsaWZpZWROYW1lLCBET01TdHJpbmcgdmFsdWUpOwotICB2b2lkIHNldEF0dHJpYnV0ZU5TKERP
TVN0cmluZz8gbmFtZXNwYWNlLCBET01TdHJpbmcgcXVhbGlmaWVkTmFtZSwgRE9NU3RyaW5nIHZh
bHVlKTsKLSAgdm9pZCByZW1vdmVBdHRyaWJ1dGUoRE9NU3RyaW5nIHF1YWxpZmllZE5hbWUpOwot
ICB2b2lkIHJlbW92ZUF0dHJpYnV0ZU5TKERPTVN0cmluZz8gbmFtZXNwYWNlLCBET01TdHJpbmcg
bG9jYWxOYW1lKTsKKyAgW0NFUmVhY3Rpb25zXSB2b2lkIHNldEF0dHJpYnV0ZShET01TdHJpbmcg
cXVhbGlmaWVkTmFtZSwgRE9NU3RyaW5nIHZhbHVlKTsKKyAgW0NFUmVhY3Rpb25zXSB2b2lkIHNl
dEF0dHJpYnV0ZU5TKERPTVN0cmluZz8gbmFtZXNwYWNlLCBET01TdHJpbmcgcXVhbGlmaWVkTmFt
ZSwgRE9NU3RyaW5nIHZhbHVlKTsKKyAgW0NFUmVhY3Rpb25zXSB2b2lkIHJlbW92ZUF0dHJpYnV0
ZShET01TdHJpbmcgcXVhbGlmaWVkTmFtZSk7CisgIFtDRVJlYWN0aW9uc10gdm9pZCByZW1vdmVB
dHRyaWJ1dGVOUyhET01TdHJpbmc/IG5hbWVzcGFjZSwgRE9NU3RyaW5nIGxvY2FsTmFtZSk7Cisg
IFtDRVJlYWN0aW9uc10gYm9vbGVhbiB0b2dnbGVBdHRyaWJ1dGUoRE9NU3RyaW5nIHF1YWxpZmll
ZE5hbWUsIG9wdGlvbmFsIGJvb2xlYW4gZm9yY2UpOwogICBib29sZWFuIGhhc0F0dHJpYnV0ZShE
T01TdHJpbmcgcXVhbGlmaWVkTmFtZSk7CiAgIGJvb2xlYW4gaGFzQXR0cmlidXRlTlMoRE9NU3Ry
aW5nPyBuYW1lc3BhY2UsIERPTVN0cmluZyBsb2NhbE5hbWUpOwogCiAgIEF0dHI/IGdldEF0dHJp
YnV0ZU5vZGUoRE9NU3RyaW5nIHF1YWxpZmllZE5hbWUpOwogICBBdHRyPyBnZXRBdHRyaWJ1dGVO
b2RlTlMoRE9NU3RyaW5nPyBuYW1lc3BhY2UsIERPTVN0cmluZyBsb2NhbE5hbWUpOwotICBBdHRy
PyBzZXRBdHRyaWJ1dGVOb2RlKEF0dHIgYXR0cik7Ci0gIEF0dHI/IHNldEF0dHJpYnV0ZU5vZGVO
UyhBdHRyIGF0dHIpOwotICBBdHRyIHJlbW92ZUF0dHJpYnV0ZU5vZGUoQXR0ciBhdHRyKTsKKyAg
W0NFUmVhY3Rpb25zXSBBdHRyPyBzZXRBdHRyaWJ1dGVOb2RlKEF0dHIgYXR0cik7CisgIFtDRVJl
YWN0aW9uc10gQXR0cj8gc2V0QXR0cmlidXRlTm9kZU5TKEF0dHIgYXR0cik7CisgIFtDRVJlYWN0
aW9uc10gQXR0ciByZW1vdmVBdHRyaWJ1dGVOb2RlKEF0dHIgYXR0cik7CiAKICAgU2hhZG93Um9v
dCBhdHRhY2hTaGFkb3coU2hhZG93Um9vdEluaXQgaW5pdCk7CiAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBTaGFkb3dSb290PyBzaGFkb3dSb290OwpAQCAtMzczLDQxICszNzAsMzkgQEAgaW50ZXJmYWNl
IEVsZW1lbnQgOiBOb2RlIHsKICAgSFRNTENvbGxlY3Rpb24gZ2V0RWxlbWVudHNCeVRhZ05hbWVO
UyhET01TdHJpbmc/IG5hbWVzcGFjZSwgRE9NU3RyaW5nIGxvY2FsTmFtZSk7CiAgIEhUTUxDb2xs
ZWN0aW9uIGdldEVsZW1lbnRzQnlDbGFzc05hbWUoRE9NU3RyaW5nIGNsYXNzTmFtZXMpOwogCi0g
IEVsZW1lbnQ/IGluc2VydEFkamFjZW50RWxlbWVudChET01TdHJpbmcgd2hlcmUsIEVsZW1lbnQg
ZWxlbWVudCk7IC8vIGhpc3RvcmljYWwKKyAgW0NFUmVhY3Rpb25zXSBFbGVtZW50PyBpbnNlcnRB
ZGphY2VudEVsZW1lbnQoRE9NU3RyaW5nIHdoZXJlLCBFbGVtZW50IGVsZW1lbnQpOyAvLyBoaXN0
b3JpY2FsCiAgIHZvaWQgaW5zZXJ0QWRqYWNlbnRUZXh0KERPTVN0cmluZyB3aGVyZSwgRE9NU3Ry
aW5nIGRhdGEpOyAvLyBoaXN0b3JpY2FsCiB9OwogCiBkaWN0aW9uYXJ5IFNoYWRvd1Jvb3RJbml0
IHsKLS8vICByZXF1aXJlZCBTaGFkb3dSb290TW9kZSBtb2RlOworICByZXF1aXJlZCBTaGFkb3dS
b290TW9kZSBtb2RlOwogfTsKIAotCi1bRXhwb3NlZD1XaW5kb3csIExlZ2FjeVVuZW51bWVyYWJs
ZU5hbWVkUHJvcGVydGllc10KK1tFeHBvc2VkPVdpbmRvdywKKyBMZWdhY3lVbmVudW1lcmFibGVO
YW1lZFByb3BlcnRpZXNdCiBpbnRlcmZhY2UgTmFtZWROb2RlTWFwIHsKICAgcmVhZG9ubHkgYXR0
cmlidXRlIHVuc2lnbmVkIGxvbmcgbGVuZ3RoOwogICBnZXR0ZXIgQXR0cj8gaXRlbSh1bnNpZ25l
ZCBsb25nIGluZGV4KTsKICAgZ2V0dGVyIEF0dHI/IGdldE5hbWVkSXRlbShET01TdHJpbmcgcXVh
bGlmaWVkTmFtZSk7CiAgIEF0dHI/IGdldE5hbWVkSXRlbU5TKERPTVN0cmluZz8gbmFtZXNwYWNl
LCBET01TdHJpbmcgbG9jYWxOYW1lKTsKLSAgQXR0cj8gc2V0TmFtZWRJdGVtKEF0dHIgYXR0cik7
Ci0gIEF0dHI/IHNldE5hbWVkSXRlbU5TKEF0dHIgYXR0cik7Ci0gIEF0dHIgcmVtb3ZlTmFtZWRJ
dGVtKERPTVN0cmluZyBxdWFsaWZpZWROYW1lKTsKLSAgQXR0ciByZW1vdmVOYW1lZEl0ZW1OUyhE
T01TdHJpbmc/IG5hbWVzcGFjZSwgRE9NU3RyaW5nIGxvY2FsTmFtZSk7CisgIFtDRVJlYWN0aW9u
c10gQXR0cj8gc2V0TmFtZWRJdGVtKEF0dHIgYXR0cik7CisgIFtDRVJlYWN0aW9uc10gQXR0cj8g
c2V0TmFtZWRJdGVtTlMoQXR0ciBhdHRyKTsKKyAgW0NFUmVhY3Rpb25zXSBBdHRyIHJlbW92ZU5h
bWVkSXRlbShET01TdHJpbmcgcXVhbGlmaWVkTmFtZSk7CisgIFtDRVJlYWN0aW9uc10gQXR0ciBy
ZW1vdmVOYW1lZEl0ZW1OUyhET01TdHJpbmc/IG5hbWVzcGFjZSwgRE9NU3RyaW5nIGxvY2FsTmFt
ZSk7CiB9OwogCi0KIFtFeHBvc2VkPVdpbmRvd10KIGludGVyZmFjZSBBdHRyIDogTm9kZSB7CiAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmc/IG5hbWVzcGFjZVVSSTsKICAgcmVhZG9ubHkg
YXR0cmlidXRlIERPTVN0cmluZz8gcHJlZml4OwogICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3Ry
aW5nIGxvY2FsTmFtZTsKICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBuYW1lOwotICAg
ICAgICAgICBhdHRyaWJ1dGUgRE9NU3RyaW5nIHZhbHVlOworICBbQ0VSZWFjdGlvbnNdIGF0dHJp
YnV0ZSBET01TdHJpbmcgdmFsdWU7CiAKICAgcmVhZG9ubHkgYXR0cmlidXRlIEVsZW1lbnQ/IG93
bmVyRWxlbWVudDsKIAogICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBzcGVjaWZpZWQ7IC8v
IHVzZWxlc3M7IGFsd2F5cyByZXR1cm5zIHRydWUKIH07Ci0KIFtFeHBvc2VkPVdpbmRvd10KIGlu
dGVyZmFjZSBDaGFyYWN0ZXJEYXRhIDogTm9kZSB7CiAgIGF0dHJpYnV0ZSBbVHJlYXROdWxsQXM9
RW1wdHlTdHJpbmddIERPTVN0cmluZyBkYXRhOwpAQCAtNDE5LDI5ICs0MTQsMjQgQEAgaW50ZXJm
YWNlIENoYXJhY3RlckRhdGEgOiBOb2RlIHsKICAgdm9pZCByZXBsYWNlRGF0YSh1bnNpZ25lZCBs
b25nIG9mZnNldCwgdW5zaWduZWQgbG9uZyBjb3VudCwgRE9NU3RyaW5nIGRhdGEpOwogfTsKIAot
CiBbQ29uc3RydWN0b3Iob3B0aW9uYWwgRE9NU3RyaW5nIGRhdGEgPSAiIiksCiAgRXhwb3NlZD1X
aW5kb3ddCiBpbnRlcmZhY2UgVGV4dCA6IENoYXJhY3RlckRhdGEgewogICBbTmV3T2JqZWN0XSBU
ZXh0IHNwbGl0VGV4dCh1bnNpZ25lZCBsb25nIG9mZnNldCk7CiAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBET01TdHJpbmcgd2hvbGVUZXh0OwogfTsKLQogW0V4cG9zZWQ9V2luZG93XQogaW50ZXJmYWNl
IENEQVRBU2VjdGlvbiA6IFRleHQgewogfTsKLQogW0V4cG9zZWQ9V2luZG93XQogaW50ZXJmYWNl
IFByb2Nlc3NpbmdJbnN0cnVjdGlvbiA6IENoYXJhY3RlckRhdGEgewogICByZWFkb25seSBhdHRy
aWJ1dGUgRE9NU3RyaW5nIHRhcmdldDsKIH07Ci0KIFtDb25zdHJ1Y3RvcihvcHRpb25hbCBET01T
dHJpbmcgZGF0YSA9ICIiKSwKICBFeHBvc2VkPVdpbmRvd10KIGludGVyZmFjZSBDb21tZW50IDog
Q2hhcmFjdGVyRGF0YSB7CiB9OwogCi0KIFtFeHBvc2VkPVdpbmRvd10KIGludGVyZmFjZSBBYnN0
cmFjdFJhbmdlIHsKICAgcmVhZG9ubHkgYXR0cmlidXRlIE5vZGUgc3RhcnRDb250YWluZXI7CkBA
IC00NTEsNyArNDQxLDE1IEBAIGludGVyZmFjZSBBYnN0cmFjdFJhbmdlIHsKICAgcmVhZG9ubHkg
YXR0cmlidXRlIGJvb2xlYW4gY29sbGFwc2VkOwogfTsKIAotW0V4cG9zZWQ9V2luZG93XQorZGlj
dGlvbmFyeSBTdGF0aWNSYW5nZUluaXQgeworICByZXF1aXJlZCBOb2RlIHN0YXJ0Q29udGFpbmVy
OworICByZXF1aXJlZCB1bnNpZ25lZCBsb25nIHN0YXJ0T2Zmc2V0OworICByZXF1aXJlZCBOb2Rl
IGVuZENvbnRhaW5lcjsKKyAgcmVxdWlyZWQgdW5zaWduZWQgbG9uZyBlbmRPZmZzZXQ7Cit9Owor
CitbQ29uc3RydWN0b3IoU3RhdGljUmFuZ2VJbml0IGluaXQpLAorIEV4cG9zZWQ9V2luZG93XQog
aW50ZXJmYWNlIFN0YXRpY1JhbmdlIDogQWJzdHJhY3RSYW5nZSB7CiB9OwogCkBAIC00NzYsMTEg
KzQ3NCwxMSBAQCBpbnRlcmZhY2UgUmFuZ2UgOiBBYnN0cmFjdFJhbmdlIHsKICAgY29uc3QgdW5z
aWduZWQgc2hvcnQgRU5EX1RPX1NUQVJUID0gMzsKICAgc2hvcnQgY29tcGFyZUJvdW5kYXJ5UG9p
bnRzKHVuc2lnbmVkIHNob3J0IGhvdywgUmFuZ2Ugc291cmNlUmFuZ2UpOwogCi0gIHZvaWQgZGVs
ZXRlQ29udGVudHMoKTsKLSAgW05ld09iamVjdF0gRG9jdW1lbnRGcmFnbWVudCBleHRyYWN0Q29u
dGVudHMoKTsKLSAgW05ld09iamVjdF0gRG9jdW1lbnRGcmFnbWVudCBjbG9uZUNvbnRlbnRzKCk7
Ci0gIHZvaWQgaW5zZXJ0Tm9kZShOb2RlIG5vZGUpOwotICB2b2lkIHN1cnJvdW5kQ29udGVudHMo
Tm9kZSBuZXdQYXJlbnQpOworICBbQ0VSZWFjdGlvbnNdIHZvaWQgZGVsZXRlQ29udGVudHMoKTsK
KyAgW0NFUmVhY3Rpb25zLCBOZXdPYmplY3RdIERvY3VtZW50RnJhZ21lbnQgZXh0cmFjdENvbnRl
bnRzKCk7CisgIFtDRVJlYWN0aW9ucywgTmV3T2JqZWN0XSBEb2N1bWVudEZyYWdtZW50IGNsb25l
Q29udGVudHMoKTsKKyAgW0NFUmVhY3Rpb25zXSB2b2lkIGluc2VydE5vZGUoTm9kZSBub2RlKTsK
KyAgW0NFUmVhY3Rpb25zXSB2b2lkIHN1cnJvdW5kQ29udGVudHMoTm9kZSBuZXdQYXJlbnQpOwog
CiAgIFtOZXdPYmplY3RdIFJhbmdlIGNsb25lUmFuZ2UoKTsKICAgdm9pZCBkZXRhY2goKTsKQEAg
LTQ5Myw3ICs0OTEsNiBAQCBpbnRlcmZhY2UgUmFuZ2UgOiBBYnN0cmFjdFJhbmdlIHsKICAgc3Ry
aW5naWZpZXI7CiB9OwogCi0KIFtFeHBvc2VkPVdpbmRvd10KIGludGVyZmFjZSBOb2RlSXRlcmF0
b3IgewogICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIE5vZGUgcm9vdDsKQEAgLTUw
OCw3ICs1MDUsNiBAQCBpbnRlcmZhY2UgTm9kZUl0ZXJhdG9yIHsKICAgdm9pZCBkZXRhY2goKTsK
IH07CiAKLQogW0V4cG9zZWQ9V2luZG93XQogaW50ZXJmYWNlIFRyZWVXYWxrZXIgewogICBbU2Ft
ZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIE5vZGUgcm9vdDsKQEAgLTUyNCw3ICs1MjAsNiBA
QCBpbnRlcmZhY2UgVHJlZVdhbGtlciB7CiAgIE5vZGU/IHByZXZpb3VzTm9kZSgpOwogICBOb2Rl
PyBuZXh0Tm9kZSgpOwogfTsKLQogW0V4cG9zZWQ9V2luZG93XQogY2FsbGJhY2sgaW50ZXJmYWNl
IE5vZGVGaWx0ZXIgewogICAvLyBDb25zdGFudHMgZm9yIGFjY2VwdE5vZGUoKQpAQCAtNTM1LDcg
KzUzMCw3IEBAIGNhbGxiYWNrIGludGVyZmFjZSBOb2RlRmlsdGVyIHsKICAgLy8gQ29uc3RhbnRz
IGZvciB3aGF0VG9TaG93CiAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgU0hPV19BTEwgPSAweEZGRkZG
RkZGOwogICBjb25zdCB1bnNpZ25lZCBsb25nIFNIT1dfRUxFTUVOVCA9IDB4MTsKLSAgY29uc3Qg
dW5zaWduZWQgbG9uZyBTSE9XX0FUVFJJQlVURSA9IDB4MjsgLy8gaGlzdG9yaWNhbAorICBjb25z
dCB1bnNpZ25lZCBsb25nIFNIT1dfQVRUUklCVVRFID0gMHgyOwogICBjb25zdCB1bnNpZ25lZCBs
b25nIFNIT1dfVEVYVCA9IDB4NDsKICAgY29uc3QgdW5zaWduZWQgbG9uZyBTSE9XX0NEQVRBX1NF
Q1RJT04gPSAweDg7CiAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgU0hPV19FTlRJVFlfUkVGRVJFTkNF
ID0gMHgxMDsgLy8gaGlzdG9yaWNhbApAQCAtNTUwLDcgKzU0NSw3IEBAIGNhbGxiYWNrIGludGVy
ZmFjZSBOb2RlRmlsdGVyIHsKICAgdW5zaWduZWQgc2hvcnQgYWNjZXB0Tm9kZShOb2RlIG5vZGUp
OwogfTsKIAotCitbRXhwb3NlZD1XaW5kb3ddCiBpbnRlcmZhY2UgRE9NVG9rZW5MaXN0IHsKICAg
cmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbGVuZ3RoOwogICBnZXR0ZXIgRE9NU3Ry
aW5nPyBpdGVtKHVuc2lnbmVkIGxvbmcgaW5kZXgpOwpAQCAtNTYxLDUgKzU1Niw1MyBAQCBpbnRl
cmZhY2UgRE9NVG9rZW5MaXN0IHsKICAgW0NFUmVhY3Rpb25zXSBib29sZWFuIHJlcGxhY2UoRE9N
U3RyaW5nIHRva2VuLCBET01TdHJpbmcgbmV3VG9rZW4pOwogICBib29sZWFuIHN1cHBvcnRzKERP
TVN0cmluZyB0b2tlbik7CiAgIFtDRVJlYWN0aW9uc10gc3RyaW5naWZpZXIgYXR0cmlidXRlIERP
TVN0cmluZyB2YWx1ZTsKLSAgLy8gIGl0ZXJhYmxlPERPTVN0cmluZz47CisgIGl0ZXJhYmxlPERP
TVN0cmluZz47Cit9OworCitbRXhwb3NlZD1XaW5kb3ddCitpbnRlcmZhY2UgWFBhdGhSZXN1bHQg
eworICBjb25zdCB1bnNpZ25lZCBzaG9ydCBBTllfVFlQRSA9IDA7CisgIGNvbnN0IHVuc2lnbmVk
IHNob3J0IE5VTUJFUl9UWVBFID0gMTsKKyAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1RSSU5HX1RZ
UEUgPSAyOworICBjb25zdCB1bnNpZ25lZCBzaG9ydCBCT09MRUFOX1RZUEUgPSAzOworICBjb25z
dCB1bnNpZ25lZCBzaG9ydCBVTk9SREVSRURfTk9ERV9JVEVSQVRPUl9UWVBFID0gNDsKKyAgY29u
c3QgdW5zaWduZWQgc2hvcnQgT1JERVJFRF9OT0RFX0lURVJBVE9SX1RZUEUgPSA1OworICBjb25z
dCB1bnNpZ25lZCBzaG9ydCBVTk9SREVSRURfTk9ERV9TTkFQU0hPVF9UWVBFID0gNjsKKyAgY29u
c3QgdW5zaWduZWQgc2hvcnQgT1JERVJFRF9OT0RFX1NOQVBTSE9UX1RZUEUgPSA3OworICBjb25z
dCB1bnNpZ25lZCBzaG9ydCBBTllfVU5PUkRFUkVEX05PREVfVFlQRSA9IDg7CisgIGNvbnN0IHVu
c2lnbmVkIHNob3J0IEZJUlNUX09SREVSRURfTk9ERV9UWVBFID0gOTsKKworICByZWFkb25seSBh
dHRyaWJ1dGUgdW5zaWduZWQgc2hvcnQgcmVzdWx0VHlwZTsKKyAgcmVhZG9ubHkgYXR0cmlidXRl
IHVucmVzdHJpY3RlZCBkb3VibGUgbnVtYmVyVmFsdWU7CisgIHJlYWRvbmx5IGF0dHJpYnV0ZSBE
T01TdHJpbmcgc3RyaW5nVmFsdWU7CisgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIGJvb2xl
YW5WYWx1ZTsKKyAgcmVhZG9ubHkgYXR0cmlidXRlIE5vZGU/IHNpbmdsZU5vZGVWYWx1ZTsKKyAg
cmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gaW52YWxpZEl0ZXJhdG9yU3RhdGU7CisgIHJlYWRv
bmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIHNuYXBzaG90TGVuZ3RoOworCisgIE5vZGU/IGl0
ZXJhdGVOZXh0KCk7CisgIE5vZGU/IHNuYXBzaG90SXRlbSh1bnNpZ25lZCBsb25nIGluZGV4KTsK
K307CisKK1tFeHBvc2VkPVdpbmRvd10KK2ludGVyZmFjZSBYUGF0aEV4cHJlc3Npb24geworICAv
LyBYUGF0aFJlc3VsdC5BTllfVFlQRSA9IDAKKyAgWFBhdGhSZXN1bHQgZXZhbHVhdGUoTm9kZSBj
b250ZXh0Tm9kZSwgb3B0aW9uYWwgdW5zaWduZWQgc2hvcnQgdHlwZSA9IDAsIG9wdGlvbmFsIFhQ
YXRoUmVzdWx0PyByZXN1bHQgPSBudWxsKTsKIH07CisKK2NhbGxiYWNrIGludGVyZmFjZSBYUGF0
aE5TUmVzb2x2ZXIgeworICBET01TdHJpbmc/IGxvb2t1cE5hbWVzcGFjZVVSSShET01TdHJpbmc/
IHByZWZpeCk7Cit9OworCitpbnRlcmZhY2UgbWl4aW4gWFBhdGhFdmFsdWF0b3JCYXNlIHsKKyAg
W05ld09iamVjdF0gWFBhdGhFeHByZXNzaW9uIGNyZWF0ZUV4cHJlc3Npb24oRE9NU3RyaW5nIGV4
cHJlc3Npb24sIG9wdGlvbmFsIFhQYXRoTlNSZXNvbHZlcj8gcmVzb2x2ZXIgPSBudWxsKTsKKyAg
WFBhdGhOU1Jlc29sdmVyIGNyZWF0ZU5TUmVzb2x2ZXIoTm9kZSBub2RlUmVzb2x2ZXIpOworICAv
LyBYUGF0aFJlc3VsdC5BTllfVFlQRSA9IDAKKyAgWFBhdGhSZXN1bHQgZXZhbHVhdGUoRE9NU3Ry
aW5nIGV4cHJlc3Npb24sIE5vZGUgY29udGV4dE5vZGUsIG9wdGlvbmFsIFhQYXRoTlNSZXNvbHZl
cj8gcmVzb2x2ZXIgPSBudWxsLCBvcHRpb25hbCB1bnNpZ25lZCBzaG9ydCB0eXBlID0gMCwgb3B0
aW9uYWwgWFBhdGhSZXN1bHQ/IHJlc3VsdCA9IG51bGwpOworfTsKK0RvY3VtZW50IGluY2x1ZGVz
IFhQYXRoRXZhbHVhdG9yQmFzZTsKKworW0V4cG9zZWQ9V2luZG93LCBDb25zdHJ1Y3Rvcl0KK2lu
dGVyZmFjZSBYUGF0aEV2YWx1YXRvciB7fTsKKworWFBhdGhFdmFsdWF0b3IgaW5jbHVkZXMgWFBh
dGhFdmFsdWF0b3JCYXNlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9pbnRlcmZhY2VzL2h0bWwuaWRsIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbnRlcmZhY2VzL2h0bWwuaWRsCmluZGV4IDQ5MzQ4
YTcyM2IzNTkzNTFhZmZiODE0NmYwMGEwMGJiNGU2YTMxOTkuLmQ4NTZjZDU3OGFhMGEwZDE1ZjA5
ZDBjOTViZWJmNDhiMGY5NWMwZDYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaW50ZXJmYWNlcy9odG1sLmlkbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ludGVyZmFjZXMvaHRtbC5pZGwKQEAg
LTEsOCArMSwxMyBAQAorLy8gR0VORVJBVEVEIENPTlRFTlQgLSBETyBOT1QgRURJVAorLy8gQ29u
dGVudCB3YXMgYXV0b21hdGljYWxseSBleHRyYWN0ZWQgYnkgUmVmZnkgaW50byByZWZmeS1yZXBv
cnRzCisvLyAoaHR0cHM6Ly9naXRodWIuY29tL3RpZG91c3QvcmVmZnktcmVwb3J0cykKKy8vIFNv
dXJjZTogSFRNTCBTdGFuZGFyZCAoaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy8pCisKIFtF
eHBvc2VkPVdpbmRvdywKICBMZWdhY3lVbmVudW1lcmFibGVOYW1lZFByb3BlcnRpZXNdCiBpbnRl
cmZhY2UgSFRNTEFsbENvbGxlY3Rpb24gewogICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQg
bG9uZyBsZW5ndGg7Ci0gIGdldHRlciBFbGVtZW50PyAodW5zaWduZWQgbG9uZyBpbmRleCk7Cisg
IGdldHRlciBFbGVtZW50ICh1bnNpZ25lZCBsb25nIGluZGV4KTsKICAgZ2V0dGVyIChIVE1MQ29s
bGVjdGlvbiBvciBFbGVtZW50KT8gbmFtZWRJdGVtKERPTVN0cmluZyBuYW1lKTsKICAgKEhUTUxD
b2xsZWN0aW9uIG9yIEVsZW1lbnQpPyBpdGVtKG9wdGlvbmFsIERPTVN0cmluZyBuYW1lT3JJbmRl
eCk7CiAKQEAgLTE1LDYgKzIwLDcgQEAgaW50ZXJmYWNlIEhUTUxGb3JtQ29udHJvbHNDb2xsZWN0
aW9uIDogSFRNTENvbGxlY3Rpb24gewogICBnZXR0ZXIgKFJhZGlvTm9kZUxpc3Qgb3IgRWxlbWVu
dCk/IG5hbWVkSXRlbShET01TdHJpbmcgbmFtZSk7IC8vIHNoYWRvd3MgaW5oZXJpdGVkIG5hbWVk
SXRlbSgpCiB9OwogCitbRXhwb3NlZD1XaW5kb3ddCiBpbnRlcmZhY2UgUmFkaW9Ob2RlTGlzdCA6
IE5vZGVMaXN0IHsKICAgYXR0cmlidXRlIERPTVN0cmluZyB2YWx1ZTsKIH07CkBAIC02NSwxNSAr
NzEsMTQgQEAgcGFydGlhbCBpbnRlcmZhY2UgRG9jdW1lbnQgewogICByZWFkb25seSBhdHRyaWJ1
dGUgSFRNTE9yU1ZHU2NyaXB0RWxlbWVudD8gY3VycmVudFNjcmlwdDsgLy8gY2xhc3NpYyBzY3Jp
cHRzIGluIGEgZG9jdW1lbnQgdHJlZSBvbmx5CiAKICAgLy8gZHluYW1pYyBtYXJrdXAgaW5zZXJ0
aW9uCi0gIFtDRVJlYWN0aW9uc10gRG9jdW1lbnQgb3BlbihvcHRpb25hbCBET01TdHJpbmcgdHlw
ZSA9ICJ0ZXh0L2h0bWwiLCBvcHRpb25hbCBET01TdHJpbmcgcmVwbGFjZSA9ICIiKTsKLSAgV2lu
ZG93UHJveHkgb3BlbihVU1ZTdHJpbmcgdXJsLCBET01TdHJpbmcgbmFtZSwgRE9NU3RyaW5nIGZl
YXR1cmVzKTsKKyAgW0NFUmVhY3Rpb25zXSBEb2N1bWVudCBvcGVuKG9wdGlvbmFsIERPTVN0cmlu
ZyB1bnVzZWQxLCBvcHRpb25hbCBET01TdHJpbmcgdW51c2VkMik7IC8vIGJvdGggYXJndW1lbnRz
IGFyZSBpZ25vcmVkCisgIFdpbmRvd1Byb3h5PyBvcGVuKFVTVlN0cmluZyB1cmwsIERPTVN0cmlu
ZyBuYW1lLCBET01TdHJpbmcgZmVhdHVyZXMpOwogICBbQ0VSZWFjdGlvbnNdIHZvaWQgY2xvc2Uo
KTsKICAgW0NFUmVhY3Rpb25zXSB2b2lkIHdyaXRlKERPTVN0cmluZy4uLiB0ZXh0KTsKICAgW0NF
UmVhY3Rpb25zXSB2b2lkIHdyaXRlbG4oRE9NU3RyaW5nLi4uIHRleHQpOwogCiAgIC8vIHVzZXIg
aW50ZXJhY3Rpb24KICAgcmVhZG9ubHkgYXR0cmlidXRlIFdpbmRvd1Byb3h5PyBkZWZhdWx0Vmll
dzsKLSAgcmVhZG9ubHkgYXR0cmlidXRlIEVsZW1lbnQ/IGFjdGl2ZUVsZW1lbnQ7CiAgIGJvb2xl
YW4gaGFzRm9jdXMoKTsKICAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGRlc2ln
bk1vZGU7CiAgIFtDRVJlYWN0aW9uc10gYm9vbGVhbiBleGVjQ29tbWFuZChET01TdHJpbmcgY29t
bWFuZElkLCBvcHRpb25hbCBib29sZWFuIHNob3dVSSA9IGZhbHNlLCBvcHRpb25hbCBET01TdHJp
bmcgdmFsdWUgPSAiIik7CkBAIC04NSwxMCArOTAsMTYgQEAgcGFydGlhbCBpbnRlcmZhY2UgRG9j
dW1lbnQgewogCiAgIC8vIHNwZWNpYWwgZXZlbnQgaGFuZGxlciBJREwgYXR0cmlidXRlcyB0aGF0
IG9ubHkgYXBwbHkgdG8gRG9jdW1lbnQgb2JqZWN0cwogICBbTGVuaWVudFRoaXNdIGF0dHJpYnV0
ZSBFdmVudEhhbmRsZXIgb25yZWFkeXN0YXRlY2hhbmdlOworCisgIC8vIGFsc28gaGFzIG9ic29s
ZXRlIG1lbWJlcnMKIH07CiBEb2N1bWVudCBpbmNsdWRlcyBHbG9iYWxFdmVudEhhbmRsZXJzOwog
RG9jdW1lbnQgaW5jbHVkZXMgRG9jdW1lbnRBbmRFbGVtZW50RXZlbnRIYW5kbGVyczsKIAorcGFy
dGlhbCBpbnRlcmZhY2UgbWl4aW4gRG9jdW1lbnRPclNoYWRvd1Jvb3QgeworICByZWFkb25seSBh
dHRyaWJ1dGUgRWxlbWVudD8gYWN0aXZlRWxlbWVudDsKK307CisKIFtFeHBvc2VkPVdpbmRvdywK
ICBIVE1MQ29uc3RydWN0b3JdCiBpbnRlcmZhY2UgSFRNTEVsZW1lbnQgOiBFbGVtZW50IHsKQEAg
LTk3LDMzICsxMDgsNDAgQEAgaW50ZXJmYWNlIEhUTUxFbGVtZW50IDogRWxlbWVudCB7CiAgIFtD
RVJlYWN0aW9uc10gYXR0cmlidXRlIERPTVN0cmluZyBsYW5nOwogICBbQ0VSZWFjdGlvbnNdIGF0
dHJpYnV0ZSBib29sZWFuIHRyYW5zbGF0ZTsKICAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgRE9N
U3RyaW5nIGRpcjsKLSAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmdN
YXAgZGF0YXNldDsKIAogICAvLyB1c2VyIGludGVyYWN0aW9uCiAgIFtDRVJlYWN0aW9uc10gYXR0
cmlidXRlIGJvb2xlYW4gaGlkZGVuOwogICB2b2lkIGNsaWNrKCk7Ci0gIFtDRVJlYWN0aW9uc10g
YXR0cmlidXRlIGxvbmcgdGFiSW5kZXg7Ci0gIHZvaWQgZm9jdXMob3B0aW9uYWwgRm9jdXNPcHRp
b25zIG9wdGlvbnMpOwotICB2b2lkIGJsdXIoKTsKICAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUg
RE9NU3RyaW5nIGFjY2Vzc0tleTsKICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBhY2Nl
c3NLZXlMYWJlbDsKICAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgYm9vbGVhbiBkcmFnZ2FibGU7
CiAgIFtDRVJlYWN0aW9uc10gYXR0cmlidXRlIGJvb2xlYW4gc3BlbGxjaGVjazsKKyAgW0NFUmVh
Y3Rpb25zXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGF1dG9jYXBpdGFsaXplOwogCiAgIFtDRVJlYWN0
aW9uc10gYXR0cmlidXRlIFtUcmVhdE51bGxBcz1FbXB0eVN0cmluZ10gRE9NU3RyaW5nIGlubmVy
VGV4dDsKLX07CiAKLWRpY3Rpb25hcnkgRm9jdXNPcHRpb25zIHsKLSAgYm9vbGVhbiBwcmV2ZW50
U2Nyb2xsID0gZmFsc2U7CisgIEVsZW1lbnRJbnRlcm5hbHMgYXR0YWNoSW50ZXJuYWxzKCk7CiB9
OwogCiBIVE1MRWxlbWVudCBpbmNsdWRlcyBHbG9iYWxFdmVudEhhbmRsZXJzOwogSFRNTEVsZW1l
bnQgaW5jbHVkZXMgRG9jdW1lbnRBbmRFbGVtZW50RXZlbnRIYW5kbGVyczsKIEhUTUxFbGVtZW50
IGluY2x1ZGVzIEVsZW1lbnRDb250ZW50RWRpdGFibGU7CitIVE1MRWxlbWVudCBpbmNsdWRlcyBI
VE1MT3JTVkdFbGVtZW50OwogCiAvLyBOb3RlOiBpbnRlbnRpb25hbGx5IG5vdCBbSFRNTENvbnN0
cnVjdG9yXQorW0V4cG9zZWQ9V2luZG93XQogaW50ZXJmYWNlIEhUTUxVbmtub3duRWxlbWVudCA6
IEhUTUxFbGVtZW50IHsgfTsKIAoraW50ZXJmYWNlIG1peGluIEhUTUxPclNWR0VsZW1lbnQgewor
ICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZ01hcCBkYXRhc2V0Owor
ICBhdHRyaWJ1dGUgRE9NU3RyaW5nIG5vbmNlOyAvLyBpbnRlbnRpb25hbGx5IG5vIFtDRVJlYWN0
aW9uc10KKworICBbQ0VSZWFjdGlvbnNdIGF0dHJpYnV0ZSBib29sZWFuIGF1dG9mb2N1czsKKyAg
W0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgbG9uZyB0YWJJbmRleDsKKyAgdm9pZCBmb2N1cyhvcHRp
b25hbCBGb2N1c09wdGlvbnMgb3B0aW9ucyA9IHt9KTsKKyAgdm9pZCBibHVyKCk7Cit9OworCiBb
RXhwb3NlZD1XaW5kb3csCiAgT3ZlcnJpZGVCdWlsdGluc10KIGludGVyZmFjZSBET01TdHJpbmdN
YXAgewpAQCAtMTY0LDE0ICsxODIsMTMgQEAgaW50ZXJmYWNlIEhUTUxMaW5rRWxlbWVudCA6IEhU
TUxFbGVtZW50IHsKICAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGFzOyAvLyAo
ZGVmYXVsdCAiIikKICAgW1NhbWVPYmplY3QsIFB1dEZvcndhcmRzPXZhbHVlXSByZWFkb25seSBh
dHRyaWJ1dGUgRE9NVG9rZW5MaXN0IHJlbExpc3Q7CiAgIFtDRVJlYWN0aW9uc10gYXR0cmlidXRl
IERPTVN0cmluZyBtZWRpYTsKLSAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIG5v
bmNlOwogICBbQ0VSZWFjdGlvbnNdIGF0dHJpYnV0ZSBET01TdHJpbmcgaW50ZWdyaXR5OwogICBb
Q0VSZWFjdGlvbnNdIGF0dHJpYnV0ZSBET01TdHJpbmcgaHJlZmxhbmc7CiAgIFtDRVJlYWN0aW9u
c10gYXR0cmlidXRlIERPTVN0cmluZyB0eXBlOwogICBbU2FtZU9iamVjdCwgUHV0Rm9yd2FyZHM9
dmFsdWVdIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01Ub2tlbkxpc3Qgc2l6ZXM7CisgIFtDRVJlYWN0
aW9uc10gYXR0cmlidXRlIFVTVlN0cmluZyBpbWFnZVNyY3NldDsKKyAgW0NFUmVhY3Rpb25zXSBh
dHRyaWJ1dGUgRE9NU3RyaW5nIGltYWdlU2l6ZXM7CiAgIFtDRVJlYWN0aW9uc10gYXR0cmlidXRl
IERPTVN0cmluZyByZWZlcnJlclBvbGljeTsKLSAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgRE9N
U3RyaW5nIHdvcmtlclR5cGU7Ci0gIFtDRVJlYWN0aW9uc10gYXR0cmlidXRlIERPTVN0cmluZyB1
cGRhdGVWaWFDYWNoZTsKIAogICAvLyBhbHNvIGhhcyBvYnNvbGV0ZSBtZW1iZXJzCiB9OwpAQCAt
MTkxLDggKzIwOCw4IEBAIGludGVyZmFjZSBIVE1MTWV0YUVsZW1lbnQgOiBIVE1MRWxlbWVudCB7
CiAgSFRNTENvbnN0cnVjdG9yXQogaW50ZXJmYWNlIEhUTUxTdHlsZUVsZW1lbnQgOiBIVE1MRWxl
bWVudCB7CiAgIFtDRVJlYWN0aW9uc10gYXR0cmlidXRlIERPTVN0cmluZyBtZWRpYTsKLSAgW0NF
UmVhY3Rpb25zXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIG5vbmNlOwotICBbQ0VSZWFjdGlvbnNdIGF0
dHJpYnV0ZSBET01TdHJpbmcgdHlwZTsKKworICAvLyBhbHNvIGhhcyBvYnNvbGV0ZSBtZW1iZXJz
CiB9OwogSFRNTFN0eWxlRWxlbWVudCBpbmNsdWRlcyBMaW5rU3R5bGU7CiAKQEAgLTM3MSw2ICsz
ODgsNyBAQCBpbnRlcmZhY2UgSFRNTEltYWdlRWxlbWVudCA6IEhUTUxFbGVtZW50IHsKICAgcmVh
ZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gY29tcGxldGU7CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBV
U1ZTdHJpbmcgY3VycmVudFNyYzsKICAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgRE9NU3RyaW5n
IHJlZmVycmVyUG9saWN5OworICBbQ0VSZWFjdGlvbnNdIGF0dHJpYnV0ZSBET01TdHJpbmcgZGVj
b2Rpbmc7CiAKICAgUHJvbWlzZTx2b2lkPiBkZWNvZGUoKTsKIApAQCAtMzg0LDE2ICs0MDIsMTUg
QEAgaW50ZXJmYWNlIEhUTUxJRnJhbWVFbGVtZW50IDogSFRNTEVsZW1lbnQgewogICBbQ0VSZWFj
dGlvbnNdIGF0dHJpYnV0ZSBET01TdHJpbmcgc3JjZG9jOwogICBbQ0VSZWFjdGlvbnNdIGF0dHJp
YnV0ZSBET01TdHJpbmcgbmFtZTsKICAgW1NhbWVPYmplY3QsIFB1dEZvcndhcmRzPXZhbHVlXSBy
ZWFkb25seSBhdHRyaWJ1dGUgRE9NVG9rZW5MaXN0IHNhbmRib3g7CisgIFtDRVJlYWN0aW9uc10g
YXR0cmlidXRlIERPTVN0cmluZyBhbGxvdzsKICAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgYm9v
bGVhbiBhbGxvd0Z1bGxzY3JlZW47CiAgIFtDRVJlYWN0aW9uc10gYXR0cmlidXRlIGJvb2xlYW4g
YWxsb3dQYXltZW50UmVxdWVzdDsKLSAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgYm9vbGVhbiBh
bGxvd1VzZXJNZWRpYTsKICAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHdpZHRo
OwogICBbQ0VSZWFjdGlvbnNdIGF0dHJpYnV0ZSBET01TdHJpbmcgaGVpZ2h0OwogICBbQ0VSZWFj
dGlvbnNdIGF0dHJpYnV0ZSBET01TdHJpbmcgcmVmZXJyZXJQb2xpY3k7CiAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBEb2N1bWVudD8gY29udGVudERvY3VtZW50OwogICByZWFkb25seSBhdHRyaWJ1dGUg
V2luZG93UHJveHk/IGNvbnRlbnRXaW5kb3c7CiAgIERvY3VtZW50PyBnZXRTVkdEb2N1bWVudCgp
OwotICBbU2FtZU9iamVjdCwgUHV0Rm9yd2FyZHM9dmFsdWVdIHJlYWRvbmx5IGF0dHJpYnV0ZSBE
T01Ub2tlbkxpc3QgZGVsZWdhdGVTdGlja3lVc2VyQWN0aXZhdGlvbjsKIAogICAvLyBhbHNvIGhh
cyBvYnNvbGV0ZSBtZW1iZXJzCiB9OwpAQCAtNDE1LDcgKzQzMiw2IEBAIGludGVyZmFjZSBIVE1M
RW1iZWRFbGVtZW50IDogSFRNTEVsZW1lbnQgewogaW50ZXJmYWNlIEhUTUxPYmplY3RFbGVtZW50
IDogSFRNTEVsZW1lbnQgewogICBbQ0VSZWFjdGlvbnNdIGF0dHJpYnV0ZSBVU1ZTdHJpbmcgZGF0
YTsKICAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHR5cGU7Ci0gIFtDRVJlYWN0
aW9uc10gYXR0cmlidXRlIGJvb2xlYW4gdHlwZU11c3RNYXRjaDsKICAgW0NFUmVhY3Rpb25zXSBh
dHRyaWJ1dGUgRE9NU3RyaW5nIG5hbWU7CiAgIFtDRVJlYWN0aW9uc10gYXR0cmlidXRlIERPTVN0
cmluZyB1c2VNYXA7CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBIVE1MRm9ybUVsZW1lbnQ/IGZvcm07
CkBAIC02NTQsNyArNjcwLDcgQEAgaW50ZXJmYWNlIFRpbWVSYW5nZXMgewogfTsKIAogW0V4cG9z
ZWQ9V2luZG93LAotIENvbnN0cnVjdG9yKERPTVN0cmluZyB0eXBlLCBvcHRpb25hbCBUcmFja0V2
ZW50SW5pdCBldmVudEluaXREaWN0KV0KKyBDb25zdHJ1Y3RvcihET01TdHJpbmcgdHlwZSwgb3B0
aW9uYWwgVHJhY2tFdmVudEluaXQgZXZlbnRJbml0RGljdCA9IHt9KV0KIGludGVyZmFjZSBUcmFj
a0V2ZW50IDogRXZlbnQgewogICByZWFkb25seSBhdHRyaWJ1dGUgKFZpZGVvVHJhY2sgb3IgQXVk
aW9UcmFjayBvciBUZXh0VHJhY2spPyB0cmFjazsKIH07CkBAIC03MzAsNyArNzQ2LDcgQEAgaW50
ZXJmYWNlIEhUTUxUYWJsZUNvbEVsZW1lbnQgOiBIVE1MRWxlbWVudCB7CiAgSFRNTENvbnN0cnVj
dG9yXQogaW50ZXJmYWNlIEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50IDogSFRNTEVsZW1lbnQgewog
ICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIEhUTUxDb2xsZWN0aW9uIHJvd3M7Ci0g
IEhUTUxFbGVtZW50IGluc2VydFJvdyhvcHRpb25hbCBsb25nIGluZGV4ID0gLTEpOworICBIVE1M
VGFibGVSb3dFbGVtZW50IGluc2VydFJvdyhvcHRpb25hbCBsb25nIGluZGV4ID0gLTEpOwogICBb
Q0VSZWFjdGlvbnNdIHZvaWQgZGVsZXRlUm93KGxvbmcgaW5kZXgpOwogCiAgIC8vIGFsc28gaGFz
IG9ic29sZXRlIG1lbWJlcnMKQEAgLTc3Niw2ICs3OTIsOCBAQCBpbnRlcmZhY2UgSFRNTEZvcm1F
bGVtZW50IDogSFRNTEVsZW1lbnQgewogICBbQ0VSZWFjdGlvbnNdIGF0dHJpYnV0ZSBET01TdHJp
bmcgbmFtZTsKICAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgYm9vbGVhbiBub1ZhbGlkYXRlOwog
ICBbQ0VSZWFjdGlvbnNdIGF0dHJpYnV0ZSBET01TdHJpbmcgdGFyZ2V0OworICBbQ0VSZWFjdGlv
bnNdIGF0dHJpYnV0ZSBET01TdHJpbmcgcmVsOworICBbU2FtZU9iamVjdCwgUHV0Rm9yd2FyZHM9
dmFsdWVdIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01Ub2tlbkxpc3QgcmVsTGlzdDsKIAogICBbU2Ft
ZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIEhUTUxGb3JtQ29udHJvbHNDb2xsZWN0aW9uIGVs
ZW1lbnRzOwogICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsZW5ndGg7CkBAIC03
ODMsNiArODAxLDcgQEAgaW50ZXJmYWNlIEhUTUxGb3JtRWxlbWVudCA6IEhUTUxFbGVtZW50IHsK
ICAgZ2V0dGVyIChSYWRpb05vZGVMaXN0IG9yIEVsZW1lbnQpIChET01TdHJpbmcgbmFtZSk7CiAK
ICAgdm9pZCBzdWJtaXQoKTsKKyAgdm9pZCByZXF1ZXN0U3VibWl0KG9wdGlvbmFsIEhUTUxFbGVt
ZW50IHN1Ym1pdHRlcik7CiAgIFtDRVJlYWN0aW9uc10gdm9pZCByZXNldCgpOwogICBib29sZWFu
IGNoZWNrVmFsaWRpdHkoKTsKICAgYm9vbGVhbiByZXBvcnRWYWxpZGl0eSgpOwpAQCAtODAyLDcg
KzgyMSw2IEBAIGludGVyZmFjZSBIVE1MSW5wdXRFbGVtZW50IDogSFRNTEVsZW1lbnQgewogICBb
Q0VSZWFjdGlvbnNdIGF0dHJpYnV0ZSBET01TdHJpbmcgYWNjZXB0OwogICBbQ0VSZWFjdGlvbnNd
IGF0dHJpYnV0ZSBET01TdHJpbmcgYWx0OwogICBbQ0VSZWFjdGlvbnNdIGF0dHJpYnV0ZSBET01T
dHJpbmcgYXV0b2NvbXBsZXRlOwotICBbQ0VSZWFjdGlvbnNdIGF0dHJpYnV0ZSBib29sZWFuIGF1
dG9mb2N1czsKICAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgYm9vbGVhbiBkZWZhdWx0Q2hlY2tl
ZDsKICAgYXR0cmlidXRlIGJvb2xlYW4gY2hlY2tlZDsKICAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1
dGUgRE9NU3RyaW5nIGRpck5hbWU7CkBAIC04NjMsNyArODgxLDYgQEAgaW50ZXJmYWNlIEhUTUxJ
bnB1dEVsZW1lbnQgOiBIVE1MRWxlbWVudCB7CiBbRXhwb3NlZD1XaW5kb3csCiAgSFRNTENvbnN0
cnVjdG9yXQogaW50ZXJmYWNlIEhUTUxCdXR0b25FbGVtZW50IDogSFRNTEVsZW1lbnQgewotICBb
Q0VSZWFjdGlvbnNdIGF0dHJpYnV0ZSBib29sZWFuIGF1dG9mb2N1czsKICAgW0NFUmVhY3Rpb25z
XSBhdHRyaWJ1dGUgYm9vbGVhbiBkaXNhYmxlZDsKICAgcmVhZG9ubHkgYXR0cmlidXRlIEhUTUxG
b3JtRWxlbWVudD8gZm9ybTsKICAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgVVNWU3RyaW5nIGZv
cm1BY3Rpb247CkBAIC04ODksNyArOTA2LDYgQEAgaW50ZXJmYWNlIEhUTUxCdXR0b25FbGVtZW50
IDogSFRNTEVsZW1lbnQgewogIEhUTUxDb25zdHJ1Y3Rvcl0KIGludGVyZmFjZSBIVE1MU2VsZWN0
RWxlbWVudCA6IEhUTUxFbGVtZW50IHsKICAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgRE9NU3Ry
aW5nIGF1dG9jb21wbGV0ZTsKLSAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgYm9vbGVhbiBhdXRv
Zm9jdXM7CiAgIFtDRVJlYWN0aW9uc10gYXR0cmlidXRlIGJvb2xlYW4gZGlzYWJsZWQ7CiAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBIVE1MRm9ybUVsZW1lbnQ/IGZvcm07CiAgIFtDRVJlYWN0aW9uc10g
YXR0cmlidXRlIGJvb2xlYW4gbXVsdGlwbGU7CkBAIC05NTQsNyArOTcwLDYgQEAgaW50ZXJmYWNl
IEhUTUxPcHRpb25FbGVtZW50IDogSFRNTEVsZW1lbnQgewogIEhUTUxDb25zdHJ1Y3Rvcl0KIGlu
dGVyZmFjZSBIVE1MVGV4dEFyZWFFbGVtZW50IDogSFRNTEVsZW1lbnQgewogICBbQ0VSZWFjdGlv
bnNdIGF0dHJpYnV0ZSBET01TdHJpbmcgYXV0b2NvbXBsZXRlOwotICBbQ0VSZWFjdGlvbnNdIGF0
dHJpYnV0ZSBib29sZWFuIGF1dG9mb2N1czsKICAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgdW5z
aWduZWQgbG9uZyBjb2xzOwogICBbQ0VSZWFjdGlvbnNdIGF0dHJpYnV0ZSBET01TdHJpbmcgZGly
TmFtZTsKICAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgYm9vbGVhbiBkaXNhYmxlZDsKQEAgLTk3
MCw3ICs5ODUsNyBAQCBpbnRlcmZhY2UgSFRNTFRleHRBcmVhRWxlbWVudCA6IEhUTUxFbGVtZW50
IHsKIAogICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHR5cGU7CiAgIFtDRVJlYWN0aW9u
c10gYXR0cmlidXRlIERPTVN0cmluZyBkZWZhdWx0VmFsdWU7Ci0gIFtDRVJlYWN0aW9uc10gYXR0
cmlidXRlIFtUcmVhdE51bGxBcz1FbXB0eVN0cmluZ10gRE9NU3RyaW5nIHZhbHVlOworICBhdHRy
aWJ1dGUgW1RyZWF0TnVsbEFzPUVtcHR5U3RyaW5nXSBET01TdHJpbmcgdmFsdWU7CiAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIHRleHRMZW5ndGg7CiAKICAgcmVhZG9ubHkgYXR0
cmlidXRlIGJvb2xlYW4gd2lsbFZhbGlkYXRlOwpAQCAtMTA4Miw2ICsxMDk3LDE2IEBAIGludGVy
ZmFjZSBWYWxpZGl0eVN0YXRlIHsKICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gdmFsaWQ7
CiB9OwogCitbRXhwb3NlZD1XaW5kb3csCisgQ29uc3RydWN0b3IoRE9NU3RyaW5nIHR5cGUsIG9w
dGlvbmFsIEZvcm1EYXRhRXZlbnRJbml0IGV2ZW50SW5pdERpY3QgPSB7fSldCitpbnRlcmZhY2Ug
Rm9ybURhdGFFdmVudCA6IEV2ZW50IHsKKyAgcmVhZG9ubHkgYXR0cmlidXRlIEZvcm1EYXRhIGZv
cm1EYXRhOworfTsKKworZGljdGlvbmFyeSBGb3JtRGF0YUV2ZW50SW5pdCA6IEV2ZW50SW5pdCB7
CisgIHJlcXVpcmVkIEZvcm1EYXRhIGZvcm1EYXRhOworfTsKKwogW0V4cG9zZWQ9V2luZG93LAog
IEhUTUxDb25zdHJ1Y3Rvcl0KIGludGVyZmFjZSBIVE1MRGV0YWlsc0VsZW1lbnQgOiBIVE1MRWxl
bWVudCB7CkBAIC0xMTA4LDkgKzExMzMsOCBAQCBpbnRlcmZhY2UgSFRNTFNjcmlwdEVsZW1lbnQg
OiBIVE1MRWxlbWVudCB7CiAgIFtDRVJlYWN0aW9uc10gYXR0cmlidXRlIGJvb2xlYW4gZGVmZXI7
CiAgIFtDRVJlYWN0aW9uc10gYXR0cmlidXRlIERPTVN0cmluZz8gY3Jvc3NPcmlnaW47CiAgIFtD
RVJlYWN0aW9uc10gYXR0cmlidXRlIERPTVN0cmluZyB0ZXh0OwotICBbQ0VSZWFjdGlvbnNdIGF0
dHJpYnV0ZSBET01TdHJpbmcgbm9uY2U7CiAgIFtDRVJlYWN0aW9uc10gYXR0cmlidXRlIERPTVN0
cmluZyBpbnRlZ3JpdHk7Ci0KKyAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHJl
ZmVycmVyUG9saWN5OwogCiAgIC8vIGFsc28gaGFzIG9ic29sZXRlIG1lbWJlcnMKIH07CkBAIC0x
MTI1LDE1ICsxMTQ5LDE1IEBAIGludGVyZmFjZSBIVE1MVGVtcGxhdGVFbGVtZW50IDogSFRNTEVs
ZW1lbnQgewogIEhUTUxDb25zdHJ1Y3Rvcl0KIGludGVyZmFjZSBIVE1MU2xvdEVsZW1lbnQgOiBI
VE1MRWxlbWVudCB7CiAgIFtDRVJlYWN0aW9uc10gYXR0cmlidXRlIERPTVN0cmluZyBuYW1lOwot
ICBzZXF1ZW5jZTxOb2RlPiBhc3NpZ25lZE5vZGVzKG9wdGlvbmFsIEFzc2lnbmVkTm9kZXNPcHRp
b25zIG9wdGlvbnMpOwotICBzZXF1ZW5jZTxFbGVtZW50PiBhc3NpZ25lZEVsZW1lbnRzKG9wdGlv
bmFsIEFzc2lnbmVkTm9kZXNPcHRpb25zIG9wdGlvbnMpOworICBzZXF1ZW5jZTxOb2RlPiBhc3Np
Z25lZE5vZGVzKG9wdGlvbmFsIEFzc2lnbmVkTm9kZXNPcHRpb25zIG9wdGlvbnMgPSB7fSk7Cisg
IHNlcXVlbmNlPEVsZW1lbnQ+IGFzc2lnbmVkRWxlbWVudHMob3B0aW9uYWwgQXNzaWduZWROb2Rl
c09wdGlvbnMgb3B0aW9ucyA9IHt9KTsKIH07CiAKIGRpY3Rpb25hcnkgQXNzaWduZWROb2Rlc09w
dGlvbnMgewogICBib29sZWFuIGZsYXR0ZW4gPSBmYWxzZTsKIH07CiAKLXR5cGVkZWYgKENhbnZh
c1JlbmRlcmluZ0NvbnRleHQyRCBvciBJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQgb3IgV2Vi
R0xSZW5kZXJpbmdDb250ZXh0KSBSZW5kZXJpbmdDb250ZXh0OwordHlwZWRlZiAoQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dDJEIG9yIEltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dCBvciBXZWJHTFJl
bmRlcmluZ0NvbnRleHQgb3IgV2ViR0wyUmVuZGVyaW5nQ29udGV4dCkgUmVuZGVyaW5nQ29udGV4
dDsKIAogW0V4cG9zZWQ9V2luZG93LAogIEhUTUxDb25zdHJ1Y3Rvcl0KQEAgLTExNDMsOCArMTE2
Nyw4IEBAIGludGVyZmFjZSBIVE1MQ2FudmFzRWxlbWVudCA6IEhUTUxFbGVtZW50IHsKIAogICBS
ZW5kZXJpbmdDb250ZXh0PyBnZXRDb250ZXh0KERPTVN0cmluZyBjb250ZXh0SWQsIG9wdGlvbmFs
IGFueSBvcHRpb25zID0gbnVsbCk7CiAKLSAgVVNWU3RyaW5nIHRvRGF0YVVSTChvcHRpb25hbCBE
T01TdHJpbmcgdHlwZSwgb3B0aW9uYWwgYW55IHF1YWxpdHkpOwotICB2b2lkIHRvQmxvYihCbG9i
Q2FsbGJhY2sgX2NhbGxiYWNrLCBvcHRpb25hbCBET01TdHJpbmcgdHlwZSwgb3B0aW9uYWwgYW55
IHF1YWxpdHkpOworICBVU1ZTdHJpbmcgdG9EYXRhVVJMKG9wdGlvbmFsIERPTVN0cmluZyB0eXBl
ID0gImltYWdlL3BuZyIsIG9wdGlvbmFsIGFueSBxdWFsaXR5KTsKKyAgdm9pZCB0b0Jsb2IoQmxv
YkNhbGxiYWNrIF9jYWxsYmFjaywgb3B0aW9uYWwgRE9NU3RyaW5nIHR5cGUgPSAiaW1hZ2UvcG5n
Iiwgb3B0aW9uYWwgYW55IHF1YWxpdHkpOwogICBPZmZzY3JlZW5DYW52YXMgdHJhbnNmZXJDb250
cm9sVG9PZmZzY3JlZW4oKTsKIH07CiAKQEAgLTExNjMsNiArMTE4Nyw3IEBAIGVudW0gQ2FudmFz
RmlsbFJ1bGUgeyAibm9uemVybyIsICJldmVub2RkIiB9OwogCiBkaWN0aW9uYXJ5IENhbnZhc1Jl
bmRlcmluZ0NvbnRleHQyRFNldHRpbmdzIHsKICAgYm9vbGVhbiBhbHBoYSA9IHRydWU7CisgIGJv
b2xlYW4gZGVzeW5jaHJvbml6ZWQgPSBmYWxzZTsKIH07CiAKIGVudW0gSW1hZ2VTbW9vdGhpbmdR
dWFsaXR5IHsgImxvdyIsICJtZWRpdW0iLCAiaGlnaCIgfTsKQEAgLTExNzEsNiArMTE5Niw4IEBA
IGVudW0gSW1hZ2VTbW9vdGhpbmdRdWFsaXR5IHsgImxvdyIsICJtZWRpdW0iLCAiaGlnaCIgfTsK
IGludGVyZmFjZSBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQgewogICAvLyBiYWNrLXJlZmVyZW5j
ZSB0byB0aGUgY2FudmFzCiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBIVE1MQ2FudmFzRWxlbWVudCBj
YW52YXM7CisKKyAgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEU2V0dGluZ3MgZ2V0Q29udGV4dEF0
dHJpYnV0ZXMoKTsKIH07CiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQgaW5jbHVkZXMgQ2FudmFz
U3RhdGU7CiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQgaW5jbHVkZXMgQ2FudmFzVHJhbnNmb3Jt
OwpAQCAtMTIwNCw4ICsxMjMxLDkgQEAgaW50ZXJmYWNlIG1peGluIENhbnZhc1RyYW5zZm9ybSB7
CiAKICAgW05ld09iamVjdF0gRE9NTWF0cml4IGdldFRyYW5zZm9ybSgpOwogICB2b2lkIHNldFRy
YW5zZm9ybSh1bnJlc3RyaWN0ZWQgZG91YmxlIGEsIHVucmVzdHJpY3RlZCBkb3VibGUgYiwgdW5y
ZXN0cmljdGVkIGRvdWJsZSBjLCB1bnJlc3RyaWN0ZWQgZG91YmxlIGQsIHVucmVzdHJpY3RlZCBk
b3VibGUgZSwgdW5yZXN0cmljdGVkIGRvdWJsZSBmKTsKLSAgdm9pZCBzZXRUcmFuc2Zvcm0ob3B0
aW9uYWwgRE9NTWF0cml4MkRJbml0IHRyYW5zZm9ybSk7CisgIHZvaWQgc2V0VHJhbnNmb3JtKG9w
dGlvbmFsIERPTU1hdHJpeDJESW5pdCB0cmFuc2Zvcm0gPSB7fSk7CiAgIHZvaWQgcmVzZXRUcmFu
c2Zvcm0oKTsKKwogfTsKIAogaW50ZXJmYWNlIG1peGluIENhbnZhc0NvbXBvc2l0aW5nIHsKQEAg
LTEyMTgsNiArMTI0Niw3IEBAIGludGVyZmFjZSBtaXhpbiBDYW52YXNJbWFnZVNtb290aGluZyB7
CiAgIC8vIGltYWdlIHNtb290aGluZwogICBhdHRyaWJ1dGUgYm9vbGVhbiBpbWFnZVNtb290aGlu
Z0VuYWJsZWQ7IC8vIChkZWZhdWx0IHRydWUpCiAgIGF0dHJpYnV0ZSBJbWFnZVNtb290aGluZ1F1
YWxpdHkgaW1hZ2VTbW9vdGhpbmdRdWFsaXR5OyAvLyAoZGVmYXVsdCBsb3cpCisKIH07CiAKIGlu
dGVyZmFjZSBtaXhpbiBDYW52YXNGaWxsU3Ryb2tlU3R5bGVzIHsKQEAgLTEyMjcsNiArMTI1Niw3
IEBAIGludGVyZmFjZSBtaXhpbiBDYW52YXNGaWxsU3Ryb2tlU3R5bGVzIHsKICAgQ2FudmFzR3Jh
ZGllbnQgY3JlYXRlTGluZWFyR3JhZGllbnQoZG91YmxlIHgwLCBkb3VibGUgeTAsIGRvdWJsZSB4
MSwgZG91YmxlIHkxKTsKICAgQ2FudmFzR3JhZGllbnQgY3JlYXRlUmFkaWFsR3JhZGllbnQoZG91
YmxlIHgwLCBkb3VibGUgeTAsIGRvdWJsZSByMCwgZG91YmxlIHgxLCBkb3VibGUgeTEsIGRvdWJs
ZSByMSk7CiAgIENhbnZhc1BhdHRlcm4/IGNyZWF0ZVBhdHRlcm4oQ2FudmFzSW1hZ2VTb3VyY2Ug
aW1hZ2UsIFtUcmVhdE51bGxBcz1FbXB0eVN0cmluZ10gRE9NU3RyaW5nIHJlcGV0aXRpb24pOwor
CiB9OwogCiBpbnRlcmZhY2UgbWl4aW4gQ2FudmFzU2hhZG93U3R5bGVzIHsKQEAgLTEyNTgsNyAr
MTI4OCw2IEBAIGludGVyZmFjZSBtaXhpbiBDYW52YXNEcmF3UGF0aCB7CiAgIHZvaWQgc3Ryb2tl
KFBhdGgyRCBwYXRoKTsKICAgdm9pZCBjbGlwKG9wdGlvbmFsIENhbnZhc0ZpbGxSdWxlIGZpbGxS
dWxlID0gIm5vbnplcm8iKTsKICAgdm9pZCBjbGlwKFBhdGgyRCBwYXRoLCBvcHRpb25hbCBDYW52
YXNGaWxsUnVsZSBmaWxsUnVsZSA9ICJub256ZXJvIik7Ci0gIHZvaWQgcmVzZXRDbGlwKCk7CiAg
IGJvb2xlYW4gaXNQb2ludEluUGF0aCh1bnJlc3RyaWN0ZWQgZG91YmxlIHgsIHVucmVzdHJpY3Rl
ZCBkb3VibGUgeSwgb3B0aW9uYWwgQ2FudmFzRmlsbFJ1bGUgZmlsbFJ1bGUgPSAibm9uemVybyIp
OwogICBib29sZWFuIGlzUG9pbnRJblBhdGgoUGF0aDJEIHBhdGgsIHVucmVzdHJpY3RlZCBkb3Vi
bGUgeCwgdW5yZXN0cmljdGVkIGRvdWJsZSB5LCBvcHRpb25hbCBDYW52YXNGaWxsUnVsZSBmaWxs
UnVsZSA9ICJub256ZXJvIik7CiAgIGJvb2xlYW4gaXNQb2ludEluU3Ryb2tlKHVucmVzdHJpY3Rl
ZCBkb3VibGUgeCwgdW5yZXN0cmljdGVkIGRvdWJsZSB5KTsKQEAgLTEzNDQsMTAgKzEzNzMsMTAg
QEAgaW50ZXJmYWNlIENhbnZhc0dyYWRpZW50IHsKIFtFeHBvc2VkPShXaW5kb3csV29ya2VyKV0K
IGludGVyZmFjZSBDYW52YXNQYXR0ZXJuIHsKICAgLy8gb3BhcXVlIG9iamVjdAotICB2b2lkIHNl
dFRyYW5zZm9ybShvcHRpb25hbCBET01NYXRyaXgyREluaXQgdHJhbnNmb3JtKTsKKyAgdm9pZCBz
ZXRUcmFuc2Zvcm0ob3B0aW9uYWwgRE9NTWF0cml4MkRJbml0IHRyYW5zZm9ybSA9IHt9KTsKIH07
CiAKLVtFeHBvc2VkPVdpbmRvd10KK1tFeHBvc2VkPShXaW5kb3csV29ya2VyKV0KIGludGVyZmFj
ZSBUZXh0TWV0cmljcyB7CiAgIC8vIHgtZGlyZWN0aW9uCiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBk
b3VibGUgd2lkdGg7IC8vIGFkdmFuY2Ugd2lkdGgKQEAgLTEzNzksMTMgKzE0MDgsMTMgQEAgaW50
ZXJmYWNlIEltYWdlRGF0YSB7CiBbQ29uc3RydWN0b3Iob3B0aW9uYWwgKFBhdGgyRCBvciBET01T
dHJpbmcpIHBhdGgpLAogIEV4cG9zZWQ9KFdpbmRvdyxXb3JrZXIpXQogaW50ZXJmYWNlIFBhdGgy
RCB7Ci0gIHZvaWQgYWRkUGF0aChQYXRoMkQgcGF0aCwgb3B0aW9uYWwgRE9NTWF0cml4MkRJbml0
IHRyYW5zZm9ybSk7CisgIHZvaWQgYWRkUGF0aChQYXRoMkQgcGF0aCwgb3B0aW9uYWwgRE9NTWF0
cml4MkRJbml0IHRyYW5zZm9ybSA9IHt9KTsKIH07CiBQYXRoMkQgaW5jbHVkZXMgQ2FudmFzUGF0
aDsKIAotW0V4cG9zZWQ9V2luZG93XQorW0V4cG9zZWQ9KFdpbmRvdyxXb3JrZXIpXQogaW50ZXJm
YWNlIEltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dCB7Ci0gIHJlYWRvbmx5IGF0dHJpYnV0ZSBI
VE1MQ2FudmFzRWxlbWVudCBjYW52YXM7CisgIHJlYWRvbmx5IGF0dHJpYnV0ZSAoSFRNTENhbnZh
c0VsZW1lbnQgb3IgT2Zmc2NyZWVuQ2FudmFzKSBjYW52YXM7CiAgIHZvaWQgdHJhbnNmZXJGcm9t
SW1hZ2VCaXRtYXAoSW1hZ2VCaXRtYXA/IGJpdG1hcCk7CiB9OwogCkBAIC0xMzkzLDI3ICsxNDIy
LDI1IEBAIGRpY3Rpb25hcnkgSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0U2V0dGluZ3Mgewog
ICBib29sZWFuIGFscGhhID0gdHJ1ZTsKIH07CiAKLXR5cGVkZWYgKE9mZnNjcmVlbkNhbnZhc1Jl
bmRlcmluZ0NvbnRleHQyRCBvcgotICAgICAgICBXZWJHTFJlbmRlcmluZ0NvbnRleHQpIE9mZnNj
cmVlblJlbmRlcmluZ0NvbnRleHQ7Cit0eXBlZGVmIChPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdD
b250ZXh0MkQgb3IgSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0IG9yIFdlYkdMUmVuZGVyaW5n
Q29udGV4dCBvciBXZWJHTDJSZW5kZXJpbmdDb250ZXh0KSBPZmZzY3JlZW5SZW5kZXJpbmdDb250
ZXh0OwogCiBkaWN0aW9uYXJ5IEltYWdlRW5jb2RlT3B0aW9ucyB7CiAgIERPTVN0cmluZyB0eXBl
ID0gImltYWdlL3BuZyI7Ci0gIHVucmVzdHJpY3RlZCBkb3VibGUgcXVhbGl0eSA9IDEuMDsKKyAg
dW5yZXN0cmljdGVkIGRvdWJsZSBxdWFsaXR5OwogfTsKIAotZW51bSBPZmZzY3JlZW5SZW5kZXJp
bmdDb250ZXh0SWQgeyAiMmQiLCAid2ViZ2wiIH07CitlbnVtIE9mZnNjcmVlblJlbmRlcmluZ0Nv
bnRleHRJZCB7ICIyZCIsICJiaXRtYXByZW5kZXJlciIsICJ3ZWJnbCIsICJ3ZWJnbDIiIH07CiAK
IFtDb25zdHJ1Y3RvcihbRW5mb3JjZVJhbmdlXSB1bnNpZ25lZCBsb25nIGxvbmcgd2lkdGgsIFtF
bmZvcmNlUmFuZ2VdIHVuc2lnbmVkIGxvbmcgbG9uZyBoZWlnaHQpLCBFeHBvc2VkPShXaW5kb3cs
V29ya2VyKSwgVHJhbnNmZXJhYmxlXQogaW50ZXJmYWNlIE9mZnNjcmVlbkNhbnZhcyA6IEV2ZW50
VGFyZ2V0IHsKLSAgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbG9uZyB3aWR0aDsKLSAgYXR0cmli
dXRlIHVuc2lnbmVkIGxvbmcgbG9uZyBoZWlnaHQ7CisgIGF0dHJpYnV0ZSBbRW5mb3JjZVJhbmdl
XSB1bnNpZ25lZCBsb25nIGxvbmcgd2lkdGg7CisgIGF0dHJpYnV0ZSBbRW5mb3JjZVJhbmdlXSB1
bnNpZ25lZCBsb25nIGxvbmcgaGVpZ2h0OwogCiAgIE9mZnNjcmVlblJlbmRlcmluZ0NvbnRleHQ/
IGdldENvbnRleHQoT2Zmc2NyZWVuUmVuZGVyaW5nQ29udGV4dElkIGNvbnRleHRJZCwgb3B0aW9u
YWwgYW55IG9wdGlvbnMgPSBudWxsKTsKICAgSW1hZ2VCaXRtYXAgdHJhbnNmZXJUb0ltYWdlQml0
bWFwKCk7Ci0gIFByb21pc2U8QmxvYj4gY29udmVydFRvQmxvYihvcHRpb25hbCBJbWFnZUVuY29k
ZU9wdGlvbnMgb3B0aW9ucyk7CisgIFByb21pc2U8QmxvYj4gY29udmVydFRvQmxvYihvcHRpb25h
bCBJbWFnZUVuY29kZU9wdGlvbnMgb3B0aW9ucyA9IHt9KTsKIH07CiAKLQogW0V4cG9zZWQ9KFdp
bmRvdyxXb3JrZXIpXQogaW50ZXJmYWNlIE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQy
RCB7CiAgIHZvaWQgY29tbWl0KCk7CkBAIC0xNDI5LDMyICsxNDU2LDc1IEBAIE9mZnNjcmVlbkNh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRCBpbmNsdWRlcyBDYW52YXNTaGFkb3dTdHlsZXM7CiBPZmZz
Y3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQgaW5jbHVkZXMgQ2FudmFzRmlsdGVyczsKIE9m
ZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCBpbmNsdWRlcyBDYW52YXNSZWN0OwogT2Zm
c2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEIGluY2x1ZGVzIENhbnZhc0RyYXdQYXRoOwor
T2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEIGluY2x1ZGVzIENhbnZhc1RleHQ7CiBP
ZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQgaW5jbHVkZXMgQ2FudmFzRHJhd0ltYWdl
OwogT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEIGluY2x1ZGVzIENhbnZhc0ltYWdl
RGF0YTsKIE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCBpbmNsdWRlcyBDYW52YXNQ
YXRoRHJhd2luZ1N0eWxlczsKK09mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCBpbmNs
dWRlcyBDYW52YXNUZXh0RHJhd2luZ1N0eWxlczsKIE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyRCBpbmNsdWRlcyBDYW52YXNQYXRoOwogCi0KIFtFeHBvc2VkPVdpbmRvd10KIGludGVy
ZmFjZSBDdXN0b21FbGVtZW50UmVnaXN0cnkgewotICBbQ0VSZWFjdGlvbnNdIHZvaWQgZGVmaW5l
KERPTVN0cmluZyBuYW1lLCBGdW5jdGlvbiBjb25zdHJ1Y3Rvciwgb3B0aW9uYWwgRWxlbWVudERl
ZmluaXRpb25PcHRpb25zIG9wdGlvbnMpOworICBbQ0VSZWFjdGlvbnNdIHZvaWQgZGVmaW5lKERP
TVN0cmluZyBuYW1lLCBDdXN0b21FbGVtZW50Q29uc3RydWN0b3IgY29uc3RydWN0b3IsIG9wdGlv
bmFsIEVsZW1lbnREZWZpbml0aW9uT3B0aW9ucyBvcHRpb25zID0ge30pOwogICBhbnkgZ2V0KERP
TVN0cmluZyBuYW1lKTsKICAgUHJvbWlzZTx2b2lkPiB3aGVuRGVmaW5lZChET01TdHJpbmcgbmFt
ZSk7CisgIFtDRVJlYWN0aW9uc10gdm9pZCB1cGdyYWRlKE5vZGUgcm9vdCk7CiB9OwogCitjYWxs
YmFjayBDdXN0b21FbGVtZW50Q29uc3RydWN0b3IgPSBIVE1MRWxlbWVudCAoKTsKKwogZGljdGlv
bmFyeSBFbGVtZW50RGVmaW5pdGlvbk9wdGlvbnMgewogICBET01TdHJpbmcgZXh0ZW5kczsKIH07
CiAKK1tFeHBvc2VkPVdpbmRvd10KK2ludGVyZmFjZSBFbGVtZW50SW50ZXJuYWxzIHsKKyAgLy8g
Rm9ybS1hc3NvY2lhdGVkIGN1c3RvbSBlbGVtZW50cworCisgIHZvaWQgc2V0Rm9ybVZhbHVlKChG
aWxlIG9yIFVTVlN0cmluZyBvciBGb3JtRGF0YSk/IHZhbHVlLAorICAgICAgICAgICAgICAgICAg
ICBvcHRpb25hbCAoRmlsZSBvciBVU1ZTdHJpbmcgb3IgRm9ybURhdGEpPyBzdGF0ZSk7CisKKyAg
cmVhZG9ubHkgYXR0cmlidXRlIEhUTUxGb3JtRWxlbWVudD8gZm9ybTsKKworICB2b2lkIHNldFZh
bGlkaXR5KFZhbGlkaXR5U3RhdGVGbGFncyBmbGFncywKKyAgICAgICAgICAgICAgICAgICBvcHRp
b25hbCBET01TdHJpbmcgbWVzc2FnZSwKKyAgICAgICAgICAgICAgICAgICBvcHRpb25hbCBIVE1M
RWxlbWVudCBhbmNob3IpOworICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiB3aWxsVmFsaWRh
dGU7CisgIHJlYWRvbmx5IGF0dHJpYnV0ZSBWYWxpZGl0eVN0YXRlIHZhbGlkaXR5OworICByZWFk
b25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlOworICBib29sZWFuIGNo
ZWNrVmFsaWRpdHkoKTsKKyAgYm9vbGVhbiByZXBvcnRWYWxpZGl0eSgpOworCisgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBOb2RlTGlzdCBsYWJlbHM7Cit9OworCitkaWN0aW9uYXJ5IFZhbGlkaXR5U3Rh
dGVGbGFncyB7CisgIGJvb2xlYW4gdmFsdWVNaXNzaW5nID0gZmFsc2U7CisgIGJvb2xlYW4gdHlw
ZU1pc21hdGNoID0gZmFsc2U7CisgIGJvb2xlYW4gcGF0dGVybk1pc21hdGNoID0gZmFsc2U7Cisg
IGJvb2xlYW4gdG9vTG9uZyA9IGZhbHNlOworICBib29sZWFuIHRvb1Nob3J0ID0gZmFsc2U7Cisg
IGJvb2xlYW4gcmFuZ2VVbmRlcmZsb3cgPSBmYWxzZTsKKyAgYm9vbGVhbiByYW5nZU92ZXJmbG93
ID0gZmFsc2U7CisgIGJvb2xlYW4gc3RlcE1pc21hdGNoID0gZmFsc2U7CisgIGJvb2xlYW4gYmFk
SW5wdXQgPSBmYWxzZTsKKyAgYm9vbGVhbiBjdXN0b21FcnJvciA9IGZhbHNlOworfTsKKworZGlj
dGlvbmFyeSBGb2N1c09wdGlvbnMgeworICBib29sZWFuIHByZXZlbnRTY3JvbGwgPSBmYWxzZTsK
K307CisKIGludGVyZmFjZSBtaXhpbiBFbGVtZW50Q29udGVudEVkaXRhYmxlIHsKICAgW0NFUmVh
Y3Rpb25zXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGNvbnRlbnRFZGl0YWJsZTsKKyAgW0NFUmVhY3Rp
b25zXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGVudGVyS2V5SGludDsKICAgcmVhZG9ubHkgYXR0cmli
dXRlIGJvb2xlYW4gaXNDb250ZW50RWRpdGFibGU7CiAgIFtDRVJlYWN0aW9uc10gYXR0cmlidXRl
IERPTVN0cmluZyBpbnB1dE1vZGU7CiB9OwogCiBbRXhwb3NlZD1XaW5kb3csCiAgQ29uc3RydWN0
b3JdCi0gIGludGVyZmFjZSBEYXRhVHJhbnNmZXIgeworaW50ZXJmYWNlIERhdGFUcmFuc2ZlciB7
CiAgIGF0dHJpYnV0ZSBET01TdHJpbmcgZHJvcEVmZmVjdDsKICAgYXR0cmlidXRlIERPTVN0cmlu
ZyBlZmZlY3RBbGxvd2VkOwogCkBAIC0xNDkxLDcgKzE1NjEsNyBAQCBpbnRlcmZhY2UgRGF0YVRy
YW5zZmVySXRlbSB7CiBjYWxsYmFjayBGdW5jdGlvblN0cmluZ0NhbGxiYWNrID0gdm9pZCAoRE9N
U3RyaW5nIGRhdGEpOwogCiBbRXhwb3NlZD1XaW5kb3csCi0gQ29uc3RydWN0b3IoRE9NU3RyaW5n
IHR5cGUsIG9wdGlvbmFsIERyYWdFdmVudEluaXQgZXZlbnRJbml0RGljdCldCisgQ29uc3RydWN0
b3IoRE9NU3RyaW5nIHR5cGUsIG9wdGlvbmFsIERyYWdFdmVudEluaXQgZXZlbnRJbml0RGljdCA9
IHt9KV0KIGludGVyZmFjZSBEcmFnRXZlbnQgOiBNb3VzZUV2ZW50IHsKICAgcmVhZG9ubHkgYXR0
cmlidXRlIERhdGFUcmFuc2Zlcj8gZGF0YVRyYW5zZmVyOwogfTsKQEAgLTE1MzIsNyArMTYwMiw3
IEBAIGludGVyZmFjZSBXaW5kb3cgOiBFdmVudFRhcmdldCB7CiAgIGF0dHJpYnV0ZSBhbnkgb3Bl
bmVyOwogICBbUmVwbGFjZWFibGVdIHJlYWRvbmx5IGF0dHJpYnV0ZSBXaW5kb3dQcm94eT8gcGFy
ZW50OwogICByZWFkb25seSBhdHRyaWJ1dGUgRWxlbWVudD8gZnJhbWVFbGVtZW50OwotICBXaW5k
b3dQcm94eT8gb3BlbihvcHRpb25hbCBVU1ZTdHJpbmcgdXJsID0gImFib3V0OmJsYW5rIiwgb3B0
aW9uYWwgRE9NU3RyaW5nIHRhcmdldCA9ICJfYmxhbmsiLCBvcHRpb25hbCBbVHJlYXROdWxsQXM9
RW1wdHlTdHJpbmddIERPTVN0cmluZyBmZWF0dXJlcyA9ICIiKTsKKyAgV2luZG93UHJveHk/IG9w
ZW4ob3B0aW9uYWwgVVNWU3RyaW5nIHVybCA9ICIiLCBvcHRpb25hbCBET01TdHJpbmcgdGFyZ2V0
ID0gIl9ibGFuayIsIG9wdGlvbmFsIFtUcmVhdE51bGxBcz1FbXB0eVN0cmluZ10gRE9NU3RyaW5n
IGZlYXR1cmVzID0gIiIpOwogICBnZXR0ZXIgb2JqZWN0IChET01TdHJpbmcgbmFtZSk7CiAgIC8v
IFNpbmNlIHRoaXMgaXMgdGhlIGdsb2JhbCBvYmplY3QsIHRoZSBJREwgbmFtZWQgZ2V0dGVyIGFk
ZHMgYSBOYW1lZFByb3BlcnRpZXNPYmplY3QgZXhvdGljCiAgIC8vIG9iamVjdCBvbiB0aGUgcHJv
dG90eXBlIGNoYWluLiBJbmRlZWQsIHRoaXMgZG9lcyBub3QgbWFrZSB0aGUgZ2xvYmFsIG9iamVj
dCBhbiBleG90aWMgb2JqZWN0LgpAQCAtMTU0MCw3ICsxNjEwLDcgQEAgaW50ZXJmYWNlIFdpbmRv
dyA6IEV2ZW50VGFyZ2V0IHsKIAogICAvLyB0aGUgdXNlciBhZ2VudAogICByZWFkb25seSBhdHRy
aWJ1dGUgTmF2aWdhdG9yIG5hdmlnYXRvcjsKLSAgcmVhZG9ubHkgYXR0cmlidXRlIEFwcGxpY2F0
aW9uQ2FjaGUgYXBwbGljYXRpb25DYWNoZTsKKyAgW1NlY3VyZUNvbnRleHRdIHJlYWRvbmx5IGF0
dHJpYnV0ZSBBcHBsaWNhdGlvbkNhY2hlIGFwcGxpY2F0aW9uQ2FjaGU7CiAKICAgLy8gdXNlciBw
cm9tcHRzCiAgIHZvaWQgYWxlcnQoKTsKQEAgLTE1NDksMTcgKzE2MTksMTUgQEAgaW50ZXJmYWNl
IFdpbmRvdyA6IEV2ZW50VGFyZ2V0IHsKICAgRE9NU3RyaW5nPyBwcm9tcHQob3B0aW9uYWwgRE9N
U3RyaW5nIG1lc3NhZ2UgPSAiIiwgb3B0aW9uYWwgRE9NU3RyaW5nIGRlZmF1bHQgPSAiIik7CiAg
IHZvaWQgcHJpbnQoKTsKIAotICB1bnNpZ25lZCBsb25nIHJlcXVlc3RBbmltYXRpb25GcmFtZShG
cmFtZVJlcXVlc3RDYWxsYmFjayBjYWxsYmFjayk7Ci0gIHZvaWQgY2FuY2VsQW5pbWF0aW9uRnJh
bWUodW5zaWduZWQgbG9uZyBoYW5kbGUpOwotCiAgIHZvaWQgcG9zdE1lc3NhZ2UoYW55IG1lc3Nh
Z2UsIFVTVlN0cmluZyB0YXJnZXRPcmlnaW4sIG9wdGlvbmFsIHNlcXVlbmNlPG9iamVjdD4gdHJh
bnNmZXIgPSBbXSk7Ci0KLSAgLy8gYWxzbyBoYXMgb2Jzb2xldGUgbWVtYmVycworICB2b2lkIHBv
c3RNZXNzYWdlKGFueSBtZXNzYWdlLCBvcHRpb25hbCBXaW5kb3dQb3N0TWVzc2FnZU9wdGlvbnMg
b3B0aW9ucyA9IHt9KTsKIH07CiBXaW5kb3cgaW5jbHVkZXMgR2xvYmFsRXZlbnRIYW5kbGVyczsK
IFdpbmRvdyBpbmNsdWRlcyBXaW5kb3dFdmVudEhhbmRsZXJzOwogCi1jYWxsYmFjayBGcmFtZVJl
cXVlc3RDYWxsYmFjayA9IHZvaWQgKERPTUhpZ2hSZXNUaW1lU3RhbXAgdGltZSk7CitkaWN0aW9u
YXJ5IFdpbmRvd1Bvc3RNZXNzYWdlT3B0aW9ucyA6IFBvc3RNZXNzYWdlT3B0aW9ucyB7CisgIFVT
VlN0cmluZyB0YXJnZXRPcmlnaW4gPSAiLyI7Cit9OwogCiBbRXhwb3NlZD1XaW5kb3ddCiBpbnRl
cmZhY2UgQmFyUHJvcCB7CkBAIC0xNTcwLDcgKzE2MzgsNiBAQCBlbnVtIFNjcm9sbFJlc3RvcmF0
aW9uIHsgImF1dG8iLCAibWFudWFsIiB9OwogCiBbRXhwb3NlZD1XaW5kb3ddCiBpbnRlcmZhY2Ug
SGlzdG9yeSB7Ci0gIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGluZGV4OwogICBy
ZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsZW5ndGg7CiAgIGF0dHJpYnV0ZSBTY3Jv
bGxSZXN0b3JhdGlvbiBzY3JvbGxSZXN0b3JhdGlvbjsKICAgcmVhZG9ubHkgYXR0cmlidXRlIGFu
eSBzdGF0ZTsKQEAgLTE2MDEsNyArMTY2OCw3IEBAIGludGVyZmFjZSBMb2NhdGlvbiB7IC8vIGJ1
dCBzZWUgYWxzbyBhZGRpdGlvbmFsIGNyZWF0aW9uIHN0ZXBzIGFuZCBvdmVycmlkZGVuIGluCiB9
OwogCiBbRXhwb3NlZD1XaW5kb3csCi0gQ29uc3RydWN0b3IoRE9NU3RyaW5nIHR5cGUsIG9wdGlv
bmFsIFBvcFN0YXRlRXZlbnRJbml0IGV2ZW50SW5pdERpY3QpXQorIENvbnN0cnVjdG9yKERPTVN0
cmluZyB0eXBlLCBvcHRpb25hbCBQb3BTdGF0ZUV2ZW50SW5pdCBldmVudEluaXREaWN0ID0ge30p
XQogaW50ZXJmYWNlIFBvcFN0YXRlRXZlbnQgOiBFdmVudCB7CiAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBhbnkgc3RhdGU7CiB9OwpAQCAtMTYxMSw3ICsxNjc4LDcgQEAgZGljdGlvbmFyeSBQb3BTdGF0
ZUV2ZW50SW5pdCA6IEV2ZW50SW5pdCB7CiB9OwogCiBbRXhwb3NlZD1XaW5kb3csCi0gQ29uc3Ry
dWN0b3IoRE9NU3RyaW5nIHR5cGUsIG9wdGlvbmFsIEhhc2hDaGFuZ2VFdmVudEluaXQgZXZlbnRJ
bml0RGljdCldCisgQ29uc3RydWN0b3IoRE9NU3RyaW5nIHR5cGUsIG9wdGlvbmFsIEhhc2hDaGFu
Z2VFdmVudEluaXQgZXZlbnRJbml0RGljdCA9IHt9KV0KIGludGVyZmFjZSBIYXNoQ2hhbmdlRXZl
bnQgOiBFdmVudCB7CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBVU1ZTdHJpbmcgb2xkVVJMOwogICBy
ZWFkb25seSBhdHRyaWJ1dGUgVVNWU3RyaW5nIG5ld1VSTDsKQEAgLTE2MjMsNyArMTY5MCw3IEBA
IGRpY3Rpb25hcnkgSGFzaENoYW5nZUV2ZW50SW5pdCA6IEV2ZW50SW5pdCB7CiB9OwogCiBbRXhw
b3NlZD1XaW5kb3csCi0gQ29uc3RydWN0b3IoRE9NU3RyaW5nIHR5cGUsIG9wdGlvbmFsIFBhZ2VU
cmFuc2l0aW9uRXZlbnRJbml0IGV2ZW50SW5pdERpY3QpXQorIENvbnN0cnVjdG9yKERPTVN0cmlu
ZyB0eXBlLCBvcHRpb25hbCBQYWdlVHJhbnNpdGlvbkV2ZW50SW5pdCBldmVudEluaXREaWN0ID0g
e30pXQogaW50ZXJmYWNlIFBhZ2VUcmFuc2l0aW9uRXZlbnQgOiBFdmVudCB7CiAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBib29sZWFuIHBlcnNpc3RlZDsKIH07CkBAIC0xNjM3LDcgKzE3MDQsOCBAQCBp
bnRlcmZhY2UgQmVmb3JlVW5sb2FkRXZlbnQgOiBFdmVudCB7CiAgIGF0dHJpYnV0ZSBET01TdHJp
bmcgcmV0dXJuVmFsdWU7CiB9OwogCi1bRXhwb3NlZD1XaW5kb3ddCitbU2VjdXJlQ29udGV4dCwK
KyBFeHBvc2VkPVdpbmRvd10KIGludGVyZmFjZSBBcHBsaWNhdGlvbkNhY2hlIDogRXZlbnRUYXJn
ZXQgewogCiAgIC8vIHVwZGF0ZSBzdGF0dXMKQEAgLTE2NjksNyArMTczNyw4IEBAIGludGVyZmFj
ZSBtaXhpbiBOYXZpZ2F0b3JPbkxpbmUgewogICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBv
bkxpbmU7CiB9OwogCi1bQ29uc3RydWN0b3IoRE9NU3RyaW5nIHR5cGUsIG9wdGlvbmFsIEVycm9y
RXZlbnRJbml0IGV2ZW50SW5pdERpY3QpLCBFeHBvc2VkPShXaW5kb3csV29ya2VyKV0KK1tDb25z
dHJ1Y3RvcihET01TdHJpbmcgdHlwZSwgb3B0aW9uYWwgRXJyb3JFdmVudEluaXQgZXZlbnRJbml0
RGljdCA9IHt9KSwKKyBFeHBvc2VkPShXaW5kb3csV29ya2VyKV0KIGludGVyZmFjZSBFcnJvckV2
ZW50IDogRXZlbnQgewogICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIG1lc3NhZ2U7CiAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBVU1ZTdHJpbmcgZmlsZW5hbWU7CkBAIC0xNzM1LDYgKzE4MDQs
NyBAQCBpbnRlcmZhY2UgbWl4aW4gR2xvYmFsRXZlbnRIYW5kbGVycyB7CiAgIGF0dHJpYnV0ZSBF
dmVudEhhbmRsZXIgb25lbmRlZDsKICAgYXR0cmlidXRlIE9uRXJyb3JFdmVudEhhbmRsZXIgb25l
cnJvcjsKICAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbmZvY3VzOworICBhdHRyaWJ1dGUgRXZl
bnRIYW5kbGVyIG9uZm9ybWRhdGE7CiAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25pbnB1dDsK
ICAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbmludmFsaWQ7CiAgIGF0dHJpYnV0ZSBFdmVudEhh
bmRsZXIgb25rZXlkb3duOwpAQCAtMTc0Myw3ICsxODEzLDYgQEAgaW50ZXJmYWNlIG1peGluIEds
b2JhbEV2ZW50SGFuZGxlcnMgewogICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9ubG9hZDsKICAg
YXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbmxvYWRlZGRhdGE7CiAgIGF0dHJpYnV0ZSBFdmVudEhh
bmRsZXIgb25sb2FkZWRtZXRhZGF0YTsKLSAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbmxvYWRl
bmQ7CiAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25sb2Fkc3RhcnQ7CiAgIGF0dHJpYnV0ZSBF
dmVudEhhbmRsZXIgb25tb3VzZWRvd247CiAgIFtMZW5pZW50VGhpc10gYXR0cmlidXRlIEV2ZW50
SGFuZGxlciBvbm1vdXNlZW50ZXI7CkBAIC0xODE0LDkgKzE4ODMsMTIgQEAgaW50ZXJmYWNlIG1p
eGluIFdpbmRvd09yV29ya2VyR2xvYmFsU2NvcGUgewogICBsb25nIHNldEludGVydmFsKFRpbWVy
SGFuZGxlciBoYW5kbGVyLCBvcHRpb25hbCBsb25nIHRpbWVvdXQgPSAwLCBhbnkuLi4gYXJndW1l
bnRzKTsKICAgdm9pZCBjbGVhckludGVydmFsKG9wdGlvbmFsIGxvbmcgaGFuZGxlID0gMCk7CiAK
KyAgLy8gbWljcm90YXNrIHF1ZXVpbmcKKyAgdm9pZCBxdWV1ZU1pY3JvdGFzayhWb2lkRnVuY3Rp
b24gY2FsbGJhY2spOworCiAgIC8vIEltYWdlQml0bWFwCi0gIFByb21pc2U8SW1hZ2VCaXRtYXA+
IGNyZWF0ZUltYWdlQml0bWFwKEltYWdlQml0bWFwU291cmNlIGltYWdlLCBvcHRpb25hbCBJbWFn
ZUJpdG1hcE9wdGlvbnMgb3B0aW9ucyk7Ci0gIFByb21pc2U8SW1hZ2VCaXRtYXA+IGNyZWF0ZUlt
YWdlQml0bWFwKEltYWdlQml0bWFwU291cmNlIGltYWdlLCBsb25nIHN4LCBsb25nIHN5LCBsb25n
IHN3LCBsb25nIHNoLCBvcHRpb25hbCBJbWFnZUJpdG1hcE9wdGlvbnMgb3B0aW9ucyk7CisgIFBy
b21pc2U8SW1hZ2VCaXRtYXA+IGNyZWF0ZUltYWdlQml0bWFwKEltYWdlQml0bWFwU291cmNlIGlt
YWdlLCBvcHRpb25hbCBJbWFnZUJpdG1hcE9wdGlvbnMgb3B0aW9ucyA9IHt9KTsKKyAgUHJvbWlz
ZTxJbWFnZUJpdG1hcD4gY3JlYXRlSW1hZ2VCaXRtYXAoSW1hZ2VCaXRtYXBTb3VyY2UgaW1hZ2Us
IGxvbmcgc3gsIGxvbmcgc3ksIGxvbmcgc3csIGxvbmcgc2gsIG9wdGlvbmFsIEltYWdlQml0bWFw
T3B0aW9ucyBvcHRpb25zID0ge30pOwogfTsKIFdpbmRvdyBpbmNsdWRlcyBXaW5kb3dPcldvcmtl
ckdsb2JhbFNjb3BlOwogV29ya2VyR2xvYmFsU2NvcGUgaW5jbHVkZXMgV2luZG93T3JXb3JrZXJH
bG9iYWxTY29wZTsKQEAgLTE4NDMsMTEgKzE5MTUsOSBAQCBpbnRlcmZhY2UgbWl4aW4gTmF2aWdh
dG9ySUQgewogICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHVzZXJBZ2VudDsKICAgW0V4
cG9zZWQ9V2luZG93XSByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHZlbmRvcjsKICAgW0V4
cG9zZWQ9V2luZG93XSByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHZlbmRvclN1YjsgLy8g
Y29uc3RhbnQgIiIKLQotICAvLyBhbHNvIGhhcyBhZGRpdGlvbmFsIG1lbWJlcnMgaW4gYSBwYXJ0
aWFsIGludGVyZmFjZQogfTsKIAotcGFydGlhbCBpbnRlcmZhY2UgTmF2aWdhdG9ySUQgeworcGFy
dGlhbCBpbnRlcmZhY2UgbWl4aW4gTmF2aWdhdG9ySUQgewogICBbRXhwb3NlZD1XaW5kb3ddIGJv
b2xlYW4gdGFpbnRFbmFibGVkKCk7IC8vIGNvbnN0YW50IGZhbHNlCiAgIFtFeHBvc2VkPVdpbmRv
d10gcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBvc2NwdTsKIH07CkBAIC0xOTMzLDcgKzIw
MDMsMTcgQEAgZGljdGlvbmFyeSBJbWFnZUJpdG1hcE9wdGlvbnMgewogICBSZXNpemVRdWFsaXR5
IHJlc2l6ZVF1YWxpdHkgPSAibG93IjsKIH07CiAKLVtDb25zdHJ1Y3RvcihET01TdHJpbmcgdHlw
ZSwgb3B0aW9uYWwgTWVzc2FnZUV2ZW50SW5pdCBldmVudEluaXREaWN0KSwgRXhwb3NlZD0oV2lu
ZG93LFdvcmtlcixBdWRpb1dvcmtsZXQpXQorY2FsbGJhY2sgRnJhbWVSZXF1ZXN0Q2FsbGJhY2sg
PSB2b2lkIChET01IaWdoUmVzVGltZVN0YW1wIHRpbWUpOworCitpbnRlcmZhY2UgbWl4aW4gQW5p
bWF0aW9uRnJhbWVQcm92aWRlciB7CisgIHVuc2lnbmVkIGxvbmcgcmVxdWVzdEFuaW1hdGlvbkZy
YW1lKEZyYW1lUmVxdWVzdENhbGxiYWNrIGNhbGxiYWNrKTsKKyAgdm9pZCBjYW5jZWxBbmltYXRp
b25GcmFtZSh1bnNpZ25lZCBsb25nIGhhbmRsZSk7Cit9OworV2luZG93IGluY2x1ZGVzIEFuaW1h
dGlvbkZyYW1lUHJvdmlkZXI7CitEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZSBpbmNsdWRlcyBB
bmltYXRpb25GcmFtZVByb3ZpZGVyOworCitbQ29uc3RydWN0b3IoRE9NU3RyaW5nIHR5cGUsIG9w
dGlvbmFsIE1lc3NhZ2VFdmVudEluaXQgZXZlbnRJbml0RGljdCA9IHt9KSwKKyBFeHBvc2VkPShX
aW5kb3csV29ya2VyLEF1ZGlvV29ya2xldCldCiBpbnRlcmZhY2UgTWVzc2FnZUV2ZW50IDogRXZl
bnQgewogICByZWFkb25seSBhdHRyaWJ1dGUgYW55IGRhdGE7CiAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBVU1ZTdHJpbmcgb3JpZ2luOwpAQCAtMTk1NCw3ICsyMDM0LDcgQEAgZGljdGlvbmFyeSBNZXNz
YWdlRXZlbnRJbml0IDogRXZlbnRJbml0IHsKIAogdHlwZWRlZiAoV2luZG93UHJveHkgb3IgTWVz
c2FnZVBvcnQgb3IgU2VydmljZVdvcmtlcikgTWVzc2FnZUV2ZW50U291cmNlOwogCi1bQ29uc3Ry
dWN0b3IoVVNWU3RyaW5nIHVybCwgb3B0aW9uYWwgRXZlbnRTb3VyY2VJbml0IGV2ZW50U291cmNl
SW5pdERpY3QpLCBFeHBvc2VkPShXaW5kb3csV29ya2VyKV0KK1tDb25zdHJ1Y3RvcihVU1ZTdHJp
bmcgdXJsLCBvcHRpb25hbCBFdmVudFNvdXJjZUluaXQgZXZlbnRTb3VyY2VJbml0RGljdCA9IHt9
KSwgRXhwb3NlZD0oV2luZG93LFdvcmtlcildCiBpbnRlcmZhY2UgRXZlbnRTb3VyY2UgOiBFdmVu
dFRhcmdldCB7CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBVU1ZTdHJpbmcgdXJsOwogICByZWFkb25s
eSBhdHRyaWJ1dGUgYm9vbGVhbiB3aXRoQ3JlZGVudGlhbHM7CkBAIC0yMDA2LDcgKzIwODYsOCBA
QCBpbnRlcmZhY2UgV2ViU29ja2V0IDogRXZlbnRUYXJnZXQgewogICB2b2lkIHNlbmQoQXJyYXlC
dWZmZXJWaWV3IGRhdGEpOwogfTsKIAotW0NvbnN0cnVjdG9yKERPTVN0cmluZyB0eXBlLCBvcHRp
b25hbCBDbG9zZUV2ZW50SW5pdCBldmVudEluaXREaWN0KSwgRXhwb3NlZD0oV2luZG93LFdvcmtl
cildCitbQ29uc3RydWN0b3IoRE9NU3RyaW5nIHR5cGUsIG9wdGlvbmFsIENsb3NlRXZlbnRJbml0
IGV2ZW50SW5pdERpY3QgPSB7fSksCisgRXhwb3NlZD0oV2luZG93LFdvcmtlcildCiBpbnRlcmZh
Y2UgQ2xvc2VFdmVudCA6IEV2ZW50IHsKICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gd2Fz
Q2xlYW47CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBzaG9ydCBjb2RlOwpAQCAtMjAy
Nyw3ICsyMTA4LDggQEAgaW50ZXJmYWNlIE1lc3NhZ2VDaGFubmVsIHsKIAogW0V4cG9zZWQ9KFdp
bmRvdyxXb3JrZXIsQXVkaW9Xb3JrbGV0KSwgVHJhbnNmZXJhYmxlXQogaW50ZXJmYWNlIE1lc3Nh
Z2VQb3J0IDogRXZlbnRUYXJnZXQgewotICB2b2lkIHBvc3RNZXNzYWdlKGFueSBtZXNzYWdlLCBv
cHRpb25hbCBzZXF1ZW5jZTxvYmplY3Q+IHRyYW5zZmVyID0gW10pOworICB2b2lkIHBvc3RNZXNz
YWdlKGFueSBtZXNzYWdlLCBzZXF1ZW5jZTxvYmplY3Q+IHRyYW5zZmVyKTsKKyAgdm9pZCBwb3N0
TWVzc2FnZShhbnkgbWVzc2FnZSwgb3B0aW9uYWwgUG9zdE1lc3NhZ2VPcHRpb25zIG9wdGlvbnMg
PSB7fSk7CiAgIHZvaWQgc3RhcnQoKTsKICAgdm9pZCBjbG9zZSgpOwogCkBAIC0yMDM2LDYgKzIx
MTgsMTAgQEAgaW50ZXJmYWNlIE1lc3NhZ2VQb3J0IDogRXZlbnRUYXJnZXQgewogICBhdHRyaWJ1
dGUgRXZlbnRIYW5kbGVyIG9ubWVzc2FnZWVycm9yOwogfTsKIAorZGljdGlvbmFyeSBQb3N0TWVz
c2FnZU9wdGlvbnMgeworICBzZXF1ZW5jZTxvYmplY3Q+IHRyYW5zZmVyID0gW107Cit9OworCiBb
Q29uc3RydWN0b3IoRE9NU3RyaW5nIG5hbWUpLCBFeHBvc2VkPShXaW5kb3csV29ya2VyKV0KIGlu
dGVyZmFjZSBCcm9hZGNhc3RDaGFubmVsIDogRXZlbnRUYXJnZXQgewogICByZWFkb25seSBhdHRy
aWJ1dGUgRE9NU3RyaW5nIG5hbWU7CkBAIC0yMDY0LDcgKzIxNTAsOCBAQCBpbnRlcmZhY2UgV29y
a2VyR2xvYmFsU2NvcGUgOiBFdmVudFRhcmdldCB7CiBpbnRlcmZhY2UgRGVkaWNhdGVkV29ya2Vy
R2xvYmFsU2NvcGUgOiBXb3JrZXJHbG9iYWxTY29wZSB7CiAgIFtSZXBsYWNlYWJsZV0gcmVhZG9u
bHkgYXR0cmlidXRlIERPTVN0cmluZyBuYW1lOwogCi0gIHZvaWQgcG9zdE1lc3NhZ2UoYW55IG1l
c3NhZ2UsIG9wdGlvbmFsIHNlcXVlbmNlPG9iamVjdD4gdHJhbnNmZXIgPSBbXSk7CisgIHZvaWQg
cG9zdE1lc3NhZ2UoYW55IG1lc3NhZ2UsIHNlcXVlbmNlPG9iamVjdD4gdHJhbnNmZXIpOworICB2
b2lkIHBvc3RNZXNzYWdlKGFueSBtZXNzYWdlLCBvcHRpb25hbCBQb3N0TWVzc2FnZU9wdGlvbnMg
b3B0aW9ucyA9IHt9KTsKIAogICB2b2lkIGNsb3NlKCk7CiAKQEAgLTIwODUsMTggKzIxNzIsMjAg
QEAgaW50ZXJmYWNlIG1peGluIEFic3RyYWN0V29ya2VyIHsKICAgYXR0cmlidXRlIEV2ZW50SGFu
ZGxlciBvbmVycm9yOwogfTsKIAotW0NvbnN0cnVjdG9yKFVTVlN0cmluZyBzY3JpcHRVUkwsIG9w
dGlvbmFsIFdvcmtlck9wdGlvbnMgb3B0aW9ucyksIEV4cG9zZWQ9KFdpbmRvdyxXb3JrZXIpXQor
W0NvbnN0cnVjdG9yKFVTVlN0cmluZyBzY3JpcHRVUkwsIG9wdGlvbmFsIFdvcmtlck9wdGlvbnMg
b3B0aW9ucyA9IHt9KSwKKyBFeHBvc2VkPShXaW5kb3csV29ya2VyKV0KIGludGVyZmFjZSBXb3Jr
ZXIgOiBFdmVudFRhcmdldCB7CiAgIHZvaWQgdGVybWluYXRlKCk7CiAKLSAgdm9pZCBwb3N0TWVz
c2FnZShhbnkgbWVzc2FnZSwgb3B0aW9uYWwgc2VxdWVuY2U8b2JqZWN0PiB0cmFuc2ZlciA9IFtd
KTsKKyAgdm9pZCBwb3N0TWVzc2FnZShhbnkgbWVzc2FnZSwgc2VxdWVuY2U8b2JqZWN0PiB0cmFu
c2Zlcik7CisgIHZvaWQgcG9zdE1lc3NhZ2UoYW55IG1lc3NhZ2UsIG9wdGlvbmFsIFBvc3RNZXNz
YWdlT3B0aW9ucyBvcHRpb25zID0ge30pOwogICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9ubWVz
c2FnZTsKICAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbm1lc3NhZ2VlcnJvcjsKIH07CiAKIGRp
Y3Rpb25hcnkgV29ya2VyT3B0aW9ucyB7CiAgIFdvcmtlclR5cGUgdHlwZSA9ICJjbGFzc2ljIjsK
LSAgUmVxdWVzdENyZWRlbnRpYWxzIGNyZWRlbnRpYWxzID0gIm9taXQiOyAvLyBjcmVkZW50aWFs
cyBpcyBvbmx5IHVzZWQgaWYgdHlwZSBpcyAibW9kdWxlIgorICBSZXF1ZXN0Q3JlZGVudGlhbHMg
Y3JlZGVudGlhbHMgPSAic2FtZS1vcmlnaW4iOyAvLyBjcmVkZW50aWFscyBpcyBvbmx5IHVzZWQg
aWYgdHlwZSBpcyAibW9kdWxlIgogICBET01TdHJpbmcgbmFtZSA9ICIiOwogfTsKIApAQCAtMjEw
NCw3ICsyMTkzLDcgQEAgZW51bSBXb3JrZXJUeXBlIHsgImNsYXNzaWMiLCAibW9kdWxlIiB9Owog
CiBXb3JrZXIgaW5jbHVkZXMgQWJzdHJhY3RXb3JrZXI7CiAKLVtDb25zdHJ1Y3RvcihVU1ZTdHJp
bmcgc2NyaXB0VVJMLCBvcHRpb25hbCAoRE9NU3RyaW5nIG9yIFdvcmtlck9wdGlvbnMpIG9wdGlv
bnMpLAorW0NvbnN0cnVjdG9yKFVTVlN0cmluZyBzY3JpcHRVUkwsIG9wdGlvbmFsIChET01TdHJp
bmcgb3IgV29ya2VyT3B0aW9ucykgb3B0aW9ucyA9IHt9KSwKICBFeHBvc2VkPShXaW5kb3csV29y
a2VyKV0KIGludGVyZmFjZSBTaGFyZWRXb3JrZXIgOiBFdmVudFRhcmdldCB7CiAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBNZXNzYWdlUG9ydCBwb3J0OwpAQCAtMjE1NiwxMyArMjI0NSwxNSBAQCBpbnRl
cmZhY2UgbWl4aW4gV2luZG93TG9jYWxTdG9yYWdlIHsKIFdpbmRvdyBpbmNsdWRlcyBXaW5kb3dM
b2NhbFN0b3JhZ2U7CiAKIFtFeHBvc2VkPVdpbmRvdywKLSBDb25zdHJ1Y3RvcihET01TdHJpbmcg
dHlwZSwgb3B0aW9uYWwgU3RvcmFnZUV2ZW50SW5pdCBldmVudEluaXREaWN0KV0KKyBDb25zdHJ1
Y3RvcihET01TdHJpbmcgdHlwZSwgb3B0aW9uYWwgU3RvcmFnZUV2ZW50SW5pdCBldmVudEluaXRE
aWN0ID0ge30pXQogaW50ZXJmYWNlIFN0b3JhZ2VFdmVudCA6IEV2ZW50IHsKICAgcmVhZG9ubHkg
YXR0cmlidXRlIERPTVN0cmluZz8ga2V5OwogICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5n
PyBvbGRWYWx1ZTsKICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZz8gbmV3VmFsdWU7CiAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBVU1ZTdHJpbmcgdXJsOwogICByZWFkb25seSBhdHRyaWJ1dGUg
U3RvcmFnZT8gc3RvcmFnZUFyZWE7CisKKyAgdm9pZCBpbml0U3RvcmFnZUV2ZW50KERPTVN0cmlu
ZyB0eXBlLCBvcHRpb25hbCBib29sZWFuIGJ1YmJsZXMgPSBmYWxzZSwgb3B0aW9uYWwgYm9vbGVh
biBjYW5jZWxhYmxlID0gZmFsc2UsIG9wdGlvbmFsIERPTVN0cmluZz8ga2V5ID0gbnVsbCwgb3B0
aW9uYWwgRE9NU3RyaW5nPyBvbGRWYWx1ZSA9IG51bGwsIG9wdGlvbmFsIERPTVN0cmluZz8gbmV3
VmFsdWUgPSBudWxsLCBvcHRpb25hbCBVU1ZTdHJpbmcgdXJsID0gIiIsIG9wdGlvbmFsIFN0b3Jh
Z2U/IHN0b3JhZ2VBcmVhID0gbnVsbCk7CiB9OwogCiBkaWN0aW9uYXJ5IFN0b3JhZ2VFdmVudElu
aXQgOiBFdmVudEluaXQgewpAQCAtMjM3OSw2ICsyNDcwLDEwIEBAIHBhcnRpYWwgaW50ZXJmYWNl
IEhUTUxQcmVFbGVtZW50IHsKICAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgbG9uZyB3aWR0aDsK
IH07CiAKK3BhcnRpYWwgaW50ZXJmYWNlIEhUTUxTdHlsZUVsZW1lbnQgeworICBbQ0VSZWFjdGlv
bnNdIGF0dHJpYnV0ZSBET01TdHJpbmcgdHlwZTsKK307CisKIHBhcnRpYWwgaW50ZXJmYWNlIEhU
TUxTY3JpcHRFbGVtZW50IHsKICAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGNo
YXJzZXQ7CiAgIFtDRVJlYWN0aW9uc10gYXR0cmlidXRlIERPTVN0cmluZyBldmVudDsKQEAgLTI0
NTcsOCArMjU1Miw3IEBAIHBhcnRpYWwgaW50ZXJmYWNlIFdpbmRvdyB7CiAgIFtSZXBsYWNlYWJs
ZSwgU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIEV4dGVybmFsIGV4dGVybmFsOwogfTsK
IAotW0V4cG9zZWQ9V2luZG93LAotIE5vSW50ZXJmYWNlT2JqZWN0XQorW0V4cG9zZWQ9V2luZG93
XQogaW50ZXJmYWNlIEV4dGVybmFsIHsKICAgdm9pZCBBZGRTZWFyY2hQcm92aWRlcigpOwogICB2
b2lkIElzU2VhcmNoUHJvdmlkZXJJbnN0YWxsZWQoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW50ZXJmYWNlcy9wZXJmb3JtYW5jZS10
aW1lbGluZS5pZGwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ludGVyZmFjZXMvcGVyZm9ybWFuY2UtdGltZWxpbmUuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ5MzYyZWEy
NzUxNmFjNGU0MGNhYTc2MzJkOWFhMWUyZWQ5ZWRiMTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ludGVyZmFjZXMvcGVyZm9y
bWFuY2UtdGltZWxpbmUuaWRsCkBAIC0wLDAgKzEsNDMgQEAKKy8vIEdFTkVSQVRFRCBDT05URU5U
IC0gRE8gTk9UIEVESVQKKy8vIENvbnRlbnQgd2FzIGF1dG9tYXRpY2FsbHkgZXh0cmFjdGVkIGJ5
IFJlZmZ5IGludG8gcmVmZnktcmVwb3J0cworLy8gKGh0dHBzOi8vZ2l0aHViLmNvbS90aWRvdXN0
L3JlZmZ5LXJlcG9ydHMpCisvLyBTb3VyY2U6IFBlcmZvcm1hbmNlIFRpbWVsaW5lIExldmVsIDIg
KGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9wZXJmb3JtYW5jZS10aW1lbGluZS8pCisKK3BhcnRpYWwg
aW50ZXJmYWNlIFBlcmZvcm1hbmNlIHsKKyAgUGVyZm9ybWFuY2VFbnRyeUxpc3QgZ2V0RW50cmll
cygpOworICBQZXJmb3JtYW5jZUVudHJ5TGlzdCBnZXRFbnRyaWVzQnlUeXBlKERPTVN0cmluZyB0
eXBlKTsKKyAgUGVyZm9ybWFuY2VFbnRyeUxpc3QgZ2V0RW50cmllc0J5TmFtZShET01TdHJpbmcg
bmFtZSwgb3B0aW9uYWwgRE9NU3RyaW5nIHR5cGUpOworfTsKK3R5cGVkZWYgc2VxdWVuY2U8UGVy
Zm9ybWFuY2VFbnRyeT4gUGVyZm9ybWFuY2VFbnRyeUxpc3Q7CisKK1tFeHBvc2VkPShXaW5kb3cs
V29ya2VyKV0KK2ludGVyZmFjZSBQZXJmb3JtYW5jZUVudHJ5IHsKKyAgcmVhZG9ubHkgICAgYXR0
cmlidXRlIERPTVN0cmluZyBuYW1lOworICByZWFkb25seSAgICBhdHRyaWJ1dGUgRE9NU3RyaW5n
IGVudHJ5VHlwZTsKKyAgcmVhZG9ubHkgICAgYXR0cmlidXRlIERPTUhpZ2hSZXNUaW1lU3RhbXAg
c3RhcnRUaW1lOworICByZWFkb25seSAgICBhdHRyaWJ1dGUgRE9NSGlnaFJlc1RpbWVTdGFtcCBk
dXJhdGlvbjsKKyAgW0RlZmF1bHRdIG9iamVjdCB0b0pTT04oKTsKK307CisKK2NhbGxiYWNrIFBl
cmZvcm1hbmNlT2JzZXJ2ZXJDYWxsYmFjayA9IHZvaWQgKFBlcmZvcm1hbmNlT2JzZXJ2ZXJFbnRy
eUxpc3QgZW50cmllcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFBlcmZvcm1hbmNlT2JzZXJ2ZXIgb2JzZXJ2ZXIpOworW0NvbnN0cnVjdG9yKFBlcmZvcm1h
bmNlT2JzZXJ2ZXJDYWxsYmFjayBjYWxsYmFjayksIEV4cG9zZWQ9KFdpbmRvdyxXb3JrZXIpXQor
aW50ZXJmYWNlIFBlcmZvcm1hbmNlT2JzZXJ2ZXIgeworICB2b2lkIG9ic2VydmUgKG9wdGlvbmFs
IFBlcmZvcm1hbmNlT2JzZXJ2ZXJJbml0IG9wdGlvbnMgPSB7fSk7CisgIHZvaWQgZGlzY29ubmVj
dCAoKTsKKyAgUGVyZm9ybWFuY2VFbnRyeUxpc3QgdGFrZVJlY29yZHMoKTsKKyAgW1NhbWVPYmpl
Y3RdIHN0YXRpYyByZWFkb25seSBhdHRyaWJ1dGUgRnJvemVuQXJyYXk8RE9NU3RyaW5nPiBzdXBw
b3J0ZWRFbnRyeVR5cGVzOworfTsKKworZGljdGlvbmFyeSBQZXJmb3JtYW5jZU9ic2VydmVySW5p
dCB7CisgIHNlcXVlbmNlPERPTVN0cmluZz4gZW50cnlUeXBlczsKKyAgRE9NU3RyaW5nIHR5cGU7
CisgIGJvb2xlYW4gYnVmZmVyZWQ7Cit9OworCitbRXhwb3NlZD0oV2luZG93LFdvcmtlcildCitp
bnRlcmZhY2UgUGVyZm9ybWFuY2VPYnNlcnZlckVudHJ5TGlzdCB7CisgIFBlcmZvcm1hbmNlRW50
cnlMaXN0IGdldEVudHJpZXMoKTsKKyAgUGVyZm9ybWFuY2VFbnRyeUxpc3QgZ2V0RW50cmllc0J5
VHlwZShET01TdHJpbmcgdHlwZSk7CisgIFBlcmZvcm1hbmNlRW50cnlMaXN0IGdldEVudHJpZXNC
eU5hbWUoRE9NU3RyaW5nIG5hbWUsIG9wdGlvbmFsIERPTVN0cmluZyB0eXBlKTsKK307CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ludGVy
ZmFjZXMvcmVzb3VyY2UtdGltaW5nLmlkbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaW50ZXJmYWNlcy9yZXNvdXJjZS10aW1pbmcuaWRsCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmZjMTQyNTNmNWU5YWViZWM0N2NlODNkYTFhZmE5Mzg4MTkwMTVmNTEKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ludGVyZmFj
ZXMvcmVzb3VyY2UtdGltaW5nLmlkbApAQCAtMCwwICsxLDMyIEBACisvLyBHRU5FUkFURUQgQ09O
VEVOVCAtIERPIE5PVCBFRElUCisvLyBDb250ZW50IHdhcyBhdXRvbWF0aWNhbGx5IGV4dHJhY3Rl
ZCBieSBSZWZmeSBpbnRvIHJlZmZ5LXJlcG9ydHMKKy8vIChodHRwczovL2dpdGh1Yi5jb20vdGlk
b3VzdC9yZWZmeS1yZXBvcnRzKQorLy8gU291cmNlOiBSZXNvdXJjZSBUaW1pbmcgTGV2ZWwgMiAo
aHR0cHM6Ly93M2MuZ2l0aHViLmlvL3Jlc291cmNlLXRpbWluZy8pCisKK1tFeHBvc2VkPShXaW5k
b3csV29ya2VyKV0KK2ludGVyZmFjZSBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nIDogUGVyZm9y
bWFuY2VFbnRyeSB7CisgICAgcmVhZG9ubHkgICAgICAgIGF0dHJpYnV0ZSBET01TdHJpbmcgaW5p
dGlhdG9yVHlwZTsKKyAgICByZWFkb25seSAgICAgICAgYXR0cmlidXRlIERPTVN0cmluZyBuZXh0
SG9wUHJvdG9jb2w7CisgICAgcmVhZG9ubHkgICAgICAgIGF0dHJpYnV0ZSBET01IaWdoUmVzVGlt
ZVN0YW1wIHdvcmtlclN0YXJ0OworICAgIHJlYWRvbmx5ICAgICAgICBhdHRyaWJ1dGUgRE9NSGln
aFJlc1RpbWVTdGFtcCByZWRpcmVjdFN0YXJ0OworICAgIHJlYWRvbmx5ICAgICAgICBhdHRyaWJ1
dGUgRE9NSGlnaFJlc1RpbWVTdGFtcCByZWRpcmVjdEVuZDsKKyAgICByZWFkb25seSAgICAgICAg
YXR0cmlidXRlIERPTUhpZ2hSZXNUaW1lU3RhbXAgZmV0Y2hTdGFydDsKKyAgICByZWFkb25seSAg
ICAgICAgYXR0cmlidXRlIERPTUhpZ2hSZXNUaW1lU3RhbXAgZG9tYWluTG9va3VwU3RhcnQ7Cisg
ICAgcmVhZG9ubHkgICAgICAgIGF0dHJpYnV0ZSBET01IaWdoUmVzVGltZVN0YW1wIGRvbWFpbkxv
b2t1cEVuZDsKKyAgICByZWFkb25seSAgICAgICAgYXR0cmlidXRlIERPTUhpZ2hSZXNUaW1lU3Rh
bXAgY29ubmVjdFN0YXJ0OworICAgIHJlYWRvbmx5ICAgICAgICBhdHRyaWJ1dGUgRE9NSGlnaFJl
c1RpbWVTdGFtcCBjb25uZWN0RW5kOworICAgIHJlYWRvbmx5ICAgICAgICBhdHRyaWJ1dGUgRE9N
SGlnaFJlc1RpbWVTdGFtcCBzZWN1cmVDb25uZWN0aW9uU3RhcnQ7CisgICAgcmVhZG9ubHkgICAg
ICAgIGF0dHJpYnV0ZSBET01IaWdoUmVzVGltZVN0YW1wIHJlcXVlc3RTdGFydDsKKyAgICByZWFk
b25seSAgICAgICAgYXR0cmlidXRlIERPTUhpZ2hSZXNUaW1lU3RhbXAgcmVzcG9uc2VTdGFydDsK
KyAgICByZWFkb25seSAgICAgICAgYXR0cmlidXRlIERPTUhpZ2hSZXNUaW1lU3RhbXAgcmVzcG9u
c2VFbmQ7CisgICAgcmVhZG9ubHkgICAgICAgIGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxvbmcg
dHJhbnNmZXJTaXplOworICAgIHJlYWRvbmx5ICAgICAgICBhdHRyaWJ1dGUgdW5zaWduZWQgbG9u
ZyBsb25nIGVuY29kZWRCb2R5U2l6ZTsKKyAgICByZWFkb25seSAgICAgICAgYXR0cmlidXRlIHVu
c2lnbmVkIGxvbmcgbG9uZyBkZWNvZGVkQm9keVNpemU7CisgICAgW0RlZmF1bHRdIG9iamVjdCB0
b0pTT04oKTsKK307CisKK3BhcnRpYWwgaW50ZXJmYWNlIFBlcmZvcm1hbmNlIHsKKyAgdm9pZCBj
bGVhclJlc291cmNlVGltaW5ncygpOworICB2b2lkIHNldFJlc291cmNlVGltaW5nQnVmZmVyU2l6
ZSh1bnNpZ25lZCBsb25nIG1heFNpemUpOworICAgICAgICAgICAgICBhdHRyaWJ1dGUgRXZlbnRI
YW5kbGVyIG9ucmVzb3VyY2V0aW1pbmdidWZmZXJmdWxsOworfTsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW50ZXJmYWNlcy9zZXJ2aWNl
LXdvcmtlcnMuaWRsIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9pbnRlcmZhY2VzL3NlcnZpY2Utd29ya2Vycy5pZGwKaW5kZXggZmIyZTAzM2E3YWEwNmIyMTkx
ZWI5MzM1NGNmN2Y0ZTU2YTU0Y2NmMy4uMGZlYWJkMzg5Y2Y1NTZhNmZmNmQzOTc4ZmQyM2UyZTI4
ODYyNDA1NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9pbnRlcmZhY2VzL3NlcnZpY2Utd29ya2Vycy5pZGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbnRlcmZhY2VzL3NlcnZpY2Utd29ya2Vy
cy5pZGwKQEAgLTEsMTMgKzEsMTQgQEAKIC8vIEdFTkVSQVRFRCBDT05URU5UIC0gRE8gTk9UIEVE
SVQKIC8vIENvbnRlbnQgd2FzIGF1dG9tYXRpY2FsbHkgZXh0cmFjdGVkIGJ5IFJlZmZ5IGludG8g
cmVmZnktcmVwb3J0cwogLy8gKGh0dHBzOi8vZ2l0aHViLmNvbS90aWRvdXN0L3JlZmZ5LXJlcG9y
dHMpCi0vLyBTb3VyY2U6IFNlcnZpY2UgV29ya2VycyAxIChodHRwczovL3czYy5naXRodWIuaW8v
U2VydmljZVdvcmtlci92MS8pCisvLyBTb3VyY2U6IFNlcnZpY2UgV29ya2VycyBOaWdodGx5ICho
dHRwczovL3czYy5naXRodWIuaW8vU2VydmljZVdvcmtlci8pCiAKIFtTZWN1cmVDb250ZXh0LCBF
eHBvc2VkPShXaW5kb3csV29ya2VyKV0KIGludGVyZmFjZSBTZXJ2aWNlV29ya2VyIDogRXZlbnRU
YXJnZXQgewogICByZWFkb25seSBhdHRyaWJ1dGUgVVNWU3RyaW5nIHNjcmlwdFVSTDsKICAgcmVh
ZG9ubHkgYXR0cmlidXRlIFNlcnZpY2VXb3JrZXJTdGF0ZSBzdGF0ZTsKLSAgdm9pZCBwb3N0TWVz
c2FnZShhbnkgbWVzc2FnZSwgb3B0aW9uYWwgc2VxdWVuY2U8b2JqZWN0PiB0cmFuc2ZlciA9IFtd
KTsKKyAgdm9pZCBwb3N0TWVzc2FnZShhbnkgbWVzc2FnZSwgc2VxdWVuY2U8b2JqZWN0PiB0cmFu
c2Zlcik7CisgIHZvaWQgcG9zdE1lc3NhZ2UoYW55IG1lc3NhZ2UsIG9wdGlvbmFsIFBvc3RNZXNz
YWdlT3B0aW9ucyBvcHRpb25zID0ge30pOwogCiAgIC8vIGV2ZW50CiAgIGF0dHJpYnV0ZSBFdmVu
dEhhbmRsZXIgb25zdGF0ZWNoYW5nZTsKQEAgLTE1LDYgKzE2LDcgQEAgaW50ZXJmYWNlIFNlcnZp
Y2VXb3JrZXIgOiBFdmVudFRhcmdldCB7CiBTZXJ2aWNlV29ya2VyIGluY2x1ZGVzIEFic3RyYWN0
V29ya2VyOwogCiBlbnVtIFNlcnZpY2VXb3JrZXJTdGF0ZSB7CisgICJwYXJzZWQiLAogICAiaW5z
dGFsbGluZyIsCiAgICJpbnN0YWxsZWQiLAogICAiYWN0aXZhdGluZyIsCkBAIC0yNyw2ICsyOSw3
IEBAIGludGVyZmFjZSBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uIDogRXZlbnRUYXJnZXQgewog
ICByZWFkb25seSBhdHRyaWJ1dGUgU2VydmljZVdvcmtlcj8gaW5zdGFsbGluZzsKICAgcmVhZG9u
bHkgYXR0cmlidXRlIFNlcnZpY2VXb3JrZXI/IHdhaXRpbmc7CiAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBTZXJ2aWNlV29ya2VyPyBhY3RpdmU7CisgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1
dGUgTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIG5hdmlnYXRpb25QcmVsb2FkOwogCiAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBVU1ZTdHJpbmcgc2NvcGU7CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTZXJ2
aWNlV29ya2VyVXBkYXRlVmlhQ2FjaGUgdXBkYXRlVmlhQ2FjaGU7CkBAIC01Nyw3ICs2MCw3IEBA
IGludGVyZmFjZSBTZXJ2aWNlV29ya2VyQ29udGFpbmVyIDogRXZlbnRUYXJnZXQgewogICByZWFk
b25seSBhdHRyaWJ1dGUgU2VydmljZVdvcmtlcj8gY29udHJvbGxlcjsKICAgcmVhZG9ubHkgYXR0
cmlidXRlIFByb21pc2U8U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbj4gcmVhZHk7CiAKLSAgW05l
d09iamVjdF0gUHJvbWlzZTxTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uPiByZWdpc3RlcihVU1ZT
dHJpbmcgc2NyaXB0VVJMLCBvcHRpb25hbCBSZWdpc3RyYXRpb25PcHRpb25zIG9wdGlvbnMpOwor
ICBbTmV3T2JqZWN0XSBQcm9taXNlPFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24+IHJlZ2lzdGVy
KFVTVlN0cmluZyBzY3JpcHRVUkwsIG9wdGlvbmFsIFJlZ2lzdHJhdGlvbk9wdGlvbnMgb3B0aW9u
cyA9IHt9KTsKIAogICBbTmV3T2JqZWN0XSBQcm9taXNlPGFueT4gZ2V0UmVnaXN0cmF0aW9uKG9w
dGlvbmFsIFVTVlN0cmluZyBjbGllbnRVUkwgPSAiIik7CiAgIFtOZXdPYmplY3RdIFByb21pc2U8
RnJvemVuQXJyYXk8U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbj4+IGdldFJlZ2lzdHJhdGlvbnMo
KTsKQEAgLTc2LDEwICs3OSwyNCBAQCBkaWN0aW9uYXJ5IFJlZ2lzdHJhdGlvbk9wdGlvbnMgewog
ICBTZXJ2aWNlV29ya2VyVXBkYXRlVmlhQ2FjaGUgdXBkYXRlVmlhQ2FjaGUgPSAiaW1wb3J0cyI7
CiB9OwogCitbU2VjdXJlQ29udGV4dCwgRXhwb3NlZD0oV2luZG93LFdvcmtlcildCitpbnRlcmZh
Y2UgTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIHsKKyAgUHJvbWlzZTx2b2lkPiBlbmFibGUoKTsK
KyAgUHJvbWlzZTx2b2lkPiBkaXNhYmxlKCk7CisgIFByb21pc2U8dm9pZD4gc2V0SGVhZGVyVmFs
dWUoQnl0ZVN0cmluZyB2YWx1ZSk7CisgIFByb21pc2U8TmF2aWdhdGlvblByZWxvYWRTdGF0ZT4g
Z2V0U3RhdGUoKTsKK307CisKK2RpY3Rpb25hcnkgTmF2aWdhdGlvblByZWxvYWRTdGF0ZSB7Cisg
IGJvb2xlYW4gZW5hYmxlZCA9IGZhbHNlOworICBCeXRlU3RyaW5nIGhlYWRlclZhbHVlOworfTsK
KwogW0dsb2JhbD0oV29ya2VyLFNlcnZpY2VXb3JrZXIpLCBFeHBvc2VkPVNlcnZpY2VXb3JrZXJd
CiBpbnRlcmZhY2UgU2VydmljZVdvcmtlckdsb2JhbFNjb3BlIDogV29ya2VyR2xvYmFsU2NvcGUg
ewogICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIENsaWVudHMgY2xpZW50czsKICAg
W1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9u
IHJlZ2lzdHJhdGlvbjsKKyAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBTZXJ2aWNl
V29ya2VyIHNlcnZpY2VXb3JrZXI7CiAKICAgW05ld09iamVjdF0gUHJvbWlzZTx2b2lkPiBza2lw
V2FpdGluZygpOwogCkBAIC04Nyw4ICsxMDQsNyBAQCBpbnRlcmZhY2UgU2VydmljZVdvcmtlckds
b2JhbFNjb3BlIDogV29ya2VyR2xvYmFsU2NvcGUgewogICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVy
IG9uYWN0aXZhdGU7CiAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25mZXRjaDsKIAotICAvLyBl
dmVudAotICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9ubWVzc2FnZTsgLy8gZXZlbnQuc291cmNl
IG9mIHRoZSBtZXNzYWdlIGV2ZW50cyBpcyBDbGllbnQgb2JqZWN0CisgIGF0dHJpYnV0ZSBFdmVu
dEhhbmRsZXIgb25tZXNzYWdlOwogICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9ubWVzc2FnZWVy
cm9yOwogfTsKIApAQCAtOTgsNyArMTE0LDggQEAgaW50ZXJmYWNlIENsaWVudCB7CiAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBGcmFtZVR5cGUgZnJhbWVUeXBlOwogICByZWFkb25seSBhdHRyaWJ1dGUg
RE9NU3RyaW5nIGlkOwogICByZWFkb25seSBhdHRyaWJ1dGUgQ2xpZW50VHlwZSB0eXBlOwotICB2
b2lkIHBvc3RNZXNzYWdlKGFueSBtZXNzYWdlLCBvcHRpb25hbCBzZXF1ZW5jZTxvYmplY3Q+IHRy
YW5zZmVyID0gW10pOworICB2b2lkIHBvc3RNZXNzYWdlKGFueSBtZXNzYWdlLCBzZXF1ZW5jZTxv
YmplY3Q+IHRyYW5zZmVyKTsKKyAgdm9pZCBwb3N0TWVzc2FnZShhbnkgbWVzc2FnZSwgb3B0aW9u
YWwgUG9zdE1lc3NhZ2VPcHRpb25zIG9wdGlvbnMgPSB7fSk7CiB9OwogCiBbRXhwb3NlZD1TZXJ2
aWNlV29ya2VyXQpAQCAtMTIxLDcgKzEzOCw3IEBAIGVudW0gRnJhbWVUeXBlIHsKIGludGVyZmFj
ZSBDbGllbnRzIHsKICAgLy8gVGhlIG9iamVjdHMgcmV0dXJuZWQgd2lsbCBiZSBuZXcgaW5zdGFu
Y2VzIGV2ZXJ5IHRpbWUKICAgW05ld09iamVjdF0gUHJvbWlzZTxhbnk+IGdldChET01TdHJpbmcg
aWQpOwotICBbTmV3T2JqZWN0XSBQcm9taXNlPEZyb3plbkFycmF5PENsaWVudD4+IG1hdGNoQWxs
KG9wdGlvbmFsIENsaWVudFF1ZXJ5T3B0aW9ucyBvcHRpb25zKTsKKyAgW05ld09iamVjdF0gUHJv
bWlzZTxGcm96ZW5BcnJheTxDbGllbnQ+PiBtYXRjaEFsbChvcHRpb25hbCBDbGllbnRRdWVyeU9w
dGlvbnMgb3B0aW9ucyA9IHt9KTsKICAgW05ld09iamVjdF0gUHJvbWlzZTxXaW5kb3dDbGllbnQ/
PiBvcGVuV2luZG93KFVTVlN0cmluZyB1cmwpOwogICBbTmV3T2JqZWN0XSBQcm9taXNlPHZvaWQ+
IGNsYWltKCk7CiB9OwpAQCAtMTM4LDcgKzE1NSw3IEBAIGVudW0gQ2xpZW50VHlwZSB7CiAgICJh
bGwiCiB9OwogCi1bQ29uc3RydWN0b3IoRE9NU3RyaW5nIHR5cGUsIG9wdGlvbmFsIEV4dGVuZGFi
bGVFdmVudEluaXQgZXZlbnRJbml0RGljdCksIEV4cG9zZWQ9U2VydmljZVdvcmtlcl0KK1tDb25z
dHJ1Y3RvcihET01TdHJpbmcgdHlwZSwgb3B0aW9uYWwgRXh0ZW5kYWJsZUV2ZW50SW5pdCBldmVu
dEluaXREaWN0ID0ge30pLCBFeHBvc2VkPVNlcnZpY2VXb3JrZXJdCiBpbnRlcmZhY2UgRXh0ZW5k
YWJsZUV2ZW50IDogRXZlbnQgewogICB2b2lkIHdhaXRVbnRpbChQcm9taXNlPGFueT4gZik7CiB9
OwpAQCAtMTUwLDE3ICsxNjcsMjMgQEAgZGljdGlvbmFyeSBFeHRlbmRhYmxlRXZlbnRJbml0IDog
RXZlbnRJbml0IHsKIFtDb25zdHJ1Y3RvcihET01TdHJpbmcgdHlwZSwgRmV0Y2hFdmVudEluaXQg
ZXZlbnRJbml0RGljdCksIEV4cG9zZWQ9U2VydmljZVdvcmtlcl0KIGludGVyZmFjZSBGZXRjaEV2
ZW50IDogRXh0ZW5kYWJsZUV2ZW50IHsKICAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0
ZSBSZXF1ZXN0IHJlcXVlc3Q7CisgIHJlYWRvbmx5IGF0dHJpYnV0ZSBQcm9taXNlPGFueT4gcHJl
bG9hZFJlc3BvbnNlOwogICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGNsaWVudElkOwor
ICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHJlc3VsdGluZ0NsaWVudElkOworICByZWFk
b25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHJlcGxhY2VzQ2xpZW50SWQ7CiAKICAgdm9pZCByZXNw
b25kV2l0aChQcm9taXNlPFJlc3BvbnNlPiByKTsKIH07CiAKIGRpY3Rpb25hcnkgRmV0Y2hFdmVu
dEluaXQgOiBFeHRlbmRhYmxlRXZlbnRJbml0IHsKICAgcmVxdWlyZWQgUmVxdWVzdCByZXF1ZXN0
OworICBQcm9taXNlPGFueT4gcHJlbG9hZFJlc3BvbnNlOwogICBET01TdHJpbmcgY2xpZW50SWQg
PSAiIjsKKyAgRE9NU3RyaW5nIHJlc3VsdGluZ0NsaWVudElkID0gIiI7CisgIERPTVN0cmluZyBy
ZXBsYWNlc0NsaWVudElkID0gIiI7CiB9OwogCi1bQ29uc3RydWN0b3IoRE9NU3RyaW5nIHR5cGUs
IG9wdGlvbmFsIEV4dGVuZGFibGVNZXNzYWdlRXZlbnRJbml0IGV2ZW50SW5pdERpY3QpLCBFeHBv
c2VkPVNlcnZpY2VXb3JrZXJdCitbQ29uc3RydWN0b3IoRE9NU3RyaW5nIHR5cGUsIG9wdGlvbmFs
IEV4dGVuZGFibGVNZXNzYWdlRXZlbnRJbml0IGV2ZW50SW5pdERpY3QgPSB7fSksIEV4cG9zZWQ9
U2VydmljZVdvcmtlcl0KIGludGVyZmFjZSBFeHRlbmRhYmxlTWVzc2FnZUV2ZW50IDogRXh0ZW5k
YWJsZUV2ZW50IHsKICAgcmVhZG9ubHkgYXR0cmlidXRlIGFueSBkYXRhOwogICByZWFkb25seSBh
dHRyaWJ1dGUgVVNWU3RyaW5nIG9yaWdpbjsKQEAgLTE3NywxOSArMjAwLDE5IEBAIGRpY3Rpb25h
cnkgRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudEluaXQgOiBFeHRlbmRhYmxlRXZlbnRJbml0IHsKICAg
c2VxdWVuY2U8TWVzc2FnZVBvcnQ+IHBvcnRzID0gW107CiB9OwogCi1wYXJ0aWFsIGludGVyZmFj
ZSBXaW5kb3dPcldvcmtlckdsb2JhbFNjb3BlIHsKK3BhcnRpYWwgaW50ZXJmYWNlIG1peGluIFdp
bmRvd09yV29ya2VyR2xvYmFsU2NvcGUgewogICBbU2VjdXJlQ29udGV4dCwgU2FtZU9iamVjdF0g
cmVhZG9ubHkgYXR0cmlidXRlIENhY2hlU3RvcmFnZSBjYWNoZXM7CiB9OwogCiBbU2VjdXJlQ29u
dGV4dCwgRXhwb3NlZD0oV2luZG93LFdvcmtlcildCiBpbnRlcmZhY2UgQ2FjaGUgewotICBbTmV3
T2JqZWN0XSBQcm9taXNlPGFueT4gbWF0Y2goUmVxdWVzdEluZm8gcmVxdWVzdCwgb3B0aW9uYWwg
Q2FjaGVRdWVyeU9wdGlvbnMgb3B0aW9ucyk7Ci0gIFtOZXdPYmplY3RdIFByb21pc2U8RnJvemVu
QXJyYXk8UmVzcG9uc2U+PiBtYXRjaEFsbChvcHRpb25hbCBSZXF1ZXN0SW5mbyByZXF1ZXN0LCBv
cHRpb25hbCBDYWNoZVF1ZXJ5T3B0aW9ucyBvcHRpb25zKTsKKyAgW05ld09iamVjdF0gUHJvbWlz
ZTxhbnk+IG1hdGNoKFJlcXVlc3RJbmZvIHJlcXVlc3QsIG9wdGlvbmFsIENhY2hlUXVlcnlPcHRp
b25zIG9wdGlvbnMgPSB7fSk7CisgIFtOZXdPYmplY3RdIFByb21pc2U8RnJvemVuQXJyYXk8UmVz
cG9uc2U+PiBtYXRjaEFsbChvcHRpb25hbCBSZXF1ZXN0SW5mbyByZXF1ZXN0LCBvcHRpb25hbCBD
YWNoZVF1ZXJ5T3B0aW9ucyBvcHRpb25zID0ge30pOwogICBbTmV3T2JqZWN0XSBQcm9taXNlPHZv
aWQ+IGFkZChSZXF1ZXN0SW5mbyByZXF1ZXN0KTsKICAgW05ld09iamVjdF0gUHJvbWlzZTx2b2lk
PiBhZGRBbGwoc2VxdWVuY2U8UmVxdWVzdEluZm8+IHJlcXVlc3RzKTsKICAgW05ld09iamVjdF0g
UHJvbWlzZTx2b2lkPiBwdXQoUmVxdWVzdEluZm8gcmVxdWVzdCwgUmVzcG9uc2UgcmVzcG9uc2Up
OwotICBbTmV3T2JqZWN0XSBQcm9taXNlPGJvb2xlYW4+IGRlbGV0ZShSZXF1ZXN0SW5mbyByZXF1
ZXN0LCBvcHRpb25hbCBDYWNoZVF1ZXJ5T3B0aW9ucyBvcHRpb25zKTsKLSAgW05ld09iamVjdF0g
UHJvbWlzZTxGcm96ZW5BcnJheTxSZXF1ZXN0Pj4ga2V5cyhvcHRpb25hbCBSZXF1ZXN0SW5mbyBy
ZXF1ZXN0LCBvcHRpb25hbCBDYWNoZVF1ZXJ5T3B0aW9ucyBvcHRpb25zKTsKKyAgW05ld09iamVj
dF0gUHJvbWlzZTxib29sZWFuPiBkZWxldGUoUmVxdWVzdEluZm8gcmVxdWVzdCwgb3B0aW9uYWwg
Q2FjaGVRdWVyeU9wdGlvbnMgb3B0aW9ucyA9IHt9KTsKKyAgW05ld09iamVjdF0gUHJvbWlzZTxG
cm96ZW5BcnJheTxSZXF1ZXN0Pj4ga2V5cyhvcHRpb25hbCBSZXF1ZXN0SW5mbyByZXF1ZXN0LCBv
cHRpb25hbCBDYWNoZVF1ZXJ5T3B0aW9ucyBvcHRpb25zID0ge30pOwogfTsKIAogZGljdGlvbmFy
eSBDYWNoZVF1ZXJ5T3B0aW9ucyB7CkBAIC0yMDAsNyArMjIzLDcgQEAgZGljdGlvbmFyeSBDYWNo
ZVF1ZXJ5T3B0aW9ucyB7CiAKIFtTZWN1cmVDb250ZXh0LCBFeHBvc2VkPShXaW5kb3csV29ya2Vy
KV0KIGludGVyZmFjZSBDYWNoZVN0b3JhZ2UgewotICBbTmV3T2JqZWN0XSBQcm9taXNlPGFueT4g
bWF0Y2goUmVxdWVzdEluZm8gcmVxdWVzdCwgb3B0aW9uYWwgTXVsdGlDYWNoZVF1ZXJ5T3B0aW9u
cyBvcHRpb25zKTsKKyAgW05ld09iamVjdF0gUHJvbWlzZTxhbnk+IG1hdGNoKFJlcXVlc3RJbmZv
IHJlcXVlc3QsIG9wdGlvbmFsIE11bHRpQ2FjaGVRdWVyeU9wdGlvbnMgb3B0aW9ucyA9IHt9KTsK
ICAgW05ld09iamVjdF0gUHJvbWlzZTxib29sZWFuPiBoYXMoRE9NU3RyaW5nIGNhY2hlTmFtZSk7
CiAgIFtOZXdPYmplY3RdIFByb21pc2U8Q2FjaGU+IG9wZW4oRE9NU3RyaW5nIGNhY2hlTmFtZSk7
CiAgIFtOZXdPYmplY3RdIFByb21pc2U8Ym9vbGVhbj4gZGVsZXRlKERPTVN0cmluZyBjYWNoZU5h
bWUpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9pbnRlcnNlY3Rpb24tb2JzZXJ2ZXIvaWRsaGFybmVzcy53aW5kb3ctZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbnRlcnNlY3Rp
b24tb2JzZXJ2ZXIvaWRsaGFybmVzcy53aW5kb3ctZXhwZWN0ZWQudHh0CmluZGV4IGYxMDg1OWUx
MzlhYmU0YzkzMmE2NTcwZTkzMDdiNjA4ZGQwYmI5ODMuLmRjODA3ZjI1MGE4ZjA4ZmY3ZjFkMDA2
YThkOTAxYjA1MjU2MDhmMGEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaW50ZXJzZWN0aW9uLW9ic2VydmVyL2lkbGhhcm5lc3Mud2luZG93
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ludGVyc2VjdGlvbi1vYnNlcnZlci9pZGxoYXJuZXNzLndpbmRvdy1leHBlY3RlZC50
eHQKQEAgLTEsNCArMSwzIEBACi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNDgyOiBjYWxsYmFjayBu
b3QgeWV0IHN1cHBvcnRlZAogCiBQQVNTIGlkbF90ZXN0IHNldHVwIAogUEFTUyBJbnRlcnNlY3Rp
b25PYnNlcnZlciBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZh
Y2Ugb2JqZWN0IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9tYXRobWwvcmVsYXRpb25zL2h0bWw1LXRyZWUvbWF0aC1nbG9iYWwtZXZlbnQt
aGFuZGxlcnMudGVudGF0aXZlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvbWF0aG1sL3JlbGF0aW9ucy9odG1sNS10cmVlL21hdGgtZ2xv
YmFsLWV2ZW50LWhhbmRsZXJzLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQKaW5kZXggYzQxNThhZDVk
MmZhZWY1N2UwZjQzNjBmNTU5YmFiOTM5NDQ5YTZlZC4uYTUxYzJiMTY0NTIwYzA3NTM0NGJlZGRm
MmI3MjMwNmM2ZjA2ODYwYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9tYXRobWwvcmVsYXRpb25zL2h0bWw1LXRyZWUvbWF0aC1nbG9iYWwt
ZXZlbnQtaGFuZGxlcnMudGVudGF0aXZlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21hdGhtbC9yZWxhdGlvbnMvaHRtbDUtdHJl
ZS9tYXRoLWdsb2JhbC1ldmVudC1oYW5kbGVycy50ZW50YXRpdmUtZXhwZWN0ZWQudHh0CkBAIC05
NSw2ICs5NSwxMCBAQCBQQVNTIG9uZm9jdXM6IG11c3QgYmUgb24gdGhlIGFwcHJvcHJpYXRlIGxv
Y2F0aW9ucyBmb3IgR2xvYmFsRXZlbnRIYW5kbGVycwogUEFTUyBvbmZvY3VzOiB0aGUgZGVmYXVs
dCB2YWx1ZSBtdXN0IGJlIG51bGwgCiBQQVNTIG9uZm9jdXM6IHRoZSBjb250ZW50IGF0dHJpYnV0
ZSBtdXN0IGJlIGNvbXBpbGVkIGludG8gYSBmdW5jdGlvbiBhcyB0aGUgY29ycmVzcG9uZGluZyBw
cm9wZXJ0eSAKIFBBU1Mgb25mb2N1czogZGlzcGF0Y2hpbmcgYW4gRXZlbnQgYXQgYSA8bWF0aD4g
ZWxlbWVudCBtdXN0IHRyaWdnZXIgZWxlbWVudC5vbmZvY3VzIAorRkFJTCBvbmZvcm1kYXRhOiBt
dXN0IGJlIG9uIHRoZSBhcHByb3ByaWF0ZSBsb2NhdGlvbnMgZm9yIEdsb2JhbEV2ZW50SGFuZGxl
cnMgYXNzZXJ0X3RydWU6IE1hdGhNTEVsZW1lbnQgaGFzIGFuIG93biBwcm9wZXJ0eSBuYW1lZCAi
b25mb3JtZGF0YSIgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK0ZBSUwgb25mb3JtZGF0YTogdGhl
IGRlZmF1bHQgdmFsdWUgbXVzdCBiZSBudWxsIGFzc2VydF9lcXVhbHM6IFRoZSBkZWZhdWx0IHZh
bHVlIG9mIHRoZSBwcm9wZXJ0eSBpcyBudWxsIGZvciBhIE1hdGhNTE1hdGhFbGVtZW50IGluc3Rh
bmNlIGV4cGVjdGVkIChvYmplY3QpIG51bGwgYnV0IGdvdCAodW5kZWZpbmVkKSB1bmRlZmluZWQK
K0ZBSUwgb25mb3JtZGF0YTogdGhlIGNvbnRlbnQgYXR0cmlidXRlIG11c3QgYmUgY29tcGlsZWQg
aW50byBhIGZ1bmN0aW9uIGFzIHRoZSBjb3JyZXNwb25kaW5nIHByb3BlcnR5IGFzc2VydF9lcXVh
bHM6IFRoZSBvbmZvcm1kYXRhIHByb3BlcnR5IG11c3QgYmUgYSBmdW5jdGlvbiBleHBlY3RlZCAi
ZnVuY3Rpb24iIGJ1dCBnb3QgInVuZGVmaW5lZCIKK1BBU1Mgb25mb3JtZGF0YTogZGlzcGF0Y2hp
bmcgYW4gRXZlbnQgYXQgYSA8bWF0aD4gZWxlbWVudCBtdXN0IHRyaWdnZXIgZWxlbWVudC5vbmZv
cm1kYXRhIAogUEFTUyBvbmlucHV0OiBtdXN0IGJlIG9uIHRoZSBhcHByb3ByaWF0ZSBsb2NhdGlv
bnMgZm9yIEdsb2JhbEV2ZW50SGFuZGxlcnMgCiBQQVNTIG9uaW5wdXQ6IHRoZSBkZWZhdWx0IHZh
bHVlIG11c3QgYmUgbnVsbCAKIFBBU1Mgb25pbnB1dDogdGhlIGNvbnRlbnQgYXR0cmlidXRlIG11
c3QgYmUgY29tcGlsZWQgaW50byBhIGZ1bmN0aW9uIGFzIHRoZSBjb3JyZXNwb25kaW5nIHByb3Bl
cnR5IApAQCAtMTI3LDEwICsxMzEsNiBAQCBQQVNTIG9ubG9hZGVkbWV0YWRhdGE6IG11c3QgYmUg
b24gdGhlIGFwcHJvcHJpYXRlIGxvY2F0aW9ucyBmb3IgR2xvYmFsRXZlbnRIYW5kbAogUEFTUyBv
bmxvYWRlZG1ldGFkYXRhOiB0aGUgZGVmYXVsdCB2YWx1ZSBtdXN0IGJlIG51bGwgCiBQQVNTIG9u
bG9hZGVkbWV0YWRhdGE6IHRoZSBjb250ZW50IGF0dHJpYnV0ZSBtdXN0IGJlIGNvbXBpbGVkIGlu
dG8gYSBmdW5jdGlvbiBhcyB0aGUgY29ycmVzcG9uZGluZyBwcm9wZXJ0eSAKIFBBU1Mgb25sb2Fk
ZWRtZXRhZGF0YTogZGlzcGF0Y2hpbmcgYW4gRXZlbnQgYXQgYSA8bWF0aD4gZWxlbWVudCBtdXN0
IHRyaWdnZXIgZWxlbWVudC5vbmxvYWRlZG1ldGFkYXRhIAotRkFJTCBvbmxvYWRlbmQ6IG11c3Qg
YmUgb24gdGhlIGFwcHJvcHJpYXRlIGxvY2F0aW9ucyBmb3IgR2xvYmFsRXZlbnRIYW5kbGVycyBh
c3NlcnRfdHJ1ZTogTWF0aE1MRWxlbWVudCBoYXMgYW4gb3duIHByb3BlcnR5IG5hbWVkICJvbmxv
YWRlbmQiIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIG9ubG9hZGVuZDogdGhlIGRlZmF1
bHQgdmFsdWUgbXVzdCBiZSBudWxsIGFzc2VydF9lcXVhbHM6IFRoZSBkZWZhdWx0IHZhbHVlIG9m
IHRoZSBwcm9wZXJ0eSBpcyBudWxsIGZvciBhIE1hdGhNTE1hdGhFbGVtZW50IGluc3RhbmNlIGV4
cGVjdGVkIChvYmplY3QpIG51bGwgYnV0IGdvdCAodW5kZWZpbmVkKSB1bmRlZmluZWQKLUZBSUwg
b25sb2FkZW5kOiB0aGUgY29udGVudCBhdHRyaWJ1dGUgbXVzdCBiZSBjb21waWxlZCBpbnRvIGEg
ZnVuY3Rpb24gYXMgdGhlIGNvcnJlc3BvbmRpbmcgcHJvcGVydHkgYXNzZXJ0X2VxdWFsczogVGhl
IG9ubG9hZGVuZCBwcm9wZXJ0eSBtdXN0IGJlIGEgZnVuY3Rpb24gZXhwZWN0ZWQgImZ1bmN0aW9u
IiBidXQgZ290ICJ1bmRlZmluZWQiCi1QQVNTIG9ubG9hZGVuZDogZGlzcGF0Y2hpbmcgYW4gRXZl
bnQgYXQgYSA8bWF0aD4gZWxlbWVudCBtdXN0IHRyaWdnZXIgZWxlbWVudC5vbmxvYWRlbmQgCiBQ
QVNTIG9ubG9hZHN0YXJ0OiBtdXN0IGJlIG9uIHRoZSBhcHByb3ByaWF0ZSBsb2NhdGlvbnMgZm9y
IEdsb2JhbEV2ZW50SGFuZGxlcnMgCiBQQVNTIG9ubG9hZHN0YXJ0OiB0aGUgZGVmYXVsdCB2YWx1
ZSBtdXN0IGJlIG51bGwgCiBQQVNTIG9ubG9hZHN0YXJ0OiB0aGUgY29udGVudCBhdHRyaWJ1dGUg
bXVzdCBiZSBjb21waWxlZCBpbnRvIGEgZnVuY3Rpb24gYXMgdGhlIGNvcnJlc3BvbmRpbmcgcHJv
cGVydHkgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL21lZGlhY2FwdHVyZS1yZWNvcmQvaWRsaGFybmVzcy53aW5kb3ctZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1
cmUtcmVjb3JkL2lkbGhhcm5lc3Mud2luZG93LWV4cGVjdGVkLnR4dAppbmRleCBhN2VhMzI3OTFj
YjAwNjkzZjM3OTRhMjNkMzI4NGE5MjY3OWM1MmZmLi4xMmQ1YzczYjdhZTE3NGMzYjRiYzNkY2Vj
MzcxNzg4MmMzYjZmODJlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL21lZGlhY2FwdHVyZS1yZWNvcmQvaWRsaGFybmVzcy53aW5kb3ctZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvbWVkaWFjYXB0dXJlLXJlY29yZC9pZGxoYXJuZXNzLndpbmRvdy1leHBlY3RlZC50eHQKQEAg
LTEsMzAgKzEsMyBAQAogCi1GQUlMIGlkbF90ZXN0IHNldHVwIHByb21pc2VfdGVzdDogVW5oYW5k
bGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIkdvdCBhbiBlcnJvciBiZWZvcmUgcGFy
c2luZyBhbnkgbmFtZWQgZGVmaW5pdGlvbjogVW5yZWNvZ25pc2VkIHRva2VucywgbGluZSAxICh0
b2tlbnM6ICJ7XCJlcnJvclwiOiB7XCJtZXNzYWdlXCIiKQotWwotICAgIHsKLSAgICAgICAgInR5
cGUiOiAieyIsCi0gICAgICAgICJ2YWx1ZSI6ICJ7IiwKLSAgICAgICAgInRyaXZpYSI6ICIiCi0g
ICAgfSwKLSAgICB7Ci0gICAgICAgICJ0eXBlIjogInN0cmluZyIsCi0gICAgICAgICJ2YWx1ZSI6
ICJcImVycm9yXCIiLAotICAgICAgICAidHJpdmlhIjogIiIKLSAgICB9LAotICAgIHsKLSAgICAg
ICAgInR5cGUiOiAiOiIsCi0gICAgICAgICJ2YWx1ZSI6ICI6IiwKLSAgICAgICAgInRyaXZpYSI6
ICIiCi0gICAgfSwKLSAgICB7Ci0gICAgICAgICJ0eXBlIjogInsiLAotICAgICAgICAidmFsdWUi
OiAieyIsCi0gICAgICAgICJ0cml2aWEiOiAiICIKLSAgICB9LAotICAgIHsKLSAgICAgICAgInR5
cGUiOiAic3RyaW5nIiwKLSAgICAgICAgInZhbHVlIjogIlwibWVzc2FnZVwiIiwKLSAgICAgICAg
InRyaXZpYSI6ICIiCi0gICAgfQotXSIKK0ZBSUwgaWRsX3Rlc3Qgc2V0dXAgcHJvbWlzZV90ZXN0
OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiRXJyb3IgZmV0Y2hpbmcg
L2ludGVyZmFjZXMvbWVkaWFzdHJlYW0tcmVjb3JkaW5nLmlkbC4iCiAKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFjYXB0dXJlLXN0
cmVhbXMvTWVkaWFEZXZpY2VzLUlETC1hbGwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtc3RyZWFtcy9NZWRpYURl
dmljZXMtSURMLWFsbC1leHBlY3RlZC50eHQKaW5kZXggMGE3Y2FjNjU1N2U3YTk1OWRjMWE4ZDQx
MWQxNDI2NjMyMjYyOWE3Zi4uMzUxZTM0NTJmMzg3NzAzZDFjNGFiNzc1YTdhMWYwMzM3MmQ1MWRj
NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9tZWRpYWNhcHR1cmUtc3RyZWFtcy9NZWRpYURldmljZXMtSURMLWFsbC1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNh
cHR1cmUtc3RyZWFtcy9NZWRpYURldmljZXMtSURMLWFsbC1leHBlY3RlZC50eHQKQEAgLTEsMTA1
ICsxLDkgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA0ODI6IGNhbGxiYWNrIG5vdCB5ZXQgc3Vw
cG9ydGVkCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNDgyOiBjYWxsYmFjayBub3QgeWV0IHN1cHBv
cnRlZAogRGVzY3JpcHRpb24KIAogVGhpcyB0ZXN0IGNoZWNrcyBmb3IgdGhlIHByZXNlbmNlIG9m
IHRoZSBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSBtZXRob2QuCiAKIAotUEFT
UyBpZGxfdGVzdCBzZXR1cCAKLVBBU1MgUGFydGlhbCBpbnRlcmZhY2UgTmF2aWdhdG9yVXNlck1l
ZGlhOiBvcmlnaW5hbCBpbnRlcmZhY2UgZGVmaW5lZCAKLVBBU1MgUGFydGlhbCBpbnRlcmZhY2Ug
TWVkaWFEZXZpY2VzOiBvcmlnaW5hbCBpbnRlcmZhY2UgZGVmaW5lZCAKLVBBU1MgTWVkaWFTdHJl
YW0gaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVj
dCAKLVBBU1MgTWVkaWFTdHJlYW0gaW50ZXJmYWNlIG9iamVjdCBsZW5ndGggCi1QQVNTIE1lZGlh
U3RyZWFtIGludGVyZmFjZSBvYmplY3QgbmFtZSAKLVBBU1MgTWVkaWFTdHJlYW0gaW50ZXJmYWNl
OiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3Qg
Ci1QQVNTIE1lZGlhU3RyZWFtIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9m
IGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgImNvbnN0cnVjdG9yIiBwcm9wZXJ0eSAKLVBB
U1MgTWVkaWFTdHJlYW0gaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50
ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyBAQHVuc2NvcGFibGVzIHByb3BlcnR5IAotUEFTUyBN
ZWRpYVN0cmVhbSBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBpZCAKLVBBU1MgTWVkaWFTdHJlYW0gaW50
ZXJmYWNlOiBvcGVyYXRpb24gZ2V0QXVkaW9UcmFja3MoKSAKLVBBU1MgTWVkaWFTdHJlYW0gaW50
ZXJmYWNlOiBvcGVyYXRpb24gZ2V0VmlkZW9UcmFja3MoKSAKLVBBU1MgTWVkaWFTdHJlYW0gaW50
ZXJmYWNlOiBvcGVyYXRpb24gZ2V0VHJhY2tzKCkgCi1QQVNTIE1lZGlhU3RyZWFtIGludGVyZmFj
ZTogb3BlcmF0aW9uIGdldFRyYWNrQnlJZChET01TdHJpbmcpIAotUEFTUyBNZWRpYVN0cmVhbSBp
bnRlcmZhY2U6IG9wZXJhdGlvbiBhZGRUcmFjayhNZWRpYVN0cmVhbVRyYWNrKSAKLVBBU1MgTWVk
aWFTdHJlYW0gaW50ZXJmYWNlOiBvcGVyYXRpb24gcmVtb3ZlVHJhY2soTWVkaWFTdHJlYW1UcmFj
aykgCi1QQVNTIE1lZGlhU3RyZWFtIGludGVyZmFjZTogb3BlcmF0aW9uIGNsb25lKCkgCi1QQVNT
IE1lZGlhU3RyZWFtIGludGVyZmFjZTogYXR0cmlidXRlIGFjdGl2ZSAKLVBBU1MgTWVkaWFTdHJl
YW0gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgb25hZGR0cmFjayAKLVBBU1MgTWVkaWFTdHJlYW0gaW50
ZXJmYWNlOiBhdHRyaWJ1dGUgb25yZW1vdmV0cmFjayAKLVBBU1MgTWVkaWFTdHJlYW1UcmFjayBp
bnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IAot
UEFTUyBNZWRpYVN0cmVhbVRyYWNrIGludGVyZmFjZSBvYmplY3QgbGVuZ3RoIAotUEFTUyBNZWRp
YVN0cmVhbVRyYWNrIGludGVyZmFjZSBvYmplY3QgbmFtZSAKLVBBU1MgTWVkaWFTdHJlYW1UcmFj
ayBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90
eXBlIG9iamVjdCAKLVBBU1MgTWVkaWFTdHJlYW1UcmFjayBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBh
bmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzICJjb25zdHJ1Y3Rv
ciIgcHJvcGVydHkgCi1QQVNTIE1lZGlhU3RyZWFtVHJhY2sgaW50ZXJmYWNlOiBleGlzdGVuY2Ug
YW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyBAQHVuc2NvcGFi
bGVzIHByb3BlcnR5IAotUEFTUyBNZWRpYVN0cmVhbVRyYWNrIGludGVyZmFjZTogYXR0cmlidXRl
IGtpbmQgCi1QQVNTIE1lZGlhU3RyZWFtVHJhY2sgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgaWQgCi1Q
QVNTIE1lZGlhU3RyZWFtVHJhY2sgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgbGFiZWwgCi1QQVNTIE1l
ZGlhU3RyZWFtVHJhY2sgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgZW5hYmxlZCAKLVBBU1MgTWVkaWFT
dHJlYW1UcmFjayBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBtdXRlZCAKLVBBU1MgTWVkaWFTdHJlYW1U
cmFjayBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBvbm11dGUgCi1QQVNTIE1lZGlhU3RyZWFtVHJhY2sg
aW50ZXJmYWNlOiBhdHRyaWJ1dGUgb251bm11dGUgCi1QQVNTIE1lZGlhU3RyZWFtVHJhY2sgaW50
ZXJmYWNlOiBhdHRyaWJ1dGUgcmVhZHlTdGF0ZSAKLVBBU1MgTWVkaWFTdHJlYW1UcmFjayBpbnRl
cmZhY2U6IGF0dHJpYnV0ZSBvbmVuZGVkIAotUEFTUyBNZWRpYVN0cmVhbVRyYWNrIGludGVyZmFj
ZTogb3BlcmF0aW9uIGNsb25lKCkgCi1QQVNTIE1lZGlhU3RyZWFtVHJhY2sgaW50ZXJmYWNlOiBv
cGVyYXRpb24gc3RvcCgpIAotUEFTUyBNZWRpYVN0cmVhbVRyYWNrIGludGVyZmFjZTogb3BlcmF0
aW9uIGdldENhcGFiaWxpdGllcygpIAotUEFTUyBNZWRpYVN0cmVhbVRyYWNrIGludGVyZmFjZTog
b3BlcmF0aW9uIGdldENvbnN0cmFpbnRzKCkgCi1QQVNTIE1lZGlhU3RyZWFtVHJhY2sgaW50ZXJm
YWNlOiBvcGVyYXRpb24gZ2V0U2V0dGluZ3MoKSAKLVBBU1MgTWVkaWFTdHJlYW1UcmFjayBpbnRl
cmZhY2U6IG9wZXJhdGlvbiBhcHBseUNvbnN0cmFpbnRzKE1lZGlhVHJhY2tDb25zdHJhaW50cykg
Ci1QQVNTIE1lZGlhU3RyZWFtVHJhY2sgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgb25vdmVyY29uc3Ry
YWluZWQgCi1QQVNTIE1lZGlhU3RyZWFtVHJhY2tFdmVudCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBh
bmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IAotUEFTUyBNZWRpYVN0cmVhbVRyYWNr
RXZlbnQgaW50ZXJmYWNlIG9iamVjdCBsZW5ndGggCi1QQVNTIE1lZGlhU3RyZWFtVHJhY2tFdmVu
dCBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUgCi1QQVNTIE1lZGlhU3RyZWFtVHJhY2tFdmVudCBpbnRl
cmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9i
amVjdCAKLVBBU1MgTWVkaWFTdHJlYW1UcmFja0V2ZW50IGludGVyZmFjZTogZXhpc3RlbmNlIGFu
ZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgImNvbnN0cnVjdG9y
IiBwcm9wZXJ0eSAKLVBBU1MgTWVkaWFTdHJlYW1UcmFja0V2ZW50IGludGVyZmFjZTogZXhpc3Rl
bmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgQEB1bnNj
b3BhYmxlcyBwcm9wZXJ0eSAKLVBBU1MgTWVkaWFTdHJlYW1UcmFja0V2ZW50IGludGVyZmFjZTog
YXR0cmlidXRlIHRyYWNrIAotUEFTUyBPdmVyY29uc3RyYWluZWRFcnJvckV2ZW50IGludGVyZmFj
ZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgCi1GQUlMIE92
ZXJjb25zdHJhaW5lZEVycm9yRXZlbnQgaW50ZXJmYWNlIG9iamVjdCBsZW5ndGggYXNzZXJ0X2Vx
dWFsczogd3JvbmcgdmFsdWUgZm9yIE92ZXJjb25zdHJhaW5lZEVycm9yRXZlbnQubGVuZ3RoIGV4
cGVjdGVkIDIgYnV0IGdvdCAxCi1QQVNTIE92ZXJjb25zdHJhaW5lZEVycm9yRXZlbnQgaW50ZXJm
YWNlIG9iamVjdCBuYW1lIAotUEFTUyBPdmVyY29uc3RyYWluZWRFcnJvckV2ZW50IGludGVyZmFj
ZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0
IAotUEFTUyBPdmVyY29uc3RyYWluZWRFcnJvckV2ZW50IGludGVyZmFjZTogZXhpc3RlbmNlIGFu
ZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgImNvbnN0cnVjdG9y
IiBwcm9wZXJ0eSAKLVBBU1MgT3ZlcmNvbnN0cmFpbmVkRXJyb3JFdmVudCBpbnRlcmZhY2U6IGV4
aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzIEBA
dW5zY29wYWJsZXMgcHJvcGVydHkgCi1QQVNTIE92ZXJjb25zdHJhaW5lZEVycm9yRXZlbnQgaW50
ZXJmYWNlOiBhdHRyaWJ1dGUgZXJyb3IgCi1QQVNTIE1lZGlhRGV2aWNlcyBpbnRlcmZhY2U6IGV4
aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IAotUEFTUyBNZWRpYURl
dmljZXMgaW50ZXJmYWNlIG9iamVjdCBsZW5ndGggCi1QQVNTIE1lZGlhRGV2aWNlcyBpbnRlcmZh
Y2Ugb2JqZWN0IG5hbWUgCi1QQVNTIE1lZGlhRGV2aWNlcyBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBh
bmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCAKLVBBU1MgTWVkaWFE
ZXZpY2VzIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBw
cm90b3R5cGUgb2JqZWN0J3MgImNvbnN0cnVjdG9yIiBwcm9wZXJ0eSAKLVBBU1MgTWVkaWFEZXZp
Y2VzIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90
b3R5cGUgb2JqZWN0J3MgQEB1bnNjb3BhYmxlcyBwcm9wZXJ0eSAKLVBBU1MgTWVkaWFEZXZpY2Vz
IGludGVyZmFjZTogYXR0cmlidXRlIG9uZGV2aWNlY2hhbmdlIAotUEFTUyBNZWRpYURldmljZXMg
aW50ZXJmYWNlOiBvcGVyYXRpb24gZW51bWVyYXRlRGV2aWNlcygpIAotUEFTUyBNZWRpYURldmlj
ZXMgaW50ZXJmYWNlOiBvcGVyYXRpb24gZ2V0U3VwcG9ydGVkQ29uc3RyYWludHMoKSAKLVBBU1Mg
TWVkaWFEZXZpY2VzIGludGVyZmFjZTogb3BlcmF0aW9uIGdldFVzZXJNZWRpYShNZWRpYVN0cmVh
bUNvbnN0cmFpbnRzKSAKLVBBU1MgTWVkaWFEZXZpY2VzIG11c3QgYmUgcHJpbWFyeSBpbnRlcmZh
Y2Ugb2YgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcyAKLVBBU1MgU3RyaW5naWZpY2F0aW9uIG9mIG5h
dmlnYXRvci5tZWRpYURldmljZXMgCi1QQVNTIE1lZGlhRGV2aWNlcyBpbnRlcmZhY2U6IG5hdmln
YXRvci5tZWRpYURldmljZXMgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJvbmRldmljZWNoYW5nZSIg
d2l0aCB0aGUgcHJvcGVyIHR5cGUgCi1QQVNTIE1lZGlhRGV2aWNlcyBpbnRlcmZhY2U6IG5hdmln
YXRvci5tZWRpYURldmljZXMgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJlbnVtZXJhdGVEZXZpY2Vz
KCkiIHdpdGggdGhlIHByb3BlciB0eXBlIAotUEFTUyBNZWRpYURldmljZXMgaW50ZXJmYWNlOiBu
YXZpZ2F0b3IubWVkaWFEZXZpY2VzIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiZ2V0U3VwcG9ydGVk
Q29uc3RyYWludHMoKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCi1QQVNTIE1lZGlhRGV2aWNlcyBp
bnRlcmZhY2U6IG5hdmlnYXRvci5tZWRpYURldmljZXMgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJn
ZXRVc2VyTWVkaWEoTWVkaWFTdHJlYW1Db25zdHJhaW50cykiIHdpdGggdGhlIHByb3BlciB0eXBl
IAotUEFTUyBNZWRpYURldmljZXMgaW50ZXJmYWNlOiBjYWxsaW5nIGdldFVzZXJNZWRpYShNZWRp
YVN0cmVhbUNvbnN0cmFpbnRzKSBvbiBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzIHdpdGggdG9vIGZl
dyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCi1QQVNTIE1lZGlhRGV2aWNlSW5mbyBp
bnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IAot
UEFTUyBNZWRpYURldmljZUluZm8gaW50ZXJmYWNlIG9iamVjdCBsZW5ndGggCi1QQVNTIE1lZGlh
RGV2aWNlSW5mbyBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUgCi1QQVNTIE1lZGlhRGV2aWNlSW5mbyBp
bnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBl
IG9iamVjdCAKLVBBU1MgTWVkaWFEZXZpY2VJbmZvIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBw
cm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgImNvbnN0cnVjdG9yIiBw
cm9wZXJ0eSAKLVBBU1MgTWVkaWFEZXZpY2VJbmZvIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBw
cm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgQEB1bnNjb3BhYmxlcyBw
cm9wZXJ0eSAKLVBBU1MgTWVkaWFEZXZpY2VJbmZvIGludGVyZmFjZTogYXR0cmlidXRlIGRldmlj
ZUlkIAotUEFTUyBNZWRpYURldmljZUluZm8gaW50ZXJmYWNlOiBhdHRyaWJ1dGUga2luZCAKLVBB
U1MgTWVkaWFEZXZpY2VJbmZvIGludGVyZmFjZTogYXR0cmlidXRlIGxhYmVsIAotUEFTUyBNZWRp
YURldmljZUluZm8gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgZ3JvdXBJZCAKLVBBU1MgTWVkaWFEZXZp
Y2VJbmZvIGludGVyZmFjZTogb3BlcmF0aW9uIHRvSlNPTigpIAotRkFJTCBJbnB1dERldmljZUlu
Zm8gaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVj
dCBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJJ
bnB1dERldmljZUluZm8iIGV4cGVjdGVkIHByb3BlcnR5ICJJbnB1dERldmljZUluZm8iIG1pc3Np
bmcKLUZBSUwgSW5wdXREZXZpY2VJbmZvIGludGVyZmFjZSBvYmplY3QgbGVuZ3RoIGFzc2VydF9v
d25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIklucHV0RGV2aWNl
SW5mbyIgZXhwZWN0ZWQgcHJvcGVydHkgIklucHV0RGV2aWNlSW5mbyIgbWlzc2luZwotRkFJTCBJ
bnB1dERldmljZUluZm8gaW50ZXJmYWNlIG9iamVjdCBuYW1lIGFzc2VydF9vd25fcHJvcGVydHk6
IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIklucHV0RGV2aWNlSW5mbyIgZXhwZWN0
ZWQgcHJvcGVydHkgIklucHV0RGV2aWNlSW5mbyIgbWlzc2luZwotRkFJTCBJbnB1dERldmljZUlu
Zm8gaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3Rv
dHlwZSBvYmplY3QgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBw
cm9wZXJ0eSAiSW5wdXREZXZpY2VJbmZvIiBleHBlY3RlZCBwcm9wZXJ0eSAiSW5wdXREZXZpY2VJ
bmZvIiBtaXNzaW5nCi1GQUlMIElucHV0RGV2aWNlSW5mbyBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBh
bmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzICJjb25zdHJ1Y3Rv
ciIgcHJvcGVydHkgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBw
cm9wZXJ0eSAiSW5wdXREZXZpY2VJbmZvIiBleHBlY3RlZCBwcm9wZXJ0eSAiSW5wdXREZXZpY2VJ
bmZvIiBtaXNzaW5nCi1GQUlMIElucHV0RGV2aWNlSW5mbyBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBh
bmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzIEBAdW5zY29wYWJs
ZXMgcHJvcGVydHkgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBw
cm9wZXJ0eSAiSW5wdXREZXZpY2VJbmZvIiBleHBlY3RlZCBwcm9wZXJ0eSAiSW5wdXREZXZpY2VJ
bmZvIiBtaXNzaW5nCi1GQUlMIElucHV0RGV2aWNlSW5mbyBpbnRlcmZhY2U6IG9wZXJhdGlvbiBn
ZXRDYXBhYmlsaXRpZXMoKSBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUg
b3duIHByb3BlcnR5ICJJbnB1dERldmljZUluZm8iIGV4cGVjdGVkIHByb3BlcnR5ICJJbnB1dERl
dmljZUluZm8iIG1pc3NpbmcKLVBBU1MgTmF2aWdhdG9yIGludGVyZmFjZTogYXR0cmlidXRlIG1l
ZGlhRGV2aWNlcyAKLUZBSUwgTmF2aWdhdG9yIGludGVyZmFjZTogb3BlcmF0aW9uIGdldFVzZXJN
ZWRpYShNZWRpYVN0cmVhbUNvbnN0cmFpbnRzLCBOYXZpZ2F0b3JVc2VyTWVkaWFTdWNjZXNzQ2Fs
bGJhY2ssIE5hdmlnYXRvclVzZXJNZWRpYUVycm9yQ2FsbGJhY2spIGFzc2VydF9vd25fcHJvcGVy
dHk6IGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IG1pc3Npbmcgbm9uLXN0YXRpYyBvcGVyYXRp
b24gZXhwZWN0ZWQgcHJvcGVydHkgImdldFVzZXJNZWRpYSIgbWlzc2luZwotUEFTUyBOYXZpZ2F0
b3IgaW50ZXJmYWNlOiBuYXZpZ2F0b3IgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJtZWRpYURldmlj
ZXMiIHdpdGggdGhlIHByb3BlciB0eXBlIAotRkFJTCBOYXZpZ2F0b3IgaW50ZXJmYWNlOiBuYXZp
Z2F0b3IgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJnZXRVc2VyTWVkaWEoTWVkaWFTdHJlYW1Db25z
dHJhaW50cywgTmF2aWdhdG9yVXNlck1lZGlhU3VjY2Vzc0NhbGxiYWNrLCBOYXZpZ2F0b3JVc2Vy
TWVkaWFFcnJvckNhbGxiYWNrKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2luaGVyaXRz
OiBwcm9wZXJ0eSAiZ2V0VXNlck1lZGlhIiBub3QgZm91bmQgaW4gcHJvdG90eXBlIGNoYWluCi1G
QUlMIE5hdmlnYXRvciBpbnRlcmZhY2U6IGNhbGxpbmcgZ2V0VXNlck1lZGlhKE1lZGlhU3RyZWFt
Q29uc3RyYWludHMsIE5hdmlnYXRvclVzZXJNZWRpYVN1Y2Nlc3NDYWxsYmFjaywgTmF2aWdhdG9y
VXNlck1lZGlhRXJyb3JDYWxsYmFjaykgb24gbmF2aWdhdG9yIHdpdGggdG9vIGZldyBhcmd1bWVu
dHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X2luaGVyaXRzOiBwcm9wZXJ0eSAiZ2V0VXNl
ck1lZGlhIiBub3QgZm91bmQgaW4gcHJvdG90eXBlIGNoYWluCi1QQVNTIFdvcmtlck5hdmlnYXRv
ciBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0
IAorRkFJTCBpZGxfdGVzdCBzZXR1cCBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24g
d2l0aCB2YWx1ZTogb2JqZWN0ICJXZWJJRExQYXJzZUVycm9yOiBTeW50YXggZXJyb3IgYXQgbGlu
ZSAxNDcsIHNpbmNlIGBpbnRlcmZhY2UgTmF2aWdhdG9yVXNlck1lZGlhYDoKK05hdmlnYXRvciBp
bXBsZW1lbnRzIE5hdmlnYXRvclVzZXJNZWRpYTsKK14gVW5yZWNvZ25pc2VkIHRva2VucyIKIApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9t
ZWRpYWNhcHR1cmUtc3RyZWFtcy9NZWRpYURldmljZXMtSURMLWVudW1lcmF0ZURldmljZXMtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9t
ZWRpYWNhcHR1cmUtc3RyZWFtcy9NZWRpYURldmljZXMtSURMLWVudW1lcmF0ZURldmljZXMtZXhw
ZWN0ZWQudHh0CmluZGV4IDk0ZTRkYjUzMGJkMDg3YTA1MzJlZmNmNTg1ZTAwZWY5NzkwOWMyOTcu
LmY0ZTEyYjJhNmE3NjVhMDUzNmYwNjkyNWFiNzRjYjNmYjc4MDQzY2EgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFjYXB0dXJlLXN0
cmVhbXMvTWVkaWFEZXZpY2VzLUlETC1lbnVtZXJhdGVEZXZpY2VzLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhY2FwdHVy
ZS1zdHJlYW1zL01lZGlhRGV2aWNlcy1JREwtZW51bWVyYXRlRGV2aWNlcy1leHBlY3RlZC50eHQK
QEAgLTEsMTAzICsxLDkgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA0ODI6IGNhbGxiYWNrIG5v
dCB5ZXQgc3VwcG9ydGVkCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNDgyOiBjYWxsYmFjayBub3Qg
eWV0IHN1cHBvcnRlZAogRGVzY3JpcHRpb24KIAogVGhpcyB0ZXN0IGNoZWNrcyBmb3IgdGhlIHBy
ZXNlbmNlIG9mIHRoZSBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmVudW1lcmF0ZURldmljZXMoKSBt
ZXRob2QuCiAKIAotUEFTUyBpZGxfdGVzdCBzZXR1cCAKLVBBU1MgUGFydGlhbCBpbnRlcmZhY2Ug
TmF2aWdhdG9yVXNlck1lZGlhOiBvcmlnaW5hbCBpbnRlcmZhY2UgZGVmaW5lZCAKLVBBU1MgUGFy
dGlhbCBpbnRlcmZhY2UgTWVkaWFEZXZpY2VzOiBvcmlnaW5hbCBpbnRlcmZhY2UgZGVmaW5lZCAK
LVBBU1MgTWVkaWFTdHJlYW0gaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2Yg
aW50ZXJmYWNlIG9iamVjdCAKLVBBU1MgTWVkaWFTdHJlYW0gaW50ZXJmYWNlIG9iamVjdCBsZW5n
dGggCi1QQVNTIE1lZGlhU3RyZWFtIGludGVyZmFjZSBvYmplY3QgbmFtZSAKLVBBU1MgTWVkaWFT
dHJlYW0gaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHBy
b3RvdHlwZSBvYmplY3QgCi1QQVNTIE1lZGlhU3RyZWFtIGludGVyZmFjZTogZXhpc3RlbmNlIGFu
ZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgImNvbnN0cnVjdG9y
IiBwcm9wZXJ0eSAKLVBBU1MgTWVkaWFTdHJlYW0gaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHBy
b3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyBAQHVuc2NvcGFibGVzIHBy
b3BlcnR5IAotUEFTUyBNZWRpYVN0cmVhbSBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBpZCAKLVBBU1Mg
TWVkaWFTdHJlYW0gaW50ZXJmYWNlOiBvcGVyYXRpb24gZ2V0QXVkaW9UcmFja3MoKSAKLVBBU1Mg
TWVkaWFTdHJlYW0gaW50ZXJmYWNlOiBvcGVyYXRpb24gZ2V0VmlkZW9UcmFja3MoKSAKLVBBU1Mg
TWVkaWFTdHJlYW0gaW50ZXJmYWNlOiBvcGVyYXRpb24gZ2V0VHJhY2tzKCkgCi1QQVNTIE1lZGlh
U3RyZWFtIGludGVyZmFjZTogb3BlcmF0aW9uIGdldFRyYWNrQnlJZChET01TdHJpbmcpIAotUEFT
UyBNZWRpYVN0cmVhbSBpbnRlcmZhY2U6IG9wZXJhdGlvbiBhZGRUcmFjayhNZWRpYVN0cmVhbVRy
YWNrKSAKLVBBU1MgTWVkaWFTdHJlYW0gaW50ZXJmYWNlOiBvcGVyYXRpb24gcmVtb3ZlVHJhY2so
TWVkaWFTdHJlYW1UcmFjaykgCi1QQVNTIE1lZGlhU3RyZWFtIGludGVyZmFjZTogb3BlcmF0aW9u
IGNsb25lKCkgCi1QQVNTIE1lZGlhU3RyZWFtIGludGVyZmFjZTogYXR0cmlidXRlIGFjdGl2ZSAK
LVBBU1MgTWVkaWFTdHJlYW0gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgb25hZGR0cmFjayAKLVBBU1Mg
TWVkaWFTdHJlYW0gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgb25yZW1vdmV0cmFjayAKLVBBU1MgTWVk
aWFTdHJlYW1UcmFjayBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRl
cmZhY2Ugb2JqZWN0IAotUEFTUyBNZWRpYVN0cmVhbVRyYWNrIGludGVyZmFjZSBvYmplY3QgbGVu
Z3RoIAotUEFTUyBNZWRpYVN0cmVhbVRyYWNrIGludGVyZmFjZSBvYmplY3QgbmFtZSAKLVBBU1Mg
TWVkaWFTdHJlYW1UcmFjayBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBp
bnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCAKLVBBU1MgTWVkaWFTdHJlYW1UcmFjayBpbnRlcmZh
Y2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVj
dCdzICJjb25zdHJ1Y3RvciIgcHJvcGVydHkgCi1QQVNTIE1lZGlhU3RyZWFtVHJhY2sgaW50ZXJm
YWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmpl
Y3QncyBAQHVuc2NvcGFibGVzIHByb3BlcnR5IAotUEFTUyBNZWRpYVN0cmVhbVRyYWNrIGludGVy
ZmFjZTogYXR0cmlidXRlIGtpbmQgCi1QQVNTIE1lZGlhU3RyZWFtVHJhY2sgaW50ZXJmYWNlOiBh
dHRyaWJ1dGUgaWQgCi1QQVNTIE1lZGlhU3RyZWFtVHJhY2sgaW50ZXJmYWNlOiBhdHRyaWJ1dGUg
bGFiZWwgCi1QQVNTIE1lZGlhU3RyZWFtVHJhY2sgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgZW5hYmxl
ZCAKLVBBU1MgTWVkaWFTdHJlYW1UcmFjayBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBtdXRlZCAKLVBB
U1MgTWVkaWFTdHJlYW1UcmFjayBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBvbm11dGUgCi1QQVNTIE1l
ZGlhU3RyZWFtVHJhY2sgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgb251bm11dGUgCi1QQVNTIE1lZGlh
U3RyZWFtVHJhY2sgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgcmVhZHlTdGF0ZSAKLVBBU1MgTWVkaWFT
dHJlYW1UcmFjayBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBvbmVuZGVkIAotUEFTUyBNZWRpYVN0cmVh
bVRyYWNrIGludGVyZmFjZTogb3BlcmF0aW9uIGNsb25lKCkgCi1QQVNTIE1lZGlhU3RyZWFtVHJh
Y2sgaW50ZXJmYWNlOiBvcGVyYXRpb24gc3RvcCgpIAotUEFTUyBNZWRpYVN0cmVhbVRyYWNrIGlu
dGVyZmFjZTogb3BlcmF0aW9uIGdldENhcGFiaWxpdGllcygpIAotUEFTUyBNZWRpYVN0cmVhbVRy
YWNrIGludGVyZmFjZTogb3BlcmF0aW9uIGdldENvbnN0cmFpbnRzKCkgCi1QQVNTIE1lZGlhU3Ry
ZWFtVHJhY2sgaW50ZXJmYWNlOiBvcGVyYXRpb24gZ2V0U2V0dGluZ3MoKSAKLVBBU1MgTWVkaWFT
dHJlYW1UcmFjayBpbnRlcmZhY2U6IG9wZXJhdGlvbiBhcHBseUNvbnN0cmFpbnRzKE1lZGlhVHJh
Y2tDb25zdHJhaW50cykgCi1QQVNTIE1lZGlhU3RyZWFtVHJhY2sgaW50ZXJmYWNlOiBhdHRyaWJ1
dGUgb25vdmVyY29uc3RyYWluZWQgCi1QQVNTIE1lZGlhU3RyZWFtVHJhY2tFdmVudCBpbnRlcmZh
Y2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IAotUEFTUyBN
ZWRpYVN0cmVhbVRyYWNrRXZlbnQgaW50ZXJmYWNlIG9iamVjdCBsZW5ndGggCi1QQVNTIE1lZGlh
U3RyZWFtVHJhY2tFdmVudCBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUgCi1QQVNTIE1lZGlhU3RyZWFt
VHJhY2tFdmVudCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZh
Y2UgcHJvdG90eXBlIG9iamVjdCAKLVBBU1MgTWVkaWFTdHJlYW1UcmFja0V2ZW50IGludGVyZmFj
ZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0
J3MgImNvbnN0cnVjdG9yIiBwcm9wZXJ0eSAKLVBBU1MgTWVkaWFTdHJlYW1UcmFja0V2ZW50IGlu
dGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUg
b2JqZWN0J3MgQEB1bnNjb3BhYmxlcyBwcm9wZXJ0eSAKLVBBU1MgTWVkaWFTdHJlYW1UcmFja0V2
ZW50IGludGVyZmFjZTogYXR0cmlidXRlIHRyYWNrIAotUEFTUyBPdmVyY29uc3RyYWluZWRFcnJv
ckV2ZW50IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBv
YmplY3QgCi1GQUlMIE92ZXJjb25zdHJhaW5lZEVycm9yRXZlbnQgaW50ZXJmYWNlIG9iamVjdCBs
ZW5ndGggYXNzZXJ0X2VxdWFsczogd3JvbmcgdmFsdWUgZm9yIE92ZXJjb25zdHJhaW5lZEVycm9y
RXZlbnQubGVuZ3RoIGV4cGVjdGVkIDIgYnV0IGdvdCAxCi1QQVNTIE92ZXJjb25zdHJhaW5lZEVy
cm9yRXZlbnQgaW50ZXJmYWNlIG9iamVjdCBuYW1lIAotUEFTUyBPdmVyY29uc3RyYWluZWRFcnJv
ckV2ZW50IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBw
cm90b3R5cGUgb2JqZWN0IAotUEFTUyBPdmVyY29uc3RyYWluZWRFcnJvckV2ZW50IGludGVyZmFj
ZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0
J3MgImNvbnN0cnVjdG9yIiBwcm9wZXJ0eSAKLVBBU1MgT3ZlcmNvbnN0cmFpbmVkRXJyb3JFdmVu
dCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90
eXBlIG9iamVjdCdzIEBAdW5zY29wYWJsZXMgcHJvcGVydHkgCi1QQVNTIE92ZXJjb25zdHJhaW5l
ZEVycm9yRXZlbnQgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgZXJyb3IgCi1QQVNTIE1lZGlhRGV2aWNl
cyBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0
IAotUEFTUyBNZWRpYURldmljZXMgaW50ZXJmYWNlIG9iamVjdCBsZW5ndGggCi1QQVNTIE1lZGlh
RGV2aWNlcyBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUgCi1QQVNTIE1lZGlhRGV2aWNlcyBpbnRlcmZh
Y2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVj
dCAKLVBBU1MgTWVkaWFEZXZpY2VzIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVz
IG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgImNvbnN0cnVjdG9yIiBwcm9wZXJ0eSAK
LVBBU1MgTWVkaWFEZXZpY2VzIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9m
IGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgQEB1bnNjb3BhYmxlcyBwcm9wZXJ0eSAKLVBB
U1MgTWVkaWFEZXZpY2VzIGludGVyZmFjZTogYXR0cmlidXRlIG9uZGV2aWNlY2hhbmdlIAotUEFT
UyBNZWRpYURldmljZXMgaW50ZXJmYWNlOiBvcGVyYXRpb24gZW51bWVyYXRlRGV2aWNlcygpIAot
UEFTUyBNZWRpYURldmljZXMgaW50ZXJmYWNlOiBvcGVyYXRpb24gZ2V0U3VwcG9ydGVkQ29uc3Ry
YWludHMoKSAKLVBBU1MgTWVkaWFEZXZpY2VzIGludGVyZmFjZTogb3BlcmF0aW9uIGdldFVzZXJN
ZWRpYShNZWRpYVN0cmVhbUNvbnN0cmFpbnRzKSAKLVBBU1MgTWVkaWFEZXZpY2VJbmZvIGludGVy
ZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgCi1QQVNT
IE1lZGlhRGV2aWNlSW5mbyBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aCAKLVBBU1MgTWVkaWFEZXZp
Y2VJbmZvIGludGVyZmFjZSBvYmplY3QgbmFtZSAKLVBBU1MgTWVkaWFEZXZpY2VJbmZvIGludGVy
ZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2Jq
ZWN0IAotUEFTUyBNZWRpYURldmljZUluZm8gaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3Bl
cnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyAiY29uc3RydWN0b3IiIHByb3Bl
cnR5IAotUEFTUyBNZWRpYURldmljZUluZm8gaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3Bl
cnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyBAQHVuc2NvcGFibGVzIHByb3Bl
cnR5IAotUEFTUyBNZWRpYURldmljZUluZm8gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgZGV2aWNlSWQg
Ci1QQVNTIE1lZGlhRGV2aWNlSW5mbyBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBraW5kIAotUEFTUyBN
ZWRpYURldmljZUluZm8gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgbGFiZWwgCi1QQVNTIE1lZGlhRGV2
aWNlSW5mbyBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBncm91cElkIAotUEFTUyBNZWRpYURldmljZUlu
Zm8gaW50ZXJmYWNlOiBvcGVyYXRpb24gdG9KU09OKCkgCi1QQVNTIE1lZGlhRGV2aWNlSW5mbyBt
dXN0IGJlIHByaW1hcnkgaW50ZXJmYWNlIG9mIF9tZWRpYUluZm8gCi1QQVNTIFN0cmluZ2lmaWNh
dGlvbiBvZiBfbWVkaWFJbmZvIAotUEFTUyBNZWRpYURldmljZUluZm8gaW50ZXJmYWNlOiBfbWVk
aWFJbmZvIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiZGV2aWNlSWQiIHdpdGggdGhlIHByb3BlciB0
eXBlIAotUEFTUyBNZWRpYURldmljZUluZm8gaW50ZXJmYWNlOiBfbWVkaWFJbmZvIG11c3QgaW5o
ZXJpdCBwcm9wZXJ0eSAia2luZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCi1QQVNTIE1lZGlhRGV2
aWNlSW5mbyBpbnRlcmZhY2U6IF9tZWRpYUluZm8gbXVzdCBpbmhlcml0IHByb3BlcnR5ICJsYWJl
bCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCi1QQVNTIE1lZGlhRGV2aWNlSW5mbyBpbnRlcmZhY2U6
IF9tZWRpYUluZm8gbXVzdCBpbmhlcml0IHByb3BlcnR5ICJncm91cElkIiB3aXRoIHRoZSBwcm9w
ZXIgdHlwZSAKLVBBU1MgTWVkaWFEZXZpY2VJbmZvIGludGVyZmFjZTogX21lZGlhSW5mbyBtdXN0
IGluaGVyaXQgcHJvcGVydHkgInRvSlNPTigpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKLVBBU1Mg
VGVzdCBkZWZhdWx0IHRvSlNPTiBvcGVyYXRpb24gb2YgTWVkaWFEZXZpY2VJbmZvIAotRkFJTCBJ
bnB1dERldmljZUluZm8gaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50
ZXJmYWNlIG9iamVjdCBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3du
IHByb3BlcnR5ICJJbnB1dERldmljZUluZm8iIGV4cGVjdGVkIHByb3BlcnR5ICJJbnB1dERldmlj
ZUluZm8iIG1pc3NpbmcKLUZBSUwgSW5wdXREZXZpY2VJbmZvIGludGVyZmFjZSBvYmplY3QgbGVu
Z3RoIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkg
IklucHV0RGV2aWNlSW5mbyIgZXhwZWN0ZWQgcHJvcGVydHkgIklucHV0RGV2aWNlSW5mbyIgbWlz
c2luZwotRkFJTCBJbnB1dERldmljZUluZm8gaW50ZXJmYWNlIG9iamVjdCBuYW1lIGFzc2VydF9v
d25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIklucHV0RGV2aWNl
SW5mbyIgZXhwZWN0ZWQgcHJvcGVydHkgIklucHV0RGV2aWNlSW5mbyIgbWlzc2luZwotRkFJTCBJ
bnB1dERldmljZUluZm8gaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50
ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5v
dCBoYXZlIG93biBwcm9wZXJ0eSAiSW5wdXREZXZpY2VJbmZvIiBleHBlY3RlZCBwcm9wZXJ0eSAi
SW5wdXREZXZpY2VJbmZvIiBtaXNzaW5nCi1GQUlMIElucHV0RGV2aWNlSW5mbyBpbnRlcmZhY2U6
IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdz
ICJjb25zdHJ1Y3RvciIgcHJvcGVydHkgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5v
dCBoYXZlIG93biBwcm9wZXJ0eSAiSW5wdXREZXZpY2VJbmZvIiBleHBlY3RlZCBwcm9wZXJ0eSAi
SW5wdXREZXZpY2VJbmZvIiBtaXNzaW5nCi1GQUlMIElucHV0RGV2aWNlSW5mbyBpbnRlcmZhY2U6
IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdz
IEBAdW5zY29wYWJsZXMgcHJvcGVydHkgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5v
dCBoYXZlIG93biBwcm9wZXJ0eSAiSW5wdXREZXZpY2VJbmZvIiBleHBlY3RlZCBwcm9wZXJ0eSAi
SW5wdXREZXZpY2VJbmZvIiBtaXNzaW5nCi1GQUlMIElucHV0RGV2aWNlSW5mbyBpbnRlcmZhY2U6
IG9wZXJhdGlvbiBnZXRDYXBhYmlsaXRpZXMoKSBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRv
ZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJJbnB1dERldmljZUluZm8iIGV4cGVjdGVkIHByb3Bl
cnR5ICJJbnB1dERldmljZUluZm8iIG1pc3NpbmcKLVBBU1MgTmF2aWdhdG9yIGludGVyZmFjZTog
YXR0cmlidXRlIG1lZGlhRGV2aWNlcyAKLUZBSUwgTmF2aWdhdG9yIGludGVyZmFjZTogb3BlcmF0
aW9uIGdldFVzZXJNZWRpYShNZWRpYVN0cmVhbUNvbnN0cmFpbnRzLCBOYXZpZ2F0b3JVc2VyTWVk
aWFTdWNjZXNzQ2FsbGJhY2ssIE5hdmlnYXRvclVzZXJNZWRpYUVycm9yQ2FsbGJhY2spIGFzc2Vy
dF9vd25fcHJvcGVydHk6IGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IG1pc3Npbmcgbm9uLXN0
YXRpYyBvcGVyYXRpb24gZXhwZWN0ZWQgcHJvcGVydHkgImdldFVzZXJNZWRpYSIgbWlzc2luZwot
UEFTUyBXb3JrZXJOYXZpZ2F0b3IgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMg
b2YgaW50ZXJmYWNlIG9iamVjdCAKK0ZBSUwgaWRsX3Rlc3Qgc2V0dXAgcHJvbWlzZV90ZXN0OiBV
bmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiV2ViSURMUGFyc2VFcnJvcjog
U3ludGF4IGVycm9yIGF0IGxpbmUgMTQ3LCBzaW5jZSBgaW50ZXJmYWNlIE5hdmlnYXRvclVzZXJN
ZWRpYWA6CitOYXZpZ2F0b3IgaW1wbGVtZW50cyBOYXZpZ2F0b3JVc2VyTWVkaWE7CiteIFVucmVj
b2duaXNlZCB0b2tlbnMiCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvbXN0LWNvbnRlbnQtaGludC9pZGxoYXJuZXNzLndpbmRvdy1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21z
dC1jb250ZW50LWhpbnQvaWRsaGFybmVzcy53aW5kb3ctZXhwZWN0ZWQudHh0CmluZGV4IGE3ZWEz
Mjc5MWNiMDA2OTNmMzc5NGEyM2QzMjg0YTkyNjc5YzUyZmYuLmZhNmJhMDY1NTY5MjlkNTc0ZjJk
YjY3ODVlMzhiNzAwYTYyYWI3ZWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvbXN0LWNvbnRlbnQtaGludC9pZGxoYXJuZXNzLndpbmRvdy1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9tc3QtY29udGVudC1oaW50L2lkbGhhcm5lc3Mud2luZG93LWV4cGVjdGVkLnR4dApAQCAt
MSwzMCArMSwzIEBACiAKLUZBSUwgaWRsX3Rlc3Qgc2V0dXAgcHJvbWlzZV90ZXN0OiBVbmhhbmRs
ZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiR290IGFuIGVycm9yIGJlZm9yZSBwYXJz
aW5nIGFueSBuYW1lZCBkZWZpbml0aW9uOiBVbnJlY29nbmlzZWQgdG9rZW5zLCBsaW5lIDEgKHRv
a2VuczogIntcImVycm9yXCI6IHtcIm1lc3NhZ2VcIiIpCi1bCi0gICAgewotICAgICAgICAidHlw
ZSI6ICJ7IiwKLSAgICAgICAgInZhbHVlIjogInsiLAotICAgICAgICAidHJpdmlhIjogIiIKLSAg
ICB9LAotICAgIHsKLSAgICAgICAgInR5cGUiOiAic3RyaW5nIiwKLSAgICAgICAgInZhbHVlIjog
IlwiZXJyb3JcIiIsCi0gICAgICAgICJ0cml2aWEiOiAiIgotICAgIH0sCi0gICAgewotICAgICAg
ICAidHlwZSI6ICI6IiwKLSAgICAgICAgInZhbHVlIjogIjoiLAotICAgICAgICAidHJpdmlhIjog
IiIKLSAgICB9LAotICAgIHsKLSAgICAgICAgInR5cGUiOiAieyIsCi0gICAgICAgICJ2YWx1ZSI6
ICJ7IiwKLSAgICAgICAgInRyaXZpYSI6ICIgIgotICAgIH0sCi0gICAgewotICAgICAgICAidHlw
ZSI6ICJzdHJpbmciLAotICAgICAgICAidmFsdWUiOiAiXCJtZXNzYWdlXCIiLAotICAgICAgICAi
dHJpdmlhIjogIiIKLSAgICB9Ci1dIgorRkFJTCBpZGxfdGVzdCBzZXR1cCBwcm9taXNlX3Rlc3Q6
IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJFcnJvciBmZXRjaGluZyAv
aW50ZXJmYWNlcy9tc3QtY29udGVudC1oaW50LmlkbC4iCiAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbm90aWZpY2F0aW9ucy9pbnRlcmZh
Y2VzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvbm90aWZpY2F0aW9ucy9pbnRlcmZhY2VzLWV4cGVjdGVkLnR4dAppbmRleCA5NzA2NmIy
YjY0YjMyNGMzMWE4MmFjYTM4NTk0MTA0M2M5ZmVlZjQ3Li42MTY4Y2RkYmQ0NTEwOTM3YjJhMjA3
N2NjM2U5NjEzY2VkM2JlMDlkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL25vdGlmaWNhdGlvbnMvaW50ZXJmYWNlcy1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9ub3RpZmlj
YXRpb25zL2ludGVyZmFjZXMtZXhwZWN0ZWQudHh0CkBAIC0xLDUgKzEsMyBAQAotQ09OU09MRSBN
RVNTQUdFOiBsaW5lIDQ4MjogY2FsbGJhY2sgbm90IHlldCBzdXBwb3J0ZWQKLUNPTlNPTEUgTUVT
U0FHRTogbGluZSA0ODI6IGNhbGxiYWNrIG5vdCB5ZXQgc3VwcG9ydGVkCiAKIFBBU1MgTm90aWZp
Y2F0aW9uIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBv
YmplY3QgCiBQQVNTIE5vdGlmaWNhdGlvbiBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aCAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzaXpl
LW9ic2VydmVyL2lkbGhhcm5lc3Mud2luZG93LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzaXplLW9ic2VydmVyL2lkbGhhcm5lc3Mu
d2luZG93LWV4cGVjdGVkLnR4dAppbmRleCA4Yzg0OTI4ZGYzMTFjODM1ZGE5YTA5NDVjZjVhYTJi
MzQ3OWVlNWExLi4xZDMzNzNkOGQ4NGU4OGFmM2M0MDdlYmFlYTliOGE3NjgwOWI3YTg4IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc2l6
ZS1vYnNlcnZlci9pZGxoYXJuZXNzLndpbmRvdy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNpemUtb2JzZXJ2ZXIvaWRsaGFy
bmVzcy53aW5kb3ctZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsMyBAQAotQ09OU09MRSBNRVNTQUdF
OiBsaW5lIDQ4MjogY2FsbGJhY2sgbm90IHlldCBzdXBwb3J0ZWQKIAogUEFTUyBpZGxfdGVzdCBz
ZXR1cCAKIFBBU1MgUmVzaXplT2JzZXJ2ZXJFbnRyeSBjcmVhdG9yIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZS10aW1pbmcv
aWRsaGFybmVzcy5hbnktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZS10aW1pbmcvaWRsaGFybmVzcy5hbnktZXhwZWN0ZWQu
dHh0CmluZGV4IGE3ZWEzMjc5MWNiMDA2OTNmMzc5NGEyM2QzMjg0YTkyNjc5YzUyZmYuLjVlNTgy
Zjk0YWZlYmJiNDFkN2E3ZGYyNjVhODFkMDhmNGYzNTEyYTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2UtdGltaW5nL2lkbGhh
cm5lc3MuYW55LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlLXRpbWluZy9pZGxoYXJuZXNzLmFueS1leHBlY3RlZC50
eHQKQEAgLTEsMzAgKzEsNTYgQEAKIAotRkFJTCBpZGxfdGVzdCBzZXR1cCBwcm9taXNlX3Rlc3Q6
IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJHb3QgYW4gZXJyb3IgYmVm
b3JlIHBhcnNpbmcgYW55IG5hbWVkIGRlZmluaXRpb246IFVucmVjb2duaXNlZCB0b2tlbnMsIGxp
bmUgMSAodG9rZW5zOiAie1wiZXJyb3JcIjoge1wibWVzc2FnZVwiIikKLVsKLSAgICB7Ci0gICAg
ICAgICJ0eXBlIjogInsiLAotICAgICAgICAidmFsdWUiOiAieyIsCi0gICAgICAgICJ0cml2aWEi
OiAiIgotICAgIH0sCi0gICAgewotICAgICAgICAidHlwZSI6ICJzdHJpbmciLAotICAgICAgICAi
dmFsdWUiOiAiXCJlcnJvclwiIiwKLSAgICAgICAgInRyaXZpYSI6ICIiCi0gICAgfSwKLSAgICB7
Ci0gICAgICAgICJ0eXBlIjogIjoiLAotICAgICAgICAidmFsdWUiOiAiOiIsCi0gICAgICAgICJ0
cml2aWEiOiAiIgotICAgIH0sCi0gICAgewotICAgICAgICAidHlwZSI6ICJ7IiwKLSAgICAgICAg
InZhbHVlIjogInsiLAotICAgICAgICAidHJpdmlhIjogIiAiCi0gICAgfSwKLSAgICB7Ci0gICAg
ICAgICJ0eXBlIjogInN0cmluZyIsCi0gICAgICAgICJ2YWx1ZSI6ICJcIm1lc3NhZ2VcIiIsCi0g
ICAgICAgICJ0cml2aWEiOiAiIgotICAgIH0KLV0iCitQQVNTIGlkbF90ZXN0IHNldHVwIAorUEFT
UyBQYXJ0aWFsIGludGVyZmFjZSBQZXJmb3JtYW5jZTogb3JpZ2luYWwgaW50ZXJmYWNlIGRlZmlu
ZWQgCitQQVNTIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcgaW50ZXJmYWNlOiBleGlzdGVuY2Ug
YW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCAKK1BBU1MgUGVyZm9ybWFuY2VSZXNv
dXJjZVRpbWluZyBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aCAKK1BBU1MgUGVyZm9ybWFuY2VSZXNv
dXJjZVRpbWluZyBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUgCitQQVNTIFBlcmZvcm1hbmNlUmVzb3Vy
Y2VUaW1pbmcgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNl
IHByb3RvdHlwZSBvYmplY3QgCitQQVNTIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcgaW50ZXJm
YWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmpl
Y3QncyAiY29uc3RydWN0b3IiIHByb3BlcnR5IAorUEFTUyBQZXJmb3JtYW5jZVJlc291cmNlVGlt
aW5nIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90
b3R5cGUgb2JqZWN0J3MgQEB1bnNjb3BhYmxlcyBwcm9wZXJ0eSAKK1BBU1MgUGVyZm9ybWFuY2VS
ZXNvdXJjZVRpbWluZyBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBpbml0aWF0b3JUeXBlIAorUEFTUyBQ
ZXJmb3JtYW5jZVJlc291cmNlVGltaW5nIGludGVyZmFjZTogYXR0cmlidXRlIG5leHRIb3BQcm90
b2NvbCAKK1BBU1MgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZyBpbnRlcmZhY2U6IGF0dHJpYnV0
ZSB3b3JrZXJTdGFydCAKK1BBU1MgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZyBpbnRlcmZhY2U6
IGF0dHJpYnV0ZSByZWRpcmVjdFN0YXJ0IAorUEFTUyBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5n
IGludGVyZmFjZTogYXR0cmlidXRlIHJlZGlyZWN0RW5kIAorUEFTUyBQZXJmb3JtYW5jZVJlc291
cmNlVGltaW5nIGludGVyZmFjZTogYXR0cmlidXRlIGZldGNoU3RhcnQgCitQQVNTIFBlcmZvcm1h
bmNlUmVzb3VyY2VUaW1pbmcgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgZG9tYWluTG9va3VwU3RhcnQg
CitQQVNTIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgZG9t
YWluTG9va3VwRW5kIAorUEFTUyBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nIGludGVyZmFjZTog
YXR0cmlidXRlIGNvbm5lY3RTdGFydCAKK1BBU1MgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZyBp
bnRlcmZhY2U6IGF0dHJpYnV0ZSBjb25uZWN0RW5kIAorUEFTUyBQZXJmb3JtYW5jZVJlc291cmNl
VGltaW5nIGludGVyZmFjZTogYXR0cmlidXRlIHNlY3VyZUNvbm5lY3Rpb25TdGFydCAKK1BBU1Mg
UGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZyBpbnRlcmZhY2U6IGF0dHJpYnV0ZSByZXF1ZXN0U3Rh
cnQgCitQQVNTIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcgaW50ZXJmYWNlOiBhdHRyaWJ1dGUg
cmVzcG9uc2VTdGFydCAKK1BBU1MgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZyBpbnRlcmZhY2U6
IGF0dHJpYnV0ZSByZXNwb25zZUVuZCAKK0ZBSUwgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZyBp
bnRlcmZhY2U6IGF0dHJpYnV0ZSB0cmFuc2ZlclNpemUgYXNzZXJ0X3RydWU6IFRoZSBwcm90b3R5
cGUgb2JqZWN0IG11c3QgaGF2ZSBhIHByb3BlcnR5ICJ0cmFuc2ZlclNpemUiIGV4cGVjdGVkIHRy
dWUgZ290IGZhbHNlCitGQUlMIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcgaW50ZXJmYWNlOiBh
dHRyaWJ1dGUgZW5jb2RlZEJvZHlTaXplIGFzc2VydF90cnVlOiBUaGUgcHJvdG90eXBlIG9iamVj
dCBtdXN0IGhhdmUgYSBwcm9wZXJ0eSAiZW5jb2RlZEJvZHlTaXplIiBleHBlY3RlZCB0cnVlIGdv
dCBmYWxzZQorRkFJTCBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nIGludGVyZmFjZTogYXR0cmli
dXRlIGRlY29kZWRCb2R5U2l6ZSBhc3NlcnRfdHJ1ZTogVGhlIHByb3RvdHlwZSBvYmplY3QgbXVz
dCBoYXZlIGEgcHJvcGVydHkgImRlY29kZWRCb2R5U2l6ZSIgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFs
c2UKK1BBU1MgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZyBpbnRlcmZhY2U6IG9wZXJhdGlvbiB0
b0pTT04oKSAKK1BBU1MgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZyBtdXN0IGJlIHByaW1hcnkg
aW50ZXJmYWNlIG9mIHJlc291cmNlIAorUEFTUyBTdHJpbmdpZmljYXRpb24gb2YgcmVzb3VyY2Ug
CitQQVNTIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcgaW50ZXJmYWNlOiByZXNvdXJjZSBtdXN0
IGluaGVyaXQgcHJvcGVydHkgImluaXRpYXRvclR5cGUiIHdpdGggdGhlIHByb3BlciB0eXBlIAor
UEFTUyBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nIGludGVyZmFjZTogcmVzb3VyY2UgbXVzdCBp
bmhlcml0IHByb3BlcnR5ICJuZXh0SG9wUHJvdG9jb2wiIHdpdGggdGhlIHByb3BlciB0eXBlIAor
UEFTUyBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nIGludGVyZmFjZTogcmVzb3VyY2UgbXVzdCBp
bmhlcml0IHByb3BlcnR5ICJ3b3JrZXJTdGFydCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNT
IFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcgaW50ZXJmYWNlOiByZXNvdXJjZSBtdXN0IGluaGVy
aXQgcHJvcGVydHkgInJlZGlyZWN0U3RhcnQiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBQ
ZXJmb3JtYW5jZVJlc291cmNlVGltaW5nIGludGVyZmFjZTogcmVzb3VyY2UgbXVzdCBpbmhlcml0
IHByb3BlcnR5ICJyZWRpcmVjdEVuZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIFBlcmZv
cm1hbmNlUmVzb3VyY2VUaW1pbmcgaW50ZXJmYWNlOiByZXNvdXJjZSBtdXN0IGluaGVyaXQgcHJv
cGVydHkgImZldGNoU3RhcnQiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBQZXJmb3JtYW5j
ZVJlc291cmNlVGltaW5nIGludGVyZmFjZTogcmVzb3VyY2UgbXVzdCBpbmhlcml0IHByb3BlcnR5
ICJkb21haW5Mb29rdXBTdGFydCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIFBlcmZvcm1h
bmNlUmVzb3VyY2VUaW1pbmcgaW50ZXJmYWNlOiByZXNvdXJjZSBtdXN0IGluaGVyaXQgcHJvcGVy
dHkgImRvbWFpbkxvb2t1cEVuZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIFBlcmZvcm1h
bmNlUmVzb3VyY2VUaW1pbmcgaW50ZXJmYWNlOiByZXNvdXJjZSBtdXN0IGluaGVyaXQgcHJvcGVy
dHkgImNvbm5lY3RTdGFydCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIFBlcmZvcm1hbmNl
UmVzb3VyY2VUaW1pbmcgaW50ZXJmYWNlOiByZXNvdXJjZSBtdXN0IGluaGVyaXQgcHJvcGVydHkg
ImNvbm5lY3RFbmQiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBQZXJmb3JtYW5jZVJlc291
cmNlVGltaW5nIGludGVyZmFjZTogcmVzb3VyY2UgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJzZWN1
cmVDb25uZWN0aW9uU3RhcnQiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBQZXJmb3JtYW5j
ZVJlc291cmNlVGltaW5nIGludGVyZmFjZTogcmVzb3VyY2UgbXVzdCBpbmhlcml0IHByb3BlcnR5
ICJyZXF1ZXN0U3RhcnQiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBQZXJmb3JtYW5jZVJl
c291cmNlVGltaW5nIGludGVyZmFjZTogcmVzb3VyY2UgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJy
ZXNwb25zZVN0YXJ0IiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgUGVyZm9ybWFuY2VSZXNv
dXJjZVRpbWluZyBpbnRlcmZhY2U6IHJlc291cmNlIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAicmVz
cG9uc2VFbmQiIHdpdGggdGhlIHByb3BlciB0eXBlIAorRkFJTCBQZXJmb3JtYW5jZVJlc291cmNl
VGltaW5nIGludGVyZmFjZTogcmVzb3VyY2UgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJ0cmFuc2Zl
clNpemUiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9pbmhlcml0czogcHJvcGVydHkgInRy
YW5zZmVyU2l6ZSIgbm90IGZvdW5kIGluIHByb3RvdHlwZSBjaGFpbgorRkFJTCBQZXJmb3JtYW5j
ZVJlc291cmNlVGltaW5nIGludGVyZmFjZTogcmVzb3VyY2UgbXVzdCBpbmhlcml0IHByb3BlcnR5
ICJlbmNvZGVkQm9keVNpemUiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9pbmhlcml0czog
cHJvcGVydHkgImVuY29kZWRCb2R5U2l6ZSIgbm90IGZvdW5kIGluIHByb3RvdHlwZSBjaGFpbgor
RkFJTCBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nIGludGVyZmFjZTogcmVzb3VyY2UgbXVzdCBp
bmhlcml0IHByb3BlcnR5ICJkZWNvZGVkQm9keVNpemUiIHdpdGggdGhlIHByb3BlciB0eXBlIGFz
c2VydF9pbmhlcml0czogcHJvcGVydHkgImRlY29kZWRCb2R5U2l6ZSIgbm90IGZvdW5kIGluIHBy
b3RvdHlwZSBjaGFpbgorUEFTUyBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nIGludGVyZmFjZTog
cmVzb3VyY2UgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJ0b0pTT04oKSIgd2l0aCB0aGUgcHJvcGVy
IHR5cGUgCitGQUlMIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcgaW50ZXJmYWNlOiBkZWZhdWx0
IHRvSlNPTiBvcGVyYXRpb24gb24gcmVzb3VyY2UgYXNzZXJ0X3RydWU6IHByb3BlcnR5ICJ0cmFu
c2ZlclNpemUiIHNob3VsZCBiZSBwcmVzZW50IGluIHRoZSBvdXRwdXQgb2YgUGVyZm9ybWFuY2VS
ZXNvdXJjZVRpbWluZy5wcm90b3R5cGUudG9KU09OKCkgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UK
K1BBU1MgUGVyZm9ybWFuY2UgaW50ZXJmYWNlOiBvcGVyYXRpb24gY2xlYXJSZXNvdXJjZVRpbWlu
Z3MoKSAKK1BBU1MgUGVyZm9ybWFuY2UgaW50ZXJmYWNlOiBvcGVyYXRpb24gc2V0UmVzb3VyY2VU
aW1pbmdCdWZmZXJTaXplKHVuc2lnbmVkIGxvbmcpIAorUEFTUyBQZXJmb3JtYW5jZSBpbnRlcmZh
Y2U6IGF0dHJpYnV0ZSBvbnJlc291cmNldGltaW5nYnVmZmVyZnVsbCAKK1BBU1MgUGVyZm9ybWFu
Y2UgaW50ZXJmYWNlOiBwZXJmb3JtYW5jZSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImNsZWFyUmVz
b3VyY2VUaW1pbmdzKCkiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBQZXJmb3JtYW5jZSBp
bnRlcmZhY2U6IHBlcmZvcm1hbmNlIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAic2V0UmVzb3VyY2VU
aW1pbmdCdWZmZXJTaXplKHVuc2lnbmVkIGxvbmcpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BB
U1MgUGVyZm9ybWFuY2UgaW50ZXJmYWNlOiBjYWxsaW5nIHNldFJlc291cmNlVGltaW5nQnVmZmVy
U2l6ZSh1bnNpZ25lZCBsb25nKSBvbiBwZXJmb3JtYW5jZSB3aXRoIHRvbyBmZXcgYXJndW1lbnRz
IG11c3QgdGhyb3cgVHlwZUVycm9yIAorUEFTUyBQZXJmb3JtYW5jZSBpbnRlcmZhY2U6IHBlcmZv
cm1hbmNlIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAib25yZXNvdXJjZXRpbWluZ2J1ZmZlcmZ1bGwi
IHdpdGggdGhlIHByb3BlciB0eXBlIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlLXRpbWluZy9pZGxoYXJuZXNzLmFueS53
b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9yZXNvdXJjZS10aW1pbmcvaWRsaGFybmVzcy5hbnkud29ya2VyLWV4cGVjdGVkLnR4
dAppbmRleCBhN2VhMzI3OTFjYjAwNjkzZjM3OTRhMjNkMzI4NGE5MjY3OWM1MmZmLi41ZTU4MmY5
NGFmZWJiYjQxZDdhN2RmMjY1YTgxZDA4ZjRmMzUxMmE2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlLXRpbWluZy9pZGxoYXJu
ZXNzLmFueS53b3JrZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2UtdGltaW5nL2lkbGhhcm5lc3MuYW55Lndvcmtl
ci1leHBlY3RlZC50eHQKQEAgLTEsMzAgKzEsNTYgQEAKIAotRkFJTCBpZGxfdGVzdCBzZXR1cCBw
cm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJHb3Qg
YW4gZXJyb3IgYmVmb3JlIHBhcnNpbmcgYW55IG5hbWVkIGRlZmluaXRpb246IFVucmVjb2duaXNl
ZCB0b2tlbnMsIGxpbmUgMSAodG9rZW5zOiAie1wiZXJyb3JcIjoge1wibWVzc2FnZVwiIikKLVsK
LSAgICB7Ci0gICAgICAgICJ0eXBlIjogInsiLAotICAgICAgICAidmFsdWUiOiAieyIsCi0gICAg
ICAgICJ0cml2aWEiOiAiIgotICAgIH0sCi0gICAgewotICAgICAgICAidHlwZSI6ICJzdHJpbmci
LAotICAgICAgICAidmFsdWUiOiAiXCJlcnJvclwiIiwKLSAgICAgICAgInRyaXZpYSI6ICIiCi0g
ICAgfSwKLSAgICB7Ci0gICAgICAgICJ0eXBlIjogIjoiLAotICAgICAgICAidmFsdWUiOiAiOiIs
Ci0gICAgICAgICJ0cml2aWEiOiAiIgotICAgIH0sCi0gICAgewotICAgICAgICAidHlwZSI6ICJ7
IiwKLSAgICAgICAgInZhbHVlIjogInsiLAotICAgICAgICAidHJpdmlhIjogIiAiCi0gICAgfSwK
LSAgICB7Ci0gICAgICAgICJ0eXBlIjogInN0cmluZyIsCi0gICAgICAgICJ2YWx1ZSI6ICJcIm1l
c3NhZ2VcIiIsCi0gICAgICAgICJ0cml2aWEiOiAiIgotICAgIH0KLV0iCitQQVNTIGlkbF90ZXN0
IHNldHVwIAorUEFTUyBQYXJ0aWFsIGludGVyZmFjZSBQZXJmb3JtYW5jZTogb3JpZ2luYWwgaW50
ZXJmYWNlIGRlZmluZWQgCitQQVNTIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcgaW50ZXJmYWNl
OiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCAKK1BBU1MgUGVy
Zm9ybWFuY2VSZXNvdXJjZVRpbWluZyBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aCAKK1BBU1MgUGVy
Zm9ybWFuY2VSZXNvdXJjZVRpbWluZyBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUgCitQQVNTIFBlcmZv
cm1hbmNlUmVzb3VyY2VUaW1pbmcgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMg
b2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgCitQQVNTIFBlcmZvcm1hbmNlUmVzb3VyY2VU
aW1pbmcgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHBy
b3RvdHlwZSBvYmplY3QncyAiY29uc3RydWN0b3IiIHByb3BlcnR5IAorUEFTUyBQZXJmb3JtYW5j
ZVJlc291cmNlVGltaW5nIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGlu
dGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgQEB1bnNjb3BhYmxlcyBwcm9wZXJ0eSAKK1BBU1Mg
UGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZyBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBpbml0aWF0b3JU
eXBlIAorUEFTUyBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nIGludGVyZmFjZTogYXR0cmlidXRl
IG5leHRIb3BQcm90b2NvbCAKK1BBU1MgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZyBpbnRlcmZh
Y2U6IGF0dHJpYnV0ZSB3b3JrZXJTdGFydCAKK1BBU1MgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWlu
ZyBpbnRlcmZhY2U6IGF0dHJpYnV0ZSByZWRpcmVjdFN0YXJ0IAorUEFTUyBQZXJmb3JtYW5jZVJl
c291cmNlVGltaW5nIGludGVyZmFjZTogYXR0cmlidXRlIHJlZGlyZWN0RW5kIAorUEFTUyBQZXJm
b3JtYW5jZVJlc291cmNlVGltaW5nIGludGVyZmFjZTogYXR0cmlidXRlIGZldGNoU3RhcnQgCitQ
QVNTIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgZG9tYWlu
TG9va3VwU3RhcnQgCitQQVNTIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcgaW50ZXJmYWNlOiBh
dHRyaWJ1dGUgZG9tYWluTG9va3VwRW5kIAorUEFTUyBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5n
IGludGVyZmFjZTogYXR0cmlidXRlIGNvbm5lY3RTdGFydCAKK1BBU1MgUGVyZm9ybWFuY2VSZXNv
dXJjZVRpbWluZyBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBjb25uZWN0RW5kIAorUEFTUyBQZXJmb3Jt
YW5jZVJlc291cmNlVGltaW5nIGludGVyZmFjZTogYXR0cmlidXRlIHNlY3VyZUNvbm5lY3Rpb25T
dGFydCAKK1BBU1MgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZyBpbnRlcmZhY2U6IGF0dHJpYnV0
ZSByZXF1ZXN0U3RhcnQgCitQQVNTIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcgaW50ZXJmYWNl
OiBhdHRyaWJ1dGUgcmVzcG9uc2VTdGFydCAKK1BBU1MgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWlu
ZyBpbnRlcmZhY2U6IGF0dHJpYnV0ZSByZXNwb25zZUVuZCAKK0ZBSUwgUGVyZm9ybWFuY2VSZXNv
dXJjZVRpbWluZyBpbnRlcmZhY2U6IGF0dHJpYnV0ZSB0cmFuc2ZlclNpemUgYXNzZXJ0X3RydWU6
IFRoZSBwcm90b3R5cGUgb2JqZWN0IG11c3QgaGF2ZSBhIHByb3BlcnR5ICJ0cmFuc2ZlclNpemUi
IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitGQUlMIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcg
aW50ZXJmYWNlOiBhdHRyaWJ1dGUgZW5jb2RlZEJvZHlTaXplIGFzc2VydF90cnVlOiBUaGUgcHJv
dG90eXBlIG9iamVjdCBtdXN0IGhhdmUgYSBwcm9wZXJ0eSAiZW5jb2RlZEJvZHlTaXplIiBleHBl
Y3RlZCB0cnVlIGdvdCBmYWxzZQorRkFJTCBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nIGludGVy
ZmFjZTogYXR0cmlidXRlIGRlY29kZWRCb2R5U2l6ZSBhc3NlcnRfdHJ1ZTogVGhlIHByb3RvdHlw
ZSBvYmplY3QgbXVzdCBoYXZlIGEgcHJvcGVydHkgImRlY29kZWRCb2R5U2l6ZSIgZXhwZWN0ZWQg
dHJ1ZSBnb3QgZmFsc2UKK1BBU1MgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZyBpbnRlcmZhY2U6
IG9wZXJhdGlvbiB0b0pTT04oKSAKK1BBU1MgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZyBtdXN0
IGJlIHByaW1hcnkgaW50ZXJmYWNlIG9mIHJlc291cmNlIAorUEFTUyBTdHJpbmdpZmljYXRpb24g
b2YgcmVzb3VyY2UgCitQQVNTIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcgaW50ZXJmYWNlOiBy
ZXNvdXJjZSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImluaXRpYXRvclR5cGUiIHdpdGggdGhlIHBy
b3BlciB0eXBlIAorUEFTUyBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nIGludGVyZmFjZTogcmVz
b3VyY2UgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJuZXh0SG9wUHJvdG9jb2wiIHdpdGggdGhlIHBy
b3BlciB0eXBlIAorUEFTUyBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nIGludGVyZmFjZTogcmVz
b3VyY2UgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJ3b3JrZXJTdGFydCIgd2l0aCB0aGUgcHJvcGVy
IHR5cGUgCitQQVNTIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcgaW50ZXJmYWNlOiByZXNvdXJj
ZSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInJlZGlyZWN0U3RhcnQiIHdpdGggdGhlIHByb3BlciB0
eXBlIAorUEFTUyBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nIGludGVyZmFjZTogcmVzb3VyY2Ug
bXVzdCBpbmhlcml0IHByb3BlcnR5ICJyZWRpcmVjdEVuZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUg
CitQQVNTIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcgaW50ZXJmYWNlOiByZXNvdXJjZSBtdXN0
IGluaGVyaXQgcHJvcGVydHkgImZldGNoU3RhcnQiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFT
UyBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nIGludGVyZmFjZTogcmVzb3VyY2UgbXVzdCBpbmhl
cml0IHByb3BlcnR5ICJkb21haW5Mb29rdXBTdGFydCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQ
QVNTIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcgaW50ZXJmYWNlOiByZXNvdXJjZSBtdXN0IGlu
aGVyaXQgcHJvcGVydHkgImRvbWFpbkxvb2t1cEVuZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQ
QVNTIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcgaW50ZXJmYWNlOiByZXNvdXJjZSBtdXN0IGlu
aGVyaXQgcHJvcGVydHkgImNvbm5lY3RTdGFydCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNT
IFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcgaW50ZXJmYWNlOiByZXNvdXJjZSBtdXN0IGluaGVy
aXQgcHJvcGVydHkgImNvbm5lY3RFbmQiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBQZXJm
b3JtYW5jZVJlc291cmNlVGltaW5nIGludGVyZmFjZTogcmVzb3VyY2UgbXVzdCBpbmhlcml0IHBy
b3BlcnR5ICJzZWN1cmVDb25uZWN0aW9uU3RhcnQiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFT
UyBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nIGludGVyZmFjZTogcmVzb3VyY2UgbXVzdCBpbmhl
cml0IHByb3BlcnR5ICJyZXF1ZXN0U3RhcnQiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBQ
ZXJmb3JtYW5jZVJlc291cmNlVGltaW5nIGludGVyZmFjZTogcmVzb3VyY2UgbXVzdCBpbmhlcml0
IHByb3BlcnR5ICJyZXNwb25zZVN0YXJ0IiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgUGVy
Zm9ybWFuY2VSZXNvdXJjZVRpbWluZyBpbnRlcmZhY2U6IHJlc291cmNlIG11c3QgaW5oZXJpdCBw
cm9wZXJ0eSAicmVzcG9uc2VFbmQiIHdpdGggdGhlIHByb3BlciB0eXBlIAorRkFJTCBQZXJmb3Jt
YW5jZVJlc291cmNlVGltaW5nIGludGVyZmFjZTogcmVzb3VyY2UgbXVzdCBpbmhlcml0IHByb3Bl
cnR5ICJ0cmFuc2ZlclNpemUiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9pbmhlcml0czog
cHJvcGVydHkgInRyYW5zZmVyU2l6ZSIgbm90IGZvdW5kIGluIHByb3RvdHlwZSBjaGFpbgorRkFJ
TCBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nIGludGVyZmFjZTogcmVzb3VyY2UgbXVzdCBpbmhl
cml0IHByb3BlcnR5ICJlbmNvZGVkQm9keVNpemUiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2Vy
dF9pbmhlcml0czogcHJvcGVydHkgImVuY29kZWRCb2R5U2l6ZSIgbm90IGZvdW5kIGluIHByb3Rv
dHlwZSBjaGFpbgorRkFJTCBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nIGludGVyZmFjZTogcmVz
b3VyY2UgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJkZWNvZGVkQm9keVNpemUiIHdpdGggdGhlIHBy
b3BlciB0eXBlIGFzc2VydF9pbmhlcml0czogcHJvcGVydHkgImRlY29kZWRCb2R5U2l6ZSIgbm90
IGZvdW5kIGluIHByb3RvdHlwZSBjaGFpbgorUEFTUyBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5n
IGludGVyZmFjZTogcmVzb3VyY2UgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJ0b0pTT04oKSIgd2l0
aCB0aGUgcHJvcGVyIHR5cGUgCitGQUlMIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcgaW50ZXJm
YWNlOiBkZWZhdWx0IHRvSlNPTiBvcGVyYXRpb24gb24gcmVzb3VyY2UgYXNzZXJ0X3RydWU6IHBy
b3BlcnR5ICJ0cmFuc2ZlclNpemUiIHNob3VsZCBiZSBwcmVzZW50IGluIHRoZSBvdXRwdXQgb2Yg
UGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5wcm90b3R5cGUudG9KU09OKCkgZXhwZWN0ZWQgdHJ1
ZSBnb3QgZmFsc2UKK1BBU1MgUGVyZm9ybWFuY2UgaW50ZXJmYWNlOiBvcGVyYXRpb24gY2xlYXJS
ZXNvdXJjZVRpbWluZ3MoKSAKK1BBU1MgUGVyZm9ybWFuY2UgaW50ZXJmYWNlOiBvcGVyYXRpb24g
c2V0UmVzb3VyY2VUaW1pbmdCdWZmZXJTaXplKHVuc2lnbmVkIGxvbmcpIAorUEFTUyBQZXJmb3Jt
YW5jZSBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBvbnJlc291cmNldGltaW5nYnVmZmVyZnVsbCAKK1BB
U1MgUGVyZm9ybWFuY2UgaW50ZXJmYWNlOiBwZXJmb3JtYW5jZSBtdXN0IGluaGVyaXQgcHJvcGVy
dHkgImNsZWFyUmVzb3VyY2VUaW1pbmdzKCkiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBQ
ZXJmb3JtYW5jZSBpbnRlcmZhY2U6IHBlcmZvcm1hbmNlIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAi
c2V0UmVzb3VyY2VUaW1pbmdCdWZmZXJTaXplKHVuc2lnbmVkIGxvbmcpIiB3aXRoIHRoZSBwcm9w
ZXIgdHlwZSAKK1BBU1MgUGVyZm9ybWFuY2UgaW50ZXJmYWNlOiBjYWxsaW5nIHNldFJlc291cmNl
VGltaW5nQnVmZmVyU2l6ZSh1bnNpZ25lZCBsb25nKSBvbiBwZXJmb3JtYW5jZSB3aXRoIHRvbyBm
ZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAorUEFTUyBQZXJmb3JtYW5jZSBpbnRl
cmZhY2U6IHBlcmZvcm1hbmNlIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAib25yZXNvdXJjZXRpbWlu
Z2J1ZmZlcmZ1bGwiIHdpdGggdGhlIHByb3BlciB0eXBlIAogCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy9pZGxoYXJuZXNz
LmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJj
ZXMvaWRsaGFybmVzcy5qcwppbmRleCBhMDg4YmM0YzJhNzgwMDI1MDBmYjg3OTQxMGUxODAwZjE2
ODQ1YWY3Li5mNjhhZDFkZDdkODFlNTRiZWE1ZjkwMDQyODRlZmY0OWE3MTNhMzJlIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNl
cy9pZGxoYXJuZXNzLmpzCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvcmVzb3VyY2VzL2lkbGhhcm5lc3MuanMKQEAgLTU3LDcgKzU3LDYgQEAgaWYgKCEo
J3N1YnNldFRlc3RCeUtleScgaW4gc2VsZikpIHsKIH0KIC8vLyBIZWxwZXJzIC8vLwogZnVuY3Rp
b24gY29uc3RWYWx1ZSAoY250KQotLy9AewogewogICAgIGlmIChjbnQudHlwZSA9PT0gIm51bGwi
KSByZXR1cm4gbnVsbDsKICAgICBpZiAoY250LnR5cGUgPT09ICJOYU4iKSByZXR1cm4gTmFOOwpA
QCAtNjYsOSArNjUsNyBAQCBmdW5jdGlvbiBjb25zdFZhbHVlIChjbnQpCiAgICAgcmV0dXJuIGNu
dC52YWx1ZTsKIH0KIAotLy9AfQogZnVuY3Rpb24gbWluT3ZlcmxvYWRMZW5ndGgob3ZlcmxvYWRz
KQotLy9AewogewogICAgIC8vICJUaGUgdmFsdWUgb2YgdGhlIEZ1bmN0aW9uIG9iamVjdOKAmXMg
4oCcbGVuZ3Ro4oCdIHByb3BlcnR5IGlzCiAgICAgLy8gYSBOdW1iZXIgZGV0ZXJtaW5lZCBhcyBm
b2xsb3dzOgpAQCAtODcsOSArODQsNyBAQCBmdW5jdGlvbiBtaW5PdmVybG9hZExlbmd0aChvdmVy
bG9hZHMpCiAgICAgLnJlZHVjZShmdW5jdGlvbihtLCBuKSB7IHJldHVybiBNYXRoLm1pbihtLCBu
KTsgfSk7CiB9CiAKLS8vQH0KIGZ1bmN0aW9uIHRocm93T3JSZWplY3QoYV90ZXN0LCBvcGVyYXRp
b24sIGZuLCBvYmosIGFyZ3MsIG1lc3NhZ2UsIGNiKQotLy9AewogewogICAgIGlmIChvcGVyYXRp
b24uaWRsVHlwZS5nZW5lcmljICE9PSAiUHJvbWlzZSIpIHsKICAgICAgICAgYXNzZXJ0X3Rocm93
cyhuZXcgVHlwZUVycm9yKCksIGZ1bmN0aW9uKCkgewpAQCAtMTA4LDkgKzEwMyw3IEBAIGZ1bmN0
aW9uIHRocm93T3JSZWplY3QoYV90ZXN0LCBvcGVyYXRpb24sIGZuLCBvYmosIGFyZ3MsIG1lc3Nh
Z2UsIGNiKQogICAgIH0KIH0KIAotLy9AfQogZnVuY3Rpb24gYXdhaXROQ2FsbGJhY2tzKG4sIGNi
LCBjdHgpCi0vL0B7CiB7CiAgICAgdmFyIGNvdW50ZXIgPSAwOwogICAgIHJldHVybiBmdW5jdGlv
bigpIHsKQEAgLTEyMSw5ICsxMTQsNyBAQCBmdW5jdGlvbiBhd2FpdE5DYWxsYmFja3MobiwgY2Is
IGN0eCkKICAgICB9OwogfQogCi0vL0B9CiB2YXIgZnJvdW5kID0KLS8vQHsKIChmdW5jdGlvbigp
ewogICAgIGlmIChNYXRoLmZyb3VuZCkgcmV0dXJuIE1hdGguZnJvdW5kOwogCkBAIC0xMzMsMTIg
KzEyNCwxMCBAQCB2YXIgZnJvdW5kID0KICAgICAgICAgcmV0dXJuIGFyclswXTsKICAgICB9Owog
fSkoKTsKLS8vQH0KIAogLy8vIElkbEhhcm5lc3NFcnJvciAvLy8KIC8vIEVudHJ5IHBvaW50CiBz
ZWxmLklkbEhhcm5lc3NFcnJvciA9IGZ1bmN0aW9uKG1lc3NhZ2UpCi0vL0B7CiB7CiAgICAgLyoq
CiAgICAgICogTWVzc2FnZSB0byBiZSBwcmludGVkIGFzIHRoZSBlcnJvcidzIHRvU3RyaW5nIGlu
dm9jYXRpb24uCkBAIC0xNDgsMTkgKzEzNywxNSBAQCBzZWxmLklkbEhhcm5lc3NFcnJvciA9IGZ1
bmN0aW9uKG1lc3NhZ2UpCiAKIElkbEhhcm5lc3NFcnJvci5wcm90b3R5cGUgPSBPYmplY3QuY3Jl
YXRlKEVycm9yLnByb3RvdHlwZSk7CiAKLS8vQH0KIElkbEhhcm5lc3NFcnJvci5wcm90b3R5cGUu
dG9TdHJpbmcgPSBmdW5jdGlvbigpCi0vL0B7CiB7CiAgICAgcmV0dXJuIHRoaXMubWVzc2FnZTsK
IH07CiAKLS8vQH0KIAogLy8vIElkbEFycmF5IC8vLwogLy8gRW50cnkgcG9pbnQKIHNlbGYuSWRs
QXJyYXkgPSBmdW5jdGlvbigpCi0vL0B7CiB7CiAgICAgLyoqCiAgICAgICogQSBtYXAgZnJvbSBz
dHJpbmdzIHRvIHRoZSBjb3JyZXNwb25kaW5nIG5hbWVkIElkbE9iamVjdCwgc3VjaCBhcwpAQCAt
MjA4LDE5ICsxOTMsMjEgQEAgc2VsZi5JZGxBcnJheSA9IGZ1bmN0aW9uKCkKICAgICB0aGlzWyJp
bXBsZW1lbnRzIl0gPSB7fTsKICAgICB0aGlzWyJpbmNsdWRlcyJdID0ge307CiAgICAgdGhpc1si
aW5oZXJpdGFuY2UiXSA9IHt9OworCisgICAgLyoqCisgICAgICogUmVjb3JkIG9mIHNraXBwZWQg
SURMIGl0ZW1zLCBpbiBjYXNlIHdlIGxhdGVyIHJlYWxpemUgdGhhdCB0aGV5IGFyZSBhCisgICAg
ICogZGVwZW5kZW5jeSAodG8gcmV0cm9hY3RpdmVseSBwcm9jZXNzIHRoZW0pLgorICAgICAqLwor
ICAgIHRoaXMuc2tpcHBlZCA9IG5ldyBNYXAoKTsKIH07CiAKLS8vQH0KIElkbEFycmF5LnByb3Rv
dHlwZS5hZGRfaWRscyA9IGZ1bmN0aW9uKHJhd19pZGxzLCBvcHRpb25zKQotLy9AewogewogICAg
IC8qKiBFbnRyeSBwb2ludC4gIFNlZSBkb2N1bWVudGF0aW9uIGF0IGJlZ2lubmluZyBvZiBmaWxl
LiAqLwogICAgIHRoaXMuaW50ZXJuYWxfYWRkX2lkbHMoV2ViSURMMi5wYXJzZShyYXdfaWRscyks
IG9wdGlvbnMpOwogfTsKIAotLy9AfQogSWRsQXJyYXkucHJvdG90eXBlLmFkZF91bnRlc3RlZF9p
ZGxzID0gZnVuY3Rpb24ocmF3X2lkbHMsIG9wdGlvbnMpCi0vL0B7CiB7CiAgICAgLyoqIEVudHJ5
IHBvaW50LiAgU2VlIGRvY3VtZW50YXRpb24gYXQgYmVnaW5uaW5nIG9mIGZpbGUuICovCiAgICAg
dmFyIHBhcnNlZF9pZGxzID0gV2ViSURMMi5wYXJzZShyYXdfaWRscyk7CkBAIC0yMjgsOSArMjE1
LDcgQEAgSWRsQXJyYXkucHJvdG90eXBlLmFkZF91bnRlc3RlZF9pZGxzID0gZnVuY3Rpb24ocmF3
X2lkbHMsIG9wdGlvbnMpCiAgICAgdGhpcy5pbnRlcm5hbF9hZGRfaWRscyhwYXJzZWRfaWRscywg
b3B0aW9ucyk7CiB9OwogCi0vL0B9CiBJZGxBcnJheS5wcm90b3R5cGUubWFya19hc191bnRlc3Rl
ZCA9IGZ1bmN0aW9uIChwYXJzZWRfaWRscykKLS8vQHsKIHsKICAgICBmb3IgKHZhciBpID0gMDsg
aSA8IHBhcnNlZF9pZGxzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgIHBhcnNlZF9pZGxzW2ldLnVu
dGVzdGVkID0gdHJ1ZTsKQEAgLTI0MSwyMSArMjI2LDE1IEBAIElkbEFycmF5LnByb3RvdHlwZS5t
YXJrX2FzX3VudGVzdGVkID0gZnVuY3Rpb24gKHBhcnNlZF9pZGxzKQogICAgICAgICB9CiAgICAg
fQogfTsKLS8vQH0KIAotLy9AfQogSWRsQXJyYXkucHJvdG90eXBlLmlzX2V4Y2x1ZGVkX2J5X29w
dGlvbnMgPSBmdW5jdGlvbiAobmFtZSwgb3B0aW9ucykKLS8vQHsKIHsKICAgICByZXR1cm4gb3B0
aW9ucyAmJgogICAgICAgICAob3B0aW9ucy5leGNlcHQgJiYgb3B0aW9ucy5leGNlcHQuaW5jbHVk
ZXMobmFtZSkKICAgICAgICAgIHx8IG9wdGlvbnMub25seSAmJiAhb3B0aW9ucy5vbmx5LmluY2x1
ZGVzKG5hbWUpKTsKIH07Ci0vL0B9CiAKLS8vQH0KIElkbEFycmF5LnByb3RvdHlwZS5hZGRfZGVw
ZW5kZW5jeV9pZGxzID0gZnVuY3Rpb24ocmF3X2lkbHMsIG9wdGlvbnMpCi0vL0B7CiB7CiAgICAg
Y29uc3QgcGFyc2VkX2lkbHMgPSBXZWJJREwyLnBhcnNlKHJhd19pZGxzKTsKICAgICBjb25zdCBu
ZXdfb3B0aW9ucyA9IHsgb25seTogW10gfQpAQCAtMjcxLDIyICsyNTAsNTAgQEAgSWRsQXJyYXku
cHJvdG90eXBlLmFkZF9kZXBlbmRlbmN5X2lkbHMgPSBmdW5jdGlvbihyYXdfaWRscywgb3B0aW9u
cykKICAgICAgICAgYWxsX2RlcHMuYWRkKGspOwogICAgICAgICB0aGlzLmluY2x1ZGVzW2tdLmZv
ckVhY2godiA9PiBhbGxfZGVwcy5hZGQodikpOwogICAgIH0pOwotICAgIHRoaXMucGFydGlhbHMu
bWFwKHAgPT4gcC5uYW1lKS5mb3JFYWNoKHYgPT4gYWxsX2RlcHMuYWRkKHYpKTsKLSAgICAvLyBB
ZGQgdGhlIGF0dHJpYnV0ZSBpZGxUeXBlcyBvZiBhbGwgdGhlIG5lc3RlZCBtZW1iZXJzIG9mIGFs
bCB0ZXN0ZWQgaWRscy4KLSAgICBmb3IgKGNvbnN0IG9iaiBvZiBbdGhpcy5tZW1iZXJzLCB0aGlz
LnBhcnRpYWxzXSkgewotICAgICAgICBjb25zdCB0ZXN0ZWQgPSBPYmplY3QudmFsdWVzKG9iaiku
ZmlsdGVyKG0gPT4gIW0udW50ZXN0ZWQgJiYgbS5tZW1iZXJzKTsKLSAgICAgICAgZm9yIChjb25z
dCBwYXJzZWQgb2YgdGVzdGVkKSB7Ci0gICAgICAgICAgICBmb3IgKGNvbnN0IGF0dHIgb2YgT2Jq
ZWN0LnZhbHVlcyhwYXJzZWQubWVtYmVycykuZmlsdGVyKG0gPT4gIW0udW50ZXN0ZWQgJiYgbS50
eXBlID09PSAnYXR0cmlidXRlJykpIHsKLSAgICAgICAgICAgICAgICBhbGxfZGVwcy5hZGQoYXR0
ci5pZGxUeXBlLmlkbFR5cGUpOwotICAgICAgICAgICAgfQorICAgIHRoaXMucGFydGlhbHMuZm9y
RWFjaChwID0+IGFsbF9kZXBzLmFkZChwLm5hbWUpKTsKKyAgICAvLyBBZGQgJ1R5cGVPZlR5cGUn
IGZvciBlYWNoICJ0eXBlZGVmIFR5cGVPZlR5cGUgTXlUeXBlOyIgZW50cnkuCisgICAgT2JqZWN0
LmVudHJpZXModGhpcy5tZW1iZXJzKS5mb3JFYWNoKChbaywgdl0pID0+IHsKKyAgICAgICAgaWYg
KHYgaW5zdGFuY2VvZiBJZGxUeXBlZGVmKSB7CisgICAgICAgICAgICBsZXQgZGVmcyA9IHYuaWRs
VHlwZS51bmlvbgorICAgICAgICAgICAgICAgID8gdi5pZGxUeXBlLmlkbFR5cGUubWFwKHQgPT4g
dC5pZGxUeXBlKQorICAgICAgICAgICAgICAgIDogW3YuaWRsVHlwZS5pZGxUeXBlXTsKKyAgICAg
ICAgICAgIGRlZnMuZm9yRWFjaChkID0+IGFsbF9kZXBzLmFkZChkKSk7CiAgICAgICAgIH0KLSAg
ICB9CisgICAgfSk7CisKKyAgICAvLyBBZGQgdGhlIGF0dHJpYnV0ZSBpZGxUeXBlcyBvZiBhbGwg
dGhlIG5lc3RlZCBtZW1iZXJzIG9mIGlkbHMuCisgICAgY29uc3QgYXR0ckRlcHMgPSBwYXJzZWRJ
ZGxzID0+IHsKKyAgICAgICAgcmV0dXJuIHBhcnNlZElkbHMucmVkdWNlKChkZXBzLCBwYXJzZWQp
ID0+IHsKKyAgICAgICAgICAgIGlmIChwYXJzZWQubWVtYmVycykgeworICAgICAgICAgICAgICAg
IGZvciAoY29uc3QgYXR0ciBvZiBPYmplY3QudmFsdWVzKHBhcnNlZC5tZW1iZXJzKS5maWx0ZXIo
bSA9PiBtLnR5cGUgPT09ICdhdHRyaWJ1dGUnKSkgeworICAgICAgICAgICAgICAgICAgICBsZXQg
YXR0clR5cGUgPSBhdHRyLmlkbFR5cGU7CisgICAgICAgICAgICAgICAgICAgIC8vIENoZWNrIGZv
ciBnZW5lcmljIG1lbWJlcnMgKGUuZy4gRnJvemVuQXJyYXk8TXlUeXBlPikKKyAgICAgICAgICAg
ICAgICAgICAgaWYgKGF0dHJUeXBlLmdlbmVyaWMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGRlcHMuYWRkKGF0dHJUeXBlLmdlbmVyaWMpOworICAgICAgICAgICAgICAgICAgICAgICAgYXR0
clR5cGUgPSBhdHRyVHlwZS5pZGxUeXBlOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgICAgIGRlcHMuYWRkKGF0dHJUeXBlLmlkbFR5cGUpOworICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChwYXJzZWQuYmFzZSBpbiB0aGlzLm1l
bWJlcnMpIHsKKyAgICAgICAgICAgICAgICBhdHRyRGVwcyhbdGhpcy5tZW1iZXJzW3BhcnNlZC5i
YXNlXV0pLmZvckVhY2goZGVwID0+IGRlcHMuYWRkKGRlcCkpOworICAgICAgICAgICAgfQorICAg
ICAgICAgICAgcmV0dXJuIGRlcHM7CisgICAgICAgIH0sIG5ldyBTZXQoKSk7CisgICAgfTsKKwor
ICAgIGNvbnN0IHRlc3RlZE1lbWJlcnMgPSBPYmplY3QudmFsdWVzKHRoaXMubWVtYmVycykuZmls
dGVyKG0gPT4gIW0udW50ZXN0ZWQgJiYgbS5tZW1iZXJzKTsKKyAgICBhdHRyRGVwcyh0ZXN0ZWRN
ZW1iZXJzKS5mb3JFYWNoKGRlcCA9PiBhbGxfZGVwcy5hZGQoZGVwKSk7CisKKyAgICBjb25zdCB0
ZXN0ZWRQYXJ0aWFscyA9IHRoaXMucGFydGlhbHMuZmlsdGVyKG0gPT4gIW0udW50ZXN0ZWQgJiYg
bS5tZW1iZXJzKTsKKyAgICBhdHRyRGVwcyh0ZXN0ZWRQYXJ0aWFscykuZm9yRWFjaChkZXAgPT4g
YWxsX2RlcHMuYWRkKGRlcCkpOworCiAKICAgICBpZiAob3B0aW9ucyAmJiBvcHRpb25zLmV4Y2Vw
dCAmJiBvcHRpb25zLm9ubHkpIHsKICAgICAgICAgdGhyb3cgbmV3IElkbEhhcm5lc3NFcnJvcigi
VGhlIG9ubHkgYW5kIGV4Y2VwdCBvcHRpb25zIGNhbid0IGJlIHVzZWQgdG9nZXRoZXIuIik7CiAg
ICAgfQogCi0gICAgY29uc3Qgc2hvdWxkX3NraXAgPSBuYW1lID0+IHsKKyAgICBjb25zdCBkZWZp
bmVkX29yX3VudGVzdGVkID0gbmFtZSA9PiB7CiAgICAgICAgIC8vIE5PVEU6IERlcHMgYXJlIHVu
dGVzdGVkLCBzbyB3ZSdyZSBsZW5pZW50LCBhbmQgc2tpcCByZS1lbmNvdW50ZXJlZCBkZWZpbml0
aW9ucy4KICAgICAgICAgLy8gZS5nLiBmb3IgJ2lkbCcgY29udGFpbmluZyBBOkIsIEI6QywgQzpE
CiAgICAgICAgIC8vICAgICAgYXJyYXkuYWRkX2lkbHMoaWRsLCB7b25seTogWydBJywnQiddfSku
CkBAIC0yOTUsOSArMzAyLDcgQEAgSWRsQXJyYXkucHJvdG90eXBlLmFkZF9kZXBlbmRlbmN5X2lk
bHMgPSBmdW5jdGlvbihyYXdfaWRscywgb3B0aW9ucykKICAgICAgICAgcmV0dXJuIG5hbWUgaW4g
dGhpcy5tZW1iZXJzCiAgICAgICAgICAgICB8fCB0aGlzLmlzX2V4Y2x1ZGVkX2J5X29wdGlvbnMo
bmFtZSwgb3B0aW9ucyk7CiAgICAgfQotICAgIC8vIFJlY29yZCBvZiBza2lwcGVkIGl0ZW1zLCBp
biBjYXNlIHdlIGxhdGVyIGRldGVybWluZSB0aGV5IGFyZSBhIGRlcGVuZGVuY3kuCiAgICAgLy8g
TWFwcyBuYW1lIC0+IFtwYXJzZWRfaWRsLCAuLi5dCi0gICAgY29uc3Qgc2tpcHBlZCA9IG5ldyBN
YXAoKTsKICAgICBjb25zdCBwcm9jZXNzID0gZnVuY3Rpb24ocGFyc2VkKSB7CiAgICAgICAgIHZh
ciBkZXBzID0gW107CiAgICAgICAgIGlmIChwYXJzZWQubmFtZSkgewpAQCAtMzExLDEzICszMTYs
MTUgQEAgSWRsQXJyYXkucHJvdG90eXBlLmFkZF9kZXBlbmRlbmN5X2lkbHMgPSBmdW5jdGlvbihy
YXdfaWRscywgb3B0aW9ucykKICAgICAgICAgfQogCiAgICAgICAgIGRlcHMgPSBkZXBzLmZpbHRl
cihmdW5jdGlvbihuYW1lKSB7Ci0gICAgICAgICAgICBpZiAoIW5hbWUgfHwgc2hvdWxkX3NraXAo
bmFtZSkgfHwgIWFsbF9kZXBzLmhhcyhuYW1lKSkgeworICAgICAgICAgICAgaWYgKCFuYW1lCisg
ICAgICAgICAgICAgICAgfHwgbmFtZSA9PT0gcGFyc2VkLm5hbWUgJiYgZGVmaW5lZF9vcl91bnRl
c3RlZChuYW1lKQorICAgICAgICAgICAgICAgIHx8ICFhbGxfZGVwcy5oYXMobmFtZSkpIHsKICAg
ICAgICAgICAgICAgICAvLyBGbGFnIGFzIHNraXBwZWQsIGlmIGl0J3Mgbm90IGFscmVhZHkgcHJv
Y2Vzc2VkLCBzbyB3ZSBjYW4KICAgICAgICAgICAgICAgICAvLyBjb21lIGJhY2sgdG8gaXQgbGF0
ZXIgaWYgd2UgcmV0cm9zcGVjdGl2ZWx5IGNhbGwgaXQgYSBkZXAuCiAgICAgICAgICAgICAgICAg
aWYgKG5hbWUgJiYgIShuYW1lIGluIHRoaXMubWVtYmVycykpIHsKLSAgICAgICAgICAgICAgICAg
ICAgc2tpcHBlZC5oYXMobmFtZSkKLSAgICAgICAgICAgICAgICAgICAgICAgID8gc2tpcHBlZC5n
ZXQobmFtZSkucHVzaChwYXJzZWQpCi0gICAgICAgICAgICAgICAgICAgICAgICA6IHNraXBwZWQu
c2V0KG5hbWUsIFtwYXJzZWRdKTsKKyAgICAgICAgICAgICAgICAgICAgdGhpcy5za2lwcGVkLmhh
cyhuYW1lKQorICAgICAgICAgICAgICAgICAgICAgICAgPyB0aGlzLnNraXBwZWQuZ2V0KG5hbWUp
LnB1c2gocGFyc2VkKQorICAgICAgICAgICAgICAgICAgICAgICAgOiB0aGlzLnNraXBwZWQuc2V0
KG5hbWUsIFtwYXJzZWRdKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgICAgICAgICAgfQpAQCAtMzI1LDE1ICszMzIsMjkgQEAgSWRsQXJyYXku
cHJvdG90eXBlLmFkZF9kZXBlbmRlbmN5X2lkbHMgPSBmdW5jdGlvbihyYXdfaWRscywgb3B0aW9u
cykKICAgICAgICAgfS5iaW5kKHRoaXMpKTsKIAogICAgICAgICBkZXBzLmZvckVhY2goZnVuY3Rp
b24obmFtZSkgewotICAgICAgICAgICAgbmV3X29wdGlvbnMub25seS5wdXNoKG5hbWUpOworICAg
ICAgICAgICAgaWYgKCFuZXdfb3B0aW9ucy5vbmx5LmluY2x1ZGVzKG5hbWUpKSB7CisgICAgICAg
ICAgICAgICAgbmV3X29wdGlvbnMub25seS5wdXNoKG5hbWUpOworICAgICAgICAgICAgfQogCiAg
ICAgICAgICAgICBjb25zdCBmb2xsb3dfdXAgPSBuZXcgU2V0KCk7CiAgICAgICAgICAgICBmb3Ig
KGNvbnN0IGRlcF90eXBlIG9mIFsiaW5oZXJpdGFuY2UiLCAiaW1wbGVtZW50cyIsICJpbmNsdWRl
cyJdKSB7CiAgICAgICAgICAgICAgICAgaWYgKHBhcnNlZFtkZXBfdHlwZV0pIHsKICAgICAgICAg
ICAgICAgICAgICAgY29uc3QgaW5oZXJpdGluZyA9IHBhcnNlZFtkZXBfdHlwZV07CiAgICAgICAg
ICAgICAgICAgICAgIGNvbnN0IGluaGVyaXRvciA9IHBhcnNlZC5uYW1lIHx8IHBhcnNlZC50YXJn
ZXQ7Ci0gICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgZGVwIG9mIFtpbmhlcml0aW5nLCBp
bmhlcml0b3JdKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBuZXdfb3B0aW9ucy5vbmx5LnB1
c2goZGVwKTsKKyAgICAgICAgICAgICAgICAgICAgY29uc3QgZGVwcyA9IFtpbmhlcml0aW5nXTsK
KyAgICAgICAgICAgICAgICAgICAgLy8gRm9yIEEgaW5jbHVkZXMgQiwgd2UgY2FuIGlnbm9yZSBB
LCB1bmxlc3MgQiAob3Igc29tZSBvZiBpdHMKKyAgICAgICAgICAgICAgICAgICAgLy8gbWVtYmVy
cykgaXMgYmVpbmcgdGVzdGVkLgorICAgICAgICAgICAgICAgICAgICBpZiAoZGVwX3R5cGUgIT09
ICJpbmNsdWRlcyIKKyAgICAgICAgICAgICAgICAgICAgICAgIHx8IGluaGVyaXRpbmcgaW4gdGhp
cy5tZW1iZXJzICYmICF0aGlzLm1lbWJlcnNbaW5oZXJpdGluZ10udW50ZXN0ZWQKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHx8IHRoaXMucGFydGlhbHMuc29tZShmdW5jdGlvbihwKSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBwLm5hbWUgPT09IGluaGVyaXRpbmc7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkpIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGRlcHMucHVzaChpbmhlcml0b3IpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgICAgIGZvciAoY29uc3QgZGVwIG9mIGRlcHMpIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGlmICghbmV3X29wdGlvbnMub25seS5pbmNsdWRlcyhkZXApKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbmV3X29wdGlvbnMub25seS5wdXNoKGRlcCk7CisgICAgICAgICAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICBhbGxfZGVwcy5hZGQoZGVw
KTsKICAgICAgICAgICAgICAgICAgICAgICAgIGZvbGxvd191cC5hZGQoZGVwKTsKICAgICAgICAg
ICAgICAgICAgICAgfQpAQCAtMzQxLDEzICszNjIsMTMgQEAgSWRsQXJyYXkucHJvdG90eXBlLmFk
ZF9kZXBlbmRlbmN5X2lkbHMgPSBmdW5jdGlvbihyYXdfaWRscywgb3B0aW9ucykKICAgICAgICAg
ICAgIH0KIAogICAgICAgICAgICAgZm9yIChjb25zdCBkZWZlcnJlZCBvZiBmb2xsb3dfdXApIHsK
LSAgICAgICAgICAgICAgICBpZiAoc2tpcHBlZC5oYXMoZGVmZXJyZWQpKSB7Ci0gICAgICAgICAg
ICAgICAgICAgIGNvbnN0IG5leHQgPSBza2lwcGVkLmdldChkZWZlcnJlZCk7Ci0gICAgICAgICAg
ICAgICAgICAgIHNraXBwZWQuZGVsZXRlKGRlZmVycmVkKTsKKyAgICAgICAgICAgICAgICBpZiAo
dGhpcy5za2lwcGVkLmhhcyhkZWZlcnJlZCkpIHsKKyAgICAgICAgICAgICAgICAgICAgY29uc3Qg
bmV4dCA9IHRoaXMuc2tpcHBlZC5nZXQoZGVmZXJyZWQpOworICAgICAgICAgICAgICAgICAgICB0
aGlzLnNraXBwZWQuZGVsZXRlKGRlZmVycmVkKTsKICAgICAgICAgICAgICAgICAgICAgbmV4dC5m
b3JFYWNoKHByb2Nlc3MpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KLSAgICAg
ICAgfSk7CisgICAgICAgIH0uYmluZCh0aGlzKSk7CiAgICAgfS5iaW5kKHRoaXMpOwogCiAgICAg
Zm9yIChsZXQgcGFyc2VkIG9mIHBhcnNlZF9pZGxzKSB7CkBAIC0zNjEsOSArMzgyLDcgQEAgSWRs
QXJyYXkucHJvdG90eXBlLmFkZF9kZXBlbmRlbmN5X2lkbHMgPSBmdW5jdGlvbihyYXdfaWRscywg
b3B0aW9ucykKICAgICB9CiB9CiAKLS8vQH0KIElkbEFycmF5LnByb3RvdHlwZS5pbnRlcm5hbF9h
ZGRfaWRscyA9IGZ1bmN0aW9uKHBhcnNlZF9pZGxzLCBvcHRpb25zKQotLy9AewogewogICAgIC8q
KgogICAgICAqIEludGVybmFsIGhlbHBlciBjYWxsZWQgYnkgYWRkX2lkbHMoKSBhbmQgYWRkX3Vu
dGVzdGVkX2lkbHMoKS4KQEAgLTQ3OCw4ICs0OTcsNyBAQCBJZGxBcnJheS5wcm90b3R5cGUuaW50
ZXJuYWxfYWRkX2lkbHMgPSBmdW5jdGlvbihwYXJzZWRfaWRscywgb3B0aW9ucykKICAgICAgICAg
ICAgIGJyZWFrOwogCiAgICAgICAgIGNhc2UgImNhbGxiYWNrIjoKLSAgICAgICAgICAgIC8vIFRP
RE8KLSAgICAgICAgICAgIGNvbnNvbGUubG9nKCJjYWxsYmFjayBub3QgeWV0IHN1cHBvcnRlZCIp
OworICAgICAgICAgICAgdGhpcy5tZW1iZXJzW3BhcnNlZF9pZGwubmFtZV0gPSBuZXcgSWRsQ2Fs
bGJhY2socGFyc2VkX2lkbCk7CiAgICAgICAgICAgICBicmVhazsKIAogICAgICAgICBjYXNlICJl
bnVtIjoKQEAgLTUwMSw5ICs1MTksNyBAQCBJZGxBcnJheS5wcm90b3R5cGUuaW50ZXJuYWxfYWRk
X2lkbHMgPSBmdW5jdGlvbihwYXJzZWRfaWRscywgb3B0aW9ucykKICAgICB9LmJpbmQodGhpcykp
OwogfTsKIAotLy9AfQogSWRsQXJyYXkucHJvdG90eXBlLmFkZF9vYmplY3RzID0gZnVuY3Rpb24o
ZGljdCkKLS8vQHsKIHsKICAgICAvKiogRW50cnkgcG9pbnQuICBTZWUgZG9jdW1lbnRhdGlvbiBh
dCBiZWdpbm5pbmcgb2YgZmlsZS4gKi8KICAgICBmb3IgKHZhciBrIGluIGRpY3QpCkBAIC01MTks
MTcgKzUzNSwxMyBAQCBJZGxBcnJheS5wcm90b3R5cGUuYWRkX29iamVjdHMgPSBmdW5jdGlvbihk
aWN0KQogICAgIH0KIH07CiAKLS8vQH0KIElkbEFycmF5LnByb3RvdHlwZS5wcmV2ZW50X211bHRp
cGxlX3Rlc3RpbmcgPSBmdW5jdGlvbihuYW1lKQotLy9AewogewogICAgIC8qKiBFbnRyeSBwb2lu
dC4gIFNlZSBkb2N1bWVudGF0aW9uIGF0IGJlZ2lubmluZyBvZiBmaWxlLiAqLwogICAgIHRoaXMu
bWVtYmVyc1tuYW1lXS5wcmV2ZW50X211bHRpcGxlX3Rlc3RpbmcgPSB0cnVlOwogfTsKIAotLy9A
fQogSWRsQXJyYXkucHJvdG90eXBlLnJlY3Vyc2l2ZWx5X2dldF9pbXBsZW1lbnRzID0gZnVuY3Rp
b24oaW50ZXJmYWNlX25hbWUpCi0vL0B7CiB7CiAgICAgLyoqCiAgICAgICogSGVscGVyIGZ1bmN0
aW9uIGZvciB0ZXN0KCkuICBSZXR1cm5zIGFuIGFycmF5IG9mIHRoaW5ncyB0aGF0IGltcGxlbWVu
dApAQCAtNTU3LDkgKzU2OSw3IEBAIElkbEFycmF5LnByb3RvdHlwZS5yZWN1cnNpdmVseV9nZXRf
aW1wbGVtZW50cyA9IGZ1bmN0aW9uKGludGVyZmFjZV9uYW1lKQogICAgIHJldHVybiByZXQ7CiB9
OwogCi0vL0B9CiBJZGxBcnJheS5wcm90b3R5cGUucmVjdXJzaXZlbHlfZ2V0X2luY2x1ZGVzID0g
ZnVuY3Rpb24oaW50ZXJmYWNlX25hbWUpCi0vL0B7CiB7CiAgICAgLyoqCiAgICAgICogSGVscGVy
IGZ1bmN0aW9uIGZvciB0ZXN0KCkuICBSZXR1cm5zIGFuIGFycmF5IG9mIHRoaW5ncyB0aGF0IGlt
cGxlbWVudApAQCAtNTg3LDkgKzU5Nyw3IEBAIElkbEFycmF5LnByb3RvdHlwZS5yZWN1cnNpdmVs
eV9nZXRfaW5jbHVkZXMgPSBmdW5jdGlvbihpbnRlcmZhY2VfbmFtZSkKICAgICByZXR1cm4gcmV0
OwogfTsKIAotLy9AfQogSWRsQXJyYXkucHJvdG90eXBlLmlzX2pzb25fdHlwZSA9IGZ1bmN0aW9u
KHR5cGUpCi0vL0B7CiB7CiAgICAgLyoqCiAgICAgICogQ2hlY2tzIHdoZXRoZXIgdHlwZSBpcyBh
IEpTT04gdHlwZSBhcyBwZXIKQEAgLTYxMSw3ICs2MTksNyBAQCBJZGxBcnJheS5wcm90b3R5cGUu
aXNfanNvbl90eXBlID0gZnVuY3Rpb24odHlwZSkKIAogICAgIC8vIHNlcXVlbmNlIHR5cGVzCiAg
ICAgaWYgKHR5cGUuZ2VuZXJpYyA9PSAic2VxdWVuY2UiIHx8IHR5cGUuZ2VuZXJpYyA9PSAiRnJv
emVuQXJyYXkiKSB7Ci0gICAgICAgIHJldHVybiB0aGlzLmlzX2pzb25fdHlwZShpZGxUeXBlKTsK
KyAgICAgICAgcmV0dXJuIHRoaXMuaXNfanNvbl90eXBlKGlkbFR5cGVbMF0pOwogICAgIH0KIAog
ICAgIGlmICh0eXBlb2YgaWRsVHlwZSAhPSAic3RyaW5nIikgeyB0aHJvdyBuZXcgRXJyb3IoIlVu
ZXhwZWN0ZWQgdHlwZSAiICsgSlNPTi5zdHJpbmdpZnkoaWRsVHlwZSkpOyB9CkBAIC03MTksMTEg
KzcyNywxMSBAQCBmdW5jdGlvbiBleHBvc3VyZV9zZXQob2JqZWN0LCBkZWZhdWx0X3NldCkgewog
ICAgICAgICByZXN1bHQgPSBuZXcgU2V0KHJlc3VsdCk7CiAgICAgfQogICAgIGlmIChleHBvc2Vk
ICYmIGV4cG9zZWQubGVuZ3RoKSB7Ci0gICAgICAgIHZhciBzZXQgPSBleHBvc2VkWzBdLnJocy52
YWx1ZTsKKyAgICAgICAgY29uc3QgeyByaHMgfSA9IGV4cG9zZWRbMF07CiAgICAgICAgIC8vIENv
dWxkIGJlIGEgbGlzdCBvciBhIHN0cmluZy4KLSAgICAgICAgaWYgKHR5cGVvZiBzZXQgPT0gInN0
cmluZyIpIHsKLSAgICAgICAgICAgIHNldCA9IFsgc2V0IF07Ci0gICAgICAgIH0KKyAgICAgICAg
Y29uc3Qgc2V0ID0gcmhzLnR5cGUgPT09ICJpZGVudGlmaWVyLWxpc3QiID8KKyAgICAgICAgICAg
IHJocy52YWx1ZS5tYXAoaWQgPT4gaWQudmFsdWUpIDoKKyAgICAgICAgICAgIFsgcmhzLnZhbHVl
IF07CiAgICAgICAgIHJlc3VsdCA9IG5ldyBTZXQoc2V0KTsKICAgICB9CiAgICAgaWYgKHJlc3Vs
dCAmJiByZXN1bHQuaGFzKCJXb3JrZXIiKSkgewpAQCAtNzU0LDE0ICs3NjIsMTIgQEAgZnVuY3Rp
b24gZXhwb3NlZF9pbihnbG9iYWxzKSB7CiAgICAgdGhyb3cgbmV3IElkbEhhcm5lc3NFcnJvcigi
VW5leHBlY3RlZCBnbG9iYWwgb2JqZWN0Iik7CiB9CiAKLS8vQH0KIC8qKgogICogQXNzZXJ0cyB0
aGF0IHRoZSBnaXZlbiBlcnJvciBtZXNzYWdlIGlzIHRocm93biBmb3IgdGhlIGdpdmVuIGZ1bmN0
aW9uLgogICogQHBhcmFtIHtzdHJpbmd8SWRsSGFybmVzc0Vycm9yfSBlcnJvciBFeHBlY3RlZCBF
cnJvciBtZXNzYWdlLgogICogQHBhcmFtIHtGdW5jdGlvbn0gaWRsQXJyYXlGdW5jIEZ1bmN0aW9u
IG9wZXJhdGluZyBvbiBhbiBJZGxBcnJheSB0aGF0IHNob3VsZCB0aHJvdy4KICAqLwogSWRsQXJy
YXkucHJvdG90eXBlLmFzc2VydF90aHJvd3MgPSBmdW5jdGlvbihlcnJvciwgaWRsQXJyYXlGdW5j
KQotLy9AewogewogICAgIHRyeSB7CiAgICAgICAgIGlkbEFycmF5RnVuYy5jYWxsKHRoaXMsIHRo
aXMpOwpAQCAtNzgxLDkgKzc4Nyw3IEBAIElkbEFycmF5LnByb3RvdHlwZS5hc3NlcnRfdGhyb3dz
ID0gZnVuY3Rpb24oZXJyb3IsIGlkbEFycmF5RnVuYykKICAgICB0aHJvdyBuZXcgSWRsSGFybmVz
c0Vycm9yKGAke2lkbEFycmF5RnVuY30gZGlkIG5vdCB0aHJvdyB0aGUgZXhwZWN0ZWQgSWRsSGFy
bmVzc0Vycm9yYCk7CiB9CiAKLS8vQH0KIElkbEFycmF5LnByb3RvdHlwZS50ZXN0ID0gZnVuY3Rp
b24oKQotLy9AewogewogICAgIC8qKiBFbnRyeSBwb2ludC4gIFNlZSBkb2N1bWVudGF0aW9uIGF0
IGJlZ2lubmluZyBvZiBmaWxlLiAqLwogCkBAIC04NzIsOSArODc2LDcgQEAgSWRsQXJyYXkucHJv
dG90eXBlLnRlc3QgPSBmdW5jdGlvbigpCiAgICAgfQogfTsKIAotLy9AfQogSWRsQXJyYXkucHJv
dG90eXBlLmNvbGxhcHNlX3BhcnRpYWxzID0gZnVuY3Rpb24oKQotLy9AewogewogICAgIGNvbnN0
IHRlc3RlZFBhcnRpYWxzID0gbmV3IE1hcCgpOwogICAgIHRoaXMucGFydGlhbHMuZm9yRWFjaChm
dW5jdGlvbihwYXJzZWRfaWRsKQpAQCAtOTU1LDkgKzk1Nyw3IEBAIElkbEFycmF5LnByb3RvdHlw
ZS5jb2xsYXBzZV9wYXJ0aWFscyA9IGZ1bmN0aW9uKCkKICAgICB0aGlzLnBhcnRpYWxzID0gW107
CiB9CiAKLS8vQH0KIElkbEFycmF5LnByb3RvdHlwZS5hc3NlcnRfdHlwZV9pcyA9IGZ1bmN0aW9u
KHZhbHVlLCB0eXBlKQotLy9AewogewogICAgIGlmICh0eXBlLmlkbFR5cGUgaW4gdGhpcy5tZW1i
ZXJzCiAgICAgJiYgdGhpcy5tZW1iZXJzW3R5cGUuaWRsVHlwZV0gaW5zdGFuY2VvZiBJZGxUeXBl
ZGVmKSB7CkBAIC0xMDE3LDcgKzEwMTcsNyBAQCBJZGxBcnJheS5wcm90b3R5cGUuYXNzZXJ0X3R5
cGVfaXMgPSBmdW5jdGlvbih2YWx1ZSwgdHlwZSkKICAgICAgICAgICAgIC8vIE5vdGhpbmcgd2Ug
Y2FuIGRvLgogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9Ci0gICAgICAgIHRoaXMuYXNz
ZXJ0X3R5cGVfaXModmFsdWVbMF0sIHR5cGUuaWRsVHlwZSk7CisgICAgICAgIHRoaXMuYXNzZXJ0
X3R5cGVfaXModmFsdWVbMF0sIHR5cGUuaWRsVHlwZVswXSk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKQEAgLTEwMzcsMTEgKzEwMzcsMTEgQEAgSWRsQXJyYXkucHJvdG90eXBlLmFzc2VydF90
eXBlX2lzID0gZnVuY3Rpb24odmFsdWUsIHR5cGUpCiAgICAgICAgICAgICAvLyBOb3RoaW5nIHdl
IGNhbiBkby4KICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQotICAgICAgICB0aGlzLmFz
c2VydF90eXBlX2lzKHZhbHVlWzBdLCB0eXBlLmlkbFR5cGUpOworICAgICAgICB0aGlzLmFzc2Vy
dF90eXBlX2lzKHZhbHVlWzBdLCB0eXBlLmlkbFR5cGVbMF0pOwogICAgICAgICByZXR1cm47CiAg
ICAgfQogCi0gICAgdHlwZSA9IHR5cGUuaWRsVHlwZTsKKyAgICB0eXBlID0gQXJyYXkuaXNBcnJh
eSh0eXBlLmlkbFR5cGUpID8gdHlwZS5pZGxUeXBlWzBdIDogdHlwZS5pZGxUeXBlOwogCiAgICAg
c3dpdGNoKHR5cGUpCiAgICAgewpAQCAtMTE3MSwxNyArMTE3MSwxOSBAQCBJZGxBcnJheS5wcm90
b3R5cGUuYXNzZXJ0X3R5cGVfaXMgPSBmdW5jdGlvbih2YWx1ZSwgdHlwZSkKICAgICB7CiAgICAg
ICAgIC8vIFRPRE86IFRlc3Qgd2hlbiB3ZSBhY3R1YWxseSBoYXZlIHNvbWV0aGluZyB0byB0ZXN0
IHRoaXMgb24KICAgICB9CisgICAgZWxzZSBpZiAodGhpcy5tZW1iZXJzW3R5cGVdIGluc3RhbmNl
b2YgSWRsQ2FsbGJhY2spCisgICAgeworICAgICAgICBhc3NlcnRfZXF1YWxzKHR5cGVvZiB2YWx1
ZSwgImZ1bmN0aW9uIik7CisgICAgfQogICAgIGVsc2UKICAgICB7Ci0gICAgICAgIHRocm93IG5l
dyBJZGxIYXJuZXNzRXJyb3IoIlR5cGUgIiArIHR5cGUgKyAiIGlzbid0IGFuIGludGVyZmFjZSBv
ciBkaWN0aW9uYXJ5Iik7CisgICAgICAgIHRocm93IG5ldyBJZGxIYXJuZXNzRXJyb3IoIlR5cGUg
IiArIHR5cGUgKyAiIGlzbid0IGFuIGludGVyZmFjZSwgY2FsbGJhY2sgb3IgZGljdGlvbmFyeSIp
OwogICAgIH0KIH07Ci0vL0B9CiAKIC8vLyBJZGxPYmplY3QgLy8vCiBmdW5jdGlvbiBJZGxPYmpl
Y3QoKSB7fQogSWRsT2JqZWN0LnByb3RvdHlwZS50ZXN0ID0gZnVuY3Rpb24oKQotLy9Aewogewog
ICAgIC8qKgogICAgICAqIEJ5IGRlZmF1bHQsIHRoaXMgZG9lcyBub3RoaW5nLCBzbyBubyBhY3R1
YWwgdGVzdHMgYXJlIHJ1biBmb3IgSWRsT2JqZWN0cwpAQCAtMTE4OSw5ICsxMTkxLDcgQEAgSWRs
T2JqZWN0LnByb3RvdHlwZS50ZXN0ID0gZnVuY3Rpb24oKQogICAgICAqLwogfTsKIAotLy9AfQog
SWRsT2JqZWN0LnByb3RvdHlwZS5oYXNfZXh0ZW5kZWRfYXR0cmlidXRlID0gZnVuY3Rpb24obmFt
ZSkKLS8vQHsKIHsKICAgICAvKioKICAgICAgKiBUaGlzIGlzIG9ubHkgbWVhbmluZ2Z1bCBmb3Ig
dGhpbmdzIHRoYXQgc3VwcG9ydCBleHRlbmRlZCBhdHRyaWJ1dGVzLApAQCAtMTIwMywxMiArMTIw
MywxMCBAQCBJZGxPYmplY3QucHJvdG90eXBlLmhhc19leHRlbmRlZF9hdHRyaWJ1dGUgPSBmdW5j
dGlvbihuYW1lKQogICAgIH0pOwogfTsKIAotLy9AfQogCiAvLy8gSWRsRGljdGlvbmFyeSAvLy8K
IC8vIFVzZWQgZm9yIElkbEFycmF5LnByb3RvdHlwZS5hc3NlcnRfdHlwZV9pcwogZnVuY3Rpb24g
SWRsRGljdGlvbmFyeShvYmopCi0vL0B7CiB7CiAgICAgLyoqCiAgICAgICogb2JqIGlzIGFuIG9i
amVjdCBwcm9kdWNlZCBieSB0aGUgV2ViSURMUGFyc2VyLmpzICJkaWN0aW9uYXJ5IgpAQCAtMTIz
MSw3ICsxMjI5LDYgQEAgZnVuY3Rpb24gSWRsRGljdGlvbmFyeShvYmopCiAgICAgdGhpcy5iYXNl
ID0gb2JqLmluaGVyaXRhbmNlOwogfQogCi0vL0B9CiBJZGxEaWN0aW9uYXJ5LnByb3RvdHlwZSA9
IE9iamVjdC5jcmVhdGUoSWRsT2JqZWN0LnByb3RvdHlwZSk7CiAKIElkbERpY3Rpb25hcnkucHJv
dG90eXBlLmdldF9pbmhlcml0YW5jZV9zdGFjayA9IGZ1bmN0aW9uKCkgewpAQCAtMTI0MCw3ICsx
MjM3LDYgQEAgSWRsRGljdGlvbmFyeS5wcm90b3R5cGUuZ2V0X2luaGVyaXRhbmNlX3N0YWNrID0g
ZnVuY3Rpb24oKSB7CiAKIC8vLyBJZGxJbnRlcmZhY2UgLy8vCiBmdW5jdGlvbiBJZGxJbnRlcmZh
Y2Uob2JqLCBpc19jYWxsYmFjaywgaXNfbWl4aW4pCi0vL0B7CiB7CiAgICAgLyoqCiAgICAgICog
b2JqIGlzIGFuIG9iamVjdCBwcm9kdWNlZCBieSB0aGUgV2ViSURMUGFyc2VyLmpzICJpbnRlcmZh
Y2UiIHByb2R1Y3Rpb24uCkBAIC0xMjY2LDcgKzEyNjIsNyBAQCBmdW5jdGlvbiBJZGxJbnRlcmZh
Y2Uob2JqLCBpc19jYWxsYmFjaywgaXNfbWl4aW4pCiAgICAgdGhpcy5tZW1iZXJzID0gb2JqLm1l
bWJlcnMubWFwKGZ1bmN0aW9uKG0pe3JldHVybiBuZXcgSWRsSW50ZXJmYWNlTWVtYmVyKG0pOyB9
KTsKICAgICBpZiAodGhpcy5oYXNfZXh0ZW5kZWRfYXR0cmlidXRlKCJVbmZvcmdlYWJsZSIpKSB7
CiAgICAgICAgIHRoaXMubWVtYmVycwotICAgICAgICAgICAgLmZpbHRlcihmdW5jdGlvbihtKSB7
IHJldHVybiAhbVsic3RhdGljIl0gJiYgKG0udHlwZSA9PSAiYXR0cmlidXRlIiB8fCBtLnR5cGUg
PT0gIm9wZXJhdGlvbiIpOyB9KQorICAgICAgICAgICAgLmZpbHRlcihmdW5jdGlvbihtKSB7IHJl
dHVybiBtLnNwZWNpYWwgIT09ICJzdGF0aWMiICYmIChtLnR5cGUgPT0gImF0dHJpYnV0ZSIgfHwg
bS50eXBlID09ICJvcGVyYXRpb24iKTsgfSkKICAgICAgICAgICAgIC5mb3JFYWNoKGZ1bmN0aW9u
KG0pIHsgcmV0dXJuIG0uaXNVbmZvcmdlYWJsZSA9IHRydWU7IH0pOwogICAgIH0KIApAQCAtMTI3
OSwzMCArMTI3NSwyMyBAQCBmdW5jdGlvbiBJZGxJbnRlcmZhY2Uob2JqLCBpc19jYWxsYmFjaywg
aXNfbWl4aW4pCiAgICAgdGhpcy5faXNfY2FsbGJhY2sgPSBpc19jYWxsYmFjazsKICAgICB0aGlz
Ll9pc19taXhpbiA9IGlzX21peGluOwogfQotLy9AfQogSWRsSW50ZXJmYWNlLnByb3RvdHlwZSA9
IE9iamVjdC5jcmVhdGUoSWRsT2JqZWN0LnByb3RvdHlwZSk7CiBJZGxJbnRlcmZhY2UucHJvdG90
eXBlLmlzX2NhbGxiYWNrID0gZnVuY3Rpb24oKQotLy9AewogewogICAgIHJldHVybiB0aGlzLl9p
c19jYWxsYmFjazsKIH07Ci0vL0B9CiAKIElkbEludGVyZmFjZS5wcm90b3R5cGUuaXNfbWl4aW4g
PSBmdW5jdGlvbigpCi0vL0B7CiB7CiAgICAgcmV0dXJuIHRoaXMuX2lzX21peGluOwogfTsKLS8v
QH0KIAogSWRsSW50ZXJmYWNlLnByb3RvdHlwZS5oYXNfY29uc3RhbnRzID0gZnVuY3Rpb24oKQot
Ly9AewogewogICAgIHJldHVybiB0aGlzLm1lbWJlcnMuc29tZShmdW5jdGlvbihtZW1iZXIpIHsK
ICAgICAgICAgcmV0dXJuIG1lbWJlci50eXBlID09PSAiY29uc3QiOwogICAgIH0pOwogfTsKLS8v
QH0KIAogSWRsSW50ZXJmYWNlLnByb3RvdHlwZS5nZXRfdW5zY29wYWJsZXMgPSBmdW5jdGlvbigp
CiB7CkBAIC0xMzEyLDEzICsxMzAxLDUzIEBAIElkbEludGVyZmFjZS5wcm90b3R5cGUuZ2V0X3Vu
c2NvcGFibGVzID0gZnVuY3Rpb24oKQogfTsKIAogSWRsSW50ZXJmYWNlLnByb3RvdHlwZS5pc19n
bG9iYWwgPSBmdW5jdGlvbigpCi0vL0B7CiB7CiAgICAgcmV0dXJuIHRoaXMuZXh0QXR0cnMuc29t
ZShmdW5jdGlvbihhdHRyaWJ1dGUpIHsKICAgICAgICAgcmV0dXJuIGF0dHJpYnV0ZS5uYW1lID09
PSAiR2xvYmFsIjsKICAgICB9KTsKIH07Ci0vL0B9CisKKy8qKgorICogVmFsdWUgb2YgdGhlIExl
Z2FjeU5hbWVzcGFjZSBleHRlbmRlZCBhdHRyaWJ1dGUsIGlmIGFueS4KKyAqCisgKiBodHRwczov
L2hleWNhbS5naXRodWIuaW8vd2ViaWRsLyNMZWdhY3lOYW1lc3BhY2UKKyAqLworSWRsSW50ZXJm
YWNlLnByb3RvdHlwZS5nZXRfbGVnYWN5X25hbWVzcGFjZSA9IGZ1bmN0aW9uKCkKK3sKKyAgICB2
YXIgbGVnYWN5TmFtZXNwYWNlID0gdGhpcy5leHRBdHRycy5maW5kKGZ1bmN0aW9uKGF0dHJpYnV0
ZSkgeworICAgICAgICByZXR1cm4gYXR0cmlidXRlLm5hbWUgPT09ICJMZWdhY3lOYW1lc3BhY2Ui
OworICAgIH0pOworICAgIHJldHVybiBsZWdhY3lOYW1lc3BhY2UgPyBsZWdhY3lOYW1lc3BhY2Uu
cmhzLnZhbHVlIDogdW5kZWZpbmVkOworfTsKKworSWRsSW50ZXJmYWNlLnByb3RvdHlwZS5nZXRf
aW50ZXJmYWNlX29iamVjdF9vd25lciA9IGZ1bmN0aW9uKCkKK3sKKyAgICB2YXIgbGVnYWN5TmFt
ZXNwYWNlID0gdGhpcy5nZXRfbGVnYWN5X25hbWVzcGFjZSgpOworICAgIHJldHVybiBsZWdhY3lO
YW1lc3BhY2UgPyBzZWxmW2xlZ2FjeU5hbWVzcGFjZV0gOiBzZWxmOworfTsKKworSWRsSW50ZXJm
YWNlLnByb3RvdHlwZS5hc3NlcnRfaW50ZXJmYWNlX29iamVjdF9leGlzdHMgPSBmdW5jdGlvbigp
Cit7CisgICAgdmFyIG93bmVyID0gdGhpcy5nZXRfbGVnYWN5X25hbWVzcGFjZSgpIHx8ICJzZWxm
IjsKKyAgICBhc3NlcnRfb3duX3Byb3BlcnR5KHNlbGZbb3duZXJdLCB0aGlzLm5hbWUsIG93bmVy
ICsgIiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiICsgZm9ybWF0X3ZhbHVlKHRoaXMubmFt
ZSkpOworfTsKKworSWRsSW50ZXJmYWNlLnByb3RvdHlwZS5nZXRfaW50ZXJmYWNlX29iamVjdCA9
IGZ1bmN0aW9uKCkgeworICAgIGlmICh0aGlzLmhhc19leHRlbmRlZF9hdHRyaWJ1dGUoIk5vSW50
ZXJmYWNlT2JqZWN0IikpIHsKKyAgICAgICAgdGhyb3cgbmV3IElkbEhhcm5lc3NFcnJvcih0aGlz
Lm5hbWUgKyAiIGhhcyBubyBpbnRlcmZhY2Ugb2JqZWN0IGR1ZSB0byBOb0ludGVyZmFjZU9iamVj
dCIpOworICAgIH0KKworICAgIHJldHVybiB0aGlzLmdldF9pbnRlcmZhY2Vfb2JqZWN0X293bmVy
KClbdGhpcy5uYW1lXTsKK307CisKK0lkbEludGVyZmFjZS5wcm90b3R5cGUuZ2V0X3F1YWxpZmll
ZF9uYW1lID0gZnVuY3Rpb24oKSB7CisgICAgLy8gaHR0cHM6Ly9oZXljYW0uZ2l0aHViLmlvL3dl
YmlkbC8jcXVhbGlmaWVkLW5hbWUKKyAgICB2YXIgbGVnYWN5TmFtZXNwYWNlID0gdGhpcy5nZXRf
bGVnYWN5X25hbWVzcGFjZSgpOworICAgIGlmIChsZWdhY3lOYW1lc3BhY2UpIHsKKyAgICAgICAg
cmV0dXJuIGxlZ2FjeU5hbWVzcGFjZSArICIuIiArIHRoaXMubmFtZTsKKyAgICB9CisgICAgcmV0
dXJuIHRoaXMubmFtZTsKK307CiAKIElkbEludGVyZmFjZS5wcm90b3R5cGUuaGFzX3RvX2pzb25f
cmVndWxhcl9vcGVyYXRpb24gPSBmdW5jdGlvbigpIHsKICAgICByZXR1cm4gdGhpcy5tZW1iZXJz
LnNvbWUoZnVuY3Rpb24obSkgewpAQCAtMTM4NCw3ICsxNDEzLDcgQEAgSWRsSW50ZXJmYWNlLnBy
b3RvdHlwZS5kZWZhdWx0X3RvX2pzb25fb3BlcmF0aW9uID0gZnVuY3Rpb24oY2FsbGJhY2spIHsK
ICAgICAgICAgaWYgKEkuaGFzX2RlZmF1bHRfdG9fanNvbl9yZWd1bGFyX29wZXJhdGlvbigpKSB7
CiAgICAgICAgICAgICBpc0RlZmF1bHQgPSB0cnVlOwogICAgICAgICAgICAgSS5tZW1iZXJzLmZv
ckVhY2goZnVuY3Rpb24obSkgewotICAgICAgICAgICAgICAgIGlmICghbS5zdGF0aWMgJiYgbS50
eXBlID09ICJhdHRyaWJ1dGUiICYmIEkuYXJyYXkuaXNfanNvbl90eXBlKG0uaWRsVHlwZSkpIHsK
KyAgICAgICAgICAgICAgICBpZiAobS5zcGVjaWFsICE9PSAic3RhdGljIiAmJiBtLnR5cGUgPT0g
ImF0dHJpYnV0ZSIgJiYgSS5hcnJheS5pc19qc29uX3R5cGUobS5pZGxUeXBlKSkgewogICAgICAg
ICAgICAgICAgICAgICBtYXAuc2V0KG0ubmFtZSwgbS5pZGxUeXBlKTsKICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICB9KTsKQEAgLTE0NDYsNyArMTQ3NSw2IEBAIGZ1bmN0aW9uIF90cmF2
ZXJzZV9pbmhlcml0ZWRfYW5kX2NvbnNlcXVlbnRpYWxfaW50ZXJmYWNlcyhzdGFjaywgY2FsbGJh
Y2spIHsKIH0KIAogSWRsSW50ZXJmYWNlLnByb3RvdHlwZS50ZXN0ID0gZnVuY3Rpb24oKQotLy9A
ewogewogICAgIGlmICh0aGlzLmhhc19leHRlbmRlZF9hdHRyaWJ1dGUoIk5vSW50ZXJmYWNlT2Jq
ZWN0IikgfHwgdGhpcy5pc19taXhpbigpKQogICAgIHsKQEAgLTE0NzgsMTAgKzE1MDYsMTkgQEAg
SWRsSW50ZXJmYWNlLnByb3RvdHlwZS50ZXN0ID0gZnVuY3Rpb24oKQogICAgIC8vIGludGVyZmFj
ZSBhcmUgc3RpbGwgdGVzdGVkLgogICAgIHRoaXMudGVzdF9tZW1iZXJzKCk7CiB9OwotLy9AfQor
CisvLyBUaGlzIHN1cHBvcnRzIGJvdGggQ29uc3RydWN0b3IgZXh0ZW5kZWQgYXR0cmlidXRlcyBh
bmQgY29uc3RydWN0b3IKKy8vIG9wZXJhdGlvbnMgdW50aWwgYWxsIGlkbCBmcmFnbWVudHMgaGF2
ZSBiZWVuIHVwZGF0ZWQuCitJZGxJbnRlcmZhY2UucHJvdG90eXBlLmNvbnN0cnVjdG9ycyA9IGZ1
bmN0aW9uKCkKK3sKKyAgICB2YXIgZXh0ZW5kZWRBdHRyaWJ1dGVzID0gdGhpcy5leHRBdHRycwor
ICAgICAgICAuZmlsdGVyKGZ1bmN0aW9uKGF0dHIpIHsgcmV0dXJuIGF0dHIubmFtZSA9PSAiQ29u
c3RydWN0b3IiOyB9KTsKKyAgICB2YXIgb3BlcmF0aW9ucyA9IHRoaXMubWVtYmVycworICAgICAg
ICAuZmlsdGVyKGZ1bmN0aW9uKG0pIHsgcmV0dXJuIG0udHlwZSA9PSAiY29uc3RydWN0b3IiOyB9
KTsKKyAgICByZXR1cm4gZXh0ZW5kZWRBdHRyaWJ1dGVzLmNvbmNhdChvcGVyYXRpb25zKTsKK30K
IAogSWRsSW50ZXJmYWNlLnByb3RvdHlwZS50ZXN0X3NlbGYgPSBmdW5jdGlvbigpCi0vL0B7CiB7
CiAgICAgc3Vic2V0VGVzdEJ5S2V5KHRoaXMubmFtZSwgdGVzdCwgZnVuY3Rpb24oKQogICAgIHsK
QEAgLTE1MDMsOSArMTU0MCw4IEBAIElkbEludGVyZmFjZS5wcm90b3R5cGUudGVzdF9zZWxmID0g
ZnVuY3Rpb24oKQogCiAgICAgICAgIC8vIFRPRE86IFNob3VsZCB3ZSB0ZXN0IGhlcmUgdGhhdCB0
aGUgcHJvcGVydHkgaXMgYWN0dWFsbHkgd3JpdGFibGUKICAgICAgICAgLy8gZXRjLiwgb3IgdHJ1
c3QgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yPwotICAgICAgICBhc3NlcnRfb3duX3Byb3BlcnR5
KHNlbGYsIHRoaXMubmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2VsZiBkb2Vz
IG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiICsgZm9ybWF0X3ZhbHVlKHRoaXMubmFtZSkpOwotICAg
ICAgICB2YXIgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Ioc2VsZiwgdGhp
cy5uYW1lKTsKKyAgICAgICAgdGhpcy5hc3NlcnRfaW50ZXJmYWNlX29iamVjdF9leGlzdHMoKTsK
KyAgICAgICAgdmFyIGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRoaXMu
Z2V0X2ludGVyZmFjZV9vYmplY3Rfb3duZXIoKSwgdGhpcy5uYW1lKTsKICAgICAgICAgYXNzZXJ0
X2ZhbHNlKCJnZXQiIGluIGRlc2MsICJzZWxmJ3MgcHJvcGVydHkgIiArIGZvcm1hdF92YWx1ZSh0
aGlzLm5hbWUpICsgIiBzaG91bGQgbm90IGhhdmUgYSBnZXR0ZXIiKTsKICAgICAgICAgYXNzZXJ0
X2ZhbHNlKCJzZXQiIGluIGRlc2MsICJzZWxmJ3MgcHJvcGVydHkgIiArIGZvcm1hdF92YWx1ZSh0
aGlzLm5hbWUpICsgIiBzaG91bGQgbm90IGhhdmUgYSBzZXR0ZXIiKTsKICAgICAgICAgYXNzZXJ0
X3RydWUoZGVzYy53cml0YWJsZSwgInNlbGYncyBwcm9wZXJ0eSAiICsgZm9ybWF0X3ZhbHVlKHRo
aXMubmFtZSkgKyAiIHNob3VsZCBiZSB3cml0YWJsZSIpOwpAQCAtMTUxNSw3ICsxNTUxLDcgQEAg
SWRsSW50ZXJmYWNlLnByb3RvdHlwZS50ZXN0X3NlbGYgPSBmdW5jdGlvbigpCiAgICAgICAgIGlm
ICh0aGlzLmlzX2NhbGxiYWNrKCkpIHsKICAgICAgICAgICAgIC8vICJUaGUgaW50ZXJuYWwgW1tQ
cm90b3R5cGVdXSBwcm9wZXJ0eSBvZiBhbiBpbnRlcmZhY2Ugb2JqZWN0IGZvcgogICAgICAgICAg
ICAgLy8gYSBjYWxsYmFjayBpbnRlcmZhY2UgbXVzdCBiZSB0aGUgRnVuY3Rpb24ucHJvdG90eXBl
IG9iamVjdC4iCi0gICAgICAgICAgICBhc3NlcnRfZXF1YWxzKE9iamVjdC5nZXRQcm90b3R5cGVP
ZihzZWxmW3RoaXMubmFtZV0pLCBGdW5jdGlvbi5wcm90b3R5cGUsCisgICAgICAgICAgICBhc3Nl
cnRfZXF1YWxzKE9iamVjdC5nZXRQcm90b3R5cGVPZih0aGlzLmdldF9pbnRlcmZhY2Vfb2JqZWN0
KCkpLCBGdW5jdGlvbi5wcm90b3R5cGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICJwcm90
b3R5cGUgb2Ygc2VsZidzIHByb3BlcnR5ICIgKyBmb3JtYXRfdmFsdWUodGhpcy5uYW1lKSArICIg
aXMgbm90IE9iamVjdC5wcm90b3R5cGUiKTsKIAogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMTU0
NSwyNCArMTU4MSwxOSBAQCBJZGxJbnRlcmZhY2UucHJvdG90eXBlLnRlc3Rfc2VsZiA9IGZ1bmN0
aW9uKCkKICAgICAgICAgLy8gRVM2IChyZXYgMzApIDE5LjEuMy42OgogICAgICAgICAvLyAiRWxz
ZSwgaWYgTyBoYXMgYSBbW0NhbGxdXSBpbnRlcm5hbCBtZXRob2QsIHRoZW4gbGV0IGJ1aWx0aW5U
YWcgYmUKICAgICAgICAgLy8gIkZ1bmN0aW9uIi4iCi0gICAgICAgIGFzc2VydF9jbGFzc19zdHJp
bmcoc2VsZlt0aGlzLm5hbWVdLCAiRnVuY3Rpb24iLCAiY2xhc3Mgc3RyaW5nIG9mICIgKyB0aGlz
Lm5hbWUpOworICAgICAgICBhc3NlcnRfY2xhc3Nfc3RyaW5nKHRoaXMuZ2V0X2ludGVyZmFjZV9v
YmplY3QoKSwgIkZ1bmN0aW9uIiwgImNsYXNzIHN0cmluZyBvZiAiICsgdGhpcy5uYW1lKTsKIAog
ICAgICAgICAvLyAiVGhlIFtbUHJvdG90eXBlXV0gaW50ZXJuYWwgcHJvcGVydHkgb2YgYW4gaW50
ZXJmYWNlIG9iamVjdCBmb3IgYQogICAgICAgICAvLyBub24tY2FsbGJhY2sgaW50ZXJmYWNlIGlz
IGRldGVybWluZWQgYXMgZm9sbG93czoiCi0gICAgICAgIHZhciBwcm90b3R5cGUgPSBPYmplY3Qu
Z2V0UHJvdG90eXBlT2Yoc2VsZlt0aGlzLm5hbWVdKTsKKyAgICAgICAgdmFyIHByb3RvdHlwZSA9
IE9iamVjdC5nZXRQcm90b3R5cGVPZih0aGlzLmdldF9pbnRlcmZhY2Vfb2JqZWN0KCkpOwogICAg
ICAgICBpZiAodGhpcy5iYXNlKSB7CiAgICAgICAgICAgICAvLyAiKiBJZiB0aGUgaW50ZXJmYWNl
IGluaGVyaXRzIGZyb20gc29tZSBvdGhlciBpbnRlcmZhY2UsIHRoZQogICAgICAgICAgICAgLy8g
ICAgdmFsdWUgb2YgW1tQcm90b3R5cGVdXSBpcyB0aGUgaW50ZXJmYWNlIG9iamVjdCBmb3IgdGhh
dCBvdGhlcgogICAgICAgICAgICAgLy8gICAgaW50ZXJmYWNlLiIKLSAgICAgICAgICAgIHZhciBo
YXNfaW50ZXJmYWNlX29iamVjdCA9Ci0gICAgICAgICAgICAgICAgIXRoaXMuYXJyYXkKLSAgICAg
ICAgICAgICAgICAgICAgIC5tZW1iZXJzW3RoaXMuYmFzZV0KLSAgICAgICAgICAgICAgICAgICAg
IC5oYXNfZXh0ZW5kZWRfYXR0cmlidXRlKCJOb0ludGVyZmFjZU9iamVjdCIpOwotICAgICAgICAg
ICAgaWYgKGhhc19pbnRlcmZhY2Vfb2JqZWN0KSB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0X293
bl9wcm9wZXJ0eShzZWxmLCB0aGlzLmJhc2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAnc2hvdWxkIGluaGVyaXQgZnJvbSAnICsgdGhpcy5iYXNlICsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICcsIGJ1dCBzZWxmIGhhcyBubyBzdWNoIHByb3BlcnR5
Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhwcm90b3R5cGUsIHNlbGZbdGhpcy5i
YXNlXSwKKyAgICAgICAgICAgIHZhciBpbmhlcml0ZWRfaW50ZXJmYWNlID0gdGhpcy5hcnJheS5t
ZW1iZXJzW3RoaXMuYmFzZV07CisgICAgICAgICAgICBpZiAoIWluaGVyaXRlZF9pbnRlcmZhY2Uu
aGFzX2V4dGVuZGVkX2F0dHJpYnV0ZSgiTm9JbnRlcmZhY2VPYmplY3QiKSkgeworICAgICAgICAg
ICAgICAgIGluaGVyaXRlZF9pbnRlcmZhY2UuYXNzZXJ0X2ludGVyZmFjZV9vYmplY3RfZXhpc3Rz
KCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhwcm90b3R5cGUsIGluaGVyaXRlZF9p
bnRlcmZhY2UuZ2V0X2ludGVyZmFjZV9vYmplY3QoKSwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICdwcm90b3R5cGUgb2YgJyArIHRoaXMubmFtZSArICcgaXMgbm90ICcgKwogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5iYXNlKTsKICAgICAgICAgICAgIH0KQEAgLTE1
NzQsMTggKzE2MDUsMTkgQEAgSWRsSW50ZXJmYWNlLnByb3RvdHlwZS50ZXN0X3NlbGYgPSBmdW5j
dGlvbigpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICJwcm90b3R5cGUgb2Ygc2VsZidzIHBy
b3BlcnR5ICIgKyBmb3JtYXRfdmFsdWUodGhpcy5uYW1lKSArICIgaXMgbm90IEZ1bmN0aW9uLnBy
b3RvdHlwZSIpOwogICAgICAgICB9CiAKLSAgICAgICAgaWYgKCF0aGlzLmhhc19leHRlbmRlZF9h
dHRyaWJ1dGUoIkNvbnN0cnVjdG9yIikpIHsKKyAgICAgICAgaWYgKCF0aGlzLmNvbnN0cnVjdG9y
cygpLmxlbmd0aCkgewogICAgICAgICAgICAgLy8gIlRoZSBpbnRlcm5hbCBbW0NhbGxdXSBtZXRo
b2Qgb2YgdGhlIGludGVyZmFjZSBvYmplY3QgYmVoYXZlcyBhcwogICAgICAgICAgICAgLy8gZm9s
bG93cyAuIC4gLgogICAgICAgICAgICAgLy8KICAgICAgICAgICAgIC8vICJJZiBJIHdhcyBub3Qg
ZGVjbGFyZWQgd2l0aCBhIFtDb25zdHJ1Y3Rvcl0gZXh0ZW5kZWQgYXR0cmlidXRlLAogICAgICAg
ICAgICAgLy8gdGhlbiB0aHJvdyBhIFR5cGVFcnJvci4iCisgICAgICAgICAgICB2YXIgaW50ZXJm
YWNlX29iamVjdCA9IHRoaXMuZ2V0X2ludGVyZmFjZV9vYmplY3QoKTsKICAgICAgICAgICAgIGFz
c2VydF90aHJvd3MobmV3IFR5cGVFcnJvcigpLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAg
ICBzZWxmW3RoaXMubmFtZV0oKTsKLSAgICAgICAgICAgIH0uYmluZCh0aGlzKSwgImludGVyZmFj
ZSBvYmplY3QgZGlkbid0IHRocm93IFR5cGVFcnJvciB3aGVuIGNhbGxlZCBhcyBhIGZ1bmN0aW9u
Iik7CisgICAgICAgICAgICAgICAgaW50ZXJmYWNlX29iamVjdCgpOworICAgICAgICAgICAgfSwg
ImludGVyZmFjZSBvYmplY3QgZGlkbid0IHRocm93IFR5cGVFcnJvciB3aGVuIGNhbGxlZCBhcyBh
IGZ1bmN0aW9uIik7CiAgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKG5ldyBUeXBlRXJyb3IoKSwg
ZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgICAgbmV3IHNlbGZbdGhpcy5uYW1lXSgpOwotICAg
ICAgICAgICAgfS5iaW5kKHRoaXMpLCAiaW50ZXJmYWNlIG9iamVjdCBkaWRuJ3QgdGhyb3cgVHlw
ZUVycm9yIHdoZW4gY2FsbGVkIGFzIGEgY29uc3RydWN0b3IiKTsKKyAgICAgICAgICAgICAgICBu
ZXcgaW50ZXJmYWNlX29iamVjdCgpOworICAgICAgICAgICAgfSwgImludGVyZmFjZSBvYmplY3Qg
ZGlkbid0IHRocm93IFR5cGVFcnJvciB3aGVuIGNhbGxlZCBhcyBhIGNvbnN0cnVjdG9yIik7CiAg
ICAgICAgIH0KICAgICB9LmJpbmQodGhpcyksIHRoaXMubmFtZSArICIgaW50ZXJmYWNlOiBleGlz
dGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCIpOwogCkBAIC0xNTk0LDI1
ICsxNjI2LDIzIEBAIElkbEludGVyZmFjZS5wcm90b3R5cGUudGVzdF9zZWxmID0gZnVuY3Rpb24o
KQogICAgICAgICAgICAgLy8gVGhpcyBmdW5jdGlvbiB0ZXN0cyBXZWJJREwgYXMgb2YgMjAxNC0x
MC0yNS4KICAgICAgICAgICAgIC8vIGh0dHBzOi8vaGV5Y2FtLmdpdGh1Yi5pby93ZWJpZGwvI2Vz
LWludGVyZmFjZS1jYWxsCiAKLSAgICAgICAgICAgIGFzc2VydF9vd25fcHJvcGVydHkoc2VsZiwg
dGhpcy5uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2VsZiBkb2VzIG5v
dCBoYXZlIG93biBwcm9wZXJ0eSAiICsgZm9ybWF0X3ZhbHVlKHRoaXMubmFtZSkpOworICAgICAg
ICAgICAgdGhpcy5hc3NlcnRfaW50ZXJmYWNlX29iamVjdF9leGlzdHMoKTsKIAogICAgICAgICAg
ICAgLy8gIkludGVyZmFjZSBvYmplY3RzIGZvciBub24tY2FsbGJhY2sgaW50ZXJmYWNlcyBNVVNU
IGhhdmUgYQogICAgICAgICAgICAgLy8gcHJvcGVydHkgbmFtZWQg4oCcbGVuZ3Ro4oCdIHdpdGgg
YXR0cmlidXRlcyB7IFtbV3JpdGFibGVdXTogZmFsc2UsCiAgICAgICAgICAgICAvLyBbW0VudW1l
cmFibGVdXTogZmFsc2UsIFtbQ29uZmlndXJhYmxlXV06IHRydWUgfSB3aG9zZSB2YWx1ZSBpcwog
ICAgICAgICAgICAgLy8gYSBOdW1iZXIuIgotICAgICAgICAgICAgYXNzZXJ0X293bl9wcm9wZXJ0
eShzZWxmW3RoaXMubmFtZV0sICJsZW5ndGgiKTsKLSAgICAgICAgICAgIHZhciBkZXNjID0gT2Jq
ZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihzZWxmW3RoaXMubmFtZV0sICJsZW5ndGgiKTsK
KyAgICAgICAgICAgIGFzc2VydF9vd25fcHJvcGVydHkodGhpcy5nZXRfaW50ZXJmYWNlX29iamVj
dCgpLCAibGVuZ3RoIik7CisgICAgICAgICAgICB2YXIgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3IodGhpcy5nZXRfaW50ZXJmYWNlX29iamVjdCgpLCAibGVuZ3RoIik7CiAg
ICAgICAgICAgICBhc3NlcnRfZmFsc2UoImdldCIgaW4gZGVzYywgdGhpcy5uYW1lICsgIi5sZW5n
dGggc2hvdWxkIG5vdCBoYXZlIGEgZ2V0dGVyIik7CiAgICAgICAgICAgICBhc3NlcnRfZmFsc2Uo
InNldCIgaW4gZGVzYywgdGhpcy5uYW1lICsgIi5sZW5ndGggc2hvdWxkIG5vdCBoYXZlIGEgc2V0
dGVyIik7CiAgICAgICAgICAgICBhc3NlcnRfZmFsc2UoZGVzYy53cml0YWJsZSwgdGhpcy5uYW1l
ICsgIi5sZW5ndGggc2hvdWxkIG5vdCBiZSB3cml0YWJsZSIpOwogICAgICAgICAgICAgYXNzZXJ0
X2ZhbHNlKGRlc2MuZW51bWVyYWJsZSwgdGhpcy5uYW1lICsgIi5sZW5ndGggc2hvdWxkIG5vdCBi
ZSBlbnVtZXJhYmxlIik7CiAgICAgICAgICAgICBhc3NlcnRfdHJ1ZShkZXNjLmNvbmZpZ3VyYWJs
ZSwgdGhpcy5uYW1lICsgIi5sZW5ndGggc2hvdWxkIGJlIGNvbmZpZ3VyYWJsZSIpOwogCi0gICAg
ICAgICAgICB2YXIgY29uc3RydWN0b3JzID0gdGhpcy5leHRBdHRycwotICAgICAgICAgICAgICAg
IC5maWx0ZXIoZnVuY3Rpb24oYXR0cikgeyByZXR1cm4gYXR0ci5uYW1lID09ICJDb25zdHJ1Y3Rv
ciI7IH0pOworICAgICAgICAgICAgdmFyIGNvbnN0cnVjdG9ycyA9IHRoaXMuY29uc3RydWN0b3Jz
KCk7CiAgICAgICAgICAgICB2YXIgZXhwZWN0ZWRfbGVuZ3RoID0gbWluT3ZlcmxvYWRMZW5ndGgo
Y29uc3RydWN0b3JzKTsKLSAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2VsZlt0aGlzLm5hbWVd
Lmxlbmd0aCwgZXhwZWN0ZWRfbGVuZ3RoLCAid3JvbmcgdmFsdWUgZm9yICIgKyB0aGlzLm5hbWUg
KyAiLmxlbmd0aCIpOworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyh0aGlzLmdldF9pbnRlcmZh
Y2Vfb2JqZWN0KCkubGVuZ3RoLCBleHBlY3RlZF9sZW5ndGgsICJ3cm9uZyB2YWx1ZSBmb3IgIiAr
IHRoaXMubmFtZSArICIubGVuZ3RoIik7CiAgICAgICAgIH0uYmluZCh0aGlzKSwgdGhpcy5uYW1l
ICsgIiBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aCIpOwogICAgIH0KIApAQCAtMTYyMSwyMiArMTY1
MSwyMSBAQCBJZGxJbnRlcmZhY2UucHJvdG90eXBlLnRlc3Rfc2VsZiA9IGZ1bmN0aW9uKCkKICAg
ICAgICAgICAgIC8vIFRoaXMgZnVuY3Rpb24gdGVzdHMgV2ViSURMIGFzIG9mIDIwMTUtMTEtMTcu
CiAgICAgICAgICAgICAvLyBodHRwczovL2hleWNhbS5naXRodWIuaW8vd2ViaWRsLyNpbnRlcmZh
Y2Utb2JqZWN0CiAKLSAgICAgICAgICAgIGFzc2VydF9vd25fcHJvcGVydHkoc2VsZiwgdGhpcy5u
YW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2VsZiBkb2VzIG5vdCBoYXZl
IG93biBwcm9wZXJ0eSAiICsgZm9ybWF0X3ZhbHVlKHRoaXMubmFtZSkpOworICAgICAgICAgICAg
dGhpcy5hc3NlcnRfaW50ZXJmYWNlX29iamVjdF9leGlzdHMoKTsKIAogICAgICAgICAgICAgLy8g
IkFsbCBpbnRlcmZhY2Ugb2JqZWN0cyBtdXN0IGhhdmUgYSBwcm9wZXJ0eSBuYW1lZCDigJxuYW1l
4oCdIHdpdGgKICAgICAgICAgICAgIC8vIGF0dHJpYnV0ZXMgeyBbW1dyaXRhYmxlXV06IGZhbHNl
LCBbW0VudW1lcmFibGVdXTogZmFsc2UsCiAgICAgICAgICAgICAvLyBbW0NvbmZpZ3VyYWJsZV1d
OiB0cnVlIH0gd2hvc2UgdmFsdWUgaXMgdGhlIGlkZW50aWZpZXIgb2YgdGhlCiAgICAgICAgICAg
ICAvLyBjb3JyZXNwb25kaW5nIGludGVyZmFjZS4iCiAKLSAgICAgICAgICAgIGFzc2VydF9vd25f
cHJvcGVydHkoc2VsZlt0aGlzLm5hbWVdLCAibmFtZSIpOwotICAgICAgICAgICAgdmFyIGRlc2Mg
PSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHNlbGZbdGhpcy5uYW1lXSwgIm5hbWUi
KTsKKyAgICAgICAgICAgIGFzc2VydF9vd25fcHJvcGVydHkodGhpcy5nZXRfaW50ZXJmYWNlX29i
amVjdCgpLCAibmFtZSIpOworICAgICAgICAgICAgdmFyIGRlc2MgPSBPYmplY3QuZ2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yKHRoaXMuZ2V0X2ludGVyZmFjZV9vYmplY3QoKSwgIm5hbWUiKTsKICAg
ICAgICAgICAgIGFzc2VydF9mYWxzZSgiZ2V0IiBpbiBkZXNjLCB0aGlzLm5hbWUgKyAiLm5hbWUg
c2hvdWxkIG5vdCBoYXZlIGEgZ2V0dGVyIik7CiAgICAgICAgICAgICBhc3NlcnRfZmFsc2UoInNl
dCIgaW4gZGVzYywgdGhpcy5uYW1lICsgIi5uYW1lIHNob3VsZCBub3QgaGF2ZSBhIHNldHRlciIp
OwogICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKGRlc2Mud3JpdGFibGUsIHRoaXMubmFtZSArICIu
bmFtZSBzaG91bGQgbm90IGJlIHdyaXRhYmxlIik7CiAgICAgICAgICAgICBhc3NlcnRfZmFsc2Uo
ZGVzYy5lbnVtZXJhYmxlLCB0aGlzLm5hbWUgKyAiLm5hbWUgc2hvdWxkIG5vdCBiZSBlbnVtZXJh
YmxlIik7CiAgICAgICAgICAgICBhc3NlcnRfdHJ1ZShkZXNjLmNvbmZpZ3VyYWJsZSwgdGhpcy5u
YW1lICsgIi5uYW1lIHNob3VsZCBiZSBjb25maWd1cmFibGUiKTsKLSAgICAgICAgICAgIGFzc2Vy
dF9lcXVhbHMoc2VsZlt0aGlzLm5hbWVdLm5hbWUsIHRoaXMubmFtZSwgIndyb25nIHZhbHVlIGZv
ciAiICsgdGhpcy5uYW1lICsgIi5uYW1lIik7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHRo
aXMuZ2V0X2ludGVyZmFjZV9vYmplY3QoKS5uYW1lLCB0aGlzLm5hbWUsICJ3cm9uZyB2YWx1ZSBm
b3IgIiArIHRoaXMubmFtZSArICIubmFtZSIpOwogICAgICAgICB9LmJpbmQodGhpcyksIHRoaXMu
bmFtZSArICIgaW50ZXJmYWNlIG9iamVjdCBuYW1lIik7CiAgICAgfQogCkBAIC0xNjY1LDcgKzE2
OTQsNyBAQCBJZGxJbnRlcmZhY2UucHJvdG90eXBlLnRlc3Rfc2VsZiA9IGZ1bmN0aW9uKCkKICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgIHZhciBhbGlhc2VzOwogICAgICAgICAgICAgaWYgKHJo
cy50eXBlID09PSAiaWRlbnRpZmllci1saXN0IikgewotICAgICAgICAgICAgICAgIGFsaWFzZXMg
PSByaHMudmFsdWU7CisgICAgICAgICAgICAgICAgYWxpYXNlcyA9IHJocy52YWx1ZS5tYXAoaWQg
PT4gaWQudmFsdWUpOwogICAgICAgICAgICAgfSBlbHNlIHsgLy8gcmhzLnR5cGUgPT09IGlkZW50
aWZpZXIKICAgICAgICAgICAgICAgICBhbGlhc2VzID0gWyByaHMudmFsdWUgXTsKICAgICAgICAg
ICAgIH0KQEAgLTE2NzUsOSArMTcwNCw5IEBAIElkbEludGVyZmFjZS5wcm90b3R5cGUudGVzdF9z
ZWxmID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgaWYgKGV4cG9zZWRfaW4oZXhwb3N1cmVfc2V0
KHRoaXMsIHRoaXMuZXhwb3N1cmVTZXQpKSAmJiAnZG9jdW1lbnQnIGluIHNlbGYpIHsKICAgICAg
ICAgICAgICAgICBmb3IgKGFsaWFzIG9mIGFsaWFzZXMpIHsKICAgICAgICAgICAgICAgICAgICAg
YXNzZXJ0X3RydWUoYWxpYXMgaW4gc2VsZiwgYWxpYXMgKyAiIHNob3VsZCBleGlzdCIpOwotICAg
ICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNlbGZbYWxpYXNdLCBzZWxmW3RoaXMubmFt
ZV0sICJzZWxmLiIgKyBhbGlhcyArICIgc2hvdWxkIGJlIHRoZSBzYW1lIHZhbHVlIGFzIHNlbGYu
IiArIHRoaXMubmFtZSk7CisgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2VsZlth
bGlhc10sIHRoaXMuZ2V0X2ludGVyZmFjZV9vYmplY3QoKSwgInNlbGYuIiArIGFsaWFzICsgIiBz
aG91bGQgYmUgdGhlIHNhbWUgdmFsdWUgYXMgc2VsZi4iICsgdGhpcy5nZXRfcXVhbGlmaWVkX25h
bWUoKSk7CiAgICAgICAgICAgICAgICAgICAgIHZhciBkZXNjID0gT2JqZWN0LmdldE93blByb3Bl
cnR5RGVzY3JpcHRvcihzZWxmLCBhbGlhcyk7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydF9l
cXVhbHMoZGVzYy52YWx1ZSwgc2VsZlt0aGlzLm5hbWVdLCAid3JvbmcgdmFsdWUgaW4gIiArIGFs
aWFzICsgIiBwcm9wZXJ0eSBkZXNjcmlwdG9yIik7CisgICAgICAgICAgICAgICAgICAgIGFzc2Vy
dF9lcXVhbHMoZGVzYy52YWx1ZSwgdGhpcy5nZXRfaW50ZXJmYWNlX29iamVjdCgpLCAid3Jvbmcg
dmFsdWUgaW4gIiArIGFsaWFzICsgIiBwcm9wZXJ0eSBkZXNjcmlwdG9yIik7CiAgICAgICAgICAg
ICAgICAgICAgIGFzc2VydF90cnVlKGRlc2Mud3JpdGFibGUsIGFsaWFzICsgIiBzaG91bGQgYmUg
d3JpdGFibGUiKTsKICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKGRlc2MuZW51bWVy
YWJsZSwgYWxpYXMgKyAiIHNob3VsZCBub3QgYmUgZW51bWVyYWJsZSIpOwogICAgICAgICAgICAg
ICAgICAgICBhc3NlcnRfdHJ1ZShkZXNjLmNvbmZpZ3VyYWJsZSwgYWxpYXMgKyAiIHNob3VsZCBi
ZSBjb25maWd1cmFibGUiKTsKQEAgLTE2OTIsNyArMTcyMSwxMjIgQEAgSWRsSW50ZXJmYWNlLnBy
b3RvdHlwZS50ZXN0X3NlbGYgPSBmdW5jdGlvbigpCiAKICAgICAgICAgfS5iaW5kKHRoaXMpLCB0
aGlzLm5hbWUgKyAiIGludGVyZmFjZTogbGVnYWN5IHdpbmRvdyBhbGlhcyIpOwogICAgIH0KLSAg
ICAvLyBUT0RPOiBUZXN0IG5hbWVkIGNvbnN0cnVjdG9ycyBpZiBJIGZpbmQgYW55IGludGVyZmFj
ZXMgdGhhdCBoYXZlIHRoZW0uCisKKyAgICBpZiAodGhpcy5oYXNfZXh0ZW5kZWRfYXR0cmlidXRl
KCJOYW1lZENvbnN0cnVjdG9yIikpIHsKKyAgICAgICAgdmFyIGNvbnN0cnVjdG9ycyA9IHRoaXMu
ZXh0QXR0cnMKKyAgICAgICAgICAgIC5maWx0ZXIoZnVuY3Rpb24oYXR0cikgeyByZXR1cm4gYXR0
ci5uYW1lID09ICJOYW1lZENvbnN0cnVjdG9yIjsgfSk7CisgICAgICAgIGlmIChjb25zdHJ1Y3Rv
cnMubGVuZ3RoICE9PSAxKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWRsSGFybmVzc0Vycm9y
KCJJbnRlcm5hbCBlcnJvcjogbWlzc2luZyBzdXBwb3J0IGZvciBtdWx0aXBsZSBOYW1lZENvbnN0
cnVjdG9yIGV4dGVuZGVkIGF0dHJpYnV0ZXMiKTsKKyAgICAgICAgfQorICAgICAgICB2YXIgY29u
c3RydWN0b3IgPSBjb25zdHJ1Y3RvcnNbMF07CisgICAgICAgIHZhciBtaW5fbGVuZ3RoID0gbWlu
T3ZlcmxvYWRMZW5ndGgoW2NvbnN0cnVjdG9yXSk7CisKKyAgICAgICAgc3Vic2V0VGVzdEJ5S2V5
KHRoaXMubmFtZSwgdGVzdCwgZnVuY3Rpb24oKQorICAgICAgICB7CisgICAgICAgICAgICAvLyBU
aGlzIGZ1bmN0aW9uIHRlc3RzIFdlYklETCBhcyBvZiAyMDE5LTAxLTE0LgorCisgICAgICAgICAg
ICAvLyAiZm9yIGV2ZXJ5IFtOYW1lZENvbnN0cnVjdG9yXSBleHRlbmRlZCBhdHRyaWJ1dGUgb24g
YW4gZXhwb3NlZAorICAgICAgICAgICAgLy8gaW50ZXJmYWNlLCBhIGNvcnJlc3BvbmRpbmcgcHJv
cGVydHkgbXVzdCBleGlzdCBvbiB0aGUgRUNNQVNjcmlwdAorICAgICAgICAgICAgLy8gZ2xvYmFs
IG9iamVjdC4gVGhlIG5hbWUgb2YgdGhlIHByb3BlcnR5IGlzIHRoZQorICAgICAgICAgICAgLy8g
W05hbWVkQ29uc3RydWN0b3JdJ3MgaWRlbnRpZmllciwgYW5kIGl0cyB2YWx1ZSBpcyBhbiBvYmpl
Y3QKKyAgICAgICAgICAgIC8vIGNhbGxlZCBhIG5hbWVkIGNvbnN0cnVjdG9yLCAuLi4gLiBUaGUg
cHJvcGVydHkgaGFzIHRoZSBhdHRyaWJ1dGVzCisgICAgICAgICAgICAvLyB7IFtbV3JpdGFibGVd
XTogdHJ1ZSwgW1tFbnVtZXJhYmxlXV06IGZhbHNlLAorICAgICAgICAgICAgLy8gW1tDb25maWd1
cmFibGVdXTogdHJ1ZSB9LiIKKyAgICAgICAgICAgIHZhciBuYW1lID0gY29uc3RydWN0b3Iucmhz
LnZhbHVlOworICAgICAgICAgICAgYXNzZXJ0X293bl9wcm9wZXJ0eShzZWxmLCBuYW1lKTsKKyAg
ICAgICAgICAgIHZhciBkZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihzZWxm
LCBuYW1lKTsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZGVzYy52YWx1ZSwgc2VsZltuYW1l
XSwgIndyb25nIHZhbHVlIGluICIgKyBuYW1lICsgIiBwcm9wZXJ0eSBkZXNjcmlwdG9yIik7Cisg
ICAgICAgICAgICBhc3NlcnRfdHJ1ZShkZXNjLndyaXRhYmxlLCBuYW1lICsgIiBzaG91bGQgYmUg
d3JpdGFibGUiKTsKKyAgICAgICAgICAgIGFzc2VydF9mYWxzZShkZXNjLmVudW1lcmFibGUsIG5h
bWUgKyAiIHNob3VsZCBub3QgYmUgZW51bWVyYWJsZSIpOworICAgICAgICAgICAgYXNzZXJ0X3Ry
dWUoZGVzYy5jb25maWd1cmFibGUsIG5hbWUgKyAiIHNob3VsZCBiZSBjb25maWd1cmFibGUiKTsK
KyAgICAgICAgICAgIGFzc2VydF9mYWxzZSgiZ2V0IiBpbiBkZXNjLCBuYW1lICsgIiBzaG91bGQg
bm90IGhhdmUgYSBnZXR0ZXIiKTsKKyAgICAgICAgICAgIGFzc2VydF9mYWxzZSgic2V0IiBpbiBk
ZXNjLCBuYW1lICsgIiBzaG91bGQgbm90IGhhdmUgYSBzZXR0ZXIiKTsKKyAgICAgICAgfS5iaW5k
KHRoaXMpLCB0aGlzLm5hbWUgKyAiIGludGVyZmFjZTogbmFtZWQgY29uc3RydWN0b3IiKTsKKwor
ICAgICAgICBzdWJzZXRUZXN0QnlLZXkodGhpcy5uYW1lLCB0ZXN0LCBmdW5jdGlvbigpCisgICAg
ICAgIHsKKyAgICAgICAgICAgIC8vIFRoaXMgZnVuY3Rpb24gdGVzdHMgV2ViSURMIGFzIG9mIDIw
MTktMDEtMTQuCisKKyAgICAgICAgICAgIC8vICIyLiBMZXQgRiBiZSAhIENyZWF0ZUJ1aWx0aW5G
dW5jdGlvbihyZWFsbSwgc3RlcHMsCisgICAgICAgICAgICAvLyAgICAgcmVhbG0uW1tJbnRyaW5z
aWNzXV0uW1slRnVuY3Rpb25Qcm90b3R5cGUlXV0pLiIKKyAgICAgICAgICAgIHZhciBuYW1lID0g
Y29uc3RydWN0b3IucmhzLnZhbHVlOworICAgICAgICAgICAgdmFyIHZhbHVlID0gc2VsZltuYW1l
XTsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHModHlwZW9mIHZhbHVlLCAiZnVuY3Rpb24iLCAi
dHlwZSBvZiB2YWx1ZSBpbiAiICsgbmFtZSArICIgcHJvcGVydHkgZGVzY3JpcHRvciIpOworICAg
ICAgICAgICAgYXNzZXJ0X25vdF9lcXVhbHModmFsdWUsIHRoaXMuZ2V0X2ludGVyZmFjZV9vYmpl
Y3QoKSwgIndyb25nIHZhbHVlIGluICIgKyBuYW1lICsgIiBwcm9wZXJ0eSBkZXNjcmlwdG9yIik7
CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKE9iamVjdC5nZXRQcm90b3R5cGVPZih2YWx1ZSks
IEZ1bmN0aW9uLnByb3RvdHlwZSwgIndyb25nIHZhbHVlIGZvciAiICsgbmFtZSArICIncyBwcm90
b3R5cGUiKTsKKyAgICAgICAgfS5iaW5kKHRoaXMpLCB0aGlzLm5hbWUgKyAiIGludGVyZmFjZTog
bmFtZWQgY29uc3RydWN0b3Igb2JqZWN0Iik7CisKKyAgICAgICAgc3Vic2V0VGVzdEJ5S2V5KHRo
aXMubmFtZSwgdGVzdCwgZnVuY3Rpb24oKQorICAgICAgICB7CisgICAgICAgICAgICAvLyBUaGlz
IGZ1bmN0aW9uIHRlc3RzIFdlYklETCBhcyBvZiAyMDE5LTAxLTE0LgorCisgICAgICAgICAgICAv
LyAiNy4gTGV0IHByb3RvIGJlIHRoZSBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCBvZiBpbnRl
cmZhY2UgSQorICAgICAgICAgICAgLy8gICAgIGluIHJlYWxtLgorICAgICAgICAgICAgLy8gIjgu
IFBlcmZvcm0gISBEZWZpbmVQcm9wZXJ0eU9yVGhyb3coRiwgInByb3RvdHlwZSIsCisgICAgICAg
ICAgICAvLyAgICAgUHJvcGVydHlEZXNjcmlwdG9yeworICAgICAgICAgICAgLy8gICAgICAgICBb
W1ZhbHVlXV06IHByb3RvLCBbW1dyaXRhYmxlXV06IGZhbHNlLAorICAgICAgICAgICAgLy8gICAg
ICAgICBbW0VudW1lcmFibGVdXTogZmFsc2UsIFtbQ29uZmlndXJhYmxlXV06IGZhbHNlCisgICAg
ICAgICAgICAvLyAgICAgfSkuIgorICAgICAgICAgICAgdmFyIG5hbWUgPSBjb25zdHJ1Y3Rvci5y
aHMudmFsdWU7CisgICAgICAgICAgICB2YXIgZXhwZWN0ZWQgPSB0aGlzLmdldF9pbnRlcmZhY2Vf
b2JqZWN0KCkucHJvdG90eXBlOworICAgICAgICAgICAgdmFyIGRlc2MgPSBPYmplY3QuZ2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yKHNlbGZbbmFtZV0sICJwcm90b3R5cGUiKTsKKyAgICAgICAgICAg
IGFzc2VydF9lcXVhbHMoZGVzYy52YWx1ZSwgZXhwZWN0ZWQsICJ3cm9uZyB2YWx1ZSBmb3IgIiAr
IG5hbWUgKyAiLnByb3RvdHlwZSIpOworICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKGRlc2Mud3Jp
dGFibGUsICJwcm90b3R5cGUgc2hvdWxkIG5vdCBiZSB3cml0YWJsZSIpOworICAgICAgICAgICAg
YXNzZXJ0X2ZhbHNlKGRlc2MuZW51bWVyYWJsZSwgInByb3RvdHlwZSBzaG91bGQgbm90IGJlIGVu
dW1lcmFibGUiKTsKKyAgICAgICAgICAgIGFzc2VydF9mYWxzZShkZXNjLmNvbmZpZ3VyYWJsZSwg
InByb3RvdHlwZSBzaG91bGQgbm90IGJlIGNvbmZpZ3VyYWJsZSIpOworICAgICAgICAgICAgYXNz
ZXJ0X2ZhbHNlKCJnZXQiIGluIGRlc2MsICJwcm90b3R5cGUgc2hvdWxkIG5vdCBoYXZlIGEgZ2V0
dGVyIik7CisgICAgICAgICAgICBhc3NlcnRfZmFsc2UoInNldCIgaW4gZGVzYywgInByb3RvdHlw
ZSBzaG91bGQgbm90IGhhdmUgYSBzZXR0ZXIiKTsKKyAgICAgICAgfS5iaW5kKHRoaXMpLCB0aGlz
Lm5hbWUgKyAiIGludGVyZmFjZTogbmFtZWQgY29uc3RydWN0b3IgcHJvdG90eXBlIHByb3BlcnR5
Iik7CisKKyAgICAgICAgc3Vic2V0VGVzdEJ5S2V5KHRoaXMubmFtZSwgdGVzdCwgZnVuY3Rpb24o
KQorICAgICAgICB7CisgICAgICAgICAgICAvLyBUaGlzIGZ1bmN0aW9uIHRlc3RzIFdlYklETCBh
cyBvZiAyMDE5LTAxLTE0LgorCisgICAgICAgICAgICAvLyAiMy4gUGVyZm9ybSAhIFNldEZ1bmN0
aW9uTmFtZShGLCBpZCkuIgorICAgICAgICAgICAgdmFyIG5hbWUgPSBjb25zdHJ1Y3Rvci5yaHMu
dmFsdWU7CisgICAgICAgICAgICB2YXIgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3Ioc2VsZltuYW1lXSwgIm5hbWUiKTsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZGVz
Yy52YWx1ZSwgbmFtZSwgIndyb25nIHZhbHVlIGZvciAiICsgbmFtZSArICIubmFtZSIpOworICAg
ICAgICAgICAgYXNzZXJ0X2ZhbHNlKGRlc2Mud3JpdGFibGUsICJuYW1lIHNob3VsZCBub3QgYmUg
d3JpdGFibGUiKTsKKyAgICAgICAgICAgIGFzc2VydF9mYWxzZShkZXNjLmVudW1lcmFibGUsICJu
YW1lIHNob3VsZCBub3QgYmUgZW51bWVyYWJsZSIpOworICAgICAgICAgICAgYXNzZXJ0X3RydWUo
ZGVzYy5jb25maWd1cmFibGUsICJuYW1lIHNob3VsZCBiZSBjb25maWd1cmFibGUiKTsKKyAgICAg
ICAgICAgIGFzc2VydF9mYWxzZSgiZ2V0IiBpbiBkZXNjLCAibmFtZSBzaG91bGQgbm90IGhhdmUg
YSBnZXR0ZXIiKTsKKyAgICAgICAgICAgIGFzc2VydF9mYWxzZSgic2V0IiBpbiBkZXNjLCAibmFt
ZSBzaG91bGQgbm90IGhhdmUgYSBzZXR0ZXIiKTsKKyAgICAgICAgfS5iaW5kKHRoaXMpLCB0aGlz
Lm5hbWUgKyAiIGludGVyZmFjZTogbmFtZWQgY29uc3RydWN0b3IgbmFtZSIpOworCisgICAgICAg
IHN1YnNldFRlc3RCeUtleSh0aGlzLm5hbWUsIHRlc3QsIGZ1bmN0aW9uKCkKKyAgICAgICAgewor
ICAgICAgICAgICAgLy8gVGhpcyBmdW5jdGlvbiB0ZXN0cyBXZWJJREwgYXMgb2YgMjAxOS0wMS0x
NC4KKworICAgICAgICAgICAgLy8gIjQuIEluaXRpYWxpemUgUyB0byB0aGUgZWZmZWN0aXZlIG92
ZXJsb2FkIHNldCBmb3IgY29uc3RydWN0b3JzCisgICAgICAgICAgICAvLyAgICAgd2l0aCBpZGVu
dGlmaWVyIGlkIG9uIGludGVyZmFjZSBJIGFuZCB3aXRoIGFyZ3VtZW50IGNvdW50IDAuCisgICAg
ICAgICAgICAvLyAiNS4gTGV0IGxlbmd0aCBiZSB0aGUgbGVuZ3RoIG9mIHRoZSBzaG9ydGVzdCBh
cmd1bWVudCBsaXN0IG9mCisgICAgICAgICAgICAvLyAgICAgdGhlIGVudHJpZXMgaW4gUy4KKyAg
ICAgICAgICAgIC8vICI2LiBQZXJmb3JtICEgU2V0RnVuY3Rpb25MZW5ndGgoRiwgbGVuZ3RoKS4i
CisgICAgICAgICAgICB2YXIgbmFtZSA9IGNvbnN0cnVjdG9yLnJocy52YWx1ZTsKKyAgICAgICAg
ICAgIHZhciBkZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihzZWxmW25hbWVd
LCAibGVuZ3RoIik7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGRlc2MudmFsdWUsIG1pbl9s
ZW5ndGgsICJ3cm9uZyB2YWx1ZSBmb3IgIiArIG5hbWUgKyAiLmxlbmd0aCIpOworICAgICAgICAg
ICAgYXNzZXJ0X2ZhbHNlKGRlc2Mud3JpdGFibGUsICJsZW5ndGggc2hvdWxkIG5vdCBiZSB3cml0
YWJsZSIpOworICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKGRlc2MuZW51bWVyYWJsZSwgImxlbmd0
aCBzaG91bGQgbm90IGJlIGVudW1lcmFibGUiKTsKKyAgICAgICAgICAgIGFzc2VydF90cnVlKGRl
c2MuY29uZmlndXJhYmxlLCAibGVuZ3RoIHNob3VsZCBiZSBjb25maWd1cmFibGUiKTsKKyAgICAg
ICAgICAgIGFzc2VydF9mYWxzZSgiZ2V0IiBpbiBkZXNjLCAibGVuZ3RoIHNob3VsZCBub3QgaGF2
ZSBhIGdldHRlciIpOworICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKCJzZXQiIGluIGRlc2MsICJs
ZW5ndGggc2hvdWxkIG5vdCBoYXZlIGEgc2V0dGVyIik7CisgICAgICAgIH0uYmluZCh0aGlzKSwg
dGhpcy5uYW1lICsgIiBpbnRlcmZhY2U6IG5hbWVkIGNvbnN0cnVjdG9yIGxlbmd0aCIpOworCisg
ICAgICAgIHN1YnNldFRlc3RCeUtleSh0aGlzLm5hbWUsIHRlc3QsIGZ1bmN0aW9uKCkKKyAgICAg
ICAgeworICAgICAgICAgICAgLy8gVGhpcyBmdW5jdGlvbiB0ZXN0cyBXZWJJREwgYXMgb2YgMjAx
OS0wMS0xNC4KKworICAgICAgICAgICAgLy8gIjEuIExldCBzdGVwcyBiZSB0aGUgZm9sbG93aW5n
IHN0ZXBzOgorICAgICAgICAgICAgLy8gIiAgICAxLiBJZiBOZXdUYXJnZXQgaXMgdW5kZWZpbmVk
LCB0aGVuIHRocm93IGEgVHlwZUVycm9yLiIKKyAgICAgICAgICAgIHZhciBuYW1lID0gY29uc3Ry
dWN0b3IucmhzLnZhbHVlOworICAgICAgICAgICAgdmFyIGFyZ3MgPSBjb25zdHJ1Y3Rvci5hcmd1
bWVudHMubWFwKGZ1bmN0aW9uKGFyZykgeworICAgICAgICAgICAgICAgIHJldHVybiBjcmVhdGVf
c3VpdGFibGVfb2JqZWN0KGFyZy5pZGxUeXBlKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgYXNzZXJ0X3Rocm93cyhuZXcgVHlwZUVycm9yKCksIGZ1bmN0aW9uKCkgeworICAgICAgICAg
ICAgICAgIHNlbGZbbmFtZV0oLi4uYXJncyk7CisgICAgICAgICAgICB9LmJpbmQodGhpcykpOwor
ICAgICAgICB9LmJpbmQodGhpcyksIHRoaXMubmFtZSArICIgaW50ZXJmYWNlOiBuYW1lZCBjb25z
dHJ1Y3RvciB3aXRob3V0ICduZXcnIik7CisgICAgfQogCiAgICAgc3Vic2V0VGVzdEJ5S2V5KHRo
aXMubmFtZSwgdGVzdCwgZnVuY3Rpb24oKQogICAgIHsKQEAgLTE3MDMsMTEgKzE4NDcsMTAgQEAg
SWRsSW50ZXJmYWNlLnByb3RvdHlwZS50ZXN0X3NlbGYgPSBmdW5jdGlvbigpCiAgICAgICAgICAg
ICByZXR1cm47CiAgICAgICAgIH0KIAotICAgICAgICBhc3NlcnRfb3duX3Byb3BlcnR5KHNlbGYs
IHRoaXMubmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2VsZiBkb2VzIG5vdCBo
YXZlIG93biBwcm9wZXJ0eSAiICsgZm9ybWF0X3ZhbHVlKHRoaXMubmFtZSkpOworICAgICAgICB0
aGlzLmFzc2VydF9pbnRlcmZhY2Vfb2JqZWN0X2V4aXN0cygpOwogCiAgICAgICAgIGlmICh0aGlz
LmlzX2NhbGxiYWNrKCkpIHsKLSAgICAgICAgICAgIGFzc2VydF9mYWxzZSgicHJvdG90eXBlIiBp
biBzZWxmW3RoaXMubmFtZV0sCisgICAgICAgICAgICBhc3NlcnRfZmFsc2UoInByb3RvdHlwZSIg
aW4gdGhpcy5nZXRfaW50ZXJmYWNlX29iamVjdCgpLAogICAgICAgICAgICAgICAgICAgICAgICAg
IHRoaXMubmFtZSArICcgc2hvdWxkIG5vdCBoYXZlIGEgInByb3RvdHlwZSIgcHJvcGVydHknKTsK
ICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpAQCAtMTcxOSw5ICsxODYyLDkgQEAgSWRs
SW50ZXJmYWNlLnByb3RvdHlwZS50ZXN0X3NlbGYgPSBmdW5jdGlvbigpCiAgICAgICAgIC8vIHBy
b3BlcnRpZXMgdGhhdCBjb3JyZXNwb25kIHRvIHRoZSByZWd1bGFyIGF0dHJpYnV0ZXMgYW5kIHJl
Z3VsYXIKICAgICAgICAgLy8gb3BlcmF0aW9ucyBkZWZpbmVkIG9uIHRoZSBpbnRlcmZhY2UsIGFu
ZCBpcyBkZXNjcmliZWQgaW4gbW9yZSBkZXRhaWwKICAgICAgICAgLy8gaW4gc2VjdGlvbiA0LjUu
NCBiZWxvdy4iCi0gICAgICAgIGFzc2VydF9vd25fcHJvcGVydHkoc2VsZlt0aGlzLm5hbWVdLCAi
cHJvdG90eXBlIiwKKyAgICAgICAgYXNzZXJ0X293bl9wcm9wZXJ0eSh0aGlzLmdldF9pbnRlcmZh
Y2Vfb2JqZWN0KCksICJwcm90b3R5cGUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICdp
bnRlcmZhY2UgIicgKyB0aGlzLm5hbWUgKyAnIiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAi
cHJvdG90eXBlIicpOwotICAgICAgICB2YXIgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3Ioc2VsZlt0aGlzLm5hbWVdLCAicHJvdG90eXBlIik7CisgICAgICAgIHZhciBkZXNj
ID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0aGlzLmdldF9pbnRlcmZhY2Vfb2Jq
ZWN0KCksICJwcm90b3R5cGUiKTsKICAgICAgICAgYXNzZXJ0X2ZhbHNlKCJnZXQiIGluIGRlc2Ms
IHRoaXMubmFtZSArICIucHJvdG90eXBlIHNob3VsZCBub3QgaGF2ZSBhIGdldHRlciIpOwogICAg
ICAgICBhc3NlcnRfZmFsc2UoInNldCIgaW4gZGVzYywgdGhpcy5uYW1lICsgIi5wcm90b3R5cGUg
c2hvdWxkIG5vdCBoYXZlIGEgc2V0dGVyIik7CiAgICAgICAgIGFzc2VydF9mYWxzZShkZXNjLndy
aXRhYmxlLCB0aGlzLm5hbWUgKyAiLnByb3RvdHlwZSBzaG91bGQgbm90IGJlIHdyaXRhYmxlIik7
CkBAIC0xNzU0LDM4ICsxODk3LDM5IEBAIElkbEludGVyZmFjZS5wcm90b3R5cGUudGVzdF9zZWxm
ID0gZnVuY3Rpb24oKQogICAgICAgICAvLyAgICAgb2JqZWN0ICVFcnJvclByb3RvdHlwZSUuIgog
ICAgICAgICAvLwogICAgICAgICBpZiAodGhpcy5uYW1lID09PSAiV2luZG93IikgewotICAgICAg
ICAgICAgYXNzZXJ0X2NsYXNzX3N0cmluZyhPYmplY3QuZ2V0UHJvdG90eXBlT2Yoc2VsZlt0aGlz
Lm5hbWVdLnByb3RvdHlwZSksCisgICAgICAgICAgICBhc3NlcnRfY2xhc3Nfc3RyaW5nKE9iamVj
dC5nZXRQcm90b3R5cGVPZih0aGlzLmdldF9pbnRlcmZhY2Vfb2JqZWN0KCkucHJvdG90eXBlKSwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1dpbmRvd1Byb3BlcnRpZXMnLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnQ2xhc3MgbmFtZSBmb3IgcHJvdG90eXBlIG9m
IFdpbmRvdycgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLnByb3RvdHlwZSBp
cyBub3QgIldpbmRvd1Byb3BlcnRpZXMiJyk7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAg
ICB2YXIgaW5oZXJpdF9pbnRlcmZhY2UsIGluaGVyaXRfaW50ZXJmYWNlX2hhc19pbnRlcmZhY2Vf
b2JqZWN0OworICAgICAgICAgICAgdmFyIGluaGVyaXRfaW50ZXJmYWNlLCBpbmhlcml0X2ludGVy
ZmFjZV9pbnRlcmZhY2Vfb2JqZWN0OwogICAgICAgICAgICAgaWYgKHRoaXMuYmFzZSkgewogICAg
ICAgICAgICAgICAgIGluaGVyaXRfaW50ZXJmYWNlID0gdGhpcy5iYXNlOwotICAgICAgICAgICAg
ICAgIGluaGVyaXRfaW50ZXJmYWNlX2hhc19pbnRlcmZhY2Vfb2JqZWN0ID0KLSAgICAgICAgICAg
ICAgICAgICAgIXRoaXMuYXJyYXkKLSAgICAgICAgICAgICAgICAgICAgICAgICAubWVtYmVyc1tp
bmhlcml0X2ludGVyZmFjZV0KLSAgICAgICAgICAgICAgICAgICAgICAgICAuaGFzX2V4dGVuZGVk
X2F0dHJpYnV0ZSgiTm9JbnRlcmZhY2VPYmplY3QiKTsKKyAgICAgICAgICAgICAgICB2YXIgcGFy
ZW50ID0gdGhpcy5hcnJheS5tZW1iZXJzW2luaGVyaXRfaW50ZXJmYWNlXTsKKyAgICAgICAgICAg
ICAgICBpZiAoIXBhcmVudC5oYXNfZXh0ZW5kZWRfYXR0cmlidXRlKCJOb0ludGVyZmFjZU9iamVj
dCIpKSB7CisgICAgICAgICAgICAgICAgICAgIHBhcmVudC5hc3NlcnRfaW50ZXJmYWNlX29iamVj
dF9leGlzdHMoKTsKKyAgICAgICAgICAgICAgICAgICAgaW5oZXJpdF9pbnRlcmZhY2VfaW50ZXJm
YWNlX29iamVjdCA9IHBhcmVudC5nZXRfaW50ZXJmYWNlX29iamVjdCgpOworICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5uYW1lID09PSAiRE9NRXhjZXB0aW9u
IikgewogICAgICAgICAgICAgICAgIGluaGVyaXRfaW50ZXJmYWNlID0gJ0Vycm9yJzsKLSAgICAg
ICAgICAgICAgICBpbmhlcml0X2ludGVyZmFjZV9oYXNfaW50ZXJmYWNlX29iamVjdCA9IHRydWU7
CisgICAgICAgICAgICAgICAgaW5oZXJpdF9pbnRlcmZhY2VfaW50ZXJmYWNlX29iamVjdCA9IHNl
bGYuRXJyb3I7CiAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgIGluaGVyaXRf
aW50ZXJmYWNlID0gJ09iamVjdCc7Ci0gICAgICAgICAgICAgICAgaW5oZXJpdF9pbnRlcmZhY2Vf
aGFzX2ludGVyZmFjZV9vYmplY3QgPSB0cnVlOworICAgICAgICAgICAgICAgIGluaGVyaXRfaW50
ZXJmYWNlX2ludGVyZmFjZV9vYmplY3QgPSBzZWxmLk9iamVjdDsKICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgIGlmIChpbmhlcml0X2ludGVyZmFjZV9oYXNfaW50ZXJmYWNlX29iamVjdCkgewot
ICAgICAgICAgICAgICAgIGFzc2VydF9vd25fcHJvcGVydHkoc2VsZiwgaW5oZXJpdF9pbnRlcmZh
Y2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2hvdWxkIGluaGVyaXQg
ZnJvbSAnICsgaW5oZXJpdF9pbnRlcmZhY2UgKyAnLCBidXQgc2VsZiBoYXMgbm8gc3VjaCBwcm9w
ZXJ0eScpOwotICAgICAgICAgICAgICAgIGFzc2VydF9vd25fcHJvcGVydHkoc2VsZltpbmhlcml0
X2ludGVyZmFjZV0sICdwcm90b3R5cGUnLAorICAgICAgICAgICAgaWYgKGluaGVyaXRfaW50ZXJm
YWNlX2ludGVyZmFjZV9vYmplY3QpIHsKKyAgICAgICAgICAgICAgICBhc3NlcnRfbm90X2VxdWFs
cyhpbmhlcml0X2ludGVyZmFjZV9pbnRlcmZhY2Vfb2JqZWN0LCB1bmRlZmluZWQsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Nob3VsZCBpbmhlcml0IGZyb20gJyArIGluaGVy
aXRfaW50ZXJmYWNlICsgJywgYnV0IHRoZXJlIGlzIG5vIHN1Y2ggcHJvcGVydHknKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnRfb3duX3Byb3BlcnR5KGluaGVyaXRfaW50ZXJmYWNlX2ludGVyZmFj
ZV9vYmplY3QsICdwcm90b3R5cGUnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgJ3Nob3VsZCBpbmhlcml0IGZyb20gJyArIGluaGVyaXRfaW50ZXJmYWNlICsgJywgYnV0IHRo
YXQgb2JqZWN0IGhhcyBubyAicHJvdG90eXBlIiBwcm9wZXJ0eScpOwotICAgICAgICAgICAgICAg
IGFzc2VydF9lcXVhbHMoT2JqZWN0LmdldFByb3RvdHlwZU9mKHNlbGZbdGhpcy5uYW1lXS5wcm90
b3R5cGUpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZltpbmhlcml0X2ludGVy
ZmFjZV0ucHJvdG90eXBlLAorICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoT2JqZWN0Lmdl
dFByb3RvdHlwZU9mKHRoaXMuZ2V0X2ludGVyZmFjZV9vYmplY3QoKS5wcm90b3R5cGUpLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5oZXJpdF9pbnRlcmZhY2VfaW50ZXJmYWNlX29i
amVjdC5wcm90b3R5cGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncHJvdG90eXBl
IG9mICcgKyB0aGlzLm5hbWUgKyAnLnByb3RvdHlwZSBpcyBub3QgJyArIGluaGVyaXRfaW50ZXJm
YWNlICsgJy5wcm90b3R5cGUnKTsKICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAg
ICAgLy8gV2UgY2FuJ3QgdGVzdCB0aGF0IHdlIGdldCB0aGUgY29ycmVjdCBvYmplY3QsIGJlY2F1
c2UgdGhpcyBpcyB0aGUKICAgICAgICAgICAgICAgICAvLyBvbmx5IHdheSB0byBnZXQgb3VyIGhh
bmRzIG9uIGl0LiBXZSBvbmx5IHRlc3QgdGhhdCBpdHMgY2xhc3MKICAgICAgICAgICAgICAgICAv
LyBzdHJpbmcsIGF0IGxlYXN0LCBpcyBjb3JyZWN0LgotICAgICAgICAgICAgICAgIGFzc2VydF9j
bGFzc19zdHJpbmcoT2JqZWN0LmdldFByb3RvdHlwZU9mKHNlbGZbdGhpcy5uYW1lXS5wcm90b3R5
cGUpLAorICAgICAgICAgICAgICAgIGFzc2VydF9jbGFzc19zdHJpbmcoT2JqZWN0LmdldFByb3Rv
dHlwZU9mKHRoaXMuZ2V0X2ludGVyZmFjZV9vYmplY3QoKS5wcm90b3R5cGUpLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5oZXJpdF9pbnRlcmZhY2UgKyAnUHJvdG90eXBl
JywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdDbGFzcyBuYW1lIGZvciBw
cm90b3R5cGUgb2YgJyArIHRoaXMubmFtZSArCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAnLnByb3RvdHlwZSBpcyBub3QgIicgKyBpbmhlcml0X2ludGVyZmFjZSArICdQcm90
b3R5cGUiJyk7CkBAIC0xNzkzLDIwICsxOTM3LDIwIEBAIElkbEludGVyZmFjZS5wcm90b3R5cGUu
dGVzdF9zZWxmID0gZnVuY3Rpb24oKQogICAgICAgICB9CiAKICAgICAgICAgLy8gIlRoZSBjbGFz
cyBzdHJpbmcgb2YgYW4gaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgaXMgdGhlCi0gICAgICAg
IC8vIGNvbmNhdGVuYXRpb24gb2YgdGhlIGludGVyZmFjZeKAmXMgaWRlbnRpZmllciBhbmQgdGhl
IHN0cmluZworICAgICAgICAvLyBjb25jYXRlbmF0aW9uIG9mIHRoZSBpbnRlcmZhY2XigJlzIHF1
YWxpZmllZCBpZGVudGlmaWVyIGFuZCB0aGUgc3RyaW5nCiAgICAgICAgIC8vIOKAnFByb3RvdHlw
ZeKAnS4iCiAKICAgICAgICAgLy8gU2tpcCB0aGVzZSB0ZXN0cyBmb3Igbm93IGR1ZSB0byBhIHNw
ZWNpZmljYXRpb24gaXNzdWUgYWJvdXQKICAgICAgICAgLy8gcHJvdG90eXBlIG5hbWUuCiAgICAg
ICAgIC8vIGh0dHBzOi8vd3d3LnczLm9yZy9CdWdzL1B1YmxpYy9zaG93X2J1Zy5jZ2k/aWQ9Mjgy
NDQKIAotICAgICAgICAvLyBhc3NlcnRfY2xhc3Nfc3RyaW5nKHNlbGZbdGhpcy5uYW1lXS5wcm90
b3R5cGUsIHRoaXMubmFtZSArICJQcm90b3R5cGUiLAorICAgICAgICAvLyBhc3NlcnRfY2xhc3Nf
c3RyaW5nKHRoaXMuZ2V0X2ludGVyZmFjZV9vYmplY3QoKS5wcm90b3R5cGUsIHRoaXMuZ2V0X3F1
YWxpZmllZF9uYW1lKCkgKyAiUHJvdG90eXBlIiwKICAgICAgICAgLy8gICAgICAgICAgICAgICAg
ICAgICAiY2xhc3Mgc3RyaW5nIG9mICIgKyB0aGlzLm5hbWUgKyAiLnByb3RvdHlwZSIpOwogCiAg
ICAgICAgIC8vIFN0cmluZygpIHNob3VsZCBlbmQgdXAgY2FsbGluZyB7fS50b1N0cmluZyBpZiBu
b3RoaW5nIGRlZmluZXMgYQogICAgICAgICAvLyBzdHJpbmdpZmllci4KICAgICAgICAgaWYgKCF0
aGlzLmhhc19zdHJpbmdpZmllcigpKSB7Ci0gICAgICAgICAgICAvLyBhc3NlcnRfZXF1YWxzKFN0
cmluZyhzZWxmW3RoaXMubmFtZV0ucHJvdG90eXBlKSwgIltvYmplY3QgIiArIHRoaXMubmFtZSAr
ICJQcm90b3R5cGVdIiwKKyAgICAgICAgICAgIC8vIGFzc2VydF9lcXVhbHMoU3RyaW5nKHRoaXMu
Z2V0X2ludGVyZmFjZV9vYmplY3QoKS5wcm90b3R5cGUpLCAiW29iamVjdCAiICsgdGhpcy5nZXRf
cXVhbGlmaWVkX25hbWUoKSArICJQcm90b3R5cGVdIiwKICAgICAgICAgICAgIC8vICAgICAgICAg
IlN0cmluZygiICsgdGhpcy5uYW1lICsgIi5wcm90b3R5cGUpIik7CiAgICAgICAgIH0KICAgICB9
LmJpbmQodGhpcyksIHRoaXMubmFtZSArICIgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3Bl
cnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QiKTsKQEAgLTE4MTgsNyArMTk2Miw3
IEBAIElkbEludGVyZmFjZS5wcm90b3R5cGUudGVzdF9zZWxmID0gZnVuY3Rpb24oKQogICAgIC8v
IHByb3RvdHlwZSBleG90aWMgb2JqZWN0LiIKICAgICAvLyBodHRwczovL2hleWNhbS5naXRodWIu
aW8vd2ViaWRsLyNpbnRlcmZhY2UtcHJvdG90eXBlLW9iamVjdAogICAgIGlmICh0aGlzLmlzX2ds
b2JhbCgpKSB7Ci0gICAgICAgIHRoaXMudGVzdF9pbW11dGFibGVfcHJvdG90eXBlKCJpbnRlcmZh
Y2UgcHJvdG90eXBlIG9iamVjdCIsIHNlbGZbdGhpcy5uYW1lXS5wcm90b3R5cGUpOworICAgICAg
ICB0aGlzLnRlc3RfaW1tdXRhYmxlX3Byb3RvdHlwZSgiaW50ZXJmYWNlIHByb3RvdHlwZSBvYmpl
Y3QiLCB0aGlzLmdldF9pbnRlcmZhY2Vfb2JqZWN0KCkucHJvdG90eXBlKTsKICAgICB9CiAKICAg
ICBzdWJzZXRUZXN0QnlLZXkodGhpcy5uYW1lLCB0ZXN0LCBmdW5jdGlvbigpCkBAIC0xODI3LDE2
ICsxOTcxLDE1IEBAIElkbEludGVyZmFjZS5wcm90b3R5cGUudGVzdF9zZWxmID0gZnVuY3Rpb24o
KQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAgICAgYXNzZXJ0X293bl9w
cm9wZXJ0eShzZWxmLCB0aGlzLm5hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgInNl
bGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIiArIGZvcm1hdF92YWx1ZSh0aGlzLm5hbWUp
KTsKKyAgICAgICAgdGhpcy5hc3NlcnRfaW50ZXJmYWNlX29iamVjdF9leGlzdHMoKTsKIAogICAg
ICAgICBpZiAodGhpcy5pc19jYWxsYmFjaygpKSB7Ci0gICAgICAgICAgICBhc3NlcnRfZmFsc2Uo
InByb3RvdHlwZSIgaW4gc2VsZlt0aGlzLm5hbWVdLAorICAgICAgICAgICAgYXNzZXJ0X2ZhbHNl
KCJwcm90b3R5cGUiIGluIHRoaXMuZ2V0X2ludGVyZmFjZV9vYmplY3QoKSwKICAgICAgICAgICAg
ICAgICAgICAgICAgICB0aGlzLm5hbWUgKyAnIHNob3VsZCBub3QgaGF2ZSBhICJwcm90b3R5cGUi
IHByb3BlcnR5Jyk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAotICAgICAgICBh
c3NlcnRfb3duX3Byb3BlcnR5KHNlbGZbdGhpcy5uYW1lXSwgInByb3RvdHlwZSIsCisgICAgICAg
IGFzc2VydF9vd25fcHJvcGVydHkodGhpcy5nZXRfaW50ZXJmYWNlX29iamVjdCgpLCAicHJvdG90
eXBlIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaW50ZXJmYWNlICInICsgdGhpcy5u
YW1lICsgJyIgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgInByb3RvdHlwZSInKTsKIAogICAg
ICAgICAvLyAiSWYgdGhlIFtOb0ludGVyZmFjZU9iamVjdF0gZXh0ZW5kZWQgYXR0cmlidXRlIHdh
cyBub3Qgc3BlY2lmaWVkIG9uCkBAIC0xODQ0LDE1ICsxOTg3LDE1IEBAIElkbEludGVyZmFjZS5w
cm90b3R5cGUudGVzdF9zZWxmID0gZnVuY3Rpb24oKQogICAgICAgICAvLyBwcm9wZXJ0eSBuYW1l
ZCDigJxjb25zdHJ1Y3RvcuKAnSB3aXRoIGF0dHJpYnV0ZXMgeyBbW1dyaXRhYmxlXV06IHRydWUs
CiAgICAgICAgIC8vIFtbRW51bWVyYWJsZV1dOiBmYWxzZSwgW1tDb25maWd1cmFibGVdXTogdHJ1
ZSB9IHdob3NlIHZhbHVlIGlzIGEKICAgICAgICAgLy8gcmVmZXJlbmNlIHRvIHRoZSBpbnRlcmZh
Y2Ugb2JqZWN0IGZvciB0aGUgaW50ZXJmYWNlLiIKLSAgICAgICAgYXNzZXJ0X293bl9wcm9wZXJ0
eShzZWxmW3RoaXMubmFtZV0ucHJvdG90eXBlLCAiY29uc3RydWN0b3IiLAorICAgICAgICBhc3Nl
cnRfb3duX3Byb3BlcnR5KHRoaXMuZ2V0X2ludGVyZmFjZV9vYmplY3QoKS5wcm90b3R5cGUsICJj
b25zdHJ1Y3RvciIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5uYW1lICsgJy5w
cm90b3R5cGUgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgImNvbnN0cnVjdG9yIicpOwotICAg
ICAgICB2YXIgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Ioc2VsZlt0aGlz
Lm5hbWVdLnByb3RvdHlwZSwgImNvbnN0cnVjdG9yIik7CisgICAgICAgIHZhciBkZXNjID0gT2Jq
ZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0aGlzLmdldF9pbnRlcmZhY2Vfb2JqZWN0KCku
cHJvdG90eXBlLCAiY29uc3RydWN0b3IiKTsKICAgICAgICAgYXNzZXJ0X2ZhbHNlKCJnZXQiIGlu
IGRlc2MsIHRoaXMubmFtZSArICIucHJvdG90eXBlLmNvbnN0cnVjdG9yIHNob3VsZCBub3QgaGF2
ZSBhIGdldHRlciIpOwogICAgICAgICBhc3NlcnRfZmFsc2UoInNldCIgaW4gZGVzYywgdGhpcy5u
YW1lICsgIi5wcm90b3R5cGUuY29uc3RydWN0b3Igc2hvdWxkIG5vdCBoYXZlIGEgc2V0dGVyIik7
CiAgICAgICAgIGFzc2VydF90cnVlKGRlc2Mud3JpdGFibGUsIHRoaXMubmFtZSArICIucHJvdG90
eXBlLmNvbnN0cnVjdG9yIHNob3VsZCBiZSB3cml0YWJsZSIpOwogICAgICAgICBhc3NlcnRfZmFs
c2UoZGVzYy5lbnVtZXJhYmxlLCB0aGlzLm5hbWUgKyAiLnByb3RvdHlwZS5jb25zdHJ1Y3RvciBz
aG91bGQgbm90IGJlIGVudW1lcmFibGUiKTsKICAgICAgICAgYXNzZXJ0X3RydWUoZGVzYy5jb25m
aWd1cmFibGUsIHRoaXMubmFtZSArICIucHJvdG90eXBlLmNvbnN0cnVjdG9yIHNob3VsZCBiZSBj
b25maWd1cmFibGUiKTsKLSAgICAgICAgYXNzZXJ0X2VxdWFscyhzZWxmW3RoaXMubmFtZV0ucHJv
dG90eXBlLmNvbnN0cnVjdG9yLCBzZWxmW3RoaXMubmFtZV0sCisgICAgICAgIGFzc2VydF9lcXVh
bHModGhpcy5nZXRfaW50ZXJmYWNlX29iamVjdCgpLnByb3RvdHlwZS5jb25zdHJ1Y3RvciwgdGhp
cy5nZXRfaW50ZXJmYWNlX29iamVjdCgpLAogICAgICAgICAgICAgICAgICAgICAgIHRoaXMubmFt
ZSArICcucHJvdG90eXBlLmNvbnN0cnVjdG9yIGlzIG5vdCB0aGUgc2FtZSBvYmplY3QgYXMgJyAr
IHRoaXMubmFtZSk7CiAgICAgfS5iaW5kKHRoaXMpLCB0aGlzLm5hbWUgKyAnIGludGVyZmFjZTog
ZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0XCdz
ICJjb25zdHJ1Y3RvciIgcHJvcGVydHknKTsKIApAQCAtMTg2MywxNiArMjAwNiwxNSBAQCBJZGxJ
bnRlcmZhY2UucHJvdG90eXBlLnRlc3Rfc2VsZiA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJl
dHVybjsKICAgICAgICAgfQogCi0gICAgICAgIGFzc2VydF9vd25fcHJvcGVydHkoc2VsZiwgdGhp
cy5uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzZWxmIGRvZXMgbm90IGhhdmUg
b3duIHByb3BlcnR5ICIgKyBmb3JtYXRfdmFsdWUodGhpcy5uYW1lKSk7CisgICAgICAgIHRoaXMu
YXNzZXJ0X2ludGVyZmFjZV9vYmplY3RfZXhpc3RzKCk7CiAKICAgICAgICAgaWYgKHRoaXMuaXNf
Y2FsbGJhY2soKSkgewotICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKCJwcm90b3R5cGUiIGluIHNl
bGZbdGhpcy5uYW1lXSwKKyAgICAgICAgICAgIGFzc2VydF9mYWxzZSgicHJvdG90eXBlIiBpbiB0
aGlzLmdldF9pbnRlcmZhY2Vfb2JqZWN0KCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhp
cy5uYW1lICsgJyBzaG91bGQgbm90IGhhdmUgYSAicHJvdG90eXBlIiBwcm9wZXJ0eScpOwogICAg
ICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAgICAgYXNzZXJ0X293bl9wcm9wZXJ0
eShzZWxmW3RoaXMubmFtZV0sICJwcm90b3R5cGUiLAorICAgICAgICBhc3NlcnRfb3duX3Byb3Bl
cnR5KHRoaXMuZ2V0X2ludGVyZmFjZV9vYmplY3QoKSwgInByb3RvdHlwZSIsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgJ2ludGVyZmFjZSAiJyArIHRoaXMubmFtZSArICciIGRvZXMgbm90
IGhhdmUgb3duIHByb3BlcnR5ICJwcm90b3R5cGUiJyk7CiAKICAgICAgICAgLy8gSWYgdGhlIGlu
dGVyZmFjZSBoYXMgYW55IG1lbWJlciBkZWNsYXJlZCB3aXRoIHRoZSBbVW5zY29wYWJsZV0gZXh0
ZW5kZWQKQEAgLTE4ODEsNyArMjAyMyw3IEBAIElkbEludGVyZmFjZS5wcm90b3R5cGUudGVzdF9z
ZWxmID0gZnVuY3Rpb24oKQogICAgICAgICAvLyB7IFtbV3JpdGFibGVdXTogZmFsc2UsIFtbRW51
bWVyYWJsZV1dOiBmYWxzZSwgW1tDb25maWd1cmFibGVdXTogdHJ1ZSB9LAogICAgICAgICAvLyBh
bmQgd2hvc2UgdmFsdWUgaXMgYW4gb2JqZWN0IGNyZWF0ZWQgYXMgZm9sbG93cy4uLgogICAgICAg
ICB2YXIgdW5zY29wYWJsZXMgPSB0aGlzLmdldF91bnNjb3BhYmxlcygpLm1hcChtID0+IG0ubmFt
ZSk7Ci0gICAgICAgIHZhciBwcm90byA9IHNlbGZbdGhpcy5uYW1lXS5wcm90b3R5cGU7CisgICAg
ICAgIHZhciBwcm90byA9IHRoaXMuZ2V0X2ludGVyZmFjZV9vYmplY3QoKS5wcm90b3R5cGU7CiAg
ICAgICAgIGlmICh1bnNjb3BhYmxlcy5sZW5ndGggIT0gMCkgewogICAgICAgICAgICAgYXNzZXJ0
X293bl9wcm9wZXJ0eSgKICAgICAgICAgICAgICAgICBwcm90bywgU3ltYm9sLnVuc2NvcGFibGVz
LApAQCAtMTkxMiwxNiArMjA1NCwxNCBAQCBJZGxJbnRlcmZhY2UucHJvdG90eXBlLnRlc3Rfc2Vs
ZiA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm5h
bWUgKyAnLnByb3RvdHlwZVtTeW1ib2wudW5zY29wYWJsZXNdIGhhcyB1bmV4cGVjdGVkIHByb3Bl
cnR5ICInICsgcHJvcCArICciJyk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0gZWxzZSB7Ci0g
ICAgICAgICAgICBhc3NlcnRfZXF1YWxzKE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Io
c2VsZlt0aGlzLm5hbWVdLnByb3RvdHlwZSwgU3ltYm9sLnVuc2NvcGFibGVzKSwKKyAgICAgICAg
ICAgIGFzc2VydF9lcXVhbHMoT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0aGlzLmdl
dF9pbnRlcmZhY2Vfb2JqZWN0KCkucHJvdG90eXBlLCBTeW1ib2wudW5zY29wYWJsZXMpLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICB1bmRlZmluZWQsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHRoaXMubmFtZSArICcucHJvdG90eXBlIHNob3VsZCBub3QgaGF2ZSBAQHVuc2NvcGFibGVz
Jyk7CiAgICAgICAgIH0KICAgICB9LmJpbmQodGhpcyksIHRoaXMubmFtZSArICcgaW50ZXJmYWNl
OiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3Rc
J3MgQEB1bnNjb3BhYmxlcyBwcm9wZXJ0eScpOwogfTsKIAotLy9AfQogSWRsSW50ZXJmYWNlLnBy
b3RvdHlwZS50ZXN0X2ltbXV0YWJsZV9wcm90b3R5cGUgPSBmdW5jdGlvbih0eXBlLCBvYmopCi0v
L0B7CiB7CiAgICAgaWYgKHR5cGVvZiBPYmplY3Quc2V0UHJvdG90eXBlT2YgIT09ICJmdW5jdGlv
biIpIHsKICAgICAgICAgcmV0dXJuOwpAQCAtMjAyMyw5ICsyMTYzLDcgQEAgSWRsSW50ZXJmYWNl
LnByb3RvdHlwZS50ZXN0X2ltbXV0YWJsZV9wcm90b3R5cGUgPSBmdW5jdGlvbih0eXBlLCBvYmop
CiAgICAgICAgICJzaG91bGQgcmV0dXJuIHRydWUiKTsKIH07CiAKLS8vQH0KIElkbEludGVyZmFj
ZS5wcm90b3R5cGUudGVzdF9tZW1iZXJfY29uc3QgPSBmdW5jdGlvbihtZW1iZXIpCi0vL0B7CiB7
CiAgICAgaWYgKCF0aGlzLmhhc19jb25zdGFudHMoKSkgewogICAgICAgICB0aHJvdyBuZXcgSWRs
SGFybmVzc0Vycm9yKCJJbnRlcm5hbCBlcnJvcjogdGVzdF9tZW1iZXJfY29uc3QgY2FsbGVkIHdp
dGhvdXQgYW55IGNvbnN0YW50cyIpOwpAQCAtMjAzMywyMSArMjE3MSwyMCBAQCBJZGxJbnRlcmZh
Y2UucHJvdG90eXBlLnRlc3RfbWVtYmVyX2NvbnN0ID0gZnVuY3Rpb24obWVtYmVyKQogCiAgICAg
c3Vic2V0VGVzdEJ5S2V5KHRoaXMubmFtZSwgdGVzdCwgZnVuY3Rpb24oKQogICAgIHsKLSAgICAg
ICAgYXNzZXJ0X293bl9wcm9wZXJ0eShzZWxmLCB0aGlzLm5hbWUsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgInNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIiArIGZvcm1hdF92
YWx1ZSh0aGlzLm5hbWUpKTsKKyAgICAgICAgdGhpcy5hc3NlcnRfaW50ZXJmYWNlX29iamVjdF9l
eGlzdHMoKTsKIAogICAgICAgICAvLyAiRm9yIGVhY2ggY29uc3RhbnQgZGVmaW5lZCBvbiBhbiBp
bnRlcmZhY2UgQSwgdGhlcmUgbXVzdCBiZQogICAgICAgICAvLyBhIGNvcnJlc3BvbmRpbmcgcHJv
cGVydHkgb24gdGhlIGludGVyZmFjZSBvYmplY3QsIGlmIGl0CiAgICAgICAgIC8vIGV4aXN0cy4i
Ci0gICAgICAgIGFzc2VydF9vd25fcHJvcGVydHkoc2VsZlt0aGlzLm5hbWVdLCBtZW1iZXIubmFt
ZSk7CisgICAgICAgIGFzc2VydF9vd25fcHJvcGVydHkodGhpcy5nZXRfaW50ZXJmYWNlX29iamVj
dCgpLCBtZW1iZXIubmFtZSk7CiAgICAgICAgIC8vICJUaGUgdmFsdWUgb2YgdGhlIHByb3BlcnR5
IGlzIHRoYXQgd2hpY2ggaXMgb2J0YWluZWQgYnkKICAgICAgICAgLy8gY29udmVydGluZyB0aGUg
Y29uc3RhbnTigJlzIElETCB2YWx1ZSB0byBhbiBFQ01BU2NyaXB0CiAgICAgICAgIC8vIHZhbHVl
LiIKLSAgICAgICAgYXNzZXJ0X2VxdWFscyhzZWxmW3RoaXMubmFtZV1bbWVtYmVyLm5hbWVdLCBj
b25zdFZhbHVlKG1lbWJlci52YWx1ZSksCisgICAgICAgIGFzc2VydF9lcXVhbHModGhpcy5nZXRf
aW50ZXJmYWNlX29iamVjdCgpW21lbWJlci5uYW1lXSwgY29uc3RWYWx1ZShtZW1iZXIudmFsdWUp
LAogICAgICAgICAgICAgICAgICAgICAgICJwcm9wZXJ0eSBoYXMgd3JvbmcgdmFsdWUiKTsKICAg
ICAgICAgLy8gIlRoZSBwcm9wZXJ0eSBoYXMgYXR0cmlidXRlcyB7IFtbV3JpdGFibGVdXTogZmFs
c2UsCiAgICAgICAgIC8vIFtbRW51bWVyYWJsZV1dOiB0cnVlLCBbW0NvbmZpZ3VyYWJsZV1dOiBm
YWxzZSB9LiIKLSAgICAgICAgdmFyIGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yKHNlbGZbdGhpcy5uYW1lXSwgbWVtYmVyLm5hbWUpOworICAgICAgICB2YXIgZGVzYyA9IE9i
amVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodGhpcy5nZXRfaW50ZXJmYWNlX29iamVjdCgp
LCBtZW1iZXIubmFtZSk7CiAgICAgICAgIGFzc2VydF9mYWxzZSgiZ2V0IiBpbiBkZXNjLCAicHJv
cGVydHkgc2hvdWxkIG5vdCBoYXZlIGEgZ2V0dGVyIik7CiAgICAgICAgIGFzc2VydF9mYWxzZSgi
c2V0IiBpbiBkZXNjLCAicHJvcGVydHkgc2hvdWxkIG5vdCBoYXZlIGEgc2V0dGVyIik7CiAgICAg
ICAgIGFzc2VydF9mYWxzZShkZXNjLndyaXRhYmxlLCAicHJvcGVydHkgc2hvdWxkIG5vdCBiZSB3
cml0YWJsZSIpOwpAQCAtMjA1OSwyMiArMjE5NiwyMSBAQCBJZGxJbnRlcmZhY2UucHJvdG90eXBl
LnRlc3RfbWVtYmVyX2NvbnN0ID0gZnVuY3Rpb24obWVtYmVyKQogICAgIC8vIGV4aXN0IG9uIHRo
ZSBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdC4iCiAgICAgc3Vic2V0VGVzdEJ5S2V5KHRoaXMu
bmFtZSwgdGVzdCwgZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgYXNzZXJ0X293bl9wcm9wZXJ0
eShzZWxmLCB0aGlzLm5hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgInNlbGYgZG9l
cyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIiArIGZvcm1hdF92YWx1ZSh0aGlzLm5hbWUpKTsKKyAg
ICAgICAgdGhpcy5hc3NlcnRfaW50ZXJmYWNlX29iamVjdF9leGlzdHMoKTsKIAogICAgICAgICBp
ZiAodGhpcy5pc19jYWxsYmFjaygpKSB7Ci0gICAgICAgICAgICBhc3NlcnRfZmFsc2UoInByb3Rv
dHlwZSIgaW4gc2VsZlt0aGlzLm5hbWVdLAorICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKCJwcm90
b3R5cGUiIGluIHRoaXMuZ2V0X2ludGVyZmFjZV9vYmplY3QoKSwKICAgICAgICAgICAgICAgICAg
ICAgICAgICB0aGlzLm5hbWUgKyAnIHNob3VsZCBub3QgaGF2ZSBhICJwcm90b3R5cGUiIHByb3Bl
cnR5Jyk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAotICAgICAgICBhc3NlcnRf
b3duX3Byb3BlcnR5KHNlbGZbdGhpcy5uYW1lXSwgInByb3RvdHlwZSIsCisgICAgICAgIGFzc2Vy
dF9vd25fcHJvcGVydHkodGhpcy5nZXRfaW50ZXJmYWNlX29iamVjdCgpLCAicHJvdG90eXBlIiwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaW50ZXJmYWNlICInICsgdGhpcy5uYW1lICsg
JyIgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgInByb3RvdHlwZSInKTsKIAotICAgICAgICBh
c3NlcnRfb3duX3Byb3BlcnR5KHNlbGZbdGhpcy5uYW1lXS5wcm90b3R5cGUsIG1lbWJlci5uYW1l
KTsKLSAgICAgICAgYXNzZXJ0X2VxdWFscyhzZWxmW3RoaXMubmFtZV0ucHJvdG90eXBlW21lbWJl
ci5uYW1lXSwgY29uc3RWYWx1ZShtZW1iZXIudmFsdWUpLAorICAgICAgICBhc3NlcnRfb3duX3By
b3BlcnR5KHRoaXMuZ2V0X2ludGVyZmFjZV9vYmplY3QoKS5wcm90b3R5cGUsIG1lbWJlci5uYW1l
KTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyh0aGlzLmdldF9pbnRlcmZhY2Vfb2JqZWN0KCkucHJv
dG90eXBlW21lbWJlci5uYW1lXSwgY29uc3RWYWx1ZShtZW1iZXIudmFsdWUpLAogICAgICAgICAg
ICAgICAgICAgICAgICJwcm9wZXJ0eSBoYXMgd3JvbmcgdmFsdWUiKTsKLSAgICAgICAgdmFyIGRl
c2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHNlbGZbdGhpcy5uYW1lXSwgbWVt
YmVyLm5hbWUpOworICAgICAgICB2YXIgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3IodGhpcy5nZXRfaW50ZXJmYWNlX29iamVjdCgpLCBtZW1iZXIubmFtZSk7CiAgICAgICAg
IGFzc2VydF9mYWxzZSgiZ2V0IiBpbiBkZXNjLCAicHJvcGVydHkgc2hvdWxkIG5vdCBoYXZlIGEg
Z2V0dGVyIik7CiAgICAgICAgIGFzc2VydF9mYWxzZSgic2V0IiBpbiBkZXNjLCAicHJvcGVydHkg
c2hvdWxkIG5vdCBoYXZlIGEgc2V0dGVyIik7CiAgICAgICAgIGFzc2VydF9mYWxzZShkZXNjLndy
aXRhYmxlLCAicHJvcGVydHkgc2hvdWxkIG5vdCBiZSB3cml0YWJsZSIpOwpAQCAtMjA4NCw5ICsy
MjIwLDcgQEAgSWRsSW50ZXJmYWNlLnByb3RvdHlwZS50ZXN0X21lbWJlcl9jb25zdCA9IGZ1bmN0
aW9uKG1lbWJlcikKIH07CiAKIAotLy9AfQogSWRsSW50ZXJmYWNlLnByb3RvdHlwZS50ZXN0X21l
bWJlcl9hdHRyaWJ1dGUgPSBmdW5jdGlvbihtZW1iZXIpCi0vL0B7CiAgIHsKICAgICBpZiAoIXNo
b3VsZFJ1blN1YlRlc3QodGhpcy5uYW1lKSkgewogICAgICAgICByZXR1cm47CkBAIC0yMDk5LDEz
ICsyMjMzLDEyIEBAIElkbEludGVyZmFjZS5wcm90b3R5cGUudGVzdF9tZW1iZXJfYXR0cmlidXRl
ID0gZnVuY3Rpb24obWVtYmVyKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAg
ICAgICAgYXNzZXJ0X293bl9wcm9wZXJ0eShzZWxmLCB0aGlzLm5hbWUsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgInNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIiArIGZvcm1h
dF92YWx1ZSh0aGlzLm5hbWUpKTsKLSAgICAgICAgYXNzZXJ0X293bl9wcm9wZXJ0eShzZWxmW3Ro
aXMubmFtZV0sICJwcm90b3R5cGUiLAorICAgICAgICB0aGlzLmFzc2VydF9pbnRlcmZhY2Vfb2Jq
ZWN0X2V4aXN0cygpOworICAgICAgICBhc3NlcnRfb3duX3Byb3BlcnR5KHRoaXMuZ2V0X2ludGVy
ZmFjZV9vYmplY3QoKSwgInByb3RvdHlwZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
J2ludGVyZmFjZSAiJyArIHRoaXMubmFtZSArICciIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5
ICJwcm90b3R5cGUiJyk7CiAKLSAgICAgICAgaWYgKG1lbWJlclsic3RhdGljIl0pIHsKLSAgICAg
ICAgICAgIGFzc2VydF9vd25fcHJvcGVydHkoc2VsZlt0aGlzLm5hbWVdLCBtZW1iZXIubmFtZSwK
KyAgICAgICAgaWYgKG1lbWJlci5zcGVjaWFsID09PSAic3RhdGljIikgeworICAgICAgICAgICAg
YXNzZXJ0X293bl9wcm9wZXJ0eSh0aGlzLmdldF9pbnRlcmZhY2Vfb2JqZWN0KCksIG1lbWJlci5u
YW1lLAogICAgICAgICAgICAgICAgICJUaGUgaW50ZXJmYWNlIG9iamVjdCBtdXN0IGhhdmUgYSBw
cm9wZXJ0eSAiICsKICAgICAgICAgICAgICAgICBmb3JtYXRfdmFsdWUobWVtYmVyLm5hbWUpKTsK
ICAgICAgICAgICAgIGFfdGVzdC5kb25lKCk7CkBAIC0yMTE4LDcgKzIyNTEsNyBAQCBJZGxJbnRl
cmZhY2UucHJvdG90eXBlLnRlc3RfbWVtYmVyX2F0dHJpYnV0ZSA9IGZ1bmN0aW9uKG1lbWJlcikK
ICAgICAgICAgICAgIGFzc2VydF9vd25fcHJvcGVydHkoc2VsZiwgbWVtYmVyLm5hbWUsCiAgICAg
ICAgICAgICAgICAgIlRoZSBnbG9iYWwgb2JqZWN0IG11c3QgaGF2ZSBhIHByb3BlcnR5ICIgKwog
ICAgICAgICAgICAgICAgIGZvcm1hdF92YWx1ZShtZW1iZXIubmFtZSkpOwotICAgICAgICAgICAg
YXNzZXJ0X2ZhbHNlKG1lbWJlci5uYW1lIGluIHNlbGZbdGhpcy5uYW1lXS5wcm90b3R5cGUsCisg
ICAgICAgICAgICBhc3NlcnRfZmFsc2UobWVtYmVyLm5hbWUgaW4gdGhpcy5nZXRfaW50ZXJmYWNl
X29iamVjdCgpLnByb3RvdHlwZSwKICAgICAgICAgICAgICAgICAiVGhlIHByb3RvdHlwZSBvYmpl
Y3Qgc2hvdWxkIG5vdCBoYXZlIGEgcHJvcGVydHkgIiArCiAgICAgICAgICAgICAgICAgZm9ybWF0
X3ZhbHVlKG1lbWJlci5uYW1lKSk7CiAKQEAgLTIxNDYsNDIgKzIyNzksNDAgQEAgSWRsSW50ZXJm
YWNlLnByb3RvdHlwZS50ZXN0X21lbWJlcl9hdHRyaWJ1dGUgPSBmdW5jdGlvbihtZW1iZXIpCiAg
ICAgICAgICAgICAvLyBzaW5jZSBpdCB3aWxsIGNhbGwgZG9uZSgpIG9uIGFfdGVzdC4KICAgICAg
ICAgICAgIHRoaXMuZG9faW50ZXJmYWNlX2F0dHJpYnV0ZV9hc3NlcnRzKHNlbGYsIG1lbWJlciwg
YV90ZXN0KTsKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGFzc2VydF90cnVlKG1lbWJl
ci5uYW1lIGluIHNlbGZbdGhpcy5uYW1lXS5wcm90b3R5cGUsCisgICAgICAgICAgICBhc3NlcnRf
dHJ1ZShtZW1iZXIubmFtZSBpbiB0aGlzLmdldF9pbnRlcmZhY2Vfb2JqZWN0KCkucHJvdG90eXBl
LAogICAgICAgICAgICAgICAgICJUaGUgcHJvdG90eXBlIG9iamVjdCBtdXN0IGhhdmUgYSBwcm9w
ZXJ0eSAiICsKICAgICAgICAgICAgICAgICBmb3JtYXRfdmFsdWUobWVtYmVyLm5hbWUpKTsKIAog
ICAgICAgICAgICAgaWYgKCFtZW1iZXIuaGFzX2V4dGVuZGVkX2F0dHJpYnV0ZSgiTGVuaWVudFRo
aXMiKSkgewogICAgICAgICAgICAgICAgIGlmIChtZW1iZXIuaWRsVHlwZS5nZW5lcmljICE9PSAi
UHJvbWlzZSIpIHsKICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X3Rocm93cyhuZXcgVHlwZUVy
cm9yKCksIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICAgICAgICAgICAgc2VsZlt0aGlzLm5h
bWVdLnByb3RvdHlwZVttZW1iZXIubmFtZV07CisgICAgICAgICAgICAgICAgICAgICAgICB0aGlz
LmdldF9pbnRlcmZhY2Vfb2JqZWN0KCkucHJvdG90eXBlW21lbWJlci5uYW1lXTsKICAgICAgICAg
ICAgICAgICAgICAgfS5iaW5kKHRoaXMpLCAiZ2V0dGluZyBwcm9wZXJ0eSBvbiBwcm90b3R5cGUg
b2JqZWN0IG11c3QgdGhyb3cgVHlwZUVycm9yIik7CiAgICAgICAgICAgICAgICAgICAgIC8vIGRv
X2ludGVyZmFjZV9hdHRyaWJ1dGVfYXNzZXJ0cyBtdXN0IGJlIHRoZSBsYXN0IHRoaW5nIHdlCiAg
ICAgICAgICAgICAgICAgICAgIC8vIGRvLCBzaW5jZSBpdCB3aWxsIGNhbGwgZG9uZSgpIG9uIGFf
dGVzdC4KLSAgICAgICAgICAgICAgICAgICAgdGhpcy5kb19pbnRlcmZhY2VfYXR0cmlidXRlX2Fz
c2VydHMoc2VsZlt0aGlzLm5hbWVdLnByb3RvdHlwZSwgbWVtYmVyLCBhX3Rlc3QpOworICAgICAg
ICAgICAgICAgICAgICB0aGlzLmRvX2ludGVyZmFjZV9hdHRyaWJ1dGVfYXNzZXJ0cyh0aGlzLmdl
dF9pbnRlcmZhY2Vfb2JqZWN0KCkucHJvdG90eXBlLCBtZW1iZXIsIGFfdGVzdCk7CiAgICAgICAg
ICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgcHJvbWlzZV9yZWplY3RzKGFf
dGVzdCwgbmV3IFR5cGVFcnJvcigpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgc2VsZlt0aGlzLm5hbWVdLnByb3RvdHlwZVttZW1iZXIubmFtZV0pCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmdldF9pbnRlcmZhY2Vfb2JqZWN0KCkucHJvdG90
eXBlW21lbWJlci5uYW1lXSkKICAgICAgICAgICAgICAgICAgICAgICAgIC50aGVuKGZ1bmN0aW9u
KCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGRvX2ludGVyZmFjZV9hdHRyaWJ1
dGVfYXNzZXJ0cyBtdXN0IGJlIHRoZSBsYXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Ly8gdGhpbmcgd2UgZG8sIHNpbmNlIGl0IHdpbGwgY2FsbCBkb25lKCkgb24gYV90ZXN0LgotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZG9faW50ZXJmYWNlX2F0dHJpYnV0ZV9hc3Nl
cnRzKHNlbGZbdGhpcy5uYW1lXS5wcm90b3R5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdGhpcy5kb19pbnRlcmZhY2VfYXR0cmlidXRlX2Fzc2VydHModGhpcy5nZXRfaW50ZXJmYWNl
X29iamVjdCgpLnByb3RvdHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZW1iZXIsIGFfdGVzdCk7CiAgICAgICAgICAg
ICAgICAgICAgICAgICB9LmJpbmQodGhpcykpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzZWxmW3RoaXMubmFt
ZV0ucHJvdG90eXBlW21lbWJlci5uYW1lXSwgdW5kZWZpbmVkLAorICAgICAgICAgICAgICAgIGFz
c2VydF9lcXVhbHModGhpcy5nZXRfaW50ZXJmYWNlX29iamVjdCgpLnByb3RvdHlwZVttZW1iZXIu
bmFtZV0sIHVuZGVmaW5lZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJnZXR0aW5n
IHByb3BlcnR5IG9uIHByb3RvdHlwZSBvYmplY3QgbXVzdCByZXR1cm4gdW5kZWZpbmVkIik7CiAg
ICAgICAgICAgICAgIC8vIGRvX2ludGVyZmFjZV9hdHRyaWJ1dGVfYXNzZXJ0cyBtdXN0IGJlIHRo
ZSBsYXN0IHRoaW5nIHdlIGRvLAogICAgICAgICAgICAgICAvLyBzaW5jZSBpdCB3aWxsIGNhbGwg
ZG9uZSgpIG9uIGFfdGVzdC4KLSAgICAgICAgICAgICAgdGhpcy5kb19pbnRlcmZhY2VfYXR0cmli
dXRlX2Fzc2VydHMoc2VsZlt0aGlzLm5hbWVdLnByb3RvdHlwZSwgbWVtYmVyLCBhX3Rlc3QpOwor
ICAgICAgICAgICAgICB0aGlzLmRvX2ludGVyZmFjZV9hdHRyaWJ1dGVfYXNzZXJ0cyh0aGlzLmdl
dF9pbnRlcmZhY2Vfb2JqZWN0KCkucHJvdG90eXBlLCBtZW1iZXIsIGFfdGVzdCk7CiAgICAgICAg
ICAgICB9CiAgICAgICAgIH0KICAgICB9LmJpbmQodGhpcykpOwogfTsKIAotLy9AfQogSWRsSW50
ZXJmYWNlLnByb3RvdHlwZS50ZXN0X21lbWJlcl9vcGVyYXRpb24gPSBmdW5jdGlvbihtZW1iZXIp
Ci0vL0B7CiB7CiAgICAgaWYgKCFzaG91bGRSdW5TdWJUZXN0KHRoaXMubmFtZSkpIHsKICAgICAg
ICAgcmV0dXJuOwpAQCAtMjIwMCwxNyArMjMzMSwxNiBAQCBJZGxJbnRlcmZhY2UucHJvdG90eXBl
LnRlc3RfbWVtYmVyX29wZXJhdGlvbiA9IGZ1bmN0aW9uKG1lbWJlcikKICAgICAgICAgICAgIHJl
dHVybjsKICAgICAgICAgfQogCi0gICAgICAgIGFzc2VydF9vd25fcHJvcGVydHkoc2VsZiwgdGhp
cy5uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzZWxmIGRvZXMgbm90IGhhdmUg
b3duIHByb3BlcnR5ICIgKyBmb3JtYXRfdmFsdWUodGhpcy5uYW1lKSk7CisgICAgICAgIHRoaXMu
YXNzZXJ0X2ludGVyZmFjZV9vYmplY3RfZXhpc3RzKCk7CiAKICAgICAgICAgaWYgKHRoaXMuaXNf
Y2FsbGJhY2soKSkgewotICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKCJwcm90b3R5cGUiIGluIHNl
bGZbdGhpcy5uYW1lXSwKKyAgICAgICAgICAgIGFzc2VydF9mYWxzZSgicHJvdG90eXBlIiBpbiB0
aGlzLmdldF9pbnRlcmZhY2Vfb2JqZWN0KCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhp
cy5uYW1lICsgJyBzaG91bGQgbm90IGhhdmUgYSAicHJvdG90eXBlIiBwcm9wZXJ0eScpOwogICAg
ICAgICAgICAgYV90ZXN0LmRvbmUoKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQog
Ci0gICAgICAgIGFzc2VydF9vd25fcHJvcGVydHkoc2VsZlt0aGlzLm5hbWVdLCAicHJvdG90eXBl
IiwKKyAgICAgICAgYXNzZXJ0X293bl9wcm9wZXJ0eSh0aGlzLmdldF9pbnRlcmZhY2Vfb2JqZWN0
KCksICJwcm90b3R5cGUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICdpbnRlcmZhY2Ug
IicgKyB0aGlzLm5hbWUgKyAnIiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAicHJvdG90eXBl
IicpOwogCiAgICAgICAgIC8vICJGb3IgZWFjaCB1bmlxdWUgaWRlbnRpZmllciBvZiBhbiBleHBv
c2VkIG9wZXJhdGlvbiBkZWZpbmVkIG9uIHRoZQpAQCAtMjIyNCwxMCArMjM1NCwxMCBAQCBJZGxJ
bnRlcmZhY2UucHJvdG90eXBlLnRlc3RfbWVtYmVyX29wZXJhdGlvbiA9IGZ1bmN0aW9uKG1lbWJl
cikKICAgICAgICAgdmFyIG1lbWJlckhvbGRlck9iamVjdDsKICAgICAgICAgLy8gIiogSWYgdGhl
IG9wZXJhdGlvbiBpcyBzdGF0aWMsIHRoZW4gdGhlIHByb3BlcnR5IGV4aXN0cyBvbiB0aGUKICAg
ICAgICAgLy8gICAgaW50ZXJmYWNlIG9iamVjdC4iCi0gICAgICAgIGlmIChtZW1iZXJbInN0YXRp
YyJdKSB7Ci0gICAgICAgICAgICBhc3NlcnRfb3duX3Byb3BlcnR5KHNlbGZbdGhpcy5uYW1lXSwg
bWVtYmVyLm5hbWUsCisgICAgICAgIGlmIChtZW1iZXIuc3BlY2lhbCA9PT0gInN0YXRpYyIpIHsK
KyAgICAgICAgICAgIGFzc2VydF9vd25fcHJvcGVydHkodGhpcy5nZXRfaW50ZXJmYWNlX29iamVj
dCgpLCBtZW1iZXIubmFtZSwKICAgICAgICAgICAgICAgICAgICAgImludGVyZmFjZSBvYmplY3Qg
bWlzc2luZyBzdGF0aWMgb3BlcmF0aW9uIik7Ci0gICAgICAgICAgICBtZW1iZXJIb2xkZXJPYmpl
Y3QgPSBzZWxmW3RoaXMubmFtZV07CisgICAgICAgICAgICBtZW1iZXJIb2xkZXJPYmplY3QgPSB0
aGlzLmdldF9pbnRlcmZhY2Vfb2JqZWN0KCk7CiAgICAgICAgIC8vICIqIE90aGVyd2lzZSwgWy4u
Ll0gaWYgdGhlIGludGVyZmFjZSB3YXMgZGVjbGFyZWQgd2l0aCB0aGUgW0dsb2JhbF0KICAgICAg
ICAgLy8gICAgZXh0ZW5kZWQgYXR0cmlidXRlLCB0aGVuIHRoZSBwcm9wZXJ0eSBleGlzdHMKICAg
ICAgICAgLy8gICAgb24gZXZlcnkgb2JqZWN0IHRoYXQgaW1wbGVtZW50cyB0aGUgaW50ZXJmYWNl
LiIKQEAgLTIyMzgsOSArMjM2OCw5IEBAIElkbEludGVyZmFjZS5wcm90b3R5cGUudGVzdF9tZW1i
ZXJfb3BlcmF0aW9uID0gZnVuY3Rpb24obWVtYmVyKQogICAgICAgICAvLyAiKiBPdGhlcndpc2Us
IHRoZSBwcm9wZXJ0eSBleGlzdHMgc29sZWx5IG9uIHRoZSBpbnRlcmZhY2XigJlzCiAgICAgICAg
IC8vICAgIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0LiIKICAgICAgICAgfSBlbHNlIHsKLSAg
ICAgICAgICAgIGFzc2VydF9vd25fcHJvcGVydHkoc2VsZlt0aGlzLm5hbWVdLnByb3RvdHlwZSwg
bWVtYmVyLm5hbWUsCisgICAgICAgICAgICBhc3NlcnRfb3duX3Byb3BlcnR5KHRoaXMuZ2V0X2lu
dGVyZmFjZV9vYmplY3QoKS5wcm90b3R5cGUsIG1lbWJlci5uYW1lLAogICAgICAgICAgICAgICAg
ICAgICAiaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgbWlzc2luZyBub24tc3RhdGljIG9wZXJh
dGlvbiIpOwotICAgICAgICAgICAgbWVtYmVySG9sZGVyT2JqZWN0ID0gc2VsZlt0aGlzLm5hbWVd
LnByb3RvdHlwZTsKKyAgICAgICAgICAgIG1lbWJlckhvbGRlck9iamVjdCA9IHRoaXMuZ2V0X2lu
dGVyZmFjZV9vYmplY3QoKS5wcm90b3R5cGU7CiAgICAgICAgIH0KICAgICAgICAgdGhpcy5kb19t
ZW1iZXJfdW5zY29wYWJsZV9hc3NlcnRzKG1lbWJlcik7CiAgICAgICAgIHRoaXMuZG9fbWVtYmVy
X29wZXJhdGlvbl9hc3NlcnRzKG1lbWJlckhvbGRlck9iamVjdCwgbWVtYmVyLCBhX3Rlc3QpOwpA
QCAtMjI1NSw3ICsyMzg1LDcgQEAgSWRsSW50ZXJmYWNlLnByb3RvdHlwZS5kb19tZW1iZXJfdW5z
Y29wYWJsZV9hc3NlcnRzID0gZnVuY3Rpb24obWVtYmVyKQogICAgICAgICByZXR1cm47CiAgICAg
fQogCi0gICAgdmFyIHVuc2NvcGFibGVzID0gc2VsZlt0aGlzLm5hbWVdLnByb3RvdHlwZVtTeW1i
b2wudW5zY29wYWJsZXNdOworICAgIHZhciB1bnNjb3BhYmxlcyA9IHRoaXMuZ2V0X2ludGVyZmFj
ZV9vYmplY3QoKS5wcm90b3R5cGVbU3ltYm9sLnVuc2NvcGFibGVzXTsKICAgICB2YXIgcHJvcCA9
IG1lbWJlci5uYW1lOwogICAgIHZhciBwcm9wRGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3IodW5zY29wYWJsZXMsIHByb3ApOwogICAgIGFzc2VydF9lcXVhbHModHlwZW9mIHBy
b3BEZXNjLCAib2JqZWN0IiwKQEAgLTIyNzQsOSArMjQwNCw3IEBAIElkbEludGVyZmFjZS5wcm90
b3R5cGUuZG9fbWVtYmVyX3Vuc2NvcGFibGVfYXNzZXJ0cyA9IGZ1bmN0aW9uKG1lbWJlcikKICAg
ICAgICAgICAgICAgICAgIHRoaXMubmFtZSArICcucHJvdG90eXBlW1N5bWJvbC51bnNjb3BhYmxl
c10uJyArIHByb3AgKyAnIG11c3QgaGF2ZSB0aGUgdmFsdWUgYHRydWVgJyk7CiB9OwogCi0vL0B9
CiBJZGxJbnRlcmZhY2UucHJvdG90eXBlLmRvX21lbWJlcl9vcGVyYXRpb25fYXNzZXJ0cyA9IGZ1
bmN0aW9uKG1lbWJlckhvbGRlck9iamVjdCwgbWVtYmVyLCBhX3Rlc3QpCi0vL0B7CiB7CiAgICAg
dmFyIGRvbmUgPSBhX3Rlc3QuZG9uZS5iaW5kKGFfdGVzdCk7CiAgICAgdmFyIG9wZXJhdGlvblVu
Zm9yZ2VhYmxlID0gbWVtYmVyLmlzVW5mb3JnZWFibGU7CkBAIC0yMzE5LDcgKzI0NDcsNyBAQCBJ
ZGxJbnRlcmZhY2UucHJvdG90eXBlLmRvX21lbWJlcl9vcGVyYXRpb25fYXNzZXJ0cyA9IGZ1bmN0
aW9uKG1lbWJlckhvbGRlck9iamVjdAogICAgIC8vIGNoZWNrIGZvciBnbG9iYWxzLCBzaW5jZSBv
dGhlcndpc2Ugd2UnbGwgaW52b2tlIHdpbmRvdy5jbG9zZSgpLiAgQW5kIHdlCiAgICAgLy8gaGF2
ZSB0byBza2lwIHRoaXMgdGVzdCBmb3IgYW55dGhpbmcgdGhhdCBvbiB0aGUgcHJvdG8gY2hhaW4g
b2YgInNlbGYiLAogICAgIC8vIHNpbmNlIHRoYXQgZG9lcyBpbiBmYWN0IGhhdmUgaW1wbGljaXQt
dGhpcyBiZWhhdmlvci4KLSAgICBpZiAoIW1lbWJlclsic3RhdGljIl0pIHsKKyAgICBpZiAobWVt
YmVyLnNwZWNpYWwgIT09ICJzdGF0aWMiKSB7CiAgICAgICAgIHZhciBjYjsKICAgICAgICAgaWYg
KCF0aGlzLmlzX2dsb2JhbCgpICYmCiAgICAgICAgICAgICBtZW1iZXJIb2xkZXJPYmplY3RbbWVt
YmVyLm5hbWVdICE9IHNlbGZbbWVtYmVyLm5hbWVdKQpAQCAtMjM0MywyNCArMjQ3MSw3IEBAIElk
bEludGVyZmFjZS5wcm90b3R5cGUuZG9fbWVtYmVyX29wZXJhdGlvbl9hc3NlcnRzID0gZnVuY3Rp
b24obWVtYmVySG9sZGVyT2JqZWN0CiAgICAgfQogfQogCi0vL0B9Ci1JZGxJbnRlcmZhY2UucHJv
dG90eXBlLmFkZF9pdGVyYWJsZV9tZW1iZXJzID0gZnVuY3Rpb24obWVtYmVyKQotLy9Aewotewot
ICAgIHRoaXMubWVtYmVycy5wdXNoKG5ldyBJZGxJbnRlcmZhY2VNZW1iZXIoCi0gICAgICAgIHsg
dHlwZTogIm9wZXJhdGlvbiIsIG5hbWU6ICJlbnRyaWVzIiwgaWRsVHlwZTogIml0ZXJhdG9yIiwg
YXJndW1lbnRzOiBbXX0pKTsKLSAgICB0aGlzLm1lbWJlcnMucHVzaChuZXcgSWRsSW50ZXJmYWNl
TWVtYmVyKAotICAgICAgICB7IHR5cGU6ICJvcGVyYXRpb24iLCBuYW1lOiAia2V5cyIsIGlkbFR5
cGU6ICJpdGVyYXRvciIsIGFyZ3VtZW50czogW119KSk7Ci0gICAgdGhpcy5tZW1iZXJzLnB1c2go
bmV3IElkbEludGVyZmFjZU1lbWJlcigKLSAgICAgICAgeyB0eXBlOiAib3BlcmF0aW9uIiwgbmFt
ZTogInZhbHVlcyIsIGlkbFR5cGU6ICJpdGVyYXRvciIsIGFyZ3VtZW50czogW119KSk7Ci0gICAg
dGhpcy5tZW1iZXJzLnB1c2gobmV3IElkbEludGVyZmFjZU1lbWJlcigKLSAgICAgICAgeyB0eXBl
OiAib3BlcmF0aW9uIiwgbmFtZTogImZvckVhY2giLCBpZGxUeXBlOiAidm9pZCIsCi0gICAgICAg
ICAgYXJndW1lbnRzOgotICAgICAgICAgIFt7IG5hbWU6ICJjYWxsYmFjayIsIGlkbFR5cGU6IHtp
ZGxUeXBlOiAiZnVuY3Rpb24ifX0sCi0gICAgICAgICAgIHsgbmFtZTogInRoaXNWYWx1ZSIsIGlk
bFR5cGU6IHtpZGxUeXBlOiAiYW55In0sIG9wdGlvbmFsOiB0cnVlfV19KSk7Ci19OwotCi1JZGxJ
bnRlcmZhY2UucHJvdG90eXBlLnRlc3RfdG9fanNvbl9vcGVyYXRpb24gPSBmdW5jdGlvbihtZW1i
ZXJIb2xkZXJPYmplY3QsIG1lbWJlcikgeworSWRsSW50ZXJmYWNlLnByb3RvdHlwZS50ZXN0X3Rv
X2pzb25fb3BlcmF0aW9uID0gZnVuY3Rpb24oZGVzYywgbWVtYmVySG9sZGVyT2JqZWN0LCBtZW1i
ZXIpIHsKICAgICB2YXIgaW5zdGFuY2VOYW1lID0gbWVtYmVySG9sZGVyT2JqZWN0ICYmIG1lbWJl
ckhvbGRlck9iamVjdC5jb25zdHJ1Y3Rvci5uYW1lCiAgICAgICAgIHx8IG1lbWJlci5uYW1lICsg
IiBvYmplY3QiOwogICAgIGlmIChtZW1iZXIuaGFzX2V4dGVuZGVkX2F0dHJpYnV0ZSgiRGVmYXVs
dCIpKSB7CkBAIC0yMzc2LDQ2ICsyNDg3LDQzIEBAIElkbEludGVyZmFjZS5wcm90b3R5cGUudGVz
dF90b19qc29uX29wZXJhdGlvbiA9IGZ1bmN0aW9uKG1lbWJlckhvbGRlck9iamVjdCwgbWVtCiAg
ICAgICAgICAgICAgICAgdGhpcy5hcnJheS5hc3NlcnRfdHlwZV9pcyhqc29uW2tdLCB0eXBlKTsK
ICAgICAgICAgICAgICAgICBkZWxldGUganNvbltrXTsKICAgICAgICAgICAgIH0sIHRoaXMpOwot
ICAgICAgICB9LmJpbmQodGhpcyksICJUZXN0IGRlZmF1bHQgdG9KU09OIG9wZXJhdGlvbiBvZiAi
ICsgaW5zdGFuY2VOYW1lKTsKKyAgICAgICAgfS5iaW5kKHRoaXMpLCB0aGlzLm5hbWUgKyAiIGlu
dGVyZmFjZTogZGVmYXVsdCB0b0pTT04gb3BlcmF0aW9uIG9uICIgKyBkZXNjKTsKICAgICB9IGVs
c2UgewogICAgICAgICBzdWJzZXRUZXN0QnlLZXkodGhpcy5uYW1lLCB0ZXN0LCBmdW5jdGlvbigp
IHsKICAgICAgICAgICAgIGFzc2VydF90cnVlKHRoaXMuYXJyYXkuaXNfanNvbl90eXBlKG1lbWJl
ci5pZGxUeXBlKSwgSlNPTi5zdHJpbmdpZnkobWVtYmVyLmlkbFR5cGUpICsgIiBpcyBub3QgYW4g
YXBwcm9wcmlhdGUgcmV0dXJuIHZhbHVlIGZvciB0aGUgdG9KU09OIG9wZXJhdGlvbiBvZiAiICsg
aW5zdGFuY2VOYW1lKTsKICAgICAgICAgICAgIHRoaXMuYXJyYXkuYXNzZXJ0X3R5cGVfaXMobWVt
YmVySG9sZGVyT2JqZWN0LnRvSlNPTigpLCBtZW1iZXIuaWRsVHlwZSk7Ci0gICAgICAgIH0uYmlu
ZCh0aGlzKSwgIlRlc3QgdG9KU09OIG9wZXJhdGlvbiBvZiAiICsgaW5zdGFuY2VOYW1lKTsKKyAg
ICAgICAgfS5iaW5kKHRoaXMpLCB0aGlzLm5hbWUgKyAiIGludGVyZmFjZTogdG9KU09OIG9wZXJh
dGlvbiBvbiAiICsgZGVzYyk7CiAgICAgfQogfTsKIAotLy9AfQogSWRsSW50ZXJmYWNlLnByb3Rv
dHlwZS50ZXN0X21lbWJlcl9pdGVyYWJsZSA9IGZ1bmN0aW9uKG1lbWJlcikKLS8vQHsKIHsKLSAg
ICB2YXIgaW50ZXJmYWNlTmFtZSA9IHRoaXMubmFtZTsKLSAgICB2YXIgaXNQYWlySXRlcmF0b3Ig
PSBtZW1iZXIuaWRsVHlwZS5sZW5ndGggPT09IDI7CiAgICAgc3Vic2V0VGVzdEJ5S2V5KHRoaXMu
bmFtZSwgdGVzdCwgZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgdmFyIGRlc2NyaXB0b3IgPSBP
YmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHNlbGZbaW50ZXJmYWNlTmFtZV0ucHJvdG90
eXBlLCBTeW1ib2wuaXRlcmF0b3IpOwotICAgICAgICBhc3NlcnRfdHJ1ZShkZXNjcmlwdG9yLndy
aXRhYmxlLCAicHJvcGVydHkgc2hvdWxkIGJlIHdyaXRhYmxlIik7Ci0gICAgICAgIGFzc2VydF90
cnVlKGRlc2NyaXB0b3IuY29uZmlndXJhYmxlLCAicHJvcGVydHkgc2hvdWxkIGJlIGNvbmZpZ3Vy
YWJsZSIpOwotICAgICAgICBhc3NlcnRfZmFsc2UoZGVzY3JpcHRvci5lbnVtZXJhYmxlLCAicHJv
cGVydHkgc2hvdWxkIG5vdCBiZSBlbnVtZXJhYmxlIik7Ci0gICAgICAgIGFzc2VydF9lcXVhbHMo
c2VsZltpbnRlcmZhY2VOYW1lXS5wcm90b3R5cGVbU3ltYm9sLml0ZXJhdG9yXS5uYW1lLCBpc1Bh
aXJJdGVyYXRvciA/ICJlbnRyaWVzIiA6ICJ2YWx1ZXMiLCAiQEBpdGVyYXRvciBmdW5jdGlvbiBk
b2VzIG5vdCBoYXZlIHRoZSByaWdodCBuYW1lIik7Ci0gICAgfSwgIlRlc3RpbmcgU3ltYm9sLml0
ZXJhdG9yIHByb3BlcnR5IG9mIGl0ZXJhYmxlIGludGVyZmFjZSAiICsgaW50ZXJmYWNlTmFtZSk7
Ci0KLSAgICBpZiAoaXNQYWlySXRlcmF0b3IpIHsKLSAgICAgICAgc3Vic2V0VGVzdEJ5S2V5KHRo
aXMubmFtZSwgdGVzdCwgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNl
bGZbaW50ZXJmYWNlTmFtZV0ucHJvdG90eXBlW1N5bWJvbC5pdGVyYXRvcl0sIHNlbGZbaW50ZXJm
YWNlTmFtZV0ucHJvdG90eXBlWyJlbnRyaWVzIl0sICJlbnRyaWVzIG1ldGhvZCBpcyBub3QgdGhl
IHNhbWUgYXMgQEBpdGVyYXRvciIpOwotICAgICAgICB9LCAiVGVzdGluZyBwYWlyIGl0ZXJhYmxl
IGludGVyZmFjZSAiICsgaW50ZXJmYWNlTmFtZSk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgc3Vi
c2V0VGVzdEJ5S2V5KHRoaXMubmFtZSwgdGVzdCwgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBb
ImVudHJpZXMiLCAia2V5cyIsICJ2YWx1ZXMiLCAiZm9yRWFjaCIsIFN5bWJvbC5JdGVyYXRvcl0u
Zm9yRWFjaChmdW5jdGlvbihwcm9wZXJ0eSkgewotICAgICAgICAgICAgICAgIGFzc2VydF9lcXVh
bHMoc2VsZltpbnRlcmZhY2VOYW1lXS5wcm90b3R5cGVbcHJvcGVydHldLCBBcnJheS5wcm90b3R5
cGVbcHJvcGVydHldLCBwcm9wZXJ0eSArICIgZnVuY3Rpb24gaXMgbm90IHRoZSBzYW1lIGFzIEFy
cmF5IG9uZSIpOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0sICJUZXN0aW5nIHZhbHVlIGl0
ZXJhYmxlIGludGVyZmFjZSAiICsgaW50ZXJmYWNlTmFtZSk7Ci0gICAgfQorICAgICAgICB2YXIg
aXNQYWlySXRlcmF0b3IgPSBtZW1iZXIuaWRsVHlwZS5sZW5ndGggPT09IDI7CisgICAgICAgIHZh
ciBwcm90byA9IHRoaXMuZ2V0X2ludGVyZmFjZV9vYmplY3QoKS5wcm90b3R5cGU7CisgICAgICAg
IHZhciBkZXNjcmlwdG9yID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihwcm90bywg
U3ltYm9sLml0ZXJhdG9yKTsKKworICAgICAgICBhc3NlcnRfdHJ1ZShkZXNjcmlwdG9yLndyaXRh
YmxlLCAiQEBpdGVyYXRvciBwcm9wZXJ0eSBzaG91bGQgYmUgd3JpdGFibGUiKTsKKyAgICAgICAg
YXNzZXJ0X3RydWUoZGVzY3JpcHRvci5jb25maWd1cmFibGUsICJAQGl0ZXJhdG9yIHByb3BlcnR5
IHNob3VsZCBiZSBjb25maWd1cmFibGUiKTsKKyAgICAgICAgYXNzZXJ0X2ZhbHNlKGRlc2NyaXB0
b3IuZW51bWVyYWJsZSwgIkBAaXRlcmF0b3IgcHJvcGVydHkgc2hvdWxkIG5vdCBiZSBlbnVtZXJh
YmxlIik7CisgICAgICAgIGFzc2VydF9lcXVhbHModHlwZW9mIGRlc2NyaXB0b3IudmFsdWUsICJm
dW5jdGlvbiIsICJAQGl0ZXJhdG9yIHByb3BlcnR5IHNob3VsZCBiZSBhIGZ1bmN0aW9uIik7Cisg
ICAgICAgIGFzc2VydF9lcXVhbHMoZGVzY3JpcHRvci52YWx1ZS5sZW5ndGgsIDAsICJAQGl0ZXJh
dG9yIGZ1bmN0aW9uIG9iamVjdCBsZW5ndGggc2hvdWxkIGJlIDAiKTsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyhkZXNjcmlwdG9yLnZhbHVlLm5hbWUsIGlzUGFpckl0ZXJhdG9yID8gImVudHJpZXMi
IDogInZhbHVlcyIsICJAQGl0ZXJhdG9yIGZ1bmN0aW9uIG9iamVjdCBzaG91bGQgaGF2ZSB0aGUg
cmlnaHQgbmFtZSIpOworCisgICAgICAgIGlmIChpc1BhaXJJdGVyYXRvcikgeworICAgICAgICAg
ICAgYXNzZXJ0X2VxdWFscyhwcm90b1siZW50cmllcyJdLCBwcm90b1tTeW1ib2wuaXRlcmF0b3Jd
LCAiZW50cmllcyBtZXRob2Qgc2hvdWxkIGJlIHRoZSBzYW1lIGFzIEBAaXRlcmF0b3IgbWV0aG9k
Iik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHByb3RvW1N5
bWJvbC5pdGVyYXRvcl0sIEFycmF5LnByb3RvdHlwZVtTeW1ib2wuaXRlcmF0b3JdLCAiQEBpdGVy
YXRvciBtZXRob2Qgc2hvdWxkIGJlIHRoZSBzYW1lIGFzIEFycmF5IHByb3RvdHlwZSdzIik7Cisg
ICAgICAgICAgICBbImVudHJpZXMiLCAia2V5cyIsICJ2YWx1ZXMiLCAiZm9yRWFjaCIsIFN5bWJv
bC5pdGVyYXRvcl0uZm9yRWFjaChmdW5jdGlvbihwcm9wZXJ0eSkgeworICAgICAgICAgICAgICAg
IHZhciBwcm9wZXJ0eU5hbWUgPSBwcm9wZXJ0eSA9PT0gU3ltYm9sLml0ZXJhdG9yID8gIkBAaXRl
cmF0b3IiIDogcHJvcGVydHk7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhwcm90b1tw
cm9wZXJ0eV0sIEFycmF5LnByb3RvdHlwZVtwcm9wZXJ0eV0sIHByb3BlcnR5TmFtZSArICIgbWV0
aG9kIHNob3VsZCBiZSB0aGUgc2FtZSBhcyBBcnJheSBwcm90b3R5cGUncyIpOworICAgICAgICAg
ICAgfS5iaW5kKHRoaXMpKTsKKyAgICAgICAgfQorICAgIH0uYmluZCh0aGlzKSwgdGhpcy5uYW1l
ICsgIiBpbnRlcmZhY2U6IGl0ZXJhYmxlPCIgKyBtZW1iZXIuaWRsVHlwZS5tYXAoZnVuY3Rpb24o
dCkgeyByZXR1cm4gdC5pZGxUeXBlOyB9KS5qb2luKCIsICIpICsgIj4iKTsKIH07CiAKLS8vQH0K
IElkbEludGVyZmFjZS5wcm90b3R5cGUudGVzdF9tZW1iZXJfc3RyaW5naWZpZXIgPSBmdW5jdGlv
bihtZW1iZXIpCi0vL0B7CiB7CiAgICAgc3Vic2V0VGVzdEJ5S2V5KHRoaXMubmFtZSwgdGVzdCwg
ZnVuY3Rpb24oKQogICAgIHsKQEAgLTI0MjMsMjEgKzI1MzEsMjAgQEAgSWRsSW50ZXJmYWNlLnBy
b3RvdHlwZS50ZXN0X21lbWJlcl9zdHJpbmdpZmllciA9IGZ1bmN0aW9uKG1lbWJlcikKICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIGFzc2VydF9vd25fcHJvcGVydHko
c2VsZiwgdGhpcy5uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzZWxmIGRvZXMg
bm90IGhhdmUgb3duIHByb3BlcnR5ICIgKyBmb3JtYXRfdmFsdWUodGhpcy5uYW1lKSk7CisgICAg
ICAgIHRoaXMuYXNzZXJ0X2ludGVyZmFjZV9vYmplY3RfZXhpc3RzKCk7CiAKICAgICAgICAgaWYg
KHRoaXMuaXNfY2FsbGJhY2soKSkgewotICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKCJwcm90b3R5
cGUiIGluIHNlbGZbdGhpcy5uYW1lXSwKKyAgICAgICAgICAgIGFzc2VydF9mYWxzZSgicHJvdG90
eXBlIiBpbiB0aGlzLmdldF9pbnRlcmZhY2Vfb2JqZWN0KCksCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgdGhpcy5uYW1lICsgJyBzaG91bGQgbm90IGhhdmUgYSAicHJvdG90eXBlIiBwcm9wZXJ0
eScpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAgICAgYXNzZXJ0X293
bl9wcm9wZXJ0eShzZWxmW3RoaXMubmFtZV0sICJwcm90b3R5cGUiLAorICAgICAgICBhc3NlcnRf
b3duX3Byb3BlcnR5KHRoaXMuZ2V0X2ludGVyZmFjZV9vYmplY3QoKSwgInByb3RvdHlwZSIsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ludGVyZmFjZSAiJyArIHRoaXMubmFtZSArICci
IGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJwcm90b3R5cGUiJyk7CiAKICAgICAgICAgLy8g
Ii4gLiAuIHRoZSBwcm9wZXJ0eSBleGlzdHMgb24gdGhlIGludGVyZmFjZSBwcm90b3R5cGUgb2Jq
ZWN0LiIKLSAgICAgICAgdmFyIGludGVyZmFjZVByb3RvdHlwZU9iamVjdCA9IHNlbGZbdGhpcy5u
YW1lXS5wcm90b3R5cGU7Ci0gICAgICAgIGFzc2VydF9vd25fcHJvcGVydHkoc2VsZlt0aGlzLm5h
bWVdLnByb3RvdHlwZSwgInRvU3RyaW5nIiwKKyAgICAgICAgdmFyIGludGVyZmFjZVByb3RvdHlw
ZU9iamVjdCA9IHRoaXMuZ2V0X2ludGVyZmFjZV9vYmplY3QoKS5wcm90b3R5cGU7CisgICAgICAg
IGFzc2VydF9vd25fcHJvcGVydHkoaW50ZXJmYWNlUHJvdG90eXBlT2JqZWN0LCAidG9TdHJpbmci
LAogICAgICAgICAgICAgICAgICJpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCBtaXNzaW5nIG5v
bi1zdGF0aWMgb3BlcmF0aW9uIik7CiAKICAgICAgICAgdmFyIHN0cmluZ2lmaWVyVW5mb3JnZWFi
bGUgPSBtZW1iZXIuaXNVbmZvcmdlYWJsZTsKQEAgLTI0NjMsNyArMjU3MCw3IEBAIElkbEludGVy
ZmFjZS5wcm90b3R5cGUudGVzdF9tZW1iZXJfc3RyaW5naWZpZXIgPSBmdW5jdGlvbihtZW1iZXIp
CiAKICAgICAgICAgLy8gIkxldCBPIGJlIHRoZSByZXN1bHQgb2YgY2FsbGluZyBUb09iamVjdCBv
biB0aGUgdGhpcyB2YWx1ZS4iCiAgICAgICAgIGFzc2VydF90aHJvd3MobmV3IFR5cGVFcnJvcigp
LCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIHNlbGZbdGhpcy5uYW1lXS5wcm90b3R5cGUudG9T
dHJpbmcuYXBwbHkobnVsbCwgW10pOworICAgICAgICAgICAgaW50ZXJmYWNlUHJvdG90eXBlT2Jq
ZWN0LnRvU3RyaW5nLmFwcGx5KG51bGwsIFtdKTsKICAgICAgICAgfSwgImNhbGxpbmcgc3RyaW5n
aWZpZXIgd2l0aCB0aGlzID0gbnVsbCBkaWRuJ3QgdGhyb3cgVHlwZUVycm9yIik7CiAKICAgICAg
ICAgLy8gIklmIE8gaXMgbm90IGFuIG9iamVjdCB0aGF0IGltcGxlbWVudHMgdGhlIGludGVyZmFj
ZSBvbiB3aGljaCB0aGUKQEAgLTI0NzIsMjggKzI1NzksMTMgQEAgSWRsSW50ZXJmYWNlLnByb3Rv
dHlwZS50ZXN0X21lbWJlcl9zdHJpbmdpZmllciA9IGZ1bmN0aW9uKG1lbWJlcikKICAgICAgICAg
Ly8gVE9ETzogVGVzdCBhIHBsYXRmb3JtIG9iamVjdCB0aGF0IGltcGxlbWVudHMgc29tZSBvdGhl
cgogICAgICAgICAvLyBpbnRlcmZhY2UuICAoSGF2ZSB0byBiZSBzdXJlIHRvIGdldCBpbmhlcml0
YW5jZSByaWdodC4pCiAgICAgICAgIGFzc2VydF90aHJvd3MobmV3IFR5cGVFcnJvcigpLCBmdW5j
dGlvbigpIHsKLSAgICAgICAgICAgIHNlbGZbdGhpcy5uYW1lXS5wcm90b3R5cGUudG9TdHJpbmcu
YXBwbHkoe30sIFtdKTsKKyAgICAgICAgICAgIGludGVyZmFjZVByb3RvdHlwZU9iamVjdC50b1N0
cmluZy5hcHBseSh7fSwgW10pOwogICAgICAgICB9LCAiY2FsbGluZyBzdHJpbmdpZmllciB3aXRo
IHRoaXMgPSB7fSBkaWRuJ3QgdGhyb3cgVHlwZUVycm9yIik7CiAgICAgfS5iaW5kKHRoaXMpLCB0
aGlzLm5hbWUgKyAiIGludGVyZmFjZTogc3RyaW5naWZpZXIiKTsKIH07CiAKLS8vQH0KIElkbElu
dGVyZmFjZS5wcm90b3R5cGUudGVzdF9tZW1iZXJzID0gZnVuY3Rpb24oKQotLy9AewogewotICAg
IGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5tZW1iZXJzLmxlbmd0aDsgaSsrKQotICAgIHsKLSAg
ICAgICAgdmFyIG1lbWJlciA9IHRoaXMubWVtYmVyc1tpXTsKLSAgICAgICAgc3dpdGNoIChtZW1i
ZXIudHlwZSkgewotICAgICAgICBjYXNlICJpdGVyYWJsZSI6Ci0gICAgICAgICAgICB0aGlzLmFk
ZF9pdGVyYWJsZV9tZW1iZXJzKG1lbWJlcik7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAg
Ly8gVE9ETzogYWRkIHNldGxpa2UgYW5kIG1hcGxpa2UgaGFuZGxpbmcuCi0gICAgICAgIGRlZmF1
bHQ6Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgIH0KLQogICAgIGZvciAodmFy
IGkgPSAwOyBpIDwgdGhpcy5tZW1iZXJzLmxlbmd0aDsgaSsrKQogICAgIHsKICAgICAgICAgdmFy
IG1lbWJlciA9IHRoaXMubWVtYmVyc1tpXTsKQEAgLTI1MDQsMTAgKzI1OTYsMTAgQEAgSWRsSW50
ZXJmYWNlLnByb3RvdHlwZS50ZXN0X21lbWJlcnMgPSBmdW5jdGlvbigpCiAgICAgICAgIGlmICgh
ZXhwb3NlZF9pbihleHBvc3VyZV9zZXQobWVtYmVyLCB0aGlzLmV4cG9zdXJlU2V0KSkpIHsKICAg
ICAgICAgICAgIHN1YnNldFRlc3RCeUtleSh0aGlzLm5hbWUsIHRlc3QsIGZ1bmN0aW9uKCkgewog
ICAgICAgICAgICAgICAgIC8vIEl0J3Mgbm90IGV4cG9zZWQsIHNvIHdlIHNob3VsZG4ndCBmaW5k
IGl0IGFueXdoZXJlLgotICAgICAgICAgICAgICAgIGFzc2VydF9mYWxzZShtZW1iZXIubmFtZSBp
biBzZWxmW3RoaXMubmFtZV0sCisgICAgICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKG1lbWJlci5u
YW1lIGluIHRoaXMuZ2V0X2ludGVyZmFjZV9vYmplY3QoKSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIlRoZSBpbnRlcmZhY2Ugb2JqZWN0IG11c3Qgbm90IGhhdmUgYSBwcm9wZXJ0eSAi
ICsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0X3ZhbHVlKG1lbWJlci5uYW1l
KSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKG1lbWJlci5uYW1lIGluIHNlbGZbdGhp
cy5uYW1lXS5wcm90b3R5cGUsCisgICAgICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKG1lbWJlci5u
YW1lIGluIHRoaXMuZ2V0X2ludGVyZmFjZV9vYmplY3QoKS5wcm90b3R5cGUsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJUaGUgcHJvdG90eXBlIG9iamVjdCBtdXN0IG5vdCBoYXZlIGEg
cHJvcGVydHkgIiArCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdF92YWx1ZSht
ZW1iZXIubmFtZSkpOwogICAgICAgICAgICAgfS5iaW5kKHRoaXMpLCB0aGlzLm5hbWUgKyAiIGlu
dGVyZmFjZTogbWVtYmVyICIgKyBtZW1iZXIubmFtZSk7CkBAIC0yNTI2LDcgKzI2MTgsNyBAQCBJ
ZGxJbnRlcmZhY2UucHJvdG90eXBlLnRlc3RfbWVtYmVycyA9IGZ1bmN0aW9uKCkKICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICB0aGlzLnRlc3RfbWVtYmVyX2F0dHJpYnV0ZShtZW1iZXIp
OwogICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKG1lbWJlci5zdHJpbmdpZmllcikgewor
ICAgICAgICAgICAgaWYgKG1lbWJlci5zcGVjaWFsID09PSAic3RyaW5naWZpZXIiKSB7CiAgICAg
ICAgICAgICAgICAgdGhpcy50ZXN0X21lbWJlcl9zdHJpbmdpZmllcihtZW1iZXIpOwogICAgICAg
ICAgICAgfQogICAgICAgICAgICAgYnJlYWs7CkBAIC0yNTQxLDcgKzI2MzMsNyBAQCBJZGxJbnRl
cmZhY2UucHJvdG90eXBlLnRlc3RfbWVtYmVycyA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgIHRoaXMudGVzdF9tZW1iZXJfb3BlcmF0aW9uKG1lbWJl
cik7CiAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIGlmIChtZW1iZXIuc3Ry
aW5naWZpZXIpIHsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAobWVtYmVyLnNwZWNpYWwgPT09ICJz
dHJpbmdpZmllciIpIHsKICAgICAgICAgICAgICAgICB0aGlzLnRlc3RfbWVtYmVyX3N0cmluZ2lm
aWVyKG1lbWJlcik7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVhazsKQEAgLTI1NTYs
OSArMjY0OCw3IEBAIElkbEludGVyZmFjZS5wcm90b3R5cGUudGVzdF9tZW1iZXJzID0gZnVuY3Rp
b24oKQogICAgIH0KIH07CiAKLS8vQH0KIElkbEludGVyZmFjZS5wcm90b3R5cGUudGVzdF9vYmpl
Y3QgPSBmdW5jdGlvbihkZXNjKQotLy9AewogewogICAgIHZhciBvYmosIGV4Y2VwdGlvbiA9IG51
bGw7CiAgICAgdHJ5CkBAIC0yNTkzLDkgKzI2ODMsNyBAQCBJZGxJbnRlcmZhY2UucHJvdG90eXBl
LnRlc3Rfb2JqZWN0ID0gZnVuY3Rpb24oZGVzYykKICAgICB9CiB9OwogCi0vL0B9CiBJZGxJbnRl
cmZhY2UucHJvdG90eXBlLnRlc3RfcHJpbWFyeV9pbnRlcmZhY2Vfb2YgPSBmdW5jdGlvbihkZXNj
LCBvYmosIGV4Y2VwdGlvbiwgZXhwZWN0ZWRfdHlwZW9mKQotLy9AewogewogICAgIC8vIE9ubHkg
dGhlIG9iamVjdCBpdHNlbGYsIG5vdCBpdHMgbWVtYmVycywgYXJlIHRlc3RlZCBoZXJlLCBzbyBp
ZiB0aGUKICAgICAvLyBpbnRlcmZhY2UgaXMgdW50ZXN0ZWQsIHRoZXJlIGlzIG5vdGhpbmcgdG8g
ZG8uCkBAIC0yNjI3LDkgKzI3MTUsOCBAQCBJZGxJbnRlcmZhY2UucHJvdG90eXBlLnRlc3RfcHJp
bWFyeV9pbnRlcmZhY2Vfb2YgPSBmdW5jdGlvbihkZXNjLCBvYmosIGV4Y2VwdGlvbgogICAgICAg
ICB7CiAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGV4Y2VwdGlvbiwgbnVsbCwgIlVuZXhwZWN0
ZWQgZXhjZXB0aW9uIHdoZW4gZXZhbHVhdGluZyBvYmplY3QiKTsKICAgICAgICAgICAgIGFzc2Vy
dF9lcXVhbHModHlwZW9mIG9iaiwgZXhwZWN0ZWRfdHlwZW9mLCAid3JvbmcgdHlwZW9mIG9iamVj
dCIpOwotICAgICAgICAgICAgYXNzZXJ0X293bl9wcm9wZXJ0eShzZWxmLCB0aGlzLm5hbWUsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzZWxmIGRvZXMgbm90IGhhdmUgb3duIHBy
b3BlcnR5ICIgKyBmb3JtYXRfdmFsdWUodGhpcy5uYW1lKSk7Ci0gICAgICAgICAgICBhc3NlcnRf
b3duX3Byb3BlcnR5KHNlbGZbdGhpcy5uYW1lXSwgInByb3RvdHlwZSIsCisgICAgICAgICAgICB0
aGlzLmFzc2VydF9pbnRlcmZhY2Vfb2JqZWN0X2V4aXN0cygpOworICAgICAgICAgICAgYXNzZXJ0
X293bl9wcm9wZXJ0eSh0aGlzLmdldF9pbnRlcmZhY2Vfb2JqZWN0KCksICJwcm90b3R5cGUiLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaW50ZXJmYWNlICInICsgdGhpcy5uYW1l
ICsgJyIgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgInByb3RvdHlwZSInKTsKIAogICAgICAg
ICAgICAgLy8gIlRoZSB2YWx1ZSBvZiB0aGUgaW50ZXJuYWwgW1tQcm90b3R5cGVdXSBwcm9wZXJ0
eSBvZiB0aGUKQEAgLTI2MzcsMjkgKzI3MjQsMjcgQEAgSWRsSW50ZXJmYWNlLnByb3RvdHlwZS50
ZXN0X3ByaW1hcnlfaW50ZXJmYWNlX29mID0gZnVuY3Rpb24oZGVzYywgb2JqLCBleGNlcHRpb24K
ICAgICAgICAgICAgIC8vIGludGVyZmFjZSBmcm9tIHRoZSBwbGF0Zm9ybSBvYmplY3TigJlzIGFz
c29jaWF0ZWQgZ2xvYmFsCiAgICAgICAgICAgICAvLyBlbnZpcm9ubWVudC4iCiAgICAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKE9iamVjdC5nZXRQcm90b3R5cGVPZihvYmopLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICBzZWxmW3RoaXMubmFtZV0ucHJvdG90eXBlLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICB0aGlzLmdldF9pbnRlcmZhY2Vfb2JqZWN0KCkucHJvdG90eXBlLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICBkZXNjICsgIidzIHByb3RvdHlwZSBpcyBub3QgIiArIHRoaXMu
bmFtZSArICIucHJvdG90eXBlIik7CiAgICAgICAgIH0uYmluZCh0aGlzKSwgdGhpcy5uYW1lICsg
IiBtdXN0IGJlIHByaW1hcnkgaW50ZXJmYWNlIG9mICIgKyBkZXNjKTsKICAgICB9CiAKICAgICAv
LyAiVGhlIGNsYXNzIHN0cmluZyBvZiBhIHBsYXRmb3JtIG9iamVjdCB0aGF0IGltcGxlbWVudHMg
b25lIG9yIG1vcmUKLSAgICAvLyBpbnRlcmZhY2VzIG11c3QgYmUgdGhlIGlkZW50aWZpZXIgb2Yg
dGhlIHByaW1hcnkgaW50ZXJmYWNlIG9mIHRoZQorICAgIC8vIGludGVyZmFjZXMgbXVzdCBiZSB0
aGUgcXVhbGlmaWVkIG5hbWUgb2YgdGhlIHByaW1hcnkgaW50ZXJmYWNlIG9mIHRoZQogICAgIC8v
IHBsYXRmb3JtIG9iamVjdC4iCiAgICAgc3Vic2V0VGVzdEJ5S2V5KHRoaXMubmFtZSwgdGVzdCwg
ZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgYXNzZXJ0X2VxdWFscyhleGNlcHRpb24sIG51bGws
ICJVbmV4cGVjdGVkIGV4Y2VwdGlvbiB3aGVuIGV2YWx1YXRpbmcgb2JqZWN0Iik7CiAgICAgICAg
IGFzc2VydF9lcXVhbHModHlwZW9mIG9iaiwgZXhwZWN0ZWRfdHlwZW9mLCAid3JvbmcgdHlwZW9m
IG9iamVjdCIpOwotICAgICAgICBhc3NlcnRfY2xhc3Nfc3RyaW5nKG9iaiwgdGhpcy5uYW1lLCAi
Y2xhc3Mgc3RyaW5nIG9mICIgKyBkZXNjKTsKKyAgICAgICAgYXNzZXJ0X2NsYXNzX3N0cmluZyhv
YmosIHRoaXMuZ2V0X3F1YWxpZmllZF9uYW1lKCksICJjbGFzcyBzdHJpbmcgb2YgIiArIGRlc2Mp
OwogICAgICAgICBpZiAoIXRoaXMuaGFzX3N0cmluZ2lmaWVyKCkpCiAgICAgICAgIHsKLSAgICAg
ICAgICAgIGFzc2VydF9lcXVhbHMoU3RyaW5nKG9iaiksICJbb2JqZWN0ICIgKyB0aGlzLm5hbWUg
KyAiXSIsICJTdHJpbmcoIiArIGRlc2MgKyAiKSIpOworICAgICAgICAgICAgYXNzZXJ0X2VxdWFs
cyhTdHJpbmcob2JqKSwgIltvYmplY3QgIiArIHRoaXMuZ2V0X3F1YWxpZmllZF9uYW1lKCkgKyAi
XSIsICJTdHJpbmcoIiArIGRlc2MgKyAiKSIpOwogICAgICAgICB9CiAgICAgfS5iaW5kKHRoaXMp
LCAiU3RyaW5naWZpY2F0aW9uIG9mICIgKyBkZXNjKTsKIH07CiAKLS8vQH0KIElkbEludGVyZmFj
ZS5wcm90b3R5cGUudGVzdF9pbnRlcmZhY2Vfb2YgPSBmdW5jdGlvbihkZXNjLCBvYmosIGV4Y2Vw
dGlvbiwgZXhwZWN0ZWRfdHlwZW9mKQotLy9AewogewogICAgIC8vIFRPRE86IEluZGV4ZWQgYW5k
IG5hbWVkIHByb3BlcnRpZXMsIG1vcmUgY2hlY2tzIG9uIGludGVyZmFjZSBtZW1iZXJzCiAgICAg
dGhpcy5hbHJlYWR5X3Rlc3RlZCA9IHRydWU7CkBAIC0yNzE4LDcgKzI4MDMsNyBAQCBJZGxJbnRl
cmZhY2UucHJvdG90eXBlLnRlc3RfaW50ZXJmYWNlX29mID0gZnVuY3Rpb24oZGVzYywgb2JqLCBl
eGNlcHRpb24sIGV4cGVjdAogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIGFzc2VydF9l
cXVhbHMoZXhjZXB0aW9uLCBudWxsLCAiVW5leHBlY3RlZCBleGNlcHRpb24gd2hlbiBldmFsdWF0
aW5nIG9iamVjdCIpOwogICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHModHlwZW9mIG9iaiwg
ZXhwZWN0ZWRfdHlwZW9mLCAid3JvbmcgdHlwZW9mIG9iamVjdCIpOwotICAgICAgICAgICAgICAg
IGlmICghbWVtYmVyWyJzdGF0aWMiXSkgeworICAgICAgICAgICAgICAgIGlmIChtZW1iZXIuc3Bl
Y2lhbCAhPT0gInN0YXRpYyIpIHsKICAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLmlzX2ds
b2JhbCgpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfaW5oZXJpdHMob2JqLCBt
ZW1iZXIubmFtZSk7CiAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CkBAIC0yNzY4LDcgKzI4
NTMsNyBAQCBJZGxJbnRlcmZhY2UucHJvdG90eXBlLnRlc3RfaW50ZXJmYWNlX29mID0gZnVuY3Rp
b24oZGVzYywgb2JqLCBleGNlcHRpb24sIGV4cGVjdAogICAgICAgICAgICAgICAgIGFzc2VydF9l
cXVhbHMoZXhjZXB0aW9uLCBudWxsLCAiVW5leHBlY3RlZCBleGNlcHRpb24gd2hlbiBldmFsdWF0
aW5nIG9iamVjdCIpOwogICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHModHlwZW9mIG9iaiwg
ZXhwZWN0ZWRfdHlwZW9mLCAid3JvbmcgdHlwZW9mIG9iamVjdCIpOwogICAgICAgICAgICAgICAg
IHZhciBmbjsKLSAgICAgICAgICAgICAgICBpZiAoIW1lbWJlclsic3RhdGljIl0pIHsKKyAgICAg
ICAgICAgICAgICBpZiAobWVtYmVyLnNwZWNpYWwgIT09ICJzdGF0aWMiKSB7CiAgICAgICAgICAg
ICAgICAgICAgIGlmICghdGhpcy5pc19nbG9iYWwoKSAmJiAhbWVtYmVyLmlzVW5mb3JnZWFibGUp
IHsKICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9pbmhlcml0cyhvYmosIG1lbWJlci5u
YW1lKTsKICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKQEAgLTI3OTksMjEgKzI4ODQsMTkg
QEAgSWRsSW50ZXJmYWNlLnByb3RvdHlwZS50ZXN0X2ludGVyZmFjZV9vZiA9IGZ1bmN0aW9uKGRl
c2MsIG9iaiwgZXhjZXB0aW9uLCBleHBlY3QKICAgICAgICAgfQogCiAgICAgICAgIGlmIChtZW1i
ZXIuaXNfdG9fanNvbl9yZWd1bGFyX29wZXJhdGlvbigpKSB7Ci0gICAgICAgICAgICB0aGlzLnRl
c3RfdG9fanNvbl9vcGVyYXRpb24ob2JqLCBtZW1iZXIpOworICAgICAgICAgICAgdGhpcy50ZXN0
X3RvX2pzb25fb3BlcmF0aW9uKGRlc2MsIG9iaiwgbWVtYmVyKTsKICAgICAgICAgfQogICAgIH0K
IH07CiAKLS8vQH0KIElkbEludGVyZmFjZS5wcm90b3R5cGUuaGFzX3N0cmluZ2lmaWVyID0gZnVu
Y3Rpb24oKQotLy9AewogewogICAgIGlmICh0aGlzLm5hbWUgPT09ICJET01FeGNlcHRpb24iKSB7
CiAgICAgICAgIC8vIHRvU3RyaW5nIGlzIGluaGVyaXRlZCBmcm9tIEVycm9yLCBzbyBkb24ndCBh
c3N1bWUgd2UgaGF2ZSB0aGUKICAgICAgICAgLy8gZGVmYXVsdCBzdHJpbmdpZmVyCiAgICAgICAg
IHJldHVybiB0cnVlOwogICAgIH0KLSAgICBpZiAodGhpcy5tZW1iZXJzLnNvbWUoZnVuY3Rpb24o
bWVtYmVyKSB7IHJldHVybiBtZW1iZXIuc3RyaW5naWZpZXI7IH0pKSB7CisgICAgaWYgKHRoaXMu
bWVtYmVycy5zb21lKGZ1bmN0aW9uKG1lbWJlcikgeyByZXR1cm4gbWVtYmVyLnNwZWNpYWwgPT09
ICJzdHJpbmdpZmllciI7IH0pKSB7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICBp
ZiAodGhpcy5iYXNlICYmCkBAIC0yODIzLDkgKzI5MDYsNyBAQCBJZGxJbnRlcmZhY2UucHJvdG90
eXBlLmhhc19zdHJpbmdpZmllciA9IGZ1bmN0aW9uKCkKICAgICByZXR1cm4gZmFsc2U7CiB9Owog
Ci0vL0B9CiBJZGxJbnRlcmZhY2UucHJvdG90eXBlLmRvX2ludGVyZmFjZV9hdHRyaWJ1dGVfYXNz
ZXJ0cyA9IGZ1bmN0aW9uKG9iaiwgbWVtYmVyLCBhX3Rlc3QpCi0vL0B7CiB7CiAgICAgLy8gVGhp
cyBmdW5jdGlvbiB0ZXN0cyBXZWJJREwgYXMgb2YgMjAxNS0wMS0yNy4KICAgICAvLyBUT0RPOiBD
b25zaWRlciBbRXhwb3NlZF0uCkBAIC0yODY5LDcgKzI5NTAsNyBAQCBJZGxJbnRlcmZhY2UucHJv
dG90eXBlLmRvX2ludGVyZmFjZV9hdHRyaWJ1dGVfYXNzZXJ0cyA9IGZ1bmN0aW9uKG9iaiwgbWVt
YmVyLCBhXwogICAgIGFzc2VydF9lcXVhbHModHlwZW9mIGRlc2MuZ2V0LCAiZnVuY3Rpb24iLCAi
Z2V0dGVyIG11c3QgYmUgRnVuY3Rpb24iKTsKIAogICAgIC8vICJJZiB0aGUgYXR0cmlidXRlIGlz
IGEgcmVndWxhciBhdHRyaWJ1dGUsIHRoZW46IgotICAgIGlmICghbWVtYmVyWyJzdGF0aWMiXSkg
eworICAgIGlmIChtZW1iZXIuc3BlY2lhbCAhPT0gInN0YXRpYyIpIHsKICAgICAgICAgLy8gIklm
IE8gaXMgbm90IGEgcGxhdGZvcm0gb2JqZWN0IHRoYXQgaW1wbGVtZW50cyBJLCB0aGVuOgogICAg
ICAgICAvLyAiSWYgdGhlIGF0dHJpYnV0ZSB3YXMgc3BlY2lmaWVkIHdpdGggdGhlIFtMZW5pZW50
VGhpc10gZXh0ZW5kZWQKICAgICAgICAgLy8gYXR0cmlidXRlLCB0aGVuIHJldHVybiB1bmRlZmlu
ZWQuCkBAIC0yODk0LDYgKzI5NzUsMTEgQEAgSWRsSW50ZXJmYWNlLnByb3RvdHlwZS5kb19pbnRl
cmZhY2VfYXR0cmlidXRlX2Fzc2VydHMgPSBmdW5jdGlvbihvYmosIG1lbWJlciwgYV8KICAgICAv
LyB2YWx1ZSAwLiIKICAgICBhc3NlcnRfZXF1YWxzKGRlc2MuZ2V0Lmxlbmd0aCwgMCwgImdldHRl
ciBsZW5ndGggbXVzdCBiZSAwIik7CiAKKyAgICAvLyAiTGV0IG5hbWUgYmUgdGhlIHN0cmluZyAi
Z2V0ICIgcHJlcGVuZGVkIHRvIGF0dHJpYnV0ZeKAmXMgaWRlbnRpZmllci4iCisgICAgLy8gIlBl
cmZvcm0gISBTZXRGdW5jdGlvbk5hbWUoRiwgbmFtZSkuIgorICAgIGFzc2VydF9lcXVhbHMoZGVz
Yy5nZXQubmFtZSwgImdldCAiICsgbWVtYmVyLm5hbWUsCisgICAgICAgICJnZXR0ZXIgbXVzdCBo
YXZlIHRoZSBuYW1lICdnZXQgIiArIG1lbWJlci5uYW1lICsgIiciKTsKKwogCiAgICAgLy8gVE9E
TzogVGVzdCBjYWxsaW5nIHNldHRlciBvbiB0aGUgaW50ZXJmYWNlIHByb3RvdHlwZSAoc2hvdWxk
IHRocm93CiAgICAgLy8gVHlwZUVycm9yIGluIG1vc3QgY2FzZXMpLgpAQCAtMjkxNCw3ICszMDAw
LDcgQEAgSWRsSW50ZXJmYWNlLnByb3RvdHlwZS5kb19pbnRlcmZhY2VfYXR0cmlidXRlX2Fzc2Vy
dHMgPSBmdW5jdGlvbihvYmosIG1lbWJlciwgYV8KICAgICAgICAgYXNzZXJ0X2VxdWFscyh0eXBl
b2YgZGVzYy5zZXQsICJmdW5jdGlvbiIsICJzZXR0ZXIgbXVzdCBiZSBmdW5jdGlvbiBmb3IgUHV0
Rm9yd2FyZHMsIFJlcGxhY2VhYmxlLCBvciBub24tcmVhZG9ubHkgYXR0cmlidXRlcyIpOwogCiAg
ICAgICAgIC8vICJJZiB0aGUgYXR0cmlidXRlIGlzIGEgcmVndWxhciBhdHRyaWJ1dGUsIHRoZW46
IgotICAgICAgICBpZiAoIW1lbWJlclsic3RhdGljIl0pIHsKKyAgICAgICAgaWYgKG1lbWJlci5z
cGVjaWFsICE9PSAic3RhdGljIikgewogICAgICAgICAgICAgLy8gIklmIC92YWxpZFRoaXMvIGlz
IGZhbHNlIGFuZCB0aGUgYXR0cmlidXRlIHdhcyBub3Qgc3BlY2lmaWVkCiAgICAgICAgICAgICAv
LyB3aXRoIHRoZSBbTGVuaWVudFRoaXNdIGV4dGVuZGVkIGF0dHJpYnV0ZSwgdGhlbiB0aHJvdyBh
CiAgICAgICAgICAgICAvLyBUeXBlRXJyb3IuIgpAQCAtMjkzNCwyMiArMzAyMCwyNSBAQCBJZGxJ
bnRlcmZhY2UucHJvdG90eXBlLmRvX2ludGVyZmFjZV9hdHRyaWJ1dGVfYXNzZXJ0cyA9IGZ1bmN0
aW9uKG9iaiwgbWVtYmVyLCBhXwogICAgICAgICAvLyAiVGhlIHZhbHVlIG9mIHRoZSBGdW5jdGlv
biBvYmplY3TigJlzIOKAnGxlbmd0aOKAnSBwcm9wZXJ0eSBpcyB0aGUgTnVtYmVyCiAgICAgICAg
IC8vIHZhbHVlIDEuIgogICAgICAgICBhc3NlcnRfZXF1YWxzKGRlc2Muc2V0Lmxlbmd0aCwgMSwg
InNldHRlciBsZW5ndGggbXVzdCBiZSAxIik7CisKKyAgICAgICAgLy8gIkxldCBuYW1lIGJlIHRo
ZSBzdHJpbmcgInNldCAiIHByZXBlbmRlZCB0byBpZC4iCisgICAgICAgIC8vICJQZXJmb3JtICEg
U2V0RnVuY3Rpb25OYW1lKEYsIG5hbWUpLiIKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhkZXNjLnNl
dC5uYW1lLCAic2V0ICIgKyBtZW1iZXIubmFtZSwKKyAgICAgICAgICAgICJUaGUgYXR0cmlidXRl
IHNldHRlciBtdXN0IGhhdmUgdGhlIG5hbWUgJ3NldCAiICsgbWVtYmVyLm5hbWUgKyAiJyIpOwog
ICAgIH0KIAogICAgIFByb21pc2UuYWxsKHBlbmRpbmdQcm9taXNlcykudGhlbihhX3Rlc3QuZG9u
ZS5iaW5kKGFfdGVzdCkpOwogfQotLy9AfQogCiAvLy8gSWRsSW50ZXJmYWNlTWVtYmVyIC8vLwog
ZnVuY3Rpb24gSWRsSW50ZXJmYWNlTWVtYmVyKG9iaikKLS8vQHsKIHsKICAgICAvKioKICAgICAg
KiBvYmogaXMgYW4gb2JqZWN0IHByb2R1Y2VkIGJ5IHRoZSBXZWJJRExQYXJzZXIuanMgImlmTWVt
YmVyIiBwcm9kdWN0aW9uLgogICAgICAqIFdlIGp1c3QgZm9yd2FyZCBhbGwgcHJvcGVydGllcyB0
byB0aGlzIG9iamVjdCB3aXRob3V0IG1vZGlmaWNhdGlvbiwKICAgICAgKiBleGNlcHQgZm9yIHNw
ZWNpYWwgZXh0QXR0cnMgaGFuZGxpbmcuCiAgICAgICovCi0gICAgZm9yICh2YXIgayBpbiBvYmop
CisgICAgZm9yICh2YXIgayBpbiBvYmoudG9KU09OKCkpCiAgICAgewogICAgICAgICB0aGlzW2td
ID0gb2JqW2tdOwogICAgIH0KQEAgLTI5NjIsMTYgKzMwNTEsMTggQEAgZnVuY3Rpb24gSWRsSW50
ZXJmYWNlTWVtYmVyKG9iaikKICAgICB0aGlzLmlzVW5zY29wYWJsZSA9IHRoaXMuaGFzX2V4dGVu
ZGVkX2F0dHJpYnV0ZSgiVW5zY29wYWJsZSIpOwogfQogCi0vL0B9CiBJZGxJbnRlcmZhY2VNZW1i
ZXIucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShJZGxPYmplY3QucHJvdG90eXBlKTsKIAorSWRs
SW50ZXJmYWNlTWVtYmVyLnByb3RvdHlwZS50b0pTT04gPSBmdW5jdGlvbigpIHsKKyAgICByZXR1
cm4gdGhpczsKK307CisKIElkbEludGVyZmFjZU1lbWJlci5wcm90b3R5cGUuaXNfdG9fanNvbl9y
ZWd1bGFyX29wZXJhdGlvbiA9IGZ1bmN0aW9uKCkgewotICAgIHJldHVybiB0aGlzLnR5cGUgPT0g
Im9wZXJhdGlvbiIgJiYgIXRoaXMuc3RhdGljICYmIHRoaXMubmFtZSA9PSAidG9KU09OIjsKKyAg
ICByZXR1cm4gdGhpcy50eXBlID09ICJvcGVyYXRpb24iICYmIHRoaXMuc3BlY2lhbCAhPT0gInN0
YXRpYyIgJiYgdGhpcy5uYW1lID09ICJ0b0pTT04iOwogfTsKIAogLy8vIEludGVybmFsIGhlbHBl
ciBmdW5jdGlvbnMgLy8vCiBmdW5jdGlvbiBjcmVhdGVfc3VpdGFibGVfb2JqZWN0KHR5cGUpCi0v
L0B7CiB7CiAgICAgLyoqCiAgICAgICogdHlwZSBpcyBhbiBvYmplY3QgcHJvZHVjZWQgYnkgdGhl
IFdlYklETFBhcnNlci5qcyAidHlwZSIgcHJvZHVjdGlvbi4gIFdlCkBAIC0zMDA3LDEyICszMDk4
LDEwIEBAIGZ1bmN0aW9uIGNyZWF0ZV9zdWl0YWJsZV9vYmplY3QodHlwZSkKICAgICB9CiAgICAg
cmV0dXJuIG51bGw7CiB9Ci0vL0B9CiAKIC8vLyBJZGxFbnVtIC8vLwogLy8gVXNlZCBmb3IgSWRs
QXJyYXkucHJvdG90eXBlLmFzc2VydF90eXBlX2lzCiBmdW5jdGlvbiBJZGxFbnVtKG9iaikKLS8v
QHsKIHsKICAgICAvKioKICAgICAgKiBvYmogaXMgYW4gb2JqZWN0IHByb2R1Y2VkIGJ5IHRoZSBX
ZWJJRExQYXJzZXIuanMgImRpY3Rpb25hcnkiCkBAIC0zMDI2LDE0ICszMTE1LDMwIEBAIGZ1bmN0
aW9uIElkbEVudW0ob2JqKQogICAgIHRoaXMudmFsdWVzID0gb2JqLnZhbHVlczsKIAogfQotLy9A
fQogCiBJZGxFbnVtLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoSWRsT2JqZWN0LnByb3RvdHlw
ZSk7CiAKKy8vLyBJZGxDYWxsYmFjayAvLy8KKy8vIFVzZWQgZm9yIElkbEFycmF5LnByb3RvdHlw
ZS5hc3NlcnRfdHlwZV9pcworZnVuY3Rpb24gSWRsQ2FsbGJhY2sob2JqKQoreworICAgIC8qKgor
ICAgICAqIG9iaiBpcyBhbiBvYmplY3QgcHJvZHVjZWQgYnkgdGhlIFdlYklETFBhcnNlci5qcyAi
Y2FsbGJhY2siCisgICAgICogcHJvZHVjdGlvbi4KKyAgICAgKi8KKworICAgIC8qKiBTZWxmLWV4
cGxhbmF0b3J5LiAqLworICAgIHRoaXMubmFtZSA9IG9iai5uYW1lOworCisgICAgLyoqIEFyZ3Vt
ZW50cyBmb3IgdGhlIGNhbGxiYWNrLiAqLworICAgIHRoaXMuYXJndW1lbnRzID0gb2JqLmFyZ3Vt
ZW50czsKK30KKworSWRsQ2FsbGJhY2sucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShJZGxPYmpl
Y3QucHJvdG90eXBlKTsKKwogLy8vIElkbFR5cGVkZWYgLy8vCiAvLyBVc2VkIGZvciBJZGxBcnJh
eS5wcm90b3R5cGUuYXNzZXJ0X3R5cGVfaXMKIGZ1bmN0aW9uIElkbFR5cGVkZWYob2JqKQotLy9A
ewogewogICAgIC8qKgogICAgICAqIG9iaiBpcyBhbiBvYmplY3QgcHJvZHVjZWQgYnkgdGhlIFdl
YklETFBhcnNlci5qcyAidHlwZWRlZiIKQEAgLTMwNDcsMTMgKzMxNTIsMTEgQEAgZnVuY3Rpb24g
SWRsVHlwZWRlZihvYmopCiAgICAgdGhpcy5pZGxUeXBlID0gb2JqLmlkbFR5cGU7CiAKIH0KLS8v
QH0KIAogSWRsVHlwZWRlZi5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKElkbE9iamVjdC5wcm90
b3R5cGUpOwogCiAvLy8gSWRsTmFtZXNwYWNlIC8vLwogZnVuY3Rpb24gSWRsTmFtZXNwYWNlKG9i
aikKLS8vQHsKIHsKICAgICB0aGlzLm5hbWUgPSBvYmoubmFtZTsKICAgICB0aGlzLmV4dEF0dHJz
ID0gb2JqLmV4dEF0dHJzOwpAQCAtMzA2NCwxMiArMzE2NywxMCBAQCBmdW5jdGlvbiBJZGxOYW1l
c3BhY2Uob2JqKQogICAgIC8qKiBBbiBhcnJheSBvZiBJZGxJbnRlcmZhY2VNZW1iZXJzLiAqLwog
ICAgIHRoaXMubWVtYmVycyA9IG9iai5tZW1iZXJzLm1hcChtID0+IG5ldyBJZGxJbnRlcmZhY2VN
ZW1iZXIobSkpOwogfQotLy9AfQogCiBJZGxOYW1lc3BhY2UucHJvdG90eXBlID0gT2JqZWN0LmNy
ZWF0ZShJZGxPYmplY3QucHJvdG90eXBlKTsKIAogSWRsTmFtZXNwYWNlLnByb3RvdHlwZS5kb19t
ZW1iZXJfb3BlcmF0aW9uX2Fzc2VydHMgPSBmdW5jdGlvbiAobWVtYmVySG9sZGVyT2JqZWN0LCBt
ZW1iZXIsIGFfdGVzdCkKLS8vQHsKIHsKICAgICB2YXIgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3IobWVtYmVySG9sZGVyT2JqZWN0LCBtZW1iZXIubmFtZSk7CiAKQEAgLTMw
OTgsMTAgKzMxOTksOCBAQCBJZGxOYW1lc3BhY2UucHJvdG90eXBlLmRvX21lbWJlcl9vcGVyYXRp
b25fYXNzZXJ0cyA9IGZ1bmN0aW9uIChtZW1iZXJIb2xkZXJPYmplYwogICAgICAgICAib3BlcmF0
aW9uIGhhcyB3cm9uZyAubGVuZ3RoIik7CiAgICAgYV90ZXN0LmRvbmUoKTsKIH0KLS8vQH0KIAog
SWRsTmFtZXNwYWNlLnByb3RvdHlwZS50ZXN0X21lbWJlcl9vcGVyYXRpb24gPSBmdW5jdGlvbiht
ZW1iZXIpCi0vL0B7CiB7CiAgICAgaWYgKCFzaG91bGRSdW5TdWJUZXN0KHRoaXMubmFtZSkpIHsK
ICAgICAgICAgcmV0dXJuOwpAQCAtMzEyNiwxMCArMzIyNSw4IEBAIElkbE5hbWVzcGFjZS5wcm90
b3R5cGUudGVzdF9tZW1iZXJfb3BlcmF0aW9uID0gZnVuY3Rpb24obWVtYmVyKQogICAgICAgICB0
aGlzLmRvX21lbWJlcl9vcGVyYXRpb25fYXNzZXJ0cyhzZWxmW3RoaXMubmFtZV0sIG1lbWJlciwg
YV90ZXN0KTsKICAgICB9LmJpbmQodGhpcykpOwogfTsKLS8vQH0KIAogSWRsTmFtZXNwYWNlLnBy
b3RvdHlwZS50ZXN0X21lbWJlcl9hdHRyaWJ1dGUgPSBmdW5jdGlvbiAobWVtYmVyKQotLy9Aewog
ewogICAgIGlmICghc2hvdWxkUnVuU3ViVGVzdCh0aGlzLm5hbWUpKSB7CiAgICAgICAgIHJldHVy
bjsKQEAgLTMxNTAsMTAgKzMyNDcsOCBAQCBJZGxOYW1lc3BhY2UucHJvdG90eXBlLnRlc3RfbWVt
YmVyX2F0dHJpYnV0ZSA9IGZ1bmN0aW9uIChtZW1iZXIpCiAgICAgICAgIGFfdGVzdC5kb25lKCk7
CiAgICAgfS5iaW5kKHRoaXMpKTsKIH07Ci0vL0B9CiAKIElkbE5hbWVzcGFjZS5wcm90b3R5cGUu
dGVzdCA9IGZ1bmN0aW9uICgpCi0vL0B7CiB7CiAgICAgLyoqCiAgICAgICogVE9ETyhsdWtlYmpl
cnJpbmcpOiBBc3NlcnQ6CkBAIC0zMTc5LDcgKzMyNzQsNiBAQCBJZGxOYW1lc3BhY2UucHJvdG90
eXBlLnRlc3QgPSBmdW5jdGlvbiAoKQogICAgICAgICB9CiAgICAgfTsKIH07Ci0vL0B9CiAKIH0o
KSk7CiAKQEAgLTMyNDEsNyArMzMzNSwxMSBAQCBmdW5jdGlvbiBpZGxfdGVzdChzcmNzLCBkZXBz
LCBpZGxfc2V0dXBfZnVuYykgewogICogZmV0Y2hfc3BlYyBpcyBhIHNob3J0aGFuZCBmb3IgYSBQ
cm9taXNlIHRoYXQgZmV0Y2hlcyB0aGUgc3BlYydzIGNvbnRlbnQuCiAgKi8KIGZ1bmN0aW9uIGZl
dGNoX3NwZWMoc3BlYykgewotICAgIHJldHVybiBmZXRjaCgnL2ludGVyZmFjZXMvJyArIHNwZWMg
KyAnLmlkbCcpLnRoZW4oZnVuY3Rpb24gKHIpIHsKKyAgICB2YXIgdXJsID0gJy9pbnRlcmZhY2Vz
LycgKyBzcGVjICsgJy5pZGwnOworICAgIHJldHVybiBmZXRjaCh1cmwpLnRoZW4oZnVuY3Rpb24g
KHIpIHsKKyAgICAgICAgaWYgKCFyLm9rKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWRsSGFy
bmVzc0Vycm9yKCJFcnJvciBmZXRjaGluZyAiICsgdXJsICsgIi4iKTsKKyAgICAgICAgfQogICAg
ICAgICByZXR1cm4gci50ZXh0KCk7CiAgICAgfSk7CiB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy93ZWJpZGwyL2xpYi93
ZWJpZGwyLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9y
ZXNvdXJjZXMvd2ViaWRsMi9saWIvd2ViaWRsMi5qcwppbmRleCBlZjUxOWMwOWRmNmQ2ZGE4MTJm
Y2JiYTU3YzdjYTBmNDc1YWYxZWQ1Li5jNjBhNDU2YzMyNDE2NTVkMDVhN2U0MGY4MmIxOWQ4NzM1
ZDAxN2Q0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Jlc291cmNlcy93ZWJpZGwyL2xpYi93ZWJpZGwyLmpzCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3dlYmlkbDIvbGliL3dl
YmlkbDIuanMKQEAgLTEsOTcwICsxLDI3NzcgQEAKKyhmdW5jdGlvbiB3ZWJwYWNrVW5pdmVyc2Fs
TW9kdWxlRGVmaW5pdGlvbihyb290LCBmYWN0b3J5KSB7CisJaWYodHlwZW9mIGV4cG9ydHMgPT09
ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgPT09ICdvYmplY3QnKQorCQltb2R1bGUuZXhwb3J0
cyA9IGZhY3RvcnkoKTsKKwllbHNlIGlmKHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYg
ZGVmaW5lLmFtZCkKKwkJZGVmaW5lKFtdLCBmYWN0b3J5KTsKKwllbHNlIGlmKHR5cGVvZiBleHBv
cnRzID09PSAnb2JqZWN0JykKKwkJZXhwb3J0c1siV2ViSURMMiJdID0gZmFjdG9yeSgpOworCWVs
c2UKKwkJcm9vdFsiV2ViSURMMiJdID0gZmFjdG9yeSgpOworfSkodGhpcywgZnVuY3Rpb24oKSB7
CityZXR1cm4gLyoqKioqKi8gKGZ1bmN0aW9uKG1vZHVsZXMpIHsgLy8gd2VicGFja0Jvb3RzdHJh
cAorLyoqKioqKi8gCS8vIFRoZSBtb2R1bGUgY2FjaGUKKy8qKioqKiovIAl2YXIgaW5zdGFsbGVk
TW9kdWxlcyA9IHt9OworLyoqKioqKi8KKy8qKioqKiovIAkvLyBUaGUgcmVxdWlyZSBmdW5jdGlv
bgorLyoqKioqKi8gCWZ1bmN0aW9uIF9fd2VicGFja19yZXF1aXJlX18obW9kdWxlSWQpIHsKKy8q
KioqKiovCisvKioqKioqLyAJCS8vIENoZWNrIGlmIG1vZHVsZSBpcyBpbiBjYWNoZQorLyoqKioq
Ki8gCQlpZihpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXSkgeworLyoqKioqKi8gCQkJcmV0dXJu
IGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdLmV4cG9ydHM7CisvKioqKioqLyAJCX0KKy8qKioq
KiovIAkJLy8gQ3JlYXRlIGEgbmV3IG1vZHVsZSAoYW5kIHB1dCBpdCBpbnRvIHRoZSBjYWNoZSkK
Ky8qKioqKiovIAkJdmFyIG1vZHVsZSA9IGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdID0gewor
LyoqKioqKi8gCQkJaTogbW9kdWxlSWQsCisvKioqKioqLyAJCQlsOiBmYWxzZSwKKy8qKioqKiov
IAkJCWV4cG9ydHM6IHt9CisvKioqKioqLyAJCX07CisvKioqKioqLworLyoqKioqKi8gCQkvLyBF
eGVjdXRlIHRoZSBtb2R1bGUgZnVuY3Rpb24KKy8qKioqKiovIAkJbW9kdWxlc1ttb2R1bGVJZF0u
Y2FsbChtb2R1bGUuZXhwb3J0cywgbW9kdWxlLCBtb2R1bGUuZXhwb3J0cywgX193ZWJwYWNrX3Jl
cXVpcmVfXyk7CisvKioqKioqLworLyoqKioqKi8gCQkvLyBGbGFnIHRoZSBtb2R1bGUgYXMgbG9h
ZGVkCisvKioqKioqLyAJCW1vZHVsZS5sID0gdHJ1ZTsKKy8qKioqKiovCisvKioqKioqLyAJCS8v
IFJldHVybiB0aGUgZXhwb3J0cyBvZiB0aGUgbW9kdWxlCisvKioqKioqLyAJCXJldHVybiBtb2R1
bGUuZXhwb3J0czsKKy8qKioqKiovIAl9CisvKioqKioqLworLyoqKioqKi8KKy8qKioqKiovIAkv
LyBleHBvc2UgdGhlIG1vZHVsZXMgb2JqZWN0IChfX3dlYnBhY2tfbW9kdWxlc19fKQorLyoqKioq
Ki8gCV9fd2VicGFja19yZXF1aXJlX18ubSA9IG1vZHVsZXM7CisvKioqKioqLworLyoqKioqKi8g
CS8vIGV4cG9zZSB0aGUgbW9kdWxlIGNhY2hlCisvKioqKioqLyAJX193ZWJwYWNrX3JlcXVpcmVf
Xy5jID0gaW5zdGFsbGVkTW9kdWxlczsKKy8qKioqKiovCisvKioqKioqLyAJLy8gZGVmaW5lIGdl
dHRlciBmdW5jdGlvbiBmb3IgaGFybW9ueSBleHBvcnRzCisvKioqKioqLyAJX193ZWJwYWNrX3Jl
cXVpcmVfXy5kID0gZnVuY3Rpb24oZXhwb3J0cywgbmFtZSwgZ2V0dGVyKSB7CisvKioqKioqLyAJ
CWlmKCFfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZXhwb3J0cywgbmFtZSkpIHsKKy8qKioqKiovIAkJ
CU9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBuYW1lLCB7IGVudW1lcmFibGU6IHRydWUs
IGdldDogZ2V0dGVyIH0pOworLyoqKioqKi8gCQl9CisvKioqKioqLyAJfTsKKy8qKioqKiovCisv
KioqKioqLyAJLy8gZGVmaW5lIF9fZXNNb2R1bGUgb24gZXhwb3J0cworLyoqKioqKi8gCV9fd2Vi
cGFja19yZXF1aXJlX18uciA9IGZ1bmN0aW9uKGV4cG9ydHMpIHsKKy8qKioqKiovIAkJaWYodHlw
ZW9mIFN5bWJvbCAhPT0gJ3VuZGVmaW5lZCcgJiYgU3ltYm9sLnRvU3RyaW5nVGFnKSB7CisvKioq
KioqLyAJCQlPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgU3ltYm9sLnRvU3RyaW5nVGFn
LCB7IHZhbHVlOiAnTW9kdWxlJyB9KTsKKy8qKioqKiovIAkJfQorLyoqKioqKi8gCQlPYmplY3Qu
ZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pOwor
LyoqKioqKi8gCX07CisvKioqKioqLworLyoqKioqKi8gCS8vIGNyZWF0ZSBhIGZha2UgbmFtZXNw
YWNlIG9iamVjdAorLyoqKioqKi8gCS8vIG1vZGUgJiAxOiB2YWx1ZSBpcyBhIG1vZHVsZSBpZCwg
cmVxdWlyZSBpdAorLyoqKioqKi8gCS8vIG1vZGUgJiAyOiBtZXJnZSBhbGwgcHJvcGVydGllcyBv
ZiB2YWx1ZSBpbnRvIHRoZSBucworLyoqKioqKi8gCS8vIG1vZGUgJiA0OiByZXR1cm4gdmFsdWUg
d2hlbiBhbHJlYWR5IG5zIG9iamVjdAorLyoqKioqKi8gCS8vIG1vZGUgJiA4fDE6IGJlaGF2ZSBs
aWtlIHJlcXVpcmUKKy8qKioqKiovIAlfX3dlYnBhY2tfcmVxdWlyZV9fLnQgPSBmdW5jdGlvbih2
YWx1ZSwgbW9kZSkgeworLyoqKioqKi8gCQlpZihtb2RlICYgMSkgdmFsdWUgPSBfX3dlYnBhY2tf
cmVxdWlyZV9fKHZhbHVlKTsKKy8qKioqKiovIAkJaWYobW9kZSAmIDgpIHJldHVybiB2YWx1ZTsK
Ky8qKioqKiovIAkJaWYoKG1vZGUgJiA0KSAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYm
IHZhbHVlICYmIHZhbHVlLl9fZXNNb2R1bGUpIHJldHVybiB2YWx1ZTsKKy8qKioqKiovIAkJdmFy
IG5zID0gT2JqZWN0LmNyZWF0ZShudWxsKTsKKy8qKioqKiovIAkJX193ZWJwYWNrX3JlcXVpcmVf
Xy5yKG5zKTsKKy8qKioqKiovIAkJT2JqZWN0LmRlZmluZVByb3BlcnR5KG5zLCAnZGVmYXVsdCcs
IHsgZW51bWVyYWJsZTogdHJ1ZSwgdmFsdWU6IHZhbHVlIH0pOworLyoqKioqKi8gCQlpZihtb2Rl
ICYgMiAmJiB0eXBlb2YgdmFsdWUgIT0gJ3N0cmluZycpIGZvcih2YXIga2V5IGluIHZhbHVlKSBf
X3dlYnBhY2tfcmVxdWlyZV9fLmQobnMsIGtleSwgZnVuY3Rpb24oa2V5KSB7IHJldHVybiB2YWx1
ZVtrZXldOyB9LmJpbmQobnVsbCwga2V5KSk7CisvKioqKioqLyAJCXJldHVybiBuczsKKy8qKioq
KiovIAl9OworLyoqKioqKi8KKy8qKioqKiovIAkvLyBnZXREZWZhdWx0RXhwb3J0IGZ1bmN0aW9u
IGZvciBjb21wYXRpYmlsaXR5IHdpdGggbm9uLWhhcm1vbnkgbW9kdWxlcworLyoqKioqKi8gCV9f
d2VicGFja19yZXF1aXJlX18ubiA9IGZ1bmN0aW9uKG1vZHVsZSkgeworLyoqKioqKi8gCQl2YXIg
Z2V0dGVyID0gbW9kdWxlICYmIG1vZHVsZS5fX2VzTW9kdWxlID8KKy8qKioqKiovIAkJCWZ1bmN0
aW9uIGdldERlZmF1bHQoKSB7IHJldHVybiBtb2R1bGVbJ2RlZmF1bHQnXTsgfSA6CisvKioqKioq
LyAJCQlmdW5jdGlvbiBnZXRNb2R1bGVFeHBvcnRzKCkgeyByZXR1cm4gbW9kdWxlOyB9OworLyoq
KioqKi8gCQlfX3dlYnBhY2tfcmVxdWlyZV9fLmQoZ2V0dGVyLCAnYScsIGdldHRlcik7CisvKioq
KioqLyAJCXJldHVybiBnZXR0ZXI7CisvKioqKioqLyAJfTsKKy8qKioqKiovCisvKioqKioqLyAJ
Ly8gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsCisvKioqKioqLyAJX193ZWJw
YWNrX3JlcXVpcmVfXy5vID0gZnVuY3Rpb24ob2JqZWN0LCBwcm9wZXJ0eSkgeyByZXR1cm4gT2Jq
ZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iamVjdCwgcHJvcGVydHkpOyB9Owor
LyoqKioqKi8KKy8qKioqKiovIAkvLyBfX3dlYnBhY2tfcHVibGljX3BhdGhfXworLyoqKioqKi8g
CV9fd2VicGFja19yZXF1aXJlX18ucCA9ICIiOworLyoqKioqKi8KKy8qKioqKiovCisvKioqKioq
LyAJLy8gTG9hZCBlbnRyeSBtb2R1bGUgYW5kIHJldHVybiBleHBvcnRzCisvKioqKioqLyAJcmV0
dXJuIF9fd2VicGFja19yZXF1aXJlX18oX193ZWJwYWNrX3JlcXVpcmVfXy5zID0gMCk7CisvKioq
KioqLyB9KQorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qKioqKiovIChbCisvKiAwICovCisvKioqLyAo
ZnVuY3Rpb24obW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9f
KSB7CisKICJ1c2Ugc3RyaWN0IjsKK19fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhw
b3J0c19fKTsKKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfbGliX3dlYmlkbDJfanNfX1dFQlBB
Q0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMSk7CisvKiBoYXJt
b255IHJlZXhwb3J0IChzYWZlKSAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4
cG9ydHNfXywgInBhcnNlIiwgZnVuY3Rpb24oKSB7IHJldHVybiBfbGliX3dlYmlkbDJfanNfX1dF
QlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1sicGFyc2UiXTsgfSk7CiAKLSgoKSA9PiB7Ci0gIC8v
IFRoZXNlIHJlZ3VsYXIgZXhwcmVzc2lvbnMgdXNlIHRoZSBzdGlja3kgZmxhZyBzbyB0aGV5IHdp
bGwgb25seSBtYXRjaCBhdAotICAvLyB0aGUgY3VycmVudCBsb2NhdGlvbiAoaWUuIHRoZSBvZmZz
ZXQgb2YgbGFzdEluZGV4KS4KLSAgY29uc3QgdG9rZW5SZSA9IHsKLSAgICAvLyBUaGlzIGV4cHJl
c3Npb24gdXNlcyBhIGxvb2thaGVhZCBhc3NlcnRpb24gdG8gY2F0Y2ggZmFsc2UgbWF0Y2hlcwot
ICAgIC8vIGFnYWluc3QgaW50ZWdlcnMgZWFybHkuCi0gICAgImZsb2F0IjogLy0/KD89WzAtOV0q
XC58WzAtOV0rW2VFXSkoKFswLTldK1wuWzAtOV0qfFswLTldKlwuWzAtOV0rKShbRWVdWy0rXT9b
MC05XSspP3xbMC05XStbRWVdWy0rXT9bMC05XSspL3ksCi0gICAgImludGVnZXIiOiAvLT8oMChb
WHhdWzAtOUEtRmEtZl0rfFswLTddKil8WzEtOV1bMC05XSopL3ksCi0gICAgImlkZW50aWZpZXIi
OiAvXz9bQS1aYS16XVswLTlBLVpfYS16LV0qL3ksCi0gICAgInN0cmluZyI6IC8iW14iXSoiL3ks
Ci0gICAgIndoaXRlc3BhY2UiOiAvW1x0XG5cciBdKy95LAotICAgICJjb21tZW50IjogLygoXC8o
XC8uKnxcKihbXipdfFwqW15cL10pKlwqXC8pW1x0XG5cciBdKikrKS95LAotICAgICJvdGhlciI6
IC9bXlx0XG5cciAwLTlBLVphLXpdL3kKLSAgfTsKKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBf
bGliX3dyaXRlcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3Jl
cXVpcmVfXygzMCk7CisvKiBoYXJtb255IHJlZXhwb3J0IChzYWZlKSAqLyBfX3dlYnBhY2tfcmVx
dWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgIndyaXRlIiwgZnVuY3Rpb24oKSB7IHJldHVy
biBfbGliX3dyaXRlcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fWyJ3cml0ZSJdOyB9
KTsKIAotICBjb25zdCBzdHJpbmdUeXBlcyA9IFsKLSAgICAiQnl0ZVN0cmluZyIsCi0gICAgIkRP
TVN0cmluZyIsCi0gICAgIlVTVlN0cmluZyIKLSAgXTsKLQotICBjb25zdCBhcmd1bWVudE5hbWVL
ZXl3b3JkcyA9IFsKLSAgICAiYXR0cmlidXRlIiwKLSAgICAiY2FsbGJhY2siLAotICAgICJjb25z
dCIsCi0gICAgImRlbGV0ZXIiLAotICAgICJkaWN0aW9uYXJ5IiwKLSAgICAiZW51bSIsCi0gICAg
ImdldHRlciIsCi0gICAgImluY2x1ZGVzIiwKLSAgICAiaW5oZXJpdCIsCi0gICAgImludGVyZmFj
ZSIsCi0gICAgIml0ZXJhYmxlIiwKLSAgICAibWFwbGlrZSIsCi0gICAgIm5hbWVzcGFjZSIsCi0g
ICAgInBhcnRpYWwiLAotICAgICJyZXF1aXJlZCIsCi0gICAgInNldGxpa2UiLAotICAgICJzZXR0
ZXIiLAotICAgICJzdGF0aWMiLAotICAgICJzdHJpbmdpZmllciIsCi0gICAgInR5cGVkZWYiLAot
ICAgICJ1bnJlc3RyaWN0ZWQiCi0gIF07Ci0KLSAgY29uc3Qgbm9uUmVnZXhUZXJtaW5hbHMgPSBb
Ci0gICAgIkZyb3plbkFycmF5IiwKLSAgICAiSW5maW5pdHkiLAotICAgICJOYU4iLAotICAgICJQ
cm9taXNlIiwKLSAgICAiYm9vbGVhbiIsCi0gICAgImJ5dGUiLAotICAgICJkb3VibGUiLAotICAg
ICJmYWxzZSIsCi0gICAgImZsb2F0IiwKLSAgICAiaW1wbGVtZW50cyIsCi0gICAgImxlZ2FjeWl0
ZXJhYmxlIiwKLSAgICAibG9uZyIsCi0gICAgIm1peGluIiwKLSAgICAibnVsbCIsCi0gICAgIm9j
dGV0IiwKLSAgICAib3B0aW9uYWwiLAotICAgICJvciIsCi0gICAgInJlYWRvbmx5IiwKLSAgICAi
cmVjb3JkIiwKLSAgICAic2VxdWVuY2UiLAotICAgICJzaG9ydCIsCi0gICAgInRydWUiLAotICAg
ICJ1bnNpZ25lZCIsCi0gICAgInZvaWQiCi0gIF0uY29uY2F0KGFyZ3VtZW50TmFtZUtleXdvcmRz
LCBzdHJpbmdUeXBlcyk7Ci0KLSAgY29uc3QgcHVuY3R1YXRpb25zID0gWwotICAgICIoIiwKLSAg
ICAiKSIsCi0gICAgIiwiLAotICAgICItSW5maW5pdHkiLAotICAgICIuLi4iLAotICAgICI6IiwK
LSAgICAiOyIsCi0gICAgIjwiLAotICAgICI9IiwKLSAgICAiPiIsCi0gICAgIj8iLAotICAgICJb
IiwKLSAgICAiXSIsCi0gICAgInsiLAotICAgICJ9IgotICBdOwotCi0gIGZ1bmN0aW9uIHRva2Vu
aXNlKHN0cikgewotICAgIGNvbnN0IHRva2VucyA9IFtdOwotICAgIGxldCBsYXN0SW5kZXggPSAw
OwotICAgIGxldCB0cml2aWEgPSAiIjsKLSAgICB3aGlsZSAobGFzdEluZGV4IDwgc3RyLmxlbmd0
aCkgewotICAgICAgY29uc3QgbmV4dENoYXIgPSBzdHIuY2hhckF0KGxhc3RJbmRleCk7Ci0gICAg
ICBsZXQgcmVzdWx0ID0gLTE7Ci0KLSAgICAgIGlmICgvW1x0XG5cciBdLy50ZXN0KG5leHRDaGFy
KSkgewotICAgICAgICByZXN1bHQgPSBhdHRlbXB0VG9rZW5NYXRjaCgid2hpdGVzcGFjZSIsIHsg
bm9GbHVzaFRyaXZpYTogdHJ1ZSB9KTsKLSAgICAgIH0gZWxzZSBpZiAobmV4dENoYXIgPT09ICcv
JykgewotICAgICAgICByZXN1bHQgPSBhdHRlbXB0VG9rZW5NYXRjaCgiY29tbWVudCIsIHsgbm9G
bHVzaFRyaXZpYTogdHJ1ZSB9KTsKLSAgICAgIH0KKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBf
bGliX3ZhbGlkYXRvcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fID0gX193ZWJwYWNr
X3JlcXVpcmVfXygzMSk7CisvKiBoYXJtb255IHJlZXhwb3J0IChzYWZlKSAqLyBfX3dlYnBhY2tf
cmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgInZhbGlkYXRlIiwgZnVuY3Rpb24oKSB7
IHJldHVybiBfbGliX3ZhbGlkYXRvcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fWyJ2
YWxpZGF0ZSJdOyB9KTsKIAotICAgICAgaWYgKHJlc3VsdCAhPT0gLTEpIHsKLSAgICAgICAgdHJp
dmlhICs9IHRva2Vucy5wb3AoKS52YWx1ZTsKLSAgICAgIH0gZWxzZSBpZiAoL1stMC05Ll0vLnRl
c3QobmV4dENoYXIpKSB7Ci0gICAgICAgIHJlc3VsdCA9IGF0dGVtcHRUb2tlbk1hdGNoKCJmbG9h
dCIpOwotICAgICAgICBpZiAocmVzdWx0ID09PSAtMSkgewotICAgICAgICAgIHJlc3VsdCA9IGF0
dGVtcHRUb2tlbk1hdGNoKCJpbnRlZ2VyIik7Ci0gICAgICAgIH0KLSAgICAgIH0gZWxzZSBpZiAo
L1tBLVpfYS16XS8udGVzdChuZXh0Q2hhcikpIHsKLSAgICAgICAgcmVzdWx0ID0gYXR0ZW1wdFRv
a2VuTWF0Y2goImlkZW50aWZpZXIiKTsKLSAgICAgICAgY29uc3QgdG9rZW4gPSB0b2tlbnNbdG9r
ZW5zLmxlbmd0aCAtIDFdOwotICAgICAgICBpZiAocmVzdWx0ICE9PSAtMSAmJiBub25SZWdleFRl
cm1pbmFscy5pbmNsdWRlcyh0b2tlbi52YWx1ZSkpIHsKLSAgICAgICAgICB0b2tlbi50eXBlID0g
dG9rZW4udmFsdWU7Ci0gICAgICAgIH0KLSAgICAgIH0gZWxzZSBpZiAobmV4dENoYXIgPT09ICci
JykgewotICAgICAgICByZXN1bHQgPSBhdHRlbXB0VG9rZW5NYXRjaCgic3RyaW5nIik7Ci0gICAg
ICB9CiAKLSAgICAgIGZvciAoY29uc3QgcHVuY3R1YXRpb24gb2YgcHVuY3R1YXRpb25zKSB7Ci0g
ICAgICAgIGlmIChzdHIuc3RhcnRzV2l0aChwdW5jdHVhdGlvbiwgbGFzdEluZGV4KSkgewotICAg
ICAgICAgIHRva2Vucy5wdXNoKHsgdHlwZTogcHVuY3R1YXRpb24sIHZhbHVlOiBwdW5jdHVhdGlv
biwgdHJpdmlhIH0pOwotICAgICAgICAgIHRyaXZpYSA9ICIiOwotICAgICAgICAgIGxhc3RJbmRl
eCArPSBwdW5jdHVhdGlvbi5sZW5ndGg7Ci0gICAgICAgICAgcmVzdWx0ID0gbGFzdEluZGV4Owot
ICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgICB9CiAKLSAgICAgIC8vIG90aGVyIGFz
IHRoZSBsYXN0IHRyeQotICAgICAgaWYgKHJlc3VsdCA9PT0gLTEpIHsKLSAgICAgICAgcmVzdWx0
ID0gYXR0ZW1wdFRva2VuTWF0Y2goIm90aGVyIik7Ci0gICAgICB9Ci0gICAgICBpZiAocmVzdWx0
ID09PSAtMSkgewotICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlRva2VuIHN0cmVhbSBub3QgcHJv
Z3Jlc3NpbmciKTsKLSAgICAgIH0KLSAgICAgIGxhc3RJbmRleCA9IHJlc3VsdDsKLSAgICB9Ci0g
ICAgcmV0dXJuIHRva2VuczsKIAotICAgIGZ1bmN0aW9uIGF0dGVtcHRUb2tlbk1hdGNoKHR5cGUs
IHsgbm9GbHVzaFRyaXZpYSB9ID0ge30pIHsKLSAgICAgIGNvbnN0IHJlID0gdG9rZW5SZVt0eXBl
XTsKLSAgICAgIHJlLmxhc3RJbmRleCA9IGxhc3RJbmRleDsKLSAgICAgIGNvbnN0IHJlc3VsdCA9
IHJlLmV4ZWMoc3RyKTsKLSAgICAgIGlmIChyZXN1bHQpIHsKLSAgICAgICAgdG9rZW5zLnB1c2go
eyB0eXBlLCB2YWx1ZTogcmVzdWx0WzBdLCB0cml2aWEgfSk7Ci0gICAgICAgIGlmICghbm9GbHVz
aFRyaXZpYSkgewotICAgICAgICAgIHRyaXZpYSA9ICIiOwotICAgICAgICB9Ci0gICAgICAgIHJl
dHVybiByZS5sYXN0SW5kZXg7Ci0gICAgICB9Ci0gICAgICByZXR1cm4gLTE7Ci0gICAgfQotICB9
CiAKLSAgY2xhc3MgV2ViSURMUGFyc2VFcnJvciB7Ci0gICAgY29uc3RydWN0b3Ioc3RyLCBsaW5l
LCBpbnB1dCwgdG9rZW5zKSB7Ci0gICAgICB0aGlzLm1lc3NhZ2UgPSBzdHI7Ci0gICAgICB0aGlz
LmxpbmUgPSBsaW5lOwotICAgICAgdGhpcy5pbnB1dCA9IGlucHV0OwotICAgICAgdGhpcy50b2tl
bnMgPSB0b2tlbnM7Ci0gICAgfQogCi0gICAgdG9TdHJpbmcoKSB7Ci0gICAgICBjb25zdCBlc2Nh
cGVkSW5wdXQgPSBKU09OLnN0cmluZ2lmeSh0aGlzLmlucHV0KTsKLSAgICAgIGNvbnN0IHRva2Vu
cyA9IEpTT04uc3RyaW5naWZ5KHRoaXMudG9rZW5zLCBudWxsLCA0KTsKLSAgICAgIHJldHVybiBg
JHt0aGlzLm1lc3NhZ2V9LCBsaW5lICR7dGhpcy5saW5lfSAodG9rZW5zOiAke2VzY2FwZWRJbnB1
dH0pXG4ke3Rva2Vuc31gOwotICAgIH0KLSAgfQorLyoqKi8gfSksCisvKiAxICovCisvKioqLyAo
ZnVuY3Rpb24obW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9f
KSB7CiAKLSAgZnVuY3Rpb24gcGFyc2UodG9rZW5zKSB7Ci0gICAgbGV0IGxpbmUgPSAxOwotICAg
IHRva2VucyA9IHRva2Vucy5zbGljZSgpOwotICAgIGNvbnN0IG5hbWVzID0gbmV3IE1hcCgpOwot
ICAgIGxldCBjdXJyZW50ID0gbnVsbDsKKyJ1c2Ugc3RyaWN0IjsKK19fd2VicGFja19yZXF1aXJl
X18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTsKKy8qIGhhcm1vbnkgZXhwb3J0IChiaW5kaW5nKSAq
LyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgInBhcnNlIiwgZnVu
Y3Rpb24oKSB7IHJldHVybiBwYXJzZTsgfSk7CisvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3Rv
a2VuaXNlcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVp
cmVfXygyKTsKKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfcHJvZHVjdGlvbnNfZW51bV9qc19f
V0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygxNSk7Cisv
KiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3Byb2R1Y3Rpb25zX2luY2x1ZGVzX2pzX19XRUJQQUNL
X0lNUE9SVEVEX01PRFVMRV8yX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDE2KTsKKy8qIGhhcm1v
bnkgaW1wb3J0ICovIHZhciBfcHJvZHVjdGlvbnNfZXh0ZW5kZWRfYXR0cmlidXRlc19qc19fV0VC
UEFDS19JTVBPUlRFRF9NT0RVTEVfM19fID0gX193ZWJwYWNrX3JlcXVpcmVfXygxMCk7CisvKiBo
YXJtb255IGltcG9ydCAqLyB2YXIgX3Byb2R1Y3Rpb25zX3R5cGVkZWZfanNfX1dFQlBBQ0tfSU1Q
T1JURURfTU9EVUxFXzRfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMTcpOworLyogaGFybW9ueSBp
bXBvcnQgKi8gdmFyIF9wcm9kdWN0aW9uc19jYWxsYmFja19qc19fV0VCUEFDS19JTVBPUlRFRF9N
T0RVTEVfNV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygxOCk7CisvKiBoYXJtb255IGltcG9ydCAq
LyB2YXIgX3Byb2R1Y3Rpb25zX2ludGVyZmFjZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVf
Nl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygxOSk7CisvKiBoYXJtb255IGltcG9ydCAqLyB2YXIg
X3Byb2R1Y3Rpb25zX21peGluX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV83X18gPSBfX3dl
YnBhY2tfcmVxdWlyZV9fKDI1KTsKKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfcHJvZHVjdGlv
bnNfZGljdGlvbmFyeV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOF9fID0gX193ZWJwYWNr
X3JlcXVpcmVfXygyNik7CisvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3Byb2R1Y3Rpb25zX25h
bWVzcGFjZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOV9fID0gX193ZWJwYWNrX3JlcXVp
cmVfXygyOCk7CisvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3Byb2R1Y3Rpb25zX2NhbGxiYWNr
X2ludGVyZmFjZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTBfXyA9IF9fd2VicGFja19y
ZXF1aXJlX18oMjkpOwogCi0gICAgY29uc3QgRkxPQVQgPSAiZmxvYXQiOwotICAgIGNvbnN0IElO
VCA9ICJpbnRlZ2VyIjsKLSAgICBjb25zdCBJRCA9ICJpZGVudGlmaWVyIjsKLSAgICBjb25zdCBT
VFIgPSAic3RyaW5nIjsKLSAgICBjb25zdCBPVEhFUiA9ICJvdGhlciI7CiAKLSAgICBjb25zdCBF
TVBUWV9PUEVSQVRJT04gPSBPYmplY3QuZnJlZXplKHsKLSAgICAgIHR5cGU6ICJvcGVyYXRpb24i
LAotICAgICAgZ2V0dGVyOiBmYWxzZSwKLSAgICAgIHNldHRlcjogZmFsc2UsCi0gICAgICBkZWxl
dGVyOiBmYWxzZSwKLSAgICAgIHN0YXRpYzogZmFsc2UsCi0gICAgICBzdHJpbmdpZmllcjogZmFs
c2UKLSAgICB9KTsKIAotICAgIGNvbnN0IEVNUFRZX0lETFRZUEUgPSBPYmplY3QuZnJlZXplKHsK
LSAgICAgIGdlbmVyaWM6IG51bGwsCi0gICAgICBudWxsYWJsZTogZmFsc2UsCi0gICAgICB1bmlv
bjogZmFsc2UsCi0gICAgICBpZGxUeXBlOiBudWxsLAotICAgICAgZXh0QXR0cnM6IFtdCi0gICAg
fSk7CiAKLSAgICBmdW5jdGlvbiBlcnJvcihzdHIpIHsKLSAgICAgIGNvbnN0IG1heFRva2VucyA9
IDU7Ci0gICAgICBjb25zdCB0b2sgPSB0b2tlbnMKLSAgICAgICAgLnNsaWNlKGNvbnN1bWVfcG9z
aXRpb24sIGNvbnN1bWVfcG9zaXRpb24gKyBtYXhUb2tlbnMpCi0gICAgICAgIC5tYXAodCA9PiB0
LnRyaXZpYSArIHQudmFsdWUpLmpvaW4oIiIpOwotICAgICAgLy8gQ291bnQgbmV3bGluZXMgcHJl
Y2VkaW5nIHRoZSBhY3R1YWwgZXJyb25lb3VzIHRva2VuCi0gICAgICBpZiAodG9rZW5zLmxlbmd0
aCkgewotICAgICAgICBsaW5lICs9IGNvdW50KHRva2Vuc1tjb25zdW1lX3Bvc2l0aW9uXS50cml2
aWEsICJcbiIpOwotICAgICAgfQogCi0gICAgICBsZXQgbWVzc2FnZTsKLSAgICAgIGlmIChjdXJy
ZW50KSB7Ci0gICAgICAgIG1lc3NhZ2UgPSBgR290IGFuIGVycm9yIGR1cmluZyBvciByaWdodCBh
ZnRlciBwYXJzaW5nIFxgJHtjdXJyZW50LnBhcnRpYWwgPyAicGFydGlhbCAiIDogIiJ9JHtjdXJy
ZW50LnR5cGV9ICR7Y3VycmVudC5uYW1lfVxgOiAke3N0cn1gCi0gICAgICB9Ci0gICAgICBlbHNl
IHsKLSAgICAgICAgLy8gdGhyb3dpbmcgYmVmb3JlIGFueSB2YWxpZCBkZWZpbml0aW9uCi0gICAg
ICAgIG1lc3NhZ2UgPSBgR290IGFuIGVycm9yIGJlZm9yZSBwYXJzaW5nIGFueSBuYW1lZCBkZWZp
bml0aW9uOiAke3N0cn1gOwotICAgICAgfQogCi0gICAgICB0aHJvdyBuZXcgV2ViSURMUGFyc2VF
cnJvcihtZXNzYWdlLCBsaW5lLCB0b2ssIHRva2Vucy5zbGljZSgwLCBtYXhUb2tlbnMpKTsKLSAg
ICB9CiAKLSAgICBmdW5jdGlvbiBzYW5pdGl6ZV9uYW1lKG5hbWUsIHR5cGUpIHsKLSAgICAgIGlm
IChuYW1lcy5oYXMobmFtZSkpIHsKLSAgICAgICAgZXJyb3IoYFRoZSBuYW1lICIke25hbWV9IiBv
ZiB0eXBlICIke25hbWVzLmdldChuYW1lKX0iIGlzIGFscmVhZHkgc2VlbmApOwotICAgICAgfQot
ICAgICAgbmFtZXMuc2V0KG5hbWUsIHR5cGUpOwotICAgICAgcmV0dXJuIG5hbWU7Ci0gICAgfQog
Ci0gICAgbGV0IGNvbnN1bWVfcG9zaXRpb24gPSAwOwogCi0gICAgZnVuY3Rpb24gcHJvYmUodHlw
ZSkgewotICAgICAgcmV0dXJuIHRva2Vucy5sZW5ndGggPiBjb25zdW1lX3Bvc2l0aW9uICYmIHRv
a2Vuc1tjb25zdW1lX3Bvc2l0aW9uXS50eXBlID09PSB0eXBlOwotICAgIH0KIAotICAgIGZ1bmN0
aW9uIGNvbnN1bWUoLi4uY2FuZGlkYXRlcykgewotICAgICAgLy8gVE9ETzogdXNlIGNvbnN0IHdo
ZW4gU2Vydm8gdXBkYXRlcyBpdHMgSlMgZW5naW5lCi0gICAgICBmb3IgKGxldCB0eXBlIG9mIGNh
bmRpZGF0ZXMpIHsKLSAgICAgICAgaWYgKCFwcm9iZSh0eXBlKSkgY29udGludWU7Ci0gICAgICAg
IGNvbnN0IHRva2VuID0gdG9rZW5zW2NvbnN1bWVfcG9zaXRpb25dOwotICAgICAgICBjb25zdW1l
X3Bvc2l0aW9uKys7Ci0gICAgICAgIGxpbmUgKz0gY291bnQodG9rZW4udHJpdmlhLCAiXG4iKTsK
LSAgICAgICAgcmV0dXJuIHRva2VuOwotICAgICAgfQotICAgIH0KIAotICAgIGZ1bmN0aW9uIHVu
ZXNjYXBlKGlkZW50aWZpZXIpIHsKLSAgICAgIHJldHVybiBpZGVudGlmaWVyLnN0YXJ0c1dpdGgo
J18nKSA/IGlkZW50aWZpZXIuc2xpY2UoMSkgOiBpZGVudGlmaWVyOwotICAgIH0KIAotICAgIGZ1
bmN0aW9uIHVuY29uc3VtZShwb3NpdGlvbikgewotICAgICAgd2hpbGUgKGNvbnN1bWVfcG9zaXRp
b24gPiBwb3NpdGlvbikgewotICAgICAgICBjb25zdW1lX3Bvc2l0aW9uLS07Ci0gICAgICAgIGxp
bmUgLT0gY291bnQodG9rZW5zW2NvbnN1bWVfcG9zaXRpb25dLnRyaXZpYSwgIlxuIik7Ci0gICAg
ICB9Ci0gICAgfQogCi0gICAgZnVuY3Rpb24gY291bnQoc3RyLCBjaGFyKSB7Ci0gICAgICBsZXQg
dG90YWwgPSAwOwotICAgICAgZm9yIChsZXQgaSA9IHN0ci5pbmRleE9mKGNoYXIpOyBpICE9PSAt
MTsgaSA9IHN0ci5pbmRleE9mKGNoYXIsIGkgKyAxKSkgewotICAgICAgICArK3RvdGFsOwotICAg
ICAgfQotICAgICAgcmV0dXJuIHRvdGFsOworCisvKioKKyAqIEBwYXJhbSB7VG9rZW5pc2VyfSB0
b2tlbmlzZXIKKyAqIEBwYXJhbSB7b2JqZWN0fSBvcHRpb25zCisgKiBAcGFyYW0ge2Jvb2xlYW59
IFtvcHRpb25zLmNvbmNyZXRlXQorICovCitmdW5jdGlvbiBwYXJzZUJ5VG9rZW5zKHRva2VuaXNl
ciwgb3B0aW9ucykgeworICBjb25zdCBzb3VyY2UgPSB0b2tlbmlzZXIuc291cmNlOworCisgIGZ1
bmN0aW9uIGVycm9yKHN0cikgeworICAgIHRva2VuaXNlci5lcnJvcihzdHIpOworICB9CisKKyAg
ZnVuY3Rpb24gY29uc3VtZSguLi5jYW5kaWRhdGVzKSB7CisgICAgcmV0dXJuIHRva2VuaXNlci5j
b25zdW1lKC4uLmNhbmRpZGF0ZXMpOworICB9CisKKyAgZnVuY3Rpb24gY2FsbGJhY2soKSB7Cisg
ICAgY29uc3QgY2FsbGJhY2sgPSBjb25zdW1lKCJjYWxsYmFjayIpOworICAgIGlmICghY2FsbGJh
Y2spIHJldHVybjsKKyAgICBpZiAodG9rZW5pc2VyLnByb2JlKCJpbnRlcmZhY2UiKSkgeworICAg
ICAgcmV0dXJuIF9wcm9kdWN0aW9uc19jYWxsYmFja19pbnRlcmZhY2VfanNfX1dFQlBBQ0tfSU1Q
T1JURURfTU9EVUxFXzEwX19bIkNhbGxiYWNrSW50ZXJmYWNlIl0ucGFyc2UodG9rZW5pc2VyLCBj
YWxsYmFjayk7CiAgICAgfQorICAgIHJldHVybiBfcHJvZHVjdGlvbnNfY2FsbGJhY2tfanNfX1dF
QlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfX1siQ2FsbGJhY2tGdW5jdGlvbiJdLnBhcnNlKHRva2Vu
aXNlciwgY2FsbGJhY2spOworICB9CiAKLSAgICBmdW5jdGlvbiBpbnRlZ2VyX3R5cGUoKSB7Ci0g
ICAgICBsZXQgcmV0ID0gIiI7Ci0gICAgICBpZiAoY29uc3VtZSgidW5zaWduZWQiKSkgcmV0ID0g
InVuc2lnbmVkICI7Ci0gICAgICBpZiAoY29uc3VtZSgic2hvcnQiKSkgcmV0dXJuIHJldCArICJz
aG9ydCI7Ci0gICAgICBpZiAoY29uc3VtZSgibG9uZyIpKSB7Ci0gICAgICAgIHJldCArPSAibG9u
ZyI7Ci0gICAgICAgIGlmIChjb25zdW1lKCJsb25nIikpIHJldHVybiByZXQgKyAiIGxvbmciOwot
ICAgICAgICByZXR1cm4gcmV0OworICBmdW5jdGlvbiBpbnRlcmZhY2VfKG9wdHMpIHsKKyAgICBj
b25zdCBiYXNlID0gY29uc3VtZSgiaW50ZXJmYWNlIik7CisgICAgaWYgKCFiYXNlKSByZXR1cm47
CisgICAgY29uc3QgcmV0ID0gX3Byb2R1Y3Rpb25zX21peGluX2pzX19XRUJQQUNLX0lNUE9SVEVE
X01PRFVMRV83X19bIk1peGluIl0ucGFyc2UodG9rZW5pc2VyLCBiYXNlLCBvcHRzKSB8fAorICAg
ICAgX3Byb2R1Y3Rpb25zX2ludGVyZmFjZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9f
WyJJbnRlcmZhY2UiXS5wYXJzZSh0b2tlbmlzZXIsIGJhc2UsIG9wdHMpIHx8CisgICAgICBlcnJv
cigiSW50ZXJmYWNlIGhhcyBubyBwcm9wZXIgYm9keSIpOworICAgIHJldHVybiByZXQ7CisgIH0K
KworICBmdW5jdGlvbiBwYXJ0aWFsKCkgeworICAgIGNvbnN0IHBhcnRpYWwgPSBjb25zdW1lKCJw
YXJ0aWFsIik7CisgICAgaWYgKCFwYXJ0aWFsKSByZXR1cm47CisgICAgcmV0dXJuIF9wcm9kdWN0
aW9uc19kaWN0aW9uYXJ5X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV84X19bIkRpY3Rpb25h
cnkiXS5wYXJzZSh0b2tlbmlzZXIsIHsgcGFydGlhbCB9KSB8fAorICAgICAgaW50ZXJmYWNlXyh7
IHBhcnRpYWwgfSkgfHwKKyAgICAgIF9wcm9kdWN0aW9uc19uYW1lc3BhY2VfanNfX1dFQlBBQ0tf
SU1QT1JURURfTU9EVUxFXzlfX1siTmFtZXNwYWNlIl0ucGFyc2UodG9rZW5pc2VyLCB7IHBhcnRp
YWwgfSkgfHwKKyAgICAgIGVycm9yKCJQYXJ0aWFsIGRvZXNuJ3QgYXBwbHkgdG8gYW55dGhpbmci
KTsKKyAgfQorCisgIGZ1bmN0aW9uIGRlZmluaXRpb24oKSB7CisgICAgcmV0dXJuIGNhbGxiYWNr
KCkgfHwKKyAgICAgIGludGVyZmFjZV8oKSB8fAorICAgICAgcGFydGlhbCgpIHx8CisgICAgICBf
cHJvZHVjdGlvbnNfZGljdGlvbmFyeV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOF9fWyJE
aWN0aW9uYXJ5Il0ucGFyc2UodG9rZW5pc2VyKSB8fAorICAgICAgX3Byb2R1Y3Rpb25zX2VudW1f
anNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX1siRW51bSJdLnBhcnNlKHRva2VuaXNlcikg
fHwKKyAgICAgIF9wcm9kdWN0aW9uc190eXBlZGVmX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVM
RV80X19bIlR5cGVkZWYiXS5wYXJzZSh0b2tlbmlzZXIpIHx8CisgICAgICBfcHJvZHVjdGlvbnNf
aW5jbHVkZXNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX1siSW5jbHVkZXMiXS5wYXJz
ZSh0b2tlbmlzZXIpIHx8CisgICAgICBfcHJvZHVjdGlvbnNfbmFtZXNwYWNlX2pzX19XRUJQQUNL
X0lNUE9SVEVEX01PRFVMRV85X19bIk5hbWVzcGFjZSJdLnBhcnNlKHRva2VuaXNlcik7CisgIH0K
KworICBmdW5jdGlvbiBkZWZpbml0aW9ucygpIHsKKyAgICBpZiAoIXNvdXJjZS5sZW5ndGgpIHJl
dHVybiBbXTsKKyAgICBjb25zdCBkZWZzID0gW107CisgICAgd2hpbGUgKHRydWUpIHsKKyAgICAg
IGNvbnN0IGVhID0gX3Byb2R1Y3Rpb25zX2V4dGVuZGVkX2F0dHJpYnV0ZXNfanNfX1dFQlBBQ0tf
SU1QT1JURURfTU9EVUxFXzNfX1siRXh0ZW5kZWRBdHRyaWJ1dGVzIl0ucGFyc2UodG9rZW5pc2Vy
KTsKKyAgICAgIGNvbnN0IGRlZiA9IGRlZmluaXRpb24oKTsKKyAgICAgIGlmICghZGVmKSB7Cisg
ICAgICAgIGlmIChlYS5sZW5ndGgpIGVycm9yKCJTdHJheSBleHRlbmRlZCBhdHRyaWJ1dGVzIik7
CisgICAgICAgIGJyZWFrOwogICAgICAgfQotICAgICAgaWYgKHJldCkgZXJyb3IoIkZhaWxlZCB0
byBwYXJzZSBpbnRlZ2VyIHR5cGUiKTsKKyAgICAgIGRlZi5leHRBdHRycyA9IGVhOworICAgICAg
ZGVmcy5wdXNoKGRlZik7CiAgICAgfQotCi0gICAgZnVuY3Rpb24gZmxvYXRfdHlwZSgpIHsKLSAg
ICAgIGxldCByZXQgPSAiIjsKLSAgICAgIGlmIChjb25zdW1lKCJ1bnJlc3RyaWN0ZWQiKSkgcmV0
ID0gInVucmVzdHJpY3RlZCAiOwotICAgICAgaWYgKGNvbnN1bWUoImZsb2F0IikpIHJldHVybiBy
ZXQgKyAiZmxvYXQiOwotICAgICAgaWYgKGNvbnN1bWUoImRvdWJsZSIpKSByZXR1cm4gcmV0ICsg
ImRvdWJsZSI7Ci0gICAgICBpZiAocmV0KSBlcnJvcigiRmFpbGVkIHRvIHBhcnNlIGZsb2F0IHR5
cGUiKTsKKyAgICBjb25zdCBlb2YgPSBjb25zdW1lKCJlb2YiKTsKKyAgICBpZiAob3B0aW9ucy5j
b25jcmV0ZSkgeworICAgICAgZGVmcy5wdXNoKGVvZik7CiAgICAgfQorICAgIHJldHVybiBkZWZz
OworICB9CisgIGNvbnN0IHJlcyA9IGRlZmluaXRpb25zKCk7CisgIGlmICh0b2tlbmlzZXIucG9z
aXRpb24gPCBzb3VyY2UubGVuZ3RoKSBlcnJvcigiVW5yZWNvZ25pc2VkIHRva2VucyIpOworICBy
ZXR1cm4gcmVzOworfQorCitmdW5jdGlvbiBwYXJzZShzdHIsIG9wdGlvbnMgPSB7fSkgeworICBj
b25zdCB0b2tlbmlzZXIgPSBuZXcgX3Rva2VuaXNlcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RV
TEVfMF9fWyJUb2tlbmlzZXIiXShzdHIpOworICBpZiAodHlwZW9mIG9wdGlvbnMuc291cmNlTmFt
ZSAhPT0gInVuZGVmaW5lZCIpIHsKKyAgICB0b2tlbmlzZXIuc291cmNlLm5hbWUgPSBvcHRpb25z
LnNvdXJjZU5hbWU7CisgIH0KKyAgcmV0dXJuIHBhcnNlQnlUb2tlbnModG9rZW5pc2VyLCBvcHRp
b25zKTsKK30KIAotICAgIGZ1bmN0aW9uIHByaW1pdGl2ZV90eXBlKCkgewotICAgICAgY29uc3Qg
bnVtX3R5cGUgPSBpbnRlZ2VyX3R5cGUoKSB8fCBmbG9hdF90eXBlKCk7Ci0gICAgICBpZiAobnVt
X3R5cGUpIHJldHVybiBudW1fdHlwZTsKLSAgICAgIGlmIChjb25zdW1lKCJib29sZWFuIikpIHJl
dHVybiAiYm9vbGVhbiI7Ci0gICAgICBpZiAoY29uc3VtZSgiYnl0ZSIpKSByZXR1cm4gImJ5dGUi
OwotICAgICAgaWYgKGNvbnN1bWUoIm9jdGV0IikpIHJldHVybiAib2N0ZXQiOwotICAgIH0KIAot
ICAgIGZ1bmN0aW9uIGNvbnN0X3ZhbHVlKCkgewotICAgICAgaWYgKGNvbnN1bWUoInRydWUiKSkg
cmV0dXJuIHsgdHlwZTogImJvb2xlYW4iLCB2YWx1ZTogdHJ1ZSB9OwotICAgICAgaWYgKGNvbnN1
bWUoImZhbHNlIikpIHJldHVybiB7IHR5cGU6ICJib29sZWFuIiwgdmFsdWU6IGZhbHNlIH07Ci0g
ICAgICBpZiAoY29uc3VtZSgibnVsbCIpKSByZXR1cm4geyB0eXBlOiAibnVsbCIgfTsKLSAgICAg
IGlmIChjb25zdW1lKCJJbmZpbml0eSIpKSByZXR1cm4geyB0eXBlOiAiSW5maW5pdHkiLCBuZWdh
dGl2ZTogZmFsc2UgfTsKLSAgICAgIGlmIChjb25zdW1lKCItSW5maW5pdHkiKSkgcmV0dXJuIHsg
dHlwZTogIkluZmluaXR5IiwgbmVnYXRpdmU6IHRydWUgfTsKLSAgICAgIGlmIChjb25zdW1lKCJO
YU4iKSkgcmV0dXJuIHsgdHlwZTogIk5hTiIgfTsKLSAgICAgIGNvbnN0IHJldCA9IGNvbnN1bWUo
RkxPQVQsIElOVCk7Ci0gICAgICBpZiAocmV0KSByZXR1cm4geyB0eXBlOiAibnVtYmVyIiwgdmFs
dWU6IHJldC52YWx1ZSB9OwotICAgIH0KKy8qKiovIH0pLAorLyogMiAqLworLyoqKi8gKGZ1bmN0
aW9uKG1vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgewog
Ci0gICAgZnVuY3Rpb24gdHlwZV9zdWZmaXgob2JqKSB7Ci0gICAgICBvYmoubnVsbGFibGUgPSAh
IWNvbnN1bWUoIj8iKTsKLSAgICAgIGlmIChwcm9iZSgiPyIpKSBlcnJvcigiQ2FuJ3QgbnVsbGFi
bGUgbW9yZSB0aGFuIG9uY2UiKTsKKyJ1c2Ugc3RyaWN0IjsKK19fd2VicGFja19yZXF1aXJlX18u
cihfX3dlYnBhY2tfZXhwb3J0c19fKTsKKy8qIGhhcm1vbnkgZXhwb3J0IChiaW5kaW5nKSAqLyBf
X3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgInN0cmluZ1R5cGVzIiwg
ZnVuY3Rpb24oKSB7IHJldHVybiBzdHJpbmdUeXBlczsgfSk7CisvKiBoYXJtb255IGV4cG9ydCAo
YmluZGluZykgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sICJh
cmd1bWVudE5hbWVLZXl3b3JkcyIsIGZ1bmN0aW9uKCkgeyByZXR1cm4gYXJndW1lbnROYW1lS2V5
d29yZHM7IH0pOworLyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFja19yZXF1
aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAiVG9rZW5pc2VyIiwgZnVuY3Rpb24oKSB7IHJl
dHVybiBUb2tlbmlzZXI7IH0pOworLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9lcnJvcl9qc19f
V0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygzKTsKKy8q
IGhhcm1vbnkgaW1wb3J0ICovIHZhciBfcHJvZHVjdGlvbnNfaGVscGVyc19qc19fV0VCUEFDS19J
TVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg0KTsKKworCisKKy8vIFRo
ZXNlIHJlZ3VsYXIgZXhwcmVzc2lvbnMgdXNlIHRoZSBzdGlja3kgZmxhZyBzbyB0aGV5IHdpbGwg
b25seSBtYXRjaCBhdAorLy8gdGhlIGN1cnJlbnQgbG9jYXRpb24gKGllLiB0aGUgb2Zmc2V0IG9m
IGxhc3RJbmRleCkuCitjb25zdCB0b2tlblJlID0geworICAvLyBUaGlzIGV4cHJlc3Npb24gdXNl
cyBhIGxvb2thaGVhZCBhc3NlcnRpb24gdG8gY2F0Y2ggZmFsc2UgbWF0Y2hlcworICAvLyBhZ2Fp
bnN0IGludGVnZXJzIGVhcmx5LgorICAiZGVjaW1hbCI6IC8tPyg/PVswLTldKlwufFswLTldK1tl
RV0pKChbMC05XStcLlswLTldKnxbMC05XSpcLlswLTldKykoW0VlXVstK10/WzAtOV0rKT98WzAt
OV0rW0VlXVstK10/WzAtOV0rKS95LAorICAiaW50ZWdlciI6IC8tPygwKFtYeF1bMC05QS1GYS1m
XSt8WzAtN10qKXxbMS05XVswLTldKikveSwKKyAgImlkZW50aWZpZXIiOiAvW18tXT9bQS1aYS16
XVswLTlBLVpfYS16LV0qL3ksCisgICJzdHJpbmciOiAvIlteIl0qIi95LAorICAid2hpdGVzcGFj
ZSI6IC9bXHRcblxyIF0rL3ksCisgICJjb21tZW50IjogLygoXC8oXC8uKnxcKihbXipdfFwqW14v
XSkqXCpcLylbXHRcblxyIF0qKSspL3ksCisgICJvdGhlciI6IC9bXlx0XG5cciAwLTlBLVphLXpd
L3kKK307CisKK2NvbnN0IHN0cmluZ1R5cGVzID0gWworICAiQnl0ZVN0cmluZyIsCisgICJET01T
dHJpbmciLAorICAiVVNWU3RyaW5nIgorXTsKKworY29uc3QgYXJndW1lbnROYW1lS2V5d29yZHMg
PSBbCisgICJhc3luYyIsCisgICJhdHRyaWJ1dGUiLAorICAiY2FsbGJhY2siLAorICAiY29uc3Qi
LAorICAiY29uc3RydWN0b3IiLAorICAiZGVsZXRlciIsCisgICJkaWN0aW9uYXJ5IiwKKyAgImVu
dW0iLAorICAiZ2V0dGVyIiwKKyAgImluY2x1ZGVzIiwKKyAgImluaGVyaXQiLAorICAiaW50ZXJm
YWNlIiwKKyAgIml0ZXJhYmxlIiwKKyAgIm1hcGxpa2UiLAorICAibmFtZXNwYWNlIiwKKyAgInBh
cnRpYWwiLAorICAicmVxdWlyZWQiLAorICAic2V0bGlrZSIsCisgICJzZXR0ZXIiLAorICAic3Rh
dGljIiwKKyAgInN0cmluZ2lmaWVyIiwKKyAgInR5cGVkZWYiLAorICAidW5yZXN0cmljdGVkIgor
XTsKKworY29uc3Qgbm9uUmVnZXhUZXJtaW5hbHMgPSBbCisgICItSW5maW5pdHkiLAorICAiRnJv
emVuQXJyYXkiLAorICAiSW5maW5pdHkiLAorICAiTmFOIiwKKyAgIlByb21pc2UiLAorICAiYXN5
bmMiLAorICAiYm9vbGVhbiIsCisgICJieXRlIiwKKyAgImNvbnN0cnVjdG9yIiwKKyAgImRvdWJs
ZSIsCisgICJmYWxzZSIsCisgICJmbG9hdCIsCisgICJsb25nIiwKKyAgIm1peGluIiwKKyAgIm51
bGwiLAorICAib2N0ZXQiLAorICAib3B0aW9uYWwiLAorICAib3IiLAorICAicmVhZG9ubHkiLAor
ICAicmVjb3JkIiwKKyAgInNlcXVlbmNlIiwKKyAgInNob3J0IiwKKyAgInRydWUiLAorICAidW5z
aWduZWQiLAorICAidm9pZCIKK10uY29uY2F0KGFyZ3VtZW50TmFtZUtleXdvcmRzLCBzdHJpbmdU
eXBlcyk7CisKK2NvbnN0IHB1bmN0dWF0aW9ucyA9IFsKKyAgIigiLAorICAiKSIsCisgICIsIiwK
KyAgIi4uLiIsCisgICI6IiwKKyAgIjsiLAorICAiPCIsCisgICI9IiwKKyAgIj4iLAorICAiPyIs
CisgICJbIiwKKyAgIl0iLAorICAieyIsCisgICJ9IgorXTsKKworY29uc3QgcmVzZXJ2ZWQgPSBb
CisgIC8vICJjb25zdHJ1Y3RvciIgaXMgbm93IGEga2V5d29yZAorICAiX2NvbnN0cnVjdG9yIiwK
KyAgInRvU3RyaW5nIiwKKyAgIl90b1N0cmluZyIsCitdOworCisvKioKKyAqIEBwYXJhbSB7c3Ry
aW5nfSBzdHIKKyAqLworZnVuY3Rpb24gdG9rZW5pc2Uoc3RyKSB7CisgIGNvbnN0IHRva2VucyA9
IFtdOworICBsZXQgbGFzdENoYXJJbmRleCA9IDA7CisgIGxldCB0cml2aWEgPSAiIjsKKyAgbGV0
IGxpbmUgPSAxOworICBsZXQgaW5kZXggPSAwOworICB3aGlsZSAobGFzdENoYXJJbmRleCA8IHN0
ci5sZW5ndGgpIHsKKyAgICBjb25zdCBuZXh0Q2hhciA9IHN0ci5jaGFyQXQobGFzdENoYXJJbmRl
eCk7CisgICAgbGV0IHJlc3VsdCA9IC0xOworCisgICAgaWYgKC9bXHRcblxyIF0vLnRlc3QobmV4
dENoYXIpKSB7CisgICAgICByZXN1bHQgPSBhdHRlbXB0VG9rZW5NYXRjaCgid2hpdGVzcGFjZSIs
IHsgbm9GbHVzaFRyaXZpYTogdHJ1ZSB9KTsKKyAgICB9IGVsc2UgaWYgKG5leHRDaGFyID09PSAn
LycpIHsKKyAgICAgIHJlc3VsdCA9IGF0dGVtcHRUb2tlbk1hdGNoKCJjb21tZW50IiwgeyBub0Zs
dXNoVHJpdmlhOiB0cnVlIH0pOwogICAgIH0KIAotICAgIGZ1bmN0aW9uIGdlbmVyaWNfdHlwZSh0
eXBlTmFtZSkgewotICAgICAgY29uc3QgbmFtZSA9IGNvbnN1bWUoIkZyb3plbkFycmF5IiwgIlBy
b21pc2UiLCAic2VxdWVuY2UiLCAicmVjb3JkIik7Ci0gICAgICBpZiAoIW5hbWUpIHsKLSAgICAg
ICAgcmV0dXJuOwotICAgICAgfQotICAgICAgY29uc3QgcmV0ID0geyBnZW5lcmljOiBuYW1lLnR5
cGUgfTsKLSAgICAgIGNvbnN1bWUoIjwiKSB8fCBlcnJvcihgTm8gb3BlbmluZyBicmFja2V0IGFm
dGVyICR7bmFtZS50eXBlfWApOwotICAgICAgc3dpdGNoIChuYW1lLnR5cGUpIHsKLSAgICAgICAg
Y2FzZSAiUHJvbWlzZSI6Ci0gICAgICAgICAgaWYgKHByb2JlKCJbIikpIGVycm9yKCJQcm9taXNl
IHR5cGUgY2Fubm90IGhhdmUgZXh0ZW5kZWQgYXR0cmlidXRlIik7Ci0gICAgICAgICAgcmV0Lmlk
bFR5cGUgPSByZXR1cm5fdHlwZSh0eXBlTmFtZSk7Ci0gICAgICAgICAgYnJlYWs7Ci0gICAgICAg
IGNhc2UgInNlcXVlbmNlIjoKLSAgICAgICAgY2FzZSAiRnJvemVuQXJyYXkiOgotICAgICAgICAg
IHJldC5pZGxUeXBlID0gdHlwZV93aXRoX2V4dGVuZGVkX2F0dHJpYnV0ZXModHlwZU5hbWUpOwot
ICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlICJyZWNvcmQiOgotICAgICAgICAgIGlmIChw
cm9iZSgiWyIpKSBlcnJvcigiUmVjb3JkIGtleSBjYW5ub3QgaGF2ZSBleHRlbmRlZCBhdHRyaWJ1
dGUiKTsKLSAgICAgICAgICByZXQuaWRsVHlwZSA9IFtdOwotICAgICAgICAgIGNvbnN0IGtleVR5
cGUgPSBjb25zdW1lKC4uLnN0cmluZ1R5cGVzKTsKLSAgICAgICAgICBpZiAoIWtleVR5cGUpIGVy
cm9yKGBSZWNvcmQga2V5IG11c3QgYmUgYSBzdHJpbmcgdHlwZWApOwotICAgICAgICAgIHJldC5p
ZGxUeXBlLnB1c2goT2JqZWN0LmFzc2lnbih7IHR5cGU6IHR5cGVOYW1lIH0sIEVNUFRZX0lETFRZ
UEUsIHsgaWRsVHlwZToga2V5VHlwZS52YWx1ZSB9KSk7Ci0gICAgICAgICAgY29uc3VtZSgiLCIp
IHx8IGVycm9yKCJNaXNzaW5nIGNvbW1hIGFmdGVyIHJlY29yZCBrZXkgdHlwZSIpOwotICAgICAg
ICAgIGNvbnN0IHZhbHVlVHlwZSA9IHR5cGVfd2l0aF9leHRlbmRlZF9hdHRyaWJ1dGVzKHR5cGVO
YW1lKSB8fCBlcnJvcigiRXJyb3IgcGFyc2luZyBnZW5lcmljIHR5cGUgcmVjb3JkIik7Ci0gICAg
ICAgICAgcmV0LmlkbFR5cGUucHVzaCh2YWx1ZVR5cGUpOwotICAgICAgICAgIGJyZWFrOworICAg
IGlmIChyZXN1bHQgIT09IC0xKSB7CisgICAgICBjb25zdCBjdXJyZW50VHJpdmlhID0gdG9rZW5z
LnBvcCgpLnZhbHVlOworICAgICAgbGluZSArPSAoY3VycmVudFRyaXZpYS5tYXRjaCgvXG4vZykg
fHwgW10pLmxlbmd0aDsKKyAgICAgIHRyaXZpYSArPSBjdXJyZW50VHJpdmlhOworICAgICAgaW5k
ZXggLT0gMTsKKyAgICB9IGVsc2UgaWYgKC9bLTAtOS5BLVpfYS16XS8udGVzdChuZXh0Q2hhcikp
IHsKKyAgICAgIHJlc3VsdCA9IGF0dGVtcHRUb2tlbk1hdGNoKCJkZWNpbWFsIik7CisgICAgICBp
ZiAocmVzdWx0ID09PSAtMSkgeworICAgICAgICByZXN1bHQgPSBhdHRlbXB0VG9rZW5NYXRjaCgi
aW50ZWdlciIpOwogICAgICAgfQotICAgICAgaWYgKCFyZXQuaWRsVHlwZSkgZXJyb3IoYEVycm9y
IHBhcnNpbmcgZ2VuZXJpYyB0eXBlICR7bmFtZS50eXBlfWApOwotICAgICAgY29uc3VtZSgiPiIp
IHx8IGVycm9yKGBNaXNzaW5nIGNsb3NpbmcgYnJhY2tldCBhZnRlciAke25hbWUudHlwZX1gKTsK
LSAgICAgIGlmIChuYW1lLnR5cGUgPT09ICJQcm9taXNlIiAmJiBwcm9iZSgiPyIpKSB7Ci0gICAg
ICAgIGVycm9yKCJQcm9taXNlIHR5cGUgY2Fubm90IGJlIG51bGxhYmxlIik7CisgICAgICBpZiAo
cmVzdWx0ID09PSAtMSkgeworICAgICAgICByZXN1bHQgPSBhdHRlbXB0VG9rZW5NYXRjaCgiaWRl
bnRpZmllciIpOworICAgICAgICBjb25zdCBsYXN0SW5kZXggPSB0b2tlbnMubGVuZ3RoIC0gMTsK
KyAgICAgICAgY29uc3QgdG9rZW4gPSB0b2tlbnNbbGFzdEluZGV4XTsKKyAgICAgICAgaWYgKHJl
c3VsdCAhPT0gLTEpIHsKKyAgICAgICAgICBpZiAocmVzZXJ2ZWQuaW5jbHVkZXModG9rZW4udmFs
dWUpKSB7CisgICAgICAgICAgICBjb25zdCBtZXNzYWdlID0gYCR7T2JqZWN0KF9wcm9kdWN0aW9u
c19oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19bInVuZXNjYXBlIl0pKHRv
a2VuLnZhbHVlKX0gaXMgYSByZXNlcnZlZCBpZGVudGlmaWVyIGFuZCBtdXN0IG5vdCBiZSB1c2Vk
LmA7CisgICAgICAgICAgICB0aHJvdyBuZXcgV2ViSURMUGFyc2VFcnJvcihPYmplY3QoX2Vycm9y
X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bInN5bnRheEVycm9yIl0pKHRva2Vucywg
bGFzdEluZGV4LCBudWxsLCBtZXNzYWdlKSk7CisgICAgICAgICAgfSBlbHNlIGlmIChub25SZWdl
eFRlcm1pbmFscy5pbmNsdWRlcyh0b2tlbi52YWx1ZSkpIHsKKyAgICAgICAgICAgIHRva2VuLnR5
cGUgPSB0b2tlbi52YWx1ZTsKKyAgICAgICAgICB9CisgICAgICAgIH0KICAgICAgIH0KLSAgICAg
IHR5cGVfc3VmZml4KHJldCk7Ci0gICAgICByZXR1cm4gcmV0OworICAgIH0gZWxzZSBpZiAobmV4
dENoYXIgPT09ICciJykgeworICAgICAgcmVzdWx0ID0gYXR0ZW1wdFRva2VuTWF0Y2goInN0cmlu
ZyIpOwogICAgIH0KIAotICAgIGZ1bmN0aW9uIHNpbmdsZV90eXBlKHR5cGVOYW1lKSB7Ci0gICAg
ICBjb25zdCByZXQgPSBPYmplY3QuYXNzaWduKHsgdHlwZTogdHlwZU5hbWUgfHwgbnVsbCB9LCBF
TVBUWV9JRExUWVBFKTsKLSAgICAgIGNvbnN0IGdlbmVyaWMgPSBnZW5lcmljX3R5cGUodHlwZU5h
bWUpOwotICAgICAgaWYgKGdlbmVyaWMpIHsKLSAgICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24o
cmV0LCBnZW5lcmljKTsKKyAgICBmb3IgKGNvbnN0IHB1bmN0dWF0aW9uIG9mIHB1bmN0dWF0aW9u
cykgeworICAgICAgaWYgKHN0ci5zdGFydHNXaXRoKHB1bmN0dWF0aW9uLCBsYXN0Q2hhckluZGV4
KSkgeworICAgICAgICB0b2tlbnMucHVzaCh7IHR5cGU6IHB1bmN0dWF0aW9uLCB2YWx1ZTogcHVu
Y3R1YXRpb24sIHRyaXZpYSwgbGluZSwgaW5kZXggfSk7CisgICAgICAgIHRyaXZpYSA9ICIiOwor
ICAgICAgICBsYXN0Q2hhckluZGV4ICs9IHB1bmN0dWF0aW9uLmxlbmd0aDsKKyAgICAgICAgcmVz
dWx0ID0gbGFzdENoYXJJbmRleDsKKyAgICAgICAgYnJlYWs7CiAgICAgICB9Ci0gICAgICBjb25z
dCBwcmltID0gcHJpbWl0aXZlX3R5cGUoKTsKLSAgICAgIGxldCBuYW1lOwotICAgICAgaWYgKHBy
aW0pIHsKLSAgICAgICAgcmV0LmlkbFR5cGUgPSBwcmltOwotICAgICAgfSBlbHNlIGlmIChuYW1l
ID0gY29uc3VtZShJRCwgLi4uc3RyaW5nVHlwZXMpKSB7Ci0gICAgICAgIHJldC5pZGxUeXBlID0g
bmFtZS52YWx1ZTsKLSAgICAgICAgaWYgKHByb2JlKCI8IikpIGVycm9yKGBVbnN1cHBvcnRlZCBn
ZW5lcmljIHR5cGUgJHtuYW1lLnZhbHVlfWApOwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgcmV0
dXJuOwotICAgICAgfQotICAgICAgdHlwZV9zdWZmaXgocmV0KTsKLSAgICAgIGlmIChyZXQubnVs
bGFibGUgJiYgcmV0LmlkbFR5cGUgPT09ICJhbnkiKSBlcnJvcigiVHlwZSBhbnkgY2Fubm90IGJl
IG1hZGUgbnVsbGFibGUiKTsKLSAgICAgIHJldHVybiByZXQ7Ci0gICAgfQotCi0gICAgZnVuY3Rp
b24gdW5pb25fdHlwZSh0eXBlTmFtZSkgewotICAgICAgaWYgKCFjb25zdW1lKCIoIikpIHJldHVy
bjsKLSAgICAgIGNvbnN0IHJldCA9IE9iamVjdC5hc3NpZ24oeyB0eXBlOiB0eXBlTmFtZSB8fCBu
dWxsIH0sIEVNUFRZX0lETFRZUEUsIHsgdW5pb246IHRydWUsIGlkbFR5cGU6IFtdIH0pOwotICAg
ICAgZG8gewotICAgICAgICBjb25zdCB0eXAgPSB0eXBlX3dpdGhfZXh0ZW5kZWRfYXR0cmlidXRl
cygpIHx8IGVycm9yKCJObyB0eXBlIGFmdGVyIG9wZW4gcGFyZW50aGVzaXMgb3IgJ29yJyBpbiB1
bmlvbiB0eXBlIik7Ci0gICAgICAgIHJldC5pZGxUeXBlLnB1c2godHlwKTsKLSAgICAgIH0gd2hp
bGUgKGNvbnN1bWUoIm9yIikpOwotICAgICAgaWYgKHJldC5pZGxUeXBlLmxlbmd0aCA8IDIpIHsK
LSAgICAgICAgZXJyb3IoIkF0IGxlYXN0IHR3byB0eXBlcyBhcmUgZXhwZWN0ZWQgaW4gYSB1bmlv
biB0eXBlIGJ1dCBmb3VuZCBsZXNzIik7Ci0gICAgICB9Ci0gICAgICBpZiAoIWNvbnN1bWUoIiki
KSkgZXJyb3IoIlVudGVybWluYXRlZCB1bmlvbiB0eXBlIik7Ci0gICAgICB0eXBlX3N1ZmZpeChy
ZXQpOwotICAgICAgcmV0dXJuIHJldDsKICAgICB9CiAKLSAgICBmdW5jdGlvbiB0eXBlKHR5cGVO
YW1lKSB7Ci0gICAgICByZXR1cm4gc2luZ2xlX3R5cGUodHlwZU5hbWUpIHx8IHVuaW9uX3R5cGUo
dHlwZU5hbWUpOworICAgIC8vIG90aGVyIGFzIHRoZSBsYXN0IHRyeQorICAgIGlmIChyZXN1bHQg
PT09IC0xKSB7CisgICAgICByZXN1bHQgPSBhdHRlbXB0VG9rZW5NYXRjaCgib3RoZXIiKTsKICAg
ICB9Ci0KLSAgICBmdW5jdGlvbiB0eXBlX3dpdGhfZXh0ZW5kZWRfYXR0cmlidXRlcyh0eXBlTmFt
ZSkgewotICAgICAgY29uc3QgZXh0QXR0cnMgPSBleHRlbmRlZF9hdHRycygpOwotICAgICAgY29u
c3QgcmV0ID0gc2luZ2xlX3R5cGUodHlwZU5hbWUpIHx8IHVuaW9uX3R5cGUodHlwZU5hbWUpOwot
ICAgICAgaWYgKGV4dEF0dHJzLmxlbmd0aCAmJiByZXQpIHJldC5leHRBdHRycyA9IGV4dEF0dHJz
OwotICAgICAgcmV0dXJuIHJldDsKKyAgICBpZiAocmVzdWx0ID09PSAtMSkgeworICAgICAgdGhy
b3cgbmV3IEVycm9yKCJUb2tlbiBzdHJlYW0gbm90IHByb2dyZXNzaW5nIik7CiAgICAgfQorICAg
IGxhc3RDaGFySW5kZXggPSByZXN1bHQ7CisgICAgaW5kZXggKz0gMTsKKyAgfQogCi0gICAgZnVu
Y3Rpb24gYXJndW1lbnQoKSB7Ci0gICAgICBjb25zdCBzdGFydF9wb3NpdGlvbiA9IGNvbnN1bWVf
cG9zaXRpb247Ci0gICAgICBjb25zdCByZXQgPSB7IG9wdGlvbmFsOiBmYWxzZSwgdmFyaWFkaWM6
IGZhbHNlLCBkZWZhdWx0OiBudWxsIH07Ci0gICAgICByZXQuZXh0QXR0cnMgPSBleHRlbmRlZF9h
dHRycygpOwotICAgICAgY29uc3Qgb3B0X3Rva2VuID0gY29uc3VtZSgib3B0aW9uYWwiKTsKLSAg
ICAgIGlmIChvcHRfdG9rZW4pIHsKLSAgICAgICAgcmV0Lm9wdGlvbmFsID0gdHJ1ZTsKLSAgICAg
IH0KLSAgICAgIHJldC5pZGxUeXBlID0gdHlwZV93aXRoX2V4dGVuZGVkX2F0dHJpYnV0ZXMoImFy
Z3VtZW50LXR5cGUiKTsKLSAgICAgIGlmICghcmV0LmlkbFR5cGUpIHsKLSAgICAgICAgdW5jb25z
dW1lKHN0YXJ0X3Bvc2l0aW9uKTsKLSAgICAgICAgcmV0dXJuOwotICAgICAgfQotICAgICAgaWYg
KCFyZXQub3B0aW9uYWwgJiYgY29uc3VtZSgiLi4uIikpIHsKLSAgICAgICAgcmV0LnZhcmlhZGlj
ID0gdHJ1ZTsKLSAgICAgIH0KLSAgICAgIGNvbnN0IG5hbWUgPSBjb25zdW1lKElELCAuLi5hcmd1
bWVudE5hbWVLZXl3b3Jkcyk7Ci0gICAgICBpZiAoIW5hbWUpIHsKLSAgICAgICAgdW5jb25zdW1l
KHN0YXJ0X3Bvc2l0aW9uKTsKLSAgICAgICAgcmV0dXJuOworICAvLyByZW1haW5pbmcgdHJpdmlh
IGFzIGVvZgorICB0b2tlbnMucHVzaCh7CisgICAgdHlwZTogImVvZiIsCisgICAgdmFsdWU6ICIi
LAorICAgIHRyaXZpYQorICB9KTsKKworICByZXR1cm4gdG9rZW5zOworCisgIC8qKgorICAgKiBA
cGFyYW0ge2tleW9mIHRva2VuUmV9IHR5cGUKKyAgICogQHBhcmFtIHtvYmplY3R9IFtvcHRpb25z
XQorICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLm5vRmx1c2hUcml2aWFdCisgICAqLwor
ICBmdW5jdGlvbiBhdHRlbXB0VG9rZW5NYXRjaCh0eXBlLCB7IG5vRmx1c2hUcml2aWEgfSA9IHt9
KSB7CisgICAgY29uc3QgcmUgPSB0b2tlblJlW3R5cGVdOworICAgIHJlLmxhc3RJbmRleCA9IGxh
c3RDaGFySW5kZXg7CisgICAgY29uc3QgcmVzdWx0ID0gcmUuZXhlYyhzdHIpOworICAgIGlmIChy
ZXN1bHQpIHsKKyAgICAgIHRva2Vucy5wdXNoKHsgdHlwZSwgdmFsdWU6IHJlc3VsdFswXSwgdHJp
dmlhLCBsaW5lLCBpbmRleCB9KTsKKyAgICAgIGlmICghbm9GbHVzaFRyaXZpYSkgeworICAgICAg
ICB0cml2aWEgPSAiIjsKICAgICAgIH0KLSAgICAgIHJldC5uYW1lID0gdW5lc2NhcGUobmFtZS52
YWx1ZSk7Ci0gICAgICByZXQuZXNjYXBlZE5hbWUgPSBuYW1lLnZhbHVlOwotICAgICAgaWYgKHJl
dC5vcHRpb25hbCkgewotICAgICAgICByZXQuZGVmYXVsdCA9IGRlZmF1bHRfKCkgfHwgbnVsbDsK
LSAgICAgIH0KLSAgICAgIHJldHVybiByZXQ7CisgICAgICByZXR1cm4gcmUubGFzdEluZGV4Owog
ICAgIH0KKyAgICByZXR1cm4gLTE7CisgIH0KK30KKworY2xhc3MgVG9rZW5pc2VyIHsKKyAgLyoq
CisgICAqIEBwYXJhbSB7c3RyaW5nfSBpZGwKKyAgICovCisgIGNvbnN0cnVjdG9yKGlkbCkgewor
ICAgIHRoaXMuc291cmNlID0gdG9rZW5pc2UoaWRsKTsKKyAgICB0aGlzLnBvc2l0aW9uID0gMDsK
KyAgfQogCi0gICAgZnVuY3Rpb24gYXJndW1lbnRfbGlzdCgpIHsKLSAgICAgIGNvbnN0IHJldCA9
IFtdOwotICAgICAgY29uc3QgYXJnID0gYXJndW1lbnQoKTsKLSAgICAgIGlmICghYXJnKSByZXR1
cm4gcmV0OwotICAgICAgcmV0LnB1c2goYXJnKTsKLSAgICAgIHdoaWxlICh0cnVlKSB7Ci0gICAg
ICAgIGlmICghY29uc3VtZSgiLCIpKSByZXR1cm4gcmV0OwotICAgICAgICBjb25zdCBueHQgPSBh
cmd1bWVudCgpIHx8IGVycm9yKCJUcmFpbGluZyBjb21tYSBpbiBhcmd1bWVudHMgbGlzdCIpOwot
ICAgICAgICByZXQucHVzaChueHQpOwotICAgICAgfQorICAvKioKKyAgICogQHBhcmFtIHtzdHJp
bmd9IG1lc3NhZ2UKKyAgICovCisgIGVycm9yKG1lc3NhZ2UpIHsKKyAgICB0aHJvdyBuZXcgV2Vi
SURMUGFyc2VFcnJvcihPYmplY3QoX2Vycm9yX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8w
X19bInN5bnRheEVycm9yIl0pKHRoaXMuc291cmNlLCB0aGlzLnBvc2l0aW9uLCB0aGlzLmN1cnJl
bnQsIG1lc3NhZ2UpKTsKKyAgfQorCisgIC8qKgorICAgKiBAcGFyYW0ge3N0cmluZ30gdHlwZQor
ICAgKi8KKyAgcHJvYmUodHlwZSkgeworICAgIHJldHVybiB0aGlzLnNvdXJjZS5sZW5ndGggPiB0
aGlzLnBvc2l0aW9uICYmIHRoaXMuc291cmNlW3RoaXMucG9zaXRpb25dLnR5cGUgPT09IHR5cGU7
CisgIH0KKworICAvKioKKyAgICogQHBhcmFtICB7Li4uc3RyaW5nfSBjYW5kaWRhdGVzCisgICAq
LworICBjb25zdW1lKC4uLmNhbmRpZGF0ZXMpIHsKKyAgICBmb3IgKGNvbnN0IHR5cGUgb2YgY2Fu
ZGlkYXRlcykgeworICAgICAgaWYgKCF0aGlzLnByb2JlKHR5cGUpKSBjb250aW51ZTsKKyAgICAg
IGNvbnN0IHRva2VuID0gdGhpcy5zb3VyY2VbdGhpcy5wb3NpdGlvbl07CisgICAgICB0aGlzLnBv
c2l0aW9uKys7CisgICAgICByZXR1cm4gdG9rZW47CiAgICAgfQorICB9CiAKLSAgICBmdW5jdGlv
biBzaW1wbGVfZXh0ZW5kZWRfYXR0cigpIHsKLSAgICAgIGNvbnN0IG5hbWUgPSBjb25zdW1lKElE
KTsKLSAgICAgIGlmICghbmFtZSkgcmV0dXJuOwotICAgICAgY29uc3QgcmV0ID0gewotICAgICAg
ICBuYW1lOiBuYW1lLnZhbHVlLAotICAgICAgICBhcmd1bWVudHM6IG51bGwsCi0gICAgICAgIHR5
cGU6ICJleHRlbmRlZC1hdHRyaWJ1dGUiLAotICAgICAgICByaHM6IG51bGwKLSAgICAgIH07Ci0g
ICAgICBjb25zdCBlcSA9IGNvbnN1bWUoIj0iKTsKLSAgICAgIGlmIChlcSkgewotICAgICAgICBy
ZXQucmhzID0gY29uc3VtZShJRCwgRkxPQVQsIElOVCwgU1RSKTsKLSAgICAgICAgaWYgKHJldC5y
aHMpIHsKLSAgICAgICAgICAvLyBObyB0cml2aWEgZXhwb3N1cmUgeWV0Ci0gICAgICAgICAgcmV0
LnJocy50cml2aWEgPSB1bmRlZmluZWQ7Ci0gICAgICAgIH0KLSAgICAgIH0KLSAgICAgIGlmIChj
b25zdW1lKCIoIikpIHsKLSAgICAgICAgaWYgKGVxICYmICFyZXQucmhzKSB7Ci0gICAgICAgICAg
Ly8gW0V4cG9zZWQ9KFdpbmRvdyxXb3JrZXIpXQotICAgICAgICAgIHJldC5yaHMgPSB7Ci0gICAg
ICAgICAgICB0eXBlOiAiaWRlbnRpZmllci1saXN0IiwKLSAgICAgICAgICAgIHZhbHVlOiBpZGVu
dGlmaWVycygpCi0gICAgICAgICAgfTsKLSAgICAgICAgfQotICAgICAgICBlbHNlIHsKLSAgICAg
ICAgICAvLyBbTmFtZWRDb25zdHJ1Y3Rvcj1BdWRpbyhET01TdHJpbmcgc3JjKV0gb3IgW0NvbnN0
cnVjdG9yKERPTVN0cmluZyBzdHIpXQotICAgICAgICAgIHJldC5hcmd1bWVudHMgPSBhcmd1bWVu
dF9saXN0KCk7Ci0gICAgICAgIH0KLSAgICAgICAgY29uc3VtZSgiKSIpIHx8IGVycm9yKCJVbmV4
cGVjdGVkIHRva2VuIGluIGV4dGVuZGVkIGF0dHJpYnV0ZSBhcmd1bWVudCBsaXN0Iik7Ci0gICAg
ICB9Ci0gICAgICBpZiAoZXEgJiYgIXJldC5yaHMpIGVycm9yKCJObyByaWdodCBoYW5kIHNpZGUg
dG8gZXh0ZW5kZWQgYXR0cmlidXRlIGFzc2lnbm1lbnQiKTsKLSAgICAgIHJldHVybiByZXQ7Ci0g
ICAgfQotCi0gICAgLy8gTm90ZTogd2UgcGFyc2Ugc29tZXRoaW5nIHNpbXBsZXIgdGhhbiB0aGUg
b2ZmaWNpYWwgc3ludGF4LiBJdCdzIGFsbCB0aGF0IGV2ZXIKLSAgICAvLyBzZWVtcyB0byBiZSB1
c2VkCi0gICAgZnVuY3Rpb24gZXh0ZW5kZWRfYXR0cnMoKSB7Ci0gICAgICBjb25zdCBlYXMgPSBb
XTsKLSAgICAgIGlmICghY29uc3VtZSgiWyIpKSByZXR1cm4gZWFzOwotICAgICAgZWFzWzBdID0g
c2ltcGxlX2V4dGVuZGVkX2F0dHIoKSB8fCBlcnJvcigiRXh0ZW5kZWQgYXR0cmlidXRlIHdpdGgg
bm90IGNvbnRlbnQiKTsKLSAgICAgIHdoaWxlIChjb25zdW1lKCIsIikpIHsKLSAgICAgICAgZWFz
LnB1c2goc2ltcGxlX2V4dGVuZGVkX2F0dHIoKSB8fCBlcnJvcigiVHJhaWxpbmcgY29tbWEgaW4g
ZXh0ZW5kZWQgYXR0cmlidXRlIikpOwotICAgICAgfQotICAgICAgY29uc3VtZSgiXSIpIHx8IGVy
cm9yKCJObyBlbmQgb2YgZXh0ZW5kZWQgYXR0cmlidXRlIik7Ci0gICAgICByZXR1cm4gZWFzOwot
ICAgIH0KLQotICAgIGZ1bmN0aW9uIGRlZmF1bHRfKCkgewotICAgICAgaWYgKGNvbnN1bWUoIj0i
KSkgewotICAgICAgICBjb25zdCBkZWYgPSBjb25zdF92YWx1ZSgpOwotICAgICAgICBpZiAoZGVm
KSB7Ci0gICAgICAgICAgcmV0dXJuIGRlZjsKLSAgICAgICAgfSBlbHNlIGlmIChjb25zdW1lKCJb
IikpIHsKLSAgICAgICAgICBpZiAoIWNvbnN1bWUoIl0iKSkgZXJyb3IoIkRlZmF1bHQgc2VxdWVu
Y2UgdmFsdWUgbXVzdCBiZSBlbXB0eSIpOwotICAgICAgICAgIHJldHVybiB7IHR5cGU6ICJzZXF1
ZW5jZSIsIHZhbHVlOiBbXSB9OwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIGNvbnN0IHN0
ciA9IGNvbnN1bWUoU1RSKSB8fCBlcnJvcigiTm8gdmFsdWUgZm9yIGRlZmF1bHQiKTsKLSAgICAg
ICAgICBzdHIudmFsdWUgPSBzdHIudmFsdWUuc2xpY2UoMSwgLTEpOwotICAgICAgICAgIC8vIE5v
IHRyaXZpYSBleHBvc3VyZSB5ZXQKLSAgICAgICAgICBzdHIudHJpdmlhID0gdW5kZWZpbmVkOwot
ICAgICAgICAgIHJldHVybiBzdHI7Ci0gICAgICAgIH0KLSAgICAgIH0KKyAgLyoqCisgICAqIEBw
YXJhbSB7bnVtYmVyfSBwb3NpdGlvbgorICAgKi8KKyAgdW5jb25zdW1lKHBvc2l0aW9uKSB7Cisg
ICAgdGhpcy5wb3NpdGlvbiA9IHBvc2l0aW9uOworICB9Cit9CisKK2NsYXNzIFdlYklETFBhcnNl
RXJyb3IgZXh0ZW5kcyBFcnJvciB7CisgIGNvbnN0cnVjdG9yKHsgbWVzc2FnZSwgYmFyZU1lc3Nh
Z2UsIGNvbnRleHQsIGxpbmUsIHNvdXJjZU5hbWUsIGlucHV0LCB0b2tlbnMgfSkgeworICAgIHN1
cGVyKG1lc3NhZ2UpOworCisgICAgdGhpcy5uYW1lID0gIldlYklETFBhcnNlRXJyb3IiOyAvLyBu
b3QgdG8gYmUgbWFuZ2xlZAorICAgIHRoaXMuYmFyZU1lc3NhZ2UgPSBiYXJlTWVzc2FnZTsKKyAg
ICB0aGlzLmNvbnRleHQgPSBjb250ZXh0OworICAgIHRoaXMubGluZSA9IGxpbmU7CisgICAgdGhp
cy5zb3VyY2VOYW1lID0gc291cmNlTmFtZTsKKyAgICB0aGlzLmlucHV0ID0gaW5wdXQ7CisgICAg
dGhpcy50b2tlbnMgPSB0b2tlbnM7CisgIH0KK30KKworCisvKioqLyB9KSwKKy8qIDMgKi8KKy8q
KiovIChmdW5jdGlvbihtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1
aXJlX18pIHsKKworInVzZSBzdHJpY3QiOworX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFj
a19leHBvcnRzX18pOworLyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFja19y
ZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAic3ludGF4RXJyb3IiLCBmdW5jdGlvbigp
IHsgcmV0dXJuIHN5bnRheEVycm9yOyB9KTsKKy8qIGhhcm1vbnkgZXhwb3J0IChiaW5kaW5nKSAq
LyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgInZhbGlkYXRpb25F
cnJvciIsIGZ1bmN0aW9uKCkgeyByZXR1cm4gdmFsaWRhdGlvbkVycm9yOyB9KTsKKy8qKgorICog
QHBhcmFtIHtzdHJpbmd9IHRleHQKKyAqLworZnVuY3Rpb24gbGFzdExpbmUodGV4dCkgeworICBj
b25zdCBzcGxpdHRlZCA9IHRleHQuc3BsaXQoIlxuIik7CisgIHJldHVybiBzcGxpdHRlZFtzcGxp
dHRlZC5sZW5ndGggLSAxXTsKK30KKworLyoqCisgKiBAdHlwZWRlZiB7b2JqZWN0fSBXZWJJREwy
RXJyb3JPcHRpb25zCisgKiBAcHJvcGVydHkgeyJlcnJvciIgfCAid2FybmluZyJ9IGxldmVsCisg
KiBAcHJvcGVydHkge0Z1bmN0aW9ufSBhdXRvZml4CisgKgorICogQHBhcmFtIHtzdHJpbmd9IG1l
c3NhZ2UgZXJyb3IgbWVzc2FnZQorICogQHBhcmFtIHsiU3ludGF4IiB8ICJWYWxpZGF0aW9uIn0g
a2luZCBlcnJvciB0eXBlCisgKiBAcGFyYW0ge1dlYklETDJFcnJvck9wdGlvbnN9IFtvcHRpb25z
XQorICovCitmdW5jdGlvbiBlcnJvcihzb3VyY2UsIHBvc2l0aW9uLCBjdXJyZW50LCBtZXNzYWdl
LCBraW5kLCB7IGxldmVsID0gImVycm9yIiwgYXV0b2ZpeCB9ID0ge30pIHsKKyAgLyoqCisgICAq
IEBwYXJhbSB7bnVtYmVyfSBjb3VudAorICAgKi8KKyAgZnVuY3Rpb24gc2xpY2VUb2tlbnMoY291
bnQpIHsKKyAgICByZXR1cm4gY291bnQgPiAwID8KKyAgICAgIHNvdXJjZS5zbGljZShwb3NpdGlv
biwgcG9zaXRpb24gKyBjb3VudCkgOgorICAgICAgc291cmNlLnNsaWNlKE1hdGgubWF4KHBvc2l0
aW9uICsgY291bnQsIDApLCBwb3NpdGlvbik7CisgIH0KKworICBmdW5jdGlvbiB0b2tlbnNUb1Rl
eHQoaW5wdXRzLCB7IHByZWNlZGVzIH0gPSB7fSkgeworICAgIGNvbnN0IHRleHQgPSBpbnB1dHMu
bWFwKHQgPT4gdC50cml2aWEgKyB0LnZhbHVlKS5qb2luKCIiKTsKKyAgICBjb25zdCBuZXh0VG9r
ZW4gPSBzb3VyY2VbcG9zaXRpb25dOworICAgIGlmIChuZXh0VG9rZW4udHlwZSA9PT0gImVvZiIp
IHsKKyAgICAgIHJldHVybiB0ZXh0OwogICAgIH0KKyAgICBpZiAocHJlY2VkZXMpIHsKKyAgICAg
IHJldHVybiB0ZXh0ICsgbmV4dFRva2VuLnRyaXZpYTsKKyAgICB9CisgICAgcmV0dXJuIHRleHQu
c2xpY2UobmV4dFRva2VuLnRyaXZpYS5sZW5ndGgpOworICB9CiAKLSAgICBmdW5jdGlvbiBjb25z
dF8oKSB7Ci0gICAgICBpZiAoIWNvbnN1bWUoImNvbnN0IikpIHJldHVybjsKLSAgICAgIGNvbnN0
IHJldCA9IHsgdHlwZTogImNvbnN0IiwgbnVsbGFibGU6IGZhbHNlIH07Ci0gICAgICBsZXQgdHlw
ID0gcHJpbWl0aXZlX3R5cGUoKTsKLSAgICAgIGlmICghdHlwKSB7Ci0gICAgICAgIHR5cCA9IGNv
bnN1bWUoSUQpIHx8IGVycm9yKCJObyB0eXBlIGZvciBjb25zdCIpOwotICAgICAgICB0eXAgPSB0
eXAudmFsdWU7Ci0gICAgICB9Ci0gICAgICByZXQuaWRsVHlwZSA9IE9iamVjdC5hc3NpZ24oeyB0
eXBlOiAiY29uc3QtdHlwZSIgfSwgRU1QVFlfSURMVFlQRSwgeyBpZGxUeXBlOiB0eXAgfSk7Ci0g
ICAgICB0eXBlX3N1ZmZpeChyZXQpOwotICAgICAgY29uc3QgbmFtZSA9IGNvbnN1bWUoSUQpIHx8
IGVycm9yKCJObyBuYW1lIGZvciBjb25zdCIpOwotICAgICAgcmV0Lm5hbWUgPSBuYW1lLnZhbHVl
OwotICAgICAgY29uc3VtZSgiPSIpIHx8IGVycm9yKCJObyB2YWx1ZSBhc3NpZ25tZW50IGZvciBj
b25zdCIpOwotICAgICAgY29uc3QgY250ID0gY29uc3RfdmFsdWUoKTsKLSAgICAgIGlmIChjbnQp
IHJldC52YWx1ZSA9IGNudDsKLSAgICAgIGVsc2UgZXJyb3IoIk5vIHZhbHVlIGZvciBjb25zdCIp
OwotICAgICAgY29uc3VtZSgiOyIpIHx8IGVycm9yKCJVbnRlcm1pbmF0ZWQgY29uc3QiKTsKLSAg
ICAgIHJldHVybiByZXQ7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gaW5oZXJpdGFuY2UoKSB7Ci0g
ICAgICBpZiAoY29uc3VtZSgiOiIpKSB7Ci0gICAgICAgIGNvbnN0IGluaCA9IGNvbnN1bWUoSUQp
IHx8IGVycm9yKCJObyB0eXBlIGluIGluaGVyaXRhbmNlIik7Ci0gICAgICAgIHJldHVybiBpbmgu
dmFsdWU7CisgIGNvbnN0IG1heFRva2VucyA9IDU7IC8vIGFyYml0cmFyeSBidXQgd29ya3Mgd2Vs
bCBlbm91Z2gKKyAgY29uc3QgbGluZSA9CisgICAgc291cmNlW3Bvc2l0aW9uXS50eXBlICE9PSAi
ZW9mIiA/IHNvdXJjZVtwb3NpdGlvbl0ubGluZSA6CisgICAgc291cmNlLmxlbmd0aCA+IDEgPyBz
b3VyY2VbcG9zaXRpb24gLSAxXS5saW5lIDoKKyAgICAxOworCisgIGNvbnN0IHByZWNlZGluZ0xh
c3RMaW5lID0gbGFzdExpbmUoCisgICAgdG9rZW5zVG9UZXh0KHNsaWNlVG9rZW5zKC1tYXhUb2tl
bnMpLCB7IHByZWNlZGVzOiB0cnVlIH0pCisgICk7CisKKyAgY29uc3Qgc3Vic2VxdWVudFRva2Vu
cyA9IHNsaWNlVG9rZW5zKG1heFRva2Vucyk7CisgIGNvbnN0IHN1YnNlcXVlbnRUZXh0ID0gdG9r
ZW5zVG9UZXh0KHN1YnNlcXVlbnRUb2tlbnMpOworICBjb25zdCBzdWJzZXF1ZW50Rmlyc3RMaW5l
ID0gc3Vic2VxdWVudFRleHQuc3BsaXQoIlxuIilbMF07CisKKyAgY29uc3Qgc3BhY2VkID0gIiAi
LnJlcGVhdChwcmVjZWRpbmdMYXN0TGluZS5sZW5ndGgpICsgIl4iOworICBjb25zdCBzb3VyY2VD
b250ZXh0ID0gcHJlY2VkaW5nTGFzdExpbmUgKyBzdWJzZXF1ZW50Rmlyc3RMaW5lICsgIlxuIiAr
IHNwYWNlZDsKKworICBjb25zdCBjb250ZXh0VHlwZSA9IGtpbmQgPT09ICJTeW50YXgiID8gInNp
bmNlIiA6ICJpbnNpZGUiOworICBjb25zdCBpblNvdXJjZU5hbWUgPSBzb3VyY2UubmFtZSA/IGAg
aW4gJHtzb3VyY2UubmFtZX1gIDogIiI7CisgIGNvbnN0IGdyYW1tYXRpY2FsQ29udGV4dCA9IChj
dXJyZW50ICYmIGN1cnJlbnQubmFtZSkgPyBgLCAke2NvbnRleHRUeXBlfSBcYCR7Y3VycmVudC5w
YXJ0aWFsID8gInBhcnRpYWwgIiA6ICIifSR7Y3VycmVudC50eXBlfSAke2N1cnJlbnQubmFtZX1c
YGAgOiAiIjsKKyAgY29uc3QgY29udGV4dCA9IGAke2tpbmR9IGVycm9yIGF0IGxpbmUgJHtsaW5l
fSR7aW5Tb3VyY2VOYW1lfSR7Z3JhbW1hdGljYWxDb250ZXh0fTpcbiR7c291cmNlQ29udGV4dH1g
OworICByZXR1cm4geworICAgIG1lc3NhZ2U6IGAke2NvbnRleHR9ICR7bWVzc2FnZX1gLAorICAg
IGJhcmVNZXNzYWdlOiBtZXNzYWdlLAorICAgIGNvbnRleHQsCisgICAgbGluZSwKKyAgICBzb3Vy
Y2VOYW1lOiBzb3VyY2UubmFtZSwKKyAgICBsZXZlbCwKKyAgICBhdXRvZml4LAorICAgIGlucHV0
OiBzdWJzZXF1ZW50VGV4dCwKKyAgICB0b2tlbnM6IHN1YnNlcXVlbnRUb2tlbnMKKyAgfTsKK30K
KworLyoqCisgKiBAcGFyYW0ge3N0cmluZ30gbWVzc2FnZSBlcnJvciBtZXNzYWdlCisgKi8KK2Z1
bmN0aW9uIHN5bnRheEVycm9yKHNvdXJjZSwgcG9zaXRpb24sIGN1cnJlbnQsIG1lc3NhZ2UpIHsK
KyAgcmV0dXJuIGVycm9yKHNvdXJjZSwgcG9zaXRpb24sIGN1cnJlbnQsIG1lc3NhZ2UsICJTeW50
YXgiKTsKK30KKworLyoqCisgKiBAcGFyYW0ge3N0cmluZ30gbWVzc2FnZSBlcnJvciBtZXNzYWdl
CisgKiBAcGFyYW0ge1dlYklETDJFcnJvck9wdGlvbnN9IFtvcHRpb25zXQorICovCitmdW5jdGlv
biB2YWxpZGF0aW9uRXJyb3Ioc291cmNlLCB0b2tlbiwgY3VycmVudCwgbWVzc2FnZSwgb3B0aW9u
cykgeworICByZXR1cm4gZXJyb3Ioc291cmNlLCB0b2tlbi5pbmRleCwgY3VycmVudCwgbWVzc2Fn
ZSwgIlZhbGlkYXRpb24iLCBvcHRpb25zKTsKK30KKworCisvKioqLyB9KSwKKy8qIDQgKi8KKy8q
KiovIChmdW5jdGlvbihtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1
aXJlX18pIHsKKworInVzZSBzdHJpY3QiOworX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFj
a19leHBvcnRzX18pOworLyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFja19y
ZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAidW5lc2NhcGUiLCBmdW5jdGlvbigpIHsg
cmV0dXJuIHVuZXNjYXBlOyB9KTsKKy8qIGhhcm1vbnkgZXhwb3J0IChiaW5kaW5nKSAqLyBfX3dl
YnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgImxpc3QiLCBmdW5jdGlvbigp
IHsgcmV0dXJuIGxpc3Q7IH0pOworLyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2Vi
cGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAiY29uc3RfdmFsdWUiLCBmdW5j
dGlvbigpIHsgcmV0dXJuIGNvbnN0X3ZhbHVlOyB9KTsKKy8qIGhhcm1vbnkgZXhwb3J0IChiaW5k
aW5nKSAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgImNvbnN0
X2RhdGEiLCBmdW5jdGlvbigpIHsgcmV0dXJuIGNvbnN0X2RhdGE7IH0pOworLyogaGFybW9ueSBl
eHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0
c19fLCAicHJpbWl0aXZlX3R5cGUiLCBmdW5jdGlvbigpIHsgcmV0dXJuIHByaW1pdGl2ZV90eXBl
OyB9KTsKKy8qIGhhcm1vbnkgZXhwb3J0IChiaW5kaW5nKSAqLyBfX3dlYnBhY2tfcmVxdWlyZV9f
LmQoX193ZWJwYWNrX2V4cG9ydHNfXywgImlkZW50aWZpZXJzIiwgZnVuY3Rpb24oKSB7IHJldHVy
biBpZGVudGlmaWVyczsgfSk7CisvKiBoYXJtb255IGV4cG9ydCAoYmluZGluZykgKi8gX193ZWJw
YWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sICJhcmd1bWVudF9saXN0IiwgZnVu
Y3Rpb24oKSB7IHJldHVybiBhcmd1bWVudF9saXN0OyB9KTsKKy8qIGhhcm1vbnkgZXhwb3J0IChi
aW5kaW5nKSAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgInR5
cGVfd2l0aF9leHRlbmRlZF9hdHRyaWJ1dGVzIiwgZnVuY3Rpb24oKSB7IHJldHVybiB0eXBlX3dp
dGhfZXh0ZW5kZWRfYXR0cmlidXRlczsgfSk7CisvKiBoYXJtb255IGV4cG9ydCAoYmluZGluZykg
Ki8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sICJyZXR1cm5fdHlw
ZSIsIGZ1bmN0aW9uKCkgeyByZXR1cm4gcmV0dXJuX3R5cGU7IH0pOworLyogaGFybW9ueSBleHBv
cnQgKGJpbmRpbmcpICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19f
LCAic3RyaW5naWZpZXIiLCBmdW5jdGlvbigpIHsgcmV0dXJuIHN0cmluZ2lmaWVyOyB9KTsKKy8q
IGhhcm1vbnkgZXhwb3J0IChiaW5kaW5nKSAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJw
YWNrX2V4cG9ydHNfXywgImF1dG9maXhBZGRFeHBvc2VkV2luZG93IiwgZnVuY3Rpb24oKSB7IHJl
dHVybiBhdXRvZml4QWRkRXhwb3NlZFdpbmRvdzsgfSk7CisvKiBoYXJtb255IGltcG9ydCAqLyB2
YXIgX3R5cGVfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1
aXJlX18oNSk7CisvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2FyZ3VtZW50X2pzX19XRUJQQUNL
X0lNUE9SVEVEX01PRFVMRV8xX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDgpOworLyogaGFybW9u
eSBpbXBvcnQgKi8gdmFyIF90b2tlbl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fID0g
X193ZWJwYWNrX3JlcXVpcmVfXygxMik7CisvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2V4dGVu
ZGVkX2F0dHJpYnV0ZXNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXyA9IF9fd2VicGFj
a19yZXF1aXJlX18oMTApOworLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9vcGVyYXRpb25fanNf
X1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMTMpOwor
LyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9hdHRyaWJ1dGVfanNfX1dFQlBBQ0tfSU1QT1JURURf
TU9EVUxFXzVfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMTQpOworLyogaGFybW9ueSBpbXBvcnQg
Ki8gdmFyIF90b2tlbmlzZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfXyA9IF9fd2Vi
cGFja19yZXF1aXJlX18oMik7CisKKworCisKKworCisKKworLyoqCisgKiBAcGFyYW0ge3N0cmlu
Z30gaWRlbnRpZmllcgorICovCitmdW5jdGlvbiB1bmVzY2FwZShpZGVudGlmaWVyKSB7CisgIHJl
dHVybiBpZGVudGlmaWVyLnN0YXJ0c1dpdGgoJ18nKSA/IGlkZW50aWZpZXIuc2xpY2UoMSkgOiBp
ZGVudGlmaWVyOworfQorCisvKioKKyAqIFBhcnNlcyBjb21tYS1zZXBhcmF0ZWQgbGlzdAorICog
QHBhcmFtIHtpbXBvcnQoIi4uL3Rva2VuaXNlciIpLlRva2VuaXNlcn0gdG9rZW5pc2VyCisgKiBA
cGFyYW0ge29iamVjdH0gYXJncworICogQHBhcmFtIHtGdW5jdGlvbn0gYXJncy5wYXJzZXIgcGFy
c2VyIGZ1bmN0aW9uIGZvciBlYWNoIGl0ZW0KKyAqIEBwYXJhbSB7Ym9vbGVhbn0gW2FyZ3MuYWxs
b3dEYW5nbGVyXSB3aGV0aGVyIHRvIGFsbG93IGRhbmdsaW5nIGNvbW1hCisgKiBAcGFyYW0ge3N0
cmluZ30gW2FyZ3MubGlzdE5hbWVdIHRoZSBuYW1lIHRvIGJlIHNob3duIG9uIGVycm9yIG1lc3Nh
Z2VzCisgKi8KK2Z1bmN0aW9uIGxpc3QodG9rZW5pc2VyLCB7IHBhcnNlciwgYWxsb3dEYW5nbGVy
LCBsaXN0TmFtZSA9ICJsaXN0IiB9KSB7CisgIGNvbnN0IGZpcnN0ID0gcGFyc2VyKHRva2VuaXNl
cik7CisgIGlmICghZmlyc3QpIHsKKyAgICByZXR1cm4gW107CisgIH0KKyAgZmlyc3QudG9rZW5z
LnNlcGFyYXRvciA9IHRva2VuaXNlci5jb25zdW1lKCIsIik7CisgIGNvbnN0IGl0ZW1zID0gW2Zp
cnN0XTsKKyAgd2hpbGUgKGZpcnN0LnRva2Vucy5zZXBhcmF0b3IpIHsKKyAgICBjb25zdCBpdGVt
ID0gcGFyc2VyKHRva2VuaXNlcik7CisgICAgaWYgKCFpdGVtKSB7CisgICAgICBpZiAoIWFsbG93
RGFuZ2xlcikgeworICAgICAgICB0b2tlbmlzZXIuZXJyb3IoYFRyYWlsaW5nIGNvbW1hIGluICR7
bGlzdE5hbWV9YCk7CiAgICAgICB9CisgICAgICBicmVhazsKKyAgICB9CisgICAgaXRlbS50b2tl
bnMuc2VwYXJhdG9yID0gdG9rZW5pc2VyLmNvbnN1bWUoIiwiKTsKKyAgICBpdGVtcy5wdXNoKGl0
ZW0pOworICAgIGlmICghaXRlbS50b2tlbnMuc2VwYXJhdG9yKSBicmVhazsKKyAgfQorICByZXR1
cm4gaXRlbXM7Cit9CisKKy8qKgorICogQHBhcmFtIHtpbXBvcnQoIi4uL3Rva2VuaXNlciIpLlRv
a2VuaXNlcn0gdG9rZW5pc2VyCisgKi8KK2Z1bmN0aW9uIGNvbnN0X3ZhbHVlKHRva2VuaXNlcikg
eworICByZXR1cm4gdG9rZW5pc2VyLmNvbnN1bWUoInRydWUiLCAiZmFsc2UiLCAiSW5maW5pdHki
LCAiLUluZmluaXR5IiwgIk5hTiIsICJkZWNpbWFsIiwgImludGVnZXIiKTsKK30KKworLyoqCisg
KiBAcGFyYW0ge29iamVjdH0gdG9rZW4KKyAqIEBwYXJhbSB7c3RyaW5nfSB0b2tlbi50eXBlCisg
KiBAcGFyYW0ge3N0cmluZ30gdG9rZW4udmFsdWUKKyAqLworZnVuY3Rpb24gY29uc3RfZGF0YSh7
IHR5cGUsIHZhbHVlIH0pIHsKKyAgc3dpdGNoICh0eXBlKSB7CisgICAgY2FzZSAidHJ1ZSI6Cisg
ICAgY2FzZSAiZmFsc2UiOgorICAgICAgcmV0dXJuIHsgdHlwZTogImJvb2xlYW4iLCB2YWx1ZTog
dHlwZSA9PT0gInRydWUiIH07CisgICAgY2FzZSAiSW5maW5pdHkiOgorICAgIGNhc2UgIi1JbmZp
bml0eSI6CisgICAgICByZXR1cm4geyB0eXBlOiAiSW5maW5pdHkiLCBuZWdhdGl2ZTogdHlwZS5z
dGFydHNXaXRoKCItIikgfTsKKyAgICBjYXNlICJbIjoKKyAgICAgIHJldHVybiB7IHR5cGU6ICJz
ZXF1ZW5jZSIsIHZhbHVlOiBbXSB9OworICAgIGNhc2UgInsiOgorICAgICAgcmV0dXJuIHsgdHlw
ZTogImRpY3Rpb25hcnkiIH07CisgICAgY2FzZSAiZGVjaW1hbCI6CisgICAgY2FzZSAiaW50ZWdl
ciI6CisgICAgICByZXR1cm4geyB0eXBlOiAibnVtYmVyIiwgdmFsdWUgfTsKKyAgICBjYXNlICJz
dHJpbmciOgorICAgICAgcmV0dXJuIHsgdHlwZTogInN0cmluZyIsIHZhbHVlOiB2YWx1ZS5zbGlj
ZSgxLCAtMSkgfTsKKyAgICBkZWZhdWx0OgorICAgICAgcmV0dXJuIHsgdHlwZSB9OworICB9Cit9
CisKKy8qKgorICogQHBhcmFtIHtpbXBvcnQoIi4uL3Rva2VuaXNlciIpLlRva2VuaXNlcn0gdG9r
ZW5pc2VyCisgKi8KK2Z1bmN0aW9uIHByaW1pdGl2ZV90eXBlKHRva2VuaXNlcikgeworICBmdW5j
dGlvbiBpbnRlZ2VyX3R5cGUoKSB7CisgICAgY29uc3QgcHJlZml4ID0gdG9rZW5pc2VyLmNvbnN1
bWUoInVuc2lnbmVkIik7CisgICAgY29uc3QgYmFzZSA9IHRva2VuaXNlci5jb25zdW1lKCJzaG9y
dCIsICJsb25nIik7CisgICAgaWYgKGJhc2UpIHsKKyAgICAgIGNvbnN0IHBvc3RmaXggPSB0b2tl
bmlzZXIuY29uc3VtZSgibG9uZyIpOworICAgICAgcmV0dXJuIG5ldyBfdHlwZV9qc19fV0VCUEFD
S19JTVBPUlRFRF9NT0RVTEVfMF9fWyJUeXBlIl0oeyBzb3VyY2UsIHRva2VuczogeyBwcmVmaXgs
IGJhc2UsIHBvc3RmaXggfSB9KTsKICAgICB9CisgICAgaWYgKHByZWZpeCkgdG9rZW5pc2VyLmVy
cm9yKCJGYWlsZWQgdG8gcGFyc2UgaW50ZWdlciB0eXBlIik7CisgIH0KIAotICAgIGZ1bmN0aW9u
IG9wZXJhdGlvbl9yZXN0KHJldCkgewotICAgICAgaWYgKCFyZXQpIHJldCA9IHt9OwotICAgICAg
Y29uc3QgbmFtZSA9IGNvbnN1bWUoSUQpOwotICAgICAgcmV0Lm5hbWUgPSBuYW1lID8gdW5lc2Nh
cGUobmFtZS52YWx1ZSkgOiBudWxsOwotICAgICAgcmV0LmVzY2FwZWROYW1lID0gbmFtZSA/IG5h
bWUudmFsdWUgOiBudWxsOwotICAgICAgY29uc3VtZSgiKCIpIHx8IGVycm9yKCJJbnZhbGlkIG9w
ZXJhdGlvbiIpOwotICAgICAgcmV0LmFyZ3VtZW50cyA9IGFyZ3VtZW50X2xpc3QoKTsKLSAgICAg
IGNvbnN1bWUoIikiKSB8fCBlcnJvcigiVW50ZXJtaW5hdGVkIG9wZXJhdGlvbiIpOwotICAgICAg
Y29uc3VtZSgiOyIpIHx8IGVycm9yKCJVbnRlcm1pbmF0ZWQgb3BlcmF0aW9uIik7Ci0gICAgICBy
ZXR1cm4gcmV0OwotICAgIH0KLQotICAgIGZ1bmN0aW9uIGNhbGxiYWNrKCkgewotICAgICAgbGV0
IHJldDsKLSAgICAgIGlmICghY29uc3VtZSgiY2FsbGJhY2siKSkgcmV0dXJuOwotICAgICAgY29u
c3QgdG9rID0gY29uc3VtZSgiaW50ZXJmYWNlIik7Ci0gICAgICBpZiAodG9rKSB7Ci0gICAgICAg
IHJldCA9IGludGVyZmFjZV9yZXN0KGZhbHNlLCAiY2FsbGJhY2sgaW50ZXJmYWNlIik7Ci0gICAg
ICAgIHJldHVybiByZXQ7Ci0gICAgICB9Ci0gICAgICBjb25zdCBuYW1lID0gY29uc3VtZShJRCkg
fHwgZXJyb3IoIk5vIG5hbWUgZm9yIGNhbGxiYWNrIik7Ci0gICAgICByZXQgPSBjdXJyZW50ID0g
eyB0eXBlOiAiY2FsbGJhY2siLCBuYW1lOiBzYW5pdGl6ZV9uYW1lKG5hbWUudmFsdWUsICJjYWxs
YmFjayIpIH07Ci0gICAgICBjb25zdW1lKCI9IikgfHwgZXJyb3IoIk5vIGFzc2lnbm1lbnQgaW4g
Y2FsbGJhY2siKTsKLSAgICAgIHJldC5pZGxUeXBlID0gcmV0dXJuX3R5cGUoKSB8fCBlcnJvcigi
TWlzc2luZyByZXR1cm4gdHlwZSIpOwotICAgICAgY29uc3VtZSgiKCIpIHx8IGVycm9yKCJObyBh
cmd1bWVudHMgaW4gY2FsbGJhY2siKTsKLSAgICAgIHJldC5hcmd1bWVudHMgPSBhcmd1bWVudF9s
aXN0KCk7Ci0gICAgICBjb25zdW1lKCIpIikgfHwgZXJyb3IoIlVudGVybWluYXRlZCBjYWxsYmFj
ayIpOwotICAgICAgY29uc3VtZSgiOyIpIHx8IGVycm9yKCJVbnRlcm1pbmF0ZWQgY2FsbGJhY2si
KTsKLSAgICAgIHJldHVybiByZXQ7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gYXR0cmlidXRlKHsg
bm9Jbmhlcml0ID0gZmFsc2UsIHJlYWRvbmx5ID0gZmFsc2UgfSA9IHt9KSB7Ci0gICAgICBjb25z
dCBzdGFydF9wb3NpdGlvbiA9IGNvbnN1bWVfcG9zaXRpb247Ci0gICAgICBjb25zdCByZXQgPSB7
Ci0gICAgICAgIHR5cGU6ICJhdHRyaWJ1dGUiLAotICAgICAgICBzdGF0aWM6IGZhbHNlLAotICAg
ICAgICBzdHJpbmdpZmllcjogZmFsc2UsCi0gICAgICAgIGluaGVyaXQ6IGZhbHNlLAotICAgICAg
ICByZWFkb25seTogZmFsc2UKLSAgICAgIH07Ci0gICAgICBpZiAoIW5vSW5oZXJpdCAmJiBjb25z
dW1lKCJpbmhlcml0IikpIHsKLSAgICAgICAgcmV0LmluaGVyaXQgPSB0cnVlOwotICAgICAgfQot
ICAgICAgaWYgKGNvbnN1bWUoInJlYWRvbmx5IikpIHsKLSAgICAgICAgcmV0LnJlYWRvbmx5ID0g
dHJ1ZTsKLSAgICAgIH0gZWxzZSBpZiAocmVhZG9ubHkgJiYgcHJvYmUoImF0dHJpYnV0ZSIpKSB7
Ci0gICAgICAgIGVycm9yKCJBdHRyaWJ1dGVzIG11c3QgYmUgcmVhZG9ubHkgaW4gdGhpcyBjb250
ZXh0Iik7Ci0gICAgICB9Ci0gICAgICBjb25zdCByZXN0ID0gYXR0cmlidXRlX3Jlc3QocmV0KTsK
LSAgICAgIGlmICghcmVzdCkgewotICAgICAgICB1bmNvbnN1bWUoc3RhcnRfcG9zaXRpb24pOwot
ICAgICAgfQotICAgICAgcmV0dXJuIHJlc3Q7CisgIGZ1bmN0aW9uIGRlY2ltYWxfdHlwZSgpIHsK
KyAgICBjb25zdCBwcmVmaXggPSB0b2tlbmlzZXIuY29uc3VtZSgidW5yZXN0cmljdGVkIik7Cisg
ICAgY29uc3QgYmFzZSA9IHRva2VuaXNlci5jb25zdW1lKCJmbG9hdCIsICJkb3VibGUiKTsKKyAg
ICBpZiAoYmFzZSkgeworICAgICAgcmV0dXJuIG5ldyBfdHlwZV9qc19fV0VCUEFDS19JTVBPUlRF
RF9NT0RVTEVfMF9fWyJUeXBlIl0oeyBzb3VyY2UsIHRva2VuczogeyBwcmVmaXgsIGJhc2UgfSB9
KTsKICAgICB9CisgICAgaWYgKHByZWZpeCkgdG9rZW5pc2VyLmVycm9yKCJGYWlsZWQgdG8gcGFy
c2UgZmxvYXQgdHlwZSIpOworICB9CiAKLSAgICBmdW5jdGlvbiBhdHRyaWJ1dGVfcmVzdChyZXQp
IHsKLSAgICAgIGlmICghY29uc3VtZSgiYXR0cmlidXRlIikpIHsKLSAgICAgICAgcmV0dXJuOwot
ICAgICAgfQotICAgICAgcmV0LmlkbFR5cGUgPSB0eXBlX3dpdGhfZXh0ZW5kZWRfYXR0cmlidXRl
cygiYXR0cmlidXRlLXR5cGUiKSB8fCBlcnJvcigiTm8gdHlwZSBpbiBhdHRyaWJ1dGUiKTsKLSAg
ICAgIGlmIChyZXQuaWRsVHlwZS5nZW5lcmljID09PSAic2VxdWVuY2UiKSBlcnJvcigiQXR0cmli
dXRlcyBjYW5ub3QgYWNjZXB0IHNlcXVlbmNlIHR5cGVzIik7Ci0gICAgICBpZiAocmV0LmlkbFR5
cGUuZ2VuZXJpYyA9PT0gInJlY29yZCIpIGVycm9yKCJBdHRyaWJ1dGVzIGNhbm5vdCBhY2NlcHQg
cmVjb3JkIHR5cGVzIik7Ci0gICAgICBjb25zdCBuYW1lID0gY29uc3VtZShJRCwgInJlcXVpcmVk
IikgfHwgZXJyb3IoIk5vIG5hbWUgaW4gYXR0cmlidXRlIik7Ci0gICAgICByZXQubmFtZSA9IHVu
ZXNjYXBlKG5hbWUudmFsdWUpOwotICAgICAgcmV0LmVzY2FwZWROYW1lID0gbmFtZS52YWx1ZTsK
LSAgICAgIGNvbnN1bWUoIjsiKSB8fCBlcnJvcigiVW50ZXJtaW5hdGVkIGF0dHJpYnV0ZSIpOwot
ICAgICAgcmV0dXJuIHJldDsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiByZXR1cm5fdHlwZSh0eXBl
TmFtZSkgewotICAgICAgY29uc3QgdHlwID0gdHlwZSh0eXBlTmFtZSB8fCAicmV0dXJuLXR5cGUi
KTsKLSAgICAgIGlmICh0eXApIHsKLSAgICAgICAgcmV0dXJuIHR5cDsKLSAgICAgIH0KLSAgICAg
IGlmIChjb25zdW1lKCJ2b2lkIikpIHsKLSAgICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oeyB0
eXBlOiAicmV0dXJuLXR5cGUiIH0sIEVNUFRZX0lETFRZUEUsIHsgaWRsVHlwZTogInZvaWQiIH0p
OworICBjb25zdCB7IHNvdXJjZSB9ID0gdG9rZW5pc2VyOworICBjb25zdCBudW1fdHlwZSA9IGlu
dGVnZXJfdHlwZSh0b2tlbmlzZXIpIHx8IGRlY2ltYWxfdHlwZSh0b2tlbmlzZXIpOworICBpZiAo
bnVtX3R5cGUpIHJldHVybiBudW1fdHlwZTsKKyAgY29uc3QgYmFzZSA9IHRva2VuaXNlci5jb25z
dW1lKCJib29sZWFuIiwgImJ5dGUiLCAib2N0ZXQiKTsKKyAgaWYgKGJhc2UpIHsKKyAgICByZXR1
cm4gbmV3IF90eXBlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIlR5cGUiXSh7IHNv
dXJjZSwgdG9rZW5zOiB7IGJhc2UgfSB9KTsKKyAgfQorfQorCisvKioKKyAqIEBwYXJhbSB7aW1w
b3J0KCIuLi90b2tlbmlzZXIiKS5Ub2tlbmlzZXJ9IHRva2VuaXNlcgorICovCitmdW5jdGlvbiBp
ZGVudGlmaWVycyh0b2tlbmlzZXIpIHsKKyAgY29uc3QgaWRzID0gbGlzdCh0b2tlbmlzZXIsIHsg
cGFyc2VyOiBfdG9rZW5fanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX1siVG9rZW4iXS5w
YXJzZXIodG9rZW5pc2VyLCAiaWRlbnRpZmllciIpLCBsaXN0TmFtZTogImlkZW50aWZpZXIgbGlz
dCIgfSk7CisgIGlmICghaWRzLmxlbmd0aCkgeworICAgIHRva2VuaXNlci5lcnJvcigiRXhwZWN0
ZWQgaWRlbnRpZmllcnMgYnV0IG5vbmUgZm91bmQiKTsKKyAgfQorICByZXR1cm4gaWRzOworfQor
CisvKioKKyAqIEBwYXJhbSB7aW1wb3J0KCIuLi90b2tlbmlzZXIiKS5Ub2tlbmlzZXJ9IHRva2Vu
aXNlcgorICovCitmdW5jdGlvbiBhcmd1bWVudF9saXN0KHRva2VuaXNlcikgeworICByZXR1cm4g
bGlzdCh0b2tlbmlzZXIsIHsgcGFyc2VyOiBfYXJndW1lbnRfanNfX1dFQlBBQ0tfSU1QT1JURURf
TU9EVUxFXzFfX1siQXJndW1lbnQiXS5wYXJzZSwgbGlzdE5hbWU6ICJhcmd1bWVudHMgbGlzdCIg
fSk7Cit9CisKKy8qKgorICogQHBhcmFtIHtpbXBvcnQoIi4uL3Rva2VuaXNlciIpLlRva2VuaXNl
cn0gdG9rZW5pc2VyCisgKiBAcGFyYW0ge3N0cmluZ30gdHlwZU5hbWUKKyAqLworZnVuY3Rpb24g
dHlwZV93aXRoX2V4dGVuZGVkX2F0dHJpYnV0ZXModG9rZW5pc2VyLCB0eXBlTmFtZSkgeworICBj
b25zdCBleHRBdHRycyA9IF9leHRlbmRlZF9hdHRyaWJ1dGVzX2pzX19XRUJQQUNLX0lNUE9SVEVE
X01PRFVMRV8zX19bIkV4dGVuZGVkQXR0cmlidXRlcyJdLnBhcnNlKHRva2VuaXNlcik7CisgIGNv
bnN0IHJldCA9IF90eXBlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIlR5cGUiXS5w
YXJzZSh0b2tlbmlzZXIsIHR5cGVOYW1lKTsKKyAgaWYgKHJldCkgcmV0LmV4dEF0dHJzID0gZXh0
QXR0cnM7CisgIHJldHVybiByZXQ7Cit9CisKKy8qKgorICogQHBhcmFtIHtpbXBvcnQoIi4uL3Rv
a2VuaXNlciIpLlRva2VuaXNlcn0gdG9rZW5pc2VyCisgKiBAcGFyYW0ge3N0cmluZ30gdHlwZU5h
bWUKKyAqLworZnVuY3Rpb24gcmV0dXJuX3R5cGUodG9rZW5pc2VyLCB0eXBlTmFtZSkgeworICBj
b25zdCB0eXAgPSBfdHlwZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJUeXBlIl0u
cGFyc2UodG9rZW5pc2VyLCB0eXBlTmFtZSB8fCAicmV0dXJuLXR5cGUiKTsKKyAgaWYgKHR5cCkg
eworICAgIHJldHVybiB0eXA7CisgIH0KKyAgY29uc3Qgdm9pZFRva2VuID0gdG9rZW5pc2VyLmNv
bnN1bWUoInZvaWQiKTsKKyAgaWYgKHZvaWRUb2tlbikgeworICAgIGNvbnN0IHJldCA9IG5ldyBf
dHlwZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJUeXBlIl0oeyBzb3VyY2U6IHRv
a2VuaXNlci5zb3VyY2UsIHRva2VuczogeyBiYXNlOiB2b2lkVG9rZW4gfSB9KTsKKyAgICByZXQu
dHlwZSA9ICJyZXR1cm4tdHlwZSI7CisgICAgcmV0dXJuIHJldDsKKyAgfQorfQorCisvKioKKyAq
IEBwYXJhbSB7aW1wb3J0KCIuLi90b2tlbmlzZXIiKS5Ub2tlbmlzZXJ9IHRva2VuaXNlcgorICov
CitmdW5jdGlvbiBzdHJpbmdpZmllcih0b2tlbmlzZXIpIHsKKyAgY29uc3Qgc3BlY2lhbCA9IHRv
a2VuaXNlci5jb25zdW1lKCJzdHJpbmdpZmllciIpOworICBpZiAoIXNwZWNpYWwpIHJldHVybjsK
KyAgY29uc3QgbWVtYmVyID0gX2F0dHJpYnV0ZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVf
NV9fWyJBdHRyaWJ1dGUiXS5wYXJzZSh0b2tlbmlzZXIsIHsgc3BlY2lhbCB9KSB8fAorICAgIF9v
cGVyYXRpb25fanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfX1siT3BlcmF0aW9uIl0ucGFy
c2UodG9rZW5pc2VyLCB7IHNwZWNpYWwgfSkgfHwKKyAgICB0b2tlbmlzZXIuZXJyb3IoIlVudGVy
bWluYXRlZCBzdHJpbmdpZmllciIpOworICByZXR1cm4gbWVtYmVyOworfQorCisvKioKKyAqIEBw
YXJhbSB7b2JqZWN0fSBkZWYKKyAqIEBwYXJhbSB7aW1wb3J0KCIuL2V4dGVuZGVkLWF0dHJpYnV0
ZXMuanMiKS5FeHRlbmRlZEF0dHJpYnV0ZXN9IGRlZi5leHRBdHRycworICovCitmdW5jdGlvbiBh
dXRvZml4QWRkRXhwb3NlZFdpbmRvdyhkZWYpIHsKKyAgcmV0dXJuICgpID0+IHsKKyAgICBpZiAo
ZGVmLmV4dEF0dHJzLmxlbmd0aCl7CisgICAgICBjb25zdCB0b2tlbmlzZXIgPSBuZXcgX3Rva2Vu
aXNlcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fWyJUb2tlbmlzZXIiXSgiRXhwb3Nl
ZD1XaW5kb3csIik7CisgICAgICBjb25zdCBleHBvc2VkID0gX2V4dGVuZGVkX2F0dHJpYnV0ZXNf
anNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfX1siU2ltcGxlRXh0ZW5kZWRBdHRyaWJ1dGUi
XS5wYXJzZSh0b2tlbmlzZXIpOworICAgICAgZXhwb3NlZC50b2tlbnMuc2VwYXJhdG9yID0gdG9r
ZW5pc2VyLmNvbnN1bWUoIiwiKTsKKyAgICAgIGNvbnN0IGV4aXN0aW5nID0gZGVmLmV4dEF0dHJz
WzBdOworICAgICAgaWYgKCEvXlxzLy50ZXN0KGV4aXN0aW5nLnRva2Vucy5uYW1lLnRyaXZpYSkp
IHsKKyAgICAgICAgZXhpc3RpbmcudG9rZW5zLm5hbWUudHJpdmlhID0gYCAke2V4aXN0aW5nLnRv
a2Vucy5uYW1lLnRyaXZpYX1gOwogICAgICAgfQorICAgICAgZGVmLmV4dEF0dHJzLnVuc2hpZnQo
ZXhwb3NlZCk7CisgICAgfSBlbHNlIHsKKyAgICAgIGRlZi5leHRBdHRycyA9IF9leHRlbmRlZF9h
dHRyaWJ1dGVzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX19bIkV4dGVuZGVkQXR0cmli
dXRlcyJdLnBhcnNlKG5ldyBfdG9rZW5pc2VyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82
X19bIlRva2VuaXNlciJdKCJbRXhwb3NlZD1XaW5kb3ddIikpOworICAgICAgZGVmLmV4dEF0dHJz
LnRva2Vucy5vcGVuLnRyaXZpYSA9IGRlZi50b2tlbnMuYmFzZS50cml2aWE7CisgICAgICBkZWYu
dG9rZW5zLmJhc2UudHJpdmlhID0gIiAiOwogICAgIH0KKyAgfTsKK30KIAotICAgIGZ1bmN0aW9u
IG9wZXJhdGlvbih7IHJlZ3VsYXIgPSBmYWxzZSB9ID0ge30pIHsKLSAgICAgIGNvbnN0IHJldCA9
IE9iamVjdC5hc3NpZ24oe30sIEVNUFRZX09QRVJBVElPTik7Ci0gICAgICB3aGlsZSAoIXJlZ3Vs
YXIpIHsKLSAgICAgICAgaWYgKGNvbnN1bWUoImdldHRlciIpKSByZXQuZ2V0dGVyID0gdHJ1ZTsK
LSAgICAgICAgZWxzZSBpZiAoY29uc3VtZSgic2V0dGVyIikpIHJldC5zZXR0ZXIgPSB0cnVlOwot
ICAgICAgICBlbHNlIGlmIChjb25zdW1lKCJkZWxldGVyIikpIHJldC5kZWxldGVyID0gdHJ1ZTsK
LSAgICAgICAgZWxzZSBicmVhazsKLSAgICAgIH0KLSAgICAgIHJldC5pZGxUeXBlID0gcmV0dXJu
X3R5cGUoKSB8fCBlcnJvcigiTWlzc2luZyByZXR1cm4gdHlwZSIpOwotICAgICAgb3BlcmF0aW9u
X3Jlc3QocmV0KTsKLSAgICAgIHJldHVybiByZXQ7CisKKy8qKiovIH0pLAorLyogNSAqLworLyoq
Ki8gKGZ1bmN0aW9uKG1vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVp
cmVfXykgeworCisidXNlIHN0cmljdCI7CitfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNr
X2V4cG9ydHNfXyk7CisvKiBoYXJtb255IGV4cG9ydCAoYmluZGluZykgKi8gX193ZWJwYWNrX3Jl
cXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sICJUeXBlIiwgZnVuY3Rpb24oKSB7IHJldHVy
biBUeXBlOyB9KTsKKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfYmFzZV9qc19fV0VCUEFDS19J
TVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg2KTsKKy8qIGhhcm1vbnkg
aW1wb3J0ICovIHZhciBfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0g
X193ZWJwYWNrX3JlcXVpcmVfXyg0KTsKKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfdG9rZW5p
c2VyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9f
KDIpOworLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9lcnJvcl9qc19fV0VCUEFDS19JTVBPUlRF
RF9NT0RVTEVfM19fID0gX193ZWJwYWNrX3JlcXVpcmVfXygzKTsKKy8qIGhhcm1vbnkgaW1wb3J0
ICovIHZhciBfdmFsaWRhdG9yc19oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80
X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDcpOworCisKKworCisKKworLyoqCisgKiBAcGFyYW0g
e2ltcG9ydCgiLi4vdG9rZW5pc2VyIikuVG9rZW5pc2VyfSB0b2tlbmlzZXIKKyAqIEBwYXJhbSB7
c3RyaW5nfSB0eXBlTmFtZQorICovCitmdW5jdGlvbiBnZW5lcmljX3R5cGUodG9rZW5pc2VyLCB0
eXBlTmFtZSkgeworICBjb25zdCBiYXNlID0gdG9rZW5pc2VyLmNvbnN1bWUoIkZyb3plbkFycmF5
IiwgIlByb21pc2UiLCAic2VxdWVuY2UiLCAicmVjb3JkIik7CisgIGlmICghYmFzZSkgeworICAg
IHJldHVybjsKKyAgfQorICBjb25zdCByZXQgPSBuZXcgVHlwZSh7IHNvdXJjZTogdG9rZW5pc2Vy
LnNvdXJjZSwgdG9rZW5zOiB7IGJhc2UgfSB9KTsKKyAgcmV0LnRva2Vucy5vcGVuID0gdG9rZW5p
c2VyLmNvbnN1bWUoIjwiKSB8fCB0b2tlbmlzZXIuZXJyb3IoYE5vIG9wZW5pbmcgYnJhY2tldCBh
ZnRlciAke2Jhc2UudHlwZX1gKTsKKyAgc3dpdGNoIChiYXNlLnR5cGUpIHsKKyAgICBjYXNlICJQ
cm9taXNlIjogeworICAgICAgaWYgKHRva2VuaXNlci5wcm9iZSgiWyIpKSB0b2tlbmlzZXIuZXJy
b3IoIlByb21pc2UgdHlwZSBjYW5ub3QgaGF2ZSBleHRlbmRlZCBhdHRyaWJ1dGUiKTsKKyAgICAg
IGNvbnN0IHN1YnR5cGUgPSBPYmplY3QoX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9E
VUxFXzFfX1sicmV0dXJuX3R5cGUiXSkodG9rZW5pc2VyLCB0eXBlTmFtZSkgfHwgdG9rZW5pc2Vy
LmVycm9yKCJNaXNzaW5nIFByb21pc2Ugc3VidHlwZSIpOworICAgICAgcmV0LnN1YnR5cGUucHVz
aChzdWJ0eXBlKTsKKyAgICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNlICJzZXF1ZW5jZSI6Cisg
ICAgY2FzZSAiRnJvemVuQXJyYXkiOiB7CisgICAgICBjb25zdCBzdWJ0eXBlID0gT2JqZWN0KF9o
ZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19bInR5cGVfd2l0aF9leHRlbmRl
ZF9hdHRyaWJ1dGVzIl0pKHRva2VuaXNlciwgdHlwZU5hbWUpIHx8IHRva2VuaXNlci5lcnJvcihg
TWlzc2luZyAke2Jhc2UudHlwZX0gc3VidHlwZWApOworICAgICAgcmV0LnN1YnR5cGUucHVzaChz
dWJ0eXBlKTsKKyAgICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNlICJyZWNvcmQiOiB7CisgICAg
ICBpZiAodG9rZW5pc2VyLnByb2JlKCJbIikpIHRva2VuaXNlci5lcnJvcigiUmVjb3JkIGtleSBj
YW5ub3QgaGF2ZSBleHRlbmRlZCBhdHRyaWJ1dGUiKTsKKyAgICAgIGNvbnN0IGtleVR5cGUgPSB0
b2tlbmlzZXIuY29uc3VtZSguLi5fdG9rZW5pc2VyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVM
RV8yX19bInN0cmluZ1R5cGVzIl0pIHx8IHRva2VuaXNlci5lcnJvcihgUmVjb3JkIGtleSBtdXN0
IGJlIG9uZSBvZjogJHtfdG9rZW5pc2VyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19b
InN0cmluZ1R5cGVzIl0uam9pbigiLCAiKX1gKTsKKyAgICAgIGNvbnN0IGtleUlkbFR5cGUgPSBu
ZXcgVHlwZSh7IHNvdXJjZTogdG9rZW5pc2VyLnNvdXJjZSwgdG9rZW5zOiB7IGJhc2U6IGtleVR5
cGUgfX0pOworICAgICAga2V5SWRsVHlwZS50b2tlbnMuc2VwYXJhdG9yID0gdG9rZW5pc2VyLmNv
bnN1bWUoIiwiKSB8fCB0b2tlbmlzZXIuZXJyb3IoIk1pc3NpbmcgY29tbWEgYWZ0ZXIgcmVjb3Jk
IGtleSB0eXBlIik7CisgICAgICBrZXlJZGxUeXBlLnR5cGUgPSB0eXBlTmFtZTsKKyAgICAgIGNv
bnN0IHZhbHVlVHlwZSA9IE9iamVjdChfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RV
TEVfMV9fWyJ0eXBlX3dpdGhfZXh0ZW5kZWRfYXR0cmlidXRlcyJdKSh0b2tlbmlzZXIsIHR5cGVO
YW1lKSB8fCB0b2tlbmlzZXIuZXJyb3IoIkVycm9yIHBhcnNpbmcgZ2VuZXJpYyB0eXBlIHJlY29y
ZCIpOworICAgICAgcmV0LnN1YnR5cGUucHVzaChrZXlJZGxUeXBlLCB2YWx1ZVR5cGUpOworICAg
ICAgYnJlYWs7CisgICAgfQorICB9CisgIGlmICghcmV0LmlkbFR5cGUpIHRva2VuaXNlci5lcnJv
cihgRXJyb3IgcGFyc2luZyBnZW5lcmljIHR5cGUgJHtiYXNlLnR5cGV9YCk7CisgIHJldC50b2tl
bnMuY2xvc2UgPSB0b2tlbmlzZXIuY29uc3VtZSgiPiIpIHx8IHRva2VuaXNlci5lcnJvcihgTWlz
c2luZyBjbG9zaW5nIGJyYWNrZXQgYWZ0ZXIgJHtiYXNlLnR5cGV9YCk7CisgIHJldHVybiByZXQ7
Cit9CisKKy8qKgorICogQHBhcmFtIHtpbXBvcnQoIi4uL3Rva2VuaXNlciIpLlRva2VuaXNlcn0g
dG9rZW5pc2VyCisgKi8KK2Z1bmN0aW9uIHR5cGVfc3VmZml4KHRva2VuaXNlciwgb2JqKSB7Cisg
IGNvbnN0IG51bGxhYmxlID0gdG9rZW5pc2VyLmNvbnN1bWUoIj8iKTsKKyAgaWYgKG51bGxhYmxl
KSB7CisgICAgb2JqLnRva2Vucy5udWxsYWJsZSA9IG51bGxhYmxlOworICB9CisgIGlmICh0b2tl
bmlzZXIucHJvYmUoIj8iKSkgdG9rZW5pc2VyLmVycm9yKCJDYW4ndCBudWxsYWJsZSBtb3JlIHRo
YW4gb25jZSIpOworfQorCisvKioKKyAqIEBwYXJhbSB7aW1wb3J0KCIuLi90b2tlbmlzZXIiKS5U
b2tlbmlzZXJ9IHRva2VuaXNlcgorICogQHBhcmFtIHtzdHJpbmd9IHR5cGVOYW1lCisgKi8KK2Z1
bmN0aW9uIHNpbmdsZV90eXBlKHRva2VuaXNlciwgdHlwZU5hbWUpIHsKKyAgbGV0IHJldCA9IGdl
bmVyaWNfdHlwZSh0b2tlbmlzZXIsIHR5cGVOYW1lKSB8fCBPYmplY3QoX2hlbHBlcnNfanNfX1dF
QlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX1sicHJpbWl0aXZlX3R5cGUiXSkodG9rZW5pc2VyKTsK
KyAgaWYgKCFyZXQpIHsKKyAgICBjb25zdCBiYXNlID0gdG9rZW5pc2VyLmNvbnN1bWUoImlkZW50
aWZpZXIiLCAuLi5fdG9rZW5pc2VyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19bInN0
cmluZ1R5cGVzIl0pOworICAgIGlmICghYmFzZSkgeworICAgICAgcmV0dXJuOworICAgIH0KKyAg
ICByZXQgPSBuZXcgVHlwZSh7IHNvdXJjZTogdG9rZW5pc2VyLnNvdXJjZSwgdG9rZW5zOiB7IGJh
c2UgfSB9KTsKKyAgICBpZiAodG9rZW5pc2VyLnByb2JlKCI8IikpIHRva2VuaXNlci5lcnJvcihg
VW5zdXBwb3J0ZWQgZ2VuZXJpYyB0eXBlICR7YmFzZS52YWx1ZX1gKTsKKyAgfQorICBpZiAocmV0
LmdlbmVyaWMgPT09ICJQcm9taXNlIiAmJiB0b2tlbmlzZXIucHJvYmUoIj8iKSkgeworICAgIHRv
a2VuaXNlci5lcnJvcigiUHJvbWlzZSB0eXBlIGNhbm5vdCBiZSBudWxsYWJsZSIpOworICB9Cisg
IHJldC50eXBlID0gdHlwZU5hbWUgfHwgbnVsbDsKKyAgdHlwZV9zdWZmaXgodG9rZW5pc2VyLCBy
ZXQpOworICBpZiAocmV0Lm51bGxhYmxlICYmIHJldC5pZGxUeXBlID09PSAiYW55IikgdG9rZW5p
c2VyLmVycm9yKCJUeXBlIGBhbnlgIGNhbm5vdCBiZSBtYWRlIG51bGxhYmxlIik7CisgIHJldHVy
biByZXQ7Cit9CisKKy8qKgorICogQHBhcmFtIHtpbXBvcnQoIi4uL3Rva2VuaXNlciIpLlRva2Vu
aXNlcn0gdG9rZW5pc2VyCisgKiBAcGFyYW0ge3N0cmluZ30gdHlwZQorICovCitmdW5jdGlvbiB1
bmlvbl90eXBlKHRva2VuaXNlciwgdHlwZSkgeworICBjb25zdCB0b2tlbnMgPSB7fTsKKyAgdG9r
ZW5zLm9wZW4gPSB0b2tlbmlzZXIuY29uc3VtZSgiKCIpOworICBpZiAoIXRva2Vucy5vcGVuKSBy
ZXR1cm47CisgIGNvbnN0IHJldCA9IG5ldyBUeXBlKHsgc291cmNlOiB0b2tlbmlzZXIuc291cmNl
LCB0b2tlbnMgfSk7CisgIHJldC50eXBlID0gdHlwZSB8fCBudWxsOworICB3aGlsZSAodHJ1ZSkg
eworICAgIGNvbnN0IHR5cCA9IE9iamVjdChfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9N
T0RVTEVfMV9fWyJ0eXBlX3dpdGhfZXh0ZW5kZWRfYXR0cmlidXRlcyJdKSh0b2tlbmlzZXIpIHx8
IHRva2VuaXNlci5lcnJvcigiTm8gdHlwZSBhZnRlciBvcGVuIHBhcmVudGhlc2lzIG9yICdvcicg
aW4gdW5pb24gdHlwZSIpOworICAgIGlmICh0eXAuaWRsVHlwZSA9PT0gImFueSIpIHRva2VuaXNl
ci5lcnJvcigiVHlwZSBgYW55YCBjYW5ub3QgYmUgaW5jbHVkZWQgaW4gYSB1bmlvbiB0eXBlIik7
CisgICAgcmV0LnN1YnR5cGUucHVzaCh0eXApOworICAgIGNvbnN0IG9yID0gdG9rZW5pc2VyLmNv
bnN1bWUoIm9yIik7CisgICAgaWYgKG9yKSB7CisgICAgICB0eXAudG9rZW5zLnNlcGFyYXRvciA9
IG9yOwogICAgIH0KKyAgICBlbHNlIGJyZWFrOworICB9CisgIGlmIChyZXQuaWRsVHlwZS5sZW5n
dGggPCAyKSB7CisgICAgdG9rZW5pc2VyLmVycm9yKCJBdCBsZWFzdCB0d28gdHlwZXMgYXJlIGV4
cGVjdGVkIGluIGEgdW5pb24gdHlwZSBidXQgZm91bmQgbGVzcyIpOworICB9CisgIHRva2Vucy5j
bG9zZSA9IHRva2VuaXNlci5jb25zdW1lKCIpIikgfHwgdG9rZW5pc2VyLmVycm9yKCJVbnRlcm1p
bmF0ZWQgdW5pb24gdHlwZSIpOworICB0eXBlX3N1ZmZpeCh0b2tlbmlzZXIsIHJldCk7CisgIHJl
dHVybiByZXQ7Cit9CisKK2NsYXNzIFR5cGUgZXh0ZW5kcyBfYmFzZV9qc19fV0VCUEFDS19JTVBP
UlRFRF9NT0RVTEVfMF9fWyJCYXNlIl0geworICAvKioKKyAgICogQHBhcmFtIHtpbXBvcnQoIi4u
L3Rva2VuaXNlciIpLlRva2VuaXNlcn0gdG9rZW5pc2VyCisgICAqIEBwYXJhbSB7c3RyaW5nfSB0
eXBlTmFtZQorICAgKi8KKyAgc3RhdGljIHBhcnNlKHRva2VuaXNlciwgdHlwZU5hbWUpIHsKKyAg
ICByZXR1cm4gc2luZ2xlX3R5cGUodG9rZW5pc2VyLCB0eXBlTmFtZSkgfHwgdW5pb25fdHlwZSh0
b2tlbmlzZXIsIHR5cGVOYW1lKTsKKyAgfQogCi0gICAgZnVuY3Rpb24gc3RhdGljX21lbWJlcigp
IHsKLSAgICAgIGlmICghY29uc3VtZSgic3RhdGljIikpIHJldHVybjsKLSAgICAgIGNvbnN0IG1l
bWJlciA9IGF0dHJpYnV0ZSh7IG5vSW5oZXJpdDogdHJ1ZSB9KSB8fAotICAgICAgICBvcGVyYXRp
b24oeyByZWd1bGFyOiB0cnVlIH0pIHx8Ci0gICAgICAgIGVycm9yKCJObyBib2R5IGluIHN0YXRp
YyBtZW1iZXIiKTsKLSAgICAgIG1lbWJlci5zdGF0aWMgPSB0cnVlOwotICAgICAgcmV0dXJuIG1l
bWJlcjsKKyAgY29uc3RydWN0b3IoeyBzb3VyY2UsIHRva2VucyB9KSB7CisgICAgc3VwZXIoeyBz
b3VyY2UsIHRva2VucyB9KTsKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgInN1YnR5
cGUiLCB7IHZhbHVlOiBbXSB9KTsKKyAgICB0aGlzLmV4dEF0dHJzID0gW107CisgIH0KKworICBn
ZXQgZ2VuZXJpYygpIHsKKyAgICBpZiAodGhpcy5zdWJ0eXBlLmxlbmd0aCAmJiB0aGlzLnRva2Vu
cy5iYXNlKSB7CisgICAgICByZXR1cm4gdGhpcy50b2tlbnMuYmFzZS52YWx1ZTsKKyAgICB9Cisg
ICAgcmV0dXJuICIiOworICB9CisgIGdldCBudWxsYWJsZSgpIHsKKyAgICByZXR1cm4gQm9vbGVh
bih0aGlzLnRva2Vucy5udWxsYWJsZSk7CisgIH0KKyAgZ2V0IHVuaW9uKCkgeworICAgIHJldHVy
biBCb29sZWFuKHRoaXMuc3VidHlwZS5sZW5ndGgpICYmICF0aGlzLnRva2Vucy5iYXNlOworICB9
CisgIGdldCBpZGxUeXBlKCkgeworICAgIGlmICh0aGlzLnN1YnR5cGUubGVuZ3RoKSB7CisgICAg
ICByZXR1cm4gdGhpcy5zdWJ0eXBlOwogICAgIH0KKyAgICAvLyBBZGRpbmcgcHJlZml4ZXMvcG9z
dGZpeGVzIGZvciAidW5yZXN0cmljdGVkIGZsb2F0IiwgZXRjLgorICAgIGNvbnN0IG5hbWUgPSBb
CisgICAgICB0aGlzLnRva2Vucy5wcmVmaXgsCisgICAgICB0aGlzLnRva2Vucy5iYXNlLAorICAg
ICAgdGhpcy50b2tlbnMucG9zdGZpeAorICAgIF0uZmlsdGVyKHQgPT4gdCkubWFwKHQgPT4gdC52
YWx1ZSkuam9pbigiICIpOworICAgIHJldHVybiBPYmplY3QoX2hlbHBlcnNfanNfX1dFQlBBQ0tf
SU1QT1JURURfTU9EVUxFXzFfX1sidW5lc2NhcGUiXSkobmFtZSk7CisgIH0KIAotICAgIGZ1bmN0
aW9uIHN0cmluZ2lmaWVyKCkgewotICAgICAgaWYgKCFjb25zdW1lKCJzdHJpbmdpZmllciIpKSBy
ZXR1cm47Ci0gICAgICBpZiAoY29uc3VtZSgiOyIpKSB7Ci0gICAgICAgIHJldHVybiBPYmplY3Qu
YXNzaWduKHt9LCBFTVBUWV9PUEVSQVRJT04sIHsgc3RyaW5naWZpZXI6IHRydWUgfSk7Ci0gICAg
ICB9Ci0gICAgICBjb25zdCBtZW1iZXIgPSBhdHRyaWJ1dGUoeyBub0luaGVyaXQ6IHRydWUgfSkg
fHwKLSAgICAgICAgb3BlcmF0aW9uKHsgcmVndWxhcjogdHJ1ZSB9KSB8fAotICAgICAgICBlcnJv
cigiVW50ZXJtaW5hdGVkIHN0cmluZ2lmaWVyIik7Ci0gICAgICBtZW1iZXIuc3RyaW5naWZpZXIg
PSB0cnVlOwotICAgICAgcmV0dXJuIG1lbWJlcjsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBpZGVu
dGlmaWVycygpIHsKLSAgICAgIGNvbnN0IGFyciA9IFtdOwotICAgICAgY29uc3QgaWQgPSBjb25z
dW1lKElEKTsKLSAgICAgIGlmIChpZCkgewotICAgICAgICBhcnIucHVzaChpZC52YWx1ZSk7Cisg
ICp2YWxpZGF0ZShkZWZzKSB7CisgICAgLyoKKyAgICAgKiBJZiBhIHVuaW9uIGlzIG51bGxhYmxl
LCBpdHMgc3VidW5pb25zIGNhbm5vdCBpbmNsdWRlIGEgZGljdGlvbmFyeQorICAgICAqIElmIG5v
dCwgc3VidW5pb25zIG1heSBpbmNsdWRlIGRpY3Rpb25hcmllcyBpZiBlYWNoIHVuaW9uIGlzIG5v
dCBudWxsYWJsZQorICAgICAqLworICAgIGNvbnN0IHR5cGVkZWYgPSAhdGhpcy51bmlvbiAmJiBk
ZWZzLnVuaXF1ZS5nZXQodGhpcy5pZGxUeXBlKTsKKyAgICBjb25zdCB0YXJnZXQgPQorICAgICAg
dGhpcy51bmlvbiA/IHRoaXMgOgorICAgICAgKHR5cGVkZWYgJiYgdHlwZWRlZi50eXBlID09PSAi
dHlwZWRlZiIpID8gdHlwZWRlZi5pZGxUeXBlIDoKKyAgICAgIHVuZGVmaW5lZDsKKyAgICBpZiAo
dGFyZ2V0ICYmIHRoaXMubnVsbGFibGUpIHsKKyAgICAgIC8vIGRvIG5vdCBhbGxvdyBhbnkgZGlj
dGlvbmFyeQorICAgICAgY29uc3QgcmVmZXJlbmNlID0gT2JqZWN0KF92YWxpZGF0b3JzX2hlbHBl
cnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfX1siaWRsVHlwZUluY2x1ZGVzRGljdGlv
bmFyeSJdKSh0YXJnZXQsIGRlZnMpOworICAgICAgaWYgKHJlZmVyZW5jZSkgeworICAgICAgICBj
b25zdCB0YXJnZXRUb2tlbiA9ICh0aGlzLnVuaW9uID8gcmVmZXJlbmNlIDogdGhpcykudG9rZW5z
LmJhc2U7CisgICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgTnVsbGFibGUgdW5pb24gY2Fubm90IGlu
Y2x1ZGUgYSBkaWN0aW9uYXJ5IHR5cGVgOworICAgICAgICB5aWVsZCBPYmplY3QoX2Vycm9yX2pz
X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX19bInZhbGlkYXRpb25FcnJvciJdKSh0aGlzLnNv
dXJjZSwgdGFyZ2V0VG9rZW4sIHRoaXMsIG1lc3NhZ2UpOwogICAgICAgfQotICAgICAgZWxzZSBl
cnJvcigiRXhwZWN0ZWQgaWRlbnRpZmllcnMgYnV0IG5vdCBmb3VuZCIpOwotICAgICAgd2hpbGUg
KHRydWUpIHsKLSAgICAgICAgaWYgKGNvbnN1bWUoIiwiKSkgewotICAgICAgICAgIGNvbnN0IG5h
bWUgPSBjb25zdW1lKElEKSB8fCBlcnJvcigiVHJhaWxpbmcgY29tbWEgaW4gaWRlbnRpZmllcnMg
bGlzdCIpOwotICAgICAgICAgIGFyci5wdXNoKG5hbWUudmFsdWUpOwotICAgICAgICB9IGVsc2Ug
YnJlYWs7CisgICAgfSBlbHNlIHsKKyAgICAgIC8vIGFsbG93IHNvbWUgZGljdGlvbmFyeQorICAg
ICAgZm9yIChjb25zdCBzdWJ0eXBlIG9mIHRoaXMuc3VidHlwZSkgeworICAgICAgICB5aWVsZCog
c3VidHlwZS52YWxpZGF0ZShkZWZzKTsKICAgICAgIH0KLSAgICAgIHJldHVybiBhcnI7Ci0gICAg
fQotCi0gICAgZnVuY3Rpb24gaXRlcmFibGVfdHlwZSgpIHsKLSAgICAgIGlmIChjb25zdW1lKCJp
dGVyYWJsZSIpKSByZXR1cm4gIml0ZXJhYmxlIjsKLSAgICAgIGVsc2UgaWYgKGNvbnN1bWUoImxl
Z2FjeWl0ZXJhYmxlIikpIHJldHVybiAibGVnYWN5aXRlcmFibGUiOwotICAgICAgZWxzZSBpZiAo
Y29uc3VtZSgibWFwbGlrZSIpKSByZXR1cm4gIm1hcGxpa2UiOwotICAgICAgZWxzZSBpZiAoY29u
c3VtZSgic2V0bGlrZSIpKSByZXR1cm4gInNldGxpa2UiOwotICAgICAgZWxzZSByZXR1cm47CiAg
ICAgfQorICB9Cit9CiAKLSAgICBmdW5jdGlvbiByZWFkb25seV9pdGVyYWJsZV90eXBlKCkgewot
ICAgICAgaWYgKGNvbnN1bWUoIm1hcGxpa2UiKSkgcmV0dXJuICJtYXBsaWtlIjsKLSAgICAgIGVs
c2UgaWYgKGNvbnN1bWUoInNldGxpa2UiKSkgcmV0dXJuICJzZXRsaWtlIjsKLSAgICAgIGVsc2Ug
cmV0dXJuOwotICAgIH0KIAotICAgIGZ1bmN0aW9uIGl0ZXJhYmxlKCkgewotICAgICAgY29uc3Qg
c3RhcnRfcG9zaXRpb24gPSBjb25zdW1lX3Bvc2l0aW9uOwotICAgICAgY29uc3QgcmV0ID0geyB0
eXBlOiBudWxsLCBpZGxUeXBlOiBudWxsLCByZWFkb25seTogZmFsc2UgfTsKLSAgICAgIGlmIChj
b25zdW1lKCJyZWFkb25seSIpKSB7Ci0gICAgICAgIHJldC5yZWFkb25seSA9IHRydWU7Ci0gICAg
ICB9Ci0gICAgICBjb25zdCBjb25zdW1lSXRUeXBlID0gcmV0LnJlYWRvbmx5ID8gcmVhZG9ubHlf
aXRlcmFibGVfdHlwZSA6IGl0ZXJhYmxlX3R5cGU7CisvKioqLyB9KSwKKy8qIDYgKi8KKy8qKiov
IChmdW5jdGlvbihtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJl
X18pIHsKIAotICAgICAgY29uc3QgaXR0eXBlID0gY29uc3VtZUl0VHlwZSgpOwotICAgICAgaWYg
KCFpdHR5cGUpIHsKLSAgICAgICAgdW5jb25zdW1lKHN0YXJ0X3Bvc2l0aW9uKTsKLSAgICAgICAg
cmV0dXJuOwotICAgICAgfQorInVzZSBzdHJpY3QiOworX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9f
d2VicGFja19leHBvcnRzX18pOworLyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2Vi
cGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAiQmFzZSIsIGZ1bmN0aW9uKCkg
eyByZXR1cm4gQmFzZTsgfSk7CitjbGFzcyBCYXNlIHsKKyAgY29uc3RydWN0b3IoeyBzb3VyY2Us
IHRva2VucyB9KSB7CisgICAgT2JqZWN0LmRlZmluZVByb3BlcnRpZXModGhpcywgeworICAgICAg
c291cmNlOiB7IHZhbHVlOiBzb3VyY2UgfSwKKyAgICAgIHRva2VuczogeyB2YWx1ZTogdG9rZW5z
IH0KKyAgICB9KTsKKyAgfQogCi0gICAgICBjb25zdCBzZWNvbmRUeXBlUmVxdWlyZWQgPSBpdHR5
cGUgPT09ICJtYXBsaWtlIjsKLSAgICAgIGNvbnN0IHNlY29uZFR5cGVBbGxvd2VkID0gc2Vjb25k
VHlwZVJlcXVpcmVkIHx8IGl0dHlwZSA9PT0gIml0ZXJhYmxlIjsKLSAgICAgIHJldC50eXBlID0g
aXR0eXBlOwotICAgICAgaWYgKHJldC50eXBlICE9PSAnbWFwbGlrZScgJiYgcmV0LnR5cGUgIT09
ICdzZXRsaWtlJykKLSAgICAgICAgZGVsZXRlIHJldC5yZWFkb25seTsKLSAgICAgIGlmIChjb25z
dW1lKCI8IikpIHsKLSAgICAgICAgcmV0LmlkbFR5cGUgPSBbdHlwZV93aXRoX2V4dGVuZGVkX2F0
dHJpYnV0ZXMoKV0gfHwgZXJyb3IoYEVycm9yIHBhcnNpbmcgJHtpdHR5cGV9IGRlY2xhcmF0aW9u
YCk7Ci0gICAgICAgIGlmIChzZWNvbmRUeXBlQWxsb3dlZCkgewotICAgICAgICAgIGlmIChjb25z
dW1lKCIsIikpIHsKLSAgICAgICAgICAgIHJldC5pZGxUeXBlLnB1c2godHlwZV93aXRoX2V4dGVu
ZGVkX2F0dHJpYnV0ZXMoKSk7Ci0gICAgICAgICAgfQotICAgICAgICAgIGVsc2UgaWYgKHNlY29u
ZFR5cGVSZXF1aXJlZCkKLSAgICAgICAgICAgIGVycm9yKGBNaXNzaW5nIHNlY29uZCB0eXBlIGFy
Z3VtZW50IGluICR7aXR0eXBlfSBkZWNsYXJhdGlvbmApOwotICAgICAgICB9Ci0gICAgICAgIGlm
ICghY29uc3VtZSgiPiIpKSBlcnJvcihgVW50ZXJtaW5hdGVkICR7aXR0eXBlfSBkZWNsYXJhdGlv
bmApOwotICAgICAgICBpZiAoIWNvbnN1bWUoIjsiKSkgZXJyb3IoYE1pc3Npbmcgc2VtaWNvbG9u
IGFmdGVyICR7aXR0eXBlfSBkZWNsYXJhdGlvbmApOwotICAgICAgfSBlbHNlCi0gICAgICAgIGVy
cm9yKGBFcnJvciBwYXJzaW5nICR7aXR0eXBlfSBkZWNsYXJhdGlvbmApOwotCi0gICAgICByZXR1
cm4gcmV0OwotICAgIH0KLQotICAgIGZ1bmN0aW9uIGludGVyZmFjZV9yZXN0KGlzUGFydGlhbCwg
dHlwZU5hbWUgPSAiaW50ZXJmYWNlIikgewotICAgICAgY29uc3QgbmFtZSA9IGNvbnN1bWUoSUQp
IHx8IGVycm9yKCJObyBuYW1lIGZvciBpbnRlcmZhY2UiKTsKLSAgICAgIGNvbnN0IG1lbXMgPSBb
XTsKLSAgICAgIGNvbnN0IHJldCA9IGN1cnJlbnQgPSB7Ci0gICAgICAgIHR5cGU6IHR5cGVOYW1l
LAotICAgICAgICBuYW1lOiBpc1BhcnRpYWwgPyBuYW1lLnZhbHVlIDogc2FuaXRpemVfbmFtZShu
YW1lLnZhbHVlLCAiaW50ZXJmYWNlIiksCi0gICAgICAgIHBhcnRpYWw6IGlzUGFydGlhbCwKLSAg
ICAgICAgbWVtYmVyczogbWVtcwotICAgICAgfTsKLSAgICAgIGlmICghaXNQYXJ0aWFsKSByZXQu
aW5oZXJpdGFuY2UgPSBpbmhlcml0YW5jZSgpIHx8IG51bGw7Ci0gICAgICBjb25zdW1lKCJ7Iikg
fHwgZXJyb3IoIkJvZHlsZXNzIGludGVyZmFjZSIpOwotICAgICAgd2hpbGUgKHRydWUpIHsKLSAg
ICAgICAgaWYgKGNvbnN1bWUoIn0iKSkgewotICAgICAgICAgIGNvbnN1bWUoIjsiKSB8fCBlcnJv
cigiTWlzc2luZyBzZW1pY29sb24gYWZ0ZXIgaW50ZXJmYWNlIik7Ci0gICAgICAgICAgcmV0dXJu
IHJldDsKKyAgdG9KU09OKCkgeworICAgIGNvbnN0IGpzb24gPSB7IHR5cGU6IHVuZGVmaW5lZCwg
bmFtZTogdW5kZWZpbmVkLCBpbmhlcml0YW5jZTogdW5kZWZpbmVkIH07CisgICAgbGV0IHByb3Rv
ID0gdGhpczsKKyAgICB3aGlsZSAocHJvdG8gIT09IE9iamVjdC5wcm90b3R5cGUpIHsKKyAgICAg
IGNvbnN0IGRlc2NNYXAgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhwcm90byk7
CisgICAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhkZXNjTWFw
KSkgeworICAgICAgICBpZiAodmFsdWUuZW51bWVyYWJsZSB8fCB2YWx1ZS5nZXQpIHsKKyAgICAg
ICAgICBqc29uW2tleV0gPSB0aGlzW2tleV07CiAgICAgICAgIH0KLSAgICAgICAgY29uc3QgZWEg
PSBleHRlbmRlZF9hdHRycygpOwotICAgICAgICBjb25zdCBtZW0gPSBjb25zdF8oKSB8fAotICAg
ICAgICAgIHN0YXRpY19tZW1iZXIoKSB8fAotICAgICAgICAgIHN0cmluZ2lmaWVyKCkgfHwKLSAg
ICAgICAgICBpdGVyYWJsZSgpIHx8Ci0gICAgICAgICAgYXR0cmlidXRlKCkgfHwKLSAgICAgICAg
ICBvcGVyYXRpb24oKSB8fAotICAgICAgICAgIGVycm9yKCJVbmtub3duIG1lbWJlciIpOwotICAg
ICAgICBtZW0uZXh0QXR0cnMgPSBlYTsKLSAgICAgICAgcmV0Lm1lbWJlcnMucHVzaChtZW0pOwog
ICAgICAgfQorICAgICAgcHJvdG8gPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YocHJvdG8pOwogICAg
IH0KKyAgICByZXR1cm4ganNvbjsKKyAgfQorfQogCi0gICAgZnVuY3Rpb24gbWl4aW5fcmVzdChp
c1BhcnRpYWwpIHsKLSAgICAgIGlmICghY29uc3VtZSgibWl4aW4iKSkgcmV0dXJuOwotICAgICAg
Y29uc3QgbmFtZSA9IGNvbnN1bWUoSUQpIHx8IGVycm9yKCJObyBuYW1lIGZvciBpbnRlcmZhY2Ug
bWl4aW4iKTsKLSAgICAgIGNvbnN0IG1lbXMgPSBbXTsKLSAgICAgIGNvbnN0IHJldCA9IGN1cnJl
bnQgPSB7Ci0gICAgICAgIHR5cGU6ICJpbnRlcmZhY2UgbWl4aW4iLAotICAgICAgICBuYW1lOiBp
c1BhcnRpYWwgPyBuYW1lLnZhbHVlIDogc2FuaXRpemVfbmFtZShuYW1lLnZhbHVlLCAiaW50ZXJm
YWNlIG1peGluIiksCi0gICAgICAgIHBhcnRpYWw6IGlzUGFydGlhbCwKLSAgICAgICAgbWVtYmVy
czogbWVtcwotICAgICAgfTsKLSAgICAgIGNvbnN1bWUoInsiKSB8fCBlcnJvcigiQm9keWxlc3Mg
aW50ZXJmYWNlIG1peGluIik7Ci0gICAgICB3aGlsZSAodHJ1ZSkgewotICAgICAgICBpZiAoY29u
c3VtZSgifSIpKSB7Ci0gICAgICAgICAgY29uc3VtZSgiOyIpIHx8IGVycm9yKCJNaXNzaW5nIHNl
bWljb2xvbiBhZnRlciBpbnRlcmZhY2UgbWl4aW4iKTsKLSAgICAgICAgICByZXR1cm4gcmV0Owot
ICAgICAgICB9Ci0gICAgICAgIGNvbnN0IGVhID0gZXh0ZW5kZWRfYXR0cnMoKTsKLSAgICAgICAg
Y29uc3QgbWVtID0gY29uc3RfKCkgfHwKLSAgICAgICAgICBzdHJpbmdpZmllcigpIHx8Ci0gICAg
ICAgICAgYXR0cmlidXRlKHsgbm9Jbmhlcml0OiB0cnVlIH0pIHx8Ci0gICAgICAgICAgb3BlcmF0
aW9uKHsgcmVndWxhcjogdHJ1ZSB9KSB8fAotICAgICAgICAgIGVycm9yKCJVbmtub3duIG1lbWJl
ciIpOwotICAgICAgICBtZW0uZXh0QXR0cnMgPSBlYTsKLSAgICAgICAgcmV0Lm1lbWJlcnMucHVz
aChtZW0pOwotICAgICAgfQotICAgIH0KIAotICAgIGZ1bmN0aW9uIGludGVyZmFjZV8oaXNQYXJ0
aWFsKSB7Ci0gICAgICBpZiAoIWNvbnN1bWUoImludGVyZmFjZSIpKSByZXR1cm47Ci0gICAgICBy
ZXR1cm4gbWl4aW5fcmVzdChpc1BhcnRpYWwpIHx8Ci0gICAgICAgIGludGVyZmFjZV9yZXN0KGlz
UGFydGlhbCkgfHwKLSAgICAgICAgZXJyb3IoIkludGVyZmFjZSBoYXMgbm8gcHJvcGVyIGJvZHki
KTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBuYW1lc3BhY2UoaXNQYXJ0aWFsKSB7Ci0gICAgICBp
ZiAoIWNvbnN1bWUoIm5hbWVzcGFjZSIpKSByZXR1cm47Ci0gICAgICBjb25zdCBuYW1lID0gY29u
c3VtZShJRCkgfHwgZXJyb3IoIk5vIG5hbWUgZm9yIG5hbWVzcGFjZSIpOwotICAgICAgY29uc3Qg
bWVtcyA9IFtdOwotICAgICAgY29uc3QgcmV0ID0gY3VycmVudCA9IHsKLSAgICAgICAgdHlwZTog
Im5hbWVzcGFjZSIsCi0gICAgICAgIG5hbWU6IGlzUGFydGlhbCA/IG5hbWUudmFsdWUgOiBzYW5p
dGl6ZV9uYW1lKG5hbWUudmFsdWUsICJuYW1lc3BhY2UiKSwKLSAgICAgICAgcGFydGlhbDogaXNQ
YXJ0aWFsLAotICAgICAgICBtZW1iZXJzOiBtZW1zCi0gICAgICB9OwotICAgICAgY29uc3VtZSgi
eyIpIHx8IGVycm9yKCJCb2R5bGVzcyBuYW1lc3BhY2UiKTsKLSAgICAgIHdoaWxlICh0cnVlKSB7
Ci0gICAgICAgIGlmIChjb25zdW1lKCJ9IikpIHsKLSAgICAgICAgICBjb25zdW1lKCI7IikgfHwg
ZXJyb3IoIk1pc3Npbmcgc2VtaWNvbG9uIGFmdGVyIG5hbWVzcGFjZSIpOwotICAgICAgICAgIHJl
dHVybiByZXQ7Ci0gICAgICAgIH0KLSAgICAgICAgY29uc3QgZWEgPSBleHRlbmRlZF9hdHRycygp
OwotICAgICAgICBjb25zdCBtZW0gPSBhdHRyaWJ1dGUoeyBub0luaGVyaXQ6IHRydWUsIHJlYWRv
bmx5OiB0cnVlIH0pIHx8Ci0gICAgICAgICAgb3BlcmF0aW9uKHsgcmVndWxhcjogdHJ1ZSB9KSB8
fAotICAgICAgICAgIGVycm9yKCJVbmtub3duIG1lbWJlciIpOwotICAgICAgICBtZW0uZXh0QXR0
cnMgPSBlYTsKLSAgICAgICAgcmV0Lm1lbWJlcnMucHVzaChtZW0pOwotICAgICAgfQotICAgIH0K
Ky8qKiovIH0pLAorLyogNyAqLworLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgX193ZWJwYWNrX2V4
cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgewogCi0gICAgZnVuY3Rpb24gcGFydGlhbCgp
IHsKLSAgICAgIGlmICghY29uc3VtZSgicGFydGlhbCIpKSByZXR1cm47Ci0gICAgICBjb25zdCB0
aGluZyA9IGRpY3Rpb25hcnkodHJ1ZSkgfHwKLSAgICAgICAgaW50ZXJmYWNlXyh0cnVlKSB8fAot
ICAgICAgICBuYW1lc3BhY2UodHJ1ZSkgfHwKLSAgICAgICAgZXJyb3IoIlBhcnRpYWwgZG9lc24n
dCBhcHBseSB0byBhbnl0aGluZyIpOwotICAgICAgcmV0dXJuIHRoaW5nOwotICAgIH0KLQotICAg
IGZ1bmN0aW9uIGRpY3Rpb25hcnkoaXNQYXJ0aWFsKSB7Ci0gICAgICBpZiAoIWNvbnN1bWUoImRp
Y3Rpb25hcnkiKSkgcmV0dXJuOwotICAgICAgY29uc3QgbmFtZSA9IGNvbnN1bWUoSUQpIHx8IGVy
cm9yKCJObyBuYW1lIGZvciBkaWN0aW9uYXJ5Iik7Ci0gICAgICBjb25zdCBtZW1zID0gW107Ci0g
ICAgICBjb25zdCByZXQgPSBjdXJyZW50ID0gewotICAgICAgICB0eXBlOiAiZGljdGlvbmFyeSIs
Ci0gICAgICAgIG5hbWU6IGlzUGFydGlhbCA/IG5hbWUudmFsdWUgOiBzYW5pdGl6ZV9uYW1lKG5h
bWUudmFsdWUsICJkaWN0aW9uYXJ5IiksCi0gICAgICAgIHBhcnRpYWw6IGlzUGFydGlhbCwKLSAg
ICAgICAgbWVtYmVyczogbWVtcwotICAgICAgfTsKLSAgICAgIGlmICghaXNQYXJ0aWFsKSByZXQu
aW5oZXJpdGFuY2UgPSBpbmhlcml0YW5jZSgpIHx8IG51bGw7Ci0gICAgICBjb25zdW1lKCJ7Iikg
fHwgZXJyb3IoIkJvZHlsZXNzIGRpY3Rpb25hcnkiKTsKLSAgICAgIHdoaWxlICh0cnVlKSB7Ci0g
ICAgICAgIGlmIChjb25zdW1lKCJ9IikpIHsKLSAgICAgICAgICBjb25zdW1lKCI7IikgfHwgZXJy
b3IoIk1pc3Npbmcgc2VtaWNvbG9uIGFmdGVyIGRpY3Rpb25hcnkiKTsKLSAgICAgICAgICByZXR1
cm4gcmV0OwotICAgICAgICB9Ci0gICAgICAgIGNvbnN0IGVhID0gZXh0ZW5kZWRfYXR0cnMoKTsK
LSAgICAgICAgY29uc3QgcmVxdWlyZWQgPSBjb25zdW1lKCJyZXF1aXJlZCIpOwotICAgICAgICBj
b25zdCB0eXAgPSB0eXBlX3dpdGhfZXh0ZW5kZWRfYXR0cmlidXRlcygiZGljdGlvbmFyeS10eXBl
IikgfHwgZXJyb3IoIk5vIHR5cGUgZm9yIGRpY3Rpb25hcnkgbWVtYmVyIik7Ci0gICAgICAgIGNv
bnN0IG5hbWUgPSBjb25zdW1lKElEKSB8fCBlcnJvcigiTm8gbmFtZSBmb3IgZGljdGlvbmFyeSBt
ZW1iZXIiKTsKLSAgICAgICAgY29uc3QgZGZsdCA9IGRlZmF1bHRfKCkgfHwgbnVsbDsKLSAgICAg
ICAgaWYgKHJlcXVpcmVkICYmIGRmbHQpIGVycm9yKCJSZXF1aXJlZCBtZW1iZXIgbXVzdCBub3Qg
aGF2ZSBhIGRlZmF1bHQiKTsKLSAgICAgICAgY29uc3QgbWVtYmVyID0gewotICAgICAgICAgIHR5
cGU6ICJmaWVsZCIsCi0gICAgICAgICAgbmFtZTogdW5lc2NhcGUobmFtZS52YWx1ZSksCi0gICAg
ICAgICAgZXNjYXBlZE5hbWU6IG5hbWUudmFsdWUsCi0gICAgICAgICAgcmVxdWlyZWQ6ICEhcmVx
dWlyZWQsCi0gICAgICAgICAgaWRsVHlwZTogdHlwLAotICAgICAgICAgIGV4dEF0dHJzOiBlYSwK
LSAgICAgICAgICBkZWZhdWx0OiBkZmx0Ci0gICAgICAgIH07Ci0gICAgICAgIHJldC5tZW1iZXJz
LnB1c2gobWVtYmVyKTsKLSAgICAgICAgY29uc3VtZSgiOyIpIHx8IGVycm9yKCJVbnRlcm1pbmF0
ZWQgZGljdGlvbmFyeSBtZW1iZXIiKTsKKyJ1c2Ugc3RyaWN0IjsKK19fd2VicGFja19yZXF1aXJl
X18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTsKKy8qIGhhcm1vbnkgZXhwb3J0IChiaW5kaW5nKSAq
LyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgImlkbFR5cGVJbmNs
dWRlc0RpY3Rpb25hcnkiLCBmdW5jdGlvbigpIHsgcmV0dXJuIGlkbFR5cGVJbmNsdWRlc0RpY3Rp
b25hcnk7IH0pOworLyoqCisgKiBAcGFyYW0geyp9IGlkbFR5cGUKKyAqIEBwYXJhbSB7KltdfSBk
ZWZzCisgKiBAcGFyYW0ge29iamVjdH0gW29wdGlvbnNdCisgKiBAcGFyYW0ge2Jvb2xlYW59IFtv
cHRpb25zLnVzZU51bGxhYmxlSW5uZXJdIHVzZSB3aGVuIHRoZSBpbnB1dCBpZGxUeXBlIGlzIG51
bGxhYmxlIGFuZCB5b3Ugd2FudCB0byB1c2UgaXRzIGlubmVyIHR5cGUKKyAqIEByZXR1cm4gdGhl
IHR5cGUgcmVmZXJlbmNlIHRoYXQgdWx0aW1hdGVseSBpbmNsdWRlcyBkaWN0aW9uYXJ5LgorICov
CitmdW5jdGlvbiBpZGxUeXBlSW5jbHVkZXNEaWN0aW9uYXJ5KGlkbFR5cGUsIGRlZnMsIHsgdXNl
TnVsbGFibGVJbm5lciB9ID0ge30pIHsKKyAgaWYgKCFpZGxUeXBlLnVuaW9uKSB7CisgICAgY29u
c3QgZGVmID0gZGVmcy51bmlxdWUuZ2V0KGlkbFR5cGUuaWRsVHlwZSk7CisgICAgaWYgKCFkZWYp
IHsKKyAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKGRlZi50eXBlID09PSAidHlwZWRlZiIp
IHsKKyAgICAgIGNvbnN0IHsgdHlwZWRlZkluY2x1ZGVzRGljdGlvbmFyeX0gPSBkZWZzLmNhY2hl
OworICAgICAgaWYgKHR5cGVkZWZJbmNsdWRlc0RpY3Rpb25hcnkuaGFzKGRlZikpIHsKKyAgICAg
ICAgLy8gTm90ZSB0aGF0IHRoaXMgYWxzbyBoYWx0cyB3aGVuIGl0IG1ldCBpbmRldGVybWluYXRl
IHN0YXRlCisgICAgICAgIC8vIHRvIHByZXZlbnQgaW5maW5pdGUgcmVjdXJzaW9uCisgICAgICAg
IHJldHVybiB0eXBlZGVmSW5jbHVkZXNEaWN0aW9uYXJ5LmdldChkZWYpOworICAgICAgfQorICAg
ICAgZGVmcy5jYWNoZS50eXBlZGVmSW5jbHVkZXNEaWN0aW9uYXJ5LnNldChkZWYsIHVuZGVmaW5l
ZCk7IC8vIGluZGV0ZXJtaW5hdGUgc3RhdGUKKyAgICAgIGNvbnN0IHJlc3VsdCA9IGlkbFR5cGVJ
bmNsdWRlc0RpY3Rpb25hcnkoZGVmLmlkbFR5cGUsIGRlZnMpOworICAgICAgZGVmcy5jYWNoZS50
eXBlZGVmSW5jbHVkZXNEaWN0aW9uYXJ5LnNldChkZWYsIHJlc3VsdCk7CisgICAgICBpZiAocmVz
dWx0KSB7CisgICAgICAgIHJldHVybiBpZGxUeXBlOwogICAgICAgfQogICAgIH0KLQotICAgIGZ1
bmN0aW9uIGVudW1fKCkgewotICAgICAgaWYgKCFjb25zdW1lKCJlbnVtIikpIHJldHVybjsKLSAg
ICAgIGNvbnN0IG5hbWUgPSBjb25zdW1lKElEKSB8fCBlcnJvcigiTm8gbmFtZSBmb3IgZW51bSIp
OwotICAgICAgY29uc3QgdmFscyA9IFtdOwotICAgICAgY29uc3QgcmV0ID0gY3VycmVudCA9IHsK
LSAgICAgICAgdHlwZTogImVudW0iLAotICAgICAgICBuYW1lOiBzYW5pdGl6ZV9uYW1lKG5hbWUu
dmFsdWUsICJlbnVtIiksCi0gICAgICAgIHZhbHVlczogdmFscwotICAgICAgfTsKLSAgICAgIGNv
bnN1bWUoInsiKSB8fCBlcnJvcigiTm8gY3VybHkgZm9yIGVudW0iKTsKLSAgICAgIGxldCB2YWx1
ZV9leHBlY3RlZCA9IHRydWU7Ci0gICAgICB3aGlsZSAodHJ1ZSkgewotICAgICAgICBpZiAoY29u
c3VtZSgifSIpKSB7Ci0gICAgICAgICAgaWYgKCFyZXQudmFsdWVzLmxlbmd0aCkgZXJyb3IoIk5v
IHZhbHVlIGluIGVudW0iKTsKLSAgICAgICAgICBjb25zdW1lKCI7IikgfHwgZXJyb3IoIk5vIHNl
bWljb2xvbiBhZnRlciBlbnVtIik7Ci0gICAgICAgICAgcmV0dXJuIHJldDsKLSAgICAgICAgfQot
ICAgICAgICBlbHNlIGlmICghdmFsdWVfZXhwZWN0ZWQpIHsKLSAgICAgICAgICBlcnJvcigiTm8g
Y29tbWEgYmV0d2VlbiBlbnVtIHZhbHVlcyIpOwotICAgICAgICB9Ci0gICAgICAgIGNvbnN0IHZh
bCA9IGNvbnN1bWUoU1RSKSB8fCBlcnJvcigiVW5leHBlY3RlZCB2YWx1ZSBpbiBlbnVtIik7Ci0g
ICAgICAgIHZhbC52YWx1ZSA9IHZhbC52YWx1ZS5zbGljZSgxLCAtMSk7Ci0gICAgICAgIC8vIE5v
IHRyaXZpYSBleHBvc3VyZSB5ZXQKLSAgICAgICAgdmFsLnRyaXZpYSA9IHVuZGVmaW5lZDsKLSAg
ICAgICAgcmV0LnZhbHVlcy5wdXNoKHZhbCk7Ci0gICAgICAgIHZhbHVlX2V4cGVjdGVkID0gISFj
b25zdW1lKCIsIik7CisgICAgaWYgKGRlZi50eXBlID09PSAiZGljdGlvbmFyeSIgJiYgKHVzZU51
bGxhYmxlSW5uZXIgfHwgIWlkbFR5cGUubnVsbGFibGUpKSB7CisgICAgICByZXR1cm4gaWRsVHlw
ZTsKKyAgICB9CisgIH0KKyAgZm9yIChjb25zdCBzdWJ0eXBlIG9mIGlkbFR5cGUuc3VidHlwZSkg
eworICAgIGNvbnN0IHJlc3VsdCA9IGlkbFR5cGVJbmNsdWRlc0RpY3Rpb25hcnkoc3VidHlwZSwg
ZGVmcyk7CisgICAgaWYgKHJlc3VsdCkgeworICAgICAgaWYgKHN1YnR5cGUudW5pb24pIHsKKyAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgIH0KKyAgICAgIHJldHVybiBzdWJ0eXBlOwogICAg
IH0KKyAgfQorfQogCi0gICAgZnVuY3Rpb24gdHlwZWRlZigpIHsKLSAgICAgIGlmICghY29uc3Vt
ZSgidHlwZWRlZiIpKSByZXR1cm47Ci0gICAgICBjb25zdCByZXQgPSB7Ci0gICAgICAgIHR5cGU6
ICJ0eXBlZGVmIgotICAgICAgfTsKLSAgICAgIHJldC5pZGxUeXBlID0gdHlwZV93aXRoX2V4dGVu
ZGVkX2F0dHJpYnV0ZXMoInR5cGVkZWYtdHlwZSIpIHx8IGVycm9yKCJObyB0eXBlIGluIHR5cGVk
ZWYiKTsKLSAgICAgIGNvbnN0IG5hbWUgPSBjb25zdW1lKElEKSB8fCBlcnJvcigiTm8gbmFtZSBp
biB0eXBlZGVmIik7Ci0gICAgICByZXQubmFtZSA9IHNhbml0aXplX25hbWUobmFtZS52YWx1ZSwg
InR5cGVkZWYiKTsKLSAgICAgIGN1cnJlbnQgPSByZXQ7Ci0gICAgICBjb25zdW1lKCI7IikgfHwg
ZXJyb3IoIlVudGVybWluYXRlZCB0eXBlZGVmIik7Ci0gICAgICByZXR1cm4gcmV0OwotICAgIH0K
LQotICAgIGZ1bmN0aW9uIGltcGxlbWVudHNfKCkgewotICAgICAgY29uc3Qgc3RhcnRfcG9zaXRp
b24gPSBjb25zdW1lX3Bvc2l0aW9uOwotICAgICAgY29uc3QgdGFyZ2V0ID0gY29uc3VtZShJRCk7
Ci0gICAgICBpZiAoIXRhcmdldCkgcmV0dXJuOwotICAgICAgaWYgKGNvbnN1bWUoImltcGxlbWVu
dHMiKSkgewotICAgICAgICBjb25zdCByZXQgPSB7Ci0gICAgICAgICAgdHlwZTogImltcGxlbWVu
dHMiLAotICAgICAgICAgIHRhcmdldDogdGFyZ2V0LnZhbHVlCi0gICAgICAgIH07Ci0gICAgICAg
IGNvbnN0IGltcCA9IGNvbnN1bWUoSUQpIHx8IGVycm9yKCJJbmNvbXBsZXRlIGltcGxlbWVudHMg
c3RhdGVtZW50Iik7Ci0gICAgICAgIHJldC5pbXBsZW1lbnRzID0gaW1wLnZhbHVlOwotICAgICAg
ICBjb25zdW1lKCI7IikgfHwgZXJyb3IoIk5vIHRlcm1pbmF0aW5nIDsgZm9yIGltcGxlbWVudHMg
c3RhdGVtZW50Iik7Ci0gICAgICAgIHJldHVybiByZXQ7Ci0gICAgICB9IGVsc2UgewotICAgICAg
ICAvLyByb2xsYmFjawotICAgICAgICB1bmNvbnN1bWUoc3RhcnRfcG9zaXRpb24pOwotICAgICAg
fQorCisvKioqLyB9KSwKKy8qIDggKi8KKy8qKiovIChmdW5jdGlvbihtb2R1bGUsIF9fd2VicGFj
a19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pIHsKKworInVzZSBzdHJpY3QiOworX193
ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pOworLyogaGFybW9ueSBleHBv
cnQgKGJpbmRpbmcpICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19f
LCAiQXJndW1lbnQiLCBmdW5jdGlvbigpIHsgcmV0dXJuIEFyZ3VtZW50OyB9KTsKKy8qIGhhcm1v
bnkgaW1wb3J0ICovIHZhciBfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0g
X193ZWJwYWNrX3JlcXVpcmVfXyg2KTsKKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfZGVmYXVs
dF9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg5
KTsKKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfZXh0ZW5kZWRfYXR0cmlidXRlc19qc19fV0VC
UEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygxMCk7CisvKiBo
YXJtb255IGltcG9ydCAqLyB2YXIgX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxF
XzNfXyA9IF9fd2VicGFja19yZXF1aXJlX18oNCk7CisvKiBoYXJtb255IGltcG9ydCAqLyB2YXIg
X3Rva2VuaXNlcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fID0gX193ZWJwYWNrX3Jl
cXVpcmVfXygyKTsKKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfZXJyb3JfanNfX1dFQlBBQ0tf
SU1QT1JURURfTU9EVUxFXzVfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMyk7CisvKiBoYXJtb255
IGltcG9ydCAqLyB2YXIgX3ZhbGlkYXRvcnNfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9N
T0RVTEVfNl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg3KTsKKworCisKKworCisKKworCitjbGFz
cyBBcmd1bWVudCBleHRlbmRzIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19b
IkJhc2UiXSB7CisgIC8qKgorICAgKiBAcGFyYW0ge2ltcG9ydCgiLi4vdG9rZW5pc2VyIikuVG9r
ZW5pc2VyfSB0b2tlbmlzZXIKKyAgICovCisgIHN0YXRpYyBwYXJzZSh0b2tlbmlzZXIpIHsKKyAg
ICBjb25zdCBzdGFydF9wb3NpdGlvbiA9IHRva2VuaXNlci5wb3NpdGlvbjsKKyAgICBjb25zdCB0
b2tlbnMgPSB7fTsKKyAgICBjb25zdCByZXQgPSBuZXcgQXJndW1lbnQoeyBzb3VyY2U6IHRva2Vu
aXNlci5zb3VyY2UsIHRva2VucyB9KTsKKyAgICByZXQuZXh0QXR0cnMgPSBfZXh0ZW5kZWRfYXR0
cmlidXRlc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fWyJFeHRlbmRlZEF0dHJpYnV0
ZXMiXS5wYXJzZSh0b2tlbmlzZXIpOworICAgIHRva2Vucy5vcHRpb25hbCA9IHRva2VuaXNlci5j
b25zdW1lKCJvcHRpb25hbCIpOworICAgIHJldC5pZGxUeXBlID0gT2JqZWN0KF9oZWxwZXJzX2pz
X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX19bInR5cGVfd2l0aF9leHRlbmRlZF9hdHRyaWJ1
dGVzIl0pKHRva2VuaXNlciwgImFyZ3VtZW50LXR5cGUiKTsKKyAgICBpZiAoIXJldC5pZGxUeXBl
KSB7CisgICAgICByZXR1cm4gdG9rZW5pc2VyLnVuY29uc3VtZShzdGFydF9wb3NpdGlvbik7CiAg
ICAgfQorICAgIGlmICghdG9rZW5zLm9wdGlvbmFsKSB7CisgICAgICB0b2tlbnMudmFyaWFkaWMg
PSB0b2tlbmlzZXIuY29uc3VtZSgiLi4uIik7CisgICAgfQorICAgIHRva2Vucy5uYW1lID0gdG9r
ZW5pc2VyLmNvbnN1bWUoImlkZW50aWZpZXIiLCAuLi5fdG9rZW5pc2VyX2pzX19XRUJQQUNLX0lN
UE9SVEVEX01PRFVMRV80X19bImFyZ3VtZW50TmFtZUtleXdvcmRzIl0pOworICAgIGlmICghdG9r
ZW5zLm5hbWUpIHsKKyAgICAgIHJldHVybiB0b2tlbmlzZXIudW5jb25zdW1lKHN0YXJ0X3Bvc2l0
aW9uKTsKKyAgICB9CisgICAgcmV0LmRlZmF1bHQgPSB0b2tlbnMub3B0aW9uYWwgPyBfZGVmYXVs
dF9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fWyJEZWZhdWx0Il0ucGFyc2UodG9rZW5p
c2VyKSA6IG51bGw7CisgICAgcmV0dXJuIHJldDsKKyAgfQogCi0gICAgZnVuY3Rpb24gaW5jbHVk
ZXMoKSB7Ci0gICAgICBjb25zdCBzdGFydF9wb3NpdGlvbiA9IGNvbnN1bWVfcG9zaXRpb247Ci0g
ICAgICBjb25zdCB0YXJnZXQgPSBjb25zdW1lKElEKTsKLSAgICAgIGlmICghdGFyZ2V0KSByZXR1
cm47Ci0gICAgICBpZiAoY29uc3VtZSgiaW5jbHVkZXMiKSkgewotICAgICAgICBjb25zdCByZXQg
PSB7Ci0gICAgICAgICAgdHlwZTogImluY2x1ZGVzIiwKLSAgICAgICAgICB0YXJnZXQ6IHRhcmdl
dC52YWx1ZQotICAgICAgICB9OwotICAgICAgICBjb25zdCBpbXAgPSBjb25zdW1lKElEKSB8fCBl
cnJvcigiSW5jb21wbGV0ZSBpbmNsdWRlcyBzdGF0ZW1lbnQiKTsKLSAgICAgICAgcmV0LmluY2x1
ZGVzID0gaW1wLnZhbHVlOwotICAgICAgICBjb25zdW1lKCI7IikgfHwgZXJyb3IoIk5vIHRlcm1p
bmF0aW5nIDsgZm9yIGluY2x1ZGVzIHN0YXRlbWVudCIpOwotICAgICAgICByZXR1cm4gcmV0Owot
ICAgICAgfSBlbHNlIHsKLSAgICAgICAgLy8gcm9sbGJhY2sKLSAgICAgICAgdW5jb25zdW1lKHN0
YXJ0X3Bvc2l0aW9uKTsKKyAgZ2V0IHR5cGUoKSB7CisgICAgcmV0dXJuICJhcmd1bWVudCI7Cisg
IH0KKyAgZ2V0IG9wdGlvbmFsKCkgeworICAgIHJldHVybiAhIXRoaXMudG9rZW5zLm9wdGlvbmFs
OworICB9CisgIGdldCB2YXJpYWRpYygpIHsKKyAgICByZXR1cm4gISF0aGlzLnRva2Vucy52YXJp
YWRpYzsKKyAgfQorICBnZXQgbmFtZSgpIHsKKyAgICByZXR1cm4gT2JqZWN0KF9oZWxwZXJzX2pz
X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX19bInVuZXNjYXBlIl0pKHRoaXMudG9rZW5zLm5h
bWUudmFsdWUpOworICB9CisKKyAgKnZhbGlkYXRlKGRlZnMpIHsKKyAgICB5aWVsZCogdGhpcy5p
ZGxUeXBlLnZhbGlkYXRlKGRlZnMpOworICAgIGlmIChPYmplY3QoX3ZhbGlkYXRvcnNfaGVscGVy
c19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fWyJpZGxUeXBlSW5jbHVkZXNEaWN0aW9u
YXJ5Il0pKHRoaXMuaWRsVHlwZSwgZGVmcywgeyB1c2VOdWxsYWJsZUlubmVyOiB0cnVlIH0pKSB7
CisgICAgICBpZiAodGhpcy5pZGxUeXBlLm51bGxhYmxlKSB7CisgICAgICAgIGNvbnN0IG1lc3Nh
Z2UgPSBgRGljdGlvbmFyeSBhcmd1bWVudHMgY2Fubm90IGJlIG51bGxhYmxlLmA7CisgICAgICAg
IHlpZWxkIE9iamVjdChfZXJyb3JfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfX1sidmFs
aWRhdGlvbkVycm9yIl0pKHRoaXMuc291cmNlLCB0aGlzLnRva2Vucy5uYW1lLCB0aGlzLCBtZXNz
YWdlKTsKKyAgICAgIH0gZWxzZSBpZiAodGhpcy5vcHRpb25hbCAmJiAhdGhpcy5kZWZhdWx0KSB7
CisgICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgT3B0aW9uYWwgZGljdGlvbmFyeSBhcmd1bWVudHMg
bXVzdCBoYXZlIGEgZGVmYXVsdCB2YWx1ZSBvZiBcYHt9XGAuYDsKKyAgICAgICAgeWllbGQgT2Jq
ZWN0KF9lcnJvcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fWyJ2YWxpZGF0aW9uRXJy
b3IiXSkodGhpcy5zb3VyY2UsIHRoaXMudG9rZW5zLm5hbWUsIHRoaXMsIG1lc3NhZ2UsIHsKKyAg
ICAgICAgICBhdXRvZml4OiBhdXRvZml4T3B0aW9uYWxEaWN0aW9uYXJ5RGVmYXVsdFZhbHVlKHRo
aXMpCisgICAgICAgIH0pOwogICAgICAgfQogICAgIH0KKyAgfQorfQorCisvKioKKyAqIEBwYXJh
bSB7QXJndW1lbnR9IGFyZworICovCitmdW5jdGlvbiBhdXRvZml4T3B0aW9uYWxEaWN0aW9uYXJ5
RGVmYXVsdFZhbHVlKGFyZykgeworICByZXR1cm4gKCkgPT4geworICAgIGFyZy5kZWZhdWx0ID0g
X2RlZmF1bHRfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX1siRGVmYXVsdCJdLnBhcnNl
KG5ldyBfdG9rZW5pc2VyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X19bIlRva2VuaXNl
ciJdKCIgPSB7fSIpKTsKKyAgfTsKK30KKworCisvKioqLyB9KSwKKy8qIDkgKi8KKy8qKiovIChm
dW5jdGlvbihtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18p
IHsKKworInVzZSBzdHJpY3QiOworX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBv
cnRzX18pOworLyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFja19yZXF1aXJl
X18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAiRGVmYXVsdCIsIGZ1bmN0aW9uKCkgeyByZXR1cm4g
RGVmYXVsdDsgfSk7CisvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2Jhc2VfanNfX1dFQlBBQ0tf
SU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oNik7CisvKiBoYXJtb255
IGltcG9ydCAqLyB2YXIgX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9
IF9fd2VicGFja19yZXF1aXJlX18oNCk7CiAKLSAgICBmdW5jdGlvbiBkZWZpbml0aW9uKCkgewot
ICAgICAgcmV0dXJuIGNhbGxiYWNrKCkgfHwKLSAgICAgICAgaW50ZXJmYWNlXyhmYWxzZSkgfHwK
LSAgICAgICAgcGFydGlhbCgpIHx8Ci0gICAgICAgIGRpY3Rpb25hcnkoZmFsc2UpIHx8Ci0gICAg
ICAgIGVudW1fKCkgfHwKLSAgICAgICAgdHlwZWRlZigpIHx8Ci0gICAgICAgIGltcGxlbWVudHNf
KCkgfHwKLSAgICAgICAgaW5jbHVkZXMoKSB8fAotICAgICAgICBuYW1lc3BhY2UoZmFsc2UpOwor
CisKK2NsYXNzIERlZmF1bHQgZXh0ZW5kcyBfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RV
TEVfMF9fWyJCYXNlIl0geworICAvKioKKyAgICogQHBhcmFtIHtpbXBvcnQoIi4uL3Rva2VuaXNl
ciIpLlRva2VuaXNlcn0gdG9rZW5pc2VyCisgICAqLworICBzdGF0aWMgcGFyc2UodG9rZW5pc2Vy
KSB7CisgICAgY29uc3QgYXNzaWduID0gdG9rZW5pc2VyLmNvbnN1bWUoIj0iKTsKKyAgICBpZiAo
IWFzc2lnbikgeworICAgICAgcmV0dXJuIG51bGw7CiAgICAgfQorICAgIGNvbnN0IGRlZiA9IE9i
amVjdChfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fWyJjb25zdF92YWx1
ZSJdKSh0b2tlbmlzZXIpIHx8IHRva2VuaXNlci5jb25zdW1lKCJzdHJpbmciLCAibnVsbCIsICJb
IiwgInsiKSB8fCB0b2tlbmlzZXIuZXJyb3IoIk5vIHZhbHVlIGZvciBkZWZhdWx0Iik7CisgICAg
Y29uc3QgZXhwcmVzc2lvbiA9IFtkZWZdOworICAgIGlmIChkZWYudHlwZSA9PT0gIlsiKSB7Cisg
ICAgICBjb25zdCBjbG9zZSA9IHRva2VuaXNlci5jb25zdW1lKCJdIikgfHwgdG9rZW5pc2VyLmVy
cm9yKCJEZWZhdWx0IHNlcXVlbmNlIHZhbHVlIG11c3QgYmUgZW1wdHkiKTsKKyAgICAgIGV4cHJl
c3Npb24ucHVzaChjbG9zZSk7CisgICAgfSBlbHNlIGlmIChkZWYudHlwZSA9PT0gInsiKSB7Cisg
ICAgICBjb25zdCBjbG9zZSA9IHRva2VuaXNlci5jb25zdW1lKCJ9IikgfHwgdG9rZW5pc2VyLmVy
cm9yKCJEZWZhdWx0IGRpY3Rpb25hcnkgdmFsdWUgbXVzdCBiZSBlbXB0eSIpOworICAgICAgZXhw
cmVzc2lvbi5wdXNoKGNsb3NlKTsKKyAgICB9CisgICAgcmV0dXJuIG5ldyBEZWZhdWx0KHsgc291
cmNlOiB0b2tlbmlzZXIuc291cmNlLCB0b2tlbnM6IHsgYXNzaWduIH0sIGV4cHJlc3Npb24gfSk7
CisgIH0KIAotICAgIGZ1bmN0aW9uIGRlZmluaXRpb25zKCkgewotICAgICAgaWYgKCF0b2tlbnMu
bGVuZ3RoKSByZXR1cm4gW107Ci0gICAgICBjb25zdCBkZWZzID0gW107Ci0gICAgICB3aGlsZSAo
dHJ1ZSkgewotICAgICAgICBjb25zdCBlYSA9IGV4dGVuZGVkX2F0dHJzKCk7Ci0gICAgICAgIGNv
bnN0IGRlZiA9IGRlZmluaXRpb24oKTsKLSAgICAgICAgaWYgKCFkZWYpIHsKLSAgICAgICAgICBp
ZiAoZWEubGVuZ3RoKSBlcnJvcigiU3RyYXkgZXh0ZW5kZWQgYXR0cmlidXRlcyIpOwotICAgICAg
ICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgICAgIGRlZi5leHRBdHRycyA9IGVhOwotICAgICAg
ICBkZWZzLnB1c2goZGVmKTsKLSAgICAgIH0KLSAgICAgIHJldHVybiBkZWZzOworICBjb25zdHJ1
Y3Rvcih7IHNvdXJjZSwgdG9rZW5zLCBleHByZXNzaW9uIH0pIHsKKyAgICBzdXBlcih7IHNvdXJj
ZSwgdG9rZW5zIH0pOworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCAiZXhwcmVzc2lv
biIsIHsgdmFsdWU6IGV4cHJlc3Npb24gfSk7CisgIH0KKworICBnZXQgdHlwZSgpIHsKKyAgICBy
ZXR1cm4gT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19bImNv
bnN0X2RhdGEiXSkodGhpcy5leHByZXNzaW9uWzBdKS50eXBlOworICB9CisgIGdldCB2YWx1ZSgp
IHsKKyAgICByZXR1cm4gT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVM
RV8xX19bImNvbnN0X2RhdGEiXSkodGhpcy5leHByZXNzaW9uWzBdKS52YWx1ZTsKKyAgfQorICBn
ZXQgbmVnYXRpdmUoKSB7CisgICAgcmV0dXJuIE9iamVjdChfaGVscGVyc19qc19fV0VCUEFDS19J
TVBPUlRFRF9NT0RVTEVfMV9fWyJjb25zdF9kYXRhIl0pKHRoaXMuZXhwcmVzc2lvblswXSkubmVn
YXRpdmU7CisgIH0KK30KKworCisvKioqLyB9KSwKKy8qIDEwICovCisvKioqLyAoZnVuY3Rpb24o
bW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CisKKyJ1
c2Ugc3RyaWN0IjsKK19fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTsK
Ky8qIGhhcm1vbnkgZXhwb3J0IChiaW5kaW5nKSAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193
ZWJwYWNrX2V4cG9ydHNfXywgIlNpbXBsZUV4dGVuZGVkQXR0cmlidXRlIiwgZnVuY3Rpb24oKSB7
IHJldHVybiBTaW1wbGVFeHRlbmRlZEF0dHJpYnV0ZTsgfSk7CisvKiBoYXJtb255IGV4cG9ydCAo
YmluZGluZykgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sICJF
eHRlbmRlZEF0dHJpYnV0ZXMiLCBmdW5jdGlvbigpIHsgcmV0dXJuIEV4dGVuZGVkQXR0cmlidXRl
czsgfSk7CisvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JU
RURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oNik7CisvKiBoYXJtb255IGltcG9y
dCAqLyB2YXIgX2FycmF5X2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9f
d2VicGFja19yZXF1aXJlX18oMTEpOworLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9oZWxwZXJz
X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDQp
OworLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9lcnJvcl9qc19fV0VCUEFDS19JTVBPUlRFRF9N
T0RVTEVfM19fID0gX193ZWJwYWNrX3JlcXVpcmVfXygzKTsKKworCisKKworCitjbGFzcyBFeHRl
bmRlZEF0dHJpYnV0ZVBhcmFtZXRlcnMgZXh0ZW5kcyBfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRF
RF9NT0RVTEVfMF9fWyJCYXNlIl0geworICAvKioKKyAgICogQHBhcmFtIHtpbXBvcnQoIi4uL3Rv
a2VuaXNlciIpLlRva2VuaXNlcn0gdG9rZW5pc2VyCisgICAqLworICBzdGF0aWMgcGFyc2UodG9r
ZW5pc2VyKSB7CisgICAgY29uc3QgdG9rZW5zID0geyBhc3NpZ246IHRva2VuaXNlci5jb25zdW1l
KCI9IikgfTsKKyAgICBjb25zdCByZXQgPSBuZXcgRXh0ZW5kZWRBdHRyaWJ1dGVQYXJhbWV0ZXJz
KHsgc291cmNlOiB0b2tlbmlzZXIuc291cmNlLCB0b2tlbnMgfSk7CisgICAgaWYgKHRva2Vucy5h
c3NpZ24pIHsKKyAgICAgIHRva2Vucy5zZWNvbmRhcnlOYW1lID0gdG9rZW5pc2VyLmNvbnN1bWUo
ImlkZW50aWZpZXIiLCAiZGVjaW1hbCIsICJpbnRlZ2VyIiwgInN0cmluZyIpOworICAgIH0KKyAg
ICB0b2tlbnMub3BlbiA9IHRva2VuaXNlci5jb25zdW1lKCIoIik7CisgICAgaWYgKHRva2Vucy5v
cGVuKSB7CisgICAgICByZXQubGlzdCA9IHJldC5yaHNUeXBlID09PSAiaWRlbnRpZmllci1saXN0
IiA/CisgICAgICAgIC8vIFtFeHBvc2VkPShXaW5kb3csV29ya2VyKV0KKyAgICAgICAgT2JqZWN0
KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19bImlkZW50aWZpZXJzIl0p
KHRva2VuaXNlcikgOgorICAgICAgICAvLyBbTmFtZWRDb25zdHJ1Y3Rvcj1BdWRpbyhET01TdHJp
bmcgc3JjKV0gb3IgW0NvbnN0cnVjdG9yKERPTVN0cmluZyBzdHIpXQorICAgICAgICBPYmplY3Qo
X2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX1siYXJndW1lbnRfbGlzdCJd
KSh0b2tlbmlzZXIpOworICAgICAgdG9rZW5zLmNsb3NlID0gdG9rZW5pc2VyLmNvbnN1bWUoIiki
KSB8fCB0b2tlbmlzZXIuZXJyb3IoIlVuZXhwZWN0ZWQgdG9rZW4gaW4gZXh0ZW5kZWQgYXR0cmli
dXRlIGFyZ3VtZW50IGxpc3QiKTsKKyAgICB9IGVsc2UgaWYgKHJldC5oYXNSaHMgJiYgIXRva2Vu
cy5zZWNvbmRhcnlOYW1lKSB7CisgICAgICB0b2tlbmlzZXIuZXJyb3IoIk5vIHJpZ2h0IGhhbmQg
c2lkZSB0byBleHRlbmRlZCBhdHRyaWJ1dGUgYXNzaWdubWVudCIpOwogICAgIH0KLSAgICBjb25z
dCByZXMgPSBkZWZpbml0aW9ucygpOwotICAgIGlmIChjb25zdW1lX3Bvc2l0aW9uIDwgdG9rZW5z
Lmxlbmd0aCkgZXJyb3IoIlVucmVjb2duaXNlZCB0b2tlbnMiKTsKLSAgICByZXR1cm4gcmVzOwor
ICAgIHJldHVybiByZXQ7CiAgIH0KIAotICBjb25zdCBvYmogPSB7Ci0gICAgcGFyc2Uoc3RyKSB7
Ci0gICAgICBjb25zdCB0b2tlbnMgPSB0b2tlbmlzZShzdHIpOwotICAgICAgcmV0dXJuIHBhcnNl
KHRva2Vucyk7CisgIGdldCByaHNUeXBlKCkgeworICAgIHJldHVybiAhdGhpcy50b2tlbnMuYXNz
aWduID8gbnVsbCA6CisgICAgICAhdGhpcy50b2tlbnMuc2Vjb25kYXJ5TmFtZSA/ICJpZGVudGlm
aWVyLWxpc3QiIDoKKyAgICAgICAgdGhpcy50b2tlbnMuc2Vjb25kYXJ5TmFtZS50eXBlOworICB9
Cit9CisKK2NsYXNzIFNpbXBsZUV4dGVuZGVkQXR0cmlidXRlIGV4dGVuZHMgX2Jhc2VfanNfX1dF
QlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siQmFzZSJdIHsKKyAgLyoqCisgICAqIEBwYXJhbSB7
aW1wb3J0KCIuLi90b2tlbmlzZXIiKS5Ub2tlbmlzZXJ9IHRva2VuaXNlcgorICAgKi8KKyAgc3Rh
dGljIHBhcnNlKHRva2VuaXNlcikgeworICAgIGNvbnN0IG5hbWUgPSB0b2tlbmlzZXIuY29uc3Vt
ZSgiaWRlbnRpZmllciIpOworICAgIGlmIChuYW1lKSB7CisgICAgICByZXR1cm4gbmV3IFNpbXBs
ZUV4dGVuZGVkQXR0cmlidXRlKHsKKyAgICAgICAgc291cmNlOiB0b2tlbmlzZXIuc291cmNlLAor
ICAgICAgICB0b2tlbnM6IHsgbmFtZSB9LAorICAgICAgICBwYXJhbXM6IEV4dGVuZGVkQXR0cmli
dXRlUGFyYW1ldGVycy5wYXJzZSh0b2tlbmlzZXIpCisgICAgICB9KTsKICAgICB9Ci0gIH07Cisg
IH0KKworICBjb25zdHJ1Y3Rvcih7IHNvdXJjZSwgdG9rZW5zLCBwYXJhbXMgfSkgeworICAgIHN1
cGVyKHsgc291cmNlLCB0b2tlbnMgfSk7CisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMs
ICJwYXJhbXMiLCB7IHZhbHVlOiBwYXJhbXMgfSk7CisgIH0KIAotICBpZiAodHlwZW9mIG1vZHVs
ZSAhPT0gJ3VuZGVmaW5lZCcgJiYgdHlwZW9mIG1vZHVsZS5leHBvcnRzICE9PSAndW5kZWZpbmVk
JykgewotICAgIG1vZHVsZS5leHBvcnRzID0gb2JqOwotICB9IGVsc2UgaWYgKHR5cGVvZiBkZWZp
bmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCkgewotICAgIGRlZmluZShbXSwgKCkgPT4g
b2JqKTsKLSAgfSBlbHNlIHsKLSAgICAoc2VsZiB8fCB3aW5kb3cpLldlYklETDIgPSBvYmo7Cisg
IGdldCB0eXBlKCkgeworICAgIHJldHVybiAiZXh0ZW5kZWQtYXR0cmlidXRlIjsKKyAgfQorICBn
ZXQgbmFtZSgpIHsKKyAgICByZXR1cm4gdGhpcy50b2tlbnMubmFtZS52YWx1ZTsKKyAgfQorICBn
ZXQgcmhzKCkgeworICAgIGNvbnN0IHsgcmhzVHlwZTogdHlwZSwgdG9rZW5zLCBsaXN0IH0gPSB0
aGlzLnBhcmFtczsKKyAgICBpZiAoIXR5cGUpIHsKKyAgICAgIHJldHVybiBudWxsOworICAgIH0K
KyAgICBjb25zdCB2YWx1ZSA9IHR5cGUgPT09ICJpZGVudGlmaWVyLWxpc3QiID8gbGlzdCA6IHRv
a2Vucy5zZWNvbmRhcnlOYW1lLnZhbHVlOworICAgIHJldHVybiB7IHR5cGUsIHZhbHVlIH07Cisg
IH0KKyAgZ2V0IGFyZ3VtZW50cygpIHsKKyAgICBjb25zdCB7IHJoc1R5cGUsIGxpc3QgfSA9IHRo
aXMucGFyYW1zOworICAgIGlmICghbGlzdCB8fCByaHNUeXBlID09PSAiaWRlbnRpZmllci1saXN0
IikgeworICAgICAgcmV0dXJuIFtdOworICAgIH0KKyAgICByZXR1cm4gbGlzdDsKICAgfQotfSko
KTsKKworICAqdmFsaWRhdGUoZGVmcykgeworICAgIGlmICh0aGlzLm5hbWUgPT09ICJOb0ludGVy
ZmFjZU9iamVjdCIpIHsKKyAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgXGBbTm9JbnRlcmZhY2VPYmpl
Y3RdXGAgZXh0ZW5kZWQgYXR0cmlidXRlIGlzIGFuIFwKK3VuZGVzaXJhYmxlIGZlYXR1cmUgdGhh
dCBtYXkgYmUgcmVtb3ZlZCBmcm9tIFdlYiBJREwgaW4gdGhlIGZ1dHVyZS4gUmVmZXIgdG8gdGhl
IFwKK1tyZWxldmFudCB1cHN0cmVhbSBQUl0oaHR0cHM6Ly9naXRodWIuY29tL2hleWNhbS93ZWJp
ZGwvcHVsbC82MDkpIGZvciBtb3JlIFwKK2luZm9ybWF0aW9uLmA7CisgICAgICB5aWVsZCBPYmpl
Y3QoX2Vycm9yX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX19bInZhbGlkYXRpb25FcnJv
ciJdKSh0aGlzLnNvdXJjZSwgdGhpcy50b2tlbnMubmFtZSwgdGhpcywgbWVzc2FnZSwgeyBsZXZl
bDogIndhcm5pbmciIH0pOworICAgIH0KKyAgICBmb3IgKGNvbnN0IGFyZyBvZiB0aGlzLmFyZ3Vt
ZW50cykgeworICAgICAgeWllbGQqIGFyZy52YWxpZGF0ZShkZWZzKTsKKyAgICB9CisgIH0KK30K
KworLy8gTm90ZTogd2UgcGFyc2Ugc29tZXRoaW5nIHNpbXBsZXIgdGhhbiB0aGUgb2ZmaWNpYWwg
c3ludGF4LiBJdCdzIGFsbCB0aGF0IGV2ZXIKKy8vIHNlZW1zIHRvIGJlIHVzZWQKK2NsYXNzIEV4
dGVuZGVkQXR0cmlidXRlcyBleHRlbmRzIF9hcnJheV9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVE
X01PRFVMRV8xX19bIkFycmF5QmFzZSJdIHsKKyAgLyoqCisgICAqIEBwYXJhbSB7aW1wb3J0KCIu
Li90b2tlbmlzZXIiKS5Ub2tlbmlzZXJ9IHRva2VuaXNlcgorICAgKi8KKyAgc3RhdGljIHBhcnNl
KHRva2VuaXNlcikgeworICAgIGNvbnN0IHRva2VucyA9IHt9OworICAgIHRva2Vucy5vcGVuID0g
dG9rZW5pc2VyLmNvbnN1bWUoIlsiKTsKKyAgICBpZiAoIXRva2Vucy5vcGVuKSByZXR1cm4gbmV3
IEV4dGVuZGVkQXR0cmlidXRlcyh7fSk7CisgICAgY29uc3QgcmV0ID0gbmV3IEV4dGVuZGVkQXR0
cmlidXRlcyh7IHNvdXJjZTogdG9rZW5pc2VyLnNvdXJjZSwgdG9rZW5zIH0pOworICAgIHJldC5w
dXNoKC4uLk9iamVjdChfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fWyJs
aXN0Il0pKHRva2VuaXNlciwgeworICAgICAgcGFyc2VyOiBTaW1wbGVFeHRlbmRlZEF0dHJpYnV0
ZS5wYXJzZSwKKyAgICAgIGxpc3ROYW1lOiAiZXh0ZW5kZWQgYXR0cmlidXRlIgorICAgIH0pKTsK
KyAgICB0b2tlbnMuY2xvc2UgPSB0b2tlbmlzZXIuY29uc3VtZSgiXSIpIHx8IHRva2VuaXNlci5l
cnJvcigiVW5leHBlY3RlZCBjbG9zaW5nIHRva2VuIG9mIGV4dGVuZGVkIGF0dHJpYnV0ZSIpOwor
ICAgIGlmICghcmV0Lmxlbmd0aCkgeworICAgICAgdG9rZW5pc2VyLmVycm9yKCJGb3VuZCBhbiBl
bXB0eSBleHRlbmRlZCBhdHRyaWJ1dGUiKTsKKyAgICB9CisgICAgaWYgKHRva2VuaXNlci5wcm9i
ZSgiWyIpKSB7CisgICAgICB0b2tlbmlzZXIuZXJyb3IoIklsbGVnYWwgZG91YmxlIGV4dGVuZGVk
IGF0dHJpYnV0ZSBsaXN0cywgY29uc2lkZXIgbWVyZ2luZyB0aGVtIik7CisgICAgfQorICAgIHJl
dHVybiByZXQ7CisgIH0KKworICAqdmFsaWRhdGUoZGVmcykgeworICAgIGZvciAoY29uc3QgZXh0
QXR0ciBvZiB0aGlzKSB7CisgICAgICB5aWVsZCogZXh0QXR0ci52YWxpZGF0ZShkZWZzKTsKKyAg
ICB9CisgIH0KK30KKworCisvKioqLyB9KSwKKy8qIDExICovCisvKioqLyAoZnVuY3Rpb24obW9k
dWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CisKKyJ1c2Ug
c3RyaWN0IjsKK19fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTsKKy8q
IGhhcm1vbnkgZXhwb3J0IChiaW5kaW5nKSAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJw
YWNrX2V4cG9ydHNfXywgIkFycmF5QmFzZSIsIGZ1bmN0aW9uKCkgeyByZXR1cm4gQXJyYXlCYXNl
OyB9KTsKK2NsYXNzIEFycmF5QmFzZSBleHRlbmRzIEFycmF5IHsKKyAgY29uc3RydWN0b3IoeyBz
b3VyY2UsIHRva2VucyB9KSB7CisgICAgc3VwZXIoKTsKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVy
dGllcyh0aGlzLCB7CisgICAgICBzb3VyY2U6IHsgdmFsdWU6IHNvdXJjZSB9LAorICAgICAgdG9r
ZW5zOiB7IHZhbHVlOiB0b2tlbnMgfQorICAgIH0pOworICB9Cit9CisKKworLyoqKi8gfSksCisv
KiAxMiAqLworLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193
ZWJwYWNrX3JlcXVpcmVfXykgeworCisidXNlIHN0cmljdCI7CitfX3dlYnBhY2tfcmVxdWlyZV9f
LnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7CisvKiBoYXJtb255IGV4cG9ydCAoYmluZGluZykgKi8g
X193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sICJUb2tlbiIsIGZ1bmN0
aW9uKCkgeyByZXR1cm4gVG9rZW47IH0pOworLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9iYXNl
X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDYp
OworCisKK2NsYXNzIFRva2VuIGV4dGVuZHMgX2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9E
VUxFXzBfX1siQmFzZSJdIHsKKyAgLyoqCisgICAqIEBwYXJhbSB7aW1wb3J0KCIuLi90b2tlbmlz
ZXIiKS5Ub2tlbmlzZXJ9IHRva2VuaXNlcgorICAgKiBAcGFyYW0ge3N0cmluZ30gdHlwZQorICAg
Ki8KKyAgc3RhdGljIHBhcnNlcih0b2tlbmlzZXIsIHR5cGUpIHsKKyAgICByZXR1cm4gKCkgPT4g
eworICAgICAgY29uc3QgdmFsdWUgPSB0b2tlbmlzZXIuY29uc3VtZSh0eXBlKTsKKyAgICAgIGlm
ICh2YWx1ZSkgeworICAgICAgICByZXR1cm4gbmV3IFRva2VuKHsgc291cmNlOiB0b2tlbmlzZXIu
c291cmNlLCB0b2tlbnM6IHsgdmFsdWUgfSB9KTsKKyAgICAgIH0KKyAgICB9OworICB9CisKKyAg
Z2V0IHZhbHVlKCkgeworICAgIHJldHVybiB0aGlzLnRva2Vucy52YWx1ZS52YWx1ZTsKKyAgfQor
fQorCisKKy8qKiovIH0pLAorLyogMTMgKi8KKy8qKiovIChmdW5jdGlvbihtb2R1bGUsIF9fd2Vi
cGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pIHsKKworInVzZSBzdHJpY3QiOwor
X193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pOworLyogaGFybW9ueSBl
eHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0
c19fLCAiT3BlcmF0aW9uIiwgZnVuY3Rpb24oKSB7IHJldHVybiBPcGVyYXRpb247IH0pOworLyog
aGFybW9ueSBpbXBvcnQgKi8gdmFyIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8w
X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDYpOworLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9o
ZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18gPSBfX3dlYnBhY2tfcmVxdWly
ZV9fKDQpOworLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9lcnJvcl9qc19fV0VCUEFDS19JTVBP
UlRFRF9NT0RVTEVfMl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygzKTsKKworCisKKworY2xhc3Mg
T3BlcmF0aW9uIGV4dGVuZHMgX2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1si
QmFzZSJdIHsKKyAgLyoqCisgICAqIEBwYXJhbSB7aW1wb3J0KCIuLi90b2tlbmlzZXIuanMiKS5U
b2tlbmlzZXJ9IHRva2VuaXNlcgorICAgKi8KKyAgc3RhdGljIHBhcnNlKHRva2VuaXNlciwgeyBz
cGVjaWFsLCByZWd1bGFyIH0gPSB7fSkgeworICAgIGNvbnN0IHRva2VucyA9IHsgc3BlY2lhbCB9
OworICAgIGNvbnN0IHJldCA9IG5ldyBPcGVyYXRpb24oeyBzb3VyY2U6IHRva2VuaXNlci5zb3Vy
Y2UsIHRva2VucyB9KTsKKyAgICBpZiAoc3BlY2lhbCAmJiBzcGVjaWFsLnZhbHVlID09PSAic3Ry
aW5naWZpZXIiKSB7CisgICAgICB0b2tlbnMudGVybWluYXRpb24gPSB0b2tlbmlzZXIuY29uc3Vt
ZSgiOyIpOworICAgICAgaWYgKHRva2Vucy50ZXJtaW5hdGlvbikgeworICAgICAgICByZXQuYXJn
dW1lbnRzID0gW107CisgICAgICAgIHJldHVybiByZXQ7CisgICAgICB9CisgICAgfQorICAgIGlm
ICghc3BlY2lhbCAmJiAhcmVndWxhcikgeworICAgICAgdG9rZW5zLnNwZWNpYWwgPSB0b2tlbmlz
ZXIuY29uc3VtZSgiZ2V0dGVyIiwgInNldHRlciIsICJkZWxldGVyIik7CisgICAgfQorICAgIHJl
dC5pZGxUeXBlID0gT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8x
X19bInJldHVybl90eXBlIl0pKHRva2VuaXNlcikgfHwgdG9rZW5pc2VyLmVycm9yKCJNaXNzaW5n
IHJldHVybiB0eXBlIik7CisgICAgdG9rZW5zLm5hbWUgPSB0b2tlbmlzZXIuY29uc3VtZSgiaWRl
bnRpZmllciIsICJpbmNsdWRlcyIpOworICAgIHRva2Vucy5vcGVuID0gdG9rZW5pc2VyLmNvbnN1
bWUoIigiKSB8fCB0b2tlbmlzZXIuZXJyb3IoIkludmFsaWQgb3BlcmF0aW9uIik7CisgICAgcmV0
LmFyZ3VtZW50cyA9IE9iamVjdChfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVf
MV9fWyJhcmd1bWVudF9saXN0Il0pKHRva2VuaXNlcik7CisgICAgdG9rZW5zLmNsb3NlID0gdG9r
ZW5pc2VyLmNvbnN1bWUoIikiKSB8fCB0b2tlbmlzZXIuZXJyb3IoIlVudGVybWluYXRlZCBvcGVy
YXRpb24iKTsKKyAgICB0b2tlbnMudGVybWluYXRpb24gPSB0b2tlbmlzZXIuY29uc3VtZSgiOyIp
IHx8IHRva2VuaXNlci5lcnJvcigiVW50ZXJtaW5hdGVkIG9wZXJhdGlvbiwgZXhwZWN0ZWQgYDtg
Iik7CisgICAgcmV0dXJuIHJldDsKKyAgfQorCisgIGdldCB0eXBlKCkgeworICAgIHJldHVybiAi
b3BlcmF0aW9uIjsKKyAgfQorICBnZXQgbmFtZSgpIHsKKyAgICBjb25zdCB7IG5hbWUgfSA9IHRo
aXMudG9rZW5zOworICAgIGlmICghbmFtZSkgeworICAgICAgcmV0dXJuICIiOworICAgIH0KKyAg
ICByZXR1cm4gT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19b
InVuZXNjYXBlIl0pKG5hbWUudmFsdWUpOworICB9CisgIGdldCBzcGVjaWFsKCkgeworICAgIGlm
ICghdGhpcy50b2tlbnMuc3BlY2lhbCkgeworICAgICAgcmV0dXJuICIiOworICAgIH0KKyAgICBy
ZXR1cm4gdGhpcy50b2tlbnMuc3BlY2lhbC52YWx1ZTsKKyAgfQorCisgICp2YWxpZGF0ZShkZWZz
KSB7CisgICAgaWYgKCF0aGlzLm5hbWUgJiYgWyIiLCAic3RhdGljIl0uaW5jbHVkZXModGhpcy5z
cGVjaWFsKSkgeworICAgICAgY29uc3QgbWVzc2FnZSA9IGBSZWd1bGFyIG9yIHN0YXRpYyBvcGVy
YXRpb25zIG11c3QgaGF2ZSBib3RoIGEgcmV0dXJuIHR5cGUgYW5kIGFuIGlkZW50aWZpZXIuYDsK
KyAgICAgIHlpZWxkIE9iamVjdChfZXJyb3JfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJf
X1sidmFsaWRhdGlvbkVycm9yIl0pKHRoaXMuc291cmNlLCB0aGlzLnRva2Vucy5vcGVuLCB0aGlz
LCBtZXNzYWdlKTsKKyAgICB9CisgICAgaWYgKHRoaXMuaWRsVHlwZSkgeworICAgICAgeWllbGQq
IHRoaXMuaWRsVHlwZS52YWxpZGF0ZShkZWZzKTsKKyAgICB9CisgICAgZm9yIChjb25zdCBhcmd1
bWVudCBvZiB0aGlzLmFyZ3VtZW50cykgeworICAgICAgeWllbGQqIGFyZ3VtZW50LnZhbGlkYXRl
KGRlZnMpOworICAgIH0KKyAgfQorfQorCisKKy8qKiovIH0pLAorLyogMTQgKi8KKy8qKiovIChm
dW5jdGlvbihtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18p
IHsKKworInVzZSBzdHJpY3QiOworX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBv
cnRzX18pOworLyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFja19yZXF1aXJl
X18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAiQXR0cmlidXRlIiwgZnVuY3Rpb24oKSB7IHJldHVy
biBBdHRyaWJ1dGU7IH0pOworLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9iYXNlX2pzX19XRUJQ
QUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDYpOworLyogaGFy
bW9ueSBpbXBvcnQgKi8gdmFyIF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8x
X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDQpOworCisKKworY2xhc3MgQXR0cmlidXRlIGV4dGVu
ZHMgX2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siQmFzZSJdIHsKKyAgLyoq
CisgICAqIEBwYXJhbSB7aW1wb3J0KCIuLi90b2tlbmlzZXIuanMiKS5Ub2tlbmlzZXJ9IHRva2Vu
aXNlcgorICAgKi8KKyAgc3RhdGljIHBhcnNlKHRva2VuaXNlciwgeyBzcGVjaWFsLCBub0luaGVy
aXQgPSBmYWxzZSwgcmVhZG9ubHkgPSBmYWxzZSB9ID0ge30pIHsKKyAgICBjb25zdCBzdGFydF9w
b3NpdGlvbiA9IHRva2VuaXNlci5wb3NpdGlvbjsKKyAgICBjb25zdCB0b2tlbnMgPSB7IHNwZWNp
YWwgfTsKKyAgICBjb25zdCByZXQgPSBuZXcgQXR0cmlidXRlKHsgc291cmNlOiB0b2tlbmlzZXIu
c291cmNlLCB0b2tlbnMgfSk7CisgICAgaWYgKCFzcGVjaWFsICYmICFub0luaGVyaXQpIHsKKyAg
ICAgIHRva2Vucy5zcGVjaWFsID0gdG9rZW5pc2VyLmNvbnN1bWUoImluaGVyaXQiKTsKKyAgICB9
CisgICAgaWYgKHJldC5zcGVjaWFsID09PSAiaW5oZXJpdCIgJiYgdG9rZW5pc2VyLnByb2JlKCJy
ZWFkb25seSIpKSB7CisgICAgICB0b2tlbmlzZXIuZXJyb3IoIkluaGVyaXRlZCBhdHRyaWJ1dGVz
IGNhbm5vdCBiZSByZWFkLW9ubHkiKTsKKyAgICB9CisgICAgdG9rZW5zLnJlYWRvbmx5ID0gdG9r
ZW5pc2VyLmNvbnN1bWUoInJlYWRvbmx5Iik7CisgICAgaWYgKHJlYWRvbmx5ICYmICF0b2tlbnMu
cmVhZG9ubHkgJiYgdG9rZW5pc2VyLnByb2JlKCJhdHRyaWJ1dGUiKSkgeworICAgICAgdG9rZW5p
c2VyLmVycm9yKCJBdHRyaWJ1dGVzIG11c3QgYmUgcmVhZG9ubHkgaW4gdGhpcyBjb250ZXh0Iik7
CisgICAgfQorICAgIHRva2Vucy5iYXNlID0gdG9rZW5pc2VyLmNvbnN1bWUoImF0dHJpYnV0ZSIp
OworICAgIGlmICghdG9rZW5zLmJhc2UpIHsKKyAgICAgIHRva2VuaXNlci51bmNvbnN1bWUoc3Rh
cnRfcG9zaXRpb24pOworICAgICAgcmV0dXJuOworICAgIH0KKyAgICByZXQuaWRsVHlwZSA9IE9i
amVjdChfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fWyJ0eXBlX3dpdGhf
ZXh0ZW5kZWRfYXR0cmlidXRlcyJdKSh0b2tlbmlzZXIsICJhdHRyaWJ1dGUtdHlwZSIpIHx8IHRv
a2VuaXNlci5lcnJvcigiQXR0cmlidXRlIGxhY2tzIGEgdHlwZSIpOworICAgIHN3aXRjaCAocmV0
LmlkbFR5cGUuZ2VuZXJpYykgeworICAgICAgY2FzZSAic2VxdWVuY2UiOgorICAgICAgY2FzZSAi
cmVjb3JkIjogdG9rZW5pc2VyLmVycm9yKGBBdHRyaWJ1dGVzIGNhbm5vdCBhY2NlcHQgJHtyZXQu
aWRsVHlwZS5nZW5lcmljfSB0eXBlc2ApOworICAgIH0KKyAgICB0b2tlbnMubmFtZSA9IHRva2Vu
aXNlci5jb25zdW1lKCJpZGVudGlmaWVyIiwgImFzeW5jIiwgInJlcXVpcmVkIikgfHwgdG9rZW5p
c2VyLmVycm9yKCJBdHRyaWJ1dGUgbGFja3MgYSBuYW1lIik7CisgICAgdG9rZW5zLnRlcm1pbmF0
aW9uID0gdG9rZW5pc2VyLmNvbnN1bWUoIjsiKSB8fCB0b2tlbmlzZXIuZXJyb3IoIlVudGVybWlu
YXRlZCBhdHRyaWJ1dGUsIGV4cGVjdGVkIGA7YCIpOworICAgIHJldHVybiByZXQ7CisgIH0KKwor
ICBnZXQgdHlwZSgpIHsKKyAgICByZXR1cm4gImF0dHJpYnV0ZSI7CisgIH0KKyAgZ2V0IHNwZWNp
YWwoKSB7CisgICAgaWYgKCF0aGlzLnRva2Vucy5zcGVjaWFsKSB7CisgICAgICByZXR1cm4gIiI7
CisgICAgfQorICAgIHJldHVybiB0aGlzLnRva2Vucy5zcGVjaWFsLnZhbHVlOworICB9CisgIGdl
dCByZWFkb25seSgpIHsKKyAgICByZXR1cm4gISF0aGlzLnRva2Vucy5yZWFkb25seTsKKyAgfQor
ICBnZXQgbmFtZSgpIHsKKyAgICByZXR1cm4gT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lN
UE9SVEVEX01PRFVMRV8xX19bInVuZXNjYXBlIl0pKHRoaXMudG9rZW5zLm5hbWUudmFsdWUpOwor
ICB9CisKKyAgKnZhbGlkYXRlKGRlZnMpIHsKKyAgICB5aWVsZCogdGhpcy5pZGxUeXBlLnZhbGlk
YXRlKGRlZnMpOworICB9Cit9CisKKworLyoqKi8gfSksCisvKiAxNSAqLworLyoqKi8gKGZ1bmN0
aW9uKG1vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgewor
CisidXNlIHN0cmljdCI7CitfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNf
Xyk7CisvKiBoYXJtb255IGV4cG9ydCAoYmluZGluZykgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5k
KF9fd2VicGFja19leHBvcnRzX18sICJFbnVtIiwgZnVuY3Rpb24oKSB7IHJldHVybiBFbnVtOyB9
KTsKKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRF
RF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg0KTsKKy8qIGhhcm1vbnkgaW1wb3J0
ICovIHZhciBfdG9rZW5fanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFj
a19yZXF1aXJlX18oMTIpOworLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9iYXNlX2pzX19XRUJQ
QUNLX0lNUE9SVEVEX01PRFVMRV8yX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDYpOworCisKKwor
CitjbGFzcyBFbnVtVmFsdWUgZXh0ZW5kcyBfdG9rZW5fanNfX1dFQlBBQ0tfSU1QT1JURURfTU9E
VUxFXzFfX1siVG9rZW4iXSB7CisgIC8qKgorICAgKiBAcGFyYW0ge2ltcG9ydCgiLi4vdG9rZW5p
c2VyIikuVG9rZW5pc2VyfSB0b2tlbmlzZXIKKyAgICovCisgIHN0YXRpYyBwYXJzZSh0b2tlbmlz
ZXIpIHsKKyAgICBjb25zdCB2YWx1ZSA9IHRva2VuaXNlci5jb25zdW1lKCJzdHJpbmciKTsKKyAg
ICBpZiAodmFsdWUpIHsKKyAgICAgIHJldHVybiBuZXcgRW51bVZhbHVlKHsgc291cmNlOiB0b2tl
bmlzZXIuc291cmNlLCB0b2tlbnM6IHsgdmFsdWUgfSB9KTsKKyAgICB9CisgIH0KKworICBnZXQg
dHlwZSgpIHsKKyAgICByZXR1cm4gImVudW0tdmFsdWUiOworICB9CisgIGdldCB2YWx1ZSgpIHsK
KyAgICByZXR1cm4gc3VwZXIudmFsdWUuc2xpY2UoMSwgLTEpOworICB9Cit9CisKK2NsYXNzIEVu
dW0gZXh0ZW5kcyBfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fWyJCYXNlIl0g
eworICAvKioKKyAgICogQHBhcmFtIHtpbXBvcnQoIi4uL3Rva2VuaXNlciIpLlRva2VuaXNlcn0g
dG9rZW5pc2VyCisgICAqLworICBzdGF0aWMgcGFyc2UodG9rZW5pc2VyKSB7CisgICAgY29uc3Qg
dG9rZW5zID0ge307CisgICAgdG9rZW5zLmJhc2UgPSB0b2tlbmlzZXIuY29uc3VtZSgiZW51bSIp
OworICAgIGlmICghdG9rZW5zLmJhc2UpIHsKKyAgICAgIHJldHVybjsKKyAgICB9CisgICAgdG9r
ZW5zLm5hbWUgPSB0b2tlbmlzZXIuY29uc3VtZSgiaWRlbnRpZmllciIpIHx8IHRva2VuaXNlci5l
cnJvcigiTm8gbmFtZSBmb3IgZW51bSIpOworICAgIGNvbnN0IHJldCA9IHRva2VuaXNlci5jdXJy
ZW50ID0gbmV3IEVudW0oeyBzb3VyY2U6IHRva2VuaXNlci5zb3VyY2UsIHRva2VucyB9KTsKKyAg
ICB0b2tlbnMub3BlbiA9IHRva2VuaXNlci5jb25zdW1lKCJ7IikgfHwgdG9rZW5pc2VyLmVycm9y
KCJCb2R5bGVzcyBlbnVtIik7CisgICAgcmV0LnZhbHVlcyA9IE9iamVjdChfaGVscGVyc19qc19f
V0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJsaXN0Il0pKHRva2VuaXNlciwgeworICAgICAg
cGFyc2VyOiBFbnVtVmFsdWUucGFyc2UsCisgICAgICBhbGxvd0RhbmdsZXI6IHRydWUsCisgICAg
ICBsaXN0TmFtZTogImVudW1lcmF0aW9uIgorICAgIH0pOworICAgIGlmICh0b2tlbmlzZXIucHJv
YmUoInN0cmluZyIpKSB7CisgICAgICB0b2tlbmlzZXIuZXJyb3IoIk5vIGNvbW1hIGJldHdlZW4g
ZW51bSB2YWx1ZXMiKTsKKyAgICB9CisgICAgdG9rZW5zLmNsb3NlID0gdG9rZW5pc2VyLmNvbnN1
bWUoIn0iKSB8fCB0b2tlbmlzZXIuZXJyb3IoIlVuZXhwZWN0ZWQgdmFsdWUgaW4gZW51bSIpOwor
ICAgIGlmICghcmV0LnZhbHVlcy5sZW5ndGgpIHsKKyAgICAgIHRva2VuaXNlci5lcnJvcigiTm8g
dmFsdWUgaW4gZW51bSIpOworICAgIH0KKyAgICB0b2tlbnMudGVybWluYXRpb24gPSB0b2tlbmlz
ZXIuY29uc3VtZSgiOyIpIHx8IHRva2VuaXNlci5lcnJvcigiTm8gc2VtaWNvbG9uIGFmdGVyIGVu
dW0iKTsKKyAgICByZXR1cm4gcmV0OworICB9CisKKyAgZ2V0IHR5cGUoKSB7CisgICAgcmV0dXJu
ICJlbnVtIjsKKyAgfQorICBnZXQgbmFtZSgpIHsKKyAgICByZXR1cm4gT2JqZWN0KF9oZWxwZXJz
X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bInVuZXNjYXBlIl0pKHRoaXMudG9rZW5z
Lm5hbWUudmFsdWUpOworICB9Cit9CisKKworLyoqKi8gfSksCisvKiAxNiAqLworLyoqKi8gKGZ1
bmN0aW9uKG1vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykg
eworCisidXNlIHN0cmljdCI7CitfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9y
dHNfXyk7CisvKiBoYXJtb255IGV4cG9ydCAoYmluZGluZykgKi8gX193ZWJwYWNrX3JlcXVpcmVf
Xy5kKF9fd2VicGFja19leHBvcnRzX18sICJJbmNsdWRlcyIsIGZ1bmN0aW9uKCkgeyByZXR1cm4g
SW5jbHVkZXM7IH0pOworLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9iYXNlX2pzX19XRUJQQUNL
X0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDYpOworLyogaGFybW9u
eSBpbXBvcnQgKi8gdmFyIF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18g
PSBfX3dlYnBhY2tfcmVxdWlyZV9fKDQpOworCisKKworY2xhc3MgSW5jbHVkZXMgZXh0ZW5kcyBf
YmFzZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJCYXNlIl0geworICAvKioKKyAg
ICogQHBhcmFtIHtpbXBvcnQoIi4uL3Rva2VuaXNlciIpLlRva2VuaXNlcn0gdG9rZW5pc2VyCisg
ICAqLworICBzdGF0aWMgcGFyc2UodG9rZW5pc2VyKSB7CisgICAgY29uc3QgdGFyZ2V0ID0gdG9r
ZW5pc2VyLmNvbnN1bWUoImlkZW50aWZpZXIiKTsKKyAgICBpZiAoIXRhcmdldCkgeworICAgICAg
cmV0dXJuOworICAgIH0KKyAgICBjb25zdCB0b2tlbnMgPSB7IHRhcmdldCB9OworICAgIHRva2Vu
cy5pbmNsdWRlcyA9IHRva2VuaXNlci5jb25zdW1lKCJpbmNsdWRlcyIpOworICAgIGlmICghdG9r
ZW5zLmluY2x1ZGVzKSB7CisgICAgICB0b2tlbmlzZXIudW5jb25zdW1lKHRhcmdldC5pbmRleCk7
CisgICAgICByZXR1cm47CisgICAgfQorICAgIHRva2Vucy5taXhpbiA9IHRva2VuaXNlci5jb25z
dW1lKCJpZGVudGlmaWVyIikgfHwgdG9rZW5pc2VyLmVycm9yKCJJbmNvbXBsZXRlIGluY2x1ZGVz
IHN0YXRlbWVudCIpOworICAgIHRva2Vucy50ZXJtaW5hdGlvbiA9IHRva2VuaXNlci5jb25zdW1l
KCI7IikgfHwgdG9rZW5pc2VyLmVycm9yKCJObyB0ZXJtaW5hdGluZyA7IGZvciBpbmNsdWRlcyBz
dGF0ZW1lbnQiKTsKKyAgICByZXR1cm4gbmV3IEluY2x1ZGVzKHsgc291cmNlOiB0b2tlbmlzZXIu
c291cmNlLCB0b2tlbnMgfSk7CisgIH0KKworICBnZXQgdHlwZSgpIHsKKyAgICByZXR1cm4gImlu
Y2x1ZGVzIjsKKyAgfQorICBnZXQgdGFyZ2V0KCkgeworICAgIHJldHVybiBPYmplY3QoX2hlbHBl
cnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX1sidW5lc2NhcGUiXSkodGhpcy50b2tl
bnMudGFyZ2V0LnZhbHVlKTsKKyAgfQorICBnZXQgaW5jbHVkZXMoKSB7CisgICAgcmV0dXJuIE9i
amVjdChfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fWyJ1bmVzY2FwZSJd
KSh0aGlzLnRva2Vucy5taXhpbi52YWx1ZSk7CisgIH0KK30KKworCisvKioqLyB9KSwKKy8qIDE3
ICovCisvKioqLyAoZnVuY3Rpb24obW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBh
Y2tfcmVxdWlyZV9fKSB7CisKKyJ1c2Ugc3RyaWN0IjsKK19fd2VicGFja19yZXF1aXJlX18ucihf
X3dlYnBhY2tfZXhwb3J0c19fKTsKKy8qIGhhcm1vbnkgZXhwb3J0IChiaW5kaW5nKSAqLyBfX3dl
YnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgIlR5cGVkZWYiLCBmdW5jdGlv
bigpIHsgcmV0dXJuIFR5cGVkZWY7IH0pOworLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9iYXNl
X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDYp
OworLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVE
X01PRFVMRV8xX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDQpOworCisKKworY2xhc3MgVHlwZWRl
ZiBleHRlbmRzIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIkJhc2UiXSB7
CisgIC8qKgorICAgKiBAcGFyYW0ge2ltcG9ydCgiLi4vdG9rZW5pc2VyIikuVG9rZW5pc2VyfSB0
b2tlbmlzZXIKKyAgICovCisgIHN0YXRpYyBwYXJzZSh0b2tlbmlzZXIpIHsKKyAgICBjb25zdCB0
b2tlbnMgPSB7fTsKKyAgICBjb25zdCByZXQgPSBuZXcgVHlwZWRlZih7IHNvdXJjZTogdG9rZW5p
c2VyLnNvdXJjZSwgdG9rZW5zIH0pOworICAgIHRva2Vucy5iYXNlID0gdG9rZW5pc2VyLmNvbnN1
bWUoInR5cGVkZWYiKTsKKyAgICBpZiAoIXRva2Vucy5iYXNlKSB7CisgICAgICByZXR1cm47Cisg
ICAgfQorICAgIHJldC5pZGxUeXBlID0gT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9S
VEVEX01PRFVMRV8xX19bInR5cGVfd2l0aF9leHRlbmRlZF9hdHRyaWJ1dGVzIl0pKHRva2VuaXNl
ciwgInR5cGVkZWYtdHlwZSIpIHx8IHRva2VuaXNlci5lcnJvcigiVHlwZWRlZiBsYWNrcyBhIHR5
cGUiKTsKKyAgICB0b2tlbnMubmFtZSA9IHRva2VuaXNlci5jb25zdW1lKCJpZGVudGlmaWVyIikg
fHwgdG9rZW5pc2VyLmVycm9yKCJUeXBlZGVmIGxhY2tzIGEgbmFtZSIpOworICAgIHRva2VuaXNl
ci5jdXJyZW50ID0gcmV0OworICAgIHRva2Vucy50ZXJtaW5hdGlvbiA9IHRva2VuaXNlci5jb25z
dW1lKCI7IikgfHwgdG9rZW5pc2VyLmVycm9yKCJVbnRlcm1pbmF0ZWQgdHlwZWRlZiwgZXhwZWN0
ZWQgYDtgIik7CisgICAgcmV0dXJuIHJldDsKKyAgfQorCisgIGdldCB0eXBlKCkgeworICAgIHJl
dHVybiAidHlwZWRlZiI7CisgIH0KKyAgZ2V0IG5hbWUoKSB7CisgICAgcmV0dXJuIE9iamVjdChf
aGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fWyJ1bmVzY2FwZSJdKSh0aGlz
LnRva2Vucy5uYW1lLnZhbHVlKTsKKyAgfQorCisgICp2YWxpZGF0ZShkZWZzKSB7CisgICAgeWll
bGQqIHRoaXMuaWRsVHlwZS52YWxpZGF0ZShkZWZzKTsKKyAgfQorfQorCisKKy8qKiovIH0pLAor
LyogMTggKi8KKy8qKiovIChmdW5jdGlvbihtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9f
d2VicGFja19yZXF1aXJlX18pIHsKKworInVzZSBzdHJpY3QiOworX193ZWJwYWNrX3JlcXVpcmVf
Xy5yKF9fd2VicGFja19leHBvcnRzX18pOworLyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICov
IF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAiQ2FsbGJhY2tGdW5j
dGlvbiIsIGZ1bmN0aW9uKCkgeyByZXR1cm4gQ2FsbGJhY2tGdW5jdGlvbjsgfSk7CisvKiBoYXJt
b255IGltcG9ydCAqLyB2YXIgX2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9
IF9fd2VicGFja19yZXF1aXJlX18oNik7CisvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2hlbHBl
cnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18o
NCk7CisKKworCitjbGFzcyBDYWxsYmFja0Z1bmN0aW9uIGV4dGVuZHMgX2Jhc2VfanNfX1dFQlBB
Q0tfSU1QT1JURURfTU9EVUxFXzBfX1siQmFzZSJdIHsKKyAgLyoqCisgICAqIEBwYXJhbSB7aW1w
b3J0KCIuLi90b2tlbmlzZXIuanMiKS5Ub2tlbmlzZXJ9IHRva2VuaXNlcgorICAgKi8KKyAgc3Rh
dGljIHBhcnNlKHRva2VuaXNlciwgYmFzZSkgeworICAgIGNvbnN0IHRva2VucyA9IHsgYmFzZSB9
OworICAgIGNvbnN0IHJldCA9IG5ldyBDYWxsYmFja0Z1bmN0aW9uKHsgc291cmNlOiB0b2tlbmlz
ZXIuc291cmNlLCB0b2tlbnMgfSk7CisgICAgdG9rZW5zLm5hbWUgPSB0b2tlbmlzZXIuY29uc3Vt
ZSgiaWRlbnRpZmllciIpIHx8IHRva2VuaXNlci5lcnJvcigiQ2FsbGJhY2sgbGFja3MgYSBuYW1l
Iik7CisgICAgdG9rZW5pc2VyLmN1cnJlbnQgPSByZXQ7CisgICAgdG9rZW5zLmFzc2lnbiA9IHRv
a2VuaXNlci5jb25zdW1lKCI9IikgfHwgdG9rZW5pc2VyLmVycm9yKCJDYWxsYmFjayBsYWNrcyBh
biBhc3NpZ25tZW50Iik7CisgICAgcmV0LmlkbFR5cGUgPSBPYmplY3QoX2hlbHBlcnNfanNfX1dF
QlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX1sicmV0dXJuX3R5cGUiXSkodG9rZW5pc2VyKSB8fCB0
b2tlbmlzZXIuZXJyb3IoIkNhbGxiYWNrIGxhY2tzIGEgcmV0dXJuIHR5cGUiKTsKKyAgICB0b2tl
bnMub3BlbiA9IHRva2VuaXNlci5jb25zdW1lKCIoIikgfHwgdG9rZW5pc2VyLmVycm9yKCJDYWxs
YmFjayBsYWNrcyBwYXJlbnRoZXNlcyBmb3IgYXJndW1lbnRzIik7CisgICAgcmV0LmFyZ3VtZW50
cyA9IE9iamVjdChfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fWyJhcmd1
bWVudF9saXN0Il0pKHRva2VuaXNlcik7CisgICAgdG9rZW5zLmNsb3NlID0gdG9rZW5pc2VyLmNv
bnN1bWUoIikiKSB8fCB0b2tlbmlzZXIuZXJyb3IoIlVudGVybWluYXRlZCBjYWxsYmFjayIpOwor
ICAgIHRva2Vucy50ZXJtaW5hdGlvbiA9IHRva2VuaXNlci5jb25zdW1lKCI7IikgfHwgdG9rZW5p
c2VyLmVycm9yKCJVbnRlcm1pbmF0ZWQgY2FsbGJhY2ssIGV4cGVjdGVkIGA7YCIpOworICAgIHJl
dHVybiByZXQ7CisgIH0KKworICBnZXQgdHlwZSgpIHsKKyAgICByZXR1cm4gImNhbGxiYWNrIjsK
KyAgfQorICBnZXQgbmFtZSgpIHsKKyAgICByZXR1cm4gT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQ
QUNLX0lNUE9SVEVEX01PRFVMRV8xX19bInVuZXNjYXBlIl0pKHRoaXMudG9rZW5zLm5hbWUudmFs
dWUpOworICB9CisKKyAgKnZhbGlkYXRlKGRlZnMpIHsKKyAgICB5aWVsZCogdGhpcy5pZGxUeXBl
LnZhbGlkYXRlKGRlZnMpOworICB9Cit9CisKKworLyoqKi8gfSksCisvKiAxOSAqLworLyoqKi8g
KGZ1bmN0aW9uKG1vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVf
XykgeworCisidXNlIHN0cmljdCI7CitfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4
cG9ydHNfXyk7CisvKiBoYXJtb255IGV4cG9ydCAoYmluZGluZykgKi8gX193ZWJwYWNrX3JlcXVp
cmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sICJJbnRlcmZhY2UiLCBmdW5jdGlvbigpIHsgcmV0
dXJuIEludGVyZmFjZTsgfSk7CisvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2NvbnRhaW5lcl9q
c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygyMCk7
CisvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2F0dHJpYnV0ZV9qc19fV0VCUEFDS19JTVBPUlRF
RF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygxNCk7CisvKiBoYXJtb255IGltcG9y
dCAqLyB2YXIgX29wZXJhdGlvbl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fID0gX193
ZWJwYWNrX3JlcXVpcmVfXygxMyk7CisvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2NvbnN0YW50
X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDIx
KTsKKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfaXRlcmFibGVfanNfX1dFQlBBQ0tfSU1QT1JU
RURfTU9EVUxFXzRfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMjIpOworLyogaGFybW9ueSBpbXBv
cnQgKi8gdmFyIF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18gPSBfX3dl
YnBhY2tfcmVxdWlyZV9fKDQpOworLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9lcnJvcl9qc19f
V0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygzKTsKKy8q
IGhhcm1vbnkgaW1wb3J0ICovIHZhciBfdmFsaWRhdG9yc19pbnRlcmZhY2VfanNfX1dFQlBBQ0tf
SU1QT1JURURfTU9EVUxFXzdfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMjMpOworLyogaGFybW9u
eSBpbXBvcnQgKi8gdmFyIF9jb25zdHJ1Y3Rvcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVf
OF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygyNCk7CisKKworCisKKworCisKKworCisKKy8qKgor
ICogQHBhcmFtIHtpbXBvcnQoIi4uL3Rva2VuaXNlciIpLlRva2VuaXNlcn0gdG9rZW5pc2VyCisg
Ki8KK2Z1bmN0aW9uIHN0YXRpY19tZW1iZXIodG9rZW5pc2VyKSB7CisgIGNvbnN0IHNwZWNpYWwg
PSB0b2tlbmlzZXIuY29uc3VtZSgic3RhdGljIik7CisgIGlmICghc3BlY2lhbCkgcmV0dXJuOwor
ICBjb25zdCBtZW1iZXIgPSBfYXR0cmlidXRlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8x
X19bIkF0dHJpYnV0ZSJdLnBhcnNlKHRva2VuaXNlciwgeyBzcGVjaWFsIH0pIHx8CisgICAgX29w
ZXJhdGlvbl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fWyJPcGVyYXRpb24iXS5wYXJz
ZSh0b2tlbmlzZXIsIHsgc3BlY2lhbCB9KSB8fAorICAgIHRva2VuaXNlci5lcnJvcigiTm8gYm9k
eSBpbiBzdGF0aWMgbWVtYmVyIik7CisgIHJldHVybiBtZW1iZXI7Cit9CisKK2NsYXNzIEludGVy
ZmFjZSBleHRlbmRzIF9jb250YWluZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1si
Q29udGFpbmVyIl0geworICAvKioKKyAgICogQHBhcmFtIHtpbXBvcnQoIi4uL3Rva2VuaXNlciIp
LlRva2VuaXNlcn0gdG9rZW5pc2VyCisgICAqLworICBzdGF0aWMgcGFyc2UodG9rZW5pc2VyLCBi
YXNlLCB7IHBhcnRpYWwgPSBudWxsIH0gPSB7fSkgeworICAgIGNvbnN0IHRva2VucyA9IHsgcGFy
dGlhbCwgYmFzZSB9OworICAgIHJldHVybiBfY29udGFpbmVyX2pzX19XRUJQQUNLX0lNUE9SVEVE
X01PRFVMRV8wX19bIkNvbnRhaW5lciJdLnBhcnNlKHRva2VuaXNlciwgbmV3IEludGVyZmFjZSh7
IHNvdXJjZTogdG9rZW5pc2VyLnNvdXJjZSwgdG9rZW5zIH0pLCB7CisgICAgICB0eXBlOiAiaW50
ZXJmYWNlIiwKKyAgICAgIGluaGVyaXRhYmxlOiAhcGFydGlhbCwKKyAgICAgIGFsbG93ZWRNZW1i
ZXJzOiBbCisgICAgICAgIFtfY29uc3RhbnRfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNf
X1siQ29uc3RhbnQiXS5wYXJzZV0sCisgICAgICAgIFtfY29uc3RydWN0b3JfanNfX1dFQlBBQ0tf
SU1QT1JURURfTU9EVUxFXzhfX1siQ29uc3RydWN0b3IiXS5wYXJzZV0sCisgICAgICAgIFtzdGF0
aWNfbWVtYmVyXSwKKyAgICAgICAgW19oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVM
RV81X19bInN0cmluZ2lmaWVyIl1dLAorICAgICAgICBbX2l0ZXJhYmxlX2pzX19XRUJQQUNLX0lN
UE9SVEVEX01PRFVMRV80X19bIkl0ZXJhYmxlTGlrZSJdLnBhcnNlXSwKKyAgICAgICAgW19hdHRy
aWJ1dGVfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX1siQXR0cmlidXRlIl0ucGFyc2Vd
LAorICAgICAgICBbX29wZXJhdGlvbl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fWyJP
cGVyYXRpb24iXS5wYXJzZV0KKyAgICAgIF0KKyAgICB9KTsKKyAgfQorCisgIGdldCB0eXBlKCkg
eworICAgIHJldHVybiAiaW50ZXJmYWNlIjsKKyAgfQorCisgICp2YWxpZGF0ZShkZWZzKSB7Cisg
ICAgeWllbGQqIHRoaXMuZXh0QXR0cnMudmFsaWRhdGUoZGVmcyk7CisgICAgaWYgKAorICAgICAg
IXRoaXMucGFydGlhbCAmJgorICAgICAgdGhpcy5leHRBdHRycy5ldmVyeShleHRBdHRyID0+IGV4
dEF0dHIubmFtZSAhPT0gIkV4cG9zZWQiKSAmJgorICAgICAgdGhpcy5leHRBdHRycy5ldmVyeShl
eHRBdHRyID0+IGV4dEF0dHIubmFtZSAhPT0gIk5vSW50ZXJmYWNlT2JqZWN0IikKKyAgICApIHsK
KyAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgSW50ZXJmYWNlcyBtdXN0IGhhdmUgXGBbRXhwb3NlZF1c
YCBleHRlbmRlZCBhdHRyaWJ1dGUuIFwKK1RvIGZpeCwgYWRkLCBmb3IgZXhhbXBsZSwgXGBbRXhw
b3NlZD1XaW5kb3ddXGAuIFBsZWFzZSBhbHNvIGNvbnNpZGVyIGNhcmVmdWxseSBcCitpZiB5b3Vy
IGludGVyZmFjZSBzaG91bGQgYWxzbyBiZSBleHBvc2VkIGluIGEgV29ya2VyIHNjb3BlLiBSZWZl
ciB0byB0aGUgXAorW1dlYklETCBzcGVjIHNlY3Rpb24gb24gRXhwb3NlZF0oaHR0cHM6Ly9oZXlj
YW0uZ2l0aHViLmlvL3dlYmlkbC8jRXhwb3NlZCkgXAorZm9yIG1vcmUgaW5mb3JtYXRpb24uYDsK
KyAgICAgIHlpZWxkIE9iamVjdChfZXJyb3JfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZf
X1sidmFsaWRhdGlvbkVycm9yIl0pKHRoaXMuc291cmNlLCB0aGlzLnRva2Vucy5uYW1lLCB0aGlz
LCBtZXNzYWdlLCB7CisgICAgICAgIGF1dG9maXg6IE9iamVjdChfaGVscGVyc19qc19fV0VCUEFD
S19JTVBPUlRFRF9NT0RVTEVfNV9fWyJhdXRvZml4QWRkRXhwb3NlZFdpbmRvdyJdKSh0aGlzKQor
ICAgICAgfSk7CisgICAgfQorCisgICAgeWllbGQqIHN1cGVyLnZhbGlkYXRlKGRlZnMpOworICAg
IGlmICghdGhpcy5wYXJ0aWFsKSB7CisgICAgICB5aWVsZCogT2JqZWN0KF92YWxpZGF0b3JzX2lu
dGVyZmFjZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfN19fWyJjaGVja0ludGVyZmFjZU1l
bWJlckR1cGxpY2F0aW9uIl0pKGRlZnMsIHRoaXMpOworICAgIH0KKyAgfQorfQorCisKKy8qKiov
IH0pLAorLyogMjAgKi8KKy8qKiovIChmdW5jdGlvbihtb2R1bGUsIF9fd2VicGFja19leHBvcnRz
X18sIF9fd2VicGFja19yZXF1aXJlX18pIHsKKworInVzZSBzdHJpY3QiOworX193ZWJwYWNrX3Jl
cXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pOworLyogaGFybW9ueSBleHBvcnQgKGJpbmRp
bmcpICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAiQ29udGFp
bmVyIiwgZnVuY3Rpb24oKSB7IHJldHVybiBDb250YWluZXI7IH0pOworLyogaGFybW9ueSBpbXBv
cnQgKi8gdmFyIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBh
Y2tfcmVxdWlyZV9fKDYpOworLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9leHRlbmRlZF9hdHRy
aWJ1dGVzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18gPSBfX3dlYnBhY2tfcmVxdWly
ZV9fKDEwKTsKKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfaGVscGVyc19qc19fV0VCUEFDS19J
TVBPUlRFRF9NT0RVTEVfMl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg0KTsKKworCisKKworLyoq
CisgKiBAcGFyYW0ge2ltcG9ydCgiLi4vdG9rZW5pc2VyLmpzIikuVG9rZW5pc2VyfSB0b2tlbmlz
ZXIKKyAqLworZnVuY3Rpb24gaW5oZXJpdGFuY2UodG9rZW5pc2VyKSB7CisgIGNvbnN0IGNvbG9u
ID0gdG9rZW5pc2VyLmNvbnN1bWUoIjoiKTsKKyAgaWYgKCFjb2xvbikgeworICAgIHJldHVybiB7
fTsKKyAgfQorICBjb25zdCBpbmhlcml0YW5jZSA9IHRva2VuaXNlci5jb25zdW1lKCJpZGVudGlm
aWVyIikgfHwgdG9rZW5pc2VyLmVycm9yKCJJbmhlcml0YW5jZSBsYWNrcyBhIHR5cGUiKTsKKyAg
cmV0dXJuIHsgY29sb24sIGluaGVyaXRhbmNlIH07Cit9CisKK2NsYXNzIENvbnRhaW5lciBleHRl
bmRzIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIkJhc2UiXSB7CisgICAg
LyoqCisgICAgICogQHBhcmFtIHtpbXBvcnQoIi4uL3Rva2VuaXNlci5qcyIpLlRva2VuaXNlcn0g
dG9rZW5pc2VyCisgICAgICogQHBhcmFtIHsqfSBpbnN0YW5jZQorICAgICAqIEBwYXJhbSB7Kn0g
YXJncworICAgICAqLworICAgIHN0YXRpYyBwYXJzZSh0b2tlbmlzZXIsIGluc3RhbmNlLCB7IHR5
cGUsIGluaGVyaXRhYmxlLCBhbGxvd2VkTWVtYmVycyB9KSB7CisgICAgICBjb25zdCB7IHRva2Vu
cyB9ID0gaW5zdGFuY2U7CisgICAgICB0b2tlbnMubmFtZSA9IHRva2VuaXNlci5jb25zdW1lKCJp
ZGVudGlmaWVyIikgfHwgdG9rZW5pc2VyLmVycm9yKGBNaXNzaW5nIG5hbWUgaW4gJHtpbnN0YW5j
ZS50eXBlfWApOworICAgICAgdG9rZW5pc2VyLmN1cnJlbnQgPSBpbnN0YW5jZTsKKyAgICAgIGlm
IChpbmhlcml0YWJsZSkgeworICAgICAgICBPYmplY3QuYXNzaWduKHRva2VucywgaW5oZXJpdGFu
Y2UodG9rZW5pc2VyKSk7CisgICAgICB9CisgICAgICB0b2tlbnMub3BlbiA9IHRva2VuaXNlci5j
b25zdW1lKCJ7IikgfHwgdG9rZW5pc2VyLmVycm9yKGBCb2R5bGVzcyAke3R5cGV9YCk7CisgICAg
ICBpbnN0YW5jZS5tZW1iZXJzID0gW107CisgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICB0
b2tlbnMuY2xvc2UgPSB0b2tlbmlzZXIuY29uc3VtZSgifSIpOworICAgICAgICBpZiAodG9rZW5z
LmNsb3NlKSB7CisgICAgICAgICAgdG9rZW5zLnRlcm1pbmF0aW9uID0gdG9rZW5pc2VyLmNvbnN1
bWUoIjsiKSB8fCB0b2tlbmlzZXIuZXJyb3IoYE1pc3Npbmcgc2VtaWNvbG9uIGFmdGVyICR7dHlw
ZX1gKTsKKyAgICAgICAgICByZXR1cm4gaW5zdGFuY2U7CisgICAgICAgIH0KKyAgICAgICAgY29u
c3QgZWEgPSBfZXh0ZW5kZWRfYXR0cmlidXRlc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVf
MV9fWyJFeHRlbmRlZEF0dHJpYnV0ZXMiXS5wYXJzZSh0b2tlbmlzZXIpOworICAgICAgICBsZXQg
bWVtOworICAgICAgICBmb3IgKGNvbnN0IFtwYXJzZXIsIC4uLmFyZ3NdIG9mIGFsbG93ZWRNZW1i
ZXJzKSB7CisgICAgICAgICAgbWVtID0gcGFyc2VyKHRva2VuaXNlciwgLi4uYXJncyk7CisgICAg
ICAgICAgaWYgKG1lbSkgeworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgfQorICAgICAg
ICB9CisgICAgICAgIGlmICghbWVtKSB7CisgICAgICAgICAgdG9rZW5pc2VyLmVycm9yKCJVbmtu
b3duIG1lbWJlciIpOworICAgICAgICB9CisgICAgICAgIG1lbS5leHRBdHRycyA9IGVhOworICAg
ICAgICBpbnN0YW5jZS5tZW1iZXJzLnB1c2gobWVtKTsKKyAgICAgIH0KKyAgICB9CisKKyAgICBn
ZXQgcGFydGlhbCgpIHsKKyAgICAgIHJldHVybiAhIXRoaXMudG9rZW5zLnBhcnRpYWw7CisgICAg
fQorICAgIGdldCBuYW1lKCkgeworICAgICAgcmV0dXJuIE9iamVjdChfaGVscGVyc19qc19fV0VC
UEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fWyJ1bmVzY2FwZSJdKSh0aGlzLnRva2Vucy5uYW1lLnZh
bHVlKTsKKyAgICB9CisgICAgZ2V0IGluaGVyaXRhbmNlKCkgeworICAgICAgaWYgKCF0aGlzLnRv
a2Vucy5pbmhlcml0YW5jZSkgeworICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgIH0KKyAgICAg
IHJldHVybiBPYmplY3QoX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX1si
dW5lc2NhcGUiXSkodGhpcy50b2tlbnMuaW5oZXJpdGFuY2UudmFsdWUpOworICAgIH0KKworICAg
ICp2YWxpZGF0ZShkZWZzKSB7CisgICAgICBmb3IgKGNvbnN0IG1lbWJlciBvZiB0aGlzLm1lbWJl
cnMpIHsKKyAgICAgICAgaWYgKG1lbWJlci52YWxpZGF0ZSkgeworICAgICAgICAgIHlpZWxkKiBt
ZW1iZXIudmFsaWRhdGUoZGVmcyk7CisgICAgICAgIH0KKyAgICAgIH0KKyAgICB9CisgIH0KKwor
CisvKioqLyB9KSwKKy8qIDIxICovCisvKioqLyAoZnVuY3Rpb24obW9kdWxlLCBfX3dlYnBhY2tf
ZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CisKKyJ1c2Ugc3RyaWN0IjsKK19fd2Vi
cGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTsKKy8qIGhhcm1vbnkgZXhwb3J0
IChiaW5kaW5nKSAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywg
IkNvbnN0YW50IiwgZnVuY3Rpb24oKSB7IHJldHVybiBDb25zdGFudDsgfSk7CisvKiBoYXJtb255
IGltcG9ydCAqLyB2YXIgX2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9f
d2VicGFja19yZXF1aXJlX18oNik7CisvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3R5cGVfanNf
X1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oNSk7Cisv
KiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9E
VUxFXzJfXyA9IF9fd2VicGFja19yZXF1aXJlX18oNCk7CisKKworCisKK2NsYXNzIENvbnN0YW50
IGV4dGVuZHMgX2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siQmFzZSJdIHsK
KyAgLyoqCisgICAqIEBwYXJhbSB7aW1wb3J0KCIuLi90b2tlbmlzZXIuanMiKS5Ub2tlbmlzZXJ9
IHRva2VuaXNlcgorICAgKi8KKyAgc3RhdGljIHBhcnNlKHRva2VuaXNlcikgeworICAgIGNvbnN0
IHRva2VucyA9IHt9OworICAgIHRva2Vucy5iYXNlID0gdG9rZW5pc2VyLmNvbnN1bWUoImNvbnN0
Iik7CisgICAgaWYgKCF0b2tlbnMuYmFzZSkgeworICAgICAgcmV0dXJuOworICAgIH0KKyAgICBs
ZXQgaWRsVHlwZSA9IE9iamVjdChfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVf
Ml9fWyJwcmltaXRpdmVfdHlwZSJdKSh0b2tlbmlzZXIpOworICAgIGlmICghaWRsVHlwZSkgewor
ICAgICAgY29uc3QgYmFzZSA9IHRva2VuaXNlci5jb25zdW1lKCJpZGVudGlmaWVyIikgfHwgdG9r
ZW5pc2VyLmVycm9yKCJDb25zdCBsYWNrcyBhIHR5cGUiKTsKKyAgICAgIGlkbFR5cGUgPSBuZXcg
X3R5cGVfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX1siVHlwZSJdKHsgc291cmNlOiB0
b2tlbmlzZXIuc291cmNlLCB0b2tlbnM6IHsgYmFzZSB9IH0pOworICAgIH0KKyAgICBpZiAodG9r
ZW5pc2VyLnByb2JlKCI/IikpIHsKKyAgICAgIHRva2VuaXNlci5lcnJvcigiVW5leHBlY3RlZCBu
dWxsYWJsZSBjb25zdGFudCB0eXBlIik7CisgICAgfQorICAgIGlkbFR5cGUudHlwZSA9ICJjb25z
dC10eXBlIjsKKyAgICB0b2tlbnMubmFtZSA9IHRva2VuaXNlci5jb25zdW1lKCJpZGVudGlmaWVy
IikgfHwgdG9rZW5pc2VyLmVycm9yKCJDb25zdCBsYWNrcyBhIG5hbWUiKTsKKyAgICB0b2tlbnMu
YXNzaWduID0gdG9rZW5pc2VyLmNvbnN1bWUoIj0iKSB8fCB0b2tlbmlzZXIuZXJyb3IoIkNvbnN0
IGxhY2tzIHZhbHVlIGFzc2lnbm1lbnQiKTsKKyAgICB0b2tlbnMudmFsdWUgPSBPYmplY3QoX2hl
bHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX1siY29uc3RfdmFsdWUiXSkodG9r
ZW5pc2VyKSB8fCB0b2tlbmlzZXIuZXJyb3IoIkNvbnN0IGxhY2tzIGEgdmFsdWUiKTsKKyAgICB0
b2tlbnMudGVybWluYXRpb24gPSB0b2tlbmlzZXIuY29uc3VtZSgiOyIpIHx8IHRva2VuaXNlci5l
cnJvcigiVW50ZXJtaW5hdGVkIGNvbnN0LCBleHBlY3RlZCBgO2AiKTsKKyAgICBjb25zdCByZXQg
PSBuZXcgQ29uc3RhbnQoeyBzb3VyY2U6IHRva2VuaXNlci5zb3VyY2UsIHRva2VucyB9KTsKKyAg
ICByZXQuaWRsVHlwZSA9IGlkbFR5cGU7CisgICAgcmV0dXJuIHJldDsKKyAgfQorCisgIGdldCB0
eXBlKCkgeworICAgIHJldHVybiAiY29uc3QiOworICB9CisgIGdldCBuYW1lKCkgeworICAgIHJl
dHVybiB1bmVzY2FwZSh0aGlzLnRva2Vucy5uYW1lLnZhbHVlKTsKKyAgfQorICBnZXQgdmFsdWUo
KSB7CisgICAgcmV0dXJuIE9iamVjdChfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RV
TEVfMl9fWyJjb25zdF9kYXRhIl0pKHRoaXMudG9rZW5zLnZhbHVlKTsKKyAgfQorfQorCisKKy8q
KiovIH0pLAorLyogMjIgKi8KKy8qKiovIChmdW5jdGlvbihtb2R1bGUsIF9fd2VicGFja19leHBv
cnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pIHsKKworInVzZSBzdHJpY3QiOworX193ZWJwYWNr
X3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pOworLyogaGFybW9ueSBleHBvcnQgKGJp
bmRpbmcpICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAiSXRl
cmFibGVMaWtlIiwgZnVuY3Rpb24oKSB7IHJldHVybiBJdGVyYWJsZUxpa2U7IH0pOworLyogaGFy
bW9ueSBpbXBvcnQgKi8gdmFyIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18g
PSBfX3dlYnBhY2tfcmVxdWlyZV9fKDYpOworLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9oZWxw
ZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9f
KDQpOworCisKKworY2xhc3MgSXRlcmFibGVMaWtlIGV4dGVuZHMgX2Jhc2VfanNfX1dFQlBBQ0tf
SU1QT1JURURfTU9EVUxFXzBfX1siQmFzZSJdIHsKKyAgLyoqCisgICAqIEBwYXJhbSB7aW1wb3J0
KCIuLi90b2tlbmlzZXIuanMiKS5Ub2tlbmlzZXJ9IHRva2VuaXNlcgorICAgKi8KKyAgc3RhdGlj
IHBhcnNlKHRva2VuaXNlcikgeworICAgIGNvbnN0IHN0YXJ0X3Bvc2l0aW9uID0gdG9rZW5pc2Vy
LnBvc2l0aW9uOworICAgIGNvbnN0IHRva2VucyA9IHt9OworICAgIGNvbnN0IHJldCA9IG5ldyBJ
dGVyYWJsZUxpa2UoeyBzb3VyY2U6IHRva2VuaXNlci5zb3VyY2UsIHRva2VucyB9KTsKKyAgICB0
b2tlbnMucmVhZG9ubHkgPSB0b2tlbmlzZXIuY29uc3VtZSgicmVhZG9ubHkiKTsKKyAgICBpZiAo
IXRva2Vucy5yZWFkb25seSkgeworICAgICAgdG9rZW5zLmFzeW5jID0gdG9rZW5pc2VyLmNvbnN1
bWUoImFzeW5jIik7CisgICAgfQorICAgIHRva2Vucy5iYXNlID0KKyAgICAgIHRva2Vucy5yZWFk
b25seSA/IHRva2VuaXNlci5jb25zdW1lKCJtYXBsaWtlIiwgInNldGxpa2UiKSA6CisgICAgICB0
b2tlbnMuYXN5bmMgPyB0b2tlbmlzZXIuY29uc3VtZSgiaXRlcmFibGUiKSA6CisgICAgICB0b2tl
bmlzZXIuY29uc3VtZSgiaXRlcmFibGUiLCAibWFwbGlrZSIsICJzZXRsaWtlIik7CisgICAgaWYg
KCF0b2tlbnMuYmFzZSkgeworICAgICAgdG9rZW5pc2VyLnVuY29uc3VtZShzdGFydF9wb3NpdGlv
bik7CisgICAgICByZXR1cm47CisgICAgfQorCisgICAgY29uc3QgeyB0eXBlIH0gPSByZXQ7Cisg
ICAgY29uc3Qgc2Vjb25kVHlwZVJlcXVpcmVkID0gdHlwZSA9PT0gIm1hcGxpa2UiIHx8IHJldC5h
c3luYzsKKyAgICBjb25zdCBzZWNvbmRUeXBlQWxsb3dlZCA9IHNlY29uZFR5cGVSZXF1aXJlZCB8
fCB0eXBlID09PSAiaXRlcmFibGUiOworCisgICAgdG9rZW5zLm9wZW4gPSB0b2tlbmlzZXIuY29u
c3VtZSgiPCIpIHx8IHRva2VuaXNlci5lcnJvcihgTWlzc2luZyBsZXNzLXRoYW4gc2lnbiBcYDxc
YCBpbiAke3R5cGV9IGRlY2xhcmF0aW9uYCk7CisgICAgY29uc3QgZmlyc3QgPSBPYmplY3QoX2hl
bHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX1sidHlwZV93aXRoX2V4dGVuZGVk
X2F0dHJpYnV0ZXMiXSkodG9rZW5pc2VyKSB8fCB0b2tlbmlzZXIuZXJyb3IoYE1pc3NpbmcgYSB0
eXBlIGFyZ3VtZW50IGluICR7dHlwZX0gZGVjbGFyYXRpb25gKTsKKyAgICByZXQuaWRsVHlwZSA9
IFtmaXJzdF07CisgICAgaWYgKHNlY29uZFR5cGVBbGxvd2VkKSB7CisgICAgICBmaXJzdC50b2tl
bnMuc2VwYXJhdG9yID0gdG9rZW5pc2VyLmNvbnN1bWUoIiwiKTsKKyAgICAgIGlmIChmaXJzdC50
b2tlbnMuc2VwYXJhdG9yKSB7CisgICAgICAgIHJldC5pZGxUeXBlLnB1c2goT2JqZWN0KF9oZWxw
ZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19bInR5cGVfd2l0aF9leHRlbmRlZF9h
dHRyaWJ1dGVzIl0pKHRva2VuaXNlcikpOworICAgICAgfQorICAgICAgZWxzZSBpZiAoc2Vjb25k
VHlwZVJlcXVpcmVkKSB7CisgICAgICAgIHRva2VuaXNlci5lcnJvcihgTWlzc2luZyBzZWNvbmQg
dHlwZSBhcmd1bWVudCBpbiAke3R5cGV9IGRlY2xhcmF0aW9uYCk7CisgICAgICB9CisgICAgfQor
ICAgIHRva2Vucy5jbG9zZSA9IHRva2VuaXNlci5jb25zdW1lKCI+IikgfHwgdG9rZW5pc2VyLmVy
cm9yKGBNaXNzaW5nIGdyZWF0ZXItdGhhbiBzaWduIFxgPlxgIGluICR7dHlwZX0gZGVjbGFyYXRp
b25gKTsKKyAgICB0b2tlbnMudGVybWluYXRpb24gPSB0b2tlbmlzZXIuY29uc3VtZSgiOyIpIHx8
IHRva2VuaXNlci5lcnJvcihgTWlzc2luZyBzZW1pY29sb24gYWZ0ZXIgJHt0eXBlfSBkZWNsYXJh
dGlvbmApOworCisgICAgcmV0dXJuIHJldDsKKyAgfQorCisgIGdldCB0eXBlKCkgeworICAgIHJl
dHVybiB0aGlzLnRva2Vucy5iYXNlLnZhbHVlOworICB9CisgIGdldCByZWFkb25seSgpIHsKKyAg
ICByZXR1cm4gISF0aGlzLnRva2Vucy5yZWFkb25seTsKKyAgfQorICBnZXQgYXN5bmMoKSB7Cisg
ICAgcmV0dXJuICEhdGhpcy50b2tlbnMuYXN5bmM7CisgIH0KK30KKworCisvKioqLyB9KSwKKy8q
IDIzICovCisvKioqLyAoZnVuY3Rpb24obW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dl
YnBhY2tfcmVxdWlyZV9fKSB7CisKKyJ1c2Ugc3RyaWN0IjsKK19fd2VicGFja19yZXF1aXJlX18u
cihfX3dlYnBhY2tfZXhwb3J0c19fKTsKKy8qIGhhcm1vbnkgZXhwb3J0IChiaW5kaW5nKSAqLyBf
X3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgImNoZWNrSW50ZXJmYWNl
TWVtYmVyRHVwbGljYXRpb24iLCBmdW5jdGlvbigpIHsgcmV0dXJuIGNoZWNrSW50ZXJmYWNlTWVt
YmVyRHVwbGljYXRpb247IH0pOworLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9lcnJvcl9qc19f
V0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygzKTsKKwor
CitmdW5jdGlvbiogY2hlY2tJbnRlcmZhY2VNZW1iZXJEdXBsaWNhdGlvbihkZWZzLCBpKSB7Cisg
IGNvbnN0IG9wTmFtZXMgPSBuZXcgU2V0KGdldE9wZXJhdGlvbnMoaSkubWFwKG9wID0+IG9wLm5h
bWUpKTsKKyAgY29uc3QgcGFydGlhbHMgPSBkZWZzLnBhcnRpYWxzLmdldChpLm5hbWUpIHx8IFtd
OworICBjb25zdCBtaXhpbnMgPSBkZWZzLm1peGluTWFwLmdldChpLm5hbWUpIHx8IFtdOworICBm
b3IgKGNvbnN0IGV4dCBvZiBbLi4ucGFydGlhbHMsIC4uLm1peGluc10pIHsKKyAgICBjb25zdCBh
ZGRpdGlvbnMgPSBnZXRPcGVyYXRpb25zKGV4dCk7CisgICAgeWllbGQqIGZvckVhY2hFeHRlbnNp
b24oYWRkaXRpb25zLCBvcE5hbWVzLCBleHQsIGkpOworICAgIGZvciAoY29uc3QgYWRkaXRpb24g
b2YgYWRkaXRpb25zKSB7CisgICAgICBvcE5hbWVzLmFkZChhZGRpdGlvbi5uYW1lKTsKKyAgICB9
CisgIH0KKworICBmdW5jdGlvbiogZm9yRWFjaEV4dGVuc2lvbihhZGRpdGlvbnMsIGV4aXN0aW5n
cywgZXh0LCBiYXNlKSB7CisgICAgZm9yIChjb25zdCBhZGRpdGlvbiBvZiBhZGRpdGlvbnMpIHsK
KyAgICAgIGNvbnN0IHsgbmFtZSB9ID0gYWRkaXRpb247CisgICAgICBpZiAobmFtZSAmJiBleGlz
dGluZ3MuaGFzKG5hbWUpKSB7CisgICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgVGhlIG9wZXJhdGlv
biAiJHtuYW1lfSIgaGFzIGFscmVhZHkgYmVlbiBkZWZpbmVkIGZvciB0aGUgYmFzZSBpbnRlcmZh
Y2UgIiR7YmFzZS5uYW1lfSIgZWl0aGVyIGluIGl0c2VsZiBvciBpbiBhIG1peGluYDsKKyAgICAg
ICAgeWllbGQgT2JqZWN0KF9lcnJvcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJ2
YWxpZGF0aW9uRXJyb3IiXSkoZXh0LnNvdXJjZSwgYWRkaXRpb24udG9rZW5zLm5hbWUsIGV4dCwg
bWVzc2FnZSk7CisgICAgICB9CisgICAgfQorICB9CisKKyAgZnVuY3Rpb24gZ2V0T3BlcmF0aW9u
cyhpKSB7CisgICAgcmV0dXJuIGkubWVtYmVycworICAgICAgLmZpbHRlcigoe3R5cGV9KSA9PiB0
eXBlID09PSAib3BlcmF0aW9uIik7CisgIH0KK30KKworCisvKioqLyB9KSwKKy8qIDI0ICovCisv
KioqLyAoZnVuY3Rpb24obW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVx
dWlyZV9fKSB7CisKKyJ1c2Ugc3RyaWN0IjsKK19fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBh
Y2tfZXhwb3J0c19fKTsKKy8qIGhhcm1vbnkgZXhwb3J0IChiaW5kaW5nKSAqLyBfX3dlYnBhY2tf
cmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgIkNvbnN0cnVjdG9yIiwgZnVuY3Rpb24o
KSB7IHJldHVybiBDb25zdHJ1Y3RvcjsgfSk7CisvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2Jh
c2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18o
Nik7CisvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JU
RURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oNCk7CisKKworCitjbGFzcyBDb25z
dHJ1Y3RvciBleHRlbmRzIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIkJh
c2UiXSB7CisgIC8qKgorICAgKiBAcGFyYW0ge2ltcG9ydCgiLi4vdG9rZW5pc2VyIikuVG9rZW5p
c2VyfSB0b2tlbmlzZXIKKyAgICovCisgIHN0YXRpYyBwYXJzZSh0b2tlbmlzZXIpIHsKKyAgICBj
b25zdCBiYXNlID0gdG9rZW5pc2VyLmNvbnN1bWUoImNvbnN0cnVjdG9yIik7CisgICAgaWYgKCFi
YXNlKSB7CisgICAgICByZXR1cm47CisgICAgfQorICAgIGNvbnN0IHRva2VucyA9IHsgYmFzZSB9
OworICAgIHRva2Vucy5vcGVuID0gdG9rZW5pc2VyLmNvbnN1bWUoIigiKSB8fCB0b2tlbmlzZXIu
ZXJyb3IoIk5vIGFyZ3VtZW50IGxpc3QgaW4gY29uc3RydWN0b3IiKTsKKyAgICBjb25zdCBhcmdz
ID0gT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19bImFyZ3Vt
ZW50X2xpc3QiXSkodG9rZW5pc2VyKTsKKyAgICB0b2tlbnMuY2xvc2UgPSB0b2tlbmlzZXIuY29u
c3VtZSgiKSIpIHx8IHRva2VuaXNlci5lcnJvcigiVW50ZXJtaW5hdGVkIGNvbnN0cnVjdG9yIik7
CisgICAgdG9rZW5zLnRlcm1pbmF0aW9uID0gdG9rZW5pc2VyLmNvbnN1bWUoIjsiKSB8fCB0b2tl
bmlzZXIuZXJyb3IoIk5vIHNlbWljb2xvbiBhZnRlciBjb25zdHJ1Y3RvciIpOworICAgIGNvbnN0
IHJldCA9IG5ldyBDb25zdHJ1Y3Rvcih7IHRva2VucyB9KTsKKyAgICByZXQuYXJndW1lbnRzID0g
YXJnczsKKyAgICByZXR1cm4gcmV0OworICB9CisKKyAgZ2V0IHR5cGUoKSB7CisgICAgcmV0dXJu
ICJjb25zdHJ1Y3RvciI7CisgIH0KK30KKworCisvKioqLyB9KSwKKy8qIDI1ICovCisvKioqLyAo
ZnVuY3Rpb24obW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9f
KSB7CisKKyJ1c2Ugc3RyaWN0IjsKK19fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhw
b3J0c19fKTsKKy8qIGhhcm1vbnkgZXhwb3J0IChiaW5kaW5nKSAqLyBfX3dlYnBhY2tfcmVxdWly
ZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgIk1peGluIiwgZnVuY3Rpb24oKSB7IHJldHVybiBN
aXhpbjsgfSk7CisvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2NvbnRhaW5lcl9qc19fV0VCUEFD
S19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygyMCk7CisvKiBoYXJt
b255IGltcG9ydCAqLyB2YXIgX2NvbnN0YW50X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8x
X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDIxKTsKKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBf
YXR0cmlidXRlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18gPSBfX3dlYnBhY2tfcmVx
dWlyZV9fKDE0KTsKKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfb3BlcmF0aW9uX2pzX19XRUJQ
QUNLX0lNUE9SVEVEX01PRFVMRV8zX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDEzKTsKKy8qIGhh
cm1vbnkgaW1wb3J0ICovIHZhciBfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVf
NF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg0KTsKKworCisKKworCisKK2NsYXNzIE1peGluIGV4
dGVuZHMgX2NvbnRhaW5lcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJDb250YWlu
ZXIiXSB7CisgIC8qKgorICAgKiBAcGFyYW0ge2ltcG9ydCgiLi4vdG9rZW5pc2VyIikuVG9rZW5p
c2VyfSB0b2tlbmlzZXIKKyAgICovCisgIHN0YXRpYyBwYXJzZSh0b2tlbmlzZXIsIGJhc2UsIHsg
cGFydGlhbCB9ID0ge30pIHsKKyAgICBjb25zdCB0b2tlbnMgPSB7IHBhcnRpYWwsIGJhc2UgfTsK
KyAgICB0b2tlbnMubWl4aW4gPSB0b2tlbmlzZXIuY29uc3VtZSgibWl4aW4iKTsKKyAgICBpZiAo
IXRva2Vucy5taXhpbikgeworICAgICAgcmV0dXJuOworICAgIH0KKyAgICByZXR1cm4gX2NvbnRh
aW5lcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJDb250YWluZXIiXS5wYXJzZSh0
b2tlbmlzZXIsIG5ldyBNaXhpbih7IHNvdXJjZTogdG9rZW5pc2VyLnNvdXJjZSwgdG9rZW5zIH0p
LCB7CisgICAgICB0eXBlOiAiaW50ZXJmYWNlIG1peGluIiwKKyAgICAgIGFsbG93ZWRNZW1iZXJz
OiBbCisgICAgICAgIFtfY29uc3RhbnRfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX1si
Q29uc3RhbnQiXS5wYXJzZV0sCisgICAgICAgIFtfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRF
RF9NT0RVTEVfNF9fWyJzdHJpbmdpZmllciJdXSwKKyAgICAgICAgW19hdHRyaWJ1dGVfanNfX1dF
QlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX1siQXR0cmlidXRlIl0ucGFyc2UsIHsgbm9Jbmhlcml0
OiB0cnVlIH1dLAorICAgICAgICBbX29wZXJhdGlvbl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RV
TEVfM19fWyJPcGVyYXRpb24iXS5wYXJzZSwgeyByZWd1bGFyOiB0cnVlIH1dCisgICAgICBdCisg
ICAgfSk7CisgIH0KKworICBnZXQgdHlwZSgpIHsKKyAgICByZXR1cm4gImludGVyZmFjZSBtaXhp
biI7CisgIH0KK30KKworCisvKioqLyB9KSwKKy8qIDI2ICovCisvKioqLyAoZnVuY3Rpb24obW9k
dWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CisKKyJ1c2Ug
c3RyaWN0IjsKK19fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTsKKy8q
IGhhcm1vbnkgZXhwb3J0IChiaW5kaW5nKSAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJw
YWNrX2V4cG9ydHNfXywgIkRpY3Rpb25hcnkiLCBmdW5jdGlvbigpIHsgcmV0dXJuIERpY3Rpb25h
cnk7IH0pOworLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9jb250YWluZXJfanNfX1dFQlBBQ0tf
SU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMjApOworLyogaGFybW9u
eSBpbXBvcnQgKi8gdmFyIF9maWVsZF9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0g
X193ZWJwYWNrX3JlcXVpcmVfXygyNyk7CisKKworCitjbGFzcyBEaWN0aW9uYXJ5IGV4dGVuZHMg
X2NvbnRhaW5lcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJDb250YWluZXIiXSB7
CisgIC8qKgorICAgKiBAcGFyYW0ge2ltcG9ydCgiLi4vdG9rZW5pc2VyIikuVG9rZW5pc2VyfSB0
b2tlbmlzZXIKKyAgICovCisgIHN0YXRpYyBwYXJzZSh0b2tlbmlzZXIsIHsgcGFydGlhbCB9ID0g
e30pIHsKKyAgICBjb25zdCB0b2tlbnMgPSB7IHBhcnRpYWwgfTsKKyAgICB0b2tlbnMuYmFzZSA9
IHRva2VuaXNlci5jb25zdW1lKCJkaWN0aW9uYXJ5Iik7CisgICAgaWYgKCF0b2tlbnMuYmFzZSkg
eworICAgICAgcmV0dXJuOworICAgIH0KKyAgICByZXR1cm4gX2NvbnRhaW5lcl9qc19fV0VCUEFD
S19JTVBPUlRFRF9NT0RVTEVfMF9fWyJDb250YWluZXIiXS5wYXJzZSh0b2tlbmlzZXIsIG5ldyBE
aWN0aW9uYXJ5KHsgc291cmNlOiB0b2tlbmlzZXIuc291cmNlLCB0b2tlbnMgfSksIHsKKyAgICAg
IHR5cGU6ICJkaWN0aW9uYXJ5IiwKKyAgICAgIGluaGVyaXRhYmxlOiAhcGFydGlhbCwKKyAgICAg
IGFsbG93ZWRNZW1iZXJzOiBbCisgICAgICAgIFtfZmllbGRfanNfX1dFQlBBQ0tfSU1QT1JURURf
TU9EVUxFXzFfX1siRmllbGQiXS5wYXJzZV0sCisgICAgICBdCisgICAgfSk7CisgIH0KKworICBn
ZXQgdHlwZSgpIHsKKyAgICByZXR1cm4gImRpY3Rpb25hcnkiOworICB9Cit9CisKKworLyoqKi8g
fSksCisvKiAyNyAqLworLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNf
XywgX193ZWJwYWNrX3JlcXVpcmVfXykgeworCisidXNlIHN0cmljdCI7CitfX3dlYnBhY2tfcmVx
dWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7CisvKiBoYXJtb255IGV4cG9ydCAoYmluZGlu
ZykgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sICJGaWVsZCIs
IGZ1bmN0aW9uKCkgeyByZXR1cm4gRmllbGQ7IH0pOworLyogaGFybW9ueSBpbXBvcnQgKi8gdmFy
IF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWly
ZV9fKDYpOworLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9oZWxwZXJzX2pzX19XRUJQQUNLX0lN
UE9SVEVEX01PRFVMRV8xX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDQpOworLyogaGFybW9ueSBp
bXBvcnQgKi8gdmFyIF9leHRlbmRlZF9hdHRyaWJ1dGVzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01P
RFVMRV8yX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDEwKTsKKy8qIGhhcm1vbnkgaW1wb3J0ICov
IHZhciBfZGVmYXVsdF9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fID0gX193ZWJwYWNr
X3JlcXVpcmVfXyg5KTsKKworCisKKworCitjbGFzcyBGaWVsZCBleHRlbmRzIF9iYXNlX2pzX19X
RUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIkJhc2UiXSB7CisgIC8qKgorICAgKiBAcGFyYW0g
e2ltcG9ydCgiLi4vdG9rZW5pc2VyIikuVG9rZW5pc2VyfSB0b2tlbmlzZXIKKyAgICovCisgIHN0
YXRpYyBwYXJzZSh0b2tlbmlzZXIpIHsKKyAgICBjb25zdCB0b2tlbnMgPSB7fTsKKyAgICBjb25z
dCByZXQgPSBuZXcgRmllbGQoeyBzb3VyY2U6IHRva2VuaXNlci5zb3VyY2UsIHRva2VucyB9KTsK
KyAgICByZXQuZXh0QXR0cnMgPSBfZXh0ZW5kZWRfYXR0cmlidXRlc19qc19fV0VCUEFDS19JTVBP
UlRFRF9NT0RVTEVfMl9fWyJFeHRlbmRlZEF0dHJpYnV0ZXMiXS5wYXJzZSh0b2tlbmlzZXIpOwor
ICAgIHRva2Vucy5yZXF1aXJlZCA9IHRva2VuaXNlci5jb25zdW1lKCJyZXF1aXJlZCIpOworICAg
IHJldC5pZGxUeXBlID0gT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVM
RV8xX19bInR5cGVfd2l0aF9leHRlbmRlZF9hdHRyaWJ1dGVzIl0pKHRva2VuaXNlciwgImRpY3Rp
b25hcnktdHlwZSIpIHx8IHRva2VuaXNlci5lcnJvcigiRGljdGlvbmFyeSBtZW1iZXIgbGFja3Mg
YSB0eXBlIik7CisgICAgdG9rZW5zLm5hbWUgPSB0b2tlbmlzZXIuY29uc3VtZSgiaWRlbnRpZmll
ciIpIHx8IHRva2VuaXNlci5lcnJvcigiRGljdGlvbmFyeSBtZW1iZXIgbGFja3MgYSBuYW1lIik7
CisgICAgcmV0LmRlZmF1bHQgPSBfZGVmYXVsdF9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVf
M19fWyJEZWZhdWx0Il0ucGFyc2UodG9rZW5pc2VyKTsKKyAgICBpZiAodG9rZW5zLnJlcXVpcmVk
ICYmIHJldC5kZWZhdWx0KSB0b2tlbmlzZXIuZXJyb3IoIlJlcXVpcmVkIG1lbWJlciBtdXN0IG5v
dCBoYXZlIGEgZGVmYXVsdCIpOworICAgIHRva2Vucy50ZXJtaW5hdGlvbiA9IHRva2VuaXNlci5j
b25zdW1lKCI7IikgfHwgdG9rZW5pc2VyLmVycm9yKCJVbnRlcm1pbmF0ZWQgZGljdGlvbmFyeSBt
ZW1iZXIsIGV4cGVjdGVkIGA7YCIpOworICAgIHJldHVybiByZXQ7CisgIH0KKworICBnZXQgdHlw
ZSgpIHsKKyAgICByZXR1cm4gImZpZWxkIjsKKyAgfQorICBnZXQgbmFtZSgpIHsKKyAgICByZXR1
cm4gT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19bInVuZXNj
YXBlIl0pKHRoaXMudG9rZW5zLm5hbWUudmFsdWUpOworICB9CisgIGdldCByZXF1aXJlZCgpIHsK
KyAgICByZXR1cm4gISF0aGlzLnRva2Vucy5yZXF1aXJlZDsKKyAgfQorCisgICp2YWxpZGF0ZShk
ZWZzKSB7CisgICAgeWllbGQqIHRoaXMuaWRsVHlwZS52YWxpZGF0ZShkZWZzKTsKKyAgfQorfQor
CisKKy8qKiovIH0pLAorLyogMjggKi8KKy8qKiovIChmdW5jdGlvbihtb2R1bGUsIF9fd2VicGFj
a19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pIHsKKworInVzZSBzdHJpY3QiOworX193
ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pOworLyogaGFybW9ueSBleHBv
cnQgKGJpbmRpbmcpICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19f
LCAiTmFtZXNwYWNlIiwgZnVuY3Rpb24oKSB7IHJldHVybiBOYW1lc3BhY2U7IH0pOworLyogaGFy
bW9ueSBpbXBvcnQgKi8gdmFyIF9jb250YWluZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxF
XzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMjApOworLyogaGFybW9ueSBpbXBvcnQgKi8gdmFy
IF9hdHRyaWJ1dGVfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19y
ZXF1aXJlX18oMTQpOworLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9vcGVyYXRpb25fanNfX1dF
QlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMTMpOworLyog
aGFybW9ueSBpbXBvcnQgKi8gdmFyIF9lcnJvcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVf
M19fID0gX193ZWJwYWNrX3JlcXVpcmVfXygzKTsKKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBf
aGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fID0gX193ZWJwYWNrX3JlcXVp
cmVfXyg0KTsKKworCisKKworCisKK2NsYXNzIE5hbWVzcGFjZSBleHRlbmRzIF9jb250YWluZXJf
anNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siQ29udGFpbmVyIl0geworICAvKioKKyAg
ICogQHBhcmFtIHtpbXBvcnQoIi4uL3Rva2VuaXNlciIpLlRva2VuaXNlcn0gdG9rZW5pc2VyCisg
ICAqLworICBzdGF0aWMgcGFyc2UodG9rZW5pc2VyLCB7IHBhcnRpYWwgfSA9IHt9KSB7CisgICAg
Y29uc3QgdG9rZW5zID0geyBwYXJ0aWFsIH07CisgICAgdG9rZW5zLmJhc2UgPSB0b2tlbmlzZXIu
Y29uc3VtZSgibmFtZXNwYWNlIik7CisgICAgaWYgKCF0b2tlbnMuYmFzZSkgeworICAgICAgcmV0
dXJuOworICAgIH0KKyAgICByZXR1cm4gX2NvbnRhaW5lcl9qc19fV0VCUEFDS19JTVBPUlRFRF9N
T0RVTEVfMF9fWyJDb250YWluZXIiXS5wYXJzZSh0b2tlbmlzZXIsIG5ldyBOYW1lc3BhY2UoeyBz
b3VyY2U6IHRva2VuaXNlci5zb3VyY2UsIHRva2VucyB9KSwgeworICAgICAgdHlwZTogIm5hbWVz
cGFjZSIsCisgICAgICBhbGxvd2VkTWVtYmVyczogWworICAgICAgICBbX2F0dHJpYnV0ZV9qc19f
V0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fWyJBdHRyaWJ1dGUiXS5wYXJzZSwgeyBub0luaGVy
aXQ6IHRydWUsIHJlYWRvbmx5OiB0cnVlIH1dLAorICAgICAgICBbX29wZXJhdGlvbl9qc19fV0VC
UEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fWyJPcGVyYXRpb24iXS5wYXJzZSwgeyByZWd1bGFyOiB0
cnVlIH1dCisgICAgICBdCisgICAgfSk7CisgIH0KKworICBnZXQgdHlwZSgpIHsKKyAgICByZXR1
cm4gIm5hbWVzcGFjZSI7CisgIH0KKworICAqdmFsaWRhdGUoZGVmcykgeworICAgIGlmICghdGhp
cy5wYXJ0aWFsICYmIHRoaXMuZXh0QXR0cnMuZXZlcnkoZXh0QXR0ciA9PiBleHRBdHRyLm5hbWUg
IT09ICJFeHBvc2VkIikpIHsKKyAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgTmFtZXNwYWNlcyBtdXN0
IGhhdmUgW0V4cG9zZWRdIGV4dGVuZGVkIGF0dHJpYnV0ZS4gXAorVG8gZml4LCBhZGQsIGZvciBl
eGFtcGxlLCBbRXhwb3NlZD1XaW5kb3ddLiBQbGVhc2UgYWxzbyBjb25zaWRlciBjYXJlZnVsbHkg
XAoraWYgeW91ciBuYW1lc3BhY2Ugc2hvdWxkIGFsc28gYmUgZXhwb3NlZCBpbiBhIFdvcmtlciBz
Y29wZS4gUmVmZXIgdG8gdGhlIFwKK1tXZWJJREwgc3BlYyBzZWN0aW9uIG9uIEV4cG9zZWRdKGh0
dHBzOi8vaGV5Y2FtLmdpdGh1Yi5pby93ZWJpZGwvI0V4cG9zZWQpIFwKK2ZvciBtb3JlIGluZm9y
bWF0aW9uLmA7CisgICAgICB5aWVsZCBPYmplY3QoX2Vycm9yX2pzX19XRUJQQUNLX0lNUE9SVEVE
X01PRFVMRV8zX19bInZhbGlkYXRpb25FcnJvciJdKSh0aGlzLnNvdXJjZSwgdGhpcy50b2tlbnMu
bmFtZSwgdGhpcywgbWVzc2FnZSwgeworICAgICAgICBhdXRvZml4OiBPYmplY3QoX2hlbHBlcnNf
anNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfX1siYXV0b2ZpeEFkZEV4cG9zZWRXaW5kb3ci
XSkodGhpcykKKyAgICAgIH0pOworICAgIH0KKyAgICB5aWVsZCogc3VwZXIudmFsaWRhdGUoZGVm
cyk7CisgIH0KK30KKworCisvKioqLyB9KSwKKy8qIDI5ICovCisvKioqLyAoZnVuY3Rpb24obW9k
dWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CisKKyJ1c2Ug
c3RyaWN0IjsKK19fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTsKKy8q
IGhhcm1vbnkgZXhwb3J0IChiaW5kaW5nKSAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJw
YWNrX2V4cG9ydHNfXywgIkNhbGxiYWNrSW50ZXJmYWNlIiwgZnVuY3Rpb24oKSB7IHJldHVybiBD
YWxsYmFja0ludGVyZmFjZTsgfSk7CisvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2NvbnRhaW5l
cl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygy
MCk7CisvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX29wZXJhdGlvbl9qc19fV0VCUEFDS19JTVBP
UlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygxMyk7CisvKiBoYXJtb255IGlt
cG9ydCAqLyB2YXIgX2NvbnN0YW50X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18gPSBf
X3dlYnBhY2tfcmVxdWlyZV9fKDIxKTsKKworCisKKworCitjbGFzcyBDYWxsYmFja0ludGVyZmFj
ZSBleHRlbmRzIF9jb250YWluZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siQ29u
dGFpbmVyIl0geworICAvKioKKyAgICogQHBhcmFtIHtpbXBvcnQoIi4uL3Rva2VuaXNlciIpLlRv
a2VuaXNlcn0gdG9rZW5pc2VyCisgICAqLworICBzdGF0aWMgcGFyc2UodG9rZW5pc2VyLCBjYWxs
YmFjaywgeyBwYXJ0aWFsID0gbnVsbCB9ID0ge30pIHsKKyAgICBjb25zdCB0b2tlbnMgPSB7IGNh
bGxiYWNrIH07CisgICAgdG9rZW5zLmJhc2UgPSB0b2tlbmlzZXIuY29uc3VtZSgiaW50ZXJmYWNl
Iik7CisgICAgaWYgKCF0b2tlbnMuYmFzZSkgeworICAgICAgcmV0dXJuOworICAgIH0KKyAgICBy
ZXR1cm4gX2NvbnRhaW5lcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJDb250YWlu
ZXIiXS5wYXJzZSh0b2tlbmlzZXIsIG5ldyBDYWxsYmFja0ludGVyZmFjZSh7IHNvdXJjZTogdG9r
ZW5pc2VyLnNvdXJjZSwgdG9rZW5zIH0pLCB7CisgICAgICB0eXBlOiAiY2FsbGJhY2sgaW50ZXJm
YWNlIiwKKyAgICAgIGluaGVyaXRhYmxlOiAhcGFydGlhbCwKKyAgICAgIGFsbG93ZWRNZW1iZXJz
OiBbCisgICAgICAgIFtfY29uc3RhbnRfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX1si
Q29uc3RhbnQiXS5wYXJzZV0sCisgICAgICAgIFtfb3BlcmF0aW9uX2pzX19XRUJQQUNLX0lNUE9S
VEVEX01PRFVMRV8xX19bIk9wZXJhdGlvbiJdLnBhcnNlLCB7IHJlZ3VsYXI6IHRydWUgfV0KKyAg
ICAgIF0KKyAgICB9KTsKKyAgfQorCisgIGdldCB0eXBlKCkgeworICAgIHJldHVybiAiY2FsbGJh
Y2sgaW50ZXJmYWNlIjsKKyAgfQorfQorCisKKy8qKiovIH0pLAorLyogMzAgKi8KKy8qKiovIChm
dW5jdGlvbihtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18p
IHsKKworInVzZSBzdHJpY3QiOworX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBv
cnRzX18pOworLyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFja19yZXF1aXJl
X18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAid3JpdGUiLCBmdW5jdGlvbigpIHsgcmV0dXJuIHdy
aXRlOyB9KTsKKworCitmdW5jdGlvbiBub29wKGFyZykgeworICByZXR1cm4gYXJnOworfQorCitj
b25zdCB0ZW1wbGF0ZXMgPSB7CisgIHdyYXA6IGl0ZW1zID0+IGl0ZW1zLmpvaW4oIiIpLAorICB0
cml2aWE6IG5vb3AsCisgIG5hbWU6IG5vb3AsCisgIHJlZmVyZW5jZTogbm9vcCwKKyAgdHlwZTog
bm9vcCwKKyAgZ2VuZXJpYzogbm9vcCwKKyAgbmFtZWxlc3M6IG5vb3AsCisgIGluaGVyaXRhbmNl
OiBub29wLAorICBkZWZpbml0aW9uOiBub29wLAorICBleHRlbmRlZEF0dHJpYnV0ZTogbm9vcCwK
KyAgZXh0ZW5kZWRBdHRyaWJ1dGVSZWZlcmVuY2U6IG5vb3AKK307CisKK2Z1bmN0aW9uIHdyaXRl
KGFzdCwgeyB0ZW1wbGF0ZXM6IHRzID0gdGVtcGxhdGVzIH0gPSB7fSkgeworICB0cyA9IE9iamVj
dC5hc3NpZ24oe30sIHRlbXBsYXRlcywgdHMpOworCisgIGZ1bmN0aW9uIHJlZmVyZW5jZShyYXcs
IHsgdW5lc2NhcGVkLCBjb250ZXh0IH0pIHsKKyAgICBpZiAoIXVuZXNjYXBlZCkgeworICAgICAg
dW5lc2NhcGVkID0gcmF3LnN0YXJ0c1dpdGgoIl8iKSA/IHJhdy5zbGljZSgxKSA6IHJhdzsKKyAg
ICB9CisgICAgcmV0dXJuIHRzLnJlZmVyZW5jZShyYXcsIHVuZXNjYXBlZCwgY29udGV4dCk7Cisg
IH0KKworICBmdW5jdGlvbiB0b2tlbih0LCB3cmFwcGVyID0gbm9vcCwgLi4uYXJncykgeworICAg
IGlmICghdCkgeworICAgICAgcmV0dXJuICIiOworICAgIH0KKyAgICBjb25zdCB2YWx1ZSA9IHdy
YXBwZXIodC52YWx1ZSwgLi4uYXJncyk7CisgICAgcmV0dXJuIHRzLndyYXAoW3RzLnRyaXZpYSh0
LnRyaXZpYSksIHZhbHVlXSk7CisgIH0KKworICBmdW5jdGlvbiByZWZlcmVuY2VfdG9rZW4odCwg
Y29udGV4dCkgeworICAgIHJldHVybiB0b2tlbih0LCByZWZlcmVuY2UsIHsgY29udGV4dCB9KTsK
KyAgfQorCisgIGZ1bmN0aW9uIG5hbWVfdG9rZW4odCwgYXJnKSB7CisgICAgcmV0dXJuIHRva2Vu
KHQsIHRzLm5hbWUsIGFyZyk7CisgIH0KKworICBmdW5jdGlvbiB0eXBlX2JvZHkoaXQpIHsKKyAg
ICBpZiAoaXQudW5pb24gfHwgaXQuZ2VuZXJpYykgeworICAgICAgcmV0dXJuIHRzLndyYXAoWwor
ICAgICAgICB0b2tlbihpdC50b2tlbnMuYmFzZSwgdHMuZ2VuZXJpYyksCisgICAgICAgIHRva2Vu
KGl0LnRva2Vucy5vcGVuKSwKKyAgICAgICAgLi4uaXQuc3VidHlwZS5tYXAodHlwZSksCisgICAg
ICAgIHRva2VuKGl0LnRva2Vucy5jbG9zZSkKKyAgICAgIF0pOworICAgIH0KKyAgICBjb25zdCBm
aXJzdFRva2VuID0gaXQudG9rZW5zLnByZWZpeCB8fCBpdC50b2tlbnMuYmFzZTsKKyAgICBjb25z
dCBwcmVmaXggPSBpdC50b2tlbnMucHJlZml4ID8gWworICAgICAgaXQudG9rZW5zLnByZWZpeC52
YWx1ZSwKKyAgICAgIHRzLnRyaXZpYShpdC50b2tlbnMuYmFzZS50cml2aWEpCisgICAgXSA6IFtd
OworICAgIGNvbnN0IHJlZiA9IHJlZmVyZW5jZSh0cy53cmFwKFsKKyAgICAgIC4uLnByZWZpeCwK
KyAgICAgIGl0LnRva2Vucy5iYXNlLnZhbHVlLAorICAgICAgdG9rZW4oaXQudG9rZW5zLnBvc3Rm
aXgpCisgICAgXSksIHsgdW5lc2NhcGVkOiBpdC5pZGxUeXBlLCBjb250ZXh0OiBpdCB9KTsKKyAg
ICByZXR1cm4gdHMud3JhcChbdHMudHJpdmlhKGZpcnN0VG9rZW4udHJpdmlhKSwgcmVmXSk7Cisg
IH0KKyAgZnVuY3Rpb24gdHlwZShpdCkgeworICAgIHJldHVybiB0cy53cmFwKFsKKyAgICAgIGV4
dGVuZGVkX2F0dHJpYnV0ZXMoaXQuZXh0QXR0cnMpLAorICAgICAgdHlwZV9ib2R5KGl0KSwKKyAg
ICAgIHRva2VuKGl0LnRva2Vucy5udWxsYWJsZSksCisgICAgICB0b2tlbihpdC50b2tlbnMuc2Vw
YXJhdG9yKQorICAgIF0pOworICB9CisgIGZ1bmN0aW9uIGRlZmF1bHRfKGRlZikgeworICAgIGlm
ICghZGVmKSB7CisgICAgICByZXR1cm4gIiI7CisgICAgfQorICAgIHJldHVybiB0cy53cmFwKFsK
KyAgICAgIHRva2VuKGRlZi50b2tlbnMuYXNzaWduKSwKKyAgICAgIC4uLmRlZi5leHByZXNzaW9u
Lm1hcCh0ID0+IHRva2VuKHQpKQorICAgIF0pOworICB9CisgIGZ1bmN0aW9uIGFyZ3VtZW50KGFy
ZykgeworICAgIHJldHVybiB0cy53cmFwKFsKKyAgICAgIGV4dGVuZGVkX2F0dHJpYnV0ZXMoYXJn
LmV4dEF0dHJzKSwKKyAgICAgIHRva2VuKGFyZy50b2tlbnMub3B0aW9uYWwpLAorICAgICAgdHMu
dHlwZSh0eXBlKGFyZy5pZGxUeXBlKSksCisgICAgICB0b2tlbihhcmcudG9rZW5zLnZhcmlhZGlj
KSwKKyAgICAgIG5hbWVfdG9rZW4oYXJnLnRva2Vucy5uYW1lLCB7IGRhdGE6IGFyZyB9KSwKKyAg
ICAgIGRlZmF1bHRfKGFyZy5kZWZhdWx0KSwKKyAgICAgIHRva2VuKGFyZy50b2tlbnMuc2VwYXJh
dG9yKQorICAgIF0pOworICB9CisgIGZ1bmN0aW9uIGlkZW50aWZpZXIoaWQsIGNvbnRleHQpIHsK
KyAgICByZXR1cm4gdHMud3JhcChbCisgICAgICByZWZlcmVuY2VfdG9rZW4oaWQudG9rZW5zLnZh
bHVlLCBjb250ZXh0KSwKKyAgICAgIHRva2VuKGlkLnRva2Vucy5zZXBhcmF0b3IpCisgICAgXSk7
CisgIH0KKyAgZnVuY3Rpb24gbWFrZV9leHRfYXQoaXQpIHsKKyAgICBjb25zdCB7IHJoc1R5cGUg
fSA9IGl0LnBhcmFtczsKKyAgICByZXR1cm4gdHMud3JhcChbCisgICAgICB0cy50cml2aWEoaXQu
dG9rZW5zLm5hbWUudHJpdmlhKSwKKyAgICAgIHRzLmV4dGVuZGVkQXR0cmlidXRlKHRzLndyYXAo
WworICAgICAgICB0cy5leHRlbmRlZEF0dHJpYnV0ZVJlZmVyZW5jZShpdC5uYW1lKSwKKyAgICAg
ICAgdG9rZW4oaXQucGFyYW1zLnRva2Vucy5hc3NpZ24pLAorICAgICAgICByZWZlcmVuY2VfdG9r
ZW4oaXQucGFyYW1zLnRva2Vucy5zZWNvbmRhcnlOYW1lLCBpdCksCisgICAgICAgIHRva2VuKGl0
LnBhcmFtcy50b2tlbnMub3BlbiksCisgICAgICAgIC4uLiFpdC5wYXJhbXMubGlzdCA/IFtdIDoK
KyAgICAgICAgICBpdC5wYXJhbXMubGlzdC5tYXAoCisgICAgICAgICAgICByaHNUeXBlID09PSAi
aWRlbnRpZmllci1saXN0IiA/IGlkID0+IGlkZW50aWZpZXIoaWQsIGl0KSA6IGFyZ3VtZW50Cisg
ICAgICAgICAgKSwKKyAgICAgICAgdG9rZW4oaXQucGFyYW1zLnRva2Vucy5jbG9zZSkKKyAgICAg
IF0pKSwKKyAgICAgIHRva2VuKGl0LnRva2Vucy5zZXBhcmF0b3IpCisgICAgXSk7CisgIH0KKyAg
ZnVuY3Rpb24gZXh0ZW5kZWRfYXR0cmlidXRlcyhlYXRzKSB7CisgICAgaWYgKCFlYXRzLmxlbmd0
aCkgcmV0dXJuICIiOworICAgIHJldHVybiB0cy53cmFwKFsKKyAgICAgIHRva2VuKGVhdHMudG9r
ZW5zLm9wZW4pLAorICAgICAgLi4uZWF0cy5tYXAobWFrZV9leHRfYXQpLAorICAgICAgdG9rZW4o
ZWF0cy50b2tlbnMuY2xvc2UpCisgICAgXSk7CisgIH0KKworICBmdW5jdGlvbiBvcGVyYXRpb24o
aXQsIHBhcmVudCkgeworICAgIGNvbnN0IGJvZHkgPSBpdC5pZGxUeXBlID8gWworICAgICAgdHMu
dHlwZSh0eXBlKGl0LmlkbFR5cGUpKSwKKyAgICAgIG5hbWVfdG9rZW4oaXQudG9rZW5zLm5hbWUs
IHsgZGF0YTogaXQsIHBhcmVudCB9KSwKKyAgICAgIHRva2VuKGl0LnRva2Vucy5vcGVuKSwKKyAg
ICAgIHRzLndyYXAoaXQuYXJndW1lbnRzLm1hcChhcmd1bWVudCkpLAorICAgICAgdG9rZW4oaXQu
dG9rZW5zLmNsb3NlKSwKKyAgICBdIDogW107CisgICAgcmV0dXJuIHRzLmRlZmluaXRpb24odHMu
d3JhcChbCisgICAgICBleHRlbmRlZF9hdHRyaWJ1dGVzKGl0LmV4dEF0dHJzKSwKKyAgICAgIGl0
LnRva2Vucy5uYW1lID8gdG9rZW4oaXQudG9rZW5zLnNwZWNpYWwpIDogdG9rZW4oaXQudG9rZW5z
LnNwZWNpYWwsIHRzLm5hbWVsZXNzLCB7IGRhdGE6IGl0LCBwYXJlbnQgfSksCisgICAgICAuLi5i
b2R5LAorICAgICAgdG9rZW4oaXQudG9rZW5zLnRlcm1pbmF0aW9uKQorICAgIF0pLCB7IGRhdGE6
IGl0LCBwYXJlbnQgfSk7CisgIH0KKworICBmdW5jdGlvbiBhdHRyaWJ1dGUoaXQsIHBhcmVudCkg
eworICAgIHJldHVybiB0cy5kZWZpbml0aW9uKHRzLndyYXAoWworICAgICAgZXh0ZW5kZWRfYXR0
cmlidXRlcyhpdC5leHRBdHRycyksCisgICAgICB0b2tlbihpdC50b2tlbnMuc3BlY2lhbCksCisg
ICAgICB0b2tlbihpdC50b2tlbnMucmVhZG9ubHkpLAorICAgICAgdG9rZW4oaXQudG9rZW5zLmJh
c2UpLAorICAgICAgdHMudHlwZSh0eXBlKGl0LmlkbFR5cGUpKSwKKyAgICAgIG5hbWVfdG9rZW4o
aXQudG9rZW5zLm5hbWUsIHsgZGF0YTogaXQsIHBhcmVudCB9KSwKKyAgICAgIHRva2VuKGl0LnRv
a2Vucy50ZXJtaW5hdGlvbikKKyAgICBdKSwgeyBkYXRhOiBpdCwgcGFyZW50IH0pOworICB9CisK
KyAgZnVuY3Rpb24gY29uc3RydWN0b3IoaXQsIHBhcmVudCkgeworICAgIHJldHVybiB0cy5kZWZp
bml0aW9uKHRzLndyYXAoWworICAgICAgZXh0ZW5kZWRfYXR0cmlidXRlcyhpdC5leHRBdHRycyks
CisgICAgICB0b2tlbihpdC50b2tlbnMuYmFzZSwgdHMubmFtZWxlc3MsIHsgZGF0YTogaXQsIHBh
cmVudCB9KSwKKyAgICAgIHRva2VuKGl0LnRva2Vucy5vcGVuKSwKKyAgICAgIHRzLndyYXAoaXQu
YXJndW1lbnRzLm1hcChhcmd1bWVudCkpLAorICAgICAgdG9rZW4oaXQudG9rZW5zLmNsb3NlKSwK
KyAgICAgIHRva2VuKGl0LnRva2Vucy50ZXJtaW5hdGlvbikKKyAgICBdKSwgeyBkYXRhOiBpdCwg
cGFyZW50IH0pOworICB9CisKKyAgZnVuY3Rpb24gaW5oZXJpdGFuY2UoaW5oKSB7CisgICAgaWYg
KCFpbmgudG9rZW5zLmluaGVyaXRhbmNlKSB7CisgICAgICByZXR1cm4gIiI7CisgICAgfQorICAg
IHJldHVybiB0cy53cmFwKFsKKyAgICAgIHRva2VuKGluaC50b2tlbnMuY29sb24pLAorICAgICAg
dHMudHJpdmlhKGluaC50b2tlbnMuaW5oZXJpdGFuY2UudHJpdmlhKSwKKyAgICAgIHRzLmluaGVy
aXRhbmNlKHJlZmVyZW5jZShpbmgudG9rZW5zLmluaGVyaXRhbmNlLnZhbHVlLCB7IGNvbnRleHQ6
IGluaCB9KSkKKyAgICBdKTsKKyAgfQorCisgIGZ1bmN0aW9uIGNvbnRhaW5lcihpdCkgeworICAg
IHJldHVybiB0cy5kZWZpbml0aW9uKHRzLndyYXAoWworICAgICAgZXh0ZW5kZWRfYXR0cmlidXRl
cyhpdC5leHRBdHRycyksCisgICAgICB0b2tlbihpdC50b2tlbnMuY2FsbGJhY2spLAorICAgICAg
dG9rZW4oaXQudG9rZW5zLnBhcnRpYWwpLAorICAgICAgdG9rZW4oaXQudG9rZW5zLmJhc2UpLAor
ICAgICAgdG9rZW4oaXQudG9rZW5zLm1peGluKSwKKyAgICAgIG5hbWVfdG9rZW4oaXQudG9rZW5z
Lm5hbWUsIHsgZGF0YTogaXQgfSksCisgICAgICBpbmhlcml0YW5jZShpdCksCisgICAgICB0b2tl
bihpdC50b2tlbnMub3BlbiksCisgICAgICBpdGVyYXRlKGl0Lm1lbWJlcnMsIGl0KSwKKyAgICAg
IHRva2VuKGl0LnRva2Vucy5jbG9zZSksCisgICAgICB0b2tlbihpdC50b2tlbnMudGVybWluYXRp
b24pCisgICAgXSksIHsgZGF0YTogaXQgfSk7CisgIH0KKworICBmdW5jdGlvbiBmaWVsZChpdCwg
cGFyZW50KSB7CisgICAgcmV0dXJuIHRzLmRlZmluaXRpb24odHMud3JhcChbCisgICAgICBleHRl
bmRlZF9hdHRyaWJ1dGVzKGl0LmV4dEF0dHJzKSwKKyAgICAgIHRva2VuKGl0LnRva2Vucy5yZXF1
aXJlZCksCisgICAgICB0cy50eXBlKHR5cGUoaXQuaWRsVHlwZSkpLAorICAgICAgbmFtZV90b2tl
bihpdC50b2tlbnMubmFtZSwgeyBkYXRhOiBpdCwgcGFyZW50IH0pLAorICAgICAgZGVmYXVsdF8o
aXQuZGVmYXVsdCksCisgICAgICB0b2tlbihpdC50b2tlbnMudGVybWluYXRpb24pCisgICAgXSks
IHsgZGF0YTogaXQsIHBhcmVudCB9KTsKKyAgfQorICBmdW5jdGlvbiBjb25zdF8oaXQsIHBhcmVu
dCkgeworICAgIHJldHVybiB0cy5kZWZpbml0aW9uKHRzLndyYXAoWworICAgICAgZXh0ZW5kZWRf
YXR0cmlidXRlcyhpdC5leHRBdHRycyksCisgICAgICB0b2tlbihpdC50b2tlbnMuYmFzZSksCisg
ICAgICB0cy50eXBlKHR5cGUoaXQuaWRsVHlwZSkpLAorICAgICAgbmFtZV90b2tlbihpdC50b2tl
bnMubmFtZSwgeyBkYXRhOiBpdCwgcGFyZW50IH0pLAorICAgICAgdG9rZW4oaXQudG9rZW5zLmFz
c2lnbiksCisgICAgICB0b2tlbihpdC50b2tlbnMudmFsdWUpLAorICAgICAgdG9rZW4oaXQudG9r
ZW5zLnRlcm1pbmF0aW9uKQorICAgIF0pLCB7IGRhdGE6IGl0LCBwYXJlbnQgfSk7CisgIH0KKyAg
ZnVuY3Rpb24gdHlwZWRlZihpdCkgeworICAgIHJldHVybiB0cy5kZWZpbml0aW9uKHRzLndyYXAo
WworICAgICAgZXh0ZW5kZWRfYXR0cmlidXRlcyhpdC5leHRBdHRycyksCisgICAgICB0b2tlbihp
dC50b2tlbnMuYmFzZSksCisgICAgICB0cy50eXBlKHR5cGUoaXQuaWRsVHlwZSkpLAorICAgICAg
bmFtZV90b2tlbihpdC50b2tlbnMubmFtZSwgeyBkYXRhOiBpdCB9KSwKKyAgICAgIHRva2VuKGl0
LnRva2Vucy50ZXJtaW5hdGlvbikKKyAgICBdKSwgeyBkYXRhOiBpdCB9KTsKKyAgfQorICBmdW5j
dGlvbiBpbmNsdWRlcyhpdCkgeworICAgIHJldHVybiB0cy5kZWZpbml0aW9uKHRzLndyYXAoWwor
ICAgICAgZXh0ZW5kZWRfYXR0cmlidXRlcyhpdC5leHRBdHRycyksCisgICAgICByZWZlcmVuY2Vf
dG9rZW4oaXQudG9rZW5zLnRhcmdldCwgaXQpLAorICAgICAgdG9rZW4oaXQudG9rZW5zLmluY2x1
ZGVzKSwKKyAgICAgIHJlZmVyZW5jZV90b2tlbihpdC50b2tlbnMubWl4aW4sIGl0KSwKKyAgICAg
IHRva2VuKGl0LnRva2Vucy50ZXJtaW5hdGlvbikKKyAgICBdKSwgeyBkYXRhOiBpdCB9KTsKKyAg
fQorICBmdW5jdGlvbiBjYWxsYmFjayhpdCkgeworICAgIHJldHVybiB0cy5kZWZpbml0aW9uKHRz
LndyYXAoWworICAgICAgZXh0ZW5kZWRfYXR0cmlidXRlcyhpdC5leHRBdHRycyksCisgICAgICB0
b2tlbihpdC50b2tlbnMuYmFzZSksCisgICAgICBuYW1lX3Rva2VuKGl0LnRva2Vucy5uYW1lLCB7
IGRhdGE6IGl0IH0pLAorICAgICAgdG9rZW4oaXQudG9rZW5zLmFzc2lnbiksCisgICAgICB0cy50
eXBlKHR5cGUoaXQuaWRsVHlwZSkpLAorICAgICAgdG9rZW4oaXQudG9rZW5zLm9wZW4pLAorICAg
ICAgLi4uaXQuYXJndW1lbnRzLm1hcChhcmd1bWVudCksCisgICAgICB0b2tlbihpdC50b2tlbnMu
Y2xvc2UpLAorICAgICAgdG9rZW4oaXQudG9rZW5zLnRlcm1pbmF0aW9uKSwKKyAgICBdKSwgeyBk
YXRhOiBpdCB9KTsKKyAgfQorICBmdW5jdGlvbiBlbnVtXyhpdCkgeworICAgIHJldHVybiB0cy5k
ZWZpbml0aW9uKHRzLndyYXAoWworICAgICAgZXh0ZW5kZWRfYXR0cmlidXRlcyhpdC5leHRBdHRy
cyksCisgICAgICB0b2tlbihpdC50b2tlbnMuYmFzZSksCisgICAgICBuYW1lX3Rva2VuKGl0LnRv
a2Vucy5uYW1lLCB7IGRhdGE6IGl0IH0pLAorICAgICAgdG9rZW4oaXQudG9rZW5zLm9wZW4pLAor
ICAgICAgaXRlcmF0ZShpdC52YWx1ZXMsIGl0KSwKKyAgICAgIHRva2VuKGl0LnRva2Vucy5jbG9z
ZSksCisgICAgICB0b2tlbihpdC50b2tlbnMudGVybWluYXRpb24pCisgICAgXSksIHsgZGF0YTog
aXQgfSk7CisgIH0KKyAgZnVuY3Rpb24gZW51bV92YWx1ZSh2LCBwYXJlbnQpIHsKKyAgICByZXR1
cm4gdHMud3JhcChbCisgICAgICB0cy50cml2aWEodi50b2tlbnMudmFsdWUudHJpdmlhKSwKKyAg
ICAgIHRzLmRlZmluaXRpb24oCisgICAgICAgIHRzLndyYXAoWyciJywgdHMubmFtZSh2LnZhbHVl
LCB7IGRhdGE6IHYsIHBhcmVudCB9KSwgJyInXSksCisgICAgICAgIHsgZGF0YTogdiwgcGFyZW50
IH0KKyAgICAgICksCisgICAgICB0b2tlbih2LnRva2Vucy5zZXBhcmF0b3IpCisgICAgXSk7Cisg
IH0KKyAgZnVuY3Rpb24gaXRlcmFibGVfbGlrZShpdCwgcGFyZW50KSB7CisgICAgcmV0dXJuIHRz
LmRlZmluaXRpb24odHMud3JhcChbCisgICAgICBleHRlbmRlZF9hdHRyaWJ1dGVzKGl0LmV4dEF0
dHJzKSwKKyAgICAgIHRva2VuKGl0LnRva2Vucy5yZWFkb25seSksCisgICAgICB0b2tlbihpdC50
b2tlbnMuYXN5bmMpLAorICAgICAgdG9rZW4oaXQudG9rZW5zLmJhc2UsIHRzLmdlbmVyaWMpLAor
ICAgICAgdG9rZW4oaXQudG9rZW5zLm9wZW4pLAorICAgICAgdHMud3JhcChpdC5pZGxUeXBlLm1h
cCh0eXBlKSksCisgICAgICB0b2tlbihpdC50b2tlbnMuY2xvc2UpLAorICAgICAgdG9rZW4oaXQu
dG9rZW5zLnRlcm1pbmF0aW9uKQorICAgIF0pLCB7IGRhdGE6IGl0LCBwYXJlbnQgfSk7CisgIH0K
KyAgZnVuY3Rpb24gZW9mKGl0KSB7CisgICAgcmV0dXJuIHRzLnRyaXZpYShpdC50cml2aWEpOwor
ICB9CisKKyAgY29uc3QgdGFibGUgPSB7CisgICAgaW50ZXJmYWNlOiBjb250YWluZXIsCisgICAg
ImludGVyZmFjZSBtaXhpbiI6IGNvbnRhaW5lciwKKyAgICBuYW1lc3BhY2U6IGNvbnRhaW5lciwK
KyAgICBvcGVyYXRpb24sCisgICAgYXR0cmlidXRlLAorICAgIGNvbnN0cnVjdG9yLAorICAgIGRp
Y3Rpb25hcnk6IGNvbnRhaW5lciwKKyAgICBmaWVsZCwKKyAgICBjb25zdDogY29uc3RfLAorICAg
IHR5cGVkZWYsCisgICAgaW5jbHVkZXMsCisgICAgY2FsbGJhY2ssCisgICAgZW51bTogZW51bV8s
CisgICAgImVudW0tdmFsdWUiOiBlbnVtX3ZhbHVlLAorICAgIGl0ZXJhYmxlOiBpdGVyYWJsZV9s
aWtlLAorICAgIGxlZ2FjeWl0ZXJhYmxlOiBpdGVyYWJsZV9saWtlLAorICAgIG1hcGxpa2U6IGl0
ZXJhYmxlX2xpa2UsCisgICAgc2V0bGlrZTogaXRlcmFibGVfbGlrZSwKKyAgICAiY2FsbGJhY2sg
aW50ZXJmYWNlIjogY29udGFpbmVyLAorICAgIGVvZgorICB9OworICBmdW5jdGlvbiBkaXNwYXRj
aChpdCwgcGFyZW50KSB7CisgICAgY29uc3QgZGlzcGF0Y2hlciA9IHRhYmxlW2l0LnR5cGVdOwor
ICAgIGlmICghZGlzcGF0Y2hlcikgeworICAgICAgdGhyb3cgbmV3IEVycm9yKGBUeXBlICIke2l0
LnR5cGV9IiBpcyB1bnN1cHBvcnRlZGApOworICAgIH0KKyAgICByZXR1cm4gdGFibGVbaXQudHlw
ZV0oaXQsIHBhcmVudCk7CisgIH0KKyAgZnVuY3Rpb24gaXRlcmF0ZSh0aGluZ3MsIHBhcmVudCkg
eworICAgIGlmICghdGhpbmdzKSByZXR1cm47CisgICAgY29uc3QgcmVzdWx0cyA9IHRoaW5ncy5t
YXAodGhpbmcgPT4gZGlzcGF0Y2godGhpbmcsIHBhcmVudCkpOworICAgIHJldHVybiB0cy53cmFw
KHJlc3VsdHMpOworICB9CisgIHJldHVybiBpdGVyYXRlKGFzdCk7Cit9CisKKworLyoqKi8gfSks
CisvKiAzMSAqLworLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywg
X193ZWJwYWNrX3JlcXVpcmVfXykgeworCisidXNlIHN0cmljdCI7CitfX3dlYnBhY2tfcmVxdWly
ZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7CisvKiBoYXJtb255IGV4cG9ydCAoYmluZGluZykg
Ki8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sICJ2YWxpZGF0ZSIs
IGZ1bmN0aW9uKCkgeyByZXR1cm4gdmFsaWRhdGU7IH0pOworLyogaGFybW9ueSBpbXBvcnQgKi8g
dmFyIF9lcnJvcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3Jl
cXVpcmVfXygzKTsKKworCisKKworZnVuY3Rpb24gZ2V0TWl4aW5NYXAoYWxsLCB1bmlxdWUpIHsK
KyAgY29uc3QgbWFwID0gbmV3IE1hcCgpOworICBjb25zdCBpbmNsdWRlcyA9IGFsbC5maWx0ZXIo
ZGVmID0+IGRlZi50eXBlID09PSAiaW5jbHVkZXMiKTsKKyAgZm9yIChjb25zdCBpbmNsdWRlIG9m
IGluY2x1ZGVzKSB7CisgICAgY29uc3QgbWl4aW4gPSB1bmlxdWUuZ2V0KGluY2x1ZGUuaW5jbHVk
ZXMpOworICAgIGlmICghbWl4aW4pIHsKKyAgICAgIGNvbnRpbnVlOworICAgIH0KKyAgICBjb25z
dCBhcnJheSA9IG1hcC5nZXQoaW5jbHVkZS50YXJnZXQpOworICAgIGlmIChhcnJheSkgeworICAg
ICAgYXJyYXkucHVzaChtaXhpbik7CisgICAgfSBlbHNlIHsKKyAgICAgIG1hcC5zZXQoaW5jbHVk
ZS50YXJnZXQsIFttaXhpbl0pOworICAgIH0KKyAgfQorICByZXR1cm4gbWFwOworfQorCitmdW5j
dGlvbiBncm91cERlZmluaXRpb25zKGFsbCkgeworICBjb25zdCB1bmlxdWUgPSBuZXcgTWFwKCk7
CisgIGNvbnN0IGR1cGxpY2F0ZXMgPSBuZXcgU2V0KCk7CisgIGNvbnN0IHBhcnRpYWxzID0gbmV3
IE1hcCgpOworICBmb3IgKGNvbnN0IGRlZiBvZiBhbGwpIHsKKyAgICBpZiAoZGVmLnBhcnRpYWwp
IHsKKyAgICAgIGNvbnN0IGFycmF5ID0gcGFydGlhbHMuZ2V0KGRlZi5uYW1lKTsKKyAgICAgIGlm
IChhcnJheSkgeworICAgICAgICBhcnJheS5wdXNoKGRlZik7CisgICAgICB9IGVsc2UgeworICAg
ICAgICBwYXJ0aWFscy5zZXQoZGVmLm5hbWUsIFtkZWZdKTsKKyAgICAgIH0KKyAgICAgIGNvbnRp
bnVlOworICAgIH0KKyAgICBpZiAoIWRlZi5uYW1lKSB7CisgICAgICBjb250aW51ZTsKKyAgICB9
CisgICAgaWYgKCF1bmlxdWUuaGFzKGRlZi5uYW1lKSkgeworICAgICAgdW5pcXVlLnNldChkZWYu
bmFtZSwgZGVmKTsKKyAgICB9IGVsc2UgeworICAgICAgZHVwbGljYXRlcy5hZGQoZGVmKTsKKyAg
ICB9CisgIH0KKyAgcmV0dXJuIHsKKyAgICBhbGwsCisgICAgdW5pcXVlLAorICAgIHBhcnRpYWxz
LAorICAgIGR1cGxpY2F0ZXMsCisgICAgbWl4aW5NYXA6IGdldE1peGluTWFwKGFsbCwgdW5pcXVl
KSwKKyAgICBjYWNoZTogeworICAgICAgdHlwZWRlZkluY2x1ZGVzRGljdGlvbmFyeTogbmV3IFdl
YWtNYXAoKQorICAgIH0sCisgIH07Cit9CisKK2Z1bmN0aW9uKiBjaGVja0R1cGxpY2F0ZWROYW1l
cyh7IHVuaXF1ZSwgZHVwbGljYXRlcyB9KSB7CisgIGZvciAoY29uc3QgZHVwIG9mIGR1cGxpY2F0
ZXMpIHsKKyAgICBjb25zdCB7IG5hbWUgfSA9IGR1cDsKKyAgICBjb25zdCBtZXNzYWdlID0gYFRo
ZSBuYW1lICIke25hbWV9IiBvZiB0eXBlICIke3VuaXF1ZS5nZXQobmFtZSkudHlwZX0iIHdhcyBh
bHJlYWR5IHNlZW5gOworICAgIHlpZWxkIE9iamVjdChfZXJyb3JfanNfX1dFQlBBQ0tfSU1QT1JU
RURfTU9EVUxFXzBfX1sidmFsaWRhdGlvbkVycm9yIl0pKGR1cC5zb3VyY2UsIGR1cC50b2tlbnMu
bmFtZSwgZHVwLCBtZXNzYWdlKTsKKyAgfQorfQorCitmdW5jdGlvbiogdmFsaWRhdGVJdGVyYWJs
ZShhc3QpIHsKKyAgY29uc3QgZGVmcyA9IGdyb3VwRGVmaW5pdGlvbnMoYXN0KTsKKyAgZm9yIChj
b25zdCBkZWYgb2YgZGVmcy5hbGwpIHsKKyAgICBpZiAoZGVmLnZhbGlkYXRlKSB7CisgICAgICB5
aWVsZCogZGVmLnZhbGlkYXRlKGRlZnMpOworICAgIH0KKyAgfQorICB5aWVsZCogY2hlY2tEdXBs
aWNhdGVkTmFtZXMoZGVmcyk7Cit9CisKKy8vIFJlbW92ZSB0aGlzIG9uY2UgYWxsIG9mIG91ciBz
dXBwb3J0IHRhcmdldHMgZXhwb3NlIGAuZmxhdCgpYCBieSBkZWZhdWx0CitmdW5jdGlvbiBmbGF0
dGVuKGFycmF5KSB7CisgIGlmIChhcnJheS5mbGF0KSB7CisgICAgcmV0dXJuIGFycmF5LmZsYXQo
KTsKKyAgfQorICByZXR1cm4gW10uY29uY2F0KC4uLmFycmF5KTsKK30KKworLyoqCisgKiBAcGFy
YW0geyp9IGFzdCBBU1Qgb3IgYXJyYXkgb2YgQVNUcworICovCitmdW5jdGlvbiB2YWxpZGF0ZShh
c3QpIHsKKyAgcmV0dXJuIFsuLi52YWxpZGF0ZUl0ZXJhYmxlKGZsYXR0ZW4oYXN0KSldOworfQor
CisKKy8qKiovIH0pCisvKioqKioqLyBdKTsKK30pOworLy8jIHNvdXJjZU1hcHBpbmdVUkw9d2Vi
aWRsMi5qcy5tYXAKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9jbGllbnRzLW1hdGNoYWxsLWZyb3plbi5odHRwcy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9jbGllbnRzLW1hdGNoYWxsLWZyb3plbi5odHRwcy1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNmVmNTJkNTUwYjNhOThiZWVkNDA5NWI2MjhjYWVhY2IwZDE2YWM3
NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsaWVudHMtbWF0Y2hhbGwt
ZnJvemVuLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworRkFJTCBUZXN0IENs
aWVudHMubWF0Y2hBbGwoKSBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2
YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzIgorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGllbnRzLW1hdGNoYWxsLWZyb3plbi5odHRwcy5odG1s
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvY2xpZW50cy1tYXRjaGFsbC1mcm96ZW4uaHR0cHMuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5lZjI3YWMzZDM3MmU1ZDQwZmI1NzZlMmI1OTAyMDAyNmRmOGI2NmJjCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xpZW50cy1tYXRjaGFsbC1mcm96ZW4u
aHR0cHMuaHRtbApAQCAtMCwwICsxLDEwMyBAQAorPCFET0NUWVBFIGh0bWw+Cis8dGl0bGU+U2Vy
dmljZSBXb3JrZXI6IENsaWVudHMubWF0Y2hBbGw8L3RpdGxlPgorPHNjcmlwdCBzcmM9Ii9yZXNv
dXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMv
dGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy90
ZXN0LWhlbHBlcnMuc3ViLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+Cit2YXIgc2NvcGUgPSAncmVz
b3VyY2VzL2NsaWVudHMtZnJhbWUtZnJlZXplLmh0bWwnOwordmFyIHdpbmRvd3MgPSBbXTsKK3Zh
ciBleHBlY3RlZF93aW5kb3dfMSA9CisgICAge3Zpc2liaWxpdHlTdGF0ZTogJ3Zpc2libGUnLCBm
b2N1c2VkOiBmYWxzZSwgbGlmZWN5Y2xlU3RhdGU6ICJmcm96ZW4iLCB1cmw6IG5ldyBVUkwoc2Nv
cGUgKyAnIzEnLCBsb2NhdGlvbikudG9TdHJpbmcoKSwgdHlwZTogJ3dpbmRvdycsIGZyYW1lVHlw
ZTogJ3RvcC1sZXZlbCd9OwordmFyIGV4cGVjdGVkX3dpbmRvd18yID0KKyAgICB7dmlzaWJpbGl0
eVN0YXRlOiAndmlzaWJsZScsIGZvY3VzZWQ6IGZhbHNlLCBsaWZlY3ljbGVTdGF0ZTogImFjdGl2
ZSIsIHVybDogbmV3IFVSTChzY29wZSArICcjMicsIGxvY2F0aW9uKS50b1N0cmluZygpLCB0eXBl
OiAnd2luZG93JywgZnJhbWVUeXBlOiAndG9wLWxldmVsJ307CitmdW5jdGlvbiB3aXRoX3dpbmRv
dyh1cmwsIG5hbWUpIHsKKyAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUpIHsK
KyAgICB2YXIgY2hpbGQgPSB3aW5kb3cub3Blbih1cmwsIG5hbWUpOworICAgIHdpbmRvdy5vbm1l
c3NhZ2UgPSAoKSA9PiB7cmVzb2x2ZShjaGlsZCl9OworICB9KTsKK30KKworcHJvbWlzZV90ZXN0
KGZ1bmN0aW9uKHQpIHsKKyAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRf
cmVnaXN0ZXIoCisgICAgICAgIHQsICdyZXNvdXJjZXMvY2xpZW50cy1tYXRjaGFsbC13b3JrZXIu
anMnLCBzY29wZSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKHJlZ2lzdHJhdGlvbikgeworICAgICAg
ICAgIHQuYWRkX2NsZWFudXAoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgIHJldHVybiBzZXJ2
aWNlX3dvcmtlcl91bnJlZ2lzdGVyKHQsIHNjb3BlKTsKKyAgICAgICAgICAgIH0pOworCisgICAg
ICAgICAgcmV0dXJuIHdhaXRfZm9yX3N0YXRlKHQsIHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLCAn
YWN0aXZhdGVkJyk7CisgICAgICAgIH0pCisgICAgICAudGhlbihmdW5jdGlvbigpIHsgcmV0dXJu
IHdpdGhfd2luZG93KHNjb3BlICsgJyMxJywgJ0NoaWxkIDEnKTsgfSkKKyAgICAgIC50aGVuKGZ1
bmN0aW9uKHdpbmRvdzEpIHsKKyAgICAgICAgICB3aW5kb3dzLnB1c2god2luZG93MSk7CisgICAg
ICAgICAgcmV0dXJuIHdpdGhfd2luZG93KHNjb3BlICsgJyMyJywgJ0NoaWxkIDInKTsKKyAgICAg
ICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKHdpbmRvdzIpIHsKKyAgICAgICAgICB3aW5kb3dz
LnB1c2god2luZG93Mik7CisgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJl
c29sdmUpIHsKKyAgICAgICAgICAgICAgd2luZG93Lm9ubWVzc2FnZSA9IHJlc29sdmU7CisgICAg
ICAgICAgICAgIHdpbmRvd3NbMF0ucG9zdE1lc3NhZ2UoJ2ZyZWV6ZScpOworICAgICAgICAgICAg
fSk7CisgICAgICAgIH0pCisgICAgICAudGhlbihmdW5jdGlvbigpIHsKKyAgICAgICAgICB2YXIg
Y2hhbm5lbCA9IG5ldyBNZXNzYWdlQ2hhbm5lbCgpOworCisgICAgICAgICAgcmV0dXJuIG5ldyBQ
cm9taXNlKGZ1bmN0aW9uKHJlc29sdmUpIHsKKyAgICAgICAgICAgICAgY2hhbm5lbC5wb3J0MS5v
bm1lc3NhZ2UgPSByZXNvbHZlOworICAgICAgICAgICAgICB3aW5kb3dzWzFdLm5hdmlnYXRvci5z
ZXJ2aWNlV29ya2VyLmNvbnRyb2xsZXIucG9zdE1lc3NhZ2UoCisgICAgICAgICAgICAgICAgICB7
cG9ydDpjaGFubmVsLnBvcnQyLCBpbmNsdWRlTGlmZWN5Y2xlU3RhdGU6IHRydWV9LCBbY2hhbm5l
bC5wb3J0Ml0pOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pCisgICAgICAudGhlbihmdW5j
dGlvbihlKSB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLmRhdGEubGVuZ3RoLCAxKTsKKyAg
ICAgICAgICBhc3NlcnRfb2JqZWN0X2VxdWFscyhlLmRhdGFbMF0sIGV4cGVjdGVkX3dpbmRvd18y
KTsKKyAgICAgICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKCkgeworICAgICAgICAgIHZhciBj
aGFubmVsID0gbmV3IE1lc3NhZ2VDaGFubmVsKCk7CisKKyAgICAgICAgICByZXR1cm4gbmV3IFBy
b21pc2UoZnVuY3Rpb24ocmVzb2x2ZSkgeworICAgICAgICAgICAgICBjaGFubmVsLnBvcnQxLm9u
bWVzc2FnZSA9IHJlc29sdmU7CisgICAgICAgICAgICAgIHdpbmRvd3NbMV0ubmF2aWdhdG9yLnNl
cnZpY2VXb3JrZXIuY29udHJvbGxlci5wb3N0TWVzc2FnZSgKKyAgICAgICAgICAgICAgICAgIHtw
b3J0OmNoYW5uZWwucG9ydDIsIG9wdGlvbnM6IHtsaWZlY3ljbGVTdGF0ZTogImFsbCJ9LCBpbmNs
dWRlTGlmZWN5Y2xlU3RhdGU6IHRydWV9LCBbY2hhbm5lbC5wb3J0Ml0pOworICAgICAgICAgICAg
fSk7CisgICAgICAgIH0pCisgICAgICAudGhlbihmdW5jdGlvbihlKSB7CisgICAgICAgICAgYXNz
ZXJ0X2VxdWFscyhlLmRhdGEubGVuZ3RoLCAyKTsKKyAgICAgICAgICAvLyBObyBzcGVjaWZpYyBv
cmRlciBpcyByZXF1aXJlZCwgc28gc3VwcG9ydCBpbnZlcnNpb24uCisgICAgICAgICAgaWYgKGUu
ZGF0YVswXVszXSA9PSBuZXcgVVJMKHNjb3BlICsgJyMyJywgbG9jYXRpb24pKSB7CisgICAgICAg
ICAgICBhc3NlcnRfb2JqZWN0X2VxdWFscyhlLmRhdGFbMF0sIGV4cGVjdGVkX3dpbmRvd18yKTsK
KyAgICAgICAgICAgIGFzc2VydF9vYmplY3RfZXF1YWxzKGUuZGF0YVsxXSwgZXhwZWN0ZWRfd2lu
ZG93XzEpOworICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBhc3NlcnRfb2JqZWN0X2Vx
dWFscyhlLmRhdGFbMF0sIGV4cGVjdGVkX3dpbmRvd18xKTsKKyAgICAgICAgICAgIGFzc2VydF9v
YmplY3RfZXF1YWxzKGUuZGF0YVsxXSwgZXhwZWN0ZWRfd2luZG93XzIpOworICAgICAgICAgIH0K
KyAgICAgICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKCkgeworICAgICAgICAgIHZhciBjaGFu
bmVsID0gbmV3IE1lc3NhZ2VDaGFubmVsKCk7CisKKyAgICAgICAgICByZXR1cm4gbmV3IFByb21p
c2UoZnVuY3Rpb24ocmVzb2x2ZSkgeworICAgICAgICAgICAgICBjaGFubmVsLnBvcnQxLm9ubWVz
c2FnZSA9IHJlc29sdmU7CisgICAgICAgICAgICAgIHdpbmRvd3NbMV0ubmF2aWdhdG9yLnNlcnZp
Y2VXb3JrZXIuY29udHJvbGxlci5wb3N0TWVzc2FnZSgKKyAgICAgICAgICAgICAgICAgIHtwb3J0
OmNoYW5uZWwucG9ydDIsIG9wdGlvbnM6IHtsaWZlY3ljbGVTdGF0ZTogImZyb3plbiJ9LCBpbmNs
dWRlTGlmZWN5Y2xlU3RhdGU6IHRydWV9LCBbY2hhbm5lbC5wb3J0Ml0pOworICAgICAgICAgICAg
fSk7CisgICAgICAgIH0pCisgICAgICAudGhlbihmdW5jdGlvbihlKSB7CisgICAgICAgICAgYXNz
ZXJ0X2VxdWFscyhlLmRhdGEubGVuZ3RoLCAxKTsKKyAgICAgICAgICBhc3NlcnRfb2JqZWN0X2Vx
dWFscyhlLmRhdGFbMF0sIGV4cGVjdGVkX3dpbmRvd18xKTsKKyAgICAgICAgfSkKKyAgICAgIC50
aGVuKGZ1bmN0aW9uKCkgeworICAgICAgICAgIHZhciBjaGFubmVsID0gbmV3IE1lc3NhZ2VDaGFu
bmVsKCk7CisKKyAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSkg
eworICAgICAgICAgICAgICBjaGFubmVsLnBvcnQxLm9ubWVzc2FnZSA9IHJlc29sdmU7CisgICAg
ICAgICAgICAgIHdpbmRvd3NbMV0ubmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuY29udHJvbGxlci5w
b3N0TWVzc2FnZSgKKyAgICAgICAgICAgICAgICAgIHtwb3J0OmNoYW5uZWwucG9ydDIsIG9wdGlv
bnM6IHtsaWZlY3ljbGVTdGF0ZTogImFjdGl2ZSJ9LCBpbmNsdWRlTGlmZWN5Y2xlU3RhdGU6IHRy
dWV9LCBbY2hhbm5lbC5wb3J0Ml0pOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pCisgICAg
ICAudGhlbihmdW5jdGlvbihlKSB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLmRhdGEubGVu
Z3RoLCAxKTsKKyAgICAgICAgICBhc3NlcnRfb2JqZWN0X2VxdWFscyhlLmRhdGFbMF0sIGV4cGVj
dGVkX3dpbmRvd18yKTsKKyAgICAgIH0pOworfSwgJ1Rlc3QgQ2xpZW50cy5tYXRjaEFsbCgpJyk7
CisKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtY29ycy14
aHIuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtY29ycy14aHIu
aHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IDExYjE3NGEyYzkwNjAyOWVjYzc5ZTgxZDVlOTE2M2Nk
Y2EzNmI5MDQuLmI1NmZhZTZhZTgwNjIyNDRiMDBiYzAyOGQ5OTQwNTc3MWY1MDhkMmEgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWNvcnMteGhyLmh0dHBzLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1jb3JzLXhoci5odHRwcy1leHBlY3RlZC50
eHQKQEAgLTEsNDcgKzEsMyBAQAotQ09OU09MRSBNRVNTQUdFOiBGZXRjaEV2ZW50LnJlc3BvbmRX
aXRoIHJlY2VpdmVkIGFuIGVycm9yOiB1bmRlZmluZWQKLUNPTlNPTEUgTUVTU0FHRTogWE1MSHR0
cFJlcXVlc3QgY2Fubm90IGxvYWQgaHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0My9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWFjY2Vzcy1jb250cm9sLnB5P3JlamVj
dC4KLUNPTlNPTEUgTUVTU0FHRTogRmV0Y2hFdmVudC5yZXNwb25kV2l0aCByZWNlaXZlZCBhbiBl
cnJvcjogdW5kZWZpbmVkCi1DT05TT0xFIE1FU1NBR0U6IFhNTEh0dHBSZXF1ZXN0IGNhbm5vdCBs
b2FkIGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L3Jlc291cmNlcy9mZXRjaC1hY2Nlc3MtY29udHJvbC5weT9yZWplY3QuCi1DT05TT0xFIE1FU1NB
R0U6IEZldGNoRXZlbnQucmVzcG9uZFdpdGggcmVjZWl2ZWQgYW4gZXJyb3I6IHVuZGVmaW5lZAot
Q09OU09MRSBNRVNTQUdFOiBYTUxIdHRwUmVxdWVzdCBjYW5ub3QgbG9hZCBodHRwczovLzEyNy4w
LjAuMTo5NDQzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gt
YWNjZXNzLWNvbnRyb2wucHk/cmVqZWN0LgotQ09OU09MRSBNRVNTQUdFOiBGZXRjaEV2ZW50LnJl
c3BvbmRXaXRoIHJlY2VpdmVkIGFuIGVycm9yOiB1bmRlZmluZWQKLUNPTlNPTEUgTUVTU0FHRTog
WE1MSHR0cFJlcXVlc3QgY2Fubm90IGxvYWQgaHR0cHM6Ly8xMjcuMC4wLjE6OTQ0My9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWFjY2Vzcy1jb250cm9sLnB5
P3JlamVjdC4KLUNPTlNPTEUgTUVTU0FHRTogT3JpZ2luIGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMg
aXMgbm90IGFsbG93ZWQgYnkgQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luLgotQ09OU09MRSBN
RVNTQUdFOiBYTUxIdHRwUmVxdWVzdCBjYW5ub3QgbG9hZCBodHRwczovLzEyNy4wLjAuMTo5NDQz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtYWNjZXNzLWNv
bnRyb2wucHk/dGhyb3cgZHVlIHRvIGFjY2VzcyBjb250cm9sIGNoZWNrcy4KLUNPTlNPTEUgTUVT
U0FHRTogT3JpZ2luIGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMgaXMgbm90IGFsbG93ZWQgYnkgQWNj
ZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luLgotQ09OU09MRSBNRVNTQUdFOiBYTUxIdHRwUmVxdWVz
dCBjYW5ub3QgbG9hZCBodHRwczovLzEyNy4wLjAuMTo5NDQzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtYWNjZXNzLWNvbnRyb2wucHk/dGhyb3cgZHVlIHRv
IGFjY2VzcyBjb250cm9sIGNoZWNrcy4KLUNPTlNPTEUgTUVTU0FHRTogRmV0Y2hFdmVudC5yZXNw
b25kV2l0aCByZWNlaXZlZCBhbiBlcnJvcjogUmV0dXJuZWQgcmVzcG9uc2UgaXMgbnVsbC4KLUNP
TlNPTEUgTUVTU0FHRTogWE1MSHR0cFJlcXVlc3QgY2Fubm90IGxvYWQgaHR0cHM6Ly9sb2NhbGhv
c3Q6OTQ0My9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWFj
Y2Vzcy1jb250cm9sLnB5P3Jlc29sdmUtbnVsbC4KLUNPTlNPTEUgTUVTU0FHRTogRmV0Y2hFdmVu
dC5yZXNwb25kV2l0aCByZWNlaXZlZCBhbiBlcnJvcjogUmV0dXJuZWQgcmVzcG9uc2UgaXMgbnVs
bC4KLUNPTlNPTEUgTUVTU0FHRTogWE1MSHR0cFJlcXVlc3QgY2Fubm90IGxvYWQgaHR0cHM6Ly9s
b2NhbGhvc3Q6OTQ0My9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2Zl
dGNoLWFjY2Vzcy1jb250cm9sLnB5P3Jlc29sdmUtbnVsbC4KLUNPTlNPTEUgTUVTU0FHRTogRmV0
Y2hFdmVudC5yZXNwb25kV2l0aCByZWNlaXZlZCBhbiBlcnJvcjogUmV0dXJuZWQgcmVzcG9uc2Ug
aXMgbnVsbC4KLUNPTlNPTEUgTUVTU0FHRTogWE1MSHR0cFJlcXVlc3QgY2Fubm90IGxvYWQgaHR0
cHM6Ly8xMjcuMC4wLjE6OTQ0My9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3Vy
Y2VzL2ZldGNoLWFjY2Vzcy1jb250cm9sLnB5P3Jlc29sdmUtbnVsbC4KLUNPTlNPTEUgTUVTU0FH
RTogRmV0Y2hFdmVudC5yZXNwb25kV2l0aCByZWNlaXZlZCBhbiBlcnJvcjogUmV0dXJuZWQgcmVz
cG9uc2UgaXMgbnVsbC4KLUNPTlNPTEUgTUVTU0FHRTogWE1MSHR0cFJlcXVlc3QgY2Fubm90IGxv
YWQgaHR0cHM6Ly8xMjcuMC4wLjE6OTQ0My9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
cmVzb3VyY2VzL2ZldGNoLWFjY2Vzcy1jb250cm9sLnB5P3Jlc29sdmUtbnVsbC4KLUNPTlNPTEUg
TUVTU0FHRTogT3JpZ2luIGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMgaXMgbm90IGFsbG93ZWQgYnkg
QWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luLgotQ09OU09MRSBNRVNTQUdFOiBYTUxIdHRwUmVx
dWVzdCBjYW5ub3QgbG9hZCBodHRwczovLzEyNy4wLjAuMTo5NDQzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtYWNjZXNzLWNvbnRyb2wucHk/aWdub3JlIGR1
ZSB0byBhY2Nlc3MgY29udHJvbCBjaGVja3MuCi1DT05TT0xFIE1FU1NBR0U6IE9yaWdpbiBodHRw
czovL2xvY2FsaG9zdDo5NDQzIGlzIG5vdCBhbGxvd2VkIGJ5IEFjY2Vzcy1Db250cm9sLUFsbG93
LU9yaWdpbi4KLUNPTlNPTEUgTUVTU0FHRTogWE1MSHR0cFJlcXVlc3QgY2Fubm90IGxvYWQgaHR0
cHM6Ly8xMjcuMC4wLjE6OTQ0My9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3Vy
Y2VzL2ZldGNoLWFjY2Vzcy1jb250cm9sLnB5P2lnbm9yZSBkdWUgdG8gYWNjZXNzIGNvbnRyb2wg
Y2hlY2tzLgotQ09OU09MRSBNRVNTQUdFOiBDcmVkZW50aWFscyBmbGFnIGlzIHRydWUsIGJ1dCBB
Y2Nlc3MtQ29udHJvbC1BbGxvdy1DcmVkZW50aWFscyBpcyBub3QgInRydWUiLgotQ09OU09MRSBN
RVNTQUdFOiBYTUxIdHRwUmVxdWVzdCBjYW5ub3QgbG9hZCBodHRwczovLzEyNy4wLjAuMTo5NDQz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtYWNjZXNzLWNv
bnRyb2wucHk/QUNBT3JpZ2luPWh0dHBzOi8vbG9jYWxob3N0Ojk0NDMmaWdub3JlIGR1ZSB0byBh
Y2Nlc3MgY29udHJvbCBjaGVja3MuCi1DT05TT0xFIE1FU1NBR0U6IE9yaWdpbiBodHRwczovL2xv
Y2FsaG9zdDo5NDQzIGlzIG5vdCBhbGxvd2VkIGJ5IEFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdp
bi4KLUNPTlNPTEUgTUVTU0FHRTogWE1MSHR0cFJlcXVlc3QgY2Fubm90IGxvYWQgaHR0cHM6Ly8x
MjcuMC4wLjE6OTQ0My9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2Zl
dGNoLWFjY2Vzcy1jb250cm9sLnB5P0F1dGgmaWdub3JlIGR1ZSB0byBhY2Nlc3MgY29udHJvbCBj
aGVja3MuCi1DT05TT0xFIE1FU1NBR0U6IE9yaWdpbiBodHRwczovL2xvY2FsaG9zdDo5NDQzIGlz
IG5vdCBhbGxvd2VkIGJ5IEFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbi4KLUNPTlNPTEUgTUVT
U0FHRTogWE1MSHR0cFJlcXVlc3QgY2Fubm90IGxvYWQgaHR0cHM6Ly8xMjcuMC4wLjE6OTQ0My9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWFjY2Vzcy1jb250
cm9sLnB5P0F1dGgmaWdub3JlIGR1ZSB0byBhY2Nlc3MgY29udHJvbCBjaGVja3MuCi1DT05TT0xF
IE1FU1NBR0U6IENyZWRlbnRpYWxzIGZsYWcgaXMgdHJ1ZSwgYnV0IEFjY2Vzcy1Db250cm9sLUFs
bG93LUNyZWRlbnRpYWxzIGlzIG5vdCAidHJ1ZSIuCi1DT05TT0xFIE1FU1NBR0U6IFhNTEh0dHBS
ZXF1ZXN0IGNhbm5vdCBsb2FkIGh0dHBzOi8vMTI3LjAuMC4xOjk0NDMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1hY2Nlc3MtY29udHJvbC5weT9BdXRoJkFD
QU9yaWdpbj1odHRwczovL2xvY2FsaG9zdDo5NDQzJmlnbm9yZSBkdWUgdG8gYWNjZXNzIGNvbnRy
b2wgY2hlY2tzLgotQ09OU09MRSBNRVNTQUdFOiBSZXNwb25zZSBzZXJ2ZWQgYnkgc2VydmljZSB3
b3JrZXIgaXMgb3BhcXVlCi1DT05TT0xFIE1FU1NBR0U6IFhNTEh0dHBSZXF1ZXN0IGNhbm5vdCBs
b2FkIGh0dHBzOi8vMTI3LjAuMC4xOjk0NDMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L3Jlc291cmNlcy9mZXRjaC1hY2Nlc3MtY29udHJvbC5weSBkdWUgdG8gYWNjZXNzIGNvbnRyb2wg
Y2hlY2tzLgotQ09OU09MRSBNRVNTQUdFOiBSZXNwb25zZSBzZXJ2ZWQgYnkgc2VydmljZSB3b3Jr
ZXIgaXMgb3BhcXVlCi1DT05TT0xFIE1FU1NBR0U6IFhNTEh0dHBSZXF1ZXN0IGNhbm5vdCBsb2Fk
IGh0dHBzOi8vMTI3LjAuMC4xOjk0NDMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jl
c291cmNlcy9mZXRjaC1hY2Nlc3MtY29udHJvbC5weSBkdWUgdG8gYWNjZXNzIGNvbnRyb2wgY2hl
Y2tzLgotQ09OU09MRSBNRVNTQUdFOiBSZXNwb25zZSBzZXJ2ZWQgYnkgc2VydmljZSB3b3JrZXIg
aXMgb3BhcXVlCi1DT05TT0xFIE1FU1NBR0U6IFhNTEh0dHBSZXF1ZXN0IGNhbm5vdCBsb2FkIGh0
dHBzOi8vMTI3LjAuMC4xOjk0NDMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291
cmNlcy9mZXRjaC1hY2Nlc3MtY29udHJvbC5weSBkdWUgdG8gYWNjZXNzIGNvbnRyb2wgY2hlY2tz
LgotQ09OU09MRSBNRVNTQUdFOiBSZXNwb25zZSBzZXJ2ZWQgYnkgc2VydmljZSB3b3JrZXIgaXMg
b3BhcXVlCi1DT05TT0xFIE1FU1NBR0U6IFhNTEh0dHBSZXF1ZXN0IGNhbm5vdCBsb2FkIGh0dHBz
Oi8vMTI3LjAuMC4xOjk0NDMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNl
cy9mZXRjaC1hY2Nlc3MtY29udHJvbC5weSBkdWUgdG8gYWNjZXNzIGNvbnRyb2wgY2hlY2tzLgot
Q09OU09MRSBNRVNTQUdFOiBGZXRjaEV2ZW50LnJlc3BvbmRXaXRoIHJlY2VpdmVkIGFuIGVycm9y
OiBUeXBlRXJyb3I6IENyZWRlbnRpYWxzIGZsYWcgaXMgdHJ1ZSwgYnV0IEFjY2Vzcy1Db250cm9s
LUFsbG93LUNyZWRlbnRpYWxzIGlzIG5vdCAidHJ1ZSIuCi1DT05TT0xFIE1FU1NBR0U6IFhNTEh0
dHBSZXF1ZXN0IGNhbm5vdCBsb2FkIGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1hY2Nlc3MtY29udHJvbC5weT9tb2Rl
PWNvcnMmdXJsPWh0dHBzJTNBJTJGJTJGMTI3LjAuMC4xJTNBOTQ0MyUyRnNlcnZpY2Utd29ya2Vy
cyUyRnNlcnZpY2Utd29ya2VyJTJGcmVzb3VyY2VzJTJGZmV0Y2gtYWNjZXNzLWNvbnRyb2wucHkl
M0ZBQ0FPcmlnaW4lM0RodHRwcyUzQSUyRiUyRmxvY2FsaG9zdCUzQTk0NDMuCi1DT05TT0xFIE1F
U1NBR0U6IEZldGNoRXZlbnQucmVzcG9uZFdpdGggcmVjZWl2ZWQgYW4gZXJyb3I6IFR5cGVFcnJv
cjogQ3JlZGVudGlhbHMgZmxhZyBpcyB0cnVlLCBidXQgQWNjZXNzLUNvbnRyb2wtQWxsb3ctQ3Jl
ZGVudGlhbHMgaXMgbm90ICJ0cnVlIi4KLUNPTlNPTEUgTUVTU0FHRTogWE1MSHR0cFJlcXVlc3Qg
Y2Fubm90IGxvYWQgaHR0cHM6Ly8xMjcuMC4wLjE6OTQ0My9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWFjY2Vzcy1jb250cm9sLnB5P21vZGU9Y29ycyZ1cmw9
aHR0cHMlM0ElMkYlMkYxMjcuMC4wLjElM0E5NDQzJTJGc2VydmljZS13b3JrZXJzJTJGc2Vydmlj
ZS13b3JrZXIlMkZyZXNvdXJjZXMlMkZmZXRjaC1hY2Nlc3MtY29udHJvbC5weSUzRkFDQU9yaWdp
biUzRGh0dHBzJTNBJTJGJTJGbG9jYWxob3N0JTNBOTQ0My4KIAogUEFTUyBWZXJpZnkgQ09SUyBY
SFIgb2YgZmV0Y2goKSBpbiBhIFNlcnZpY2UgV29ya2VyIAogUEFTUyB0ZXN0IDE6IGh0dHBzOi8v
bG9jYWxob3N0Ojk0NDMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9m
ZXRjaC1hY2Nlc3MtY29udHJvbC5weT9yZWplY3Qgd2l0aCBjcmVkZW50aWFscyBmYWxzZSBtdXN0
IGJlIEZBSUwgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1ldmVudC13aXRo
aW4tc3cuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWV2ZW50LXdpdGhpbi1z
dy5odHRwcy5odG1sCmluZGV4IGM3M2FiYzRjOThjMDg3MWUzMDIxZTY2MDUzMTFiYTRiMWQ3YTg4
OWIuLjhhNTY3ZmQ3YTkzZjg1NTI0MTJjZmZmNjU3Nzg5YzUzNzVlYmE5NzEgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWV2ZW50LXdpdGhpbi1zdy5odHRwcy5odG1sCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWV2ZW50LXdpdGhpbi1zdy5odHRwcy5odG1sCkBAIC0x
LDc5ICsxLDUzIEBACiA8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRl
bnQ9ImxvbmciPgogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2Ny
aXB0PgogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2Ny
aXB0PgotPHNjcmlwdCBzcmM9Ii9jb21tb24vZ2V0LWhvc3QtaW5mby5zdWIuanMiPjwvc2NyaXB0
PgogPHNjcmlwdCBzcmM9InJlc291cmNlcy90ZXN0LWhlbHBlcnMuc3ViLmpzIj48L3NjcmlwdD4K
LTxib2R5PgorCiA8c2NyaXB0PgogY29uc3Qgd29ya2VyID0gJ3Jlc291cmNlcy9mZXRjaC1ldmVu
dC13aXRoaW4tc3ctd29ya2VyLmpzJzsKIAotZnVuY3Rpb24gcmVzZXQoKSB7Ci0gIGZvciAoY29u
c3QgaWZyYW1lIG9mIFsuLi5kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcudGVzdC1pZnJhbWUn
KV0pIHsKLSAgICBpZnJhbWUucmVtb3ZlKCk7Ci0gIH0KLSAgcmV0dXJuIG5hdmlnYXRvci5zZXJ2
aWNlV29ya2VyLmdldFJlZ2lzdHJhdGlvbnMoKS50aGVuKHJlZ2lzdHJhdGlvbnMgPT4gewotICAg
IHJldHVybiBQcm9taXNlLmFsbChyZWdpc3RyYXRpb25zLm1hcChyID0+IHIudW5yZWdpc3Rlcigp
KSk7Ci0gIH0pLnRoZW4oKCkgPT4gY2FjaGVzLmtleXMoKSkudGhlbihjYWNoZUtleXMgPT4gewot
ICAgIHJldHVybiBQcm9taXNlLmFsbChjYWNoZUtleXMubWFwKGMgPT4gY2FjaGVzLmRlbGV0ZShj
KSkpOwotICB9KTsKK2FzeW5jIGZ1bmN0aW9uIHJlZ2lzdGVyU3dBbmRPcGVuRnJhbWUodCkgewor
ICBjb25zdCByZWdpc3RyYXRpb24gPSBhd2FpdCBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdp
c3RlcigKKyAgICAgIHdvcmtlciwgeyBzY29wZTogJ3Jlc291cmNlcy8nIH0pOworICB0LmFkZF9j
bGVhbnVwKCgpID0+IHJlZ2lzdHJhdGlvbi51bnJlZ2lzdGVyKCkpOworICBhd2FpdCB3YWl0X2Zv
cl9zdGF0ZSh0LCByZWdpc3RyYXRpb24uaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOworCisgIGNv
bnN0IGZyYW1lID0gYXdhaXQgd2l0aF9pZnJhbWUoJ3Jlc291cmNlcy9zaW1wbGUuaHRtbCcpOwor
ICB0LmFkZF9jbGVhbnVwKCgpID0+IGZyYW1lLnJlbW92ZSgpKTsKKyAgcmV0dXJuIGZyYW1lOwog
fQogCi1hZGRfY29tcGxldGlvbl9jYWxsYmFjayhyZXNldCk7Cithc3luYyBmdW5jdGlvbiBkZWxl
dGVDYXNoZXMoKSB7CisgIGNvbnN0IGNhY2hlS2V5cyA9IGF3YWl0IGNhY2hlcy5rZXlzKCk7Cisg
IGF3YWl0IFByb21pc2UuYWxsKGNhY2hlS2V5cy5tYXAoYyA9PiBjYWNoZXMuZGVsZXRlKGMpKSk7
Cit9CiAKLWZ1bmN0aW9uIHJlZ1JlYWR5KHJlZykgewotICByZXR1cm4gbmV3IFByb21pc2UoKHJl
c29sdmUsIHJlamVjdCkgPT4gewotICAgIGlmIChyZWcuYWN0aXZlKSB7Ci0gICAgICByZXNvbHZl
KCk7Ci0gICAgICByZXR1cm47Ci0gICAgfQotICAgIGNvbnN0IG5leHRXb3JrZXIgPSByZWcud2Fp
dGluZyB8fCByZWcuaW5zdGFsbGluZzsKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgdC5h
ZGRfY2xlYW51cChkZWxldGVDYXNoZXMpOwogCi0gICAgbmV4dFdvcmtlci5hZGRFdmVudExpc3Rl
bmVyKCdzdGF0ZWNoYW5nZScsICgpID0+IHsKLSAgICAgIGlmIChuZXh0V29ya2VyLnN0YXRlID09
ICdyZWR1bmRhbnQnKSB7Ci0gICAgICAgIHJlamVjdChFcnJvcihgU2VydmljZSB3b3JrZXIgZmFp
bGVkIHRvIGluc3RhbGxgKSk7Ci0gICAgICAgIHJldHVybjsKLSAgICAgIH0KLSAgICAgIGlmIChu
ZXh0V29ya2VyLnN0YXRlID09ICdhY3RpdmF0ZWQnKSB7Ci0gICAgICAgIHJlc29sdmUoKTsKLSAg
ICAgIH0KLSAgICB9KTsKLSAgfSk7Ci19CisgIGNvbnN0IGlmcmFtZSA9IGF3YWl0IHJlZ2lzdGVy
U3dBbmRPcGVuRnJhbWUodCk7CisgIGNvbnN0IGZldGNoVGV4dCA9CisgICAgICBhd2FpdCBpZnJh
bWUuY29udGVudFdpbmRvdy5mZXRjaCgnZHVtbXkudHh0JykudGhlbihyID0+IHIudGV4dCgpKTsK
IAotZnVuY3Rpb24gcmVnaXN0ZXJTd0FuZE9wZW5GcmFtZSgpIHsKLSAgcmV0dXJuIHJlc2V0KCku
dGhlbigoKSA9PiBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3Rlcih3b3JrZXIsIHsgc2Nv
cGU6ICdyZXNvdXJjZXMvJyB9KSkKLSAgICAudGhlbihyZWcgPT4gcmVnUmVhZHkocmVnKSkKLSAg
ICAudGhlbigoKSA9PiB3aXRoX2lmcmFtZSgncmVzb3VyY2VzL3NpbXBsZS5odG1sJykpOwotfQor
ICBjb25zdCBjYWNoZSA9IGF3YWl0IGlmcmFtZS5jb250ZW50V2luZG93LmNhY2hlcy5vcGVuKCd0
ZXN0Jyk7CisgIGF3YWl0IGNhY2hlLmFkZCgnZHVtbXkudHh0Jyk7CiAKLXByb21pc2VfdGVzdCgo
KSA9PiB7Ci0gIHJldHVybiByZWdpc3RlclN3QW5kT3BlbkZyYW1lKCkudGhlbihpZnJhbWUgPT4g
ewotICAgIHJldHVybiBQcm9taXNlLmFsbChbCi0gICAgICBpZnJhbWUuY29udGVudFdpbmRvdy5m
ZXRjaCgnZHVtbXkudHh0JykudGhlbihyID0+IHIudGV4dCgpKSwKLSAgICAgIGlmcmFtZS5jb250
ZW50V2luZG93LmNhY2hlcy5vcGVuKCd0ZXN0JykKLSAgICAgICAgLnRoZW4oY2FjaGUgPT4KLSAg
ICAgICAgICBjYWNoZS5hZGQoJ2R1bW15LnR4dCcpLnRoZW4oKCkgPT4gY2FjaGUubWF0Y2goJ2R1
bW15LnR4dCcpKQotICAgICAgICApLnRoZW4ocmVzcG9uc2UgPT4gewotICAgICAgICAgIGlmICgh
cmVzcG9uc2UpIHJldHVybiAnY2FjaGUgbWF0Y2ggZmFpbGVkJzsKLSAgICAgICAgICByZXR1cm4g
cmVzcG9uc2UudGV4dCgpOwotICAgICAgICB9KQotICAgIF0pCi0gIH0pLnRoZW4oKFtmZXRjaFRl
eHQsIGNhY2hlVGV4dF0pID0+IHsKLSAgICBhc3NlcnRfZXF1YWxzKGZldGNoVGV4dCwgJ2ludGVy
Y2VwdGVkJywgJ2ZldGNoIGludGVyY2VwdGVkJyk7Ci0gICAgYXNzZXJ0X2VxdWFscyhjYWNoZVRl
eHQsICdpbnRlcmNlcHRlZCcsICdjYWNoZS5hZGQgaW50ZXJjZXB0ZWQnKTsKLSAgfSk7CisgIGNv
bnN0IHJlc3BvbnNlID0gYXdhaXQgY2FjaGUubWF0Y2goJ2R1bW15LnR4dCcpOworICBjb25zdCBj
YWNoZVRleHQgPSBhd2FpdCAocmVzcG9uc2UgPyByZXNwb25zZS50ZXh0KCkgOiAnY2FjaGUgbWF0
Y2ggZmFpbGVkJyk7CisgIGFzc2VydF9lcXVhbHMoZmV0Y2hUZXh0LCAnaW50ZXJjZXB0ZWQnLCAn
ZmV0Y2ggaW50ZXJjZXB0ZWQnKTsKKyAgYXNzZXJ0X2VxdWFscyhjYWNoZVRleHQsICdpbnRlcmNl
cHRlZCcsICdjYWNoZS5hZGQgaW50ZXJjZXB0ZWQnKTsKIH0sICdTZXJ2aWNlIHdvcmtlciBpbnRl
cmNlcHRzIHJlcXVlc3RzIGZyb20gd2luZG93Jyk7CiAKLXByb21pc2VfdGVzdCgoKSA9PiB7Ci0g
IHJldHVybiByZWdpc3RlclN3QW5kT3BlbkZyYW1lKCkudGhlbihpZnJhbWUgPT4gewotICAgIHJl
dHVybiBQcm9taXNlLmFsbChbCi0gICAgICBpZnJhbWUuY29udGVudFdpbmRvdy5mZXRjaCgnZHVt
bXkudHh0LWlubmVyLWZldGNoJykudGhlbihyID0+IHIudGV4dCgpKSwKLSAgICAgIGlmcmFtZS5j
b250ZW50V2luZG93LmZldGNoKCdkdW1teS50eHQtaW5uZXItY2FjaGUnKS50aGVuKHIgPT4gci50
ZXh0KCkpCi0gICAgXSkKLSAgfSkudGhlbigoW2ZldGNoVGV4dCwgY2FjaGVUZXh0XSkgPT4gewot
ICAgIGFzc2VydF9lcXVhbHMoZmV0Y2hUZXh0LCAnSGVsbG8gd29ybGRcbicsICdmZXRjaCB3aXRo
aW4gU1cgbm90IGludGVyY2VwdGVkJyk7Ci0gICAgYXNzZXJ0X2VxdWFscyhjYWNoZVRleHQsICdI
ZWxsbyB3b3JsZFxuJywgJ2NhY2hlLmFkZCB3aXRoaW4gU1cgbm90IGludGVyY2VwdGVkJyk7Ci0g
IH0pOwotfSwgYFNlcnZpY2Ugd29ya2VyIGRvZXMgbm90IGludGVyY2VwdCBmZXRjaC9jYWNoZSBy
ZXF1ZXN0cyB3aXRoaW4gc2VydmljZSB3b3JrZXJgKTsKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+
IHsKKyAgY29uc3QgaWZyYW1lID0gYXdhaXQgcmVnaXN0ZXJTd0FuZE9wZW5GcmFtZSh0KTsKKyAg
Y29uc3QgW2ZldGNoVGV4dCwgY2FjaGVUZXh0XSA9IGF3YWl0IFByb21pc2UuYWxsKFsKKyAgICBp
ZnJhbWUuY29udGVudFdpbmRvdy5mZXRjaCgnZHVtbXkudHh0LWlubmVyLWZldGNoJykudGhlbihy
ID0+IHIudGV4dCgpKSwKKyAgICBpZnJhbWUuY29udGVudFdpbmRvdy5mZXRjaCgnZHVtbXkudHh0
LWlubmVyLWNhY2hlJykudGhlbihyID0+IHIudGV4dCgpKQorICBdKTsKKyAgYXNzZXJ0X2VxdWFs
cyhmZXRjaFRleHQsICdIZWxsbyB3b3JsZFxuJywgJ2ZldGNoIHdpdGhpbiBTVyBub3QgaW50ZXJj
ZXB0ZWQnKTsKKyAgYXNzZXJ0X2VxdWFscyhjYWNoZVRleHQsICdIZWxsbyB3b3JsZFxuJywKKyAg
ICAgICAgICAgICAgICAnY2FjaGUuYWRkIHdpdGhpbiBTVyBub3QgaW50ZXJjZXB0ZWQnKTsKK30s
ICdTZXJ2aWNlIHdvcmtlciBkb2VzIG5vdCBpbnRlcmNlcHQgZmV0Y2gvY2FjaGUgcmVxdWVzdHMg
d2l0aGluIHNlcnZpY2UgJyArCisgICAnd29ya2VyJyk7CiA8L3NjcmlwdD4KLTwvYm9keT4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2dldHJlZ2lzdHJhdGlvbnMuaHR0cHMtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZ2V0cmVnaXN0cmF0aW9ucy5odHRwcy1leHBlY3Rl
ZC50eHQKaW5kZXggZjRiNTM0MGJkN2U1OGRlZTkzNjgyZmE3MTE2ZTNmMmZkOWY5YTVkNy4uYTNl
NTc3YjRlMzM4NDYyYWQxZDdkN2JlMTY2Mjc0ODlhNDNiZTBkYSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvZ2V0cmVnaXN0cmF0aW9ucy5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvZ2V0cmVnaXN0cmF0aW9ucy5odHRwcy1leHBlY3RlZC50eHQKQEAgLTEs
NCArMSw1IEBACiAKKwogUEFTUyByZWdpc3RyYXRpb25zIGFyZSBub3QgcmV0dXJuZWQgZm9sbG93
aW5nIHVucmVnaXN0ZXIgCiBQQVNTIFJlZ2lzdGVyIHRoZW4gZ2V0UmVnaXN0cmF0aW9ucyAKIFBB
U1MgUmVnaXN0ZXIgbXVsdGlwbGUgdGltZXMgdGhlbiBnZXRSZWdpc3RyYXRpb25zIApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvZ2V0cmVnaXN0cmF0aW9ucy5odHRwcy5odG1sIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvZ2V0cmVnaXN0cmF0aW9ucy5odHRwcy5odG1sCmluZGV4IDExZGEyNzAz
NmQwOTJjMmYyYzZkNThkZjU3NmIyOWU5YmZiOTk1MzcuLjNlNDhkNWZlMzYxOGIzNjcxM2Q3MjRi
NzFlNDAyNmVhMjQ1NTNiZDQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2dldHJlZ2lz
dHJhdGlvbnMuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9nZXRyZWdpc3RyYXRp
b25zLmh0dHBzLmh0bWwKQEAgLTgsMTc4ICs4LDEyMiBAQAogLy8gUHVyZ2UgdGhlIGV4aXN0aW5n
IHJlZ2lzdHJhdGlvbnMgZm9yIHRoZSBvcmlnaW4uCiAvLyBnZXRSZWdpc3RyYXRpb25zKCkgaXMg
dXNlZCBpbiBvcmRlciB0byBhdm9pZCBhZGRpbmcgYWRkaXRpb25hbCBjb21wbGV4aXR5CiAvLyBl
LmcuIGFkZGluZyBhbiBpbnRlcm5hbCBmdW5jdGlvbi4KLXByb21pc2VfdGVzdChmdW5jdGlvbigp
IHsKLSAgICByZXR1cm4gbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuZ2V0UmVnaXN0cmF0aW9ucygp
Ci0gICAgICAudGhlbihmdW5jdGlvbihyZWdpc3RyYXRpb25zKSB7Ci0gICAgICAgICAgcmV0dXJu
IHJlZ2lzdHJhdGlvbnMucmVkdWNlKGZ1bmN0aW9uKHNlcXVlbmNlLCByZWdpc3RyYXRpb24pIHsK
LSAgICAgICAgICAgICAgcmV0dXJuIHNlcXVlbmNlLnRoZW4oZnVuY3Rpb24oKSB7Ci0gICAgICAg
ICAgICAgICAgICByZXR1cm4gcmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIoKTsKLSAgICAgICAgICAg
ICAgICB9KTsKLSAgICAgICAgICAgIH0sIFByb21pc2UucmVzb2x2ZSgpKTsKLSAgICAgICAgfSkK
LSAgICAgIC50aGVuKGZ1bmN0aW9uKCkgewotICAgICAgICAgIHJldHVybiBuYXZpZ2F0b3Iuc2Vy
dmljZVdvcmtlci5nZXRSZWdpc3RyYXRpb25zKCk7Ci0gICAgICAgIH0pCi0gICAgICAudGhlbihm
dW5jdGlvbih2YWx1ZSkgewotICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoCi0gICAgICAg
ICAgICB2YWx1ZSwKLSAgICAgICAgICAgIFtdLAotICAgICAgICAgICAgJ2dldFJlZ2lzdHJhdGlv
bnMgc2hvdWxkIHJlc29sdmUgd2l0aCBhbiBlbXB0eSBhcnJheS4nKTsKLSAgICAgICAgfSk7Citw
cm9taXNlX3Rlc3QoYXN5bmMgKCkgPT4geworICBjb25zdCByZWdpc3RyYXRpb25zID0gYXdhaXQg
bmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuZ2V0UmVnaXN0cmF0aW9ucygpOworICBhd2FpdCBQcm9t
aXNlLmFsbChyZWdpc3RyYXRpb25zLm1hcChyID0+IHIudW5yZWdpc3RlcigpKSk7CisgIGNvbnN0
IHZhbHVlID0gYXdhaXQgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuZ2V0UmVnaXN0cmF0aW9ucygp
OworICBhc3NlcnRfYXJyYXlfZXF1YWxzKAorICAgICAgdmFsdWUsIFtdLAorICAgICAgJ2dldFJl
Z2lzdHJhdGlvbnMgc2hvdWxkIHJlc29sdmUgd2l0aCBhbiBlbXB0eSBhcnJheS4nKTsKIH0sICdy
ZWdpc3RyYXRpb25zIGFyZSBub3QgcmV0dXJuZWQgZm9sbG93aW5nIHVucmVnaXN0ZXInKTsKIAot
cHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKLSAgICB2YXIgc2NvcGUgPSAncmVzb3VyY2VzL3Nj
b3BlL2dldHJlZ2lzdHJhdGlvbnMvbm9ybWFsJzsKLSAgICB2YXIgc2NyaXB0ID0gJ3Jlc291cmNl
cy9lbXB0eS13b3JrZXIuanMnOwotICAgIHZhciByZWdpc3RyYXRpb25zID0gW107Ci0gICAgcmV0
dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHNjcmlwdCwgc2Nv
cGUpCi0gICAgICAudGhlbihmdW5jdGlvbihyKSB7Ci0gICAgICAgICAgcmVnaXN0cmF0aW9ucy5w
dXNoKHIpOwotICAgICAgICAgIHJldHVybiBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5nZXRSZWdp
c3RyYXRpb25zKCk7Ci0gICAgICAgIH0pCi0gICAgICAudGhlbihmdW5jdGlvbih2YWx1ZSkgewot
ICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoCi0gICAgICAgICAgICB2YWx1ZSwKLSAgICAg
ICAgICAgIHJlZ2lzdHJhdGlvbnMsCi0gICAgICAgICAgICAnZ2V0UmVnaXN0cmF0aW9ucyBzaG91
bGQgcmVzb2x2ZSB3aXRoIGFycmF5IG9mIHJlZ2lzdHJhdGlvbnMuJyk7Ci0gICAgICAgICAgcmV0
dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXIodCwgc2NvcGUpOwotICAgICAgICB9KTsKLSAg
fSwgJ1JlZ2lzdGVyIHRoZW4gZ2V0UmVnaXN0cmF0aW9ucycpOworcHJvbWlzZV90ZXN0KGFzeW5j
IHQgPT4geworICBjb25zdCBzY29wZSA9ICdyZXNvdXJjZXMvc2NvcGUvZ2V0cmVnaXN0cmF0aW9u
cy9ub3JtYWwnOworICBjb25zdCBzY3JpcHQgPSAncmVzb3VyY2VzL2VtcHR5LXdvcmtlci5qcyc7
CisgIGNvbnN0IHJlZ2lzdHJhdGlvbnMgPSBbCisgICAgICBhd2FpdCBzZXJ2aWNlX3dvcmtlcl91
bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCBzY3JpcHQsIHNjb3BlKV07CisgIHQuYWRkX2NsZWFu
dXAoKCkgPT4gcmVnaXN0cmF0aW9uc1swXS51bnJlZ2lzdGVyKCkpOworICBjb25zdCB2YWx1ZSA9
IGF3YWl0IG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLmdldFJlZ2lzdHJhdGlvbnMoKTsKKyAgYXNz
ZXJ0X2FycmF5X2VxdWFscyh2YWx1ZSwgcmVnaXN0cmF0aW9ucywKKyAgICAgICdnZXRSZWdpc3Ry
YXRpb25zIHNob3VsZCByZXNvbHZlIHdpdGggYW4gYXJyYXkgb2YgcmVnaXN0cmF0aW9ucycpOwor
fSwgJ1JlZ2lzdGVyIHRoZW4gZ2V0UmVnaXN0cmF0aW9ucycpOwogCi1wcm9taXNlX3Rlc3QoZnVu
Y3Rpb24odCkgewotICAgIHZhciBzY29wZTEgPSAncmVzb3VyY2VzL3Njb3BlL2dldHJlZ2lzdHJh
dGlvbnMvc2NvcGUxJzsKLSAgICB2YXIgc2NvcGUyID0gJ3Jlc291cmNlcy9zY29wZS9nZXRyZWdp
c3RyYXRpb25zL3Njb3BlMic7Ci0gICAgdmFyIHNjcmlwdCA9ICdyZXNvdXJjZXMvZW1wdHktd29y
a2VyLmpzJzsKLSAgICB2YXIgcmVnaXN0cmF0aW9ucyA9IFtdOwotICAgIHJldHVybiBzZXJ2aWNl
X3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCBzY3JpcHQsIHNjb3BlMSkKLSAgICAg
IC50aGVuKGZ1bmN0aW9uKHIpIHsKLSAgICAgICAgICByZWdpc3RyYXRpb25zLnB1c2gocik7Ci0g
ICAgICAgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQs
IHNjcmlwdCwgc2NvcGUyKTsKLSAgICAgICAgfSkKLSAgICAgIC50aGVuKGZ1bmN0aW9uKHIpIHsK
LSAgICAgICAgICByZWdpc3RyYXRpb25zLnB1c2gocik7Ci0gICAgICAgICAgcmV0dXJuIG5hdmln
YXRvci5zZXJ2aWNlV29ya2VyLmdldFJlZ2lzdHJhdGlvbnMoKTsKLSAgICAgICAgfSkKLSAgICAg
IC50aGVuKGZ1bmN0aW9uKHZhbHVlKSB7Ci0gICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscygK
LSAgICAgICAgICAgIHZhbHVlLAotICAgICAgICAgICAgcmVnaXN0cmF0aW9ucywKLSAgICAgICAg
ICAgICdnZXRSZWdpc3RyYXRpb25zIHNob3VsZCByZXNvbHZlIHdpdGggYXJyYXkgb2YgcmVnaXN0
cmF0aW9ucy4nKTsKLSAgICAgICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcih0
LCBzY29wZTEpOwotICAgICAgICB9KQotICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7Ci0gICAgICAg
ICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXIodCwgc2NvcGUyKTsKLSAgICAgICAg
fSk7Ci0gIH0sICdSZWdpc3RlciBtdWx0aXBsZSB0aW1lcyB0aGVuIGdldFJlZ2lzdHJhdGlvbnMn
KTsKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgY29uc3Qgc2NvcGUxID0gJ3Jlc291cmNl
cy9zY29wZS9nZXRyZWdpc3RyYXRpb25zL3Njb3BlMSc7CisgIGNvbnN0IHNjb3BlMiA9ICdyZXNv
dXJjZXMvc2NvcGUvZ2V0cmVnaXN0cmF0aW9ucy9zY29wZTInOworICBjb25zdCBzY3JpcHQgPSAn
cmVzb3VyY2VzL2VtcHR5LXdvcmtlci5qcyc7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gc2Vydmlj
ZV93b3JrZXJfdW5yZWdpc3Rlcih0LCBzY29wZTEpKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBz
ZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyKHQsIHNjb3BlMikpOwogCi1wcm9taXNlX3Rlc3QoZnVu
Y3Rpb24odCkgewotICAgIHZhciBzY29wZSA9ICdyZXNvdXJjZXMvc2NvcGUvZ2V0cmVnaXN0cmF0
aW9ucy9yZWdpc3Rlci11bnJlZ2lzdGVyJzsKLSAgICB2YXIgc2NyaXB0ID0gJ3Jlc291cmNlcy9l
bXB0eS13b3JrZXIuanMnOwotICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2Fu
ZF9yZWdpc3Rlcih0LCBzY3JpcHQsIHNjb3BlKQotICAgICAgLnRoZW4oZnVuY3Rpb24ocmVnaXN0
cmF0aW9uKSB7Ci0gICAgICAgICAgcmV0dXJuIHJlZ2lzdHJhdGlvbi51bnJlZ2lzdGVyKCk7Ci0g
ICAgICAgIH0pCi0gICAgICAudGhlbihmdW5jdGlvbigpIHsKLSAgICAgICAgICByZXR1cm4gbmF2
aWdhdG9yLnNlcnZpY2VXb3JrZXIuZ2V0UmVnaXN0cmF0aW9ucygpOwotICAgICAgICB9KQotICAg
ICAgLnRoZW4oZnVuY3Rpb24odmFsdWUpIHsKLSAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxz
KAotICAgICAgICAgICAgdmFsdWUsCi0gICAgICAgICAgICBbXSwKLSAgICAgICAgICAgICdnZXRS
ZWdpc3RyYXRpb25zIHNob3VsZCByZXNvbHZlIHdpdGggYW4gZW1wdHkgYXJyYXkuJyk7Ci0gICAg
ICAgIH0pOwotICB9LCAnUmVnaXN0ZXIgdGhlbiBVbnJlZ2lzdGVyIHRoZW4gZ2V0UmVnaXN0cmF0
aW9ucycpOworICBjb25zdCByZWdpc3RyYXRpb25zID0gWworICAgICAgYXdhaXQgc2VydmljZV93
b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgc2NyaXB0LCBzY29wZTEpLAorICAgICAg
YXdhaXQgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgc2NyaXB0LCBz
Y29wZTIpCisgIF07CisgIGNvbnN0IHZhbHVlID0gYXdhaXQgbmF2aWdhdG9yLnNlcnZpY2VXb3Jr
ZXIuZ2V0UmVnaXN0cmF0aW9ucygpOworICBhc3NlcnRfYXJyYXlfZXF1YWxzKHZhbHVlLCByZWdp
c3RyYXRpb25zKTsKK30sICdSZWdpc3RlciBtdWx0aXBsZSB0aW1lcyB0aGVuIGdldFJlZ2lzdHJh
dGlvbnMnKTsKIAotcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKLSAgICB2YXIgc2NvcGUgPSAn
cmVzb3VyY2VzL3Njb3BlL2dldHJlZ2lzdHJhdGlvbnMvcmVnaXN0ZXItdW5yZWdpc3Rlci1jb250
cm9sbGVkJzsKLSAgICB2YXIgc2NyaXB0ID0gJ3Jlc291cmNlcy9lbXB0eS13b3JrZXIuanMnOwot
ICAgIHZhciByZWdpc3RyYXRpb25zOwotICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lz
dGVyX2FuZF9yZWdpc3Rlcih0LCBzY3JpcHQsIHNjb3BlKQotICAgICAgLnRoZW4oZnVuY3Rpb24o
cikgewotICAgICAgICAgIHJlZ2lzdHJhdGlvbiA9IHI7Ci0gICAgICAgICAgcmV0dXJuIHdhaXRf
Zm9yX3N0YXRlKHQsIHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7Ci0gICAg
ICAgIH0pCi0gICAgICAudGhlbihmdW5jdGlvbigpIHsKLSAgICAgICAgICByZXR1cm4gd2l0aF9p
ZnJhbWUoc2NvcGUpOwotICAgICAgICB9KQotICAgICAgLnRoZW4oZnVuY3Rpb24oZikgewotICAg
ICAgICAgIHQuYWRkX2NsZWFudXAoZnVuY3Rpb24oKSB7IGYucmVtb3ZlKCk7IH0pOwotICAgICAg
ICAgIHJldHVybiByZWdpc3RyYXRpb24udW5yZWdpc3RlcigpOwotICAgICAgICB9KQotICAgICAg
LnRoZW4oZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgcmV0dXJuIG5hdmlnYXRvci5zZXJ2aWNlV29y
a2VyLmdldFJlZ2lzdHJhdGlvbnMoKTsKLSAgICAgICAgfSkKLSAgICAgIC50aGVuKGZ1bmN0aW9u
KHZhbHVlKSB7Ci0gICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscygKLSAgICAgICAgICAgIHZh
bHVlLAotICAgICAgICAgICAgW10sCi0gICAgICAgICAgICAnZ2V0UmVnaXN0cmF0aW9ucyBzaG91
bGQgcmVzb2x2ZSB3aXRoIGFuIGVtcHR5IGFycmF5LicpOwotICAgICAgICAgIGFzc2VydF9lcXVh
bHMocmVnaXN0cmF0aW9uLmluc3RhbGxpbmcsIG51bGwpOwotICAgICAgICAgIGFzc2VydF9lcXVh
bHMocmVnaXN0cmF0aW9uLndhaXRpbmcsIG51bGwpOwotICAgICAgICAgIGFzc2VydF9lcXVhbHMo
cmVnaXN0cmF0aW9uLmFjdGl2ZS5zdGF0ZSwgJ2FjdGl2YXRlZCcpOwotICAgICAgICB9KTsKLSAg
fSwgJ1JlZ2lzdGVyIHRoZW4gVW5yZWdpc3RlciB3aXRoIGNvbnRyb2xsZWQgZnJhbWUgdGhlbiBn
ZXRSZWdpc3RyYXRpb25zJyk7Citwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0IHNj
b3BlID0gJ3Jlc291cmNlcy9zY29wZS9nZXRyZWdpc3RyYXRpb25zL3JlZ2lzdGVyLXVucmVnaXN0
ZXInOworICBjb25zdCBzY3JpcHQgPSAncmVzb3VyY2VzL2VtcHR5LXdvcmtlci5qcyc7CisgIGNv
bnN0IHJlZ2lzdHJhdGlvbiA9IGF3YWl0IHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3Jl
Z2lzdGVyKHQsIHNjcmlwdCwgc2NvcGUpOworICBhd2FpdCByZWdpc3RyYXRpb24udW5yZWdpc3Rl
cigpOworICBjb25zdCB2YWx1ZSA9IGF3YWl0IG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLmdldFJl
Z2lzdHJhdGlvbnMoKTsKKyAgYXNzZXJ0X2FycmF5X2VxdWFscygKKyAgICAgIHZhbHVlLCBbXSwg
J2dldFJlZ2lzdHJhdGlvbnMgc2hvdWxkIHJlc29sdmUgd2l0aCBhbiBlbXB0eSBhcnJheS4nKTsK
K30sICdSZWdpc3RlciB0aGVuIFVucmVnaXN0ZXIgdGhlbiBnZXRSZWdpc3RyYXRpb25zJyk7CiAK
LXByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7Ci0gICAgdmFyIGhvc3RfaW5mbyA9IGdldF9ob3N0
X2luZm8oKTsKLSAgICAvLyBSZXdyaXRlIHRoZSB1cmwgdG8gcG9pbnQgdG8gcmVtb3RlIG9yaWdp
bi4KLSAgICB2YXIgZnJhbWVfc2FtZV9vcmlnaW5fdXJsID0gbmV3IFVSTCgicmVzb3VyY2VzL2Zy
YW1lLWZvci1nZXRyZWdpc3RyYXRpb25zLmh0bWwiLCB3aW5kb3cubG9jYXRpb24pOwotICAgIHZh
ciBmcmFtZV91cmwgPSBob3N0X2luZm9bJ0hUVFBTX1JFTU9URV9PUklHSU4nXSArIGZyYW1lX3Nh
bWVfb3JpZ2luX3VybC5wYXRobmFtZTsKLSAgICB2YXIgc2NvcGUgPSAncmVzb3VyY2VzL3Njb3Bl
LWZvci1nZXRyZWdpc3RyYXRpb25zJzsKLSAgICB2YXIgc2NyaXB0ID0gJ3Jlc291cmNlcy9lbXB0
eS13b3JrZXIuanMnOwotICAgIHZhciBmcmFtZTsKLSAgICB2YXIgcmVnaXN0cmF0aW9ucyA9IFtd
OworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25zdCBzY29wZSA9ICdyZXNvdXJjZXMv
c2NvcGUvZ2V0cmVnaXN0cmF0aW9ucy9yZWdpc3Rlci11bnJlZ2lzdGVyLWNvbnRyb2xsZWQnOwor
ICBjb25zdCBzY3JpcHQgPSAncmVzb3VyY2VzL2VtcHR5LXdvcmtlci5qcyc7CisgIGNvbnN0IHJl
Z2lzdHJhdGlvbiA9IGF3YWl0IHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVy
KHQsIHNjcmlwdCwgc2NvcGUpOworICBhd2FpdCB3YWl0X2Zvcl9zdGF0ZSh0LCByZWdpc3RyYXRp
b24uaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOwogCi0gICAgLy8gTG9hZHMgYW4gaWZyYW1lIGFu
ZCB3YWl0cyBmb3IgJ3JlYWR5JyBtZXNzYWdlIGZyb20gaXQgdG8gcmVzb2x2ZSBwcm9taXNlLgot
ICAgIC8vIENhbGxlciBpcyByZXNwb25zaWJsZSBmb3IgcmVtb3ZpbmcgZnJhbWUuCi0gICAgZnVu
Y3Rpb24gd2l0aF9pZnJhbWVfcmVhZHkodXJsKSB7Ci0gICAgICAgIHJldHVybiBuZXcgUHJvbWlz
ZShmdW5jdGlvbihyZXNvbHZlKSB7Ci0gICAgICAgICAgICB2YXIgZnJhbWUgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCdpZnJhbWUnKTsKLSAgICAgICAgICAgIGZyYW1lLnNyYyA9IHVybDsKLSAg
ICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgZnVuY3Rpb24gb25N
ZXNzYWdlKGUpIHsKLSAgICAgICAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21l
c3NhZ2UnLCBvbk1lc3NhZ2UpOwotICAgICAgICAgICAgICBpZiAoZS5kYXRhID09ICdyZWFkeScp
IHsKLSAgICAgICAgICAgICAgICByZXNvbHZlKGZyYW1lKTsKLSAgICAgICAgICAgICAgfQotICAg
ICAgICAgICAgfSk7Ci0gICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGZyYW1l
KTsKLSAgICAgICAgfSk7Ci0gICAgfQorICAvLyBDcmVhdGUgYSBmcmFtZSBjb250cm9sbGVkIGJ5
IHRoZSBzZXJ2aWNlIHdvcmtlciBhbmQgdW5yZWdpc3RlciB0aGUKKyAgLy8gd29ya2VyLgorICBj
b25zdCBmcmFtZSA9IGF3YWl0IHdpdGhfaWZyYW1lKHNjb3BlKTsKKyAgdC5hZGRfY2xlYW51cCgo
KSA9PiBmcmFtZS5yZW1vdmUoKSk7CisgIGF3YWl0IHJlZ2lzdHJhdGlvbi51bnJlZ2lzdGVyKCk7
CiAKLSAgICAvLyBXZSBuZWVkIHRoaXMgc3BlY2lhbCBmcmFtZSBsb2FkaW5nIGZ1bmN0aW9uIGJl
Y2F1c2UgdGhlIGZyYW1lIGlzIGdvaW5nCi0gICAgLy8gdG8gcmVnaXN0ZXIgaXQncyBvd24gc2Vy
dmljZSB3b3JrZXIgYW5kIHRoZXJlIGlzIHRoZSBwb3NzaWJpbGl0eSB0aGF0IHRoYXQKLSAgICAv
LyByZWdpc3RlcigpIGZpbmlzaGVzIGFmdGVyIHRoZSByZWdpc3RlcigpIGZvciB0aGUgc2FtZSBk
b21haW4gbGF0ZXIgaW4gdGhlCi0gICAgLy8gdGVzdC4gU28gd2UgaGF2ZSB0byB3YWl0IHVudGls
IHRoZSBjcm9zcyBvcmlnaW4gcmVnaXN0ZXIoKSBpcyBkb25lLCBhbmQgbm90Ci0gICAgLy8ganVz
dCB1bnRpbCB0aGUgZnJhbWUgbG9hZHMuCi0gICAgcmV0dXJuIHdpdGhfaWZyYW1lX3JlYWR5KGZy
YW1lX3VybCkKLSAgICAgIC50aGVuKGZ1bmN0aW9uKGYpIHsKLSAgICAgICAgICB0LmFkZF9jbGVh
bnVwKGZ1bmN0aW9uKCkgeyBmLnJlbW92ZSgpOyB9KTsKLSAgICAgICAgICBmcmFtZSA9IGY7Ci0g
ICAgICAgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQs
IHNjcmlwdCwgc2NvcGUpOwotICAgICAgICB9KQotICAgICAgLnRoZW4oZnVuY3Rpb24ocikgewot
ICAgICAgICAgIHJlZ2lzdHJhdGlvbnMucHVzaChyKTsKLSAgICAgICAgICByZXR1cm4gbmF2aWdh
dG9yLnNlcnZpY2VXb3JrZXIuZ2V0UmVnaXN0cmF0aW9ucygpOwotICAgICAgICB9KQotICAgICAg
LnRoZW4oZnVuY3Rpb24odmFsdWUpIHsKLSAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKAot
ICAgICAgICAgICAgdmFsdWUsCi0gICAgICAgICAgICByZWdpc3RyYXRpb25zLAotICAgICAgICAg
ICAgJ2dldFJlZ2lzdHJhdGlvbnMgc2hvdWxkIG9ubHkgcmV0dXJuIHNhbWUgb3JpZ2luIHJlZ2lz
dHJhdGlvbnMuJyk7CisgIGNvbnN0IHZhbHVlID0gYXdhaXQgbmF2aWdhdG9yLnNlcnZpY2VXb3Jr
ZXIuZ2V0UmVnaXN0cmF0aW9ucygpOworICBhc3NlcnRfYXJyYXlfZXF1YWxzKAorICAgICAgdmFs
dWUsIFtdLAorICAgICAgJ2dldFJlZ2lzdHJhdGlvbnMgc2hvdWxkIHJlc29sdmUgd2l0aCBhbiBl
bXB0eSBhcnJheS4nKTsKKyAgYXNzZXJ0X2VxdWFscyhyZWdpc3RyYXRpb24uaW5zdGFsbGluZywg
bnVsbCk7CisgIGFzc2VydF9lcXVhbHMocmVnaXN0cmF0aW9uLndhaXRpbmcsIG51bGwpOworICBh
c3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi5hY3RpdmUuc3RhdGUsICdhY3RpdmF0ZWQnKTsKK30s
ICdSZWdpc3RlciB0aGVuIFVucmVnaXN0ZXIgd2l0aCBjb250cm9sbGVkIGZyYW1lIHRoZW4gZ2V0
UmVnaXN0cmF0aW9ucycpOwogCi0gICAgICAgICAgdmFyIGNoYW5uZWwgPSBuZXcgTWVzc2FnZUNo
YW5uZWwoKTsKLSAgICAgICAgICB2YXIgcmVzb2x2ZTsKLSAgICAgICAgICB2YXIgcCA9IG5ldyBQ
cm9taXNlKGZ1bmN0aW9uKHIpIHsgcmVzb2x2ZSA9IHI7IH0pOworcHJvbWlzZV90ZXN0KGFzeW5j
IHQgPT4geworICBjb25zdCBob3N0X2luZm8gPSBnZXRfaG9zdF9pbmZvKCk7CisgIC8vIFJld3Jp
dGUgdGhlIHVybCB0byBwb2ludCB0byByZW1vdGUgb3JpZ2luLgorICBjb25zdCBmcmFtZV9zYW1l
X29yaWdpbl91cmwgPSBuZXcgVVJMKCJyZXNvdXJjZXMvZnJhbWUtZm9yLWdldHJlZ2lzdHJhdGlv
bnMuaHRtbCIsIHdpbmRvdy5sb2NhdGlvbik7CisgIGNvbnN0IGZyYW1lX3VybCA9IGhvc3RfaW5m
b1snSFRUUFNfUkVNT1RFX09SSUdJTiddICsgZnJhbWVfc2FtZV9vcmlnaW5fdXJsLnBhdGhuYW1l
OworICBjb25zdCBzY29wZSA9ICdyZXNvdXJjZXMvc2NvcGUtZm9yLWdldHJlZ2lzdHJhdGlvbnMn
OworICBjb25zdCBzY3JpcHQgPSAncmVzb3VyY2VzL2VtcHR5LXdvcmtlci5qcyc7CiAKLSAgICAg
ICAgICBjaGFubmVsLnBvcnQxLm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAg
IGlmIChlLmRhdGEgPT0gJ3VucmVnaXN0ZXJlZCcpCi0gICAgICAgICAgICAgIHJlc29sdmUoKTsK
LSAgICAgICAgICB9OwotICAgICAgICAgIGZyYW1lLmNvbnRlbnRXaW5kb3cucG9zdE1lc3NhZ2Uo
J3VucmVnaXN0ZXInLCAnKicsIFtjaGFubmVsLnBvcnQyXSk7Ci0gICAgICAgICAgcmV0dXJuIHA7
Ci0gICAgICAgIH0pCi0gICAgICAudGhlbihmdW5jdGlvbigpIHsKLSAgICAgICAgICByZXR1cm4g
c2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcih0LCBzY29wZSk7Ci0gICAgICAgIH0pOwotICB9LCAn
Z2V0UmVnaXN0cmF0aW9ucyBwcm9taXNlIHJlc29sdmVzIG9ubHkgd2l0aCBzYW1lIG9yaWdpbiBy
ZWdpc3RyYXRpb25zLicpOworICAvLyBMb2FkcyBhbiBpZnJhbWUgYW5kIHdhaXRzIGZvciAncmVh
ZHknIG1lc3NhZ2UgZnJvbSBpdCB0byByZXNvbHZlIHByb21pc2UuCisgIC8vIENhbGxlciBpcyBy
ZXNwb25zaWJsZSBmb3IgcmVtb3ZpbmcgZnJhbWUuCisgIGZ1bmN0aW9uIHdpdGhfaWZyYW1lX3Jl
YWR5KHVybCkgeworICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4geworICAgICAg
ICAgIGNvbnN0IGZyYW1lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaWZyYW1lJyk7CisgICAg
ICAgICAgZnJhbWUuc3JjID0gdXJsOworICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVy
KCdtZXNzYWdlJywgZnVuY3Rpb24gb25NZXNzYWdlKGUpIHsKKyAgICAgICAgICAgIHdpbmRvdy5y
ZW1vdmVFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgb25NZXNzYWdlKTsKKyAgICAgICAgICAgIGlm
IChlLmRhdGEgPT0gJ3JlYWR5JykgeworICAgICAgICAgICAgICByZXNvbHZlKGZyYW1lKTsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgICB9KTsKKyAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVu
ZENoaWxkKGZyYW1lKTsKKyAgICAgIH0pOworICB9CisKKyAgLy8gV2UgbmVlZCB0aGlzIHNwZWNp
YWwgZnJhbWUgbG9hZGluZyBmdW5jdGlvbiBiZWNhdXNlIHRoZSBmcmFtZSBpcyBnb2luZworICAv
LyB0byByZWdpc3RlciBpdCdzIG93biBzZXJ2aWNlIHdvcmtlciBhbmQgdGhlcmUgaXMgdGhlIHBv
c3NpYmlsaXR5IHRoYXQgdGhhdAorICAvLyByZWdpc3RlcigpIGZpbmlzaGVzIGFmdGVyIHRoZSBy
ZWdpc3RlcigpIGZvciB0aGUgc2FtZSBkb21haW4gbGF0ZXIgaW4gdGhlCisgIC8vIHRlc3QuIFNv
IHdlIGhhdmUgdG8gd2FpdCB1bnRpbCB0aGUgY3Jvc3Mgb3JpZ2luIHJlZ2lzdGVyKCkgaXMgZG9u
ZSwgYW5kIG5vdAorICAvLyBqdXN0IHVudGlsIHRoZSBmcmFtZSBsb2Fkcy4KKyAgY29uc3QgZnJh
bWUgPSBhd2FpdCB3aXRoX2lmcmFtZV9yZWFkeShmcmFtZV91cmwpOworICB0LmFkZF9jbGVhbnVw
KGFzeW5jICgpID0+IHsKKyAgICAvLyBXYWl0IHVudGlsIHRoZSBjcm9zcy1vcmlnaW4gd29ya2Vy
IGlzIHVucmVnaXN0ZXJlZC4KKyAgICBsZXQgcmVzb2x2ZTsKKyAgICBjb25zdCBjaGFubmVsID0g
bmV3IE1lc3NhZ2VDaGFubmVsKCk7CisgICAgY2hhbm5lbC5wb3J0MS5vbm1lc3NhZ2UgPSBlID0+
IHsKKyAgICAgIGlmIChlLmRhdGEgPT0gJ3VucmVnaXN0ZXJlZCcpCisgICAgICAgIHJlc29sdmUo
KTsKKyAgICB9OworICAgIGZyYW1lLmNvbnRlbnRXaW5kb3cucG9zdE1lc3NhZ2UoJ3VucmVnaXN0
ZXInLCAnKicsIFtjaGFubmVsLnBvcnQyXSk7CisgICAgYXdhaXQgbmV3IFByb21pc2UociA9PiB7
IHJlc29sdmUgPSByOyB9KTsKKworICAgIGZyYW1lLnJlbW92ZSgpOworICB9KTsKKworICBjb25z
dCByZWdpc3RyYXRpb25zID0gWworICAgIGF3YWl0IHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJf
YW5kX3JlZ2lzdGVyKHQsIHNjcmlwdCwgc2NvcGUpXTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBy
ZWdpc3RyYXRpb25zWzBdLnVucmVnaXN0ZXIoKSk7CisgIGNvbnN0IHZhbHVlID0gYXdhaXQgbmF2
aWdhdG9yLnNlcnZpY2VXb3JrZXIuZ2V0UmVnaXN0cmF0aW9ucygpOworICBhc3NlcnRfYXJyYXlf
ZXF1YWxzKAorICAgICAgdmFsdWUsIHJlZ2lzdHJhdGlvbnMsCisgICAgICAnZ2V0UmVnaXN0cmF0
aW9ucyBzaG91bGQgb25seSByZXR1cm4gc2FtZSBvcmlnaW4gcmVnaXN0cmF0aW9ucy4nKTsKK30s
ICdnZXRSZWdpc3RyYXRpb25zIHByb21pc2UgcmVzb2x2ZXMgb25seSB3aXRoIHNhbWUgb3JpZ2lu
IHJlZ2lzdHJhdGlvbnMuJyk7CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL2ltcG9ydC1zY3JpcHRzLXJlZGlyZWN0Lmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9pbXBvcnQtc2NyaXB0cy1yZWRpcmVjdC5odHRwcy5odG1sCmluZGV4IGU1MmFkZmEzNzgwMDg1
M2E4NmRhOWY1ZjMwYmMwZGQ0MWU0YWZjYjYuLjA3ZWE0OTQzOWViYThmOTc2MmIyYmMxN2I1YWUy
MzQ2ZDlkMTUzOTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ltcG9ydC1zY3JpcHRz
LXJlZGlyZWN0Lmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvaW1wb3J0LXNjcmlw
dHMtcmVkaXJlY3QuaHR0cHMuaHRtbApAQCAtMSw2ICsxLDcgQEAKIDwhRE9DVFlQRSBodG1sPgog
PG1ldGEgY2hhcnNldD0idXRmLTgiPgogPHRpdGxlPlRlc3RzIGZvciBpbXBvcnRTY3JpcHRzOiBy
ZWRpcmVjdDwvdGl0bGU+Cis8c2NyaXB0IHNyYz0iL2NvbW1vbi91dGlscy5qcyI+PC9zY3JpcHQ+
CiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CiA8c2Ny
aXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CiA8c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL3Rlc3QtaGVscGVycy5zdWIuanMiPjwvc2NyaXB0PgpAQCAtMjAs
MTQgKzIxLDM1IEBAIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKICAgICBhd2FpdCBzZXJ2aWNl
X3dvcmtlcl91bnJlZ2lzdGVyKHQsIHNjb3BlKTsKICAgICBsZXQgcmVnID0gYXdhaXQgbmF2aWdh
dG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoCiAgICAgICAncmVzb3VyY2VzL2ltcG9ydC1zY3Jp
cHRzLXJlZGlyZWN0LXdvcmtlci5qcycsIHsgc2NvcGU6IHNjb3BlIH0pOwotICAgIGFzc2VydF9u
b3RfZXF1YWxzKHJlZy5pbnN0YWxsaW5nLCBudWxsLCAnd29ya2VyIGlzIGluc3RhbGxpbmcnKTsK
KyAgICBhc3NlcnRfbm90X2VxdWFscyhyZWcuaW5zdGFsbGluZywgbnVsbCwgJ2JlZm9yZSB1cGRh
dGUnKTsKICAgICBhd2FpdCB3YWl0X2Zvcl9zdGF0ZSh0LCByZWcuaW5zdGFsbGluZywgJ2FjdGl2
YXRlZCcpOwogICAgIGF3YWl0IFByb21pc2UuYWxsKFsKICAgICAgIHdhaXRfZm9yX3VwZGF0ZSh0
LCByZWcpLAogICAgICAgcmVnLnVwZGF0ZSgpCiAgICAgXSk7Ci0gICAgYXNzZXJ0X25vdF9lcXVh
bHMocmVnLmluc3RhbGxpbmcsIG51bGwsICd3b3JrZXIgaXMgaW5zdGFsbGluZycpOworICAgIGFz
c2VydF9ub3RfZXF1YWxzKHJlZy5pbnN0YWxsaW5nLCBudWxsLCAnYWZ0ZXIgdXBkYXRlJyk7CiAg
ICAgYXdhaXQgcmVnLnVucmVnaXN0ZXIoKTsKLSAgfSwgJ2ltcG9ydFNjcmlwdHMoKSBzdXBwb3J0
cyByZWRpcmVjdHMgYW5kIGNhbiBiZSB1cGRhdGVkJyk7CisgIH0sCisgICJhbiBpbXBvcnRlZCBz
Y3JpcHQgcmVkaXJlY3RzLCBhbmQgdGhlIGJvZHkgY2hhbmdlcyBkdXJpbmcgdGhlIHVwZGF0ZSBj
aGVjayIpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgY29uc3Qga2V5ID0gdG9r
ZW4oKTsKKyAgICBjb25zdCBzY29wZSA9ICdyZXNvdXJjZXMvaW1wb3J0LXNjcmlwdHMtcmVkaXJl
Y3QnOworICAgIGF3YWl0IHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXIodCwgc2NvcGUpOworICAg
IGxldCByZWcgPSBhd2FpdCBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3RlcigKKyAgICAg
IGByZXNvdXJjZXMvaW1wb3J0LXNjcmlwdHMtcmVkaXJlY3Qtb24tc2Vjb25kLXRpbWUtd29ya2Vy
LmpzP0tleT0ke2tleX1gLAorICAgICAgeyBzY29wZSB9KTsKKyAgICB0LmFkZF9jbGVhbnVwKCgp
ID0+IHJlZy51bnJlZ2lzdGVyKCkpOworCisgICAgYXNzZXJ0X25vdF9lcXVhbHMocmVnLmluc3Rh
bGxpbmcsIG51bGwsICdiZWZvcmUgdXBkYXRlJyk7CisgICAgYXdhaXQgd2FpdF9mb3Jfc3RhdGUo
dCwgcmVnLmluc3RhbGxpbmcsICdhY3RpdmF0ZWQnKTsKKyAgICBhd2FpdCBQcm9taXNlLmFsbChb
CisgICAgICB3YWl0X2Zvcl91cGRhdGUodCwgcmVnKSwKKyAgICAgIHJlZy51cGRhdGUoKQorICAg
IF0pOworICAgIGFzc2VydF9ub3RfZXF1YWxzKHJlZy5pbnN0YWxsaW5nLCBudWxsLCAnYWZ0ZXIg
dXBkYXRlJyk7CisgIH0sCisgICJhbiBpbXBvcnRlZCBzY3JpcHQgZG9lc24ndCByZWRpcmVjdCBp
bml0aWFsbHksIHRoZW4gcmVkaXJlY3RzIGR1cmluZyAiICsKKyAgInRoZSB1cGRhdGUgY2hlY2sg
YW5kIHRoZSBib2R5IGNoYW5nZXMiKTsKIDwvc2NyaXB0PgogPC9ib2R5PgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvaW50ZXJmYWNlcy1zdy5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9pbnRlcmZhY2VzLXN3Lmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCA1NGVh
NjcyYmQ3NTIwZmIzMjE0MTZlMzVhMTgwYmFjMjY3MDRlOTQyLi5lZWU4NzcyOTQ0OTQyYzdhOTM1
NjIyMDRmZTcyYzUwOWQxNTdlMTZiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9pbnRl
cmZhY2VzLXN3Lmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9pbnRl
cmZhY2VzLXN3Lmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMTMsNiArMTMsNyBAQCBQQVNTIFNlcnZp
Y2VXb3JrZXIgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNl
IHByb3RvdHlwZSBvYgogUEFTUyBTZXJ2aWNlV29ya2VyIGludGVyZmFjZTogYXR0cmlidXRlIHNj
cmlwdFVSTCAKIFBBU1MgU2VydmljZVdvcmtlciBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBzdGF0ZSAK
IFBBU1MgU2VydmljZVdvcmtlciBpbnRlcmZhY2U6IG9wZXJhdGlvbiBwb3N0TWVzc2FnZShhbnks
IFtvYmplY3QgT2JqZWN0XSkgCitQQVNTIFNlcnZpY2VXb3JrZXIgaW50ZXJmYWNlOiBvcGVyYXRp
b24gcG9zdE1lc3NhZ2UoYW55LCBQb3N0TWVzc2FnZU9wdGlvbnMpIAogUEFTUyBTZXJ2aWNlV29y
a2VyIGludGVyZmFjZTogYXR0cmlidXRlIG9uc3RhdGVjaGFuZ2UgCiBQQVNTIFNlcnZpY2VXb3Jr
ZXJSZWdpc3RyYXRpb24gaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50
ZXJmYWNlIG9iamVjdCAKIFBBU1MgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbiBpbnRlcmZhY2Ug
b2JqZWN0IGxlbmd0aCAKQEAgLTIzLDYgKzI0LDcgQEAgUEFTUyBTZXJ2aWNlV29ya2VyUmVnaXN0
cmF0aW9uIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZQog
UEFTUyBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uIGludGVyZmFjZTogYXR0cmlidXRlIGluc3Rh
bGxpbmcgCiBQQVNTIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24gaW50ZXJmYWNlOiBhdHRyaWJ1
dGUgd2FpdGluZyAKIFBBU1MgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbiBpbnRlcmZhY2U6IGF0
dHJpYnV0ZSBhY3RpdmUgCitGQUlMIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24gaW50ZXJmYWNl
OiBhdHRyaWJ1dGUgbmF2aWdhdGlvblByZWxvYWQgYXNzZXJ0X3RydWU6IFRoZSBwcm90b3R5cGUg
b2JqZWN0IG11c3QgaGF2ZSBhIHByb3BlcnR5ICJuYXZpZ2F0aW9uUHJlbG9hZCIgZXhwZWN0ZWQg
dHJ1ZSBnb3QgZmFsc2UKIFBBU1MgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbiBpbnRlcmZhY2U6
IGF0dHJpYnV0ZSBzY29wZSAKIFBBU1MgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbiBpbnRlcmZh
Y2U6IGF0dHJpYnV0ZSB1cGRhdGVWaWFDYWNoZSAKIFBBU1MgU2VydmljZVdvcmtlclJlZ2lzdHJh
dGlvbiBpbnRlcmZhY2U6IG9wZXJhdGlvbiB1cGRhdGUoKSAKQEAgLTMzLDExICszNSwyMiBAQCBQ
QVNTIFN0cmluZ2lmaWNhdGlvbiBvZiBzZWxmLnJlZ2lzdHJhdGlvbgogUEFTUyBTZXJ2aWNlV29y
a2VyUmVnaXN0cmF0aW9uIGludGVyZmFjZTogc2VsZi5yZWdpc3RyYXRpb24gbXVzdCBpbmhlcml0
IHByb3BlcnR5ICJpbnN0YWxsaW5nIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgU2Vydmlj
ZVdvcmtlclJlZ2lzdHJhdGlvbiBpbnRlcmZhY2U6IHNlbGYucmVnaXN0cmF0aW9uIG11c3QgaW5o
ZXJpdCBwcm9wZXJ0eSAid2FpdGluZyIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCiBQQVNTIFNlcnZp
Y2VXb3JrZXJSZWdpc3RyYXRpb24gaW50ZXJmYWNlOiBzZWxmLnJlZ2lzdHJhdGlvbiBtdXN0IGlu
aGVyaXQgcHJvcGVydHkgImFjdGl2ZSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitGQUlMIFNlcnZp
Y2VXb3JrZXJSZWdpc3RyYXRpb24gaW50ZXJmYWNlOiBzZWxmLnJlZ2lzdHJhdGlvbiBtdXN0IGlu
aGVyaXQgcHJvcGVydHkgIm5hdmlnYXRpb25QcmVsb2FkIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBh
c3NlcnRfaW5oZXJpdHM6IHByb3BlcnR5ICJuYXZpZ2F0aW9uUHJlbG9hZCIgbm90IGZvdW5kIGlu
IHByb3RvdHlwZSBjaGFpbgogUEFTUyBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uIGludGVyZmFj
ZTogc2VsZi5yZWdpc3RyYXRpb24gbXVzdCBpbmhlcml0IHByb3BlcnR5ICJzY29wZSIgd2l0aCB0
aGUgcHJvcGVyIHR5cGUgCiBQQVNTIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24gaW50ZXJmYWNl
OiBzZWxmLnJlZ2lzdHJhdGlvbiBtdXN0IGluaGVyaXQgcHJvcGVydHkgInVwZGF0ZVZpYUNhY2hl
IiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbiBp
bnRlcmZhY2U6IHNlbGYucmVnaXN0cmF0aW9uIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAidXBkYXRl
KCkiIHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9u
IGludGVyZmFjZTogc2VsZi5yZWdpc3RyYXRpb24gbXVzdCBpbmhlcml0IHByb3BlcnR5ICJ1bnJl
Z2lzdGVyKCkiIHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBTZXJ2aWNlV29ya2VyUmVnaXN0
cmF0aW9uIGludGVyZmFjZTogc2VsZi5yZWdpc3RyYXRpb24gbXVzdCBpbmhlcml0IHByb3BlcnR5
ICJvbnVwZGF0ZWZvdW5kIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK0ZBSUwgTmF2aWdhdGlvblBy
ZWxvYWRNYW5hZ2VyIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVy
ZmFjZSBvYmplY3QgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBw
cm9wZXJ0eSAiTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIiBleHBlY3RlZCBwcm9wZXJ0eSAiTmF2
aWdhdGlvblByZWxvYWRNYW5hZ2VyIiBtaXNzaW5nCitGQUlMIE5hdmlnYXRpb25QcmVsb2FkTWFu
YWdlciBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aCBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRv
ZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIiIGV4cGVj
dGVkIHByb3BlcnR5ICJOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIiIG1pc3NpbmcKK0ZBSUwgTmF2
aWdhdGlvblByZWxvYWRNYW5hZ2VyIGludGVyZmFjZSBvYmplY3QgbmFtZSBhc3NlcnRfb3duX3By
b3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJOYXZpZ2F0aW9uUHJlbG9h
ZE1hbmFnZXIiIGV4cGVjdGVkIHByb3BlcnR5ICJOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIiIG1p
c3NpbmcKK0ZBSUwgTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIGludGVyZmFjZTogZXhpc3RlbmNl
IGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IGFzc2VydF9vd25f
cHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIk5hdmlnYXRpb25QcmVs
b2FkTWFuYWdlciIgZXhwZWN0ZWQgcHJvcGVydHkgIk5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciIg
bWlzc2luZworRkFJTCBOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIgaW50ZXJmYWNlOiBleGlzdGVu
Y2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyAiY29uc3Ry
dWN0b3IiIHByb3BlcnR5IGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBv
d24gcHJvcGVydHkgIk5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciIgZXhwZWN0ZWQgcHJvcGVydHkg
Ik5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciIgbWlzc2luZworRkFJTCBOYXZpZ2F0aW9uUHJlbG9h
ZE1hbmFnZXIgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNl
IHByb3RvdHlwZSBvYmplY3QncyBAQHVuc2NvcGFibGVzIHByb3BlcnR5IGFzc2VydF9vd25fcHJv
cGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIk5hdmlnYXRpb25QcmVsb2Fk
TWFuYWdlciIgZXhwZWN0ZWQgcHJvcGVydHkgIk5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciIgbWlz
c2luZworRkFJTCBOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIgaW50ZXJmYWNlOiBvcGVyYXRpb24g
ZW5hYmxlKCkgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9w
ZXJ0eSAiTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIiBleHBlY3RlZCBwcm9wZXJ0eSAiTmF2aWdh
dGlvblByZWxvYWRNYW5hZ2VyIiBtaXNzaW5nCitGQUlMIE5hdmlnYXRpb25QcmVsb2FkTWFuYWdl
ciBpbnRlcmZhY2U6IG9wZXJhdGlvbiBkaXNhYmxlKCkgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2Vs
ZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIiBl
eHBlY3RlZCBwcm9wZXJ0eSAiTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIiBtaXNzaW5nCitGQUlM
IE5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciBpbnRlcmZhY2U6IG9wZXJhdGlvbiBzZXRIZWFkZXJW
YWx1ZShCeXRlU3RyaW5nKSBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUg
b3duIHByb3BlcnR5ICJOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIiIGV4cGVjdGVkIHByb3BlcnR5
ICJOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIiIG1pc3NpbmcKK0ZBSUwgTmF2aWdhdGlvblByZWxv
YWRNYW5hZ2VyIGludGVyZmFjZTogb3BlcmF0aW9uIGdldFN0YXRlKCkgYXNzZXJ0X293bl9wcm9w
ZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiTmF2aWdhdGlvblByZWxvYWRN
YW5hZ2VyIiBleHBlY3RlZCBwcm9wZXJ0eSAiTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIiBtaXNz
aW5nCiBQQVNTIFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBh
bmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IAogUEFTUyBTZXJ2aWNlV29ya2VyR2xv
YmFsU2NvcGUgaW50ZXJmYWNlIG9iamVjdCBsZW5ndGggCiBQQVNTIFNlcnZpY2VXb3JrZXJHbG9i
YWxTY29wZSBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUgCkBAIC01Miw2ICs2NSw3IEBAIFBBU1MgU2Vy
dmljZVdvcmtlckdsb2JhbFNjb3BlIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVz
IG9mIGludGVyZmFjZSBwCiBQQVNTIFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSBpbnRlcmZhY2U6
IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdz
IEBAdW5zY29wYWJsZXMgcHJvcGVydHkgCiBQQVNTIFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSBp
bnRlcmZhY2U6IGF0dHJpYnV0ZSBjbGllbnRzIAogUEFTUyBTZXJ2aWNlV29ya2VyR2xvYmFsU2Nv
cGUgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgcmVnaXN0cmF0aW9uIAorRkFJTCBTZXJ2aWNlV29ya2Vy
R2xvYmFsU2NvcGUgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgc2VydmljZVdvcmtlciBhc3NlcnRfb3du
X3Byb3BlcnR5OiBUaGUgZ2xvYmFsIG9iamVjdCBtdXN0IGhhdmUgYSBwcm9wZXJ0eSAic2Vydmlj
ZVdvcmtlciIgZXhwZWN0ZWQgcHJvcGVydHkgInNlcnZpY2VXb3JrZXIiIG1pc3NpbmcKIFBBU1Mg
U2VydmljZVdvcmtlckdsb2JhbFNjb3BlIGludGVyZmFjZTogb3BlcmF0aW9uIHNraXBXYWl0aW5n
KCkgCiBQQVNTIFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBv
bmluc3RhbGwgCiBQQVNTIFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSBpbnRlcmZhY2U6IGF0dHJp
YnV0ZSBvbmFjdGl2YXRlIApAQCAtNjgsNiArODIsNyBAQCBQQVNTIFNlcnZpY2VXb3JrZXJHbG9i
YWxTY29wZSBtdXN0IGJlIHByaW1hcnkgaW50ZXJmYWNlIG9mIHNlbGYKIFBBU1MgU3RyaW5naWZp
Y2F0aW9uIG9mIHNlbGYgCiBQQVNTIFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSBpbnRlcmZhY2U6
IHNlbGYgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJjbGllbnRzIiB3aXRoIHRoZSBwcm9wZXIgdHlw
ZSAKIFBBU1MgU2VydmljZVdvcmtlckdsb2JhbFNjb3BlIGludGVyZmFjZTogc2VsZiBtdXN0IGlu
aGVyaXQgcHJvcGVydHkgInJlZ2lzdHJhdGlvbiIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitGQUlM
IFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSBpbnRlcmZhY2U6IHNlbGYgbXVzdCBpbmhlcml0IHBy
b3BlcnR5ICJzZXJ2aWNlV29ya2VyIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBhc3NlcnRfb3duX3By
b3BlcnR5OiBleHBlY3RlZCBwcm9wZXJ0eSAic2VydmljZVdvcmtlciIgbWlzc2luZwogUEFTUyBT
ZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUgaW50ZXJmYWNlOiBzZWxmIG11c3QgaW5oZXJpdCBwcm9w
ZXJ0eSAic2tpcFdhaXRpbmcoKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCiBQQVNTIFNlcnZpY2VX
b3JrZXJHbG9iYWxTY29wZSBpbnRlcmZhY2U6IHNlbGYgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJv
bmluc3RhbGwiIHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBTZXJ2aWNlV29ya2VyR2xvYmFs
U2NvcGUgaW50ZXJmYWNlOiBzZWxmIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAib25hY3RpdmF0ZSIg
d2l0aCB0aGUgcHJvcGVyIHR5cGUgCkBAIC04NSw2ICsxMDAsNyBAQCBQQVNTIENsaWVudCBpbnRl
cmZhY2U6IGF0dHJpYnV0ZSBmcmFtZVR5cGUKIFBBU1MgQ2xpZW50IGludGVyZmFjZTogYXR0cmli
dXRlIGlkIAogUEFTUyBDbGllbnQgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgdHlwZSAKIFBBU1MgQ2xp
ZW50IGludGVyZmFjZTogb3BlcmF0aW9uIHBvc3RNZXNzYWdlKGFueSwgW29iamVjdCBPYmplY3Rd
KSAKK1BBU1MgQ2xpZW50IGludGVyZmFjZTogb3BlcmF0aW9uIHBvc3RNZXNzYWdlKGFueSwgUG9z
dE1lc3NhZ2VPcHRpb25zKSAKIFBBU1MgV2luZG93Q2xpZW50IGludGVyZmFjZTogZXhpc3RlbmNl
IGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgCiBQQVNTIFdpbmRvd0NsaWVudCBp
bnRlcmZhY2Ugb2JqZWN0IGxlbmd0aCAKIFBBU1MgV2luZG93Q2xpZW50IGludGVyZmFjZSBvYmpl
Y3QgbmFtZSAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ludGVyZmFjZXMtc3cuaHR0
cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ludGVyZmFjZXMtc3cuaHR0cHMuaHRtbAppbmRl
eCA1MGM3NmQzMDZkYzJmNDNlYWMwZjRkODI3ZTliNzI0NjRiNjMyMjBjLi43YmZmNmFjMTA3ZTNk
ZTBhZTEyMDdmNDc3YjlmOTQwYWQ0MDRjZDIxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9pbnRlcmZhY2VzLXN3Lmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvaW50ZXJm
YWNlcy1zdy5odHRwcy5odG1sCkBAIC02LDYgKzYsOCBAQAogPHNjcmlwdD4KICd1c2Ugc3RyaWN0
JzsKIAorLy8gTk9URTogYWZmZWN0ZWQgd2hlbiAncmVzb3VyY2VzL2ludGVyZmFjZXMtd29ya2Vy
LnN1Yi5qcycgc3JjcyBjaGFuZ2U6CisvLyBjb25zdCBzcmNzID0gWydkb20nLCAnaHRtbCcsICdz
ZXJ2aWNlLXdvcmtlcnMnXTsKIHNlcnZpY2Vfd29ya2VyX3Rlc3QoCiAgICdyZXNvdXJjZXMvaW50
ZXJmYWNlcy13b3JrZXIuc3ViLmpzJywKICAgJ0ludGVyZmFjZXMgYW5kIGF0dHJpYnV0ZXMgaW4g
U2VydmljZVdvcmtlckdsb2JhbFNjb3BlJyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9pbnRlcmZhY2VzLXdpbmRvdy5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9pbnRlcmZhY2VzLXdpbmRvdy5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggMDBhMjI4YzExMTk0
Yzc4OGMwMzMwMWQwZGJiNGQ1ODgxMDQ4ZWJkYS4uOGYxODk5OTQ0MTRkMGM2MTFkNzY3ZGUyOTZl
M2UyYTQ3NjAwMTAxMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvaW50ZXJmYWNlcy13
aW5kb3cuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ludGVyZmFj
ZXMtd2luZG93Lmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMTEsNiArMTEsNyBAQCBQQVNTIFNlcnZp
Y2VXb3JrZXIgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNl
IHByb3RvdHlwZSBvYgogUEFTUyBTZXJ2aWNlV29ya2VyIGludGVyZmFjZTogYXR0cmlidXRlIHNj
cmlwdFVSTCAKIFBBU1MgU2VydmljZVdvcmtlciBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBzdGF0ZSAK
IFBBU1MgU2VydmljZVdvcmtlciBpbnRlcmZhY2U6IG9wZXJhdGlvbiBwb3N0TWVzc2FnZShhbnks
IFtvYmplY3QgT2JqZWN0XSkgCitQQVNTIFNlcnZpY2VXb3JrZXIgaW50ZXJmYWNlOiBvcGVyYXRp
b24gcG9zdE1lc3NhZ2UoYW55LCBQb3N0TWVzc2FnZU9wdGlvbnMpIAogUEFTUyBTZXJ2aWNlV29y
a2VyIGludGVyZmFjZTogYXR0cmlidXRlIG9uc3RhdGVjaGFuZ2UgCiBQQVNTIFNlcnZpY2VXb3Jr
ZXIgbXVzdCBiZSBwcmltYXJ5IGludGVyZmFjZSBvZiB3aW5kb3cucmVnaXN0cmF0aW9uSW5zdGFu
Y2UuaW5zdGFsbGluZyAKIFBBU1MgU3RyaW5naWZpY2F0aW9uIG9mIHdpbmRvdy5yZWdpc3RyYXRp
b25JbnN0YW5jZS5pbnN0YWxsaW5nIApAQCAtMTgsNiArMTksOCBAQCBQQVNTIFNlcnZpY2VXb3Jr
ZXIgaW50ZXJmYWNlOiB3aW5kb3cucmVnaXN0cmF0aW9uSW5zdGFuY2UuaW5zdGFsbGluZyBtdXN0
IGluaGVyaQogUEFTUyBTZXJ2aWNlV29ya2VyIGludGVyZmFjZTogd2luZG93LnJlZ2lzdHJhdGlv
bkluc3RhbmNlLmluc3RhbGxpbmcgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJzdGF0ZSIgd2l0aCB0
aGUgcHJvcGVyIHR5cGUgCiBQQVNTIFNlcnZpY2VXb3JrZXIgaW50ZXJmYWNlOiB3aW5kb3cucmVn
aXN0cmF0aW9uSW5zdGFuY2UuaW5zdGFsbGluZyBtdXN0IGluaGVyaXQgcHJvcGVydHkgInBvc3RN
ZXNzYWdlKGFueSwgW29iamVjdCBPYmplY3RdKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCiBQQVNT
IFNlcnZpY2VXb3JrZXIgaW50ZXJmYWNlOiBjYWxsaW5nIHBvc3RNZXNzYWdlKGFueSwgW29iamVj
dCBPYmplY3RdKSBvbiB3aW5kb3cucmVnaXN0cmF0aW9uSW5zdGFuY2UuaW5zdGFsbGluZyB3aXRo
IHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAorUEFTUyBTZXJ2aWNlV29y
a2VyIGludGVyZmFjZTogd2luZG93LnJlZ2lzdHJhdGlvbkluc3RhbmNlLmluc3RhbGxpbmcgbXVz
dCBpbmhlcml0IHByb3BlcnR5ICJwb3N0TWVzc2FnZShhbnksIFBvc3RNZXNzYWdlT3B0aW9ucyki
IHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBTZXJ2aWNlV29ya2VyIGludGVyZmFjZTogY2Fs
bGluZyBwb3N0TWVzc2FnZShhbnksIFBvc3RNZXNzYWdlT3B0aW9ucykgb24gd2luZG93LnJlZ2lz
dHJhdGlvbkluc3RhbmNlLmluc3RhbGxpbmcgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRo
cm93IFR5cGVFcnJvciAKIFBBU1MgU2VydmljZVdvcmtlciBpbnRlcmZhY2U6IHdpbmRvdy5yZWdp
c3RyYXRpb25JbnN0YW5jZS5pbnN0YWxsaW5nIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAib25zdGF0
ZWNoYW5nZSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCiBQQVNTIFNlcnZpY2VXb3JrZXJSZWdpc3Ry
YXRpb24gaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9i
amVjdCAKIFBBU1MgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbiBpbnRlcmZhY2Ugb2JqZWN0IGxl
bmd0aCAKQEAgLTI4LDYgKzMxLDcgQEAgUEFTUyBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uIGlu
dGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZQogUEFTUyBTZXJ2
aWNlV29ya2VyUmVnaXN0cmF0aW9uIGludGVyZmFjZTogYXR0cmlidXRlIGluc3RhbGxpbmcgCiBQ
QVNTIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgd2FpdGlu
ZyAKIFBBU1MgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBh
Y3RpdmUgCitGQUlMIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24gaW50ZXJmYWNlOiBhdHRyaWJ1
dGUgbmF2aWdhdGlvblByZWxvYWQgYXNzZXJ0X3RydWU6IFRoZSBwcm90b3R5cGUgb2JqZWN0IG11
c3QgaGF2ZSBhIHByb3BlcnR5ICJuYXZpZ2F0aW9uUHJlbG9hZCIgZXhwZWN0ZWQgdHJ1ZSBnb3Qg
ZmFsc2UKIFBBU1MgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0
ZSBzY29wZSAKIFBBU1MgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbiBpbnRlcmZhY2U6IGF0dHJp
YnV0ZSB1cGRhdGVWaWFDYWNoZSAKIFBBU1MgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbiBpbnRl
cmZhY2U6IG9wZXJhdGlvbiB1cGRhdGUoKSAKQEAgLTM4LDExICs0MiwyMiBAQCBQQVNTIFN0cmlu
Z2lmaWNhdGlvbiBvZiB3aW5kb3cucmVnaXN0cmF0aW9uSW5zdGFuY2UKIFBBU1MgU2VydmljZVdv
cmtlclJlZ2lzdHJhdGlvbiBpbnRlcmZhY2U6IHdpbmRvdy5yZWdpc3RyYXRpb25JbnN0YW5jZSBt
dXN0IGluaGVyaXQgcHJvcGVydHkgImluc3RhbGxpbmciIHdpdGggdGhlIHByb3BlciB0eXBlIAog
UEFTUyBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uIGludGVyZmFjZTogd2luZG93LnJlZ2lzdHJh
dGlvbkluc3RhbmNlIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAid2FpdGluZyIgd2l0aCB0aGUgcHJv
cGVyIHR5cGUgCiBQQVNTIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24gaW50ZXJmYWNlOiB3aW5k
b3cucmVnaXN0cmF0aW9uSW5zdGFuY2UgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJhY3RpdmUiIHdp
dGggdGhlIHByb3BlciB0eXBlIAorRkFJTCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uIGludGVy
ZmFjZTogd2luZG93LnJlZ2lzdHJhdGlvbkluc3RhbmNlIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAi
bmF2aWdhdGlvblByZWxvYWQiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9pbmhlcml0czog
cHJvcGVydHkgIm5hdmlnYXRpb25QcmVsb2FkIiBub3QgZm91bmQgaW4gcHJvdG90eXBlIGNoYWlu
CiBQQVNTIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24gaW50ZXJmYWNlOiB3aW5kb3cucmVnaXN0
cmF0aW9uSW5zdGFuY2UgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJzY29wZSIgd2l0aCB0aGUgcHJv
cGVyIHR5cGUgCiBQQVNTIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24gaW50ZXJmYWNlOiB3aW5k
b3cucmVnaXN0cmF0aW9uSW5zdGFuY2UgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJ1cGRhdGVWaWFD
YWNoZSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCiBQQVNTIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRp
b24gaW50ZXJmYWNlOiB3aW5kb3cucmVnaXN0cmF0aW9uSW5zdGFuY2UgbXVzdCBpbmhlcml0IHBy
b3BlcnR5ICJ1cGRhdGUoKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCiBQQVNTIFNlcnZpY2VXb3Jr
ZXJSZWdpc3RyYXRpb24gaW50ZXJmYWNlOiB3aW5kb3cucmVnaXN0cmF0aW9uSW5zdGFuY2UgbXVz
dCBpbmhlcml0IHByb3BlcnR5ICJ1bnJlZ2lzdGVyKCkiIHdpdGggdGhlIHByb3BlciB0eXBlIAog
UEFTUyBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uIGludGVyZmFjZTogd2luZG93LnJlZ2lzdHJh
dGlvbkluc3RhbmNlIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAib251cGRhdGVmb3VuZCIgd2l0aCB0
aGUgcHJvcGVyIHR5cGUgCitGQUlMIE5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciBpbnRlcmZhY2U6
IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IGFzc2VydF9vd25f
cHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIk5hdmlnYXRpb25QcmVs
b2FkTWFuYWdlciIgZXhwZWN0ZWQgcHJvcGVydHkgIk5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciIg
bWlzc2luZworRkFJTCBOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIgaW50ZXJmYWNlIG9iamVjdCBs
ZW5ndGggYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0
eSAiTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIiBleHBlY3RlZCBwcm9wZXJ0eSAiTmF2aWdhdGlv
blByZWxvYWRNYW5hZ2VyIiBtaXNzaW5nCitGQUlMIE5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciBp
bnRlcmZhY2Ugb2JqZWN0IG5hbWUgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBo
YXZlIG93biBwcm9wZXJ0eSAiTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIiBleHBlY3RlZCBwcm9w
ZXJ0eSAiTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIiBtaXNzaW5nCitGQUlMIE5hdmlnYXRpb25Q
cmVsb2FkTWFuYWdlciBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRl
cmZhY2UgcHJvdG90eXBlIG9iamVjdCBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90
IGhhdmUgb3duIHByb3BlcnR5ICJOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIiIGV4cGVjdGVkIHBy
b3BlcnR5ICJOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIiIG1pc3NpbmcKK0ZBSUwgTmF2aWdhdGlv
blByZWxvYWRNYW5hZ2VyIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGlu
dGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgImNvbnN0cnVjdG9yIiBwcm9wZXJ0eSBhc3NlcnRf
b3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJOYXZpZ2F0aW9u
UHJlbG9hZE1hbmFnZXIiIGV4cGVjdGVkIHByb3BlcnR5ICJOYXZpZ2F0aW9uUHJlbG9hZE1hbmFn
ZXIiIG1pc3NpbmcKK0ZBSUwgTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIGludGVyZmFjZTogZXhp
c3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgQEB1
bnNjb3BhYmxlcyBwcm9wZXJ0eSBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhh
dmUgb3duIHByb3BlcnR5ICJOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIiIGV4cGVjdGVkIHByb3Bl
cnR5ICJOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIiIG1pc3NpbmcKK0ZBSUwgTmF2aWdhdGlvblBy
ZWxvYWRNYW5hZ2VyIGludGVyZmFjZTogb3BlcmF0aW9uIGVuYWJsZSgpIGFzc2VydF9vd25fcHJv
cGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIk5hdmlnYXRpb25QcmVsb2Fk
TWFuYWdlciIgZXhwZWN0ZWQgcHJvcGVydHkgIk5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciIgbWlz
c2luZworRkFJTCBOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIgaW50ZXJmYWNlOiBvcGVyYXRpb24g
ZGlzYWJsZSgpIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJv
cGVydHkgIk5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciIgZXhwZWN0ZWQgcHJvcGVydHkgIk5hdmln
YXRpb25QcmVsb2FkTWFuYWdlciIgbWlzc2luZworRkFJTCBOYXZpZ2F0aW9uUHJlbG9hZE1hbmFn
ZXIgaW50ZXJmYWNlOiBvcGVyYXRpb24gc2V0SGVhZGVyVmFsdWUoQnl0ZVN0cmluZykgYXNzZXJ0
X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiTmF2aWdhdGlv
blByZWxvYWRNYW5hZ2VyIiBleHBlY3RlZCBwcm9wZXJ0eSAiTmF2aWdhdGlvblByZWxvYWRNYW5h
Z2VyIiBtaXNzaW5nCitGQUlMIE5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciBpbnRlcmZhY2U6IG9w
ZXJhdGlvbiBnZXRTdGF0ZSgpIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2
ZSBvd24gcHJvcGVydHkgIk5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciIgZXhwZWN0ZWQgcHJvcGVy
dHkgIk5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciIgbWlzc2luZwogUEFTUyBTZXJ2aWNlV29ya2Vy
R2xvYmFsU2NvcGUgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJm
YWNlIG9iamVjdCAKIFBBU1MgQ2xpZW50IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0
aWVzIG9mIGludGVyZmFjZSBvYmplY3QgCiBQQVNTIFdpbmRvd0NsaWVudCBpbnRlcmZhY2U6IGV4
aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvaW50ZXJmYWNlcy13aW5kb3cuaHR0cHMuaHRtbCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL2ludGVyZmFjZXMtd2luZG93Lmh0dHBzLmh0bWwKaW5kZXggZjcwY2Y0MDkzMWRi
ODgzNTBjNWZiMGY1ZWJiMWZiZDEwZjkxN2RiYS4uY2MzYmRhZjExZmM3YmMxNzRlZWY1NTVhNjAy
NjNlMTkyZWZkYzUzOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvaW50ZXJmYWNlcy13
aW5kb3cuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9pbnRlcmZhY2VzLXdpbmRv
dy5odHRwcy5odG1sCkBAIC0xMCw4ICsxMCw4IEBACiAndXNlIHN0cmljdCc7CiAKIHByb21pc2Vf
dGVzdChhc3luYyAodCkgPT4gewotICBjb25zdCBzcmNzID0gWydkb20nLCAnaHRtbCcsICdzZXJ2
aWNlLXdvcmtlcnMnLCAnZGVkaWNhdGVkLXdvcmtlcnMnXTsKLSAgY29uc3QgW2RvbSwgaHRtbCwg
c2VydmljZVdvcmtlcklkbCwgZGVkaWNhdGVkXSA9IGF3YWl0IFByb21pc2UuYWxsKAorICBjb25z
dCBzcmNzID0gWydkb20nLCAnaHRtbCcsICdzZXJ2aWNlLXdvcmtlcnMnXTsKKyAgY29uc3QgW2Rv
bSwgaHRtbCwgc2VydmljZVdvcmtlcklkbF0gPSBhd2FpdCBQcm9taXNlLmFsbCgKICAgICBzcmNz
Lm1hcChpID0+IGZldGNoKGAvaW50ZXJmYWNlcy8ke2l9LmlkbGApLnRoZW4ociA9PiByLnRleHQo
KSkpKTsKIAogICB2YXIgaWRsQXJyYXkgPSBuZXcgSWRsQXJyYXkoKTsKQEAgLTI5LDcgKzI5LDYg
QEAgcHJvbWlzZV90ZXN0KGFzeW5jICh0KSA9PiB7CiAgICAgJ0NhY2hlJywKICAgICAnQ2FjaGVT
dG9yYWdlJywKICAgXX0pOwotICBpZGxBcnJheS5hZGRfZGVwZW5kZW5jeV9pZGxzKGRlZGljYXRl
ZCk7CiAgIGlkbEFycmF5LmFkZF9kZXBlbmRlbmN5X2lkbHMoZG9tKTsKICAgaWRsQXJyYXkuYWRk
X2RlcGVuZGVuY3lfaWRscyhodG1sKTsKICAgaWRsQXJyYXkuYWRkX29iamVjdHMoewpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2NsaWVudHMtZnJhbWUtZnJlZXplLmh0
bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvY2xpZW50cy1mcmFtZS1mcmVlemUuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi43NDY4YTY2MGU5MDg1ODY2ZThkMzhmZjM1ZjAyY2Y2YTUwODY4MjMyCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2NsaWVudHMtZnJh
bWUtZnJlZXplLmh0bWwKQEAgLTAsMCArMSwxNSBAQAorPCFET0NUWVBFIGh0bWw+Cis8c2NyaXB0
IHNyYz0iL3Jlc291cmNlcy90ZXN0ZHJpdmVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIv
cmVzb3VyY2VzL3Rlc3Rkcml2ZXItdmVuZG9yLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisgIGRv
Y3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2ZyZWV6ZScsICgpID0+IHsKKyAgICAgIG9wZW5lci5w
b3N0TWVzc2FnZSgnZnJvemVuJywgIioiKTsKKyAgfSk7CisKKyAgd2luZG93Lm9ubWVzc2FnZSA9
IChlKSA9PiB7CisgICAgaWYgKGUuZGF0YSA9PSAnZnJlZXplJykgeworICAgICAgdGVzdF9kcml2
ZXIuZnJlZXplKCk7CisgICAgfQorICB9OworICBvcGVuZXIucG9zdE1lc3NhZ2UoJ2xvYWRlZCcs
ICcqJyk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNl
cy9jbGllbnRzLW1hdGNoYWxsLXdvcmtlci5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNl
cy9jbGllbnRzLW1hdGNoYWxsLXdvcmtlci5qcwppbmRleCBkNjYzNGY0ZDQwZWY2YWRhMzQ0MGI0
NDNmYWZmMTc2ZTU0MDgyYTcxLi4xM2UxMTFhMmY5MTQ2NGJmMTdmYThjNjBmYjZmNjA3MTQ0M2E0
NzRmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvY2xpZW50cy1tYXRj
aGFsbC13b3JrZXIuanMKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2NsaWVudHMt
bWF0Y2hhbGwtd29ya2VyLmpzCkBAIC0xMywxMSArMTMsMjAgQEAgc2VsZi5vbm1lc3NhZ2UgPSBm
dW5jdGlvbihlKSB7CiAgICAgICAgICAgICAgIC8vIEluIHRoYXQgY2FzZSwganVzdCBwcmV0ZW5k
IGl0J3MgdG9wLWxldmVsIQogICAgICAgICAgICAgICBmcmFtZV90eXBlID0gJ3RvcC1sZXZlbCc7
CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBtZXNzYWdlLnB1c2goW2NsaWVudC52aXNpYmls
aXR5U3RhdGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGNsaWVudC5mb2N1c2VkLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICBjbGllbnQudXJsLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICBjbGllbnQudHlwZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgZnJhbWVfdHlwZV0p
OworICAgICAgICAgICAgaWYgKGUuZGF0YS5pbmNsdWRlTGlmZWN5Y2xlU3RhdGUpIHsKKyAgICAg
ICAgICAgICAgbWVzc2FnZS5wdXNoKHt2aXNpYmlsaXR5U3RhdGU6IGNsaWVudC52aXNpYmlsaXR5
U3RhdGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9jdXNlZDogY2xpZW50LmZvY3Vz
ZWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBjbGllbnQudXJsLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGxpZmVjeWNsZVN0YXRlOiBjbGllbnQubGlmZWN5Y2xlU3Rh
dGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogY2xpZW50LnR5cGUsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZnJhbWVUeXBlOiBmcmFtZV90eXBlfSk7CisgICAgICAg
ICAgICB9IGVsc2UgeworICAgICAgICAgICAgICBtZXNzYWdlLnB1c2goW2NsaWVudC52aXNpYmls
aXR5U3RhdGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xpZW50LmZvY3VzZWQsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xpZW50LnVybCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjbGllbnQudHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcmFt
ZV90eXBlXSk7CisgICAgICAgICAgICB9CiAgICAgICAgICAgfSk7CiAgICAgICAgIC8vIFNvcnQg
YnkgdXJsCiAgICAgICAgIGlmICghZS5kYXRhLmRpc2FibGVTb3J0KSB7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZHVtbXktc2hhcmVkLXdvcmtlci1pbnRlcmNlcHRv
ci5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9kdW1teS1zaGFyZWQtd29ya2VyLWlu
dGVyY2VwdG9yLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlOTk2ZGE2YjJiN2Y0
OTE4MjBkZGFiMTY4ZTlkMmYyZDZmNmNlYTM1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9kdW1teS1zaGFy
ZWQtd29ya2VyLWludGVyY2VwdG9yLmpzCisrKyAvZGV2L251bGwKQEAgLTEsOSArMCwwIEBACi12
YXIgd29ya2VyX3RleHQgPSAnb25jb25uZWN0ID0gZnVuY3Rpb24oZSkgeyBlLnBvcnRzWzBdLnBv
c3RNZXNzYWdlKCJ3b3JrZXIgbG9hZGluZyBpbnRlcmNlcHRlZCBieSBzZXJ2aWNlIHdvcmtlciIp
OyB9Oyc7Ci0KLXNlbGYub25mZXRjaCA9IGZ1bmN0aW9uKGV2ZW50KSB7Ci0gIGlmIChldmVudC5y
ZXF1ZXN0LnVybC5pbmRleE9mKCdkdW1teS1zaGFyZWQtd29ya2VyLmpzJykgIT0gLTEpIHsKLSAg
ICBldmVudC5yZXNwb25kV2l0aChuZXcgUmVzcG9uc2UoCi0gICAgICAgIHdvcmtlcl90ZXh0LCB7
aGVhZGVyczogeyJDb250ZW50LVR5cGUiOiAiYXBwbGljYXRpb24vamF2YXNjcmlwdCJ9fSkpOwot
ICB9Ci19OwotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZHVtbXkt
c2hhcmVkLXdvcmtlci1pbnRlcmNlcHRvci5qcy5oZWFkZXJzIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
cmVzb3VyY2VzL2R1bW15LXNoYXJlZC13b3JrZXItaW50ZXJjZXB0b3IuanMuaGVhZGVycwpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTE3YTlhM2ExMmNlZmU4ODNhNWQ0ZGVlNGQ1YTQ1
YmVmMTIwZDA1MC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZHVtbXktc2hhcmVkLXdvcmtlci1pbnRlcmNl
cHRvci5qcy5oZWFkZXJzCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotQ29udGVudC1UeXBl
OiBhcHBsaWNhdGlvbi9qYXZhc2NyaXB0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9y
ZXNvdXJjZXMvZHVtbXktd29ya2VyLWludGVyY2VwdG9yLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
cmVzb3VyY2VzL2R1bW15LXdvcmtlci1pbnRlcmNlcHRvci5qcwppbmRleCBhYmVjNWZkZDU4YjI4
YjdiNmExZDBiYTQ1M2U2N2NjZTFhNGQ0OTczLi4xYzM4MWZkMTgwZTJiM2QzYjdhMTEzOTQ5MjYw
OTYxNDFiMGEzYzc2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZHVt
bXktd29ya2VyLWludGVyY2VwdG9yLmpzCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNl
cy9kdW1teS13b3JrZXItaW50ZXJjZXB0b3IuanMKQEAgLTEsMjEgKzEsNDUgQEAKIGltcG9ydFNj
cmlwdHMoJy9jb21tb24vZ2V0LWhvc3QtaW5mby5zdWIuanMnKTsKIAotdmFyIHdvcmtlcl90ZXh0
ID0gJ3Bvc3RNZXNzYWdlKCJ3b3JrZXIgbG9hZGluZyBpbnRlcmNlcHRlZCBieSBzZXJ2aWNlIHdv
cmtlciIpOyAnOworY29uc3QgdGV4dCA9ICd3b3JrZXIgbG9hZGluZyBpbnRlcmNlcHRlZCBieSBz
ZXJ2aWNlIHdvcmtlcic7Citjb25zdCBkZWRpY2F0ZWRfd29ya2VyX3NjcmlwdCA9IGBwb3N0TWVz
c2FnZSgnJHt0ZXh0fScpO2A7Citjb25zdCBzaGFyZWRfd29ya2VyX3NjcmlwdCA9CisgICAgYG9u
Y29ubmVjdCA9IGV2dCA9PiBldnQucG9ydHNbMF0ucG9zdE1lc3NhZ2UoJyR7dGV4dH0nKTtgOwog
Ci1zZWxmLm9uZmV0Y2ggPSBmdW5jdGlvbihldmVudCkgewotICBpZiAoZXZlbnQucmVxdWVzdC51
cmwuaW5kZXhPZignc3ludGhlc2l6ZWQnKSAhPSAtMSkgewotICAgIGV2ZW50LnJlc3BvbmRXaXRo
KG5ldyBSZXNwb25zZSh3b3JrZXJfdGV4dCkpOwotICB9IGVsc2UgaWYgKGV2ZW50LnJlcXVlc3Qu
dXJsLmluZGV4T2YoJ3NhbWUtb3JpZ2luJykgIT0gLTEpIHsKLSAgICBldmVudC5yZXNwb25kV2l0
aChmZXRjaCgnZHVtbXktd29ya2VyLXNjcmlwdC5weScpKTsKLSAgfSBlbHNlIGlmIChldmVudC5y
ZXF1ZXN0LnVybC5pbmRleE9mKCdjb3JzJykgIT0gLTEpIHsKLSAgICB2YXIgcGF0aCA9IChuZXcg
VVJMKCdkdW1teS13b3JrZXItc2NyaXB0LnB5Jywgc2VsZi5sb2NhdGlvbikpLnBhdGhuYW1lOwot
ICAgIHZhciB1cmwgPSBnZXRfaG9zdF9pbmZvKClbJ0hUVFBTX1JFTU9URV9PUklHSU4nXSArIHBh
dGg7Ci0gICAgdmFyIG1vZGUgPSAibm8tY29ycyI7Ci0gICAgaWYgKGV2ZW50LnJlcXVlc3QudXJs
LmluZGV4T2YoJ25vLWNvcnMnKSA9PSAtMSkgewotICAgICAgdXJsICs9ICc/QUNBT3JpZ2luPSon
OwotICAgICAgbW9kZSA9ICJjb3JzIjsKK3NlbGYub25mZXRjaCA9IGV2ZW50ID0+IHsKKyAgY29u
c3QgdXJsID0gZXZlbnQucmVxdWVzdC51cmw7CisgIGNvbnN0IGRlc3RpbmF0aW9uID0gZXZlbnQu
cmVxdWVzdC5kZXN0aW5hdGlvbjsKKworICAvLyBSZXF1ZXN0IGhhbmRsZXIgZm9yIGEgc3ludGhl
c2l6ZWQgcmVzcG9uc2UuCisgIGlmICh1cmwuaW5kZXhPZignc3ludGhlc2l6ZWQnKSAhPSAtMSkg
eworICAgIGlmIChkZXN0aW5hdGlvbiA9PT0gJ3dvcmtlcicpCisgICAgICBldmVudC5yZXNwb25k
V2l0aChuZXcgUmVzcG9uc2UoZGVkaWNhdGVkX3dvcmtlcl9zY3JpcHQpKTsKKyAgICBlbHNlIGlm
IChkZXN0aW5hdGlvbiA9PT0gJ3NoYXJlZHdvcmtlcicpCisgICAgICBldmVudC5yZXNwb25kV2l0
aChuZXcgUmVzcG9uc2Uoc2hhcmVkX3dvcmtlcl9zY3JpcHQpKTsKKyAgICBlbHNlCisgICAgICBl
dmVudC5yZXNwb25kV2l0aChuZXcgUmVzcG9uc2UoJ1VuZXhwZWN0ZWQgcmVxdWVzdCEgJyArIGRl
c3RpbmF0aW9uKSk7CisgICAgcmV0dXJuOworICB9CisKKyAgLy8gUmVxdWVzdCBoYW5kbGVyIGZv
ciBhIHNhbWUtb3JpZ2luIHJlc3BvbnNlLgorICBpZiAodXJsLmluZGV4T2YoJ3NhbWUtb3JpZ2lu
JykgIT0gLTEpIHsKKyAgICBldmVudC5yZXNwb25kV2l0aChmZXRjaCgncG9zdG1lc3NhZ2Utb24t
bG9hZC13b3JrZXIuanMnKSk7CisgICAgcmV0dXJuOworICB9CisKKyAgLy8gUmVxdWVzdCBoYW5k
bGVyIGZvciBhIGNyb3NzLW9yaWdpbiByZXNwb25zZS4KKyAgaWYgKHVybC5pbmRleE9mKCdjb3Jz
JykgIT0gLTEpIHsKKyAgICBjb25zdCBmaWxlbmFtZSA9ICdwb3N0bWVzc2FnZS1vbi1sb2FkLXdv
cmtlci5qcyc7CisgICAgY29uc3QgcGF0aCA9IChuZXcgVVJMKGZpbGVuYW1lLCBzZWxmLmxvY2F0
aW9uKSkucGF0aG5hbWU7CisgICAgbGV0IG5ld191cmwgPSBnZXRfaG9zdF9pbmZvKClbJ0hUVFBT
X1JFTU9URV9PUklHSU4nXSArIHBhdGg7CisgICAgbGV0IG1vZGU7CisgICAgaWYgKHVybC5pbmRl
eE9mKCduby1jb3JzJykgIT0gLTEpIHsKKyAgICAgIC8vIFRlc3Qgbm8tY29ycyBtb2RlLgorICAg
ICAgbW9kZSA9ICduby1jb3JzJzsKKyAgICB9IGVsc2UgeworICAgICAgLy8gVGVzdCBjb3JzIG1v
ZGUuCisgICAgICBuZXdfdXJsICs9ICc/cGlwZT1oZWFkZXIoQWNjZXNzLUNvbnRyb2wtQWxsb3ct
T3JpZ2luLCopJzsKKyAgICAgIG1vZGUgPSAnY29ycyc7CiAgICAgfQotICAgIGV2ZW50LnJlc3Bv
bmRXaXRoKGZldGNoKHVybCwgeyBtb2RlOiBtb2RlIH0pKTsKKyAgICBldmVudC5yZXNwb25kV2l0
aChmZXRjaChuZXdfdXJsLCB7IG1vZGU6IG1vZGUgfSkpOwogICB9CiB9OwotCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZHVtbXktd29ya2VyLXNjcmlwdC5weSBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9kdW1teS13b3JrZXItc2NyaXB0LnB5CmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2ZjQwYjVlZDYwNWFjYzQ2YzVlZDk2NjM0OTM4ZDM2MWRk
ZWU2ZDg2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9kdW1teS13b3JrZXItc2NyaXB0LnB5CisrKyAvZGV2
L251bGwKQEAgLTEsOSArMCwwIEBACi1kZWYgbWFpbihyZXF1ZXN0LCByZXNwb25zZSk6Ci0gICAg
aGVhZGVycyA9IFtdCi0KLSAgICBpZiAiQUNBT3JpZ2luIiBpbiByZXF1ZXN0LkdFVDoKLSAgICAg
ICAgZm9yIGl0ZW0gaW4gcmVxdWVzdC5HRVRbIkFDQU9yaWdpbiJdLnNwbGl0KCIsIik6Ci0gICAg
ICAgICAgICBoZWFkZXJzLmFwcGVuZCgoIkFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbiIsIGl0
ZW0pKQotCi0gICAgcmV0dXJuIGhlYWRlcnMsICJwb3N0TWVzc2FnZSgnZHVtbXktd29ya2VyLXNj
cmlwdCBsb2FkZWQnKTsiCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNl
cy9pbXBvcnQtc2NyaXB0cy00MDQtYWZ0ZXItdXBkYXRlLXBsdXMtdXBkYXRlLXdvcmtlci5qcyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9pbXBvcnQtc2NyaXB0cy00MDQtYWZ0ZXItdXBk
YXRlLXBsdXMtdXBkYXRlLXdvcmtlci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lOTg5OWQ4ZTcyNzRlYThiNjU2
MjNlMDE5NDExNzAwZWM2NWRiYzg0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvcmVzb3VyY2VzL2ltcG9ydC1zY3JpcHRzLTQwNC1hZnRlci11cGRhdGUtcGx1cy11cGRhdGUt
d29ya2VyLmpzCkBAIC0wLDAgKzEsOCBAQAorLy8gVGhpcyB3b3JrZXIgaW1wb3J0cyBhIHNjcmlw
dCB0aGF0IHJldHVybnMgMjAwIG9uIHRoZSBmaXJzdCByZXF1ZXN0IGFuZCA0MDQKKy8vIG9uIHRo
ZSBzZWNvbmQgcmVxdWVzdCwgYW5kIGEgc2NyaXB0IHRoYXQgaXMgdXBkYXRlZCBldmVyeSB0aW1l
IHdoZW4KKy8vIHJlcXVlc3RpbmcgaXQuCitjb25zdCBwYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFy
YW1zKGxvY2F0aW9uLnNlYXJjaCk7Citjb25zdCBrZXkgPSBwYXJhbXMuZ2V0KCdLZXknKTsKK2Nv
bnN0IGFkZGl0aW9uYWxfa2V5ID0gcGFyYW1zLmdldCgnQWRkaXRpb25hbEtleScpOworaW1wb3J0
U2NyaXB0cyhgdXBkYXRlLXdvcmtlci5weT9LZXk9JHtrZXl9Jk1vZGU9bm90X2ZvdW5kYCwKKyAg
ICAgICAgICAgICAgYHVwZGF0ZS13b3JrZXIucHk/S2V5PSR7YWRkaXRpb25hbF9rZXl9Jk1vZGU9
bm9ybWFsYCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvaW1wb3J0
LXNjcmlwdHMtNDA0LWFmdGVyLXVwZGF0ZS5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNl
cy9pbXBvcnQtc2NyaXB0cy00MDQtYWZ0ZXItdXBkYXRlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI1NjkzNDYw
MzVhYzExYzU1N2ExZTE5ZDZiZjliYThiOTA1OTc1MzkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvaW1wb3J0LXNjcmlwdHMtNDA0LWFmdGVyLXVwZGF0ZS5q
cwpAQCAtMCwwICsxLDYgQEAKKy8vIFRoaXMgd29ya2VyIGltcG9ydHMgYSBzY3JpcHQgdGhhdCBy
ZXR1cm5zIDIwMCBvbiB0aGUgZmlyc3QgcmVxdWVzdCBhbmQgNDA0CisvLyBvbiB0aGUgc2Vjb25k
IHJlcXVlc3QuIFRoZSByZXN1bHRpbmcgYm9keSBhbHNvIGNoYW5nZXMgZWFjaCB0aW1lIGl0IGlz
CisvLyByZXF1ZXN0ZWQuCitjb25zdCBwYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKGxvY2F0
aW9uLnNlYXJjaCk7Citjb25zdCBrZXkgPSBwYXJhbXMuZ2V0KCdLZXknKTsKK2ltcG9ydFNjcmlw
dHMoYHVwZGF0ZS13b3JrZXIucHk/S2V5PSR7a2V5fSZNb2RlPW5vdF9mb3VuZGApOwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ltcG9ydC1zY3JpcHRzLTQwNC5qcyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9pbXBvcnQtc2NyaXB0cy00MDQuanMKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMTljN2E0YjhlNTYxYjNkOTVmMTA0OTZlOTJhMmM3MjY0ZDY5MzgxNQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9pbXBvcnQtc2NyaXB0cy00MDQu
anMKQEAgLTAsMCArMSBAQAoraW1wb3J0U2NyaXB0cygnNDA0LnB5Jyk7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvaW1wb3J0LXNjcmlwdHMtcmVkaXJlY3Qtb24tc2Vj
b25kLXRpbWUtd29ya2VyLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ltcG9ydC1z
Y3JpcHRzLXJlZGlyZWN0LW9uLXNlY29uZC10aW1lLXdvcmtlci5qcwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNjEy
YWI4ZTZhYTQyNzIwODNhYmY1NzM5NzhkMTkzMmQxOGY2NTM1Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ltcG9ydC1zY3JpcHRzLXJlZGlyZWN0LW9uLXNl
Y29uZC10aW1lLXdvcmtlci5qcwpAQCAtMCwwICsxLDcgQEAKKy8vIFRoaXMgd29ya2VyIGltcG9y
dHMgYSBzY3JpcHQgdGhhdCByZXR1cm5zIDIwMCBvbiB0aGUgZmlyc3QgcmVxdWVzdCBhbmQgYQor
Ly8gcmVkaXJlY3Qgb24gdGhlIHNlY29uZCByZXF1ZXN0LiBUaGUgcmVzdWx0aW5nIGJvZHkgYWxz
byBjaGFuZ2VzIGVhY2ggdGltZSBpdAorLy8gaXMgcmVxdWVzdGVkLgorY29uc3QgcGFyYW1zID0g
bmV3IFVSTFNlYXJjaFBhcmFtcyhsb2NhdGlvbi5zZWFyY2gpOworY29uc3Qga2V5ID0gcGFyYW1z
LmdldCgnS2V5Jyk7CitpbXBvcnRTY3JpcHRzKGB1cGRhdGUtd29ya2VyLnB5P0tleT0ke2tleX0m
TW9kZT1yZWRpcmVjdCZgICsKKyAgICAgICAgICAgICAgYFJlZGlyZWN0PXVwZGF0ZS13b3JrZXIu
cHk/S2V5PSR7a2V5fSUyNk1vZGU9bm9ybWFsYCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9yZXNvdXJjZXMvaW50ZXJmYWNlcy13b3JrZXIuc3ViLmpzIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvcmVzb3VyY2VzL2ludGVyZmFjZXMtd29ya2VyLnN1Yi5qcwppbmRleCA1NmJjOGFmNDQ1ZDVl
NzkwMGI0NTczYzM1ZTZkNjgwZWZmMTZjNjcxLi5hYzc5ZGRjMDA1Njg4YWZmZTlhY2M2N2I4M2Y0
M2VmMzA0ZjgxYzgxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvaW50
ZXJmYWNlcy13b3JrZXIuc3ViLmpzCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9p
bnRlcmZhY2VzLXdvcmtlci5zdWIuanMKQEAgLTUsOCArNSw4IEBAIGltcG9ydFNjcmlwdHMoJy9y
ZXNvdXJjZXMvV2ViSURMUGFyc2VyLmpzJyk7CiBpbXBvcnRTY3JpcHRzKCcvcmVzb3VyY2VzL2lk
bGhhcm5lc3MuanMnKTsKIAogcHJvbWlzZV90ZXN0KGFzeW5jICh0KSA9PiB7Ci0gIGNvbnN0IHNy
Y3MgPSBbJ2RvbScsICdodG1sJywgJ3NlcnZpY2Utd29ya2VycycsICdkZWRpY2F0ZWQtd29ya2Vy
cyddOwotICBjb25zdCBbZG9tLCBodG1sLCBzZXJ2aWNlV29ya2VySWRsLCBkZWRpY2F0ZWRdID0g
YXdhaXQgUHJvbWlzZS5hbGwoCisgIGNvbnN0IHNyY3MgPSBbJ2RvbScsICdodG1sJywgJ3NlcnZp
Y2Utd29ya2VycyddOworICBjb25zdCBbZG9tLCBodG1sLCBzZXJ2aWNlV29ya2VySWRsXSA9IGF3
YWl0IFByb21pc2UuYWxsKAogICAgIHNyY3MubWFwKGkgPT4gZmV0Y2goYC9pbnRlcmZhY2VzLyR7
aX0uaWRsYCkudGhlbihyID0+IHIudGV4dCgpKSkpOwogCiAgIHZhciBpZGxBcnJheSA9IG5ldyBJ
ZGxBcnJheSgpOwpAQCAtMjQsNyArMjQsNiBAQCBwcm9taXNlX3Rlc3QoYXN5bmMgKHQpID0+IHsK
ICAgICAnQ2FjaGUnLAogICAgICdDYWNoZVN0b3JhZ2UnLAogICBdfSk7Ci0gIGlkbEFycmF5LmFk
ZF9kZXBlbmRlbmN5X2lkbHMoZGVkaWNhdGVkKTsKICAgaWRsQXJyYXkuYWRkX2RlcGVuZGVuY3lf
aWRscyhkb20pOwogICBpZGxBcnJheS5hZGRfZGVwZW5kZW5jeV9pZGxzKGh0bWwpOwogICBpZGxB
cnJheS5hZGRfb2JqZWN0cyh7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJj
ZXMvbG9hZF93b3JrZXIuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvbG9hZF93b3Jr
ZXIuanMKaW5kZXggMmM4MGYyNWEzZGIyODMxZjRiMWU1NjMzYTQ1NTQ4MWQ3YTM1YjRjNy4uMThj
NjczYmViY2FiOTgyNzcwN2RhODU1ZjM4YTc1NDliNjk1ZGE3ZiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvcmVzb3VyY2VzL2xvYWRfd29ya2VyLmpzCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3Jlc291cmNlcy9sb2FkX3dvcmtlci5qcwpAQCAtMSwyOSArMSwyOSBAQAotc2VsZi5vbm1l
c3NhZ2UgPSBmdW5jdGlvbiAoZXZ0KSB7Ci0gICAgaWYgKGV2dC5kYXRhID09ICJ4aHIiKSB7Ci0g
ICAgICAgIHZhciB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKLSAgICAgICAgeGhyLm9wZW4o
IkdFVCIsICJzeW50aGVzaXplZC1yZXNwb25zZS50eHQiLCB0cnVlKTsKLSAgICAgICAgeGhyLnJl
c3BvbnNlVHlwZSA9ICJ0ZXh0IjsKLSAgICAgICAgeGhyLnNlbmQoKTsKLSAgICAgICAgeGhyLm9u
bG9hZCA9IGZ1bmN0aW9uIChldnQpIHsKLSAgICAgICAgICAgIHBvc3RNZXNzYWdlKHhoci5yZXNw
b25zZVRleHQpOwotICAgICAgICB9OwotICAgICAgICB4aHIub25lcnJvciA9IGZ1bmN0aW9uKCkg
ewotICAgICAgICAgICAgcG9zdE1lc3NhZ2UoIlhIUiBmYWlsZWQhIik7Ci0gICAgICAgIH07Ci0g
ICAgfSBlbHNlIGlmIChldnQuZGF0YSA9PSAiZmV0Y2giKSB7Ci0gICAgICAgIGZldGNoKCJzeW50
aGVzaXplZC1yZXNwb25zZS50eHQiKQotICAgICAgICAgIC50aGVuKGZ1bmN0aW9uKHJlc3BvbnNl
KSB7Ci0gICAgICAgICAgICAgIHJldHVybiByZXNwb25zZS50ZXh0KCk7Ci0gICAgICAgICAgICB9
KQotICAgICAgICAgIC50aGVuKGZ1bmN0aW9uKGRhdGEpIHsKLSAgICAgICAgICAgICAgcG9zdE1l
c3NhZ2UoZGF0YSk7Ci0gICAgICAgICAgICB9KQotICAgICAgICAgIC5jYXRjaChmdW5jdGlvbihl
cnJvcikgewotICAgICAgICAgICAgICBwb3N0TWVzc2FnZSgiRmV0Y2ggZmFpbGVkISIpOwotICAg
ICAgICAgICAgfSk7Ci0gICAgfSBlbHNlIGlmIChldnQuZGF0YSA9PSAiaW1wb3J0U2NyaXB0cyIp
IHsKLSAgICAgICAgaW1wb3J0U2NyaXB0cygic3ludGhlc2l6ZWQtcmVzcG9uc2UuanMiKTsKLSAg
ICB9IGVsc2UgewotICAgICAgICB0aHJvdyAiVW5leHBlY3RlZCBtZXNzYWdlISAiICsgZXZ0LmRh
dGE7Ci0gICAgfQorZnVuY3Rpb24gcnVuX3Rlc3QoZGF0YSwgc2VuZGVyKSB7CisgIGlmIChkYXRh
ID09PSAneGhyJykgeworICAgIGNvbnN0IHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOworICAg
IHhoci5vcGVuKCdHRVQnLCAnc3ludGhlc2l6ZWQtcmVzcG9uc2UudHh0JywgdHJ1ZSk7CisgICAg
eGhyLnJlc3BvbnNlVHlwZSA9ICd0ZXh0JzsKKyAgICB4aHIuc2VuZCgpOworICAgIHhoci5vbmxv
YWQgPSBldnQgPT4gc2VuZGVyLnBvc3RNZXNzYWdlKHhoci5yZXNwb25zZVRleHQpOworICAgIHho
ci5vbmVycm9yID0gKCkgPT4gc2VuZGVyLnBvc3RNZXNzYWdlKCdYSFIgZmFpbGVkIScpOworICB9
IGVsc2UgaWYgKGRhdGEgPT09ICdmZXRjaCcpIHsKKyAgICBmZXRjaCgnc3ludGhlc2l6ZWQtcmVz
cG9uc2UudHh0JykKKyAgICAgICAgLnRoZW4ocmVzcG9uc2UgPT4gcmVzcG9uc2UudGV4dCgpKQor
ICAgICAgICAudGhlbihkYXRhID0+IHNlbmRlci5wb3N0TWVzc2FnZShkYXRhKSkKKyAgICAgICAg
LmNhdGNoKGVycm9yID0+IHNlbmRlci5wb3N0TWVzc2FnZSgnRmV0Y2ggZmFpbGVkIScpKTsKKyAg
fSBlbHNlIGlmIChkYXRhID09PSAnaW1wb3J0U2NyaXB0cycpIHsKKyAgICBpbXBvcnRTY3JpcHRz
KCdzeW50aGVzaXplZC1yZXNwb25zZS5qcycpOworICAgIC8vIHxtZXNzYWdlfCBpcyBwcm92aWRl
ZCBieSAnc3ludGhlc2l6ZWQtcmVzcG9uc2UuanMnOworICAgIHNlbmRlci5wb3N0TWVzc2FnZSht
ZXNzYWdlKTsKKyAgfSBlbHNlIHsKKyAgICBzZW5kZXIucG9zdE1lc3NhZ2UoJ1VuZXhwZWN0ZWQg
bWVzc2FnZSEgJyArIGRhdGEpOworICB9Cit9CisKKy8vIEVudHJ5IHBvaW50IGZvciBkZWRpY2F0
ZWQgd29ya2Vycy4KK3NlbGYub25tZXNzYWdlID0gZXZ0ID0+IHJ1bl90ZXN0KGV2dC5kYXRhLCBz
ZWxmKTsKKworLy8gRW50cnkgcG9pbnQgZm9yIHNoYXJlZCB3b3JrZXJzLgorc2VsZi5vbmNvbm5l
Y3QgPSBldnQgPT4geworICBldnQucG9ydHNbMF0ub25tZXNzYWdlID0gZSA9PiBydW5fdGVzdChl
LmRhdGEsIGV2dC5wb3J0c1swXSk7CiB9OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
cmVzb3VyY2VzL25lc3RlZF9sb2FkX3dvcmtlci5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291
cmNlcy9uZXN0ZWRfbG9hZF93b3JrZXIuanMKaW5kZXggNmUyZTllZGM0ZDhiMzVlMDNmNWFhNGIy
OTk2NjgxMmFkZGY0MzQ0NC4uZWYwZWQ4ZmM3MDRjZWFhODFmMWVlZjhkNGVkNzVmZDA0MWJhYWU2
ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL25lc3RlZF9sb2FkX3dv
cmtlci5qcworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvbmVzdGVkX2xvYWRfd29y
a2VyLmpzCkBAIC0xLDkgKzEsMjMgQEAKLXZhciB3b3JrZXIgPSBuZXcgV29ya2VyKCJsb2FkX3dv
cmtlci5qcyIpOwotCi1zZWxmLm9ubWVzc2FnZSA9IGZ1bmN0aW9uIChldnQpIHsKLSAgd29ya2Vy
LnBvc3RNZXNzYWdlKGV2dC5kYXRhKTsKKy8vIEVudHJ5IHBvaW50IGZvciBkZWRpY2F0ZWQgd29y
a2Vycy4KK3NlbGYub25tZXNzYWdlID0gZXZ0ID0+IHsKKyAgdHJ5IHsKKyAgICBjb25zdCB3b3Jr
ZXIgPSBuZXcgV29ya2VyKCdsb2FkX3dvcmtlci5qcycpOworICAgIHdvcmtlci5vbm1lc3NhZ2Ug
PSBldnQgPT4gc2VsZi5wb3N0TWVzc2FnZShldnQuZGF0YSk7CisgICAgd29ya2VyLnBvc3RNZXNz
YWdlKGV2dC5kYXRhKTsKKyAgfSBjYXRjaCAoZXJyKSB7CisgICAgc2VsZi5wb3N0TWVzc2FnZSgn
VW5leHBlY3RlZCBlcnJvciEgJyArIGVyci5tZXNzYWdlKTsKKyAgfQogfTsKIAotd29ya2VyLm9u
bWVzc2FnZSA9IGZ1bmN0aW9uIChldnQpIHsKLSAgc2VsZi5wb3N0TWVzc2FnZShldnQuZGF0YSk7
Ci19CisvLyBFbnRyeSBwb2ludCBmb3Igc2hhcmVkIHdvcmtlcnMuCitzZWxmLm9uY29ubmVjdCA9
IGV2dCA9PiB7CisgIGV2dC5wb3J0c1swXS5vbm1lc3NhZ2UgPSBlID0+IHsKKyAgICB0cnkgewor
ICAgICAgY29uc3Qgd29ya2VyID0gbmV3IFdvcmtlcignbG9hZF93b3JrZXIuanMnKTsKKyAgICAg
IHdvcmtlci5vbm1lc3NhZ2UgPSBlID0+IGV2dC5wb3J0c1swXS5wb3N0TWVzc2FnZShlLmRhdGEp
OworICAgICAgd29ya2VyLnBvc3RNZXNzYWdlKGV2dC5kYXRhKTsKKyAgICB9IGNhdGNoIChlcnIp
IHsKKyAgICAgIGV2dC5wb3J0c1swXS5wb3N0TWVzc2FnZSgnVW5leHBlY3RlZCBlcnJvciEgJyAr
IGVyci5tZXNzYWdlKTsKKyAgICB9CisgIH07Cit9OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvcmVzb3VyY2VzL3Bvc3RtZXNzYWdlLW9uLWxvYWQtd29ya2VyLmpzIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvcmVzb3VyY2VzL3Bvc3RtZXNzYWdlLW9uLWxvYWQtd29ya2VyLmpzCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmMyYjBiY2I4YmZiMGFhMGE3NjA3MTQzODQwZjFmNTZhMzhkOGIwYTMKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvcG9zdG1lc3NhZ2Utb24tbG9hZC13
b3JrZXIuanMKQEAgLTAsMCArMSw5IEBACitpZiAoJ0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3Bl
JyBpbiBzZWxmICYmCisgICAgc2VsZiBpbnN0YW5jZW9mIERlZGljYXRlZFdvcmtlckdsb2JhbFNj
b3BlKSB7CisgIHBvc3RNZXNzYWdlKCdkZWRpY2F0ZWQgd29ya2VyIHNjcmlwdCBsb2FkZWQnKTsK
K30gZWxzZSBpZiAoJ1NoYXJlZFdvcmtlckdsb2JhbFNjb3BlJyBpbiBzZWxmICYmCisgICAgc2Vs
ZiBpbnN0YW5jZW9mIFNoYXJlZFdvcmtlckdsb2JhbFNjb3BlKSB7CisgIHNlbGYub25jb25uZWN0
ID0gZXZ0ID0+IHsKKyAgICBldnQucG9ydHNbMF0ucG9zdE1lc3NhZ2UoJ3NoYXJlZCB3b3JrZXIg
c2NyaXB0IGxvYWRlZCcpOworICB9OworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
cmVzb3VyY2VzL3NoYXJlZC13b3JrZXItY29udHJvbGxlZC5qcyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L3Jlc291cmNlcy9zaGFyZWQtd29ya2VyLWNvbnRyb2xsZWQuanMKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDFjY2MyZmUzYmRiZTY4YWQyMDBmNzAzN2ZkNWM2OGQ3Njg5MzE4MzQuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvcmVzb3VyY2VzL3NoYXJlZC13b3JrZXItY29udHJvbGxlZC5qcworKysgL2Rldi9udWxs
CkBAIC0xLDggKzAsMCBAQAotb25jb25uZWN0ID0gZnVuY3Rpb24oZSkgewotICB2YXIgcG9ydCA9
IGUucG9ydHNbMF07Ci0gIHZhciB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKLSAgeGhyLm9u
bG9hZCA9IGZ1bmN0aW9uKCkgeyBwb3J0LnBvc3RNZXNzYWdlKHRoaXMucmVzcG9uc2VUZXh0KTsg
fTsKLSAgeGhyLm9uZXJyb3IgPSBmdW5jdGlvbihlKSB7IHBvcnQucG9zdE1lc3NhZ2UoZSk7IH07
Ci0gIHhoci5vcGVuKCdHRVQnLCAnZHVtbXkudHh0P3NpbXBsZScsIHRydWUpOwotICB4aHIuc2Vu
ZCgpOwotfTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9zaGFyZWQt
d29ya2VyLWltcG9ydC5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9zaGFyZWQtd29y
a2VyLWltcG9ydC5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2M1NTRiZDc0MTUy
MDliMjY2ZmZmY2ViOTAxODVhNzllYmQ3NTZjNS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvc2hhcmVkLXdv
cmtlci1pbXBvcnQuanMKKysrIC9kZXYvbnVsbApAQCAtMSArMCwwIEBACi1pbXBvcnRTY3JpcHRz
KCdpbXBvcnQtZHVtbXktc2hhcmVkLXdvcmtlci5qcycpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvcmVzb3VyY2VzL3VwZGF0ZS1kdXJpbmctaW5zdGFsbGF0aW9uLXdvcmtlci5qcyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy91cGRhdGUtZHVyaW5nLWluc3RhbGxhdGlvbi13
b3JrZXIuanMKaW5kZXggM2Y4OTg4MWMwNDM4NDU5MGI4YjEzMmMzOTI5NzcyNTZiZmI4NDdlZC4u
ZjE5OTdiZDgyNGU4ZTE2NWNjMTE5YTUyMDgyZDc0MmJkNjNmNGU0ZCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3VwZGF0ZS1kdXJpbmctaW5zdGFsbGF0aW9uLXdvcmtl
ci5qcworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvdXBkYXRlLWR1cmluZy1pbnN0
YWxsYXRpb24td29ya2VyLmpzCkBAIC0xNCw2ICsxNCw5IEBAIGFkZEV2ZW50TGlzdGVuZXIoJ2lu
c3RhbGwnLCBldmVudCA9PiB7CiB9KTsKIAogYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIGV2
ZW50ID0+IHsKKyAgbGV0IHJlc29sdmVXYWl0VW50aWw7CisgIGV2ZW50LndhaXRVbnRpbChuZXcg
UHJvbWlzZShyZXNvbHZlID0+IHsgcmVzb2x2ZVdhaXRVbnRpbCA9IHJlc29sdmU7IH0pKTsKKwog
ICAvLyBVc2UgYSBkZWRpY2F0ZWQgTWVzc2FnZUNoYW5uZWwgZm9yIGV2ZXJ5IHJlcXVlc3Qgc28g
c2VuZGVycyBjYW4gd2FpdCBmb3IKICAgLy8gaW5kaXZpZHVhbCByZXF1ZXN0cyB0byBmaW5pc2gs
IGFuZCBjb25jdXJyZW50IHJlcXVlc3RzICh0byBkaWZmZXJlbnQKICAgLy8gd29ya2VycykgZG9u
J3QgY2F1c2UgcmFjZSBjb25kaXRpb25zLgpAQCAtMjMsMTMgKzI2LDEzIEBAIGFkZEV2ZW50TGlz
dGVuZXIoJ21lc3NhZ2UnLCBldmVudCA9PiB7CiAgICAgICBjYXNlICdhd2FpdEluc3RhbGxFdmVu
dCc6CiAgICAgICAgIGluc3RhbGxFdmVudEZpcmVkLnRoZW4oKCkgPT4gewogICAgICAgICAgICAg
cG9ydC5wb3N0TWVzc2FnZSgnaW5zdGFsbEV2ZW50RmlyZWQnKTsKLSAgICAgICAgfSk7CisgICAg
ICAgIH0pLmZpbmFsbHkocmVzb2x2ZVdhaXRVbnRpbCk7CiAgICAgICAgIGJyZWFrOwogCiAgICAg
ICBjYXNlICdmaW5pc2hJbnN0YWxsJzoKICAgICAgICAgaW5zdGFsbEZpbmlzaGVkLnRoZW4oKCkg
PT4gewogICAgICAgICAgICAgcG9ydC5wb3N0TWVzc2FnZSgnaW5zdGFsbEZpbmlzaGVkJyk7Ci0g
ICAgICAgIH0pOworICAgICAgICB9KS5maW5hbGx5KHJlc29sdmVXYWl0VW50aWwpOwogICAgICAg
ICBmaW5pc2hJbnN0YWxsKCk7CiAgICAgICAgIGJyZWFrOwogCkBAIC00NCwxMyArNDcsMTQgQEAg
YWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIGV2ZW50ID0+IHsKICAgICAgICAgICAgICAgICBz
dWNjZXNzOiBmYWxzZSwKICAgICAgICAgICAgICAgICBleGNlcHRpb246IGV4Y2VwdGlvbi5uYW1l
LAogICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0pOworICAgICAgICB9KS5maW5hbGx5KHJlc29s
dmVXYWl0VW50aWwpOwogICAgICAgICBwb3J0LnBvc3RNZXNzYWdlKGNoYW5uZWwucG9ydDEsIFtj
aGFubmVsLnBvcnQxXSk7CiAgICAgICAgIGJyZWFrOwogICAgICAgfQogCiAgICAgICBkZWZhdWx0
OgogICAgICAgICBwb3J0LnBvc3RNZXNzYWdlKCdVbmV4cGVjdGVkIGNvbW1hbmQgJyArIGV2ZW50
LmRhdGEpOworICAgICAgICByZXNvbHZlV2FpdFVudGlsKCk7CiAgICAgICAgIGJyZWFrOwogICAg
IH0KICAgfTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy91cGRhdGUt
c21hbGxlci1ib2R5LWFmdGVyLXVwZGF0ZS13b3JrZXIuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9y
ZXNvdXJjZXMvdXBkYXRlLXNtYWxsZXItYm9keS1hZnRlci11cGRhdGUtd29ya2VyLmpzCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmQ0M2Y2YjJmNWMzZDY0MTU2YWU2ODk3MGVhYjNhNjU1MTFjNWM5NjAKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvdXBkYXRlLXNtYWxsZXItYm9k
eS1hZnRlci11cGRhdGUtd29ya2VyLmpzCkBAIC0wLDAgKzEgQEAKKy8vIEhlbGxvIHdvcmxkIQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3VwZGF0ZS1zbWFsbGVyLWJv
ZHktYmVmb3JlLXVwZGF0ZS13b3JrZXIuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMv
dXBkYXRlLXNtYWxsZXItYm9keS1iZWZvcmUtdXBkYXRlLXdvcmtlci5qcwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4z
MGM4NzgzYTcwMjU1MDEyZTU3NjM0MDNkMTU0NjdkMTQ4YjI0OWIwCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3VwZGF0ZS1zbWFsbGVyLWJvZHktYmVmb3Jl
LXVwZGF0ZS13b3JrZXIuanMKQEAgLTAsMCArMSwyIEBACisvLyBIZWxsbyB3b3JsZCEKKy8vICoq
d2l0aCBleHRyYSBib2R5KioKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNl
cy91cGRhdGUtd29ya2VyLWZyb20tZmlsZS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNl
cy91cGRhdGUtd29ya2VyLWZyb20tZmlsZS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NjA0NzE5YzhlMGM1ZGFj
ZDIxNmJmOTY5MjFkODI1ZGQwMjExYWVhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvcmVzb3VyY2VzL3VwZGF0ZS13b3JrZXItZnJvbS1maWxlLnB5CkBAIC0wLDAgKzEsMzEg
QEAKK2ltcG9ydCBvcworCitkZWYgc2VydmVfanNfZnJvbV9maWxlKHJlcXVlc3QsIHJlc3BvbnNl
LCBmaWxlbmFtZSk6CisgIGJvZHkgPSAnJworICBwYXRoID0gb3MucGF0aC5qb2luKG9zLnBhdGgu
ZGlybmFtZShfX2ZpbGVfXyksIGZpbGVuYW1lKQorICB3aXRoIG9wZW4ocGF0aCwgJ3JiJykgYXMg
ZjoKKyAgICBib2R5ID0gZi5yZWFkKCkKKyAgcmV0dXJuICgKKyAgICBbCisgICAgICAoJ0NhY2hl
LUNvbnRyb2wnLCAnbm8tY2FjaGUsIG11c3QtcmV2YWxpZGF0ZScpLAorICAgICAgKCdQcmFnbWEn
LCAnbm8tY2FjaGUnKSwKKyAgICAgICgnQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2phdmFz
Y3JpcHQnKQorICAgIF0sIGJvZHkpCisKK2RlZiBtYWluKHJlcXVlc3QsIHJlc3BvbnNlKToKKyAg
a2V5ID0gcmVxdWVzdC5HRVRbIktleSJdCisKKyAgdmlzaXRlZF9jb3VudCA9IHJlcXVlc3Quc2Vy
dmVyLnN0YXNoLnRha2Uoa2V5KQorICBpZiB2aXNpdGVkX2NvdW50IGlzIE5vbmU6CisgICAgdmlz
aXRlZF9jb3VudCA9IDAKKworICAjIEtlZXAgaG93IG1hbnkgdGltZXMgdGhlIHRlc3QgcmVxdWVz
dGVkIHRoaXMgcmVzb3VyY2UuCisgIHZpc2l0ZWRfY291bnQgKz0gMQorICByZXF1ZXN0LnNlcnZl
ci5zdGFzaC5wdXQoa2V5LCB2aXNpdGVkX2NvdW50KQorCisgICMgU2VydmUgYSBmaWxlIGJhc2Vk
IG9uIGhvdyBtYW55IHRpbWVzIGl0J3MgcmVxdWVzdGVkLgorICBpZiB2aXNpdGVkX2NvdW50ID09
IDE6CisgICAgcmV0dXJuIHNlcnZlX2pzX2Zyb21fZmlsZShyZXF1ZXN0LCByZXNwb25zZSwgcmVx
dWVzdC5HRVRbIkZpcnN0Il0pCisgIGlmIHZpc2l0ZWRfY291bnQgPT0gMjoKKyAgICByZXR1cm4g
c2VydmVfanNfZnJvbV9maWxlKHJlcXVlc3QsIHJlc3BvbnNlLCByZXF1ZXN0LkdFVFsiU2Vjb25k
Il0pCisgIHJhaXNlICJVbmtub3duIHN0YXRlIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvcmVzb3VyY2VzL3VwZGF0ZS13b3JrZXIucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJj
ZXMvdXBkYXRlLXdvcmtlci5weQppbmRleCBiYzliMzJhZDNlNjg4NzBkOWY1NDA1MjRlNzBjZDc5
NDczNDZlNWM4Li5kMjUxNzkzMDRhNzM2NjAxMjIwMzZlNWQ1ZmVjMjA2N2RjNjE1OTdhIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvdXBkYXRlLXdvcmtlci5weQorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvdXBkYXRlLXdvcmtlci5weQpAQCAtMSw0NiAr
MSw2MCBAQAotaW1wb3J0IHRpbWUKK2ltcG9ydCB1cmxsaWIKKworZGVmIHJlZGlyZWN0X3Jlc3Bv
bnNlKHJlcXVlc3QsIHJlc3BvbnNlLCB2aXNpdGVkX2NvdW50KToKKyAgIyB8dmlzaXRlZF9jb3Vu
dHwgaXMgdXNlZCBhcyBhIHVuaXF1ZSBpZCB0byBkaWZmZXJlbnRpYXRlIHJlc3BvbnNlcworICAj
IGV2ZXJ5IHRpbWUuCisgIGxvY2F0aW9uID0gJ2VtcHR5LmpzJworICBpZiAnUmVkaXJlY3QnIGlu
IHJlcXVlc3QuR0VUOgorICAgICAgbG9jYXRpb24gPSB1cmxsaWIudW5xdW90ZShyZXF1ZXN0LkdF
VFsnUmVkaXJlY3QnXSkKKyAgcmV0dXJuICgzMDEsCisgIFsKKyAgICAoJ0NhY2hlLUNvbnRyb2wn
LCAnbm8tY2FjaGUsIG11c3QtcmV2YWxpZGF0ZScpLAorICAgICgnUHJhZ21hJywgJ25vLWNhY2hl
JyksCisgICAgKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vamF2YXNjcmlwdCcpLAorICAg
ICgnTG9jYXRpb24nLCBsb2NhdGlvbiksCisgIF0sCisgICcvKiAlcyAqLycgJSBzdHIodmlzaXRl
ZF9jb3VudCkpCisKK2RlZiBub3RfZm91bmRfcmVzcG9uc2UoKToKKyAgcmV0dXJuIDQwNCwgWygn
Q29udGVudC1UeXBlJywgJ3RleHQvcGxhaW4nKV0sICJQYWdlIG5vdCBmb3VuZCIKKworZGVmIG9r
X3Jlc3BvbnNlKHJlcXVlc3QsIHJlc3BvbnNlLCB2aXNpdGVkX2NvdW50LAorICAgICAgICAgICAg
ICAgIGV4dHJhX2JvZHk9JycsIG1pbWVfdHlwZT0nYXBwbGljYXRpb24vamF2YXNjcmlwdCcpOgor
ICAjIHx2aXNpdGVkX2NvdW50fCBpcyB1c2VkIGFzIGEgdW5pcXVlIGlkIHRvIGRpZmZlcmVudGlh
dGUgcmVzcG9uc2VzCisgICMgZXZlcnkgdGltZS4KKyAgcmV0dXJuICgKKyAgICBbCisgICAgICAo
J0NhY2hlLUNvbnRyb2wnLCAnbm8tY2FjaGUsIG11c3QtcmV2YWxpZGF0ZScpLAorICAgICAgKCdQ
cmFnbWEnLCAnbm8tY2FjaGUnKSwKKyAgICAgICgnQ29udGVudC1UeXBlJywgbWltZV90eXBlKQor
ICAgIF0sCisgICAgJy8qICVzICovICVzJyAlIChzdHIodmlzaXRlZF9jb3VudCksIGV4dHJhX2Jv
ZHkpKQogCiBkZWYgbWFpbihyZXF1ZXN0LCByZXNwb25zZSk6Ci0gICAgIyBTZXQgbW9kZSB0byAn
aW5pdCcgZm9yIGluaXRpYWwgZmV0Y2guCi0gICAgbW9kZSA9ICdpbml0JwotICAgIGlmICdtb2Rl
JyBpbiByZXF1ZXN0LmNvb2tpZXM6Ci0gICAgICAgIG1vZGUgPSByZXF1ZXN0LmNvb2tpZXNbJ21v
ZGUnXS52YWx1ZQotCi0gICAgIyBuby1jYWNoZSBpdHNlbGYgdG8gZW5zdXJlIHRoZSB1c2VyIGFn
ZW50IGZpbmRzIGEgbmV3IHZlcnNpb24gZm9yIGVhY2ggdXBkYXRlLgotICAgIGhlYWRlcnMgPSBb
KCdDYWNoZS1Db250cm9sJywgJ25vLWNhY2hlLCBtdXN0LXJldmFsaWRhdGUnKSwKLSAgICAgICAg
ICAgICAgICgnUHJhZ21hJywgJ25vLWNhY2hlJyldCi0KLSAgICBjb250ZW50X3R5cGUgPSAnJwot
ICAgIGV4dHJhX2JvZHkgPSAnJwotCi0gICAgaWYgbW9kZSA9PSAnaW5pdCc6Ci0gICAgICAgICMg
U2V0IGEgbm9ybWFsIG1pbWV0eXBlLgotICAgICAgICAjIFNldCBjb29raWUgdmFsdWUgdG8gJ25v
cm1hbCcgc28gdGhlIG5leHQgZmV0Y2ggd2lsbCB3b3JrIGluICdub3JtYWwnIG1vZGUuCi0gICAg
ICAgIGNvbnRlbnRfdHlwZSA9ICdhcHBsaWNhdGlvbi9qYXZhc2NyaXB0JwotICAgICAgICByZXNw
b25zZS5zZXRfY29va2llKCdtb2RlJywgJ25vcm1hbCcpCi0gICAgZWxpZiBtb2RlID09ICdub3Jt
YWwnOgotICAgICAgICAjIFNldCBhIG5vcm1hbCBtaW1ldHlwZS4KLSAgICAgICAgIyBTZXQgY29v
a2llIHZhbHVlIHRvICdlcnJvcicgc28gdGhlIG5leHQgZmV0Y2ggd2lsbCB3b3JrIGluICdlcnJv
cicgbW9kZS4KLSAgICAgICAgY29udGVudF90eXBlID0gJ2FwcGxpY2F0aW9uL2phdmFzY3JpcHQn
Ci0gICAgICAgIHJlc3BvbnNlLnNldF9jb29raWUoJ21vZGUnLCAnZXJyb3InKTsKLSAgICBlbGlm
IG1vZGUgPT0gJ2Vycm9yJzoKLSAgICAgICAgIyBTZXQgYSBkaXNhbGxvd2VkIG1pbWV0eXBlLgot
ICAgICAgICAjIFNldCBjb29raWUgdmFsdWUgdG8gJ3N5bnRheC1lcnJvcicgc28gdGhlIG5leHQg
ZmV0Y2ggd2lsbCB3b3JrIGluICdzeW50YXgtZXJyb3InIG1vZGUuCi0gICAgICAgIGNvbnRlbnRf
dHlwZSA9ICd0ZXh0L2h0bWwnCi0gICAgICAgIHJlc3BvbnNlLnNldF9jb29raWUoJ21vZGUnLCAn
c3ludGF4LWVycm9yJyk7Ci0gICAgZWxpZiBtb2RlID09ICdzeW50YXgtZXJyb3InOgotICAgICAg
ICAjIFNldCBjb29raWUgdmFsdWUgdG8gJ3Rocm93LWluc3RhbGwnIHNvIHRoZSBuZXh0IGZldGNo
IHdpbGwgd29yayBpbiAndGhyb3ctaW5zdGFsbCcgbW9kZS4KLSAgICAgICAgY29udGVudF90eXBl
ID0gJ2FwcGxpY2F0aW9uL2phdmFzY3JpcHQnCi0gICAgICAgIHJlc3BvbnNlLnNldF9jb29raWUo
J21vZGUnLCAndGhyb3ctaW5zdGFsbCcpOwotICAgICAgICBleHRyYV9ib2R5ID0gJ2JhZHN5bnRh
eChpc2JhZDsnCi0gICAgZWxpZiBtb2RlID09ICd0aHJvdy1pbnN0YWxsJzoKLSAgICAgICAgIyBV
bnNldCBhbmQgZGVsZXRlIGNvb2tpZSB0byBjbGVhbiB1cCB0aGUgdGVzdCBzZXR0aW5nLgotICAg
ICAgICBjb250ZW50X3R5cGUgPSAnYXBwbGljYXRpb24vamF2YXNjcmlwdCcKLSAgICAgICAgcmVz
cG9uc2UuZGVsZXRlX2Nvb2tpZSgnbW9kZScpCi0gICAgICAgIGV4dHJhX2JvZHkgPSAiYWRkRXZl
bnRMaXN0ZW5lcignaW5zdGFsbCcsIGZ1bmN0aW9uKGUpIHsgdGhyb3cgbmV3IEVycm9yKCdib29t
Jyk7IH0pOyIKLQotICAgIGhlYWRlcnMuYXBwZW5kKCgnQ29udGVudC1UeXBlJywgY29udGVudF90
eXBlKSkKLSAgICAjIFJldHVybiBhIGRpZmZlcmVudCBzY3JpcHQgZm9yIGVhY2ggYWNjZXNzLiAg
VXNlIC50aW1lKCkgYW5kIC5jbG9jaygpIGZvcgotICAgICMgYmVzdCB0aW1lIHJlc29sdXRpb24g
YWNyb3NzIGRpZmZlcmVudCBwbGF0Zm9ybXMuCi0gICAgcmV0dXJuIGhlYWRlcnMsICcvKiAlcyAl
cyAqLyAlcycgJSAodGltZS50aW1lKCksIHRpbWUuY2xvY2soKSwgZXh0cmFfYm9keSkKKyAga2V5
ID0gcmVxdWVzdC5HRVRbIktleSJdCisgIG1vZGUgPSByZXF1ZXN0LkdFVFsiTW9kZSJdCisKKyAg
dmlzaXRlZF9jb3VudCA9IHJlcXVlc3Quc2VydmVyLnN0YXNoLnRha2Uoa2V5KQorICBpZiB2aXNp
dGVkX2NvdW50IGlzIE5vbmU6CisgICAgdmlzaXRlZF9jb3VudCA9IDAKKworICAjIEtlZXAgaG93
IG1hbnkgdGltZXMgdGhlIHRlc3QgcmVxdWVzdGVkIHRoaXMgcmVzb3VyY2UuCisgIHZpc2l0ZWRf
Y291bnQgKz0gMQorICByZXF1ZXN0LnNlcnZlci5zdGFzaC5wdXQoa2V5LCB2aXNpdGVkX2NvdW50
KQorCisgICMgUmV0dXJuIGEgcmVzcG9uc2UgYmFzZWQgb24gfG1vZGV8IG9ubHkgd2hlbiBpdCdz
IHRoZSBzZWNvbmQgdGltZSAoPT0gdXBkYXRlKS4KKyAgaWYgdmlzaXRlZF9jb3VudCA9PSAyOgor
ICAgIGlmIG1vZGUgPT0gJ25vcm1hbCc6CisgICAgICByZXR1cm4gb2tfcmVzcG9uc2UocmVxdWVz
dCwgcmVzcG9uc2UsIHZpc2l0ZWRfY291bnQpCisgICAgaWYgbW9kZSA9PSAnYmFkX21pbWVfdHlw
ZSc6CisgICAgICByZXR1cm4gb2tfcmVzcG9uc2UocmVxdWVzdCwgcmVzcG9uc2UsIHZpc2l0ZWRf
Y291bnQsIG1pbWVfdHlwZT0ndGV4dC9odG1sJykKKyAgICBpZiBtb2RlID09ICdub3RfZm91bmQn
OgorICAgICAgcmV0dXJuIG5vdF9mb3VuZF9yZXNwb25zZSgpCisgICAgaWYgbW9kZSA9PSAncmVk
aXJlY3QnOgorICAgICAgcmV0dXJuIHJlZGlyZWN0X3Jlc3BvbnNlKHJlcXVlc3QsIHJlc3BvbnNl
LCB2aXNpdGVkX2NvdW50KQorICAgIGlmIG1vZGUgPT0gJ3N5bnRheF9lcnJvcic6CisgICAgICBy
ZXR1cm4gb2tfcmVzcG9uc2UocmVxdWVzdCwgcmVzcG9uc2UsIHZpc2l0ZWRfY291bnQsIGV4dHJh
X2JvZHk9J2JhZHN5bnRheChpc2JhZDsnKQorICAgIGlmIG1vZGUgPT0gJ3Rocm93X2luc3RhbGwn
OgorICAgICAgcmV0dXJuIG9rX3Jlc3BvbnNlKHJlcXVlc3QsIHJlc3BvbnNlLCB2aXNpdGVkX2Nv
dW50LCBleHRyYV9ib2R5PSJhZGRFdmVudExpc3RlbmVyKCdpbnN0YWxsJywgZnVuY3Rpb24oZSkg
eyB0aHJvdyBuZXcgRXJyb3IoJ2Jvb20nKTsgfSk7IikKIAorICByZXR1cm4gb2tfcmVzcG9uc2Uo
cmVxdWVzdCwgcmVzcG9uc2UsIHZpc2l0ZWRfY291bnQpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9yZXNvdXJjZXMvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNv
dXJjZXMvdzNjLWltcG9ydC5sb2cKaW5kZXggOWViYzhiYzMxZmZjY2RlNzczNjNlOTg2MTE3M2Qy
NWU3NWEyZDIwMi4uOGYxYmNmZDM0NTQzYzI1ZDA3MTVlYjliMjZlNTIyZjM2ZDQ2NGE5NSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3czYy1pbXBvcnQubG9nCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy93M2MtaW1wb3J0LmxvZwpAQCAtNDMsNiArNDMs
NyBAQCBMaXN0IG9mIGZpbGVzOgogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9jbGllbnQt
bmF2aWdhdGUtZnJhbWUuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9jbGllbnQt
bmF2aWdhdGUtd29ya2VyLmpzCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2NsaWVudC1u
YXZpZ2F0ZWQtZnJhbWUuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9jbGllbnRz
LWZyYW1lLWZyZWV6ZS5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2NsaWVudHMt
Z2V0LWNsaWVudC10eXBlcy1mcmFtZS13b3JrZXIuanMKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNv
dXJjZXMvY2xpZW50cy1nZXQtY2xpZW50LXR5cGVzLWZyYW1lLmh0bWwKIC9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9yZXNvdXJjZXMvY2xpZW50cy1nZXQtY2xpZW50LXR5cGVzLXNoYXJlZC13b3JrZXIuanMK
QEAgLTYwLDEwICs2MSw3IEBAIExpc3Qgb2YgZmlsZXM6CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVz
b3VyY2VzL2NvcnMtYXBwcm92ZWQudHh0CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2Nv
cnMtYXBwcm92ZWQudHh0LmhlYWRlcnMKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvY29y
cy1kZW5pZWQudHh0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2R1bW15LXNoYXJlZC13
b3JrZXItaW50ZXJjZXB0b3IuanMKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZHVtbXkt
c2hhcmVkLXdvcmtlci1pbnRlcmNlcHRvci5qcy5oZWFkZXJzCiAvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
cmVzb3VyY2VzL2R1bW15LXdvcmtlci1pbnRlcmNlcHRvci5qcwotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L3Jlc291cmNlcy9kdW1teS13b3JrZXItc2NyaXB0LnB5CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVz
b3VyY2VzL2R1bW15Lmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZHVtbXkudHh0
CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2VjaG8tY29udGVudC5weQpAQCAtMTUyLDEx
ICsxNTAsMTUgQEAgTGlzdCBvZiBmaWxlczoKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMv
aW1tdXRhYmxlLXByb3RvdHlwZS1zZXJ2aWNld29ya2VyLmpzCiAvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
cmVzb3VyY2VzL2ltcG9ydC1taW1lLXR5cGUtd29ya2VyLnB5CiAvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
cmVzb3VyY2VzL2ltcG9ydC1yZWxhdGl2ZS54c2wKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJj
ZXMvaW1wb3J0LXNjcmlwdHMtNDA0LWFmdGVyLXVwZGF0ZS1wbHVzLXVwZGF0ZS13b3JrZXIuanMK
Ky9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvaW1wb3J0LXNjcmlwdHMtNDA0LWFmdGVyLXVw
ZGF0ZS5qcworL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9pbXBvcnQtc2NyaXB0cy00MDQu
anMKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvaW1wb3J0LXNjcmlwdHMtZGlmZi1yZXNv
dXJjZS1tYXAtd29ya2VyLmpzCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ltcG9ydC1z
Y3JpcHRzLWVjaG8ucHkKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvaW1wb3J0LXNjcmlw
dHMtZ2V0LnB5CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ltcG9ydC1zY3JpcHRzLW1p
bWUtdHlwZXMtd29ya2VyLmpzCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ltcG9ydC1z
Y3JpcHRzLXJlZGlyZWN0LWltcG9ydC5qcworL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9p
bXBvcnQtc2NyaXB0cy1yZWRpcmVjdC1vbi1zZWNvbmQtdGltZS13b3JrZXIuanMKIC9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9yZXNvdXJjZXMvaW1wb3J0LXNjcmlwdHMtcmVkaXJlY3Qtd29ya2VyLmpzCiAv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ltcG9ydC1zY3JpcHRzLXJlc291cmNlLW1hcC13
b3JrZXIuanMKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvaW1wb3J0LXNjcmlwdHMtdXBk
YXRlZC1mbGFnLXdvcmtlci5qcwpAQCAtMjI3LDYgKzIyOSw3IEBAIExpc3Qgb2YgZmlsZXM6CiAv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3Bvc3RtZXNzYWdlLWRpY3Rpb25hcnktdHJhbnNm
ZXJhYmxlcy13b3JrZXIuanMKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvcG9zdG1lc3Nh
Z2UtZWNoby13b3JrZXIuanMKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvcG9zdG1lc3Nh
Z2UtbXNncG9ydC10by1jbGllbnQtd29ya2VyLmpzCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3Vy
Y2VzL3Bvc3RtZXNzYWdlLW9uLWxvYWQtd29ya2VyLmpzCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVz
b3VyY2VzL3Bvc3RtZXNzYWdlLXRvLWNsaWVudC13b3JrZXIuanMKIC9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9yZXNvdXJjZXMvcG9zdG1lc3NhZ2UtdHJhbnNmZXJhYmxlcy13b3JrZXIuanMKIC9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9yZXNvdXJjZXMvcG9zdG1lc3NhZ2Utd29ya2VyLmpzCkBAIC0yNjUsOCArMjY4
LDYgQEAgTGlzdCBvZiBmaWxlczoKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvc2Vydmlj
ZS13b3JrZXItaW50ZXJjZXB0aW9uLW5ldHdvcmstd29ya2VyLmpzCiAvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvcmVzb3VyY2VzL3NlcnZpY2Utd29ya2VyLWludGVyY2VwdGlvbi1zZXJ2aWNlLXdvcmtlci5q
cwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9zZXJ2aWNlLXdvcmtlci1pbnRlcmNlcHRp
b24tc3RhdGljLWltcG9ydC13b3JrZXIuanMKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMv
c2hhcmVkLXdvcmtlci1jb250cm9sbGVkLmpzCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2Vz
L3NoYXJlZC13b3JrZXItaW1wb3J0LmpzCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3Np
bGVuY2Uub2dhCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3NpbXBsZS1pbnRlcmNlcHQt
d29ya2VyLmpzCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3NpbXBsZS1pbnRlcmNlcHQt
d29ya2VyLmpzLmhlYWRlcnMKQEAgLTI5NSw2ICsyOTYsOSBAQCBMaXN0IG9mIGZpbGVzOgogL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy91cGRhdGUtbm9jb29raWUtd29ya2VyLnB5CiAvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3VwZGF0ZS1yZWNvdmVyeS13b3JrZXIucHkKIC9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvdXBkYXRlLXJlZ2lzdHJhdGlvbi13aXRoLXR5cGUucHkK
Ky9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvdXBkYXRlLXNtYWxsZXItYm9keS1hZnRlci11
cGRhdGUtd29ya2VyLmpzCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3VwZGF0ZS1zbWFs
bGVyLWJvZHktYmVmb3JlLXVwZGF0ZS13b3JrZXIuanMKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNv
dXJjZXMvdXBkYXRlLXdvcmtlci1mcm9tLWZpbGUucHkKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNv
dXJjZXMvdXBkYXRlLXdvcmtlci5weQogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy91cGRh
dGVfc2hlbGwucHkKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvdnR0LWZyYW1lLmh0bWwK
QEAgLTMwNCw3ICszMDgsNiBAQCBMaXN0IG9mIGZpbGVzOgogL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jl
c291cmNlcy93aW5kb3djbGllbnQtbmF2aWdhdGUtd29ya2VyLmpzCiAvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvcmVzb3VyY2VzL3dvcmtlci1jbGllbnQtaWQtd29ya2VyLmpzCiAvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvcmVzb3VyY2VzL3dvcmtlci1mZXRjaGluZy1jcm9zcy1vcmlnaW4uanMKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9yZXNvdXJjZXMvd29ya2VyLWludGVyY2VwdGlvbi1pZnJhbWUuaHR0cHMuaHRtbAog
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy93b3JrZXItaW50ZXJjZXB0aW9uLXJlZGlyZWN0
LXNlcnZpY2V3b3JrZXIuanMKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvd29ya2VyLWlu
dGVyY2VwdGlvbi1yZWRpcmVjdC13ZWJ3b3JrZXIuanMKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNv
dXJjZXMvd29ya2VyLWxvYWQtaW50ZXJjZXB0b3IuanMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL3Jlc291cmNlcy93b3JrZXItaW50ZXJjZXB0aW9uLWlmcmFtZS5odHRwcy5odG1sIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3dvcmtlci1pbnRlcmNlcHRpb24taWZyYW1lLmh0
dHBzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg0MjA0YTNlZTVkZjFmYzNh
NzE3ODQyMTUwNzFiMTRmMGM2NWY5ZjIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3dvcmtlci1pbnRlcmNl
cHRpb24taWZyYW1lLmh0dHBzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw1NSArMCwwIEBACi08
c2NyaXB0IHNyYz0iL2NvbW1vbi9nZXQtaG9zdC1pbmZvLnN1Yi5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNy
Yz0idGVzdC1oZWxwZXJzLnN1Yi5qcz9waXBlPXN1YiI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotdmFy
IGhvc3RfaW5mbyA9IGdldF9ob3N0X2luZm8oKTsKLQotZnVuY3Rpb24gYm9pbGVycGxhdGVfdGVz
dCh1cmwsIG1zZykgewotICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCBy
ZWplY3QpIHsKLSAgICAgICAgICB2YXIgd29ya2VyID0gbmV3IFdvcmtlcih1cmwpOwotICAgICAg
ICAgIHdvcmtlci5vbm1lc3NhZ2UgPSBmdW5jdGlvbihlKSB7IHJlc29sdmUoZS5kYXRhKSB9Owot
ICAgICAgICAgIHdvcmtlci5vbmVycm9yID0gZnVuY3Rpb24oZSkgeyByZWplY3QoZSkgfTsKLSAg
ICAgICAgICB3b3JrZXIucG9zdE1lc3NhZ2UobXNnKTsKLSAgICAgICAgfSkKLSAgICAgIC50aGVu
KGZ1bmN0aW9uKGRhdGEpIHsKLSAgICAgICAgICBhc3NlcnRfZXF1YWxzKGRhdGEsICJUaGlzIGxv
YWQgd2FzIHN1Y2Nlc3NmdWxseSBpbnRlcmNlcHRlZC4iKTsKLSAgICAgICAgfSk7Ci19Ci0KLWZ1
bmN0aW9uIHhocl90ZXN0KCkgewotICAgIHJldHVybiBib2lsZXJwbGF0ZV90ZXN0KCJsb2FkX3dv
cmtlci5qcyIsICJ4aHIiKTsKLX0KLQotZnVuY3Rpb24gZmV0Y2hfdGVzdCgpIHsKLSAgICByZXR1
cm4gYm9pbGVycGxhdGVfdGVzdCgibG9hZF93b3JrZXIuanMiLCAiZmV0Y2giKTsKLX0KLQotZnVu
Y3Rpb24gaW1wb3J0U2NyaXB0c190ZXN0KCkgewotICAgIHJldHVybiBib2lsZXJwbGF0ZV90ZXN0
KCJsb2FkX3dvcmtlci5qcyIsICJpbXBvcnRTY3JpcHRzIik7Ci19Ci0KLWZ1bmN0aW9uIG5lc3Rl
ZF93b3JrZXJfeGhyX3Rlc3QoKSB7Ci0gICAgcmV0dXJuIGJvaWxlcnBsYXRlX3Rlc3QoIm5lc3Rl
ZF9sb2FkX3dvcmtlci5qcyIsICJ4aHIiKTsKLX0KLQotZnVuY3Rpb24gbmVzdGVkX3dvcmtlcl9m
ZXRjaF90ZXN0KCkgewotICAgIHJldHVybiBib2lsZXJwbGF0ZV90ZXN0KCJuZXN0ZWRfbG9hZF93
b3JrZXIuanMiLCAiZmV0Y2giKTsKLX0KLQotZnVuY3Rpb24gbmVzdGVkX3dvcmtlcl9pbXBvcnRT
Y3JpcHRzX3Rlc3QoKSB7Ci0gICAgcmV0dXJuIGJvaWxlcnBsYXRlX3Rlc3QoIm5lc3RlZF9sb2Fk
X3dvcmtlci5qcyIsICJpbXBvcnRTY3JpcHRzIik7Ci19Ci0KLXdpbmRvdy5hZGRFdmVudExpc3Rl
bmVyKCdtZXNzYWdlJywgZnVuY3Rpb24oZXZ0KSB7Ci0gICAgdmFyIHBvcnQgPSBldnQucG9ydHNb
MF07Ci0gICAgeGhyX3Rlc3QoKQotICAgICAgLnRoZW4oZmV0Y2hfdGVzdCkKLSAgICAgIC50aGVu
KGltcG9ydFNjcmlwdHNfdGVzdCkKLSAgICAgIC50aGVuKG5lc3RlZF93b3JrZXJfeGhyX3Rlc3Qp
Ci0gICAgICAudGhlbihuZXN0ZWRfd29ya2VyX2ZldGNoX3Rlc3QpCi0gICAgICAudGhlbihuZXN0
ZWRfd29ya2VyX2ltcG9ydFNjcmlwdHNfdGVzdCkKLSAgICAgIC50aGVuKGZ1bmN0aW9uKCkgeyBw
b3J0LnBvc3RNZXNzYWdlKHtyZXN1bHRzOiAnZmluaXNoJ30pOyB9KQotICAgICAgLmNhdGNoKGZ1
bmN0aW9uKGUpIHsgcG9ydC5wb3N0TWVzc2FnZSh7cmVzdWx0czogJ2ZhaWx1cmU6JyArIGV9KTsg
fSk7Ci0gIH0pOwotCi08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jl
c291cmNlcy93b3JrZXItbG9hZC1pbnRlcmNlcHRvci5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jl
c291cmNlcy93b3JrZXItbG9hZC1pbnRlcmNlcHRvci5qcwppbmRleCBhNWY2NWMzMjE2ZTQ0NjMy
ZmYwNTJiYWMwNDQ4MzE2ZjI1ZDQ0M2M2Li5lYmMwZGI2N2FhNTA0NTg0MmE1MWFmZDIyNTY3MWZh
MGM3ODI2N2U5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvd29ya2Vy
LWxvYWQtaW50ZXJjZXB0b3IuanMKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3dv
cmtlci1sb2FkLWludGVyY2VwdG9yLmpzCkBAIC0xLDE1ICsxLDE2IEBACiBpbXBvcnRTY3JpcHRz
KCcvY29tbW9uL2dldC1ob3N0LWluZm8uc3ViLmpzJyk7CiAKLXZhciByZXNwb25zZV90ZXh0ID0g
IlRoaXMgbG9hZCB3YXMgc3VjY2Vzc2Z1bGx5IGludGVyY2VwdGVkLiI7Ci12YXIgcmVzcG9uc2Vf
c2NyaXB0ID0gInBvc3RNZXNzYWdlKFwiVGhpcyBsb2FkIHdhcyBzdWNjZXNzZnVsbHkgaW50ZXJj
ZXB0ZWQuXCIpOyI7Citjb25zdCByZXNwb25zZV90ZXh0ID0gJ1RoaXMgbG9hZCB3YXMgc3VjY2Vz
c2Z1bGx5IGludGVyY2VwdGVkLic7Citjb25zdCByZXNwb25zZV9zY3JpcHQgPQorICAgIGBjb25z
dCBtZXNzYWdlID0gJ1RoaXMgbG9hZCB3YXMgc3VjY2Vzc2Z1bGx5IGludGVyY2VwdGVkLic7YDsK
IAotc2VsZi5vbmZldGNoID0gZnVuY3Rpb24oZXZlbnQpIHsKLSAgICB2YXIgdXJsID0gZXZlbnQu
cmVxdWVzdC51cmw7Ci0gICAgaWYgKHVybC5pbmRleE9mKCJzeW50aGVzaXplZC1yZXNwb25zZS50
eHQiKSAhPSAtMSkgewotICAgICAgICBldmVudC5yZXNwb25kV2l0aChuZXcgUmVzcG9uc2UocmVz
cG9uc2VfdGV4dCkpOwotICAgIH0gZWxzZSBpZiAodXJsLmluZGV4T2YoInN5bnRoZXNpemVkLXJl
c3BvbnNlLmpzIikgIT0gLTEpIHsKLSAgICAgIGV2ZW50LnJlc3BvbmRXaXRoKG5ldyBSZXNwb25z
ZSgKLSAgICAgICAgICByZXNwb25zZV9zY3JpcHQsCi0gICAgICAgICAge2hlYWRlcnM6IHsnQ29u
dGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2phdmFzY3JpcHQnfX0pKTsKLSAgICB9CitzZWxmLm9u
ZmV0Y2ggPSBldmVudCA9PiB7CisgIGNvbnN0IHVybCA9IGV2ZW50LnJlcXVlc3QudXJsOworICBp
ZiAodXJsLmluZGV4T2YoJ3N5bnRoZXNpemVkLXJlc3BvbnNlLnR4dCcpICE9IC0xKSB7CisgICAg
ZXZlbnQucmVzcG9uZFdpdGgobmV3IFJlc3BvbnNlKHJlc3BvbnNlX3RleHQpKTsKKyAgfSBlbHNl
IGlmICh1cmwuaW5kZXhPZignc3ludGhlc2l6ZWQtcmVzcG9uc2UuanMnKSAhPSAtMSkgeworICAg
IGV2ZW50LnJlc3BvbmRXaXRoKG5ldyBSZXNwb25zZSgKKyAgICAgICAgcmVzcG9uc2Vfc2NyaXB0
LAorICAgICAgICB7aGVhZGVyczogeydDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vamF2YXNj
cmlwdCd9fSkpOworICB9CiB9OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvc2hhcmVk
LXdvcmtlci1jb250cm9sbGVkLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9zaGFyZWQt
d29ya2VyLWNvbnRyb2xsZWQuaHR0cHMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDMyMGMwMmE0ZmEyYjgwNjZiYzZmNjAzYmY3YWJjM2VlZmUxYzNiMy4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9zaGFy
ZWQtd29ya2VyLWNvbnRyb2xsZWQuaHR0cHMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDg2ICsw
LDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPHRpdGxlPlNlcnZpY2UgV29ya2VyOiBjb250cm9sbGlu
ZyBhIFNoYXJlZFdvcmtlcjwvdGl0bGU+Ci08c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFy
bmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3Jl
cG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Rlc3QtaGVscGVycy5z
dWIuanMiPjwvc2NyaXB0PgotPGJvZHk+Ci08c2NyaXB0PgotcHJvbWlzZV90ZXN0KGZ1bmN0aW9u
KHQpIHsKLSAgICB2YXIgc2hhcmVkX3dvcmtlciA9ICdyZXNvdXJjZXMvc2hhcmVkLXdvcmtlci1j
b250cm9sbGVkLmpzJzsKLSAgICB2YXIgc2VydmljZV93b3JrZXIgPSAncmVzb3VyY2VzL3NpbXBs
ZS1pbnRlcmNlcHQtd29ya2VyLmpzJzsKLSAgICB2YXIgc2NvcGUgPSBzaGFyZWRfd29ya2VyOwot
Ci0gICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHNl
cnZpY2Vfd29ya2VyLCBzY29wZSkKLSAgICAgIC50aGVuKGZ1bmN0aW9uKHIpIHsKLSAgICAgICAg
ICB0LmFkZF9jbGVhbnVwKGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICByZXR1cm4gc2Vydmlj
ZV93b3JrZXJfdW5yZWdpc3Rlcih0LCBzY29wZSk7Ci0gICAgICAgICAgICB9KTsKLQotICAgICAg
ICAgIHJldHVybiB3YWl0X2Zvcl9zdGF0ZSh0LCByLmluc3RhbGxpbmcsICdhY3RpdmF0ZWQnKTsK
LSAgICAgICAgfSkKLSAgICAgIC50aGVuKGZ1bmN0aW9uKCkgewotICAgICAgICAgIHJldHVybiBu
ZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKLSAgICAgICAgICAgICAgdmFy
IHcgPSBuZXcgU2hhcmVkV29ya2VyKHNoYXJlZF93b3JrZXIpOwotICAgICAgICAgICAgICB3LnBv
cnQub25tZXNzYWdlID0gZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgICAgIHJlc29sdmUoZS5k
YXRhKTsKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0pCi0gICAg
ICAudGhlbihmdW5jdGlvbihkYXRhKSB7Ci0gICAgICAgICAgYXNzZXJ0X2VxdWFscyhkYXRhLCAn
aW50ZXJjZXB0ZWQgYnkgc2VydmljZSB3b3JrZXInKTsKLSAgICAgICAgfSk7Ci0gIH0sICdWZXJp
Znkgc3VicmVzb3VyY2UgbG9hZHMgaW4gU2hhcmVkV29ya2VyIGFyZSBjb250cm9sbGVkIGJ5IGEg
U2VydmljZSBXb3JrZXInKTsKLQotcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKLSAgICB2YXIg
c2hhcmVkX3dvcmtlciA9ICdyZXNvdXJjZXMvZHVtbXktc2hhcmVkLXdvcmtlci5qcyc7Ci0gICAg
dmFyIHNlcnZpY2Vfd29ya2VyID0gJ3Jlc291cmNlcy9kdW1teS1zaGFyZWQtd29ya2VyLWludGVy
Y2VwdG9yLmpzJzsKLSAgICB2YXIgc2NvcGUgPSBzaGFyZWRfd29ya2VyOwotCi0gICAgcmV0dXJu
IHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHNlcnZpY2Vfd29ya2Vy
LCBzY29wZSkKLSAgICAgIC50aGVuKGZ1bmN0aW9uKHIpIHsKLSAgICAgICAgICB0LmFkZF9jbGVh
bnVwKGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5y
ZWdpc3Rlcih0LCBzY29wZSk7Ci0gICAgICAgICAgICB9KTsKLQotICAgICAgICAgIHJldHVybiB3
YWl0X2Zvcl9zdGF0ZSh0LCByLmluc3RhbGxpbmcsICdhY3RpdmF0ZWQnKTsKLSAgICAgICAgfSkK
LSAgICAgIC50aGVuKGZ1bmN0aW9uKCkgewotICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShm
dW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKLSAgICAgICAgICAgICAgdmFyIHcgPSBuZXcgU2hh
cmVkV29ya2VyKHNoYXJlZF93b3JrZXIpOwotICAgICAgICAgICAgICB3LnBvcnQub25tZXNzYWdl
ID0gZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgICAgIHJlc29sdmUoZS5kYXRhKTsKLSAgICAg
ICAgICAgICAgfQotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0pCi0gICAgICAudGhlbihmdW5j
dGlvbihkYXRhKSB7Ci0gICAgICAgICAgYXNzZXJ0X2VxdWFscyhkYXRhLCAnd29ya2VyIGxvYWRp
bmcgaW50ZXJjZXB0ZWQgYnkgc2VydmljZSB3b3JrZXInKTsKLSAgICAgICAgfSk7Ci0gIH0sICdW
ZXJpZnkgU2hhcmVkV29ya2VyIGNvbnN0cnVjdGlvbiBpcyBjb250cm9sbGVkIGJ5IGEgU2Vydmlj
ZSBXb3JrZXInKTsKLQotcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKLSAgICB2YXIgc2hhcmVk
X3dvcmtlciA9ICdyZXNvdXJjZXMvc2hhcmVkLXdvcmtlci1pbXBvcnQuanMnOwotICAgIHZhciBz
ZXJ2aWNlX3dvcmtlciA9ICdyZXNvdXJjZXMvZHVtbXktc2hhcmVkLXdvcmtlci1pbnRlcmNlcHRv
ci5qcyc7Ci0gICAgdmFyIHNjb3BlID0gc2hhcmVkX3dvcmtlcjsKLQotICAgIHJldHVybiBzZXJ2
aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCBzZXJ2aWNlX3dvcmtlciwgc2Nv
cGUpCi0gICAgICAudGhlbihmdW5jdGlvbihyKSB7Ci0gICAgICAgICAgdC5hZGRfY2xlYW51cChm
dW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0
ZXIodCwgc2NvcGUpOwotICAgICAgICAgICAgfSk7Ci0KLSAgICAgICAgICByZXR1cm4gd2FpdF9m
b3Jfc3RhdGUodCwgci5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7Ci0gICAgICAgIH0pCi0gICAg
ICAudGhlbihmdW5jdGlvbigpIHsKLSAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rp
b24ocmVzb2x2ZSwgcmVqZWN0KSB7Ci0gICAgICAgICAgICAgIHZhciB3ID0gbmV3IFNoYXJlZFdv
cmtlcihzaGFyZWRfd29ya2VyKTsKLSAgICAgICAgICAgICAgdy5wb3J0Lm9ubWVzc2FnZSA9IGZ1
bmN0aW9uKGUpIHsKLSAgICAgICAgICAgICAgICByZXNvbHZlKGUuZGF0YSk7Ci0gICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgIH0pOwotICAgICAgICB9KQotICAgICAgLnRoZW4oZnVuY3Rpb24o
ZGF0YSkgewotICAgICAgICAgIGFzc2VydF9lcXVhbHMoZGF0YSwgJ3dvcmtlciBsb2FkaW5nIGlu
dGVyY2VwdGVkIGJ5IHNlcnZpY2Ugd29ya2VyJyk7Ci0gICAgICAgIH0pOwotICB9LCAnVmVyaWZ5
IGltcG9ydFNjcmlwdHMgZnJvbSBTaGFyZWRXb3JrZXIgaXMgY29udHJvbGxlZCBieSBhIFNlcnZp
Y2UgV29ya2VyJyk7Ci08L3NjcmlwdD4KLTwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL3VwZGF0ZS1pbXBvcnQtc2NyaXB0cy5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci91cGRhdGUtaW1wb3J0LXNjcmlwdHMuaHR0cHMtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjI5MjcyMDk5ZDkyNWJiYTJjMDA5ZWRlY2JmNmVlZTNhZjE0ZmQ4MTUKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUtaW1wb3J0LXNjcmlwdHMuaHR0cHMt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorCitQQVNTIHVwZGF0ZSgpIHNob3VsZCBmYWls
IHdoZW4gYSBuZXcgd29ya2VyIGltcG9ydHMgYW4gdW5hdmFpbGFibGUgc2NyaXB0LiAKK1BBU1Mg
dXBkYXRlKCkgc2hvdWxkIHN1Y2NlZWQgd2hlbiB0aGUgb2xkIGltcG9ydGVkIHNjcmlwdCBubyBs
b25nZXIgZXhpc3QgYnV0IHRoZSBuZXcgd29ya2VyIGRvZXNuJ3QgaW1wb3J0IGl0LiAKK1BBU1Mg
dXBkYXRlKCkgc2hvdWxkIHRyZWF0IDQwNCBvbiBpbXBvcnRlZCBzY3JpcHRzIGFzIG5vIGNoYW5n
ZS4gCitGQUlMIHVwZGF0ZSgpIHNob3VsZCBmaW5kIGFuIHVwZGF0ZSBpbiBhbiBpbXBvcnRlZCBz
Y3JpcHQgYnV0IHVwZGF0ZSgpIHNob3VsZCByZXN1bHQgaW4gZmFpbHVyZSBkdWUgdG8gbWlzc2lu
ZyB0aGUgb3RoZXIgaW1wb3J0ZWQgc2NyaXB0LiBhc3NlcnRfdW5yZWFjaGVkOiBTaG91bGQgaGF2
ZSByZWplY3RlZDogdW5kZWZpbmVkIFJlYWNoZWQgdW5yZWFjaGFibGUgY29kZQorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUtaW1wb3J0LXNjcmlwdHMuaHR0cHMuaHRtbCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0ZS1pbXBvcnQtc2NyaXB0cy5odHRwcy5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmUwYmJiMTJiZDY3NWI2MzYxMTZlZjVmODE0NDc5MDRjZGRkOTIyZDkKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUtaW1wb3J0LXNjcmlwdHMuaHR0cHMu
aHRtbApAQCAtMCwwICsxLDEyNyBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1
dGYtOCI+Cis8dGl0bGU+VGVzdHMgZm9yIGltcG9ydFNjcmlwdHM6IGltcG9ydCBzY3JpcHRzIGln
bm9yZWQgZXJyb3I8L3RpdGxlPgorPHNjcmlwdCBzcmM9Ii9jb21tb24vdXRpbHMuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9InJlc291cmNlcy90ZXN0LWhlbHBlcnMuc3ViLmpzIj48L3NjcmlwdD4KKzxi
b2R5PgorPHNjcmlwdD4KKy8vIFRoaXMgZmlsZSBjb250YWlucyB0ZXN0cyB0byBjaGVjayBpZiBp
bXBvcnRlZCBzY3JpcHRzIGFwcHJvcHJpYXRlbHkgdXBkYXRlZC4KKworY29uc3QgU0NPUEUgPSAn
cmVzb3VyY2VzL3NpbXBsZS50eHQnOworCisvLyBDcmVhdGUgYSBzZXJ2aWNlIHdvcmtlciAodXBk
YXRlLXdvcmtlci1mcm9tLWZpbGUucHkpLCB3aGljaCBpcyBpbml0aWFsbHkKKy8vIHxpbml0aWFs
X3dvcmtlcnwgYW5kIHx1cGRhdGVkX3dvcmtlcnwgbGF0ZXIuCithc3luYyBmdW5jdGlvbiBwcmVw
YXJlX3JlYWR5X3VwZGF0ZV93b3JrZXJfZnJvbV9maWxlKAorICAgIHQsIGluaXRpYWxfd29ya2Vy
LCB1cGRhdGVkX3dvcmtlcikgeworICBjb25zdCBrZXkgPSB0b2tlbigpOworICBjb25zdCB3b3Jr
ZXJfdXJsID0gYHJlc291cmNlcy91cGRhdGUtd29ya2VyLWZyb20tZmlsZS5weT9gICsKKyAgICAg
IGBGaXJzdD0ke2luaXRpYWxfd29ya2VyfSZTZWNvbmQ9JHt1cGRhdGVkX3dvcmtlcn0mS2V5PSR7
a2V5fWA7CisgIGNvbnN0IGV4cGVjdGVkX3VybCA9IG5vcm1hbGl6ZVVSTCh3b3JrZXJfdXJsKTsK
KworICBjb25zdCByZWdpc3RyYXRpb24gPSBhd2FpdCBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVy
X2FuZF9yZWdpc3RlcigKKyAgICAgIHQsIHdvcmtlcl91cmwsIFNDT1BFKTsKKyAgYXdhaXQgd2Fp
dF9mb3Jfc3RhdGUodCwgcmVnaXN0cmF0aW9uLmluc3RhbGxpbmcsICdhY3RpdmF0ZWQnKTsKKyAg
YXNzZXJ0X2VxdWFscyhyZWdpc3RyYXRpb24uaW5zdGFsbGluZywgbnVsbCwKKyAgICAgICAgICAg
ICAgICAncHJlcGFyZV9yZWFkeTogaW5zdGFsbGluZycpOworICBhc3NlcnRfZXF1YWxzKHJlZ2lz
dHJhdGlvbi53YWl0aW5nLCBudWxsLAorICAgICAgICAgICAgICAgICdwcmVwYXJlX3JlYWR5OiB3
YWl0aW5nJyk7CisgIGFzc2VydF9lcXVhbHMocmVnaXN0cmF0aW9uLmFjdGl2ZS5zY3JpcHRVUkws
IGV4cGVjdGVkX3VybCwKKyAgICAgICAgICAgICAgICAncHJlcGFyZV9yZWFkeTogYWN0aXZlJyk7
CisgIHJldHVybiBbcmVnaXN0cmF0aW9uLCBleHBlY3RlZF91cmxdOworfQorCisvLyBDcmVhdGUg
YSBzZXJ2aWNlIHdvcmtlciB1c2luZyB0aGUgc2NyaXB0IHVuZGVyIHJlc291cmNlcy8uCithc3lu
YyBmdW5jdGlvbiBwcmVwYXJlX3JlYWR5X25vcm1hbF93b3JrZXIodCwgZmlsZW5hbWUsIGFkZGl0
aW9uYWxfcGFyYW1zPScnKSB7CisgIGNvbnN0IGtleSA9IHRva2VuKCk7CisgIGNvbnN0IHdvcmtl
cl91cmwgPSBgcmVzb3VyY2VzLyR7ZmlsZW5hbWV9P0tleT0ke2tleX0mJHthZGRpdGlvbmFsX3Bh
cmFtc31gOworICBjb25zdCBleHBlY3RlZF91cmwgPSBub3JtYWxpemVVUkwod29ya2VyX3VybCk7
CisKKyAgY29uc3QgcmVnaXN0cmF0aW9uID0gYXdhaXQgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rl
cl9hbmRfcmVnaXN0ZXIoCisgICAgICB0LCB3b3JrZXJfdXJsLCBTQ09QRSk7CisgIGF3YWl0IHdh
aXRfZm9yX3N0YXRlKHQsIHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7Cisg
IGFzc2VydF9lcXVhbHMocmVnaXN0cmF0aW9uLmluc3RhbGxpbmcsIG51bGwsCisgICAgICAgICAg
ICAgICAgJ3ByZXBhcmVfcmVhZHk6IGluc3RhbGxpbmcnKTsKKyAgYXNzZXJ0X2VxdWFscyhyZWdp
c3RyYXRpb24ud2FpdGluZywgbnVsbCwKKyAgICAgICAgICAgICAgICAncHJlcGFyZV9yZWFkeTog
d2FpdGluZycpOworICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi5hY3RpdmUuc2NyaXB0VVJM
LCBleHBlY3RlZF91cmwsCisgICAgICAgICAgICAgICAgJ3ByZXBhcmVfcmVhZHk6IGFjdGl2ZScp
OworICByZXR1cm4gW3JlZ2lzdHJhdGlvbiwgZXhwZWN0ZWRfdXJsXTsKK30KKworZnVuY3Rpb24g
YXNzZXJ0X2luc3RhbGxpbmdfYW5kX2FjdGl2ZShyZWdpc3RyYXRpb24sIGV4cGVjdGVkX3VybCkg
eworICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLnNjcmlwdFVSTCwgZXhw
ZWN0ZWRfdXJsLAorICAgICAgICAgICAgICAgICdhc3NlcnRfaW5zdGFsbGluZ19hbmRfYWN0aXZl
OiBpbnN0YWxsaW5nJyk7CisgIGFzc2VydF9lcXVhbHMocmVnaXN0cmF0aW9uLndhaXRpbmcsIG51
bGwsCisgICAgICAgICAgICAgICAgJ2Fzc2VydF9pbnN0YWxsaW5nX2FuZF9hY3RpdmU6IHdhaXRp
bmcnKTsKKyAgYXNzZXJ0X2VxdWFscyhyZWdpc3RyYXRpb24uYWN0aXZlLnNjcmlwdFVSTCwgZXhw
ZWN0ZWRfdXJsLAorICAgICAgICAgICAgICAgICdhc3NlcnRfaW5zdGFsbGluZ19hbmRfYWN0aXZl
OiBhY3RpdmUnKTsKK30KKworZnVuY3Rpb24gYXNzZXJ0X3dhaXRpbmdfYW5kX2FjdGl2ZShyZWdp
c3RyYXRpb24sIGV4cGVjdGVkX3VybCkgeworICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi5p
bnN0YWxsaW5nLCBudWxsLAorICAgICAgICAgICAgICAgICdhc3NlcnRfd2FpdGluZ19hbmRfYWN0
aXZlOiBpbnN0YWxsaW5nJyk7CisgIGFzc2VydF9lcXVhbHMocmVnaXN0cmF0aW9uLndhaXRpbmcu
c2NyaXB0VVJMLCBleHBlY3RlZF91cmwsCisgICAgICAgICAgICAgICAgJ2Fzc2VydF93YWl0aW5n
X2FuZF9hY3RpdmU6IHdhaXRpbmcnKTsKKyAgYXNzZXJ0X2VxdWFscyhyZWdpc3RyYXRpb24uYWN0
aXZlLnNjcmlwdFVSTCwgZXhwZWN0ZWRfdXJsLAorICAgICAgICAgICAgICAgICdhc3NlcnRfd2Fp
dGluZ19hbmRfYWN0aXZlOiBhY3RpdmUnKTsKK30KKworZnVuY3Rpb24gYXNzZXJ0X2FjdGl2ZV9v
bmx5KHJlZ2lzdHJhdGlvbiwgZXhwZWN0ZWRfdXJsKSB7CisgIGFzc2VydF9lcXVhbHMocmVnaXN0
cmF0aW9uLmluc3RhbGxpbmcsIG51bGwsCisgICAgICAgICAgICAgICAgJ2Fzc2VydF9hY3RpdmVf
b25seTogaW5zdGFsbGluZycpOworICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi53YWl0aW5n
LCBudWxsLAorICAgICAgICAgICAgICAgICdhc3NlcnRfYWN0aXZlX29ubHk6IHdhaXRpbmcnKTsK
KyAgYXNzZXJ0X2VxdWFscyhyZWdpc3RyYXRpb24uYWN0aXZlLnNjcmlwdFVSTCwgZXhwZWN0ZWRf
dXJsLAorICAgICAgICAgICAgICAgICdhc3NlcnRfYWN0aXZlX29ubHk6IGFjdGl2ZScpOworfQor
Citwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0IFtyZWdpc3RyYXRpb24sIGV4cGVj
dGVkX3VybF0gPQorICAgICAgYXdhaXQgcHJlcGFyZV9yZWFkeV91cGRhdGVfd29ya2VyX2Zyb21f
ZmlsZSgKKyAgICAgICAgICB0LCAnZW1wdHkuanMnLCAnaW1wb3J0LXNjcmlwdHMtNDA0LmpzJyk7
CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIoKSk7CisKKyAg
YXdhaXQgcHJvbWlzZV9yZWplY3RzKHQsIG5ldyBUeXBlRXJyb3IoKSwgcmVnaXN0cmF0aW9uLnVw
ZGF0ZSgpKTsKKyAgYXNzZXJ0X2FjdGl2ZV9vbmx5KHJlZ2lzdHJhdGlvbiwgZXhwZWN0ZWRfdXJs
KTsKK30sICd1cGRhdGUoKSBzaG91bGQgZmFpbCB3aGVuIGEgbmV3IHdvcmtlciBpbXBvcnRzIGFu
IHVuYXZhaWxhYmxlIHNjcmlwdC4nKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBj
b25zdCBbcmVnaXN0cmF0aW9uLCBleHBlY3RlZF91cmxdID0KKyAgICAgIGF3YWl0IHByZXBhcmVf
cmVhZHlfdXBkYXRlX3dvcmtlcl9mcm9tX2ZpbGUoCisgICAgICAgICAgdCwgJ2ltcG9ydC1zY3Jp
cHRzLTQwNC1hZnRlci11cGRhdGUuanMnLCAnZW1wdHkuanMnKTsKKyAgdC5hZGRfY2xlYW51cCgo
KSA9PiByZWdpc3RyYXRpb24udW5yZWdpc3RlcigpKTsKKworICBhd2FpdCBQcm9taXNlLmFsbChb
cmVnaXN0cmF0aW9uLnVwZGF0ZSgpLCB3YWl0X2Zvcl91cGRhdGUodCwgcmVnaXN0cmF0aW9uKV0p
OworICBhc3NlcnRfaW5zdGFsbGluZ19hbmRfYWN0aXZlKHJlZ2lzdHJhdGlvbiwgZXhwZWN0ZWRf
dXJsKTsKKworICBhd2FpdCB3YWl0X2Zvcl9zdGF0ZSh0LCByZWdpc3RyYXRpb24uaW5zdGFsbGlu
ZywgJ2luc3RhbGxlZCcpOworICBhc3NlcnRfd2FpdGluZ19hbmRfYWN0aXZlKHJlZ2lzdHJhdGlv
biwgZXhwZWN0ZWRfdXJsKTsKKworICBhd2FpdCB3YWl0X2Zvcl9zdGF0ZSh0LCByZWdpc3RyYXRp
b24ud2FpdGluZywgJ2FjdGl2YXRlZCcpOworICBhc3NlcnRfYWN0aXZlX29ubHkocmVnaXN0cmF0
aW9uLCBleHBlY3RlZF91cmwpOworfSwgJ3VwZGF0ZSgpIHNob3VsZCBzdWNjZWVkIHdoZW4gdGhl
IG9sZCBpbXBvcnRlZCBzY3JpcHQgbm8gbG9uZ2VyIGV4aXN0IGJ1dCAnICsKKyAgICJ0aGUgbmV3
IHdvcmtlciBkb2Vzbid0IGltcG9ydCBpdC4iKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4g
eworICBjb25zdCBbcmVnaXN0cmF0aW9uLCBleHBlY3RlZF91cmxdID0gYXdhaXQgcHJlcGFyZV9y
ZWFkeV9ub3JtYWxfd29ya2VyKAorICAgIHQsICdpbXBvcnQtc2NyaXB0cy00MDQtYWZ0ZXItdXBk
YXRlLmpzJyk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIo
KSk7CisKKyAgYXdhaXQgcmVnaXN0cmF0aW9uLnVwZGF0ZSgpOworICBhc3NlcnRfYWN0aXZlX29u
bHkocmVnaXN0cmF0aW9uLCBleHBlY3RlZF91cmwpOworfSwgJ3VwZGF0ZSgpIHNob3VsZCB0cmVh
dCA0MDQgb24gaW1wb3J0ZWQgc2NyaXB0cyBhcyBubyBjaGFuZ2UuJyk7CisKK3Byb21pc2VfdGVz
dChhc3luYyB0ID0+IHsKKyAgY29uc3QgW3JlZ2lzdHJhdGlvbiwgZXhwZWN0ZWRfdXJsXSA9IGF3
YWl0IHByZXBhcmVfcmVhZHlfbm9ybWFsX3dvcmtlcigKKyAgICB0LCAnaW1wb3J0LXNjcmlwdHMt
NDA0LWFmdGVyLXVwZGF0ZS1wbHVzLXVwZGF0ZS13b3JrZXIuanMnLAorICAgICAgIGBBZGRpdGlv
bmFsS2V5PSR7dG9rZW4oKX1gKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiByZWdpc3RyYXRpb24u
dW5yZWdpc3RlcigpKTsKKworICBhd2FpdCBwcm9taXNlX3JlamVjdHModCwgbmV3IFR5cGVFcnJv
cigpLCByZWdpc3RyYXRpb24udXBkYXRlKCkpOworICBhc3NlcnRfYWN0aXZlX29ubHkocmVnaXN0
cmF0aW9uLCBleHBlY3RlZF91cmwpOworfSwgJ3VwZGF0ZSgpIHNob3VsZCBmaW5kIGFuIHVwZGF0
ZSBpbiBhbiBpbXBvcnRlZCBzY3JpcHQgYnV0IHVwZGF0ZSgpIHNob3VsZCAnICsKKyAgICdyZXN1
bHQgaW4gZmFpbHVyZSBkdWUgdG8gbWlzc2luZyB0aGUgb3RoZXIgaW1wb3J0ZWQgc2NyaXB0Licp
OworPC9zY3JpcHQ+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRh
dGUtbm90LWFsbG93ZWQuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBk
YXRlLW5vdC1hbGxvd2VkLmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCBjOTU5YWNkNWJiYWY4OTky
MjRiNzI0OWIxYjZiNmQzMGQ2NDlmYjIxLi43OTFiZTBhYjc2NjkyZjJmYjg3ZDYwZTgxYjc4ZmZh
N2FkYWVkOTViIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUtbm90LWFsbG93
ZWQuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0ZS1ub3Qt
YWxsb3dlZC5odHRwcy1leHBlY3RlZC50eHQKQEAgLTEsNiArMSw1IEBACiAKLUhhcm5lc3MgRXJy
b3IgKFRJTUVPVVQpLCBtZXNzYWdlID0gbnVsbAotCi1QQVNTIFNlcnZpY2VXb3JrZXJSZWdpc3Ry
YXRpb24udXBkYXRlKCkgZnJvbSBjbGllbnQgdGhyb3dzIHdoaWxlIGluc3RhbGxpbmcgc2Vydmlj
ZSB3b3JrZXIuIAotVElNRU9VVCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLnVwZGF0ZSgpIGZy
b20gaW5zdGFsbGluZyBzZXJ2aWNlIHdvcmtlciB0aHJvd3MuIFRlc3QgdGltZWQgb3V0CitQQVNT
IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24udXBkYXRlKCkgZnJvbSBjbGllbnQgc3VjY2VlZHMg
d2hpbGUgaW5zdGFsbGluZyBzZXJ2aWNlIHdvcmtlci4gCitGQUlMIFNlcnZpY2VXb3JrZXJSZWdp
c3RyYXRpb24udXBkYXRlKCkgZnJvbSBpbnN0YWxsaW5nIHNlcnZpY2Ugd29ya2VyIHRocm93cy4g
YXNzZXJ0X2ZhbHNlOiB1cGRhdGUoKSBzaG91bGQgaGF2ZSBmYWlsZWQuIGV4cGVjdGVkIGZhbHNl
IGdvdCB0cnVlCitGQUlMIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24udXBkYXRlKCkgZnJvbSBh
Y3RpdmUgc2VydmljZSB3b3JrZXIgc3VjY2VlZHMgd2hpbGUgaW5zdGFsbGluZyBzZXJ2aWNlIHdv
cmtlci4gYXNzZXJ0X2VxdWFsczogU2VydmljZSB3b3JrZXIgc2hvdWxkIGJlIGFjdGl2YXRlZC4g
ZXhwZWN0ZWQgInJlZHVuZGFudCIgYnV0IGdvdCAiYWN0aXZhdGVkIgogCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci91cGRhdGUtcmVnaXN0cmF0aW9uLXdpdGgtdHlwZS5odHRwcy5odG1s
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLXJlZ2lzdHJhdGlvbi13aXRoLXR5cGUuaHR0cHMu
aHRtbAppbmRleCBlN2QzNjkyODEyZWI4YTI0ZjI1M2I4N2UxNTdmNGE0MzY2ZTMwOThlLi44MTJm
YTBiNGM3Y2RiZGZjYzQwZWNkZjBmNTQ3NzI4OGUwNDVmZmFhIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci91cGRhdGUtcmVnaXN0cmF0aW9uLXdpdGgtdHlwZS5odHRwcy5odG1sCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0ZS1yZWdpc3RyYXRpb24td2l0aC10eXBlLmh0dHBzLmh0
bWwKQEAgLTIsNyArMiw3IEBACiA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CiA8dGl0bGU+U2Vydmlj
ZSBXb3JrZXI6IFVwZGF0ZSB0aGUgcmVnaXN0cmF0aW9uIHdpdGggYSBkaWZmZXJlbnQgc2NyaXB0
IHR5cGUuPC90aXRsZT4KIDwhLS0gY29tbW9uLmpzIGlzIGZvciBndWlkKCkgLS0+Ci08c2NyaXB0
IHNyYz0iL2NvbW1vbi9zZWN1cml0eS1mZWF0dXJlcy9yZXNvdXJjZXMvY29tbW9uLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIvY29tbW9uL3NlY3VyaXR5LWZlYXR1cmVzL3Jlc291cmNlcy9j
b21tb24uc3ViLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGVzdC1oZWxwZXJzLnN1
Yi5qcyI+PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUuaHR0
cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLmh0dHBzLWV4cGVjdGVk
LnR4dAppbmRleCA5NjdmMGY1ODRkNDAwMTE1ZTQ2ZDFiMzcwMzc5OTBjZWQ1MzI0MGZhLi4xM2Qz
ZmRiNDZmM2Y3NTUzMmM2YmZiMzhkMTY4ZTlmMjExMzk5ZmE4IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci91cGRhdGUuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3VwZGF0ZS5odHRwcy1leHBlY3RlZC50eHQKQEAgLTEsMyArMSwxMSBAQAorQ09OU09MRSBN
RVNTQUdFOiBOb3QgYWxsb3dlZCB0byBmb2xsb3cgYSByZWRpcmVjdGlvbiB3aGlsZSBsb2FkaW5n
IGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jl
c291cmNlcy91cGRhdGUtd29ya2VyLnB5P0tleT1hMjZkYjliNS0wNjFkLTQwNzktYTMxMC0zYTRm
OTRlM2NkYTUmTW9kZT1yZWRpcmVjdAorQ09OU09MRSBNRVNTQUdFOiBDYW5ub3QgbG9hZCBodHRw
czovL2xvY2FsaG9zdDo5NDQzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJj
ZXMvdXBkYXRlLXdvcmtlci5weT9LZXk9YTI2ZGI5YjUtMDYxZC00MDc5LWEzMTAtM2E0Zjk0ZTNj
ZGE1Jk1vZGU9cmVkaXJlY3QgZHVlIHRvIGFjY2VzcyBjb250cm9sIGNoZWNrcy4KIAotUEFTUyBV
cGRhdGUgYSByZWdpc3RyYXRpb24uIAorUEFTUyB1cGRhdGUoKSBzaG91bGQgc3VjY2VlZCB3aGVu
IG5ldyBzY3JpcHQgaXMgYXZhaWxhYmxlLiAKK1BBU1MgdXBkYXRlKCkgc2hvdWxkIGZhaWwgd2hl
biBtaW1lIHR5cGUgaXMgaW52YWxpZC4gCitGQUlMIHVwZGF0ZSgpIHNob3VsZCBmYWlsIHdoZW4g
YSByZXNwb25zZSBmb3IgdGhlIG1haW4gc2NyaXB0IGlzIHJlZGlyZWN0LiBhc3NlcnRfdGhyb3dz
OiBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeyB0aHJvdyBlIH0iIHRocmV3IG9iamVjdCAiU2VjdXJp
dHlFcnJvcjogU2NyaXB0IGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL3Jlc291cmNlcy91cGRhdGUtd29ya2VyLnB5P0tleT1hMjZkYjliNS0wNjFk
LTQwNzktYTMxMC0zYTRmOTRlM2NkYTUmTW9kZT1yZWRpcmVjdCBsb2FkIGZhaWxlZCIgKCJTZWN1
cml0eUVycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVycm9yIikKK1BB
U1MgdXBkYXRlKCkgc2hvdWxkIGZhaWwgd2hlbiBhIG5ldyBzY3JpcHQgY29udGFpbnMgYSBzeW50
YXggZXJyb3IuIAorUEFTUyB1cGRhdGUoKSBzaG91bGQgcmVzb2x2ZSB3aGVuIHRoZSBpbnN0YWxs
IGV2ZW50IHRocm93cy4gCitQQVNTIHVwZGF0ZSgpIHNob3VsZCBmYWlsIHdoZW4gdGhlIHBlbmRp
bmcgdW5pbnN0YWxsIGZsYWcgaXMgc2V0LiAKK1BBU1MgdXBkYXRlKCkgc2hvdWxkIHN1Y2NlZWQg
d2hlbiB0aGUgc2NyaXB0IHNocmlua3MuIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci91cGRhdGUuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0ZS5odHRwcy5odG1s
CmluZGV4IDY3MTdkNGQ3YWMyODljOGExOGIxNTAwZTIxNzk1ZmQxNmM1MzIxZTcuLmY3ZmFlMzVl
ZDI4ZDdjODJjMjYxNzUyYzIyY2QwOTFlNDczODAxYjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL3VwZGF0ZS5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0ZS5o
dHRwcy5odG1sCkBAIC0xLDUgKzEsNyBAQAogPCFET0NUWVBFIGh0bWw+CiA8dGl0bGU+U2Vydmlj
ZSBXb3JrZXI6IFJlZ2lzdHJhdGlvbiB1cGRhdGUoKTwvdGl0bGU+Cis8bWV0YSBuYW1lPSJ0aW1l
b3V0IiBjb250ZW50PSJsb25nIj4KKzxzY3JpcHQgc3JjPSIvY29tbW9uL3V0aWxzLmpzIj48L3Nj
cmlwdD4KIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4K
IDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4K
IDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGVzdGhhcm5lc3MtaGVscGVycy5qcyI+PC9zY3JpcHQ+
CkBAIC03LDExNSArOSwxNTYgQEAKIDxzY3JpcHQ+CiAndXNlIHN0cmljdCc7CiAKLXByb21pc2Vf
dGVzdChmdW5jdGlvbih0KSB7Ci0gICAgdmFyIHNjb3BlID0gJ3Jlc291cmNlcy9zaW1wbGUudHh0
JzsKLSAgICB2YXIgd29ya2VyX3VybCA9ICdyZXNvdXJjZXMvdXBkYXRlLXdvcmtlci5weSc7Ci0g
ICAgdmFyIGV4cGVjdGVkX3VybCA9IG5vcm1hbGl6ZVVSTCh3b3JrZXJfdXJsKTsKLSAgICB2YXIg
cmVnaXN0cmF0aW9uOwotCi0gICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5k
X3JlZ2lzdGVyKHQsIHdvcmtlcl91cmwsIHNjb3BlKQotICAgICAgLnRoZW4oZnVuY3Rpb24ocikg
ewotICAgICAgICAgIHJlZ2lzdHJhdGlvbiA9IHI7Ci0gICAgICAgICAgcmV0dXJuIHdhaXRfZm9y
X3N0YXRlKHQsIHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7Ci0gICAgICAg
IH0pCi0gICAgICAudGhlbihmdW5jdGlvbigpIHsKLSAgICAgICAgICBhc3NlcnRfZXF1YWxzKHJl
Z2lzdHJhdGlvbi5pbnN0YWxsaW5nLCBudWxsLAotICAgICAgICAgICAgICAgICAgICAgICAgJ2lu
c3RhbGxpbmcgc2hvdWxkIGJlIG51bGwgaW4gdGhlIGluaXRpYWwgc3RhdGUuJyk7Ci0gICAgICAg
ICAgYXNzZXJ0X2VxdWFscyhyZWdpc3RyYXRpb24ud2FpdGluZywgbnVsbCwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICd3YWl0aW5nIHNob3VsZCBiZSBudWxsIGluIHRoZSBpbml0aWFsIHN0YXRl
LicpOwotICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVnaXN0cmF0aW9uLmFjdGl2ZS5zY3JpcHRV
UkwsIGV4cGVjdGVkX3VybCwKLSAgICAgICAgICAgICAgICAgICAgICAgICdhY3RpdmUgc2hvdWxk
IGV4aXN0IGluIHRoZSBpbml0aWFsIHN0YXRlLicpOwotICAgICAgICAgIC8vIEEgbmV3IHdvcmtl
ciAoZ2VuZXJhdGVkIGJ5IHVwZGF0ZS13b3JrZXIucHkpIHNob3VsZCBiZSBmb3VuZC4KLSAgICAg
ICAgICAvLyBUaGUgcmV0dXJuZWQgcHJvbWlzZSBzaG91bGQgcmVzb2x2ZSB3aGVuIGEgbmV3IHdv
cmtlciBzY3JpcHQgaXMKLSAgICAgICAgICAvLyBmZXRjaGVkIGFuZCBzdGFydHMgaW5zdGFsbGlu
Zy4KLSAgICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwoW3JlZ2lzdHJhdGlvbi51cGRhdGUoKSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdhaXRfZm9yX3VwZGF0ZSh0LCByZWdpc3Ry
YXRpb24pXSk7Ci0gICAgICAgIH0pCi0gICAgICAudGhlbihmdW5jdGlvbigpIHsKLSAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLnNjcmlwdFVSTCwgZXhwZWN0
ZWRfdXJsLAotICAgICAgICAgICAgICAgICAgICAgICAgJ25ldyBpbnN0YWxsaW5nIHNob3VsZCBi
ZSBzZXQgYWZ0ZXIgdXBkYXRlIHJlc29sdmVzLicpOwotICAgICAgICAgIGFzc2VydF9lcXVhbHMo
cmVnaXN0cmF0aW9uLndhaXRpbmcsIG51bGwsCi0gICAgICAgICAgICAgICAgICAgICAgICAnd2Fp
dGluZyBzaG91bGQgc3RpbGwgYmUgbnVsbCBhZnRlciB1cGRhdGUgcmVzb2x2ZXMuJyk7Ci0gICAg
ICAgICAgYXNzZXJ0X2VxdWFscyhyZWdpc3RyYXRpb24uYWN0aXZlLnNjcmlwdFVSTCwgZXhwZWN0
ZWRfdXJsLAotICAgICAgICAgICAgICAgICAgICAgICAgJ2FjdGl2ZSBzaG91bGQgc3RpbGwgZXhp
c3QgYWZ0ZXIgdXBkYXRlIGZvdW5kLicpOwotICAgICAgICAgIHJldHVybiB3YWl0X2Zvcl9zdGF0
ZSh0LCByZWdpc3RyYXRpb24uaW5zdGFsbGluZywgJ2luc3RhbGxlZCcpOwotICAgICAgICB9KQot
ICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgYXNzZXJ0X2VxdWFscyhyZWdpc3Ry
YXRpb24uaW5zdGFsbGluZywgbnVsbCwKLSAgICAgICAgICAgICAgICAgICAgICAgICdpbnN0YWxs
aW5nIHNob3VsZCBiZSBudWxsIGFmdGVyIGluc3RhbGxpbmcuJyk7Ci0gICAgICAgICAgYXNzZXJ0
X2VxdWFscyhyZWdpc3RyYXRpb24ud2FpdGluZy5zY3JpcHRVUkwsIGV4cGVjdGVkX3VybCwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICd3YWl0aW5nIHNob3VsZCBiZSBzZXQgYWZ0ZXIgaW5zdGFs
bGluZy4nKTsKLSAgICAgICAgICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi5hY3RpdmUuc2Ny
aXB0VVJMLCBleHBlY3RlZF91cmwsCi0gICAgICAgICAgICAgICAgICAgICAgICAnYWN0aXZlIHNo
b3VsZCBzdGlsbCBleGlzdCBhZnRlciBpbnN0YWxsaW5nLicpOwotICAgICAgICAgIHJldHVybiB3
YWl0X2Zvcl9zdGF0ZSh0LCByZWdpc3RyYXRpb24ud2FpdGluZywgJ2FjdGl2YXRlZCcpOwotICAg
ICAgICB9KQotICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgYXNzZXJ0X2VxdWFs
cyhyZWdpc3RyYXRpb24uaW5zdGFsbGluZywgbnVsbCwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICdpbnN0YWxsaW5nIHNob3VsZCBiZSBudWxsIGFmdGVyIGFjdGl2YXRlZC4nKTsKLSAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi53YWl0aW5nLCBudWxsLAotICAgICAgICAgICAg
ICAgICAgICAgICAgJ3dhaXRpbmcgc2hvdWxkIGJlIG51bGwgYWZ0ZXIgYWN0aXZhdGVkLicpOwot
ICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVnaXN0cmF0aW9uLmFjdGl2ZS5zY3JpcHRVUkwsIGV4
cGVjdGVkX3VybCwKLSAgICAgICAgICAgICAgICAgICAgICAgICduZXcgd29ya2VyIHNob3VsZCBi
ZSBwcm9tb3RlZCB0byBhY3RpdmUuJyk7Ci0gICAgICAgIH0pCi0gICAgICAudGhlbihmdW5jdGlv
bigpIHsKLSAgICAgICAgICAvLyBBIG5ldyB3b3JrZXIoZ2VuZXJhdGVkIGJ5IHVwZGF0ZS13b3Jr
ZXIucHkpIHNob3VsZCBiZSBmb3VuZC4KLSAgICAgICAgICAvLyBUaGUgcmV0dXJuZWQgcHJvbWlz
ZSBzaG91bGQgcmVqZWN0IGFzIHVwZGF0ZS13b3JrZXIucHkgc2V0cyB0aGUKLSAgICAgICAgICAv
LyBtaW1ldHlwZSB0byBhIGRpc2FsbG93ZWQgdmFsdWUgZm9yIHRoaXMgYXR0ZW1wdC4KLSAgICAg
ICAgICByZXR1cm4gcmVnaXN0cmF0aW9uLnVwZGF0ZSgpOwotICAgICAgICB9KQotICAgICAgLnRo
ZW4oCi0gICAgICAgIGZ1bmN0aW9uKCkgeyBhc3NlcnRfdW5yZWFjaGVkKCJ1cGRhdGUoKSBzaG91
bGQgcmVqZWN0LiIpOyB9LAotICAgICAgICBmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgYXNzZXJ0
X3Rocm93cygnU2VjdXJpdHlFcnJvcicsIGZ1bmN0aW9uKCkgeyB0aHJvdyBlOyB9LAotICAgICAg
ICAgICAgICAgICAgICAgICAgJ1VzaW5nIGEgZGlzYWxsb3dlZCBtaW1ldHlwZSBzaG91bGQgbWFr
ZSB1cGRhdGUoKSAnICsKLSAgICAgICAgICAgICAgICAgICAgICAgICdwcm9taXNlIHJlamVjdCB3
aXRoIGEgU2VjdXJpdHlFcnJvci4nKTsKLSAgICAgICAgICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJh
dGlvbi5hY3RpdmUuc2NyaXB0VVJMLCBleHBlY3RlZF91cmwsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAnYWN0aXZlIHNob3VsZCBzdGlsbCBleGlzdCBhZnRlciB1cGRhdGUgZmFpbHVyZS4nKTsK
LQotICAgICAgICAgIC8vIEEgbmV3IHdvcmtlcihnZW5lcmF0ZWQgYnkgdXBkYXRlLXdvcmtlci5w
eSkgc2hvdWxkIGJlIGZvdW5kLgotICAgICAgICAgIC8vIFRoZSByZXR1cm5lZCBwcm9taXNlIHNo
b3VsZCByZWplY3QgYXMgdXBkYXRlLXdvcmtlci5weSByZXR1cm5zCi0gICAgICAgICAgLy8gYSB3
b3JrZXIgc2NyaXB0IHdpdGggYSBzeW50YXggZXJyb3IuCi0gICAgICAgICAgcmV0dXJuIHJlZ2lz
dHJhdGlvbi51cGRhdGUoKTsKLSAgICAgICAgfSkKLSAgICAgIC50aGVuKAotICAgICAgICBmdW5j
dGlvbigpIHsgYXNzZXJ0X3VucmVhY2hlZCgidXBkYXRlKCkgc2hvdWxkIHJlamVjdC4iKTsgfSwK
LSAgICAgICAgZnVuY3Rpb24oZSkgewotICAgICAgICAgIGFzc2VydF90aHJvd3Moe25hbWU6ICdU
eXBlRXJyb3InfSwgZnVuY3Rpb24gKCkgeyB0aHJvdyBlOyB9LAotICAgICAgICAgICAgICAgICAg
ICAgICAgJ0Egc2NyaXB0IHN5bnRheCBlcnJvciBzaG91bGQgbWFrZSB1cGRhdGUoKSAnICsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICdwcm9taXNlIHJlamVjdCB3aXRoIGEgVHlwZUVycm9yLicp
OwotICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVnaXN0cmF0aW9uLmFjdGl2ZS5zY3JpcHRVUkws
IGV4cGVjdGVkX3VybCwKLSAgICAgICAgICAgICAgICAgICAgICAgICdhY3RpdmUgc2hvdWxkIHN0
aWxsIGV4aXN0IGFmdGVyIHVwZGF0ZSBmYWlsdXJlLicpOwotCi0gICAgICAgICAgLy8gQSBuZXcg
d29ya2VyKGdlbmVyYXRlZCBieSB1cGRhdGUtd29ya2VyLnB5KSBzaG91bGQgYmUgZm91bmQuCi0g
ICAgICAgICAgLy8gVGhlIHJldHVybmVkIHByb21pc2Ugc2hvdWxkIG5vdCByZWplY3QsIGV2ZW4g
dGhvdWdoCi0gICAgICAgICAgLy8gdXBkYXRlLXdvcmtlci5weSByZXR1cm5zIGEgd29ya2VyIHNj
cmlwdCB0aGF0IHRocm93cyBpbiB0aGUKLSAgICAgICAgICAvLyBpbnN0YWxsIGV2ZW50IGhhbmRs
ZXIuCi0gICAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKFtyZWdpc3RyYXRpb24udXBkYXRlKCks
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3YWl0X2Zvcl91cGRhdGUodCwgcmVnaXN0
cmF0aW9uKV0pOwotICAgICAgICB9KQotICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7Ci0gICAgICAg
ICAgYXNzZXJ0X2VxdWFscyhyZWdpc3RyYXRpb24uaW5zdGFsbGluZy5zY3JpcHRVUkwsIGV4cGVj
dGVkX3VybCwKLSAgICAgICAgICAgICAgICAgICAgICAgICduZXcgaW5zdGFsbGluZyBzaG91bGQg
YmUgc2V0IGFmdGVyIHVwZGF0ZSByZXNvbHZlcy4nKTsKLSAgICAgICAgICBhc3NlcnRfZXF1YWxz
KHJlZ2lzdHJhdGlvbi53YWl0aW5nLCBudWxsLAotICAgICAgICAgICAgICAgICAgICAgICAgJ3dh
aXRpbmcgc2hvdWxkIGJlIG51bGwgYWZ0ZXIgYWN0aXZhdGVkLicpOwotICAgICAgICAgIGFzc2Vy
dF9lcXVhbHMocmVnaXN0cmF0aW9uLmFjdGl2ZS5zY3JpcHRVUkwsIGV4cGVjdGVkX3VybCwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICdhY3RpdmUgc2hvdWxkIHN0aWxsIGV4aXN0IGFmdGVyIHVw
ZGF0ZSBmb3VuZC4nKTsKLQotICAgICAgICAgIC8vIFdlIG5lZWQgdG8gaG9sZCBhIGNsaWVudCBh
bGl2ZSBzbyB0aGF0IHVucmVnaXN0ZXIoKSBiZWxvdyBkb2Vzbid0Ci0gICAgICAgICAgLy8gcmVt
b3ZlIHRoZSByZWdpc3RyYXRpb24gYmVmb3JlIHVwZGF0ZSgpIGhhcyBoYWQgYSBjaGFuY2UgdG8g
bG9vawotICAgICAgICAgIC8vIGF0IHRoZSBwZW5kaW5nIHVuaW5zdGFsbCBmbGFnLgotICAgICAg
ICAgIHJldHVybiB3aXRoX2lmcmFtZShzY29wZSk7Ci0gICAgICAgIH0pCi0gICAgICAudGhlbihm
dW5jdGlvbihmcmFtZSkgewotICAgICAgICAgIHQuYWRkX2NsZWFudXAoZnVuY3Rpb24oKSB7Ci0g
ICAgICAgICAgICAgIGZyYW1lLnJlbW92ZSgpOwotICAgICAgICAgICAgfSk7Ci0KLSAgICAgICAg
ICByZXR1cm4gYXNzZXJ0X3Byb21pc2VfcmVqZWN0cygKLSAgICAgICAgICAgICAgUHJvbWlzZS5h
bGwoW3JlZ2lzdHJhdGlvbi51bnJlZ2lzdGVyKCksIHJlZ2lzdHJhdGlvbi51cGRhdGUoKV0pLAot
ICAgICAgICAgICAgICBuZXcgVHlwZUVycm9yKCksCi0gICAgICAgICAgICAgICdDYWxsaW5nIHVw
ZGF0ZSgpIHdoaWxlIHRoZSB1bmluc3RhbGxpbmcgZmxhZyBpcyBzZXQgJyArCi0gICAgICAgICAg
ICAgICdzaG91bGQgcmV0dXJuIGEgcHJvbWlzZSB0aGF0IHJlamVjdHMgd2l0aCBhIFR5cGVFcnJv
ci4nKTsKLSAgICAgICAgfSk7Ci0gIH0sICdVcGRhdGUgYSByZWdpc3RyYXRpb24uJyk7Citjb25z
dCBTQ09QRSA9ICdyZXNvdXJjZXMvc2ltcGxlLnR4dCc7CisKKy8vIENyZWF0ZSBhIHNlcnZpY2Ug
d29ya2VyICh1cGRhdGUtd29ya2VyLnB5KS4gVGhlIHJlc3BvbnNlIHRvIHVwZGF0ZSgpIHdpbGwg
YmUKKy8vIGRpZmZlcmVudCBiYXNlZCBvbiB0aGUgbW9kZS4KK2FzeW5jIGZ1bmN0aW9uIHByZXBh
cmVfcmVhZHlfcmVnaXN0cmF0aW9uX3dpdGhfbW9kZSh0LCBtb2RlKSB7CisgIGNvbnN0IGtleSA9
IHRva2VuKCk7CisgIGNvbnN0IHdvcmtlcl91cmwgPSBgcmVzb3VyY2VzL3VwZGF0ZS13b3JrZXIu
cHk/S2V5PSR7a2V5fSZNb2RlPSR7bW9kZX1gOworICBjb25zdCBleHBlY3RlZF91cmwgPSBub3Jt
YWxpemVVUkwod29ya2VyX3VybCk7CisgIGNvbnN0IHJlZ2lzdHJhdGlvbiA9IGF3YWl0IHNlcnZp
Y2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKAorICAgICAgdCwgd29ya2VyX3VybCwg
U0NPUEUpOworICBhd2FpdCB3YWl0X2Zvcl9zdGF0ZSh0LCByZWdpc3RyYXRpb24uaW5zdGFsbGlu
ZywgJ2FjdGl2YXRlZCcpOworICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5n
LCBudWxsLAorICAgICAgICAgICAgICAgICdwcmVwYXJlX3JlYWR5OiBpbnN0YWxsaW5nJyk7Cisg
IGFzc2VydF9lcXVhbHMocmVnaXN0cmF0aW9uLndhaXRpbmcsIG51bGwsCisgICAgICAgICAgICAg
ICAgJ3ByZXBhcmVfcmVhZHk6IHdhaXRpbmcnKTsKKyAgYXNzZXJ0X2VxdWFscyhyZWdpc3RyYXRp
b24uYWN0aXZlLnNjcmlwdFVSTCwgZXhwZWN0ZWRfdXJsLAorICAgICAgICAgICAgICAgICdwcmVw
YXJlX3JlYWR5OiBhY3RpdmUnKTsKKyAgcmV0dXJuIFtyZWdpc3RyYXRpb24sIGV4cGVjdGVkX3Vy
bF07Cit9CisKKy8vIENyZWF0ZSBhIHNlcnZpY2Ugd29ya2VyICh1cGRhdGUtd29ya2VyLWZyb20t
ZmlsZS5weSksIHdoaWNoIGlzIGluaXRpYWxseQorLy8gfGluaXRpYWxfd29ya2VyfCBhbmQgfHVw
ZGF0ZWRfd29ya2VyfCBsYXRlci4KK2FzeW5jIGZ1bmN0aW9uIHByZXBhcmVfcmVhZHlfcmVnaXN0
cmF0aW9uX3dpdGhfZmlsZSgKKyAgICB0LCBpbml0aWFsX3dvcmtlciwgdXBkYXRlZF93b3JrZXIp
IHsKKyAgY29uc3Qga2V5ID0gdG9rZW4oKTsKKyAgY29uc3Qgd29ya2VyX3VybCA9IGByZXNvdXJj
ZXMvdXBkYXRlLXdvcmtlci1mcm9tLWZpbGUucHk/YCArCisgICAgICBgRmlyc3Q9JHtpbml0aWFs
X3dvcmtlcn0mU2Vjb25kPSR7dXBkYXRlZF93b3JrZXJ9JktleT0ke2tleX1gOworICBjb25zdCBl
eHBlY3RlZF91cmwgPSBub3JtYWxpemVVUkwod29ya2VyX3VybCk7CisKKyAgY29uc3QgcmVnaXN0
cmF0aW9uID0gYXdhaXQgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIoCisg
ICAgICB0LCB3b3JrZXJfdXJsLCBTQ09QRSk7CisgIGF3YWl0IHdhaXRfZm9yX3N0YXRlKHQsIHJl
Z2lzdHJhdGlvbi5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7CisgIGFzc2VydF9lcXVhbHMocmVn
aXN0cmF0aW9uLmluc3RhbGxpbmcsIG51bGwsCisgICAgICAgICAgICAgICAgJ3ByZXBhcmVfcmVh
ZHk6IGluc3RhbGxpbmcnKTsKKyAgYXNzZXJ0X2VxdWFscyhyZWdpc3RyYXRpb24ud2FpdGluZywg
bnVsbCwKKyAgICAgICAgICAgICAgICAncHJlcGFyZV9yZWFkeTogd2FpdGluZycpOworICBhc3Nl
cnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi5hY3RpdmUuc2NyaXB0VVJMLCBleHBlY3RlZF91cmwsCisg
ICAgICAgICAgICAgICAgJ3ByZXBhcmVfcmVhZHk6IGFjdGl2ZScpOworICByZXR1cm4gW3JlZ2lz
dHJhdGlvbiwgZXhwZWN0ZWRfdXJsXTsKK30KKworZnVuY3Rpb24gYXNzZXJ0X2luc3RhbGxpbmdf
YW5kX2FjdGl2ZShyZWdpc3RyYXRpb24sIGV4cGVjdGVkX3VybCkgeworICBhc3NlcnRfZXF1YWxz
KHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLnNjcmlwdFVSTCwgZXhwZWN0ZWRfdXJsLAorICAgICAg
ICAgICAgICAgICdhc3NlcnRfaW5zdGFsbGluZ19hbmRfYWN0aXZlOiBpbnN0YWxsaW5nJyk7Cisg
IGFzc2VydF9lcXVhbHMocmVnaXN0cmF0aW9uLndhaXRpbmcsIG51bGwsCisgICAgICAgICAgICAg
ICAgJ2Fzc2VydF9pbnN0YWxsaW5nX2FuZF9hY3RpdmU6IHdhaXRpbmcnKTsKKyAgYXNzZXJ0X2Vx
dWFscyhyZWdpc3RyYXRpb24uYWN0aXZlLnNjcmlwdFVSTCwgZXhwZWN0ZWRfdXJsLAorICAgICAg
ICAgICAgICAgICdhc3NlcnRfaW5zdGFsbGluZ19hbmRfYWN0aXZlOiBhY3RpdmUnKTsKK30KKwor
ZnVuY3Rpb24gYXNzZXJ0X3dhaXRpbmdfYW5kX2FjdGl2ZShyZWdpc3RyYXRpb24sIGV4cGVjdGVk
X3VybCkgeworICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLCBudWxsLAor
ICAgICAgICAgICAgICAgICdhc3NlcnRfd2FpdGluZ19hbmRfYWN0aXZlOiBpbnN0YWxsaW5nJyk7
CisgIGFzc2VydF9lcXVhbHMocmVnaXN0cmF0aW9uLndhaXRpbmcuc2NyaXB0VVJMLCBleHBlY3Rl
ZF91cmwsCisgICAgICAgICAgICAgICAgJ2Fzc2VydF93YWl0aW5nX2FuZF9hY3RpdmU6IHdhaXRp
bmcnKTsKKyAgYXNzZXJ0X2VxdWFscyhyZWdpc3RyYXRpb24uYWN0aXZlLnNjcmlwdFVSTCwgZXhw
ZWN0ZWRfdXJsLAorICAgICAgICAgICAgICAgICdhc3NlcnRfd2FpdGluZ19hbmRfYWN0aXZlOiBh
Y3RpdmUnKTsKK30KKworZnVuY3Rpb24gYXNzZXJ0X2FjdGl2ZV9vbmx5KHJlZ2lzdHJhdGlvbiwg
ZXhwZWN0ZWRfdXJsKSB7CisgIGFzc2VydF9lcXVhbHMocmVnaXN0cmF0aW9uLmluc3RhbGxpbmcs
IG51bGwsCisgICAgICAgICAgICAgICAgJ2Fzc2VydF9hY3RpdmVfb25seTogaW5zdGFsbGluZycp
OworICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi53YWl0aW5nLCBudWxsLAorICAgICAgICAg
ICAgICAgICdhc3NlcnRfYWN0aXZlX29ubHk6IHdhaXRpbmcnKTsKKyAgYXNzZXJ0X2VxdWFscyhy
ZWdpc3RyYXRpb24uYWN0aXZlLnNjcmlwdFVSTCwgZXhwZWN0ZWRfdXJsLAorICAgICAgICAgICAg
ICAgICdhc3NlcnRfYWN0aXZlX29ubHk6IGFjdGl2ZScpOworfQorCitwcm9taXNlX3Rlc3QoYXN5
bmMgdCA9PiB7CisgIGNvbnN0IFtyZWdpc3RyYXRpb24sIGV4cGVjdGVkX3VybF0gPQorICAgICAg
YXdhaXQgcHJlcGFyZV9yZWFkeV9yZWdpc3RyYXRpb25fd2l0aF9tb2RlKHQsICdub3JtYWwnKTsK
KyAgdC5hZGRfY2xlYW51cCgoKSA9PiByZWdpc3RyYXRpb24udW5yZWdpc3RlcigpKTsKKworICBh
d2FpdCBQcm9taXNlLmFsbChbcmVnaXN0cmF0aW9uLnVwZGF0ZSgpLCB3YWl0X2Zvcl91cGRhdGUo
dCwgcmVnaXN0cmF0aW9uKV0pOworICBhc3NlcnRfaW5zdGFsbGluZ19hbmRfYWN0aXZlKHJlZ2lz
dHJhdGlvbiwgZXhwZWN0ZWRfdXJsKTsKKworICBhd2FpdCB3YWl0X2Zvcl9zdGF0ZSh0LCByZWdp
c3RyYXRpb24uaW5zdGFsbGluZywgJ2luc3RhbGxlZCcpOworICBhc3NlcnRfd2FpdGluZ19hbmRf
YWN0aXZlKHJlZ2lzdHJhdGlvbiwgZXhwZWN0ZWRfdXJsKTsKKworICBhd2FpdCB3YWl0X2Zvcl9z
dGF0ZSh0LCByZWdpc3RyYXRpb24ud2FpdGluZywgJ2FjdGl2YXRlZCcpOworICBhc3NlcnRfYWN0
aXZlX29ubHkocmVnaXN0cmF0aW9uLCBleHBlY3RlZF91cmwpOworfSwgJ3VwZGF0ZSgpIHNob3Vs
ZCBzdWNjZWVkIHdoZW4gbmV3IHNjcmlwdCBpcyBhdmFpbGFibGUuJyk7CisKK3Byb21pc2VfdGVz
dChhc3luYyB0ID0+IHsKKyAgY29uc3QgW3JlZ2lzdHJhdGlvbiwgZXhwZWN0ZWRfdXJsXSA9Cisg
ICAgICBhd2FpdCBwcmVwYXJlX3JlYWR5X3JlZ2lzdHJhdGlvbl93aXRoX21vZGUodCwgJ2JhZF9t
aW1lX3R5cGUnKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiByZWdpc3RyYXRpb24udW5yZWdpc3Rl
cigpKTsKKworICBhd2FpdCBwcm9taXNlX3JlamVjdHModCwgJ1NlY3VyaXR5RXJyb3InLCByZWdp
c3RyYXRpb24udXBkYXRlKCkpOworICBhc3NlcnRfYWN0aXZlX29ubHkocmVnaXN0cmF0aW9uLCBl
eHBlY3RlZF91cmwpOworfSwgJ3VwZGF0ZSgpIHNob3VsZCBmYWlsIHdoZW4gbWltZSB0eXBlIGlz
IGludmFsaWQuJyk7CisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgY29uc3QgW3JlZ2lz
dHJhdGlvbiwgZXhwZWN0ZWRfdXJsXSA9CisgICAgICBhd2FpdCBwcmVwYXJlX3JlYWR5X3JlZ2lz
dHJhdGlvbl93aXRoX21vZGUodCwgJ3JlZGlyZWN0Jyk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4g
cmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIoKSk7CisKKyAgYXdhaXQgcHJvbWlzZV9yZWplY3RzKHQs
IG5ldyBUeXBlRXJyb3IoKSwgcmVnaXN0cmF0aW9uLnVwZGF0ZSgpKTsKKyAgYXNzZXJ0X2FjdGl2
ZV9vbmx5KHJlZ2lzdHJhdGlvbiwgZXhwZWN0ZWRfdXJsKTsKK30sICd1cGRhdGUoKSBzaG91bGQg
ZmFpbCB3aGVuIGEgcmVzcG9uc2UgZm9yIHRoZSBtYWluIHNjcmlwdCBpcyByZWRpcmVjdC4nKTsK
KworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25zdCBbcmVnaXN0cmF0aW9uLCBleHBl
Y3RlZF91cmxdID0KKyAgICAgIGF3YWl0IHByZXBhcmVfcmVhZHlfcmVnaXN0cmF0aW9uX3dpdGhf
bW9kZSh0LCAnc3ludGF4X2Vycm9yJyk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcmVnaXN0cmF0
aW9uLnVucmVnaXN0ZXIoKSk7CisKKyAgYXdhaXQgcHJvbWlzZV9yZWplY3RzKHQsIG5ldyBUeXBl
RXJyb3IoKSwgcmVnaXN0cmF0aW9uLnVwZGF0ZSgpKTsKKyAgYXNzZXJ0X2FjdGl2ZV9vbmx5KHJl
Z2lzdHJhdGlvbiwgZXhwZWN0ZWRfdXJsKTsKK30sICd1cGRhdGUoKSBzaG91bGQgZmFpbCB3aGVu
IGEgbmV3IHNjcmlwdCBjb250YWlucyBhIHN5bnRheCBlcnJvci4nKTsKKworcHJvbWlzZV90ZXN0
KGFzeW5jIHQgPT4geworICBjb25zdCBbcmVnaXN0cmF0aW9uLCBleHBlY3RlZF91cmxdID0KKyAg
ICAgIGF3YWl0IHByZXBhcmVfcmVhZHlfcmVnaXN0cmF0aW9uX3dpdGhfbW9kZSh0LCAndGhyb3df
aW5zdGFsbCcpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHJlZ2lzdHJhdGlvbi51bnJlZ2lzdGVy
KCkpOworCisgIGF3YWl0IFByb21pc2UuYWxsKFtyZWdpc3RyYXRpb24udXBkYXRlKCksIHdhaXRf
Zm9yX3VwZGF0ZSh0LCByZWdpc3RyYXRpb24pXSk7CisgIGFzc2VydF9pbnN0YWxsaW5nX2FuZF9h
Y3RpdmUocmVnaXN0cmF0aW9uLCBleHBlY3RlZF91cmwpOworfSwgJ3VwZGF0ZSgpIHNob3VsZCBy
ZXNvbHZlIHdoZW4gdGhlIGluc3RhbGwgZXZlbnQgdGhyb3dzLicpOworCitwcm9taXNlX3Rlc3Qo
YXN5bmMgdCA9PiB7CisgIGNvbnN0IFtyZWdpc3RyYXRpb24sIGV4cGVjdGVkX3VybF0gPQorICAg
ICAgYXdhaXQgcHJlcGFyZV9yZWFkeV9yZWdpc3RyYXRpb25fd2l0aF9tb2RlKHQsICdub3JtYWwn
KTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiByZWdpc3RyYXRpb24udW5yZWdpc3RlcigpKTsKKwor
ICAvLyBXZSBuZWVkIHRvIGhvbGQgYSBjbGllbnQgYWxpdmUgc28gdGhhdCB1bnJlZ2lzdGVyKCkg
YmVsb3cgZG9lc24ndCByZW1vdmUKKyAgLy8gdGhlIHJlZ2lzdHJhdGlvbiBiZWZvcmUgdXBkYXRl
KCkgaGFzIGhhZCBhIGNoYW5jZSB0byBsb29rIGF0IHRoZSBwZW5kaW5nCisgIC8vIHVuaW5zdGFs
bCBmbGFnLgorICBjb25zdCBmcmFtZSA9IGF3YWl0IHdpdGhfaWZyYW1lKFNDT1BFKTsKKyAgdC5h
ZGRfY2xlYW51cCgoKSA9PiBmcmFtZS5yZW1vdmUoKSk7CisKKyAgYXdhaXQgcHJvbWlzZV9yZWpl
Y3RzKAorICAgICAgdCwgbmV3IFR5cGVFcnJvcigpLAorICAgICAgUHJvbWlzZS5hbGwoW3JlZ2lz
dHJhdGlvbi51bnJlZ2lzdGVyKCksIHJlZ2lzdHJhdGlvbi51cGRhdGUoKV0pKTsKK30sICd1cGRh
dGUoKSBzaG91bGQgZmFpbCB3aGVuIHRoZSBwZW5kaW5nIHVuaW5zdGFsbCBmbGFnIGlzIHNldC4n
KTsKKworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25zdCBbcmVnaXN0cmF0aW9uLCBl
eHBlY3RlZF91cmxdID0KKyAgICAgIGF3YWl0IHByZXBhcmVfcmVhZHlfcmVnaXN0cmF0aW9uX3dp
dGhfZmlsZSgKKyAgICAgICAgdCwKKyAgICAgICAgJ3VwZGF0ZS1zbWFsbGVyLWJvZHktYmVmb3Jl
LXVwZGF0ZS13b3JrZXIuanMnLAorICAgICAgICAndXBkYXRlLXNtYWxsZXItYm9keS1hZnRlci11
cGRhdGUtd29ya2VyLmpzJyk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcmVnaXN0cmF0aW9uLnVu
cmVnaXN0ZXIoKSk7CisKKyAgYXdhaXQgUHJvbWlzZS5hbGwoW3JlZ2lzdHJhdGlvbi51cGRhdGUo
KSwgd2FpdF9mb3JfdXBkYXRlKHQsIHJlZ2lzdHJhdGlvbildKTsKKyAgYXNzZXJ0X2luc3RhbGxp
bmdfYW5kX2FjdGl2ZShyZWdpc3RyYXRpb24sIGV4cGVjdGVkX3VybCk7CisKKyAgYXdhaXQgd2Fp
dF9mb3Jfc3RhdGUodCwgcmVnaXN0cmF0aW9uLmluc3RhbGxpbmcsICdpbnN0YWxsZWQnKTsKKyAg
YXNzZXJ0X3dhaXRpbmdfYW5kX2FjdGl2ZShyZWdpc3RyYXRpb24sIGV4cGVjdGVkX3VybCk7CisK
KyAgYXdhaXQgd2FpdF9mb3Jfc3RhdGUodCwgcmVnaXN0cmF0aW9uLndhaXRpbmcsICdhY3RpdmF0
ZWQnKTsKKyAgYXNzZXJ0X2FjdGl2ZV9vbmx5KHJlZ2lzdHJhdGlvbiwgZXhwZWN0ZWRfdXJsKTsK
K30sICd1cGRhdGUoKSBzaG91bGQgc3VjY2VlZCB3aGVuIHRoZSBzY3JpcHQgc2hyaW5rcy4nKTsK
IDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdzNjLWltcG9ydC5sb2cg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci93M2MtaW1wb3J0LmxvZwppbmRleCBhMzNlZjA1YjRiYzA3NzI4
YjE5ODc2M2ZlOWJmZjE0NDkzZGU4YTBmLi4xOGJhMjVkNDJiM2UzNGI0ZjVlNGZlMTUzMDNjZTMy
YTEwOTM0NjIzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci93M2MtaW1wb3J0LmxvZwor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci93M2MtaW1wb3J0LmxvZwpAQCAtMzcsNiArMzcsNyBAQCBM
aXN0IG9mIGZpbGVzOgogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsaWVudHMtZ2V0Lmh0dHBzLmh0bWwK
IC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9jbGllbnRzLW1hdGNoYWxsLWNsaWVudC10eXBlcy5odHRwcy5o
dG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xpZW50cy1tYXRjaGFsbC1leGFjdC1jb250cm9sbGVy
Lmh0dHBzLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGllbnRzLW1hdGNoYWxsLWZyb3plbi5o
dHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xpZW50cy1tYXRjaGFsbC1pbmNsdWRlLXVu
Y29udHJvbGxlZC5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xpZW50cy1tYXRjaGFs
bC1vbi1ldmFsdWF0aW9uLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGllbnRzLW1h
dGNoYWxsLW9yZGVyLmh0dHBzLmh0bWwKQEAgLTEwMiw2ICsxMDMsNyBAQCBMaXN0IG9mIGZpbGVz
OgogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLXdhaXRzLWZvci1hY3RpdmF0ZS5odHRwcy5odG1s
CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvZ2V0cmVnaXN0cmF0aW9uLmh0dHBzLmh0bWwKIC9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9nZXRyZWdpc3RyYXRpb25zLmh0dHBzLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9nbG9iYWwtc2VydmljZXdvcmtlci5odHRwcy5hbnkuanMKIC9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9o
dHRwLXRvLWh0dHBzLXJlZGlyZWN0LWFuZC1yZWdpc3Rlci5odHRwcy5odG1sCiAvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvaW1tdXRhYmxlLXByb3RvdHlwZS1zZXJ2aWNld29ya2VyLmh0dHBzLmh0bWwKIC9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci9pbXBvcnQtbW9kdWxlLXNjcmlwdHMuaHR0cHMuaHRtbApAQCAtMTcw
LDcgKzE3Miw2IEBAIExpc3Qgb2YgZmlsZXM6CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvc2VydmljZS13
b3JrZXItaGVhZGVyLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9zZXJ2aWNld29ya2Vy
LW1lc3NhZ2UtZXZlbnQtaGlzdG9yaWNhbC5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
c2VydmljZXdvcmtlcm9iamVjdC1zY3JpcHR1cmwuaHR0cHMuaHRtbAotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3NoYXJlZC13b3JrZXItY29udHJvbGxlZC5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvc2tpcC13YWl0aW5nLWluc3RhbGxlZC5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
c2tpcC13YWl0aW5nLXVzaW5nLXJlZ2lzdHJhdGlvbi5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvc2tpcC13YWl0aW5nLXdpdGhvdXQtY2xpZW50Lmh0dHBzLmh0bWwKQEAgLTE4OSw2ICsx
OTAsNyBAQCBMaXN0IG9mIGZpbGVzOgogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0ZS1hZnRlci1u
YXZpZ2F0aW9uLXJlZGlyZWN0Lmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUt
YWZ0ZXItb25lZGF5Lmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUtYnl0ZWNo
ZWNrLmh0dHBzLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUtaW1wb3J0LXNjcmlwdHMu
aHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0ZS1taXNzaW5nLWltcG9ydC1zY3Jp
cHRzLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUtbm8tY2FjaGUtcmVxdWVz
dC1oZWFkZXJzLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUtbm90LWFsbG93
ZWQuaHR0cHMuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvd2Vic29ja2V0Lmh0
dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3dlYnNvY2tldC5odHRwcy1leHBl
Y3RlZC50eHQKaW5kZXggY2NkMzc2ZmJkMTQwZTZjYzI1MWE1MjA2NDI3MzBkYzFhOWU4Njc4Zi4u
MjUxY2JhOWUwMzE5NzhlYmNkMzY5NTU5NzBiNzIwMDhiZDFlZTllZSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvd2Vic29ja2V0Lmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci93ZWJzb2NrZXQuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0xLDYgKzEsMyBAQAot
Q09OU09MRSBNRVNTQUdFOiBXZWJTb2NrZXQgbmV0d29yayBlcnJvcjogT1NTdGF0dXMgRXJyb3Ig
LTk4MDc6IEludmFsaWQgY2VydGlmaWNhdGUgY2hhaW4gCi1DT05TT0xFIE1FU1NBR0U6IFdlYlNv
Y2tldCBuZXR3b3JrIGVycm9yOiBPU1N0YXR1cyBFcnJvciAtOTgwNzogSW52YWxpZCBjZXJ0aWZp
Y2F0ZSBjaGFpbiAKIAotCi1GQUlMIFZlcmlmeSBXZWJTb2NrZXQgaGFuZHNoYWtlIGNoYW5uZWwg
ZG9lcyBub3QgZ2V0IGludGVyY2VwdGVkIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlv
biB3aXRoIHZhbHVlOiBvYmplY3QgIltvYmplY3QgRXZlbnRdIgorUEFTUyBWZXJpZnkgV2ViU29j
a2V0IGhhbmRzaGFrZSBjaGFubmVsIGRvZXMgbm90IGdldCBpbnRlcmNlcHRlZCAKIApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvd29ya2VyLWNsaWVudC1pZC5odHRwcy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci93b3JrZXItY2xpZW50LWlkLmh0dHBzLWV4cGVjdGVkLnR4
dAppbmRleCAxMGM5ZTI0ZDk5N2Q5Njk4Nzc0MzViMGZmNjFmMTAyNjg3MGY2MTIyLi4wMmI4MTEy
MGE5ZDVmODljMzBhYjE2YTkzM2QxNWQ3NmEyMWNkYWI5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci93b3JrZXItY2xpZW50LWlkLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci93b3JrZXItY2xpZW50LWlkLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMSwzICsx
LDMgQEAKIAotRkFJTCBWZXJpZnkgd29ya2VycyBoYXZlIGEgdW5pcXVlIGNsaWVudCBpZCBzZXBh
cmF0ZSBmcm9tIHRoZWlyIG93bmluZyBkb2N1bWVudHMgd2luZG93IGFzc2VydF9ub3RfZXF1YWxz
OiBmcmFtZSBhbmQgd29ya2VyIGNsaWVudCBpZHMgc2hvdWxkIGJlIGRpZmZlcmVudCBnb3QgZGlz
YWxsb3dlZCB2YWx1ZSAiMS0xOSIKK0ZBSUwgVmVyaWZ5IHdvcmtlcnMgaGF2ZSBhIHVuaXF1ZSBj
bGllbnQgaWQgc2VwYXJhdGUgZnJvbSB0aGVpciBvd25pbmcgZG9jdW1lbnRzIHdpbmRvdyBhc3Nl
cnRfbm90X2VxdWFsczogZnJhbWUgYW5kIHdvcmtlciBjbGllbnQgaWRzIHNob3VsZCBiZSBkaWZm
ZXJlbnQgZ290IGRpc2FsbG93ZWQgdmFsdWUgIjQtMzQwOCIKIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvd29ya2VyLWludGVyY2VwdGlvbi5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci93b3JrZXItaW50ZXJjZXB0aW9uLmh0dHBzLWV4cGVjdGVkLnR4dAppbmRl
eCBiNGVkNGVlOWExNzQ1ZWMzMjgxNmFkYzFkY2RjYmJmYThmNzFjMDI5Li41NDNlMDM3NWVkYmEy
NTJkOGM1M2ZlNTk3NDEwMGQxYzNlNTI4NTEzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci93b3JrZXItaW50ZXJjZXB0aW9uLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci93b3JrZXItaW50ZXJjZXB0aW9uLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMSw4ICsx
LDE2IEBACi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTogUmVmZXJlbmNlRXJyb3I6IENhbid0IGZp
bmQgdmFyaWFibGU6IFdvcmtlcgogCi1GQUlMIFZlcmlmeSB3b3JrZXIgc2NyaXB0IGZyb20gdW5j
b250cm9sbGVkIGRvY3VtZW50IGlzIGludGVyY2VwdGVkIGJ5IFNlcnZpY2UgV29ya2VyIHByb21p
c2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiB1bmRlZmluZWQKLUZBSUwg
VmVyaWZ5IHdvcmtlciBzY3JpcHQgaW50ZXJjZXB0ZWQgYnkgc2FtZS1vcmlnaW4gcmVzcG9uc2Ug
c3VjY2VlZHMgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IHVu
ZGVmaW5lZAotUEFTUyBWZXJpZnkgd29ya2VyIHNjcmlwdCBpbnRlcmNlcHRlZCBieSBjb3JzIHJl
c3BvbnNlIGZhaWxzIAotUEFTUyBWZXJpZnkgd29ya2VyIHNjcmlwdCBpbnRlcmNlcHRlZCBieSBu
by1jb3JzIGNyb3NzLW9yaWdpbiByZXNwb25zZSBmYWlscyAKLUZBSUwgVmVyaWZ5IHdvcmtlciBs
b2FkcyBmcm9tIGNvbnRyb2xsZWQgZG9jdW1lbnQgYXJlIGludGVyY2VwdGVkIGJ5IFNlcnZpY2Ug
V29ya2VyIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJmaW5pc2giIGJ1dCBnb3QgImZhaWx1cmU6
W29iamVjdCBFcnJvckV2ZW50XSIKK0ZBSUwgVmVyaWZ5IGEgZGVkaWNhdGVkIHdvcmtlciBzY3Jp
cHQgcmVxdWVzdCBpc3N1ZWQgZnJvbSBhIHVuY29udHJvbGxlZCBkb2N1bWVudCBpcyBpbnRlcmNl
cHRlZCBieSB3b3JrZXIncyBvd24gc2VydmljZSB3b3JrZXIuIHByb21pc2VfdGVzdDogVW5oYW5k
bGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiB1bmRlZmluZWQKK0ZBSUwgVmVyaWZ5IGEgc2hhcmVk
IHdvcmtlciBzY3JpcHQgcmVxdWVzdCBpc3N1ZWQgZnJvbSBhIHVuY29udHJvbGxlZCBkb2N1bWVu
dCBpcyBpbnRlcmNlcHRlZCBieSB3b3JrZXIncyBvd24gc2VydmljZSB3b3JrZXIuIHByb21pc2Vf
dGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlJlZmVyZW5jZUVy
cm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBTaGFyZWRXb3JrZXIiCitGQUlMIFZlcmlmeSBhIHNh
bWUtb3JpZ2luIHdvcmtlciBzY3JpcHQgc2VydmVkIGJ5IGEgc2VydmljZSB3b3JrZXIgc3VjY2Vl
ZHMgaW4gc3RhcnRpbmcgYSBkZWRpY2F0ZWQgd29ya2VyLiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxl
ZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogdW5kZWZpbmVkCitGQUlMIFZlcmlmeSBhIHNhbWUtb3Jp
Z2luIHdvcmtlciBzY3JpcHQgc2VydmVkIGJ5IGEgc2VydmljZSB3b3JrZXIgc3VjY2VlZHMgaW4g
c3RhcnRpbmcgYSBzaGFyZWQgd29ya2VyLiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rp
b24gd2l0aCB2YWx1ZTogb2JqZWN0ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJs
ZTogU2hhcmVkV29ya2VyIgorUEFTUyBWZXJpZnkgYSBjb3JzIHdvcmtlciBzY3JpcHQgc2VydmVk
IGJ5IGEgc2VydmljZSB3b3JrZXIgZmFpbHMgZGVkaWNhdGVkIHdvcmtlciBzdGFydC4gCitGQUlM
IFZlcmlmeSBhIGNvcnMgd29ya2VyIHNjcmlwdCBzZXJ2ZWQgYnkgYSBzZXJ2aWNlIHdvcmtlciBm
YWlscyBzaGFyZWQgd29ya2VyIHN0YXJ0LiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rp
b24gd2l0aCB2YWx1ZTogb2JqZWN0ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJs
ZTogU2hhcmVkV29ya2VyIgorUEFTUyBWZXJpZnkgYSBuby1jb3JzIGNyb3NzLW9yaWdpbiB3b3Jr
ZXIgc2NyaXB0IHNlcnZlZCBieSBhIHNlcnZpY2Ugd29ya2VyIGZhaWxzIGRlZGljYXRlZCB3b3Jr
ZXIgc3RhcnQuIAorRkFJTCBWZXJpZnkgYSBuby1jb3JzIGNyb3NzLW9yaWdpbiB3b3JrZXIgc2Ny
aXB0IHNlcnZlZCBieSBhIHNlcnZpY2Ugd29ya2VyIGZhaWxzIHNoYXJlZCB3b3JrZXIgc3RhcnQu
IHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlJl
ZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBTaGFyZWRXb3JrZXIiCitQQVNTIFJl
Z2lzdGVyIGEgc2VydmljZSB3b3JrZXIgZm9yIHdvcmtlciBzdWJyZXNvdXJjZSBpbnRlcmNlcHRp
b24gdGVzdHMuIAorRkFJTCBSZXF1ZXN0cyBvbiBhIGRlZGljYXRlZCB3b3JrZXIgY29udHJvbGxl
ZCBieSBhIHNlcnZpY2Ugd29ya2VyLiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiVGhpcyBsb2Fk
IHdhcyBzdWNjZXNzZnVsbHkgaW50ZXJjZXB0ZWQuIiBidXQgZ290ICJ7XCJlcnJvclwiOiB7XCJt
ZXNzYWdlXCI6IFwiXCIsIFwiY29kZVwiOiA0MDR9fSIKK0ZBSUwgUmVxdWVzdHMgb24gYSBzaGFy
ZWQgd29ya2VyIGNvbnRyb2xsZWQgYnkgYSBzZXJ2aWNlIHdvcmtlci4gcHJvbWlzZV90ZXN0OiBV
bmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiUmVmZXJlbmNlRXJyb3I6IENh
bid0IGZpbmQgdmFyaWFibGU6IFNoYXJlZFdvcmtlciIKK0ZBSUwgUmVxdWVzdHMgb24gYSBkZWRp
Y2F0ZWQgd29ya2VyIG5lc3RlZCBpbiBhIGRlZGljYXRlZCB3b3JrZXIgYW5kIGNvbnRyb2xsZWQg
YnkgYSBzZXJ2aWNlIHdvcmtlciBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiVGhpcyBsb2FkIHdh
cyBzdWNjZXNzZnVsbHkgaW50ZXJjZXB0ZWQuIiBidXQgZ290ICJVbmV4cGVjdGVkIGVycm9yISBD
YW4ndCBmaW5kIHZhcmlhYmxlOiBXb3JrZXIiCitGQUlMIFJlcXVlc3RzIG9uIGEgZGVkaWNhdGVk
IHdvcmtlciBuZXN0ZWQgaW4gYSBzaGFyZWQgd29ya2VyIGFuZCBjb250cm9sbGVkIGJ5IGEgc2Vy
dmljZSB3b3JrZXIgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6
IG9iamVjdCAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IFNoYXJlZFdvcmtl
ciIKK1BBU1MgVW5yZWdpc3RlciBhIHNlcnZpY2Ugd29ya2VyIGZvciBzdWJyZXNvdXJjZSBpbnRl
cmNlcHRpb24gdGVzdHMuIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci93b3JrZXIt
aW50ZXJjZXB0aW9uLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci93b3JrZXItaW50ZXJj
ZXB0aW9uLmh0dHBzLmh0bWwKaW5kZXggN2IyOTQxMjYzYmY3NTZjMzNlNmQxNWIzNmVkOTY1NDhm
ODg2YzZjMi4uMzAyYTIxNGFjNjE5NDAwYzM4Zjc1NjRjMDY1YTVlMGJlNDdhYzZkZiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvd29ya2VyLWludGVyY2VwdGlvbi5odHRwcy5odG1sCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3dvcmtlci1pbnRlcmNlcHRpb24uaHR0cHMuaHRtbApAQCAt
MSwxMzUgKzEsMTg4IEBACiA8IURPQ1RZUEUgaHRtbD4KIDx0aXRsZT5TZXJ2aWNlIFdvcmtlcjog
aW50ZXJjZXB0aW5nIFdvcmtlciBzY3JpcHQgbG9hZHM8L3RpdGxlPgorPG1ldGEgbmFtZT0idGlt
ZW91dCIgY29udGVudD0ibG9uZyI+CiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVz
cy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9y
dC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Rlc3QtaGVscGVycy5zdWIu
anMiPjwvc2NyaXB0PgogPGJvZHk+CiA8c2NyaXB0PgotcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQp
IHsKLSAgICB2YXIgd29ya2VyX3VybCA9ICdyZXNvdXJjZXMvZHVtbXktc3ludGhlc2l6ZWQtd29y
a2VyLmpzJzsKLSAgICB2YXIgc2VydmljZV93b3JrZXIgPSAncmVzb3VyY2VzL2R1bW15LXdvcmtl
ci1pbnRlcmNlcHRvci5qcyc7Ci0gICAgdmFyIHNjb3BlID0gd29ya2VyX3VybDsKLQotICAgIHJl
dHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCBzZXJ2aWNlX3dv
cmtlciwgc2NvcGUpCi0gICAgICAudGhlbihmdW5jdGlvbihyKSB7Ci0gICAgICAgICAgdC5hZGRf
Y2xlYW51cChmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2Vy
X3VucmVnaXN0ZXIodCwgc2NvcGUpOwotICAgICAgICAgICAgfSk7Ci0KLSAgICAgICAgICByZXR1
cm4gd2FpdF9mb3Jfc3RhdGUodCwgci5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7Ci0gICAgICAg
IH0pCi0gICAgICAudGhlbihmdW5jdGlvbigpIHsKLSAgICAgICAgICByZXR1cm4gbmV3IFByb21p
c2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7Ci0gICAgICAgICAgICAgIHZhciB3ID0gbmV3
IFdvcmtlcih3b3JrZXJfdXJsKTsKLSAgICAgICAgICAgICAgdy5vbm1lc3NhZ2UgPSBmdW5jdGlv
bihlKSB7Ci0gICAgICAgICAgICAgICAgcmVzb2x2ZShlLmRhdGEpOwotICAgICAgICAgICAgICB9
Ci0KLSAgICAgICAgICAgICAgdy5vbmVycm9yID0gZnVuY3Rpb24oZSkgewotICAgICAgICAgICAg
ICAgIHJlamVjdChlLm1lc3NhZ2UpOwotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9KTsK
LSAgICAgICAgfSkKLSAgICAgIC50aGVuKGZ1bmN0aW9uKGRhdGEpIHsKLSAgICAgICAgICBhc3Nl
cnRfZXF1YWxzKGRhdGEsICd3b3JrZXIgbG9hZGluZyBpbnRlcmNlcHRlZCBieSBzZXJ2aWNlIHdv
cmtlcicpOwotICAgICAgICB9KTsKLSAgfSwgJ1ZlcmlmeSB3b3JrZXIgc2NyaXB0IGZyb20gdW5j
b250cm9sbGVkIGRvY3VtZW50IGlzIGludGVyY2VwdGVkIGJ5IFNlcnZpY2UgV29ya2VyJyk7Ci0K
LXByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7Ci0gICAgdmFyIHdvcmtlcl91cmwgPSAncmVzb3Vy
Y2VzL2R1bW15LXNhbWUtb3JpZ2luLXdvcmtlci5qcyc7Ci0gICAgdmFyIHNlcnZpY2Vfd29ya2Vy
ID0gJ3Jlc291cmNlcy9kdW1teS13b3JrZXItaW50ZXJjZXB0b3IuanMnOwotICAgIHZhciBzY29w
ZSA9IHdvcmtlcl91cmw7Ci0KLSAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9h
bmRfcmVnaXN0ZXIodCwgc2VydmljZV93b3JrZXIsIHNjb3BlKQotICAgICAgLnRoZW4oZnVuY3Rp
b24ocikgewotICAgICAgICAgIHQuYWRkX2NsZWFudXAoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAg
ICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyKHQsIHNjb3BlKTsKLSAgICAgICAg
ICAgIH0pOwotCi0gICAgICAgICAgcmV0dXJuIHdhaXRfZm9yX3N0YXRlKHQsIHIuaW5zdGFsbGlu
ZywgJ2FjdGl2YXRlZCcpOwotICAgICAgICB9KQotICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7Ci0g
ICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgewot
ICAgICAgICAgICAgICB2YXIgdyA9IG5ldyBXb3JrZXIod29ya2VyX3VybCk7Ci0gICAgICAgICAg
ICAgIHcub25tZXNzYWdlID0gZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgICAgIHJlc29sdmUo
ZS5kYXRhKTsKLSAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgIHcub25lcnJvciA9IGZ1
bmN0aW9uKGUpIHsKLSAgICAgICAgICAgICAgICByZWplY3QoZS5tZXNzYWdlKTsKLSAgICAgICAg
ICAgICAgfQotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0pCi0gICAgICAudGhlbihmdW5jdGlv
bihkYXRhKSB7Ci0gICAgICAgICAgYXNzZXJ0X2VxdWFscyhkYXRhLCAnZHVtbXktd29ya2VyLXNj
cmlwdCBsb2FkZWQnKTsKLSAgICAgICAgfSk7Ci0gIH0sICdWZXJpZnkgd29ya2VyIHNjcmlwdCBp
bnRlcmNlcHRlZCBieSBzYW1lLW9yaWdpbiByZXNwb25zZSBzdWNjZWVkcycpOwotCi1wcm9taXNl
X3Rlc3QoZnVuY3Rpb24odCkgewotICAgIHZhciB3b3JrZXJfdXJsID0gJ3Jlc291cmNlcy9kdW1t
eS1jb3JzLXdvcmtlci5qcyc7Ci0gICAgdmFyIHNlcnZpY2Vfd29ya2VyID0gJ3Jlc291cmNlcy9k
dW1teS13b3JrZXItaW50ZXJjZXB0b3IuanMnOwotICAgIHZhciBzY29wZSA9IHdvcmtlcl91cmw7
Ci0KLSAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwg
c2VydmljZV93b3JrZXIsIHNjb3BlKQotICAgICAgLnRoZW4oZnVuY3Rpb24ocikgewotICAgICAg
ICAgIHJldHVybiB3YWl0X2Zvcl9zdGF0ZSh0LCByLmluc3RhbGxpbmcsICdhY3RpdmF0ZWQnKTsK
LSAgICAgICAgfSkKLSAgICAgIC50aGVuKGZ1bmN0aW9uKCkgewotICAgICAgICAgIHZhciB3ID0g
bmV3IFdvcmtlcih3b3JrZXJfdXJsKTsKLSAgICAgICAgICB2YXIgd2F0Y2hlciA9IG5ldyBFdmVu
dFdhdGNoZXIodCwgdywgWydtZXNzYWdlJywgJ2Vycm9yJ10pOwotICAgICAgICAgIHJldHVybiB3
YXRjaGVyLndhaXRfZm9yKCdlcnJvcicpOwotICAgICAgICB9KTsKLSAgfSwgJ1ZlcmlmeSB3b3Jr
ZXIgc2NyaXB0IGludGVyY2VwdGVkIGJ5IGNvcnMgcmVzcG9uc2UgZmFpbHMnKTsKLQotcHJvbWlz
ZV90ZXN0KGZ1bmN0aW9uKHQpIHsKLSAgICB2YXIgd29ya2VyX3VybCA9ICdyZXNvdXJjZXMvZHVt
bXktbm8tY29ycy13b3JrZXIuanMnOwotICAgIHZhciBzZXJ2aWNlX3dvcmtlciA9ICdyZXNvdXJj
ZXMvZHVtbXktd29ya2VyLWludGVyY2VwdG9yLmpzJzsKLSAgICB2YXIgc2NvcGUgPSB3b3JrZXJf
dXJsOwotCi0gICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVy
KHQsIHNlcnZpY2Vfd29ya2VyLCBzY29wZSkKLSAgICAgIC50aGVuKGZ1bmN0aW9uKHIpIHsKLSAg
ICAgICAgICB0LmFkZF9jbGVhbnVwKGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICByZXR1cm4g
c2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcih0LCBzY29wZSk7Ci0gICAgICAgICAgICB9KTsKLQot
ICAgICAgICAgIHJldHVybiB3YWl0X2Zvcl9zdGF0ZSh0LCByLmluc3RhbGxpbmcsICdhY3RpdmF0
ZWQnKTsKLSAgICAgICAgfSkKLSAgICAgIC50aGVuKGZ1bmN0aW9uKCkgewotICAgICAgICAgIHZh
ciB3ID0gbmV3IFdvcmtlcih3b3JrZXJfdXJsKTsKLSAgICAgICAgICB2YXIgd2F0Y2hlciA9IG5l
dyBFdmVudFdhdGNoZXIodCwgdywgWydtZXNzYWdlJywgJ2Vycm9yJ10pOwotICAgICAgICAgIHJl
dHVybiB3YXRjaGVyLndhaXRfZm9yKCdlcnJvcicpOwotICAgICAgICB9KTsKLSAgfSwgJ1Zlcmlm
eSB3b3JrZXIgc2NyaXB0IGludGVyY2VwdGVkIGJ5IG5vLWNvcnMgY3Jvc3Mtb3JpZ2luIHJlc3Bv
bnNlIGZhaWxzJyk7Ci0KLXByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7Ci0gICAgdmFyIHN1YmRv
Y191cmwgPSAncmVzb3VyY2VzL3dvcmtlci1pbnRlcmNlcHRpb24taWZyYW1lLmh0dHBzLmh0bWw/
YnlwYXNzJzsKLSAgICB2YXIgc2VydmljZV93b3JrZXIgPSAncmVzb3VyY2VzL3dvcmtlci1sb2Fk
LWludGVyY2VwdG9yLmpzJzsKLSAgICB2YXIgc2NvcGUgPSAncmVzb3VyY2VzLyc7Ci0KLSAgICBy
ZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgc2VydmljZV93
b3JrZXIsIHNjb3BlKQotICAgICAgLnRoZW4oZnVuY3Rpb24ocikgewotICAgICAgICAgIHQuYWRk
X2NsZWFudXAoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgIHJldHVybiBzZXJ2aWNlX3dvcmtl
cl91bnJlZ2lzdGVyKHQsIHNjb3BlKTsKLSAgICAgICAgICAgIH0pOwotCi0gICAgICAgICAgcmV0
dXJuIHdhaXRfZm9yX3N0YXRlKHQsIHIuaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOwotICAgICAg
ICB9KQotICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7IHJldHVybiB3aXRoX2lmcmFtZShzdWJkb2Nf
dXJsKTsgfSkKLSAgICAgIC50aGVuKGZ1bmN0aW9uKGZyYW1lKSB7Ci0gICAgICAgICAgcmV0dXJu
IG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgewotICAgICAgICAgICAgICB2
YXIgY2hhbm5lbCA9IG5ldyBNZXNzYWdlQ2hhbm5lbCgpOwotICAgICAgICAgICAgICBjaGFubmVs
LnBvcnQxLm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgICAgICBmcmFtZS5y
ZW1vdmUoKTsKLSAgICAgICAgICAgICAgICByZXNvbHZlKGUuZGF0YSk7Ci0gICAgICAgICAgICAg
IH0KLQotICAgICAgICAgICAgICBmcmFtZS5jb250ZW50V2luZG93LnBvc3RNZXNzYWdlKCJHTyIs
ICIqIiwgW2NoYW5uZWwucG9ydDJdKTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9KQotICAg
ICAgLnRoZW4oZnVuY3Rpb24oZGF0YSkgewotICAgICAgICAgIGFzc2VydF9lcXVhbHMoZGF0YS5y
ZXN1bHRzLCAnZmluaXNoJyk7Ci0gICAgICAgIH0pOwotICB9LCAnVmVyaWZ5IHdvcmtlciBsb2Fk
cyBmcm9tIGNvbnRyb2xsZWQgZG9jdW1lbnQgYXJlIGludGVyY2VwdGVkIGJ5IFNlcnZpY2UgV29y
a2VyJyk7CisKKy8vID09PT09PT09PT0gV29ya2VyIG1haW4gcmVzb3VyY2UgaW50ZXJjZXB0aW9u
IHRlc3RzID09PT09PT09PT0KKworYXN5bmMgZnVuY3Rpb24gc2V0dXBfc2VydmljZV93b3JrZXIo
dCwgc2VydmljZV93b3JrZXJfdXJsLCBzY29wZSkgeworICBjb25zdCByID0gYXdhaXQgc2Vydmlj
ZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIoCisgICAgICB0LCBzZXJ2aWNlX3dvcmtl
cl91cmwsIHNjb3BlKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBzZXJ2aWNlX3dvcmtlcl91bnJl
Z2lzdGVyKHQsIHNjb3BlKSk7CisgIGF3YWl0IHdhaXRfZm9yX3N0YXRlKHQsIHIuaW5zdGFsbGlu
ZywgJ2FjdGl2YXRlZCcpOworfQorCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0
IHdvcmtlcl91cmwgPSAncmVzb3VyY2VzL2R1bW15LXN5bnRoZXNpemVkLXdvcmtlci5qcz9kZWRp
Y2F0ZWQnOworICBjb25zdCBzZXJ2aWNlX3dvcmtlcl91cmwgPSAncmVzb3VyY2VzL2R1bW15LXdv
cmtlci1pbnRlcmNlcHRvci5qcyc7CisgIGNvbnN0IHNjb3BlID0gd29ya2VyX3VybDsKKworICBh
d2FpdCBzZXR1cF9zZXJ2aWNlX3dvcmtlcih0LCBzZXJ2aWNlX3dvcmtlcl91cmwsIHNjb3BlKTsK
KyAgY29uc3QgdyA9IG5ldyBXb3JrZXIod29ya2VyX3VybCk7CisgIGNvbnN0IGRhdGEgPSBhd2Fp
dCBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7CisgICAgdy5vbm1lc3NhZ2UgPSBl
ID0+IHJlc29sdmUoZS5kYXRhKTsKKyAgICB3Lm9uZXJyb3IgPSBlID0+IHJlamVjdChlLm1lc3Nh
Z2UpOworICB9KTsKKyAgYXNzZXJ0X2VxdWFscyhkYXRhLCAnd29ya2VyIGxvYWRpbmcgaW50ZXJj
ZXB0ZWQgYnkgc2VydmljZSB3b3JrZXInKTsKK30sIGBWZXJpZnkgYSBkZWRpY2F0ZWQgd29ya2Vy
IHNjcmlwdCByZXF1ZXN0IGlzc3VlZCBmcm9tIGEgdW5jb250cm9sbGVkIGAgKworICAgYGRvY3Vt
ZW50IGlzIGludGVyY2VwdGVkIGJ5IHdvcmtlcidzIG93biBzZXJ2aWNlIHdvcmtlci5gKTsKKwor
cHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25zdCB3b3JrZXJfdXJsID0gJ3Jlc291cmNl
cy9kdW1teS1zeW50aGVzaXplZC13b3JrZXIuanM/c2hhcmVkJzsKKyAgY29uc3Qgc2VydmljZV93
b3JrZXJfdXJsID0gJ3Jlc291cmNlcy9kdW1teS13b3JrZXItaW50ZXJjZXB0b3IuanMnOworICBj
b25zdCBzY29wZSA9IHdvcmtlcl91cmw7CisKKyAgYXdhaXQgc2V0dXBfc2VydmljZV93b3JrZXIo
dCwgc2VydmljZV93b3JrZXJfdXJsLCBzY29wZSk7CisgIGNvbnN0IHcgPSBuZXcgU2hhcmVkV29y
a2VyKHdvcmtlcl91cmwpOworICBjb25zdCBkYXRhID0gYXdhaXQgbmV3IFByb21pc2UoKHJlc29s
dmUsIHJlamVjdCkgPT4geworICAgIHcucG9ydC5vbm1lc3NhZ2UgPSBlID0+IHJlc29sdmUoZS5k
YXRhKTsKKyAgICB3Lm9uZXJyb3IgPSBlID0+IHJlamVjdChlLm1lc3NhZ2UpOworICB9KTsKKyAg
YXNzZXJ0X2VxdWFscyhkYXRhLCAnd29ya2VyIGxvYWRpbmcgaW50ZXJjZXB0ZWQgYnkgc2Vydmlj
ZSB3b3JrZXInKTsKK30sIGBWZXJpZnkgYSBzaGFyZWQgd29ya2VyIHNjcmlwdCByZXF1ZXN0IGlz
c3VlZCBmcm9tIGEgdW5jb250cm9sbGVkIGAgKworICAgYGRvY3VtZW50IGlzIGludGVyY2VwdGVk
IGJ5IHdvcmtlcidzIG93biBzZXJ2aWNlIHdvcmtlci5gKTsKKworcHJvbWlzZV90ZXN0KGFzeW5j
IHQgPT4geworICBjb25zdCB3b3JrZXJfdXJsID0gJ3Jlc291cmNlcy9kdW1teS1zYW1lLW9yaWdp
bi13b3JrZXIuanM/ZGVkaWNhdGVkJzsKKyAgY29uc3Qgc2VydmljZV93b3JrZXJfdXJsID0gJ3Jl
c291cmNlcy9kdW1teS13b3JrZXItaW50ZXJjZXB0b3IuanMnOworICBjb25zdCBzY29wZSA9IHdv
cmtlcl91cmw7CisKKyAgYXdhaXQgc2V0dXBfc2VydmljZV93b3JrZXIodCwgc2VydmljZV93b3Jr
ZXJfdXJsLCBzY29wZSk7CisgIGNvbnN0IHcgPSBuZXcgV29ya2VyKHdvcmtlcl91cmwpOworICBj
b25zdCBkYXRhID0gYXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4geworICAg
IHcub25tZXNzYWdlID0gZSA9PiByZXNvbHZlKGUuZGF0YSk7CisgICAgdy5vbmVycm9yID0gZSA9
PiByZWplY3QoZS5tZXNzYWdlKTsKKyAgfSk7CisgIGFzc2VydF9lcXVhbHMoZGF0YSwgJ2RlZGlj
YXRlZCB3b3JrZXIgc2NyaXB0IGxvYWRlZCcpOworfSwgJ1ZlcmlmeSBhIHNhbWUtb3JpZ2luIHdv
cmtlciBzY3JpcHQgc2VydmVkIGJ5IGEgc2VydmljZSB3b3JrZXIgc3VjY2VlZHMgJyArCisgICAn
aW4gc3RhcnRpbmcgYSBkZWRpY2F0ZWQgd29ya2VyLicpOworCitwcm9taXNlX3Rlc3QoYXN5bmMg
dCA9PiB7CisgIGNvbnN0IHdvcmtlcl91cmwgPSAncmVzb3VyY2VzL2R1bW15LXNhbWUtb3JpZ2lu
LXdvcmtlci5qcz9zaGFyZWQnOworICBjb25zdCBzZXJ2aWNlX3dvcmtlcl91cmwgPSAncmVzb3Vy
Y2VzL2R1bW15LXdvcmtlci1pbnRlcmNlcHRvci5qcyc7CisgIGNvbnN0IHNjb3BlID0gd29ya2Vy
X3VybDsKKworICBhd2FpdCBzZXR1cF9zZXJ2aWNlX3dvcmtlcih0LCBzZXJ2aWNlX3dvcmtlcl91
cmwsIHNjb3BlKTsKKyAgY29uc3QgdyA9IG5ldyBTaGFyZWRXb3JrZXIod29ya2VyX3VybCk7Cisg
IGNvbnN0IGRhdGEgPSBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7Cisg
ICAgdy5wb3J0Lm9ubWVzc2FnZSA9IGUgPT4gcmVzb2x2ZShlLmRhdGEpOworICAgIHcub25lcnJv
ciA9IGUgPT4gcmVqZWN0KGUubWVzc2FnZSk7CisgIH0pOworICBhc3NlcnRfZXF1YWxzKGRhdGEs
ICdzaGFyZWQgd29ya2VyIHNjcmlwdCBsb2FkZWQnKTsKK30sICdWZXJpZnkgYSBzYW1lLW9yaWdp
biB3b3JrZXIgc2NyaXB0IHNlcnZlZCBieSBhIHNlcnZpY2Ugd29ya2VyIHN1Y2NlZWRzICcgKwor
ICAgJ2luIHN0YXJ0aW5nIGEgc2hhcmVkIHdvcmtlci4nKTsKKworcHJvbWlzZV90ZXN0KGFzeW5j
IHQgPT4geworICBjb25zdCB3b3JrZXJfdXJsID0gJ3Jlc291cmNlcy9kdW1teS1jb3JzLXdvcmtl
ci5qcz9kZWRpY2F0ZWQnOworICBjb25zdCBzZXJ2aWNlX3dvcmtlcl91cmwgPSAncmVzb3VyY2Vz
L2R1bW15LXdvcmtlci1pbnRlcmNlcHRvci5qcyc7CisgIGNvbnN0IHNjb3BlID0gd29ya2VyX3Vy
bDsKKworICBhd2FpdCBzZXR1cF9zZXJ2aWNlX3dvcmtlcih0LCBzZXJ2aWNlX3dvcmtlcl91cmws
IHNjb3BlKTsKKyAgY29uc3QgdyA9IG5ldyBXb3JrZXIod29ya2VyX3VybCk7CisgIGNvbnN0IHdh
dGNoZXIgPSBuZXcgRXZlbnRXYXRjaGVyKHQsIHcsIFsnbWVzc2FnZScsICdlcnJvciddKTsKKyAg
YXdhaXQgd2F0Y2hlci53YWl0X2ZvcignZXJyb3InKTsKK30sICdWZXJpZnkgYSBjb3JzIHdvcmtl
ciBzY3JpcHQgc2VydmVkIGJ5IGEgc2VydmljZSB3b3JrZXIgZmFpbHMgZGVkaWNhdGVkICcgKwor
ICAgJ3dvcmtlciBzdGFydC4nKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25z
dCB3b3JrZXJfdXJsID0gJ3Jlc291cmNlcy9kdW1teS1jb3JzLXdvcmtlci5qcz9zaGFyZWQnOwor
ICBjb25zdCBzZXJ2aWNlX3dvcmtlcl91cmwgPSAncmVzb3VyY2VzL2R1bW15LXdvcmtlci1pbnRl
cmNlcHRvci5qcyc7CisgIGNvbnN0IHNjb3BlID0gd29ya2VyX3VybDsKKworICBhd2FpdCBzZXR1
cF9zZXJ2aWNlX3dvcmtlcih0LCBzZXJ2aWNlX3dvcmtlcl91cmwsIHNjb3BlKTsKKyAgY29uc3Qg
dyA9IG5ldyBTaGFyZWRXb3JrZXIod29ya2VyX3VybCk7CisgIGNvbnN0IHdhdGNoZXIgPSBuZXcg
RXZlbnRXYXRjaGVyKHQsIHcsIFsnbWVzc2FnZScsICdlcnJvciddKTsKKyAgYXdhaXQgd2F0Y2hl
ci53YWl0X2ZvcignZXJyb3InKTsKK30sICdWZXJpZnkgYSBjb3JzIHdvcmtlciBzY3JpcHQgc2Vy
dmVkIGJ5IGEgc2VydmljZSB3b3JrZXIgZmFpbHMgc2hhcmVkICcgKworICAgJ3dvcmtlciBzdGFy
dC4nKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25zdCB3b3JrZXJfdXJsID0g
J3Jlc291cmNlcy9kdW1teS1uby1jb3JzLXdvcmtlci5qcz9kZWRpY2F0ZWQnOworICBjb25zdCBz
ZXJ2aWNlX3dvcmtlcl91cmwgPSAncmVzb3VyY2VzL2R1bW15LXdvcmtlci1pbnRlcmNlcHRvci5q
cyc7CisgIGNvbnN0IHNjb3BlID0gd29ya2VyX3VybDsKKworICBhd2FpdCBzZXR1cF9zZXJ2aWNl
X3dvcmtlcih0LCBzZXJ2aWNlX3dvcmtlcl91cmwsIHNjb3BlKTsKKyAgY29uc3QgdyA9IG5ldyBX
b3JrZXIod29ya2VyX3VybCk7CisgIGNvbnN0IHdhdGNoZXIgPSBuZXcgRXZlbnRXYXRjaGVyKHQs
IHcsIFsnbWVzc2FnZScsICdlcnJvciddKTsKKyAgYXdhaXQgd2F0Y2hlci53YWl0X2ZvcignZXJy
b3InKTsKK30sICdWZXJpZnkgYSBuby1jb3JzIGNyb3NzLW9yaWdpbiB3b3JrZXIgc2NyaXB0IHNl
cnZlZCBieSBhIHNlcnZpY2Ugd29ya2VyICcgKworICAgJ2ZhaWxzIGRlZGljYXRlZCB3b3JrZXIg
c3RhcnQuJyk7CisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgY29uc3Qgd29ya2VyX3Vy
bCA9ICdyZXNvdXJjZXMvZHVtbXktbm8tY29ycy13b3JrZXIuanM/c2hhcmVkJzsKKyAgY29uc3Qg
c2VydmljZV93b3JrZXJfdXJsID0gJ3Jlc291cmNlcy9kdW1teS13b3JrZXItaW50ZXJjZXB0b3Iu
anMnOworICBjb25zdCBzY29wZSA9IHdvcmtlcl91cmw7CisKKyAgYXdhaXQgc2V0dXBfc2Vydmlj
ZV93b3JrZXIodCwgc2VydmljZV93b3JrZXJfdXJsLCBzY29wZSk7CisgIGNvbnN0IHcgPSBuZXcg
U2hhcmVkV29ya2VyKHdvcmtlcl91cmwpOworICBjb25zdCB3YXRjaGVyID0gbmV3IEV2ZW50V2F0
Y2hlcih0LCB3LCBbJ21lc3NhZ2UnLCAnZXJyb3InXSk7CisgIGF3YWl0IHdhdGNoZXIud2FpdF9m
b3IoJ2Vycm9yJyk7Cit9LCAnVmVyaWZ5IGEgbm8tY29ycyBjcm9zcy1vcmlnaW4gd29ya2VyIHNj
cmlwdCBzZXJ2ZWQgYnkgYSBzZXJ2aWNlIHdvcmtlciAnICsKKyAgICdmYWlscyBzaGFyZWQgd29y
a2VyIHN0YXJ0LicpOworCisvLyA9PT09PT09PT09IFdvcmtlciBzdWJyZXNvdXJjZSBpbnRlcmNl
cHRpb24gdGVzdHMgPT09PT09PT09PQorCitjb25zdCBzY29wZV9mb3Jfc3VicmVzb3VyY2VfaW50
ZXJjZXB0aW9uID0gJ3Jlc291cmNlcy9sb2FkX3dvcmtlci5qcyc7CisKK3Byb21pc2VfdGVzdChh
c3luYyB0ID0+IHsKKyAgY29uc3Qgc2VydmljZV93b3JrZXJfdXJsID0gJ3Jlc291cmNlcy93b3Jr
ZXItbG9hZC1pbnRlcmNlcHRvci5qcyc7CisgIGNvbnN0IHIgPSBhd2FpdCBzZXJ2aWNlX3dvcmtl
cl91bnJlZ2lzdGVyX2FuZF9yZWdpc3RlcigKKyAgICAgIHQsIHNlcnZpY2Vfd29ya2VyX3VybCwg
c2NvcGVfZm9yX3N1YnJlc291cmNlX2ludGVyY2VwdGlvbik7CisgIGF3YWl0IHdhaXRfZm9yX3N0
YXRlKHQsIHIuaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOworfSwgJ1JlZ2lzdGVyIGEgc2Vydmlj
ZSB3b3JrZXIgZm9yIHdvcmtlciBzdWJyZXNvdXJjZSBpbnRlcmNlcHRpb24gdGVzdHMuJyk7CisK
Ky8vIERvIG5vdCBjYWxsIHRoaXMgZnVuY3Rpb24gbXVsdGlwbGUgdGltZXMgd2l0aG91dCB3YWl0
aW5nIGZvciB0aGUgcHJvbWlzZQorLy8gcmVzb2x1dGlvbiBiZWNhdXNlIHRoaXMgc2V0cyBuZXcg
ZXZlbnQgaGFuZGxlcnMgb24gfHdvcmtlcnwuCisvLyBUT0RPKG5oaXJva2kpOiBUbyBpc29sYXRl
IG11bHRpcGxlIGZ1bmN0aW9uIGNhbGxzLCB1c2UgTWVzc2FnZVBvcnQgaW5zdGVhZCBvZgorLy8g
d29ya2VyJ3Mgb25tZXNzYWdlIGV2ZW50IGhhbmRsZXIuCithc3luYyBmdW5jdGlvbiByZXF1ZXN0
X29uX3dvcmtlcih3b3JrZXIsIHJlc291cmNlX3R5cGUpIHsKKyAgY29uc3QgZGF0YSA9IGF3YWl0
IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsKKyAgICBpZiAod29ya2VyIGluc3Rh
bmNlb2YgV29ya2VyKSB7CisgICAgICB3b3JrZXIub25tZXNzYWdlID0gZSA9PiByZXNvbHZlKGUu
ZGF0YSk7CisgICAgICB3b3JrZXIub25lcnJvciA9IGUgPT4gcmVqZWN0KGUpOworICAgICAgd29y
a2VyLnBvc3RNZXNzYWdlKHJlc291cmNlX3R5cGUpOworICAgIH0gZWxzZSBpZiAod29ya2VyIGlu
c3RhbmNlb2YgU2hhcmVkV29ya2VyKSB7CisgICAgICB3b3JrZXIucG9ydC5vbm1lc3NhZ2UgPSBl
ID0+IHJlc29sdmUoZS5kYXRhKTsKKyAgICAgIHdvcmtlci5vbmVycm9yID0gZSA9PiByZWplY3Qo
ZSk7CisgICAgICB3b3JrZXIucG9ydC5wb3N0TWVzc2FnZShyZXNvdXJjZV90eXBlKTsKKyAgICB9
IGVsc2UgeworICAgICAgcmVqZWN0KCdVbmV4cGVjdGVkIHdvcmtlciB0eXBlIScpOworICAgIH0K
KyAgfSk7CisgIGFzc2VydF9lcXVhbHMoZGF0YSwgJ1RoaXMgbG9hZCB3YXMgc3VjY2Vzc2Z1bGx5
IGludGVyY2VwdGVkLicpOworfQorCithc3luYyBmdW5jdGlvbiBzdWJyZXNvdXJjZV90ZXN0KHdv
cmtlcikgeworICBhd2FpdCByZXF1ZXN0X29uX3dvcmtlcih3b3JrZXIsICd4aHInKTsKKyAgYXdh
aXQgcmVxdWVzdF9vbl93b3JrZXIod29ya2VyLCAnZmV0Y2gnKTsKKyAgYXdhaXQgcmVxdWVzdF9v
bl93b3JrZXIod29ya2VyLCAnaW1wb3J0U2NyaXB0cycpOworfQorCitwcm9taXNlX3Rlc3QoYXN5
bmMgdCA9PiB7CisgIGF3YWl0IHN1YnJlc291cmNlX3Rlc3QobmV3IFdvcmtlcigncmVzb3VyY2Vz
L2xvYWRfd29ya2VyLmpzJykpOworfSwgJ1JlcXVlc3RzIG9uIGEgZGVkaWNhdGVkIHdvcmtlciBj
b250cm9sbGVkIGJ5IGEgc2VydmljZSB3b3JrZXIuJyk7CisKK3Byb21pc2VfdGVzdChhc3luYyB0
ID0+IHsKKyAgYXdhaXQgc3VicmVzb3VyY2VfdGVzdChuZXcgU2hhcmVkV29ya2VyKCdyZXNvdXJj
ZXMvbG9hZF93b3JrZXIuanMnKSk7Cit9LCAnUmVxdWVzdHMgb24gYSBzaGFyZWQgd29ya2VyIGNv
bnRyb2xsZWQgYnkgYSBzZXJ2aWNlIHdvcmtlci4nKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jIHQg
PT4geworICBhd2FpdCBzdWJyZXNvdXJjZV90ZXN0KG5ldyBXb3JrZXIoJ3Jlc291cmNlcy9uZXN0
ZWRfbG9hZF93b3JrZXIuanMnKSk7Cit9LCAnUmVxdWVzdHMgb24gYSBkZWRpY2F0ZWQgd29ya2Vy
IG5lc3RlZCBpbiBhIGRlZGljYXRlZCB3b3JrZXIgYW5kICcgKworICAgICAgICdjb250cm9sbGVk
IGJ5IGEgc2VydmljZSB3b3JrZXInKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBh
d2FpdCBzdWJyZXNvdXJjZV90ZXN0KG5ldyBTaGFyZWRXb3JrZXIoJ3Jlc291cmNlcy9uZXN0ZWRf
bG9hZF93b3JrZXIuanMnKSk7Cit9LCAnUmVxdWVzdHMgb24gYSBkZWRpY2F0ZWQgd29ya2VyIG5l
c3RlZCBpbiBhIHNoYXJlZCB3b3JrZXIgYW5kIGNvbnRyb2xsZWQgJyArCisgICAgICAgJ2J5IGEg
c2VydmljZSB3b3JrZXInKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBhd2FpdCBz
ZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyKHQsIHNjb3BlX2Zvcl9zdWJyZXNvdXJjZV9pbnRlcmNl
cHRpb24pOworfSwgJ1VucmVnaXN0ZXIgYSBzZXJ2aWNlIHdvcmtlciBmb3Igc3VicmVzb3VyY2Ug
aW50ZXJjZXB0aW9uIHRlc3RzLicpOwogCiA8L3NjcmlwdD4KIDwvYm9keT4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3N0dWItMy4xLXNlcnZpY2Utd29ya2VyLW9iai1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zdHViLTMu
MS1zZXJ2aWNlLXdvcmtlci1vYmotZXhwZWN0ZWQudHh0CmluZGV4IDc5MWIxYTFmZjcyZGI1Njhi
MjYyNTlkNWMwMDlmYjM2NGE3N2FkYzEuLmVkNjlkMWMxZGY5NDAzNTVmZDlhNmRmZmZiODU2YTc1
YTU1NTAwZmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3N0dWItMy4xLXNlcnZpY2Utd29ya2VyLW9iai1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc3R1Yi0zLjEtc2VydmljZS13b3JrZXItb2JqLWV4cGVjdGVkLnR4
dApAQCAtMSw0ICsxLDQgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA4Njc6IEludmFsaWQgb2Jq
ZWN0IG1lbWJlciBuYW1lIFNlcnZpY2VXb3JrZXJTdGF0ZQorQ09OU09MRSBNRVNTQUdFOiBsaW5l
IDg3MTogSW52YWxpZCBvYmplY3QgbWVtYmVyIG5hbWUgU2VydmljZVdvcmtlclN0YXRlCiAKIEhh
cm5lc3MgRXJyb3IgKEZBSUwpLCBtZXNzYWdlID0gSW52YWxpZCBvYmplY3QgbWVtYmVyIG5hbWUg
U2VydmljZVdvcmtlclN0YXRlCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdXJsL2ludGVyZmFjZXMuYW55LWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdXJsL2ludGVyZmFjZXMu
YW55LWV4cGVjdGVkLnR4dAppbmRleCAwZGExMTFmOGE2MDMxMjhmNWJmNDljN2QyNWU2ZGM0OGY2
Y2U4ZjUxLi4yNDg5M2I5MjVjNDcwMTNkYmFlZjM3OTVkNDI1MWIyMjVlMDg3MTQ5IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3VybC9pbnRl
cmZhY2VzLmFueS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy91cmwvaW50ZXJmYWNlcy5hbnktZXhwZWN0ZWQudHh0CkBAIC0zNiw3
ICszNiw3IEBAIFBBU1MgVVJMIGludGVyZmFjZTogbmV3IFVSTCgiaHR0cDovL2ZvbyIpIG11c3Qg
aW5oZXJpdCBwcm9wZXJ0eSAic2VhcmNoIiB3aXRoIHRoCiBQQVNTIFVSTCBpbnRlcmZhY2U6IG5l
dyBVUkwoImh0dHA6Ly9mb28iKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInNlYXJjaFBhcmFtcyIg
d2l0aCB0aGUgcHJvcGVyIHR5cGUgCiBQQVNTIFVSTCBpbnRlcmZhY2U6IG5ldyBVUkwoImh0dHA6
Ly9mb28iKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImhhc2giIHdpdGggdGhlIHByb3BlciB0eXBl
IAogUEFTUyBVUkwgaW50ZXJmYWNlOiBuZXcgVVJMKCJodHRwOi8vZm9vIikgbXVzdCBpbmhlcml0
IHByb3BlcnR5ICJ0b0pTT04oKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCi1QQVNTIFRlc3QgdG9K
U09OIG9wZXJhdGlvbiBvZiBVUkwgCitQQVNTIFVSTCBpbnRlcmZhY2U6IHRvSlNPTiBvcGVyYXRp
b24gb24gbmV3IFVSTCgiaHR0cDovL2ZvbyIpIAogUEFTUyBVUkxTZWFyY2hQYXJhbXMgaW50ZXJm
YWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCAKIFBBU1Mg
VVJMU2VhcmNoUGFyYW1zIGludGVyZmFjZSBvYmplY3QgbGVuZ3RoIAogUEFTUyBVUkxTZWFyY2hQ
YXJhbXMgaW50ZXJmYWNlIG9iamVjdCBuYW1lIApAQCAtNTAsMTMgKzUwLDggQEAgUEFTUyBVUkxT
ZWFyY2hQYXJhbXMgaW50ZXJmYWNlOiBvcGVyYXRpb24gZ2V0QWxsKFVTVlN0cmluZykKIFBBU1Mg
VVJMU2VhcmNoUGFyYW1zIGludGVyZmFjZTogb3BlcmF0aW9uIGhhcyhVU1ZTdHJpbmcpIAogUEFT
UyBVUkxTZWFyY2hQYXJhbXMgaW50ZXJmYWNlOiBvcGVyYXRpb24gc2V0KFVTVlN0cmluZywgVVNW
U3RyaW5nKSAKIFBBU1MgVVJMU2VhcmNoUGFyYW1zIGludGVyZmFjZTogb3BlcmF0aW9uIHNvcnQo
KSAKLVBBU1MgVGVzdGluZyBTeW1ib2wuaXRlcmF0b3IgcHJvcGVydHkgb2YgaXRlcmFibGUgaW50
ZXJmYWNlIFVSTFNlYXJjaFBhcmFtcyAKLVBBU1MgVGVzdGluZyBwYWlyIGl0ZXJhYmxlIGludGVy
ZmFjZSBVUkxTZWFyY2hQYXJhbXMgCitQQVNTIFVSTFNlYXJjaFBhcmFtcyBpbnRlcmZhY2U6IGl0
ZXJhYmxlPFVTVlN0cmluZywgVVNWU3RyaW5nPiAKIFBBU1MgVVJMU2VhcmNoUGFyYW1zIGludGVy
ZmFjZTogc3RyaW5naWZpZXIgCi1QQVNTIFVSTFNlYXJjaFBhcmFtcyBpbnRlcmZhY2U6IG9wZXJh
dGlvbiBlbnRyaWVzKCkgCi1QQVNTIFVSTFNlYXJjaFBhcmFtcyBpbnRlcmZhY2U6IG9wZXJhdGlv
biBrZXlzKCkgCi1QQVNTIFVSTFNlYXJjaFBhcmFtcyBpbnRlcmZhY2U6IG9wZXJhdGlvbiB2YWx1
ZXMoKSAKLVBBU1MgVVJMU2VhcmNoUGFyYW1zIGludGVyZmFjZTogb3BlcmF0aW9uIGZvckVhY2go
ZnVuY3Rpb24sIGFueSkgCiBQQVNTIFVSTFNlYXJjaFBhcmFtcyBtdXN0IGJlIHByaW1hcnkgaW50
ZXJmYWNlIG9mIG5ldyBVUkxTZWFyY2hQYXJhbXMoImhpPXRoZXJlJnRoYW5rPXlvdSIpIAogUEFT
UyBTdHJpbmdpZmljYXRpb24gb2YgbmV3IFVSTFNlYXJjaFBhcmFtcygiaGk9dGhlcmUmdGhhbms9
eW91IikgCiBQQVNTIFVSTFNlYXJjaFBhcmFtcyBpbnRlcmZhY2U6IG5ldyBVUkxTZWFyY2hQYXJh
bXMoImhpPXRoZXJlJnRoYW5rPXlvdSIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiYXBwZW5kKFVT
VlN0cmluZywgVVNWU3RyaW5nKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCkBAIC03Miw5ICs2Nyw0
IEBAIFBBU1MgVVJMU2VhcmNoUGFyYW1zIGludGVyZmFjZTogY2FsbGluZyBoYXMoVVNWU3RyaW5n
KSBvbiBuZXcgVVJMU2VhcmNoUGFyYW1zKCJoCiBQQVNTIFVSTFNlYXJjaFBhcmFtcyBpbnRlcmZh
Y2U6IG5ldyBVUkxTZWFyY2hQYXJhbXMoImhpPXRoZXJlJnRoYW5rPXlvdSIpIG11c3QgaW5oZXJp
dCBwcm9wZXJ0eSAic2V0KFVTVlN0cmluZywgVVNWU3RyaW5nKSIgd2l0aCB0aGUgcHJvcGVyIHR5
cGUgCiBQQVNTIFVSTFNlYXJjaFBhcmFtcyBpbnRlcmZhY2U6IGNhbGxpbmcgc2V0KFVTVlN0cmlu
ZywgVVNWU3RyaW5nKSBvbiBuZXcgVVJMU2VhcmNoUGFyYW1zKCJoaT10aGVyZSZ0aGFuaz15b3Ui
KSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAogUEFTUyBVUkxT
ZWFyY2hQYXJhbXMgaW50ZXJmYWNlOiBuZXcgVVJMU2VhcmNoUGFyYW1zKCJoaT10aGVyZSZ0aGFu
az15b3UiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInNvcnQoKSIgd2l0aCB0aGUgcHJvcGVyIHR5
cGUgCi1QQVNTIFVSTFNlYXJjaFBhcmFtcyBpbnRlcmZhY2U6IG5ldyBVUkxTZWFyY2hQYXJhbXMo
ImhpPXRoZXJlJnRoYW5rPXlvdSIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiZW50cmllcygpIiB3
aXRoIHRoZSBwcm9wZXIgdHlwZSAKLVBBU1MgVVJMU2VhcmNoUGFyYW1zIGludGVyZmFjZTogbmV3
IFVSTFNlYXJjaFBhcmFtcygiaGk9dGhlcmUmdGhhbms9eW91IikgbXVzdCBpbmhlcml0IHByb3Bl
cnR5ICJrZXlzKCkiIHdpdGggdGhlIHByb3BlciB0eXBlIAotUEFTUyBVUkxTZWFyY2hQYXJhbXMg
aW50ZXJmYWNlOiBuZXcgVVJMU2VhcmNoUGFyYW1zKCJoaT10aGVyZSZ0aGFuaz15b3UiKSBtdXN0
IGluaGVyaXQgcHJvcGVydHkgInZhbHVlcygpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKLVBBU1Mg
VVJMU2VhcmNoUGFyYW1zIGludGVyZmFjZTogbmV3IFVSTFNlYXJjaFBhcmFtcygiaGk9dGhlcmUm
dGhhbms9eW91IikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJmb3JFYWNoKGZ1bmN0aW9uLCBhbnkp
IiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKLVBBU1MgVVJMU2VhcmNoUGFyYW1zIGludGVyZmFjZTog
Y2FsbGluZyBmb3JFYWNoKGZ1bmN0aW9uLCBhbnkpIG9uIG5ldyBVUkxTZWFyY2hQYXJhbXMoImhp
PXRoZXJlJnRoYW5rPXlvdSIpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBl
RXJyb3IgCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdXJsL2ludGVyZmFjZXMuYW55Lndvcmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3VybC9pbnRlcmZhY2VzLmFueS53
b3JrZXItZXhwZWN0ZWQudHh0CmluZGV4IDBkYTExMWY4YTYwMzEyOGY1YmY0OWM3ZDI1ZTZkYzQ4
ZjZjZThmNTEuLjI0ODkzYjkyNWM0NzAxM2RiYWVmMzc5NWQ0MjUxYjIyNWUwODcxNDkgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdXJsL2lu
dGVyZmFjZXMuYW55Lndvcmtlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy91cmwvaW50ZXJmYWNlcy5hbnkud29ya2VyLWV4cGVj
dGVkLnR4dApAQCAtMzYsNyArMzYsNyBAQCBQQVNTIFVSTCBpbnRlcmZhY2U6IG5ldyBVUkwoImh0
dHA6Ly9mb28iKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInNlYXJjaCIgd2l0aCB0aAogUEFTUyBV
UkwgaW50ZXJmYWNlOiBuZXcgVVJMKCJodHRwOi8vZm9vIikgbXVzdCBpbmhlcml0IHByb3BlcnR5
ICJzZWFyY2hQYXJhbXMiIHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBVUkwgaW50ZXJmYWNl
OiBuZXcgVVJMKCJodHRwOi8vZm9vIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJoYXNoIiB3aXRo
IHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgVVJMIGludGVyZmFjZTogbmV3IFVSTCgiaHR0cDovL2Zv
byIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAidG9KU09OKCkiIHdpdGggdGhlIHByb3BlciB0eXBl
IAotUEFTUyBUZXN0IHRvSlNPTiBvcGVyYXRpb24gb2YgVVJMIAorUEFTUyBVUkwgaW50ZXJmYWNl
OiB0b0pTT04gb3BlcmF0aW9uIG9uIG5ldyBVUkwoImh0dHA6Ly9mb28iKSAKIFBBU1MgVVJMU2Vh
cmNoUGFyYW1zIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFj
ZSBvYmplY3QgCiBQQVNTIFVSTFNlYXJjaFBhcmFtcyBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aCAK
IFBBU1MgVVJMU2VhcmNoUGFyYW1zIGludGVyZmFjZSBvYmplY3QgbmFtZSAKQEAgLTUwLDEzICs1
MCw4IEBAIFBBU1MgVVJMU2VhcmNoUGFyYW1zIGludGVyZmFjZTogb3BlcmF0aW9uIGdldEFsbChV
U1ZTdHJpbmcpCiBQQVNTIFVSTFNlYXJjaFBhcmFtcyBpbnRlcmZhY2U6IG9wZXJhdGlvbiBoYXMo
VVNWU3RyaW5nKSAKIFBBU1MgVVJMU2VhcmNoUGFyYW1zIGludGVyZmFjZTogb3BlcmF0aW9uIHNl
dChVU1ZTdHJpbmcsIFVTVlN0cmluZykgCiBQQVNTIFVSTFNlYXJjaFBhcmFtcyBpbnRlcmZhY2U6
IG9wZXJhdGlvbiBzb3J0KCkgCi1QQVNTIFRlc3RpbmcgU3ltYm9sLml0ZXJhdG9yIHByb3BlcnR5
IG9mIGl0ZXJhYmxlIGludGVyZmFjZSBVUkxTZWFyY2hQYXJhbXMgCi1QQVNTIFRlc3RpbmcgcGFp
ciBpdGVyYWJsZSBpbnRlcmZhY2UgVVJMU2VhcmNoUGFyYW1zIAorUEFTUyBVUkxTZWFyY2hQYXJh
bXMgaW50ZXJmYWNlOiBpdGVyYWJsZTxVU1ZTdHJpbmcsIFVTVlN0cmluZz4gCiBQQVNTIFVSTFNl
YXJjaFBhcmFtcyBpbnRlcmZhY2U6IHN0cmluZ2lmaWVyIAotUEFTUyBVUkxTZWFyY2hQYXJhbXMg
aW50ZXJmYWNlOiBvcGVyYXRpb24gZW50cmllcygpIAotUEFTUyBVUkxTZWFyY2hQYXJhbXMgaW50
ZXJmYWNlOiBvcGVyYXRpb24ga2V5cygpIAotUEFTUyBVUkxTZWFyY2hQYXJhbXMgaW50ZXJmYWNl
OiBvcGVyYXRpb24gdmFsdWVzKCkgCi1QQVNTIFVSTFNlYXJjaFBhcmFtcyBpbnRlcmZhY2U6IG9w
ZXJhdGlvbiBmb3JFYWNoKGZ1bmN0aW9uLCBhbnkpIAogUEFTUyBVUkxTZWFyY2hQYXJhbXMgbXVz
dCBiZSBwcmltYXJ5IGludGVyZmFjZSBvZiBuZXcgVVJMU2VhcmNoUGFyYW1zKCJoaT10aGVyZSZ0
aGFuaz15b3UiKSAKIFBBU1MgU3RyaW5naWZpY2F0aW9uIG9mIG5ldyBVUkxTZWFyY2hQYXJhbXMo
ImhpPXRoZXJlJnRoYW5rPXlvdSIpIAogUEFTUyBVUkxTZWFyY2hQYXJhbXMgaW50ZXJmYWNlOiBu
ZXcgVVJMU2VhcmNoUGFyYW1zKCJoaT10aGVyZSZ0aGFuaz15b3UiKSBtdXN0IGluaGVyaXQgcHJv
cGVydHkgImFwcGVuZChVU1ZTdHJpbmcsIFVTVlN0cmluZykiIHdpdGggdGhlIHByb3BlciB0eXBl
IApAQCAtNzIsOSArNjcsNCBAQCBQQVNTIFVSTFNlYXJjaFBhcmFtcyBpbnRlcmZhY2U6IGNhbGxp
bmcgaGFzKFVTVlN0cmluZykgb24gbmV3IFVSTFNlYXJjaFBhcmFtcygiaAogUEFTUyBVUkxTZWFy
Y2hQYXJhbXMgaW50ZXJmYWNlOiBuZXcgVVJMU2VhcmNoUGFyYW1zKCJoaT10aGVyZSZ0aGFuaz15
b3UiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInNldChVU1ZTdHJpbmcsIFVTVlN0cmluZykiIHdp
dGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBVUkxTZWFyY2hQYXJhbXMgaW50ZXJmYWNlOiBjYWxs
aW5nIHNldChVU1ZTdHJpbmcsIFVTVlN0cmluZykgb24gbmV3IFVSTFNlYXJjaFBhcmFtcygiaGk9
dGhlcmUmdGhhbms9eW91Iikgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVF
cnJvciAKIFBBU1MgVVJMU2VhcmNoUGFyYW1zIGludGVyZmFjZTogbmV3IFVSTFNlYXJjaFBhcmFt
cygiaGk9dGhlcmUmdGhhbms9eW91IikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJzb3J0KCkiIHdp
dGggdGhlIHByb3BlciB0eXBlIAotUEFTUyBVUkxTZWFyY2hQYXJhbXMgaW50ZXJmYWNlOiBuZXcg
VVJMU2VhcmNoUGFyYW1zKCJoaT10aGVyZSZ0aGFuaz15b3UiKSBtdXN0IGluaGVyaXQgcHJvcGVy
dHkgImVudHJpZXMoKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCi1QQVNTIFVSTFNlYXJjaFBhcmFt
cyBpbnRlcmZhY2U6IG5ldyBVUkxTZWFyY2hQYXJhbXMoImhpPXRoZXJlJnRoYW5rPXlvdSIpIG11
c3QgaW5oZXJpdCBwcm9wZXJ0eSAia2V5cygpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKLVBBU1Mg
VVJMU2VhcmNoUGFyYW1zIGludGVyZmFjZTogbmV3IFVSTFNlYXJjaFBhcmFtcygiaGk9dGhlcmUm
dGhhbms9eW91IikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJ2YWx1ZXMoKSIgd2l0aCB0aGUgcHJv
cGVyIHR5cGUgCi1QQVNTIFVSTFNlYXJjaFBhcmFtcyBpbnRlcmZhY2U6IG5ldyBVUkxTZWFyY2hQ
YXJhbXMoImhpPXRoZXJlJnRoYW5rPXlvdSIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiZm9yRWFj
aChmdW5jdGlvbiwgYW55KSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCi1QQVNTIFVSTFNlYXJjaFBh
cmFtcyBpbnRlcmZhY2U6IGNhbGxpbmcgZm9yRWFjaChmdW5jdGlvbiwgYW55KSBvbiBuZXcgVVJM
U2VhcmNoUGFyYW1zKCJoaT10aGVyZSZ0aGFuaz15b3UiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRz
IG11c3QgdGhyb3cgVHlwZUVycm9yIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlv
YnVmZmVyLWludGVyZmFjZS9pZGwtdGVzdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1
ZGlvYnVmZmVyLWludGVyZmFjZS9pZGwtdGVzdC1leHBlY3RlZC50eHQKaW5kZXggZTQzYTVmYjRi
ZjY0MjI5ZjZmYzZhZWI1MTZiNjU0YWIyM2RmMmY1OS4uNTVmN2EyNGQ3NjhlMTVjMjEwY2QwYzJl
NDNjYTdlNzEwNmRlZDA1YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb2J1ZmZlci1p
bnRlcmZhY2UvaWRsLXRlc3QtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW9i
dWZmZXItaW50ZXJmYWNlL2lkbC10ZXN0LWV4cGVjdGVkLnR4dApAQCAtMSw1ICsxLDMgQEAKLUNP
TlNPTEUgTUVTU0FHRTogbGluZSA0ODI6IGNhbGxiYWNrIG5vdCB5ZXQgc3VwcG9ydGVkCi1DT05T
T0xFIE1FU1NBR0U6IGxpbmUgNDgyOiBjYWxsYmFjayBub3QgeWV0IHN1cHBvcnRlZAogZGljdGlv
bmFyeSBBdWRpb0J1ZmZlck9wdGlvbnMgewogICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgbnVt
YmVyT2ZDaGFubmVscyA9IDE7CiAgICAgcmVxdWlyZWQgdW5zaWduZWQgbG9uZyBsZW5ndGg7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvZGVzdGluYXRpb25ub2RlLWludGVyZmFjZS9p
ZGwtdGVzdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvZGVzdGluYXRpb25ub2Rl
LWludGVyZmFjZS9pZGwtdGVzdC1leHBlY3RlZC50eHQKaW5kZXggNTA3ZjEzOTBlNjdiM2ZmNmNm
NzE4NWVkMjAxYjU4YmM4Yjc3MThiMy4uMDJmODY3NzI3NGFjYTU5MjBjMTMxNmJiMDc3NTBjM2U4
YjUyYTdkYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb2Rlc3RpbmF0aW9ubm9kZS1p
bnRlcmZhY2UvaWRsLXRlc3QtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW9k
ZXN0aW5hdGlvbm5vZGUtaW50ZXJmYWNlL2lkbC10ZXN0LWV4cGVjdGVkLnR4dApAQCAtMSw1ICsx
LDMgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA0ODI6IGNhbGxiYWNrIG5vdCB5ZXQgc3VwcG9y
dGVkCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNDgyOiBjYWxsYmFjayBub3QgeWV0IHN1cHBvcnRl
ZAogaW50ZXJmYWNlIEF1ZGlvRGVzdGluYXRpb25Ob2RlIDogQXVkaW9Ob2RlIHsKIAogICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIG1heENoYW5uZWxDb3VudDsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8v
dGhlLWF1ZGlvLWFwaS90aGUtZGVsYXlub2RlLWludGVyZmFjZS9pZGwtdGVzdC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlv
L3RoZS1hdWRpby1hcGkvdGhlLWRlbGF5bm9kZS1pbnRlcmZhY2UvaWRsLXRlc3QtZXhwZWN0ZWQu
dHh0CmluZGV4IGYwZTgwZTU3NTBmM2M2MGRmMTI4MDA3MzczYTA5MGNlZWMyNjJlZGIuLjIwN2I0
ZDBiOWUwOTBiMTU5YmRhMzVhMjY5N2JkNjU4ZTg2ODk4NDAgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFw
aS90aGUtZGVsYXlub2RlLWludGVyZmFjZS9pZGwtdGVzdC1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVk
aW8tYXBpL3RoZS1kZWxheW5vZGUtaW50ZXJmYWNlL2lkbC10ZXN0LWV4cGVjdGVkLnR4dApAQCAt
MSw1ICsxLDMgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA0ODI6IGNhbGxiYWNrIG5vdCB5ZXQg
c3VwcG9ydGVkCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNDgyOiBjYWxsYmFjayBub3QgeWV0IHN1
cHBvcnRlZAogZGljdGlvbmFyeSBEZWxheU9wdGlvbnMgOiBBdWRpb05vZGVPcHRpb25zIHsKICAg
ICAgICAgICAgICBkb3VibGUgbWF4RGVsYXlUaW1lID0gMTsKICAgICAgICAgICAgICBkb3VibGUg
ZGVsYXlUaW1lID0gMDsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtZ2Fpbm5vZGUtaW50ZXJm
YWNlL2lkbC10ZXN0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtZ2Fpbm5vZGUtaW50ZXJm
YWNlL2lkbC10ZXN0LWV4cGVjdGVkLnR4dAppbmRleCAyYTYxY2E2N2M1ZTcxYTQ3YTNlY2VjMmI3
MDdlNTIxOWUxOTc3OGVjLi5mNTNiMWVhM2Y0MjcxZTNhZTZlNWRjYjVjZDA1Njg2ZDU4ZTAzMzBh
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWdhaW5ub2RlLWludGVyZmFjZS9pZGwtdGVzdC1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1nYWlubm9kZS1pbnRlcmZhY2UvaWRsLXRl
c3QtZXhwZWN0ZWQudHh0CkBAIC0xLDUgKzEsMyBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDQ4
MjogY2FsbGJhY2sgbm90IHlldCBzdXBwb3J0ZWQKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA0ODI6
IGNhbGxiYWNrIG5vdCB5ZXQgc3VwcG9ydGVkCiBkaWN0aW9uYXJ5IEdhaW5PcHRpb25zIDogQXVk
aW9Ob2RlT3B0aW9ucyB7CiAgICAgICAgICAgICAgZmxvYXQgZ2FpbiA9IDEuMDsKIH07CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtl
cnMvaW50ZXJmYWNlcy53b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL2ludGVyZmFjZXMud29ya2VyLWV4cGVjdGVk
LnR4dAppbmRleCAzZmE1MDM0NzM4NzIyMTNhN2YzMmI3MGNhMWU2MDg5YmViOTE1N2JlLi4xYWFm
OGNmMzk5ZTA4NGFmYzgwMzI0NGRjMDg4MzE3MGFlNGMyY2JkIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvaW50ZXJmYWNlcy53
b3JrZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd29ya2Vycy9pbnRlcmZhY2VzLndvcmtlci1leHBlY3RlZC50eHQKQEAgLTEs
MTYzICsxLDkgQEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxNzc0OiBUeXBlRXJyb3I6IG51bGwg
aXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAndGhpcy5tZXNzYWdlX3RhcmdldC5yZW1vdmVF
dmVudExpc3RlbmVyJykKK0NPTlNPTEUgTUVTU0FHRTogbGluZSA0NTc6IFdlYklETFBhcnNlRXJy
b3I6IFN5bnRheCBlcnJvciBhdCBsaW5lIDgyLCBzaW5jZSBgaW50ZXJmYWNlIFdpbmRvd09yV29y
a2VyR2xvYmFsU2NvcGVgOgorV29ya2VyR2xvYmFsU2NvcGUgaW1wbGVtZW50cyBXaW5kb3dPcldv
cmtlckdsb2JhbFNjb3BlOworXiBVbnJlY29nbmlzZWQgdG9rZW5zCiAKLVBBU1MgRXZlbnRUYXJn
ZXQgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVj
dCAKLVBBU1MgRXZlbnRUYXJnZXQgaW50ZXJmYWNlIG9iamVjdCBsZW5ndGggCi1QQVNTIEV2ZW50
VGFyZ2V0IGludGVyZmFjZSBvYmplY3QgbmFtZSAKLVBBU1MgRXZlbnRUYXJnZXQgaW50ZXJmYWNl
OiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3Qg
Ci1QQVNTIEV2ZW50VGFyZ2V0IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9m
IGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgImNvbnN0cnVjdG9yIiBwcm9wZXJ0eSAKLVBB
U1MgRXZlbnRUYXJnZXQgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50
ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyBAQHVuc2NvcGFibGVzIHByb3BlcnR5IAotUEFTUyBF
dmVudFRhcmdldCBpbnRlcmZhY2U6IG9wZXJhdGlvbiBhZGRFdmVudExpc3RlbmVyKERPTVN0cmlu
ZywgRXZlbnRMaXN0ZW5lciwgW29iamVjdCBPYmplY3RdLFtvYmplY3QgT2JqZWN0XSkgCi1QQVNT
IEV2ZW50VGFyZ2V0IGludGVyZmFjZTogb3BlcmF0aW9uIHJlbW92ZUV2ZW50TGlzdGVuZXIoRE9N
U3RyaW5nLCBFdmVudExpc3RlbmVyLCBbb2JqZWN0IE9iamVjdF0sW29iamVjdCBPYmplY3RdKSAK
LVBBU1MgRXZlbnRUYXJnZXQgaW50ZXJmYWNlOiBvcGVyYXRpb24gZGlzcGF0Y2hFdmVudChFdmVu
dCkgCi1QQVNTIEV2ZW50TGlzdGVuZXIgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRp
ZXMgb2YgaW50ZXJmYWNlIG9iamVjdCAKLVBBU1MgV29ya2VyR2xvYmFsU2NvcGUgaW50ZXJmYWNl
OiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCAKLVBBU1MgV29y
a2VyR2xvYmFsU2NvcGUgaW50ZXJmYWNlIG9iamVjdCBsZW5ndGggCi1QQVNTIFdvcmtlckdsb2Jh
bFNjb3BlIGludGVyZmFjZSBvYmplY3QgbmFtZSAKLVBBU1MgV29ya2VyR2xvYmFsU2NvcGUgaW50
ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBv
YmplY3QgCi1QQVNTIFdvcmtlckdsb2JhbFNjb3BlIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBw
cm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgImNvbnN0cnVjdG9yIiBw
cm9wZXJ0eSAKLVBBU1MgV29ya2VyR2xvYmFsU2NvcGUgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5k
IHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyBAQHVuc2NvcGFibGVz
IHByb3BlcnR5IAotUEFTUyBXb3JrZXJHbG9iYWxTY29wZSBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBz
ZWxmIAotUEFTUyBXb3JrZXJHbG9iYWxTY29wZSBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBsb2NhdGlv
biAKLVBBU1MgV29ya2VyR2xvYmFsU2NvcGUgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgbmF2aWdhdG9y
IAotUEFTUyBXb3JrZXJHbG9iYWxTY29wZSBpbnRlcmZhY2U6IG9wZXJhdGlvbiBpbXBvcnRTY3Jp
cHRzKFVTVlN0cmluZykgCi1QQVNTIFdvcmtlckdsb2JhbFNjb3BlIGludGVyZmFjZTogYXR0cmli
dXRlIG9uZXJyb3IgCi1GQUlMIFdvcmtlckdsb2JhbFNjb3BlIGludGVyZmFjZTogYXR0cmlidXRl
IG9ubGFuZ3VhZ2VjaGFuZ2UgYXNzZXJ0X3RydWU6IFRoZSBwcm90b3R5cGUgb2JqZWN0IG11c3Qg
aGF2ZSBhIHByb3BlcnR5ICJvbmxhbmd1YWdlY2hhbmdlIiBleHBlY3RlZCB0cnVlIGdvdCBmYWxz
ZQotUEFTUyBXb3JrZXJHbG9iYWxTY29wZSBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBvbm9mZmxpbmUg
Ci1QQVNTIFdvcmtlckdsb2JhbFNjb3BlIGludGVyZmFjZTogYXR0cmlidXRlIG9ub25saW5lIAot
UEFTUyBXb3JrZXJHbG9iYWxTY29wZSBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBvbnJlamVjdGlvbmhh
bmRsZWQgCi1QQVNTIFdvcmtlckdsb2JhbFNjb3BlIGludGVyZmFjZTogYXR0cmlidXRlIG9udW5o
YW5kbGVkcmVqZWN0aW9uIAotUEFTUyBXb3JrZXJHbG9iYWxTY29wZSBpbnRlcmZhY2U6IGF0dHJp
YnV0ZSBvcmlnaW4gCi1QQVNTIFdvcmtlckdsb2JhbFNjb3BlIGludGVyZmFjZTogb3BlcmF0aW9u
IGJ0b2EoRE9NU3RyaW5nKSAKLVBBU1MgV29ya2VyR2xvYmFsU2NvcGUgaW50ZXJmYWNlOiBvcGVy
YXRpb24gYXRvYihET01TdHJpbmcpIAotUEFTUyBXb3JrZXJHbG9iYWxTY29wZSBpbnRlcmZhY2U6
IG9wZXJhdGlvbiBzZXRUaW1lb3V0KFRpbWVySGFuZGxlciwgbG9uZywgYW55KSAKLVBBU1MgV29y
a2VyR2xvYmFsU2NvcGUgaW50ZXJmYWNlOiBvcGVyYXRpb24gY2xlYXJUaW1lb3V0KGxvbmcpIAot
UEFTUyBXb3JrZXJHbG9iYWxTY29wZSBpbnRlcmZhY2U6IG9wZXJhdGlvbiBzZXRJbnRlcnZhbChU
aW1lckhhbmRsZXIsIGxvbmcsIGFueSkgCi1QQVNTIFdvcmtlckdsb2JhbFNjb3BlIGludGVyZmFj
ZTogb3BlcmF0aW9uIGNsZWFySW50ZXJ2YWwobG9uZykgCi1QQVNTIFdvcmtlckdsb2JhbFNjb3Bl
IGludGVyZmFjZTogb3BlcmF0aW9uIGNyZWF0ZUltYWdlQml0bWFwKEltYWdlQml0bWFwU291cmNl
LCBJbWFnZUJpdG1hcE9wdGlvbnMpIAotUEFTUyBXb3JrZXJHbG9iYWxTY29wZSBpbnRlcmZhY2U6
IG9wZXJhdGlvbiBjcmVhdGVJbWFnZUJpdG1hcChJbWFnZUJpdG1hcFNvdXJjZSwgbG9uZywgbG9u
ZywgbG9uZywgbG9uZywgSW1hZ2VCaXRtYXBPcHRpb25zKSAKLVBBU1MgRGVkaWNhdGVkV29ya2Vy
R2xvYmFsU2NvcGUgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJm
YWNlIG9iamVjdCAKLVBBU1MgRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUgaW50ZXJmYWNlIG9i
amVjdCBsZW5ndGggCi1QQVNTIERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlIGludGVyZmFjZSBv
YmplY3QgbmFtZSAKLVBBU1MgRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUgaW50ZXJmYWNlOiBl
eGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgCi1Q
QVNTIERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlIGludGVyZmFjZTogaW50ZXJuYWwgW1tTZXRQ
cm90b3R5cGVPZl1dIG1ldGhvZCBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCAtIHNldHRp
bmcgdG8gYSBuZXcgdmFsdWUgdmlhIE9iamVjdC5zZXRQcm90b3R5cGVPZiBzaG91bGQgdGhyb3cg
YSBUeXBlRXJyb3IgCi1QQVNTIERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlIGludGVyZmFjZTog
aW50ZXJuYWwgW1tTZXRQcm90b3R5cGVPZl1dIG1ldGhvZCBvZiBpbnRlcmZhY2UgcHJvdG90eXBl
IG9iamVjdCAtIHNldHRpbmcgdG8gYSBuZXcgdmFsdWUgdmlhIF9fcHJvdG9fXyBzaG91bGQgdGhy
b3cgYSBUeXBlRXJyb3IgCi1QQVNTIERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlIGludGVyZmFj
ZTogaW50ZXJuYWwgW1tTZXRQcm90b3R5cGVPZl1dIG1ldGhvZCBvZiBpbnRlcmZhY2UgcHJvdG90
eXBlIG9iamVjdCAtIHNldHRpbmcgdG8gYSBuZXcgdmFsdWUgdmlhIFJlZmxlY3Quc2V0UHJvdG90
eXBlT2Ygc2hvdWxkIHJldHVybiBmYWxzZSAKLVBBU1MgRGVkaWNhdGVkV29ya2VyR2xvYmFsU2Nv
cGUgaW50ZXJmYWNlOiBpbnRlcm5hbCBbW1NldFByb3RvdHlwZU9mXV0gbWV0aG9kIG9mIGludGVy
ZmFjZSBwcm90b3R5cGUgb2JqZWN0IC0gc2V0dGluZyB0byBpdHMgb3JpZ2luYWwgdmFsdWUgdmlh
IE9iamVjdC5zZXRQcm90b3R5cGVPZiBzaG91bGQgbm90IHRocm93IAotUEFTUyBEZWRpY2F0ZWRX
b3JrZXJHbG9iYWxTY29wZSBpbnRlcmZhY2U6IGludGVybmFsIFtbU2V0UHJvdG90eXBlT2ZdXSBt
ZXRob2Qgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgLSBzZXR0aW5nIHRvIGl0cyBvcmln
aW5hbCB2YWx1ZSB2aWEgX19wcm90b19fIHNob3VsZCBub3QgdGhyb3cgCi1QQVNTIERlZGljYXRl
ZFdvcmtlckdsb2JhbFNjb3BlIGludGVyZmFjZTogaW50ZXJuYWwgW1tTZXRQcm90b3R5cGVPZl1d
IG1ldGhvZCBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCAtIHNldHRpbmcgdG8gaXRzIG9y
aWdpbmFsIHZhbHVlIHZpYSBSZWZsZWN0LnNldFByb3RvdHlwZU9mIHNob3VsZCByZXR1cm4gdHJ1
ZSAKLVBBU1MgRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUgaW50ZXJmYWNlOiBleGlzdGVuY2Ug
YW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyAiY29uc3RydWN0
b3IiIHByb3BlcnR5IAotUEFTUyBEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZSBpbnRlcmZhY2U6
IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdz
IEBAdW5zY29wYWJsZXMgcHJvcGVydHkgCi1QQVNTIERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3Bl
IGludGVyZmFjZTogYXR0cmlidXRlIG5hbWUgCi1QQVNTIERlZGljYXRlZFdvcmtlckdsb2JhbFNj
b3BlIGludGVyZmFjZTogb3BlcmF0aW9uIHBvc3RNZXNzYWdlKGFueSwgW29iamVjdCBPYmplY3Rd
KSAKLVBBU1MgRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUgaW50ZXJmYWNlOiBvcGVyYXRpb24g
Y2xvc2UoKSAKLVBBU1MgRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUgaW50ZXJmYWNlOiBhdHRy
aWJ1dGUgb25tZXNzYWdlIAotRkFJTCBEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZSBpbnRlcmZh
Y2U6IGF0dHJpYnV0ZSBvbm1lc3NhZ2VlcnJvciBhc3NlcnRfb3duX3Byb3BlcnR5OiBUaGUgZ2xv
YmFsIG9iamVjdCBtdXN0IGhhdmUgYSBwcm9wZXJ0eSAib25tZXNzYWdlZXJyb3IiIGV4cGVjdGVk
IHByb3BlcnR5ICJvbm1lc3NhZ2VlcnJvciIgbWlzc2luZwotUEFTUyBEZWRpY2F0ZWRXb3JrZXJH
bG9iYWxTY29wZSBpbnRlcmZhY2U6IGludGVybmFsIFtbU2V0UHJvdG90eXBlT2ZdXSBtZXRob2Qg
b2YgZ2xvYmFsIHBsYXRmb3JtIG9iamVjdCAtIHNldHRpbmcgdG8gYSBuZXcgdmFsdWUgdmlhIE9i
amVjdC5zZXRQcm90b3R5cGVPZiBzaG91bGQgdGhyb3cgYSBUeXBlRXJyb3IgCi1QQVNTIERlZGlj
YXRlZFdvcmtlckdsb2JhbFNjb3BlIGludGVyZmFjZTogaW50ZXJuYWwgW1tTZXRQcm90b3R5cGVP
Zl1dIG1ldGhvZCBvZiBnbG9iYWwgcGxhdGZvcm0gb2JqZWN0IC0gc2V0dGluZyB0byBhIG5ldyB2
YWx1ZSB2aWEgX19wcm90b19fIHNob3VsZCB0aHJvdyBhIFR5cGVFcnJvciAKLVBBU1MgRGVkaWNh
dGVkV29ya2VyR2xvYmFsU2NvcGUgaW50ZXJmYWNlOiBpbnRlcm5hbCBbW1NldFByb3RvdHlwZU9m
XV0gbWV0aG9kIG9mIGdsb2JhbCBwbGF0Zm9ybSBvYmplY3QgLSBzZXR0aW5nIHRvIGEgbmV3IHZh
bHVlIHZpYSBSZWZsZWN0LnNldFByb3RvdHlwZU9mIHNob3VsZCByZXR1cm4gZmFsc2UgCi1QQVNT
IERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlIGludGVyZmFjZTogaW50ZXJuYWwgW1tTZXRQcm90
b3R5cGVPZl1dIG1ldGhvZCBvZiBnbG9iYWwgcGxhdGZvcm0gb2JqZWN0IC0gc2V0dGluZyB0byBp
dHMgb3JpZ2luYWwgdmFsdWUgdmlhIE9iamVjdC5zZXRQcm90b3R5cGVPZiBzaG91bGQgbm90IHRo
cm93IAotUEFTUyBEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZSBpbnRlcmZhY2U6IGludGVybmFs
IFtbU2V0UHJvdG90eXBlT2ZdXSBtZXRob2Qgb2YgZ2xvYmFsIHBsYXRmb3JtIG9iamVjdCAtIHNl
dHRpbmcgdG8gaXRzIG9yaWdpbmFsIHZhbHVlIHZpYSBfX3Byb3RvX18gc2hvdWxkIG5vdCB0aHJv
dyAKLVBBU1MgRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUgaW50ZXJmYWNlOiBpbnRlcm5hbCBb
W1NldFByb3RvdHlwZU9mXV0gbWV0aG9kIG9mIGdsb2JhbCBwbGF0Zm9ybSBvYmplY3QgLSBzZXR0
aW5nIHRvIGl0cyBvcmlnaW5hbCB2YWx1ZSB2aWEgUmVmbGVjdC5zZXRQcm90b3R5cGVPZiBzaG91
bGQgcmV0dXJuIHRydWUgCi1QQVNTIERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlIG11c3QgYmUg
cHJpbWFyeSBpbnRlcmZhY2Ugb2Ygc2VsZiAKLVBBU1MgU3RyaW5naWZpY2F0aW9uIG9mIHNlbGYg
Ci1QQVNTIERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlIGludGVyZmFjZTogc2VsZiBtdXN0IGlu
aGVyaXQgcHJvcGVydHkgIm5hbWUiIHdpdGggdGhlIHByb3BlciB0eXBlIAotUEFTUyBEZWRpY2F0
ZWRXb3JrZXJHbG9iYWxTY29wZSBpbnRlcmZhY2U6IHNlbGYgbXVzdCBpbmhlcml0IHByb3BlcnR5
ICJwb3N0TWVzc2FnZShhbnksIFtvYmplY3QgT2JqZWN0XSkiIHdpdGggdGhlIHByb3BlciB0eXBl
IAotUEFTUyBEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZSBpbnRlcmZhY2U6IGNhbGxpbmcgcG9z
dE1lc3NhZ2UoYW55LCBbb2JqZWN0IE9iamVjdF0pIG9uIHNlbGYgd2l0aCB0b28gZmV3IGFyZ3Vt
ZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKLVBBU1MgRGVkaWNhdGVkV29ya2VyR2xvYmFsU2Nv
cGUgaW50ZXJmYWNlOiBzZWxmIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiY2xvc2UoKSIgd2l0aCB0
aGUgcHJvcGVyIHR5cGUgCi1QQVNTIERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlIGludGVyZmFj
ZTogc2VsZiBtdXN0IGluaGVyaXQgcHJvcGVydHkgIm9ubWVzc2FnZSIgd2l0aCB0aGUgcHJvcGVy
IHR5cGUgCi1GQUlMIERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlIGludGVyZmFjZTogc2VsZiBt
dXN0IGluaGVyaXQgcHJvcGVydHkgIm9ubWVzc2FnZWVycm9yIiB3aXRoIHRoZSBwcm9wZXIgdHlw
ZSBhc3NlcnRfb3duX3Byb3BlcnR5OiBleHBlY3RlZCBwcm9wZXJ0eSAib25tZXNzYWdlZXJyb3Ii
IG1pc3NpbmcKLVBBU1MgV29ya2VyR2xvYmFsU2NvcGUgaW50ZXJmYWNlOiBzZWxmIG11c3QgaW5o
ZXJpdCBwcm9wZXJ0eSAic2VsZiIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCi1QQVNTIFdvcmtlckds
b2JhbFNjb3BlIGludGVyZmFjZTogc2VsZiBtdXN0IGluaGVyaXQgcHJvcGVydHkgImxvY2F0aW9u
IiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKLVBBU1MgV29ya2VyR2xvYmFsU2NvcGUgaW50ZXJmYWNl
OiBzZWxmIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAibmF2aWdhdG9yIiB3aXRoIHRoZSBwcm9wZXIg
dHlwZSAKLVBBU1MgV29ya2VyR2xvYmFsU2NvcGUgaW50ZXJmYWNlOiBzZWxmIG11c3QgaW5oZXJp
dCBwcm9wZXJ0eSAiaW1wb3J0U2NyaXB0cyhVU1ZTdHJpbmcpIiB3aXRoIHRoZSBwcm9wZXIgdHlw
ZSAKLVBBU1MgV29ya2VyR2xvYmFsU2NvcGUgaW50ZXJmYWNlOiBjYWxsaW5nIGltcG9ydFNjcmlw
dHMoVVNWU3RyaW5nKSBvbiBzZWxmIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBU
eXBlRXJyb3IgCi1QQVNTIFdvcmtlckdsb2JhbFNjb3BlIGludGVyZmFjZTogc2VsZiBtdXN0IGlu
aGVyaXQgcHJvcGVydHkgIm9uZXJyb3IiIHdpdGggdGhlIHByb3BlciB0eXBlIAotRkFJTCBXb3Jr
ZXJHbG9iYWxTY29wZSBpbnRlcmZhY2U6IHNlbGYgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJvbmxh
bmd1YWdlY2hhbmdlIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBhc3NlcnRfaW5oZXJpdHM6IHByb3Bl
cnR5ICJvbmxhbmd1YWdlY2hhbmdlIiBub3QgZm91bmQgaW4gcHJvdG90eXBlIGNoYWluCi1QQVNT
IFdvcmtlckdsb2JhbFNjb3BlIGludGVyZmFjZTogc2VsZiBtdXN0IGluaGVyaXQgcHJvcGVydHkg
Im9ub2ZmbGluZSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCi1QQVNTIFdvcmtlckdsb2JhbFNjb3Bl
IGludGVyZmFjZTogc2VsZiBtdXN0IGluaGVyaXQgcHJvcGVydHkgIm9ub25saW5lIiB3aXRoIHRo
ZSBwcm9wZXIgdHlwZSAKLVBBU1MgV29ya2VyR2xvYmFsU2NvcGUgaW50ZXJmYWNlOiBzZWxmIG11
c3QgaW5oZXJpdCBwcm9wZXJ0eSAib25yZWplY3Rpb25oYW5kbGVkIiB3aXRoIHRoZSBwcm9wZXIg
dHlwZSAKLVBBU1MgV29ya2VyR2xvYmFsU2NvcGUgaW50ZXJmYWNlOiBzZWxmIG11c3QgaW5oZXJp
dCBwcm9wZXJ0eSAib251bmhhbmRsZWRyZWplY3Rpb24iIHdpdGggdGhlIHByb3BlciB0eXBlIAot
UEFTUyBXb3JrZXJHbG9iYWxTY29wZSBpbnRlcmZhY2U6IHNlbGYgbXVzdCBpbmhlcml0IHByb3Bl
cnR5ICJvcmlnaW4iIHdpdGggdGhlIHByb3BlciB0eXBlIAotUEFTUyBXb3JrZXJHbG9iYWxTY29w
ZSBpbnRlcmZhY2U6IHNlbGYgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJidG9hKERPTVN0cmluZyki
IHdpdGggdGhlIHByb3BlciB0eXBlIAotUEFTUyBXb3JrZXJHbG9iYWxTY29wZSBpbnRlcmZhY2U6
IGNhbGxpbmcgYnRvYShET01TdHJpbmcpIG9uIHNlbGYgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBt
dXN0IHRocm93IFR5cGVFcnJvciAKLVBBU1MgV29ya2VyR2xvYmFsU2NvcGUgaW50ZXJmYWNlOiBz
ZWxmIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiYXRvYihET01TdHJpbmcpIiB3aXRoIHRoZSBwcm9w
ZXIgdHlwZSAKLVBBU1MgV29ya2VyR2xvYmFsU2NvcGUgaW50ZXJmYWNlOiBjYWxsaW5nIGF0b2Io
RE9NU3RyaW5nKSBvbiBzZWxmIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBl
RXJyb3IgCi1QQVNTIFdvcmtlckdsb2JhbFNjb3BlIGludGVyZmFjZTogc2VsZiBtdXN0IGluaGVy
aXQgcHJvcGVydHkgInNldFRpbWVvdXQoVGltZXJIYW5kbGVyLCBsb25nLCBhbnkpIiB3aXRoIHRo
ZSBwcm9wZXIgdHlwZSAKLVBBU1MgV29ya2VyR2xvYmFsU2NvcGUgaW50ZXJmYWNlOiBjYWxsaW5n
IHNldFRpbWVvdXQoVGltZXJIYW5kbGVyLCBsb25nLCBhbnkpIG9uIHNlbGYgd2l0aCB0b28gZmV3
IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKLVBBU1MgV29ya2VyR2xvYmFsU2NvcGUg
aW50ZXJmYWNlOiBzZWxmIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiY2xlYXJUaW1lb3V0KGxvbmcp
IiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKLVBBU1MgV29ya2VyR2xvYmFsU2NvcGUgaW50ZXJmYWNl
OiBjYWxsaW5nIGNsZWFyVGltZW91dChsb25nKSBvbiBzZWxmIHdpdGggdG9vIGZldyBhcmd1bWVu
dHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCi1QQVNTIFdvcmtlckdsb2JhbFNjb3BlIGludGVyZmFj
ZTogc2VsZiBtdXN0IGluaGVyaXQgcHJvcGVydHkgInNldEludGVydmFsKFRpbWVySGFuZGxlciwg
bG9uZywgYW55KSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCi1QQVNTIFdvcmtlckdsb2JhbFNjb3Bl
IGludGVyZmFjZTogY2FsbGluZyBzZXRJbnRlcnZhbChUaW1lckhhbmRsZXIsIGxvbmcsIGFueSkg
b24gc2VsZiB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAotUEFT
UyBXb3JrZXJHbG9iYWxTY29wZSBpbnRlcmZhY2U6IHNlbGYgbXVzdCBpbmhlcml0IHByb3BlcnR5
ICJjbGVhckludGVydmFsKGxvbmcpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKLVBBU1MgV29ya2Vy
R2xvYmFsU2NvcGUgaW50ZXJmYWNlOiBjYWxsaW5nIGNsZWFySW50ZXJ2YWwobG9uZykgb24gc2Vs
ZiB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAotUEFTUyBXb3Jr
ZXJHbG9iYWxTY29wZSBpbnRlcmZhY2U6IHNlbGYgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJjcmVh
dGVJbWFnZUJpdG1hcChJbWFnZUJpdG1hcFNvdXJjZSwgSW1hZ2VCaXRtYXBPcHRpb25zKSIgd2l0
aCB0aGUgcHJvcGVyIHR5cGUgCi1QQVNTIFdvcmtlckdsb2JhbFNjb3BlIGludGVyZmFjZTogY2Fs
bGluZyBjcmVhdGVJbWFnZUJpdG1hcChJbWFnZUJpdG1hcFNvdXJjZSwgSW1hZ2VCaXRtYXBPcHRp
b25zKSBvbiBzZWxmIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3Ig
Ci1QQVNTIFdvcmtlckdsb2JhbFNjb3BlIGludGVyZmFjZTogc2VsZiBtdXN0IGluaGVyaXQgcHJv
cGVydHkgImNyZWF0ZUltYWdlQml0bWFwKEltYWdlQml0bWFwU291cmNlLCBsb25nLCBsb25nLCBs
b25nLCBsb25nLCBJbWFnZUJpdG1hcE9wdGlvbnMpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKLVBB
U1MgV29ya2VyR2xvYmFsU2NvcGUgaW50ZXJmYWNlOiBjYWxsaW5nIGNyZWF0ZUltYWdlQml0bWFw
KEltYWdlQml0bWFwU291cmNlLCBsb25nLCBsb25nLCBsb25nLCBsb25nLCBJbWFnZUJpdG1hcE9w
dGlvbnMpIG9uIHNlbGYgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJv
ciAKLVBBU1MgRXZlbnRUYXJnZXQgaW50ZXJmYWNlOiBzZWxmIG11c3QgaW5oZXJpdCBwcm9wZXJ0
eSAiYWRkRXZlbnRMaXN0ZW5lcihET01TdHJpbmcsIEV2ZW50TGlzdGVuZXIsIFtvYmplY3QgT2Jq
ZWN0XSxbb2JqZWN0IE9iamVjdF0pIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKLVBBU1MgRXZlbnRU
YXJnZXQgaW50ZXJmYWNlOiBjYWxsaW5nIGFkZEV2ZW50TGlzdGVuZXIoRE9NU3RyaW5nLCBFdmVu
dExpc3RlbmVyLCBbb2JqZWN0IE9iamVjdF0sW29iamVjdCBPYmplY3RdKSBvbiBzZWxmIHdpdGgg
dG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCi1QQVNTIEV2ZW50VGFyZ2V0
IGludGVyZmFjZTogc2VsZiBtdXN0IGluaGVyaXQgcHJvcGVydHkgInJlbW92ZUV2ZW50TGlzdGVu
ZXIoRE9NU3RyaW5nLCBFdmVudExpc3RlbmVyLCBbb2JqZWN0IE9iamVjdF0sW29iamVjdCBPYmpl
Y3RdKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCi1QQVNTIEV2ZW50VGFyZ2V0IGludGVyZmFjZTog
Y2FsbGluZyByZW1vdmVFdmVudExpc3RlbmVyKERPTVN0cmluZywgRXZlbnRMaXN0ZW5lciwgW29i
amVjdCBPYmplY3RdLFtvYmplY3QgT2JqZWN0XSkgb24gc2VsZiB3aXRoIHRvbyBmZXcgYXJndW1l
bnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAotUEFTUyBFdmVudFRhcmdldCBpbnRlcmZhY2U6IHNl
bGYgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJkaXNwYXRjaEV2ZW50KEV2ZW50KSIgd2l0aCB0aGUg
cHJvcGVyIHR5cGUgCi1QQVNTIEV2ZW50VGFyZ2V0IGludGVyZmFjZTogY2FsbGluZyBkaXNwYXRj
aEV2ZW50KEV2ZW50KSBvbiBzZWxmIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBU
eXBlRXJyb3IgCi1QQVNTIFdvcmtlck5hdmlnYXRvciBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQg
cHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IAotUEFTUyBXb3JrZXJOYXZpZ2F0b3IgaW50
ZXJmYWNlIG9iamVjdCBsZW5ndGggCi1QQVNTIFdvcmtlck5hdmlnYXRvciBpbnRlcmZhY2Ugb2Jq
ZWN0IG5hbWUgCi1QQVNTIFdvcmtlck5hdmlnYXRvciBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQg
cHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCAKLVBBU1MgV29ya2VyTmF2
aWdhdG9yIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBw
cm90b3R5cGUgb2JqZWN0J3MgImNvbnN0cnVjdG9yIiBwcm9wZXJ0eSAKLVBBU1MgV29ya2VyTmF2
aWdhdG9yIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBw
cm90b3R5cGUgb2JqZWN0J3MgQEB1bnNjb3BhYmxlcyBwcm9wZXJ0eSAKLVBBU1MgV29ya2VyTmF2
aWdhdG9yIGludGVyZmFjZTogYXR0cmlidXRlIGFwcENvZGVOYW1lIAotUEFTUyBXb3JrZXJOYXZp
Z2F0b3IgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgYXBwTmFtZSAKLVBBU1MgV29ya2VyTmF2aWdhdG9y
IGludGVyZmFjZTogYXR0cmlidXRlIGFwcFZlcnNpb24gCi1QQVNTIFdvcmtlck5hdmlnYXRvciBp
bnRlcmZhY2U6IGF0dHJpYnV0ZSBwbGF0Zm9ybSAKLVBBU1MgV29ya2VyTmF2aWdhdG9yIGludGVy
ZmFjZTogYXR0cmlidXRlIHByb2R1Y3QgCi1QQVNTIFdvcmtlck5hdmlnYXRvciBpbnRlcmZhY2U6
IG1lbWJlciBwcm9kdWN0U3ViIAotUEFTUyBXb3JrZXJOYXZpZ2F0b3IgaW50ZXJmYWNlOiBhdHRy
aWJ1dGUgdXNlckFnZW50IAotUEFTUyBXb3JrZXJOYXZpZ2F0b3IgaW50ZXJmYWNlOiBtZW1iZXIg
dmVuZG9yIAotUEFTUyBXb3JrZXJOYXZpZ2F0b3IgaW50ZXJmYWNlOiBtZW1iZXIgdmVuZG9yU3Vi
IAotUEFTUyBXb3JrZXJOYXZpZ2F0b3IgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgbGFuZ3VhZ2UgCi1Q
QVNTIFdvcmtlck5hdmlnYXRvciBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBsYW5ndWFnZXMgCi1QQVNT
IFdvcmtlck5hdmlnYXRvciBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBvbkxpbmUgCi1GQUlMIFdvcmtl
ck5hdmlnYXRvciBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBoYXJkd2FyZUNvbmN1cnJlbmN5IGFzc2Vy
dF90cnVlOiBUaGUgcHJvdG90eXBlIG9iamVjdCBtdXN0IGhhdmUgYSBwcm9wZXJ0eSAiaGFyZHdh
cmVDb25jdXJyZW5jeSIgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLVBBU1MgV29ya2VyTmF2aWdh
dG9yIG11c3QgYmUgcHJpbWFyeSBpbnRlcmZhY2Ugb2Ygc2VsZi5uYXZpZ2F0b3IgCi1QQVNTIFN0
cmluZ2lmaWNhdGlvbiBvZiBzZWxmLm5hdmlnYXRvciAKLVBBU1MgV29ya2VyTmF2aWdhdG9yIGlu
dGVyZmFjZTogc2VsZi5uYXZpZ2F0b3IgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJhcHBDb2RlTmFt
ZSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCi1QQVNTIFdvcmtlck5hdmlnYXRvciBpbnRlcmZhY2U6
IHNlbGYubmF2aWdhdG9yIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiYXBwTmFtZSIgd2l0aCB0aGUg
cHJvcGVyIHR5cGUgCi1QQVNTIFdvcmtlck5hdmlnYXRvciBpbnRlcmZhY2U6IHNlbGYubmF2aWdh
dG9yIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiYXBwVmVyc2lvbiIgd2l0aCB0aGUgcHJvcGVyIHR5
cGUgCi1QQVNTIFdvcmtlck5hdmlnYXRvciBpbnRlcmZhY2U6IHNlbGYubmF2aWdhdG9yIG11c3Qg
aW5oZXJpdCBwcm9wZXJ0eSAicGxhdGZvcm0iIHdpdGggdGhlIHByb3BlciB0eXBlIAotUEFTUyBX
b3JrZXJOYXZpZ2F0b3IgaW50ZXJmYWNlOiBzZWxmLm5hdmlnYXRvciBtdXN0IGluaGVyaXQgcHJv
cGVydHkgInByb2R1Y3QiIHdpdGggdGhlIHByb3BlciB0eXBlIAotUEFTUyBXb3JrZXJOYXZpZ2F0
b3IgaW50ZXJmYWNlOiBzZWxmLm5hdmlnYXRvciBtdXN0IG5vdCBoYXZlIHByb3BlcnR5ICJwcm9k
dWN0U3ViIiAKLVBBU1MgV29ya2VyTmF2aWdhdG9yIGludGVyZmFjZTogc2VsZi5uYXZpZ2F0b3Ig
bXVzdCBpbmhlcml0IHByb3BlcnR5ICJ1c2VyQWdlbnQiIHdpdGggdGhlIHByb3BlciB0eXBlIAot
UEFTUyBXb3JrZXJOYXZpZ2F0b3IgaW50ZXJmYWNlOiBzZWxmLm5hdmlnYXRvciBtdXN0IG5vdCBo
YXZlIHByb3BlcnR5ICJ2ZW5kb3IiIAotUEFTUyBXb3JrZXJOYXZpZ2F0b3IgaW50ZXJmYWNlOiBz
ZWxmLm5hdmlnYXRvciBtdXN0IG5vdCBoYXZlIHByb3BlcnR5ICJ2ZW5kb3JTdWIiIAotUEFTUyBX
b3JrZXJOYXZpZ2F0b3IgaW50ZXJmYWNlOiBzZWxmLm5hdmlnYXRvciBtdXN0IGluaGVyaXQgcHJv
cGVydHkgImxhbmd1YWdlIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKLVBBU1MgV29ya2VyTmF2aWdh
dG9yIGludGVyZmFjZTogc2VsZi5uYXZpZ2F0b3IgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJsYW5n
dWFnZXMiIHdpdGggdGhlIHByb3BlciB0eXBlIAotUEFTUyBXb3JrZXJOYXZpZ2F0b3IgaW50ZXJm
YWNlOiBzZWxmLm5hdmlnYXRvciBtdXN0IGluaGVyaXQgcHJvcGVydHkgIm9uTGluZSIgd2l0aCB0
aGUgcHJvcGVyIHR5cGUgCi1GQUlMIFdvcmtlck5hdmlnYXRvciBpbnRlcmZhY2U6IHNlbGYubmF2
aWdhdG9yIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiaGFyZHdhcmVDb25jdXJyZW5jeSIgd2l0aCB0
aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2luaGVyaXRzOiBwcm9wZXJ0eSAiaGFyZHdhcmVDb25jdXJy
ZW5jeSIgbm90IGZvdW5kIGluIHByb3RvdHlwZSBjaGFpbgotUEFTUyBXb3JrZXJMb2NhdGlvbiBp
bnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IAot
UEFTUyBXb3JrZXJMb2NhdGlvbiBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aCAKLVBBU1MgV29ya2Vy
TG9jYXRpb24gaW50ZXJmYWNlIG9iamVjdCBuYW1lIAotUEFTUyBXb3JrZXJMb2NhdGlvbiBpbnRl
cmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9i
amVjdCAKLVBBU1MgV29ya2VyTG9jYXRpb24gaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3Bl
cnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyAiY29uc3RydWN0b3IiIHByb3Bl
cnR5IAotUEFTUyBXb3JrZXJMb2NhdGlvbiBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVy
dGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzIEBAdW5zY29wYWJsZXMgcHJvcGVy
dHkgCi1QQVNTIFdvcmtlckxvY2F0aW9uIGludGVyZmFjZTogYXR0cmlidXRlIGhyZWYgCi1QQVNT
IFdvcmtlckxvY2F0aW9uIGludGVyZmFjZTogc3RyaW5naWZpZXIgCi1QQVNTIFdvcmtlckxvY2F0
aW9uIGludGVyZmFjZTogYXR0cmlidXRlIG9yaWdpbiAKLVBBU1MgV29ya2VyTG9jYXRpb24gaW50
ZXJmYWNlOiBhdHRyaWJ1dGUgcHJvdG9jb2wgCi1QQVNTIFdvcmtlckxvY2F0aW9uIGludGVyZmFj
ZTogYXR0cmlidXRlIGhvc3QgCi1QQVNTIFdvcmtlckxvY2F0aW9uIGludGVyZmFjZTogYXR0cmli
dXRlIGhvc3RuYW1lIAotUEFTUyBXb3JrZXJMb2NhdGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBw
b3J0IAotUEFTUyBXb3JrZXJMb2NhdGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBwYXRobmFtZSAK
LVBBU1MgV29ya2VyTG9jYXRpb24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgc2VhcmNoIAotUEFTUyBX
b3JrZXJMb2NhdGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBoYXNoIAotUEFTUyBXb3JrZXJMb2Nh
dGlvbiBtdXN0IGJlIHByaW1hcnkgaW50ZXJmYWNlIG9mIHNlbGYubG9jYXRpb24gCi1QQVNTIFN0
cmluZ2lmaWNhdGlvbiBvZiBzZWxmLmxvY2F0aW9uIAotUEFTUyBXb3JrZXJMb2NhdGlvbiBpbnRl
cmZhY2U6IHNlbGYubG9jYXRpb24gbXVzdCBpbmhlcml0IHByb3BlcnR5ICJocmVmIiB3aXRoIHRo
ZSBwcm9wZXIgdHlwZSAKLVBBU1MgV29ya2VyTG9jYXRpb24gaW50ZXJmYWNlOiBzZWxmLmxvY2F0
aW9uIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAib3JpZ2luIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAK
LVBBU1MgV29ya2VyTG9jYXRpb24gaW50ZXJmYWNlOiBzZWxmLmxvY2F0aW9uIG11c3QgaW5oZXJp
dCBwcm9wZXJ0eSAicHJvdG9jb2wiIHdpdGggdGhlIHByb3BlciB0eXBlIAotUEFTUyBXb3JrZXJM
b2NhdGlvbiBpbnRlcmZhY2U6IHNlbGYubG9jYXRpb24gbXVzdCBpbmhlcml0IHByb3BlcnR5ICJo
b3N0IiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKLVBBU1MgV29ya2VyTG9jYXRpb24gaW50ZXJmYWNl
OiBzZWxmLmxvY2F0aW9uIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiaG9zdG5hbWUiIHdpdGggdGhl
IHByb3BlciB0eXBlIAotUEFTUyBXb3JrZXJMb2NhdGlvbiBpbnRlcmZhY2U6IHNlbGYubG9jYXRp
b24gbXVzdCBpbmhlcml0IHByb3BlcnR5ICJwb3J0IiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKLVBB
U1MgV29ya2VyTG9jYXRpb24gaW50ZXJmYWNlOiBzZWxmLmxvY2F0aW9uIG11c3QgaW5oZXJpdCBw
cm9wZXJ0eSAicGF0aG5hbWUiIHdpdGggdGhlIHByb3BlciB0eXBlIAotUEFTUyBXb3JrZXJMb2Nh
dGlvbiBpbnRlcmZhY2U6IHNlbGYubG9jYXRpb24gbXVzdCBpbmhlcml0IHByb3BlcnR5ICJzZWFy
Y2giIHdpdGggdGhlIHByb3BlciB0eXBlIAotUEFTUyBXb3JrZXJMb2NhdGlvbiBpbnRlcmZhY2U6
IHNlbGYubG9jYXRpb24gbXVzdCBpbmhlcml0IHByb3BlcnR5ICJoYXNoIiB3aXRoIHRoZSBwcm9w
ZXIgdHlwZSAKK0ZBSUwgVW50aXRsZWQgV2ViSURMUGFyc2VFcnJvcjogU3ludGF4IGVycm9yIGF0
IGxpbmUgODIsIHNpbmNlIGBpbnRlcmZhY2UgV2luZG93T3JXb3JrZXJHbG9iYWxTY29wZWA6CitX
b3JrZXJHbG9iYWxTY29wZSBpbXBsZW1lbnRzIFdpbmRvd09yV29ya2VyR2xvYmFsU2NvcGU7Cite
IFVucmVjb2duaXNlZCB0b2tlbnMKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy94aHIvaWRsaGFybmVzcy5hbnktZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy94aHIvaWRsaGFybmVz
cy5hbnktZXhwZWN0ZWQudHh0CmluZGV4IGNkYTdlODRjNDI1MmE3YjY0ZjlhOTRkYzMyZmNlZDlj
YWQ3YjgzYmEuLjJiMjlhMGU0M2YyYmZiYjJiOWI5NmUxZTNiMTkzZWUwOTBiYTJjYzkgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMveGhyL2lk
bGhhcm5lc3MuYW55LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3hoci9pZGxoYXJuZXNzLmFueS1leHBlY3RlZC50eHQKQEAgLTEx
OCwxMiArMTE4LDcgQEAgUEFTUyBGb3JtRGF0YSBpbnRlcmZhY2U6IG9wZXJhdGlvbiBnZXRBbGwo
VVNWU3RyaW5nKQogUEFTUyBGb3JtRGF0YSBpbnRlcmZhY2U6IG9wZXJhdGlvbiBoYXMoVVNWU3Ry
aW5nKSAKIFBBU1MgRm9ybURhdGEgaW50ZXJmYWNlOiBvcGVyYXRpb24gc2V0KFVTVlN0cmluZywg
VVNWU3RyaW5nKSAKIFBBU1MgRm9ybURhdGEgaW50ZXJmYWNlOiBvcGVyYXRpb24gc2V0KFVTVlN0
cmluZywgQmxvYiwgVVNWU3RyaW5nKSAKLVBBU1MgVGVzdGluZyBTeW1ib2wuaXRlcmF0b3IgcHJv
cGVydHkgb2YgaXRlcmFibGUgaW50ZXJmYWNlIEZvcm1EYXRhIAotUEFTUyBUZXN0aW5nIHBhaXIg
aXRlcmFibGUgaW50ZXJmYWNlIEZvcm1EYXRhIAotUEFTUyBGb3JtRGF0YSBpbnRlcmZhY2U6IG9w
ZXJhdGlvbiBlbnRyaWVzKCkgCi1QQVNTIEZvcm1EYXRhIGludGVyZmFjZTogb3BlcmF0aW9uIGtl
eXMoKSAKLVBBU1MgRm9ybURhdGEgaW50ZXJmYWNlOiBvcGVyYXRpb24gdmFsdWVzKCkgCi1QQVNT
IEZvcm1EYXRhIGludGVyZmFjZTogb3BlcmF0aW9uIGZvckVhY2goZnVuY3Rpb24sIGFueSkgCitQ
QVNTIEZvcm1EYXRhIGludGVyZmFjZTogaXRlcmFibGU8VVNWU3RyaW5nLCBGb3JtRGF0YUVudHJ5
VmFsdWU+IAogUEFTUyBGb3JtRGF0YSBtdXN0IGJlIHByaW1hcnkgaW50ZXJmYWNlIG9mIG5ldyBG
b3JtRGF0YSgpIAogUEFTUyBTdHJpbmdpZmljYXRpb24gb2YgbmV3IEZvcm1EYXRhKCkgCiBQQVNT
IEZvcm1EYXRhIGludGVyZmFjZTogbmV3IEZvcm1EYXRhKCkgbXVzdCBpbmhlcml0IHByb3BlcnR5
ICJhcHBlbmQoVVNWU3RyaW5nLCBVU1ZTdHJpbmcpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKQEAg
LTE0MiwxMSArMTM3LDYgQEAgUEFTUyBGb3JtRGF0YSBpbnRlcmZhY2U6IG5ldyBGb3JtRGF0YSgp
IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAic2V0KFVTVlN0cmluZywgVVMKIFBBU1MgRm9ybURhdGEg
aW50ZXJmYWNlOiBjYWxsaW5nIHNldChVU1ZTdHJpbmcsIFVTVlN0cmluZykgb24gbmV3IEZvcm1E
YXRhKCkgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKIFBBU1Mg
Rm9ybURhdGEgaW50ZXJmYWNlOiBuZXcgRm9ybURhdGEoKSBtdXN0IGluaGVyaXQgcHJvcGVydHkg
InNldChVU1ZTdHJpbmcsIEJsb2IsIFVTVlN0cmluZykiIHdpdGggdGhlIHByb3BlciB0eXBlIAog
UEFTUyBGb3JtRGF0YSBpbnRlcmZhY2U6IGNhbGxpbmcgc2V0KFVTVlN0cmluZywgQmxvYiwgVVNW
U3RyaW5nKSBvbiBuZXcgRm9ybURhdGEoKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhy
b3cgVHlwZUVycm9yIAotUEFTUyBGb3JtRGF0YSBpbnRlcmZhY2U6IG5ldyBGb3JtRGF0YSgpIG11
c3QgaW5oZXJpdCBwcm9wZXJ0eSAiZW50cmllcygpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKLVBB
U1MgRm9ybURhdGEgaW50ZXJmYWNlOiBuZXcgRm9ybURhdGEoKSBtdXN0IGluaGVyaXQgcHJvcGVy
dHkgImtleXMoKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCi1QQVNTIEZvcm1EYXRhIGludGVyZmFj
ZTogbmV3IEZvcm1EYXRhKCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJ2YWx1ZXMoKSIgd2l0aCB0
aGUgcHJvcGVyIHR5cGUgCi1QQVNTIEZvcm1EYXRhIGludGVyZmFjZTogbmV3IEZvcm1EYXRhKCkg
bXVzdCBpbmhlcml0IHByb3BlcnR5ICJmb3JFYWNoKGZ1bmN0aW9uLCBhbnkpIiB3aXRoIHRoZSBw
cm9wZXIgdHlwZSAKLVBBU1MgRm9ybURhdGEgaW50ZXJmYWNlOiBjYWxsaW5nIGZvckVhY2goZnVu
Y3Rpb24sIGFueSkgb24gbmV3IEZvcm1EYXRhKCkgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0
IHRocm93IFR5cGVFcnJvciAKIFBBU1MgRm9ybURhdGEgbXVzdCBiZSBwcmltYXJ5IGludGVyZmFj
ZSBvZiBuZXcgRm9ybURhdGEoZm9ybSkgCiBQQVNTIFN0cmluZ2lmaWNhdGlvbiBvZiBuZXcgRm9y
bURhdGEoZm9ybSkgCiBQQVNTIEZvcm1EYXRhIGludGVyZmFjZTogbmV3IEZvcm1EYXRhKGZvcm0p
IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiYXBwZW5kKFVTVlN0cmluZywgVVNWU3RyaW5nKSIgd2l0
aCB0aGUgcHJvcGVyIHR5cGUgCkBAIC0xNjUsMTEgKzE1NSw2IEBAIFBBU1MgRm9ybURhdGEgaW50
ZXJmYWNlOiBuZXcgRm9ybURhdGEoZm9ybSkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJzZXQoVVNW
U3RyaW5nCiBQQVNTIEZvcm1EYXRhIGludGVyZmFjZTogY2FsbGluZyBzZXQoVVNWU3RyaW5nLCBV
U1ZTdHJpbmcpIG9uIG5ldyBGb3JtRGF0YShmb3JtKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11
c3QgdGhyb3cgVHlwZUVycm9yIAogUEFTUyBGb3JtRGF0YSBpbnRlcmZhY2U6IG5ldyBGb3JtRGF0
YShmb3JtKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInNldChVU1ZTdHJpbmcsIEJsb2IsIFVTVlN0
cmluZykiIHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBGb3JtRGF0YSBpbnRlcmZhY2U6IGNh
bGxpbmcgc2V0KFVTVlN0cmluZywgQmxvYiwgVVNWU3RyaW5nKSBvbiBuZXcgRm9ybURhdGEoZm9y
bSkgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKLVBBU1MgRm9y
bURhdGEgaW50ZXJmYWNlOiBuZXcgRm9ybURhdGEoZm9ybSkgbXVzdCBpbmhlcml0IHByb3BlcnR5
ICJlbnRyaWVzKCkiIHdpdGggdGhlIHByb3BlciB0eXBlIAotUEFTUyBGb3JtRGF0YSBpbnRlcmZh
Y2U6IG5ldyBGb3JtRGF0YShmb3JtKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImtleXMoKSIgd2l0
aCB0aGUgcHJvcGVyIHR5cGUgCi1QQVNTIEZvcm1EYXRhIGludGVyZmFjZTogbmV3IEZvcm1EYXRh
KGZvcm0pIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAidmFsdWVzKCkiIHdpdGggdGhlIHByb3BlciB0
eXBlIAotUEFTUyBGb3JtRGF0YSBpbnRlcmZhY2U6IG5ldyBGb3JtRGF0YShmb3JtKSBtdXN0IGlu
aGVyaXQgcHJvcGVydHkgImZvckVhY2goZnVuY3Rpb24sIGFueSkiIHdpdGggdGhlIHByb3BlciB0
eXBlIAotUEFTUyBGb3JtRGF0YSBpbnRlcmZhY2U6IGNhbGxpbmcgZm9yRWFjaChmdW5jdGlvbiwg
YW55KSBvbiBuZXcgRm9ybURhdGEoZm9ybSkgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRo
cm93IFR5cGVFcnJvciAKIFBBU1MgUHJvZ3Jlc3NFdmVudCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBh
bmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IAogUEFTUyBQcm9ncmVzc0V2ZW50IGlu
dGVyZmFjZSBvYmplY3QgbGVuZ3RoIAogUEFTUyBQcm9ncmVzc0V2ZW50IGludGVyZmFjZSBvYmpl
Y3QgbmFtZSAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMveGhyL2lkbGhhcm5lc3MuYW55Lndvcmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3hoci9pZGxoYXJuZXNzLmFueS53
b3JrZXItZXhwZWN0ZWQudHh0CmluZGV4IDdjODI3MGNhMDJhM2IwYmU0NzA2MjM5YzdmOWU5MWQ2
YTAwZmNhNWIuLmM2YWJhMTFjMGYzNGQyODBkNzhlYTkxZmYwMTIwZDExODgwMDVlNjcgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMveGhyL2lk
bGhhcm5lc3MuYW55Lndvcmtlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy94aHIvaWRsaGFybmVzcy5hbnkud29ya2VyLWV4cGVj
dGVkLnR4dApAQCAtMTE4LDEyICsxMTgsNyBAQCBGQUlMIEZvcm1EYXRhIGludGVyZmFjZTogb3Bl
cmF0aW9uIGdldEFsbChVU1ZTdHJpbmcpIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZAogRkFJ
TCBGb3JtRGF0YSBpbnRlcmZhY2U6IG9wZXJhdGlvbiBoYXMoVVNWU3RyaW5nKSBhc3NlcnRfb3du
X3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJGb3JtRGF0YSIgZXhw
ZWN0ZWQgcHJvcGVydHkgIkZvcm1EYXRhIiBtaXNzaW5nCiBGQUlMIEZvcm1EYXRhIGludGVyZmFj
ZTogb3BlcmF0aW9uIHNldChVU1ZTdHJpbmcsIFVTVlN0cmluZykgYXNzZXJ0X293bl9wcm9wZXJ0
eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiRm9ybURhdGEiIGV4cGVjdGVkIHBy
b3BlcnR5ICJGb3JtRGF0YSIgbWlzc2luZwogRkFJTCBGb3JtRGF0YSBpbnRlcmZhY2U6IG9wZXJh
dGlvbiBzZXQoVVNWU3RyaW5nLCBCbG9iLCBVU1ZTdHJpbmcpIGFzc2VydF9vd25fcHJvcGVydHk6
IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIkZvcm1EYXRhIiBleHBlY3RlZCBwcm9w
ZXJ0eSAiRm9ybURhdGEiIG1pc3NpbmcKLUZBSUwgVGVzdGluZyBTeW1ib2wuaXRlcmF0b3IgcHJv
cGVydHkgb2YgaXRlcmFibGUgaW50ZXJmYWNlIEZvcm1EYXRhIHVuZGVmaW5lZCBpcyBub3QgYW4g
b2JqZWN0IChldmFsdWF0aW5nICdzZWxmW2ludGVyZmFjZU5hbWVdLnByb3RvdHlwZScpCi1GQUlM
IFRlc3RpbmcgcGFpciBpdGVyYWJsZSBpbnRlcmZhY2UgRm9ybURhdGEgdW5kZWZpbmVkIGlzIG5v
dCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ3NlbGZbaW50ZXJmYWNlTmFtZV0ucHJvdG90eXBlJykK
LUZBSUwgRm9ybURhdGEgaW50ZXJmYWNlOiBvcGVyYXRpb24gZW50cmllcygpIGFzc2VydF9vd25f
cHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIkZvcm1EYXRhIiBleHBl
Y3RlZCBwcm9wZXJ0eSAiRm9ybURhdGEiIG1pc3NpbmcKLUZBSUwgRm9ybURhdGEgaW50ZXJmYWNl
OiBvcGVyYXRpb24ga2V5cygpIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2
ZSBvd24gcHJvcGVydHkgIkZvcm1EYXRhIiBleHBlY3RlZCBwcm9wZXJ0eSAiRm9ybURhdGEiIG1p
c3NpbmcKLUZBSUwgRm9ybURhdGEgaW50ZXJmYWNlOiBvcGVyYXRpb24gdmFsdWVzKCkgYXNzZXJ0
X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiRm9ybURhdGEi
IGV4cGVjdGVkIHByb3BlcnR5ICJGb3JtRGF0YSIgbWlzc2luZwotRkFJTCBGb3JtRGF0YSBpbnRl
cmZhY2U6IG9wZXJhdGlvbiBmb3JFYWNoKGZ1bmN0aW9uLCBhbnkpIGFzc2VydF9vd25fcHJvcGVy
dHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIkZvcm1EYXRhIiBleHBlY3RlZCBw
cm9wZXJ0eSAiRm9ybURhdGEiIG1pc3NpbmcKK0ZBSUwgRm9ybURhdGEgaW50ZXJmYWNlOiBpdGVy
YWJsZTxVU1ZTdHJpbmcsIEZvcm1EYXRhRW50cnlWYWx1ZT4gdW5kZWZpbmVkIGlzIG5vdCBhbiBv
YmplY3QgKGV2YWx1YXRpbmcgJ3RoaXMuZ2V0X2ludGVyZmFjZV9vYmplY3QoKS5wcm90b3R5cGUn
KQogRkFJTCBGb3JtRGF0YSBtdXN0IGJlIHByaW1hcnkgaW50ZXJmYWNlIG9mIG5ldyBGb3JtRGF0
YSgpIGFzc2VydF9lcXVhbHM6IFVuZXhwZWN0ZWQgZXhjZXB0aW9uIHdoZW4gZXZhbHVhdGluZyBv
YmplY3QgZXhwZWN0ZWQgbnVsbCBidXQgZ290IG9iamVjdCAiUmVmZXJlbmNlRXJyb3I6IENhbid0
IGZpbmQgdmFyaWFibGU6IEZvcm1EYXRhIgogRkFJTCBTdHJpbmdpZmljYXRpb24gb2YgbmV3IEZv
cm1EYXRhKCkgYXNzZXJ0X2VxdWFsczogVW5leHBlY3RlZCBleGNlcHRpb24gd2hlbiBldmFsdWF0
aW5nIG9iamVjdCBleHBlY3RlZCBudWxsIGJ1dCBnb3Qgb2JqZWN0ICJSZWZlcmVuY2VFcnJvcjog
Q2FuJ3QgZmluZCB2YXJpYWJsZTogRm9ybURhdGEiCiBGQUlMIEZvcm1EYXRhIGludGVyZmFjZTog
bmV3IEZvcm1EYXRhKCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJhcHBlbmQoVVNWU3RyaW5nLCBV
U1ZTdHJpbmcpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBhc3NlcnRfZXF1YWxzOiBVbmV4cGVjdGVk
IGV4Y2VwdGlvbiB3aGVuIGV2YWx1YXRpbmcgb2JqZWN0IGV4cGVjdGVkIG51bGwgYnV0IGdvdCBv
YmplY3QgIlJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBGb3JtRGF0YSIKQEAg
LTE0MiwxMSArMTM3LDYgQEAgRkFJTCBGb3JtRGF0YSBpbnRlcmZhY2U6IG5ldyBGb3JtRGF0YSgp
IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAic2V0KFVTVlN0cmluZywgVVMKIEZBSUwgRm9ybURhdGEg
aW50ZXJmYWNlOiBjYWxsaW5nIHNldChVU1ZTdHJpbmcsIFVTVlN0cmluZykgb24gbmV3IEZvcm1E
YXRhKCkgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRf
ZXF1YWxzOiBVbmV4cGVjdGVkIGV4Y2VwdGlvbiB3aGVuIGV2YWx1YXRpbmcgb2JqZWN0IGV4cGVj
dGVkIG51bGwgYnV0IGdvdCBvYmplY3QgIlJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlh
YmxlOiBGb3JtRGF0YSIKIEZBSUwgRm9ybURhdGEgaW50ZXJmYWNlOiBuZXcgRm9ybURhdGEoKSBt
dXN0IGluaGVyaXQgcHJvcGVydHkgInNldChVU1ZTdHJpbmcsIEJsb2IsIFVTVlN0cmluZykiIHdp
dGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9lcXVhbHM6IFVuZXhwZWN0ZWQgZXhjZXB0aW9uIHdo
ZW4gZXZhbHVhdGluZyBvYmplY3QgZXhwZWN0ZWQgbnVsbCBidXQgZ290IG9iamVjdCAiUmVmZXJl
bmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IEZvcm1EYXRhIgogRkFJTCBGb3JtRGF0YSBp
bnRlcmZhY2U6IGNhbGxpbmcgc2V0KFVTVlN0cmluZywgQmxvYiwgVVNWU3RyaW5nKSBvbiBuZXcg
Rm9ybURhdGEoKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFz
c2VydF9lcXVhbHM6IFVuZXhwZWN0ZWQgZXhjZXB0aW9uIHdoZW4gZXZhbHVhdGluZyBvYmplY3Qg
ZXhwZWN0ZWQgbnVsbCBidXQgZ290IG9iamVjdCAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQg
dmFyaWFibGU6IEZvcm1EYXRhIgotRkFJTCBGb3JtRGF0YSBpbnRlcmZhY2U6IG5ldyBGb3JtRGF0
YSgpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiZW50cmllcygpIiB3aXRoIHRoZSBwcm9wZXIgdHlw
ZSBhc3NlcnRfZXF1YWxzOiBVbmV4cGVjdGVkIGV4Y2VwdGlvbiB3aGVuIGV2YWx1YXRpbmcgb2Jq
ZWN0IGV4cGVjdGVkIG51bGwgYnV0IGdvdCBvYmplY3QgIlJlZmVyZW5jZUVycm9yOiBDYW4ndCBm
aW5kIHZhcmlhYmxlOiBGb3JtRGF0YSIKLUZBSUwgRm9ybURhdGEgaW50ZXJmYWNlOiBuZXcgRm9y
bURhdGEoKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImtleXMoKSIgd2l0aCB0aGUgcHJvcGVyIHR5
cGUgYXNzZXJ0X2VxdWFsczogVW5leHBlY3RlZCBleGNlcHRpb24gd2hlbiBldmFsdWF0aW5nIG9i
amVjdCBleHBlY3RlZCBudWxsIGJ1dCBnb3Qgb2JqZWN0ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3Qg
ZmluZCB2YXJpYWJsZTogRm9ybURhdGEiCi1GQUlMIEZvcm1EYXRhIGludGVyZmFjZTogbmV3IEZv
cm1EYXRhKCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJ2YWx1ZXMoKSIgd2l0aCB0aGUgcHJvcGVy
IHR5cGUgYXNzZXJ0X2VxdWFsczogVW5leHBlY3RlZCBleGNlcHRpb24gd2hlbiBldmFsdWF0aW5n
IG9iamVjdCBleHBlY3RlZCBudWxsIGJ1dCBnb3Qgb2JqZWN0ICJSZWZlcmVuY2VFcnJvcjogQ2Fu
J3QgZmluZCB2YXJpYWJsZTogRm9ybURhdGEiCi1GQUlMIEZvcm1EYXRhIGludGVyZmFjZTogbmV3
IEZvcm1EYXRhKCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJmb3JFYWNoKGZ1bmN0aW9uLCBhbnkp
IiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBhc3NlcnRfZXF1YWxzOiBVbmV4cGVjdGVkIGV4Y2VwdGlv
biB3aGVuIGV2YWx1YXRpbmcgb2JqZWN0IGV4cGVjdGVkIG51bGwgYnV0IGdvdCBvYmplY3QgIlJl
ZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBGb3JtRGF0YSIKLUZBSUwgRm9ybURh
dGEgaW50ZXJmYWNlOiBjYWxsaW5nIGZvckVhY2goZnVuY3Rpb24sIGFueSkgb24gbmV3IEZvcm1E
YXRhKCkgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRf
ZXF1YWxzOiBVbmV4cGVjdGVkIGV4Y2VwdGlvbiB3aGVuIGV2YWx1YXRpbmcgb2JqZWN0IGV4cGVj
dGVkIG51bGwgYnV0IGdvdCBvYmplY3QgIlJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlh
YmxlOiBGb3JtRGF0YSIKIFBBU1MgUHJvZ3Jlc3NFdmVudCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBh
bmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IAogUEFTUyBQcm9ncmVzc0V2ZW50IGlu
dGVyZmFjZSBvYmplY3QgbGVuZ3RoIAogUEFTUyBQcm9ncmVzc0V2ZW50IGludGVyZmFjZSBvYmpl
Y3QgbmFtZSAKQEAgLTE2MywxMCArMTUzLDQgQEAgUEFTUyBQcm9ncmVzc0V2ZW50IGludGVyZmFj
ZTogbmV3IFByb2dyZXNzRXZlbnQoInR5cGUiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImwKIFBB
U1MgUHJvZ3Jlc3NFdmVudCBpbnRlcmZhY2U6IG5ldyBQcm9ncmVzc0V2ZW50KCJ0eXBlIikgbXVz
dCBpbmhlcml0IHByb3BlcnR5ICJ0b3RhbCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCiBQQVNTIE5v
ZGUgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVj
dCAKIFBBU1MgRG9jdW1lbnQgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2Yg
aW50ZXJmYWNlIG9iamVjdCAKLVBBU1MgRG9jdW1lbnRUeXBlIGludGVyZmFjZTogZXhpc3RlbmNl
IGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgCi1QQVNTIERvY3VtZW50RnJhZ21l
bnQgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVj
dCAKLVBBU1MgU2hhZG93Um9vdCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBv
ZiBpbnRlcmZhY2Ugb2JqZWN0IAotUEFTUyBFbGVtZW50IGludGVyZmFjZTogZXhpc3RlbmNlIGFu
ZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgCi1QQVNTIENoYXJhY3RlckRhdGEgaW50
ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCAKLVBB
U1MgVGV4dCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ug
b2JqZWN0IAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVj
dGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zCmluZGV4
IDczMDBkOWY5MmEyODM3YTIwNTE5OTM0YmYwMzVhZDI5ZDI3NjA2NjIuLjNjMGY1MGFjODMwYTY2
MTQ5ZjljMzdkMDc1NTYwZDQ0ZWMxZDE0YTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9U
ZXN0RXhwZWN0YXRpb25zCkBAIC0zMjAzLDEwICszMjAzLDYgQEAgd2Via2l0Lm9yZy9iLzE5MDc2
NCBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLWRvdHMtcG9zaXRpb24tMy5odG1sIFsgU2tpcCBd
CiAKIHdlYmtpdC5vcmcvYi8xOTIyNzkgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVnaXN0ZXItY2xvc2VkLXdpbmRvdy5odHRw
cy5odG1sIFsgUGFzcyBGYWlsdXJlIF0KIAotd2Via2l0Lm9yZy9iLzE5MjI1MCBpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRh
dGUtbWlzc2luZy1pbXBvcnQtc2NyaXB0cy5odHRwcy5odG1sIFsgUGFzcyBGYWlsdXJlIF0KLQot
d2Via2l0Lm9yZy9iLzE5MjM5OCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUtcmVnaXN0cmF0aW9uLXdpdGgtdHlwZS5o
dHRwcy5odG1sIFsgUGFzcyBGYWlsdXJlIF0KLQogd2Via2l0Lm9yZy9iLzE5MTcwNCBpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci93
aW5kb3djbGllbnQtbmF2aWdhdGUuaHR0cHMuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCiAKIHdlYmtp
dC5vcmcvYi8xOTM5NTUgY29tcG9zaXRpbmcvaWZyYW1lcy9yZW1vdmUtcmVpbnNlcnQtd2Vidmll
dy13aXRoLWlmcmFtZS5odG1sIFsgU2tpcCBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy90ZXN0
cy1vcHRpb25zLmpzb24gYi9MYXlvdXRUZXN0cy90ZXN0cy1vcHRpb25zLmpzb24KaW5kZXggMTgy
NGNkY2QxYzQ2NGY4YWY3NGVlNzU4NmI3MzE2M2ZjYTYzMmJjMi4uY2MyMDM0ZTg1MWJmOGY4MDUz
NzM5MWI4MjUzMGQxNjhjNTQyMmQxNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvdGVzdHMtb3B0
aW9ucy5qc29uCisrKyBiL0xheW91dFRlc3RzL3Rlc3RzLW9wdGlvbnMuanNvbgpAQCAtMSw0ICsx
LDcgQEAKIHsKKyAgICAiaHR0cC90ZXN0cy9wYXltZW50cmVxdWVzdC9wYXltZW50LXJlc3BvbnNl
LXJlZmVyZW5jZS1jeWNsZS1sZWFrLmh0dHBzLmh0bWwiOiBbCisgICAgICAgICJzbG93IgorICAg
IF0sCiAgICAgImh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvb24tbmV0d29yay10aW1lb3V0LWVy
cm9yLWR1cmluZy1wcmVmbGlnaHQuaHRtbCI6IFsKICAgICAgICAgInNsb3ciCiAgICAgXSwKQEAg
LTE3MjQsNiArMTcyNyw5IEBACiAgICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWV2ZW50LXJlc3BvbmQtd2l0aC1i
b2R5LWxvYWRlZC1pbi1jaHVuay5odHRwcy5odG1sIjogWwogICAgICAgICAic2xvdyIKICAgICBd
LAorICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9mZXRjaC1ldmVudC13aXRoaW4tc3cuaHR0cHMuaHRtbCI6IFsKKyAgICAg
ICAgInNsb3ciCisgICAgXSwKICAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtZXZlbnQuaHR0cHMuaHRtbCI6IFsK
ICAgICAgICAgInNsb3ciCiAgICAgXSwKQEAgLTE3NzgsNiArMTc4NCwxMiBAQAogICAgICJpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci91cGRhdGUtYnl0ZWNoZWNrLmh0dHBzLmh0bWwiOiBbCiAgICAgICAgICJzbG93IgogICAgIF0s
CisgICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL3VwZGF0ZS5odHRwcy5odG1sIjogWworICAgICAgICAic2xvdyIKKyAgICBd
LAorICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci93b3JrZXItaW50ZXJjZXB0aW9uLmh0dHBzLmh0bWwiOiBbCisgICAgICAg
ICJzbG93IgorICAgIF0sCiAgICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL1JUQ0RUTUZTZW5kZXItb250b25lY2hhbmdlLWxvbmcuaHRtbCI6IFsKICAgICAgICAgInNs
b3ciCiAgICAgXSwKQEAgLTE5MDAsOCArMTkxMiw1IEBACiAgICAgXSwKICAgICAiaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy94aHIveG1saHR0cHJlcXVlc3QtdGltZW91dC13b3JrZXIt
dHdpY2UuaHRtbCI6IFsKICAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaHR0cC90ZXN0cy9w
YXltZW50cmVxdWVzdC9wYXltZW50LXJlc3BvbnNlLXJlZmVyZW5jZS1jeWNsZS1sZWFrLmh0dHBz
Lmh0bWwiOiBbCi0gICAgICAgICJzbG93IgogICAgIF0KIH0KXCBObyBuZXdsaW5lIGF0IGVuZCBv
ZiBmaWxlCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>378410</attachid>
            <date>2019-09-09 14:18:48 -0700</date>
            <delta_ts>2019-09-09 16:14:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201589-20190909141831.patch</filename>
            <type>text/plain</type>
            <size>773885</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5NjI5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggY2U3MTRhOWFmMmU0NDczZjc2NzM5
MzY2N2ZiYTEwNDFjMzYxNmNkOC4uOTlhMjA0ZWIwMzFlYzRhMTRjZDljYTdhNmE0ZTA2YTY4NWFk
MGM0NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDE5LTA5LTA4ICBDaHJpcyBEdW1leiAgPGNk
dW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUmVzeW5jIHNlcnZpY2Ugd29ya2VycyBXUFQgdGVz
dHMgZnJvbSB1cHN0cmVhbQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjAxNTg5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWW91ZW5uIEZhYmxldC4KKwor
ICAgICAgICAqIFRlc3RFeHBlY3RhdGlvbnM6CisKIDIwMTktMDktMDcgIENocmlzIER1bWV6ICA8
Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgc3VwcG9ydCBmb3IgcG9zdE1lc3NhZ2Ug
YnVmZmVyaW5nIGJldHdlZW4gdGhlIHNlcnZpY2Ugd29ya2VyIGFuZCB3aW5kb3cKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IGNiNDYzNTViZjRkMTRmN2NkYTIzMTc0ZWUxYjMwNWU5
MGY4Nzg5M2UuLjJlNzIxZjc1ZWQzY2MxYjY1MjJmN2Y0YmE2MmQ0NmE4NjAxNjljZTcgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1NSBAQAorMjAxOS0wOS0wOCAg
Q2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFJlc3luYyBzZXJ2aWNl
IHdvcmtlcnMgV1BUIHRlc3RzIGZyb20gdXBzdHJlYW0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMTU4OQorCisgICAgICAgIFJldmlld2VkIGJ5IFlv
dWVubiBGYWJsZXQuCisKKyAgICAgICAgUmVzeW5jIHNlcnZpY2Ugd29ya2VycyBXUFQgdGVzdHMg
ZnJvbSB1cHN0cmVhbSA4MjBmMGY4NjA0N2U2ZTI2NDAxZS4KKworICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvU2VydmljZS1Xb3JrZXIt
QWxsb3dlZC1oZWFkZXIuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvU2VydmljZS1Xb3JrZXItQWxs
b3dlZC1oZWFkZXIuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS9wb3N0
bWVzc2FnZS5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlL3VucmVnaXN0
ZXIuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS91cGRhdGUuaHR0cHMu
aHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL2Fib3V0LWJsYW5rLXJlcGxhY2VtZW50Lmh0dHBzLmh0bWw6CisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9hY3RpdmF0
ZS1ldmVudC1hZnRlci1pbnN0YWxsLXN0YXRlLWNoYW5nZS5odHRwcy5odG1sOgorICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvYWN0aXZh
dGlvbi1hZnRlci1yZWdpc3RyYXRpb24uaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2FjdGl2YXRpb24uaHR0cHMt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvYWN0aXZhdGlvbi5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvYXBwY2FjaGUtb3Jk
ZXJpbmctbWFpbi5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xhaW0tZmV0Y2gtd2l0aC1hcHBjYWNoZS5odHRw
cy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGFpbS1mZXRjaC13aXRoLWFwcGNhY2hlLmh0
dHBzLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGFpbS1mZXRjaC5odHRwcy5odG1sOgorICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xhaW0t
bm90LXVzaW5nLXJlZ2lzdHJhdGlvbi5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xhaW0tc2hhcmVkLXdvcmtl
ci1mZXRjaC5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xhaW0tdXNpbmctcmVnaXN0cmF0aW9uLmh0dHBzLmh0
bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9jbGFpbS13b3JrZXItZmV0Y2guaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xhaW0t
d29ya2VyLWZldGNoLmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGllbnQtaWQuaHR0cHMuaHRtbDoKKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2Ns
aWVudHMtZ2V0LWNsaWVudC10eXBlcy5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xpZW50cy1nZXQtcmVzdWx0
aW5nQ2xpZW50SWQuaHR0cHMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xpZW50cy1nZXQt
cmVzdWx0aW5nQ2xpZW50SWQuaHR0cHMuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsaWVudHMtZ2V0Lmh0
dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsaWVudHMtZ2V0Lmh0dHBzLmh0bWw6CisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGllbnRz
LW1hdGNoYWxsLWNsaWVudC10eXBlcy5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xpZW50cy1tYXRjaGFsbC1l
eGFjdC1jb250cm9sbGVyLmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsaWVudHMtbWF0Y2hhbGwt
ZXhhY3QtY29udHJvbGxlci5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xpZW50cy1tYXRjaGFsbC1pbmNsdWRl
LXVuY29udHJvbGxlZC5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xpZW50cy1tYXRjaGFsbC1vcmRlci5odHRw
cy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvY2xpZW50cy1tYXRjaGFsbC5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY29udHJvbGxlci1v
bi1kaXNjb25uZWN0Lmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jb250cm9sbGVyLW9uLWxvYWQuaHR0cHMuaHRt
bDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL2NvbnRyb2xsZXItb24tcmVsb2FkLmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9kYXRhLXRyYW5zZmVy
LWZpbGVzLmh0dHBzLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2RhdGEtdHJhbnNmZXItZmls
ZXMuaHR0cHMuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2RldGFjaGVkLWNvbnRleHQuaHR0cHMtZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvZGV0YWNoZWQtY29udGV4dC5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZXh0ZW5kYWJsZS1l
dmVudC1hc3luYy13YWl0dW50aWwuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZXh0ZW5kYWJsZS1l
dmVudC1hc3luYy13YWl0dW50aWwuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2V4dGVuZGFibGUtZXZlbnQtd2Fp
dHVudGlsLmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1hdWRpby10YWludGluZy5odHRwcy1leHBlY3Rl
ZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1hdWRpby10YWludGluZy5odHRwcy5odG1sOiBSZW1v
dmVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvZmV0Y2gtY2FudmFzLXRhaW50aW5nLWRvdWJsZS13cml0ZS5odHRwcy1leHBlY3Rl
ZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1jYW52YXMtdGFpbnRpbmctZG91YmxlLXdyaXRlLmh0
dHBzLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1jYW52YXMtdGFpbnRpbmctdmlkZW8tY2FjaGUu
aHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL2ZldGNoLWNhbnZhcy10YWludGluZy12aWRlby5odHRwcy5odG1sOgor
ICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvZmV0Y2gtY29ycy14aHIuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtY29ycy14aHIu
aHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL2ZldGNoLWNzcC5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtZXZlbnQtYWZ0
ZXItbmF2aWdhdGlvbi13aXRoaW4tcGFnZS5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtZXZlbnQtYXN5
bmMtcmVzcG9uZC13aXRoLmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWV2ZW50LWFzeW5j
LXJlc3BvbmQtd2l0aC5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtZXZlbnQtbmV0d29yay1lcnJvci5o
dHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvZmV0Y2gtZXZlbnQtcmVmZXJyZXItcG9saWN5Lmh0dHBzLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL2ZldGNoLWV2ZW50LXJlZmVycmVyLXBvbGljeS5odHRwcy5odG1sOgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0
Y2gtZXZlbnQtcmVzcG9uZC13aXRoLWFyZ3VtZW50Lmh0dHBzLmh0bWw6CisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1ldmVu
dC1yZXNwb25kLXdpdGgtYm9keS1sb2FkZWQtaW4tY2h1bmsuaHR0cHMuaHRtbDoKKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNo
LWV2ZW50LXJlc3BvbmQtd2l0aC1zdG9wcy1wcm9wYWdhdGlvbi5odHRwcy5odG1sOgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0
Y2gtZXZlbnQtdGhyb3dzLWFmdGVyLXJlc3BvbmQtd2l0aC5odHRwcy5odG1sOgorICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gt
ZXZlbnQuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtZXZlbnQuaHR0cHMuaHRtbDoKKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L2ZldGNoLWZyYW1lLXJlc291cmNlLmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1oZWFkZXItdmlzaWJp
bGl0eS5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtcmVxdWVzdC1jc3MtYmFzZS11cmwuaHR0cHMtZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvZmV0Y2gtcmVxdWVzdC1jc3MtYmFzZS11cmwuaHR0cHMuaHRtbDoKKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L2ZldGNoLXJlcXVlc3QtY3NzLWltYWdlcy5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtcmVxdWVzdC1o
dG1sLWltcG9ydHMuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtcmVxdWVzdC1odG1sLWlt
cG9ydHMuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLXJlcXVlc3Qtbm8tZnJlc2huZXNzLWhlYWRlcnMu
aHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL2ZldGNoLXJlcXVlc3QtcmVkaXJlY3QuaHR0cHMuaHRtbDoKKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2Zl
dGNoLXJlcXVlc3QteGhyLXN5bmMuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLXJlc3BvbnNlLXhoci5o
dHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvZmV0Y2gtd2FpdHMtZm9yLWFjdGl2YXRlLmh0dHBzLmh0bWw6CisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9n
ZXRyZWdpc3RyYXRpb24uaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZ2V0cmVnaXN0cmF0aW9uLmh0
dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9pbXBvcnQtbW9kdWxlLXNjcmlwdHMuaHR0cHMtZXhwZWN0ZWQudHh0OiBS
ZW1vdmVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvaW1wb3J0LW1vZHVsZS1zY3JpcHRzLmh0dHBzLmh0bWw6IFJlbW92ZWQuCisg
ICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9pbXBvcnQtc2NyaXB0cy1taW1lLXR5cGVzLmh0dHBzLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4K
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL2ltcG9ydC1zY3JpcHRzLW1pbWUtdHlwZXMuaHR0cHMuaHRtbDogUmVtb3ZlZC4KKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2lt
cG9ydC1zY3JpcHRzLXJlc291cmNlLW1hcC5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9pbXBvcnQt
c2NyaXB0cy1yZXNvdXJjZS1tYXAuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ludGVyZmFjZXMtd2luZG93Lmh0
dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9pbnZhbGlkLWJsb2J0eXBlLmh0dHBzLmh0bWw6CisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9pbnZhbGlkLWhl
YWRlci5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvaXNvLWxhdGluMS1oZWFkZXIuaHR0cHMuaHRtbDoKKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL211
bHRpcGxlLXVwZGF0ZS5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvbmF2aWdhdGlvbi1yZWRpcmVjdC5odHRwcy5o
dG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvb25hY3RpdmF0ZS1zY3JpcHQtZXJyb3IuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3BlcmZvcm1h
bmNlLXRpbWVsaW5lLmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9wb3N0bWVzc2FnZS1mcm9tLXdhaXRpbmctc2Vy
dmljZXdvcmtlci5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcG9zdG1lc3NhZ2UtdG8tY2xpZW50LW1lc3NhZ2Ut
cXVldWUuaHR0cHMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcG9zdG1lc3NhZ2UtdG8tY2xp
ZW50LW1lc3NhZ2UtcXVldWUuaHR0cHMuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Bvc3RtZXNzYWdlLXRv
LWNsaWVudC5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvcG9zdG1lc3NhZ2UuaHR0cHMtZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvcG9zdG1lc3NhZ2UuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlYWR5Lmh0dHBzLmh0bWw6CisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZWRp
cmVjdGVkLXJlc3BvbnNlLmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlZGlyZWN0ZWQtcmVzcG9u
c2UuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL3JlZmVyZXIuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlZ2lzdGVyLWRlZmF1
bHQtc2NvcGUuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlZ2lzdGVyLXdhaXQtZm9yZXZlci1pbi1pbnN0YWxs
LXdvcmtlci5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVnaXN0cmF0aW9uLWVuZC10by1lbmQuaHR0cHMuaHRt
bDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL3JlZ2lzdHJhdGlvbi1ldmVudHMuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlZ2lzdHJhdGlvbi1t
aW1lLXR5cGVzLmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlZ2lzdHJhdGlvbi1taW1lLXR5cGVz
Lmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci9yZWdpc3RyYXRpb24tc2NoZWR1bGUtam9iLmh0dHBzLWV4cGVjdGVk
LnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL3JlZ2lzdHJhdGlvbi1zY2hlZHVsZS1qb2IuaHR0cHMuaHRtbDog
UmVtb3ZlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL3JlZ2lzdHJhdGlvbi1zY29wZS5odHRwcy1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9y
ZWdpc3RyYXRpb24tc2VjdXJpdHktZXJyb3IuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVnaXN0
cmF0aW9uLXNlcnZpY2Utd29ya2VyLWF0dHJpYnV0ZXMuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlZ2lzdHJh
dGlvbi11cGRhdGV2aWFjYWNoZS5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZWdpc3RyYXRpb24t
dXBkYXRldmlhY2FjaGUuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlLXRpbWluZy5odHRwcy5odG1s
OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2UtdGltaW5nLnN1Yi5odHRw
cy5odG1sLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvcmVzb3VyY2UtdGltaW5nLnN1Yi5odHRwcy1leHBlY3RlZC50eHQ6IFJlbW92
ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9yZXNvdXJjZXMvYWJvdXQtYmxhbmstcmVwbGFjZW1lbnQtcGluZy1mcmFtZS5weToK
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3Jlc291cmNlcy9hcHBjYWNoZS1vcmRlcmluZy5tYW5pZmVzdDoKKyAgICAgICAgKiB3ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9j
bGFpbS13b3JrZXIuanM6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvY2xhc3NpYy13b3JrZXIuanM6IFJlbW92ZWQu
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9yZXNvdXJjZXMvY2xpZW50cy1nZXQtY3Jvc3Mtb3JpZ2luLWZyYW1lLmh0bWw6CisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9y
ZXNvdXJjZXMvY2xpZW50cy1nZXQtcmVzdWx0aW5nQ2xpZW50SWQtd29ya2VyLmpzOiBSZW1vdmVk
LgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvcmVzb3VyY2VzL2NsaWVudHMtZ2V0LXdvcmtlci5qczoKKyAgICAgICAgKHNlbGYub25t
ZXNzYWdlKToKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL3Jlc291cmNlcy9lbmFibGUtY2xpZW50LW1lc3NhZ2UtcXVldWUuaHRtbDog
UmVtb3ZlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL3Jlc291cmNlcy9leHRlbmRhYmxlLWV2ZW50LWFzeW5jLXdhaXR1bnRpbC5q
czoKKyAgICAgICAgKHN3aXRjaCk6CisgICAgICAgIChldmVudC5yZXF1ZXN0LnVybC5pbmRleE9m
KToKKyAgICAgICAgKGVsc2UuZXZlbnQucmVxdWVzdC51cmwuaW5kZXhPZik6CisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJj
ZXMvZmV0Y2gtY2FudmFzLXRhaW50aW5nLWRvdWJsZS13cml0ZS13b3JrZXIuanM6IFJlbW92ZWQu
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9yZXNvdXJjZXMvZmV0Y2gtY29ycy14aHItaWZyYW1lLmh0bWw6CisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMv
ZmV0Y2gtZXZlbnQtYXN5bmMtcmVzcG9uZC13aXRoLXdvcmtlci5qczoKKyAgICAgICAgKHNldFRp
bWVvdXQpOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWV2ZW50LW5ldHdvcmstZmFsbGJhY2std29ya2Vy
LmpzOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWV2ZW50LXRlc3Qtd29ya2VyLmpzOgorICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3Vy
Y2VzL2ZldGNoLXJlcXVlc3QtY3NzLWJhc2UtdXJsLWlmcmFtZS5odG1sOgorICAgICAgICAqIHdl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2Vz
L2ZldGNoLXJlcXVlc3QtY3NzLWJhc2UtdXJsLXdvcmtlci5qczoKKyAgICAgICAgKHNlbGYub25t
ZXNzYWdlKToKKyAgICAgICAgKHVybC5pbmRleE9mKToKKyAgICAgICAgKGVsc2UudXJsLmluZGV4
T2YpOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvcmVzb3VyY2VzL2dldC1yZXN1bHRpbmdDbGllbnRJZC13b3JrZXIuanM6IFJlbW92
ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9yZXNvdXJjZXMvaW1wb3J0LXJlbGF0aXZlLnhzbDogUmVtb3ZlZC4KKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291
cmNlcy9pbXBvcnQtc2NyaXB0cy1kaWZmLXJlc291cmNlLW1hcC13b3JrZXIuanM6IFJlbW92ZWQu
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9yZXNvdXJjZXMvaW1wb3J0LXNjcmlwdHMtZ2V0LnB5OiBSZW1vdmVkLgorICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3Vy
Y2VzL2ltcG9ydC1zY3JpcHRzLW1pbWUtdHlwZXMtd29ya2VyLmpzOiBSZW1vdmVkLgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVz
b3VyY2VzL2ltcG9ydGVkLWNsYXNzaWMtc2NyaXB0LmpzOiBSZW1vdmVkLgorICAgICAgICAqIHdl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2Vz
L2ltcG9ydGVkLW1vZHVsZS1zY3JpcHQuanM6IFJlbW92ZWQuCisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvbWVzc2Fn
ZS12cy1taWNyb3Rhc2suaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9tb2R1bGUtd29ya2Vy
LmpzOiBSZW1vdmVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL25hdmlnYXRpb24tcmVkaXJlY3Qtb3RoZXItb3Jp
Z2luLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvbmF2aWdhdGlvbi1yZWRpcmVjdC1vdXQtc2NvcGUucHk6
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9yZXNvdXJjZXMvbmF2aWdhdGlvbi1yZWRpcmVjdC1zY29wZTEucHk6CisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJj
ZXMvbmF2aWdhdGlvbi1yZWRpcmVjdC1zY29wZTIucHk6CisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvbmVzdGVkLWlm
cmFtZS1wYXJlbnQuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9wZXJmb3JtYW5jZS10aW1l
bGluZS13b3JrZXIuanM6CisgICAgICAgIChwcm9taXNlX3Rlc3QuKToKKyAgICAgICAgKHByb21p
c2VfdGVzdCk6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvcG9zdG1lc3NhZ2UtZWNoby13b3JrZXIuanM6IFJlbW92
ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9yZXNvdXJjZXMvcmVkaXJlY3Qtd29ya2VyLmpzOgorICAgICAgICAoZXZlbnQud2Fp
dFVudGlsLlByb21pc2UuYWxsLndhaXRVbnRpbFByb21pc2VMaXN0LnRoZW4pOgorICAgICAgICAo
dGhlbik6CisgICAgICAgICh3YWl0VW50aWxQcm9taXNlLmNhY2hlcy5vcGVuLmNhY2hlTmFtZS50
aGVuKToKKyAgICAgICAgKGV2ZW50LnJlc3BvbmRXaXRoLndhaXRVbnRpbFByb21pc2UudGhlbik6
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9yZXNvdXJjZXMvcmVnaXN0cmF0aW9uLXRlc3RzLW1pbWUtdHlwZXMuanM6CisgICAgICAg
IChyZWdpc3RyYXRpb25fdGVzdHNfbWltZV90eXBlcyk6CisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvcmVnaXN0cmF0
aW9uLXRlc3RzLXNjb3BlLmpzOgorICAgICAgICAocmVnaXN0cmF0aW9uX3Rlc3RzX3Njb3BlKToK
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3Jlc291cmNlcy9yZWdpc3RyYXRpb24tdGVzdHMtc2VjdXJpdHktZXJyb3IuanM6CisgICAg
ICAgIChyZWdpc3RyYXRpb25fdGVzdHNfc2VjdXJpdHlfZXJyb3IpOgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3Jl
c291cmNlLXRpbWluZy1pZnJhbWUuc3ViLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvc2VydmljZS13b3Jr
ZXItY3NwLXdvcmtlci5weToKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9zZXJ2aWNlLXdvcmtlci1oZWFkZXIucHk6
CisgICAgICAgIChtYWluKToKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9za2lwLXdhaXRpbmctaW5zdGFsbGVkLXdv
cmtlci5qczoKKyAgICAgICAgKGV2ZW50LndhaXRVbnRpbC5zZWxmLnNraXBXYWl0aW5nLnRoZW4p
OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvcmVzb3VyY2VzL3N0YWxsaW5nLXNlcnZpY2Utd29ya2VyLmpzOiBSZW1vdmVkLgorICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
cmVzb3VyY2VzL3Rlc3QtaGVscGVycy5zdWIuanM6CisgICAgICAgICh3YWl0X2Zvcl91cGRhdGUp
OgorICAgICAgICAoYXN5bmMud2FpdF9mb3JfYWN0aXZhdGlvbl9vbl9kdW1teV9zY29wZSk6Cisg
ICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9yZXNvdXJjZXMvdGVzdC1yZXF1ZXN0LWhlYWRlcnMtd29ya2VyLmpzOiBSZW1vdmVkLgorICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
cmVzb3VyY2VzL3Rlc3QtcmVxdWVzdC1oZWFkZXJzLXdvcmtlci5weTogUmVtb3ZlZC4KKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jl
c291cmNlcy90cmlja2xlLnB5OiBSZW1vdmVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3VwZGF0ZS1kdXJpbmct
aW5zdGFsbGF0aW9uLXdvcmtlci5qczogUmVtb3ZlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy91cGRhdGUtZHVy
aW5nLWluc3RhbGxhdGlvbi13b3JrZXIucHk6IFJlbW92ZWQuCisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvdXBkYXRl
LWZldGNoLXdvcmtlci5weTogUmVtb3ZlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy91cGRhdGUtbWlzc2luZy1p
bXBvcnQtc2NyaXB0cy1pbXBvcnRlZC13b3JrZXIucHk6IFJlbW92ZWQuCisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMv
dXBkYXRlLW1pc3NpbmctaW1wb3J0LXNjcmlwdHMtbWFpbi13b3JrZXIucHk6IFJlbW92ZWQuCisg
ICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9yZXNvdXJjZXMvdXBkYXRlLXJlZ2lzdHJhdGlvbi13aXRoLXR5cGUucHk6IFJlbW92ZWQuCisg
ICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9yZXNvdXJjZXMvdzNjLWltcG9ydC5sb2c6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvd29ya2VyLWludGVyY2Vw
dGlvbi1pZnJhbWUuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy93b3JrZXItbG9hZC1pbnRlcmNl
cHRvci5qczoKKyAgICAgICAgKHNlbGYub25mZXRjaCk6CisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvd29ya2VyLXRl
c3RoYXJuZXNzLmpzOgorICAgICAgICAoY3JlYXRlX3RlbXBvcmFyeV9jYWNoZSk6CisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNv
dXJjZXMveGhyLWlmcmFtZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3hoci1yZXNwb25z
ZS11cmwtd29ya2VyLmpzOiBSZW1vdmVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3hzbC1iYXNlLXVybC1pZnJh
bWUueG1sOiBSZW1vdmVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3hzbC1iYXNlLXVybC13b3JrZXIuanM6IFJl
bW92ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9yZXNvdXJjZXMveHNsdC1wYXNzLnhzbDogUmVtb3ZlZC4KKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3NlcnZpY2Ut
d29ya2VyLWNzcC1jb25uZWN0Lmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3NlcnZpY2Utd29ya2Vy
LWNzcC1kZWZhdWx0Lmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3NlcnZpY2Utd29ya2VyLWNzcC1z
Y3JpcHQuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvc2VydmljZS13b3JrZXItaGVhZGVyLmh0dHBz
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL3NlcnZpY2Utd29ya2VyLWhlYWRlci5odHRwcy5odG1sOgorICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
c2VydmljZXdvcmtlci1tZXNzYWdlLWV2ZW50LWhpc3RvcmljYWwuaHR0cHMuaHRtbDoKKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3No
YXJlZC13b3JrZXItY29udHJvbGxlZC5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvc2tpcC13YWl0aW5nLWluc3Rh
bGxlZC5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9za2lwLXdhaXRpbmctaW5zdGFsbGVkLmh0dHBz
Lmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9za2lwLXdhaXRpbmctdXNpbmctcmVnaXN0cmF0aW9uLmh0dHBzLmh0bWw6Cisg
ICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9za2lwLXdhaXRpbmctd2l0aG91dC11c2luZy1yZWdpc3RyYXRpb24uaHR0cHMuaHRtbDoKKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L3NraXAtd2FpdGluZy5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvc3RhdGUuaHR0cHMuaHRtbDoKKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3N5bmNl
ZC1zdGF0ZS5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvdW5jb250cm9sbGVkLXBhZ2UuaHR0cHMuaHRtbDoKKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L3VucmVnaXN0ZXItdGhlbi1yZWdpc3Rlci1uZXctc2NyaXB0Lmh0dHBzLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3VucmVnaXN0ZXItdGhlbi1yZWdpc3Rlci1uZXctc2NyaXB0Lmh0dHBzLmh0bWw6CisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91
bnJlZ2lzdGVyLXRoZW4tcmVnaXN0ZXIuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdW5yZWdpc3Rl
ci10aGVuLXJlZ2lzdGVyLmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUtYWZ0ZXItbmF2aWdhdGlvbi1y
ZWRpcmVjdC5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLWFmdGVyLW9uZWRheS5odHRwcy5odG1sOgor
ICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvdXBkYXRlLWJ5dGVjaGVjay5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLW1pc3NpbmctaW1wb3J0
LXNjcmlwdHMuaHR0cHMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLW1pc3Npbmct
aW1wb3J0LXNjcmlwdHMuaHR0cHMuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0ZS1uby1jYWNoZS1y
ZXF1ZXN0LWhlYWRlcnMuaHR0cHMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIHdl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLW5v
LWNhY2hlLXJlcXVlc3QtaGVhZGVycy5odHRwcy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIHdl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLW5v
dC1hbGxvd2VkLmh0dHBzLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0ZS1ub3QtYWxs
b3dlZC5odHRwcy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLW9uLW5hdmlnYXRpb24uaHR0cHMt
ZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLW9uLW5hdmlnYXRpb24uaHR0cHMuaHRt
bDogUmVtb3ZlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL3VwZGF0ZS1yZWNvdmVyeS5odHRwcy5odG1sOgorICAgICAgICAqIHdl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLXJl
Z2lzdHJhdGlvbi13aXRoLXR5cGUuaHR0cHMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBk
YXRlLXJlZ2lzdHJhdGlvbi13aXRoLXR5cGUuaHR0cHMuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3czYy1p
bXBvcnQubG9nOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvd2Vic29ja2V0Lmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3dlYnNvY2tl
dC5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvd2luZG93Y2xpZW50LW5hdmlnYXRlLmh0dHBzLmh0bWw6CisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci93
b3JrZXItY2xpZW50LWlkLmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3dvcmtlci1pbnRlcmNlcHRp
b24uaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvd29ya2VyLWludGVyY2VwdGlvbi5odHRwcy5odG1s
OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIveGhyLXJlc3BvbnNlLXVybC5odHRwcy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci94
aHItcmVzcG9uc2UtdXJsLmh0dHBzLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci94c2wtYmFzZS11cmwuaHR0
cHMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIveHNsLWJhc2UtdXJsLmh0dHBzLmh0bWw6IFJl
bW92ZWQuCisKIDIwMTktMDktMDcgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAog
ICAgICAgICBBZGQgc3VwcG9ydCBmb3IgcG9zdE1lc3NhZ2UgYnVmZmVyaW5nIGJldHdlZW4gdGhl
IHNlcnZpY2Ugd29ya2VyIGFuZCB3aW5kb3cKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL1Rlc3RF
eHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDlmMTQzNGMw
YjAxM2ZiZjNjZDY2MzdkMzg3OTUzNTY5NTg2MjQwNjQuLjBlMTY0OTY1MTA4NWE1NzY1YzFhMGEw
MWQxZmM3Y2I3NjA5NzhhM2YgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlv
bnMKKysrIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMjExLDE1ICsyMTEsMTcg
QEAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvZmV0Y2gtbWl4ZWQtY29udGUKIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL211bHRpcGFydC1pbWFnZS5odHRwcy5o
dG1sIFsgU2tpcCBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9za2lwLXdhaXRpbmctdXNpbmctcmVnaXN0cmF0aW9uLmh0dHBz
Lmh0bWwgWyBTa2lwIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3NraXAtd2FpdGluZy13aXRob3V0LXVzaW5nLXJlZ2lzdHJh
dGlvbi5odHRwcy5odG1sIFsgU2tpcCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUtbm90LWFsbG93ZWQuaHR0cHMu
aHRtbCBbIFNraXAgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvd29ya2VyLWluLXNhbmRib3hlZC1pZnJhbWUtYnktY3NwLWZl
dGNoLWV2ZW50Lmh0dHBzLmh0bWwgWyBTa2lwIF0KIFsgRGVidWcgXSBpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZWFkeS5odHRw
cy5odG1sIFsgU2tpcCBdCiAKICMgTmV3bHkgaW1wb3J0ZWQgc2VydmljZSB3b3JrZXIgdGVzdHMg
dGhhdCBhcmUgZmxha3kuCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9uYXZpZ2F0aW9uLXJlZGlyZWN0LXRvLWh0dHAuaHR0cHMu
aHRtbCBbIFBhc3MgRmFpbHVyZSBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZS10aW1pbmcuc3ViLmh0dHBzLmh0
bWwgWyBQYXNzIEZhaWx1cmUgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvd29ya2VyLWNsaWVudC1pZC5odHRwcy5odG1sIFsg
UGFzcyBGYWlsdXJlIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMveGhyL2V2ZW50
LXRpbWVvdXQtb3JkZXIuaHRtIFsgUGFzcyBGYWlsdXJlIF0KK2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0ZS1ub3QtYWxs
b3dlZC5odHRwcy5odG1sIFsgUGFzcyBGYWlsdXJlIF0KKworIyBUaGUgdGVzdHMgcHJpbnRzIG91
dCBhIFVVSUQgdGhhdCBpcyBkaWZmZXJlbnQgZXZlcnkgdGltZS4KK2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0ZS5odHRw
cy5odG1sIFsgUGFzcyBGYWlsdXJlIF0KIAogIyBUaGlzIHRlc3QgaXMgdGltaW5nIG91dCBiZWNh
dXNlIGl0IHJlbGllcyBvbiBodHRwOi8vd3d3MS5sb2NhbGhvc3Q6ODgwMCBob3N0IGZvciBjcm9z
cyBvcmlnaW4gY2hlY2tzLgogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jb3JzL3Jl
bW90ZS1vcmlnaW4uaHRtIFsgU2tpcCBdCkBAIC0yNDgsNyArMjUwLDYgQEAgaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRl
LWFmdGVyLW9uZWQKIAogIyBVbnN1cHBvcnRlZCBmZWF0dXJlczogU2hhcmVkV29ya2VyLCBOYXZp
Z2F0aW9uUHJlbG9hZAogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvbmF2aWdhdGlvbi1wcmVsb2FkIFsgU2tpcCBdCi1pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9z
aGFyZWQtd29ya2VyLWNvbnRyb2xsZWQuaHR0cHMuaHRtbCBbIFNraXAgXQogaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xhaW0t
c2hhcmVkLXdvcmtlci1mZXRjaC5odHRwcy5odG1sIFsgU2tpcCBdCiAKICMgVW5zdXBwb3J0ZWQg
ZmVhdHVyZXM6IFBlcmZvcm1hbmNlTmF2aWdhdGlvblRpbWluZwpAQCAtMjY2LDYgKzI2Nyw3IEBA
IHdlYmtpdC5vcmcvYi8xODgyNDYgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrCiAjIENvbnNvbGUgbG9nIGxpbmVzIG1heSBhcHBlYXIg
aW4gYSBkaWZmZXJlbnQgb3JkZXIgc28gd2Ugc2lsZW5jZSB0aGVtLgogaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL2hpc3RvcnkvdGhlLWxvY2F0aW9uLWludGVy
ZmFjZS9sb2NhdGlvbi1wcm90b2NvbC1zZXR0ZXItbm9uLWJyb2tlbi5odG1sIFsgRHVtcEpTQ29u
c29sZUxvZ0luU3RkRXJyIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9i
cm93c2Vycy9oaXN0b3J5L3RoZS1sb2NhdGlvbi1pbnRlcmZhY2UvbG9jYXRpb24tcHJvdG9jb2wt
c2V0dGVyLW5vbi1icm9rZW4td2VpcmQuaHRtbCBbIER1bXBKU0NvbnNvbGVMb2dJblN0ZEVyciBd
CitpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9mZXRjaC1jb3JzLXhoci5odHRwcy5odG1sIFsgRHVtcEpTQ29uc29sZUxvZ0luU3Rk
RXJyIF0KIAogIyBOZXdseSBpbXBvcnRlZCBXUFQgdGVzdHMgdGhhdCBhcmUgdGltaW5nIG91dC4K
IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy9oaXN0b3J5L3Ro
ZS1sb2NhdGlvbi1pbnRlcmZhY2UvbG9jYXRpb24tb3JpZ2luLWlkbmEuc3ViLndpbmRvdy5odG1s
IFsgU2tpcCBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvcmVzb3VyY2Vz
L2ltcG9ydC1leHBlY3RhdGlvbnMuanNvbiBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9yZXNv
dXJjZXMvaW1wb3J0LWV4cGVjdGF0aW9ucy5qc29uCmluZGV4IDA4OGRmNzYxOTc3ODMwODRmZWQz
ODE5MGJhNmI4N2M1YzFiNTcyMTAuLmNiNGVhODc4ZjUyN2JhMWRhYTMwNTZjYmExMDk4YzMyODQw
MTkwMGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9yZXNvdXJjZXMvaW1w
b3J0LWV4cGVjdGF0aW9ucy5qc29uCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9yZXNv
dXJjZXMvaW1wb3J0LWV4cGVjdGF0aW9ucy5qc29uCkBAIC0zNjgsNCArMzY4LDQgQEAKICAgICAi
d2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtsZXRzIjogInNraXAiLCAKICAgICAid2ViLXBsYXRmb3Jt
LXRlc3RzL3gtZnJhbWUtb3B0aW9ucyI6ICJza2lwIiwgCiAgICAgIndlYi1wbGF0Zm9ybS10ZXN0
cy94aHIiOiAiaW1wb3J0IgotfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhl
ZERCL2ludGVyZmFjZXMuYW55LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2ludGVyZmFjZXMuYW55LWV4cGVjdGVkLnR4
dAppbmRleCBmMTRmNTM5Y2EyNjYwOWQxOWU4MTA4NDk1YThkYWMzM2VmOTk0MzI1Li5kMjg1MWE2
YzhjOWRhOGQ4OWQ4ZmNmYTI1YzcxMTE2OTUzZmE4ZjNjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pbnRlcmZhY2VzLmFu
eS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9JbmRleGVkREIvaW50ZXJmYWNlcy5hbnktZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEs
MyBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDQ4MjogY2FsbGJhY2sgbm90IHlldCBzdXBwb3J0
ZWQKIAogUEFTUyBUZXN0IGRyaXZlciAKIFBBU1MgUGFydGlhbCBpbnRlcmZhY2UgV2luZG93T3JX
b3JrZXJHbG9iYWxTY29wZTogb3JpZ2luYWwgaW50ZXJmYWNlIGRlZmluZWQgCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9p
bnRlcmZhY2VzLmFueS53b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaW50ZXJmYWNlcy5hbnkud29ya2VyLWV4
cGVjdGVkLnR4dAppbmRleCBiM2I5NTEwYjkyMjRmODFiODkyYjliOGFlMDliODdmOTE4NWQxYzg1
Li5lNGRmNGM5MjUxNmM5MDQ0ODQ3ODQ5NjYxZGRmM2FjYjE0ZmJmYmY1IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pbnRl
cmZhY2VzLmFueS53b3JrZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2ludGVyZmFjZXMuYW55Lndvcmtlci1l
eHBlY3RlZC50eHQKQEAgLTI4LDYgKzI4LDEwIEBAIFBBU1MgTm9kZUl0ZXJhdG9yIGludGVyZmFj
ZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QKIFBBU1MgVHJl
ZVdhbGtlciBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ug
b2JqZWN0IAogUEFTUyBOb2RlRmlsdGVyIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0
aWVzIG9mIGludGVyZmFjZSBvYmplY3QgCiBQQVNTIERPTVRva2VuTGlzdCBpbnRlcmZhY2U6IGV4
aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IAorUEFTUyBYUGF0aFJl
c3VsdCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2Jq
ZWN0IAorUEFTUyBYUGF0aEV4cHJlc3Npb24gaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3Bl
cnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCAKK1BBU1MgWFBhdGhOU1Jlc29sdmVyIGludGVyZmFj
ZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgCitQQVNTIFhQ
YXRoRXZhbHVhdG9yIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVy
ZmFjZSBvYmplY3QgCiBQQVNTIElEQlJlcXVlc3QgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHBy
b3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCAKIFBBU1MgSURCUmVxdWVzdCBpbnRlcmZhY2Ug
b2JqZWN0IGxlbmd0aCAKIFBBU1MgSURCUmVxdWVzdCBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUgCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1dl
YklETC9pbnRlcmZhY2VzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvV2ViSURML2ludGVyZmFjZXMtZXhwZWN0ZWQudHh0CmluZGV4IDc5
ZDVhMWUxYjZhMmIwNDk5NjdhNTk1MTY3MmVjZmY0NWEwZDMwMDMuLjUxNGI2ZjQ5MTg5MmFhZmNm
MmYyMjc0MTE0YTNjMzE5NmM0NDAxZGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvV2ViSURML2ludGVyZmFjZXMtZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvV2ViSURML2lu
dGVyZmFjZXMtZXhwZWN0ZWQudHh0CkBAIC0xLDUgKzEsMyBAQAotQ09OU09MRSBNRVNTQUdFOiBs
aW5lIDQ4MjogY2FsbGJhY2sgbm90IHlldCBzdXBwb3J0ZWQKLUNPTlNPTEUgTUVTU0FHRTogbGlu
ZSA0ODI6IGNhbGxiYWNrIG5vdCB5ZXQgc3VwcG9ydGVkCiAKIFBBU1MgVGVzdCBkcml2ZXIgCiBQ
QVNTIERPTUV4Y2VwdGlvbiBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBp
bnRlcmZhY2Ugb2JqZWN0IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jb21tb24vc2VjdXJpdHktZmVhdHVyZXMvcmVzb3VyY2VzL2NvbW1v
bi5zdWIuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nv
bW1vbi9zZWN1cml0eS1mZWF0dXJlcy9yZXNvdXJjZXMvY29tbW9uLnN1Yi5qcwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5jN2Y5NGU4MDZmOTRkYTQ5NDU4MGRlMmYyNWM2NzY4MTVjYTk0NjRlCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jb21tb24v
c2VjdXJpdHktZmVhdHVyZXMvcmVzb3VyY2VzL2NvbW1vbi5zdWIuanMKQEAgLTAsMCArMSwxMjI2
IEBACisvKioKKyAqIEBmaWxlb3ZlcnZpZXcgVXRpbGl0aWVzIGZvciBtaXhlZC1jb250ZW50IGlu
IFdlYiBQbGF0Zm9ybSBUZXN0cy4KKyAqIEBhdXRob3IgYnVybmlrQGdvb2dsZS5jb20gKEtyaXN0
aWphbiBCdXJuaWspCisgKiBEaXNjbGFpbWVyOiBTb21lIG1ldGhvZHMgb2Ygb3RoZXIgYXV0aG9y
cyBhcmUgYW5ub3RhdGVkIGluIHRoZSBjb3JyZXNwb25kaW5nCisgKiAgICAgbWV0aG9kJ3MgSlNE
b2MuCisgKi8KKworLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09CisvLyBUeXBlcworLy8gPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisvLyBPYmplY3RzIG9m
IHRoZSBmb2xsb3dpbmcgdHlwZXMgYXJlIHVzZWQgdG8gcmVwcmVzZW50IHdoYXQga2luZCBvZgor
Ly8gc3VicmVzb3VyY2UgcmVxdWVzdHMgc2hvdWxkIGJlIHNlbnQgd2l0aCB3aGF0IGtpbmQgb2Yg
cG9saWNpZXMsCisvLyBmcm9tIHdoYXQga2luZCBvZiBwb3NzaWJseSBuZXN0ZWQgc291cmNlIGNv
bnRleHRzLgorLy8gVGhlIG9iamVjdHMgYXJlIHJlcHJlc2VudGVkIGFzIEpTT04gb2JqZWN0cyAo
bm90IEphdmFTY3JpcHQvUHl0aG9uIGNsYXNzZXMKKy8vIGluIGEgc3RyaWN0IHNlbnNlKSB0byBi
ZSBwYXNzZWQgYmV0d2VlbiBKYXZhU2NyaXB0L1B5dGhvbiBjb2RlLgorCisvLyBOb3RlOiBTbyBm
YXIgdGhpcyBkb2N1bWVudCBjb3ZlcnM6CisvLyAtIHJlc291cmNlcy9jb21tb24uc3ViLmpzIDog
Y2xpZW50LXNpZGUgdGVzdCBpbmZyYSBjb2RlCisvLyAtIHNjb3BlLyAtIHNlcnZlci1zaWRlIHNj
cmlwdHMgdGhhdCBzZXJ2ZXMgbmVzdGVkIHNvdXJjZSBjb250ZXh0cworLy8gYnV0IGRvZXNuJ3Qg
Y292ZXI6CisvLyAtIHRvb2xzLyAtIGdlbmVyYXRvciBzY3JpcHRzIHRoYXQgZ2VuZXJhdGVzIHRv
cC1sZXZlbCBIVE1MIGRvY3VtZW50cy4KKy8vIFRoZXJlIGFyZSBzb21lIHBvbGljaWVzIG9ubHkg
aGFuZGxlZCBieSBnZW5lcmF0b3JzIChlLmcuIG1peGVkLWNvbnRlbnQKKy8vIG9wdC1pbnMpIGFu
ZCBub3QgeWV0IGNvdmVyZWQgYnkgdGhlIGRvY3MgaGVyZS4KKworLyoqCisgIEB0eXBlZGVmIFBv
bGljeURlbGl2ZXJ5CisgIEB0eXBlIHtvYmplY3R9CisgIFJlZmVycmVyIHBvbGljeSBldGMuIGNh
biBiZSBhcHBsaWVkL2RlbGl2ZXJlZCBpbiBzZXZlcmFsIHdheXMuCisgIEEgUG9saWN5RGVsaXZl
cnkgb2JqZWN0IHNwZWNpZmllcyB3aGF0IHBvbGljeSBpcyBkZWxpdmVyZWQgYW5kIGhvdy4KKwor
ICBAcHJvcGVydHkge3N0cmluZ30gZGVsaXZlcnlUeXBlCisgICAgU3BlY2lmaWVzIGhvdyB0aGUg
cG9saWN5IGlzIGRlbGl2ZXJlZC4KKyAgICBUaGUgdmFsaWQgZGVsaXZlcnlUeXBlIGFyZToKKwor
ICAgICAiYXR0ciIKKyAgICAgICAgW0FdIERPTSBhdHRyaWJ1dGVzIGUuZy4gcmVmZXJyZXJQb2xp
Y3kuCisKKyAgICAgICJyZWwtbm9yZWYiCisgICAgICAgIFtBXSA8bGluayByZWw9Im5vcmVmZXJy
ZXIiPiAocmVmZXJyZXItcG9saWN5IG9ubHkpLgorCisgICAgICAiaHR0cC1ycCIKKyAgICAgICAg
W0JdIEhUVFAgcmVzcG9uc2UgaGVhZGVycy4KKworICAgICAgIm1ldGEiCisgICAgICAgIFtCXSA8
bWV0YT4gZWxlbWVudHMuCisKKyAgQHByb3BlcnR5IHtzdHJpbmd9IGtleQorICBAcHJvcGVydHkg
e3N0cmluZ30gdmFsdWUKKyAgICBTcGVjaWZpZXMgd2hhdCBwb2xpY3kgdG8gYmUgZGVsaXZlcmVk
LiBUaGUgdmFsaWQga2V5cyBhcmU6CisKKyAgICAgICJyZWZlcnJlclBvbGljeSIKKyAgICAgICAg
UmVmZXJyZXIgUG9saWN5CisgICAgICAgIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby93ZWJhcHBzZWMt
cmVmZXJyZXItcG9saWN5LworICAgICAgICBWYWxpZCB2YWx1ZXMgYXJlIHRob3NlIGxpc3RlZCBp
bgorICAgICAgICBodHRwczovL3czYy5naXRodWIuaW8vd2ViYXBwc2VjLXJlZmVycmVyLXBvbGlj
eS8jcmVmZXJyZXItcG9saWN5CisgICAgICAgIChleGNlcHQgdGhhdCAiIiBpcyByZXByZXNlbnRl
ZCBhcyBudWxsL05vbmUpCisKKyAgQSBQb2xpY3lEZWxpdmVyeSBjYW4gYmUgc3BlY2lmaWVkIGlu
IHNldmVyYWwgd2F5czoKKworICAtIChmb3IgW0FdKSBBc3NvY2lhdGVkIHdpdGggYW4gaW5kaXZp
ZHVhbCBzdWJyZXNvdXJjZSByZXF1ZXN0IGFuZAorICAgIHNwZWNpZmllZCBpbiBgU3VicmVzb3Vy
Y2UucG9saWNpZXNgLAorICAgIGUuZy4gcmVmZXJyZXJQb2xpY3kgYXR0cmlidXRlcyBvZiBET00g
ZWxlbWVudHMuCisgICAgVGhpcyBpcyBoYW5kbGVkIGluIGludm9rZVJlcXVlc3QoKS4KKworICAt
IChmb3IgW0JdKSBBc3NvY2lhdGVkIHdpdGggYW4gbmVzdGVkIGVudmlyb25tZW50YWwgc2V0dGlu
Z3Mgb2JqZWN0IGFuZAorICAgIHNwZWNpZmllZCBpbiBgU291cmNlQ29udGV4dC5wb2xpY2llc2As
CisgICAgZS5nLiBIVFRQIHJlZmVycmVyLXBvbGljeSByZXNwb25zZSBoZWFkZXJzIG9mIEhUTUwv
d29ya2VyIHNjcmlwdHMuCisgICAgVGhpcyBpcyBoYW5kbGVkIGluIHNlcnZlci1zaWRlIHVuZGVy
IC9jb21tb24vc2VjdXJpdHktZmVhdHVyZXMvc2NvcGUvLgorCisgIC0gKGZvciBbQl0pIEFzc29j
aWF0ZWQgd2l0aCB0aGUgdG9wLWxldmVsIEhUTUwgZG9jdW1lbnQuCisgICAgVGhpcyBpcyBoYW5k
bGVkIGJ5IHRoZSBnZW5lcmF0b3JzLmQKKyovCisKKy8qKgorICBAdHlwZWRlZiBTdWJyZXNvdXJj
ZQorICBAdHlwZSB7b2JqZWN0fQorICBBIFN1YnJlc291cmNlIHJlcHJlc2VudHMgaG93IGEgc3Vi
cmVzb3VyY2UgcmVxdWVzdCBpcyBzZW50LgorCisgIEBwcm9wZXJ0eXtTdWJyZXNvdXJjZVR5cGV9
IHN1YnJlc291cmNlVHlwZQorICAgIEhvdyB0aGUgc3VicmVzb3VyY2UgcmVxdWVzdCBpcyBzZW50
LAorICAgIGUuZy4gImltZy10YWciIGZvciBzZW5kaW5nIGEgcmVxdWVzdCB2aWEgPGltZyBzcmM+
LgorICAgIFNlZSB0aGUga2V5cyBvZiBgc3VicmVzb3VyY2VNYXBgIGZvciB2YWxpZCB2YWx1ZXMu
CisKKyAgQHByb3BlcnR5e3N0cmluZ30gdXJsCisgICAgc3VicmVzb3VyY2UncyBVUkwuCisgICAg
VHlwaWNhbGx5IHRoaXMgaXMgY29uc3RydWN0ZWQgYnkgZ2V0UmVxdWVzdFVSTHMoKSBiZWxvdy4K
KworICBAcHJvcGVydHl7UG9saWN5RGVsaXZlcnl9IHBvbGljeURlbGl2ZXJpZXMKKyAgICBQb2xp
Y2llcyBkZWxpdmVyZWQgc3BlY2lmaWMgdG8gdGhlIHN1YnJlc291cmNlIHJlcXVlc3QuCisqLwor
CisvKioKKyAgQHR5cGVkZWYgU291cmNlQ29udGV4dAorICBAdHlwZSB7b2JqZWN0fQorICBSZXF1
ZXN0cyBjYW4gYmUgcG9zc2libHkgc2VudCBmcm9tIHZhcmlvdXMga2luZHMgb2Ygc291cmNlIGNv
bnRleHRzLCBpLmUuCisgIGZldGNoIGNsaWVudCdzIGVudmlyb25tZW50IHNldHRpbmdzIG9iamVj
dHM6CisgIHRvcC1sZXZlbCB3aW5kb3dzLCBpZnJhbWVzLCBvciB3b3JrZXJzLgorICBBIFNvdXJj
ZUNvbnRleHQgb2JqZWN0IHNwZWNpZmllcyBvbmUgZW52aXJvbm1lbnQgc2V0dGluZ3Mgb2JqZWN0
LCBhbmQKKyAgYW4gQXJyYXk8U291cmNlQ29udGV4dD4gc3BlY2lmaWVzIGEgcG9zc2libHkgbmVz
dGVkIGNvbnRleHQsCisgIGZyb20gdGhlIG91dGVyLW1vc3QgdG8gaW5uZXItbW9zdCBlbnZpcm9u
bWVudCBzZXR0aW5ncyBvYmplY3RzLgorCisgIEZvciBleGFtcGxlOgorICAgIFt7c291cmNlQ29u
dGV4dFR5cGU6ICJzcmNkb2MifSwge3NvdXJjZUNvbnRleHRUeXBlOiAid29ya2VyLWNsYXNzaWMi
fV0KKyAgbWVhbnMgdGhhdCBhIHN1YnJlc291cmNlIHJlcXVlc3QgaXMgdG8gYmUgc2VudCBmcm9t
CisgIGEgY2xhc3NpYyBkZWRpY2F0ZWQgd29ya2VyIGNyZWF0ZWQgZnJvbSA8aWZyYW1lIHNyY2Rv
Yz4KKyAgaW5zaWRlIHRoZSB0b3AtbGV2ZWwgSFRNTCBkb2N1bWVudC4KKyAgTm90ZTogdGhlIHRv
cC1sZXZlbCBkb2N1bWVudCBpcyBub3QgaW5jbHVkZWQgaW4gdGhlIGFycmF5IGFuZAorICBpcyBh
c3N1bWVkIGltcGxpY2l0bHkuCisKKyAgU291cmNlQ29udGV4dCAob3IgQXJyYXk8U291cmNlQ29u
dGV4dD4pIGlzIHNldCBiYXNlZCBvbgorICB0aGUgZmV0Y2ggY2xpZW50J3Mgc2V0dGluZ3Mgb2Jq
ZWN0IHRoYXQgaXMgdXNlZCBmb3IgdGhlIHN1YnJlc291cmNlIHJlcXVlc3QsCisgIE5PVCBvbiBt
b2R1bGUgbWFwIHNldHRpbmdzIG9iamVjdCwgYW5kCisgIE5PVCBvbiB0aGUgaW5uZXItbW9zdCBz
ZXR0aW5ncyBvYmplY3QgdGhhdCBhcHBlYXJzIGluIHRoZSB0ZXN0LgorICBGb3IgZXhhbXBsZSwg
QXJyYXk8U291cmNlQ29udGV4dD4gaXMgYFtdYCAoaW5kaWNhdGluZyB0aGUgdG9wIFdpbmRvdykK
KyAgZm9yIGB3b3JrZXIuanNgCisgIC0gV2hlbiBpdCBpcyB0aGUgcm9vdCB3b3JrZXIgc2NyaXB0
OiBgbmV3IFdvcmtlcignd29ya2VyLmpzJylgLCBvcgorICAtIFdoZW4gaXQgaXMgaW1wb3J0ZWQg
ZnJvbSB0aGUgcm9vdCB3b3JrZXIgc2NyaXB0OgorICAgIGBuZXcgV29ya2VyKCd0b3AuanMnLCB7
dHlwZTogJ21vZHVsZSd9KWAKKyAgICB3aGVyZSBgdG9wLmpzYCBoYXMgYGltcG9ydCAnd29ya2Vy
LmpzJ2AuCisgIGJlY2F1c2UgdGhlIHJlcXVlc3QgZm9yIGB3b3JrZXIuanNgIHVzZXMgdGhlIFdp
bmRvdyBhcyBpdHMgZmV0Y2ggY2xpZW50J3MKKyAgc2V0dGluZ3Mgb2JqZWN0LCB3aGlsZSBhIFdv
cmtlckdsb2JhbFNjb3BlIGlzIGNyZWF0ZWQgdGhvdWdoLgorCisgIEBwcm9wZXJ0eSB7c3RyaW5n
fSBzb3VyY2VDb250ZXh0VHlwZQorICAgIEtpbmQgb2YgdGhlIHNvdXJjZSBjb250ZXh0IHRvIGJl
IHVzZWQuCisgICAgVmFsaWQgdmFsdWVzIGFyZSB0aGUga2V5cyBvZiBgc291cmNlQ29udGV4dE1h
cGAgYmVsb3cuCisKKyAgQHByb3BlcnR5IHtBcnJheTxQb2xpY3lEZWxpdmVyeT59IHBvbGljeURl
bGl2ZXJpZXMKKyAgICBBIGxpc3Qgb2YgUG9saWN5RGVsaXZlcnkgYXBwbGllZCB0byB0aGUgc291
cmNlIGNvbnRleHQuCisqLworCisvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy8vIEdlbmVyYWwgdXRpbGl0eSBmdW5jdGlv
bnMKKy8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQorCitmdW5jdGlvbiB0aW1lb3V0UHJvbWlzZSh0LCBtcykgeworICByZXR1
cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7IHQuc3RlcF90aW1lb3V0KHJlc29sdmUsIG1zKTsg
fSk7Cit9CisKKy8qKgorICogTm9ybWFsaXplcyB0aGUgdGFyZ2V0IHBvcnQgZm9yIHVzZSBpbiBh
IFVSTC4gRm9yIGRlZmF1bHQgcG9ydHMsIHRoaXMgaXMgdGhlCisgKiAgICAgZW1wdHkgc3RyaW5n
IChvbWl0dGVkIHBvcnQpLCBvdGhlcndpc2UgaXQncyBhIGNvbG9uIGZvbGxvd2VkIGJ5IHRoZSBw
b3J0CisgKiAgICAgbnVtYmVyLiBQb3J0cyA4MCwgNDQzIGFuZCBhbiBlbXB0eSBzdHJpbmcgYXJl
IHJlZ2FyZGVkIGFzIGRlZmF1bHQgcG9ydHMuCisgKiBAcGFyYW0ge251bWJlcn0gdGFyZ2V0UG9y
dCBUaGUgcG9ydCB0byB1c2UKKyAqIEByZXR1cm4ge3N0cmluZ30gVGhlIHBvcnQgcG9ydGlvbiBm
b3IgdXNpbmcgYXMgcGFydCBvZiBhIFVSTC4KKyAqLworZnVuY3Rpb24gZ2V0Tm9ybWFsaXplZFBv
cnQodGFyZ2V0UG9ydCkgeworICByZXR1cm4gKFs4MCwgNDQzLCAiIl0uaW5kZXhPZih0YXJnZXRQ
b3J0KSA+PSAwKSA/ICIiIDogIjoiICsgdGFyZ2V0UG9ydDsKK30KKworLyoqCisgKiBDcmVhdGVz
IGEgR1VJRC4KKyAqICAgICBTZWU6IGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0dsb2Jh
bGx5X3VuaXF1ZV9pZGVudGlmaWVyCisgKiAgICAgT3JpZ2luYWwgYXV0aG9yOiBicm9vZmEgKGh0
dHA6Ly93d3cuYnJvb2ZhLmNvbS8pCisgKiAgICAgU291cmNlZCBmcm9tOiBodHRwOi8vc3RhY2tv
dmVyZmxvdy5jb20vYS8yMTE3NTIzLzQ5NDk3MTUKKyAqIEByZXR1cm4ge3N0cmluZ30gQSBwc2V1
ZG8tcmFuZG9tIEdVSUQuCisgKi8KK2Z1bmN0aW9uIGd1aWQoKSB7CisgIHJldHVybiAneHh4eHh4
eHgteHh4eC00eHh4LXl4eHgteHh4eHh4eHh4eHh4Jy5yZXBsYWNlKC9beHldL2csIGZ1bmN0aW9u
KGMpIHsKKyAgICB2YXIgciA9IE1hdGgucmFuZG9tKCkgKiAxNiB8IDAsIHYgPSBjID09ICd4JyA/
IHIgOiAociAmIDB4MyB8IDB4OCk7CisgICAgcmV0dXJuIHYudG9TdHJpbmcoMTYpOworICB9KTsK
K30KKworLyoqCisgKiBJbml0aWF0ZXMgYSBuZXcgWEhSIHZpYSBHRVQuCisgKiBAcGFyYW0ge3N0
cmluZ30gdXJsIFRoZSBlbmRwb2ludCBVUkwgZm9yIHRoZSBYSFIuCisgKiBAcGFyYW0ge3N0cmlu
Z30gcmVzcG9uc2VUeXBlIE9wdGlvbmFsIC0gaG93IHNob3VsZCB0aGUgcmVzcG9uc2UgYmUgcGFy
c2VkLgorICogICAgIERlZmF1bHQgaXMgImpzb24iLgorICogICAgIFNlZTogaHR0cHM6Ly94aHIu
c3BlYy53aGF0d2cub3JnLyNkb20teG1saHR0cHJlcXVlc3QtcmVzcG9uc2V0eXBlCisgKiBAcmV0
dXJuIHtQcm9taXNlfSBBIHByb21pc2Ugd3JhcHBpbmcgdGhlIHN1Y2Nlc3MgYW5kIGVycm9yIGV2
ZW50cy4KKyAqLworZnVuY3Rpb24geGhyUmVxdWVzdCh1cmwsIHJlc3BvbnNlVHlwZSkgeworICBy
ZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7CisgICAgdmFyIHho
ciA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOworICAgIHhoci5vcGVuKCdHRVQnLCB1cmwsIHRydWUp
OworICAgIHhoci5yZXNwb25zZVR5cGUgPSByZXNwb25zZVR5cGUgfHwgImpzb24iOworCisgICAg
eGhyLmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIiwgZnVuY3Rpb24oKSB7CisgICAgICByZWplY3Qo
RXJyb3IoIk5ldHdvcmsgRXJyb3IiKSk7CisgICAgfSk7CisKKyAgICB4aHIuYWRkRXZlbnRMaXN0
ZW5lcigibG9hZCIsIGZ1bmN0aW9uKCkgeworICAgICAgaWYgKHhoci5zdGF0dXMgIT0gMjAwKQor
ICAgICAgICByZWplY3QoRXJyb3IoeGhyLnN0YXR1c1RleHQpKTsKKyAgICAgIGVsc2UKKyAgICAg
ICAgcmVzb2x2ZSh4aHIucmVzcG9uc2UpOworICAgIH0pOworCisgICAgeGhyLnNlbmQoKTsKKyAg
fSk7Cit9CisKKy8qKgorICogU2V0cyBhdHRyaWJ1dGVzIG9uIGEgZ2l2ZW4gRE9NIGVsZW1lbnQu
CisgKiBAcGFyYW0ge0RPTUVsZW1lbnR9IGVsZW1lbnQgVGhlIGVsZW1lbnQgb24gd2hpY2ggdG8g
c2V0IHRoZSBhdHRyaWJ1dGVzLgorICogQHBhcmFtIHtvYmplY3R9IEFuIG9iamVjdCB3aXRoIGtl
eXMgKHNlcnZpbmcgYXMgYXR0cmlidXRlIG5hbWVzKSBhbmQgdmFsdWVzLgorICovCitmdW5jdGlv
biBzZXRBdHRyaWJ1dGVzKGVsLCBhdHRycykgeworICBhdHRycyA9IGF0dHJzIHx8IHt9CisgIGZv
ciAodmFyIGF0dHIgaW4gYXR0cnMpIHsKKyAgICBpZiAoYXR0ciAhPT0gJ3NyYycpCisgICAgICBl
bC5zZXRBdHRyaWJ1dGUoYXR0ciwgYXR0cnNbYXR0cl0pOworICB9CisgIC8vIFdvcmthcm91bmQg
Zm9yIENocm9taXVtOiBzZXQgPGltZz4ncyBzcmMgYXR0cmlidXRlIGFmdGVyIGFsbCBvdGhlcgor
ICAvLyBhdHRyaWJ1dGVzIHRvIGVuc3VyZSB0aGUgcG9saWN5IGlzIGFwcGxpZWQuCisgIGZvciAo
dmFyIGF0dHIgaW4gYXR0cnMpIHsKKyAgICBpZiAoYXR0ciA9PT0gJ3NyYycpCisgICAgICBlbC5z
ZXRBdHRyaWJ1dGUoYXR0ciwgYXR0cnNbYXR0cl0pOworICB9Cit9CisKKy8qKgorICogQmluZHMg
dG8gc3VjY2VzcyBhbmQgZXJyb3IgZXZlbnRzIG9mIGFuIG9iamVjdCB3cmFwcGluZyB0aGVtIGlu
dG8gYSBwcm9taXNlCisgKiAgICAgYXZhaWxhYmxlIHRocm91Z2gge0Bjb2RlIGVsZW1lbnQuZXZl
bnRQcm9taXNlfS4gVGhlIHN1Y2Nlc3MgZXZlbnQKKyAqICAgICByZXNvbHZlcyBhbmQgZXJyb3Ig
ZXZlbnQgcmVqZWN0cy4KKyAqIFRoaXMgbWV0aG9kIGFkZHMgZXZlbnQgbGlzdGVuZXJzLCBhbmQg
dGhlbiByZW1vdmVzIGFsbCB0aGUgYWRkZWQgbGlzdGVuZXJzCisgKiB3aGVuIG9uZSBvZiBsaXN0
ZW5lZCBldmVudCBpcyBmaXJlZC4KKyAqIEBwYXJhbSB7b2JqZWN0fSBlbGVtZW50IEFuIG9iamVj
dCBzdXBwb3J0aW5nIGV2ZW50cyBvbiB3aGljaCB0byBiaW5kIHRoZQorICogICAgIHByb21pc2Uu
CisgKiBAcGFyYW0ge3N0cmluZ30gcmVzb2x2ZUV2ZW50TmFtZSBbPSJsb2FkIl0gVGhlIGV2ZW50
IG5hbWUgdG8gYmluZCByZXNvbHZlIHRvLgorICogQHBhcmFtIHtzdHJpbmd9IHJlamVjdEV2ZW50
TmFtZSBbPSJlcnJvciJdIFRoZSBldmVudCBuYW1lIHRvIGJpbmQgcmVqZWN0IHRvLgorICovCitm
dW5jdGlvbiBiaW5kRXZlbnRzKGVsZW1lbnQsIHJlc29sdmVFdmVudE5hbWUsIHJlamVjdEV2ZW50
TmFtZSkgeworICBlbGVtZW50LmV2ZW50UHJvbWlzZSA9CisgICAgICBiaW5kRXZlbnRzMihlbGVt
ZW50LCByZXNvbHZlRXZlbnROYW1lLCBlbGVtZW50LCByZWplY3RFdmVudE5hbWUpOworfQorCisv
LyBSZXR1cm5zIGEgcHJvbWlzZSB3cmFwcGluZyBzdWNjZXNzIGFuZCBlcnJvciBldmVudHMgb2Yg
b2JqZWN0cy4KKy8vIFRoaXMgaXMgYSB2YXJpYW50IG9mIGJpbmRFdmVudHMgdGhhdCBjYW4gYWNj
ZXB0IHNlcGFyYXRlIG9iamVjdHMgZm9yIGVhY2gKKy8vIGV2ZW50cyBhbmQgdHdvIGV2ZW50cyB0
byByZWplY3QsIGFuZCBkb2Vzbid0IHNldCBgZXZlbnRQcm9taXNlYC4KKy8vCisvLyBXaGVuIGBy
ZXNvbHZlT2JqZWN0YCdzIGByZXNvbHZlRXZlbnROYW1lYCBldmVudCAoZGVmYXVsdDogImxvYWQi
KSBpcworLy8gZmlyZWQsIHRoZSBwcm9taXNlIGlzIHJlc29sdmVkIHdpdGggdGhlIGV2ZW50Lgor
Ly8KKy8vIFdoZW4gYHJlamVjdE9iamVjdGAncyBgcmVqZWN0RXZlbnROYW1lYCBldmVudCAoZGVm
YXVsdDogImVycm9yIikgb3IKKy8vIGByZWplY3RPYmplY3QyYCdzIGByZWplY3RFdmVudE5hbWUy
YCBldmVudCAoZGVmYXVsdDogImVycm9yIikgaXMKKy8vIGZpcmVkLCB0aGUgcHJvbWlzZSBpcyBy
ZWplY3RlZC4KKy8vCisvLyBgcmVqZWN0T2JqZWN0MmAgaXMgb3B0aW9uYWwuCitmdW5jdGlvbiBi
aW5kRXZlbnRzMihyZXNvbHZlT2JqZWN0LCByZXNvbHZlRXZlbnROYW1lLCByZWplY3RPYmplY3Qs
IHJlamVjdEV2ZW50TmFtZSwgcmVqZWN0T2JqZWN0MiwgcmVqZWN0RXZlbnROYW1lMikgeworICBy
ZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7CisgICAgY29uc3Qg
YWN0dWFsUmVzb2x2ZUV2ZW50TmFtZSA9IHJlc29sdmVFdmVudE5hbWUgfHwgImxvYWQiOworICAg
IGNvbnN0IGFjdHVhbFJlamVjdEV2ZW50TmFtZSA9IHJlamVjdEV2ZW50TmFtZSB8fCAiZXJyb3Ii
OworICAgIGNvbnN0IGFjdHVhbFJlamVjdEV2ZW50TmFtZTIgPSByZWplY3RFdmVudE5hbWUyIHx8
ICJlcnJvciI7CisKKyAgICBjb25zdCByZXNvbHZlSGFuZGxlciA9IGZ1bmN0aW9uKGV2ZW50KSB7
CisgICAgICBjbGVhbnVwKCk7CisgICAgICByZXNvbHZlKGV2ZW50KTsKKyAgICB9OworCisgICAg
Y29uc3QgcmVqZWN0SGFuZGxlciA9IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAvLyBDaHJvbWl1
bSBzdGFydHMgcHJvcGFnYXRpbmcgZXJyb3JzIGZyb20gd29ya2VyLm9uZXJyb3IgdG8KKyAgICAg
IC8vIHdpbmRvdy5vbmVycm9yLiBUaGlzIGhhbmRsZXMgdGhlIHVuY2F1Z2h0IGV4Y2VwdGlvbnMg
aW4gdGVzdHMuCisgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOworICAgICAgY2xlYW51cCgp
OworICAgICAgcmVqZWN0KGV2ZW50KTsKKyAgICB9OworCisgICAgY29uc3QgY2xlYW51cCA9IGZ1
bmN0aW9uKCkgeworICAgICAgcmVzb2x2ZU9iamVjdC5yZW1vdmVFdmVudExpc3RlbmVyKGFjdHVh
bFJlc29sdmVFdmVudE5hbWUsIHJlc29sdmVIYW5kbGVyKTsKKyAgICAgIHJlamVjdE9iamVjdC5y
ZW1vdmVFdmVudExpc3RlbmVyKGFjdHVhbFJlamVjdEV2ZW50TmFtZSwgcmVqZWN0SGFuZGxlcik7
CisgICAgICBpZiAocmVqZWN0T2JqZWN0MikgeworICAgICAgICByZWplY3RPYmplY3QyLnJlbW92
ZUV2ZW50TGlzdGVuZXIoYWN0dWFsUmVqZWN0RXZlbnROYW1lMiwgcmVqZWN0SGFuZGxlcik7Cisg
ICAgICB9CisgICAgfTsKKworICAgIHJlc29sdmVPYmplY3QuYWRkRXZlbnRMaXN0ZW5lcihhY3R1
YWxSZXNvbHZlRXZlbnROYW1lLCByZXNvbHZlSGFuZGxlcik7CisgICAgcmVqZWN0T2JqZWN0LmFk
ZEV2ZW50TGlzdGVuZXIoYWN0dWFsUmVqZWN0RXZlbnROYW1lLCByZWplY3RIYW5kbGVyKTsKKyAg
ICBpZiAocmVqZWN0T2JqZWN0MikgeworICAgICAgcmVqZWN0T2JqZWN0Mi5hZGRFdmVudExpc3Rl
bmVyKGFjdHVhbFJlamVjdEV2ZW50TmFtZTIsIHJlamVjdEhhbmRsZXIpOworICAgIH0KKyAgfSk7
Cit9CisKKy8qKgorICogQ3JlYXRlcyBhIG5ldyBET00gZWxlbWVudC4KKyAqIEBwYXJhbSB7c3Ry
aW5nfSB0YWdOYW1lIFRoZSB0eXBlIG9mIHRoZSBET00gZWxlbWVudC4KKyAqIEBwYXJhbSB7b2Jq
ZWN0fSBhdHRycyBBIEpTT04gd2l0aCBhdHRyaWJ1dGVzIHRvIGFwcGx5IHRvIHRoZSBlbGVtZW50
LgorICogQHBhcmFtIHtET01FbGVtZW50fSBwYXJlbnQgT3B0aW9uYWwgLSBhbiBleGlzdGluZyBE
T00gZWxlbWVudCB0byBhcHBlbmQgdG8KKyAqICAgICBJZiBub3QgcHJvdmlkZWQsIHRoZSByZXR1
cm5lZCBlbGVtZW50IHdpbGwgcmVtYWluIG9ycGhhbmVkLgorICogQHBhcmFtIHtib29sZWFufSBk
b0JpbmRFdmVudHMgT3B0aW9uYWwgLSBXaGV0aGVyIHRvIGJpbmQgdG8gbG9hZCBhbmQgZXJyb3IK
KyAqICAgICBldmVudHMgYW5kIHByb3ZpZGUgdGhlIHByb21pc2Ugd3JhcHBpbmcgdGhlIGV2ZW50
cyB2aWEgdGhlIGVsZW1lbnQncworICogICAgIHtAY29kZSBldmVudFByb21pc2V9IHByb3BlcnR5
LiBEZWZhdWx0IHZhbHVlIGV2YWx1YXRlcyB0byBmYWxzZS4KKyAqIEByZXR1cm4ge0RPTUVsZW1l
bnR9IFRoZSBuZXdseSBjcmVhdGVkIERPTSBlbGVtZW50LgorICovCitmdW5jdGlvbiBjcmVhdGVF
bGVtZW50KHRhZ05hbWUsIGF0dHJzLCBwYXJlbnROb2RlLCBkb0JpbmRFdmVudHMpIHsKKyAgdmFy
IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRhZ05hbWUpOworCisgIGlmIChkb0Jp
bmRFdmVudHMpCisgICAgYmluZEV2ZW50cyhlbGVtZW50KTsKKworICAvLyBXZSBzZXQgdGhlIGF0
dHJpYnV0ZXMgYWZ0ZXIgYmluZGluZyB0byBldmVudHMgdG8gY2F0Y2ggYW55CisgIC8vIGV2ZW50
LXRyaWdnZXJpbmcgYXR0cmlidXRlIGNoYW5nZXMuIEUuZy4gZm9ybSBzdWJtaXNzaW9uLgorICAv
LworICAvLyBCdXQgYmUgY2FyZWZ1bCB3aXRoIGltYWdlczogdW5saWtlIG90aGVyIGVsZW1lbnRz
IHRoZXkgd2lsbCBzdGFydCB0aGUgbG9hZAorICAvLyBhcyBzb29uIGFzIHRoZSBhdHRyIGlzIHNl
dCwgZXZlbiBpZiBub3QgaW4gdGhlIGRvY3VtZW50IHlldCwgYW5kIHNvbWV0aW1lcworICAvLyBj
b21wbGV0ZSBpdCBzeW5jaHJvbm91c2x5LCBzbyB0aGUgYXBwZW5kIGRvZXNuJ3QgaGF2ZSB0aGUg
ZWZmZWN0IHdlIHdhbnQuCisgIC8vIFNvIGZvciBpbWFnZXMsIHdlIHdhbnQgdG8gc2V0IHRoZSBh
dHRycyBhZnRlciBhcHBlbmRpbmcsIHdoZXJlYXMgZm9yIG90aGVyCisgIC8vIGVsZW1lbnRzIHdl
IHdhbnQgdG8gZG8gaXQgYmVmb3JlIGFwcGVuZGluZy4KKyAgdmFyIGlzSW1nID0gKHRhZ05hbWUg
PT0gImltZyIpOworICBpZiAoIWlzSW1nKQorICAgIHNldEF0dHJpYnV0ZXMoZWxlbWVudCwgYXR0
cnMpOworCisgIGlmIChwYXJlbnROb2RlKQorICAgIHBhcmVudE5vZGUuYXBwZW5kQ2hpbGQoZWxl
bWVudCk7CisKKyAgaWYgKGlzSW1nKQorICAgIHNldEF0dHJpYnV0ZXMoZWxlbWVudCwgYXR0cnMp
OworCisgIHJldHVybiBlbGVtZW50OworfQorCitmdW5jdGlvbiBjcmVhdGVSZXF1ZXN0VmlhRWxl
bWVudCh0YWdOYW1lLCBhdHRycywgcGFyZW50Tm9kZSkgeworICByZXR1cm4gY3JlYXRlRWxlbWVu
dCh0YWdOYW1lLCBhdHRycywgcGFyZW50Tm9kZSwgdHJ1ZSkuZXZlbnRQcm9taXNlOworfQorCisv
KioKKyAqIENyZWF0ZXMgYSBuZXcgZW1wdHkgaWZyYW1lIGFuZCBhcHBlbmRzIGl0IHRvIHtAY29k
ZSBkb2N1bWVudC5ib2R5fSAuCisgKiBAcGFyYW0ge3N0cmluZ30gbmFtZSBUaGUgbmFtZSBhbmQg
SUQgb2YgdGhlIG5ldyBpZnJhbWUuCisgKiBAcGFyYW0ge2Jvb2xlYW59IGRvQmluZEV2ZW50cyBX
aGV0aGVyIHRvIGJpbmQgbG9hZCBhbmQgZXJyb3IgZXZlbnRzLgorICogQHJldHVybiB7RE9NRWxl
bWVudH0gVGhlIG5ld2x5IGNyZWF0ZWQgaWZyYW1lLgorICovCitmdW5jdGlvbiBjcmVhdGVIZWxw
ZXJJZnJhbWUobmFtZSwgZG9CaW5kRXZlbnRzKSB7CisgIHJldHVybiBjcmVhdGVFbGVtZW50KCJp
ZnJhbWUiLAorICAgICAgICAgICAgICAgICAgICAgICB7Im5hbWUiOiBuYW1lLCAiaWQiOiBuYW1l
fSwKKyAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgZG9CaW5kRXZlbnRzKTsKK30KKworZnVuY3Rpb24gd3JhcFJlc3VsdChzZXJ2ZXJf
ZGF0YSkgeworICBpZiAodHlwZW9mKHNlcnZlcl9kYXRhKSA9PT0gInN0cmluZyIpIHsKKyAgICB0
aHJvdyBzZXJ2ZXJfZGF0YTsKKyAgfQorICByZXR1cm4geworICAgIHJlZmVycmVyOiBzZXJ2ZXJf
ZGF0YS5oZWFkZXJzLnJlZmVyZXIsCisgICAgaGVhZGVyczogc2VydmVyX2RhdGEuaGVhZGVycwor
ICB9Cit9CisKKy8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQorLy8gU3VicmVzb3VyY2VzCisvLyA9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworLyoqCisg
IEB0eXBlZGVmIFJlcXVlc3RSZXN1bHQKKyAgQHR5cGUge29iamVjdH0KKyAgUmVwcmVzZW50cyB0
aGUgcmVzdWx0IG9mIHNlbmRpbmcgYW4gcmVxdWVzdC4KKyAgQWxsIHByb3BlcnRpZXMgYXJlIG9w
dGlvbmFsLiBTZWUgdGhlIGNvbW1lbnRzIGZvcgorICByZXF1ZXN0VmlhKigpIGFuZCBpbnZva2VS
ZXF1ZXN0KCkgYmVsb3cgdG8gc2VlIHdoaWNoIHByb3BlcnRpZXMgYXJlIHNldC4KKworICBAcHJv
cGVydHkge0FycmF5PE9iamVjdDxzdHJpbmcsIHN0cmluZz4+fSBoZWFkZXJzCisgICAgSFRUUCBy
ZXF1ZXN0IGhlYWRlcnMgc2VudCB0byBzZXJ2ZXIuCisgIEBwcm9wZXJ0eSB7c3RyaW5nfSByZWZl
cnJlciAtIFJlZmVycmVyLgorICBAcHJvcGVydHkge3N0cmluZ30gbG9jYXRpb24gLSBUaGUgVVJM
IG9mIHRoZSBzdWJyZXNvdXJjZS4KKyAgQHByb3BlcnR5IHtzdHJpbmd9IHNvdXJjZUNvbnRleHRV
cmwKKyAgICB0aGUgVVJMIG9mIHRoZSBnbG9iYWwgb2JqZWN0IHdoZXJlIHRoZSBhY3R1YWwgcmVx
dWVzdCBpcyBzZW50LgorKi8KKworLyoqCisgIHJlcXVlc3RWaWEqKHVybCwgYWRkaXRpb25hbEF0
dHJpYnV0ZXMpIGZ1bmN0aW9ucyBzZW5kIGEgc3VicmVzb3VyY2UKKyAgcmVxdWVzdCBmcm9tIHRo
ZSBjdXJyZW50IGVudmlyb25tZW50IHNldHRpbmdzIG9iamVjdC4KKworICBAcGFyYW0ge3N0cmlu
Z30gdXJsCisgICAgVGhlIFVSTCBvZiB0aGUgc3VicmVzb3VyY2UuCisgIEBwYXJhbSB7T2JqZWN0
PHN0cmluZywgc3RyaW5nPn0gYWRkaXRpb25hbEF0dHJpYnV0ZXMKKyAgICBBZGRpdGlvbmFsIGF0
dHJpYnV0ZXMgc2V0IHRvIERPTSBlbGVtZW50cworICAgIChlbGVtZW50LWluaXRpYXRlZCByZXF1
ZXN0cyBvbmx5KS4KKworICBAcmV0dXJucyB7UHJvbWlzZX0gdGhhdCBhcmUgcmVzb2x2ZWQgd2l0
aCBhIFJlcXVlc3RSZXN1bHQgb2JqZWN0CisgIG9uIHN1Y2Nlc3NmdWwgcmVxdWVzdHMuCisKKyAg
LSBDYXRlZ29yeSAxOgorICAgICAgYGhlYWRlcnNgOiBzZXQuCisgICAgICBgcmVmZXJyZXJgOiBz
ZXQgdmlhIGBkb2N1bWVudC5yZWZlcnJlcmAuCisgICAgICBgbG9jYXRpb25gOiBzZXQgdmlhIGBk
b2N1bWVudC5sb2NhdGlvbmAuCisgICAgICBTZWUgYHRlbXBsYXRlL2RvY3VtZW50Lmh0bWwudGVt
cGxhdGVgLgorICAtIENhdGVnb3J5IDI6CisgICAgICBgaGVhZGVyc2A6IHNldC4KKyAgICAgIGBy
ZWZlcnJlcmA6IHNldCB0byBgaGVhZGVycy5yZWZlcmVyYCBieSBgd3JhcFJlc3VsdCgpYC4KKyAg
ICAgIGBsb2NhdGlvbmA6IG5vdCBzZXQuCisgIC0gQ2F0ZWdvcnkgMzoKKyAgICAgIEFsbCB0aGUg
a2V5cyBsaXN0ZWQgYWJvdmUgYXJlIE5PVCBzZXQuCisgIGBzb3VyY2VDb250ZXh0VXJsYCBpcyBu
b3Qgc2V0IGhlcmUuCisKKyAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gLS0tLS0t
LS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgRnVuY3Rpb24gbmFtZSAgICAgICAgICAg
ICAgICAgICAgQ2F0ZWdvcnkgVXNlZCBpbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAtLS0tLS0tLSAtLS0tLS0tIC0tLS0tLS0tLQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWZlcnJlciBtaXhlZC0gIHVwZ3JhZGUtCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvbGljeSAgIGNvbnRl
bnQgaW5zZWN1cmUtCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHBvbGljeSAgIGNvbnRlbnQgcmVxdWVzdAorICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLSAtLS0tLS0tLSAtLS0tLS0tLSAtLS0tLS0tIC0tLS0tLS0tLQorICByZXF1ZXN0VmlhQW5j
aG9yICAgICAgICAgICAgICAgICAxICAgICAgICBZICAgICAgICBZICAgICAgIC0KKyAgcmVxdWVz
dFZpYUFyZWEgICAgICAgICAgICAgICAgICAgMSAgICAgICAgWSAgICAgICAgWSAgICAgICAtCisg
IHJlcXVlc3RWaWFBdWRpbyAgICAgICAgICAgICAgICAgIDMgICAgICAgIC0gICAgICAgIFkgICAg
ICAgLQorICByZXF1ZXN0VmlhRGVkaWNhdGVkV29ya2VyICAgICAgICAyICAgICAgICBZICAgICAg
ICBZICAgICAgIFkKKyAgcmVxdWVzdFZpYUZldGNoICAgICAgICAgICAgICAgICAgMiAgICAgICAg
WSAgICAgICAgWSAgICAgICAtCisgIHJlcXVlc3RWaWFGb3JtICAgICAgICAgICAgICAgICAgIDMg
ICAgICAgIC0gICAgICAgIFkgICAgICAgLQorICByZXF1ZXN0VmlhSWZyYW1lICAgICAgICAgICAg
ICAgICAxICAgICAgICBZICAgICAgICBZICAgICAgIC0KKyAgcmVxdWVzdFZpYUltYWdlICAgICAg
ICAgICAgICAgICAgMiAgICAgICAgWSAgICAgICAgWSAgICAgICAtCisgIHJlcXVlc3RWaWFMaW5r
UHJlZmV0Y2ggICAgICAgICAgIDMgICAgICAgIC0gICAgICAgIFkgICAgICAgLQorICByZXF1ZXN0
VmlhTGlua1N0eWxlc2hlZXQgICAgICAgICAzICAgICAgICAtICAgICAgICBZICAgICAgIC0KKyAg
cmVxdWVzdFZpYU9iamVjdCAgICAgICAgICAgICAgICAgMyAgICAgICAgLSAgICAgICAgWSAgICAg
ICAtCisgIHJlcXVlc3RWaWFQaWN0dXJlICAgICAgICAgICAgICAgIDMgICAgICAgIC0gICAgICAg
IFkgICAgICAgLQorICByZXF1ZXN0VmlhU2NyaXB0ICAgICAgICAgICAgICAgICAyICAgICAgICBZ
ICAgICAgICBZICAgICAgIC0KKyAgcmVxdWVzdFZpYVNlbmRCZWFjb24gICAgICAgICAgICAgMyAg
ICAgICAgLSAgICAgICAgWSAgICAgICAtCisgIHJlcXVlc3RWaWFTaGFyZWRXb3JrZXIgICAgICAg
ICAgIDIgICAgICAgIFkgICAgICAgIC0gICAgICAgLQorICByZXF1ZXN0VmlhVmlkZW8gICAgICAg
ICAgICAgICAgICAzICAgICAgICAtICAgICAgICBZICAgICAgIC0KKyAgcmVxdWVzdFZpYVdlYlNv
Y2tldCAgICAgICAgICAgICAgMyAgICAgICAgLSAgICAgICAgWSAgICAgICAtCisgIHJlcXVlc3RW
aWFXb3JrbGV0ICAgICAgICAgICAgICAgIDMgICAgICAgIC0gICAgICAgIFkgICAgICAgWQorICBy
ZXF1ZXN0VmlhWGhyICAgICAgICAgICAgICAgICAgICAyICAgICAgICBZICAgICAgICBZICAgICAg
IC0KKyAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gLS0tLS0tLS0gLS0tLS0tLS0g
LS0tLS0tLSAtLS0tLS0tLS0KKyovCisKKy8qKgorICogQ3JlYXRlcyBhIG5ldyBpZnJhbWUsIGJp
bmRzIGxvYWQgYW5kIGVycm9yIGV2ZW50cywgc2V0cyB0aGUgc3JjIGF0dHJpYnV0ZSBhbmQKKyAq
ICAgICBhcHBlbmRzIGl0IHRvIHtAY29kZSBkb2N1bWVudC5ib2R5fSAuCisgKiBAcGFyYW0ge3N0
cmluZ30gdXJsIFRoZSBzcmMgZm9yIHRoZSBpZnJhbWUuCisgKiBAcmV0dXJuIHtQcm9taXNlfSBU
aGUgcHJvbWlzZSBmb3Igc3VjY2Vzcy9lcnJvciBldmVudHMuCisgKi8KK2Z1bmN0aW9uIHJlcXVl
c3RWaWFJZnJhbWUodXJsLCBhZGRpdGlvbmFsQXR0cmlidXRlcykgeworICBjb25zdCBpZnJhbWUg
PSBjcmVhdGVFbGVtZW50KAorICAgICAgImlmcmFtZSIsCisgICAgICBPYmplY3QuYXNzaWduKHsi
c3JjIjogdXJsfSwgYWRkaXRpb25hbEF0dHJpYnV0ZXMpLAorICAgICAgZG9jdW1lbnQuYm9keSwK
KyAgICAgIGZhbHNlKTsKKyAgcmV0dXJuIGJpbmRFdmVudHMyKHdpbmRvdywgIm1lc3NhZ2UiLCBp
ZnJhbWUsICJlcnJvciIsIHdpbmRvdywgImVycm9yIikKKyAgICAgIC50aGVuKGV2ZW50ID0+IHsK
KyAgICAgICAgICBpZiAoZXZlbnQuc291cmNlICE9PSBpZnJhbWUuY29udGVudFdpbmRvdykKKyAg
ICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChuZXcgRXJyb3IoJ1VuZXhwZWN0ZWQgZXZl
bnQuc291cmNlJykpOworICAgICAgICAgIHJldHVybiBldmVudC5kYXRhOworICAgICAgICB9KTsK
K30KKworLyoqCisgKiBDcmVhdGVzIGEgbmV3IGltYWdlLCBiaW5kcyBsb2FkIGFuZCBlcnJvciBl
dmVudHMsIHNldHMgdGhlIHNyYyBhdHRyaWJ1dGUgYW5kCisgKiAgICAgYXBwZW5kcyBpdCB0byB7
QGNvZGUgZG9jdW1lbnQuYm9keX0gLgorICogQHBhcmFtIHtzdHJpbmd9IHVybCBUaGUgc3JjIGZv
ciB0aGUgaW1hZ2UuCisgKiBAcmV0dXJuIHtQcm9taXNlfSBUaGUgcHJvbWlzZSBmb3Igc3VjY2Vz
cy9lcnJvciBldmVudHMuCisgKi8KK2Z1bmN0aW9uIHJlcXVlc3RWaWFJbWFnZSh1cmwsIGFkZGl0
aW9uYWxBdHRyaWJ1dGVzKSB7CisgIGNvbnN0IGltZyA9IGNyZWF0ZUVsZW1lbnQoCisgICAgICAi
aW1nIiwKKyAgICAgIC8vIGNyb3NzT3JpZ2luIGF0dHJpYnV0ZSBpcyBhZGRlZCB0byByZWFkIHRo
ZSBwaXhlbCBkYXRhIG9mIHRoZSByZXNwb25zZS4KKyAgICAgIE9iamVjdC5hc3NpZ24oeyJzcmMi
OiB1cmwsICJjcm9zc09yaWdpbiI6ICJBbm9ueW1vdXMifSwgYWRkaXRpb25hbEF0dHJpYnV0ZXMp
LAorICAgICAgZG9jdW1lbnQuYm9keSwgdHJ1ZSk7CisgIHJldHVybiBpbWcuZXZlbnRQcm9taXNl
LnRoZW4oKCkgPT4gd3JhcFJlc3VsdChkZWNvZGVJbWFnZURhdGEoaW1nKSkpOworfQorCisvLyBI
ZWxwZXIgZm9yIHJlcXVlc3RWaWFJbWFnZSgpLgorZnVuY3Rpb24gZGVjb2RlSW1hZ2VEYXRhKGlt
ZykgeworICB2YXIgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIik7Cisg
IHZhciBjb250ZXh0ID0gY2FudmFzLmdldENvbnRleHQoJzJkJyk7CisgIGNvbnRleHQuZHJhd0lt
YWdlKGltZywgMCwgMCk7CisgIHZhciBpbWdEYXRhID0gY29udGV4dC5nZXRJbWFnZURhdGEoMCwg
MCwgaW1nLmNsaWVudFdpZHRoLCBpbWcuY2xpZW50SGVpZ2h0KTsKKyAgY29uc3QgcmdiYSA9IGlt
Z0RhdGEuZGF0YTsKKworICBsZXQgZGVjb2RlZEJ5dGVzID0gbmV3IFVpbnQ4Q2xhbXBlZEFycmF5
KHJnYmEubGVuZ3RoKTsKKyAgbGV0IGRlY29kZWRMZW5ndGggPSAwOworCisgIGZvciAodmFyIGkg
PSAwOyBpICsgMTIgPD0gcmdiYS5sZW5ndGg7IGkgKz0gMTIpIHsKKyAgICAvLyBBIHNpbmdsZSBi
eXRlIGlzIGVuY29kZWQgaW4gdGhyZWUgcGl4ZWxzLiA4IHBpeGVsIG9jdGV0cyAoYW1vbmcKKyAg
ICAvLyA5IG9jdGV0cyA9IDMgcGl4ZWxzICogMyBjaGFubmVscykgYXJlIHVzZWQgdG8gZW5jb2Rl
IDggYml0cywKKyAgICAvLyB0aGUgbW9zdCBzaWduaWZpY2FudCBiaXQgZmlyc3QsIHdoZXJlIGAw
YCBhbmQgYDI1NWAgaW4gcGl4ZWwgdmFsdWVzCisgICAgLy8gcmVwcmVzZW50IGAwYCBhbmQgYDFg
IGluIGJpdHMsIHJlc3BlY3RpdmVseS4KKyAgICAvLyBUaGlzIGVuY29kaW5nIGlzIHVzZWQgdG8g
YXZvaWQgZXJyb3JzIGR1ZSB0byBkaWZmZXJlbnQgY29sb3Igc3BhY2VzLgorICAgIGNvbnN0IGJp
dHMgPSBbXTsKKyAgICBmb3IgKGxldCBqID0gMDsgaiA8IDM7ICsraikgeworICAgICAgYml0cy5w
dXNoKHJnYmFbaSArIGogKiA0ICsgMF0pOworICAgICAgYml0cy5wdXNoKHJnYmFbaSArIGogKiA0
ICsgMV0pOworICAgICAgYml0cy5wdXNoKHJnYmFbaSArIGogKiA0ICsgMl0pOworICAgICAgLy8g
cmdiYVtpICsgaiAqIDQgKyAzXTogU2tpcCBhbHBoYSBjaGFubmVsLgorICAgIH0KKyAgICAvLyBU
aGUgbGFzdCBvbmUgZWxlbWVudCBpcyBub3QgdXNlZC4KKyAgICBiaXRzLnBvcCgpOworCisgICAg
Ly8gRGVjb2RlIGEgc2luZ2xlIGJ5dGUuCisgICAgbGV0IGJ5dGUgPSAwOworICAgIGZvciAobGV0
IGogPSAwOyBqIDwgODsgKytqKSB7CisgICAgICBieXRlIDw8PSAxOworICAgICAgaWYgKGJpdHNb
al0gPj0gMTI4KQorICAgICAgICBieXRlIHw9IDE7CisgICAgfQorCisgICAgLy8gWmVybyBpcyB0
aGUgc3RyaW5nIHRlcm1pbmF0b3IuCisgICAgaWYgKGJ5dGUgPT0gMCkKKyAgICAgIGJyZWFrOwor
CisgICAgZGVjb2RlZEJ5dGVzW2RlY29kZWRMZW5ndGgrK10gPSBieXRlOworICB9CisKKyAgLy8g
UmVtb3ZlIHRyYWlsaW5nIG51bGxzIGZyb20gZGF0YS4KKyAgZGVjb2RlZEJ5dGVzID0gZGVjb2Rl
ZEJ5dGVzLnN1YmFycmF5KDAsIGRlY29kZWRMZW5ndGgpOworICB2YXIgc3RyaW5nX2RhdGEgPSAo
bmV3IFRleHREZWNvZGVyKCJhc2NpaSIpKS5kZWNvZGUoZGVjb2RlZEJ5dGVzKTsKKworICByZXR1
cm4gSlNPTi5wYXJzZShzdHJpbmdfZGF0YSk7Cit9CisKKy8qKgorICogSW5pdGlhdGVzIGEgbmV3
IFhIUiBHRVQgcmVxdWVzdCB0byBwcm92aWRlZCBVUkwuCisgKiBAcGFyYW0ge3N0cmluZ30gdXJs
IFRoZSBlbmRwb2ludCBVUkwgZm9yIHRoZSBYSFIuCisgKiBAcmV0dXJuIHtQcm9taXNlfSBUaGUg
cHJvbWlzZSBmb3Igc3VjY2Vzcy9lcnJvciBldmVudHMuCisgKi8KK2Z1bmN0aW9uIHJlcXVlc3RW
aWFYaHIodXJsKSB7CisgIHJldHVybiB4aHJSZXF1ZXN0KHVybCkudGhlbihyZXN1bHQgPT4gd3Jh
cFJlc3VsdChyZXN1bHQpKTsKK30KKworLyoqCisgKiBJbml0aWF0ZXMgYSBuZXcgR0VUIHJlcXVl
c3QgdG8gcHJvdmlkZWQgVVJMIHZpYSB0aGUgRmV0Y2ggQVBJLgorICogQHBhcmFtIHtzdHJpbmd9
IHVybCBUaGUgZW5kcG9pbnQgVVJMIGZvciB0aGUgRmV0Y2guCisgKiBAcmV0dXJuIHtQcm9taXNl
fSBUaGUgcHJvbWlzZSBmb3Igc3VjY2Vzcy9lcnJvciBldmVudHMuCisgKi8KK2Z1bmN0aW9uIHJl
cXVlc3RWaWFGZXRjaCh1cmwpIHsKKyAgcmV0dXJuIGZldGNoKHVybCkKKyAgICAudGhlbihyZXMg
PT4gcmVzLmpzb24oKSkKKyAgICAudGhlbihqID0+IHdyYXBSZXN1bHQoaikpOworfQorCitmdW5j
dGlvbiBkZWRpY2F0ZWRXb3JrZXJVcmxUaGF0RmV0Y2hlcyh1cmwpIHsKKyAgcmV0dXJuIGBkYXRh
OnRleHQvamF2YXNjcmlwdCwKKyAgICBmZXRjaCgnJHt1cmx9JykKKyAgICAgIC50aGVuKHIgPT4g
ci5qc29uKCkpCisgICAgICAudGhlbihqID0+IHBvc3RNZXNzYWdlKGopKQorICAgICAgLmNhdGNo
KChlKSA9PiBwb3N0TWVzc2FnZShlLm1lc3NhZ2UpKTtgOworfQorCitmdW5jdGlvbiB3b3JrZXJV
cmxUaGF0SW1wb3J0cyh1cmwpIHsKKyAgcmV0dXJuIGBkYXRhOnRleHQvamF2YXNjcmlwdCxpbXBv
cnQgJyR7dXJsfSc7YDsKK30KKworLyoqCisgKiBDcmVhdGVzIGEgbmV3IFdvcmtlciwgYmluZHMg
bWVzc2FnZSBhbmQgZXJyb3IgZXZlbnRzIHdyYXBwaW5nIHRoZW0gaW50by4KKyAqICAgICB7QGNv
ZGUgd29ya2VyLmV2ZW50UHJvbWlzZX0gYW5kIHBvc3RzIGFuIGVtcHR5IHN0cmluZyBtZXNzYWdl
IHRvIHN0YXJ0CisgKiAgICAgdGhlIHdvcmtlci4KKyAqIEBwYXJhbSB7c3RyaW5nfSB1cmwgVGhl
IGVuZHBvaW50IFVSTCBmb3IgdGhlIHdvcmtlciBzY3JpcHQuCisgKiBAcGFyYW0ge29iamVjdH0g
b3B0aW9ucyBUaGUgb3B0aW9ucyBmb3IgV29ya2VyIGNvbnN0cnVjdG9yLgorICogQHJldHVybiB7
UHJvbWlzZX0gVGhlIHByb21pc2UgZm9yIHN1Y2Nlc3MvZXJyb3IgZXZlbnRzLgorICovCitmdW5j
dGlvbiByZXF1ZXN0VmlhRGVkaWNhdGVkV29ya2VyKHVybCwgb3B0aW9ucykgeworICB2YXIgd29y
a2VyOworICB0cnkgeworICAgIHdvcmtlciA9IG5ldyBXb3JrZXIodXJsLCBvcHRpb25zKTsKKyAg
fSBjYXRjaCAoZSkgeworICAgIHJldHVybiBQcm9taXNlLnJlamVjdChlKTsKKyAgfQorICB3b3Jr
ZXIucG9zdE1lc3NhZ2UoJycpOworICByZXR1cm4gYmluZEV2ZW50czIod29ya2VyLCAibWVzc2Fn
ZSIsIHdvcmtlciwgImVycm9yIikKKyAgICAudGhlbihldmVudCA9PiB3cmFwUmVzdWx0KGV2ZW50
LmRhdGEpKTsKK30KKworZnVuY3Rpb24gcmVxdWVzdFZpYVNoYXJlZFdvcmtlcih1cmwpIHsKKyAg
dmFyIHdvcmtlcjsKKyAgdHJ5IHsKKyAgICB3b3JrZXIgPSBuZXcgU2hhcmVkV29ya2VyKHVybCk7
CisgIH0gY2F0Y2goZSkgeworICAgIHJldHVybiBQcm9taXNlLnJlamVjdChlKTsKKyAgfQorICBj
b25zdCBwcm9taXNlID0gYmluZEV2ZW50czIod29ya2VyLnBvcnQsICJtZXNzYWdlIiwgd29ya2Vy
LCAiZXJyb3IiKQorICAgIC50aGVuKGV2ZW50ID0+IHdyYXBSZXN1bHQoZXZlbnQuZGF0YSkpOwor
ICB3b3JrZXIucG9ydC5zdGFydCgpOworICByZXR1cm4gcHJvbWlzZTsKK30KKworLy8gUmV0dXJu
cyBhIHJlZmVyZW5jZSB0byBhIHdvcmtsZXQgb2JqZWN0IGNvcnJlc3BvbmRpbmcgdG8gYSBnaXZl
biB0eXBlLgorZnVuY3Rpb24gZ2V0X3dvcmtsZXQodHlwZSkgeworICBpZiAodHlwZSA9PSAnYW5p
bWF0aW9uJykKKyAgICByZXR1cm4gQ1NTLmFuaW1hdGlvbldvcmtsZXQ7CisgIGlmICh0eXBlID09
ICdsYXlvdXQnKQorICAgIHJldHVybiBDU1MubGF5b3V0V29ya2xldDsKKyAgaWYgKHR5cGUgPT0g
J3BhaW50JykKKyAgICByZXR1cm4gQ1NTLnBhaW50V29ya2xldDsKKyAgaWYgKHR5cGUgPT0gJ2F1
ZGlvJykKKyAgICByZXR1cm4gbmV3IE9mZmxpbmVBdWRpb0NvbnRleHQoMiw0NDEwMCo0MCw0NDEw
MCkuYXVkaW9Xb3JrbGV0OworCisgIHRocm93IG5ldyBFcnJvcigndW5rbm93biB3b3JrbGV0IHR5
cGUgaXMgcGFzc2VkLicpOworfQorCitmdW5jdGlvbiByZXF1ZXN0VmlhV29ya2xldCh0eXBlLCB1
cmwpIHsKKyAgdHJ5IHsKKyAgICByZXR1cm4gZ2V0X3dvcmtsZXQodHlwZSkuYWRkTW9kdWxlKHVy
bCk7CisgIH0gY2F0Y2ggKGUpIHsKKyAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoZSk7CisgIH0K
K30KKworLyoqCisgKiBTZXRzIHRoZSBocmVmIGF0dHJpYnV0ZSBvbiBhIG5hdmlnYWJsZSBET00g
ZWxlbWVudCBhbmQgcGVyZm9ybXMgYSBuYXZpZ2F0aW9uCisgKiAgICAgYnkgY2xpY2tpbmcgaXQu
IFRvIGF2b2lkIG5hdmlnYXRpbmcgYXdheSBmcm9tIHRoZSBjdXJyZW50IGV4ZWN1dGlvbgorICog
ICAgIGNvbnRleHQsIGEgdGFyZ2V0IGF0dHJpYnV0ZSBpcyBzZXQgdG8gcG9pbnQgdG8gYSBuZXcg
aGVscGVyIGlmcmFtZS4KKyAqIEBwYXJhbSB7RE9NRWxlbWVudH0gbmF2aWdhYmxlRWxlbWVudCBU
aGUgbmF2aWdhYmxlIERPTUVsZW1lbnQKKyAqIEBwYXJhbSB7c3RyaW5nfSB1cmwgVGhlIGhyZWYg
Zm9yIHRoZSBuYXZpZ2FibGUgZWxlbWVudC4KKyAqIEByZXR1cm4ge1Byb21pc2V9IFRoZSBwcm9t
aXNlIGZvciBzdWNjZXNzL2Vycm9yIGV2ZW50cy4KKyAqLworZnVuY3Rpb24gcmVxdWVzdFZpYU5h
dmlnYWJsZShuYXZpZ2FibGVFbGVtZW50LCB1cmwpIHsKKyAgdmFyIGlmcmFtZSA9IGNyZWF0ZUhl
bHBlcklmcmFtZShndWlkKCksIGZhbHNlKTsKKyAgc2V0QXR0cmlidXRlcyhuYXZpZ2FibGVFbGVt
ZW50LAorICAgICAgICAgICAgICAgIHsiaHJlZiI6IHVybCwKKyAgICAgICAgICAgICAgICAgInRh
cmdldCI6IGlmcmFtZS5uYW1lfSk7CisKKyAgY29uc3QgcHJvbWlzZSA9CisgICAgYmluZEV2ZW50
czIod2luZG93LCAibWVzc2FnZSIsIGlmcmFtZSwgImVycm9yIiwgd2luZG93LCAiZXJyb3IiKQor
ICAgICAgLnRoZW4oZXZlbnQgPT4geworICAgICAgICAgIGlmIChldmVudC5zb3VyY2UgIT09IGlm
cmFtZS5jb250ZW50V2luZG93KQorICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KG5l
dyBFcnJvcignVW5leHBlY3RlZCBldmVudC5zb3VyY2UnKSk7CisgICAgICAgICAgcmV0dXJuIGV2
ZW50LmRhdGE7CisgICAgICAgIH0pOworICBuYXZpZ2FibGVFbGVtZW50LmNsaWNrKCk7CisgIHJl
dHVybiBwcm9taXNlOworfQorCisvKioKKyAqIENyZWF0ZXMgYSBuZXcgYW5jaG9yIGVsZW1lbnQs
IGFwcGVuZHMgaXQgdG8ge0Bjb2RlIGRvY3VtZW50LmJvZHl9IGFuZAorICogICAgIHBlcmZvcm1z
IHRoZSBuYXZpZ2F0aW9uLgorICogQHBhcmFtIHtzdHJpbmd9IHVybCBUaGUgVVJMIHRvIG5hdmln
YXRlIHRvLgorICogQHJldHVybiB7UHJvbWlzZX0gVGhlIHByb21pc2UgZm9yIHN1Y2Nlc3MvZXJy
b3IgZXZlbnRzLgorICovCitmdW5jdGlvbiByZXF1ZXN0VmlhQW5jaG9yKHVybCwgYWRkaXRpb25h
bEF0dHJpYnV0ZXMpIHsKKyAgdmFyIGEgPSBjcmVhdGVFbGVtZW50KAorICAgICAgImEiLAorICAg
ICAgT2JqZWN0LmFzc2lnbih7ImlubmVySFRNTCI6ICJMaW5rIHRvIHJlc291cmNlIn0sIGFkZGl0
aW9uYWxBdHRyaWJ1dGVzKSwKKyAgICAgIGRvY3VtZW50LmJvZHkpOworCisgIHJldHVybiByZXF1
ZXN0VmlhTmF2aWdhYmxlKGEsIHVybCk7Cit9CisKKy8qKgorICogQ3JlYXRlcyBhIG5ldyBhcmVh
IGVsZW1lbnQsIGFwcGVuZHMgaXQgdG8ge0Bjb2RlIGRvY3VtZW50LmJvZHl9IGFuZCBwZXJmb3Jt
cworICogICAgIHRoZSBuYXZpZ2F0aW9uLgorICogQHBhcmFtIHtzdHJpbmd9IHVybCBUaGUgVVJM
IHRvIG5hdmlnYXRlIHRvLgorICogQHJldHVybiB7UHJvbWlzZX0gVGhlIHByb21pc2UgZm9yIHN1
Y2Nlc3MvZXJyb3IgZXZlbnRzLgorICovCitmdW5jdGlvbiByZXF1ZXN0VmlhQXJlYSh1cmwsIGFk
ZGl0aW9uYWxBdHRyaWJ1dGVzKSB7CisgIHZhciBhcmVhID0gY3JlYXRlRWxlbWVudCgKKyAgICAg
ICJhcmVhIiwKKyAgICAgIE9iamVjdC5hc3NpZ24oe30sIGFkZGl0aW9uYWxBdHRyaWJ1dGVzKSwK
KyAgICAgIGRvY3VtZW50LmJvZHkpOworCisgIC8vIFRPRE8oa3Jpc3RpamFuYnVybmlrKTogQXBw
ZW5kIHRvIG1hcCBhbmQgYWRkIGltYWdlLgorICByZXR1cm4gcmVxdWVzdFZpYU5hdmlnYWJsZShh
cmVhLCB1cmwpOworfQorCisvKioKKyAqIENyZWF0ZXMgYSBuZXcgc2NyaXB0IGVsZW1lbnQsIHNl
dHMgdGhlIHNyYyB0byB1cmwsIGFuZCBhcHBlbmRzIGl0IHRvCisgKiAgICAge0Bjb2RlIGRvY3Vt
ZW50LmJvZHl9LgorICogQHBhcmFtIHtzdHJpbmd9IHVybCBUaGUgc3JjIFVSTC4KKyAqIEByZXR1
cm4ge1Byb21pc2V9IFRoZSBwcm9taXNlIGZvciBzdWNjZXNzL2Vycm9yIGV2ZW50cy4KKyAqLwor
ZnVuY3Rpb24gcmVxdWVzdFZpYVNjcmlwdCh1cmwsIGFkZGl0aW9uYWxBdHRyaWJ1dGVzKSB7Cisg
IGNvbnN0IHNjcmlwdCA9IGNyZWF0ZUVsZW1lbnQoCisgICAgICAic2NyaXB0IiwKKyAgICAgIE9i
amVjdC5hc3NpZ24oeyJzcmMiOiB1cmx9LCBhZGRpdGlvbmFsQXR0cmlidXRlcyksCisgICAgICBk
b2N1bWVudC5ib2R5LAorICAgICAgZmFsc2UpOworCisgIHJldHVybiBiaW5kRXZlbnRzMih3aW5k
b3csICJtZXNzYWdlIiwgc2NyaXB0LCAiZXJyb3IiLCB3aW5kb3csICJlcnJvciIpCisgICAgLnRo
ZW4oZXZlbnQgPT4gd3JhcFJlc3VsdChldmVudC5kYXRhKSk7Cit9CisKKy8qKgorICogQ3JlYXRl
cyBhIG5ldyBmb3JtIGVsZW1lbnQsIHNldHMgYXR0cmlidXRlcywgYXBwZW5kcyBpdCB0bworICog
ICAgIHtAY29kZSBkb2N1bWVudC5ib2R5fSBhbmQgc3VibWl0cyB0aGUgZm9ybS4KKyAqIEBwYXJh
bSB7c3RyaW5nfSB1cmwgVGhlIFVSTCB0byBzdWJtaXQgdG8uCisgKiBAcmV0dXJuIHtQcm9taXNl
fSBUaGUgcHJvbWlzZSBmb3Igc3VjY2Vzcy9lcnJvciBldmVudHMuCisgKi8KK2Z1bmN0aW9uIHJl
cXVlc3RWaWFGb3JtKHVybCkgeworICB2YXIgaWZyYW1lID0gY3JlYXRlSGVscGVySWZyYW1lKGd1
aWQoKSk7CisgIHZhciBmb3JtID0gY3JlYXRlRWxlbWVudCgiZm9ybSIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICB7ImFjdGlvbiI6IHVybCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAibWV0aG9kIjogIlBPU1QiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0YXJnZXQi
OiBpZnJhbWUubmFtZX0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5
KTsKKyAgYmluZEV2ZW50cyhpZnJhbWUpOworICBmb3JtLnN1Ym1pdCgpOworCisgIHJldHVybiBp
ZnJhbWUuZXZlbnRQcm9taXNlOworfQorCisvKioKKyAqIENyZWF0ZXMgYSBuZXcgbGluayBlbGVt
ZW50IGZvciBhIHN0eWxlc2hlZXQsIGJpbmRzIGxvYWQgYW5kIGVycm9yIGV2ZW50cywKKyAqICAg
ICBzZXRzIHRoZSBocmVmIHRvIHVybCBhbmQgYXBwZW5kcyBpdCB0byB7QGNvZGUgZG9jdW1lbnQu
aGVhZH0uCisgKiBAcGFyYW0ge3N0cmluZ30gdXJsIFRoZSBVUkwgZm9yIGEgc3R5bGVzaGVldC4K
KyAqIEByZXR1cm4ge1Byb21pc2V9IFRoZSBwcm9taXNlIGZvciBzdWNjZXNzL2Vycm9yIGV2ZW50
cy4KKyAqLworZnVuY3Rpb24gcmVxdWVzdFZpYUxpbmtTdHlsZXNoZWV0KHVybCkgeworICByZXR1
cm4gY3JlYXRlUmVxdWVzdFZpYUVsZW1lbnQoImxpbmsiLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgeyJyZWwiOiAic3R5bGVzaGVldCIsICJocmVmIjogdXJsfSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmhlYWQpOworfQorCisvKioKKyAqIENy
ZWF0ZXMgYSBuZXcgbGluayBlbGVtZW50IGZvciBhIHByZWZldGNoLCBiaW5kcyBsb2FkIGFuZCBl
cnJvciBldmVudHMsIHNldHMKKyAqICAgICB0aGUgaHJlZiB0byB1cmwgYW5kIGFwcGVuZHMgaXQg
dG8ge0Bjb2RlIGRvY3VtZW50LmhlYWR9LgorICogQHBhcmFtIHtzdHJpbmd9IHVybCBUaGUgVVJM
IG9mIGEgcmVzb3VyY2UgdG8gcHJlZmV0Y2guCisgKiBAcmV0dXJuIHtQcm9taXNlfSBUaGUgcHJv
bWlzZSBmb3Igc3VjY2Vzcy9lcnJvciBldmVudHMuCisgKi8KK2Z1bmN0aW9uIHJlcXVlc3RWaWFM
aW5rUHJlZmV0Y2godXJsKSB7CisgIHZhciBsaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgn
bGluaycpOworICBpZiAobGluay5yZWxMaXN0ICYmIGxpbmsucmVsTGlzdC5zdXBwb3J0cyAmJiBs
aW5rLnJlbExpc3Quc3VwcG9ydHMoInByZWZldGNoIikpIHsKKyAgICByZXR1cm4gY3JlYXRlUmVx
dWVzdFZpYUVsZW1lbnQoImxpbmsiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB7InJlbCI6ICJwcmVmZXRjaCIsICJocmVmIjogdXJsfSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZG9jdW1lbnQuaGVhZCk7CisgIH0gZWxzZSB7CisgICAgcmV0dXJuIFBy
b21pc2UucmVqZWN0KCJUaGlzIGJyb3dzZXIgZG9lcyBub3Qgc3VwcG9ydCAncHJlZmV0Y2gnLiIp
OworICB9Cit9CisKKy8qKgorICogSW5pdGlhdGVzIGEgbmV3IGJlYWNvbiByZXF1ZXN0LgorICog
QHBhcmFtIHtzdHJpbmd9IHVybCBUaGUgVVJMIG9mIGEgcmVzb3VyY2UgdG8gcHJlZmV0Y2guCisg
KiBAcmV0dXJuIHtQcm9taXNlfSBUaGUgcHJvbWlzZSBmb3Igc3VjY2Vzcy9lcnJvciBldmVudHMu
CisgKi8KK2FzeW5jIGZ1bmN0aW9uIHJlcXVlc3RWaWFTZW5kQmVhY29uKHVybCkgeworICBmdW5j
dGlvbiB3YWl0KG1zKSB7CisgICAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4gc3RlcF90
aW1lb3V0KHJlc29sdmUsIG1zKSk7CisgIH0KKyAgaWYgKCFuYXZpZ2F0b3Iuc2VuZEJlYWNvbih1
cmwpKSB7CisgICAgLy8gSWYgbWl4ZWQtY29udGVudCBjaGVjayBmYWlscywgaXQgc2hvdWxkIHJl
dHVybiBmYWxzZS4KKyAgICB0aHJvdyBuZXcgRXJyb3IoJ3NlbmRCZWFjb24oKSBmYWlscy4nKTsK
KyAgfQorICAvLyBXZSBkb24ndCBoYXZlIGEgbWVhbnMgdG8gc2VlIHRoZSByZXN1bHQgb2Ygc2Vu
ZEJlYWNvbigpIHJlcXVlc3QKKyAgLy8gZm9yIHN1cmUuIExldCdzIHdhaXQgZm9yIGEgd2hpbGUg
YW5kIGxldCB0aGUgZ2VuZXJpYyB0ZXN0IGZ1bmN0aW9uCisgIC8vIGFzayB0aGUgc2VydmVyIGZv
ciB0aGUgcmVzdWx0LgorICBhd2FpdCB3YWl0KDUwMCk7CisgIHJldHVybiAnYWxsb3dlZCc7Cit9
CisKKy8qKgorICogQ3JlYXRlcyBhIG5ldyBtZWRpYSBlbGVtZW50IHdpdGggYSBjaGlsZCBzb3Vy
Y2UgZWxlbWVudCwgYmluZHMgbG9hZGVkZGF0YSBhbmQKKyAqICAgICBlcnJvciBldmVudHMsIHNl
dHMgYXR0cmlidXRlcyBhbmQgYXBwZW5kcyB0byBkb2N1bWVudC5ib2R5LgorICogQHBhcmFtIHtz
dHJpbmd9IHR5cGUgVGhlIHR5cGUgb2YgdGhlIG1lZGlhIGVsZW1lbnQgKGF1ZGlvL3ZpZGVvL3Bp
Y3R1cmUpLgorICogQHBhcmFtIHtvYmplY3R9IG1lZGlhX2F0dHJzIFRoZSBhdHRyaWJ1dGVzIGZv
ciB0aGUgbWVkaWEgZWxlbWVudC4KKyAqIEBwYXJhbSB7b2JqZWN0fSBzb3VyY2VfYXR0cnMgVGhl
IGF0dHJpYnV0ZXMgZm9yIHRoZSBjaGlsZCBzb3VyY2UgZWxlbWVudC4KKyAqIEByZXR1cm4ge0RP
TUVsZW1lbnR9IFRoZSBuZXdseSBjcmVhdGVkIG1lZGlhIGVsZW1lbnQuCisgKi8KK2Z1bmN0aW9u
IGNyZWF0ZU1lZGlhRWxlbWVudCh0eXBlLCBtZWRpYV9hdHRycywgc291cmNlX2F0dHJzKSB7Cisg
IHZhciBtZWRpYUVsZW1lbnQgPSBjcmVhdGVFbGVtZW50KHR5cGUsIHt9KTsKKworICB2YXIgc291
cmNlRWxlbWVudCA9IGNyZWF0ZUVsZW1lbnQoInNvdXJjZSIsIHt9KTsKKworICBtZWRpYUVsZW1l
bnQuZXZlbnRQcm9taXNlID0gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7
CisgICAgbWVkaWFFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImxvYWRlZGRhdGEiLCBmdW5jdGlv
biAoZSkgeworICAgICAgcmVzb2x2ZShlKTsKKyAgICB9KTsKKworICAgIC8vIFNhZmFyaSBkb2Vz
bid0IGZpcmUgYW4gYGVycm9yYCBldmVudCB3aGVuIGJsb2NraW5nIG1peGVkIGNvbnRlbnQuCisg
ICAgbWVkaWFFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoInN0YWxsZWQiLCBmdW5jdGlvbihlKSB7
CisgICAgICByZWplY3QoZSk7CisgICAgfSk7CisKKyAgICBzb3VyY2VFbGVtZW50LmFkZEV2ZW50
TGlzdGVuZXIoImVycm9yIiwgZnVuY3Rpb24oZSkgeworICAgICAgcmVqZWN0KGUpOworICAgIH0p
OworICB9KTsKKworICBzZXRBdHRyaWJ1dGVzKG1lZGlhRWxlbWVudCwgbWVkaWFfYXR0cnMpOwor
ICBzZXRBdHRyaWJ1dGVzKHNvdXJjZUVsZW1lbnQsIHNvdXJjZV9hdHRycyk7CisKKyAgbWVkaWFF
bGVtZW50LmFwcGVuZENoaWxkKHNvdXJjZUVsZW1lbnQpOworICBkb2N1bWVudC5ib2R5LmFwcGVu
ZENoaWxkKG1lZGlhRWxlbWVudCk7CisKKyAgcmV0dXJuIG1lZGlhRWxlbWVudDsKK30KKworLyoq
CisgKiBDcmVhdGVzIGEgbmV3IHZpZGVvIGVsZW1lbnQsIGJpbmRzIGxvYWRlZGRhdGEgYW5kIGVy
cm9yIGV2ZW50cywgc2V0cworICogICAgIGF0dHJpYnV0ZXMgYW5kIHNvdXJjZSBVUkwgYW5kIGFw
cGVuZHMgdG8ge0Bjb2RlIGRvY3VtZW50LmJvZHl9LgorICogQHBhcmFtIHtzdHJpbmd9IHVybCBU
aGUgVVJMIG9mIHRoZSB2aWRlby4KKyAqIEByZXR1cm4ge1Byb21pc2V9IFRoZSBwcm9taXNlIGZv
ciBzdWNjZXNzL2Vycm9yIGV2ZW50cy4KKyAqLworZnVuY3Rpb24gcmVxdWVzdFZpYVZpZGVvKHVy
bCkgeworICByZXR1cm4gY3JlYXRlTWVkaWFFbGVtZW50KCJ2aWRlbyIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAge30sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyJzcmMiOiB1
cmx9KS5ldmVudFByb21pc2U7Cit9CisKKy8qKgorICogQ3JlYXRlcyBhIG5ldyBhdWRpbyBlbGVt
ZW50LCBiaW5kcyBsb2FkZWRkYXRhIGFuZCBlcnJvciBldmVudHMsIHNldHMKKyAqICAgICBhdHRy
aWJ1dGVzIGFuZCBzb3VyY2UgVVJMIGFuZCBhcHBlbmRzIHRvIHtAY29kZSBkb2N1bWVudC5ib2R5
fS4KKyAqIEBwYXJhbSB7c3RyaW5nfSB1cmwgVGhlIFVSTCBvZiB0aGUgYXVkaW8uCisgKiBAcmV0
dXJuIHtQcm9taXNlfSBUaGUgcHJvbWlzZSBmb3Igc3VjY2Vzcy9lcnJvciBldmVudHMuCisgKi8K
K2Z1bmN0aW9uIHJlcXVlc3RWaWFBdWRpbyh1cmwpIHsKKyAgcmV0dXJuIGNyZWF0ZU1lZGlhRWxl
bWVudCgiYXVkaW8iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt9LAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHsidHlwZSI6ICJhdWRpby93YXYiLCAic3JjIjogdXJsfSkuZXZl
bnRQcm9taXNlOworfQorCisvKioKKyAqIENyZWF0ZXMgYSBuZXcgcGljdHVyZSBlbGVtZW50LCBi
aW5kcyBsb2FkZWRkYXRhIGFuZCBlcnJvciBldmVudHMsIHNldHMKKyAqICAgICBhdHRyaWJ1dGVz
IGFuZCBzb3VyY2UgVVJMIGFuZCBhcHBlbmRzIHRvIHtAY29kZSBkb2N1bWVudC5ib2R5fS4gQWxz
bworICogICAgIGNyZWF0ZXMgbmV3IGltYWdlIGVsZW1lbnQgYXBwZW5kaW5nIGl0IHRvIHRoZSBw
aWN0dXJlCisgKiBAcGFyYW0ge3N0cmluZ30gdXJsIFRoZSBVUkwgb2YgdGhlIGltYWdlIGZvciB0
aGUgc291cmNlIGFuZCBpbWFnZSBlbGVtZW50cy4KKyAqIEByZXR1cm4ge1Byb21pc2V9IFRoZSBw
cm9taXNlIGZvciBzdWNjZXNzL2Vycm9yIGV2ZW50cy4KKyAqLworZnVuY3Rpb24gcmVxdWVzdFZp
YVBpY3R1cmUodXJsKSB7CisgIHZhciBwaWN0dXJlID0gY3JlYXRlTWVkaWFFbGVtZW50KCJwaWN0
dXJlIiwge30sIHsic3Jjc2V0IjogdXJsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgInR5cGUiOiAiaW1hZ2UvcG5nIn0pOworICByZXR1cm4gY3JlYXRl
UmVxdWVzdFZpYUVsZW1lbnQoImltZyIsIHsic3JjIjogdXJsfSwgcGljdHVyZSk7Cit9CisKKy8q
KgorICogQ3JlYXRlcyBhIG5ldyBvYmplY3QgZWxlbWVudCwgYmluZHMgbG9hZCBhbmQgZXJyb3Ig
ZXZlbnRzLCBzZXRzIHRoZSBkYXRhIHRvCisgKiAgICAgdXJsLCBhbmQgYXBwZW5kcyBpdCB0byB7
QGNvZGUgZG9jdW1lbnQuYm9keX0uCisgKiBAcGFyYW0ge3N0cmluZ30gdXJsIFRoZSBkYXRhIFVS
TC4KKyAqIEByZXR1cm4ge1Byb21pc2V9IFRoZSBwcm9taXNlIGZvciBzdWNjZXNzL2Vycm9yIGV2
ZW50cy4KKyAqLworZnVuY3Rpb24gcmVxdWVzdFZpYU9iamVjdCh1cmwpIHsKKyAgcmV0dXJuIGNy
ZWF0ZVJlcXVlc3RWaWFFbGVtZW50KCJvYmplY3QiLCB7ImRhdGEiOiB1cmwsICJ0eXBlIjogInRl
eHQvaHRtbCJ9LCBkb2N1bWVudC5ib2R5KTsKK30KKworLyoqCisgKiBDcmVhdGVzIGEgbmV3IFdl
YlNvY2tldCBwb2ludGluZyB0byB7QGNvZGUgdXJsfSBhbmQgc2VuZHMgYSBtZXNzYWdlIHN0cmlu
ZworICogImVjaG8iLiBUaGUge0Bjb2RlIG1lc3NhZ2V9IGFuZCB7QGNvZGUgZXJyb3J9IGV2ZW50
cyBhcmUgdHJpZ2dlcmluZyB0aGUKKyAqIHJldHVybmVkIHByb21pc2UgcmVzb2x2ZS9yZWplY3Qg
ZXZlbnRzLgorICogQHBhcmFtIHtzdHJpbmd9IHVybCBUaGUgVVJMIGZvciBXZWJTb2NrZXQgdG8g
Y29ubmVjdCB0by4KKyAqIEByZXR1cm4ge1Byb21pc2V9IFRoZSBwcm9taXNlIGZvciBzdWNjZXNz
L2Vycm9yIGV2ZW50cy4KKyAqLworZnVuY3Rpb24gcmVxdWVzdFZpYVdlYlNvY2tldCh1cmwpIHsK
KyAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgeworICAgIHZh
ciB3ZWJzb2NrZXQgPSBuZXcgV2ViU29ja2V0KHVybCk7CisKKyAgICB3ZWJzb2NrZXQuYWRkRXZl
bnRMaXN0ZW5lcigibWVzc2FnZSIsIGZ1bmN0aW9uKGUpIHsKKyAgICAgIHJlc29sdmUoZS5kYXRh
KTsKKyAgICB9KTsKKworICAgIHdlYnNvY2tldC5hZGRFdmVudExpc3RlbmVyKCJvcGVuIiwgZnVu
Y3Rpb24oZSkgeworICAgICAgd2Vic29ja2V0LnNlbmQoImVjaG8iKTsKKyAgICB9KTsKKworICAg
IHdlYnNvY2tldC5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsIGZ1bmN0aW9uKGUpIHsKKyAgICAg
IHJlamVjdChlKQorICAgIH0pOworICB9KQorICAudGhlbihkYXRhID0+IHsKKyAgICAgIHJldHVy
biBKU09OLnBhcnNlKGRhdGEpOworICAgIH0pOworfQorCisvKioKKyAgQHR5cGVkZWYgU3VicmVz
b3VyY2VUeXBlCisgIEB0eXBlIHtzdHJpbmd9CisKKyAgUmVwcmVzZW50cyBob3cgYSBzdWJyZXNv
dXJjZSBpcyBzZW50LgorICBUaGUga2V5cyBvZiBgc3VicmVzb3VyY2VNYXBgIGJlbG93IGFyZSB0
aGUgdmFsaWQgdmFsdWVzLgorKi8KKworLy8gU3VicmVzb3VyY2UgcGF0aHMgYW5kIGludm9rZXJz
LgorY29uc3Qgc3VicmVzb3VyY2VNYXAgPSB7CisgICJhLXRhZyI6IHsKKyAgICBwYXRoOiAiL2Nv
bW1vbi9zZWN1cml0eS1mZWF0dXJlcy9zdWJyZXNvdXJjZS9kb2N1bWVudC5weSIsCisgICAgaW52
b2tlcjogcmVxdWVzdFZpYUFuY2hvciwKKyAgfSwKKyAgImFyZWEtdGFnIjogeworICAgIHBhdGg6
ICIvY29tbW9uL3NlY3VyaXR5LWZlYXR1cmVzL3N1YnJlc291cmNlL2RvY3VtZW50LnB5IiwKKyAg
ICBpbnZva2VyOiByZXF1ZXN0VmlhQXJlYSwKKyAgfSwKKyAgImF1ZGlvLXRhZyI6IHsKKyAgICBw
YXRoOiAiL2NvbW1vbi9zZWN1cml0eS1mZWF0dXJlcy9zdWJyZXNvdXJjZS9hdWRpby5weSIsCisg
ICAgaW52b2tlcjogcmVxdWVzdFZpYUF1ZGlvLAorICB9LAorICAiYmVhY29uIjogeworICAgIHBh
dGg6ICIvY29tbW9uL3NlY3VyaXR5LWZlYXR1cmVzL3N1YnJlc291cmNlL2VtcHR5LnB5IiwKKyAg
ICBpbnZva2VyOiByZXF1ZXN0VmlhU2VuZEJlYWNvbiwKKyAgfSwKKyAgImZldGNoIjogeworICAg
IHBhdGg6ICIvY29tbW9uL3NlY3VyaXR5LWZlYXR1cmVzL3N1YnJlc291cmNlL3hoci5weSIsCisg
ICAgaW52b2tlcjogcmVxdWVzdFZpYUZldGNoLAorICB9LAorICAiZm9ybS10YWciOiB7CisgICAg
cGF0aDogIi9jb21tb24vc2VjdXJpdHktZmVhdHVyZXMvc3VicmVzb3VyY2UvZW1wdHkucHkiLAor
ICAgIGludm9rZXI6IHJlcXVlc3RWaWFGb3JtLAorICB9LAorICAiaWZyYW1lLXRhZyI6IHsKKyAg
ICBwYXRoOiAiL2NvbW1vbi9zZWN1cml0eS1mZWF0dXJlcy9zdWJyZXNvdXJjZS9kb2N1bWVudC5w
eSIsCisgICAgaW52b2tlcjogcmVxdWVzdFZpYUlmcmFtZSwKKyAgfSwKKyAgImltZy10YWciOiB7
CisgICAgcGF0aDogIi9jb21tb24vc2VjdXJpdHktZmVhdHVyZXMvc3VicmVzb3VyY2UvaW1hZ2Uu
cHkiLAorICAgIGludm9rZXI6IHJlcXVlc3RWaWFJbWFnZSwKKyAgfSwKKyAgImxpbmstY3NzLXRh
ZyI6IHsKKyAgICBwYXRoOiAiL2NvbW1vbi9zZWN1cml0eS1mZWF0dXJlcy9zdWJyZXNvdXJjZS9l
bXB0eS5weSIsCisgICAgaW52b2tlcjogcmVxdWVzdFZpYUxpbmtTdHlsZXNoZWV0LAorICB9LAor
ICAibGluay1wcmVmZXRjaC10YWciOiB7CisgICAgcGF0aDogIi9jb21tb24vc2VjdXJpdHktZmVh
dHVyZXMvc3VicmVzb3VyY2UvZW1wdHkucHkiLAorICAgIGludm9rZXI6IHJlcXVlc3RWaWFMaW5r
UHJlZmV0Y2gsCisgIH0sCisgICJvYmplY3QtdGFnIjogeworICAgIHBhdGg6ICIvY29tbW9uL3Nl
Y3VyaXR5LWZlYXR1cmVzL3N1YnJlc291cmNlL2VtcHR5LnB5IiwKKyAgICBpbnZva2VyOiByZXF1
ZXN0VmlhT2JqZWN0LAorICB9LAorICAicGljdHVyZS10YWciOiB7CisgICAgcGF0aDogIi9jb21t
b24vc2VjdXJpdHktZmVhdHVyZXMvc3VicmVzb3VyY2UvaW1hZ2UucHkiLAorICAgIGludm9rZXI6
IHJlcXVlc3RWaWFQaWN0dXJlLAorICB9LAorICAic2NyaXB0LXRhZyI6IHsKKyAgICBwYXRoOiAi
L2NvbW1vbi9zZWN1cml0eS1mZWF0dXJlcy9zdWJyZXNvdXJjZS9zY3JpcHQucHkiLAorICAgIGlu
dm9rZXI6IHJlcXVlc3RWaWFTY3JpcHQsCisgIH0sCisgICJ2aWRlby10YWciOiB7CisgICAgcGF0
aDogIi9jb21tb24vc2VjdXJpdHktZmVhdHVyZXMvc3VicmVzb3VyY2UvdmlkZW8ucHkiLAorICAg
IGludm9rZXI6IHJlcXVlc3RWaWFWaWRlbywKKyAgfSwKKyAgInhociI6IHsKKyAgICBwYXRoOiAi
L2NvbW1vbi9zZWN1cml0eS1mZWF0dXJlcy9zdWJyZXNvdXJjZS94aHIucHkiLAorICAgIGludm9r
ZXI6IHJlcXVlc3RWaWFYaHIsCisgIH0sCisKKyAgIndvcmtlci1jbGFzc2ljIjogeworICAgIHBh
dGg6ICIvY29tbW9uL3NlY3VyaXR5LWZlYXR1cmVzL3N1YnJlc291cmNlL3dvcmtlci5weSIsCisg
ICAgaW52b2tlcjogdXJsID0+IHJlcXVlc3RWaWFEZWRpY2F0ZWRXb3JrZXIodXJsKSwKKyAgfSwK
KyAgIndvcmtlci1tb2R1bGUiOiB7CisgICAgcGF0aDogIi9jb21tb24vc2VjdXJpdHktZmVhdHVy
ZXMvc3VicmVzb3VyY2Uvd29ya2VyLnB5IiwKKyAgICBpbnZva2VyOiB1cmwgPT4gcmVxdWVzdFZp
YURlZGljYXRlZFdvcmtlcih1cmwsIHt0eXBlOiAibW9kdWxlIn0pLAorICB9LAorICAid29ya2Vy
LWltcG9ydC1kYXRhIjogeworICAgIHBhdGg6ICIvY29tbW9uL3NlY3VyaXR5LWZlYXR1cmVzL3N1
YnJlc291cmNlL3dvcmtlci5weSIsCisgICAgaW52b2tlcjogdXJsID0+CisgICAgICAgIHJlcXVl
c3RWaWFEZWRpY2F0ZWRXb3JrZXIod29ya2VyVXJsVGhhdEltcG9ydHModXJsKSwge3R5cGU6ICJt
b2R1bGUifSksCisgIH0sCisgICJzaGFyZWR3b3JrZXItY2xhc3NpYyI6IHsKKyAgICBwYXRoOiAi
L2NvbW1vbi9zZWN1cml0eS1mZWF0dXJlcy9zdWJyZXNvdXJjZS9zaGFyZWQtd29ya2VyLnB5IiwK
KyAgICBpbnZva2VyOiByZXF1ZXN0VmlhU2hhcmVkV29ya2VyLAorICB9LAorCisgICJ3ZWJzb2Nr
ZXQiOiB7CisgICAgcGF0aDogIi9zdGFzaF9yZXNwb25kZXIiLAorICAgIGludm9rZXI6IHJlcXVl
c3RWaWFXZWJTb2NrZXQsCisgIH0sCit9OworZm9yIChjb25zdCB3b3JrbGV0VHlwZSBvZiBbJ2Fu
aW1hdGlvbicsICdhdWRpbycsICdsYXlvdXQnLCAncGFpbnQnXSkgeworICBzdWJyZXNvdXJjZU1h
cFtgd29ya2xldC0ke3dvcmtsZXRUeXBlfWBdID0geworICAgICAgcGF0aDogIi9jb21tb24vc2Vj
dXJpdHktZmVhdHVyZXMvc3VicmVzb3VyY2Uvd29ya2VyLnB5IiwKKyAgICAgIGludm9rZXI6IHVy
bCA9PiByZXF1ZXN0VmlhV29ya2xldCh3b3JrbGV0VHlwZSwgdXJsKQorICAgIH07CisgIHN1YnJl
c291cmNlTWFwW2B3b3JrbGV0LSR7d29ya2xldFR5cGV9LWltcG9ydC1kYXRhYF0gPSB7CisgICAg
ICBwYXRoOiAiL2NvbW1vbi9zZWN1cml0eS1mZWF0dXJlcy9zdWJyZXNvdXJjZS93b3JrZXIucHki
LAorICAgICAgaW52b2tlcjogdXJsID0+CisgICAgICAgICAgcmVxdWVzdFZpYVdvcmtsZXQod29y
a2xldFR5cGUsIHdvcmtlclVybFRoYXRJbXBvcnRzKHVybCkpCisgICAgfTsKK30KKworLyoqCisg
IEB0eXBlZGVmIFJlZGlyZWN0aW9uVHlwZQorICBAdHlwZSB7c3RyaW5nfQorCisgIFJlcHJlc2Vu
dHMgd2hhdCByZWRpcmVjdHMgc2hvdWxkIG9jY3VyIHRvIHRoZSBzdWJyZXNvdXJjZSByZXF1ZXN0
CisgIGFmdGVyIGluaXRpYWwgcmVxdWVzdC4KKyAgU2VlIHByZXByb2Nlc3NfcmVkaXJlY3Rpb24o
KSBpbgorICAvY29tbW9uL3NlY3VyaXR5LWZlYXR1cmVzL3N1YnJlc291cmNlL3N1YnJlc291cmNl
LnB5IGZvciB2YWxpZCB2YWx1ZXMuCisqLworCisvKioKKyAgQ29uc3RydWN0IHN1YnJlc291cmNl
IChhbmQgcmVsYXRlZCkgb3JpZ2luLgorCisgIEBwYXJhbSB7c3RyaW5nfSBvcmlnaW5UeXBlCisg
IEByZXR1cm5zIHtvYmplY3R9IHRoZSBvcmlnaW4gb2YgdGhlIHN1YnJlc291cmNlLgorKi8KK2Z1
bmN0aW9uIGdldFN1YnJlc291cmNlT3JpZ2luKG9yaWdpblR5cGUpIHsKKyAgY29uc3QgaHR0cFBy
b3RvY29sID0gImh0dHAiOworICBjb25zdCBodHRwc1Byb3RvY29sID0gImh0dHBzIjsKKyAgY29u
c3Qgd3NQcm90b2NvbCA9ICJ3cyI7CisgIGNvbnN0IHdzc1Byb3RvY29sID0gIndzcyI7CisKKyAg
Y29uc3Qgc2FtZU9yaWdpbkhvc3QgPSAie3tob3N0fX0iOworICBjb25zdCBjcm9zc09yaWdpbkhv
c3QgPSAie3tkb21haW5zW3d3dzFdfX0iOworCisgIC8vIFRoZXNlIHZhbHVlcyBjYW4gZXZhbHVh
dGUgdG8gZWl0aGVyIGVtcHR5IHN0cmluZ3Mgb3IgYSAiOnBvcnQiIHN0cmluZy4KKyAgY29uc3Qg
aHR0cFBvcnQgPSBnZXROb3JtYWxpemVkUG9ydChwYXJzZUludCgie3twb3J0c1todHRwXVswXX19
IiwgMTApKTsKKyAgY29uc3QgaHR0cHNQb3J0ID0gZ2V0Tm9ybWFsaXplZFBvcnQocGFyc2VJbnQo
Int7cG9ydHNbaHR0cHNdWzBdfX0iLCAxMCkpOworICBjb25zdCB3c1BvcnQgPSBnZXROb3JtYWxp
emVkUG9ydChwYXJzZUludCgie3twb3J0c1t3c11bMF19fSIsIDEwKSk7CisgIGNvbnN0IHdzc1Bv
cnQgPSBnZXROb3JtYWxpemVkUG9ydChwYXJzZUludCgie3twb3J0c1t3c3NdWzBdfX0iLCAxMCkp
OworCisgIC8qKgorICAgIEB0eXBlZGVmIE9yaWdpblR5cGUKKyAgICBAdHlwZSB7c3RyaW5nfQor
CisgICAgUmVwcmVzZW50cyB0aGUgb3JpZ2luIG9mIHRoZSBzdWJyZXNvdXJjZSByZXF1ZXN0IFVS
TC4KKyAgICBUaGUga2V5cyBvZiBgb3JpZ2luTWFwYCBiZWxvdyBhcmUgdGhlIHZhbGlkIHZhbHVl
cy4KKworICAgIE5vdGUgdGhhdCB0aGVyZSBjYW4gYmUgcmVkaXJlY3RzIGZyb20gdGhlIHNwZWNp
ZmllZCBvcmlnaW4KKyAgICAoc2VlIFJlZGlyZWN0aW9uVHlwZSksIGFuZCB0aHVzIHRoZSBvcmln
aW4gb2YgdGhlIHN1YnJlc291cmNlCisgICAgcmVzcG9uc2UgVVJMIG1pZ2h0IGJlIGRpZmZlcmVu
dCBmcm9tIHdoYXQgaXMgc3BlY2lmaWVkIGJ5IE9yaWdpblR5cGUuCisgICovCisgIGNvbnN0IG9y
aWdpbk1hcCA9IHsKKyAgICAic2FtZS1odHRwcyI6IGh0dHBzUHJvdG9jb2wgKyAiOi8vIiArIHNh
bWVPcmlnaW5Ib3N0ICsgaHR0cHNQb3J0LAorICAgICJzYW1lLWh0dHAiOiBodHRwUHJvdG9jb2wg
KyAiOi8vIiArIHNhbWVPcmlnaW5Ib3N0ICsgaHR0cFBvcnQsCisgICAgImNyb3NzLWh0dHBzIjog
aHR0cHNQcm90b2NvbCArICI6Ly8iICsgY3Jvc3NPcmlnaW5Ib3N0ICsgaHR0cHNQb3J0LAorICAg
ICJjcm9zcy1odHRwIjogaHR0cFByb3RvY29sICsgIjovLyIgKyBjcm9zc09yaWdpbkhvc3QgKyBo
dHRwUG9ydCwKKyAgICAic2FtZS13c3MiOiB3c3NQcm90b2NvbCArICI6Ly8iICsgc2FtZU9yaWdp
bkhvc3QgKyB3c3NQb3J0LAorICAgICJzYW1lLXdzIjogd3NQcm90b2NvbCArICI6Ly8iICsgc2Ft
ZU9yaWdpbkhvc3QgKyB3c1BvcnQsCisgICAgImNyb3NzLXdzcyI6IHdzc1Byb3RvY29sICsgIjov
LyIgKyBjcm9zc09yaWdpbkhvc3QgKyB3c3NQb3J0LAorICAgICJjcm9zcy13cyI6IHdzUHJvdG9j
b2wgKyAiOi8vIiArIGNyb3NzT3JpZ2luSG9zdCArIHdzUG9ydCwKKyAgfTsKKworICByZXR1cm4g
b3JpZ2luTWFwW29yaWdpblR5cGVdOworfQorCisvKioKKyAgQ29uc3RydWN0IHN1YnJlc291cmNl
IChhbmQgcmVsYXRlZCkgVVJMcy4KKworICBAcGFyYW0ge1N1YnJlc291cmNlVHlwZX0gc3VicmVz
b3VyY2VUeXBlCisgIEBwYXJhbSB7T3JpZ2luVHlwZX0gb3JpZ2luVHlwZQorICBAcGFyYW0ge1Jl
ZGlyZWN0aW9uVHlwZX0gcmVkaXJlY3Rpb25UeXBlCisgIEByZXR1cm5zIHtvYmplY3R9IHdpdGgg
Zm9sbG93aW5nIHByb3BlcnRpZXM6CisgICAge3N0cmluZ30gdGVzdFVybAorICAgICAgVGhlIHN1
YnJlc291cmNlIHJlcXVlc3QgVVJMLgorICAgIHtzdHJpbmd9IGFubm91bmNlVXJsCisgICAge3N0
cmluZ30gYXNzZXJ0VXJsCisgICAgICBUaGUgVVJMcyB0byBiZSB1c2VkIGZvciBkZXRlY3Rpbmcg
d2hldGhlciBgdGVzdFVybGAgaXMgYWN0dWFsbHkgc2VudAorICAgICAgdG8gdGhlIHNlcnZlci4K
KyAgICAgIDEuIEZldGNoIGBhbm5vdW5jZVVybGAgZmlyc3QsCisgICAgICAyLiB0aGVuIHBvc3Np
Ymx5IGZldGNoIGB0ZXN0VXJsYCwgYW5kCisgICAgICAzLiBmaW5hbGx5IGZldGNoIGBhc3NlcnRV
cmxgLgorICAgICAgICAgVGhlIGZldGNoIHJlc3VsdCBvZiBgYXNzZXJ0VXJsYCBzaG91bGQgaW5k
aWNhdGUgd2hldGhlcgorICAgICAgICAgYHRlc3RVcmxgIGlzIGFjdHVhbGx5IHNlbnQgdG8gdGhl
IHNlcnZlciBvciBub3QuCisqLworZnVuY3Rpb24gZ2V0UmVxdWVzdFVSTHMoc3VicmVzb3VyY2VU
eXBlLCBvcmlnaW5UeXBlLCByZWRpcmVjdGlvblR5cGUpIHsKKyAgY29uc3Qga2V5ID0gZ3VpZCgp
OworICBjb25zdCB2YWx1ZSA9IGd1aWQoKTsKKworICAvLyBXZSB1c2UgdGhlIHNhbWUgc3Rhc2gg
cGF0aCBmb3IgYm90aCBIVFRQL1MgYW5kIFdTL1Mgc3Rhc2ggcmVxdWVzdHMuCisgIGNvbnN0IHN0
YXNoUGF0aCA9IGVuY29kZVVSSUNvbXBvbmVudCgiL21peGVkLWNvbnRlbnQiKTsKKworICBjb25z
dCBzdGFzaEVuZHBvaW50ID0gIi9jb21tb24vc2VjdXJpdHktZmVhdHVyZXMvc3VicmVzb3VyY2Uv
eGhyLnB5P2tleT0iICsKKyAgICAgICAgICAgICAgICAgICAgICAgIGtleSArICImcGF0aD0iICsg
c3Rhc2hQYXRoOworICByZXR1cm4geworICAgIHRlc3RVcmw6CisgICAgICBnZXRTdWJyZXNvdXJj
ZU9yaWdpbihvcmlnaW5UeXBlKSArCisgICAgICAgIHN1YnJlc291cmNlTWFwW3N1YnJlc291cmNl
VHlwZV0ucGF0aCArCisgICAgICAgICI/cmVkaXJlY3Rpb249IiArIGVuY29kZVVSSUNvbXBvbmVu
dChyZWRpcmVjdGlvblR5cGUpICsKKyAgICAgICAgIiZhY3Rpb249cHVyZ2Uma2V5PSIgKyBrZXkg
KworICAgICAgICAiJnBhdGg9IiArIHN0YXNoUGF0aCwKKyAgICBhbm5vdW5jZVVybDogc3Rhc2hF
bmRwb2ludCArICImYWN0aW9uPXB1dCZ2YWx1ZT0iICsgdmFsdWUsCisgICAgYXNzZXJ0VXJsOiBz
dGFzaEVuZHBvaW50ICsgIiZhY3Rpb249dGFrZSIsCisgIH07Cit9CisKKy8vID09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLy8g
U291cmNlIENvbnRleHQKKy8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQorLy8gUmVxdWVzdHMgY2FuIGJlIHNlbnQgZnJvbSBz
ZXZlcmFsIHNvdXJjZSBjb250ZXh0cywKKy8vIHN1Y2ggYXMgdGhlIG1haW4gZG9jdW1lbnRzLCBp
ZnJhbWVzLCB3b3JrZXJzLCBvciBzbywKKy8vIHBvc3NpYmx5IG5lc3RlZCwgYW5kIHBvc3NpYmx5
IHdpdGggPG1ldGE+L2h0dHAgaGVhZGVycyBhZGRlZC4KKy8vIGludm9rZVJlcXVlc3QoKSBhbmQg
aW52b2tlRnJvbSooKSBmdW5jdGlvbnMgaGFuZGxlcworLy8gU291cmNlQ29udGV4dC1yZWxhdGVk
IHNldHVwIGluIGNsaWVudC1zaWRlLgorCisvKioKKyAgaW52b2tlUmVxdWVzdCgpIGludm9rZXMg
YSBzdWJyZXNvdXJjZSByZXF1ZXN0CisgIChzcGVjaWZpZWQgYXMgYHN1YnJlc291cmNlYCkKKyAg
ZnJvbSBhIChwb3NzaWJseSBuZXN0ZWQpIGVudmlyb25tZW50IHNldHRpbmdzIG9iamVjdAorICAo
c3BlY2lmaWVkIGFzIGBzb3VyY2VDb250ZXh0TGlzdGApLgorCisgIEZvciBuZXN0ZWQgY29udGV4
dHMsIGludm9rZVJlcXVlc3QoKSBjYWxscyBhbiBpbnZva2VGcm9tKigpIGZ1bmN0aW9uCisgIHRo
YXQgY3JlYXRlcyBhIG5lc3RlZCBlbnZpcm9ubWVudCBzZXR0aW5ncyBvYmplY3QgdXNpbmcKKyAg
L2NvbW1vbi9zZWN1cml0eS1mZWF0dXJlcy9zY29wZS8sIHdoaWNoIGNhbGxzIGludm9rZVJlcXVl
c3QoKQorICBhZ2FpbiBpbnNpZGUgdGhlIG5lc3RlZCBlbnZpcm9ubWVudCBzZXR0aW5ncyBvYmpl
Y3QuCisgIFRoaXMgY3ljbGUgY29udGludWVzIHVudGlsIGFsbCBzcGVjaWZpZWQKKyAgbmVzdGVk
IGVudmlyb25tZW50IHNldHRpbmdzIG9iamVjdCBhcmUgY3JlYXRlZCwgYW5kCisgIGZpbmFsbHkg
aW52b2tlUmVxdWVzdCgpIGNhbGxzIGEgcmVxdWVzdFZpYSooKSBmdW5jdGlvbiB0byBzdGFydCB0
aGUKKyAgc3VicmVzb3VyY2UgcmVxdWVzdCBmcm9tIHRoZSBpbm5lci1tb3N0IGVudmlyb25tZW50
IHNldHRpbmdzIG9iamVjdC4KKworICBAcGFyYW0ge1N1YnJlc291cmNlfSBzdWJyZXNvdXJjZQor
ICBAcGFyYW0ge0FycmF5PFNvdXJjZUNvbnRleHQ+fSBzb3VyY2VDb250ZXh0TGlzdAorCisgIEBy
ZXR1cm5zIHtQcm9taXNlfSBBIHByb21pc2UgdGhhdCBpcyByZXNvbHZlZCB3aXRoIGFuIFJlcXVl
c3RSZXN1bHQgb2JqZWN0LgorICBgc291cmNlQ29udGV4dFVybGAgaXMgYWx3YXlzIHNldC4gRm9y
IHdoZXRoZXIgb3RoZXIgcHJvcGVydGllcyBhcmUgc2V0LAorICBzZWUgdGhlIGNvbW1lbnRzIGZv
ciByZXF1ZXN0VmlhKigpIGFib3ZlLgorKi8KK2Z1bmN0aW9uIGludm9rZVJlcXVlc3Qoc3VicmVz
b3VyY2UsIHNvdXJjZUNvbnRleHRMaXN0KSB7CisgIGlmIChzb3VyY2VDb250ZXh0TGlzdC5sZW5n
dGggPT09IDApIHsKKyAgICAvLyBObyBmdXJ0aGVyIG5lc3RlZCBnbG9iYWwgb2JqZWN0cy4gU2Vu
ZCB0aGUgc3VicmVzb3VyY2UgcmVxdWVzdCBoZXJlLgorCisgICAgY29uc3QgYWRkaXRpb25hbEF0
dHJpYnV0ZXMgPSB7fTsKKyAgICAvKiogQHR5cGUge1BvbGljeURlbGl2ZXJ5fSBwb2xpY3lEZWxp
dmVyeSAqLworICAgIGZvciAoY29uc3QgcG9saWN5RGVsaXZlcnkgb2YgKHN1YnJlc291cmNlLnBv
bGljeURlbGl2ZXJpZXMgfHwgW10pKSB7CisgICAgICAvLyBEZXBlbmRpbmcgb24gdGhlIGRlbGl2
ZXJ5IG1ldGhvZCwgZXh0ZW5kIHRoZSBzdWJyZXNvdXJjZSBlbGVtZW50IHdpdGgKKyAgICAgIC8v
IHRoZXNlIGF0dHJpYnV0ZXMuCisgICAgICBpZiAocG9saWN5RGVsaXZlcnkuZGVsaXZlcnlUeXBl
ID09PSAiYXR0ciIpIHsKKyAgICAgICAgYWRkaXRpb25hbEF0dHJpYnV0ZXNbcG9saWN5RGVsaXZl
cnkua2V5XSA9IHBvbGljeURlbGl2ZXJ5LnZhbHVlOworICAgICAgfSBlbHNlIGlmIChwb2xpY3lE
ZWxpdmVyeS5kZWxpdmVyeVR5cGUgPT09ICJyZWwtbm9yZWYiKSB7CisgICAgICAgIGFkZGl0aW9u
YWxBdHRyaWJ1dGVzWyJyZWwiXSA9ICJub3JlZmVycmVyIjsKKyAgICAgIH0KKyAgICB9CisKKyAg
ICByZXR1cm4gc3VicmVzb3VyY2VNYXBbc3VicmVzb3VyY2Uuc3VicmVzb3VyY2VUeXBlXS5pbnZv
a2VyKAorICAgICAgICBzdWJyZXNvdXJjZS51cmwsCisgICAgICAgIGFkZGl0aW9uYWxBdHRyaWJ1
dGVzKQorICAgICAgLnRoZW4ocmVzdWx0ID0+IE9iamVjdC5hc3NpZ24oCisgICAgICAgICAge3Nv
dXJjZUNvbnRleHRVcmw6IGxvY2F0aW9uLnRvU3RyaW5nKCl9LAorICAgICAgICAgIHJlc3VsdCkp
OworICB9CisKKyAgLy8gRGVmaW5lcyBpbnZva2VycyBmb3IgZWFjaCB2YWxpZCBTb3VyY2VDb250
ZXh0LnNvdXJjZUNvbnRleHRUeXBlLgorICBjb25zdCBzb3VyY2VDb250ZXh0TWFwID0geworICAg
ICJzcmNkb2MiOiB7IC8vIDxpZnJhbWUgc3JjZG9jPjwvaWZyYW1lPgorICAgICAgaW52b2tlcjog
aW52b2tlRnJvbUlmcmFtZSwKKyAgICB9LAorICAgICJpZnJhbWUiOiB7IC8vIDxpZnJhbWUgc3Jj
PSJzYW1lLW9yaWdpbi1VUkwiPjwvaWZyYW1lPgorICAgICAgaW52b2tlcjogaW52b2tlRnJvbUlm
cmFtZSwKKyAgICB9LAorICAgICJ3b3JrZXItY2xhc3NpYyI6IHsKKyAgICAgIC8vIENsYXNzaWMg
ZGVkaWNhdGVkIHdvcmtlciBsb2FkZWQgZnJvbSBzYW1lLW9yaWdpbi4KKyAgICAgIGludm9rZXI6
IGludm9rZUZyb21Xb3JrZXIuYmluZCh1bmRlZmluZWQsIGZhbHNlLCB7fSksCisgICAgfSwKKyAg
ICAid29ya2VyLWNsYXNzaWMtZGF0YSI6IHsKKyAgICAgIC8vIENsYXNzaWMgZGVkaWNhdGVkIHdv
cmtlciBsb2FkZWQgZnJvbSBkYXRhOiBVUkwuCisgICAgICBpbnZva2VyOiBpbnZva2VGcm9tV29y
a2VyLmJpbmQodW5kZWZpbmVkLCB0cnVlLCB7fSksCisgICAgfSwKKyAgICAid29ya2VyLW1vZHVs
ZSI6IHsKKyAgICAgIC8vIE1vZHVsZSBkZWRpY2F0ZWQgd29ya2VyIGxvYWRlZCBmcm9tIHNhbWUt
b3JpZ2luLgorICAgICAgaW52b2tlcjogaW52b2tlRnJvbVdvcmtlci5iaW5kKHVuZGVmaW5lZCwg
ZmFsc2UsIHt0eXBlOiAnbW9kdWxlJ30pLAorICAgIH0sCisgICAgIndvcmtlci1tb2R1bGUtZGF0
YSI6IHsKKyAgICAgIC8vIE1vZHVsZSBkZWRpY2F0ZWQgd29ya2VyIGxvYWRlZCBmcm9tIGRhdGE6
IFVSTC4KKyAgICAgIGludm9rZXI6IGludm9rZUZyb21Xb3JrZXIuYmluZCh1bmRlZmluZWQsIHRy
dWUsIHt0eXBlOiAnbW9kdWxlJ30pLAorICAgIH0sCisgIH07CisKKyAgcmV0dXJuIHNvdXJjZUNv
bnRleHRNYXBbc291cmNlQ29udGV4dExpc3RbMF0uc291cmNlQ29udGV4dFR5cGVdLmludm9rZXIo
CisgICAgICBzdWJyZXNvdXJjZSwgc291cmNlQ29udGV4dExpc3QpOworfQorCisvLyBRdWljayBo
YWNrIHRvIGV4cG9zZSBpbnZva2VSZXF1ZXN0IHdoZW4gY29tbW9uLnN1Yi5qcyBpcyBsb2FkZWQg
ZWl0aGVyCisvLyBhcyBhIGNsYXNzaWMgb3IgbW9kdWxlIHNjcmlwdC4KK3NlbGYuaW52b2tlUmVx
dWVzdCA9IGludm9rZVJlcXVlc3Q7CisKKy8qKgorICBpbnZva2VGcm9tKigpIGZ1bmN0aW9ucyBh
cmUgaGVscGVyIGZ1bmN0aW9ucyB3aXRoIHRoZSBzYW1lIHBhcmFtZXRlcnMKKyAgYW5kIHJldHVy
biB2YWx1ZXMgYXMgaW52b2tlUmVxdWVzdCgpLCB0aGF0IGFyZSB0aWVkIHRvIHNwZWNpZmljIHR5
cGVzCisgIG9mIHRvcC1tb3N0IGVudmlyb25tZW50IHNldHRpbmdzIG9iamVjdHMuCisgIEZvciBl
eGFtcGxlLCBpbnZva2VGcm9tSWZyYW1lKCkgaXMgdGhlIGhlbHBlciBmdW5jdGlvbiBmb3IgdGhl
IGNhc2VzIHdoZXJlCisgIHNvdXJjZUNvbnRleHRMaXN0WzBdIGlzIGFuIGlmcmFtZS4KKyovCisK
Ky8qKgorICBAcGFyYW0ge2Jvb2xlYW59IGlzRGF0YVVybAorICAgIHRydWUgaWYgdGhlIHdvcmtl
ciBzY3JpcHQgaXMgbG9hZGVkIGZyb20gZGF0YTogVVJMLgorICAgIE90aGVyd2lzZSwgdGhlIHNj
cmlwdCBpcyBsb2FkZWQgZnJvbSBzYW1lLW9yaWdpbi4KKyAgQHBhcmFtIHtvYmplY3R9IHdvcmtl
ck9wdGlvbnMKKyAgICBUaGUgYG9wdGlvbnNgIGFyZ3VtZW50IGZvciBXb3JrZXIgY29uc3RydWN0
b3IuCisKKyAgT3RoZXIgcGFyYW1ldGVycyBhbmQgcmV0dXJuIHZhbHVlcyBhcmUgdGhlIHNhbWUg
YXMgdGhvc2Ugb2YgaW52b2tlUmVxdWVzdCgpLgorKi8KK2Z1bmN0aW9uIGludm9rZUZyb21Xb3Jr
ZXIoaXNEYXRhVXJsLCB3b3JrZXJPcHRpb25zLAorICAgICAgICAgICAgICAgICAgICAgICAgICBz
dWJyZXNvdXJjZSwgc291cmNlQ29udGV4dExpc3QpIHsKKyAgY29uc3QgY3VycmVudFNvdXJjZUNv
bnRleHQgPSBzb3VyY2VDb250ZXh0TGlzdFswXTsKKyAgbGV0IHdvcmtlclVybCA9CisgICAgIi9j
b21tb24vc2VjdXJpdHktZmVhdHVyZXMvc2NvcGUvd29ya2VyLnB5P3BvbGljeURlbGl2ZXJpZXM9
IiArCisgICAgZW5jb2RlVVJJQ29tcG9uZW50KEpTT04uc3RyaW5naWZ5KAorICAgICAgICBjdXJy
ZW50U291cmNlQ29udGV4dC5wb2xpY3lEZWxpdmVyaWVzIHx8IFtdKSk7CisgIGlmICh3b3JrZXJP
cHRpb25zLnR5cGUgPT09ICdtb2R1bGUnKSB7CisgICAgd29ya2VyVXJsICs9ICImdHlwZT1tb2R1
bGUiOworICB9CisKKyAgbGV0IHByb21pc2U7CisgIGlmIChpc0RhdGFVcmwpIHsKKyAgICBwcm9t
aXNlID0gZmV0Y2god29ya2VyVXJsKQorICAgICAgLnRoZW4ociA9PiByLnRleHQoKSkKKyAgICAg
IC50aGVuKHNvdXJjZSA9PiB7CisgICAgICAgICAgcmV0dXJuICdkYXRhOnRleHQvamF2YXNjcmlw
dDtiYXNlNjQsJyArIGJ0b2Eoc291cmNlKTsKKyAgICAgICAgfSk7CisgIH0gZWxzZSB7CisgICAg
cHJvbWlzZSA9IFByb21pc2UucmVzb2x2ZSh3b3JrZXJVcmwpOworICB9CisKKyAgcmV0dXJuIHBy
b21pc2UKKyAgICAudGhlbih1cmwgPT4geworICAgICAgY29uc3Qgd29ya2VyID0gbmV3IFdvcmtl
cih1cmwsIHdvcmtlck9wdGlvbnMpOworICAgICAgd29ya2VyLnBvc3RNZXNzYWdlKHtzdWJyZXNv
dXJjZTogc3VicmVzb3VyY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZUNvbnRl
eHRMaXN0OiBzb3VyY2VDb250ZXh0TGlzdC5zbGljZSgxKX0pOworICAgICAgcmV0dXJuIGJpbmRF
dmVudHMyKHdvcmtlciwgIm1lc3NhZ2UiLCB3b3JrZXIsICJlcnJvciIsIHdpbmRvdywgImVycm9y
Iik7CisgICAgfSkKKyAgICAudGhlbihldmVudCA9PiB7CisgICAgICAgIGlmIChldmVudC5kYXRh
LmVycm9yKQorICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChldmVudC5kYXRhLmVycm9y
KTsKKyAgICAgICAgcmV0dXJuIGV2ZW50LmRhdGE7CisgICAgICB9KTsKK30KKworZnVuY3Rpb24g
aW52b2tlRnJvbUlmcmFtZShzdWJyZXNvdXJjZSwgc291cmNlQ29udGV4dExpc3QpIHsKKyAgY29u
c3QgY3VycmVudFNvdXJjZUNvbnRleHQgPSBzb3VyY2VDb250ZXh0TGlzdFswXTsKKyAgY29uc3Qg
ZnJhbWVVcmwgPQorICAgICIvY29tbW9uL3NlY3VyaXR5LWZlYXR1cmVzL3Njb3BlL2RvY3VtZW50
LnB5P3BvbGljeURlbGl2ZXJpZXM9IiArCisgICAgZW5jb2RlVVJJQ29tcG9uZW50KEpTT04uc3Ry
aW5naWZ5KAorICAgICAgICBjdXJyZW50U291cmNlQ29udGV4dC5wb2xpY3lEZWxpdmVyaWVzIHx8
IFtdKSk7CisKKyAgbGV0IHByb21pc2U7CisgIGlmIChjdXJyZW50U291cmNlQ29udGV4dC5zb3Vy
Y2VDb250ZXh0VHlwZSA9PT0gJ3NyY2RvYycpIHsKKyAgICBwcm9taXNlID0gZmV0Y2goZnJhbWVV
cmwpCisgICAgICAudGhlbihyID0+IHIudGV4dCgpKQorICAgICAgLnRoZW4oc3JjZG9jID0+IHsK
KyAgICAgICAgICByZXR1cm4gY3JlYXRlRWxlbWVudCgiaWZyYW1lIiwge3NyY2RvYzogc3JjZG9j
fSwgZG9jdW1lbnQuYm9keSwgdHJ1ZSk7CisgICAgICAgIH0pOworICB9IGVsc2UgaWYgKGN1cnJl
bnRTb3VyY2VDb250ZXh0LnNvdXJjZUNvbnRleHRUeXBlID09PSAnaWZyYW1lJykgeworICAgIHBy
b21pc2UgPSBQcm9taXNlLnJlc29sdmUoCisgICAgICAgIGNyZWF0ZUVsZW1lbnQoImlmcmFtZSIs
IHtzcmM6IGZyYW1lVXJsfSwgZG9jdW1lbnQuYm9keSwgdHJ1ZSkpOworICB9CisKKyAgcmV0dXJu
IHByb21pc2UKKyAgICAudGhlbihpZnJhbWUgPT4geworICAgICAgICByZXR1cm4gaWZyYW1lLmV2
ZW50UHJvbWlzZQorICAgICAgICAgIC50aGVuKCgpID0+IHsKKyAgICAgICAgICAgICAgY29uc3Qg
cHJvbWlzZSA9IGJpbmRFdmVudHMyKAorICAgICAgICAgICAgICAgICAgd2luZG93LCAibWVzc2Fn
ZSIsIGlmcmFtZSwgImVycm9yIiwgd2luZG93LCAiZXJyb3IiKTsKKyAgICAgICAgICAgICAgaWZy
YW1lLmNvbnRlbnRXaW5kb3cucG9zdE1lc3NhZ2UoCisgICAgICAgICAgICAgICAgICB7c3VicmVz
b3VyY2U6IHN1YnJlc291cmNlLAorICAgICAgICAgICAgICAgICAgIHNvdXJjZUNvbnRleHRMaXN0
OiBzb3VyY2VDb250ZXh0TGlzdC5zbGljZSgxKX0sCisgICAgICAgICAgICAgICAgICAiKiIpOwor
ICAgICAgICAgICAgICByZXR1cm4gcHJvbWlzZTsKKyAgICAgICAgICAgIH0pCisgICAgICAgICAg
LnRoZW4oZXZlbnQgPT4geworICAgICAgICAgICAgICBpZiAoZXZlbnQuZGF0YS5lcnJvcikKKyAg
ICAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoZXZlbnQuZGF0YS5lcnJvcik7Cisg
ICAgICAgICAgICAgIHJldHVybiBldmVudC5kYXRhOworICAgICAgICAgICAgfSk7CisgICAgICB9
KTsKK30KKworLy8gU2FuaXR5Q2hlY2tlciBkb2VzIG5vdGhpbmcgaW4gcmVsZWFzZSBtb2RlLiBT
ZWUgc2FuaXR5LWNoZWNrZXIuanMgZm9yIGRlYnVnCisvLyBtb2RlLgorZnVuY3Rpb24gU2FuaXR5
Q2hlY2tlcigpIHt9CitTYW5pdHlDaGVja2VyLnByb3RvdHlwZS5jaGVja1NjZW5hcmlvID0gZnVu
Y3Rpb24oKSB7fTsKK1Nhbml0eUNoZWNrZXIucHJvdG90eXBlLnNldEZhaWxUaW1lb3V0ID0gZnVu
Y3Rpb24odGVzdCwgdGltZW91dCkge307CitTYW5pdHlDaGVja2VyLnByb3RvdHlwZS5jaGVja1N1
YnJlc291cmNlUmVzdWx0ID0gZnVuY3Rpb24oKSB7fTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY29udGVudC1zZWN1cml0eS1wb2xpY3kv
c2VjdXJpdHlwb2xpY3l2aW9sYXRpb24vaWRsaGFybmVzcy53aW5kb3ctZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jb250ZW50LXNlY3Vy
aXR5LXBvbGljeS9zZWN1cml0eXBvbGljeXZpb2xhdGlvbi9pZGxoYXJuZXNzLndpbmRvdy1leHBl
Y3RlZC50eHQKaW5kZXggYTdlYTMyNzkxY2IwMDY5M2YzNzk0YTIzZDMyODRhOTI2NzljNTJmZi4u
MWUxY2Y2NjdkM2I1MGFlZjFmMTY5MThkZjNiMDQ4M2RlZGUxZjVkNiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jb250ZW50LXNlY3VyaXR5
LXBvbGljeS9zZWN1cml0eXBvbGljeXZpb2xhdGlvbi9pZGxoYXJuZXNzLndpbmRvdy1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
b250ZW50LXNlY3VyaXR5LXBvbGljeS9zZWN1cml0eXBvbGljeXZpb2xhdGlvbi9pZGxoYXJuZXNz
LndpbmRvdy1leHBlY3RlZC50eHQKQEAgLTEsMzAgKzEsMyBAQAogCi1GQUlMIGlkbF90ZXN0IHNl
dHVwIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3Qg
IkdvdCBhbiBlcnJvciBiZWZvcmUgcGFyc2luZyBhbnkgbmFtZWQgZGVmaW5pdGlvbjogVW5yZWNv
Z25pc2VkIHRva2VucywgbGluZSAxICh0b2tlbnM6ICJ7XCJlcnJvclwiOiB7XCJtZXNzYWdlXCIi
KQotWwotICAgIHsKLSAgICAgICAgInR5cGUiOiAieyIsCi0gICAgICAgICJ2YWx1ZSI6ICJ7IiwK
LSAgICAgICAgInRyaXZpYSI6ICIiCi0gICAgfSwKLSAgICB7Ci0gICAgICAgICJ0eXBlIjogInN0
cmluZyIsCi0gICAgICAgICJ2YWx1ZSI6ICJcImVycm9yXCIiLAotICAgICAgICAidHJpdmlhIjog
IiIKLSAgICB9LAotICAgIHsKLSAgICAgICAgInR5cGUiOiAiOiIsCi0gICAgICAgICJ2YWx1ZSI6
ICI6IiwKLSAgICAgICAgInRyaXZpYSI6ICIiCi0gICAgfSwKLSAgICB7Ci0gICAgICAgICJ0eXBl
IjogInsiLAotICAgICAgICAidmFsdWUiOiAieyIsCi0gICAgICAgICJ0cml2aWEiOiAiICIKLSAg
ICB9LAotICAgIHsKLSAgICAgICAgInR5cGUiOiAic3RyaW5nIiwKLSAgICAgICAgInZhbHVlIjog
IlwibWVzc2FnZVwiIiwKLSAgICAgICAgInRyaXZpYSI6ICIiCi0gICAgfQotXSIKK0ZBSUwgaWRs
X3Rlc3Qgc2V0dXAgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6
IG9iamVjdCAiRXJyb3IgZmV0Y2hpbmcgL2ludGVyZmFjZXMvQ1NQLmlkbC4iCiAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3JlZGVudGlh
bC1tYW5hZ2VtZW50L01FVEEueW1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9jcmVkZW50aWFsLW1hbmFnZW1lbnQvTUVUQS55bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2Ix
ODYwOTIxMzEyY2M5ZDk5MzRhYTgwM2UzZjYzOWRmMjE0MjNhMAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3JlZGVudGlhbC1t
YW5hZ2VtZW50L01FVEEueW1sCkBAIC0wLDAgKzEsMyBAQAorc3BlYzogaHR0cHM6Ly93M2MuZ2l0
aHViLmlvL3dlYmFwcHNlYy1jcmVkZW50aWFsLW1hbmFnZW1lbnQvCitzdWdnZXN0ZWRfcmV2aWV3
ZXJzOgorICAtIG1pa2V3ZXN0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2NyZWRlbnRpYWwtbWFuYWdlbWVudC9PV05FUlMgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2NyZWRlbnRpYWwtbWFuYWdlbWVu
dC9PV05FUlMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDEyZjkwN2NlYjQxODE0MDE4
YjczNDhkNDMwZDdiZTViYjlkYzczNzIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jcmVkZW50aWFsLW1hbmFnZW1lbnQvT1dORVJTCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBA
QAotQG1pa2V3ZXN0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2NyZWRlbnRpYWwtbWFuYWdlbWVudC9pZGwuaHR0cHMtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jcmVkZW50aWFs
LW1hbmFnZW1lbnQvaWRsLmh0dHBzLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggZWQzYjFjMTg2MWU2ZGZlZjkxNzE3ZjdmZGE5Yjk4YWZlMDFmMDZmMS4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2NyZWRlbnRpYWwtbWFuYWdlbWVudC9pZGwuaHR0
cHMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNDMgKzAsMCBAQAotCi1QQVNTIENy
ZWRlbnRpYWxzQ29udGFpbmVyIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9m
IGludGVyZmFjZSBvYmplY3QgCi1QQVNTIENyZWRlbnRpYWxzQ29udGFpbmVyIGludGVyZmFjZSBv
YmplY3QgbGVuZ3RoIAotUEFTUyBDcmVkZW50aWFsc0NvbnRhaW5lciBpbnRlcmZhY2Ugb2JqZWN0
IG5hbWUgCi1QQVNTIENyZWRlbnRpYWxzQ29udGFpbmVyIGludGVyZmFjZTogZXhpc3RlbmNlIGFu
ZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IAotUEFTUyBDcmVkZW50
aWFsc0NvbnRhaW5lciBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRl
cmZhY2UgcHJvdG90eXBlIG9iamVjdCdzICJjb25zdHJ1Y3RvciIgcHJvcGVydHkgCi1QQVNTIENy
ZWRlbnRpYWxzQ29udGFpbmVyIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9m
IGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgQEB1bnNjb3BhYmxlcyBwcm9wZXJ0eSAKLVBB
U1MgQ3JlZGVudGlhbHNDb250YWluZXIgaW50ZXJmYWNlOiBvcGVyYXRpb24gZ2V0KENyZWRlbnRp
YWxSZXF1ZXN0T3B0aW9ucykgCi1QQVNTIENyZWRlbnRpYWxzQ29udGFpbmVyIGludGVyZmFjZTog
b3BlcmF0aW9uIHN0b3JlKENyZWRlbnRpYWwpIAotUEFTUyBDcmVkZW50aWFsc0NvbnRhaW5lciBp
bnRlcmZhY2U6IG9wZXJhdGlvbiBjcmVhdGUoQ3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucykgCi1Q
QVNTIENyZWRlbnRpYWxzQ29udGFpbmVyIGludGVyZmFjZTogb3BlcmF0aW9uIHByZXZlbnRTaWxl
bnRBY2Nlc3MoKSAKLVBBU1MgQ3JlZGVudGlhbHNDb250YWluZXIgbXVzdCBiZSBwcmltYXJ5IGlu
dGVyZmFjZSBvZiBuYXZpZ2F0b3IuY3JlZGVudGlhbHMgCi1QQVNTIFN0cmluZ2lmaWNhdGlvbiBv
ZiBuYXZpZ2F0b3IuY3JlZGVudGlhbHMgCi1QQVNTIENyZWRlbnRpYWxzQ29udGFpbmVyIGludGVy
ZmFjZTogbmF2aWdhdG9yLmNyZWRlbnRpYWxzIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiZ2V0KENy
ZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucykiIHdpdGggdGhlIHByb3BlciB0eXBlIAotUEFTUyBDcmVk
ZW50aWFsc0NvbnRhaW5lciBpbnRlcmZhY2U6IGNhbGxpbmcgZ2V0KENyZWRlbnRpYWxSZXF1ZXN0
T3B0aW9ucykgb24gbmF2aWdhdG9yLmNyZWRlbnRpYWxzIHdpdGggdG9vIGZldyBhcmd1bWVudHMg
bXVzdCB0aHJvdyBUeXBlRXJyb3IgCi1QQVNTIENyZWRlbnRpYWxzQ29udGFpbmVyIGludGVyZmFj
ZTogbmF2aWdhdG9yLmNyZWRlbnRpYWxzIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAic3RvcmUoQ3Jl
ZGVudGlhbCkiIHdpdGggdGhlIHByb3BlciB0eXBlIAotUEFTUyBDcmVkZW50aWFsc0NvbnRhaW5l
ciBpbnRlcmZhY2U6IGNhbGxpbmcgc3RvcmUoQ3JlZGVudGlhbCkgb24gbmF2aWdhdG9yLmNyZWRl
bnRpYWxzIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCi1QQVNT
IENyZWRlbnRpYWxzQ29udGFpbmVyIGludGVyZmFjZTogbmF2aWdhdG9yLmNyZWRlbnRpYWxzIG11
c3QgaW5oZXJpdCBwcm9wZXJ0eSAiY3JlYXRlKENyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMpIiB3
aXRoIHRoZSBwcm9wZXIgdHlwZSAKLVBBU1MgQ3JlZGVudGlhbHNDb250YWluZXIgaW50ZXJmYWNl
OiBjYWxsaW5nIGNyZWF0ZShDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zKSBvbiBuYXZpZ2F0b3Iu
Y3JlZGVudGlhbHMgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAK
LVBBU1MgQ3JlZGVudGlhbHNDb250YWluZXIgaW50ZXJmYWNlOiBuYXZpZ2F0b3IuY3JlZGVudGlh
bHMgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJwcmV2ZW50U2lsZW50QWNjZXNzKCkiIHdpdGggdGhl
IHByb3BlciB0eXBlIAotRkFJTCBQYXNzd29yZENyZWRlbnRpYWwgaW50ZXJmYWNlOiBleGlzdGVu
Y2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCBhc3NlcnRfb3duX3Byb3BlcnR5
OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJQYXNzd29yZENyZWRlbnRpYWwiIGV4
cGVjdGVkIHByb3BlcnR5ICJQYXNzd29yZENyZWRlbnRpYWwiIG1pc3NpbmcKLUZBSUwgUGFzc3dv
cmRDcmVkZW50aWFsIGludGVyZmFjZSBvYmplY3QgbGVuZ3RoIGFzc2VydF9vd25fcHJvcGVydHk6
IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlBhc3N3b3JkQ3JlZGVudGlhbCIgZXhw
ZWN0ZWQgcHJvcGVydHkgIlBhc3N3b3JkQ3JlZGVudGlhbCIgbWlzc2luZwotRkFJTCBQYXNzd29y
ZENyZWRlbnRpYWwgaW50ZXJmYWNlIG9iamVjdCBuYW1lIGFzc2VydF9vd25fcHJvcGVydHk6IHNl
bGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlBhc3N3b3JkQ3JlZGVudGlhbCIgZXhwZWN0
ZWQgcHJvcGVydHkgIlBhc3N3b3JkQ3JlZGVudGlhbCIgbWlzc2luZwotRkFJTCBQYXNzd29yZENy
ZWRlbnRpYWwgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNl
IHByb3RvdHlwZSBvYmplY3QgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZl
IG93biBwcm9wZXJ0eSAiUGFzc3dvcmRDcmVkZW50aWFsIiBleHBlY3RlZCBwcm9wZXJ0eSAiUGFz
c3dvcmRDcmVkZW50aWFsIiBtaXNzaW5nCi1GQUlMIFBhc3N3b3JkQ3JlZGVudGlhbCBpbnRlcmZh
Y2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVj
dCdzICJjb25zdHJ1Y3RvciIgcHJvcGVydHkgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2Vz
IG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiUGFzc3dvcmRDcmVkZW50aWFsIiBleHBlY3RlZCBwcm9w
ZXJ0eSAiUGFzc3dvcmRDcmVkZW50aWFsIiBtaXNzaW5nCi1GQUlMIFBhc3N3b3JkQ3JlZGVudGlh
bCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90
eXBlIG9iamVjdCdzIEBAdW5zY29wYWJsZXMgcHJvcGVydHkgYXNzZXJ0X293bl9wcm9wZXJ0eTog
c2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiUGFzc3dvcmRDcmVkZW50aWFsIiBleHBl
Y3RlZCBwcm9wZXJ0eSAiUGFzc3dvcmRDcmVkZW50aWFsIiBtaXNzaW5nCi1GQUlMIFBhc3N3b3Jk
Q3JlZGVudGlhbCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBwYXNzd29yZCBhc3NlcnRfb3duX3Byb3Bl
cnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJQYXNzd29yZENyZWRlbnRpYWwi
IGV4cGVjdGVkIHByb3BlcnR5ICJQYXNzd29yZENyZWRlbnRpYWwiIG1pc3NpbmcKLUZBSUwgUGFz
c3dvcmRDcmVkZW50aWFsIG11c3QgYmUgcHJpbWFyeSBpbnRlcmZhY2Ugb2YgbmV3IFBhc3N3b3Jk
Q3JlZGVudGlhbCh7IGlkOiAiaWQiLCBwYXNzd29yZDogInBlbmNpbCIsIGljb25VUkw6ICJodHRw
czovL2V4YW1wbGUuY29tLyIsIG5hbWU6ICJuYW1lIiB9KSBhc3NlcnRfZXF1YWxzOiBVbmV4cGVj
dGVkIGV4Y2VwdGlvbiB3aGVuIGV2YWx1YXRpbmcgb2JqZWN0IGV4cGVjdGVkIG51bGwgYnV0IGdv
dCBvYmplY3QgIlJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBQYXNzd29yZENy
ZWRlbnRpYWwiCi1GQUlMIFN0cmluZ2lmaWNhdGlvbiBvZiBuZXcgUGFzc3dvcmRDcmVkZW50aWFs
KHsgaWQ6ICJpZCIsIHBhc3N3b3JkOiAicGVuY2lsIiwgaWNvblVSTDogImh0dHBzOi8vZXhhbXBs
ZS5jb20vIiwgbmFtZTogIm5hbWUiIH0pIGFzc2VydF9lcXVhbHM6IFVuZXhwZWN0ZWQgZXhjZXB0
aW9uIHdoZW4gZXZhbHVhdGluZyBvYmplY3QgZXhwZWN0ZWQgbnVsbCBidXQgZ290IG9iamVjdCAi
UmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IFBhc3N3b3JkQ3JlZGVudGlhbCIK
LUZBSUwgUGFzc3dvcmRDcmVkZW50aWFsIGludGVyZmFjZTogbmV3IFBhc3N3b3JkQ3JlZGVudGlh
bCh7IGlkOiAiaWQiLCBwYXNzd29yZDogInBlbmNpbCIsIGljb25VUkw6ICJodHRwczovL2V4YW1w
bGUuY29tLyIsIG5hbWU6ICJuYW1lIiB9KSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInBhc3N3b3Jk
IiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBhc3NlcnRfZXF1YWxzOiBVbmV4cGVjdGVkIGV4Y2VwdGlv
biB3aGVuIGV2YWx1YXRpbmcgb2JqZWN0IGV4cGVjdGVkIG51bGwgYnV0IGdvdCBvYmplY3QgIlJl
ZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBQYXNzd29yZENyZWRlbnRpYWwiCi1G
QUlMIEZlZGVyYXRlZENyZWRlbnRpYWwgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRp
ZXMgb2YgaW50ZXJmYWNlIG9iamVjdCBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90
IGhhdmUgb3duIHByb3BlcnR5ICJGZWRlcmF0ZWRDcmVkZW50aWFsIiBleHBlY3RlZCBwcm9wZXJ0
eSAiRmVkZXJhdGVkQ3JlZGVudGlhbCIgbWlzc2luZwotRkFJTCBGZWRlcmF0ZWRDcmVkZW50aWFs
IGludGVyZmFjZSBvYmplY3QgbGVuZ3RoIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBu
b3QgaGF2ZSBvd24gcHJvcGVydHkgIkZlZGVyYXRlZENyZWRlbnRpYWwiIGV4cGVjdGVkIHByb3Bl
cnR5ICJGZWRlcmF0ZWRDcmVkZW50aWFsIiBtaXNzaW5nCi1GQUlMIEZlZGVyYXRlZENyZWRlbnRp
YWwgaW50ZXJmYWNlIG9iamVjdCBuYW1lIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBu
b3QgaGF2ZSBvd24gcHJvcGVydHkgIkZlZGVyYXRlZENyZWRlbnRpYWwiIGV4cGVjdGVkIHByb3Bl
cnR5ICJGZWRlcmF0ZWRDcmVkZW50aWFsIiBtaXNzaW5nCi1GQUlMIEZlZGVyYXRlZENyZWRlbnRp
YWwgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3Rv
dHlwZSBvYmplY3QgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBw
cm9wZXJ0eSAiRmVkZXJhdGVkQ3JlZGVudGlhbCIgZXhwZWN0ZWQgcHJvcGVydHkgIkZlZGVyYXRl
ZENyZWRlbnRpYWwiIG1pc3NpbmcKLUZBSUwgRmVkZXJhdGVkQ3JlZGVudGlhbCBpbnRlcmZhY2U6
IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdz
ICJjb25zdHJ1Y3RvciIgcHJvcGVydHkgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5v
dCBoYXZlIG93biBwcm9wZXJ0eSAiRmVkZXJhdGVkQ3JlZGVudGlhbCIgZXhwZWN0ZWQgcHJvcGVy
dHkgIkZlZGVyYXRlZENyZWRlbnRpYWwiIG1pc3NpbmcKLUZBSUwgRmVkZXJhdGVkQ3JlZGVudGlh
bCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90
eXBlIG9iamVjdCdzIEBAdW5zY29wYWJsZXMgcHJvcGVydHkgYXNzZXJ0X293bl9wcm9wZXJ0eTog
c2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiRmVkZXJhdGVkQ3JlZGVudGlhbCIgZXhw
ZWN0ZWQgcHJvcGVydHkgIkZlZGVyYXRlZENyZWRlbnRpYWwiIG1pc3NpbmcKLUZBSUwgRmVkZXJh
dGVkQ3JlZGVudGlhbCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBwcm92aWRlciBhc3NlcnRfb3duX3By
b3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJGZWRlcmF0ZWRDcmVkZW50
aWFsIiBleHBlY3RlZCBwcm9wZXJ0eSAiRmVkZXJhdGVkQ3JlZGVudGlhbCIgbWlzc2luZwotRkFJ
TCBGZWRlcmF0ZWRDcmVkZW50aWFsIGludGVyZmFjZTogYXR0cmlidXRlIHByb3RvY29sIGFzc2Vy
dF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIkZlZGVyYXRl
ZENyZWRlbnRpYWwiIGV4cGVjdGVkIHByb3BlcnR5ICJGZWRlcmF0ZWRDcmVkZW50aWFsIiBtaXNz
aW5nCi1GQUlMIEZlZGVyYXRlZENyZWRlbnRpYWwgbXVzdCBiZSBwcmltYXJ5IGludGVyZmFjZSBv
ZiBuZXcgRmVkZXJhdGVkQ3JlZGVudGlhbCh7IGlkOiAiaWQiLCBwcm92aWRlcjogImh0dHBzOi8v
ZXhhbXBsZS5jb20iLCBpY29uVVJMOiAiaHR0cHM6Ly9leGFtcGxlLmNvbS8iLCBuYW1lOiAibmFt
ZSIgfSkgYXNzZXJ0X2VxdWFsczogVW5leHBlY3RlZCBleGNlcHRpb24gd2hlbiBldmFsdWF0aW5n
IG9iamVjdCBleHBlY3RlZCBudWxsIGJ1dCBnb3Qgb2JqZWN0ICJSZWZlcmVuY2VFcnJvcjogQ2Fu
J3QgZmluZCB2YXJpYWJsZTogRmVkZXJhdGVkQ3JlZGVudGlhbCIKLUZBSUwgU3RyaW5naWZpY2F0
aW9uIG9mIG5ldyBGZWRlcmF0ZWRDcmVkZW50aWFsKHsgaWQ6ICJpZCIsIHByb3ZpZGVyOiAiaHR0
cHM6Ly9leGFtcGxlLmNvbSIsIGljb25VUkw6ICJodHRwczovL2V4YW1wbGUuY29tLyIsIG5hbWU6
ICJuYW1lIiB9KSBhc3NlcnRfZXF1YWxzOiBVbmV4cGVjdGVkIGV4Y2VwdGlvbiB3aGVuIGV2YWx1
YXRpbmcgb2JqZWN0IGV4cGVjdGVkIG51bGwgYnV0IGdvdCBvYmplY3QgIlJlZmVyZW5jZUVycm9y
OiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBGZWRlcmF0ZWRDcmVkZW50aWFsIgotRkFJTCBGZWRlcmF0
ZWRDcmVkZW50aWFsIGludGVyZmFjZTogbmV3IEZlZGVyYXRlZENyZWRlbnRpYWwoeyBpZDogImlk
IiwgcHJvdmlkZXI6ICJodHRwczovL2V4YW1wbGUuY29tIiwgaWNvblVSTDogImh0dHBzOi8vZXhh
bXBsZS5jb20vIiwgbmFtZTogIm5hbWUiIH0pIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAicHJvdmlk
ZXIiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9lcXVhbHM6IFVuZXhwZWN0ZWQgZXhjZXB0
aW9uIHdoZW4gZXZhbHVhdGluZyBvYmplY3QgZXhwZWN0ZWQgbnVsbCBidXQgZ290IG9iamVjdCAi
UmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IEZlZGVyYXRlZENyZWRlbnRpYWwi
Ci1GQUlMIEZlZGVyYXRlZENyZWRlbnRpYWwgaW50ZXJmYWNlOiBuZXcgRmVkZXJhdGVkQ3JlZGVu
dGlhbCh7IGlkOiAiaWQiLCBwcm92aWRlcjogImh0dHBzOi8vZXhhbXBsZS5jb20iLCBpY29uVVJM
OiAiaHR0cHM6Ly9leGFtcGxlLmNvbS8iLCBuYW1lOiAibmFtZSIgfSkgbXVzdCBpbmhlcml0IHBy
b3BlcnR5ICJwcm90b2NvbCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2VxdWFsczogVW5l
eHBlY3RlZCBleGNlcHRpb24gd2hlbiBldmFsdWF0aW5nIG9iamVjdCBleHBlY3RlZCBudWxsIGJ1
dCBnb3Qgb2JqZWN0ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogRmVkZXJh
dGVkQ3JlZGVudGlhbCIKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jcmVkZW50aWFsLW1hbmFnZW1lbnQvaWRsLmh0dHBzLmh0bWwgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2NyZWRlbnRpYWwtbWFu
YWdlbWVudC9pZGwuaHR0cHMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODc1
NGI1YTMwYjZjMmM0YWMzODZlMDlhODIwOTY3NzQ1MDRhMmYyZS4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2NyZWRlbnRpYWwtbWFuYWdlbWVudC9pZGwuaHR0cHMuaHRtbAorKysg
L2Rldi9udWxsCkBAIC0xLDEwMyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxzY3JpcHQgc3Jj
PS9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanM+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0vcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9L3Jlc291cmNl
cy9XZWJJRExQYXJzZXIuanM+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0vcmVzb3VyY2VzL2lkbGhh
cm5lc3MuanM+PC9zY3JpcHQ+Ci08c2NyaXB0IHR5cGU9InRleHQvcGxhaW4iIGlkPSJ1bnRlc3Rl
ZCI+Ci0gICAgZGljdGlvbmFyeSBDcmVkZW50aWFsRGF0YSB7Ci0gICAgICBVU1ZTdHJpbmcgaWQ7
Ci0gICAgfTsKLQotICAgIFtFeHBvc2VkPVdpbmRvdywgU2VjdXJlQ29udGV4dF0KLSAgICBpbnRl
cmZhY2UgQ3JlZGVudGlhbCB7Ci0gICAgICByZWFkb25seSBhdHRyaWJ1dGUgVVNWU3RyaW5nIGlk
OwotICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyB0eXBlOwotICAgIH07Ci0KLSAg
ICBbTm9JbnRlcmZhY2VPYmplY3QsIFNlY3VyZUNvbnRleHRdCi0gICAgaW50ZXJmYWNlIENyZWRl
bnRpYWxVc2VyRGF0YSB7Ci0gICAgICByZWFkb25seSBhdHRyaWJ1dGUgVVNWU3RyaW5nIG5hbWU7
Ci0gICAgICByZWFkb25seSBhdHRyaWJ1dGUgVVNWU3RyaW5nIGljb25VUkw7Ci0gICAgfTsKLQot
ICAgIGRpY3Rpb25hcnkgUGFzc3dvcmRDcmVkZW50aWFsRGF0YSA6IENyZWRlbnRpYWxEYXRhIHsK
LSAgICAgIFVTVlN0cmluZyBuYW1lOwotICAgICAgVVNWU3RyaW5nIGljb25VUkw7Ci0gICAgICBy
ZXF1aXJlZCBVU1ZTdHJpbmcgcGFzc3dvcmQ7Ci0gICAgfTsKLQotICAgIHR5cGVkZWYgKFBhc3N3
b3JkQ3JlZGVudGlhbERhdGEgb3IgSFRNTEZvcm1FbGVtZW50KSBQYXNzd29yZENyZWRlbnRpYWxJ
bml0OwotCi0gICAgdHlwZWRlZiAoRm9ybURhdGEgb3IgVVJMU2VhcmNoUGFyYW1zKSBDcmVkZW50
aWFsQm9keVR5cGU7Ci0KLQotICAgIGRpY3Rpb25hcnkgRmVkZXJhdGVkQ3JlZGVudGlhbEluaXQg
OiBDcmVkZW50aWFsRGF0YSB7Ci0gICAgICBVU1ZTdHJpbmcgbmFtZTsKLSAgICAgIFVTVlN0cmlu
ZyBpY29uVVJMOwotICAgICAgcmVxdWlyZWQgVVNWU3RyaW5nIHByb3ZpZGVyOwotICAgICAgRE9N
U3RyaW5nIHByb3RvY29sOwotICAgIH07Ci0KLSAgICBkaWN0aW9uYXJ5IENyZWRlbnRpYWxDcmVh
dGlvbk9wdGlvbnMgewotICAgICAgUGFzc3dvcmRDcmVkZW50aWFsSW5pdD8gcGFzc3dvcmQ7Ci0g
ICAgICBGZWRlcmF0ZWRDcmVkZW50aWFsSW5pdD8gZmVkZXJhdGVkOwotICAgIH07Ci0KLSAgICBl
bnVtIENyZWRlbnRpYWxNZWRpYXRpb25SZXF1aXJlbWVudCB7Ci0gICAgICAic2lsZW50IiwKLSAg
ICAgICJvcHRpb25hbCIsCi0gICAgICAicmVxdWlyZWQiCi0gICAgfTsKLQotICAgIGRpY3Rpb25h
cnkgQ3JlZGVudGlhbFJlcXVlc3RPcHRpb25zIHsKLSAgICAgIGJvb2xlYW4gcGFzc3dvcmQgPSBm
YWxzZTsKLSAgICAgIEZlZGVyYXRlZENyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucyBmZWRlcmF0ZWQ7
Ci0KLSAgICAgIENyZWRlbnRpYWxNZWRpYXRpb25SZXF1aXJlbWVudCBtZWRpYXRpb24gPSAib3B0
aW9uYWwiOwotICAgIH07Ci0KLSAgICBkaWN0aW9uYXJ5IEZlZGVyYXRlZENyZWRlbnRpYWxSZXF1
ZXN0T3B0aW9ucyB7Ci0gICAgICBzZXF1ZW5jZTxVU1ZTdHJpbmc+IHByb3ZpZGVyczsKLSAgICAg
IHNlcXVlbmNlPERPTVN0cmluZz4gcHJvdG9jb2xzOwotICAgIH07Ci0KLTwvc2NyaXB0PgotPHNj
cmlwdCB0eXBlPSJ0ZXh0L3BsYWluIiBpZD0idGVzdGVkIj4KLSAgICBbRXhwb3NlZD1XaW5kb3cs
IFNlY3VyZUNvbnRleHRdCi0gICAgaW50ZXJmYWNlIENyZWRlbnRpYWxzQ29udGFpbmVyIHsKLSAg
ICAgIFByb21pc2U8Q3JlZGVudGlhbD4gZ2V0KG9wdGlvbmFsIENyZWRlbnRpYWxSZXF1ZXN0T3B0
aW9ucyBvcHRpb25zKTsKLSAgICAgIFByb21pc2U8Q3JlZGVudGlhbD4gc3RvcmUoQ3JlZGVudGlh
bCBjcmVkZW50aWFsKTsKLSAgICAgIFByb21pc2U8Q3JlZGVudGlhbD8+IGNyZWF0ZShvcHRpb25h
bCBDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zIG9wdGlvbnMpOwotICAgICAgUHJvbWlzZTx2b2lk
PiBwcmV2ZW50U2lsZW50QWNjZXNzKCk7Ci0gICAgfTsKLQotICAgIFtDb25zdHJ1Y3RvcihQYXNz
d29yZENyZWRlbnRpYWxEYXRhIGRhdGEpLAotICAgICBDb25zdHJ1Y3RvcihIVE1MRm9ybUVsZW1l
bnQgZm9ybSksCi0gICAgIEV4cG9zZWQ9V2luZG93LAotICAgICBTZWN1cmVDb250ZXh0XQotICAg
IGludGVyZmFjZSBQYXNzd29yZENyZWRlbnRpYWwgOiBDcmVkZW50aWFsIHsKLSAgICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgcGFzc3dvcmQ7Ci0gICAgfTsKLSAgICBQYXNzd29yZENy
ZWRlbnRpYWwgaW1wbGVtZW50cyBDcmVkZW50aWFsVXNlckRhdGE7Ci0KLSAgICBbQ29uc3RydWN0
b3IoRmVkZXJhdGVkQ3JlZGVudGlhbEluaXQgZGF0YSksCi0gICAgIEV4cG9zZWQ9V2luZG93LAot
ICAgICBTZWN1cmVDb250ZXh0XQotICAgIGludGVyZmFjZSBGZWRlcmF0ZWRDcmVkZW50aWFsIDog
Q3JlZGVudGlhbCB7Ci0gICAgICByZWFkb25seSBhdHRyaWJ1dGUgVVNWU3RyaW5nIHByb3ZpZGVy
OwotICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZz8gcHJvdG9jb2w7Ci0gICAgfTsK
LSAgICBGZWRlcmF0ZWRDcmVkZW50aWFsIGltcGxlbWVudHMgQ3JlZGVudGlhbFVzZXJEYXRhOwot
PC9zY3JpcHQ+Ci08c2NyaXB0PgotICAgICJ1c2Ugc3RyaWN0IjsKLSAgICB2YXIgaWRsX2FycmF5
ID0gbmV3IElkbEFycmF5KCk7Ci0gICAgaWRsX2FycmF5LmFkZF91bnRlc3RlZF9pZGxzKGRvY3Vt
ZW50LnF1ZXJ5U2VsZWN0b3IoJyN1bnRlc3RlZCcpLnRleHRDb250ZW50KTsKLSAgICBpZGxfYXJy
YXkuYWRkX2lkbHMoZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3Rlc3RlZCcpLnRleHRDb250ZW50
KTsKLSAgICBpZGxfYXJyYXkuYWRkX29iamVjdHMoewotICAgICAgQ3JlZGVudGlhbHNDb250YWlu
ZXI6IFsnbmF2aWdhdG9yLmNyZWRlbnRpYWxzJ10sCi0gICAgICBQYXNzd29yZENyZWRlbnRpYWw6
IFsnbmV3IFBhc3N3b3JkQ3JlZGVudGlhbCh7IGlkOiAiaWQiLCBwYXNzd29yZDogInBlbmNpbCIs
IGljb25VUkw6ICJodHRwczovL2V4YW1wbGUuY29tLyIsIG5hbWU6ICJuYW1lIiB9KSddLAotICAg
ICAgRmVkZXJhdGVkQ3JlZGVudGlhbDogWyduZXcgRmVkZXJhdGVkQ3JlZGVudGlhbCh7IGlkOiAi
aWQiLCBwcm92aWRlcjogImh0dHBzOi8vZXhhbXBsZS5jb20iLCBpY29uVVJMOiAiaHR0cHM6Ly9l
eGFtcGxlLmNvbS8iLCBuYW1lOiAibmFtZSIgfSknXQotICAgIH0pOwotICAgIGlkbF9hcnJheS50
ZXN0KCk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3JlZGVudGlhbC1tYW5hZ2VtZW50L2lkbGhhcm5lc3MuaHR0cHMu
d2luZG93LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3JlZGVudGlhbC1tYW5hZ2VtZW50L2lkbGhhcm5lc3MuaHR0cHMud2luZG93LWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hZjgyNDVjODEyMThkNTVhMTBiNWRmN2EyYTZkNmVmMzli
NzI5NDgyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jcmVkZW50aWFsLW1hbmFnZW1lbnQvaWRsaGFybmVzcy5odHRwcy53aW5k
b3ctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNzAgQEAKKworUEFTUyBpZGxfdGVzdCBzZXR1cCAK
K1BBU1MgUGFydGlhbCBpbnRlcmZhY2UgTmF2aWdhdG9yOiBvcmlnaW5hbCBpbnRlcmZhY2UgZGVm
aW5lZCAKK1BBU1MgUGFydGlhbCBkaWN0aW9uYXJ5IENyZWRlbnRpYWxSZXF1ZXN0T3B0aW9uczog
b3JpZ2luYWwgZGljdGlvbmFyeSBkZWZpbmVkIAorUEFTUyBQYXJ0aWFsIGRpY3Rpb25hcnkgQ3Jl
ZGVudGlhbENyZWF0aW9uT3B0aW9uczogb3JpZ2luYWwgZGljdGlvbmFyeSBkZWZpbmVkIAorUEFT
UyBQYXJ0aWFsIGRpY3Rpb25hcnkgQ3JlZGVudGlhbFJlcXVlc3RPcHRpb25zWzJdOiBvcmlnaW5h
bCBkaWN0aW9uYXJ5IGRlZmluZWQgCitQQVNTIFBhcnRpYWwgZGljdGlvbmFyeSBDcmVkZW50aWFs
Q3JlYXRpb25PcHRpb25zWzJdOiBvcmlnaW5hbCBkaWN0aW9uYXJ5IGRlZmluZWQgCitQQVNTIENy
ZWRlbnRpYWwgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNl
IG9iamVjdCAKK1BBU1MgQ3JlZGVudGlhbCBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aCAKK1BBU1Mg
Q3JlZGVudGlhbCBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUgCitQQVNTIENyZWRlbnRpYWwgaW50ZXJm
YWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmpl
Y3QgCitQQVNTIENyZWRlbnRpYWwgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMg
b2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyAiY29uc3RydWN0b3IiIHByb3BlcnR5IAor
UEFTUyBDcmVkZW50aWFsIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGlu
dGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgQEB1bnNjb3BhYmxlcyBwcm9wZXJ0eSAKK1BBU1Mg
Q3JlZGVudGlhbCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBpZCAKK1BBU1MgQ3JlZGVudGlhbCBpbnRl
cmZhY2U6IGF0dHJpYnV0ZSB0eXBlIAorUEFTUyBDcmVkZW50aWFsc0NvbnRhaW5lciBpbnRlcmZh
Y2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IAorUEFTUyBD
cmVkZW50aWFsc0NvbnRhaW5lciBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aCAKK1BBU1MgQ3JlZGVu
dGlhbHNDb250YWluZXIgaW50ZXJmYWNlIG9iamVjdCBuYW1lIAorUEFTUyBDcmVkZW50aWFsc0Nv
bnRhaW5lciBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ug
cHJvdG90eXBlIG9iamVjdCAKK1BBU1MgQ3JlZGVudGlhbHNDb250YWluZXIgaW50ZXJmYWNlOiBl
eGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyAi
Y29uc3RydWN0b3IiIHByb3BlcnR5IAorUEFTUyBDcmVkZW50aWFsc0NvbnRhaW5lciBpbnRlcmZh
Y2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVj
dCdzIEBAdW5zY29wYWJsZXMgcHJvcGVydHkgCitQQVNTIENyZWRlbnRpYWxzQ29udGFpbmVyIGlu
dGVyZmFjZTogb3BlcmF0aW9uIGdldChDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMpIAorUEFTUyBD
cmVkZW50aWFsc0NvbnRhaW5lciBpbnRlcmZhY2U6IG9wZXJhdGlvbiBzdG9yZShDcmVkZW50aWFs
KSAKK1BBU1MgQ3JlZGVudGlhbHNDb250YWluZXIgaW50ZXJmYWNlOiBvcGVyYXRpb24gY3JlYXRl
KENyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMpIAorUEFTUyBDcmVkZW50aWFsc0NvbnRhaW5lciBp
bnRlcmZhY2U6IG9wZXJhdGlvbiBwcmV2ZW50U2lsZW50QWNjZXNzKCkgCitQQVNTIENyZWRlbnRp
YWxzQ29udGFpbmVyIG11c3QgYmUgcHJpbWFyeSBpbnRlcmZhY2Ugb2YgbmF2aWdhdG9yLmNyZWRl
bnRpYWxzIAorUEFTUyBTdHJpbmdpZmljYXRpb24gb2YgbmF2aWdhdG9yLmNyZWRlbnRpYWxzIAor
UEFTUyBDcmVkZW50aWFsc0NvbnRhaW5lciBpbnRlcmZhY2U6IG5hdmlnYXRvci5jcmVkZW50aWFs
cyBtdXN0IGluaGVyaXQgcHJvcGVydHkgImdldChDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMpIiB3
aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgQ3JlZGVudGlhbHNDb250YWluZXIgaW50ZXJmYWNl
OiBjYWxsaW5nIGdldChDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMpIG9uIG5hdmlnYXRvci5jcmVk
ZW50aWFscyB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAorUEFT
UyBDcmVkZW50aWFsc0NvbnRhaW5lciBpbnRlcmZhY2U6IG5hdmlnYXRvci5jcmVkZW50aWFscyBt
dXN0IGluaGVyaXQgcHJvcGVydHkgInN0b3JlKENyZWRlbnRpYWwpIiB3aXRoIHRoZSBwcm9wZXIg
dHlwZSAKK1BBU1MgQ3JlZGVudGlhbHNDb250YWluZXIgaW50ZXJmYWNlOiBjYWxsaW5nIHN0b3Jl
KENyZWRlbnRpYWwpIG9uIG5hdmlnYXRvci5jcmVkZW50aWFscyB3aXRoIHRvbyBmZXcgYXJndW1l
bnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAorUEFTUyBDcmVkZW50aWFsc0NvbnRhaW5lciBpbnRl
cmZhY2U6IG5hdmlnYXRvci5jcmVkZW50aWFscyBtdXN0IGluaGVyaXQgcHJvcGVydHkgImNyZWF0
ZShDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNT
IENyZWRlbnRpYWxzQ29udGFpbmVyIGludGVyZmFjZTogY2FsbGluZyBjcmVhdGUoQ3JlZGVudGlh
bENyZWF0aW9uT3B0aW9ucykgb24gbmF2aWdhdG9yLmNyZWRlbnRpYWxzIHdpdGggdG9vIGZldyBh
cmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCitQQVNTIENyZWRlbnRpYWxzQ29udGFpbmVy
IGludGVyZmFjZTogbmF2aWdhdG9yLmNyZWRlbnRpYWxzIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAi
cHJldmVudFNpbGVudEFjY2VzcygpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK0ZBSUwgUGFzc3dv
cmRDcmVkZW50aWFsIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVy
ZmFjZSBvYmplY3QgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBw
cm9wZXJ0eSAiUGFzc3dvcmRDcmVkZW50aWFsIiBleHBlY3RlZCBwcm9wZXJ0eSAiUGFzc3dvcmRD
cmVkZW50aWFsIiBtaXNzaW5nCitGQUlMIFBhc3N3b3JkQ3JlZGVudGlhbCBpbnRlcmZhY2Ugb2Jq
ZWN0IGxlbmd0aCBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHBy
b3BlcnR5ICJQYXNzd29yZENyZWRlbnRpYWwiIGV4cGVjdGVkIHByb3BlcnR5ICJQYXNzd29yZENy
ZWRlbnRpYWwiIG1pc3NpbmcKK0ZBSUwgUGFzc3dvcmRDcmVkZW50aWFsIGludGVyZmFjZSBvYmpl
Y3QgbmFtZSBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3Bl
cnR5ICJQYXNzd29yZENyZWRlbnRpYWwiIGV4cGVjdGVkIHByb3BlcnR5ICJQYXNzd29yZENyZWRl
bnRpYWwiIG1pc3NpbmcKK0ZBSUwgUGFzc3dvcmRDcmVkZW50aWFsIGludGVyZmFjZTogZXhpc3Rl
bmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IGFzc2VydF9v
d25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlBhc3N3b3JkQ3Jl
ZGVudGlhbCIgZXhwZWN0ZWQgcHJvcGVydHkgIlBhc3N3b3JkQ3JlZGVudGlhbCIgbWlzc2luZwor
RkFJTCBQYXNzd29yZENyZWRlbnRpYWwgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRp
ZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyAiY29uc3RydWN0b3IiIHByb3BlcnR5
IGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlBh
c3N3b3JkQ3JlZGVudGlhbCIgZXhwZWN0ZWQgcHJvcGVydHkgIlBhc3N3b3JkQ3JlZGVudGlhbCIg
bWlzc2luZworRkFJTCBQYXNzd29yZENyZWRlbnRpYWwgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5k
IHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyBAQHVuc2NvcGFibGVz
IHByb3BlcnR5IGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJv
cGVydHkgIlBhc3N3b3JkQ3JlZGVudGlhbCIgZXhwZWN0ZWQgcHJvcGVydHkgIlBhc3N3b3JkQ3Jl
ZGVudGlhbCIgbWlzc2luZworRkFJTCBQYXNzd29yZENyZWRlbnRpYWwgaW50ZXJmYWNlOiBhdHRy
aWJ1dGUgcGFzc3dvcmQgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93
biBwcm9wZXJ0eSAiUGFzc3dvcmRDcmVkZW50aWFsIiBleHBlY3RlZCBwcm9wZXJ0eSAiUGFzc3dv
cmRDcmVkZW50aWFsIiBtaXNzaW5nCitGQUlMIFBhc3N3b3JkQ3JlZGVudGlhbCBpbnRlcmZhY2U6
IGF0dHJpYnV0ZSBuYW1lIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBv
d24gcHJvcGVydHkgIlBhc3N3b3JkQ3JlZGVudGlhbCIgZXhwZWN0ZWQgcHJvcGVydHkgIlBhc3N3
b3JkQ3JlZGVudGlhbCIgbWlzc2luZworRkFJTCBQYXNzd29yZENyZWRlbnRpYWwgaW50ZXJmYWNl
OiBhdHRyaWJ1dGUgaWNvblVSTCBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhh
dmUgb3duIHByb3BlcnR5ICJQYXNzd29yZENyZWRlbnRpYWwiIGV4cGVjdGVkIHByb3BlcnR5ICJQ
YXNzd29yZENyZWRlbnRpYWwiIG1pc3NpbmcKK0ZBSUwgUGFzc3dvcmRDcmVkZW50aWFsIG11c3Qg
YmUgcHJpbWFyeSBpbnRlcmZhY2Ugb2YgcGFzc3dvcmRDcmVkZW50aWFsIGFzc2VydF9lcXVhbHM6
IFVuZXhwZWN0ZWQgZXhjZXB0aW9uIHdoZW4gZXZhbHVhdGluZyBvYmplY3QgZXhwZWN0ZWQgbnVs
bCBidXQgZ290IG9iamVjdCAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IHBh
c3N3b3JkQ3JlZGVudGlhbCIKK0ZBSUwgU3RyaW5naWZpY2F0aW9uIG9mIHBhc3N3b3JkQ3JlZGVu
dGlhbCBhc3NlcnRfZXF1YWxzOiBVbmV4cGVjdGVkIGV4Y2VwdGlvbiB3aGVuIGV2YWx1YXRpbmcg
b2JqZWN0IGV4cGVjdGVkIG51bGwgYnV0IGdvdCBvYmplY3QgIlJlZmVyZW5jZUVycm9yOiBDYW4n
dCBmaW5kIHZhcmlhYmxlOiBwYXNzd29yZENyZWRlbnRpYWwiCitGQUlMIFBhc3N3b3JkQ3JlZGVu
dGlhbCBpbnRlcmZhY2U6IHBhc3N3b3JkQ3JlZGVudGlhbCBtdXN0IGluaGVyaXQgcHJvcGVydHkg
InBhc3N3b3JkIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBhc3NlcnRfZXF1YWxzOiBVbmV4cGVjdGVk
IGV4Y2VwdGlvbiB3aGVuIGV2YWx1YXRpbmcgb2JqZWN0IGV4cGVjdGVkIG51bGwgYnV0IGdvdCBv
YmplY3QgIlJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBwYXNzd29yZENyZWRl
bnRpYWwiCitGQUlMIFBhc3N3b3JkQ3JlZGVudGlhbCBpbnRlcmZhY2U6IHBhc3N3b3JkQ3JlZGVu
dGlhbCBtdXN0IGluaGVyaXQgcHJvcGVydHkgIm5hbWUiIHdpdGggdGhlIHByb3BlciB0eXBlIGFz
c2VydF9lcXVhbHM6IFVuZXhwZWN0ZWQgZXhjZXB0aW9uIHdoZW4gZXZhbHVhdGluZyBvYmplY3Qg
ZXhwZWN0ZWQgbnVsbCBidXQgZ290IG9iamVjdCAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQg
dmFyaWFibGU6IHBhc3N3b3JkQ3JlZGVudGlhbCIKK0ZBSUwgUGFzc3dvcmRDcmVkZW50aWFsIGlu
dGVyZmFjZTogcGFzc3dvcmRDcmVkZW50aWFsIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiaWNvblVS
TCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2VxdWFsczogVW5leHBlY3RlZCBleGNlcHRp
b24gd2hlbiBldmFsdWF0aW5nIG9iamVjdCBleHBlY3RlZCBudWxsIGJ1dCBnb3Qgb2JqZWN0ICJS
ZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogcGFzc3dvcmRDcmVkZW50aWFsIgor
RkFJTCBDcmVkZW50aWFsIGludGVyZmFjZTogcGFzc3dvcmRDcmVkZW50aWFsIG11c3QgaW5oZXJp
dCBwcm9wZXJ0eSAiaWQiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9lcXVhbHM6IFVuZXhw
ZWN0ZWQgZXhjZXB0aW9uIHdoZW4gZXZhbHVhdGluZyBvYmplY3QgZXhwZWN0ZWQgbnVsbCBidXQg
Z290IG9iamVjdCAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IHBhc3N3b3Jk
Q3JlZGVudGlhbCIKK0ZBSUwgQ3JlZGVudGlhbCBpbnRlcmZhY2U6IHBhc3N3b3JkQ3JlZGVudGlh
bCBtdXN0IGluaGVyaXQgcHJvcGVydHkgInR5cGUiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2Vy
dF9lcXVhbHM6IFVuZXhwZWN0ZWQgZXhjZXB0aW9uIHdoZW4gZXZhbHVhdGluZyBvYmplY3QgZXhw
ZWN0ZWQgbnVsbCBidXQgZ290IG9iamVjdCAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFy
aWFibGU6IHBhc3N3b3JkQ3JlZGVudGlhbCIKK0ZBSUwgRmVkZXJhdGVkQ3JlZGVudGlhbCBpbnRl
cmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IGFzc2Vy
dF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIkZlZGVyYXRl
ZENyZWRlbnRpYWwiIGV4cGVjdGVkIHByb3BlcnR5ICJGZWRlcmF0ZWRDcmVkZW50aWFsIiBtaXNz
aW5nCitGQUlMIEZlZGVyYXRlZENyZWRlbnRpYWwgaW50ZXJmYWNlIG9iamVjdCBsZW5ndGggYXNz
ZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiRmVkZXJh
dGVkQ3JlZGVudGlhbCIgZXhwZWN0ZWQgcHJvcGVydHkgIkZlZGVyYXRlZENyZWRlbnRpYWwiIG1p
c3NpbmcKK0ZBSUwgRmVkZXJhdGVkQ3JlZGVudGlhbCBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUgYXNz
ZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiRmVkZXJh
dGVkQ3JlZGVudGlhbCIgZXhwZWN0ZWQgcHJvcGVydHkgIkZlZGVyYXRlZENyZWRlbnRpYWwiIG1p
c3NpbmcKK0ZBSUwgRmVkZXJhdGVkQ3JlZGVudGlhbCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQg
cHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCBhc3NlcnRfb3duX3Byb3Bl
cnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJGZWRlcmF0ZWRDcmVkZW50aWFs
IiBleHBlY3RlZCBwcm9wZXJ0eSAiRmVkZXJhdGVkQ3JlZGVudGlhbCIgbWlzc2luZworRkFJTCBG
ZWRlcmF0ZWRDcmVkZW50aWFsIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9m
IGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgImNvbnN0cnVjdG9yIiBwcm9wZXJ0eSBhc3Nl
cnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJGZWRlcmF0
ZWRDcmVkZW50aWFsIiBleHBlY3RlZCBwcm9wZXJ0eSAiRmVkZXJhdGVkQ3JlZGVudGlhbCIgbWlz
c2luZworRkFJTCBGZWRlcmF0ZWRDcmVkZW50aWFsIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBw
cm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgQEB1bnNjb3BhYmxlcyBw
cm9wZXJ0eSBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3Bl
cnR5ICJGZWRlcmF0ZWRDcmVkZW50aWFsIiBleHBlY3RlZCBwcm9wZXJ0eSAiRmVkZXJhdGVkQ3Jl
ZGVudGlhbCIgbWlzc2luZworRkFJTCBGZWRlcmF0ZWRDcmVkZW50aWFsIGludGVyZmFjZTogYXR0
cmlidXRlIHByb3ZpZGVyIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBv
d24gcHJvcGVydHkgIkZlZGVyYXRlZENyZWRlbnRpYWwiIGV4cGVjdGVkIHByb3BlcnR5ICJGZWRl
cmF0ZWRDcmVkZW50aWFsIiBtaXNzaW5nCitGQUlMIEZlZGVyYXRlZENyZWRlbnRpYWwgaW50ZXJm
YWNlOiBhdHRyaWJ1dGUgcHJvdG9jb2wgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5v
dCBoYXZlIG93biBwcm9wZXJ0eSAiRmVkZXJhdGVkQ3JlZGVudGlhbCIgZXhwZWN0ZWQgcHJvcGVy
dHkgIkZlZGVyYXRlZENyZWRlbnRpYWwiIG1pc3NpbmcKK0ZBSUwgRmVkZXJhdGVkQ3JlZGVudGlh
bCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBuYW1lIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9l
cyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIkZlZGVyYXRlZENyZWRlbnRpYWwiIGV4cGVjdGVkIHBy
b3BlcnR5ICJGZWRlcmF0ZWRDcmVkZW50aWFsIiBtaXNzaW5nCitGQUlMIEZlZGVyYXRlZENyZWRl
bnRpYWwgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgaWNvblVSTCBhc3NlcnRfb3duX3Byb3BlcnR5OiBz
ZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJGZWRlcmF0ZWRDcmVkZW50aWFsIiBleHBl
Y3RlZCBwcm9wZXJ0eSAiRmVkZXJhdGVkQ3JlZGVudGlhbCIgbWlzc2luZworRkFJTCBGZWRlcmF0
ZWRDcmVkZW50aWFsIG11c3QgYmUgcHJpbWFyeSBpbnRlcmZhY2Ugb2YgZmVkZXJhdGVkQ3JlZGVu
dGlhbCBhc3NlcnRfZXF1YWxzOiBVbmV4cGVjdGVkIGV4Y2VwdGlvbiB3aGVuIGV2YWx1YXRpbmcg
b2JqZWN0IGV4cGVjdGVkIG51bGwgYnV0IGdvdCBvYmplY3QgIlJlZmVyZW5jZUVycm9yOiBDYW4n
dCBmaW5kIHZhcmlhYmxlOiBmZWRlcmF0ZWRDcmVkZW50aWFsIgorRkFJTCBTdHJpbmdpZmljYXRp
b24gb2YgZmVkZXJhdGVkQ3JlZGVudGlhbCBhc3NlcnRfZXF1YWxzOiBVbmV4cGVjdGVkIGV4Y2Vw
dGlvbiB3aGVuIGV2YWx1YXRpbmcgb2JqZWN0IGV4cGVjdGVkIG51bGwgYnV0IGdvdCBvYmplY3Qg
IlJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBmZWRlcmF0ZWRDcmVkZW50aWFs
IgorRkFJTCBGZWRlcmF0ZWRDcmVkZW50aWFsIGludGVyZmFjZTogZmVkZXJhdGVkQ3JlZGVudGlh
bCBtdXN0IGluaGVyaXQgcHJvcGVydHkgInByb3ZpZGVyIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBh
c3NlcnRfZXF1YWxzOiBVbmV4cGVjdGVkIGV4Y2VwdGlvbiB3aGVuIGV2YWx1YXRpbmcgb2JqZWN0
IGV4cGVjdGVkIG51bGwgYnV0IGdvdCBvYmplY3QgIlJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5k
IHZhcmlhYmxlOiBmZWRlcmF0ZWRDcmVkZW50aWFsIgorRkFJTCBGZWRlcmF0ZWRDcmVkZW50aWFs
IGludGVyZmFjZTogZmVkZXJhdGVkQ3JlZGVudGlhbCBtdXN0IGluaGVyaXQgcHJvcGVydHkgInBy
b3RvY29sIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBhc3NlcnRfZXF1YWxzOiBVbmV4cGVjdGVkIGV4
Y2VwdGlvbiB3aGVuIGV2YWx1YXRpbmcgb2JqZWN0IGV4cGVjdGVkIG51bGwgYnV0IGdvdCBvYmpl
Y3QgIlJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBmZWRlcmF0ZWRDcmVkZW50
aWFsIgorRkFJTCBGZWRlcmF0ZWRDcmVkZW50aWFsIGludGVyZmFjZTogZmVkZXJhdGVkQ3JlZGVu
dGlhbCBtdXN0IGluaGVyaXQgcHJvcGVydHkgIm5hbWUiIHdpdGggdGhlIHByb3BlciB0eXBlIGFz
c2VydF9lcXVhbHM6IFVuZXhwZWN0ZWQgZXhjZXB0aW9uIHdoZW4gZXZhbHVhdGluZyBvYmplY3Qg
ZXhwZWN0ZWQgbnVsbCBidXQgZ290IG9iamVjdCAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQg
dmFyaWFibGU6IGZlZGVyYXRlZENyZWRlbnRpYWwiCitGQUlMIEZlZGVyYXRlZENyZWRlbnRpYWwg
aW50ZXJmYWNlOiBmZWRlcmF0ZWRDcmVkZW50aWFsIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiaWNv
blVSTCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2VxdWFsczogVW5leHBlY3RlZCBleGNl
cHRpb24gd2hlbiBldmFsdWF0aW5nIG9iamVjdCBleHBlY3RlZCBudWxsIGJ1dCBnb3Qgb2JqZWN0
ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogZmVkZXJhdGVkQ3JlZGVudGlh
bCIKK0ZBSUwgQ3JlZGVudGlhbCBpbnRlcmZhY2U6IGZlZGVyYXRlZENyZWRlbnRpYWwgbXVzdCBp
bmhlcml0IHByb3BlcnR5ICJpZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2VxdWFsczog
VW5leHBlY3RlZCBleGNlcHRpb24gd2hlbiBldmFsdWF0aW5nIG9iamVjdCBleHBlY3RlZCBudWxs
IGJ1dCBnb3Qgb2JqZWN0ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogZmVk
ZXJhdGVkQ3JlZGVudGlhbCIKK0ZBSUwgQ3JlZGVudGlhbCBpbnRlcmZhY2U6IGZlZGVyYXRlZENy
ZWRlbnRpYWwgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJ0eXBlIiB3aXRoIHRoZSBwcm9wZXIgdHlw
ZSBhc3NlcnRfZXF1YWxzOiBVbmV4cGVjdGVkIGV4Y2VwdGlvbiB3aGVuIGV2YWx1YXRpbmcgb2Jq
ZWN0IGV4cGVjdGVkIG51bGwgYnV0IGdvdCBvYmplY3QgIlJlZmVyZW5jZUVycm9yOiBDYW4ndCBm
aW5kIHZhcmlhYmxlOiBmZWRlcmF0ZWRDcmVkZW50aWFsIgorUEFTUyBOYXZpZ2F0b3IgaW50ZXJm
YWNlOiBhdHRyaWJ1dGUgY3JlZGVudGlhbHMgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3JlZGVudGlhbC1tYW5hZ2VtZW50L2lkbGhh
cm5lc3MuaHR0cHMud2luZG93Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2NyZWRlbnRpYWwtbWFuYWdlbWVudC9pZGxoYXJuZXNzLmh0dHBzLndpbmRv
dy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjIzODI5MTM1MjhlNjkzYjNhNWQ1NmM2NjBhNDUwNjA5ODBiNTQ4
YzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2NyZWRlbnRpYWwtbWFuYWdlbWVudC9pZGxoYXJuZXNzLmh0dHBzLndpbmRvdy5o
dG1sCkBAIC0wLDAgKzEgQEAKKzwhLS0gVGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZvciBXZWJLaXQg
dGVzdCBpbmZyYXN0cnVjdHVyZSB0byBydW4gdGhlIHRlbXBsYXRlZCB0ZXN0IC0tPgpcIE5vIG5l
d2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3JlZGVudGlhbC1tYW5hZ2VtZW50L2lkbGhhcm5lc3MuaHR0
cHMud2luZG93LmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jcmVkZW50aWFsLW1hbmFnZW1lbnQvaWRsaGFybmVzcy5odHRwcy53aW5kb3cuanMKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNzg5NjQzZTIzNjlmY2EwYmFlZDEyNTc5YmMwY2ZiMjNmOTQzZjYxZQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Jl
ZGVudGlhbC1tYW5hZ2VtZW50L2lkbGhhcm5lc3MuaHR0cHMud2luZG93LmpzCkBAIC0wLDAgKzEs
MzYgQEAKKy8vIE1FVEE6IHNjcmlwdD0vcmVzb3VyY2VzL1dlYklETFBhcnNlci5qcworLy8gTUVU
QTogc2NyaXB0PS9yZXNvdXJjZXMvaWRsaGFybmVzcy5qcworCisvLyBodHRwczovL3czYy5naXRo
dWIuaW8vd2ViYXBwc2VjLWNyZWRlbnRpYWwtbWFuYWdlbWVudC8KKworJ3VzZSBzdHJpY3QnOwor
CitpZGxfdGVzdCgKKyAgWydjcmVkZW50aWFsLW1hbmFnZW1lbnQnXSwKKyAgWydodG1sJywgJ2Rv
bSddLAorICBpZGxfYXJyYXkgPT4geworICAgIGlkbF9hcnJheS5hZGRfb2JqZWN0cyh7CisgICAg
ICBDcmVkZW50aWFsc0NvbnRhaW5lcjogWyduYXZpZ2F0b3IuY3JlZGVudGlhbHMnXSwKKyAgICAg
IFBhc3N3b3JkQ3JlZGVudGlhbDogWydwYXNzd29yZENyZWRlbnRpYWwnXSwKKyAgICAgIEZlZGVy
YXRlZENyZWRlbnRpYWw6IFsnZmVkZXJhdGVkQ3JlZGVudGlhbCddLAorICAgIH0pOworCisgICAg
dHJ5IHsKKyAgICAgIHNlbGYucGFzc3dvcmRDcmVkZW50aWFsID0gbmV3IFBhc3N3b3JkQ3JlZGVu
dGlhbCh7CisgICAgICAgIGlkOiAiaWQiLAorICAgICAgICBwYXNzd29yZDogInBlbmNpbCIsCisg
ICAgICAgIGljb25VUkw6ICJodHRwczovL2V4YW1wbGUuY29tLyIsCisgICAgICAgIG5hbWU6ICJu
YW1lIgorICAgICAgfSk7CisgICAgfSBjYXRjaCAoZSkge30KKworICAgIHRyeSB7CisgICAgICBz
ZWxmLmZlZGVyYXRlZENyZWRlbnRpYWwgPSBuZXcgRmVkZXJhdGVkQ3JlZGVudGlhbCh7CisgICAg
ICAgIGlkOiAiaWQiLAorICAgICAgICBwcm92aWRlcjogImh0dHBzOi8vZXhhbXBsZS5jb20iLAor
ICAgICAgICBpY29uVVJMOiAiaHR0cHM6Ly9leGFtcGxlLmNvbS8iLAorICAgICAgICBuYW1lOiAi
bmFtZSIKKyAgICAgIH0pOworICAgIH0gY2F0Y2ggKGUpIHt9CisgIH0KKykKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3JlZGVudGlhbC1t
YW5hZ2VtZW50L3N1cHBvcnQvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2NyZWRlbnRpYWwtbWFuYWdlbWVudC9zdXBwb3J0L3czYy1p
bXBvcnQubG9nCmluZGV4IGFmMjA0YmQ2NTQ0ZmYxZjk0MWYzZWJhY2VmMWNlYzE4MDFiZDQ4ZDQu
LjdmMzRiOTdmZjI2MjE0NWYxNTBkZDNjZmY5NTI3OTRiNjY3NjU4MGQgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3JlZGVudGlhbC1tYW5h
Z2VtZW50L3N1cHBvcnQvdzNjLWltcG9ydC5sb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jcmVkZW50aWFsLW1hbmFnZW1lbnQvc3VwcG9ydC93M2Mt
aW1wb3J0LmxvZwpAQCAtMSw3ICsxLDcgQEAKIFRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3
ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgogRG8gTk9UIG1vZGlmeSB0aGVz
ZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCiBJbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVl
c3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMKKwlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAogCiBU
aGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byBy
ZWltcG9ydAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2NyZWRlbnRpYWwtbWFuYWdlbWVudC93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3JlZGVudGlhbC1tYW5hZ2VtZW50
L3czYy1pbXBvcnQubG9nCmluZGV4IDJiMTE3NjVmZmIyMTQ2MjNmOTMwYjRkNWZlZDkyZmYwZWJk
ZTM0OGQuLjdmOWU4MGUyMmQ3NzQ1YzRmOTAwMDA2NTc1NDNmYjM0MGFlMTU0N2UgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3JlZGVudGlh
bC1tYW5hZ2VtZW50L3czYy1pbXBvcnQubG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3JlZGVudGlhbC1tYW5hZ2VtZW50L3czYy1pbXBvcnQubG9n
CkBAIC0xLDcgKzEsNyBAQAogVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0
ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCiBEbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRp
cmVjdGx5IGluIFdlYktpdC4KIEluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUg
V1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cwor
CWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0CiAKIFRoZW4gcnVuIHRo
ZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0CiAK
QEAgLTE0LDkgKzE0LDkgQEAgUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4
ZXM6CiBOb25lCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIExpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jcmVkZW50aWFsLW1hbmFnZW1lbnQvT1dO
RVJTCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jcmVkZW50
aWFsLW1hbmFnZW1lbnQvTUVUQS55bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2NyZWRlbnRpYWwtbWFuYWdlbWVudC9jcmVkZW50aWFsc2NvbnRhaW5lci1j
cmVhdGUtYmFzaWNzLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2NyZWRlbnRpYWwtbWFuYWdlbWVudC9mZWRlcmF0ZWRjcmVkZW50aWFsLWZy
YW1lZC1nZXQuc3ViLmh0dHBzLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2NyZWRlbnRpYWwtbWFuYWdlbWVudC9pZGwuaHR0cHMuaHRtbAorL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3JlZGVudGlhbC1tYW5hZ2Vt
ZW50L2lkbGhhcm5lc3MuaHR0cHMud2luZG93LmpzCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jcmVkZW50aWFsLW1hbmFnZW1lbnQvcGFzc3dvcmRjcmVkZW50
aWFsLWZyYW1lZC1nZXQuc3ViLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2NyZWRlbnRpYWwtbWFuYWdlbWVudC9yZXF1aXJlX3NlY3VyZWNv
bnRleHQuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9jc3MvY3NzLXByb3BlcnRpZXMtdmFsdWVzLWFwaS9pZGxoYXJuZXNzLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzcy1wcm9wZXJ0aWVzLXZhbHVlcy1hcGkvaWRsaGFybmVzcy1leHBlY3RlZC50eHQKaW5kZXgg
YjY1ZjU0NDg1ZmI2MjdkZjA4MGU0YWFmNTI4N2RmZjdhNDliMmRhYy4uMjBjNWFmMmUyOTQwYWZi
NWQ2MjMwYTc4NjUwZDZkNjE2NDE4NmY2ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXByb3BlcnRpZXMtdmFsdWVzLWFwaS9p
ZGxoYXJuZXNzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtcHJvcGVydGllcy12YWx1ZXMtYXBpL2lkbGhhcm5lc3Mt
ZXhwZWN0ZWQudHh0CkBAIC0xLDMwICsxLDE2IEBACiAKLUZBSUwgVGVzdCBJREwgaW1wbGVtZW50
YXRpb24gb2YgQ1NTIFByb3BlcnRpZXMgVmFsdWVzIEFQSSBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxl
ZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJHb3QgYW4gZXJyb3IgYmVmb3JlIHBhcnNp
bmcgYW55IG5hbWVkIGRlZmluaXRpb246IFVucmVjb2duaXNlZCB0b2tlbnMsIGxpbmUgMSAodG9r
ZW5zOiAie1wiZXJyb3JcIjoge1wibWVzc2FnZVwiIikKLVsKLSAgICB7Ci0gICAgICAgICJ0eXBl
IjogInsiLAotICAgICAgICAidmFsdWUiOiAieyIsCi0gICAgICAgICJ0cml2aWEiOiAiIgotICAg
IH0sCi0gICAgewotICAgICAgICAidHlwZSI6ICJzdHJpbmciLAotICAgICAgICAidmFsdWUiOiAi
XCJlcnJvclwiIiwKLSAgICAgICAgInRyaXZpYSI6ICIiCi0gICAgfSwKLSAgICB7Ci0gICAgICAg
ICJ0eXBlIjogIjoiLAotICAgICAgICAidmFsdWUiOiAiOiIsCi0gICAgICAgICJ0cml2aWEiOiAi
IgotICAgIH0sCi0gICAgewotICAgICAgICAidHlwZSI6ICJ7IiwKLSAgICAgICAgInZhbHVlIjog
InsiLAotICAgICAgICAidHJpdmlhIjogIiAiCi0gICAgfSwKLSAgICB7Ci0gICAgICAgICJ0eXBl
IjogInN0cmluZyIsCi0gICAgICAgICJ2YWx1ZSI6ICJcIm1lc3NhZ2VcIiIsCi0gICAgICAgICJ0
cml2aWEiOiAiIgotICAgIH0KLV0iCitQQVNTIGlkbF90ZXN0IHNldHVwIAorUEFTUyBQYXJ0aWFs
IG5hbWVzcGFjZSBDU1M6IG9yaWdpbmFsIG5hbWVzcGFjZSBkZWZpbmVkIAorRkFJTCBDU1NQcm9w
ZXJ0eVJ1bGUgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNl
IG9iamVjdCBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3Bl
cnR5ICJDU1NQcm9wZXJ0eVJ1bGUiIGV4cGVjdGVkIHByb3BlcnR5ICJDU1NQcm9wZXJ0eVJ1bGUi
IG1pc3NpbmcKK0ZBSUwgQ1NTUHJvcGVydHlSdWxlIGludGVyZmFjZSBvYmplY3QgbGVuZ3RoIGFz
c2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIkNTU1By
b3BlcnR5UnVsZSIgZXhwZWN0ZWQgcHJvcGVydHkgIkNTU1Byb3BlcnR5UnVsZSIgbWlzc2luZwor
RkFJTCBDU1NQcm9wZXJ0eVJ1bGUgaW50ZXJmYWNlIG9iamVjdCBuYW1lIGFzc2VydF9vd25fcHJv
cGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIkNTU1Byb3BlcnR5UnVsZSIg
ZXhwZWN0ZWQgcHJvcGVydHkgIkNTU1Byb3BlcnR5UnVsZSIgbWlzc2luZworRkFJTCBDU1NQcm9w
ZXJ0eVJ1bGUgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNl
IHByb3RvdHlwZSBvYmplY3QgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZl
IG93biBwcm9wZXJ0eSAiQ1NTUHJvcGVydHlSdWxlIiBleHBlY3RlZCBwcm9wZXJ0eSAiQ1NTUHJv
cGVydHlSdWxlIiBtaXNzaW5nCitGQUlMIENTU1Byb3BlcnR5UnVsZSBpbnRlcmZhY2U6IGV4aXN0
ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzICJjb25z
dHJ1Y3RvciIgcHJvcGVydHkgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZl
IG93biBwcm9wZXJ0eSAiQ1NTUHJvcGVydHlSdWxlIiBleHBlY3RlZCBwcm9wZXJ0eSAiQ1NTUHJv
cGVydHlSdWxlIiBtaXNzaW5nCitGQUlMIENTU1Byb3BlcnR5UnVsZSBpbnRlcmZhY2U6IGV4aXN0
ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzIEBAdW5z
Y29wYWJsZXMgcHJvcGVydHkgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZl
IG93biBwcm9wZXJ0eSAiQ1NTUHJvcGVydHlSdWxlIiBleHBlY3RlZCBwcm9wZXJ0eSAiQ1NTUHJv
cGVydHlSdWxlIiBtaXNzaW5nCitGQUlMIENTU1Byb3BlcnR5UnVsZSBpbnRlcmZhY2U6IGF0dHJp
YnV0ZSBuYW1lIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJv
cGVydHkgIkNTU1Byb3BlcnR5UnVsZSIgZXhwZWN0ZWQgcHJvcGVydHkgIkNTU1Byb3BlcnR5UnVs
ZSIgbWlzc2luZworRkFJTCBDU1NQcm9wZXJ0eVJ1bGUgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgc3lu
dGF4IGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkg
IkNTU1Byb3BlcnR5UnVsZSIgZXhwZWN0ZWQgcHJvcGVydHkgIkNTU1Byb3BlcnR5UnVsZSIgbWlz
c2luZworRkFJTCBDU1NQcm9wZXJ0eVJ1bGUgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgaW5oZXJpdHMg
YXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiQ1NT
UHJvcGVydHlSdWxlIiBleHBlY3RlZCBwcm9wZXJ0eSAiQ1NTUHJvcGVydHlSdWxlIiBtaXNzaW5n
CitGQUlMIENTU1Byb3BlcnR5UnVsZSBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBpbml0aWFsVmFsdWUg
YXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiQ1NT
UHJvcGVydHlSdWxlIiBleHBlY3RlZCBwcm9wZXJ0eSAiQ1NTUHJvcGVydHlSdWxlIiBtaXNzaW5n
CitQQVNTIENTUyBuYW1lc3BhY2U6IG9wZXJhdGlvbiBlc2NhcGUoQ1NTT01TdHJpbmcpIAorUEFT
UyBDU1MgbmFtZXNwYWNlOiBvcGVyYXRpb24gcmVnaXN0ZXJQcm9wZXJ0eShQcm9wZXJ0eURlZmlu
aXRpb24pIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3MtcHJvcGVydGllcy12YWx1ZXMtYXBpL2lkbGhhcm5lc3MuaHRtbCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1wcm9w
ZXJ0aWVzLXZhbHVlcy1hcGkvaWRsaGFybmVzcy5odG1sCmluZGV4IGU1N2YwZjAwY2EyNmNiNmE5
MzQyYjFiNmY4NDI1OWUyYmI5MDg3OTAuLjZmMDUzNzU3YzNjZWYwOTlmMGNlYTQxNzE2YTk0MmRm
YTdlNjYxMDAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzcy1wcm9wZXJ0aWVzLXZhbHVlcy1hcGkvaWRsaGFybmVzcy5odG1sCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1w
cm9wZXJ0aWVzLXZhbHVlcy1hcGkvaWRsaGFybmVzcy5odG1sCkBAIC04LDEzICs4LDkgQEAKIDxz
Y3JpcHQ+CiAgICJ1c2Ugc3RyaWN0IjsKIAotICBwcm9taXNlX3Rlc3QoYXN5bmMgKCkgPT4gewot
ICAgIGNvbnN0IGlkbCA9IGF3YWl0IGZldGNoKCIvaW50ZXJmYWNlcy9jc3MtcHJvcGVydGllcy12
YWx1ZXMtYXBpLmlkbCIpLnRoZW4ociA9PiByLnRleHQoKSk7Ci0gICAgY29uc3QgY3Nzb20gPSBh
d2FpdCBmZXRjaCgiL2ludGVyZmFjZXMvY3Nzb20uaWRsIikudGhlbihyID0+IHIudGV4dCgpKTsK
LQotICAgIGNvbnN0IGlkbF9hcnJheSA9IG5ldyBJZGxBcnJheSgpOwotICAgIGlkbF9hcnJheS5h
ZGRfaWRscyhpZGwpOwotICAgIGlkbF9hcnJheS5hZGRfZGVwZW5kZW5jeV9pZGxzKGNzc29tKTsK
LSAgICBpZGxfYXJyYXkudGVzdCgpOwotICB9LCAiVGVzdCBJREwgaW1wbGVtZW50YXRpb24gb2Yg
Q1NTIFByb3BlcnRpZXMgVmFsdWVzIEFQSSIpOworICBpZGxfdGVzdCgKKyAgICBbImNzcy1wcm9w
ZXJ0aWVzLXZhbHVlcy1hcGkiXSwKKyAgICBbImNzc29tIl0KKyAgICAvLyBObyBvYmplY3RzCisg
ICk7CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvaW50ZXJmYWNlcy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3
L2ludGVyZmFjZXMtZXhwZWN0ZWQudHh0CmluZGV4IGI1NWMxZWNiODQ3NjBiMTU1ODg4YmI5MDMx
MmRiZmE3OGIxODFmYTUuLjllNDRhZTE0YjgwZmFjMGEzNzc4Zjc3NDU0YWE4Njk5OWI2ZGJjMWYg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzc29tLXZpZXcvaW50ZXJmYWNlcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9pbnRlcmZhY2Vz
LWV4cGVjdGVkLnR4dApAQCAtMiwzOCArMiwzNDEgQEAKIENTU09NIFZpZXcgSURMIHRlc3RzCiAK
IAotRkFJTCBpZGxfdGVzdCBzZXR1cCBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24g
d2l0aCB2YWx1ZTogb2JqZWN0ICJHb3QgYW4gZXJyb3IgYmVmb3JlIHBhcnNpbmcgYW55IG5hbWVk
IGRlZmluaXRpb246IFVucmVjb2duaXNlZCB0b2tlbnMsIGxpbmUgMSAodG9rZW5zOiAie1wiZXJy
b3JcIjoge1wibWVzc2FnZVwiIikKLVsKLSAgICB7Ci0gICAgICAgICJ0eXBlIjogInsiLAotICAg
ICAgICAidmFsdWUiOiAieyIsCi0gICAgICAgICJ0cml2aWEiOiAiIgotICAgIH0sCi0gICAgewot
ICAgICAgICAidHlwZSI6ICJzdHJpbmciLAotICAgICAgICAidmFsdWUiOiAiXCJlcnJvclwiIiwK
LSAgICAgICAgInRyaXZpYSI6ICIiCi0gICAgfSwKLSAgICB7Ci0gICAgICAgICJ0eXBlIjogIjoi
LAotICAgICAgICAidmFsdWUiOiAiOiIsCi0gICAgICAgICJ0cml2aWEiOiAiIgotICAgIH0sCi0g
ICAgewotICAgICAgICAidHlwZSI6ICJ7IiwKLSAgICAgICAgInZhbHVlIjogInsiLAotICAgICAg
ICAidHJpdmlhIjogIiAiCi0gICAgfSwKLSAgICB7Ci0gICAgICAgICJ0eXBlIjogInN0cmluZyIs
Ci0gICAgICAgICJ2YWx1ZSI6ICJcIm1lc3NhZ2VcIiIsCi0gICAgICAgICJ0cml2aWEiOiAiIgot
ICAgIH0KLV0iCi1GQUlMIFBhcnRpYWwgaW50ZXJmYWNlIFdpbmRvdzogb3JpZ2luYWwgaW50ZXJm
YWNlIGRlZmluZWQgYXNzZXJ0X3RydWU6IE9yaWdpbmFsIGludGVyZmFjZSBzaG91bGQgYmUgZGVm
aW5lZCBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBQYXJ0aWFsIGludGVyZmFjZSBEb2N1
bWVudDogb3JpZ2luYWwgaW50ZXJmYWNlIGRlZmluZWQgYXNzZXJ0X3RydWU6IE9yaWdpbmFsIGlu
dGVyZmFjZSBzaG91bGQgYmUgZGVmaW5lZCBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBQ
YXJ0aWFsIGludGVyZmFjZSBFbGVtZW50OiBvcmlnaW5hbCBpbnRlcmZhY2UgZGVmaW5lZCBhc3Nl
cnRfdHJ1ZTogT3JpZ2luYWwgaW50ZXJmYWNlIHNob3VsZCBiZSBkZWZpbmVkIGV4cGVjdGVkIHRy
dWUgZ290IGZhbHNlCi1GQUlMIFBhcnRpYWwgaW50ZXJmYWNlIEhUTUxFbGVtZW50OiBvcmlnaW5h
bCBpbnRlcmZhY2UgZGVmaW5lZCBhc3NlcnRfdHJ1ZTogT3JpZ2luYWwgaW50ZXJmYWNlIHNob3Vs
ZCBiZSBkZWZpbmVkIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFBhcnRpYWwgaW50ZXJm
YWNlIEhUTUxJbWFnZUVsZW1lbnQ6IG9yaWdpbmFsIGludGVyZmFjZSBkZWZpbmVkIGFzc2VydF90
cnVlOiBPcmlnaW5hbCBpbnRlcmZhY2Ugc2hvdWxkIGJlIGRlZmluZWQgZXhwZWN0ZWQgdHJ1ZSBn
b3QgZmFsc2UKLUZBSUwgUGFydGlhbCBpbnRlcmZhY2UgUmFuZ2U6IG9yaWdpbmFsIGludGVyZmFj
ZSBkZWZpbmVkIGFzc2VydF90cnVlOiBPcmlnaW5hbCBpbnRlcmZhY2Ugc2hvdWxkIGJlIGRlZmlu
ZWQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK1BBU1MgaWRsX3Rlc3Qgc2V0dXAgCitQQVNTIFBh
cnRpYWwgaW50ZXJmYWNlIFdpbmRvdzogb3JpZ2luYWwgaW50ZXJmYWNlIGRlZmluZWQgCitQQVNT
IFBhcnRpYWwgaW50ZXJmYWNlIERvY3VtZW50OiBvcmlnaW5hbCBpbnRlcmZhY2UgZGVmaW5lZCAK
K1BBU1MgUGFydGlhbCBpbnRlcmZhY2UgRWxlbWVudDogb3JpZ2luYWwgaW50ZXJmYWNlIGRlZmlu
ZWQgCitQQVNTIFBhcnRpYWwgaW50ZXJmYWNlIEhUTUxFbGVtZW50OiBvcmlnaW5hbCBpbnRlcmZh
Y2UgZGVmaW5lZCAKK1BBU1MgUGFydGlhbCBpbnRlcmZhY2UgSFRNTEltYWdlRWxlbWVudDogb3Jp
Z2luYWwgaW50ZXJmYWNlIGRlZmluZWQgCitQQVNTIFBhcnRpYWwgaW50ZXJmYWNlIFJhbmdlOiBv
cmlnaW5hbCBpbnRlcmZhY2UgZGVmaW5lZCAKK1BBU1MgUGFydGlhbCBpbnRlcmZhY2UgTW91c2VF
dmVudDogb3JpZ2luYWwgaW50ZXJmYWNlIGRlZmluZWQgCitQQVNTIFBhcnRpYWwgZGljdGlvbmFy
eSBNb3VzZUV2ZW50SW5pdDogb3JpZ2luYWwgZGljdGlvbmFyeSBkZWZpbmVkIAorRkFJTCBNZWRp
YVF1ZXJ5TGlzdCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZh
Y2Ugb2JqZWN0IGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJv
cGVydHkgIk1lZGlhUXVlcnlMaXN0IiBleHBlY3RlZCBwcm9wZXJ0eSAiTWVkaWFRdWVyeUxpc3Qi
IG1pc3NpbmcKK0ZBSUwgTWVkaWFRdWVyeUxpc3QgaW50ZXJmYWNlIG9iamVjdCBsZW5ndGggYXNz
ZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiTWVkaWFR
dWVyeUxpc3QiIGV4cGVjdGVkIHByb3BlcnR5ICJNZWRpYVF1ZXJ5TGlzdCIgbWlzc2luZworRkFJ
TCBNZWRpYVF1ZXJ5TGlzdCBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUgYXNzZXJ0X293bl9wcm9wZXJ0
eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiTWVkaWFRdWVyeUxpc3QiIGV4cGVj
dGVkIHByb3BlcnR5ICJNZWRpYVF1ZXJ5TGlzdCIgbWlzc2luZworRkFJTCBNZWRpYVF1ZXJ5TGlz
dCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90
eXBlIG9iamVjdCBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHBy
b3BlcnR5ICJNZWRpYVF1ZXJ5TGlzdCIgZXhwZWN0ZWQgcHJvcGVydHkgIk1lZGlhUXVlcnlMaXN0
IiBtaXNzaW5nCitGQUlMIE1lZGlhUXVlcnlMaXN0IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBw
cm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgImNvbnN0cnVjdG9yIiBw
cm9wZXJ0eSBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3Bl
cnR5ICJNZWRpYVF1ZXJ5TGlzdCIgZXhwZWN0ZWQgcHJvcGVydHkgIk1lZGlhUXVlcnlMaXN0IiBt
aXNzaW5nCitGQUlMIE1lZGlhUXVlcnlMaXN0IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9w
ZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgQEB1bnNjb3BhYmxlcyBwcm9w
ZXJ0eSBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5
ICJNZWRpYVF1ZXJ5TGlzdCIgZXhwZWN0ZWQgcHJvcGVydHkgIk1lZGlhUXVlcnlMaXN0IiBtaXNz
aW5nCitGQUlMIE1lZGlhUXVlcnlMaXN0IGludGVyZmFjZTogYXR0cmlidXRlIG1lZGlhIGFzc2Vy
dF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIk1lZGlhUXVl
cnlMaXN0IiBleHBlY3RlZCBwcm9wZXJ0eSAiTWVkaWFRdWVyeUxpc3QiIG1pc3NpbmcKK0ZBSUwg
TWVkaWFRdWVyeUxpc3QgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgbWF0Y2hlcyBhc3NlcnRfb3duX3By
b3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJNZWRpYVF1ZXJ5TGlzdCIg
ZXhwZWN0ZWQgcHJvcGVydHkgIk1lZGlhUXVlcnlMaXN0IiBtaXNzaW5nCitGQUlMIE1lZGlhUXVl
cnlMaXN0IGludGVyZmFjZTogb3BlcmF0aW9uIGFkZExpc3RlbmVyKEV2ZW50TGlzdGVuZXIpIGFz
c2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIk1lZGlh
UXVlcnlMaXN0IiBleHBlY3RlZCBwcm9wZXJ0eSAiTWVkaWFRdWVyeUxpc3QiIG1pc3NpbmcKK0ZB
SUwgTWVkaWFRdWVyeUxpc3QgaW50ZXJmYWNlOiBvcGVyYXRpb24gcmVtb3ZlTGlzdGVuZXIoRXZl
bnRMaXN0ZW5lcikgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBw
cm9wZXJ0eSAiTWVkaWFRdWVyeUxpc3QiIGV4cGVjdGVkIHByb3BlcnR5ICJNZWRpYVF1ZXJ5TGlz
dCIgbWlzc2luZworRkFJTCBNZWRpYVF1ZXJ5TGlzdCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBvbmNo
YW5nZSBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5
ICJNZWRpYVF1ZXJ5TGlzdCIgZXhwZWN0ZWQgcHJvcGVydHkgIk1lZGlhUXVlcnlMaXN0IiBtaXNz
aW5nCitGQUlMIE1lZGlhUXVlcnlMaXN0IG11c3QgYmUgcHJpbWFyeSBpbnRlcmZhY2Ugb2YgbWF0
Y2hNZWRpYSgiYWxsIikgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93
biBwcm9wZXJ0eSAiTWVkaWFRdWVyeUxpc3QiIGV4cGVjdGVkIHByb3BlcnR5ICJNZWRpYVF1ZXJ5
TGlzdCIgbWlzc2luZworUEFTUyBTdHJpbmdpZmljYXRpb24gb2YgbWF0Y2hNZWRpYSgiYWxsIikg
CitQQVNTIE1lZGlhUXVlcnlMaXN0IGludGVyZmFjZTogbWF0Y2hNZWRpYSgiYWxsIikgbXVzdCBp
bmhlcml0IHByb3BlcnR5ICJtZWRpYSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIE1lZGlh
UXVlcnlMaXN0IGludGVyZmFjZTogbWF0Y2hNZWRpYSgiYWxsIikgbXVzdCBpbmhlcml0IHByb3Bl
cnR5ICJtYXRjaGVzIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgTWVkaWFRdWVyeUxpc3Qg
aW50ZXJmYWNlOiBtYXRjaE1lZGlhKCJhbGwiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImFkZExp
c3RlbmVyKEV2ZW50TGlzdGVuZXIpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK0ZBSUwgTWVkaWFR
dWVyeUxpc3QgaW50ZXJmYWNlOiBjYWxsaW5nIGFkZExpc3RlbmVyKEV2ZW50TGlzdGVuZXIpIG9u
IG1hdGNoTWVkaWEoImFsbCIpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBl
RXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1
bmN0aW9uICgpIHsKKyAgICAgICAgICAgIGZuLmFwcGx5KG9iaiwgYXJncyk7CisgICAgICAgIH0i
IGRpZCBub3QgdGhyb3cKK1BBU1MgTWVkaWFRdWVyeUxpc3QgaW50ZXJmYWNlOiBtYXRjaE1lZGlh
KCJhbGwiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInJlbW92ZUxpc3RlbmVyKEV2ZW50TGlzdGVu
ZXIpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK0ZBSUwgTWVkaWFRdWVyeUxpc3QgaW50ZXJmYWNl
OiBjYWxsaW5nIHJlbW92ZUxpc3RlbmVyKEV2ZW50TGlzdGVuZXIpIG9uIG1hdGNoTWVkaWEoImFs
bCIpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Ro
cm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKKyAg
ICAgICAgICAgIGZuLmFwcGx5KG9iaiwgYXJncyk7CisgICAgICAgIH0iIGRpZCBub3QgdGhyb3cK
K0ZBSUwgTWVkaWFRdWVyeUxpc3QgaW50ZXJmYWNlOiBtYXRjaE1lZGlhKCJhbGwiKSBtdXN0IGlu
aGVyaXQgcHJvcGVydHkgIm9uY2hhbmdlIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBhc3NlcnRfaW5o
ZXJpdHM6IHByb3BlcnR5ICJvbmNoYW5nZSIgbm90IGZvdW5kIGluIHByb3RvdHlwZSBjaGFpbgor
RkFJTCBNZWRpYVF1ZXJ5TGlzdEV2ZW50IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0
aWVzIG9mIGludGVyZmFjZSBvYmplY3QgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5v
dCBoYXZlIG93biBwcm9wZXJ0eSAiTWVkaWFRdWVyeUxpc3RFdmVudCIgZXhwZWN0ZWQgcHJvcGVy
dHkgIk1lZGlhUXVlcnlMaXN0RXZlbnQiIG1pc3NpbmcKK0ZBSUwgTWVkaWFRdWVyeUxpc3RFdmVu
dCBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aCBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMg
bm90IGhhdmUgb3duIHByb3BlcnR5ICJNZWRpYVF1ZXJ5TGlzdEV2ZW50IiBleHBlY3RlZCBwcm9w
ZXJ0eSAiTWVkaWFRdWVyeUxpc3RFdmVudCIgbWlzc2luZworRkFJTCBNZWRpYVF1ZXJ5TGlzdEV2
ZW50IGludGVyZmFjZSBvYmplY3QgbmFtZSBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMg
bm90IGhhdmUgb3duIHByb3BlcnR5ICJNZWRpYVF1ZXJ5TGlzdEV2ZW50IiBleHBlY3RlZCBwcm9w
ZXJ0eSAiTWVkaWFRdWVyeUxpc3RFdmVudCIgbWlzc2luZworRkFJTCBNZWRpYVF1ZXJ5TGlzdEV2
ZW50IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90
b3R5cGUgb2JqZWN0IGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24g
cHJvcGVydHkgIk1lZGlhUXVlcnlMaXN0RXZlbnQiIGV4cGVjdGVkIHByb3BlcnR5ICJNZWRpYVF1
ZXJ5TGlzdEV2ZW50IiBtaXNzaW5nCitGQUlMIE1lZGlhUXVlcnlMaXN0RXZlbnQgaW50ZXJmYWNl
OiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3Qn
cyAiY29uc3RydWN0b3IiIHByb3BlcnR5IGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBu
b3QgaGF2ZSBvd24gcHJvcGVydHkgIk1lZGlhUXVlcnlMaXN0RXZlbnQiIGV4cGVjdGVkIHByb3Bl
cnR5ICJNZWRpYVF1ZXJ5TGlzdEV2ZW50IiBtaXNzaW5nCitGQUlMIE1lZGlhUXVlcnlMaXN0RXZl
bnQgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3Rv
dHlwZSBvYmplY3QncyBAQHVuc2NvcGFibGVzIHByb3BlcnR5IGFzc2VydF9vd25fcHJvcGVydHk6
IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIk1lZGlhUXVlcnlMaXN0RXZlbnQiIGV4
cGVjdGVkIHByb3BlcnR5ICJNZWRpYVF1ZXJ5TGlzdEV2ZW50IiBtaXNzaW5nCitGQUlMIE1lZGlh
UXVlcnlMaXN0RXZlbnQgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgbWVkaWEgYXNzZXJ0X293bl9wcm9w
ZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiTWVkaWFRdWVyeUxpc3RFdmVu
dCIgZXhwZWN0ZWQgcHJvcGVydHkgIk1lZGlhUXVlcnlMaXN0RXZlbnQiIG1pc3NpbmcKK0ZBSUwg
TWVkaWFRdWVyeUxpc3RFdmVudCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBtYXRjaGVzIGFzc2VydF9v
d25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIk1lZGlhUXVlcnlM
aXN0RXZlbnQiIGV4cGVjdGVkIHByb3BlcnR5ICJNZWRpYVF1ZXJ5TGlzdEV2ZW50IiBtaXNzaW5n
CitGQUlMIE1lZGlhUXVlcnlMaXN0RXZlbnQgbXVzdCBiZSBwcmltYXJ5IGludGVyZmFjZSBvZiBu
ZXcgTWVkaWFRdWVyeUxpc3RFdmVudCgiY2hhbmdlIikgYXNzZXJ0X2VxdWFsczogVW5leHBlY3Rl
ZCBleGNlcHRpb24gd2hlbiBldmFsdWF0aW5nIG9iamVjdCBleHBlY3RlZCBudWxsIGJ1dCBnb3Qg
b2JqZWN0ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogTWVkaWFRdWVyeUxp
c3RFdmVudCIKK0ZBSUwgU3RyaW5naWZpY2F0aW9uIG9mIG5ldyBNZWRpYVF1ZXJ5TGlzdEV2ZW50
KCJjaGFuZ2UiKSBhc3NlcnRfZXF1YWxzOiBVbmV4cGVjdGVkIGV4Y2VwdGlvbiB3aGVuIGV2YWx1
YXRpbmcgb2JqZWN0IGV4cGVjdGVkIG51bGwgYnV0IGdvdCBvYmplY3QgIlJlZmVyZW5jZUVycm9y
OiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBNZWRpYVF1ZXJ5TGlzdEV2ZW50IgorRkFJTCBNZWRpYVF1
ZXJ5TGlzdEV2ZW50IGludGVyZmFjZTogbmV3IE1lZGlhUXVlcnlMaXN0RXZlbnQoImNoYW5nZSIp
IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAibWVkaWEiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2Vy
dF9lcXVhbHM6IFVuZXhwZWN0ZWQgZXhjZXB0aW9uIHdoZW4gZXZhbHVhdGluZyBvYmplY3QgZXhw
ZWN0ZWQgbnVsbCBidXQgZ290IG9iamVjdCAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFy
aWFibGU6IE1lZGlhUXVlcnlMaXN0RXZlbnQiCitGQUlMIE1lZGlhUXVlcnlMaXN0RXZlbnQgaW50
ZXJmYWNlOiBuZXcgTWVkaWFRdWVyeUxpc3RFdmVudCgiY2hhbmdlIikgbXVzdCBpbmhlcml0IHBy
b3BlcnR5ICJtYXRjaGVzIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBhc3NlcnRfZXF1YWxzOiBVbmV4
cGVjdGVkIGV4Y2VwdGlvbiB3aGVuIGV2YWx1YXRpbmcgb2JqZWN0IGV4cGVjdGVkIG51bGwgYnV0
IGdvdCBvYmplY3QgIlJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBNZWRpYVF1
ZXJ5TGlzdEV2ZW50IgorUEFTUyBTY3JlZW4gaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3Bl
cnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCAKK1BBU1MgU2NyZWVuIGludGVyZmFjZSBvYmplY3Qg
bGVuZ3RoIAorUEFTUyBTY3JlZW4gaW50ZXJmYWNlIG9iamVjdCBuYW1lIAorUEFTUyBTY3JlZW4g
aW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlw
ZSBvYmplY3QgCitQQVNTIFNjcmVlbiBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGll
cyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzICJjb25zdHJ1Y3RvciIgcHJvcGVydHkg
CitQQVNTIFNjcmVlbiBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRl
cmZhY2UgcHJvdG90eXBlIG9iamVjdCdzIEBAdW5zY29wYWJsZXMgcHJvcGVydHkgCitQQVNTIFNj
cmVlbiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBhdmFpbFdpZHRoIAorUEFTUyBTY3JlZW4gaW50ZXJm
YWNlOiBhdHRyaWJ1dGUgYXZhaWxIZWlnaHQgCitQQVNTIFNjcmVlbiBpbnRlcmZhY2U6IGF0dHJp
YnV0ZSB3aWR0aCAKK1BBU1MgU2NyZWVuIGludGVyZmFjZTogYXR0cmlidXRlIGhlaWdodCAKK1BB
U1MgU2NyZWVuIGludGVyZmFjZTogYXR0cmlidXRlIGNvbG9yRGVwdGggCitQQVNTIFNjcmVlbiBp
bnRlcmZhY2U6IGF0dHJpYnV0ZSBwaXhlbERlcHRoIAorUEFTUyBTY3JlZW4gbXVzdCBiZSBwcmlt
YXJ5IGludGVyZmFjZSBvZiBzY3JlZW4gCitQQVNTIFN0cmluZ2lmaWNhdGlvbiBvZiBzY3JlZW4g
CitQQVNTIFNjcmVlbiBpbnRlcmZhY2U6IHNjcmVlbiBtdXN0IGluaGVyaXQgcHJvcGVydHkgImF2
YWlsV2lkdGgiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBTY3JlZW4gaW50ZXJmYWNlOiBz
Y3JlZW4gbXVzdCBpbmhlcml0IHByb3BlcnR5ICJhdmFpbEhlaWdodCIgd2l0aCB0aGUgcHJvcGVy
IHR5cGUgCitQQVNTIFNjcmVlbiBpbnRlcmZhY2U6IHNjcmVlbiBtdXN0IGluaGVyaXQgcHJvcGVy
dHkgIndpZHRoIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgU2NyZWVuIGludGVyZmFjZTog
c2NyZWVuIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiaGVpZ2h0IiB3aXRoIHRoZSBwcm9wZXIgdHlw
ZSAKK1BBU1MgU2NyZWVuIGludGVyZmFjZTogc2NyZWVuIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAi
Y29sb3JEZXB0aCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIFNjcmVlbiBpbnRlcmZhY2U6
IHNjcmVlbiBtdXN0IGluaGVyaXQgcHJvcGVydHkgInBpeGVsRGVwdGgiIHdpdGggdGhlIHByb3Bl
ciB0eXBlIAorRkFJTCBDYXJldFBvc2l0aW9uIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9w
ZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2Vz
IG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiQ2FyZXRQb3NpdGlvbiIgZXhwZWN0ZWQgcHJvcGVydHkg
IkNhcmV0UG9zaXRpb24iIG1pc3NpbmcKK0ZBSUwgQ2FyZXRQb3NpdGlvbiBpbnRlcmZhY2Ugb2Jq
ZWN0IGxlbmd0aCBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHBy
b3BlcnR5ICJDYXJldFBvc2l0aW9uIiBleHBlY3RlZCBwcm9wZXJ0eSAiQ2FyZXRQb3NpdGlvbiIg
bWlzc2luZworRkFJTCBDYXJldFBvc2l0aW9uIGludGVyZmFjZSBvYmplY3QgbmFtZSBhc3NlcnRf
b3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJDYXJldFBvc2l0
aW9uIiBleHBlY3RlZCBwcm9wZXJ0eSAiQ2FyZXRQb3NpdGlvbiIgbWlzc2luZworRkFJTCBDYXJl
dFBvc2l0aW9uIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFj
ZSBwcm90b3R5cGUgb2JqZWN0IGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2
ZSBvd24gcHJvcGVydHkgIkNhcmV0UG9zaXRpb24iIGV4cGVjdGVkIHByb3BlcnR5ICJDYXJldFBv
c2l0aW9uIiBtaXNzaW5nCitGQUlMIENhcmV0UG9zaXRpb24gaW50ZXJmYWNlOiBleGlzdGVuY2Ug
YW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyAiY29uc3RydWN0
b3IiIHByb3BlcnR5IGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24g
cHJvcGVydHkgIkNhcmV0UG9zaXRpb24iIGV4cGVjdGVkIHByb3BlcnR5ICJDYXJldFBvc2l0aW9u
IiBtaXNzaW5nCitGQUlMIENhcmV0UG9zaXRpb24gaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHBy
b3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyBAQHVuc2NvcGFibGVzIHBy
b3BlcnR5IGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVy
dHkgIkNhcmV0UG9zaXRpb24iIGV4cGVjdGVkIHByb3BlcnR5ICJDYXJldFBvc2l0aW9uIiBtaXNz
aW5nCitGQUlMIENhcmV0UG9zaXRpb24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgb2Zmc2V0Tm9kZSBh
c3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJDYXJl
dFBvc2l0aW9uIiBleHBlY3RlZCBwcm9wZXJ0eSAiQ2FyZXRQb3NpdGlvbiIgbWlzc2luZworRkFJ
TCBDYXJldFBvc2l0aW9uIGludGVyZmFjZTogYXR0cmlidXRlIG9mZnNldCBhc3NlcnRfb3duX3By
b3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJDYXJldFBvc2l0aW9uIiBl
eHBlY3RlZCBwcm9wZXJ0eSAiQ2FyZXRQb3NpdGlvbiIgbWlzc2luZworRkFJTCBDYXJldFBvc2l0
aW9uIGludGVyZmFjZTogb3BlcmF0aW9uIGdldENsaWVudFJlY3QoKSBhc3NlcnRfb3duX3Byb3Bl
cnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJDYXJldFBvc2l0aW9uIiBleHBl
Y3RlZCBwcm9wZXJ0eSAiQ2FyZXRQb3NpdGlvbiIgbWlzc2luZworRkFJTCBDYXJldFBvc2l0aW9u
IG11c3QgYmUgcHJpbWFyeSBpbnRlcmZhY2Ugb2YgZG9jdW1lbnQuY2FyZXRQb3NpdGlvbkZyb21Q
b2ludCg1LCA1KSBhc3NlcnRfZXF1YWxzOiBVbmV4cGVjdGVkIGV4Y2VwdGlvbiB3aGVuIGV2YWx1
YXRpbmcgb2JqZWN0IGV4cGVjdGVkIG51bGwgYnV0IGdvdCBvYmplY3QgIlR5cGVFcnJvcjogZG9j
dW1lbnQuY2FyZXRQb3NpdGlvbkZyb21Qb2ludCBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdkb2N1
bWVudC5jYXJldFBvc2l0aW9uRnJvbVBvaW50KDUsIDUpJywgJ2RvY3VtZW50LmNhcmV0UG9zaXRp
b25Gcm9tUG9pbnQnIGlzIHVuZGVmaW5lZCkiCitGQUlMIFN0cmluZ2lmaWNhdGlvbiBvZiBkb2N1
bWVudC5jYXJldFBvc2l0aW9uRnJvbVBvaW50KDUsIDUpIGFzc2VydF9lcXVhbHM6IFVuZXhwZWN0
ZWQgZXhjZXB0aW9uIHdoZW4gZXZhbHVhdGluZyBvYmplY3QgZXhwZWN0ZWQgbnVsbCBidXQgZ290
IG9iamVjdCAiVHlwZUVycm9yOiBkb2N1bWVudC5jYXJldFBvc2l0aW9uRnJvbVBvaW50IGlzIG5v
dCBhIGZ1bmN0aW9uLiAoSW4gJ2RvY3VtZW50LmNhcmV0UG9zaXRpb25Gcm9tUG9pbnQoNSwgNSkn
LCAnZG9jdW1lbnQuY2FyZXRQb3NpdGlvbkZyb21Qb2ludCcgaXMgdW5kZWZpbmVkKSIKK0ZBSUwg
Q2FyZXRQb3NpdGlvbiBpbnRlcmZhY2U6IGRvY3VtZW50LmNhcmV0UG9zaXRpb25Gcm9tUG9pbnQo
NSwgNSkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJvZmZzZXROb2RlIiB3aXRoIHRoZSBwcm9wZXIg
dHlwZSBhc3NlcnRfZXF1YWxzOiBVbmV4cGVjdGVkIGV4Y2VwdGlvbiB3aGVuIGV2YWx1YXRpbmcg
b2JqZWN0IGV4cGVjdGVkIG51bGwgYnV0IGdvdCBvYmplY3QgIlR5cGVFcnJvcjogZG9jdW1lbnQu
Y2FyZXRQb3NpdGlvbkZyb21Qb2ludCBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdkb2N1bWVudC5j
YXJldFBvc2l0aW9uRnJvbVBvaW50KDUsIDUpJywgJ2RvY3VtZW50LmNhcmV0UG9zaXRpb25Gcm9t
UG9pbnQnIGlzIHVuZGVmaW5lZCkiCitGQUlMIENhcmV0UG9zaXRpb24gaW50ZXJmYWNlOiBkb2N1
bWVudC5jYXJldFBvc2l0aW9uRnJvbVBvaW50KDUsIDUpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAi
b2Zmc2V0IiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBhc3NlcnRfZXF1YWxzOiBVbmV4cGVjdGVkIGV4
Y2VwdGlvbiB3aGVuIGV2YWx1YXRpbmcgb2JqZWN0IGV4cGVjdGVkIG51bGwgYnV0IGdvdCBvYmpl
Y3QgIlR5cGVFcnJvcjogZG9jdW1lbnQuY2FyZXRQb3NpdGlvbkZyb21Qb2ludCBpcyBub3QgYSBm
dW5jdGlvbi4gKEluICdkb2N1bWVudC5jYXJldFBvc2l0aW9uRnJvbVBvaW50KDUsIDUpJywgJ2Rv
Y3VtZW50LmNhcmV0UG9zaXRpb25Gcm9tUG9pbnQnIGlzIHVuZGVmaW5lZCkiCitGQUlMIENhcmV0
UG9zaXRpb24gaW50ZXJmYWNlOiBkb2N1bWVudC5jYXJldFBvc2l0aW9uRnJvbVBvaW50KDUsIDUp
IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiZ2V0Q2xpZW50UmVjdCgpIiB3aXRoIHRoZSBwcm9wZXIg
dHlwZSBhc3NlcnRfZXF1YWxzOiBVbmV4cGVjdGVkIGV4Y2VwdGlvbiB3aGVuIGV2YWx1YXRpbmcg
b2JqZWN0IGV4cGVjdGVkIG51bGwgYnV0IGdvdCBvYmplY3QgIlR5cGVFcnJvcjogZG9jdW1lbnQu
Y2FyZXRQb3NpdGlvbkZyb21Qb2ludCBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdkb2N1bWVudC5j
YXJldFBvc2l0aW9uRnJvbVBvaW50KDUsIDUpJywgJ2RvY3VtZW50LmNhcmV0UG9zaXRpb25Gcm9t
UG9pbnQnIGlzIHVuZGVmaW5lZCkiCitGQUlMIENTU1BzZXVkb0VsZW1lbnQgaW50ZXJmYWNlOiBv
cGVyYXRpb24gZ2V0Qm94UXVhZHMoQm94UXVhZE9wdGlvbnMpIGFzc2VydF9vd25fcHJvcGVydHk6
IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIkNTU1BzZXVkb0VsZW1lbnQiIGV4cGVj
dGVkIHByb3BlcnR5ICJDU1NQc2V1ZG9FbGVtZW50IiBtaXNzaW5nCitGQUlMIENTU1BzZXVkb0Vs
ZW1lbnQgaW50ZXJmYWNlOiBvcGVyYXRpb24gY29udmVydFF1YWRGcm9tTm9kZShET01RdWFkSW5p
dCwgR2VvbWV0cnlOb2RlLCBDb252ZXJ0Q29vcmRpbmF0ZU9wdGlvbnMpIGFzc2VydF9vd25fcHJv
cGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIkNTU1BzZXVkb0VsZW1lbnQi
IGV4cGVjdGVkIHByb3BlcnR5ICJDU1NQc2V1ZG9FbGVtZW50IiBtaXNzaW5nCitGQUlMIENTU1Bz
ZXVkb0VsZW1lbnQgaW50ZXJmYWNlOiBvcGVyYXRpb24gY29udmVydFJlY3RGcm9tTm9kZShET01S
ZWN0UmVhZE9ubHksIEdlb21ldHJ5Tm9kZSwgQ29udmVydENvb3JkaW5hdGVPcHRpb25zKSBhc3Nl
cnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJDU1NQc2V1
ZG9FbGVtZW50IiBleHBlY3RlZCBwcm9wZXJ0eSAiQ1NTUHNldWRvRWxlbWVudCIgbWlzc2luZwor
RkFJTCBDU1NQc2V1ZG9FbGVtZW50IGludGVyZmFjZTogb3BlcmF0aW9uIGNvbnZlcnRQb2ludEZy
b21Ob2RlKERPTVBvaW50SW5pdCwgR2VvbWV0cnlOb2RlLCBDb252ZXJ0Q29vcmRpbmF0ZU9wdGlv
bnMpIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkg
IkNTU1BzZXVkb0VsZW1lbnQiIGV4cGVjdGVkIHByb3BlcnR5ICJDU1NQc2V1ZG9FbGVtZW50IiBt
aXNzaW5nCitQQVNTIE1vdXNlRXZlbnQgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgc2NyZWVuWCAKK1BB
U1MgTW91c2VFdmVudCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBzY3JlZW5ZIAorRkFJTCBNb3VzZUV2
ZW50IGludGVyZmFjZTogYXR0cmlidXRlIHBhZ2VYIGFzc2VydF9vd25fcHJvcGVydHk6IGV4cGVj
dGVkIHByb3BlcnR5ICJwYWdlWCIgbWlzc2luZworRkFJTCBNb3VzZUV2ZW50IGludGVyZmFjZTog
YXR0cmlidXRlIHBhZ2VZIGFzc2VydF9vd25fcHJvcGVydHk6IGV4cGVjdGVkIHByb3BlcnR5ICJw
YWdlWSIgbWlzc2luZworUEFTUyBNb3VzZUV2ZW50IGludGVyZmFjZTogYXR0cmlidXRlIGNsaWVu
dFggCitQQVNTIE1vdXNlRXZlbnQgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgY2xpZW50WSAKK1BBU1Mg
TW91c2VFdmVudCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSB4IAorUEFTUyBNb3VzZUV2ZW50IGludGVy
ZmFjZTogYXR0cmlidXRlIHkgCitQQVNTIE1vdXNlRXZlbnQgaW50ZXJmYWNlOiBhdHRyaWJ1dGUg
b2Zmc2V0WCAKK1BBU1MgTW91c2VFdmVudCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBvZmZzZXRZIAor
UEFTUyBIVE1MRWxlbWVudCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBvZmZzZXRQYXJlbnQgCitQQVNT
IEhUTUxFbGVtZW50IGludGVyZmFjZTogYXR0cmlidXRlIG9mZnNldFRvcCAKK1BBU1MgSFRNTEVs
ZW1lbnQgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgb2Zmc2V0TGVmdCAKK1BBU1MgSFRNTEVsZW1lbnQg
aW50ZXJmYWNlOiBhdHRyaWJ1dGUgb2Zmc2V0V2lkdGggCitQQVNTIEhUTUxFbGVtZW50IGludGVy
ZmFjZTogYXR0cmlidXRlIG9mZnNldEhlaWdodCAKK1BBU1MgSFRNTEVsZW1lbnQgaW50ZXJmYWNl
OiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgIm9m
ZnNldFBhcmVudCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIEhUTUxFbGVtZW50IGludGVy
ZmFjZTogZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikgbXVzdCBpbmhlcml0IHByb3BlcnR5
ICJvZmZzZXRUb3AiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBIVE1MRWxlbWVudCBpbnRl
cmZhY2U6IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0
eSAib2Zmc2V0TGVmdCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIEhUTUxFbGVtZW50IGlu
dGVyZmFjZTogZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikgbXVzdCBpbmhlcml0IHByb3Bl
cnR5ICJvZmZzZXRXaWR0aCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIEhUTUxFbGVtZW50
IGludGVyZmFjZTogZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikgbXVzdCBpbmhlcml0IHBy
b3BlcnR5ICJvZmZzZXRIZWlnaHQiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBFbGVtZW50
IGludGVyZmFjZTogZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikgbXVzdCBpbmhlcml0IHBy
b3BlcnR5ICJnZXRDbGllbnRSZWN0cygpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgRWxl
bWVudCBpbnRlcmZhY2U6IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpIG11c3QgaW5oZXJp
dCBwcm9wZXJ0eSAiZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkiIHdpdGggdGhlIHByb3BlciB0eXBl
IAorUEFTUyBFbGVtZW50IGludGVyZmFjZTogZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iikg
bXVzdCBpbmhlcml0IHByb3BlcnR5ICJzY3JvbGxJbnRvVmlldyhbb2JqZWN0IE9iamVjdF0sW29i
amVjdCBPYmplY3RdKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIEVsZW1lbnQgaW50ZXJm
YWNlOiBjYWxsaW5nIHNjcm9sbEludG9WaWV3KFtvYmplY3QgT2JqZWN0XSxbb2JqZWN0IE9iamVj
dF0pIG9uIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpIHdpdGggdG9vIGZldyBhcmd1bWVu
dHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCitQQVNTIEVsZW1lbnQgaW50ZXJmYWNlOiBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJkaXYiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInNjcm9sbChTY3Jv
bGxUb09wdGlvbnMpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgRWxlbWVudCBpbnRlcmZh
Y2U6IGNhbGxpbmcgc2Nyb2xsKFNjcm9sbFRvT3B0aW9ucykgb24gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgiZGl2Iikgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAK
K1BBU1MgRWxlbWVudCBpbnRlcmZhY2U6IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpIG11
c3QgaW5oZXJpdCBwcm9wZXJ0eSAic2Nyb2xsKHVucmVzdHJpY3RlZCBkb3VibGUsIHVucmVzdHJp
Y3RlZCBkb3VibGUpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgRWxlbWVudCBpbnRlcmZh
Y2U6IGNhbGxpbmcgc2Nyb2xsKHVucmVzdHJpY3RlZCBkb3VibGUsIHVucmVzdHJpY3RlZCBkb3Vi
bGUpIG9uIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpIHdpdGggdG9vIGZldyBhcmd1bWVu
dHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCitQQVNTIEVsZW1lbnQgaW50ZXJmYWNlOiBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJkaXYiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInNjcm9sbFRvKFNj
cm9sbFRvT3B0aW9ucykiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBFbGVtZW50IGludGVy
ZmFjZTogY2FsbGluZyBzY3JvbGxUbyhTY3JvbGxUb09wdGlvbnMpIG9uIGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoImRpdiIpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJy
b3IgCitQQVNTIEVsZW1lbnQgaW50ZXJmYWNlOiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYi
KSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInNjcm9sbFRvKHVucmVzdHJpY3RlZCBkb3VibGUsIHVu
cmVzdHJpY3RlZCBkb3VibGUpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgRWxlbWVudCBp
bnRlcmZhY2U6IGNhbGxpbmcgc2Nyb2xsVG8odW5yZXN0cmljdGVkIGRvdWJsZSwgdW5yZXN0cmlj
dGVkIGRvdWJsZSkgb24gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iikgd2l0aCB0b28gZmV3
IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKK1BBU1MgRWxlbWVudCBpbnRlcmZhY2U6
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAic2Ny
b2xsQnkoU2Nyb2xsVG9PcHRpb25zKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIEVsZW1l
bnQgaW50ZXJmYWNlOiBjYWxsaW5nIHNjcm9sbEJ5KFNjcm9sbFRvT3B0aW9ucykgb24gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgiZGl2Iikgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93
IFR5cGVFcnJvciAKK1BBU1MgRWxlbWVudCBpbnRlcmZhY2U6IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoImRpdiIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAic2Nyb2xsQnkodW5yZXN0cmljdGVkIGRv
dWJsZSwgdW5yZXN0cmljdGVkIGRvdWJsZSkiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBF
bGVtZW50IGludGVyZmFjZTogY2FsbGluZyBzY3JvbGxCeSh1bnJlc3RyaWN0ZWQgZG91YmxlLCB1
bnJlc3RyaWN0ZWQgZG91YmxlKSBvbiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSB3aXRo
IHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAorUEFTUyBFbGVtZW50IGlu
dGVyZmFjZTogZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikgbXVzdCBpbmhlcml0IHByb3Bl
cnR5ICJzY3JvbGxUb3AiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBFbGVtZW50IGludGVy
ZmFjZTogZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikgbXVzdCBpbmhlcml0IHByb3BlcnR5
ICJzY3JvbGxMZWZ0IiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgRWxlbWVudCBpbnRlcmZh
Y2U6IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAi
c2Nyb2xsV2lkdGgiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBFbGVtZW50IGludGVyZmFj
ZTogZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJz
Y3JvbGxIZWlnaHQiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBFbGVtZW50IGludGVyZmFj
ZTogZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJj
bGllbnRUb3AiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBFbGVtZW50IGludGVyZmFjZTog
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJjbGll
bnRMZWZ0IiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgRWxlbWVudCBpbnRlcmZhY2U6IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiY2xpZW50
V2lkdGgiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBFbGVtZW50IGludGVyZmFjZTogZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJjbGllbnRI
ZWlnaHQiIHdpdGggdGhlIHByb3BlciB0eXBlIAorRkFJTCBFbGVtZW50IGludGVyZmFjZTogZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJnZXRCb3hR
dWFkcyhCb3hRdWFkT3B0aW9ucykiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9pbmhlcml0
czogcHJvcGVydHkgImdldEJveFF1YWRzIiBub3QgZm91bmQgaW4gcHJvdG90eXBlIGNoYWluCitG
QUlMIEVsZW1lbnQgaW50ZXJmYWNlOiBjYWxsaW5nIGdldEJveFF1YWRzKEJveFF1YWRPcHRpb25z
KSBvbiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRz
IG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF9pbmhlcml0czogcHJvcGVydHkgImdldEJveFF1
YWRzIiBub3QgZm91bmQgaW4gcHJvdG90eXBlIGNoYWluCitGQUlMIEVsZW1lbnQgaW50ZXJmYWNl
OiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImNv
bnZlcnRRdWFkRnJvbU5vZGUoRE9NUXVhZEluaXQsIEdlb21ldHJ5Tm9kZSwgQ29udmVydENvb3Jk
aW5hdGVPcHRpb25zKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2luaGVyaXRzOiBwcm9w
ZXJ0eSAiY29udmVydFF1YWRGcm9tTm9kZSIgbm90IGZvdW5kIGluIHByb3RvdHlwZSBjaGFpbgor
RkFJTCBFbGVtZW50IGludGVyZmFjZTogY2FsbGluZyBjb252ZXJ0UXVhZEZyb21Ob2RlKERPTVF1
YWRJbml0LCBHZW9tZXRyeU5vZGUsIENvbnZlcnRDb29yZGluYXRlT3B0aW9ucykgb24gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgiZGl2Iikgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93
IFR5cGVFcnJvciBhc3NlcnRfaW5oZXJpdHM6IHByb3BlcnR5ICJjb252ZXJ0UXVhZEZyb21Ob2Rl
IiBub3QgZm91bmQgaW4gcHJvdG90eXBlIGNoYWluCitGQUlMIEVsZW1lbnQgaW50ZXJmYWNlOiBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImNvbnZl
cnRSZWN0RnJvbU5vZGUoRE9NUmVjdFJlYWRPbmx5LCBHZW9tZXRyeU5vZGUsIENvbnZlcnRDb29y
ZGluYXRlT3B0aW9ucykiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9pbmhlcml0czogcHJv
cGVydHkgImNvbnZlcnRSZWN0RnJvbU5vZGUiIG5vdCBmb3VuZCBpbiBwcm90b3R5cGUgY2hhaW4K
K0ZBSUwgRWxlbWVudCBpbnRlcmZhY2U6IGNhbGxpbmcgY29udmVydFJlY3RGcm9tTm9kZShET01S
ZWN0UmVhZE9ubHksIEdlb21ldHJ5Tm9kZSwgQ29udmVydENvb3JkaW5hdGVPcHRpb25zKSBvbiBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3Qg
dGhyb3cgVHlwZUVycm9yIGFzc2VydF9pbmhlcml0czogcHJvcGVydHkgImNvbnZlcnRSZWN0RnJv
bU5vZGUiIG5vdCBmb3VuZCBpbiBwcm90b3R5cGUgY2hhaW4KK0ZBSUwgRWxlbWVudCBpbnRlcmZh
Y2U6IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAi
Y29udmVydFBvaW50RnJvbU5vZGUoRE9NUG9pbnRJbml0LCBHZW9tZXRyeU5vZGUsIENvbnZlcnRD
b29yZGluYXRlT3B0aW9ucykiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9pbmhlcml0czog
cHJvcGVydHkgImNvbnZlcnRQb2ludEZyb21Ob2RlIiBub3QgZm91bmQgaW4gcHJvdG90eXBlIGNo
YWluCitGQUlMIEVsZW1lbnQgaW50ZXJmYWNlOiBjYWxsaW5nIGNvbnZlcnRQb2ludEZyb21Ob2Rl
KERPTVBvaW50SW5pdCwgR2VvbWV0cnlOb2RlLCBDb252ZXJ0Q29vcmRpbmF0ZU9wdGlvbnMpIG9u
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVz
dCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X2luaGVyaXRzOiBwcm9wZXJ0eSAiY29udmVydFBvaW50
RnJvbU5vZGUiIG5vdCBmb3VuZCBpbiBwcm90b3R5cGUgY2hhaW4KK1BBU1MgSFRNTEltYWdlRWxl
bWVudCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSB4IAorUEFTUyBIVE1MSW1hZ2VFbGVtZW50IGludGVy
ZmFjZTogYXR0cmlidXRlIHkgCitQQVNTIEhUTUxJbWFnZUVsZW1lbnQgaW50ZXJmYWNlOiBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJpbWciKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgIngiIHdpdGgg
dGhlIHByb3BlciB0eXBlIAorUEFTUyBIVE1MSW1hZ2VFbGVtZW50IGludGVyZmFjZTogZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgiaW1nIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJ5IiB3aXRoIHRo
ZSBwcm9wZXIgdHlwZSAKK1BBU1MgSFRNTEVsZW1lbnQgaW50ZXJmYWNlOiBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJpbWciKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgIm9mZnNldFBhcmVudCIgd2l0
aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIEhUTUxFbGVtZW50IGludGVyZmFjZTogZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgiaW1nIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJvZmZzZXRUb3AiIHdp
dGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBIVE1MRWxlbWVudCBpbnRlcmZhY2U6IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoImltZyIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAib2Zmc2V0TGVmdCIg
d2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIEhUTUxFbGVtZW50IGludGVyZmFjZTogZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgiaW1nIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJvZmZzZXRXaWR0
aCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIEhUTUxFbGVtZW50IGludGVyZmFjZTogZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgiaW1nIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJvZmZzZXRI
ZWlnaHQiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBFbGVtZW50IGludGVyZmFjZTogZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgiaW1nIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJnZXRDbGll
bnRSZWN0cygpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgRWxlbWVudCBpbnRlcmZhY2U6
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImltZyIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiZ2V0
Qm91bmRpbmdDbGllbnRSZWN0KCkiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBFbGVtZW50
IGludGVyZmFjZTogZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW1nIikgbXVzdCBpbmhlcml0IHBy
b3BlcnR5ICJzY3JvbGxJbnRvVmlldyhbb2JqZWN0IE9iamVjdF0sW29iamVjdCBPYmplY3RdKSIg
d2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIEVsZW1lbnQgaW50ZXJmYWNlOiBjYWxsaW5nIHNj
cm9sbEludG9WaWV3KFtvYmplY3QgT2JqZWN0XSxbb2JqZWN0IE9iamVjdF0pIG9uIGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoImltZyIpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBU
eXBlRXJyb3IgCitQQVNTIEVsZW1lbnQgaW50ZXJmYWNlOiBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCJpbWciKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInNjcm9sbChTY3JvbGxUb09wdGlvbnMpIiB3
aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgRWxlbWVudCBpbnRlcmZhY2U6IGNhbGxpbmcgc2Ny
b2xsKFNjcm9sbFRvT3B0aW9ucykgb24gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW1nIikgd2l0
aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKK1BBU1MgRWxlbWVudCBp
bnRlcmZhY2U6IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImltZyIpIG11c3QgaW5oZXJpdCBwcm9w
ZXJ0eSAic2Nyb2xsKHVucmVzdHJpY3RlZCBkb3VibGUsIHVucmVzdHJpY3RlZCBkb3VibGUpIiB3
aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgRWxlbWVudCBpbnRlcmZhY2U6IGNhbGxpbmcgc2Ny
b2xsKHVucmVzdHJpY3RlZCBkb3VibGUsIHVucmVzdHJpY3RlZCBkb3VibGUpIG9uIGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoImltZyIpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBU
eXBlRXJyb3IgCitQQVNTIEVsZW1lbnQgaW50ZXJmYWNlOiBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCJpbWciKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInNjcm9sbFRvKFNjcm9sbFRvT3B0aW9ucyki
IHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBFbGVtZW50IGludGVyZmFjZTogY2FsbGluZyBz
Y3JvbGxUbyhTY3JvbGxUb09wdGlvbnMpIG9uIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImltZyIp
IHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCitQQVNTIEVsZW1l
bnQgaW50ZXJmYWNlOiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbWciKSBtdXN0IGluaGVyaXQg
cHJvcGVydHkgInNjcm9sbFRvKHVucmVzdHJpY3RlZCBkb3VibGUsIHVucmVzdHJpY3RlZCBkb3Vi
bGUpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgRWxlbWVudCBpbnRlcmZhY2U6IGNhbGxp
bmcgc2Nyb2xsVG8odW5yZXN0cmljdGVkIGRvdWJsZSwgdW5yZXN0cmljdGVkIGRvdWJsZSkgb24g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW1nIikgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0
IHRocm93IFR5cGVFcnJvciAKK1BBU1MgRWxlbWVudCBpbnRlcmZhY2U6IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoImltZyIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAic2Nyb2xsQnkoU2Nyb2xsVG9P
cHRpb25zKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIEVsZW1lbnQgaW50ZXJmYWNlOiBj
YWxsaW5nIHNjcm9sbEJ5KFNjcm9sbFRvT3B0aW9ucykgb24gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgiaW1nIikgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKK1BB
U1MgRWxlbWVudCBpbnRlcmZhY2U6IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImltZyIpIG11c3Qg
aW5oZXJpdCBwcm9wZXJ0eSAic2Nyb2xsQnkodW5yZXN0cmljdGVkIGRvdWJsZSwgdW5yZXN0cmlj
dGVkIGRvdWJsZSkiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBFbGVtZW50IGludGVyZmFj
ZTogY2FsbGluZyBzY3JvbGxCeSh1bnJlc3RyaWN0ZWQgZG91YmxlLCB1bnJlc3RyaWN0ZWQgZG91
YmxlKSBvbiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbWciKSB3aXRoIHRvbyBmZXcgYXJndW1l
bnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAorUEFTUyBFbGVtZW50IGludGVyZmFjZTogZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgiaW1nIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJzY3JvbGxUb3Ai
IHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBFbGVtZW50IGludGVyZmFjZTogZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgiaW1nIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJzY3JvbGxMZWZ0IiB3
aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgRWxlbWVudCBpbnRlcmZhY2U6IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoImltZyIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAic2Nyb2xsV2lkdGgiIHdp
dGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBFbGVtZW50IGludGVyZmFjZTogZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgiaW1nIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJzY3JvbGxIZWlnaHQiIHdp
dGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBFbGVtZW50IGludGVyZmFjZTogZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgiaW1nIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJjbGllbnRUb3AiIHdpdGgg
dGhlIHByb3BlciB0eXBlIAorUEFTUyBFbGVtZW50IGludGVyZmFjZTogZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgiaW1nIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJjbGllbnRMZWZ0IiB3aXRoIHRo
ZSBwcm9wZXIgdHlwZSAKK1BBU1MgRWxlbWVudCBpbnRlcmZhY2U6IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoImltZyIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiY2xpZW50V2lkdGgiIHdpdGggdGhl
IHByb3BlciB0eXBlIAorUEFTUyBFbGVtZW50IGludGVyZmFjZTogZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgiaW1nIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJjbGllbnRIZWlnaHQiIHdpdGggdGhl
IHByb3BlciB0eXBlIAorRkFJTCBFbGVtZW50IGludGVyZmFjZTogZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgiaW1nIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJnZXRCb3hRdWFkcyhCb3hRdWFkT3B0
aW9ucykiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9pbmhlcml0czogcHJvcGVydHkgImdl
dEJveFF1YWRzIiBub3QgZm91bmQgaW4gcHJvdG90eXBlIGNoYWluCitGQUlMIEVsZW1lbnQgaW50
ZXJmYWNlOiBjYWxsaW5nIGdldEJveFF1YWRzKEJveFF1YWRPcHRpb25zKSBvbiBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCJpbWciKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlw
ZUVycm9yIGFzc2VydF9pbmhlcml0czogcHJvcGVydHkgImdldEJveFF1YWRzIiBub3QgZm91bmQg
aW4gcHJvdG90eXBlIGNoYWluCitGQUlMIEVsZW1lbnQgaW50ZXJmYWNlOiBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJpbWciKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImNvbnZlcnRRdWFkRnJvbU5v
ZGUoRE9NUXVhZEluaXQsIEdlb21ldHJ5Tm9kZSwgQ29udmVydENvb3JkaW5hdGVPcHRpb25zKSIg
d2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2luaGVyaXRzOiBwcm9wZXJ0eSAiY29udmVydFF1
YWRGcm9tTm9kZSIgbm90IGZvdW5kIGluIHByb3RvdHlwZSBjaGFpbgorRkFJTCBFbGVtZW50IGlu
dGVyZmFjZTogY2FsbGluZyBjb252ZXJ0UXVhZEZyb21Ob2RlKERPTVF1YWRJbml0LCBHZW9tZXRy
eU5vZGUsIENvbnZlcnRDb29yZGluYXRlT3B0aW9ucykgb24gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgiaW1nIikgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3Nl
cnRfaW5oZXJpdHM6IHByb3BlcnR5ICJjb252ZXJ0UXVhZEZyb21Ob2RlIiBub3QgZm91bmQgaW4g
cHJvdG90eXBlIGNoYWluCitGQUlMIEVsZW1lbnQgaW50ZXJmYWNlOiBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJpbWciKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImNvbnZlcnRSZWN0RnJvbU5vZGUo
RE9NUmVjdFJlYWRPbmx5LCBHZW9tZXRyeU5vZGUsIENvbnZlcnRDb29yZGluYXRlT3B0aW9ucyki
IHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9pbmhlcml0czogcHJvcGVydHkgImNvbnZlcnRS
ZWN0RnJvbU5vZGUiIG5vdCBmb3VuZCBpbiBwcm90b3R5cGUgY2hhaW4KK0ZBSUwgRWxlbWVudCBp
bnRlcmZhY2U6IGNhbGxpbmcgY29udmVydFJlY3RGcm9tTm9kZShET01SZWN0UmVhZE9ubHksIEdl
b21ldHJ5Tm9kZSwgQ29udmVydENvb3JkaW5hdGVPcHRpb25zKSBvbiBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJpbWciKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9y
IGFzc2VydF9pbmhlcml0czogcHJvcGVydHkgImNvbnZlcnRSZWN0RnJvbU5vZGUiIG5vdCBmb3Vu
ZCBpbiBwcm90b3R5cGUgY2hhaW4KK0ZBSUwgRWxlbWVudCBpbnRlcmZhY2U6IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoImltZyIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiY29udmVydFBvaW50RnJv
bU5vZGUoRE9NUG9pbnRJbml0LCBHZW9tZXRyeU5vZGUsIENvbnZlcnRDb29yZGluYXRlT3B0aW9u
cykiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9pbmhlcml0czogcHJvcGVydHkgImNvbnZl
cnRQb2ludEZyb21Ob2RlIiBub3QgZm91bmQgaW4gcHJvdG90eXBlIGNoYWluCitGQUlMIEVsZW1l
bnQgaW50ZXJmYWNlOiBjYWxsaW5nIGNvbnZlcnRQb2ludEZyb21Ob2RlKERPTVBvaW50SW5pdCwg
R2VvbWV0cnlOb2RlLCBDb252ZXJ0Q29vcmRpbmF0ZU9wdGlvbnMpIG9uIGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoImltZyIpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJy
b3IgYXNzZXJ0X2luaGVyaXRzOiBwcm9wZXJ0eSAiY29udmVydFBvaW50RnJvbU5vZGUiIG5vdCBm
b3VuZCBpbiBwcm90b3R5cGUgY2hhaW4KK1BBU1MgV2luZG93IGludGVyZmFjZTogb3BlcmF0aW9u
IG1hdGNoTWVkaWEoQ1NTT01TdHJpbmcpIAorUEFTUyBXaW5kb3cgaW50ZXJmYWNlOiBhdHRyaWJ1
dGUgc2NyZWVuIAorRkFJTCBXaW5kb3cgaW50ZXJmYWNlOiBvcGVyYXRpb24gbW92ZVRvKGxvbmcs
IGxvbmcpIGFzc2VydF9lcXVhbHM6IHByb3BlcnR5IGhhcyB3cm9uZyAubGVuZ3RoIGV4cGVjdGVk
IDIgYnV0IGdvdCAwCitGQUlMIFdpbmRvdyBpbnRlcmZhY2U6IG9wZXJhdGlvbiBtb3ZlQnkobG9u
ZywgbG9uZykgYXNzZXJ0X2VxdWFsczogcHJvcGVydHkgaGFzIHdyb25nIC5sZW5ndGggZXhwZWN0
ZWQgMiBidXQgZ290IDAKK0ZBSUwgV2luZG93IGludGVyZmFjZTogb3BlcmF0aW9uIHJlc2l6ZVRv
KGxvbmcsIGxvbmcpIGFzc2VydF9lcXVhbHM6IHByb3BlcnR5IGhhcyB3cm9uZyAubGVuZ3RoIGV4
cGVjdGVkIDIgYnV0IGdvdCAwCitGQUlMIFdpbmRvdyBpbnRlcmZhY2U6IG9wZXJhdGlvbiByZXNp
emVCeShsb25nLCBsb25nKSBhc3NlcnRfZXF1YWxzOiBwcm9wZXJ0eSBoYXMgd3JvbmcgLmxlbmd0
aCBleHBlY3RlZCAyIGJ1dCBnb3QgMAorUEFTUyBXaW5kb3cgaW50ZXJmYWNlOiBhdHRyaWJ1dGUg
aW5uZXJXaWR0aCAKK1BBU1MgV2luZG93IGludGVyZmFjZTogYXR0cmlidXRlIGlubmVySGVpZ2h0
IAorUEFTUyBXaW5kb3cgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgc2Nyb2xsWCAKK1BBU1MgV2luZG93
IGludGVyZmFjZTogYXR0cmlidXRlIHBhZ2VYT2Zmc2V0IAorUEFTUyBXaW5kb3cgaW50ZXJmYWNl
OiBhdHRyaWJ1dGUgc2Nyb2xsWSAKK1BBU1MgV2luZG93IGludGVyZmFjZTogYXR0cmlidXRlIHBh
Z2VZT2Zmc2V0IAorUEFTUyBXaW5kb3cgaW50ZXJmYWNlOiBvcGVyYXRpb24gc2Nyb2xsKFNjcm9s
bFRvT3B0aW9ucykgCitQQVNTIFdpbmRvdyBpbnRlcmZhY2U6IG9wZXJhdGlvbiBzY3JvbGwodW5y
ZXN0cmljdGVkIGRvdWJsZSwgdW5yZXN0cmljdGVkIGRvdWJsZSkgCitQQVNTIFdpbmRvdyBpbnRl
cmZhY2U6IG9wZXJhdGlvbiBzY3JvbGxUbyhTY3JvbGxUb09wdGlvbnMpIAorUEFTUyBXaW5kb3cg
aW50ZXJmYWNlOiBvcGVyYXRpb24gc2Nyb2xsVG8odW5yZXN0cmljdGVkIGRvdWJsZSwgdW5yZXN0
cmljdGVkIGRvdWJsZSkgCitQQVNTIFdpbmRvdyBpbnRlcmZhY2U6IG9wZXJhdGlvbiBzY3JvbGxC
eShTY3JvbGxUb09wdGlvbnMpIAorUEFTUyBXaW5kb3cgaW50ZXJmYWNlOiBvcGVyYXRpb24gc2Ny
b2xsQnkodW5yZXN0cmljdGVkIGRvdWJsZSwgdW5yZXN0cmljdGVkIGRvdWJsZSkgCitQQVNTIFdp
bmRvdyBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBzY3JlZW5YIAorUEFTUyBXaW5kb3cgaW50ZXJmYWNl
OiBhdHRyaWJ1dGUgc2NyZWVuTGVmdCAKK1BBU1MgV2luZG93IGludGVyZmFjZTogYXR0cmlidXRl
IHNjcmVlblkgCitQQVNTIFdpbmRvdyBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBzY3JlZW5Ub3AgCitQ
QVNTIFdpbmRvdyBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBvdXRlcldpZHRoIAorUEFTUyBXaW5kb3cg
aW50ZXJmYWNlOiBhdHRyaWJ1dGUgb3V0ZXJIZWlnaHQgCitQQVNTIFdpbmRvdyBpbnRlcmZhY2U6
IGF0dHJpYnV0ZSBkZXZpY2VQaXhlbFJhdGlvIAorUEFTUyBXaW5kb3cgaW50ZXJmYWNlOiB3aW5k
b3cgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJtYXRjaE1lZGlhKENTU09NU3RyaW5nKSIgd2l0aCB0
aGUgcHJvcGVyIHR5cGUgCitQQVNTIFdpbmRvdyBpbnRlcmZhY2U6IGNhbGxpbmcgbWF0Y2hNZWRp
YShDU1NPTVN0cmluZykgb24gd2luZG93IHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJv
dyBUeXBlRXJyb3IgCitQQVNTIFdpbmRvdyBpbnRlcmZhY2U6IHdpbmRvdyBtdXN0IGluaGVyaXQg
cHJvcGVydHkgInNjcmVlbiIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIFdpbmRvdyBpbnRl
cmZhY2U6IHdpbmRvdyBtdXN0IGluaGVyaXQgcHJvcGVydHkgIm1vdmVUbyhsb25nLCBsb25nKSIg
d2l0aCB0aGUgcHJvcGVyIHR5cGUgCitGQUlMIFdpbmRvdyBpbnRlcmZhY2U6IGNhbGxpbmcgbW92
ZVRvKGxvbmcsIGxvbmcpIG9uIHdpbmRvdyB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhy
b3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0
aW9uICJmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICBmbi5hcHBseShvYmosIGFyZ3MpOworICAg
ICAgICB9IiBkaWQgbm90IHRocm93CitQQVNTIFdpbmRvdyBpbnRlcmZhY2U6IHdpbmRvdyBtdXN0
IGluaGVyaXQgcHJvcGVydHkgIm1vdmVCeShsb25nLCBsb25nKSIgd2l0aCB0aGUgcHJvcGVyIHR5
cGUgCitGQUlMIFdpbmRvdyBpbnRlcmZhY2U6IGNhbGxpbmcgbW92ZUJ5KGxvbmcsIGxvbmcpIG9u
IHdpbmRvdyB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2Vy
dF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7
CisgICAgICAgICAgICBmbi5hcHBseShvYmosIGFyZ3MpOworICAgICAgICB9IiBkaWQgbm90IHRo
cm93CitQQVNTIFdpbmRvdyBpbnRlcmZhY2U6IHdpbmRvdyBtdXN0IGluaGVyaXQgcHJvcGVydHkg
InJlc2l6ZVRvKGxvbmcsIGxvbmcpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK0ZBSUwgV2luZG93
IGludGVyZmFjZTogY2FsbGluZyByZXNpemVUbyhsb25nLCBsb25nKSBvbiB3aW5kb3cgd2l0aCB0
b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxs
ZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeworICAgICAgICAgICAg
Zm4uYXBwbHkob2JqLCBhcmdzKTsKKyAgICAgICAgfSIgZGlkIG5vdCB0aHJvdworUEFTUyBXaW5k
b3cgaW50ZXJmYWNlOiB3aW5kb3cgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJyZXNpemVCeShsb25n
LCBsb25nKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitGQUlMIFdpbmRvdyBpbnRlcmZhY2U6IGNh
bGxpbmcgcmVzaXplQnkobG9uZywgbG9uZykgb24gd2luZG93IHdpdGggdG9vIGZldyBhcmd1bWVu
dHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1
bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIGZuLmFwcGx5KG9iaiwg
YXJncyk7CisgICAgICAgIH0iIGRpZCBub3QgdGhyb3cKK1BBU1MgV2luZG93IGludGVyZmFjZTog
d2luZG93IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiaW5uZXJXaWR0aCIgd2l0aCB0aGUgcHJvcGVy
IHR5cGUgCitQQVNTIFdpbmRvdyBpbnRlcmZhY2U6IHdpbmRvdyBtdXN0IGluaGVyaXQgcHJvcGVy
dHkgImlubmVySGVpZ2h0IiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgV2luZG93IGludGVy
ZmFjZTogd2luZG93IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAic2Nyb2xsWCIgd2l0aCB0aGUgcHJv
cGVyIHR5cGUgCitQQVNTIFdpbmRvdyBpbnRlcmZhY2U6IHdpbmRvdyBtdXN0IGluaGVyaXQgcHJv
cGVydHkgInBhZ2VYT2Zmc2V0IiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgV2luZG93IGlu
dGVyZmFjZTogd2luZG93IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAic2Nyb2xsWSIgd2l0aCB0aGUg
cHJvcGVyIHR5cGUgCitQQVNTIFdpbmRvdyBpbnRlcmZhY2U6IHdpbmRvdyBtdXN0IGluaGVyaXQg
cHJvcGVydHkgInBhZ2VZT2Zmc2V0IiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgV2luZG93
IGludGVyZmFjZTogd2luZG93IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAic2Nyb2xsKFNjcm9sbFRv
T3B0aW9ucykiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBXaW5kb3cgaW50ZXJmYWNlOiBj
YWxsaW5nIHNjcm9sbChTY3JvbGxUb09wdGlvbnMpIG9uIHdpbmRvdyB3aXRoIHRvbyBmZXcgYXJn
dW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAorUEFTUyBXaW5kb3cgaW50ZXJmYWNlOiB3aW5k
b3cgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJzY3JvbGwodW5yZXN0cmljdGVkIGRvdWJsZSwgdW5y
ZXN0cmljdGVkIGRvdWJsZSkiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBXaW5kb3cgaW50
ZXJmYWNlOiBjYWxsaW5nIHNjcm9sbCh1bnJlc3RyaWN0ZWQgZG91YmxlLCB1bnJlc3RyaWN0ZWQg
ZG91YmxlKSBvbiB3aW5kb3cgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVF
cnJvciAKK1BBU1MgV2luZG93IGludGVyZmFjZTogd2luZG93IG11c3QgaW5oZXJpdCBwcm9wZXJ0
eSAic2Nyb2xsVG8oU2Nyb2xsVG9PcHRpb25zKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNT
IFdpbmRvdyBpbnRlcmZhY2U6IGNhbGxpbmcgc2Nyb2xsVG8oU2Nyb2xsVG9PcHRpb25zKSBvbiB3
aW5kb3cgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKK1BBU1Mg
V2luZG93IGludGVyZmFjZTogd2luZG93IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAic2Nyb2xsVG8o
dW5yZXN0cmljdGVkIGRvdWJsZSwgdW5yZXN0cmljdGVkIGRvdWJsZSkiIHdpdGggdGhlIHByb3Bl
ciB0eXBlIAorUEFTUyBXaW5kb3cgaW50ZXJmYWNlOiBjYWxsaW5nIHNjcm9sbFRvKHVucmVzdHJp
Y3RlZCBkb3VibGUsIHVucmVzdHJpY3RlZCBkb3VibGUpIG9uIHdpbmRvdyB3aXRoIHRvbyBmZXcg
YXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAorUEFTUyBXaW5kb3cgaW50ZXJmYWNlOiB3
aW5kb3cgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJzY3JvbGxCeShTY3JvbGxUb09wdGlvbnMpIiB3
aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgV2luZG93IGludGVyZmFjZTogY2FsbGluZyBzY3Jv
bGxCeShTY3JvbGxUb09wdGlvbnMpIG9uIHdpbmRvdyB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11
c3QgdGhyb3cgVHlwZUVycm9yIAorUEFTUyBXaW5kb3cgaW50ZXJmYWNlOiB3aW5kb3cgbXVzdCBp
bmhlcml0IHByb3BlcnR5ICJzY3JvbGxCeSh1bnJlc3RyaWN0ZWQgZG91YmxlLCB1bnJlc3RyaWN0
ZWQgZG91YmxlKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIFdpbmRvdyBpbnRlcmZhY2U6
IGNhbGxpbmcgc2Nyb2xsQnkodW5yZXN0cmljdGVkIGRvdWJsZSwgdW5yZXN0cmljdGVkIGRvdWJs
ZSkgb24gd2luZG93IHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3Ig
CitQQVNTIFdpbmRvdyBpbnRlcmZhY2U6IHdpbmRvdyBtdXN0IGluaGVyaXQgcHJvcGVydHkgInNj
cmVlblgiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBXaW5kb3cgaW50ZXJmYWNlOiB3aW5k
b3cgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJzY3JlZW5MZWZ0IiB3aXRoIHRoZSBwcm9wZXIgdHlw
ZSAKK1BBU1MgV2luZG93IGludGVyZmFjZTogd2luZG93IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAi
c2NyZWVuWSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIFdpbmRvdyBpbnRlcmZhY2U6IHdp
bmRvdyBtdXN0IGluaGVyaXQgcHJvcGVydHkgInNjcmVlblRvcCIgd2l0aCB0aGUgcHJvcGVyIHR5
cGUgCitQQVNTIFdpbmRvdyBpbnRlcmZhY2U6IHdpbmRvdyBtdXN0IGluaGVyaXQgcHJvcGVydHkg
Im91dGVyV2lkdGgiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBXaW5kb3cgaW50ZXJmYWNl
OiB3aW5kb3cgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJvdXRlckhlaWdodCIgd2l0aCB0aGUgcHJv
cGVyIHR5cGUgCitQQVNTIFdpbmRvdyBpbnRlcmZhY2U6IHdpbmRvdyBtdXN0IGluaGVyaXQgcHJv
cGVydHkgImRldmljZVBpeGVsUmF0aW8iIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBEb2N1
bWVudCBpbnRlcmZhY2U6IG9wZXJhdGlvbiBlbGVtZW50RnJvbVBvaW50KGRvdWJsZSwgZG91Ymxl
KSAKK1BBU1MgRG9jdW1lbnQgaW50ZXJmYWNlOiBvcGVyYXRpb24gZWxlbWVudHNGcm9tUG9pbnQo
ZG91YmxlLCBkb3VibGUpIAorRkFJTCBEb2N1bWVudCBpbnRlcmZhY2U6IG9wZXJhdGlvbiBjYXJl
dFBvc2l0aW9uRnJvbVBvaW50KGRvdWJsZSwgZG91YmxlKSBhc3NlcnRfb3duX3Byb3BlcnR5OiBp
bnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCBtaXNzaW5nIG5vbi1zdGF0aWMgb3BlcmF0aW9uIGV4
cGVjdGVkIHByb3BlcnR5ICJjYXJldFBvc2l0aW9uRnJvbVBvaW50IiBtaXNzaW5nCitQQVNTIERv
Y3VtZW50IGludGVyZmFjZTogYXR0cmlidXRlIHNjcm9sbGluZ0VsZW1lbnQgCitGQUlMIERvY3Vt
ZW50IGludGVyZmFjZTogb3BlcmF0aW9uIGdldEJveFF1YWRzKEJveFF1YWRPcHRpb25zKSBhc3Nl
cnRfb3duX3Byb3BlcnR5OiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCBtaXNzaW5nIG5vbi1z
dGF0aWMgb3BlcmF0aW9uIGV4cGVjdGVkIHByb3BlcnR5ICJnZXRCb3hRdWFkcyIgbWlzc2luZwor
RkFJTCBEb2N1bWVudCBpbnRlcmZhY2U6IG9wZXJhdGlvbiBjb252ZXJ0UXVhZEZyb21Ob2RlKERP
TVF1YWRJbml0LCBHZW9tZXRyeU5vZGUsIENvbnZlcnRDb29yZGluYXRlT3B0aW9ucykgYXNzZXJ0
X293bl9wcm9wZXJ0eTogaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgbWlzc2luZyBub24tc3Rh
dGljIG9wZXJhdGlvbiBleHBlY3RlZCBwcm9wZXJ0eSAiY29udmVydFF1YWRGcm9tTm9kZSIgbWlz
c2luZworRkFJTCBEb2N1bWVudCBpbnRlcmZhY2U6IG9wZXJhdGlvbiBjb252ZXJ0UmVjdEZyb21O
b2RlKERPTVJlY3RSZWFkT25seSwgR2VvbWV0cnlOb2RlLCBDb252ZXJ0Q29vcmRpbmF0ZU9wdGlv
bnMpIGFzc2VydF9vd25fcHJvcGVydHk6IGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IG1pc3Np
bmcgbm9uLXN0YXRpYyBvcGVyYXRpb24gZXhwZWN0ZWQgcHJvcGVydHkgImNvbnZlcnRSZWN0RnJv
bU5vZGUiIG1pc3NpbmcKK0ZBSUwgRG9jdW1lbnQgaW50ZXJmYWNlOiBvcGVyYXRpb24gY29udmVy
dFBvaW50RnJvbU5vZGUoRE9NUG9pbnRJbml0LCBHZW9tZXRyeU5vZGUsIENvbnZlcnRDb29yZGlu
YXRlT3B0aW9ucykgYXNzZXJ0X293bl9wcm9wZXJ0eTogaW50ZXJmYWNlIHByb3RvdHlwZSBvYmpl
Y3QgbWlzc2luZyBub24tc3RhdGljIG9wZXJhdGlvbiBleHBlY3RlZCBwcm9wZXJ0eSAiY29udmVy
dFBvaW50RnJvbU5vZGUiIG1pc3NpbmcKK1BBU1MgRG9jdW1lbnQgaW50ZXJmYWNlOiBkb2N1bWVu
dCBtdXN0IGluaGVyaXQgcHJvcGVydHkgImVsZW1lbnRGcm9tUG9pbnQoZG91YmxlLCBkb3VibGUp
IiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgRG9jdW1lbnQgaW50ZXJmYWNlOiBjYWxsaW5n
IGVsZW1lbnRGcm9tUG9pbnQoZG91YmxlLCBkb3VibGUpIG9uIGRvY3VtZW50IHdpdGggdG9vIGZl
dyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCitQQVNTIERvY3VtZW50IGludGVyZmFj
ZTogZG9jdW1lbnQgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJlbGVtZW50c0Zyb21Qb2ludChkb3Vi
bGUsIGRvdWJsZSkiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBEb2N1bWVudCBpbnRlcmZh
Y2U6IGNhbGxpbmcgZWxlbWVudHNGcm9tUG9pbnQoZG91YmxlLCBkb3VibGUpIG9uIGRvY3VtZW50
IHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCitGQUlMIERvY3Vt
ZW50IGludGVyZmFjZTogZG9jdW1lbnQgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJjYXJldFBvc2l0
aW9uRnJvbVBvaW50KGRvdWJsZSwgZG91YmxlKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0
X2luaGVyaXRzOiBwcm9wZXJ0eSAiY2FyZXRQb3NpdGlvbkZyb21Qb2ludCIgbm90IGZvdW5kIGlu
IHByb3RvdHlwZSBjaGFpbgorRkFJTCBEb2N1bWVudCBpbnRlcmZhY2U6IGNhbGxpbmcgY2FyZXRQ
b3NpdGlvbkZyb21Qb2ludChkb3VibGUsIGRvdWJsZSkgb24gZG9jdW1lbnQgd2l0aCB0b28gZmV3
IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfaW5oZXJpdHM6IHByb3BlcnR5
ICJjYXJldFBvc2l0aW9uRnJvbVBvaW50IiBub3QgZm91bmQgaW4gcHJvdG90eXBlIGNoYWluCitQ
QVNTIERvY3VtZW50IGludGVyZmFjZTogZG9jdW1lbnQgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJz
Y3JvbGxpbmdFbGVtZW50IiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK0ZBSUwgRG9jdW1lbnQgaW50
ZXJmYWNlOiBkb2N1bWVudCBtdXN0IGluaGVyaXQgcHJvcGVydHkgImdldEJveFF1YWRzKEJveFF1
YWRPcHRpb25zKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2luaGVyaXRzOiBwcm9wZXJ0
eSAiZ2V0Qm94UXVhZHMiIG5vdCBmb3VuZCBpbiBwcm90b3R5cGUgY2hhaW4KK0ZBSUwgRG9jdW1l
bnQgaW50ZXJmYWNlOiBjYWxsaW5nIGdldEJveFF1YWRzKEJveFF1YWRPcHRpb25zKSBvbiBkb2N1
bWVudCB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF9p
bmhlcml0czogcHJvcGVydHkgImdldEJveFF1YWRzIiBub3QgZm91bmQgaW4gcHJvdG90eXBlIGNo
YWluCitGQUlMIERvY3VtZW50IGludGVyZmFjZTogZG9jdW1lbnQgbXVzdCBpbmhlcml0IHByb3Bl
cnR5ICJjb252ZXJ0UXVhZEZyb21Ob2RlKERPTVF1YWRJbml0LCBHZW9tZXRyeU5vZGUsIENvbnZl
cnRDb29yZGluYXRlT3B0aW9ucykiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9pbmhlcml0
czogcHJvcGVydHkgImNvbnZlcnRRdWFkRnJvbU5vZGUiIG5vdCBmb3VuZCBpbiBwcm90b3R5cGUg
Y2hhaW4KK0ZBSUwgRG9jdW1lbnQgaW50ZXJmYWNlOiBjYWxsaW5nIGNvbnZlcnRRdWFkRnJvbU5v
ZGUoRE9NUXVhZEluaXQsIEdlb21ldHJ5Tm9kZSwgQ29udmVydENvb3JkaW5hdGVPcHRpb25zKSBv
biBkb2N1bWVudCB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFz
c2VydF9pbmhlcml0czogcHJvcGVydHkgImNvbnZlcnRRdWFkRnJvbU5vZGUiIG5vdCBmb3VuZCBp
biBwcm90b3R5cGUgY2hhaW4KK0ZBSUwgRG9jdW1lbnQgaW50ZXJmYWNlOiBkb2N1bWVudCBtdXN0
IGluaGVyaXQgcHJvcGVydHkgImNvbnZlcnRSZWN0RnJvbU5vZGUoRE9NUmVjdFJlYWRPbmx5LCBH
ZW9tZXRyeU5vZGUsIENvbnZlcnRDb29yZGluYXRlT3B0aW9ucykiIHdpdGggdGhlIHByb3BlciB0
eXBlIGFzc2VydF9pbmhlcml0czogcHJvcGVydHkgImNvbnZlcnRSZWN0RnJvbU5vZGUiIG5vdCBm
b3VuZCBpbiBwcm90b3R5cGUgY2hhaW4KK0ZBSUwgRG9jdW1lbnQgaW50ZXJmYWNlOiBjYWxsaW5n
IGNvbnZlcnRSZWN0RnJvbU5vZGUoRE9NUmVjdFJlYWRPbmx5LCBHZW9tZXRyeU5vZGUsIENvbnZl
cnRDb29yZGluYXRlT3B0aW9ucykgb24gZG9jdW1lbnQgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBt
dXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfaW5oZXJpdHM6IHByb3BlcnR5ICJjb252ZXJ0UmVj
dEZyb21Ob2RlIiBub3QgZm91bmQgaW4gcHJvdG90eXBlIGNoYWluCitGQUlMIERvY3VtZW50IGlu
dGVyZmFjZTogZG9jdW1lbnQgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJjb252ZXJ0UG9pbnRGcm9t
Tm9kZShET01Qb2ludEluaXQsIEdlb21ldHJ5Tm9kZSwgQ29udmVydENvb3JkaW5hdGVPcHRpb25z
KSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2luaGVyaXRzOiBwcm9wZXJ0eSAiY29udmVy
dFBvaW50RnJvbU5vZGUiIG5vdCBmb3VuZCBpbiBwcm90b3R5cGUgY2hhaW4KK0ZBSUwgRG9jdW1l
bnQgaW50ZXJmYWNlOiBjYWxsaW5nIGNvbnZlcnRQb2ludEZyb21Ob2RlKERPTVBvaW50SW5pdCwg
R2VvbWV0cnlOb2RlLCBDb252ZXJ0Q29vcmRpbmF0ZU9wdGlvbnMpIG9uIGRvY3VtZW50IHdpdGgg
dG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X2luaGVyaXRzOiBw
cm9wZXJ0eSAiY29udmVydFBvaW50RnJvbU5vZGUiIG5vdCBmb3VuZCBpbiBwcm90b3R5cGUgY2hh
aW4KK1BBU1MgRWxlbWVudCBpbnRlcmZhY2U6IG9wZXJhdGlvbiBnZXRDbGllbnRSZWN0cygpIAor
UEFTUyBFbGVtZW50IGludGVyZmFjZTogb3BlcmF0aW9uIGdldEJvdW5kaW5nQ2xpZW50UmVjdCgp
IAorUEFTUyBFbGVtZW50IGludGVyZmFjZTogb3BlcmF0aW9uIHNjcm9sbEludG9WaWV3KFtvYmpl
Y3QgT2JqZWN0XSxbb2JqZWN0IE9iamVjdF0pIAorUEFTUyBFbGVtZW50IGludGVyZmFjZTogb3Bl
cmF0aW9uIHNjcm9sbChTY3JvbGxUb09wdGlvbnMpIAorUEFTUyBFbGVtZW50IGludGVyZmFjZTog
b3BlcmF0aW9uIHNjcm9sbCh1bnJlc3RyaWN0ZWQgZG91YmxlLCB1bnJlc3RyaWN0ZWQgZG91Ymxl
KSAKK1BBU1MgRWxlbWVudCBpbnRlcmZhY2U6IG9wZXJhdGlvbiBzY3JvbGxUbyhTY3JvbGxUb09w
dGlvbnMpIAorUEFTUyBFbGVtZW50IGludGVyZmFjZTogb3BlcmF0aW9uIHNjcm9sbFRvKHVucmVz
dHJpY3RlZCBkb3VibGUsIHVucmVzdHJpY3RlZCBkb3VibGUpIAorUEFTUyBFbGVtZW50IGludGVy
ZmFjZTogb3BlcmF0aW9uIHNjcm9sbEJ5KFNjcm9sbFRvT3B0aW9ucykgCitQQVNTIEVsZW1lbnQg
aW50ZXJmYWNlOiBvcGVyYXRpb24gc2Nyb2xsQnkodW5yZXN0cmljdGVkIGRvdWJsZSwgdW5yZXN0
cmljdGVkIGRvdWJsZSkgCitQQVNTIEVsZW1lbnQgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgc2Nyb2xs
VG9wIAorUEFTUyBFbGVtZW50IGludGVyZmFjZTogYXR0cmlidXRlIHNjcm9sbExlZnQgCitQQVNT
IEVsZW1lbnQgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgc2Nyb2xsV2lkdGggCitQQVNTIEVsZW1lbnQg
aW50ZXJmYWNlOiBhdHRyaWJ1dGUgc2Nyb2xsSGVpZ2h0IAorUEFTUyBFbGVtZW50IGludGVyZmFj
ZTogYXR0cmlidXRlIGNsaWVudFRvcCAKK1BBU1MgRWxlbWVudCBpbnRlcmZhY2U6IGF0dHJpYnV0
ZSBjbGllbnRMZWZ0IAorUEFTUyBFbGVtZW50IGludGVyZmFjZTogYXR0cmlidXRlIGNsaWVudFdp
ZHRoIAorUEFTUyBFbGVtZW50IGludGVyZmFjZTogYXR0cmlidXRlIGNsaWVudEhlaWdodCAKK0ZB
SUwgRWxlbWVudCBpbnRlcmZhY2U6IG9wZXJhdGlvbiBnZXRCb3hRdWFkcyhCb3hRdWFkT3B0aW9u
cykgYXNzZXJ0X293bl9wcm9wZXJ0eTogaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgbWlzc2lu
ZyBub24tc3RhdGljIG9wZXJhdGlvbiBleHBlY3RlZCBwcm9wZXJ0eSAiZ2V0Qm94UXVhZHMiIG1p
c3NpbmcKK0ZBSUwgRWxlbWVudCBpbnRlcmZhY2U6IG9wZXJhdGlvbiBjb252ZXJ0UXVhZEZyb21O
b2RlKERPTVF1YWRJbml0LCBHZW9tZXRyeU5vZGUsIENvbnZlcnRDb29yZGluYXRlT3B0aW9ucykg
YXNzZXJ0X293bl9wcm9wZXJ0eTogaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgbWlzc2luZyBu
b24tc3RhdGljIG9wZXJhdGlvbiBleHBlY3RlZCBwcm9wZXJ0eSAiY29udmVydFF1YWRGcm9tTm9k
ZSIgbWlzc2luZworRkFJTCBFbGVtZW50IGludGVyZmFjZTogb3BlcmF0aW9uIGNvbnZlcnRSZWN0
RnJvbU5vZGUoRE9NUmVjdFJlYWRPbmx5LCBHZW9tZXRyeU5vZGUsIENvbnZlcnRDb29yZGluYXRl
T3B0aW9ucykgYXNzZXJ0X293bl9wcm9wZXJ0eTogaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3Qg
bWlzc2luZyBub24tc3RhdGljIG9wZXJhdGlvbiBleHBlY3RlZCBwcm9wZXJ0eSAiY29udmVydFJl
Y3RGcm9tTm9kZSIgbWlzc2luZworRkFJTCBFbGVtZW50IGludGVyZmFjZTogb3BlcmF0aW9uIGNv
bnZlcnRQb2ludEZyb21Ob2RlKERPTVBvaW50SW5pdCwgR2VvbWV0cnlOb2RlLCBDb252ZXJ0Q29v
cmRpbmF0ZU9wdGlvbnMpIGFzc2VydF9vd25fcHJvcGVydHk6IGludGVyZmFjZSBwcm90b3R5cGUg
b2JqZWN0IG1pc3Npbmcgbm9uLXN0YXRpYyBvcGVyYXRpb24gZXhwZWN0ZWQgcHJvcGVydHkgImNv
bnZlcnRQb2ludEZyb21Ob2RlIiBtaXNzaW5nCitQQVNTIEVsZW1lbnQgaW50ZXJmYWNlOiBkb2N1
bWVudC5jcmVhdGVFbGVtZW50TlMoIngiLCAieSIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiZ2V0
Q2xpZW50UmVjdHMoKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIEVsZW1lbnQgaW50ZXJm
YWNlOiBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoIngiLCAieSIpIG11c3QgaW5oZXJpdCBwcm9w
ZXJ0eSAiZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFT
UyBFbGVtZW50IGludGVyZmFjZTogZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJ4IiwgInkiKSBt
dXN0IGluaGVyaXQgcHJvcGVydHkgInNjcm9sbEludG9WaWV3KFtvYmplY3QgT2JqZWN0XSxbb2Jq
ZWN0IE9iamVjdF0pIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgRWxlbWVudCBpbnRlcmZh
Y2U6IGNhbGxpbmcgc2Nyb2xsSW50b1ZpZXcoW29iamVjdCBPYmplY3RdLFtvYmplY3QgT2JqZWN0
XSkgb24gZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJ4IiwgInkiKSB3aXRoIHRvbyBmZXcgYXJn
dW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAorUEFTUyBFbGVtZW50IGludGVyZmFjZTogZG9j
dW1lbnQuY3JlYXRlRWxlbWVudE5TKCJ4IiwgInkiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInNj
cm9sbChTY3JvbGxUb09wdGlvbnMpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgRWxlbWVu
dCBpbnRlcmZhY2U6IGNhbGxpbmcgc2Nyb2xsKFNjcm9sbFRvT3B0aW9ucykgb24gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudE5TKCJ4IiwgInkiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhy
b3cgVHlwZUVycm9yIAorUEFTUyBFbGVtZW50IGludGVyZmFjZTogZG9jdW1lbnQuY3JlYXRlRWxl
bWVudE5TKCJ4IiwgInkiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInNjcm9sbCh1bnJlc3RyaWN0
ZWQgZG91YmxlLCB1bnJlc3RyaWN0ZWQgZG91YmxlKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQ
QVNTIEVsZW1lbnQgaW50ZXJmYWNlOiBjYWxsaW5nIHNjcm9sbCh1bnJlc3RyaWN0ZWQgZG91Ymxl
LCB1bnJlc3RyaWN0ZWQgZG91YmxlKSBvbiBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoIngiLCAi
eSIpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCitQQVNTIEVs
ZW1lbnQgaW50ZXJmYWNlOiBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoIngiLCAieSIpIG11c3Qg
aW5oZXJpdCBwcm9wZXJ0eSAic2Nyb2xsVG8oU2Nyb2xsVG9PcHRpb25zKSIgd2l0aCB0aGUgcHJv
cGVyIHR5cGUgCitQQVNTIEVsZW1lbnQgaW50ZXJmYWNlOiBjYWxsaW5nIHNjcm9sbFRvKFNjcm9s
bFRvT3B0aW9ucykgb24gZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJ4IiwgInkiKSB3aXRoIHRv
byBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAorUEFTUyBFbGVtZW50IGludGVy
ZmFjZTogZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJ4IiwgInkiKSBtdXN0IGluaGVyaXQgcHJv
cGVydHkgInNjcm9sbFRvKHVucmVzdHJpY3RlZCBkb3VibGUsIHVucmVzdHJpY3RlZCBkb3VibGUp
IiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgRWxlbWVudCBpbnRlcmZhY2U6IGNhbGxpbmcg
c2Nyb2xsVG8odW5yZXN0cmljdGVkIGRvdWJsZSwgdW5yZXN0cmljdGVkIGRvdWJsZSkgb24gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudE5TKCJ4IiwgInkiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11
c3QgdGhyb3cgVHlwZUVycm9yIAorUEFTUyBFbGVtZW50IGludGVyZmFjZTogZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudE5TKCJ4IiwgInkiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInNjcm9sbEJ5KFNj
cm9sbFRvT3B0aW9ucykiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBFbGVtZW50IGludGVy
ZmFjZTogY2FsbGluZyBzY3JvbGxCeShTY3JvbGxUb09wdGlvbnMpIG9uIGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnROUygieCIsICJ5Iikgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5
cGVFcnJvciAKK1BBU1MgRWxlbWVudCBpbnRlcmZhY2U6IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnRO
UygieCIsICJ5IikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJzY3JvbGxCeSh1bnJlc3RyaWN0ZWQg
ZG91YmxlLCB1bnJlc3RyaWN0ZWQgZG91YmxlKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNT
IEVsZW1lbnQgaW50ZXJmYWNlOiBjYWxsaW5nIHNjcm9sbEJ5KHVucmVzdHJpY3RlZCBkb3VibGUs
IHVucmVzdHJpY3RlZCBkb3VibGUpIG9uIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygieCIsICJ5
Iikgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKK1BBU1MgRWxl
bWVudCBpbnRlcmZhY2U6IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygieCIsICJ5IikgbXVzdCBp
bmhlcml0IHByb3BlcnR5ICJzY3JvbGxUb3AiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBF
bGVtZW50IGludGVyZmFjZTogZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJ4IiwgInkiKSBtdXN0
IGluaGVyaXQgcHJvcGVydHkgInNjcm9sbExlZnQiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFT
UyBFbGVtZW50IGludGVyZmFjZTogZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJ4IiwgInkiKSBt
dXN0IGluaGVyaXQgcHJvcGVydHkgInNjcm9sbFdpZHRoIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAK
K1BBU1MgRWxlbWVudCBpbnRlcmZhY2U6IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygieCIsICJ5
IikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJzY3JvbGxIZWlnaHQiIHdpdGggdGhlIHByb3BlciB0
eXBlIAorUEFTUyBFbGVtZW50IGludGVyZmFjZTogZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJ4
IiwgInkiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImNsaWVudFRvcCIgd2l0aCB0aGUgcHJvcGVy
IHR5cGUgCitQQVNTIEVsZW1lbnQgaW50ZXJmYWNlOiBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMo
IngiLCAieSIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiY2xpZW50TGVmdCIgd2l0aCB0aGUgcHJv
cGVyIHR5cGUgCitQQVNTIEVsZW1lbnQgaW50ZXJmYWNlOiBkb2N1bWVudC5jcmVhdGVFbGVtZW50
TlMoIngiLCAieSIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiY2xpZW50V2lkdGgiIHdpdGggdGhl
IHByb3BlciB0eXBlIAorUEFTUyBFbGVtZW50IGludGVyZmFjZTogZG9jdW1lbnQuY3JlYXRlRWxl
bWVudE5TKCJ4IiwgInkiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImNsaWVudEhlaWdodCIgd2l0
aCB0aGUgcHJvcGVyIHR5cGUgCitGQUlMIEVsZW1lbnQgaW50ZXJmYWNlOiBkb2N1bWVudC5jcmVh
dGVFbGVtZW50TlMoIngiLCAieSIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiZ2V0Qm94UXVhZHMo
Qm94UXVhZE9wdGlvbnMpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBhc3NlcnRfaW5oZXJpdHM6IHBy
b3BlcnR5ICJnZXRCb3hRdWFkcyIgbm90IGZvdW5kIGluIHByb3RvdHlwZSBjaGFpbgorRkFJTCBF
bGVtZW50IGludGVyZmFjZTogY2FsbGluZyBnZXRCb3hRdWFkcyhCb3hRdWFkT3B0aW9ucykgb24g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJ4IiwgInkiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRz
IG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF9pbmhlcml0czogcHJvcGVydHkgImdldEJveFF1
YWRzIiBub3QgZm91bmQgaW4gcHJvdG90eXBlIGNoYWluCitGQUlMIEVsZW1lbnQgaW50ZXJmYWNl
OiBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoIngiLCAieSIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0
eSAiY29udmVydFF1YWRGcm9tTm9kZShET01RdWFkSW5pdCwgR2VvbWV0cnlOb2RlLCBDb252ZXJ0
Q29vcmRpbmF0ZU9wdGlvbnMpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBhc3NlcnRfaW5oZXJpdHM6
IHByb3BlcnR5ICJjb252ZXJ0UXVhZEZyb21Ob2RlIiBub3QgZm91bmQgaW4gcHJvdG90eXBlIGNo
YWluCitGQUlMIEVsZW1lbnQgaW50ZXJmYWNlOiBjYWxsaW5nIGNvbnZlcnRRdWFkRnJvbU5vZGUo
RE9NUXVhZEluaXQsIEdlb21ldHJ5Tm9kZSwgQ29udmVydENvb3JkaW5hdGVPcHRpb25zKSBvbiBk
b2N1bWVudC5jcmVhdGVFbGVtZW50TlMoIngiLCAieSIpIHdpdGggdG9vIGZldyBhcmd1bWVudHMg
bXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X2luaGVyaXRzOiBwcm9wZXJ0eSAiY29udmVydFF1
YWRGcm9tTm9kZSIgbm90IGZvdW5kIGluIHByb3RvdHlwZSBjaGFpbgorRkFJTCBFbGVtZW50IGlu
dGVyZmFjZTogZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJ4IiwgInkiKSBtdXN0IGluaGVyaXQg
cHJvcGVydHkgImNvbnZlcnRSZWN0RnJvbU5vZGUoRE9NUmVjdFJlYWRPbmx5LCBHZW9tZXRyeU5v
ZGUsIENvbnZlcnRDb29yZGluYXRlT3B0aW9ucykiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2Vy
dF9pbmhlcml0czogcHJvcGVydHkgImNvbnZlcnRSZWN0RnJvbU5vZGUiIG5vdCBmb3VuZCBpbiBw
cm90b3R5cGUgY2hhaW4KK0ZBSUwgRWxlbWVudCBpbnRlcmZhY2U6IGNhbGxpbmcgY29udmVydFJl
Y3RGcm9tTm9kZShET01SZWN0UmVhZE9ubHksIEdlb21ldHJ5Tm9kZSwgQ29udmVydENvb3JkaW5h
dGVPcHRpb25zKSBvbiBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoIngiLCAieSIpIHdpdGggdG9v
IGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X2luaGVyaXRzOiBwcm9w
ZXJ0eSAiY29udmVydFJlY3RGcm9tTm9kZSIgbm90IGZvdW5kIGluIHByb3RvdHlwZSBjaGFpbgor
RkFJTCBFbGVtZW50IGludGVyZmFjZTogZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJ4IiwgInki
KSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImNvbnZlcnRQb2ludEZyb21Ob2RlKERPTVBvaW50SW5p
dCwgR2VvbWV0cnlOb2RlLCBDb252ZXJ0Q29vcmRpbmF0ZU9wdGlvbnMpIiB3aXRoIHRoZSBwcm9w
ZXIgdHlwZSBhc3NlcnRfaW5oZXJpdHM6IHByb3BlcnR5ICJjb252ZXJ0UG9pbnRGcm9tTm9kZSIg
bm90IGZvdW5kIGluIHByb3RvdHlwZSBjaGFpbgorRkFJTCBFbGVtZW50IGludGVyZmFjZTogY2Fs
bGluZyBjb252ZXJ0UG9pbnRGcm9tTm9kZShET01Qb2ludEluaXQsIEdlb21ldHJ5Tm9kZSwgQ29u
dmVydENvb3JkaW5hdGVPcHRpb25zKSBvbiBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoIngiLCAi
eSIpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X2lu
aGVyaXRzOiBwcm9wZXJ0eSAiY29udmVydFBvaW50RnJvbU5vZGUiIG5vdCBmb3VuZCBpbiBwcm90
b3R5cGUgY2hhaW4KK0ZBSUwgVGV4dCBpbnRlcmZhY2U6IG9wZXJhdGlvbiBnZXRCb3hRdWFkcyhC
b3hRdWFkT3B0aW9ucykgYXNzZXJ0X293bl9wcm9wZXJ0eTogaW50ZXJmYWNlIHByb3RvdHlwZSBv
YmplY3QgbWlzc2luZyBub24tc3RhdGljIG9wZXJhdGlvbiBleHBlY3RlZCBwcm9wZXJ0eSAiZ2V0
Qm94UXVhZHMiIG1pc3NpbmcKK0ZBSUwgVGV4dCBpbnRlcmZhY2U6IG9wZXJhdGlvbiBjb252ZXJ0
UXVhZEZyb21Ob2RlKERPTVF1YWRJbml0LCBHZW9tZXRyeU5vZGUsIENvbnZlcnRDb29yZGluYXRl
T3B0aW9ucykgYXNzZXJ0X293bl9wcm9wZXJ0eTogaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3Qg
bWlzc2luZyBub24tc3RhdGljIG9wZXJhdGlvbiBleHBlY3RlZCBwcm9wZXJ0eSAiY29udmVydFF1
YWRGcm9tTm9kZSIgbWlzc2luZworRkFJTCBUZXh0IGludGVyZmFjZTogb3BlcmF0aW9uIGNvbnZl
cnRSZWN0RnJvbU5vZGUoRE9NUmVjdFJlYWRPbmx5LCBHZW9tZXRyeU5vZGUsIENvbnZlcnRDb29y
ZGluYXRlT3B0aW9ucykgYXNzZXJ0X293bl9wcm9wZXJ0eTogaW50ZXJmYWNlIHByb3RvdHlwZSBv
YmplY3QgbWlzc2luZyBub24tc3RhdGljIG9wZXJhdGlvbiBleHBlY3RlZCBwcm9wZXJ0eSAiY29u
dmVydFJlY3RGcm9tTm9kZSIgbWlzc2luZworRkFJTCBUZXh0IGludGVyZmFjZTogb3BlcmF0aW9u
IGNvbnZlcnRQb2ludEZyb21Ob2RlKERPTVBvaW50SW5pdCwgR2VvbWV0cnlOb2RlLCBDb252ZXJ0
Q29vcmRpbmF0ZU9wdGlvbnMpIGFzc2VydF9vd25fcHJvcGVydHk6IGludGVyZmFjZSBwcm90b3R5
cGUgb2JqZWN0IG1pc3Npbmcgbm9uLXN0YXRpYyBvcGVyYXRpb24gZXhwZWN0ZWQgcHJvcGVydHkg
ImNvbnZlcnRQb2ludEZyb21Ob2RlIiBtaXNzaW5nCitGQUlMIFRleHQgaW50ZXJmYWNlOiBkb2N1
bWVudC5jcmVhdGVUZXh0Tm9kZSgieCIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiZ2V0Qm94UXVh
ZHMoQm94UXVhZE9wdGlvbnMpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBhc3NlcnRfaW5oZXJpdHM6
IHByb3BlcnR5ICJnZXRCb3hRdWFkcyIgbm90IGZvdW5kIGluIHByb3RvdHlwZSBjaGFpbgorRkFJ
TCBUZXh0IGludGVyZmFjZTogY2FsbGluZyBnZXRCb3hRdWFkcyhCb3hRdWFkT3B0aW9ucykgb24g
ZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIngiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3Qg
dGhyb3cgVHlwZUVycm9yIGFzc2VydF9pbmhlcml0czogcHJvcGVydHkgImdldEJveFF1YWRzIiBu
b3QgZm91bmQgaW4gcHJvdG90eXBlIGNoYWluCitGQUlMIFRleHQgaW50ZXJmYWNlOiBkb2N1bWVu
dC5jcmVhdGVUZXh0Tm9kZSgieCIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiY29udmVydFF1YWRG
cm9tTm9kZShET01RdWFkSW5pdCwgR2VvbWV0cnlOb2RlLCBDb252ZXJ0Q29vcmRpbmF0ZU9wdGlv
bnMpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBhc3NlcnRfaW5oZXJpdHM6IHByb3BlcnR5ICJjb252
ZXJ0UXVhZEZyb21Ob2RlIiBub3QgZm91bmQgaW4gcHJvdG90eXBlIGNoYWluCitGQUlMIFRleHQg
aW50ZXJmYWNlOiBjYWxsaW5nIGNvbnZlcnRRdWFkRnJvbU5vZGUoRE9NUXVhZEluaXQsIEdlb21l
dHJ5Tm9kZSwgQ29udmVydENvb3JkaW5hdGVPcHRpb25zKSBvbiBkb2N1bWVudC5jcmVhdGVUZXh0
Tm9kZSgieCIpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNz
ZXJ0X2luaGVyaXRzOiBwcm9wZXJ0eSAiY29udmVydFF1YWRGcm9tTm9kZSIgbm90IGZvdW5kIGlu
IHByb3RvdHlwZSBjaGFpbgorRkFJTCBUZXh0IGludGVyZmFjZTogZG9jdW1lbnQuY3JlYXRlVGV4
dE5vZGUoIngiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImNvbnZlcnRSZWN0RnJvbU5vZGUoRE9N
UmVjdFJlYWRPbmx5LCBHZW9tZXRyeU5vZGUsIENvbnZlcnRDb29yZGluYXRlT3B0aW9ucykiIHdp
dGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9pbmhlcml0czogcHJvcGVydHkgImNvbnZlcnRSZWN0
RnJvbU5vZGUiIG5vdCBmb3VuZCBpbiBwcm90b3R5cGUgY2hhaW4KK0ZBSUwgVGV4dCBpbnRlcmZh
Y2U6IGNhbGxpbmcgY29udmVydFJlY3RGcm9tTm9kZShET01SZWN0UmVhZE9ubHksIEdlb21ldHJ5
Tm9kZSwgQ29udmVydENvb3JkaW5hdGVPcHRpb25zKSBvbiBkb2N1bWVudC5jcmVhdGVUZXh0Tm9k
ZSgieCIpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0
X2luaGVyaXRzOiBwcm9wZXJ0eSAiY29udmVydFJlY3RGcm9tTm9kZSIgbm90IGZvdW5kIGluIHBy
b3RvdHlwZSBjaGFpbgorRkFJTCBUZXh0IGludGVyZmFjZTogZG9jdW1lbnQuY3JlYXRlVGV4dE5v
ZGUoIngiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImNvbnZlcnRQb2ludEZyb21Ob2RlKERPTVBv
aW50SW5pdCwgR2VvbWV0cnlOb2RlLCBDb252ZXJ0Q29vcmRpbmF0ZU9wdGlvbnMpIiB3aXRoIHRo
ZSBwcm9wZXIgdHlwZSBhc3NlcnRfaW5oZXJpdHM6IHByb3BlcnR5ICJjb252ZXJ0UG9pbnRGcm9t
Tm9kZSIgbm90IGZvdW5kIGluIHByb3RvdHlwZSBjaGFpbgorRkFJTCBUZXh0IGludGVyZmFjZTog
Y2FsbGluZyBjb252ZXJ0UG9pbnRGcm9tTm9kZShET01Qb2ludEluaXQsIEdlb21ldHJ5Tm9kZSwg
Q29udmVydENvb3JkaW5hdGVPcHRpb25zKSBvbiBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgieCIp
IHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X2luaGVy
aXRzOiBwcm9wZXJ0eSAiY29udmVydFBvaW50RnJvbU5vZGUiIG5vdCBmb3VuZCBpbiBwcm90b3R5
cGUgY2hhaW4KK1BBU1MgUmFuZ2UgaW50ZXJmYWNlOiBvcGVyYXRpb24gZ2V0Q2xpZW50UmVjdHMo
KSAKK1BBU1MgUmFuZ2UgaW50ZXJmYWNlOiBvcGVyYXRpb24gZ2V0Qm91bmRpbmdDbGllbnRSZWN0
KCkgCitQQVNTIFJhbmdlIGludGVyZmFjZTogbmV3IFJhbmdlKCkgbXVzdCBpbmhlcml0IHByb3Bl
cnR5ICJnZXRDbGllbnRSZWN0cygpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgUmFuZ2Ug
aW50ZXJmYWNlOiBuZXcgUmFuZ2UoKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImdldEJvdW5kaW5n
Q2xpZW50UmVjdCgpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvZ2VvbWV0cnkvaW50ZXJm
YWNlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9nZW9tZXRyeS9pbnRlcmZhY2VzLWV4cGVjdGVkLnR4dAppbmRleCBmYTYzNWRm
NDM0NDAxMTM3YjliNTEwM2QxZDQ0ZWJiZTMwYjViZDM4Li43Mjc0Y2FmNWViN2QyZjA2YjEzNzdk
N2ZjMzkzMDkzY2U5MjRiOWEwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9nZW9tZXRyeS9pbnRlcmZhY2VzLWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9nZW9t
ZXRyeS9pbnRlcmZhY2VzLWV4cGVjdGVkLnR4dApAQCAtMjQsNyArMjQsNyBAQCBQQVNTIERPTVBv
aW50UmVhZE9ubHkgaW50ZXJmYWNlOiBuZXcgRE9NUG9pbnRSZWFkT25seSgpIG11c3QgaW5oZXJp
dCBwcm9wZXJ0eSAidwogUEFTUyBET01Qb2ludFJlYWRPbmx5IGludGVyZmFjZTogbmV3IERPTVBv
aW50UmVhZE9ubHkoKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgIm1hdHJpeFRyYW5zZm9ybShET01N
YXRyaXhJbml0KSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCiBQQVNTIERPTVBvaW50UmVhZE9ubHkg
aW50ZXJmYWNlOiBjYWxsaW5nIG1hdHJpeFRyYW5zZm9ybShET01NYXRyaXhJbml0KSBvbiBuZXcg
RE9NUG9pbnRSZWFkT25seSgpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBl
RXJyb3IgCiBQQVNTIERPTVBvaW50UmVhZE9ubHkgaW50ZXJmYWNlOiBuZXcgRE9NUG9pbnRSZWFk
T25seSgpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAidG9KU09OKCkiIHdpdGggdGhlIHByb3BlciB0
eXBlIAotUEFTUyBUZXN0IGRlZmF1bHQgdG9KU09OIG9wZXJhdGlvbiBvZiBET01Qb2ludFJlYWRP
bmx5IAorUEFTUyBET01Qb2ludFJlYWRPbmx5IGludGVyZmFjZTogZGVmYXVsdCB0b0pTT04gb3Bl
cmF0aW9uIG9uIG5ldyBET01Qb2ludFJlYWRPbmx5KCkgCiBQQVNTIERPTVBvaW50IGludGVyZmFj
ZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgCiBQQVNTIERP
TVBvaW50IGludGVyZmFjZSBvYmplY3QgbGVuZ3RoIAogUEFTUyBET01Qb2ludCBpbnRlcmZhY2Ug
b2JqZWN0IG5hbWUgCkBAIC01OCw3ICs1OCw3IEBAIFBBU1MgRE9NUG9pbnRSZWFkT25seSBpbnRl
cmZhY2U6IG5ldyBET01Qb2ludCgpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAidyIgd2l0aCB0CiBQ
QVNTIERPTVBvaW50UmVhZE9ubHkgaW50ZXJmYWNlOiBuZXcgRE9NUG9pbnQoKSBtdXN0IGluaGVy
aXQgcHJvcGVydHkgIm1hdHJpeFRyYW5zZm9ybShET01NYXRyaXhJbml0KSIgd2l0aCB0aGUgcHJv
cGVyIHR5cGUgCiBQQVNTIERPTVBvaW50UmVhZE9ubHkgaW50ZXJmYWNlOiBjYWxsaW5nIG1hdHJp
eFRyYW5zZm9ybShET01NYXRyaXhJbml0KSBvbiBuZXcgRE9NUG9pbnQoKSB3aXRoIHRvbyBmZXcg
YXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAogUEFTUyBET01Qb2ludFJlYWRPbmx5IGlu
dGVyZmFjZTogbmV3IERPTVBvaW50KCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJ0b0pTT04oKSIg
d2l0aCB0aGUgcHJvcGVyIHR5cGUgCi1QQVNTIFRlc3QgZGVmYXVsdCB0b0pTT04gb3BlcmF0aW9u
IG9mIERPTVBvaW50IAorUEFTUyBET01Qb2ludFJlYWRPbmx5IGludGVyZmFjZTogZGVmYXVsdCB0
b0pTT04gb3BlcmF0aW9uIG9uIG5ldyBET01Qb2ludCgpIAogUEFTUyBET01SZWN0UmVhZE9ubHkg
aW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCAK
IFBBU1MgRE9NUmVjdFJlYWRPbmx5IGludGVyZmFjZSBvYmplY3QgbGVuZ3RoIAogUEFTUyBET01S
ZWN0UmVhZE9ubHkgaW50ZXJmYWNlIG9iamVjdCBuYW1lIApAQCAtODgsNyArODgsNyBAQCBQQVNT
IERPTVJlY3RSZWFkT25seSBpbnRlcmZhY2U6IG5ldyBET01SZWN0UmVhZE9ubHkoKSBtdXN0IGlu
aGVyaXQgcHJvcGVydHkgInJpZwogUEFTUyBET01SZWN0UmVhZE9ubHkgaW50ZXJmYWNlOiBuZXcg
RE9NUmVjdFJlYWRPbmx5KCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJib3R0b20iIHdpdGggdGhl
IHByb3BlciB0eXBlIAogUEFTUyBET01SZWN0UmVhZE9ubHkgaW50ZXJmYWNlOiBuZXcgRE9NUmVj
dFJlYWRPbmx5KCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJsZWZ0IiB3aXRoIHRoZSBwcm9wZXIg
dHlwZSAKIFBBU1MgRE9NUmVjdFJlYWRPbmx5IGludGVyZmFjZTogbmV3IERPTVJlY3RSZWFkT25s
eSgpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAidG9KU09OKCkiIHdpdGggdGhlIHByb3BlciB0eXBl
IAotUEFTUyBUZXN0IGRlZmF1bHQgdG9KU09OIG9wZXJhdGlvbiBvZiBET01SZWN0UmVhZE9ubHkg
CitQQVNTIERPTVJlY3RSZWFkT25seSBpbnRlcmZhY2U6IGRlZmF1bHQgdG9KU09OIG9wZXJhdGlv
biBvbiBuZXcgRE9NUmVjdFJlYWRPbmx5KCkgCiBQQVNTIERPTVJlY3QgaW50ZXJmYWNlOiBleGlz
dGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCAKIFBBU1MgRE9NUmVjdCBp
bnRlcmZhY2Ugb2JqZWN0IGxlbmd0aCAKIFBBU1MgRE9NUmVjdCBpbnRlcmZhY2Ugb2JqZWN0IG5h
bWUgCkBAIC0xMjQsNyArMTI0LDcgQEAgUEFTUyBET01SZWN0UmVhZE9ubHkgaW50ZXJmYWNlOiBu
ZXcgRE9NUmVjdCgpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAicmlnaHQiIHdpdGgKIFBBU1MgRE9N
UmVjdFJlYWRPbmx5IGludGVyZmFjZTogbmV3IERPTVJlY3QoKSBtdXN0IGluaGVyaXQgcHJvcGVy
dHkgImJvdHRvbSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCiBQQVNTIERPTVJlY3RSZWFkT25seSBp
bnRlcmZhY2U6IG5ldyBET01SZWN0KCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJsZWZ0IiB3aXRo
IHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgRE9NUmVjdFJlYWRPbmx5IGludGVyZmFjZTogbmV3IERP
TVJlY3QoKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInRvSlNPTigpIiB3aXRoIHRoZSBwcm9wZXIg
dHlwZSAKLVBBU1MgVGVzdCBkZWZhdWx0IHRvSlNPTiBvcGVyYXRpb24gb2YgRE9NUmVjdCAKK1BB
U1MgRE9NUmVjdFJlYWRPbmx5IGludGVyZmFjZTogZGVmYXVsdCB0b0pTT04gb3BlcmF0aW9uIG9u
IG5ldyBET01SZWN0KCkgCiBQQVNTIERPTVJlY3RMaXN0IGludGVyZmFjZTogZXhpc3RlbmNlIGFu
ZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgCiBQQVNTIERPTVJlY3RMaXN0IGludGVy
ZmFjZSBvYmplY3QgbGVuZ3RoIAogUEFTUyBET01SZWN0TGlzdCBpbnRlcmZhY2Ugb2JqZWN0IG5h
bWUgCkBAIC0xNjQsNyArMTY0LDcgQEAgUEFTUyBET01RdWFkIGludGVyZmFjZTogbmV3IERPTVF1
YWQoKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInAzIiB3aXRoIHRoZSBwcm9wZXIKIFBBU1MgRE9N
UXVhZCBpbnRlcmZhY2U6IG5ldyBET01RdWFkKCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJwNCIg
d2l0aCB0aGUgcHJvcGVyIHR5cGUgCiBQQVNTIERPTVF1YWQgaW50ZXJmYWNlOiBuZXcgRE9NUXVh
ZCgpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiZ2V0Qm91bmRzKCkiIHdpdGggdGhlIHByb3BlciB0
eXBlIAogUEFTUyBET01RdWFkIGludGVyZmFjZTogbmV3IERPTVF1YWQoKSBtdXN0IGluaGVyaXQg
cHJvcGVydHkgInRvSlNPTigpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKLUZBSUwgVGVzdCBkZWZh
dWx0IHRvSlNPTiBvcGVyYXRpb24gb2YgRE9NUXVhZCBhc3NlcnRfdHJ1ZTogaW5zdGFuY2VvZiBE
T01Qb2ludCBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorRkFJTCBET01RdWFkIGludGVyZmFjZTog
ZGVmYXVsdCB0b0pTT04gb3BlcmF0aW9uIG9uIG5ldyBET01RdWFkKCkgYXNzZXJ0X3RydWU6IGlu
c3RhbmNlb2YgRE9NUG9pbnQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKIFBBU1MgRE9NTWF0cml4
UmVhZE9ubHkgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNl
IG9iamVjdCAKIFBBU1MgRE9NTWF0cml4UmVhZE9ubHkgaW50ZXJmYWNlIG9iamVjdCBsZW5ndGgg
CiBQQVNTIERPTU1hdHJpeFJlYWRPbmx5IGludGVyZmFjZSBvYmplY3QgbmFtZSAKQEAgLTI3Myw3
ICsyNzMsNyBAQCBQQVNTIERPTU1hdHJpeFJlYWRPbmx5IGludGVyZmFjZTogY2FsbGluZyB0cmFu
c2Zvcm1Qb2ludChET01Qb2ludEluaXQpIG9uIG5ldyBETwogUEFTUyBET01NYXRyaXhSZWFkT25s
eSBpbnRlcmZhY2U6IG5ldyBET01NYXRyaXhSZWFkT25seSgpIG11c3QgaW5oZXJpdCBwcm9wZXJ0
eSAidG9GbG9hdDMyQXJyYXkoKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCiBQQVNTIERPTU1hdHJp
eFJlYWRPbmx5IGludGVyZmFjZTogbmV3IERPTU1hdHJpeFJlYWRPbmx5KCkgbXVzdCBpbmhlcml0
IHByb3BlcnR5ICJ0b0Zsb2F0NjRBcnJheSgpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBBU1Mg
RE9NTWF0cml4UmVhZE9ubHkgaW50ZXJmYWNlOiBuZXcgRE9NTWF0cml4UmVhZE9ubHkoKSBtdXN0
IGluaGVyaXQgcHJvcGVydHkgInRvSlNPTigpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKLVBBU1Mg
VGVzdCBkZWZhdWx0IHRvSlNPTiBvcGVyYXRpb24gb2YgRE9NTWF0cml4UmVhZE9ubHkgCitQQVNT
IERPTU1hdHJpeFJlYWRPbmx5IGludGVyZmFjZTogZGVmYXVsdCB0b0pTT04gb3BlcmF0aW9uIG9u
IG5ldyBET01NYXRyaXhSZWFkT25seSgpIAogUEFTUyBET01NYXRyaXhSZWFkT25seSBtdXN0IGJl
IHByaW1hcnkgaW50ZXJmYWNlIG9mIERPTU1hdHJpeFJlYWRPbmx5LmZyb21NYXRyaXgoe2lzMkQ6
IGZhbHNlfSkgCiBQQVNTIFN0cmluZ2lmaWNhdGlvbiBvZiBET01NYXRyaXhSZWFkT25seS5mcm9t
TWF0cml4KHtpczJEOiBmYWxzZX0pIAogUEFTUyBET01NYXRyaXggaW50ZXJmYWNlOiBleGlzdGVu
Y2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCAKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2dlb21ldHJ5L2ludGVy
ZmFjZXMud29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvY3NzL2dlb21ldHJ5L2ludGVyZmFjZXMud29ya2VyLWV4cGVjdGVkLnR4
dAppbmRleCA5MDU4NzA4MjUwMmZiMDM4N2IyZWQ0ZWNlY2ZhMDZhZDdjMTA0Zjg4Li5jYjNiZTg5
NzhhM2JjMGQ0ZTcyMzc3NTgwM2ViZThkYzAzYTBjNDFiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9nZW9tZXRyeS9pbnRlcmZhY2Vz
Lndvcmtlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvZ2VvbWV0cnkvaW50ZXJmYWNlcy53b3JrZXItZXhwZWN0ZWQudHh0
CkBAIC0yNCw3ICsyNCw3IEBAIFBBU1MgRE9NUG9pbnRSZWFkT25seSBpbnRlcmZhY2U6IG5ldyBE
T01Qb2ludFJlYWRPbmx5KCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJ3CiBQQVNTIERPTVBvaW50
UmVhZE9ubHkgaW50ZXJmYWNlOiBuZXcgRE9NUG9pbnRSZWFkT25seSgpIG11c3QgaW5oZXJpdCBw
cm9wZXJ0eSAibWF0cml4VHJhbnNmb3JtKERPTU1hdHJpeEluaXQpIiB3aXRoIHRoZSBwcm9wZXIg
dHlwZSAKIFBBU1MgRE9NUG9pbnRSZWFkT25seSBpbnRlcmZhY2U6IGNhbGxpbmcgbWF0cml4VHJh
bnNmb3JtKERPTU1hdHJpeEluaXQpIG9uIG5ldyBET01Qb2ludFJlYWRPbmx5KCkgd2l0aCB0b28g
ZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKIFBBU1MgRE9NUG9pbnRSZWFkT25s
eSBpbnRlcmZhY2U6IG5ldyBET01Qb2ludFJlYWRPbmx5KCkgbXVzdCBpbmhlcml0IHByb3BlcnR5
ICJ0b0pTT04oKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCi1QQVNTIFRlc3QgZGVmYXVsdCB0b0pT
T04gb3BlcmF0aW9uIG9mIERPTVBvaW50UmVhZE9ubHkgCitQQVNTIERPTVBvaW50UmVhZE9ubHkg
aW50ZXJmYWNlOiBkZWZhdWx0IHRvSlNPTiBvcGVyYXRpb24gb24gbmV3IERPTVBvaW50UmVhZE9u
bHkoKSAKIFBBU1MgRE9NUG9pbnQgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMg
b2YgaW50ZXJmYWNlIG9iamVjdCAKIFBBU1MgRE9NUG9pbnQgaW50ZXJmYWNlIG9iamVjdCBsZW5n
dGggCiBQQVNTIERPTVBvaW50IGludGVyZmFjZSBvYmplY3QgbmFtZSAKQEAgLTU0LDcgKzU0LDcg
QEAgUEFTUyBET01Qb2ludFJlYWRPbmx5IGludGVyZmFjZTogbmV3IERPTVBvaW50KCkgbXVzdCBp
bmhlcml0IHByb3BlcnR5ICJ3IiB3aXRoIHQKIFBBU1MgRE9NUG9pbnRSZWFkT25seSBpbnRlcmZh
Y2U6IG5ldyBET01Qb2ludCgpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAibWF0cml4VHJhbnNmb3Jt
KERPTU1hdHJpeEluaXQpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgRE9NUG9pbnRSZWFk
T25seSBpbnRlcmZhY2U6IGNhbGxpbmcgbWF0cml4VHJhbnNmb3JtKERPTU1hdHJpeEluaXQpIG9u
IG5ldyBET01Qb2ludCgpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJy
b3IgCiBQQVNTIERPTVBvaW50UmVhZE9ubHkgaW50ZXJmYWNlOiBuZXcgRE9NUG9pbnQoKSBtdXN0
IGluaGVyaXQgcHJvcGVydHkgInRvSlNPTigpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKLVBBU1Mg
VGVzdCBkZWZhdWx0IHRvSlNPTiBvcGVyYXRpb24gb2YgRE9NUG9pbnQgCitQQVNTIERPTVBvaW50
UmVhZE9ubHkgaW50ZXJmYWNlOiBkZWZhdWx0IHRvSlNPTiBvcGVyYXRpb24gb24gbmV3IERPTVBv
aW50KCkgCiBQQVNTIERPTVJlY3RSZWFkT25seSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJv
cGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IAogUEFTUyBET01SZWN0UmVhZE9ubHkgaW50ZXJm
YWNlIG9iamVjdCBsZW5ndGggCiBQQVNTIERPTVJlY3RSZWFkT25seSBpbnRlcmZhY2Ugb2JqZWN0
IG5hbWUgCkBAIC04NCw3ICs4NCw3IEBAIFBBU1MgRE9NUmVjdFJlYWRPbmx5IGludGVyZmFjZTog
bmV3IERPTVJlY3RSZWFkT25seSgpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAicmlnCiBQQVNTIERP
TVJlY3RSZWFkT25seSBpbnRlcmZhY2U6IG5ldyBET01SZWN0UmVhZE9ubHkoKSBtdXN0IGluaGVy
aXQgcHJvcGVydHkgImJvdHRvbSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCiBQQVNTIERPTVJlY3RS
ZWFkT25seSBpbnRlcmZhY2U6IG5ldyBET01SZWN0UmVhZE9ubHkoKSBtdXN0IGluaGVyaXQgcHJv
cGVydHkgImxlZnQiIHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBET01SZWN0UmVhZE9ubHkg
aW50ZXJmYWNlOiBuZXcgRE9NUmVjdFJlYWRPbmx5KCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJ0
b0pTT04oKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCi1QQVNTIFRlc3QgZGVmYXVsdCB0b0pTT04g
b3BlcmF0aW9uIG9mIERPTVJlY3RSZWFkT25seSAKK1BBU1MgRE9NUmVjdFJlYWRPbmx5IGludGVy
ZmFjZTogZGVmYXVsdCB0b0pTT04gb3BlcmF0aW9uIG9uIG5ldyBET01SZWN0UmVhZE9ubHkoKSAK
IFBBU1MgRE9NUmVjdCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRl
cmZhY2Ugb2JqZWN0IAogUEFTUyBET01SZWN0IGludGVyZmFjZSBvYmplY3QgbGVuZ3RoIAogUEFT
UyBET01SZWN0IGludGVyZmFjZSBvYmplY3QgbmFtZSAKQEAgLTExNiw3ICsxMTYsNyBAQCBQQVNT
IERPTVJlY3RSZWFkT25seSBpbnRlcmZhY2U6IG5ldyBET01SZWN0KCkgbXVzdCBpbmhlcml0IHBy
b3BlcnR5ICJyaWdodCIgd2l0aAogUEFTUyBET01SZWN0UmVhZE9ubHkgaW50ZXJmYWNlOiBuZXcg
RE9NUmVjdCgpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiYm90dG9tIiB3aXRoIHRoZSBwcm9wZXIg
dHlwZSAKIFBBU1MgRE9NUmVjdFJlYWRPbmx5IGludGVyZmFjZTogbmV3IERPTVJlY3QoKSBtdXN0
IGluaGVyaXQgcHJvcGVydHkgImxlZnQiIHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBET01S
ZWN0UmVhZE9ubHkgaW50ZXJmYWNlOiBuZXcgRE9NUmVjdCgpIG11c3QgaW5oZXJpdCBwcm9wZXJ0
eSAidG9KU09OKCkiIHdpdGggdGhlIHByb3BlciB0eXBlIAotUEFTUyBUZXN0IGRlZmF1bHQgdG9K
U09OIG9wZXJhdGlvbiBvZiBET01SZWN0IAorUEFTUyBET01SZWN0UmVhZE9ubHkgaW50ZXJmYWNl
OiBkZWZhdWx0IHRvSlNPTiBvcGVyYXRpb24gb24gbmV3IERPTVJlY3QoKSAKIFBBU1MgRE9NUmVj
dExpc3QgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9i
amVjdCAKIFBBU1MgRE9NUXVhZCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBv
ZiBpbnRlcmZhY2Ugb2JqZWN0IAogUEFTUyBET01RdWFkIGludGVyZmFjZSBvYmplY3QgbGVuZ3Ro
IApAQCAtMTQ0LDcgKzE0NCw3IEBAIFBBU1MgRE9NUXVhZCBpbnRlcmZhY2U6IG5ldyBET01RdWFk
KCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJwMyIgd2l0aCB0aGUgcHJvcGVyCiBQQVNTIERPTVF1
YWQgaW50ZXJmYWNlOiBuZXcgRE9NUXVhZCgpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAicDQiIHdp
dGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBET01RdWFkIGludGVyZmFjZTogbmV3IERPTVF1YWQo
KSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImdldEJvdW5kcygpIiB3aXRoIHRoZSBwcm9wZXIgdHlw
ZSAKIFBBU1MgRE9NUXVhZCBpbnRlcmZhY2U6IG5ldyBET01RdWFkKCkgbXVzdCBpbmhlcml0IHBy
b3BlcnR5ICJ0b0pTT04oKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCi1GQUlMIFRlc3QgZGVmYXVs
dCB0b0pTT04gb3BlcmF0aW9uIG9mIERPTVF1YWQgYXNzZXJ0X3RydWU6IGluc3RhbmNlb2YgRE9N
UG9pbnQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK0ZBSUwgRE9NUXVhZCBpbnRlcmZhY2U6IGRl
ZmF1bHQgdG9KU09OIG9wZXJhdGlvbiBvbiBuZXcgRE9NUXVhZCgpIGFzc2VydF90cnVlOiBpbnN0
YW5jZW9mIERPTVBvaW50IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCiBQQVNTIERPTU1hdHJpeFJl
YWRPbmx5IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBv
YmplY3QgCiBQQVNTIERPTU1hdHJpeFJlYWRPbmx5IGludGVyZmFjZSBvYmplY3QgbGVuZ3RoIAog
UEFTUyBET01NYXRyaXhSZWFkT25seSBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUgCkBAIC0xOTMsNyAr
MTkzLDcgQEAgUEFTUyBET01NYXRyaXhSZWFkT25seSBpbnRlcmZhY2U6IG9wZXJhdGlvbiBpbnZl
cnNlKCkKIFBBU1MgRE9NTWF0cml4UmVhZE9ubHkgaW50ZXJmYWNlOiBvcGVyYXRpb24gdHJhbnNm
b3JtUG9pbnQoRE9NUG9pbnRJbml0KSAKIFBBU1MgRE9NTWF0cml4UmVhZE9ubHkgaW50ZXJmYWNl
OiBvcGVyYXRpb24gdG9GbG9hdDMyQXJyYXkoKSAKIFBBU1MgRE9NTWF0cml4UmVhZE9ubHkgaW50
ZXJmYWNlOiBvcGVyYXRpb24gdG9GbG9hdDY0QXJyYXkoKSAKLVBBU1MgRE9NTWF0cml4UmVhZE9u
bHkgaW50ZXJmYWNlOiBtZW1iZXIgdW5kZWZpbmVkIAorUEFTUyBET01NYXRyaXhSZWFkT25seSBp
bnRlcmZhY2U6IG1lbWJlciAgCiBQQVNTIERPTU1hdHJpeFJlYWRPbmx5IGludGVyZmFjZTogb3Bl
cmF0aW9uIHRvSlNPTigpIAogUEFTUyBET01NYXRyaXhSZWFkT25seSBtdXN0IGJlIHByaW1hcnkg
aW50ZXJmYWNlIG9mIG5ldyBET01NYXRyaXhSZWFkT25seSgpIAogUEFTUyBTdHJpbmdpZmljYXRp
b24gb2YgbmV3IERPTU1hdHJpeFJlYWRPbmx5KCkgCkBAIC0yNTIsOSArMjUyLDkgQEAgUEFTUyBE
T01NYXRyaXhSZWFkT25seSBpbnRlcmZhY2U6IG5ldyBET01NYXRyaXhSZWFkT25seSgpIG11c3Qg
aW5oZXJpdCBwcm9wZXJ0eQogUEFTUyBET01NYXRyaXhSZWFkT25seSBpbnRlcmZhY2U6IGNhbGxp
bmcgdHJhbnNmb3JtUG9pbnQoRE9NUG9pbnRJbml0KSBvbiBuZXcgRE9NTWF0cml4UmVhZE9ubHko
KSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAogUEFTUyBET01N
YXRyaXhSZWFkT25seSBpbnRlcmZhY2U6IG5ldyBET01NYXRyaXhSZWFkT25seSgpIG11c3QgaW5o
ZXJpdCBwcm9wZXJ0eSAidG9GbG9hdDMyQXJyYXkoKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCiBQ
QVNTIERPTU1hdHJpeFJlYWRPbmx5IGludGVyZmFjZTogbmV3IERPTU1hdHJpeFJlYWRPbmx5KCkg
bXVzdCBpbmhlcml0IHByb3BlcnR5ICJ0b0Zsb2F0NjRBcnJheSgpIiB3aXRoIHRoZSBwcm9wZXIg
dHlwZSAKLVBBU1MgRE9NTWF0cml4UmVhZE9ubHkgaW50ZXJmYWNlOiBuZXcgRE9NTWF0cml4UmVh
ZE9ubHkoKSBtdXN0IG5vdCBoYXZlIHByb3BlcnR5ICJ1bmRlZmluZWQiIAorUEFTUyBET01NYXRy
aXhSZWFkT25seSBpbnRlcmZhY2U6IG5ldyBET01NYXRyaXhSZWFkT25seSgpIG11c3Qgbm90IGhh
dmUgcHJvcGVydHkgIiIgCiBQQVNTIERPTU1hdHJpeFJlYWRPbmx5IGludGVyZmFjZTogbmV3IERP
TU1hdHJpeFJlYWRPbmx5KCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJ0b0pTT04oKSIgd2l0aCB0
aGUgcHJvcGVyIHR5cGUgCi1QQVNTIFRlc3QgZGVmYXVsdCB0b0pTT04gb3BlcmF0aW9uIG9mIERP
TU1hdHJpeFJlYWRPbmx5IAorUEFTUyBET01NYXRyaXhSZWFkT25seSBpbnRlcmZhY2U6IGRlZmF1
bHQgdG9KU09OIG9wZXJhdGlvbiBvbiBuZXcgRE9NTWF0cml4UmVhZE9ubHkoKSAKIFBBU1MgRE9N
TWF0cml4UmVhZE9ubHkgbXVzdCBiZSBwcmltYXJ5IGludGVyZmFjZSBvZiBET01NYXRyaXhSZWFk
T25seS5mcm9tTWF0cml4KHtpczJEOiBmYWxzZX0pIAogUEFTUyBTdHJpbmdpZmljYXRpb24gb2Yg
RE9NTWF0cml4UmVhZE9ubHkuZnJvbU1hdHJpeCh7aXMyRDogZmFsc2V9KSAKIFBBU1MgRE9NTWF0
cml4IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmpl
Y3QgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2RvbS9pbnRlcmZhY2VzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2ludGVyZmFjZXMtZXhwZWN0ZWQudHh0CmluZGV4IDFm
M2YxM2IwYmQ3NTAzMzFmNjg4YmRmZTZjMTE1MTZhNjdjNWE2OWIuLmE5OGUwODU2OWFmOTA0MjMz
MzlkMDE2N2Y2ZjgzZDg4ZmFiOGJjNjcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2ludGVyZmFjZXMtZXhwZWN0ZWQudHh0CisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2ludGVyZmFj
ZXMtZXhwZWN0ZWQudHh0CkBAIC0xLDggKzEsOCBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDQ4
MjogY2FsbGJhY2sgbm90IHlldCBzdXBwb3J0ZWQKIERPTSBJREwgdGVzdHMKIAogCiBQQVNTIFRl
c3QgZHJpdmVyIAorUEFTUyBQYXJ0aWFsIGludGVyZmFjZSBXaW5kb3c6IG9yaWdpbmFsIGludGVy
ZmFjZSBkZWZpbmVkIAogUEFTUyBFdmVudCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVy
dGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IAogUEFTUyBFdmVudCBpbnRlcmZhY2Ugb2JqZWN0IGxl
bmd0aCAKIFBBU1MgRXZlbnQgaW50ZXJmYWNlIG9iamVjdCBuYW1lIApAQCAtMTMsNiArMTMsNyBA
QCBQQVNTIEV2ZW50IGludGVyZmFjZTogYXR0cmlidXRlIHR5cGUKIFBBU1MgRXZlbnQgaW50ZXJm
YWNlOiBhdHRyaWJ1dGUgdGFyZ2V0IAogUEFTUyBFdmVudCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBz
cmNFbGVtZW50IAogUEFTUyBFdmVudCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBjdXJyZW50VGFyZ2V0
IAorUEFTUyBFdmVudCBpbnRlcmZhY2U6IG9wZXJhdGlvbiBjb21wb3NlZFBhdGgoKSAKIFBBU1Mg
RXZlbnQgaW50ZXJmYWNlOiBjb25zdGFudCBOT05FIG9uIGludGVyZmFjZSBvYmplY3QgCiBQQVNT
IEV2ZW50IGludGVyZmFjZTogY29uc3RhbnQgTk9ORSBvbiBpbnRlcmZhY2UgcHJvdG90eXBlIG9i
amVjdCAKIFBBU1MgRXZlbnQgaW50ZXJmYWNlOiBjb25zdGFudCBDQVBUVVJJTkdfUEhBU0Ugb24g
aW50ZXJmYWNlIG9iamVjdCAKQEAgLTIzLDEyICsyNCwxNCBAQCBQQVNTIEV2ZW50IGludGVyZmFj
ZTogY29uc3RhbnQgQlVCQkxJTkdfUEhBU0Ugb24gaW50ZXJmYWNlIG9iamVjdAogUEFTUyBFdmVu
dCBpbnRlcmZhY2U6IGNvbnN0YW50IEJVQkJMSU5HX1BIQVNFIG9uIGludGVyZmFjZSBwcm90b3R5
cGUgb2JqZWN0IAogUEFTUyBFdmVudCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBldmVudFBoYXNlIAog
UEFTUyBFdmVudCBpbnRlcmZhY2U6IG9wZXJhdGlvbiBzdG9wUHJvcGFnYXRpb24oKSAKK1BBU1Mg
RXZlbnQgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgY2FuY2VsQnViYmxlIAogUEFTUyBFdmVudCBpbnRl
cmZhY2U6IG9wZXJhdGlvbiBzdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKSAKIFBBU1MgRXZlbnQg
aW50ZXJmYWNlOiBhdHRyaWJ1dGUgYnViYmxlcyAKIFBBU1MgRXZlbnQgaW50ZXJmYWNlOiBhdHRy
aWJ1dGUgY2FuY2VsYWJsZSAKIFBBU1MgRXZlbnQgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgcmV0dXJu
VmFsdWUgCiBQQVNTIEV2ZW50IGludGVyZmFjZTogb3BlcmF0aW9uIHByZXZlbnREZWZhdWx0KCkg
CiBQQVNTIEV2ZW50IGludGVyZmFjZTogYXR0cmlidXRlIGRlZmF1bHRQcmV2ZW50ZWQgCitQQVNT
IEV2ZW50IGludGVyZmFjZTogYXR0cmlidXRlIGNvbXBvc2VkIAogUEFTUyBFdmVudCBpbnRlcmZh
Y2U6IGF0dHJpYnV0ZSB0aW1lU3RhbXAgCiBQQVNTIEV2ZW50IGludGVyZmFjZTogb3BlcmF0aW9u
IGluaXRFdmVudChET01TdHJpbmcsIGJvb2xlYW4sIGJvb2xlYW4pIAogUEFTUyBFdmVudCBtdXN0
IGJlIHByaW1hcnkgaW50ZXJmYWNlIG9mIGRvY3VtZW50LmNyZWF0ZUV2ZW50KCJFdmVudCIpIApA
QCAtMzcsMTggKzQwLDIxIEBAIFBBU1MgRXZlbnQgaW50ZXJmYWNlOiBkb2N1bWVudC5jcmVhdGVF
dmVudCgiRXZlbnQiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInR5cGUiCiBQQVNTIEV2ZW50IGlu
dGVyZmFjZTogZG9jdW1lbnQuY3JlYXRlRXZlbnQoIkV2ZW50IikgbXVzdCBpbmhlcml0IHByb3Bl
cnR5ICJ0YXJnZXQiIHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBFdmVudCBpbnRlcmZhY2U6
IGRvY3VtZW50LmNyZWF0ZUV2ZW50KCJFdmVudCIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAic3Jj
RWxlbWVudCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCiBQQVNTIEV2ZW50IGludGVyZmFjZTogZG9j
dW1lbnQuY3JlYXRlRXZlbnQoIkV2ZW50IikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJjdXJyZW50
VGFyZ2V0IiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgRXZlbnQgaW50ZXJmYWNlOiBkb2N1
bWVudC5jcmVhdGVFdmVudCgiRXZlbnQiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImNvbXBvc2Vk
UGF0aCgpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgRXZlbnQgaW50ZXJmYWNlOiBkb2N1
bWVudC5jcmVhdGVFdmVudCgiRXZlbnQiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgIk5PTkUiIHdp
dGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBFdmVudCBpbnRlcmZhY2U6IGRvY3VtZW50LmNyZWF0
ZUV2ZW50KCJFdmVudCIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiQ0FQVFVSSU5HX1BIQVNFIiB3
aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgRXZlbnQgaW50ZXJmYWNlOiBkb2N1bWVudC5jcmVh
dGVFdmVudCgiRXZlbnQiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgIkFUX1RBUkdFVCIgd2l0aCB0
aGUgcHJvcGVyIHR5cGUgCiBQQVNTIEV2ZW50IGludGVyZmFjZTogZG9jdW1lbnQuY3JlYXRlRXZl
bnQoIkV2ZW50IikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJCVUJCTElOR19QSEFTRSIgd2l0aCB0
aGUgcHJvcGVyIHR5cGUgCiBQQVNTIEV2ZW50IGludGVyZmFjZTogZG9jdW1lbnQuY3JlYXRlRXZl
bnQoIkV2ZW50IikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJldmVudFBoYXNlIiB3aXRoIHRoZSBw
cm9wZXIgdHlwZSAKIFBBU1MgRXZlbnQgaW50ZXJmYWNlOiBkb2N1bWVudC5jcmVhdGVFdmVudCgi
RXZlbnQiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInN0b3BQcm9wYWdhdGlvbigpIiB3aXRoIHRo
ZSBwcm9wZXIgdHlwZSAKK1BBU1MgRXZlbnQgaW50ZXJmYWNlOiBkb2N1bWVudC5jcmVhdGVFdmVu
dCgiRXZlbnQiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImNhbmNlbEJ1YmJsZSIgd2l0aCB0aGUg
cHJvcGVyIHR5cGUgCiBQQVNTIEV2ZW50IGludGVyZmFjZTogZG9jdW1lbnQuY3JlYXRlRXZlbnQo
IkV2ZW50IikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJzdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24o
KSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCiBQQVNTIEV2ZW50IGludGVyZmFjZTogZG9jdW1lbnQu
Y3JlYXRlRXZlbnQoIkV2ZW50IikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJidWJibGVzIiB3aXRo
IHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgRXZlbnQgaW50ZXJmYWNlOiBkb2N1bWVudC5jcmVhdGVF
dmVudCgiRXZlbnQiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImNhbmNlbGFibGUiIHdpdGggdGhl
IHByb3BlciB0eXBlIAogUEFTUyBFdmVudCBpbnRlcmZhY2U6IGRvY3VtZW50LmNyZWF0ZUV2ZW50
KCJFdmVudCIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAicmV0dXJuVmFsdWUiIHdpdGggdGhlIHBy
b3BlciB0eXBlIAogUEFTUyBFdmVudCBpbnRlcmZhY2U6IGRvY3VtZW50LmNyZWF0ZUV2ZW50KCJF
dmVudCIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAicHJldmVudERlZmF1bHQoKSIgd2l0aCB0aGUg
cHJvcGVyIHR5cGUgCiBQQVNTIEV2ZW50IGludGVyZmFjZTogZG9jdW1lbnQuY3JlYXRlRXZlbnQo
IkV2ZW50IikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJkZWZhdWx0UHJldmVudGVkIiB3aXRoIHRo
ZSBwcm9wZXIgdHlwZSAKK1BBU1MgRXZlbnQgaW50ZXJmYWNlOiBkb2N1bWVudC5jcmVhdGVFdmVu
dCgiRXZlbnQiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImNvbXBvc2VkIiB3aXRoIHRoZSBwcm9w
ZXIgdHlwZSAKIFBBU1MgRXZlbnQgaW50ZXJmYWNlOiBkb2N1bWVudC5jcmVhdGVFdmVudCgiRXZl
bnQiKSBtdXN0IGhhdmUgb3duIHByb3BlcnR5ICJpc1RydXN0ZWQiIAogUEFTUyBFdmVudCBpbnRl
cmZhY2U6IGRvY3VtZW50LmNyZWF0ZUV2ZW50KCJFdmVudCIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0
eSAidGltZVN0YW1wIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgRXZlbnQgaW50ZXJmYWNl
OiBkb2N1bWVudC5jcmVhdGVFdmVudCgiRXZlbnQiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImlu
aXRFdmVudChET01TdHJpbmcsIGJvb2xlYW4sIGJvb2xlYW4pIiB3aXRoIHRoZSBwcm9wZXIgdHlw
ZSAKQEAgLTU5LDE4ICs2NSwyMSBAQCBQQVNTIEV2ZW50IGludGVyZmFjZTogbmV3IEV2ZW50KCJm
b28iKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInR5cGUiIHdpdGggdGhlIHBybwogUEFTUyBFdmVu
dCBpbnRlcmZhY2U6IG5ldyBFdmVudCgiZm9vIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJ0YXJn
ZXQiIHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBFdmVudCBpbnRlcmZhY2U6IG5ldyBFdmVu
dCgiZm9vIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJzcmNFbGVtZW50IiB3aXRoIHRoZSBwcm9w
ZXIgdHlwZSAKIFBBU1MgRXZlbnQgaW50ZXJmYWNlOiBuZXcgRXZlbnQoImZvbyIpIG11c3QgaW5o
ZXJpdCBwcm9wZXJ0eSAiY3VycmVudFRhcmdldCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNT
IEV2ZW50IGludGVyZmFjZTogbmV3IEV2ZW50KCJmb28iKSBtdXN0IGluaGVyaXQgcHJvcGVydHkg
ImNvbXBvc2VkUGF0aCgpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgRXZlbnQgaW50ZXJm
YWNlOiBuZXcgRXZlbnQoImZvbyIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiTk9ORSIgd2l0aCB0
aGUgcHJvcGVyIHR5cGUgCiBQQVNTIEV2ZW50IGludGVyZmFjZTogbmV3IEV2ZW50KCJmb28iKSBt
dXN0IGluaGVyaXQgcHJvcGVydHkgIkNBUFRVUklOR19QSEFTRSIgd2l0aCB0aGUgcHJvcGVyIHR5
cGUgCiBQQVNTIEV2ZW50IGludGVyZmFjZTogbmV3IEV2ZW50KCJmb28iKSBtdXN0IGluaGVyaXQg
cHJvcGVydHkgIkFUX1RBUkdFVCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCiBQQVNTIEV2ZW50IGlu
dGVyZmFjZTogbmV3IEV2ZW50KCJmb28iKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgIkJVQkJMSU5H
X1BIQVNFIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgRXZlbnQgaW50ZXJmYWNlOiBuZXcg
RXZlbnQoImZvbyIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiZXZlbnRQaGFzZSIgd2l0aCB0aGUg
cHJvcGVyIHR5cGUgCiBQQVNTIEV2ZW50IGludGVyZmFjZTogbmV3IEV2ZW50KCJmb28iKSBtdXN0
IGluaGVyaXQgcHJvcGVydHkgInN0b3BQcm9wYWdhdGlvbigpIiB3aXRoIHRoZSBwcm9wZXIgdHlw
ZSAKK1BBU1MgRXZlbnQgaW50ZXJmYWNlOiBuZXcgRXZlbnQoImZvbyIpIG11c3QgaW5oZXJpdCBw
cm9wZXJ0eSAiY2FuY2VsQnViYmxlIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgRXZlbnQg
aW50ZXJmYWNlOiBuZXcgRXZlbnQoImZvbyIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAic3RvcElt
bWVkaWF0ZVByb3BhZ2F0aW9uKCkiIHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBFdmVudCBp
bnRlcmZhY2U6IG5ldyBFdmVudCgiZm9vIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJidWJibGVz
IiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgRXZlbnQgaW50ZXJmYWNlOiBuZXcgRXZlbnQo
ImZvbyIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiY2FuY2VsYWJsZSIgd2l0aCB0aGUgcHJvcGVy
IHR5cGUgCiBQQVNTIEV2ZW50IGludGVyZmFjZTogbmV3IEV2ZW50KCJmb28iKSBtdXN0IGluaGVy
aXQgcHJvcGVydHkgInJldHVyblZhbHVlIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgRXZl
bnQgaW50ZXJmYWNlOiBuZXcgRXZlbnQoImZvbyIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAicHJl
dmVudERlZmF1bHQoKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCiBQQVNTIEV2ZW50IGludGVyZmFj
ZTogbmV3IEV2ZW50KCJmb28iKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImRlZmF1bHRQcmV2ZW50
ZWQiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBFdmVudCBpbnRlcmZhY2U6IG5ldyBFdmVu
dCgiZm9vIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJjb21wb3NlZCIgd2l0aCB0aGUgcHJvcGVy
IHR5cGUgCiBQQVNTIEV2ZW50IGludGVyZmFjZTogbmV3IEV2ZW50KCJmb28iKSBtdXN0IGhhdmUg
b3duIHByb3BlcnR5ICJpc1RydXN0ZWQiIAogUEFTUyBFdmVudCBpbnRlcmZhY2U6IG5ldyBFdmVu
dCgiZm9vIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJ0aW1lU3RhbXAiIHdpdGggdGhlIHByb3Bl
ciB0eXBlIAogUEFTUyBFdmVudCBpbnRlcmZhY2U6IG5ldyBFdmVudCgiZm9vIikgbXVzdCBpbmhl
cml0IHByb3BlcnR5ICJpbml0RXZlbnQoRE9NU3RyaW5nLCBib29sZWFuLCBib29sZWFuKSIgd2l0
aCB0aGUgcHJvcGVyIHR5cGUgCkBAIC05MiwxOCArMTAxLDIxIEBAIFBBU1MgRXZlbnQgaW50ZXJm
YWNlOiBuZXcgQ3VzdG9tRXZlbnQoImZvbyIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAidHlwZSIg
d2l0aCB0CiBQQVNTIEV2ZW50IGludGVyZmFjZTogbmV3IEN1c3RvbUV2ZW50KCJmb28iKSBtdXN0
IGluaGVyaXQgcHJvcGVydHkgInRhcmdldCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCiBQQVNTIEV2
ZW50IGludGVyZmFjZTogbmV3IEN1c3RvbUV2ZW50KCJmb28iKSBtdXN0IGluaGVyaXQgcHJvcGVy
dHkgInNyY0VsZW1lbnQiIHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBFdmVudCBpbnRlcmZh
Y2U6IG5ldyBDdXN0b21FdmVudCgiZm9vIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJjdXJyZW50
VGFyZ2V0IiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgRXZlbnQgaW50ZXJmYWNlOiBuZXcg
Q3VzdG9tRXZlbnQoImZvbyIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiY29tcG9zZWRQYXRoKCki
IHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBFdmVudCBpbnRlcmZhY2U6IG5ldyBDdXN0b21F
dmVudCgiZm9vIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJOT05FIiB3aXRoIHRoZSBwcm9wZXIg
dHlwZSAKIFBBU1MgRXZlbnQgaW50ZXJmYWNlOiBuZXcgQ3VzdG9tRXZlbnQoImZvbyIpIG11c3Qg
aW5oZXJpdCBwcm9wZXJ0eSAiQ0FQVFVSSU5HX1BIQVNFIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAK
IFBBU1MgRXZlbnQgaW50ZXJmYWNlOiBuZXcgQ3VzdG9tRXZlbnQoImZvbyIpIG11c3QgaW5oZXJp
dCBwcm9wZXJ0eSAiQVRfVEFSR0VUIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgRXZlbnQg
aW50ZXJmYWNlOiBuZXcgQ3VzdG9tRXZlbnQoImZvbyIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAi
QlVCQkxJTkdfUEhBU0UiIHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBFdmVudCBpbnRlcmZh
Y2U6IG5ldyBDdXN0b21FdmVudCgiZm9vIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJldmVudFBo
YXNlIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgRXZlbnQgaW50ZXJmYWNlOiBuZXcgQ3Vz
dG9tRXZlbnQoImZvbyIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAic3RvcFByb3BhZ2F0aW9uKCki
IHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBFdmVudCBpbnRlcmZhY2U6IG5ldyBDdXN0b21F
dmVudCgiZm9vIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJjYW5jZWxCdWJibGUiIHdpdGggdGhl
IHByb3BlciB0eXBlIAogUEFTUyBFdmVudCBpbnRlcmZhY2U6IG5ldyBDdXN0b21FdmVudCgiZm9v
IikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJzdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKSIgd2l0
aCB0aGUgcHJvcGVyIHR5cGUgCiBQQVNTIEV2ZW50IGludGVyZmFjZTogbmV3IEN1c3RvbUV2ZW50
KCJmb28iKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImJ1YmJsZXMiIHdpdGggdGhlIHByb3BlciB0
eXBlIAogUEFTUyBFdmVudCBpbnRlcmZhY2U6IG5ldyBDdXN0b21FdmVudCgiZm9vIikgbXVzdCBp
bmhlcml0IHByb3BlcnR5ICJjYW5jZWxhYmxlIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBBU1Mg
RXZlbnQgaW50ZXJmYWNlOiBuZXcgQ3VzdG9tRXZlbnQoImZvbyIpIG11c3QgaW5oZXJpdCBwcm9w
ZXJ0eSAicmV0dXJuVmFsdWUiIHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBFdmVudCBpbnRl
cmZhY2U6IG5ldyBDdXN0b21FdmVudCgiZm9vIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJwcmV2
ZW50RGVmYXVsdCgpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgRXZlbnQgaW50ZXJmYWNl
OiBuZXcgQ3VzdG9tRXZlbnQoImZvbyIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiZGVmYXVsdFBy
ZXZlbnRlZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIEV2ZW50IGludGVyZmFjZTogbmV3
IEN1c3RvbUV2ZW50KCJmb28iKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImNvbXBvc2VkIiB3aXRo
IHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgRXZlbnQgaW50ZXJmYWNlOiBuZXcgQ3VzdG9tRXZlbnQo
ImZvbyIpIG11c3QgaGF2ZSBvd24gcHJvcGVydHkgImlzVHJ1c3RlZCIgCiBQQVNTIEV2ZW50IGlu
dGVyZmFjZTogbmV3IEN1c3RvbUV2ZW50KCJmb28iKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInRp
bWVTdGFtcCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCiBQQVNTIEV2ZW50IGludGVyZmFjZTogbmV3
IEN1c3RvbUV2ZW50KCJmb28iKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImluaXRFdmVudChET01T
dHJpbmcsIGJvb2xlYW4sIGJvb2xlYW4pIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKQEAgLTE2OCw2
ICsxODAsNyBAQCBQQVNTIE5vZGVMaXN0IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0
aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0JwogUEFTUyBOb2RlTGlzdCBpbnRlcmZh
Y2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVj
dCdzIEBAdW5zY29wYWJsZXMgcHJvcGVydHkgCiBQQVNTIE5vZGVMaXN0IGludGVyZmFjZTogb3Bl
cmF0aW9uIGl0ZW0odW5zaWduZWQgbG9uZykgCiBQQVNTIE5vZGVMaXN0IGludGVyZmFjZTogYXR0
cmlidXRlIGxlbmd0aCAKK1BBU1MgTm9kZUxpc3QgaW50ZXJmYWNlOiBpdGVyYWJsZTxOb2RlPiAK
IFBBU1MgTm9kZUxpc3QgbXVzdCBiZSBwcmltYXJ5IGludGVyZmFjZSBvZiBkb2N1bWVudC5xdWVy
eVNlbGVjdG9yQWxsKCJzY3JpcHQiKSAKIFBBU1MgU3RyaW5naWZpY2F0aW9uIG9mIGRvY3VtZW50
LnF1ZXJ5U2VsZWN0b3JBbGwoInNjcmlwdCIpIAogUEFTUyBOb2RlTGlzdCBpbnRlcmZhY2U6IGRv
Y3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoInNjcmlwdCIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAi
aXRlbSh1bnNpZ25lZCBsb25nKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCkBAIC0zMjgsNiArMzQx
LDkgQEAgUEFTUyBEb2N1bWVudCBpbnRlcmZhY2U6IG9wZXJhdGlvbiBwcmVwZW5kKFtvYmplY3Qg
T2JqZWN0XSxbb2JqZWN0IE9iamVjdF0pCiBQQVNTIERvY3VtZW50IGludGVyZmFjZTogb3BlcmF0
aW9uIGFwcGVuZChbb2JqZWN0IE9iamVjdF0sW29iamVjdCBPYmplY3RdKSAKIFBBU1MgRG9jdW1l
bnQgaW50ZXJmYWNlOiBvcGVyYXRpb24gcXVlcnlTZWxlY3RvcihET01TdHJpbmcpIAogUEFTUyBE
b2N1bWVudCBpbnRlcmZhY2U6IG9wZXJhdGlvbiBxdWVyeVNlbGVjdG9yQWxsKERPTVN0cmluZykg
CitGQUlMIERvY3VtZW50IGludGVyZmFjZTogb3BlcmF0aW9uIGNyZWF0ZUV4cHJlc3Npb24oRE9N
U3RyaW5nLCBYUGF0aE5TUmVzb2x2ZXIpIGFzc2VydF9lcXVhbHM6IHByb3BlcnR5IGhhcyB3cm9u
ZyAubGVuZ3RoIGV4cGVjdGVkIDEgYnV0IGdvdCAwCitQQVNTIERvY3VtZW50IGludGVyZmFjZTog
b3BlcmF0aW9uIGNyZWF0ZU5TUmVzb2x2ZXIoTm9kZSkgCitGQUlMIERvY3VtZW50IGludGVyZmFj
ZTogb3BlcmF0aW9uIGV2YWx1YXRlKERPTVN0cmluZywgTm9kZSwgWFBhdGhOU1Jlc29sdmVyLCB1
bnNpZ25lZCBzaG9ydCwgWFBhdGhSZXN1bHQpIGFzc2VydF9lcXVhbHM6IHByb3BlcnR5IGhhcyB3
cm9uZyAubGVuZ3RoIGV4cGVjdGVkIDIgYnV0IGdvdCAwCiBQQVNTIERvY3VtZW50IG11c3QgYmUg
cHJpbWFyeSBpbnRlcmZhY2Ugb2YgbmV3IERvY3VtZW50KCkgCiBQQVNTIFN0cmluZ2lmaWNhdGlv
biBvZiBuZXcgRG9jdW1lbnQoKSAKIFBBU1MgRG9jdW1lbnQgaW50ZXJmYWNlOiBuZXcgRG9jdW1l
bnQoKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImltcGxlbWVudGF0aW9uIiB3aXRoIHRoZSBwcm9w
ZXIgdHlwZSAKQEAgLTM4OSw2ICs0MDUsMTYgQEAgUEFTUyBEb2N1bWVudCBpbnRlcmZhY2U6IG5l
dyBEb2N1bWVudCgpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAicXVlcnlTZWxlY3RvcihET00KIFBB
U1MgRG9jdW1lbnQgaW50ZXJmYWNlOiBjYWxsaW5nIHF1ZXJ5U2VsZWN0b3IoRE9NU3RyaW5nKSBv
biBuZXcgRG9jdW1lbnQoKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVy
cm9yIAogUEFTUyBEb2N1bWVudCBpbnRlcmZhY2U6IG5ldyBEb2N1bWVudCgpIG11c3QgaW5oZXJp
dCBwcm9wZXJ0eSAicXVlcnlTZWxlY3RvckFsbChET01TdHJpbmcpIiB3aXRoIHRoZSBwcm9wZXIg
dHlwZSAKIFBBU1MgRG9jdW1lbnQgaW50ZXJmYWNlOiBjYWxsaW5nIHF1ZXJ5U2VsZWN0b3JBbGwo
RE9NU3RyaW5nKSBvbiBuZXcgRG9jdW1lbnQoKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3Qg
dGhyb3cgVHlwZUVycm9yIAorUEFTUyBEb2N1bWVudCBpbnRlcmZhY2U6IG5ldyBEb2N1bWVudCgp
IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiY3JlYXRlRXhwcmVzc2lvbihET01TdHJpbmcsIFhQYXRo
TlNSZXNvbHZlcikiIHdpdGggdGhlIHByb3BlciB0eXBlIAorRkFJTCBEb2N1bWVudCBpbnRlcmZh
Y2U6IGNhbGxpbmcgY3JlYXRlRXhwcmVzc2lvbihET01TdHJpbmcsIFhQYXRoTlNSZXNvbHZlcikg
b24gbmV3IERvY3VtZW50KCkgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVF
cnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVu
Y3Rpb24gKCkgeworICAgICAgICAgICAgZm4uYXBwbHkob2JqLCBhcmdzKTsKKyAgICAgICAgfSIg
ZGlkIG5vdCB0aHJvdworUEFTUyBEb2N1bWVudCBpbnRlcmZhY2U6IG5ldyBEb2N1bWVudCgpIG11
c3QgaW5oZXJpdCBwcm9wZXJ0eSAiY3JlYXRlTlNSZXNvbHZlcihOb2RlKSIgd2l0aCB0aGUgcHJv
cGVyIHR5cGUgCitQQVNTIERvY3VtZW50IGludGVyZmFjZTogY2FsbGluZyBjcmVhdGVOU1Jlc29s
dmVyKE5vZGUpIG9uIG5ldyBEb2N1bWVudCgpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0
aHJvdyBUeXBlRXJyb3IgCitQQVNTIERvY3VtZW50IGludGVyZmFjZTogbmV3IERvY3VtZW50KCkg
bXVzdCBpbmhlcml0IHByb3BlcnR5ICJldmFsdWF0ZShET01TdHJpbmcsIE5vZGUsIFhQYXRoTlNS
ZXNvbHZlciwgdW5zaWduZWQgc2hvcnQsIFhQYXRoUmVzdWx0KSIgd2l0aCB0aGUgcHJvcGVyIHR5
cGUgCitGQUlMIERvY3VtZW50IGludGVyZmFjZTogY2FsbGluZyBldmFsdWF0ZShET01TdHJpbmcs
IE5vZGUsIFhQYXRoTlNSZXNvbHZlciwgdW5zaWduZWQgc2hvcnQsIFhQYXRoUmVzdWx0KSBvbiBu
ZXcgRG9jdW1lbnQoKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9y
IGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlv
biAoKSB7CisgICAgICAgICAgICBmbi5hcHBseShvYmosIGFyZ3MpOworICAgICAgICB9IiB0aHJl
dyBvYmplY3QgIk5vdFN1cHBvcnRlZEVycm9yOiBUaGUgb3BlcmF0aW9uIGlzIG5vdCBzdXBwb3J0
ZWQuIiAoIk5vdFN1cHBvcnRlZEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgi
VHlwZUVycm9yIikKIFBBU1MgTm9kZSBpbnRlcmZhY2U6IG5ldyBEb2N1bWVudCgpIG11c3QgaW5o
ZXJpdCBwcm9wZXJ0eSAiRUxFTUVOVF9OT0RFIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBBU1Mg
Tm9kZSBpbnRlcmZhY2U6IG5ldyBEb2N1bWVudCgpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiQVRU
UklCVVRFX05PREUiIHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBOb2RlIGludGVyZmFjZTog
bmV3IERvY3VtZW50KCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJURVhUX05PREUiIHdpdGggdGhl
IHByb3BlciB0eXBlIApAQCAtNTIyLDYgKzU0OCwxNiBAQCBQQVNTIERvY3VtZW50IGludGVyZmFj
ZTogeG1sRG9jIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAicXVlcnlTZWxlY3RvcihET01TdHJpbmcp
IgogUEFTUyBEb2N1bWVudCBpbnRlcmZhY2U6IGNhbGxpbmcgcXVlcnlTZWxlY3RvcihET01TdHJp
bmcpIG9uIHhtbERvYyB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9y
IAogUEFTUyBEb2N1bWVudCBpbnRlcmZhY2U6IHhtbERvYyBtdXN0IGluaGVyaXQgcHJvcGVydHkg
InF1ZXJ5U2VsZWN0b3JBbGwoRE9NU3RyaW5nKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCiBQQVNT
IERvY3VtZW50IGludGVyZmFjZTogY2FsbGluZyBxdWVyeVNlbGVjdG9yQWxsKERPTVN0cmluZykg
b24geG1sRG9jIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCitQ
QVNTIERvY3VtZW50IGludGVyZmFjZTogeG1sRG9jIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiY3Jl
YXRlRXhwcmVzc2lvbihET01TdHJpbmcsIFhQYXRoTlNSZXNvbHZlcikiIHdpdGggdGhlIHByb3Bl
ciB0eXBlIAorRkFJTCBEb2N1bWVudCBpbnRlcmZhY2U6IGNhbGxpbmcgY3JlYXRlRXhwcmVzc2lv
bihET01TdHJpbmcsIFhQYXRoTlNSZXNvbHZlcikgb24geG1sRG9jIHdpdGggdG9vIGZldyBhcmd1
bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBh
cmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIGZuLmFwcGx5KG9i
aiwgYXJncyk7CisgICAgICAgIH0iIGRpZCBub3QgdGhyb3cKK1BBU1MgRG9jdW1lbnQgaW50ZXJm
YWNlOiB4bWxEb2MgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJjcmVhdGVOU1Jlc29sdmVyKE5vZGUp
IiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgRG9jdW1lbnQgaW50ZXJmYWNlOiBjYWxsaW5n
IGNyZWF0ZU5TUmVzb2x2ZXIoTm9kZSkgb24geG1sRG9jIHdpdGggdG9vIGZldyBhcmd1bWVudHMg
bXVzdCB0aHJvdyBUeXBlRXJyb3IgCitQQVNTIERvY3VtZW50IGludGVyZmFjZTogeG1sRG9jIG11
c3QgaW5oZXJpdCBwcm9wZXJ0eSAiZXZhbHVhdGUoRE9NU3RyaW5nLCBOb2RlLCBYUGF0aE5TUmVz
b2x2ZXIsIHVuc2lnbmVkIHNob3J0LCBYUGF0aFJlc3VsdCkiIHdpdGggdGhlIHByb3BlciB0eXBl
IAorRkFJTCBEb2N1bWVudCBpbnRlcmZhY2U6IGNhbGxpbmcgZXZhbHVhdGUoRE9NU3RyaW5nLCBO
b2RlLCBYUGF0aE5TUmVzb2x2ZXIsIHVuc2lnbmVkIHNob3J0LCBYUGF0aFJlc3VsdCkgb24geG1s
RG9jIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Ro
cm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKKyAg
ICAgICAgICAgIGZuLmFwcGx5KG9iaiwgYXJncyk7CisgICAgICAgIH0iIHRocmV3IG9iamVjdCAi
Tm90U3VwcG9ydGVkRXJyb3I6IFRoZSBvcGVyYXRpb24gaXMgbm90IHN1cHBvcnRlZC4iICgiTm90
U3VwcG9ydGVkRXJyb3IiKSBleHBlY3RlZCBvYmplY3QgIlR5cGVFcnJvciIgKCJUeXBlRXJyb3Ii
KQogUEFTUyBOb2RlIGludGVyZmFjZTogeG1sRG9jIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiRUxF
TUVOVF9OT0RFIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgTm9kZSBpbnRlcmZhY2U6IHht
bERvYyBtdXN0IGluaGVyaXQgcHJvcGVydHkgIkFUVFJJQlVURV9OT0RFIiB3aXRoIHRoZSBwcm9w
ZXIgdHlwZSAKIFBBU1MgTm9kZSBpbnRlcmZhY2U6IHhtbERvYyBtdXN0IGluaGVyaXQgcHJvcGVy
dHkgIlRFWFRfTk9ERSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCkBAIC04MjYsNiArODYyLDcgQEAg
UEFTUyBFbGVtZW50IGludGVyZmFjZTogb3BlcmF0aW9uIHNldEF0dHJpYnV0ZShET01TdHJpbmcs
IERPTVN0cmluZykKIFBBU1MgRWxlbWVudCBpbnRlcmZhY2U6IG9wZXJhdGlvbiBzZXRBdHRyaWJ1
dGVOUyhET01TdHJpbmcsIERPTVN0cmluZywgRE9NU3RyaW5nKSAKIFBBU1MgRWxlbWVudCBpbnRl
cmZhY2U6IG9wZXJhdGlvbiByZW1vdmVBdHRyaWJ1dGUoRE9NU3RyaW5nKSAKIFBBU1MgRWxlbWVu
dCBpbnRlcmZhY2U6IG9wZXJhdGlvbiByZW1vdmVBdHRyaWJ1dGVOUyhET01TdHJpbmcsIERPTVN0
cmluZykgCitQQVNTIEVsZW1lbnQgaW50ZXJmYWNlOiBvcGVyYXRpb24gdG9nZ2xlQXR0cmlidXRl
KERPTVN0cmluZywgYm9vbGVhbikgCiBQQVNTIEVsZW1lbnQgaW50ZXJmYWNlOiBvcGVyYXRpb24g
aGFzQXR0cmlidXRlKERPTVN0cmluZykgCiBQQVNTIEVsZW1lbnQgaW50ZXJmYWNlOiBvcGVyYXRp
b24gaGFzQXR0cmlidXRlTlMoRE9NU3RyaW5nLCBET01TdHJpbmcpIAogUEFTUyBFbGVtZW50IGlu
dGVyZmFjZTogb3BlcmF0aW9uIGdldEF0dHJpYnV0ZU5vZGUoRE9NU3RyaW5nKSAKQEAgLTg4Myw2
ICs5MjAsOCBAQCBQQVNTIEVsZW1lbnQgaW50ZXJmYWNlOiBlbGVtZW50IG11c3QgaW5oZXJpdCBw
cm9wZXJ0eSAicmVtb3ZlQXR0cmlidXRlKERPTVN0cmluZwogUEFTUyBFbGVtZW50IGludGVyZmFj
ZTogY2FsbGluZyByZW1vdmVBdHRyaWJ1dGUoRE9NU3RyaW5nKSBvbiBlbGVtZW50IHdpdGggdG9v
IGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCiBQQVNTIEVsZW1lbnQgaW50ZXJm
YWNlOiBlbGVtZW50IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAicmVtb3ZlQXR0cmlidXRlTlMoRE9N
U3RyaW5nLCBET01TdHJpbmcpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgRWxlbWVudCBp
bnRlcmZhY2U6IGNhbGxpbmcgcmVtb3ZlQXR0cmlidXRlTlMoRE9NU3RyaW5nLCBET01TdHJpbmcp
IG9uIGVsZW1lbnQgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAK
K1BBU1MgRWxlbWVudCBpbnRlcmZhY2U6IGVsZW1lbnQgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJ0
b2dnbGVBdHRyaWJ1dGUoRE9NU3RyaW5nLCBib29sZWFuKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUg
CitQQVNTIEVsZW1lbnQgaW50ZXJmYWNlOiBjYWxsaW5nIHRvZ2dsZUF0dHJpYnV0ZShET01TdHJp
bmcsIGJvb2xlYW4pIG9uIGVsZW1lbnQgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93
IFR5cGVFcnJvciAKIFBBU1MgRWxlbWVudCBpbnRlcmZhY2U6IGVsZW1lbnQgbXVzdCBpbmhlcml0
IHByb3BlcnR5ICJoYXNBdHRyaWJ1dGUoRE9NU3RyaW5nKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUg
CiBQQVNTIEVsZW1lbnQgaW50ZXJmYWNlOiBjYWxsaW5nIGhhc0F0dHJpYnV0ZShET01TdHJpbmcp
IG9uIGVsZW1lbnQgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAK
IFBBU1MgRWxlbWVudCBpbnRlcmZhY2U6IGVsZW1lbnQgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJo
YXNBdHRyaWJ1dGVOUyhET01TdHJpbmcsIERPTVN0cmluZykiIHdpdGggdGhlIHByb3BlciB0eXBl
IApAQCAtMTQzNiwxNiArMTQ3NSwxNiBAQCBGQUlMIEFic3RyYWN0UmFuZ2UgaW50ZXJmYWNlOiBh
dHRyaWJ1dGUgc3RhcnRPZmZzZXQgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkbwogRkFJTCBB
YnN0cmFjdFJhbmdlIGludGVyZmFjZTogYXR0cmlidXRlIGVuZENvbnRhaW5lciBhc3NlcnRfb3du
X3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJBYnN0cmFjdFJhbmdl
IiBleHBlY3RlZCBwcm9wZXJ0eSAiQWJzdHJhY3RSYW5nZSIgbWlzc2luZwogRkFJTCBBYnN0cmFj
dFJhbmdlIGludGVyZmFjZTogYXR0cmlidXRlIGVuZE9mZnNldCBhc3NlcnRfb3duX3Byb3BlcnR5
OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJBYnN0cmFjdFJhbmdlIiBleHBlY3Rl
ZCBwcm9wZXJ0eSAiQWJzdHJhY3RSYW5nZSIgbWlzc2luZwogRkFJTCBBYnN0cmFjdFJhbmdlIGlu
dGVyZmFjZTogYXR0cmlidXRlIGNvbGxhcHNlZCBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRv
ZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJBYnN0cmFjdFJhbmdlIiBleHBlY3RlZCBwcm9wZXJ0
eSAiQWJzdHJhY3RSYW5nZSIgbWlzc2luZwotRkFJTCBTdGF0aWNSYW5nZSBpbnRlcmZhY2U6IGV4
aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IGFzc2VydF9vd25fcHJv
cGVydHk6IHNob3VsZCBpbmhlcml0IGZyb20gQWJzdHJhY3RSYW5nZSwgYnV0IHNlbGYgaGFzIG5v
IHN1Y2ggcHJvcGVydHkgZXhwZWN0ZWQgcHJvcGVydHkgIkFic3RyYWN0UmFuZ2UiIG1pc3NpbmcK
LUZBSUwgU3RhdGljUmFuZ2UgaW50ZXJmYWNlIG9iamVjdCBsZW5ndGggYXNzZXJ0X2VxdWFsczog
d3JvbmcgdmFsdWUgZm9yIFN0YXRpY1JhbmdlLmxlbmd0aCBleHBlY3RlZCAwIGJ1dCBnb3QgMQor
RkFJTCBTdGF0aWNSYW5nZSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBp
bnRlcmZhY2Ugb2JqZWN0IGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBv
d24gcHJvcGVydHkgIkFic3RyYWN0UmFuZ2UiIGV4cGVjdGVkIHByb3BlcnR5ICJBYnN0cmFjdFJh
bmdlIiBtaXNzaW5nCitQQVNTIFN0YXRpY1JhbmdlIGludGVyZmFjZSBvYmplY3QgbGVuZ3RoIAog
UEFTUyBTdGF0aWNSYW5nZSBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUgCi1GQUlMIFN0YXRpY1Jhbmdl
IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5
cGUgb2JqZWN0IGFzc2VydF9vd25fcHJvcGVydHk6IHNob3VsZCBpbmhlcml0IGZyb20gQWJzdHJh
Y3RSYW5nZSwgYnV0IHNlbGYgaGFzIG5vIHN1Y2ggcHJvcGVydHkgZXhwZWN0ZWQgcHJvcGVydHkg
IkFic3RyYWN0UmFuZ2UiIG1pc3NpbmcKK0ZBSUwgU3RhdGljUmFuZ2UgaW50ZXJmYWNlOiBleGlz
dGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgYXNzZXJ0
X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiQWJzdHJhY3RS
YW5nZSIgZXhwZWN0ZWQgcHJvcGVydHkgIkFic3RyYWN0UmFuZ2UiIG1pc3NpbmcKIFBBU1MgU3Rh
dGljUmFuZ2UgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNl
IHByb3RvdHlwZSBvYmplY3QncyAiY29uc3RydWN0b3IiIHByb3BlcnR5IAogUEFTUyBTdGF0aWNS
YW5nZSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJv
dG90eXBlIG9iamVjdCdzIEBAdW5zY29wYWJsZXMgcHJvcGVydHkgCi1GQUlMIFJhbmdlIGludGVy
ZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgYXNzZXJ0
X293bl9wcm9wZXJ0eTogc2hvdWxkIGluaGVyaXQgZnJvbSBBYnN0cmFjdFJhbmdlLCBidXQgc2Vs
ZiBoYXMgbm8gc3VjaCBwcm9wZXJ0eSBleHBlY3RlZCBwcm9wZXJ0eSAiQWJzdHJhY3RSYW5nZSIg
bWlzc2luZworRkFJTCBSYW5nZSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBv
ZiBpbnRlcmZhY2Ugb2JqZWN0IGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2
ZSBvd24gcHJvcGVydHkgIkFic3RyYWN0UmFuZ2UiIGV4cGVjdGVkIHByb3BlcnR5ICJBYnN0cmFj
dFJhbmdlIiBtaXNzaW5nCiBQQVNTIFJhbmdlIGludGVyZmFjZSBvYmplY3QgbGVuZ3RoIAogUEFT
UyBSYW5nZSBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUgCi1GQUlMIFJhbmdlIGludGVyZmFjZTogZXhp
c3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IGFzc2Vy
dF9vd25fcHJvcGVydHk6IHNob3VsZCBpbmhlcml0IGZyb20gQWJzdHJhY3RSYW5nZSwgYnV0IHNl
bGYgaGFzIG5vIHN1Y2ggcHJvcGVydHkgZXhwZWN0ZWQgcHJvcGVydHkgIkFic3RyYWN0UmFuZ2Ui
IG1pc3NpbmcKK0ZBSUwgUmFuZ2UgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMg
b2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBk
b2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiQWJzdHJhY3RSYW5nZSIgZXhwZWN0ZWQgcHJvcGVy
dHkgIkFic3RyYWN0UmFuZ2UiIG1pc3NpbmcKIFBBU1MgUmFuZ2UgaW50ZXJmYWNlOiBleGlzdGVu
Y2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyAiY29uc3Ry
dWN0b3IiIHByb3BlcnR5IAogUEFTUyBSYW5nZSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJv
cGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzIEBAdW5zY29wYWJsZXMgcHJv
cGVydHkgCiBQQVNTIFJhbmdlIGludGVyZmFjZTogYXR0cmlidXRlIGNvbW1vbkFuY2VzdG9yQ29u
dGFpbmVyIApAQCAtMTY4MCw2ICsxNzE5LDcgQEAgUEFTUyBET01Ub2tlbkxpc3QgaW50ZXJmYWNl
OiBvcGVyYXRpb24gcmVwbGFjZShET01TdHJpbmcsIERPTVN0cmluZykKIFBBU1MgRE9NVG9rZW5M
aXN0IGludGVyZmFjZTogb3BlcmF0aW9uIHN1cHBvcnRzKERPTVN0cmluZykgCiBQQVNTIERPTVRv
a2VuTGlzdCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSB2YWx1ZSAKIFBBU1MgRE9NVG9rZW5MaXN0IGlu
dGVyZmFjZTogc3RyaW5naWZpZXIgCitQQVNTIERPTVRva2VuTGlzdCBpbnRlcmZhY2U6IGl0ZXJh
YmxlPERPTVN0cmluZz4gCiBQQVNTIERPTVRva2VuTGlzdCBtdXN0IGJlIHByaW1hcnkgaW50ZXJm
YWNlIG9mIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0IAogUEFTUyBTdHJpbmdpZmljYXRpb24gb2Yg
ZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QgCiBQQVNTIERPTVRva2VuTGlzdCBpbnRlcmZhY2U6IGRv
Y3VtZW50LmJvZHkuY2xhc3NMaXN0IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAibGVuZ3RoIiB3aXRo
IHRoZSBwcm9wZXIgdHlwZSAKQEAgLTE2OTgsNSArMTczOCw2MSBAQCBQQVNTIERPTVRva2VuTGlz
dCBpbnRlcmZhY2U6IGNhbGxpbmcgcmVwbGFjZShET01TdHJpbmcsIERPTVN0cmluZykgb24gZG9j
dW1lbnQuYgogUEFTUyBET01Ub2tlbkxpc3QgaW50ZXJmYWNlOiBkb2N1bWVudC5ib2R5LmNsYXNz
TGlzdCBtdXN0IGluaGVyaXQgcHJvcGVydHkgInN1cHBvcnRzKERPTVN0cmluZykiIHdpdGggdGhl
IHByb3BlciB0eXBlIAogUEFTUyBET01Ub2tlbkxpc3QgaW50ZXJmYWNlOiBjYWxsaW5nIHN1cHBv
cnRzKERPTVN0cmluZykgb24gZG9jdW1lbnQuYm9keS5jbGFzc0xpc3Qgd2l0aCB0b28gZmV3IGFy
Z3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKIFBBU1MgRE9NVG9rZW5MaXN0IGludGVyZmFj
ZTogZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJ2YWx1ZSIg
d2l0aCB0aGUgcHJvcGVyIHR5cGUgCi1QQVNTIFdvcmtlckdsb2JhbFNjb3BlIGludGVyZmFjZTog
ZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgCitQQVNTIFhQYXRo
UmVzdWx0IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBv
YmplY3QgCitQQVNTIFhQYXRoUmVzdWx0IGludGVyZmFjZSBvYmplY3QgbGVuZ3RoIAorUEFTUyBY
UGF0aFJlc3VsdCBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUgCitQQVNTIFhQYXRoUmVzdWx0IGludGVy
ZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2Jq
ZWN0IAorUEFTUyBYUGF0aFJlc3VsdCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGll
cyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzICJjb25zdHJ1Y3RvciIgcHJvcGVydHkg
CitQQVNTIFhQYXRoUmVzdWx0IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9m
IGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgQEB1bnNjb3BhYmxlcyBwcm9wZXJ0eSAKK1BB
U1MgWFBhdGhSZXN1bHQgaW50ZXJmYWNlOiBjb25zdGFudCBBTllfVFlQRSBvbiBpbnRlcmZhY2Ug
b2JqZWN0IAorUEFTUyBYUGF0aFJlc3VsdCBpbnRlcmZhY2U6IGNvbnN0YW50IEFOWV9UWVBFIG9u
IGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IAorUEFTUyBYUGF0aFJlc3VsdCBpbnRlcmZhY2U6
IGNvbnN0YW50IE5VTUJFUl9UWVBFIG9uIGludGVyZmFjZSBvYmplY3QgCitQQVNTIFhQYXRoUmVz
dWx0IGludGVyZmFjZTogY29uc3RhbnQgTlVNQkVSX1RZUEUgb24gaW50ZXJmYWNlIHByb3RvdHlw
ZSBvYmplY3QgCitQQVNTIFhQYXRoUmVzdWx0IGludGVyZmFjZTogY29uc3RhbnQgU1RSSU5HX1RZ
UEUgb24gaW50ZXJmYWNlIG9iamVjdCAKK1BBU1MgWFBhdGhSZXN1bHQgaW50ZXJmYWNlOiBjb25z
dGFudCBTVFJJTkdfVFlQRSBvbiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCAKK1BBU1MgWFBh
dGhSZXN1bHQgaW50ZXJmYWNlOiBjb25zdGFudCBCT09MRUFOX1RZUEUgb24gaW50ZXJmYWNlIG9i
amVjdCAKK1BBU1MgWFBhdGhSZXN1bHQgaW50ZXJmYWNlOiBjb25zdGFudCBCT09MRUFOX1RZUEUg
b24gaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgCitQQVNTIFhQYXRoUmVzdWx0IGludGVyZmFj
ZTogY29uc3RhbnQgVU5PUkRFUkVEX05PREVfSVRFUkFUT1JfVFlQRSBvbiBpbnRlcmZhY2Ugb2Jq
ZWN0IAorUEFTUyBYUGF0aFJlc3VsdCBpbnRlcmZhY2U6IGNvbnN0YW50IFVOT1JERVJFRF9OT0RF
X0lURVJBVE9SX1RZUEUgb24gaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgCitQQVNTIFhQYXRo
UmVzdWx0IGludGVyZmFjZTogY29uc3RhbnQgT1JERVJFRF9OT0RFX0lURVJBVE9SX1RZUEUgb24g
aW50ZXJmYWNlIG9iamVjdCAKK1BBU1MgWFBhdGhSZXN1bHQgaW50ZXJmYWNlOiBjb25zdGFudCBP
UkRFUkVEX05PREVfSVRFUkFUT1JfVFlQRSBvbiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCAK
K1BBU1MgWFBhdGhSZXN1bHQgaW50ZXJmYWNlOiBjb25zdGFudCBVTk9SREVSRURfTk9ERV9TTkFQ
U0hPVF9UWVBFIG9uIGludGVyZmFjZSBvYmplY3QgCitQQVNTIFhQYXRoUmVzdWx0IGludGVyZmFj
ZTogY29uc3RhbnQgVU5PUkRFUkVEX05PREVfU05BUFNIT1RfVFlQRSBvbiBpbnRlcmZhY2UgcHJv
dG90eXBlIG9iamVjdCAKK1BBU1MgWFBhdGhSZXN1bHQgaW50ZXJmYWNlOiBjb25zdGFudCBPUkRF
UkVEX05PREVfU05BUFNIT1RfVFlQRSBvbiBpbnRlcmZhY2Ugb2JqZWN0IAorUEFTUyBYUGF0aFJl
c3VsdCBpbnRlcmZhY2U6IGNvbnN0YW50IE9SREVSRURfTk9ERV9TTkFQU0hPVF9UWVBFIG9uIGlu
dGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IAorUEFTUyBYUGF0aFJlc3VsdCBpbnRlcmZhY2U6IGNv
bnN0YW50IEFOWV9VTk9SREVSRURfTk9ERV9UWVBFIG9uIGludGVyZmFjZSBvYmplY3QgCitQQVNT
IFhQYXRoUmVzdWx0IGludGVyZmFjZTogY29uc3RhbnQgQU5ZX1VOT1JERVJFRF9OT0RFX1RZUEUg
b24gaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgCitQQVNTIFhQYXRoUmVzdWx0IGludGVyZmFj
ZTogY29uc3RhbnQgRklSU1RfT1JERVJFRF9OT0RFX1RZUEUgb24gaW50ZXJmYWNlIG9iamVjdCAK
K1BBU1MgWFBhdGhSZXN1bHQgaW50ZXJmYWNlOiBjb25zdGFudCBGSVJTVF9PUkRFUkVEX05PREVf
VFlQRSBvbiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCAKK1BBU1MgWFBhdGhSZXN1bHQgaW50
ZXJmYWNlOiBhdHRyaWJ1dGUgcmVzdWx0VHlwZSAKK1BBU1MgWFBhdGhSZXN1bHQgaW50ZXJmYWNl
OiBhdHRyaWJ1dGUgbnVtYmVyVmFsdWUgCitQQVNTIFhQYXRoUmVzdWx0IGludGVyZmFjZTogYXR0
cmlidXRlIHN0cmluZ1ZhbHVlIAorUEFTUyBYUGF0aFJlc3VsdCBpbnRlcmZhY2U6IGF0dHJpYnV0
ZSBib29sZWFuVmFsdWUgCitQQVNTIFhQYXRoUmVzdWx0IGludGVyZmFjZTogYXR0cmlidXRlIHNp
bmdsZU5vZGVWYWx1ZSAKK1BBU1MgWFBhdGhSZXN1bHQgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgaW52
YWxpZEl0ZXJhdG9yU3RhdGUgCitQQVNTIFhQYXRoUmVzdWx0IGludGVyZmFjZTogYXR0cmlidXRl
IHNuYXBzaG90TGVuZ3RoIAorUEFTUyBYUGF0aFJlc3VsdCBpbnRlcmZhY2U6IG9wZXJhdGlvbiBp
dGVyYXRlTmV4dCgpIAorRkFJTCBYUGF0aFJlc3VsdCBpbnRlcmZhY2U6IG9wZXJhdGlvbiBzbmFw
c2hvdEl0ZW0odW5zaWduZWQgbG9uZykgYXNzZXJ0X2VxdWFsczogcHJvcGVydHkgaGFzIHdyb25n
IC5sZW5ndGggZXhwZWN0ZWQgMSBidXQgZ290IDAKK1BBU1MgWFBhdGhFeHByZXNzaW9uIGludGVy
ZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgCitQQVNT
IFhQYXRoRXhwcmVzc2lvbiBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aCAKK1BBU1MgWFBhdGhFeHBy
ZXNzaW9uIGludGVyZmFjZSBvYmplY3QgbmFtZSAKK1BBU1MgWFBhdGhFeHByZXNzaW9uIGludGVy
ZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2Jq
ZWN0IAorUEFTUyBYUGF0aEV4cHJlc3Npb24gaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3Bl
cnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyAiY29uc3RydWN0b3IiIHByb3Bl
cnR5IAorUEFTUyBYUGF0aEV4cHJlc3Npb24gaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3Bl
cnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyBAQHVuc2NvcGFibGVzIHByb3Bl
cnR5IAorRkFJTCBYUGF0aEV4cHJlc3Npb24gaW50ZXJmYWNlOiBvcGVyYXRpb24gZXZhbHVhdGUo
Tm9kZSwgdW5zaWduZWQgc2hvcnQsIFhQYXRoUmVzdWx0KSBhc3NlcnRfZXF1YWxzOiBwcm9wZXJ0
eSBoYXMgd3JvbmcgLmxlbmd0aCBleHBlY3RlZCAxIGJ1dCBnb3QgMAorUEFTUyBYUGF0aE5TUmVz
b2x2ZXIgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9i
amVjdCAKK1BBU1MgWFBhdGhOU1Jlc29sdmVyIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9w
ZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IAorUEFTUyBYUGF0aE5TUmVzb2x2
ZXIgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3Rv
dHlwZSBvYmplY3QncyAiY29uc3RydWN0b3IiIHByb3BlcnR5IAorUEFTUyBYUGF0aE5TUmVzb2x2
ZXIgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3Rv
dHlwZSBvYmplY3QncyBAQHVuc2NvcGFibGVzIHByb3BlcnR5IAorUEFTUyBYUGF0aE5TUmVzb2x2
ZXIgaW50ZXJmYWNlOiBvcGVyYXRpb24gbG9va3VwTmFtZXNwYWNlVVJJKERPTVN0cmluZykgCitQ
QVNTIFhQYXRoRXZhbHVhdG9yIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9m
IGludGVyZmFjZSBvYmplY3QgCitQQVNTIFhQYXRoRXZhbHVhdG9yIGludGVyZmFjZSBvYmplY3Qg
bGVuZ3RoIAorUEFTUyBYUGF0aEV2YWx1YXRvciBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUgCitQQVNT
IFhQYXRoRXZhbHVhdG9yIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGlu
dGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IAorUEFTUyBYUGF0aEV2YWx1YXRvciBpbnRlcmZhY2U6
IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdz
ICJjb25zdHJ1Y3RvciIgcHJvcGVydHkgCitQQVNTIFhQYXRoRXZhbHVhdG9yIGludGVyZmFjZTog
ZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3Mg
QEB1bnNjb3BhYmxlcyBwcm9wZXJ0eSAKK0ZBSUwgWFBhdGhFdmFsdWF0b3IgaW50ZXJmYWNlOiBv
cGVyYXRpb24gY3JlYXRlRXhwcmVzc2lvbihET01TdHJpbmcsIFhQYXRoTlNSZXNvbHZlcikgYXNz
ZXJ0X2VxdWFsczogcHJvcGVydHkgaGFzIHdyb25nIC5sZW5ndGggZXhwZWN0ZWQgMSBidXQgZ290
IDAKK0ZBSUwgWFBhdGhFdmFsdWF0b3IgaW50ZXJmYWNlOiBvcGVyYXRpb24gY3JlYXRlTlNSZXNv
bHZlcihOb2RlKSBhc3NlcnRfZXF1YWxzOiBwcm9wZXJ0eSBoYXMgd3JvbmcgLmxlbmd0aCBleHBl
Y3RlZCAxIGJ1dCBnb3QgMAorRkFJTCBYUGF0aEV2YWx1YXRvciBpbnRlcmZhY2U6IG9wZXJhdGlv
biBldmFsdWF0ZShET01TdHJpbmcsIE5vZGUsIFhQYXRoTlNSZXNvbHZlciwgdW5zaWduZWQgc2hv
cnQsIFhQYXRoUmVzdWx0KSBhc3NlcnRfZXF1YWxzOiBwcm9wZXJ0eSBoYXMgd3JvbmcgLmxlbmd0
aCBleHBlY3RlZCAyIGJ1dCBnb3QgMAorUEFTUyBXaW5kb3cgaW50ZXJmYWNlOiBhdHRyaWJ1dGUg
ZXZlbnQgCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZG9tcGFyc2luZy9pbnRlcmZhY2VzLmFueS53b3JrZXItZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb21wYXJzaW5nL2lu
dGVyZmFjZXMuYW55Lndvcmtlci1leHBlY3RlZC50eHQKaW5kZXggMTRjMmVkOTU4MWYxYTA4ZGUw
YzEyZjMyZTI5YzU2ODU5NWJjZGJkNS4uOGVmZjk5NDc4YmFhMjc0OWU3ZjNjZjk5OWZmZTU3NDZi
YWYxMzkyMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9kb21wYXJzaW5nL2ludGVyZmFjZXMuYW55Lndvcmtlci1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb21wYXJzaW5n
L2ludGVyZmFjZXMuYW55Lndvcmtlci1leHBlY3RlZC50eHQKQEAgLTExLDE2ICsxMSwxMiBAQCBG
QUlMIFhNTFNlcmlhbGl6ZXIgbXVzdCBiZSBwcmltYXJ5IGludGVyZmFjZSBvZiBuZXcgWE1MU2Vy
aWFsaXplcigpIGFzc2VydF9lcXVhbAogRkFJTCBTdHJpbmdpZmljYXRpb24gb2YgbmV3IFhNTFNl
cmlhbGl6ZXIoKSBhc3NlcnRfZXF1YWxzOiBVbmV4cGVjdGVkIGV4Y2VwdGlvbiB3aGVuIGV2YWx1
YXRpbmcgb2JqZWN0IGV4cGVjdGVkIG51bGwgYnV0IGdvdCBvYmplY3QgIlJlZmVyZW5jZUVycm9y
OiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBYTUxTZXJpYWxpemVyIgogRkFJTCBYTUxTZXJpYWxpemVy
IGludGVyZmFjZTogbmV3IFhNTFNlcmlhbGl6ZXIoKSBtdXN0IG5vdCBoYXZlIHByb3BlcnR5ICJz
ZXJpYWxpemVUb1N0cmluZyIgYXNzZXJ0X2VxdWFsczogVW5leHBlY3RlZCBleGNlcHRpb24gd2hl
biBldmFsdWF0aW5nIG9iamVjdCBleHBlY3RlZCBudWxsIGJ1dCBnb3Qgb2JqZWN0ICJSZWZlcmVu
Y2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogWE1MU2VyaWFsaXplciIKIFBBU1MgTm9kZSBp
bnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IAot
UEFTUyBEb2N1bWVudCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRl
cmZhY2Ugb2JqZWN0IAotUEFTUyBEb2N1bWVudFR5cGUgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5k
IHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCAKIFBBU1MgRG9jdW1lbnRGcmFnbWVudCBp
bnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IAog
UEFTUyBTaGFkb3dSb290IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGlu
dGVyZmFjZSBvYmplY3QgCiBQQVNTIEVsZW1lbnQgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHBy
b3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCAKIEZBSUwgRWxlbWVudCBpbnRlcmZhY2U6IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpIG11c3Qgbm90IGhhdmUgcHJvcGVydHkgIm91dGVy
SFRNTCIgYXNzZXJ0X2VxdWFsczogVW5leHBlY3RlZCBleGNlcHRpb24gd2hlbiBldmFsdWF0aW5n
IG9iamVjdCBleHBlY3RlZCBudWxsIGJ1dCBnb3Qgb2JqZWN0ICJSZWZlcmVuY2VFcnJvcjogQ2Fu
J3QgZmluZCB2YXJpYWJsZTogZG9jdW1lbnQiCiBGQUlMIEVsZW1lbnQgaW50ZXJmYWNlOiBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSBtdXN0IG5vdCBoYXZlIHByb3BlcnR5ICJpbnNlcnRB
ZGphY2VudEhUTUwiIGFzc2VydF9lcXVhbHM6IFVuZXhwZWN0ZWQgZXhjZXB0aW9uIHdoZW4gZXZh
bHVhdGluZyBvYmplY3QgZXhwZWN0ZWQgbnVsbCBidXQgZ290IG9iamVjdCAiUmVmZXJlbmNlRXJy
b3I6IENhbid0IGZpbmQgdmFyaWFibGU6IGRvY3VtZW50IgogRkFJTCBFbGVtZW50IGludGVyZmFj
ZTogZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikgbXVzdCBub3QgaGF2ZSBwcm9wZXJ0eSAi
aW5uZXJIVE1MIiBhc3NlcnRfZXF1YWxzOiBVbmV4cGVjdGVkIGV4Y2VwdGlvbiB3aGVuIGV2YWx1
YXRpbmcgb2JqZWN0IGV4cGVjdGVkIG51bGwgYnV0IGdvdCBvYmplY3QgIlJlZmVyZW5jZUVycm9y
OiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBkb2N1bWVudCIKLVBBU1MgQ2hhcmFjdGVyRGF0YSBpbnRl
cmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IAotUEFT
UyBUZXh0IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBv
YmplY3QgCiBQQVNTIEFic3RyYWN0UmFuZ2UgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3Bl
cnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCAKIFBBU1MgUmFuZ2UgaW50ZXJmYWNlOiBleGlzdGVu
Y2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCAKIEZBSUwgUmFuZ2UgaW50ZXJm
YWNlOiBuZXcgUmFuZ2UoKSBtdXN0IG5vdCBoYXZlIHByb3BlcnR5ICJjcmVhdGVDb250ZXh0dWFs
RnJhZ21lbnQiIGFzc2VydF9lcXVhbHM6IFVuZXhwZWN0ZWQgZXhjZXB0aW9uIHdoZW4gZXZhbHVh
dGluZyBvYmplY3QgZXhwZWN0ZWQgbnVsbCBidXQgZ290IG9iamVjdCAiUmVmZXJlbmNlRXJyb3I6
IENhbid0IGZpbmQgdmFyaWFibGU6IFJhbmdlIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9ldmVudHNvdXJjZS9pbnRlcmZhY2VzLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZXZl
bnRzb3VyY2UvaW50ZXJmYWNlcy1leHBlY3RlZC50eHQKaW5kZXggYmFkMzBhZGZmNjBmM2IyNjAz
NzE2NDcwMWE2YWQ4MGVmYTg5ZGZlOC4uMDM2ZWVkZGE1ZWRkMDFjMzViYzZlOTc4NTQ3OGE3Mzll
MDU2ZjUzOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9ldmVudHNvdXJjZS9pbnRlcmZhY2VzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2V2ZW50c291cmNlL2ludGVyZmFj
ZXMtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsMyBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDQ4
MjogY2FsbGJhY2sgbm90IHlldCBzdXBwb3J0ZWQKIEJsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFs
IFVSTCBodHRwOi8vZm9vLwogQ09OU09MRSBNRVNTQUdFOiBFdmVudFNvdXJjZSBjYW5ub3QgbG9h
ZCBodHRwOi8vZm9vLyBkdWUgdG8gYWNjZXNzIGNvbnRyb2wgY2hlY2tzLgogRXZlbnRTb3VyY2Ug
SURMIHRlc3RzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL2FwaS9pZGwuYW55LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2lkbC5hbnktZXhwZWN0ZWQu
dHh0CmluZGV4IDFkZGZhNWY1NWYyMmExZGFmNTk0MmExYWZjNTM0NTAxYjlhMGI1M2QuLjcyZTc3
ZDBhY2UyOTU0MjU0ZTc0MjUzYjYzMTc4YTAyY2Y5M2UwZTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2lkbC5hbnktZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvYXBpL2lkbC5hbnktZXhwZWN0ZWQudHh0CkBAIC0xMiwxMiArMTIsNyBAQCBQQVNT
IEhlYWRlcnMgaW50ZXJmYWNlOiBvcGVyYXRpb24gZGVsZXRlKEJ5dGVTdHJpbmcpCiBQQVNTIEhl
YWRlcnMgaW50ZXJmYWNlOiBvcGVyYXRpb24gZ2V0KEJ5dGVTdHJpbmcpIAogUEFTUyBIZWFkZXJz
IGludGVyZmFjZTogb3BlcmF0aW9uIGhhcyhCeXRlU3RyaW5nKSAKIFBBU1MgSGVhZGVycyBpbnRl
cmZhY2U6IG9wZXJhdGlvbiBzZXQoQnl0ZVN0cmluZywgQnl0ZVN0cmluZykgCi1QQVNTIFRlc3Rp
bmcgU3ltYm9sLml0ZXJhdG9yIHByb3BlcnR5IG9mIGl0ZXJhYmxlIGludGVyZmFjZSBIZWFkZXJz
IAotUEFTUyBUZXN0aW5nIHBhaXIgaXRlcmFibGUgaW50ZXJmYWNlIEhlYWRlcnMgCi1QQVNTIEhl
YWRlcnMgaW50ZXJmYWNlOiBvcGVyYXRpb24gZW50cmllcygpIAotUEFTUyBIZWFkZXJzIGludGVy
ZmFjZTogb3BlcmF0aW9uIGtleXMoKSAKLVBBU1MgSGVhZGVycyBpbnRlcmZhY2U6IG9wZXJhdGlv
biB2YWx1ZXMoKSAKLVBBU1MgSGVhZGVycyBpbnRlcmZhY2U6IG9wZXJhdGlvbiBmb3JFYWNoKGZ1
bmN0aW9uLCBhbnkpIAorUEFTUyBIZWFkZXJzIGludGVyZmFjZTogaXRlcmFibGU8Qnl0ZVN0cmlu
ZywgQnl0ZVN0cmluZz4gCiBQQVNTIEhlYWRlcnMgbXVzdCBiZSBwcmltYXJ5IGludGVyZmFjZSBv
ZiBuZXcgSGVhZGVycygpIAogUEFTUyBTdHJpbmdpZmljYXRpb24gb2YgbmV3IEhlYWRlcnMoKSAK
IFBBU1MgSGVhZGVycyBpbnRlcmZhY2U6IG5ldyBIZWFkZXJzKCkgbXVzdCBpbmhlcml0IHByb3Bl
cnR5ICJhcHBlbmQoQnl0ZVN0cmluZywgQnl0ZVN0cmluZykiIHdpdGggdGhlIHByb3BlciB0eXBl
IApAQCAtMzAsMTEgKzI1LDYgQEAgUEFTUyBIZWFkZXJzIGludGVyZmFjZTogbmV3IEhlYWRlcnMo
KSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImhhcyhCeXRlU3RyaW5nKSIgd2kKIFBBU1MgSGVhZGVy
cyBpbnRlcmZhY2U6IGNhbGxpbmcgaGFzKEJ5dGVTdHJpbmcpIG9uIG5ldyBIZWFkZXJzKCkgd2l0
aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKIFBBU1MgSGVhZGVycyBp
bnRlcmZhY2U6IG5ldyBIZWFkZXJzKCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJzZXQoQnl0ZVN0
cmluZywgQnl0ZVN0cmluZykiIHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBIZWFkZXJzIGlu
dGVyZmFjZTogY2FsbGluZyBzZXQoQnl0ZVN0cmluZywgQnl0ZVN0cmluZykgb24gbmV3IEhlYWRl
cnMoKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAotUEFTUyBI
ZWFkZXJzIGludGVyZmFjZTogbmV3IEhlYWRlcnMoKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImVu
dHJpZXMoKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCi1QQVNTIEhlYWRlcnMgaW50ZXJmYWNlOiBu
ZXcgSGVhZGVycygpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAia2V5cygpIiB3aXRoIHRoZSBwcm9w
ZXIgdHlwZSAKLVBBU1MgSGVhZGVycyBpbnRlcmZhY2U6IG5ldyBIZWFkZXJzKCkgbXVzdCBpbmhl
cml0IHByb3BlcnR5ICJ2YWx1ZXMoKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCi1QQVNTIEhlYWRl
cnMgaW50ZXJmYWNlOiBuZXcgSGVhZGVycygpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiZm9yRWFj
aChmdW5jdGlvbiwgYW55KSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCi1QQVNTIEhlYWRlcnMgaW50
ZXJmYWNlOiBjYWxsaW5nIGZvckVhY2goZnVuY3Rpb24sIGFueSkgb24gbmV3IEhlYWRlcnMoKSB3
aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAogUEFTUyBSZXF1ZXN0
IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3Qg
CiBQQVNTIFJlcXVlc3QgaW50ZXJmYWNlIG9iamVjdCBsZW5ndGggCiBQQVNTIFJlcXVlc3QgaW50
ZXJmYWNlIG9iamVjdCBuYW1lIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaWRsLmFueS53b3JrZXItZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkv
aWRsLmFueS53b3JrZXItZXhwZWN0ZWQudHh0CmluZGV4IGE0NDRjZjcyYmZjZmZhNmJkZTc2Zjc1
YjU5MDM3ZDI4MTFmNWI1YjQuLjdhNDQ5YWM2NjBmODkwNThmM2EwMzFmYmRkOTBmZGU0MGFiMzc0
NTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvYXBpL2lkbC5hbnkud29ya2VyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9pZGwuYW55Lndvcmtl
ci1leHBlY3RlZC50eHQKQEAgLTEyLDEyICsxMiw3IEBAIFBBU1MgSGVhZGVycyBpbnRlcmZhY2U6
IG9wZXJhdGlvbiBkZWxldGUoQnl0ZVN0cmluZykKIFBBU1MgSGVhZGVycyBpbnRlcmZhY2U6IG9w
ZXJhdGlvbiBnZXQoQnl0ZVN0cmluZykgCiBQQVNTIEhlYWRlcnMgaW50ZXJmYWNlOiBvcGVyYXRp
b24gaGFzKEJ5dGVTdHJpbmcpIAogUEFTUyBIZWFkZXJzIGludGVyZmFjZTogb3BlcmF0aW9uIHNl
dChCeXRlU3RyaW5nLCBCeXRlU3RyaW5nKSAKLVBBU1MgVGVzdGluZyBTeW1ib2wuaXRlcmF0b3Ig
cHJvcGVydHkgb2YgaXRlcmFibGUgaW50ZXJmYWNlIEhlYWRlcnMgCi1QQVNTIFRlc3RpbmcgcGFp
ciBpdGVyYWJsZSBpbnRlcmZhY2UgSGVhZGVycyAKLVBBU1MgSGVhZGVycyBpbnRlcmZhY2U6IG9w
ZXJhdGlvbiBlbnRyaWVzKCkgCi1QQVNTIEhlYWRlcnMgaW50ZXJmYWNlOiBvcGVyYXRpb24ga2V5
cygpIAotUEFTUyBIZWFkZXJzIGludGVyZmFjZTogb3BlcmF0aW9uIHZhbHVlcygpIAotUEFTUyBI
ZWFkZXJzIGludGVyZmFjZTogb3BlcmF0aW9uIGZvckVhY2goZnVuY3Rpb24sIGFueSkgCitQQVNT
IEhlYWRlcnMgaW50ZXJmYWNlOiBpdGVyYWJsZTxCeXRlU3RyaW5nLCBCeXRlU3RyaW5nPiAKIFBB
U1MgSGVhZGVycyBtdXN0IGJlIHByaW1hcnkgaW50ZXJmYWNlIG9mIG5ldyBIZWFkZXJzKCkgCiBQ
QVNTIFN0cmluZ2lmaWNhdGlvbiBvZiBuZXcgSGVhZGVycygpIAogUEFTUyBIZWFkZXJzIGludGVy
ZmFjZTogbmV3IEhlYWRlcnMoKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImFwcGVuZChCeXRlU3Ry
aW5nLCBCeXRlU3RyaW5nKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCkBAIC0zMCwxMSArMjUsNiBA
QCBQQVNTIEhlYWRlcnMgaW50ZXJmYWNlOiBuZXcgSGVhZGVycygpIG11c3QgaW5oZXJpdCBwcm9w
ZXJ0eSAiaGFzKEJ5dGVTdHJpbmcpIiB3aQogUEFTUyBIZWFkZXJzIGludGVyZmFjZTogY2FsbGlu
ZyBoYXMoQnl0ZVN0cmluZykgb24gbmV3IEhlYWRlcnMoKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRz
IG11c3QgdGhyb3cgVHlwZUVycm9yIAogUEFTUyBIZWFkZXJzIGludGVyZmFjZTogbmV3IEhlYWRl
cnMoKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInNldChCeXRlU3RyaW5nLCBCeXRlU3RyaW5nKSIg
d2l0aCB0aGUgcHJvcGVyIHR5cGUgCiBQQVNTIEhlYWRlcnMgaW50ZXJmYWNlOiBjYWxsaW5nIHNl
dChCeXRlU3RyaW5nLCBCeXRlU3RyaW5nKSBvbiBuZXcgSGVhZGVycygpIHdpdGggdG9vIGZldyBh
cmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCi1QQVNTIEhlYWRlcnMgaW50ZXJmYWNlOiBu
ZXcgSGVhZGVycygpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiZW50cmllcygpIiB3aXRoIHRoZSBw
cm9wZXIgdHlwZSAKLVBBU1MgSGVhZGVycyBpbnRlcmZhY2U6IG5ldyBIZWFkZXJzKCkgbXVzdCBp
bmhlcml0IHByb3BlcnR5ICJrZXlzKCkiIHdpdGggdGhlIHByb3BlciB0eXBlIAotUEFTUyBIZWFk
ZXJzIGludGVyZmFjZTogbmV3IEhlYWRlcnMoKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInZhbHVl
cygpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKLVBBU1MgSGVhZGVycyBpbnRlcmZhY2U6IG5ldyBI
ZWFkZXJzKCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJmb3JFYWNoKGZ1bmN0aW9uLCBhbnkpIiB3
aXRoIHRoZSBwcm9wZXIgdHlwZSAKLVBBU1MgSGVhZGVycyBpbnRlcmZhY2U6IGNhbGxpbmcgZm9y
RWFjaChmdW5jdGlvbiwgYW55KSBvbiBuZXcgSGVhZGVycygpIHdpdGggdG9vIGZldyBhcmd1bWVu
dHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCiBQQVNTIFJlcXVlc3QgaW50ZXJmYWNlOiBleGlzdGVu
Y2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCAKIFBBU1MgUmVxdWVzdCBpbnRl
cmZhY2Ugb2JqZWN0IGxlbmd0aCAKIFBBU1MgUmVxdWVzdCBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUg
CkBAIC0xMzQsMTkgKzEyNCw4IEBAIFBBU1MgUmVzcG9uc2UgaW50ZXJmYWNlOiBuZXcgUmVzcG9u
c2UoKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImJsb2IoKSIgd2l0aCB0aGUKIFBBU1MgUmVzcG9u
c2UgaW50ZXJmYWNlOiBuZXcgUmVzcG9uc2UoKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImZvcm1E
YXRhKCkiIHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBSZXNwb25zZSBpbnRlcmZhY2U6IG5l
dyBSZXNwb25zZSgpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAianNvbigpIiB3aXRoIHRoZSBwcm9w
ZXIgdHlwZSAKIFBBU1MgUmVzcG9uc2UgaW50ZXJmYWNlOiBuZXcgUmVzcG9uc2UoKSBtdXN0IGlu
aGVyaXQgcHJvcGVydHkgInRleHQoKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCi1QQVNTIEhUTUxF
bGVtZW50IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBv
YmplY3QgCi1QQVNTIEhUTUxCb2R5RWxlbWVudCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJv
cGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IAogUEFTUyBXaW5kb3cgaW50ZXJmYWNlOiBleGlz
dGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCAKIFBBU1MgV29ya2VyR2xv
YmFsU2NvcGUgaW50ZXJmYWNlOiBvcGVyYXRpb24gZmV0Y2goUmVxdWVzdEluZm8sIFJlcXVlc3RJ
bml0KSAKIFBBU1MgV29ya2VyR2xvYmFsU2NvcGUgaW50ZXJmYWNlOiBzZWxmIG11c3QgaW5oZXJp
dCBwcm9wZXJ0eSAiZmV0Y2goUmVxdWVzdEluZm8sIFJlcXVlc3RJbml0KSIgd2l0aCB0aGUgcHJv
cGVyIHR5cGUgCiBQQVNTIFdvcmtlckdsb2JhbFNjb3BlIGludGVyZmFjZTogY2FsbGluZyBmZXRj
aChSZXF1ZXN0SW5mbywgUmVxdWVzdEluaXQpIG9uIHNlbGYgd2l0aCB0b28gZmV3IGFyZ3VtZW50
cyBtdXN0IHRocm93IFR5cGVFcnJvciAKLVBBU1MgSFRNTEZyYW1lU2V0RWxlbWVudCBpbnRlcmZh
Y2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IAotUEFTUyBO
b2RlIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmpl
Y3QgCi1QQVNTIERvY3VtZW50IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9m
IGludGVyZmFjZSBvYmplY3QgCi1QQVNTIERvY3VtZW50VHlwZSBpbnRlcmZhY2U6IGV4aXN0ZW5j
ZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IAotUEFTUyBEb2N1bWVudEZyYWdt
ZW50IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmpl
Y3QgCi1QQVNTIFNoYWRvd1Jvb3QgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMg
b2YgaW50ZXJmYWNlIG9iamVjdCAKLVBBU1MgRWxlbWVudCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBh
bmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IAotUEFTUyBDaGFyYWN0ZXJEYXRhIGlu
dGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgCi1Q
QVNTIFRleHQgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNl
IG9iamVjdCAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9mZXRjaC9jb3JzLXJmYzE5MTgvaWRsaGFybmVzcy50ZW50YXRpdmUuYW55LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvY29ycy1yZmMxOTE4L2lkbGhhcm5lc3MudGVudGF0aXZlLmFueS1leHBlY3RlZC50eHQK
aW5kZXggYTdlYTMyNzkxY2IwMDY5M2YzNzk0YTIzZDMyODRhOTI2NzljNTJmZi4uZDJmMzAyMTdj
N2M3N2NlZWQzNzk2MzQzYTRkMzQ1YWYzNWFhYzcwYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9jb3JzLXJmYzE5MTgvaWRsaGFy
bmVzcy50ZW50YXRpdmUuYW55LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2NvcnMtcmZjMTkxOC9pZGxoYXJuZXNzLnRl
bnRhdGl2ZS5hbnktZXhwZWN0ZWQudHh0CkBAIC0xLDMwICsxLDMgQEAKIAotRkFJTCBpZGxfdGVz
dCBzZXR1cCBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2Jq
ZWN0ICJHb3QgYW4gZXJyb3IgYmVmb3JlIHBhcnNpbmcgYW55IG5hbWVkIGRlZmluaXRpb246IFVu
cmVjb2duaXNlZCB0b2tlbnMsIGxpbmUgMSAodG9rZW5zOiAie1wiZXJyb3JcIjoge1wibWVzc2Fn
ZVwiIikKLVsKLSAgICB7Ci0gICAgICAgICJ0eXBlIjogInsiLAotICAgICAgICAidmFsdWUiOiAi
eyIsCi0gICAgICAgICJ0cml2aWEiOiAiIgotICAgIH0sCi0gICAgewotICAgICAgICAidHlwZSI6
ICJzdHJpbmciLAotICAgICAgICAidmFsdWUiOiAiXCJlcnJvclwiIiwKLSAgICAgICAgInRyaXZp
YSI6ICIiCi0gICAgfSwKLSAgICB7Ci0gICAgICAgICJ0eXBlIjogIjoiLAotICAgICAgICAidmFs
dWUiOiAiOiIsCi0gICAgICAgICJ0cml2aWEiOiAiIgotICAgIH0sCi0gICAgewotICAgICAgICAi
dHlwZSI6ICJ7IiwKLSAgICAgICAgInZhbHVlIjogInsiLAotICAgICAgICAidHJpdmlhIjogIiAi
Ci0gICAgfSwKLSAgICB7Ci0gICAgICAgICJ0eXBlIjogInN0cmluZyIsCi0gICAgICAgICJ2YWx1
ZSI6ICJcIm1lc3NhZ2VcIiIsCi0gICAgICAgICJ0cml2aWEiOiAiIgotICAgIH0KLV0iCitGQUlM
IGlkbF90ZXN0IHNldHVwIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZh
bHVlOiBvYmplY3QgIkVycm9yIGZldGNoaW5nIC9pbnRlcmZhY2VzL2NvcnMtcmZjMTkxOC5pZGwu
IgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL2NvcnMtcmZjMTkxOC9pZGxoYXJuZXNzLnRlbnRhdGl2ZS5hbnkud29ya2VyLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvY29ycy1yZmMxOTE4L2lkbGhhcm5lc3MudGVudGF0aXZlLmFueS53b3JrZXItZXhwZWN0
ZWQudHh0CmluZGV4IGE3ZWEzMjc5MWNiMDA2OTNmMzc5NGEyM2QzMjg0YTkyNjc5YzUyZmYuLmQy
ZjMwMjE3YzdjNzdjZWVkMzc5NjM0M2E0ZDM0NWFmMzVhYWM3MGMgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvY29ycy1yZmMxOTE4
L2lkbGhhcm5lc3MudGVudGF0aXZlLmFueS53b3JrZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvY29ycy1yZmMxOTE4
L2lkbGhhcm5lc3MudGVudGF0aXZlLmFueS53b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0xLDMwICsx
LDMgQEAKIAotRkFJTCBpZGxfdGVzdCBzZXR1cCBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWpl
Y3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJHb3QgYW4gZXJyb3IgYmVmb3JlIHBhcnNpbmcgYW55
IG5hbWVkIGRlZmluaXRpb246IFVucmVjb2duaXNlZCB0b2tlbnMsIGxpbmUgMSAodG9rZW5zOiAi
e1wiZXJyb3JcIjoge1wibWVzc2FnZVwiIikKLVsKLSAgICB7Ci0gICAgICAgICJ0eXBlIjogInsi
LAotICAgICAgICAidmFsdWUiOiAieyIsCi0gICAgICAgICJ0cml2aWEiOiAiIgotICAgIH0sCi0g
ICAgewotICAgICAgICAidHlwZSI6ICJzdHJpbmciLAotICAgICAgICAidmFsdWUiOiAiXCJlcnJv
clwiIiwKLSAgICAgICAgInRyaXZpYSI6ICIiCi0gICAgfSwKLSAgICB7Ci0gICAgICAgICJ0eXBl
IjogIjoiLAotICAgICAgICAidmFsdWUiOiAiOiIsCi0gICAgICAgICJ0cml2aWEiOiAiIgotICAg
IH0sCi0gICAgewotICAgICAgICAidHlwZSI6ICJ7IiwKLSAgICAgICAgInZhbHVlIjogInsiLAot
ICAgICAgICAidHJpdmlhIjogIiAiCi0gICAgfSwKLSAgICB7Ci0gICAgICAgICJ0eXBlIjogInN0
cmluZyIsCi0gICAgICAgICJ2YWx1ZSI6ICJcIm1lc3NhZ2VcIiIsCi0gICAgICAgICJ0cml2aWEi
OiAiIgotICAgIH0KLV0iCitGQUlMIGlkbF90ZXN0IHNldHVwIHByb21pc2VfdGVzdDogVW5oYW5k
bGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIkVycm9yIGZldGNoaW5nIC9pbnRlcmZh
Y2VzL2NvcnMtcmZjMTkxOC5pZGwuIgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2hyLXRpbWUvaWRsaGFybmVzcy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2hyLXRpbWUvaWRs
aGFybmVzcy1leHBlY3RlZC50eHQKaW5kZXggNDJiNWFiZDlhNzhhMzliMWIxYWZmYjBlZmIwNjZi
MzU1MmZhZWVmMS4uYzQ5MGQwNTA1MDJiMDNjODAxNjRiOThmMDkzMWFiYWZlNjE2NmE4NiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9oci10
aW1lL2lkbGhhcm5lc3MtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaHItdGltZS9pZGxoYXJuZXNzLWV4cGVjdGVkLnR4dApAQCAt
MTcsNyArMTcsNyBAQCBQQVNTIFN0cmluZ2lmaWNhdGlvbiBvZiB3aW5kb3cucGVyZm9ybWFuY2UK
IFBBU1MgUGVyZm9ybWFuY2UgaW50ZXJmYWNlOiB3aW5kb3cucGVyZm9ybWFuY2UgbXVzdCBpbmhl
cml0IHByb3BlcnR5ICJub3coKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCiBGQUlMIFBlcmZvcm1h
bmNlIGludGVyZmFjZTogd2luZG93LnBlcmZvcm1hbmNlIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAi
dGltZU9yaWdpbiIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2luaGVyaXRzOiBwcm9wZXJ0
eSAidGltZU9yaWdpbiIgbm90IGZvdW5kIGluIHByb3RvdHlwZSBjaGFpbgogRkFJTCBQZXJmb3Jt
YW5jZSBpbnRlcmZhY2U6IHdpbmRvdy5wZXJmb3JtYW5jZSBtdXN0IGluaGVyaXQgcHJvcGVydHkg
InRvSlNPTigpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBhc3NlcnRfaW5oZXJpdHM6IHByb3BlcnR5
ICJ0b0pTT04iIG5vdCBmb3VuZCBpbiBwcm90b3R5cGUgY2hhaW4KLUZBSUwgVGVzdCBkZWZhdWx0
IHRvSlNPTiBvcGVyYXRpb24gb2YgUGVyZm9ybWFuY2UgbWVtYmVySG9sZGVyT2JqZWN0LnRvSlNP
TiBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdtZW1iZXJIb2xkZXJPYmplY3QudG9KU09OKCknLCAn
bWVtYmVySG9sZGVyT2JqZWN0LnRvSlNPTicgaXMgdW5kZWZpbmVkKQorRkFJTCBQZXJmb3JtYW5j
ZSBpbnRlcmZhY2U6IGRlZmF1bHQgdG9KU09OIG9wZXJhdGlvbiBvbiB3aW5kb3cucGVyZm9ybWFu
Y2UgbWVtYmVySG9sZGVyT2JqZWN0LnRvSlNPTiBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdtZW1i
ZXJIb2xkZXJPYmplY3QudG9KU09OKCknLCAnbWVtYmVySG9sZGVyT2JqZWN0LnRvSlNPTicgaXMg
dW5kZWZpbmVkKQogUEFTUyBXaW5kb3cgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgcGVyZm9ybWFuY2Ug
CiBQQVNTIFdpbmRvdyBpbnRlcmZhY2U6IHdpbmRvdyBtdXN0IGluaGVyaXQgcHJvcGVydHkgInBl
cmZvcm1hbmNlIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgV29ya2VyR2xvYmFsU2NvcGUg
aW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aHRtbC93ZWJhcHBhcGlzL2FuaW1hdGlvbi1mcmFtZXMvaWRsaGFybmVzcy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvd2ViYXBw
YXBpcy9hbmltYXRpb24tZnJhbWVzL2lkbGhhcm5lc3MtZXhwZWN0ZWQudHh0CmluZGV4IDZkOGJm
NmU3ZjcxZjE1OTkzOWYzMzYzMmMxZmFlOWRkNzYzMTk0ZmQuLjU0OTgwODg1YWM3YjY3ZDdkZTUy
YTFhNWZiNzAxOTE0MzU0MWIzZjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC93ZWJhcHBhcGlzL2FuaW1hdGlvbi1mcmFtZXMvaWRs
aGFybmVzcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL3dlYmFwcGFwaXMvYW5pbWF0aW9uLWZyYW1lcy9pZGxoYXJuZXNz
LWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDMgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA0ODI6
IGNhbGxiYWNrIG5vdCB5ZXQgc3VwcG9ydGVkCiBpZGxoYXJuZXNzIHRlc3QKIAogVGhpcyB0ZXN0
IHZhbGlkYXRlcyB0aGUgV2ViSURMIGluY2x1ZGVkIGluIHRoZSBUaW1pbmcgY29udHJvbCBmb3Ig
c2NyaXB0LWJhc2VkIGFuaW1hdGlvbnMgc3BlY2lmaWNhdGlvbi4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC93ZWJhcHBhcGlzL3Nj
cmlwdGluZy9ldmVudHMvZXZlbnQtaGFuZGxlci1hbGwtZ2xvYmFsLWV2ZW50cy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvd2Vi
YXBwYXBpcy9zY3JpcHRpbmcvZXZlbnRzL2V2ZW50LWhhbmRsZXItYWxsLWdsb2JhbC1ldmVudHMt
ZXhwZWN0ZWQudHh0CmluZGV4IDAwYjE3ZmU2MGNkZWYwZmRkYWQxMDE2NTY3ZjMwMWZhOTE2NTY3
ODcuLjY2ODFjMjhjMTFhNWVlZDQzMjJhYTQxNjE2MWM2ZWE0ZWI0NDEwNWEgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC93ZWJhcHBh
cGlzL3NjcmlwdGluZy9ldmVudHMvZXZlbnQtaGFuZGxlci1hbGwtZ2xvYmFsLWV2ZW50cy1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL3dlYmFwcGFwaXMvc2NyaXB0aW5nL2V2ZW50cy9ldmVudC1oYW5kbGVyLWFsbC1nbG9i
YWwtZXZlbnRzLWV4cGVjdGVkLnR4dApAQCAtMTE5LDYgKzExOSwxMSBAQCBQQVNTIG9uZm9jdXM6
IHRoZSBkZWZhdWx0IHZhbHVlIG11c3QgYmUgbnVsbAogUEFTUyBvbmZvY3VzOiB0aGUgY29udGVu
dCBhdHRyaWJ1dGUgbXVzdCBiZSBjb21waWxlZCBpbnRvIGEgZnVuY3Rpb24gYXMgdGhlIGNvcnJl
c3BvbmRpbmcgcHJvcGVydHkgCiBQQVNTIG9uZm9jdXM6IHRoZSBjb250ZW50IGF0dHJpYnV0ZSBt
dXN0IGV4ZWN1dGUgd2hlbiBhbiBldmVudCBpcyBkaXNwYXRjaGVkIAogUEFTUyBvbmZvY3VzOiBk
aXNwYXRjaGluZyBhbiBFdmVudCBhdCBhIDxtZXRhPiBlbGVtZW50IG11c3QgdHJpZ2dlciBlbGVt
ZW50Lm9uZm9jdXMgCitGQUlMIG9uZm9ybWRhdGE6IG11c3QgYmUgb24gdGhlIGFwcHJvcHJpYXRl
IGxvY2F0aW9ucyBmb3IgR2xvYmFsRXZlbnRIYW5kbGVycyBhc3NlcnRfdHJ1ZTogV2luZG93IGhh
cyBhbiBvd24gcHJvcGVydHkgbmFtZWQgIm9uZm9ybWRhdGEiIGV4cGVjdGVkIHRydWUgZ290IGZh
bHNlCitGQUlMIG9uZm9ybWRhdGE6IHRoZSBkZWZhdWx0IHZhbHVlIG11c3QgYmUgbnVsbCBhc3Nl
cnRfZXF1YWxzOiBUaGUgZGVmYXVsdCB2YWx1ZSBvZiB0aGUgcHJvcGVydHkgaXMgbnVsbCBmb3Ig
YSBXaW5kb3cgaW5zdGFuY2UgZXhwZWN0ZWQgKG9iamVjdCkgbnVsbCBidXQgZ290ICh1bmRlZmlu
ZWQpIHVuZGVmaW5lZAorRkFJTCBvbmZvcm1kYXRhOiB0aGUgY29udGVudCBhdHRyaWJ1dGUgbXVz
dCBiZSBjb21waWxlZCBpbnRvIGEgZnVuY3Rpb24gYXMgdGhlIGNvcnJlc3BvbmRpbmcgcHJvcGVy
dHkgYXNzZXJ0X2VxdWFsczogVGhlIG9uZm9ybWRhdGEgcHJvcGVydHkgbXVzdCBiZSBhIGZ1bmN0
aW9uIGV4cGVjdGVkICJmdW5jdGlvbiIgYnV0IGdvdCAidW5kZWZpbmVkIgorRkFJTCBvbmZvcm1k
YXRhOiB0aGUgY29udGVudCBhdHRyaWJ1dGUgbXVzdCBleGVjdXRlIHdoZW4gYW4gZXZlbnQgaXMg
ZGlzcGF0Y2hlZCBhc3NlcnRfdHJ1ZTogRGlzcGF0Y2hpbmcgYW4gZXZlbnQgbXVzdCBydW4gdGhl
IGNvZGUgZXhwZWN0ZWQgdHJ1ZSBnb3QgdW5kZWZpbmVkCitQQVNTIG9uZm9ybWRhdGE6IGRpc3Bh
dGNoaW5nIGFuIEV2ZW50IGF0IGEgPG1ldGE+IGVsZW1lbnQgbXVzdCB0cmlnZ2VyIGVsZW1lbnQu
b25mb3JtZGF0YSAKIFBBU1Mgb25pbnB1dDogbXVzdCBiZSBvbiB0aGUgYXBwcm9wcmlhdGUgbG9j
YXRpb25zIGZvciBHbG9iYWxFdmVudEhhbmRsZXJzIAogUEFTUyBvbmlucHV0OiB0aGUgZGVmYXVs
dCB2YWx1ZSBtdXN0IGJlIG51bGwgCiBQQVNTIG9uaW5wdXQ6IHRoZSBjb250ZW50IGF0dHJpYnV0
ZSBtdXN0IGJlIGNvbXBpbGVkIGludG8gYSBmdW5jdGlvbiBhcyB0aGUgY29ycmVzcG9uZGluZyBw
cm9wZXJ0eSAKQEAgLTE1OSwxMSArMTY0LDYgQEAgUEFTUyBvbmxvYWRlZG1ldGFkYXRhOiB0aGUg
ZGVmYXVsdCB2YWx1ZSBtdXN0IGJlIG51bGwKIFBBU1Mgb25sb2FkZWRtZXRhZGF0YTogdGhlIGNv
bnRlbnQgYXR0cmlidXRlIG11c3QgYmUgY29tcGlsZWQgaW50byBhIGZ1bmN0aW9uIGFzIHRoZSBj
b3JyZXNwb25kaW5nIHByb3BlcnR5IAogUEFTUyBvbmxvYWRlZG1ldGFkYXRhOiB0aGUgY29udGVu
dCBhdHRyaWJ1dGUgbXVzdCBleGVjdXRlIHdoZW4gYW4gZXZlbnQgaXMgZGlzcGF0Y2hlZCAKIFBB
U1Mgb25sb2FkZWRtZXRhZGF0YTogZGlzcGF0Y2hpbmcgYW4gRXZlbnQgYXQgYSA8bWV0YT4gZWxl
bWVudCBtdXN0IHRyaWdnZXIgZWxlbWVudC5vbmxvYWRlZG1ldGFkYXRhIAotRkFJTCBvbmxvYWRl
bmQ6IG11c3QgYmUgb24gdGhlIGFwcHJvcHJpYXRlIGxvY2F0aW9ucyBmb3IgR2xvYmFsRXZlbnRI
YW5kbGVycyBhc3NlcnRfdHJ1ZTogV2luZG93IGhhcyBhbiBvd24gcHJvcGVydHkgbmFtZWQgIm9u
bG9hZGVuZCIgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgb25sb2FkZW5kOiB0aGUgZGVm
YXVsdCB2YWx1ZSBtdXN0IGJlIG51bGwgYXNzZXJ0X2VxdWFsczogVGhlIGRlZmF1bHQgdmFsdWUg
b2YgdGhlIHByb3BlcnR5IGlzIG51bGwgZm9yIGEgV2luZG93IGluc3RhbmNlIGV4cGVjdGVkIChv
YmplY3QpIG51bGwgYnV0IGdvdCAodW5kZWZpbmVkKSB1bmRlZmluZWQKLUZBSUwgb25sb2FkZW5k
OiB0aGUgY29udGVudCBhdHRyaWJ1dGUgbXVzdCBiZSBjb21waWxlZCBpbnRvIGEgZnVuY3Rpb24g
YXMgdGhlIGNvcnJlc3BvbmRpbmcgcHJvcGVydHkgYXNzZXJ0X2VxdWFsczogVGhlIG9ubG9hZGVu
ZCBwcm9wZXJ0eSBtdXN0IGJlIGEgZnVuY3Rpb24gZXhwZWN0ZWQgImZ1bmN0aW9uIiBidXQgZ290
ICJ1bmRlZmluZWQiCi1GQUlMIG9ubG9hZGVuZDogdGhlIGNvbnRlbnQgYXR0cmlidXRlIG11c3Qg
ZXhlY3V0ZSB3aGVuIGFuIGV2ZW50IGlzIGRpc3BhdGNoZWQgYXNzZXJ0X3RydWU6IERpc3BhdGNo
aW5nIGFuIGV2ZW50IG11c3QgcnVuIHRoZSBjb2RlIGV4cGVjdGVkIHRydWUgZ290IHVuZGVmaW5l
ZAotUEFTUyBvbmxvYWRlbmQ6IGRpc3BhdGNoaW5nIGFuIEV2ZW50IGF0IGEgPG1ldGE+IGVsZW1l
bnQgbXVzdCB0cmlnZ2VyIGVsZW1lbnQub25sb2FkZW5kIAogUEFTUyBvbmxvYWRzdGFydDogbXVz
dCBiZSBvbiB0aGUgYXBwcm9wcmlhdGUgbG9jYXRpb25zIGZvciBHbG9iYWxFdmVudEhhbmRsZXJz
IAogUEFTUyBvbmxvYWRzdGFydDogdGhlIGRlZmF1bHQgdmFsdWUgbXVzdCBiZSBudWxsIAogUEFT
UyBvbmxvYWRzdGFydDogdGhlIGNvbnRlbnQgYXR0cmlidXRlIG11c3QgYmUgY29tcGlsZWQgaW50
byBhIGZ1bmN0aW9uIGFzIHRoZSBjb3JyZXNwb25kaW5nIHByb3BlcnR5IApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbnRlcmZhY2VzL1NW
Ry5pZGwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ludGVy
ZmFjZXMvU1ZHLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45Nzg3MWMyZjAyMzAzOTc4OGQ3Mzc5YmQxOTY4Zjc1
ZGMzZDNiZWU5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9pbnRlcmZhY2VzL1NWRy5pZGwKQEAgLTAsMCArMSw2NzkgQEAKKy8v
IEdFTkVSQVRFRCBDT05URU5UIC0gRE8gTk9UIEVESVQKKy8vIENvbnRlbnQgd2FzIGF1dG9tYXRp
Y2FsbHkgZXh0cmFjdGVkIGJ5IFJlZmZ5IGludG8gcmVmZnktcmVwb3J0cworLy8gKGh0dHBzOi8v
Z2l0aHViLmNvbS90aWRvdXN0L3JlZmZ5LXJlcG9ydHMpCisvLyBTb3VyY2U6IFNjYWxhYmxlIFZl
Y3RvciBHcmFwaGljcyAoU1ZHKSAyIChodHRwczovL3N2Z3dnLm9yZy9zdmcyLWRyYWZ0LykKKwor
W0V4cG9zZWQ9V2luZG93XQoraW50ZXJmYWNlIFNWR0VsZW1lbnQgOiBFbGVtZW50IHsKKworICBb
U2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkU3RyaW5nIGNsYXNzTmFt
ZTsKKworICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHU1ZHRWxlbWVudD8gb3duZXJTVkdFbGVtZW50
OworICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHRWxlbWVudD8gdmlld3BvcnRFbGVtZW50OworfTsK
KworU1ZHRWxlbWVudCBpbmNsdWRlcyBHbG9iYWxFdmVudEhhbmRsZXJzOworU1ZHRWxlbWVudCBp
bmNsdWRlcyBEb2N1bWVudEFuZEVsZW1lbnRFdmVudEhhbmRsZXJzOworU1ZHRWxlbWVudCBpbmNs
dWRlcyBTVkdFbGVtZW50SW5zdGFuY2U7CitTVkdFbGVtZW50IGluY2x1ZGVzIEhUTUxPclNWR0Vs
ZW1lbnQ7CisKK2RpY3Rpb25hcnkgU1ZHQm91bmRpbmdCb3hPcHRpb25zIHsKKyAgYm9vbGVhbiBm
aWxsID0gdHJ1ZTsKKyAgYm9vbGVhbiBzdHJva2UgPSBmYWxzZTsKKyAgYm9vbGVhbiBtYXJrZXJz
ID0gZmFsc2U7CisgIGJvb2xlYW4gY2xpcHBlZCA9IGZhbHNlOworfTsKKworaW50ZXJmYWNlIFNW
R0dyYXBoaWNzRWxlbWVudCA6IFNWR0VsZW1lbnQgeworICBbU2FtZU9iamVjdF0gcmVhZG9ubHkg
YXR0cmlidXRlIFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdCB0cmFuc2Zvcm07CisKKyAgRE9NUmVj
dCBnZXRCQm94KG9wdGlvbmFsIFNWR0JvdW5kaW5nQm94T3B0aW9ucyBvcHRpb25zKTsKKyAgRE9N
TWF0cml4PyBnZXRDVE0oKTsKKyAgRE9NTWF0cml4PyBnZXRTY3JlZW5DVE0oKTsKK307CisKK1NW
R0dyYXBoaWNzRWxlbWVudCBpbmNsdWRlcyBTVkdUZXN0czsKKworW0V4cG9zZWQ9V2luZG93XQor
aW50ZXJmYWNlIFNWR0dlb21ldHJ5RWxlbWVudCA6IFNWR0dyYXBoaWNzRWxlbWVudCB7CisgIFtT
YW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWROdW1iZXIgcGF0aExlbmd0
aDsKKworICBib29sZWFuIGlzUG9pbnRJbkZpbGwob3B0aW9uYWwgRE9NUG9pbnRJbml0IHBvaW50
KTsKKyAgYm9vbGVhbiBpc1BvaW50SW5TdHJva2Uob3B0aW9uYWwgRE9NUG9pbnRJbml0IHBvaW50
KTsKKyAgZmxvYXQgZ2V0VG90YWxMZW5ndGgoKTsKKyAgRE9NUG9pbnQgZ2V0UG9pbnRBdExlbmd0
aChmbG9hdCBkaXN0YW5jZSk7Cit9OworCitbRXhwb3NlZD1XaW5kb3ddCitpbnRlcmZhY2UgU1ZH
TnVtYmVyIHsKKyAgYXR0cmlidXRlIGZsb2F0IHZhbHVlOworfTsKKworW0V4cG9zZWQ9V2luZG93
XQoraW50ZXJmYWNlIFNWR0xlbmd0aCB7CisKKyAgLy8gTGVuZ3RoIFVuaXQgVHlwZXMKKyAgY29u
c3QgdW5zaWduZWQgc2hvcnQgU1ZHX0xFTkdUSFRZUEVfVU5LTk9XTiA9IDA7CisgIGNvbnN0IHVu
c2lnbmVkIHNob3J0IFNWR19MRU5HVEhUWVBFX05VTUJFUiA9IDE7CisgIGNvbnN0IHVuc2lnbmVk
IHNob3J0IFNWR19MRU5HVEhUWVBFX1BFUkNFTlRBR0UgPSAyOworICBjb25zdCB1bnNpZ25lZCBz
aG9ydCBTVkdfTEVOR1RIVFlQRV9FTVMgPSAzOworICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdf
TEVOR1RIVFlQRV9FWFMgPSA0OworICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfTEVOR1RIVFlQ
RV9QWCA9IDU7CisgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19MRU5HVEhUWVBFX0NNID0gNjsK
KyAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX0xFTkdUSFRZUEVfTU0gPSA3OworICBjb25zdCB1
bnNpZ25lZCBzaG9ydCBTVkdfTEVOR1RIVFlQRV9JTiA9IDg7CisgIGNvbnN0IHVuc2lnbmVkIHNo
b3J0IFNWR19MRU5HVEhUWVBFX1BUID0gOTsKKyAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX0xF
TkdUSFRZUEVfUEMgPSAxMDsKKworICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgc2hvcnQg
dW5pdFR5cGU7CisgICAgICAgICAgIGF0dHJpYnV0ZSBmbG9hdCB2YWx1ZTsKKyAgICAgICAgICAg
YXR0cmlidXRlIGZsb2F0IHZhbHVlSW5TcGVjaWZpZWRVbml0czsKKyAgICAgICAgICAgYXR0cmli
dXRlIERPTVN0cmluZyB2YWx1ZUFzU3RyaW5nOworCisgIHZvaWQgbmV3VmFsdWVTcGVjaWZpZWRV
bml0cyh1bnNpZ25lZCBzaG9ydCB1bml0VHlwZSwgZmxvYXQgdmFsdWVJblNwZWNpZmllZFVuaXRz
KTsKKyAgdm9pZCBjb252ZXJ0VG9TcGVjaWZpZWRVbml0cyh1bnNpZ25lZCBzaG9ydCB1bml0VHlw
ZSk7Cit9OworCitbRXhwb3NlZD1XaW5kb3ddCitpbnRlcmZhY2UgU1ZHQW5nbGUgeworCisgIC8v
IEFuZ2xlIFVuaXQgVHlwZXMKKyAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX0FOR0xFVFlQRV9V
TktOT1dOID0gMDsKKyAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX0FOR0xFVFlQRV9VTlNQRUNJ
RklFRCA9IDE7CisgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19BTkdMRVRZUEVfREVHID0gMjsK
KyAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX0FOR0xFVFlQRV9SQUQgPSAzOworICBjb25zdCB1
bnNpZ25lZCBzaG9ydCBTVkdfQU5HTEVUWVBFX0dSQUQgPSA0OworCisgIHJlYWRvbmx5IGF0dHJp
YnV0ZSB1bnNpZ25lZCBzaG9ydCB1bml0VHlwZTsKKyAgICAgICAgICAgYXR0cmlidXRlIGZsb2F0
IHZhbHVlOworICAgICAgICAgICBhdHRyaWJ1dGUgZmxvYXQgdmFsdWVJblNwZWNpZmllZFVuaXRz
OworICAgICAgICAgICBhdHRyaWJ1dGUgRE9NU3RyaW5nIHZhbHVlQXNTdHJpbmc7CisKKyAgdm9p
ZCBuZXdWYWx1ZVNwZWNpZmllZFVuaXRzKHVuc2lnbmVkIHNob3J0IHVuaXRUeXBlLCBmbG9hdCB2
YWx1ZUluU3BlY2lmaWVkVW5pdHMpOworICB2b2lkIGNvbnZlcnRUb1NwZWNpZmllZFVuaXRzKHVu
c2lnbmVkIHNob3J0IHVuaXRUeXBlKTsKK307CisKK1tFeHBvc2VkPVdpbmRvd10KK2ludGVyZmFj
ZSBTVkdOdW1iZXJMaXN0IHsKKworICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBs
ZW5ndGg7CisgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIG51bWJlck9mSXRlbXM7
CisKKyAgdm9pZCBjbGVhcigpOworICBTVkdOdW1iZXIgaW5pdGlhbGl6ZShTVkdOdW1iZXIgbmV3
SXRlbSk7CisgIGdldHRlciBTVkdOdW1iZXIgZ2V0SXRlbSh1bnNpZ25lZCBsb25nIGluZGV4KTsK
KyAgU1ZHTnVtYmVyIGluc2VydEl0ZW1CZWZvcmUoU1ZHTnVtYmVyIG5ld0l0ZW0sIHVuc2lnbmVk
IGxvbmcgaW5kZXgpOworICBTVkdOdW1iZXIgcmVwbGFjZUl0ZW0oU1ZHTnVtYmVyIG5ld0l0ZW0s
IHVuc2lnbmVkIGxvbmcgaW5kZXgpOworICBTVkdOdW1iZXIgcmVtb3ZlSXRlbSh1bnNpZ25lZCBs
b25nIGluZGV4KTsKKyAgU1ZHTnVtYmVyIGFwcGVuZEl0ZW0oU1ZHTnVtYmVyIG5ld0l0ZW0pOwor
ICBzZXR0ZXIgdm9pZCAodW5zaWduZWQgbG9uZyBpbmRleCwgU1ZHTnVtYmVyIG5ld0l0ZW0pOwor
fTsKKworW0V4cG9zZWQ9V2luZG93XQoraW50ZXJmYWNlIFNWR0xlbmd0aExpc3QgeworCisgIHJl
YWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxlbmd0aDsKKyAgcmVhZG9ubHkgYXR0cmli
dXRlIHVuc2lnbmVkIGxvbmcgbnVtYmVyT2ZJdGVtczsKKworICB2b2lkIGNsZWFyKCk7CisgIFNW
R0xlbmd0aCBpbml0aWFsaXplKFNWR0xlbmd0aCBuZXdJdGVtKTsKKyAgZ2V0dGVyIFNWR0xlbmd0
aCBnZXRJdGVtKHVuc2lnbmVkIGxvbmcgaW5kZXgpOworICBTVkdMZW5ndGggaW5zZXJ0SXRlbUJl
Zm9yZShTVkdMZW5ndGggbmV3SXRlbSwgdW5zaWduZWQgbG9uZyBpbmRleCk7CisgIFNWR0xlbmd0
aCByZXBsYWNlSXRlbShTVkdMZW5ndGggbmV3SXRlbSwgdW5zaWduZWQgbG9uZyBpbmRleCk7Cisg
IFNWR0xlbmd0aCByZW1vdmVJdGVtKHVuc2lnbmVkIGxvbmcgaW5kZXgpOworICBTVkdMZW5ndGgg
YXBwZW5kSXRlbShTVkdMZW5ndGggbmV3SXRlbSk7CisgIHNldHRlciB2b2lkICh1bnNpZ25lZCBs
b25nIGluZGV4LCBTVkdMZW5ndGggbmV3SXRlbSk7Cit9OworCitbRXhwb3NlZD1XaW5kb3ddCitp
bnRlcmZhY2UgU1ZHU3RyaW5nTGlzdCB7CisKKyAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVk
IGxvbmcgbGVuZ3RoOworICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBudW1iZXJP
Zkl0ZW1zOworCisgIHZvaWQgY2xlYXIoKTsKKyAgRE9NU3RyaW5nIGluaXRpYWxpemUoRE9NU3Ry
aW5nIG5ld0l0ZW0pOworICBnZXR0ZXIgRE9NU3RyaW5nIGdldEl0ZW0odW5zaWduZWQgbG9uZyBp
bmRleCk7CisgIERPTVN0cmluZyBpbnNlcnRJdGVtQmVmb3JlKERPTVN0cmluZyBuZXdJdGVtLCB1
bnNpZ25lZCBsb25nIGluZGV4KTsKKyAgRE9NU3RyaW5nIHJlcGxhY2VJdGVtKERPTVN0cmluZyBu
ZXdJdGVtLCB1bnNpZ25lZCBsb25nIGluZGV4KTsKKyAgRE9NU3RyaW5nIHJlbW92ZUl0ZW0odW5z
aWduZWQgbG9uZyBpbmRleCk7CisgIERPTVN0cmluZyBhcHBlbmRJdGVtKERPTVN0cmluZyBuZXdJ
dGVtKTsKKyAgc2V0dGVyIHZvaWQgKHVuc2lnbmVkIGxvbmcgaW5kZXgsIERPTVN0cmluZyBuZXdJ
dGVtKTsKK307CisKK1tFeHBvc2VkPVdpbmRvd10KK2ludGVyZmFjZSBTVkdBbmltYXRlZEJvb2xl
YW4geworICAgICAgICAgICBhdHRyaWJ1dGUgYm9vbGVhbiBiYXNlVmFsOworICByZWFkb25seSBh
dHRyaWJ1dGUgYm9vbGVhbiBhbmltVmFsOworfTsKKworW0V4cG9zZWQ9V2luZG93XQoraW50ZXJm
YWNlIFNWR0FuaW1hdGVkRW51bWVyYXRpb24geworICAgICAgICAgICBhdHRyaWJ1dGUgdW5zaWdu
ZWQgc2hvcnQgYmFzZVZhbDsKKyAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIHNob3J0IGFu
aW1WYWw7Cit9OworCitbRXhwb3NlZD1XaW5kb3ddCitpbnRlcmZhY2UgU1ZHQW5pbWF0ZWRJbnRl
Z2VyIHsKKyAgICAgICAgICAgYXR0cmlidXRlIGxvbmcgYmFzZVZhbDsKKyAgcmVhZG9ubHkgYXR0
cmlidXRlIGxvbmcgYW5pbVZhbDsKK307CisKK1tFeHBvc2VkPVdpbmRvd10KK2ludGVyZmFjZSBT
VkdBbmltYXRlZE51bWJlciB7CisgICAgICAgICAgIGF0dHJpYnV0ZSBmbG9hdCBiYXNlVmFsOwor
ICByZWFkb25seSBhdHRyaWJ1dGUgZmxvYXQgYW5pbVZhbDsKK307CisKK1tFeHBvc2VkPVdpbmRv
d10KK2ludGVyZmFjZSBTVkdBbmltYXRlZExlbmd0aCB7CisgIFtTYW1lT2JqZWN0XSByZWFkb25s
eSBhdHRyaWJ1dGUgU1ZHTGVuZ3RoIGJhc2VWYWw7CisgIFtTYW1lT2JqZWN0XSByZWFkb25seSBh
dHRyaWJ1dGUgU1ZHTGVuZ3RoIGFuaW1WYWw7Cit9OworCitbRXhwb3NlZD1XaW5kb3ddCitpbnRl
cmZhY2UgU1ZHQW5pbWF0ZWRBbmdsZSB7CisgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1
dGUgU1ZHQW5nbGUgYmFzZVZhbDsKKyAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBT
VkdBbmdsZSBhbmltVmFsOworfTsKKworW0V4cG9zZWQ9V2luZG93XQoraW50ZXJmYWNlIFNWR0Fu
aW1hdGVkU3RyaW5nIHsKKyAgICAgICAgICAgYXR0cmlidXRlIERPTVN0cmluZyBiYXNlVmFsOwor
ICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGFuaW1WYWw7Cit9OworCitbRXhwb3NlZD1X
aW5kb3ddCitpbnRlcmZhY2UgU1ZHQW5pbWF0ZWRSZWN0IHsKKyAgW1NhbWVPYmplY3RdIHJlYWRv
bmx5IGF0dHJpYnV0ZSBET01SZWN0IGJhc2VWYWw7CisgIFtTYW1lT2JqZWN0XSByZWFkb25seSBh
dHRyaWJ1dGUgRE9NUmVjdFJlYWRPbmx5IGFuaW1WYWw7Cit9OworCitbRXhwb3NlZD1XaW5kb3dd
CitpbnRlcmZhY2UgU1ZHQW5pbWF0ZWROdW1iZXJMaXN0IHsKKyAgW1NhbWVPYmplY3RdIHJlYWRv
bmx5IGF0dHJpYnV0ZSBTVkdOdW1iZXJMaXN0IGJhc2VWYWw7CisgIFtTYW1lT2JqZWN0XSByZWFk
b25seSBhdHRyaWJ1dGUgU1ZHTnVtYmVyTGlzdCBhbmltVmFsOworfTsKKworW0V4cG9zZWQ9V2lu
ZG93XQoraW50ZXJmYWNlIFNWR0FuaW1hdGVkTGVuZ3RoTGlzdCB7CisgIFtTYW1lT2JqZWN0XSBy
ZWFkb25seSBhdHRyaWJ1dGUgU1ZHTGVuZ3RoTGlzdCBiYXNlVmFsOworICBbU2FtZU9iamVjdF0g
cmVhZG9ubHkgYXR0cmlidXRlIFNWR0xlbmd0aExpc3QgYW5pbVZhbDsKK307CisKK1tFeHBvc2Vk
PVdpbmRvd10KK2ludGVyZmFjZSBTVkdVbml0VHlwZXMgeworICAvLyBVbml0IFR5cGVzCisgIGNv
bnN0IHVuc2lnbmVkIHNob3J0IFNWR19VTklUX1RZUEVfVU5LTk9XTiA9IDA7CisgIGNvbnN0IHVu
c2lnbmVkIHNob3J0IFNWR19VTklUX1RZUEVfVVNFUlNQQUNFT05VU0UgPSAxOworICBjb25zdCB1
bnNpZ25lZCBzaG9ydCBTVkdfVU5JVF9UWVBFX09CSkVDVEJPVU5ESU5HQk9YID0gMjsKK307CisK
K2ludGVyZmFjZSBtaXhpbiBTVkdUZXN0cyB7CisgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRy
aWJ1dGUgU1ZHU3RyaW5nTGlzdCByZXF1aXJlZEV4dGVuc2lvbnM7CisgIFtTYW1lT2JqZWN0XSBy
ZWFkb25seSBhdHRyaWJ1dGUgU1ZHU3RyaW5nTGlzdCBzeXN0ZW1MYW5ndWFnZTsKK307CisKK2lu
dGVyZmFjZSBtaXhpbiBTVkdGaXRUb1ZpZXdCb3ggeworICBbU2FtZU9iamVjdF0gcmVhZG9ubHkg
YXR0cmlidXRlIFNWR0FuaW1hdGVkUmVjdCB2aWV3Qm94OworICBbU2FtZU9iamVjdF0gcmVhZG9u
bHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpbyBwcmVzZXJ2ZUFzcGVj
dFJhdGlvOworfTsKKworaW50ZXJmYWNlIG1peGluIFNWR1VSSVJlZmVyZW5jZSB7CisgIFtTYW1l
T2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRTdHJpbmcgaHJlZjsKK307CisK
K3BhcnRpYWwgaW50ZXJmYWNlIERvY3VtZW50IHsKKyAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR1NW
R0VsZW1lbnQ/IHJvb3RFbGVtZW50OworfTsKKworW0V4cG9zZWQ9V2luZG93XQoraW50ZXJmYWNl
IFNWR1NWR0VsZW1lbnQgOiBTVkdHcmFwaGljc0VsZW1lbnQgeworCisgIFtTYW1lT2JqZWN0XSBy
ZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRMZW5ndGggeDsKKyAgW1NhbWVPYmplY3RdIHJl
YWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZExlbmd0aCB5OworICBbU2FtZU9iamVjdF0gcmVh
ZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTGVuZ3RoIHdpZHRoOworICBbU2FtZU9iamVjdF0g
cmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTGVuZ3RoIGhlaWdodDsKKworICBhdHRyaWJ1
dGUgZmxvYXQgY3VycmVudFNjYWxlOworICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRl
IERPTVBvaW50UmVhZE9ubHkgY3VycmVudFRyYW5zbGF0ZTsKKworICBOb2RlTGlzdCBnZXRJbnRl
cnNlY3Rpb25MaXN0KERPTVJlY3RSZWFkT25seSByZWN0LCBTVkdFbGVtZW50PyByZWZlcmVuY2VF
bGVtZW50KTsKKyAgTm9kZUxpc3QgZ2V0RW5jbG9zdXJlTGlzdChET01SZWN0UmVhZE9ubHkgcmVj
dCwgU1ZHRWxlbWVudD8gcmVmZXJlbmNlRWxlbWVudCk7CisgIGJvb2xlYW4gY2hlY2tJbnRlcnNl
Y3Rpb24oU1ZHRWxlbWVudCBlbGVtZW50LCBET01SZWN0UmVhZE9ubHkgcmVjdCk7CisgIGJvb2xl
YW4gY2hlY2tFbmNsb3N1cmUoU1ZHRWxlbWVudCBlbGVtZW50LCBET01SZWN0UmVhZE9ubHkgcmVj
dCk7CisKKyAgdm9pZCBkZXNlbGVjdEFsbCgpOworCisgIFNWR051bWJlciBjcmVhdGVTVkdOdW1i
ZXIoKTsKKyAgU1ZHTGVuZ3RoIGNyZWF0ZVNWR0xlbmd0aCgpOworICBTVkdBbmdsZSBjcmVhdGVT
VkdBbmdsZSgpOworICBET01Qb2ludCBjcmVhdGVTVkdQb2ludCgpOworICBET01NYXRyaXggY3Jl
YXRlU1ZHTWF0cml4KCk7CisgIERPTVJlY3QgY3JlYXRlU1ZHUmVjdCgpOworICBTVkdUcmFuc2Zv
cm0gY3JlYXRlU1ZHVHJhbnNmb3JtKCk7CisgIFNWR1RyYW5zZm9ybSBjcmVhdGVTVkdUcmFuc2Zv
cm1Gcm9tTWF0cml4KG9wdGlvbmFsIERPTU1hdHJpeDJESW5pdCBtYXRyaXgpOworCisgIEVsZW1l
bnQgZ2V0RWxlbWVudEJ5SWQoRE9NU3RyaW5nIGVsZW1lbnRJZCk7CisKKyAgLy8gRGVwcmVjYXRl
ZCBtZXRob2RzIHRoYXQgaGF2ZSBubyBlZmZlY3Qgd2hlbiBjYWxsZWQsCisgIC8vIGJ1dCB3aGlj
aCBhcmUga2VwdCBmb3IgY29tcGF0aWJpbGl0eSByZWFzb25zLgorICB1bnNpZ25lZCBsb25nIHN1
c3BlbmRSZWRyYXcodW5zaWduZWQgbG9uZyBtYXhXYWl0TWlsbGlzZWNvbmRzKTsKKyAgdm9pZCB1
bnN1c3BlbmRSZWRyYXcodW5zaWduZWQgbG9uZyBzdXNwZW5kSGFuZGxlSUQpOworICB2b2lkIHVu
c3VzcGVuZFJlZHJhd0FsbCgpOworICB2b2lkIGZvcmNlUmVkcmF3KCk7Cit9OworCitTVkdTVkdF
bGVtZW50IGluY2x1ZGVzIFNWR0ZpdFRvVmlld0JveDsKK1NWR1NWR0VsZW1lbnQgaW5jbHVkZXMg
V2luZG93RXZlbnRIYW5kbGVyczsKKworW0V4cG9zZWQ9V2luZG93XQoraW50ZXJmYWNlIFNWR0dF
bGVtZW50IDogU1ZHR3JhcGhpY3NFbGVtZW50IHsKK307CisKK1tFeHBvc2VkPVdpbmRvd10KK2lu
dGVyZmFjZSBTVkdEZWZzRWxlbWVudCA6IFNWR0dyYXBoaWNzRWxlbWVudCB7Cit9OworCitbRXhw
b3NlZD1XaW5kb3ddCitpbnRlcmZhY2UgU1ZHRGVzY0VsZW1lbnQgOiBTVkdFbGVtZW50IHsKK307
CisKK1tFeHBvc2VkPVdpbmRvd10KK2ludGVyZmFjZSBTVkdNZXRhZGF0YUVsZW1lbnQgOiBTVkdF
bGVtZW50IHsKK307CisKK1tFeHBvc2VkPVdpbmRvd10KK2ludGVyZmFjZSBTVkdUaXRsZUVsZW1l
bnQgOiBTVkdFbGVtZW50IHsKK307CisKK1tFeHBvc2VkPVdpbmRvd10KK2ludGVyZmFjZSBTVkdT
eW1ib2xFbGVtZW50IDogU1ZHR3JhcGhpY3NFbGVtZW50IHsKK307CisKK1NWR1N5bWJvbEVsZW1l
bnQgaW5jbHVkZXMgU1ZHRml0VG9WaWV3Qm94OworCitbRXhwb3NlZD1XaW5kb3ddCitpbnRlcmZh
Y2UgU1ZHVXNlRWxlbWVudCA6IFNWR0dyYXBoaWNzRWxlbWVudCB7CisgIFtTYW1lT2JqZWN0XSBy
ZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRMZW5ndGggeDsKKyAgW1NhbWVPYmplY3RdIHJl
YWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZExlbmd0aCB5OworICBbU2FtZU9iamVjdF0gcmVh
ZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTGVuZ3RoIHdpZHRoOworICBbU2FtZU9iamVjdF0g
cmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTGVuZ3RoIGhlaWdodDsKKyAgW1NhbWVPYmpl
Y3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdFbGVtZW50PyBpbnN0YW5jZVJvb3Q7CisgIFtTYW1l
T2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgU1ZHRWxlbWVudD8gYW5pbWF0ZWRJbnN0YW5jZVJv
b3Q7Cit9OworCitTVkdVc2VFbGVtZW50IGluY2x1ZGVzIFNWR1VSSVJlZmVyZW5jZTsKKworW0V4
cG9zZWQ9V2luZG93XQoraW50ZXJmYWNlIFNWR1VzZUVsZW1lbnRTaGFkb3dSb290IDogU2hhZG93
Um9vdCB7Cit9OworCitpbnRlcmZhY2UgbWl4aW4gU1ZHRWxlbWVudEluc3RhbmNlIHsKKyAgW1Nh
bWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdFbGVtZW50PyBjb3JyZXNwb25kaW5nRWxl
bWVudDsKKyAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdVc2VFbGVtZW50PyBj
b3JyZXNwb25kaW5nVXNlRWxlbWVudDsKK307CisKK1tDb25zdHJ1Y3RvcihBbmltYXRpb24gc291
cmNlLCBBbmltYXRhYmxlIG5ld1RhcmdldCksIEV4cG9zZWQ9V2luZG93XQoraW50ZXJmYWNlIFNo
YWRvd0FuaW1hdGlvbiA6IEFuaW1hdGlvbiB7CisgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRy
aWJ1dGUgQW5pbWF0aW9uIHNvdXJjZUFuaW1hdGlvbjsKK307CisKK1tFeHBvc2VkPVdpbmRvd10K
K2ludGVyZmFjZSBTVkdTd2l0Y2hFbGVtZW50IDogU1ZHR3JhcGhpY3NFbGVtZW50IHsKK307CisK
K2ludGVyZmFjZSBtaXhpbiBHZXRTVkdEb2N1bWVudCB7CisgIERvY3VtZW50IGdldFNWR0RvY3Vt
ZW50KCk7Cit9OworCitbRXhwb3NlZD1XaW5kb3ddCitpbnRlcmZhY2UgU1ZHU3R5bGVFbGVtZW50
IDogU1ZHRWxlbWVudCB7CisgIGF0dHJpYnV0ZSBET01TdHJpbmcgdHlwZTsKKyAgYXR0cmlidXRl
IERPTVN0cmluZyBtZWRpYTsKKyAgYXR0cmlidXRlIERPTVN0cmluZyB0aXRsZTsKK307CisKK1NW
R1N0eWxlRWxlbWVudCBpbmNsdWRlcyBMaW5rU3R5bGU7CisKK1tFeHBvc2VkPVdpbmRvd10KK2lu
dGVyZmFjZSBTVkdUcmFuc2Zvcm0geworCisgIC8vIFRyYW5zZm9ybSBUeXBlcworICBjb25zdCB1
bnNpZ25lZCBzaG9ydCBTVkdfVFJBTlNGT1JNX1VOS05PV04gPSAwOworICBjb25zdCB1bnNpZ25l
ZCBzaG9ydCBTVkdfVFJBTlNGT1JNX01BVFJJWCA9IDE7CisgIGNvbnN0IHVuc2lnbmVkIHNob3J0
IFNWR19UUkFOU0ZPUk1fVFJBTlNMQVRFID0gMjsKKyAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZH
X1RSQU5TRk9STV9TQ0FMRSA9IDM7CisgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19UUkFOU0ZP
Uk1fUk9UQVRFID0gNDsKKyAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX1RSQU5TRk9STV9TS0VX
WCA9IDU7CisgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19UUkFOU0ZPUk1fU0tFV1kgPSA2Owor
CisgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBzaG9ydCB0eXBlOworICBbU2FtZU9iamVj
dF0gcmVhZG9ubHkgYXR0cmlidXRlIERPTU1hdHJpeCBtYXRyaXg7CisgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBmbG9hdCBhbmdsZTsKKworICB2b2lkIHNldE1hdHJpeChvcHRpb25hbCBET01NYXRyaXgy
REluaXQgbWF0cml4KTsKKyAgdm9pZCBzZXRUcmFuc2xhdGUoZmxvYXQgdHgsIGZsb2F0IHR5KTsK
KyAgdm9pZCBzZXRTY2FsZShmbG9hdCBzeCwgZmxvYXQgc3kpOworICB2b2lkIHNldFJvdGF0ZShm
bG9hdCBhbmdsZSwgZmxvYXQgY3gsIGZsb2F0IGN5KTsKKyAgdm9pZCBzZXRTa2V3WChmbG9hdCBh
bmdsZSk7CisgIHZvaWQgc2V0U2tld1koZmxvYXQgYW5nbGUpOworfTsKKworW0V4cG9zZWQ9V2lu
ZG93XQoraW50ZXJmYWNlIFNWR1RyYW5zZm9ybUxpc3QgeworCisgIHJlYWRvbmx5IGF0dHJpYnV0
ZSB1bnNpZ25lZCBsb25nIGxlbmd0aDsKKyAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxv
bmcgbnVtYmVyT2ZJdGVtczsKKworICB2b2lkIGNsZWFyKCk7CisgIFNWR1RyYW5zZm9ybSBpbml0
aWFsaXplKFNWR1RyYW5zZm9ybSBuZXdJdGVtKTsKKyAgZ2V0dGVyIFNWR1RyYW5zZm9ybSBnZXRJ
dGVtKHVuc2lnbmVkIGxvbmcgaW5kZXgpOworICBTVkdUcmFuc2Zvcm0gaW5zZXJ0SXRlbUJlZm9y
ZShTVkdUcmFuc2Zvcm0gbmV3SXRlbSwgdW5zaWduZWQgbG9uZyBpbmRleCk7CisgIFNWR1RyYW5z
Zm9ybSByZXBsYWNlSXRlbShTVkdUcmFuc2Zvcm0gbmV3SXRlbSwgdW5zaWduZWQgbG9uZyBpbmRl
eCk7CisgIFNWR1RyYW5zZm9ybSByZW1vdmVJdGVtKHVuc2lnbmVkIGxvbmcgaW5kZXgpOworICBT
VkdUcmFuc2Zvcm0gYXBwZW5kSXRlbShTVkdUcmFuc2Zvcm0gbmV3SXRlbSk7CisgIHNldHRlciB2
b2lkICh1bnNpZ25lZCBsb25nIGluZGV4LCBTVkdUcmFuc2Zvcm0gbmV3SXRlbSk7CisKKyAgLy8g
QWRkaXRpb25hbCBtZXRob2RzIG5vdCBjb21tb24gdG8gb3RoZXIgbGlzdCBpbnRlcmZhY2VzLgor
ICBTVkdUcmFuc2Zvcm0gY3JlYXRlU1ZHVHJhbnNmb3JtRnJvbU1hdHJpeChvcHRpb25hbCBET01N
YXRyaXgyREluaXQgbWF0cml4KTsKKyAgU1ZHVHJhbnNmb3JtPyBjb25zb2xpZGF0ZSgpOworfTsK
KworW0V4cG9zZWQ9V2luZG93XQoraW50ZXJmYWNlIFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdCB7
CisgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgU1ZHVHJhbnNmb3JtTGlzdCBiYXNl
VmFsOworICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIFNWR1RyYW5zZm9ybUxpc3Qg
YW5pbVZhbDsKK307CisKK1tFeHBvc2VkPVdpbmRvd10KK2ludGVyZmFjZSBTVkdQcmVzZXJ2ZUFz
cGVjdFJhdGlvIHsKKworICAvLyBBbGlnbm1lbnQgVHlwZXMKKyAgY29uc3QgdW5zaWduZWQgc2hv
cnQgU1ZHX1BSRVNFUlZFQVNQRUNUUkFUSU9fVU5LTk9XTiA9IDA7CisgIGNvbnN0IHVuc2lnbmVk
IHNob3J0IFNWR19QUkVTRVJWRUFTUEVDVFJBVElPX05PTkUgPSAxOworICBjb25zdCB1bnNpZ25l
ZCBzaG9ydCBTVkdfUFJFU0VSVkVBU1BFQ1RSQVRJT19YTUlOWU1JTiA9IDI7CisgIGNvbnN0IHVu
c2lnbmVkIHNob3J0IFNWR19QUkVTRVJWRUFTUEVDVFJBVElPX1hNSURZTUlOID0gMzsKKyAgY29u
c3QgdW5zaWduZWQgc2hvcnQgU1ZHX1BSRVNFUlZFQVNQRUNUUkFUSU9fWE1BWFlNSU4gPSA0Owor
ICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfUFJFU0VSVkVBU1BFQ1RSQVRJT19YTUlOWU1JRCA9
IDU7CisgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19QUkVTRVJWRUFTUEVDVFJBVElPX1hNSURZ
TUlEID0gNjsKKyAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX1BSRVNFUlZFQVNQRUNUUkFUSU9f
WE1BWFlNSUQgPSA3OworICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfUFJFU0VSVkVBU1BFQ1RS
QVRJT19YTUlOWU1BWCA9IDg7CisgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19QUkVTRVJWRUFT
UEVDVFJBVElPX1hNSURZTUFYID0gOTsKKyAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX1BSRVNF
UlZFQVNQRUNUUkFUSU9fWE1BWFlNQVggPSAxMDsKKworICAvLyBNZWV0LW9yLXNsaWNlIFR5cGVz
CisgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19NRUVUT1JTTElDRV9VTktOT1dOID0gMDsKKyAg
Y29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX01FRVRPUlNMSUNFX01FRVQgPSAxOworICBjb25zdCB1
bnNpZ25lZCBzaG9ydCBTVkdfTUVFVE9SU0xJQ0VfU0xJQ0UgPSAyOworCisgIGF0dHJpYnV0ZSB1
bnNpZ25lZCBzaG9ydCBhbGlnbjsKKyAgYXR0cmlidXRlIHVuc2lnbmVkIHNob3J0IG1lZXRPclNs
aWNlOworfTsKKworW0V4cG9zZWQ9V2luZG93XQoraW50ZXJmYWNlIFNWR0FuaW1hdGVkUHJlc2Vy
dmVBc3BlY3RSYXRpbyB7CisgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgU1ZHUHJl
c2VydmVBc3BlY3RSYXRpbyBiYXNlVmFsOworICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmli
dXRlIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8gYW5pbVZhbDsKK307CisKK1tFeHBvc2VkPVdpbmRv
d10KK2ludGVyZmFjZSBTVkdQYXRoRWxlbWVudCA6IFNWR0dlb21ldHJ5RWxlbWVudCB7Cit9Owor
CitbRXhwb3NlZD1XaW5kb3ddCitpbnRlcmZhY2UgU1ZHUmVjdEVsZW1lbnQgOiBTVkdHZW9tZXRy
eUVsZW1lbnQgeworICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVk
TGVuZ3RoIHg7CisgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRM
ZW5ndGggeTsKKyAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZExl
bmd0aCB3aWR0aDsKKyAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRl
ZExlbmd0aCBoZWlnaHQ7CisgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5p
bWF0ZWRMZW5ndGggcng7CisgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5p
bWF0ZWRMZW5ndGggcnk7Cit9OworCitbRXhwb3NlZD1XaW5kb3ddCitpbnRlcmZhY2UgU1ZHQ2ly
Y2xlRWxlbWVudCA6IFNWR0dlb21ldHJ5RWxlbWVudCB7CisgIFtTYW1lT2JqZWN0XSByZWFkb25s
eSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRMZW5ndGggY3g7CisgIFtTYW1lT2JqZWN0XSByZWFkb25s
eSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRMZW5ndGggY3k7CisgIFtTYW1lT2JqZWN0XSByZWFkb25s
eSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRMZW5ndGggcjsKK307CisKK1tFeHBvc2VkPVdpbmRvd10K
K2ludGVyZmFjZSBTVkdFbGxpcHNlRWxlbWVudCA6IFNWR0dlb21ldHJ5RWxlbWVudCB7CisgIFtT
YW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRMZW5ndGggY3g7CisgIFtT
YW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRMZW5ndGggY3k7CisgIFtT
YW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRMZW5ndGggcng7CisgIFtT
YW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRMZW5ndGggcnk7Cit9Owor
CitbRXhwb3NlZD1XaW5kb3ddCitpbnRlcmZhY2UgU1ZHTGluZUVsZW1lbnQgOiBTVkdHZW9tZXRy
eUVsZW1lbnQgeworICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVk
TGVuZ3RoIHgxOworICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVk
TGVuZ3RoIHkxOworICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVk
TGVuZ3RoIHgyOworICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVk
TGVuZ3RoIHkyOworfTsKKworaW50ZXJmYWNlIG1peGluIFNWR0FuaW1hdGVkUG9pbnRzIHsKKyAg
W1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdQb2ludExpc3QgcG9pbnRzOworICBb
U2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIFNWR1BvaW50TGlzdCBhbmltYXRlZFBvaW50
czsKK307CisKK1tFeHBvc2VkPVdpbmRvd10KK2ludGVyZmFjZSBTVkdQb2ludExpc3QgeworCisg
IHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxlbmd0aDsKKyAgcmVhZG9ubHkgYXR0
cmlidXRlIHVuc2lnbmVkIGxvbmcgbnVtYmVyT2ZJdGVtczsKKworICB2b2lkIGNsZWFyKCk7Cisg
IERPTVBvaW50IGluaXRpYWxpemUoRE9NUG9pbnQgbmV3SXRlbSk7CisgIGdldHRlciBET01Qb2lu
dCBnZXRJdGVtKHVuc2lnbmVkIGxvbmcgaW5kZXgpOworICBET01Qb2ludCBpbnNlcnRJdGVtQmVm
b3JlKERPTVBvaW50IG5ld0l0ZW0sIHVuc2lnbmVkIGxvbmcgaW5kZXgpOworICBET01Qb2ludCBy
ZXBsYWNlSXRlbShET01Qb2ludCBuZXdJdGVtLCB1bnNpZ25lZCBsb25nIGluZGV4KTsKKyAgRE9N
UG9pbnQgcmVtb3ZlSXRlbSh1bnNpZ25lZCBsb25nIGluZGV4KTsKKyAgRE9NUG9pbnQgYXBwZW5k
SXRlbShET01Qb2ludCBuZXdJdGVtKTsKKyAgc2V0dGVyIHZvaWQgKHVuc2lnbmVkIGxvbmcgaW5k
ZXgsIERPTVBvaW50IG5ld0l0ZW0pOworfTsKKworW0V4cG9zZWQ9V2luZG93XQoraW50ZXJmYWNl
IFNWR1BvbHlsaW5lRWxlbWVudCA6IFNWR0dlb21ldHJ5RWxlbWVudCB7Cit9OworCitTVkdQb2x5
bGluZUVsZW1lbnQgaW5jbHVkZXMgU1ZHQW5pbWF0ZWRQb2ludHM7CisKK1tFeHBvc2VkPVdpbmRv
d10KK2ludGVyZmFjZSBTVkdQb2x5Z29uRWxlbWVudCA6IFNWR0dlb21ldHJ5RWxlbWVudCB7Cit9
OworCitTVkdQb2x5Z29uRWxlbWVudCBpbmNsdWRlcyBTVkdBbmltYXRlZFBvaW50czsKKworW0V4
cG9zZWQ9V2luZG93XQoraW50ZXJmYWNlIFNWR1RleHRDb250ZW50RWxlbWVudCA6IFNWR0dyYXBo
aWNzRWxlbWVudCB7CisKKyAgLy8gbGVuZ3RoQWRqdXN0IFR5cGVzCisgIGNvbnN0IHVuc2lnbmVk
IHNob3J0IExFTkdUSEFESlVTVF9VTktOT1dOID0gMDsKKyAgY29uc3QgdW5zaWduZWQgc2hvcnQg
TEVOR1RIQURKVVNUX1NQQUNJTkcgPSAxOworICBjb25zdCB1bnNpZ25lZCBzaG9ydCBMRU5HVEhB
REpVU1RfU1BBQ0lOR0FOREdMWVBIUyA9IDI7CisKKyAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0
dHJpYnV0ZSBTVkdBbmltYXRlZExlbmd0aCB0ZXh0TGVuZ3RoOworICBbU2FtZU9iamVjdF0gcmVh
ZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkRW51bWVyYXRpb24gbGVuZ3RoQWRqdXN0OworCisg
IGxvbmcgZ2V0TnVtYmVyT2ZDaGFycygpOworICBmbG9hdCBnZXRDb21wdXRlZFRleHRMZW5ndGgo
KTsKKyAgZmxvYXQgZ2V0U3ViU3RyaW5nTGVuZ3RoKHVuc2lnbmVkIGxvbmcgY2hhcm51bSwgdW5z
aWduZWQgbG9uZyBuY2hhcnMpOworICBET01Qb2ludCBnZXRTdGFydFBvc2l0aW9uT2ZDaGFyKHVu
c2lnbmVkIGxvbmcgY2hhcm51bSk7CisgIERPTVBvaW50IGdldEVuZFBvc2l0aW9uT2ZDaGFyKHVu
c2lnbmVkIGxvbmcgY2hhcm51bSk7CisgIERPTVJlY3QgZ2V0RXh0ZW50T2ZDaGFyKHVuc2lnbmVk
IGxvbmcgY2hhcm51bSk7CisgIGZsb2F0IGdldFJvdGF0aW9uT2ZDaGFyKHVuc2lnbmVkIGxvbmcg
Y2hhcm51bSk7CisgIGxvbmcgZ2V0Q2hhck51bUF0UG9zaXRpb24ob3B0aW9uYWwgRE9NUG9pbnRJ
bml0IHBvaW50KTsKKyAgdm9pZCBzZWxlY3RTdWJTdHJpbmcodW5zaWduZWQgbG9uZyBjaGFybnVt
LCB1bnNpZ25lZCBsb25nIG5jaGFycyk7Cit9OworCitbRXhwb3NlZD1XaW5kb3ddCitpbnRlcmZh
Y2UgU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudCA6IFNWR1RleHRDb250ZW50RWxlbWVudCB7Cisg
IFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0IHg7
CisgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0
IHk7CisgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRMZW5ndGhM
aXN0IGR4OworICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTGVu
Z3RoTGlzdCBkeTsKKyAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRl
ZE51bWJlckxpc3Qgcm90YXRlOworfTsKKworW0V4cG9zZWQ9V2luZG93XQoraW50ZXJmYWNlIFNW
R1RleHRFbGVtZW50IDogU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudCB7Cit9OworCitbRXhwb3Nl
ZD1XaW5kb3ddCitpbnRlcmZhY2UgU1ZHVFNwYW5FbGVtZW50IDogU1ZHVGV4dFBvc2l0aW9uaW5n
RWxlbWVudCB7Cit9OworCitbRXhwb3NlZD1XaW5kb3ddCitpbnRlcmZhY2UgU1ZHVGV4dFBhdGhF
bGVtZW50IDogU1ZHVGV4dENvbnRlbnRFbGVtZW50IHsKKworICAvLyB0ZXh0UGF0aCBNZXRob2Qg
VHlwZXMKKyAgY29uc3QgdW5zaWduZWQgc2hvcnQgVEVYVFBBVEhfTUVUSE9EVFlQRV9VTktOT1dO
ID0gMDsKKyAgY29uc3QgdW5zaWduZWQgc2hvcnQgVEVYVFBBVEhfTUVUSE9EVFlQRV9BTElHTiA9
IDE7CisgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFRFWFRQQVRIX01FVEhPRFRZUEVfU1RSRVRDSCA9
IDI7CisKKyAgLy8gdGV4dFBhdGggU3BhY2luZyBUeXBlcworICBjb25zdCB1bnNpZ25lZCBzaG9y
dCBURVhUUEFUSF9TUEFDSU5HVFlQRV9VTktOT1dOID0gMDsKKyAgY29uc3QgdW5zaWduZWQgc2hv
cnQgVEVYVFBBVEhfU1BBQ0lOR1RZUEVfQVVUTyA9IDE7CisgIGNvbnN0IHVuc2lnbmVkIHNob3J0
IFRFWFRQQVRIX1NQQUNJTkdUWVBFX0VYQUNUID0gMjsKKworICBbU2FtZU9iamVjdF0gcmVhZG9u
bHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTGVuZ3RoIHN0YXJ0T2Zmc2V0OworICBbU2FtZU9iamVj
dF0gcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkRW51bWVyYXRpb24gbWV0aG9kOworICBb
U2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkRW51bWVyYXRpb24gc3Bh
Y2luZzsKK307CisKK1NWR1RleHRQYXRoRWxlbWVudCBpbmNsdWRlcyBTVkdVUklSZWZlcmVuY2U7
CisKK1tFeHBvc2VkPVdpbmRvd10KK2ludGVyZmFjZSBTVkdJbWFnZUVsZW1lbnQgOiBTVkdHcmFw
aGljc0VsZW1lbnQgeworICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1h
dGVkTGVuZ3RoIHg7CisgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0
ZWRMZW5ndGggeTsKKyAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRl
ZExlbmd0aCB3aWR0aDsKKyAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmlt
YXRlZExlbmd0aCBoZWlnaHQ7CisgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgU1ZH
QW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvIHByZXNlcnZlQXNwZWN0UmF0aW87CisgIGF0dHJp
YnV0ZSBET01TdHJpbmc/IGNyb3NzT3JpZ2luOworfTsKKworU1ZHSW1hZ2VFbGVtZW50IGluY2x1
ZGVzIFNWR1VSSVJlZmVyZW5jZTsKKworW0V4cG9zZWQ9V2luZG93XQoraW50ZXJmYWNlIFNWR0Zv
cmVpZ25PYmplY3RFbGVtZW50IDogU1ZHR3JhcGhpY3NFbGVtZW50IHsKKyAgW1NhbWVPYmplY3Rd
IHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZExlbmd0aCB4OworICBbU2FtZU9iamVjdF0g
cmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTGVuZ3RoIHk7CisgIFtTYW1lT2JqZWN0XSBy
ZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRMZW5ndGggd2lkdGg7CisgIFtTYW1lT2JqZWN0
XSByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRMZW5ndGggaGVpZ2h0OworfTsKKworW0V4
cG9zZWQ9V2luZG93XQoraW50ZXJmYWNlIFNWR01hcmtlckVsZW1lbnQgOiBTVkdFbGVtZW50IHsK
KworICAvLyBNYXJrZXIgVW5pdCBUeXBlcworICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfTUFS
S0VSVU5JVFNfVU5LTk9XTiA9IDA7CisgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19NQVJLRVJV
TklUU19VU0VSU1BBQ0VPTlVTRSA9IDE7CisgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19NQVJL
RVJVTklUU19TVFJPS0VXSURUSCA9IDI7CisKKyAgLy8gTWFya2VyIE9yaWVudGF0aW9uIFR5cGVz
CisgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19NQVJLRVJfT1JJRU5UX1VOS05PV04gPSAwOwor
ICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfTUFSS0VSX09SSUVOVF9BVVRPID0gMTsKKyAgY29u
c3QgdW5zaWduZWQgc2hvcnQgU1ZHX01BUktFUl9PUklFTlRfQU5HTEUgPSAyOworCisgIFtTYW1l
T2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRMZW5ndGggcmVmWDsKKyAgW1Nh
bWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZExlbmd0aCByZWZZOworICBb
U2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkRW51bWVyYXRpb24gbWFy
a2VyVW5pdHM7CisgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRM
ZW5ndGggbWFya2VyV2lkdGg7CisgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgU1ZH
QW5pbWF0ZWRMZW5ndGggbWFya2VySGVpZ2h0OworICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0
cmlidXRlIFNWR0FuaW1hdGVkRW51bWVyYXRpb24gb3JpZW50VHlwZTsKKyAgW1NhbWVPYmplY3Rd
IHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZEFuZ2xlIG9yaWVudEFuZ2xlOworICBhdHRy
aWJ1dGUgRE9NU3RyaW5nIG9yaWVudDsKKworICB2b2lkIHNldE9yaWVudFRvQXV0bygpOworICB2
b2lkIHNldE9yaWVudFRvQW5nbGUoU1ZHQW5nbGUgYW5nbGUpOworfTsKKworU1ZHTWFya2VyRWxl
bWVudCBpbmNsdWRlcyBTVkdGaXRUb1ZpZXdCb3g7CisKK1tFeHBvc2VkPVdpbmRvd10KK2ludGVy
ZmFjZSBTVkdHcmFkaWVudEVsZW1lbnQgOiBTVkdFbGVtZW50IHsKKworICAvLyBTcHJlYWQgTWV0
aG9kIFR5cGVzCisgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19TUFJFQURNRVRIT0RfVU5LTk9X
TiA9IDA7CisgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19TUFJFQURNRVRIT0RfUEFEID0gMTsK
KyAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX1NQUkVBRE1FVEhPRF9SRUZMRUNUID0gMjsKKyAg
Y29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX1NQUkVBRE1FVEhPRF9SRVBFQVQgPSAzOworCisgIFtT
YW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbiBncmFk
aWVudFVuaXRzOworICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVk
VHJhbnNmb3JtTGlzdCBncmFkaWVudFRyYW5zZm9ybTsKKyAgW1NhbWVPYmplY3RdIHJlYWRvbmx5
IGF0dHJpYnV0ZSBTVkdBbmltYXRlZEVudW1lcmF0aW9uIHNwcmVhZE1ldGhvZDsKK307CisKK1NW
R0dyYWRpZW50RWxlbWVudCBpbmNsdWRlcyBTVkdVUklSZWZlcmVuY2U7CisKK1tFeHBvc2VkPVdp
bmRvd10KK2ludGVyZmFjZSBTVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQgOiBTVkdHcmFkaWVudEVs
ZW1lbnQgeworICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTGVu
Z3RoIHgxOworICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTGVu
Z3RoIHkxOworICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTGVu
Z3RoIHgyOworICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTGVu
Z3RoIHkyOworfTsKKworW0V4cG9zZWQ9V2luZG93XQoraW50ZXJmYWNlIFNWR1JhZGlhbEdyYWRp
ZW50RWxlbWVudCA6IFNWR0dyYWRpZW50RWxlbWVudCB7CisgIFtTYW1lT2JqZWN0XSByZWFkb25s
eSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRMZW5ndGggY3g7CisgIFtTYW1lT2JqZWN0XSByZWFkb25s
eSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRMZW5ndGggY3k7CisgIFtTYW1lT2JqZWN0XSByZWFkb25s
eSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRMZW5ndGggcjsKKyAgW1NhbWVPYmplY3RdIHJlYWRvbmx5
IGF0dHJpYnV0ZSBTVkdBbmltYXRlZExlbmd0aCBmeDsKKyAgW1NhbWVPYmplY3RdIHJlYWRvbmx5
IGF0dHJpYnV0ZSBTVkdBbmltYXRlZExlbmd0aCBmeTsKKyAgW1NhbWVPYmplY3RdIHJlYWRvbmx5
IGF0dHJpYnV0ZSBTVkdBbmltYXRlZExlbmd0aCBmcjsKK307CisKK1tFeHBvc2VkPVdpbmRvd10K
K2ludGVyZmFjZSBTVkdTdG9wRWxlbWVudCA6IFNWR0VsZW1lbnQgeworICBbU2FtZU9iamVjdF0g
cmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTnVtYmVyIG9mZnNldDsKK307CisKK1tFeHBv
c2VkPVdpbmRvd10KK2ludGVyZmFjZSBTVkdQYXR0ZXJuRWxlbWVudCA6IFNWR0VsZW1lbnQgewor
ICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkRW51bWVyYXRpb24g
cGF0dGVyblVuaXRzOworICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1h
dGVkRW51bWVyYXRpb24gcGF0dGVybkNvbnRlbnRVbml0czsKKyAgW1NhbWVPYmplY3RdIHJlYWRv
bmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3QgcGF0dGVyblRyYW5zZm9ybTsK
KyAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZExlbmd0aCB4Owor
ICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTGVuZ3RoIHk7Cisg
IFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRMZW5ndGggd2lkdGg7
CisgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRMZW5ndGggaGVp
Z2h0OworfTsKKworU1ZHUGF0dGVybkVsZW1lbnQgaW5jbHVkZXMgU1ZHRml0VG9WaWV3Qm94Owor
U1ZHUGF0dGVybkVsZW1lbnQgaW5jbHVkZXMgU1ZHVVJJUmVmZXJlbmNlOworCitbRXhwb3NlZD1X
aW5kb3ddCitpbnRlcmZhY2UgU1ZHU2NyaXB0RWxlbWVudCA6IFNWR0VsZW1lbnQgeworICBhdHRy
aWJ1dGUgRE9NU3RyaW5nIHR5cGU7CisgIGF0dHJpYnV0ZSBET01TdHJpbmc/IGNyb3NzT3JpZ2lu
OworfTsKKworU1ZHU2NyaXB0RWxlbWVudCBpbmNsdWRlcyBTVkdVUklSZWZlcmVuY2U7CisKK1tF
eHBvc2VkPVdpbmRvd10KK2ludGVyZmFjZSBTVkdBRWxlbWVudCA6IFNWR0dyYXBoaWNzRWxlbWVu
dCB7CisgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRTdHJpbmcg
dGFyZ2V0OworICBhdHRyaWJ1dGUgRE9NU3RyaW5nIGRvd25sb2FkOworICBhdHRyaWJ1dGUgVVNW
U3RyaW5nIHBpbmc7CisgIGF0dHJpYnV0ZSBET01TdHJpbmcgcmVsOworICBbU2FtZU9iamVjdCwg
UHV0Rm9yd2FyZHM9dmFsdWVdIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01Ub2tlbkxpc3QgcmVsTGlz
dDsKKyAgYXR0cmlidXRlIERPTVN0cmluZyBocmVmbGFuZzsKKyAgYXR0cmlidXRlIERPTVN0cmlu
ZyB0eXBlOworCisgIGF0dHJpYnV0ZSBET01TdHJpbmcgdGV4dDsKKworICBhdHRyaWJ1dGUgRE9N
U3RyaW5nIHJlZmVycmVyUG9saWN5OworfTsKKworU1ZHQUVsZW1lbnQgaW5jbHVkZXMgU1ZHVVJJ
UmVmZXJlbmNlOworU1ZHQUVsZW1lbnQgaW5jbHVkZXMgSFRNTEh5cGVybGlua0VsZW1lbnRVdGls
czsKKworW0V4cG9zZWQ9V2luZG93XQoraW50ZXJmYWNlIFNWR1ZpZXdFbGVtZW50IDogU1ZHRWxl
bWVudCB7fTsKKworU1ZHVmlld0VsZW1lbnQgaW5jbHVkZXMgU1ZHRml0VG9WaWV3Qm94OwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbnRl
cmZhY2VzL2NyZWRlbnRpYWwtbWFuYWdlbWVudC5pZGwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ludGVyZmFjZXMvY3JlZGVudGlhbC1tYW5hZ2VtZW50Lmlk
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5kYTFiOWRmY2E2OTA5ZWFiMWUzYzdmZDVlMTZmMTM5MWQ2OWY5ZGNiCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9pbnRlcmZhY2VzL2NyZWRlbnRpYWwtbWFuYWdlbWVudC5pZGwKQEAgLTAsMCArMSwxMDMg
QEAKKy8vIEdFTkVSQVRFRCBDT05URU5UIC0gRE8gTk9UIEVESVQKKy8vIENvbnRlbnQgd2FzIGF1
dG9tYXRpY2FsbHkgZXh0cmFjdGVkIGJ5IFJlZmZ5IGludG8gcmVmZnktcmVwb3J0cworLy8gKGh0
dHBzOi8vZ2l0aHViLmNvbS90aWRvdXN0L3JlZmZ5LXJlcG9ydHMpCisvLyBTb3VyY2U6IENyZWRl
bnRpYWwgTWFuYWdlbWVudCBMZXZlbCAxIChodHRwczovL3czYy5naXRodWIuaW8vd2ViYXBwc2Vj
LWNyZWRlbnRpYWwtbWFuYWdlbWVudC8pCisKK1tFeHBvc2VkPVdpbmRvdywgU2VjdXJlQ29udGV4
dF0KK2ludGVyZmFjZSBDcmVkZW50aWFsIHsKKyAgcmVhZG9ubHkgYXR0cmlidXRlIFVTVlN0cmlu
ZyBpZDsKKyAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyB0eXBlOworfTsKKworW1NlY3Vy
ZUNvbnRleHRdCitpbnRlcmZhY2UgbWl4aW4gQ3JlZGVudGlhbFVzZXJEYXRhIHsKKyAgcmVhZG9u
bHkgYXR0cmlidXRlIFVTVlN0cmluZyBuYW1lOworICByZWFkb25seSBhdHRyaWJ1dGUgVVNWU3Ry
aW5nIGljb25VUkw7Cit9OworCitwYXJ0aWFsIGludGVyZmFjZSBOYXZpZ2F0b3IgeworICBbU2Vj
dXJlQ29udGV4dCwgU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIENyZWRlbnRpYWxzQ29u
dGFpbmVyIGNyZWRlbnRpYWxzOworfTsKKworW0V4cG9zZWQ9V2luZG93LCBTZWN1cmVDb250ZXh0
XQoraW50ZXJmYWNlIENyZWRlbnRpYWxzQ29udGFpbmVyIHsKKyAgUHJvbWlzZTxDcmVkZW50aWFs
Pz4gZ2V0KG9wdGlvbmFsIENyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucyBvcHRpb25zKTsKKyAgUHJv
bWlzZTxDcmVkZW50aWFsPiBzdG9yZShDcmVkZW50aWFsIGNyZWRlbnRpYWwpOworICBQcm9taXNl
PENyZWRlbnRpYWw/PiBjcmVhdGUob3B0aW9uYWwgQ3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucyBv
cHRpb25zKTsKKyAgUHJvbWlzZTx2b2lkPiBwcmV2ZW50U2lsZW50QWNjZXNzKCk7Cit9OworCitk
aWN0aW9uYXJ5IENyZWRlbnRpYWxEYXRhIHsKKyAgcmVxdWlyZWQgVVNWU3RyaW5nIGlkOworfTsK
KworZGljdGlvbmFyeSBDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMgeworICBDcmVkZW50aWFsTWVk
aWF0aW9uUmVxdWlyZW1lbnQgbWVkaWF0aW9uID0gIm9wdGlvbmFsIjsKKyAgQWJvcnRTaWduYWwg
c2lnbmFsOworfTsKKworZW51bSBDcmVkZW50aWFsTWVkaWF0aW9uUmVxdWlyZW1lbnQgeworICAi
c2lsZW50IiwKKyAgIm9wdGlvbmFsIiwKKyAgInJlcXVpcmVkIgorfTsKKworZGljdGlvbmFyeSBD
cmVkZW50aWFsQ3JlYXRpb25PcHRpb25zIHsKKyAgQWJvcnRTaWduYWwgc2lnbmFsOworfTsKKwor
W0NvbnN0cnVjdG9yKEhUTUxGb3JtRWxlbWVudCBmb3JtKSwKKyBDb25zdHJ1Y3RvcihQYXNzd29y
ZENyZWRlbnRpYWxEYXRhIGRhdGEpLAorIEV4cG9zZWQ9V2luZG93LAorIFNlY3VyZUNvbnRleHRd
CitpbnRlcmZhY2UgUGFzc3dvcmRDcmVkZW50aWFsIDogQ3JlZGVudGlhbCB7CisgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBVU1ZTdHJpbmcgcGFzc3dvcmQ7Cit9OworUGFzc3dvcmRDcmVkZW50aWFsIGlu
Y2x1ZGVzIENyZWRlbnRpYWxVc2VyRGF0YTsKKworcGFydGlhbCBkaWN0aW9uYXJ5IENyZWRlbnRp
YWxSZXF1ZXN0T3B0aW9ucyB7CisgIGJvb2xlYW4gcGFzc3dvcmQgPSBmYWxzZTsKK307CisKK2Rp
Y3Rpb25hcnkgUGFzc3dvcmRDcmVkZW50aWFsRGF0YSA6IENyZWRlbnRpYWxEYXRhIHsKKyAgVVNW
U3RyaW5nIG5hbWU7CisgIFVTVlN0cmluZyBpY29uVVJMOworICByZXF1aXJlZCBVU1ZTdHJpbmcg
b3JpZ2luOworICByZXF1aXJlZCBVU1ZTdHJpbmcgcGFzc3dvcmQ7Cit9OworCit0eXBlZGVmIChQ
YXNzd29yZENyZWRlbnRpYWxEYXRhIG9yIEhUTUxGb3JtRWxlbWVudCkgUGFzc3dvcmRDcmVkZW50
aWFsSW5pdDsKKworcGFydGlhbCBkaWN0aW9uYXJ5IENyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMg
eworICBQYXNzd29yZENyZWRlbnRpYWxJbml0IHBhc3N3b3JkOworfTsKKworW0NvbnN0cnVjdG9y
KEZlZGVyYXRlZENyZWRlbnRpYWxJbml0IGRhdGEpLAorIEV4cG9zZWQ9V2luZG93LAorIFNlY3Vy
ZUNvbnRleHRdCitpbnRlcmZhY2UgRmVkZXJhdGVkQ3JlZGVudGlhbCA6IENyZWRlbnRpYWwgewor
ICByZWFkb25seSBhdHRyaWJ1dGUgVVNWU3RyaW5nIHByb3ZpZGVyOworICByZWFkb25seSBhdHRy
aWJ1dGUgRE9NU3RyaW5nPyBwcm90b2NvbDsKK307CitGZWRlcmF0ZWRDcmVkZW50aWFsIGluY2x1
ZGVzIENyZWRlbnRpYWxVc2VyRGF0YTsKKworZGljdGlvbmFyeSBGZWRlcmF0ZWRDcmVkZW50aWFs
UmVxdWVzdE9wdGlvbnMgeworICBzZXF1ZW5jZTxVU1ZTdHJpbmc+IHByb3ZpZGVyczsKKyAgc2Vx
dWVuY2U8RE9NU3RyaW5nPiBwcm90b2NvbHM7Cit9OworCitwYXJ0aWFsIGRpY3Rpb25hcnkgQ3Jl
ZGVudGlhbFJlcXVlc3RPcHRpb25zIHsKKyAgRmVkZXJhdGVkQ3JlZGVudGlhbFJlcXVlc3RPcHRp
b25zIGZlZGVyYXRlZDsKK307CisKK2RpY3Rpb25hcnkgRmVkZXJhdGVkQ3JlZGVudGlhbEluaXQg
OiBDcmVkZW50aWFsRGF0YSB7CisgIFVTVlN0cmluZyBuYW1lOworICBVU1ZTdHJpbmcgaWNvblVS
TDsKKyAgcmVxdWlyZWQgVVNWU3RyaW5nIG9yaWdpbjsKKyAgcmVxdWlyZWQgVVNWU3RyaW5nIHBy
b3ZpZGVyOworICBET01TdHJpbmcgcHJvdG9jb2w7Cit9OworCitwYXJ0aWFsIGRpY3Rpb25hcnkg
Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucyB7CisgIEZlZGVyYXRlZENyZWRlbnRpYWxJbml0IGZl
ZGVyYXRlZDsKK307CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2ludGVyZmFjZXMvY3NzLXByb3BlcnRpZXMtdmFsdWVzLWFwaS5pZGwgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ludGVyZmFjZXMvY3Nz
LXByb3BlcnRpZXMtdmFsdWVzLWFwaS5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDhmNTRiMWUxNWJjMDIwZWYx
MDFhYjUzNjI2ZWVlNjk4NWM2M2RjYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW50ZXJmYWNlcy9jc3MtcHJvcGVydGllcy12
YWx1ZXMtYXBpLmlkbApAQCAtMCwwICsxLDIzIEBACisvLyBHRU5FUkFURUQgQ09OVEVOVCAtIERP
IE5PVCBFRElUCisvLyBDb250ZW50IHdhcyBhdXRvbWF0aWNhbGx5IGV4dHJhY3RlZCBieSBSZWZm
eSBpbnRvIHJlZmZ5LXJlcG9ydHMKKy8vIChodHRwczovL2dpdGh1Yi5jb20vdGlkb3VzdC9yZWZm
eS1yZXBvcnRzKQorLy8gU291cmNlOiBDU1MgUHJvcGVydGllcyBhbmQgVmFsdWVzIEFQSSBMZXZl
bCAxIChodHRwczovL2RyYWZ0cy5jc3MtaG91ZGluaS5vcmcvY3NzLXByb3BlcnRpZXMtdmFsdWVz
LWFwaS0xLykKKworZGljdGlvbmFyeSBQcm9wZXJ0eURlZmluaXRpb24geworICByZXF1aXJlZCBE
T01TdHJpbmcgbmFtZTsKKyAgICAgICAgICAgRE9NU3RyaW5nIHN5bnRheCAgICAgICA9ICIqIjsK
KyAgcmVxdWlyZWQgYm9vbGVhbiAgIGluaGVyaXRzOworICAgICAgICAgICBET01TdHJpbmcgaW5p
dGlhbFZhbHVlOworfTsKKworcGFydGlhbCBuYW1lc3BhY2UgQ1NTIHsKKyAgdm9pZCByZWdpc3Rl
clByb3BlcnR5KFByb3BlcnR5RGVmaW5pdGlvbiBkZWZpbml0aW9uKTsKK307CisKK1tFeHBvc2Vk
PVdpbmRvd10KK2ludGVyZmFjZSBDU1NQcm9wZXJ0eVJ1bGUgOiBDU1NSdWxlIHsKKyAgICByZWFk
b25seSBhdHRyaWJ1dGUgQ1NTT01TdHJpbmcgbmFtZTsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUg
Q1NTT01TdHJpbmcgc3ludGF4OworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIGluaGVy
aXRzOworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBDU1NPTVN0cmluZz8gaW5pdGlhbFZhbHVlOwor
fTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvaW50ZXJmYWNlcy9jc3MtcHNldWRvLmlkbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaW50ZXJmYWNlcy9jc3MtcHNldWRvLmlkbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4y
YjU1N2U2NTMxNjM4NjNmZWZmYTA1ZDNmNGE0ZTk2MTE0MmFhOTQ0Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbnRlcmZhY2Vz
L2Nzcy1wc2V1ZG8uaWRsCkBAIC0wLDAgKzEsMTQgQEAKKy8vIEdFTkVSQVRFRCBDT05URU5UIC0g
RE8gTk9UIEVESVQKKy8vIENvbnRlbnQgd2FzIGF1dG9tYXRpY2FsbHkgZXh0cmFjdGVkIGJ5IFJl
ZmZ5IGludG8gcmVmZnktcmVwb3J0cworLy8gKGh0dHBzOi8vZ2l0aHViLmNvbS90aWRvdXN0L3Jl
ZmZ5LXJlcG9ydHMpCisvLyBTb3VyY2U6IENTUyBQc2V1ZG8tRWxlbWVudHMgTW9kdWxlIExldmVs
IDQgKGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3MtcHNldWRvLTQvKQorCitbRXhwb3NlZD1X
aW5kb3ddCitpbnRlcmZhY2UgQ1NTUHNldWRvRWxlbWVudCA6IEV2ZW50VGFyZ2V0IHsKKyAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgQ1NTT01TdHJpbmcgdHlwZTsKKyAgICByZWFkb25seSBhdHRyaWJ1
dGUgRWxlbWVudCBlbGVtZW50OworfTsKKworcGFydGlhbCBpbnRlcmZhY2UgRWxlbWVudCB7Cisg
IENTU1BzZXVkb0VsZW1lbnQ/IHBzZXVkbyhDU1NPTVN0cmluZyB0eXBlKTsKK307CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ludGVyZmFj
ZXMvY3Nzb20tdmlldy5pZGwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ludGVyZmFjZXMvY3Nzb20tdmlldy5pZGwKaW5kZXggNGE3MGNiOTk3OTU5N2E3ZGQ1
MTA4YWRmNGFiZjljNWZhMDgxMjM4MC4uNWQzMGVkZTFlNDBkZWJjNTZhYjcxYmE1OGE3ZGRlYzBi
YTViNDBjZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9pbnRlcmZhY2VzL2Nzc29tLXZpZXcuaWRsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW50ZXJmYWNlcy9jc3NvbS12aWV3LmlkbApAQCAt
MSw0ICsxLDkgQEAKLWVudW0gU2Nyb2xsQmVoYXZpb3IgeyAiYXV0byIsICJpbnN0YW50IiwgInNt
b290aCIgfTsKKy8vIEdFTkVSQVRFRCBDT05URU5UIC0gRE8gTk9UIEVESVQKKy8vIENvbnRlbnQg
d2FzIGF1dG9tYXRpY2FsbHkgZXh0cmFjdGVkIGJ5IFJlZmZ5IGludG8gcmVmZnktcmVwb3J0cwor
Ly8gKGh0dHBzOi8vZ2l0aHViLmNvbS90aWRvdXN0L3JlZmZ5LXJlcG9ydHMpCisvLyBTb3VyY2U6
IENTU09NIFZpZXcgTW9kdWxlIChodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmlldy8p
CisKK2VudW0gU2Nyb2xsQmVoYXZpb3IgeyAiYXV0byIsICJzbW9vdGgiIH07CiAKIGRpY3Rpb25h
cnkgU2Nyb2xsT3B0aW9ucyB7CiAgICAgU2Nyb2xsQmVoYXZpb3IgYmVoYXZpb3IgPSAiYXV0byI7
CkBAIC0yNywxNiArMzIsMTggQEAgcGFydGlhbCBpbnRlcmZhY2UgV2luZG93IHsKICAgICBbUmVw
bGFjZWFibGVdIHJlYWRvbmx5IGF0dHJpYnV0ZSBkb3VibGUgcGFnZVhPZmZzZXQ7CiAgICAgW1Jl
cGxhY2VhYmxlXSByZWFkb25seSBhdHRyaWJ1dGUgZG91YmxlIHNjcm9sbFk7CiAgICAgW1JlcGxh
Y2VhYmxlXSByZWFkb25seSBhdHRyaWJ1dGUgZG91YmxlIHBhZ2VZT2Zmc2V0OwotICAgIHZvaWQg
c2Nyb2xsKG9wdGlvbmFsIFNjcm9sbFRvT3B0aW9ucyBvcHRpb25zKTsKKyAgICB2b2lkIHNjcm9s
bChvcHRpb25hbCBTY3JvbGxUb09wdGlvbnMgb3B0aW9ucyA9IHt9KTsKICAgICB2b2lkIHNjcm9s
bCh1bnJlc3RyaWN0ZWQgZG91YmxlIHgsIHVucmVzdHJpY3RlZCBkb3VibGUgeSk7Ci0gICAgdm9p
ZCBzY3JvbGxUbyhvcHRpb25hbCBTY3JvbGxUb09wdGlvbnMgb3B0aW9ucyk7CisgICAgdm9pZCBz
Y3JvbGxUbyhvcHRpb25hbCBTY3JvbGxUb09wdGlvbnMgb3B0aW9ucyA9IHt9KTsKICAgICB2b2lk
IHNjcm9sbFRvKHVucmVzdHJpY3RlZCBkb3VibGUgeCwgdW5yZXN0cmljdGVkIGRvdWJsZSB5KTsK
LSAgICB2b2lkIHNjcm9sbEJ5KG9wdGlvbmFsIFNjcm9sbFRvT3B0aW9ucyBvcHRpb25zKTsKKyAg
ICB2b2lkIHNjcm9sbEJ5KG9wdGlvbmFsIFNjcm9sbFRvT3B0aW9ucyBvcHRpb25zID0ge30pOwog
ICAgIHZvaWQgc2Nyb2xsQnkodW5yZXN0cmljdGVkIGRvdWJsZSB4LCB1bnJlc3RyaWN0ZWQgZG91
YmxlIHkpOwogCiAgICAgLy8gY2xpZW50CiAgICAgW1JlcGxhY2VhYmxlXSByZWFkb25seSBhdHRy
aWJ1dGUgbG9uZyBzY3JlZW5YOworICAgIFtSZXBsYWNlYWJsZV0gcmVhZG9ubHkgYXR0cmlidXRl
IGxvbmcgc2NyZWVuTGVmdDsKICAgICBbUmVwbGFjZWFibGVdIHJlYWRvbmx5IGF0dHJpYnV0ZSBs
b25nIHNjcmVlblk7CisgICAgW1JlcGxhY2VhYmxlXSByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyBz
Y3JlZW5Ub3A7CiAgICAgW1JlcGxhY2VhYmxlXSByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyBvdXRl
cldpZHRoOwogICAgIFtSZXBsYWNlYWJsZV0gcmVhZG9ubHkgYXR0cmlidXRlIGxvbmcgb3V0ZXJI
ZWlnaHQ7CiAgICAgW1JlcGxhY2VhYmxlXSByZWFkb25seSBhdHRyaWJ1dGUgZG91YmxlIGRldmlj
ZVBpeGVsUmF0aW87CkBAIC01Miw3ICs1OSw3IEBAIGludGVyZmFjZSBNZWRpYVF1ZXJ5TGlzdCA6
IEV2ZW50VGFyZ2V0IHsKIH07CiAKIFtFeHBvc2VkPVdpbmRvdywKLSBDb25zdHJ1Y3RvcihDU1NP
TVN0cmluZyB0eXBlLCBvcHRpb25hbCBNZWRpYVF1ZXJ5TGlzdEV2ZW50SW5pdCBldmVudEluaXRE
aWN0KV0KKyBDb25zdHJ1Y3RvcihDU1NPTVN0cmluZyB0eXBlLCBvcHRpb25hbCBNZWRpYVF1ZXJ5
TGlzdEV2ZW50SW5pdCBldmVudEluaXREaWN0ID0ge30pXQogaW50ZXJmYWNlIE1lZGlhUXVlcnlM
aXN0RXZlbnQgOiBFdmVudCB7CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBDU1NPTVN0cmluZyBtZWRp
YTsKICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gbWF0Y2hlczsKQEAgLTk2LDEyICsxMDMs
MTIgQEAgZGljdGlvbmFyeSBTY3JvbGxJbnRvVmlld09wdGlvbnMgOiBTY3JvbGxPcHRpb25zIHsK
IHBhcnRpYWwgaW50ZXJmYWNlIEVsZW1lbnQgewogICBET01SZWN0TGlzdCBnZXRDbGllbnRSZWN0
cygpOwogICBbTmV3T2JqZWN0XSBET01SZWN0IGdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwotICB2
b2lkIHNjcm9sbEludG9WaWV3KG9wdGlvbmFsIChib29sZWFuIG9yIFNjcm9sbEludG9WaWV3T3B0
aW9ucykgYXJnKTsKLSAgdm9pZCBzY3JvbGwob3B0aW9uYWwgU2Nyb2xsVG9PcHRpb25zIG9wdGlv
bnMpOworICB2b2lkIHNjcm9sbEludG9WaWV3KG9wdGlvbmFsIChib29sZWFuIG9yIFNjcm9sbElu
dG9WaWV3T3B0aW9ucykgYXJnID0ge30pOworICB2b2lkIHNjcm9sbChvcHRpb25hbCBTY3JvbGxU
b09wdGlvbnMgb3B0aW9ucyA9IHt9KTsKICAgdm9pZCBzY3JvbGwodW5yZXN0cmljdGVkIGRvdWJs
ZSB4LCB1bnJlc3RyaWN0ZWQgZG91YmxlIHkpOwotICB2b2lkIHNjcm9sbFRvKG9wdGlvbmFsIFNj
cm9sbFRvT3B0aW9ucyBvcHRpb25zKTsKKyAgdm9pZCBzY3JvbGxUbyhvcHRpb25hbCBTY3JvbGxU
b09wdGlvbnMgb3B0aW9ucyA9IHt9KTsKICAgdm9pZCBzY3JvbGxUbyh1bnJlc3RyaWN0ZWQgZG91
YmxlIHgsIHVucmVzdHJpY3RlZCBkb3VibGUgeSk7Ci0gIHZvaWQgc2Nyb2xsQnkob3B0aW9uYWwg
U2Nyb2xsVG9PcHRpb25zIG9wdGlvbnMpOworICB2b2lkIHNjcm9sbEJ5KG9wdGlvbmFsIFNjcm9s
bFRvT3B0aW9ucyBvcHRpb25zID0ge30pOwogICB2b2lkIHNjcm9sbEJ5KHVucmVzdHJpY3RlZCBk
b3VibGUgeCwgdW5yZXN0cmljdGVkIGRvdWJsZSB5KTsKICAgYXR0cmlidXRlIHVucmVzdHJpY3Rl
ZCBkb3VibGUgc2Nyb2xsVG9wOwogICBhdHRyaWJ1dGUgdW5yZXN0cmljdGVkIGRvdWJsZSBzY3Jv
bGxMZWZ0OwpAQCAtMTMxLDcgKzEzOCw2IEBAIHBhcnRpYWwgaW50ZXJmYWNlIFJhbmdlIHsKICAg
W05ld09iamVjdF0gRE9NUmVjdCBnZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKIH07CiAKLS8qIFRP
RE8gVGhpcyBpcyBjb21tZW50ZWQgb3V0IGJlY2F1c2U6ICJQYXJ0aWFsIGludGVyZmFjZSBNb3Vz
ZUV2ZW50IHdpdGggbm8gb3JpZ2luYWwgaW50ZXJmYWNlIgogcGFydGlhbCBpbnRlcmZhY2UgTW91
c2VFdmVudCB7CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBkb3VibGUgc2NyZWVuWDsKICAgcmVhZG9u
bHkgYXR0cmlidXRlIGRvdWJsZSBzY3JlZW5ZOwpAQCAtMTUxLDcgKzE1Nyw2IEBAIHBhcnRpYWwg
ZGljdGlvbmFyeSBNb3VzZUV2ZW50SW5pdCB7CiAgIGRvdWJsZSBjbGllbnRYID0gMC4wOwogICBk
b3VibGUgY2xpZW50WSA9IDAuMDsKIH07Ci0qLwogCiBlbnVtIENTU0JveFR5cGUgeyAibWFyZ2lu
IiwgImJvcmRlciIsICJwYWRkaW5nIiwgImNvbnRlbnQiIH07CiBkaWN0aW9uYXJ5IEJveFF1YWRP
cHRpb25zIHsKQEAgLTE2NCwyMCArMTY5LDE2IEBAIGRpY3Rpb25hcnkgQ29udmVydENvb3JkaW5h
dGVPcHRpb25zIHsKICAgQ1NTQm94VHlwZSB0b0JveCA9ICJib3JkZXIiOwogfTsKIAotW0V4cG9z
ZWQ9V2luZG93LAotIE5vSW50ZXJmYWNlT2JqZWN0XQotaW50ZXJmYWNlIEdlb21ldHJ5VXRpbHMg
ewotICBzZXF1ZW5jZTxET01RdWFkPiBnZXRCb3hRdWFkcyhvcHRpb25hbCBCb3hRdWFkT3B0aW9u
cyBvcHRpb25zKTsKLSAgRE9NUXVhZCBjb252ZXJ0UXVhZEZyb21Ob2RlKERPTVF1YWRJbml0IHF1
YWQsIEdlb21ldHJ5Tm9kZSBmcm9tLCBvcHRpb25hbCBDb252ZXJ0Q29vcmRpbmF0ZU9wdGlvbnMg
b3B0aW9ucyk7Ci0gIERPTVF1YWQgY29udmVydFJlY3RGcm9tTm9kZShET01SZWN0UmVhZE9ubHkg
cmVjdCwgR2VvbWV0cnlOb2RlIGZyb20sIG9wdGlvbmFsIENvbnZlcnRDb29yZGluYXRlT3B0aW9u
cyBvcHRpb25zKTsKLSAgRE9NUG9pbnQgY29udmVydFBvaW50RnJvbU5vZGUoRE9NUG9pbnRJbml0
IHBvaW50LCBHZW9tZXRyeU5vZGUgZnJvbSwgb3B0aW9uYWwgQ29udmVydENvb3JkaW5hdGVPcHRp
b25zIG9wdGlvbnMpOyAvLyBYWFggeix3IHR1cm5zIGludG8gMAotfTsKLQotVGV4dCBpbXBsZW1l
bnRzIEdlb21ldHJ5VXRpbHM7IC8vIGxpa2UgUmFuZ2UKLUVsZW1lbnQgaW1wbGVtZW50cyBHZW9t
ZXRyeVV0aWxzOwotLyogVE9ETyBDb21tZW50ZWQgb3V0IGJlY2F1c2U6ICJDU1NQc2V1ZG9FbGVt
ZW50IGltcGxlbWVudHMgR2VvbWV0cnlVdGlscywgYnV0IENTU1BzZXVkb0VsZW1lbnQgaXMgdW5k
ZWZpbmVkLiIKLUNTU1BzZXVkb0VsZW1lbnQgaW1wbGVtZW50cyBHZW9tZXRyeVV0aWxzOwotKi8K
LURvY3VtZW50IGltcGxlbWVudHMgR2VvbWV0cnlVdGlsczsKK2ludGVyZmFjZSBtaXhpbiBHZW9t
ZXRyeVV0aWxzIHsKKyAgc2VxdWVuY2U8RE9NUXVhZD4gZ2V0Qm94UXVhZHMob3B0aW9uYWwgQm94
UXVhZE9wdGlvbnMgb3B0aW9ucyA9IHt9KTsKKyAgRE9NUXVhZCBjb252ZXJ0UXVhZEZyb21Ob2Rl
KERPTVF1YWRJbml0IHF1YWQsIEdlb21ldHJ5Tm9kZSBmcm9tLCBvcHRpb25hbCBDb252ZXJ0Q29v
cmRpbmF0ZU9wdGlvbnMgb3B0aW9ucyA9IHt9KTsKKyAgRE9NUXVhZCBjb252ZXJ0UmVjdEZyb21O
b2RlKERPTVJlY3RSZWFkT25seSByZWN0LCBHZW9tZXRyeU5vZGUgZnJvbSwgb3B0aW9uYWwgQ29u
dmVydENvb3JkaW5hdGVPcHRpb25zIG9wdGlvbnMgPSB7fSk7CisgIERPTVBvaW50IGNvbnZlcnRQ
b2ludEZyb21Ob2RlKERPTVBvaW50SW5pdCBwb2ludCwgR2VvbWV0cnlOb2RlIGZyb20sIG9wdGlv
bmFsIENvbnZlcnRDb29yZGluYXRlT3B0aW9ucyBvcHRpb25zID0ge30pOyAvLyBYWFggeix3IHR1
cm5zIGludG8gMAorfTsKKworVGV4dCBpbmNsdWRlcyBHZW9tZXRyeVV0aWxzOyAvLyBsaWtlIFJh
bmdlCitFbGVtZW50IGluY2x1ZGVzIEdlb21ldHJ5VXRpbHM7CitDU1NQc2V1ZG9FbGVtZW50IGlu
Y2x1ZGVzIEdlb21ldHJ5VXRpbHM7CitEb2N1bWVudCBpbmNsdWRlcyBHZW9tZXRyeVV0aWxzOwog
CiB0eXBlZGVmIChUZXh0IG9yIEVsZW1lbnQgb3IgQ1NTUHNldWRvRWxlbWVudCBvciBEb2N1bWVu
dCkgR2VvbWV0cnlOb2RlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9pbnRlcmZhY2VzL2Nzc29tLmlkbCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW50ZXJmYWNlcy9jc3NvbS5pZGwKaW5kZXggYjM3
MmVkNmIyYjVjMDE0NzA5MmRhNzNhYWJmMThiMWY5OWNhYTQ2Mi4uZGM5Yjc4ZmRhNjE4MGRiYTZi
Nzk1OGMzNDI5YTc3ZTBmYjUwNDhiMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbnRlcmZhY2VzL2Nzc29tLmlkbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ludGVyZmFjZXMvY3Nzb20uaWRs
CkBAIC0xLDcgKzEsMTggQEAKLXR5cGVkZWYgVVNWU3RyaW5nIENTU09NU3RyaW5nOworLy8gR0VO
RVJBVEVEIFBSRUFNQkxFIC0gRE8gTk9UIEVESVQKKy8vIFRoaXMgcHJlYW1ibGUgd2FzIGFkZGVk
IGJ5IHJlZmZ5LXJlcG9ydHMgZm9yIHdlYi1wbGF0Zm9ybS10ZXN0cy4KKy8vIENTU09NU3RyaW5n
IGlzIGFuIGltcGxlbWVudGF0aW9uLWRlZmluZWQgdHlwZSBvZiBlaXRoZXIgRE9NU3RyaW5nIG9y
CisvLyBVU1ZTdHJpbmcgaW4gQ1NTT006IGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3NvbS8j
Y3Nzb21zdHJpbmctdHlwZQorLy8gRm9yIHdlYi1wbGF0Zm9ybS10ZXN0cywgdXNlIERPTVN0cmlu
ZyBiZWNhdXNlIFVTVlN0cmluZyBoYXMgYWRkaXRpb25hbAorLy8gcmVxdWlyZW1lbnRzIGluIHR5
cGUgY29udmVyc2lvbiBhbmQgY291bGQgcmVzdWx0IGluIHNwdXJpb3VzIGZhaWx1cmVzIGZvcgor
Ly8gaW1wbGVtZW50YXRpb25zIHRoYXQgdXNlIERPTVN0cmluZy4KK3R5cGVkZWYgRE9NU3RyaW5n
IENTU09NU3RyaW5nOworCisvLyBHRU5FUkFURUQgQ09OVEVOVCAtIERPIE5PVCBFRElUCisvLyBD
b250ZW50IHdhcyBhdXRvbWF0aWNhbGx5IGV4dHJhY3RlZCBieSBSZWZmeSBpbnRvIHJlZmZ5LXJl
cG9ydHMKKy8vIChodHRwczovL2dpdGh1Yi5jb20vdGlkb3VzdC9yZWZmeS1yZXBvcnRzKQorLy8g
U291cmNlOiBDU1MgT2JqZWN0IE1vZGVsIChDU1NPTSkgKGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9y
Zy9jc3NvbS8pCiAKLVtFeHBvc2VkPVdpbmRvdywKLSBMZWdhY3lBcnJheUNsYXNzXQorW0V4cG9z
ZWQ9V2luZG93XQogaW50ZXJmYWNlIE1lZGlhTGlzdCB7CiAgIHN0cmluZ2lmaWVyIGF0dHJpYnV0
ZSBbVHJlYXROdWxsQXM9RW1wdHlTdHJpbmddIENTU09NU3RyaW5nIG1lZGlhVGV4dDsKICAgcmVh
ZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbGVuZ3RoOwpAQCAtMTUsNyArMjYsNyBAQCBp
bnRlcmZhY2UgU3R5bGVTaGVldCB7CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBDU1NPTVN0cmluZyB0
eXBlOwogICByZWFkb25seSBhdHRyaWJ1dGUgVVNWU3RyaW5nPyBocmVmOwogICByZWFkb25seSBh
dHRyaWJ1dGUgKEVsZW1lbnQgb3IgUHJvY2Vzc2luZ0luc3RydWN0aW9uKT8gb3duZXJOb2RlOwot
ICByZWFkb25seSBhdHRyaWJ1dGUgU3R5bGVTaGVldD8gcGFyZW50U3R5bGVTaGVldDsKKyAgcmVh
ZG9ubHkgYXR0cmlidXRlIENTU1N0eWxlU2hlZXQ/IHBhcmVudFN0eWxlU2hlZXQ7CiAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBET01TdHJpbmc/IHRpdGxlOwogICBbU2FtZU9iamVjdCwgUHV0Rm9yd2Fy
ZHM9bWVkaWFUZXh0XSByZWFkb25seSBhdHRyaWJ1dGUgTWVkaWFMaXN0IG1lZGlhOwogICBhdHRy
aWJ1dGUgYm9vbGVhbiBkaXNhYmxlZDsKQEAgLTI5LDI2ICs0MCwyOCBAQCBpbnRlcmZhY2UgQ1NT
U3R5bGVTaGVldCA6IFN0eWxlU2hlZXQgewogICB2b2lkIGRlbGV0ZVJ1bGUodW5zaWduZWQgbG9u
ZyBpbmRleCk7CiB9OwogCi1bRXhwb3NlZD1XaW5kb3csCi0gTGVnYWN5QXJyYXlDbGFzc10KK3Bh
cnRpYWwgaW50ZXJmYWNlIENTU1N0eWxlU2hlZXQgeworICBbU2FtZU9iamVjdF0gcmVhZG9ubHkg
YXR0cmlidXRlIENTU1J1bGVMaXN0IHJ1bGVzOworICBsb25nIGFkZFJ1bGUob3B0aW9uYWwgRE9N
U3RyaW5nIHNlbGVjdG9yID0gInVuZGVmaW5lZCIsIG9wdGlvbmFsIERPTVN0cmluZyBzdHlsZSA9
ICJ1bmRlZmluZWQiLCBvcHRpb25hbCB1bnNpZ25lZCBsb25nIGluZGV4KTsKKyAgdm9pZCByZW1v
dmVSdWxlKG9wdGlvbmFsIHVuc2lnbmVkIGxvbmcgaW5kZXggPSAwKTsKK307CisKK1tFeHBvc2Vk
PVdpbmRvd10KIGludGVyZmFjZSBTdHlsZVNoZWV0TGlzdCB7Ci0gIGdldHRlciBTdHlsZVNoZWV0
PyBpdGVtKHVuc2lnbmVkIGxvbmcgaW5kZXgpOworICBnZXR0ZXIgQ1NTU3R5bGVTaGVldD8gaXRl
bSh1bnNpZ25lZCBsb25nIGluZGV4KTsKICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxv
bmcgbGVuZ3RoOwogfTsKIAotcGFydGlhbCBpbnRlcmZhY2UgRG9jdW1lbnQgeworcGFydGlhbCBp
bnRlcmZhY2UgbWl4aW4gRG9jdW1lbnRPclNoYWRvd1Jvb3QgewogICBbU2FtZU9iamVjdF0gcmVh
ZG9ubHkgYXR0cmlidXRlIFN0eWxlU2hlZXRMaXN0IHN0eWxlU2hlZXRzOwogfTsKIAotW0V4cG9z
ZWQ9V2luZG93LAotIE5vSW50ZXJmYWNlT2JqZWN0XQotaW50ZXJmYWNlIExpbmtTdHlsZSB7Ci0g
IHJlYWRvbmx5IGF0dHJpYnV0ZSBTdHlsZVNoZWV0PyBzaGVldDsKK2ludGVyZmFjZSBtaXhpbiBM
aW5rU3R5bGUgeworICByZWFkb25seSBhdHRyaWJ1dGUgQ1NTU3R5bGVTaGVldD8gc2hlZXQ7CiB9
OwogCi1Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24gaW1wbGVtZW50cyBMaW5rU3R5bGU7Ci1bRXhwb3Nl
ZD1XaW5kb3csCi0gTGVnYWN5QXJyYXlDbGFzc10KK1Byb2Nlc3NpbmdJbnN0cnVjdGlvbiBpbmNs
dWRlcyBMaW5rU3R5bGU7CitbRXhwb3NlZD1XaW5kb3ddCiBpbnRlcmZhY2UgQ1NTUnVsZUxpc3Qg
ewogICBnZXR0ZXIgQ1NTUnVsZT8gaXRlbSh1bnNpZ25lZCBsb25nIGluZGV4KTsKICAgcmVhZG9u
bHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbGVuZ3RoOwpAQCAtNTYsMTggKzY5LDIwIEBAIGlu
dGVyZmFjZSBDU1NSdWxlTGlzdCB7CiAKIFtFeHBvc2VkPVdpbmRvd10KIGludGVyZmFjZSBDU1NS
dWxlIHsKKyAgYXR0cmlidXRlIENTU09NU3RyaW5nIGNzc1RleHQ7CisgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBDU1NSdWxlPyBwYXJlbnRSdWxlOworICByZWFkb25seSBhdHRyaWJ1dGUgQ1NTU3R5bGVT
aGVldD8gcGFyZW50U3R5bGVTaGVldDsKKworICAvLyB0aGUgZm9sbG93aW5nIGF0dHJpYnV0ZSBh
bmQgY29uc3RhbnRzIGFyZSBoaXN0b3JpYWwKKyAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVk
IHNob3J0IHR5cGU7CiAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNUWUxFX1JVTEUgPSAxOwotICBj
b25zdCB1bnNpZ25lZCBzaG9ydCBDSEFSU0VUX1JVTEUgPSAyOyAvLyBoaXN0b3JpY2FsCisgIGNv
bnN0IHVuc2lnbmVkIHNob3J0IENIQVJTRVRfUlVMRSA9IDI7CiAgIGNvbnN0IHVuc2lnbmVkIHNo
b3J0IElNUE9SVF9SVUxFID0gMzsKICAgY29uc3QgdW5zaWduZWQgc2hvcnQgTUVESUFfUlVMRSA9
IDQ7CiAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IEZPTlRfRkFDRV9SVUxFID0gNTsKICAgY29uc3Qg
dW5zaWduZWQgc2hvcnQgUEFHRV9SVUxFID0gNjsKICAgY29uc3QgdW5zaWduZWQgc2hvcnQgTUFS
R0lOX1JVTEUgPSA5OwogICBjb25zdCB1bnNpZ25lZCBzaG9ydCBOQU1FU1BBQ0VfUlVMRSA9IDEw
OwotICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgc2hvcnQgdHlwZTsKLSAgYXR0cmlidXRl
IENTU09NU3RyaW5nIGNzc1RleHQ7Ci0gIHJlYWRvbmx5IGF0dHJpYnV0ZSBDU1NSdWxlPyBwYXJl
bnRSdWxlOwotICByZWFkb25seSBhdHRyaWJ1dGUgQ1NTU3R5bGVTaGVldD8gcGFyZW50U3R5bGVT
aGVldDsKIH07CiAKIFtFeHBvc2VkPVdpbmRvd10KQEAgLTExNSwyOSArMTMwLDI1IEBAIGludGVy
ZmFjZSBDU1NTdHlsZURlY2xhcmF0aW9uIHsKICAgZ2V0dGVyIENTU09NU3RyaW5nIGl0ZW0odW5z
aWduZWQgbG9uZyBpbmRleCk7CiAgIENTU09NU3RyaW5nIGdldFByb3BlcnR5VmFsdWUoQ1NTT01T
dHJpbmcgcHJvcGVydHkpOwogICBDU1NPTVN0cmluZyBnZXRQcm9wZXJ0eVByaW9yaXR5KENTU09N
U3RyaW5nIHByb3BlcnR5KTsKLSAgW0NFUmVhY3Rpb25zXSB2b2lkIHNldFByb3BlcnR5KENTU09N
U3RyaW5nIHByb3BlcnR5LCBbVHJlYXROdWxsQXM9RW1wdHlTdHJpbmddIENTU09NU3RyaW5nIHZh
bHVlLCBbVHJlYXROdWxsQXM9RW1wdHlTdHJpbmddIG9wdGlvbmFsIENTU09NU3RyaW5nIHByaW9y
aXR5ID0gIiIpOwotICBbQ0VSZWFjdGlvbnNdIHZvaWQgc2V0UHJvcGVydHlWYWx1ZShDU1NPTVN0
cmluZyBwcm9wZXJ0eSwgW1RyZWF0TnVsbEFzPUVtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyB2YWx1
ZSk7Ci0gIFtDRVJlYWN0aW9uc10gdm9pZCBzZXRQcm9wZXJ0eVByaW9yaXR5KENTU09NU3RyaW5n
IHByb3BlcnR5LCBbVHJlYXROdWxsQXM9RW1wdHlTdHJpbmddIENTU09NU3RyaW5nIHByaW9yaXR5
KTsKKyAgW0NFUmVhY3Rpb25zXSB2b2lkIHNldFByb3BlcnR5KENTU09NU3RyaW5nIHByb3BlcnR5
LCBbVHJlYXROdWxsQXM9RW1wdHlTdHJpbmddIENTU09NU3RyaW5nIHZhbHVlLCBvcHRpb25hbCBb
VHJlYXROdWxsQXM9RW1wdHlTdHJpbmddIENTU09NU3RyaW5nIHByaW9yaXR5ID0gIiIpOwogICBb
Q0VSZWFjdGlvbnNdIENTU09NU3RyaW5nIHJlbW92ZVByb3BlcnR5KENTU09NU3RyaW5nIHByb3Bl
cnR5KTsKICAgcmVhZG9ubHkgYXR0cmlidXRlIENTU1J1bGU/IHBhcmVudFJ1bGU7CiAgIFtDRVJl
YWN0aW9uc10gYXR0cmlidXRlIFtUcmVhdE51bGxBcz1FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcg
Y3NzRmxvYXQ7CiB9OwogCi1bRXhwb3NlZD1XaW5kb3csCi0gTm9JbnRlcmZhY2VPYmplY3RdCi1p
bnRlcmZhY2UgRWxlbWVudENTU0lubGluZVN0eWxlIHsKK2ludGVyZmFjZSBtaXhpbiBFbGVtZW50
Q1NTSW5saW5lU3R5bGUgewogICBbU2FtZU9iamVjdCwgUHV0Rm9yd2FyZHM9Y3NzVGV4dF0gcmVh
ZG9ubHkgYXR0cmlidXRlIENTU1N0eWxlRGVjbGFyYXRpb24gc3R5bGU7CiB9OwogCi1IVE1MRWxl
bWVudCBpbXBsZW1lbnRzIEVsZW1lbnRDU1NJbmxpbmVTdHlsZTsKK0hUTUxFbGVtZW50IGluY2x1
ZGVzIEVsZW1lbnRDU1NJbmxpbmVTdHlsZTsKIAotU1ZHRWxlbWVudCBpbXBsZW1lbnRzIEVsZW1l
bnRDU1NJbmxpbmVTdHlsZTsKK1NWR0VsZW1lbnQgaW5jbHVkZXMgRWxlbWVudENTU0lubGluZVN0
eWxlOwogCiBwYXJ0aWFsIGludGVyZmFjZSBXaW5kb3cgewogICBbTmV3T2JqZWN0XSBDU1NTdHls
ZURlY2xhcmF0aW9uIGdldENvbXB1dGVkU3R5bGUoRWxlbWVudCBlbHQsIG9wdGlvbmFsIENTU09N
U3RyaW5nPyBwc2V1ZG9FbHQpOwogfTsKIAogW0V4cG9zZWQ9V2luZG93XQotaW50ZXJmYWNlIENT
UyB7Ci0gIHN0YXRpYyBDU1NPTVN0cmluZyBlc2NhcGUoQ1NTT01TdHJpbmcgaWRlbnQpOworbmFt
ZXNwYWNlIENTUyB7CisgIENTU09NU3RyaW5nIGVzY2FwZShDU1NPTVN0cmluZyBpZGVudCk7CiB9
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9pbnRlcmZhY2VzL2RvbS5pZGwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ludGVyZmFjZXMvZG9tLmlkbAppbmRleCAwODdmZTRkNjYxY2JiMTM1NTUzNzMy
M2UwOTNmYTNiM2QzNDI5NzYzLi4wM2EwMjAxYjE2ZmVkNTY5NDI5YzZjZmM3MDkwNjNlZDMxNjgx
NDIyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ludGVyZmFjZXMvZG9tLmlkbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ludGVyZmFjZXMvZG9tLmlkbApAQCAtMSwxMCArMSwxNiBAQAotW0Nv
bnN0cnVjdG9yKERPTVN0cmluZyB0eXBlLCBvcHRpb25hbCBFdmVudEluaXQgZXZlbnRJbml0RGlj
dCksCi0gRXhwb3NlZD0oV2luZG93LFdvcmtlcildCisvLyBHRU5FUkFURUQgQ09OVEVOVCAtIERP
IE5PVCBFRElUCisvLyBDb250ZW50IHdhcyBhdXRvbWF0aWNhbGx5IGV4dHJhY3RlZCBieSBSZWZm
eSBpbnRvIHJlZmZ5LXJlcG9ydHMKKy8vIChodHRwczovL2dpdGh1Yi5jb20vdGlkb3VzdC9yZWZm
eS1yZXBvcnRzKQorLy8gU291cmNlOiBET00gU3RhbmRhcmQgKGh0dHBzOi8vZG9tLnNwZWMud2hh
dHdnLm9yZy8pCisKK1tDb25zdHJ1Y3RvcihET01TdHJpbmcgdHlwZSwgb3B0aW9uYWwgRXZlbnRJ
bml0IGV2ZW50SW5pdERpY3QgPSB7fSksCisgRXhwb3NlZD0oV2luZG93LFdvcmtlcixBdWRpb1dv
cmtsZXQpXQogaW50ZXJmYWNlIEV2ZW50IHsKICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmlu
ZyB0eXBlOwogICByZWFkb25seSBhdHRyaWJ1dGUgRXZlbnRUYXJnZXQ/IHRhcmdldDsKLSAgcmVh
ZG9ubHkgYXR0cmlidXRlIEV2ZW50VGFyZ2V0PyBzcmNFbGVtZW50OworICByZWFkb25seSBhdHRy
aWJ1dGUgRXZlbnRUYXJnZXQ/IHNyY0VsZW1lbnQ7IC8vIGhpc3RvcmljYWwKICAgcmVhZG9ubHkg
YXR0cmlidXRlIEV2ZW50VGFyZ2V0PyBjdXJyZW50VGFyZ2V0OworICBzZXF1ZW5jZTxFdmVudFRh
cmdldD4gY29tcG9zZWRQYXRoKCk7CiAKICAgY29uc3QgdW5zaWduZWQgc2hvcnQgTk9ORSA9IDA7
CiAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IENBUFRVUklOR19QSEFTRSA9IDE7CkBAIC0xMywyNyAr
MTksMzMgQEAgaW50ZXJmYWNlIEV2ZW50IHsKICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVk
IHNob3J0IGV2ZW50UGhhc2U7CiAKICAgdm9pZCBzdG9wUHJvcGFnYXRpb24oKTsKKyAgICAgICAg
ICAgYXR0cmlidXRlIGJvb2xlYW4gY2FuY2VsQnViYmxlOyAvLyBoaXN0b3JpY2FsIGFsaWFzIG9m
IC5zdG9wUHJvcGFnYXRpb24KICAgdm9pZCBzdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTsKIAog
ICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBidWJibGVzOwogICByZWFkb25seSBhdHRyaWJ1
dGUgYm9vbGVhbiBjYW5jZWxhYmxlOwotICAgICAgICAgICBhdHRyaWJ1dGUgYm9vbGVhbiByZXR1
cm5WYWx1ZTsKKyAgICAgICAgICAgYXR0cmlidXRlIGJvb2xlYW4gcmV0dXJuVmFsdWU7ICAvLyBo
aXN0b3JpY2FsCiAgIHZvaWQgcHJldmVudERlZmF1bHQoKTsKICAgcmVhZG9ubHkgYXR0cmlidXRl
IGJvb2xlYW4gZGVmYXVsdFByZXZlbnRlZDsKKyAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4g
Y29tcG9zZWQ7CiAKICAgW1VuZm9yZ2VhYmxlXSByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBp
c1RydXN0ZWQ7Ci0gIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01UaW1lU3RhbXAgdGltZVN0YW1wOwor
ICByZWFkb25seSBhdHRyaWJ1dGUgRE9NSGlnaFJlc1RpbWVTdGFtcCB0aW1lU3RhbXA7CiAKLSAg
dm9pZCBpbml0RXZlbnQoRE9NU3RyaW5nIHR5cGUsIG9wdGlvbmFsIGJvb2xlYW4gYnViYmxlcyA9
IGZhbHNlLCBvcHRpb25hbCBib29sZWFuIGNhbmNlbGFibGUgPSBmYWxzZSk7CisgIHZvaWQgaW5p
dEV2ZW50KERPTVN0cmluZyB0eXBlLCBvcHRpb25hbCBib29sZWFuIGJ1YmJsZXMgPSBmYWxzZSwg
b3B0aW9uYWwgYm9vbGVhbiBjYW5jZWxhYmxlID0gZmFsc2UpOyAvLyBoaXN0b3JpY2FsCiB9Owog
CiBkaWN0aW9uYXJ5IEV2ZW50SW5pdCB7CiAgIGJvb2xlYW4gYnViYmxlcyA9IGZhbHNlOwogICBi
b29sZWFuIGNhbmNlbGFibGUgPSBmYWxzZTsKKyAgYm9vbGVhbiBjb21wb3NlZCA9IGZhbHNlOwog
fTsKIAorcGFydGlhbCBpbnRlcmZhY2UgV2luZG93IHsKKyAgW1JlcGxhY2VhYmxlXSByZWFkb25s
eSBhdHRyaWJ1dGUgYW55IGV2ZW50OyAvLyBoaXN0b3JpY2FsCit9OwogCi1bQ29uc3RydWN0b3Io
RE9NU3RyaW5nIHR5cGUsIG9wdGlvbmFsIEN1c3RvbUV2ZW50SW5pdCBldmVudEluaXREaWN0KSwK
K1tDb25zdHJ1Y3RvcihET01TdHJpbmcgdHlwZSwgb3B0aW9uYWwgQ3VzdG9tRXZlbnRJbml0IGV2
ZW50SW5pdERpY3QgPSB7fSksCiAgRXhwb3NlZD0oV2luZG93LFdvcmtlcildCiBpbnRlcmZhY2Ug
Q3VzdG9tRXZlbnQgOiBFdmVudCB7CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBhbnkgZGV0YWlsOwpA
QCAtNDUsMTIgKzU3LDExIEBAIGRpY3Rpb25hcnkgQ3VzdG9tRXZlbnRJbml0IDogRXZlbnRJbml0
IHsKICAgYW55IGRldGFpbCA9IG51bGw7CiB9OwogCi0KIFtDb25zdHJ1Y3RvciwKLSBFeHBvc2Vk
PShXaW5kb3csV29ya2VyKV0KKyBFeHBvc2VkPShXaW5kb3csV29ya2VyLEF1ZGlvV29ya2xldCld
CiBpbnRlcmZhY2UgRXZlbnRUYXJnZXQgewotICB2b2lkIGFkZEV2ZW50TGlzdGVuZXIoRE9NU3Ry
aW5nIHR5cGUsIEV2ZW50TGlzdGVuZXI/IGNhbGxiYWNrLCBvcHRpb25hbCAoRXZlbnRMaXN0ZW5l
ck9wdGlvbnMgb3IgYm9vbGVhbikgb3B0aW9ucyk7Ci0gIHZvaWQgcmVtb3ZlRXZlbnRMaXN0ZW5l
cihET01TdHJpbmcgdHlwZSwgRXZlbnRMaXN0ZW5lcj8gY2FsbGJhY2ssIG9wdGlvbmFsIChFdmVu
dExpc3RlbmVyT3B0aW9ucyBvciBib29sZWFuKSBvcHRpb25zKTsKKyAgdm9pZCBhZGRFdmVudExp
c3RlbmVyKERPTVN0cmluZyB0eXBlLCBFdmVudExpc3RlbmVyPyBjYWxsYmFjaywgb3B0aW9uYWwg
KEFkZEV2ZW50TGlzdGVuZXJPcHRpb25zIG9yIGJvb2xlYW4pIG9wdGlvbnMgPSB7fSk7CisgIHZv
aWQgcmVtb3ZlRXZlbnRMaXN0ZW5lcihET01TdHJpbmcgdHlwZSwgRXZlbnRMaXN0ZW5lcj8gY2Fs
bGJhY2ssIG9wdGlvbmFsIChFdmVudExpc3RlbmVyT3B0aW9ucyBvciBib29sZWFuKSBvcHRpb25z
ID0ge30pOwogICBib29sZWFuIGRpc3BhdGNoRXZlbnQoRXZlbnQgZXZlbnQpOwogfTsKIApAQCAt
NTksMTAgKzcwLDEzIEBAIGNhbGxiYWNrIGludGVyZmFjZSBFdmVudExpc3RlbmVyIHsKIH07CiAK
IGRpY3Rpb25hcnkgRXZlbnRMaXN0ZW5lck9wdGlvbnMgewotICBib29sZWFuIGNhcHR1cmU7Ci0g
IGJvb2xlYW4gcGFzc2l2ZTsKKyAgYm9vbGVhbiBjYXB0dXJlID0gZmFsc2U7CiB9OwogCitkaWN0
aW9uYXJ5IEFkZEV2ZW50TGlzdGVuZXJPcHRpb25zIDogRXZlbnRMaXN0ZW5lck9wdGlvbnMgewor
ICBib29sZWFuIHBhc3NpdmUgPSBmYWxzZTsKKyAgYm9vbGVhbiBvbmNlID0gZmFsc2U7Cit9Owog
CiBbQ29uc3RydWN0b3IsCiAgRXhwb3NlZD0oV2luZG93LFdvcmtlcildCkBAIC03MSwzNyArODUs
MzEgQEAgaW50ZXJmYWNlIEFib3J0Q29udHJvbGxlciB7CiAKICAgdm9pZCBhYm9ydCgpOwogfTsK
LQotCiBbRXhwb3NlZD0oV2luZG93LFdvcmtlcildCiBpbnRlcmZhY2UgQWJvcnRTaWduYWwgOiBF
dmVudFRhcmdldCB7CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIGFib3J0ZWQ7CiAKICAg
YXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbmFib3J0OwogfTsKLQotCiBpbnRlcmZhY2UgbWl4aW4g
Tm9uRWxlbWVudFBhcmVudE5vZGUgewogICBFbGVtZW50PyBnZXRFbGVtZW50QnlJZChET01TdHJp
bmcgZWxlbWVudElkKTsKIH07CiBEb2N1bWVudCBpbmNsdWRlcyBOb25FbGVtZW50UGFyZW50Tm9k
ZTsKIERvY3VtZW50RnJhZ21lbnQgaW5jbHVkZXMgTm9uRWxlbWVudFBhcmVudE5vZGU7CiAKLQog
aW50ZXJmYWNlIG1peGluIERvY3VtZW50T3JTaGFkb3dSb290IHsKIH07CiBEb2N1bWVudCBpbmNs
dWRlcyBEb2N1bWVudE9yU2hhZG93Um9vdDsKIFNoYWRvd1Jvb3QgaW5jbHVkZXMgRG9jdW1lbnRP
clNoYWRvd1Jvb3Q7CiAKLQogaW50ZXJmYWNlIG1peGluIFBhcmVudE5vZGUgewogICBbU2FtZU9i
amVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIEhUTUxDb2xsZWN0aW9uIGNoaWxkcmVuOwogICByZWFk
b25seSBhdHRyaWJ1dGUgRWxlbWVudD8gZmlyc3RFbGVtZW50Q2hpbGQ7CiAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBFbGVtZW50PyBsYXN0RWxlbWVudENoaWxkOwogICByZWFkb25seSBhdHRyaWJ1dGUg
dW5zaWduZWQgbG9uZyBjaGlsZEVsZW1lbnRDb3VudDsKIAotICBbVW5zY29wYWJsZV0gdm9pZCBw
cmVwZW5kKChOb2RlIG9yIERPTVN0cmluZykuLi4gbm9kZXMpOwotICBbVW5zY29wYWJsZV0gdm9p
ZCBhcHBlbmQoKE5vZGUgb3IgRE9NU3RyaW5nKS4uLiBub2Rlcyk7CisgIFtDRVJlYWN0aW9ucywg
VW5zY29wYWJsZV0gdm9pZCBwcmVwZW5kKChOb2RlIG9yIERPTVN0cmluZykuLi4gbm9kZXMpOwor
ICBbQ0VSZWFjdGlvbnMsIFVuc2NvcGFibGVdIHZvaWQgYXBwZW5kKChOb2RlIG9yIERPTVN0cmlu
ZykuLi4gbm9kZXMpOwogCiAgIEVsZW1lbnQ/IHF1ZXJ5U2VsZWN0b3IoRE9NU3RyaW5nIHNlbGVj
dG9ycyk7CiAgIFtOZXdPYmplY3RdIE5vZGVMaXN0IHF1ZXJ5U2VsZWN0b3JBbGwoRE9NU3RyaW5n
IHNlbGVjdG9ycyk7CkBAIC0xMTAsNyArMTE4LDYgQEAgRG9jdW1lbnQgaW5jbHVkZXMgUGFyZW50
Tm9kZTsKIERvY3VtZW50RnJhZ21lbnQgaW5jbHVkZXMgUGFyZW50Tm9kZTsKIEVsZW1lbnQgaW5j
bHVkZXMgUGFyZW50Tm9kZTsKIAotCiBpbnRlcmZhY2UgbWl4aW4gTm9uRG9jdW1lbnRUeXBlQ2hp
bGROb2RlIHsKICAgcmVhZG9ubHkgYXR0cmlidXRlIEVsZW1lbnQ/IHByZXZpb3VzRWxlbWVudFNp
Ymxpbmc7CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBFbGVtZW50PyBuZXh0RWxlbWVudFNpYmxpbmc7
CkBAIC0xMTgsMzMgKzEyNSwyOSBAQCBpbnRlcmZhY2UgbWl4aW4gTm9uRG9jdW1lbnRUeXBlQ2hp
bGROb2RlIHsKIEVsZW1lbnQgaW5jbHVkZXMgTm9uRG9jdW1lbnRUeXBlQ2hpbGROb2RlOwogQ2hh
cmFjdGVyRGF0YSBpbmNsdWRlcyBOb25Eb2N1bWVudFR5cGVDaGlsZE5vZGU7CiAKLQogaW50ZXJm
YWNlIG1peGluIENoaWxkTm9kZSB7Ci0gIFtVbnNjb3BhYmxlXSB2b2lkIGJlZm9yZSgoTm9kZSBv
ciBET01TdHJpbmcpLi4uIG5vZGVzKTsKLSAgW1Vuc2NvcGFibGVdIHZvaWQgYWZ0ZXIoKE5vZGUg
b3IgRE9NU3RyaW5nKS4uLiBub2Rlcyk7Ci0gIFtVbnNjb3BhYmxlXSB2b2lkIHJlcGxhY2VXaXRo
KChOb2RlIG9yIERPTVN0cmluZykuLi4gbm9kZXMpOwotICBbVW5zY29wYWJsZV0gdm9pZCByZW1v
dmUoKTsKKyAgW0NFUmVhY3Rpb25zLCBVbnNjb3BhYmxlXSB2b2lkIGJlZm9yZSgoTm9kZSBvciBE
T01TdHJpbmcpLi4uIG5vZGVzKTsKKyAgW0NFUmVhY3Rpb25zLCBVbnNjb3BhYmxlXSB2b2lkIGFm
dGVyKChOb2RlIG9yIERPTVN0cmluZykuLi4gbm9kZXMpOworICBbQ0VSZWFjdGlvbnMsIFVuc2Nv
cGFibGVdIHZvaWQgcmVwbGFjZVdpdGgoKE5vZGUgb3IgRE9NU3RyaW5nKS4uLiBub2Rlcyk7Cisg
IFtDRVJlYWN0aW9ucywgVW5zY29wYWJsZV0gdm9pZCByZW1vdmUoKTsKIH07CiBEb2N1bWVudFR5
cGUgaW5jbHVkZXMgQ2hpbGROb2RlOwogRWxlbWVudCBpbmNsdWRlcyBDaGlsZE5vZGU7CiBDaGFy
YWN0ZXJEYXRhIGluY2x1ZGVzIENoaWxkTm9kZTsKIAotCiBpbnRlcmZhY2UgbWl4aW4gU2xvdGFi
bGUgewogICByZWFkb25seSBhdHRyaWJ1dGUgSFRNTFNsb3RFbGVtZW50PyBhc3NpZ25lZFNsb3Q7
CiB9OwogRWxlbWVudCBpbmNsdWRlcyBTbG90YWJsZTsKIFRleHQgaW5jbHVkZXMgU2xvdGFibGU7
CiAKLQogW0V4cG9zZWQ9V2luZG93XQogaW50ZXJmYWNlIE5vZGVMaXN0IHsKICAgZ2V0dGVyIE5v
ZGU/IGl0ZW0odW5zaWduZWQgbG9uZyBpbmRleCk7CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNp
Z25lZCBsb25nIGxlbmd0aDsKLS8vICBpdGVyYWJsZTxOb2RlPjsKKyAgaXRlcmFibGU8Tm9kZT47
CiB9OwogCi0KIFtFeHBvc2VkPVdpbmRvdywgTGVnYWN5VW5lbnVtZXJhYmxlTmFtZWRQcm9wZXJ0
aWVzXQogaW50ZXJmYWNlIEhUTUxDb2xsZWN0aW9uIHsKICAgcmVhZG9ubHkgYXR0cmlidXRlIHVu
c2lnbmVkIGxvbmcgbGVuZ3RoOwpAQCAtMTUyLDEwICsxNTUsMTAgQEAgaW50ZXJmYWNlIEhUTUxD
b2xsZWN0aW9uIHsKICAgZ2V0dGVyIEVsZW1lbnQ/IG5hbWVkSXRlbShET01TdHJpbmcgbmFtZSk7
CiB9OwogCi0KLVtDb25zdHJ1Y3RvcihNdXRhdGlvbkNhbGxiYWNrIGNhbGxiYWNrKV0KK1tDb25z
dHJ1Y3RvcihNdXRhdGlvbkNhbGxiYWNrIGNhbGxiYWNrKSwKKyBFeHBvc2VkPVdpbmRvd10KIGlu
dGVyZmFjZSBNdXRhdGlvbk9ic2VydmVyIHsKLSAgdm9pZCBvYnNlcnZlKE5vZGUgdGFyZ2V0LCBv
cHRpb25hbCBNdXRhdGlvbk9ic2VydmVySW5pdCBvcHRpb25zKTsKKyAgdm9pZCBvYnNlcnZlKE5v
ZGUgdGFyZ2V0LCBvcHRpb25hbCBNdXRhdGlvbk9ic2VydmVySW5pdCBvcHRpb25zID0ge30pOwog
ICB2b2lkIGRpc2Nvbm5lY3QoKTsKICAgc2VxdWVuY2U8TXV0YXRpb25SZWNvcmQ+IHRha2VSZWNv
cmRzKCk7CiB9OwpAQCAtMTcyLDcgKzE3NSw2IEBAIGRpY3Rpb25hcnkgTXV0YXRpb25PYnNlcnZl
ckluaXQgewogICBzZXF1ZW5jZTxET01TdHJpbmc+IGF0dHJpYnV0ZUZpbHRlcjsKIH07CiAKLQog
W0V4cG9zZWQ9V2luZG93XQogaW50ZXJmYWNlIE11dGF0aW9uUmVjb3JkIHsKICAgcmVhZG9ubHkg
YXR0cmlidXRlIERPTVN0cmluZyB0eXBlOwpAQCAtMTg2LDExICsxODgsMTAgQEAgaW50ZXJmYWNl
IE11dGF0aW9uUmVjb3JkIHsKICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZz8gb2xkVmFs
dWU7CiB9OwogCi0KIFtFeHBvc2VkPVdpbmRvd10KIGludGVyZmFjZSBOb2RlIDogRXZlbnRUYXJn
ZXQgewogICBjb25zdCB1bnNpZ25lZCBzaG9ydCBFTEVNRU5UX05PREUgPSAxOwotICBjb25zdCB1
bnNpZ25lZCBzaG9ydCBBVFRSSUJVVEVfTk9ERSA9IDI7IC8vIGhpc3RvcmljYWwKKyAgY29uc3Qg
dW5zaWduZWQgc2hvcnQgQVRUUklCVVRFX05PREUgPSAyOwogICBjb25zdCB1bnNpZ25lZCBzaG9y
dCBURVhUX05PREUgPSAzOwogICBjb25zdCB1bnNpZ25lZCBzaG9ydCBDREFUQV9TRUNUSU9OX05P
REUgPSA0OwogICBjb25zdCB1bnNpZ25lZCBzaG9ydCBFTlRJVFlfUkVGRVJFTkNFX05PREUgPSA1
OyAvLyBoaXN0b3JpY2FsCkBAIC0yMDQsMTEgKzIwNSwxMSBAQCBpbnRlcmZhY2UgTm9kZSA6IEV2
ZW50VGFyZ2V0IHsKICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIHNob3J0IG5vZGVUeXBl
OwogICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIG5vZGVOYW1lOwogCi0gIHJlYWRvbmx5
IGF0dHJpYnV0ZSBET01TdHJpbmcgYmFzZVVSSTsKKyAgcmVhZG9ubHkgYXR0cmlidXRlIFVTVlN0
cmluZyBiYXNlVVJJOwogCiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIGlzQ29ubmVjdGVk
OwogICByZWFkb25seSBhdHRyaWJ1dGUgRG9jdW1lbnQ/IG93bmVyRG9jdW1lbnQ7Ci0gIE5vZGUg
Z2V0Um9vdE5vZGUob3B0aW9uYWwgR2V0Um9vdE5vZGVPcHRpb25zIG9wdGlvbnMpOworICBOb2Rl
IGdldFJvb3ROb2RlKG9wdGlvbmFsIEdldFJvb3ROb2RlT3B0aW9ucyBvcHRpb25zID0ge30pOwog
ICByZWFkb25seSBhdHRyaWJ1dGUgTm9kZT8gcGFyZW50Tm9kZTsKICAgcmVhZG9ubHkgYXR0cmli
dXRlIEVsZW1lbnQ/IHBhcmVudEVsZW1lbnQ7CiAgIGJvb2xlYW4gaGFzQ2hpbGROb2RlcygpOwpA
QCAtMjE4LDExICsyMTksMTEgQEAgaW50ZXJmYWNlIE5vZGUgOiBFdmVudFRhcmdldCB7CiAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBOb2RlPyBwcmV2aW91c1NpYmxpbmc7CiAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBOb2RlPyBuZXh0U2libGluZzsKIAotICAgICAgICAgICBhdHRyaWJ1dGUgRE9NU3RyaW5n
PyBub2RlVmFsdWU7Ci0gICAgICAgICAgIGF0dHJpYnV0ZSBET01TdHJpbmc/IHRleHRDb250ZW50
OwotICB2b2lkIG5vcm1hbGl6ZSgpOworICBbQ0VSZWFjdGlvbnNdIGF0dHJpYnV0ZSBET01TdHJp
bmc/IG5vZGVWYWx1ZTsKKyAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgRE9NU3RyaW5nPyB0ZXh0
Q29udGVudDsKKyAgW0NFUmVhY3Rpb25zXSB2b2lkIG5vcm1hbGl6ZSgpOwogCi0gIFtOZXdPYmpl
Y3RdIE5vZGUgY2xvbmVOb2RlKG9wdGlvbmFsIGJvb2xlYW4gZGVlcCA9IGZhbHNlKTsKKyAgW0NF
UmVhY3Rpb25zLCBOZXdPYmplY3RdIE5vZGUgY2xvbmVOb2RlKG9wdGlvbmFsIGJvb2xlYW4gZGVl
cCA9IGZhbHNlKTsKICAgYm9vbGVhbiBpc0VxdWFsTm9kZShOb2RlPyBvdGhlck5vZGUpOwogICBi
b29sZWFuIGlzU2FtZU5vZGUoTm9kZT8gb3RoZXJOb2RlKTsgLy8gaGlzdG9yaWNhbCBhbGlhcyBv
ZiA9PT0KIApAQCAtMjM5LDEwICsyNDAsMTAgQEAgaW50ZXJmYWNlIE5vZGUgOiBFdmVudFRhcmdl
dCB7CiAgIERPTVN0cmluZz8gbG9va3VwTmFtZXNwYWNlVVJJKERPTVN0cmluZz8gcHJlZml4KTsK
ICAgYm9vbGVhbiBpc0RlZmF1bHROYW1lc3BhY2UoRE9NU3RyaW5nPyBuYW1lc3BhY2UpOwogCi0g
IE5vZGUgaW5zZXJ0QmVmb3JlKE5vZGUgbm9kZSwgTm9kZT8gY2hpbGQpOwotICBOb2RlIGFwcGVu
ZENoaWxkKE5vZGUgbm9kZSk7Ci0gIE5vZGUgcmVwbGFjZUNoaWxkKE5vZGUgbm9kZSwgTm9kZSBj
aGlsZCk7Ci0gIE5vZGUgcmVtb3ZlQ2hpbGQoTm9kZSBjaGlsZCk7CisgIFtDRVJlYWN0aW9uc10g
Tm9kZSBpbnNlcnRCZWZvcmUoTm9kZSBub2RlLCBOb2RlPyBjaGlsZCk7CisgIFtDRVJlYWN0aW9u
c10gTm9kZSBhcHBlbmRDaGlsZChOb2RlIG5vZGUpOworICBbQ0VSZWFjdGlvbnNdIE5vZGUgcmVw
bGFjZUNoaWxkKE5vZGUgbm9kZSwgTm9kZSBjaGlsZCk7CisgIFtDRVJlYWN0aW9uc10gTm9kZSBy
ZW1vdmVDaGlsZChOb2RlIGNoaWxkKTsKIH07CiAKIGRpY3Rpb25hcnkgR2V0Um9vdE5vZGVPcHRp
b25zIHsKQEAgLTI1Myw5ICsyNTQsOSBAQCBkaWN0aW9uYXJ5IEdldFJvb3ROb2RlT3B0aW9ucyB7
CiAgRXhwb3NlZD1XaW5kb3ddCiBpbnRlcmZhY2UgRG9jdW1lbnQgOiBOb2RlIHsKICAgW1NhbWVP
YmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01JbXBsZW1lbnRhdGlvbiBpbXBsZW1lbnRhdGlv
bjsKLSAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBVUkw7Ci0gIHJlYWRvbmx5IGF0dHJp
YnV0ZSBET01TdHJpbmcgZG9jdW1lbnRVUkk7Ci0gIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJp
bmcgb3JpZ2luOworICByZWFkb25seSBhdHRyaWJ1dGUgVVNWU3RyaW5nIFVSTDsKKyAgcmVhZG9u
bHkgYXR0cmlidXRlIFVTVlN0cmluZyBkb2N1bWVudFVSSTsKKyAgcmVhZG9ubHkgYXR0cmlidXRl
IFVTVlN0cmluZyBvcmlnaW47CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgY29tcGF0
TW9kZTsKICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBjaGFyYWN0ZXJTZXQ7CiAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgY2hhcnNldDsgLy8gaGlzdG9yaWNhbCBhbGlhcyBv
ZiAuY2hhcmFjdGVyU2V0CkBAIC0yNjgsMTYgKzI2OSwxNiBAQCBpbnRlcmZhY2UgRG9jdW1lbnQg
OiBOb2RlIHsKICAgSFRNTENvbGxlY3Rpb24gZ2V0RWxlbWVudHNCeVRhZ05hbWVOUyhET01TdHJp
bmc/IG5hbWVzcGFjZSwgRE9NU3RyaW5nIGxvY2FsTmFtZSk7CiAgIEhUTUxDb2xsZWN0aW9uIGdl
dEVsZW1lbnRzQnlDbGFzc05hbWUoRE9NU3RyaW5nIGNsYXNzTmFtZXMpOwogCi0gIFtOZXdPYmpl
Y3RdIEVsZW1lbnQgY3JlYXRlRWxlbWVudChET01TdHJpbmcgbG9jYWxOYW1lLCBvcHRpb25hbCAo
RE9NU3RyaW5nIG9yIEVsZW1lbnRDcmVhdGlvbk9wdGlvbnMpIG9wdGlvbnMpOwotICBbTmV3T2Jq
ZWN0XSBFbGVtZW50IGNyZWF0ZUVsZW1lbnROUyhET01TdHJpbmc/IG5hbWVzcGFjZSwgRE9NU3Ry
aW5nIHF1YWxpZmllZE5hbWUsIG9wdGlvbmFsIChET01TdHJpbmcgb3IgRWxlbWVudENyZWF0aW9u
T3B0aW9ucykgb3B0aW9ucyk7CisgIFtDRVJlYWN0aW9ucywgTmV3T2JqZWN0XSBFbGVtZW50IGNy
ZWF0ZUVsZW1lbnQoRE9NU3RyaW5nIGxvY2FsTmFtZSwgb3B0aW9uYWwgKERPTVN0cmluZyBvciBF
bGVtZW50Q3JlYXRpb25PcHRpb25zKSBvcHRpb25zID0ge30pOworICBbQ0VSZWFjdGlvbnMsIE5l
d09iamVjdF0gRWxlbWVudCBjcmVhdGVFbGVtZW50TlMoRE9NU3RyaW5nPyBuYW1lc3BhY2UsIERP
TVN0cmluZyBxdWFsaWZpZWROYW1lLCBvcHRpb25hbCAoRE9NU3RyaW5nIG9yIEVsZW1lbnRDcmVh
dGlvbk9wdGlvbnMpIG9wdGlvbnMgPSB7fSk7CiAgIFtOZXdPYmplY3RdIERvY3VtZW50RnJhZ21l
bnQgY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpOwogICBbTmV3T2JqZWN0XSBUZXh0IGNyZWF0ZVRl
eHROb2RlKERPTVN0cmluZyBkYXRhKTsKICAgW05ld09iamVjdF0gQ0RBVEFTZWN0aW9uIGNyZWF0
ZUNEQVRBU2VjdGlvbihET01TdHJpbmcgZGF0YSk7CiAgIFtOZXdPYmplY3RdIENvbW1lbnQgY3Jl
YXRlQ29tbWVudChET01TdHJpbmcgZGF0YSk7CiAgIFtOZXdPYmplY3RdIFByb2Nlc3NpbmdJbnN0
cnVjdGlvbiBjcmVhdGVQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oRE9NU3RyaW5nIHRhcmdldCwgRE9N
U3RyaW5nIGRhdGEpOwogCi0gIFtOZXdPYmplY3RdIE5vZGUgaW1wb3J0Tm9kZShOb2RlIG5vZGUs
IG9wdGlvbmFsIGJvb2xlYW4gZGVlcCA9IGZhbHNlKTsKLSAgTm9kZSBhZG9wdE5vZGUoTm9kZSBu
b2RlKTsKKyAgW0NFUmVhY3Rpb25zLCBOZXdPYmplY3RdIE5vZGUgaW1wb3J0Tm9kZShOb2RlIG5v
ZGUsIG9wdGlvbmFsIGJvb2xlYW4gZGVlcCA9IGZhbHNlKTsKKyAgW0NFUmVhY3Rpb25zXSBOb2Rl
IGFkb3B0Tm9kZShOb2RlIG5vZGUpOwogCiAgIFtOZXdPYmplY3RdIEF0dHIgY3JlYXRlQXR0cmli
dXRlKERPTVN0cmluZyBsb2NhbE5hbWUpOwogICBbTmV3T2JqZWN0XSBBdHRyIGNyZWF0ZUF0dHJp
YnV0ZU5TKERPTVN0cmluZz8gbmFtZXNwYWNlLCBET01TdHJpbmcgcXVhbGlmaWVkTmFtZSk7CkBA
IC0yOTgsNyArMjk5LDYgQEAgZGljdGlvbmFyeSBFbGVtZW50Q3JlYXRpb25PcHRpb25zIHsKICAg
RE9NU3RyaW5nIGlzOwogfTsKIAotCiBbRXhwb3NlZD1XaW5kb3ddCiBpbnRlcmZhY2UgRE9NSW1w
bGVtZW50YXRpb24gewogICBbTmV3T2JqZWN0XSBEb2N1bWVudFR5cGUgY3JlYXRlRG9jdW1lbnRU
eXBlKERPTVN0cmluZyBxdWFsaWZpZWROYW1lLCBET01TdHJpbmcgcHVibGljSWQsIERPTVN0cmlu
ZyBzeXN0ZW1JZCk7CkBAIC0zMDgsNyArMzA4LDYgQEAgaW50ZXJmYWNlIERPTUltcGxlbWVudGF0
aW9uIHsKICAgYm9vbGVhbiBoYXNGZWF0dXJlKCk7IC8vIHVzZWxlc3M7IGFsd2F5cyByZXR1cm5z
IHRydWUKIH07CiAKLQogW0V4cG9zZWQ9V2luZG93XQogaW50ZXJmYWNlIERvY3VtZW50VHlwZSA6
IE5vZGUgewogICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIG5hbWU7CkBAIC0zMTYsMTMg
KzMxNSwxMSBAQCBpbnRlcmZhY2UgRG9jdW1lbnRUeXBlIDogTm9kZSB7CiAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBET01TdHJpbmcgc3lzdGVtSWQ7CiB9OwogCi0KIFtDb25zdHJ1Y3RvciwKICBFeHBv
c2VkPVdpbmRvd10KIGludGVyZmFjZSBEb2N1bWVudEZyYWdtZW50IDogTm9kZSB7CiB9OwogCi0K
IFtFeHBvc2VkPVdpbmRvd10KIGludGVyZmFjZSBTaGFkb3dSb290IDogRG9jdW1lbnRGcmFnbWVu
dCB7CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTaGFkb3dSb290TW9kZSBtb2RlOwpAQCAtMzMxLDcg
KzMyOCw2IEBAIGludGVyZmFjZSBTaGFkb3dSb290IDogRG9jdW1lbnRGcmFnbWVudCB7CiAKIGVu
dW0gU2hhZG93Um9vdE1vZGUgeyAib3BlbiIsICJjbG9zZWQiIH07CiAKLQogW0V4cG9zZWQ9V2lu
ZG93XQogaW50ZXJmYWNlIEVsZW1lbnQgOiBOb2RlIHsKICAgcmVhZG9ubHkgYXR0cmlidXRlIERP
TVN0cmluZz8gbmFtZXNwYWNlVVJJOwpAQCAtMzM5LDI4ICszMzUsMjkgQEAgaW50ZXJmYWNlIEVs
ZW1lbnQgOiBOb2RlIHsKICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBsb2NhbE5hbWU7
CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgdGFnTmFtZTsKIAotICAgICAgICAgICBh
dHRyaWJ1dGUgRE9NU3RyaW5nIGlkOwotICAgICAgICAgICBhdHRyaWJ1dGUgRE9NU3RyaW5nIGNs
YXNzTmFtZTsKKyAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGlkOworICBbQ0VS
ZWFjdGlvbnNdIGF0dHJpYnV0ZSBET01TdHJpbmcgY2xhc3NOYW1lOwogICBbU2FtZU9iamVjdCwg
UHV0Rm9yd2FyZHM9dmFsdWVdIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01Ub2tlbkxpc3QgY2xhc3NM
aXN0OwotICBbVW5zY29wYWJsZV0gYXR0cmlidXRlIERPTVN0cmluZyBzbG90OworICBbQ0VSZWFj
dGlvbnMsIFVuc2NvcGFibGVdIGF0dHJpYnV0ZSBET01TdHJpbmcgc2xvdDsKIAogICBib29sZWFu
IGhhc0F0dHJpYnV0ZXMoKTsKICAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBOYW1l
ZE5vZGVNYXAgYXR0cmlidXRlczsKICAgc2VxdWVuY2U8RE9NU3RyaW5nPiBnZXRBdHRyaWJ1dGVO
YW1lcygpOwogICBET01TdHJpbmc/IGdldEF0dHJpYnV0ZShET01TdHJpbmcgcXVhbGlmaWVkTmFt
ZSk7CiAgIERPTVN0cmluZz8gZ2V0QXR0cmlidXRlTlMoRE9NU3RyaW5nPyBuYW1lc3BhY2UsIERP
TVN0cmluZyBsb2NhbE5hbWUpOwotICB2b2lkIHNldEF0dHJpYnV0ZShET01TdHJpbmcgcXVhbGlm
aWVkTmFtZSwgRE9NU3RyaW5nIHZhbHVlKTsKLSAgdm9pZCBzZXRBdHRyaWJ1dGVOUyhET01TdHJp
bmc/IG5hbWVzcGFjZSwgRE9NU3RyaW5nIHF1YWxpZmllZE5hbWUsIERPTVN0cmluZyB2YWx1ZSk7
Ci0gIHZvaWQgcmVtb3ZlQXR0cmlidXRlKERPTVN0cmluZyBxdWFsaWZpZWROYW1lKTsKLSAgdm9p
ZCByZW1vdmVBdHRyaWJ1dGVOUyhET01TdHJpbmc/IG5hbWVzcGFjZSwgRE9NU3RyaW5nIGxvY2Fs
TmFtZSk7CisgIFtDRVJlYWN0aW9uc10gdm9pZCBzZXRBdHRyaWJ1dGUoRE9NU3RyaW5nIHF1YWxp
ZmllZE5hbWUsIERPTVN0cmluZyB2YWx1ZSk7CisgIFtDRVJlYWN0aW9uc10gdm9pZCBzZXRBdHRy
aWJ1dGVOUyhET01TdHJpbmc/IG5hbWVzcGFjZSwgRE9NU3RyaW5nIHF1YWxpZmllZE5hbWUsIERP
TVN0cmluZyB2YWx1ZSk7CisgIFtDRVJlYWN0aW9uc10gdm9pZCByZW1vdmVBdHRyaWJ1dGUoRE9N
U3RyaW5nIHF1YWxpZmllZE5hbWUpOworICBbQ0VSZWFjdGlvbnNdIHZvaWQgcmVtb3ZlQXR0cmli
dXRlTlMoRE9NU3RyaW5nPyBuYW1lc3BhY2UsIERPTVN0cmluZyBsb2NhbE5hbWUpOworICBbQ0VS
ZWFjdGlvbnNdIGJvb2xlYW4gdG9nZ2xlQXR0cmlidXRlKERPTVN0cmluZyBxdWFsaWZpZWROYW1l
LCBvcHRpb25hbCBib29sZWFuIGZvcmNlKTsKICAgYm9vbGVhbiBoYXNBdHRyaWJ1dGUoRE9NU3Ry
aW5nIHF1YWxpZmllZE5hbWUpOwogICBib29sZWFuIGhhc0F0dHJpYnV0ZU5TKERPTVN0cmluZz8g
bmFtZXNwYWNlLCBET01TdHJpbmcgbG9jYWxOYW1lKTsKIAogICBBdHRyPyBnZXRBdHRyaWJ1dGVO
b2RlKERPTVN0cmluZyBxdWFsaWZpZWROYW1lKTsKICAgQXR0cj8gZ2V0QXR0cmlidXRlTm9kZU5T
KERPTVN0cmluZz8gbmFtZXNwYWNlLCBET01TdHJpbmcgbG9jYWxOYW1lKTsKLSAgQXR0cj8gc2V0
QXR0cmlidXRlTm9kZShBdHRyIGF0dHIpOwotICBBdHRyPyBzZXRBdHRyaWJ1dGVOb2RlTlMoQXR0
ciBhdHRyKTsKLSAgQXR0ciByZW1vdmVBdHRyaWJ1dGVOb2RlKEF0dHIgYXR0cik7CisgIFtDRVJl
YWN0aW9uc10gQXR0cj8gc2V0QXR0cmlidXRlTm9kZShBdHRyIGF0dHIpOworICBbQ0VSZWFjdGlv
bnNdIEF0dHI/IHNldEF0dHJpYnV0ZU5vZGVOUyhBdHRyIGF0dHIpOworICBbQ0VSZWFjdGlvbnNd
IEF0dHIgcmVtb3ZlQXR0cmlidXRlTm9kZShBdHRyIGF0dHIpOwogCiAgIFNoYWRvd1Jvb3QgYXR0
YWNoU2hhZG93KFNoYWRvd1Jvb3RJbml0IGluaXQpOwogICByZWFkb25seSBhdHRyaWJ1dGUgU2hh
ZG93Um9vdD8gc2hhZG93Um9vdDsKQEAgLTM3Myw0MSArMzcwLDM5IEBAIGludGVyZmFjZSBFbGVt
ZW50IDogTm9kZSB7CiAgIEhUTUxDb2xsZWN0aW9uIGdldEVsZW1lbnRzQnlUYWdOYW1lTlMoRE9N
U3RyaW5nPyBuYW1lc3BhY2UsIERPTVN0cmluZyBsb2NhbE5hbWUpOwogICBIVE1MQ29sbGVjdGlv
biBnZXRFbGVtZW50c0J5Q2xhc3NOYW1lKERPTVN0cmluZyBjbGFzc05hbWVzKTsKIAotICBFbGVt
ZW50PyBpbnNlcnRBZGphY2VudEVsZW1lbnQoRE9NU3RyaW5nIHdoZXJlLCBFbGVtZW50IGVsZW1l
bnQpOyAvLyBoaXN0b3JpY2FsCisgIFtDRVJlYWN0aW9uc10gRWxlbWVudD8gaW5zZXJ0QWRqYWNl
bnRFbGVtZW50KERPTVN0cmluZyB3aGVyZSwgRWxlbWVudCBlbGVtZW50KTsgLy8gaGlzdG9yaWNh
bAogICB2b2lkIGluc2VydEFkamFjZW50VGV4dChET01TdHJpbmcgd2hlcmUsIERPTVN0cmluZyBk
YXRhKTsgLy8gaGlzdG9yaWNhbAogfTsKIAogZGljdGlvbmFyeSBTaGFkb3dSb290SW5pdCB7Ci0v
LyAgcmVxdWlyZWQgU2hhZG93Um9vdE1vZGUgbW9kZTsKKyAgcmVxdWlyZWQgU2hhZG93Um9vdE1v
ZGUgbW9kZTsKIH07CiAKLQotW0V4cG9zZWQ9V2luZG93LCBMZWdhY3lVbmVudW1lcmFibGVOYW1l
ZFByb3BlcnRpZXNdCitbRXhwb3NlZD1XaW5kb3csCisgTGVnYWN5VW5lbnVtZXJhYmxlTmFtZWRQ
cm9wZXJ0aWVzXQogaW50ZXJmYWNlIE5hbWVkTm9kZU1hcCB7CiAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSB1bnNpZ25lZCBsb25nIGxlbmd0aDsKICAgZ2V0dGVyIEF0dHI/IGl0ZW0odW5zaWduZWQgbG9u
ZyBpbmRleCk7CiAgIGdldHRlciBBdHRyPyBnZXROYW1lZEl0ZW0oRE9NU3RyaW5nIHF1YWxpZmll
ZE5hbWUpOwogICBBdHRyPyBnZXROYW1lZEl0ZW1OUyhET01TdHJpbmc/IG5hbWVzcGFjZSwgRE9N
U3RyaW5nIGxvY2FsTmFtZSk7Ci0gIEF0dHI/IHNldE5hbWVkSXRlbShBdHRyIGF0dHIpOwotICBB
dHRyPyBzZXROYW1lZEl0ZW1OUyhBdHRyIGF0dHIpOwotICBBdHRyIHJlbW92ZU5hbWVkSXRlbShE
T01TdHJpbmcgcXVhbGlmaWVkTmFtZSk7Ci0gIEF0dHIgcmVtb3ZlTmFtZWRJdGVtTlMoRE9NU3Ry
aW5nPyBuYW1lc3BhY2UsIERPTVN0cmluZyBsb2NhbE5hbWUpOworICBbQ0VSZWFjdGlvbnNdIEF0
dHI/IHNldE5hbWVkSXRlbShBdHRyIGF0dHIpOworICBbQ0VSZWFjdGlvbnNdIEF0dHI/IHNldE5h
bWVkSXRlbU5TKEF0dHIgYXR0cik7CisgIFtDRVJlYWN0aW9uc10gQXR0ciByZW1vdmVOYW1lZEl0
ZW0oRE9NU3RyaW5nIHF1YWxpZmllZE5hbWUpOworICBbQ0VSZWFjdGlvbnNdIEF0dHIgcmVtb3Zl
TmFtZWRJdGVtTlMoRE9NU3RyaW5nPyBuYW1lc3BhY2UsIERPTVN0cmluZyBsb2NhbE5hbWUpOwog
fTsKIAotCiBbRXhwb3NlZD1XaW5kb3ddCiBpbnRlcmZhY2UgQXR0ciA6IE5vZGUgewogICByZWFk
b25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nPyBuYW1lc3BhY2VVUkk7CiAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBET01TdHJpbmc/IHByZWZpeDsKICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBs
b2NhbE5hbWU7CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgbmFtZTsKLSAgICAgICAg
ICAgYXR0cmlidXRlIERPTVN0cmluZyB2YWx1ZTsKKyAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUg
RE9NU3RyaW5nIHZhbHVlOwogCiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBFbGVtZW50PyBvd25lckVs
ZW1lbnQ7CiAKICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gc3BlY2lmaWVkOyAvLyB1c2Vs
ZXNzOyBhbHdheXMgcmV0dXJucyB0cnVlCiB9OwotCiBbRXhwb3NlZD1XaW5kb3ddCiBpbnRlcmZh
Y2UgQ2hhcmFjdGVyRGF0YSA6IE5vZGUgewogICBhdHRyaWJ1dGUgW1RyZWF0TnVsbEFzPUVtcHR5
U3RyaW5nXSBET01TdHJpbmcgZGF0YTsKQEAgLTQxOSwyOSArNDE0LDI0IEBAIGludGVyZmFjZSBD
aGFyYWN0ZXJEYXRhIDogTm9kZSB7CiAgIHZvaWQgcmVwbGFjZURhdGEodW5zaWduZWQgbG9uZyBv
ZmZzZXQsIHVuc2lnbmVkIGxvbmcgY291bnQsIERPTVN0cmluZyBkYXRhKTsKIH07CiAKLQogW0Nv
bnN0cnVjdG9yKG9wdGlvbmFsIERPTVN0cmluZyBkYXRhID0gIiIpLAogIEV4cG9zZWQ9V2luZG93
XQogaW50ZXJmYWNlIFRleHQgOiBDaGFyYWN0ZXJEYXRhIHsKICAgW05ld09iamVjdF0gVGV4dCBz
cGxpdFRleHQodW5zaWduZWQgbG9uZyBvZmZzZXQpOwogICByZWFkb25seSBhdHRyaWJ1dGUgRE9N
U3RyaW5nIHdob2xlVGV4dDsKIH07Ci0KIFtFeHBvc2VkPVdpbmRvd10KIGludGVyZmFjZSBDREFU
QVNlY3Rpb24gOiBUZXh0IHsKIH07Ci0KIFtFeHBvc2VkPVdpbmRvd10KIGludGVyZmFjZSBQcm9j
ZXNzaW5nSW5zdHJ1Y3Rpb24gOiBDaGFyYWN0ZXJEYXRhIHsKICAgcmVhZG9ubHkgYXR0cmlidXRl
IERPTVN0cmluZyB0YXJnZXQ7CiB9OwotCiBbQ29uc3RydWN0b3Iob3B0aW9uYWwgRE9NU3RyaW5n
IGRhdGEgPSAiIiksCiAgRXhwb3NlZD1XaW5kb3ddCiBpbnRlcmZhY2UgQ29tbWVudCA6IENoYXJh
Y3RlckRhdGEgewogfTsKIAotCiBbRXhwb3NlZD1XaW5kb3ddCiBpbnRlcmZhY2UgQWJzdHJhY3RS
YW5nZSB7CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBOb2RlIHN0YXJ0Q29udGFpbmVyOwpAQCAtNDUx
LDcgKzQ0MSwxNSBAQCBpbnRlcmZhY2UgQWJzdHJhY3RSYW5nZSB7CiAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBib29sZWFuIGNvbGxhcHNlZDsKIH07CiAKLVtFeHBvc2VkPVdpbmRvd10KK2RpY3Rpb25h
cnkgU3RhdGljUmFuZ2VJbml0IHsKKyAgcmVxdWlyZWQgTm9kZSBzdGFydENvbnRhaW5lcjsKKyAg
cmVxdWlyZWQgdW5zaWduZWQgbG9uZyBzdGFydE9mZnNldDsKKyAgcmVxdWlyZWQgTm9kZSBlbmRD
b250YWluZXI7CisgIHJlcXVpcmVkIHVuc2lnbmVkIGxvbmcgZW5kT2Zmc2V0OworfTsKKworW0Nv
bnN0cnVjdG9yKFN0YXRpY1JhbmdlSW5pdCBpbml0KSwKKyBFeHBvc2VkPVdpbmRvd10KIGludGVy
ZmFjZSBTdGF0aWNSYW5nZSA6IEFic3RyYWN0UmFuZ2UgewogfTsKIApAQCAtNDc2LDExICs0NzQs
MTEgQEAgaW50ZXJmYWNlIFJhbmdlIDogQWJzdHJhY3RSYW5nZSB7CiAgIGNvbnN0IHVuc2lnbmVk
IHNob3J0IEVORF9UT19TVEFSVCA9IDM7CiAgIHNob3J0IGNvbXBhcmVCb3VuZGFyeVBvaW50cyh1
bnNpZ25lZCBzaG9ydCBob3csIFJhbmdlIHNvdXJjZVJhbmdlKTsKIAotICB2b2lkIGRlbGV0ZUNv
bnRlbnRzKCk7Ci0gIFtOZXdPYmplY3RdIERvY3VtZW50RnJhZ21lbnQgZXh0cmFjdENvbnRlbnRz
KCk7Ci0gIFtOZXdPYmplY3RdIERvY3VtZW50RnJhZ21lbnQgY2xvbmVDb250ZW50cygpOwotICB2
b2lkIGluc2VydE5vZGUoTm9kZSBub2RlKTsKLSAgdm9pZCBzdXJyb3VuZENvbnRlbnRzKE5vZGUg
bmV3UGFyZW50KTsKKyAgW0NFUmVhY3Rpb25zXSB2b2lkIGRlbGV0ZUNvbnRlbnRzKCk7CisgIFtD
RVJlYWN0aW9ucywgTmV3T2JqZWN0XSBEb2N1bWVudEZyYWdtZW50IGV4dHJhY3RDb250ZW50cygp
OworICBbQ0VSZWFjdGlvbnMsIE5ld09iamVjdF0gRG9jdW1lbnRGcmFnbWVudCBjbG9uZUNvbnRl
bnRzKCk7CisgIFtDRVJlYWN0aW9uc10gdm9pZCBpbnNlcnROb2RlKE5vZGUgbm9kZSk7CisgIFtD
RVJlYWN0aW9uc10gdm9pZCBzdXJyb3VuZENvbnRlbnRzKE5vZGUgbmV3UGFyZW50KTsKIAogICBb
TmV3T2JqZWN0XSBSYW5nZSBjbG9uZVJhbmdlKCk7CiAgIHZvaWQgZGV0YWNoKCk7CkBAIC00OTMs
NyArNDkxLDYgQEAgaW50ZXJmYWNlIFJhbmdlIDogQWJzdHJhY3RSYW5nZSB7CiAgIHN0cmluZ2lm
aWVyOwogfTsKIAotCiBbRXhwb3NlZD1XaW5kb3ddCiBpbnRlcmZhY2UgTm9kZUl0ZXJhdG9yIHsK
ICAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBOb2RlIHJvb3Q7CkBAIC01MDgsNyAr
NTA1LDYgQEAgaW50ZXJmYWNlIE5vZGVJdGVyYXRvciB7CiAgIHZvaWQgZGV0YWNoKCk7CiB9Owog
Ci0KIFtFeHBvc2VkPVdpbmRvd10KIGludGVyZmFjZSBUcmVlV2Fsa2VyIHsKICAgW1NhbWVPYmpl
Y3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBOb2RlIHJvb3Q7CkBAIC01MjQsNyArNTIwLDYgQEAgaW50
ZXJmYWNlIFRyZWVXYWxrZXIgewogICBOb2RlPyBwcmV2aW91c05vZGUoKTsKICAgTm9kZT8gbmV4
dE5vZGUoKTsKIH07Ci0KIFtFeHBvc2VkPVdpbmRvd10KIGNhbGxiYWNrIGludGVyZmFjZSBOb2Rl
RmlsdGVyIHsKICAgLy8gQ29uc3RhbnRzIGZvciBhY2NlcHROb2RlKCkKQEAgLTUzNSw3ICs1MzAs
NyBAQCBjYWxsYmFjayBpbnRlcmZhY2UgTm9kZUZpbHRlciB7CiAgIC8vIENvbnN0YW50cyBmb3Ig
d2hhdFRvU2hvdwogICBjb25zdCB1bnNpZ25lZCBsb25nIFNIT1dfQUxMID0gMHhGRkZGRkZGRjsK
ICAgY29uc3QgdW5zaWduZWQgbG9uZyBTSE9XX0VMRU1FTlQgPSAweDE7Ci0gIGNvbnN0IHVuc2ln
bmVkIGxvbmcgU0hPV19BVFRSSUJVVEUgPSAweDI7IC8vIGhpc3RvcmljYWwKKyAgY29uc3QgdW5z
aWduZWQgbG9uZyBTSE9XX0FUVFJJQlVURSA9IDB4MjsKICAgY29uc3QgdW5zaWduZWQgbG9uZyBT
SE9XX1RFWFQgPSAweDQ7CiAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgU0hPV19DREFUQV9TRUNUSU9O
ID0gMHg4OwogICBjb25zdCB1bnNpZ25lZCBsb25nIFNIT1dfRU5USVRZX1JFRkVSRU5DRSA9IDB4
MTA7IC8vIGhpc3RvcmljYWwKQEAgLTU1MCw3ICs1NDUsNyBAQCBjYWxsYmFjayBpbnRlcmZhY2Ug
Tm9kZUZpbHRlciB7CiAgIHVuc2lnbmVkIHNob3J0IGFjY2VwdE5vZGUoTm9kZSBub2RlKTsKIH07
CiAKLQorW0V4cG9zZWQ9V2luZG93XQogaW50ZXJmYWNlIERPTVRva2VuTGlzdCB7CiAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxlbmd0aDsKICAgZ2V0dGVyIERPTVN0cmluZz8g
aXRlbSh1bnNpZ25lZCBsb25nIGluZGV4KTsKQEAgLTU2MSw1ICs1NTYsNTMgQEAgaW50ZXJmYWNl
IERPTVRva2VuTGlzdCB7CiAgIFtDRVJlYWN0aW9uc10gYm9vbGVhbiByZXBsYWNlKERPTVN0cmlu
ZyB0b2tlbiwgRE9NU3RyaW5nIG5ld1Rva2VuKTsKICAgYm9vbGVhbiBzdXBwb3J0cyhET01TdHJp
bmcgdG9rZW4pOwogICBbQ0VSZWFjdGlvbnNdIHN0cmluZ2lmaWVyIGF0dHJpYnV0ZSBET01TdHJp
bmcgdmFsdWU7Ci0gIC8vICBpdGVyYWJsZTxET01TdHJpbmc+OworICBpdGVyYWJsZTxET01TdHJp
bmc+OworfTsKKworW0V4cG9zZWQ9V2luZG93XQoraW50ZXJmYWNlIFhQYXRoUmVzdWx0IHsKKyAg
Y29uc3QgdW5zaWduZWQgc2hvcnQgQU5ZX1RZUEUgPSAwOworICBjb25zdCB1bnNpZ25lZCBzaG9y
dCBOVU1CRVJfVFlQRSA9IDE7CisgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNUUklOR19UWVBFID0g
MjsKKyAgY29uc3QgdW5zaWduZWQgc2hvcnQgQk9PTEVBTl9UWVBFID0gMzsKKyAgY29uc3QgdW5z
aWduZWQgc2hvcnQgVU5PUkRFUkVEX05PREVfSVRFUkFUT1JfVFlQRSA9IDQ7CisgIGNvbnN0IHVu
c2lnbmVkIHNob3J0IE9SREVSRURfTk9ERV9JVEVSQVRPUl9UWVBFID0gNTsKKyAgY29uc3QgdW5z
aWduZWQgc2hvcnQgVU5PUkRFUkVEX05PREVfU05BUFNIT1RfVFlQRSA9IDY7CisgIGNvbnN0IHVu
c2lnbmVkIHNob3J0IE9SREVSRURfTk9ERV9TTkFQU0hPVF9UWVBFID0gNzsKKyAgY29uc3QgdW5z
aWduZWQgc2hvcnQgQU5ZX1VOT1JERVJFRF9OT0RFX1RZUEUgPSA4OworICBjb25zdCB1bnNpZ25l
ZCBzaG9ydCBGSVJTVF9PUkRFUkVEX05PREVfVFlQRSA9IDk7CisKKyAgcmVhZG9ubHkgYXR0cmli
dXRlIHVuc2lnbmVkIHNob3J0IHJlc3VsdFR5cGU7CisgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnJl
c3RyaWN0ZWQgZG91YmxlIG51bWJlclZhbHVlOworICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3Ry
aW5nIHN0cmluZ1ZhbHVlOworICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBib29sZWFuVmFs
dWU7CisgIHJlYWRvbmx5IGF0dHJpYnV0ZSBOb2RlPyBzaW5nbGVOb2RlVmFsdWU7CisgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBib29sZWFuIGludmFsaWRJdGVyYXRvclN0YXRlOworICByZWFkb25seSBh
dHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBzbmFwc2hvdExlbmd0aDsKKworICBOb2RlPyBpdGVyYXRl
TmV4dCgpOworICBOb2RlPyBzbmFwc2hvdEl0ZW0odW5zaWduZWQgbG9uZyBpbmRleCk7Cit9Owor
CitbRXhwb3NlZD1XaW5kb3ddCitpbnRlcmZhY2UgWFBhdGhFeHByZXNzaW9uIHsKKyAgLy8gWFBh
dGhSZXN1bHQuQU5ZX1RZUEUgPSAwCisgIFhQYXRoUmVzdWx0IGV2YWx1YXRlKE5vZGUgY29udGV4
dE5vZGUsIG9wdGlvbmFsIHVuc2lnbmVkIHNob3J0IHR5cGUgPSAwLCBvcHRpb25hbCBYUGF0aFJl
c3VsdD8gcmVzdWx0ID0gbnVsbCk7CiB9OworCitjYWxsYmFjayBpbnRlcmZhY2UgWFBhdGhOU1Jl
c29sdmVyIHsKKyAgRE9NU3RyaW5nPyBsb29rdXBOYW1lc3BhY2VVUkkoRE9NU3RyaW5nPyBwcmVm
aXgpOworfTsKKworaW50ZXJmYWNlIG1peGluIFhQYXRoRXZhbHVhdG9yQmFzZSB7CisgIFtOZXdP
YmplY3RdIFhQYXRoRXhwcmVzc2lvbiBjcmVhdGVFeHByZXNzaW9uKERPTVN0cmluZyBleHByZXNz
aW9uLCBvcHRpb25hbCBYUGF0aE5TUmVzb2x2ZXI/IHJlc29sdmVyID0gbnVsbCk7CisgIFhQYXRo
TlNSZXNvbHZlciBjcmVhdGVOU1Jlc29sdmVyKE5vZGUgbm9kZVJlc29sdmVyKTsKKyAgLy8gWFBh
dGhSZXN1bHQuQU5ZX1RZUEUgPSAwCisgIFhQYXRoUmVzdWx0IGV2YWx1YXRlKERPTVN0cmluZyBl
eHByZXNzaW9uLCBOb2RlIGNvbnRleHROb2RlLCBvcHRpb25hbCBYUGF0aE5TUmVzb2x2ZXI/IHJl
c29sdmVyID0gbnVsbCwgb3B0aW9uYWwgdW5zaWduZWQgc2hvcnQgdHlwZSA9IDAsIG9wdGlvbmFs
IFhQYXRoUmVzdWx0PyByZXN1bHQgPSBudWxsKTsKK307CitEb2N1bWVudCBpbmNsdWRlcyBYUGF0
aEV2YWx1YXRvckJhc2U7CisKK1tFeHBvc2VkPVdpbmRvdywgQ29uc3RydWN0b3JdCitpbnRlcmZh
Y2UgWFBhdGhFdmFsdWF0b3Ige307CisKK1hQYXRoRXZhbHVhdG9yIGluY2x1ZGVzIFhQYXRoRXZh
bHVhdG9yQmFzZTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaW50ZXJmYWNlcy9odG1sLmlkbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaW50ZXJmYWNlcy9odG1sLmlkbAppbmRleCA0OTM0OGE3MjNi
MzU5MzUxYWZmYjgxNDZmMDBhMDBiYjRlNmEzMTk5Li5kODU2Y2Q1NzhhYTBhMGQxNWYwOWQwYzk1
YmViZjQ4YjBmOTVjMGQ2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ludGVyZmFjZXMvaHRtbC5pZGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbnRlcmZhY2VzL2h0bWwuaWRsCkBAIC0xLDgg
KzEsMTMgQEAKKy8vIEdFTkVSQVRFRCBDT05URU5UIC0gRE8gTk9UIEVESVQKKy8vIENvbnRlbnQg
d2FzIGF1dG9tYXRpY2FsbHkgZXh0cmFjdGVkIGJ5IFJlZmZ5IGludG8gcmVmZnktcmVwb3J0cwor
Ly8gKGh0dHBzOi8vZ2l0aHViLmNvbS90aWRvdXN0L3JlZmZ5LXJlcG9ydHMpCisvLyBTb3VyY2U6
IEhUTUwgU3RhbmRhcmQgKGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvKQorCiBbRXhwb3Nl
ZD1XaW5kb3csCiAgTGVnYWN5VW5lbnVtZXJhYmxlTmFtZWRQcm9wZXJ0aWVzXQogaW50ZXJmYWNl
IEhUTUxBbGxDb2xsZWN0aW9uIHsKICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcg
bGVuZ3RoOwotICBnZXR0ZXIgRWxlbWVudD8gKHVuc2lnbmVkIGxvbmcgaW5kZXgpOworICBnZXR0
ZXIgRWxlbWVudCAodW5zaWduZWQgbG9uZyBpbmRleCk7CiAgIGdldHRlciAoSFRNTENvbGxlY3Rp
b24gb3IgRWxlbWVudCk/IG5hbWVkSXRlbShET01TdHJpbmcgbmFtZSk7CiAgIChIVE1MQ29sbGVj
dGlvbiBvciBFbGVtZW50KT8gaXRlbShvcHRpb25hbCBET01TdHJpbmcgbmFtZU9ySW5kZXgpOwog
CkBAIC0xNSw2ICsyMCw3IEBAIGludGVyZmFjZSBIVE1MRm9ybUNvbnRyb2xzQ29sbGVjdGlvbiA6
IEhUTUxDb2xsZWN0aW9uIHsKICAgZ2V0dGVyIChSYWRpb05vZGVMaXN0IG9yIEVsZW1lbnQpPyBu
YW1lZEl0ZW0oRE9NU3RyaW5nIG5hbWUpOyAvLyBzaGFkb3dzIGluaGVyaXRlZCBuYW1lZEl0ZW0o
KQogfTsKIAorW0V4cG9zZWQ9V2luZG93XQogaW50ZXJmYWNlIFJhZGlvTm9kZUxpc3QgOiBOb2Rl
TGlzdCB7CiAgIGF0dHJpYnV0ZSBET01TdHJpbmcgdmFsdWU7CiB9OwpAQCAtNjUsMTUgKzcxLDE0
IEBAIHBhcnRpYWwgaW50ZXJmYWNlIERvY3VtZW50IHsKICAgcmVhZG9ubHkgYXR0cmlidXRlIEhU
TUxPclNWR1NjcmlwdEVsZW1lbnQ/IGN1cnJlbnRTY3JpcHQ7IC8vIGNsYXNzaWMgc2NyaXB0cyBp
biBhIGRvY3VtZW50IHRyZWUgb25seQogCiAgIC8vIGR5bmFtaWMgbWFya3VwIGluc2VydGlvbgot
ICBbQ0VSZWFjdGlvbnNdIERvY3VtZW50IG9wZW4ob3B0aW9uYWwgRE9NU3RyaW5nIHR5cGUgPSAi
dGV4dC9odG1sIiwgb3B0aW9uYWwgRE9NU3RyaW5nIHJlcGxhY2UgPSAiIik7Ci0gIFdpbmRvd1By
b3h5IG9wZW4oVVNWU3RyaW5nIHVybCwgRE9NU3RyaW5nIG5hbWUsIERPTVN0cmluZyBmZWF0dXJl
cyk7CisgIFtDRVJlYWN0aW9uc10gRG9jdW1lbnQgb3BlbihvcHRpb25hbCBET01TdHJpbmcgdW51
c2VkMSwgb3B0aW9uYWwgRE9NU3RyaW5nIHVudXNlZDIpOyAvLyBib3RoIGFyZ3VtZW50cyBhcmUg
aWdub3JlZAorICBXaW5kb3dQcm94eT8gb3BlbihVU1ZTdHJpbmcgdXJsLCBET01TdHJpbmcgbmFt
ZSwgRE9NU3RyaW5nIGZlYXR1cmVzKTsKICAgW0NFUmVhY3Rpb25zXSB2b2lkIGNsb3NlKCk7CiAg
IFtDRVJlYWN0aW9uc10gdm9pZCB3cml0ZShET01TdHJpbmcuLi4gdGV4dCk7CiAgIFtDRVJlYWN0
aW9uc10gdm9pZCB3cml0ZWxuKERPTVN0cmluZy4uLiB0ZXh0KTsKIAogICAvLyB1c2VyIGludGVy
YWN0aW9uCiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBXaW5kb3dQcm94eT8gZGVmYXVsdFZpZXc7Ci0g
IHJlYWRvbmx5IGF0dHJpYnV0ZSBFbGVtZW50PyBhY3RpdmVFbGVtZW50OwogICBib29sZWFuIGhh
c0ZvY3VzKCk7CiAgIFtDRVJlYWN0aW9uc10gYXR0cmlidXRlIERPTVN0cmluZyBkZXNpZ25Nb2Rl
OwogICBbQ0VSZWFjdGlvbnNdIGJvb2xlYW4gZXhlY0NvbW1hbmQoRE9NU3RyaW5nIGNvbW1hbmRJ
ZCwgb3B0aW9uYWwgYm9vbGVhbiBzaG93VUkgPSBmYWxzZSwgb3B0aW9uYWwgRE9NU3RyaW5nIHZh
bHVlID0gIiIpOwpAQCAtODUsMTAgKzkwLDE2IEBAIHBhcnRpYWwgaW50ZXJmYWNlIERvY3VtZW50
IHsKIAogICAvLyBzcGVjaWFsIGV2ZW50IGhhbmRsZXIgSURMIGF0dHJpYnV0ZXMgdGhhdCBvbmx5
IGFwcGx5IHRvIERvY3VtZW50IG9iamVjdHMKICAgW0xlbmllbnRUaGlzXSBhdHRyaWJ1dGUgRXZl
bnRIYW5kbGVyIG9ucmVhZHlzdGF0ZWNoYW5nZTsKKworICAvLyBhbHNvIGhhcyBvYnNvbGV0ZSBt
ZW1iZXJzCiB9OwogRG9jdW1lbnQgaW5jbHVkZXMgR2xvYmFsRXZlbnRIYW5kbGVyczsKIERvY3Vt
ZW50IGluY2x1ZGVzIERvY3VtZW50QW5kRWxlbWVudEV2ZW50SGFuZGxlcnM7CiAKK3BhcnRpYWwg
aW50ZXJmYWNlIG1peGluIERvY3VtZW50T3JTaGFkb3dSb290IHsKKyAgcmVhZG9ubHkgYXR0cmli
dXRlIEVsZW1lbnQ/IGFjdGl2ZUVsZW1lbnQ7Cit9OworCiBbRXhwb3NlZD1XaW5kb3csCiAgSFRN
TENvbnN0cnVjdG9yXQogaW50ZXJmYWNlIEhUTUxFbGVtZW50IDogRWxlbWVudCB7CkBAIC05Nywz
MyArMTA4LDQwIEBAIGludGVyZmFjZSBIVE1MRWxlbWVudCA6IEVsZW1lbnQgewogICBbQ0VSZWFj
dGlvbnNdIGF0dHJpYnV0ZSBET01TdHJpbmcgbGFuZzsKICAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1
dGUgYm9vbGVhbiB0cmFuc2xhdGU7CiAgIFtDRVJlYWN0aW9uc10gYXR0cmlidXRlIERPTVN0cmlu
ZyBkaXI7Ci0gIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nTWFwIGRh
dGFzZXQ7CiAKICAgLy8gdXNlciBpbnRlcmFjdGlvbgogICBbQ0VSZWFjdGlvbnNdIGF0dHJpYnV0
ZSBib29sZWFuIGhpZGRlbjsKICAgdm9pZCBjbGljaygpOwotICBbQ0VSZWFjdGlvbnNdIGF0dHJp
YnV0ZSBsb25nIHRhYkluZGV4OwotICB2b2lkIGZvY3VzKG9wdGlvbmFsIEZvY3VzT3B0aW9ucyBv
cHRpb25zKTsKLSAgdm9pZCBibHVyKCk7CiAgIFtDRVJlYWN0aW9uc10gYXR0cmlidXRlIERPTVN0
cmluZyBhY2Nlc3NLZXk7CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgYWNjZXNzS2V5
TGFiZWw7CiAgIFtDRVJlYWN0aW9uc10gYXR0cmlidXRlIGJvb2xlYW4gZHJhZ2dhYmxlOwogICBb
Q0VSZWFjdGlvbnNdIGF0dHJpYnV0ZSBib29sZWFuIHNwZWxsY2hlY2s7CisgIFtDRVJlYWN0aW9u
c10gYXR0cmlidXRlIERPTVN0cmluZyBhdXRvY2FwaXRhbGl6ZTsKIAogICBbQ0VSZWFjdGlvbnNd
IGF0dHJpYnV0ZSBbVHJlYXROdWxsQXM9RW1wdHlTdHJpbmddIERPTVN0cmluZyBpbm5lclRleHQ7
Ci19OwogCi1kaWN0aW9uYXJ5IEZvY3VzT3B0aW9ucyB7Ci0gIGJvb2xlYW4gcHJldmVudFNjcm9s
bCA9IGZhbHNlOworICBFbGVtZW50SW50ZXJuYWxzIGF0dGFjaEludGVybmFscygpOwogfTsKIAog
SFRNTEVsZW1lbnQgaW5jbHVkZXMgR2xvYmFsRXZlbnRIYW5kbGVyczsKIEhUTUxFbGVtZW50IGlu
Y2x1ZGVzIERvY3VtZW50QW5kRWxlbWVudEV2ZW50SGFuZGxlcnM7CiBIVE1MRWxlbWVudCBpbmNs
dWRlcyBFbGVtZW50Q29udGVudEVkaXRhYmxlOworSFRNTEVsZW1lbnQgaW5jbHVkZXMgSFRNTE9y
U1ZHRWxlbWVudDsKIAogLy8gTm90ZTogaW50ZW50aW9uYWxseSBub3QgW0hUTUxDb25zdHJ1Y3Rv
cl0KK1tFeHBvc2VkPVdpbmRvd10KIGludGVyZmFjZSBIVE1MVW5rbm93bkVsZW1lbnQgOiBIVE1M
RWxlbWVudCB7IH07CiAKK2ludGVyZmFjZSBtaXhpbiBIVE1MT3JTVkdFbGVtZW50IHsKKyAgW1Nh
bWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmdNYXAgZGF0YXNldDsKKyAgYXR0
cmlidXRlIERPTVN0cmluZyBub25jZTsgLy8gaW50ZW50aW9uYWxseSBubyBbQ0VSZWFjdGlvbnNd
CisKKyAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgYm9vbGVhbiBhdXRvZm9jdXM7CisgIFtDRVJl
YWN0aW9uc10gYXR0cmlidXRlIGxvbmcgdGFiSW5kZXg7CisgIHZvaWQgZm9jdXMob3B0aW9uYWwg
Rm9jdXNPcHRpb25zIG9wdGlvbnMgPSB7fSk7CisgIHZvaWQgYmx1cigpOworfTsKKwogW0V4cG9z
ZWQ9V2luZG93LAogIE92ZXJyaWRlQnVpbHRpbnNdCiBpbnRlcmZhY2UgRE9NU3RyaW5nTWFwIHsK
QEAgLTE2NCwxNCArMTgyLDEzIEBAIGludGVyZmFjZSBIVE1MTGlua0VsZW1lbnQgOiBIVE1MRWxl
bWVudCB7CiAgIFtDRVJlYWN0aW9uc10gYXR0cmlidXRlIERPTVN0cmluZyBhczsgLy8gKGRlZmF1
bHQgIiIpCiAgIFtTYW1lT2JqZWN0LCBQdXRGb3J3YXJkcz12YWx1ZV0gcmVhZG9ubHkgYXR0cmli
dXRlIERPTVRva2VuTGlzdCByZWxMaXN0OwogICBbQ0VSZWFjdGlvbnNdIGF0dHJpYnV0ZSBET01T
dHJpbmcgbWVkaWE7Ci0gIFtDRVJlYWN0aW9uc10gYXR0cmlidXRlIERPTVN0cmluZyBub25jZTsK
ICAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGludGVncml0eTsKICAgW0NFUmVh
Y3Rpb25zXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGhyZWZsYW5nOwogICBbQ0VSZWFjdGlvbnNdIGF0
dHJpYnV0ZSBET01TdHJpbmcgdHlwZTsKICAgW1NhbWVPYmplY3QsIFB1dEZvcndhcmRzPXZhbHVl
XSByZWFkb25seSBhdHRyaWJ1dGUgRE9NVG9rZW5MaXN0IHNpemVzOworICBbQ0VSZWFjdGlvbnNd
IGF0dHJpYnV0ZSBVU1ZTdHJpbmcgaW1hZ2VTcmNzZXQ7CisgIFtDRVJlYWN0aW9uc10gYXR0cmli
dXRlIERPTVN0cmluZyBpbWFnZVNpemVzOwogICBbQ0VSZWFjdGlvbnNdIGF0dHJpYnV0ZSBET01T
dHJpbmcgcmVmZXJyZXJQb2xpY3k7Ci0gIFtDRVJlYWN0aW9uc10gYXR0cmlidXRlIERPTVN0cmlu
ZyB3b3JrZXJUeXBlOwotICBbQ0VSZWFjdGlvbnNdIGF0dHJpYnV0ZSBET01TdHJpbmcgdXBkYXRl
VmlhQ2FjaGU7CiAKICAgLy8gYWxzbyBoYXMgb2Jzb2xldGUgbWVtYmVycwogfTsKQEAgLTE5MSw4
ICsyMDgsOCBAQCBpbnRlcmZhY2UgSFRNTE1ldGFFbGVtZW50IDogSFRNTEVsZW1lbnQgewogIEhU
TUxDb25zdHJ1Y3Rvcl0KIGludGVyZmFjZSBIVE1MU3R5bGVFbGVtZW50IDogSFRNTEVsZW1lbnQg
ewogICBbQ0VSZWFjdGlvbnNdIGF0dHJpYnV0ZSBET01TdHJpbmcgbWVkaWE7Ci0gIFtDRVJlYWN0
aW9uc10gYXR0cmlidXRlIERPTVN0cmluZyBub25jZTsKLSAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1
dGUgRE9NU3RyaW5nIHR5cGU7CisKKyAgLy8gYWxzbyBoYXMgb2Jzb2xldGUgbWVtYmVycwogfTsK
IEhUTUxTdHlsZUVsZW1lbnQgaW5jbHVkZXMgTGlua1N0eWxlOwogCkBAIC0zNzEsNiArMzg4LDcg
QEAgaW50ZXJmYWNlIEhUTUxJbWFnZUVsZW1lbnQgOiBIVE1MRWxlbWVudCB7CiAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBib29sZWFuIGNvbXBsZXRlOwogICByZWFkb25seSBhdHRyaWJ1dGUgVVNWU3Ry
aW5nIGN1cnJlbnRTcmM7CiAgIFtDRVJlYWN0aW9uc10gYXR0cmlidXRlIERPTVN0cmluZyByZWZl
cnJlclBvbGljeTsKKyAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGRlY29kaW5n
OwogCiAgIFByb21pc2U8dm9pZD4gZGVjb2RlKCk7CiAKQEAgLTM4NCwxNiArNDAyLDE1IEBAIGlu
dGVyZmFjZSBIVE1MSUZyYW1lRWxlbWVudCA6IEhUTUxFbGVtZW50IHsKICAgW0NFUmVhY3Rpb25z
XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHNyY2RvYzsKICAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUg
RE9NU3RyaW5nIG5hbWU7CiAgIFtTYW1lT2JqZWN0LCBQdXRGb3J3YXJkcz12YWx1ZV0gcmVhZG9u
bHkgYXR0cmlidXRlIERPTVRva2VuTGlzdCBzYW5kYm94OworICBbQ0VSZWFjdGlvbnNdIGF0dHJp
YnV0ZSBET01TdHJpbmcgYWxsb3c7CiAgIFtDRVJlYWN0aW9uc10gYXR0cmlidXRlIGJvb2xlYW4g
YWxsb3dGdWxsc2NyZWVuOwogICBbQ0VSZWFjdGlvbnNdIGF0dHJpYnV0ZSBib29sZWFuIGFsbG93
UGF5bWVudFJlcXVlc3Q7Ci0gIFtDRVJlYWN0aW9uc10gYXR0cmlidXRlIGJvb2xlYW4gYWxsb3dV
c2VyTWVkaWE7CiAgIFtDRVJlYWN0aW9uc10gYXR0cmlidXRlIERPTVN0cmluZyB3aWR0aDsKICAg
W0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGhlaWdodDsKICAgW0NFUmVhY3Rpb25z
XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHJlZmVycmVyUG9saWN5OwogICByZWFkb25seSBhdHRyaWJ1
dGUgRG9jdW1lbnQ/IGNvbnRlbnREb2N1bWVudDsKICAgcmVhZG9ubHkgYXR0cmlidXRlIFdpbmRv
d1Byb3h5PyBjb250ZW50V2luZG93OwogICBEb2N1bWVudD8gZ2V0U1ZHRG9jdW1lbnQoKTsKLSAg
W1NhbWVPYmplY3QsIFB1dEZvcndhcmRzPXZhbHVlXSByZWFkb25seSBhdHRyaWJ1dGUgRE9NVG9r
ZW5MaXN0IGRlbGVnYXRlU3RpY2t5VXNlckFjdGl2YXRpb247CiAKICAgLy8gYWxzbyBoYXMgb2Jz
b2xldGUgbWVtYmVycwogfTsKQEAgLTQxNSw3ICs0MzIsNiBAQCBpbnRlcmZhY2UgSFRNTEVtYmVk
RWxlbWVudCA6IEhUTUxFbGVtZW50IHsKIGludGVyZmFjZSBIVE1MT2JqZWN0RWxlbWVudCA6IEhU
TUxFbGVtZW50IHsKICAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgVVNWU3RyaW5nIGRhdGE7CiAg
IFtDRVJlYWN0aW9uc10gYXR0cmlidXRlIERPTVN0cmluZyB0eXBlOwotICBbQ0VSZWFjdGlvbnNd
IGF0dHJpYnV0ZSBib29sZWFuIHR5cGVNdXN0TWF0Y2g7CiAgIFtDRVJlYWN0aW9uc10gYXR0cmli
dXRlIERPTVN0cmluZyBuYW1lOwogICBbQ0VSZWFjdGlvbnNdIGF0dHJpYnV0ZSBET01TdHJpbmcg
dXNlTWFwOwogICByZWFkb25seSBhdHRyaWJ1dGUgSFRNTEZvcm1FbGVtZW50PyBmb3JtOwpAQCAt
NjU0LDcgKzY3MCw3IEBAIGludGVyZmFjZSBUaW1lUmFuZ2VzIHsKIH07CiAKIFtFeHBvc2VkPVdp
bmRvdywKLSBDb25zdHJ1Y3RvcihET01TdHJpbmcgdHlwZSwgb3B0aW9uYWwgVHJhY2tFdmVudElu
aXQgZXZlbnRJbml0RGljdCldCisgQ29uc3RydWN0b3IoRE9NU3RyaW5nIHR5cGUsIG9wdGlvbmFs
IFRyYWNrRXZlbnRJbml0IGV2ZW50SW5pdERpY3QgPSB7fSldCiBpbnRlcmZhY2UgVHJhY2tFdmVu
dCA6IEV2ZW50IHsKICAgcmVhZG9ubHkgYXR0cmlidXRlIChWaWRlb1RyYWNrIG9yIEF1ZGlvVHJh
Y2sgb3IgVGV4dFRyYWNrKT8gdHJhY2s7CiB9OwpAQCAtNzMwLDcgKzc0Niw3IEBAIGludGVyZmFj
ZSBIVE1MVGFibGVDb2xFbGVtZW50IDogSFRNTEVsZW1lbnQgewogIEhUTUxDb25zdHJ1Y3Rvcl0K
IGludGVyZmFjZSBIVE1MVGFibGVTZWN0aW9uRWxlbWVudCA6IEhUTUxFbGVtZW50IHsKICAgW1Nh
bWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBIVE1MQ29sbGVjdGlvbiByb3dzOwotICBIVE1M
RWxlbWVudCBpbnNlcnRSb3cob3B0aW9uYWwgbG9uZyBpbmRleCA9IC0xKTsKKyAgSFRNTFRhYmxl
Um93RWxlbWVudCBpbnNlcnRSb3cob3B0aW9uYWwgbG9uZyBpbmRleCA9IC0xKTsKICAgW0NFUmVh
Y3Rpb25zXSB2b2lkIGRlbGV0ZVJvdyhsb25nIGluZGV4KTsKIAogICAvLyBhbHNvIGhhcyBvYnNv
bGV0ZSBtZW1iZXJzCkBAIC03NzYsNiArNzkyLDggQEAgaW50ZXJmYWNlIEhUTUxGb3JtRWxlbWVu
dCA6IEhUTUxFbGVtZW50IHsKICAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIG5h
bWU7CiAgIFtDRVJlYWN0aW9uc10gYXR0cmlidXRlIGJvb2xlYW4gbm9WYWxpZGF0ZTsKICAgW0NF
UmVhY3Rpb25zXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHRhcmdldDsKKyAgW0NFUmVhY3Rpb25zXSBh
dHRyaWJ1dGUgRE9NU3RyaW5nIHJlbDsKKyAgW1NhbWVPYmplY3QsIFB1dEZvcndhcmRzPXZhbHVl
XSByZWFkb25seSBhdHRyaWJ1dGUgRE9NVG9rZW5MaXN0IHJlbExpc3Q7CiAKICAgW1NhbWVPYmpl
Y3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBIVE1MRm9ybUNvbnRyb2xzQ29sbGVjdGlvbiBlbGVtZW50
czsKICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbGVuZ3RoOwpAQCAtNzgzLDYg
KzgwMSw3IEBAIGludGVyZmFjZSBIVE1MRm9ybUVsZW1lbnQgOiBIVE1MRWxlbWVudCB7CiAgIGdl
dHRlciAoUmFkaW9Ob2RlTGlzdCBvciBFbGVtZW50KSAoRE9NU3RyaW5nIG5hbWUpOwogCiAgIHZv
aWQgc3VibWl0KCk7CisgIHZvaWQgcmVxdWVzdFN1Ym1pdChvcHRpb25hbCBIVE1MRWxlbWVudCBz
dWJtaXR0ZXIpOwogICBbQ0VSZWFjdGlvbnNdIHZvaWQgcmVzZXQoKTsKICAgYm9vbGVhbiBjaGVj
a1ZhbGlkaXR5KCk7CiAgIGJvb2xlYW4gcmVwb3J0VmFsaWRpdHkoKTsKQEAgLTgwMiw3ICs4MjEs
NiBAQCBpbnRlcmZhY2UgSFRNTElucHV0RWxlbWVudCA6IEhUTUxFbGVtZW50IHsKICAgW0NFUmVh
Y3Rpb25zXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGFjY2VwdDsKICAgW0NFUmVhY3Rpb25zXSBhdHRy
aWJ1dGUgRE9NU3RyaW5nIGFsdDsKICAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgRE9NU3RyaW5n
IGF1dG9jb21wbGV0ZTsKLSAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgYm9vbGVhbiBhdXRvZm9j
dXM7CiAgIFtDRVJlYWN0aW9uc10gYXR0cmlidXRlIGJvb2xlYW4gZGVmYXVsdENoZWNrZWQ7CiAg
IGF0dHJpYnV0ZSBib29sZWFuIGNoZWNrZWQ7CiAgIFtDRVJlYWN0aW9uc10gYXR0cmlidXRlIERP
TVN0cmluZyBkaXJOYW1lOwpAQCAtODYzLDcgKzg4MSw2IEBAIGludGVyZmFjZSBIVE1MSW5wdXRF
bGVtZW50IDogSFRNTEVsZW1lbnQgewogW0V4cG9zZWQ9V2luZG93LAogIEhUTUxDb25zdHJ1Y3Rv
cl0KIGludGVyZmFjZSBIVE1MQnV0dG9uRWxlbWVudCA6IEhUTUxFbGVtZW50IHsKLSAgW0NFUmVh
Y3Rpb25zXSBhdHRyaWJ1dGUgYm9vbGVhbiBhdXRvZm9jdXM7CiAgIFtDRVJlYWN0aW9uc10gYXR0
cmlidXRlIGJvb2xlYW4gZGlzYWJsZWQ7CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBIVE1MRm9ybUVs
ZW1lbnQ/IGZvcm07CiAgIFtDRVJlYWN0aW9uc10gYXR0cmlidXRlIFVTVlN0cmluZyBmb3JtQWN0
aW9uOwpAQCAtODg5LDcgKzkwNiw2IEBAIGludGVyZmFjZSBIVE1MQnV0dG9uRWxlbWVudCA6IEhU
TUxFbGVtZW50IHsKICBIVE1MQ29uc3RydWN0b3JdCiBpbnRlcmZhY2UgSFRNTFNlbGVjdEVsZW1l
bnQgOiBIVE1MRWxlbWVudCB7CiAgIFtDRVJlYWN0aW9uc10gYXR0cmlidXRlIERPTVN0cmluZyBh
dXRvY29tcGxldGU7Ci0gIFtDRVJlYWN0aW9uc10gYXR0cmlidXRlIGJvb2xlYW4gYXV0b2ZvY3Vz
OwogICBbQ0VSZWFjdGlvbnNdIGF0dHJpYnV0ZSBib29sZWFuIGRpc2FibGVkOwogICByZWFkb25s
eSBhdHRyaWJ1dGUgSFRNTEZvcm1FbGVtZW50PyBmb3JtOwogICBbQ0VSZWFjdGlvbnNdIGF0dHJp
YnV0ZSBib29sZWFuIG11bHRpcGxlOwpAQCAtOTU0LDcgKzk3MCw2IEBAIGludGVyZmFjZSBIVE1M
T3B0aW9uRWxlbWVudCA6IEhUTUxFbGVtZW50IHsKICBIVE1MQ29uc3RydWN0b3JdCiBpbnRlcmZh
Y2UgSFRNTFRleHRBcmVhRWxlbWVudCA6IEhUTUxFbGVtZW50IHsKICAgW0NFUmVhY3Rpb25zXSBh
dHRyaWJ1dGUgRE9NU3RyaW5nIGF1dG9jb21wbGV0ZTsKLSAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1
dGUgYm9vbGVhbiBhdXRvZm9jdXM7CiAgIFtDRVJlYWN0aW9uc10gYXR0cmlidXRlIHVuc2lnbmVk
IGxvbmcgY29sczsKICAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGRpck5hbWU7
CiAgIFtDRVJlYWN0aW9uc10gYXR0cmlidXRlIGJvb2xlYW4gZGlzYWJsZWQ7CkBAIC05NzAsNyAr
OTg1LDcgQEAgaW50ZXJmYWNlIEhUTUxUZXh0QXJlYUVsZW1lbnQgOiBIVE1MRWxlbWVudCB7CiAK
ICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyB0eXBlOwogICBbQ0VSZWFjdGlvbnNdIGF0
dHJpYnV0ZSBET01TdHJpbmcgZGVmYXVsdFZhbHVlOwotICBbQ0VSZWFjdGlvbnNdIGF0dHJpYnV0
ZSBbVHJlYXROdWxsQXM9RW1wdHlTdHJpbmddIERPTVN0cmluZyB2YWx1ZTsKKyAgYXR0cmlidXRl
IFtUcmVhdE51bGxBcz1FbXB0eVN0cmluZ10gRE9NU3RyaW5nIHZhbHVlOwogICByZWFkb25seSBh
dHRyaWJ1dGUgdW5zaWduZWQgbG9uZyB0ZXh0TGVuZ3RoOwogCiAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBib29sZWFuIHdpbGxWYWxpZGF0ZTsKQEAgLTEwODIsNiArMTA5NywxNiBAQCBpbnRlcmZhY2Ug
VmFsaWRpdHlTdGF0ZSB7CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIHZhbGlkOwogfTsK
IAorW0V4cG9zZWQ9V2luZG93LAorIENvbnN0cnVjdG9yKERPTVN0cmluZyB0eXBlLCBvcHRpb25h
bCBGb3JtRGF0YUV2ZW50SW5pdCBldmVudEluaXREaWN0ID0ge30pXQoraW50ZXJmYWNlIEZvcm1E
YXRhRXZlbnQgOiBFdmVudCB7CisgIHJlYWRvbmx5IGF0dHJpYnV0ZSBGb3JtRGF0YSBmb3JtRGF0
YTsKK307CisKK2RpY3Rpb25hcnkgRm9ybURhdGFFdmVudEluaXQgOiBFdmVudEluaXQgeworICBy
ZXF1aXJlZCBGb3JtRGF0YSBmb3JtRGF0YTsKK307CisKIFtFeHBvc2VkPVdpbmRvdywKICBIVE1M
Q29uc3RydWN0b3JdCiBpbnRlcmZhY2UgSFRNTERldGFpbHNFbGVtZW50IDogSFRNTEVsZW1lbnQg
ewpAQCAtMTEwOCw5ICsxMTMzLDggQEAgaW50ZXJmYWNlIEhUTUxTY3JpcHRFbGVtZW50IDogSFRN
TEVsZW1lbnQgewogICBbQ0VSZWFjdGlvbnNdIGF0dHJpYnV0ZSBib29sZWFuIGRlZmVyOwogICBb
Q0VSZWFjdGlvbnNdIGF0dHJpYnV0ZSBET01TdHJpbmc/IGNyb3NzT3JpZ2luOwogICBbQ0VSZWFj
dGlvbnNdIGF0dHJpYnV0ZSBET01TdHJpbmcgdGV4dDsKLSAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1
dGUgRE9NU3RyaW5nIG5vbmNlOwogICBbQ0VSZWFjdGlvbnNdIGF0dHJpYnV0ZSBET01TdHJpbmcg
aW50ZWdyaXR5OwotCisgIFtDRVJlYWN0aW9uc10gYXR0cmlidXRlIERPTVN0cmluZyByZWZlcnJl
clBvbGljeTsKIAogICAvLyBhbHNvIGhhcyBvYnNvbGV0ZSBtZW1iZXJzCiB9OwpAQCAtMTEyNSwx
NSArMTE0OSwxNSBAQCBpbnRlcmZhY2UgSFRNTFRlbXBsYXRlRWxlbWVudCA6IEhUTUxFbGVtZW50
IHsKICBIVE1MQ29uc3RydWN0b3JdCiBpbnRlcmZhY2UgSFRNTFNsb3RFbGVtZW50IDogSFRNTEVs
ZW1lbnQgewogICBbQ0VSZWFjdGlvbnNdIGF0dHJpYnV0ZSBET01TdHJpbmcgbmFtZTsKLSAgc2Vx
dWVuY2U8Tm9kZT4gYXNzaWduZWROb2RlcyhvcHRpb25hbCBBc3NpZ25lZE5vZGVzT3B0aW9ucyBv
cHRpb25zKTsKLSAgc2VxdWVuY2U8RWxlbWVudD4gYXNzaWduZWRFbGVtZW50cyhvcHRpb25hbCBB
c3NpZ25lZE5vZGVzT3B0aW9ucyBvcHRpb25zKTsKKyAgc2VxdWVuY2U8Tm9kZT4gYXNzaWduZWRO
b2RlcyhvcHRpb25hbCBBc3NpZ25lZE5vZGVzT3B0aW9ucyBvcHRpb25zID0ge30pOworICBzZXF1
ZW5jZTxFbGVtZW50PiBhc3NpZ25lZEVsZW1lbnRzKG9wdGlvbmFsIEFzc2lnbmVkTm9kZXNPcHRp
b25zIG9wdGlvbnMgPSB7fSk7CiB9OwogCiBkaWN0aW9uYXJ5IEFzc2lnbmVkTm9kZXNPcHRpb25z
IHsKICAgYm9vbGVhbiBmbGF0dGVuID0gZmFsc2U7CiB9OwogCi10eXBlZGVmIChDYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkQgb3IgSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0IG9yIFdlYkdMUmVu
ZGVyaW5nQ29udGV4dCkgUmVuZGVyaW5nQ29udGV4dDsKK3R5cGVkZWYgKENhbnZhc1JlbmRlcmlu
Z0NvbnRleHQyRCBvciBJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQgb3IgV2ViR0xSZW5kZXJp
bmdDb250ZXh0IG9yIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQpIFJlbmRlcmluZ0NvbnRleHQ7CiAK
IFtFeHBvc2VkPVdpbmRvdywKICBIVE1MQ29uc3RydWN0b3JdCkBAIC0xMTQzLDggKzExNjcsOCBA
QCBpbnRlcmZhY2UgSFRNTENhbnZhc0VsZW1lbnQgOiBIVE1MRWxlbWVudCB7CiAKICAgUmVuZGVy
aW5nQ29udGV4dD8gZ2V0Q29udGV4dChET01TdHJpbmcgY29udGV4dElkLCBvcHRpb25hbCBhbnkg
b3B0aW9ucyA9IG51bGwpOwogCi0gIFVTVlN0cmluZyB0b0RhdGFVUkwob3B0aW9uYWwgRE9NU3Ry
aW5nIHR5cGUsIG9wdGlvbmFsIGFueSBxdWFsaXR5KTsKLSAgdm9pZCB0b0Jsb2IoQmxvYkNhbGxi
YWNrIF9jYWxsYmFjaywgb3B0aW9uYWwgRE9NU3RyaW5nIHR5cGUsIG9wdGlvbmFsIGFueSBxdWFs
aXR5KTsKKyAgVVNWU3RyaW5nIHRvRGF0YVVSTChvcHRpb25hbCBET01TdHJpbmcgdHlwZSA9ICJp
bWFnZS9wbmciLCBvcHRpb25hbCBhbnkgcXVhbGl0eSk7CisgIHZvaWQgdG9CbG9iKEJsb2JDYWxs
YmFjayBfY2FsbGJhY2ssIG9wdGlvbmFsIERPTVN0cmluZyB0eXBlID0gImltYWdlL3BuZyIsIG9w
dGlvbmFsIGFueSBxdWFsaXR5KTsKICAgT2Zmc2NyZWVuQ2FudmFzIHRyYW5zZmVyQ29udHJvbFRv
T2Zmc2NyZWVuKCk7CiB9OwogCkBAIC0xMTYzLDYgKzExODcsNyBAQCBlbnVtIENhbnZhc0ZpbGxS
dWxlIHsgIm5vbnplcm8iLCAiZXZlbm9kZCIgfTsKIAogZGljdGlvbmFyeSBDYW52YXNSZW5kZXJp
bmdDb250ZXh0MkRTZXR0aW5ncyB7CiAgIGJvb2xlYW4gYWxwaGEgPSB0cnVlOworICBib29sZWFu
IGRlc3luY2hyb25pemVkID0gZmFsc2U7CiB9OwogCiBlbnVtIEltYWdlU21vb3RoaW5nUXVhbGl0
eSB7ICJsb3ciLCAibWVkaXVtIiwgImhpZ2giIH07CkBAIC0xMTcxLDYgKzExOTYsOCBAQCBlbnVt
IEltYWdlU21vb3RoaW5nUXVhbGl0eSB7ICJsb3ciLCAibWVkaXVtIiwgImhpZ2giIH07CiBpbnRl
cmZhY2UgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEIHsKICAgLy8gYmFjay1yZWZlcmVuY2UgdG8g
dGhlIGNhbnZhcwogICByZWFkb25seSBhdHRyaWJ1dGUgSFRNTENhbnZhc0VsZW1lbnQgY2FudmFz
OworCisgIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRFNldHRpbmdzIGdldENvbnRleHRBdHRyaWJ1
dGVzKCk7CiB9OwogQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEIGluY2x1ZGVzIENhbnZhc1N0YXRl
OwogQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEIGluY2x1ZGVzIENhbnZhc1RyYW5zZm9ybTsKQEAg
LTEyMDQsOCArMTIzMSw5IEBAIGludGVyZmFjZSBtaXhpbiBDYW52YXNUcmFuc2Zvcm0gewogCiAg
IFtOZXdPYmplY3RdIERPTU1hdHJpeCBnZXRUcmFuc2Zvcm0oKTsKICAgdm9pZCBzZXRUcmFuc2Zv
cm0odW5yZXN0cmljdGVkIGRvdWJsZSBhLCB1bnJlc3RyaWN0ZWQgZG91YmxlIGIsIHVucmVzdHJp
Y3RlZCBkb3VibGUgYywgdW5yZXN0cmljdGVkIGRvdWJsZSBkLCB1bnJlc3RyaWN0ZWQgZG91Ymxl
IGUsIHVucmVzdHJpY3RlZCBkb3VibGUgZik7Ci0gIHZvaWQgc2V0VHJhbnNmb3JtKG9wdGlvbmFs
IERPTU1hdHJpeDJESW5pdCB0cmFuc2Zvcm0pOworICB2b2lkIHNldFRyYW5zZm9ybShvcHRpb25h
bCBET01NYXRyaXgyREluaXQgdHJhbnNmb3JtID0ge30pOwogICB2b2lkIHJlc2V0VHJhbnNmb3Jt
KCk7CisKIH07CiAKIGludGVyZmFjZSBtaXhpbiBDYW52YXNDb21wb3NpdGluZyB7CkBAIC0xMjE4
LDYgKzEyNDYsNyBAQCBpbnRlcmZhY2UgbWl4aW4gQ2FudmFzSW1hZ2VTbW9vdGhpbmcgewogICAv
LyBpbWFnZSBzbW9vdGhpbmcKICAgYXR0cmlidXRlIGJvb2xlYW4gaW1hZ2VTbW9vdGhpbmdFbmFi
bGVkOyAvLyAoZGVmYXVsdCB0cnVlKQogICBhdHRyaWJ1dGUgSW1hZ2VTbW9vdGhpbmdRdWFsaXR5
IGltYWdlU21vb3RoaW5nUXVhbGl0eTsgLy8gKGRlZmF1bHQgbG93KQorCiB9OwogCiBpbnRlcmZh
Y2UgbWl4aW4gQ2FudmFzRmlsbFN0cm9rZVN0eWxlcyB7CkBAIC0xMjI3LDYgKzEyNTYsNyBAQCBp
bnRlcmZhY2UgbWl4aW4gQ2FudmFzRmlsbFN0cm9rZVN0eWxlcyB7CiAgIENhbnZhc0dyYWRpZW50
IGNyZWF0ZUxpbmVhckdyYWRpZW50KGRvdWJsZSB4MCwgZG91YmxlIHkwLCBkb3VibGUgeDEsIGRv
dWJsZSB5MSk7CiAgIENhbnZhc0dyYWRpZW50IGNyZWF0ZVJhZGlhbEdyYWRpZW50KGRvdWJsZSB4
MCwgZG91YmxlIHkwLCBkb3VibGUgcjAsIGRvdWJsZSB4MSwgZG91YmxlIHkxLCBkb3VibGUgcjEp
OwogICBDYW52YXNQYXR0ZXJuPyBjcmVhdGVQYXR0ZXJuKENhbnZhc0ltYWdlU291cmNlIGltYWdl
LCBbVHJlYXROdWxsQXM9RW1wdHlTdHJpbmddIERPTVN0cmluZyByZXBldGl0aW9uKTsKKwogfTsK
IAogaW50ZXJmYWNlIG1peGluIENhbnZhc1NoYWRvd1N0eWxlcyB7CkBAIC0xMjU4LDcgKzEyODgs
NiBAQCBpbnRlcmZhY2UgbWl4aW4gQ2FudmFzRHJhd1BhdGggewogICB2b2lkIHN0cm9rZShQYXRo
MkQgcGF0aCk7CiAgIHZvaWQgY2xpcChvcHRpb25hbCBDYW52YXNGaWxsUnVsZSBmaWxsUnVsZSA9
ICJub256ZXJvIik7CiAgIHZvaWQgY2xpcChQYXRoMkQgcGF0aCwgb3B0aW9uYWwgQ2FudmFzRmls
bFJ1bGUgZmlsbFJ1bGUgPSAibm9uemVybyIpOwotICB2b2lkIHJlc2V0Q2xpcCgpOwogICBib29s
ZWFuIGlzUG9pbnRJblBhdGgodW5yZXN0cmljdGVkIGRvdWJsZSB4LCB1bnJlc3RyaWN0ZWQgZG91
YmxlIHksIG9wdGlvbmFsIENhbnZhc0ZpbGxSdWxlIGZpbGxSdWxlID0gIm5vbnplcm8iKTsKICAg
Ym9vbGVhbiBpc1BvaW50SW5QYXRoKFBhdGgyRCBwYXRoLCB1bnJlc3RyaWN0ZWQgZG91YmxlIHgs
IHVucmVzdHJpY3RlZCBkb3VibGUgeSwgb3B0aW9uYWwgQ2FudmFzRmlsbFJ1bGUgZmlsbFJ1bGUg
PSAibm9uemVybyIpOwogICBib29sZWFuIGlzUG9pbnRJblN0cm9rZSh1bnJlc3RyaWN0ZWQgZG91
YmxlIHgsIHVucmVzdHJpY3RlZCBkb3VibGUgeSk7CkBAIC0xMzQ0LDEwICsxMzczLDEwIEBAIGlu
dGVyZmFjZSBDYW52YXNHcmFkaWVudCB7CiBbRXhwb3NlZD0oV2luZG93LFdvcmtlcildCiBpbnRl
cmZhY2UgQ2FudmFzUGF0dGVybiB7CiAgIC8vIG9wYXF1ZSBvYmplY3QKLSAgdm9pZCBzZXRUcmFu
c2Zvcm0ob3B0aW9uYWwgRE9NTWF0cml4MkRJbml0IHRyYW5zZm9ybSk7CisgIHZvaWQgc2V0VHJh
bnNmb3JtKG9wdGlvbmFsIERPTU1hdHJpeDJESW5pdCB0cmFuc2Zvcm0gPSB7fSk7CiB9OwogCi1b
RXhwb3NlZD1XaW5kb3ddCitbRXhwb3NlZD0oV2luZG93LFdvcmtlcildCiBpbnRlcmZhY2UgVGV4
dE1ldHJpY3MgewogICAvLyB4LWRpcmVjdGlvbgogICByZWFkb25seSBhdHRyaWJ1dGUgZG91Ymxl
IHdpZHRoOyAvLyBhZHZhbmNlIHdpZHRoCkBAIC0xMzc5LDEzICsxNDA4LDEzIEBAIGludGVyZmFj
ZSBJbWFnZURhdGEgewogW0NvbnN0cnVjdG9yKG9wdGlvbmFsIChQYXRoMkQgb3IgRE9NU3RyaW5n
KSBwYXRoKSwKICBFeHBvc2VkPShXaW5kb3csV29ya2VyKV0KIGludGVyZmFjZSBQYXRoMkQgewot
ICB2b2lkIGFkZFBhdGgoUGF0aDJEIHBhdGgsIG9wdGlvbmFsIERPTU1hdHJpeDJESW5pdCB0cmFu
c2Zvcm0pOworICB2b2lkIGFkZFBhdGgoUGF0aDJEIHBhdGgsIG9wdGlvbmFsIERPTU1hdHJpeDJE
SW5pdCB0cmFuc2Zvcm0gPSB7fSk7CiB9OwogUGF0aDJEIGluY2x1ZGVzIENhbnZhc1BhdGg7CiAK
LVtFeHBvc2VkPVdpbmRvd10KK1tFeHBvc2VkPShXaW5kb3csV29ya2VyKV0KIGludGVyZmFjZSBJ
bWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQgewotICByZWFkb25seSBhdHRyaWJ1dGUgSFRNTENh
bnZhc0VsZW1lbnQgY2FudmFzOworICByZWFkb25seSBhdHRyaWJ1dGUgKEhUTUxDYW52YXNFbGVt
ZW50IG9yIE9mZnNjcmVlbkNhbnZhcykgY2FudmFzOwogICB2b2lkIHRyYW5zZmVyRnJvbUltYWdl
Qml0bWFwKEltYWdlQml0bWFwPyBiaXRtYXApOwogfTsKIApAQCAtMTM5MywyNyArMTQyMiwyNSBA
QCBkaWN0aW9uYXJ5IEltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dFNldHRpbmdzIHsKICAgYm9v
bGVhbiBhbHBoYSA9IHRydWU7CiB9OwogCi10eXBlZGVmIChPZmZzY3JlZW5DYW52YXNSZW5kZXJp
bmdDb250ZXh0MkQgb3IKLSAgICAgICAgV2ViR0xSZW5kZXJpbmdDb250ZXh0KSBPZmZzY3JlZW5S
ZW5kZXJpbmdDb250ZXh0OwordHlwZWRlZiAoT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDJEIG9yIEltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dCBvciBXZWJHTFJlbmRlcmluZ0NvbnRl
eHQgb3IgV2ViR0wyUmVuZGVyaW5nQ29udGV4dCkgT2Zmc2NyZWVuUmVuZGVyaW5nQ29udGV4dDsK
IAogZGljdGlvbmFyeSBJbWFnZUVuY29kZU9wdGlvbnMgewogICBET01TdHJpbmcgdHlwZSA9ICJp
bWFnZS9wbmciOwotICB1bnJlc3RyaWN0ZWQgZG91YmxlIHF1YWxpdHkgPSAxLjA7CisgIHVucmVz
dHJpY3RlZCBkb3VibGUgcXVhbGl0eTsKIH07CiAKLWVudW0gT2Zmc2NyZWVuUmVuZGVyaW5nQ29u
dGV4dElkIHsgIjJkIiwgIndlYmdsIiB9OworZW51bSBPZmZzY3JlZW5SZW5kZXJpbmdDb250ZXh0
SWQgeyAiMmQiLCAiYml0bWFwcmVuZGVyZXIiLCAid2ViZ2wiLCAid2ViZ2wyIiB9OwogCiBbQ29u
c3RydWN0b3IoW0VuZm9yY2VSYW5nZV0gdW5zaWduZWQgbG9uZyBsb25nIHdpZHRoLCBbRW5mb3Jj
ZVJhbmdlXSB1bnNpZ25lZCBsb25nIGxvbmcgaGVpZ2h0KSwgRXhwb3NlZD0oV2luZG93LFdvcmtl
ciksIFRyYW5zZmVyYWJsZV0KIGludGVyZmFjZSBPZmZzY3JlZW5DYW52YXMgOiBFdmVudFRhcmdl
dCB7Ci0gIGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxvbmcgd2lkdGg7Ci0gIGF0dHJpYnV0ZSB1
bnNpZ25lZCBsb25nIGxvbmcgaGVpZ2h0OworICBhdHRyaWJ1dGUgW0VuZm9yY2VSYW5nZV0gdW5z
aWduZWQgbG9uZyBsb25nIHdpZHRoOworICBhdHRyaWJ1dGUgW0VuZm9yY2VSYW5nZV0gdW5zaWdu
ZWQgbG9uZyBsb25nIGhlaWdodDsKIAogICBPZmZzY3JlZW5SZW5kZXJpbmdDb250ZXh0PyBnZXRD
b250ZXh0KE9mZnNjcmVlblJlbmRlcmluZ0NvbnRleHRJZCBjb250ZXh0SWQsIG9wdGlvbmFsIGFu
eSBvcHRpb25zID0gbnVsbCk7CiAgIEltYWdlQml0bWFwIHRyYW5zZmVyVG9JbWFnZUJpdG1hcCgp
OwotICBQcm9taXNlPEJsb2I+IGNvbnZlcnRUb0Jsb2Iob3B0aW9uYWwgSW1hZ2VFbmNvZGVPcHRp
b25zIG9wdGlvbnMpOworICBQcm9taXNlPEJsb2I+IGNvbnZlcnRUb0Jsb2Iob3B0aW9uYWwgSW1h
Z2VFbmNvZGVPcHRpb25zIG9wdGlvbnMgPSB7fSk7CiB9OwogCi0KIFtFeHBvc2VkPShXaW5kb3cs
V29ya2VyKV0KIGludGVyZmFjZSBPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQgewog
ICB2b2lkIGNvbW1pdCgpOwpAQCAtMTQyOSwzMiArMTQ1Niw3NSBAQCBPZmZzY3JlZW5DYW52YXNS
ZW5kZXJpbmdDb250ZXh0MkQgaW5jbHVkZXMgQ2FudmFzU2hhZG93U3R5bGVzOwogT2Zmc2NyZWVu
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEIGluY2x1ZGVzIENhbnZhc0ZpbHRlcnM7CiBPZmZzY3Jl
ZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQgaW5jbHVkZXMgQ2FudmFzUmVjdDsKIE9mZnNjcmVl
bkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCBpbmNsdWRlcyBDYW52YXNEcmF3UGF0aDsKK09mZnNj
cmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCBpbmNsdWRlcyBDYW52YXNUZXh0OwogT2Zmc2Ny
ZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEIGluY2x1ZGVzIENhbnZhc0RyYXdJbWFnZTsKIE9m
ZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCBpbmNsdWRlcyBDYW52YXNJbWFnZURhdGE7
CiBPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQgaW5jbHVkZXMgQ2FudmFzUGF0aERy
YXdpbmdTdHlsZXM7CitPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQgaW5jbHVkZXMg
Q2FudmFzVGV4dERyYXdpbmdTdHlsZXM7CiBPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0
MkQgaW5jbHVkZXMgQ2FudmFzUGF0aDsKIAotCiBbRXhwb3NlZD1XaW5kb3ddCiBpbnRlcmZhY2Ug
Q3VzdG9tRWxlbWVudFJlZ2lzdHJ5IHsKLSAgW0NFUmVhY3Rpb25zXSB2b2lkIGRlZmluZShET01T
dHJpbmcgbmFtZSwgRnVuY3Rpb24gY29uc3RydWN0b3IsIG9wdGlvbmFsIEVsZW1lbnREZWZpbml0
aW9uT3B0aW9ucyBvcHRpb25zKTsKKyAgW0NFUmVhY3Rpb25zXSB2b2lkIGRlZmluZShET01TdHJp
bmcgbmFtZSwgQ3VzdG9tRWxlbWVudENvbnN0cnVjdG9yIGNvbnN0cnVjdG9yLCBvcHRpb25hbCBF
bGVtZW50RGVmaW5pdGlvbk9wdGlvbnMgb3B0aW9ucyA9IHt9KTsKICAgYW55IGdldChET01TdHJp
bmcgbmFtZSk7CiAgIFByb21pc2U8dm9pZD4gd2hlbkRlZmluZWQoRE9NU3RyaW5nIG5hbWUpOwor
ICBbQ0VSZWFjdGlvbnNdIHZvaWQgdXBncmFkZShOb2RlIHJvb3QpOwogfTsKIAorY2FsbGJhY2sg
Q3VzdG9tRWxlbWVudENvbnN0cnVjdG9yID0gSFRNTEVsZW1lbnQgKCk7CisKIGRpY3Rpb25hcnkg
RWxlbWVudERlZmluaXRpb25PcHRpb25zIHsKICAgRE9NU3RyaW5nIGV4dGVuZHM7CiB9OwogCitb
RXhwb3NlZD1XaW5kb3ddCitpbnRlcmZhY2UgRWxlbWVudEludGVybmFscyB7CisgIC8vIEZvcm0t
YXNzb2NpYXRlZCBjdXN0b20gZWxlbWVudHMKKworICB2b2lkIHNldEZvcm1WYWx1ZSgoRmlsZSBv
ciBVU1ZTdHJpbmcgb3IgRm9ybURhdGEpPyB2YWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgb3B0
aW9uYWwgKEZpbGUgb3IgVVNWU3RyaW5nIG9yIEZvcm1EYXRhKT8gc3RhdGUpOworCisgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBIVE1MRm9ybUVsZW1lbnQ/IGZvcm07CisKKyAgdm9pZCBzZXRWYWxpZGl0
eShWYWxpZGl0eVN0YXRlRmxhZ3MgZmxhZ3MsCisgICAgICAgICAgICAgICAgICAgb3B0aW9uYWwg
RE9NU3RyaW5nIG1lc3NhZ2UsCisgICAgICAgICAgICAgICAgICAgb3B0aW9uYWwgSFRNTEVsZW1l
bnQgYW5jaG9yKTsKKyAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gd2lsbFZhbGlkYXRlOwor
ICByZWFkb25seSBhdHRyaWJ1dGUgVmFsaWRpdHlTdGF0ZSB2YWxpZGl0eTsKKyAgcmVhZG9ubHkg
YXR0cmlidXRlIERPTVN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZTsKKyAgYm9vbGVhbiBjaGVja1Zh
bGlkaXR5KCk7CisgIGJvb2xlYW4gcmVwb3J0VmFsaWRpdHkoKTsKKworICByZWFkb25seSBhdHRy
aWJ1dGUgTm9kZUxpc3QgbGFiZWxzOworfTsKKworZGljdGlvbmFyeSBWYWxpZGl0eVN0YXRlRmxh
Z3MgeworICBib29sZWFuIHZhbHVlTWlzc2luZyA9IGZhbHNlOworICBib29sZWFuIHR5cGVNaXNt
YXRjaCA9IGZhbHNlOworICBib29sZWFuIHBhdHRlcm5NaXNtYXRjaCA9IGZhbHNlOworICBib29s
ZWFuIHRvb0xvbmcgPSBmYWxzZTsKKyAgYm9vbGVhbiB0b29TaG9ydCA9IGZhbHNlOworICBib29s
ZWFuIHJhbmdlVW5kZXJmbG93ID0gZmFsc2U7CisgIGJvb2xlYW4gcmFuZ2VPdmVyZmxvdyA9IGZh
bHNlOworICBib29sZWFuIHN0ZXBNaXNtYXRjaCA9IGZhbHNlOworICBib29sZWFuIGJhZElucHV0
ID0gZmFsc2U7CisgIGJvb2xlYW4gY3VzdG9tRXJyb3IgPSBmYWxzZTsKK307CisKK2RpY3Rpb25h
cnkgRm9jdXNPcHRpb25zIHsKKyAgYm9vbGVhbiBwcmV2ZW50U2Nyb2xsID0gZmFsc2U7Cit9Owor
CiBpbnRlcmZhY2UgbWl4aW4gRWxlbWVudENvbnRlbnRFZGl0YWJsZSB7CiAgIFtDRVJlYWN0aW9u
c10gYXR0cmlidXRlIERPTVN0cmluZyBjb250ZW50RWRpdGFibGU7CisgIFtDRVJlYWN0aW9uc10g
YXR0cmlidXRlIERPTVN0cmluZyBlbnRlcktleUhpbnQ7CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBi
b29sZWFuIGlzQ29udGVudEVkaXRhYmxlOwogICBbQ0VSZWFjdGlvbnNdIGF0dHJpYnV0ZSBET01T
dHJpbmcgaW5wdXRNb2RlOwogfTsKIAogW0V4cG9zZWQ9V2luZG93LAogIENvbnN0cnVjdG9yXQot
ICBpbnRlcmZhY2UgRGF0YVRyYW5zZmVyIHsKK2ludGVyZmFjZSBEYXRhVHJhbnNmZXIgewogICBh
dHRyaWJ1dGUgRE9NU3RyaW5nIGRyb3BFZmZlY3Q7CiAgIGF0dHJpYnV0ZSBET01TdHJpbmcgZWZm
ZWN0QWxsb3dlZDsKIApAQCAtMTQ5MSw3ICsxNTYxLDcgQEAgaW50ZXJmYWNlIERhdGFUcmFuc2Zl
ckl0ZW0gewogY2FsbGJhY2sgRnVuY3Rpb25TdHJpbmdDYWxsYmFjayA9IHZvaWQgKERPTVN0cmlu
ZyBkYXRhKTsKIAogW0V4cG9zZWQ9V2luZG93LAotIENvbnN0cnVjdG9yKERPTVN0cmluZyB0eXBl
LCBvcHRpb25hbCBEcmFnRXZlbnRJbml0IGV2ZW50SW5pdERpY3QpXQorIENvbnN0cnVjdG9yKERP
TVN0cmluZyB0eXBlLCBvcHRpb25hbCBEcmFnRXZlbnRJbml0IGV2ZW50SW5pdERpY3QgPSB7fSld
CiBpbnRlcmZhY2UgRHJhZ0V2ZW50IDogTW91c2VFdmVudCB7CiAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBEYXRhVHJhbnNmZXI/IGRhdGFUcmFuc2ZlcjsKIH07CkBAIC0xNTMyLDcgKzE2MDIsNyBAQCBp
bnRlcmZhY2UgV2luZG93IDogRXZlbnRUYXJnZXQgewogICBhdHRyaWJ1dGUgYW55IG9wZW5lcjsK
ICAgW1JlcGxhY2VhYmxlXSByZWFkb25seSBhdHRyaWJ1dGUgV2luZG93UHJveHk/IHBhcmVudDsK
ICAgcmVhZG9ubHkgYXR0cmlidXRlIEVsZW1lbnQ/IGZyYW1lRWxlbWVudDsKLSAgV2luZG93UHJv
eHk/IG9wZW4ob3B0aW9uYWwgVVNWU3RyaW5nIHVybCA9ICJhYm91dDpibGFuayIsIG9wdGlvbmFs
IERPTVN0cmluZyB0YXJnZXQgPSAiX2JsYW5rIiwgb3B0aW9uYWwgW1RyZWF0TnVsbEFzPUVtcHR5
U3RyaW5nXSBET01TdHJpbmcgZmVhdHVyZXMgPSAiIik7CisgIFdpbmRvd1Byb3h5PyBvcGVuKG9w
dGlvbmFsIFVTVlN0cmluZyB1cmwgPSAiIiwgb3B0aW9uYWwgRE9NU3RyaW5nIHRhcmdldCA9ICJf
YmxhbmsiLCBvcHRpb25hbCBbVHJlYXROdWxsQXM9RW1wdHlTdHJpbmddIERPTVN0cmluZyBmZWF0
dXJlcyA9ICIiKTsKICAgZ2V0dGVyIG9iamVjdCAoRE9NU3RyaW5nIG5hbWUpOwogICAvLyBTaW5j
ZSB0aGlzIGlzIHRoZSBnbG9iYWwgb2JqZWN0LCB0aGUgSURMIG5hbWVkIGdldHRlciBhZGRzIGEg
TmFtZWRQcm9wZXJ0aWVzT2JqZWN0IGV4b3RpYwogICAvLyBvYmplY3Qgb24gdGhlIHByb3RvdHlw
ZSBjaGFpbi4gSW5kZWVkLCB0aGlzIGRvZXMgbm90IG1ha2UgdGhlIGdsb2JhbCBvYmplY3QgYW4g
ZXhvdGljIG9iamVjdC4KQEAgLTE1NDAsNyArMTYxMCw3IEBAIGludGVyZmFjZSBXaW5kb3cgOiBF
dmVudFRhcmdldCB7CiAKICAgLy8gdGhlIHVzZXIgYWdlbnQKICAgcmVhZG9ubHkgYXR0cmlidXRl
IE5hdmlnYXRvciBuYXZpZ2F0b3I7Ci0gIHJlYWRvbmx5IGF0dHJpYnV0ZSBBcHBsaWNhdGlvbkNh
Y2hlIGFwcGxpY2F0aW9uQ2FjaGU7CisgIFtTZWN1cmVDb250ZXh0XSByZWFkb25seSBhdHRyaWJ1
dGUgQXBwbGljYXRpb25DYWNoZSBhcHBsaWNhdGlvbkNhY2hlOwogCiAgIC8vIHVzZXIgcHJvbXB0
cwogICB2b2lkIGFsZXJ0KCk7CkBAIC0xNTQ5LDE3ICsxNjE5LDE1IEBAIGludGVyZmFjZSBXaW5k
b3cgOiBFdmVudFRhcmdldCB7CiAgIERPTVN0cmluZz8gcHJvbXB0KG9wdGlvbmFsIERPTVN0cmlu
ZyBtZXNzYWdlID0gIiIsIG9wdGlvbmFsIERPTVN0cmluZyBkZWZhdWx0ID0gIiIpOwogICB2b2lk
IHByaW50KCk7CiAKLSAgdW5zaWduZWQgbG9uZyByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoRnJhbWVS
ZXF1ZXN0Q2FsbGJhY2sgY2FsbGJhY2spOwotICB2b2lkIGNhbmNlbEFuaW1hdGlvbkZyYW1lKHVu
c2lnbmVkIGxvbmcgaGFuZGxlKTsKLQogICB2b2lkIHBvc3RNZXNzYWdlKGFueSBtZXNzYWdlLCBV
U1ZTdHJpbmcgdGFyZ2V0T3JpZ2luLCBvcHRpb25hbCBzZXF1ZW5jZTxvYmplY3Q+IHRyYW5zZmVy
ID0gW10pOwotCi0gIC8vIGFsc28gaGFzIG9ic29sZXRlIG1lbWJlcnMKKyAgdm9pZCBwb3N0TWVz
c2FnZShhbnkgbWVzc2FnZSwgb3B0aW9uYWwgV2luZG93UG9zdE1lc3NhZ2VPcHRpb25zIG9wdGlv
bnMgPSB7fSk7CiB9OwogV2luZG93IGluY2x1ZGVzIEdsb2JhbEV2ZW50SGFuZGxlcnM7CiBXaW5k
b3cgaW5jbHVkZXMgV2luZG93RXZlbnRIYW5kbGVyczsKIAotY2FsbGJhY2sgRnJhbWVSZXF1ZXN0
Q2FsbGJhY2sgPSB2b2lkIChET01IaWdoUmVzVGltZVN0YW1wIHRpbWUpOworZGljdGlvbmFyeSBX
aW5kb3dQb3N0TWVzc2FnZU9wdGlvbnMgOiBQb3N0TWVzc2FnZU9wdGlvbnMgeworICBVU1ZTdHJp
bmcgdGFyZ2V0T3JpZ2luID0gIi8iOworfTsKIAogW0V4cG9zZWQ9V2luZG93XQogaW50ZXJmYWNl
IEJhclByb3AgewpAQCAtMTU3MCw3ICsxNjM4LDYgQEAgZW51bSBTY3JvbGxSZXN0b3JhdGlvbiB7
ICJhdXRvIiwgIm1hbnVhbCIgfTsKIAogW0V4cG9zZWQ9V2luZG93XQogaW50ZXJmYWNlIEhpc3Rv
cnkgewotICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBpbmRleDsKICAgcmVhZG9u
bHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbGVuZ3RoOwogICBhdHRyaWJ1dGUgU2Nyb2xsUmVz
dG9yYXRpb24gc2Nyb2xsUmVzdG9yYXRpb247CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBhbnkgc3Rh
dGU7CkBAIC0xNjAxLDcgKzE2NjgsNyBAQCBpbnRlcmZhY2UgTG9jYXRpb24geyAvLyBidXQgc2Vl
IGFsc28gYWRkaXRpb25hbCBjcmVhdGlvbiBzdGVwcyBhbmQgb3ZlcnJpZGRlbiBpbgogfTsKIAog
W0V4cG9zZWQ9V2luZG93LAotIENvbnN0cnVjdG9yKERPTVN0cmluZyB0eXBlLCBvcHRpb25hbCBQ
b3BTdGF0ZUV2ZW50SW5pdCBldmVudEluaXREaWN0KV0KKyBDb25zdHJ1Y3RvcihET01TdHJpbmcg
dHlwZSwgb3B0aW9uYWwgUG9wU3RhdGVFdmVudEluaXQgZXZlbnRJbml0RGljdCA9IHt9KV0KIGlu
dGVyZmFjZSBQb3BTdGF0ZUV2ZW50IDogRXZlbnQgewogICByZWFkb25seSBhdHRyaWJ1dGUgYW55
IHN0YXRlOwogfTsKQEAgLTE2MTEsNyArMTY3OCw3IEBAIGRpY3Rpb25hcnkgUG9wU3RhdGVFdmVu
dEluaXQgOiBFdmVudEluaXQgewogfTsKIAogW0V4cG9zZWQ9V2luZG93LAotIENvbnN0cnVjdG9y
KERPTVN0cmluZyB0eXBlLCBvcHRpb25hbCBIYXNoQ2hhbmdlRXZlbnRJbml0IGV2ZW50SW5pdERp
Y3QpXQorIENvbnN0cnVjdG9yKERPTVN0cmluZyB0eXBlLCBvcHRpb25hbCBIYXNoQ2hhbmdlRXZl
bnRJbml0IGV2ZW50SW5pdERpY3QgPSB7fSldCiBpbnRlcmZhY2UgSGFzaENoYW5nZUV2ZW50IDog
RXZlbnQgewogICByZWFkb25seSBhdHRyaWJ1dGUgVVNWU3RyaW5nIG9sZFVSTDsKICAgcmVhZG9u
bHkgYXR0cmlidXRlIFVTVlN0cmluZyBuZXdVUkw7CkBAIC0xNjIzLDcgKzE2OTAsNyBAQCBkaWN0
aW9uYXJ5IEhhc2hDaGFuZ2VFdmVudEluaXQgOiBFdmVudEluaXQgewogfTsKIAogW0V4cG9zZWQ9
V2luZG93LAotIENvbnN0cnVjdG9yKERPTVN0cmluZyB0eXBlLCBvcHRpb25hbCBQYWdlVHJhbnNp
dGlvbkV2ZW50SW5pdCBldmVudEluaXREaWN0KV0KKyBDb25zdHJ1Y3RvcihET01TdHJpbmcgdHlw
ZSwgb3B0aW9uYWwgUGFnZVRyYW5zaXRpb25FdmVudEluaXQgZXZlbnRJbml0RGljdCA9IHt9KV0K
IGludGVyZmFjZSBQYWdlVHJhbnNpdGlvbkV2ZW50IDogRXZlbnQgewogICByZWFkb25seSBhdHRy
aWJ1dGUgYm9vbGVhbiBwZXJzaXN0ZWQ7CiB9OwpAQCAtMTYzNyw3ICsxNzA0LDggQEAgaW50ZXJm
YWNlIEJlZm9yZVVubG9hZEV2ZW50IDogRXZlbnQgewogICBhdHRyaWJ1dGUgRE9NU3RyaW5nIHJl
dHVyblZhbHVlOwogfTsKIAotW0V4cG9zZWQ9V2luZG93XQorW1NlY3VyZUNvbnRleHQsCisgRXhw
b3NlZD1XaW5kb3ddCiBpbnRlcmZhY2UgQXBwbGljYXRpb25DYWNoZSA6IEV2ZW50VGFyZ2V0IHsK
IAogICAvLyB1cGRhdGUgc3RhdHVzCkBAIC0xNjY5LDcgKzE3MzcsOCBAQCBpbnRlcmZhY2UgbWl4
aW4gTmF2aWdhdG9yT25MaW5lIHsKICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gb25MaW5l
OwogfTsKIAotW0NvbnN0cnVjdG9yKERPTVN0cmluZyB0eXBlLCBvcHRpb25hbCBFcnJvckV2ZW50
SW5pdCBldmVudEluaXREaWN0KSwgRXhwb3NlZD0oV2luZG93LFdvcmtlcildCitbQ29uc3RydWN0
b3IoRE9NU3RyaW5nIHR5cGUsIG9wdGlvbmFsIEVycm9yRXZlbnRJbml0IGV2ZW50SW5pdERpY3Qg
PSB7fSksCisgRXhwb3NlZD0oV2luZG93LFdvcmtlcildCiBpbnRlcmZhY2UgRXJyb3JFdmVudCA6
IEV2ZW50IHsKICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBtZXNzYWdlOwogICByZWFk
b25seSBhdHRyaWJ1dGUgVVNWU3RyaW5nIGZpbGVuYW1lOwpAQCAtMTczNSw2ICsxODA0LDcgQEAg
aW50ZXJmYWNlIG1peGluIEdsb2JhbEV2ZW50SGFuZGxlcnMgewogICBhdHRyaWJ1dGUgRXZlbnRI
YW5kbGVyIG9uZW5kZWQ7CiAgIGF0dHJpYnV0ZSBPbkVycm9yRXZlbnRIYW5kbGVyIG9uZXJyb3I7
CiAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25mb2N1czsKKyAgYXR0cmlidXRlIEV2ZW50SGFu
ZGxlciBvbmZvcm1kYXRhOwogICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9uaW5wdXQ7CiAgIGF0
dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25pbnZhbGlkOwogICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVy
IG9ua2V5ZG93bjsKQEAgLTE3NDMsNyArMTgxMyw2IEBAIGludGVyZmFjZSBtaXhpbiBHbG9iYWxF
dmVudEhhbmRsZXJzIHsKICAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbmxvYWQ7CiAgIGF0dHJp
YnV0ZSBFdmVudEhhbmRsZXIgb25sb2FkZWRkYXRhOwogICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVy
IG9ubG9hZGVkbWV0YWRhdGE7Ci0gIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25sb2FkZW5kOwog
ICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9ubG9hZHN0YXJ0OwogICBhdHRyaWJ1dGUgRXZlbnRI
YW5kbGVyIG9ubW91c2Vkb3duOwogICBbTGVuaWVudFRoaXNdIGF0dHJpYnV0ZSBFdmVudEhhbmRs
ZXIgb25tb3VzZWVudGVyOwpAQCAtMTgxNCw5ICsxODgzLDEyIEBAIGludGVyZmFjZSBtaXhpbiBX
aW5kb3dPcldvcmtlckdsb2JhbFNjb3BlIHsKICAgbG9uZyBzZXRJbnRlcnZhbChUaW1lckhhbmRs
ZXIgaGFuZGxlciwgb3B0aW9uYWwgbG9uZyB0aW1lb3V0ID0gMCwgYW55Li4uIGFyZ3VtZW50cyk7
CiAgIHZvaWQgY2xlYXJJbnRlcnZhbChvcHRpb25hbCBsb25nIGhhbmRsZSA9IDApOwogCisgIC8v
IG1pY3JvdGFzayBxdWV1aW5nCisgIHZvaWQgcXVldWVNaWNyb3Rhc2soVm9pZEZ1bmN0aW9uIGNh
bGxiYWNrKTsKKwogICAvLyBJbWFnZUJpdG1hcAotICBQcm9taXNlPEltYWdlQml0bWFwPiBjcmVh
dGVJbWFnZUJpdG1hcChJbWFnZUJpdG1hcFNvdXJjZSBpbWFnZSwgb3B0aW9uYWwgSW1hZ2VCaXRt
YXBPcHRpb25zIG9wdGlvbnMpOwotICBQcm9taXNlPEltYWdlQml0bWFwPiBjcmVhdGVJbWFnZUJp
dG1hcChJbWFnZUJpdG1hcFNvdXJjZSBpbWFnZSwgbG9uZyBzeCwgbG9uZyBzeSwgbG9uZyBzdywg
bG9uZyBzaCwgb3B0aW9uYWwgSW1hZ2VCaXRtYXBPcHRpb25zIG9wdGlvbnMpOworICBQcm9taXNl
PEltYWdlQml0bWFwPiBjcmVhdGVJbWFnZUJpdG1hcChJbWFnZUJpdG1hcFNvdXJjZSBpbWFnZSwg
b3B0aW9uYWwgSW1hZ2VCaXRtYXBPcHRpb25zIG9wdGlvbnMgPSB7fSk7CisgIFByb21pc2U8SW1h
Z2VCaXRtYXA+IGNyZWF0ZUltYWdlQml0bWFwKEltYWdlQml0bWFwU291cmNlIGltYWdlLCBsb25n
IHN4LCBsb25nIHN5LCBsb25nIHN3LCBsb25nIHNoLCBvcHRpb25hbCBJbWFnZUJpdG1hcE9wdGlv
bnMgb3B0aW9ucyA9IHt9KTsKIH07CiBXaW5kb3cgaW5jbHVkZXMgV2luZG93T3JXb3JrZXJHbG9i
YWxTY29wZTsKIFdvcmtlckdsb2JhbFNjb3BlIGluY2x1ZGVzIFdpbmRvd09yV29ya2VyR2xvYmFs
U2NvcGU7CkBAIC0xODQzLDExICsxOTE1LDkgQEAgaW50ZXJmYWNlIG1peGluIE5hdmlnYXRvcklE
IHsKICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyB1c2VyQWdlbnQ7CiAgIFtFeHBvc2Vk
PVdpbmRvd10gcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyB2ZW5kb3I7CiAgIFtFeHBvc2Vk
PVdpbmRvd10gcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyB2ZW5kb3JTdWI7IC8vIGNvbnN0
YW50ICIiCi0KLSAgLy8gYWxzbyBoYXMgYWRkaXRpb25hbCBtZW1iZXJzIGluIGEgcGFydGlhbCBp
bnRlcmZhY2UKIH07CiAKLXBhcnRpYWwgaW50ZXJmYWNlIE5hdmlnYXRvcklEIHsKK3BhcnRpYWwg
aW50ZXJmYWNlIG1peGluIE5hdmlnYXRvcklEIHsKICAgW0V4cG9zZWQ9V2luZG93XSBib29sZWFu
IHRhaW50RW5hYmxlZCgpOyAvLyBjb25zdGFudCBmYWxzZQogICBbRXhwb3NlZD1XaW5kb3ddIHJl
YWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgb3NjcHU7CiB9OwpAQCAtMTkzMyw3ICsyMDAzLDE3
IEBAIGRpY3Rpb25hcnkgSW1hZ2VCaXRtYXBPcHRpb25zIHsKICAgUmVzaXplUXVhbGl0eSByZXNp
emVRdWFsaXR5ID0gImxvdyI7CiB9OwogCi1bQ29uc3RydWN0b3IoRE9NU3RyaW5nIHR5cGUsIG9w
dGlvbmFsIE1lc3NhZ2VFdmVudEluaXQgZXZlbnRJbml0RGljdCksIEV4cG9zZWQ9KFdpbmRvdyxX
b3JrZXIsQXVkaW9Xb3JrbGV0KV0KK2NhbGxiYWNrIEZyYW1lUmVxdWVzdENhbGxiYWNrID0gdm9p
ZCAoRE9NSGlnaFJlc1RpbWVTdGFtcCB0aW1lKTsKKworaW50ZXJmYWNlIG1peGluIEFuaW1hdGlv
bkZyYW1lUHJvdmlkZXIgeworICB1bnNpZ25lZCBsb25nIHJlcXVlc3RBbmltYXRpb25GcmFtZShG
cmFtZVJlcXVlc3RDYWxsYmFjayBjYWxsYmFjayk7CisgIHZvaWQgY2FuY2VsQW5pbWF0aW9uRnJh
bWUodW5zaWduZWQgbG9uZyBoYW5kbGUpOworfTsKK1dpbmRvdyBpbmNsdWRlcyBBbmltYXRpb25G
cmFtZVByb3ZpZGVyOworRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUgaW5jbHVkZXMgQW5pbWF0
aW9uRnJhbWVQcm92aWRlcjsKKworW0NvbnN0cnVjdG9yKERPTVN0cmluZyB0eXBlLCBvcHRpb25h
bCBNZXNzYWdlRXZlbnRJbml0IGV2ZW50SW5pdERpY3QgPSB7fSksCisgRXhwb3NlZD0oV2luZG93
LFdvcmtlcixBdWRpb1dvcmtsZXQpXQogaW50ZXJmYWNlIE1lc3NhZ2VFdmVudCA6IEV2ZW50IHsK
ICAgcmVhZG9ubHkgYXR0cmlidXRlIGFueSBkYXRhOwogICByZWFkb25seSBhdHRyaWJ1dGUgVVNW
U3RyaW5nIG9yaWdpbjsKQEAgLTE5NTQsNyArMjAzNCw3IEBAIGRpY3Rpb25hcnkgTWVzc2FnZUV2
ZW50SW5pdCA6IEV2ZW50SW5pdCB7CiAKIHR5cGVkZWYgKFdpbmRvd1Byb3h5IG9yIE1lc3NhZ2VQ
b3J0IG9yIFNlcnZpY2VXb3JrZXIpIE1lc3NhZ2VFdmVudFNvdXJjZTsKIAotW0NvbnN0cnVjdG9y
KFVTVlN0cmluZyB1cmwsIG9wdGlvbmFsIEV2ZW50U291cmNlSW5pdCBldmVudFNvdXJjZUluaXRE
aWN0KSwgRXhwb3NlZD0oV2luZG93LFdvcmtlcildCitbQ29uc3RydWN0b3IoVVNWU3RyaW5nIHVy
bCwgb3B0aW9uYWwgRXZlbnRTb3VyY2VJbml0IGV2ZW50U291cmNlSW5pdERpY3QgPSB7fSksIEV4
cG9zZWQ9KFdpbmRvdyxXb3JrZXIpXQogaW50ZXJmYWNlIEV2ZW50U291cmNlIDogRXZlbnRUYXJn
ZXQgewogICByZWFkb25seSBhdHRyaWJ1dGUgVVNWU3RyaW5nIHVybDsKICAgcmVhZG9ubHkgYXR0
cmlidXRlIGJvb2xlYW4gd2l0aENyZWRlbnRpYWxzOwpAQCAtMjAwNiw3ICsyMDg2LDggQEAgaW50
ZXJmYWNlIFdlYlNvY2tldCA6IEV2ZW50VGFyZ2V0IHsKICAgdm9pZCBzZW5kKEFycmF5QnVmZmVy
VmlldyBkYXRhKTsKIH07CiAKLVtDb25zdHJ1Y3RvcihET01TdHJpbmcgdHlwZSwgb3B0aW9uYWwg
Q2xvc2VFdmVudEluaXQgZXZlbnRJbml0RGljdCksIEV4cG9zZWQ9KFdpbmRvdyxXb3JrZXIpXQor
W0NvbnN0cnVjdG9yKERPTVN0cmluZyB0eXBlLCBvcHRpb25hbCBDbG9zZUV2ZW50SW5pdCBldmVu
dEluaXREaWN0ID0ge30pLAorIEV4cG9zZWQ9KFdpbmRvdyxXb3JrZXIpXQogaW50ZXJmYWNlIENs
b3NlRXZlbnQgOiBFdmVudCB7CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIHdhc0NsZWFu
OwogICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgc2hvcnQgY29kZTsKQEAgLTIwMjcsNyAr
MjEwOCw4IEBAIGludGVyZmFjZSBNZXNzYWdlQ2hhbm5lbCB7CiAKIFtFeHBvc2VkPShXaW5kb3cs
V29ya2VyLEF1ZGlvV29ya2xldCksIFRyYW5zZmVyYWJsZV0KIGludGVyZmFjZSBNZXNzYWdlUG9y
dCA6IEV2ZW50VGFyZ2V0IHsKLSAgdm9pZCBwb3N0TWVzc2FnZShhbnkgbWVzc2FnZSwgb3B0aW9u
YWwgc2VxdWVuY2U8b2JqZWN0PiB0cmFuc2ZlciA9IFtdKTsKKyAgdm9pZCBwb3N0TWVzc2FnZShh
bnkgbWVzc2FnZSwgc2VxdWVuY2U8b2JqZWN0PiB0cmFuc2Zlcik7CisgIHZvaWQgcG9zdE1lc3Nh
Z2UoYW55IG1lc3NhZ2UsIG9wdGlvbmFsIFBvc3RNZXNzYWdlT3B0aW9ucyBvcHRpb25zID0ge30p
OwogICB2b2lkIHN0YXJ0KCk7CiAgIHZvaWQgY2xvc2UoKTsKIApAQCAtMjAzNiw2ICsyMTE4LDEw
IEBAIGludGVyZmFjZSBNZXNzYWdlUG9ydCA6IEV2ZW50VGFyZ2V0IHsKICAgYXR0cmlidXRlIEV2
ZW50SGFuZGxlciBvbm1lc3NhZ2VlcnJvcjsKIH07CiAKK2RpY3Rpb25hcnkgUG9zdE1lc3NhZ2VP
cHRpb25zIHsKKyAgc2VxdWVuY2U8b2JqZWN0PiB0cmFuc2ZlciA9IFtdOworfTsKKwogW0NvbnN0
cnVjdG9yKERPTVN0cmluZyBuYW1lKSwgRXhwb3NlZD0oV2luZG93LFdvcmtlcildCiBpbnRlcmZh
Y2UgQnJvYWRjYXN0Q2hhbm5lbCA6IEV2ZW50VGFyZ2V0IHsKICAgcmVhZG9ubHkgYXR0cmlidXRl
IERPTVN0cmluZyBuYW1lOwpAQCAtMjA2NCw3ICsyMTUwLDggQEAgaW50ZXJmYWNlIFdvcmtlckds
b2JhbFNjb3BlIDogRXZlbnRUYXJnZXQgewogaW50ZXJmYWNlIERlZGljYXRlZFdvcmtlckdsb2Jh
bFNjb3BlIDogV29ya2VyR2xvYmFsU2NvcGUgewogICBbUmVwbGFjZWFibGVdIHJlYWRvbmx5IGF0
dHJpYnV0ZSBET01TdHJpbmcgbmFtZTsKIAotICB2b2lkIHBvc3RNZXNzYWdlKGFueSBtZXNzYWdl
LCBvcHRpb25hbCBzZXF1ZW5jZTxvYmplY3Q+IHRyYW5zZmVyID0gW10pOworICB2b2lkIHBvc3RN
ZXNzYWdlKGFueSBtZXNzYWdlLCBzZXF1ZW5jZTxvYmplY3Q+IHRyYW5zZmVyKTsKKyAgdm9pZCBw
b3N0TWVzc2FnZShhbnkgbWVzc2FnZSwgb3B0aW9uYWwgUG9zdE1lc3NhZ2VPcHRpb25zIG9wdGlv
bnMgPSB7fSk7CiAKICAgdm9pZCBjbG9zZSgpOwogCkBAIC0yMDg1LDE4ICsyMTcyLDIwIEBAIGlu
dGVyZmFjZSBtaXhpbiBBYnN0cmFjdFdvcmtlciB7CiAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIg
b25lcnJvcjsKIH07CiAKLVtDb25zdHJ1Y3RvcihVU1ZTdHJpbmcgc2NyaXB0VVJMLCBvcHRpb25h
bCBXb3JrZXJPcHRpb25zIG9wdGlvbnMpLCBFeHBvc2VkPShXaW5kb3csV29ya2VyKV0KK1tDb25z
dHJ1Y3RvcihVU1ZTdHJpbmcgc2NyaXB0VVJMLCBvcHRpb25hbCBXb3JrZXJPcHRpb25zIG9wdGlv
bnMgPSB7fSksCisgRXhwb3NlZD0oV2luZG93LFdvcmtlcildCiBpbnRlcmZhY2UgV29ya2VyIDog
RXZlbnRUYXJnZXQgewogICB2b2lkIHRlcm1pbmF0ZSgpOwogCi0gIHZvaWQgcG9zdE1lc3NhZ2Uo
YW55IG1lc3NhZ2UsIG9wdGlvbmFsIHNlcXVlbmNlPG9iamVjdD4gdHJhbnNmZXIgPSBbXSk7Cisg
IHZvaWQgcG9zdE1lc3NhZ2UoYW55IG1lc3NhZ2UsIHNlcXVlbmNlPG9iamVjdD4gdHJhbnNmZXIp
OworICB2b2lkIHBvc3RNZXNzYWdlKGFueSBtZXNzYWdlLCBvcHRpb25hbCBQb3N0TWVzc2FnZU9w
dGlvbnMgb3B0aW9ucyA9IHt9KTsKICAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbm1lc3NhZ2U7
CiAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25tZXNzYWdlZXJyb3I7CiB9OwogCiBkaWN0aW9u
YXJ5IFdvcmtlck9wdGlvbnMgewogICBXb3JrZXJUeXBlIHR5cGUgPSAiY2xhc3NpYyI7Ci0gIFJl
cXVlc3RDcmVkZW50aWFscyBjcmVkZW50aWFscyA9ICJvbWl0IjsgLy8gY3JlZGVudGlhbHMgaXMg
b25seSB1c2VkIGlmIHR5cGUgaXMgIm1vZHVsZSIKKyAgUmVxdWVzdENyZWRlbnRpYWxzIGNyZWRl
bnRpYWxzID0gInNhbWUtb3JpZ2luIjsgLy8gY3JlZGVudGlhbHMgaXMgb25seSB1c2VkIGlmIHR5
cGUgaXMgIm1vZHVsZSIKICAgRE9NU3RyaW5nIG5hbWUgPSAiIjsKIH07CiAKQEAgLTIxMDQsNyAr
MjE5Myw3IEBAIGVudW0gV29ya2VyVHlwZSB7ICJjbGFzc2ljIiwgIm1vZHVsZSIgfTsKIAogV29y
a2VyIGluY2x1ZGVzIEFic3RyYWN0V29ya2VyOwogCi1bQ29uc3RydWN0b3IoVVNWU3RyaW5nIHNj
cmlwdFVSTCwgb3B0aW9uYWwgKERPTVN0cmluZyBvciBXb3JrZXJPcHRpb25zKSBvcHRpb25zKSwK
K1tDb25zdHJ1Y3RvcihVU1ZTdHJpbmcgc2NyaXB0VVJMLCBvcHRpb25hbCAoRE9NU3RyaW5nIG9y
IFdvcmtlck9wdGlvbnMpIG9wdGlvbnMgPSB7fSksCiAgRXhwb3NlZD0oV2luZG93LFdvcmtlcild
CiBpbnRlcmZhY2UgU2hhcmVkV29ya2VyIDogRXZlbnRUYXJnZXQgewogICByZWFkb25seSBhdHRy
aWJ1dGUgTWVzc2FnZVBvcnQgcG9ydDsKQEAgLTIxNTYsMTMgKzIyNDUsMTUgQEAgaW50ZXJmYWNl
IG1peGluIFdpbmRvd0xvY2FsU3RvcmFnZSB7CiBXaW5kb3cgaW5jbHVkZXMgV2luZG93TG9jYWxT
dG9yYWdlOwogCiBbRXhwb3NlZD1XaW5kb3csCi0gQ29uc3RydWN0b3IoRE9NU3RyaW5nIHR5cGUs
IG9wdGlvbmFsIFN0b3JhZ2VFdmVudEluaXQgZXZlbnRJbml0RGljdCldCisgQ29uc3RydWN0b3Io
RE9NU3RyaW5nIHR5cGUsIG9wdGlvbmFsIFN0b3JhZ2VFdmVudEluaXQgZXZlbnRJbml0RGljdCA9
IHt9KV0KIGludGVyZmFjZSBTdG9yYWdlRXZlbnQgOiBFdmVudCB7CiAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBET01TdHJpbmc/IGtleTsKICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZz8gb2xk
VmFsdWU7CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmc/IG5ld1ZhbHVlOwogICByZWFk
b25seSBhdHRyaWJ1dGUgVVNWU3RyaW5nIHVybDsKICAgcmVhZG9ubHkgYXR0cmlidXRlIFN0b3Jh
Z2U/IHN0b3JhZ2VBcmVhOworCisgIHZvaWQgaW5pdFN0b3JhZ2VFdmVudChET01TdHJpbmcgdHlw
ZSwgb3B0aW9uYWwgYm9vbGVhbiBidWJibGVzID0gZmFsc2UsIG9wdGlvbmFsIGJvb2xlYW4gY2Fu
Y2VsYWJsZSA9IGZhbHNlLCBvcHRpb25hbCBET01TdHJpbmc/IGtleSA9IG51bGwsIG9wdGlvbmFs
IERPTVN0cmluZz8gb2xkVmFsdWUgPSBudWxsLCBvcHRpb25hbCBET01TdHJpbmc/IG5ld1ZhbHVl
ID0gbnVsbCwgb3B0aW9uYWwgVVNWU3RyaW5nIHVybCA9ICIiLCBvcHRpb25hbCBTdG9yYWdlPyBz
dG9yYWdlQXJlYSA9IG51bGwpOwogfTsKIAogZGljdGlvbmFyeSBTdG9yYWdlRXZlbnRJbml0IDog
RXZlbnRJbml0IHsKQEAgLTIzNzksNiArMjQ3MCwxMCBAQCBwYXJ0aWFsIGludGVyZmFjZSBIVE1M
UHJlRWxlbWVudCB7CiAgIFtDRVJlYWN0aW9uc10gYXR0cmlidXRlIGxvbmcgd2lkdGg7CiB9Owog
CitwYXJ0aWFsIGludGVyZmFjZSBIVE1MU3R5bGVFbGVtZW50IHsKKyAgW0NFUmVhY3Rpb25zXSBh
dHRyaWJ1dGUgRE9NU3RyaW5nIHR5cGU7Cit9OworCiBwYXJ0aWFsIGludGVyZmFjZSBIVE1MU2Ny
aXB0RWxlbWVudCB7CiAgIFtDRVJlYWN0aW9uc10gYXR0cmlidXRlIERPTVN0cmluZyBjaGFyc2V0
OwogICBbQ0VSZWFjdGlvbnNdIGF0dHJpYnV0ZSBET01TdHJpbmcgZXZlbnQ7CkBAIC0yNDU3LDgg
KzI1NTIsNyBAQCBwYXJ0aWFsIGludGVyZmFjZSBXaW5kb3cgewogICBbUmVwbGFjZWFibGUsIFNh
bWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBFeHRlcm5hbCBleHRlcm5hbDsKIH07CiAKLVtF
eHBvc2VkPVdpbmRvdywKLSBOb0ludGVyZmFjZU9iamVjdF0KK1tFeHBvc2VkPVdpbmRvd10KIGlu
dGVyZmFjZSBFeHRlcm5hbCB7CiAgIHZvaWQgQWRkU2VhcmNoUHJvdmlkZXIoKTsKICAgdm9pZCBJ
c1NlYXJjaFByb3ZpZGVySW5zdGFsbGVkKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ludGVyZmFjZXMvbWVkaWFjYXB0dXJlLXN0cmVh
bXMuaWRsIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbnRl
cmZhY2VzL21lZGlhY2FwdHVyZS1zdHJlYW1zLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kODM3NzdjNWQyOTNk
MDQ5MzFlMWQzZmY5NjExYTE4M2U3NGJkMTQyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbnRlcmZhY2VzL21lZGlhY2FwdHVy
ZS1zdHJlYW1zLmlkbApAQCAtMCwwICsxLDI0NSBAQAorLy8gR0VORVJBVEVEIENPTlRFTlQgLSBE
TyBOT1QgRURJVAorLy8gQ29udGVudCB3YXMgYXV0b21hdGljYWxseSBleHRyYWN0ZWQgYnkgUmVm
ZnkgaW50byByZWZmeS1yZXBvcnRzCisvLyAoaHR0cHM6Ly9naXRodWIuY29tL3RpZG91c3QvcmVm
ZnktcmVwb3J0cykKKy8vIFNvdXJjZTogTWVkaWEgQ2FwdHVyZSBhbmQgU3RyZWFtcyAoaHR0cHM6
Ly93M2MuZ2l0aHViLmlvL21lZGlhY2FwdHVyZS1tYWluLykKKworW0V4cG9zZWQ9V2luZG93LAor
IENvbnN0cnVjdG9yLAorIENvbnN0cnVjdG9yKE1lZGlhU3RyZWFtIHN0cmVhbSksCisgQ29uc3Ry
dWN0b3Ioc2VxdWVuY2U8TWVkaWFTdHJlYW1UcmFjaz4gdHJhY2tzKV0KK2ludGVyZmFjZSBNZWRp
YVN0cmVhbSA6IEV2ZW50VGFyZ2V0IHsKKyAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBp
ZDsKKyAgc2VxdWVuY2U8TWVkaWFTdHJlYW1UcmFjaz4gZ2V0QXVkaW9UcmFja3MoKTsKKyAgc2Vx
dWVuY2U8TWVkaWFTdHJlYW1UcmFjaz4gZ2V0VmlkZW9UcmFja3MoKTsKKyAgc2VxdWVuY2U8TWVk
aWFTdHJlYW1UcmFjaz4gZ2V0VHJhY2tzKCk7CisgIE1lZGlhU3RyZWFtVHJhY2s/IGdldFRyYWNr
QnlJZChET01TdHJpbmcgdHJhY2tJZCk7CisgIHZvaWQgYWRkVHJhY2soTWVkaWFTdHJlYW1UcmFj
ayB0cmFjayk7CisgIHZvaWQgcmVtb3ZlVHJhY2soTWVkaWFTdHJlYW1UcmFjayB0cmFjayk7Cisg
IE1lZGlhU3RyZWFtIGNsb25lKCk7CisgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIGFjdGl2
ZTsKKyAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbmFkZHRyYWNrOworICBhdHRyaWJ1dGUgRXZl
bnRIYW5kbGVyIG9ucmVtb3ZldHJhY2s7Cit9OworCitbRXhwb3NlZD1XaW5kb3ddCitpbnRlcmZh
Y2UgTWVkaWFTdHJlYW1UcmFjayA6IEV2ZW50VGFyZ2V0IHsKKyAgcmVhZG9ubHkgYXR0cmlidXRl
IERPTVN0cmluZyBraW5kOworICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGlkOworICBy
ZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGxhYmVsOworICBhdHRyaWJ1dGUgYm9vbGVhbiBl
bmFibGVkOworICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBtdXRlZDsKKyAgYXR0cmlidXRl
IEV2ZW50SGFuZGxlciBvbm11dGU7CisgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb251bm11dGU7
CisgIHJlYWRvbmx5IGF0dHJpYnV0ZSBNZWRpYVN0cmVhbVRyYWNrU3RhdGUgcmVhZHlTdGF0ZTsK
KyAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbmVuZGVkOworICBNZWRpYVN0cmVhbVRyYWNrIGNs
b25lKCk7CisgIHZvaWQgc3RvcCgpOworICBNZWRpYVRyYWNrQ2FwYWJpbGl0aWVzIGdldENhcGFi
aWxpdGllcygpOworICBNZWRpYVRyYWNrQ29uc3RyYWludHMgZ2V0Q29uc3RyYWludHMoKTsKKyAg
TWVkaWFUcmFja1NldHRpbmdzIGdldFNldHRpbmdzKCk7CisgIFByb21pc2U8dm9pZD4gYXBwbHlD
b25zdHJhaW50cyhvcHRpb25hbCBNZWRpYVRyYWNrQ29uc3RyYWludHMgY29uc3RyYWludHMpOwor
fTsKKworZW51bSBNZWRpYVN0cmVhbVRyYWNrU3RhdGUgeworICAibGl2ZSIsCisgICJlbmRlZCIK
K307CisKK2RpY3Rpb25hcnkgTWVkaWFUcmFja1N1cHBvcnRlZENvbnN0cmFpbnRzIHsKKyAgYm9v
bGVhbiB3aWR0aCA9IHRydWU7CisgIGJvb2xlYW4gaGVpZ2h0ID0gdHJ1ZTsKKyAgYm9vbGVhbiBh
c3BlY3RSYXRpbyA9IHRydWU7CisgIGJvb2xlYW4gZnJhbWVSYXRlID0gdHJ1ZTsKKyAgYm9vbGVh
biBmYWNpbmdNb2RlID0gdHJ1ZTsKKyAgYm9vbGVhbiByZXNpemVNb2RlID0gdHJ1ZTsKKyAgYm9v
bGVhbiBzYW1wbGVSYXRlID0gdHJ1ZTsKKyAgYm9vbGVhbiBzYW1wbGVTaXplID0gdHJ1ZTsKKyAg
Ym9vbGVhbiBlY2hvQ2FuY2VsbGF0aW9uID0gdHJ1ZTsKKyAgYm9vbGVhbiBhdXRvR2FpbkNvbnRy
b2wgPSB0cnVlOworICBib29sZWFuIG5vaXNlU3VwcHJlc3Npb24gPSB0cnVlOworICBib29sZWFu
IGxhdGVuY3kgPSB0cnVlOworICBib29sZWFuIGNoYW5uZWxDb3VudCA9IHRydWU7CisgIGJvb2xl
YW4gZGV2aWNlSWQgPSB0cnVlOworICBib29sZWFuIGdyb3VwSWQgPSB0cnVlOworfTsKKworZGlj
dGlvbmFyeSBNZWRpYVRyYWNrQ2FwYWJpbGl0aWVzIHsKKyAgVUxvbmdSYW5nZSB3aWR0aDsKKyAg
VUxvbmdSYW5nZSBoZWlnaHQ7CisgIERvdWJsZVJhbmdlIGFzcGVjdFJhdGlvOworICBEb3VibGVS
YW5nZSBmcmFtZVJhdGU7CisgIHNlcXVlbmNlPERPTVN0cmluZz4gZmFjaW5nTW9kZTsKKyAgc2Vx
dWVuY2U8RE9NU3RyaW5nPiByZXNpemVNb2RlOworICBVTG9uZ1JhbmdlIHNhbXBsZVJhdGU7Cisg
IFVMb25nUmFuZ2Ugc2FtcGxlU2l6ZTsKKyAgc2VxdWVuY2U8Ym9vbGVhbj4gZWNob0NhbmNlbGxh
dGlvbjsKKyAgc2VxdWVuY2U8Ym9vbGVhbj4gYXV0b0dhaW5Db250cm9sOworICBzZXF1ZW5jZTxi
b29sZWFuPiBub2lzZVN1cHByZXNzaW9uOworICBEb3VibGVSYW5nZSBsYXRlbmN5OworICBVTG9u
Z1JhbmdlIGNoYW5uZWxDb3VudDsKKyAgRE9NU3RyaW5nIGRldmljZUlkOworICBET01TdHJpbmcg
Z3JvdXBJZDsKK307CisKK2RpY3Rpb25hcnkgTWVkaWFUcmFja0NvbnN0cmFpbnRzIDogTWVkaWFU
cmFja0NvbnN0cmFpbnRTZXQgeworICBzZXF1ZW5jZTxNZWRpYVRyYWNrQ29uc3RyYWludFNldD4g
YWR2YW5jZWQ7Cit9OworCitkaWN0aW9uYXJ5IE1lZGlhVHJhY2tDb25zdHJhaW50U2V0IHsKKyAg
Q29uc3RyYWluVUxvbmcgd2lkdGg7CisgIENvbnN0cmFpblVMb25nIGhlaWdodDsKKyAgQ29uc3Ry
YWluRG91YmxlIGFzcGVjdFJhdGlvOworICBDb25zdHJhaW5Eb3VibGUgZnJhbWVSYXRlOworICBD
b25zdHJhaW5ET01TdHJpbmcgZmFjaW5nTW9kZTsKKyAgQ29uc3RyYWluRE9NU3RyaW5nIHJlc2l6
ZU1vZGU7CisgIENvbnN0cmFpblVMb25nIHNhbXBsZVJhdGU7CisgIENvbnN0cmFpblVMb25nIHNh
bXBsZVNpemU7CisgIENvbnN0cmFpbkJvb2xlYW4gZWNob0NhbmNlbGxhdGlvbjsKKyAgQ29uc3Ry
YWluQm9vbGVhbiBhdXRvR2FpbkNvbnRyb2w7CisgIENvbnN0cmFpbkJvb2xlYW4gbm9pc2VTdXBw
cmVzc2lvbjsKKyAgQ29uc3RyYWluRG91YmxlIGxhdGVuY3k7CisgIENvbnN0cmFpblVMb25nIGNo
YW5uZWxDb3VudDsKKyAgQ29uc3RyYWluRE9NU3RyaW5nIGRldmljZUlkOworICBDb25zdHJhaW5E
T01TdHJpbmcgZ3JvdXBJZDsKK307CisKK2RpY3Rpb25hcnkgTWVkaWFUcmFja1NldHRpbmdzIHsK
KyAgbG9uZyB3aWR0aDsKKyAgbG9uZyBoZWlnaHQ7CisgIGRvdWJsZSBhc3BlY3RSYXRpbzsKKyAg
ZG91YmxlIGZyYW1lUmF0ZTsKKyAgRE9NU3RyaW5nIGZhY2luZ01vZGU7CisgIERPTVN0cmluZyBy
ZXNpemVNb2RlOworICBsb25nIHNhbXBsZVJhdGU7CisgIGxvbmcgc2FtcGxlU2l6ZTsKKyAgYm9v
bGVhbiBlY2hvQ2FuY2VsbGF0aW9uOworICBib29sZWFuIGF1dG9HYWluQ29udHJvbDsKKyAgYm9v
bGVhbiBub2lzZVN1cHByZXNzaW9uOworICBkb3VibGUgbGF0ZW5jeTsKKyAgbG9uZyBjaGFubmVs
Q291bnQ7CisgIERPTVN0cmluZyBkZXZpY2VJZDsKKyAgRE9NU3RyaW5nIGdyb3VwSWQ7Cit9Owor
CitlbnVtIFZpZGVvRmFjaW5nTW9kZUVudW0geworICAidXNlciIsCisgICJlbnZpcm9ubWVudCIs
CisgICJsZWZ0IiwKKyAgInJpZ2h0IgorfTsKKworZW51bSBWaWRlb1Jlc2l6ZU1vZGVFbnVtIHsK
KyAgIm5vbmUiLAorICAiY3JvcC1hbmQtc2NhbGUiCit9OworCitbRXhwb3NlZD1XaW5kb3csIENv
bnN0cnVjdG9yKERPTVN0cmluZyB0eXBlLCBNZWRpYVN0cmVhbVRyYWNrRXZlbnRJbml0IGV2ZW50
SW5pdERpY3QpXQoraW50ZXJmYWNlIE1lZGlhU3RyZWFtVHJhY2tFdmVudCA6IEV2ZW50IHsKKyAg
W1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBNZWRpYVN0cmVhbVRyYWNrIHRyYWNrOwor
fTsKKworZGljdGlvbmFyeSBNZWRpYVN0cmVhbVRyYWNrRXZlbnRJbml0IDogRXZlbnRJbml0IHsK
KyAgcmVxdWlyZWQgTWVkaWFTdHJlYW1UcmFjayB0cmFjazsKK307CisKK3BhcnRpYWwgaW50ZXJm
YWNlIE5hdmlnYXRvciB7CisgIFtTYW1lT2JqZWN0LCBTZWN1cmVDb250ZXh0XSByZWFkb25seSBh
dHRyaWJ1dGUgTWVkaWFEZXZpY2VzIG1lZGlhRGV2aWNlczsKK307CisKK1tFeHBvc2VkPVdpbmRv
dywgU2VjdXJlQ29udGV4dF0KK2ludGVyZmFjZSBNZWRpYURldmljZXMgOiBFdmVudFRhcmdldCB7
CisgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25kZXZpY2VjaGFuZ2U7CisgIFByb21pc2U8c2Vx
dWVuY2U8TWVkaWFEZXZpY2VJbmZvPj4gZW51bWVyYXRlRGV2aWNlcygpOworfTsKKworW0V4cG9z
ZWQ9V2luZG93LCBTZWN1cmVDb250ZXh0XQoraW50ZXJmYWNlIE1lZGlhRGV2aWNlSW5mbyB7Cisg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgZGV2aWNlSWQ7CisgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBNZWRpYURldmljZUtpbmQga2luZDsKKyAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmlu
ZyBsYWJlbDsKKyAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBncm91cElkOworICBbRGVm
YXVsdF0gb2JqZWN0IHRvSlNPTigpOworfTsKKworZW51bSBNZWRpYURldmljZUtpbmQgeworICAi
YXVkaW9pbnB1dCIsCisgICJhdWRpb291dHB1dCIsCisgICJ2aWRlb2lucHV0IgorfTsKKworW0V4
cG9zZWQ9V2luZG93XQoraW50ZXJmYWNlIElucHV0RGV2aWNlSW5mbyA6IE1lZGlhRGV2aWNlSW5m
byB7CisgIE1lZGlhVHJhY2tDYXBhYmlsaXRpZXMgZ2V0Q2FwYWJpbGl0aWVzKCk7Cit9OworCitw
YXJ0aWFsIGludGVyZmFjZSBOYXZpZ2F0b3IgeworICBbU2VjdXJlQ29udGV4dF0gdm9pZCBnZXRV
c2VyTWVkaWEoTWVkaWFTdHJlYW1Db25zdHJhaW50cyBjb25zdHJhaW50cywKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIE5hdmlnYXRvclVzZXJNZWRpYVN1Y2Nlc3NDYWxsYmFj
ayBzdWNjZXNzQ2FsbGJhY2ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBO
YXZpZ2F0b3JVc2VyTWVkaWFFcnJvckNhbGxiYWNrIGVycm9yQ2FsbGJhY2spOworfTsKKworcGFy
dGlhbCBpbnRlcmZhY2UgTWVkaWFEZXZpY2VzIHsKKyAgTWVkaWFUcmFja1N1cHBvcnRlZENvbnN0
cmFpbnRzIGdldFN1cHBvcnRlZENvbnN0cmFpbnRzKCk7CisgIFByb21pc2U8TWVkaWFTdHJlYW0+
IGdldFVzZXJNZWRpYShvcHRpb25hbCBNZWRpYVN0cmVhbUNvbnN0cmFpbnRzIGNvbnN0cmFpbnRz
KTsKK307CisKK2RpY3Rpb25hcnkgTWVkaWFTdHJlYW1Db25zdHJhaW50cyB7CisgIChib29sZWFu
IG9yIE1lZGlhVHJhY2tDb25zdHJhaW50cykgdmlkZW8gPSBmYWxzZTsKKyAgKGJvb2xlYW4gb3Ig
TWVkaWFUcmFja0NvbnN0cmFpbnRzKSBhdWRpbyA9IGZhbHNlOworfTsKKworY2FsbGJhY2sgTmF2
aWdhdG9yVXNlck1lZGlhU3VjY2Vzc0NhbGxiYWNrID0gdm9pZCAoTWVkaWFTdHJlYW0gc3RyZWFt
KTsKKworY2FsbGJhY2sgTmF2aWdhdG9yVXNlck1lZGlhRXJyb3JDYWxsYmFjayA9IHZvaWQgKE1l
ZGlhU3RyZWFtRXJyb3IgZXJyb3IpOworCit0eXBlZGVmIG9iamVjdCBNZWRpYVN0cmVhbUVycm9y
OworCitkaWN0aW9uYXJ5IERvdWJsZVJhbmdlIHsKKyAgZG91YmxlIG1heDsKKyAgZG91YmxlIG1p
bjsKK307CisKK2RpY3Rpb25hcnkgQ29uc3RyYWluRG91YmxlUmFuZ2UgOiBEb3VibGVSYW5nZSB7
CisgIGRvdWJsZSBleGFjdDsKKyAgZG91YmxlIGlkZWFsOworfTsKKworZGljdGlvbmFyeSBVTG9u
Z1JhbmdlIHsKKyAgW0NsYW1wXSB1bnNpZ25lZCBsb25nIG1heDsKKyAgW0NsYW1wXSB1bnNpZ25l
ZCBsb25nIG1pbjsKK307CisKK2RpY3Rpb25hcnkgQ29uc3RyYWluVUxvbmdSYW5nZSA6IFVMb25n
UmFuZ2UgeworICBbQ2xhbXBdIHVuc2lnbmVkIGxvbmcgZXhhY3Q7CisgIFtDbGFtcF0gdW5zaWdu
ZWQgbG9uZyBpZGVhbDsKK307CisKK2RpY3Rpb25hcnkgQ29uc3RyYWluQm9vbGVhblBhcmFtZXRl
cnMgeworICBib29sZWFuIGV4YWN0OworICBib29sZWFuIGlkZWFsOworfTsKKworZGljdGlvbmFy
eSBDb25zdHJhaW5ET01TdHJpbmdQYXJhbWV0ZXJzIHsKKyAgKERPTVN0cmluZyBvciBzZXF1ZW5j
ZTxET01TdHJpbmc+KSBleGFjdDsKKyAgKERPTVN0cmluZyBvciBzZXF1ZW5jZTxET01TdHJpbmc+
KSBpZGVhbDsKK307CisKK3R5cGVkZWYgKFtDbGFtcF0gdW5zaWduZWQgbG9uZyBvciBDb25zdHJh
aW5VTG9uZ1JhbmdlKSBDb25zdHJhaW5VTG9uZzsKKwordHlwZWRlZiAoZG91YmxlIG9yIENvbnN0
cmFpbkRvdWJsZVJhbmdlKSBDb25zdHJhaW5Eb3VibGU7CisKK3R5cGVkZWYgKGJvb2xlYW4gb3Ig
Q29uc3RyYWluQm9vbGVhblBhcmFtZXRlcnMpIENvbnN0cmFpbkJvb2xlYW47CisKK3R5cGVkZWYg
KERPTVN0cmluZyBvcgorc2VxdWVuY2U8RE9NU3RyaW5nPiBvcgorQ29uc3RyYWluRE9NU3RyaW5n
UGFyYW1ldGVycykgQ29uc3RyYWluRE9NU3RyaW5nOworCitkaWN0aW9uYXJ5IENhcGFiaWxpdGll
cyB7fTsKKworZGljdGlvbmFyeSBTZXR0aW5ncyB7fTsKKworZGljdGlvbmFyeSBDb25zdHJhaW50
U2V0IHt9OworCitkaWN0aW9uYXJ5IENvbnN0cmFpbnRzIDogQ29uc3RyYWludFNldCB7CisgIHNl
cXVlbmNlPENvbnN0cmFpbnRTZXQ+IGFkdmFuY2VkOworfTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW50ZXJmYWNlcy9wZXJmb3JtYW5j
ZS10aW1lbGluZS5pZGwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ludGVyZmFjZXMvcGVyZm9ybWFuY2UtdGltZWxpbmUuaWRsCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ5MzYy
ZWEyNzUxNmFjNGU0MGNhYTc2MzJkOWFhMWUyZWQ5ZWRiMTEKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ludGVyZmFjZXMvcGVy
Zm9ybWFuY2UtdGltZWxpbmUuaWRsCkBAIC0wLDAgKzEsNDMgQEAKKy8vIEdFTkVSQVRFRCBDT05U
RU5UIC0gRE8gTk9UIEVESVQKKy8vIENvbnRlbnQgd2FzIGF1dG9tYXRpY2FsbHkgZXh0cmFjdGVk
IGJ5IFJlZmZ5IGludG8gcmVmZnktcmVwb3J0cworLy8gKGh0dHBzOi8vZ2l0aHViLmNvbS90aWRv
dXN0L3JlZmZ5LXJlcG9ydHMpCisvLyBTb3VyY2U6IFBlcmZvcm1hbmNlIFRpbWVsaW5lIExldmVs
IDIgKGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9wZXJmb3JtYW5jZS10aW1lbGluZS8pCisKK3BhcnRp
YWwgaW50ZXJmYWNlIFBlcmZvcm1hbmNlIHsKKyAgUGVyZm9ybWFuY2VFbnRyeUxpc3QgZ2V0RW50
cmllcygpOworICBQZXJmb3JtYW5jZUVudHJ5TGlzdCBnZXRFbnRyaWVzQnlUeXBlKERPTVN0cmlu
ZyB0eXBlKTsKKyAgUGVyZm9ybWFuY2VFbnRyeUxpc3QgZ2V0RW50cmllc0J5TmFtZShET01TdHJp
bmcgbmFtZSwgb3B0aW9uYWwgRE9NU3RyaW5nIHR5cGUpOworfTsKK3R5cGVkZWYgc2VxdWVuY2U8
UGVyZm9ybWFuY2VFbnRyeT4gUGVyZm9ybWFuY2VFbnRyeUxpc3Q7CisKK1tFeHBvc2VkPShXaW5k
b3csV29ya2VyKV0KK2ludGVyZmFjZSBQZXJmb3JtYW5jZUVudHJ5IHsKKyAgcmVhZG9ubHkgICAg
YXR0cmlidXRlIERPTVN0cmluZyBuYW1lOworICByZWFkb25seSAgICBhdHRyaWJ1dGUgRE9NU3Ry
aW5nIGVudHJ5VHlwZTsKKyAgcmVhZG9ubHkgICAgYXR0cmlidXRlIERPTUhpZ2hSZXNUaW1lU3Rh
bXAgc3RhcnRUaW1lOworICByZWFkb25seSAgICBhdHRyaWJ1dGUgRE9NSGlnaFJlc1RpbWVTdGFt
cCBkdXJhdGlvbjsKKyAgW0RlZmF1bHRdIG9iamVjdCB0b0pTT04oKTsKK307CisKK2NhbGxiYWNr
IFBlcmZvcm1hbmNlT2JzZXJ2ZXJDYWxsYmFjayA9IHZvaWQgKFBlcmZvcm1hbmNlT2JzZXJ2ZXJF
bnRyeUxpc3QgZW50cmllcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFBlcmZvcm1hbmNlT2JzZXJ2ZXIgb2JzZXJ2ZXIpOworW0NvbnN0cnVjdG9yKFBlcmZv
cm1hbmNlT2JzZXJ2ZXJDYWxsYmFjayBjYWxsYmFjayksIEV4cG9zZWQ9KFdpbmRvdyxXb3JrZXIp
XQoraW50ZXJmYWNlIFBlcmZvcm1hbmNlT2JzZXJ2ZXIgeworICB2b2lkIG9ic2VydmUgKG9wdGlv
bmFsIFBlcmZvcm1hbmNlT2JzZXJ2ZXJJbml0IG9wdGlvbnMgPSB7fSk7CisgIHZvaWQgZGlzY29u
bmVjdCAoKTsKKyAgUGVyZm9ybWFuY2VFbnRyeUxpc3QgdGFrZVJlY29yZHMoKTsKKyAgW1NhbWVP
YmplY3RdIHN0YXRpYyByZWFkb25seSBhdHRyaWJ1dGUgRnJvemVuQXJyYXk8RE9NU3RyaW5nPiBz
dXBwb3J0ZWRFbnRyeVR5cGVzOworfTsKKworZGljdGlvbmFyeSBQZXJmb3JtYW5jZU9ic2VydmVy
SW5pdCB7CisgIHNlcXVlbmNlPERPTVN0cmluZz4gZW50cnlUeXBlczsKKyAgRE9NU3RyaW5nIHR5
cGU7CisgIGJvb2xlYW4gYnVmZmVyZWQ7Cit9OworCitbRXhwb3NlZD0oV2luZG93LFdvcmtlcild
CitpbnRlcmZhY2UgUGVyZm9ybWFuY2VPYnNlcnZlckVudHJ5TGlzdCB7CisgIFBlcmZvcm1hbmNl
RW50cnlMaXN0IGdldEVudHJpZXMoKTsKKyAgUGVyZm9ybWFuY2VFbnRyeUxpc3QgZ2V0RW50cmll
c0J5VHlwZShET01TdHJpbmcgdHlwZSk7CisgIFBlcmZvcm1hbmNlRW50cnlMaXN0IGdldEVudHJp
ZXNCeU5hbWUoRE9NU3RyaW5nIG5hbWUsIG9wdGlvbmFsIERPTVN0cmluZyB0eXBlKTsKK307CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2lu
dGVyZmFjZXMvcmVzb3VyY2UtdGltaW5nLmlkbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaW50ZXJmYWNlcy9yZXNvdXJjZS10aW1pbmcuaWRsCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmZjMTQyNTNmNWU5YWViZWM0N2NlODNkYTFhZmE5Mzg4MTkwMTVmNTEKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ludGVy
ZmFjZXMvcmVzb3VyY2UtdGltaW5nLmlkbApAQCAtMCwwICsxLDMyIEBACisvLyBHRU5FUkFURUQg
Q09OVEVOVCAtIERPIE5PVCBFRElUCisvLyBDb250ZW50IHdhcyBhdXRvbWF0aWNhbGx5IGV4dHJh
Y3RlZCBieSBSZWZmeSBpbnRvIHJlZmZ5LXJlcG9ydHMKKy8vIChodHRwczovL2dpdGh1Yi5jb20v
dGlkb3VzdC9yZWZmeS1yZXBvcnRzKQorLy8gU291cmNlOiBSZXNvdXJjZSBUaW1pbmcgTGV2ZWwg
MiAoaHR0cHM6Ly93M2MuZ2l0aHViLmlvL3Jlc291cmNlLXRpbWluZy8pCisKK1tFeHBvc2VkPShX
aW5kb3csV29ya2VyKV0KK2ludGVyZmFjZSBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nIDogUGVy
Zm9ybWFuY2VFbnRyeSB7CisgICAgcmVhZG9ubHkgICAgICAgIGF0dHJpYnV0ZSBET01TdHJpbmcg
aW5pdGlhdG9yVHlwZTsKKyAgICByZWFkb25seSAgICAgICAgYXR0cmlidXRlIERPTVN0cmluZyBu
ZXh0SG9wUHJvdG9jb2w7CisgICAgcmVhZG9ubHkgICAgICAgIGF0dHJpYnV0ZSBET01IaWdoUmVz
VGltZVN0YW1wIHdvcmtlclN0YXJ0OworICAgIHJlYWRvbmx5ICAgICAgICBhdHRyaWJ1dGUgRE9N
SGlnaFJlc1RpbWVTdGFtcCByZWRpcmVjdFN0YXJ0OworICAgIHJlYWRvbmx5ICAgICAgICBhdHRy
aWJ1dGUgRE9NSGlnaFJlc1RpbWVTdGFtcCByZWRpcmVjdEVuZDsKKyAgICByZWFkb25seSAgICAg
ICAgYXR0cmlidXRlIERPTUhpZ2hSZXNUaW1lU3RhbXAgZmV0Y2hTdGFydDsKKyAgICByZWFkb25s
eSAgICAgICAgYXR0cmlidXRlIERPTUhpZ2hSZXNUaW1lU3RhbXAgZG9tYWluTG9va3VwU3RhcnQ7
CisgICAgcmVhZG9ubHkgICAgICAgIGF0dHJpYnV0ZSBET01IaWdoUmVzVGltZVN0YW1wIGRvbWFp
bkxvb2t1cEVuZDsKKyAgICByZWFkb25seSAgICAgICAgYXR0cmlidXRlIERPTUhpZ2hSZXNUaW1l
U3RhbXAgY29ubmVjdFN0YXJ0OworICAgIHJlYWRvbmx5ICAgICAgICBhdHRyaWJ1dGUgRE9NSGln
aFJlc1RpbWVTdGFtcCBjb25uZWN0RW5kOworICAgIHJlYWRvbmx5ICAgICAgICBhdHRyaWJ1dGUg
RE9NSGlnaFJlc1RpbWVTdGFtcCBzZWN1cmVDb25uZWN0aW9uU3RhcnQ7CisgICAgcmVhZG9ubHkg
ICAgICAgIGF0dHJpYnV0ZSBET01IaWdoUmVzVGltZVN0YW1wIHJlcXVlc3RTdGFydDsKKyAgICBy
ZWFkb25seSAgICAgICAgYXR0cmlidXRlIERPTUhpZ2hSZXNUaW1lU3RhbXAgcmVzcG9uc2VTdGFy
dDsKKyAgICByZWFkb25seSAgICAgICAgYXR0cmlidXRlIERPTUhpZ2hSZXNUaW1lU3RhbXAgcmVz
cG9uc2VFbmQ7CisgICAgcmVhZG9ubHkgICAgICAgIGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxv
bmcgdHJhbnNmZXJTaXplOworICAgIHJlYWRvbmx5ICAgICAgICBhdHRyaWJ1dGUgdW5zaWduZWQg
bG9uZyBsb25nIGVuY29kZWRCb2R5U2l6ZTsKKyAgICByZWFkb25seSAgICAgICAgYXR0cmlidXRl
IHVuc2lnbmVkIGxvbmcgbG9uZyBkZWNvZGVkQm9keVNpemU7CisgICAgW0RlZmF1bHRdIG9iamVj
dCB0b0pTT04oKTsKK307CisKK3BhcnRpYWwgaW50ZXJmYWNlIFBlcmZvcm1hbmNlIHsKKyAgdm9p
ZCBjbGVhclJlc291cmNlVGltaW5ncygpOworICB2b2lkIHNldFJlc291cmNlVGltaW5nQnVmZmVy
U2l6ZSh1bnNpZ25lZCBsb25nIG1heFNpemUpOworICAgICAgICAgICAgICBhdHRyaWJ1dGUgRXZl
bnRIYW5kbGVyIG9ucmVzb3VyY2V0aW1pbmdidWZmZXJmdWxsOworfTsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW50ZXJmYWNlcy9zZXJ2
aWNlLXdvcmtlcnMuaWRsIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9pbnRlcmZhY2VzL3NlcnZpY2Utd29ya2Vycy5pZGwKaW5kZXggZmIyZTAzM2E3YWEwNmIy
MTkxZWI5MzM1NGNmN2Y0ZTU2YTU0Y2NmMy4uMGZlYWJkMzg5Y2Y1NTZhNmZmNmQzOTc4ZmQyM2Uy
ZTI4ODYyNDA1NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9pbnRlcmZhY2VzL3NlcnZpY2Utd29ya2Vycy5pZGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbnRlcmZhY2VzL3NlcnZpY2Utd29y
a2Vycy5pZGwKQEAgLTEsMTMgKzEsMTQgQEAKIC8vIEdFTkVSQVRFRCBDT05URU5UIC0gRE8gTk9U
IEVESVQKIC8vIENvbnRlbnQgd2FzIGF1dG9tYXRpY2FsbHkgZXh0cmFjdGVkIGJ5IFJlZmZ5IGlu
dG8gcmVmZnktcmVwb3J0cwogLy8gKGh0dHBzOi8vZ2l0aHViLmNvbS90aWRvdXN0L3JlZmZ5LXJl
cG9ydHMpCi0vLyBTb3VyY2U6IFNlcnZpY2UgV29ya2VycyAxIChodHRwczovL3czYy5naXRodWIu
aW8vU2VydmljZVdvcmtlci92MS8pCisvLyBTb3VyY2U6IFNlcnZpY2UgV29ya2VycyBOaWdodGx5
IChodHRwczovL3czYy5naXRodWIuaW8vU2VydmljZVdvcmtlci8pCiAKIFtTZWN1cmVDb250ZXh0
LCBFeHBvc2VkPShXaW5kb3csV29ya2VyKV0KIGludGVyZmFjZSBTZXJ2aWNlV29ya2VyIDogRXZl
bnRUYXJnZXQgewogICByZWFkb25seSBhdHRyaWJ1dGUgVVNWU3RyaW5nIHNjcmlwdFVSTDsKICAg
cmVhZG9ubHkgYXR0cmlidXRlIFNlcnZpY2VXb3JrZXJTdGF0ZSBzdGF0ZTsKLSAgdm9pZCBwb3N0
TWVzc2FnZShhbnkgbWVzc2FnZSwgb3B0aW9uYWwgc2VxdWVuY2U8b2JqZWN0PiB0cmFuc2ZlciA9
IFtdKTsKKyAgdm9pZCBwb3N0TWVzc2FnZShhbnkgbWVzc2FnZSwgc2VxdWVuY2U8b2JqZWN0PiB0
cmFuc2Zlcik7CisgIHZvaWQgcG9zdE1lc3NhZ2UoYW55IG1lc3NhZ2UsIG9wdGlvbmFsIFBvc3RN
ZXNzYWdlT3B0aW9ucyBvcHRpb25zID0ge30pOwogCiAgIC8vIGV2ZW50CiAgIGF0dHJpYnV0ZSBF
dmVudEhhbmRsZXIgb25zdGF0ZWNoYW5nZTsKQEAgLTE1LDYgKzE2LDcgQEAgaW50ZXJmYWNlIFNl
cnZpY2VXb3JrZXIgOiBFdmVudFRhcmdldCB7CiBTZXJ2aWNlV29ya2VyIGluY2x1ZGVzIEFic3Ry
YWN0V29ya2VyOwogCiBlbnVtIFNlcnZpY2VXb3JrZXJTdGF0ZSB7CisgICJwYXJzZWQiLAogICAi
aW5zdGFsbGluZyIsCiAgICJpbnN0YWxsZWQiLAogICAiYWN0aXZhdGluZyIsCkBAIC0yNyw2ICsy
OSw3IEBAIGludGVyZmFjZSBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uIDogRXZlbnRUYXJnZXQg
ewogICByZWFkb25seSBhdHRyaWJ1dGUgU2VydmljZVdvcmtlcj8gaW5zdGFsbGluZzsKICAgcmVh
ZG9ubHkgYXR0cmlidXRlIFNlcnZpY2VXb3JrZXI/IHdhaXRpbmc7CiAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBTZXJ2aWNlV29ya2VyPyBhY3RpdmU7CisgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRy
aWJ1dGUgTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIG5hdmlnYXRpb25QcmVsb2FkOwogCiAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBVU1ZTdHJpbmcgc2NvcGU7CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBT
ZXJ2aWNlV29ya2VyVXBkYXRlVmlhQ2FjaGUgdXBkYXRlVmlhQ2FjaGU7CkBAIC01Nyw3ICs2MCw3
IEBAIGludGVyZmFjZSBTZXJ2aWNlV29ya2VyQ29udGFpbmVyIDogRXZlbnRUYXJnZXQgewogICBy
ZWFkb25seSBhdHRyaWJ1dGUgU2VydmljZVdvcmtlcj8gY29udHJvbGxlcjsKICAgcmVhZG9ubHkg
YXR0cmlidXRlIFByb21pc2U8U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbj4gcmVhZHk7CiAKLSAg
W05ld09iamVjdF0gUHJvbWlzZTxTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uPiByZWdpc3RlcihV
U1ZTdHJpbmcgc2NyaXB0VVJMLCBvcHRpb25hbCBSZWdpc3RyYXRpb25PcHRpb25zIG9wdGlvbnMp
OworICBbTmV3T2JqZWN0XSBQcm9taXNlPFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24+IHJlZ2lz
dGVyKFVTVlN0cmluZyBzY3JpcHRVUkwsIG9wdGlvbmFsIFJlZ2lzdHJhdGlvbk9wdGlvbnMgb3B0
aW9ucyA9IHt9KTsKIAogICBbTmV3T2JqZWN0XSBQcm9taXNlPGFueT4gZ2V0UmVnaXN0cmF0aW9u
KG9wdGlvbmFsIFVTVlN0cmluZyBjbGllbnRVUkwgPSAiIik7CiAgIFtOZXdPYmplY3RdIFByb21p
c2U8RnJvemVuQXJyYXk8U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbj4+IGdldFJlZ2lzdHJhdGlv
bnMoKTsKQEAgLTc2LDEwICs3OSwyNCBAQCBkaWN0aW9uYXJ5IFJlZ2lzdHJhdGlvbk9wdGlvbnMg
ewogICBTZXJ2aWNlV29ya2VyVXBkYXRlVmlhQ2FjaGUgdXBkYXRlVmlhQ2FjaGUgPSAiaW1wb3J0
cyI7CiB9OwogCitbU2VjdXJlQ29udGV4dCwgRXhwb3NlZD0oV2luZG93LFdvcmtlcildCitpbnRl
cmZhY2UgTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIHsKKyAgUHJvbWlzZTx2b2lkPiBlbmFibGUo
KTsKKyAgUHJvbWlzZTx2b2lkPiBkaXNhYmxlKCk7CisgIFByb21pc2U8dm9pZD4gc2V0SGVhZGVy
VmFsdWUoQnl0ZVN0cmluZyB2YWx1ZSk7CisgIFByb21pc2U8TmF2aWdhdGlvblByZWxvYWRTdGF0
ZT4gZ2V0U3RhdGUoKTsKK307CisKK2RpY3Rpb25hcnkgTmF2aWdhdGlvblByZWxvYWRTdGF0ZSB7
CisgIGJvb2xlYW4gZW5hYmxlZCA9IGZhbHNlOworICBCeXRlU3RyaW5nIGhlYWRlclZhbHVlOwor
fTsKKwogW0dsb2JhbD0oV29ya2VyLFNlcnZpY2VXb3JrZXIpLCBFeHBvc2VkPVNlcnZpY2VXb3Jr
ZXJdCiBpbnRlcmZhY2UgU2VydmljZVdvcmtlckdsb2JhbFNjb3BlIDogV29ya2VyR2xvYmFsU2Nv
cGUgewogICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIENsaWVudHMgY2xpZW50czsK
ICAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0
aW9uIHJlZ2lzdHJhdGlvbjsKKyAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBTZXJ2
aWNlV29ya2VyIHNlcnZpY2VXb3JrZXI7CiAKICAgW05ld09iamVjdF0gUHJvbWlzZTx2b2lkPiBz
a2lwV2FpdGluZygpOwogCkBAIC04Nyw4ICsxMDQsNyBAQCBpbnRlcmZhY2UgU2VydmljZVdvcmtl
ckdsb2JhbFNjb3BlIDogV29ya2VyR2xvYmFsU2NvcGUgewogICBhdHRyaWJ1dGUgRXZlbnRIYW5k
bGVyIG9uYWN0aXZhdGU7CiAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25mZXRjaDsKIAotICAv
LyBldmVudAotICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9ubWVzc2FnZTsgLy8gZXZlbnQuc291
cmNlIG9mIHRoZSBtZXNzYWdlIGV2ZW50cyBpcyBDbGllbnQgb2JqZWN0CisgIGF0dHJpYnV0ZSBF
dmVudEhhbmRsZXIgb25tZXNzYWdlOwogICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9ubWVzc2Fn
ZWVycm9yOwogfTsKIApAQCAtOTgsNyArMTE0LDggQEAgaW50ZXJmYWNlIENsaWVudCB7CiAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBGcmFtZVR5cGUgZnJhbWVUeXBlOwogICByZWFkb25seSBhdHRyaWJ1
dGUgRE9NU3RyaW5nIGlkOwogICByZWFkb25seSBhdHRyaWJ1dGUgQ2xpZW50VHlwZSB0eXBlOwot
ICB2b2lkIHBvc3RNZXNzYWdlKGFueSBtZXNzYWdlLCBvcHRpb25hbCBzZXF1ZW5jZTxvYmplY3Q+
IHRyYW5zZmVyID0gW10pOworICB2b2lkIHBvc3RNZXNzYWdlKGFueSBtZXNzYWdlLCBzZXF1ZW5j
ZTxvYmplY3Q+IHRyYW5zZmVyKTsKKyAgdm9pZCBwb3N0TWVzc2FnZShhbnkgbWVzc2FnZSwgb3B0
aW9uYWwgUG9zdE1lc3NhZ2VPcHRpb25zIG9wdGlvbnMgPSB7fSk7CiB9OwogCiBbRXhwb3NlZD1T
ZXJ2aWNlV29ya2VyXQpAQCAtMTIxLDcgKzEzOCw3IEBAIGVudW0gRnJhbWVUeXBlIHsKIGludGVy
ZmFjZSBDbGllbnRzIHsKICAgLy8gVGhlIG9iamVjdHMgcmV0dXJuZWQgd2lsbCBiZSBuZXcgaW5z
dGFuY2VzIGV2ZXJ5IHRpbWUKICAgW05ld09iamVjdF0gUHJvbWlzZTxhbnk+IGdldChET01TdHJp
bmcgaWQpOwotICBbTmV3T2JqZWN0XSBQcm9taXNlPEZyb3plbkFycmF5PENsaWVudD4+IG1hdGNo
QWxsKG9wdGlvbmFsIENsaWVudFF1ZXJ5T3B0aW9ucyBvcHRpb25zKTsKKyAgW05ld09iamVjdF0g
UHJvbWlzZTxGcm96ZW5BcnJheTxDbGllbnQ+PiBtYXRjaEFsbChvcHRpb25hbCBDbGllbnRRdWVy
eU9wdGlvbnMgb3B0aW9ucyA9IHt9KTsKICAgW05ld09iamVjdF0gUHJvbWlzZTxXaW5kb3dDbGll
bnQ/PiBvcGVuV2luZG93KFVTVlN0cmluZyB1cmwpOwogICBbTmV3T2JqZWN0XSBQcm9taXNlPHZv
aWQ+IGNsYWltKCk7CiB9OwpAQCAtMTM4LDcgKzE1NSw3IEBAIGVudW0gQ2xpZW50VHlwZSB7CiAg
ICJhbGwiCiB9OwogCi1bQ29uc3RydWN0b3IoRE9NU3RyaW5nIHR5cGUsIG9wdGlvbmFsIEV4dGVu
ZGFibGVFdmVudEluaXQgZXZlbnRJbml0RGljdCksIEV4cG9zZWQ9U2VydmljZVdvcmtlcl0KK1tD
b25zdHJ1Y3RvcihET01TdHJpbmcgdHlwZSwgb3B0aW9uYWwgRXh0ZW5kYWJsZUV2ZW50SW5pdCBl
dmVudEluaXREaWN0ID0ge30pLCBFeHBvc2VkPVNlcnZpY2VXb3JrZXJdCiBpbnRlcmZhY2UgRXh0
ZW5kYWJsZUV2ZW50IDogRXZlbnQgewogICB2b2lkIHdhaXRVbnRpbChQcm9taXNlPGFueT4gZik7
CiB9OwpAQCAtMTUwLDE3ICsxNjcsMjMgQEAgZGljdGlvbmFyeSBFeHRlbmRhYmxlRXZlbnRJbml0
IDogRXZlbnRJbml0IHsKIFtDb25zdHJ1Y3RvcihET01TdHJpbmcgdHlwZSwgRmV0Y2hFdmVudElu
aXQgZXZlbnRJbml0RGljdCksIEV4cG9zZWQ9U2VydmljZVdvcmtlcl0KIGludGVyZmFjZSBGZXRj
aEV2ZW50IDogRXh0ZW5kYWJsZUV2ZW50IHsKICAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJp
YnV0ZSBSZXF1ZXN0IHJlcXVlc3Q7CisgIHJlYWRvbmx5IGF0dHJpYnV0ZSBQcm9taXNlPGFueT4g
cHJlbG9hZFJlc3BvbnNlOwogICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGNsaWVudElk
OworICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHJlc3VsdGluZ0NsaWVudElkOworICBy
ZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHJlcGxhY2VzQ2xpZW50SWQ7CiAKICAgdm9pZCBy
ZXNwb25kV2l0aChQcm9taXNlPFJlc3BvbnNlPiByKTsKIH07CiAKIGRpY3Rpb25hcnkgRmV0Y2hF
dmVudEluaXQgOiBFeHRlbmRhYmxlRXZlbnRJbml0IHsKICAgcmVxdWlyZWQgUmVxdWVzdCByZXF1
ZXN0OworICBQcm9taXNlPGFueT4gcHJlbG9hZFJlc3BvbnNlOwogICBET01TdHJpbmcgY2xpZW50
SWQgPSAiIjsKKyAgRE9NU3RyaW5nIHJlc3VsdGluZ0NsaWVudElkID0gIiI7CisgIERPTVN0cmlu
ZyByZXBsYWNlc0NsaWVudElkID0gIiI7CiB9OwogCi1bQ29uc3RydWN0b3IoRE9NU3RyaW5nIHR5
cGUsIG9wdGlvbmFsIEV4dGVuZGFibGVNZXNzYWdlRXZlbnRJbml0IGV2ZW50SW5pdERpY3QpLCBF
eHBvc2VkPVNlcnZpY2VXb3JrZXJdCitbQ29uc3RydWN0b3IoRE9NU3RyaW5nIHR5cGUsIG9wdGlv
bmFsIEV4dGVuZGFibGVNZXNzYWdlRXZlbnRJbml0IGV2ZW50SW5pdERpY3QgPSB7fSksIEV4cG9z
ZWQ9U2VydmljZVdvcmtlcl0KIGludGVyZmFjZSBFeHRlbmRhYmxlTWVzc2FnZUV2ZW50IDogRXh0
ZW5kYWJsZUV2ZW50IHsKICAgcmVhZG9ubHkgYXR0cmlidXRlIGFueSBkYXRhOwogICByZWFkb25s
eSBhdHRyaWJ1dGUgVVNWU3RyaW5nIG9yaWdpbjsKQEAgLTE3NywxOSArMjAwLDE5IEBAIGRpY3Rp
b25hcnkgRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudEluaXQgOiBFeHRlbmRhYmxlRXZlbnRJbml0IHsK
ICAgc2VxdWVuY2U8TWVzc2FnZVBvcnQ+IHBvcnRzID0gW107CiB9OwogCi1wYXJ0aWFsIGludGVy
ZmFjZSBXaW5kb3dPcldvcmtlckdsb2JhbFNjb3BlIHsKK3BhcnRpYWwgaW50ZXJmYWNlIG1peGlu
IFdpbmRvd09yV29ya2VyR2xvYmFsU2NvcGUgewogICBbU2VjdXJlQ29udGV4dCwgU2FtZU9iamVj
dF0gcmVhZG9ubHkgYXR0cmlidXRlIENhY2hlU3RvcmFnZSBjYWNoZXM7CiB9OwogCiBbU2VjdXJl
Q29udGV4dCwgRXhwb3NlZD0oV2luZG93LFdvcmtlcildCiBpbnRlcmZhY2UgQ2FjaGUgewotICBb
TmV3T2JqZWN0XSBQcm9taXNlPGFueT4gbWF0Y2goUmVxdWVzdEluZm8gcmVxdWVzdCwgb3B0aW9u
YWwgQ2FjaGVRdWVyeU9wdGlvbnMgb3B0aW9ucyk7Ci0gIFtOZXdPYmplY3RdIFByb21pc2U8RnJv
emVuQXJyYXk8UmVzcG9uc2U+PiBtYXRjaEFsbChvcHRpb25hbCBSZXF1ZXN0SW5mbyByZXF1ZXN0
LCBvcHRpb25hbCBDYWNoZVF1ZXJ5T3B0aW9ucyBvcHRpb25zKTsKKyAgW05ld09iamVjdF0gUHJv
bWlzZTxhbnk+IG1hdGNoKFJlcXVlc3RJbmZvIHJlcXVlc3QsIG9wdGlvbmFsIENhY2hlUXVlcnlP
cHRpb25zIG9wdGlvbnMgPSB7fSk7CisgIFtOZXdPYmplY3RdIFByb21pc2U8RnJvemVuQXJyYXk8
UmVzcG9uc2U+PiBtYXRjaEFsbChvcHRpb25hbCBSZXF1ZXN0SW5mbyByZXF1ZXN0LCBvcHRpb25h
bCBDYWNoZVF1ZXJ5T3B0aW9ucyBvcHRpb25zID0ge30pOwogICBbTmV3T2JqZWN0XSBQcm9taXNl
PHZvaWQ+IGFkZChSZXF1ZXN0SW5mbyByZXF1ZXN0KTsKICAgW05ld09iamVjdF0gUHJvbWlzZTx2
b2lkPiBhZGRBbGwoc2VxdWVuY2U8UmVxdWVzdEluZm8+IHJlcXVlc3RzKTsKICAgW05ld09iamVj
dF0gUHJvbWlzZTx2b2lkPiBwdXQoUmVxdWVzdEluZm8gcmVxdWVzdCwgUmVzcG9uc2UgcmVzcG9u
c2UpOwotICBbTmV3T2JqZWN0XSBQcm9taXNlPGJvb2xlYW4+IGRlbGV0ZShSZXF1ZXN0SW5mbyBy
ZXF1ZXN0LCBvcHRpb25hbCBDYWNoZVF1ZXJ5T3B0aW9ucyBvcHRpb25zKTsKLSAgW05ld09iamVj
dF0gUHJvbWlzZTxGcm96ZW5BcnJheTxSZXF1ZXN0Pj4ga2V5cyhvcHRpb25hbCBSZXF1ZXN0SW5m
byByZXF1ZXN0LCBvcHRpb25hbCBDYWNoZVF1ZXJ5T3B0aW9ucyBvcHRpb25zKTsKKyAgW05ld09i
amVjdF0gUHJvbWlzZTxib29sZWFuPiBkZWxldGUoUmVxdWVzdEluZm8gcmVxdWVzdCwgb3B0aW9u
YWwgQ2FjaGVRdWVyeU9wdGlvbnMgb3B0aW9ucyA9IHt9KTsKKyAgW05ld09iamVjdF0gUHJvbWlz
ZTxGcm96ZW5BcnJheTxSZXF1ZXN0Pj4ga2V5cyhvcHRpb25hbCBSZXF1ZXN0SW5mbyByZXF1ZXN0
LCBvcHRpb25hbCBDYWNoZVF1ZXJ5T3B0aW9ucyBvcHRpb25zID0ge30pOwogfTsKIAogZGljdGlv
bmFyeSBDYWNoZVF1ZXJ5T3B0aW9ucyB7CkBAIC0yMDAsNyArMjIzLDcgQEAgZGljdGlvbmFyeSBD
YWNoZVF1ZXJ5T3B0aW9ucyB7CiAKIFtTZWN1cmVDb250ZXh0LCBFeHBvc2VkPShXaW5kb3csV29y
a2VyKV0KIGludGVyZmFjZSBDYWNoZVN0b3JhZ2UgewotICBbTmV3T2JqZWN0XSBQcm9taXNlPGFu
eT4gbWF0Y2goUmVxdWVzdEluZm8gcmVxdWVzdCwgb3B0aW9uYWwgTXVsdGlDYWNoZVF1ZXJ5T3B0
aW9ucyBvcHRpb25zKTsKKyAgW05ld09iamVjdF0gUHJvbWlzZTxhbnk+IG1hdGNoKFJlcXVlc3RJ
bmZvIHJlcXVlc3QsIG9wdGlvbmFsIE11bHRpQ2FjaGVRdWVyeU9wdGlvbnMgb3B0aW9ucyA9IHt9
KTsKICAgW05ld09iamVjdF0gUHJvbWlzZTxib29sZWFuPiBoYXMoRE9NU3RyaW5nIGNhY2hlTmFt
ZSk7CiAgIFtOZXdPYmplY3RdIFByb21pc2U8Q2FjaGU+IG9wZW4oRE9NU3RyaW5nIGNhY2hlTmFt
ZSk7CiAgIFtOZXdPYmplY3RdIFByb21pc2U8Ym9vbGVhbj4gZGVsZXRlKERPTVN0cmluZyBjYWNo
ZU5hbWUpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9pbnRlcmZhY2VzL3dlYnJ0Yy5pZGwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ludGVyZmFjZXMvd2VicnRjLmlkbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNTZm
ZjgwMzg5MDA3MTI5Zjg0M2ViOTk4YzlkMmY2YTZjYTQ0YTMzCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbnRlcmZhY2VzL3dl
YnJ0Yy5pZGwKQEAgLTAsMCArMSw2NzQgQEAKKy8vIEdFTkVSQVRFRCBDT05URU5UIC0gRE8gTk9U
IEVESVQKKy8vIENvbnRlbnQgd2FzIGF1dG9tYXRpY2FsbHkgZXh0cmFjdGVkIGJ5IFJlZmZ5IGlu
dG8gcmVmZnktcmVwb3J0cworLy8gKGh0dHBzOi8vZ2l0aHViLmNvbS90aWRvdXN0L3JlZmZ5LXJl
cG9ydHMpCisvLyBTb3VyY2U6IFdlYlJUQyAxLjA6IFJlYWwtdGltZSBDb21tdW5pY2F0aW9uIEJl
dHdlZW4gQnJvd3NlcnMgKGh0dHBzOi8vdzNjLmdpdGh1Yi5pby93ZWJydGMtcGMvKQorCitkaWN0
aW9uYXJ5IFJUQ0NvbmZpZ3VyYXRpb24geworICBzZXF1ZW5jZTxSVENJY2VTZXJ2ZXI+IGljZVNl
cnZlcnM7CisgIFJUQ0ljZVRyYW5zcG9ydFBvbGljeSBpY2VUcmFuc3BvcnRQb2xpY3k7CisgIFJU
Q0J1bmRsZVBvbGljeSBidW5kbGVQb2xpY3k7CisgIFJUQ1J0Y3BNdXhQb2xpY3kgcnRjcE11eFBv
bGljeTsKKyAgRE9NU3RyaW5nIHBlZXJJZGVudGl0eTsKKyAgc2VxdWVuY2U8UlRDQ2VydGlmaWNh
dGU+IGNlcnRpZmljYXRlczsKKyAgW0VuZm9yY2VSYW5nZV0gb2N0ZXQgaWNlQ2FuZGlkYXRlUG9v
bFNpemUgPSAwOworfTsKKworZW51bSBSVENJY2VDcmVkZW50aWFsVHlwZSB7CisgICJwYXNzd29y
ZCIsCisgICJvYXV0aCIKK307CisKK2RpY3Rpb25hcnkgUlRDT0F1dGhDcmVkZW50aWFsIHsKKyAg
cmVxdWlyZWQgRE9NU3RyaW5nIG1hY0tleTsKKyAgcmVxdWlyZWQgRE9NU3RyaW5nIGFjY2Vzc1Rv
a2VuOworfTsKKworZGljdGlvbmFyeSBSVENJY2VTZXJ2ZXIgeworICByZXF1aXJlZCAoRE9NU3Ry
aW5nIG9yIHNlcXVlbmNlPERPTVN0cmluZz4pIHVybHM7CisgIERPTVN0cmluZyB1c2VybmFtZTsK
KyAgKERPTVN0cmluZyBvciBSVENPQXV0aENyZWRlbnRpYWwpIGNyZWRlbnRpYWw7CisgIFJUQ0lj
ZUNyZWRlbnRpYWxUeXBlIGNyZWRlbnRpYWxUeXBlID0gInBhc3N3b3JkIjsKK307CisKK2VudW0g
UlRDSWNlVHJhbnNwb3J0UG9saWN5IHsKKyAgInJlbGF5IiwKKyAgImFsbCIKK307CisKK2VudW0g
UlRDQnVuZGxlUG9saWN5IHsKKyAgImJhbGFuY2VkIiwKKyAgIm1heC1jb21wYXQiLAorICAibWF4
LWJ1bmRsZSIKK307CisKK2VudW0gUlRDUnRjcE11eFBvbGljeSB7CisgIC8vIEF0IHJpc2sgZHVl
IHRvIGxhY2sgb2YgaW1wbGVtZW50ZXJzJyBpbnRlcmVzdC4KKyAgIm5lZ290aWF0ZSIsCisgICJy
ZXF1aXJlIgorfTsKKworZGljdGlvbmFyeSBSVENPZmZlckFuc3dlck9wdGlvbnMgeworICBib29s
ZWFuIHZvaWNlQWN0aXZpdHlEZXRlY3Rpb24gPSB0cnVlOworfTsKKworZGljdGlvbmFyeSBSVENP
ZmZlck9wdGlvbnMgOiBSVENPZmZlckFuc3dlck9wdGlvbnMgeworICBib29sZWFuIGljZVJlc3Rh
cnQgPSBmYWxzZTsKK307CisKK2RpY3Rpb25hcnkgUlRDQW5zd2VyT3B0aW9ucyA6IFJUQ09mZmVy
QW5zd2VyT3B0aW9ucyB7fTsKKworZW51bSBSVENTaWduYWxpbmdTdGF0ZSB7CisgICJzdGFibGUi
LAorICAiaGF2ZS1sb2NhbC1vZmZlciIsCisgICJoYXZlLXJlbW90ZS1vZmZlciIsCisgICJoYXZl
LWxvY2FsLXByYW5zd2VyIiwKKyAgImhhdmUtcmVtb3RlLXByYW5zd2VyIiwKKyAgImNsb3NlZCIK
K307CisKK2VudW0gUlRDSWNlR2F0aGVyaW5nU3RhdGUgeworICAibmV3IiwKKyAgImdhdGhlcmlu
ZyIsCisgICJjb21wbGV0ZSIKK307CisKK2VudW0gUlRDUGVlckNvbm5lY3Rpb25TdGF0ZSB7Cisg
ICJjbG9zZWQiLAorICAiZmFpbGVkIiwKKyAgImRpc2Nvbm5lY3RlZCIsCisgICJuZXciLAorICAi
Y29ubmVjdGluZyIsCisgICJjb25uZWN0ZWQiCit9OworCitlbnVtIFJUQ0ljZUNvbm5lY3Rpb25T
dGF0ZSB7CisgICJjbG9zZWQiLAorICAiZmFpbGVkIiwKKyAgImRpc2Nvbm5lY3RlZCIsCisgICJu
ZXciLAorICAiY2hlY2tpbmciLAorICAiY29tcGxldGVkIiwKKyAgImNvbm5lY3RlZCIKK307CisK
K1tFeHBvc2VkPVdpbmRvdywgQ29uc3RydWN0b3Iob3B0aW9uYWwgUlRDQ29uZmlndXJhdGlvbiBj
b25maWd1cmF0aW9uKV0KK2ludGVyZmFjZSBSVENQZWVyQ29ubmVjdGlvbiA6IEV2ZW50VGFyZ2V0
IHsKKyAgUHJvbWlzZTxSVENTZXNzaW9uRGVzY3JpcHRpb25Jbml0PiBjcmVhdGVPZmZlcihvcHRp
b25hbCBSVENPZmZlck9wdGlvbnMgb3B0aW9ucyk7CisgIFByb21pc2U8UlRDU2Vzc2lvbkRlc2Ny
aXB0aW9uSW5pdD4gY3JlYXRlQW5zd2VyKG9wdGlvbmFsIFJUQ0Fuc3dlck9wdGlvbnMgb3B0aW9u
cyk7CisgIFByb21pc2U8dm9pZD4gc2V0TG9jYWxEZXNjcmlwdGlvbihvcHRpb25hbCBSVENTZXNz
aW9uRGVzY3JpcHRpb25Jbml0IGRlc2NyaXB0aW9uKTsKKyAgcmVhZG9ubHkgYXR0cmlidXRlIFJU
Q1Nlc3Npb25EZXNjcmlwdGlvbj8gbG9jYWxEZXNjcmlwdGlvbjsKKyAgcmVhZG9ubHkgYXR0cmli
dXRlIFJUQ1Nlc3Npb25EZXNjcmlwdGlvbj8gY3VycmVudExvY2FsRGVzY3JpcHRpb247CisgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBSVENTZXNzaW9uRGVzY3JpcHRpb24/IHBlbmRpbmdMb2NhbERlc2Ny
aXB0aW9uOworICBQcm9taXNlPHZvaWQ+IHNldFJlbW90ZURlc2NyaXB0aW9uKG9wdGlvbmFsIFJU
Q1Nlc3Npb25EZXNjcmlwdGlvbkluaXQgZGVzY3JpcHRpb24pOworICByZWFkb25seSBhdHRyaWJ1
dGUgUlRDU2Vzc2lvbkRlc2NyaXB0aW9uPyByZW1vdGVEZXNjcmlwdGlvbjsKKyAgcmVhZG9ubHkg
YXR0cmlidXRlIFJUQ1Nlc3Npb25EZXNjcmlwdGlvbj8gY3VycmVudFJlbW90ZURlc2NyaXB0aW9u
OworICByZWFkb25seSBhdHRyaWJ1dGUgUlRDU2Vzc2lvbkRlc2NyaXB0aW9uPyBwZW5kaW5nUmVt
b3RlRGVzY3JpcHRpb247CisgIFByb21pc2U8dm9pZD4gYWRkSWNlQ2FuZGlkYXRlKG9wdGlvbmFs
IFJUQ0ljZUNhbmRpZGF0ZUluaXQgY2FuZGlkYXRlKTsKKyAgcmVhZG9ubHkgYXR0cmlidXRlIFJU
Q1NpZ25hbGluZ1N0YXRlIHNpZ25hbGluZ1N0YXRlOworICByZWFkb25seSBhdHRyaWJ1dGUgUlRD
SWNlR2F0aGVyaW5nU3RhdGUgaWNlR2F0aGVyaW5nU3RhdGU7CisgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBSVENJY2VDb25uZWN0aW9uU3RhdGUgaWNlQ29ubmVjdGlvblN0YXRlOworICByZWFkb25seSBh
dHRyaWJ1dGUgUlRDUGVlckNvbm5lY3Rpb25TdGF0ZSBjb25uZWN0aW9uU3RhdGU7CisgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBib29sZWFuPyBjYW5Ucmlja2xlSWNlQ2FuZGlkYXRlczsKKyAgdm9pZCBy
ZXN0YXJ0SWNlKCk7CisgIHN0YXRpYyBzZXF1ZW5jZTxSVENJY2VTZXJ2ZXI+IGdldERlZmF1bHRJ
Y2VTZXJ2ZXJzKCk7CisgIFJUQ0NvbmZpZ3VyYXRpb24gZ2V0Q29uZmlndXJhdGlvbigpOworICB2
b2lkIHNldENvbmZpZ3VyYXRpb24oUlRDQ29uZmlndXJhdGlvbiBjb25maWd1cmF0aW9uKTsKKyAg
dm9pZCBjbG9zZSgpOworICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9ubmVnb3RpYXRpb25uZWVk
ZWQ7CisgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25pY2VjYW5kaWRhdGU7CisgIGF0dHJpYnV0
ZSBFdmVudEhhbmRsZXIgb25pY2VjYW5kaWRhdGVlcnJvcjsKKyAgYXR0cmlidXRlIEV2ZW50SGFu
ZGxlciBvbnNpZ25hbGluZ3N0YXRlY2hhbmdlOworICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9u
aWNlY29ubmVjdGlvbnN0YXRlY2hhbmdlOworICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9uaWNl
Z2F0aGVyaW5nc3RhdGVjaGFuZ2U7CisgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25jb25uZWN0
aW9uc3RhdGVjaGFuZ2U7Cit9OworCitwYXJ0aWFsIGludGVyZmFjZSBSVENQZWVyQ29ubmVjdGlv
biB7CisgIFByb21pc2U8dm9pZD4gY3JlYXRlT2ZmZXIoUlRDU2Vzc2lvbkRlc2NyaXB0aW9uQ2Fs
bGJhY2sgc3VjY2Vzc0NhbGxiYWNrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJUQ1Bl
ZXJDb25uZWN0aW9uRXJyb3JDYWxsYmFjayBmYWlsdXJlQ2FsbGJhY2ssCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgb3B0aW9uYWwgUlRDT2ZmZXJPcHRpb25zIG9wdGlvbnMpOworICBQcm9t
aXNlPHZvaWQ+IHNldExvY2FsRGVzY3JpcHRpb24ob3B0aW9uYWwgUlRDU2Vzc2lvbkRlc2NyaXB0
aW9uSW5pdCBkZXNjcmlwdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFZvaWRGdW5jdGlvbiBzdWNjZXNzQ2FsbGJhY2ssCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBSVENQZWVyQ29ubmVjdGlvbkVycm9yQ2FsbGJhY2sgZmFpbHVyZUNhbGxiYWNr
KTsKKyAgUHJvbWlzZTx2b2lkPiBjcmVhdGVBbnN3ZXIoUlRDU2Vzc2lvbkRlc2NyaXB0aW9uQ2Fs
bGJhY2sgc3VjY2Vzc0NhbGxiYWNrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSVENQ
ZWVyQ29ubmVjdGlvbkVycm9yQ2FsbGJhY2sgZmFpbHVyZUNhbGxiYWNrKTsKKyAgUHJvbWlzZTx2
b2lkPiBzZXRSZW1vdGVEZXNjcmlwdGlvbihvcHRpb25hbCBSVENTZXNzaW9uRGVzY3JpcHRpb25J
bml0IGRlc2NyaXB0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZv
aWRGdW5jdGlvbiBzdWNjZXNzQ2FsbGJhY2ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgUlRDUGVlckNvbm5lY3Rpb25FcnJvckNhbGxiYWNrIGZhaWx1cmVDYWxsYmFjayk7
CisgIFByb21pc2U8dm9pZD4gYWRkSWNlQ2FuZGlkYXRlKFJUQ0ljZUNhbmRpZGF0ZUluaXQgY2Fu
ZGlkYXRlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWb2lkRnVuY3Rpb24gc3Vj
Y2Vzc0NhbGxiYWNrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSVENQZWVyQ29u
bmVjdGlvbkVycm9yQ2FsbGJhY2sgZmFpbHVyZUNhbGxiYWNrKTsKK307CisKK2NhbGxiYWNrIFJU
Q1BlZXJDb25uZWN0aW9uRXJyb3JDYWxsYmFjayA9IHZvaWQgKERPTUV4Y2VwdGlvbiBlcnJvcik7
CisKK2NhbGxiYWNrIFJUQ1Nlc3Npb25EZXNjcmlwdGlvbkNhbGxiYWNrID0gdm9pZCAoUlRDU2Vz
c2lvbkRlc2NyaXB0aW9uSW5pdCBkZXNjcmlwdGlvbik7CisKK3BhcnRpYWwgZGljdGlvbmFyeSBS
VENPZmZlck9wdGlvbnMgeworICBib29sZWFuIG9mZmVyVG9SZWNlaXZlQXVkaW87CisgIGJvb2xl
YW4gb2ZmZXJUb1JlY2VpdmVWaWRlbzsKK307CisKK2VudW0gUlRDU2RwVHlwZSB7CisgICJvZmZl
ciIsCisgICJwcmFuc3dlciIsCisgICJhbnN3ZXIiLAorICAicm9sbGJhY2siCit9OworCitbRXhw
b3NlZD1XaW5kb3csIENvbnN0cnVjdG9yKG9wdGlvbmFsIFJUQ1Nlc3Npb25EZXNjcmlwdGlvbklu
aXQgZGVzY3JpcHRpb25Jbml0RGljdCldCitpbnRlcmZhY2UgUlRDU2Vzc2lvbkRlc2NyaXB0aW9u
IHsKKyAgcmVhZG9ubHkgYXR0cmlidXRlIFJUQ1NkcFR5cGUgdHlwZTsKKyAgcmVhZG9ubHkgYXR0
cmlidXRlIERPTVN0cmluZyBzZHA7CisgIFtEZWZhdWx0XSBvYmplY3QgdG9KU09OKCk7Cit9Owor
CitkaWN0aW9uYXJ5IFJUQ1Nlc3Npb25EZXNjcmlwdGlvbkluaXQgeworICBSVENTZHBUeXBlIHR5
cGU7CisgIERPTVN0cmluZyBzZHAgPSAiIjsKK307CisKK1tFeHBvc2VkPVdpbmRvdywgQ29uc3Ry
dWN0b3Iob3B0aW9uYWwgUlRDSWNlQ2FuZGlkYXRlSW5pdCBjYW5kaWRhdGVJbml0RGljdCldCitp
bnRlcmZhY2UgUlRDSWNlQ2FuZGlkYXRlIHsKKyAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmlu
ZyBjYW5kaWRhdGU7CisgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmc/IHNkcE1pZDsKKyAg
cmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIHNob3J0PyBzZHBNTGluZUluZGV4OworICByZWFk
b25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nPyBmb3VuZGF0aW9uOworICByZWFkb25seSBhdHRyaWJ1
dGUgUlRDSWNlQ29tcG9uZW50PyBjb21wb25lbnQ7CisgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNp
Z25lZCBsb25nPyBwcmlvcml0eTsKKyAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZz8gYWRk
cmVzczsKKyAgcmVhZG9ubHkgYXR0cmlidXRlIFJUQ0ljZVByb3RvY29sPyBwcm90b2NvbDsKKyAg
cmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIHNob3J0PyBwb3J0OworICByZWFkb25seSBhdHRy
aWJ1dGUgUlRDSWNlQ2FuZGlkYXRlVHlwZT8gdHlwZTsKKyAgcmVhZG9ubHkgYXR0cmlidXRlIFJU
Q0ljZVRjcENhbmRpZGF0ZVR5cGU/IHRjcFR5cGU7CisgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01T
dHJpbmc/IHJlbGF0ZWRBZGRyZXNzOworICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgc2hv
cnQ/IHJlbGF0ZWRQb3J0OworICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nPyB1c2VybmFt
ZUZyYWdtZW50OworICBSVENJY2VDYW5kaWRhdGVJbml0IHRvSlNPTigpOworfTsKKworZGljdGlv
bmFyeSBSVENJY2VDYW5kaWRhdGVJbml0IHsKKyAgRE9NU3RyaW5nIGNhbmRpZGF0ZSA9ICIiOwor
ICBET01TdHJpbmc/IHNkcE1pZCA9IG51bGw7CisgIHVuc2lnbmVkIHNob3J0PyBzZHBNTGluZUlu
ZGV4ID0gbnVsbDsKKyAgRE9NU3RyaW5nPyB1c2VybmFtZUZyYWdtZW50ID0gbnVsbDsKK307CisK
K2VudW0gUlRDSWNlUHJvdG9jb2wgeworICAidWRwIiwKKyAgInRjcCIKK307CisKK2VudW0gUlRD
SWNlVGNwQ2FuZGlkYXRlVHlwZSB7CisgICJhY3RpdmUiLAorICAicGFzc2l2ZSIsCisgICJzbyIK
K307CisKK2VudW0gUlRDSWNlQ2FuZGlkYXRlVHlwZSB7CisgICJob3N0IiwKKyAgInNyZmx4IiwK
KyAgInByZmx4IiwKKyAgInJlbGF5IgorfTsKKworW0V4cG9zZWQ9V2luZG93LAorIENvbnN0cnVj
dG9yKERPTVN0cmluZyB0eXBlLCBvcHRpb25hbCBSVENQZWVyQ29ubmVjdGlvbkljZUV2ZW50SW5p
dCBldmVudEluaXREaWN0KV0KK2ludGVyZmFjZSBSVENQZWVyQ29ubmVjdGlvbkljZUV2ZW50IDog
RXZlbnQgeworICByZWFkb25seSBhdHRyaWJ1dGUgUlRDSWNlQ2FuZGlkYXRlPyBjYW5kaWRhdGU7
CisgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmc/IHVybDsKK307CisKK2RpY3Rpb25hcnkg
UlRDUGVlckNvbm5lY3Rpb25JY2VFdmVudEluaXQgOiBFdmVudEluaXQgeworICBSVENJY2VDYW5k
aWRhdGU/IGNhbmRpZGF0ZTsKKyAgRE9NU3RyaW5nPyB1cmw7Cit9OworCitbRXhwb3NlZD1XaW5k
b3csCisgQ29uc3RydWN0b3IoRE9NU3RyaW5nIHR5cGUsIFJUQ1BlZXJDb25uZWN0aW9uSWNlRXJy
b3JFdmVudEluaXQgZXZlbnRJbml0RGljdCldCitpbnRlcmZhY2UgUlRDUGVlckNvbm5lY3Rpb25J
Y2VFcnJvckV2ZW50IDogRXZlbnQgeworICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGhv
c3RDYW5kaWRhdGU7CisgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgdXJsOworICByZWFk
b25seSBhdHRyaWJ1dGUgdW5zaWduZWQgc2hvcnQgZXJyb3JDb2RlOworICByZWFkb25seSBhdHRy
aWJ1dGUgVVNWU3RyaW5nIGVycm9yVGV4dDsKK307CisKK2RpY3Rpb25hcnkgUlRDUGVlckNvbm5l
Y3Rpb25JY2VFcnJvckV2ZW50SW5pdCA6IEV2ZW50SW5pdCB7CisgIERPTVN0cmluZyBob3N0Q2Fu
ZGlkYXRlOworICBET01TdHJpbmcgdXJsOworICByZXF1aXJlZCB1bnNpZ25lZCBzaG9ydCBlcnJv
ckNvZGU7CisgIFVTVlN0cmluZyBzdGF0dXNUZXh0OworfTsKKworZW51bSBSVENQcmlvcml0eVR5
cGUgeworICAidmVyeS1sb3ciLAorICAibG93IiwKKyAgIm1lZGl1bSIsCisgICJoaWdoIgorfTsK
KworcGFydGlhbCBpbnRlcmZhY2UgUlRDUGVlckNvbm5lY3Rpb24geworICBzdGF0aWMgUHJvbWlz
ZTxSVENDZXJ0aWZpY2F0ZT4gZ2VuZXJhdGVDZXJ0aWZpY2F0ZShBbGdvcml0aG1JZGVudGlmaWVy
IGtleWdlbkFsZ29yaXRobSk7Cit9OworCitkaWN0aW9uYXJ5IFJUQ0NlcnRpZmljYXRlRXhwaXJh
dGlvbiB7CisgIFtFbmZvcmNlUmFuZ2VdIERPTVRpbWVTdGFtcCBleHBpcmVzOworfTsKKworW0V4
cG9zZWQ9V2luZG93LCBTZXJpYWxpemFibGVdCitpbnRlcmZhY2UgUlRDQ2VydGlmaWNhdGUgewor
ICByZWFkb25seSBhdHRyaWJ1dGUgRE9NVGltZVN0YW1wIGV4cGlyZXM7CisgIHN0YXRpYyBzZXF1
ZW5jZTxBbGdvcml0aG1JZGVudGlmaWVyPiBnZXRTdXBwb3J0ZWRBbGdvcml0aG1zKCk7CisgIHNl
cXVlbmNlPFJUQ0R0bHNGaW5nZXJwcmludD4gZ2V0RmluZ2VycHJpbnRzKCk7Cit9OworCitwYXJ0
aWFsIGludGVyZmFjZSBSVENQZWVyQ29ubmVjdGlvbiB7CisgIHNlcXVlbmNlPFJUQ1J0cFNlbmRl
cj4gZ2V0U2VuZGVycygpOworICBzZXF1ZW5jZTxSVENSdHBSZWNlaXZlcj4gZ2V0UmVjZWl2ZXJz
KCk7CisgIHNlcXVlbmNlPFJUQ1J0cFRyYW5zY2VpdmVyPiBnZXRUcmFuc2NlaXZlcnMoKTsKKyAg
UlRDUnRwU2VuZGVyIGFkZFRyYWNrKE1lZGlhU3RyZWFtVHJhY2sgdHJhY2ssIE1lZGlhU3RyZWFt
Li4uIHN0cmVhbXMpOworICB2b2lkIHJlbW92ZVRyYWNrKFJUQ1J0cFNlbmRlciBzZW5kZXIpOwor
ICBSVENSdHBUcmFuc2NlaXZlciBhZGRUcmFuc2NlaXZlcigoTWVkaWFTdHJlYW1UcmFjayBvciBE
T01TdHJpbmcpIHRyYWNrT3JLaW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBvcHRpb25hbCBSVENSdHBUcmFuc2NlaXZlckluaXQgaW5pdCk7CisgIGF0dHJpYnV0ZSBFdmVu
dEhhbmRsZXIgb250cmFjazsKK307CisKK2RpY3Rpb25hcnkgUlRDUnRwVHJhbnNjZWl2ZXJJbml0
IHsKKyAgUlRDUnRwVHJhbnNjZWl2ZXJEaXJlY3Rpb24gZGlyZWN0aW9uID0gInNlbmRyZWN2IjsK
KyAgc2VxdWVuY2U8TWVkaWFTdHJlYW0+IHN0cmVhbXMgPSBbXTsKKyAgc2VxdWVuY2U8UlRDUnRw
RW5jb2RpbmdQYXJhbWV0ZXJzPiBzZW5kRW5jb2RpbmdzID0gW107Cit9OworCitlbnVtIFJUQ1J0
cFRyYW5zY2VpdmVyRGlyZWN0aW9uIHsKKyAgInNlbmRyZWN2IiwKKyAgInNlbmRvbmx5IiwKKyAg
InJlY3Zvbmx5IiwKKyAgImluYWN0aXZlIiwKKyAgInN0b3BwZWQiCit9OworCitbRXhwb3NlZD1X
aW5kb3ddCitpbnRlcmZhY2UgUlRDUnRwU2VuZGVyIHsKKyAgcmVhZG9ubHkgYXR0cmlidXRlIE1l
ZGlhU3RyZWFtVHJhY2s/IHRyYWNrOworICByZWFkb25seSBhdHRyaWJ1dGUgUlRDRHRsc1RyYW5z
cG9ydD8gdHJhbnNwb3J0OworICByZWFkb25seSBhdHRyaWJ1dGUgUlRDRHRsc1RyYW5zcG9ydD8g
cnRjcFRyYW5zcG9ydDsKKyAgc3RhdGljIFJUQ1J0cENhcGFiaWxpdGllcz8gZ2V0Q2FwYWJpbGl0
aWVzKERPTVN0cmluZyBraW5kKTsKKyAgUHJvbWlzZTx2b2lkPiBzZXRQYXJhbWV0ZXJzKFJUQ1J0
cFNlbmRQYXJhbWV0ZXJzIHBhcmFtZXRlcnMpOworICBSVENSdHBTZW5kUGFyYW1ldGVycyBnZXRQ
YXJhbWV0ZXJzKCk7CisgIFByb21pc2U8dm9pZD4gcmVwbGFjZVRyYWNrKE1lZGlhU3RyZWFtVHJh
Y2s/IHdpdGhUcmFjayk7CisgIHZvaWQgc2V0U3RyZWFtcyhNZWRpYVN0cmVhbS4uLiBzdHJlYW1z
KTsKKyAgUHJvbWlzZTxSVENTdGF0c1JlcG9ydD4gZ2V0U3RhdHMoKTsKK307CisKK2RpY3Rpb25h
cnkgUlRDUnRwUGFyYW1ldGVycyB7CisgIHJlcXVpcmVkIHNlcXVlbmNlPFJUQ1J0cEhlYWRlckV4
dGVuc2lvblBhcmFtZXRlcnM+IGhlYWRlckV4dGVuc2lvbnM7CisgIHJlcXVpcmVkIFJUQ1J0Y3BQ
YXJhbWV0ZXJzIHJ0Y3A7CisgIHJlcXVpcmVkIHNlcXVlbmNlPFJUQ1J0cENvZGVjUGFyYW1ldGVy
cz4gY29kZWNzOworfTsKKworZGljdGlvbmFyeSBSVENSdHBTZW5kUGFyYW1ldGVycyA6IFJUQ1J0
cFBhcmFtZXRlcnMgeworICByZXF1aXJlZCBET01TdHJpbmcgdHJhbnNhY3Rpb25JZDsKKyAgcmVx
dWlyZWQgc2VxdWVuY2U8UlRDUnRwRW5jb2RpbmdQYXJhbWV0ZXJzPiBlbmNvZGluZ3M7CisgIFJU
Q0RlZ3JhZGF0aW9uUHJlZmVyZW5jZSBkZWdyYWRhdGlvblByZWZlcmVuY2UgPSAiYmFsYW5jZWQi
OworICBSVENQcmlvcml0eVR5cGUgcHJpb3JpdHkgPSAibG93IjsKK307CisKK2RpY3Rpb25hcnkg
UlRDUnRwUmVjZWl2ZVBhcmFtZXRlcnMgOiBSVENSdHBQYXJhbWV0ZXJzIHsKKyAgcmVxdWlyZWQg
c2VxdWVuY2U8UlRDUnRwRGVjb2RpbmdQYXJhbWV0ZXJzPiBlbmNvZGluZ3M7Cit9OworCitkaWN0
aW9uYXJ5IFJUQ1J0cENvZGluZ1BhcmFtZXRlcnMgeworICBET01TdHJpbmcgcmlkOworfTsKKwor
ZGljdGlvbmFyeSBSVENSdHBEZWNvZGluZ1BhcmFtZXRlcnMgOiBSVENSdHBDb2RpbmdQYXJhbWV0
ZXJzIHt9OworCitkaWN0aW9uYXJ5IFJUQ1J0cEVuY29kaW5nUGFyYW1ldGVycyA6IFJUQ1J0cENv
ZGluZ1BhcmFtZXRlcnMgeworICBvY3RldCBjb2RlY1BheWxvYWRUeXBlOworICBSVENEdHhTdGF0
dXMgZHR4OworICBib29sZWFuIGFjdGl2ZSA9IHRydWU7CisgIHVuc2lnbmVkIGxvbmcgcHRpbWU7
CisgIHVuc2lnbmVkIGxvbmcgbWF4Qml0cmF0ZTsKKyAgZG91YmxlIG1heEZyYW1lcmF0ZTsKKyAg
ZG91YmxlIHNjYWxlUmVzb2x1dGlvbkRvd25CeTsKK307CisKK2VudW0gUlRDRHR4U3RhdHVzIHsK
KyAgImRpc2FibGVkIiwKKyAgImVuYWJsZWQiCit9OworCitlbnVtIFJUQ0RlZ3JhZGF0aW9uUHJl
ZmVyZW5jZSB7CisgICJtYWludGFpbi1mcmFtZXJhdGUiLAorICAibWFpbnRhaW4tcmVzb2x1dGlv
biIsCisgICJiYWxhbmNlZCIKK307CisKK2RpY3Rpb25hcnkgUlRDUnRjcFBhcmFtZXRlcnMgewor
ICBET01TdHJpbmcgY25hbWU7CisgIGJvb2xlYW4gcmVkdWNlZFNpemU7Cit9OworCitkaWN0aW9u
YXJ5IFJUQ1J0cEhlYWRlckV4dGVuc2lvblBhcmFtZXRlcnMgeworICByZXF1aXJlZCBET01TdHJp
bmcgdXJpOworICByZXF1aXJlZCB1bnNpZ25lZCBzaG9ydCBpZDsKKyAgYm9vbGVhbiBlbmNyeXB0
ZWQgPSBmYWxzZTsKK307CisKK2RpY3Rpb25hcnkgUlRDUnRwQ29kZWNQYXJhbWV0ZXJzIHsKKyAg
cmVxdWlyZWQgb2N0ZXQgcGF5bG9hZFR5cGU7CisgIHJlcXVpcmVkIERPTVN0cmluZyBtaW1lVHlw
ZTsKKyAgcmVxdWlyZWQgdW5zaWduZWQgbG9uZyBjbG9ja1JhdGU7CisgIHVuc2lnbmVkIHNob3J0
IGNoYW5uZWxzOworICBET01TdHJpbmcgc2RwRm10cExpbmU7Cit9OworCitkaWN0aW9uYXJ5IFJU
Q1J0cENhcGFiaWxpdGllcyB7CisgIHJlcXVpcmVkIHNlcXVlbmNlPFJUQ1J0cENvZGVjQ2FwYWJp
bGl0eT4gY29kZWNzOworICByZXF1aXJlZCBzZXF1ZW5jZTxSVENSdHBIZWFkZXJFeHRlbnNpb25D
YXBhYmlsaXR5PiBoZWFkZXJFeHRlbnNpb25zOworfTsKKworZGljdGlvbmFyeSBSVENSdHBDb2Rl
Y0NhcGFiaWxpdHkgeworICByZXF1aXJlZCBET01TdHJpbmcgbWltZVR5cGU7CisgIHJlcXVpcmVk
IHVuc2lnbmVkIGxvbmcgY2xvY2tSYXRlOworICB1bnNpZ25lZCBzaG9ydCBjaGFubmVsczsKKyAg
RE9NU3RyaW5nIHNkcEZtdHBMaW5lOworfTsKKworZGljdGlvbmFyeSBSVENSdHBIZWFkZXJFeHRl
bnNpb25DYXBhYmlsaXR5IHsKKyAgRE9NU3RyaW5nIHVyaTsKK307CisKK1tFeHBvc2VkPVdpbmRv
d10KK2ludGVyZmFjZSBSVENSdHBSZWNlaXZlciB7CisgIHJlYWRvbmx5IGF0dHJpYnV0ZSBNZWRp
YVN0cmVhbVRyYWNrIHRyYWNrOworICByZWFkb25seSBhdHRyaWJ1dGUgUlRDRHRsc1RyYW5zcG9y
dD8gdHJhbnNwb3J0OworICByZWFkb25seSBhdHRyaWJ1dGUgUlRDRHRsc1RyYW5zcG9ydD8gcnRj
cFRyYW5zcG9ydDsKKyAgc3RhdGljIFJUQ1J0cENhcGFiaWxpdGllcz8gZ2V0Q2FwYWJpbGl0aWVz
KERPTVN0cmluZyBraW5kKTsKKyAgUlRDUnRwUmVjZWl2ZVBhcmFtZXRlcnMgZ2V0UGFyYW1ldGVy
cygpOworICBzZXF1ZW5jZTxSVENSdHBDb250cmlidXRpbmdTb3VyY2U+IGdldENvbnRyaWJ1dGlu
Z1NvdXJjZXMoKTsKKyAgc2VxdWVuY2U8UlRDUnRwU3luY2hyb25pemF0aW9uU291cmNlPiBnZXRT
eW5jaHJvbml6YXRpb25Tb3VyY2VzKCk7CisgIFByb21pc2U8UlRDU3RhdHNSZXBvcnQ+IGdldFN0
YXRzKCk7Cit9OworCitkaWN0aW9uYXJ5IFJUQ1J0cENvbnRyaWJ1dGluZ1NvdXJjZSB7CisgIHJl
cXVpcmVkIERPTUhpZ2hSZXNUaW1lU3RhbXAgdGltZXN0YW1wOworICByZXF1aXJlZCB1bnNpZ25l
ZCBsb25nIHNvdXJjZTsKKyAgZG91YmxlIGF1ZGlvTGV2ZWw7CisgIHJlcXVpcmVkIHVuc2lnbmVk
IGxvbmcgcnRwVGltZXN0YW1wOworfTsKKworZGljdGlvbmFyeSBSVENSdHBTeW5jaHJvbml6YXRp
b25Tb3VyY2UgOiBSVENSdHBDb250cmlidXRpbmdTb3VyY2UgeworICBib29sZWFuIHZvaWNlQWN0
aXZpdHlGbGFnOworfTsKKworW0V4cG9zZWQ9V2luZG93XQoraW50ZXJmYWNlIFJUQ1J0cFRyYW5z
Y2VpdmVyIHsKKyAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZz8gbWlkOworICBbU2FtZU9i
amVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIFJUQ1J0cFNlbmRlciBzZW5kZXI7CisgIFtTYW1lT2Jq
ZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgUlRDUnRwUmVjZWl2ZXIgcmVjZWl2ZXI7CisgIGF0dHJp
YnV0ZSBSVENSdHBUcmFuc2NlaXZlckRpcmVjdGlvbiBkaXJlY3Rpb247CisgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBSVENSdHBUcmFuc2NlaXZlckRpcmVjdGlvbj8gY3VycmVudERpcmVjdGlvbjsKKyAg
dm9pZCBzdG9wKCk7CisgIHZvaWQgc2V0Q29kZWNQcmVmZXJlbmNlcyhzZXF1ZW5jZTxSVENSdHBD
b2RlY0NhcGFiaWxpdHk+IGNvZGVjcyk7Cit9OworCitbRXhwb3NlZD1XaW5kb3ddCitpbnRlcmZh
Y2UgUlRDRHRsc1RyYW5zcG9ydCA6IEV2ZW50VGFyZ2V0IHsKKyAgW1NhbWVPYmplY3RdIHJlYWRv
bmx5IGF0dHJpYnV0ZSBSVENJY2VUcmFuc3BvcnQgaWNlVHJhbnNwb3J0OworICByZWFkb25seSBh
dHRyaWJ1dGUgUlRDRHRsc1RyYW5zcG9ydFN0YXRlIHN0YXRlOworICBzZXF1ZW5jZTxBcnJheUJ1
ZmZlcj4gZ2V0UmVtb3RlQ2VydGlmaWNhdGVzKCk7CisgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIg
b25zdGF0ZWNoYW5nZTsKKyAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbmVycm9yOworfTsKKwor
ZW51bSBSVENEdGxzVHJhbnNwb3J0U3RhdGUgeworICAibmV3IiwKKyAgImNvbm5lY3RpbmciLAor
ICAiY29ubmVjdGVkIiwKKyAgImNsb3NlZCIsCisgICJmYWlsZWQiCit9OworCitkaWN0aW9uYXJ5
IFJUQ0R0bHNGaW5nZXJwcmludCB7CisgIERPTVN0cmluZyBhbGdvcml0aG07CisgIERPTVN0cmlu
ZyB2YWx1ZTsKK307CisKK1tFeHBvc2VkPVdpbmRvd10KK2ludGVyZmFjZSBSVENJY2VUcmFuc3Bv
cnQgOiBFdmVudFRhcmdldCB7CisgIHJlYWRvbmx5IGF0dHJpYnV0ZSBSVENJY2VSb2xlIHJvbGU7
CisgIHJlYWRvbmx5IGF0dHJpYnV0ZSBSVENJY2VDb21wb25lbnQgY29tcG9uZW50OworICByZWFk
b25seSBhdHRyaWJ1dGUgUlRDSWNlVHJhbnNwb3J0U3RhdGUgc3RhdGU7CisgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBSVENJY2VHYXRoZXJlclN0YXRlIGdhdGhlcmluZ1N0YXRlOworICBzZXF1ZW5jZTxS
VENJY2VDYW5kaWRhdGU+IGdldExvY2FsQ2FuZGlkYXRlcygpOworICBzZXF1ZW5jZTxSVENJY2VD
YW5kaWRhdGU+IGdldFJlbW90ZUNhbmRpZGF0ZXMoKTsKKyAgUlRDSWNlQ2FuZGlkYXRlUGFpcj8g
Z2V0U2VsZWN0ZWRDYW5kaWRhdGVQYWlyKCk7CisgIFJUQ0ljZVBhcmFtZXRlcnM/IGdldExvY2Fs
UGFyYW1ldGVycygpOworICBSVENJY2VQYXJhbWV0ZXJzPyBnZXRSZW1vdGVQYXJhbWV0ZXJzKCk7
CisgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25zdGF0ZWNoYW5nZTsKKyAgYXR0cmlidXRlIEV2
ZW50SGFuZGxlciBvbmdhdGhlcmluZ3N0YXRlY2hhbmdlOworICBhdHRyaWJ1dGUgRXZlbnRIYW5k
bGVyIG9uc2VsZWN0ZWRjYW5kaWRhdGVwYWlyY2hhbmdlOworfTsKKworZGljdGlvbmFyeSBSVENJ
Y2VQYXJhbWV0ZXJzIHsKKyAgRE9NU3RyaW5nIHVzZXJuYW1lRnJhZ21lbnQ7CisgIERPTVN0cmlu
ZyBwYXNzd29yZDsKK307CisKK2RpY3Rpb25hcnkgUlRDSWNlQ2FuZGlkYXRlUGFpciB7CisgIFJU
Q0ljZUNhbmRpZGF0ZSBsb2NhbDsKKyAgUlRDSWNlQ2FuZGlkYXRlIHJlbW90ZTsKK307CisKK2Vu
dW0gUlRDSWNlR2F0aGVyZXJTdGF0ZSB7CisgICJuZXciLAorICAiZ2F0aGVyaW5nIiwKKyAgImNv
bXBsZXRlIgorfTsKKworZW51bSBSVENJY2VUcmFuc3BvcnRTdGF0ZSB7CisgICJuZXciLAorICAi
Y2hlY2tpbmciLAorICAiY29ubmVjdGVkIiwKKyAgImNvbXBsZXRlZCIsCisgICJkaXNjb25uZWN0
ZWQiLAorICAiZmFpbGVkIiwKKyAgImNsb3NlZCIKK307CisKK2VudW0gUlRDSWNlUm9sZSB7Cisg
ICJ1bmtub3duIiwKKyAgImNvbnRyb2xsaW5nIiwKKyAgImNvbnRyb2xsZWQiCit9OworCitlbnVt
IFJUQ0ljZUNvbXBvbmVudCB7CisgICJydHAiLAorICAicnRjcCIKK307CisKK1tFeHBvc2VkPVdp
bmRvdywgQ29uc3RydWN0b3IoRE9NU3RyaW5nIHR5cGUsIFJUQ1RyYWNrRXZlbnRJbml0IGV2ZW50
SW5pdERpY3QpXQoraW50ZXJmYWNlIFJUQ1RyYWNrRXZlbnQgOiBFdmVudCB7CisgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBSVENSdHBSZWNlaXZlciByZWNlaXZlcjsKKyAgcmVhZG9ubHkgYXR0cmlidXRl
IE1lZGlhU3RyZWFtVHJhY2sgdHJhY2s7CisgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1
dGUgRnJvemVuQXJyYXk8TWVkaWFTdHJlYW0+IHN0cmVhbXM7CisgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBSVENSdHBUcmFuc2NlaXZlciB0cmFuc2NlaXZlcjsKK307CisKK2RpY3Rpb25hcnkgUlRDVHJh
Y2tFdmVudEluaXQgOiBFdmVudEluaXQgeworICByZXF1aXJlZCBSVENSdHBSZWNlaXZlciByZWNl
aXZlcjsKKyAgcmVxdWlyZWQgTWVkaWFTdHJlYW1UcmFjayB0cmFjazsKKyAgc2VxdWVuY2U8TWVk
aWFTdHJlYW0+IHN0cmVhbXMgPSBbXTsKKyAgcmVxdWlyZWQgUlRDUnRwVHJhbnNjZWl2ZXIgdHJh
bnNjZWl2ZXI7Cit9OworCitwYXJ0aWFsIGludGVyZmFjZSBSVENQZWVyQ29ubmVjdGlvbiB7Cisg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBSVENTY3RwVHJhbnNwb3J0PyBzY3RwOworICBSVENEYXRhQ2hh
bm5lbCBjcmVhdGVEYXRhQ2hhbm5lbChVU1ZTdHJpbmcgbGFiZWwsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG9wdGlvbmFsIFJUQ0RhdGFDaGFubmVsSW5pdCBkYXRhQ2hhbm5l
bERpY3QpOworICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9uZGF0YWNoYW5uZWw7Cit9OworCitb
RXhwb3NlZD1XaW5kb3ddCitpbnRlcmZhY2UgUlRDU2N0cFRyYW5zcG9ydCA6IEV2ZW50VGFyZ2V0
IHsKKyAgcmVhZG9ubHkgYXR0cmlidXRlIFJUQ0R0bHNUcmFuc3BvcnQgdHJhbnNwb3J0OworICBy
ZWFkb25seSBhdHRyaWJ1dGUgUlRDU2N0cFRyYW5zcG9ydFN0YXRlIHN0YXRlOworICByZWFkb25s
eSBhdHRyaWJ1dGUgdW5yZXN0cmljdGVkIGRvdWJsZSBtYXhNZXNzYWdlU2l6ZTsKKyAgcmVhZG9u
bHkgYXR0cmlidXRlIHVuc2lnbmVkIHNob3J0PyBtYXhDaGFubmVsczsKKyAgYXR0cmlidXRlIEV2
ZW50SGFuZGxlciBvbnN0YXRlY2hhbmdlOworfTsKKworZW51bSBSVENTY3RwVHJhbnNwb3J0U3Rh
dGUgeworICAiY29ubmVjdGluZyIsCisgICJjb25uZWN0ZWQiLAorICAiY2xvc2VkIgorfTsKKwor
W0V4cG9zZWQ9V2luZG93XQoraW50ZXJmYWNlIFJUQ0RhdGFDaGFubmVsIDogRXZlbnRUYXJnZXQg
eworICByZWFkb25seSBhdHRyaWJ1dGUgVVNWU3RyaW5nIGxhYmVsOworICByZWFkb25seSBhdHRy
aWJ1dGUgYm9vbGVhbiBvcmRlcmVkOworICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgc2hv
cnQ/IG1heFBhY2tldExpZmVUaW1lOworICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgc2hv
cnQ/IG1heFJldHJhbnNtaXRzOworICByZWFkb25seSBhdHRyaWJ1dGUgVVNWU3RyaW5nIHByb3Rv
Y29sOworICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBuZWdvdGlhdGVkOworICByZWFkb25s
eSBhdHRyaWJ1dGUgdW5zaWduZWQgc2hvcnQ/IGlkOworICByZWFkb25seSBhdHRyaWJ1dGUgUlRD
UHJpb3JpdHlUeXBlIHByaW9yaXR5OworICByZWFkb25seSBhdHRyaWJ1dGUgUlRDRGF0YUNoYW5u
ZWxTdGF0ZSByZWFkeVN0YXRlOworICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBi
dWZmZXJlZEFtb3VudDsKKyAgW0VuZm9yY2VSYW5nZV0gYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcg
YnVmZmVyZWRBbW91bnRMb3dUaHJlc2hvbGQ7CisgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25v
cGVuOworICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9uYnVmZmVyZWRhbW91bnRsb3c7CisgIGF0
dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25lcnJvcjsKKyAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciBv
bmNsb3Npbmc7CisgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25jbG9zZTsKKyAgdm9pZCBjbG9z
ZSgpOworICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9ubWVzc2FnZTsKKyAgYXR0cmlidXRlIERP
TVN0cmluZyBiaW5hcnlUeXBlOworICB2b2lkIHNlbmQoVVNWU3RyaW5nIGRhdGEpOworICB2b2lk
IHNlbmQoQmxvYiBkYXRhKTsKKyAgdm9pZCBzZW5kKEFycmF5QnVmZmVyIGRhdGEpOworICB2b2lk
IHNlbmQoQXJyYXlCdWZmZXJWaWV3IGRhdGEpOworfTsKKworZGljdGlvbmFyeSBSVENEYXRhQ2hh
bm5lbEluaXQgeworICBib29sZWFuIG9yZGVyZWQgPSB0cnVlOworICBbRW5mb3JjZVJhbmdlXSB1
bnNpZ25lZCBzaG9ydCBtYXhQYWNrZXRMaWZlVGltZTsKKyAgW0VuZm9yY2VSYW5nZV0gdW5zaWdu
ZWQgc2hvcnQgbWF4UmV0cmFuc21pdHM7CisgIFVTVlN0cmluZyBwcm90b2NvbCA9ICIiOworICBi
b29sZWFuIG5lZ290aWF0ZWQgPSBmYWxzZTsKKyAgW0VuZm9yY2VSYW5nZV0gdW5zaWduZWQgc2hv
cnQgaWQ7CisgIFJUQ1ByaW9yaXR5VHlwZSBwcmlvcml0eSA9ICJsb3ciOworfTsKKworZW51bSBS
VENEYXRhQ2hhbm5lbFN0YXRlIHsKKyAgImNvbm5lY3RpbmciLAorICAib3BlbiIsCisgICJjbG9z
aW5nIiwKKyAgImNsb3NlZCIKK307CisKK1tFeHBvc2VkPVdpbmRvdywgQ29uc3RydWN0b3IoRE9N
U3RyaW5nIHR5cGUsIFJUQ0RhdGFDaGFubmVsRXZlbnRJbml0IGV2ZW50SW5pdERpY3QpXQoraW50
ZXJmYWNlIFJUQ0RhdGFDaGFubmVsRXZlbnQgOiBFdmVudCB7CisgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBSVENEYXRhQ2hhbm5lbCBjaGFubmVsOworfTsKKworZGljdGlvbmFyeSBSVENEYXRhQ2hhbm5l
bEV2ZW50SW5pdCA6IEV2ZW50SW5pdCB7CisgIHJlcXVpcmVkIFJUQ0RhdGFDaGFubmVsIGNoYW5u
ZWw7Cit9OworCitwYXJ0aWFsIGludGVyZmFjZSBSVENSdHBTZW5kZXIgeworICByZWFkb25seSBh
dHRyaWJ1dGUgUlRDRFRNRlNlbmRlcj8gZHRtZjsKK307CisKK1tFeHBvc2VkPVdpbmRvd10KK2lu
dGVyZmFjZSBSVENEVE1GU2VuZGVyIDogRXZlbnRUYXJnZXQgeworICB2b2lkIGluc2VydERUTUYo
RE9NU3RyaW5nIHRvbmVzLCBvcHRpb25hbCB1bnNpZ25lZCBsb25nIGR1cmF0aW9uID0gMTAwLCBv
cHRpb25hbCB1bnNpZ25lZCBsb25nIGludGVyVG9uZUdhcCA9IDcwKTsKKyAgYXR0cmlidXRlIEV2
ZW50SGFuZGxlciBvbnRvbmVjaGFuZ2U7CisgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIGNh
bkluc2VydERUTUY7CisgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgdG9uZUJ1ZmZlcjsK
K307CisKK1tFeHBvc2VkPVdpbmRvdywKKyBDb25zdHJ1Y3RvcihET01TdHJpbmcgdHlwZSwgUlRD
RFRNRlRvbmVDaGFuZ2VFdmVudEluaXQgZXZlbnRJbml0RGljdCldCitpbnRlcmZhY2UgUlRDRFRN
RlRvbmVDaGFuZ2VFdmVudCA6IEV2ZW50IHsKKyAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmlu
ZyB0b25lOworfTsKKworZGljdGlvbmFyeSBSVENEVE1GVG9uZUNoYW5nZUV2ZW50SW5pdCA6IEV2
ZW50SW5pdCB7CisgIHJlcXVpcmVkIERPTVN0cmluZyB0b25lOworfTsKKworcGFydGlhbCBpbnRl
cmZhY2UgUlRDUGVlckNvbm5lY3Rpb24geworICBQcm9taXNlPFJUQ1N0YXRzUmVwb3J0PiBnZXRT
dGF0cyhvcHRpb25hbCBNZWRpYVN0cmVhbVRyYWNrPyBzZWxlY3RvciA9IG51bGwpOworICBhdHRy
aWJ1dGUgRXZlbnRIYW5kbGVyIG9uc3RhdHNlbmRlZDsKK307CisKK1tFeHBvc2VkPVdpbmRvd10K
K2ludGVyZmFjZSBSVENTdGF0c1JlcG9ydCB7CisgIHJlYWRvbmx5IG1hcGxpa2U8RE9NU3RyaW5n
LCBvYmplY3Q+OworfTsKKworZGljdGlvbmFyeSBSVENTdGF0cyB7CisgIHJlcXVpcmVkIERPTUhp
Z2hSZXNUaW1lU3RhbXAgdGltZXN0YW1wOworICByZXF1aXJlZCBSVENTdGF0c1R5cGUgdHlwZTsK
KyAgcmVxdWlyZWQgRE9NU3RyaW5nIGlkOworfTsKKworW0V4cG9zZWQ9V2luZG93LAorIENvbnN0
cnVjdG9yKERPTVN0cmluZyB0eXBlLCBSVENTdGF0c0V2ZW50SW5pdCBldmVudEluaXREaWN0KV0K
K2ludGVyZmFjZSBSVENTdGF0c0V2ZW50IDogRXZlbnQgeworICByZWFkb25seSBhdHRyaWJ1dGUg
UlRDU3RhdHNSZXBvcnQgcmVwb3J0OworfTsKKworZGljdGlvbmFyeSBSVENTdGF0c0V2ZW50SW5p
dCA6IEV2ZW50SW5pdCB7CisgIHJlcXVpcmVkIFJUQ1N0YXRzUmVwb3J0IHJlcG9ydDsKK307CisK
K1tFeHBvc2VkPVdpbmRvdywgQ29uc3RydWN0b3IoUlRDRXJyb3JJbml0IGluaXQsIG9wdGlvbmFs
IERPTVN0cmluZyBtZXNzYWdlID0gIiIpXQoraW50ZXJmYWNlIFJUQ0Vycm9yIDogRE9NRXhjZXB0
aW9uIHsKKyAgcmVhZG9ubHkgYXR0cmlidXRlIFJUQ0Vycm9yRGV0YWlsVHlwZSBlcnJvckRldGFp
bDsKKyAgcmVhZG9ubHkgYXR0cmlidXRlIGxvbmc/IHNkcExpbmVOdW1iZXI7CisgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBsb25nPyBodHRwUmVxdWVzdFN0YXR1c0NvZGU7CisgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBsb25nPyBzY3RwQ2F1c2VDb2RlOworICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQg
bG9uZz8gcmVjZWl2ZWRBbGVydDsKKyAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmc/
IHNlbnRBbGVydDsKK307CisKK2RpY3Rpb25hcnkgUlRDRXJyb3JJbml0IHsKKyAgcmVxdWlyZWQg
UlRDRXJyb3JEZXRhaWxUeXBlIGVycm9yRGV0YWlsOworICBsb25nIHNkcExpbmVOdW1iZXI7Cisg
IGxvbmcgaHR0cFJlcXVlc3RTdGF0dXNDb2RlOworICBsb25nIHNjdHBDYXVzZUNvZGU7CisgIHVu
c2lnbmVkIGxvbmcgcmVjZWl2ZWRBbGVydDsKKyAgdW5zaWduZWQgbG9uZyBzZW50QWxlcnQ7Cit9
OworCitlbnVtIFJUQ0Vycm9yRGV0YWlsVHlwZSB7CisgICJkYXRhLWNoYW5uZWwtZmFpbHVyZSIs
CisgICJkdGxzLWZhaWx1cmUiLAorICAiZmluZ2VycHJpbnQtZmFpbHVyZSIsCisgICJpZHAtYmFk
LXNjcmlwdC1mYWlsdXJlIiwKKyAgImlkcC1leGVjdXRpb24tZmFpbHVyZSIsCisgICJpZHAtbG9h
ZC1mYWlsdXJlIiwKKyAgImlkcC1uZWVkLWxvZ2luIiwKKyAgImlkcC10aW1lb3V0IiwKKyAgImlk
cC10bHMtZmFpbHVyZSIsCisgICJpZHAtdG9rZW4tZXhwaXJlZCIsCisgICJpZHAtdG9rZW4taW52
YWxpZCIsCisgICJzY3RwLWZhaWx1cmUiLAorICAic2RwLXN5bnRheC1lcnJvciIsCisgICJoYXJk
d2FyZS1lbmNvZGVyLW5vdC1hdmFpbGFibGUiLAorICAiaGFyZHdhcmUtZW5jb2Rlci1lcnJvciIK
K307CisKK1tFeHBvc2VkPVdpbmRvdywKKyBDb25zdHJ1Y3RvcihET01TdHJpbmcgdHlwZSwgUlRD
RXJyb3JFdmVudEluaXQgZXZlbnRJbml0RGljdCldCitpbnRlcmZhY2UgUlRDRXJyb3JFdmVudCA6
IEV2ZW50IHsKKyAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBSVENFcnJvciBlcnJv
cjsKK307CisKK2RpY3Rpb25hcnkgUlRDRXJyb3JFdmVudEluaXQgOiBFdmVudEluaXQgeworICBy
ZXF1aXJlZCBSVENFcnJvciBlcnJvcjsKK307CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ludGVyc2VjdGlvbi1vYnNlcnZlci9pZGxoYXJu
ZXNzLndpbmRvdy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2ludGVyc2VjdGlvbi1vYnNlcnZlci9pZGxoYXJuZXNzLndpbmRvdy1leHBl
Y3RlZC50eHQKaW5kZXggZjEwODU5ZTEzOWFiZTRjOTMyYTY1NzBlOTMwN2I2MDhkZDBiYjk4My4u
ZGM4MDdmMjUwYThmMDhmZjdmMWQwMDZhOGQ5MDFiMDUyNTYwOGYwYSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbnRlcnNlY3Rpb24tb2Jz
ZXJ2ZXIvaWRsaGFybmVzcy53aW5kb3ctZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW50ZXJzZWN0aW9uLW9ic2VydmVyL2lkbGhh
cm5lc3Mud2luZG93LWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDMgQEAKLUNPTlNPTEUgTUVTU0FH
RTogbGluZSA0ODI6IGNhbGxiYWNrIG5vdCB5ZXQgc3VwcG9ydGVkCiAKIFBBU1MgaWRsX3Rlc3Qg
c2V0dXAgCiBQQVNTIEludGVyc2VjdGlvbk9ic2VydmVyIGludGVyZmFjZTogZXhpc3RlbmNlIGFu
ZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21hdGhtbC9yZWxhdGlvbnMvaHRtbDUt
dHJlZS9tYXRoLWdsb2JhbC1ldmVudC1oYW5kbGVycy50ZW50YXRpdmUtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tYXRobWwvcmVsYXRp
b25zL2h0bWw1LXRyZWUvbWF0aC1nbG9iYWwtZXZlbnQtaGFuZGxlcnMudGVudGF0aXZlLWV4cGVj
dGVkLnR4dAppbmRleCBjNDE1OGFkNWQyZmFlZjU3ZTBmNDM2MGY1NTliYWI5Mzk0NDlhNmVkLi5h
NTFjMmIxNjQ1MjBjMDc1MzQ0YmVkZGYyYjcyMzA2YzZmMDY4NjBjIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21hdGhtbC9yZWxhdGlvbnMv
aHRtbDUtdHJlZS9tYXRoLWdsb2JhbC1ldmVudC1oYW5kbGVycy50ZW50YXRpdmUtZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWF0
aG1sL3JlbGF0aW9ucy9odG1sNS10cmVlL21hdGgtZ2xvYmFsLWV2ZW50LWhhbmRsZXJzLnRlbnRh
dGl2ZS1leHBlY3RlZC50eHQKQEAgLTk1LDYgKzk1LDEwIEBAIFBBU1Mgb25mb2N1czogbXVzdCBi
ZSBvbiB0aGUgYXBwcm9wcmlhdGUgbG9jYXRpb25zIGZvciBHbG9iYWxFdmVudEhhbmRsZXJzCiBQ
QVNTIG9uZm9jdXM6IHRoZSBkZWZhdWx0IHZhbHVlIG11c3QgYmUgbnVsbCAKIFBBU1Mgb25mb2N1
czogdGhlIGNvbnRlbnQgYXR0cmlidXRlIG11c3QgYmUgY29tcGlsZWQgaW50byBhIGZ1bmN0aW9u
IGFzIHRoZSBjb3JyZXNwb25kaW5nIHByb3BlcnR5IAogUEFTUyBvbmZvY3VzOiBkaXNwYXRjaGlu
ZyBhbiBFdmVudCBhdCBhIDxtYXRoPiBlbGVtZW50IG11c3QgdHJpZ2dlciBlbGVtZW50Lm9uZm9j
dXMgCitGQUlMIG9uZm9ybWRhdGE6IG11c3QgYmUgb24gdGhlIGFwcHJvcHJpYXRlIGxvY2F0aW9u
cyBmb3IgR2xvYmFsRXZlbnRIYW5kbGVycyBhc3NlcnRfdHJ1ZTogTWF0aE1MRWxlbWVudCBoYXMg
YW4gb3duIHByb3BlcnR5IG5hbWVkICJvbmZvcm1kYXRhIiBleHBlY3RlZCB0cnVlIGdvdCBmYWxz
ZQorRkFJTCBvbmZvcm1kYXRhOiB0aGUgZGVmYXVsdCB2YWx1ZSBtdXN0IGJlIG51bGwgYXNzZXJ0
X2VxdWFsczogVGhlIGRlZmF1bHQgdmFsdWUgb2YgdGhlIHByb3BlcnR5IGlzIG51bGwgZm9yIGEg
TWF0aE1MTWF0aEVsZW1lbnQgaW5zdGFuY2UgZXhwZWN0ZWQgKG9iamVjdCkgbnVsbCBidXQgZ290
ICh1bmRlZmluZWQpIHVuZGVmaW5lZAorRkFJTCBvbmZvcm1kYXRhOiB0aGUgY29udGVudCBhdHRy
aWJ1dGUgbXVzdCBiZSBjb21waWxlZCBpbnRvIGEgZnVuY3Rpb24gYXMgdGhlIGNvcnJlc3BvbmRp
bmcgcHJvcGVydHkgYXNzZXJ0X2VxdWFsczogVGhlIG9uZm9ybWRhdGEgcHJvcGVydHkgbXVzdCBi
ZSBhIGZ1bmN0aW9uIGV4cGVjdGVkICJmdW5jdGlvbiIgYnV0IGdvdCAidW5kZWZpbmVkIgorUEFT
UyBvbmZvcm1kYXRhOiBkaXNwYXRjaGluZyBhbiBFdmVudCBhdCBhIDxtYXRoPiBlbGVtZW50IG11
c3QgdHJpZ2dlciBlbGVtZW50Lm9uZm9ybWRhdGEgCiBQQVNTIG9uaW5wdXQ6IG11c3QgYmUgb24g
dGhlIGFwcHJvcHJpYXRlIGxvY2F0aW9ucyBmb3IgR2xvYmFsRXZlbnRIYW5kbGVycyAKIFBBU1Mg
b25pbnB1dDogdGhlIGRlZmF1bHQgdmFsdWUgbXVzdCBiZSBudWxsIAogUEFTUyBvbmlucHV0OiB0
aGUgY29udGVudCBhdHRyaWJ1dGUgbXVzdCBiZSBjb21waWxlZCBpbnRvIGEgZnVuY3Rpb24gYXMg
dGhlIGNvcnJlc3BvbmRpbmcgcHJvcGVydHkgCkBAIC0xMjcsMTAgKzEzMSw2IEBAIFBBU1Mgb25s
b2FkZWRtZXRhZGF0YTogbXVzdCBiZSBvbiB0aGUgYXBwcm9wcmlhdGUgbG9jYXRpb25zIGZvciBH
bG9iYWxFdmVudEhhbmRsCiBQQVNTIG9ubG9hZGVkbWV0YWRhdGE6IHRoZSBkZWZhdWx0IHZhbHVl
IG11c3QgYmUgbnVsbCAKIFBBU1Mgb25sb2FkZWRtZXRhZGF0YTogdGhlIGNvbnRlbnQgYXR0cmli
dXRlIG11c3QgYmUgY29tcGlsZWQgaW50byBhIGZ1bmN0aW9uIGFzIHRoZSBjb3JyZXNwb25kaW5n
IHByb3BlcnR5IAogUEFTUyBvbmxvYWRlZG1ldGFkYXRhOiBkaXNwYXRjaGluZyBhbiBFdmVudCBh
dCBhIDxtYXRoPiBlbGVtZW50IG11c3QgdHJpZ2dlciBlbGVtZW50Lm9ubG9hZGVkbWV0YWRhdGEg
Ci1GQUlMIG9ubG9hZGVuZDogbXVzdCBiZSBvbiB0aGUgYXBwcm9wcmlhdGUgbG9jYXRpb25zIGZv
ciBHbG9iYWxFdmVudEhhbmRsZXJzIGFzc2VydF90cnVlOiBNYXRoTUxFbGVtZW50IGhhcyBhbiBv
d24gcHJvcGVydHkgbmFtZWQgIm9ubG9hZGVuZCIgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZB
SUwgb25sb2FkZW5kOiB0aGUgZGVmYXVsdCB2YWx1ZSBtdXN0IGJlIG51bGwgYXNzZXJ0X2VxdWFs
czogVGhlIGRlZmF1bHQgdmFsdWUgb2YgdGhlIHByb3BlcnR5IGlzIG51bGwgZm9yIGEgTWF0aE1M
TWF0aEVsZW1lbnQgaW5zdGFuY2UgZXhwZWN0ZWQgKG9iamVjdCkgbnVsbCBidXQgZ290ICh1bmRl
ZmluZWQpIHVuZGVmaW5lZAotRkFJTCBvbmxvYWRlbmQ6IHRoZSBjb250ZW50IGF0dHJpYnV0ZSBt
dXN0IGJlIGNvbXBpbGVkIGludG8gYSBmdW5jdGlvbiBhcyB0aGUgY29ycmVzcG9uZGluZyBwcm9w
ZXJ0eSBhc3NlcnRfZXF1YWxzOiBUaGUgb25sb2FkZW5kIHByb3BlcnR5IG11c3QgYmUgYSBmdW5j
dGlvbiBleHBlY3RlZCAiZnVuY3Rpb24iIGJ1dCBnb3QgInVuZGVmaW5lZCIKLVBBU1Mgb25sb2Fk
ZW5kOiBkaXNwYXRjaGluZyBhbiBFdmVudCBhdCBhIDxtYXRoPiBlbGVtZW50IG11c3QgdHJpZ2dl
ciBlbGVtZW50Lm9ubG9hZGVuZCAKIFBBU1Mgb25sb2Fkc3RhcnQ6IG11c3QgYmUgb24gdGhlIGFw
cHJvcHJpYXRlIGxvY2F0aW9ucyBmb3IgR2xvYmFsRXZlbnRIYW5kbGVycyAKIFBBU1Mgb25sb2Fk
c3RhcnQ6IHRoZSBkZWZhdWx0IHZhbHVlIG11c3QgYmUgbnVsbCAKIFBBU1Mgb25sb2Fkc3RhcnQ6
IHRoZSBjb250ZW50IGF0dHJpYnV0ZSBtdXN0IGJlIGNvbXBpbGVkIGludG8gYSBmdW5jdGlvbiBh
cyB0aGUgY29ycmVzcG9uZGluZyBwcm9wZXJ0eSAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFjYXB0dXJlLXJlY29yZC9pZGxoYXJu
ZXNzLndpbmRvdy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL21lZGlhY2FwdHVyZS1yZWNvcmQvaWRsaGFybmVzcy53aW5kb3ctZXhwZWN0
ZWQudHh0CmluZGV4IGE3ZWEzMjc5MWNiMDA2OTNmMzc5NGEyM2QzMjg0YTkyNjc5YzUyZmYuLjEy
ZDVjNzNiN2FlMTc0YzNiNGJjM2RjZWMzNzE3ODgyYzNiNmY4MmUgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFjYXB0dXJlLXJlY29y
ZC9pZGxoYXJuZXNzLndpbmRvdy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtcmVjb3JkL2lkbGhhcm5lc3Mu
d2luZG93LWV4cGVjdGVkLnR4dApAQCAtMSwzMCArMSwzIEBACiAKLUZBSUwgaWRsX3Rlc3Qgc2V0
dXAgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAi
R290IGFuIGVycm9yIGJlZm9yZSBwYXJzaW5nIGFueSBuYW1lZCBkZWZpbml0aW9uOiBVbnJlY29n
bmlzZWQgdG9rZW5zLCBsaW5lIDEgKHRva2VuczogIntcImVycm9yXCI6IHtcIm1lc3NhZ2VcIiIp
Ci1bCi0gICAgewotICAgICAgICAidHlwZSI6ICJ7IiwKLSAgICAgICAgInZhbHVlIjogInsiLAot
ICAgICAgICAidHJpdmlhIjogIiIKLSAgICB9LAotICAgIHsKLSAgICAgICAgInR5cGUiOiAic3Ry
aW5nIiwKLSAgICAgICAgInZhbHVlIjogIlwiZXJyb3JcIiIsCi0gICAgICAgICJ0cml2aWEiOiAi
IgotICAgIH0sCi0gICAgewotICAgICAgICAidHlwZSI6ICI6IiwKLSAgICAgICAgInZhbHVlIjog
IjoiLAotICAgICAgICAidHJpdmlhIjogIiIKLSAgICB9LAotICAgIHsKLSAgICAgICAgInR5cGUi
OiAieyIsCi0gICAgICAgICJ2YWx1ZSI6ICJ7IiwKLSAgICAgICAgInRyaXZpYSI6ICIgIgotICAg
IH0sCi0gICAgewotICAgICAgICAidHlwZSI6ICJzdHJpbmciLAotICAgICAgICAidmFsdWUiOiAi
XCJtZXNzYWdlXCIiLAotICAgICAgICAidHJpdmlhIjogIiIKLSAgICB9Ci1dIgorRkFJTCBpZGxf
dGVzdCBzZXR1cCBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTog
b2JqZWN0ICJFcnJvciBmZXRjaGluZyAvaW50ZXJmYWNlcy9tZWRpYXN0cmVhbS1yZWNvcmRpbmcu
aWRsLiIKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9tZWRpYWNhcHR1cmUtc3RyZWFtcy9NZWRpYURldmljZXMtSURMLWFsbC1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlh
Y2FwdHVyZS1zdHJlYW1zL01lZGlhRGV2aWNlcy1JREwtYWxsLWV4cGVjdGVkLnR4dAppbmRleCAw
YTdjYWM2NTU3ZTdhOTU5ZGMxYThkNDExZDE0MjY2MzIyNjI5YTdmLi4zNTFlMzQ1MmYzODc3MDNk
MWM0YWI3NzVhN2ExZjAzMzcyZDUxZGM0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhY2FwdHVyZS1zdHJlYW1zL01lZGlhRGV2aWNl
cy1JREwtYWxsLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL21lZGlhY2FwdHVyZS1zdHJlYW1zL01lZGlhRGV2aWNlcy1JREwtYWxs
LWV4cGVjdGVkLnR4dApAQCAtMSwxMDUgKzEsOSBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDQ4
MjogY2FsbGJhY2sgbm90IHlldCBzdXBwb3J0ZWQKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA0ODI6
IGNhbGxiYWNrIG5vdCB5ZXQgc3VwcG9ydGVkCiBEZXNjcmlwdGlvbgogCiBUaGlzIHRlc3QgY2hl
Y2tzIGZvciB0aGUgcHJlc2VuY2Ugb2YgdGhlIG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNl
ck1lZGlhIG1ldGhvZC4KIAogCi1QQVNTIGlkbF90ZXN0IHNldHVwIAotUEFTUyBQYXJ0aWFsIGlu
dGVyZmFjZSBOYXZpZ2F0b3JVc2VyTWVkaWE6IG9yaWdpbmFsIGludGVyZmFjZSBkZWZpbmVkIAot
UEFTUyBQYXJ0aWFsIGludGVyZmFjZSBNZWRpYURldmljZXM6IG9yaWdpbmFsIGludGVyZmFjZSBk
ZWZpbmVkIAotUEFTUyBNZWRpYVN0cmVhbSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVy
dGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IAotUEFTUyBNZWRpYVN0cmVhbSBpbnRlcmZhY2Ugb2Jq
ZWN0IGxlbmd0aCAKLVBBU1MgTWVkaWFTdHJlYW0gaW50ZXJmYWNlIG9iamVjdCBuYW1lIAotUEFT
UyBNZWRpYVN0cmVhbSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRl
cmZhY2UgcHJvdG90eXBlIG9iamVjdCAKLVBBU1MgTWVkaWFTdHJlYW0gaW50ZXJmYWNlOiBleGlz
dGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyAiY29u
c3RydWN0b3IiIHByb3BlcnR5IAotUEFTUyBNZWRpYVN0cmVhbSBpbnRlcmZhY2U6IGV4aXN0ZW5j
ZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzIEBAdW5zY29w
YWJsZXMgcHJvcGVydHkgCi1QQVNTIE1lZGlhU3RyZWFtIGludGVyZmFjZTogYXR0cmlidXRlIGlk
IAotUEFTUyBNZWRpYVN0cmVhbSBpbnRlcmZhY2U6IG9wZXJhdGlvbiBnZXRBdWRpb1RyYWNrcygp
IAotUEFTUyBNZWRpYVN0cmVhbSBpbnRlcmZhY2U6IG9wZXJhdGlvbiBnZXRWaWRlb1RyYWNrcygp
IAotUEFTUyBNZWRpYVN0cmVhbSBpbnRlcmZhY2U6IG9wZXJhdGlvbiBnZXRUcmFja3MoKSAKLVBB
U1MgTWVkaWFTdHJlYW0gaW50ZXJmYWNlOiBvcGVyYXRpb24gZ2V0VHJhY2tCeUlkKERPTVN0cmlu
ZykgCi1QQVNTIE1lZGlhU3RyZWFtIGludGVyZmFjZTogb3BlcmF0aW9uIGFkZFRyYWNrKE1lZGlh
U3RyZWFtVHJhY2spIAotUEFTUyBNZWRpYVN0cmVhbSBpbnRlcmZhY2U6IG9wZXJhdGlvbiByZW1v
dmVUcmFjayhNZWRpYVN0cmVhbVRyYWNrKSAKLVBBU1MgTWVkaWFTdHJlYW0gaW50ZXJmYWNlOiBv
cGVyYXRpb24gY2xvbmUoKSAKLVBBU1MgTWVkaWFTdHJlYW0gaW50ZXJmYWNlOiBhdHRyaWJ1dGUg
YWN0aXZlIAotUEFTUyBNZWRpYVN0cmVhbSBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBvbmFkZHRyYWNr
IAotUEFTUyBNZWRpYVN0cmVhbSBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBvbnJlbW92ZXRyYWNrIAot
UEFTUyBNZWRpYVN0cmVhbVRyYWNrIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVz
IG9mIGludGVyZmFjZSBvYmplY3QgCi1QQVNTIE1lZGlhU3RyZWFtVHJhY2sgaW50ZXJmYWNlIG9i
amVjdCBsZW5ndGggCi1QQVNTIE1lZGlhU3RyZWFtVHJhY2sgaW50ZXJmYWNlIG9iamVjdCBuYW1l
IAotUEFTUyBNZWRpYVN0cmVhbVRyYWNrIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0
aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IAotUEFTUyBNZWRpYVN0cmVhbVRyYWNr
IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5
cGUgb2JqZWN0J3MgImNvbnN0cnVjdG9yIiBwcm9wZXJ0eSAKLVBBU1MgTWVkaWFTdHJlYW1UcmFj
ayBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90
eXBlIG9iamVjdCdzIEBAdW5zY29wYWJsZXMgcHJvcGVydHkgCi1QQVNTIE1lZGlhU3RyZWFtVHJh
Y2sgaW50ZXJmYWNlOiBhdHRyaWJ1dGUga2luZCAKLVBBU1MgTWVkaWFTdHJlYW1UcmFjayBpbnRl
cmZhY2U6IGF0dHJpYnV0ZSBpZCAKLVBBU1MgTWVkaWFTdHJlYW1UcmFjayBpbnRlcmZhY2U6IGF0
dHJpYnV0ZSBsYWJlbCAKLVBBU1MgTWVkaWFTdHJlYW1UcmFjayBpbnRlcmZhY2U6IGF0dHJpYnV0
ZSBlbmFibGVkIAotUEFTUyBNZWRpYVN0cmVhbVRyYWNrIGludGVyZmFjZTogYXR0cmlidXRlIG11
dGVkIAotUEFTUyBNZWRpYVN0cmVhbVRyYWNrIGludGVyZmFjZTogYXR0cmlidXRlIG9ubXV0ZSAK
LVBBU1MgTWVkaWFTdHJlYW1UcmFjayBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBvbnVubXV0ZSAKLVBB
U1MgTWVkaWFTdHJlYW1UcmFjayBpbnRlcmZhY2U6IGF0dHJpYnV0ZSByZWFkeVN0YXRlIAotUEFT
UyBNZWRpYVN0cmVhbVRyYWNrIGludGVyZmFjZTogYXR0cmlidXRlIG9uZW5kZWQgCi1QQVNTIE1l
ZGlhU3RyZWFtVHJhY2sgaW50ZXJmYWNlOiBvcGVyYXRpb24gY2xvbmUoKSAKLVBBU1MgTWVkaWFT
dHJlYW1UcmFjayBpbnRlcmZhY2U6IG9wZXJhdGlvbiBzdG9wKCkgCi1QQVNTIE1lZGlhU3RyZWFt
VHJhY2sgaW50ZXJmYWNlOiBvcGVyYXRpb24gZ2V0Q2FwYWJpbGl0aWVzKCkgCi1QQVNTIE1lZGlh
U3RyZWFtVHJhY2sgaW50ZXJmYWNlOiBvcGVyYXRpb24gZ2V0Q29uc3RyYWludHMoKSAKLVBBU1Mg
TWVkaWFTdHJlYW1UcmFjayBpbnRlcmZhY2U6IG9wZXJhdGlvbiBnZXRTZXR0aW5ncygpIAotUEFT
UyBNZWRpYVN0cmVhbVRyYWNrIGludGVyZmFjZTogb3BlcmF0aW9uIGFwcGx5Q29uc3RyYWludHMo
TWVkaWFUcmFja0NvbnN0cmFpbnRzKSAKLVBBU1MgTWVkaWFTdHJlYW1UcmFjayBpbnRlcmZhY2U6
IGF0dHJpYnV0ZSBvbm92ZXJjb25zdHJhaW5lZCAKLVBBU1MgTWVkaWFTdHJlYW1UcmFja0V2ZW50
IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3Qg
Ci1QQVNTIE1lZGlhU3RyZWFtVHJhY2tFdmVudCBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aCAKLVBB
U1MgTWVkaWFTdHJlYW1UcmFja0V2ZW50IGludGVyZmFjZSBvYmplY3QgbmFtZSAKLVBBU1MgTWVk
aWFTdHJlYW1UcmFja0V2ZW50IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9m
IGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IAotUEFTUyBNZWRpYVN0cmVhbVRyYWNrRXZlbnQg
aW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlw
ZSBvYmplY3QncyAiY29uc3RydWN0b3IiIHByb3BlcnR5IAotUEFTUyBNZWRpYVN0cmVhbVRyYWNr
RXZlbnQgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHBy
b3RvdHlwZSBvYmplY3QncyBAQHVuc2NvcGFibGVzIHByb3BlcnR5IAotUEFTUyBNZWRpYVN0cmVh
bVRyYWNrRXZlbnQgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgdHJhY2sgCi1QQVNTIE92ZXJjb25zdHJh
aW5lZEVycm9yRXZlbnQgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50
ZXJmYWNlIG9iamVjdCAKLUZBSUwgT3ZlcmNvbnN0cmFpbmVkRXJyb3JFdmVudCBpbnRlcmZhY2Ug
b2JqZWN0IGxlbmd0aCBhc3NlcnRfZXF1YWxzOiB3cm9uZyB2YWx1ZSBmb3IgT3ZlcmNvbnN0cmFp
bmVkRXJyb3JFdmVudC5sZW5ndGggZXhwZWN0ZWQgMiBidXQgZ290IDEKLVBBU1MgT3ZlcmNvbnN0
cmFpbmVkRXJyb3JFdmVudCBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUgCi1QQVNTIE92ZXJjb25zdHJh
aW5lZEVycm9yRXZlbnQgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50
ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgCi1QQVNTIE92ZXJjb25zdHJhaW5lZEVycm9yRXZlbnQg
aW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlw
ZSBvYmplY3QncyAiY29uc3RydWN0b3IiIHByb3BlcnR5IAotUEFTUyBPdmVyY29uc3RyYWluZWRF
cnJvckV2ZW50IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFj
ZSBwcm90b3R5cGUgb2JqZWN0J3MgQEB1bnNjb3BhYmxlcyBwcm9wZXJ0eSAKLVBBU1MgT3ZlcmNv
bnN0cmFpbmVkRXJyb3JFdmVudCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBlcnJvciAKLVBBU1MgTWVk
aWFEZXZpY2VzIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFj
ZSBvYmplY3QgCi1QQVNTIE1lZGlhRGV2aWNlcyBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aCAKLVBB
U1MgTWVkaWFEZXZpY2VzIGludGVyZmFjZSBvYmplY3QgbmFtZSAKLVBBU1MgTWVkaWFEZXZpY2Vz
IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5
cGUgb2JqZWN0IAotUEFTUyBNZWRpYURldmljZXMgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHBy
b3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyAiY29uc3RydWN0b3IiIHBy
b3BlcnR5IAotUEFTUyBNZWRpYURldmljZXMgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3Bl
cnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyBAQHVuc2NvcGFibGVzIHByb3Bl
cnR5IAotUEFTUyBNZWRpYURldmljZXMgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgb25kZXZpY2VjaGFu
Z2UgCi1QQVNTIE1lZGlhRGV2aWNlcyBpbnRlcmZhY2U6IG9wZXJhdGlvbiBlbnVtZXJhdGVEZXZp
Y2VzKCkgCi1QQVNTIE1lZGlhRGV2aWNlcyBpbnRlcmZhY2U6IG9wZXJhdGlvbiBnZXRTdXBwb3J0
ZWRDb25zdHJhaW50cygpIAotUEFTUyBNZWRpYURldmljZXMgaW50ZXJmYWNlOiBvcGVyYXRpb24g
Z2V0VXNlck1lZGlhKE1lZGlhU3RyZWFtQ29uc3RyYWludHMpIAotUEFTUyBNZWRpYURldmljZXMg
bXVzdCBiZSBwcmltYXJ5IGludGVyZmFjZSBvZiBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzIAotUEFT
UyBTdHJpbmdpZmljYXRpb24gb2YgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcyAKLVBBU1MgTWVkaWFE
ZXZpY2VzIGludGVyZmFjZTogbmF2aWdhdG9yLm1lZGlhRGV2aWNlcyBtdXN0IGluaGVyaXQgcHJv
cGVydHkgIm9uZGV2aWNlY2hhbmdlIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKLVBBU1MgTWVkaWFE
ZXZpY2VzIGludGVyZmFjZTogbmF2aWdhdG9yLm1lZGlhRGV2aWNlcyBtdXN0IGluaGVyaXQgcHJv
cGVydHkgImVudW1lcmF0ZURldmljZXMoKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCi1QQVNTIE1l
ZGlhRGV2aWNlcyBpbnRlcmZhY2U6IG5hdmlnYXRvci5tZWRpYURldmljZXMgbXVzdCBpbmhlcml0
IHByb3BlcnR5ICJnZXRTdXBwb3J0ZWRDb25zdHJhaW50cygpIiB3aXRoIHRoZSBwcm9wZXIgdHlw
ZSAKLVBBU1MgTWVkaWFEZXZpY2VzIGludGVyZmFjZTogbmF2aWdhdG9yLm1lZGlhRGV2aWNlcyBt
dXN0IGluaGVyaXQgcHJvcGVydHkgImdldFVzZXJNZWRpYShNZWRpYVN0cmVhbUNvbnN0cmFpbnRz
KSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCi1QQVNTIE1lZGlhRGV2aWNlcyBpbnRlcmZhY2U6IGNh
bGxpbmcgZ2V0VXNlck1lZGlhKE1lZGlhU3RyZWFtQ29uc3RyYWludHMpIG9uIG5hdmlnYXRvci5t
ZWRpYURldmljZXMgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAK
LVBBU1MgTWVkaWFEZXZpY2VJbmZvIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVz
IG9mIGludGVyZmFjZSBvYmplY3QgCi1QQVNTIE1lZGlhRGV2aWNlSW5mbyBpbnRlcmZhY2Ugb2Jq
ZWN0IGxlbmd0aCAKLVBBU1MgTWVkaWFEZXZpY2VJbmZvIGludGVyZmFjZSBvYmplY3QgbmFtZSAK
LVBBU1MgTWVkaWFEZXZpY2VJbmZvIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVz
IG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IAotUEFTUyBNZWRpYURldmljZUluZm8gaW50
ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBv
YmplY3QncyAiY29uc3RydWN0b3IiIHByb3BlcnR5IAotUEFTUyBNZWRpYURldmljZUluZm8gaW50
ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBv
YmplY3QncyBAQHVuc2NvcGFibGVzIHByb3BlcnR5IAotUEFTUyBNZWRpYURldmljZUluZm8gaW50
ZXJmYWNlOiBhdHRyaWJ1dGUgZGV2aWNlSWQgCi1QQVNTIE1lZGlhRGV2aWNlSW5mbyBpbnRlcmZh
Y2U6IGF0dHJpYnV0ZSBraW5kIAotUEFTUyBNZWRpYURldmljZUluZm8gaW50ZXJmYWNlOiBhdHRy
aWJ1dGUgbGFiZWwgCi1QQVNTIE1lZGlhRGV2aWNlSW5mbyBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBn
cm91cElkIAotUEFTUyBNZWRpYURldmljZUluZm8gaW50ZXJmYWNlOiBvcGVyYXRpb24gdG9KU09O
KCkgCi1GQUlMIElucHV0RGV2aWNlSW5mbyBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVy
dGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBu
b3QgaGF2ZSBvd24gcHJvcGVydHkgIklucHV0RGV2aWNlSW5mbyIgZXhwZWN0ZWQgcHJvcGVydHkg
IklucHV0RGV2aWNlSW5mbyIgbWlzc2luZwotRkFJTCBJbnB1dERldmljZUluZm8gaW50ZXJmYWNl
IG9iamVjdCBsZW5ndGggYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93
biBwcm9wZXJ0eSAiSW5wdXREZXZpY2VJbmZvIiBleHBlY3RlZCBwcm9wZXJ0eSAiSW5wdXREZXZp
Y2VJbmZvIiBtaXNzaW5nCi1GQUlMIElucHV0RGV2aWNlSW5mbyBpbnRlcmZhY2Ugb2JqZWN0IG5h
bWUgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAi
SW5wdXREZXZpY2VJbmZvIiBleHBlY3RlZCBwcm9wZXJ0eSAiSW5wdXREZXZpY2VJbmZvIiBtaXNz
aW5nCi1GQUlMIElucHV0RGV2aWNlSW5mbyBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVy
dGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCBhc3NlcnRfb3duX3Byb3BlcnR5OiBz
ZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJJbnB1dERldmljZUluZm8iIGV4cGVjdGVk
IHByb3BlcnR5ICJJbnB1dERldmljZUluZm8iIG1pc3NpbmcKLUZBSUwgSW5wdXREZXZpY2VJbmZv
IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5
cGUgb2JqZWN0J3MgImNvbnN0cnVjdG9yIiBwcm9wZXJ0eSBhc3NlcnRfb3duX3Byb3BlcnR5OiBz
ZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJJbnB1dERldmljZUluZm8iIGV4cGVjdGVk
IHByb3BlcnR5ICJJbnB1dERldmljZUluZm8iIG1pc3NpbmcKLUZBSUwgSW5wdXREZXZpY2VJbmZv
IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5
cGUgb2JqZWN0J3MgQEB1bnNjb3BhYmxlcyBwcm9wZXJ0eSBhc3NlcnRfb3duX3Byb3BlcnR5OiBz
ZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJJbnB1dERldmljZUluZm8iIGV4cGVjdGVk
IHByb3BlcnR5ICJJbnB1dERldmljZUluZm8iIG1pc3NpbmcKLUZBSUwgSW5wdXREZXZpY2VJbmZv
IGludGVyZmFjZTogb3BlcmF0aW9uIGdldENhcGFiaWxpdGllcygpIGFzc2VydF9vd25fcHJvcGVy
dHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIklucHV0RGV2aWNlSW5mbyIgZXhw
ZWN0ZWQgcHJvcGVydHkgIklucHV0RGV2aWNlSW5mbyIgbWlzc2luZwotUEFTUyBOYXZpZ2F0b3Ig
aW50ZXJmYWNlOiBhdHRyaWJ1dGUgbWVkaWFEZXZpY2VzIAotRkFJTCBOYXZpZ2F0b3IgaW50ZXJm
YWNlOiBvcGVyYXRpb24gZ2V0VXNlck1lZGlhKE1lZGlhU3RyZWFtQ29uc3RyYWludHMsIE5hdmln
YXRvclVzZXJNZWRpYVN1Y2Nlc3NDYWxsYmFjaywgTmF2aWdhdG9yVXNlck1lZGlhRXJyb3JDYWxs
YmFjaykgYXNzZXJ0X293bl9wcm9wZXJ0eTogaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgbWlz
c2luZyBub24tc3RhdGljIG9wZXJhdGlvbiBleHBlY3RlZCBwcm9wZXJ0eSAiZ2V0VXNlck1lZGlh
IiBtaXNzaW5nCi1QQVNTIE5hdmlnYXRvciBpbnRlcmZhY2U6IG5hdmlnYXRvciBtdXN0IGluaGVy
aXQgcHJvcGVydHkgIm1lZGlhRGV2aWNlcyIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCi1GQUlMIE5h
dmlnYXRvciBpbnRlcmZhY2U6IG5hdmlnYXRvciBtdXN0IGluaGVyaXQgcHJvcGVydHkgImdldFVz
ZXJNZWRpYShNZWRpYVN0cmVhbUNvbnN0cmFpbnRzLCBOYXZpZ2F0b3JVc2VyTWVkaWFTdWNjZXNz
Q2FsbGJhY2ssIE5hdmlnYXRvclVzZXJNZWRpYUVycm9yQ2FsbGJhY2spIiB3aXRoIHRoZSBwcm9w
ZXIgdHlwZSBhc3NlcnRfaW5oZXJpdHM6IHByb3BlcnR5ICJnZXRVc2VyTWVkaWEiIG5vdCBmb3Vu
ZCBpbiBwcm90b3R5cGUgY2hhaW4KLUZBSUwgTmF2aWdhdG9yIGludGVyZmFjZTogY2FsbGluZyBn
ZXRVc2VyTWVkaWEoTWVkaWFTdHJlYW1Db25zdHJhaW50cywgTmF2aWdhdG9yVXNlck1lZGlhU3Vj
Y2Vzc0NhbGxiYWNrLCBOYXZpZ2F0b3JVc2VyTWVkaWFFcnJvckNhbGxiYWNrKSBvbiBuYXZpZ2F0
b3Igd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfaW5o
ZXJpdHM6IHByb3BlcnR5ICJnZXRVc2VyTWVkaWEiIG5vdCBmb3VuZCBpbiBwcm90b3R5cGUgY2hh
aW4KLVBBU1MgV29ya2VyTmF2aWdhdG9yIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0
aWVzIG9mIGludGVyZmFjZSBvYmplY3QgCitGQUlMIGlkbF90ZXN0IHNldHVwIHByb21pc2VfdGVz
dDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIldlYklETFBhcnNlRXJy
b3I6IFN5bnRheCBlcnJvciBhdCBsaW5lIDE0Nywgc2luY2UgYGludGVyZmFjZSBOYXZpZ2F0b3JV
c2VyTWVkaWFgOgorTmF2aWdhdG9yIGltcGxlbWVudHMgTmF2aWdhdG9yVXNlck1lZGlhOworXiBV
bnJlY29nbmlzZWQgdG9rZW5zIgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhY2FwdHVyZS1zdHJlYW1zL01lZGlhRGV2aWNlcy1J
REwtZW51bWVyYXRlRGV2aWNlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhY2FwdHVyZS1zdHJlYW1zL01lZGlhRGV2aWNlcy1J
REwtZW51bWVyYXRlRGV2aWNlcy1leHBlY3RlZC50eHQKaW5kZXggOTRlNGRiNTMwYmQwODdhMDUz
MmVmY2Y1ODVlMDBlZjk3OTA5YzI5Ny4uZjRlMTJiMmE2YTc2NWEwNTM2ZjA2OTI1YWI3NGNiM2Zi
NzgwNDNjYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9tZWRpYWNhcHR1cmUtc3RyZWFtcy9NZWRpYURldmljZXMtSURMLWVudW1lcmF0ZURl
dmljZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvbWVkaWFjYXB0dXJlLXN0cmVhbXMvTWVkaWFEZXZpY2VzLUlETC1lbnVtZXJh
dGVEZXZpY2VzLWV4cGVjdGVkLnR4dApAQCAtMSwxMDMgKzEsOSBAQAotQ09OU09MRSBNRVNTQUdF
OiBsaW5lIDQ4MjogY2FsbGJhY2sgbm90IHlldCBzdXBwb3J0ZWQKLUNPTlNPTEUgTUVTU0FHRTog
bGluZSA0ODI6IGNhbGxiYWNrIG5vdCB5ZXQgc3VwcG9ydGVkCiBEZXNjcmlwdGlvbgogCiBUaGlz
IHRlc3QgY2hlY2tzIGZvciB0aGUgcHJlc2VuY2Ugb2YgdGhlIG5hdmlnYXRvci5tZWRpYURldmlj
ZXMuZW51bWVyYXRlRGV2aWNlcygpIG1ldGhvZC4KIAogCi1QQVNTIGlkbF90ZXN0IHNldHVwIAot
UEFTUyBQYXJ0aWFsIGludGVyZmFjZSBOYXZpZ2F0b3JVc2VyTWVkaWE6IG9yaWdpbmFsIGludGVy
ZmFjZSBkZWZpbmVkIAotUEFTUyBQYXJ0aWFsIGludGVyZmFjZSBNZWRpYURldmljZXM6IG9yaWdp
bmFsIGludGVyZmFjZSBkZWZpbmVkIAotUEFTUyBNZWRpYVN0cmVhbSBpbnRlcmZhY2U6IGV4aXN0
ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IAotUEFTUyBNZWRpYVN0cmVh
bSBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aCAKLVBBU1MgTWVkaWFTdHJlYW0gaW50ZXJmYWNlIG9i
amVjdCBuYW1lIAotUEFTUyBNZWRpYVN0cmVhbSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJv
cGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCAKLVBBU1MgTWVkaWFTdHJlYW0g
aW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlw
ZSBvYmplY3QncyAiY29uc3RydWN0b3IiIHByb3BlcnR5IAotUEFTUyBNZWRpYVN0cmVhbSBpbnRl
cmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9i
amVjdCdzIEBAdW5zY29wYWJsZXMgcHJvcGVydHkgCi1QQVNTIE1lZGlhU3RyZWFtIGludGVyZmFj
ZTogYXR0cmlidXRlIGlkIAotUEFTUyBNZWRpYVN0cmVhbSBpbnRlcmZhY2U6IG9wZXJhdGlvbiBn
ZXRBdWRpb1RyYWNrcygpIAotUEFTUyBNZWRpYVN0cmVhbSBpbnRlcmZhY2U6IG9wZXJhdGlvbiBn
ZXRWaWRlb1RyYWNrcygpIAotUEFTUyBNZWRpYVN0cmVhbSBpbnRlcmZhY2U6IG9wZXJhdGlvbiBn
ZXRUcmFja3MoKSAKLVBBU1MgTWVkaWFTdHJlYW0gaW50ZXJmYWNlOiBvcGVyYXRpb24gZ2V0VHJh
Y2tCeUlkKERPTVN0cmluZykgCi1QQVNTIE1lZGlhU3RyZWFtIGludGVyZmFjZTogb3BlcmF0aW9u
IGFkZFRyYWNrKE1lZGlhU3RyZWFtVHJhY2spIAotUEFTUyBNZWRpYVN0cmVhbSBpbnRlcmZhY2U6
IG9wZXJhdGlvbiByZW1vdmVUcmFjayhNZWRpYVN0cmVhbVRyYWNrKSAKLVBBU1MgTWVkaWFTdHJl
YW0gaW50ZXJmYWNlOiBvcGVyYXRpb24gY2xvbmUoKSAKLVBBU1MgTWVkaWFTdHJlYW0gaW50ZXJm
YWNlOiBhdHRyaWJ1dGUgYWN0aXZlIAotUEFTUyBNZWRpYVN0cmVhbSBpbnRlcmZhY2U6IGF0dHJp
YnV0ZSBvbmFkZHRyYWNrIAotUEFTUyBNZWRpYVN0cmVhbSBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBv
bnJlbW92ZXRyYWNrIAotUEFTUyBNZWRpYVN0cmVhbVRyYWNrIGludGVyZmFjZTogZXhpc3RlbmNl
IGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgCi1QQVNTIE1lZGlhU3RyZWFtVHJh
Y2sgaW50ZXJmYWNlIG9iamVjdCBsZW5ndGggCi1QQVNTIE1lZGlhU3RyZWFtVHJhY2sgaW50ZXJm
YWNlIG9iamVjdCBuYW1lIAotUEFTUyBNZWRpYVN0cmVhbVRyYWNrIGludGVyZmFjZTogZXhpc3Rl
bmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IAotUEFTUyBN
ZWRpYVN0cmVhbVRyYWNrIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGlu
dGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgImNvbnN0cnVjdG9yIiBwcm9wZXJ0eSAKLVBBU1Mg
TWVkaWFTdHJlYW1UcmFjayBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBp
bnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzIEBAdW5zY29wYWJsZXMgcHJvcGVydHkgCi1QQVNT
IE1lZGlhU3RyZWFtVHJhY2sgaW50ZXJmYWNlOiBhdHRyaWJ1dGUga2luZCAKLVBBU1MgTWVkaWFT
dHJlYW1UcmFjayBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBpZCAKLVBBU1MgTWVkaWFTdHJlYW1UcmFj
ayBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBsYWJlbCAKLVBBU1MgTWVkaWFTdHJlYW1UcmFjayBpbnRl
cmZhY2U6IGF0dHJpYnV0ZSBlbmFibGVkIAotUEFTUyBNZWRpYVN0cmVhbVRyYWNrIGludGVyZmFj
ZTogYXR0cmlidXRlIG11dGVkIAotUEFTUyBNZWRpYVN0cmVhbVRyYWNrIGludGVyZmFjZTogYXR0
cmlidXRlIG9ubXV0ZSAKLVBBU1MgTWVkaWFTdHJlYW1UcmFjayBpbnRlcmZhY2U6IGF0dHJpYnV0
ZSBvbnVubXV0ZSAKLVBBU1MgTWVkaWFTdHJlYW1UcmFjayBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBy
ZWFkeVN0YXRlIAotUEFTUyBNZWRpYVN0cmVhbVRyYWNrIGludGVyZmFjZTogYXR0cmlidXRlIG9u
ZW5kZWQgCi1QQVNTIE1lZGlhU3RyZWFtVHJhY2sgaW50ZXJmYWNlOiBvcGVyYXRpb24gY2xvbmUo
KSAKLVBBU1MgTWVkaWFTdHJlYW1UcmFjayBpbnRlcmZhY2U6IG9wZXJhdGlvbiBzdG9wKCkgCi1Q
QVNTIE1lZGlhU3RyZWFtVHJhY2sgaW50ZXJmYWNlOiBvcGVyYXRpb24gZ2V0Q2FwYWJpbGl0aWVz
KCkgCi1QQVNTIE1lZGlhU3RyZWFtVHJhY2sgaW50ZXJmYWNlOiBvcGVyYXRpb24gZ2V0Q29uc3Ry
YWludHMoKSAKLVBBU1MgTWVkaWFTdHJlYW1UcmFjayBpbnRlcmZhY2U6IG9wZXJhdGlvbiBnZXRT
ZXR0aW5ncygpIAotUEFTUyBNZWRpYVN0cmVhbVRyYWNrIGludGVyZmFjZTogb3BlcmF0aW9uIGFw
cGx5Q29uc3RyYWludHMoTWVkaWFUcmFja0NvbnN0cmFpbnRzKSAKLVBBU1MgTWVkaWFTdHJlYW1U
cmFjayBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBvbm92ZXJjb25zdHJhaW5lZCAKLVBBU1MgTWVkaWFT
dHJlYW1UcmFja0V2ZW50IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGlu
dGVyZmFjZSBvYmplY3QgCi1QQVNTIE1lZGlhU3RyZWFtVHJhY2tFdmVudCBpbnRlcmZhY2Ugb2Jq
ZWN0IGxlbmd0aCAKLVBBU1MgTWVkaWFTdHJlYW1UcmFja0V2ZW50IGludGVyZmFjZSBvYmplY3Qg
bmFtZSAKLVBBU1MgTWVkaWFTdHJlYW1UcmFja0V2ZW50IGludGVyZmFjZTogZXhpc3RlbmNlIGFu
ZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IAotUEFTUyBNZWRpYVN0
cmVhbVRyYWNrRXZlbnQgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50
ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyAiY29uc3RydWN0b3IiIHByb3BlcnR5IAotUEFTUyBN
ZWRpYVN0cmVhbVRyYWNrRXZlbnQgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMg
b2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyBAQHVuc2NvcGFibGVzIHByb3BlcnR5IAot
UEFTUyBNZWRpYVN0cmVhbVRyYWNrRXZlbnQgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgdHJhY2sgCi1Q
QVNTIE92ZXJjb25zdHJhaW5lZEVycm9yRXZlbnQgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHBy
b3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCAKLUZBSUwgT3ZlcmNvbnN0cmFpbmVkRXJyb3JF
dmVudCBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aCBhc3NlcnRfZXF1YWxzOiB3cm9uZyB2YWx1ZSBm
b3IgT3ZlcmNvbnN0cmFpbmVkRXJyb3JFdmVudC5sZW5ndGggZXhwZWN0ZWQgMiBidXQgZ290IDEK
LVBBU1MgT3ZlcmNvbnN0cmFpbmVkRXJyb3JFdmVudCBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUgCi1Q
QVNTIE92ZXJjb25zdHJhaW5lZEVycm9yRXZlbnQgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHBy
b3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgCi1QQVNTIE92ZXJjb25zdHJh
aW5lZEVycm9yRXZlbnQgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50
ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyAiY29uc3RydWN0b3IiIHByb3BlcnR5IAotUEFTUyBP
dmVyY29uc3RyYWluZWRFcnJvckV2ZW50IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0
aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgQEB1bnNjb3BhYmxlcyBwcm9wZXJ0
eSAKLVBBU1MgT3ZlcmNvbnN0cmFpbmVkRXJyb3JFdmVudCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBl
cnJvciAKLVBBU1MgTWVkaWFEZXZpY2VzIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0
aWVzIG9mIGludGVyZmFjZSBvYmplY3QgCi1QQVNTIE1lZGlhRGV2aWNlcyBpbnRlcmZhY2Ugb2Jq
ZWN0IGxlbmd0aCAKLVBBU1MgTWVkaWFEZXZpY2VzIGludGVyZmFjZSBvYmplY3QgbmFtZSAKLVBB
U1MgTWVkaWFEZXZpY2VzIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGlu
dGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IAotUEFTUyBNZWRpYURldmljZXMgaW50ZXJmYWNlOiBl
eGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyAi
Y29uc3RydWN0b3IiIHByb3BlcnR5IAotUEFTUyBNZWRpYURldmljZXMgaW50ZXJmYWNlOiBleGlz
dGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyBAQHVu
c2NvcGFibGVzIHByb3BlcnR5IAotUEFTUyBNZWRpYURldmljZXMgaW50ZXJmYWNlOiBhdHRyaWJ1
dGUgb25kZXZpY2VjaGFuZ2UgCi1QQVNTIE1lZGlhRGV2aWNlcyBpbnRlcmZhY2U6IG9wZXJhdGlv
biBlbnVtZXJhdGVEZXZpY2VzKCkgCi1QQVNTIE1lZGlhRGV2aWNlcyBpbnRlcmZhY2U6IG9wZXJh
dGlvbiBnZXRTdXBwb3J0ZWRDb25zdHJhaW50cygpIAotUEFTUyBNZWRpYURldmljZXMgaW50ZXJm
YWNlOiBvcGVyYXRpb24gZ2V0VXNlck1lZGlhKE1lZGlhU3RyZWFtQ29uc3RyYWludHMpIAotUEFT
UyBNZWRpYURldmljZUluZm8gaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2Yg
aW50ZXJmYWNlIG9iamVjdCAKLVBBU1MgTWVkaWFEZXZpY2VJbmZvIGludGVyZmFjZSBvYmplY3Qg
bGVuZ3RoIAotUEFTUyBNZWRpYURldmljZUluZm8gaW50ZXJmYWNlIG9iamVjdCBuYW1lIAotUEFT
UyBNZWRpYURldmljZUluZm8gaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2Yg
aW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgCi1QQVNTIE1lZGlhRGV2aWNlSW5mbyBpbnRlcmZh
Y2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVj
dCdzICJjb25zdHJ1Y3RvciIgcHJvcGVydHkgCi1QQVNTIE1lZGlhRGV2aWNlSW5mbyBpbnRlcmZh
Y2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVj
dCdzIEBAdW5zY29wYWJsZXMgcHJvcGVydHkgCi1QQVNTIE1lZGlhRGV2aWNlSW5mbyBpbnRlcmZh
Y2U6IGF0dHJpYnV0ZSBkZXZpY2VJZCAKLVBBU1MgTWVkaWFEZXZpY2VJbmZvIGludGVyZmFjZTog
YXR0cmlidXRlIGtpbmQgCi1QQVNTIE1lZGlhRGV2aWNlSW5mbyBpbnRlcmZhY2U6IGF0dHJpYnV0
ZSBsYWJlbCAKLVBBU1MgTWVkaWFEZXZpY2VJbmZvIGludGVyZmFjZTogYXR0cmlidXRlIGdyb3Vw
SWQgCi1QQVNTIE1lZGlhRGV2aWNlSW5mbyBpbnRlcmZhY2U6IG9wZXJhdGlvbiB0b0pTT04oKSAK
LVBBU1MgTWVkaWFEZXZpY2VJbmZvIG11c3QgYmUgcHJpbWFyeSBpbnRlcmZhY2Ugb2YgX21lZGlh
SW5mbyAKLVBBU1MgU3RyaW5naWZpY2F0aW9uIG9mIF9tZWRpYUluZm8gCi1QQVNTIE1lZGlhRGV2
aWNlSW5mbyBpbnRlcmZhY2U6IF9tZWRpYUluZm8gbXVzdCBpbmhlcml0IHByb3BlcnR5ICJkZXZp
Y2VJZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCi1QQVNTIE1lZGlhRGV2aWNlSW5mbyBpbnRlcmZh
Y2U6IF9tZWRpYUluZm8gbXVzdCBpbmhlcml0IHByb3BlcnR5ICJraW5kIiB3aXRoIHRoZSBwcm9w
ZXIgdHlwZSAKLVBBU1MgTWVkaWFEZXZpY2VJbmZvIGludGVyZmFjZTogX21lZGlhSW5mbyBtdXN0
IGluaGVyaXQgcHJvcGVydHkgImxhYmVsIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKLVBBU1MgTWVk
aWFEZXZpY2VJbmZvIGludGVyZmFjZTogX21lZGlhSW5mbyBtdXN0IGluaGVyaXQgcHJvcGVydHkg
Imdyb3VwSWQiIHdpdGggdGhlIHByb3BlciB0eXBlIAotUEFTUyBNZWRpYURldmljZUluZm8gaW50
ZXJmYWNlOiBfbWVkaWFJbmZvIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAidG9KU09OKCkiIHdpdGgg
dGhlIHByb3BlciB0eXBlIAotUEFTUyBUZXN0IGRlZmF1bHQgdG9KU09OIG9wZXJhdGlvbiBvZiBN
ZWRpYURldmljZUluZm8gCi1GQUlMIElucHV0RGV2aWNlSW5mbyBpbnRlcmZhY2U6IGV4aXN0ZW5j
ZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IGFzc2VydF9vd25fcHJvcGVydHk6
IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIklucHV0RGV2aWNlSW5mbyIgZXhwZWN0
ZWQgcHJvcGVydHkgIklucHV0RGV2aWNlSW5mbyIgbWlzc2luZwotRkFJTCBJbnB1dERldmljZUlu
Zm8gaW50ZXJmYWNlIG9iamVjdCBsZW5ndGggYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2Vz
IG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiSW5wdXREZXZpY2VJbmZvIiBleHBlY3RlZCBwcm9wZXJ0
eSAiSW5wdXREZXZpY2VJbmZvIiBtaXNzaW5nCi1GQUlMIElucHV0RGV2aWNlSW5mbyBpbnRlcmZh
Y2Ugb2JqZWN0IG5hbWUgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93
biBwcm9wZXJ0eSAiSW5wdXREZXZpY2VJbmZvIiBleHBlY3RlZCBwcm9wZXJ0eSAiSW5wdXREZXZp
Y2VJbmZvIiBtaXNzaW5nCi1GQUlMIElucHV0RGV2aWNlSW5mbyBpbnRlcmZhY2U6IGV4aXN0ZW5j
ZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCBhc3NlcnRfb3du
X3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJJbnB1dERldmljZUlu
Zm8iIGV4cGVjdGVkIHByb3BlcnR5ICJJbnB1dERldmljZUluZm8iIG1pc3NpbmcKLUZBSUwgSW5w
dXREZXZpY2VJbmZvIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVy
ZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgImNvbnN0cnVjdG9yIiBwcm9wZXJ0eSBhc3NlcnRfb3du
X3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJJbnB1dERldmljZUlu
Zm8iIGV4cGVjdGVkIHByb3BlcnR5ICJJbnB1dERldmljZUluZm8iIG1pc3NpbmcKLUZBSUwgSW5w
dXREZXZpY2VJbmZvIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVy
ZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgQEB1bnNjb3BhYmxlcyBwcm9wZXJ0eSBhc3NlcnRfb3du
X3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJJbnB1dERldmljZUlu
Zm8iIGV4cGVjdGVkIHByb3BlcnR5ICJJbnB1dERldmljZUluZm8iIG1pc3NpbmcKLUZBSUwgSW5w
dXREZXZpY2VJbmZvIGludGVyZmFjZTogb3BlcmF0aW9uIGdldENhcGFiaWxpdGllcygpIGFzc2Vy
dF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIklucHV0RGV2
aWNlSW5mbyIgZXhwZWN0ZWQgcHJvcGVydHkgIklucHV0RGV2aWNlSW5mbyIgbWlzc2luZwotUEFT
UyBOYXZpZ2F0b3IgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgbWVkaWFEZXZpY2VzIAotRkFJTCBOYXZp
Z2F0b3IgaW50ZXJmYWNlOiBvcGVyYXRpb24gZ2V0VXNlck1lZGlhKE1lZGlhU3RyZWFtQ29uc3Ry
YWludHMsIE5hdmlnYXRvclVzZXJNZWRpYVN1Y2Nlc3NDYWxsYmFjaywgTmF2aWdhdG9yVXNlck1l
ZGlhRXJyb3JDYWxsYmFjaykgYXNzZXJ0X293bl9wcm9wZXJ0eTogaW50ZXJmYWNlIHByb3RvdHlw
ZSBvYmplY3QgbWlzc2luZyBub24tc3RhdGljIG9wZXJhdGlvbiBleHBlY3RlZCBwcm9wZXJ0eSAi
Z2V0VXNlck1lZGlhIiBtaXNzaW5nCi1QQVNTIFdvcmtlck5hdmlnYXRvciBpbnRlcmZhY2U6IGV4
aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IAorRkFJTCBpZGxfdGVz
dCBzZXR1cCBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2Jq
ZWN0ICJXZWJJRExQYXJzZUVycm9yOiBTeW50YXggZXJyb3IgYXQgbGluZSAxNDcsIHNpbmNlIGBp
bnRlcmZhY2UgTmF2aWdhdG9yVXNlck1lZGlhYDoKK05hdmlnYXRvciBpbXBsZW1lbnRzIE5hdmln
YXRvclVzZXJNZWRpYTsKK14gVW5yZWNvZ25pc2VkIHRva2VucyIKIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tc3QtY29udGVudC1oaW50
L2lkbGhhcm5lc3Mud2luZG93LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvbXN0LWNvbnRlbnQtaGludC9pZGxoYXJuZXNzLndpbmRvdy1l
eHBlY3RlZC50eHQKaW5kZXggYTdlYTMyNzkxY2IwMDY5M2YzNzk0YTIzZDMyODRhOTI2NzljNTJm
Zi4uZmE2YmEwNjU1NjkyOWQ1NzRmMmRiNjc4NWUzOGI3MDBhNjJhYjdlYiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tc3QtY29udGVudC1o
aW50L2lkbGhhcm5lc3Mud2luZG93LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21zdC1jb250ZW50LWhpbnQvaWRsaGFybmVzcy53
aW5kb3ctZXhwZWN0ZWQudHh0CkBAIC0xLDMwICsxLDMgQEAKIAotRkFJTCBpZGxfdGVzdCBzZXR1
cCBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJH
b3QgYW4gZXJyb3IgYmVmb3JlIHBhcnNpbmcgYW55IG5hbWVkIGRlZmluaXRpb246IFVucmVjb2du
aXNlZCB0b2tlbnMsIGxpbmUgMSAodG9rZW5zOiAie1wiZXJyb3JcIjoge1wibWVzc2FnZVwiIikK
LVsKLSAgICB7Ci0gICAgICAgICJ0eXBlIjogInsiLAotICAgICAgICAidmFsdWUiOiAieyIsCi0g
ICAgICAgICJ0cml2aWEiOiAiIgotICAgIH0sCi0gICAgewotICAgICAgICAidHlwZSI6ICJzdHJp
bmciLAotICAgICAgICAidmFsdWUiOiAiXCJlcnJvclwiIiwKLSAgICAgICAgInRyaXZpYSI6ICIi
Ci0gICAgfSwKLSAgICB7Ci0gICAgICAgICJ0eXBlIjogIjoiLAotICAgICAgICAidmFsdWUiOiAi
OiIsCi0gICAgICAgICJ0cml2aWEiOiAiIgotICAgIH0sCi0gICAgewotICAgICAgICAidHlwZSI6
ICJ7IiwKLSAgICAgICAgInZhbHVlIjogInsiLAotICAgICAgICAidHJpdmlhIjogIiAiCi0gICAg
fSwKLSAgICB7Ci0gICAgICAgICJ0eXBlIjogInN0cmluZyIsCi0gICAgICAgICJ2YWx1ZSI6ICJc
Im1lc3NhZ2VcIiIsCi0gICAgICAgICJ0cml2aWEiOiAiIgotICAgIH0KLV0iCitGQUlMIGlkbF90
ZXN0IHNldHVwIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBv
YmplY3QgIkVycm9yIGZldGNoaW5nIC9pbnRlcmZhY2VzL21zdC1jb250ZW50LWhpbnQuaWRsLiIK
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9ub3RpZmljYXRpb25zL2ludGVyZmFjZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9ub3RpZmljYXRpb25zL2ludGVyZmFjZXMtZXhw
ZWN0ZWQudHh0CmluZGV4IDk3MDY2YjJiNjRiMzI0YzMxYTgyYWNhMzg1OTQxMDQzYzlmZWVmNDcu
LjYxNjhjZGRiZDQ1MTA5MzdiMmEyMDc3Y2MzZTk2MTNjZWQzYmUwOWQgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbm90aWZpY2F0aW9ucy9p
bnRlcmZhY2VzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL25vdGlmaWNhdGlvbnMvaW50ZXJmYWNlcy1leHBlY3RlZC50eHQKQEAg
LTEsNSArMSwzIEBACi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNDgyOiBjYWxsYmFjayBub3QgeWV0
IHN1cHBvcnRlZAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDQ4MjogY2FsbGJhY2sgbm90IHlldCBz
dXBwb3J0ZWQKIAogUEFTUyBOb3RpZmljYXRpb24gaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHBy
b3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCAKIFBBU1MgTm90aWZpY2F0aW9uIGludGVyZmFj
ZSBvYmplY3QgbGVuZ3RoIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9yZXNpemUtb2JzZXJ2ZXIvaWRsaGFybmVzcy53aW5kb3ctZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNp
emUtb2JzZXJ2ZXIvaWRsaGFybmVzcy53aW5kb3ctZXhwZWN0ZWQudHh0CmluZGV4IDhjODQ5Mjhk
ZjMxMWM4MzVkYTlhMDk0NWNmNWFhMmIzNDc5ZWU1YTEuLjFkMzM3M2Q4ZDg0ZTg4YWYzYzQwN2Vi
YWVhOWI4YTc2ODA5YjdhODggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvcmVzaXplLW9ic2VydmVyL2lkbGhhcm5lc3Mud2luZG93LWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Jlc2l6ZS1vYnNlcnZlci9pZGxoYXJuZXNzLndpbmRvdy1leHBlY3RlZC50eHQKQEAgLTEsNCAr
MSwzIEBACi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNDgyOiBjYWxsYmFjayBub3QgeWV0IHN1cHBv
cnRlZAogCiBQQVNTIGlkbF90ZXN0IHNldHVwIAogUEFTUyBSZXNpemVPYnNlcnZlckVudHJ5IGNy
ZWF0b3IgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Jlc291cmNlLXRpbWluZy9pZGxoYXJuZXNzLmFueS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlLXRpbWluZy9p
ZGxoYXJuZXNzLmFueS1leHBlY3RlZC50eHQKaW5kZXggYTdlYTMyNzkxY2IwMDY5M2YzNzk0YTIz
ZDMyODRhOTI2NzljNTJmZi4uNWU1ODJmOTRhZmViYmI0MWQ3YTdkZjI2NWE4MWQwOGY0ZjM1MTJh
NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9yZXNvdXJjZS10aW1pbmcvaWRsaGFybmVzcy5hbnktZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2UtdGltaW5nL2lk
bGhhcm5lc3MuYW55LWV4cGVjdGVkLnR4dApAQCAtMSwzMCArMSw1NiBAQAogCi1GQUlMIGlkbF90
ZXN0IHNldHVwIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBv
YmplY3QgIkdvdCBhbiBlcnJvciBiZWZvcmUgcGFyc2luZyBhbnkgbmFtZWQgZGVmaW5pdGlvbjog
VW5yZWNvZ25pc2VkIHRva2VucywgbGluZSAxICh0b2tlbnM6ICJ7XCJlcnJvclwiOiB7XCJtZXNz
YWdlXCIiKQotWwotICAgIHsKLSAgICAgICAgInR5cGUiOiAieyIsCi0gICAgICAgICJ2YWx1ZSI6
ICJ7IiwKLSAgICAgICAgInRyaXZpYSI6ICIiCi0gICAgfSwKLSAgICB7Ci0gICAgICAgICJ0eXBl
IjogInN0cmluZyIsCi0gICAgICAgICJ2YWx1ZSI6ICJcImVycm9yXCIiLAotICAgICAgICAidHJp
dmlhIjogIiIKLSAgICB9LAotICAgIHsKLSAgICAgICAgInR5cGUiOiAiOiIsCi0gICAgICAgICJ2
YWx1ZSI6ICI6IiwKLSAgICAgICAgInRyaXZpYSI6ICIiCi0gICAgfSwKLSAgICB7Ci0gICAgICAg
ICJ0eXBlIjogInsiLAotICAgICAgICAidmFsdWUiOiAieyIsCi0gICAgICAgICJ0cml2aWEiOiAi
ICIKLSAgICB9LAotICAgIHsKLSAgICAgICAgInR5cGUiOiAic3RyaW5nIiwKLSAgICAgICAgInZh
bHVlIjogIlwibWVzc2FnZVwiIiwKLSAgICAgICAgInRyaXZpYSI6ICIiCi0gICAgfQotXSIKK1BB
U1MgaWRsX3Rlc3Qgc2V0dXAgCitQQVNTIFBhcnRpYWwgaW50ZXJmYWNlIFBlcmZvcm1hbmNlOiBv
cmlnaW5hbCBpbnRlcmZhY2UgZGVmaW5lZCAKK1BBU1MgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWlu
ZyBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0
IAorUEFTUyBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nIGludGVyZmFjZSBvYmplY3QgbGVuZ3Ro
IAorUEFTUyBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nIGludGVyZmFjZSBvYmplY3QgbmFtZSAK
K1BBU1MgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZyBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQg
cHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCAKK1BBU1MgUGVyZm9ybWFu
Y2VSZXNvdXJjZVRpbWluZyBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBp
bnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzICJjb25zdHJ1Y3RvciIgcHJvcGVydHkgCitQQVNT
IFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3Bl
cnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyBAQHVuc2NvcGFibGVzIHByb3Bl
cnR5IAorUEFTUyBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nIGludGVyZmFjZTogYXR0cmlidXRl
IGluaXRpYXRvclR5cGUgCitQQVNTIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcgaW50ZXJmYWNl
OiBhdHRyaWJ1dGUgbmV4dEhvcFByb3RvY29sIAorUEFTUyBQZXJmb3JtYW5jZVJlc291cmNlVGlt
aW5nIGludGVyZmFjZTogYXR0cmlidXRlIHdvcmtlclN0YXJ0IAorUEFTUyBQZXJmb3JtYW5jZVJl
c291cmNlVGltaW5nIGludGVyZmFjZTogYXR0cmlidXRlIHJlZGlyZWN0U3RhcnQgCitQQVNTIFBl
cmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgcmVkaXJlY3RFbmQg
CitQQVNTIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgZmV0
Y2hTdGFydCAKK1BBU1MgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZyBpbnRlcmZhY2U6IGF0dHJp
YnV0ZSBkb21haW5Mb29rdXBTdGFydCAKK1BBU1MgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZyBp
bnRlcmZhY2U6IGF0dHJpYnV0ZSBkb21haW5Mb29rdXBFbmQgCitQQVNTIFBlcmZvcm1hbmNlUmVz
b3VyY2VUaW1pbmcgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgY29ubmVjdFN0YXJ0IAorUEFTUyBQZXJm
b3JtYW5jZVJlc291cmNlVGltaW5nIGludGVyZmFjZTogYXR0cmlidXRlIGNvbm5lY3RFbmQgCitQ
QVNTIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgc2VjdXJl
Q29ubmVjdGlvblN0YXJ0IAorUEFTUyBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nIGludGVyZmFj
ZTogYXR0cmlidXRlIHJlcXVlc3RTdGFydCAKK1BBU1MgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWlu
ZyBpbnRlcmZhY2U6IGF0dHJpYnV0ZSByZXNwb25zZVN0YXJ0IAorUEFTUyBQZXJmb3JtYW5jZVJl
c291cmNlVGltaW5nIGludGVyZmFjZTogYXR0cmlidXRlIHJlc3BvbnNlRW5kIAorRkFJTCBQZXJm
b3JtYW5jZVJlc291cmNlVGltaW5nIGludGVyZmFjZTogYXR0cmlidXRlIHRyYW5zZmVyU2l6ZSBh
c3NlcnRfdHJ1ZTogVGhlIHByb3RvdHlwZSBvYmplY3QgbXVzdCBoYXZlIGEgcHJvcGVydHkgInRy
YW5zZmVyU2l6ZSIgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK0ZBSUwgUGVyZm9ybWFuY2VSZXNv
dXJjZVRpbWluZyBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBlbmNvZGVkQm9keVNpemUgYXNzZXJ0X3Ry
dWU6IFRoZSBwcm90b3R5cGUgb2JqZWN0IG11c3QgaGF2ZSBhIHByb3BlcnR5ICJlbmNvZGVkQm9k
eVNpemUiIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitGQUlMIFBlcmZvcm1hbmNlUmVzb3VyY2VU
aW1pbmcgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgZGVjb2RlZEJvZHlTaXplIGFzc2VydF90cnVlOiBU
aGUgcHJvdG90eXBlIG9iamVjdCBtdXN0IGhhdmUgYSBwcm9wZXJ0eSAiZGVjb2RlZEJvZHlTaXpl
IiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorUEFTUyBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5n
IGludGVyZmFjZTogb3BlcmF0aW9uIHRvSlNPTigpIAorUEFTUyBQZXJmb3JtYW5jZVJlc291cmNl
VGltaW5nIG11c3QgYmUgcHJpbWFyeSBpbnRlcmZhY2Ugb2YgcmVzb3VyY2UgCitQQVNTIFN0cmlu
Z2lmaWNhdGlvbiBvZiByZXNvdXJjZSAKK1BBU1MgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZyBp
bnRlcmZhY2U6IHJlc291cmNlIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiaW5pdGlhdG9yVHlwZSIg
d2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcgaW50
ZXJmYWNlOiByZXNvdXJjZSBtdXN0IGluaGVyaXQgcHJvcGVydHkgIm5leHRIb3BQcm90b2NvbCIg
d2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcgaW50
ZXJmYWNlOiByZXNvdXJjZSBtdXN0IGluaGVyaXQgcHJvcGVydHkgIndvcmtlclN0YXJ0IiB3aXRo
IHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZyBpbnRlcmZh
Y2U6IHJlc291cmNlIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAicmVkaXJlY3RTdGFydCIgd2l0aCB0
aGUgcHJvcGVyIHR5cGUgCitQQVNTIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcgaW50ZXJmYWNl
OiByZXNvdXJjZSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInJlZGlyZWN0RW5kIiB3aXRoIHRoZSBw
cm9wZXIgdHlwZSAKK1BBU1MgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZyBpbnRlcmZhY2U6IHJl
c291cmNlIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiZmV0Y2hTdGFydCIgd2l0aCB0aGUgcHJvcGVy
IHR5cGUgCitQQVNTIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcgaW50ZXJmYWNlOiByZXNvdXJj
ZSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImRvbWFpbkxvb2t1cFN0YXJ0IiB3aXRoIHRoZSBwcm9w
ZXIgdHlwZSAKK1BBU1MgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZyBpbnRlcmZhY2U6IHJlc291
cmNlIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiZG9tYWluTG9va3VwRW5kIiB3aXRoIHRoZSBwcm9w
ZXIgdHlwZSAKK1BBU1MgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZyBpbnRlcmZhY2U6IHJlc291
cmNlIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiY29ubmVjdFN0YXJ0IiB3aXRoIHRoZSBwcm9wZXIg
dHlwZSAKK1BBU1MgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZyBpbnRlcmZhY2U6IHJlc291cmNl
IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiY29ubmVjdEVuZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUg
CitQQVNTIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcgaW50ZXJmYWNlOiByZXNvdXJjZSBtdXN0
IGluaGVyaXQgcHJvcGVydHkgInNlY3VyZUNvbm5lY3Rpb25TdGFydCIgd2l0aCB0aGUgcHJvcGVy
IHR5cGUgCitQQVNTIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcgaW50ZXJmYWNlOiByZXNvdXJj
ZSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInJlcXVlc3RTdGFydCIgd2l0aCB0aGUgcHJvcGVyIHR5
cGUgCitQQVNTIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcgaW50ZXJmYWNlOiByZXNvdXJjZSBt
dXN0IGluaGVyaXQgcHJvcGVydHkgInJlc3BvbnNlU3RhcnQiIHdpdGggdGhlIHByb3BlciB0eXBl
IAorUEFTUyBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nIGludGVyZmFjZTogcmVzb3VyY2UgbXVz
dCBpbmhlcml0IHByb3BlcnR5ICJyZXNwb25zZUVuZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitG
QUlMIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcgaW50ZXJmYWNlOiByZXNvdXJjZSBtdXN0IGlu
aGVyaXQgcHJvcGVydHkgInRyYW5zZmVyU2l6ZSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0
X2luaGVyaXRzOiBwcm9wZXJ0eSAidHJhbnNmZXJTaXplIiBub3QgZm91bmQgaW4gcHJvdG90eXBl
IGNoYWluCitGQUlMIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcgaW50ZXJmYWNlOiByZXNvdXJj
ZSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImVuY29kZWRCb2R5U2l6ZSIgd2l0aCB0aGUgcHJvcGVy
IHR5cGUgYXNzZXJ0X2luaGVyaXRzOiBwcm9wZXJ0eSAiZW5jb2RlZEJvZHlTaXplIiBub3QgZm91
bmQgaW4gcHJvdG90eXBlIGNoYWluCitGQUlMIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcgaW50
ZXJmYWNlOiByZXNvdXJjZSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImRlY29kZWRCb2R5U2l6ZSIg
d2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2luaGVyaXRzOiBwcm9wZXJ0eSAiZGVjb2RlZEJv
ZHlTaXplIiBub3QgZm91bmQgaW4gcHJvdG90eXBlIGNoYWluCitQQVNTIFBlcmZvcm1hbmNlUmVz
b3VyY2VUaW1pbmcgaW50ZXJmYWNlOiByZXNvdXJjZSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInRv
SlNPTigpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK0ZBSUwgUGVyZm9ybWFuY2VSZXNvdXJjZVRp
bWluZyBpbnRlcmZhY2U6IGRlZmF1bHQgdG9KU09OIG9wZXJhdGlvbiBvbiByZXNvdXJjZSBhc3Nl
cnRfdHJ1ZTogcHJvcGVydHkgInRyYW5zZmVyU2l6ZSIgc2hvdWxkIGJlIHByZXNlbnQgaW4gdGhl
IG91dHB1dCBvZiBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nLnByb3RvdHlwZS50b0pTT04oKSBl
eHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorUEFTUyBQZXJmb3JtYW5jZSBpbnRlcmZhY2U6IG9wZXJh
dGlvbiBjbGVhclJlc291cmNlVGltaW5ncygpIAorUEFTUyBQZXJmb3JtYW5jZSBpbnRlcmZhY2U6
IG9wZXJhdGlvbiBzZXRSZXNvdXJjZVRpbWluZ0J1ZmZlclNpemUodW5zaWduZWQgbG9uZykgCitQ
QVNTIFBlcmZvcm1hbmNlIGludGVyZmFjZTogYXR0cmlidXRlIG9ucmVzb3VyY2V0aW1pbmdidWZm
ZXJmdWxsIAorUEFTUyBQZXJmb3JtYW5jZSBpbnRlcmZhY2U6IHBlcmZvcm1hbmNlIG11c3QgaW5o
ZXJpdCBwcm9wZXJ0eSAiY2xlYXJSZXNvdXJjZVRpbWluZ3MoKSIgd2l0aCB0aGUgcHJvcGVyIHR5
cGUgCitQQVNTIFBlcmZvcm1hbmNlIGludGVyZmFjZTogcGVyZm9ybWFuY2UgbXVzdCBpbmhlcml0
IHByb3BlcnR5ICJzZXRSZXNvdXJjZVRpbWluZ0J1ZmZlclNpemUodW5zaWduZWQgbG9uZykiIHdp
dGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBQZXJmb3JtYW5jZSBpbnRlcmZhY2U6IGNhbGxpbmcg
c2V0UmVzb3VyY2VUaW1pbmdCdWZmZXJTaXplKHVuc2lnbmVkIGxvbmcpIG9uIHBlcmZvcm1hbmNl
IHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCitQQVNTIFBlcmZv
cm1hbmNlIGludGVyZmFjZTogcGVyZm9ybWFuY2UgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJvbnJl
c291cmNldGltaW5nYnVmZmVyZnVsbCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCiAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2Ut
dGltaW5nL2lkbGhhcm5lc3MuYW55Lndvcmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlLXRpbWluZy9pZGxoYXJuZXNz
LmFueS53b3JrZXItZXhwZWN0ZWQudHh0CmluZGV4IGE3ZWEzMjc5MWNiMDA2OTNmMzc5NGEyM2Qz
Mjg0YTkyNjc5YzUyZmYuLjVlNTgyZjk0YWZlYmJiNDFkN2E3ZGYyNjVhODFkMDhmNGYzNTEyYTYg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
cmVzb3VyY2UtdGltaW5nL2lkbGhhcm5lc3MuYW55Lndvcmtlci1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZS10aW1p
bmcvaWRsaGFybmVzcy5hbnkud29ya2VyLWV4cGVjdGVkLnR4dApAQCAtMSwzMCArMSw1NiBAQAog
Ci1GQUlMIGlkbF90ZXN0IHNldHVwIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3
aXRoIHZhbHVlOiBvYmplY3QgIkdvdCBhbiBlcnJvciBiZWZvcmUgcGFyc2luZyBhbnkgbmFtZWQg
ZGVmaW5pdGlvbjogVW5yZWNvZ25pc2VkIHRva2VucywgbGluZSAxICh0b2tlbnM6ICJ7XCJlcnJv
clwiOiB7XCJtZXNzYWdlXCIiKQotWwotICAgIHsKLSAgICAgICAgInR5cGUiOiAieyIsCi0gICAg
ICAgICJ2YWx1ZSI6ICJ7IiwKLSAgICAgICAgInRyaXZpYSI6ICIiCi0gICAgfSwKLSAgICB7Ci0g
ICAgICAgICJ0eXBlIjogInN0cmluZyIsCi0gICAgICAgICJ2YWx1ZSI6ICJcImVycm9yXCIiLAot
ICAgICAgICAidHJpdmlhIjogIiIKLSAgICB9LAotICAgIHsKLSAgICAgICAgInR5cGUiOiAiOiIs
Ci0gICAgICAgICJ2YWx1ZSI6ICI6IiwKLSAgICAgICAgInRyaXZpYSI6ICIiCi0gICAgfSwKLSAg
ICB7Ci0gICAgICAgICJ0eXBlIjogInsiLAotICAgICAgICAidmFsdWUiOiAieyIsCi0gICAgICAg
ICJ0cml2aWEiOiAiICIKLSAgICB9LAotICAgIHsKLSAgICAgICAgInR5cGUiOiAic3RyaW5nIiwK
LSAgICAgICAgInZhbHVlIjogIlwibWVzc2FnZVwiIiwKLSAgICAgICAgInRyaXZpYSI6ICIiCi0g
ICAgfQotXSIKK1BBU1MgaWRsX3Rlc3Qgc2V0dXAgCitQQVNTIFBhcnRpYWwgaW50ZXJmYWNlIFBl
cmZvcm1hbmNlOiBvcmlnaW5hbCBpbnRlcmZhY2UgZGVmaW5lZCAKK1BBU1MgUGVyZm9ybWFuY2VS
ZXNvdXJjZVRpbWluZyBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRl
cmZhY2Ugb2JqZWN0IAorUEFTUyBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nIGludGVyZmFjZSBv
YmplY3QgbGVuZ3RoIAorUEFTUyBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nIGludGVyZmFjZSBv
YmplY3QgbmFtZSAKK1BBU1MgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZyBpbnRlcmZhY2U6IGV4
aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCAKK1BB
U1MgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZyBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJv
cGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzICJjb25zdHJ1Y3RvciIgcHJv
cGVydHkgCitQQVNTIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcgaW50ZXJmYWNlOiBleGlzdGVu
Y2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyBAQHVuc2Nv
cGFibGVzIHByb3BlcnR5IAorUEFTUyBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nIGludGVyZmFj
ZTogYXR0cmlidXRlIGluaXRpYXRvclR5cGUgCitQQVNTIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1p
bmcgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgbmV4dEhvcFByb3RvY29sIAorUEFTUyBQZXJmb3JtYW5j
ZVJlc291cmNlVGltaW5nIGludGVyZmFjZTogYXR0cmlidXRlIHdvcmtlclN0YXJ0IAorUEFTUyBQ
ZXJmb3JtYW5jZVJlc291cmNlVGltaW5nIGludGVyZmFjZTogYXR0cmlidXRlIHJlZGlyZWN0U3Rh
cnQgCitQQVNTIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcgaW50ZXJmYWNlOiBhdHRyaWJ1dGUg
cmVkaXJlY3RFbmQgCitQQVNTIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcgaW50ZXJmYWNlOiBh
dHRyaWJ1dGUgZmV0Y2hTdGFydCAKK1BBU1MgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZyBpbnRl
cmZhY2U6IGF0dHJpYnV0ZSBkb21haW5Mb29rdXBTdGFydCAKK1BBU1MgUGVyZm9ybWFuY2VSZXNv
dXJjZVRpbWluZyBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBkb21haW5Mb29rdXBFbmQgCitQQVNTIFBl
cmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgY29ubmVjdFN0YXJ0
IAorUEFTUyBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nIGludGVyZmFjZTogYXR0cmlidXRlIGNv
bm5lY3RFbmQgCitQQVNTIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcgaW50ZXJmYWNlOiBhdHRy
aWJ1dGUgc2VjdXJlQ29ubmVjdGlvblN0YXJ0IAorUEFTUyBQZXJmb3JtYW5jZVJlc291cmNlVGlt
aW5nIGludGVyZmFjZTogYXR0cmlidXRlIHJlcXVlc3RTdGFydCAKK1BBU1MgUGVyZm9ybWFuY2VS
ZXNvdXJjZVRpbWluZyBpbnRlcmZhY2U6IGF0dHJpYnV0ZSByZXNwb25zZVN0YXJ0IAorUEFTUyBQ
ZXJmb3JtYW5jZVJlc291cmNlVGltaW5nIGludGVyZmFjZTogYXR0cmlidXRlIHJlc3BvbnNlRW5k
IAorRkFJTCBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nIGludGVyZmFjZTogYXR0cmlidXRlIHRy
YW5zZmVyU2l6ZSBhc3NlcnRfdHJ1ZTogVGhlIHByb3RvdHlwZSBvYmplY3QgbXVzdCBoYXZlIGEg
cHJvcGVydHkgInRyYW5zZmVyU2l6ZSIgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK0ZBSUwgUGVy
Zm9ybWFuY2VSZXNvdXJjZVRpbWluZyBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBlbmNvZGVkQm9keVNp
emUgYXNzZXJ0X3RydWU6IFRoZSBwcm90b3R5cGUgb2JqZWN0IG11c3QgaGF2ZSBhIHByb3BlcnR5
ICJlbmNvZGVkQm9keVNpemUiIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitGQUlMIFBlcmZvcm1h
bmNlUmVzb3VyY2VUaW1pbmcgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgZGVjb2RlZEJvZHlTaXplIGFz
c2VydF90cnVlOiBUaGUgcHJvdG90eXBlIG9iamVjdCBtdXN0IGhhdmUgYSBwcm9wZXJ0eSAiZGVj
b2RlZEJvZHlTaXplIiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorUEFTUyBQZXJmb3JtYW5jZVJl
c291cmNlVGltaW5nIGludGVyZmFjZTogb3BlcmF0aW9uIHRvSlNPTigpIAorUEFTUyBQZXJmb3Jt
YW5jZVJlc291cmNlVGltaW5nIG11c3QgYmUgcHJpbWFyeSBpbnRlcmZhY2Ugb2YgcmVzb3VyY2Ug
CitQQVNTIFN0cmluZ2lmaWNhdGlvbiBvZiByZXNvdXJjZSAKK1BBU1MgUGVyZm9ybWFuY2VSZXNv
dXJjZVRpbWluZyBpbnRlcmZhY2U6IHJlc291cmNlIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiaW5p
dGlhdG9yVHlwZSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIFBlcmZvcm1hbmNlUmVzb3Vy
Y2VUaW1pbmcgaW50ZXJmYWNlOiByZXNvdXJjZSBtdXN0IGluaGVyaXQgcHJvcGVydHkgIm5leHRI
b3BQcm90b2NvbCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIFBlcmZvcm1hbmNlUmVzb3Vy
Y2VUaW1pbmcgaW50ZXJmYWNlOiByZXNvdXJjZSBtdXN0IGluaGVyaXQgcHJvcGVydHkgIndvcmtl
clN0YXJ0IiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgUGVyZm9ybWFuY2VSZXNvdXJjZVRp
bWluZyBpbnRlcmZhY2U6IHJlc291cmNlIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAicmVkaXJlY3RT
dGFydCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1p
bmcgaW50ZXJmYWNlOiByZXNvdXJjZSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInJlZGlyZWN0RW5k
IiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZyBp
bnRlcmZhY2U6IHJlc291cmNlIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiZmV0Y2hTdGFydCIgd2l0
aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcgaW50ZXJm
YWNlOiByZXNvdXJjZSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImRvbWFpbkxvb2t1cFN0YXJ0IiB3
aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZyBpbnRl
cmZhY2U6IHJlc291cmNlIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiZG9tYWluTG9va3VwRW5kIiB3
aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZyBpbnRl
cmZhY2U6IHJlc291cmNlIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiY29ubmVjdFN0YXJ0IiB3aXRo
IHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZyBpbnRlcmZh
Y2U6IHJlc291cmNlIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiY29ubmVjdEVuZCIgd2l0aCB0aGUg
cHJvcGVyIHR5cGUgCitQQVNTIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcgaW50ZXJmYWNlOiBy
ZXNvdXJjZSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInNlY3VyZUNvbm5lY3Rpb25TdGFydCIgd2l0
aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcgaW50ZXJm
YWNlOiByZXNvdXJjZSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInJlcXVlc3RTdGFydCIgd2l0aCB0
aGUgcHJvcGVyIHR5cGUgCitQQVNTIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcgaW50ZXJmYWNl
OiByZXNvdXJjZSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInJlc3BvbnNlU3RhcnQiIHdpdGggdGhl
IHByb3BlciB0eXBlIAorUEFTUyBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nIGludGVyZmFjZTog
cmVzb3VyY2UgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJyZXNwb25zZUVuZCIgd2l0aCB0aGUgcHJv
cGVyIHR5cGUgCitGQUlMIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcgaW50ZXJmYWNlOiByZXNv
dXJjZSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInRyYW5zZmVyU2l6ZSIgd2l0aCB0aGUgcHJvcGVy
IHR5cGUgYXNzZXJ0X2luaGVyaXRzOiBwcm9wZXJ0eSAidHJhbnNmZXJTaXplIiBub3QgZm91bmQg
aW4gcHJvdG90eXBlIGNoYWluCitGQUlMIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcgaW50ZXJm
YWNlOiByZXNvdXJjZSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImVuY29kZWRCb2R5U2l6ZSIgd2l0
aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2luaGVyaXRzOiBwcm9wZXJ0eSAiZW5jb2RlZEJvZHlT
aXplIiBub3QgZm91bmQgaW4gcHJvdG90eXBlIGNoYWluCitGQUlMIFBlcmZvcm1hbmNlUmVzb3Vy
Y2VUaW1pbmcgaW50ZXJmYWNlOiByZXNvdXJjZSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImRlY29k
ZWRCb2R5U2l6ZSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2luaGVyaXRzOiBwcm9wZXJ0
eSAiZGVjb2RlZEJvZHlTaXplIiBub3QgZm91bmQgaW4gcHJvdG90eXBlIGNoYWluCitQQVNTIFBl
cmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcgaW50ZXJmYWNlOiByZXNvdXJjZSBtdXN0IGluaGVyaXQg
cHJvcGVydHkgInRvSlNPTigpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK0ZBSUwgUGVyZm9ybWFu
Y2VSZXNvdXJjZVRpbWluZyBpbnRlcmZhY2U6IGRlZmF1bHQgdG9KU09OIG9wZXJhdGlvbiBvbiBy
ZXNvdXJjZSBhc3NlcnRfdHJ1ZTogcHJvcGVydHkgInRyYW5zZmVyU2l6ZSIgc2hvdWxkIGJlIHBy
ZXNlbnQgaW4gdGhlIG91dHB1dCBvZiBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nLnByb3RvdHlw
ZS50b0pTT04oKSBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorUEFTUyBQZXJmb3JtYW5jZSBpbnRl
cmZhY2U6IG9wZXJhdGlvbiBjbGVhclJlc291cmNlVGltaW5ncygpIAorUEFTUyBQZXJmb3JtYW5j
ZSBpbnRlcmZhY2U6IG9wZXJhdGlvbiBzZXRSZXNvdXJjZVRpbWluZ0J1ZmZlclNpemUodW5zaWdu
ZWQgbG9uZykgCitQQVNTIFBlcmZvcm1hbmNlIGludGVyZmFjZTogYXR0cmlidXRlIG9ucmVzb3Vy
Y2V0aW1pbmdidWZmZXJmdWxsIAorUEFTUyBQZXJmb3JtYW5jZSBpbnRlcmZhY2U6IHBlcmZvcm1h
bmNlIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiY2xlYXJSZXNvdXJjZVRpbWluZ3MoKSIgd2l0aCB0
aGUgcHJvcGVyIHR5cGUgCitQQVNTIFBlcmZvcm1hbmNlIGludGVyZmFjZTogcGVyZm9ybWFuY2Ug
bXVzdCBpbmhlcml0IHByb3BlcnR5ICJzZXRSZXNvdXJjZVRpbWluZ0J1ZmZlclNpemUodW5zaWdu
ZWQgbG9uZykiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBQZXJmb3JtYW5jZSBpbnRlcmZh
Y2U6IGNhbGxpbmcgc2V0UmVzb3VyY2VUaW1pbmdCdWZmZXJTaXplKHVuc2lnbmVkIGxvbmcpIG9u
IHBlcmZvcm1hbmNlIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3Ig
CitQQVNTIFBlcmZvcm1hbmNlIGludGVyZmFjZTogcGVyZm9ybWFuY2UgbXVzdCBpbmhlcml0IHBy
b3BlcnR5ICJvbnJlc291cmNldGltaW5nYnVmZmVyZnVsbCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUg
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvcmVzb3VyY2VzL2lkbGhhcm5lc3MuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy9pZGxoYXJuZXNzLmpzCmluZGV4IGEwODhiYzRjMmE3
ODAwMjUwMGZiODc5NDEwZTE4MDBmMTY4NDVhZjcuLmY2OGFkMWRkN2Q4MWU1NGJlYTVmOTAwNDI4
NGVmZjQ5YTcxM2EzMmUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL2lkbGhhcm5lc3MuanMKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvaWRsaGFybmVzcy5qcwpA
QCAtNTcsNyArNTcsNiBAQCBpZiAoISgnc3Vic2V0VGVzdEJ5S2V5JyBpbiBzZWxmKSkgewogfQog
Ly8vIEhlbHBlcnMgLy8vCiBmdW5jdGlvbiBjb25zdFZhbHVlIChjbnQpCi0vL0B7CiB7CiAgICAg
aWYgKGNudC50eXBlID09PSAibnVsbCIpIHJldHVybiBudWxsOwogICAgIGlmIChjbnQudHlwZSA9
PT0gIk5hTiIpIHJldHVybiBOYU47CkBAIC02Niw5ICs2NSw3IEBAIGZ1bmN0aW9uIGNvbnN0VmFs
dWUgKGNudCkKICAgICByZXR1cm4gY250LnZhbHVlOwogfQogCi0vL0B9CiBmdW5jdGlvbiBtaW5P
dmVybG9hZExlbmd0aChvdmVybG9hZHMpCi0vL0B7CiB7CiAgICAgLy8gIlRoZSB2YWx1ZSBvZiB0
aGUgRnVuY3Rpb24gb2JqZWN04oCZcyDigJxsZW5ndGjigJ0gcHJvcGVydHkgaXMKICAgICAvLyBh
IE51bWJlciBkZXRlcm1pbmVkIGFzIGZvbGxvd3M6CkBAIC04Nyw5ICs4NCw3IEBAIGZ1bmN0aW9u
IG1pbk92ZXJsb2FkTGVuZ3RoKG92ZXJsb2FkcykKICAgICAucmVkdWNlKGZ1bmN0aW9uKG0sIG4p
IHsgcmV0dXJuIE1hdGgubWluKG0sIG4pOyB9KTsKIH0KIAotLy9AfQogZnVuY3Rpb24gdGhyb3dP
clJlamVjdChhX3Rlc3QsIG9wZXJhdGlvbiwgZm4sIG9iaiwgYXJncywgbWVzc2FnZSwgY2IpCi0v
L0B7CiB7CiAgICAgaWYgKG9wZXJhdGlvbi5pZGxUeXBlLmdlbmVyaWMgIT09ICJQcm9taXNlIikg
ewogICAgICAgICBhc3NlcnRfdGhyb3dzKG5ldyBUeXBlRXJyb3IoKSwgZnVuY3Rpb24oKSB7CkBA
IC0xMDgsOSArMTAzLDcgQEAgZnVuY3Rpb24gdGhyb3dPclJlamVjdChhX3Rlc3QsIG9wZXJhdGlv
biwgZm4sIG9iaiwgYXJncywgbWVzc2FnZSwgY2IpCiAgICAgfQogfQogCi0vL0B9CiBmdW5jdGlv
biBhd2FpdE5DYWxsYmFja3MobiwgY2IsIGN0eCkKLS8vQHsKIHsKICAgICB2YXIgY291bnRlciA9
IDA7CiAgICAgcmV0dXJuIGZ1bmN0aW9uKCkgewpAQCAtMTIxLDkgKzExNCw3IEBAIGZ1bmN0aW9u
IGF3YWl0TkNhbGxiYWNrcyhuLCBjYiwgY3R4KQogICAgIH07CiB9CiAKLS8vQH0KIHZhciBmcm91
bmQgPQotLy9AewogKGZ1bmN0aW9uKCl7CiAgICAgaWYgKE1hdGguZnJvdW5kKSByZXR1cm4gTWF0
aC5mcm91bmQ7CiAKQEAgLTEzMywxMiArMTI0LDEwIEBAIHZhciBmcm91bmQgPQogICAgICAgICBy
ZXR1cm4gYXJyWzBdOwogICAgIH07CiB9KSgpOwotLy9AfQogCiAvLy8gSWRsSGFybmVzc0Vycm9y
IC8vLwogLy8gRW50cnkgcG9pbnQKIHNlbGYuSWRsSGFybmVzc0Vycm9yID0gZnVuY3Rpb24obWVz
c2FnZSkKLS8vQHsKIHsKICAgICAvKioKICAgICAgKiBNZXNzYWdlIHRvIGJlIHByaW50ZWQgYXMg
dGhlIGVycm9yJ3MgdG9TdHJpbmcgaW52b2NhdGlvbi4KQEAgLTE0OCwxOSArMTM3LDE1IEBAIHNl
bGYuSWRsSGFybmVzc0Vycm9yID0gZnVuY3Rpb24obWVzc2FnZSkKIAogSWRsSGFybmVzc0Vycm9y
LnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoRXJyb3IucHJvdG90eXBlKTsKIAotLy9AfQogSWRs
SGFybmVzc0Vycm9yLnByb3RvdHlwZS50b1N0cmluZyA9IGZ1bmN0aW9uKCkKLS8vQHsKIHsKICAg
ICByZXR1cm4gdGhpcy5tZXNzYWdlOwogfTsKIAotLy9AfQogCiAvLy8gSWRsQXJyYXkgLy8vCiAv
LyBFbnRyeSBwb2ludAogc2VsZi5JZGxBcnJheSA9IGZ1bmN0aW9uKCkKLS8vQHsKIHsKICAgICAv
KioKICAgICAgKiBBIG1hcCBmcm9tIHN0cmluZ3MgdG8gdGhlIGNvcnJlc3BvbmRpbmcgbmFtZWQg
SWRsT2JqZWN0LCBzdWNoIGFzCkBAIC0yMDgsMTkgKzE5MywyMSBAQCBzZWxmLklkbEFycmF5ID0g
ZnVuY3Rpb24oKQogICAgIHRoaXNbImltcGxlbWVudHMiXSA9IHt9OwogICAgIHRoaXNbImluY2x1
ZGVzIl0gPSB7fTsKICAgICB0aGlzWyJpbmhlcml0YW5jZSJdID0ge307CisKKyAgICAvKioKKyAg
ICAgKiBSZWNvcmQgb2Ygc2tpcHBlZCBJREwgaXRlbXMsIGluIGNhc2Ugd2UgbGF0ZXIgcmVhbGl6
ZSB0aGF0IHRoZXkgYXJlIGEKKyAgICAgKiBkZXBlbmRlbmN5ICh0byByZXRyb2FjdGl2ZWx5IHBy
b2Nlc3MgdGhlbSkuCisgICAgICovCisgICAgdGhpcy5za2lwcGVkID0gbmV3IE1hcCgpOwogfTsK
IAotLy9AfQogSWRsQXJyYXkucHJvdG90eXBlLmFkZF9pZGxzID0gZnVuY3Rpb24ocmF3X2lkbHMs
IG9wdGlvbnMpCi0vL0B7CiB7CiAgICAgLyoqIEVudHJ5IHBvaW50LiAgU2VlIGRvY3VtZW50YXRp
b24gYXQgYmVnaW5uaW5nIG9mIGZpbGUuICovCiAgICAgdGhpcy5pbnRlcm5hbF9hZGRfaWRscyhX
ZWJJREwyLnBhcnNlKHJhd19pZGxzKSwgb3B0aW9ucyk7CiB9OwogCi0vL0B9CiBJZGxBcnJheS5w
cm90b3R5cGUuYWRkX3VudGVzdGVkX2lkbHMgPSBmdW5jdGlvbihyYXdfaWRscywgb3B0aW9ucykK
LS8vQHsKIHsKICAgICAvKiogRW50cnkgcG9pbnQuICBTZWUgZG9jdW1lbnRhdGlvbiBhdCBiZWdp
bm5pbmcgb2YgZmlsZS4gKi8KICAgICB2YXIgcGFyc2VkX2lkbHMgPSBXZWJJREwyLnBhcnNlKHJh
d19pZGxzKTsKQEAgLTIyOCw5ICsyMTUsNyBAQCBJZGxBcnJheS5wcm90b3R5cGUuYWRkX3VudGVz
dGVkX2lkbHMgPSBmdW5jdGlvbihyYXdfaWRscywgb3B0aW9ucykKICAgICB0aGlzLmludGVybmFs
X2FkZF9pZGxzKHBhcnNlZF9pZGxzLCBvcHRpb25zKTsKIH07CiAKLS8vQH0KIElkbEFycmF5LnBy
b3RvdHlwZS5tYXJrX2FzX3VudGVzdGVkID0gZnVuY3Rpb24gKHBhcnNlZF9pZGxzKQotLy9Aewog
ewogICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcGFyc2VkX2lkbHMubGVuZ3RoOyBpKyspIHsKICAg
ICAgICAgcGFyc2VkX2lkbHNbaV0udW50ZXN0ZWQgPSB0cnVlOwpAQCAtMjQxLDIxICsyMjYsMTUg
QEAgSWRsQXJyYXkucHJvdG90eXBlLm1hcmtfYXNfdW50ZXN0ZWQgPSBmdW5jdGlvbiAocGFyc2Vk
X2lkbHMpCiAgICAgICAgIH0KICAgICB9CiB9OwotLy9AfQogCi0vL0B9CiBJZGxBcnJheS5wcm90
b3R5cGUuaXNfZXhjbHVkZWRfYnlfb3B0aW9ucyA9IGZ1bmN0aW9uIChuYW1lLCBvcHRpb25zKQot
Ly9AewogewogICAgIHJldHVybiBvcHRpb25zICYmCiAgICAgICAgIChvcHRpb25zLmV4Y2VwdCAm
JiBvcHRpb25zLmV4Y2VwdC5pbmNsdWRlcyhuYW1lKQogICAgICAgICAgfHwgb3B0aW9ucy5vbmx5
ICYmICFvcHRpb25zLm9ubHkuaW5jbHVkZXMobmFtZSkpOwogfTsKLS8vQH0KIAotLy9AfQogSWRs
QXJyYXkucHJvdG90eXBlLmFkZF9kZXBlbmRlbmN5X2lkbHMgPSBmdW5jdGlvbihyYXdfaWRscywg
b3B0aW9ucykKLS8vQHsKIHsKICAgICBjb25zdCBwYXJzZWRfaWRscyA9IFdlYklETDIucGFyc2Uo
cmF3X2lkbHMpOwogICAgIGNvbnN0IG5ld19vcHRpb25zID0geyBvbmx5OiBbXSB9CkBAIC0yNzEs
MjIgKzI1MCw1MCBAQCBJZGxBcnJheS5wcm90b3R5cGUuYWRkX2RlcGVuZGVuY3lfaWRscyA9IGZ1
bmN0aW9uKHJhd19pZGxzLCBvcHRpb25zKQogICAgICAgICBhbGxfZGVwcy5hZGQoayk7CiAgICAg
ICAgIHRoaXMuaW5jbHVkZXNba10uZm9yRWFjaCh2ID0+IGFsbF9kZXBzLmFkZCh2KSk7CiAgICAg
fSk7Ci0gICAgdGhpcy5wYXJ0aWFscy5tYXAocCA9PiBwLm5hbWUpLmZvckVhY2godiA9PiBhbGxf
ZGVwcy5hZGQodikpOwotICAgIC8vIEFkZCB0aGUgYXR0cmlidXRlIGlkbFR5cGVzIG9mIGFsbCB0
aGUgbmVzdGVkIG1lbWJlcnMgb2YgYWxsIHRlc3RlZCBpZGxzLgotICAgIGZvciAoY29uc3Qgb2Jq
IG9mIFt0aGlzLm1lbWJlcnMsIHRoaXMucGFydGlhbHNdKSB7Ci0gICAgICAgIGNvbnN0IHRlc3Rl
ZCA9IE9iamVjdC52YWx1ZXMob2JqKS5maWx0ZXIobSA9PiAhbS51bnRlc3RlZCAmJiBtLm1lbWJl
cnMpOwotICAgICAgICBmb3IgKGNvbnN0IHBhcnNlZCBvZiB0ZXN0ZWQpIHsKLSAgICAgICAgICAg
IGZvciAoY29uc3QgYXR0ciBvZiBPYmplY3QudmFsdWVzKHBhcnNlZC5tZW1iZXJzKS5maWx0ZXIo
bSA9PiAhbS51bnRlc3RlZCAmJiBtLnR5cGUgPT09ICdhdHRyaWJ1dGUnKSkgewotICAgICAgICAg
ICAgICAgIGFsbF9kZXBzLmFkZChhdHRyLmlkbFR5cGUuaWRsVHlwZSk7Ci0gICAgICAgICAgICB9
CisgICAgdGhpcy5wYXJ0aWFscy5mb3JFYWNoKHAgPT4gYWxsX2RlcHMuYWRkKHAubmFtZSkpOwor
ICAgIC8vIEFkZCAnVHlwZU9mVHlwZScgZm9yIGVhY2ggInR5cGVkZWYgVHlwZU9mVHlwZSBNeVR5
cGU7IiBlbnRyeS4KKyAgICBPYmplY3QuZW50cmllcyh0aGlzLm1lbWJlcnMpLmZvckVhY2goKFtr
LCB2XSkgPT4geworICAgICAgICBpZiAodiBpbnN0YW5jZW9mIElkbFR5cGVkZWYpIHsKKyAgICAg
ICAgICAgIGxldCBkZWZzID0gdi5pZGxUeXBlLnVuaW9uCisgICAgICAgICAgICAgICAgPyB2Lmlk
bFR5cGUuaWRsVHlwZS5tYXAodCA9PiB0LmlkbFR5cGUpCisgICAgICAgICAgICAgICAgOiBbdi5p
ZGxUeXBlLmlkbFR5cGVdOworICAgICAgICAgICAgZGVmcy5mb3JFYWNoKGQgPT4gYWxsX2RlcHMu
YWRkKGQpKTsKICAgICAgICAgfQotICAgIH0KKyAgICB9KTsKKworICAgIC8vIEFkZCB0aGUgYXR0
cmlidXRlIGlkbFR5cGVzIG9mIGFsbCB0aGUgbmVzdGVkIG1lbWJlcnMgb2YgaWRscy4KKyAgICBj
b25zdCBhdHRyRGVwcyA9IHBhcnNlZElkbHMgPT4geworICAgICAgICByZXR1cm4gcGFyc2VkSWRs
cy5yZWR1Y2UoKGRlcHMsIHBhcnNlZCkgPT4geworICAgICAgICAgICAgaWYgKHBhcnNlZC5tZW1i
ZXJzKSB7CisgICAgICAgICAgICAgICAgZm9yIChjb25zdCBhdHRyIG9mIE9iamVjdC52YWx1ZXMo
cGFyc2VkLm1lbWJlcnMpLmZpbHRlcihtID0+IG0udHlwZSA9PT0gJ2F0dHJpYnV0ZScpKSB7Cisg
ICAgICAgICAgICAgICAgICAgIGxldCBhdHRyVHlwZSA9IGF0dHIuaWRsVHlwZTsKKyAgICAgICAg
ICAgICAgICAgICAgLy8gQ2hlY2sgZm9yIGdlbmVyaWMgbWVtYmVycyAoZS5nLiBGcm96ZW5BcnJh
eTxNeVR5cGU+KQorICAgICAgICAgICAgICAgICAgICBpZiAoYXR0clR5cGUuZ2VuZXJpYykgewor
ICAgICAgICAgICAgICAgICAgICAgICAgZGVwcy5hZGQoYXR0clR5cGUuZ2VuZXJpYyk7CisgICAg
ICAgICAgICAgICAgICAgICAgICBhdHRyVHlwZSA9IGF0dHJUeXBlLmlkbFR5cGU7CisgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZGVwcy5hZGQoYXR0clR5cGUuaWRs
VHlwZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYg
KHBhcnNlZC5iYXNlIGluIHRoaXMubWVtYmVycykgeworICAgICAgICAgICAgICAgIGF0dHJEZXBz
KFt0aGlzLm1lbWJlcnNbcGFyc2VkLmJhc2VdXSkuZm9yRWFjaChkZXAgPT4gZGVwcy5hZGQoZGVw
KSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gZGVwczsKKyAgICAgICAgfSwg
bmV3IFNldCgpKTsKKyAgICB9OworCisgICAgY29uc3QgdGVzdGVkTWVtYmVycyA9IE9iamVjdC52
YWx1ZXModGhpcy5tZW1iZXJzKS5maWx0ZXIobSA9PiAhbS51bnRlc3RlZCAmJiBtLm1lbWJlcnMp
OworICAgIGF0dHJEZXBzKHRlc3RlZE1lbWJlcnMpLmZvckVhY2goZGVwID0+IGFsbF9kZXBzLmFk
ZChkZXApKTsKKworICAgIGNvbnN0IHRlc3RlZFBhcnRpYWxzID0gdGhpcy5wYXJ0aWFscy5maWx0
ZXIobSA9PiAhbS51bnRlc3RlZCAmJiBtLm1lbWJlcnMpOworICAgIGF0dHJEZXBzKHRlc3RlZFBh
cnRpYWxzKS5mb3JFYWNoKGRlcCA9PiBhbGxfZGVwcy5hZGQoZGVwKSk7CisKIAogICAgIGlmIChv
cHRpb25zICYmIG9wdGlvbnMuZXhjZXB0ICYmIG9wdGlvbnMub25seSkgewogICAgICAgICB0aHJv
dyBuZXcgSWRsSGFybmVzc0Vycm9yKCJUaGUgb25seSBhbmQgZXhjZXB0IG9wdGlvbnMgY2FuJ3Qg
YmUgdXNlZCB0b2dldGhlci4iKTsKICAgICB9CiAKLSAgICBjb25zdCBzaG91bGRfc2tpcCA9IG5h
bWUgPT4geworICAgIGNvbnN0IGRlZmluZWRfb3JfdW50ZXN0ZWQgPSBuYW1lID0+IHsKICAgICAg
ICAgLy8gTk9URTogRGVwcyBhcmUgdW50ZXN0ZWQsIHNvIHdlJ3JlIGxlbmllbnQsIGFuZCBza2lw
IHJlLWVuY291bnRlcmVkIGRlZmluaXRpb25zLgogICAgICAgICAvLyBlLmcuIGZvciAnaWRsJyBj
b250YWluaW5nIEE6QiwgQjpDLCBDOkQKICAgICAgICAgLy8gICAgICBhcnJheS5hZGRfaWRscyhp
ZGwsIHtvbmx5OiBbJ0EnLCdCJ119KS4KQEAgLTI5NSw5ICszMDIsNyBAQCBJZGxBcnJheS5wcm90
b3R5cGUuYWRkX2RlcGVuZGVuY3lfaWRscyA9IGZ1bmN0aW9uKHJhd19pZGxzLCBvcHRpb25zKQog
ICAgICAgICByZXR1cm4gbmFtZSBpbiB0aGlzLm1lbWJlcnMKICAgICAgICAgICAgIHx8IHRoaXMu
aXNfZXhjbHVkZWRfYnlfb3B0aW9ucyhuYW1lLCBvcHRpb25zKTsKICAgICB9Ci0gICAgLy8gUmVj
b3JkIG9mIHNraXBwZWQgaXRlbXMsIGluIGNhc2Ugd2UgbGF0ZXIgZGV0ZXJtaW5lIHRoZXkgYXJl
IGEgZGVwZW5kZW5jeS4KICAgICAvLyBNYXBzIG5hbWUgLT4gW3BhcnNlZF9pZGwsIC4uLl0KLSAg
ICBjb25zdCBza2lwcGVkID0gbmV3IE1hcCgpOwogICAgIGNvbnN0IHByb2Nlc3MgPSBmdW5jdGlv
bihwYXJzZWQpIHsKICAgICAgICAgdmFyIGRlcHMgPSBbXTsKICAgICAgICAgaWYgKHBhcnNlZC5u
YW1lKSB7CkBAIC0zMTEsMTMgKzMxNiwxNSBAQCBJZGxBcnJheS5wcm90b3R5cGUuYWRkX2RlcGVu
ZGVuY3lfaWRscyA9IGZ1bmN0aW9uKHJhd19pZGxzLCBvcHRpb25zKQogICAgICAgICB9CiAKICAg
ICAgICAgZGVwcyA9IGRlcHMuZmlsdGVyKGZ1bmN0aW9uKG5hbWUpIHsKLSAgICAgICAgICAgIGlm
ICghbmFtZSB8fCBzaG91bGRfc2tpcChuYW1lKSB8fCAhYWxsX2RlcHMuaGFzKG5hbWUpKSB7Cisg
ICAgICAgICAgICBpZiAoIW5hbWUKKyAgICAgICAgICAgICAgICB8fCBuYW1lID09PSBwYXJzZWQu
bmFtZSAmJiBkZWZpbmVkX29yX3VudGVzdGVkKG5hbWUpCisgICAgICAgICAgICAgICAgfHwgIWFs
bF9kZXBzLmhhcyhuYW1lKSkgewogICAgICAgICAgICAgICAgIC8vIEZsYWcgYXMgc2tpcHBlZCwg
aWYgaXQncyBub3QgYWxyZWFkeSBwcm9jZXNzZWQsIHNvIHdlIGNhbgogICAgICAgICAgICAgICAg
IC8vIGNvbWUgYmFjayB0byBpdCBsYXRlciBpZiB3ZSByZXRyb3NwZWN0aXZlbHkgY2FsbCBpdCBh
IGRlcC4KICAgICAgICAgICAgICAgICBpZiAobmFtZSAmJiAhKG5hbWUgaW4gdGhpcy5tZW1iZXJz
KSkgewotICAgICAgICAgICAgICAgICAgICBza2lwcGVkLmhhcyhuYW1lKQotICAgICAgICAgICAg
ICAgICAgICAgICAgPyBza2lwcGVkLmdldChuYW1lKS5wdXNoKHBhcnNlZCkKLSAgICAgICAgICAg
ICAgICAgICAgICAgIDogc2tpcHBlZC5zZXQobmFtZSwgW3BhcnNlZF0pOworICAgICAgICAgICAg
ICAgICAgICB0aGlzLnNraXBwZWQuaGFzKG5hbWUpCisgICAgICAgICAgICAgICAgICAgICAgICA/
IHRoaXMuc2tpcHBlZC5nZXQobmFtZSkucHVzaChwYXJzZWQpCisgICAgICAgICAgICAgICAgICAg
ICAgICA6IHRoaXMuc2tpcHBlZC5zZXQobmFtZSwgW3BhcnNlZF0pOwogICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICB9CkBAIC0zMjUs
MTUgKzMzMiwyOSBAQCBJZGxBcnJheS5wcm90b3R5cGUuYWRkX2RlcGVuZGVuY3lfaWRscyA9IGZ1
bmN0aW9uKHJhd19pZGxzLCBvcHRpb25zKQogICAgICAgICB9LmJpbmQodGhpcykpOwogCiAgICAg
ICAgIGRlcHMuZm9yRWFjaChmdW5jdGlvbihuYW1lKSB7Ci0gICAgICAgICAgICBuZXdfb3B0aW9u
cy5vbmx5LnB1c2gobmFtZSk7CisgICAgICAgICAgICBpZiAoIW5ld19vcHRpb25zLm9ubHkuaW5j
bHVkZXMobmFtZSkpIHsKKyAgICAgICAgICAgICAgICBuZXdfb3B0aW9ucy5vbmx5LnB1c2gobmFt
ZSk7CisgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGNvbnN0IGZvbGxvd191cCA9IG5ldyBT
ZXQoKTsKICAgICAgICAgICAgIGZvciAoY29uc3QgZGVwX3R5cGUgb2YgWyJpbmhlcml0YW5jZSIs
ICJpbXBsZW1lbnRzIiwgImluY2x1ZGVzIl0pIHsKICAgICAgICAgICAgICAgICBpZiAocGFyc2Vk
W2RlcF90eXBlXSkgewogICAgICAgICAgICAgICAgICAgICBjb25zdCBpbmhlcml0aW5nID0gcGFy
c2VkW2RlcF90eXBlXTsKICAgICAgICAgICAgICAgICAgICAgY29uc3QgaW5oZXJpdG9yID0gcGFy
c2VkLm5hbWUgfHwgcGFyc2VkLnRhcmdldDsKLSAgICAgICAgICAgICAgICAgICAgZm9yIChjb25z
dCBkZXAgb2YgW2luaGVyaXRpbmcsIGluaGVyaXRvcl0pIHsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIG5ld19vcHRpb25zLm9ubHkucHVzaChkZXApOworICAgICAgICAgICAgICAgICAgICBjb25z
dCBkZXBzID0gW2luaGVyaXRpbmddOworICAgICAgICAgICAgICAgICAgICAvLyBGb3IgQSBpbmNs
dWRlcyBCLCB3ZSBjYW4gaWdub3JlIEEsIHVubGVzcyBCIChvciBzb21lIG9mIGl0cworICAgICAg
ICAgICAgICAgICAgICAvLyBtZW1iZXJzKSBpcyBiZWluZyB0ZXN0ZWQuCisgICAgICAgICAgICAg
ICAgICAgIGlmIChkZXBfdHlwZSAhPT0gImluY2x1ZGVzIgorICAgICAgICAgICAgICAgICAgICAg
ICAgfHwgaW5oZXJpdGluZyBpbiB0aGlzLm1lbWJlcnMgJiYgIXRoaXMubWVtYmVyc1tpbmhlcml0
aW5nXS51bnRlc3RlZAorICAgICAgICAgICAgICAgICAgICAgICAgfHwgdGhpcy5wYXJ0aWFscy5z
b21lKGZ1bmN0aW9uKHApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IHAubmFtZSA9PT0gaW5oZXJpdGluZzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSkg
eworICAgICAgICAgICAgICAgICAgICAgICAgZGVwcy5wdXNoKGluaGVyaXRvcik7CisgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBkZXAgb2YgZGVw
cykgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFuZXdfb3B0aW9ucy5vbmx5LmluY2x1
ZGVzKGRlcCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdfb3B0aW9ucy5vbmx5
LnB1c2goZGVwKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg
ICAgICAgIGFsbF9kZXBzLmFkZChkZXApOwogICAgICAgICAgICAgICAgICAgICAgICAgZm9sbG93
X3VwLmFkZChkZXApOwogICAgICAgICAgICAgICAgICAgICB9CkBAIC0zNDEsMTMgKzM2MiwxMyBA
QCBJZGxBcnJheS5wcm90b3R5cGUuYWRkX2RlcGVuZGVuY3lfaWRscyA9IGZ1bmN0aW9uKHJhd19p
ZGxzLCBvcHRpb25zKQogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBmb3IgKGNvbnN0IGRl
ZmVycmVkIG9mIGZvbGxvd191cCkgewotICAgICAgICAgICAgICAgIGlmIChza2lwcGVkLmhhcyhk
ZWZlcnJlZCkpIHsKLSAgICAgICAgICAgICAgICAgICAgY29uc3QgbmV4dCA9IHNraXBwZWQuZ2V0
KGRlZmVycmVkKTsKLSAgICAgICAgICAgICAgICAgICAgc2tpcHBlZC5kZWxldGUoZGVmZXJyZWQp
OworICAgICAgICAgICAgICAgIGlmICh0aGlzLnNraXBwZWQuaGFzKGRlZmVycmVkKSkgeworICAg
ICAgICAgICAgICAgICAgICBjb25zdCBuZXh0ID0gdGhpcy5za2lwcGVkLmdldChkZWZlcnJlZCk7
CisgICAgICAgICAgICAgICAgICAgIHRoaXMuc2tpcHBlZC5kZWxldGUoZGVmZXJyZWQpOwogICAg
ICAgICAgICAgICAgICAgICBuZXh0LmZvckVhY2gocHJvY2Vzcyk7CiAgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgfQotICAgICAgICB9KTsKKyAgICAgICAgfS5iaW5kKHRoaXMpKTsKICAg
ICB9LmJpbmQodGhpcyk7CiAKICAgICBmb3IgKGxldCBwYXJzZWQgb2YgcGFyc2VkX2lkbHMpIHsK
QEAgLTM2MSw5ICszODIsNyBAQCBJZGxBcnJheS5wcm90b3R5cGUuYWRkX2RlcGVuZGVuY3lfaWRs
cyA9IGZ1bmN0aW9uKHJhd19pZGxzLCBvcHRpb25zKQogICAgIH0KIH0KIAotLy9AfQogSWRsQXJy
YXkucHJvdG90eXBlLmludGVybmFsX2FkZF9pZGxzID0gZnVuY3Rpb24ocGFyc2VkX2lkbHMsIG9w
dGlvbnMpCi0vL0B7CiB7CiAgICAgLyoqCiAgICAgICogSW50ZXJuYWwgaGVscGVyIGNhbGxlZCBi
eSBhZGRfaWRscygpIGFuZCBhZGRfdW50ZXN0ZWRfaWRscygpLgpAQCAtNDc4LDggKzQ5Nyw3IEBA
IElkbEFycmF5LnByb3RvdHlwZS5pbnRlcm5hbF9hZGRfaWRscyA9IGZ1bmN0aW9uKHBhcnNlZF9p
ZGxzLCBvcHRpb25zKQogICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgY2FzZSAiY2FsbGJh
Y2siOgotICAgICAgICAgICAgLy8gVE9ETwotICAgICAgICAgICAgY29uc29sZS5sb2coImNhbGxi
YWNrIG5vdCB5ZXQgc3VwcG9ydGVkIik7CisgICAgICAgICAgICB0aGlzLm1lbWJlcnNbcGFyc2Vk
X2lkbC5uYW1lXSA9IG5ldyBJZGxDYWxsYmFjayhwYXJzZWRfaWRsKTsKICAgICAgICAgICAgIGJy
ZWFrOwogCiAgICAgICAgIGNhc2UgImVudW0iOgpAQCAtNTAxLDkgKzUxOSw3IEBAIElkbEFycmF5
LnByb3RvdHlwZS5pbnRlcm5hbF9hZGRfaWRscyA9IGZ1bmN0aW9uKHBhcnNlZF9pZGxzLCBvcHRp
b25zKQogICAgIH0uYmluZCh0aGlzKSk7CiB9OwogCi0vL0B9CiBJZGxBcnJheS5wcm90b3R5cGUu
YWRkX29iamVjdHMgPSBmdW5jdGlvbihkaWN0KQotLy9AewogewogICAgIC8qKiBFbnRyeSBwb2lu
dC4gIFNlZSBkb2N1bWVudGF0aW9uIGF0IGJlZ2lubmluZyBvZiBmaWxlLiAqLwogICAgIGZvciAo
dmFyIGsgaW4gZGljdCkKQEAgLTUxOSwxNyArNTM1LDEzIEBAIElkbEFycmF5LnByb3RvdHlwZS5h
ZGRfb2JqZWN0cyA9IGZ1bmN0aW9uKGRpY3QpCiAgICAgfQogfTsKIAotLy9AfQogSWRsQXJyYXku
cHJvdG90eXBlLnByZXZlbnRfbXVsdGlwbGVfdGVzdGluZyA9IGZ1bmN0aW9uKG5hbWUpCi0vL0B7
CiB7CiAgICAgLyoqIEVudHJ5IHBvaW50LiAgU2VlIGRvY3VtZW50YXRpb24gYXQgYmVnaW5uaW5n
IG9mIGZpbGUuICovCiAgICAgdGhpcy5tZW1iZXJzW25hbWVdLnByZXZlbnRfbXVsdGlwbGVfdGVz
dGluZyA9IHRydWU7CiB9OwogCi0vL0B9CiBJZGxBcnJheS5wcm90b3R5cGUucmVjdXJzaXZlbHlf
Z2V0X2ltcGxlbWVudHMgPSBmdW5jdGlvbihpbnRlcmZhY2VfbmFtZSkKLS8vQHsKIHsKICAgICAv
KioKICAgICAgKiBIZWxwZXIgZnVuY3Rpb24gZm9yIHRlc3QoKS4gIFJldHVybnMgYW4gYXJyYXkg
b2YgdGhpbmdzIHRoYXQgaW1wbGVtZW50CkBAIC01NTcsOSArNTY5LDcgQEAgSWRsQXJyYXkucHJv
dG90eXBlLnJlY3Vyc2l2ZWx5X2dldF9pbXBsZW1lbnRzID0gZnVuY3Rpb24oaW50ZXJmYWNlX25h
bWUpCiAgICAgcmV0dXJuIHJldDsKIH07CiAKLS8vQH0KIElkbEFycmF5LnByb3RvdHlwZS5yZWN1
cnNpdmVseV9nZXRfaW5jbHVkZXMgPSBmdW5jdGlvbihpbnRlcmZhY2VfbmFtZSkKLS8vQHsKIHsK
ICAgICAvKioKICAgICAgKiBIZWxwZXIgZnVuY3Rpb24gZm9yIHRlc3QoKS4gIFJldHVybnMgYW4g
YXJyYXkgb2YgdGhpbmdzIHRoYXQgaW1wbGVtZW50CkBAIC01ODcsOSArNTk3LDcgQEAgSWRsQXJy
YXkucHJvdG90eXBlLnJlY3Vyc2l2ZWx5X2dldF9pbmNsdWRlcyA9IGZ1bmN0aW9uKGludGVyZmFj
ZV9uYW1lKQogICAgIHJldHVybiByZXQ7CiB9OwogCi0vL0B9CiBJZGxBcnJheS5wcm90b3R5cGUu
aXNfanNvbl90eXBlID0gZnVuY3Rpb24odHlwZSkKLS8vQHsKIHsKICAgICAvKioKICAgICAgKiBD
aGVja3Mgd2hldGhlciB0eXBlIGlzIGEgSlNPTiB0eXBlIGFzIHBlcgpAQCAtNjExLDcgKzYxOSw3
IEBAIElkbEFycmF5LnByb3RvdHlwZS5pc19qc29uX3R5cGUgPSBmdW5jdGlvbih0eXBlKQogCiAg
ICAgLy8gc2VxdWVuY2UgdHlwZXMKICAgICBpZiAodHlwZS5nZW5lcmljID09ICJzZXF1ZW5jZSIg
fHwgdHlwZS5nZW5lcmljID09ICJGcm96ZW5BcnJheSIpIHsKLSAgICAgICAgcmV0dXJuIHRoaXMu
aXNfanNvbl90eXBlKGlkbFR5cGUpOworICAgICAgICByZXR1cm4gdGhpcy5pc19qc29uX3R5cGUo
aWRsVHlwZVswXSk7CiAgICAgfQogCiAgICAgaWYgKHR5cGVvZiBpZGxUeXBlICE9ICJzdHJpbmci
KSB7IHRocm93IG5ldyBFcnJvcigiVW5leHBlY3RlZCB0eXBlICIgKyBKU09OLnN0cmluZ2lmeShp
ZGxUeXBlKSk7IH0KQEAgLTcxOSwxMSArNzI3LDExIEBAIGZ1bmN0aW9uIGV4cG9zdXJlX3NldChv
YmplY3QsIGRlZmF1bHRfc2V0KSB7CiAgICAgICAgIHJlc3VsdCA9IG5ldyBTZXQocmVzdWx0KTsK
ICAgICB9CiAgICAgaWYgKGV4cG9zZWQgJiYgZXhwb3NlZC5sZW5ndGgpIHsKLSAgICAgICAgdmFy
IHNldCA9IGV4cG9zZWRbMF0ucmhzLnZhbHVlOworICAgICAgICBjb25zdCB7IHJocyB9ID0gZXhw
b3NlZFswXTsKICAgICAgICAgLy8gQ291bGQgYmUgYSBsaXN0IG9yIGEgc3RyaW5nLgotICAgICAg
ICBpZiAodHlwZW9mIHNldCA9PSAic3RyaW5nIikgewotICAgICAgICAgICAgc2V0ID0gWyBzZXQg
XTsKLSAgICAgICAgfQorICAgICAgICBjb25zdCBzZXQgPSByaHMudHlwZSA9PT0gImlkZW50aWZp
ZXItbGlzdCIgPworICAgICAgICAgICAgcmhzLnZhbHVlLm1hcChpZCA9PiBpZC52YWx1ZSkgOgor
ICAgICAgICAgICAgWyByaHMudmFsdWUgXTsKICAgICAgICAgcmVzdWx0ID0gbmV3IFNldChzZXQp
OwogICAgIH0KICAgICBpZiAocmVzdWx0ICYmIHJlc3VsdC5oYXMoIldvcmtlciIpKSB7CkBAIC03
NTQsMTQgKzc2MiwxMiBAQCBmdW5jdGlvbiBleHBvc2VkX2luKGdsb2JhbHMpIHsKICAgICB0aHJv
dyBuZXcgSWRsSGFybmVzc0Vycm9yKCJVbmV4cGVjdGVkIGdsb2JhbCBvYmplY3QiKTsKIH0KIAot
Ly9AfQogLyoqCiAgKiBBc3NlcnRzIHRoYXQgdGhlIGdpdmVuIGVycm9yIG1lc3NhZ2UgaXMgdGhy
b3duIGZvciB0aGUgZ2l2ZW4gZnVuY3Rpb24uCiAgKiBAcGFyYW0ge3N0cmluZ3xJZGxIYXJuZXNz
RXJyb3J9IGVycm9yIEV4cGVjdGVkIEVycm9yIG1lc3NhZ2UuCiAgKiBAcGFyYW0ge0Z1bmN0aW9u
fSBpZGxBcnJheUZ1bmMgRnVuY3Rpb24gb3BlcmF0aW5nIG9uIGFuIElkbEFycmF5IHRoYXQgc2hv
dWxkIHRocm93LgogICovCiBJZGxBcnJheS5wcm90b3R5cGUuYXNzZXJ0X3Rocm93cyA9IGZ1bmN0
aW9uKGVycm9yLCBpZGxBcnJheUZ1bmMpCi0vL0B7CiB7CiAgICAgdHJ5IHsKICAgICAgICAgaWRs
QXJyYXlGdW5jLmNhbGwodGhpcywgdGhpcyk7CkBAIC03ODEsOSArNzg3LDcgQEAgSWRsQXJyYXku
cHJvdG90eXBlLmFzc2VydF90aHJvd3MgPSBmdW5jdGlvbihlcnJvciwgaWRsQXJyYXlGdW5jKQog
ICAgIHRocm93IG5ldyBJZGxIYXJuZXNzRXJyb3IoYCR7aWRsQXJyYXlGdW5jfSBkaWQgbm90IHRo
cm93IHRoZSBleHBlY3RlZCBJZGxIYXJuZXNzRXJyb3JgKTsKIH0KIAotLy9AfQogSWRsQXJyYXku
cHJvdG90eXBlLnRlc3QgPSBmdW5jdGlvbigpCi0vL0B7CiB7CiAgICAgLyoqIEVudHJ5IHBvaW50
LiAgU2VlIGRvY3VtZW50YXRpb24gYXQgYmVnaW5uaW5nIG9mIGZpbGUuICovCiAKQEAgLTg3Miw5
ICs4NzYsNyBAQCBJZGxBcnJheS5wcm90b3R5cGUudGVzdCA9IGZ1bmN0aW9uKCkKICAgICB9CiB9
OwogCi0vL0B9CiBJZGxBcnJheS5wcm90b3R5cGUuY29sbGFwc2VfcGFydGlhbHMgPSBmdW5jdGlv
bigpCi0vL0B7CiB7CiAgICAgY29uc3QgdGVzdGVkUGFydGlhbHMgPSBuZXcgTWFwKCk7CiAgICAg
dGhpcy5wYXJ0aWFscy5mb3JFYWNoKGZ1bmN0aW9uKHBhcnNlZF9pZGwpCkBAIC05NTUsOSArOTU3
LDcgQEAgSWRsQXJyYXkucHJvdG90eXBlLmNvbGxhcHNlX3BhcnRpYWxzID0gZnVuY3Rpb24oKQog
ICAgIHRoaXMucGFydGlhbHMgPSBbXTsKIH0KIAotLy9AfQogSWRsQXJyYXkucHJvdG90eXBlLmFz
c2VydF90eXBlX2lzID0gZnVuY3Rpb24odmFsdWUsIHR5cGUpCi0vL0B7CiB7CiAgICAgaWYgKHR5
cGUuaWRsVHlwZSBpbiB0aGlzLm1lbWJlcnMKICAgICAmJiB0aGlzLm1lbWJlcnNbdHlwZS5pZGxU
eXBlXSBpbnN0YW5jZW9mIElkbFR5cGVkZWYpIHsKQEAgLTEwMTcsNyArMTAxNyw3IEBAIElkbEFy
cmF5LnByb3RvdHlwZS5hc3NlcnRfdHlwZV9pcyA9IGZ1bmN0aW9uKHZhbHVlLCB0eXBlKQogICAg
ICAgICAgICAgLy8gTm90aGluZyB3ZSBjYW4gZG8uCiAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgIH0KLSAgICAgICAgdGhpcy5hc3NlcnRfdHlwZV9pcyh2YWx1ZVswXSwgdHlwZS5pZGxUeXBl
KTsKKyAgICAgICAgdGhpcy5hc3NlcnRfdHlwZV9pcyh2YWx1ZVswXSwgdHlwZS5pZGxUeXBlWzBd
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMTAzNywxMSArMTAzNywxMSBAQCBJZGxB
cnJheS5wcm90b3R5cGUuYXNzZXJ0X3R5cGVfaXMgPSBmdW5jdGlvbih2YWx1ZSwgdHlwZSkKICAg
ICAgICAgICAgIC8vIE5vdGhpbmcgd2UgY2FuIGRvLgogICAgICAgICAgICAgcmV0dXJuOwogICAg
ICAgICB9Ci0gICAgICAgIHRoaXMuYXNzZXJ0X3R5cGVfaXModmFsdWVbMF0sIHR5cGUuaWRsVHlw
ZSk7CisgICAgICAgIHRoaXMuYXNzZXJ0X3R5cGVfaXModmFsdWVbMF0sIHR5cGUuaWRsVHlwZVsw
XSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICB0eXBlID0gdHlwZS5pZGxUeXBlOwor
ICAgIHR5cGUgPSBBcnJheS5pc0FycmF5KHR5cGUuaWRsVHlwZSkgPyB0eXBlLmlkbFR5cGVbMF0g
OiB0eXBlLmlkbFR5cGU7CiAKICAgICBzd2l0Y2godHlwZSkKICAgICB7CkBAIC0xMTcxLDE3ICsx
MTcxLDE5IEBAIElkbEFycmF5LnByb3RvdHlwZS5hc3NlcnRfdHlwZV9pcyA9IGZ1bmN0aW9uKHZh
bHVlLCB0eXBlKQogICAgIHsKICAgICAgICAgLy8gVE9ETzogVGVzdCB3aGVuIHdlIGFjdHVhbGx5
IGhhdmUgc29tZXRoaW5nIHRvIHRlc3QgdGhpcyBvbgogICAgIH0KKyAgICBlbHNlIGlmICh0aGlz
Lm1lbWJlcnNbdHlwZV0gaW5zdGFuY2VvZiBJZGxDYWxsYmFjaykKKyAgICB7CisgICAgICAgIGFz
c2VydF9lcXVhbHModHlwZW9mIHZhbHVlLCAiZnVuY3Rpb24iKTsKKyAgICB9CiAgICAgZWxzZQog
ICAgIHsKLSAgICAgICAgdGhyb3cgbmV3IElkbEhhcm5lc3NFcnJvcigiVHlwZSAiICsgdHlwZSAr
ICIgaXNuJ3QgYW4gaW50ZXJmYWNlIG9yIGRpY3Rpb25hcnkiKTsKKyAgICAgICAgdGhyb3cgbmV3
IElkbEhhcm5lc3NFcnJvcigiVHlwZSAiICsgdHlwZSArICIgaXNuJ3QgYW4gaW50ZXJmYWNlLCBj
YWxsYmFjayBvciBkaWN0aW9uYXJ5Iik7CiAgICAgfQogfTsKLS8vQH0KIAogLy8vIElkbE9iamVj
dCAvLy8KIGZ1bmN0aW9uIElkbE9iamVjdCgpIHt9CiBJZGxPYmplY3QucHJvdG90eXBlLnRlc3Qg
PSBmdW5jdGlvbigpCi0vL0B7CiB7CiAgICAgLyoqCiAgICAgICogQnkgZGVmYXVsdCwgdGhpcyBk
b2VzIG5vdGhpbmcsIHNvIG5vIGFjdHVhbCB0ZXN0cyBhcmUgcnVuIGZvciBJZGxPYmplY3RzCkBA
IC0xMTg5LDkgKzExOTEsNyBAQCBJZGxPYmplY3QucHJvdG90eXBlLnRlc3QgPSBmdW5jdGlvbigp
CiAgICAgICovCiB9OwogCi0vL0B9CiBJZGxPYmplY3QucHJvdG90eXBlLmhhc19leHRlbmRlZF9h
dHRyaWJ1dGUgPSBmdW5jdGlvbihuYW1lKQotLy9AewogewogICAgIC8qKgogICAgICAqIFRoaXMg
aXMgb25seSBtZWFuaW5nZnVsIGZvciB0aGluZ3MgdGhhdCBzdXBwb3J0IGV4dGVuZGVkIGF0dHJp
YnV0ZXMsCkBAIC0xMjAzLDEyICsxMjAzLDEwIEBAIElkbE9iamVjdC5wcm90b3R5cGUuaGFzX2V4
dGVuZGVkX2F0dHJpYnV0ZSA9IGZ1bmN0aW9uKG5hbWUpCiAgICAgfSk7CiB9OwogCi0vL0B9CiAK
IC8vLyBJZGxEaWN0aW9uYXJ5IC8vLwogLy8gVXNlZCBmb3IgSWRsQXJyYXkucHJvdG90eXBlLmFz
c2VydF90eXBlX2lzCiBmdW5jdGlvbiBJZGxEaWN0aW9uYXJ5KG9iaikKLS8vQHsKIHsKICAgICAv
KioKICAgICAgKiBvYmogaXMgYW4gb2JqZWN0IHByb2R1Y2VkIGJ5IHRoZSBXZWJJRExQYXJzZXIu
anMgImRpY3Rpb25hcnkiCkBAIC0xMjMxLDcgKzEyMjksNiBAQCBmdW5jdGlvbiBJZGxEaWN0aW9u
YXJ5KG9iaikKICAgICB0aGlzLmJhc2UgPSBvYmouaW5oZXJpdGFuY2U7CiB9CiAKLS8vQH0KIElk
bERpY3Rpb25hcnkucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShJZGxPYmplY3QucHJvdG90eXBl
KTsKIAogSWRsRGljdGlvbmFyeS5wcm90b3R5cGUuZ2V0X2luaGVyaXRhbmNlX3N0YWNrID0gZnVu
Y3Rpb24oKSB7CkBAIC0xMjQwLDcgKzEyMzcsNiBAQCBJZGxEaWN0aW9uYXJ5LnByb3RvdHlwZS5n
ZXRfaW5oZXJpdGFuY2Vfc3RhY2sgPSBmdW5jdGlvbigpIHsKIAogLy8vIElkbEludGVyZmFjZSAv
Ly8KIGZ1bmN0aW9uIElkbEludGVyZmFjZShvYmosIGlzX2NhbGxiYWNrLCBpc19taXhpbikKLS8v
QHsKIHsKICAgICAvKioKICAgICAgKiBvYmogaXMgYW4gb2JqZWN0IHByb2R1Y2VkIGJ5IHRoZSBX
ZWJJRExQYXJzZXIuanMgImludGVyZmFjZSIgcHJvZHVjdGlvbi4KQEAgLTEyNjYsNyArMTI2Miw3
IEBAIGZ1bmN0aW9uIElkbEludGVyZmFjZShvYmosIGlzX2NhbGxiYWNrLCBpc19taXhpbikKICAg
ICB0aGlzLm1lbWJlcnMgPSBvYmoubWVtYmVycy5tYXAoZnVuY3Rpb24obSl7cmV0dXJuIG5ldyBJ
ZGxJbnRlcmZhY2VNZW1iZXIobSk7IH0pOwogICAgIGlmICh0aGlzLmhhc19leHRlbmRlZF9hdHRy
aWJ1dGUoIlVuZm9yZ2VhYmxlIikpIHsKICAgICAgICAgdGhpcy5tZW1iZXJzCi0gICAgICAgICAg
ICAuZmlsdGVyKGZ1bmN0aW9uKG0pIHsgcmV0dXJuICFtWyJzdGF0aWMiXSAmJiAobS50eXBlID09
ICJhdHRyaWJ1dGUiIHx8IG0udHlwZSA9PSAib3BlcmF0aW9uIik7IH0pCisgICAgICAgICAgICAu
ZmlsdGVyKGZ1bmN0aW9uKG0pIHsgcmV0dXJuIG0uc3BlY2lhbCAhPT0gInN0YXRpYyIgJiYgKG0u
dHlwZSA9PSAiYXR0cmlidXRlIiB8fCBtLnR5cGUgPT0gIm9wZXJhdGlvbiIpOyB9KQogICAgICAg
ICAgICAgLmZvckVhY2goZnVuY3Rpb24obSkgeyByZXR1cm4gbS5pc1VuZm9yZ2VhYmxlID0gdHJ1
ZTsgfSk7CiAgICAgfQogCkBAIC0xMjc5LDMwICsxMjc1LDIzIEBAIGZ1bmN0aW9uIElkbEludGVy
ZmFjZShvYmosIGlzX2NhbGxiYWNrLCBpc19taXhpbikKICAgICB0aGlzLl9pc19jYWxsYmFjayA9
IGlzX2NhbGxiYWNrOwogICAgIHRoaXMuX2lzX21peGluID0gaXNfbWl4aW47CiB9Ci0vL0B9CiBJ
ZGxJbnRlcmZhY2UucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShJZGxPYmplY3QucHJvdG90eXBl
KTsKIElkbEludGVyZmFjZS5wcm90b3R5cGUuaXNfY2FsbGJhY2sgPSBmdW5jdGlvbigpCi0vL0B7
CiB7CiAgICAgcmV0dXJuIHRoaXMuX2lzX2NhbGxiYWNrOwogfTsKLS8vQH0KIAogSWRsSW50ZXJm
YWNlLnByb3RvdHlwZS5pc19taXhpbiA9IGZ1bmN0aW9uKCkKLS8vQHsKIHsKICAgICByZXR1cm4g
dGhpcy5faXNfbWl4aW47CiB9OwotLy9AfQogCiBJZGxJbnRlcmZhY2UucHJvdG90eXBlLmhhc19j
b25zdGFudHMgPSBmdW5jdGlvbigpCi0vL0B7CiB7CiAgICAgcmV0dXJuIHRoaXMubWVtYmVycy5z
b21lKGZ1bmN0aW9uKG1lbWJlcikgewogICAgICAgICByZXR1cm4gbWVtYmVyLnR5cGUgPT09ICJj
b25zdCI7CiAgICAgfSk7CiB9OwotLy9AfQogCiBJZGxJbnRlcmZhY2UucHJvdG90eXBlLmdldF91
bnNjb3BhYmxlcyA9IGZ1bmN0aW9uKCkKIHsKQEAgLTEzMTIsMTMgKzEzMDEsNTMgQEAgSWRsSW50
ZXJmYWNlLnByb3RvdHlwZS5nZXRfdW5zY29wYWJsZXMgPSBmdW5jdGlvbigpCiB9OwogCiBJZGxJ
bnRlcmZhY2UucHJvdG90eXBlLmlzX2dsb2JhbCA9IGZ1bmN0aW9uKCkKLS8vQHsKIHsKICAgICBy
ZXR1cm4gdGhpcy5leHRBdHRycy5zb21lKGZ1bmN0aW9uKGF0dHJpYnV0ZSkgewogICAgICAgICBy
ZXR1cm4gYXR0cmlidXRlLm5hbWUgPT09ICJHbG9iYWwiOwogICAgIH0pOwogfTsKLS8vQH0KKwor
LyoqCisgKiBWYWx1ZSBvZiB0aGUgTGVnYWN5TmFtZXNwYWNlIGV4dGVuZGVkIGF0dHJpYnV0ZSwg
aWYgYW55LgorICoKKyAqIGh0dHBzOi8vaGV5Y2FtLmdpdGh1Yi5pby93ZWJpZGwvI0xlZ2FjeU5h
bWVzcGFjZQorICovCitJZGxJbnRlcmZhY2UucHJvdG90eXBlLmdldF9sZWdhY3lfbmFtZXNwYWNl
ID0gZnVuY3Rpb24oKQoreworICAgIHZhciBsZWdhY3lOYW1lc3BhY2UgPSB0aGlzLmV4dEF0dHJz
LmZpbmQoZnVuY3Rpb24oYXR0cmlidXRlKSB7CisgICAgICAgIHJldHVybiBhdHRyaWJ1dGUubmFt
ZSA9PT0gIkxlZ2FjeU5hbWVzcGFjZSI7CisgICAgfSk7CisgICAgcmV0dXJuIGxlZ2FjeU5hbWVz
cGFjZSA/IGxlZ2FjeU5hbWVzcGFjZS5yaHMudmFsdWUgOiB1bmRlZmluZWQ7Cit9OworCitJZGxJ
bnRlcmZhY2UucHJvdG90eXBlLmdldF9pbnRlcmZhY2Vfb2JqZWN0X293bmVyID0gZnVuY3Rpb24o
KQoreworICAgIHZhciBsZWdhY3lOYW1lc3BhY2UgPSB0aGlzLmdldF9sZWdhY3lfbmFtZXNwYWNl
KCk7CisgICAgcmV0dXJuIGxlZ2FjeU5hbWVzcGFjZSA/IHNlbGZbbGVnYWN5TmFtZXNwYWNlXSA6
IHNlbGY7Cit9OworCitJZGxJbnRlcmZhY2UucHJvdG90eXBlLmFzc2VydF9pbnRlcmZhY2Vfb2Jq
ZWN0X2V4aXN0cyA9IGZ1bmN0aW9uKCkKK3sKKyAgICB2YXIgb3duZXIgPSB0aGlzLmdldF9sZWdh
Y3lfbmFtZXNwYWNlKCkgfHwgInNlbGYiOworICAgIGFzc2VydF9vd25fcHJvcGVydHkoc2VsZltv
d25lcl0sIHRoaXMubmFtZSwgb3duZXIgKyAiIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICIg
KyBmb3JtYXRfdmFsdWUodGhpcy5uYW1lKSk7Cit9OworCitJZGxJbnRlcmZhY2UucHJvdG90eXBl
LmdldF9pbnRlcmZhY2Vfb2JqZWN0ID0gZnVuY3Rpb24oKSB7CisgICAgaWYgKHRoaXMuaGFzX2V4
dGVuZGVkX2F0dHJpYnV0ZSgiTm9JbnRlcmZhY2VPYmplY3QiKSkgeworICAgICAgICB0aHJvdyBu
ZXcgSWRsSGFybmVzc0Vycm9yKHRoaXMubmFtZSArICIgaGFzIG5vIGludGVyZmFjZSBvYmplY3Qg
ZHVlIHRvIE5vSW50ZXJmYWNlT2JqZWN0Iik7CisgICAgfQorCisgICAgcmV0dXJuIHRoaXMuZ2V0
X2ludGVyZmFjZV9vYmplY3Rfb3duZXIoKVt0aGlzLm5hbWVdOworfTsKKworSWRsSW50ZXJmYWNl
LnByb3RvdHlwZS5nZXRfcXVhbGlmaWVkX25hbWUgPSBmdW5jdGlvbigpIHsKKyAgICAvLyBodHRw
czovL2hleWNhbS5naXRodWIuaW8vd2ViaWRsLyNxdWFsaWZpZWQtbmFtZQorICAgIHZhciBsZWdh
Y3lOYW1lc3BhY2UgPSB0aGlzLmdldF9sZWdhY3lfbmFtZXNwYWNlKCk7CisgICAgaWYgKGxlZ2Fj
eU5hbWVzcGFjZSkgeworICAgICAgICByZXR1cm4gbGVnYWN5TmFtZXNwYWNlICsgIi4iICsgdGhp
cy5uYW1lOworICAgIH0KKyAgICByZXR1cm4gdGhpcy5uYW1lOworfTsKIAogSWRsSW50ZXJmYWNl
LnByb3RvdHlwZS5oYXNfdG9fanNvbl9yZWd1bGFyX29wZXJhdGlvbiA9IGZ1bmN0aW9uKCkgewog
ICAgIHJldHVybiB0aGlzLm1lbWJlcnMuc29tZShmdW5jdGlvbihtKSB7CkBAIC0xMzg0LDcgKzE0
MTMsNyBAQCBJZGxJbnRlcmZhY2UucHJvdG90eXBlLmRlZmF1bHRfdG9fanNvbl9vcGVyYXRpb24g
PSBmdW5jdGlvbihjYWxsYmFjaykgewogICAgICAgICBpZiAoSS5oYXNfZGVmYXVsdF90b19qc29u
X3JlZ3VsYXJfb3BlcmF0aW9uKCkpIHsKICAgICAgICAgICAgIGlzRGVmYXVsdCA9IHRydWU7CiAg
ICAgICAgICAgICBJLm1lbWJlcnMuZm9yRWFjaChmdW5jdGlvbihtKSB7Ci0gICAgICAgICAgICAg
ICAgaWYgKCFtLnN0YXRpYyAmJiBtLnR5cGUgPT0gImF0dHJpYnV0ZSIgJiYgSS5hcnJheS5pc19q
c29uX3R5cGUobS5pZGxUeXBlKSkgeworICAgICAgICAgICAgICAgIGlmIChtLnNwZWNpYWwgIT09
ICJzdGF0aWMiICYmIG0udHlwZSA9PSAiYXR0cmlidXRlIiAmJiBJLmFycmF5LmlzX2pzb25fdHlw
ZShtLmlkbFR5cGUpKSB7CiAgICAgICAgICAgICAgICAgICAgIG1hcC5zZXQobS5uYW1lLCBtLmlk
bFR5cGUpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0pOwpAQCAtMTQ0Niw3ICsx
NDc1LDYgQEAgZnVuY3Rpb24gX3RyYXZlcnNlX2luaGVyaXRlZF9hbmRfY29uc2VxdWVudGlhbF9p
bnRlcmZhY2VzKHN0YWNrLCBjYWxsYmFjaykgewogfQogCiBJZGxJbnRlcmZhY2UucHJvdG90eXBl
LnRlc3QgPSBmdW5jdGlvbigpCi0vL0B7CiB7CiAgICAgaWYgKHRoaXMuaGFzX2V4dGVuZGVkX2F0
dHJpYnV0ZSgiTm9JbnRlcmZhY2VPYmplY3QiKSB8fCB0aGlzLmlzX21peGluKCkpCiAgICAgewpA
QCAtMTQ3OCwxMCArMTUwNiwxOSBAQCBJZGxJbnRlcmZhY2UucHJvdG90eXBlLnRlc3QgPSBmdW5j
dGlvbigpCiAgICAgLy8gaW50ZXJmYWNlIGFyZSBzdGlsbCB0ZXN0ZWQuCiAgICAgdGhpcy50ZXN0
X21lbWJlcnMoKTsKIH07Ci0vL0B9CisKKy8vIFRoaXMgc3VwcG9ydHMgYm90aCBDb25zdHJ1Y3Rv
ciBleHRlbmRlZCBhdHRyaWJ1dGVzIGFuZCBjb25zdHJ1Y3RvcgorLy8gb3BlcmF0aW9ucyB1bnRp
bCBhbGwgaWRsIGZyYWdtZW50cyBoYXZlIGJlZW4gdXBkYXRlZC4KK0lkbEludGVyZmFjZS5wcm90
b3R5cGUuY29uc3RydWN0b3JzID0gZnVuY3Rpb24oKQoreworICAgIHZhciBleHRlbmRlZEF0dHJp
YnV0ZXMgPSB0aGlzLmV4dEF0dHJzCisgICAgICAgIC5maWx0ZXIoZnVuY3Rpb24oYXR0cikgeyBy
ZXR1cm4gYXR0ci5uYW1lID09ICJDb25zdHJ1Y3RvciI7IH0pOworICAgIHZhciBvcGVyYXRpb25z
ID0gdGhpcy5tZW1iZXJzCisgICAgICAgIC5maWx0ZXIoZnVuY3Rpb24obSkgeyByZXR1cm4gbS50
eXBlID09ICJjb25zdHJ1Y3RvciI7IH0pOworICAgIHJldHVybiBleHRlbmRlZEF0dHJpYnV0ZXMu
Y29uY2F0KG9wZXJhdGlvbnMpOworfQogCiBJZGxJbnRlcmZhY2UucHJvdG90eXBlLnRlc3Rfc2Vs
ZiA9IGZ1bmN0aW9uKCkKLS8vQHsKIHsKICAgICBzdWJzZXRUZXN0QnlLZXkodGhpcy5uYW1lLCB0
ZXN0LCBmdW5jdGlvbigpCiAgICAgewpAQCAtMTUwMyw5ICsxNTQwLDggQEAgSWRsSW50ZXJmYWNl
LnByb3RvdHlwZS50ZXN0X3NlbGYgPSBmdW5jdGlvbigpCiAKICAgICAgICAgLy8gVE9ETzogU2hv
dWxkIHdlIHRlc3QgaGVyZSB0aGF0IHRoZSBwcm9wZXJ0eSBpcyBhY3R1YWxseSB3cml0YWJsZQog
ICAgICAgICAvLyBldGMuLCBvciB0cnVzdCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I/Ci0gICAg
ICAgIGFzc2VydF9vd25fcHJvcGVydHkoc2VsZiwgdGhpcy5uYW1lLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICJzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICIgKyBmb3JtYXRf
dmFsdWUodGhpcy5uYW1lKSk7Ci0gICAgICAgIHZhciBkZXNjID0gT2JqZWN0LmdldE93blByb3Bl
cnR5RGVzY3JpcHRvcihzZWxmLCB0aGlzLm5hbWUpOworICAgICAgICB0aGlzLmFzc2VydF9pbnRl
cmZhY2Vfb2JqZWN0X2V4aXN0cygpOworICAgICAgICB2YXIgZGVzYyA9IE9iamVjdC5nZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3IodGhpcy5nZXRfaW50ZXJmYWNlX29iamVjdF9vd25lcigpLCB0aGlz
Lm5hbWUpOwogICAgICAgICBhc3NlcnRfZmFsc2UoImdldCIgaW4gZGVzYywgInNlbGYncyBwcm9w
ZXJ0eSAiICsgZm9ybWF0X3ZhbHVlKHRoaXMubmFtZSkgKyAiIHNob3VsZCBub3QgaGF2ZSBhIGdl
dHRlciIpOwogICAgICAgICBhc3NlcnRfZmFsc2UoInNldCIgaW4gZGVzYywgInNlbGYncyBwcm9w
ZXJ0eSAiICsgZm9ybWF0X3ZhbHVlKHRoaXMubmFtZSkgKyAiIHNob3VsZCBub3QgaGF2ZSBhIHNl
dHRlciIpOwogICAgICAgICBhc3NlcnRfdHJ1ZShkZXNjLndyaXRhYmxlLCAic2VsZidzIHByb3Bl
cnR5ICIgKyBmb3JtYXRfdmFsdWUodGhpcy5uYW1lKSArICIgc2hvdWxkIGJlIHdyaXRhYmxlIik7
CkBAIC0xNTE1LDcgKzE1NTEsNyBAQCBJZGxJbnRlcmZhY2UucHJvdG90eXBlLnRlc3Rfc2VsZiA9
IGZ1bmN0aW9uKCkKICAgICAgICAgaWYgKHRoaXMuaXNfY2FsbGJhY2soKSkgewogICAgICAgICAg
ICAgLy8gIlRoZSBpbnRlcm5hbCBbW1Byb3RvdHlwZV1dIHByb3BlcnR5IG9mIGFuIGludGVyZmFj
ZSBvYmplY3QgZm9yCiAgICAgICAgICAgICAvLyBhIGNhbGxiYWNrIGludGVyZmFjZSBtdXN0IGJl
IHRoZSBGdW5jdGlvbi5wcm90b3R5cGUgb2JqZWN0LiIKLSAgICAgICAgICAgIGFzc2VydF9lcXVh
bHMoT2JqZWN0LmdldFByb3RvdHlwZU9mKHNlbGZbdGhpcy5uYW1lXSksIEZ1bmN0aW9uLnByb3Rv
dHlwZSwKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoT2JqZWN0LmdldFByb3RvdHlwZU9mKHRo
aXMuZ2V0X2ludGVyZmFjZV9vYmplY3QoKSksIEZ1bmN0aW9uLnByb3RvdHlwZSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgInByb3RvdHlwZSBvZiBzZWxmJ3MgcHJvcGVydHkgIiArIGZvcm1h
dF92YWx1ZSh0aGlzLm5hbWUpICsgIiBpcyBub3QgT2JqZWN0LnByb3RvdHlwZSIpOwogCiAgICAg
ICAgICAgICByZXR1cm47CkBAIC0xNTQ1LDI0ICsxNTgxLDE5IEBAIElkbEludGVyZmFjZS5wcm90
b3R5cGUudGVzdF9zZWxmID0gZnVuY3Rpb24oKQogICAgICAgICAvLyBFUzYgKHJldiAzMCkgMTku
MS4zLjY6CiAgICAgICAgIC8vICJFbHNlLCBpZiBPIGhhcyBhIFtbQ2FsbF1dIGludGVybmFsIG1l
dGhvZCwgdGhlbiBsZXQgYnVpbHRpblRhZyBiZQogICAgICAgICAvLyAiRnVuY3Rpb24iLiIKLSAg
ICAgICAgYXNzZXJ0X2NsYXNzX3N0cmluZyhzZWxmW3RoaXMubmFtZV0sICJGdW5jdGlvbiIsICJj
bGFzcyBzdHJpbmcgb2YgIiArIHRoaXMubmFtZSk7CisgICAgICAgIGFzc2VydF9jbGFzc19zdHJp
bmcodGhpcy5nZXRfaW50ZXJmYWNlX29iamVjdCgpLCAiRnVuY3Rpb24iLCAiY2xhc3Mgc3RyaW5n
IG9mICIgKyB0aGlzLm5hbWUpOwogCiAgICAgICAgIC8vICJUaGUgW1tQcm90b3R5cGVdXSBpbnRl
cm5hbCBwcm9wZXJ0eSBvZiBhbiBpbnRlcmZhY2Ugb2JqZWN0IGZvciBhCiAgICAgICAgIC8vIG5v
bi1jYWxsYmFjayBpbnRlcmZhY2UgaXMgZGV0ZXJtaW5lZCBhcyBmb2xsb3dzOiIKLSAgICAgICAg
dmFyIHByb3RvdHlwZSA9IE9iamVjdC5nZXRQcm90b3R5cGVPZihzZWxmW3RoaXMubmFtZV0pOwor
ICAgICAgICB2YXIgcHJvdG90eXBlID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKHRoaXMuZ2V0X2lu
dGVyZmFjZV9vYmplY3QoKSk7CiAgICAgICAgIGlmICh0aGlzLmJhc2UpIHsKICAgICAgICAgICAg
IC8vICIqIElmIHRoZSBpbnRlcmZhY2UgaW5oZXJpdHMgZnJvbSBzb21lIG90aGVyIGludGVyZmFj
ZSwgdGhlCiAgICAgICAgICAgICAvLyAgICB2YWx1ZSBvZiBbW1Byb3RvdHlwZV1dIGlzIHRoZSBp
bnRlcmZhY2Ugb2JqZWN0IGZvciB0aGF0IG90aGVyCiAgICAgICAgICAgICAvLyAgICBpbnRlcmZh
Y2UuIgotICAgICAgICAgICAgdmFyIGhhc19pbnRlcmZhY2Vfb2JqZWN0ID0KLSAgICAgICAgICAg
ICAgICAhdGhpcy5hcnJheQotICAgICAgICAgICAgICAgICAgICAgLm1lbWJlcnNbdGhpcy5iYXNl
XQotICAgICAgICAgICAgICAgICAgICAgLmhhc19leHRlbmRlZF9hdHRyaWJ1dGUoIk5vSW50ZXJm
YWNlT2JqZWN0Iik7Ci0gICAgICAgICAgICBpZiAoaGFzX2ludGVyZmFjZV9vYmplY3QpIHsKLSAg
ICAgICAgICAgICAgICBhc3NlcnRfb3duX3Byb3BlcnR5KHNlbGYsIHRoaXMuYmFzZSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzaG91bGQgaW5oZXJpdCBmcm9tICcgKyB0
aGlzLmJhc2UgKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJywgYnV0IHNl
bGYgaGFzIG5vIHN1Y2ggcHJvcGVydHknKTsKLSAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxz
KHByb3RvdHlwZSwgc2VsZlt0aGlzLmJhc2VdLAorICAgICAgICAgICAgdmFyIGluaGVyaXRlZF9p
bnRlcmZhY2UgPSB0aGlzLmFycmF5Lm1lbWJlcnNbdGhpcy5iYXNlXTsKKyAgICAgICAgICAgIGlm
ICghaW5oZXJpdGVkX2ludGVyZmFjZS5oYXNfZXh0ZW5kZWRfYXR0cmlidXRlKCJOb0ludGVyZmFj
ZU9iamVjdCIpKSB7CisgICAgICAgICAgICAgICAgaW5oZXJpdGVkX2ludGVyZmFjZS5hc3NlcnRf
aW50ZXJmYWNlX29iamVjdF9leGlzdHMoKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxz
KHByb3RvdHlwZSwgaW5oZXJpdGVkX2ludGVyZmFjZS5nZXRfaW50ZXJmYWNlX29iamVjdCgpLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Byb3RvdHlwZSBvZiAnICsgdGhpcy5uYW1l
ICsgJyBpcyBub3QgJyArCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmJhc2Up
OwogICAgICAgICAgICAgfQpAQCAtMTU3NCwxOCArMTYwNSwxOSBAQCBJZGxJbnRlcmZhY2UucHJv
dG90eXBlLnRlc3Rfc2VsZiA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgICAgICAgICAgICAgICAg
InByb3RvdHlwZSBvZiBzZWxmJ3MgcHJvcGVydHkgIiArIGZvcm1hdF92YWx1ZSh0aGlzLm5hbWUp
ICsgIiBpcyBub3QgRnVuY3Rpb24ucHJvdG90eXBlIik7CiAgICAgICAgIH0KIAotICAgICAgICBp
ZiAoIXRoaXMuaGFzX2V4dGVuZGVkX2F0dHJpYnV0ZSgiQ29uc3RydWN0b3IiKSkgeworICAgICAg
ICBpZiAoIXRoaXMuY29uc3RydWN0b3JzKCkubGVuZ3RoKSB7CiAgICAgICAgICAgICAvLyAiVGhl
IGludGVybmFsIFtbQ2FsbF1dIG1ldGhvZCBvZiB0aGUgaW50ZXJmYWNlIG9iamVjdCBiZWhhdmVz
IGFzCiAgICAgICAgICAgICAvLyBmb2xsb3dzIC4gLiAuCiAgICAgICAgICAgICAvLwogICAgICAg
ICAgICAgLy8gIklmIEkgd2FzIG5vdCBkZWNsYXJlZCB3aXRoIGEgW0NvbnN0cnVjdG9yXSBleHRl
bmRlZCBhdHRyaWJ1dGUsCiAgICAgICAgICAgICAvLyB0aGVuIHRocm93IGEgVHlwZUVycm9yLiIK
KyAgICAgICAgICAgIHZhciBpbnRlcmZhY2Vfb2JqZWN0ID0gdGhpcy5nZXRfaW50ZXJmYWNlX29i
amVjdCgpOwogICAgICAgICAgICAgYXNzZXJ0X3Rocm93cyhuZXcgVHlwZUVycm9yKCksIGZ1bmN0
aW9uKCkgewotICAgICAgICAgICAgICAgIHNlbGZbdGhpcy5uYW1lXSgpOwotICAgICAgICAgICAg
fS5iaW5kKHRoaXMpLCAiaW50ZXJmYWNlIG9iamVjdCBkaWRuJ3QgdGhyb3cgVHlwZUVycm9yIHdo
ZW4gY2FsbGVkIGFzIGEgZnVuY3Rpb24iKTsKKyAgICAgICAgICAgICAgICBpbnRlcmZhY2Vfb2Jq
ZWN0KCk7CisgICAgICAgICAgICB9LCAiaW50ZXJmYWNlIG9iamVjdCBkaWRuJ3QgdGhyb3cgVHlw
ZUVycm9yIHdoZW4gY2FsbGVkIGFzIGEgZnVuY3Rpb24iKTsKICAgICAgICAgICAgIGFzc2VydF90
aHJvd3MobmV3IFR5cGVFcnJvcigpLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICBuZXcg
c2VsZlt0aGlzLm5hbWVdKCk7Ci0gICAgICAgICAgICB9LmJpbmQodGhpcyksICJpbnRlcmZhY2Ug
b2JqZWN0IGRpZG4ndCB0aHJvdyBUeXBlRXJyb3Igd2hlbiBjYWxsZWQgYXMgYSBjb25zdHJ1Y3Rv
ciIpOworICAgICAgICAgICAgICAgIG5ldyBpbnRlcmZhY2Vfb2JqZWN0KCk7CisgICAgICAgICAg
ICB9LCAiaW50ZXJmYWNlIG9iamVjdCBkaWRuJ3QgdGhyb3cgVHlwZUVycm9yIHdoZW4gY2FsbGVk
IGFzIGEgY29uc3RydWN0b3IiKTsKICAgICAgICAgfQogICAgIH0uYmluZCh0aGlzKSwgdGhpcy5u
YW1lICsgIiBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ug
b2JqZWN0Iik7CiAKQEAgLTE1OTQsMjUgKzE2MjYsMjMgQEAgSWRsSW50ZXJmYWNlLnByb3RvdHlw
ZS50ZXN0X3NlbGYgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICAvLyBUaGlzIGZ1bmN0aW9uIHRl
c3RzIFdlYklETCBhcyBvZiAyMDE0LTEwLTI1LgogICAgICAgICAgICAgLy8gaHR0cHM6Ly9oZXlj
YW0uZ2l0aHViLmlvL3dlYmlkbC8jZXMtaW50ZXJmYWNlLWNhbGwKIAotICAgICAgICAgICAgYXNz
ZXJ0X293bl9wcm9wZXJ0eShzZWxmLCB0aGlzLm5hbWUsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICIgKyBmb3JtYXRfdmFs
dWUodGhpcy5uYW1lKSk7CisgICAgICAgICAgICB0aGlzLmFzc2VydF9pbnRlcmZhY2Vfb2JqZWN0
X2V4aXN0cygpOwogCiAgICAgICAgICAgICAvLyAiSW50ZXJmYWNlIG9iamVjdHMgZm9yIG5vbi1j
YWxsYmFjayBpbnRlcmZhY2VzIE1VU1QgaGF2ZSBhCiAgICAgICAgICAgICAvLyBwcm9wZXJ0eSBu
YW1lZCDigJxsZW5ndGjigJ0gd2l0aCBhdHRyaWJ1dGVzIHsgW1tXcml0YWJsZV1dOiBmYWxzZSwK
ICAgICAgICAgICAgIC8vIFtbRW51bWVyYWJsZV1dOiBmYWxzZSwgW1tDb25maWd1cmFibGVdXTog
dHJ1ZSB9IHdob3NlIHZhbHVlIGlzCiAgICAgICAgICAgICAvLyBhIE51bWJlci4iCi0gICAgICAg
ICAgICBhc3NlcnRfb3duX3Byb3BlcnR5KHNlbGZbdGhpcy5uYW1lXSwgImxlbmd0aCIpOwotICAg
ICAgICAgICAgdmFyIGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHNlbGZb
dGhpcy5uYW1lXSwgImxlbmd0aCIpOworICAgICAgICAgICAgYXNzZXJ0X293bl9wcm9wZXJ0eSh0
aGlzLmdldF9pbnRlcmZhY2Vfb2JqZWN0KCksICJsZW5ndGgiKTsKKyAgICAgICAgICAgIHZhciBk
ZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0aGlzLmdldF9pbnRlcmZhY2Vf
b2JqZWN0KCksICJsZW5ndGgiKTsKICAgICAgICAgICAgIGFzc2VydF9mYWxzZSgiZ2V0IiBpbiBk
ZXNjLCB0aGlzLm5hbWUgKyAiLmxlbmd0aCBzaG91bGQgbm90IGhhdmUgYSBnZXR0ZXIiKTsKICAg
ICAgICAgICAgIGFzc2VydF9mYWxzZSgic2V0IiBpbiBkZXNjLCB0aGlzLm5hbWUgKyAiLmxlbmd0
aCBzaG91bGQgbm90IGhhdmUgYSBzZXR0ZXIiKTsKICAgICAgICAgICAgIGFzc2VydF9mYWxzZShk
ZXNjLndyaXRhYmxlLCB0aGlzLm5hbWUgKyAiLmxlbmd0aCBzaG91bGQgbm90IGJlIHdyaXRhYmxl
Iik7CiAgICAgICAgICAgICBhc3NlcnRfZmFsc2UoZGVzYy5lbnVtZXJhYmxlLCB0aGlzLm5hbWUg
KyAiLmxlbmd0aCBzaG91bGQgbm90IGJlIGVudW1lcmFibGUiKTsKICAgICAgICAgICAgIGFzc2Vy
dF90cnVlKGRlc2MuY29uZmlndXJhYmxlLCB0aGlzLm5hbWUgKyAiLmxlbmd0aCBzaG91bGQgYmUg
Y29uZmlndXJhYmxlIik7CiAKLSAgICAgICAgICAgIHZhciBjb25zdHJ1Y3RvcnMgPSB0aGlzLmV4
dEF0dHJzCi0gICAgICAgICAgICAgICAgLmZpbHRlcihmdW5jdGlvbihhdHRyKSB7IHJldHVybiBh
dHRyLm5hbWUgPT0gIkNvbnN0cnVjdG9yIjsgfSk7CisgICAgICAgICAgICB2YXIgY29uc3RydWN0
b3JzID0gdGhpcy5jb25zdHJ1Y3RvcnMoKTsKICAgICAgICAgICAgIHZhciBleHBlY3RlZF9sZW5n
dGggPSBtaW5PdmVybG9hZExlbmd0aChjb25zdHJ1Y3RvcnMpOwotICAgICAgICAgICAgYXNzZXJ0
X2VxdWFscyhzZWxmW3RoaXMubmFtZV0ubGVuZ3RoLCBleHBlY3RlZF9sZW5ndGgsICJ3cm9uZyB2
YWx1ZSBmb3IgIiArIHRoaXMubmFtZSArICIubGVuZ3RoIik7CisgICAgICAgICAgICBhc3NlcnRf
ZXF1YWxzKHRoaXMuZ2V0X2ludGVyZmFjZV9vYmplY3QoKS5sZW5ndGgsIGV4cGVjdGVkX2xlbmd0
aCwgIndyb25nIHZhbHVlIGZvciAiICsgdGhpcy5uYW1lICsgIi5sZW5ndGgiKTsKICAgICAgICAg
fS5iaW5kKHRoaXMpLCB0aGlzLm5hbWUgKyAiIGludGVyZmFjZSBvYmplY3QgbGVuZ3RoIik7CiAg
ICAgfQogCkBAIC0xNjIxLDIyICsxNjUxLDIxIEBAIElkbEludGVyZmFjZS5wcm90b3R5cGUudGVz
dF9zZWxmID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgLy8gVGhpcyBmdW5jdGlvbiB0ZXN0cyBX
ZWJJREwgYXMgb2YgMjAxNS0xMS0xNy4KICAgICAgICAgICAgIC8vIGh0dHBzOi8vaGV5Y2FtLmdp
dGh1Yi5pby93ZWJpZGwvI2ludGVyZmFjZS1vYmplY3QKIAotICAgICAgICAgICAgYXNzZXJ0X293
bl9wcm9wZXJ0eShzZWxmLCB0aGlzLm5hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICIgKyBmb3JtYXRfdmFsdWUodGhp
cy5uYW1lKSk7CisgICAgICAgICAgICB0aGlzLmFzc2VydF9pbnRlcmZhY2Vfb2JqZWN0X2V4aXN0
cygpOwogCiAgICAgICAgICAgICAvLyAiQWxsIGludGVyZmFjZSBvYmplY3RzIG11c3QgaGF2ZSBh
IHByb3BlcnR5IG5hbWVkIOKAnG5hbWXigJ0gd2l0aAogICAgICAgICAgICAgLy8gYXR0cmlidXRl
cyB7IFtbV3JpdGFibGVdXTogZmFsc2UsIFtbRW51bWVyYWJsZV1dOiBmYWxzZSwKICAgICAgICAg
ICAgIC8vIFtbQ29uZmlndXJhYmxlXV06IHRydWUgfSB3aG9zZSB2YWx1ZSBpcyB0aGUgaWRlbnRp
ZmllciBvZiB0aGUKICAgICAgICAgICAgIC8vIGNvcnJlc3BvbmRpbmcgaW50ZXJmYWNlLiIKIAot
ICAgICAgICAgICAgYXNzZXJ0X293bl9wcm9wZXJ0eShzZWxmW3RoaXMubmFtZV0sICJuYW1lIik7
Ci0gICAgICAgICAgICB2YXIgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Io
c2VsZlt0aGlzLm5hbWVdLCAibmFtZSIpOworICAgICAgICAgICAgYXNzZXJ0X293bl9wcm9wZXJ0
eSh0aGlzLmdldF9pbnRlcmZhY2Vfb2JqZWN0KCksICJuYW1lIik7CisgICAgICAgICAgICB2YXIg
ZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodGhpcy5nZXRfaW50ZXJmYWNl
X29iamVjdCgpLCAibmFtZSIpOwogICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKCJnZXQiIGluIGRl
c2MsIHRoaXMubmFtZSArICIubmFtZSBzaG91bGQgbm90IGhhdmUgYSBnZXR0ZXIiKTsKICAgICAg
ICAgICAgIGFzc2VydF9mYWxzZSgic2V0IiBpbiBkZXNjLCB0aGlzLm5hbWUgKyAiLm5hbWUgc2hv
dWxkIG5vdCBoYXZlIGEgc2V0dGVyIik7CiAgICAgICAgICAgICBhc3NlcnRfZmFsc2UoZGVzYy53
cml0YWJsZSwgdGhpcy5uYW1lICsgIi5uYW1lIHNob3VsZCBub3QgYmUgd3JpdGFibGUiKTsKICAg
ICAgICAgICAgIGFzc2VydF9mYWxzZShkZXNjLmVudW1lcmFibGUsIHRoaXMubmFtZSArICIubmFt
ZSBzaG91bGQgbm90IGJlIGVudW1lcmFibGUiKTsKICAgICAgICAgICAgIGFzc2VydF90cnVlKGRl
c2MuY29uZmlndXJhYmxlLCB0aGlzLm5hbWUgKyAiLm5hbWUgc2hvdWxkIGJlIGNvbmZpZ3VyYWJs
ZSIpOwotICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzZWxmW3RoaXMubmFtZV0ubmFtZSwgdGhp
cy5uYW1lLCAid3JvbmcgdmFsdWUgZm9yICIgKyB0aGlzLm5hbWUgKyAiLm5hbWUiKTsKKyAgICAg
ICAgICAgIGFzc2VydF9lcXVhbHModGhpcy5nZXRfaW50ZXJmYWNlX29iamVjdCgpLm5hbWUsIHRo
aXMubmFtZSwgIndyb25nIHZhbHVlIGZvciAiICsgdGhpcy5uYW1lICsgIi5uYW1lIik7CiAgICAg
ICAgIH0uYmluZCh0aGlzKSwgdGhpcy5uYW1lICsgIiBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUiKTsK
ICAgICB9CiAKQEAgLTE2NjUsNyArMTY5NCw3IEBAIElkbEludGVyZmFjZS5wcm90b3R5cGUudGVz
dF9zZWxmID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgfQogICAgICAgICAgICAgdmFyIGFsaWFz
ZXM7CiAgICAgICAgICAgICBpZiAocmhzLnR5cGUgPT09ICJpZGVudGlmaWVyLWxpc3QiKSB7Ci0g
ICAgICAgICAgICAgICAgYWxpYXNlcyA9IHJocy52YWx1ZTsKKyAgICAgICAgICAgICAgICBhbGlh
c2VzID0gcmhzLnZhbHVlLm1hcChpZCA9PiBpZC52YWx1ZSk7CiAgICAgICAgICAgICB9IGVsc2Ug
eyAvLyByaHMudHlwZSA9PT0gaWRlbnRpZmllcgogICAgICAgICAgICAgICAgIGFsaWFzZXMgPSBb
IHJocy52YWx1ZSBdOwogICAgICAgICAgICAgfQpAQCAtMTY3NSw5ICsxNzA0LDkgQEAgSWRsSW50
ZXJmYWNlLnByb3RvdHlwZS50ZXN0X3NlbGYgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICBpZiAo
ZXhwb3NlZF9pbihleHBvc3VyZV9zZXQodGhpcywgdGhpcy5leHBvc3VyZVNldCkpICYmICdkb2N1
bWVudCcgaW4gc2VsZikgewogICAgICAgICAgICAgICAgIGZvciAoYWxpYXMgb2YgYWxpYXNlcykg
ewogICAgICAgICAgICAgICAgICAgICBhc3NlcnRfdHJ1ZShhbGlhcyBpbiBzZWxmLCBhbGlhcyAr
ICIgc2hvdWxkIGV4aXN0Iik7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Vs
ZlthbGlhc10sIHNlbGZbdGhpcy5uYW1lXSwgInNlbGYuIiArIGFsaWFzICsgIiBzaG91bGQgYmUg
dGhlIHNhbWUgdmFsdWUgYXMgc2VsZi4iICsgdGhpcy5uYW1lKTsKKyAgICAgICAgICAgICAgICAg
ICAgYXNzZXJ0X2VxdWFscyhzZWxmW2FsaWFzXSwgdGhpcy5nZXRfaW50ZXJmYWNlX29iamVjdCgp
LCAic2VsZi4iICsgYWxpYXMgKyAiIHNob3VsZCBiZSB0aGUgc2FtZSB2YWx1ZSBhcyBzZWxmLiIg
KyB0aGlzLmdldF9xdWFsaWZpZWRfbmFtZSgpKTsKICAgICAgICAgICAgICAgICAgICAgdmFyIGRl
c2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHNlbGYsIGFsaWFzKTsKLSAgICAg
ICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhkZXNjLnZhbHVlLCBzZWxmW3RoaXMubmFtZV0s
ICJ3cm9uZyB2YWx1ZSBpbiAiICsgYWxpYXMgKyAiIHByb3BlcnR5IGRlc2NyaXB0b3IiKTsKKyAg
ICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhkZXNjLnZhbHVlLCB0aGlzLmdldF9pbnRl
cmZhY2Vfb2JqZWN0KCksICJ3cm9uZyB2YWx1ZSBpbiAiICsgYWxpYXMgKyAiIHByb3BlcnR5IGRl
c2NyaXB0b3IiKTsKICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X3RydWUoZGVzYy53cml0YWJs
ZSwgYWxpYXMgKyAiIHNob3VsZCBiZSB3cml0YWJsZSIpOwogICAgICAgICAgICAgICAgICAgICBh
c3NlcnRfZmFsc2UoZGVzYy5lbnVtZXJhYmxlLCBhbGlhcyArICIgc2hvdWxkIG5vdCBiZSBlbnVt
ZXJhYmxlIik7CiAgICAgICAgICAgICAgICAgICAgIGFzc2VydF90cnVlKGRlc2MuY29uZmlndXJh
YmxlLCBhbGlhcyArICIgc2hvdWxkIGJlIGNvbmZpZ3VyYWJsZSIpOwpAQCAtMTY5Miw3ICsxNzIx
LDEyMiBAQCBJZGxJbnRlcmZhY2UucHJvdG90eXBlLnRlc3Rfc2VsZiA9IGZ1bmN0aW9uKCkKIAog
ICAgICAgICB9LmJpbmQodGhpcyksIHRoaXMubmFtZSArICIgaW50ZXJmYWNlOiBsZWdhY3kgd2lu
ZG93IGFsaWFzIik7CiAgICAgfQotICAgIC8vIFRPRE86IFRlc3QgbmFtZWQgY29uc3RydWN0b3Jz
IGlmIEkgZmluZCBhbnkgaW50ZXJmYWNlcyB0aGF0IGhhdmUgdGhlbS4KKworICAgIGlmICh0aGlz
Lmhhc19leHRlbmRlZF9hdHRyaWJ1dGUoIk5hbWVkQ29uc3RydWN0b3IiKSkgeworICAgICAgICB2
YXIgY29uc3RydWN0b3JzID0gdGhpcy5leHRBdHRycworICAgICAgICAgICAgLmZpbHRlcihmdW5j
dGlvbihhdHRyKSB7IHJldHVybiBhdHRyLm5hbWUgPT0gIk5hbWVkQ29uc3RydWN0b3IiOyB9KTsK
KyAgICAgICAgaWYgKGNvbnN0cnVjdG9ycy5sZW5ndGggIT09IDEpIHsKKyAgICAgICAgICAgIHRo
cm93IG5ldyBJZGxIYXJuZXNzRXJyb3IoIkludGVybmFsIGVycm9yOiBtaXNzaW5nIHN1cHBvcnQg
Zm9yIG11bHRpcGxlIE5hbWVkQ29uc3RydWN0b3IgZXh0ZW5kZWQgYXR0cmlidXRlcyIpOworICAg
ICAgICB9CisgICAgICAgIHZhciBjb25zdHJ1Y3RvciA9IGNvbnN0cnVjdG9yc1swXTsKKyAgICAg
ICAgdmFyIG1pbl9sZW5ndGggPSBtaW5PdmVybG9hZExlbmd0aChbY29uc3RydWN0b3JdKTsKKwor
ICAgICAgICBzdWJzZXRUZXN0QnlLZXkodGhpcy5uYW1lLCB0ZXN0LCBmdW5jdGlvbigpCisgICAg
ICAgIHsKKyAgICAgICAgICAgIC8vIFRoaXMgZnVuY3Rpb24gdGVzdHMgV2ViSURMIGFzIG9mIDIw
MTktMDEtMTQuCisKKyAgICAgICAgICAgIC8vICJmb3IgZXZlcnkgW05hbWVkQ29uc3RydWN0b3Jd
IGV4dGVuZGVkIGF0dHJpYnV0ZSBvbiBhbiBleHBvc2VkCisgICAgICAgICAgICAvLyBpbnRlcmZh
Y2UsIGEgY29ycmVzcG9uZGluZyBwcm9wZXJ0eSBtdXN0IGV4aXN0IG9uIHRoZSBFQ01BU2NyaXB0
CisgICAgICAgICAgICAvLyBnbG9iYWwgb2JqZWN0LiBUaGUgbmFtZSBvZiB0aGUgcHJvcGVydHkg
aXMgdGhlCisgICAgICAgICAgICAvLyBbTmFtZWRDb25zdHJ1Y3Rvcl0ncyBpZGVudGlmaWVyLCBh
bmQgaXRzIHZhbHVlIGlzIGFuIG9iamVjdAorICAgICAgICAgICAgLy8gY2FsbGVkIGEgbmFtZWQg
Y29uc3RydWN0b3IsIC4uLiAuIFRoZSBwcm9wZXJ0eSBoYXMgdGhlIGF0dHJpYnV0ZXMKKyAgICAg
ICAgICAgIC8vIHsgW1tXcml0YWJsZV1dOiB0cnVlLCBbW0VudW1lcmFibGVdXTogZmFsc2UsCisg
ICAgICAgICAgICAvLyBbW0NvbmZpZ3VyYWJsZV1dOiB0cnVlIH0uIgorICAgICAgICAgICAgdmFy
IG5hbWUgPSBjb25zdHJ1Y3Rvci5yaHMudmFsdWU7CisgICAgICAgICAgICBhc3NlcnRfb3duX3By
b3BlcnR5KHNlbGYsIG5hbWUpOworICAgICAgICAgICAgdmFyIGRlc2MgPSBPYmplY3QuZ2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yKHNlbGYsIG5hbWUpOworICAgICAgICAgICAgYXNzZXJ0X2VxdWFs
cyhkZXNjLnZhbHVlLCBzZWxmW25hbWVdLCAid3JvbmcgdmFsdWUgaW4gIiArIG5hbWUgKyAiIHBy
b3BlcnR5IGRlc2NyaXB0b3IiKTsKKyAgICAgICAgICAgIGFzc2VydF90cnVlKGRlc2Mud3JpdGFi
bGUsIG5hbWUgKyAiIHNob3VsZCBiZSB3cml0YWJsZSIpOworICAgICAgICAgICAgYXNzZXJ0X2Zh
bHNlKGRlc2MuZW51bWVyYWJsZSwgbmFtZSArICIgc2hvdWxkIG5vdCBiZSBlbnVtZXJhYmxlIik7
CisgICAgICAgICAgICBhc3NlcnRfdHJ1ZShkZXNjLmNvbmZpZ3VyYWJsZSwgbmFtZSArICIgc2hv
dWxkIGJlIGNvbmZpZ3VyYWJsZSIpOworICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKCJnZXQiIGlu
IGRlc2MsIG5hbWUgKyAiIHNob3VsZCBub3QgaGF2ZSBhIGdldHRlciIpOworICAgICAgICAgICAg
YXNzZXJ0X2ZhbHNlKCJzZXQiIGluIGRlc2MsIG5hbWUgKyAiIHNob3VsZCBub3QgaGF2ZSBhIHNl
dHRlciIpOworICAgICAgICB9LmJpbmQodGhpcyksIHRoaXMubmFtZSArICIgaW50ZXJmYWNlOiBu
YW1lZCBjb25zdHJ1Y3RvciIpOworCisgICAgICAgIHN1YnNldFRlc3RCeUtleSh0aGlzLm5hbWUs
IHRlc3QsIGZ1bmN0aW9uKCkKKyAgICAgICAgeworICAgICAgICAgICAgLy8gVGhpcyBmdW5jdGlv
biB0ZXN0cyBXZWJJREwgYXMgb2YgMjAxOS0wMS0xNC4KKworICAgICAgICAgICAgLy8gIjIuIExl
dCBGIGJlICEgQ3JlYXRlQnVpbHRpbkZ1bmN0aW9uKHJlYWxtLCBzdGVwcywKKyAgICAgICAgICAg
IC8vICAgICByZWFsbS5bW0ludHJpbnNpY3NdXS5bWyVGdW5jdGlvblByb3RvdHlwZSVdXSkuIgor
ICAgICAgICAgICAgdmFyIG5hbWUgPSBjb25zdHJ1Y3Rvci5yaHMudmFsdWU7CisgICAgICAgICAg
ICB2YXIgdmFsdWUgPSBzZWxmW25hbWVdOworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyh0eXBl
b2YgdmFsdWUsICJmdW5jdGlvbiIsICJ0eXBlIG9mIHZhbHVlIGluICIgKyBuYW1lICsgIiBwcm9w
ZXJ0eSBkZXNjcmlwdG9yIik7CisgICAgICAgICAgICBhc3NlcnRfbm90X2VxdWFscyh2YWx1ZSwg
dGhpcy5nZXRfaW50ZXJmYWNlX29iamVjdCgpLCAid3JvbmcgdmFsdWUgaW4gIiArIG5hbWUgKyAi
IHByb3BlcnR5IGRlc2NyaXB0b3IiKTsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoT2JqZWN0
LmdldFByb3RvdHlwZU9mKHZhbHVlKSwgRnVuY3Rpb24ucHJvdG90eXBlLCAid3JvbmcgdmFsdWUg
Zm9yICIgKyBuYW1lICsgIidzIHByb3RvdHlwZSIpOworICAgICAgICB9LmJpbmQodGhpcyksIHRo
aXMubmFtZSArICIgaW50ZXJmYWNlOiBuYW1lZCBjb25zdHJ1Y3RvciBvYmplY3QiKTsKKworICAg
ICAgICBzdWJzZXRUZXN0QnlLZXkodGhpcy5uYW1lLCB0ZXN0LCBmdW5jdGlvbigpCisgICAgICAg
IHsKKyAgICAgICAgICAgIC8vIFRoaXMgZnVuY3Rpb24gdGVzdHMgV2ViSURMIGFzIG9mIDIwMTkt
MDEtMTQuCisKKyAgICAgICAgICAgIC8vICI3LiBMZXQgcHJvdG8gYmUgdGhlIGludGVyZmFjZSBw
cm90b3R5cGUgb2JqZWN0IG9mIGludGVyZmFjZSBJCisgICAgICAgICAgICAvLyAgICAgaW4gcmVh
bG0uCisgICAgICAgICAgICAvLyAiOC4gUGVyZm9ybSAhIERlZmluZVByb3BlcnR5T3JUaHJvdyhG
LCAicHJvdG90eXBlIiwKKyAgICAgICAgICAgIC8vICAgICBQcm9wZXJ0eURlc2NyaXB0b3J7Cisg
ICAgICAgICAgICAvLyAgICAgICAgIFtbVmFsdWVdXTogcHJvdG8sIFtbV3JpdGFibGVdXTogZmFs
c2UsCisgICAgICAgICAgICAvLyAgICAgICAgIFtbRW51bWVyYWJsZV1dOiBmYWxzZSwgW1tDb25m
aWd1cmFibGVdXTogZmFsc2UKKyAgICAgICAgICAgIC8vICAgICB9KS4iCisgICAgICAgICAgICB2
YXIgbmFtZSA9IGNvbnN0cnVjdG9yLnJocy52YWx1ZTsKKyAgICAgICAgICAgIHZhciBleHBlY3Rl
ZCA9IHRoaXMuZ2V0X2ludGVyZmFjZV9vYmplY3QoKS5wcm90b3R5cGU7CisgICAgICAgICAgICB2
YXIgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Ioc2VsZltuYW1lXSwgInBy
b3RvdHlwZSIpOworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhkZXNjLnZhbHVlLCBleHBlY3Rl
ZCwgIndyb25nIHZhbHVlIGZvciAiICsgbmFtZSArICIucHJvdG90eXBlIik7CisgICAgICAgICAg
ICBhc3NlcnRfZmFsc2UoZGVzYy53cml0YWJsZSwgInByb3RvdHlwZSBzaG91bGQgbm90IGJlIHdy
aXRhYmxlIik7CisgICAgICAgICAgICBhc3NlcnRfZmFsc2UoZGVzYy5lbnVtZXJhYmxlLCAicHJv
dG90eXBlIHNob3VsZCBub3QgYmUgZW51bWVyYWJsZSIpOworICAgICAgICAgICAgYXNzZXJ0X2Zh
bHNlKGRlc2MuY29uZmlndXJhYmxlLCAicHJvdG90eXBlIHNob3VsZCBub3QgYmUgY29uZmlndXJh
YmxlIik7CisgICAgICAgICAgICBhc3NlcnRfZmFsc2UoImdldCIgaW4gZGVzYywgInByb3RvdHlw
ZSBzaG91bGQgbm90IGhhdmUgYSBnZXR0ZXIiKTsKKyAgICAgICAgICAgIGFzc2VydF9mYWxzZSgi
c2V0IiBpbiBkZXNjLCAicHJvdG90eXBlIHNob3VsZCBub3QgaGF2ZSBhIHNldHRlciIpOworICAg
ICAgICB9LmJpbmQodGhpcyksIHRoaXMubmFtZSArICIgaW50ZXJmYWNlOiBuYW1lZCBjb25zdHJ1
Y3RvciBwcm90b3R5cGUgcHJvcGVydHkiKTsKKworICAgICAgICBzdWJzZXRUZXN0QnlLZXkodGhp
cy5uYW1lLCB0ZXN0LCBmdW5jdGlvbigpCisgICAgICAgIHsKKyAgICAgICAgICAgIC8vIFRoaXMg
ZnVuY3Rpb24gdGVzdHMgV2ViSURMIGFzIG9mIDIwMTktMDEtMTQuCisKKyAgICAgICAgICAgIC8v
ICIzLiBQZXJmb3JtICEgU2V0RnVuY3Rpb25OYW1lKEYsIGlkKS4iCisgICAgICAgICAgICB2YXIg
bmFtZSA9IGNvbnN0cnVjdG9yLnJocy52YWx1ZTsKKyAgICAgICAgICAgIHZhciBkZXNjID0gT2Jq
ZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihzZWxmW25hbWVdLCAibmFtZSIpOworICAgICAg
ICAgICAgYXNzZXJ0X2VxdWFscyhkZXNjLnZhbHVlLCBuYW1lLCAid3JvbmcgdmFsdWUgZm9yICIg
KyBuYW1lICsgIi5uYW1lIik7CisgICAgICAgICAgICBhc3NlcnRfZmFsc2UoZGVzYy53cml0YWJs
ZSwgIm5hbWUgc2hvdWxkIG5vdCBiZSB3cml0YWJsZSIpOworICAgICAgICAgICAgYXNzZXJ0X2Zh
bHNlKGRlc2MuZW51bWVyYWJsZSwgIm5hbWUgc2hvdWxkIG5vdCBiZSBlbnVtZXJhYmxlIik7Cisg
ICAgICAgICAgICBhc3NlcnRfdHJ1ZShkZXNjLmNvbmZpZ3VyYWJsZSwgIm5hbWUgc2hvdWxkIGJl
IGNvbmZpZ3VyYWJsZSIpOworICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKCJnZXQiIGluIGRlc2Ms
ICJuYW1lIHNob3VsZCBub3QgaGF2ZSBhIGdldHRlciIpOworICAgICAgICAgICAgYXNzZXJ0X2Zh
bHNlKCJzZXQiIGluIGRlc2MsICJuYW1lIHNob3VsZCBub3QgaGF2ZSBhIHNldHRlciIpOworICAg
ICAgICB9LmJpbmQodGhpcyksIHRoaXMubmFtZSArICIgaW50ZXJmYWNlOiBuYW1lZCBjb25zdHJ1
Y3RvciBuYW1lIik7CisKKyAgICAgICAgc3Vic2V0VGVzdEJ5S2V5KHRoaXMubmFtZSwgdGVzdCwg
ZnVuY3Rpb24oKQorICAgICAgICB7CisgICAgICAgICAgICAvLyBUaGlzIGZ1bmN0aW9uIHRlc3Rz
IFdlYklETCBhcyBvZiAyMDE5LTAxLTE0LgorCisgICAgICAgICAgICAvLyAiNC4gSW5pdGlhbGl6
ZSBTIHRvIHRoZSBlZmZlY3RpdmUgb3ZlcmxvYWQgc2V0IGZvciBjb25zdHJ1Y3RvcnMKKyAgICAg
ICAgICAgIC8vICAgICB3aXRoIGlkZW50aWZpZXIgaWQgb24gaW50ZXJmYWNlIEkgYW5kIHdpdGgg
YXJndW1lbnQgY291bnQgMC4KKyAgICAgICAgICAgIC8vICI1LiBMZXQgbGVuZ3RoIGJlIHRoZSBs
ZW5ndGggb2YgdGhlIHNob3J0ZXN0IGFyZ3VtZW50IGxpc3Qgb2YKKyAgICAgICAgICAgIC8vICAg
ICB0aGUgZW50cmllcyBpbiBTLgorICAgICAgICAgICAgLy8gIjYuIFBlcmZvcm0gISBTZXRGdW5j
dGlvbkxlbmd0aChGLCBsZW5ndGgpLiIKKyAgICAgICAgICAgIHZhciBuYW1lID0gY29uc3RydWN0
b3IucmhzLnZhbHVlOworICAgICAgICAgICAgdmFyIGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKHNlbGZbbmFtZV0sICJsZW5ndGgiKTsKKyAgICAgICAgICAgIGFzc2VydF9l
cXVhbHMoZGVzYy52YWx1ZSwgbWluX2xlbmd0aCwgIndyb25nIHZhbHVlIGZvciAiICsgbmFtZSAr
ICIubGVuZ3RoIik7CisgICAgICAgICAgICBhc3NlcnRfZmFsc2UoZGVzYy53cml0YWJsZSwgImxl
bmd0aCBzaG91bGQgbm90IGJlIHdyaXRhYmxlIik7CisgICAgICAgICAgICBhc3NlcnRfZmFsc2Uo
ZGVzYy5lbnVtZXJhYmxlLCAibGVuZ3RoIHNob3VsZCBub3QgYmUgZW51bWVyYWJsZSIpOworICAg
ICAgICAgICAgYXNzZXJ0X3RydWUoZGVzYy5jb25maWd1cmFibGUsICJsZW5ndGggc2hvdWxkIGJl
IGNvbmZpZ3VyYWJsZSIpOworICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKCJnZXQiIGluIGRlc2Ms
ICJsZW5ndGggc2hvdWxkIG5vdCBoYXZlIGEgZ2V0dGVyIik7CisgICAgICAgICAgICBhc3NlcnRf
ZmFsc2UoInNldCIgaW4gZGVzYywgImxlbmd0aCBzaG91bGQgbm90IGhhdmUgYSBzZXR0ZXIiKTsK
KyAgICAgICAgfS5iaW5kKHRoaXMpLCB0aGlzLm5hbWUgKyAiIGludGVyZmFjZTogbmFtZWQgY29u
c3RydWN0b3IgbGVuZ3RoIik7CisKKyAgICAgICAgc3Vic2V0VGVzdEJ5S2V5KHRoaXMubmFtZSwg
dGVzdCwgZnVuY3Rpb24oKQorICAgICAgICB7CisgICAgICAgICAgICAvLyBUaGlzIGZ1bmN0aW9u
IHRlc3RzIFdlYklETCBhcyBvZiAyMDE5LTAxLTE0LgorCisgICAgICAgICAgICAvLyAiMS4gTGV0
IHN0ZXBzIGJlIHRoZSBmb2xsb3dpbmcgc3RlcHM6CisgICAgICAgICAgICAvLyAiICAgIDEuIElm
IE5ld1RhcmdldCBpcyB1bmRlZmluZWQsIHRoZW4gdGhyb3cgYSBUeXBlRXJyb3IuIgorICAgICAg
ICAgICAgdmFyIG5hbWUgPSBjb25zdHJ1Y3Rvci5yaHMudmFsdWU7CisgICAgICAgICAgICB2YXIg
YXJncyA9IGNvbnN0cnVjdG9yLmFyZ3VtZW50cy5tYXAoZnVuY3Rpb24oYXJnKSB7CisgICAgICAg
ICAgICAgICAgcmV0dXJuIGNyZWF0ZV9zdWl0YWJsZV9vYmplY3QoYXJnLmlkbFR5cGUpOworICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKG5ldyBUeXBlRXJyb3IoKSwg
ZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgc2VsZltuYW1lXSguLi5hcmdzKTsKKyAgICAg
ICAgICAgIH0uYmluZCh0aGlzKSk7CisgICAgICAgIH0uYmluZCh0aGlzKSwgdGhpcy5uYW1lICsg
IiBpbnRlcmZhY2U6IG5hbWVkIGNvbnN0cnVjdG9yIHdpdGhvdXQgJ25ldyciKTsKKyAgICB9CiAK
ICAgICBzdWJzZXRUZXN0QnlLZXkodGhpcy5uYW1lLCB0ZXN0LCBmdW5jdGlvbigpCiAgICAgewpA
QCAtMTcwMywxMSArMTg0NywxMCBAQCBJZGxJbnRlcmZhY2UucHJvdG90eXBlLnRlc3Rfc2VsZiA9
IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIGFz
c2VydF9vd25fcHJvcGVydHkoc2VsZiwgdGhpcy5uYW1lLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICIgKyBmb3JtYXRfdmFsdWUo
dGhpcy5uYW1lKSk7CisgICAgICAgIHRoaXMuYXNzZXJ0X2ludGVyZmFjZV9vYmplY3RfZXhpc3Rz
KCk7CiAKICAgICAgICAgaWYgKHRoaXMuaXNfY2FsbGJhY2soKSkgewotICAgICAgICAgICAgYXNz
ZXJ0X2ZhbHNlKCJwcm90b3R5cGUiIGluIHNlbGZbdGhpcy5uYW1lXSwKKyAgICAgICAgICAgIGFz
c2VydF9mYWxzZSgicHJvdG90eXBlIiBpbiB0aGlzLmdldF9pbnRlcmZhY2Vfb2JqZWN0KCksCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5uYW1lICsgJyBzaG91bGQgbm90IGhhdmUgYSAi
cHJvdG90eXBlIiBwcm9wZXJ0eScpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CkBA
IC0xNzE5LDkgKzE4NjIsOSBAQCBJZGxJbnRlcmZhY2UucHJvdG90eXBlLnRlc3Rfc2VsZiA9IGZ1
bmN0aW9uKCkKICAgICAgICAgLy8gcHJvcGVydGllcyB0aGF0IGNvcnJlc3BvbmQgdG8gdGhlIHJl
Z3VsYXIgYXR0cmlidXRlcyBhbmQgcmVndWxhcgogICAgICAgICAvLyBvcGVyYXRpb25zIGRlZmlu
ZWQgb24gdGhlIGludGVyZmFjZSwgYW5kIGlzIGRlc2NyaWJlZCBpbiBtb3JlIGRldGFpbAogICAg
ICAgICAvLyBpbiBzZWN0aW9uIDQuNS40IGJlbG93LiIKLSAgICAgICAgYXNzZXJ0X293bl9wcm9w
ZXJ0eShzZWxmW3RoaXMubmFtZV0sICJwcm90b3R5cGUiLAorICAgICAgICBhc3NlcnRfb3duX3By
b3BlcnR5KHRoaXMuZ2V0X2ludGVyZmFjZV9vYmplY3QoKSwgInByb3RvdHlwZSIsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgJ2ludGVyZmFjZSAiJyArIHRoaXMubmFtZSArICciIGRvZXMg
bm90IGhhdmUgb3duIHByb3BlcnR5ICJwcm90b3R5cGUiJyk7Ci0gICAgICAgIHZhciBkZXNjID0g
T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihzZWxmW3RoaXMubmFtZV0sICJwcm90b3R5
cGUiKTsKKyAgICAgICAgdmFyIGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KHRoaXMuZ2V0X2ludGVyZmFjZV9vYmplY3QoKSwgInByb3RvdHlwZSIpOwogICAgICAgICBhc3Nl
cnRfZmFsc2UoImdldCIgaW4gZGVzYywgdGhpcy5uYW1lICsgIi5wcm90b3R5cGUgc2hvdWxkIG5v
dCBoYXZlIGEgZ2V0dGVyIik7CiAgICAgICAgIGFzc2VydF9mYWxzZSgic2V0IiBpbiBkZXNjLCB0
aGlzLm5hbWUgKyAiLnByb3RvdHlwZSBzaG91bGQgbm90IGhhdmUgYSBzZXR0ZXIiKTsKICAgICAg
ICAgYXNzZXJ0X2ZhbHNlKGRlc2Mud3JpdGFibGUsIHRoaXMubmFtZSArICIucHJvdG90eXBlIHNo
b3VsZCBub3QgYmUgd3JpdGFibGUiKTsKQEAgLTE3NTQsMzggKzE4OTcsMzkgQEAgSWRsSW50ZXJm
YWNlLnByb3RvdHlwZS50ZXN0X3NlbGYgPSBmdW5jdGlvbigpCiAgICAgICAgIC8vICAgICBvYmpl
Y3QgJUVycm9yUHJvdG90eXBlJS4iCiAgICAgICAgIC8vCiAgICAgICAgIGlmICh0aGlzLm5hbWUg
PT09ICJXaW5kb3ciKSB7Ci0gICAgICAgICAgICBhc3NlcnRfY2xhc3Nfc3RyaW5nKE9iamVjdC5n
ZXRQcm90b3R5cGVPZihzZWxmW3RoaXMubmFtZV0ucHJvdG90eXBlKSwKKyAgICAgICAgICAgIGFz
c2VydF9jbGFzc19zdHJpbmcoT2JqZWN0LmdldFByb3RvdHlwZU9mKHRoaXMuZ2V0X2ludGVyZmFj
ZV9vYmplY3QoKS5wcm90b3R5cGUpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAn
V2luZG93UHJvcGVydGllcycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdDbGFz
cyBuYW1lIGZvciBwcm90b3R5cGUgb2YgV2luZG93JyArCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICcucHJvdG90eXBlIGlzIG5vdCAiV2luZG93UHJvcGVydGllcyInKTsKICAgICAg
ICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHZhciBpbmhlcml0X2ludGVyZmFjZSwgaW5oZXJpdF9p
bnRlcmZhY2VfaGFzX2ludGVyZmFjZV9vYmplY3Q7CisgICAgICAgICAgICB2YXIgaW5oZXJpdF9p
bnRlcmZhY2UsIGluaGVyaXRfaW50ZXJmYWNlX2ludGVyZmFjZV9vYmplY3Q7CiAgICAgICAgICAg
ICBpZiAodGhpcy5iYXNlKSB7CiAgICAgICAgICAgICAgICAgaW5oZXJpdF9pbnRlcmZhY2UgPSB0
aGlzLmJhc2U7Ci0gICAgICAgICAgICAgICAgaW5oZXJpdF9pbnRlcmZhY2VfaGFzX2ludGVyZmFj
ZV9vYmplY3QgPQotICAgICAgICAgICAgICAgICAgICAhdGhpcy5hcnJheQotICAgICAgICAgICAg
ICAgICAgICAgICAgIC5tZW1iZXJzW2luaGVyaXRfaW50ZXJmYWNlXQotICAgICAgICAgICAgICAg
ICAgICAgICAgIC5oYXNfZXh0ZW5kZWRfYXR0cmlidXRlKCJOb0ludGVyZmFjZU9iamVjdCIpOwor
ICAgICAgICAgICAgICAgIHZhciBwYXJlbnQgPSB0aGlzLmFycmF5Lm1lbWJlcnNbaW5oZXJpdF9p
bnRlcmZhY2VdOworICAgICAgICAgICAgICAgIGlmICghcGFyZW50Lmhhc19leHRlbmRlZF9hdHRy
aWJ1dGUoIk5vSW50ZXJmYWNlT2JqZWN0IikpIHsKKyAgICAgICAgICAgICAgICAgICAgcGFyZW50
LmFzc2VydF9pbnRlcmZhY2Vfb2JqZWN0X2V4aXN0cygpOworICAgICAgICAgICAgICAgICAgICBp
bmhlcml0X2ludGVyZmFjZV9pbnRlcmZhY2Vfb2JqZWN0ID0gcGFyZW50LmdldF9pbnRlcmZhY2Vf
b2JqZWN0KCk7CisgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlz
Lm5hbWUgPT09ICJET01FeGNlcHRpb24iKSB7CiAgICAgICAgICAgICAgICAgaW5oZXJpdF9pbnRl
cmZhY2UgPSAnRXJyb3InOwotICAgICAgICAgICAgICAgIGluaGVyaXRfaW50ZXJmYWNlX2hhc19p
bnRlcmZhY2Vfb2JqZWN0ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBpbmhlcml0X2ludGVyZmFj
ZV9pbnRlcmZhY2Vfb2JqZWN0ID0gc2VsZi5FcnJvcjsKICAgICAgICAgICAgIH0gZWxzZSB7CiAg
ICAgICAgICAgICAgICAgaW5oZXJpdF9pbnRlcmZhY2UgPSAnT2JqZWN0JzsKLSAgICAgICAgICAg
ICAgICBpbmhlcml0X2ludGVyZmFjZV9oYXNfaW50ZXJmYWNlX29iamVjdCA9IHRydWU7CisgICAg
ICAgICAgICAgICAgaW5oZXJpdF9pbnRlcmZhY2VfaW50ZXJmYWNlX29iamVjdCA9IHNlbGYuT2Jq
ZWN0OwogICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKGluaGVyaXRfaW50ZXJmYWNlX2hh
c19pbnRlcmZhY2Vfb2JqZWN0KSB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0X293bl9wcm9wZXJ0
eShzZWxmLCBpbmhlcml0X2ludGVyZmFjZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICdzaG91bGQgaW5oZXJpdCBmcm9tICcgKyBpbmhlcml0X2ludGVyZmFjZSArICcsIGJ1
dCBzZWxmIGhhcyBubyBzdWNoIHByb3BlcnR5Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0X293
bl9wcm9wZXJ0eShzZWxmW2luaGVyaXRfaW50ZXJmYWNlXSwgJ3Byb3RvdHlwZScsCisgICAgICAg
ICAgICBpZiAoaW5oZXJpdF9pbnRlcmZhY2VfaW50ZXJmYWNlX29iamVjdCkgeworICAgICAgICAg
ICAgICAgIGFzc2VydF9ub3RfZXF1YWxzKGluaGVyaXRfaW50ZXJmYWNlX2ludGVyZmFjZV9vYmpl
Y3QsIHVuZGVmaW5lZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2hvdWxk
IGluaGVyaXQgZnJvbSAnICsgaW5oZXJpdF9pbnRlcmZhY2UgKyAnLCBidXQgdGhlcmUgaXMgbm8g
c3VjaCBwcm9wZXJ0eScpOworICAgICAgICAgICAgICAgIGFzc2VydF9vd25fcHJvcGVydHkoaW5o
ZXJpdF9pbnRlcmZhY2VfaW50ZXJmYWNlX29iamVjdCwgJ3Byb3RvdHlwZScsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAnc2hvdWxkIGluaGVyaXQgZnJvbSAnICsgaW5oZXJp
dF9pbnRlcmZhY2UgKyAnLCBidXQgdGhhdCBvYmplY3QgaGFzIG5vICJwcm90b3R5cGUiIHByb3Bl
cnR5Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhPYmplY3QuZ2V0UHJvdG90eXBl
T2Yoc2VsZlt0aGlzLm5hbWVdLnByb3RvdHlwZSksCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBzZWxmW2luaGVyaXRfaW50ZXJmYWNlXS5wcm90b3R5cGUsCisgICAgICAgICAgICAgICAg
YXNzZXJ0X2VxdWFscyhPYmplY3QuZ2V0UHJvdG90eXBlT2YodGhpcy5nZXRfaW50ZXJmYWNlX29i
amVjdCgpLnByb3RvdHlwZSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmhlcml0
X2ludGVyZmFjZV9pbnRlcmZhY2Vfb2JqZWN0LnByb3RvdHlwZSwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICdwcm90b3R5cGUgb2YgJyArIHRoaXMubmFtZSArICcucHJvdG90eXBlIGlz
IG5vdCAnICsgaW5oZXJpdF9pbnRlcmZhY2UgKyAnLnByb3RvdHlwZScpOwogICAgICAgICAgICAg
fSBlbHNlIHsKICAgICAgICAgICAgICAgICAvLyBXZSBjYW4ndCB0ZXN0IHRoYXQgd2UgZ2V0IHRo
ZSBjb3JyZWN0IG9iamVjdCwgYmVjYXVzZSB0aGlzIGlzIHRoZQogICAgICAgICAgICAgICAgIC8v
IG9ubHkgd2F5IHRvIGdldCBvdXIgaGFuZHMgb24gaXQuIFdlIG9ubHkgdGVzdCB0aGF0IGl0cyBj
bGFzcwogICAgICAgICAgICAgICAgIC8vIHN0cmluZywgYXQgbGVhc3QsIGlzIGNvcnJlY3QuCi0g
ICAgICAgICAgICAgICAgYXNzZXJ0X2NsYXNzX3N0cmluZyhPYmplY3QuZ2V0UHJvdG90eXBlT2Yo
c2VsZlt0aGlzLm5hbWVdLnByb3RvdHlwZSksCisgICAgICAgICAgICAgICAgYXNzZXJ0X2NsYXNz
X3N0cmluZyhPYmplY3QuZ2V0UHJvdG90eXBlT2YodGhpcy5nZXRfaW50ZXJmYWNlX29iamVjdCgp
LnByb3RvdHlwZSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmhlcml0
X2ludGVyZmFjZSArICdQcm90b3R5cGUnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgJ0NsYXNzIG5hbWUgZm9yIHByb3RvdHlwZSBvZiAnICsgdGhpcy5uYW1lICsKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcucHJvdG90eXBlIGlzIG5vdCAiJyArIGlu
aGVyaXRfaW50ZXJmYWNlICsgJ1Byb3RvdHlwZSInKTsKQEAgLTE3OTMsMjAgKzE5MzcsMjAgQEAg
SWRsSW50ZXJmYWNlLnByb3RvdHlwZS50ZXN0X3NlbGYgPSBmdW5jdGlvbigpCiAgICAgICAgIH0K
IAogICAgICAgICAvLyAiVGhlIGNsYXNzIHN0cmluZyBvZiBhbiBpbnRlcmZhY2UgcHJvdG90eXBl
IG9iamVjdCBpcyB0aGUKLSAgICAgICAgLy8gY29uY2F0ZW5hdGlvbiBvZiB0aGUgaW50ZXJmYWNl
4oCZcyBpZGVudGlmaWVyIGFuZCB0aGUgc3RyaW5nCisgICAgICAgIC8vIGNvbmNhdGVuYXRpb24g
b2YgdGhlIGludGVyZmFjZeKAmXMgcXVhbGlmaWVkIGlkZW50aWZpZXIgYW5kIHRoZSBzdHJpbmcK
ICAgICAgICAgLy8g4oCcUHJvdG90eXBl4oCdLiIKIAogICAgICAgICAvLyBTa2lwIHRoZXNlIHRl
c3RzIGZvciBub3cgZHVlIHRvIGEgc3BlY2lmaWNhdGlvbiBpc3N1ZSBhYm91dAogICAgICAgICAv
LyBwcm90b3R5cGUgbmFtZS4KICAgICAgICAgLy8gaHR0cHM6Ly93d3cudzMub3JnL0J1Z3MvUHVi
bGljL3Nob3dfYnVnLmNnaT9pZD0yODI0NAogCi0gICAgICAgIC8vIGFzc2VydF9jbGFzc19zdHJp
bmcoc2VsZlt0aGlzLm5hbWVdLnByb3RvdHlwZSwgdGhpcy5uYW1lICsgIlByb3RvdHlwZSIsCisg
ICAgICAgIC8vIGFzc2VydF9jbGFzc19zdHJpbmcodGhpcy5nZXRfaW50ZXJmYWNlX29iamVjdCgp
LnByb3RvdHlwZSwgdGhpcy5nZXRfcXVhbGlmaWVkX25hbWUoKSArICJQcm90b3R5cGUiLAogICAg
ICAgICAvLyAgICAgICAgICAgICAgICAgICAgICJjbGFzcyBzdHJpbmcgb2YgIiArIHRoaXMubmFt
ZSArICIucHJvdG90eXBlIik7CiAKICAgICAgICAgLy8gU3RyaW5nKCkgc2hvdWxkIGVuZCB1cCBj
YWxsaW5nIHt9LnRvU3RyaW5nIGlmIG5vdGhpbmcgZGVmaW5lcyBhCiAgICAgICAgIC8vIHN0cmlu
Z2lmaWVyLgogICAgICAgICBpZiAoIXRoaXMuaGFzX3N0cmluZ2lmaWVyKCkpIHsKLSAgICAgICAg
ICAgIC8vIGFzc2VydF9lcXVhbHMoU3RyaW5nKHNlbGZbdGhpcy5uYW1lXS5wcm90b3R5cGUpLCAi
W29iamVjdCAiICsgdGhpcy5uYW1lICsgIlByb3RvdHlwZV0iLAorICAgICAgICAgICAgLy8gYXNz
ZXJ0X2VxdWFscyhTdHJpbmcodGhpcy5nZXRfaW50ZXJmYWNlX29iamVjdCgpLnByb3RvdHlwZSks
ICJbb2JqZWN0ICIgKyB0aGlzLmdldF9xdWFsaWZpZWRfbmFtZSgpICsgIlByb3RvdHlwZV0iLAog
ICAgICAgICAgICAgLy8gICAgICAgICAiU3RyaW5nKCIgKyB0aGlzLm5hbWUgKyAiLnByb3RvdHlw
ZSkiKTsKICAgICAgICAgfQogICAgIH0uYmluZCh0aGlzKSwgdGhpcy5uYW1lICsgIiBpbnRlcmZh
Y2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVj
dCIpOwpAQCAtMTgxOCw3ICsxOTYyLDcgQEAgSWRsSW50ZXJmYWNlLnByb3RvdHlwZS50ZXN0X3Nl
bGYgPSBmdW5jdGlvbigpCiAgICAgLy8gcHJvdG90eXBlIGV4b3RpYyBvYmplY3QuIgogICAgIC8v
IGh0dHBzOi8vaGV5Y2FtLmdpdGh1Yi5pby93ZWJpZGwvI2ludGVyZmFjZS1wcm90b3R5cGUtb2Jq
ZWN0CiAgICAgaWYgKHRoaXMuaXNfZ2xvYmFsKCkpIHsKLSAgICAgICAgdGhpcy50ZXN0X2ltbXV0
YWJsZV9wcm90b3R5cGUoImludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0Iiwgc2VsZlt0aGlzLm5h
bWVdLnByb3RvdHlwZSk7CisgICAgICAgIHRoaXMudGVzdF9pbW11dGFibGVfcHJvdG90eXBlKCJp
bnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCIsIHRoaXMuZ2V0X2ludGVyZmFjZV9vYmplY3QoKS5w
cm90b3R5cGUpOwogICAgIH0KIAogICAgIHN1YnNldFRlc3RCeUtleSh0aGlzLm5hbWUsIHRlc3Qs
IGZ1bmN0aW9uKCkKQEAgLTE4MjcsMTYgKzE5NzEsMTUgQEAgSWRsSW50ZXJmYWNlLnByb3RvdHlw
ZS50ZXN0X3NlbGYgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0K
IAotICAgICAgICBhc3NlcnRfb3duX3Byb3BlcnR5KHNlbGYsIHRoaXMubmFtZSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAic2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiICsg
Zm9ybWF0X3ZhbHVlKHRoaXMubmFtZSkpOworICAgICAgICB0aGlzLmFzc2VydF9pbnRlcmZhY2Vf
b2JqZWN0X2V4aXN0cygpOwogCiAgICAgICAgIGlmICh0aGlzLmlzX2NhbGxiYWNrKCkpIHsKLSAg
ICAgICAgICAgIGFzc2VydF9mYWxzZSgicHJvdG90eXBlIiBpbiBzZWxmW3RoaXMubmFtZV0sCisg
ICAgICAgICAgICBhc3NlcnRfZmFsc2UoInByb3RvdHlwZSIgaW4gdGhpcy5nZXRfaW50ZXJmYWNl
X29iamVjdCgpLAogICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubmFtZSArICcgc2hvdWxk
IG5vdCBoYXZlIGEgInByb3RvdHlwZSIgcHJvcGVydHknKTsKICAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgfQogCi0gICAgICAgIGFzc2VydF9vd25fcHJvcGVydHkoc2VsZlt0aGlzLm5hbWVd
LCAicHJvdG90eXBlIiwKKyAgICAgICAgYXNzZXJ0X293bl9wcm9wZXJ0eSh0aGlzLmdldF9pbnRl
cmZhY2Vfb2JqZWN0KCksICJwcm90b3R5cGUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICdpbnRlcmZhY2UgIicgKyB0aGlzLm5hbWUgKyAnIiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0
eSAicHJvdG90eXBlIicpOwogCiAgICAgICAgIC8vICJJZiB0aGUgW05vSW50ZXJmYWNlT2JqZWN0
XSBleHRlbmRlZCBhdHRyaWJ1dGUgd2FzIG5vdCBzcGVjaWZpZWQgb24KQEAgLTE4NDQsMTUgKzE5
ODcsMTUgQEAgSWRsSW50ZXJmYWNlLnByb3RvdHlwZS50ZXN0X3NlbGYgPSBmdW5jdGlvbigpCiAg
ICAgICAgIC8vIHByb3BlcnR5IG5hbWVkIOKAnGNvbnN0cnVjdG9y4oCdIHdpdGggYXR0cmlidXRl
cyB7IFtbV3JpdGFibGVdXTogdHJ1ZSwKICAgICAgICAgLy8gW1tFbnVtZXJhYmxlXV06IGZhbHNl
LCBbW0NvbmZpZ3VyYWJsZV1dOiB0cnVlIH0gd2hvc2UgdmFsdWUgaXMgYQogICAgICAgICAvLyBy
ZWZlcmVuY2UgdG8gdGhlIGludGVyZmFjZSBvYmplY3QgZm9yIHRoZSBpbnRlcmZhY2UuIgotICAg
ICAgICBhc3NlcnRfb3duX3Byb3BlcnR5KHNlbGZbdGhpcy5uYW1lXS5wcm90b3R5cGUsICJjb25z
dHJ1Y3RvciIsCisgICAgICAgIGFzc2VydF9vd25fcHJvcGVydHkodGhpcy5nZXRfaW50ZXJmYWNl
X29iamVjdCgpLnByb3RvdHlwZSwgImNvbnN0cnVjdG9yIiwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB0aGlzLm5hbWUgKyAnLnByb3RvdHlwZSBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0
eSAiY29uc3RydWN0b3IiJyk7Ci0gICAgICAgIHZhciBkZXNjID0gT2JqZWN0LmdldE93blByb3Bl
cnR5RGVzY3JpcHRvcihzZWxmW3RoaXMubmFtZV0ucHJvdG90eXBlLCAiY29uc3RydWN0b3IiKTsK
KyAgICAgICAgdmFyIGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRoaXMu
Z2V0X2ludGVyZmFjZV9vYmplY3QoKS5wcm90b3R5cGUsICJjb25zdHJ1Y3RvciIpOwogICAgICAg
ICBhc3NlcnRfZmFsc2UoImdldCIgaW4gZGVzYywgdGhpcy5uYW1lICsgIi5wcm90b3R5cGUuY29u
c3RydWN0b3Igc2hvdWxkIG5vdCBoYXZlIGEgZ2V0dGVyIik7CiAgICAgICAgIGFzc2VydF9mYWxz
ZSgic2V0IiBpbiBkZXNjLCB0aGlzLm5hbWUgKyAiLnByb3RvdHlwZS5jb25zdHJ1Y3RvciBzaG91
bGQgbm90IGhhdmUgYSBzZXR0ZXIiKTsKICAgICAgICAgYXNzZXJ0X3RydWUoZGVzYy53cml0YWJs
ZSwgdGhpcy5uYW1lICsgIi5wcm90b3R5cGUuY29uc3RydWN0b3Igc2hvdWxkIGJlIHdyaXRhYmxl
Iik7CiAgICAgICAgIGFzc2VydF9mYWxzZShkZXNjLmVudW1lcmFibGUsIHRoaXMubmFtZSArICIu
cHJvdG90eXBlLmNvbnN0cnVjdG9yIHNob3VsZCBub3QgYmUgZW51bWVyYWJsZSIpOwogICAgICAg
ICBhc3NlcnRfdHJ1ZShkZXNjLmNvbmZpZ3VyYWJsZSwgdGhpcy5uYW1lICsgIi5wcm90b3R5cGUu
Y29uc3RydWN0b3Igc2hvdWxkIGJlIGNvbmZpZ3VyYWJsZSIpOwotICAgICAgICBhc3NlcnRfZXF1
YWxzKHNlbGZbdGhpcy5uYW1lXS5wcm90b3R5cGUuY29uc3RydWN0b3IsIHNlbGZbdGhpcy5uYW1l
XSwKKyAgICAgICAgYXNzZXJ0X2VxdWFscyh0aGlzLmdldF9pbnRlcmZhY2Vfb2JqZWN0KCkucHJv
dG90eXBlLmNvbnN0cnVjdG9yLCB0aGlzLmdldF9pbnRlcmZhY2Vfb2JqZWN0KCksCiAgICAgICAg
ICAgICAgICAgICAgICAgdGhpcy5uYW1lICsgJy5wcm90b3R5cGUuY29uc3RydWN0b3IgaXMgbm90
IHRoZSBzYW1lIG9iamVjdCBhcyAnICsgdGhpcy5uYW1lKTsKICAgICB9LmJpbmQodGhpcyksIHRo
aXMubmFtZSArICcgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJm
YWNlIHByb3RvdHlwZSBvYmplY3RcJ3MgImNvbnN0cnVjdG9yIiBwcm9wZXJ0eScpOwogCkBAIC0x
ODYzLDE2ICsyMDA2LDE1IEBAIElkbEludGVyZmFjZS5wcm90b3R5cGUudGVzdF9zZWxmID0gZnVu
Y3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAgICAgYXNzZXJ0
X293bl9wcm9wZXJ0eShzZWxmLCB0aGlzLm5hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgInNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIiArIGZvcm1hdF92YWx1ZSh0aGlz
Lm5hbWUpKTsKKyAgICAgICAgdGhpcy5hc3NlcnRfaW50ZXJmYWNlX29iamVjdF9leGlzdHMoKTsK
IAogICAgICAgICBpZiAodGhpcy5pc19jYWxsYmFjaygpKSB7Ci0gICAgICAgICAgICBhc3NlcnRf
ZmFsc2UoInByb3RvdHlwZSIgaW4gc2VsZlt0aGlzLm5hbWVdLAorICAgICAgICAgICAgYXNzZXJ0
X2ZhbHNlKCJwcm90b3R5cGUiIGluIHRoaXMuZ2V0X2ludGVyZmFjZV9vYmplY3QoKSwKICAgICAg
ICAgICAgICAgICAgICAgICAgICB0aGlzLm5hbWUgKyAnIHNob3VsZCBub3QgaGF2ZSBhICJwcm90
b3R5cGUiIHByb3BlcnR5Jyk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAotICAg
ICAgICBhc3NlcnRfb3duX3Byb3BlcnR5KHNlbGZbdGhpcy5uYW1lXSwgInByb3RvdHlwZSIsCisg
ICAgICAgIGFzc2VydF9vd25fcHJvcGVydHkodGhpcy5nZXRfaW50ZXJmYWNlX29iamVjdCgpLCAi
cHJvdG90eXBlIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaW50ZXJmYWNlICInICsg
dGhpcy5uYW1lICsgJyIgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgInByb3RvdHlwZSInKTsK
IAogICAgICAgICAvLyBJZiB0aGUgaW50ZXJmYWNlIGhhcyBhbnkgbWVtYmVyIGRlY2xhcmVkIHdp
dGggdGhlIFtVbnNjb3BhYmxlXSBleHRlbmRlZApAQCAtMTg4MSw3ICsyMDIzLDcgQEAgSWRsSW50
ZXJmYWNlLnByb3RvdHlwZS50ZXN0X3NlbGYgPSBmdW5jdGlvbigpCiAgICAgICAgIC8vIHsgW1tX
cml0YWJsZV1dOiBmYWxzZSwgW1tFbnVtZXJhYmxlXV06IGZhbHNlLCBbW0NvbmZpZ3VyYWJsZV1d
OiB0cnVlIH0sCiAgICAgICAgIC8vIGFuZCB3aG9zZSB2YWx1ZSBpcyBhbiBvYmplY3QgY3JlYXRl
ZCBhcyBmb2xsb3dzLi4uCiAgICAgICAgIHZhciB1bnNjb3BhYmxlcyA9IHRoaXMuZ2V0X3Vuc2Nv
cGFibGVzKCkubWFwKG0gPT4gbS5uYW1lKTsKLSAgICAgICAgdmFyIHByb3RvID0gc2VsZlt0aGlz
Lm5hbWVdLnByb3RvdHlwZTsKKyAgICAgICAgdmFyIHByb3RvID0gdGhpcy5nZXRfaW50ZXJmYWNl
X29iamVjdCgpLnByb3RvdHlwZTsKICAgICAgICAgaWYgKHVuc2NvcGFibGVzLmxlbmd0aCAhPSAw
KSB7CiAgICAgICAgICAgICBhc3NlcnRfb3duX3Byb3BlcnR5KAogICAgICAgICAgICAgICAgIHBy
b3RvLCBTeW1ib2wudW5zY29wYWJsZXMsCkBAIC0xOTEyLDE2ICsyMDU0LDE0IEBAIElkbEludGVy
ZmFjZS5wcm90b3R5cGUudGVzdF9zZWxmID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHRoaXMubmFtZSArICcucHJvdG90eXBlW1N5bWJvbC51bnNjb3BhYmxl
c10gaGFzIHVuZXhwZWN0ZWQgcHJvcGVydHkgIicgKyBwcm9wICsgJyInKTsKICAgICAgICAgICAg
IH0KICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoT2JqZWN0Lmdl
dE93blByb3BlcnR5RGVzY3JpcHRvcihzZWxmW3RoaXMubmFtZV0ucHJvdG90eXBlLCBTeW1ib2wu
dW5zY29wYWJsZXMpLAorICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhPYmplY3QuZ2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yKHRoaXMuZ2V0X2ludGVyZmFjZV9vYmplY3QoKS5wcm90b3R5cGUsIFN5
bWJvbC51bnNjb3BhYmxlcyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuZGVmaW5lZCwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5uYW1lICsgJy5wcm90b3R5cGUgc2hvdWxk
IG5vdCBoYXZlIEBAdW5zY29wYWJsZXMnKTsKICAgICAgICAgfQogICAgIH0uYmluZCh0aGlzKSwg
dGhpcy5uYW1lICsgJyBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRl
cmZhY2UgcHJvdG90eXBlIG9iamVjdFwncyBAQHVuc2NvcGFibGVzIHByb3BlcnR5Jyk7CiB9Owog
Ci0vL0B9CiBJZGxJbnRlcmZhY2UucHJvdG90eXBlLnRlc3RfaW1tdXRhYmxlX3Byb3RvdHlwZSA9
IGZ1bmN0aW9uKHR5cGUsIG9iaikKLS8vQHsKIHsKICAgICBpZiAodHlwZW9mIE9iamVjdC5zZXRQ
cm90b3R5cGVPZiAhPT0gImZ1bmN0aW9uIikgewogICAgICAgICByZXR1cm47CkBAIC0yMDIzLDkg
KzIxNjMsNyBAQCBJZGxJbnRlcmZhY2UucHJvdG90eXBlLnRlc3RfaW1tdXRhYmxlX3Byb3RvdHlw
ZSA9IGZ1bmN0aW9uKHR5cGUsIG9iaikKICAgICAgICAgInNob3VsZCByZXR1cm4gdHJ1ZSIpOwog
fTsKIAotLy9AfQogSWRsSW50ZXJmYWNlLnByb3RvdHlwZS50ZXN0X21lbWJlcl9jb25zdCA9IGZ1
bmN0aW9uKG1lbWJlcikKLS8vQHsKIHsKICAgICBpZiAoIXRoaXMuaGFzX2NvbnN0YW50cygpKSB7
CiAgICAgICAgIHRocm93IG5ldyBJZGxIYXJuZXNzRXJyb3IoIkludGVybmFsIGVycm9yOiB0ZXN0
X21lbWJlcl9jb25zdCBjYWxsZWQgd2l0aG91dCBhbnkgY29uc3RhbnRzIik7CkBAIC0yMDMzLDIx
ICsyMTcxLDIwIEBAIElkbEludGVyZmFjZS5wcm90b3R5cGUudGVzdF9tZW1iZXJfY29uc3QgPSBm
dW5jdGlvbihtZW1iZXIpCiAKICAgICBzdWJzZXRUZXN0QnlLZXkodGhpcy5uYW1lLCB0ZXN0LCBm
dW5jdGlvbigpCiAgICAgewotICAgICAgICBhc3NlcnRfb3duX3Byb3BlcnR5KHNlbGYsIHRoaXMu
bmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2VsZiBkb2VzIG5vdCBoYXZlIG93
biBwcm9wZXJ0eSAiICsgZm9ybWF0X3ZhbHVlKHRoaXMubmFtZSkpOworICAgICAgICB0aGlzLmFz
c2VydF9pbnRlcmZhY2Vfb2JqZWN0X2V4aXN0cygpOwogCiAgICAgICAgIC8vICJGb3IgZWFjaCBj
b25zdGFudCBkZWZpbmVkIG9uIGFuIGludGVyZmFjZSBBLCB0aGVyZSBtdXN0IGJlCiAgICAgICAg
IC8vIGEgY29ycmVzcG9uZGluZyBwcm9wZXJ0eSBvbiB0aGUgaW50ZXJmYWNlIG9iamVjdCwgaWYg
aXQKICAgICAgICAgLy8gZXhpc3RzLiIKLSAgICAgICAgYXNzZXJ0X293bl9wcm9wZXJ0eShzZWxm
W3RoaXMubmFtZV0sIG1lbWJlci5uYW1lKTsKKyAgICAgICAgYXNzZXJ0X293bl9wcm9wZXJ0eSh0
aGlzLmdldF9pbnRlcmZhY2Vfb2JqZWN0KCksIG1lbWJlci5uYW1lKTsKICAgICAgICAgLy8gIlRo
ZSB2YWx1ZSBvZiB0aGUgcHJvcGVydHkgaXMgdGhhdCB3aGljaCBpcyBvYnRhaW5lZCBieQogICAg
ICAgICAvLyBjb252ZXJ0aW5nIHRoZSBjb25zdGFudOKAmXMgSURMIHZhbHVlIHRvIGFuIEVDTUFT
Y3JpcHQKICAgICAgICAgLy8gdmFsdWUuIgotICAgICAgICBhc3NlcnRfZXF1YWxzKHNlbGZbdGhp
cy5uYW1lXVttZW1iZXIubmFtZV0sIGNvbnN0VmFsdWUobWVtYmVyLnZhbHVlKSwKKyAgICAgICAg
YXNzZXJ0X2VxdWFscyh0aGlzLmdldF9pbnRlcmZhY2Vfb2JqZWN0KClbbWVtYmVyLm5hbWVdLCBj
b25zdFZhbHVlKG1lbWJlci52YWx1ZSksCiAgICAgICAgICAgICAgICAgICAgICAgInByb3BlcnR5
IGhhcyB3cm9uZyB2YWx1ZSIpOwogICAgICAgICAvLyAiVGhlIHByb3BlcnR5IGhhcyBhdHRyaWJ1
dGVzIHsgW1tXcml0YWJsZV1dOiBmYWxzZSwKICAgICAgICAgLy8gW1tFbnVtZXJhYmxlXV06IHRy
dWUsIFtbQ29uZmlndXJhYmxlXV06IGZhbHNlIH0uIgotICAgICAgICB2YXIgZGVzYyA9IE9iamVj
dC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Ioc2VsZlt0aGlzLm5hbWVdLCBtZW1iZXIubmFtZSk7
CisgICAgICAgIHZhciBkZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0aGlz
LmdldF9pbnRlcmZhY2Vfb2JqZWN0KCksIG1lbWJlci5uYW1lKTsKICAgICAgICAgYXNzZXJ0X2Zh
bHNlKCJnZXQiIGluIGRlc2MsICJwcm9wZXJ0eSBzaG91bGQgbm90IGhhdmUgYSBnZXR0ZXIiKTsK
ICAgICAgICAgYXNzZXJ0X2ZhbHNlKCJzZXQiIGluIGRlc2MsICJwcm9wZXJ0eSBzaG91bGQgbm90
IGhhdmUgYSBzZXR0ZXIiKTsKICAgICAgICAgYXNzZXJ0X2ZhbHNlKGRlc2Mud3JpdGFibGUsICJw
cm9wZXJ0eSBzaG91bGQgbm90IGJlIHdyaXRhYmxlIik7CkBAIC0yMDU5LDIyICsyMTk2LDIxIEBA
IElkbEludGVyZmFjZS5wcm90b3R5cGUudGVzdF9tZW1iZXJfY29uc3QgPSBmdW5jdGlvbihtZW1i
ZXIpCiAgICAgLy8gZXhpc3Qgb24gdGhlIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0LiIKICAg
ICBzdWJzZXRUZXN0QnlLZXkodGhpcy5uYW1lLCB0ZXN0LCBmdW5jdGlvbigpCiAgICAgewotICAg
ICAgICBhc3NlcnRfb3duX3Byb3BlcnR5KHNlbGYsIHRoaXMubmFtZSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAic2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiICsgZm9ybWF0
X3ZhbHVlKHRoaXMubmFtZSkpOworICAgICAgICB0aGlzLmFzc2VydF9pbnRlcmZhY2Vfb2JqZWN0
X2V4aXN0cygpOwogCiAgICAgICAgIGlmICh0aGlzLmlzX2NhbGxiYWNrKCkpIHsKLSAgICAgICAg
ICAgIGFzc2VydF9mYWxzZSgicHJvdG90eXBlIiBpbiBzZWxmW3RoaXMubmFtZV0sCisgICAgICAg
ICAgICBhc3NlcnRfZmFsc2UoInByb3RvdHlwZSIgaW4gdGhpcy5nZXRfaW50ZXJmYWNlX29iamVj
dCgpLAogICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubmFtZSArICcgc2hvdWxkIG5vdCBo
YXZlIGEgInByb3RvdHlwZSIgcHJvcGVydHknKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgfQogCi0gICAgICAgIGFzc2VydF9vd25fcHJvcGVydHkoc2VsZlt0aGlzLm5hbWVdLCAicHJv
dG90eXBlIiwKKyAgICAgICAgYXNzZXJ0X293bl9wcm9wZXJ0eSh0aGlzLmdldF9pbnRlcmZhY2Vf
b2JqZWN0KCksICJwcm90b3R5cGUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICdpbnRl
cmZhY2UgIicgKyB0aGlzLm5hbWUgKyAnIiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAicHJv
dG90eXBlIicpOwogCi0gICAgICAgIGFzc2VydF9vd25fcHJvcGVydHkoc2VsZlt0aGlzLm5hbWVd
LnByb3RvdHlwZSwgbWVtYmVyLm5hbWUpOwotICAgICAgICBhc3NlcnRfZXF1YWxzKHNlbGZbdGhp
cy5uYW1lXS5wcm90b3R5cGVbbWVtYmVyLm5hbWVdLCBjb25zdFZhbHVlKG1lbWJlci52YWx1ZSks
CisgICAgICAgIGFzc2VydF9vd25fcHJvcGVydHkodGhpcy5nZXRfaW50ZXJmYWNlX29iamVjdCgp
LnByb3RvdHlwZSwgbWVtYmVyLm5hbWUpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHRoaXMuZ2V0
X2ludGVyZmFjZV9vYmplY3QoKS5wcm90b3R5cGVbbWVtYmVyLm5hbWVdLCBjb25zdFZhbHVlKG1l
bWJlci52YWx1ZSksCiAgICAgICAgICAgICAgICAgICAgICAgInByb3BlcnR5IGhhcyB3cm9uZyB2
YWx1ZSIpOwotICAgICAgICB2YXIgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3Ioc2VsZlt0aGlzLm5hbWVdLCBtZW1iZXIubmFtZSk7CisgICAgICAgIHZhciBkZXNjID0gT2Jq
ZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0aGlzLmdldF9pbnRlcmZhY2Vfb2JqZWN0KCks
IG1lbWJlci5uYW1lKTsKICAgICAgICAgYXNzZXJ0X2ZhbHNlKCJnZXQiIGluIGRlc2MsICJwcm9w
ZXJ0eSBzaG91bGQgbm90IGhhdmUgYSBnZXR0ZXIiKTsKICAgICAgICAgYXNzZXJ0X2ZhbHNlKCJz
ZXQiIGluIGRlc2MsICJwcm9wZXJ0eSBzaG91bGQgbm90IGhhdmUgYSBzZXR0ZXIiKTsKICAgICAg
ICAgYXNzZXJ0X2ZhbHNlKGRlc2Mud3JpdGFibGUsICJwcm9wZXJ0eSBzaG91bGQgbm90IGJlIHdy
aXRhYmxlIik7CkBAIC0yMDg0LDkgKzIyMjAsNyBAQCBJZGxJbnRlcmZhY2UucHJvdG90eXBlLnRl
c3RfbWVtYmVyX2NvbnN0ID0gZnVuY3Rpb24obWVtYmVyKQogfTsKIAogCi0vL0B9CiBJZGxJbnRl
cmZhY2UucHJvdG90eXBlLnRlc3RfbWVtYmVyX2F0dHJpYnV0ZSA9IGZ1bmN0aW9uKG1lbWJlcikK
LS8vQHsKICAgewogICAgIGlmICghc2hvdWxkUnVuU3ViVGVzdCh0aGlzLm5hbWUpKSB7CiAgICAg
ICAgIHJldHVybjsKQEAgLTIwOTksMTMgKzIyMzMsMTIgQEAgSWRsSW50ZXJmYWNlLnByb3RvdHlw
ZS50ZXN0X21lbWJlcl9hdHRyaWJ1dGUgPSBmdW5jdGlvbihtZW1iZXIpCiAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgIH0KIAotICAgICAgICBhc3NlcnRfb3duX3Byb3BlcnR5KHNlbGYsIHRo
aXMubmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2VsZiBkb2VzIG5vdCBoYXZl
IG93biBwcm9wZXJ0eSAiICsgZm9ybWF0X3ZhbHVlKHRoaXMubmFtZSkpOwotICAgICAgICBhc3Nl
cnRfb3duX3Byb3BlcnR5KHNlbGZbdGhpcy5uYW1lXSwgInByb3RvdHlwZSIsCisgICAgICAgIHRo
aXMuYXNzZXJ0X2ludGVyZmFjZV9vYmplY3RfZXhpc3RzKCk7CisgICAgICAgIGFzc2VydF9vd25f
cHJvcGVydHkodGhpcy5nZXRfaW50ZXJmYWNlX29iamVjdCgpLCAicHJvdG90eXBlIiwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAnaW50ZXJmYWNlICInICsgdGhpcy5uYW1lICsgJyIgZG9l
cyBub3QgaGF2ZSBvd24gcHJvcGVydHkgInByb3RvdHlwZSInKTsKIAotICAgICAgICBpZiAobWVt
YmVyWyJzdGF0aWMiXSkgewotICAgICAgICAgICAgYXNzZXJ0X293bl9wcm9wZXJ0eShzZWxmW3Ro
aXMubmFtZV0sIG1lbWJlci5uYW1lLAorICAgICAgICBpZiAobWVtYmVyLnNwZWNpYWwgPT09ICJz
dGF0aWMiKSB7CisgICAgICAgICAgICBhc3NlcnRfb3duX3Byb3BlcnR5KHRoaXMuZ2V0X2ludGVy
ZmFjZV9vYmplY3QoKSwgbWVtYmVyLm5hbWUsCiAgICAgICAgICAgICAgICAgIlRoZSBpbnRlcmZh
Y2Ugb2JqZWN0IG11c3QgaGF2ZSBhIHByb3BlcnR5ICIgKwogICAgICAgICAgICAgICAgIGZvcm1h
dF92YWx1ZShtZW1iZXIubmFtZSkpOwogICAgICAgICAgICAgYV90ZXN0LmRvbmUoKTsKQEAgLTIx
MTgsNyArMjI1MSw3IEBAIElkbEludGVyZmFjZS5wcm90b3R5cGUudGVzdF9tZW1iZXJfYXR0cmli
dXRlID0gZnVuY3Rpb24obWVtYmVyKQogICAgICAgICAgICAgYXNzZXJ0X293bl9wcm9wZXJ0eShz
ZWxmLCBtZW1iZXIubmFtZSwKICAgICAgICAgICAgICAgICAiVGhlIGdsb2JhbCBvYmplY3QgbXVz
dCBoYXZlIGEgcHJvcGVydHkgIiArCiAgICAgICAgICAgICAgICAgZm9ybWF0X3ZhbHVlKG1lbWJl
ci5uYW1lKSk7Ci0gICAgICAgICAgICBhc3NlcnRfZmFsc2UobWVtYmVyLm5hbWUgaW4gc2VsZlt0
aGlzLm5hbWVdLnByb3RvdHlwZSwKKyAgICAgICAgICAgIGFzc2VydF9mYWxzZShtZW1iZXIubmFt
ZSBpbiB0aGlzLmdldF9pbnRlcmZhY2Vfb2JqZWN0KCkucHJvdG90eXBlLAogICAgICAgICAgICAg
ICAgICJUaGUgcHJvdG90eXBlIG9iamVjdCBzaG91bGQgbm90IGhhdmUgYSBwcm9wZXJ0eSAiICsK
ICAgICAgICAgICAgICAgICBmb3JtYXRfdmFsdWUobWVtYmVyLm5hbWUpKTsKIApAQCAtMjE0Niw0
MiArMjI3OSw0MCBAQCBJZGxJbnRlcmZhY2UucHJvdG90eXBlLnRlc3RfbWVtYmVyX2F0dHJpYnV0
ZSA9IGZ1bmN0aW9uKG1lbWJlcikKICAgICAgICAgICAgIC8vIHNpbmNlIGl0IHdpbGwgY2FsbCBk
b25lKCkgb24gYV90ZXN0LgogICAgICAgICAgICAgdGhpcy5kb19pbnRlcmZhY2VfYXR0cmlidXRl
X2Fzc2VydHMoc2VsZiwgbWVtYmVyLCBhX3Rlc3QpOwogICAgICAgICB9IGVsc2UgewotICAgICAg
ICAgICAgYXNzZXJ0X3RydWUobWVtYmVyLm5hbWUgaW4gc2VsZlt0aGlzLm5hbWVdLnByb3RvdHlw
ZSwKKyAgICAgICAgICAgIGFzc2VydF90cnVlKG1lbWJlci5uYW1lIGluIHRoaXMuZ2V0X2ludGVy
ZmFjZV9vYmplY3QoKS5wcm90b3R5cGUsCiAgICAgICAgICAgICAgICAgIlRoZSBwcm90b3R5cGUg
b2JqZWN0IG11c3QgaGF2ZSBhIHByb3BlcnR5ICIgKwogICAgICAgICAgICAgICAgIGZvcm1hdF92
YWx1ZShtZW1iZXIubmFtZSkpOwogCiAgICAgICAgICAgICBpZiAoIW1lbWJlci5oYXNfZXh0ZW5k
ZWRfYXR0cmlidXRlKCJMZW5pZW50VGhpcyIpKSB7CiAgICAgICAgICAgICAgICAgaWYgKG1lbWJl
ci5pZGxUeXBlLmdlbmVyaWMgIT09ICJQcm9taXNlIikgewogICAgICAgICAgICAgICAgICAgICBh
c3NlcnRfdGhyb3dzKG5ldyBUeXBlRXJyb3IoKSwgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICBzZWxmW3RoaXMubmFtZV0ucHJvdG90eXBlW21lbWJlci5uYW1lXTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0X2ludGVyZmFjZV9vYmplY3QoKS5wcm90b3R5cGVb
bWVtYmVyLm5hbWVdOwogICAgICAgICAgICAgICAgICAgICB9LmJpbmQodGhpcyksICJnZXR0aW5n
IHByb3BlcnR5IG9uIHByb3RvdHlwZSBvYmplY3QgbXVzdCB0aHJvdyBUeXBlRXJyb3IiKTsKICAg
ICAgICAgICAgICAgICAgICAgLy8gZG9faW50ZXJmYWNlX2F0dHJpYnV0ZV9hc3NlcnRzIG11c3Qg
YmUgdGhlIGxhc3QgdGhpbmcgd2UKICAgICAgICAgICAgICAgICAgICAgLy8gZG8sIHNpbmNlIGl0
IHdpbGwgY2FsbCBkb25lKCkgb24gYV90ZXN0LgotICAgICAgICAgICAgICAgICAgICB0aGlzLmRv
X2ludGVyZmFjZV9hdHRyaWJ1dGVfYXNzZXJ0cyhzZWxmW3RoaXMubmFtZV0ucHJvdG90eXBlLCBt
ZW1iZXIsIGFfdGVzdCk7CisgICAgICAgICAgICAgICAgICAgIHRoaXMuZG9faW50ZXJmYWNlX2F0
dHJpYnV0ZV9hc3NlcnRzKHRoaXMuZ2V0X2ludGVyZmFjZV9vYmplY3QoKS5wcm90b3R5cGUsIG1l
bWJlciwgYV90ZXN0KTsKICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAg
ICAgICBwcm9taXNlX3JlamVjdHMoYV90ZXN0LCBuZXcgVHlwZUVycm9yKCksCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmW3RoaXMubmFtZV0ucHJvdG90eXBlW21lbWJl
ci5uYW1lXSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0X2lu
dGVyZmFjZV9vYmplY3QoKS5wcm90b3R5cGVbbWVtYmVyLm5hbWVdKQogICAgICAgICAgICAgICAg
ICAgICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Ly8gZG9faW50ZXJmYWNlX2F0dHJpYnV0ZV9hc3NlcnRzIG11c3QgYmUgdGhlIGxhc3QKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGluZyB3ZSBkbywgc2luY2UgaXQgd2lsbCBjYWxs
IGRvbmUoKSBvbiBhX3Rlc3QuCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5kb19p
bnRlcmZhY2VfYXR0cmlidXRlX2Fzc2VydHMoc2VsZlt0aGlzLm5hbWVdLnByb3RvdHlwZSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRvX2ludGVyZmFjZV9hdHRyaWJ1dGVfYXNz
ZXJ0cyh0aGlzLmdldF9pbnRlcmZhY2Vfb2JqZWN0KCkucHJvdG90eXBlLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lbWJl
ciwgYV90ZXN0KTsKICAgICAgICAgICAgICAgICAgICAgICAgIH0uYmluZCh0aGlzKSk7CiAgICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBhc3Nl
cnRfZXF1YWxzKHNlbGZbdGhpcy5uYW1lXS5wcm90b3R5cGVbbWVtYmVyLm5hbWVdLCB1bmRlZmlu
ZWQsCisgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyh0aGlzLmdldF9pbnRlcmZhY2Vfb2Jq
ZWN0KCkucHJvdG90eXBlW21lbWJlci5uYW1lXSwgdW5kZWZpbmVkLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgImdldHRpbmcgcHJvcGVydHkgb24gcHJvdG90eXBlIG9iamVjdCBtdXN0
IHJldHVybiB1bmRlZmluZWQiKTsKICAgICAgICAgICAgICAgLy8gZG9faW50ZXJmYWNlX2F0dHJp
YnV0ZV9hc3NlcnRzIG11c3QgYmUgdGhlIGxhc3QgdGhpbmcgd2UgZG8sCiAgICAgICAgICAgICAg
IC8vIHNpbmNlIGl0IHdpbGwgY2FsbCBkb25lKCkgb24gYV90ZXN0LgotICAgICAgICAgICAgICB0
aGlzLmRvX2ludGVyZmFjZV9hdHRyaWJ1dGVfYXNzZXJ0cyhzZWxmW3RoaXMubmFtZV0ucHJvdG90
eXBlLCBtZW1iZXIsIGFfdGVzdCk7CisgICAgICAgICAgICAgIHRoaXMuZG9faW50ZXJmYWNlX2F0
dHJpYnV0ZV9hc3NlcnRzKHRoaXMuZ2V0X2ludGVyZmFjZV9vYmplY3QoKS5wcm90b3R5cGUsIG1l
bWJlciwgYV90ZXN0KTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0uYmluZCh0aGlz
KSk7CiB9OwogCi0vL0B9CiBJZGxJbnRlcmZhY2UucHJvdG90eXBlLnRlc3RfbWVtYmVyX29wZXJh
dGlvbiA9IGZ1bmN0aW9uKG1lbWJlcikKLS8vQHsKIHsKICAgICBpZiAoIXNob3VsZFJ1blN1YlRl
c3QodGhpcy5uYW1lKSkgewogICAgICAgICByZXR1cm47CkBAIC0yMjAwLDE3ICsyMzMxLDE2IEBA
IElkbEludGVyZmFjZS5wcm90b3R5cGUudGVzdF9tZW1iZXJfb3BlcmF0aW9uID0gZnVuY3Rpb24o
bWVtYmVyKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAgICAgYXNzZXJ0
X293bl9wcm9wZXJ0eShzZWxmLCB0aGlzLm5hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgInNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIiArIGZvcm1hdF92YWx1ZSh0aGlz
Lm5hbWUpKTsKKyAgICAgICAgdGhpcy5hc3NlcnRfaW50ZXJmYWNlX29iamVjdF9leGlzdHMoKTsK
IAogICAgICAgICBpZiAodGhpcy5pc19jYWxsYmFjaygpKSB7Ci0gICAgICAgICAgICBhc3NlcnRf
ZmFsc2UoInByb3RvdHlwZSIgaW4gc2VsZlt0aGlzLm5hbWVdLAorICAgICAgICAgICAgYXNzZXJ0
X2ZhbHNlKCJwcm90b3R5cGUiIGluIHRoaXMuZ2V0X2ludGVyZmFjZV9vYmplY3QoKSwKICAgICAg
ICAgICAgICAgICAgICAgICAgICB0aGlzLm5hbWUgKyAnIHNob3VsZCBub3QgaGF2ZSBhICJwcm90
b3R5cGUiIHByb3BlcnR5Jyk7CiAgICAgICAgICAgICBhX3Rlc3QuZG9uZSgpOwogICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAgICAgYXNzZXJ0X293bl9wcm9wZXJ0eShzZWxm
W3RoaXMubmFtZV0sICJwcm90b3R5cGUiLAorICAgICAgICBhc3NlcnRfb3duX3Byb3BlcnR5KHRo
aXMuZ2V0X2ludGVyZmFjZV9vYmplY3QoKSwgInByb3RvdHlwZSIsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgJ2ludGVyZmFjZSAiJyArIHRoaXMubmFtZSArICciIGRvZXMgbm90IGhhdmUg
b3duIHByb3BlcnR5ICJwcm90b3R5cGUiJyk7CiAKICAgICAgICAgLy8gIkZvciBlYWNoIHVuaXF1
ZSBpZGVudGlmaWVyIG9mIGFuIGV4cG9zZWQgb3BlcmF0aW9uIGRlZmluZWQgb24gdGhlCkBAIC0y
MjI0LDEwICsyMzU0LDEwIEBAIElkbEludGVyZmFjZS5wcm90b3R5cGUudGVzdF9tZW1iZXJfb3Bl
cmF0aW9uID0gZnVuY3Rpb24obWVtYmVyKQogICAgICAgICB2YXIgbWVtYmVySG9sZGVyT2JqZWN0
OwogICAgICAgICAvLyAiKiBJZiB0aGUgb3BlcmF0aW9uIGlzIHN0YXRpYywgdGhlbiB0aGUgcHJv
cGVydHkgZXhpc3RzIG9uIHRoZQogICAgICAgICAvLyAgICBpbnRlcmZhY2Ugb2JqZWN0LiIKLSAg
ICAgICAgaWYgKG1lbWJlclsic3RhdGljIl0pIHsKLSAgICAgICAgICAgIGFzc2VydF9vd25fcHJv
cGVydHkoc2VsZlt0aGlzLm5hbWVdLCBtZW1iZXIubmFtZSwKKyAgICAgICAgaWYgKG1lbWJlci5z
cGVjaWFsID09PSAic3RhdGljIikgeworICAgICAgICAgICAgYXNzZXJ0X293bl9wcm9wZXJ0eSh0
aGlzLmdldF9pbnRlcmZhY2Vfb2JqZWN0KCksIG1lbWJlci5uYW1lLAogICAgICAgICAgICAgICAg
ICAgICAiaW50ZXJmYWNlIG9iamVjdCBtaXNzaW5nIHN0YXRpYyBvcGVyYXRpb24iKTsKLSAgICAg
ICAgICAgIG1lbWJlckhvbGRlck9iamVjdCA9IHNlbGZbdGhpcy5uYW1lXTsKKyAgICAgICAgICAg
IG1lbWJlckhvbGRlck9iamVjdCA9IHRoaXMuZ2V0X2ludGVyZmFjZV9vYmplY3QoKTsKICAgICAg
ICAgLy8gIiogT3RoZXJ3aXNlLCBbLi4uXSBpZiB0aGUgaW50ZXJmYWNlIHdhcyBkZWNsYXJlZCB3
aXRoIHRoZSBbR2xvYmFsXQogICAgICAgICAvLyAgICBleHRlbmRlZCBhdHRyaWJ1dGUsIHRoZW4g
dGhlIHByb3BlcnR5IGV4aXN0cwogICAgICAgICAvLyAgICBvbiBldmVyeSBvYmplY3QgdGhhdCBp
bXBsZW1lbnRzIHRoZSBpbnRlcmZhY2UuIgpAQCAtMjIzOCw5ICsyMzY4LDkgQEAgSWRsSW50ZXJm
YWNlLnByb3RvdHlwZS50ZXN0X21lbWJlcl9vcGVyYXRpb24gPSBmdW5jdGlvbihtZW1iZXIpCiAg
ICAgICAgIC8vICIqIE90aGVyd2lzZSwgdGhlIHByb3BlcnR5IGV4aXN0cyBzb2xlbHkgb24gdGhl
IGludGVyZmFjZeKAmXMKICAgICAgICAgLy8gICAgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3Qu
IgogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgYXNzZXJ0X293bl9wcm9wZXJ0eShzZWxm
W3RoaXMubmFtZV0ucHJvdG90eXBlLCBtZW1iZXIubmFtZSwKKyAgICAgICAgICAgIGFzc2VydF9v
d25fcHJvcGVydHkodGhpcy5nZXRfaW50ZXJmYWNlX29iamVjdCgpLnByb3RvdHlwZSwgbWVtYmVy
Lm5hbWUsCiAgICAgICAgICAgICAgICAgICAgICJpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCBt
aXNzaW5nIG5vbi1zdGF0aWMgb3BlcmF0aW9uIik7Ci0gICAgICAgICAgICBtZW1iZXJIb2xkZXJP
YmplY3QgPSBzZWxmW3RoaXMubmFtZV0ucHJvdG90eXBlOworICAgICAgICAgICAgbWVtYmVySG9s
ZGVyT2JqZWN0ID0gdGhpcy5nZXRfaW50ZXJmYWNlX29iamVjdCgpLnByb3RvdHlwZTsKICAgICAg
ICAgfQogICAgICAgICB0aGlzLmRvX21lbWJlcl91bnNjb3BhYmxlX2Fzc2VydHMobWVtYmVyKTsK
ICAgICAgICAgdGhpcy5kb19tZW1iZXJfb3BlcmF0aW9uX2Fzc2VydHMobWVtYmVySG9sZGVyT2Jq
ZWN0LCBtZW1iZXIsIGFfdGVzdCk7CkBAIC0yMjU1LDcgKzIzODUsNyBAQCBJZGxJbnRlcmZhY2Uu
cHJvdG90eXBlLmRvX21lbWJlcl91bnNjb3BhYmxlX2Fzc2VydHMgPSBmdW5jdGlvbihtZW1iZXIp
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICB2YXIgdW5zY29wYWJsZXMgPSBzZWxmW3Ro
aXMubmFtZV0ucHJvdG90eXBlW1N5bWJvbC51bnNjb3BhYmxlc107CisgICAgdmFyIHVuc2NvcGFi
bGVzID0gdGhpcy5nZXRfaW50ZXJmYWNlX29iamVjdCgpLnByb3RvdHlwZVtTeW1ib2wudW5zY29w
YWJsZXNdOwogICAgIHZhciBwcm9wID0gbWVtYmVyLm5hbWU7CiAgICAgdmFyIHByb3BEZXNjID0g
T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih1bnNjb3BhYmxlcywgcHJvcCk7CiAgICAg
YXNzZXJ0X2VxdWFscyh0eXBlb2YgcHJvcERlc2MsICJvYmplY3QiLApAQCAtMjI3NCw5ICsyNDA0
LDcgQEAgSWRsSW50ZXJmYWNlLnByb3RvdHlwZS5kb19tZW1iZXJfdW5zY29wYWJsZV9hc3NlcnRz
ID0gZnVuY3Rpb24obWVtYmVyKQogICAgICAgICAgICAgICAgICAgdGhpcy5uYW1lICsgJy5wcm90
b3R5cGVbU3ltYm9sLnVuc2NvcGFibGVzXS4nICsgcHJvcCArICcgbXVzdCBoYXZlIHRoZSB2YWx1
ZSBgdHJ1ZWAnKTsKIH07CiAKLS8vQH0KIElkbEludGVyZmFjZS5wcm90b3R5cGUuZG9fbWVtYmVy
X29wZXJhdGlvbl9hc3NlcnRzID0gZnVuY3Rpb24obWVtYmVySG9sZGVyT2JqZWN0LCBtZW1iZXIs
IGFfdGVzdCkKLS8vQHsKIHsKICAgICB2YXIgZG9uZSA9IGFfdGVzdC5kb25lLmJpbmQoYV90ZXN0
KTsKICAgICB2YXIgb3BlcmF0aW9uVW5mb3JnZWFibGUgPSBtZW1iZXIuaXNVbmZvcmdlYWJsZTsK
QEAgLTIzMTksNyArMjQ0Nyw3IEBAIElkbEludGVyZmFjZS5wcm90b3R5cGUuZG9fbWVtYmVyX29w
ZXJhdGlvbl9hc3NlcnRzID0gZnVuY3Rpb24obWVtYmVySG9sZGVyT2JqZWN0CiAgICAgLy8gY2hl
Y2sgZm9yIGdsb2JhbHMsIHNpbmNlIG90aGVyd2lzZSB3ZSdsbCBpbnZva2Ugd2luZG93LmNsb3Nl
KCkuICBBbmQgd2UKICAgICAvLyBoYXZlIHRvIHNraXAgdGhpcyB0ZXN0IGZvciBhbnl0aGluZyB0
aGF0IG9uIHRoZSBwcm90byBjaGFpbiBvZiAic2VsZiIsCiAgICAgLy8gc2luY2UgdGhhdCBkb2Vz
IGluIGZhY3QgaGF2ZSBpbXBsaWNpdC10aGlzIGJlaGF2aW9yLgotICAgIGlmICghbWVtYmVyWyJz
dGF0aWMiXSkgeworICAgIGlmIChtZW1iZXIuc3BlY2lhbCAhPT0gInN0YXRpYyIpIHsKICAgICAg
ICAgdmFyIGNiOwogICAgICAgICBpZiAoIXRoaXMuaXNfZ2xvYmFsKCkgJiYKICAgICAgICAgICAg
IG1lbWJlckhvbGRlck9iamVjdFttZW1iZXIubmFtZV0gIT0gc2VsZlttZW1iZXIubmFtZV0pCkBA
IC0yMzQzLDI0ICsyNDcxLDcgQEAgSWRsSW50ZXJmYWNlLnByb3RvdHlwZS5kb19tZW1iZXJfb3Bl
cmF0aW9uX2Fzc2VydHMgPSBmdW5jdGlvbihtZW1iZXJIb2xkZXJPYmplY3QKICAgICB9CiB9CiAK
LS8vQH0KLUlkbEludGVyZmFjZS5wcm90b3R5cGUuYWRkX2l0ZXJhYmxlX21lbWJlcnMgPSBmdW5j
dGlvbihtZW1iZXIpCi0vL0B7Ci17Ci0gICAgdGhpcy5tZW1iZXJzLnB1c2gobmV3IElkbEludGVy
ZmFjZU1lbWJlcigKLSAgICAgICAgeyB0eXBlOiAib3BlcmF0aW9uIiwgbmFtZTogImVudHJpZXMi
LCBpZGxUeXBlOiAiaXRlcmF0b3IiLCBhcmd1bWVudHM6IFtdfSkpOwotICAgIHRoaXMubWVtYmVy
cy5wdXNoKG5ldyBJZGxJbnRlcmZhY2VNZW1iZXIoCi0gICAgICAgIHsgdHlwZTogIm9wZXJhdGlv
biIsIG5hbWU6ICJrZXlzIiwgaWRsVHlwZTogIml0ZXJhdG9yIiwgYXJndW1lbnRzOiBbXX0pKTsK
LSAgICB0aGlzLm1lbWJlcnMucHVzaChuZXcgSWRsSW50ZXJmYWNlTWVtYmVyKAotICAgICAgICB7
IHR5cGU6ICJvcGVyYXRpb24iLCBuYW1lOiAidmFsdWVzIiwgaWRsVHlwZTogIml0ZXJhdG9yIiwg
YXJndW1lbnRzOiBbXX0pKTsKLSAgICB0aGlzLm1lbWJlcnMucHVzaChuZXcgSWRsSW50ZXJmYWNl
TWVtYmVyKAotICAgICAgICB7IHR5cGU6ICJvcGVyYXRpb24iLCBuYW1lOiAiZm9yRWFjaCIsIGlk
bFR5cGU6ICJ2b2lkIiwKLSAgICAgICAgICBhcmd1bWVudHM6Ci0gICAgICAgICAgW3sgbmFtZTog
ImNhbGxiYWNrIiwgaWRsVHlwZToge2lkbFR5cGU6ICJmdW5jdGlvbiJ9fSwKLSAgICAgICAgICAg
eyBuYW1lOiAidGhpc1ZhbHVlIiwgaWRsVHlwZToge2lkbFR5cGU6ICJhbnkifSwgb3B0aW9uYWw6
IHRydWV9XX0pKTsKLX07Ci0KLUlkbEludGVyZmFjZS5wcm90b3R5cGUudGVzdF90b19qc29uX29w
ZXJhdGlvbiA9IGZ1bmN0aW9uKG1lbWJlckhvbGRlck9iamVjdCwgbWVtYmVyKSB7CitJZGxJbnRl
cmZhY2UucHJvdG90eXBlLnRlc3RfdG9fanNvbl9vcGVyYXRpb24gPSBmdW5jdGlvbihkZXNjLCBt
ZW1iZXJIb2xkZXJPYmplY3QsIG1lbWJlcikgewogICAgIHZhciBpbnN0YW5jZU5hbWUgPSBtZW1i
ZXJIb2xkZXJPYmplY3QgJiYgbWVtYmVySG9sZGVyT2JqZWN0LmNvbnN0cnVjdG9yLm5hbWUKICAg
ICAgICAgfHwgbWVtYmVyLm5hbWUgKyAiIG9iamVjdCI7CiAgICAgaWYgKG1lbWJlci5oYXNfZXh0
ZW5kZWRfYXR0cmlidXRlKCJEZWZhdWx0IikpIHsKQEAgLTIzNzYsNDYgKzI0ODcsNDMgQEAgSWRs
SW50ZXJmYWNlLnByb3RvdHlwZS50ZXN0X3RvX2pzb25fb3BlcmF0aW9uID0gZnVuY3Rpb24obWVt
YmVySG9sZGVyT2JqZWN0LCBtZW0KICAgICAgICAgICAgICAgICB0aGlzLmFycmF5LmFzc2VydF90
eXBlX2lzKGpzb25ba10sIHR5cGUpOwogICAgICAgICAgICAgICAgIGRlbGV0ZSBqc29uW2tdOwog
ICAgICAgICAgICAgfSwgdGhpcyk7Ci0gICAgICAgIH0uYmluZCh0aGlzKSwgIlRlc3QgZGVmYXVs
dCB0b0pTT04gb3BlcmF0aW9uIG9mICIgKyBpbnN0YW5jZU5hbWUpOworICAgICAgICB9LmJpbmQo
dGhpcyksIHRoaXMubmFtZSArICIgaW50ZXJmYWNlOiBkZWZhdWx0IHRvSlNPTiBvcGVyYXRpb24g
b24gIiArIGRlc2MpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIHN1YnNldFRlc3RCeUtleSh0aGlz
Lm5hbWUsIHRlc3QsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgYXNzZXJ0X3RydWUodGhpcy5h
cnJheS5pc19qc29uX3R5cGUobWVtYmVyLmlkbFR5cGUpLCBKU09OLnN0cmluZ2lmeShtZW1iZXIu
aWRsVHlwZSkgKyAiIGlzIG5vdCBhbiBhcHByb3ByaWF0ZSByZXR1cm4gdmFsdWUgZm9yIHRoZSB0
b0pTT04gb3BlcmF0aW9uIG9mICIgKyBpbnN0YW5jZU5hbWUpOwogICAgICAgICAgICAgdGhpcy5h
cnJheS5hc3NlcnRfdHlwZV9pcyhtZW1iZXJIb2xkZXJPYmplY3QudG9KU09OKCksIG1lbWJlci5p
ZGxUeXBlKTsKLSAgICAgICAgfS5iaW5kKHRoaXMpLCAiVGVzdCB0b0pTT04gb3BlcmF0aW9uIG9m
ICIgKyBpbnN0YW5jZU5hbWUpOworICAgICAgICB9LmJpbmQodGhpcyksIHRoaXMubmFtZSArICIg
aW50ZXJmYWNlOiB0b0pTT04gb3BlcmF0aW9uIG9uICIgKyBkZXNjKTsKICAgICB9CiB9OwogCi0v
L0B9CiBJZGxJbnRlcmZhY2UucHJvdG90eXBlLnRlc3RfbWVtYmVyX2l0ZXJhYmxlID0gZnVuY3Rp
b24obWVtYmVyKQotLy9AewogewotICAgIHZhciBpbnRlcmZhY2VOYW1lID0gdGhpcy5uYW1lOwot
ICAgIHZhciBpc1BhaXJJdGVyYXRvciA9IG1lbWJlci5pZGxUeXBlLmxlbmd0aCA9PT0gMjsKICAg
ICBzdWJzZXRUZXN0QnlLZXkodGhpcy5uYW1lLCB0ZXN0LCBmdW5jdGlvbigpCiAgICAgewotICAg
ICAgICB2YXIgZGVzY3JpcHRvciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Ioc2Vs
ZltpbnRlcmZhY2VOYW1lXS5wcm90b3R5cGUsIFN5bWJvbC5pdGVyYXRvcik7Ci0gICAgICAgIGFz
c2VydF90cnVlKGRlc2NyaXB0b3Iud3JpdGFibGUsICJwcm9wZXJ0eSBzaG91bGQgYmUgd3JpdGFi
bGUiKTsKLSAgICAgICAgYXNzZXJ0X3RydWUoZGVzY3JpcHRvci5jb25maWd1cmFibGUsICJwcm9w
ZXJ0eSBzaG91bGQgYmUgY29uZmlndXJhYmxlIik7Ci0gICAgICAgIGFzc2VydF9mYWxzZShkZXNj
cmlwdG9yLmVudW1lcmFibGUsICJwcm9wZXJ0eSBzaG91bGQgbm90IGJlIGVudW1lcmFibGUiKTsK
LSAgICAgICAgYXNzZXJ0X2VxdWFscyhzZWxmW2ludGVyZmFjZU5hbWVdLnByb3RvdHlwZVtTeW1i
b2wuaXRlcmF0b3JdLm5hbWUsIGlzUGFpckl0ZXJhdG9yID8gImVudHJpZXMiIDogInZhbHVlcyIs
ICJAQGl0ZXJhdG9yIGZ1bmN0aW9uIGRvZXMgbm90IGhhdmUgdGhlIHJpZ2h0IG5hbWUiKTsKLSAg
ICB9LCAiVGVzdGluZyBTeW1ib2wuaXRlcmF0b3IgcHJvcGVydHkgb2YgaXRlcmFibGUgaW50ZXJm
YWNlICIgKyBpbnRlcmZhY2VOYW1lKTsKLQotICAgIGlmIChpc1BhaXJJdGVyYXRvcikgewotICAg
ICAgICBzdWJzZXRUZXN0QnlLZXkodGhpcy5uYW1lLCB0ZXN0LCBmdW5jdGlvbigpIHsKLSAgICAg
ICAgICAgIGFzc2VydF9lcXVhbHMoc2VsZltpbnRlcmZhY2VOYW1lXS5wcm90b3R5cGVbU3ltYm9s
Lml0ZXJhdG9yXSwgc2VsZltpbnRlcmZhY2VOYW1lXS5wcm90b3R5cGVbImVudHJpZXMiXSwgImVu
dHJpZXMgbWV0aG9kIGlzIG5vdCB0aGUgc2FtZSBhcyBAQGl0ZXJhdG9yIik7Ci0gICAgICAgIH0s
ICJUZXN0aW5nIHBhaXIgaXRlcmFibGUgaW50ZXJmYWNlICIgKyBpbnRlcmZhY2VOYW1lKTsKLSAg
ICB9IGVsc2UgewotICAgICAgICBzdWJzZXRUZXN0QnlLZXkodGhpcy5uYW1lLCB0ZXN0LCBmdW5j
dGlvbigpIHsKLSAgICAgICAgICAgIFsiZW50cmllcyIsICJrZXlzIiwgInZhbHVlcyIsICJmb3JF
YWNoIiwgU3ltYm9sLkl0ZXJhdG9yXS5mb3JFYWNoKGZ1bmN0aW9uKHByb3BlcnR5KSB7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzZWxmW2ludGVyZmFjZU5hbWVdLnByb3RvdHlwZVtw
cm9wZXJ0eV0sIEFycmF5LnByb3RvdHlwZVtwcm9wZXJ0eV0sIHByb3BlcnR5ICsgIiBmdW5jdGlv
biBpcyBub3QgdGhlIHNhbWUgYXMgQXJyYXkgb25lIik7Ci0gICAgICAgICAgICB9KTsKLSAgICAg
ICAgfSwgIlRlc3RpbmcgdmFsdWUgaXRlcmFibGUgaW50ZXJmYWNlICIgKyBpbnRlcmZhY2VOYW1l
KTsKLSAgICB9CisgICAgICAgIHZhciBpc1BhaXJJdGVyYXRvciA9IG1lbWJlci5pZGxUeXBlLmxl
bmd0aCA9PT0gMjsKKyAgICAgICAgdmFyIHByb3RvID0gdGhpcy5nZXRfaW50ZXJmYWNlX29iamVj
dCgpLnByb3RvdHlwZTsKKyAgICAgICAgdmFyIGRlc2NyaXB0b3IgPSBPYmplY3QuZ2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yKHByb3RvLCBTeW1ib2wuaXRlcmF0b3IpOworCisgICAgICAgIGFzc2Vy
dF90cnVlKGRlc2NyaXB0b3Iud3JpdGFibGUsICJAQGl0ZXJhdG9yIHByb3BlcnR5IHNob3VsZCBi
ZSB3cml0YWJsZSIpOworICAgICAgICBhc3NlcnRfdHJ1ZShkZXNjcmlwdG9yLmNvbmZpZ3VyYWJs
ZSwgIkBAaXRlcmF0b3IgcHJvcGVydHkgc2hvdWxkIGJlIGNvbmZpZ3VyYWJsZSIpOworICAgICAg
ICBhc3NlcnRfZmFsc2UoZGVzY3JpcHRvci5lbnVtZXJhYmxlLCAiQEBpdGVyYXRvciBwcm9wZXJ0
eSBzaG91bGQgbm90IGJlIGVudW1lcmFibGUiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyh0eXBl
b2YgZGVzY3JpcHRvci52YWx1ZSwgImZ1bmN0aW9uIiwgIkBAaXRlcmF0b3IgcHJvcGVydHkgc2hv
dWxkIGJlIGEgZnVuY3Rpb24iKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhkZXNjcmlwdG9yLnZh
bHVlLmxlbmd0aCwgMCwgIkBAaXRlcmF0b3IgZnVuY3Rpb24gb2JqZWN0IGxlbmd0aCBzaG91bGQg
YmUgMCIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKGRlc2NyaXB0b3IudmFsdWUubmFtZSwgaXNQ
YWlySXRlcmF0b3IgPyAiZW50cmllcyIgOiAidmFsdWVzIiwgIkBAaXRlcmF0b3IgZnVuY3Rpb24g
b2JqZWN0IHNob3VsZCBoYXZlIHRoZSByaWdodCBuYW1lIik7CisKKyAgICAgICAgaWYgKGlzUGFp
ckl0ZXJhdG9yKSB7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHByb3RvWyJlbnRyaWVzIl0s
IHByb3RvW1N5bWJvbC5pdGVyYXRvcl0sICJlbnRyaWVzIG1ldGhvZCBzaG91bGQgYmUgdGhlIHNh
bWUgYXMgQEBpdGVyYXRvciBtZXRob2QiKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAg
IGFzc2VydF9lcXVhbHMocHJvdG9bU3ltYm9sLml0ZXJhdG9yXSwgQXJyYXkucHJvdG90eXBlW1N5
bWJvbC5pdGVyYXRvcl0sICJAQGl0ZXJhdG9yIG1ldGhvZCBzaG91bGQgYmUgdGhlIHNhbWUgYXMg
QXJyYXkgcHJvdG90eXBlJ3MiKTsKKyAgICAgICAgICAgIFsiZW50cmllcyIsICJrZXlzIiwgInZh
bHVlcyIsICJmb3JFYWNoIiwgU3ltYm9sLml0ZXJhdG9yXS5mb3JFYWNoKGZ1bmN0aW9uKHByb3Bl
cnR5KSB7CisgICAgICAgICAgICAgICAgdmFyIHByb3BlcnR5TmFtZSA9IHByb3BlcnR5ID09PSBT
eW1ib2wuaXRlcmF0b3IgPyAiQEBpdGVyYXRvciIgOiBwcm9wZXJ0eTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKHByb3RvW3Byb3BlcnR5XSwgQXJyYXkucHJvdG90eXBlW3Byb3BlcnR5
XSwgcHJvcGVydHlOYW1lICsgIiBtZXRob2Qgc2hvdWxkIGJlIHRoZSBzYW1lIGFzIEFycmF5IHBy
b3RvdHlwZSdzIik7CisgICAgICAgICAgICB9LmJpbmQodGhpcykpOworICAgICAgICB9CisgICAg
fS5iaW5kKHRoaXMpLCB0aGlzLm5hbWUgKyAiIGludGVyZmFjZTogaXRlcmFibGU8IiArIG1lbWJl
ci5pZGxUeXBlLm1hcChmdW5jdGlvbih0KSB7IHJldHVybiB0LmlkbFR5cGU7IH0pLmpvaW4oIiwg
IikgKyAiPiIpOwogfTsKIAotLy9AfQogSWRsSW50ZXJmYWNlLnByb3RvdHlwZS50ZXN0X21lbWJl
cl9zdHJpbmdpZmllciA9IGZ1bmN0aW9uKG1lbWJlcikKLS8vQHsKIHsKICAgICBzdWJzZXRUZXN0
QnlLZXkodGhpcy5uYW1lLCB0ZXN0LCBmdW5jdGlvbigpCiAgICAgewpAQCAtMjQyMywyMSArMjUz
MSwyMCBAQCBJZGxJbnRlcmZhY2UucHJvdG90eXBlLnRlc3RfbWVtYmVyX3N0cmluZ2lmaWVyID0g
ZnVuY3Rpb24obWVtYmVyKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAg
ICAgYXNzZXJ0X293bl9wcm9wZXJ0eShzZWxmLCB0aGlzLm5hbWUsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgInNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIiArIGZvcm1hdF92
YWx1ZSh0aGlzLm5hbWUpKTsKKyAgICAgICAgdGhpcy5hc3NlcnRfaW50ZXJmYWNlX29iamVjdF9l
eGlzdHMoKTsKIAogICAgICAgICBpZiAodGhpcy5pc19jYWxsYmFjaygpKSB7Ci0gICAgICAgICAg
ICBhc3NlcnRfZmFsc2UoInByb3RvdHlwZSIgaW4gc2VsZlt0aGlzLm5hbWVdLAorICAgICAgICAg
ICAgYXNzZXJ0X2ZhbHNlKCJwcm90b3R5cGUiIGluIHRoaXMuZ2V0X2ludGVyZmFjZV9vYmplY3Qo
KSwKICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm5hbWUgKyAnIHNob3VsZCBub3QgaGF2
ZSBhICJwcm90b3R5cGUiIHByb3BlcnR5Jyk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
IH0KIAotICAgICAgICBhc3NlcnRfb3duX3Byb3BlcnR5KHNlbGZbdGhpcy5uYW1lXSwgInByb3Rv
dHlwZSIsCisgICAgICAgIGFzc2VydF9vd25fcHJvcGVydHkodGhpcy5nZXRfaW50ZXJmYWNlX29i
amVjdCgpLCAicHJvdG90eXBlIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaW50ZXJm
YWNlICInICsgdGhpcy5uYW1lICsgJyIgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgInByb3Rv
dHlwZSInKTsKIAogICAgICAgICAvLyAiLiAuIC4gdGhlIHByb3BlcnR5IGV4aXN0cyBvbiB0aGUg
aW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QuIgotICAgICAgICB2YXIgaW50ZXJmYWNlUHJvdG90
eXBlT2JqZWN0ID0gc2VsZlt0aGlzLm5hbWVdLnByb3RvdHlwZTsKLSAgICAgICAgYXNzZXJ0X293
bl9wcm9wZXJ0eShzZWxmW3RoaXMubmFtZV0ucHJvdG90eXBlLCAidG9TdHJpbmciLAorICAgICAg
ICB2YXIgaW50ZXJmYWNlUHJvdG90eXBlT2JqZWN0ID0gdGhpcy5nZXRfaW50ZXJmYWNlX29iamVj
dCgpLnByb3RvdHlwZTsKKyAgICAgICAgYXNzZXJ0X293bl9wcm9wZXJ0eShpbnRlcmZhY2VQcm90
b3R5cGVPYmplY3QsICJ0b1N0cmluZyIsCiAgICAgICAgICAgICAgICAgImludGVyZmFjZSBwcm90
b3R5cGUgb2JqZWN0IG1pc3Npbmcgbm9uLXN0YXRpYyBvcGVyYXRpb24iKTsKIAogICAgICAgICB2
YXIgc3RyaW5naWZpZXJVbmZvcmdlYWJsZSA9IG1lbWJlci5pc1VuZm9yZ2VhYmxlOwpAQCAtMjQ2
Myw3ICsyNTcwLDcgQEAgSWRsSW50ZXJmYWNlLnByb3RvdHlwZS50ZXN0X21lbWJlcl9zdHJpbmdp
ZmllciA9IGZ1bmN0aW9uKG1lbWJlcikKIAogICAgICAgICAvLyAiTGV0IE8gYmUgdGhlIHJlc3Vs
dCBvZiBjYWxsaW5nIFRvT2JqZWN0IG9uIHRoZSB0aGlzIHZhbHVlLiIKICAgICAgICAgYXNzZXJ0
X3Rocm93cyhuZXcgVHlwZUVycm9yKCksIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgc2VsZlt0
aGlzLm5hbWVdLnByb3RvdHlwZS50b1N0cmluZy5hcHBseShudWxsLCBbXSk7CisgICAgICAgICAg
ICBpbnRlcmZhY2VQcm90b3R5cGVPYmplY3QudG9TdHJpbmcuYXBwbHkobnVsbCwgW10pOwogICAg
ICAgICB9LCAiY2FsbGluZyBzdHJpbmdpZmllciB3aXRoIHRoaXMgPSBudWxsIGRpZG4ndCB0aHJv
dyBUeXBlRXJyb3IiKTsKIAogICAgICAgICAvLyAiSWYgTyBpcyBub3QgYW4gb2JqZWN0IHRoYXQg
aW1wbGVtZW50cyB0aGUgaW50ZXJmYWNlIG9uIHdoaWNoIHRoZQpAQCAtMjQ3MiwyOCArMjU3OSwx
MyBAQCBJZGxJbnRlcmZhY2UucHJvdG90eXBlLnRlc3RfbWVtYmVyX3N0cmluZ2lmaWVyID0gZnVu
Y3Rpb24obWVtYmVyKQogICAgICAgICAvLyBUT0RPOiBUZXN0IGEgcGxhdGZvcm0gb2JqZWN0IHRo
YXQgaW1wbGVtZW50cyBzb21lIG90aGVyCiAgICAgICAgIC8vIGludGVyZmFjZS4gIChIYXZlIHRv
IGJlIHN1cmUgdG8gZ2V0IGluaGVyaXRhbmNlIHJpZ2h0LikKICAgICAgICAgYXNzZXJ0X3Rocm93
cyhuZXcgVHlwZUVycm9yKCksIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgc2VsZlt0aGlzLm5h
bWVdLnByb3RvdHlwZS50b1N0cmluZy5hcHBseSh7fSwgW10pOworICAgICAgICAgICAgaW50ZXJm
YWNlUHJvdG90eXBlT2JqZWN0LnRvU3RyaW5nLmFwcGx5KHt9LCBbXSk7CiAgICAgICAgIH0sICJj
YWxsaW5nIHN0cmluZ2lmaWVyIHdpdGggdGhpcyA9IHt9IGRpZG4ndCB0aHJvdyBUeXBlRXJyb3Ii
KTsKICAgICB9LmJpbmQodGhpcyksIHRoaXMubmFtZSArICIgaW50ZXJmYWNlOiBzdHJpbmdpZmll
ciIpOwogfTsKIAotLy9AfQogSWRsSW50ZXJmYWNlLnByb3RvdHlwZS50ZXN0X21lbWJlcnMgPSBm
dW5jdGlvbigpCi0vL0B7CiB7Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLm1lbWJlcnMu
bGVuZ3RoOyBpKyspCi0gICAgewotICAgICAgICB2YXIgbWVtYmVyID0gdGhpcy5tZW1iZXJzW2ld
OwotICAgICAgICBzd2l0Y2ggKG1lbWJlci50eXBlKSB7Ci0gICAgICAgIGNhc2UgIml0ZXJhYmxl
IjoKLSAgICAgICAgICAgIHRoaXMuYWRkX2l0ZXJhYmxlX21lbWJlcnMobWVtYmVyKTsKLSAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgICAvLyBUT0RPOiBhZGQgc2V0bGlrZSBhbmQgbWFwbGlrZSBo
YW5kbGluZy4KLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9
Ci0gICAgfQotCiAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLm1lbWJlcnMubGVuZ3RoOyBp
KyspCiAgICAgewogICAgICAgICB2YXIgbWVtYmVyID0gdGhpcy5tZW1iZXJzW2ldOwpAQCAtMjUw
NCwxMCArMjU5NiwxMCBAQCBJZGxJbnRlcmZhY2UucHJvdG90eXBlLnRlc3RfbWVtYmVycyA9IGZ1
bmN0aW9uKCkKICAgICAgICAgaWYgKCFleHBvc2VkX2luKGV4cG9zdXJlX3NldChtZW1iZXIsIHRo
aXMuZXhwb3N1cmVTZXQpKSkgewogICAgICAgICAgICAgc3Vic2V0VGVzdEJ5S2V5KHRoaXMubmFt
ZSwgdGVzdCwgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgLy8gSXQncyBub3QgZXhwb3Nl
ZCwgc28gd2Ugc2hvdWxkbid0IGZpbmQgaXQgYW55d2hlcmUuCi0gICAgICAgICAgICAgICAgYXNz
ZXJ0X2ZhbHNlKG1lbWJlci5uYW1lIGluIHNlbGZbdGhpcy5uYW1lXSwKKyAgICAgICAgICAgICAg
ICBhc3NlcnRfZmFsc2UobWVtYmVyLm5hbWUgaW4gdGhpcy5nZXRfaW50ZXJmYWNlX29iamVjdCgp
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVGhlIGludGVyZmFjZSBvYmplY3QgbXVz
dCBub3QgaGF2ZSBhIHByb3BlcnR5ICIgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBm
b3JtYXRfdmFsdWUobWVtYmVyLm5hbWUpKTsKLSAgICAgICAgICAgICAgICBhc3NlcnRfZmFsc2Uo
bWVtYmVyLm5hbWUgaW4gc2VsZlt0aGlzLm5hbWVdLnByb3RvdHlwZSwKKyAgICAgICAgICAgICAg
ICBhc3NlcnRfZmFsc2UobWVtYmVyLm5hbWUgaW4gdGhpcy5nZXRfaW50ZXJmYWNlX29iamVjdCgp
LnByb3RvdHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlRoZSBwcm90b3R5cGUg
b2JqZWN0IG11c3Qgbm90IGhhdmUgYSBwcm9wZXJ0eSAiICsKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZm9ybWF0X3ZhbHVlKG1lbWJlci5uYW1lKSk7CiAgICAgICAgICAgICB9LmJpbmQo
dGhpcyksIHRoaXMubmFtZSArICIgaW50ZXJmYWNlOiBtZW1iZXIgIiArIG1lbWJlci5uYW1lKTsK
QEAgLTI1MjYsNyArMjYxOCw3IEBAIElkbEludGVyZmFjZS5wcm90b3R5cGUudGVzdF9tZW1iZXJz
ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIHRoaXMudGVzdF9t
ZW1iZXJfYXR0cmlidXRlKG1lbWJlcik7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAo
bWVtYmVyLnN0cmluZ2lmaWVyKSB7CisgICAgICAgICAgICBpZiAobWVtYmVyLnNwZWNpYWwgPT09
ICJzdHJpbmdpZmllciIpIHsKICAgICAgICAgICAgICAgICB0aGlzLnRlc3RfbWVtYmVyX3N0cmlu
Z2lmaWVyKG1lbWJlcik7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVhazsKQEAgLTI1
NDEsNyArMjYzMyw3IEBAIElkbEludGVyZmFjZS5wcm90b3R5cGUudGVzdF9tZW1iZXJzID0gZnVu
Y3Rpb24oKQogICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgdGhpcy50ZXN0
X21lbWJlcl9vcGVyYXRpb24obWVtYmVyKTsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICB9IGVsc2UgaWYgKG1lbWJlci5zdHJpbmdpZmllcikgeworICAgICAgICAgICAgfSBlbHNlIGlm
IChtZW1iZXIuc3BlY2lhbCA9PT0gInN0cmluZ2lmaWVyIikgewogICAgICAgICAgICAgICAgIHRo
aXMudGVzdF9tZW1iZXJfc3RyaW5naWZpZXIobWVtYmVyKTsKICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgIGJyZWFrOwpAQCAtMjU1Niw5ICsyNjQ4LDcgQEAgSWRsSW50ZXJmYWNlLnByb3RvdHlw
ZS50ZXN0X21lbWJlcnMgPSBmdW5jdGlvbigpCiAgICAgfQogfTsKIAotLy9AfQogSWRsSW50ZXJm
YWNlLnByb3RvdHlwZS50ZXN0X29iamVjdCA9IGZ1bmN0aW9uKGRlc2MpCi0vL0B7CiB7CiAgICAg
dmFyIG9iaiwgZXhjZXB0aW9uID0gbnVsbDsKICAgICB0cnkKQEAgLTI1OTMsOSArMjY4Myw3IEBA
IElkbEludGVyZmFjZS5wcm90b3R5cGUudGVzdF9vYmplY3QgPSBmdW5jdGlvbihkZXNjKQogICAg
IH0KIH07CiAKLS8vQH0KIElkbEludGVyZmFjZS5wcm90b3R5cGUudGVzdF9wcmltYXJ5X2ludGVy
ZmFjZV9vZiA9IGZ1bmN0aW9uKGRlc2MsIG9iaiwgZXhjZXB0aW9uLCBleHBlY3RlZF90eXBlb2Yp
Ci0vL0B7CiB7CiAgICAgLy8gT25seSB0aGUgb2JqZWN0IGl0c2VsZiwgbm90IGl0cyBtZW1iZXJz
LCBhcmUgdGVzdGVkIGhlcmUsIHNvIGlmIHRoZQogICAgIC8vIGludGVyZmFjZSBpcyB1bnRlc3Rl
ZCwgdGhlcmUgaXMgbm90aGluZyB0byBkby4KQEAgLTI2MjcsOSArMjcxNSw4IEBAIElkbEludGVy
ZmFjZS5wcm90b3R5cGUudGVzdF9wcmltYXJ5X2ludGVyZmFjZV9vZiA9IGZ1bmN0aW9uKGRlc2Ms
IG9iaiwgZXhjZXB0aW9uCiAgICAgICAgIHsKICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZXhj
ZXB0aW9uLCBudWxsLCAiVW5leHBlY3RlZCBleGNlcHRpb24gd2hlbiBldmFsdWF0aW5nIG9iamVj
dCIpOwogICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyh0eXBlb2Ygb2JqLCBleHBlY3RlZF90eXBl
b2YsICJ3cm9uZyB0eXBlb2Ygb2JqZWN0Iik7Ci0gICAgICAgICAgICBhc3NlcnRfb3duX3Byb3Bl
cnR5KHNlbGYsIHRoaXMubmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInNl
bGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIiArIGZvcm1hdF92YWx1ZSh0aGlzLm5hbWUp
KTsKLSAgICAgICAgICAgIGFzc2VydF9vd25fcHJvcGVydHkoc2VsZlt0aGlzLm5hbWVdLCAicHJv
dG90eXBlIiwKKyAgICAgICAgICAgIHRoaXMuYXNzZXJ0X2ludGVyZmFjZV9vYmplY3RfZXhpc3Rz
KCk7CisgICAgICAgICAgICBhc3NlcnRfb3duX3Byb3BlcnR5KHRoaXMuZ2V0X2ludGVyZmFjZV9v
YmplY3QoKSwgInByb3RvdHlwZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdp
bnRlcmZhY2UgIicgKyB0aGlzLm5hbWUgKyAnIiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAi
cHJvdG90eXBlIicpOwogCiAgICAgICAgICAgICAvLyAiVGhlIHZhbHVlIG9mIHRoZSBpbnRlcm5h
bCBbW1Byb3RvdHlwZV1dIHByb3BlcnR5IG9mIHRoZQpAQCAtMjYzNywyOSArMjcyNCwyNyBAQCBJ
ZGxJbnRlcmZhY2UucHJvdG90eXBlLnRlc3RfcHJpbWFyeV9pbnRlcmZhY2Vfb2YgPSBmdW5jdGlv
bihkZXNjLCBvYmosIGV4Y2VwdGlvbgogICAgICAgICAgICAgLy8gaW50ZXJmYWNlIGZyb20gdGhl
IHBsYXRmb3JtIG9iamVjdOKAmXMgYXNzb2NpYXRlZCBnbG9iYWwKICAgICAgICAgICAgIC8vIGVu
dmlyb25tZW50LiIKICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoT2JqZWN0LmdldFByb3RvdHlw
ZU9mKG9iaiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGZbdGhpcy5uYW1lXS5wcm90
b3R5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0X2ludGVyZmFjZV9vYmpl
Y3QoKS5wcm90b3R5cGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2MgKyAiJ3MgcHJv
dG90eXBlIGlzIG5vdCAiICsgdGhpcy5uYW1lICsgIi5wcm90b3R5cGUiKTsKICAgICAgICAgfS5i
aW5kKHRoaXMpLCB0aGlzLm5hbWUgKyAiIG11c3QgYmUgcHJpbWFyeSBpbnRlcmZhY2Ugb2YgIiAr
IGRlc2MpOwogICAgIH0KIAogICAgIC8vICJUaGUgY2xhc3Mgc3RyaW5nIG9mIGEgcGxhdGZvcm0g
b2JqZWN0IHRoYXQgaW1wbGVtZW50cyBvbmUgb3IgbW9yZQotICAgIC8vIGludGVyZmFjZXMgbXVz
dCBiZSB0aGUgaWRlbnRpZmllciBvZiB0aGUgcHJpbWFyeSBpbnRlcmZhY2Ugb2YgdGhlCisgICAg
Ly8gaW50ZXJmYWNlcyBtdXN0IGJlIHRoZSBxdWFsaWZpZWQgbmFtZSBvZiB0aGUgcHJpbWFyeSBp
bnRlcmZhY2Ugb2YgdGhlCiAgICAgLy8gcGxhdGZvcm0gb2JqZWN0LiIKICAgICBzdWJzZXRUZXN0
QnlLZXkodGhpcy5uYW1lLCB0ZXN0LCBmdW5jdGlvbigpCiAgICAgewogICAgICAgICBhc3NlcnRf
ZXF1YWxzKGV4Y2VwdGlvbiwgbnVsbCwgIlVuZXhwZWN0ZWQgZXhjZXB0aW9uIHdoZW4gZXZhbHVh
dGluZyBvYmplY3QiKTsKICAgICAgICAgYXNzZXJ0X2VxdWFscyh0eXBlb2Ygb2JqLCBleHBlY3Rl
ZF90eXBlb2YsICJ3cm9uZyB0eXBlb2Ygb2JqZWN0Iik7Ci0gICAgICAgIGFzc2VydF9jbGFzc19z
dHJpbmcob2JqLCB0aGlzLm5hbWUsICJjbGFzcyBzdHJpbmcgb2YgIiArIGRlc2MpOworICAgICAg
ICBhc3NlcnRfY2xhc3Nfc3RyaW5nKG9iaiwgdGhpcy5nZXRfcXVhbGlmaWVkX25hbWUoKSwgImNs
YXNzIHN0cmluZyBvZiAiICsgZGVzYyk7CiAgICAgICAgIGlmICghdGhpcy5oYXNfc3RyaW5naWZp
ZXIoKSkKICAgICAgICAgewotICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhTdHJpbmcob2JqKSwg
IltvYmplY3QgIiArIHRoaXMubmFtZSArICJdIiwgIlN0cmluZygiICsgZGVzYyArICIpIik7Cisg
ICAgICAgICAgICBhc3NlcnRfZXF1YWxzKFN0cmluZyhvYmopLCAiW29iamVjdCAiICsgdGhpcy5n
ZXRfcXVhbGlmaWVkX25hbWUoKSArICJdIiwgIlN0cmluZygiICsgZGVzYyArICIpIik7CiAgICAg
ICAgIH0KICAgICB9LmJpbmQodGhpcyksICJTdHJpbmdpZmljYXRpb24gb2YgIiArIGRlc2MpOwog
fTsKIAotLy9AfQogSWRsSW50ZXJmYWNlLnByb3RvdHlwZS50ZXN0X2ludGVyZmFjZV9vZiA9IGZ1
bmN0aW9uKGRlc2MsIG9iaiwgZXhjZXB0aW9uLCBleHBlY3RlZF90eXBlb2YpCi0vL0B7CiB7CiAg
ICAgLy8gVE9ETzogSW5kZXhlZCBhbmQgbmFtZWQgcHJvcGVydGllcywgbW9yZSBjaGVja3Mgb24g
aW50ZXJmYWNlIG1lbWJlcnMKICAgICB0aGlzLmFscmVhZHlfdGVzdGVkID0gdHJ1ZTsKQEAgLTI3
MTgsNyArMjgwMyw3IEBAIElkbEludGVyZmFjZS5wcm90b3R5cGUudGVzdF9pbnRlcmZhY2Vfb2Yg
PSBmdW5jdGlvbihkZXNjLCBvYmosIGV4Y2VwdGlvbiwgZXhwZWN0CiAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhleGNlcHRpb24sIG51bGwsICJVbmV4cGVjdGVk
IGV4Y2VwdGlvbiB3aGVuIGV2YWx1YXRpbmcgb2JqZWN0Iik7CiAgICAgICAgICAgICAgICAgYXNz
ZXJ0X2VxdWFscyh0eXBlb2Ygb2JqLCBleHBlY3RlZF90eXBlb2YsICJ3cm9uZyB0eXBlb2Ygb2Jq
ZWN0Iik7Ci0gICAgICAgICAgICAgICAgaWYgKCFtZW1iZXJbInN0YXRpYyJdKSB7CisgICAgICAg
ICAgICAgICAgaWYgKG1lbWJlci5zcGVjaWFsICE9PSAic3RhdGljIikgewogICAgICAgICAgICAg
ICAgICAgICBpZiAoIXRoaXMuaXNfZ2xvYmFsKCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAg
IGFzc2VydF9pbmhlcml0cyhvYmosIG1lbWJlci5uYW1lKTsKICAgICAgICAgICAgICAgICAgICAg
fSBlbHNlIHsKQEAgLTI3NjgsNyArMjg1Myw3IEBAIElkbEludGVyZmFjZS5wcm90b3R5cGUudGVz
dF9pbnRlcmZhY2Vfb2YgPSBmdW5jdGlvbihkZXNjLCBvYmosIGV4Y2VwdGlvbiwgZXhwZWN0CiAg
ICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhleGNlcHRpb24sIG51bGwsICJVbmV4cGVjdGVk
IGV4Y2VwdGlvbiB3aGVuIGV2YWx1YXRpbmcgb2JqZWN0Iik7CiAgICAgICAgICAgICAgICAgYXNz
ZXJ0X2VxdWFscyh0eXBlb2Ygb2JqLCBleHBlY3RlZF90eXBlb2YsICJ3cm9uZyB0eXBlb2Ygb2Jq
ZWN0Iik7CiAgICAgICAgICAgICAgICAgdmFyIGZuOwotICAgICAgICAgICAgICAgIGlmICghbWVt
YmVyWyJzdGF0aWMiXSkgeworICAgICAgICAgICAgICAgIGlmIChtZW1iZXIuc3BlY2lhbCAhPT0g
InN0YXRpYyIpIHsKICAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLmlzX2dsb2JhbCgpICYm
ICFtZW1iZXIuaXNVbmZvcmdlYWJsZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0
X2luaGVyaXRzKG9iaiwgbWVtYmVyLm5hbWUpOwogICAgICAgICAgICAgICAgICAgICB9IGVsc2Ug
ewpAQCAtMjc5OSwyMSArMjg4NCwxOSBAQCBJZGxJbnRlcmZhY2UucHJvdG90eXBlLnRlc3RfaW50
ZXJmYWNlX29mID0gZnVuY3Rpb24oZGVzYywgb2JqLCBleGNlcHRpb24sIGV4cGVjdAogICAgICAg
ICB9CiAKICAgICAgICAgaWYgKG1lbWJlci5pc190b19qc29uX3JlZ3VsYXJfb3BlcmF0aW9uKCkp
IHsKLSAgICAgICAgICAgIHRoaXMudGVzdF90b19qc29uX29wZXJhdGlvbihvYmosIG1lbWJlcik7
CisgICAgICAgICAgICB0aGlzLnRlc3RfdG9fanNvbl9vcGVyYXRpb24oZGVzYywgb2JqLCBtZW1i
ZXIpOwogICAgICAgICB9CiAgICAgfQogfTsKIAotLy9AfQogSWRsSW50ZXJmYWNlLnByb3RvdHlw
ZS5oYXNfc3RyaW5naWZpZXIgPSBmdW5jdGlvbigpCi0vL0B7CiB7CiAgICAgaWYgKHRoaXMubmFt
ZSA9PT0gIkRPTUV4Y2VwdGlvbiIpIHsKICAgICAgICAgLy8gdG9TdHJpbmcgaXMgaW5oZXJpdGVk
IGZyb20gRXJyb3IsIHNvIGRvbid0IGFzc3VtZSB3ZSBoYXZlIHRoZQogICAgICAgICAvLyBkZWZh
dWx0IHN0cmluZ2lmZXIKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQotICAgIGlmICh0aGlz
Lm1lbWJlcnMuc29tZShmdW5jdGlvbihtZW1iZXIpIHsgcmV0dXJuIG1lbWJlci5zdHJpbmdpZmll
cjsgfSkpIHsKKyAgICBpZiAodGhpcy5tZW1iZXJzLnNvbWUoZnVuY3Rpb24obWVtYmVyKSB7IHJl
dHVybiBtZW1iZXIuc3BlY2lhbCA9PT0gInN0cmluZ2lmaWVyIjsgfSkpIHsKICAgICAgICAgcmV0
dXJuIHRydWU7CiAgICAgfQogICAgIGlmICh0aGlzLmJhc2UgJiYKQEAgLTI4MjMsOSArMjkwNiw3
IEBAIElkbEludGVyZmFjZS5wcm90b3R5cGUuaGFzX3N0cmluZ2lmaWVyID0gZnVuY3Rpb24oKQog
ICAgIHJldHVybiBmYWxzZTsKIH07CiAKLS8vQH0KIElkbEludGVyZmFjZS5wcm90b3R5cGUuZG9f
aW50ZXJmYWNlX2F0dHJpYnV0ZV9hc3NlcnRzID0gZnVuY3Rpb24ob2JqLCBtZW1iZXIsIGFfdGVz
dCkKLS8vQHsKIHsKICAgICAvLyBUaGlzIGZ1bmN0aW9uIHRlc3RzIFdlYklETCBhcyBvZiAyMDE1
LTAxLTI3LgogICAgIC8vIFRPRE86IENvbnNpZGVyIFtFeHBvc2VkXS4KQEAgLTI4NjksNyArMjk1
MCw3IEBAIElkbEludGVyZmFjZS5wcm90b3R5cGUuZG9faW50ZXJmYWNlX2F0dHJpYnV0ZV9hc3Nl
cnRzID0gZnVuY3Rpb24ob2JqLCBtZW1iZXIsIGFfCiAgICAgYXNzZXJ0X2VxdWFscyh0eXBlb2Yg
ZGVzYy5nZXQsICJmdW5jdGlvbiIsICJnZXR0ZXIgbXVzdCBiZSBGdW5jdGlvbiIpOwogCiAgICAg
Ly8gIklmIHRoZSBhdHRyaWJ1dGUgaXMgYSByZWd1bGFyIGF0dHJpYnV0ZSwgdGhlbjoiCi0gICAg
aWYgKCFtZW1iZXJbInN0YXRpYyJdKSB7CisgICAgaWYgKG1lbWJlci5zcGVjaWFsICE9PSAic3Rh
dGljIikgewogICAgICAgICAvLyAiSWYgTyBpcyBub3QgYSBwbGF0Zm9ybSBvYmplY3QgdGhhdCBp
bXBsZW1lbnRzIEksIHRoZW46CiAgICAgICAgIC8vICJJZiB0aGUgYXR0cmlidXRlIHdhcyBzcGVj
aWZpZWQgd2l0aCB0aGUgW0xlbmllbnRUaGlzXSBleHRlbmRlZAogICAgICAgICAvLyBhdHRyaWJ1
dGUsIHRoZW4gcmV0dXJuIHVuZGVmaW5lZC4KQEAgLTI4OTQsNiArMjk3NSwxMSBAQCBJZGxJbnRl
cmZhY2UucHJvdG90eXBlLmRvX2ludGVyZmFjZV9hdHRyaWJ1dGVfYXNzZXJ0cyA9IGZ1bmN0aW9u
KG9iaiwgbWVtYmVyLCBhXwogICAgIC8vIHZhbHVlIDAuIgogICAgIGFzc2VydF9lcXVhbHMoZGVz
Yy5nZXQubGVuZ3RoLCAwLCAiZ2V0dGVyIGxlbmd0aCBtdXN0IGJlIDAiKTsKIAorICAgIC8vICJM
ZXQgbmFtZSBiZSB0aGUgc3RyaW5nICJnZXQgIiBwcmVwZW5kZWQgdG8gYXR0cmlidXRl4oCZcyBp
ZGVudGlmaWVyLiIKKyAgICAvLyAiUGVyZm9ybSAhIFNldEZ1bmN0aW9uTmFtZShGLCBuYW1lKS4i
CisgICAgYXNzZXJ0X2VxdWFscyhkZXNjLmdldC5uYW1lLCAiZ2V0ICIgKyBtZW1iZXIubmFtZSwK
KyAgICAgICAgImdldHRlciBtdXN0IGhhdmUgdGhlIG5hbWUgJ2dldCAiICsgbWVtYmVyLm5hbWUg
KyAiJyIpOworCiAKICAgICAvLyBUT0RPOiBUZXN0IGNhbGxpbmcgc2V0dGVyIG9uIHRoZSBpbnRl
cmZhY2UgcHJvdG90eXBlIChzaG91bGQgdGhyb3cKICAgICAvLyBUeXBlRXJyb3IgaW4gbW9zdCBj
YXNlcykuCkBAIC0yOTE0LDcgKzMwMDAsNyBAQCBJZGxJbnRlcmZhY2UucHJvdG90eXBlLmRvX2lu
dGVyZmFjZV9hdHRyaWJ1dGVfYXNzZXJ0cyA9IGZ1bmN0aW9uKG9iaiwgbWVtYmVyLCBhXwogICAg
ICAgICBhc3NlcnRfZXF1YWxzKHR5cGVvZiBkZXNjLnNldCwgImZ1bmN0aW9uIiwgInNldHRlciBt
dXN0IGJlIGZ1bmN0aW9uIGZvciBQdXRGb3J3YXJkcywgUmVwbGFjZWFibGUsIG9yIG5vbi1yZWFk
b25seSBhdHRyaWJ1dGVzIik7CiAKICAgICAgICAgLy8gIklmIHRoZSBhdHRyaWJ1dGUgaXMgYSBy
ZWd1bGFyIGF0dHJpYnV0ZSwgdGhlbjoiCi0gICAgICAgIGlmICghbWVtYmVyWyJzdGF0aWMiXSkg
eworICAgICAgICBpZiAobWVtYmVyLnNwZWNpYWwgIT09ICJzdGF0aWMiKSB7CiAgICAgICAgICAg
ICAvLyAiSWYgL3ZhbGlkVGhpcy8gaXMgZmFsc2UgYW5kIHRoZSBhdHRyaWJ1dGUgd2FzIG5vdCBz
cGVjaWZpZWQKICAgICAgICAgICAgIC8vIHdpdGggdGhlIFtMZW5pZW50VGhpc10gZXh0ZW5kZWQg
YXR0cmlidXRlLCB0aGVuIHRocm93IGEKICAgICAgICAgICAgIC8vIFR5cGVFcnJvci4iCkBAIC0y
OTM0LDIyICszMDIwLDI1IEBAIElkbEludGVyZmFjZS5wcm90b3R5cGUuZG9faW50ZXJmYWNlX2F0
dHJpYnV0ZV9hc3NlcnRzID0gZnVuY3Rpb24ob2JqLCBtZW1iZXIsIGFfCiAgICAgICAgIC8vICJU
aGUgdmFsdWUgb2YgdGhlIEZ1bmN0aW9uIG9iamVjdOKAmXMg4oCcbGVuZ3Ro4oCdIHByb3BlcnR5
IGlzIHRoZSBOdW1iZXIKICAgICAgICAgLy8gdmFsdWUgMS4iCiAgICAgICAgIGFzc2VydF9lcXVh
bHMoZGVzYy5zZXQubGVuZ3RoLCAxLCAic2V0dGVyIGxlbmd0aCBtdXN0IGJlIDEiKTsKKworICAg
ICAgICAvLyAiTGV0IG5hbWUgYmUgdGhlIHN0cmluZyAic2V0ICIgcHJlcGVuZGVkIHRvIGlkLiIK
KyAgICAgICAgLy8gIlBlcmZvcm0gISBTZXRGdW5jdGlvbk5hbWUoRiwgbmFtZSkuIgorICAgICAg
ICBhc3NlcnRfZXF1YWxzKGRlc2Muc2V0Lm5hbWUsICJzZXQgIiArIG1lbWJlci5uYW1lLAorICAg
ICAgICAgICAgIlRoZSBhdHRyaWJ1dGUgc2V0dGVyIG11c3QgaGF2ZSB0aGUgbmFtZSAnc2V0ICIg
KyBtZW1iZXIubmFtZSArICInIik7CiAgICAgfQogCiAgICAgUHJvbWlzZS5hbGwocGVuZGluZ1By
b21pc2VzKS50aGVuKGFfdGVzdC5kb25lLmJpbmQoYV90ZXN0KSk7CiB9Ci0vL0B9CiAKIC8vLyBJ
ZGxJbnRlcmZhY2VNZW1iZXIgLy8vCiBmdW5jdGlvbiBJZGxJbnRlcmZhY2VNZW1iZXIob2JqKQot
Ly9AewogewogICAgIC8qKgogICAgICAqIG9iaiBpcyBhbiBvYmplY3QgcHJvZHVjZWQgYnkgdGhl
IFdlYklETFBhcnNlci5qcyAiaWZNZW1iZXIiIHByb2R1Y3Rpb24uCiAgICAgICogV2UganVzdCBm
b3J3YXJkIGFsbCBwcm9wZXJ0aWVzIHRvIHRoaXMgb2JqZWN0IHdpdGhvdXQgbW9kaWZpY2F0aW9u
LAogICAgICAqIGV4Y2VwdCBmb3Igc3BlY2lhbCBleHRBdHRycyBoYW5kbGluZy4KICAgICAgKi8K
LSAgICBmb3IgKHZhciBrIGluIG9iaikKKyAgICBmb3IgKHZhciBrIGluIG9iai50b0pTT04oKSkK
ICAgICB7CiAgICAgICAgIHRoaXNba10gPSBvYmpba107CiAgICAgfQpAQCAtMjk2MiwxNiArMzA1
MSwxOCBAQCBmdW5jdGlvbiBJZGxJbnRlcmZhY2VNZW1iZXIob2JqKQogICAgIHRoaXMuaXNVbnNj
b3BhYmxlID0gdGhpcy5oYXNfZXh0ZW5kZWRfYXR0cmlidXRlKCJVbnNjb3BhYmxlIik7CiB9CiAK
LS8vQH0KIElkbEludGVyZmFjZU1lbWJlci5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKElkbE9i
amVjdC5wcm90b3R5cGUpOwogCitJZGxJbnRlcmZhY2VNZW1iZXIucHJvdG90eXBlLnRvSlNPTiA9
IGZ1bmN0aW9uKCkgeworICAgIHJldHVybiB0aGlzOworfTsKKwogSWRsSW50ZXJmYWNlTWVtYmVy
LnByb3RvdHlwZS5pc190b19qc29uX3JlZ3VsYXJfb3BlcmF0aW9uID0gZnVuY3Rpb24oKSB7Ci0g
ICAgcmV0dXJuIHRoaXMudHlwZSA9PSAib3BlcmF0aW9uIiAmJiAhdGhpcy5zdGF0aWMgJiYgdGhp
cy5uYW1lID09ICJ0b0pTT04iOworICAgIHJldHVybiB0aGlzLnR5cGUgPT0gIm9wZXJhdGlvbiIg
JiYgdGhpcy5zcGVjaWFsICE9PSAic3RhdGljIiAmJiB0aGlzLm5hbWUgPT0gInRvSlNPTiI7CiB9
OwogCiAvLy8gSW50ZXJuYWwgaGVscGVyIGZ1bmN0aW9ucyAvLy8KIGZ1bmN0aW9uIGNyZWF0ZV9z
dWl0YWJsZV9vYmplY3QodHlwZSkKLS8vQHsKIHsKICAgICAvKioKICAgICAgKiB0eXBlIGlzIGFu
IG9iamVjdCBwcm9kdWNlZCBieSB0aGUgV2ViSURMUGFyc2VyLmpzICJ0eXBlIiBwcm9kdWN0aW9u
LiAgV2UKQEAgLTMwMDcsMTIgKzMwOTgsMTAgQEAgZnVuY3Rpb24gY3JlYXRlX3N1aXRhYmxlX29i
amVjdCh0eXBlKQogICAgIH0KICAgICByZXR1cm4gbnVsbDsKIH0KLS8vQH0KIAogLy8vIElkbEVu
dW0gLy8vCiAvLyBVc2VkIGZvciBJZGxBcnJheS5wcm90b3R5cGUuYXNzZXJ0X3R5cGVfaXMKIGZ1
bmN0aW9uIElkbEVudW0ob2JqKQotLy9AewogewogICAgIC8qKgogICAgICAqIG9iaiBpcyBhbiBv
YmplY3QgcHJvZHVjZWQgYnkgdGhlIFdlYklETFBhcnNlci5qcyAiZGljdGlvbmFyeSIKQEAgLTMw
MjYsMTQgKzMxMTUsMzAgQEAgZnVuY3Rpb24gSWRsRW51bShvYmopCiAgICAgdGhpcy52YWx1ZXMg
PSBvYmoudmFsdWVzOwogCiB9Ci0vL0B9CiAKIElkbEVudW0ucHJvdG90eXBlID0gT2JqZWN0LmNy
ZWF0ZShJZGxPYmplY3QucHJvdG90eXBlKTsKIAorLy8vIElkbENhbGxiYWNrIC8vLworLy8gVXNl
ZCBmb3IgSWRsQXJyYXkucHJvdG90eXBlLmFzc2VydF90eXBlX2lzCitmdW5jdGlvbiBJZGxDYWxs
YmFjayhvYmopCit7CisgICAgLyoqCisgICAgICogb2JqIGlzIGFuIG9iamVjdCBwcm9kdWNlZCBi
eSB0aGUgV2ViSURMUGFyc2VyLmpzICJjYWxsYmFjayIKKyAgICAgKiBwcm9kdWN0aW9uLgorICAg
ICAqLworCisgICAgLyoqIFNlbGYtZXhwbGFuYXRvcnkuICovCisgICAgdGhpcy5uYW1lID0gb2Jq
Lm5hbWU7CisKKyAgICAvKiogQXJndW1lbnRzIGZvciB0aGUgY2FsbGJhY2suICovCisgICAgdGhp
cy5hcmd1bWVudHMgPSBvYmouYXJndW1lbnRzOworfQorCitJZGxDYWxsYmFjay5wcm90b3R5cGUg
PSBPYmplY3QuY3JlYXRlKElkbE9iamVjdC5wcm90b3R5cGUpOworCiAvLy8gSWRsVHlwZWRlZiAv
Ly8KIC8vIFVzZWQgZm9yIElkbEFycmF5LnByb3RvdHlwZS5hc3NlcnRfdHlwZV9pcwogZnVuY3Rp
b24gSWRsVHlwZWRlZihvYmopCi0vL0B7CiB7CiAgICAgLyoqCiAgICAgICogb2JqIGlzIGFuIG9i
amVjdCBwcm9kdWNlZCBieSB0aGUgV2ViSURMUGFyc2VyLmpzICJ0eXBlZGVmIgpAQCAtMzA0Nywx
MyArMzE1MiwxMSBAQCBmdW5jdGlvbiBJZGxUeXBlZGVmKG9iaikKICAgICB0aGlzLmlkbFR5cGUg
PSBvYmouaWRsVHlwZTsKIAogfQotLy9AfQogCiBJZGxUeXBlZGVmLnByb3RvdHlwZSA9IE9iamVj
dC5jcmVhdGUoSWRsT2JqZWN0LnByb3RvdHlwZSk7CiAKIC8vLyBJZGxOYW1lc3BhY2UgLy8vCiBm
dW5jdGlvbiBJZGxOYW1lc3BhY2Uob2JqKQotLy9AewogewogICAgIHRoaXMubmFtZSA9IG9iai5u
YW1lOwogICAgIHRoaXMuZXh0QXR0cnMgPSBvYmouZXh0QXR0cnM7CkBAIC0zMDY0LDEyICszMTY3
LDEwIEBAIGZ1bmN0aW9uIElkbE5hbWVzcGFjZShvYmopCiAgICAgLyoqIEFuIGFycmF5IG9mIElk
bEludGVyZmFjZU1lbWJlcnMuICovCiAgICAgdGhpcy5tZW1iZXJzID0gb2JqLm1lbWJlcnMubWFw
KG0gPT4gbmV3IElkbEludGVyZmFjZU1lbWJlcihtKSk7CiB9Ci0vL0B9CiAKIElkbE5hbWVzcGFj
ZS5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKElkbE9iamVjdC5wcm90b3R5cGUpOwogCiBJZGxO
YW1lc3BhY2UucHJvdG90eXBlLmRvX21lbWJlcl9vcGVyYXRpb25fYXNzZXJ0cyA9IGZ1bmN0aW9u
IChtZW1iZXJIb2xkZXJPYmplY3QsIG1lbWJlciwgYV90ZXN0KQotLy9AewogewogICAgIHZhciBk
ZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihtZW1iZXJIb2xkZXJPYmplY3Qs
IG1lbWJlci5uYW1lKTsKIApAQCAtMzA5OCwxMCArMzE5OSw4IEBAIElkbE5hbWVzcGFjZS5wcm90
b3R5cGUuZG9fbWVtYmVyX29wZXJhdGlvbl9hc3NlcnRzID0gZnVuY3Rpb24gKG1lbWJlckhvbGRl
ck9iamVjCiAgICAgICAgICJvcGVyYXRpb24gaGFzIHdyb25nIC5sZW5ndGgiKTsKICAgICBhX3Rl
c3QuZG9uZSgpOwogfQotLy9AfQogCiBJZGxOYW1lc3BhY2UucHJvdG90eXBlLnRlc3RfbWVtYmVy
X29wZXJhdGlvbiA9IGZ1bmN0aW9uKG1lbWJlcikKLS8vQHsKIHsKICAgICBpZiAoIXNob3VsZFJ1
blN1YlRlc3QodGhpcy5uYW1lKSkgewogICAgICAgICByZXR1cm47CkBAIC0zMTI2LDEwICszMjI1
LDggQEAgSWRsTmFtZXNwYWNlLnByb3RvdHlwZS50ZXN0X21lbWJlcl9vcGVyYXRpb24gPSBmdW5j
dGlvbihtZW1iZXIpCiAgICAgICAgIHRoaXMuZG9fbWVtYmVyX29wZXJhdGlvbl9hc3NlcnRzKHNl
bGZbdGhpcy5uYW1lXSwgbWVtYmVyLCBhX3Rlc3QpOwogICAgIH0uYmluZCh0aGlzKSk7CiB9Owot
Ly9AfQogCiBJZGxOYW1lc3BhY2UucHJvdG90eXBlLnRlc3RfbWVtYmVyX2F0dHJpYnV0ZSA9IGZ1
bmN0aW9uIChtZW1iZXIpCi0vL0B7CiB7CiAgICAgaWYgKCFzaG91bGRSdW5TdWJUZXN0KHRoaXMu
bmFtZSkpIHsKICAgICAgICAgcmV0dXJuOwpAQCAtMzE1MCwxMCArMzI0Nyw4IEBAIElkbE5hbWVz
cGFjZS5wcm90b3R5cGUudGVzdF9tZW1iZXJfYXR0cmlidXRlID0gZnVuY3Rpb24gKG1lbWJlcikK
ICAgICAgICAgYV90ZXN0LmRvbmUoKTsKICAgICB9LmJpbmQodGhpcykpOwogfTsKLS8vQH0KIAog
SWRsTmFtZXNwYWNlLnByb3RvdHlwZS50ZXN0ID0gZnVuY3Rpb24gKCkKLS8vQHsKIHsKICAgICAv
KioKICAgICAgKiBUT0RPKGx1a2ViamVycmluZyk6IEFzc2VydDoKQEAgLTMxNzksNyArMzI3NCw2
IEBAIElkbE5hbWVzcGFjZS5wcm90b3R5cGUudGVzdCA9IGZ1bmN0aW9uICgpCiAgICAgICAgIH0K
ICAgICB9OwogfTsKLS8vQH0KIAogfSgpKTsKIApAQCAtMzI0MSw3ICszMzM1LDExIEBAIGZ1bmN0
aW9uIGlkbF90ZXN0KHNyY3MsIGRlcHMsIGlkbF9zZXR1cF9mdW5jKSB7CiAgKiBmZXRjaF9zcGVj
IGlzIGEgc2hvcnRoYW5kIGZvciBhIFByb21pc2UgdGhhdCBmZXRjaGVzIHRoZSBzcGVjJ3MgY29u
dGVudC4KICAqLwogZnVuY3Rpb24gZmV0Y2hfc3BlYyhzcGVjKSB7Ci0gICAgcmV0dXJuIGZldGNo
KCcvaW50ZXJmYWNlcy8nICsgc3BlYyArICcuaWRsJykudGhlbihmdW5jdGlvbiAocikgeworICAg
IHZhciB1cmwgPSAnL2ludGVyZmFjZXMvJyArIHNwZWMgKyAnLmlkbCc7CisgICAgcmV0dXJuIGZl
dGNoKHVybCkudGhlbihmdW5jdGlvbiAocikgeworICAgICAgICBpZiAoIXIub2spIHsKKyAgICAg
ICAgICAgIHRocm93IG5ldyBJZGxIYXJuZXNzRXJyb3IoIkVycm9yIGZldGNoaW5nICIgKyB1cmwg
KyAiLiIpOworICAgICAgICB9CiAgICAgICAgIHJldHVybiByLnRleHQoKTsKICAgICB9KTsKIH0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
cmVzb3VyY2VzL3dlYmlkbDIvbGliL3dlYmlkbDIuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy93ZWJpZGwyL2xpYi93ZWJpZGwyLmpzCmlu
ZGV4IGVmNTE5YzA5ZGY2ZDZkYTgxMmZjYmJhNTdjN2NhMGY0NzVhZjFlZDUuLmM2MGE0NTZjMzI0
MTY1NWQwNWE3ZTQwZjgyYjE5ZDg3MzVkMDE3ZDQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3dlYmlkbDIvbGliL3dlYmlk
bDIuanMKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9y
ZXNvdXJjZXMvd2ViaWRsMi9saWIvd2ViaWRsMi5qcwpAQCAtMSw5NzAgKzEsMjc3NyBAQAorKGZ1
bmN0aW9uIHdlYnBhY2tVbml2ZXJzYWxNb2R1bGVEZWZpbml0aW9uKHJvb3QsIGZhY3RvcnkpIHsK
KwlpZih0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSA9PT0gJ29i
amVjdCcpCisJCW1vZHVsZS5leHBvcnRzID0gZmFjdG9yeSgpOworCWVsc2UgaWYodHlwZW9mIGRl
ZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kKQorCQlkZWZpbmUoW10sIGZhY3Rvcnkp
OworCWVsc2UgaWYodHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnKQorCQlleHBvcnRzWyJXZWJJ
REwyIl0gPSBmYWN0b3J5KCk7CisJZWxzZQorCQlyb290WyJXZWJJREwyIl0gPSBmYWN0b3J5KCk7
Cit9KSh0aGlzLCBmdW5jdGlvbigpIHsKK3JldHVybiAvKioqKioqLyAoZnVuY3Rpb24obW9kdWxl
cykgeyAvLyB3ZWJwYWNrQm9vdHN0cmFwCisvKioqKioqLyAJLy8gVGhlIG1vZHVsZSBjYWNoZQor
LyoqKioqKi8gCXZhciBpbnN0YWxsZWRNb2R1bGVzID0ge307CisvKioqKioqLworLyoqKioqKi8g
CS8vIFRoZSByZXF1aXJlIGZ1bmN0aW9uCisvKioqKioqLyAJZnVuY3Rpb24gX193ZWJwYWNrX3Jl
cXVpcmVfXyhtb2R1bGVJZCkgeworLyoqKioqKi8KKy8qKioqKiovIAkJLy8gQ2hlY2sgaWYgbW9k
dWxlIGlzIGluIGNhY2hlCisvKioqKioqLyAJCWlmKGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRd
KSB7CisvKioqKioqLyAJCQlyZXR1cm4gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0uZXhwb3J0
czsKKy8qKioqKiovIAkJfQorLyoqKioqKi8gCQkvLyBDcmVhdGUgYSBuZXcgbW9kdWxlIChhbmQg
cHV0IGl0IGludG8gdGhlIGNhY2hlKQorLyoqKioqKi8gCQl2YXIgbW9kdWxlID0gaW5zdGFsbGVk
TW9kdWxlc1ttb2R1bGVJZF0gPSB7CisvKioqKioqLyAJCQlpOiBtb2R1bGVJZCwKKy8qKioqKiov
IAkJCWw6IGZhbHNlLAorLyoqKioqKi8gCQkJZXhwb3J0czoge30KKy8qKioqKiovIAkJfTsKKy8q
KioqKiovCisvKioqKioqLyAJCS8vIEV4ZWN1dGUgdGhlIG1vZHVsZSBmdW5jdGlvbgorLyoqKioq
Ki8gCQltb2R1bGVzW21vZHVsZUlkXS5jYWxsKG1vZHVsZS5leHBvcnRzLCBtb2R1bGUsIG1vZHVs
ZS5leHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKTsKKy8qKioqKiovCisvKioqKioqLyAJCS8v
IEZsYWcgdGhlIG1vZHVsZSBhcyBsb2FkZWQKKy8qKioqKiovIAkJbW9kdWxlLmwgPSB0cnVlOwor
LyoqKioqKi8KKy8qKioqKiovIAkJLy8gUmV0dXJuIHRoZSBleHBvcnRzIG9mIHRoZSBtb2R1bGUK
Ky8qKioqKiovIAkJcmV0dXJuIG1vZHVsZS5leHBvcnRzOworLyoqKioqKi8gCX0KKy8qKioqKiov
CisvKioqKioqLworLyoqKioqKi8gCS8vIGV4cG9zZSB0aGUgbW9kdWxlcyBvYmplY3QgKF9fd2Vi
cGFja19tb2R1bGVzX18pCisvKioqKioqLyAJX193ZWJwYWNrX3JlcXVpcmVfXy5tID0gbW9kdWxl
czsKKy8qKioqKiovCisvKioqKioqLyAJLy8gZXhwb3NlIHRoZSBtb2R1bGUgY2FjaGUKKy8qKioq
KiovIAlfX3dlYnBhY2tfcmVxdWlyZV9fLmMgPSBpbnN0YWxsZWRNb2R1bGVzOworLyoqKioqKi8K
Ky8qKioqKiovIAkvLyBkZWZpbmUgZ2V0dGVyIGZ1bmN0aW9uIGZvciBoYXJtb255IGV4cG9ydHMK
Ky8qKioqKiovIAlfX3dlYnBhY2tfcmVxdWlyZV9fLmQgPSBmdW5jdGlvbihleHBvcnRzLCBuYW1l
LCBnZXR0ZXIpIHsKKy8qKioqKiovIAkJaWYoIV9fd2VicGFja19yZXF1aXJlX18ubyhleHBvcnRz
LCBuYW1lKSkgeworLyoqKioqKi8gCQkJT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIG5h
bWUsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBnZXR0ZXIgfSk7CisvKioqKioqLyAJCX0KKy8q
KioqKiovIAl9OworLyoqKioqKi8KKy8qKioqKiovIAkvLyBkZWZpbmUgX19lc01vZHVsZSBvbiBl
eHBvcnRzCisvKioqKioqLyAJX193ZWJwYWNrX3JlcXVpcmVfXy5yID0gZnVuY3Rpb24oZXhwb3J0
cykgeworLyoqKioqKi8gCQlpZih0eXBlb2YgU3ltYm9sICE9PSAndW5kZWZpbmVkJyAmJiBTeW1i
b2wudG9TdHJpbmdUYWcpIHsKKy8qKioqKiovIAkJCU9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBv
cnRzLCBTeW1ib2wudG9TdHJpbmdUYWcsIHsgdmFsdWU6ICdNb2R1bGUnIH0pOworLyoqKioqKi8g
CQl9CisvKioqKioqLyAJCU9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCAnX19lc01vZHVs
ZScsIHsgdmFsdWU6IHRydWUgfSk7CisvKioqKioqLyAJfTsKKy8qKioqKiovCisvKioqKioqLyAJ
Ly8gY3JlYXRlIGEgZmFrZSBuYW1lc3BhY2Ugb2JqZWN0CisvKioqKioqLyAJLy8gbW9kZSAmIDE6
IHZhbHVlIGlzIGEgbW9kdWxlIGlkLCByZXF1aXJlIGl0CisvKioqKioqLyAJLy8gbW9kZSAmIDI6
IG1lcmdlIGFsbCBwcm9wZXJ0aWVzIG9mIHZhbHVlIGludG8gdGhlIG5zCisvKioqKioqLyAJLy8g
bW9kZSAmIDQ6IHJldHVybiB2YWx1ZSB3aGVuIGFscmVhZHkgbnMgb2JqZWN0CisvKioqKioqLyAJ
Ly8gbW9kZSAmIDh8MTogYmVoYXZlIGxpa2UgcmVxdWlyZQorLyoqKioqKi8gCV9fd2VicGFja19y
ZXF1aXJlX18udCA9IGZ1bmN0aW9uKHZhbHVlLCBtb2RlKSB7CisvKioqKioqLyAJCWlmKG1vZGUg
JiAxKSB2YWx1ZSA9IF9fd2VicGFja19yZXF1aXJlX18odmFsdWUpOworLyoqKioqKi8gCQlpZiht
b2RlICYgOCkgcmV0dXJuIHZhbHVlOworLyoqKioqKi8gCQlpZigobW9kZSAmIDQpICYmIHR5cGVv
ZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgdmFsdWUgJiYgdmFsdWUuX19lc01vZHVsZSkgcmV0dXJu
IHZhbHVlOworLyoqKioqKi8gCQl2YXIgbnMgPSBPYmplY3QuY3JlYXRlKG51bGwpOworLyoqKioq
Ki8gCQlfX3dlYnBhY2tfcmVxdWlyZV9fLnIobnMpOworLyoqKioqKi8gCQlPYmplY3QuZGVmaW5l
UHJvcGVydHkobnMsICdkZWZhdWx0JywgeyBlbnVtZXJhYmxlOiB0cnVlLCB2YWx1ZTogdmFsdWUg
fSk7CisvKioqKioqLyAJCWlmKG1vZGUgJiAyICYmIHR5cGVvZiB2YWx1ZSAhPSAnc3RyaW5nJykg
Zm9yKHZhciBrZXkgaW4gdmFsdWUpIF9fd2VicGFja19yZXF1aXJlX18uZChucywga2V5LCBmdW5j
dGlvbihrZXkpIHsgcmV0dXJuIHZhbHVlW2tleV07IH0uYmluZChudWxsLCBrZXkpKTsKKy8qKioq
KiovIAkJcmV0dXJuIG5zOworLyoqKioqKi8gCX07CisvKioqKioqLworLyoqKioqKi8gCS8vIGdl
dERlZmF1bHRFeHBvcnQgZnVuY3Rpb24gZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBub24taGFybW9u
eSBtb2R1bGVzCisvKioqKioqLyAJX193ZWJwYWNrX3JlcXVpcmVfXy5uID0gZnVuY3Rpb24obW9k
dWxlKSB7CisvKioqKioqLyAJCXZhciBnZXR0ZXIgPSBtb2R1bGUgJiYgbW9kdWxlLl9fZXNNb2R1
bGUgPworLyoqKioqKi8gCQkJZnVuY3Rpb24gZ2V0RGVmYXVsdCgpIHsgcmV0dXJuIG1vZHVsZVsn
ZGVmYXVsdCddOyB9IDoKKy8qKioqKiovIAkJCWZ1bmN0aW9uIGdldE1vZHVsZUV4cG9ydHMoKSB7
IHJldHVybiBtb2R1bGU7IH07CisvKioqKioqLyAJCV9fd2VicGFja19yZXF1aXJlX18uZChnZXR0
ZXIsICdhJywgZ2V0dGVyKTsKKy8qKioqKiovIAkJcmV0dXJuIGdldHRlcjsKKy8qKioqKiovIAl9
OworLyoqKioqKi8KKy8qKioqKiovIAkvLyBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5
LmNhbGwKKy8qKioqKiovIAlfX3dlYnBhY2tfcmVxdWlyZV9fLm8gPSBmdW5jdGlvbihvYmplY3Qs
IHByb3BlcnR5KSB7IHJldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwo
b2JqZWN0LCBwcm9wZXJ0eSk7IH07CisvKioqKioqLworLyoqKioqKi8gCS8vIF9fd2VicGFja19w
dWJsaWNfcGF0aF9fCisvKioqKioqLyAJX193ZWJwYWNrX3JlcXVpcmVfXy5wID0gIiI7CisvKioq
KioqLworLyoqKioqKi8KKy8qKioqKiovIAkvLyBMb2FkIGVudHJ5IG1vZHVsZSBhbmQgcmV0dXJu
IGV4cG9ydHMKKy8qKioqKiovIAlyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXyhfX3dlYnBhY2tf
cmVxdWlyZV9fLnMgPSAwKTsKKy8qKioqKiovIH0pCisvKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyoqKioq
Ki8gKFsKKy8qIDAgKi8KKy8qKiovIChmdW5jdGlvbihtb2R1bGUsIF9fd2VicGFja19leHBvcnRz
X18sIF9fd2VicGFja19yZXF1aXJlX18pIHsKKwogInVzZSBzdHJpY3QiOworX193ZWJwYWNrX3Jl
cXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pOworLyogaGFybW9ueSBpbXBvcnQgKi8gdmFy
IF9saWJfd2ViaWRsMl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNr
X3JlcXVpcmVfXygxKTsKKy8qIGhhcm1vbnkgcmVleHBvcnQgKHNhZmUpICovIF9fd2VicGFja19y
ZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAicGFyc2UiLCBmdW5jdGlvbigpIHsgcmV0
dXJuIF9saWJfd2ViaWRsMl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJwYXJzZSJd
OyB9KTsKIAotKCgpID0+IHsKLSAgLy8gVGhlc2UgcmVndWxhciBleHByZXNzaW9ucyB1c2UgdGhl
IHN0aWNreSBmbGFnIHNvIHRoZXkgd2lsbCBvbmx5IG1hdGNoIGF0Ci0gIC8vIHRoZSBjdXJyZW50
IGxvY2F0aW9uIChpZS4gdGhlIG9mZnNldCBvZiBsYXN0SW5kZXgpLgotICBjb25zdCB0b2tlblJl
ID0gewotICAgIC8vIFRoaXMgZXhwcmVzc2lvbiB1c2VzIGEgbG9va2FoZWFkIGFzc2VydGlvbiB0
byBjYXRjaCBmYWxzZSBtYXRjaGVzCi0gICAgLy8gYWdhaW5zdCBpbnRlZ2VycyBlYXJseS4KLSAg
ICAiZmxvYXQiOiAvLT8oPz1bMC05XSpcLnxbMC05XStbZUVdKSgoWzAtOV0rXC5bMC05XSp8WzAt
OV0qXC5bMC05XSspKFtFZV1bLStdP1swLTldKyk/fFswLTldK1tFZV1bLStdP1swLTldKykveSwK
LSAgICAiaW50ZWdlciI6IC8tPygwKFtYeF1bMC05QS1GYS1mXSt8WzAtN10qKXxbMS05XVswLTld
KikveSwKLSAgICAiaWRlbnRpZmllciI6IC9fP1tBLVphLXpdWzAtOUEtWl9hLXotXSoveSwKLSAg
ICAic3RyaW5nIjogLyJbXiJdKiIveSwKLSAgICAid2hpdGVzcGFjZSI6IC9bXHRcblxyIF0rL3ks
Ci0gICAgImNvbW1lbnQiOiAvKChcLyhcLy4qfFwqKFteKl18XCpbXlwvXSkqXCpcLylbXHRcblxy
IF0qKSspL3ksCi0gICAgIm90aGVyIjogL1teXHRcblxyIDAtOUEtWmEtel0veQotICB9OworLyog
aGFybW9ueSBpbXBvcnQgKi8gdmFyIF9saWJfd3JpdGVyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01P
RFVMRV8xX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDMwKTsKKy8qIGhhcm1vbnkgcmVleHBvcnQg
KHNhZmUpICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAid3Jp
dGUiLCBmdW5jdGlvbigpIHsgcmV0dXJuIF9saWJfd3JpdGVyX2pzX19XRUJQQUNLX0lNUE9SVEVE
X01PRFVMRV8xX19bIndyaXRlIl07IH0pOwogCi0gIGNvbnN0IHN0cmluZ1R5cGVzID0gWwotICAg
ICJCeXRlU3RyaW5nIiwKLSAgICAiRE9NU3RyaW5nIiwKLSAgICAiVVNWU3RyaW5nIgotICBdOwot
Ci0gIGNvbnN0IGFyZ3VtZW50TmFtZUtleXdvcmRzID0gWwotICAgICJhdHRyaWJ1dGUiLAotICAg
ICJjYWxsYmFjayIsCi0gICAgImNvbnN0IiwKLSAgICAiZGVsZXRlciIsCi0gICAgImRpY3Rpb25h
cnkiLAotICAgICJlbnVtIiwKLSAgICAiZ2V0dGVyIiwKLSAgICAiaW5jbHVkZXMiLAotICAgICJp
bmhlcml0IiwKLSAgICAiaW50ZXJmYWNlIiwKLSAgICAiaXRlcmFibGUiLAotICAgICJtYXBsaWtl
IiwKLSAgICAibmFtZXNwYWNlIiwKLSAgICAicGFydGlhbCIsCi0gICAgInJlcXVpcmVkIiwKLSAg
ICAic2V0bGlrZSIsCi0gICAgInNldHRlciIsCi0gICAgInN0YXRpYyIsCi0gICAgInN0cmluZ2lm
aWVyIiwKLSAgICAidHlwZWRlZiIsCi0gICAgInVucmVzdHJpY3RlZCIKLSAgXTsKLQotICBjb25z
dCBub25SZWdleFRlcm1pbmFscyA9IFsKLSAgICAiRnJvemVuQXJyYXkiLAotICAgICJJbmZpbml0
eSIsCi0gICAgIk5hTiIsCi0gICAgIlByb21pc2UiLAotICAgICJib29sZWFuIiwKLSAgICAiYnl0
ZSIsCi0gICAgImRvdWJsZSIsCi0gICAgImZhbHNlIiwKLSAgICAiZmxvYXQiLAotICAgICJpbXBs
ZW1lbnRzIiwKLSAgICAibGVnYWN5aXRlcmFibGUiLAotICAgICJsb25nIiwKLSAgICAibWl4aW4i
LAotICAgICJudWxsIiwKLSAgICAib2N0ZXQiLAotICAgICJvcHRpb25hbCIsCi0gICAgIm9yIiwK
LSAgICAicmVhZG9ubHkiLAotICAgICJyZWNvcmQiLAotICAgICJzZXF1ZW5jZSIsCi0gICAgInNo
b3J0IiwKLSAgICAidHJ1ZSIsCi0gICAgInVuc2lnbmVkIiwKLSAgICAidm9pZCIKLSAgXS5jb25j
YXQoYXJndW1lbnROYW1lS2V5d29yZHMsIHN0cmluZ1R5cGVzKTsKLQotICBjb25zdCBwdW5jdHVh
dGlvbnMgPSBbCi0gICAgIigiLAotICAgICIpIiwKLSAgICAiLCIsCi0gICAgIi1JbmZpbml0eSIs
Ci0gICAgIi4uLiIsCi0gICAgIjoiLAotICAgICI7IiwKLSAgICAiPCIsCi0gICAgIj0iLAotICAg
ICI+IiwKLSAgICAiPyIsCi0gICAgIlsiLAotICAgICJdIiwKLSAgICAieyIsCi0gICAgIn0iCi0g
IF07Ci0KLSAgZnVuY3Rpb24gdG9rZW5pc2Uoc3RyKSB7Ci0gICAgY29uc3QgdG9rZW5zID0gW107
Ci0gICAgbGV0IGxhc3RJbmRleCA9IDA7Ci0gICAgbGV0IHRyaXZpYSA9ICIiOwotICAgIHdoaWxl
IChsYXN0SW5kZXggPCBzdHIubGVuZ3RoKSB7Ci0gICAgICBjb25zdCBuZXh0Q2hhciA9IHN0ci5j
aGFyQXQobGFzdEluZGV4KTsKLSAgICAgIGxldCByZXN1bHQgPSAtMTsKLQotICAgICAgaWYgKC9b
XHRcblxyIF0vLnRlc3QobmV4dENoYXIpKSB7Ci0gICAgICAgIHJlc3VsdCA9IGF0dGVtcHRUb2tl
bk1hdGNoKCJ3aGl0ZXNwYWNlIiwgeyBub0ZsdXNoVHJpdmlhOiB0cnVlIH0pOwotICAgICAgfSBl
bHNlIGlmIChuZXh0Q2hhciA9PT0gJy8nKSB7Ci0gICAgICAgIHJlc3VsdCA9IGF0dGVtcHRUb2tl
bk1hdGNoKCJjb21tZW50IiwgeyBub0ZsdXNoVHJpdmlhOiB0cnVlIH0pOwotICAgICAgfQorLyog
aGFybW9ueSBpbXBvcnQgKi8gdmFyIF9saWJfdmFsaWRhdG9yX2pzX19XRUJQQUNLX0lNUE9SVEVE
X01PRFVMRV8yX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDMxKTsKKy8qIGhhcm1vbnkgcmVleHBv
cnQgKHNhZmUpICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAi
dmFsaWRhdGUiLCBmdW5jdGlvbigpIHsgcmV0dXJuIF9saWJfdmFsaWRhdG9yX2pzX19XRUJQQUNL
X0lNUE9SVEVEX01PRFVMRV8yX19bInZhbGlkYXRlIl07IH0pOwogCi0gICAgICBpZiAocmVzdWx0
ICE9PSAtMSkgewotICAgICAgICB0cml2aWEgKz0gdG9rZW5zLnBvcCgpLnZhbHVlOwotICAgICAg
fSBlbHNlIGlmICgvWy0wLTkuXS8udGVzdChuZXh0Q2hhcikpIHsKLSAgICAgICAgcmVzdWx0ID0g
YXR0ZW1wdFRva2VuTWF0Y2goImZsb2F0Iik7Ci0gICAgICAgIGlmIChyZXN1bHQgPT09IC0xKSB7
Ci0gICAgICAgICAgcmVzdWx0ID0gYXR0ZW1wdFRva2VuTWF0Y2goImludGVnZXIiKTsKLSAgICAg
ICAgfQotICAgICAgfSBlbHNlIGlmICgvW0EtWl9hLXpdLy50ZXN0KG5leHRDaGFyKSkgewotICAg
ICAgICByZXN1bHQgPSBhdHRlbXB0VG9rZW5NYXRjaCgiaWRlbnRpZmllciIpOwotICAgICAgICBj
b25zdCB0b2tlbiA9IHRva2Vuc1t0b2tlbnMubGVuZ3RoIC0gMV07Ci0gICAgICAgIGlmIChyZXN1
bHQgIT09IC0xICYmIG5vblJlZ2V4VGVybWluYWxzLmluY2x1ZGVzKHRva2VuLnZhbHVlKSkgewot
ICAgICAgICAgIHRva2VuLnR5cGUgPSB0b2tlbi52YWx1ZTsKLSAgICAgICAgfQotICAgICAgfSBl
bHNlIGlmIChuZXh0Q2hhciA9PT0gJyInKSB7Ci0gICAgICAgIHJlc3VsdCA9IGF0dGVtcHRUb2tl
bk1hdGNoKCJzdHJpbmciKTsKLSAgICAgIH0KIAotICAgICAgZm9yIChjb25zdCBwdW5jdHVhdGlv
biBvZiBwdW5jdHVhdGlvbnMpIHsKLSAgICAgICAgaWYgKHN0ci5zdGFydHNXaXRoKHB1bmN0dWF0
aW9uLCBsYXN0SW5kZXgpKSB7Ci0gICAgICAgICAgdG9rZW5zLnB1c2goeyB0eXBlOiBwdW5jdHVh
dGlvbiwgdmFsdWU6IHB1bmN0dWF0aW9uLCB0cml2aWEgfSk7Ci0gICAgICAgICAgdHJpdmlhID0g
IiI7Ci0gICAgICAgICAgbGFzdEluZGV4ICs9IHB1bmN0dWF0aW9uLmxlbmd0aDsKLSAgICAgICAg
ICByZXN1bHQgPSBsYXN0SW5kZXg7Ci0gICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICAg
IH0KIAotICAgICAgLy8gb3RoZXIgYXMgdGhlIGxhc3QgdHJ5Ci0gICAgICBpZiAocmVzdWx0ID09
PSAtMSkgewotICAgICAgICByZXN1bHQgPSBhdHRlbXB0VG9rZW5NYXRjaCgib3RoZXIiKTsKLSAg
ICAgIH0KLSAgICAgIGlmIChyZXN1bHQgPT09IC0xKSB7Ci0gICAgICAgIHRocm93IG5ldyBFcnJv
cigiVG9rZW4gc3RyZWFtIG5vdCBwcm9ncmVzc2luZyIpOwotICAgICAgfQotICAgICAgbGFzdElu
ZGV4ID0gcmVzdWx0OwotICAgIH0KLSAgICByZXR1cm4gdG9rZW5zOwogCi0gICAgZnVuY3Rpb24g
YXR0ZW1wdFRva2VuTWF0Y2godHlwZSwgeyBub0ZsdXNoVHJpdmlhIH0gPSB7fSkgewotICAgICAg
Y29uc3QgcmUgPSB0b2tlblJlW3R5cGVdOwotICAgICAgcmUubGFzdEluZGV4ID0gbGFzdEluZGV4
OwotICAgICAgY29uc3QgcmVzdWx0ID0gcmUuZXhlYyhzdHIpOwotICAgICAgaWYgKHJlc3VsdCkg
ewotICAgICAgICB0b2tlbnMucHVzaCh7IHR5cGUsIHZhbHVlOiByZXN1bHRbMF0sIHRyaXZpYSB9
KTsKLSAgICAgICAgaWYgKCFub0ZsdXNoVHJpdmlhKSB7Ci0gICAgICAgICAgdHJpdmlhID0gIiI7
Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHJlLmxhc3RJbmRleDsKLSAgICAgIH0KLSAgICAg
IHJldHVybiAtMTsKLSAgICB9Ci0gIH0KIAotICBjbGFzcyBXZWJJRExQYXJzZUVycm9yIHsKLSAg
ICBjb25zdHJ1Y3RvcihzdHIsIGxpbmUsIGlucHV0LCB0b2tlbnMpIHsKLSAgICAgIHRoaXMubWVz
c2FnZSA9IHN0cjsKLSAgICAgIHRoaXMubGluZSA9IGxpbmU7Ci0gICAgICB0aGlzLmlucHV0ID0g
aW5wdXQ7Ci0gICAgICB0aGlzLnRva2VucyA9IHRva2VuczsKLSAgICB9CiAKLSAgICB0b1N0cmlu
ZygpIHsKLSAgICAgIGNvbnN0IGVzY2FwZWRJbnB1dCA9IEpTT04uc3RyaW5naWZ5KHRoaXMuaW5w
dXQpOwotICAgICAgY29uc3QgdG9rZW5zID0gSlNPTi5zdHJpbmdpZnkodGhpcy50b2tlbnMsIG51
bGwsIDQpOwotICAgICAgcmV0dXJuIGAke3RoaXMubWVzc2FnZX0sIGxpbmUgJHt0aGlzLmxpbmV9
ICh0b2tlbnM6ICR7ZXNjYXBlZElucHV0fSlcbiR7dG9rZW5zfWA7Ci0gICAgfQotICB9CisvKioq
LyB9KSwKKy8qIDEgKi8KKy8qKiovIChmdW5jdGlvbihtb2R1bGUsIF9fd2VicGFja19leHBvcnRz
X18sIF9fd2VicGFja19yZXF1aXJlX18pIHsKIAotICBmdW5jdGlvbiBwYXJzZSh0b2tlbnMpIHsK
LSAgICBsZXQgbGluZSA9IDE7Ci0gICAgdG9rZW5zID0gdG9rZW5zLnNsaWNlKCk7Ci0gICAgY29u
c3QgbmFtZXMgPSBuZXcgTWFwKCk7Ci0gICAgbGV0IGN1cnJlbnQgPSBudWxsOworInVzZSBzdHJp
Y3QiOworX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pOworLyogaGFy
bW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tf
ZXhwb3J0c19fLCAicGFyc2UiLCBmdW5jdGlvbigpIHsgcmV0dXJuIHBhcnNlOyB9KTsKKy8qIGhh
cm1vbnkgaW1wb3J0ICovIHZhciBfdG9rZW5pc2VyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVM
RV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDIpOworLyogaGFybW9ueSBpbXBvcnQgKi8gdmFy
IF9wcm9kdWN0aW9uc19lbnVtX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18gPSBfX3dl
YnBhY2tfcmVxdWlyZV9fKDE1KTsKKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfcHJvZHVjdGlv
bnNfaW5jbHVkZXNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXyA9IF9fd2VicGFja19y
ZXF1aXJlX18oMTYpOworLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9wcm9kdWN0aW9uc19leHRl
bmRlZF9hdHRyaWJ1dGVzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18gPSBfX3dlYnBh
Y2tfcmVxdWlyZV9fKDEwKTsKKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfcHJvZHVjdGlvbnNf
dHlwZWRlZl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fID0gX193ZWJwYWNrX3JlcXVp
cmVfXygxNyk7CisvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3Byb2R1Y3Rpb25zX2NhbGxiYWNr
X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDE4
KTsKKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfcHJvZHVjdGlvbnNfaW50ZXJmYWNlX2pzX19X
RUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDE5KTsKKy8q
IGhhcm1vbnkgaW1wb3J0ICovIHZhciBfcHJvZHVjdGlvbnNfbWl4aW5fanNfX1dFQlBBQ0tfSU1Q
T1JURURfTU9EVUxFXzdfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMjUpOworLyogaGFybW9ueSBp
bXBvcnQgKi8gdmFyIF9wcm9kdWN0aW9uc19kaWN0aW9uYXJ5X2pzX19XRUJQQUNLX0lNUE9SVEVE
X01PRFVMRV84X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDI2KTsKKy8qIGhhcm1vbnkgaW1wb3J0
ICovIHZhciBfcHJvZHVjdGlvbnNfbmFtZXNwYWNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVM
RV85X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDI4KTsKKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZh
ciBfcHJvZHVjdGlvbnNfY2FsbGJhY2tfaW50ZXJmYWNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01P
RFVMRV8xMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygyOSk7CiAKLSAgICBjb25zdCBGTE9BVCA9
ICJmbG9hdCI7Ci0gICAgY29uc3QgSU5UID0gImludGVnZXIiOwotICAgIGNvbnN0IElEID0gImlk
ZW50aWZpZXIiOwotICAgIGNvbnN0IFNUUiA9ICJzdHJpbmciOwotICAgIGNvbnN0IE9USEVSID0g
Im90aGVyIjsKIAotICAgIGNvbnN0IEVNUFRZX09QRVJBVElPTiA9IE9iamVjdC5mcmVlemUoewot
ICAgICAgdHlwZTogIm9wZXJhdGlvbiIsCi0gICAgICBnZXR0ZXI6IGZhbHNlLAotICAgICAgc2V0
dGVyOiBmYWxzZSwKLSAgICAgIGRlbGV0ZXI6IGZhbHNlLAotICAgICAgc3RhdGljOiBmYWxzZSwK
LSAgICAgIHN0cmluZ2lmaWVyOiBmYWxzZQotICAgIH0pOwogCi0gICAgY29uc3QgRU1QVFlfSURM
VFlQRSA9IE9iamVjdC5mcmVlemUoewotICAgICAgZ2VuZXJpYzogbnVsbCwKLSAgICAgIG51bGxh
YmxlOiBmYWxzZSwKLSAgICAgIHVuaW9uOiBmYWxzZSwKLSAgICAgIGlkbFR5cGU6IG51bGwsCi0g
ICAgICBleHRBdHRyczogW10KLSAgICB9KTsKIAotICAgIGZ1bmN0aW9uIGVycm9yKHN0cikgewot
ICAgICAgY29uc3QgbWF4VG9rZW5zID0gNTsKLSAgICAgIGNvbnN0IHRvayA9IHRva2VucwotICAg
ICAgICAuc2xpY2UoY29uc3VtZV9wb3NpdGlvbiwgY29uc3VtZV9wb3NpdGlvbiArIG1heFRva2Vu
cykKLSAgICAgICAgLm1hcCh0ID0+IHQudHJpdmlhICsgdC52YWx1ZSkuam9pbigiIik7Ci0gICAg
ICAvLyBDb3VudCBuZXdsaW5lcyBwcmVjZWRpbmcgdGhlIGFjdHVhbCBlcnJvbmVvdXMgdG9rZW4K
LSAgICAgIGlmICh0b2tlbnMubGVuZ3RoKSB7Ci0gICAgICAgIGxpbmUgKz0gY291bnQodG9rZW5z
W2NvbnN1bWVfcG9zaXRpb25dLnRyaXZpYSwgIlxuIik7Ci0gICAgICB9CiAKLSAgICAgIGxldCBt
ZXNzYWdlOwotICAgICAgaWYgKGN1cnJlbnQpIHsKLSAgICAgICAgbWVzc2FnZSA9IGBHb3QgYW4g
ZXJyb3IgZHVyaW5nIG9yIHJpZ2h0IGFmdGVyIHBhcnNpbmcgXGAke2N1cnJlbnQucGFydGlhbCA/
ICJwYXJ0aWFsICIgOiAiIn0ke2N1cnJlbnQudHlwZX0gJHtjdXJyZW50Lm5hbWV9XGA6ICR7c3Ry
fWAKLSAgICAgIH0KLSAgICAgIGVsc2UgewotICAgICAgICAvLyB0aHJvd2luZyBiZWZvcmUgYW55
IHZhbGlkIGRlZmluaXRpb24KLSAgICAgICAgbWVzc2FnZSA9IGBHb3QgYW4gZXJyb3IgYmVmb3Jl
IHBhcnNpbmcgYW55IG5hbWVkIGRlZmluaXRpb246ICR7c3RyfWA7Ci0gICAgICB9CiAKLSAgICAg
IHRocm93IG5ldyBXZWJJRExQYXJzZUVycm9yKG1lc3NhZ2UsIGxpbmUsIHRvaywgdG9rZW5zLnNs
aWNlKDAsIG1heFRva2VucykpOwotICAgIH0KIAotICAgIGZ1bmN0aW9uIHNhbml0aXplX25hbWUo
bmFtZSwgdHlwZSkgewotICAgICAgaWYgKG5hbWVzLmhhcyhuYW1lKSkgewotICAgICAgICBlcnJv
cihgVGhlIG5hbWUgIiR7bmFtZX0iIG9mIHR5cGUgIiR7bmFtZXMuZ2V0KG5hbWUpfSIgaXMgYWxy
ZWFkeSBzZWVuYCk7Ci0gICAgICB9Ci0gICAgICBuYW1lcy5zZXQobmFtZSwgdHlwZSk7Ci0gICAg
ICByZXR1cm4gbmFtZTsKLSAgICB9CiAKLSAgICBsZXQgY29uc3VtZV9wb3NpdGlvbiA9IDA7CiAK
LSAgICBmdW5jdGlvbiBwcm9iZSh0eXBlKSB7Ci0gICAgICByZXR1cm4gdG9rZW5zLmxlbmd0aCA+
IGNvbnN1bWVfcG9zaXRpb24gJiYgdG9rZW5zW2NvbnN1bWVfcG9zaXRpb25dLnR5cGUgPT09IHR5
cGU7Ci0gICAgfQogCi0gICAgZnVuY3Rpb24gY29uc3VtZSguLi5jYW5kaWRhdGVzKSB7Ci0gICAg
ICAvLyBUT0RPOiB1c2UgY29uc3Qgd2hlbiBTZXJ2byB1cGRhdGVzIGl0cyBKUyBlbmdpbmUKLSAg
ICAgIGZvciAobGV0IHR5cGUgb2YgY2FuZGlkYXRlcykgewotICAgICAgICBpZiAoIXByb2JlKHR5
cGUpKSBjb250aW51ZTsKLSAgICAgICAgY29uc3QgdG9rZW4gPSB0b2tlbnNbY29uc3VtZV9wb3Np
dGlvbl07Ci0gICAgICAgIGNvbnN1bWVfcG9zaXRpb24rKzsKLSAgICAgICAgbGluZSArPSBjb3Vu
dCh0b2tlbi50cml2aWEsICJcbiIpOwotICAgICAgICByZXR1cm4gdG9rZW47Ci0gICAgICB9Ci0g
ICAgfQogCi0gICAgZnVuY3Rpb24gdW5lc2NhcGUoaWRlbnRpZmllcikgewotICAgICAgcmV0dXJu
IGlkZW50aWZpZXIuc3RhcnRzV2l0aCgnXycpID8gaWRlbnRpZmllci5zbGljZSgxKSA6IGlkZW50
aWZpZXI7Ci0gICAgfQogCi0gICAgZnVuY3Rpb24gdW5jb25zdW1lKHBvc2l0aW9uKSB7Ci0gICAg
ICB3aGlsZSAoY29uc3VtZV9wb3NpdGlvbiA+IHBvc2l0aW9uKSB7Ci0gICAgICAgIGNvbnN1bWVf
cG9zaXRpb24tLTsKLSAgICAgICAgbGluZSAtPSBjb3VudCh0b2tlbnNbY29uc3VtZV9wb3NpdGlv
bl0udHJpdmlhLCAiXG4iKTsKLSAgICAgIH0KLSAgICB9CiAKLSAgICBmdW5jdGlvbiBjb3VudChz
dHIsIGNoYXIpIHsKLSAgICAgIGxldCB0b3RhbCA9IDA7Ci0gICAgICBmb3IgKGxldCBpID0gc3Ry
LmluZGV4T2YoY2hhcik7IGkgIT09IC0xOyBpID0gc3RyLmluZGV4T2YoY2hhciwgaSArIDEpKSB7
Ci0gICAgICAgICsrdG90YWw7Ci0gICAgICB9Ci0gICAgICByZXR1cm4gdG90YWw7CisKKy8qKgor
ICogQHBhcmFtIHtUb2tlbmlzZXJ9IHRva2VuaXNlcgorICogQHBhcmFtIHtvYmplY3R9IG9wdGlv
bnMKKyAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMuY29uY3JldGVdCisgKi8KK2Z1bmN0aW9u
IHBhcnNlQnlUb2tlbnModG9rZW5pc2VyLCBvcHRpb25zKSB7CisgIGNvbnN0IHNvdXJjZSA9IHRv
a2VuaXNlci5zb3VyY2U7CisKKyAgZnVuY3Rpb24gZXJyb3Ioc3RyKSB7CisgICAgdG9rZW5pc2Vy
LmVycm9yKHN0cik7CisgIH0KKworICBmdW5jdGlvbiBjb25zdW1lKC4uLmNhbmRpZGF0ZXMpIHsK
KyAgICByZXR1cm4gdG9rZW5pc2VyLmNvbnN1bWUoLi4uY2FuZGlkYXRlcyk7CisgIH0KKworICBm
dW5jdGlvbiBjYWxsYmFjaygpIHsKKyAgICBjb25zdCBjYWxsYmFjayA9IGNvbnN1bWUoImNhbGxi
YWNrIik7CisgICAgaWYgKCFjYWxsYmFjaykgcmV0dXJuOworICAgIGlmICh0b2tlbmlzZXIucHJv
YmUoImludGVyZmFjZSIpKSB7CisgICAgICByZXR1cm4gX3Byb2R1Y3Rpb25zX2NhbGxiYWNrX2lu
dGVyZmFjZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTBfX1siQ2FsbGJhY2tJbnRlcmZh
Y2UiXS5wYXJzZSh0b2tlbmlzZXIsIGNhbGxiYWNrKTsKICAgICB9CisgICAgcmV0dXJuIF9wcm9k
dWN0aW9uc19jYWxsYmFja19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fWyJDYWxsYmFj
a0Z1bmN0aW9uIl0ucGFyc2UodG9rZW5pc2VyLCBjYWxsYmFjayk7CisgIH0KIAotICAgIGZ1bmN0
aW9uIGludGVnZXJfdHlwZSgpIHsKLSAgICAgIGxldCByZXQgPSAiIjsKLSAgICAgIGlmIChjb25z
dW1lKCJ1bnNpZ25lZCIpKSByZXQgPSAidW5zaWduZWQgIjsKLSAgICAgIGlmIChjb25zdW1lKCJz
aG9ydCIpKSByZXR1cm4gcmV0ICsgInNob3J0IjsKLSAgICAgIGlmIChjb25zdW1lKCJsb25nIikp
IHsKLSAgICAgICAgcmV0ICs9ICJsb25nIjsKLSAgICAgICAgaWYgKGNvbnN1bWUoImxvbmciKSkg
cmV0dXJuIHJldCArICIgbG9uZyI7Ci0gICAgICAgIHJldHVybiByZXQ7CisgIGZ1bmN0aW9uIGlu
dGVyZmFjZV8ob3B0cykgeworICAgIGNvbnN0IGJhc2UgPSBjb25zdW1lKCJpbnRlcmZhY2UiKTsK
KyAgICBpZiAoIWJhc2UpIHJldHVybjsKKyAgICBjb25zdCByZXQgPSBfcHJvZHVjdGlvbnNfbWl4
aW5fanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzdfX1siTWl4aW4iXS5wYXJzZSh0b2tlbmlz
ZXIsIGJhc2UsIG9wdHMpIHx8CisgICAgICBfcHJvZHVjdGlvbnNfaW50ZXJmYWNlX2pzX19XRUJQ
QUNLX0lNUE9SVEVEX01PRFVMRV82X19bIkludGVyZmFjZSJdLnBhcnNlKHRva2VuaXNlciwgYmFz
ZSwgb3B0cykgfHwKKyAgICAgIGVycm9yKCJJbnRlcmZhY2UgaGFzIG5vIHByb3BlciBib2R5Iik7
CisgICAgcmV0dXJuIHJldDsKKyAgfQorCisgIGZ1bmN0aW9uIHBhcnRpYWwoKSB7CisgICAgY29u
c3QgcGFydGlhbCA9IGNvbnN1bWUoInBhcnRpYWwiKTsKKyAgICBpZiAoIXBhcnRpYWwpIHJldHVy
bjsKKyAgICByZXR1cm4gX3Byb2R1Y3Rpb25zX2RpY3Rpb25hcnlfanNfX1dFQlBBQ0tfSU1QT1JU
RURfTU9EVUxFXzhfX1siRGljdGlvbmFyeSJdLnBhcnNlKHRva2VuaXNlciwgeyBwYXJ0aWFsIH0p
IHx8CisgICAgICBpbnRlcmZhY2VfKHsgcGFydGlhbCB9KSB8fAorICAgICAgX3Byb2R1Y3Rpb25z
X25hbWVzcGFjZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOV9fWyJOYW1lc3BhY2UiXS5w
YXJzZSh0b2tlbmlzZXIsIHsgcGFydGlhbCB9KSB8fAorICAgICAgZXJyb3IoIlBhcnRpYWwgZG9l
c24ndCBhcHBseSB0byBhbnl0aGluZyIpOworICB9CisKKyAgZnVuY3Rpb24gZGVmaW5pdGlvbigp
IHsKKyAgICByZXR1cm4gY2FsbGJhY2soKSB8fAorICAgICAgaW50ZXJmYWNlXygpIHx8CisgICAg
ICBwYXJ0aWFsKCkgfHwKKyAgICAgIF9wcm9kdWN0aW9uc19kaWN0aW9uYXJ5X2pzX19XRUJQQUNL
X0lNUE9SVEVEX01PRFVMRV84X19bIkRpY3Rpb25hcnkiXS5wYXJzZSh0b2tlbmlzZXIpIHx8Cisg
ICAgICBfcHJvZHVjdGlvbnNfZW51bV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fWyJF
bnVtIl0ucGFyc2UodG9rZW5pc2VyKSB8fAorICAgICAgX3Byb2R1Y3Rpb25zX3R5cGVkZWZfanNf
X1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfX1siVHlwZWRlZiJdLnBhcnNlKHRva2VuaXNlcikg
fHwKKyAgICAgIF9wcm9kdWN0aW9uc19pbmNsdWRlc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RV
TEVfMl9fWyJJbmNsdWRlcyJdLnBhcnNlKHRva2VuaXNlcikgfHwKKyAgICAgIF9wcm9kdWN0aW9u
c19uYW1lc3BhY2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzlfX1siTmFtZXNwYWNlIl0u
cGFyc2UodG9rZW5pc2VyKTsKKyAgfQorCisgIGZ1bmN0aW9uIGRlZmluaXRpb25zKCkgeworICAg
IGlmICghc291cmNlLmxlbmd0aCkgcmV0dXJuIFtdOworICAgIGNvbnN0IGRlZnMgPSBbXTsKKyAg
ICB3aGlsZSAodHJ1ZSkgeworICAgICAgY29uc3QgZWEgPSBfcHJvZHVjdGlvbnNfZXh0ZW5kZWRf
YXR0cmlidXRlc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fWyJFeHRlbmRlZEF0dHJp
YnV0ZXMiXS5wYXJzZSh0b2tlbmlzZXIpOworICAgICAgY29uc3QgZGVmID0gZGVmaW5pdGlvbigp
OworICAgICAgaWYgKCFkZWYpIHsKKyAgICAgICAgaWYgKGVhLmxlbmd0aCkgZXJyb3IoIlN0cmF5
IGV4dGVuZGVkIGF0dHJpYnV0ZXMiKTsKKyAgICAgICAgYnJlYWs7CiAgICAgICB9Ci0gICAgICBp
ZiAocmV0KSBlcnJvcigiRmFpbGVkIHRvIHBhcnNlIGludGVnZXIgdHlwZSIpOworICAgICAgZGVm
LmV4dEF0dHJzID0gZWE7CisgICAgICBkZWZzLnB1c2goZGVmKTsKICAgICB9Ci0KLSAgICBmdW5j
dGlvbiBmbG9hdF90eXBlKCkgewotICAgICAgbGV0IHJldCA9ICIiOwotICAgICAgaWYgKGNvbnN1
bWUoInVucmVzdHJpY3RlZCIpKSByZXQgPSAidW5yZXN0cmljdGVkICI7Ci0gICAgICBpZiAoY29u
c3VtZSgiZmxvYXQiKSkgcmV0dXJuIHJldCArICJmbG9hdCI7Ci0gICAgICBpZiAoY29uc3VtZSgi
ZG91YmxlIikpIHJldHVybiByZXQgKyAiZG91YmxlIjsKLSAgICAgIGlmIChyZXQpIGVycm9yKCJG
YWlsZWQgdG8gcGFyc2UgZmxvYXQgdHlwZSIpOworICAgIGNvbnN0IGVvZiA9IGNvbnN1bWUoImVv
ZiIpOworICAgIGlmIChvcHRpb25zLmNvbmNyZXRlKSB7CisgICAgICBkZWZzLnB1c2goZW9mKTsK
ICAgICB9CisgICAgcmV0dXJuIGRlZnM7CisgIH0KKyAgY29uc3QgcmVzID0gZGVmaW5pdGlvbnMo
KTsKKyAgaWYgKHRva2VuaXNlci5wb3NpdGlvbiA8IHNvdXJjZS5sZW5ndGgpIGVycm9yKCJVbnJl
Y29nbmlzZWQgdG9rZW5zIik7CisgIHJldHVybiByZXM7Cit9CisKK2Z1bmN0aW9uIHBhcnNlKHN0
ciwgb3B0aW9ucyA9IHt9KSB7CisgIGNvbnN0IHRva2VuaXNlciA9IG5ldyBfdG9rZW5pc2VyX2pz
X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIlRva2VuaXNlciJdKHN0cik7CisgIGlmICh0
eXBlb2Ygb3B0aW9ucy5zb3VyY2VOYW1lICE9PSAidW5kZWZpbmVkIikgeworICAgIHRva2VuaXNl
ci5zb3VyY2UubmFtZSA9IG9wdGlvbnMuc291cmNlTmFtZTsKKyAgfQorICByZXR1cm4gcGFyc2VC
eVRva2Vucyh0b2tlbmlzZXIsIG9wdGlvbnMpOworfQogCi0gICAgZnVuY3Rpb24gcHJpbWl0aXZl
X3R5cGUoKSB7Ci0gICAgICBjb25zdCBudW1fdHlwZSA9IGludGVnZXJfdHlwZSgpIHx8IGZsb2F0
X3R5cGUoKTsKLSAgICAgIGlmIChudW1fdHlwZSkgcmV0dXJuIG51bV90eXBlOwotICAgICAgaWYg
KGNvbnN1bWUoImJvb2xlYW4iKSkgcmV0dXJuICJib29sZWFuIjsKLSAgICAgIGlmIChjb25zdW1l
KCJieXRlIikpIHJldHVybiAiYnl0ZSI7Ci0gICAgICBpZiAoY29uc3VtZSgib2N0ZXQiKSkgcmV0
dXJuICJvY3RldCI7Ci0gICAgfQogCi0gICAgZnVuY3Rpb24gY29uc3RfdmFsdWUoKSB7Ci0gICAg
ICBpZiAoY29uc3VtZSgidHJ1ZSIpKSByZXR1cm4geyB0eXBlOiAiYm9vbGVhbiIsIHZhbHVlOiB0
cnVlIH07Ci0gICAgICBpZiAoY29uc3VtZSgiZmFsc2UiKSkgcmV0dXJuIHsgdHlwZTogImJvb2xl
YW4iLCB2YWx1ZTogZmFsc2UgfTsKLSAgICAgIGlmIChjb25zdW1lKCJudWxsIikpIHJldHVybiB7
IHR5cGU6ICJudWxsIiB9OwotICAgICAgaWYgKGNvbnN1bWUoIkluZmluaXR5IikpIHJldHVybiB7
IHR5cGU6ICJJbmZpbml0eSIsIG5lZ2F0aXZlOiBmYWxzZSB9OwotICAgICAgaWYgKGNvbnN1bWUo
Ii1JbmZpbml0eSIpKSByZXR1cm4geyB0eXBlOiAiSW5maW5pdHkiLCBuZWdhdGl2ZTogdHJ1ZSB9
OwotICAgICAgaWYgKGNvbnN1bWUoIk5hTiIpKSByZXR1cm4geyB0eXBlOiAiTmFOIiB9OwotICAg
ICAgY29uc3QgcmV0ID0gY29uc3VtZShGTE9BVCwgSU5UKTsKLSAgICAgIGlmIChyZXQpIHJldHVy
biB7IHR5cGU6ICJudW1iZXIiLCB2YWx1ZTogcmV0LnZhbHVlIH07Ci0gICAgfQorLyoqKi8gfSks
CisvKiAyICovCisvKioqLyAoZnVuY3Rpb24obW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBf
X3dlYnBhY2tfcmVxdWlyZV9fKSB7CiAKLSAgICBmdW5jdGlvbiB0eXBlX3N1ZmZpeChvYmopIHsK
LSAgICAgIG9iai5udWxsYWJsZSA9ICEhY29uc3VtZSgiPyIpOwotICAgICAgaWYgKHByb2JlKCI/
IikpIGVycm9yKCJDYW4ndCBudWxsYWJsZSBtb3JlIHRoYW4gb25jZSIpOworInVzZSBzdHJpY3Qi
OworX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pOworLyogaGFybW9u
eSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhw
b3J0c19fLCAic3RyaW5nVHlwZXMiLCBmdW5jdGlvbigpIHsgcmV0dXJuIHN0cmluZ1R5cGVzOyB9
KTsKKy8qIGhhcm1vbnkgZXhwb3J0IChiaW5kaW5nKSAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQo
X193ZWJwYWNrX2V4cG9ydHNfXywgImFyZ3VtZW50TmFtZUtleXdvcmRzIiwgZnVuY3Rpb24oKSB7
IHJldHVybiBhcmd1bWVudE5hbWVLZXl3b3JkczsgfSk7CisvKiBoYXJtb255IGV4cG9ydCAoYmlu
ZGluZykgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sICJUb2tl
bmlzZXIiLCBmdW5jdGlvbigpIHsgcmV0dXJuIFRva2VuaXNlcjsgfSk7CisvKiBoYXJtb255IGlt
cG9ydCAqLyB2YXIgX2Vycm9yX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dl
YnBhY2tfcmVxdWlyZV9fKDMpOworLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9wcm9kdWN0aW9u
c19oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18gPSBfX3dlYnBhY2tfcmVx
dWlyZV9fKDQpOworCisKKworLy8gVGhlc2UgcmVndWxhciBleHByZXNzaW9ucyB1c2UgdGhlIHN0
aWNreSBmbGFnIHNvIHRoZXkgd2lsbCBvbmx5IG1hdGNoIGF0CisvLyB0aGUgY3VycmVudCBsb2Nh
dGlvbiAoaWUuIHRoZSBvZmZzZXQgb2YgbGFzdEluZGV4KS4KK2NvbnN0IHRva2VuUmUgPSB7Cisg
IC8vIFRoaXMgZXhwcmVzc2lvbiB1c2VzIGEgbG9va2FoZWFkIGFzc2VydGlvbiB0byBjYXRjaCBm
YWxzZSBtYXRjaGVzCisgIC8vIGFnYWluc3QgaW50ZWdlcnMgZWFybHkuCisgICJkZWNpbWFsIjog
Ly0/KD89WzAtOV0qXC58WzAtOV0rW2VFXSkoKFswLTldK1wuWzAtOV0qfFswLTldKlwuWzAtOV0r
KShbRWVdWy0rXT9bMC05XSspP3xbMC05XStbRWVdWy0rXT9bMC05XSspL3ksCisgICJpbnRlZ2Vy
IjogLy0/KDAoW1h4XVswLTlBLUZhLWZdK3xbMC03XSopfFsxLTldWzAtOV0qKS95LAorICAiaWRl
bnRpZmllciI6IC9bXy1dP1tBLVphLXpdWzAtOUEtWl9hLXotXSoveSwKKyAgInN0cmluZyI6IC8i
W14iXSoiL3ksCisgICJ3aGl0ZXNwYWNlIjogL1tcdFxuXHIgXSsveSwKKyAgImNvbW1lbnQiOiAv
KChcLyhcLy4qfFwqKFteKl18XCpbXi9dKSpcKlwvKVtcdFxuXHIgXSopKykveSwKKyAgIm90aGVy
IjogL1teXHRcblxyIDAtOUEtWmEtel0veQorfTsKKworY29uc3Qgc3RyaW5nVHlwZXMgPSBbCisg
ICJCeXRlU3RyaW5nIiwKKyAgIkRPTVN0cmluZyIsCisgICJVU1ZTdHJpbmciCitdOworCitjb25z
dCBhcmd1bWVudE5hbWVLZXl3b3JkcyA9IFsKKyAgImFzeW5jIiwKKyAgImF0dHJpYnV0ZSIsCisg
ICJjYWxsYmFjayIsCisgICJjb25zdCIsCisgICJjb25zdHJ1Y3RvciIsCisgICJkZWxldGVyIiwK
KyAgImRpY3Rpb25hcnkiLAorICAiZW51bSIsCisgICJnZXR0ZXIiLAorICAiaW5jbHVkZXMiLAor
ICAiaW5oZXJpdCIsCisgICJpbnRlcmZhY2UiLAorICAiaXRlcmFibGUiLAorICAibWFwbGlrZSIs
CisgICJuYW1lc3BhY2UiLAorICAicGFydGlhbCIsCisgICJyZXF1aXJlZCIsCisgICJzZXRsaWtl
IiwKKyAgInNldHRlciIsCisgICJzdGF0aWMiLAorICAic3RyaW5naWZpZXIiLAorICAidHlwZWRl
ZiIsCisgICJ1bnJlc3RyaWN0ZWQiCitdOworCitjb25zdCBub25SZWdleFRlcm1pbmFscyA9IFsK
KyAgIi1JbmZpbml0eSIsCisgICJGcm96ZW5BcnJheSIsCisgICJJbmZpbml0eSIsCisgICJOYU4i
LAorICAiUHJvbWlzZSIsCisgICJhc3luYyIsCisgICJib29sZWFuIiwKKyAgImJ5dGUiLAorICAi
Y29uc3RydWN0b3IiLAorICAiZG91YmxlIiwKKyAgImZhbHNlIiwKKyAgImZsb2F0IiwKKyAgImxv
bmciLAorICAibWl4aW4iLAorICAibnVsbCIsCisgICJvY3RldCIsCisgICJvcHRpb25hbCIsCisg
ICJvciIsCisgICJyZWFkb25seSIsCisgICJyZWNvcmQiLAorICAic2VxdWVuY2UiLAorICAic2hv
cnQiLAorICAidHJ1ZSIsCisgICJ1bnNpZ25lZCIsCisgICJ2b2lkIgorXS5jb25jYXQoYXJndW1l
bnROYW1lS2V5d29yZHMsIHN0cmluZ1R5cGVzKTsKKworY29uc3QgcHVuY3R1YXRpb25zID0gWwor
ICAiKCIsCisgICIpIiwKKyAgIiwiLAorICAiLi4uIiwKKyAgIjoiLAorICAiOyIsCisgICI8IiwK
KyAgIj0iLAorICAiPiIsCisgICI/IiwKKyAgIlsiLAorICAiXSIsCisgICJ7IiwKKyAgIn0iCitd
OworCitjb25zdCByZXNlcnZlZCA9IFsKKyAgLy8gImNvbnN0cnVjdG9yIiBpcyBub3cgYSBrZXl3
b3JkCisgICJfY29uc3RydWN0b3IiLAorICAidG9TdHJpbmciLAorICAiX3RvU3RyaW5nIiwKK107
CisKKy8qKgorICogQHBhcmFtIHtzdHJpbmd9IHN0cgorICovCitmdW5jdGlvbiB0b2tlbmlzZShz
dHIpIHsKKyAgY29uc3QgdG9rZW5zID0gW107CisgIGxldCBsYXN0Q2hhckluZGV4ID0gMDsKKyAg
bGV0IHRyaXZpYSA9ICIiOworICBsZXQgbGluZSA9IDE7CisgIGxldCBpbmRleCA9IDA7CisgIHdo
aWxlIChsYXN0Q2hhckluZGV4IDwgc3RyLmxlbmd0aCkgeworICAgIGNvbnN0IG5leHRDaGFyID0g
c3RyLmNoYXJBdChsYXN0Q2hhckluZGV4KTsKKyAgICBsZXQgcmVzdWx0ID0gLTE7CisKKyAgICBp
ZiAoL1tcdFxuXHIgXS8udGVzdChuZXh0Q2hhcikpIHsKKyAgICAgIHJlc3VsdCA9IGF0dGVtcHRU
b2tlbk1hdGNoKCJ3aGl0ZXNwYWNlIiwgeyBub0ZsdXNoVHJpdmlhOiB0cnVlIH0pOworICAgIH0g
ZWxzZSBpZiAobmV4dENoYXIgPT09ICcvJykgeworICAgICAgcmVzdWx0ID0gYXR0ZW1wdFRva2Vu
TWF0Y2goImNvbW1lbnQiLCB7IG5vRmx1c2hUcml2aWE6IHRydWUgfSk7CiAgICAgfQogCi0gICAg
ZnVuY3Rpb24gZ2VuZXJpY190eXBlKHR5cGVOYW1lKSB7Ci0gICAgICBjb25zdCBuYW1lID0gY29u
c3VtZSgiRnJvemVuQXJyYXkiLCAiUHJvbWlzZSIsICJzZXF1ZW5jZSIsICJyZWNvcmQiKTsKLSAg
ICAgIGlmICghbmFtZSkgewotICAgICAgICByZXR1cm47Ci0gICAgICB9Ci0gICAgICBjb25zdCBy
ZXQgPSB7IGdlbmVyaWM6IG5hbWUudHlwZSB9OwotICAgICAgY29uc3VtZSgiPCIpIHx8IGVycm9y
KGBObyBvcGVuaW5nIGJyYWNrZXQgYWZ0ZXIgJHtuYW1lLnR5cGV9YCk7Ci0gICAgICBzd2l0Y2gg
KG5hbWUudHlwZSkgewotICAgICAgICBjYXNlICJQcm9taXNlIjoKLSAgICAgICAgICBpZiAocHJv
YmUoIlsiKSkgZXJyb3IoIlByb21pc2UgdHlwZSBjYW5ub3QgaGF2ZSBleHRlbmRlZCBhdHRyaWJ1
dGUiKTsKLSAgICAgICAgICByZXQuaWRsVHlwZSA9IHJldHVybl90eXBlKHR5cGVOYW1lKTsKLSAg
ICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSAic2VxdWVuY2UiOgotICAgICAgICBjYXNlICJG
cm96ZW5BcnJheSI6Ci0gICAgICAgICAgcmV0LmlkbFR5cGUgPSB0eXBlX3dpdGhfZXh0ZW5kZWRf
YXR0cmlidXRlcyh0eXBlTmFtZSk7Ci0gICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgInJl
Y29yZCI6Ci0gICAgICAgICAgaWYgKHByb2JlKCJbIikpIGVycm9yKCJSZWNvcmQga2V5IGNhbm5v
dCBoYXZlIGV4dGVuZGVkIGF0dHJpYnV0ZSIpOwotICAgICAgICAgIHJldC5pZGxUeXBlID0gW107
Ci0gICAgICAgICAgY29uc3Qga2V5VHlwZSA9IGNvbnN1bWUoLi4uc3RyaW5nVHlwZXMpOwotICAg
ICAgICAgIGlmICgha2V5VHlwZSkgZXJyb3IoYFJlY29yZCBrZXkgbXVzdCBiZSBhIHN0cmluZyB0
eXBlYCk7Ci0gICAgICAgICAgcmV0LmlkbFR5cGUucHVzaChPYmplY3QuYXNzaWduKHsgdHlwZTog
dHlwZU5hbWUgfSwgRU1QVFlfSURMVFlQRSwgeyBpZGxUeXBlOiBrZXlUeXBlLnZhbHVlIH0pKTsK
LSAgICAgICAgICBjb25zdW1lKCIsIikgfHwgZXJyb3IoIk1pc3NpbmcgY29tbWEgYWZ0ZXIgcmVj
b3JkIGtleSB0eXBlIik7Ci0gICAgICAgICAgY29uc3QgdmFsdWVUeXBlID0gdHlwZV93aXRoX2V4
dGVuZGVkX2F0dHJpYnV0ZXModHlwZU5hbWUpIHx8IGVycm9yKCJFcnJvciBwYXJzaW5nIGdlbmVy
aWMgdHlwZSByZWNvcmQiKTsKLSAgICAgICAgICByZXQuaWRsVHlwZS5wdXNoKHZhbHVlVHlwZSk7
Ci0gICAgICAgICAgYnJlYWs7CisgICAgaWYgKHJlc3VsdCAhPT0gLTEpIHsKKyAgICAgIGNvbnN0
IGN1cnJlbnRUcml2aWEgPSB0b2tlbnMucG9wKCkudmFsdWU7CisgICAgICBsaW5lICs9IChjdXJy
ZW50VHJpdmlhLm1hdGNoKC9cbi9nKSB8fCBbXSkubGVuZ3RoOworICAgICAgdHJpdmlhICs9IGN1
cnJlbnRUcml2aWE7CisgICAgICBpbmRleCAtPSAxOworICAgIH0gZWxzZSBpZiAoL1stMC05LkEt
Wl9hLXpdLy50ZXN0KG5leHRDaGFyKSkgeworICAgICAgcmVzdWx0ID0gYXR0ZW1wdFRva2VuTWF0
Y2goImRlY2ltYWwiKTsKKyAgICAgIGlmIChyZXN1bHQgPT09IC0xKSB7CisgICAgICAgIHJlc3Vs
dCA9IGF0dGVtcHRUb2tlbk1hdGNoKCJpbnRlZ2VyIik7CiAgICAgICB9Ci0gICAgICBpZiAoIXJl
dC5pZGxUeXBlKSBlcnJvcihgRXJyb3IgcGFyc2luZyBnZW5lcmljIHR5cGUgJHtuYW1lLnR5cGV9
YCk7Ci0gICAgICBjb25zdW1lKCI+IikgfHwgZXJyb3IoYE1pc3NpbmcgY2xvc2luZyBicmFja2V0
IGFmdGVyICR7bmFtZS50eXBlfWApOwotICAgICAgaWYgKG5hbWUudHlwZSA9PT0gIlByb21pc2Ui
ICYmIHByb2JlKCI/IikpIHsKLSAgICAgICAgZXJyb3IoIlByb21pc2UgdHlwZSBjYW5ub3QgYmUg
bnVsbGFibGUiKTsKKyAgICAgIGlmIChyZXN1bHQgPT09IC0xKSB7CisgICAgICAgIHJlc3VsdCA9
IGF0dGVtcHRUb2tlbk1hdGNoKCJpZGVudGlmaWVyIik7CisgICAgICAgIGNvbnN0IGxhc3RJbmRl
eCA9IHRva2Vucy5sZW5ndGggLSAxOworICAgICAgICBjb25zdCB0b2tlbiA9IHRva2Vuc1tsYXN0
SW5kZXhdOworICAgICAgICBpZiAocmVzdWx0ICE9PSAtMSkgeworICAgICAgICAgIGlmIChyZXNl
cnZlZC5pbmNsdWRlcyh0b2tlbi52YWx1ZSkpIHsKKyAgICAgICAgICAgIGNvbnN0IG1lc3NhZ2Ug
PSBgJHtPYmplY3QoX3Byb2R1Y3Rpb25zX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9E
VUxFXzFfX1sidW5lc2NhcGUiXSkodG9rZW4udmFsdWUpfSBpcyBhIHJlc2VydmVkIGlkZW50aWZp
ZXIgYW5kIG11c3Qgbm90IGJlIHVzZWQuYDsKKyAgICAgICAgICAgIHRocm93IG5ldyBXZWJJRExQ
YXJzZUVycm9yKE9iamVjdChfZXJyb3JfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1si
c3ludGF4RXJyb3IiXSkodG9rZW5zLCBsYXN0SW5kZXgsIG51bGwsIG1lc3NhZ2UpKTsKKyAgICAg
ICAgICB9IGVsc2UgaWYgKG5vblJlZ2V4VGVybWluYWxzLmluY2x1ZGVzKHRva2VuLnZhbHVlKSkg
eworICAgICAgICAgICAgdG9rZW4udHlwZSA9IHRva2VuLnZhbHVlOworICAgICAgICAgIH0KKyAg
ICAgICAgfQogICAgICAgfQotICAgICAgdHlwZV9zdWZmaXgocmV0KTsKLSAgICAgIHJldHVybiBy
ZXQ7CisgICAgfSBlbHNlIGlmIChuZXh0Q2hhciA9PT0gJyInKSB7CisgICAgICByZXN1bHQgPSBh
dHRlbXB0VG9rZW5NYXRjaCgic3RyaW5nIik7CiAgICAgfQogCi0gICAgZnVuY3Rpb24gc2luZ2xl
X3R5cGUodHlwZU5hbWUpIHsKLSAgICAgIGNvbnN0IHJldCA9IE9iamVjdC5hc3NpZ24oeyB0eXBl
OiB0eXBlTmFtZSB8fCBudWxsIH0sIEVNUFRZX0lETFRZUEUpOwotICAgICAgY29uc3QgZ2VuZXJp
YyA9IGdlbmVyaWNfdHlwZSh0eXBlTmFtZSk7Ci0gICAgICBpZiAoZ2VuZXJpYykgewotICAgICAg
ICByZXR1cm4gT2JqZWN0LmFzc2lnbihyZXQsIGdlbmVyaWMpOworICAgIGZvciAoY29uc3QgcHVu
Y3R1YXRpb24gb2YgcHVuY3R1YXRpb25zKSB7CisgICAgICBpZiAoc3RyLnN0YXJ0c1dpdGgocHVu
Y3R1YXRpb24sIGxhc3RDaGFySW5kZXgpKSB7CisgICAgICAgIHRva2Vucy5wdXNoKHsgdHlwZTog
cHVuY3R1YXRpb24sIHZhbHVlOiBwdW5jdHVhdGlvbiwgdHJpdmlhLCBsaW5lLCBpbmRleCB9KTsK
KyAgICAgICAgdHJpdmlhID0gIiI7CisgICAgICAgIGxhc3RDaGFySW5kZXggKz0gcHVuY3R1YXRp
b24ubGVuZ3RoOworICAgICAgICByZXN1bHQgPSBsYXN0Q2hhckluZGV4OworICAgICAgICBicmVh
azsKICAgICAgIH0KLSAgICAgIGNvbnN0IHByaW0gPSBwcmltaXRpdmVfdHlwZSgpOwotICAgICAg
bGV0IG5hbWU7Ci0gICAgICBpZiAocHJpbSkgewotICAgICAgICByZXQuaWRsVHlwZSA9IHByaW07
Ci0gICAgICB9IGVsc2UgaWYgKG5hbWUgPSBjb25zdW1lKElELCAuLi5zdHJpbmdUeXBlcykpIHsK
LSAgICAgICAgcmV0LmlkbFR5cGUgPSBuYW1lLnZhbHVlOwotICAgICAgICBpZiAocHJvYmUoIjwi
KSkgZXJyb3IoYFVuc3VwcG9ydGVkIGdlbmVyaWMgdHlwZSAke25hbWUudmFsdWV9YCk7Ci0gICAg
ICB9IGVsc2UgewotICAgICAgICByZXR1cm47Ci0gICAgICB9Ci0gICAgICB0eXBlX3N1ZmZpeChy
ZXQpOwotICAgICAgaWYgKHJldC5udWxsYWJsZSAmJiByZXQuaWRsVHlwZSA9PT0gImFueSIpIGVy
cm9yKCJUeXBlIGFueSBjYW5ub3QgYmUgbWFkZSBudWxsYWJsZSIpOwotICAgICAgcmV0dXJuIHJl
dDsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiB1bmlvbl90eXBlKHR5cGVOYW1lKSB7Ci0gICAgICBp
ZiAoIWNvbnN1bWUoIigiKSkgcmV0dXJuOwotICAgICAgY29uc3QgcmV0ID0gT2JqZWN0LmFzc2ln
bih7IHR5cGU6IHR5cGVOYW1lIHx8IG51bGwgfSwgRU1QVFlfSURMVFlQRSwgeyB1bmlvbjogdHJ1
ZSwgaWRsVHlwZTogW10gfSk7Ci0gICAgICBkbyB7Ci0gICAgICAgIGNvbnN0IHR5cCA9IHR5cGVf
d2l0aF9leHRlbmRlZF9hdHRyaWJ1dGVzKCkgfHwgZXJyb3IoIk5vIHR5cGUgYWZ0ZXIgb3BlbiBw
YXJlbnRoZXNpcyBvciAnb3InIGluIHVuaW9uIHR5cGUiKTsKLSAgICAgICAgcmV0LmlkbFR5cGUu
cHVzaCh0eXApOwotICAgICAgfSB3aGlsZSAoY29uc3VtZSgib3IiKSk7Ci0gICAgICBpZiAocmV0
LmlkbFR5cGUubGVuZ3RoIDwgMikgewotICAgICAgICBlcnJvcigiQXQgbGVhc3QgdHdvIHR5cGVz
IGFyZSBleHBlY3RlZCBpbiBhIHVuaW9uIHR5cGUgYnV0IGZvdW5kIGxlc3MiKTsKLSAgICAgIH0K
LSAgICAgIGlmICghY29uc3VtZSgiKSIpKSBlcnJvcigiVW50ZXJtaW5hdGVkIHVuaW9uIHR5cGUi
KTsKLSAgICAgIHR5cGVfc3VmZml4KHJldCk7Ci0gICAgICByZXR1cm4gcmV0OwogICAgIH0KIAot
ICAgIGZ1bmN0aW9uIHR5cGUodHlwZU5hbWUpIHsKLSAgICAgIHJldHVybiBzaW5nbGVfdHlwZSh0
eXBlTmFtZSkgfHwgdW5pb25fdHlwZSh0eXBlTmFtZSk7CisgICAgLy8gb3RoZXIgYXMgdGhlIGxh
c3QgdHJ5CisgICAgaWYgKHJlc3VsdCA9PT0gLTEpIHsKKyAgICAgIHJlc3VsdCA9IGF0dGVtcHRU
b2tlbk1hdGNoKCJvdGhlciIpOwogICAgIH0KLQotICAgIGZ1bmN0aW9uIHR5cGVfd2l0aF9leHRl
bmRlZF9hdHRyaWJ1dGVzKHR5cGVOYW1lKSB7Ci0gICAgICBjb25zdCBleHRBdHRycyA9IGV4dGVu
ZGVkX2F0dHJzKCk7Ci0gICAgICBjb25zdCByZXQgPSBzaW5nbGVfdHlwZSh0eXBlTmFtZSkgfHwg
dW5pb25fdHlwZSh0eXBlTmFtZSk7Ci0gICAgICBpZiAoZXh0QXR0cnMubGVuZ3RoICYmIHJldCkg
cmV0LmV4dEF0dHJzID0gZXh0QXR0cnM7Ci0gICAgICByZXR1cm4gcmV0OworICAgIGlmIChyZXN1
bHQgPT09IC0xKSB7CisgICAgICB0aHJvdyBuZXcgRXJyb3IoIlRva2VuIHN0cmVhbSBub3QgcHJv
Z3Jlc3NpbmciKTsKICAgICB9CisgICAgbGFzdENoYXJJbmRleCA9IHJlc3VsdDsKKyAgICBpbmRl
eCArPSAxOworICB9CiAKLSAgICBmdW5jdGlvbiBhcmd1bWVudCgpIHsKLSAgICAgIGNvbnN0IHN0
YXJ0X3Bvc2l0aW9uID0gY29uc3VtZV9wb3NpdGlvbjsKLSAgICAgIGNvbnN0IHJldCA9IHsgb3B0
aW9uYWw6IGZhbHNlLCB2YXJpYWRpYzogZmFsc2UsIGRlZmF1bHQ6IG51bGwgfTsKLSAgICAgIHJl
dC5leHRBdHRycyA9IGV4dGVuZGVkX2F0dHJzKCk7Ci0gICAgICBjb25zdCBvcHRfdG9rZW4gPSBj
b25zdW1lKCJvcHRpb25hbCIpOwotICAgICAgaWYgKG9wdF90b2tlbikgewotICAgICAgICByZXQu
b3B0aW9uYWwgPSB0cnVlOwotICAgICAgfQotICAgICAgcmV0LmlkbFR5cGUgPSB0eXBlX3dpdGhf
ZXh0ZW5kZWRfYXR0cmlidXRlcygiYXJndW1lbnQtdHlwZSIpOwotICAgICAgaWYgKCFyZXQuaWRs
VHlwZSkgewotICAgICAgICB1bmNvbnN1bWUoc3RhcnRfcG9zaXRpb24pOwotICAgICAgICByZXR1
cm47Ci0gICAgICB9Ci0gICAgICBpZiAoIXJldC5vcHRpb25hbCAmJiBjb25zdW1lKCIuLi4iKSkg
ewotICAgICAgICByZXQudmFyaWFkaWMgPSB0cnVlOwotICAgICAgfQotICAgICAgY29uc3QgbmFt
ZSA9IGNvbnN1bWUoSUQsIC4uLmFyZ3VtZW50TmFtZUtleXdvcmRzKTsKLSAgICAgIGlmICghbmFt
ZSkgewotICAgICAgICB1bmNvbnN1bWUoc3RhcnRfcG9zaXRpb24pOwotICAgICAgICByZXR1cm47
CisgIC8vIHJlbWFpbmluZyB0cml2aWEgYXMgZW9mCisgIHRva2Vucy5wdXNoKHsKKyAgICB0eXBl
OiAiZW9mIiwKKyAgICB2YWx1ZTogIiIsCisgICAgdHJpdmlhCisgIH0pOworCisgIHJldHVybiB0
b2tlbnM7CisKKyAgLyoqCisgICAqIEBwYXJhbSB7a2V5b2YgdG9rZW5SZX0gdHlwZQorICAgKiBA
cGFyYW0ge29iamVjdH0gW29wdGlvbnNdCisgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMu
bm9GbHVzaFRyaXZpYV0KKyAgICovCisgIGZ1bmN0aW9uIGF0dGVtcHRUb2tlbk1hdGNoKHR5cGUs
IHsgbm9GbHVzaFRyaXZpYSB9ID0ge30pIHsKKyAgICBjb25zdCByZSA9IHRva2VuUmVbdHlwZV07
CisgICAgcmUubGFzdEluZGV4ID0gbGFzdENoYXJJbmRleDsKKyAgICBjb25zdCByZXN1bHQgPSBy
ZS5leGVjKHN0cik7CisgICAgaWYgKHJlc3VsdCkgeworICAgICAgdG9rZW5zLnB1c2goeyB0eXBl
LCB2YWx1ZTogcmVzdWx0WzBdLCB0cml2aWEsIGxpbmUsIGluZGV4IH0pOworICAgICAgaWYgKCFu
b0ZsdXNoVHJpdmlhKSB7CisgICAgICAgIHRyaXZpYSA9ICIiOwogICAgICAgfQotICAgICAgcmV0
Lm5hbWUgPSB1bmVzY2FwZShuYW1lLnZhbHVlKTsKLSAgICAgIHJldC5lc2NhcGVkTmFtZSA9IG5h
bWUudmFsdWU7Ci0gICAgICBpZiAocmV0Lm9wdGlvbmFsKSB7Ci0gICAgICAgIHJldC5kZWZhdWx0
ID0gZGVmYXVsdF8oKSB8fCBudWxsOwotICAgICAgfQotICAgICAgcmV0dXJuIHJldDsKKyAgICAg
IHJldHVybiByZS5sYXN0SW5kZXg7CiAgICAgfQorICAgIHJldHVybiAtMTsKKyAgfQorfQorCitj
bGFzcyBUb2tlbmlzZXIgeworICAvKioKKyAgICogQHBhcmFtIHtzdHJpbmd9IGlkbAorICAgKi8K
KyAgY29uc3RydWN0b3IoaWRsKSB7CisgICAgdGhpcy5zb3VyY2UgPSB0b2tlbmlzZShpZGwpOwor
ICAgIHRoaXMucG9zaXRpb24gPSAwOworICB9CiAKLSAgICBmdW5jdGlvbiBhcmd1bWVudF9saXN0
KCkgewotICAgICAgY29uc3QgcmV0ID0gW107Ci0gICAgICBjb25zdCBhcmcgPSBhcmd1bWVudCgp
OwotICAgICAgaWYgKCFhcmcpIHJldHVybiByZXQ7Ci0gICAgICByZXQucHVzaChhcmcpOwotICAg
ICAgd2hpbGUgKHRydWUpIHsKLSAgICAgICAgaWYgKCFjb25zdW1lKCIsIikpIHJldHVybiByZXQ7
Ci0gICAgICAgIGNvbnN0IG54dCA9IGFyZ3VtZW50KCkgfHwgZXJyb3IoIlRyYWlsaW5nIGNvbW1h
IGluIGFyZ3VtZW50cyBsaXN0Iik7Ci0gICAgICAgIHJldC5wdXNoKG54dCk7Ci0gICAgICB9Cisg
IC8qKgorICAgKiBAcGFyYW0ge3N0cmluZ30gbWVzc2FnZQorICAgKi8KKyAgZXJyb3IobWVzc2Fn
ZSkgeworICAgIHRocm93IG5ldyBXZWJJRExQYXJzZUVycm9yKE9iamVjdChfZXJyb3JfanNfX1dF
QlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1sic3ludGF4RXJyb3IiXSkodGhpcy5zb3VyY2UsIHRo
aXMucG9zaXRpb24sIHRoaXMuY3VycmVudCwgbWVzc2FnZSkpOworICB9CisKKyAgLyoqCisgICAq
IEBwYXJhbSB7c3RyaW5nfSB0eXBlCisgICAqLworICBwcm9iZSh0eXBlKSB7CisgICAgcmV0dXJu
IHRoaXMuc291cmNlLmxlbmd0aCA+IHRoaXMucG9zaXRpb24gJiYgdGhpcy5zb3VyY2VbdGhpcy5w
b3NpdGlvbl0udHlwZSA9PT0gdHlwZTsKKyAgfQorCisgIC8qKgorICAgKiBAcGFyYW0gIHsuLi5z
dHJpbmd9IGNhbmRpZGF0ZXMKKyAgICovCisgIGNvbnN1bWUoLi4uY2FuZGlkYXRlcykgeworICAg
IGZvciAoY29uc3QgdHlwZSBvZiBjYW5kaWRhdGVzKSB7CisgICAgICBpZiAoIXRoaXMucHJvYmUo
dHlwZSkpIGNvbnRpbnVlOworICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLnNvdXJjZVt0aGlzLnBv
c2l0aW9uXTsKKyAgICAgIHRoaXMucG9zaXRpb24rKzsKKyAgICAgIHJldHVybiB0b2tlbjsKICAg
ICB9CisgIH0KIAotICAgIGZ1bmN0aW9uIHNpbXBsZV9leHRlbmRlZF9hdHRyKCkgewotICAgICAg
Y29uc3QgbmFtZSA9IGNvbnN1bWUoSUQpOwotICAgICAgaWYgKCFuYW1lKSByZXR1cm47Ci0gICAg
ICBjb25zdCByZXQgPSB7Ci0gICAgICAgIG5hbWU6IG5hbWUudmFsdWUsCi0gICAgICAgIGFyZ3Vt
ZW50czogbnVsbCwKLSAgICAgICAgdHlwZTogImV4dGVuZGVkLWF0dHJpYnV0ZSIsCi0gICAgICAg
IHJoczogbnVsbAotICAgICAgfTsKLSAgICAgIGNvbnN0IGVxID0gY29uc3VtZSgiPSIpOwotICAg
ICAgaWYgKGVxKSB7Ci0gICAgICAgIHJldC5yaHMgPSBjb25zdW1lKElELCBGTE9BVCwgSU5ULCBT
VFIpOwotICAgICAgICBpZiAocmV0LnJocykgewotICAgICAgICAgIC8vIE5vIHRyaXZpYSBleHBv
c3VyZSB5ZXQKLSAgICAgICAgICByZXQucmhzLnRyaXZpYSA9IHVuZGVmaW5lZDsKLSAgICAgICAg
fQotICAgICAgfQotICAgICAgaWYgKGNvbnN1bWUoIigiKSkgewotICAgICAgICBpZiAoZXEgJiYg
IXJldC5yaHMpIHsKLSAgICAgICAgICAvLyBbRXhwb3NlZD0oV2luZG93LFdvcmtlcildCi0gICAg
ICAgICAgcmV0LnJocyA9IHsKLSAgICAgICAgICAgIHR5cGU6ICJpZGVudGlmaWVyLWxpc3QiLAot
ICAgICAgICAgICAgdmFsdWU6IGlkZW50aWZpZXJzKCkKLSAgICAgICAgICB9OwotICAgICAgICB9
Ci0gICAgICAgIGVsc2UgewotICAgICAgICAgIC8vIFtOYW1lZENvbnN0cnVjdG9yPUF1ZGlvKERP
TVN0cmluZyBzcmMpXSBvciBbQ29uc3RydWN0b3IoRE9NU3RyaW5nIHN0cildCi0gICAgICAgICAg
cmV0LmFyZ3VtZW50cyA9IGFyZ3VtZW50X2xpc3QoKTsKLSAgICAgICAgfQotICAgICAgICBjb25z
dW1lKCIpIikgfHwgZXJyb3IoIlVuZXhwZWN0ZWQgdG9rZW4gaW4gZXh0ZW5kZWQgYXR0cmlidXRl
IGFyZ3VtZW50IGxpc3QiKTsKLSAgICAgIH0KLSAgICAgIGlmIChlcSAmJiAhcmV0LnJocykgZXJy
b3IoIk5vIHJpZ2h0IGhhbmQgc2lkZSB0byBleHRlbmRlZCBhdHRyaWJ1dGUgYXNzaWdubWVudCIp
OwotICAgICAgcmV0dXJuIHJldDsKLSAgICB9Ci0KLSAgICAvLyBOb3RlOiB3ZSBwYXJzZSBzb21l
dGhpbmcgc2ltcGxlciB0aGFuIHRoZSBvZmZpY2lhbCBzeW50YXguIEl0J3MgYWxsIHRoYXQgZXZl
cgotICAgIC8vIHNlZW1zIHRvIGJlIHVzZWQKLSAgICBmdW5jdGlvbiBleHRlbmRlZF9hdHRycygp
IHsKLSAgICAgIGNvbnN0IGVhcyA9IFtdOwotICAgICAgaWYgKCFjb25zdW1lKCJbIikpIHJldHVy
biBlYXM7Ci0gICAgICBlYXNbMF0gPSBzaW1wbGVfZXh0ZW5kZWRfYXR0cigpIHx8IGVycm9yKCJF
eHRlbmRlZCBhdHRyaWJ1dGUgd2l0aCBub3QgY29udGVudCIpOwotICAgICAgd2hpbGUgKGNvbnN1
bWUoIiwiKSkgewotICAgICAgICBlYXMucHVzaChzaW1wbGVfZXh0ZW5kZWRfYXR0cigpIHx8IGVy
cm9yKCJUcmFpbGluZyBjb21tYSBpbiBleHRlbmRlZCBhdHRyaWJ1dGUiKSk7Ci0gICAgICB9Ci0g
ICAgICBjb25zdW1lKCJdIikgfHwgZXJyb3IoIk5vIGVuZCBvZiBleHRlbmRlZCBhdHRyaWJ1dGUi
KTsKLSAgICAgIHJldHVybiBlYXM7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gZGVmYXVsdF8oKSB7
Ci0gICAgICBpZiAoY29uc3VtZSgiPSIpKSB7Ci0gICAgICAgIGNvbnN0IGRlZiA9IGNvbnN0X3Zh
bHVlKCk7Ci0gICAgICAgIGlmIChkZWYpIHsKLSAgICAgICAgICByZXR1cm4gZGVmOwotICAgICAg
ICB9IGVsc2UgaWYgKGNvbnN1bWUoIlsiKSkgewotICAgICAgICAgIGlmICghY29uc3VtZSgiXSIp
KSBlcnJvcigiRGVmYXVsdCBzZXF1ZW5jZSB2YWx1ZSBtdXN0IGJlIGVtcHR5Iik7Ci0gICAgICAg
ICAgcmV0dXJuIHsgdHlwZTogInNlcXVlbmNlIiwgdmFsdWU6IFtdIH07Ci0gICAgICAgIH0gZWxz
ZSB7Ci0gICAgICAgICAgY29uc3Qgc3RyID0gY29uc3VtZShTVFIpIHx8IGVycm9yKCJObyB2YWx1
ZSBmb3IgZGVmYXVsdCIpOwotICAgICAgICAgIHN0ci52YWx1ZSA9IHN0ci52YWx1ZS5zbGljZSgx
LCAtMSk7Ci0gICAgICAgICAgLy8gTm8gdHJpdmlhIGV4cG9zdXJlIHlldAotICAgICAgICAgIHN0
ci50cml2aWEgPSB1bmRlZmluZWQ7Ci0gICAgICAgICAgcmV0dXJuIHN0cjsKLSAgICAgICAgfQot
ICAgICAgfQorICAvKioKKyAgICogQHBhcmFtIHtudW1iZXJ9IHBvc2l0aW9uCisgICAqLworICB1
bmNvbnN1bWUocG9zaXRpb24pIHsKKyAgICB0aGlzLnBvc2l0aW9uID0gcG9zaXRpb247CisgIH0K
K30KKworY2xhc3MgV2ViSURMUGFyc2VFcnJvciBleHRlbmRzIEVycm9yIHsKKyAgY29uc3RydWN0
b3IoeyBtZXNzYWdlLCBiYXJlTWVzc2FnZSwgY29udGV4dCwgbGluZSwgc291cmNlTmFtZSwgaW5w
dXQsIHRva2VucyB9KSB7CisgICAgc3VwZXIobWVzc2FnZSk7CisKKyAgICB0aGlzLm5hbWUgPSAi
V2ViSURMUGFyc2VFcnJvciI7IC8vIG5vdCB0byBiZSBtYW5nbGVkCisgICAgdGhpcy5iYXJlTWVz
c2FnZSA9IGJhcmVNZXNzYWdlOworICAgIHRoaXMuY29udGV4dCA9IGNvbnRleHQ7CisgICAgdGhp
cy5saW5lID0gbGluZTsKKyAgICB0aGlzLnNvdXJjZU5hbWUgPSBzb3VyY2VOYW1lOworICAgIHRo
aXMuaW5wdXQgPSBpbnB1dDsKKyAgICB0aGlzLnRva2VucyA9IHRva2VuczsKKyAgfQorfQorCisK
Ky8qKiovIH0pLAorLyogMyAqLworLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgX193ZWJwYWNrX2V4
cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgeworCisidXNlIHN0cmljdCI7CitfX3dlYnBh
Y2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7CisvKiBoYXJtb255IGV4cG9ydCAo
YmluZGluZykgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sICJz
eW50YXhFcnJvciIsIGZ1bmN0aW9uKCkgeyByZXR1cm4gc3ludGF4RXJyb3I7IH0pOworLyogaGFy
bW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tf
ZXhwb3J0c19fLCAidmFsaWRhdGlvbkVycm9yIiwgZnVuY3Rpb24oKSB7IHJldHVybiB2YWxpZGF0
aW9uRXJyb3I7IH0pOworLyoqCisgKiBAcGFyYW0ge3N0cmluZ30gdGV4dAorICovCitmdW5jdGlv
biBsYXN0TGluZSh0ZXh0KSB7CisgIGNvbnN0IHNwbGl0dGVkID0gdGV4dC5zcGxpdCgiXG4iKTsK
KyAgcmV0dXJuIHNwbGl0dGVkW3NwbGl0dGVkLmxlbmd0aCAtIDFdOworfQorCisvKioKKyAqIEB0
eXBlZGVmIHtvYmplY3R9IFdlYklETDJFcnJvck9wdGlvbnMKKyAqIEBwcm9wZXJ0eSB7ImVycm9y
IiB8ICJ3YXJuaW5nIn0gbGV2ZWwKKyAqIEBwcm9wZXJ0eSB7RnVuY3Rpb259IGF1dG9maXgKKyAq
CisgKiBAcGFyYW0ge3N0cmluZ30gbWVzc2FnZSBlcnJvciBtZXNzYWdlCisgKiBAcGFyYW0geyJT
eW50YXgiIHwgIlZhbGlkYXRpb24ifSBraW5kIGVycm9yIHR5cGUKKyAqIEBwYXJhbSB7V2ViSURM
MkVycm9yT3B0aW9uc30gW29wdGlvbnNdCisgKi8KK2Z1bmN0aW9uIGVycm9yKHNvdXJjZSwgcG9z
aXRpb24sIGN1cnJlbnQsIG1lc3NhZ2UsIGtpbmQsIHsgbGV2ZWwgPSAiZXJyb3IiLCBhdXRvZml4
IH0gPSB7fSkgeworICAvKioKKyAgICogQHBhcmFtIHtudW1iZXJ9IGNvdW50CisgICAqLworICBm
dW5jdGlvbiBzbGljZVRva2Vucyhjb3VudCkgeworICAgIHJldHVybiBjb3VudCA+IDAgPworICAg
ICAgc291cmNlLnNsaWNlKHBvc2l0aW9uLCBwb3NpdGlvbiArIGNvdW50KSA6CisgICAgICBzb3Vy
Y2Uuc2xpY2UoTWF0aC5tYXgocG9zaXRpb24gKyBjb3VudCwgMCksIHBvc2l0aW9uKTsKKyAgfQor
CisgIGZ1bmN0aW9uIHRva2Vuc1RvVGV4dChpbnB1dHMsIHsgcHJlY2VkZXMgfSA9IHt9KSB7Cisg
ICAgY29uc3QgdGV4dCA9IGlucHV0cy5tYXAodCA9PiB0LnRyaXZpYSArIHQudmFsdWUpLmpvaW4o
IiIpOworICAgIGNvbnN0IG5leHRUb2tlbiA9IHNvdXJjZVtwb3NpdGlvbl07CisgICAgaWYgKG5l
eHRUb2tlbi50eXBlID09PSAiZW9mIikgeworICAgICAgcmV0dXJuIHRleHQ7CiAgICAgfQorICAg
IGlmIChwcmVjZWRlcykgeworICAgICAgcmV0dXJuIHRleHQgKyBuZXh0VG9rZW4udHJpdmlhOwor
ICAgIH0KKyAgICByZXR1cm4gdGV4dC5zbGljZShuZXh0VG9rZW4udHJpdmlhLmxlbmd0aCk7Cisg
IH0KIAotICAgIGZ1bmN0aW9uIGNvbnN0XygpIHsKLSAgICAgIGlmICghY29uc3VtZSgiY29uc3Qi
KSkgcmV0dXJuOwotICAgICAgY29uc3QgcmV0ID0geyB0eXBlOiAiY29uc3QiLCBudWxsYWJsZTog
ZmFsc2UgfTsKLSAgICAgIGxldCB0eXAgPSBwcmltaXRpdmVfdHlwZSgpOwotICAgICAgaWYgKCF0
eXApIHsKLSAgICAgICAgdHlwID0gY29uc3VtZShJRCkgfHwgZXJyb3IoIk5vIHR5cGUgZm9yIGNv
bnN0Iik7Ci0gICAgICAgIHR5cCA9IHR5cC52YWx1ZTsKLSAgICAgIH0KLSAgICAgIHJldC5pZGxU
eXBlID0gT2JqZWN0LmFzc2lnbih7IHR5cGU6ICJjb25zdC10eXBlIiB9LCBFTVBUWV9JRExUWVBF
LCB7IGlkbFR5cGU6IHR5cCB9KTsKLSAgICAgIHR5cGVfc3VmZml4KHJldCk7Ci0gICAgICBjb25z
dCBuYW1lID0gY29uc3VtZShJRCkgfHwgZXJyb3IoIk5vIG5hbWUgZm9yIGNvbnN0Iik7Ci0gICAg
ICByZXQubmFtZSA9IG5hbWUudmFsdWU7Ci0gICAgICBjb25zdW1lKCI9IikgfHwgZXJyb3IoIk5v
IHZhbHVlIGFzc2lnbm1lbnQgZm9yIGNvbnN0Iik7Ci0gICAgICBjb25zdCBjbnQgPSBjb25zdF92
YWx1ZSgpOwotICAgICAgaWYgKGNudCkgcmV0LnZhbHVlID0gY250OwotICAgICAgZWxzZSBlcnJv
cigiTm8gdmFsdWUgZm9yIGNvbnN0Iik7Ci0gICAgICBjb25zdW1lKCI7IikgfHwgZXJyb3IoIlVu
dGVybWluYXRlZCBjb25zdCIpOwotICAgICAgcmV0dXJuIHJldDsKLSAgICB9Ci0KLSAgICBmdW5j
dGlvbiBpbmhlcml0YW5jZSgpIHsKLSAgICAgIGlmIChjb25zdW1lKCI6IikpIHsKLSAgICAgICAg
Y29uc3QgaW5oID0gY29uc3VtZShJRCkgfHwgZXJyb3IoIk5vIHR5cGUgaW4gaW5oZXJpdGFuY2Ui
KTsKLSAgICAgICAgcmV0dXJuIGluaC52YWx1ZTsKKyAgY29uc3QgbWF4VG9rZW5zID0gNTsgLy8g
YXJiaXRyYXJ5IGJ1dCB3b3JrcyB3ZWxsIGVub3VnaAorICBjb25zdCBsaW5lID0KKyAgICBzb3Vy
Y2VbcG9zaXRpb25dLnR5cGUgIT09ICJlb2YiID8gc291cmNlW3Bvc2l0aW9uXS5saW5lIDoKKyAg
ICBzb3VyY2UubGVuZ3RoID4gMSA/IHNvdXJjZVtwb3NpdGlvbiAtIDFdLmxpbmUgOgorICAgIDE7
CisKKyAgY29uc3QgcHJlY2VkaW5nTGFzdExpbmUgPSBsYXN0TGluZSgKKyAgICB0b2tlbnNUb1Rl
eHQoc2xpY2VUb2tlbnMoLW1heFRva2VucyksIHsgcHJlY2VkZXM6IHRydWUgfSkKKyAgKTsKKwor
ICBjb25zdCBzdWJzZXF1ZW50VG9rZW5zID0gc2xpY2VUb2tlbnMobWF4VG9rZW5zKTsKKyAgY29u
c3Qgc3Vic2VxdWVudFRleHQgPSB0b2tlbnNUb1RleHQoc3Vic2VxdWVudFRva2Vucyk7CisgIGNv
bnN0IHN1YnNlcXVlbnRGaXJzdExpbmUgPSBzdWJzZXF1ZW50VGV4dC5zcGxpdCgiXG4iKVswXTsK
KworICBjb25zdCBzcGFjZWQgPSAiICIucmVwZWF0KHByZWNlZGluZ0xhc3RMaW5lLmxlbmd0aCkg
KyAiXiI7CisgIGNvbnN0IHNvdXJjZUNvbnRleHQgPSBwcmVjZWRpbmdMYXN0TGluZSArIHN1YnNl
cXVlbnRGaXJzdExpbmUgKyAiXG4iICsgc3BhY2VkOworCisgIGNvbnN0IGNvbnRleHRUeXBlID0g
a2luZCA9PT0gIlN5bnRheCIgPyAic2luY2UiIDogImluc2lkZSI7CisgIGNvbnN0IGluU291cmNl
TmFtZSA9IHNvdXJjZS5uYW1lID8gYCBpbiAke3NvdXJjZS5uYW1lfWAgOiAiIjsKKyAgY29uc3Qg
Z3JhbW1hdGljYWxDb250ZXh0ID0gKGN1cnJlbnQgJiYgY3VycmVudC5uYW1lKSA/IGAsICR7Y29u
dGV4dFR5cGV9IFxgJHtjdXJyZW50LnBhcnRpYWwgPyAicGFydGlhbCAiIDogIiJ9JHtjdXJyZW50
LnR5cGV9ICR7Y3VycmVudC5uYW1lfVxgYCA6ICIiOworICBjb25zdCBjb250ZXh0ID0gYCR7a2lu
ZH0gZXJyb3IgYXQgbGluZSAke2xpbmV9JHtpblNvdXJjZU5hbWV9JHtncmFtbWF0aWNhbENvbnRl
eHR9OlxuJHtzb3VyY2VDb250ZXh0fWA7CisgIHJldHVybiB7CisgICAgbWVzc2FnZTogYCR7Y29u
dGV4dH0gJHttZXNzYWdlfWAsCisgICAgYmFyZU1lc3NhZ2U6IG1lc3NhZ2UsCisgICAgY29udGV4
dCwKKyAgICBsaW5lLAorICAgIHNvdXJjZU5hbWU6IHNvdXJjZS5uYW1lLAorICAgIGxldmVsLAor
ICAgIGF1dG9maXgsCisgICAgaW5wdXQ6IHN1YnNlcXVlbnRUZXh0LAorICAgIHRva2Vuczogc3Vi
c2VxdWVudFRva2VucworICB9OworfQorCisvKioKKyAqIEBwYXJhbSB7c3RyaW5nfSBtZXNzYWdl
IGVycm9yIG1lc3NhZ2UKKyAqLworZnVuY3Rpb24gc3ludGF4RXJyb3Ioc291cmNlLCBwb3NpdGlv
biwgY3VycmVudCwgbWVzc2FnZSkgeworICByZXR1cm4gZXJyb3Ioc291cmNlLCBwb3NpdGlvbiwg
Y3VycmVudCwgbWVzc2FnZSwgIlN5bnRheCIpOworfQorCisvKioKKyAqIEBwYXJhbSB7c3RyaW5n
fSBtZXNzYWdlIGVycm9yIG1lc3NhZ2UKKyAqIEBwYXJhbSB7V2ViSURMMkVycm9yT3B0aW9uc30g
W29wdGlvbnNdCisgKi8KK2Z1bmN0aW9uIHZhbGlkYXRpb25FcnJvcihzb3VyY2UsIHRva2VuLCBj
dXJyZW50LCBtZXNzYWdlLCBvcHRpb25zKSB7CisgIHJldHVybiBlcnJvcihzb3VyY2UsIHRva2Vu
LmluZGV4LCBjdXJyZW50LCBtZXNzYWdlLCAiVmFsaWRhdGlvbiIsIG9wdGlvbnMpOworfQorCisK
Ky8qKiovIH0pLAorLyogNCAqLworLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgX193ZWJwYWNrX2V4
cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgeworCisidXNlIHN0cmljdCI7CitfX3dlYnBh
Y2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7CisvKiBoYXJtb255IGV4cG9ydCAo
YmluZGluZykgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sICJ1
bmVzY2FwZSIsIGZ1bmN0aW9uKCkgeyByZXR1cm4gdW5lc2NhcGU7IH0pOworLyogaGFybW9ueSBl
eHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0
c19fLCAibGlzdCIsIGZ1bmN0aW9uKCkgeyByZXR1cm4gbGlzdDsgfSk7CisvKiBoYXJtb255IGV4
cG9ydCAoYmluZGluZykgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRz
X18sICJjb25zdF92YWx1ZSIsIGZ1bmN0aW9uKCkgeyByZXR1cm4gY29uc3RfdmFsdWU7IH0pOwor
LyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dl
YnBhY2tfZXhwb3J0c19fLCAiY29uc3RfZGF0YSIsIGZ1bmN0aW9uKCkgeyByZXR1cm4gY29uc3Rf
ZGF0YTsgfSk7CisvKiBoYXJtb255IGV4cG9ydCAoYmluZGluZykgKi8gX193ZWJwYWNrX3JlcXVp
cmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sICJwcmltaXRpdmVfdHlwZSIsIGZ1bmN0aW9uKCkg
eyByZXR1cm4gcHJpbWl0aXZlX3R5cGU7IH0pOworLyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcp
ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAiaWRlbnRpZmll
cnMiLCBmdW5jdGlvbigpIHsgcmV0dXJuIGlkZW50aWZpZXJzOyB9KTsKKy8qIGhhcm1vbnkgZXhw
b3J0IChiaW5kaW5nKSAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNf
XywgImFyZ3VtZW50X2xpc3QiLCBmdW5jdGlvbigpIHsgcmV0dXJuIGFyZ3VtZW50X2xpc3Q7IH0p
OworLyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFja19yZXF1aXJlX18uZChf
X3dlYnBhY2tfZXhwb3J0c19fLCAidHlwZV93aXRoX2V4dGVuZGVkX2F0dHJpYnV0ZXMiLCBmdW5j
dGlvbigpIHsgcmV0dXJuIHR5cGVfd2l0aF9leHRlbmRlZF9hdHRyaWJ1dGVzOyB9KTsKKy8qIGhh
cm1vbnkgZXhwb3J0IChiaW5kaW5nKSAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNr
X2V4cG9ydHNfXywgInJldHVybl90eXBlIiwgZnVuY3Rpb24oKSB7IHJldHVybiByZXR1cm5fdHlw
ZTsgfSk7CisvKiBoYXJtb255IGV4cG9ydCAoYmluZGluZykgKi8gX193ZWJwYWNrX3JlcXVpcmVf
Xy5kKF9fd2VicGFja19leHBvcnRzX18sICJzdHJpbmdpZmllciIsIGZ1bmN0aW9uKCkgeyByZXR1
cm4gc3RyaW5naWZpZXI7IH0pOworLyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2Vi
cGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAiYXV0b2ZpeEFkZEV4cG9zZWRX
aW5kb3ciLCBmdW5jdGlvbigpIHsgcmV0dXJuIGF1dG9maXhBZGRFeHBvc2VkV2luZG93OyB9KTsK
Ky8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfdHlwZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RV
TEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg1KTsKKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZh
ciBfYXJndW1lbnRfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19y
ZXF1aXJlX18oOCk7CisvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3Rva2VuX2pzX19XRUJQQUNL
X0lNUE9SVEVEX01PRFVMRV8yX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDEyKTsKKy8qIGhhcm1v
bnkgaW1wb3J0ICovIHZhciBfZXh0ZW5kZWRfYXR0cmlidXRlc19qc19fV0VCUEFDS19JTVBPUlRF
RF9NT0RVTEVfM19fID0gX193ZWJwYWNrX3JlcXVpcmVfXygxMCk7CisvKiBoYXJtb255IGltcG9y
dCAqLyB2YXIgX29wZXJhdGlvbl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fID0gX193
ZWJwYWNrX3JlcXVpcmVfXygxMyk7CisvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2F0dHJpYnV0
ZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygx
NCk7CisvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3Rva2VuaXNlcl9qc19fV0VCUEFDS19JTVBP
UlRFRF9NT0RVTEVfNl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygyKTsKKworCisKKworCisKKwor
CisvKioKKyAqIEBwYXJhbSB7c3RyaW5nfSBpZGVudGlmaWVyCisgKi8KK2Z1bmN0aW9uIHVuZXNj
YXBlKGlkZW50aWZpZXIpIHsKKyAgcmV0dXJuIGlkZW50aWZpZXIuc3RhcnRzV2l0aCgnXycpID8g
aWRlbnRpZmllci5zbGljZSgxKSA6IGlkZW50aWZpZXI7Cit9CisKKy8qKgorICogUGFyc2VzIGNv
bW1hLXNlcGFyYXRlZCBsaXN0CisgKiBAcGFyYW0ge2ltcG9ydCgiLi4vdG9rZW5pc2VyIikuVG9r
ZW5pc2VyfSB0b2tlbmlzZXIKKyAqIEBwYXJhbSB7b2JqZWN0fSBhcmdzCisgKiBAcGFyYW0ge0Z1
bmN0aW9ufSBhcmdzLnBhcnNlciBwYXJzZXIgZnVuY3Rpb24gZm9yIGVhY2ggaXRlbQorICogQHBh
cmFtIHtib29sZWFufSBbYXJncy5hbGxvd0RhbmdsZXJdIHdoZXRoZXIgdG8gYWxsb3cgZGFuZ2xp
bmcgY29tbWEKKyAqIEBwYXJhbSB7c3RyaW5nfSBbYXJncy5saXN0TmFtZV0gdGhlIG5hbWUgdG8g
YmUgc2hvd24gb24gZXJyb3IgbWVzc2FnZXMKKyAqLworZnVuY3Rpb24gbGlzdCh0b2tlbmlzZXIs
IHsgcGFyc2VyLCBhbGxvd0RhbmdsZXIsIGxpc3ROYW1lID0gImxpc3QiIH0pIHsKKyAgY29uc3Qg
Zmlyc3QgPSBwYXJzZXIodG9rZW5pc2VyKTsKKyAgaWYgKCFmaXJzdCkgeworICAgIHJldHVybiBb
XTsKKyAgfQorICBmaXJzdC50b2tlbnMuc2VwYXJhdG9yID0gdG9rZW5pc2VyLmNvbnN1bWUoIiwi
KTsKKyAgY29uc3QgaXRlbXMgPSBbZmlyc3RdOworICB3aGlsZSAoZmlyc3QudG9rZW5zLnNlcGFy
YXRvcikgeworICAgIGNvbnN0IGl0ZW0gPSBwYXJzZXIodG9rZW5pc2VyKTsKKyAgICBpZiAoIWl0
ZW0pIHsKKyAgICAgIGlmICghYWxsb3dEYW5nbGVyKSB7CisgICAgICAgIHRva2VuaXNlci5lcnJv
cihgVHJhaWxpbmcgY29tbWEgaW4gJHtsaXN0TmFtZX1gKTsKICAgICAgIH0KKyAgICAgIGJyZWFr
OworICAgIH0KKyAgICBpdGVtLnRva2Vucy5zZXBhcmF0b3IgPSB0b2tlbmlzZXIuY29uc3VtZSgi
LCIpOworICAgIGl0ZW1zLnB1c2goaXRlbSk7CisgICAgaWYgKCFpdGVtLnRva2Vucy5zZXBhcmF0
b3IpIGJyZWFrOworICB9CisgIHJldHVybiBpdGVtczsKK30KKworLyoqCisgKiBAcGFyYW0ge2lt
cG9ydCgiLi4vdG9rZW5pc2VyIikuVG9rZW5pc2VyfSB0b2tlbmlzZXIKKyAqLworZnVuY3Rpb24g
Y29uc3RfdmFsdWUodG9rZW5pc2VyKSB7CisgIHJldHVybiB0b2tlbmlzZXIuY29uc3VtZSgidHJ1
ZSIsICJmYWxzZSIsICJJbmZpbml0eSIsICItSW5maW5pdHkiLCAiTmFOIiwgImRlY2ltYWwiLCAi
aW50ZWdlciIpOworfQorCisvKioKKyAqIEBwYXJhbSB7b2JqZWN0fSB0b2tlbgorICogQHBhcmFt
IHtzdHJpbmd9IHRva2VuLnR5cGUKKyAqIEBwYXJhbSB7c3RyaW5nfSB0b2tlbi52YWx1ZQorICov
CitmdW5jdGlvbiBjb25zdF9kYXRhKHsgdHlwZSwgdmFsdWUgfSkgeworICBzd2l0Y2ggKHR5cGUp
IHsKKyAgICBjYXNlICJ0cnVlIjoKKyAgICBjYXNlICJmYWxzZSI6CisgICAgICByZXR1cm4geyB0
eXBlOiAiYm9vbGVhbiIsIHZhbHVlOiB0eXBlID09PSAidHJ1ZSIgfTsKKyAgICBjYXNlICJJbmZp
bml0eSI6CisgICAgY2FzZSAiLUluZmluaXR5IjoKKyAgICAgIHJldHVybiB7IHR5cGU6ICJJbmZp
bml0eSIsIG5lZ2F0aXZlOiB0eXBlLnN0YXJ0c1dpdGgoIi0iKSB9OworICAgIGNhc2UgIlsiOgor
ICAgICAgcmV0dXJuIHsgdHlwZTogInNlcXVlbmNlIiwgdmFsdWU6IFtdIH07CisgICAgY2FzZSAi
eyI6CisgICAgICByZXR1cm4geyB0eXBlOiAiZGljdGlvbmFyeSIgfTsKKyAgICBjYXNlICJkZWNp
bWFsIjoKKyAgICBjYXNlICJpbnRlZ2VyIjoKKyAgICAgIHJldHVybiB7IHR5cGU6ICJudW1iZXIi
LCB2YWx1ZSB9OworICAgIGNhc2UgInN0cmluZyI6CisgICAgICByZXR1cm4geyB0eXBlOiAic3Ry
aW5nIiwgdmFsdWU6IHZhbHVlLnNsaWNlKDEsIC0xKSB9OworICAgIGRlZmF1bHQ6CisgICAgICBy
ZXR1cm4geyB0eXBlIH07CisgIH0KK30KKworLyoqCisgKiBAcGFyYW0ge2ltcG9ydCgiLi4vdG9r
ZW5pc2VyIikuVG9rZW5pc2VyfSB0b2tlbmlzZXIKKyAqLworZnVuY3Rpb24gcHJpbWl0aXZlX3R5
cGUodG9rZW5pc2VyKSB7CisgIGZ1bmN0aW9uIGludGVnZXJfdHlwZSgpIHsKKyAgICBjb25zdCBw
cmVmaXggPSB0b2tlbmlzZXIuY29uc3VtZSgidW5zaWduZWQiKTsKKyAgICBjb25zdCBiYXNlID0g
dG9rZW5pc2VyLmNvbnN1bWUoInNob3J0IiwgImxvbmciKTsKKyAgICBpZiAoYmFzZSkgeworICAg
ICAgY29uc3QgcG9zdGZpeCA9IHRva2VuaXNlci5jb25zdW1lKCJsb25nIik7CisgICAgICByZXR1
cm4gbmV3IF90eXBlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIlR5cGUiXSh7IHNv
dXJjZSwgdG9rZW5zOiB7IHByZWZpeCwgYmFzZSwgcG9zdGZpeCB9IH0pOwogICAgIH0KKyAgICBp
ZiAocHJlZml4KSB0b2tlbmlzZXIuZXJyb3IoIkZhaWxlZCB0byBwYXJzZSBpbnRlZ2VyIHR5cGUi
KTsKKyAgfQogCi0gICAgZnVuY3Rpb24gb3BlcmF0aW9uX3Jlc3QocmV0KSB7Ci0gICAgICBpZiAo
IXJldCkgcmV0ID0ge307Ci0gICAgICBjb25zdCBuYW1lID0gY29uc3VtZShJRCk7Ci0gICAgICBy
ZXQubmFtZSA9IG5hbWUgPyB1bmVzY2FwZShuYW1lLnZhbHVlKSA6IG51bGw7Ci0gICAgICByZXQu
ZXNjYXBlZE5hbWUgPSBuYW1lID8gbmFtZS52YWx1ZSA6IG51bGw7Ci0gICAgICBjb25zdW1lKCIo
IikgfHwgZXJyb3IoIkludmFsaWQgb3BlcmF0aW9uIik7Ci0gICAgICByZXQuYXJndW1lbnRzID0g
YXJndW1lbnRfbGlzdCgpOwotICAgICAgY29uc3VtZSgiKSIpIHx8IGVycm9yKCJVbnRlcm1pbmF0
ZWQgb3BlcmF0aW9uIik7Ci0gICAgICBjb25zdW1lKCI7IikgfHwgZXJyb3IoIlVudGVybWluYXRl
ZCBvcGVyYXRpb24iKTsKLSAgICAgIHJldHVybiByZXQ7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24g
Y2FsbGJhY2soKSB7Ci0gICAgICBsZXQgcmV0OwotICAgICAgaWYgKCFjb25zdW1lKCJjYWxsYmFj
ayIpKSByZXR1cm47Ci0gICAgICBjb25zdCB0b2sgPSBjb25zdW1lKCJpbnRlcmZhY2UiKTsKLSAg
ICAgIGlmICh0b2spIHsKLSAgICAgICAgcmV0ID0gaW50ZXJmYWNlX3Jlc3QoZmFsc2UsICJjYWxs
YmFjayBpbnRlcmZhY2UiKTsKLSAgICAgICAgcmV0dXJuIHJldDsKLSAgICAgIH0KLSAgICAgIGNv
bnN0IG5hbWUgPSBjb25zdW1lKElEKSB8fCBlcnJvcigiTm8gbmFtZSBmb3IgY2FsbGJhY2siKTsK
LSAgICAgIHJldCA9IGN1cnJlbnQgPSB7IHR5cGU6ICJjYWxsYmFjayIsIG5hbWU6IHNhbml0aXpl
X25hbWUobmFtZS52YWx1ZSwgImNhbGxiYWNrIikgfTsKLSAgICAgIGNvbnN1bWUoIj0iKSB8fCBl
cnJvcigiTm8gYXNzaWdubWVudCBpbiBjYWxsYmFjayIpOwotICAgICAgcmV0LmlkbFR5cGUgPSBy
ZXR1cm5fdHlwZSgpIHx8IGVycm9yKCJNaXNzaW5nIHJldHVybiB0eXBlIik7Ci0gICAgICBjb25z
dW1lKCIoIikgfHwgZXJyb3IoIk5vIGFyZ3VtZW50cyBpbiBjYWxsYmFjayIpOwotICAgICAgcmV0
LmFyZ3VtZW50cyA9IGFyZ3VtZW50X2xpc3QoKTsKLSAgICAgIGNvbnN1bWUoIikiKSB8fCBlcnJv
cigiVW50ZXJtaW5hdGVkIGNhbGxiYWNrIik7Ci0gICAgICBjb25zdW1lKCI7IikgfHwgZXJyb3Io
IlVudGVybWluYXRlZCBjYWxsYmFjayIpOwotICAgICAgcmV0dXJuIHJldDsKLSAgICB9Ci0KLSAg
ICBmdW5jdGlvbiBhdHRyaWJ1dGUoeyBub0luaGVyaXQgPSBmYWxzZSwgcmVhZG9ubHkgPSBmYWxz
ZSB9ID0ge30pIHsKLSAgICAgIGNvbnN0IHN0YXJ0X3Bvc2l0aW9uID0gY29uc3VtZV9wb3NpdGlv
bjsKLSAgICAgIGNvbnN0IHJldCA9IHsKLSAgICAgICAgdHlwZTogImF0dHJpYnV0ZSIsCi0gICAg
ICAgIHN0YXRpYzogZmFsc2UsCi0gICAgICAgIHN0cmluZ2lmaWVyOiBmYWxzZSwKLSAgICAgICAg
aW5oZXJpdDogZmFsc2UsCi0gICAgICAgIHJlYWRvbmx5OiBmYWxzZQotICAgICAgfTsKLSAgICAg
IGlmICghbm9Jbmhlcml0ICYmIGNvbnN1bWUoImluaGVyaXQiKSkgewotICAgICAgICByZXQuaW5o
ZXJpdCA9IHRydWU7Ci0gICAgICB9Ci0gICAgICBpZiAoY29uc3VtZSgicmVhZG9ubHkiKSkgewot
ICAgICAgICByZXQucmVhZG9ubHkgPSB0cnVlOwotICAgICAgfSBlbHNlIGlmIChyZWFkb25seSAm
JiBwcm9iZSgiYXR0cmlidXRlIikpIHsKLSAgICAgICAgZXJyb3IoIkF0dHJpYnV0ZXMgbXVzdCBi
ZSByZWFkb25seSBpbiB0aGlzIGNvbnRleHQiKTsKLSAgICAgIH0KLSAgICAgIGNvbnN0IHJlc3Qg
PSBhdHRyaWJ1dGVfcmVzdChyZXQpOwotICAgICAgaWYgKCFyZXN0KSB7Ci0gICAgICAgIHVuY29u
c3VtZShzdGFydF9wb3NpdGlvbik7Ci0gICAgICB9Ci0gICAgICByZXR1cm4gcmVzdDsKKyAgZnVu
Y3Rpb24gZGVjaW1hbF90eXBlKCkgeworICAgIGNvbnN0IHByZWZpeCA9IHRva2VuaXNlci5jb25z
dW1lKCJ1bnJlc3RyaWN0ZWQiKTsKKyAgICBjb25zdCBiYXNlID0gdG9rZW5pc2VyLmNvbnN1bWUo
ImZsb2F0IiwgImRvdWJsZSIpOworICAgIGlmIChiYXNlKSB7CisgICAgICByZXR1cm4gbmV3IF90
eXBlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIlR5cGUiXSh7IHNvdXJjZSwgdG9r
ZW5zOiB7IHByZWZpeCwgYmFzZSB9IH0pOwogICAgIH0KKyAgICBpZiAocHJlZml4KSB0b2tlbmlz
ZXIuZXJyb3IoIkZhaWxlZCB0byBwYXJzZSBmbG9hdCB0eXBlIik7CisgIH0KIAotICAgIGZ1bmN0
aW9uIGF0dHJpYnV0ZV9yZXN0KHJldCkgewotICAgICAgaWYgKCFjb25zdW1lKCJhdHRyaWJ1dGUi
KSkgewotICAgICAgICByZXR1cm47Ci0gICAgICB9Ci0gICAgICByZXQuaWRsVHlwZSA9IHR5cGVf
d2l0aF9leHRlbmRlZF9hdHRyaWJ1dGVzKCJhdHRyaWJ1dGUtdHlwZSIpIHx8IGVycm9yKCJObyB0
eXBlIGluIGF0dHJpYnV0ZSIpOwotICAgICAgaWYgKHJldC5pZGxUeXBlLmdlbmVyaWMgPT09ICJz
ZXF1ZW5jZSIpIGVycm9yKCJBdHRyaWJ1dGVzIGNhbm5vdCBhY2NlcHQgc2VxdWVuY2UgdHlwZXMi
KTsKLSAgICAgIGlmIChyZXQuaWRsVHlwZS5nZW5lcmljID09PSAicmVjb3JkIikgZXJyb3IoIkF0
dHJpYnV0ZXMgY2Fubm90IGFjY2VwdCByZWNvcmQgdHlwZXMiKTsKLSAgICAgIGNvbnN0IG5hbWUg
PSBjb25zdW1lKElELCAicmVxdWlyZWQiKSB8fCBlcnJvcigiTm8gbmFtZSBpbiBhdHRyaWJ1dGUi
KTsKLSAgICAgIHJldC5uYW1lID0gdW5lc2NhcGUobmFtZS52YWx1ZSk7Ci0gICAgICByZXQuZXNj
YXBlZE5hbWUgPSBuYW1lLnZhbHVlOwotICAgICAgY29uc3VtZSgiOyIpIHx8IGVycm9yKCJVbnRl
cm1pbmF0ZWQgYXR0cmlidXRlIik7Ci0gICAgICByZXR1cm4gcmV0OwotICAgIH0KLQotICAgIGZ1
bmN0aW9uIHJldHVybl90eXBlKHR5cGVOYW1lKSB7Ci0gICAgICBjb25zdCB0eXAgPSB0eXBlKHR5
cGVOYW1lIHx8ICJyZXR1cm4tdHlwZSIpOwotICAgICAgaWYgKHR5cCkgewotICAgICAgICByZXR1
cm4gdHlwOwotICAgICAgfQotICAgICAgaWYgKGNvbnN1bWUoInZvaWQiKSkgewotICAgICAgICBy
ZXR1cm4gT2JqZWN0LmFzc2lnbih7IHR5cGU6ICJyZXR1cm4tdHlwZSIgfSwgRU1QVFlfSURMVFlQ
RSwgeyBpZGxUeXBlOiAidm9pZCIgfSk7CisgIGNvbnN0IHsgc291cmNlIH0gPSB0b2tlbmlzZXI7
CisgIGNvbnN0IG51bV90eXBlID0gaW50ZWdlcl90eXBlKHRva2VuaXNlcikgfHwgZGVjaW1hbF90
eXBlKHRva2VuaXNlcik7CisgIGlmIChudW1fdHlwZSkgcmV0dXJuIG51bV90eXBlOworICBjb25z
dCBiYXNlID0gdG9rZW5pc2VyLmNvbnN1bWUoImJvb2xlYW4iLCAiYnl0ZSIsICJvY3RldCIpOwor
ICBpZiAoYmFzZSkgeworICAgIHJldHVybiBuZXcgX3R5cGVfanNfX1dFQlBBQ0tfSU1QT1JURURf
TU9EVUxFXzBfX1siVHlwZSJdKHsgc291cmNlLCB0b2tlbnM6IHsgYmFzZSB9IH0pOworICB9Cit9
CisKKy8qKgorICogQHBhcmFtIHtpbXBvcnQoIi4uL3Rva2VuaXNlciIpLlRva2VuaXNlcn0gdG9r
ZW5pc2VyCisgKi8KK2Z1bmN0aW9uIGlkZW50aWZpZXJzKHRva2VuaXNlcikgeworICBjb25zdCBp
ZHMgPSBsaXN0KHRva2VuaXNlciwgeyBwYXJzZXI6IF90b2tlbl9qc19fV0VCUEFDS19JTVBPUlRF
RF9NT0RVTEVfMl9fWyJUb2tlbiJdLnBhcnNlcih0b2tlbmlzZXIsICJpZGVudGlmaWVyIiksIGxp
c3ROYW1lOiAiaWRlbnRpZmllciBsaXN0IiB9KTsKKyAgaWYgKCFpZHMubGVuZ3RoKSB7CisgICAg
dG9rZW5pc2VyLmVycm9yKCJFeHBlY3RlZCBpZGVudGlmaWVycyBidXQgbm9uZSBmb3VuZCIpOwor
ICB9CisgIHJldHVybiBpZHM7Cit9CisKKy8qKgorICogQHBhcmFtIHtpbXBvcnQoIi4uL3Rva2Vu
aXNlciIpLlRva2VuaXNlcn0gdG9rZW5pc2VyCisgKi8KK2Z1bmN0aW9uIGFyZ3VtZW50X2xpc3Qo
dG9rZW5pc2VyKSB7CisgIHJldHVybiBsaXN0KHRva2VuaXNlciwgeyBwYXJzZXI6IF9hcmd1bWVu
dF9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fWyJBcmd1bWVudCJdLnBhcnNlLCBsaXN0
TmFtZTogImFyZ3VtZW50cyBsaXN0IiB9KTsKK30KKworLyoqCisgKiBAcGFyYW0ge2ltcG9ydCgi
Li4vdG9rZW5pc2VyIikuVG9rZW5pc2VyfSB0b2tlbmlzZXIKKyAqIEBwYXJhbSB7c3RyaW5nfSB0
eXBlTmFtZQorICovCitmdW5jdGlvbiB0eXBlX3dpdGhfZXh0ZW5kZWRfYXR0cmlidXRlcyh0b2tl
bmlzZXIsIHR5cGVOYW1lKSB7CisgIGNvbnN0IGV4dEF0dHJzID0gX2V4dGVuZGVkX2F0dHJpYnV0
ZXNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfX1siRXh0ZW5kZWRBdHRyaWJ1dGVzIl0u
cGFyc2UodG9rZW5pc2VyKTsKKyAgY29uc3QgcmV0ID0gX3R5cGVfanNfX1dFQlBBQ0tfSU1QT1JU
RURfTU9EVUxFXzBfX1siVHlwZSJdLnBhcnNlKHRva2VuaXNlciwgdHlwZU5hbWUpOworICBpZiAo
cmV0KSByZXQuZXh0QXR0cnMgPSBleHRBdHRyczsKKyAgcmV0dXJuIHJldDsKK30KKworLyoqCisg
KiBAcGFyYW0ge2ltcG9ydCgiLi4vdG9rZW5pc2VyIikuVG9rZW5pc2VyfSB0b2tlbmlzZXIKKyAq
IEBwYXJhbSB7c3RyaW5nfSB0eXBlTmFtZQorICovCitmdW5jdGlvbiByZXR1cm5fdHlwZSh0b2tl
bmlzZXIsIHR5cGVOYW1lKSB7CisgIGNvbnN0IHR5cCA9IF90eXBlX2pzX19XRUJQQUNLX0lNUE9S
VEVEX01PRFVMRV8wX19bIlR5cGUiXS5wYXJzZSh0b2tlbmlzZXIsIHR5cGVOYW1lIHx8ICJyZXR1
cm4tdHlwZSIpOworICBpZiAodHlwKSB7CisgICAgcmV0dXJuIHR5cDsKKyAgfQorICBjb25zdCB2
b2lkVG9rZW4gPSB0b2tlbmlzZXIuY29uc3VtZSgidm9pZCIpOworICBpZiAodm9pZFRva2VuKSB7
CisgICAgY29uc3QgcmV0ID0gbmV3IF90eXBlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8w
X19bIlR5cGUiXSh7IHNvdXJjZTogdG9rZW5pc2VyLnNvdXJjZSwgdG9rZW5zOiB7IGJhc2U6IHZv
aWRUb2tlbiB9IH0pOworICAgIHJldC50eXBlID0gInJldHVybi10eXBlIjsKKyAgICByZXR1cm4g
cmV0OworICB9Cit9CisKKy8qKgorICogQHBhcmFtIHtpbXBvcnQoIi4uL3Rva2VuaXNlciIpLlRv
a2VuaXNlcn0gdG9rZW5pc2VyCisgKi8KK2Z1bmN0aW9uIHN0cmluZ2lmaWVyKHRva2VuaXNlcikg
eworICBjb25zdCBzcGVjaWFsID0gdG9rZW5pc2VyLmNvbnN1bWUoInN0cmluZ2lmaWVyIik7Cisg
IGlmICghc3BlY2lhbCkgcmV0dXJuOworICBjb25zdCBtZW1iZXIgPSBfYXR0cmlidXRlX2pzX19X
RUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X19bIkF0dHJpYnV0ZSJdLnBhcnNlKHRva2VuaXNlciwg
eyBzcGVjaWFsIH0pIHx8CisgICAgX29wZXJhdGlvbl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RV
TEVfNF9fWyJPcGVyYXRpb24iXS5wYXJzZSh0b2tlbmlzZXIsIHsgc3BlY2lhbCB9KSB8fAorICAg
IHRva2VuaXNlci5lcnJvcigiVW50ZXJtaW5hdGVkIHN0cmluZ2lmaWVyIik7CisgIHJldHVybiBt
ZW1iZXI7Cit9CisKKy8qKgorICogQHBhcmFtIHtvYmplY3R9IGRlZgorICogQHBhcmFtIHtpbXBv
cnQoIi4vZXh0ZW5kZWQtYXR0cmlidXRlcy5qcyIpLkV4dGVuZGVkQXR0cmlidXRlc30gZGVmLmV4
dEF0dHJzCisgKi8KK2Z1bmN0aW9uIGF1dG9maXhBZGRFeHBvc2VkV2luZG93KGRlZikgeworICBy
ZXR1cm4gKCkgPT4geworICAgIGlmIChkZWYuZXh0QXR0cnMubGVuZ3RoKXsKKyAgICAgIGNvbnN0
IHRva2VuaXNlciA9IG5ldyBfdG9rZW5pc2VyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82
X19bIlRva2VuaXNlciJdKCJFeHBvc2VkPVdpbmRvdywiKTsKKyAgICAgIGNvbnN0IGV4cG9zZWQg
PSBfZXh0ZW5kZWRfYXR0cmlidXRlc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fWyJT
aW1wbGVFeHRlbmRlZEF0dHJpYnV0ZSJdLnBhcnNlKHRva2VuaXNlcik7CisgICAgICBleHBvc2Vk
LnRva2Vucy5zZXBhcmF0b3IgPSB0b2tlbmlzZXIuY29uc3VtZSgiLCIpOworICAgICAgY29uc3Qg
ZXhpc3RpbmcgPSBkZWYuZXh0QXR0cnNbMF07CisgICAgICBpZiAoIS9eXHMvLnRlc3QoZXhpc3Rp
bmcudG9rZW5zLm5hbWUudHJpdmlhKSkgeworICAgICAgICBleGlzdGluZy50b2tlbnMubmFtZS50
cml2aWEgPSBgICR7ZXhpc3RpbmcudG9rZW5zLm5hbWUudHJpdmlhfWA7CiAgICAgICB9CisgICAg
ICBkZWYuZXh0QXR0cnMudW5zaGlmdChleHBvc2VkKTsKKyAgICB9IGVsc2UgeworICAgICAgZGVm
LmV4dEF0dHJzID0gX2V4dGVuZGVkX2F0dHJpYnV0ZXNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9E
VUxFXzNfX1siRXh0ZW5kZWRBdHRyaWJ1dGVzIl0ucGFyc2UobmV3IF90b2tlbmlzZXJfanNfX1dF
QlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfX1siVG9rZW5pc2VyIl0oIltFeHBvc2VkPVdpbmRvd10i
KSk7CisgICAgICBkZWYuZXh0QXR0cnMudG9rZW5zLm9wZW4udHJpdmlhID0gZGVmLnRva2Vucy5i
YXNlLnRyaXZpYTsKKyAgICAgIGRlZi50b2tlbnMuYmFzZS50cml2aWEgPSAiICI7CiAgICAgfQor
ICB9OworfQogCi0gICAgZnVuY3Rpb24gb3BlcmF0aW9uKHsgcmVndWxhciA9IGZhbHNlIH0gPSB7
fSkgewotICAgICAgY29uc3QgcmV0ID0gT2JqZWN0LmFzc2lnbih7fSwgRU1QVFlfT1BFUkFUSU9O
KTsKLSAgICAgIHdoaWxlICghcmVndWxhcikgewotICAgICAgICBpZiAoY29uc3VtZSgiZ2V0dGVy
IikpIHJldC5nZXR0ZXIgPSB0cnVlOwotICAgICAgICBlbHNlIGlmIChjb25zdW1lKCJzZXR0ZXIi
KSkgcmV0LnNldHRlciA9IHRydWU7Ci0gICAgICAgIGVsc2UgaWYgKGNvbnN1bWUoImRlbGV0ZXIi
KSkgcmV0LmRlbGV0ZXIgPSB0cnVlOwotICAgICAgICBlbHNlIGJyZWFrOwotICAgICAgfQotICAg
ICAgcmV0LmlkbFR5cGUgPSByZXR1cm5fdHlwZSgpIHx8IGVycm9yKCJNaXNzaW5nIHJldHVybiB0
eXBlIik7Ci0gICAgICBvcGVyYXRpb25fcmVzdChyZXQpOwotICAgICAgcmV0dXJuIHJldDsKKwor
LyoqKi8gfSksCisvKiA1ICovCisvKioqLyAoZnVuY3Rpb24obW9kdWxlLCBfX3dlYnBhY2tfZXhw
b3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CisKKyJ1c2Ugc3RyaWN0IjsKK19fd2VicGFj
a19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTsKKy8qIGhhcm1vbnkgZXhwb3J0IChi
aW5kaW5nKSAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgIlR5
cGUiLCBmdW5jdGlvbigpIHsgcmV0dXJuIFR5cGU7IH0pOworLyogaGFybW9ueSBpbXBvcnQgKi8g
dmFyIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVx
dWlyZV9fKDYpOworLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9oZWxwZXJzX2pzX19XRUJQQUNL
X0lNUE9SVEVEX01PRFVMRV8xX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDQpOworLyogaGFybW9u
eSBpbXBvcnQgKi8gdmFyIF90b2tlbmlzZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJf
XyA9IF9fd2VicGFja19yZXF1aXJlX18oMik7CisvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2Vy
cm9yX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9f
KDMpOworLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF92YWxpZGF0b3JzX2hlbHBlcnNfanNfX1dF
QlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXyA9IF9fd2VicGFja19yZXF1aXJlX18oNyk7CisKKwor
CisKKworCisvKioKKyAqIEBwYXJhbSB7aW1wb3J0KCIuLi90b2tlbmlzZXIiKS5Ub2tlbmlzZXJ9
IHRva2VuaXNlcgorICogQHBhcmFtIHtzdHJpbmd9IHR5cGVOYW1lCisgKi8KK2Z1bmN0aW9uIGdl
bmVyaWNfdHlwZSh0b2tlbmlzZXIsIHR5cGVOYW1lKSB7CisgIGNvbnN0IGJhc2UgPSB0b2tlbmlz
ZXIuY29uc3VtZSgiRnJvemVuQXJyYXkiLCAiUHJvbWlzZSIsICJzZXF1ZW5jZSIsICJyZWNvcmQi
KTsKKyAgaWYgKCFiYXNlKSB7CisgICAgcmV0dXJuOworICB9CisgIGNvbnN0IHJldCA9IG5ldyBU
eXBlKHsgc291cmNlOiB0b2tlbmlzZXIuc291cmNlLCB0b2tlbnM6IHsgYmFzZSB9IH0pOworICBy
ZXQudG9rZW5zLm9wZW4gPSB0b2tlbmlzZXIuY29uc3VtZSgiPCIpIHx8IHRva2VuaXNlci5lcnJv
cihgTm8gb3BlbmluZyBicmFja2V0IGFmdGVyICR7YmFzZS50eXBlfWApOworICBzd2l0Y2ggKGJh
c2UudHlwZSkgeworICAgIGNhc2UgIlByb21pc2UiOiB7CisgICAgICBpZiAodG9rZW5pc2VyLnBy
b2JlKCJbIikpIHRva2VuaXNlci5lcnJvcigiUHJvbWlzZSB0eXBlIGNhbm5vdCBoYXZlIGV4dGVu
ZGVkIGF0dHJpYnV0ZSIpOworICAgICAgY29uc3Qgc3VidHlwZSA9IE9iamVjdChfaGVscGVyc19q
c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fWyJyZXR1cm5fdHlwZSJdKSh0b2tlbmlzZXIs
IHR5cGVOYW1lKSB8fCB0b2tlbmlzZXIuZXJyb3IoIk1pc3NpbmcgUHJvbWlzZSBzdWJ0eXBlIik7
CisgICAgICByZXQuc3VidHlwZS5wdXNoKHN1YnR5cGUpOworICAgICAgYnJlYWs7CisgICAgfQor
ICAgIGNhc2UgInNlcXVlbmNlIjoKKyAgICBjYXNlICJGcm96ZW5BcnJheSI6IHsKKyAgICAgIGNv
bnN0IHN1YnR5cGUgPSBPYmplY3QoX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxF
XzFfX1sidHlwZV93aXRoX2V4dGVuZGVkX2F0dHJpYnV0ZXMiXSkodG9rZW5pc2VyLCB0eXBlTmFt
ZSkgfHwgdG9rZW5pc2VyLmVycm9yKGBNaXNzaW5nICR7YmFzZS50eXBlfSBzdWJ0eXBlYCk7Cisg
ICAgICByZXQuc3VidHlwZS5wdXNoKHN1YnR5cGUpOworICAgICAgYnJlYWs7CisgICAgfQorICAg
IGNhc2UgInJlY29yZCI6IHsKKyAgICAgIGlmICh0b2tlbmlzZXIucHJvYmUoIlsiKSkgdG9rZW5p
c2VyLmVycm9yKCJSZWNvcmQga2V5IGNhbm5vdCBoYXZlIGV4dGVuZGVkIGF0dHJpYnV0ZSIpOwor
ICAgICAgY29uc3Qga2V5VHlwZSA9IHRva2VuaXNlci5jb25zdW1lKC4uLl90b2tlbmlzZXJfanNf
X1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX1sic3RyaW5nVHlwZXMiXSkgfHwgdG9rZW5pc2Vy
LmVycm9yKGBSZWNvcmQga2V5IG11c3QgYmUgb25lIG9mOiAke190b2tlbmlzZXJfanNfX1dFQlBB
Q0tfSU1QT1JURURfTU9EVUxFXzJfX1sic3RyaW5nVHlwZXMiXS5qb2luKCIsICIpfWApOworICAg
ICAgY29uc3Qga2V5SWRsVHlwZSA9IG5ldyBUeXBlKHsgc291cmNlOiB0b2tlbmlzZXIuc291cmNl
LCB0b2tlbnM6IHsgYmFzZToga2V5VHlwZSB9fSk7CisgICAgICBrZXlJZGxUeXBlLnRva2Vucy5z
ZXBhcmF0b3IgPSB0b2tlbmlzZXIuY29uc3VtZSgiLCIpIHx8IHRva2VuaXNlci5lcnJvcigiTWlz
c2luZyBjb21tYSBhZnRlciByZWNvcmQga2V5IHR5cGUiKTsKKyAgICAgIGtleUlkbFR5cGUudHlw
ZSA9IHR5cGVOYW1lOworICAgICAgY29uc3QgdmFsdWVUeXBlID0gT2JqZWN0KF9oZWxwZXJzX2pz
X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19bInR5cGVfd2l0aF9leHRlbmRlZF9hdHRyaWJ1
dGVzIl0pKHRva2VuaXNlciwgdHlwZU5hbWUpIHx8IHRva2VuaXNlci5lcnJvcigiRXJyb3IgcGFy
c2luZyBnZW5lcmljIHR5cGUgcmVjb3JkIik7CisgICAgICByZXQuc3VidHlwZS5wdXNoKGtleUlk
bFR5cGUsIHZhbHVlVHlwZSk7CisgICAgICBicmVhazsKKyAgICB9CisgIH0KKyAgaWYgKCFyZXQu
aWRsVHlwZSkgdG9rZW5pc2VyLmVycm9yKGBFcnJvciBwYXJzaW5nIGdlbmVyaWMgdHlwZSAke2Jh
c2UudHlwZX1gKTsKKyAgcmV0LnRva2Vucy5jbG9zZSA9IHRva2VuaXNlci5jb25zdW1lKCI+Iikg
fHwgdG9rZW5pc2VyLmVycm9yKGBNaXNzaW5nIGNsb3NpbmcgYnJhY2tldCBhZnRlciAke2Jhc2Uu
dHlwZX1gKTsKKyAgcmV0dXJuIHJldDsKK30KKworLyoqCisgKiBAcGFyYW0ge2ltcG9ydCgiLi4v
dG9rZW5pc2VyIikuVG9rZW5pc2VyfSB0b2tlbmlzZXIKKyAqLworZnVuY3Rpb24gdHlwZV9zdWZm
aXgodG9rZW5pc2VyLCBvYmopIHsKKyAgY29uc3QgbnVsbGFibGUgPSB0b2tlbmlzZXIuY29uc3Vt
ZSgiPyIpOworICBpZiAobnVsbGFibGUpIHsKKyAgICBvYmoudG9rZW5zLm51bGxhYmxlID0gbnVs
bGFibGU7CisgIH0KKyAgaWYgKHRva2VuaXNlci5wcm9iZSgiPyIpKSB0b2tlbmlzZXIuZXJyb3Io
IkNhbid0IG51bGxhYmxlIG1vcmUgdGhhbiBvbmNlIik7Cit9CisKKy8qKgorICogQHBhcmFtIHtp
bXBvcnQoIi4uL3Rva2VuaXNlciIpLlRva2VuaXNlcn0gdG9rZW5pc2VyCisgKiBAcGFyYW0ge3N0
cmluZ30gdHlwZU5hbWUKKyAqLworZnVuY3Rpb24gc2luZ2xlX3R5cGUodG9rZW5pc2VyLCB0eXBl
TmFtZSkgeworICBsZXQgcmV0ID0gZ2VuZXJpY190eXBlKHRva2VuaXNlciwgdHlwZU5hbWUpIHx8
IE9iamVjdChfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fWyJwcmltaXRp
dmVfdHlwZSJdKSh0b2tlbmlzZXIpOworICBpZiAoIXJldCkgeworICAgIGNvbnN0IGJhc2UgPSB0
b2tlbmlzZXIuY29uc3VtZSgiaWRlbnRpZmllciIsIC4uLl90b2tlbmlzZXJfanNfX1dFQlBBQ0tf
SU1QT1JURURfTU9EVUxFXzJfX1sic3RyaW5nVHlwZXMiXSk7CisgICAgaWYgKCFiYXNlKSB7Cisg
ICAgICByZXR1cm47CisgICAgfQorICAgIHJldCA9IG5ldyBUeXBlKHsgc291cmNlOiB0b2tlbmlz
ZXIuc291cmNlLCB0b2tlbnM6IHsgYmFzZSB9IH0pOworICAgIGlmICh0b2tlbmlzZXIucHJvYmUo
IjwiKSkgdG9rZW5pc2VyLmVycm9yKGBVbnN1cHBvcnRlZCBnZW5lcmljIHR5cGUgJHtiYXNlLnZh
bHVlfWApOworICB9CisgIGlmIChyZXQuZ2VuZXJpYyA9PT0gIlByb21pc2UiICYmIHRva2VuaXNl
ci5wcm9iZSgiPyIpKSB7CisgICAgdG9rZW5pc2VyLmVycm9yKCJQcm9taXNlIHR5cGUgY2Fubm90
IGJlIG51bGxhYmxlIik7CisgIH0KKyAgcmV0LnR5cGUgPSB0eXBlTmFtZSB8fCBudWxsOworICB0
eXBlX3N1ZmZpeCh0b2tlbmlzZXIsIHJldCk7CisgIGlmIChyZXQubnVsbGFibGUgJiYgcmV0Lmlk
bFR5cGUgPT09ICJhbnkiKSB0b2tlbmlzZXIuZXJyb3IoIlR5cGUgYGFueWAgY2Fubm90IGJlIG1h
ZGUgbnVsbGFibGUiKTsKKyAgcmV0dXJuIHJldDsKK30KKworLyoqCisgKiBAcGFyYW0ge2ltcG9y
dCgiLi4vdG9rZW5pc2VyIikuVG9rZW5pc2VyfSB0b2tlbmlzZXIKKyAqIEBwYXJhbSB7c3RyaW5n
fSB0eXBlCisgKi8KK2Z1bmN0aW9uIHVuaW9uX3R5cGUodG9rZW5pc2VyLCB0eXBlKSB7CisgIGNv
bnN0IHRva2VucyA9IHt9OworICB0b2tlbnMub3BlbiA9IHRva2VuaXNlci5jb25zdW1lKCIoIik7
CisgIGlmICghdG9rZW5zLm9wZW4pIHJldHVybjsKKyAgY29uc3QgcmV0ID0gbmV3IFR5cGUoeyBz
b3VyY2U6IHRva2VuaXNlci5zb3VyY2UsIHRva2VucyB9KTsKKyAgcmV0LnR5cGUgPSB0eXBlIHx8
IG51bGw7CisgIHdoaWxlICh0cnVlKSB7CisgICAgY29uc3QgdHlwID0gT2JqZWN0KF9oZWxwZXJz
X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19bInR5cGVfd2l0aF9leHRlbmRlZF9hdHRy
aWJ1dGVzIl0pKHRva2VuaXNlcikgfHwgdG9rZW5pc2VyLmVycm9yKCJObyB0eXBlIGFmdGVyIG9w
ZW4gcGFyZW50aGVzaXMgb3IgJ29yJyBpbiB1bmlvbiB0eXBlIik7CisgICAgaWYgKHR5cC5pZGxU
eXBlID09PSAiYW55IikgdG9rZW5pc2VyLmVycm9yKCJUeXBlIGBhbnlgIGNhbm5vdCBiZSBpbmNs
dWRlZCBpbiBhIHVuaW9uIHR5cGUiKTsKKyAgICByZXQuc3VidHlwZS5wdXNoKHR5cCk7CisgICAg
Y29uc3Qgb3IgPSB0b2tlbmlzZXIuY29uc3VtZSgib3IiKTsKKyAgICBpZiAob3IpIHsKKyAgICAg
IHR5cC50b2tlbnMuc2VwYXJhdG9yID0gb3I7CiAgICAgfQorICAgIGVsc2UgYnJlYWs7CisgIH0K
KyAgaWYgKHJldC5pZGxUeXBlLmxlbmd0aCA8IDIpIHsKKyAgICB0b2tlbmlzZXIuZXJyb3IoIkF0
IGxlYXN0IHR3byB0eXBlcyBhcmUgZXhwZWN0ZWQgaW4gYSB1bmlvbiB0eXBlIGJ1dCBmb3VuZCBs
ZXNzIik7CisgIH0KKyAgdG9rZW5zLmNsb3NlID0gdG9rZW5pc2VyLmNvbnN1bWUoIikiKSB8fCB0
b2tlbmlzZXIuZXJyb3IoIlVudGVybWluYXRlZCB1bmlvbiB0eXBlIik7CisgIHR5cGVfc3VmZml4
KHRva2VuaXNlciwgcmV0KTsKKyAgcmV0dXJuIHJldDsKK30KKworY2xhc3MgVHlwZSBleHRlbmRz
IF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIkJhc2UiXSB7CisgIC8qKgor
ICAgKiBAcGFyYW0ge2ltcG9ydCgiLi4vdG9rZW5pc2VyIikuVG9rZW5pc2VyfSB0b2tlbmlzZXIK
KyAgICogQHBhcmFtIHtzdHJpbmd9IHR5cGVOYW1lCisgICAqLworICBzdGF0aWMgcGFyc2UodG9r
ZW5pc2VyLCB0eXBlTmFtZSkgeworICAgIHJldHVybiBzaW5nbGVfdHlwZSh0b2tlbmlzZXIsIHR5
cGVOYW1lKSB8fCB1bmlvbl90eXBlKHRva2VuaXNlciwgdHlwZU5hbWUpOworICB9CiAKLSAgICBm
dW5jdGlvbiBzdGF0aWNfbWVtYmVyKCkgewotICAgICAgaWYgKCFjb25zdW1lKCJzdGF0aWMiKSkg
cmV0dXJuOwotICAgICAgY29uc3QgbWVtYmVyID0gYXR0cmlidXRlKHsgbm9Jbmhlcml0OiB0cnVl
IH0pIHx8Ci0gICAgICAgIG9wZXJhdGlvbih7IHJlZ3VsYXI6IHRydWUgfSkgfHwKLSAgICAgICAg
ZXJyb3IoIk5vIGJvZHkgaW4gc3RhdGljIG1lbWJlciIpOwotICAgICAgbWVtYmVyLnN0YXRpYyA9
IHRydWU7Ci0gICAgICByZXR1cm4gbWVtYmVyOworICBjb25zdHJ1Y3Rvcih7IHNvdXJjZSwgdG9r
ZW5zIH0pIHsKKyAgICBzdXBlcih7IHNvdXJjZSwgdG9rZW5zIH0pOworICAgIE9iamVjdC5kZWZp
bmVQcm9wZXJ0eSh0aGlzLCAic3VidHlwZSIsIHsgdmFsdWU6IFtdIH0pOworICAgIHRoaXMuZXh0
QXR0cnMgPSBbXTsKKyAgfQorCisgIGdldCBnZW5lcmljKCkgeworICAgIGlmICh0aGlzLnN1YnR5
cGUubGVuZ3RoICYmIHRoaXMudG9rZW5zLmJhc2UpIHsKKyAgICAgIHJldHVybiB0aGlzLnRva2Vu
cy5iYXNlLnZhbHVlOworICAgIH0KKyAgICByZXR1cm4gIiI7CisgIH0KKyAgZ2V0IG51bGxhYmxl
KCkgeworICAgIHJldHVybiBCb29sZWFuKHRoaXMudG9rZW5zLm51bGxhYmxlKTsKKyAgfQorICBn
ZXQgdW5pb24oKSB7CisgICAgcmV0dXJuIEJvb2xlYW4odGhpcy5zdWJ0eXBlLmxlbmd0aCkgJiYg
IXRoaXMudG9rZW5zLmJhc2U7CisgIH0KKyAgZ2V0IGlkbFR5cGUoKSB7CisgICAgaWYgKHRoaXMu
c3VidHlwZS5sZW5ndGgpIHsKKyAgICAgIHJldHVybiB0aGlzLnN1YnR5cGU7CiAgICAgfQorICAg
IC8vIEFkZGluZyBwcmVmaXhlcy9wb3N0Zml4ZXMgZm9yICJ1bnJlc3RyaWN0ZWQgZmxvYXQiLCBl
dGMuCisgICAgY29uc3QgbmFtZSA9IFsKKyAgICAgIHRoaXMudG9rZW5zLnByZWZpeCwKKyAgICAg
IHRoaXMudG9rZW5zLmJhc2UsCisgICAgICB0aGlzLnRva2Vucy5wb3N0Zml4CisgICAgXS5maWx0
ZXIodCA9PiB0KS5tYXAodCA9PiB0LnZhbHVlKS5qb2luKCIgIik7CisgICAgcmV0dXJuIE9iamVj
dChfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fWyJ1bmVzY2FwZSJdKShu
YW1lKTsKKyAgfQogCi0gICAgZnVuY3Rpb24gc3RyaW5naWZpZXIoKSB7Ci0gICAgICBpZiAoIWNv
bnN1bWUoInN0cmluZ2lmaWVyIikpIHJldHVybjsKLSAgICAgIGlmIChjb25zdW1lKCI7IikpIHsK
LSAgICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oe30sIEVNUFRZX09QRVJBVElPTiwgeyBzdHJp
bmdpZmllcjogdHJ1ZSB9KTsKLSAgICAgIH0KLSAgICAgIGNvbnN0IG1lbWJlciA9IGF0dHJpYnV0
ZSh7IG5vSW5oZXJpdDogdHJ1ZSB9KSB8fAotICAgICAgICBvcGVyYXRpb24oeyByZWd1bGFyOiB0
cnVlIH0pIHx8Ci0gICAgICAgIGVycm9yKCJVbnRlcm1pbmF0ZWQgc3RyaW5naWZpZXIiKTsKLSAg
ICAgIG1lbWJlci5zdHJpbmdpZmllciA9IHRydWU7Ci0gICAgICByZXR1cm4gbWVtYmVyOwotICAg
IH0KLQotICAgIGZ1bmN0aW9uIGlkZW50aWZpZXJzKCkgewotICAgICAgY29uc3QgYXJyID0gW107
Ci0gICAgICBjb25zdCBpZCA9IGNvbnN1bWUoSUQpOwotICAgICAgaWYgKGlkKSB7Ci0gICAgICAg
IGFyci5wdXNoKGlkLnZhbHVlKTsKKyAgKnZhbGlkYXRlKGRlZnMpIHsKKyAgICAvKgorICAgICAq
IElmIGEgdW5pb24gaXMgbnVsbGFibGUsIGl0cyBzdWJ1bmlvbnMgY2Fubm90IGluY2x1ZGUgYSBk
aWN0aW9uYXJ5CisgICAgICogSWYgbm90LCBzdWJ1bmlvbnMgbWF5IGluY2x1ZGUgZGljdGlvbmFy
aWVzIGlmIGVhY2ggdW5pb24gaXMgbm90IG51bGxhYmxlCisgICAgICovCisgICAgY29uc3QgdHlw
ZWRlZiA9ICF0aGlzLnVuaW9uICYmIGRlZnMudW5pcXVlLmdldCh0aGlzLmlkbFR5cGUpOworICAg
IGNvbnN0IHRhcmdldCA9CisgICAgICB0aGlzLnVuaW9uID8gdGhpcyA6CisgICAgICAodHlwZWRl
ZiAmJiB0eXBlZGVmLnR5cGUgPT09ICJ0eXBlZGVmIikgPyB0eXBlZGVmLmlkbFR5cGUgOgorICAg
ICAgdW5kZWZpbmVkOworICAgIGlmICh0YXJnZXQgJiYgdGhpcy5udWxsYWJsZSkgeworICAgICAg
Ly8gZG8gbm90IGFsbG93IGFueSBkaWN0aW9uYXJ5CisgICAgICBjb25zdCByZWZlcmVuY2UgPSBP
YmplY3QoX3ZhbGlkYXRvcnNfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9f
WyJpZGxUeXBlSW5jbHVkZXNEaWN0aW9uYXJ5Il0pKHRhcmdldCwgZGVmcyk7CisgICAgICBpZiAo
cmVmZXJlbmNlKSB7CisgICAgICAgIGNvbnN0IHRhcmdldFRva2VuID0gKHRoaXMudW5pb24gPyBy
ZWZlcmVuY2UgOiB0aGlzKS50b2tlbnMuYmFzZTsKKyAgICAgICAgY29uc3QgbWVzc2FnZSA9IGBO
dWxsYWJsZSB1bmlvbiBjYW5ub3QgaW5jbHVkZSBhIGRpY3Rpb25hcnkgdHlwZWA7CisgICAgICAg
IHlpZWxkIE9iamVjdChfZXJyb3JfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfX1sidmFs
aWRhdGlvbkVycm9yIl0pKHRoaXMuc291cmNlLCB0YXJnZXRUb2tlbiwgdGhpcywgbWVzc2FnZSk7
CiAgICAgICB9Ci0gICAgICBlbHNlIGVycm9yKCJFeHBlY3RlZCBpZGVudGlmaWVycyBidXQgbm90
IGZvdW5kIik7Ci0gICAgICB3aGlsZSAodHJ1ZSkgewotICAgICAgICBpZiAoY29uc3VtZSgiLCIp
KSB7Ci0gICAgICAgICAgY29uc3QgbmFtZSA9IGNvbnN1bWUoSUQpIHx8IGVycm9yKCJUcmFpbGlu
ZyBjb21tYSBpbiBpZGVudGlmaWVycyBsaXN0Iik7Ci0gICAgICAgICAgYXJyLnB1c2gobmFtZS52
YWx1ZSk7Ci0gICAgICAgIH0gZWxzZSBicmVhazsKKyAgICB9IGVsc2UgeworICAgICAgLy8gYWxs
b3cgc29tZSBkaWN0aW9uYXJ5CisgICAgICBmb3IgKGNvbnN0IHN1YnR5cGUgb2YgdGhpcy5zdWJ0
eXBlKSB7CisgICAgICAgIHlpZWxkKiBzdWJ0eXBlLnZhbGlkYXRlKGRlZnMpOwogICAgICAgfQot
ICAgICAgcmV0dXJuIGFycjsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBpdGVyYWJsZV90eXBlKCkg
ewotICAgICAgaWYgKGNvbnN1bWUoIml0ZXJhYmxlIikpIHJldHVybiAiaXRlcmFibGUiOwotICAg
ICAgZWxzZSBpZiAoY29uc3VtZSgibGVnYWN5aXRlcmFibGUiKSkgcmV0dXJuICJsZWdhY3lpdGVy
YWJsZSI7Ci0gICAgICBlbHNlIGlmIChjb25zdW1lKCJtYXBsaWtlIikpIHJldHVybiAibWFwbGlr
ZSI7Ci0gICAgICBlbHNlIGlmIChjb25zdW1lKCJzZXRsaWtlIikpIHJldHVybiAic2V0bGlrZSI7
Ci0gICAgICBlbHNlIHJldHVybjsKICAgICB9CisgIH0KK30KIAotICAgIGZ1bmN0aW9uIHJlYWRv
bmx5X2l0ZXJhYmxlX3R5cGUoKSB7Ci0gICAgICBpZiAoY29uc3VtZSgibWFwbGlrZSIpKSByZXR1
cm4gIm1hcGxpa2UiOwotICAgICAgZWxzZSBpZiAoY29uc3VtZSgic2V0bGlrZSIpKSByZXR1cm4g
InNldGxpa2UiOwotICAgICAgZWxzZSByZXR1cm47Ci0gICAgfQogCi0gICAgZnVuY3Rpb24gaXRl
cmFibGUoKSB7Ci0gICAgICBjb25zdCBzdGFydF9wb3NpdGlvbiA9IGNvbnN1bWVfcG9zaXRpb247
Ci0gICAgICBjb25zdCByZXQgPSB7IHR5cGU6IG51bGwsIGlkbFR5cGU6IG51bGwsIHJlYWRvbmx5
OiBmYWxzZSB9OwotICAgICAgaWYgKGNvbnN1bWUoInJlYWRvbmx5IikpIHsKLSAgICAgICAgcmV0
LnJlYWRvbmx5ID0gdHJ1ZTsKLSAgICAgIH0KLSAgICAgIGNvbnN0IGNvbnN1bWVJdFR5cGUgPSBy
ZXQucmVhZG9ubHkgPyByZWFkb25seV9pdGVyYWJsZV90eXBlIDogaXRlcmFibGVfdHlwZTsKKy8q
KiovIH0pLAorLyogNiAqLworLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgX193ZWJwYWNrX2V4cG9y
dHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgewogCi0gICAgICBjb25zdCBpdHR5cGUgPSBjb25z
dW1lSXRUeXBlKCk7Ci0gICAgICBpZiAoIWl0dHlwZSkgewotICAgICAgICB1bmNvbnN1bWUoc3Rh
cnRfcG9zaXRpb24pOwotICAgICAgICByZXR1cm47Ci0gICAgICB9CisidXNlIHN0cmljdCI7Citf
X3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7CisvKiBoYXJtb255IGV4
cG9ydCAoYmluZGluZykgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRz
X18sICJCYXNlIiwgZnVuY3Rpb24oKSB7IHJldHVybiBCYXNlOyB9KTsKK2NsYXNzIEJhc2Ugewor
ICBjb25zdHJ1Y3Rvcih7IHNvdXJjZSwgdG9rZW5zIH0pIHsKKyAgICBPYmplY3QuZGVmaW5lUHJv
cGVydGllcyh0aGlzLCB7CisgICAgICBzb3VyY2U6IHsgdmFsdWU6IHNvdXJjZSB9LAorICAgICAg
dG9rZW5zOiB7IHZhbHVlOiB0b2tlbnMgfQorICAgIH0pOworICB9CiAKLSAgICAgIGNvbnN0IHNl
Y29uZFR5cGVSZXF1aXJlZCA9IGl0dHlwZSA9PT0gIm1hcGxpa2UiOwotICAgICAgY29uc3Qgc2Vj
b25kVHlwZUFsbG93ZWQgPSBzZWNvbmRUeXBlUmVxdWlyZWQgfHwgaXR0eXBlID09PSAiaXRlcmFi
bGUiOwotICAgICAgcmV0LnR5cGUgPSBpdHR5cGU7Ci0gICAgICBpZiAocmV0LnR5cGUgIT09ICdt
YXBsaWtlJyAmJiByZXQudHlwZSAhPT0gJ3NldGxpa2UnKQotICAgICAgICBkZWxldGUgcmV0LnJl
YWRvbmx5OwotICAgICAgaWYgKGNvbnN1bWUoIjwiKSkgewotICAgICAgICByZXQuaWRsVHlwZSA9
IFt0eXBlX3dpdGhfZXh0ZW5kZWRfYXR0cmlidXRlcygpXSB8fCBlcnJvcihgRXJyb3IgcGFyc2lu
ZyAke2l0dHlwZX0gZGVjbGFyYXRpb25gKTsKLSAgICAgICAgaWYgKHNlY29uZFR5cGVBbGxvd2Vk
KSB7Ci0gICAgICAgICAgaWYgKGNvbnN1bWUoIiwiKSkgewotICAgICAgICAgICAgcmV0LmlkbFR5
cGUucHVzaCh0eXBlX3dpdGhfZXh0ZW5kZWRfYXR0cmlidXRlcygpKTsKLSAgICAgICAgICB9Ci0g
ICAgICAgICAgZWxzZSBpZiAoc2Vjb25kVHlwZVJlcXVpcmVkKQotICAgICAgICAgICAgZXJyb3Io
YE1pc3Npbmcgc2Vjb25kIHR5cGUgYXJndW1lbnQgaW4gJHtpdHR5cGV9IGRlY2xhcmF0aW9uYCk7
Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKCFjb25zdW1lKCI+IikpIGVycm9yKGBVbnRlcm1pbmF0
ZWQgJHtpdHR5cGV9IGRlY2xhcmF0aW9uYCk7Ci0gICAgICAgIGlmICghY29uc3VtZSgiOyIpKSBl
cnJvcihgTWlzc2luZyBzZW1pY29sb24gYWZ0ZXIgJHtpdHR5cGV9IGRlY2xhcmF0aW9uYCk7Ci0g
ICAgICB9IGVsc2UKLSAgICAgICAgZXJyb3IoYEVycm9yIHBhcnNpbmcgJHtpdHR5cGV9IGRlY2xh
cmF0aW9uYCk7Ci0KLSAgICAgIHJldHVybiByZXQ7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gaW50
ZXJmYWNlX3Jlc3QoaXNQYXJ0aWFsLCB0eXBlTmFtZSA9ICJpbnRlcmZhY2UiKSB7Ci0gICAgICBj
b25zdCBuYW1lID0gY29uc3VtZShJRCkgfHwgZXJyb3IoIk5vIG5hbWUgZm9yIGludGVyZmFjZSIp
OwotICAgICAgY29uc3QgbWVtcyA9IFtdOwotICAgICAgY29uc3QgcmV0ID0gY3VycmVudCA9IHsK
LSAgICAgICAgdHlwZTogdHlwZU5hbWUsCi0gICAgICAgIG5hbWU6IGlzUGFydGlhbCA/IG5hbWUu
dmFsdWUgOiBzYW5pdGl6ZV9uYW1lKG5hbWUudmFsdWUsICJpbnRlcmZhY2UiKSwKLSAgICAgICAg
cGFydGlhbDogaXNQYXJ0aWFsLAotICAgICAgICBtZW1iZXJzOiBtZW1zCi0gICAgICB9OwotICAg
ICAgaWYgKCFpc1BhcnRpYWwpIHJldC5pbmhlcml0YW5jZSA9IGluaGVyaXRhbmNlKCkgfHwgbnVs
bDsKLSAgICAgIGNvbnN1bWUoInsiKSB8fCBlcnJvcigiQm9keWxlc3MgaW50ZXJmYWNlIik7Ci0g
ICAgICB3aGlsZSAodHJ1ZSkgewotICAgICAgICBpZiAoY29uc3VtZSgifSIpKSB7Ci0gICAgICAg
ICAgY29uc3VtZSgiOyIpIHx8IGVycm9yKCJNaXNzaW5nIHNlbWljb2xvbiBhZnRlciBpbnRlcmZh
Y2UiKTsKLSAgICAgICAgICByZXR1cm4gcmV0OworICB0b0pTT04oKSB7CisgICAgY29uc3QganNv
biA9IHsgdHlwZTogdW5kZWZpbmVkLCBuYW1lOiB1bmRlZmluZWQsIGluaGVyaXRhbmNlOiB1bmRl
ZmluZWQgfTsKKyAgICBsZXQgcHJvdG8gPSB0aGlzOworICAgIHdoaWxlIChwcm90byAhPT0gT2Jq
ZWN0LnByb3RvdHlwZSkgeworICAgICAgY29uc3QgZGVzY01hcCA9IE9iamVjdC5nZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3JzKHByb3RvKTsKKyAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9m
IE9iamVjdC5lbnRyaWVzKGRlc2NNYXApKSB7CisgICAgICAgIGlmICh2YWx1ZS5lbnVtZXJhYmxl
IHx8IHZhbHVlLmdldCkgeworICAgICAgICAgIGpzb25ba2V5XSA9IHRoaXNba2V5XTsKICAgICAg
ICAgfQotICAgICAgICBjb25zdCBlYSA9IGV4dGVuZGVkX2F0dHJzKCk7Ci0gICAgICAgIGNvbnN0
IG1lbSA9IGNvbnN0XygpIHx8Ci0gICAgICAgICAgc3RhdGljX21lbWJlcigpIHx8Ci0gICAgICAg
ICAgc3RyaW5naWZpZXIoKSB8fAotICAgICAgICAgIGl0ZXJhYmxlKCkgfHwKLSAgICAgICAgICBh
dHRyaWJ1dGUoKSB8fAotICAgICAgICAgIG9wZXJhdGlvbigpIHx8Ci0gICAgICAgICAgZXJyb3Io
IlVua25vd24gbWVtYmVyIik7Ci0gICAgICAgIG1lbS5leHRBdHRycyA9IGVhOwotICAgICAgICBy
ZXQubWVtYmVycy5wdXNoKG1lbSk7CiAgICAgICB9CisgICAgICBwcm90byA9IE9iamVjdC5nZXRQ
cm90b3R5cGVPZihwcm90byk7CiAgICAgfQorICAgIHJldHVybiBqc29uOworICB9Cit9CiAKLSAg
ICBmdW5jdGlvbiBtaXhpbl9yZXN0KGlzUGFydGlhbCkgewotICAgICAgaWYgKCFjb25zdW1lKCJt
aXhpbiIpKSByZXR1cm47Ci0gICAgICBjb25zdCBuYW1lID0gY29uc3VtZShJRCkgfHwgZXJyb3Io
Ik5vIG5hbWUgZm9yIGludGVyZmFjZSBtaXhpbiIpOwotICAgICAgY29uc3QgbWVtcyA9IFtdOwot
ICAgICAgY29uc3QgcmV0ID0gY3VycmVudCA9IHsKLSAgICAgICAgdHlwZTogImludGVyZmFjZSBt
aXhpbiIsCi0gICAgICAgIG5hbWU6IGlzUGFydGlhbCA/IG5hbWUudmFsdWUgOiBzYW5pdGl6ZV9u
YW1lKG5hbWUudmFsdWUsICJpbnRlcmZhY2UgbWl4aW4iKSwKLSAgICAgICAgcGFydGlhbDogaXNQ
YXJ0aWFsLAotICAgICAgICBtZW1iZXJzOiBtZW1zCi0gICAgICB9OwotICAgICAgY29uc3VtZSgi
eyIpIHx8IGVycm9yKCJCb2R5bGVzcyBpbnRlcmZhY2UgbWl4aW4iKTsKLSAgICAgIHdoaWxlICh0
cnVlKSB7Ci0gICAgICAgIGlmIChjb25zdW1lKCJ9IikpIHsKLSAgICAgICAgICBjb25zdW1lKCI7
IikgfHwgZXJyb3IoIk1pc3Npbmcgc2VtaWNvbG9uIGFmdGVyIGludGVyZmFjZSBtaXhpbiIpOwot
ICAgICAgICAgIHJldHVybiByZXQ7Ci0gICAgICAgIH0KLSAgICAgICAgY29uc3QgZWEgPSBleHRl
bmRlZF9hdHRycygpOwotICAgICAgICBjb25zdCBtZW0gPSBjb25zdF8oKSB8fAotICAgICAgICAg
IHN0cmluZ2lmaWVyKCkgfHwKLSAgICAgICAgICBhdHRyaWJ1dGUoeyBub0luaGVyaXQ6IHRydWUg
fSkgfHwKLSAgICAgICAgICBvcGVyYXRpb24oeyByZWd1bGFyOiB0cnVlIH0pIHx8Ci0gICAgICAg
ICAgZXJyb3IoIlVua25vd24gbWVtYmVyIik7Ci0gICAgICAgIG1lbS5leHRBdHRycyA9IGVhOwot
ICAgICAgICByZXQubWVtYmVycy5wdXNoKG1lbSk7Ci0gICAgICB9Ci0gICAgfQogCi0gICAgZnVu
Y3Rpb24gaW50ZXJmYWNlXyhpc1BhcnRpYWwpIHsKLSAgICAgIGlmICghY29uc3VtZSgiaW50ZXJm
YWNlIikpIHJldHVybjsKLSAgICAgIHJldHVybiBtaXhpbl9yZXN0KGlzUGFydGlhbCkgfHwKLSAg
ICAgICAgaW50ZXJmYWNlX3Jlc3QoaXNQYXJ0aWFsKSB8fAotICAgICAgICBlcnJvcigiSW50ZXJm
YWNlIGhhcyBubyBwcm9wZXIgYm9keSIpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIG5hbWVzcGFj
ZShpc1BhcnRpYWwpIHsKLSAgICAgIGlmICghY29uc3VtZSgibmFtZXNwYWNlIikpIHJldHVybjsK
LSAgICAgIGNvbnN0IG5hbWUgPSBjb25zdW1lKElEKSB8fCBlcnJvcigiTm8gbmFtZSBmb3IgbmFt
ZXNwYWNlIik7Ci0gICAgICBjb25zdCBtZW1zID0gW107Ci0gICAgICBjb25zdCByZXQgPSBjdXJy
ZW50ID0gewotICAgICAgICB0eXBlOiAibmFtZXNwYWNlIiwKLSAgICAgICAgbmFtZTogaXNQYXJ0
aWFsID8gbmFtZS52YWx1ZSA6IHNhbml0aXplX25hbWUobmFtZS52YWx1ZSwgIm5hbWVzcGFjZSIp
LAotICAgICAgICBwYXJ0aWFsOiBpc1BhcnRpYWwsCi0gICAgICAgIG1lbWJlcnM6IG1lbXMKLSAg
ICAgIH07Ci0gICAgICBjb25zdW1lKCJ7IikgfHwgZXJyb3IoIkJvZHlsZXNzIG5hbWVzcGFjZSIp
OwotICAgICAgd2hpbGUgKHRydWUpIHsKLSAgICAgICAgaWYgKGNvbnN1bWUoIn0iKSkgewotICAg
ICAgICAgIGNvbnN1bWUoIjsiKSB8fCBlcnJvcigiTWlzc2luZyBzZW1pY29sb24gYWZ0ZXIgbmFt
ZXNwYWNlIik7Ci0gICAgICAgICAgcmV0dXJuIHJldDsKLSAgICAgICAgfQotICAgICAgICBjb25z
dCBlYSA9IGV4dGVuZGVkX2F0dHJzKCk7Ci0gICAgICAgIGNvbnN0IG1lbSA9IGF0dHJpYnV0ZSh7
IG5vSW5oZXJpdDogdHJ1ZSwgcmVhZG9ubHk6IHRydWUgfSkgfHwKLSAgICAgICAgICBvcGVyYXRp
b24oeyByZWd1bGFyOiB0cnVlIH0pIHx8Ci0gICAgICAgICAgZXJyb3IoIlVua25vd24gbWVtYmVy
Iik7Ci0gICAgICAgIG1lbS5leHRBdHRycyA9IGVhOwotICAgICAgICByZXQubWVtYmVycy5wdXNo
KG1lbSk7Ci0gICAgICB9Ci0gICAgfQorLyoqKi8gfSksCisvKiA3ICovCisvKioqLyAoZnVuY3Rp
b24obW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CiAK
LSAgICBmdW5jdGlvbiBwYXJ0aWFsKCkgewotICAgICAgaWYgKCFjb25zdW1lKCJwYXJ0aWFsIikp
IHJldHVybjsKLSAgICAgIGNvbnN0IHRoaW5nID0gZGljdGlvbmFyeSh0cnVlKSB8fAotICAgICAg
ICBpbnRlcmZhY2VfKHRydWUpIHx8Ci0gICAgICAgIG5hbWVzcGFjZSh0cnVlKSB8fAotICAgICAg
ICBlcnJvcigiUGFydGlhbCBkb2Vzbid0IGFwcGx5IHRvIGFueXRoaW5nIik7Ci0gICAgICByZXR1
cm4gdGhpbmc7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gZGljdGlvbmFyeShpc1BhcnRpYWwpIHsK
LSAgICAgIGlmICghY29uc3VtZSgiZGljdGlvbmFyeSIpKSByZXR1cm47Ci0gICAgICBjb25zdCBu
YW1lID0gY29uc3VtZShJRCkgfHwgZXJyb3IoIk5vIG5hbWUgZm9yIGRpY3Rpb25hcnkiKTsKLSAg
ICAgIGNvbnN0IG1lbXMgPSBbXTsKLSAgICAgIGNvbnN0IHJldCA9IGN1cnJlbnQgPSB7Ci0gICAg
ICAgIHR5cGU6ICJkaWN0aW9uYXJ5IiwKLSAgICAgICAgbmFtZTogaXNQYXJ0aWFsID8gbmFtZS52
YWx1ZSA6IHNhbml0aXplX25hbWUobmFtZS52YWx1ZSwgImRpY3Rpb25hcnkiKSwKLSAgICAgICAg
cGFydGlhbDogaXNQYXJ0aWFsLAotICAgICAgICBtZW1iZXJzOiBtZW1zCi0gICAgICB9OwotICAg
ICAgaWYgKCFpc1BhcnRpYWwpIHJldC5pbmhlcml0YW5jZSA9IGluaGVyaXRhbmNlKCkgfHwgbnVs
bDsKLSAgICAgIGNvbnN1bWUoInsiKSB8fCBlcnJvcigiQm9keWxlc3MgZGljdGlvbmFyeSIpOwot
ICAgICAgd2hpbGUgKHRydWUpIHsKLSAgICAgICAgaWYgKGNvbnN1bWUoIn0iKSkgewotICAgICAg
ICAgIGNvbnN1bWUoIjsiKSB8fCBlcnJvcigiTWlzc2luZyBzZW1pY29sb24gYWZ0ZXIgZGljdGlv
bmFyeSIpOwotICAgICAgICAgIHJldHVybiByZXQ7Ci0gICAgICAgIH0KLSAgICAgICAgY29uc3Qg
ZWEgPSBleHRlbmRlZF9hdHRycygpOwotICAgICAgICBjb25zdCByZXF1aXJlZCA9IGNvbnN1bWUo
InJlcXVpcmVkIik7Ci0gICAgICAgIGNvbnN0IHR5cCA9IHR5cGVfd2l0aF9leHRlbmRlZF9hdHRy
aWJ1dGVzKCJkaWN0aW9uYXJ5LXR5cGUiKSB8fCBlcnJvcigiTm8gdHlwZSBmb3IgZGljdGlvbmFy
eSBtZW1iZXIiKTsKLSAgICAgICAgY29uc3QgbmFtZSA9IGNvbnN1bWUoSUQpIHx8IGVycm9yKCJO
byBuYW1lIGZvciBkaWN0aW9uYXJ5IG1lbWJlciIpOwotICAgICAgICBjb25zdCBkZmx0ID0gZGVm
YXVsdF8oKSB8fCBudWxsOwotICAgICAgICBpZiAocmVxdWlyZWQgJiYgZGZsdCkgZXJyb3IoIlJl
cXVpcmVkIG1lbWJlciBtdXN0IG5vdCBoYXZlIGEgZGVmYXVsdCIpOwotICAgICAgICBjb25zdCBt
ZW1iZXIgPSB7Ci0gICAgICAgICAgdHlwZTogImZpZWxkIiwKLSAgICAgICAgICBuYW1lOiB1bmVz
Y2FwZShuYW1lLnZhbHVlKSwKLSAgICAgICAgICBlc2NhcGVkTmFtZTogbmFtZS52YWx1ZSwKLSAg
ICAgICAgICByZXF1aXJlZDogISFyZXF1aXJlZCwKLSAgICAgICAgICBpZGxUeXBlOiB0eXAsCi0g
ICAgICAgICAgZXh0QXR0cnM6IGVhLAotICAgICAgICAgIGRlZmF1bHQ6IGRmbHQKLSAgICAgICAg
fTsKLSAgICAgICAgcmV0Lm1lbWJlcnMucHVzaChtZW1iZXIpOwotICAgICAgICBjb25zdW1lKCI7
IikgfHwgZXJyb3IoIlVudGVybWluYXRlZCBkaWN0aW9uYXJ5IG1lbWJlciIpOworInVzZSBzdHJp
Y3QiOworX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pOworLyogaGFy
bW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tf
ZXhwb3J0c19fLCAiaWRsVHlwZUluY2x1ZGVzRGljdGlvbmFyeSIsIGZ1bmN0aW9uKCkgeyByZXR1
cm4gaWRsVHlwZUluY2x1ZGVzRGljdGlvbmFyeTsgfSk7CisvKioKKyAqIEBwYXJhbSB7Kn0gaWRs
VHlwZQorICogQHBhcmFtIHsqW119IGRlZnMKKyAqIEBwYXJhbSB7b2JqZWN0fSBbb3B0aW9uc10K
KyAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMudXNlTnVsbGFibGVJbm5lcl0gdXNlIHdoZW4g
dGhlIGlucHV0IGlkbFR5cGUgaXMgbnVsbGFibGUgYW5kIHlvdSB3YW50IHRvIHVzZSBpdHMgaW5u
ZXIgdHlwZQorICogQHJldHVybiB0aGUgdHlwZSByZWZlcmVuY2UgdGhhdCB1bHRpbWF0ZWx5IGlu
Y2x1ZGVzIGRpY3Rpb25hcnkuCisgKi8KK2Z1bmN0aW9uIGlkbFR5cGVJbmNsdWRlc0RpY3Rpb25h
cnkoaWRsVHlwZSwgZGVmcywgeyB1c2VOdWxsYWJsZUlubmVyIH0gPSB7fSkgeworICBpZiAoIWlk
bFR5cGUudW5pb24pIHsKKyAgICBjb25zdCBkZWYgPSBkZWZzLnVuaXF1ZS5nZXQoaWRsVHlwZS5p
ZGxUeXBlKTsKKyAgICBpZiAoIWRlZikgeworICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAo
ZGVmLnR5cGUgPT09ICJ0eXBlZGVmIikgeworICAgICAgY29uc3QgeyB0eXBlZGVmSW5jbHVkZXNE
aWN0aW9uYXJ5fSA9IGRlZnMuY2FjaGU7CisgICAgICBpZiAodHlwZWRlZkluY2x1ZGVzRGljdGlv
bmFyeS5oYXMoZGVmKSkgeworICAgICAgICAvLyBOb3RlIHRoYXQgdGhpcyBhbHNvIGhhbHRzIHdo
ZW4gaXQgbWV0IGluZGV0ZXJtaW5hdGUgc3RhdGUKKyAgICAgICAgLy8gdG8gcHJldmVudCBpbmZp
bml0ZSByZWN1cnNpb24KKyAgICAgICAgcmV0dXJuIHR5cGVkZWZJbmNsdWRlc0RpY3Rpb25hcnku
Z2V0KGRlZik7CisgICAgICB9CisgICAgICBkZWZzLmNhY2hlLnR5cGVkZWZJbmNsdWRlc0RpY3Rp
b25hcnkuc2V0KGRlZiwgdW5kZWZpbmVkKTsgLy8gaW5kZXRlcm1pbmF0ZSBzdGF0ZQorICAgICAg
Y29uc3QgcmVzdWx0ID0gaWRsVHlwZUluY2x1ZGVzRGljdGlvbmFyeShkZWYuaWRsVHlwZSwgZGVm
cyk7CisgICAgICBkZWZzLmNhY2hlLnR5cGVkZWZJbmNsdWRlc0RpY3Rpb25hcnkuc2V0KGRlZiwg
cmVzdWx0KTsKKyAgICAgIGlmIChyZXN1bHQpIHsKKyAgICAgICAgcmV0dXJuIGlkbFR5cGU7CiAg
ICAgICB9CiAgICAgfQotCi0gICAgZnVuY3Rpb24gZW51bV8oKSB7Ci0gICAgICBpZiAoIWNvbnN1
bWUoImVudW0iKSkgcmV0dXJuOwotICAgICAgY29uc3QgbmFtZSA9IGNvbnN1bWUoSUQpIHx8IGVy
cm9yKCJObyBuYW1lIGZvciBlbnVtIik7Ci0gICAgICBjb25zdCB2YWxzID0gW107Ci0gICAgICBj
b25zdCByZXQgPSBjdXJyZW50ID0gewotICAgICAgICB0eXBlOiAiZW51bSIsCi0gICAgICAgIG5h
bWU6IHNhbml0aXplX25hbWUobmFtZS52YWx1ZSwgImVudW0iKSwKLSAgICAgICAgdmFsdWVzOiB2
YWxzCi0gICAgICB9OwotICAgICAgY29uc3VtZSgieyIpIHx8IGVycm9yKCJObyBjdXJseSBmb3Ig
ZW51bSIpOwotICAgICAgbGV0IHZhbHVlX2V4cGVjdGVkID0gdHJ1ZTsKLSAgICAgIHdoaWxlICh0
cnVlKSB7Ci0gICAgICAgIGlmIChjb25zdW1lKCJ9IikpIHsKLSAgICAgICAgICBpZiAoIXJldC52
YWx1ZXMubGVuZ3RoKSBlcnJvcigiTm8gdmFsdWUgaW4gZW51bSIpOwotICAgICAgICAgIGNvbnN1
bWUoIjsiKSB8fCBlcnJvcigiTm8gc2VtaWNvbG9uIGFmdGVyIGVudW0iKTsKLSAgICAgICAgICBy
ZXR1cm4gcmV0OwotICAgICAgICB9Ci0gICAgICAgIGVsc2UgaWYgKCF2YWx1ZV9leHBlY3RlZCkg
ewotICAgICAgICAgIGVycm9yKCJObyBjb21tYSBiZXR3ZWVuIGVudW0gdmFsdWVzIik7Ci0gICAg
ICAgIH0KLSAgICAgICAgY29uc3QgdmFsID0gY29uc3VtZShTVFIpIHx8IGVycm9yKCJVbmV4cGVj
dGVkIHZhbHVlIGluIGVudW0iKTsKLSAgICAgICAgdmFsLnZhbHVlID0gdmFsLnZhbHVlLnNsaWNl
KDEsIC0xKTsKLSAgICAgICAgLy8gTm8gdHJpdmlhIGV4cG9zdXJlIHlldAotICAgICAgICB2YWwu
dHJpdmlhID0gdW5kZWZpbmVkOwotICAgICAgICByZXQudmFsdWVzLnB1c2godmFsKTsKLSAgICAg
ICAgdmFsdWVfZXhwZWN0ZWQgPSAhIWNvbnN1bWUoIiwiKTsKKyAgICBpZiAoZGVmLnR5cGUgPT09
ICJkaWN0aW9uYXJ5IiAmJiAodXNlTnVsbGFibGVJbm5lciB8fCAhaWRsVHlwZS5udWxsYWJsZSkp
IHsKKyAgICAgIHJldHVybiBpZGxUeXBlOworICAgIH0KKyAgfQorICBmb3IgKGNvbnN0IHN1YnR5
cGUgb2YgaWRsVHlwZS5zdWJ0eXBlKSB7CisgICAgY29uc3QgcmVzdWx0ID0gaWRsVHlwZUluY2x1
ZGVzRGljdGlvbmFyeShzdWJ0eXBlLCBkZWZzKTsKKyAgICBpZiAocmVzdWx0KSB7CisgICAgICBp
ZiAoc3VidHlwZS51bmlvbikgeworICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAgfQorICAg
ICAgcmV0dXJuIHN1YnR5cGU7CiAgICAgfQorICB9Cit9CiAKLSAgICBmdW5jdGlvbiB0eXBlZGVm
KCkgewotICAgICAgaWYgKCFjb25zdW1lKCJ0eXBlZGVmIikpIHJldHVybjsKLSAgICAgIGNvbnN0
IHJldCA9IHsKLSAgICAgICAgdHlwZTogInR5cGVkZWYiCi0gICAgICB9OwotICAgICAgcmV0Lmlk
bFR5cGUgPSB0eXBlX3dpdGhfZXh0ZW5kZWRfYXR0cmlidXRlcygidHlwZWRlZi10eXBlIikgfHwg
ZXJyb3IoIk5vIHR5cGUgaW4gdHlwZWRlZiIpOwotICAgICAgY29uc3QgbmFtZSA9IGNvbnN1bWUo
SUQpIHx8IGVycm9yKCJObyBuYW1lIGluIHR5cGVkZWYiKTsKLSAgICAgIHJldC5uYW1lID0gc2Fu
aXRpemVfbmFtZShuYW1lLnZhbHVlLCAidHlwZWRlZiIpOwotICAgICAgY3VycmVudCA9IHJldDsK
LSAgICAgIGNvbnN1bWUoIjsiKSB8fCBlcnJvcigiVW50ZXJtaW5hdGVkIHR5cGVkZWYiKTsKLSAg
ICAgIHJldHVybiByZXQ7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gaW1wbGVtZW50c18oKSB7Ci0g
ICAgICBjb25zdCBzdGFydF9wb3NpdGlvbiA9IGNvbnN1bWVfcG9zaXRpb247Ci0gICAgICBjb25z
dCB0YXJnZXQgPSBjb25zdW1lKElEKTsKLSAgICAgIGlmICghdGFyZ2V0KSByZXR1cm47Ci0gICAg
ICBpZiAoY29uc3VtZSgiaW1wbGVtZW50cyIpKSB7Ci0gICAgICAgIGNvbnN0IHJldCA9IHsKLSAg
ICAgICAgICB0eXBlOiAiaW1wbGVtZW50cyIsCi0gICAgICAgICAgdGFyZ2V0OiB0YXJnZXQudmFs
dWUKLSAgICAgICAgfTsKLSAgICAgICAgY29uc3QgaW1wID0gY29uc3VtZShJRCkgfHwgZXJyb3Io
IkluY29tcGxldGUgaW1wbGVtZW50cyBzdGF0ZW1lbnQiKTsKLSAgICAgICAgcmV0LmltcGxlbWVu
dHMgPSBpbXAudmFsdWU7Ci0gICAgICAgIGNvbnN1bWUoIjsiKSB8fCBlcnJvcigiTm8gdGVybWlu
YXRpbmcgOyBmb3IgaW1wbGVtZW50cyBzdGF0ZW1lbnQiKTsKLSAgICAgICAgcmV0dXJuIHJldDsK
LSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIC8vIHJvbGxiYWNrCi0gICAgICAgIHVuY29uc3VtZShz
dGFydF9wb3NpdGlvbik7Ci0gICAgICB9CisKKy8qKiovIH0pLAorLyogOCAqLworLyoqKi8gKGZ1
bmN0aW9uKG1vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykg
eworCisidXNlIHN0cmljdCI7CitfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9y
dHNfXyk7CisvKiBoYXJtb255IGV4cG9ydCAoYmluZGluZykgKi8gX193ZWJwYWNrX3JlcXVpcmVf
Xy5kKF9fd2VicGFja19leHBvcnRzX18sICJBcmd1bWVudCIsIGZ1bmN0aW9uKCkgeyByZXR1cm4g
QXJndW1lbnQ7IH0pOworLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9iYXNlX2pzX19XRUJQQUNL
X0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDYpOworLyogaGFybW9u
eSBpbXBvcnQgKi8gdmFyIF9kZWZhdWx0X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18g
PSBfX3dlYnBhY2tfcmVxdWlyZV9fKDkpOworLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9leHRl
bmRlZF9hdHRyaWJ1dGVzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18gPSBfX3dlYnBh
Y2tfcmVxdWlyZV9fKDEwKTsKKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfaGVscGVyc19qc19f
V0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg0KTsKKy8q
IGhhcm1vbnkgaW1wb3J0ICovIHZhciBfdG9rZW5pc2VyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01P
RFVMRV80X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDIpOworLyogaGFybW9ueSBpbXBvcnQgKi8g
dmFyIF9lcnJvcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fID0gX193ZWJwYWNrX3Jl
cXVpcmVfXygzKTsKKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfdmFsaWRhdG9yc19oZWxwZXJz
X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDcp
OworCisKKworCisKKworCisKK2NsYXNzIEFyZ3VtZW50IGV4dGVuZHMgX2Jhc2VfanNfX1dFQlBB
Q0tfSU1QT1JURURfTU9EVUxFXzBfX1siQmFzZSJdIHsKKyAgLyoqCisgICAqIEBwYXJhbSB7aW1w
b3J0KCIuLi90b2tlbmlzZXIiKS5Ub2tlbmlzZXJ9IHRva2VuaXNlcgorICAgKi8KKyAgc3RhdGlj
IHBhcnNlKHRva2VuaXNlcikgeworICAgIGNvbnN0IHN0YXJ0X3Bvc2l0aW9uID0gdG9rZW5pc2Vy
LnBvc2l0aW9uOworICAgIGNvbnN0IHRva2VucyA9IHt9OworICAgIGNvbnN0IHJldCA9IG5ldyBB
cmd1bWVudCh7IHNvdXJjZTogdG9rZW5pc2VyLnNvdXJjZSwgdG9rZW5zIH0pOworICAgIHJldC5l
eHRBdHRycyA9IF9leHRlbmRlZF9hdHRyaWJ1dGVzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVM
RV8yX19bIkV4dGVuZGVkQXR0cmlidXRlcyJdLnBhcnNlKHRva2VuaXNlcik7CisgICAgdG9rZW5z
Lm9wdGlvbmFsID0gdG9rZW5pc2VyLmNvbnN1bWUoIm9wdGlvbmFsIik7CisgICAgcmV0LmlkbFR5
cGUgPSBPYmplY3QoX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfX1sidHlw
ZV93aXRoX2V4dGVuZGVkX2F0dHJpYnV0ZXMiXSkodG9rZW5pc2VyLCAiYXJndW1lbnQtdHlwZSIp
OworICAgIGlmICghcmV0LmlkbFR5cGUpIHsKKyAgICAgIHJldHVybiB0b2tlbmlzZXIudW5jb25z
dW1lKHN0YXJ0X3Bvc2l0aW9uKTsKICAgICB9CisgICAgaWYgKCF0b2tlbnMub3B0aW9uYWwpIHsK
KyAgICAgIHRva2Vucy52YXJpYWRpYyA9IHRva2VuaXNlci5jb25zdW1lKCIuLi4iKTsKKyAgICB9
CisgICAgdG9rZW5zLm5hbWUgPSB0b2tlbmlzZXIuY29uc3VtZSgiaWRlbnRpZmllciIsIC4uLl90
b2tlbmlzZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfX1siYXJndW1lbnROYW1lS2V5
d29yZHMiXSk7CisgICAgaWYgKCF0b2tlbnMubmFtZSkgeworICAgICAgcmV0dXJuIHRva2VuaXNl
ci51bmNvbnN1bWUoc3RhcnRfcG9zaXRpb24pOworICAgIH0KKyAgICByZXQuZGVmYXVsdCA9IHRv
a2Vucy5vcHRpb25hbCA/IF9kZWZhdWx0X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19b
IkRlZmF1bHQiXS5wYXJzZSh0b2tlbmlzZXIpIDogbnVsbDsKKyAgICByZXR1cm4gcmV0OworICB9
CiAKLSAgICBmdW5jdGlvbiBpbmNsdWRlcygpIHsKLSAgICAgIGNvbnN0IHN0YXJ0X3Bvc2l0aW9u
ID0gY29uc3VtZV9wb3NpdGlvbjsKLSAgICAgIGNvbnN0IHRhcmdldCA9IGNvbnN1bWUoSUQpOwot
ICAgICAgaWYgKCF0YXJnZXQpIHJldHVybjsKLSAgICAgIGlmIChjb25zdW1lKCJpbmNsdWRlcyIp
KSB7Ci0gICAgICAgIGNvbnN0IHJldCA9IHsKLSAgICAgICAgICB0eXBlOiAiaW5jbHVkZXMiLAot
ICAgICAgICAgIHRhcmdldDogdGFyZ2V0LnZhbHVlCi0gICAgICAgIH07Ci0gICAgICAgIGNvbnN0
IGltcCA9IGNvbnN1bWUoSUQpIHx8IGVycm9yKCJJbmNvbXBsZXRlIGluY2x1ZGVzIHN0YXRlbWVu
dCIpOwotICAgICAgICByZXQuaW5jbHVkZXMgPSBpbXAudmFsdWU7Ci0gICAgICAgIGNvbnN1bWUo
IjsiKSB8fCBlcnJvcigiTm8gdGVybWluYXRpbmcgOyBmb3IgaW5jbHVkZXMgc3RhdGVtZW50Iik7
Ci0gICAgICAgIHJldHVybiByZXQ7Ci0gICAgICB9IGVsc2UgewotICAgICAgICAvLyByb2xsYmFj
awotICAgICAgICB1bmNvbnN1bWUoc3RhcnRfcG9zaXRpb24pOworICBnZXQgdHlwZSgpIHsKKyAg
ICByZXR1cm4gImFyZ3VtZW50IjsKKyAgfQorICBnZXQgb3B0aW9uYWwoKSB7CisgICAgcmV0dXJu
ICEhdGhpcy50b2tlbnMub3B0aW9uYWw7CisgIH0KKyAgZ2V0IHZhcmlhZGljKCkgeworICAgIHJl
dHVybiAhIXRoaXMudG9rZW5zLnZhcmlhZGljOworICB9CisgIGdldCBuYW1lKCkgeworICAgIHJl
dHVybiBPYmplY3QoX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfX1sidW5l
c2NhcGUiXSkodGhpcy50b2tlbnMubmFtZS52YWx1ZSk7CisgIH0KKworICAqdmFsaWRhdGUoZGVm
cykgeworICAgIHlpZWxkKiB0aGlzLmlkbFR5cGUudmFsaWRhdGUoZGVmcyk7CisgICAgaWYgKE9i
amVjdChfdmFsaWRhdG9yc19oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X19b
ImlkbFR5cGVJbmNsdWRlc0RpY3Rpb25hcnkiXSkodGhpcy5pZGxUeXBlLCBkZWZzLCB7IHVzZU51
bGxhYmxlSW5uZXI6IHRydWUgfSkpIHsKKyAgICAgIGlmICh0aGlzLmlkbFR5cGUubnVsbGFibGUp
IHsKKyAgICAgICAgY29uc3QgbWVzc2FnZSA9IGBEaWN0aW9uYXJ5IGFyZ3VtZW50cyBjYW5ub3Qg
YmUgbnVsbGFibGUuYDsKKyAgICAgICAgeWllbGQgT2JqZWN0KF9lcnJvcl9qc19fV0VCUEFDS19J
TVBPUlRFRF9NT0RVTEVfNV9fWyJ2YWxpZGF0aW9uRXJyb3IiXSkodGhpcy5zb3VyY2UsIHRoaXMu
dG9rZW5zLm5hbWUsIHRoaXMsIG1lc3NhZ2UpOworICAgICAgfSBlbHNlIGlmICh0aGlzLm9wdGlv
bmFsICYmICF0aGlzLmRlZmF1bHQpIHsKKyAgICAgICAgY29uc3QgbWVzc2FnZSA9IGBPcHRpb25h
bCBkaWN0aW9uYXJ5IGFyZ3VtZW50cyBtdXN0IGhhdmUgYSBkZWZhdWx0IHZhbHVlIG9mIFxge31c
YC5gOworICAgICAgICB5aWVsZCBPYmplY3QoX2Vycm9yX2pzX19XRUJQQUNLX0lNUE9SVEVEX01P
RFVMRV81X19bInZhbGlkYXRpb25FcnJvciJdKSh0aGlzLnNvdXJjZSwgdGhpcy50b2tlbnMubmFt
ZSwgdGhpcywgbWVzc2FnZSwgeworICAgICAgICAgIGF1dG9maXg6IGF1dG9maXhPcHRpb25hbERp
Y3Rpb25hcnlEZWZhdWx0VmFsdWUodGhpcykKKyAgICAgICAgfSk7CiAgICAgICB9CiAgICAgfQor
ICB9Cit9CisKKy8qKgorICogQHBhcmFtIHtBcmd1bWVudH0gYXJnCisgKi8KK2Z1bmN0aW9uIGF1
dG9maXhPcHRpb25hbERpY3Rpb25hcnlEZWZhdWx0VmFsdWUoYXJnKSB7CisgIHJldHVybiAoKSA9
PiB7CisgICAgYXJnLmRlZmF1bHQgPSBfZGVmYXVsdF9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RV
TEVfMV9fWyJEZWZhdWx0Il0ucGFyc2UobmV3IF90b2tlbmlzZXJfanNfX1dFQlBBQ0tfSU1QT1JU
RURfTU9EVUxFXzRfX1siVG9rZW5pc2VyIl0oIiA9IHt9IikpOworICB9OworfQorCisKKy8qKiov
IH0pLAorLyogOSAqLworLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNf
XywgX193ZWJwYWNrX3JlcXVpcmVfXykgeworCisidXNlIHN0cmljdCI7CitfX3dlYnBhY2tfcmVx
dWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7CisvKiBoYXJtb255IGV4cG9ydCAoYmluZGlu
ZykgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sICJEZWZhdWx0
IiwgZnVuY3Rpb24oKSB7IHJldHVybiBEZWZhdWx0OyB9KTsKKy8qIGhhcm1vbnkgaW1wb3J0ICov
IHZhciBfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3Jl
cXVpcmVfXyg2KTsKKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfaGVscGVyc19qc19fV0VCUEFD
S19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg0KTsKIAotICAgIGZ1
bmN0aW9uIGRlZmluaXRpb24oKSB7Ci0gICAgICByZXR1cm4gY2FsbGJhY2soKSB8fAotICAgICAg
ICBpbnRlcmZhY2VfKGZhbHNlKSB8fAotICAgICAgICBwYXJ0aWFsKCkgfHwKLSAgICAgICAgZGlj
dGlvbmFyeShmYWxzZSkgfHwKLSAgICAgICAgZW51bV8oKSB8fAotICAgICAgICB0eXBlZGVmKCkg
fHwKLSAgICAgICAgaW1wbGVtZW50c18oKSB8fAotICAgICAgICBpbmNsdWRlcygpIHx8Ci0gICAg
ICAgIG5hbWVzcGFjZShmYWxzZSk7CisKKworY2xhc3MgRGVmYXVsdCBleHRlbmRzIF9iYXNlX2pz
X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIkJhc2UiXSB7CisgIC8qKgorICAgKiBAcGFy
YW0ge2ltcG9ydCgiLi4vdG9rZW5pc2VyIikuVG9rZW5pc2VyfSB0b2tlbmlzZXIKKyAgICovCisg
IHN0YXRpYyBwYXJzZSh0b2tlbmlzZXIpIHsKKyAgICBjb25zdCBhc3NpZ24gPSB0b2tlbmlzZXIu
Y29uc3VtZSgiPSIpOworICAgIGlmICghYXNzaWduKSB7CisgICAgICByZXR1cm4gbnVsbDsKICAg
ICB9CisgICAgY29uc3QgZGVmID0gT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVE
X01PRFVMRV8xX19bImNvbnN0X3ZhbHVlIl0pKHRva2VuaXNlcikgfHwgdG9rZW5pc2VyLmNvbnN1
bWUoInN0cmluZyIsICJudWxsIiwgIlsiLCAieyIpIHx8IHRva2VuaXNlci5lcnJvcigiTm8gdmFs
dWUgZm9yIGRlZmF1bHQiKTsKKyAgICBjb25zdCBleHByZXNzaW9uID0gW2RlZl07CisgICAgaWYg
KGRlZi50eXBlID09PSAiWyIpIHsKKyAgICAgIGNvbnN0IGNsb3NlID0gdG9rZW5pc2VyLmNvbnN1
bWUoIl0iKSB8fCB0b2tlbmlzZXIuZXJyb3IoIkRlZmF1bHQgc2VxdWVuY2UgdmFsdWUgbXVzdCBi
ZSBlbXB0eSIpOworICAgICAgZXhwcmVzc2lvbi5wdXNoKGNsb3NlKTsKKyAgICB9IGVsc2UgaWYg
KGRlZi50eXBlID09PSAieyIpIHsKKyAgICAgIGNvbnN0IGNsb3NlID0gdG9rZW5pc2VyLmNvbnN1
bWUoIn0iKSB8fCB0b2tlbmlzZXIuZXJyb3IoIkRlZmF1bHQgZGljdGlvbmFyeSB2YWx1ZSBtdXN0
IGJlIGVtcHR5Iik7CisgICAgICBleHByZXNzaW9uLnB1c2goY2xvc2UpOworICAgIH0KKyAgICBy
ZXR1cm4gbmV3IERlZmF1bHQoeyBzb3VyY2U6IHRva2VuaXNlci5zb3VyY2UsIHRva2VuczogeyBh
c3NpZ24gfSwgZXhwcmVzc2lvbiB9KTsKKyAgfQogCi0gICAgZnVuY3Rpb24gZGVmaW5pdGlvbnMo
KSB7Ci0gICAgICBpZiAoIXRva2Vucy5sZW5ndGgpIHJldHVybiBbXTsKLSAgICAgIGNvbnN0IGRl
ZnMgPSBbXTsKLSAgICAgIHdoaWxlICh0cnVlKSB7Ci0gICAgICAgIGNvbnN0IGVhID0gZXh0ZW5k
ZWRfYXR0cnMoKTsKLSAgICAgICAgY29uc3QgZGVmID0gZGVmaW5pdGlvbigpOwotICAgICAgICBp
ZiAoIWRlZikgewotICAgICAgICAgIGlmIChlYS5sZW5ndGgpIGVycm9yKCJTdHJheSBleHRlbmRl
ZCBhdHRyaWJ1dGVzIik7Ci0gICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICAgICAgZGVm
LmV4dEF0dHJzID0gZWE7Ci0gICAgICAgIGRlZnMucHVzaChkZWYpOwotICAgICAgfQotICAgICAg
cmV0dXJuIGRlZnM7CisgIGNvbnN0cnVjdG9yKHsgc291cmNlLCB0b2tlbnMsIGV4cHJlc3Npb24g
fSkgeworICAgIHN1cGVyKHsgc291cmNlLCB0b2tlbnMgfSk7CisgICAgT2JqZWN0LmRlZmluZVBy
b3BlcnR5KHRoaXMsICJleHByZXNzaW9uIiwgeyB2YWx1ZTogZXhwcmVzc2lvbiB9KTsKKyAgfQor
CisgIGdldCB0eXBlKCkgeworICAgIHJldHVybiBPYmplY3QoX2hlbHBlcnNfanNfX1dFQlBBQ0tf
SU1QT1JURURfTU9EVUxFXzFfX1siY29uc3RfZGF0YSJdKSh0aGlzLmV4cHJlc3Npb25bMF0pLnR5
cGU7CisgIH0KKyAgZ2V0IHZhbHVlKCkgeworICAgIHJldHVybiBPYmplY3QoX2hlbHBlcnNfanNf
X1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX1siY29uc3RfZGF0YSJdKSh0aGlzLmV4cHJlc3Np
b25bMF0pLnZhbHVlOworICB9CisgIGdldCBuZWdhdGl2ZSgpIHsKKyAgICByZXR1cm4gT2JqZWN0
KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19bImNvbnN0X2RhdGEiXSko
dGhpcy5leHByZXNzaW9uWzBdKS5uZWdhdGl2ZTsKKyAgfQorfQorCisKKy8qKiovIH0pLAorLyog
MTAgKi8KKy8qKiovIChmdW5jdGlvbihtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2Vi
cGFja19yZXF1aXJlX18pIHsKKworInVzZSBzdHJpY3QiOworX193ZWJwYWNrX3JlcXVpcmVfXy5y
KF9fd2VicGFja19leHBvcnRzX18pOworLyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9f
d2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAiU2ltcGxlRXh0ZW5kZWRB
dHRyaWJ1dGUiLCBmdW5jdGlvbigpIHsgcmV0dXJuIFNpbXBsZUV4dGVuZGVkQXR0cmlidXRlOyB9
KTsKKy8qIGhhcm1vbnkgZXhwb3J0IChiaW5kaW5nKSAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQo
X193ZWJwYWNrX2V4cG9ydHNfXywgIkV4dGVuZGVkQXR0cmlidXRlcyIsIGZ1bmN0aW9uKCkgeyBy
ZXR1cm4gRXh0ZW5kZWRBdHRyaWJ1dGVzOyB9KTsKKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBf
YmFzZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVf
Xyg2KTsKKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfYXJyYXlfYmFzZV9qc19fV0VCUEFDS19J
TVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygxMSk7CisvKiBoYXJtb255
IGltcG9ydCAqLyB2YXIgX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXyA9
IF9fd2VicGFja19yZXF1aXJlX18oNCk7CisvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2Vycm9y
X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDMp
OworCisKKworCisKK2NsYXNzIEV4dGVuZGVkQXR0cmlidXRlUGFyYW1ldGVycyBleHRlbmRzIF9i
YXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIkJhc2UiXSB7CisgIC8qKgorICAg
KiBAcGFyYW0ge2ltcG9ydCgiLi4vdG9rZW5pc2VyIikuVG9rZW5pc2VyfSB0b2tlbmlzZXIKKyAg
ICovCisgIHN0YXRpYyBwYXJzZSh0b2tlbmlzZXIpIHsKKyAgICBjb25zdCB0b2tlbnMgPSB7IGFz
c2lnbjogdG9rZW5pc2VyLmNvbnN1bWUoIj0iKSB9OworICAgIGNvbnN0IHJldCA9IG5ldyBFeHRl
bmRlZEF0dHJpYnV0ZVBhcmFtZXRlcnMoeyBzb3VyY2U6IHRva2VuaXNlci5zb3VyY2UsIHRva2Vu
cyB9KTsKKyAgICBpZiAodG9rZW5zLmFzc2lnbikgeworICAgICAgdG9rZW5zLnNlY29uZGFyeU5h
bWUgPSB0b2tlbmlzZXIuY29uc3VtZSgiaWRlbnRpZmllciIsICJkZWNpbWFsIiwgImludGVnZXIi
LCAic3RyaW5nIik7CisgICAgfQorICAgIHRva2Vucy5vcGVuID0gdG9rZW5pc2VyLmNvbnN1bWUo
IigiKTsKKyAgICBpZiAodG9rZW5zLm9wZW4pIHsKKyAgICAgIHJldC5saXN0ID0gcmV0LnJoc1R5
cGUgPT09ICJpZGVudGlmaWVyLWxpc3QiID8KKyAgICAgICAgLy8gW0V4cG9zZWQ9KFdpbmRvdyxX
b3JrZXIpXQorICAgICAgICBPYmplY3QoX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9E
VUxFXzJfX1siaWRlbnRpZmllcnMiXSkodG9rZW5pc2VyKSA6CisgICAgICAgIC8vIFtOYW1lZENv
bnN0cnVjdG9yPUF1ZGlvKERPTVN0cmluZyBzcmMpXSBvciBbQ29uc3RydWN0b3IoRE9NU3RyaW5n
IHN0cildCisgICAgICAgIE9iamVjdChfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RV
TEVfMl9fWyJhcmd1bWVudF9saXN0Il0pKHRva2VuaXNlcik7CisgICAgICB0b2tlbnMuY2xvc2Ug
PSB0b2tlbmlzZXIuY29uc3VtZSgiKSIpIHx8IHRva2VuaXNlci5lcnJvcigiVW5leHBlY3RlZCB0
b2tlbiBpbiBleHRlbmRlZCBhdHRyaWJ1dGUgYXJndW1lbnQgbGlzdCIpOworICAgIH0gZWxzZSBp
ZiAocmV0Lmhhc1JocyAmJiAhdG9rZW5zLnNlY29uZGFyeU5hbWUpIHsKKyAgICAgIHRva2VuaXNl
ci5lcnJvcigiTm8gcmlnaHQgaGFuZCBzaWRlIHRvIGV4dGVuZGVkIGF0dHJpYnV0ZSBhc3NpZ25t
ZW50Iik7CiAgICAgfQotICAgIGNvbnN0IHJlcyA9IGRlZmluaXRpb25zKCk7Ci0gICAgaWYgKGNv
bnN1bWVfcG9zaXRpb24gPCB0b2tlbnMubGVuZ3RoKSBlcnJvcigiVW5yZWNvZ25pc2VkIHRva2Vu
cyIpOwotICAgIHJldHVybiByZXM7CisgICAgcmV0dXJuIHJldDsKICAgfQogCi0gIGNvbnN0IG9i
aiA9IHsKLSAgICBwYXJzZShzdHIpIHsKLSAgICAgIGNvbnN0IHRva2VucyA9IHRva2VuaXNlKHN0
cik7Ci0gICAgICByZXR1cm4gcGFyc2UodG9rZW5zKTsKKyAgZ2V0IHJoc1R5cGUoKSB7CisgICAg
cmV0dXJuICF0aGlzLnRva2Vucy5hc3NpZ24gPyBudWxsIDoKKyAgICAgICF0aGlzLnRva2Vucy5z
ZWNvbmRhcnlOYW1lID8gImlkZW50aWZpZXItbGlzdCIgOgorICAgICAgICB0aGlzLnRva2Vucy5z
ZWNvbmRhcnlOYW1lLnR5cGU7CisgIH0KK30KKworY2xhc3MgU2ltcGxlRXh0ZW5kZWRBdHRyaWJ1
dGUgZXh0ZW5kcyBfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJCYXNlIl0g
eworICAvKioKKyAgICogQHBhcmFtIHtpbXBvcnQoIi4uL3Rva2VuaXNlciIpLlRva2VuaXNlcn0g
dG9rZW5pc2VyCisgICAqLworICBzdGF0aWMgcGFyc2UodG9rZW5pc2VyKSB7CisgICAgY29uc3Qg
bmFtZSA9IHRva2VuaXNlci5jb25zdW1lKCJpZGVudGlmaWVyIik7CisgICAgaWYgKG5hbWUpIHsK
KyAgICAgIHJldHVybiBuZXcgU2ltcGxlRXh0ZW5kZWRBdHRyaWJ1dGUoeworICAgICAgICBzb3Vy
Y2U6IHRva2VuaXNlci5zb3VyY2UsCisgICAgICAgIHRva2VuczogeyBuYW1lIH0sCisgICAgICAg
IHBhcmFtczogRXh0ZW5kZWRBdHRyaWJ1dGVQYXJhbWV0ZXJzLnBhcnNlKHRva2VuaXNlcikKKyAg
ICAgIH0pOwogICAgIH0KLSAgfTsKKyAgfQorCisgIGNvbnN0cnVjdG9yKHsgc291cmNlLCB0b2tl
bnMsIHBhcmFtcyB9KSB7CisgICAgc3VwZXIoeyBzb3VyY2UsIHRva2VucyB9KTsKKyAgICBPYmpl
Y3QuZGVmaW5lUHJvcGVydHkodGhpcywgInBhcmFtcyIsIHsgdmFsdWU6IHBhcmFtcyB9KTsKKyAg
fQogCi0gIGlmICh0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJyAmJiB0eXBlb2YgbW9kdWxl
LmV4cG9ydHMgIT09ICd1bmRlZmluZWQnKSB7Ci0gICAgbW9kdWxlLmV4cG9ydHMgPSBvYmo7Ci0g
IH0gZWxzZSBpZiAodHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kKSB7
Ci0gICAgZGVmaW5lKFtdLCAoKSA9PiBvYmopOwotICB9IGVsc2UgewotICAgIChzZWxmIHx8IHdp
bmRvdykuV2ViSURMMiA9IG9iajsKKyAgZ2V0IHR5cGUoKSB7CisgICAgcmV0dXJuICJleHRlbmRl
ZC1hdHRyaWJ1dGUiOworICB9CisgIGdldCBuYW1lKCkgeworICAgIHJldHVybiB0aGlzLnRva2Vu
cy5uYW1lLnZhbHVlOworICB9CisgIGdldCByaHMoKSB7CisgICAgY29uc3QgeyByaHNUeXBlOiB0
eXBlLCB0b2tlbnMsIGxpc3QgfSA9IHRoaXMucGFyYW1zOworICAgIGlmICghdHlwZSkgeworICAg
ICAgcmV0dXJuIG51bGw7CisgICAgfQorICAgIGNvbnN0IHZhbHVlID0gdHlwZSA9PT0gImlkZW50
aWZpZXItbGlzdCIgPyBsaXN0IDogdG9rZW5zLnNlY29uZGFyeU5hbWUudmFsdWU7CisgICAgcmV0
dXJuIHsgdHlwZSwgdmFsdWUgfTsKKyAgfQorICBnZXQgYXJndW1lbnRzKCkgeworICAgIGNvbnN0
IHsgcmhzVHlwZSwgbGlzdCB9ID0gdGhpcy5wYXJhbXM7CisgICAgaWYgKCFsaXN0IHx8IHJoc1R5
cGUgPT09ICJpZGVudGlmaWVyLWxpc3QiKSB7CisgICAgICByZXR1cm4gW107CisgICAgfQorICAg
IHJldHVybiBsaXN0OwogICB9Ci19KSgpOworCisgICp2YWxpZGF0ZShkZWZzKSB7CisgICAgaWYg
KHRoaXMubmFtZSA9PT0gIk5vSW50ZXJmYWNlT2JqZWN0IikgeworICAgICAgY29uc3QgbWVzc2Fn
ZSA9IGBcYFtOb0ludGVyZmFjZU9iamVjdF1cYCBleHRlbmRlZCBhdHRyaWJ1dGUgaXMgYW4gXAor
dW5kZXNpcmFibGUgZmVhdHVyZSB0aGF0IG1heSBiZSByZW1vdmVkIGZyb20gV2ViIElETCBpbiB0
aGUgZnV0dXJlLiBSZWZlciB0byB0aGUgXAorW3JlbGV2YW50IHVwc3RyZWFtIFBSXShodHRwczov
L2dpdGh1Yi5jb20vaGV5Y2FtL3dlYmlkbC9wdWxsLzYwOSkgZm9yIG1vcmUgXAoraW5mb3JtYXRp
b24uYDsKKyAgICAgIHlpZWxkIE9iamVjdChfZXJyb3JfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9E
VUxFXzNfX1sidmFsaWRhdGlvbkVycm9yIl0pKHRoaXMuc291cmNlLCB0aGlzLnRva2Vucy5uYW1l
LCB0aGlzLCBtZXNzYWdlLCB7IGxldmVsOiAid2FybmluZyIgfSk7CisgICAgfQorICAgIGZvciAo
Y29uc3QgYXJnIG9mIHRoaXMuYXJndW1lbnRzKSB7CisgICAgICB5aWVsZCogYXJnLnZhbGlkYXRl
KGRlZnMpOworICAgIH0KKyAgfQorfQorCisvLyBOb3RlOiB3ZSBwYXJzZSBzb21ldGhpbmcgc2lt
cGxlciB0aGFuIHRoZSBvZmZpY2lhbCBzeW50YXguIEl0J3MgYWxsIHRoYXQgZXZlcgorLy8gc2Vl
bXMgdG8gYmUgdXNlZAorY2xhc3MgRXh0ZW5kZWRBdHRyaWJ1dGVzIGV4dGVuZHMgX2FycmF5X2Jh
c2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX1siQXJyYXlCYXNlIl0geworICAvKioK
KyAgICogQHBhcmFtIHtpbXBvcnQoIi4uL3Rva2VuaXNlciIpLlRva2VuaXNlcn0gdG9rZW5pc2Vy
CisgICAqLworICBzdGF0aWMgcGFyc2UodG9rZW5pc2VyKSB7CisgICAgY29uc3QgdG9rZW5zID0g
e307CisgICAgdG9rZW5zLm9wZW4gPSB0b2tlbmlzZXIuY29uc3VtZSgiWyIpOworICAgIGlmICgh
dG9rZW5zLm9wZW4pIHJldHVybiBuZXcgRXh0ZW5kZWRBdHRyaWJ1dGVzKHt9KTsKKyAgICBjb25z
dCByZXQgPSBuZXcgRXh0ZW5kZWRBdHRyaWJ1dGVzKHsgc291cmNlOiB0b2tlbmlzZXIuc291cmNl
LCB0b2tlbnMgfSk7CisgICAgcmV0LnB1c2goLi4uT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNL
X0lNUE9SVEVEX01PRFVMRV8yX19bImxpc3QiXSkodG9rZW5pc2VyLCB7CisgICAgICBwYXJzZXI6
IFNpbXBsZUV4dGVuZGVkQXR0cmlidXRlLnBhcnNlLAorICAgICAgbGlzdE5hbWU6ICJleHRlbmRl
ZCBhdHRyaWJ1dGUiCisgICAgfSkpOworICAgIHRva2Vucy5jbG9zZSA9IHRva2VuaXNlci5jb25z
dW1lKCJdIikgfHwgdG9rZW5pc2VyLmVycm9yKCJVbmV4cGVjdGVkIGNsb3NpbmcgdG9rZW4gb2Yg
ZXh0ZW5kZWQgYXR0cmlidXRlIik7CisgICAgaWYgKCFyZXQubGVuZ3RoKSB7CisgICAgICB0b2tl
bmlzZXIuZXJyb3IoIkZvdW5kIGFuIGVtcHR5IGV4dGVuZGVkIGF0dHJpYnV0ZSIpOworICAgIH0K
KyAgICBpZiAodG9rZW5pc2VyLnByb2JlKCJbIikpIHsKKyAgICAgIHRva2VuaXNlci5lcnJvcigi
SWxsZWdhbCBkb3VibGUgZXh0ZW5kZWQgYXR0cmlidXRlIGxpc3RzLCBjb25zaWRlciBtZXJnaW5n
IHRoZW0iKTsKKyAgICB9CisgICAgcmV0dXJuIHJldDsKKyAgfQorCisgICp2YWxpZGF0ZShkZWZz
KSB7CisgICAgZm9yIChjb25zdCBleHRBdHRyIG9mIHRoaXMpIHsKKyAgICAgIHlpZWxkKiBleHRB
dHRyLnZhbGlkYXRlKGRlZnMpOworICAgIH0KKyAgfQorfQorCisKKy8qKiovIH0pLAorLyogMTEg
Ki8KKy8qKiovIChmdW5jdGlvbihtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFj
a19yZXF1aXJlX18pIHsKKworInVzZSBzdHJpY3QiOworX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9f
d2VicGFja19leHBvcnRzX18pOworLyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2Vi
cGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAiQXJyYXlCYXNlIiwgZnVuY3Rp
b24oKSB7IHJldHVybiBBcnJheUJhc2U7IH0pOworY2xhc3MgQXJyYXlCYXNlIGV4dGVuZHMgQXJy
YXkgeworICBjb25zdHJ1Y3Rvcih7IHNvdXJjZSwgdG9rZW5zIH0pIHsKKyAgICBzdXBlcigpOwor
ICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHRoaXMsIHsKKyAgICAgIHNvdXJjZTogeyB2YWx1
ZTogc291cmNlIH0sCisgICAgICB0b2tlbnM6IHsgdmFsdWU6IHRva2VucyB9CisgICAgfSk7Cisg
IH0KK30KKworCisvKioqLyB9KSwKKy8qIDEyICovCisvKioqLyAoZnVuY3Rpb24obW9kdWxlLCBf
X3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CisKKyJ1c2Ugc3RyaWN0
IjsKK19fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTsKKy8qIGhhcm1v
bnkgZXhwb3J0IChiaW5kaW5nKSAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4
cG9ydHNfXywgIlRva2VuIiwgZnVuY3Rpb24oKSB7IHJldHVybiBUb2tlbjsgfSk7CisvKiBoYXJt
b255IGltcG9ydCAqLyB2YXIgX2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9
IF9fd2VicGFja19yZXF1aXJlX18oNik7CisKKworY2xhc3MgVG9rZW4gZXh0ZW5kcyBfYmFzZV9q
c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJCYXNlIl0geworICAvKioKKyAgICogQHBh
cmFtIHtpbXBvcnQoIi4uL3Rva2VuaXNlciIpLlRva2VuaXNlcn0gdG9rZW5pc2VyCisgICAqIEBw
YXJhbSB7c3RyaW5nfSB0eXBlCisgICAqLworICBzdGF0aWMgcGFyc2VyKHRva2VuaXNlciwgdHlw
ZSkgeworICAgIHJldHVybiAoKSA9PiB7CisgICAgICBjb25zdCB2YWx1ZSA9IHRva2VuaXNlci5j
b25zdW1lKHR5cGUpOworICAgICAgaWYgKHZhbHVlKSB7CisgICAgICAgIHJldHVybiBuZXcgVG9r
ZW4oeyBzb3VyY2U6IHRva2VuaXNlci5zb3VyY2UsIHRva2VuczogeyB2YWx1ZSB9IH0pOworICAg
ICAgfQorICAgIH07CisgIH0KKworICBnZXQgdmFsdWUoKSB7CisgICAgcmV0dXJuIHRoaXMudG9r
ZW5zLnZhbHVlLnZhbHVlOworICB9Cit9CisKKworLyoqKi8gfSksCisvKiAxMyAqLworLyoqKi8g
KGZ1bmN0aW9uKG1vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVf
XykgeworCisidXNlIHN0cmljdCI7CitfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4
cG9ydHNfXyk7CisvKiBoYXJtb255IGV4cG9ydCAoYmluZGluZykgKi8gX193ZWJwYWNrX3JlcXVp
cmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sICJPcGVyYXRpb24iLCBmdW5jdGlvbigpIHsgcmV0
dXJuIE9wZXJhdGlvbjsgfSk7CisvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2Jhc2VfanNfX1dF
QlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oNik7CisvKiBo
YXJtb255IGltcG9ydCAqLyB2YXIgX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxF
XzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oNCk7CisvKiBoYXJtb255IGltcG9ydCAqLyB2YXIg
X2Vycm9yX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18gPSBfX3dlYnBhY2tfcmVxdWly
ZV9fKDMpOworCisKKworCitjbGFzcyBPcGVyYXRpb24gZXh0ZW5kcyBfYmFzZV9qc19fV0VCUEFD
S19JTVBPUlRFRF9NT0RVTEVfMF9fWyJCYXNlIl0geworICAvKioKKyAgICogQHBhcmFtIHtpbXBv
cnQoIi4uL3Rva2VuaXNlci5qcyIpLlRva2VuaXNlcn0gdG9rZW5pc2VyCisgICAqLworICBzdGF0
aWMgcGFyc2UodG9rZW5pc2VyLCB7IHNwZWNpYWwsIHJlZ3VsYXIgfSA9IHt9KSB7CisgICAgY29u
c3QgdG9rZW5zID0geyBzcGVjaWFsIH07CisgICAgY29uc3QgcmV0ID0gbmV3IE9wZXJhdGlvbih7
IHNvdXJjZTogdG9rZW5pc2VyLnNvdXJjZSwgdG9rZW5zIH0pOworICAgIGlmIChzcGVjaWFsICYm
IHNwZWNpYWwudmFsdWUgPT09ICJzdHJpbmdpZmllciIpIHsKKyAgICAgIHRva2Vucy50ZXJtaW5h
dGlvbiA9IHRva2VuaXNlci5jb25zdW1lKCI7Iik7CisgICAgICBpZiAodG9rZW5zLnRlcm1pbmF0
aW9uKSB7CisgICAgICAgIHJldC5hcmd1bWVudHMgPSBbXTsKKyAgICAgICAgcmV0dXJuIHJldDsK
KyAgICAgIH0KKyAgICB9CisgICAgaWYgKCFzcGVjaWFsICYmICFyZWd1bGFyKSB7CisgICAgICB0
b2tlbnMuc3BlY2lhbCA9IHRva2VuaXNlci5jb25zdW1lKCJnZXR0ZXIiLCAic2V0dGVyIiwgImRl
bGV0ZXIiKTsKKyAgICB9CisgICAgcmV0LmlkbFR5cGUgPSBPYmplY3QoX2hlbHBlcnNfanNfX1dF
QlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX1sicmV0dXJuX3R5cGUiXSkodG9rZW5pc2VyKSB8fCB0
b2tlbmlzZXIuZXJyb3IoIk1pc3NpbmcgcmV0dXJuIHR5cGUiKTsKKyAgICB0b2tlbnMubmFtZSA9
IHRva2VuaXNlci5jb25zdW1lKCJpZGVudGlmaWVyIiwgImluY2x1ZGVzIik7CisgICAgdG9rZW5z
Lm9wZW4gPSB0b2tlbmlzZXIuY29uc3VtZSgiKCIpIHx8IHRva2VuaXNlci5lcnJvcigiSW52YWxp
ZCBvcGVyYXRpb24iKTsKKyAgICByZXQuYXJndW1lbnRzID0gT2JqZWN0KF9oZWxwZXJzX2pzX19X
RUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19bImFyZ3VtZW50X2xpc3QiXSkodG9rZW5pc2VyKTsK
KyAgICB0b2tlbnMuY2xvc2UgPSB0b2tlbmlzZXIuY29uc3VtZSgiKSIpIHx8IHRva2VuaXNlci5l
cnJvcigiVW50ZXJtaW5hdGVkIG9wZXJhdGlvbiIpOworICAgIHRva2Vucy50ZXJtaW5hdGlvbiA9
IHRva2VuaXNlci5jb25zdW1lKCI7IikgfHwgdG9rZW5pc2VyLmVycm9yKCJVbnRlcm1pbmF0ZWQg
b3BlcmF0aW9uLCBleHBlY3RlZCBgO2AiKTsKKyAgICByZXR1cm4gcmV0OworICB9CisKKyAgZ2V0
IHR5cGUoKSB7CisgICAgcmV0dXJuICJvcGVyYXRpb24iOworICB9CisgIGdldCBuYW1lKCkgewor
ICAgIGNvbnN0IHsgbmFtZSB9ID0gdGhpcy50b2tlbnM7CisgICAgaWYgKCFuYW1lKSB7CisgICAg
ICByZXR1cm4gIiI7CisgICAgfQorICAgIHJldHVybiBPYmplY3QoX2hlbHBlcnNfanNfX1dFQlBB
Q0tfSU1QT1JURURfTU9EVUxFXzFfX1sidW5lc2NhcGUiXSkobmFtZS52YWx1ZSk7CisgIH0KKyAg
Z2V0IHNwZWNpYWwoKSB7CisgICAgaWYgKCF0aGlzLnRva2Vucy5zcGVjaWFsKSB7CisgICAgICBy
ZXR1cm4gIiI7CisgICAgfQorICAgIHJldHVybiB0aGlzLnRva2Vucy5zcGVjaWFsLnZhbHVlOwor
ICB9CisKKyAgKnZhbGlkYXRlKGRlZnMpIHsKKyAgICBpZiAoIXRoaXMubmFtZSAmJiBbIiIsICJz
dGF0aWMiXS5pbmNsdWRlcyh0aGlzLnNwZWNpYWwpKSB7CisgICAgICBjb25zdCBtZXNzYWdlID0g
YFJlZ3VsYXIgb3Igc3RhdGljIG9wZXJhdGlvbnMgbXVzdCBoYXZlIGJvdGggYSByZXR1cm4gdHlw
ZSBhbmQgYW4gaWRlbnRpZmllci5gOworICAgICAgeWllbGQgT2JqZWN0KF9lcnJvcl9qc19fV0VC
UEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fWyJ2YWxpZGF0aW9uRXJyb3IiXSkodGhpcy5zb3VyY2Us
IHRoaXMudG9rZW5zLm9wZW4sIHRoaXMsIG1lc3NhZ2UpOworICAgIH0KKyAgICBpZiAodGhpcy5p
ZGxUeXBlKSB7CisgICAgICB5aWVsZCogdGhpcy5pZGxUeXBlLnZhbGlkYXRlKGRlZnMpOworICAg
IH0KKyAgICBmb3IgKGNvbnN0IGFyZ3VtZW50IG9mIHRoaXMuYXJndW1lbnRzKSB7CisgICAgICB5
aWVsZCogYXJndW1lbnQudmFsaWRhdGUoZGVmcyk7CisgICAgfQorICB9Cit9CisKKworLyoqKi8g
fSksCisvKiAxNCAqLworLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNf
XywgX193ZWJwYWNrX3JlcXVpcmVfXykgeworCisidXNlIHN0cmljdCI7CitfX3dlYnBhY2tfcmVx
dWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7CisvKiBoYXJtb255IGV4cG9ydCAoYmluZGlu
ZykgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sICJBdHRyaWJ1
dGUiLCBmdW5jdGlvbigpIHsgcmV0dXJuIEF0dHJpYnV0ZTsgfSk7CisvKiBoYXJtb255IGltcG9y
dCAqLyB2YXIgX2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFj
a19yZXF1aXJlX18oNik7CisvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2hlbHBlcnNfanNfX1dF
QlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oNCk7CisKKwor
CitjbGFzcyBBdHRyaWJ1dGUgZXh0ZW5kcyBfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RV
TEVfMF9fWyJCYXNlIl0geworICAvKioKKyAgICogQHBhcmFtIHtpbXBvcnQoIi4uL3Rva2VuaXNl
ci5qcyIpLlRva2VuaXNlcn0gdG9rZW5pc2VyCisgICAqLworICBzdGF0aWMgcGFyc2UodG9rZW5p
c2VyLCB7IHNwZWNpYWwsIG5vSW5oZXJpdCA9IGZhbHNlLCByZWFkb25seSA9IGZhbHNlIH0gPSB7
fSkgeworICAgIGNvbnN0IHN0YXJ0X3Bvc2l0aW9uID0gdG9rZW5pc2VyLnBvc2l0aW9uOworICAg
IGNvbnN0IHRva2VucyA9IHsgc3BlY2lhbCB9OworICAgIGNvbnN0IHJldCA9IG5ldyBBdHRyaWJ1
dGUoeyBzb3VyY2U6IHRva2VuaXNlci5zb3VyY2UsIHRva2VucyB9KTsKKyAgICBpZiAoIXNwZWNp
YWwgJiYgIW5vSW5oZXJpdCkgeworICAgICAgdG9rZW5zLnNwZWNpYWwgPSB0b2tlbmlzZXIuY29u
c3VtZSgiaW5oZXJpdCIpOworICAgIH0KKyAgICBpZiAocmV0LnNwZWNpYWwgPT09ICJpbmhlcml0
IiAmJiB0b2tlbmlzZXIucHJvYmUoInJlYWRvbmx5IikpIHsKKyAgICAgIHRva2VuaXNlci5lcnJv
cigiSW5oZXJpdGVkIGF0dHJpYnV0ZXMgY2Fubm90IGJlIHJlYWQtb25seSIpOworICAgIH0KKyAg
ICB0b2tlbnMucmVhZG9ubHkgPSB0b2tlbmlzZXIuY29uc3VtZSgicmVhZG9ubHkiKTsKKyAgICBp
ZiAocmVhZG9ubHkgJiYgIXRva2Vucy5yZWFkb25seSAmJiB0b2tlbmlzZXIucHJvYmUoImF0dHJp
YnV0ZSIpKSB7CisgICAgICB0b2tlbmlzZXIuZXJyb3IoIkF0dHJpYnV0ZXMgbXVzdCBiZSByZWFk
b25seSBpbiB0aGlzIGNvbnRleHQiKTsKKyAgICB9CisgICAgdG9rZW5zLmJhc2UgPSB0b2tlbmlz
ZXIuY29uc3VtZSgiYXR0cmlidXRlIik7CisgICAgaWYgKCF0b2tlbnMuYmFzZSkgeworICAgICAg
dG9rZW5pc2VyLnVuY29uc3VtZShzdGFydF9wb3NpdGlvbik7CisgICAgICByZXR1cm47CisgICAg
fQorICAgIHJldC5pZGxUeXBlID0gT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVE
X01PRFVMRV8xX19bInR5cGVfd2l0aF9leHRlbmRlZF9hdHRyaWJ1dGVzIl0pKHRva2VuaXNlciwg
ImF0dHJpYnV0ZS10eXBlIikgfHwgdG9rZW5pc2VyLmVycm9yKCJBdHRyaWJ1dGUgbGFja3MgYSB0
eXBlIik7CisgICAgc3dpdGNoIChyZXQuaWRsVHlwZS5nZW5lcmljKSB7CisgICAgICBjYXNlICJz
ZXF1ZW5jZSI6CisgICAgICBjYXNlICJyZWNvcmQiOiB0b2tlbmlzZXIuZXJyb3IoYEF0dHJpYnV0
ZXMgY2Fubm90IGFjY2VwdCAke3JldC5pZGxUeXBlLmdlbmVyaWN9IHR5cGVzYCk7CisgICAgfQor
ICAgIHRva2Vucy5uYW1lID0gdG9rZW5pc2VyLmNvbnN1bWUoImlkZW50aWZpZXIiLCAiYXN5bmMi
LCAicmVxdWlyZWQiKSB8fCB0b2tlbmlzZXIuZXJyb3IoIkF0dHJpYnV0ZSBsYWNrcyBhIG5hbWUi
KTsKKyAgICB0b2tlbnMudGVybWluYXRpb24gPSB0b2tlbmlzZXIuY29uc3VtZSgiOyIpIHx8IHRv
a2VuaXNlci5lcnJvcigiVW50ZXJtaW5hdGVkIGF0dHJpYnV0ZSwgZXhwZWN0ZWQgYDtgIik7Cisg
ICAgcmV0dXJuIHJldDsKKyAgfQorCisgIGdldCB0eXBlKCkgeworICAgIHJldHVybiAiYXR0cmli
dXRlIjsKKyAgfQorICBnZXQgc3BlY2lhbCgpIHsKKyAgICBpZiAoIXRoaXMudG9rZW5zLnNwZWNp
YWwpIHsKKyAgICAgIHJldHVybiAiIjsKKyAgICB9CisgICAgcmV0dXJuIHRoaXMudG9rZW5zLnNw
ZWNpYWwudmFsdWU7CisgIH0KKyAgZ2V0IHJlYWRvbmx5KCkgeworICAgIHJldHVybiAhIXRoaXMu
dG9rZW5zLnJlYWRvbmx5OworICB9CisgIGdldCBuYW1lKCkgeworICAgIHJldHVybiBPYmplY3Qo
X2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX1sidW5lc2NhcGUiXSkodGhp
cy50b2tlbnMubmFtZS52YWx1ZSk7CisgIH0KKworICAqdmFsaWRhdGUoZGVmcykgeworICAgIHlp
ZWxkKiB0aGlzLmlkbFR5cGUudmFsaWRhdGUoZGVmcyk7CisgIH0KK30KKworCisvKioqLyB9KSwK
Ky8qIDE1ICovCisvKioqLyAoZnVuY3Rpb24obW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBf
X3dlYnBhY2tfcmVxdWlyZV9fKSB7CisKKyJ1c2Ugc3RyaWN0IjsKK19fd2VicGFja19yZXF1aXJl
X18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTsKKy8qIGhhcm1vbnkgZXhwb3J0IChiaW5kaW5nKSAq
LyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgIkVudW0iLCBmdW5j
dGlvbigpIHsgcmV0dXJuIEVudW07IH0pOworLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9oZWxw
ZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9f
KDQpOworLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF90b2tlbl9qc19fV0VCUEFDS19JTVBPUlRF
RF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygxMik7CisvKiBoYXJtb255IGltcG9y
dCAqLyB2YXIgX2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXyA9IF9fd2VicGFj
a19yZXF1aXJlX18oNik7CisKKworCisKK2NsYXNzIEVudW1WYWx1ZSBleHRlbmRzIF90b2tlbl9q
c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fWyJUb2tlbiJdIHsKKyAgLyoqCisgICAqIEBw
YXJhbSB7aW1wb3J0KCIuLi90b2tlbmlzZXIiKS5Ub2tlbmlzZXJ9IHRva2VuaXNlcgorICAgKi8K
KyAgc3RhdGljIHBhcnNlKHRva2VuaXNlcikgeworICAgIGNvbnN0IHZhbHVlID0gdG9rZW5pc2Vy
LmNvbnN1bWUoInN0cmluZyIpOworICAgIGlmICh2YWx1ZSkgeworICAgICAgcmV0dXJuIG5ldyBF
bnVtVmFsdWUoeyBzb3VyY2U6IHRva2VuaXNlci5zb3VyY2UsIHRva2VuczogeyB2YWx1ZSB9IH0p
OworICAgIH0KKyAgfQorCisgIGdldCB0eXBlKCkgeworICAgIHJldHVybiAiZW51bS12YWx1ZSI7
CisgIH0KKyAgZ2V0IHZhbHVlKCkgeworICAgIHJldHVybiBzdXBlci52YWx1ZS5zbGljZSgxLCAt
MSk7CisgIH0KK30KKworY2xhc3MgRW51bSBleHRlbmRzIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9S
VEVEX01PRFVMRV8yX19bIkJhc2UiXSB7CisgIC8qKgorICAgKiBAcGFyYW0ge2ltcG9ydCgiLi4v
dG9rZW5pc2VyIikuVG9rZW5pc2VyfSB0b2tlbmlzZXIKKyAgICovCisgIHN0YXRpYyBwYXJzZSh0
b2tlbmlzZXIpIHsKKyAgICBjb25zdCB0b2tlbnMgPSB7fTsKKyAgICB0b2tlbnMuYmFzZSA9IHRv
a2VuaXNlci5jb25zdW1lKCJlbnVtIik7CisgICAgaWYgKCF0b2tlbnMuYmFzZSkgeworICAgICAg
cmV0dXJuOworICAgIH0KKyAgICB0b2tlbnMubmFtZSA9IHRva2VuaXNlci5jb25zdW1lKCJpZGVu
dGlmaWVyIikgfHwgdG9rZW5pc2VyLmVycm9yKCJObyBuYW1lIGZvciBlbnVtIik7CisgICAgY29u
c3QgcmV0ID0gdG9rZW5pc2VyLmN1cnJlbnQgPSBuZXcgRW51bSh7IHNvdXJjZTogdG9rZW5pc2Vy
LnNvdXJjZSwgdG9rZW5zIH0pOworICAgIHRva2Vucy5vcGVuID0gdG9rZW5pc2VyLmNvbnN1bWUo
InsiKSB8fCB0b2tlbmlzZXIuZXJyb3IoIkJvZHlsZXNzIGVudW0iKTsKKyAgICByZXQudmFsdWVz
ID0gT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bImxpc3Qi
XSkodG9rZW5pc2VyLCB7CisgICAgICBwYXJzZXI6IEVudW1WYWx1ZS5wYXJzZSwKKyAgICAgIGFs
bG93RGFuZ2xlcjogdHJ1ZSwKKyAgICAgIGxpc3ROYW1lOiAiZW51bWVyYXRpb24iCisgICAgfSk7
CisgICAgaWYgKHRva2VuaXNlci5wcm9iZSgic3RyaW5nIikpIHsKKyAgICAgIHRva2VuaXNlci5l
cnJvcigiTm8gY29tbWEgYmV0d2VlbiBlbnVtIHZhbHVlcyIpOworICAgIH0KKyAgICB0b2tlbnMu
Y2xvc2UgPSB0b2tlbmlzZXIuY29uc3VtZSgifSIpIHx8IHRva2VuaXNlci5lcnJvcigiVW5leHBl
Y3RlZCB2YWx1ZSBpbiBlbnVtIik7CisgICAgaWYgKCFyZXQudmFsdWVzLmxlbmd0aCkgeworICAg
ICAgdG9rZW5pc2VyLmVycm9yKCJObyB2YWx1ZSBpbiBlbnVtIik7CisgICAgfQorICAgIHRva2Vu
cy50ZXJtaW5hdGlvbiA9IHRva2VuaXNlci5jb25zdW1lKCI7IikgfHwgdG9rZW5pc2VyLmVycm9y
KCJObyBzZW1pY29sb24gYWZ0ZXIgZW51bSIpOworICAgIHJldHVybiByZXQ7CisgIH0KKworICBn
ZXQgdHlwZSgpIHsKKyAgICByZXR1cm4gImVudW0iOworICB9CisgIGdldCBuYW1lKCkgeworICAg
IHJldHVybiBPYmplY3QoX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1si
dW5lc2NhcGUiXSkodGhpcy50b2tlbnMubmFtZS52YWx1ZSk7CisgIH0KK30KKworCisvKioqLyB9
KSwKKy8qIDE2ICovCisvKioqLyAoZnVuY3Rpb24obW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19f
LCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CisKKyJ1c2Ugc3RyaWN0IjsKK19fd2VicGFja19yZXF1
aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTsKKy8qIGhhcm1vbnkgZXhwb3J0IChiaW5kaW5n
KSAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgIkluY2x1ZGVz
IiwgZnVuY3Rpb24oKSB7IHJldHVybiBJbmNsdWRlczsgfSk7CisvKiBoYXJtb255IGltcG9ydCAq
LyB2YXIgX2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19y
ZXF1aXJlX18oNik7CisvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2hlbHBlcnNfanNfX1dFQlBB
Q0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oNCk7CisKKworCitj
bGFzcyBJbmNsdWRlcyBleHRlbmRzIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8w
X19bIkJhc2UiXSB7CisgIC8qKgorICAgKiBAcGFyYW0ge2ltcG9ydCgiLi4vdG9rZW5pc2VyIiku
VG9rZW5pc2VyfSB0b2tlbmlzZXIKKyAgICovCisgIHN0YXRpYyBwYXJzZSh0b2tlbmlzZXIpIHsK
KyAgICBjb25zdCB0YXJnZXQgPSB0b2tlbmlzZXIuY29uc3VtZSgiaWRlbnRpZmllciIpOworICAg
IGlmICghdGFyZ2V0KSB7CisgICAgICByZXR1cm47CisgICAgfQorICAgIGNvbnN0IHRva2VucyA9
IHsgdGFyZ2V0IH07CisgICAgdG9rZW5zLmluY2x1ZGVzID0gdG9rZW5pc2VyLmNvbnN1bWUoImlu
Y2x1ZGVzIik7CisgICAgaWYgKCF0b2tlbnMuaW5jbHVkZXMpIHsKKyAgICAgIHRva2VuaXNlci51
bmNvbnN1bWUodGFyZ2V0LmluZGV4KTsKKyAgICAgIHJldHVybjsKKyAgICB9CisgICAgdG9rZW5z
Lm1peGluID0gdG9rZW5pc2VyLmNvbnN1bWUoImlkZW50aWZpZXIiKSB8fCB0b2tlbmlzZXIuZXJy
b3IoIkluY29tcGxldGUgaW5jbHVkZXMgc3RhdGVtZW50Iik7CisgICAgdG9rZW5zLnRlcm1pbmF0
aW9uID0gdG9rZW5pc2VyLmNvbnN1bWUoIjsiKSB8fCB0b2tlbmlzZXIuZXJyb3IoIk5vIHRlcm1p
bmF0aW5nIDsgZm9yIGluY2x1ZGVzIHN0YXRlbWVudCIpOworICAgIHJldHVybiBuZXcgSW5jbHVk
ZXMoeyBzb3VyY2U6IHRva2VuaXNlci5zb3VyY2UsIHRva2VucyB9KTsKKyAgfQorCisgIGdldCB0
eXBlKCkgeworICAgIHJldHVybiAiaW5jbHVkZXMiOworICB9CisgIGdldCB0YXJnZXQoKSB7Cisg
ICAgcmV0dXJuIE9iamVjdChfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9f
WyJ1bmVzY2FwZSJdKSh0aGlzLnRva2Vucy50YXJnZXQudmFsdWUpOworICB9CisgIGdldCBpbmNs
dWRlcygpIHsKKyAgICByZXR1cm4gT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVE
X01PRFVMRV8xX19bInVuZXNjYXBlIl0pKHRoaXMudG9rZW5zLm1peGluLnZhbHVlKTsKKyAgfQor
fQorCisKKy8qKiovIH0pLAorLyogMTcgKi8KKy8qKiovIChmdW5jdGlvbihtb2R1bGUsIF9fd2Vi
cGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pIHsKKworInVzZSBzdHJpY3QiOwor
X193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pOworLyogaGFybW9ueSBl
eHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0
c19fLCAiVHlwZWRlZiIsIGZ1bmN0aW9uKCkgeyByZXR1cm4gVHlwZWRlZjsgfSk7CisvKiBoYXJt
b255IGltcG9ydCAqLyB2YXIgX2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9
IF9fd2VicGFja19yZXF1aXJlX18oNik7CisvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2hlbHBl
cnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18o
NCk7CisKKworCitjbGFzcyBUeXBlZGVmIGV4dGVuZHMgX2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JU
RURfTU9EVUxFXzBfX1siQmFzZSJdIHsKKyAgLyoqCisgICAqIEBwYXJhbSB7aW1wb3J0KCIuLi90
b2tlbmlzZXIiKS5Ub2tlbmlzZXJ9IHRva2VuaXNlcgorICAgKi8KKyAgc3RhdGljIHBhcnNlKHRv
a2VuaXNlcikgeworICAgIGNvbnN0IHRva2VucyA9IHt9OworICAgIGNvbnN0IHJldCA9IG5ldyBU
eXBlZGVmKHsgc291cmNlOiB0b2tlbmlzZXIuc291cmNlLCB0b2tlbnMgfSk7CisgICAgdG9rZW5z
LmJhc2UgPSB0b2tlbmlzZXIuY29uc3VtZSgidHlwZWRlZiIpOworICAgIGlmICghdG9rZW5zLmJh
c2UpIHsKKyAgICAgIHJldHVybjsKKyAgICB9CisgICAgcmV0LmlkbFR5cGUgPSBPYmplY3QoX2hl
bHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX1sidHlwZV93aXRoX2V4dGVuZGVk
X2F0dHJpYnV0ZXMiXSkodG9rZW5pc2VyLCAidHlwZWRlZi10eXBlIikgfHwgdG9rZW5pc2VyLmVy
cm9yKCJUeXBlZGVmIGxhY2tzIGEgdHlwZSIpOworICAgIHRva2Vucy5uYW1lID0gdG9rZW5pc2Vy
LmNvbnN1bWUoImlkZW50aWZpZXIiKSB8fCB0b2tlbmlzZXIuZXJyb3IoIlR5cGVkZWYgbGFja3Mg
YSBuYW1lIik7CisgICAgdG9rZW5pc2VyLmN1cnJlbnQgPSByZXQ7CisgICAgdG9rZW5zLnRlcm1p
bmF0aW9uID0gdG9rZW5pc2VyLmNvbnN1bWUoIjsiKSB8fCB0b2tlbmlzZXIuZXJyb3IoIlVudGVy
bWluYXRlZCB0eXBlZGVmLCBleHBlY3RlZCBgO2AiKTsKKyAgICByZXR1cm4gcmV0OworICB9CisK
KyAgZ2V0IHR5cGUoKSB7CisgICAgcmV0dXJuICJ0eXBlZGVmIjsKKyAgfQorICBnZXQgbmFtZSgp
IHsKKyAgICByZXR1cm4gT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVM
RV8xX19bInVuZXNjYXBlIl0pKHRoaXMudG9rZW5zLm5hbWUudmFsdWUpOworICB9CisKKyAgKnZh
bGlkYXRlKGRlZnMpIHsKKyAgICB5aWVsZCogdGhpcy5pZGxUeXBlLnZhbGlkYXRlKGRlZnMpOwor
ICB9Cit9CisKKworLyoqKi8gfSksCisvKiAxOCAqLworLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwg
X193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgeworCisidXNlIHN0cmlj
dCI7CitfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7CisvKiBoYXJt
b255IGV4cG9ydCAoYmluZGluZykgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19l
eHBvcnRzX18sICJDYWxsYmFja0Z1bmN0aW9uIiwgZnVuY3Rpb24oKSB7IHJldHVybiBDYWxsYmFj
a0Z1bmN0aW9uOyB9KTsKKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfYmFzZV9qc19fV0VCUEFD
S19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg2KTsKKy8qIGhhcm1v
bnkgaW1wb3J0ICovIHZhciBfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9f
ID0gX193ZWJwYWNrX3JlcXVpcmVfXyg0KTsKKworCisKK2NsYXNzIENhbGxiYWNrRnVuY3Rpb24g
ZXh0ZW5kcyBfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJCYXNlIl0gewor
ICAvKioKKyAgICogQHBhcmFtIHtpbXBvcnQoIi4uL3Rva2VuaXNlci5qcyIpLlRva2VuaXNlcn0g
dG9rZW5pc2VyCisgICAqLworICBzdGF0aWMgcGFyc2UodG9rZW5pc2VyLCBiYXNlKSB7CisgICAg
Y29uc3QgdG9rZW5zID0geyBiYXNlIH07CisgICAgY29uc3QgcmV0ID0gbmV3IENhbGxiYWNrRnVu
Y3Rpb24oeyBzb3VyY2U6IHRva2VuaXNlci5zb3VyY2UsIHRva2VucyB9KTsKKyAgICB0b2tlbnMu
bmFtZSA9IHRva2VuaXNlci5jb25zdW1lKCJpZGVudGlmaWVyIikgfHwgdG9rZW5pc2VyLmVycm9y
KCJDYWxsYmFjayBsYWNrcyBhIG5hbWUiKTsKKyAgICB0b2tlbmlzZXIuY3VycmVudCA9IHJldDsK
KyAgICB0b2tlbnMuYXNzaWduID0gdG9rZW5pc2VyLmNvbnN1bWUoIj0iKSB8fCB0b2tlbmlzZXIu
ZXJyb3IoIkNhbGxiYWNrIGxhY2tzIGFuIGFzc2lnbm1lbnQiKTsKKyAgICByZXQuaWRsVHlwZSA9
IE9iamVjdChfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fWyJyZXR1cm5f
dHlwZSJdKSh0b2tlbmlzZXIpIHx8IHRva2VuaXNlci5lcnJvcigiQ2FsbGJhY2sgbGFja3MgYSBy
ZXR1cm4gdHlwZSIpOworICAgIHRva2Vucy5vcGVuID0gdG9rZW5pc2VyLmNvbnN1bWUoIigiKSB8
fCB0b2tlbmlzZXIuZXJyb3IoIkNhbGxiYWNrIGxhY2tzIHBhcmVudGhlc2VzIGZvciBhcmd1bWVu
dHMiKTsKKyAgICByZXQuYXJndW1lbnRzID0gT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lN
UE9SVEVEX01PRFVMRV8xX19bImFyZ3VtZW50X2xpc3QiXSkodG9rZW5pc2VyKTsKKyAgICB0b2tl
bnMuY2xvc2UgPSB0b2tlbmlzZXIuY29uc3VtZSgiKSIpIHx8IHRva2VuaXNlci5lcnJvcigiVW50
ZXJtaW5hdGVkIGNhbGxiYWNrIik7CisgICAgdG9rZW5zLnRlcm1pbmF0aW9uID0gdG9rZW5pc2Vy
LmNvbnN1bWUoIjsiKSB8fCB0b2tlbmlzZXIuZXJyb3IoIlVudGVybWluYXRlZCBjYWxsYmFjaywg
ZXhwZWN0ZWQgYDtgIik7CisgICAgcmV0dXJuIHJldDsKKyAgfQorCisgIGdldCB0eXBlKCkgewor
ICAgIHJldHVybiAiY2FsbGJhY2siOworICB9CisgIGdldCBuYW1lKCkgeworICAgIHJldHVybiBP
YmplY3QoX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX1sidW5lc2NhcGUi
XSkodGhpcy50b2tlbnMubmFtZS52YWx1ZSk7CisgIH0KKworICAqdmFsaWRhdGUoZGVmcykgewor
ICAgIHlpZWxkKiB0aGlzLmlkbFR5cGUudmFsaWRhdGUoZGVmcyk7CisgIH0KK30KKworCisvKioq
LyB9KSwKKy8qIDE5ICovCisvKioqLyAoZnVuY3Rpb24obW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0
c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CisKKyJ1c2Ugc3RyaWN0IjsKK19fd2VicGFja19y
ZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTsKKy8qIGhhcm1vbnkgZXhwb3J0IChiaW5k
aW5nKSAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgIkludGVy
ZmFjZSIsIGZ1bmN0aW9uKCkgeyByZXR1cm4gSW50ZXJmYWNlOyB9KTsKKy8qIGhhcm1vbnkgaW1w
b3J0ICovIHZhciBfY29udGFpbmVyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBf
X3dlYnBhY2tfcmVxdWlyZV9fKDIwKTsKKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfYXR0cmli
dXRlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9f
KDE0KTsKKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfb3BlcmF0aW9uX2pzX19XRUJQQUNLX0lN
UE9SVEVEX01PRFVMRV8yX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDEzKTsKKy8qIGhhcm1vbnkg
aW1wb3J0ICovIHZhciBfY29uc3RhbnRfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXyA9
IF9fd2VicGFja19yZXF1aXJlX18oMjEpOworLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9pdGVy
YWJsZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fID0gX193ZWJwYWNrX3JlcXVpcmVf
XygyMik7CisvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1Q
T1JURURfTU9EVUxFXzVfXyA9IF9fd2VicGFja19yZXF1aXJlX18oNCk7CisvKiBoYXJtb255IGlt
cG9ydCAqLyB2YXIgX2Vycm9yX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X18gPSBfX3dl
YnBhY2tfcmVxdWlyZV9fKDMpOworLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF92YWxpZGF0b3Jz
X2ludGVyZmFjZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfN19fID0gX193ZWJwYWNrX3Jl
cXVpcmVfXygyMyk7CisvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2NvbnN0cnVjdG9yX2pzX19X
RUJQQUNLX0lNUE9SVEVEX01PRFVMRV84X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDI0KTsKKwor
CisKKworCisKKworCisKKworLyoqCisgKiBAcGFyYW0ge2ltcG9ydCgiLi4vdG9rZW5pc2VyIiku
VG9rZW5pc2VyfSB0b2tlbmlzZXIKKyAqLworZnVuY3Rpb24gc3RhdGljX21lbWJlcih0b2tlbmlz
ZXIpIHsKKyAgY29uc3Qgc3BlY2lhbCA9IHRva2VuaXNlci5jb25zdW1lKCJzdGF0aWMiKTsKKyAg
aWYgKCFzcGVjaWFsKSByZXR1cm47CisgIGNvbnN0IG1lbWJlciA9IF9hdHRyaWJ1dGVfanNfX1dF
QlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX1siQXR0cmlidXRlIl0ucGFyc2UodG9rZW5pc2VyLCB7
IHNwZWNpYWwgfSkgfHwKKyAgICBfb3BlcmF0aW9uX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVM
RV8yX19bIk9wZXJhdGlvbiJdLnBhcnNlKHRva2VuaXNlciwgeyBzcGVjaWFsIH0pIHx8CisgICAg
dG9rZW5pc2VyLmVycm9yKCJObyBib2R5IGluIHN0YXRpYyBtZW1iZXIiKTsKKyAgcmV0dXJuIG1l
bWJlcjsKK30KKworY2xhc3MgSW50ZXJmYWNlIGV4dGVuZHMgX2NvbnRhaW5lcl9qc19fV0VCUEFD
S19JTVBPUlRFRF9NT0RVTEVfMF9fWyJDb250YWluZXIiXSB7CisgIC8qKgorICAgKiBAcGFyYW0g
e2ltcG9ydCgiLi4vdG9rZW5pc2VyIikuVG9rZW5pc2VyfSB0b2tlbmlzZXIKKyAgICovCisgIHN0
YXRpYyBwYXJzZSh0b2tlbmlzZXIsIGJhc2UsIHsgcGFydGlhbCA9IG51bGwgfSA9IHt9KSB7Cisg
ICAgY29uc3QgdG9rZW5zID0geyBwYXJ0aWFsLCBiYXNlIH07CisgICAgcmV0dXJuIF9jb250YWlu
ZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siQ29udGFpbmVyIl0ucGFyc2UodG9r
ZW5pc2VyLCBuZXcgSW50ZXJmYWNlKHsgc291cmNlOiB0b2tlbmlzZXIuc291cmNlLCB0b2tlbnMg
fSksIHsKKyAgICAgIHR5cGU6ICJpbnRlcmZhY2UiLAorICAgICAgaW5oZXJpdGFibGU6ICFwYXJ0
aWFsLAorICAgICAgYWxsb3dlZE1lbWJlcnM6IFsKKyAgICAgICAgW19jb25zdGFudF9qc19fV0VC
UEFDS19JTVBPUlRFRF9NT0RVTEVfM19fWyJDb25zdGFudCJdLnBhcnNlXSwKKyAgICAgICAgW19j
b25zdHJ1Y3Rvcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOF9fWyJDb25zdHJ1Y3RvciJd
LnBhcnNlXSwKKyAgICAgICAgW3N0YXRpY19tZW1iZXJdLAorICAgICAgICBbX2hlbHBlcnNfanNf
X1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfX1sic3RyaW5naWZpZXIiXV0sCisgICAgICAgIFtf
aXRlcmFibGVfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfX1siSXRlcmFibGVMaWtlIl0u
cGFyc2VdLAorICAgICAgICBbX2F0dHJpYnV0ZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVf
MV9fWyJBdHRyaWJ1dGUiXS5wYXJzZV0sCisgICAgICAgIFtfb3BlcmF0aW9uX2pzX19XRUJQQUNL
X0lNUE9SVEVEX01PRFVMRV8yX19bIk9wZXJhdGlvbiJdLnBhcnNlXQorICAgICAgXQorICAgIH0p
OworICB9CisKKyAgZ2V0IHR5cGUoKSB7CisgICAgcmV0dXJuICJpbnRlcmZhY2UiOworICB9CisK
KyAgKnZhbGlkYXRlKGRlZnMpIHsKKyAgICB5aWVsZCogdGhpcy5leHRBdHRycy52YWxpZGF0ZShk
ZWZzKTsKKyAgICBpZiAoCisgICAgICAhdGhpcy5wYXJ0aWFsICYmCisgICAgICB0aGlzLmV4dEF0
dHJzLmV2ZXJ5KGV4dEF0dHIgPT4gZXh0QXR0ci5uYW1lICE9PSAiRXhwb3NlZCIpICYmCisgICAg
ICB0aGlzLmV4dEF0dHJzLmV2ZXJ5KGV4dEF0dHIgPT4gZXh0QXR0ci5uYW1lICE9PSAiTm9JbnRl
cmZhY2VPYmplY3QiKQorICAgICkgeworICAgICAgY29uc3QgbWVzc2FnZSA9IGBJbnRlcmZhY2Vz
IG11c3QgaGF2ZSBcYFtFeHBvc2VkXVxgIGV4dGVuZGVkIGF0dHJpYnV0ZS4gXAorVG8gZml4LCBh
ZGQsIGZvciBleGFtcGxlLCBcYFtFeHBvc2VkPVdpbmRvd11cYC4gUGxlYXNlIGFsc28gY29uc2lk
ZXIgY2FyZWZ1bGx5IFwKK2lmIHlvdXIgaW50ZXJmYWNlIHNob3VsZCBhbHNvIGJlIGV4cG9zZWQg
aW4gYSBXb3JrZXIgc2NvcGUuIFJlZmVyIHRvIHRoZSBcCitbV2ViSURMIHNwZWMgc2VjdGlvbiBv
biBFeHBvc2VkXShodHRwczovL2hleWNhbS5naXRodWIuaW8vd2ViaWRsLyNFeHBvc2VkKSBcCitm
b3IgbW9yZSBpbmZvcm1hdGlvbi5gOworICAgICAgeWllbGQgT2JqZWN0KF9lcnJvcl9qc19fV0VC
UEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fWyJ2YWxpZGF0aW9uRXJyb3IiXSkodGhpcy5zb3VyY2Us
IHRoaXMudG9rZW5zLm5hbWUsIHRoaXMsIG1lc3NhZ2UsIHsKKyAgICAgICAgYXV0b2ZpeDogT2Jq
ZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X19bImF1dG9maXhBZGRF
eHBvc2VkV2luZG93Il0pKHRoaXMpCisgICAgICB9KTsKKyAgICB9CisKKyAgICB5aWVsZCogc3Vw
ZXIudmFsaWRhdGUoZGVmcyk7CisgICAgaWYgKCF0aGlzLnBhcnRpYWwpIHsKKyAgICAgIHlpZWxk
KiBPYmplY3QoX3ZhbGlkYXRvcnNfaW50ZXJmYWNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVM
RV83X19bImNoZWNrSW50ZXJmYWNlTWVtYmVyRHVwbGljYXRpb24iXSkoZGVmcywgdGhpcyk7Cisg
ICAgfQorICB9Cit9CisKKworLyoqKi8gfSksCisvKiAyMCAqLworLyoqKi8gKGZ1bmN0aW9uKG1v
ZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgeworCisidXNl
IHN0cmljdCI7CitfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7Cisv
KiBoYXJtb255IGV4cG9ydCAoYmluZGluZykgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2Vi
cGFja19leHBvcnRzX18sICJDb250YWluZXIiLCBmdW5jdGlvbigpIHsgcmV0dXJuIENvbnRhaW5l
cjsgfSk7CisvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JU
RURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oNik7CisvKiBoYXJtb255IGltcG9y
dCAqLyB2YXIgX2V4dGVuZGVkX2F0dHJpYnV0ZXNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxF
XzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMTApOworLyogaGFybW9ueSBpbXBvcnQgKi8gdmFy
IF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18gPSBfX3dlYnBhY2tfcmVx
dWlyZV9fKDQpOworCisKKworCisvKioKKyAqIEBwYXJhbSB7aW1wb3J0KCIuLi90b2tlbmlzZXIu
anMiKS5Ub2tlbmlzZXJ9IHRva2VuaXNlcgorICovCitmdW5jdGlvbiBpbmhlcml0YW5jZSh0b2tl
bmlzZXIpIHsKKyAgY29uc3QgY29sb24gPSB0b2tlbmlzZXIuY29uc3VtZSgiOiIpOworICBpZiAo
IWNvbG9uKSB7CisgICAgcmV0dXJuIHt9OworICB9CisgIGNvbnN0IGluaGVyaXRhbmNlID0gdG9r
ZW5pc2VyLmNvbnN1bWUoImlkZW50aWZpZXIiKSB8fCB0b2tlbmlzZXIuZXJyb3IoIkluaGVyaXRh
bmNlIGxhY2tzIGEgdHlwZSIpOworICByZXR1cm4geyBjb2xvbiwgaW5oZXJpdGFuY2UgfTsKK30K
KworY2xhc3MgQ29udGFpbmVyIGV4dGVuZHMgX2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9E
VUxFXzBfX1siQmFzZSJdIHsKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge2ltcG9ydCgiLi4vdG9r
ZW5pc2VyLmpzIikuVG9rZW5pc2VyfSB0b2tlbmlzZXIKKyAgICAgKiBAcGFyYW0geyp9IGluc3Rh
bmNlCisgICAgICogQHBhcmFtIHsqfSBhcmdzCisgICAgICovCisgICAgc3RhdGljIHBhcnNlKHRv
a2VuaXNlciwgaW5zdGFuY2UsIHsgdHlwZSwgaW5oZXJpdGFibGUsIGFsbG93ZWRNZW1iZXJzIH0p
IHsKKyAgICAgIGNvbnN0IHsgdG9rZW5zIH0gPSBpbnN0YW5jZTsKKyAgICAgIHRva2Vucy5uYW1l
ID0gdG9rZW5pc2VyLmNvbnN1bWUoImlkZW50aWZpZXIiKSB8fCB0b2tlbmlzZXIuZXJyb3IoYE1p
c3NpbmcgbmFtZSBpbiAke2luc3RhbmNlLnR5cGV9YCk7CisgICAgICB0b2tlbmlzZXIuY3VycmVu
dCA9IGluc3RhbmNlOworICAgICAgaWYgKGluaGVyaXRhYmxlKSB7CisgICAgICAgIE9iamVjdC5h
c3NpZ24odG9rZW5zLCBpbmhlcml0YW5jZSh0b2tlbmlzZXIpKTsKKyAgICAgIH0KKyAgICAgIHRv
a2Vucy5vcGVuID0gdG9rZW5pc2VyLmNvbnN1bWUoInsiKSB8fCB0b2tlbmlzZXIuZXJyb3IoYEJv
ZHlsZXNzICR7dHlwZX1gKTsKKyAgICAgIGluc3RhbmNlLm1lbWJlcnMgPSBbXTsKKyAgICAgIHdo
aWxlICh0cnVlKSB7CisgICAgICAgIHRva2Vucy5jbG9zZSA9IHRva2VuaXNlci5jb25zdW1lKCJ9
Iik7CisgICAgICAgIGlmICh0b2tlbnMuY2xvc2UpIHsKKyAgICAgICAgICB0b2tlbnMudGVybWlu
YXRpb24gPSB0b2tlbmlzZXIuY29uc3VtZSgiOyIpIHx8IHRva2VuaXNlci5lcnJvcihgTWlzc2lu
ZyBzZW1pY29sb24gYWZ0ZXIgJHt0eXBlfWApOworICAgICAgICAgIHJldHVybiBpbnN0YW5jZTsK
KyAgICAgICAgfQorICAgICAgICBjb25zdCBlYSA9IF9leHRlbmRlZF9hdHRyaWJ1dGVzX2pzX19X
RUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19bIkV4dGVuZGVkQXR0cmlidXRlcyJdLnBhcnNlKHRv
a2VuaXNlcik7CisgICAgICAgIGxldCBtZW07CisgICAgICAgIGZvciAoY29uc3QgW3BhcnNlciwg
Li4uYXJnc10gb2YgYWxsb3dlZE1lbWJlcnMpIHsKKyAgICAgICAgICBtZW0gPSBwYXJzZXIodG9r
ZW5pc2VyLCAuLi5hcmdzKTsKKyAgICAgICAgICBpZiAobWVtKSB7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFtZW0pIHsKKyAgICAgICAg
ICB0b2tlbmlzZXIuZXJyb3IoIlVua25vd24gbWVtYmVyIik7CisgICAgICAgIH0KKyAgICAgICAg
bWVtLmV4dEF0dHJzID0gZWE7CisgICAgICAgIGluc3RhbmNlLm1lbWJlcnMucHVzaChtZW0pOwor
ICAgICAgfQorICAgIH0KKworICAgIGdldCBwYXJ0aWFsKCkgeworICAgICAgcmV0dXJuICEhdGhp
cy50b2tlbnMucGFydGlhbDsKKyAgICB9CisgICAgZ2V0IG5hbWUoKSB7CisgICAgICByZXR1cm4g
T2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19bInVuZXNjYXBl
Il0pKHRoaXMudG9rZW5zLm5hbWUudmFsdWUpOworICAgIH0KKyAgICBnZXQgaW5oZXJpdGFuY2Uo
KSB7CisgICAgICBpZiAoIXRoaXMudG9rZW5zLmluaGVyaXRhbmNlKSB7CisgICAgICAgIHJldHVy
biBudWxsOworICAgICAgfQorICAgICAgcmV0dXJuIE9iamVjdChfaGVscGVyc19qc19fV0VCUEFD
S19JTVBPUlRFRF9NT0RVTEVfMl9fWyJ1bmVzY2FwZSJdKSh0aGlzLnRva2Vucy5pbmhlcml0YW5j
ZS52YWx1ZSk7CisgICAgfQorCisgICAgKnZhbGlkYXRlKGRlZnMpIHsKKyAgICAgIGZvciAoY29u
c3QgbWVtYmVyIG9mIHRoaXMubWVtYmVycykgeworICAgICAgICBpZiAobWVtYmVyLnZhbGlkYXRl
KSB7CisgICAgICAgICAgeWllbGQqIG1lbWJlci52YWxpZGF0ZShkZWZzKTsKKyAgICAgICAgfQor
ICAgICAgfQorICAgIH0KKyAgfQorCisKKy8qKiovIH0pLAorLyogMjEgKi8KKy8qKiovIChmdW5j
dGlvbihtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pIHsK
KworInVzZSBzdHJpY3QiOworX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRz
X18pOworLyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFja19yZXF1aXJlX18u
ZChfX3dlYnBhY2tfZXhwb3J0c19fLCAiQ29uc3RhbnQiLCBmdW5jdGlvbigpIHsgcmV0dXJuIENv
bnN0YW50OyB9KTsKKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfYmFzZV9qc19fV0VCUEFDS19J
TVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg2KTsKKy8qIGhhcm1vbnkg
aW1wb3J0ICovIHZhciBfdHlwZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193
ZWJwYWNrX3JlcXVpcmVfXyg1KTsKKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfaGVscGVyc19q
c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg0KTsK
KworCisKKworY2xhc3MgQ29uc3RhbnQgZXh0ZW5kcyBfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRF
RF9NT0RVTEVfMF9fWyJCYXNlIl0geworICAvKioKKyAgICogQHBhcmFtIHtpbXBvcnQoIi4uL3Rv
a2VuaXNlci5qcyIpLlRva2VuaXNlcn0gdG9rZW5pc2VyCisgICAqLworICBzdGF0aWMgcGFyc2Uo
dG9rZW5pc2VyKSB7CisgICAgY29uc3QgdG9rZW5zID0ge307CisgICAgdG9rZW5zLmJhc2UgPSB0
b2tlbmlzZXIuY29uc3VtZSgiY29uc3QiKTsKKyAgICBpZiAoIXRva2Vucy5iYXNlKSB7CisgICAg
ICByZXR1cm47CisgICAgfQorICAgIGxldCBpZGxUeXBlID0gT2JqZWN0KF9oZWxwZXJzX2pzX19X
RUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19bInByaW1pdGl2ZV90eXBlIl0pKHRva2VuaXNlcik7
CisgICAgaWYgKCFpZGxUeXBlKSB7CisgICAgICBjb25zdCBiYXNlID0gdG9rZW5pc2VyLmNvbnN1
bWUoImlkZW50aWZpZXIiKSB8fCB0b2tlbmlzZXIuZXJyb3IoIkNvbnN0IGxhY2tzIGEgdHlwZSIp
OworICAgICAgaWRsVHlwZSA9IG5ldyBfdHlwZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVf
MV9fWyJUeXBlIl0oeyBzb3VyY2U6IHRva2VuaXNlci5zb3VyY2UsIHRva2VuczogeyBiYXNlIH0g
fSk7CisgICAgfQorICAgIGlmICh0b2tlbmlzZXIucHJvYmUoIj8iKSkgeworICAgICAgdG9rZW5p
c2VyLmVycm9yKCJVbmV4cGVjdGVkIG51bGxhYmxlIGNvbnN0YW50IHR5cGUiKTsKKyAgICB9Cisg
ICAgaWRsVHlwZS50eXBlID0gImNvbnN0LXR5cGUiOworICAgIHRva2Vucy5uYW1lID0gdG9rZW5p
c2VyLmNvbnN1bWUoImlkZW50aWZpZXIiKSB8fCB0b2tlbmlzZXIuZXJyb3IoIkNvbnN0IGxhY2tz
IGEgbmFtZSIpOworICAgIHRva2Vucy5hc3NpZ24gPSB0b2tlbmlzZXIuY29uc3VtZSgiPSIpIHx8
IHRva2VuaXNlci5lcnJvcigiQ29uc3QgbGFja3MgdmFsdWUgYXNzaWdubWVudCIpOworICAgIHRv
a2Vucy52YWx1ZSA9IE9iamVjdChfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVf
Ml9fWyJjb25zdF92YWx1ZSJdKSh0b2tlbmlzZXIpIHx8IHRva2VuaXNlci5lcnJvcigiQ29uc3Qg
bGFja3MgYSB2YWx1ZSIpOworICAgIHRva2Vucy50ZXJtaW5hdGlvbiA9IHRva2VuaXNlci5jb25z
dW1lKCI7IikgfHwgdG9rZW5pc2VyLmVycm9yKCJVbnRlcm1pbmF0ZWQgY29uc3QsIGV4cGVjdGVk
IGA7YCIpOworICAgIGNvbnN0IHJldCA9IG5ldyBDb25zdGFudCh7IHNvdXJjZTogdG9rZW5pc2Vy
LnNvdXJjZSwgdG9rZW5zIH0pOworICAgIHJldC5pZGxUeXBlID0gaWRsVHlwZTsKKyAgICByZXR1
cm4gcmV0OworICB9CisKKyAgZ2V0IHR5cGUoKSB7CisgICAgcmV0dXJuICJjb25zdCI7CisgIH0K
KyAgZ2V0IG5hbWUoKSB7CisgICAgcmV0dXJuIHVuZXNjYXBlKHRoaXMudG9rZW5zLm5hbWUudmFs
dWUpOworICB9CisgIGdldCB2YWx1ZSgpIHsKKyAgICByZXR1cm4gT2JqZWN0KF9oZWxwZXJzX2pz
X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19bImNvbnN0X2RhdGEiXSkodGhpcy50b2tlbnMu
dmFsdWUpOworICB9Cit9CisKKworLyoqKi8gfSksCisvKiAyMiAqLworLyoqKi8gKGZ1bmN0aW9u
KG1vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgeworCisi
dXNlIHN0cmljdCI7CitfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7
CisvKiBoYXJtb255IGV4cG9ydCAoYmluZGluZykgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9f
d2VicGFja19leHBvcnRzX18sICJJdGVyYWJsZUxpa2UiLCBmdW5jdGlvbigpIHsgcmV0dXJuIEl0
ZXJhYmxlTGlrZTsgfSk7CisvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2Jhc2VfanNfX1dFQlBB
Q0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oNik7CisvKiBoYXJt
b255IGltcG9ydCAqLyB2YXIgX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFf
XyA9IF9fd2VicGFja19yZXF1aXJlX18oNCk7CisKKworCitjbGFzcyBJdGVyYWJsZUxpa2UgZXh0
ZW5kcyBfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJCYXNlIl0geworICAv
KioKKyAgICogQHBhcmFtIHtpbXBvcnQoIi4uL3Rva2VuaXNlci5qcyIpLlRva2VuaXNlcn0gdG9r
ZW5pc2VyCisgICAqLworICBzdGF0aWMgcGFyc2UodG9rZW5pc2VyKSB7CisgICAgY29uc3Qgc3Rh
cnRfcG9zaXRpb24gPSB0b2tlbmlzZXIucG9zaXRpb247CisgICAgY29uc3QgdG9rZW5zID0ge307
CisgICAgY29uc3QgcmV0ID0gbmV3IEl0ZXJhYmxlTGlrZSh7IHNvdXJjZTogdG9rZW5pc2VyLnNv
dXJjZSwgdG9rZW5zIH0pOworICAgIHRva2Vucy5yZWFkb25seSA9IHRva2VuaXNlci5jb25zdW1l
KCJyZWFkb25seSIpOworICAgIGlmICghdG9rZW5zLnJlYWRvbmx5KSB7CisgICAgICB0b2tlbnMu
YXN5bmMgPSB0b2tlbmlzZXIuY29uc3VtZSgiYXN5bmMiKTsKKyAgICB9CisgICAgdG9rZW5zLmJh
c2UgPQorICAgICAgdG9rZW5zLnJlYWRvbmx5ID8gdG9rZW5pc2VyLmNvbnN1bWUoIm1hcGxpa2Ui
LCAic2V0bGlrZSIpIDoKKyAgICAgIHRva2Vucy5hc3luYyA/IHRva2VuaXNlci5jb25zdW1lKCJp
dGVyYWJsZSIpIDoKKyAgICAgIHRva2VuaXNlci5jb25zdW1lKCJpdGVyYWJsZSIsICJtYXBsaWtl
IiwgInNldGxpa2UiKTsKKyAgICBpZiAoIXRva2Vucy5iYXNlKSB7CisgICAgICB0b2tlbmlzZXIu
dW5jb25zdW1lKHN0YXJ0X3Bvc2l0aW9uKTsKKyAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBj
b25zdCB7IHR5cGUgfSA9IHJldDsKKyAgICBjb25zdCBzZWNvbmRUeXBlUmVxdWlyZWQgPSB0eXBl
ID09PSAibWFwbGlrZSIgfHwgcmV0LmFzeW5jOworICAgIGNvbnN0IHNlY29uZFR5cGVBbGxvd2Vk
ID0gc2Vjb25kVHlwZVJlcXVpcmVkIHx8IHR5cGUgPT09ICJpdGVyYWJsZSI7CisKKyAgICB0b2tl
bnMub3BlbiA9IHRva2VuaXNlci5jb25zdW1lKCI8IikgfHwgdG9rZW5pc2VyLmVycm9yKGBNaXNz
aW5nIGxlc3MtdGhhbiBzaWduIFxgPFxgIGluICR7dHlwZX0gZGVjbGFyYXRpb25gKTsKKyAgICBj
b25zdCBmaXJzdCA9IE9iamVjdChfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVf
MV9fWyJ0eXBlX3dpdGhfZXh0ZW5kZWRfYXR0cmlidXRlcyJdKSh0b2tlbmlzZXIpIHx8IHRva2Vu
aXNlci5lcnJvcihgTWlzc2luZyBhIHR5cGUgYXJndW1lbnQgaW4gJHt0eXBlfSBkZWNsYXJhdGlv
bmApOworICAgIHJldC5pZGxUeXBlID0gW2ZpcnN0XTsKKyAgICBpZiAoc2Vjb25kVHlwZUFsbG93
ZWQpIHsKKyAgICAgIGZpcnN0LnRva2Vucy5zZXBhcmF0b3IgPSB0b2tlbmlzZXIuY29uc3VtZSgi
LCIpOworICAgICAgaWYgKGZpcnN0LnRva2Vucy5zZXBhcmF0b3IpIHsKKyAgICAgICAgcmV0Lmlk
bFR5cGUucHVzaChPYmplY3QoX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFf
X1sidHlwZV93aXRoX2V4dGVuZGVkX2F0dHJpYnV0ZXMiXSkodG9rZW5pc2VyKSk7CisgICAgICB9
CisgICAgICBlbHNlIGlmIChzZWNvbmRUeXBlUmVxdWlyZWQpIHsKKyAgICAgICAgdG9rZW5pc2Vy
LmVycm9yKGBNaXNzaW5nIHNlY29uZCB0eXBlIGFyZ3VtZW50IGluICR7dHlwZX0gZGVjbGFyYXRp
b25gKTsKKyAgICAgIH0KKyAgICB9CisgICAgdG9rZW5zLmNsb3NlID0gdG9rZW5pc2VyLmNvbnN1
bWUoIj4iKSB8fCB0b2tlbmlzZXIuZXJyb3IoYE1pc3NpbmcgZ3JlYXRlci10aGFuIHNpZ24gXGA+
XGAgaW4gJHt0eXBlfSBkZWNsYXJhdGlvbmApOworICAgIHRva2Vucy50ZXJtaW5hdGlvbiA9IHRv
a2VuaXNlci5jb25zdW1lKCI7IikgfHwgdG9rZW5pc2VyLmVycm9yKGBNaXNzaW5nIHNlbWljb2xv
biBhZnRlciAke3R5cGV9IGRlY2xhcmF0aW9uYCk7CisKKyAgICByZXR1cm4gcmV0OworICB9CisK
KyAgZ2V0IHR5cGUoKSB7CisgICAgcmV0dXJuIHRoaXMudG9rZW5zLmJhc2UudmFsdWU7CisgIH0K
KyAgZ2V0IHJlYWRvbmx5KCkgeworICAgIHJldHVybiAhIXRoaXMudG9rZW5zLnJlYWRvbmx5Owor
ICB9CisgIGdldCBhc3luYygpIHsKKyAgICByZXR1cm4gISF0aGlzLnRva2Vucy5hc3luYzsKKyAg
fQorfQorCisKKy8qKiovIH0pLAorLyogMjMgKi8KKy8qKiovIChmdW5jdGlvbihtb2R1bGUsIF9f
d2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pIHsKKworInVzZSBzdHJpY3Qi
OworX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pOworLyogaGFybW9u
eSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhw
b3J0c19fLCAiY2hlY2tJbnRlcmZhY2VNZW1iZXJEdXBsaWNhdGlvbiIsIGZ1bmN0aW9uKCkgeyBy
ZXR1cm4gY2hlY2tJbnRlcmZhY2VNZW1iZXJEdXBsaWNhdGlvbjsgfSk7CisvKiBoYXJtb255IGlt
cG9ydCAqLyB2YXIgX2Vycm9yX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dl
YnBhY2tfcmVxdWlyZV9fKDMpOworCisKK2Z1bmN0aW9uKiBjaGVja0ludGVyZmFjZU1lbWJlckR1
cGxpY2F0aW9uKGRlZnMsIGkpIHsKKyAgY29uc3Qgb3BOYW1lcyA9IG5ldyBTZXQoZ2V0T3BlcmF0
aW9ucyhpKS5tYXAob3AgPT4gb3AubmFtZSkpOworICBjb25zdCBwYXJ0aWFscyA9IGRlZnMucGFy
dGlhbHMuZ2V0KGkubmFtZSkgfHwgW107CisgIGNvbnN0IG1peGlucyA9IGRlZnMubWl4aW5NYXAu
Z2V0KGkubmFtZSkgfHwgW107CisgIGZvciAoY29uc3QgZXh0IG9mIFsuLi5wYXJ0aWFscywgLi4u
bWl4aW5zXSkgeworICAgIGNvbnN0IGFkZGl0aW9ucyA9IGdldE9wZXJhdGlvbnMoZXh0KTsKKyAg
ICB5aWVsZCogZm9yRWFjaEV4dGVuc2lvbihhZGRpdGlvbnMsIG9wTmFtZXMsIGV4dCwgaSk7Cisg
ICAgZm9yIChjb25zdCBhZGRpdGlvbiBvZiBhZGRpdGlvbnMpIHsKKyAgICAgIG9wTmFtZXMuYWRk
KGFkZGl0aW9uLm5hbWUpOworICAgIH0KKyAgfQorCisgIGZ1bmN0aW9uKiBmb3JFYWNoRXh0ZW5z
aW9uKGFkZGl0aW9ucywgZXhpc3RpbmdzLCBleHQsIGJhc2UpIHsKKyAgICBmb3IgKGNvbnN0IGFk
ZGl0aW9uIG9mIGFkZGl0aW9ucykgeworICAgICAgY29uc3QgeyBuYW1lIH0gPSBhZGRpdGlvbjsK
KyAgICAgIGlmIChuYW1lICYmIGV4aXN0aW5ncy5oYXMobmFtZSkpIHsKKyAgICAgICAgY29uc3Qg
bWVzc2FnZSA9IGBUaGUgb3BlcmF0aW9uICIke25hbWV9IiBoYXMgYWxyZWFkeSBiZWVuIGRlZmlu
ZWQgZm9yIHRoZSBiYXNlIGludGVyZmFjZSAiJHtiYXNlLm5hbWV9IiBlaXRoZXIgaW4gaXRzZWxm
IG9yIGluIGEgbWl4aW5gOworICAgICAgICB5aWVsZCBPYmplY3QoX2Vycm9yX2pzX19XRUJQQUNL
X0lNUE9SVEVEX01PRFVMRV8wX19bInZhbGlkYXRpb25FcnJvciJdKShleHQuc291cmNlLCBhZGRp
dGlvbi50b2tlbnMubmFtZSwgZXh0LCBtZXNzYWdlKTsKKyAgICAgIH0KKyAgICB9CisgIH0KKwor
ICBmdW5jdGlvbiBnZXRPcGVyYXRpb25zKGkpIHsKKyAgICByZXR1cm4gaS5tZW1iZXJzCisgICAg
ICAuZmlsdGVyKCh7dHlwZX0pID0+IHR5cGUgPT09ICJvcGVyYXRpb24iKTsKKyAgfQorfQorCisK
Ky8qKiovIH0pLAorLyogMjQgKi8KKy8qKiovIChmdW5jdGlvbihtb2R1bGUsIF9fd2VicGFja19l
eHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pIHsKKworInVzZSBzdHJpY3QiOworX193ZWJw
YWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pOworLyogaGFybW9ueSBleHBvcnQg
KGJpbmRpbmcpICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAi
Q29uc3RydWN0b3IiLCBmdW5jdGlvbigpIHsgcmV0dXJuIENvbnN0cnVjdG9yOyB9KTsKKy8qIGhh
cm1vbnkgaW1wb3J0ICovIHZhciBfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9f
ID0gX193ZWJwYWNrX3JlcXVpcmVfXyg2KTsKKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfaGVs
cGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVf
Xyg0KTsKKworCisKK2NsYXNzIENvbnN0cnVjdG9yIGV4dGVuZHMgX2Jhc2VfanNfX1dFQlBBQ0tf
SU1QT1JURURfTU9EVUxFXzBfX1siQmFzZSJdIHsKKyAgLyoqCisgICAqIEBwYXJhbSB7aW1wb3J0
KCIuLi90b2tlbmlzZXIiKS5Ub2tlbmlzZXJ9IHRva2VuaXNlcgorICAgKi8KKyAgc3RhdGljIHBh
cnNlKHRva2VuaXNlcikgeworICAgIGNvbnN0IGJhc2UgPSB0b2tlbmlzZXIuY29uc3VtZSgiY29u
c3RydWN0b3IiKTsKKyAgICBpZiAoIWJhc2UpIHsKKyAgICAgIHJldHVybjsKKyAgICB9CisgICAg
Y29uc3QgdG9rZW5zID0geyBiYXNlIH07CisgICAgdG9rZW5zLm9wZW4gPSB0b2tlbmlzZXIuY29u
c3VtZSgiKCIpIHx8IHRva2VuaXNlci5lcnJvcigiTm8gYXJndW1lbnQgbGlzdCBpbiBjb25zdHJ1
Y3RvciIpOworICAgIGNvbnN0IGFyZ3MgPSBPYmplY3QoX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1Q
T1JURURfTU9EVUxFXzFfX1siYXJndW1lbnRfbGlzdCJdKSh0b2tlbmlzZXIpOworICAgIHRva2Vu
cy5jbG9zZSA9IHRva2VuaXNlci5jb25zdW1lKCIpIikgfHwgdG9rZW5pc2VyLmVycm9yKCJVbnRl
cm1pbmF0ZWQgY29uc3RydWN0b3IiKTsKKyAgICB0b2tlbnMudGVybWluYXRpb24gPSB0b2tlbmlz
ZXIuY29uc3VtZSgiOyIpIHx8IHRva2VuaXNlci5lcnJvcigiTm8gc2VtaWNvbG9uIGFmdGVyIGNv
bnN0cnVjdG9yIik7CisgICAgY29uc3QgcmV0ID0gbmV3IENvbnN0cnVjdG9yKHsgdG9rZW5zIH0p
OworICAgIHJldC5hcmd1bWVudHMgPSBhcmdzOworICAgIHJldHVybiByZXQ7CisgIH0KKworICBn
ZXQgdHlwZSgpIHsKKyAgICByZXR1cm4gImNvbnN0cnVjdG9yIjsKKyAgfQorfQorCisKKy8qKiov
IH0pLAorLyogMjUgKi8KKy8qKiovIChmdW5jdGlvbihtb2R1bGUsIF9fd2VicGFja19leHBvcnRz
X18sIF9fd2VicGFja19yZXF1aXJlX18pIHsKKworInVzZSBzdHJpY3QiOworX193ZWJwYWNrX3Jl
cXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pOworLyogaGFybW9ueSBleHBvcnQgKGJpbmRp
bmcpICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAiTWl4aW4i
LCBmdW5jdGlvbigpIHsgcmV0dXJuIE1peGluOyB9KTsKKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZh
ciBfY29udGFpbmVyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tf
cmVxdWlyZV9fKDIwKTsKKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfY29uc3RhbnRfanNfX1dF
QlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMjEpOworLyog
aGFybW9ueSBpbXBvcnQgKi8gdmFyIF9hdHRyaWJ1dGVfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9E
VUxFXzJfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMTQpOworLyogaGFybW9ueSBpbXBvcnQgKi8g
dmFyIF9vcGVyYXRpb25fanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXyA9IF9fd2VicGFj
a19yZXF1aXJlX18oMTMpOworLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9oZWxwZXJzX2pzX19X
RUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDQpOworCisK
KworCisKKworY2xhc3MgTWl4aW4gZXh0ZW5kcyBfY29udGFpbmVyX2pzX19XRUJQQUNLX0lNUE9S
VEVEX01PRFVMRV8wX19bIkNvbnRhaW5lciJdIHsKKyAgLyoqCisgICAqIEBwYXJhbSB7aW1wb3J0
KCIuLi90b2tlbmlzZXIiKS5Ub2tlbmlzZXJ9IHRva2VuaXNlcgorICAgKi8KKyAgc3RhdGljIHBh
cnNlKHRva2VuaXNlciwgYmFzZSwgeyBwYXJ0aWFsIH0gPSB7fSkgeworICAgIGNvbnN0IHRva2Vu
cyA9IHsgcGFydGlhbCwgYmFzZSB9OworICAgIHRva2Vucy5taXhpbiA9IHRva2VuaXNlci5jb25z
dW1lKCJtaXhpbiIpOworICAgIGlmICghdG9rZW5zLm1peGluKSB7CisgICAgICByZXR1cm47Cisg
ICAgfQorICAgIHJldHVybiBfY29udGFpbmVyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8w
X19bIkNvbnRhaW5lciJdLnBhcnNlKHRva2VuaXNlciwgbmV3IE1peGluKHsgc291cmNlOiB0b2tl
bmlzZXIuc291cmNlLCB0b2tlbnMgfSksIHsKKyAgICAgIHR5cGU6ICJpbnRlcmZhY2UgbWl4aW4i
LAorICAgICAgYWxsb3dlZE1lbWJlcnM6IFsKKyAgICAgICAgW19jb25zdGFudF9qc19fV0VCUEFD
S19JTVBPUlRFRF9NT0RVTEVfMV9fWyJDb25zdGFudCJdLnBhcnNlXSwKKyAgICAgICAgW19oZWxw
ZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X19bInN0cmluZ2lmaWVyIl1dLAorICAg
ICAgICBbX2F0dHJpYnV0ZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fWyJBdHRyaWJ1
dGUiXS5wYXJzZSwgeyBub0luaGVyaXQ6IHRydWUgfV0sCisgICAgICAgIFtfb3BlcmF0aW9uX2pz
X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX19bIk9wZXJhdGlvbiJdLnBhcnNlLCB7IHJlZ3Vs
YXI6IHRydWUgfV0KKyAgICAgIF0KKyAgICB9KTsKKyAgfQorCisgIGdldCB0eXBlKCkgeworICAg
IHJldHVybiAiaW50ZXJmYWNlIG1peGluIjsKKyAgfQorfQorCisKKy8qKiovIH0pLAorLyogMjYg
Ki8KKy8qKiovIChmdW5jdGlvbihtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFj
a19yZXF1aXJlX18pIHsKKworInVzZSBzdHJpY3QiOworX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9f
d2VicGFja19leHBvcnRzX18pOworLyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2Vi
cGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAiRGljdGlvbmFyeSIsIGZ1bmN0
aW9uKCkgeyByZXR1cm4gRGljdGlvbmFyeTsgfSk7CisvKiBoYXJtb255IGltcG9ydCAqLyB2YXIg
X2NvbnRhaW5lcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3Jl
cXVpcmVfXygyMCk7CisvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2ZpZWxkX2pzX19XRUJQQUNL
X0lNUE9SVEVEX01PRFVMRV8xX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDI3KTsKKworCisKK2Ns
YXNzIERpY3Rpb25hcnkgZXh0ZW5kcyBfY29udGFpbmVyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01P
RFVMRV8wX19bIkNvbnRhaW5lciJdIHsKKyAgLyoqCisgICAqIEBwYXJhbSB7aW1wb3J0KCIuLi90
b2tlbmlzZXIiKS5Ub2tlbmlzZXJ9IHRva2VuaXNlcgorICAgKi8KKyAgc3RhdGljIHBhcnNlKHRv
a2VuaXNlciwgeyBwYXJ0aWFsIH0gPSB7fSkgeworICAgIGNvbnN0IHRva2VucyA9IHsgcGFydGlh
bCB9OworICAgIHRva2Vucy5iYXNlID0gdG9rZW5pc2VyLmNvbnN1bWUoImRpY3Rpb25hcnkiKTsK
KyAgICBpZiAoIXRva2Vucy5iYXNlKSB7CisgICAgICByZXR1cm47CisgICAgfQorICAgIHJldHVy
biBfY29udGFpbmVyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIkNvbnRhaW5lciJd
LnBhcnNlKHRva2VuaXNlciwgbmV3IERpY3Rpb25hcnkoeyBzb3VyY2U6IHRva2VuaXNlci5zb3Vy
Y2UsIHRva2VucyB9KSwgeworICAgICAgdHlwZTogImRpY3Rpb25hcnkiLAorICAgICAgaW5oZXJp
dGFibGU6ICFwYXJ0aWFsLAorICAgICAgYWxsb3dlZE1lbWJlcnM6IFsKKyAgICAgICAgW19maWVs
ZF9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fWyJGaWVsZCJdLnBhcnNlXSwKKyAgICAg
IF0KKyAgICB9KTsKKyAgfQorCisgIGdldCB0eXBlKCkgeworICAgIHJldHVybiAiZGljdGlvbmFy
eSI7CisgIH0KK30KKworCisvKioqLyB9KSwKKy8qIDI3ICovCisvKioqLyAoZnVuY3Rpb24obW9k
dWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CisKKyJ1c2Ug
c3RyaWN0IjsKK19fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTsKKy8q
IGhhcm1vbnkgZXhwb3J0IChiaW5kaW5nKSAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJw
YWNrX2V4cG9ydHNfXywgIkZpZWxkIiwgZnVuY3Rpb24oKSB7IHJldHVybiBGaWVsZDsgfSk7Cisv
KiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxF
XzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oNik7CisvKiBoYXJtb255IGltcG9ydCAqLyB2YXIg
X2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1
aXJlX18oNCk7CisvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2V4dGVuZGVkX2F0dHJpYnV0ZXNf
anNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMTAp
OworLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9kZWZhdWx0X2pzX19XRUJQQUNLX0lNUE9SVEVE
X01PRFVMRV8zX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDkpOworCisKKworCisKK2NsYXNzIEZp
ZWxkIGV4dGVuZHMgX2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siQmFzZSJd
IHsKKyAgLyoqCisgICAqIEBwYXJhbSB7aW1wb3J0KCIuLi90b2tlbmlzZXIiKS5Ub2tlbmlzZXJ9
IHRva2VuaXNlcgorICAgKi8KKyAgc3RhdGljIHBhcnNlKHRva2VuaXNlcikgeworICAgIGNvbnN0
IHRva2VucyA9IHt9OworICAgIGNvbnN0IHJldCA9IG5ldyBGaWVsZCh7IHNvdXJjZTogdG9rZW5p
c2VyLnNvdXJjZSwgdG9rZW5zIH0pOworICAgIHJldC5leHRBdHRycyA9IF9leHRlbmRlZF9hdHRy
aWJ1dGVzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19bIkV4dGVuZGVkQXR0cmlidXRl
cyJdLnBhcnNlKHRva2VuaXNlcik7CisgICAgdG9rZW5zLnJlcXVpcmVkID0gdG9rZW5pc2VyLmNv
bnN1bWUoInJlcXVpcmVkIik7CisgICAgcmV0LmlkbFR5cGUgPSBPYmplY3QoX2hlbHBlcnNfanNf
X1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX1sidHlwZV93aXRoX2V4dGVuZGVkX2F0dHJpYnV0
ZXMiXSkodG9rZW5pc2VyLCAiZGljdGlvbmFyeS10eXBlIikgfHwgdG9rZW5pc2VyLmVycm9yKCJE
aWN0aW9uYXJ5IG1lbWJlciBsYWNrcyBhIHR5cGUiKTsKKyAgICB0b2tlbnMubmFtZSA9IHRva2Vu
aXNlci5jb25zdW1lKCJpZGVudGlmaWVyIikgfHwgdG9rZW5pc2VyLmVycm9yKCJEaWN0aW9uYXJ5
IG1lbWJlciBsYWNrcyBhIG5hbWUiKTsKKyAgICByZXQuZGVmYXVsdCA9IF9kZWZhdWx0X2pzX19X
RUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX19bIkRlZmF1bHQiXS5wYXJzZSh0b2tlbmlzZXIpOwor
ICAgIGlmICh0b2tlbnMucmVxdWlyZWQgJiYgcmV0LmRlZmF1bHQpIHRva2VuaXNlci5lcnJvcigi
UmVxdWlyZWQgbWVtYmVyIG11c3Qgbm90IGhhdmUgYSBkZWZhdWx0Iik7CisgICAgdG9rZW5zLnRl
cm1pbmF0aW9uID0gdG9rZW5pc2VyLmNvbnN1bWUoIjsiKSB8fCB0b2tlbmlzZXIuZXJyb3IoIlVu
dGVybWluYXRlZCBkaWN0aW9uYXJ5IG1lbWJlciwgZXhwZWN0ZWQgYDtgIik7CisgICAgcmV0dXJu
IHJldDsKKyAgfQorCisgIGdldCB0eXBlKCkgeworICAgIHJldHVybiAiZmllbGQiOworICB9Cisg
IGdldCBuYW1lKCkgeworICAgIHJldHVybiBPYmplY3QoX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1Q
T1JURURfTU9EVUxFXzFfX1sidW5lc2NhcGUiXSkodGhpcy50b2tlbnMubmFtZS52YWx1ZSk7Cisg
IH0KKyAgZ2V0IHJlcXVpcmVkKCkgeworICAgIHJldHVybiAhIXRoaXMudG9rZW5zLnJlcXVpcmVk
OworICB9CisKKyAgKnZhbGlkYXRlKGRlZnMpIHsKKyAgICB5aWVsZCogdGhpcy5pZGxUeXBlLnZh
bGlkYXRlKGRlZnMpOworICB9Cit9CisKKworLyoqKi8gfSksCisvKiAyOCAqLworLyoqKi8gKGZ1
bmN0aW9uKG1vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykg
eworCisidXNlIHN0cmljdCI7CitfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9y
dHNfXyk7CisvKiBoYXJtb255IGV4cG9ydCAoYmluZGluZykgKi8gX193ZWJwYWNrX3JlcXVpcmVf
Xy5kKF9fd2VicGFja19leHBvcnRzX18sICJOYW1lc3BhY2UiLCBmdW5jdGlvbigpIHsgcmV0dXJu
IE5hbWVzcGFjZTsgfSk7CisvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2NvbnRhaW5lcl9qc19f
V0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygyMCk7Cisv
KiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2F0dHJpYnV0ZV9qc19fV0VCUEFDS19JTVBPUlRFRF9N
T0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygxNCk7CisvKiBoYXJtb255IGltcG9ydCAq
LyB2YXIgX29wZXJhdGlvbl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fID0gX193ZWJw
YWNrX3JlcXVpcmVfXygxMyk7CisvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2Vycm9yX2pzX19X
RUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDMpOworLyog
aGFybW9ueSBpbXBvcnQgKi8gdmFyIF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVM
RV80X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDQpOworCisKKworCisKKworY2xhc3MgTmFtZXNw
YWNlIGV4dGVuZHMgX2NvbnRhaW5lcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJD
b250YWluZXIiXSB7CisgIC8qKgorICAgKiBAcGFyYW0ge2ltcG9ydCgiLi4vdG9rZW5pc2VyIiku
VG9rZW5pc2VyfSB0b2tlbmlzZXIKKyAgICovCisgIHN0YXRpYyBwYXJzZSh0b2tlbmlzZXIsIHsg
cGFydGlhbCB9ID0ge30pIHsKKyAgICBjb25zdCB0b2tlbnMgPSB7IHBhcnRpYWwgfTsKKyAgICB0
b2tlbnMuYmFzZSA9IHRva2VuaXNlci5jb25zdW1lKCJuYW1lc3BhY2UiKTsKKyAgICBpZiAoIXRv
a2Vucy5iYXNlKSB7CisgICAgICByZXR1cm47CisgICAgfQorICAgIHJldHVybiBfY29udGFpbmVy
X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIkNvbnRhaW5lciJdLnBhcnNlKHRva2Vu
aXNlciwgbmV3IE5hbWVzcGFjZSh7IHNvdXJjZTogdG9rZW5pc2VyLnNvdXJjZSwgdG9rZW5zIH0p
LCB7CisgICAgICB0eXBlOiAibmFtZXNwYWNlIiwKKyAgICAgIGFsbG93ZWRNZW1iZXJzOiBbCisg
ICAgICAgIFtfYXR0cmlidXRlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19bIkF0dHJp
YnV0ZSJdLnBhcnNlLCB7IG5vSW5oZXJpdDogdHJ1ZSwgcmVhZG9ubHk6IHRydWUgfV0sCisgICAg
ICAgIFtfb3BlcmF0aW9uX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19bIk9wZXJhdGlv
biJdLnBhcnNlLCB7IHJlZ3VsYXI6IHRydWUgfV0KKyAgICAgIF0KKyAgICB9KTsKKyAgfQorCisg
IGdldCB0eXBlKCkgeworICAgIHJldHVybiAibmFtZXNwYWNlIjsKKyAgfQorCisgICp2YWxpZGF0
ZShkZWZzKSB7CisgICAgaWYgKCF0aGlzLnBhcnRpYWwgJiYgdGhpcy5leHRBdHRycy5ldmVyeShl
eHRBdHRyID0+IGV4dEF0dHIubmFtZSAhPT0gIkV4cG9zZWQiKSkgeworICAgICAgY29uc3QgbWVz
c2FnZSA9IGBOYW1lc3BhY2VzIG11c3QgaGF2ZSBbRXhwb3NlZF0gZXh0ZW5kZWQgYXR0cmlidXRl
LiBcCitUbyBmaXgsIGFkZCwgZm9yIGV4YW1wbGUsIFtFeHBvc2VkPVdpbmRvd10uIFBsZWFzZSBh
bHNvIGNvbnNpZGVyIGNhcmVmdWxseSBcCitpZiB5b3VyIG5hbWVzcGFjZSBzaG91bGQgYWxzbyBi
ZSBleHBvc2VkIGluIGEgV29ya2VyIHNjb3BlLiBSZWZlciB0byB0aGUgXAorW1dlYklETCBzcGVj
IHNlY3Rpb24gb24gRXhwb3NlZF0oaHR0cHM6Ly9oZXljYW0uZ2l0aHViLmlvL3dlYmlkbC8jRXhw
b3NlZCkgXAorZm9yIG1vcmUgaW5mb3JtYXRpb24uYDsKKyAgICAgIHlpZWxkIE9iamVjdChfZXJy
b3JfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfX1sidmFsaWRhdGlvbkVycm9yIl0pKHRo
aXMuc291cmNlLCB0aGlzLnRva2Vucy5uYW1lLCB0aGlzLCBtZXNzYWdlLCB7CisgICAgICAgIGF1
dG9maXg6IE9iamVjdChfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fWyJh
dXRvZml4QWRkRXhwb3NlZFdpbmRvdyJdKSh0aGlzKQorICAgICAgfSk7CisgICAgfQorICAgIHlp
ZWxkKiBzdXBlci52YWxpZGF0ZShkZWZzKTsKKyAgfQorfQorCisKKy8qKiovIH0pLAorLyogMjkg
Ki8KKy8qKiovIChmdW5jdGlvbihtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFj
a19yZXF1aXJlX18pIHsKKworInVzZSBzdHJpY3QiOworX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9f
d2VicGFja19leHBvcnRzX18pOworLyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2Vi
cGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAiQ2FsbGJhY2tJbnRlcmZhY2Ui
LCBmdW5jdGlvbigpIHsgcmV0dXJuIENhbGxiYWNrSW50ZXJmYWNlOyB9KTsKKy8qIGhhcm1vbnkg
aW1wb3J0ICovIHZhciBfY29udGFpbmVyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18g
PSBfX3dlYnBhY2tfcmVxdWlyZV9fKDIwKTsKKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfb3Bl
cmF0aW9uX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18gPSBfX3dlYnBhY2tfcmVxdWly
ZV9fKDEzKTsKKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfY29uc3RhbnRfanNfX1dFQlBBQ0tf
SU1QT1JURURfTU9EVUxFXzJfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMjEpOworCisKKworCisK
K2NsYXNzIENhbGxiYWNrSW50ZXJmYWNlIGV4dGVuZHMgX2NvbnRhaW5lcl9qc19fV0VCUEFDS19J
TVBPUlRFRF9NT0RVTEVfMF9fWyJDb250YWluZXIiXSB7CisgIC8qKgorICAgKiBAcGFyYW0ge2lt
cG9ydCgiLi4vdG9rZW5pc2VyIikuVG9rZW5pc2VyfSB0b2tlbmlzZXIKKyAgICovCisgIHN0YXRp
YyBwYXJzZSh0b2tlbmlzZXIsIGNhbGxiYWNrLCB7IHBhcnRpYWwgPSBudWxsIH0gPSB7fSkgewor
ICAgIGNvbnN0IHRva2VucyA9IHsgY2FsbGJhY2sgfTsKKyAgICB0b2tlbnMuYmFzZSA9IHRva2Vu
aXNlci5jb25zdW1lKCJpbnRlcmZhY2UiKTsKKyAgICBpZiAoIXRva2Vucy5iYXNlKSB7CisgICAg
ICByZXR1cm47CisgICAgfQorICAgIHJldHVybiBfY29udGFpbmVyX2pzX19XRUJQQUNLX0lNUE9S
VEVEX01PRFVMRV8wX19bIkNvbnRhaW5lciJdLnBhcnNlKHRva2VuaXNlciwgbmV3IENhbGxiYWNr
SW50ZXJmYWNlKHsgc291cmNlOiB0b2tlbmlzZXIuc291cmNlLCB0b2tlbnMgfSksIHsKKyAgICAg
IHR5cGU6ICJjYWxsYmFjayBpbnRlcmZhY2UiLAorICAgICAgaW5oZXJpdGFibGU6ICFwYXJ0aWFs
LAorICAgICAgYWxsb3dlZE1lbWJlcnM6IFsKKyAgICAgICAgW19jb25zdGFudF9qc19fV0VCUEFD
S19JTVBPUlRFRF9NT0RVTEVfMl9fWyJDb25zdGFudCJdLnBhcnNlXSwKKyAgICAgICAgW19vcGVy
YXRpb25fanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX1siT3BlcmF0aW9uIl0ucGFyc2Us
IHsgcmVndWxhcjogdHJ1ZSB9XQorICAgICAgXQorICAgIH0pOworICB9CisKKyAgZ2V0IHR5cGUo
KSB7CisgICAgcmV0dXJuICJjYWxsYmFjayBpbnRlcmZhY2UiOworICB9Cit9CisKKworLyoqKi8g
fSksCisvKiAzMCAqLworLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNf
XywgX193ZWJwYWNrX3JlcXVpcmVfXykgeworCisidXNlIHN0cmljdCI7CitfX3dlYnBhY2tfcmVx
dWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7CisvKiBoYXJtb255IGV4cG9ydCAoYmluZGlu
ZykgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sICJ3cml0ZSIs
IGZ1bmN0aW9uKCkgeyByZXR1cm4gd3JpdGU7IH0pOworCisKK2Z1bmN0aW9uIG5vb3AoYXJnKSB7
CisgIHJldHVybiBhcmc7Cit9CisKK2NvbnN0IHRlbXBsYXRlcyA9IHsKKyAgd3JhcDogaXRlbXMg
PT4gaXRlbXMuam9pbigiIiksCisgIHRyaXZpYTogbm9vcCwKKyAgbmFtZTogbm9vcCwKKyAgcmVm
ZXJlbmNlOiBub29wLAorICB0eXBlOiBub29wLAorICBnZW5lcmljOiBub29wLAorICBuYW1lbGVz
czogbm9vcCwKKyAgaW5oZXJpdGFuY2U6IG5vb3AsCisgIGRlZmluaXRpb246IG5vb3AsCisgIGV4
dGVuZGVkQXR0cmlidXRlOiBub29wLAorICBleHRlbmRlZEF0dHJpYnV0ZVJlZmVyZW5jZTogbm9v
cAorfTsKKworZnVuY3Rpb24gd3JpdGUoYXN0LCB7IHRlbXBsYXRlczogdHMgPSB0ZW1wbGF0ZXMg
fSA9IHt9KSB7CisgIHRzID0gT2JqZWN0LmFzc2lnbih7fSwgdGVtcGxhdGVzLCB0cyk7CisKKyAg
ZnVuY3Rpb24gcmVmZXJlbmNlKHJhdywgeyB1bmVzY2FwZWQsIGNvbnRleHQgfSkgeworICAgIGlm
ICghdW5lc2NhcGVkKSB7CisgICAgICB1bmVzY2FwZWQgPSByYXcuc3RhcnRzV2l0aCgiXyIpID8g
cmF3LnNsaWNlKDEpIDogcmF3OworICAgIH0KKyAgICByZXR1cm4gdHMucmVmZXJlbmNlKHJhdywg
dW5lc2NhcGVkLCBjb250ZXh0KTsKKyAgfQorCisgIGZ1bmN0aW9uIHRva2VuKHQsIHdyYXBwZXIg
PSBub29wLCAuLi5hcmdzKSB7CisgICAgaWYgKCF0KSB7CisgICAgICByZXR1cm4gIiI7CisgICAg
fQorICAgIGNvbnN0IHZhbHVlID0gd3JhcHBlcih0LnZhbHVlLCAuLi5hcmdzKTsKKyAgICByZXR1
cm4gdHMud3JhcChbdHMudHJpdmlhKHQudHJpdmlhKSwgdmFsdWVdKTsKKyAgfQorCisgIGZ1bmN0
aW9uIHJlZmVyZW5jZV90b2tlbih0LCBjb250ZXh0KSB7CisgICAgcmV0dXJuIHRva2VuKHQsIHJl
ZmVyZW5jZSwgeyBjb250ZXh0IH0pOworICB9CisKKyAgZnVuY3Rpb24gbmFtZV90b2tlbih0LCBh
cmcpIHsKKyAgICByZXR1cm4gdG9rZW4odCwgdHMubmFtZSwgYXJnKTsKKyAgfQorCisgIGZ1bmN0
aW9uIHR5cGVfYm9keShpdCkgeworICAgIGlmIChpdC51bmlvbiB8fCBpdC5nZW5lcmljKSB7Cisg
ICAgICByZXR1cm4gdHMud3JhcChbCisgICAgICAgIHRva2VuKGl0LnRva2Vucy5iYXNlLCB0cy5n
ZW5lcmljKSwKKyAgICAgICAgdG9rZW4oaXQudG9rZW5zLm9wZW4pLAorICAgICAgICAuLi5pdC5z
dWJ0eXBlLm1hcCh0eXBlKSwKKyAgICAgICAgdG9rZW4oaXQudG9rZW5zLmNsb3NlKQorICAgICAg
XSk7CisgICAgfQorICAgIGNvbnN0IGZpcnN0VG9rZW4gPSBpdC50b2tlbnMucHJlZml4IHx8IGl0
LnRva2Vucy5iYXNlOworICAgIGNvbnN0IHByZWZpeCA9IGl0LnRva2Vucy5wcmVmaXggPyBbCisg
ICAgICBpdC50b2tlbnMucHJlZml4LnZhbHVlLAorICAgICAgdHMudHJpdmlhKGl0LnRva2Vucy5i
YXNlLnRyaXZpYSkKKyAgICBdIDogW107CisgICAgY29uc3QgcmVmID0gcmVmZXJlbmNlKHRzLndy
YXAoWworICAgICAgLi4ucHJlZml4LAorICAgICAgaXQudG9rZW5zLmJhc2UudmFsdWUsCisgICAg
ICB0b2tlbihpdC50b2tlbnMucG9zdGZpeCkKKyAgICBdKSwgeyB1bmVzY2FwZWQ6IGl0LmlkbFR5
cGUsIGNvbnRleHQ6IGl0IH0pOworICAgIHJldHVybiB0cy53cmFwKFt0cy50cml2aWEoZmlyc3RU
b2tlbi50cml2aWEpLCByZWZdKTsKKyAgfQorICBmdW5jdGlvbiB0eXBlKGl0KSB7CisgICAgcmV0
dXJuIHRzLndyYXAoWworICAgICAgZXh0ZW5kZWRfYXR0cmlidXRlcyhpdC5leHRBdHRycyksCisg
ICAgICB0eXBlX2JvZHkoaXQpLAorICAgICAgdG9rZW4oaXQudG9rZW5zLm51bGxhYmxlKSwKKyAg
ICAgIHRva2VuKGl0LnRva2Vucy5zZXBhcmF0b3IpCisgICAgXSk7CisgIH0KKyAgZnVuY3Rpb24g
ZGVmYXVsdF8oZGVmKSB7CisgICAgaWYgKCFkZWYpIHsKKyAgICAgIHJldHVybiAiIjsKKyAgICB9
CisgICAgcmV0dXJuIHRzLndyYXAoWworICAgICAgdG9rZW4oZGVmLnRva2Vucy5hc3NpZ24pLAor
ICAgICAgLi4uZGVmLmV4cHJlc3Npb24ubWFwKHQgPT4gdG9rZW4odCkpCisgICAgXSk7CisgIH0K
KyAgZnVuY3Rpb24gYXJndW1lbnQoYXJnKSB7CisgICAgcmV0dXJuIHRzLndyYXAoWworICAgICAg
ZXh0ZW5kZWRfYXR0cmlidXRlcyhhcmcuZXh0QXR0cnMpLAorICAgICAgdG9rZW4oYXJnLnRva2Vu
cy5vcHRpb25hbCksCisgICAgICB0cy50eXBlKHR5cGUoYXJnLmlkbFR5cGUpKSwKKyAgICAgIHRv
a2VuKGFyZy50b2tlbnMudmFyaWFkaWMpLAorICAgICAgbmFtZV90b2tlbihhcmcudG9rZW5zLm5h
bWUsIHsgZGF0YTogYXJnIH0pLAorICAgICAgZGVmYXVsdF8oYXJnLmRlZmF1bHQpLAorICAgICAg
dG9rZW4oYXJnLnRva2Vucy5zZXBhcmF0b3IpCisgICAgXSk7CisgIH0KKyAgZnVuY3Rpb24gaWRl
bnRpZmllcihpZCwgY29udGV4dCkgeworICAgIHJldHVybiB0cy53cmFwKFsKKyAgICAgIHJlZmVy
ZW5jZV90b2tlbihpZC50b2tlbnMudmFsdWUsIGNvbnRleHQpLAorICAgICAgdG9rZW4oaWQudG9r
ZW5zLnNlcGFyYXRvcikKKyAgICBdKTsKKyAgfQorICBmdW5jdGlvbiBtYWtlX2V4dF9hdChpdCkg
eworICAgIGNvbnN0IHsgcmhzVHlwZSB9ID0gaXQucGFyYW1zOworICAgIHJldHVybiB0cy53cmFw
KFsKKyAgICAgIHRzLnRyaXZpYShpdC50b2tlbnMubmFtZS50cml2aWEpLAorICAgICAgdHMuZXh0
ZW5kZWRBdHRyaWJ1dGUodHMud3JhcChbCisgICAgICAgIHRzLmV4dGVuZGVkQXR0cmlidXRlUmVm
ZXJlbmNlKGl0Lm5hbWUpLAorICAgICAgICB0b2tlbihpdC5wYXJhbXMudG9rZW5zLmFzc2lnbiks
CisgICAgICAgIHJlZmVyZW5jZV90b2tlbihpdC5wYXJhbXMudG9rZW5zLnNlY29uZGFyeU5hbWUs
IGl0KSwKKyAgICAgICAgdG9rZW4oaXQucGFyYW1zLnRva2Vucy5vcGVuKSwKKyAgICAgICAgLi4u
IWl0LnBhcmFtcy5saXN0ID8gW10gOgorICAgICAgICAgIGl0LnBhcmFtcy5saXN0Lm1hcCgKKyAg
ICAgICAgICAgIHJoc1R5cGUgPT09ICJpZGVudGlmaWVyLWxpc3QiID8gaWQgPT4gaWRlbnRpZmll
cihpZCwgaXQpIDogYXJndW1lbnQKKyAgICAgICAgICApLAorICAgICAgICB0b2tlbihpdC5wYXJh
bXMudG9rZW5zLmNsb3NlKQorICAgICAgXSkpLAorICAgICAgdG9rZW4oaXQudG9rZW5zLnNlcGFy
YXRvcikKKyAgICBdKTsKKyAgfQorICBmdW5jdGlvbiBleHRlbmRlZF9hdHRyaWJ1dGVzKGVhdHMp
IHsKKyAgICBpZiAoIWVhdHMubGVuZ3RoKSByZXR1cm4gIiI7CisgICAgcmV0dXJuIHRzLndyYXAo
WworICAgICAgdG9rZW4oZWF0cy50b2tlbnMub3BlbiksCisgICAgICAuLi5lYXRzLm1hcChtYWtl
X2V4dF9hdCksCisgICAgICB0b2tlbihlYXRzLnRva2Vucy5jbG9zZSkKKyAgICBdKTsKKyAgfQor
CisgIGZ1bmN0aW9uIG9wZXJhdGlvbihpdCwgcGFyZW50KSB7CisgICAgY29uc3QgYm9keSA9IGl0
LmlkbFR5cGUgPyBbCisgICAgICB0cy50eXBlKHR5cGUoaXQuaWRsVHlwZSkpLAorICAgICAgbmFt
ZV90b2tlbihpdC50b2tlbnMubmFtZSwgeyBkYXRhOiBpdCwgcGFyZW50IH0pLAorICAgICAgdG9r
ZW4oaXQudG9rZW5zLm9wZW4pLAorICAgICAgdHMud3JhcChpdC5hcmd1bWVudHMubWFwKGFyZ3Vt
ZW50KSksCisgICAgICB0b2tlbihpdC50b2tlbnMuY2xvc2UpLAorICAgIF0gOiBbXTsKKyAgICBy
ZXR1cm4gdHMuZGVmaW5pdGlvbih0cy53cmFwKFsKKyAgICAgIGV4dGVuZGVkX2F0dHJpYnV0ZXMo
aXQuZXh0QXR0cnMpLAorICAgICAgaXQudG9rZW5zLm5hbWUgPyB0b2tlbihpdC50b2tlbnMuc3Bl
Y2lhbCkgOiB0b2tlbihpdC50b2tlbnMuc3BlY2lhbCwgdHMubmFtZWxlc3MsIHsgZGF0YTogaXQs
IHBhcmVudCB9KSwKKyAgICAgIC4uLmJvZHksCisgICAgICB0b2tlbihpdC50b2tlbnMudGVybWlu
YXRpb24pCisgICAgXSksIHsgZGF0YTogaXQsIHBhcmVudCB9KTsKKyAgfQorCisgIGZ1bmN0aW9u
IGF0dHJpYnV0ZShpdCwgcGFyZW50KSB7CisgICAgcmV0dXJuIHRzLmRlZmluaXRpb24odHMud3Jh
cChbCisgICAgICBleHRlbmRlZF9hdHRyaWJ1dGVzKGl0LmV4dEF0dHJzKSwKKyAgICAgIHRva2Vu
KGl0LnRva2Vucy5zcGVjaWFsKSwKKyAgICAgIHRva2VuKGl0LnRva2Vucy5yZWFkb25seSksCisg
ICAgICB0b2tlbihpdC50b2tlbnMuYmFzZSksCisgICAgICB0cy50eXBlKHR5cGUoaXQuaWRsVHlw
ZSkpLAorICAgICAgbmFtZV90b2tlbihpdC50b2tlbnMubmFtZSwgeyBkYXRhOiBpdCwgcGFyZW50
IH0pLAorICAgICAgdG9rZW4oaXQudG9rZW5zLnRlcm1pbmF0aW9uKQorICAgIF0pLCB7IGRhdGE6
IGl0LCBwYXJlbnQgfSk7CisgIH0KKworICBmdW5jdGlvbiBjb25zdHJ1Y3RvcihpdCwgcGFyZW50
KSB7CisgICAgcmV0dXJuIHRzLmRlZmluaXRpb24odHMud3JhcChbCisgICAgICBleHRlbmRlZF9h
dHRyaWJ1dGVzKGl0LmV4dEF0dHJzKSwKKyAgICAgIHRva2VuKGl0LnRva2Vucy5iYXNlLCB0cy5u
YW1lbGVzcywgeyBkYXRhOiBpdCwgcGFyZW50IH0pLAorICAgICAgdG9rZW4oaXQudG9rZW5zLm9w
ZW4pLAorICAgICAgdHMud3JhcChpdC5hcmd1bWVudHMubWFwKGFyZ3VtZW50KSksCisgICAgICB0
b2tlbihpdC50b2tlbnMuY2xvc2UpLAorICAgICAgdG9rZW4oaXQudG9rZW5zLnRlcm1pbmF0aW9u
KQorICAgIF0pLCB7IGRhdGE6IGl0LCBwYXJlbnQgfSk7CisgIH0KKworICBmdW5jdGlvbiBpbmhl
cml0YW5jZShpbmgpIHsKKyAgICBpZiAoIWluaC50b2tlbnMuaW5oZXJpdGFuY2UpIHsKKyAgICAg
IHJldHVybiAiIjsKKyAgICB9CisgICAgcmV0dXJuIHRzLndyYXAoWworICAgICAgdG9rZW4oaW5o
LnRva2Vucy5jb2xvbiksCisgICAgICB0cy50cml2aWEoaW5oLnRva2Vucy5pbmhlcml0YW5jZS50
cml2aWEpLAorICAgICAgdHMuaW5oZXJpdGFuY2UocmVmZXJlbmNlKGluaC50b2tlbnMuaW5oZXJp
dGFuY2UudmFsdWUsIHsgY29udGV4dDogaW5oIH0pKQorICAgIF0pOworICB9CisKKyAgZnVuY3Rp
b24gY29udGFpbmVyKGl0KSB7CisgICAgcmV0dXJuIHRzLmRlZmluaXRpb24odHMud3JhcChbCisg
ICAgICBleHRlbmRlZF9hdHRyaWJ1dGVzKGl0LmV4dEF0dHJzKSwKKyAgICAgIHRva2VuKGl0LnRv
a2Vucy5jYWxsYmFjayksCisgICAgICB0b2tlbihpdC50b2tlbnMucGFydGlhbCksCisgICAgICB0
b2tlbihpdC50b2tlbnMuYmFzZSksCisgICAgICB0b2tlbihpdC50b2tlbnMubWl4aW4pLAorICAg
ICAgbmFtZV90b2tlbihpdC50b2tlbnMubmFtZSwgeyBkYXRhOiBpdCB9KSwKKyAgICAgIGluaGVy
aXRhbmNlKGl0KSwKKyAgICAgIHRva2VuKGl0LnRva2Vucy5vcGVuKSwKKyAgICAgIGl0ZXJhdGUo
aXQubWVtYmVycywgaXQpLAorICAgICAgdG9rZW4oaXQudG9rZW5zLmNsb3NlKSwKKyAgICAgIHRv
a2VuKGl0LnRva2Vucy50ZXJtaW5hdGlvbikKKyAgICBdKSwgeyBkYXRhOiBpdCB9KTsKKyAgfQor
CisgIGZ1bmN0aW9uIGZpZWxkKGl0LCBwYXJlbnQpIHsKKyAgICByZXR1cm4gdHMuZGVmaW5pdGlv
bih0cy53cmFwKFsKKyAgICAgIGV4dGVuZGVkX2F0dHJpYnV0ZXMoaXQuZXh0QXR0cnMpLAorICAg
ICAgdG9rZW4oaXQudG9rZW5zLnJlcXVpcmVkKSwKKyAgICAgIHRzLnR5cGUodHlwZShpdC5pZGxU
eXBlKSksCisgICAgICBuYW1lX3Rva2VuKGl0LnRva2Vucy5uYW1lLCB7IGRhdGE6IGl0LCBwYXJl
bnQgfSksCisgICAgICBkZWZhdWx0XyhpdC5kZWZhdWx0KSwKKyAgICAgIHRva2VuKGl0LnRva2Vu
cy50ZXJtaW5hdGlvbikKKyAgICBdKSwgeyBkYXRhOiBpdCwgcGFyZW50IH0pOworICB9CisgIGZ1
bmN0aW9uIGNvbnN0XyhpdCwgcGFyZW50KSB7CisgICAgcmV0dXJuIHRzLmRlZmluaXRpb24odHMu
d3JhcChbCisgICAgICBleHRlbmRlZF9hdHRyaWJ1dGVzKGl0LmV4dEF0dHJzKSwKKyAgICAgIHRv
a2VuKGl0LnRva2Vucy5iYXNlKSwKKyAgICAgIHRzLnR5cGUodHlwZShpdC5pZGxUeXBlKSksCisg
ICAgICBuYW1lX3Rva2VuKGl0LnRva2Vucy5uYW1lLCB7IGRhdGE6IGl0LCBwYXJlbnQgfSksCisg
ICAgICB0b2tlbihpdC50b2tlbnMuYXNzaWduKSwKKyAgICAgIHRva2VuKGl0LnRva2Vucy52YWx1
ZSksCisgICAgICB0b2tlbihpdC50b2tlbnMudGVybWluYXRpb24pCisgICAgXSksIHsgZGF0YTog
aXQsIHBhcmVudCB9KTsKKyAgfQorICBmdW5jdGlvbiB0eXBlZGVmKGl0KSB7CisgICAgcmV0dXJu
IHRzLmRlZmluaXRpb24odHMud3JhcChbCisgICAgICBleHRlbmRlZF9hdHRyaWJ1dGVzKGl0LmV4
dEF0dHJzKSwKKyAgICAgIHRva2VuKGl0LnRva2Vucy5iYXNlKSwKKyAgICAgIHRzLnR5cGUodHlw
ZShpdC5pZGxUeXBlKSksCisgICAgICBuYW1lX3Rva2VuKGl0LnRva2Vucy5uYW1lLCB7IGRhdGE6
IGl0IH0pLAorICAgICAgdG9rZW4oaXQudG9rZW5zLnRlcm1pbmF0aW9uKQorICAgIF0pLCB7IGRh
dGE6IGl0IH0pOworICB9CisgIGZ1bmN0aW9uIGluY2x1ZGVzKGl0KSB7CisgICAgcmV0dXJuIHRz
LmRlZmluaXRpb24odHMud3JhcChbCisgICAgICBleHRlbmRlZF9hdHRyaWJ1dGVzKGl0LmV4dEF0
dHJzKSwKKyAgICAgIHJlZmVyZW5jZV90b2tlbihpdC50b2tlbnMudGFyZ2V0LCBpdCksCisgICAg
ICB0b2tlbihpdC50b2tlbnMuaW5jbHVkZXMpLAorICAgICAgcmVmZXJlbmNlX3Rva2VuKGl0LnRv
a2Vucy5taXhpbiwgaXQpLAorICAgICAgdG9rZW4oaXQudG9rZW5zLnRlcm1pbmF0aW9uKQorICAg
IF0pLCB7IGRhdGE6IGl0IH0pOworICB9CisgIGZ1bmN0aW9uIGNhbGxiYWNrKGl0KSB7CisgICAg
cmV0dXJuIHRzLmRlZmluaXRpb24odHMud3JhcChbCisgICAgICBleHRlbmRlZF9hdHRyaWJ1dGVz
KGl0LmV4dEF0dHJzKSwKKyAgICAgIHRva2VuKGl0LnRva2Vucy5iYXNlKSwKKyAgICAgIG5hbWVf
dG9rZW4oaXQudG9rZW5zLm5hbWUsIHsgZGF0YTogaXQgfSksCisgICAgICB0b2tlbihpdC50b2tl
bnMuYXNzaWduKSwKKyAgICAgIHRzLnR5cGUodHlwZShpdC5pZGxUeXBlKSksCisgICAgICB0b2tl
bihpdC50b2tlbnMub3BlbiksCisgICAgICAuLi5pdC5hcmd1bWVudHMubWFwKGFyZ3VtZW50KSwK
KyAgICAgIHRva2VuKGl0LnRva2Vucy5jbG9zZSksCisgICAgICB0b2tlbihpdC50b2tlbnMudGVy
bWluYXRpb24pLAorICAgIF0pLCB7IGRhdGE6IGl0IH0pOworICB9CisgIGZ1bmN0aW9uIGVudW1f
KGl0KSB7CisgICAgcmV0dXJuIHRzLmRlZmluaXRpb24odHMud3JhcChbCisgICAgICBleHRlbmRl
ZF9hdHRyaWJ1dGVzKGl0LmV4dEF0dHJzKSwKKyAgICAgIHRva2VuKGl0LnRva2Vucy5iYXNlKSwK
KyAgICAgIG5hbWVfdG9rZW4oaXQudG9rZW5zLm5hbWUsIHsgZGF0YTogaXQgfSksCisgICAgICB0
b2tlbihpdC50b2tlbnMub3BlbiksCisgICAgICBpdGVyYXRlKGl0LnZhbHVlcywgaXQpLAorICAg
ICAgdG9rZW4oaXQudG9rZW5zLmNsb3NlKSwKKyAgICAgIHRva2VuKGl0LnRva2Vucy50ZXJtaW5h
dGlvbikKKyAgICBdKSwgeyBkYXRhOiBpdCB9KTsKKyAgfQorICBmdW5jdGlvbiBlbnVtX3ZhbHVl
KHYsIHBhcmVudCkgeworICAgIHJldHVybiB0cy53cmFwKFsKKyAgICAgIHRzLnRyaXZpYSh2LnRv
a2Vucy52YWx1ZS50cml2aWEpLAorICAgICAgdHMuZGVmaW5pdGlvbigKKyAgICAgICAgdHMud3Jh
cChbJyInLCB0cy5uYW1lKHYudmFsdWUsIHsgZGF0YTogdiwgcGFyZW50IH0pLCAnIiddKSwKKyAg
ICAgICAgeyBkYXRhOiB2LCBwYXJlbnQgfQorICAgICAgKSwKKyAgICAgIHRva2VuKHYudG9rZW5z
LnNlcGFyYXRvcikKKyAgICBdKTsKKyAgfQorICBmdW5jdGlvbiBpdGVyYWJsZV9saWtlKGl0LCBw
YXJlbnQpIHsKKyAgICByZXR1cm4gdHMuZGVmaW5pdGlvbih0cy53cmFwKFsKKyAgICAgIGV4dGVu
ZGVkX2F0dHJpYnV0ZXMoaXQuZXh0QXR0cnMpLAorICAgICAgdG9rZW4oaXQudG9rZW5zLnJlYWRv
bmx5KSwKKyAgICAgIHRva2VuKGl0LnRva2Vucy5hc3luYyksCisgICAgICB0b2tlbihpdC50b2tl
bnMuYmFzZSwgdHMuZ2VuZXJpYyksCisgICAgICB0b2tlbihpdC50b2tlbnMub3BlbiksCisgICAg
ICB0cy53cmFwKGl0LmlkbFR5cGUubWFwKHR5cGUpKSwKKyAgICAgIHRva2VuKGl0LnRva2Vucy5j
bG9zZSksCisgICAgICB0b2tlbihpdC50b2tlbnMudGVybWluYXRpb24pCisgICAgXSksIHsgZGF0
YTogaXQsIHBhcmVudCB9KTsKKyAgfQorICBmdW5jdGlvbiBlb2YoaXQpIHsKKyAgICByZXR1cm4g
dHMudHJpdmlhKGl0LnRyaXZpYSk7CisgIH0KKworICBjb25zdCB0YWJsZSA9IHsKKyAgICBpbnRl
cmZhY2U6IGNvbnRhaW5lciwKKyAgICAiaW50ZXJmYWNlIG1peGluIjogY29udGFpbmVyLAorICAg
IG5hbWVzcGFjZTogY29udGFpbmVyLAorICAgIG9wZXJhdGlvbiwKKyAgICBhdHRyaWJ1dGUsCisg
ICAgY29uc3RydWN0b3IsCisgICAgZGljdGlvbmFyeTogY29udGFpbmVyLAorICAgIGZpZWxkLAor
ICAgIGNvbnN0OiBjb25zdF8sCisgICAgdHlwZWRlZiwKKyAgICBpbmNsdWRlcywKKyAgICBjYWxs
YmFjaywKKyAgICBlbnVtOiBlbnVtXywKKyAgICAiZW51bS12YWx1ZSI6IGVudW1fdmFsdWUsCisg
ICAgaXRlcmFibGU6IGl0ZXJhYmxlX2xpa2UsCisgICAgbGVnYWN5aXRlcmFibGU6IGl0ZXJhYmxl
X2xpa2UsCisgICAgbWFwbGlrZTogaXRlcmFibGVfbGlrZSwKKyAgICBzZXRsaWtlOiBpdGVyYWJs
ZV9saWtlLAorICAgICJjYWxsYmFjayBpbnRlcmZhY2UiOiBjb250YWluZXIsCisgICAgZW9mCisg
IH07CisgIGZ1bmN0aW9uIGRpc3BhdGNoKGl0LCBwYXJlbnQpIHsKKyAgICBjb25zdCBkaXNwYXRj
aGVyID0gdGFibGVbaXQudHlwZV07CisgICAgaWYgKCFkaXNwYXRjaGVyKSB7CisgICAgICB0aHJv
dyBuZXcgRXJyb3IoYFR5cGUgIiR7aXQudHlwZX0iIGlzIHVuc3VwcG9ydGVkYCk7CisgICAgfQor
ICAgIHJldHVybiB0YWJsZVtpdC50eXBlXShpdCwgcGFyZW50KTsKKyAgfQorICBmdW5jdGlvbiBp
dGVyYXRlKHRoaW5ncywgcGFyZW50KSB7CisgICAgaWYgKCF0aGluZ3MpIHJldHVybjsKKyAgICBj
b25zdCByZXN1bHRzID0gdGhpbmdzLm1hcCh0aGluZyA9PiBkaXNwYXRjaCh0aGluZywgcGFyZW50
KSk7CisgICAgcmV0dXJuIHRzLndyYXAocmVzdWx0cyk7CisgIH0KKyAgcmV0dXJuIGl0ZXJhdGUo
YXN0KTsKK30KKworCisvKioqLyB9KSwKKy8qIDMxICovCisvKioqLyAoZnVuY3Rpb24obW9kdWxl
LCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CisKKyJ1c2Ugc3Ry
aWN0IjsKK19fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTsKKy8qIGhh
cm1vbnkgZXhwb3J0IChiaW5kaW5nKSAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNr
X2V4cG9ydHNfXywgInZhbGlkYXRlIiwgZnVuY3Rpb24oKSB7IHJldHVybiB2YWxpZGF0ZTsgfSk7
CisvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2Vycm9yX2pzX19XRUJQQUNLX0lNUE9SVEVEX01P
RFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDMpOworCisKKworCitmdW5jdGlvbiBnZXRN
aXhpbk1hcChhbGwsIHVuaXF1ZSkgeworICBjb25zdCBtYXAgPSBuZXcgTWFwKCk7CisgIGNvbnN0
IGluY2x1ZGVzID0gYWxsLmZpbHRlcihkZWYgPT4gZGVmLnR5cGUgPT09ICJpbmNsdWRlcyIpOwor
ICBmb3IgKGNvbnN0IGluY2x1ZGUgb2YgaW5jbHVkZXMpIHsKKyAgICBjb25zdCBtaXhpbiA9IHVu
aXF1ZS5nZXQoaW5jbHVkZS5pbmNsdWRlcyk7CisgICAgaWYgKCFtaXhpbikgeworICAgICAgY29u
dGludWU7CisgICAgfQorICAgIGNvbnN0IGFycmF5ID0gbWFwLmdldChpbmNsdWRlLnRhcmdldCk7
CisgICAgaWYgKGFycmF5KSB7CisgICAgICBhcnJheS5wdXNoKG1peGluKTsKKyAgICB9IGVsc2Ug
eworICAgICAgbWFwLnNldChpbmNsdWRlLnRhcmdldCwgW21peGluXSk7CisgICAgfQorICB9Cisg
IHJldHVybiBtYXA7Cit9CisKK2Z1bmN0aW9uIGdyb3VwRGVmaW5pdGlvbnMoYWxsKSB7CisgIGNv
bnN0IHVuaXF1ZSA9IG5ldyBNYXAoKTsKKyAgY29uc3QgZHVwbGljYXRlcyA9IG5ldyBTZXQoKTsK
KyAgY29uc3QgcGFydGlhbHMgPSBuZXcgTWFwKCk7CisgIGZvciAoY29uc3QgZGVmIG9mIGFsbCkg
eworICAgIGlmIChkZWYucGFydGlhbCkgeworICAgICAgY29uc3QgYXJyYXkgPSBwYXJ0aWFscy5n
ZXQoZGVmLm5hbWUpOworICAgICAgaWYgKGFycmF5KSB7CisgICAgICAgIGFycmF5LnB1c2goZGVm
KTsKKyAgICAgIH0gZWxzZSB7CisgICAgICAgIHBhcnRpYWxzLnNldChkZWYubmFtZSwgW2RlZl0p
OworICAgICAgfQorICAgICAgY29udGludWU7CisgICAgfQorICAgIGlmICghZGVmLm5hbWUpIHsK
KyAgICAgIGNvbnRpbnVlOworICAgIH0KKyAgICBpZiAoIXVuaXF1ZS5oYXMoZGVmLm5hbWUpKSB7
CisgICAgICB1bmlxdWUuc2V0KGRlZi5uYW1lLCBkZWYpOworICAgIH0gZWxzZSB7CisgICAgICBk
dXBsaWNhdGVzLmFkZChkZWYpOworICAgIH0KKyAgfQorICByZXR1cm4geworICAgIGFsbCwKKyAg
ICB1bmlxdWUsCisgICAgcGFydGlhbHMsCisgICAgZHVwbGljYXRlcywKKyAgICBtaXhpbk1hcDog
Z2V0TWl4aW5NYXAoYWxsLCB1bmlxdWUpLAorICAgIGNhY2hlOiB7CisgICAgICB0eXBlZGVmSW5j
bHVkZXNEaWN0aW9uYXJ5OiBuZXcgV2Vha01hcCgpCisgICAgfSwKKyAgfTsKK30KKworZnVuY3Rp
b24qIGNoZWNrRHVwbGljYXRlZE5hbWVzKHsgdW5pcXVlLCBkdXBsaWNhdGVzIH0pIHsKKyAgZm9y
IChjb25zdCBkdXAgb2YgZHVwbGljYXRlcykgeworICAgIGNvbnN0IHsgbmFtZSB9ID0gZHVwOwor
ICAgIGNvbnN0IG1lc3NhZ2UgPSBgVGhlIG5hbWUgIiR7bmFtZX0iIG9mIHR5cGUgIiR7dW5pcXVl
LmdldChuYW1lKS50eXBlfSIgd2FzIGFscmVhZHkgc2VlbmA7CisgICAgeWllbGQgT2JqZWN0KF9l
cnJvcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJ2YWxpZGF0aW9uRXJyb3IiXSko
ZHVwLnNvdXJjZSwgZHVwLnRva2Vucy5uYW1lLCBkdXAsIG1lc3NhZ2UpOworICB9Cit9CisKK2Z1
bmN0aW9uKiB2YWxpZGF0ZUl0ZXJhYmxlKGFzdCkgeworICBjb25zdCBkZWZzID0gZ3JvdXBEZWZp
bml0aW9ucyhhc3QpOworICBmb3IgKGNvbnN0IGRlZiBvZiBkZWZzLmFsbCkgeworICAgIGlmIChk
ZWYudmFsaWRhdGUpIHsKKyAgICAgIHlpZWxkKiBkZWYudmFsaWRhdGUoZGVmcyk7CisgICAgfQor
ICB9CisgIHlpZWxkKiBjaGVja0R1cGxpY2F0ZWROYW1lcyhkZWZzKTsKK30KKworLy8gUmVtb3Zl
IHRoaXMgb25jZSBhbGwgb2Ygb3VyIHN1cHBvcnQgdGFyZ2V0cyBleHBvc2UgYC5mbGF0KClgIGJ5
IGRlZmF1bHQKK2Z1bmN0aW9uIGZsYXR0ZW4oYXJyYXkpIHsKKyAgaWYgKGFycmF5LmZsYXQpIHsK
KyAgICByZXR1cm4gYXJyYXkuZmxhdCgpOworICB9CisgIHJldHVybiBbXS5jb25jYXQoLi4uYXJy
YXkpOworfQorCisvKioKKyAqIEBwYXJhbSB7Kn0gYXN0IEFTVCBvciBhcnJheSBvZiBBU1RzCisg
Ki8KK2Z1bmN0aW9uIHZhbGlkYXRlKGFzdCkgeworICByZXR1cm4gWy4uLnZhbGlkYXRlSXRlcmFi
bGUoZmxhdHRlbihhc3QpKV07Cit9CisKKworLyoqKi8gfSkKKy8qKioqKiovIF0pOworfSk7Cisv
LyMgc291cmNlTWFwcGluZ1VSTD13ZWJpZGwyLmpzLm1hcApcIE5vIG5ld2xpbmUgYXQgZW5kIG9m
IGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsaWVudHMtbWF0Y2hhbGwtZnJv
emVuLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsaWVudHMtbWF0Y2hh
bGwtZnJvemVuLmh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZWY1MmQ1NTBiM2E5OGJl
ZWQ0MDk1YjYyOGNhZWFjYjBkMTZhYzc2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvY2xpZW50cy1tYXRjaGFsbC1mcm96ZW4uaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMyBAQAorCitGQUlMIFRlc3QgQ2xpZW50cy5tYXRjaEFsbCgpIHByb21pc2VfdGVzdDogVW5o
YW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogTm90IGVub3Vn
aCBhcmd1bWVudHMiCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsaWVudHMtbWF0
Y2hhbGwtZnJvemVuLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGllbnRzLW1hdGNo
YWxsLWZyb3plbi5odHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVmMjdhYzNkMzcyZTVkNDBmYjU3NmUy
YjU5MDIwMDI2ZGY4YjY2YmMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9j
bGllbnRzLW1hdGNoYWxsLWZyb3plbi5odHRwcy5odG1sCkBAIC0wLDAgKzEsMTAzIEBACis8IURP
Q1RZUEUgaHRtbD4KKzx0aXRsZT5TZXJ2aWNlIFdvcmtlcjogQ2xpZW50cy5tYXRjaEFsbDwvdGl0
bGU+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Rlc3QtaGVscGVycy5zdWIuanMiPjwvc2NyaXB0PgorPHNj
cmlwdD4KK3ZhciBzY29wZSA9ICdyZXNvdXJjZXMvY2xpZW50cy1mcmFtZS1mcmVlemUuaHRtbCc7
Cit2YXIgd2luZG93cyA9IFtdOwordmFyIGV4cGVjdGVkX3dpbmRvd18xID0KKyAgICB7dmlzaWJp
bGl0eVN0YXRlOiAndmlzaWJsZScsIGZvY3VzZWQ6IGZhbHNlLCBsaWZlY3ljbGVTdGF0ZTogImZy
b3plbiIsIHVybDogbmV3IFVSTChzY29wZSArICcjMScsIGxvY2F0aW9uKS50b1N0cmluZygpLCB0
eXBlOiAnd2luZG93JywgZnJhbWVUeXBlOiAndG9wLWxldmVsJ307Cit2YXIgZXhwZWN0ZWRfd2lu
ZG93XzIgPQorICAgIHt2aXNpYmlsaXR5U3RhdGU6ICd2aXNpYmxlJywgZm9jdXNlZDogZmFsc2Us
IGxpZmVjeWNsZVN0YXRlOiAiYWN0aXZlIiwgdXJsOiBuZXcgVVJMKHNjb3BlICsgJyMyJywgbG9j
YXRpb24pLnRvU3RyaW5nKCksIHR5cGU6ICd3aW5kb3cnLCBmcmFtZVR5cGU6ICd0b3AtbGV2ZWwn
fTsKK2Z1bmN0aW9uIHdpdGhfd2luZG93KHVybCwgbmFtZSkgeworICByZXR1cm4gbmV3IFByb21p
c2UoZnVuY3Rpb24ocmVzb2x2ZSkgeworICAgIHZhciBjaGlsZCA9IHdpbmRvdy5vcGVuKHVybCwg
bmFtZSk7CisgICAgd2luZG93Lm9ubWVzc2FnZSA9ICgpID0+IHtyZXNvbHZlKGNoaWxkKX07Cisg
IH0pOworfQorCitwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgeworICAgIHJldHVybiBzZXJ2aWNl
X3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3RlcigKKyAgICAgICAgdCwgJ3Jlc291cmNlcy9j
bGllbnRzLW1hdGNoYWxsLXdvcmtlci5qcycsIHNjb3BlKQorICAgICAgLnRoZW4oZnVuY3Rpb24o
cmVnaXN0cmF0aW9uKSB7CisgICAgICAgICAgdC5hZGRfY2xlYW51cChmdW5jdGlvbigpIHsKKyAg
ICAgICAgICAgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXIodCwgc2NvcGUpOwor
ICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICByZXR1cm4gd2FpdF9mb3Jfc3RhdGUodCwgcmVn
aXN0cmF0aW9uLmluc3RhbGxpbmcsICdhY3RpdmF0ZWQnKTsKKyAgICAgICAgfSkKKyAgICAgIC50
aGVuKGZ1bmN0aW9uKCkgeyByZXR1cm4gd2l0aF93aW5kb3coc2NvcGUgKyAnIzEnLCAnQ2hpbGQg
MScpOyB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24od2luZG93MSkgeworICAgICAgICAgIHdpbmRv
d3MucHVzaCh3aW5kb3cxKTsKKyAgICAgICAgICByZXR1cm4gd2l0aF93aW5kb3coc2NvcGUgKyAn
IzInLCAnQ2hpbGQgMicpOworICAgICAgICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24od2luZG93
MikgeworICAgICAgICAgIHdpbmRvd3MucHVzaCh3aW5kb3cyKTsKKyAgICAgICAgICByZXR1cm4g
bmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSkgeworICAgICAgICAgICAgICB3aW5kb3cub25t
ZXNzYWdlID0gcmVzb2x2ZTsKKyAgICAgICAgICAgICAgd2luZG93c1swXS5wb3N0TWVzc2FnZSgn
ZnJlZXplJyk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0
aW9uKCkgeworICAgICAgICAgIHZhciBjaGFubmVsID0gbmV3IE1lc3NhZ2VDaGFubmVsKCk7CisK
KyAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSkgeworICAgICAg
ICAgICAgICBjaGFubmVsLnBvcnQxLm9ubWVzc2FnZSA9IHJlc29sdmU7CisgICAgICAgICAgICAg
IHdpbmRvd3NbMV0ubmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuY29udHJvbGxlci5wb3N0TWVzc2Fn
ZSgKKyAgICAgICAgICAgICAgICAgIHtwb3J0OmNoYW5uZWwucG9ydDIsIGluY2x1ZGVMaWZlY3lj
bGVTdGF0ZTogdHJ1ZX0sIFtjaGFubmVsLnBvcnQyXSk7CisgICAgICAgICAgICB9KTsKKyAgICAg
ICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxz
KGUuZGF0YS5sZW5ndGgsIDEpOworICAgICAgICAgIGFzc2VydF9vYmplY3RfZXF1YWxzKGUuZGF0
YVswXSwgZXhwZWN0ZWRfd2luZG93XzIpOworICAgICAgICB9KQorICAgICAgLnRoZW4oZnVuY3Rp
b24oKSB7CisgICAgICAgICAgdmFyIGNoYW5uZWwgPSBuZXcgTWVzc2FnZUNoYW5uZWwoKTsKKwor
ICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlKSB7CisgICAgICAg
ICAgICAgIGNoYW5uZWwucG9ydDEub25tZXNzYWdlID0gcmVzb2x2ZTsKKyAgICAgICAgICAgICAg
d2luZG93c1sxXS5uYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5jb250cm9sbGVyLnBvc3RNZXNzYWdl
KAorICAgICAgICAgICAgICAgICAge3BvcnQ6Y2hhbm5lbC5wb3J0Miwgb3B0aW9uczoge2xpZmVj
eWNsZVN0YXRlOiAiYWxsIn0sIGluY2x1ZGVMaWZlY3ljbGVTdGF0ZTogdHJ1ZX0sIFtjaGFubmVs
LnBvcnQyXSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0
aW9uKGUpIHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUuZGF0YS5sZW5ndGgsIDIpOworICAg
ICAgICAgIC8vIE5vIHNwZWNpZmljIG9yZGVyIGlzIHJlcXVpcmVkLCBzbyBzdXBwb3J0IGludmVy
c2lvbi4KKyAgICAgICAgICBpZiAoZS5kYXRhWzBdWzNdID09IG5ldyBVUkwoc2NvcGUgKyAnIzIn
LCBsb2NhdGlvbikpIHsKKyAgICAgICAgICAgIGFzc2VydF9vYmplY3RfZXF1YWxzKGUuZGF0YVsw
XSwgZXhwZWN0ZWRfd2luZG93XzIpOworICAgICAgICAgICAgYXNzZXJ0X29iamVjdF9lcXVhbHMo
ZS5kYXRhWzFdLCBleHBlY3RlZF93aW5kb3dfMSk7CisgICAgICAgICAgfSBlbHNlIHsKKyAgICAg
ICAgICAgIGFzc2VydF9vYmplY3RfZXF1YWxzKGUuZGF0YVswXSwgZXhwZWN0ZWRfd2luZG93XzEp
OworICAgICAgICAgICAgYXNzZXJ0X29iamVjdF9lcXVhbHMoZS5kYXRhWzFdLCBleHBlY3RlZF93
aW5kb3dfMik7CisgICAgICAgICAgfQorICAgICAgICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24o
KSB7CisgICAgICAgICAgdmFyIGNoYW5uZWwgPSBuZXcgTWVzc2FnZUNoYW5uZWwoKTsKKworICAg
ICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlKSB7CisgICAgICAgICAg
ICAgIGNoYW5uZWwucG9ydDEub25tZXNzYWdlID0gcmVzb2x2ZTsKKyAgICAgICAgICAgICAgd2lu
ZG93c1sxXS5uYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5jb250cm9sbGVyLnBvc3RNZXNzYWdlKAor
ICAgICAgICAgICAgICAgICAge3BvcnQ6Y2hhbm5lbC5wb3J0Miwgb3B0aW9uczoge2xpZmVjeWNs
ZVN0YXRlOiAiZnJvemVuIn0sIGluY2x1ZGVMaWZlY3ljbGVTdGF0ZTogdHJ1ZX0sIFtjaGFubmVs
LnBvcnQyXSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0
aW9uKGUpIHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUuZGF0YS5sZW5ndGgsIDEpOworICAg
ICAgICAgIGFzc2VydF9vYmplY3RfZXF1YWxzKGUuZGF0YVswXSwgZXhwZWN0ZWRfd2luZG93XzEp
OworICAgICAgICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7CisgICAgICAgICAgdmFyIGNo
YW5uZWwgPSBuZXcgTWVzc2FnZUNoYW5uZWwoKTsKKworICAgICAgICAgIHJldHVybiBuZXcgUHJv
bWlzZShmdW5jdGlvbihyZXNvbHZlKSB7CisgICAgICAgICAgICAgIGNoYW5uZWwucG9ydDEub25t
ZXNzYWdlID0gcmVzb2x2ZTsKKyAgICAgICAgICAgICAgd2luZG93c1sxXS5uYXZpZ2F0b3Iuc2Vy
dmljZVdvcmtlci5jb250cm9sbGVyLnBvc3RNZXNzYWdlKAorICAgICAgICAgICAgICAgICAge3Bv
cnQ6Y2hhbm5lbC5wb3J0Miwgb3B0aW9uczoge2xpZmVjeWNsZVN0YXRlOiAiYWN0aXZlIn0sIGlu
Y2x1ZGVMaWZlY3ljbGVTdGF0ZTogdHJ1ZX0sIFtjaGFubmVsLnBvcnQyXSk7CisgICAgICAgICAg
ICB9KTsKKyAgICAgICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICBh
c3NlcnRfZXF1YWxzKGUuZGF0YS5sZW5ndGgsIDEpOworICAgICAgICAgIGFzc2VydF9vYmplY3Rf
ZXF1YWxzKGUuZGF0YVswXSwgZXhwZWN0ZWRfd2luZG93XzIpOworICAgICAgfSk7Cit9LCAnVGVz
dCBDbGllbnRzLm1hdGNoQWxsKCknKTsKKworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9mZXRjaC1jb3JzLXhoci5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9mZXRjaC1jb3JzLXhoci5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggMTFiMTc0YTJj
OTA2MDI5ZWNjNzllODFkNWU5MTYzY2RjYTM2YjkwNC4uYjU2ZmFlNmFlODA2MjI0NGIwMGJjMDI4
ZDk5NDA1NzcxZjUwOGQyYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtY29y
cy14aHIuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWNv
cnMteGhyLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMSw0NyArMSwzIEBACi1DT05TT0xFIE1FU1NB
R0U6IEZldGNoRXZlbnQucmVzcG9uZFdpdGggcmVjZWl2ZWQgYW4gZXJyb3I6IHVuZGVmaW5lZAot
Q09OU09MRSBNRVNTQUdFOiBYTUxIdHRwUmVxdWVzdCBjYW5ub3QgbG9hZCBodHRwczovL2xvY2Fs
aG9zdDo5NDQzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gt
YWNjZXNzLWNvbnRyb2wucHk/cmVqZWN0LgotQ09OU09MRSBNRVNTQUdFOiBGZXRjaEV2ZW50LnJl
c3BvbmRXaXRoIHJlY2VpdmVkIGFuIGVycm9yOiB1bmRlZmluZWQKLUNPTlNPTEUgTUVTU0FHRTog
WE1MSHR0cFJlcXVlc3QgY2Fubm90IGxvYWQgaHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0My9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWFjY2Vzcy1jb250cm9sLnB5
P3JlamVjdC4KLUNPTlNPTEUgTUVTU0FHRTogRmV0Y2hFdmVudC5yZXNwb25kV2l0aCByZWNlaXZl
ZCBhbiBlcnJvcjogdW5kZWZpbmVkCi1DT05TT0xFIE1FU1NBR0U6IFhNTEh0dHBSZXF1ZXN0IGNh
bm5vdCBsb2FkIGh0dHBzOi8vMTI3LjAuMC4xOjk0NDMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL3Jlc291cmNlcy9mZXRjaC1hY2Nlc3MtY29udHJvbC5weT9yZWplY3QuCi1DT05TT0xF
IE1FU1NBR0U6IEZldGNoRXZlbnQucmVzcG9uZFdpdGggcmVjZWl2ZWQgYW4gZXJyb3I6IHVuZGVm
aW5lZAotQ09OU09MRSBNRVNTQUdFOiBYTUxIdHRwUmVxdWVzdCBjYW5ub3QgbG9hZCBodHRwczov
LzEyNy4wLjAuMTo5NDQzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMv
ZmV0Y2gtYWNjZXNzLWNvbnRyb2wucHk/cmVqZWN0LgotQ09OU09MRSBNRVNTQUdFOiBPcmlnaW4g
aHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0MyBpcyBub3QgYWxsb3dlZCBieSBBY2Nlc3MtQ29udHJvbC1B
bGxvdy1PcmlnaW4uCi1DT05TT0xFIE1FU1NBR0U6IFhNTEh0dHBSZXF1ZXN0IGNhbm5vdCBsb2Fk
IGh0dHBzOi8vMTI3LjAuMC4xOjk0NDMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jl
c291cmNlcy9mZXRjaC1hY2Nlc3MtY29udHJvbC5weT90aHJvdyBkdWUgdG8gYWNjZXNzIGNvbnRy
b2wgY2hlY2tzLgotQ09OU09MRSBNRVNTQUdFOiBPcmlnaW4gaHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0
MyBpcyBub3QgYWxsb3dlZCBieSBBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4uCi1DT05TT0xF
IE1FU1NBR0U6IFhNTEh0dHBSZXF1ZXN0IGNhbm5vdCBsb2FkIGh0dHBzOi8vMTI3LjAuMC4xOjk0
NDMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1hY2Nlc3Mt
Y29udHJvbC5weT90aHJvdyBkdWUgdG8gYWNjZXNzIGNvbnRyb2wgY2hlY2tzLgotQ09OU09MRSBN
RVNTQUdFOiBGZXRjaEV2ZW50LnJlc3BvbmRXaXRoIHJlY2VpdmVkIGFuIGVycm9yOiBSZXR1cm5l
ZCByZXNwb25zZSBpcyBudWxsLgotQ09OU09MRSBNRVNTQUdFOiBYTUxIdHRwUmVxdWVzdCBjYW5u
b3QgbG9hZCBodHRwczovL2xvY2FsaG9zdDo5NDQzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9yZXNvdXJjZXMvZmV0Y2gtYWNjZXNzLWNvbnRyb2wucHk/cmVzb2x2ZS1udWxsLgotQ09O
U09MRSBNRVNTQUdFOiBGZXRjaEV2ZW50LnJlc3BvbmRXaXRoIHJlY2VpdmVkIGFuIGVycm9yOiBS
ZXR1cm5lZCByZXNwb25zZSBpcyBudWxsLgotQ09OU09MRSBNRVNTQUdFOiBYTUxIdHRwUmVxdWVz
dCBjYW5ub3QgbG9hZCBodHRwczovL2xvY2FsaG9zdDo5NDQzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtYWNjZXNzLWNvbnRyb2wucHk/cmVzb2x2ZS1udWxs
LgotQ09OU09MRSBNRVNTQUdFOiBGZXRjaEV2ZW50LnJlc3BvbmRXaXRoIHJlY2VpdmVkIGFuIGVy
cm9yOiBSZXR1cm5lZCByZXNwb25zZSBpcyBudWxsLgotQ09OU09MRSBNRVNTQUdFOiBYTUxIdHRw
UmVxdWVzdCBjYW5ub3QgbG9hZCBodHRwczovLzEyNy4wLjAuMTo5NDQzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtYWNjZXNzLWNvbnRyb2wucHk/cmVzb2x2
ZS1udWxsLgotQ09OU09MRSBNRVNTQUdFOiBGZXRjaEV2ZW50LnJlc3BvbmRXaXRoIHJlY2VpdmVk
IGFuIGVycm9yOiBSZXR1cm5lZCByZXNwb25zZSBpcyBudWxsLgotQ09OU09MRSBNRVNTQUdFOiBY
TUxIdHRwUmVxdWVzdCBjYW5ub3QgbG9hZCBodHRwczovLzEyNy4wLjAuMTo5NDQzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtYWNjZXNzLWNvbnRyb2wucHk/
cmVzb2x2ZS1udWxsLgotQ09OU09MRSBNRVNTQUdFOiBPcmlnaW4gaHR0cHM6Ly9sb2NhbGhvc3Q6
OTQ0MyBpcyBub3QgYWxsb3dlZCBieSBBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4uCi1DT05T
T0xFIE1FU1NBR0U6IFhNTEh0dHBSZXF1ZXN0IGNhbm5vdCBsb2FkIGh0dHBzOi8vMTI3LjAuMC4x
Ojk0NDMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1hY2Nl
c3MtY29udHJvbC5weT9pZ25vcmUgZHVlIHRvIGFjY2VzcyBjb250cm9sIGNoZWNrcy4KLUNPTlNP
TEUgTUVTU0FHRTogT3JpZ2luIGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMgaXMgbm90IGFsbG93ZWQg
YnkgQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luLgotQ09OU09MRSBNRVNTQUdFOiBYTUxIdHRw
UmVxdWVzdCBjYW5ub3QgbG9hZCBodHRwczovLzEyNy4wLjAuMTo5NDQzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtYWNjZXNzLWNvbnRyb2wucHk/aWdub3Jl
IGR1ZSB0byBhY2Nlc3MgY29udHJvbCBjaGVja3MuCi1DT05TT0xFIE1FU1NBR0U6IENyZWRlbnRp
YWxzIGZsYWcgaXMgdHJ1ZSwgYnV0IEFjY2Vzcy1Db250cm9sLUFsbG93LUNyZWRlbnRpYWxzIGlz
IG5vdCAidHJ1ZSIuCi1DT05TT0xFIE1FU1NBR0U6IFhNTEh0dHBSZXF1ZXN0IGNhbm5vdCBsb2Fk
IGh0dHBzOi8vMTI3LjAuMC4xOjk0NDMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jl
c291cmNlcy9mZXRjaC1hY2Nlc3MtY29udHJvbC5weT9BQ0FPcmlnaW49aHR0cHM6Ly9sb2NhbGhv
c3Q6OTQ0MyZpZ25vcmUgZHVlIHRvIGFjY2VzcyBjb250cm9sIGNoZWNrcy4KLUNPTlNPTEUgTUVT
U0FHRTogT3JpZ2luIGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMgaXMgbm90IGFsbG93ZWQgYnkgQWNj
ZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luLgotQ09OU09MRSBNRVNTQUdFOiBYTUxIdHRwUmVxdWVz
dCBjYW5ub3QgbG9hZCBodHRwczovLzEyNy4wLjAuMTo5NDQzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtYWNjZXNzLWNvbnRyb2wucHk/QXV0aCZpZ25vcmUg
ZHVlIHRvIGFjY2VzcyBjb250cm9sIGNoZWNrcy4KLUNPTlNPTEUgTUVTU0FHRTogT3JpZ2luIGh0
dHBzOi8vbG9jYWxob3N0Ojk0NDMgaXMgbm90IGFsbG93ZWQgYnkgQWNjZXNzLUNvbnRyb2wtQWxs
b3ctT3JpZ2luLgotQ09OU09MRSBNRVNTQUdFOiBYTUxIdHRwUmVxdWVzdCBjYW5ub3QgbG9hZCBo
dHRwczovLzEyNy4wLjAuMTo5NDQzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNv
dXJjZXMvZmV0Y2gtYWNjZXNzLWNvbnRyb2wucHk/QXV0aCZpZ25vcmUgZHVlIHRvIGFjY2VzcyBj
b250cm9sIGNoZWNrcy4KLUNPTlNPTEUgTUVTU0FHRTogQ3JlZGVudGlhbHMgZmxhZyBpcyB0cnVl
LCBidXQgQWNjZXNzLUNvbnRyb2wtQWxsb3ctQ3JlZGVudGlhbHMgaXMgbm90ICJ0cnVlIi4KLUNP
TlNPTEUgTUVTU0FHRTogWE1MSHR0cFJlcXVlc3QgY2Fubm90IGxvYWQgaHR0cHM6Ly8xMjcuMC4w
LjE6OTQ0My9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWFj
Y2Vzcy1jb250cm9sLnB5P0F1dGgmQUNBT3JpZ2luPWh0dHBzOi8vbG9jYWxob3N0Ojk0NDMmaWdu
b3JlIGR1ZSB0byBhY2Nlc3MgY29udHJvbCBjaGVja3MuCi1DT05TT0xFIE1FU1NBR0U6IFJlc3Bv
bnNlIHNlcnZlZCBieSBzZXJ2aWNlIHdvcmtlciBpcyBvcGFxdWUKLUNPTlNPTEUgTUVTU0FHRTog
WE1MSHR0cFJlcXVlc3QgY2Fubm90IGxvYWQgaHR0cHM6Ly8xMjcuMC4wLjE6OTQ0My9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWFjY2Vzcy1jb250cm9sLnB5
IGR1ZSB0byBhY2Nlc3MgY29udHJvbCBjaGVja3MuCi1DT05TT0xFIE1FU1NBR0U6IFJlc3BvbnNl
IHNlcnZlZCBieSBzZXJ2aWNlIHdvcmtlciBpcyBvcGFxdWUKLUNPTlNPTEUgTUVTU0FHRTogWE1M
SHR0cFJlcXVlc3QgY2Fubm90IGxvYWQgaHR0cHM6Ly8xMjcuMC4wLjE6OTQ0My9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWFjY2Vzcy1jb250cm9sLnB5IGR1
ZSB0byBhY2Nlc3MgY29udHJvbCBjaGVja3MuCi1DT05TT0xFIE1FU1NBR0U6IFJlc3BvbnNlIHNl
cnZlZCBieSBzZXJ2aWNlIHdvcmtlciBpcyBvcGFxdWUKLUNPTlNPTEUgTUVTU0FHRTogWE1MSHR0
cFJlcXVlc3QgY2Fubm90IGxvYWQgaHR0cHM6Ly8xMjcuMC4wLjE6OTQ0My9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWFjY2Vzcy1jb250cm9sLnB5IGR1ZSB0
byBhY2Nlc3MgY29udHJvbCBjaGVja3MuCi1DT05TT0xFIE1FU1NBR0U6IFJlc3BvbnNlIHNlcnZl
ZCBieSBzZXJ2aWNlIHdvcmtlciBpcyBvcGFxdWUKLUNPTlNPTEUgTUVTU0FHRTogWE1MSHR0cFJl
cXVlc3QgY2Fubm90IGxvYWQgaHR0cHM6Ly8xMjcuMC4wLjE6OTQ0My9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWFjY2Vzcy1jb250cm9sLnB5IGR1ZSB0byBh
Y2Nlc3MgY29udHJvbCBjaGVja3MuCi1DT05TT0xFIE1FU1NBR0U6IEZldGNoRXZlbnQucmVzcG9u
ZFdpdGggcmVjZWl2ZWQgYW4gZXJyb3I6IFR5cGVFcnJvcjogQ3JlZGVudGlhbHMgZmxhZyBpcyB0
cnVlLCBidXQgQWNjZXNzLUNvbnRyb2wtQWxsb3ctQ3JlZGVudGlhbHMgaXMgbm90ICJ0cnVlIi4K
LUNPTlNPTEUgTUVTU0FHRTogWE1MSHR0cFJlcXVlc3QgY2Fubm90IGxvYWQgaHR0cHM6Ly9sb2Nh
bGhvc3Q6OTQ0My9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNo
LWFjY2Vzcy1jb250cm9sLnB5P21vZGU9Y29ycyZ1cmw9aHR0cHMlM0ElMkYlMkYxMjcuMC4wLjEl
M0E5NDQzJTJGc2VydmljZS13b3JrZXJzJTJGc2VydmljZS13b3JrZXIlMkZyZXNvdXJjZXMlMkZm
ZXRjaC1hY2Nlc3MtY29udHJvbC5weSUzRkFDQU9yaWdpbiUzRGh0dHBzJTNBJTJGJTJGbG9jYWxo
b3N0JTNBOTQ0My4KLUNPTlNPTEUgTUVTU0FHRTogRmV0Y2hFdmVudC5yZXNwb25kV2l0aCByZWNl
aXZlZCBhbiBlcnJvcjogVHlwZUVycm9yOiBDcmVkZW50aWFscyBmbGFnIGlzIHRydWUsIGJ1dCBB
Y2Nlc3MtQ29udHJvbC1BbGxvdy1DcmVkZW50aWFscyBpcyBub3QgInRydWUiLgotQ09OU09MRSBN
RVNTQUdFOiBYTUxIdHRwUmVxdWVzdCBjYW5ub3QgbG9hZCBodHRwczovLzEyNy4wLjAuMTo5NDQz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtYWNjZXNzLWNv
bnRyb2wucHk/bW9kZT1jb3JzJnVybD1odHRwcyUzQSUyRiUyRjEyNy4wLjAuMSUzQTk0NDMlMkZz
ZXJ2aWNlLXdvcmtlcnMlMkZzZXJ2aWNlLXdvcmtlciUyRnJlc291cmNlcyUyRmZldGNoLWFjY2Vz
cy1jb250cm9sLnB5JTNGQUNBT3JpZ2luJTNEaHR0cHMlM0ElMkYlMkZsb2NhbGhvc3QlM0E5NDQz
LgogCiBQQVNTIFZlcmlmeSBDT1JTIFhIUiBvZiBmZXRjaCgpIGluIGEgU2VydmljZSBXb3JrZXIg
CiBQQVNTIHRlc3QgMTogaHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0My9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWFjY2Vzcy1jb250cm9sLnB5P3JlamVjdCB3aXRo
IGNyZWRlbnRpYWxzIGZhbHNlIG11c3QgYmUgRkFJTCAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL2ZldGNoLWV2ZW50LXdpdGhpbi1zdy5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvZmV0Y2gtZXZlbnQtd2l0aGluLXN3Lmh0dHBzLmh0bWwKaW5kZXggYzczYWJjNGM5OGMwODcx
ZTMwMjFlNjYwNTMxMWJhNGIxZDdhODg5Yi4uOGE1NjdmZDdhOTNmODU1MjQxMmNmZmY2NTc3ODlj
NTM3NWViYTk3MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtZXZlbnQtd2l0
aGluLXN3Lmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtZXZlbnQtd2l0
aGluLXN3Lmh0dHBzLmh0bWwKQEAgLTEsNzkgKzEsNTMgQEAKIDwhRE9DVFlQRSBodG1sPgorPG1l
dGEgbmFtZT0idGltZW91dCIgY29udGVudD0ibG9uZyI+CiA8c2NyaXB0IHNyYz0iL3Jlc291cmNl
cy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0
aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iL2NvbW1vbi9nZXQtaG9z
dC1pbmZvLnN1Yi5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Rlc3QtaGVs
cGVycy5zdWIuanMiPjwvc2NyaXB0PgotPGJvZHk+CisKIDxzY3JpcHQ+CiBjb25zdCB3b3JrZXIg
PSAncmVzb3VyY2VzL2ZldGNoLWV2ZW50LXdpdGhpbi1zdy13b3JrZXIuanMnOwogCi1mdW5jdGlv
biByZXNldCgpIHsKLSAgZm9yIChjb25zdCBpZnJhbWUgb2YgWy4uLmRvY3VtZW50LnF1ZXJ5U2Vs
ZWN0b3JBbGwoJy50ZXN0LWlmcmFtZScpXSkgewotICAgIGlmcmFtZS5yZW1vdmUoKTsKLSAgfQot
ICByZXR1cm4gbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuZ2V0UmVnaXN0cmF0aW9ucygpLnRoZW4o
cmVnaXN0cmF0aW9ucyA9PiB7Ci0gICAgcmV0dXJuIFByb21pc2UuYWxsKHJlZ2lzdHJhdGlvbnMu
bWFwKHIgPT4gci51bnJlZ2lzdGVyKCkpKTsKLSAgfSkudGhlbigoKSA9PiBjYWNoZXMua2V5cygp
KS50aGVuKGNhY2hlS2V5cyA9PiB7Ci0gICAgcmV0dXJuIFByb21pc2UuYWxsKGNhY2hlS2V5cy5t
YXAoYyA9PiBjYWNoZXMuZGVsZXRlKGMpKSk7Ci0gIH0pOworYXN5bmMgZnVuY3Rpb24gcmVnaXN0
ZXJTd0FuZE9wZW5GcmFtZSh0KSB7CisgIGNvbnN0IHJlZ2lzdHJhdGlvbiA9IGF3YWl0IG5hdmln
YXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKAorICAgICAgd29ya2VyLCB7IHNjb3BlOiAncmVz
b3VyY2VzLycgfSk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcmVnaXN0cmF0aW9uLnVucmVnaXN0
ZXIoKSk7CisgIGF3YWl0IHdhaXRfZm9yX3N0YXRlKHQsIHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5n
LCAnYWN0aXZhdGVkJyk7CisKKyAgY29uc3QgZnJhbWUgPSBhd2FpdCB3aXRoX2lmcmFtZSgncmVz
b3VyY2VzL3NpbXBsZS5odG1sJyk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gZnJhbWUucmVtb3Zl
KCkpOworICByZXR1cm4gZnJhbWU7CiB9CiAKLWFkZF9jb21wbGV0aW9uX2NhbGxiYWNrKHJlc2V0
KTsKK2FzeW5jIGZ1bmN0aW9uIGRlbGV0ZUNhc2hlcygpIHsKKyAgY29uc3QgY2FjaGVLZXlzID0g
YXdhaXQgY2FjaGVzLmtleXMoKTsKKyAgYXdhaXQgUHJvbWlzZS5hbGwoY2FjaGVLZXlzLm1hcChj
ID0+IGNhY2hlcy5kZWxldGUoYykpKTsKK30KIAotZnVuY3Rpb24gcmVnUmVhZHkocmVnKSB7Ci0g
IHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7Ci0gICAgaWYgKHJlZy5h
Y3RpdmUpIHsKLSAgICAgIHJlc29sdmUoKTsKLSAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgY29u
c3QgbmV4dFdvcmtlciA9IHJlZy53YWl0aW5nIHx8IHJlZy5pbnN0YWxsaW5nOworcHJvbWlzZV90
ZXN0KGFzeW5jIHQgPT4geworICB0LmFkZF9jbGVhbnVwKGRlbGV0ZUNhc2hlcyk7CiAKLSAgICBu
ZXh0V29ya2VyLmFkZEV2ZW50TGlzdGVuZXIoJ3N0YXRlY2hhbmdlJywgKCkgPT4gewotICAgICAg
aWYgKG5leHRXb3JrZXIuc3RhdGUgPT0gJ3JlZHVuZGFudCcpIHsKLSAgICAgICAgcmVqZWN0KEVy
cm9yKGBTZXJ2aWNlIHdvcmtlciBmYWlsZWQgdG8gaW5zdGFsbGApKTsKLSAgICAgICAgcmV0dXJu
OwotICAgICAgfQotICAgICAgaWYgKG5leHRXb3JrZXIuc3RhdGUgPT0gJ2FjdGl2YXRlZCcpIHsK
LSAgICAgICAgcmVzb2x2ZSgpOwotICAgICAgfQotICAgIH0pOwotICB9KTsKLX0KKyAgY29uc3Qg
aWZyYW1lID0gYXdhaXQgcmVnaXN0ZXJTd0FuZE9wZW5GcmFtZSh0KTsKKyAgY29uc3QgZmV0Y2hU
ZXh0ID0KKyAgICAgIGF3YWl0IGlmcmFtZS5jb250ZW50V2luZG93LmZldGNoKCdkdW1teS50eHQn
KS50aGVuKHIgPT4gci50ZXh0KCkpOwogCi1mdW5jdGlvbiByZWdpc3RlclN3QW5kT3BlbkZyYW1l
KCkgewotICByZXR1cm4gcmVzZXQoKS50aGVuKCgpID0+IG5hdmlnYXRvci5zZXJ2aWNlV29ya2Vy
LnJlZ2lzdGVyKHdvcmtlciwgeyBzY29wZTogJ3Jlc291cmNlcy8nIH0pKQotICAgIC50aGVuKHJl
ZyA9PiByZWdSZWFkeShyZWcpKQotICAgIC50aGVuKCgpID0+IHdpdGhfaWZyYW1lKCdyZXNvdXJj
ZXMvc2ltcGxlLmh0bWwnKSk7Ci19CisgIGNvbnN0IGNhY2hlID0gYXdhaXQgaWZyYW1lLmNvbnRl
bnRXaW5kb3cuY2FjaGVzLm9wZW4oJ3Rlc3QnKTsKKyAgYXdhaXQgY2FjaGUuYWRkKCdkdW1teS50
eHQnKTsKIAotcHJvbWlzZV90ZXN0KCgpID0+IHsKLSAgcmV0dXJuIHJlZ2lzdGVyU3dBbmRPcGVu
RnJhbWUoKS50aGVuKGlmcmFtZSA9PiB7Ci0gICAgcmV0dXJuIFByb21pc2UuYWxsKFsKLSAgICAg
IGlmcmFtZS5jb250ZW50V2luZG93LmZldGNoKCdkdW1teS50eHQnKS50aGVuKHIgPT4gci50ZXh0
KCkpLAotICAgICAgaWZyYW1lLmNvbnRlbnRXaW5kb3cuY2FjaGVzLm9wZW4oJ3Rlc3QnKQotICAg
ICAgICAudGhlbihjYWNoZSA9PgotICAgICAgICAgIGNhY2hlLmFkZCgnZHVtbXkudHh0JykudGhl
bigoKSA9PiBjYWNoZS5tYXRjaCgnZHVtbXkudHh0JykpCi0gICAgICAgICkudGhlbihyZXNwb25z
ZSA9PiB7Ci0gICAgICAgICAgaWYgKCFyZXNwb25zZSkgcmV0dXJuICdjYWNoZSBtYXRjaCBmYWls
ZWQnOwotICAgICAgICAgIHJldHVybiByZXNwb25zZS50ZXh0KCk7Ci0gICAgICAgIH0pCi0gICAg
XSkKLSAgfSkudGhlbigoW2ZldGNoVGV4dCwgY2FjaGVUZXh0XSkgPT4gewotICAgIGFzc2VydF9l
cXVhbHMoZmV0Y2hUZXh0LCAnaW50ZXJjZXB0ZWQnLCAnZmV0Y2ggaW50ZXJjZXB0ZWQnKTsKLSAg
ICBhc3NlcnRfZXF1YWxzKGNhY2hlVGV4dCwgJ2ludGVyY2VwdGVkJywgJ2NhY2hlLmFkZCBpbnRl
cmNlcHRlZCcpOwotICB9KTsKKyAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjYWNoZS5tYXRjaCgn
ZHVtbXkudHh0Jyk7CisgIGNvbnN0IGNhY2hlVGV4dCA9IGF3YWl0IChyZXNwb25zZSA/IHJlc3Bv
bnNlLnRleHQoKSA6ICdjYWNoZSBtYXRjaCBmYWlsZWQnKTsKKyAgYXNzZXJ0X2VxdWFscyhmZXRj
aFRleHQsICdpbnRlcmNlcHRlZCcsICdmZXRjaCBpbnRlcmNlcHRlZCcpOworICBhc3NlcnRfZXF1
YWxzKGNhY2hlVGV4dCwgJ2ludGVyY2VwdGVkJywgJ2NhY2hlLmFkZCBpbnRlcmNlcHRlZCcpOwog
fSwgJ1NlcnZpY2Ugd29ya2VyIGludGVyY2VwdHMgcmVxdWVzdHMgZnJvbSB3aW5kb3cnKTsKIAot
cHJvbWlzZV90ZXN0KCgpID0+IHsKLSAgcmV0dXJuIHJlZ2lzdGVyU3dBbmRPcGVuRnJhbWUoKS50
aGVuKGlmcmFtZSA9PiB7Ci0gICAgcmV0dXJuIFByb21pc2UuYWxsKFsKLSAgICAgIGlmcmFtZS5j
b250ZW50V2luZG93LmZldGNoKCdkdW1teS50eHQtaW5uZXItZmV0Y2gnKS50aGVuKHIgPT4gci50
ZXh0KCkpLAotICAgICAgaWZyYW1lLmNvbnRlbnRXaW5kb3cuZmV0Y2goJ2R1bW15LnR4dC1pbm5l
ci1jYWNoZScpLnRoZW4ociA9PiByLnRleHQoKSkKLSAgICBdKQotICB9KS50aGVuKChbZmV0Y2hU
ZXh0LCBjYWNoZVRleHRdKSA9PiB7Ci0gICAgYXNzZXJ0X2VxdWFscyhmZXRjaFRleHQsICdIZWxs
byB3b3JsZFxuJywgJ2ZldGNoIHdpdGhpbiBTVyBub3QgaW50ZXJjZXB0ZWQnKTsKLSAgICBhc3Nl
cnRfZXF1YWxzKGNhY2hlVGV4dCwgJ0hlbGxvIHdvcmxkXG4nLCAnY2FjaGUuYWRkIHdpdGhpbiBT
VyBub3QgaW50ZXJjZXB0ZWQnKTsKLSAgfSk7Ci19LCBgU2VydmljZSB3b3JrZXIgZG9lcyBub3Qg
aW50ZXJjZXB0IGZldGNoL2NhY2hlIHJlcXVlc3RzIHdpdGhpbiBzZXJ2aWNlIHdvcmtlcmApOwor
cHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25zdCBpZnJhbWUgPSBhd2FpdCByZWdpc3Rl
clN3QW5kT3BlbkZyYW1lKHQpOworICBjb25zdCBbZmV0Y2hUZXh0LCBjYWNoZVRleHRdID0gYXdh
aXQgUHJvbWlzZS5hbGwoWworICAgIGlmcmFtZS5jb250ZW50V2luZG93LmZldGNoKCdkdW1teS50
eHQtaW5uZXItZmV0Y2gnKS50aGVuKHIgPT4gci50ZXh0KCkpLAorICAgIGlmcmFtZS5jb250ZW50
V2luZG93LmZldGNoKCdkdW1teS50eHQtaW5uZXItY2FjaGUnKS50aGVuKHIgPT4gci50ZXh0KCkp
CisgIF0pOworICBhc3NlcnRfZXF1YWxzKGZldGNoVGV4dCwgJ0hlbGxvIHdvcmxkXG4nLCAnZmV0
Y2ggd2l0aGluIFNXIG5vdCBpbnRlcmNlcHRlZCcpOworICBhc3NlcnRfZXF1YWxzKGNhY2hlVGV4
dCwgJ0hlbGxvIHdvcmxkXG4nLAorICAgICAgICAgICAgICAgICdjYWNoZS5hZGQgd2l0aGluIFNX
IG5vdCBpbnRlcmNlcHRlZCcpOworfSwgJ1NlcnZpY2Ugd29ya2VyIGRvZXMgbm90IGludGVyY2Vw
dCBmZXRjaC9jYWNoZSByZXF1ZXN0cyB3aXRoaW4gc2VydmljZSAnICsKKyAgICd3b3JrZXInKTsK
IDwvc2NyaXB0PgotPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZ2V0cmVn
aXN0cmF0aW9ucy5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9nZXRyZWdp
c3RyYXRpb25zLmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCBmNGI1MzQwYmQ3ZTU4ZGVlOTM2ODJm
YTcxMTZlM2YyZmQ5ZjlhNWQ3Li5hM2U1NzdiNGUzMzg0NjJhZDFkN2Q3YmUxNjYyNzQ4OWE0M2Jl
MGRhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9nZXRyZWdpc3RyYXRpb25zLmh0dHBz
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9nZXRyZWdpc3RyYXRpb25zLmh0
dHBzLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDUgQEAKIAorCiBQQVNTIHJlZ2lzdHJhdGlvbnMg
YXJlIG5vdCByZXR1cm5lZCBmb2xsb3dpbmcgdW5yZWdpc3RlciAKIFBBU1MgUmVnaXN0ZXIgdGhl
biBnZXRSZWdpc3RyYXRpb25zIAogUEFTUyBSZWdpc3RlciBtdWx0aXBsZSB0aW1lcyB0aGVuIGdl
dFJlZ2lzdHJhdGlvbnMgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9nZXRyZWdpc3Ry
YXRpb25zLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9nZXRyZWdpc3RyYXRpb25zLmh0
dHBzLmh0bWwKaW5kZXggMTFkYTI3MDM2ZDA5MmMyZjJjNmQ1OGRmNTc2YjI5ZTliZmI5OTUzNy4u
M2U0OGQ1ZmUzNjE4YjM2NzEzZDcyNGI3MWU0MDI2ZWEyNDU1M2JkNCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvZ2V0cmVnaXN0cmF0aW9ucy5odHRwcy5odG1sCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL2dldHJlZ2lzdHJhdGlvbnMuaHR0cHMuaHRtbApAQCAtOCwxNzggKzgsMTIyIEBA
CiAvLyBQdXJnZSB0aGUgZXhpc3RpbmcgcmVnaXN0cmF0aW9ucyBmb3IgdGhlIG9yaWdpbi4KIC8v
IGdldFJlZ2lzdHJhdGlvbnMoKSBpcyB1c2VkIGluIG9yZGVyIHRvIGF2b2lkIGFkZGluZyBhZGRp
dGlvbmFsIGNvbXBsZXhpdHkKIC8vIGUuZy4gYWRkaW5nIGFuIGludGVybmFsIGZ1bmN0aW9uLgot
cHJvbWlzZV90ZXN0KGZ1bmN0aW9uKCkgewotICAgIHJldHVybiBuYXZpZ2F0b3Iuc2VydmljZVdv
cmtlci5nZXRSZWdpc3RyYXRpb25zKCkKLSAgICAgIC50aGVuKGZ1bmN0aW9uKHJlZ2lzdHJhdGlv
bnMpIHsKLSAgICAgICAgICByZXR1cm4gcmVnaXN0cmF0aW9ucy5yZWR1Y2UoZnVuY3Rpb24oc2Vx
dWVuY2UsIHJlZ2lzdHJhdGlvbikgewotICAgICAgICAgICAgICByZXR1cm4gc2VxdWVuY2UudGhl
bihmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICAgIHJldHVybiByZWdpc3RyYXRpb24udW5y
ZWdpc3RlcigpOwotICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgfSwgUHJvbWlzZS5y
ZXNvbHZlKCkpOwotICAgICAgICB9KQotICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7Ci0gICAgICAg
ICAgcmV0dXJuIG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLmdldFJlZ2lzdHJhdGlvbnMoKTsKLSAg
ICAgICAgfSkKLSAgICAgIC50aGVuKGZ1bmN0aW9uKHZhbHVlKSB7Ci0gICAgICAgICAgYXNzZXJ0
X2FycmF5X2VxdWFscygKLSAgICAgICAgICAgIHZhbHVlLAotICAgICAgICAgICAgW10sCi0gICAg
ICAgICAgICAnZ2V0UmVnaXN0cmF0aW9ucyBzaG91bGQgcmVzb2x2ZSB3aXRoIGFuIGVtcHR5IGFy
cmF5LicpOwotICAgICAgICB9KTsKK3Byb21pc2VfdGVzdChhc3luYyAoKSA9PiB7CisgIGNvbnN0
IHJlZ2lzdHJhdGlvbnMgPSBhd2FpdCBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5nZXRSZWdpc3Ry
YXRpb25zKCk7CisgIGF3YWl0IFByb21pc2UuYWxsKHJlZ2lzdHJhdGlvbnMubWFwKHIgPT4gci51
bnJlZ2lzdGVyKCkpKTsKKyAgY29uc3QgdmFsdWUgPSBhd2FpdCBuYXZpZ2F0b3Iuc2VydmljZVdv
cmtlci5nZXRSZWdpc3RyYXRpb25zKCk7CisgIGFzc2VydF9hcnJheV9lcXVhbHMoCisgICAgICB2
YWx1ZSwgW10sCisgICAgICAnZ2V0UmVnaXN0cmF0aW9ucyBzaG91bGQgcmVzb2x2ZSB3aXRoIGFu
IGVtcHR5IGFycmF5LicpOwogfSwgJ3JlZ2lzdHJhdGlvbnMgYXJlIG5vdCByZXR1cm5lZCBmb2xs
b3dpbmcgdW5yZWdpc3RlcicpOwogCi1wcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewotICAgIHZh
ciBzY29wZSA9ICdyZXNvdXJjZXMvc2NvcGUvZ2V0cmVnaXN0cmF0aW9ucy9ub3JtYWwnOwotICAg
IHZhciBzY3JpcHQgPSAncmVzb3VyY2VzL2VtcHR5LXdvcmtlci5qcyc7Ci0gICAgdmFyIHJlZ2lz
dHJhdGlvbnMgPSBbXTsKLSAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRf
cmVnaXN0ZXIodCwgc2NyaXB0LCBzY29wZSkKLSAgICAgIC50aGVuKGZ1bmN0aW9uKHIpIHsKLSAg
ICAgICAgICByZWdpc3RyYXRpb25zLnB1c2gocik7Ci0gICAgICAgICAgcmV0dXJuIG5hdmlnYXRv
ci5zZXJ2aWNlV29ya2VyLmdldFJlZ2lzdHJhdGlvbnMoKTsKLSAgICAgICAgfSkKLSAgICAgIC50
aGVuKGZ1bmN0aW9uKHZhbHVlKSB7Ci0gICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscygKLSAg
ICAgICAgICAgIHZhbHVlLAotICAgICAgICAgICAgcmVnaXN0cmF0aW9ucywKLSAgICAgICAgICAg
ICdnZXRSZWdpc3RyYXRpb25zIHNob3VsZCByZXNvbHZlIHdpdGggYXJyYXkgb2YgcmVnaXN0cmF0
aW9ucy4nKTsKLSAgICAgICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcih0LCBz
Y29wZSk7Ci0gICAgICAgIH0pOwotICB9LCAnUmVnaXN0ZXIgdGhlbiBnZXRSZWdpc3RyYXRpb25z
Jyk7Citwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0IHNjb3BlID0gJ3Jlc291cmNl
cy9zY29wZS9nZXRyZWdpc3RyYXRpb25zL25vcm1hbCc7CisgIGNvbnN0IHNjcmlwdCA9ICdyZXNv
dXJjZXMvZW1wdHktd29ya2VyLmpzJzsKKyAgY29uc3QgcmVnaXN0cmF0aW9ucyA9IFsKKyAgICAg
IGF3YWl0IHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHNjcmlwdCwg
c2NvcGUpXTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiByZWdpc3RyYXRpb25zWzBdLnVucmVnaXN0
ZXIoKSk7CisgIGNvbnN0IHZhbHVlID0gYXdhaXQgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuZ2V0
UmVnaXN0cmF0aW9ucygpOworICBhc3NlcnRfYXJyYXlfZXF1YWxzKHZhbHVlLCByZWdpc3RyYXRp
b25zLAorICAgICAgJ2dldFJlZ2lzdHJhdGlvbnMgc2hvdWxkIHJlc29sdmUgd2l0aCBhbiBhcnJh
eSBvZiByZWdpc3RyYXRpb25zJyk7Cit9LCAnUmVnaXN0ZXIgdGhlbiBnZXRSZWdpc3RyYXRpb25z
Jyk7CiAKLXByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7Ci0gICAgdmFyIHNjb3BlMSA9ICdyZXNv
dXJjZXMvc2NvcGUvZ2V0cmVnaXN0cmF0aW9ucy9zY29wZTEnOwotICAgIHZhciBzY29wZTIgPSAn
cmVzb3VyY2VzL3Njb3BlL2dldHJlZ2lzdHJhdGlvbnMvc2NvcGUyJzsKLSAgICB2YXIgc2NyaXB0
ID0gJ3Jlc291cmNlcy9lbXB0eS13b3JrZXIuanMnOwotICAgIHZhciByZWdpc3RyYXRpb25zID0g
W107Ci0gICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQs
IHNjcmlwdCwgc2NvcGUxKQotICAgICAgLnRoZW4oZnVuY3Rpb24ocikgewotICAgICAgICAgIHJl
Z2lzdHJhdGlvbnMucHVzaChyKTsKLSAgICAgICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5y
ZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgc2NyaXB0LCBzY29wZTIpOwotICAgICAgICB9KQotICAg
ICAgLnRoZW4oZnVuY3Rpb24ocikgewotICAgICAgICAgIHJlZ2lzdHJhdGlvbnMucHVzaChyKTsK
LSAgICAgICAgICByZXR1cm4gbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuZ2V0UmVnaXN0cmF0aW9u
cygpOwotICAgICAgICB9KQotICAgICAgLnRoZW4oZnVuY3Rpb24odmFsdWUpIHsKLSAgICAgICAg
ICBhc3NlcnRfYXJyYXlfZXF1YWxzKAotICAgICAgICAgICAgdmFsdWUsCi0gICAgICAgICAgICBy
ZWdpc3RyYXRpb25zLAotICAgICAgICAgICAgJ2dldFJlZ2lzdHJhdGlvbnMgc2hvdWxkIHJlc29s
dmUgd2l0aCBhcnJheSBvZiByZWdpc3RyYXRpb25zLicpOwotICAgICAgICAgIHJldHVybiBzZXJ2
aWNlX3dvcmtlcl91bnJlZ2lzdGVyKHQsIHNjb3BlMSk7Ci0gICAgICAgIH0pCi0gICAgICAudGhl
bihmdW5jdGlvbigpIHsKLSAgICAgICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rl
cih0LCBzY29wZTIpOwotICAgICAgICB9KTsKLSAgfSwgJ1JlZ2lzdGVyIG11bHRpcGxlIHRpbWVz
IHRoZW4gZ2V0UmVnaXN0cmF0aW9ucycpOworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBj
b25zdCBzY29wZTEgPSAncmVzb3VyY2VzL3Njb3BlL2dldHJlZ2lzdHJhdGlvbnMvc2NvcGUxJzsK
KyAgY29uc3Qgc2NvcGUyID0gJ3Jlc291cmNlcy9zY29wZS9nZXRyZWdpc3RyYXRpb25zL3Njb3Bl
Mic7CisgIGNvbnN0IHNjcmlwdCA9ICdyZXNvdXJjZXMvZW1wdHktd29ya2VyLmpzJzsKKyAgdC5h
ZGRfY2xlYW51cCgoKSA9PiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyKHQsIHNjb3BlMSkpOwor
ICB0LmFkZF9jbGVhbnVwKCgpID0+IHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXIodCwgc2NvcGUy
KSk7CiAKLXByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7Ci0gICAgdmFyIHNjb3BlID0gJ3Jlc291
cmNlcy9zY29wZS9nZXRyZWdpc3RyYXRpb25zL3JlZ2lzdGVyLXVucmVnaXN0ZXInOwotICAgIHZh
ciBzY3JpcHQgPSAncmVzb3VyY2VzL2VtcHR5LXdvcmtlci5qcyc7Ci0gICAgcmV0dXJuIHNlcnZp
Y2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHNjcmlwdCwgc2NvcGUpCi0gICAg
ICAudGhlbihmdW5jdGlvbihyZWdpc3RyYXRpb24pIHsKLSAgICAgICAgICByZXR1cm4gcmVnaXN0
cmF0aW9uLnVucmVnaXN0ZXIoKTsKLSAgICAgICAgfSkKLSAgICAgIC50aGVuKGZ1bmN0aW9uKCkg
ewotICAgICAgICAgIHJldHVybiBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5nZXRSZWdpc3RyYXRp
b25zKCk7Ci0gICAgICAgIH0pCi0gICAgICAudGhlbihmdW5jdGlvbih2YWx1ZSkgewotICAgICAg
ICAgIGFzc2VydF9hcnJheV9lcXVhbHMoCi0gICAgICAgICAgICB2YWx1ZSwKLSAgICAgICAgICAg
IFtdLAotICAgICAgICAgICAgJ2dldFJlZ2lzdHJhdGlvbnMgc2hvdWxkIHJlc29sdmUgd2l0aCBh
biBlbXB0eSBhcnJheS4nKTsKLSAgICAgICAgfSk7Ci0gIH0sICdSZWdpc3RlciB0aGVuIFVucmVn
aXN0ZXIgdGhlbiBnZXRSZWdpc3RyYXRpb25zJyk7CisgIGNvbnN0IHJlZ2lzdHJhdGlvbnMgPSBb
CisgICAgICBhd2FpdCBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCBz
Y3JpcHQsIHNjb3BlMSksCisgICAgICBhd2FpdCBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2Fu
ZF9yZWdpc3Rlcih0LCBzY3JpcHQsIHNjb3BlMikKKyAgXTsKKyAgY29uc3QgdmFsdWUgPSBhd2Fp
dCBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5nZXRSZWdpc3RyYXRpb25zKCk7CisgIGFzc2VydF9h
cnJheV9lcXVhbHModmFsdWUsIHJlZ2lzdHJhdGlvbnMpOworfSwgJ1JlZ2lzdGVyIG11bHRpcGxl
IHRpbWVzIHRoZW4gZ2V0UmVnaXN0cmF0aW9ucycpOwogCi1wcm9taXNlX3Rlc3QoZnVuY3Rpb24o
dCkgewotICAgIHZhciBzY29wZSA9ICdyZXNvdXJjZXMvc2NvcGUvZ2V0cmVnaXN0cmF0aW9ucy9y
ZWdpc3Rlci11bnJlZ2lzdGVyLWNvbnRyb2xsZWQnOwotICAgIHZhciBzY3JpcHQgPSAncmVzb3Vy
Y2VzL2VtcHR5LXdvcmtlci5qcyc7Ci0gICAgdmFyIHJlZ2lzdHJhdGlvbnM7Ci0gICAgcmV0dXJu
IHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHNjcmlwdCwgc2NvcGUp
Ci0gICAgICAudGhlbihmdW5jdGlvbihyKSB7Ci0gICAgICAgICAgcmVnaXN0cmF0aW9uID0gcjsK
LSAgICAgICAgICByZXR1cm4gd2FpdF9mb3Jfc3RhdGUodCwgcmVnaXN0cmF0aW9uLmluc3RhbGxp
bmcsICdhY3RpdmF0ZWQnKTsKLSAgICAgICAgfSkKLSAgICAgIC50aGVuKGZ1bmN0aW9uKCkgewot
ICAgICAgICAgIHJldHVybiB3aXRoX2lmcmFtZShzY29wZSk7Ci0gICAgICAgIH0pCi0gICAgICAu
dGhlbihmdW5jdGlvbihmKSB7Ci0gICAgICAgICAgdC5hZGRfY2xlYW51cChmdW5jdGlvbigpIHsg
Zi5yZW1vdmUoKTsgfSk7Ci0gICAgICAgICAgcmV0dXJuIHJlZ2lzdHJhdGlvbi51bnJlZ2lzdGVy
KCk7Ci0gICAgICAgIH0pCi0gICAgICAudGhlbihmdW5jdGlvbigpIHsKLSAgICAgICAgICByZXR1
cm4gbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuZ2V0UmVnaXN0cmF0aW9ucygpOwotICAgICAgICB9
KQotICAgICAgLnRoZW4oZnVuY3Rpb24odmFsdWUpIHsKLSAgICAgICAgICBhc3NlcnRfYXJyYXlf
ZXF1YWxzKAotICAgICAgICAgICAgdmFsdWUsCi0gICAgICAgICAgICBbXSwKLSAgICAgICAgICAg
ICdnZXRSZWdpc3RyYXRpb25zIHNob3VsZCByZXNvbHZlIHdpdGggYW4gZW1wdHkgYXJyYXkuJyk7
Ci0gICAgICAgICAgYXNzZXJ0X2VxdWFscyhyZWdpc3RyYXRpb24uaW5zdGFsbGluZywgbnVsbCk7
Ci0gICAgICAgICAgYXNzZXJ0X2VxdWFscyhyZWdpc3RyYXRpb24ud2FpdGluZywgbnVsbCk7Ci0g
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhyZWdpc3RyYXRpb24uYWN0aXZlLnN0YXRlLCAnYWN0aXZh
dGVkJyk7Ci0gICAgICAgIH0pOwotICB9LCAnUmVnaXN0ZXIgdGhlbiBVbnJlZ2lzdGVyIHdpdGgg
Y29udHJvbGxlZCBmcmFtZSB0aGVuIGdldFJlZ2lzdHJhdGlvbnMnKTsKK3Byb21pc2VfdGVzdChh
c3luYyB0ID0+IHsKKyAgY29uc3Qgc2NvcGUgPSAncmVzb3VyY2VzL3Njb3BlL2dldHJlZ2lzdHJh
dGlvbnMvcmVnaXN0ZXItdW5yZWdpc3Rlcic7CisgIGNvbnN0IHNjcmlwdCA9ICdyZXNvdXJjZXMv
ZW1wdHktd29ya2VyLmpzJzsKKyAgY29uc3QgcmVnaXN0cmF0aW9uID0gYXdhaXQgc2VydmljZV93
b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgc2NyaXB0LCBzY29wZSk7CisgIGF3YWl0
IHJlZ2lzdHJhdGlvbi51bnJlZ2lzdGVyKCk7CisgIGNvbnN0IHZhbHVlID0gYXdhaXQgbmF2aWdh
dG9yLnNlcnZpY2VXb3JrZXIuZ2V0UmVnaXN0cmF0aW9ucygpOworICBhc3NlcnRfYXJyYXlfZXF1
YWxzKAorICAgICAgdmFsdWUsIFtdLCAnZ2V0UmVnaXN0cmF0aW9ucyBzaG91bGQgcmVzb2x2ZSB3
aXRoIGFuIGVtcHR5IGFycmF5LicpOworfSwgJ1JlZ2lzdGVyIHRoZW4gVW5yZWdpc3RlciB0aGVu
IGdldFJlZ2lzdHJhdGlvbnMnKTsKIAotcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKLSAgICB2
YXIgaG9zdF9pbmZvID0gZ2V0X2hvc3RfaW5mbygpOwotICAgIC8vIFJld3JpdGUgdGhlIHVybCB0
byBwb2ludCB0byByZW1vdGUgb3JpZ2luLgotICAgIHZhciBmcmFtZV9zYW1lX29yaWdpbl91cmwg
PSBuZXcgVVJMKCJyZXNvdXJjZXMvZnJhbWUtZm9yLWdldHJlZ2lzdHJhdGlvbnMuaHRtbCIsIHdp
bmRvdy5sb2NhdGlvbik7Ci0gICAgdmFyIGZyYW1lX3VybCA9IGhvc3RfaW5mb1snSFRUUFNfUkVN
T1RFX09SSUdJTiddICsgZnJhbWVfc2FtZV9vcmlnaW5fdXJsLnBhdGhuYW1lOwotICAgIHZhciBz
Y29wZSA9ICdyZXNvdXJjZXMvc2NvcGUtZm9yLWdldHJlZ2lzdHJhdGlvbnMnOwotICAgIHZhciBz
Y3JpcHQgPSAncmVzb3VyY2VzL2VtcHR5LXdvcmtlci5qcyc7Ci0gICAgdmFyIGZyYW1lOwotICAg
IHZhciByZWdpc3RyYXRpb25zID0gW107Citwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNv
bnN0IHNjb3BlID0gJ3Jlc291cmNlcy9zY29wZS9nZXRyZWdpc3RyYXRpb25zL3JlZ2lzdGVyLXVu
cmVnaXN0ZXItY29udHJvbGxlZCc7CisgIGNvbnN0IHNjcmlwdCA9ICdyZXNvdXJjZXMvZW1wdHkt
d29ya2VyLmpzJzsKKyAgY29uc3QgcmVnaXN0cmF0aW9uID0gYXdhaXQgc2VydmljZV93b3JrZXJf
dW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgc2NyaXB0LCBzY29wZSk7CisgIGF3YWl0IHdhaXRf
Zm9yX3N0YXRlKHQsIHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7CiAKLSAg
ICAvLyBMb2FkcyBhbiBpZnJhbWUgYW5kIHdhaXRzIGZvciAncmVhZHknIG1lc3NhZ2UgZnJvbSBp
dCB0byByZXNvbHZlIHByb21pc2UuCi0gICAgLy8gQ2FsbGVyIGlzIHJlc3BvbnNpYmxlIGZvciBy
ZW1vdmluZyBmcmFtZS4KLSAgICBmdW5jdGlvbiB3aXRoX2lmcmFtZV9yZWFkeSh1cmwpIHsKLSAg
ICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUpIHsKLSAgICAgICAgICAg
IHZhciBmcmFtZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lmcmFtZScpOwotICAgICAgICAg
ICAgZnJhbWUuc3JjID0gdXJsOwotICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIo
J21lc3NhZ2UnLCBmdW5jdGlvbiBvbk1lc3NhZ2UoZSkgewotICAgICAgICAgICAgICB3aW5kb3cu
cmVtb3ZlRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIG9uTWVzc2FnZSk7Ci0gICAgICAgICAgICAg
IGlmIChlLmRhdGEgPT0gJ3JlYWR5JykgewotICAgICAgICAgICAgICAgIHJlc29sdmUoZnJhbWUp
OwotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIGRvY3VtZW50
LmJvZHkuYXBwZW5kQ2hpbGQoZnJhbWUpOwotICAgICAgICB9KTsKLSAgICB9CisgIC8vIENyZWF0
ZSBhIGZyYW1lIGNvbnRyb2xsZWQgYnkgdGhlIHNlcnZpY2Ugd29ya2VyIGFuZCB1bnJlZ2lzdGVy
IHRoZQorICAvLyB3b3JrZXIuCisgIGNvbnN0IGZyYW1lID0gYXdhaXQgd2l0aF9pZnJhbWUoc2Nv
cGUpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IGZyYW1lLnJlbW92ZSgpKTsKKyAgYXdhaXQgcmVn
aXN0cmF0aW9uLnVucmVnaXN0ZXIoKTsKIAotICAgIC8vIFdlIG5lZWQgdGhpcyBzcGVjaWFsIGZy
YW1lIGxvYWRpbmcgZnVuY3Rpb24gYmVjYXVzZSB0aGUgZnJhbWUgaXMgZ29pbmcKLSAgICAvLyB0
byByZWdpc3RlciBpdCdzIG93biBzZXJ2aWNlIHdvcmtlciBhbmQgdGhlcmUgaXMgdGhlIHBvc3Np
YmlsaXR5IHRoYXQgdGhhdAotICAgIC8vIHJlZ2lzdGVyKCkgZmluaXNoZXMgYWZ0ZXIgdGhlIHJl
Z2lzdGVyKCkgZm9yIHRoZSBzYW1lIGRvbWFpbiBsYXRlciBpbiB0aGUKLSAgICAvLyB0ZXN0LiBT
byB3ZSBoYXZlIHRvIHdhaXQgdW50aWwgdGhlIGNyb3NzIG9yaWdpbiByZWdpc3RlcigpIGlzIGRv
bmUsIGFuZCBub3QKLSAgICAvLyBqdXN0IHVudGlsIHRoZSBmcmFtZSBsb2Fkcy4KLSAgICByZXR1
cm4gd2l0aF9pZnJhbWVfcmVhZHkoZnJhbWVfdXJsKQotICAgICAgLnRoZW4oZnVuY3Rpb24oZikg
ewotICAgICAgICAgIHQuYWRkX2NsZWFudXAoZnVuY3Rpb24oKSB7IGYucmVtb3ZlKCk7IH0pOwot
ICAgICAgICAgIGZyYW1lID0gZjsKLSAgICAgICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5y
ZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgc2NyaXB0LCBzY29wZSk7Ci0gICAgICAgIH0pCi0gICAg
ICAudGhlbihmdW5jdGlvbihyKSB7Ci0gICAgICAgICAgcmVnaXN0cmF0aW9ucy5wdXNoKHIpOwot
ICAgICAgICAgIHJldHVybiBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5nZXRSZWdpc3RyYXRpb25z
KCk7Ci0gICAgICAgIH0pCi0gICAgICAudGhlbihmdW5jdGlvbih2YWx1ZSkgewotICAgICAgICAg
IGFzc2VydF9hcnJheV9lcXVhbHMoCi0gICAgICAgICAgICB2YWx1ZSwKLSAgICAgICAgICAgIHJl
Z2lzdHJhdGlvbnMsCi0gICAgICAgICAgICAnZ2V0UmVnaXN0cmF0aW9ucyBzaG91bGQgb25seSBy
ZXR1cm4gc2FtZSBvcmlnaW4gcmVnaXN0cmF0aW9ucy4nKTsKKyAgY29uc3QgdmFsdWUgPSBhd2Fp
dCBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5nZXRSZWdpc3RyYXRpb25zKCk7CisgIGFzc2VydF9h
cnJheV9lcXVhbHMoCisgICAgICB2YWx1ZSwgW10sCisgICAgICAnZ2V0UmVnaXN0cmF0aW9ucyBz
aG91bGQgcmVzb2x2ZSB3aXRoIGFuIGVtcHR5IGFycmF5LicpOworICBhc3NlcnRfZXF1YWxzKHJl
Z2lzdHJhdGlvbi5pbnN0YWxsaW5nLCBudWxsKTsKKyAgYXNzZXJ0X2VxdWFscyhyZWdpc3RyYXRp
b24ud2FpdGluZywgbnVsbCk7CisgIGFzc2VydF9lcXVhbHMocmVnaXN0cmF0aW9uLmFjdGl2ZS5z
dGF0ZSwgJ2FjdGl2YXRlZCcpOworfSwgJ1JlZ2lzdGVyIHRoZW4gVW5yZWdpc3RlciB3aXRoIGNv
bnRyb2xsZWQgZnJhbWUgdGhlbiBnZXRSZWdpc3RyYXRpb25zJyk7CiAKLSAgICAgICAgICB2YXIg
Y2hhbm5lbCA9IG5ldyBNZXNzYWdlQ2hhbm5lbCgpOwotICAgICAgICAgIHZhciByZXNvbHZlOwot
ICAgICAgICAgIHZhciBwID0gbmV3IFByb21pc2UoZnVuY3Rpb24ocikgeyByZXNvbHZlID0gcjsg
fSk7Citwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0IGhvc3RfaW5mbyA9IGdldF9o
b3N0X2luZm8oKTsKKyAgLy8gUmV3cml0ZSB0aGUgdXJsIHRvIHBvaW50IHRvIHJlbW90ZSBvcmln
aW4uCisgIGNvbnN0IGZyYW1lX3NhbWVfb3JpZ2luX3VybCA9IG5ldyBVUkwoInJlc291cmNlcy9m
cmFtZS1mb3ItZ2V0cmVnaXN0cmF0aW9ucy5odG1sIiwgd2luZG93LmxvY2F0aW9uKTsKKyAgY29u
c3QgZnJhbWVfdXJsID0gaG9zdF9pbmZvWydIVFRQU19SRU1PVEVfT1JJR0lOJ10gKyBmcmFtZV9z
YW1lX29yaWdpbl91cmwucGF0aG5hbWU7CisgIGNvbnN0IHNjb3BlID0gJ3Jlc291cmNlcy9zY29w
ZS1mb3ItZ2V0cmVnaXN0cmF0aW9ucyc7CisgIGNvbnN0IHNjcmlwdCA9ICdyZXNvdXJjZXMvZW1w
dHktd29ya2VyLmpzJzsKIAotICAgICAgICAgIGNoYW5uZWwucG9ydDEub25tZXNzYWdlID0gZnVu
Y3Rpb24oZSkgewotICAgICAgICAgICAgaWYgKGUuZGF0YSA9PSAndW5yZWdpc3RlcmVkJykKLSAg
ICAgICAgICAgICAgcmVzb2x2ZSgpOwotICAgICAgICAgIH07Ci0gICAgICAgICAgZnJhbWUuY29u
dGVudFdpbmRvdy5wb3N0TWVzc2FnZSgndW5yZWdpc3RlcicsICcqJywgW2NoYW5uZWwucG9ydDJd
KTsKLSAgICAgICAgICByZXR1cm4gcDsKLSAgICAgICAgfSkKLSAgICAgIC50aGVuKGZ1bmN0aW9u
KCkgewotICAgICAgICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyKHQsIHNjb3Bl
KTsKLSAgICAgICAgfSk7Ci0gIH0sICdnZXRSZWdpc3RyYXRpb25zIHByb21pc2UgcmVzb2x2ZXMg
b25seSB3aXRoIHNhbWUgb3JpZ2luIHJlZ2lzdHJhdGlvbnMuJyk7CisgIC8vIExvYWRzIGFuIGlm
cmFtZSBhbmQgd2FpdHMgZm9yICdyZWFkeScgbWVzc2FnZSBmcm9tIGl0IHRvIHJlc29sdmUgcHJv
bWlzZS4KKyAgLy8gQ2FsbGVyIGlzIHJlc3BvbnNpYmxlIGZvciByZW1vdmluZyBmcmFtZS4KKyAg
ZnVuY3Rpb24gd2l0aF9pZnJhbWVfcmVhZHkodXJsKSB7CisgICAgICByZXR1cm4gbmV3IFByb21p
c2UocmVzb2x2ZSA9PiB7CisgICAgICAgICAgY29uc3QgZnJhbWUgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCdpZnJhbWUnKTsKKyAgICAgICAgICBmcmFtZS5zcmMgPSB1cmw7CisgICAgICAgICAg
d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCBmdW5jdGlvbiBvbk1lc3NhZ2UoZSkg
eworICAgICAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCBvbk1l
c3NhZ2UpOworICAgICAgICAgICAgaWYgKGUuZGF0YSA9PSAncmVhZHknKSB7CisgICAgICAgICAg
ICAgIHJlc29sdmUoZnJhbWUpOworICAgICAgICAgICAgfQorICAgICAgICAgIH0pOworICAgICAg
ICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZnJhbWUpOworICAgICAgfSk7CisgIH0KKwor
ICAvLyBXZSBuZWVkIHRoaXMgc3BlY2lhbCBmcmFtZSBsb2FkaW5nIGZ1bmN0aW9uIGJlY2F1c2Ug
dGhlIGZyYW1lIGlzIGdvaW5nCisgIC8vIHRvIHJlZ2lzdGVyIGl0J3Mgb3duIHNlcnZpY2Ugd29y
a2VyIGFuZCB0aGVyZSBpcyB0aGUgcG9zc2liaWxpdHkgdGhhdCB0aGF0CisgIC8vIHJlZ2lzdGVy
KCkgZmluaXNoZXMgYWZ0ZXIgdGhlIHJlZ2lzdGVyKCkgZm9yIHRoZSBzYW1lIGRvbWFpbiBsYXRl
ciBpbiB0aGUKKyAgLy8gdGVzdC4gU28gd2UgaGF2ZSB0byB3YWl0IHVudGlsIHRoZSBjcm9zcyBv
cmlnaW4gcmVnaXN0ZXIoKSBpcyBkb25lLCBhbmQgbm90CisgIC8vIGp1c3QgdW50aWwgdGhlIGZy
YW1lIGxvYWRzLgorICBjb25zdCBmcmFtZSA9IGF3YWl0IHdpdGhfaWZyYW1lX3JlYWR5KGZyYW1l
X3VybCk7CisgIHQuYWRkX2NsZWFudXAoYXN5bmMgKCkgPT4geworICAgIC8vIFdhaXQgdW50aWwg
dGhlIGNyb3NzLW9yaWdpbiB3b3JrZXIgaXMgdW5yZWdpc3RlcmVkLgorICAgIGxldCByZXNvbHZl
OworICAgIGNvbnN0IGNoYW5uZWwgPSBuZXcgTWVzc2FnZUNoYW5uZWwoKTsKKyAgICBjaGFubmVs
LnBvcnQxLm9ubWVzc2FnZSA9IGUgPT4geworICAgICAgaWYgKGUuZGF0YSA9PSAndW5yZWdpc3Rl
cmVkJykKKyAgICAgICAgcmVzb2x2ZSgpOworICAgIH07CisgICAgZnJhbWUuY29udGVudFdpbmRv
dy5wb3N0TWVzc2FnZSgndW5yZWdpc3RlcicsICcqJywgW2NoYW5uZWwucG9ydDJdKTsKKyAgICBh
d2FpdCBuZXcgUHJvbWlzZShyID0+IHsgcmVzb2x2ZSA9IHI7IH0pOworCisgICAgZnJhbWUucmVt
b3ZlKCk7CisgIH0pOworCisgIGNvbnN0IHJlZ2lzdHJhdGlvbnMgPSBbCisgICAgYXdhaXQgc2Vy
dmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgc2NyaXB0LCBzY29wZSldOwor
ICB0LmFkZF9jbGVhbnVwKCgpID0+IHJlZ2lzdHJhdGlvbnNbMF0udW5yZWdpc3RlcigpKTsKKyAg
Y29uc3QgdmFsdWUgPSBhd2FpdCBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5nZXRSZWdpc3RyYXRp
b25zKCk7CisgIGFzc2VydF9hcnJheV9lcXVhbHMoCisgICAgICB2YWx1ZSwgcmVnaXN0cmF0aW9u
cywKKyAgICAgICdnZXRSZWdpc3RyYXRpb25zIHNob3VsZCBvbmx5IHJldHVybiBzYW1lIG9yaWdp
biByZWdpc3RyYXRpb25zLicpOworfSwgJ2dldFJlZ2lzdHJhdGlvbnMgcHJvbWlzZSByZXNvbHZl
cyBvbmx5IHdpdGggc2FtZSBvcmlnaW4gcmVnaXN0cmF0aW9ucy4nKTsKIDwvc2NyaXB0PgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvaW1wb3J0LXNjcmlwdHMtcmVkaXJlY3QuaHR0cHMu
aHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ltcG9ydC1zY3JpcHRzLXJlZGlyZWN0Lmh0dHBzLmh0
bWwKaW5kZXggZTUyYWRmYTM3ODAwODUzYTg2ZGE5ZjVmMzBiYzBkZDQxZTRhZmNiNi4uMDdlYTQ5
NDM5ZWJhOGY5NzYyYjJiYzE3YjVhZTIzNDZkOWQxNTM5NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvaW1wb3J0LXNjcmlwdHMtcmVkaXJlY3QuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9pbXBvcnQtc2NyaXB0cy1yZWRpcmVjdC5odHRwcy5odG1sCkBAIC0xLDYgKzEs
NyBAQAogPCFET0NUWVBFIGh0bWw+CiA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CiA8dGl0bGU+VGVz
dHMgZm9yIGltcG9ydFNjcmlwdHM6IHJlZGlyZWN0PC90aXRsZT4KKzxzY3JpcHQgc3JjPSIvY29t
bW9uL3V0aWxzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGVzdC1oZWxwZXJzLnN1
Yi5qcyI+PC9zY3JpcHQ+CkBAIC0yMCwxNCArMjEsMzUgQEAgcHJvbWlzZV90ZXN0KGFzeW5jIHQg
PT4gewogICAgIGF3YWl0IHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXIodCwgc2NvcGUpOwogICAg
IGxldCByZWcgPSBhd2FpdCBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3RlcigKICAgICAg
ICdyZXNvdXJjZXMvaW1wb3J0LXNjcmlwdHMtcmVkaXJlY3Qtd29ya2VyLmpzJywgeyBzY29wZTog
c2NvcGUgfSk7Ci0gICAgYXNzZXJ0X25vdF9lcXVhbHMocmVnLmluc3RhbGxpbmcsIG51bGwsICd3
b3JrZXIgaXMgaW5zdGFsbGluZycpOworICAgIGFzc2VydF9ub3RfZXF1YWxzKHJlZy5pbnN0YWxs
aW5nLCBudWxsLCAnYmVmb3JlIHVwZGF0ZScpOwogICAgIGF3YWl0IHdhaXRfZm9yX3N0YXRlKHQs
IHJlZy5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7CiAgICAgYXdhaXQgUHJvbWlzZS5hbGwoWwog
ICAgICAgd2FpdF9mb3JfdXBkYXRlKHQsIHJlZyksCiAgICAgICByZWcudXBkYXRlKCkKICAgICBd
KTsKLSAgICBhc3NlcnRfbm90X2VxdWFscyhyZWcuaW5zdGFsbGluZywgbnVsbCwgJ3dvcmtlciBp
cyBpbnN0YWxsaW5nJyk7CisgICAgYXNzZXJ0X25vdF9lcXVhbHMocmVnLmluc3RhbGxpbmcsIG51
bGwsICdhZnRlciB1cGRhdGUnKTsKICAgICBhd2FpdCByZWcudW5yZWdpc3RlcigpOwotICB9LCAn
aW1wb3J0U2NyaXB0cygpIHN1cHBvcnRzIHJlZGlyZWN0cyBhbmQgY2FuIGJlIHVwZGF0ZWQnKTsK
KyAgfSwKKyAgImFuIGltcG9ydGVkIHNjcmlwdCByZWRpcmVjdHMsIGFuZCB0aGUgYm9keSBjaGFu
Z2VzIGR1cmluZyB0aGUgdXBkYXRlIGNoZWNrIik7CisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+
IHsKKyAgICBjb25zdCBrZXkgPSB0b2tlbigpOworICAgIGNvbnN0IHNjb3BlID0gJ3Jlc291cmNl
cy9pbXBvcnQtc2NyaXB0cy1yZWRpcmVjdCc7CisgICAgYXdhaXQgc2VydmljZV93b3JrZXJfdW5y
ZWdpc3Rlcih0LCBzY29wZSk7CisgICAgbGV0IHJlZyA9IGF3YWl0IG5hdmlnYXRvci5zZXJ2aWNl
V29ya2VyLnJlZ2lzdGVyKAorICAgICAgYHJlc291cmNlcy9pbXBvcnQtc2NyaXB0cy1yZWRpcmVj
dC1vbi1zZWNvbmQtdGltZS13b3JrZXIuanM/S2V5PSR7a2V5fWAsCisgICAgICB7IHNjb3BlIH0p
OworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcmVnLnVucmVnaXN0ZXIoKSk7CisKKyAgICBhc3Nl
cnRfbm90X2VxdWFscyhyZWcuaW5zdGFsbGluZywgbnVsbCwgJ2JlZm9yZSB1cGRhdGUnKTsKKyAg
ICBhd2FpdCB3YWl0X2Zvcl9zdGF0ZSh0LCByZWcuaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOwor
ICAgIGF3YWl0IFByb21pc2UuYWxsKFsKKyAgICAgIHdhaXRfZm9yX3VwZGF0ZSh0LCByZWcpLAor
ICAgICAgcmVnLnVwZGF0ZSgpCisgICAgXSk7CisgICAgYXNzZXJ0X25vdF9lcXVhbHMocmVnLmlu
c3RhbGxpbmcsIG51bGwsICdhZnRlciB1cGRhdGUnKTsKKyAgfSwKKyAgImFuIGltcG9ydGVkIHNj
cmlwdCBkb2Vzbid0IHJlZGlyZWN0IGluaXRpYWxseSwgdGhlbiByZWRpcmVjdHMgZHVyaW5nICIg
KworICAidGhlIHVwZGF0ZSBjaGVjayBhbmQgdGhlIGJvZHkgY2hhbmdlcyIpOwogPC9zY3JpcHQ+
CiA8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9pbnRlcmZhY2VzLXN3Lmh0
dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ludGVyZmFjZXMtc3cuaHR0cHMt
ZXhwZWN0ZWQudHh0CmluZGV4IDU0ZWE2NzJiZDc1MjBmYjMyMTQxNmUzNWExODBiYWMyNjcwNGU5
NDIuLmVlZTg3NzI5NDQ5NDJjN2E5MzU2MjIwNGZlNzJjNTA5ZDE1N2UxNmIgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL2ludGVyZmFjZXMtc3cuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL2ludGVyZmFjZXMtc3cuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0x
Myw2ICsxMyw3IEBAIFBBU1MgU2VydmljZVdvcmtlciBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQg
cHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iCiBQQVNTIFNlcnZpY2VXb3JrZXIg
aW50ZXJmYWNlOiBhdHRyaWJ1dGUgc2NyaXB0VVJMIAogUEFTUyBTZXJ2aWNlV29ya2VyIGludGVy
ZmFjZTogYXR0cmlidXRlIHN0YXRlIAogUEFTUyBTZXJ2aWNlV29ya2VyIGludGVyZmFjZTogb3Bl
cmF0aW9uIHBvc3RNZXNzYWdlKGFueSwgW29iamVjdCBPYmplY3RdKSAKK1BBU1MgU2VydmljZVdv
cmtlciBpbnRlcmZhY2U6IG9wZXJhdGlvbiBwb3N0TWVzc2FnZShhbnksIFBvc3RNZXNzYWdlT3B0
aW9ucykgCiBQQVNTIFNlcnZpY2VXb3JrZXIgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgb25zdGF0ZWNo
YW5nZSAKIFBBU1MgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbiBpbnRlcmZhY2U6IGV4aXN0ZW5j
ZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IAogUEFTUyBTZXJ2aWNlV29ya2Vy
UmVnaXN0cmF0aW9uIGludGVyZmFjZSBvYmplY3QgbGVuZ3RoIApAQCAtMjMsNiArMjQsNyBAQCBQ
QVNTIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24gaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHBy
b3BlcnRpZXMgb2YgaW50ZXJmYWNlCiBQQVNTIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24gaW50
ZXJmYWNlOiBhdHRyaWJ1dGUgaW5zdGFsbGluZyAKIFBBU1MgU2VydmljZVdvcmtlclJlZ2lzdHJh
dGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSB3YWl0aW5nIAogUEFTUyBTZXJ2aWNlV29ya2VyUmVn
aXN0cmF0aW9uIGludGVyZmFjZTogYXR0cmlidXRlIGFjdGl2ZSAKK0ZBSUwgU2VydmljZVdvcmtl
clJlZ2lzdHJhdGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBuYXZpZ2F0aW9uUHJlbG9hZCBhc3Nl
cnRfdHJ1ZTogVGhlIHByb3RvdHlwZSBvYmplY3QgbXVzdCBoYXZlIGEgcHJvcGVydHkgIm5hdmln
YXRpb25QcmVsb2FkIiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQogUEFTUyBTZXJ2aWNlV29ya2Vy
UmVnaXN0cmF0aW9uIGludGVyZmFjZTogYXR0cmlidXRlIHNjb3BlIAogUEFTUyBTZXJ2aWNlV29y
a2VyUmVnaXN0cmF0aW9uIGludGVyZmFjZTogYXR0cmlidXRlIHVwZGF0ZVZpYUNhY2hlIAogUEFT
UyBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uIGludGVyZmFjZTogb3BlcmF0aW9uIHVwZGF0ZSgp
IApAQCAtMzMsMTEgKzM1LDIyIEBAIFBBU1MgU3RyaW5naWZpY2F0aW9uIG9mIHNlbGYucmVnaXN0
cmF0aW9uCiBQQVNTIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24gaW50ZXJmYWNlOiBzZWxmLnJl
Z2lzdHJhdGlvbiBtdXN0IGluaGVyaXQgcHJvcGVydHkgImluc3RhbGxpbmciIHdpdGggdGhlIHBy
b3BlciB0eXBlIAogUEFTUyBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uIGludGVyZmFjZTogc2Vs
Zi5yZWdpc3RyYXRpb24gbXVzdCBpbmhlcml0IHByb3BlcnR5ICJ3YWl0aW5nIiB3aXRoIHRoZSBw
cm9wZXIgdHlwZSAKIFBBU1MgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbiBpbnRlcmZhY2U6IHNl
bGYucmVnaXN0cmF0aW9uIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiYWN0aXZlIiB3aXRoIHRoZSBw
cm9wZXIgdHlwZSAKK0ZBSUwgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbiBpbnRlcmZhY2U6IHNl
bGYucmVnaXN0cmF0aW9uIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAibmF2aWdhdGlvblByZWxvYWQi
IHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9pbmhlcml0czogcHJvcGVydHkgIm5hdmlnYXRp
b25QcmVsb2FkIiBub3QgZm91bmQgaW4gcHJvdG90eXBlIGNoYWluCiBQQVNTIFNlcnZpY2VXb3Jr
ZXJSZWdpc3RyYXRpb24gaW50ZXJmYWNlOiBzZWxmLnJlZ2lzdHJhdGlvbiBtdXN0IGluaGVyaXQg
cHJvcGVydHkgInNjb3BlIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgU2VydmljZVdvcmtl
clJlZ2lzdHJhdGlvbiBpbnRlcmZhY2U6IHNlbGYucmVnaXN0cmF0aW9uIG11c3QgaW5oZXJpdCBw
cm9wZXJ0eSAidXBkYXRlVmlhQ2FjaGUiIHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBTZXJ2
aWNlV29ya2VyUmVnaXN0cmF0aW9uIGludGVyZmFjZTogc2VsZi5yZWdpc3RyYXRpb24gbXVzdCBp
bmhlcml0IHByb3BlcnR5ICJ1cGRhdGUoKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCiBQQVNTIFNl
cnZpY2VXb3JrZXJSZWdpc3RyYXRpb24gaW50ZXJmYWNlOiBzZWxmLnJlZ2lzdHJhdGlvbiBtdXN0
IGluaGVyaXQgcHJvcGVydHkgInVucmVnaXN0ZXIoKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCiBQ
QVNTIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24gaW50ZXJmYWNlOiBzZWxmLnJlZ2lzdHJhdGlv
biBtdXN0IGluaGVyaXQgcHJvcGVydHkgIm9udXBkYXRlZm91bmQiIHdpdGggdGhlIHByb3BlciB0
eXBlIAorRkFJTCBOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIgaW50ZXJmYWNlOiBleGlzdGVuY2Ug
YW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCBhc3NlcnRfb3duX3Byb3BlcnR5OiBz
ZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIi
IGV4cGVjdGVkIHByb3BlcnR5ICJOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIiIG1pc3NpbmcKK0ZB
SUwgTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIGludGVyZmFjZSBvYmplY3QgbGVuZ3RoIGFzc2Vy
dF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIk5hdmlnYXRp
b25QcmVsb2FkTWFuYWdlciIgZXhwZWN0ZWQgcHJvcGVydHkgIk5hdmlnYXRpb25QcmVsb2FkTWFu
YWdlciIgbWlzc2luZworRkFJTCBOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIgaW50ZXJmYWNlIG9i
amVjdCBuYW1lIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJv
cGVydHkgIk5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciIgZXhwZWN0ZWQgcHJvcGVydHkgIk5hdmln
YXRpb25QcmVsb2FkTWFuYWdlciIgbWlzc2luZworRkFJTCBOYXZpZ2F0aW9uUHJlbG9hZE1hbmFn
ZXIgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3Rv
dHlwZSBvYmplY3QgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBw
cm9wZXJ0eSAiTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIiBleHBlY3RlZCBwcm9wZXJ0eSAiTmF2
aWdhdGlvblByZWxvYWRNYW5hZ2VyIiBtaXNzaW5nCitGQUlMIE5hdmlnYXRpb25QcmVsb2FkTWFu
YWdlciBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJv
dG90eXBlIG9iamVjdCdzICJjb25zdHJ1Y3RvciIgcHJvcGVydHkgYXNzZXJ0X293bl9wcm9wZXJ0
eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiTmF2aWdhdGlvblByZWxvYWRNYW5h
Z2VyIiBleHBlY3RlZCBwcm9wZXJ0eSAiTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIiBtaXNzaW5n
CitGQUlMIE5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQg
cHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzIEBAdW5zY29wYWJsZXMg
cHJvcGVydHkgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9w
ZXJ0eSAiTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIiBleHBlY3RlZCBwcm9wZXJ0eSAiTmF2aWdh
dGlvblByZWxvYWRNYW5hZ2VyIiBtaXNzaW5nCitGQUlMIE5hdmlnYXRpb25QcmVsb2FkTWFuYWdl
ciBpbnRlcmZhY2U6IG9wZXJhdGlvbiBlbmFibGUoKSBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxm
IGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIiIGV4
cGVjdGVkIHByb3BlcnR5ICJOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIiIG1pc3NpbmcKK0ZBSUwg
TmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIGludGVyZmFjZTogb3BlcmF0aW9uIGRpc2FibGUoKSBh
c3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJOYXZp
Z2F0aW9uUHJlbG9hZE1hbmFnZXIiIGV4cGVjdGVkIHByb3BlcnR5ICJOYXZpZ2F0aW9uUHJlbG9h
ZE1hbmFnZXIiIG1pc3NpbmcKK0ZBSUwgTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIGludGVyZmFj
ZTogb3BlcmF0aW9uIHNldEhlYWRlclZhbHVlKEJ5dGVTdHJpbmcpIGFzc2VydF9vd25fcHJvcGVy
dHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIk5hdmlnYXRpb25QcmVsb2FkTWFu
YWdlciIgZXhwZWN0ZWQgcHJvcGVydHkgIk5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciIgbWlzc2lu
ZworRkFJTCBOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIgaW50ZXJmYWNlOiBvcGVyYXRpb24gZ2V0
U3RhdGUoKSBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3Bl
cnR5ICJOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIiIGV4cGVjdGVkIHByb3BlcnR5ICJOYXZpZ2F0
aW9uUHJlbG9hZE1hbmFnZXIiIG1pc3NpbmcKIFBBU1MgU2VydmljZVdvcmtlckdsb2JhbFNjb3Bl
IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3Qg
CiBQQVNTIFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aCAK
IFBBU1MgU2VydmljZVdvcmtlckdsb2JhbFNjb3BlIGludGVyZmFjZSBvYmplY3QgbmFtZSAKQEAg
LTUyLDYgKzY1LDcgQEAgUEFTUyBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUgaW50ZXJmYWNlOiBl
eGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHAKIFBBU1MgU2VydmljZVdvcmtl
ckdsb2JhbFNjb3BlIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVy
ZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgQEB1bnNjb3BhYmxlcyBwcm9wZXJ0eSAKIFBBU1MgU2Vy
dmljZVdvcmtlckdsb2JhbFNjb3BlIGludGVyZmFjZTogYXR0cmlidXRlIGNsaWVudHMgCiBQQVNT
IFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSBpbnRlcmZhY2U6IGF0dHJpYnV0ZSByZWdpc3RyYXRp
b24gCitGQUlMIFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBz
ZXJ2aWNlV29ya2VyIGFzc2VydF9vd25fcHJvcGVydHk6IFRoZSBnbG9iYWwgb2JqZWN0IG11c3Qg
aGF2ZSBhIHByb3BlcnR5ICJzZXJ2aWNlV29ya2VyIiBleHBlY3RlZCBwcm9wZXJ0eSAic2Vydmlj
ZVdvcmtlciIgbWlzc2luZwogUEFTUyBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUgaW50ZXJmYWNl
OiBvcGVyYXRpb24gc2tpcFdhaXRpbmcoKSAKIFBBU1MgU2VydmljZVdvcmtlckdsb2JhbFNjb3Bl
IGludGVyZmFjZTogYXR0cmlidXRlIG9uaW5zdGFsbCAKIFBBU1MgU2VydmljZVdvcmtlckdsb2Jh
bFNjb3BlIGludGVyZmFjZTogYXR0cmlidXRlIG9uYWN0aXZhdGUgCkBAIC02OCw2ICs4Miw3IEBA
IFBBU1MgU2VydmljZVdvcmtlckdsb2JhbFNjb3BlIG11c3QgYmUgcHJpbWFyeSBpbnRlcmZhY2Ug
b2Ygc2VsZgogUEFTUyBTdHJpbmdpZmljYXRpb24gb2Ygc2VsZiAKIFBBU1MgU2VydmljZVdvcmtl
ckdsb2JhbFNjb3BlIGludGVyZmFjZTogc2VsZiBtdXN0IGluaGVyaXQgcHJvcGVydHkgImNsaWVu
dHMiIHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUg
aW50ZXJmYWNlOiBzZWxmIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAicmVnaXN0cmF0aW9uIiB3aXRo
IHRoZSBwcm9wZXIgdHlwZSAKK0ZBSUwgU2VydmljZVdvcmtlckdsb2JhbFNjb3BlIGludGVyZmFj
ZTogc2VsZiBtdXN0IGluaGVyaXQgcHJvcGVydHkgInNlcnZpY2VXb3JrZXIiIHdpdGggdGhlIHBy
b3BlciB0eXBlIGFzc2VydF9vd25fcHJvcGVydHk6IGV4cGVjdGVkIHByb3BlcnR5ICJzZXJ2aWNl
V29ya2VyIiBtaXNzaW5nCiBQQVNTIFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSBpbnRlcmZhY2U6
IHNlbGYgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJza2lwV2FpdGluZygpIiB3aXRoIHRoZSBwcm9w
ZXIgdHlwZSAKIFBBU1MgU2VydmljZVdvcmtlckdsb2JhbFNjb3BlIGludGVyZmFjZTogc2VsZiBt
dXN0IGluaGVyaXQgcHJvcGVydHkgIm9uaW5zdGFsbCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCiBQ
QVNTIFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSBpbnRlcmZhY2U6IHNlbGYgbXVzdCBpbmhlcml0
IHByb3BlcnR5ICJvbmFjdGl2YXRlIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKQEAgLTg1LDYgKzEw
MCw3IEBAIFBBU1MgQ2xpZW50IGludGVyZmFjZTogYXR0cmlidXRlIGZyYW1lVHlwZQogUEFTUyBD
bGllbnQgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgaWQgCiBQQVNTIENsaWVudCBpbnRlcmZhY2U6IGF0
dHJpYnV0ZSB0eXBlIAogUEFTUyBDbGllbnQgaW50ZXJmYWNlOiBvcGVyYXRpb24gcG9zdE1lc3Nh
Z2UoYW55LCBbb2JqZWN0IE9iamVjdF0pIAorUEFTUyBDbGllbnQgaW50ZXJmYWNlOiBvcGVyYXRp
b24gcG9zdE1lc3NhZ2UoYW55LCBQb3N0TWVzc2FnZU9wdGlvbnMpIAogUEFTUyBXaW5kb3dDbGll
bnQgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVj
dCAKIFBBU1MgV2luZG93Q2xpZW50IGludGVyZmFjZSBvYmplY3QgbGVuZ3RoIAogUEFTUyBXaW5k
b3dDbGllbnQgaW50ZXJmYWNlIG9iamVjdCBuYW1lIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvaW50ZXJmYWNlcy1zdy5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvaW50ZXJm
YWNlcy1zdy5odHRwcy5odG1sCmluZGV4IDUwYzc2ZDMwNmRjMmY0M2VhYzBmNGQ4MjdlOWI3MjQ2
NGI2MzIyMGMuLjdiZmY2YWMxMDdlM2RlMGFlMTIwN2Y0NzdiOWY5NDBhZDQwNGNkMjEgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ludGVyZmFjZXMtc3cuaHR0cHMuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci9pbnRlcmZhY2VzLXN3Lmh0dHBzLmh0bWwKQEAgLTYsNiArNiw4IEBA
CiA8c2NyaXB0PgogJ3VzZSBzdHJpY3QnOwogCisvLyBOT1RFOiBhZmZlY3RlZCB3aGVuICdyZXNv
dXJjZXMvaW50ZXJmYWNlcy13b3JrZXIuc3ViLmpzJyBzcmNzIGNoYW5nZToKKy8vIGNvbnN0IHNy
Y3MgPSBbJ2RvbScsICdodG1sJywgJ3NlcnZpY2Utd29ya2VycyddOwogc2VydmljZV93b3JrZXJf
dGVzdCgKICAgJ3Jlc291cmNlcy9pbnRlcmZhY2VzLXdvcmtlci5zdWIuanMnLAogICAnSW50ZXJm
YWNlcyBhbmQgYXR0cmlidXRlcyBpbiBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUnKTsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ludGVyZmFjZXMtd2luZG93Lmh0dHBzLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ludGVyZmFjZXMtd2luZG93Lmh0dHBzLWV4cGVjdGVk
LnR4dAppbmRleCAwMGEyMjhjMTExOTRjNzg4YzAzMzAxZDBkYmI0ZDU4ODEwNDhlYmRhLi44ZjE4
OTk5NDQxNGQwYzYxMWQ3NjdkZTI5NmUzZTJhNDc2MDAxMDEyIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9pbnRlcmZhY2VzLXdpbmRvdy5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvaW50ZXJmYWNlcy13aW5kb3cuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0x
MSw2ICsxMSw3IEBAIFBBU1MgU2VydmljZVdvcmtlciBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQg
cHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iCiBQQVNTIFNlcnZpY2VXb3JrZXIg
aW50ZXJmYWNlOiBhdHRyaWJ1dGUgc2NyaXB0VVJMIAogUEFTUyBTZXJ2aWNlV29ya2VyIGludGVy
ZmFjZTogYXR0cmlidXRlIHN0YXRlIAogUEFTUyBTZXJ2aWNlV29ya2VyIGludGVyZmFjZTogb3Bl
cmF0aW9uIHBvc3RNZXNzYWdlKGFueSwgW29iamVjdCBPYmplY3RdKSAKK1BBU1MgU2VydmljZVdv
cmtlciBpbnRlcmZhY2U6IG9wZXJhdGlvbiBwb3N0TWVzc2FnZShhbnksIFBvc3RNZXNzYWdlT3B0
aW9ucykgCiBQQVNTIFNlcnZpY2VXb3JrZXIgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgb25zdGF0ZWNo
YW5nZSAKIFBBU1MgU2VydmljZVdvcmtlciBtdXN0IGJlIHByaW1hcnkgaW50ZXJmYWNlIG9mIHdp
bmRvdy5yZWdpc3RyYXRpb25JbnN0YW5jZS5pbnN0YWxsaW5nIAogUEFTUyBTdHJpbmdpZmljYXRp
b24gb2Ygd2luZG93LnJlZ2lzdHJhdGlvbkluc3RhbmNlLmluc3RhbGxpbmcgCkBAIC0xOCw2ICsx
OSw4IEBAIFBBU1MgU2VydmljZVdvcmtlciBpbnRlcmZhY2U6IHdpbmRvdy5yZWdpc3RyYXRpb25J
bnN0YW5jZS5pbnN0YWxsaW5nIG11c3QgaW5oZXJpCiBQQVNTIFNlcnZpY2VXb3JrZXIgaW50ZXJm
YWNlOiB3aW5kb3cucmVnaXN0cmF0aW9uSW5zdGFuY2UuaW5zdGFsbGluZyBtdXN0IGluaGVyaXQg
cHJvcGVydHkgInN0YXRlIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgU2VydmljZVdvcmtl
ciBpbnRlcmZhY2U6IHdpbmRvdy5yZWdpc3RyYXRpb25JbnN0YW5jZS5pbnN0YWxsaW5nIG11c3Qg
aW5oZXJpdCBwcm9wZXJ0eSAicG9zdE1lc3NhZ2UoYW55LCBbb2JqZWN0IE9iamVjdF0pIiB3aXRo
IHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgU2VydmljZVdvcmtlciBpbnRlcmZhY2U6IGNhbGxpbmcg
cG9zdE1lc3NhZ2UoYW55LCBbb2JqZWN0IE9iamVjdF0pIG9uIHdpbmRvdy5yZWdpc3RyYXRpb25J
bnN0YW5jZS5pbnN0YWxsaW5nIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBl
RXJyb3IgCitQQVNTIFNlcnZpY2VXb3JrZXIgaW50ZXJmYWNlOiB3aW5kb3cucmVnaXN0cmF0aW9u
SW5zdGFuY2UuaW5zdGFsbGluZyBtdXN0IGluaGVyaXQgcHJvcGVydHkgInBvc3RNZXNzYWdlKGFu
eSwgUG9zdE1lc3NhZ2VPcHRpb25zKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIFNlcnZp
Y2VXb3JrZXIgaW50ZXJmYWNlOiBjYWxsaW5nIHBvc3RNZXNzYWdlKGFueSwgUG9zdE1lc3NhZ2VP
cHRpb25zKSBvbiB3aW5kb3cucmVnaXN0cmF0aW9uSW5zdGFuY2UuaW5zdGFsbGluZyB3aXRoIHRv
byBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAogUEFTUyBTZXJ2aWNlV29ya2Vy
IGludGVyZmFjZTogd2luZG93LnJlZ2lzdHJhdGlvbkluc3RhbmNlLmluc3RhbGxpbmcgbXVzdCBp
bmhlcml0IHByb3BlcnR5ICJvbnN0YXRlY2hhbmdlIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBB
U1MgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbiBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJv
cGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IAogUEFTUyBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0
aW9uIGludGVyZmFjZSBvYmplY3QgbGVuZ3RoIApAQCAtMjgsNiArMzEsNyBAQCBQQVNTIFNlcnZp
Y2VXb3JrZXJSZWdpc3RyYXRpb24gaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMg
b2YgaW50ZXJmYWNlCiBQQVNTIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24gaW50ZXJmYWNlOiBh
dHRyaWJ1dGUgaW5zdGFsbGluZyAKIFBBU1MgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbiBpbnRl
cmZhY2U6IGF0dHJpYnV0ZSB3YWl0aW5nIAogUEFTUyBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9u
IGludGVyZmFjZTogYXR0cmlidXRlIGFjdGl2ZSAKK0ZBSUwgU2VydmljZVdvcmtlclJlZ2lzdHJh
dGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBuYXZpZ2F0aW9uUHJlbG9hZCBhc3NlcnRfdHJ1ZTog
VGhlIHByb3RvdHlwZSBvYmplY3QgbXVzdCBoYXZlIGEgcHJvcGVydHkgIm5hdmlnYXRpb25QcmVs
b2FkIiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQogUEFTUyBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0
aW9uIGludGVyZmFjZTogYXR0cmlidXRlIHNjb3BlIAogUEFTUyBTZXJ2aWNlV29ya2VyUmVnaXN0
cmF0aW9uIGludGVyZmFjZTogYXR0cmlidXRlIHVwZGF0ZVZpYUNhY2hlIAogUEFTUyBTZXJ2aWNl
V29ya2VyUmVnaXN0cmF0aW9uIGludGVyZmFjZTogb3BlcmF0aW9uIHVwZGF0ZSgpIApAQCAtMzgs
MTEgKzQyLDIyIEBAIFBBU1MgU3RyaW5naWZpY2F0aW9uIG9mIHdpbmRvdy5yZWdpc3RyYXRpb25J
bnN0YW5jZQogUEFTUyBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uIGludGVyZmFjZTogd2luZG93
LnJlZ2lzdHJhdGlvbkluc3RhbmNlIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiaW5zdGFsbGluZyIg
d2l0aCB0aGUgcHJvcGVyIHR5cGUgCiBQQVNTIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24gaW50
ZXJmYWNlOiB3aW5kb3cucmVnaXN0cmF0aW9uSW5zdGFuY2UgbXVzdCBpbmhlcml0IHByb3BlcnR5
ICJ3YWl0aW5nIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgU2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbiBpbnRlcmZhY2U6IHdpbmRvdy5yZWdpc3RyYXRpb25JbnN0YW5jZSBtdXN0IGluaGVy
aXQgcHJvcGVydHkgImFjdGl2ZSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitGQUlMIFNlcnZpY2VX
b3JrZXJSZWdpc3RyYXRpb24gaW50ZXJmYWNlOiB3aW5kb3cucmVnaXN0cmF0aW9uSW5zdGFuY2Ug
bXVzdCBpbmhlcml0IHByb3BlcnR5ICJuYXZpZ2F0aW9uUHJlbG9hZCIgd2l0aCB0aGUgcHJvcGVy
IHR5cGUgYXNzZXJ0X2luaGVyaXRzOiBwcm9wZXJ0eSAibmF2aWdhdGlvblByZWxvYWQiIG5vdCBm
b3VuZCBpbiBwcm90b3R5cGUgY2hhaW4KIFBBU1MgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbiBp
bnRlcmZhY2U6IHdpbmRvdy5yZWdpc3RyYXRpb25JbnN0YW5jZSBtdXN0IGluaGVyaXQgcHJvcGVy
dHkgInNjb3BlIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgU2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbiBpbnRlcmZhY2U6IHdpbmRvdy5yZWdpc3RyYXRpb25JbnN0YW5jZSBtdXN0IGluaGVy
aXQgcHJvcGVydHkgInVwZGF0ZVZpYUNhY2hlIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBBU1Mg
U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbiBpbnRlcmZhY2U6IHdpbmRvdy5yZWdpc3RyYXRpb25J
bnN0YW5jZSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInVwZGF0ZSgpIiB3aXRoIHRoZSBwcm9wZXIg
dHlwZSAKIFBBU1MgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbiBpbnRlcmZhY2U6IHdpbmRvdy5y
ZWdpc3RyYXRpb25JbnN0YW5jZSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInVucmVnaXN0ZXIoKSIg
d2l0aCB0aGUgcHJvcGVyIHR5cGUgCiBQQVNTIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24gaW50
ZXJmYWNlOiB3aW5kb3cucmVnaXN0cmF0aW9uSW5zdGFuY2UgbXVzdCBpbmhlcml0IHByb3BlcnR5
ICJvbnVwZGF0ZWZvdW5kIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK0ZBSUwgTmF2aWdhdGlvblBy
ZWxvYWRNYW5hZ2VyIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVy
ZmFjZSBvYmplY3QgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBw
cm9wZXJ0eSAiTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIiBleHBlY3RlZCBwcm9wZXJ0eSAiTmF2
aWdhdGlvblByZWxvYWRNYW5hZ2VyIiBtaXNzaW5nCitGQUlMIE5hdmlnYXRpb25QcmVsb2FkTWFu
YWdlciBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aCBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRv
ZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIiIGV4cGVj
dGVkIHByb3BlcnR5ICJOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIiIG1pc3NpbmcKK0ZBSUwgTmF2
aWdhdGlvblByZWxvYWRNYW5hZ2VyIGludGVyZmFjZSBvYmplY3QgbmFtZSBhc3NlcnRfb3duX3By
b3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJOYXZpZ2F0aW9uUHJlbG9h
ZE1hbmFnZXIiIGV4cGVjdGVkIHByb3BlcnR5ICJOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIiIG1p
c3NpbmcKK0ZBSUwgTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIGludGVyZmFjZTogZXhpc3RlbmNl
IGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IGFzc2VydF9vd25f
cHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIk5hdmlnYXRpb25QcmVs
b2FkTWFuYWdlciIgZXhwZWN0ZWQgcHJvcGVydHkgIk5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciIg
bWlzc2luZworRkFJTCBOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIgaW50ZXJmYWNlOiBleGlzdGVu
Y2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyAiY29uc3Ry
dWN0b3IiIHByb3BlcnR5IGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBv
d24gcHJvcGVydHkgIk5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciIgZXhwZWN0ZWQgcHJvcGVydHkg
Ik5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciIgbWlzc2luZworRkFJTCBOYXZpZ2F0aW9uUHJlbG9h
ZE1hbmFnZXIgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNl
IHByb3RvdHlwZSBvYmplY3QncyBAQHVuc2NvcGFibGVzIHByb3BlcnR5IGFzc2VydF9vd25fcHJv
cGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIk5hdmlnYXRpb25QcmVsb2Fk
TWFuYWdlciIgZXhwZWN0ZWQgcHJvcGVydHkgIk5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciIgbWlz
c2luZworRkFJTCBOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIgaW50ZXJmYWNlOiBvcGVyYXRpb24g
ZW5hYmxlKCkgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9w
ZXJ0eSAiTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIiBleHBlY3RlZCBwcm9wZXJ0eSAiTmF2aWdh
dGlvblByZWxvYWRNYW5hZ2VyIiBtaXNzaW5nCitGQUlMIE5hdmlnYXRpb25QcmVsb2FkTWFuYWdl
ciBpbnRlcmZhY2U6IG9wZXJhdGlvbiBkaXNhYmxlKCkgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2Vs
ZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIiBl
eHBlY3RlZCBwcm9wZXJ0eSAiTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIiBtaXNzaW5nCitGQUlM
IE5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciBpbnRlcmZhY2U6IG9wZXJhdGlvbiBzZXRIZWFkZXJW
YWx1ZShCeXRlU3RyaW5nKSBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUg
b3duIHByb3BlcnR5ICJOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIiIGV4cGVjdGVkIHByb3BlcnR5
ICJOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIiIG1pc3NpbmcKK0ZBSUwgTmF2aWdhdGlvblByZWxv
YWRNYW5hZ2VyIGludGVyZmFjZTogb3BlcmF0aW9uIGdldFN0YXRlKCkgYXNzZXJ0X293bl9wcm9w
ZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiTmF2aWdhdGlvblByZWxvYWRN
YW5hZ2VyIiBleHBlY3RlZCBwcm9wZXJ0eSAiTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIiBtaXNz
aW5nCiBQQVNTIFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBh
bmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IAogUEFTUyBDbGllbnQgaW50ZXJmYWNl
OiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCAKIFBBU1MgV2lu
ZG93Q2xpZW50IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFj
ZSBvYmplY3QgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9pbnRlcmZhY2VzLXdpbmRv
dy5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvaW50ZXJmYWNlcy13aW5kb3cuaHR0cHMu
aHRtbAppbmRleCBmNzBjZjQwOTMxZGI4ODM1MGM1ZmIwZjVlYmIxZmJkMTBmOTE3ZGJhLi5jYzNi
ZGFmMTFmYzdiYzE3NGVlZjU1NWE2MDI2M2UxOTJlZmRjNTM5IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9pbnRlcmZhY2VzLXdpbmRvdy5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL2ludGVyZmFjZXMtd2luZG93Lmh0dHBzLmh0bWwKQEAgLTEwLDggKzEwLDggQEAKICd1
c2Ugc3RyaWN0JzsKIAogcHJvbWlzZV90ZXN0KGFzeW5jICh0KSA9PiB7Ci0gIGNvbnN0IHNyY3Mg
PSBbJ2RvbScsICdodG1sJywgJ3NlcnZpY2Utd29ya2VycycsICdkZWRpY2F0ZWQtd29ya2Vycydd
OwotICBjb25zdCBbZG9tLCBodG1sLCBzZXJ2aWNlV29ya2VySWRsLCBkZWRpY2F0ZWRdID0gYXdh
aXQgUHJvbWlzZS5hbGwoCisgIGNvbnN0IHNyY3MgPSBbJ2RvbScsICdodG1sJywgJ3NlcnZpY2Ut
d29ya2VycyddOworICBjb25zdCBbZG9tLCBodG1sLCBzZXJ2aWNlV29ya2VySWRsXSA9IGF3YWl0
IFByb21pc2UuYWxsKAogICAgIHNyY3MubWFwKGkgPT4gZmV0Y2goYC9pbnRlcmZhY2VzLyR7aX0u
aWRsYCkudGhlbihyID0+IHIudGV4dCgpKSkpOwogCiAgIHZhciBpZGxBcnJheSA9IG5ldyBJZGxB
cnJheSgpOwpAQCAtMjksNyArMjksNiBAQCBwcm9taXNlX3Rlc3QoYXN5bmMgKHQpID0+IHsKICAg
ICAnQ2FjaGUnLAogICAgICdDYWNoZVN0b3JhZ2UnLAogICBdfSk7Ci0gIGlkbEFycmF5LmFkZF9k
ZXBlbmRlbmN5X2lkbHMoZGVkaWNhdGVkKTsKICAgaWRsQXJyYXkuYWRkX2RlcGVuZGVuY3lfaWRs
cyhkb20pOwogICBpZGxBcnJheS5hZGRfZGVwZW5kZW5jeV9pZGxzKGh0bWwpOwogICBpZGxBcnJh
eS5hZGRfb2JqZWN0cyh7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMv
Y2xpZW50cy1mcmFtZS1mcmVlemUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9j
bGllbnRzLWZyYW1lLWZyZWV6ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc0NjhhNjYwZTkwODU4NjZlOGQz
OGZmMzVmMDJjZjZhNTA4NjgyMzIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9yZXNvdXJjZXMvY2xpZW50cy1mcmFtZS1mcmVlemUuaHRtbApAQCAtMCwwICsxLDE1IEBACis8
IURPQ1RZUEUgaHRtbD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Rkcml2ZXIuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGRyaXZlci12ZW5kb3IuanMiPjwv
c2NyaXB0PgorPHNjcmlwdD4KKyAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignZnJlZXplJywg
KCkgPT4geworICAgICAgb3BlbmVyLnBvc3RNZXNzYWdlKCdmcm96ZW4nLCAiKiIpOworICB9KTsK
KworICB3aW5kb3cub25tZXNzYWdlID0gKGUpID0+IHsKKyAgICBpZiAoZS5kYXRhID09ICdmcmVl
emUnKSB7CisgICAgICB0ZXN0X2RyaXZlci5mcmVlemUoKTsKKyAgICB9CisgIH07CisgIG9wZW5l
ci5wb3N0TWVzc2FnZSgnbG9hZGVkJywgJyonKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2NsaWVudHMtbWF0Y2hhbGwtd29ya2VyLmpzIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2NsaWVudHMtbWF0Y2hhbGwtd29ya2VyLmpzCmluZGV4
IGQ2NjM0ZjRkNDBlZjZhZGEzNDQwYjQ0M2ZhZmYxNzZlNTQwODJhNzEuLjEzZTExMWEyZjkxNDY0
YmYxN2ZhOGM2MGZiNmY2MDcxNDQzYTQ3NGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L3Jlc291cmNlcy9jbGllbnRzLW1hdGNoYWxsLXdvcmtlci5qcworKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9yZXNvdXJjZXMvY2xpZW50cy1tYXRjaGFsbC13b3JrZXIuanMKQEAgLTEzLDExICsxMywy
MCBAQCBzZWxmLm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGUpIHsKICAgICAgICAgICAgICAgLy8gSW4g
dGhhdCBjYXNlLCBqdXN0IHByZXRlbmQgaXQncyB0b3AtbGV2ZWwhCiAgICAgICAgICAgICAgIGZy
YW1lX3R5cGUgPSAndG9wLWxldmVsJzsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIG1lc3Nh
Z2UucHVzaChbY2xpZW50LnZpc2liaWxpdHlTdGF0ZSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgY2xpZW50LmZvY3VzZWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGNsaWVudC51cmws
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIGNsaWVudC50eXBlLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICBmcmFtZV90eXBlXSk7CisgICAgICAgICAgICBpZiAoZS5kYXRhLmluY2x1ZGVM
aWZlY3ljbGVTdGF0ZSkgeworICAgICAgICAgICAgICBtZXNzYWdlLnB1c2goe3Zpc2liaWxpdHlT
dGF0ZTogY2xpZW50LnZpc2liaWxpdHlTdGF0ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBmb2N1c2VkOiBjbGllbnQuZm9jdXNlZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB1
cmw6IGNsaWVudC51cmwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlmZWN5Y2xlU3Rh
dGU6IGNsaWVudC5saWZlY3ljbGVTdGF0ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0
eXBlOiBjbGllbnQudHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcmFtZVR5cGU6
IGZyYW1lX3R5cGV9KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgIG1lc3Nh
Z2UucHVzaChbY2xpZW50LnZpc2liaWxpdHlTdGF0ZSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjbGllbnQuZm9jdXNlZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGllbnQu
dXJsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsaWVudC50eXBlLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGZyYW1lX3R5cGVdKTsKKyAgICAgICAgICAgIH0KICAgICAgICAg
ICB9KTsKICAgICAgICAgLy8gU29ydCBieSB1cmwKICAgICAgICAgaWYgKCFlLmRhdGEuZGlzYWJs
ZVNvcnQpIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9kdW1teS1z
aGFyZWQtd29ya2VyLWludGVyY2VwdG9yLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2Vz
L2R1bW15LXNoYXJlZC13b3JrZXItaW50ZXJjZXB0b3IuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGU5OTZkYTZiMmI3ZjQ5MTgyMGRkYWIxNjhlOWQyZjJkNmY2Y2VhMzUuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvcmVzb3VyY2VzL2R1bW15LXNoYXJlZC13b3JrZXItaW50ZXJjZXB0b3IuanMKKysrIC9kZXYv
bnVsbApAQCAtMSw5ICswLDAgQEAKLXZhciB3b3JrZXJfdGV4dCA9ICdvbmNvbm5lY3QgPSBmdW5j
dGlvbihlKSB7IGUucG9ydHNbMF0ucG9zdE1lc3NhZ2UoIndvcmtlciBsb2FkaW5nIGludGVyY2Vw
dGVkIGJ5IHNlcnZpY2Ugd29ya2VyIik7IH07JzsKLQotc2VsZi5vbmZldGNoID0gZnVuY3Rpb24o
ZXZlbnQpIHsKLSAgaWYgKGV2ZW50LnJlcXVlc3QudXJsLmluZGV4T2YoJ2R1bW15LXNoYXJlZC13
b3JrZXIuanMnKSAhPSAtMSkgewotICAgIGV2ZW50LnJlc3BvbmRXaXRoKG5ldyBSZXNwb25zZSgK
LSAgICAgICAgd29ya2VyX3RleHQsIHtoZWFkZXJzOiB7IkNvbnRlbnQtVHlwZSI6ICJhcHBsaWNh
dGlvbi9qYXZhc2NyaXB0In19KSk7Ci0gIH0KLX07Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL3Jlc291cmNlcy9kdW1teS1zaGFyZWQtd29ya2VyLWludGVyY2VwdG9yLmpzLmhlYWRl
cnMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZHVtbXktc2hhcmVkLXdvcmtlci1pbnRl
cmNlcHRvci5qcy5oZWFkZXJzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhMTdhOWEz
YTEyY2VmZTg4M2E1ZDRkZWU0ZDVhNDViZWYxMjBkMDUwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9kdW1t
eS1zaGFyZWQtd29ya2VyLWludGVyY2VwdG9yLmpzLmhlYWRlcnMKKysrIC9kZXYvbnVsbApAQCAt
MSArMCwwIEBACi1Db250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL2phdmFzY3JpcHQKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9kdW1teS13b3JrZXItaW50ZXJjZXB0b3Iu
anMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZHVtbXktd29ya2VyLWludGVyY2VwdG9y
LmpzCmluZGV4IGFiZWM1ZmRkNThiMjhiN2I2YTFkMGJhNDUzZTY3Y2NlMWE0ZDQ5NzMuLjFjMzgx
ZmQxODBlMmIzZDNiN2ExMTM5NDkyNjA5NjE0MWIwYTNjNzYgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL3Jlc291cmNlcy9kdW1teS13b3JrZXItaW50ZXJjZXB0b3IuanMKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2R1bW15LXdvcmtlci1pbnRlcmNlcHRvci5qcwpAQCAt
MSwyMSArMSw0NSBAQAogaW1wb3J0U2NyaXB0cygnL2NvbW1vbi9nZXQtaG9zdC1pbmZvLnN1Yi5q
cycpOwogCi12YXIgd29ya2VyX3RleHQgPSAncG9zdE1lc3NhZ2UoIndvcmtlciBsb2FkaW5nIGlu
dGVyY2VwdGVkIGJ5IHNlcnZpY2Ugd29ya2VyIik7ICc7Citjb25zdCB0ZXh0ID0gJ3dvcmtlciBs
b2FkaW5nIGludGVyY2VwdGVkIGJ5IHNlcnZpY2Ugd29ya2VyJzsKK2NvbnN0IGRlZGljYXRlZF93
b3JrZXJfc2NyaXB0ID0gYHBvc3RNZXNzYWdlKCcke3RleHR9Jyk7YDsKK2NvbnN0IHNoYXJlZF93
b3JrZXJfc2NyaXB0ID0KKyAgICBgb25jb25uZWN0ID0gZXZ0ID0+IGV2dC5wb3J0c1swXS5wb3N0
TWVzc2FnZSgnJHt0ZXh0fScpO2A7CiAKLXNlbGYub25mZXRjaCA9IGZ1bmN0aW9uKGV2ZW50KSB7
Ci0gIGlmIChldmVudC5yZXF1ZXN0LnVybC5pbmRleE9mKCdzeW50aGVzaXplZCcpICE9IC0xKSB7
Ci0gICAgZXZlbnQucmVzcG9uZFdpdGgobmV3IFJlc3BvbnNlKHdvcmtlcl90ZXh0KSk7Ci0gIH0g
ZWxzZSBpZiAoZXZlbnQucmVxdWVzdC51cmwuaW5kZXhPZignc2FtZS1vcmlnaW4nKSAhPSAtMSkg
ewotICAgIGV2ZW50LnJlc3BvbmRXaXRoKGZldGNoKCdkdW1teS13b3JrZXItc2NyaXB0LnB5Jykp
OwotICB9IGVsc2UgaWYgKGV2ZW50LnJlcXVlc3QudXJsLmluZGV4T2YoJ2NvcnMnKSAhPSAtMSkg
ewotICAgIHZhciBwYXRoID0gKG5ldyBVUkwoJ2R1bW15LXdvcmtlci1zY3JpcHQucHknLCBzZWxm
LmxvY2F0aW9uKSkucGF0aG5hbWU7Ci0gICAgdmFyIHVybCA9IGdldF9ob3N0X2luZm8oKVsnSFRU
UFNfUkVNT1RFX09SSUdJTiddICsgcGF0aDsKLSAgICB2YXIgbW9kZSA9ICJuby1jb3JzIjsKLSAg
ICBpZiAoZXZlbnQucmVxdWVzdC51cmwuaW5kZXhPZignbm8tY29ycycpID09IC0xKSB7Ci0gICAg
ICB1cmwgKz0gJz9BQ0FPcmlnaW49Kic7Ci0gICAgICBtb2RlID0gImNvcnMiOworc2VsZi5vbmZl
dGNoID0gZXZlbnQgPT4geworICBjb25zdCB1cmwgPSBldmVudC5yZXF1ZXN0LnVybDsKKyAgY29u
c3QgZGVzdGluYXRpb24gPSBldmVudC5yZXF1ZXN0LmRlc3RpbmF0aW9uOworCisgIC8vIFJlcXVl
c3QgaGFuZGxlciBmb3IgYSBzeW50aGVzaXplZCByZXNwb25zZS4KKyAgaWYgKHVybC5pbmRleE9m
KCdzeW50aGVzaXplZCcpICE9IC0xKSB7CisgICAgaWYgKGRlc3RpbmF0aW9uID09PSAnd29ya2Vy
JykKKyAgICAgIGV2ZW50LnJlc3BvbmRXaXRoKG5ldyBSZXNwb25zZShkZWRpY2F0ZWRfd29ya2Vy
X3NjcmlwdCkpOworICAgIGVsc2UgaWYgKGRlc3RpbmF0aW9uID09PSAnc2hhcmVkd29ya2VyJykK
KyAgICAgIGV2ZW50LnJlc3BvbmRXaXRoKG5ldyBSZXNwb25zZShzaGFyZWRfd29ya2VyX3Njcmlw
dCkpOworICAgIGVsc2UKKyAgICAgIGV2ZW50LnJlc3BvbmRXaXRoKG5ldyBSZXNwb25zZSgnVW5l
eHBlY3RlZCByZXF1ZXN0ISAnICsgZGVzdGluYXRpb24pKTsKKyAgICByZXR1cm47CisgIH0KKwor
ICAvLyBSZXF1ZXN0IGhhbmRsZXIgZm9yIGEgc2FtZS1vcmlnaW4gcmVzcG9uc2UuCisgIGlmICh1
cmwuaW5kZXhPZignc2FtZS1vcmlnaW4nKSAhPSAtMSkgeworICAgIGV2ZW50LnJlc3BvbmRXaXRo
KGZldGNoKCdwb3N0bWVzc2FnZS1vbi1sb2FkLXdvcmtlci5qcycpKTsKKyAgICByZXR1cm47Cisg
IH0KKworICAvLyBSZXF1ZXN0IGhhbmRsZXIgZm9yIGEgY3Jvc3Mtb3JpZ2luIHJlc3BvbnNlLgor
ICBpZiAodXJsLmluZGV4T2YoJ2NvcnMnKSAhPSAtMSkgeworICAgIGNvbnN0IGZpbGVuYW1lID0g
J3Bvc3RtZXNzYWdlLW9uLWxvYWQtd29ya2VyLmpzJzsKKyAgICBjb25zdCBwYXRoID0gKG5ldyBV
UkwoZmlsZW5hbWUsIHNlbGYubG9jYXRpb24pKS5wYXRobmFtZTsKKyAgICBsZXQgbmV3X3VybCA9
IGdldF9ob3N0X2luZm8oKVsnSFRUUFNfUkVNT1RFX09SSUdJTiddICsgcGF0aDsKKyAgICBsZXQg
bW9kZTsKKyAgICBpZiAodXJsLmluZGV4T2YoJ25vLWNvcnMnKSAhPSAtMSkgeworICAgICAgLy8g
VGVzdCBuby1jb3JzIG1vZGUuCisgICAgICBtb2RlID0gJ25vLWNvcnMnOworICAgIH0gZWxzZSB7
CisgICAgICAvLyBUZXN0IGNvcnMgbW9kZS4KKyAgICAgIG5ld191cmwgKz0gJz9waXBlPWhlYWRl
cihBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4sKiknOworICAgICAgbW9kZSA9ICdjb3JzJzsK
ICAgICB9Ci0gICAgZXZlbnQucmVzcG9uZFdpdGgoZmV0Y2godXJsLCB7IG1vZGU6IG1vZGUgfSkp
OworICAgIGV2ZW50LnJlc3BvbmRXaXRoKGZldGNoKG5ld191cmwsIHsgbW9kZTogbW9kZSB9KSk7
CiAgIH0KIH07Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9kdW1t
eS13b3JrZXItc2NyaXB0LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2R1bW15LXdv
cmtlci1zY3JpcHQucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZmNDBiNWVkNjA1
YWNjNDZjNWVkOTY2MzQ5MzhkMzYxZGRlZTZkODYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2R1bW15LXdv
cmtlci1zY3JpcHQucHkKKysrIC9kZXYvbnVsbApAQCAtMSw5ICswLDAgQEAKLWRlZiBtYWluKHJl
cXVlc3QsIHJlc3BvbnNlKToKLSAgICBoZWFkZXJzID0gW10KLQotICAgIGlmICJBQ0FPcmlnaW4i
IGluIHJlcXVlc3QuR0VUOgotICAgICAgICBmb3IgaXRlbSBpbiByZXF1ZXN0LkdFVFsiQUNBT3Jp
Z2luIl0uc3BsaXQoIiwiKToKLSAgICAgICAgICAgIGhlYWRlcnMuYXBwZW5kKCgiQWNjZXNzLUNv
bnRyb2wtQWxsb3ctT3JpZ2luIiwgaXRlbSkpCi0KLSAgICByZXR1cm4gaGVhZGVycywgInBvc3RN
ZXNzYWdlKCdkdW1teS13b3JrZXItc2NyaXB0IGxvYWRlZCcpOyIKLQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ltcG9ydC1zY3JpcHRzLTQwNC1hZnRlci11cGRhdGUt
cGx1cy11cGRhdGUtd29ya2VyLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ltcG9y
dC1zY3JpcHRzLTQwNC1hZnRlci11cGRhdGUtcGx1cy11cGRhdGUtd29ya2VyLmpzCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmU5ODk5ZDhlNzI3NGVhOGI2NTYyM2UwMTk0MTE3MDBlYzY1ZGJjODQKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvaW1wb3J0LXNjcmlwdHMtNDA0LWFm
dGVyLXVwZGF0ZS1wbHVzLXVwZGF0ZS13b3JrZXIuanMKQEAgLTAsMCArMSw4IEBACisvLyBUaGlz
IHdvcmtlciBpbXBvcnRzIGEgc2NyaXB0IHRoYXQgcmV0dXJucyAyMDAgb24gdGhlIGZpcnN0IHJl
cXVlc3QgYW5kIDQwNAorLy8gb24gdGhlIHNlY29uZCByZXF1ZXN0LCBhbmQgYSBzY3JpcHQgdGhh
dCBpcyB1cGRhdGVkIGV2ZXJ5IHRpbWUgd2hlbgorLy8gcmVxdWVzdGluZyBpdC4KK2NvbnN0IHBh
cmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMobG9jYXRpb24uc2VhcmNoKTsKK2NvbnN0IGtleSA9
IHBhcmFtcy5nZXQoJ0tleScpOworY29uc3QgYWRkaXRpb25hbF9rZXkgPSBwYXJhbXMuZ2V0KCdB
ZGRpdGlvbmFsS2V5Jyk7CitpbXBvcnRTY3JpcHRzKGB1cGRhdGUtd29ya2VyLnB5P0tleT0ke2tl
eX0mTW9kZT1ub3RfZm91bmRgLAorICAgICAgICAgICAgICBgdXBkYXRlLXdvcmtlci5weT9LZXk9
JHthZGRpdGlvbmFsX2tleX0mTW9kZT1ub3JtYWxgKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL3Jlc291cmNlcy9pbXBvcnQtc2NyaXB0cy00MDQtYWZ0ZXItdXBkYXRlLmpzIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ltcG9ydC1zY3JpcHRzLTQwNC1hZnRlci11cGRhdGUu
anMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYjU2OTM0NjAzNWFjMTFjNTU3YTFlMTlkNmJmOWJhOGI5MDU5NzUzOQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9pbXBvcnQtc2Ny
aXB0cy00MDQtYWZ0ZXItdXBkYXRlLmpzCkBAIC0wLDAgKzEsNiBAQAorLy8gVGhpcyB3b3JrZXIg
aW1wb3J0cyBhIHNjcmlwdCB0aGF0IHJldHVybnMgMjAwIG9uIHRoZSBmaXJzdCByZXF1ZXN0IGFu
ZCA0MDQKKy8vIG9uIHRoZSBzZWNvbmQgcmVxdWVzdC4gVGhlIHJlc3VsdGluZyBib2R5IGFsc28g
Y2hhbmdlcyBlYWNoIHRpbWUgaXQgaXMKKy8vIHJlcXVlc3RlZC4KK2NvbnN0IHBhcmFtcyA9IG5l
dyBVUkxTZWFyY2hQYXJhbXMobG9jYXRpb24uc2VhcmNoKTsKK2NvbnN0IGtleSA9IHBhcmFtcy5n
ZXQoJ0tleScpOworaW1wb3J0U2NyaXB0cyhgdXBkYXRlLXdvcmtlci5weT9LZXk9JHtrZXl9Jk1v
ZGU9bm90X2ZvdW5kYCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMv
aW1wb3J0LXNjcmlwdHMtNDA0LmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ltcG9y
dC1zY3JpcHRzLTQwNC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xOWM3YTRiOGU1NjFiM2Q5NWYxMDQ5NmU5MmEy
YzcyNjRkNjkzODE1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3Vy
Y2VzL2ltcG9ydC1zY3JpcHRzLTQwNC5qcwpAQCAtMCwwICsxIEBACitpbXBvcnRTY3JpcHRzKCc0
MDQucHknKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9pbXBvcnQt
c2NyaXB0cy1yZWRpcmVjdC1vbi1zZWNvbmQtdGltZS13b3JrZXIuanMgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9yZXNvdXJjZXMvaW1wb3J0LXNjcmlwdHMtcmVkaXJlY3Qtb24tc2Vjb25kLXRpbWUtd29y
a2VyLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmY2MTJhYjhlNmFhNDI3MjA4M2FiZjU3Mzk3OGQxOTMyZDE4ZjY1
MzUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvaW1wb3J0
LXNjcmlwdHMtcmVkaXJlY3Qtb24tc2Vjb25kLXRpbWUtd29ya2VyLmpzCkBAIC0wLDAgKzEsNyBA
QAorLy8gVGhpcyB3b3JrZXIgaW1wb3J0cyBhIHNjcmlwdCB0aGF0IHJldHVybnMgMjAwIG9uIHRo
ZSBmaXJzdCByZXF1ZXN0IGFuZCBhCisvLyByZWRpcmVjdCBvbiB0aGUgc2Vjb25kIHJlcXVlc3Qu
IFRoZSByZXN1bHRpbmcgYm9keSBhbHNvIGNoYW5nZXMgZWFjaCB0aW1lIGl0CisvLyBpcyByZXF1
ZXN0ZWQuCitjb25zdCBwYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKGxvY2F0aW9uLnNlYXJj
aCk7Citjb25zdCBrZXkgPSBwYXJhbXMuZ2V0KCdLZXknKTsKK2ltcG9ydFNjcmlwdHMoYHVwZGF0
ZS13b3JrZXIucHk/S2V5PSR7a2V5fSZNb2RlPXJlZGlyZWN0JmAgKworICAgICAgICAgICAgICBg
UmVkaXJlY3Q9dXBkYXRlLXdvcmtlci5weT9LZXk9JHtrZXl9JTI2TW9kZT1ub3JtYWxgKTsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9pbnRlcmZhY2VzLXdvcmtlci5z
dWIuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvaW50ZXJmYWNlcy13b3JrZXIuc3Vi
LmpzCmluZGV4IDU2YmM4YWY0NDVkNWU3OTAwYjQ1NzNjMzVlNmQ2ODBlZmYxNmM2NzEuLmFjNzlk
ZGMwMDU2ODhhZmZlOWFjYzY3YjgzZjQzZWYzMDRmODFjODEgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL3Jlc291cmNlcy9pbnRlcmZhY2VzLXdvcmtlci5zdWIuanMKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvcmVzb3VyY2VzL2ludGVyZmFjZXMtd29ya2VyLnN1Yi5qcwpAQCAtNSw4ICs1
LDggQEAgaW1wb3J0U2NyaXB0cygnL3Jlc291cmNlcy9XZWJJRExQYXJzZXIuanMnKTsKIGltcG9y
dFNjcmlwdHMoJy9yZXNvdXJjZXMvaWRsaGFybmVzcy5qcycpOwogCiBwcm9taXNlX3Rlc3QoYXN5
bmMgKHQpID0+IHsKLSAgY29uc3Qgc3JjcyA9IFsnZG9tJywgJ2h0bWwnLCAnc2VydmljZS13b3Jr
ZXJzJywgJ2RlZGljYXRlZC13b3JrZXJzJ107Ci0gIGNvbnN0IFtkb20sIGh0bWwsIHNlcnZpY2VX
b3JrZXJJZGwsIGRlZGljYXRlZF0gPSBhd2FpdCBQcm9taXNlLmFsbCgKKyAgY29uc3Qgc3JjcyA9
IFsnZG9tJywgJ2h0bWwnLCAnc2VydmljZS13b3JrZXJzJ107CisgIGNvbnN0IFtkb20sIGh0bWws
IHNlcnZpY2VXb3JrZXJJZGxdID0gYXdhaXQgUHJvbWlzZS5hbGwoCiAgICAgc3Jjcy5tYXAoaSA9
PiBmZXRjaChgL2ludGVyZmFjZXMvJHtpfS5pZGxgKS50aGVuKHIgPT4gci50ZXh0KCkpKSk7CiAK
ICAgdmFyIGlkbEFycmF5ID0gbmV3IElkbEFycmF5KCk7CkBAIC0yNCw3ICsyNCw2IEBAIHByb21p
c2VfdGVzdChhc3luYyAodCkgPT4gewogICAgICdDYWNoZScsCiAgICAgJ0NhY2hlU3RvcmFnZScs
CiAgIF19KTsKLSAgaWRsQXJyYXkuYWRkX2RlcGVuZGVuY3lfaWRscyhkZWRpY2F0ZWQpOwogICBp
ZGxBcnJheS5hZGRfZGVwZW5kZW5jeV9pZGxzKGRvbSk7CiAgIGlkbEFycmF5LmFkZF9kZXBlbmRl
bmN5X2lkbHMoaHRtbCk7CiAgIGlkbEFycmF5LmFkZF9vYmplY3RzKHsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9sb2FkX3dvcmtlci5qcyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3Jlc291cmNlcy9sb2FkX3dvcmtlci5qcwppbmRleCAyYzgwZjI1YTNkYjI4MzFmNGIxZTU2
MzNhNDU1NDgxZDdhMzViNGM3Li4xOGM2NzNiZWJjYWI5ODI3NzA3ZGE4NTVmMzhhNzU0OWI2OTVk
YTdmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvbG9hZF93b3JrZXIu
anMKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2xvYWRfd29ya2VyLmpzCkBAIC0x
LDI5ICsxLDI5IEBACi1zZWxmLm9ubWVzc2FnZSA9IGZ1bmN0aW9uIChldnQpIHsKLSAgICBpZiAo
ZXZ0LmRhdGEgPT0gInhociIpIHsKLSAgICAgICAgdmFyIHhociA9IG5ldyBYTUxIdHRwUmVxdWVz
dCgpOwotICAgICAgICB4aHIub3BlbigiR0VUIiwgInN5bnRoZXNpemVkLXJlc3BvbnNlLnR4dCIs
IHRydWUpOwotICAgICAgICB4aHIucmVzcG9uc2VUeXBlID0gInRleHQiOwotICAgICAgICB4aHIu
c2VuZCgpOwotICAgICAgICB4aHIub25sb2FkID0gZnVuY3Rpb24gKGV2dCkgewotICAgICAgICAg
ICAgcG9zdE1lc3NhZ2UoeGhyLnJlc3BvbnNlVGV4dCk7Ci0gICAgICAgIH07Ci0gICAgICAgIHho
ci5vbmVycm9yID0gZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBwb3N0TWVzc2FnZSgiWEhSIGZh
aWxlZCEiKTsKLSAgICAgICAgfTsKLSAgICB9IGVsc2UgaWYgKGV2dC5kYXRhID09ICJmZXRjaCIp
IHsKLSAgICAgICAgZmV0Y2goInN5bnRoZXNpemVkLXJlc3BvbnNlLnR4dCIpCi0gICAgICAgICAg
LnRoZW4oZnVuY3Rpb24ocmVzcG9uc2UpIHsKLSAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNl
LnRleHQoKTsKLSAgICAgICAgICAgIH0pCi0gICAgICAgICAgLnRoZW4oZnVuY3Rpb24oZGF0YSkg
ewotICAgICAgICAgICAgICBwb3N0TWVzc2FnZShkYXRhKTsKLSAgICAgICAgICAgIH0pCi0gICAg
ICAgICAgLmNhdGNoKGZ1bmN0aW9uKGVycm9yKSB7Ci0gICAgICAgICAgICAgIHBvc3RNZXNzYWdl
KCJGZXRjaCBmYWlsZWQhIik7Ci0gICAgICAgICAgICB9KTsKLSAgICB9IGVsc2UgaWYgKGV2dC5k
YXRhID09ICJpbXBvcnRTY3JpcHRzIikgewotICAgICAgICBpbXBvcnRTY3JpcHRzKCJzeW50aGVz
aXplZC1yZXNwb25zZS5qcyIpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIHRocm93ICJVbmV4cGVj
dGVkIG1lc3NhZ2UhICIgKyBldnQuZGF0YTsKLSAgICB9CitmdW5jdGlvbiBydW5fdGVzdChkYXRh
LCBzZW5kZXIpIHsKKyAgaWYgKGRhdGEgPT09ICd4aHInKSB7CisgICAgY29uc3QgeGhyID0gbmV3
IFhNTEh0dHBSZXF1ZXN0KCk7CisgICAgeGhyLm9wZW4oJ0dFVCcsICdzeW50aGVzaXplZC1yZXNw
b25zZS50eHQnLCB0cnVlKTsKKyAgICB4aHIucmVzcG9uc2VUeXBlID0gJ3RleHQnOworICAgIHho
ci5zZW5kKCk7CisgICAgeGhyLm9ubG9hZCA9IGV2dCA9PiBzZW5kZXIucG9zdE1lc3NhZ2UoeGhy
LnJlc3BvbnNlVGV4dCk7CisgICAgeGhyLm9uZXJyb3IgPSAoKSA9PiBzZW5kZXIucG9zdE1lc3Nh
Z2UoJ1hIUiBmYWlsZWQhJyk7CisgIH0gZWxzZSBpZiAoZGF0YSA9PT0gJ2ZldGNoJykgeworICAg
IGZldGNoKCdzeW50aGVzaXplZC1yZXNwb25zZS50eHQnKQorICAgICAgICAudGhlbihyZXNwb25z
ZSA9PiByZXNwb25zZS50ZXh0KCkpCisgICAgICAgIC50aGVuKGRhdGEgPT4gc2VuZGVyLnBvc3RN
ZXNzYWdlKGRhdGEpKQorICAgICAgICAuY2F0Y2goZXJyb3IgPT4gc2VuZGVyLnBvc3RNZXNzYWdl
KCdGZXRjaCBmYWlsZWQhJykpOworICB9IGVsc2UgaWYgKGRhdGEgPT09ICdpbXBvcnRTY3JpcHRz
JykgeworICAgIGltcG9ydFNjcmlwdHMoJ3N5bnRoZXNpemVkLXJlc3BvbnNlLmpzJyk7CisgICAg
Ly8gfG1lc3NhZ2V8IGlzIHByb3ZpZGVkIGJ5ICdzeW50aGVzaXplZC1yZXNwb25zZS5qcyc7Cisg
ICAgc2VuZGVyLnBvc3RNZXNzYWdlKG1lc3NhZ2UpOworICB9IGVsc2UgeworICAgIHNlbmRlci5w
b3N0TWVzc2FnZSgnVW5leHBlY3RlZCBtZXNzYWdlISAnICsgZGF0YSk7CisgIH0KK30KKworLy8g
RW50cnkgcG9pbnQgZm9yIGRlZGljYXRlZCB3b3JrZXJzLgorc2VsZi5vbm1lc3NhZ2UgPSBldnQg
PT4gcnVuX3Rlc3QoZXZ0LmRhdGEsIHNlbGYpOworCisvLyBFbnRyeSBwb2ludCBmb3Igc2hhcmVk
IHdvcmtlcnMuCitzZWxmLm9uY29ubmVjdCA9IGV2dCA9PiB7CisgIGV2dC5wb3J0c1swXS5vbm1l
c3NhZ2UgPSBlID0+IHJ1bl90ZXN0KGUuZGF0YSwgZXZ0LnBvcnRzWzBdKTsKIH07CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvbmVzdGVkX2xvYWRfd29ya2VyLmpzIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL25lc3RlZF9sb2FkX3dvcmtlci5qcwppbmRleCA2
ZTJlOWVkYzRkOGIzNWUwM2Y1YWE0YjI5OTY2ODEyYWRkZjQzNDQ0Li5lZjBlZDhmYzcwNGNlYWE4
MWYxZWVmOGQ0ZWQ3NWZkMDQxYmFhZTZkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9y
ZXNvdXJjZXMvbmVzdGVkX2xvYWRfd29ya2VyLmpzCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jl
c291cmNlcy9uZXN0ZWRfbG9hZF93b3JrZXIuanMKQEAgLTEsOSArMSwyMyBAQAotdmFyIHdvcmtl
ciA9IG5ldyBXb3JrZXIoImxvYWRfd29ya2VyLmpzIik7Ci0KLXNlbGYub25tZXNzYWdlID0gZnVu
Y3Rpb24gKGV2dCkgewotICB3b3JrZXIucG9zdE1lc3NhZ2UoZXZ0LmRhdGEpOworLy8gRW50cnkg
cG9pbnQgZm9yIGRlZGljYXRlZCB3b3JrZXJzLgorc2VsZi5vbm1lc3NhZ2UgPSBldnQgPT4gewor
ICB0cnkgeworICAgIGNvbnN0IHdvcmtlciA9IG5ldyBXb3JrZXIoJ2xvYWRfd29ya2VyLmpzJyk7
CisgICAgd29ya2VyLm9ubWVzc2FnZSA9IGV2dCA9PiBzZWxmLnBvc3RNZXNzYWdlKGV2dC5kYXRh
KTsKKyAgICB3b3JrZXIucG9zdE1lc3NhZ2UoZXZ0LmRhdGEpOworICB9IGNhdGNoIChlcnIpIHsK
KyAgICBzZWxmLnBvc3RNZXNzYWdlKCdVbmV4cGVjdGVkIGVycm9yISAnICsgZXJyLm1lc3NhZ2Up
OworICB9CiB9OwogCi13b3JrZXIub25tZXNzYWdlID0gZnVuY3Rpb24gKGV2dCkgewotICBzZWxm
LnBvc3RNZXNzYWdlKGV2dC5kYXRhKTsKLX0KKy8vIEVudHJ5IHBvaW50IGZvciBzaGFyZWQgd29y
a2Vycy4KK3NlbGYub25jb25uZWN0ID0gZXZ0ID0+IHsKKyAgZXZ0LnBvcnRzWzBdLm9ubWVzc2Fn
ZSA9IGUgPT4geworICAgIHRyeSB7CisgICAgICBjb25zdCB3b3JrZXIgPSBuZXcgV29ya2VyKCds
b2FkX3dvcmtlci5qcycpOworICAgICAgd29ya2VyLm9ubWVzc2FnZSA9IGUgPT4gZXZ0LnBvcnRz
WzBdLnBvc3RNZXNzYWdlKGUuZGF0YSk7CisgICAgICB3b3JrZXIucG9zdE1lc3NhZ2UoZXZ0LmRh
dGEpOworICAgIH0gY2F0Y2ggKGVycikgeworICAgICAgZXZ0LnBvcnRzWzBdLnBvc3RNZXNzYWdl
KCdVbmV4cGVjdGVkIGVycm9yISAnICsgZXJyLm1lc3NhZ2UpOworICAgIH0KKyAgfTsKK307CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvcG9zdG1lc3NhZ2Utb24tbG9h
ZC13b3JrZXIuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvcG9zdG1lc3NhZ2Utb24t
bG9hZC13b3JrZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzJiMGJjYjhiZmIwYWEwYTc2MDcxNDM4NDBmMWY1
NmEzOGQ4YjBhMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNl
cy9wb3N0bWVzc2FnZS1vbi1sb2FkLXdvcmtlci5qcwpAQCAtMCwwICsxLDkgQEAKK2lmICgnRGVk
aWNhdGVkV29ya2VyR2xvYmFsU2NvcGUnIGluIHNlbGYgJiYKKyAgICBzZWxmIGluc3RhbmNlb2Yg
RGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUpIHsKKyAgcG9zdE1lc3NhZ2UoJ2RlZGljYXRlZCB3
b3JrZXIgc2NyaXB0IGxvYWRlZCcpOworfSBlbHNlIGlmICgnU2hhcmVkV29ya2VyR2xvYmFsU2Nv
cGUnIGluIHNlbGYgJiYKKyAgICBzZWxmIGluc3RhbmNlb2YgU2hhcmVkV29ya2VyR2xvYmFsU2Nv
cGUpIHsKKyAgc2VsZi5vbmNvbm5lY3QgPSBldnQgPT4geworICAgIGV2dC5wb3J0c1swXS5wb3N0
TWVzc2FnZSgnc2hhcmVkIHdvcmtlciBzY3JpcHQgbG9hZGVkJyk7CisgIH07Cit9CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvc2hhcmVkLXdvcmtlci1jb250cm9sbGVk
LmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3NoYXJlZC13b3JrZXItY29udHJvbGxl
ZC5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWNjYzJmZTNiZGJlNjhhZDIwMGY3
MDM3ZmQ1YzY4ZDc2ODkzMTgzNC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvc2hhcmVkLXdvcmtlci1jb250
cm9sbGVkLmpzCisrKyAvZGV2L251bGwKQEAgLTEsOCArMCwwIEBACi1vbmNvbm5lY3QgPSBmdW5j
dGlvbihlKSB7Ci0gIHZhciBwb3J0ID0gZS5wb3J0c1swXTsKLSAgdmFyIHhociA9IG5ldyBYTUxI
dHRwUmVxdWVzdCgpOwotICB4aHIub25sb2FkID0gZnVuY3Rpb24oKSB7IHBvcnQucG9zdE1lc3Nh
Z2UodGhpcy5yZXNwb25zZVRleHQpOyB9OwotICB4aHIub25lcnJvciA9IGZ1bmN0aW9uKGUpIHsg
cG9ydC5wb3N0TWVzc2FnZShlKTsgfTsKLSAgeGhyLm9wZW4oJ0dFVCcsICdkdW1teS50eHQ/c2lt
cGxlJywgdHJ1ZSk7Ci0gIHhoci5zZW5kKCk7Ci19OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvcmVzb3VyY2VzL3NoYXJlZC13b3JrZXItaW1wb3J0LmpzIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvcmVzb3VyY2VzL3NoYXJlZC13b3JrZXItaW1wb3J0LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA3YzU1NGJkNzQxNTIwOWIyNjZmZmZjZWI5MDE4NWE3OWViZDc1NmM1Li4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3Jlc291cmNlcy9zaGFyZWQtd29ya2VyLWltcG9ydC5qcworKysgL2Rldi9udWxsCkBAIC0x
ICswLDAgQEAKLWltcG9ydFNjcmlwdHMoJ2ltcG9ydC1kdW1teS1zaGFyZWQtd29ya2VyLmpzJyk7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvdXBkYXRlLWR1cmluZy1p
bnN0YWxsYXRpb24td29ya2VyLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3VwZGF0
ZS1kdXJpbmctaW5zdGFsbGF0aW9uLXdvcmtlci5qcwppbmRleCAzZjg5ODgxYzA0Mzg0NTkwYjhi
MTMyYzM5Mjk3NzI1NmJmYjg0N2VkLi5mMTk5N2JkODI0ZThlMTY1Y2MxMTlhNTIwODJkNzQyYmQ2
M2Y0ZTRkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvdXBkYXRlLWR1
cmluZy1pbnN0YWxsYXRpb24td29ya2VyLmpzCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291
cmNlcy91cGRhdGUtZHVyaW5nLWluc3RhbGxhdGlvbi13b3JrZXIuanMKQEAgLTE0LDYgKzE0LDkg
QEAgYWRkRXZlbnRMaXN0ZW5lcignaW5zdGFsbCcsIGV2ZW50ID0+IHsKIH0pOwogCiBhZGRFdmVu
dExpc3RlbmVyKCdtZXNzYWdlJywgZXZlbnQgPT4geworICBsZXQgcmVzb2x2ZVdhaXRVbnRpbDsK
KyAgZXZlbnQud2FpdFVudGlsKG5ldyBQcm9taXNlKHJlc29sdmUgPT4geyByZXNvbHZlV2FpdFVu
dGlsID0gcmVzb2x2ZTsgfSkpOworCiAgIC8vIFVzZSBhIGRlZGljYXRlZCBNZXNzYWdlQ2hhbm5l
bCBmb3IgZXZlcnkgcmVxdWVzdCBzbyBzZW5kZXJzIGNhbiB3YWl0IGZvcgogICAvLyBpbmRpdmlk
dWFsIHJlcXVlc3RzIHRvIGZpbmlzaCwgYW5kIGNvbmN1cnJlbnQgcmVxdWVzdHMgKHRvIGRpZmZl
cmVudAogICAvLyB3b3JrZXJzKSBkb24ndCBjYXVzZSByYWNlIGNvbmRpdGlvbnMuCkBAIC0yMywx
MyArMjYsMTMgQEAgYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIGV2ZW50ID0+IHsKICAgICAg
IGNhc2UgJ2F3YWl0SW5zdGFsbEV2ZW50JzoKICAgICAgICAgaW5zdGFsbEV2ZW50RmlyZWQudGhl
bigoKSA9PiB7CiAgICAgICAgICAgICBwb3J0LnBvc3RNZXNzYWdlKCdpbnN0YWxsRXZlbnRGaXJl
ZCcpOwotICAgICAgICB9KTsKKyAgICAgICAgfSkuZmluYWxseShyZXNvbHZlV2FpdFVudGlsKTsK
ICAgICAgICAgYnJlYWs7CiAKICAgICAgIGNhc2UgJ2ZpbmlzaEluc3RhbGwnOgogICAgICAgICBp
bnN0YWxsRmluaXNoZWQudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBwb3J0LnBvc3RNZXNzYWdl
KCdpbnN0YWxsRmluaXNoZWQnKTsKLSAgICAgICAgfSk7CisgICAgICAgIH0pLmZpbmFsbHkocmVz
b2x2ZVdhaXRVbnRpbCk7CiAgICAgICAgIGZpbmlzaEluc3RhbGwoKTsKICAgICAgICAgYnJlYWs7
CiAKQEAgLTQ0LDEzICs0NywxNCBAQCBhZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgZXZlbnQg
PT4gewogICAgICAgICAgICAgICAgIHN1Y2Nlc3M6IGZhbHNlLAogICAgICAgICAgICAgICAgIGV4
Y2VwdGlvbjogZXhjZXB0aW9uLm5hbWUsCiAgICAgICAgICAgICB9KTsKLSAgICAgICAgfSk7Cisg
ICAgICAgIH0pLmZpbmFsbHkocmVzb2x2ZVdhaXRVbnRpbCk7CiAgICAgICAgIHBvcnQucG9zdE1l
c3NhZ2UoY2hhbm5lbC5wb3J0MSwgW2NoYW5uZWwucG9ydDFdKTsKICAgICAgICAgYnJlYWs7CiAg
ICAgICB9CiAKICAgICAgIGRlZmF1bHQ6CiAgICAgICAgIHBvcnQucG9zdE1lc3NhZ2UoJ1VuZXhw
ZWN0ZWQgY29tbWFuZCAnICsgZXZlbnQuZGF0YSk7CisgICAgICAgIHJlc29sdmVXYWl0VW50aWwo
KTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogICB9OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvcmVzb3VyY2VzL3VwZGF0ZS1zbWFsbGVyLWJvZHktYWZ0ZXItdXBkYXRlLXdvcmtlci5q
cyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy91cGRhdGUtc21hbGxlci1ib2R5LWFmdGVy
LXVwZGF0ZS13b3JrZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDQzZjZiMmY1YzNkNjQxNTZhZTY4OTcwZWFi
M2E2NTUxMWM1Yzk2MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291
cmNlcy91cGRhdGUtc21hbGxlci1ib2R5LWFmdGVyLXVwZGF0ZS13b3JrZXIuanMKQEAgLTAsMCAr
MSBAQAorLy8gSGVsbG8gd29ybGQhCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNv
dXJjZXMvdXBkYXRlLXNtYWxsZXItYm9keS1iZWZvcmUtdXBkYXRlLXdvcmtlci5qcyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL3Jlc291cmNlcy91cGRhdGUtc21hbGxlci1ib2R5LWJlZm9yZS11cGRhdGUt
d29ya2VyLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMwYzg3ODNhNzAyNTUwMTJlNTc2MzQwM2QxNTQ2N2QxNDhi
MjQ5YjAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvdXBk
YXRlLXNtYWxsZXItYm9keS1iZWZvcmUtdXBkYXRlLXdvcmtlci5qcwpAQCAtMCwwICsxLDIgQEAK
Ky8vIEhlbGxvIHdvcmxkIQorLy8gKip3aXRoIGV4dHJhIGJvZHkqKgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3VwZGF0ZS13b3JrZXItZnJvbS1maWxlLnB5IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3VwZGF0ZS13b3JrZXItZnJvbS1maWxlLnB5Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjc2MDQ3MTljOGUwYzVkYWNkMjE2YmY5NjkyMWQ4MjVkZDAyMTFhZWEKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvdXBkYXRlLXdvcmtlci1mcm9t
LWZpbGUucHkKQEAgLTAsMCArMSwzMSBAQAoraW1wb3J0IG9zCisKK2RlZiBzZXJ2ZV9qc19mcm9t
X2ZpbGUocmVxdWVzdCwgcmVzcG9uc2UsIGZpbGVuYW1lKToKKyAgYm9keSA9ICcnCisgIHBhdGgg
PSBvcy5wYXRoLmpvaW4ob3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKSwgZmlsZW5hbWUpCisgIHdp
dGggb3BlbihwYXRoLCAncmInKSBhcyBmOgorICAgIGJvZHkgPSBmLnJlYWQoKQorICByZXR1cm4g
KAorICAgIFsKKyAgICAgICgnQ2FjaGUtQ29udHJvbCcsICduby1jYWNoZSwgbXVzdC1yZXZhbGlk
YXRlJyksCisgICAgICAoJ1ByYWdtYScsICduby1jYWNoZScpLAorICAgICAgKCdDb250ZW50LVR5
cGUnLCAnYXBwbGljYXRpb24vamF2YXNjcmlwdCcpCisgICAgXSwgYm9keSkKKworZGVmIG1haW4o
cmVxdWVzdCwgcmVzcG9uc2UpOgorICBrZXkgPSByZXF1ZXN0LkdFVFsiS2V5Il0KKworICB2aXNp
dGVkX2NvdW50ID0gcmVxdWVzdC5zZXJ2ZXIuc3Rhc2gudGFrZShrZXkpCisgIGlmIHZpc2l0ZWRf
Y291bnQgaXMgTm9uZToKKyAgICB2aXNpdGVkX2NvdW50ID0gMAorCisgICMgS2VlcCBob3cgbWFu
eSB0aW1lcyB0aGUgdGVzdCByZXF1ZXN0ZWQgdGhpcyByZXNvdXJjZS4KKyAgdmlzaXRlZF9jb3Vu
dCArPSAxCisgIHJlcXVlc3Quc2VydmVyLnN0YXNoLnB1dChrZXksIHZpc2l0ZWRfY291bnQpCisK
KyAgIyBTZXJ2ZSBhIGZpbGUgYmFzZWQgb24gaG93IG1hbnkgdGltZXMgaXQncyByZXF1ZXN0ZWQu
CisgIGlmIHZpc2l0ZWRfY291bnQgPT0gMToKKyAgICByZXR1cm4gc2VydmVfanNfZnJvbV9maWxl
KHJlcXVlc3QsIHJlc3BvbnNlLCByZXF1ZXN0LkdFVFsiRmlyc3QiXSkKKyAgaWYgdmlzaXRlZF9j
b3VudCA9PSAyOgorICAgIHJldHVybiBzZXJ2ZV9qc19mcm9tX2ZpbGUocmVxdWVzdCwgcmVzcG9u
c2UsIHJlcXVlc3QuR0VUWyJTZWNvbmQiXSkKKyAgcmFpc2UgIlVua25vd24gc3RhdGUiCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvdXBkYXRlLXdvcmtlci5weSBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy91cGRhdGUtd29ya2VyLnB5CmluZGV4IGJjOWIzMmFk
M2U2ODg3MGQ5ZjU0MDUyNGU3MGNkNzk0NzM0NmU1YzguLmQyNTE3OTMwNGE3MzY2MDEyMjAzNmU1
ZDVmZWMyMDY3ZGM2MTU5N2EgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNl
cy91cGRhdGUtd29ya2VyLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy91cGRh
dGUtd29ya2VyLnB5CkBAIC0xLDQ2ICsxLDYwIEBACi1pbXBvcnQgdGltZQoraW1wb3J0IHVybGxp
YgorCitkZWYgcmVkaXJlY3RfcmVzcG9uc2UocmVxdWVzdCwgcmVzcG9uc2UsIHZpc2l0ZWRfY291
bnQpOgorICAjIHx2aXNpdGVkX2NvdW50fCBpcyB1c2VkIGFzIGEgdW5pcXVlIGlkIHRvIGRpZmZl
cmVudGlhdGUgcmVzcG9uc2VzCisgICMgZXZlcnkgdGltZS4KKyAgbG9jYXRpb24gPSAnZW1wdHku
anMnCisgIGlmICdSZWRpcmVjdCcgaW4gcmVxdWVzdC5HRVQ6CisgICAgICBsb2NhdGlvbiA9IHVy
bGxpYi51bnF1b3RlKHJlcXVlc3QuR0VUWydSZWRpcmVjdCddKQorICByZXR1cm4gKDMwMSwKKyAg
WworICAgICgnQ2FjaGUtQ29udHJvbCcsICduby1jYWNoZSwgbXVzdC1yZXZhbGlkYXRlJyksCisg
ICAgKCdQcmFnbWEnLCAnbm8tY2FjaGUnKSwKKyAgICAoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNh
dGlvbi9qYXZhc2NyaXB0JyksCisgICAgKCdMb2NhdGlvbicsIGxvY2F0aW9uKSwKKyAgXSwKKyAg
Jy8qICVzICovJyAlIHN0cih2aXNpdGVkX2NvdW50KSkKKworZGVmIG5vdF9mb3VuZF9yZXNwb25z
ZSgpOgorICByZXR1cm4gNDA0LCBbKCdDb250ZW50LVR5cGUnLCAndGV4dC9wbGFpbicpXSwgIlBh
Z2Ugbm90IGZvdW5kIgorCitkZWYgb2tfcmVzcG9uc2UocmVxdWVzdCwgcmVzcG9uc2UsIHZpc2l0
ZWRfY291bnQsCisgICAgICAgICAgICAgICAgZXh0cmFfYm9keT0nJywgbWltZV90eXBlPSdhcHBs
aWNhdGlvbi9qYXZhc2NyaXB0Jyk6CisgICMgfHZpc2l0ZWRfY291bnR8IGlzIHVzZWQgYXMgYSB1
bmlxdWUgaWQgdG8gZGlmZmVyZW50aWF0ZSByZXNwb25zZXMKKyAgIyBldmVyeSB0aW1lLgorICBy
ZXR1cm4gKAorICAgIFsKKyAgICAgICgnQ2FjaGUtQ29udHJvbCcsICduby1jYWNoZSwgbXVzdC1y
ZXZhbGlkYXRlJyksCisgICAgICAoJ1ByYWdtYScsICduby1jYWNoZScpLAorICAgICAgKCdDb250
ZW50LVR5cGUnLCBtaW1lX3R5cGUpCisgICAgXSwKKyAgICAnLyogJXMgKi8gJXMnICUgKHN0cih2
aXNpdGVkX2NvdW50KSwgZXh0cmFfYm9keSkpCiAKIGRlZiBtYWluKHJlcXVlc3QsIHJlc3BvbnNl
KToKLSAgICAjIFNldCBtb2RlIHRvICdpbml0JyBmb3IgaW5pdGlhbCBmZXRjaC4KLSAgICBtb2Rl
ID0gJ2luaXQnCi0gICAgaWYgJ21vZGUnIGluIHJlcXVlc3QuY29va2llczoKLSAgICAgICAgbW9k
ZSA9IHJlcXVlc3QuY29va2llc1snbW9kZSddLnZhbHVlCi0KLSAgICAjIG5vLWNhY2hlIGl0c2Vs
ZiB0byBlbnN1cmUgdGhlIHVzZXIgYWdlbnQgZmluZHMgYSBuZXcgdmVyc2lvbiBmb3IgZWFjaCB1
cGRhdGUuCi0gICAgaGVhZGVycyA9IFsoJ0NhY2hlLUNvbnRyb2wnLCAnbm8tY2FjaGUsIG11c3Qt
cmV2YWxpZGF0ZScpLAotICAgICAgICAgICAgICAgKCdQcmFnbWEnLCAnbm8tY2FjaGUnKV0KLQot
ICAgIGNvbnRlbnRfdHlwZSA9ICcnCi0gICAgZXh0cmFfYm9keSA9ICcnCi0KLSAgICBpZiBtb2Rl
ID09ICdpbml0JzoKLSAgICAgICAgIyBTZXQgYSBub3JtYWwgbWltZXR5cGUuCi0gICAgICAgICMg
U2V0IGNvb2tpZSB2YWx1ZSB0byAnbm9ybWFsJyBzbyB0aGUgbmV4dCBmZXRjaCB3aWxsIHdvcmsg
aW4gJ25vcm1hbCcgbW9kZS4KLSAgICAgICAgY29udGVudF90eXBlID0gJ2FwcGxpY2F0aW9uL2ph
dmFzY3JpcHQnCi0gICAgICAgIHJlc3BvbnNlLnNldF9jb29raWUoJ21vZGUnLCAnbm9ybWFsJykK
LSAgICBlbGlmIG1vZGUgPT0gJ25vcm1hbCc6Ci0gICAgICAgICMgU2V0IGEgbm9ybWFsIG1pbWV0
eXBlLgotICAgICAgICAjIFNldCBjb29raWUgdmFsdWUgdG8gJ2Vycm9yJyBzbyB0aGUgbmV4dCBm
ZXRjaCB3aWxsIHdvcmsgaW4gJ2Vycm9yJyBtb2RlLgotICAgICAgICBjb250ZW50X3R5cGUgPSAn
YXBwbGljYXRpb24vamF2YXNjcmlwdCcKLSAgICAgICAgcmVzcG9uc2Uuc2V0X2Nvb2tpZSgnbW9k
ZScsICdlcnJvcicpOwotICAgIGVsaWYgbW9kZSA9PSAnZXJyb3InOgotICAgICAgICAjIFNldCBh
IGRpc2FsbG93ZWQgbWltZXR5cGUuCi0gICAgICAgICMgU2V0IGNvb2tpZSB2YWx1ZSB0byAnc3lu
dGF4LWVycm9yJyBzbyB0aGUgbmV4dCBmZXRjaCB3aWxsIHdvcmsgaW4gJ3N5bnRheC1lcnJvcicg
bW9kZS4KLSAgICAgICAgY29udGVudF90eXBlID0gJ3RleHQvaHRtbCcKLSAgICAgICAgcmVzcG9u
c2Uuc2V0X2Nvb2tpZSgnbW9kZScsICdzeW50YXgtZXJyb3InKTsKLSAgICBlbGlmIG1vZGUgPT0g
J3N5bnRheC1lcnJvcic6Ci0gICAgICAgICMgU2V0IGNvb2tpZSB2YWx1ZSB0byAndGhyb3ctaW5z
dGFsbCcgc28gdGhlIG5leHQgZmV0Y2ggd2lsbCB3b3JrIGluICd0aHJvdy1pbnN0YWxsJyBtb2Rl
LgotICAgICAgICBjb250ZW50X3R5cGUgPSAnYXBwbGljYXRpb24vamF2YXNjcmlwdCcKLSAgICAg
ICAgcmVzcG9uc2Uuc2V0X2Nvb2tpZSgnbW9kZScsICd0aHJvdy1pbnN0YWxsJyk7Ci0gICAgICAg
IGV4dHJhX2JvZHkgPSAnYmFkc3ludGF4KGlzYmFkOycKLSAgICBlbGlmIG1vZGUgPT0gJ3Rocm93
LWluc3RhbGwnOgotICAgICAgICAjIFVuc2V0IGFuZCBkZWxldGUgY29va2llIHRvIGNsZWFuIHVw
IHRoZSB0ZXN0IHNldHRpbmcuCi0gICAgICAgIGNvbnRlbnRfdHlwZSA9ICdhcHBsaWNhdGlvbi9q
YXZhc2NyaXB0JwotICAgICAgICByZXNwb25zZS5kZWxldGVfY29va2llKCdtb2RlJykKLSAgICAg
ICAgZXh0cmFfYm9keSA9ICJhZGRFdmVudExpc3RlbmVyKCdpbnN0YWxsJywgZnVuY3Rpb24oZSkg
eyB0aHJvdyBuZXcgRXJyb3IoJ2Jvb20nKTsgfSk7IgotCi0gICAgaGVhZGVycy5hcHBlbmQoKCdD
b250ZW50LVR5cGUnLCBjb250ZW50X3R5cGUpKQotICAgICMgUmV0dXJuIGEgZGlmZmVyZW50IHNj
cmlwdCBmb3IgZWFjaCBhY2Nlc3MuICBVc2UgLnRpbWUoKSBhbmQgLmNsb2NrKCkgZm9yCi0gICAg
IyBiZXN0IHRpbWUgcmVzb2x1dGlvbiBhY3Jvc3MgZGlmZmVyZW50IHBsYXRmb3Jtcy4KLSAgICBy
ZXR1cm4gaGVhZGVycywgJy8qICVzICVzICovICVzJyAlICh0aW1lLnRpbWUoKSwgdGltZS5jbG9j
aygpLCBleHRyYV9ib2R5KQorICBrZXkgPSByZXF1ZXN0LkdFVFsiS2V5Il0KKyAgbW9kZSA9IHJl
cXVlc3QuR0VUWyJNb2RlIl0KKworICB2aXNpdGVkX2NvdW50ID0gcmVxdWVzdC5zZXJ2ZXIuc3Rh
c2gudGFrZShrZXkpCisgIGlmIHZpc2l0ZWRfY291bnQgaXMgTm9uZToKKyAgICB2aXNpdGVkX2Nv
dW50ID0gMAorCisgICMgS2VlcCBob3cgbWFueSB0aW1lcyB0aGUgdGVzdCByZXF1ZXN0ZWQgdGhp
cyByZXNvdXJjZS4KKyAgdmlzaXRlZF9jb3VudCArPSAxCisgIHJlcXVlc3Quc2VydmVyLnN0YXNo
LnB1dChrZXksIHZpc2l0ZWRfY291bnQpCisKKyAgIyBSZXR1cm4gYSByZXNwb25zZSBiYXNlZCBv
biB8bW9kZXwgb25seSB3aGVuIGl0J3MgdGhlIHNlY29uZCB0aW1lICg9PSB1cGRhdGUpLgorICBp
ZiB2aXNpdGVkX2NvdW50ID09IDI6CisgICAgaWYgbW9kZSA9PSAnbm9ybWFsJzoKKyAgICAgIHJl
dHVybiBva19yZXNwb25zZShyZXF1ZXN0LCByZXNwb25zZSwgdmlzaXRlZF9jb3VudCkKKyAgICBp
ZiBtb2RlID09ICdiYWRfbWltZV90eXBlJzoKKyAgICAgIHJldHVybiBva19yZXNwb25zZShyZXF1
ZXN0LCByZXNwb25zZSwgdmlzaXRlZF9jb3VudCwgbWltZV90eXBlPSd0ZXh0L2h0bWwnKQorICAg
IGlmIG1vZGUgPT0gJ25vdF9mb3VuZCc6CisgICAgICByZXR1cm4gbm90X2ZvdW5kX3Jlc3BvbnNl
KCkKKyAgICBpZiBtb2RlID09ICdyZWRpcmVjdCc6CisgICAgICByZXR1cm4gcmVkaXJlY3RfcmVz
cG9uc2UocmVxdWVzdCwgcmVzcG9uc2UsIHZpc2l0ZWRfY291bnQpCisgICAgaWYgbW9kZSA9PSAn
c3ludGF4X2Vycm9yJzoKKyAgICAgIHJldHVybiBva19yZXNwb25zZShyZXF1ZXN0LCByZXNwb25z
ZSwgdmlzaXRlZF9jb3VudCwgZXh0cmFfYm9keT0nYmFkc3ludGF4KGlzYmFkOycpCisgICAgaWYg
bW9kZSA9PSAndGhyb3dfaW5zdGFsbCc6CisgICAgICByZXR1cm4gb2tfcmVzcG9uc2UocmVxdWVz
dCwgcmVzcG9uc2UsIHZpc2l0ZWRfY291bnQsIGV4dHJhX2JvZHk9ImFkZEV2ZW50TGlzdGVuZXIo
J2luc3RhbGwnLCBmdW5jdGlvbihlKSB7IHRocm93IG5ldyBFcnJvcignYm9vbScpOyB9KTsiKQog
CisgIHJldHVybiBva19yZXNwb25zZShyZXF1ZXN0LCByZXNwb25zZSwgdmlzaXRlZF9jb3VudCkK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy93M2MtaW1wb3J0LmxvZyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy93M2MtaW1wb3J0LmxvZwppbmRleCA5ZWJjOGJj
MzFmZmNjZGU3NzM2M2U5ODYxMTczZDI1ZTc1YTJkMjAyLi44ZjFiY2ZkMzQ1NDNjMjVkMDcxNWVi
OWIyNmU1MjJmMzZkNDY0YTk1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJj
ZXMvdzNjLWltcG9ydC5sb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3czYy1p
bXBvcnQubG9nCkBAIC00Myw2ICs0Myw3IEBAIExpc3Qgb2YgZmlsZXM6CiAvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvcmVzb3VyY2VzL2NsaWVudC1uYXZpZ2F0ZS1mcmFtZS5odG1sCiAvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvcmVzb3VyY2VzL2NsaWVudC1uYXZpZ2F0ZS13b3JrZXIuanMKIC9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9yZXNvdXJjZXMvY2xpZW50LW5hdmlnYXRlZC1mcmFtZS5odG1sCisvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvcmVzb3VyY2VzL2NsaWVudHMtZnJhbWUtZnJlZXplLmh0bWwKIC9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9yZXNvdXJjZXMvY2xpZW50cy1nZXQtY2xpZW50LXR5cGVzLWZyYW1lLXdvcmtlci5qcwog
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9jbGllbnRzLWdldC1jbGllbnQtdHlwZXMtZnJh
bWUuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9jbGllbnRzLWdldC1jbGllbnQt
dHlwZXMtc2hhcmVkLXdvcmtlci5qcwpAQCAtNjAsMTAgKzYxLDcgQEAgTGlzdCBvZiBmaWxlczoK
IC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvY29ycy1hcHByb3ZlZC50eHQKIC9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9yZXNvdXJjZXMvY29ycy1hcHByb3ZlZC50eHQuaGVhZGVycwogL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL3Jlc291cmNlcy9jb3JzLWRlbmllZC50eHQKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9y
ZXNvdXJjZXMvZHVtbXktc2hhcmVkLXdvcmtlci1pbnRlcmNlcHRvci5qcwotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL3Jlc291cmNlcy9kdW1teS1zaGFyZWQtd29ya2VyLWludGVyY2VwdG9yLmpzLmhlYWRl
cnMKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZHVtbXktd29ya2VyLWludGVyY2VwdG9y
LmpzCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2R1bW15LXdvcmtlci1zY3JpcHQucHkK
IC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZHVtbXkuaHRtbAogL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3Jlc291cmNlcy9kdW1teS50eHQKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZWNo
by1jb250ZW50LnB5CkBAIC0xNTIsMTEgKzE1MCwxNSBAQCBMaXN0IG9mIGZpbGVzOgogL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL3Jlc291cmNlcy9pbW11dGFibGUtcHJvdG90eXBlLXNlcnZpY2V3b3JrZXIu
anMKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvaW1wb3J0LW1pbWUtdHlwZS13b3JrZXIu
cHkKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvaW1wb3J0LXJlbGF0aXZlLnhzbAorL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9pbXBvcnQtc2NyaXB0cy00MDQtYWZ0ZXItdXBkYXRl
LXBsdXMtdXBkYXRlLXdvcmtlci5qcworL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9pbXBv
cnQtc2NyaXB0cy00MDQtYWZ0ZXItdXBkYXRlLmpzCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3Vy
Y2VzL2ltcG9ydC1zY3JpcHRzLTQwNC5qcwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9p
bXBvcnQtc2NyaXB0cy1kaWZmLXJlc291cmNlLW1hcC13b3JrZXIuanMKIC9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9yZXNvdXJjZXMvaW1wb3J0LXNjcmlwdHMtZWNoby5weQogL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L3Jlc291cmNlcy9pbXBvcnQtc2NyaXB0cy1nZXQucHkKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNv
dXJjZXMvaW1wb3J0LXNjcmlwdHMtbWltZS10eXBlcy13b3JrZXIuanMKIC9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9yZXNvdXJjZXMvaW1wb3J0LXNjcmlwdHMtcmVkaXJlY3QtaW1wb3J0LmpzCisvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvcmVzb3VyY2VzL2ltcG9ydC1zY3JpcHRzLXJlZGlyZWN0LW9uLXNlY29uZC10
aW1lLXdvcmtlci5qcwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9pbXBvcnQtc2NyaXB0
cy1yZWRpcmVjdC13b3JrZXIuanMKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvaW1wb3J0
LXNjcmlwdHMtcmVzb3VyY2UtbWFwLXdvcmtlci5qcwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291
cmNlcy9pbXBvcnQtc2NyaXB0cy11cGRhdGVkLWZsYWctd29ya2VyLmpzCkBAIC0yMjcsNiArMjI5
LDcgQEAgTGlzdCBvZiBmaWxlczoKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvcG9zdG1l
c3NhZ2UtZGljdGlvbmFyeS10cmFuc2ZlcmFibGVzLXdvcmtlci5qcwogL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3Jlc291cmNlcy9wb3N0bWVzc2FnZS1lY2hvLXdvcmtlci5qcwogL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3Jlc291cmNlcy9wb3N0bWVzc2FnZS1tc2dwb3J0LXRvLWNsaWVudC13b3JrZXIuanMKKy9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvcG9zdG1lc3NhZ2Utb24tbG9hZC13b3JrZXIuanMK
IC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvcG9zdG1lc3NhZ2UtdG8tY2xpZW50LXdvcmtl
ci5qcwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9wb3N0bWVzc2FnZS10cmFuc2ZlcmFi
bGVzLXdvcmtlci5qcwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9wb3N0bWVzc2FnZS13
b3JrZXIuanMKQEAgLTI2NSw4ICsyNjgsNiBAQCBMaXN0IG9mIGZpbGVzOgogL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL3Jlc291cmNlcy9zZXJ2aWNlLXdvcmtlci1pbnRlcmNlcHRpb24tbmV0d29yay13b3Jr
ZXIuanMKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvc2VydmljZS13b3JrZXItaW50ZXJj
ZXB0aW9uLXNlcnZpY2Utd29ya2VyLmpzCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3Nl
cnZpY2Utd29ya2VyLWludGVyY2VwdGlvbi1zdGF0aWMtaW1wb3J0LXdvcmtlci5qcwotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL3Jlc291cmNlcy9zaGFyZWQtd29ya2VyLWNvbnRyb2xsZWQuanMKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvc2hhcmVkLXdvcmtlci1pbXBvcnQuanMKIC9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9yZXNvdXJjZXMvc2lsZW5jZS5vZ2EKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNv
dXJjZXMvc2ltcGxlLWludGVyY2VwdC13b3JrZXIuanMKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNv
dXJjZXMvc2ltcGxlLWludGVyY2VwdC13b3JrZXIuanMuaGVhZGVycwpAQCAtMjk1LDYgKzI5Niw5
IEBAIExpc3Qgb2YgZmlsZXM6CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3VwZGF0ZS1u
b2Nvb2tpZS13b3JrZXIucHkKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvdXBkYXRlLXJl
Y292ZXJ5LXdvcmtlci5weQogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy91cGRhdGUtcmVn
aXN0cmF0aW9uLXdpdGgtdHlwZS5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy91cGRh
dGUtc21hbGxlci1ib2R5LWFmdGVyLXVwZGF0ZS13b3JrZXIuanMKKy9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9yZXNvdXJjZXMvdXBkYXRlLXNtYWxsZXItYm9keS1iZWZvcmUtdXBkYXRlLXdvcmtlci5qcwor
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy91cGRhdGUtd29ya2VyLWZyb20tZmlsZS5weQog
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy91cGRhdGUtd29ya2VyLnB5CiAvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvcmVzb3VyY2VzL3VwZGF0ZV9zaGVsbC5weQogL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jl
c291cmNlcy92dHQtZnJhbWUuaHRtbApAQCAtMzA0LDcgKzMwOCw2IEBAIExpc3Qgb2YgZmlsZXM6
CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3dpbmRvd2NsaWVudC1uYXZpZ2F0ZS13b3Jr
ZXIuanMKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvd29ya2VyLWNsaWVudC1pZC13b3Jr
ZXIuanMKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvd29ya2VyLWZldGNoaW5nLWNyb3Nz
LW9yaWdpbi5qcwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy93b3JrZXItaW50ZXJjZXB0
aW9uLWlmcmFtZS5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3dvcmtl
ci1pbnRlcmNlcHRpb24tcmVkaXJlY3Qtc2VydmljZXdvcmtlci5qcwogL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3Jlc291cmNlcy93b3JrZXItaW50ZXJjZXB0aW9uLXJlZGlyZWN0LXdlYndvcmtlci5qcwog
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy93b3JrZXItbG9hZC1pbnRlcmNlcHRvci5qcwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3dvcmtlci1pbnRlcmNlcHRp
b24taWZyYW1lLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvd29ya2Vy
LWludGVyY2VwdGlvbi1pZnJhbWUuaHR0cHMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggODQyMDRhM2VlNWRmMWZjM2E3MTc4NDIxNTA3MWIxNGYwYzY1ZjlmMi4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9y
ZXNvdXJjZXMvd29ya2VyLWludGVyY2VwdGlvbi1pZnJhbWUuaHR0cHMuaHRtbAorKysgL2Rldi9u
dWxsCkBAIC0xLDU1ICswLDAgQEAKLTxzY3JpcHQgc3JjPSIvY29tbW9uL2dldC1ob3N0LWluZm8u
c3ViLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJ0ZXN0LWhlbHBlcnMuc3ViLmpzP3BpcGU9c3ViIj48
L3NjcmlwdD4KLTxzY3JpcHQ+Ci12YXIgaG9zdF9pbmZvID0gZ2V0X2hvc3RfaW5mbygpOwotCi1m
dW5jdGlvbiBib2lsZXJwbGF0ZV90ZXN0KHVybCwgbXNnKSB7Ci0gICAgcmV0dXJuIG5ldyBQcm9t
aXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgewotICAgICAgICAgIHZhciB3b3JrZXIgPSBu
ZXcgV29ya2VyKHVybCk7Ci0gICAgICAgICAgd29ya2VyLm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGUp
IHsgcmVzb2x2ZShlLmRhdGEpIH07Ci0gICAgICAgICAgd29ya2VyLm9uZXJyb3IgPSBmdW5jdGlv
bihlKSB7IHJlamVjdChlKSB9OwotICAgICAgICAgIHdvcmtlci5wb3N0TWVzc2FnZShtc2cpOwot
ICAgICAgICB9KQotICAgICAgLnRoZW4oZnVuY3Rpb24oZGF0YSkgewotICAgICAgICAgIGFzc2Vy
dF9lcXVhbHMoZGF0YSwgIlRoaXMgbG9hZCB3YXMgc3VjY2Vzc2Z1bGx5IGludGVyY2VwdGVkLiIp
OwotICAgICAgICB9KTsKLX0KLQotZnVuY3Rpb24geGhyX3Rlc3QoKSB7Ci0gICAgcmV0dXJuIGJv
aWxlcnBsYXRlX3Rlc3QoImxvYWRfd29ya2VyLmpzIiwgInhociIpOwotfQotCi1mdW5jdGlvbiBm
ZXRjaF90ZXN0KCkgewotICAgIHJldHVybiBib2lsZXJwbGF0ZV90ZXN0KCJsb2FkX3dvcmtlci5q
cyIsICJmZXRjaCIpOwotfQotCi1mdW5jdGlvbiBpbXBvcnRTY3JpcHRzX3Rlc3QoKSB7Ci0gICAg
cmV0dXJuIGJvaWxlcnBsYXRlX3Rlc3QoImxvYWRfd29ya2VyLmpzIiwgImltcG9ydFNjcmlwdHMi
KTsKLX0KLQotZnVuY3Rpb24gbmVzdGVkX3dvcmtlcl94aHJfdGVzdCgpIHsKLSAgICByZXR1cm4g
Ym9pbGVycGxhdGVfdGVzdCgibmVzdGVkX2xvYWRfd29ya2VyLmpzIiwgInhociIpOwotfQotCi1m
dW5jdGlvbiBuZXN0ZWRfd29ya2VyX2ZldGNoX3Rlc3QoKSB7Ci0gICAgcmV0dXJuIGJvaWxlcnBs
YXRlX3Rlc3QoIm5lc3RlZF9sb2FkX3dvcmtlci5qcyIsICJmZXRjaCIpOwotfQotCi1mdW5jdGlv
biBuZXN0ZWRfd29ya2VyX2ltcG9ydFNjcmlwdHNfdGVzdCgpIHsKLSAgICByZXR1cm4gYm9pbGVy
cGxhdGVfdGVzdCgibmVzdGVkX2xvYWRfd29ya2VyLmpzIiwgImltcG9ydFNjcmlwdHMiKTsKLX0K
LQotd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCBmdW5jdGlvbihldnQpIHsKLSAg
ICB2YXIgcG9ydCA9IGV2dC5wb3J0c1swXTsKLSAgICB4aHJfdGVzdCgpCi0gICAgICAudGhlbihm
ZXRjaF90ZXN0KQotICAgICAgLnRoZW4oaW1wb3J0U2NyaXB0c190ZXN0KQotICAgICAgLnRoZW4o
bmVzdGVkX3dvcmtlcl94aHJfdGVzdCkKLSAgICAgIC50aGVuKG5lc3RlZF93b3JrZXJfZmV0Y2hf
dGVzdCkKLSAgICAgIC50aGVuKG5lc3RlZF93b3JrZXJfaW1wb3J0U2NyaXB0c190ZXN0KQotICAg
ICAgLnRoZW4oZnVuY3Rpb24oKSB7IHBvcnQucG9zdE1lc3NhZ2Uoe3Jlc3VsdHM6ICdmaW5pc2gn
fSk7IH0pCi0gICAgICAuY2F0Y2goZnVuY3Rpb24oZSkgeyBwb3J0LnBvc3RNZXNzYWdlKHtyZXN1
bHRzOiAnZmFpbHVyZTonICsgZX0pOyB9KTsKLSAgfSk7Ci0KLTwvc2NyaXB0PgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3dvcmtlci1sb2FkLWludGVyY2VwdG9yLmpz
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3dvcmtlci1sb2FkLWludGVyY2VwdG9yLmpz
CmluZGV4IGE1ZjY1YzMyMTZlNDQ2MzJmZjA1MmJhYzA0NDgzMTZmMjVkNDQzYzYuLmViYzBkYjY3
YWE1MDQ1ODQyYTUxYWZkMjI1NjcxZmEwYzc4MjY3ZTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL3Jlc291cmNlcy93b3JrZXItbG9hZC1pbnRlcmNlcHRvci5qcworKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9yZXNvdXJjZXMvd29ya2VyLWxvYWQtaW50ZXJjZXB0b3IuanMKQEAgLTEsMTUg
KzEsMTYgQEAKIGltcG9ydFNjcmlwdHMoJy9jb21tb24vZ2V0LWhvc3QtaW5mby5zdWIuanMnKTsK
IAotdmFyIHJlc3BvbnNlX3RleHQgPSAiVGhpcyBsb2FkIHdhcyBzdWNjZXNzZnVsbHkgaW50ZXJj
ZXB0ZWQuIjsKLXZhciByZXNwb25zZV9zY3JpcHQgPSAicG9zdE1lc3NhZ2UoXCJUaGlzIGxvYWQg
d2FzIHN1Y2Nlc3NmdWxseSBpbnRlcmNlcHRlZC5cIik7IjsKK2NvbnN0IHJlc3BvbnNlX3RleHQg
PSAnVGhpcyBsb2FkIHdhcyBzdWNjZXNzZnVsbHkgaW50ZXJjZXB0ZWQuJzsKK2NvbnN0IHJlc3Bv
bnNlX3NjcmlwdCA9CisgICAgYGNvbnN0IG1lc3NhZ2UgPSAnVGhpcyBsb2FkIHdhcyBzdWNjZXNz
ZnVsbHkgaW50ZXJjZXB0ZWQuJztgOwogCi1zZWxmLm9uZmV0Y2ggPSBmdW5jdGlvbihldmVudCkg
ewotICAgIHZhciB1cmwgPSBldmVudC5yZXF1ZXN0LnVybDsKLSAgICBpZiAodXJsLmluZGV4T2Yo
InN5bnRoZXNpemVkLXJlc3BvbnNlLnR4dCIpICE9IC0xKSB7Ci0gICAgICAgIGV2ZW50LnJlc3Bv
bmRXaXRoKG5ldyBSZXNwb25zZShyZXNwb25zZV90ZXh0KSk7Ci0gICAgfSBlbHNlIGlmICh1cmwu
aW5kZXhPZigic3ludGhlc2l6ZWQtcmVzcG9uc2UuanMiKSAhPSAtMSkgewotICAgICAgZXZlbnQu
cmVzcG9uZFdpdGgobmV3IFJlc3BvbnNlKAotICAgICAgICAgIHJlc3BvbnNlX3NjcmlwdCwKLSAg
ICAgICAgICB7aGVhZGVyczogeydDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vamF2YXNjcmlw
dCd9fSkpOwotICAgIH0KK3NlbGYub25mZXRjaCA9IGV2ZW50ID0+IHsKKyAgY29uc3QgdXJsID0g
ZXZlbnQucmVxdWVzdC51cmw7CisgIGlmICh1cmwuaW5kZXhPZignc3ludGhlc2l6ZWQtcmVzcG9u
c2UudHh0JykgIT0gLTEpIHsKKyAgICBldmVudC5yZXNwb25kV2l0aChuZXcgUmVzcG9uc2UocmVz
cG9uc2VfdGV4dCkpOworICB9IGVsc2UgaWYgKHVybC5pbmRleE9mKCdzeW50aGVzaXplZC1yZXNw
b25zZS5qcycpICE9IC0xKSB7CisgICAgZXZlbnQucmVzcG9uZFdpdGgobmV3IFJlc3BvbnNlKAor
ICAgICAgICByZXNwb25zZV9zY3JpcHQsCisgICAgICAgIHtoZWFkZXJzOiB7J0NvbnRlbnQtVHlw
ZSc6ICdhcHBsaWNhdGlvbi9qYXZhc2NyaXB0J319KSk7CisgIH0KIH07CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci9zaGFyZWQtd29ya2VyLWNvbnRyb2xsZWQuaHR0cHMuaHRtbCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL3NoYXJlZC13b3JrZXItY29udHJvbGxlZC5odHRwcy5odG1sCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMzIwYzAyYTRmYTJiODA2NmJjNmY2MDNiZjdhYmMz
ZWVmZTFjM2IzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL3NoYXJlZC13b3JrZXItY29udHJvbGxlZC5odHRwcy5odG1sCisr
KyAvZGV2L251bGwKQEAgLTEsODYgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08dGl0bGU+U2Vy
dmljZSBXb3JrZXI6IGNvbnRyb2xsaW5nIGEgU2hhcmVkV29ya2VyPC90aXRsZT4KLTxzY3JpcHQg
c3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIv
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvdGVzdC1oZWxwZXJzLnN1Yi5qcyI+PC9zY3JpcHQ+Ci08Ym9keT4KLTxzY3JpcHQ+
Ci1wcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewotICAgIHZhciBzaGFyZWRfd29ya2VyID0gJ3Jl
c291cmNlcy9zaGFyZWQtd29ya2VyLWNvbnRyb2xsZWQuanMnOwotICAgIHZhciBzZXJ2aWNlX3dv
cmtlciA9ICdyZXNvdXJjZXMvc2ltcGxlLWludGVyY2VwdC13b3JrZXIuanMnOwotICAgIHZhciBz
Y29wZSA9IHNoYXJlZF93b3JrZXI7Ci0KLSAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdp
c3Rlcl9hbmRfcmVnaXN0ZXIodCwgc2VydmljZV93b3JrZXIsIHNjb3BlKQotICAgICAgLnRoZW4o
ZnVuY3Rpb24ocikgewotICAgICAgICAgIHQuYWRkX2NsZWFudXAoZnVuY3Rpb24oKSB7Ci0gICAg
ICAgICAgICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyKHQsIHNjb3BlKTsKLSAg
ICAgICAgICAgIH0pOwotCi0gICAgICAgICAgcmV0dXJuIHdhaXRfZm9yX3N0YXRlKHQsIHIuaW5z
dGFsbGluZywgJ2FjdGl2YXRlZCcpOwotICAgICAgICB9KQotICAgICAgLnRoZW4oZnVuY3Rpb24o
KSB7Ci0gICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVj
dCkgewotICAgICAgICAgICAgICB2YXIgdyA9IG5ldyBTaGFyZWRXb3JrZXIoc2hhcmVkX3dvcmtl
cik7Ci0gICAgICAgICAgICAgIHcucG9ydC5vbm1lc3NhZ2UgPSBmdW5jdGlvbihlKSB7Ci0gICAg
ICAgICAgICAgICAgcmVzb2x2ZShlLmRhdGEpOwotICAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICB9KTsKLSAgICAgICAgfSkKLSAgICAgIC50aGVuKGZ1bmN0aW9uKGRhdGEpIHsKLSAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKGRhdGEsICdpbnRlcmNlcHRlZCBieSBzZXJ2aWNlIHdvcmtlcicpOwot
ICAgICAgICB9KTsKLSAgfSwgJ1ZlcmlmeSBzdWJyZXNvdXJjZSBsb2FkcyBpbiBTaGFyZWRXb3Jr
ZXIgYXJlIGNvbnRyb2xsZWQgYnkgYSBTZXJ2aWNlIFdvcmtlcicpOwotCi1wcm9taXNlX3Rlc3Qo
ZnVuY3Rpb24odCkgewotICAgIHZhciBzaGFyZWRfd29ya2VyID0gJ3Jlc291cmNlcy9kdW1teS1z
aGFyZWQtd29ya2VyLmpzJzsKLSAgICB2YXIgc2VydmljZV93b3JrZXIgPSAncmVzb3VyY2VzL2R1
bW15LXNoYXJlZC13b3JrZXItaW50ZXJjZXB0b3IuanMnOwotICAgIHZhciBzY29wZSA9IHNoYXJl
ZF93b3JrZXI7Ci0KLSAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVn
aXN0ZXIodCwgc2VydmljZV93b3JrZXIsIHNjb3BlKQotICAgICAgLnRoZW4oZnVuY3Rpb24ocikg
ewotICAgICAgICAgIHQuYWRkX2NsZWFudXAoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgIHJl
dHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyKHQsIHNjb3BlKTsKLSAgICAgICAgICAgIH0p
OwotCi0gICAgICAgICAgcmV0dXJuIHdhaXRfZm9yX3N0YXRlKHQsIHIuaW5zdGFsbGluZywgJ2Fj
dGl2YXRlZCcpOwotICAgICAgICB9KQotICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7Ci0gICAgICAg
ICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgewotICAgICAg
ICAgICAgICB2YXIgdyA9IG5ldyBTaGFyZWRXb3JrZXIoc2hhcmVkX3dvcmtlcik7Ci0gICAgICAg
ICAgICAgIHcucG9ydC5vbm1lc3NhZ2UgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICAgICAg
cmVzb2x2ZShlLmRhdGEpOwotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9KTsKLSAgICAg
ICAgfSkKLSAgICAgIC50aGVuKGZ1bmN0aW9uKGRhdGEpIHsKLSAgICAgICAgICBhc3NlcnRfZXF1
YWxzKGRhdGEsICd3b3JrZXIgbG9hZGluZyBpbnRlcmNlcHRlZCBieSBzZXJ2aWNlIHdvcmtlcicp
OwotICAgICAgICB9KTsKLSAgfSwgJ1ZlcmlmeSBTaGFyZWRXb3JrZXIgY29uc3RydWN0aW9uIGlz
IGNvbnRyb2xsZWQgYnkgYSBTZXJ2aWNlIFdvcmtlcicpOwotCi1wcm9taXNlX3Rlc3QoZnVuY3Rp
b24odCkgewotICAgIHZhciBzaGFyZWRfd29ya2VyID0gJ3Jlc291cmNlcy9zaGFyZWQtd29ya2Vy
LWltcG9ydC5qcyc7Ci0gICAgdmFyIHNlcnZpY2Vfd29ya2VyID0gJ3Jlc291cmNlcy9kdW1teS1z
aGFyZWQtd29ya2VyLWludGVyY2VwdG9yLmpzJzsKLSAgICB2YXIgc2NvcGUgPSBzaGFyZWRfd29y
a2VyOwotCi0gICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVy
KHQsIHNlcnZpY2Vfd29ya2VyLCBzY29wZSkKLSAgICAgIC50aGVuKGZ1bmN0aW9uKHIpIHsKLSAg
ICAgICAgICB0LmFkZF9jbGVhbnVwKGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICByZXR1cm4g
c2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcih0LCBzY29wZSk7Ci0gICAgICAgICAgICB9KTsKLQot
ICAgICAgICAgIHJldHVybiB3YWl0X2Zvcl9zdGF0ZSh0LCByLmluc3RhbGxpbmcsICdhY3RpdmF0
ZWQnKTsKLSAgICAgICAgfSkKLSAgICAgIC50aGVuKGZ1bmN0aW9uKCkgewotICAgICAgICAgIHJl
dHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKLSAgICAgICAgICAg
ICAgdmFyIHcgPSBuZXcgU2hhcmVkV29ya2VyKHNoYXJlZF93b3JrZXIpOwotICAgICAgICAgICAg
ICB3LnBvcnQub25tZXNzYWdlID0gZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgICAgIHJlc29s
dmUoZS5kYXRhKTsKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0p
Ci0gICAgICAudGhlbihmdW5jdGlvbihkYXRhKSB7Ci0gICAgICAgICAgYXNzZXJ0X2VxdWFscyhk
YXRhLCAnd29ya2VyIGxvYWRpbmcgaW50ZXJjZXB0ZWQgYnkgc2VydmljZSB3b3JrZXInKTsKLSAg
ICAgICAgfSk7Ci0gIH0sICdWZXJpZnkgaW1wb3J0U2NyaXB0cyBmcm9tIFNoYXJlZFdvcmtlciBp
cyBjb250cm9sbGVkIGJ5IGEgU2VydmljZSBXb3JrZXInKTsKLTwvc2NyaXB0PgotPC9ib2R5Pgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLWltcG9ydC1zY3JpcHRzLmh0dHBz
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0ZS1pbXBvcnQtc2NyaXB0cy5o
dHRwcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjkyNzIwOTlkOTI1YmJhMmMwMDllZGVjYmY2
ZWVlM2FmMTRmZDgxNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0
ZS1pbXBvcnQtc2NyaXB0cy5odHRwcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACisKK1BB
U1MgdXBkYXRlKCkgc2hvdWxkIGZhaWwgd2hlbiBhIG5ldyB3b3JrZXIgaW1wb3J0cyBhbiB1bmF2
YWlsYWJsZSBzY3JpcHQuIAorUEFTUyB1cGRhdGUoKSBzaG91bGQgc3VjY2VlZCB3aGVuIHRoZSBv
bGQgaW1wb3J0ZWQgc2NyaXB0IG5vIGxvbmdlciBleGlzdCBidXQgdGhlIG5ldyB3b3JrZXIgZG9l
c24ndCBpbXBvcnQgaXQuIAorUEFTUyB1cGRhdGUoKSBzaG91bGQgdHJlYXQgNDA0IG9uIGltcG9y
dGVkIHNjcmlwdHMgYXMgbm8gY2hhbmdlLiAKK0ZBSUwgdXBkYXRlKCkgc2hvdWxkIGZpbmQgYW4g
dXBkYXRlIGluIGFuIGltcG9ydGVkIHNjcmlwdCBidXQgdXBkYXRlKCkgc2hvdWxkIHJlc3VsdCBp
biBmYWlsdXJlIGR1ZSB0byBtaXNzaW5nIHRoZSBvdGhlciBpbXBvcnRlZCBzY3JpcHQuIGFzc2Vy
dF91bnJlYWNoZWQ6IFNob3VsZCBoYXZlIHJlamVjdGVkOiB1bmRlZmluZWQgUmVhY2hlZCB1bnJl
YWNoYWJsZSBjb2RlCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0ZS1pbXBv
cnQtc2NyaXB0cy5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLWltcG9ydC1z
Y3JpcHRzLmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTBiYmIxMmJkNjc1YjYzNjExNmVmNWY4MTQ0
NzkwNGNkZGQ5MjJkOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0
ZS1pbXBvcnQtc2NyaXB0cy5odHRwcy5odG1sCkBAIC0wLDAgKzEsMTI3IEBACis8IURPQ1RZUEUg
aHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5UZXN0cyBmb3IgaW1wb3J0U2Ny
aXB0czogaW1wb3J0IHNjcmlwdHMgaWdub3JlZCBlcnJvcjwvdGl0bGU+Cis8c2NyaXB0IHNyYz0i
L2NvbW1vbi91dGlscy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0
aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVz
c3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Rlc3QtaGVscGVy
cy5zdWIuanMiPjwvc2NyaXB0PgorPGJvZHk+Cis8c2NyaXB0PgorLy8gVGhpcyBmaWxlIGNvbnRh
aW5zIHRlc3RzIHRvIGNoZWNrIGlmIGltcG9ydGVkIHNjcmlwdHMgYXBwcm9wcmlhdGVseSB1cGRh
dGVkLgorCitjb25zdCBTQ09QRSA9ICdyZXNvdXJjZXMvc2ltcGxlLnR4dCc7CisKKy8vIENyZWF0
ZSBhIHNlcnZpY2Ugd29ya2VyICh1cGRhdGUtd29ya2VyLWZyb20tZmlsZS5weSksIHdoaWNoIGlz
IGluaXRpYWxseQorLy8gfGluaXRpYWxfd29ya2VyfCBhbmQgfHVwZGF0ZWRfd29ya2VyfCBsYXRl
ci4KK2FzeW5jIGZ1bmN0aW9uIHByZXBhcmVfcmVhZHlfdXBkYXRlX3dvcmtlcl9mcm9tX2ZpbGUo
CisgICAgdCwgaW5pdGlhbF93b3JrZXIsIHVwZGF0ZWRfd29ya2VyKSB7CisgIGNvbnN0IGtleSA9
IHRva2VuKCk7CisgIGNvbnN0IHdvcmtlcl91cmwgPSBgcmVzb3VyY2VzL3VwZGF0ZS13b3JrZXIt
ZnJvbS1maWxlLnB5P2AgKworICAgICAgYEZpcnN0PSR7aW5pdGlhbF93b3JrZXJ9JlNlY29uZD0k
e3VwZGF0ZWRfd29ya2VyfSZLZXk9JHtrZXl9YDsKKyAgY29uc3QgZXhwZWN0ZWRfdXJsID0gbm9y
bWFsaXplVVJMKHdvcmtlcl91cmwpOworCisgIGNvbnN0IHJlZ2lzdHJhdGlvbiA9IGF3YWl0IHNl
cnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKAorICAgICAgdCwgd29ya2VyX3Vy
bCwgU0NPUEUpOworICBhd2FpdCB3YWl0X2Zvcl9zdGF0ZSh0LCByZWdpc3RyYXRpb24uaW5zdGFs
bGluZywgJ2FjdGl2YXRlZCcpOworICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi5pbnN0YWxs
aW5nLCBudWxsLAorICAgICAgICAgICAgICAgICdwcmVwYXJlX3JlYWR5OiBpbnN0YWxsaW5nJyk7
CisgIGFzc2VydF9lcXVhbHMocmVnaXN0cmF0aW9uLndhaXRpbmcsIG51bGwsCisgICAgICAgICAg
ICAgICAgJ3ByZXBhcmVfcmVhZHk6IHdhaXRpbmcnKTsKKyAgYXNzZXJ0X2VxdWFscyhyZWdpc3Ry
YXRpb24uYWN0aXZlLnNjcmlwdFVSTCwgZXhwZWN0ZWRfdXJsLAorICAgICAgICAgICAgICAgICdw
cmVwYXJlX3JlYWR5OiBhY3RpdmUnKTsKKyAgcmV0dXJuIFtyZWdpc3RyYXRpb24sIGV4cGVjdGVk
X3VybF07Cit9CisKKy8vIENyZWF0ZSBhIHNlcnZpY2Ugd29ya2VyIHVzaW5nIHRoZSBzY3JpcHQg
dW5kZXIgcmVzb3VyY2VzLy4KK2FzeW5jIGZ1bmN0aW9uIHByZXBhcmVfcmVhZHlfbm9ybWFsX3dv
cmtlcih0LCBmaWxlbmFtZSwgYWRkaXRpb25hbF9wYXJhbXM9JycpIHsKKyAgY29uc3Qga2V5ID0g
dG9rZW4oKTsKKyAgY29uc3Qgd29ya2VyX3VybCA9IGByZXNvdXJjZXMvJHtmaWxlbmFtZX0/S2V5
PSR7a2V5fSYke2FkZGl0aW9uYWxfcGFyYW1zfWA7CisgIGNvbnN0IGV4cGVjdGVkX3VybCA9IG5v
cm1hbGl6ZVVSTCh3b3JrZXJfdXJsKTsKKworICBjb25zdCByZWdpc3RyYXRpb24gPSBhd2FpdCBz
ZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3RlcigKKyAgICAgIHQsIHdvcmtlcl91
cmwsIFNDT1BFKTsKKyAgYXdhaXQgd2FpdF9mb3Jfc3RhdGUodCwgcmVnaXN0cmF0aW9uLmluc3Rh
bGxpbmcsICdhY3RpdmF0ZWQnKTsKKyAgYXNzZXJ0X2VxdWFscyhyZWdpc3RyYXRpb24uaW5zdGFs
bGluZywgbnVsbCwKKyAgICAgICAgICAgICAgICAncHJlcGFyZV9yZWFkeTogaW5zdGFsbGluZycp
OworICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi53YWl0aW5nLCBudWxsLAorICAgICAgICAg
ICAgICAgICdwcmVwYXJlX3JlYWR5OiB3YWl0aW5nJyk7CisgIGFzc2VydF9lcXVhbHMocmVnaXN0
cmF0aW9uLmFjdGl2ZS5zY3JpcHRVUkwsIGV4cGVjdGVkX3VybCwKKyAgICAgICAgICAgICAgICAn
cHJlcGFyZV9yZWFkeTogYWN0aXZlJyk7CisgIHJldHVybiBbcmVnaXN0cmF0aW9uLCBleHBlY3Rl
ZF91cmxdOworfQorCitmdW5jdGlvbiBhc3NlcnRfaW5zdGFsbGluZ19hbmRfYWN0aXZlKHJlZ2lz
dHJhdGlvbiwgZXhwZWN0ZWRfdXJsKSB7CisgIGFzc2VydF9lcXVhbHMocmVnaXN0cmF0aW9uLmlu
c3RhbGxpbmcuc2NyaXB0VVJMLCBleHBlY3RlZF91cmwsCisgICAgICAgICAgICAgICAgJ2Fzc2Vy
dF9pbnN0YWxsaW5nX2FuZF9hY3RpdmU6IGluc3RhbGxpbmcnKTsKKyAgYXNzZXJ0X2VxdWFscyhy
ZWdpc3RyYXRpb24ud2FpdGluZywgbnVsbCwKKyAgICAgICAgICAgICAgICAnYXNzZXJ0X2luc3Rh
bGxpbmdfYW5kX2FjdGl2ZTogd2FpdGluZycpOworICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlv
bi5hY3RpdmUuc2NyaXB0VVJMLCBleHBlY3RlZF91cmwsCisgICAgICAgICAgICAgICAgJ2Fzc2Vy
dF9pbnN0YWxsaW5nX2FuZF9hY3RpdmU6IGFjdGl2ZScpOworfQorCitmdW5jdGlvbiBhc3NlcnRf
d2FpdGluZ19hbmRfYWN0aXZlKHJlZ2lzdHJhdGlvbiwgZXhwZWN0ZWRfdXJsKSB7CisgIGFzc2Vy
dF9lcXVhbHMocmVnaXN0cmF0aW9uLmluc3RhbGxpbmcsIG51bGwsCisgICAgICAgICAgICAgICAg
J2Fzc2VydF93YWl0aW5nX2FuZF9hY3RpdmU6IGluc3RhbGxpbmcnKTsKKyAgYXNzZXJ0X2VxdWFs
cyhyZWdpc3RyYXRpb24ud2FpdGluZy5zY3JpcHRVUkwsIGV4cGVjdGVkX3VybCwKKyAgICAgICAg
ICAgICAgICAnYXNzZXJ0X3dhaXRpbmdfYW5kX2FjdGl2ZTogd2FpdGluZycpOworICBhc3NlcnRf
ZXF1YWxzKHJlZ2lzdHJhdGlvbi5hY3RpdmUuc2NyaXB0VVJMLCBleHBlY3RlZF91cmwsCisgICAg
ICAgICAgICAgICAgJ2Fzc2VydF93YWl0aW5nX2FuZF9hY3RpdmU6IGFjdGl2ZScpOworfQorCitm
dW5jdGlvbiBhc3NlcnRfYWN0aXZlX29ubHkocmVnaXN0cmF0aW9uLCBleHBlY3RlZF91cmwpIHsK
KyAgYXNzZXJ0X2VxdWFscyhyZWdpc3RyYXRpb24uaW5zdGFsbGluZywgbnVsbCwKKyAgICAgICAg
ICAgICAgICAnYXNzZXJ0X2FjdGl2ZV9vbmx5OiBpbnN0YWxsaW5nJyk7CisgIGFzc2VydF9lcXVh
bHMocmVnaXN0cmF0aW9uLndhaXRpbmcsIG51bGwsCisgICAgICAgICAgICAgICAgJ2Fzc2VydF9h
Y3RpdmVfb25seTogd2FpdGluZycpOworICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi5hY3Rp
dmUuc2NyaXB0VVJMLCBleHBlY3RlZF91cmwsCisgICAgICAgICAgICAgICAgJ2Fzc2VydF9hY3Rp
dmVfb25seTogYWN0aXZlJyk7Cit9CisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgY29u
c3QgW3JlZ2lzdHJhdGlvbiwgZXhwZWN0ZWRfdXJsXSA9CisgICAgICBhd2FpdCBwcmVwYXJlX3Jl
YWR5X3VwZGF0ZV93b3JrZXJfZnJvbV9maWxlKAorICAgICAgICAgIHQsICdlbXB0eS5qcycsICdp
bXBvcnQtc2NyaXB0cy00MDQuanMnKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiByZWdpc3RyYXRp
b24udW5yZWdpc3RlcigpKTsKKworICBhd2FpdCBwcm9taXNlX3JlamVjdHModCwgbmV3IFR5cGVF
cnJvcigpLCByZWdpc3RyYXRpb24udXBkYXRlKCkpOworICBhc3NlcnRfYWN0aXZlX29ubHkocmVn
aXN0cmF0aW9uLCBleHBlY3RlZF91cmwpOworfSwgJ3VwZGF0ZSgpIHNob3VsZCBmYWlsIHdoZW4g
YSBuZXcgd29ya2VyIGltcG9ydHMgYW4gdW5hdmFpbGFibGUgc2NyaXB0LicpOworCitwcm9taXNl
X3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0IFtyZWdpc3RyYXRpb24sIGV4cGVjdGVkX3VybF0g
PQorICAgICAgYXdhaXQgcHJlcGFyZV9yZWFkeV91cGRhdGVfd29ya2VyX2Zyb21fZmlsZSgKKyAg
ICAgICAgICB0LCAnaW1wb3J0LXNjcmlwdHMtNDA0LWFmdGVyLXVwZGF0ZS5qcycsICdlbXB0eS5q
cycpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHJlZ2lzdHJhdGlvbi51bnJlZ2lzdGVyKCkpOwor
CisgIGF3YWl0IFByb21pc2UuYWxsKFtyZWdpc3RyYXRpb24udXBkYXRlKCksIHdhaXRfZm9yX3Vw
ZGF0ZSh0LCByZWdpc3RyYXRpb24pXSk7CisgIGFzc2VydF9pbnN0YWxsaW5nX2FuZF9hY3RpdmUo
cmVnaXN0cmF0aW9uLCBleHBlY3RlZF91cmwpOworCisgIGF3YWl0IHdhaXRfZm9yX3N0YXRlKHQs
IHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLCAnaW5zdGFsbGVkJyk7CisgIGFzc2VydF93YWl0aW5n
X2FuZF9hY3RpdmUocmVnaXN0cmF0aW9uLCBleHBlY3RlZF91cmwpOworCisgIGF3YWl0IHdhaXRf
Zm9yX3N0YXRlKHQsIHJlZ2lzdHJhdGlvbi53YWl0aW5nLCAnYWN0aXZhdGVkJyk7CisgIGFzc2Vy
dF9hY3RpdmVfb25seShyZWdpc3RyYXRpb24sIGV4cGVjdGVkX3VybCk7Cit9LCAndXBkYXRlKCkg
c2hvdWxkIHN1Y2NlZWQgd2hlbiB0aGUgb2xkIGltcG9ydGVkIHNjcmlwdCBubyBsb25nZXIgZXhp
c3QgYnV0ICcgKworICAgInRoZSBuZXcgd29ya2VyIGRvZXNuJ3QgaW1wb3J0IGl0LiIpOworCitw
cm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0IFtyZWdpc3RyYXRpb24sIGV4cGVjdGVk
X3VybF0gPSBhd2FpdCBwcmVwYXJlX3JlYWR5X25vcm1hbF93b3JrZXIoCisgICAgdCwgJ2ltcG9y
dC1zY3JpcHRzLTQwNC1hZnRlci11cGRhdGUuanMnKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBy
ZWdpc3RyYXRpb24udW5yZWdpc3RlcigpKTsKKworICBhd2FpdCByZWdpc3RyYXRpb24udXBkYXRl
KCk7CisgIGFzc2VydF9hY3RpdmVfb25seShyZWdpc3RyYXRpb24sIGV4cGVjdGVkX3VybCk7Cit9
LCAndXBkYXRlKCkgc2hvdWxkIHRyZWF0IDQwNCBvbiBpbXBvcnRlZCBzY3JpcHRzIGFzIG5vIGNo
YW5nZS4nKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25zdCBbcmVnaXN0cmF0
aW9uLCBleHBlY3RlZF91cmxdID0gYXdhaXQgcHJlcGFyZV9yZWFkeV9ub3JtYWxfd29ya2VyKAor
ICAgIHQsICdpbXBvcnQtc2NyaXB0cy00MDQtYWZ0ZXItdXBkYXRlLXBsdXMtdXBkYXRlLXdvcmtl
ci5qcycsCisgICAgICAgYEFkZGl0aW9uYWxLZXk9JHt0b2tlbigpfWApOworICB0LmFkZF9jbGVh
bnVwKCgpID0+IHJlZ2lzdHJhdGlvbi51bnJlZ2lzdGVyKCkpOworCisgIGF3YWl0IHByb21pc2Vf
cmVqZWN0cyh0LCBuZXcgVHlwZUVycm9yKCksIHJlZ2lzdHJhdGlvbi51cGRhdGUoKSk7CisgIGFz
c2VydF9hY3RpdmVfb25seShyZWdpc3RyYXRpb24sIGV4cGVjdGVkX3VybCk7Cit9LCAndXBkYXRl
KCkgc2hvdWxkIGZpbmQgYW4gdXBkYXRlIGluIGFuIGltcG9ydGVkIHNjcmlwdCBidXQgdXBkYXRl
KCkgc2hvdWxkICcgKworICAgJ3Jlc3VsdCBpbiBmYWlsdXJlIGR1ZSB0byBtaXNzaW5nIHRoZSBv
dGhlciBpbXBvcnRlZCBzY3JpcHQuJyk7Cis8L3NjcmlwdD4KKzwvYm9keT4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0ZS1ub3QtYWxsb3dlZC5odHRwcy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUtbm90LWFsbG93ZWQuaHR0cHMtZXhwZWN0ZWQudHh0
CmluZGV4IGM5NTlhY2Q1YmJhZjg5OTIyNGI3MjQ5YjFiNmI2ZDMwZDY0OWZiMjEuLjc5MWJlMGFi
NzY2OTJmMmZiODdkNjBlODFiNzhmZmE3YWRhZWQ5NWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL3VwZGF0ZS1ub3QtYWxsb3dlZC5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvdXBkYXRlLW5vdC1hbGxvd2VkLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMSw2
ICsxLDUgQEAKIAotSGFybmVzcyBFcnJvciAoVElNRU9VVCksIG1lc3NhZ2UgPSBudWxsCi0KLVBB
U1MgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbi51cGRhdGUoKSBmcm9tIGNsaWVudCB0aHJvd3Mg
d2hpbGUgaW5zdGFsbGluZyBzZXJ2aWNlIHdvcmtlci4gCi1USU1FT1VUIFNlcnZpY2VXb3JrZXJS
ZWdpc3RyYXRpb24udXBkYXRlKCkgZnJvbSBpbnN0YWxsaW5nIHNlcnZpY2Ugd29ya2VyIHRocm93
cy4gVGVzdCB0aW1lZCBvdXQKK1BBU1MgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbi51cGRhdGUo
KSBmcm9tIGNsaWVudCBzdWNjZWVkcyB3aGlsZSBpbnN0YWxsaW5nIHNlcnZpY2Ugd29ya2VyLiAK
K0ZBSUwgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbi51cGRhdGUoKSBmcm9tIGluc3RhbGxpbmcg
c2VydmljZSB3b3JrZXIgdGhyb3dzLiBhc3NlcnRfZmFsc2U6IHVwZGF0ZSgpIHNob3VsZCBoYXZl
IGZhaWxlZC4gZXhwZWN0ZWQgZmFsc2UgZ290IHRydWUKK0ZBSUwgU2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbi51cGRhdGUoKSBmcm9tIGFjdGl2ZSBzZXJ2aWNlIHdvcmtlciBzdWNjZWVkcyB3aGls
ZSBpbnN0YWxsaW5nIHNlcnZpY2Ugd29ya2VyLiBhc3NlcnRfZXF1YWxzOiBTZXJ2aWNlIHdvcmtl
ciBzaG91bGQgYmUgYWN0aXZhdGVkLiBleHBlY3RlZCAicmVkdW5kYW50IiBidXQgZ290ICJhY3Rp
dmF0ZWQiCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0ZS1yZWdpc3RyYXRp
b24td2l0aC10eXBlLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUtcmVnaXN0
cmF0aW9uLXdpdGgtdHlwZS5odHRwcy5odG1sCmluZGV4IGU3ZDM2OTI4MTJlYjhhMjRmMjUzYjg3
ZTE1N2Y0YTQzNjZlMzA5OGUuLjgxMmZhMGI0YzdjZGJkZmNjNDBlY2RmMGY1NDc3Mjg4ZTA0NWZm
YWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0ZS1yZWdpc3RyYXRpb24td2l0
aC10eXBlLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLXJlZ2lzdHJh
dGlvbi13aXRoLXR5cGUuaHR0cHMuaHRtbApAQCAtMiw3ICsyLDcgQEAKIDxtZXRhIGNoYXJzZXQ9
InV0Zi04Ij4KIDx0aXRsZT5TZXJ2aWNlIFdvcmtlcjogVXBkYXRlIHRoZSByZWdpc3RyYXRpb24g
d2l0aCBhIGRpZmZlcmVudCBzY3JpcHQgdHlwZS48L3RpdGxlPgogPCEtLSBjb21tb24uanMgaXMg
Zm9yIGd1aWQoKSAtLT4KLTxzY3JpcHQgc3JjPSIvY29tbW9uL3NlY3VyaXR5LWZlYXR1cmVzL3Jl
c291cmNlcy9jb21tb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9jb21tb24vc2VjdXJp
dHktZmVhdHVyZXMvcmVzb3VyY2VzL2NvbW1vbi5zdWIuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBz
cmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9InJl
c291cmNlcy90ZXN0LWhlbHBlcnMuc3ViLmpzIj48L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL3VwZGF0ZS5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci91cGRhdGUuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IDk2N2YwZjU4NGQ0MDAxMTVlNDZkMWIz
NzAzNzk5MGNlZDUzMjQwZmEuLjEzZDNmZGI0NmYzZjc1NTMyYzZiZmIzOGQxNjhlOWYyMTEzOTlm
YTggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0ZS5odHRwcy1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAt
MSwzICsxLDExIEBACitDT05TT0xFIE1FU1NBR0U6IE5vdCBhbGxvd2VkIHRvIGZvbGxvdyBhIHJl
ZGlyZWN0aW9uIHdoaWxlIGxvYWRpbmcgaHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0My9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3VwZGF0ZS13b3JrZXIucHk/S2V5PWEyNmRi
OWI1LTA2MWQtNDA3OS1hMzEwLTNhNGY5NGUzY2RhNSZNb2RlPXJlZGlyZWN0CitDT05TT0xFIE1F
U1NBR0U6IENhbm5vdCBsb2FkIGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy91cGRhdGUtd29ya2VyLnB5P0tleT1hMjZkYjliNS0w
NjFkLTQwNzktYTMxMC0zYTRmOTRlM2NkYTUmTW9kZT1yZWRpcmVjdCBkdWUgdG8gYWNjZXNzIGNv
bnRyb2wgY2hlY2tzLgogCi1QQVNTIFVwZGF0ZSBhIHJlZ2lzdHJhdGlvbi4gCitQQVNTIHVwZGF0
ZSgpIHNob3VsZCBzdWNjZWVkIHdoZW4gbmV3IHNjcmlwdCBpcyBhdmFpbGFibGUuIAorUEFTUyB1
cGRhdGUoKSBzaG91bGQgZmFpbCB3aGVuIG1pbWUgdHlwZSBpcyBpbnZhbGlkLiAKK0ZBSUwgdXBk
YXRlKCkgc2hvdWxkIGZhaWwgd2hlbiBhIHJlc3BvbnNlIGZvciB0aGUgbWFpbiBzY3JpcHQgaXMg
cmVkaXJlY3QuIGFzc2VydF90aHJvd3M6IGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7IHRocm93IGUg
fSIgdGhyZXcgb2JqZWN0ICJTZWN1cml0eUVycm9yOiBTY3JpcHQgaHR0cHM6Ly9sb2NhbGhvc3Q6
OTQ0My9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3VwZGF0ZS13b3Jr
ZXIucHk/S2V5PWEyNmRiOWI1LTA2MWQtNDA3OS1hMzEwLTNhNGY5NGUzY2RhNSZNb2RlPXJlZGly
ZWN0IGxvYWQgZmFpbGVkIiAoIlNlY3VyaXR5RXJyb3IiKSBleHBlY3RlZCBvYmplY3QgIlR5cGVF
cnJvciIgKCJUeXBlRXJyb3IiKQorUEFTUyB1cGRhdGUoKSBzaG91bGQgZmFpbCB3aGVuIGEgbmV3
IHNjcmlwdCBjb250YWlucyBhIHN5bnRheCBlcnJvci4gCitQQVNTIHVwZGF0ZSgpIHNob3VsZCBy
ZXNvbHZlIHdoZW4gdGhlIGluc3RhbGwgZXZlbnQgdGhyb3dzLiAKK1BBU1MgdXBkYXRlKCkgc2hv
dWxkIGZhaWwgd2hlbiB0aGUgcGVuZGluZyB1bmluc3RhbGwgZmxhZyBpcyBzZXQuIAorUEFTUyB1
cGRhdGUoKSBzaG91bGQgc3VjY2VlZCB3aGVuIHRoZSBzY3JpcHQgc2hyaW5rcy4gCiAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0ZS5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvdXBkYXRlLmh0dHBzLmh0bWwKaW5kZXggNjcxN2Q0ZDdhYzI4OWM4YTE4YjE1MDBlMjE3
OTVmZDE2YzUzMjFlNy4uZjdmYWUzNWVkMjhkN2M4MmMyNjE3NTJjMjJjZDA5MWU0NzM4MDFiMCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLmh0dHBzLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvdXBkYXRlLmh0dHBzLmh0bWwKQEAgLTEsNSArMSw3IEBACiA8IURPQ1RZ
UEUgaHRtbD4KIDx0aXRsZT5TZXJ2aWNlIFdvcmtlcjogUmVnaXN0cmF0aW9uIHVwZGF0ZSgpPC90
aXRsZT4KKzxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciPgorPHNjcmlwdCBzcmM9
Ii9jb21tb24vdXRpbHMuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVz
dGhhcm5lc3MuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5l
c3NyZXBvcnQuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9InJlc291cmNlcy90ZXN0aGFybmVz
cy1oZWxwZXJzLmpzIj48L3NjcmlwdD4KQEAgLTcsMTE1ICs5LDE1NiBAQAogPHNjcmlwdD4KICd1
c2Ugc3RyaWN0JzsKIAotcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKLSAgICB2YXIgc2NvcGUg
PSAncmVzb3VyY2VzL3NpbXBsZS50eHQnOwotICAgIHZhciB3b3JrZXJfdXJsID0gJ3Jlc291cmNl
cy91cGRhdGUtd29ya2VyLnB5JzsKLSAgICB2YXIgZXhwZWN0ZWRfdXJsID0gbm9ybWFsaXplVVJM
KHdvcmtlcl91cmwpOwotICAgIHZhciByZWdpc3RyYXRpb247Ci0KLSAgICByZXR1cm4gc2Vydmlj
ZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgd29ya2VyX3VybCwgc2NvcGUpCi0g
ICAgICAudGhlbihmdW5jdGlvbihyKSB7Ci0gICAgICAgICAgcmVnaXN0cmF0aW9uID0gcjsKLSAg
ICAgICAgICByZXR1cm4gd2FpdF9mb3Jfc3RhdGUodCwgcmVnaXN0cmF0aW9uLmluc3RhbGxpbmcs
ICdhY3RpdmF0ZWQnKTsKLSAgICAgICAgfSkKLSAgICAgIC50aGVuKGZ1bmN0aW9uKCkgewotICAg
ICAgICAgIGFzc2VydF9lcXVhbHMocmVnaXN0cmF0aW9uLmluc3RhbGxpbmcsIG51bGwsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAnaW5zdGFsbGluZyBzaG91bGQgYmUgbnVsbCBpbiB0aGUgaW5p
dGlhbCBzdGF0ZS4nKTsKLSAgICAgICAgICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi53YWl0
aW5nLCBudWxsLAotICAgICAgICAgICAgICAgICAgICAgICAgJ3dhaXRpbmcgc2hvdWxkIGJlIG51
bGwgaW4gdGhlIGluaXRpYWwgc3RhdGUuJyk7Ci0gICAgICAgICAgYXNzZXJ0X2VxdWFscyhyZWdp
c3RyYXRpb24uYWN0aXZlLnNjcmlwdFVSTCwgZXhwZWN0ZWRfdXJsLAotICAgICAgICAgICAgICAg
ICAgICAgICAgJ2FjdGl2ZSBzaG91bGQgZXhpc3QgaW4gdGhlIGluaXRpYWwgc3RhdGUuJyk7Ci0g
ICAgICAgICAgLy8gQSBuZXcgd29ya2VyIChnZW5lcmF0ZWQgYnkgdXBkYXRlLXdvcmtlci5weSkg
c2hvdWxkIGJlIGZvdW5kLgotICAgICAgICAgIC8vIFRoZSByZXR1cm5lZCBwcm9taXNlIHNob3Vs
ZCByZXNvbHZlIHdoZW4gYSBuZXcgd29ya2VyIHNjcmlwdCBpcwotICAgICAgICAgIC8vIGZldGNo
ZWQgYW5kIHN0YXJ0cyBpbnN0YWxsaW5nLgotICAgICAgICAgIHJldHVybiBQcm9taXNlLmFsbChb
cmVnaXN0cmF0aW9uLnVwZGF0ZSgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2Fp
dF9mb3JfdXBkYXRlKHQsIHJlZ2lzdHJhdGlvbildKTsKLSAgICAgICAgfSkKLSAgICAgIC50aGVu
KGZ1bmN0aW9uKCkgewotICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVnaXN0cmF0aW9uLmluc3Rh
bGxpbmcuc2NyaXB0VVJMLCBleHBlY3RlZF91cmwsCi0gICAgICAgICAgICAgICAgICAgICAgICAn
bmV3IGluc3RhbGxpbmcgc2hvdWxkIGJlIHNldCBhZnRlciB1cGRhdGUgcmVzb2x2ZXMuJyk7Ci0g
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhyZWdpc3RyYXRpb24ud2FpdGluZywgbnVsbCwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICd3YWl0aW5nIHNob3VsZCBzdGlsbCBiZSBudWxsIGFmdGVyIHVw
ZGF0ZSByZXNvbHZlcy4nKTsKLSAgICAgICAgICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi5h
Y3RpdmUuc2NyaXB0VVJMLCBleHBlY3RlZF91cmwsCi0gICAgICAgICAgICAgICAgICAgICAgICAn
YWN0aXZlIHNob3VsZCBzdGlsbCBleGlzdCBhZnRlciB1cGRhdGUgZm91bmQuJyk7Ci0gICAgICAg
ICAgcmV0dXJuIHdhaXRfZm9yX3N0YXRlKHQsIHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLCAnaW5z
dGFsbGVkJyk7Ci0gICAgICAgIH0pCi0gICAgICAudGhlbihmdW5jdGlvbigpIHsKLSAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLCBudWxsLAotICAgICAgICAg
ICAgICAgICAgICAgICAgJ2luc3RhbGxpbmcgc2hvdWxkIGJlIG51bGwgYWZ0ZXIgaW5zdGFsbGlu
Zy4nKTsKLSAgICAgICAgICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi53YWl0aW5nLnNjcmlw
dFVSTCwgZXhwZWN0ZWRfdXJsLAotICAgICAgICAgICAgICAgICAgICAgICAgJ3dhaXRpbmcgc2hv
dWxkIGJlIHNldCBhZnRlciBpbnN0YWxsaW5nLicpOwotICAgICAgICAgIGFzc2VydF9lcXVhbHMo
cmVnaXN0cmF0aW9uLmFjdGl2ZS5zY3JpcHRVUkwsIGV4cGVjdGVkX3VybCwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICdhY3RpdmUgc2hvdWxkIHN0aWxsIGV4aXN0IGFmdGVyIGluc3RhbGxpbmcu
Jyk7Ci0gICAgICAgICAgcmV0dXJuIHdhaXRfZm9yX3N0YXRlKHQsIHJlZ2lzdHJhdGlvbi53YWl0
aW5nLCAnYWN0aXZhdGVkJyk7Ci0gICAgICAgIH0pCi0gICAgICAudGhlbihmdW5jdGlvbigpIHsK
LSAgICAgICAgICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLCBudWxsLAot
ICAgICAgICAgICAgICAgICAgICAgICAgJ2luc3RhbGxpbmcgc2hvdWxkIGJlIG51bGwgYWZ0ZXIg
YWN0aXZhdGVkLicpOwotICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVnaXN0cmF0aW9uLndhaXRp
bmcsIG51bGwsCi0gICAgICAgICAgICAgICAgICAgICAgICAnd2FpdGluZyBzaG91bGQgYmUgbnVs
bCBhZnRlciBhY3RpdmF0ZWQuJyk7Ci0gICAgICAgICAgYXNzZXJ0X2VxdWFscyhyZWdpc3RyYXRp
b24uYWN0aXZlLnNjcmlwdFVSTCwgZXhwZWN0ZWRfdXJsLAotICAgICAgICAgICAgICAgICAgICAg
ICAgJ25ldyB3b3JrZXIgc2hvdWxkIGJlIHByb21vdGVkIHRvIGFjdGl2ZS4nKTsKLSAgICAgICAg
fSkKLSAgICAgIC50aGVuKGZ1bmN0aW9uKCkgewotICAgICAgICAgIC8vIEEgbmV3IHdvcmtlcihn
ZW5lcmF0ZWQgYnkgdXBkYXRlLXdvcmtlci5weSkgc2hvdWxkIGJlIGZvdW5kLgotICAgICAgICAg
IC8vIFRoZSByZXR1cm5lZCBwcm9taXNlIHNob3VsZCByZWplY3QgYXMgdXBkYXRlLXdvcmtlci5w
eSBzZXRzIHRoZQotICAgICAgICAgIC8vIG1pbWV0eXBlIHRvIGEgZGlzYWxsb3dlZCB2YWx1ZSBm
b3IgdGhpcyBhdHRlbXB0LgotICAgICAgICAgIHJldHVybiByZWdpc3RyYXRpb24udXBkYXRlKCk7
Ci0gICAgICAgIH0pCi0gICAgICAudGhlbigKLSAgICAgICAgZnVuY3Rpb24oKSB7IGFzc2VydF91
bnJlYWNoZWQoInVwZGF0ZSgpIHNob3VsZCByZWplY3QuIik7IH0sCi0gICAgICAgIGZ1bmN0aW9u
KGUpIHsKLSAgICAgICAgICBhc3NlcnRfdGhyb3dzKCdTZWN1cml0eUVycm9yJywgZnVuY3Rpb24o
KSB7IHRocm93IGU7IH0sCi0gICAgICAgICAgICAgICAgICAgICAgICAnVXNpbmcgYSBkaXNhbGxv
d2VkIG1pbWV0eXBlIHNob3VsZCBtYWtlIHVwZGF0ZSgpICcgKwotICAgICAgICAgICAgICAgICAg
ICAgICAgJ3Byb21pc2UgcmVqZWN0IHdpdGggYSBTZWN1cml0eUVycm9yLicpOwotICAgICAgICAg
IGFzc2VydF9lcXVhbHMocmVnaXN0cmF0aW9uLmFjdGl2ZS5zY3JpcHRVUkwsIGV4cGVjdGVkX3Vy
bCwKLSAgICAgICAgICAgICAgICAgICAgICAgICdhY3RpdmUgc2hvdWxkIHN0aWxsIGV4aXN0IGFm
dGVyIHVwZGF0ZSBmYWlsdXJlLicpOwotCi0gICAgICAgICAgLy8gQSBuZXcgd29ya2VyKGdlbmVy
YXRlZCBieSB1cGRhdGUtd29ya2VyLnB5KSBzaG91bGQgYmUgZm91bmQuCi0gICAgICAgICAgLy8g
VGhlIHJldHVybmVkIHByb21pc2Ugc2hvdWxkIHJlamVjdCBhcyB1cGRhdGUtd29ya2VyLnB5IHJl
dHVybnMKLSAgICAgICAgICAvLyBhIHdvcmtlciBzY3JpcHQgd2l0aCBhIHN5bnRheCBlcnJvci4K
LSAgICAgICAgICByZXR1cm4gcmVnaXN0cmF0aW9uLnVwZGF0ZSgpOwotICAgICAgICB9KQotICAg
ICAgLnRoZW4oCi0gICAgICAgIGZ1bmN0aW9uKCkgeyBhc3NlcnRfdW5yZWFjaGVkKCJ1cGRhdGUo
KSBzaG91bGQgcmVqZWN0LiIpOyB9LAotICAgICAgICBmdW5jdGlvbihlKSB7Ci0gICAgICAgICAg
YXNzZXJ0X3Rocm93cyh7bmFtZTogJ1R5cGVFcnJvcid9LCBmdW5jdGlvbiAoKSB7IHRocm93IGU7
IH0sCi0gICAgICAgICAgICAgICAgICAgICAgICAnQSBzY3JpcHQgc3ludGF4IGVycm9yIHNob3Vs
ZCBtYWtlIHVwZGF0ZSgpICcgKwotICAgICAgICAgICAgICAgICAgICAgICAgJ3Byb21pc2UgcmVq
ZWN0IHdpdGggYSBUeXBlRXJyb3IuJyk7Ci0gICAgICAgICAgYXNzZXJ0X2VxdWFscyhyZWdpc3Ry
YXRpb24uYWN0aXZlLnNjcmlwdFVSTCwgZXhwZWN0ZWRfdXJsLAotICAgICAgICAgICAgICAgICAg
ICAgICAgJ2FjdGl2ZSBzaG91bGQgc3RpbGwgZXhpc3QgYWZ0ZXIgdXBkYXRlIGZhaWx1cmUuJyk7
Ci0KLSAgICAgICAgICAvLyBBIG5ldyB3b3JrZXIoZ2VuZXJhdGVkIGJ5IHVwZGF0ZS13b3JrZXIu
cHkpIHNob3VsZCBiZSBmb3VuZC4KLSAgICAgICAgICAvLyBUaGUgcmV0dXJuZWQgcHJvbWlzZSBz
aG91bGQgbm90IHJlamVjdCwgZXZlbiB0aG91Z2gKLSAgICAgICAgICAvLyB1cGRhdGUtd29ya2Vy
LnB5IHJldHVybnMgYSB3b3JrZXIgc2NyaXB0IHRoYXQgdGhyb3dzIGluIHRoZQotICAgICAgICAg
IC8vIGluc3RhbGwgZXZlbnQgaGFuZGxlci4KLSAgICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwo
W3JlZ2lzdHJhdGlvbi51cGRhdGUoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdh
aXRfZm9yX3VwZGF0ZSh0LCByZWdpc3RyYXRpb24pXSk7Ci0gICAgICAgIH0pCi0gICAgICAudGhl
bihmdW5jdGlvbigpIHsKLSAgICAgICAgICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi5pbnN0
YWxsaW5nLnNjcmlwdFVSTCwgZXhwZWN0ZWRfdXJsLAotICAgICAgICAgICAgICAgICAgICAgICAg
J25ldyBpbnN0YWxsaW5nIHNob3VsZCBiZSBzZXQgYWZ0ZXIgdXBkYXRlIHJlc29sdmVzLicpOwot
ICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVnaXN0cmF0aW9uLndhaXRpbmcsIG51bGwsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAnd2FpdGluZyBzaG91bGQgYmUgbnVsbCBhZnRlciBhY3RpdmF0
ZWQuJyk7Ci0gICAgICAgICAgYXNzZXJ0X2VxdWFscyhyZWdpc3RyYXRpb24uYWN0aXZlLnNjcmlw
dFVSTCwgZXhwZWN0ZWRfdXJsLAotICAgICAgICAgICAgICAgICAgICAgICAgJ2FjdGl2ZSBzaG91
bGQgc3RpbGwgZXhpc3QgYWZ0ZXIgdXBkYXRlIGZvdW5kLicpOwotCi0gICAgICAgICAgLy8gV2Ug
bmVlZCB0byBob2xkIGEgY2xpZW50IGFsaXZlIHNvIHRoYXQgdW5yZWdpc3RlcigpIGJlbG93IGRv
ZXNuJ3QKLSAgICAgICAgICAvLyByZW1vdmUgdGhlIHJlZ2lzdHJhdGlvbiBiZWZvcmUgdXBkYXRl
KCkgaGFzIGhhZCBhIGNoYW5jZSB0byBsb29rCi0gICAgICAgICAgLy8gYXQgdGhlIHBlbmRpbmcg
dW5pbnN0YWxsIGZsYWcuCi0gICAgICAgICAgcmV0dXJuIHdpdGhfaWZyYW1lKHNjb3BlKTsKLSAg
ICAgICAgfSkKLSAgICAgIC50aGVuKGZ1bmN0aW9uKGZyYW1lKSB7Ci0gICAgICAgICAgdC5hZGRf
Y2xlYW51cChmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgZnJhbWUucmVtb3ZlKCk7Ci0gICAg
ICAgICAgICB9KTsKLQotICAgICAgICAgIHJldHVybiBhc3NlcnRfcHJvbWlzZV9yZWplY3RzKAot
ICAgICAgICAgICAgICBQcm9taXNlLmFsbChbcmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIoKSwgcmVn
aXN0cmF0aW9uLnVwZGF0ZSgpXSksCi0gICAgICAgICAgICAgIG5ldyBUeXBlRXJyb3IoKSwKLSAg
ICAgICAgICAgICAgJ0NhbGxpbmcgdXBkYXRlKCkgd2hpbGUgdGhlIHVuaW5zdGFsbGluZyBmbGFn
IGlzIHNldCAnICsKLSAgICAgICAgICAgICAgJ3Nob3VsZCByZXR1cm4gYSBwcm9taXNlIHRoYXQg
cmVqZWN0cyB3aXRoIGEgVHlwZUVycm9yLicpOwotICAgICAgICB9KTsKLSAgfSwgJ1VwZGF0ZSBh
IHJlZ2lzdHJhdGlvbi4nKTsKK2NvbnN0IFNDT1BFID0gJ3Jlc291cmNlcy9zaW1wbGUudHh0JzsK
KworLy8gQ3JlYXRlIGEgc2VydmljZSB3b3JrZXIgKHVwZGF0ZS13b3JrZXIucHkpLiBUaGUgcmVz
cG9uc2UgdG8gdXBkYXRlKCkgd2lsbCBiZQorLy8gZGlmZmVyZW50IGJhc2VkIG9uIHRoZSBtb2Rl
LgorYXN5bmMgZnVuY3Rpb24gcHJlcGFyZV9yZWFkeV9yZWdpc3RyYXRpb25fd2l0aF9tb2RlKHQs
IG1vZGUpIHsKKyAgY29uc3Qga2V5ID0gdG9rZW4oKTsKKyAgY29uc3Qgd29ya2VyX3VybCA9IGBy
ZXNvdXJjZXMvdXBkYXRlLXdvcmtlci5weT9LZXk9JHtrZXl9Jk1vZGU9JHttb2RlfWA7CisgIGNv
bnN0IGV4cGVjdGVkX3VybCA9IG5vcm1hbGl6ZVVSTCh3b3JrZXJfdXJsKTsKKyAgY29uc3QgcmVn
aXN0cmF0aW9uID0gYXdhaXQgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIo
CisgICAgICB0LCB3b3JrZXJfdXJsLCBTQ09QRSk7CisgIGF3YWl0IHdhaXRfZm9yX3N0YXRlKHQs
IHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7CisgIGFzc2VydF9lcXVhbHMo
cmVnaXN0cmF0aW9uLmluc3RhbGxpbmcsIG51bGwsCisgICAgICAgICAgICAgICAgJ3ByZXBhcmVf
cmVhZHk6IGluc3RhbGxpbmcnKTsKKyAgYXNzZXJ0X2VxdWFscyhyZWdpc3RyYXRpb24ud2FpdGlu
ZywgbnVsbCwKKyAgICAgICAgICAgICAgICAncHJlcGFyZV9yZWFkeTogd2FpdGluZycpOworICBh
c3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi5hY3RpdmUuc2NyaXB0VVJMLCBleHBlY3RlZF91cmws
CisgICAgICAgICAgICAgICAgJ3ByZXBhcmVfcmVhZHk6IGFjdGl2ZScpOworICByZXR1cm4gW3Jl
Z2lzdHJhdGlvbiwgZXhwZWN0ZWRfdXJsXTsKK30KKworLy8gQ3JlYXRlIGEgc2VydmljZSB3b3Jr
ZXIgKHVwZGF0ZS13b3JrZXItZnJvbS1maWxlLnB5KSwgd2hpY2ggaXMgaW5pdGlhbGx5CisvLyB8
aW5pdGlhbF93b3JrZXJ8IGFuZCB8dXBkYXRlZF93b3JrZXJ8IGxhdGVyLgorYXN5bmMgZnVuY3Rp
b24gcHJlcGFyZV9yZWFkeV9yZWdpc3RyYXRpb25fd2l0aF9maWxlKAorICAgIHQsIGluaXRpYWxf
d29ya2VyLCB1cGRhdGVkX3dvcmtlcikgeworICBjb25zdCBrZXkgPSB0b2tlbigpOworICBjb25z
dCB3b3JrZXJfdXJsID0gYHJlc291cmNlcy91cGRhdGUtd29ya2VyLWZyb20tZmlsZS5weT9gICsK
KyAgICAgIGBGaXJzdD0ke2luaXRpYWxfd29ya2VyfSZTZWNvbmQ9JHt1cGRhdGVkX3dvcmtlcn0m
S2V5PSR7a2V5fWA7CisgIGNvbnN0IGV4cGVjdGVkX3VybCA9IG5vcm1hbGl6ZVVSTCh3b3JrZXJf
dXJsKTsKKworICBjb25zdCByZWdpc3RyYXRpb24gPSBhd2FpdCBzZXJ2aWNlX3dvcmtlcl91bnJl
Z2lzdGVyX2FuZF9yZWdpc3RlcigKKyAgICAgIHQsIHdvcmtlcl91cmwsIFNDT1BFKTsKKyAgYXdh
aXQgd2FpdF9mb3Jfc3RhdGUodCwgcmVnaXN0cmF0aW9uLmluc3RhbGxpbmcsICdhY3RpdmF0ZWQn
KTsKKyAgYXNzZXJ0X2VxdWFscyhyZWdpc3RyYXRpb24uaW5zdGFsbGluZywgbnVsbCwKKyAgICAg
ICAgICAgICAgICAncHJlcGFyZV9yZWFkeTogaW5zdGFsbGluZycpOworICBhc3NlcnRfZXF1YWxz
KHJlZ2lzdHJhdGlvbi53YWl0aW5nLCBudWxsLAorICAgICAgICAgICAgICAgICdwcmVwYXJlX3Jl
YWR5OiB3YWl0aW5nJyk7CisgIGFzc2VydF9lcXVhbHMocmVnaXN0cmF0aW9uLmFjdGl2ZS5zY3Jp
cHRVUkwsIGV4cGVjdGVkX3VybCwKKyAgICAgICAgICAgICAgICAncHJlcGFyZV9yZWFkeTogYWN0
aXZlJyk7CisgIHJldHVybiBbcmVnaXN0cmF0aW9uLCBleHBlY3RlZF91cmxdOworfQorCitmdW5j
dGlvbiBhc3NlcnRfaW5zdGFsbGluZ19hbmRfYWN0aXZlKHJlZ2lzdHJhdGlvbiwgZXhwZWN0ZWRf
dXJsKSB7CisgIGFzc2VydF9lcXVhbHMocmVnaXN0cmF0aW9uLmluc3RhbGxpbmcuc2NyaXB0VVJM
LCBleHBlY3RlZF91cmwsCisgICAgICAgICAgICAgICAgJ2Fzc2VydF9pbnN0YWxsaW5nX2FuZF9h
Y3RpdmU6IGluc3RhbGxpbmcnKTsKKyAgYXNzZXJ0X2VxdWFscyhyZWdpc3RyYXRpb24ud2FpdGlu
ZywgbnVsbCwKKyAgICAgICAgICAgICAgICAnYXNzZXJ0X2luc3RhbGxpbmdfYW5kX2FjdGl2ZTog
d2FpdGluZycpOworICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi5hY3RpdmUuc2NyaXB0VVJM
LCBleHBlY3RlZF91cmwsCisgICAgICAgICAgICAgICAgJ2Fzc2VydF9pbnN0YWxsaW5nX2FuZF9h
Y3RpdmU6IGFjdGl2ZScpOworfQorCitmdW5jdGlvbiBhc3NlcnRfd2FpdGluZ19hbmRfYWN0aXZl
KHJlZ2lzdHJhdGlvbiwgZXhwZWN0ZWRfdXJsKSB7CisgIGFzc2VydF9lcXVhbHMocmVnaXN0cmF0
aW9uLmluc3RhbGxpbmcsIG51bGwsCisgICAgICAgICAgICAgICAgJ2Fzc2VydF93YWl0aW5nX2Fu
ZF9hY3RpdmU6IGluc3RhbGxpbmcnKTsKKyAgYXNzZXJ0X2VxdWFscyhyZWdpc3RyYXRpb24ud2Fp
dGluZy5zY3JpcHRVUkwsIGV4cGVjdGVkX3VybCwKKyAgICAgICAgICAgICAgICAnYXNzZXJ0X3dh
aXRpbmdfYW5kX2FjdGl2ZTogd2FpdGluZycpOworICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlv
bi5hY3RpdmUuc2NyaXB0VVJMLCBleHBlY3RlZF91cmwsCisgICAgICAgICAgICAgICAgJ2Fzc2Vy
dF93YWl0aW5nX2FuZF9hY3RpdmU6IGFjdGl2ZScpOworfQorCitmdW5jdGlvbiBhc3NlcnRfYWN0
aXZlX29ubHkocmVnaXN0cmF0aW9uLCBleHBlY3RlZF91cmwpIHsKKyAgYXNzZXJ0X2VxdWFscyhy
ZWdpc3RyYXRpb24uaW5zdGFsbGluZywgbnVsbCwKKyAgICAgICAgICAgICAgICAnYXNzZXJ0X2Fj
dGl2ZV9vbmx5OiBpbnN0YWxsaW5nJyk7CisgIGFzc2VydF9lcXVhbHMocmVnaXN0cmF0aW9uLndh
aXRpbmcsIG51bGwsCisgICAgICAgICAgICAgICAgJ2Fzc2VydF9hY3RpdmVfb25seTogd2FpdGlu
ZycpOworICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi5hY3RpdmUuc2NyaXB0VVJMLCBleHBl
Y3RlZF91cmwsCisgICAgICAgICAgICAgICAgJ2Fzc2VydF9hY3RpdmVfb25seTogYWN0aXZlJyk7
Cit9CisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgY29uc3QgW3JlZ2lzdHJhdGlvbiwg
ZXhwZWN0ZWRfdXJsXSA9CisgICAgICBhd2FpdCBwcmVwYXJlX3JlYWR5X3JlZ2lzdHJhdGlvbl93
aXRoX21vZGUodCwgJ25vcm1hbCcpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHJlZ2lzdHJhdGlv
bi51bnJlZ2lzdGVyKCkpOworCisgIGF3YWl0IFByb21pc2UuYWxsKFtyZWdpc3RyYXRpb24udXBk
YXRlKCksIHdhaXRfZm9yX3VwZGF0ZSh0LCByZWdpc3RyYXRpb24pXSk7CisgIGFzc2VydF9pbnN0
YWxsaW5nX2FuZF9hY3RpdmUocmVnaXN0cmF0aW9uLCBleHBlY3RlZF91cmwpOworCisgIGF3YWl0
IHdhaXRfZm9yX3N0YXRlKHQsIHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLCAnaW5zdGFsbGVkJyk7
CisgIGFzc2VydF93YWl0aW5nX2FuZF9hY3RpdmUocmVnaXN0cmF0aW9uLCBleHBlY3RlZF91cmwp
OworCisgIGF3YWl0IHdhaXRfZm9yX3N0YXRlKHQsIHJlZ2lzdHJhdGlvbi53YWl0aW5nLCAnYWN0
aXZhdGVkJyk7CisgIGFzc2VydF9hY3RpdmVfb25seShyZWdpc3RyYXRpb24sIGV4cGVjdGVkX3Vy
bCk7Cit9LCAndXBkYXRlKCkgc2hvdWxkIHN1Y2NlZWQgd2hlbiBuZXcgc2NyaXB0IGlzIGF2YWls
YWJsZS4nKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25zdCBbcmVnaXN0cmF0
aW9uLCBleHBlY3RlZF91cmxdID0KKyAgICAgIGF3YWl0IHByZXBhcmVfcmVhZHlfcmVnaXN0cmF0
aW9uX3dpdGhfbW9kZSh0LCAnYmFkX21pbWVfdHlwZScpOworICB0LmFkZF9jbGVhbnVwKCgpID0+
IHJlZ2lzdHJhdGlvbi51bnJlZ2lzdGVyKCkpOworCisgIGF3YWl0IHByb21pc2VfcmVqZWN0cyh0
LCAnU2VjdXJpdHlFcnJvcicsIHJlZ2lzdHJhdGlvbi51cGRhdGUoKSk7CisgIGFzc2VydF9hY3Rp
dmVfb25seShyZWdpc3RyYXRpb24sIGV4cGVjdGVkX3VybCk7Cit9LCAndXBkYXRlKCkgc2hvdWxk
IGZhaWwgd2hlbiBtaW1lIHR5cGUgaXMgaW52YWxpZC4nKTsKKworcHJvbWlzZV90ZXN0KGFzeW5j
IHQgPT4geworICBjb25zdCBbcmVnaXN0cmF0aW9uLCBleHBlY3RlZF91cmxdID0KKyAgICAgIGF3
YWl0IHByZXBhcmVfcmVhZHlfcmVnaXN0cmF0aW9uX3dpdGhfbW9kZSh0LCAncmVkaXJlY3QnKTsK
KyAgdC5hZGRfY2xlYW51cCgoKSA9PiByZWdpc3RyYXRpb24udW5yZWdpc3RlcigpKTsKKworICBh
d2FpdCBwcm9taXNlX3JlamVjdHModCwgbmV3IFR5cGVFcnJvcigpLCByZWdpc3RyYXRpb24udXBk
YXRlKCkpOworICBhc3NlcnRfYWN0aXZlX29ubHkocmVnaXN0cmF0aW9uLCBleHBlY3RlZF91cmwp
OworfSwgJ3VwZGF0ZSgpIHNob3VsZCBmYWlsIHdoZW4gYSByZXNwb25zZSBmb3IgdGhlIG1haW4g
c2NyaXB0IGlzIHJlZGlyZWN0LicpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNv
bnN0IFtyZWdpc3RyYXRpb24sIGV4cGVjdGVkX3VybF0gPQorICAgICAgYXdhaXQgcHJlcGFyZV9y
ZWFkeV9yZWdpc3RyYXRpb25fd2l0aF9tb2RlKHQsICdzeW50YXhfZXJyb3InKTsKKyAgdC5hZGRf
Y2xlYW51cCgoKSA9PiByZWdpc3RyYXRpb24udW5yZWdpc3RlcigpKTsKKworICBhd2FpdCBwcm9t
aXNlX3JlamVjdHModCwgbmV3IFR5cGVFcnJvcigpLCByZWdpc3RyYXRpb24udXBkYXRlKCkpOwor
ICBhc3NlcnRfYWN0aXZlX29ubHkocmVnaXN0cmF0aW9uLCBleHBlY3RlZF91cmwpOworfSwgJ3Vw
ZGF0ZSgpIHNob3VsZCBmYWlsIHdoZW4gYSBuZXcgc2NyaXB0IGNvbnRhaW5zIGEgc3ludGF4IGVy
cm9yLicpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0IFtyZWdpc3RyYXRp
b24sIGV4cGVjdGVkX3VybF0gPQorICAgICAgYXdhaXQgcHJlcGFyZV9yZWFkeV9yZWdpc3RyYXRp
b25fd2l0aF9tb2RlKHQsICd0aHJvd19pbnN0YWxsJyk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4g
cmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIoKSk7CisKKyAgYXdhaXQgUHJvbWlzZS5hbGwoW3JlZ2lz
dHJhdGlvbi51cGRhdGUoKSwgd2FpdF9mb3JfdXBkYXRlKHQsIHJlZ2lzdHJhdGlvbildKTsKKyAg
YXNzZXJ0X2luc3RhbGxpbmdfYW5kX2FjdGl2ZShyZWdpc3RyYXRpb24sIGV4cGVjdGVkX3VybCk7
Cit9LCAndXBkYXRlKCkgc2hvdWxkIHJlc29sdmUgd2hlbiB0aGUgaW5zdGFsbCBldmVudCB0aHJv
d3MuJyk7CisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgY29uc3QgW3JlZ2lzdHJhdGlv
biwgZXhwZWN0ZWRfdXJsXSA9CisgICAgICBhd2FpdCBwcmVwYXJlX3JlYWR5X3JlZ2lzdHJhdGlv
bl93aXRoX21vZGUodCwgJ25vcm1hbCcpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHJlZ2lzdHJh
dGlvbi51bnJlZ2lzdGVyKCkpOworCisgIC8vIFdlIG5lZWQgdG8gaG9sZCBhIGNsaWVudCBhbGl2
ZSBzbyB0aGF0IHVucmVnaXN0ZXIoKSBiZWxvdyBkb2Vzbid0IHJlbW92ZQorICAvLyB0aGUgcmVn
aXN0cmF0aW9uIGJlZm9yZSB1cGRhdGUoKSBoYXMgaGFkIGEgY2hhbmNlIHRvIGxvb2sgYXQgdGhl
IHBlbmRpbmcKKyAgLy8gdW5pbnN0YWxsIGZsYWcuCisgIGNvbnN0IGZyYW1lID0gYXdhaXQgd2l0
aF9pZnJhbWUoU0NPUEUpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IGZyYW1lLnJlbW92ZSgpKTsK
KworICBhd2FpdCBwcm9taXNlX3JlamVjdHMoCisgICAgICB0LCBuZXcgVHlwZUVycm9yKCksCisg
ICAgICBQcm9taXNlLmFsbChbcmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIoKSwgcmVnaXN0cmF0aW9u
LnVwZGF0ZSgpXSkpOworfSwgJ3VwZGF0ZSgpIHNob3VsZCBmYWlsIHdoZW4gdGhlIHBlbmRpbmcg
dW5pbnN0YWxsIGZsYWcgaXMgc2V0LicpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7Cisg
IGNvbnN0IFtyZWdpc3RyYXRpb24sIGV4cGVjdGVkX3VybF0gPQorICAgICAgYXdhaXQgcHJlcGFy
ZV9yZWFkeV9yZWdpc3RyYXRpb25fd2l0aF9maWxlKAorICAgICAgICB0LAorICAgICAgICAndXBk
YXRlLXNtYWxsZXItYm9keS1iZWZvcmUtdXBkYXRlLXdvcmtlci5qcycsCisgICAgICAgICd1cGRh
dGUtc21hbGxlci1ib2R5LWFmdGVyLXVwZGF0ZS13b3JrZXIuanMnKTsKKyAgdC5hZGRfY2xlYW51
cCgoKSA9PiByZWdpc3RyYXRpb24udW5yZWdpc3RlcigpKTsKKworICBhd2FpdCBQcm9taXNlLmFs
bChbcmVnaXN0cmF0aW9uLnVwZGF0ZSgpLCB3YWl0X2Zvcl91cGRhdGUodCwgcmVnaXN0cmF0aW9u
KV0pOworICBhc3NlcnRfaW5zdGFsbGluZ19hbmRfYWN0aXZlKHJlZ2lzdHJhdGlvbiwgZXhwZWN0
ZWRfdXJsKTsKKworICBhd2FpdCB3YWl0X2Zvcl9zdGF0ZSh0LCByZWdpc3RyYXRpb24uaW5zdGFs
bGluZywgJ2luc3RhbGxlZCcpOworICBhc3NlcnRfd2FpdGluZ19hbmRfYWN0aXZlKHJlZ2lzdHJh
dGlvbiwgZXhwZWN0ZWRfdXJsKTsKKworICBhd2FpdCB3YWl0X2Zvcl9zdGF0ZSh0LCByZWdpc3Ry
YXRpb24ud2FpdGluZywgJ2FjdGl2YXRlZCcpOworICBhc3NlcnRfYWN0aXZlX29ubHkocmVnaXN0
cmF0aW9uLCBleHBlY3RlZF91cmwpOworfSwgJ3VwZGF0ZSgpIHNob3VsZCBzdWNjZWVkIHdoZW4g
dGhlIHNjcmlwdCBzaHJpbmtzLicpOwogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3czYy1pbXBvcnQubG9n
CmluZGV4IGEzM2VmMDViNGJjMDc3MjhiMTk4NzYzZmU5YmZmMTQ0OTNkZThhMGYuLjE4YmEyNWQ0
MmIzZTM0YjRmNWU0ZmUxNTMwM2NlMzJhMTA5MzQ2MjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL3czYy1pbXBvcnQubG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3czYy1pbXBvcnQu
bG9nCkBAIC0zNyw2ICszNyw3IEBAIExpc3Qgb2YgZmlsZXM6CiAvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
Y2xpZW50cy1nZXQuaHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsaWVudHMtbWF0Y2hh
bGwtY2xpZW50LXR5cGVzLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGllbnRzLW1h
dGNoYWxsLWV4YWN0LWNvbnRyb2xsZXIuaHR0cHMuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2Ns
aWVudHMtbWF0Y2hhbGwtZnJvemVuLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGll
bnRzLW1hdGNoYWxsLWluY2x1ZGUtdW5jb250cm9sbGVkLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9jbGllbnRzLW1hdGNoYWxsLW9uLWV2YWx1YXRpb24uaHR0cHMuaHRtbAogL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL2NsaWVudHMtbWF0Y2hhbGwtb3JkZXIuaHR0cHMuaHRtbApAQCAtMTAyLDYg
KzEwMyw3IEBAIExpc3Qgb2YgZmlsZXM6CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtd2FpdHMt
Zm9yLWFjdGl2YXRlLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9nZXRyZWdpc3RyYXRp
b24uaHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2dldHJlZ2lzdHJhdGlvbnMuaHR0cHMu
aHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2dsb2JhbC1zZXJ2aWNld29ya2VyLmh0dHBzLmFueS5q
cwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL2h0dHAtdG8taHR0cHMtcmVkaXJlY3QtYW5kLXJlZ2lzdGVy
Lmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9pbW11dGFibGUtcHJvdG90eXBlLXNlcnZp
Y2V3b3JrZXIuaHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ltcG9ydC1tb2R1bGUtc2Ny
aXB0cy5odHRwcy5odG1sCkBAIC0xNzAsNyArMTcyLDYgQEAgTGlzdCBvZiBmaWxlczoKIC9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9zZXJ2aWNlLXdvcmtlci1oZWFkZXIuaHR0cHMuaHRtbAogL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL3NlcnZpY2V3b3JrZXItbWVzc2FnZS1ldmVudC1oaXN0b3JpY2FsLmh0dHBzLmh0
bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9zZXJ2aWNld29ya2Vyb2JqZWN0LXNjcmlwdHVybC5odHRw
cy5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvc2hhcmVkLXdvcmtlci1jb250cm9sbGVkLmh0dHBz
Lmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9za2lwLXdhaXRpbmctaW5zdGFsbGVkLmh0dHBzLmh0
bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9za2lwLXdhaXRpbmctdXNpbmctcmVnaXN0cmF0aW9uLmh0
dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9za2lwLXdhaXRpbmctd2l0aG91dC1jbGllbnQu
aHR0cHMuaHRtbApAQCAtMTg5LDYgKzE5MCw3IEBAIExpc3Qgb2YgZmlsZXM6CiAvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvdXBkYXRlLWFmdGVyLW5hdmlnYXRpb24tcmVkaXJlY3QuaHR0cHMuaHRtbAogL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL3VwZGF0ZS1hZnRlci1vbmVkYXkuaHR0cHMuaHRtbAogL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL3VwZGF0ZS1ieXRlY2hlY2suaHR0cHMuaHRtbAorL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L3VwZGF0ZS1pbXBvcnQtc2NyaXB0cy5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBk
YXRlLW1pc3NpbmctaW1wb3J0LXNjcmlwdHMuaHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L3VwZGF0ZS1uby1jYWNoZS1yZXF1ZXN0LWhlYWRlcnMuaHR0cHMuaHRtbAogL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL3VwZGF0ZS1ub3QtYWxsb3dlZC5odHRwcy5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci93ZWJzb2NrZXQuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvd2Vic29ja2V0Lmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCBjY2QzNzZmYmQxNDBlNmNjMjUx
YTUyMDY0MjczMGRjMWE5ZTg2NzhmLi4yNTFjYmE5ZTAzMTk3OGViY2QzNjk1NTk3MGI3MjAwOGJk
MWVlOWVlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci93ZWJzb2NrZXQuaHR0cHMtZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3dlYnNvY2tldC5odHRwcy1leHBlY3Rl
ZC50eHQKQEAgLTEsNiArMSwzIEBACi1DT05TT0xFIE1FU1NBR0U6IFdlYlNvY2tldCBuZXR3b3Jr
IGVycm9yOiBPU1N0YXR1cyBFcnJvciAtOTgwNzogSW52YWxpZCBjZXJ0aWZpY2F0ZSBjaGFpbiAK
LUNPTlNPTEUgTUVTU0FHRTogV2ViU29ja2V0IG5ldHdvcmsgZXJyb3I6IE9TU3RhdHVzIEVycm9y
IC05ODA3OiBJbnZhbGlkIGNlcnRpZmljYXRlIGNoYWluIAogCi0KLUZBSUwgVmVyaWZ5IFdlYlNv
Y2tldCBoYW5kc2hha2UgY2hhbm5lbCBkb2VzIG5vdCBnZXQgaW50ZXJjZXB0ZWQgcHJvbWlzZV90
ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiW29iamVjdCBFdmVu
dF0iCitQQVNTIFZlcmlmeSBXZWJTb2NrZXQgaGFuZHNoYWtlIGNoYW5uZWwgZG9lcyBub3QgZ2V0
IGludGVyY2VwdGVkIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci93b3JrZXItY2xp
ZW50LWlkLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3dvcmtlci1jbGll
bnQtaWQuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IDEwYzllMjRkOTk3ZDk2OTg3NzQzNWIwZmY2
MWYxMDI2ODcwZjYxMjIuLjAyYjgxMTIwYTlkNWY4OWMzMGFiMTZhOTMzZDE1ZDc2YTIxY2RhYjkg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3dvcmtlci1jbGllbnQtaWQuaHR0cHMtZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3dvcmtlci1jbGllbnQtaWQuaHR0cHMt
ZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsMyBAQAogCi1GQUlMIFZlcmlmeSB3b3JrZXJzIGhhdmUg
YSB1bmlxdWUgY2xpZW50IGlkIHNlcGFyYXRlIGZyb20gdGhlaXIgb3duaW5nIGRvY3VtZW50cyB3
aW5kb3cgYXNzZXJ0X25vdF9lcXVhbHM6IGZyYW1lIGFuZCB3b3JrZXIgY2xpZW50IGlkcyBzaG91
bGQgYmUgZGlmZmVyZW50IGdvdCBkaXNhbGxvd2VkIHZhbHVlICIxLTE5IgorRkFJTCBWZXJpZnkg
d29ya2VycyBoYXZlIGEgdW5pcXVlIGNsaWVudCBpZCBzZXBhcmF0ZSBmcm9tIHRoZWlyIG93bmlu
ZyBkb2N1bWVudHMgd2luZG93IGFzc2VydF9ub3RfZXF1YWxzOiBmcmFtZSBhbmQgd29ya2VyIGNs
aWVudCBpZHMgc2hvdWxkIGJlIGRpZmZlcmVudCBnb3QgZGlzYWxsb3dlZCB2YWx1ZSAiNC0zNDA4
IgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci93b3JrZXItaW50ZXJjZXB0aW9uLmh0
dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3dvcmtlci1pbnRlcmNlcHRpb24u
aHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IGI0ZWQ0ZWU5YTE3NDVlYzMyODE2YWRjMWRjZGNiYmZh
OGY3MWMwMjkuLjU0M2UwMzc1ZWRiYTI1MmQ4YzUzZmU1OTc0MTAwZDFjM2U1Mjg1MTMgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3dvcmtlci1pbnRlcmNlcHRpb24uaHR0cHMtZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3dvcmtlci1pbnRlcmNlcHRpb24uaHR0cHMt
ZXhwZWN0ZWQudHh0CkBAIC0xLDggKzEsMTYgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxOiBS
ZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogV29ya2VyCiAKLUZBSUwgVmVyaWZ5
IHdvcmtlciBzY3JpcHQgZnJvbSB1bmNvbnRyb2xsZWQgZG9jdW1lbnQgaXMgaW50ZXJjZXB0ZWQg
YnkgU2VydmljZSBXb3JrZXIgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGgg
dmFsdWU6IHVuZGVmaW5lZAotRkFJTCBWZXJpZnkgd29ya2VyIHNjcmlwdCBpbnRlcmNlcHRlZCBi
eSBzYW1lLW9yaWdpbiByZXNwb25zZSBzdWNjZWVkcyBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCBy
ZWplY3Rpb24gd2l0aCB2YWx1ZTogdW5kZWZpbmVkCi1QQVNTIFZlcmlmeSB3b3JrZXIgc2NyaXB0
IGludGVyY2VwdGVkIGJ5IGNvcnMgcmVzcG9uc2UgZmFpbHMgCi1QQVNTIFZlcmlmeSB3b3JrZXIg
c2NyaXB0IGludGVyY2VwdGVkIGJ5IG5vLWNvcnMgY3Jvc3Mtb3JpZ2luIHJlc3BvbnNlIGZhaWxz
IAotRkFJTCBWZXJpZnkgd29ya2VyIGxvYWRzIGZyb20gY29udHJvbGxlZCBkb2N1bWVudCBhcmUg
aW50ZXJjZXB0ZWQgYnkgU2VydmljZSBXb3JrZXIgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgImZp
bmlzaCIgYnV0IGdvdCAiZmFpbHVyZTpbb2JqZWN0IEVycm9yRXZlbnRdIgorRkFJTCBWZXJpZnkg
YSBkZWRpY2F0ZWQgd29ya2VyIHNjcmlwdCByZXF1ZXN0IGlzc3VlZCBmcm9tIGEgdW5jb250cm9s
bGVkIGRvY3VtZW50IGlzIGludGVyY2VwdGVkIGJ5IHdvcmtlcidzIG93biBzZXJ2aWNlIHdvcmtl
ci4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IHVuZGVmaW5l
ZAorRkFJTCBWZXJpZnkgYSBzaGFyZWQgd29ya2VyIHNjcmlwdCByZXF1ZXN0IGlzc3VlZCBmcm9t
IGEgdW5jb250cm9sbGVkIGRvY3VtZW50IGlzIGludGVyY2VwdGVkIGJ5IHdvcmtlcidzIG93biBz
ZXJ2aWNlIHdvcmtlci4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFs
dWU6IG9iamVjdCAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IFNoYXJlZFdv
cmtlciIKK0ZBSUwgVmVyaWZ5IGEgc2FtZS1vcmlnaW4gd29ya2VyIHNjcmlwdCBzZXJ2ZWQgYnkg
YSBzZXJ2aWNlIHdvcmtlciBzdWNjZWVkcyBpbiBzdGFydGluZyBhIGRlZGljYXRlZCB3b3JrZXIu
IHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiB1bmRlZmluZWQK
K0ZBSUwgVmVyaWZ5IGEgc2FtZS1vcmlnaW4gd29ya2VyIHNjcmlwdCBzZXJ2ZWQgYnkgYSBzZXJ2
aWNlIHdvcmtlciBzdWNjZWVkcyBpbiBzdGFydGluZyBhIHNoYXJlZCB3b3JrZXIuIHByb21pc2Vf
dGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlJlZmVyZW5jZUVy
cm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBTaGFyZWRXb3JrZXIiCitQQVNTIFZlcmlmeSBhIGNv
cnMgd29ya2VyIHNjcmlwdCBzZXJ2ZWQgYnkgYSBzZXJ2aWNlIHdvcmtlciBmYWlscyBkZWRpY2F0
ZWQgd29ya2VyIHN0YXJ0LiAKK0ZBSUwgVmVyaWZ5IGEgY29ycyB3b3JrZXIgc2NyaXB0IHNlcnZl
ZCBieSBhIHNlcnZpY2Ugd29ya2VyIGZhaWxzIHNoYXJlZCB3b3JrZXIgc3RhcnQuIHByb21pc2Vf
dGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlJlZmVyZW5jZUVy
cm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBTaGFyZWRXb3JrZXIiCitQQVNTIFZlcmlmeSBhIG5v
LWNvcnMgY3Jvc3Mtb3JpZ2luIHdvcmtlciBzY3JpcHQgc2VydmVkIGJ5IGEgc2VydmljZSB3b3Jr
ZXIgZmFpbHMgZGVkaWNhdGVkIHdvcmtlciBzdGFydC4gCitGQUlMIFZlcmlmeSBhIG5vLWNvcnMg
Y3Jvc3Mtb3JpZ2luIHdvcmtlciBzY3JpcHQgc2VydmVkIGJ5IGEgc2VydmljZSB3b3JrZXIgZmFp
bHMgc2hhcmVkIHdvcmtlciBzdGFydC4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9u
IHdpdGggdmFsdWU6IG9iamVjdCAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6
IFNoYXJlZFdvcmtlciIKK1BBU1MgUmVnaXN0ZXIgYSBzZXJ2aWNlIHdvcmtlciBmb3Igd29ya2Vy
IHN1YnJlc291cmNlIGludGVyY2VwdGlvbiB0ZXN0cy4gCitGQUlMIFJlcXVlc3RzIG9uIGEgZGVk
aWNhdGVkIHdvcmtlciBjb250cm9sbGVkIGJ5IGEgc2VydmljZSB3b3JrZXIuIGFzc2VydF9lcXVh
bHM6IGV4cGVjdGVkICJUaGlzIGxvYWQgd2FzIHN1Y2Nlc3NmdWxseSBpbnRlcmNlcHRlZC4iIGJ1
dCBnb3QgIntcImVycm9yXCI6IHtcIm1lc3NhZ2VcIjogXCJcIiwgXCJjb2RlXCI6IDQwNH19Igor
RkFJTCBSZXF1ZXN0cyBvbiBhIHNoYXJlZCB3b3JrZXIgY29udHJvbGxlZCBieSBhIHNlcnZpY2Ug
d29ya2VyLiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2Jq
ZWN0ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogU2hhcmVkV29ya2VyIgor
RkFJTCBSZXF1ZXN0cyBvbiBhIGRlZGljYXRlZCB3b3JrZXIgbmVzdGVkIGluIGEgZGVkaWNhdGVk
IHdvcmtlciBhbmQgY29udHJvbGxlZCBieSBhIHNlcnZpY2Ugd29ya2VyIGFzc2VydF9lcXVhbHM6
IGV4cGVjdGVkICJUaGlzIGxvYWQgd2FzIHN1Y2Nlc3NmdWxseSBpbnRlcmNlcHRlZC4iIGJ1dCBn
b3QgIlVuZXhwZWN0ZWQgZXJyb3IhIENhbid0IGZpbmQgdmFyaWFibGU6IFdvcmtlciIKK0ZBSUwg
UmVxdWVzdHMgb24gYSBkZWRpY2F0ZWQgd29ya2VyIG5lc3RlZCBpbiBhIHNoYXJlZCB3b3JrZXIg
YW5kIGNvbnRyb2xsZWQgYnkgYSBzZXJ2aWNlIHdvcmtlciBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxl
ZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmlu
ZCB2YXJpYWJsZTogU2hhcmVkV29ya2VyIgorUEFTUyBVbnJlZ2lzdGVyIGEgc2VydmljZSB3b3Jr
ZXIgZm9yIHN1YnJlc291cmNlIGludGVyY2VwdGlvbiB0ZXN0cy4gCiAKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL3dvcmtlci1pbnRlcmNlcHRpb24uaHR0cHMuaHRtbCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL3dvcmtlci1pbnRlcmNlcHRpb24uaHR0cHMuaHRtbAppbmRleCA3YjI5NDEyNjNi
Zjc1NmMzM2U2ZDE1YjM2ZWQ5NjU0OGY4ODZjNmMyLi4zMDJhMjE0YWM2MTk0MDBjMzhmNzU2NGMw
NjVhNWUwYmU0N2FjNmRmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci93b3JrZXItaW50
ZXJjZXB0aW9uLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvd29ya2VyLWludGVy
Y2VwdGlvbi5odHRwcy5odG1sCkBAIC0xLDEzNSArMSwxODggQEAKIDwhRE9DVFlQRSBodG1sPgog
PHRpdGxlPlNlcnZpY2UgV29ya2VyOiBpbnRlcmNlcHRpbmcgV29ya2VyIHNjcmlwdCBsb2Fkczwv
dGl0bGU+Cis8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIj4KIDxzY3JpcHQgc3Jj
PSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIvcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvdGVzdC1oZWxwZXJzLnN1Yi5qcyI+PC9zY3JpcHQ+CiA8Ym9keT4KIDxzY3JpcHQ+Ci1w
cm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewotICAgIHZhciB3b3JrZXJfdXJsID0gJ3Jlc291cmNl
cy9kdW1teS1zeW50aGVzaXplZC13b3JrZXIuanMnOwotICAgIHZhciBzZXJ2aWNlX3dvcmtlciA9
ICdyZXNvdXJjZXMvZHVtbXktd29ya2VyLWludGVyY2VwdG9yLmpzJzsKLSAgICB2YXIgc2NvcGUg
PSB3b3JrZXJfdXJsOwotCi0gICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5k
X3JlZ2lzdGVyKHQsIHNlcnZpY2Vfd29ya2VyLCBzY29wZSkKLSAgICAgIC50aGVuKGZ1bmN0aW9u
KHIpIHsKLSAgICAgICAgICB0LmFkZF9jbGVhbnVwKGZ1bmN0aW9uKCkgewotICAgICAgICAgICAg
ICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcih0LCBzY29wZSk7Ci0gICAgICAgICAg
ICB9KTsKLQotICAgICAgICAgIHJldHVybiB3YWl0X2Zvcl9zdGF0ZSh0LCByLmluc3RhbGxpbmcs
ICdhY3RpdmF0ZWQnKTsKLSAgICAgICAgfSkKLSAgICAgIC50aGVuKGZ1bmN0aW9uKCkgewotICAg
ICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKLSAg
ICAgICAgICAgICAgdmFyIHcgPSBuZXcgV29ya2VyKHdvcmtlcl91cmwpOwotICAgICAgICAgICAg
ICB3Lm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgICAgICByZXNvbHZlKGUu
ZGF0YSk7Ci0gICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICB3Lm9uZXJyb3IgPSBmdW5j
dGlvbihlKSB7Ci0gICAgICAgICAgICAgICAgcmVqZWN0KGUubWVzc2FnZSk7Ci0gICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgIH0pOwotICAgICAgICB9KQotICAgICAgLnRoZW4oZnVuY3Rpb24o
ZGF0YSkgewotICAgICAgICAgIGFzc2VydF9lcXVhbHMoZGF0YSwgJ3dvcmtlciBsb2FkaW5nIGlu
dGVyY2VwdGVkIGJ5IHNlcnZpY2Ugd29ya2VyJyk7Ci0gICAgICAgIH0pOwotICB9LCAnVmVyaWZ5
IHdvcmtlciBzY3JpcHQgZnJvbSB1bmNvbnRyb2xsZWQgZG9jdW1lbnQgaXMgaW50ZXJjZXB0ZWQg
YnkgU2VydmljZSBXb3JrZXInKTsKLQotcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKLSAgICB2
YXIgd29ya2VyX3VybCA9ICdyZXNvdXJjZXMvZHVtbXktc2FtZS1vcmlnaW4td29ya2VyLmpzJzsK
LSAgICB2YXIgc2VydmljZV93b3JrZXIgPSAncmVzb3VyY2VzL2R1bW15LXdvcmtlci1pbnRlcmNl
cHRvci5qcyc7Ci0gICAgdmFyIHNjb3BlID0gd29ya2VyX3VybDsKLQotICAgIHJldHVybiBzZXJ2
aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCBzZXJ2aWNlX3dvcmtlciwgc2Nv
cGUpCi0gICAgICAudGhlbihmdW5jdGlvbihyKSB7Ci0gICAgICAgICAgdC5hZGRfY2xlYW51cChm
dW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0
ZXIodCwgc2NvcGUpOwotICAgICAgICAgICAgfSk7Ci0KLSAgICAgICAgICByZXR1cm4gd2FpdF9m
b3Jfc3RhdGUodCwgci5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7Ci0gICAgICAgIH0pCi0gICAg
ICAudGhlbihmdW5jdGlvbigpIHsKLSAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rp
b24ocmVzb2x2ZSwgcmVqZWN0KSB7Ci0gICAgICAgICAgICAgIHZhciB3ID0gbmV3IFdvcmtlcih3
b3JrZXJfdXJsKTsKLSAgICAgICAgICAgICAgdy5vbm1lc3NhZ2UgPSBmdW5jdGlvbihlKSB7Ci0g
ICAgICAgICAgICAgICAgcmVzb2x2ZShlLmRhdGEpOwotICAgICAgICAgICAgICB9Ci0KLSAgICAg
ICAgICAgICAgdy5vbmVycm9yID0gZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgICAgIHJlamVj
dChlLm1lc3NhZ2UpOwotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAg
fSkKLSAgICAgIC50aGVuKGZ1bmN0aW9uKGRhdGEpIHsKLSAgICAgICAgICBhc3NlcnRfZXF1YWxz
KGRhdGEsICdkdW1teS13b3JrZXItc2NyaXB0IGxvYWRlZCcpOwotICAgICAgICB9KTsKLSAgfSwg
J1ZlcmlmeSB3b3JrZXIgc2NyaXB0IGludGVyY2VwdGVkIGJ5IHNhbWUtb3JpZ2luIHJlc3BvbnNl
IHN1Y2NlZWRzJyk7Ci0KLXByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7Ci0gICAgdmFyIHdvcmtl
cl91cmwgPSAncmVzb3VyY2VzL2R1bW15LWNvcnMtd29ya2VyLmpzJzsKLSAgICB2YXIgc2Vydmlj
ZV93b3JrZXIgPSAncmVzb3VyY2VzL2R1bW15LXdvcmtlci1pbnRlcmNlcHRvci5qcyc7Ci0gICAg
dmFyIHNjb3BlID0gd29ya2VyX3VybDsKLQotICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJl
Z2lzdGVyX2FuZF9yZWdpc3Rlcih0LCBzZXJ2aWNlX3dvcmtlciwgc2NvcGUpCi0gICAgICAudGhl
bihmdW5jdGlvbihyKSB7Ci0gICAgICAgICAgcmV0dXJuIHdhaXRfZm9yX3N0YXRlKHQsIHIuaW5z
dGFsbGluZywgJ2FjdGl2YXRlZCcpOwotICAgICAgICB9KQotICAgICAgLnRoZW4oZnVuY3Rpb24o
KSB7Ci0gICAgICAgICAgdmFyIHcgPSBuZXcgV29ya2VyKHdvcmtlcl91cmwpOwotICAgICAgICAg
IHZhciB3YXRjaGVyID0gbmV3IEV2ZW50V2F0Y2hlcih0LCB3LCBbJ21lc3NhZ2UnLCAnZXJyb3In
XSk7Ci0gICAgICAgICAgcmV0dXJuIHdhdGNoZXIud2FpdF9mb3IoJ2Vycm9yJyk7Ci0gICAgICAg
IH0pOwotICB9LCAnVmVyaWZ5IHdvcmtlciBzY3JpcHQgaW50ZXJjZXB0ZWQgYnkgY29ycyByZXNw
b25zZSBmYWlscycpOwotCi1wcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewotICAgIHZhciB3b3Jr
ZXJfdXJsID0gJ3Jlc291cmNlcy9kdW1teS1uby1jb3JzLXdvcmtlci5qcyc7Ci0gICAgdmFyIHNl
cnZpY2Vfd29ya2VyID0gJ3Jlc291cmNlcy9kdW1teS13b3JrZXItaW50ZXJjZXB0b3IuanMnOwot
ICAgIHZhciBzY29wZSA9IHdvcmtlcl91cmw7Ci0KLSAgICByZXR1cm4gc2VydmljZV93b3JrZXJf
dW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgc2VydmljZV93b3JrZXIsIHNjb3BlKQotICAgICAg
LnRoZW4oZnVuY3Rpb24ocikgewotICAgICAgICAgIHQuYWRkX2NsZWFudXAoZnVuY3Rpb24oKSB7
Ci0gICAgICAgICAgICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyKHQsIHNjb3Bl
KTsKLSAgICAgICAgICAgIH0pOwotCi0gICAgICAgICAgcmV0dXJuIHdhaXRfZm9yX3N0YXRlKHQs
IHIuaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOwotICAgICAgICB9KQotICAgICAgLnRoZW4oZnVu
Y3Rpb24oKSB7Ci0gICAgICAgICAgdmFyIHcgPSBuZXcgV29ya2VyKHdvcmtlcl91cmwpOwotICAg
ICAgICAgIHZhciB3YXRjaGVyID0gbmV3IEV2ZW50V2F0Y2hlcih0LCB3LCBbJ21lc3NhZ2UnLCAn
ZXJyb3InXSk7Ci0gICAgICAgICAgcmV0dXJuIHdhdGNoZXIud2FpdF9mb3IoJ2Vycm9yJyk7Ci0g
ICAgICAgIH0pOwotICB9LCAnVmVyaWZ5IHdvcmtlciBzY3JpcHQgaW50ZXJjZXB0ZWQgYnkgbm8t
Y29ycyBjcm9zcy1vcmlnaW4gcmVzcG9uc2UgZmFpbHMnKTsKLQotcHJvbWlzZV90ZXN0KGZ1bmN0
aW9uKHQpIHsKLSAgICB2YXIgc3ViZG9jX3VybCA9ICdyZXNvdXJjZXMvd29ya2VyLWludGVyY2Vw
dGlvbi1pZnJhbWUuaHR0cHMuaHRtbD9ieXBhc3MnOwotICAgIHZhciBzZXJ2aWNlX3dvcmtlciA9
ICdyZXNvdXJjZXMvd29ya2VyLWxvYWQtaW50ZXJjZXB0b3IuanMnOwotICAgIHZhciBzY29wZSA9
ICdyZXNvdXJjZXMvJzsKLQotICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2Fu
ZF9yZWdpc3Rlcih0LCBzZXJ2aWNlX3dvcmtlciwgc2NvcGUpCi0gICAgICAudGhlbihmdW5jdGlv
bihyKSB7Ci0gICAgICAgICAgdC5hZGRfY2xlYW51cChmdW5jdGlvbigpIHsKLSAgICAgICAgICAg
ICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXIodCwgc2NvcGUpOwotICAgICAgICAg
ICAgfSk7Ci0KLSAgICAgICAgICByZXR1cm4gd2FpdF9mb3Jfc3RhdGUodCwgci5pbnN0YWxsaW5n
LCAnYWN0aXZhdGVkJyk7Ci0gICAgICAgIH0pCi0gICAgICAudGhlbihmdW5jdGlvbigpIHsgcmV0
dXJuIHdpdGhfaWZyYW1lKHN1YmRvY191cmwpOyB9KQotICAgICAgLnRoZW4oZnVuY3Rpb24oZnJh
bWUpIHsKLSAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVq
ZWN0KSB7Ci0gICAgICAgICAgICAgIHZhciBjaGFubmVsID0gbmV3IE1lc3NhZ2VDaGFubmVsKCk7
Ci0gICAgICAgICAgICAgIGNoYW5uZWwucG9ydDEub25tZXNzYWdlID0gZnVuY3Rpb24oZSkgewot
ICAgICAgICAgICAgICAgIGZyYW1lLnJlbW92ZSgpOwotICAgICAgICAgICAgICAgIHJlc29sdmUo
ZS5kYXRhKTsKLSAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgIGZyYW1lLmNvbnRlbnRX
aW5kb3cucG9zdE1lc3NhZ2UoIkdPIiwgIioiLCBbY2hhbm5lbC5wb3J0Ml0pOwotICAgICAgICAg
ICAgfSk7Ci0gICAgICAgIH0pCi0gICAgICAudGhlbihmdW5jdGlvbihkYXRhKSB7Ci0gICAgICAg
ICAgYXNzZXJ0X2VxdWFscyhkYXRhLnJlc3VsdHMsICdmaW5pc2gnKTsKLSAgICAgICAgfSk7Ci0g
IH0sICdWZXJpZnkgd29ya2VyIGxvYWRzIGZyb20gY29udHJvbGxlZCBkb2N1bWVudCBhcmUgaW50
ZXJjZXB0ZWQgYnkgU2VydmljZSBXb3JrZXInKTsKKworLy8gPT09PT09PT09PSBXb3JrZXIgbWFp
biByZXNvdXJjZSBpbnRlcmNlcHRpb24gdGVzdHMgPT09PT09PT09PQorCithc3luYyBmdW5jdGlv
biBzZXR1cF9zZXJ2aWNlX3dvcmtlcih0LCBzZXJ2aWNlX3dvcmtlcl91cmwsIHNjb3BlKSB7Cisg
IGNvbnN0IHIgPSBhd2FpdCBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3RlcigK
KyAgICAgIHQsIHNlcnZpY2Vfd29ya2VyX3VybCwgc2NvcGUpOworICB0LmFkZF9jbGVhbnVwKCgp
ID0+IHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXIodCwgc2NvcGUpKTsKKyAgYXdhaXQgd2FpdF9m
b3Jfc3RhdGUodCwgci5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7Cit9CisKK3Byb21pc2VfdGVz
dChhc3luYyB0ID0+IHsKKyAgY29uc3Qgd29ya2VyX3VybCA9ICdyZXNvdXJjZXMvZHVtbXktc3lu
dGhlc2l6ZWQtd29ya2VyLmpzP2RlZGljYXRlZCc7CisgIGNvbnN0IHNlcnZpY2Vfd29ya2VyX3Vy
bCA9ICdyZXNvdXJjZXMvZHVtbXktd29ya2VyLWludGVyY2VwdG9yLmpzJzsKKyAgY29uc3Qgc2Nv
cGUgPSB3b3JrZXJfdXJsOworCisgIGF3YWl0IHNldHVwX3NlcnZpY2Vfd29ya2VyKHQsIHNlcnZp
Y2Vfd29ya2VyX3VybCwgc2NvcGUpOworICBjb25zdCB3ID0gbmV3IFdvcmtlcih3b3JrZXJfdXJs
KTsKKyAgY29uc3QgZGF0YSA9IGF3YWl0IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+
IHsKKyAgICB3Lm9ubWVzc2FnZSA9IGUgPT4gcmVzb2x2ZShlLmRhdGEpOworICAgIHcub25lcnJv
ciA9IGUgPT4gcmVqZWN0KGUubWVzc2FnZSk7CisgIH0pOworICBhc3NlcnRfZXF1YWxzKGRhdGEs
ICd3b3JrZXIgbG9hZGluZyBpbnRlcmNlcHRlZCBieSBzZXJ2aWNlIHdvcmtlcicpOworfSwgYFZl
cmlmeSBhIGRlZGljYXRlZCB3b3JrZXIgc2NyaXB0IHJlcXVlc3QgaXNzdWVkIGZyb20gYSB1bmNv
bnRyb2xsZWQgYCArCisgICBgZG9jdW1lbnQgaXMgaW50ZXJjZXB0ZWQgYnkgd29ya2VyJ3Mgb3du
IHNlcnZpY2Ugd29ya2VyLmApOworCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0
IHdvcmtlcl91cmwgPSAncmVzb3VyY2VzL2R1bW15LXN5bnRoZXNpemVkLXdvcmtlci5qcz9zaGFy
ZWQnOworICBjb25zdCBzZXJ2aWNlX3dvcmtlcl91cmwgPSAncmVzb3VyY2VzL2R1bW15LXdvcmtl
ci1pbnRlcmNlcHRvci5qcyc7CisgIGNvbnN0IHNjb3BlID0gd29ya2VyX3VybDsKKworICBhd2Fp
dCBzZXR1cF9zZXJ2aWNlX3dvcmtlcih0LCBzZXJ2aWNlX3dvcmtlcl91cmwsIHNjb3BlKTsKKyAg
Y29uc3QgdyA9IG5ldyBTaGFyZWRXb3JrZXIod29ya2VyX3VybCk7CisgIGNvbnN0IGRhdGEgPSBh
d2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7CisgICAgdy5wb3J0Lm9ubWVz
c2FnZSA9IGUgPT4gcmVzb2x2ZShlLmRhdGEpOworICAgIHcub25lcnJvciA9IGUgPT4gcmVqZWN0
KGUubWVzc2FnZSk7CisgIH0pOworICBhc3NlcnRfZXF1YWxzKGRhdGEsICd3b3JrZXIgbG9hZGlu
ZyBpbnRlcmNlcHRlZCBieSBzZXJ2aWNlIHdvcmtlcicpOworfSwgYFZlcmlmeSBhIHNoYXJlZCB3
b3JrZXIgc2NyaXB0IHJlcXVlc3QgaXNzdWVkIGZyb20gYSB1bmNvbnRyb2xsZWQgYCArCisgICBg
ZG9jdW1lbnQgaXMgaW50ZXJjZXB0ZWQgYnkgd29ya2VyJ3Mgb3duIHNlcnZpY2Ugd29ya2VyLmAp
OworCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0IHdvcmtlcl91cmwgPSAncmVz
b3VyY2VzL2R1bW15LXNhbWUtb3JpZ2luLXdvcmtlci5qcz9kZWRpY2F0ZWQnOworICBjb25zdCBz
ZXJ2aWNlX3dvcmtlcl91cmwgPSAncmVzb3VyY2VzL2R1bW15LXdvcmtlci1pbnRlcmNlcHRvci5q
cyc7CisgIGNvbnN0IHNjb3BlID0gd29ya2VyX3VybDsKKworICBhd2FpdCBzZXR1cF9zZXJ2aWNl
X3dvcmtlcih0LCBzZXJ2aWNlX3dvcmtlcl91cmwsIHNjb3BlKTsKKyAgY29uc3QgdyA9IG5ldyBX
b3JrZXIod29ya2VyX3VybCk7CisgIGNvbnN0IGRhdGEgPSBhd2FpdCBuZXcgUHJvbWlzZSgocmVz
b2x2ZSwgcmVqZWN0KSA9PiB7CisgICAgdy5vbm1lc3NhZ2UgPSBlID0+IHJlc29sdmUoZS5kYXRh
KTsKKyAgICB3Lm9uZXJyb3IgPSBlID0+IHJlamVjdChlLm1lc3NhZ2UpOworICB9KTsKKyAgYXNz
ZXJ0X2VxdWFscyhkYXRhLCAnZGVkaWNhdGVkIHdvcmtlciBzY3JpcHQgbG9hZGVkJyk7Cit9LCAn
VmVyaWZ5IGEgc2FtZS1vcmlnaW4gd29ya2VyIHNjcmlwdCBzZXJ2ZWQgYnkgYSBzZXJ2aWNlIHdv
cmtlciBzdWNjZWVkcyAnICsKKyAgICdpbiBzdGFydGluZyBhIGRlZGljYXRlZCB3b3JrZXIuJyk7
CisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgY29uc3Qgd29ya2VyX3VybCA9ICdyZXNv
dXJjZXMvZHVtbXktc2FtZS1vcmlnaW4td29ya2VyLmpzP3NoYXJlZCc7CisgIGNvbnN0IHNlcnZp
Y2Vfd29ya2VyX3VybCA9ICdyZXNvdXJjZXMvZHVtbXktd29ya2VyLWludGVyY2VwdG9yLmpzJzsK
KyAgY29uc3Qgc2NvcGUgPSB3b3JrZXJfdXJsOworCisgIGF3YWl0IHNldHVwX3NlcnZpY2Vfd29y
a2VyKHQsIHNlcnZpY2Vfd29ya2VyX3VybCwgc2NvcGUpOworICBjb25zdCB3ID0gbmV3IFNoYXJl
ZFdvcmtlcih3b3JrZXJfdXJsKTsKKyAgY29uc3QgZGF0YSA9IGF3YWl0IG5ldyBQcm9taXNlKChy
ZXNvbHZlLCByZWplY3QpID0+IHsKKyAgICB3LnBvcnQub25tZXNzYWdlID0gZSA9PiByZXNvbHZl
KGUuZGF0YSk7CisgICAgdy5vbmVycm9yID0gZSA9PiByZWplY3QoZS5tZXNzYWdlKTsKKyAgfSk7
CisgIGFzc2VydF9lcXVhbHMoZGF0YSwgJ3NoYXJlZCB3b3JrZXIgc2NyaXB0IGxvYWRlZCcpOwor
fSwgJ1ZlcmlmeSBhIHNhbWUtb3JpZ2luIHdvcmtlciBzY3JpcHQgc2VydmVkIGJ5IGEgc2Vydmlj
ZSB3b3JrZXIgc3VjY2VlZHMgJyArCisgICAnaW4gc3RhcnRpbmcgYSBzaGFyZWQgd29ya2VyLicp
OworCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0IHdvcmtlcl91cmwgPSAncmVz
b3VyY2VzL2R1bW15LWNvcnMtd29ya2VyLmpzP2RlZGljYXRlZCc7CisgIGNvbnN0IHNlcnZpY2Vf
d29ya2VyX3VybCA9ICdyZXNvdXJjZXMvZHVtbXktd29ya2VyLWludGVyY2VwdG9yLmpzJzsKKyAg
Y29uc3Qgc2NvcGUgPSB3b3JrZXJfdXJsOworCisgIGF3YWl0IHNldHVwX3NlcnZpY2Vfd29ya2Vy
KHQsIHNlcnZpY2Vfd29ya2VyX3VybCwgc2NvcGUpOworICBjb25zdCB3ID0gbmV3IFdvcmtlcih3
b3JrZXJfdXJsKTsKKyAgY29uc3Qgd2F0Y2hlciA9IG5ldyBFdmVudFdhdGNoZXIodCwgdywgWydt
ZXNzYWdlJywgJ2Vycm9yJ10pOworICBhd2FpdCB3YXRjaGVyLndhaXRfZm9yKCdlcnJvcicpOwor
fSwgJ1ZlcmlmeSBhIGNvcnMgd29ya2VyIHNjcmlwdCBzZXJ2ZWQgYnkgYSBzZXJ2aWNlIHdvcmtl
ciBmYWlscyBkZWRpY2F0ZWQgJyArCisgICAnd29ya2VyIHN0YXJ0LicpOworCitwcm9taXNlX3Rl
c3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0IHdvcmtlcl91cmwgPSAncmVzb3VyY2VzL2R1bW15LWNv
cnMtd29ya2VyLmpzP3NoYXJlZCc7CisgIGNvbnN0IHNlcnZpY2Vfd29ya2VyX3VybCA9ICdyZXNv
dXJjZXMvZHVtbXktd29ya2VyLWludGVyY2VwdG9yLmpzJzsKKyAgY29uc3Qgc2NvcGUgPSB3b3Jr
ZXJfdXJsOworCisgIGF3YWl0IHNldHVwX3NlcnZpY2Vfd29ya2VyKHQsIHNlcnZpY2Vfd29ya2Vy
X3VybCwgc2NvcGUpOworICBjb25zdCB3ID0gbmV3IFNoYXJlZFdvcmtlcih3b3JrZXJfdXJsKTsK
KyAgY29uc3Qgd2F0Y2hlciA9IG5ldyBFdmVudFdhdGNoZXIodCwgdywgWydtZXNzYWdlJywgJ2Vy
cm9yJ10pOworICBhd2FpdCB3YXRjaGVyLndhaXRfZm9yKCdlcnJvcicpOworfSwgJ1ZlcmlmeSBh
IGNvcnMgd29ya2VyIHNjcmlwdCBzZXJ2ZWQgYnkgYSBzZXJ2aWNlIHdvcmtlciBmYWlscyBzaGFy
ZWQgJyArCisgICAnd29ya2VyIHN0YXJ0LicpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7
CisgIGNvbnN0IHdvcmtlcl91cmwgPSAncmVzb3VyY2VzL2R1bW15LW5vLWNvcnMtd29ya2VyLmpz
P2RlZGljYXRlZCc7CisgIGNvbnN0IHNlcnZpY2Vfd29ya2VyX3VybCA9ICdyZXNvdXJjZXMvZHVt
bXktd29ya2VyLWludGVyY2VwdG9yLmpzJzsKKyAgY29uc3Qgc2NvcGUgPSB3b3JrZXJfdXJsOwor
CisgIGF3YWl0IHNldHVwX3NlcnZpY2Vfd29ya2VyKHQsIHNlcnZpY2Vfd29ya2VyX3VybCwgc2Nv
cGUpOworICBjb25zdCB3ID0gbmV3IFdvcmtlcih3b3JrZXJfdXJsKTsKKyAgY29uc3Qgd2F0Y2hl
ciA9IG5ldyBFdmVudFdhdGNoZXIodCwgdywgWydtZXNzYWdlJywgJ2Vycm9yJ10pOworICBhd2Fp
dCB3YXRjaGVyLndhaXRfZm9yKCdlcnJvcicpOworfSwgJ1ZlcmlmeSBhIG5vLWNvcnMgY3Jvc3Mt
b3JpZ2luIHdvcmtlciBzY3JpcHQgc2VydmVkIGJ5IGEgc2VydmljZSB3b3JrZXIgJyArCisgICAn
ZmFpbHMgZGVkaWNhdGVkIHdvcmtlciBzdGFydC4nKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jIHQg
PT4geworICBjb25zdCB3b3JrZXJfdXJsID0gJ3Jlc291cmNlcy9kdW1teS1uby1jb3JzLXdvcmtl
ci5qcz9zaGFyZWQnOworICBjb25zdCBzZXJ2aWNlX3dvcmtlcl91cmwgPSAncmVzb3VyY2VzL2R1
bW15LXdvcmtlci1pbnRlcmNlcHRvci5qcyc7CisgIGNvbnN0IHNjb3BlID0gd29ya2VyX3VybDsK
KworICBhd2FpdCBzZXR1cF9zZXJ2aWNlX3dvcmtlcih0LCBzZXJ2aWNlX3dvcmtlcl91cmwsIHNj
b3BlKTsKKyAgY29uc3QgdyA9IG5ldyBTaGFyZWRXb3JrZXIod29ya2VyX3VybCk7CisgIGNvbnN0
IHdhdGNoZXIgPSBuZXcgRXZlbnRXYXRjaGVyKHQsIHcsIFsnbWVzc2FnZScsICdlcnJvciddKTsK
KyAgYXdhaXQgd2F0Y2hlci53YWl0X2ZvcignZXJyb3InKTsKK30sICdWZXJpZnkgYSBuby1jb3Jz
IGNyb3NzLW9yaWdpbiB3b3JrZXIgc2NyaXB0IHNlcnZlZCBieSBhIHNlcnZpY2Ugd29ya2VyICcg
KworICAgJ2ZhaWxzIHNoYXJlZCB3b3JrZXIgc3RhcnQuJyk7CisKKy8vID09PT09PT09PT0gV29y
a2VyIHN1YnJlc291cmNlIGludGVyY2VwdGlvbiB0ZXN0cyA9PT09PT09PT09CisKK2NvbnN0IHNj
b3BlX2Zvcl9zdWJyZXNvdXJjZV9pbnRlcmNlcHRpb24gPSAncmVzb3VyY2VzL2xvYWRfd29ya2Vy
LmpzJzsKKworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25zdCBzZXJ2aWNlX3dvcmtl
cl91cmwgPSAncmVzb3VyY2VzL3dvcmtlci1sb2FkLWludGVyY2VwdG9yLmpzJzsKKyAgY29uc3Qg
ciA9IGF3YWl0IHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKAorICAgICAg
dCwgc2VydmljZV93b3JrZXJfdXJsLCBzY29wZV9mb3Jfc3VicmVzb3VyY2VfaW50ZXJjZXB0aW9u
KTsKKyAgYXdhaXQgd2FpdF9mb3Jfc3RhdGUodCwgci5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7
Cit9LCAnUmVnaXN0ZXIgYSBzZXJ2aWNlIHdvcmtlciBmb3Igd29ya2VyIHN1YnJlc291cmNlIGlu
dGVyY2VwdGlvbiB0ZXN0cy4nKTsKKworLy8gRG8gbm90IGNhbGwgdGhpcyBmdW5jdGlvbiBtdWx0
aXBsZSB0aW1lcyB3aXRob3V0IHdhaXRpbmcgZm9yIHRoZSBwcm9taXNlCisvLyByZXNvbHV0aW9u
IGJlY2F1c2UgdGhpcyBzZXRzIG5ldyBldmVudCBoYW5kbGVycyBvbiB8d29ya2VyfC4KKy8vIFRP
RE8obmhpcm9raSk6IFRvIGlzb2xhdGUgbXVsdGlwbGUgZnVuY3Rpb24gY2FsbHMsIHVzZSBNZXNz
YWdlUG9ydCBpbnN0ZWFkIG9mCisvLyB3b3JrZXIncyBvbm1lc3NhZ2UgZXZlbnQgaGFuZGxlci4K
K2FzeW5jIGZ1bmN0aW9uIHJlcXVlc3Rfb25fd29ya2VyKHdvcmtlciwgcmVzb3VyY2VfdHlwZSkg
eworICBjb25zdCBkYXRhID0gYXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4g
eworICAgIGlmICh3b3JrZXIgaW5zdGFuY2VvZiBXb3JrZXIpIHsKKyAgICAgIHdvcmtlci5vbm1l
c3NhZ2UgPSBlID0+IHJlc29sdmUoZS5kYXRhKTsKKyAgICAgIHdvcmtlci5vbmVycm9yID0gZSA9
PiByZWplY3QoZSk7CisgICAgICB3b3JrZXIucG9zdE1lc3NhZ2UocmVzb3VyY2VfdHlwZSk7Cisg
ICAgfSBlbHNlIGlmICh3b3JrZXIgaW5zdGFuY2VvZiBTaGFyZWRXb3JrZXIpIHsKKyAgICAgIHdv
cmtlci5wb3J0Lm9ubWVzc2FnZSA9IGUgPT4gcmVzb2x2ZShlLmRhdGEpOworICAgICAgd29ya2Vy
Lm9uZXJyb3IgPSBlID0+IHJlamVjdChlKTsKKyAgICAgIHdvcmtlci5wb3J0LnBvc3RNZXNzYWdl
KHJlc291cmNlX3R5cGUpOworICAgIH0gZWxzZSB7CisgICAgICByZWplY3QoJ1VuZXhwZWN0ZWQg
d29ya2VyIHR5cGUhJyk7CisgICAgfQorICB9KTsKKyAgYXNzZXJ0X2VxdWFscyhkYXRhLCAnVGhp
cyBsb2FkIHdhcyBzdWNjZXNzZnVsbHkgaW50ZXJjZXB0ZWQuJyk7Cit9CisKK2FzeW5jIGZ1bmN0
aW9uIHN1YnJlc291cmNlX3Rlc3Qod29ya2VyKSB7CisgIGF3YWl0IHJlcXVlc3Rfb25fd29ya2Vy
KHdvcmtlciwgJ3hocicpOworICBhd2FpdCByZXF1ZXN0X29uX3dvcmtlcih3b3JrZXIsICdmZXRj
aCcpOworICBhd2FpdCByZXF1ZXN0X29uX3dvcmtlcih3b3JrZXIsICdpbXBvcnRTY3JpcHRzJyk7
Cit9CisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgYXdhaXQgc3VicmVzb3VyY2VfdGVz
dChuZXcgV29ya2VyKCdyZXNvdXJjZXMvbG9hZF93b3JrZXIuanMnKSk7Cit9LCAnUmVxdWVzdHMg
b24gYSBkZWRpY2F0ZWQgd29ya2VyIGNvbnRyb2xsZWQgYnkgYSBzZXJ2aWNlIHdvcmtlci4nKTsK
KworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBhd2FpdCBzdWJyZXNvdXJjZV90ZXN0KG5l
dyBTaGFyZWRXb3JrZXIoJ3Jlc291cmNlcy9sb2FkX3dvcmtlci5qcycpKTsKK30sICdSZXF1ZXN0
cyBvbiBhIHNoYXJlZCB3b3JrZXIgY29udHJvbGxlZCBieSBhIHNlcnZpY2Ugd29ya2VyLicpOwor
Citwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGF3YWl0IHN1YnJlc291cmNlX3Rlc3QobmV3
IFdvcmtlcigncmVzb3VyY2VzL25lc3RlZF9sb2FkX3dvcmtlci5qcycpKTsKK30sICdSZXF1ZXN0
cyBvbiBhIGRlZGljYXRlZCB3b3JrZXIgbmVzdGVkIGluIGEgZGVkaWNhdGVkIHdvcmtlciBhbmQg
JyArCisgICAgICAgJ2NvbnRyb2xsZWQgYnkgYSBzZXJ2aWNlIHdvcmtlcicpOworCitwcm9taXNl
X3Rlc3QoYXN5bmMgdCA9PiB7CisgIGF3YWl0IHN1YnJlc291cmNlX3Rlc3QobmV3IFNoYXJlZFdv
cmtlcigncmVzb3VyY2VzL25lc3RlZF9sb2FkX3dvcmtlci5qcycpKTsKK30sICdSZXF1ZXN0cyBv
biBhIGRlZGljYXRlZCB3b3JrZXIgbmVzdGVkIGluIGEgc2hhcmVkIHdvcmtlciBhbmQgY29udHJv
bGxlZCAnICsKKyAgICAgICAnYnkgYSBzZXJ2aWNlIHdvcmtlcicpOworCitwcm9taXNlX3Rlc3Qo
YXN5bmMgdCA9PiB7CisgIGF3YWl0IHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXIodCwgc2NvcGVf
Zm9yX3N1YnJlc291cmNlX2ludGVyY2VwdGlvbik7Cit9LCAnVW5yZWdpc3RlciBhIHNlcnZpY2Ug
d29ya2VyIGZvciBzdWJyZXNvdXJjZSBpbnRlcmNlcHRpb24gdGVzdHMuJyk7CiAKIDwvc2NyaXB0
PgogPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc3R1Yi0zLjEtc2VydmljZS13b3JrZXItb2JqLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3N0dWItMy4xLXNlcnZpY2Utd29ya2VyLW9iai1leHBlY3RlZC50eHQK
aW5kZXggNzkxYjFhMWZmNzJkYjU2OGIyNjI1OWQ1YzAwOWZiMzY0YTc3YWRjMS4uZWQ2OWQxYzFk
Zjk0MDM1NWZkOWE2ZGZmZmI4NTZhNzVhNTU1MDBmYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc3R1Yi0zLjEt
c2VydmljZS13b3JrZXItb2JqLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zdHViLTMuMS1zZXJ2aWNl
LXdvcmtlci1vYmotZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsNCBAQAotQ09OU09MRSBNRVNTQUdF
OiBsaW5lIDg2NzogSW52YWxpZCBvYmplY3QgbWVtYmVyIG5hbWUgU2VydmljZVdvcmtlclN0YXRl
CitDT05TT0xFIE1FU1NBR0U6IGxpbmUgODcxOiBJbnZhbGlkIG9iamVjdCBtZW1iZXIgbmFtZSBT
ZXJ2aWNlV29ya2VyU3RhdGUKIAogSGFybmVzcyBFcnJvciAoRkFJTCksIG1lc3NhZ2UgPSBJbnZh
bGlkIG9iamVjdCBtZW1iZXIgbmFtZSBTZXJ2aWNlV29ya2VyU3RhdGUKIApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc3R1Yi0zLjItbmF2aWdhdG9yLXNlcnZpY2Utd29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3N0
dWItMy4yLW5hdmlnYXRvci1zZXJ2aWNlLXdvcmtlci1leHBlY3RlZC50eHQKaW5kZXggMTBmM2E3
NTQyODIwNjg4NTFkZTkxNTgxNGZkN2Q3YzY5MTIwZWUyNS4uNGJmYTAzMzNiYjNiYjk2YzEzNTRj
MzY5YWYyNjFjNGI3YjExNDYyMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc3R1Yi0zLjItbmF2aWdhdG9yLXNl
cnZpY2Utd29ya2VyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zdHViLTMuMi1uYXZpZ2F0b3Itc2Vy
dmljZS13b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsNCBAQAotQ09OU09MRSBNRVNTQUdF
OiBsaW5lIDg2NzogSW52YWxpZCBvYmplY3QgbWVtYmVyIG5hbWUgUmVnaXN0cmF0aW9uT3B0aW9u
TGlzdAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDg3MTogSW52YWxpZCBvYmplY3QgbWVtYmVyIG5h
bWUgUmVnaXN0cmF0aW9uT3B0aW9uTGlzdAogCiBIYXJuZXNzIEVycm9yIChGQUlMKSwgbWVzc2Fn
ZSA9IEludmFsaWQgb2JqZWN0IG1lbWJlciBuYW1lIFJlZ2lzdHJhdGlvbk9wdGlvbkxpc3QKIApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc3R1Yi00LjEtc2VydmljZS13b3JrZXItZ2xvYmFsLXNjb3BlLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3N0dWItNC4xLXNlcnZpY2Utd29ya2VyLWdsb2JhbC1zY29wZS1leHBlY3Rl
ZC50eHQKaW5kZXggMDgxZGU0YjMzODc1NzExYjc1ZjlmMTc1YjRhMmUzYzNmOTY3NWNlMC4uYTMz
MjY5NWU5NzI1ZjJiNzg4OTVhNzE3YmNhMzJmOTk0YzBmZjI3MyAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc3R1
Yi00LjEtc2VydmljZS13b3JrZXItZ2xvYmFsLXNjb3BlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
dHViLTQuMS1zZXJ2aWNlLXdvcmtlci1nbG9iYWwtc2NvcGUtZXhwZWN0ZWQudHh0CkBAIC0xLDYg
KzEsNiBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE4MjE6IFR5cGVFcnJvcjogdW5kZWZpbmVk
IGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ3NlbGZbdGhpcy5uYW1lXS5wcm90b3R5cGUn
KQorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE5NjU6IFR5cGVFcnJvcjogdW5kZWZpbmVkIGlzIG5v
dCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ3RoaXMuZ2V0X2ludGVyZmFjZV9vYmplY3QoKS5wcm90
b3R5cGUnKQogCi1IYXJuZXNzIEVycm9yIChGQUlMKSwgbWVzc2FnZSA9IFR5cGVFcnJvcjogdW5k
ZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ3NlbGZbdGhpcy5uYW1lXS5wcm90
b3R5cGUnKQorSGFybmVzcyBFcnJvciAoRkFJTCksIG1lc3NhZ2UgPSBUeXBlRXJyb3I6IHVuZGVm
aW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICd0aGlzLmdldF9pbnRlcmZhY2Vfb2Jq
ZWN0KCkucHJvdG90eXBlJykKIAogRkFJTCBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUgaW50ZXJm
YWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCBhc3NlcnRf
b3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJTZXJ2aWNlV29y
a2VyR2xvYmFsU2NvcGUiIGV4cGVjdGVkIHByb3BlcnR5ICJTZXJ2aWNlV29ya2VyR2xvYmFsU2Nv
cGUiIG1pc3NpbmcKIEZBSUwgU2VydmljZVdvcmtlckdsb2JhbFNjb3BlIGludGVyZmFjZSBvYmpl
Y3QgbGVuZ3RoIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJv
cGVydHkgIlNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSIgZXhwZWN0ZWQgcHJvcGVydHkgIlNlcnZp
Y2VXb3JrZXJHbG9iYWxTY29wZSIgbWlzc2luZwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc3R1Yi00LjUtcmVz
cG9uc2Utb2JqZWN0cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zdHViLTQuNS1yZXNwb25zZS1vYmplY3Rz
LWV4cGVjdGVkLnR4dAppbmRleCBiNTI1ODI3OWIxMTZhYjE1Y2ZhNDRmYmQwODNkMGEzYWJjZGRm
YmQxLi4wNGNhNzJlNGYxMzNkNzMxYzIwNzc2ZjljYjBjODkyY2U1NzU3NTc0IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zdHViLTQuNS1yZXNwb25zZS1vYmplY3RzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zdHVi
LTQuNS1yZXNwb25zZS1vYmplY3RzLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDQgQEAKLUNPTlNP
TEUgTUVTU0FHRTogbGluZSA4Njc6IEludmFsaWQgb2JqZWN0IG1lbWJlciBuYW1lIFJlc3BvbnNl
SW5pdAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDg3MTogSW52YWxpZCBvYmplY3QgbWVtYmVyIG5h
bWUgUmVzcG9uc2VJbml0CiAKIEhhcm5lc3MgRXJyb3IgKEZBSUwpLCBtZXNzYWdlID0gSW52YWxp
ZCBvYmplY3QgbWVtYmVyIG5hbWUgUmVzcG9uc2VJbml0CiAKQEAgLTQxLDEwICs0MSwxMCBAQCBG
QUlMIFJlc3BvbnNlIGludGVyZmFjZTogdGhyb3cgbmV3IEVycm9yICgnTm8gb2JqZWN0IGRlZmlu
ZWQgZm9yIHRoZSBDT1JTUmVzcG9ucwogRkFJTCBSZXNwb25zZSBpbnRlcmZhY2U6IHRocm93IG5l
dyBFcnJvciAoJ05vIG9iamVjdCBkZWZpbmVkIGZvciB0aGUgQ09SU1Jlc3BvbnNlIGludGVyZmFj
ZScpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiaGVhZGVycyIgd2l0aCB0aGUgcHJvcGVyIHR5cGUg
YXNzZXJ0X2VxdWFsczogVW5leHBlY3RlZCBleGNlcHRpb24gd2hlbiBldmFsdWF0aW5nIG9iamVj
dCBleHBlY3RlZCBudWxsIGJ1dCBnb3Qgb2JqZWN0ICJFcnJvcjogTm8gb2JqZWN0IGRlZmluZWQg
Zm9yIHRoZSBDT1JTUmVzcG9uc2UgaW50ZXJmYWNlIgogRkFJTCBSZXNwb25zZSBpbnRlcmZhY2U6
IHRocm93IG5ldyBFcnJvciAoJ05vIG9iamVjdCBkZWZpbmVkIGZvciB0aGUgQ09SU1Jlc3BvbnNl
IGludGVyZmFjZScpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAidXJsIiB3aXRoIHRoZSBwcm9wZXIg
dHlwZSBhc3NlcnRfZXF1YWxzOiBVbmV4cGVjdGVkIGV4Y2VwdGlvbiB3aGVuIGV2YWx1YXRpbmcg
b2JqZWN0IGV4cGVjdGVkIG51bGwgYnV0IGdvdCBvYmplY3QgIkVycm9yOiBObyBvYmplY3QgZGVm
aW5lZCBmb3IgdGhlIENPUlNSZXNwb25zZSBpbnRlcmZhY2UiCiBGQUlMIFJlc3BvbnNlIGludGVy
ZmFjZTogdGhyb3cgbmV3IEVycm9yICgnTm8gb2JqZWN0IGRlZmluZWQgZm9yIHRoZSBDT1JTUmVz
cG9uc2UgaW50ZXJmYWNlJykgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJ0b0Jsb2IoKSIgd2l0aCB0
aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2VxdWFsczogVW5leHBlY3RlZCBleGNlcHRpb24gd2hlbiBl
dmFsdWF0aW5nIG9iamVjdCBleHBlY3RlZCBudWxsIGJ1dCBnb3Qgb2JqZWN0ICJFcnJvcjogTm8g
b2JqZWN0IGRlZmluZWQgZm9yIHRoZSBDT1JTUmVzcG9uc2UgaW50ZXJmYWNlIgotRkFJTCBSZXNw
b25zZSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2Jq
ZWN0IGFzc2VydF9vd25fcHJvcGVydHk6IHNob3VsZCBpbmhlcml0IGZyb20gQWJzdHJhY3RSZXNw
b25zZSwgYnV0IHNlbGYgaGFzIG5vIHN1Y2ggcHJvcGVydHkgZXhwZWN0ZWQgcHJvcGVydHkgIkFi
c3RyYWN0UmVzcG9uc2UiIG1pc3NpbmcKK0ZBSUwgUmVzcG9uc2UgaW50ZXJmYWNlOiBleGlzdGVu
Y2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCBhc3NlcnRfb3duX3Byb3BlcnR5
OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJBYnN0cmFjdFJlc3BvbnNlIiBleHBl
Y3RlZCBwcm9wZXJ0eSAiQWJzdHJhY3RSZXNwb25zZSIgbWlzc2luZwogUEFTUyBSZXNwb25zZSBp
bnRlcmZhY2Ugb2JqZWN0IGxlbmd0aCAKIFBBU1MgUmVzcG9uc2UgaW50ZXJmYWNlIG9iamVjdCBu
YW1lIAotRkFJTCBSZXNwb25zZSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBv
ZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCBhc3NlcnRfb3duX3Byb3BlcnR5OiBzaG91bGQg
aW5oZXJpdCBmcm9tIEFic3RyYWN0UmVzcG9uc2UsIGJ1dCBzZWxmIGhhcyBubyBzdWNoIHByb3Bl
cnR5IGV4cGVjdGVkIHByb3BlcnR5ICJBYnN0cmFjdFJlc3BvbnNlIiBtaXNzaW5nCitGQUlMIFJl
c3BvbnNlIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBw
cm90b3R5cGUgb2JqZWN0IGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBv
d24gcHJvcGVydHkgIkFic3RyYWN0UmVzcG9uc2UiIGV4cGVjdGVkIHByb3BlcnR5ICJBYnN0cmFj
dFJlc3BvbnNlIiBtaXNzaW5nCiBQQVNTIFJlc3BvbnNlIGludGVyZmFjZTogZXhpc3RlbmNlIGFu
ZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgImNvbnN0cnVjdG9y
IiBwcm9wZXJ0eSAKIFBBU1MgUmVzcG9uc2UgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3Bl
cnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyBAQHVuc2NvcGFibGVzIHByb3Bl
cnR5IAogRkFJTCBSZXNwb25zZSBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBzdGF0dXMgYXNzZXJ0X2Vx
dWFsczogc2V0dGVyIG11c3QgYmUgZnVuY3Rpb24gZm9yIFB1dEZvcndhcmRzLCBSZXBsYWNlYWJs
ZSwgb3Igbm9uLXJlYWRvbmx5IGF0dHJpYnV0ZXMgZXhwZWN0ZWQgImZ1bmN0aW9uIiBidXQgZ290
ICJ1bmRlZmluZWQiCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zdHViLTQuNi4zLWNhY2hlLXN0b3JhZ2UtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc3R1Yi00LjYuMy1jYWNoZS1zdG9yYWdlLWV4cGVjdGVkLnR4dAppbmRl
eCA2YjExOGZhZjEwNzA4MjE5MWE0MDZjNDIxYmUzMDVlMzgxMDlhNDkzLi5lZjhmYmM0MTFmZDFl
YTMxNDVkMTQ5MjJlZjc5NzZlNWFmZWFmMjAzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zdHViLTQuNi4zLWNh
Y2hlLXN0b3JhZ2UtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3N0dWItNC42LjMtY2FjaGUtc3RvcmFn
ZS1leHBlY3RlZC50eHQKQEAgLTEsNCArMSw2IEBACi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNDgy
OiBjYWxsYmFjayBub3QgeWV0IHN1cHBvcnRlZAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDg3MTog
SW52YWxpZCBvYmplY3QgbWVtYmVyIG5hbWUgQ2FjaGVTdG9yYWdlSXRlcmF0aW9uQ2FsbGJhY2sK
KworSGFybmVzcyBFcnJvciAoRkFJTCksIG1lc3NhZ2UgPSBJbnZhbGlkIG9iamVjdCBtZW1iZXIg
bmFtZSBDYWNoZVN0b3JhZ2VJdGVyYXRpb25DYWxsYmFjawogCiBQQVNTIENhY2hlU3RvcmFnZSBp
bnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IAog
RkFJTCBDYWNoZVN0b3JhZ2UgaW50ZXJmYWNlIG9iamVjdCBsZW5ndGggYXNzZXJ0X2VxdWFsczog
d3JvbmcgdmFsdWUgZm9yIENhY2hlU3RvcmFnZS5sZW5ndGggZXhwZWN0ZWQgMSBidXQgZ290IDAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3N0dWItNC43LjQuMS1mZXRjaC1ldmVudC1zZWN0aW9uLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3N0dWItNC43LjQuMS1mZXRjaC1ldmVudC1zZWN0aW9uLWV4cGVjdGVkLnR4dApp
bmRleCBlMmRlYWJjYTVkNmJmNDFkMGI2YWVhNTc0ZDljMjRiYjJlMGQ1OWVjLi4zMDgxY2FmZjMx
MzE3MTY1NmEyOTc1NmQzMmQ4ZTJjMjk4MmExZWJkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zdHViLTQuNy40
LjEtZmV0Y2gtZXZlbnQtc2VjdGlvbi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc3R1Yi00LjcuNC4x
LWZldGNoLWV2ZW50LXNlY3Rpb24tZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsNCBAQAotQ09OU09M
RSBNRVNTQUdFOiBsaW5lIDg2NzogSW52YWxpZCBvYmplY3QgbWVtYmVyIG5hbWUgQ29udGV4dAor
Q09OU09MRSBNRVNTQUdFOiBsaW5lIDg3MTogSW52YWxpZCBvYmplY3QgbWVtYmVyIG5hbWUgQ29u
dGV4dAogCiBIYXJuZXNzIEVycm9yIChGQUlMKSwgbWVzc2FnZSA9IEludmFsaWQgb2JqZWN0IG1l
bWJlciBuYW1lIENvbnRleHQKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy91cmwvaW50ZXJmYWNlcy5hbnktZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy91cmwvaW50ZXJmYWNlcy5h
bnktZXhwZWN0ZWQudHh0CmluZGV4IDBkYTExMWY4YTYwMzEyOGY1YmY0OWM3ZDI1ZTZkYzQ4ZjZj
ZThmNTEuLjI0ODkzYjkyNWM0NzAxM2RiYWVmMzc5NWQ0MjUxYjIyNWUwODcxNDkgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdXJsL2ludGVy
ZmFjZXMuYW55LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3VybC9pbnRlcmZhY2VzLmFueS1leHBlY3RlZC50eHQKQEAgLTM2LDcg
KzM2LDcgQEAgUEFTUyBVUkwgaW50ZXJmYWNlOiBuZXcgVVJMKCJodHRwOi8vZm9vIikgbXVzdCBp
bmhlcml0IHByb3BlcnR5ICJzZWFyY2giIHdpdGggdGgKIFBBU1MgVVJMIGludGVyZmFjZTogbmV3
IFVSTCgiaHR0cDovL2ZvbyIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAic2VhcmNoUGFyYW1zIiB3
aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgVVJMIGludGVyZmFjZTogbmV3IFVSTCgiaHR0cDov
L2ZvbyIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiaGFzaCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUg
CiBQQVNTIFVSTCBpbnRlcmZhY2U6IG5ldyBVUkwoImh0dHA6Ly9mb28iKSBtdXN0IGluaGVyaXQg
cHJvcGVydHkgInRvSlNPTigpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKLVBBU1MgVGVzdCB0b0pT
T04gb3BlcmF0aW9uIG9mIFVSTCAKK1BBU1MgVVJMIGludGVyZmFjZTogdG9KU09OIG9wZXJhdGlv
biBvbiBuZXcgVVJMKCJodHRwOi8vZm9vIikgCiBQQVNTIFVSTFNlYXJjaFBhcmFtcyBpbnRlcmZh
Y2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IAogUEFTUyBV
UkxTZWFyY2hQYXJhbXMgaW50ZXJmYWNlIG9iamVjdCBsZW5ndGggCiBQQVNTIFVSTFNlYXJjaFBh
cmFtcyBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUgCkBAIC01MCwxMyArNTAsOCBAQCBQQVNTIFVSTFNl
YXJjaFBhcmFtcyBpbnRlcmZhY2U6IG9wZXJhdGlvbiBnZXRBbGwoVVNWU3RyaW5nKQogUEFTUyBV
UkxTZWFyY2hQYXJhbXMgaW50ZXJmYWNlOiBvcGVyYXRpb24gaGFzKFVTVlN0cmluZykgCiBQQVNT
IFVSTFNlYXJjaFBhcmFtcyBpbnRlcmZhY2U6IG9wZXJhdGlvbiBzZXQoVVNWU3RyaW5nLCBVU1ZT
dHJpbmcpIAogUEFTUyBVUkxTZWFyY2hQYXJhbXMgaW50ZXJmYWNlOiBvcGVyYXRpb24gc29ydCgp
IAotUEFTUyBUZXN0aW5nIFN5bWJvbC5pdGVyYXRvciBwcm9wZXJ0eSBvZiBpdGVyYWJsZSBpbnRl
cmZhY2UgVVJMU2VhcmNoUGFyYW1zIAotUEFTUyBUZXN0aW5nIHBhaXIgaXRlcmFibGUgaW50ZXJm
YWNlIFVSTFNlYXJjaFBhcmFtcyAKK1BBU1MgVVJMU2VhcmNoUGFyYW1zIGludGVyZmFjZTogaXRl
cmFibGU8VVNWU3RyaW5nLCBVU1ZTdHJpbmc+IAogUEFTUyBVUkxTZWFyY2hQYXJhbXMgaW50ZXJm
YWNlOiBzdHJpbmdpZmllciAKLVBBU1MgVVJMU2VhcmNoUGFyYW1zIGludGVyZmFjZTogb3BlcmF0
aW9uIGVudHJpZXMoKSAKLVBBU1MgVVJMU2VhcmNoUGFyYW1zIGludGVyZmFjZTogb3BlcmF0aW9u
IGtleXMoKSAKLVBBU1MgVVJMU2VhcmNoUGFyYW1zIGludGVyZmFjZTogb3BlcmF0aW9uIHZhbHVl
cygpIAotUEFTUyBVUkxTZWFyY2hQYXJhbXMgaW50ZXJmYWNlOiBvcGVyYXRpb24gZm9yRWFjaChm
dW5jdGlvbiwgYW55KSAKIFBBU1MgVVJMU2VhcmNoUGFyYW1zIG11c3QgYmUgcHJpbWFyeSBpbnRl
cmZhY2Ugb2YgbmV3IFVSTFNlYXJjaFBhcmFtcygiaGk9dGhlcmUmdGhhbms9eW91IikgCiBQQVNT
IFN0cmluZ2lmaWNhdGlvbiBvZiBuZXcgVVJMU2VhcmNoUGFyYW1zKCJoaT10aGVyZSZ0aGFuaz15
b3UiKSAKIFBBU1MgVVJMU2VhcmNoUGFyYW1zIGludGVyZmFjZTogbmV3IFVSTFNlYXJjaFBhcmFt
cygiaGk9dGhlcmUmdGhhbms9eW91IikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJhcHBlbmQoVVNW
U3RyaW5nLCBVU1ZTdHJpbmcpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKQEAgLTcyLDkgKzY3LDQg
QEAgUEFTUyBVUkxTZWFyY2hQYXJhbXMgaW50ZXJmYWNlOiBjYWxsaW5nIGhhcyhVU1ZTdHJpbmcp
IG9uIG5ldyBVUkxTZWFyY2hQYXJhbXMoImgKIFBBU1MgVVJMU2VhcmNoUGFyYW1zIGludGVyZmFj
ZTogbmV3IFVSTFNlYXJjaFBhcmFtcygiaGk9dGhlcmUmdGhhbms9eW91IikgbXVzdCBpbmhlcml0
IHByb3BlcnR5ICJzZXQoVVNWU3RyaW5nLCBVU1ZTdHJpbmcpIiB3aXRoIHRoZSBwcm9wZXIgdHlw
ZSAKIFBBU1MgVVJMU2VhcmNoUGFyYW1zIGludGVyZmFjZTogY2FsbGluZyBzZXQoVVNWU3RyaW5n
LCBVU1ZTdHJpbmcpIG9uIG5ldyBVUkxTZWFyY2hQYXJhbXMoImhpPXRoZXJlJnRoYW5rPXlvdSIp
IHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCiBQQVNTIFVSTFNl
YXJjaFBhcmFtcyBpbnRlcmZhY2U6IG5ldyBVUkxTZWFyY2hQYXJhbXMoImhpPXRoZXJlJnRoYW5r
PXlvdSIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAic29ydCgpIiB3aXRoIHRoZSBwcm9wZXIgdHlw
ZSAKLVBBU1MgVVJMU2VhcmNoUGFyYW1zIGludGVyZmFjZTogbmV3IFVSTFNlYXJjaFBhcmFtcygi
aGk9dGhlcmUmdGhhbms9eW91IikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJlbnRyaWVzKCkiIHdp
dGggdGhlIHByb3BlciB0eXBlIAotUEFTUyBVUkxTZWFyY2hQYXJhbXMgaW50ZXJmYWNlOiBuZXcg
VVJMU2VhcmNoUGFyYW1zKCJoaT10aGVyZSZ0aGFuaz15b3UiKSBtdXN0IGluaGVyaXQgcHJvcGVy
dHkgImtleXMoKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCi1QQVNTIFVSTFNlYXJjaFBhcmFtcyBp
bnRlcmZhY2U6IG5ldyBVUkxTZWFyY2hQYXJhbXMoImhpPXRoZXJlJnRoYW5rPXlvdSIpIG11c3Qg
aW5oZXJpdCBwcm9wZXJ0eSAidmFsdWVzKCkiIHdpdGggdGhlIHByb3BlciB0eXBlIAotUEFTUyBV
UkxTZWFyY2hQYXJhbXMgaW50ZXJmYWNlOiBuZXcgVVJMU2VhcmNoUGFyYW1zKCJoaT10aGVyZSZ0
aGFuaz15b3UiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImZvckVhY2goZnVuY3Rpb24sIGFueSki
IHdpdGggdGhlIHByb3BlciB0eXBlIAotUEFTUyBVUkxTZWFyY2hQYXJhbXMgaW50ZXJmYWNlOiBj
YWxsaW5nIGZvckVhY2goZnVuY3Rpb24sIGFueSkgb24gbmV3IFVSTFNlYXJjaFBhcmFtcygiaGk9
dGhlcmUmdGhhbms9eW91Iikgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVF
cnJvciAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy91cmwvaW50ZXJmYWNlcy5hbnkud29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdXJsL2ludGVyZmFjZXMuYW55Lndv
cmtlci1leHBlY3RlZC50eHQKaW5kZXggMGRhMTExZjhhNjAzMTI4ZjViZjQ5YzdkMjVlNmRjNDhm
NmNlOGY1MS4uMjQ4OTNiOTI1YzQ3MDEzZGJhZWYzNzk1ZDQyNTFiMjI1ZTA4NzE0OSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy91cmwvaW50
ZXJmYWNlcy5hbnkud29ya2VyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3VybC9pbnRlcmZhY2VzLmFueS53b3JrZXItZXhwZWN0
ZWQudHh0CkBAIC0zNiw3ICszNiw3IEBAIFBBU1MgVVJMIGludGVyZmFjZTogbmV3IFVSTCgiaHR0
cDovL2ZvbyIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAic2VhcmNoIiB3aXRoIHRoCiBQQVNTIFVS
TCBpbnRlcmZhY2U6IG5ldyBVUkwoImh0dHA6Ly9mb28iKSBtdXN0IGluaGVyaXQgcHJvcGVydHkg
InNlYXJjaFBhcmFtcyIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCiBQQVNTIFVSTCBpbnRlcmZhY2U6
IG5ldyBVUkwoImh0dHA6Ly9mb28iKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImhhc2giIHdpdGgg
dGhlIHByb3BlciB0eXBlIAogUEFTUyBVUkwgaW50ZXJmYWNlOiBuZXcgVVJMKCJodHRwOi8vZm9v
IikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJ0b0pTT04oKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUg
Ci1QQVNTIFRlc3QgdG9KU09OIG9wZXJhdGlvbiBvZiBVUkwgCitQQVNTIFVSTCBpbnRlcmZhY2U6
IHRvSlNPTiBvcGVyYXRpb24gb24gbmV3IFVSTCgiaHR0cDovL2ZvbyIpIAogUEFTUyBVUkxTZWFy
Y2hQYXJhbXMgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNl
IG9iamVjdCAKIFBBU1MgVVJMU2VhcmNoUGFyYW1zIGludGVyZmFjZSBvYmplY3QgbGVuZ3RoIAog
UEFTUyBVUkxTZWFyY2hQYXJhbXMgaW50ZXJmYWNlIG9iamVjdCBuYW1lIApAQCAtNTAsMTMgKzUw
LDggQEAgUEFTUyBVUkxTZWFyY2hQYXJhbXMgaW50ZXJmYWNlOiBvcGVyYXRpb24gZ2V0QWxsKFVT
VlN0cmluZykKIFBBU1MgVVJMU2VhcmNoUGFyYW1zIGludGVyZmFjZTogb3BlcmF0aW9uIGhhcyhV
U1ZTdHJpbmcpIAogUEFTUyBVUkxTZWFyY2hQYXJhbXMgaW50ZXJmYWNlOiBvcGVyYXRpb24gc2V0
KFVTVlN0cmluZywgVVNWU3RyaW5nKSAKIFBBU1MgVVJMU2VhcmNoUGFyYW1zIGludGVyZmFjZTog
b3BlcmF0aW9uIHNvcnQoKSAKLVBBU1MgVGVzdGluZyBTeW1ib2wuaXRlcmF0b3IgcHJvcGVydHkg
b2YgaXRlcmFibGUgaW50ZXJmYWNlIFVSTFNlYXJjaFBhcmFtcyAKLVBBU1MgVGVzdGluZyBwYWly
IGl0ZXJhYmxlIGludGVyZmFjZSBVUkxTZWFyY2hQYXJhbXMgCitQQVNTIFVSTFNlYXJjaFBhcmFt
cyBpbnRlcmZhY2U6IGl0ZXJhYmxlPFVTVlN0cmluZywgVVNWU3RyaW5nPiAKIFBBU1MgVVJMU2Vh
cmNoUGFyYW1zIGludGVyZmFjZTogc3RyaW5naWZpZXIgCi1QQVNTIFVSTFNlYXJjaFBhcmFtcyBp
bnRlcmZhY2U6IG9wZXJhdGlvbiBlbnRyaWVzKCkgCi1QQVNTIFVSTFNlYXJjaFBhcmFtcyBpbnRl
cmZhY2U6IG9wZXJhdGlvbiBrZXlzKCkgCi1QQVNTIFVSTFNlYXJjaFBhcmFtcyBpbnRlcmZhY2U6
IG9wZXJhdGlvbiB2YWx1ZXMoKSAKLVBBU1MgVVJMU2VhcmNoUGFyYW1zIGludGVyZmFjZTogb3Bl
cmF0aW9uIGZvckVhY2goZnVuY3Rpb24sIGFueSkgCiBQQVNTIFVSTFNlYXJjaFBhcmFtcyBtdXN0
IGJlIHByaW1hcnkgaW50ZXJmYWNlIG9mIG5ldyBVUkxTZWFyY2hQYXJhbXMoImhpPXRoZXJlJnRo
YW5rPXlvdSIpIAogUEFTUyBTdHJpbmdpZmljYXRpb24gb2YgbmV3IFVSTFNlYXJjaFBhcmFtcygi
aGk9dGhlcmUmdGhhbms9eW91IikgCiBQQVNTIFVSTFNlYXJjaFBhcmFtcyBpbnRlcmZhY2U6IG5l
dyBVUkxTZWFyY2hQYXJhbXMoImhpPXRoZXJlJnRoYW5rPXlvdSIpIG11c3QgaW5oZXJpdCBwcm9w
ZXJ0eSAiYXBwZW5kKFVTVlN0cmluZywgVVNWU3RyaW5nKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUg
CkBAIC03Miw5ICs2Nyw0IEBAIFBBU1MgVVJMU2VhcmNoUGFyYW1zIGludGVyZmFjZTogY2FsbGlu
ZyBoYXMoVVNWU3RyaW5nKSBvbiBuZXcgVVJMU2VhcmNoUGFyYW1zKCJoCiBQQVNTIFVSTFNlYXJj
aFBhcmFtcyBpbnRlcmZhY2U6IG5ldyBVUkxTZWFyY2hQYXJhbXMoImhpPXRoZXJlJnRoYW5rPXlv
dSIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAic2V0KFVTVlN0cmluZywgVVNWU3RyaW5nKSIgd2l0
aCB0aGUgcHJvcGVyIHR5cGUgCiBQQVNTIFVSTFNlYXJjaFBhcmFtcyBpbnRlcmZhY2U6IGNhbGxp
bmcgc2V0KFVTVlN0cmluZywgVVNWU3RyaW5nKSBvbiBuZXcgVVJMU2VhcmNoUGFyYW1zKCJoaT10
aGVyZSZ0aGFuaz15b3UiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVy
cm9yIAogUEFTUyBVUkxTZWFyY2hQYXJhbXMgaW50ZXJmYWNlOiBuZXcgVVJMU2VhcmNoUGFyYW1z
KCJoaT10aGVyZSZ0aGFuaz15b3UiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInNvcnQoKSIgd2l0
aCB0aGUgcHJvcGVyIHR5cGUgCi1QQVNTIFVSTFNlYXJjaFBhcmFtcyBpbnRlcmZhY2U6IG5ldyBV
UkxTZWFyY2hQYXJhbXMoImhpPXRoZXJlJnRoYW5rPXlvdSIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0
eSAiZW50cmllcygpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKLVBBU1MgVVJMU2VhcmNoUGFyYW1z
IGludGVyZmFjZTogbmV3IFVSTFNlYXJjaFBhcmFtcygiaGk9dGhlcmUmdGhhbms9eW91IikgbXVz
dCBpbmhlcml0IHByb3BlcnR5ICJrZXlzKCkiIHdpdGggdGhlIHByb3BlciB0eXBlIAotUEFTUyBV
UkxTZWFyY2hQYXJhbXMgaW50ZXJmYWNlOiBuZXcgVVJMU2VhcmNoUGFyYW1zKCJoaT10aGVyZSZ0
aGFuaz15b3UiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInZhbHVlcygpIiB3aXRoIHRoZSBwcm9w
ZXIgdHlwZSAKLVBBU1MgVVJMU2VhcmNoUGFyYW1zIGludGVyZmFjZTogbmV3IFVSTFNlYXJjaFBh
cmFtcygiaGk9dGhlcmUmdGhhbms9eW91IikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJmb3JFYWNo
KGZ1bmN0aW9uLCBhbnkpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKLVBBU1MgVVJMU2VhcmNoUGFy
YW1zIGludGVyZmFjZTogY2FsbGluZyBmb3JFYWNoKGZ1bmN0aW9uLCBhbnkpIG9uIG5ldyBVUkxT
ZWFyY2hQYXJhbXMoImhpPXRoZXJlJnRoYW5rPXlvdSIpIHdpdGggdG9vIGZldyBhcmd1bWVudHMg
bXVzdCB0aHJvdyBUeXBlRXJyb3IgCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW9i
dWZmZXItaW50ZXJmYWNlL2lkbC10ZXN0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVk
aW9idWZmZXItaW50ZXJmYWNlL2lkbC10ZXN0LWV4cGVjdGVkLnR4dAppbmRleCBlNDNhNWZiNGJm
NjQyMjlmNmZjNmFlYjUxNmI2NTRhYjIzZGYyZjU5Li41NWY3YTI0ZDc2OGUxNWMyMTBjZDBjMmU0
M2NhN2U3MTA2ZGVkMDVhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvYnVmZmVyLWlu
dGVyZmFjZS9pZGwtdGVzdC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb2J1
ZmZlci1pbnRlcmZhY2UvaWRsLXRlc3QtZXhwZWN0ZWQudHh0CkBAIC0xLDUgKzEsMyBAQAotQ09O
U09MRSBNRVNTQUdFOiBsaW5lIDQ4MjogY2FsbGJhY2sgbm90IHlldCBzdXBwb3J0ZWQKLUNPTlNP
TEUgTUVTU0FHRTogbGluZSA0ODI6IGNhbGxiYWNrIG5vdCB5ZXQgc3VwcG9ydGVkCiBkaWN0aW9u
YXJ5IEF1ZGlvQnVmZmVyT3B0aW9ucyB7CiAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBudW1i
ZXJPZkNoYW5uZWxzID0gMTsKICAgICByZXF1aXJlZCB1bnNpZ25lZCBsb25nIGxlbmd0aDsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
YXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW9kZXN0aW5hdGlvbm5vZGUtaW50ZXJmYWNlL2lk
bC10ZXN0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW9kZXN0aW5hdGlvbm5vZGUt
aW50ZXJmYWNlL2lkbC10ZXN0LWV4cGVjdGVkLnR4dAppbmRleCA1MDdmMTM5MGU2N2IzZmY2Y2Y3
MTg1ZWQyMDFiNThiYzhiNzcxOGIzLi4wMmY4Njc3Mjc0YWNhNTkyMGMxMzE2YmIwNzc1MGMzZThi
NTJhN2RiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvZGVzdGluYXRpb25ub2RlLWlu
dGVyZmFjZS9pZGwtdGVzdC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb2Rl
c3RpbmF0aW9ubm9kZS1pbnRlcmZhY2UvaWRsLXRlc3QtZXhwZWN0ZWQudHh0CkBAIC0xLDUgKzEs
MyBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDQ4MjogY2FsbGJhY2sgbm90IHlldCBzdXBwb3J0
ZWQKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA0ODI6IGNhbGxiYWNrIG5vdCB5ZXQgc3VwcG9ydGVk
CiBpbnRlcmZhY2UgQXVkaW9EZXN0aW5hdGlvbk5vZGUgOiBBdWRpb05vZGUgewogCiAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbWF4Q2hhbm5lbENvdW50OwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90
aGUtYXVkaW8tYXBpL3RoZS1kZWxheW5vZGUtaW50ZXJmYWNlL2lkbC10ZXN0LWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8v
dGhlLWF1ZGlvLWFwaS90aGUtZGVsYXlub2RlLWludGVyZmFjZS9pZGwtdGVzdC1leHBlY3RlZC50
eHQKaW5kZXggZjBlODBlNTc1MGYzYzYwZGYxMjgwMDczNzNhMDkwY2VlYzI2MmVkYi4uMjA3YjRk
MGI5ZTA5MGIxNTliZGEzNWEyNjk3YmQ2NThlODY4OTg0MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBp
L3RoZS1kZWxheW5vZGUtaW50ZXJmYWNlL2lkbC10ZXN0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRp
by1hcGkvdGhlLWRlbGF5bm9kZS1pbnRlcmZhY2UvaWRsLXRlc3QtZXhwZWN0ZWQudHh0CkBAIC0x
LDUgKzEsMyBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDQ4MjogY2FsbGJhY2sgbm90IHlldCBz
dXBwb3J0ZWQKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA0ODI6IGNhbGxiYWNrIG5vdCB5ZXQgc3Vw
cG9ydGVkCiBkaWN0aW9uYXJ5IERlbGF5T3B0aW9ucyA6IEF1ZGlvTm9kZU9wdGlvbnMgewogICAg
ICAgICAgICAgIGRvdWJsZSBtYXhEZWxheVRpbWUgPSAxOwogICAgICAgICAgICAgIGRvdWJsZSBk
ZWxheVRpbWUgPSAwOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1nYWlubm9kZS1pbnRlcmZh
Y2UvaWRsLXRlc3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1nYWlubm9kZS1pbnRlcmZh
Y2UvaWRsLXRlc3QtZXhwZWN0ZWQudHh0CmluZGV4IDJhNjFjYTY3YzVlNzFhNDdhM2VjZWMyYjcw
N2U1MjE5ZTE5Nzc4ZWMuLmY1M2IxZWEzZjQyNzFlM2FlNmU1ZGNiNWNkMDU2ODZkNThlMDMzMGEg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtZ2Fpbm5vZGUtaW50ZXJmYWNlL2lkbC10ZXN0LWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWdhaW5ub2RlLWludGVyZmFjZS9pZGwtdGVz
dC1leHBlY3RlZC50eHQKQEAgLTEsNSArMSwzIEBACi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNDgy
OiBjYWxsYmFjayBub3QgeWV0IHN1cHBvcnRlZAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDQ4Mjog
Y2FsbGJhY2sgbm90IHlldCBzdXBwb3J0ZWQKIGRpY3Rpb25hcnkgR2Fpbk9wdGlvbnMgOiBBdWRp
b05vZGVPcHRpb25zIHsKICAgICAgICAgICAgICBmbG9hdCBnYWluID0gMS4wOwogfTsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L2lkbGhhcm5lc3MuaHR0cHMud2luZG93LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL2lkbGhhcm5lc3MuaHR0cHMud2luZG93
LWV4cGVjdGVkLnR4dAppbmRleCBhN2VhMzI3OTFjYjAwNjkzZjM3OTRhMjNkMzI4NGE5MjY3OWM1
MmZmLi4yNTEyYzczZGU0YzU0OWFlMmY2NWUzZWM5ZGRlMTY0ZjNiZDIwYmJhIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9pZGxo
YXJuZXNzLmh0dHBzLndpbmRvdy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvaWRsaGFybmVzcy5odHRwcy53aW5kb3ct
ZXhwZWN0ZWQudHh0CkBAIC0xLDMwICsxLDEzIEBACiAKLUZBSUwgaWRsX3Rlc3Qgc2V0dXAgcHJv
bWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiR290IGFu
IGVycm9yIGJlZm9yZSBwYXJzaW5nIGFueSBuYW1lZCBkZWZpbml0aW9uOiBVbnJlY29nbmlzZWQg
dG9rZW5zLCBsaW5lIDEgKHRva2VuczogIntcImVycm9yXCI6IHtcIm1lc3NhZ2VcIiIpCi1bCi0g
ICAgewotICAgICAgICAidHlwZSI6ICJ7IiwKLSAgICAgICAgInZhbHVlIjogInsiLAotICAgICAg
ICAidHJpdmlhIjogIiIKLSAgICB9LAotICAgIHsKLSAgICAgICAgInR5cGUiOiAic3RyaW5nIiwK
LSAgICAgICAgInZhbHVlIjogIlwiZXJyb3JcIiIsCi0gICAgICAgICJ0cml2aWEiOiAiIgotICAg
IH0sCi0gICAgewotICAgICAgICAidHlwZSI6ICI6IiwKLSAgICAgICAgInZhbHVlIjogIjoiLAot
ICAgICAgICAidHJpdmlhIjogIiIKLSAgICB9LAotICAgIHsKLSAgICAgICAgInR5cGUiOiAieyIs
Ci0gICAgICAgICJ2YWx1ZSI6ICJ7IiwKLSAgICAgICAgInRyaXZpYSI6ICIgIgotICAgIH0sCi0g
ICAgewotICAgICAgICAidHlwZSI6ICJzdHJpbmciLAotICAgICAgICAidmFsdWUiOiAiXCJtZXNz
YWdlXCIiLAotICAgICAgICAidHJpdmlhIjogIiIKLSAgICB9Ci1dIgorRkFJTCBpZGxfdGVzdCBz
ZXR1cCBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0
ICJSVENFcnJvciBpbmhlcml0cyBET01FeGNlcHRpb24sIGJ1dCBET01FeGNlcHRpb24gaXMgdW5k
ZWZpbmVkLiIKK1BBU1MgVGVzdCBkcml2ZXIgZm9yIGFzeW5jSW5pdENlcnRpZmljYXRlIAorRkFJ
TCBUZXN0IGRyaXZlciBmb3IgYXN5bmNJbml0VHJhbnNwb3J0cyBhc3NlcnRfdW5yZWFjaGVkOiBG
YWlsZWQgdG8gcnVuIGFzeW5jSW5pdFRyYW5zcG9ydHM6IFJlZmVyZW5jZUVycm9yOiBDYW4ndCBm
aW5kIHZhcmlhYmxlOiBSVENTY3RwVHJhbnNwb3J0IFJlYWNoZWQgdW5yZWFjaGFibGUgY29kZQor
UEFTUyBUZXN0IGRyaXZlciBmb3IgYXN5bmNJbml0TWVkaWFTdHJlYW1UcmFjayAKK1BBU1MgUGFy
dGlhbCBpbnRlcmZhY2UgUlRDUGVlckNvbm5lY3Rpb246IG9yaWdpbmFsIGludGVyZmFjZSBkZWZp
bmVkIAorUEFTUyBQYXJ0aWFsIGRpY3Rpb25hcnkgUlRDT2ZmZXJPcHRpb25zOiBvcmlnaW5hbCBk
aWN0aW9uYXJ5IGRlZmluZWQgCitQQVNTIFBhcnRpYWwgaW50ZXJmYWNlIFJUQ1BlZXJDb25uZWN0
aW9uWzJdOiBvcmlnaW5hbCBpbnRlcmZhY2UgZGVmaW5lZCAKK1BBU1MgUGFydGlhbCBpbnRlcmZh
Y2UgUlRDUGVlckNvbm5lY3Rpb25bM106IG9yaWdpbmFsIGludGVyZmFjZSBkZWZpbmVkIAorUEFT
UyBQYXJ0aWFsIGludGVyZmFjZSBSVENQZWVyQ29ubmVjdGlvbls0XTogb3JpZ2luYWwgaW50ZXJm
YWNlIGRlZmluZWQgCitQQVNTIFBhcnRpYWwgaW50ZXJmYWNlIFJUQ1J0cFNlbmRlcjogb3JpZ2lu
YWwgaW50ZXJmYWNlIGRlZmluZWQgCitQQVNTIFBhcnRpYWwgaW50ZXJmYWNlIFJUQ1BlZXJDb25u
ZWN0aW9uWzVdOiBvcmlnaW5hbCBpbnRlcmZhY2UgZGVmaW5lZCAKIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL2ludGVyZmFj
ZXMud29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd29ya2Vycy9pbnRlcmZhY2VzLndvcmtlci1leHBlY3RlZC50eHQKaW5kZXgg
M2ZhNTAzNDczODcyMjEzYTdmMzJiNzBjYTFlNjA4OWJlYjkxNTdiZS4uMWFhZjhjZjM5OWUwODRh
ZmM4MDMyNDRkYzA4ODMxNzBhZTRjMmNiZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL2ludGVyZmFjZXMud29ya2VyLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dvcmtlcnMvaW50ZXJmYWNlcy53b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0xLDE2MyArMSw5IEBA
CitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTc3NDogVHlwZUVycm9yOiBudWxsIGlzIG5vdCBhbiBv
YmplY3QgKGV2YWx1YXRpbmcgJ3RoaXMubWVzc2FnZV90YXJnZXQucmVtb3ZlRXZlbnRMaXN0ZW5l
cicpCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgNDU3OiBXZWJJRExQYXJzZUVycm9yOiBTeW50YXgg
ZXJyb3IgYXQgbGluZSA4Miwgc2luY2UgYGludGVyZmFjZSBXaW5kb3dPcldvcmtlckdsb2JhbFNj
b3BlYDoKK1dvcmtlckdsb2JhbFNjb3BlIGltcGxlbWVudHMgV2luZG93T3JXb3JrZXJHbG9iYWxT
Y29wZTsKK14gVW5yZWNvZ25pc2VkIHRva2VucwogCi1QQVNTIEV2ZW50VGFyZ2V0IGludGVyZmFj
ZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgCi1QQVNTIEV2
ZW50VGFyZ2V0IGludGVyZmFjZSBvYmplY3QgbGVuZ3RoIAotUEFTUyBFdmVudFRhcmdldCBpbnRl
cmZhY2Ugb2JqZWN0IG5hbWUgCi1QQVNTIEV2ZW50VGFyZ2V0IGludGVyZmFjZTogZXhpc3RlbmNl
IGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IAotUEFTUyBFdmVu
dFRhcmdldCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ug
cHJvdG90eXBlIG9iamVjdCdzICJjb25zdHJ1Y3RvciIgcHJvcGVydHkgCi1QQVNTIEV2ZW50VGFy
Z2V0IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90
b3R5cGUgb2JqZWN0J3MgQEB1bnNjb3BhYmxlcyBwcm9wZXJ0eSAKLVBBU1MgRXZlbnRUYXJnZXQg
aW50ZXJmYWNlOiBvcGVyYXRpb24gYWRkRXZlbnRMaXN0ZW5lcihET01TdHJpbmcsIEV2ZW50TGlz
dGVuZXIsIFtvYmplY3QgT2JqZWN0XSxbb2JqZWN0IE9iamVjdF0pIAotUEFTUyBFdmVudFRhcmdl
dCBpbnRlcmZhY2U6IG9wZXJhdGlvbiByZW1vdmVFdmVudExpc3RlbmVyKERPTVN0cmluZywgRXZl
bnRMaXN0ZW5lciwgW29iamVjdCBPYmplY3RdLFtvYmplY3QgT2JqZWN0XSkgCi1QQVNTIEV2ZW50
VGFyZ2V0IGludGVyZmFjZTogb3BlcmF0aW9uIGRpc3BhdGNoRXZlbnQoRXZlbnQpIAotUEFTUyBF
dmVudExpc3RlbmVyIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVy
ZmFjZSBvYmplY3QgCi1QQVNTIFdvcmtlckdsb2JhbFNjb3BlIGludGVyZmFjZTogZXhpc3RlbmNl
IGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgCi1QQVNTIFdvcmtlckdsb2JhbFNj
b3BlIGludGVyZmFjZSBvYmplY3QgbGVuZ3RoIAotUEFTUyBXb3JrZXJHbG9iYWxTY29wZSBpbnRl
cmZhY2Ugb2JqZWN0IG5hbWUgCi1QQVNTIFdvcmtlckdsb2JhbFNjb3BlIGludGVyZmFjZTogZXhp
c3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IAotUEFT
UyBXb3JrZXJHbG9iYWxTY29wZSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBv
ZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzICJjb25zdHJ1Y3RvciIgcHJvcGVydHkgCi1Q
QVNTIFdvcmtlckdsb2JhbFNjb3BlIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVz
IG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgQEB1bnNjb3BhYmxlcyBwcm9wZXJ0eSAK
LVBBU1MgV29ya2VyR2xvYmFsU2NvcGUgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgc2VsZiAKLVBBU1Mg
V29ya2VyR2xvYmFsU2NvcGUgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgbG9jYXRpb24gCi1QQVNTIFdv
cmtlckdsb2JhbFNjb3BlIGludGVyZmFjZTogYXR0cmlidXRlIG5hdmlnYXRvciAKLVBBU1MgV29y
a2VyR2xvYmFsU2NvcGUgaW50ZXJmYWNlOiBvcGVyYXRpb24gaW1wb3J0U2NyaXB0cyhVU1ZTdHJp
bmcpIAotUEFTUyBXb3JrZXJHbG9iYWxTY29wZSBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBvbmVycm9y
IAotRkFJTCBXb3JrZXJHbG9iYWxTY29wZSBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBvbmxhbmd1YWdl
Y2hhbmdlIGFzc2VydF90cnVlOiBUaGUgcHJvdG90eXBlIG9iamVjdCBtdXN0IGhhdmUgYSBwcm9w
ZXJ0eSAib25sYW5ndWFnZWNoYW5nZSIgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLVBBU1MgV29y
a2VyR2xvYmFsU2NvcGUgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgb25vZmZsaW5lIAotUEFTUyBXb3Jr
ZXJHbG9iYWxTY29wZSBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBvbm9ubGluZSAKLVBBU1MgV29ya2Vy
R2xvYmFsU2NvcGUgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgb25yZWplY3Rpb25oYW5kbGVkIAotUEFT
UyBXb3JrZXJHbG9iYWxTY29wZSBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBvbnVuaGFuZGxlZHJlamVj
dGlvbiAKLVBBU1MgV29ya2VyR2xvYmFsU2NvcGUgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgb3JpZ2lu
IAotUEFTUyBXb3JrZXJHbG9iYWxTY29wZSBpbnRlcmZhY2U6IG9wZXJhdGlvbiBidG9hKERPTVN0
cmluZykgCi1QQVNTIFdvcmtlckdsb2JhbFNjb3BlIGludGVyZmFjZTogb3BlcmF0aW9uIGF0b2Io
RE9NU3RyaW5nKSAKLVBBU1MgV29ya2VyR2xvYmFsU2NvcGUgaW50ZXJmYWNlOiBvcGVyYXRpb24g
c2V0VGltZW91dChUaW1lckhhbmRsZXIsIGxvbmcsIGFueSkgCi1QQVNTIFdvcmtlckdsb2JhbFNj
b3BlIGludGVyZmFjZTogb3BlcmF0aW9uIGNsZWFyVGltZW91dChsb25nKSAKLVBBU1MgV29ya2Vy
R2xvYmFsU2NvcGUgaW50ZXJmYWNlOiBvcGVyYXRpb24gc2V0SW50ZXJ2YWwoVGltZXJIYW5kbGVy
LCBsb25nLCBhbnkpIAotUEFTUyBXb3JrZXJHbG9iYWxTY29wZSBpbnRlcmZhY2U6IG9wZXJhdGlv
biBjbGVhckludGVydmFsKGxvbmcpIAotUEFTUyBXb3JrZXJHbG9iYWxTY29wZSBpbnRlcmZhY2U6
IG9wZXJhdGlvbiBjcmVhdGVJbWFnZUJpdG1hcChJbWFnZUJpdG1hcFNvdXJjZSwgSW1hZ2VCaXRt
YXBPcHRpb25zKSAKLVBBU1MgV29ya2VyR2xvYmFsU2NvcGUgaW50ZXJmYWNlOiBvcGVyYXRpb24g
Y3JlYXRlSW1hZ2VCaXRtYXAoSW1hZ2VCaXRtYXBTb3VyY2UsIGxvbmcsIGxvbmcsIGxvbmcsIGxv
bmcsIEltYWdlQml0bWFwT3B0aW9ucykgCi1QQVNTIERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3Bl
IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3Qg
Ci1QQVNTIERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlIGludGVyZmFjZSBvYmplY3QgbGVuZ3Ro
IAotUEFTUyBEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZSBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUg
Ci1QQVNTIERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlIGludGVyZmFjZTogZXhpc3RlbmNlIGFu
ZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IAotUEFTUyBEZWRpY2F0
ZWRXb3JrZXJHbG9iYWxTY29wZSBpbnRlcmZhY2U6IGludGVybmFsIFtbU2V0UHJvdG90eXBlT2Zd
XSBtZXRob2Qgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgLSBzZXR0aW5nIHRvIGEgbmV3
IHZhbHVlIHZpYSBPYmplY3Quc2V0UHJvdG90eXBlT2Ygc2hvdWxkIHRocm93IGEgVHlwZUVycm9y
IAotUEFTUyBEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZSBpbnRlcmZhY2U6IGludGVybmFsIFtb
U2V0UHJvdG90eXBlT2ZdXSBtZXRob2Qgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgLSBz
ZXR0aW5nIHRvIGEgbmV3IHZhbHVlIHZpYSBfX3Byb3RvX18gc2hvdWxkIHRocm93IGEgVHlwZUVy
cm9yIAotUEFTUyBEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZSBpbnRlcmZhY2U6IGludGVybmFs
IFtbU2V0UHJvdG90eXBlT2ZdXSBtZXRob2Qgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3Qg
LSBzZXR0aW5nIHRvIGEgbmV3IHZhbHVlIHZpYSBSZWZsZWN0LnNldFByb3RvdHlwZU9mIHNob3Vs
ZCByZXR1cm4gZmFsc2UgCi1QQVNTIERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlIGludGVyZmFj
ZTogaW50ZXJuYWwgW1tTZXRQcm90b3R5cGVPZl1dIG1ldGhvZCBvZiBpbnRlcmZhY2UgcHJvdG90
eXBlIG9iamVjdCAtIHNldHRpbmcgdG8gaXRzIG9yaWdpbmFsIHZhbHVlIHZpYSBPYmplY3Quc2V0
UHJvdG90eXBlT2Ygc2hvdWxkIG5vdCB0aHJvdyAKLVBBU1MgRGVkaWNhdGVkV29ya2VyR2xvYmFs
U2NvcGUgaW50ZXJmYWNlOiBpbnRlcm5hbCBbW1NldFByb3RvdHlwZU9mXV0gbWV0aG9kIG9mIGlu
dGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IC0gc2V0dGluZyB0byBpdHMgb3JpZ2luYWwgdmFsdWUg
dmlhIF9fcHJvdG9fXyBzaG91bGQgbm90IHRocm93IAotUEFTUyBEZWRpY2F0ZWRXb3JrZXJHbG9i
YWxTY29wZSBpbnRlcmZhY2U6IGludGVybmFsIFtbU2V0UHJvdG90eXBlT2ZdXSBtZXRob2Qgb2Yg
aW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgLSBzZXR0aW5nIHRvIGl0cyBvcmlnaW5hbCB2YWx1
ZSB2aWEgUmVmbGVjdC5zZXRQcm90b3R5cGVPZiBzaG91bGQgcmV0dXJuIHRydWUgCi1QQVNTIERl
ZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0
aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgImNvbnN0cnVjdG9yIiBwcm9wZXJ0
eSAKLVBBU1MgRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUgaW50ZXJmYWNlOiBleGlzdGVuY2Ug
YW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyBAQHVuc2NvcGFi
bGVzIHByb3BlcnR5IAotUEFTUyBEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZSBpbnRlcmZhY2U6
IGF0dHJpYnV0ZSBuYW1lIAotUEFTUyBEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZSBpbnRlcmZh
Y2U6IG9wZXJhdGlvbiBwb3N0TWVzc2FnZShhbnksIFtvYmplY3QgT2JqZWN0XSkgCi1QQVNTIERl
ZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlIGludGVyZmFjZTogb3BlcmF0aW9uIGNsb3NlKCkgCi1Q
QVNTIERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlIGludGVyZmFjZTogYXR0cmlidXRlIG9ubWVz
c2FnZSAKLUZBSUwgRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUgaW50ZXJmYWNlOiBhdHRyaWJ1
dGUgb25tZXNzYWdlZXJyb3IgYXNzZXJ0X293bl9wcm9wZXJ0eTogVGhlIGdsb2JhbCBvYmplY3Qg
bXVzdCBoYXZlIGEgcHJvcGVydHkgIm9ubWVzc2FnZWVycm9yIiBleHBlY3RlZCBwcm9wZXJ0eSAi
b25tZXNzYWdlZXJyb3IiIG1pc3NpbmcKLVBBU1MgRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUg
aW50ZXJmYWNlOiBpbnRlcm5hbCBbW1NldFByb3RvdHlwZU9mXV0gbWV0aG9kIG9mIGdsb2JhbCBw
bGF0Zm9ybSBvYmplY3QgLSBzZXR0aW5nIHRvIGEgbmV3IHZhbHVlIHZpYSBPYmplY3Quc2V0UHJv
dG90eXBlT2Ygc2hvdWxkIHRocm93IGEgVHlwZUVycm9yIAotUEFTUyBEZWRpY2F0ZWRXb3JrZXJH
bG9iYWxTY29wZSBpbnRlcmZhY2U6IGludGVybmFsIFtbU2V0UHJvdG90eXBlT2ZdXSBtZXRob2Qg
b2YgZ2xvYmFsIHBsYXRmb3JtIG9iamVjdCAtIHNldHRpbmcgdG8gYSBuZXcgdmFsdWUgdmlhIF9f
cHJvdG9fXyBzaG91bGQgdGhyb3cgYSBUeXBlRXJyb3IgCi1QQVNTIERlZGljYXRlZFdvcmtlckds
b2JhbFNjb3BlIGludGVyZmFjZTogaW50ZXJuYWwgW1tTZXRQcm90b3R5cGVPZl1dIG1ldGhvZCBv
ZiBnbG9iYWwgcGxhdGZvcm0gb2JqZWN0IC0gc2V0dGluZyB0byBhIG5ldyB2YWx1ZSB2aWEgUmVm
bGVjdC5zZXRQcm90b3R5cGVPZiBzaG91bGQgcmV0dXJuIGZhbHNlIAotUEFTUyBEZWRpY2F0ZWRX
b3JrZXJHbG9iYWxTY29wZSBpbnRlcmZhY2U6IGludGVybmFsIFtbU2V0UHJvdG90eXBlT2ZdXSBt
ZXRob2Qgb2YgZ2xvYmFsIHBsYXRmb3JtIG9iamVjdCAtIHNldHRpbmcgdG8gaXRzIG9yaWdpbmFs
IHZhbHVlIHZpYSBPYmplY3Quc2V0UHJvdG90eXBlT2Ygc2hvdWxkIG5vdCB0aHJvdyAKLVBBU1Mg
RGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUgaW50ZXJmYWNlOiBpbnRlcm5hbCBbW1NldFByb3Rv
dHlwZU9mXV0gbWV0aG9kIG9mIGdsb2JhbCBwbGF0Zm9ybSBvYmplY3QgLSBzZXR0aW5nIHRvIGl0
cyBvcmlnaW5hbCB2YWx1ZSB2aWEgX19wcm90b19fIHNob3VsZCBub3QgdGhyb3cgCi1QQVNTIERl
ZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlIGludGVyZmFjZTogaW50ZXJuYWwgW1tTZXRQcm90b3R5
cGVPZl1dIG1ldGhvZCBvZiBnbG9iYWwgcGxhdGZvcm0gb2JqZWN0IC0gc2V0dGluZyB0byBpdHMg
b3JpZ2luYWwgdmFsdWUgdmlhIFJlZmxlY3Quc2V0UHJvdG90eXBlT2Ygc2hvdWxkIHJldHVybiB0
cnVlIAotUEFTUyBEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZSBtdXN0IGJlIHByaW1hcnkgaW50
ZXJmYWNlIG9mIHNlbGYgCi1QQVNTIFN0cmluZ2lmaWNhdGlvbiBvZiBzZWxmIAotUEFTUyBEZWRp
Y2F0ZWRXb3JrZXJHbG9iYWxTY29wZSBpbnRlcmZhY2U6IHNlbGYgbXVzdCBpbmhlcml0IHByb3Bl
cnR5ICJuYW1lIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKLVBBU1MgRGVkaWNhdGVkV29ya2VyR2xv
YmFsU2NvcGUgaW50ZXJmYWNlOiBzZWxmIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAicG9zdE1lc3Nh
Z2UoYW55LCBbb2JqZWN0IE9iamVjdF0pIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKLVBBU1MgRGVk
aWNhdGVkV29ya2VyR2xvYmFsU2NvcGUgaW50ZXJmYWNlOiBjYWxsaW5nIHBvc3RNZXNzYWdlKGFu
eSwgW29iamVjdCBPYmplY3RdKSBvbiBzZWxmIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0
aHJvdyBUeXBlRXJyb3IgCi1QQVNTIERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlIGludGVyZmFj
ZTogc2VsZiBtdXN0IGluaGVyaXQgcHJvcGVydHkgImNsb3NlKCkiIHdpdGggdGhlIHByb3BlciB0
eXBlIAotUEFTUyBEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZSBpbnRlcmZhY2U6IHNlbGYgbXVz
dCBpbmhlcml0IHByb3BlcnR5ICJvbm1lc3NhZ2UiIHdpdGggdGhlIHByb3BlciB0eXBlIAotRkFJ
TCBEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZSBpbnRlcmZhY2U6IHNlbGYgbXVzdCBpbmhlcml0
IHByb3BlcnR5ICJvbm1lc3NhZ2VlcnJvciIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X293
bl9wcm9wZXJ0eTogZXhwZWN0ZWQgcHJvcGVydHkgIm9ubWVzc2FnZWVycm9yIiBtaXNzaW5nCi1Q
QVNTIFdvcmtlckdsb2JhbFNjb3BlIGludGVyZmFjZTogc2VsZiBtdXN0IGluaGVyaXQgcHJvcGVy
dHkgInNlbGYiIHdpdGggdGhlIHByb3BlciB0eXBlIAotUEFTUyBXb3JrZXJHbG9iYWxTY29wZSBp
bnRlcmZhY2U6IHNlbGYgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJsb2NhdGlvbiIgd2l0aCB0aGUg
cHJvcGVyIHR5cGUgCi1QQVNTIFdvcmtlckdsb2JhbFNjb3BlIGludGVyZmFjZTogc2VsZiBtdXN0
IGluaGVyaXQgcHJvcGVydHkgIm5hdmlnYXRvciIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCi1QQVNT
IFdvcmtlckdsb2JhbFNjb3BlIGludGVyZmFjZTogc2VsZiBtdXN0IGluaGVyaXQgcHJvcGVydHkg
ImltcG9ydFNjcmlwdHMoVVNWU3RyaW5nKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCi1QQVNTIFdv
cmtlckdsb2JhbFNjb3BlIGludGVyZmFjZTogY2FsbGluZyBpbXBvcnRTY3JpcHRzKFVTVlN0cmlu
Zykgb24gc2VsZiB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAot
UEFTUyBXb3JrZXJHbG9iYWxTY29wZSBpbnRlcmZhY2U6IHNlbGYgbXVzdCBpbmhlcml0IHByb3Bl
cnR5ICJvbmVycm9yIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKLUZBSUwgV29ya2VyR2xvYmFsU2Nv
cGUgaW50ZXJmYWNlOiBzZWxmIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAib25sYW5ndWFnZWNoYW5n
ZSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2luaGVyaXRzOiBwcm9wZXJ0eSAib25sYW5n
dWFnZWNoYW5nZSIgbm90IGZvdW5kIGluIHByb3RvdHlwZSBjaGFpbgotUEFTUyBXb3JrZXJHbG9i
YWxTY29wZSBpbnRlcmZhY2U6IHNlbGYgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJvbm9mZmxpbmUi
IHdpdGggdGhlIHByb3BlciB0eXBlIAotUEFTUyBXb3JrZXJHbG9iYWxTY29wZSBpbnRlcmZhY2U6
IHNlbGYgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJvbm9ubGluZSIgd2l0aCB0aGUgcHJvcGVyIHR5
cGUgCi1QQVNTIFdvcmtlckdsb2JhbFNjb3BlIGludGVyZmFjZTogc2VsZiBtdXN0IGluaGVyaXQg
cHJvcGVydHkgIm9ucmVqZWN0aW9uaGFuZGxlZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCi1QQVNT
IFdvcmtlckdsb2JhbFNjb3BlIGludGVyZmFjZTogc2VsZiBtdXN0IGluaGVyaXQgcHJvcGVydHkg
Im9udW5oYW5kbGVkcmVqZWN0aW9uIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKLVBBU1MgV29ya2Vy
R2xvYmFsU2NvcGUgaW50ZXJmYWNlOiBzZWxmIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAib3JpZ2lu
IiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKLVBBU1MgV29ya2VyR2xvYmFsU2NvcGUgaW50ZXJmYWNl
OiBzZWxmIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiYnRvYShET01TdHJpbmcpIiB3aXRoIHRoZSBw
cm9wZXIgdHlwZSAKLVBBU1MgV29ya2VyR2xvYmFsU2NvcGUgaW50ZXJmYWNlOiBjYWxsaW5nIGJ0
b2EoRE9NU3RyaW5nKSBvbiBzZWxmIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBU
eXBlRXJyb3IgCi1QQVNTIFdvcmtlckdsb2JhbFNjb3BlIGludGVyZmFjZTogc2VsZiBtdXN0IGlu
aGVyaXQgcHJvcGVydHkgImF0b2IoRE9NU3RyaW5nKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCi1Q
QVNTIFdvcmtlckdsb2JhbFNjb3BlIGludGVyZmFjZTogY2FsbGluZyBhdG9iKERPTVN0cmluZykg
b24gc2VsZiB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAotUEFT
UyBXb3JrZXJHbG9iYWxTY29wZSBpbnRlcmZhY2U6IHNlbGYgbXVzdCBpbmhlcml0IHByb3BlcnR5
ICJzZXRUaW1lb3V0KFRpbWVySGFuZGxlciwgbG9uZywgYW55KSIgd2l0aCB0aGUgcHJvcGVyIHR5
cGUgCi1QQVNTIFdvcmtlckdsb2JhbFNjb3BlIGludGVyZmFjZTogY2FsbGluZyBzZXRUaW1lb3V0
KFRpbWVySGFuZGxlciwgbG9uZywgYW55KSBvbiBzZWxmIHdpdGggdG9vIGZldyBhcmd1bWVudHMg
bXVzdCB0aHJvdyBUeXBlRXJyb3IgCi1QQVNTIFdvcmtlckdsb2JhbFNjb3BlIGludGVyZmFjZTog
c2VsZiBtdXN0IGluaGVyaXQgcHJvcGVydHkgImNsZWFyVGltZW91dChsb25nKSIgd2l0aCB0aGUg
cHJvcGVyIHR5cGUgCi1QQVNTIFdvcmtlckdsb2JhbFNjb3BlIGludGVyZmFjZTogY2FsbGluZyBj
bGVhclRpbWVvdXQobG9uZykgb24gc2VsZiB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhy
b3cgVHlwZUVycm9yIAotUEFTUyBXb3JrZXJHbG9iYWxTY29wZSBpbnRlcmZhY2U6IHNlbGYgbXVz
dCBpbmhlcml0IHByb3BlcnR5ICJzZXRJbnRlcnZhbChUaW1lckhhbmRsZXIsIGxvbmcsIGFueSki
IHdpdGggdGhlIHByb3BlciB0eXBlIAotUEFTUyBXb3JrZXJHbG9iYWxTY29wZSBpbnRlcmZhY2U6
IGNhbGxpbmcgc2V0SW50ZXJ2YWwoVGltZXJIYW5kbGVyLCBsb25nLCBhbnkpIG9uIHNlbGYgd2l0
aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKLVBBU1MgV29ya2VyR2xv
YmFsU2NvcGUgaW50ZXJmYWNlOiBzZWxmIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiY2xlYXJJbnRl
cnZhbChsb25nKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCi1QQVNTIFdvcmtlckdsb2JhbFNjb3Bl
IGludGVyZmFjZTogY2FsbGluZyBjbGVhckludGVydmFsKGxvbmcpIG9uIHNlbGYgd2l0aCB0b28g
ZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKLVBBU1MgV29ya2VyR2xvYmFsU2Nv
cGUgaW50ZXJmYWNlOiBzZWxmIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiY3JlYXRlSW1hZ2VCaXRt
YXAoSW1hZ2VCaXRtYXBTb3VyY2UsIEltYWdlQml0bWFwT3B0aW9ucykiIHdpdGggdGhlIHByb3Bl
ciB0eXBlIAotUEFTUyBXb3JrZXJHbG9iYWxTY29wZSBpbnRlcmZhY2U6IGNhbGxpbmcgY3JlYXRl
SW1hZ2VCaXRtYXAoSW1hZ2VCaXRtYXBTb3VyY2UsIEltYWdlQml0bWFwT3B0aW9ucykgb24gc2Vs
ZiB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAotUEFTUyBXb3Jr
ZXJHbG9iYWxTY29wZSBpbnRlcmZhY2U6IHNlbGYgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJjcmVh
dGVJbWFnZUJpdG1hcChJbWFnZUJpdG1hcFNvdXJjZSwgbG9uZywgbG9uZywgbG9uZywgbG9uZywg
SW1hZ2VCaXRtYXBPcHRpb25zKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCi1QQVNTIFdvcmtlckds
b2JhbFNjb3BlIGludGVyZmFjZTogY2FsbGluZyBjcmVhdGVJbWFnZUJpdG1hcChJbWFnZUJpdG1h
cFNvdXJjZSwgbG9uZywgbG9uZywgbG9uZywgbG9uZywgSW1hZ2VCaXRtYXBPcHRpb25zKSBvbiBz
ZWxmIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCi1QQVNTIEV2
ZW50VGFyZ2V0IGludGVyZmFjZTogc2VsZiBtdXN0IGluaGVyaXQgcHJvcGVydHkgImFkZEV2ZW50
TGlzdGVuZXIoRE9NU3RyaW5nLCBFdmVudExpc3RlbmVyLCBbb2JqZWN0IE9iamVjdF0sW29iamVj
dCBPYmplY3RdKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCi1QQVNTIEV2ZW50VGFyZ2V0IGludGVy
ZmFjZTogY2FsbGluZyBhZGRFdmVudExpc3RlbmVyKERPTVN0cmluZywgRXZlbnRMaXN0ZW5lciwg
W29iamVjdCBPYmplY3RdLFtvYmplY3QgT2JqZWN0XSkgb24gc2VsZiB3aXRoIHRvbyBmZXcgYXJn
dW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAotUEFTUyBFdmVudFRhcmdldCBpbnRlcmZhY2U6
IHNlbGYgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJyZW1vdmVFdmVudExpc3RlbmVyKERPTVN0cmlu
ZywgRXZlbnRMaXN0ZW5lciwgW29iamVjdCBPYmplY3RdLFtvYmplY3QgT2JqZWN0XSkiIHdpdGgg
dGhlIHByb3BlciB0eXBlIAotUEFTUyBFdmVudFRhcmdldCBpbnRlcmZhY2U6IGNhbGxpbmcgcmVt
b3ZlRXZlbnRMaXN0ZW5lcihET01TdHJpbmcsIEV2ZW50TGlzdGVuZXIsIFtvYmplY3QgT2JqZWN0
XSxbb2JqZWN0IE9iamVjdF0pIG9uIHNlbGYgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRo
cm93IFR5cGVFcnJvciAKLVBBU1MgRXZlbnRUYXJnZXQgaW50ZXJmYWNlOiBzZWxmIG11c3QgaW5o
ZXJpdCBwcm9wZXJ0eSAiZGlzcGF0Y2hFdmVudChFdmVudCkiIHdpdGggdGhlIHByb3BlciB0eXBl
IAotUEFTUyBFdmVudFRhcmdldCBpbnRlcmZhY2U6IGNhbGxpbmcgZGlzcGF0Y2hFdmVudChFdmVu
dCkgb24gc2VsZiB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAot
UEFTUyBXb3JrZXJOYXZpZ2F0b3IgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMg
b2YgaW50ZXJmYWNlIG9iamVjdCAKLVBBU1MgV29ya2VyTmF2aWdhdG9yIGludGVyZmFjZSBvYmpl
Y3QgbGVuZ3RoIAotUEFTUyBXb3JrZXJOYXZpZ2F0b3IgaW50ZXJmYWNlIG9iamVjdCBuYW1lIAot
UEFTUyBXb3JrZXJOYXZpZ2F0b3IgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMg
b2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgCi1QQVNTIFdvcmtlck5hdmlnYXRvciBpbnRl
cmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9i
amVjdCdzICJjb25zdHJ1Y3RvciIgcHJvcGVydHkgCi1QQVNTIFdvcmtlck5hdmlnYXRvciBpbnRl
cmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9i
amVjdCdzIEBAdW5zY29wYWJsZXMgcHJvcGVydHkgCi1QQVNTIFdvcmtlck5hdmlnYXRvciBpbnRl
cmZhY2U6IGF0dHJpYnV0ZSBhcHBDb2RlTmFtZSAKLVBBU1MgV29ya2VyTmF2aWdhdG9yIGludGVy
ZmFjZTogYXR0cmlidXRlIGFwcE5hbWUgCi1QQVNTIFdvcmtlck5hdmlnYXRvciBpbnRlcmZhY2U6
IGF0dHJpYnV0ZSBhcHBWZXJzaW9uIAotUEFTUyBXb3JrZXJOYXZpZ2F0b3IgaW50ZXJmYWNlOiBh
dHRyaWJ1dGUgcGxhdGZvcm0gCi1QQVNTIFdvcmtlck5hdmlnYXRvciBpbnRlcmZhY2U6IGF0dHJp
YnV0ZSBwcm9kdWN0IAotUEFTUyBXb3JrZXJOYXZpZ2F0b3IgaW50ZXJmYWNlOiBtZW1iZXIgcHJv
ZHVjdFN1YiAKLVBBU1MgV29ya2VyTmF2aWdhdG9yIGludGVyZmFjZTogYXR0cmlidXRlIHVzZXJB
Z2VudCAKLVBBU1MgV29ya2VyTmF2aWdhdG9yIGludGVyZmFjZTogbWVtYmVyIHZlbmRvciAKLVBB
U1MgV29ya2VyTmF2aWdhdG9yIGludGVyZmFjZTogbWVtYmVyIHZlbmRvclN1YiAKLVBBU1MgV29y
a2VyTmF2aWdhdG9yIGludGVyZmFjZTogYXR0cmlidXRlIGxhbmd1YWdlIAotUEFTUyBXb3JrZXJO
YXZpZ2F0b3IgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgbGFuZ3VhZ2VzIAotUEFTUyBXb3JrZXJOYXZp
Z2F0b3IgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgb25MaW5lIAotRkFJTCBXb3JrZXJOYXZpZ2F0b3Ig
aW50ZXJmYWNlOiBhdHRyaWJ1dGUgaGFyZHdhcmVDb25jdXJyZW5jeSBhc3NlcnRfdHJ1ZTogVGhl
IHByb3RvdHlwZSBvYmplY3QgbXVzdCBoYXZlIGEgcHJvcGVydHkgImhhcmR3YXJlQ29uY3VycmVu
Y3kiIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1QQVNTIFdvcmtlck5hdmlnYXRvciBtdXN0IGJl
IHByaW1hcnkgaW50ZXJmYWNlIG9mIHNlbGYubmF2aWdhdG9yIAotUEFTUyBTdHJpbmdpZmljYXRp
b24gb2Ygc2VsZi5uYXZpZ2F0b3IgCi1QQVNTIFdvcmtlck5hdmlnYXRvciBpbnRlcmZhY2U6IHNl
bGYubmF2aWdhdG9yIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiYXBwQ29kZU5hbWUiIHdpdGggdGhl
IHByb3BlciB0eXBlIAotUEFTUyBXb3JrZXJOYXZpZ2F0b3IgaW50ZXJmYWNlOiBzZWxmLm5hdmln
YXRvciBtdXN0IGluaGVyaXQgcHJvcGVydHkgImFwcE5hbWUiIHdpdGggdGhlIHByb3BlciB0eXBl
IAotUEFTUyBXb3JrZXJOYXZpZ2F0b3IgaW50ZXJmYWNlOiBzZWxmLm5hdmlnYXRvciBtdXN0IGlu
aGVyaXQgcHJvcGVydHkgImFwcFZlcnNpb24iIHdpdGggdGhlIHByb3BlciB0eXBlIAotUEFTUyBX
b3JrZXJOYXZpZ2F0b3IgaW50ZXJmYWNlOiBzZWxmLm5hdmlnYXRvciBtdXN0IGluaGVyaXQgcHJv
cGVydHkgInBsYXRmb3JtIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKLVBBU1MgV29ya2VyTmF2aWdh
dG9yIGludGVyZmFjZTogc2VsZi5uYXZpZ2F0b3IgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJwcm9k
dWN0IiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKLVBBU1MgV29ya2VyTmF2aWdhdG9yIGludGVyZmFj
ZTogc2VsZi5uYXZpZ2F0b3IgbXVzdCBub3QgaGF2ZSBwcm9wZXJ0eSAicHJvZHVjdFN1YiIgCi1Q
QVNTIFdvcmtlck5hdmlnYXRvciBpbnRlcmZhY2U6IHNlbGYubmF2aWdhdG9yIG11c3QgaW5oZXJp
dCBwcm9wZXJ0eSAidXNlckFnZW50IiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKLVBBU1MgV29ya2Vy
TmF2aWdhdG9yIGludGVyZmFjZTogc2VsZi5uYXZpZ2F0b3IgbXVzdCBub3QgaGF2ZSBwcm9wZXJ0
eSAidmVuZG9yIiAKLVBBU1MgV29ya2VyTmF2aWdhdG9yIGludGVyZmFjZTogc2VsZi5uYXZpZ2F0
b3IgbXVzdCBub3QgaGF2ZSBwcm9wZXJ0eSAidmVuZG9yU3ViIiAKLVBBU1MgV29ya2VyTmF2aWdh
dG9yIGludGVyZmFjZTogc2VsZi5uYXZpZ2F0b3IgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJsYW5n
dWFnZSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCi1QQVNTIFdvcmtlck5hdmlnYXRvciBpbnRlcmZh
Y2U6IHNlbGYubmF2aWdhdG9yIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAibGFuZ3VhZ2VzIiB3aXRo
IHRoZSBwcm9wZXIgdHlwZSAKLVBBU1MgV29ya2VyTmF2aWdhdG9yIGludGVyZmFjZTogc2VsZi5u
YXZpZ2F0b3IgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJvbkxpbmUiIHdpdGggdGhlIHByb3BlciB0
eXBlIAotRkFJTCBXb3JrZXJOYXZpZ2F0b3IgaW50ZXJmYWNlOiBzZWxmLm5hdmlnYXRvciBtdXN0
IGluaGVyaXQgcHJvcGVydHkgImhhcmR3YXJlQ29uY3VycmVuY3kiIHdpdGggdGhlIHByb3BlciB0
eXBlIGFzc2VydF9pbmhlcml0czogcHJvcGVydHkgImhhcmR3YXJlQ29uY3VycmVuY3kiIG5vdCBm
b3VuZCBpbiBwcm90b3R5cGUgY2hhaW4KLVBBU1MgV29ya2VyTG9jYXRpb24gaW50ZXJmYWNlOiBl
eGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCAKLVBBU1MgV29ya2Vy
TG9jYXRpb24gaW50ZXJmYWNlIG9iamVjdCBsZW5ndGggCi1QQVNTIFdvcmtlckxvY2F0aW9uIGlu
dGVyZmFjZSBvYmplY3QgbmFtZSAKLVBBU1MgV29ya2VyTG9jYXRpb24gaW50ZXJmYWNlOiBleGlz
dGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgCi1QQVNT
IFdvcmtlckxvY2F0aW9uIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGlu
dGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgImNvbnN0cnVjdG9yIiBwcm9wZXJ0eSAKLVBBU1Mg
V29ya2VyTG9jYXRpb24gaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50
ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyBAQHVuc2NvcGFibGVzIHByb3BlcnR5IAotUEFTUyBX
b3JrZXJMb2NhdGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBocmVmIAotUEFTUyBXb3JrZXJMb2Nh
dGlvbiBpbnRlcmZhY2U6IHN0cmluZ2lmaWVyIAotUEFTUyBXb3JrZXJMb2NhdGlvbiBpbnRlcmZh
Y2U6IGF0dHJpYnV0ZSBvcmlnaW4gCi1QQVNTIFdvcmtlckxvY2F0aW9uIGludGVyZmFjZTogYXR0
cmlidXRlIHByb3RvY29sIAotUEFTUyBXb3JrZXJMb2NhdGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0
ZSBob3N0IAotUEFTUyBXb3JrZXJMb2NhdGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBob3N0bmFt
ZSAKLVBBU1MgV29ya2VyTG9jYXRpb24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgcG9ydCAKLVBBU1Mg
V29ya2VyTG9jYXRpb24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgcGF0aG5hbWUgCi1QQVNTIFdvcmtl
ckxvY2F0aW9uIGludGVyZmFjZTogYXR0cmlidXRlIHNlYXJjaCAKLVBBU1MgV29ya2VyTG9jYXRp
b24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgaGFzaCAKLVBBU1MgV29ya2VyTG9jYXRpb24gbXVzdCBi
ZSBwcmltYXJ5IGludGVyZmFjZSBvZiBzZWxmLmxvY2F0aW9uIAotUEFTUyBTdHJpbmdpZmljYXRp
b24gb2Ygc2VsZi5sb2NhdGlvbiAKLVBBU1MgV29ya2VyTG9jYXRpb24gaW50ZXJmYWNlOiBzZWxm
LmxvY2F0aW9uIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiaHJlZiIgd2l0aCB0aGUgcHJvcGVyIHR5
cGUgCi1QQVNTIFdvcmtlckxvY2F0aW9uIGludGVyZmFjZTogc2VsZi5sb2NhdGlvbiBtdXN0IGlu
aGVyaXQgcHJvcGVydHkgIm9yaWdpbiIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCi1QQVNTIFdvcmtl
ckxvY2F0aW9uIGludGVyZmFjZTogc2VsZi5sb2NhdGlvbiBtdXN0IGluaGVyaXQgcHJvcGVydHkg
InByb3RvY29sIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKLVBBU1MgV29ya2VyTG9jYXRpb24gaW50
ZXJmYWNlOiBzZWxmLmxvY2F0aW9uIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiaG9zdCIgd2l0aCB0
aGUgcHJvcGVyIHR5cGUgCi1QQVNTIFdvcmtlckxvY2F0aW9uIGludGVyZmFjZTogc2VsZi5sb2Nh
dGlvbiBtdXN0IGluaGVyaXQgcHJvcGVydHkgImhvc3RuYW1lIiB3aXRoIHRoZSBwcm9wZXIgdHlw
ZSAKLVBBU1MgV29ya2VyTG9jYXRpb24gaW50ZXJmYWNlOiBzZWxmLmxvY2F0aW9uIG11c3QgaW5o
ZXJpdCBwcm9wZXJ0eSAicG9ydCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCi1QQVNTIFdvcmtlckxv
Y2F0aW9uIGludGVyZmFjZTogc2VsZi5sb2NhdGlvbiBtdXN0IGluaGVyaXQgcHJvcGVydHkgInBh
dGhuYW1lIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKLVBBU1MgV29ya2VyTG9jYXRpb24gaW50ZXJm
YWNlOiBzZWxmLmxvY2F0aW9uIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAic2VhcmNoIiB3aXRoIHRo
ZSBwcm9wZXIgdHlwZSAKLVBBU1MgV29ya2VyTG9jYXRpb24gaW50ZXJmYWNlOiBzZWxmLmxvY2F0
aW9uIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiaGFzaCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitG
QUlMIFVudGl0bGVkIFdlYklETFBhcnNlRXJyb3I6IFN5bnRheCBlcnJvciBhdCBsaW5lIDgyLCBz
aW5jZSBgaW50ZXJmYWNlIFdpbmRvd09yV29ya2VyR2xvYmFsU2NvcGVgOgorV29ya2VyR2xvYmFs
U2NvcGUgaW1wbGVtZW50cyBXaW5kb3dPcldvcmtlckdsb2JhbFNjb3BlOworXiBVbnJlY29nbmlz
ZWQgdG9rZW5zCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMveGhyL2lkbGhhcm5lc3MuYW55LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMveGhyL2lkbGhhcm5lc3MuYW55LWV4cGVj
dGVkLnR4dAppbmRleCBjZGE3ZTg0YzQyNTJhN2I2NGY5YTk0ZGMzMmZjZWQ5Y2FkN2I4M2JhLi4y
YjI5YTBlNDNmMmJmYmIyYjliOTZlMWUzYjE5M2VlMDkwYmEyY2M5IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3hoci9pZGxoYXJuZXNzLmFu
eS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy94aHIvaWRsaGFybmVzcy5hbnktZXhwZWN0ZWQudHh0CkBAIC0xMTgsMTIgKzExOCw3
IEBAIFBBU1MgRm9ybURhdGEgaW50ZXJmYWNlOiBvcGVyYXRpb24gZ2V0QWxsKFVTVlN0cmluZykK
IFBBU1MgRm9ybURhdGEgaW50ZXJmYWNlOiBvcGVyYXRpb24gaGFzKFVTVlN0cmluZykgCiBQQVNT
IEZvcm1EYXRhIGludGVyZmFjZTogb3BlcmF0aW9uIHNldChVU1ZTdHJpbmcsIFVTVlN0cmluZykg
CiBQQVNTIEZvcm1EYXRhIGludGVyZmFjZTogb3BlcmF0aW9uIHNldChVU1ZTdHJpbmcsIEJsb2Is
IFVTVlN0cmluZykgCi1QQVNTIFRlc3RpbmcgU3ltYm9sLml0ZXJhdG9yIHByb3BlcnR5IG9mIGl0
ZXJhYmxlIGludGVyZmFjZSBGb3JtRGF0YSAKLVBBU1MgVGVzdGluZyBwYWlyIGl0ZXJhYmxlIGlu
dGVyZmFjZSBGb3JtRGF0YSAKLVBBU1MgRm9ybURhdGEgaW50ZXJmYWNlOiBvcGVyYXRpb24gZW50
cmllcygpIAotUEFTUyBGb3JtRGF0YSBpbnRlcmZhY2U6IG9wZXJhdGlvbiBrZXlzKCkgCi1QQVNT
IEZvcm1EYXRhIGludGVyZmFjZTogb3BlcmF0aW9uIHZhbHVlcygpIAotUEFTUyBGb3JtRGF0YSBp
bnRlcmZhY2U6IG9wZXJhdGlvbiBmb3JFYWNoKGZ1bmN0aW9uLCBhbnkpIAorUEFTUyBGb3JtRGF0
YSBpbnRlcmZhY2U6IGl0ZXJhYmxlPFVTVlN0cmluZywgRm9ybURhdGFFbnRyeVZhbHVlPiAKIFBB
U1MgRm9ybURhdGEgbXVzdCBiZSBwcmltYXJ5IGludGVyZmFjZSBvZiBuZXcgRm9ybURhdGEoKSAK
IFBBU1MgU3RyaW5naWZpY2F0aW9uIG9mIG5ldyBGb3JtRGF0YSgpIAogUEFTUyBGb3JtRGF0YSBp
bnRlcmZhY2U6IG5ldyBGb3JtRGF0YSgpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiYXBwZW5kKFVT
VlN0cmluZywgVVNWU3RyaW5nKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCkBAIC0xNDIsMTEgKzEz
Nyw2IEBAIFBBU1MgRm9ybURhdGEgaW50ZXJmYWNlOiBuZXcgRm9ybURhdGEoKSBtdXN0IGluaGVy
aXQgcHJvcGVydHkgInNldChVU1ZTdHJpbmcsIFVTCiBQQVNTIEZvcm1EYXRhIGludGVyZmFjZTog
Y2FsbGluZyBzZXQoVVNWU3RyaW5nLCBVU1ZTdHJpbmcpIG9uIG5ldyBGb3JtRGF0YSgpIHdpdGgg
dG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCiBQQVNTIEZvcm1EYXRhIGlu
dGVyZmFjZTogbmV3IEZvcm1EYXRhKCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJzZXQoVVNWU3Ry
aW5nLCBCbG9iLCBVU1ZTdHJpbmcpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgRm9ybURh
dGEgaW50ZXJmYWNlOiBjYWxsaW5nIHNldChVU1ZTdHJpbmcsIEJsb2IsIFVTVlN0cmluZykgb24g
bmV3IEZvcm1EYXRhKCkgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJv
ciAKLVBBU1MgRm9ybURhdGEgaW50ZXJmYWNlOiBuZXcgRm9ybURhdGEoKSBtdXN0IGluaGVyaXQg
cHJvcGVydHkgImVudHJpZXMoKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCi1QQVNTIEZvcm1EYXRh
IGludGVyZmFjZTogbmV3IEZvcm1EYXRhKCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJrZXlzKCki
IHdpdGggdGhlIHByb3BlciB0eXBlIAotUEFTUyBGb3JtRGF0YSBpbnRlcmZhY2U6IG5ldyBGb3Jt
RGF0YSgpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAidmFsdWVzKCkiIHdpdGggdGhlIHByb3BlciB0
eXBlIAotUEFTUyBGb3JtRGF0YSBpbnRlcmZhY2U6IG5ldyBGb3JtRGF0YSgpIG11c3QgaW5oZXJp
dCBwcm9wZXJ0eSAiZm9yRWFjaChmdW5jdGlvbiwgYW55KSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUg
Ci1QQVNTIEZvcm1EYXRhIGludGVyZmFjZTogY2FsbGluZyBmb3JFYWNoKGZ1bmN0aW9uLCBhbnkp
IG9uIG5ldyBGb3JtRGF0YSgpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBl
RXJyb3IgCiBQQVNTIEZvcm1EYXRhIG11c3QgYmUgcHJpbWFyeSBpbnRlcmZhY2Ugb2YgbmV3IEZv
cm1EYXRhKGZvcm0pIAogUEFTUyBTdHJpbmdpZmljYXRpb24gb2YgbmV3IEZvcm1EYXRhKGZvcm0p
IAogUEFTUyBGb3JtRGF0YSBpbnRlcmZhY2U6IG5ldyBGb3JtRGF0YShmb3JtKSBtdXN0IGluaGVy
aXQgcHJvcGVydHkgImFwcGVuZChVU1ZTdHJpbmcsIFVTVlN0cmluZykiIHdpdGggdGhlIHByb3Bl
ciB0eXBlIApAQCAtMTY1LDExICsxNTUsNiBAQCBQQVNTIEZvcm1EYXRhIGludGVyZmFjZTogbmV3
IEZvcm1EYXRhKGZvcm0pIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAic2V0KFVTVlN0cmluZwogUEFT
UyBGb3JtRGF0YSBpbnRlcmZhY2U6IGNhbGxpbmcgc2V0KFVTVlN0cmluZywgVVNWU3RyaW5nKSBv
biBuZXcgRm9ybURhdGEoZm9ybSkgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5
cGVFcnJvciAKIFBBU1MgRm9ybURhdGEgaW50ZXJmYWNlOiBuZXcgRm9ybURhdGEoZm9ybSkgbXVz
dCBpbmhlcml0IHByb3BlcnR5ICJzZXQoVVNWU3RyaW5nLCBCbG9iLCBVU1ZTdHJpbmcpIiB3aXRo
IHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgRm9ybURhdGEgaW50ZXJmYWNlOiBjYWxsaW5nIHNldChV
U1ZTdHJpbmcsIEJsb2IsIFVTVlN0cmluZykgb24gbmV3IEZvcm1EYXRhKGZvcm0pIHdpdGggdG9v
IGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCi1QQVNTIEZvcm1EYXRhIGludGVy
ZmFjZTogbmV3IEZvcm1EYXRhKGZvcm0pIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiZW50cmllcygp
IiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKLVBBU1MgRm9ybURhdGEgaW50ZXJmYWNlOiBuZXcgRm9y
bURhdGEoZm9ybSkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJrZXlzKCkiIHdpdGggdGhlIHByb3Bl
ciB0eXBlIAotUEFTUyBGb3JtRGF0YSBpbnRlcmZhY2U6IG5ldyBGb3JtRGF0YShmb3JtKSBtdXN0
IGluaGVyaXQgcHJvcGVydHkgInZhbHVlcygpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKLVBBU1Mg
Rm9ybURhdGEgaW50ZXJmYWNlOiBuZXcgRm9ybURhdGEoZm9ybSkgbXVzdCBpbmhlcml0IHByb3Bl
cnR5ICJmb3JFYWNoKGZ1bmN0aW9uLCBhbnkpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKLVBBU1Mg
Rm9ybURhdGEgaW50ZXJmYWNlOiBjYWxsaW5nIGZvckVhY2goZnVuY3Rpb24sIGFueSkgb24gbmV3
IEZvcm1EYXRhKGZvcm0pIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJy
b3IgCiBQQVNTIFByb2dyZXNzRXZlbnQgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRp
ZXMgb2YgaW50ZXJmYWNlIG9iamVjdCAKIFBBU1MgUHJvZ3Jlc3NFdmVudCBpbnRlcmZhY2Ugb2Jq
ZWN0IGxlbmd0aCAKIFBBU1MgUHJvZ3Jlc3NFdmVudCBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUgCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ho
ci9pZGxoYXJuZXNzLmFueS53b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy94aHIvaWRsaGFybmVzcy5hbnkud29ya2VyLWV4cGVj
dGVkLnR4dAppbmRleCA3YzgyNzBjYTAyYTNiMGJlNDcwNjIzOWM3ZjllOTFkNmEwMGZjYTViLi5j
NmFiYTExYzBmMzRkMjgwZDc4ZWE5MWZmMDEyMGQxMTg4MDA1ZTY3IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3hoci9pZGxoYXJuZXNzLmFu
eS53b3JrZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMveGhyL2lkbGhhcm5lc3MuYW55Lndvcmtlci1leHBlY3RlZC50eHQKQEAg
LTExOCwxMiArMTE4LDcgQEAgRkFJTCBGb3JtRGF0YSBpbnRlcmZhY2U6IG9wZXJhdGlvbiBnZXRB
bGwoVVNWU3RyaW5nKSBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGQKIEZBSUwgRm9ybURhdGEg
aW50ZXJmYWNlOiBvcGVyYXRpb24gaGFzKFVTVlN0cmluZykgYXNzZXJ0X293bl9wcm9wZXJ0eTog
c2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiRm9ybURhdGEiIGV4cGVjdGVkIHByb3Bl
cnR5ICJGb3JtRGF0YSIgbWlzc2luZwogRkFJTCBGb3JtRGF0YSBpbnRlcmZhY2U6IG9wZXJhdGlv
biBzZXQoVVNWU3RyaW5nLCBVU1ZTdHJpbmcpIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9l
cyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIkZvcm1EYXRhIiBleHBlY3RlZCBwcm9wZXJ0eSAiRm9y
bURhdGEiIG1pc3NpbmcKIEZBSUwgRm9ybURhdGEgaW50ZXJmYWNlOiBvcGVyYXRpb24gc2V0KFVT
VlN0cmluZywgQmxvYiwgVVNWU3RyaW5nKSBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMg
bm90IGhhdmUgb3duIHByb3BlcnR5ICJGb3JtRGF0YSIgZXhwZWN0ZWQgcHJvcGVydHkgIkZvcm1E
YXRhIiBtaXNzaW5nCi1GQUlMIFRlc3RpbmcgU3ltYm9sLml0ZXJhdG9yIHByb3BlcnR5IG9mIGl0
ZXJhYmxlIGludGVyZmFjZSBGb3JtRGF0YSB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZh
bHVhdGluZyAnc2VsZltpbnRlcmZhY2VOYW1lXS5wcm90b3R5cGUnKQotRkFJTCBUZXN0aW5nIHBh
aXIgaXRlcmFibGUgaW50ZXJmYWNlIEZvcm1EYXRhIHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0
IChldmFsdWF0aW5nICdzZWxmW2ludGVyZmFjZU5hbWVdLnByb3RvdHlwZScpCi1GQUlMIEZvcm1E
YXRhIGludGVyZmFjZTogb3BlcmF0aW9uIGVudHJpZXMoKSBhc3NlcnRfb3duX3Byb3BlcnR5OiBz
ZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJGb3JtRGF0YSIgZXhwZWN0ZWQgcHJvcGVy
dHkgIkZvcm1EYXRhIiBtaXNzaW5nCi1GQUlMIEZvcm1EYXRhIGludGVyZmFjZTogb3BlcmF0aW9u
IGtleXMoKSBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3Bl
cnR5ICJGb3JtRGF0YSIgZXhwZWN0ZWQgcHJvcGVydHkgIkZvcm1EYXRhIiBtaXNzaW5nCi1GQUlM
IEZvcm1EYXRhIGludGVyZmFjZTogb3BlcmF0aW9uIHZhbHVlcygpIGFzc2VydF9vd25fcHJvcGVy
dHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIkZvcm1EYXRhIiBleHBlY3RlZCBw
cm9wZXJ0eSAiRm9ybURhdGEiIG1pc3NpbmcKLUZBSUwgRm9ybURhdGEgaW50ZXJmYWNlOiBvcGVy
YXRpb24gZm9yRWFjaChmdW5jdGlvbiwgYW55KSBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRv
ZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJGb3JtRGF0YSIgZXhwZWN0ZWQgcHJvcGVydHkgIkZv
cm1EYXRhIiBtaXNzaW5nCitGQUlMIEZvcm1EYXRhIGludGVyZmFjZTogaXRlcmFibGU8VVNWU3Ry
aW5nLCBGb3JtRGF0YUVudHJ5VmFsdWU+IHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFs
dWF0aW5nICd0aGlzLmdldF9pbnRlcmZhY2Vfb2JqZWN0KCkucHJvdG90eXBlJykKIEZBSUwgRm9y
bURhdGEgbXVzdCBiZSBwcmltYXJ5IGludGVyZmFjZSBvZiBuZXcgRm9ybURhdGEoKSBhc3NlcnRf
ZXF1YWxzOiBVbmV4cGVjdGVkIGV4Y2VwdGlvbiB3aGVuIGV2YWx1YXRpbmcgb2JqZWN0IGV4cGVj
dGVkIG51bGwgYnV0IGdvdCBvYmplY3QgIlJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlh
YmxlOiBGb3JtRGF0YSIKIEZBSUwgU3RyaW5naWZpY2F0aW9uIG9mIG5ldyBGb3JtRGF0YSgpIGFz
c2VydF9lcXVhbHM6IFVuZXhwZWN0ZWQgZXhjZXB0aW9uIHdoZW4gZXZhbHVhdGluZyBvYmplY3Qg
ZXhwZWN0ZWQgbnVsbCBidXQgZ290IG9iamVjdCAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQg
dmFyaWFibGU6IEZvcm1EYXRhIgogRkFJTCBGb3JtRGF0YSBpbnRlcmZhY2U6IG5ldyBGb3JtRGF0
YSgpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiYXBwZW5kKFVTVlN0cmluZywgVVNWU3RyaW5nKSIg
d2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2VxdWFsczogVW5leHBlY3RlZCBleGNlcHRpb24g
d2hlbiBldmFsdWF0aW5nIG9iamVjdCBleHBlY3RlZCBudWxsIGJ1dCBnb3Qgb2JqZWN0ICJSZWZl
cmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogRm9ybURhdGEiCkBAIC0xNDIsMTEgKzEz
Nyw2IEBAIEZBSUwgRm9ybURhdGEgaW50ZXJmYWNlOiBuZXcgRm9ybURhdGEoKSBtdXN0IGluaGVy
aXQgcHJvcGVydHkgInNldChVU1ZTdHJpbmcsIFVTCiBGQUlMIEZvcm1EYXRhIGludGVyZmFjZTog
Y2FsbGluZyBzZXQoVVNWU3RyaW5nLCBVU1ZTdHJpbmcpIG9uIG5ldyBGb3JtRGF0YSgpIHdpdGgg
dG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X2VxdWFsczogVW5l
eHBlY3RlZCBleGNlcHRpb24gd2hlbiBldmFsdWF0aW5nIG9iamVjdCBleHBlY3RlZCBudWxsIGJ1
dCBnb3Qgb2JqZWN0ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogRm9ybURh
dGEiCiBGQUlMIEZvcm1EYXRhIGludGVyZmFjZTogbmV3IEZvcm1EYXRhKCkgbXVzdCBpbmhlcml0
IHByb3BlcnR5ICJzZXQoVVNWU3RyaW5nLCBCbG9iLCBVU1ZTdHJpbmcpIiB3aXRoIHRoZSBwcm9w
ZXIgdHlwZSBhc3NlcnRfZXF1YWxzOiBVbmV4cGVjdGVkIGV4Y2VwdGlvbiB3aGVuIGV2YWx1YXRp
bmcgb2JqZWN0IGV4cGVjdGVkIG51bGwgYnV0IGdvdCBvYmplY3QgIlJlZmVyZW5jZUVycm9yOiBD
YW4ndCBmaW5kIHZhcmlhYmxlOiBGb3JtRGF0YSIKIEZBSUwgRm9ybURhdGEgaW50ZXJmYWNlOiBj
YWxsaW5nIHNldChVU1ZTdHJpbmcsIEJsb2IsIFVTVlN0cmluZykgb24gbmV3IEZvcm1EYXRhKCkg
d2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfZXF1YWxz
OiBVbmV4cGVjdGVkIGV4Y2VwdGlvbiB3aGVuIGV2YWx1YXRpbmcgb2JqZWN0IGV4cGVjdGVkIG51
bGwgYnV0IGdvdCBvYmplY3QgIlJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBG
b3JtRGF0YSIKLUZBSUwgRm9ybURhdGEgaW50ZXJmYWNlOiBuZXcgRm9ybURhdGEoKSBtdXN0IGlu
aGVyaXQgcHJvcGVydHkgImVudHJpZXMoKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2Vx
dWFsczogVW5leHBlY3RlZCBleGNlcHRpb24gd2hlbiBldmFsdWF0aW5nIG9iamVjdCBleHBlY3Rl
ZCBudWxsIGJ1dCBnb3Qgb2JqZWN0ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJs
ZTogRm9ybURhdGEiCi1GQUlMIEZvcm1EYXRhIGludGVyZmFjZTogbmV3IEZvcm1EYXRhKCkgbXVz
dCBpbmhlcml0IHByb3BlcnR5ICJrZXlzKCkiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9l
cXVhbHM6IFVuZXhwZWN0ZWQgZXhjZXB0aW9uIHdoZW4gZXZhbHVhdGluZyBvYmplY3QgZXhwZWN0
ZWQgbnVsbCBidXQgZ290IG9iamVjdCAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFi
bGU6IEZvcm1EYXRhIgotRkFJTCBGb3JtRGF0YSBpbnRlcmZhY2U6IG5ldyBGb3JtRGF0YSgpIG11
c3QgaW5oZXJpdCBwcm9wZXJ0eSAidmFsdWVzKCkiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2Vy
dF9lcXVhbHM6IFVuZXhwZWN0ZWQgZXhjZXB0aW9uIHdoZW4gZXZhbHVhdGluZyBvYmplY3QgZXhw
ZWN0ZWQgbnVsbCBidXQgZ290IG9iamVjdCAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFy
aWFibGU6IEZvcm1EYXRhIgotRkFJTCBGb3JtRGF0YSBpbnRlcmZhY2U6IG5ldyBGb3JtRGF0YSgp
IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiZm9yRWFjaChmdW5jdGlvbiwgYW55KSIgd2l0aCB0aGUg
cHJvcGVyIHR5cGUgYXNzZXJ0X2VxdWFsczogVW5leHBlY3RlZCBleGNlcHRpb24gd2hlbiBldmFs
dWF0aW5nIG9iamVjdCBleHBlY3RlZCBudWxsIGJ1dCBnb3Qgb2JqZWN0ICJSZWZlcmVuY2VFcnJv
cjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogRm9ybURhdGEiCi1GQUlMIEZvcm1EYXRhIGludGVyZmFj
ZTogY2FsbGluZyBmb3JFYWNoKGZ1bmN0aW9uLCBhbnkpIG9uIG5ldyBGb3JtRGF0YSgpIHdpdGgg
dG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X2VxdWFsczogVW5l
eHBlY3RlZCBleGNlcHRpb24gd2hlbiBldmFsdWF0aW5nIG9iamVjdCBleHBlY3RlZCBudWxsIGJ1
dCBnb3Qgb2JqZWN0ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogRm9ybURh
dGEiCiBQQVNTIFByb2dyZXNzRXZlbnQgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRp
ZXMgb2YgaW50ZXJmYWNlIG9iamVjdCAKIFBBU1MgUHJvZ3Jlc3NFdmVudCBpbnRlcmZhY2Ugb2Jq
ZWN0IGxlbmd0aCAKIFBBU1MgUHJvZ3Jlc3NFdmVudCBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUgCkBA
IC0xNjMsMTAgKzE1Myw0IEBAIFBBU1MgUHJvZ3Jlc3NFdmVudCBpbnRlcmZhY2U6IG5ldyBQcm9n
cmVzc0V2ZW50KCJ0eXBlIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJsCiBQQVNTIFByb2dyZXNz
RXZlbnQgaW50ZXJmYWNlOiBuZXcgUHJvZ3Jlc3NFdmVudCgidHlwZSIpIG11c3QgaW5oZXJpdCBw
cm9wZXJ0eSAidG90YWwiIHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBOb2RlIGludGVyZmFj
ZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgCiBQQVNTIERv
Y3VtZW50IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBv
YmplY3QgCi1QQVNTIERvY3VtZW50VHlwZSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVy
dGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IAotUEFTUyBEb2N1bWVudEZyYWdtZW50IGludGVyZmFj
ZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgCi1QQVNTIFNo
YWRvd1Jvb3QgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNl
IG9iamVjdCAKLVBBU1MgRWxlbWVudCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGll
cyBvZiBpbnRlcmZhY2Ugb2JqZWN0IAotUEFTUyBDaGFyYWN0ZXJEYXRhIGludGVyZmFjZTogZXhp
c3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgCi1QQVNTIFRleHQgaW50
ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCAKIApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA3MzAwZDlmOTJh
MjgzN2EyMDUxOTkzNGJmMDM1YWQyOWQyNzYwNjYyLi4zYzBmNTBhYzgzMGE2NjE0OWY5YzM3ZDA3
NTU2MGQ0NGVjMWQxNGEzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVz
dEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0
aW9ucwpAQCAtMzIwMywxMCArMzIwMyw2IEBAIHdlYmtpdC5vcmcvYi8xOTA3NjQgZWRpdGluZy9z
cGVsbGluZy9zcGVsbGluZy1kb3RzLXBvc2l0aW9uLTMuaHRtbCBbIFNraXAgXQogCiB3ZWJraXQu
b3JnL2IvMTkyMjc5IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL3JlZ2lzdGVyLWNsb3NlZC13aW5kb3cuaHR0cHMuaHRtbCBbIFBh
c3MgRmFpbHVyZSBdCiAKLXdlYmtpdC5vcmcvYi8xOTIyNTAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLW1pc3Npbmct
aW1wb3J0LXNjcmlwdHMuaHR0cHMuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCi0KLXdlYmtpdC5vcmcv
Yi8xOTIzOTggaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvdXBkYXRlLXJlZ2lzdHJhdGlvbi13aXRoLXR5cGUuaHR0cHMuaHRtbCBb
IFBhc3MgRmFpbHVyZSBdCi0KIHdlYmtpdC5vcmcvYi8xOTE3MDQgaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvd2luZG93Y2xpZW50
LW5hdmlnYXRlLmh0dHBzLmh0bWwgWyBQYXNzIEZhaWx1cmUgXQogCiB3ZWJraXQub3JnL2IvMTkz
OTU1IGNvbXBvc2l0aW5nL2lmcmFtZXMvcmVtb3ZlLXJlaW5zZXJ0LXdlYnZpZXctd2l0aC1pZnJh
bWUuaHRtbCBbIFNraXAgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvdGVzdHMtb3B0aW9ucy5q
c29uIGIvTGF5b3V0VGVzdHMvdGVzdHMtb3B0aW9ucy5qc29uCmluZGV4IDE4MjRjZGNkMWM0NjRm
OGFmNzRlZTc1ODZiNzMxNjNmY2E2MzJiYzIuLmNjMjAzNGU4NTFiZjhmODA1MzczOTFiODI1MzBk
MTY4YzU0MjJkMTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Rlc3RzLW9wdGlvbnMuanNvbgor
KysgYi9MYXlvdXRUZXN0cy90ZXN0cy1vcHRpb25zLmpzb24KQEAgLTEsNCArMSw3IEBACiB7Cisg
ICAgImh0dHAvdGVzdHMvcGF5bWVudHJlcXVlc3QvcGF5bWVudC1yZXNwb25zZS1yZWZlcmVuY2Ut
Y3ljbGUtbGVhay5odHRwcy5odG1sIjogWworICAgICAgICAic2xvdyIKKyAgICBdLAogICAgICJo
dHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L29uLW5ldHdvcmstdGltZW91dC1lcnJvci1kdXJpbmct
cHJlZmxpZ2h0Lmh0bWwiOiBbCiAgICAgICAgICJzbG93IgogICAgIF0sCkBAIC0xNzI0LDYgKzE3
MjcsOSBAQAogICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1ldmVudC1yZXNwb25kLXdpdGgtYm9keS1sb2FkZWQt
aW4tY2h1bmsuaHR0cHMuaHRtbCI6IFsKICAgICAgICAgInNsb3ciCiAgICAgXSwKKyAgICAiaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvZmV0Y2gtZXZlbnQtd2l0aGluLXN3Lmh0dHBzLmh0bWwiOiBbCisgICAgICAgICJzbG93Igor
ICAgIF0sCiAgICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWV2ZW50Lmh0dHBzLmh0bWwiOiBbCiAgICAgICAgICJz
bG93IgogICAgIF0sCkBAIC0xNzc4LDYgKzE3ODQsMTIgQEAKICAgICAiaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLWJ5
dGVjaGVjay5odHRwcy5odG1sIjogWwogICAgICAgICAic2xvdyIKICAgICBdLAorICAgICJpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci91cGRhdGUuaHR0cHMuaHRtbCI6IFsKKyAgICAgICAgInNsb3ciCisgICAgXSwKKyAgICAiaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvd29ya2VyLWludGVyY2VwdGlvbi5odHRwcy5odG1sIjogWworICAgICAgICAic2xvdyIKKyAg
ICBdLAogICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENEVE1G
U2VuZGVyLW9udG9uZWNoYW5nZS1sb25nLmh0bWwiOiBbCiAgICAgICAgICJzbG93IgogICAgIF0s
CkBAIC0xOTAwLDggKzE5MTIsNSBAQAogICAgIF0sCiAgICAgImltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMveGhyL3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtd29ya2VyLXR3aWNlLmh0bWwi
OiBbCiAgICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImh0dHAvdGVzdHMvcGF5bWVudHJlcXVl
c3QvcGF5bWVudC1yZXNwb25zZS1yZWZlcmVuY2UtY3ljbGUtbGVhay5odHRwcy5odG1sIjogWwot
ICAgICAgICAic2xvdyIKICAgICBdCiB9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>