<?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>162987</bug_id>
          
          <creation_ts>2016-10-05 15:34:50 -0700</creation_ts>
          <short_desc>Import v1 custom elements tests from W3C</short_desc>
          <delta_ts>2016-10-05 17:37:57 -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>Safari Technology Preview</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>154907</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>koivisto</cc>
    
    <cc>lforschler</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1236802</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-10-05 15:34:50 -0700</bug_when>
    <thetext>Import tests in https://github.com/w3c/web-platform-tests/tree/master/custom-elements except v1 tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1236806</commentid>
    <comment_count>1</comment_count>
      <attachid>290754</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-10-05 15:52:36 -0700</bug_when>
    <thetext>Created attachment 290754
Imports tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1236809</commentid>
    <comment_count>2</comment_count>
      <attachid>290754</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-10-05 16:00:40 -0700</bug_when>
    <thetext>Comment on attachment 290754
Imports tests

rs=me if the bots are happy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1236822</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2016-10-05 16:26:48 -0700</bug_when>
    <thetext>&lt;rdar://problem/28642111&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1236845</commentid>
    <comment_count>4</comment_count>
      <attachid>290754</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-10-05 17:37:53 -0700</bug_when>
    <thetext>Comment on attachment 290754
Imports tests

Clearing flags on attachment: 290754

Committed r206838: &lt;http://trac.webkit.org/changeset/206838&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1236846</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-10-05 17:37:57 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>290754</attachid>
            <date>2016-10-05 15:52:36 -0700</date>
            <delta_ts>2016-10-05 17:37:53 -0700</delta_ts>
            <desc>Imports tests</desc>
            <filename>bug-162987-20161005154925.patch</filename>
            <type>text/plain</type>
            <size>274187</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA2ODAyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNzhhZmUxNTQ2ZTQyNzc5N2ZlZDg1
MGRkN2YxODkxM2I0MzYxMWNkZi4uOTYwMjQ0NTNkNGViOTZiZDc5NGM3M2NkMjJiYWYzMGI3ZTAy
YTRiYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDE2LTEwLTA1ICBSeW9zdWtlIE5pd2EgIDxy
bml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIEltcG9ydCB2MSBjdXN0b20gZWxlbWVudHMgdGVz
dHMgZnJvbSBXM0MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE2Mjk4NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFJlbW92ZWQgY3VzdG9tIGVsZW1lbnRzIHRlc3RzIHRoYXQgaGF2ZSBiZWVuIHVwc3RyZWFt
ZWQgdG8gYW5kIHJlaW1wb3J0ZWQgZnJvbSB3ZWItcGxhdGZvcm0tdGVzdHMuCisKKyAgICAgICAg
KiBmYXN0L2N1c3RvbS1lbGVtZW50cy9DdXN0b21FbGVtZW50UmVnaXN0cnktZXhwZWN0ZWQudHh0
OiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvY3VzdG9tLWVsZW1lbnRzL0N1c3RvbUVsZW1lbnRS
ZWdpc3RyeS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvY3VzdG9tLWVsZW1lbnRzL0hU
TUxFbGVtZW50LWNvbnN0cnVjdG9yLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBm
YXN0L2N1c3RvbS1lbGVtZW50cy9IVE1MRWxlbWVudC1jb25zdHJ1Y3Rvci5odG1sOiBSZW1vdmVk
LgorICAgICAgICAqIGZhc3QvY3VzdG9tLWVsZW1lbnRzL2Fkb3B0ZWQtY2FsbGJhY2stZXhwZWN0
ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvY3VzdG9tLWVsZW1lbnRzL2Fkb3B0ZWQt
Y2FsbGJhY2suaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L2N1c3RvbS1lbGVtZW50cy9h
dHRyaWJ1dGUtY2hhbmdlZC1jYWxsYmFjay1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAg
ICogZmFzdC9jdXN0b20tZWxlbWVudHMvYXR0cmlidXRlLWNoYW5nZWQtY2FsbGJhY2suaHRtbDog
UmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L2N1c3RvbS1lbGVtZW50cy9jb25uZWN0ZWQtY2FsbGJh
Y2tzLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L2N1c3RvbS1lbGVtZW50
cy9jb25uZWN0ZWQtY2FsbGJhY2tzLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9jdXN0
b20tZWxlbWVudHMvZGlzY29ubmVjdGVkLWNhbGxiYWNrcy1leHBlY3RlZC50eHQ6IFJlbW92ZWQu
CisgICAgICAgICogZmFzdC9jdXN0b20tZWxlbWVudHMvZGlzY29ubmVjdGVkLWNhbGxiYWNrcy5o
dG1sOiBSZW1vdmVkLgorCiAyMDE2LTEwLTA0ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJA
YXBwbGUuY29tPgogCiAgICAgICAgIFtpT1MgV0syXSBNYWtlIGl0IHBvc3NpYmxlIGZvciBhIHRl
c3QgdG8gZGVzY3JpYmUgYSB1c2VyIGdlc3R1cmUgYXMgYSBzdHJlYW0gb2YgZXZlbnRzIGluIEpT
T04gZm9ybWF0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9n
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRleCAwYzM5ZGQ0MjcwMGYy
Y2RiYzcxNjNjYmNjZTdkMzRhMzY3YTgyYTdhLi5lMjRmZTJhYjg3ZmJjOTQ0MDU4ZmVlZjdmZmNl
ZTQ5NjFiMDRkOTczIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdl
TG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2
MSBAQAorMjAxNi0xMC0wNSAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KKworICAg
ICAgICBJbXBvcnQgdjEgY3VzdG9tIGVsZW1lbnRzIHRlc3RzIGZyb20gVzNDCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjI5ODcKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBvcnQgdGVzdHMgaW4gaHR0
cHM6Ly9naXRodWIuY29tL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdHJlZS9tYXN0ZXIvY3VzdG9t
LWVsZW1lbnRzIGV4Y2VwdCB2MSB0ZXN0cworICAgICAgICBhcyBvZiBlYWUxODgxMjZhMjFhNTkz
NzE1YmEyNjI2Y2MwNTkxNDRkNmYwOTc4LgorCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L2N1c3RvbS1lbGVtZW50cy9DdXN0b21FbGVtZW50UmVnaXN0cnktZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL0N1c3RvbUVs
ZW1lbnRSZWdpc3RyeS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
Y3VzdG9tLWVsZW1lbnRzL0hUTUxFbGVtZW50LWNvbnN0cnVjdG9yLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9IVE1MRWxl
bWVudC1jb25zdHJ1Y3Rvci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVz
dHMvY3VzdG9tLWVsZW1lbnRzL09XTkVSUzogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL2N1c3RvbS1lbGVtZW50cy9hZG9wdGVkLWNhbGxiYWNrLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9hZG9wdGVk
LWNhbGxiYWNrLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0
b20tZWxlbWVudHMvYXR0cmlidXRlLWNoYW5nZWQtY2FsbGJhY2stZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL2F0dHJpYnV0
ZS1jaGFuZ2VkLWNhbGxiYWNrLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10
ZXN0cy9jdXN0b20tZWxlbWVudHMvY29ubmVjdGVkLWNhbGxiYWNrcy1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvY29ubmVj
dGVkLWNhbGxiYWNrcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
Y3VzdG9tLWVsZW1lbnRzL2N1c3RvbS1lbGVtZW50LXJlZ2lzdHJ5L2RlZmluZS1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMv
Y3VzdG9tLWVsZW1lbnQtcmVnaXN0cnkvZGVmaW5lLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdl
Yi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvY3VzdG9tLWVsZW1lbnQtcmVnaXN0cnkv
dzNjLWltcG9ydC5sb2c6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0
b20tZWxlbWVudHMvZGlzY29ubmVjdGVkLWNhbGxiYWNrcy1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvZGlzY29ubmVjdGVk
LWNhbGxiYWNrcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3Vz
dG9tLWVsZW1lbnRzL2h0bWxjb25zdHJ1Y3Rvci9uZXd0YXJnZXQtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL2h0bWxjb25z
dHJ1Y3Rvci9uZXd0YXJnZXQuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRl
c3RzL2N1c3RvbS1lbGVtZW50cy9odG1sY29uc3RydWN0b3IvdzNjLWltcG9ydC5sb2c6IEFkZGVk
LgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvcmVhY3Rpb24t
dGltaW5nLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L2N1c3RvbS1lbGVtZW50cy9yZWFjdGlvbi10aW1pbmcuaHRtbDogQWRkZWQuCisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9yZWFjdGlvbnMvQXR0ci1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVu
dHMvcmVhY3Rpb25zL0F0dHIuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRl
c3RzL2N1c3RvbS1lbGVtZW50cy9yZWFjdGlvbnMvQ2hpbGROb2RlLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9yZWFjdGlv
bnMvQ2hpbGROb2RlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9j
dXN0b20tZWxlbWVudHMvcmVhY3Rpb25zL0RPTVRva2VuTGlzdC1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvcmVhY3Rpb25z
L0RPTVRva2VuTGlzdC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
Y3VzdG9tLWVsZW1lbnRzL3JlYWN0aW9ucy9Eb2N1bWVudC1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvcmVhY3Rpb25zL0Rv
Y3VtZW50Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20t
ZWxlbWVudHMvcmVhY3Rpb25zL0VsZW1lbnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL3JlYWN0aW9ucy9FbGVtZW50Lmh0
bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMv
cmVhY3Rpb25zL05hbWVkTm9kZU1hcC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdl
Yi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvcmVhY3Rpb25zL05hbWVkTm9kZU1hcC5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRz
L3JlYWN0aW9ucy9Ob2RlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9yZWFjdGlvbnMvTm9kZS5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL3JlYWN0aW9ucy9QYXJl
bnROb2RlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L2N1c3RvbS1lbGVtZW50cy9yZWFjdGlvbnMvUGFyZW50Tm9kZS5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL3JlYWN0aW9ucy9SYW5nZS1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20t
ZWxlbWVudHMvcmVhY3Rpb25zL1JhbmdlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvcmVhY3Rpb25zL3Jlc291cmNlcy9yZWFjdGlvbnMu
anM6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMv
cmVhY3Rpb25zL3Jlc291cmNlcy93M2MtaW1wb3J0LmxvZzogQWRkZWQuCisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9yZWFjdGlvbnMvdzNjLWltcG9ydC5sb2c6
IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvcmVz
b3VyY2VzL2N1c3RvbS1lbGVtZW50cy1oZWxwZXJzLmpzOiBBZGRlZC4KKyAgICAgICAgKiB3ZWIt
cGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL3Jlc291cmNlcy9kb2N1bWVudC10eXBlcy5q
czogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9y
ZXNvdXJjZXMvZW1wdHktaHRtbC1kb2N1bWVudC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWIt
cGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL3Jlc291cmNlcy93M2MtaW1wb3J0LmxvZzog
QWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy93M2Mt
aW1wb3J0LmxvZzogQWRkZWQuCisKIDIwMTYtMTAtMDQgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5A
YXBwbGUuY29tPgogCiAgICAgICAgIFtGZXRjaCBBUEldIFJlYWRhYmxlU3RyZWFtIHNob3VsZCBi
ZSBlcnJvcmVkIHdpdGggVHlwZUVycm9yIHZhbHVlcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9jdXN0b20tZWxlbWVudHMvQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRzL0N1c3RvbUVsZW1lbnRSZWdpc3RyeS1l
eHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM1ZWM1ZWU0MWVjZDEx
Nzk1OTRlYjFkN2IwZTkwY2ZkZjlmYzYwY2IuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9jdXN0b20tZWxlbWVudHMvQ3VzdG9t
RWxlbWVudFJlZ2lzdHJ5LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDM5ICswLDAg
QEAKLQotUEFTUyBDdXN0b21FbGVtZW50UmVnaXN0cnkgaW50ZXJmYWNlIG11c3QgaGF2ZSBkZWZp
bmUgYXMgYSBtZXRob2QgCi1QQVNTIGN1c3RvbUVsZW1lbnRzLmRlZmluZSBtdXN0IHRocm93IHdo
ZW4gdGhlIGVsZW1lbnQgaW50ZXJmYWNlIGlzIG5vdCBhIGNvbnN0cnVjdG9yIAotUEFTUyBjdXN0
b21FbGVtZW50cy5kZWZpbmUgbXVzdCBub3QgdGhyb3cgdGhlIGNvbnN0cnVjdG9yIGlzIEhUTUxF
bGVtZW50IAotUEFTUyBjdXN0b21FbGVtZW50cy5kZWZpbmUgbXVzdCB0aHJvdyB3aXRoIGFuIGlu
dmFsaWQgbmFtZSAKLVBBU1MgY3VzdG9tRWxlbWVudHMuZGVmaW5lIG11c3QgdGhyb3cgd2hlbiB0
aGVyZSBpcyBhbHJlYWR5IGEgY3VzdG9tIGVsZW1lbnQgb2YgdGhlIHNhbWUgbmFtZSAKLVBBU1Mg
Y3VzdG9tRWxlbWVudHMuZGVmaW5lIG11c3QgdGhyb3cgYSBOb3RTdXBwb3J0ZWRFcnJvciB3aGVu
IHRoZXJlIGlzIGFscmVhZHkgYSBjdXN0b20gZWxlbWVudCB3aXRoIHRoZSBzYW1lIGNsYXNzIAot
UEFTUyBjdXN0b21FbGVtZW50cy5kZWZpbmUgbXVzdCB0aHJvdyBhIE5vdFN1cHBvcnRlZEVycm9y
IHdoZW4gZWxlbWVudCBkZWZpbml0aW9uIGlzIHJ1bm5pbmcgZmxhZyBpcyBzZXQgCi1QQVNTIGN1
c3RvbUVsZW1lbnRzLmRlZmluZSBtdXN0IGNoZWNrIElzQ29uc3RydWN0b3Igb24gdGhlIGNvbnN0
cnVjdG9yIGJlZm9yZSBjaGVja2luZyB0aGUgZWxlbWVudCBkZWZpbml0aW9uIGlzIHJ1bm5pbmcg
ZmxhZyAKLVBBU1MgY3VzdG9tRWxlbWVudHMuZGVmaW5lIG11c3QgdmFsaWRhdGUgdGhlIGN1c3Rv
bSBlbGVtZW50IG5hbWUgYmVmb3JlIGNoZWNraW5nIHRoZSBlbGVtZW50IGRlZmluaXRpb24gaXMg
cnVubmluZyBmbGFnIAotUEFTUyBjdXN0b21FbGVtZW50cy5kZWZpbmUgdW5zZXQgdGhlIGVsZW1l
bnQgZGVmaW5pdGlvbiBpcyBydW5uaW5nIGZsYWcgYmVmb3JlIHVwZ3JhZGluZyBjdXN0b20gZWxl
bWVudHMgCi1QQVNTIGN1c3RvbUVsZW1lbnRzLmRlZmluZSBtdXN0IG5vdCB0aHJvdyB3aGVuIGRl
ZmluaW5nIGFub3RoZXIgY3VzdG9tIGVsZW1lbnQgaW4gYSBkaWZmZXJlbnQgZ2xvYmFsIG9iamVj
dCBkdXJpbmcgR2V0KGNvbnN0cnVjdG9yLCAicHJvdG90eXBlIikgCi1QQVNTIEN1c3RvbSBFbGVt
ZW50czogQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5IGludGVyZmFjZSAKLVBBU1MgY3VzdG9tRWxlbWVu
dHMuZGVmaW5lIG11c3QgZ2V0ICJwcm90b3R5cGUiIHByb3BlcnR5IG9mIHRoZSBjb25zdHJ1Y3Rv
ciAKLVBBU1MgY3VzdG9tRWxlbWVudHMuZGVmaW5lIG11c3QgcmV0aHJvdyBhbiBleGNlcHRpb24g
dGhyb3duIHdoaWxlIGdldHRpbmcgInByb3RvdHlwZSIgcHJvcGVydHkgb2YgdGhlIGNvbnN0cnVj
dG9yIAotUEFTUyBjdXN0b21FbGVtZW50cy5kZWZpbmUgbXVzdCB0aHJvdyB3aGVuICJwcm90b3R5
cGUiIHByb3BlcnR5IG9mIHRoZSBjb25zdHJ1Y3RvciBpcyBub3QgYW4gb2JqZWN0IAotUEFTUyBj
dXN0b21FbGVtZW50cy5kZWZpbmUgbXVzdCBnZXQgY2FsbGJhY2tzIG9mIHRoZSBjb25zdHJ1Y3Rv
ciBwcm90b3R5cGUgCi1QQVNTIGN1c3RvbUVsZW1lbnRzLmRlZmluZSBtdXN0IHJldGhyb3cgYW4g
ZXhjZXB0aW9uIHRocm93biB3aGlsZSBnZXR0aW5nIGNhbGxiYWNrcyBvbiB0aGUgY29uc3RydWN0
b3IgcHJvdG90eXBlIAotUEFTUyBjdXN0b21FbGVtZW50cy5kZWZpbmUgbXVzdCByZXRocm93IGFu
IGV4Y2VwdGlvbiB0aHJvd24gd2hpbGUgY29udmVydGluZyBhIGNhbGxiYWNrIHZhbHVlIHRvIEZ1
bmN0aW9uIGNhbGxiYWNrIHR5cGUgCi1QQVNTIGN1c3RvbUVsZW1lbnRzLmRlZmluZSBtdXN0IGdl
dCAib2JzZXJ2ZWRBdHRyaWJ1dGVzIiBwcm9wZXJ0eSBvbiB0aGUgY29uc3RydWN0b3IgcHJvdG90
eXBlIHdoZW4gImF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayIgaXMgcHJlc2VudCAKLVBBU1MgY3Vz
dG9tRWxlbWVudHMuZGVmaW5lIG11c3QgcmV0aHJvdyBhbiBleGNlcHRpb24gdGhyb3duIHdoaWxl
IGdldHRpbmcgb2JzZXJ2ZWRBdHRyaWJ1dGVzIG9uIHRoZSBjb25zdHJ1Y3RvciBwcm90b3R5cGUg
Ci1QQVNTIGN1c3RvbUVsZW1lbnRzLmRlZmluZSBtdXN0IHJldGhyb3cgYW4gZXhjZXB0aW9uIHRo
cm93biB3aGlsZSBjb252ZXJ0aW5nIHRoZSB2YWx1ZSBvZiBvYnNlcnZlZEF0dHJpYnV0ZXMgdG8g
c2VxdWVuY2U8RE9NU3RyaW5nPiAKLVBBU1MgY3VzdG9tRWxlbWVudHMuZGVmaW5lIG11c3QgcmV0
aHJvdyBhbiBleGNlcHRpb24gdGhyb3duIHdoaWxlIGl0ZXJhdGluZyBvdmVyIG9ic2VydmVkQXR0
cmlidXRlcyB0byBzZXF1ZW5jZTxET01TdHJpbmc+IAotUEFTUyBjdXN0b21FbGVtZW50cy5kZWZp
bmUgbXVzdCByZXRocm93IGFuIGV4Y2VwdGlvbiB0aHJvd24gd2hpbGUgcmV0cmlldmluZyBTeW1i
b2wuaXRlcmF0b3Igb24gb2JzZXJ2ZWRBdHRyaWJ1dGVzIAotUEFTUyBjdXN0b21FbGVtZW50cy5k
ZWZpbmUgbXVzdCBub3QgdGhyb3cgZXZlbiBpZiAib2JzZXJ2ZWRBdHRyaWJ1dGVzIiBmYWlscyB0
byBjb252ZXJ0IGlmICJhdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2siIGlzIG5vdCBkZWZpbmVkIAot
UEFTUyBjdXN0b21FbGVtZW50cy5kZWZpbmUgbXVzdCBkZWZpbmUgYW4gaW5zdGFudGlhdGFibGUg
Y3VzdG9tIGVsZW1lbnQgCi1QQVNTIGN1c3RvbUVsZW1lbnRzLmRlZmluZSBtdXN0IHVwZ3JhZGUg
ZWxlbWVudHMgaW4gdGhlIHNoYWRvdy1pbmNsdWRpbmcgdHJlZSBvcmRlciAKLVBBU1MgQ3VzdG9t
RWxlbWVudFJlZ2lzdHJ5IGludGVyZmFjZSBtdXN0IGhhdmUgZ2V0IGFzIGEgbWV0aG9kIAotUEFT
UyBjdXN0b21FbGVtZW50cy5nZXQgbXVzdCByZXR1cm4gdW5kZWZpbmVkIHdoZW4gdGhlIHJlZ2lz
dHJ5IGRvZXMgbm90IGNvbnRhaW4gYW4gZW50cnkgd2l0aCB0aGUgZ2l2ZW4gbmFtZSAKLVBBU1Mg
Y3VzdG9tRWxlbWVudHMuZ2V0IG11c3QgcmV0dXJuIHVuZGVmaW5lZCB3aGVuIHRoZSByZWdpc3Ry
eSBkb2VzIG5vdCBjb250YWluIGFuIGVudHJ5IHdpdGggdGhlIGdpdmVuIG5hbWUgZXZlbiBpZiB0
aGUgbmFtZSB3YXMgbm90IGEgdmFsaWQgY3VzdG9tIGVsZW1lbnQgbmFtZSAKLVBBU1MgY3VzdG9t
RWxlbWVudHMuZ2V0IHJldHVybiB0aGUgY29uc3RydWN0b3Igb2YgdGhlIGVudHJ5IHdpdGggdGhl
IGdpdmVuIG5hbWUgd2hlbiB0aGVyZSBpcyBhIG1hdGNoaW5nIGVudHJ5LiAKLVBBU1MgY3VzdG9t
RWxlbWVudHMud2hlbkRlZmluZWQgbXVzdCByZXR1cm4gYSBwcm9taXNlIGZvciBhIHZhbGlkIGN1
c3RvbSBlbGVtZW50IG5hbWUgCi1QQVNTIGN1c3RvbUVsZW1lbnRzLndoZW5EZWZpbmVkIG11c3Qg
cmV0dXJuIHRoZSBzYW1lIHByb21pc2UgZWFjaCB0aW1lIGludm9rZWQgZm9yIGEgdmFsaWQgY3Vz
dG9tIGVsZW1lbnQgbmFtZSB3aGljaCBoYXMgbm90IGJlZW4gZGVmaW5lZCAKLVBBU1MgY3VzdG9t
RWxlbWVudHMud2hlbkRlZmluZWQgbXVzdCByZXR1cm4gYW4gdW5yZXNvbHZlZCBwcm9taXNlIHdo
ZW4gdGhlIHJlZ2lzdHJ5IGRvZXMgbm90IGNvbnRhaW4gdGhlIGVudHJ5IHdpdGggdGhlIGdpdmVu
IG5hbWUgCi1QQVNTIGN1c3RvbUVsZW1lbnRzLndoZW5EZWZpbmVkIG11c3QgcmV0dXJuIGEgcmVq
ZWN0ZWQgcHJvbWlzZSB3aGVuIHRoZSBnaXZlbiBuYW1lIGlzIG5vdCBhIHZhbGlkIGN1c3RvbSBl
bGVtZW50IG5hbWUgCi1QQVNTIGN1c3RvbUVsZW1lbnRzLndoZW5EZWZpbmVkIG11c3QgcmV0dXJu
IGEgcmVzb2x2ZWQgcHJvbWlzZSB3aGVuIHRoZSByZWdpc3RyeSBjb250YWlucyB0aGUgZW50cnkg
d2l0aCB0aGUgZ2l2ZW4gbmFtZSAKLVBBU1MgY3VzdG9tRWxlbWVudHMud2hlbkRlZmluZWQgbXVz
dCByZXR1cm4gYSBuZXcgcmVzb2x2ZWQgcHJvbWlzZSBlYWNoIHRpbWUgaW52b2tlZCB3aGVuIHRo
ZSByZWdpc3RyeSBjb250YWlucyB0aGUgZW50cnkgd2l0aCB0aGUgZ2l2ZW4gbmFtZSAKLVBBU1Mg
QSBwcm9taXNlIHJldHVybmVkIGJ5IGN1c3RvbUVsZW1lbnRzLndoZW5EZWZpbmVkIG11c3QgYmUg
cmVzb2x2ZWQgYnkgImRlZmluZSIgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3Vz
dG9tLWVsZW1lbnRzL0N1c3RvbUVsZW1lbnRSZWdpc3RyeS5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9jdXN0b20tZWxlbWVudHMvQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5Lmh0bWwKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGQwZmZiNmUyMTNhMGIwZmNmMDJjNGNjZmVmMzM0NDVhMjY4NWE1
YjUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9jdXN0b20tZWxlbWVudHMvQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5Lmh0bWwKKysr
IC9kZXYvbnVsbApAQCAtMSw1ODEgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxo
ZWFkPgotPHRpdGxlPkN1c3RvbSBFbGVtZW50czogQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5IGludGVy
ZmFjZTwvdGl0bGU+Ci08bWV0YSBuYW1lPSJhdXRob3IiIHRpdGxlPSJSeW9zdWtlIE5pd2EiIGhy
ZWY9Im1haWx0bzpybml3YUB3ZWJraXQub3JnIj4KLTxtZXRhIG5hbWU9ImFzc2VydCIgY29udGVu
dD0iQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5IGludGVyZmFjZSBtdXN0IGV4aXN0Ij4KLTxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08bGlu
ayByZWw9J3N0eWxlc2hlZXQnIGhyZWY9Jy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5jc3Mn
PgotPC9oZWFkPgotPGJvZHk+Ci08ZGl2IGlkPSJsb2ciPjwvZGl2PgotPHNjcmlwdD4KLQotdGVz
dChmdW5jdGlvbiAoKSB7Ci0gICAgYXNzZXJ0X3RydWUoJ2RlZmluZScgaW4gQ3VzdG9tRWxlbWVu
dFJlZ2lzdHJ5LnByb3RvdHlwZSwgJyJkZWZpbmUiIGV4aXN0cyBvbiBDdXN0b21FbGVtZW50UmVn
aXN0cnkucHJvdG90eXBlJyk7Ci0gICAgYXNzZXJ0X3RydWUoJ2RlZmluZScgaW4gY3VzdG9tRWxl
bWVudHMsICciZGVmaW5lIiBleGlzdHMgb24gd2luZG93LmN1c3RvbUVsZW1lbnRzJyk7Ci19LCAn
Q3VzdG9tRWxlbWVudFJlZ2lzdHJ5IGludGVyZmFjZSBtdXN0IGhhdmUgZGVmaW5lIGFzIGEgbWV0
aG9kJyk7Ci0KLXRlc3QoZnVuY3Rpb24gKCkgewotICAgIGFzc2VydF90aHJvd3MoeyduYW1lJzog
J1R5cGVFcnJvcid9LCBmdW5jdGlvbiAoKSB7IGN1c3RvbUVsZW1lbnRzLmRlZmluZSgnYmFkbmFt
ZScsIDEpOyB9LAotICAgICAgICAnY3VzdG9tRWxlbWVudHMuZGVmaW5lIG11c3QgdGhyb3cgYSBU
eXBlRXJyb3Igd2hlbiB0aGUgZWxlbWVudCBpbnRlcmZhY2UgaXMgYSBudW1iZXInKTsKLSAgICBh
c3NlcnRfdGhyb3dzKHsnbmFtZSc6ICdUeXBlRXJyb3InfSwgZnVuY3Rpb24gKCkgeyBjdXN0b21F
bGVtZW50cy5kZWZpbmUoJ2JhZG5hbWUnLCAnMTIzJyk7IH0sCi0gICAgICAgICdjdXN0b21FbGVt
ZW50cy5kZWZpbmUgbXVzdCB0aHJvdyBhIFR5cGVFcnJvciB3aGVuIHRoZSBlbGVtZW50IGludGVy
ZmFjZSBpcyBhIHN0cmluZycpOwotICAgIGFzc2VydF90aHJvd3MoeyduYW1lJzogJ1R5cGVFcnJv
cid9LCBmdW5jdGlvbiAoKSB7IGN1c3RvbUVsZW1lbnRzLmRlZmluZSgnYmFkbmFtZScsIHt9KTsg
fSwKLSAgICAgICAgJ2N1c3RvbUVsZW1lbnRzLmRlZmluZSBtdXN0IHRocm93IGEgVHlwZUVycm9y
IHdoZW4gdGhlIGVsZW1lbnQgaW50ZXJmYWNlIGlzIGFuIG9iamVjdCcpOwotICAgIGFzc2VydF90
aHJvd3MoeyduYW1lJzogJ1R5cGVFcnJvcid9LCBmdW5jdGlvbiAoKSB7IGN1c3RvbUVsZW1lbnRz
LmRlZmluZSgnYmFkbmFtZScsIFtdKTsgfSwKLSAgICAgICAgJ2N1c3RvbUVsZW1lbnRzLmRlZmlu
ZSBtdXN0IHRocm93IGEgVHlwZUVycm9yIHdoZW4gdGhlIGVsZW1lbnQgaW50ZXJmYWNlIGlzIGFu
IGFycmF5Jyk7Ci19LCAnY3VzdG9tRWxlbWVudHMuZGVmaW5lIG11c3QgdGhyb3cgd2hlbiB0aGUg
ZWxlbWVudCBpbnRlcmZhY2UgaXMgbm90IGEgY29uc3RydWN0b3InKTsKLQotdGVzdChmdW5jdGlv
biAoKSB7Ci0gICAgY3VzdG9tRWxlbWVudHMuZGVmaW5lKCdjdXN0b20taHRtbC1lbGVtZW50Jywg
SFRNTEVsZW1lbnQpOwotfSwgJ2N1c3RvbUVsZW1lbnRzLmRlZmluZSBtdXN0IG5vdCB0aHJvdyB0
aGUgY29uc3RydWN0b3IgaXMgSFRNTEVsZW1lbnQnKTsKLQotdGVzdChmdW5jdGlvbiAoKSB7Ci0g
ICAgY2xhc3MgTXlDdXN0b21FbGVtZW50IGV4dGVuZHMgSFRNTEVsZW1lbnQge307Ci0KLSAgICBh
c3NlcnRfdGhyb3dzKHsnbmFtZSc6ICdTeW50YXhFcnJvcid9LCBmdW5jdGlvbiAoKSB7IGN1c3Rv
bUVsZW1lbnRzLmRlZmluZShudWxsLCBNeUN1c3RvbUVsZW1lbnQpOyB9LAotICAgICAgICAnY3Vz
dG9tRWxlbWVudHMuZGVmaW5lIG11c3QgdGhyb3cgYSBTeW50YXhFcnJvciBpZiB0aGUgdGFnIG5h
bWUgaXMgbnVsbCcpOwotICAgIGFzc2VydF90aHJvd3MoeyduYW1lJzogJ1N5bnRheEVycm9yJ30s
IGZ1bmN0aW9uICgpIHsgY3VzdG9tRWxlbWVudHMuZGVmaW5lKCcnLCBNeUN1c3RvbUVsZW1lbnQp
OyB9LAotICAgICAgICAnY3VzdG9tRWxlbWVudHMuZGVmaW5lIG11c3QgdGhyb3cgYSBTeW50YXhF
cnJvciBpZiB0aGUgdGFnIG5hbWUgaXMgZW1wdHknKTsKLSAgICBhc3NlcnRfdGhyb3dzKHsnbmFt
ZSc6ICdTeW50YXhFcnJvcid9LCBmdW5jdGlvbiAoKSB7IGN1c3RvbUVsZW1lbnRzLmRlZmluZSgn
YWJjJywgTXlDdXN0b21FbGVtZW50KTsgfSwKLSAgICAgICAgJ2N1c3RvbUVsZW1lbnRzLmRlZmlu
ZSBtdXN0IHRocm93IGEgU3ludGF4RXJyb3IgaWYgdGhlIHRhZyBuYW1lIGRvZXMgbm90IGNvbnRh
aW4gIi0iJyk7Ci0gICAgYXNzZXJ0X3Rocm93cyh7J25hbWUnOiAnU3ludGF4RXJyb3InfSwgZnVu
Y3Rpb24gKCkgeyBjdXN0b21FbGVtZW50cy5kZWZpbmUoJ2EtQmMnLCBNeUN1c3RvbUVsZW1lbnQp
OyB9LAotICAgICAgICAnY3VzdG9tRWxlbWVudHMuZGVmaW5lIG11c3QgdGhyb3cgYSBTeW50YXhF
cnJvciBpZiB0aGUgdGFnIG5hbWUgY29udGFpbnMgYW4gdXBwZXIgY2FzZSBsZXR0ZXInKTsKLQot
ICAgIHZhciBidWlsdGluVGFnTmFtZXMgPSBbCi0gICAgICAgICdhbm5vdGF0aW9uLXhtbCcsCi0g
ICAgICAgICdjb2xvci1wcm9maWxlJywKLSAgICAgICAgJ2ZvbnQtZmFjZScsCi0gICAgICAgICdm
b250LWZhY2Utc3JjJywKLSAgICAgICAgJ2ZvbnQtZmFjZS11cmknLAotICAgICAgICAnZm9udC1m
YWNlLWZvcm1hdCcsCi0gICAgICAgICdmb250LWZhY2UtbmFtZScsCi0gICAgICAgICdtaXNzaW5n
LWdseXBoJwotICAgIF07Ci0KLSAgICBmb3IgKHZhciB0YWdOYW1lIG9mIGJ1aWx0aW5UYWdOYW1l
cykgewotICAgICAgICBhc3NlcnRfdGhyb3dzKHsnbmFtZSc6ICdTeW50YXhFcnJvcid9LCBmdW5j
dGlvbiAoKSB7IGN1c3RvbUVsZW1lbnRzLmRlZmluZSh0YWdOYW1lLCBNeUN1c3RvbUVsZW1lbnQp
OyB9LAotICAgICAgICAgICAgJ2N1c3RvbUVsZW1lbnRzLmRlZmluZSBtdXN0IHRocm93IGEgU3lu
dGF4RXJyb3IgaWYgdGhlIHRhZyBuYW1lIGlzICInICsgdGFnTmFtZSArICciJyk7Ci0gICAgfQot
Ci19LCAnY3VzdG9tRWxlbWVudHMuZGVmaW5lIG11c3QgdGhyb3cgd2l0aCBhbiBpbnZhbGlkIG5h
bWUnKTsKLQotdGVzdChmdW5jdGlvbiAoKSB7Ci0gICAgY2xhc3MgU29tZUN1c3RvbUVsZW1lbnQg
ZXh0ZW5kcyBIVE1MRWxlbWVudCB7fTsKLQotICAgIHZhciBjYWxscyA9IFtdOwotICAgIHZhciBP
dGhlckN1c3RvbUVsZW1lbnQgPSBuZXcgUHJveHkoY2xhc3MgZXh0ZW5kcyBIVE1MRWxlbWVudCB7
fSwgewotICAgICAgICBnZXQ6IGZ1bmN0aW9uICh0YXJnZXQsIG5hbWUpIHsKLSAgICAgICAgICAg
IGNhbGxzLnB1c2gobmFtZSk7Ci0gICAgICAgICAgICByZXR1cm4gdGFyZ2V0W25hbWVdOwotICAg
ICAgICB9Ci0gICAgfSkKLQotICAgIGN1c3RvbUVsZW1lbnRzLmRlZmluZSgnc29tZS1jdXN0b20t
ZWxlbWVudCcsIFNvbWVDdXN0b21FbGVtZW50KTsKLSAgICBhc3NlcnRfdGhyb3dzKHsnbmFtZSc6
ICdOb3RTdXBwb3J0ZWRFcnJvcid9LCBmdW5jdGlvbiAoKSB7IGN1c3RvbUVsZW1lbnRzLmRlZmlu
ZSgnc29tZS1jdXN0b20tZWxlbWVudCcsIE90aGVyQ3VzdG9tRWxlbWVudCk7IH0sCi0gICAgICAg
ICdjdXN0b21FbGVtZW50cy5kZWZpbmUgbXVzdCB0aHJvdyBhIE5vdFN1cHBvcnRlZEVycm9yIGlm
IHRoZSBzcGVjaWZpZWQgdGFnIG5hbWUgaXMgYWxyZWFkeSB1c2VkJyk7Ci0gICAgYXNzZXJ0X2Fy
cmF5X2VxdWFscyhjYWxscywgW10sICdjdXN0b21FbGVtZW50cy5kZWZpbmUgbXVzdCB2YWxpZGF0
ZSB0aGUgY3VzdG9tIGVsZW1lbnQgbmFtZSBiZWZvcmUgZ2V0dGluZyB0aGUgcHJvdG90eXBlIG9m
IHRoZSBjb25zdHJ1Y3RvcicpOwotCi19LCAnY3VzdG9tRWxlbWVudHMuZGVmaW5lIG11c3QgdGhy
b3cgd2hlbiB0aGVyZSBpcyBhbHJlYWR5IGEgY3VzdG9tIGVsZW1lbnQgb2YgdGhlIHNhbWUgbmFt
ZScpOwotCi10ZXN0KGZ1bmN0aW9uICgpIHsKLSAgICBjbGFzcyBBbm90aGVyQ3VzdG9tRWxlbWVu
dCBleHRlbmRzIEhUTUxFbGVtZW50IHt9OwotCi0gICAgY3VzdG9tRWxlbWVudHMuZGVmaW5lKCdh
bm90aGVyLWN1c3RvbS1lbGVtZW50JywgQW5vdGhlckN1c3RvbUVsZW1lbnQpOwotICAgIGFzc2Vy
dF90aHJvd3MoeyduYW1lJzogJ05vdFN1cHBvcnRlZEVycm9yJ30sIGZ1bmN0aW9uICgpIHsgY3Vz
dG9tRWxlbWVudHMuZGVmaW5lKCdzb21lLW90aGVyLWVsZW1lbnQnLCBBbm90aGVyQ3VzdG9tRWxl
bWVudCk7IH0sCi0gICAgICAgICdjdXN0b21FbGVtZW50cy5kZWZpbmUgbXVzdCB0aHJvdyBhIE5v
dFN1cHBvcnRlZEVycm9yIGlmIHRoZSBzcGVjaWZpZWQgY2xhc3MgYWxyZWFkeSBkZWZpbmVzIGFu
IGVsZW1lbnQnKTsKLQotfSwgJ2N1c3RvbUVsZW1lbnRzLmRlZmluZSBtdXN0IHRocm93IGEgTm90
U3VwcG9ydGVkRXJyb3Igd2hlbiB0aGVyZSBpcyBhbHJlYWR5IGEgY3VzdG9tIGVsZW1lbnQgd2l0
aCB0aGUgc2FtZSBjbGFzcycpOwotCi10ZXN0KGZ1bmN0aW9uICgpIHsKLSAgICB2YXIgb3V0ZXJD
YWxscyA9IFtdOwotICAgIHZhciBPdXRlckN1c3RvbUVsZW1lbnQgPSBuZXcgUHJveHkoY2xhc3Mg
ZXh0ZW5kcyBIVE1MRWxlbWVudCB7IH0sIHsKLSAgICAgICAgZ2V0OiBmdW5jdGlvbiAodGFyZ2V0
LCBuYW1lKSB7Ci0gICAgICAgICAgICBvdXRlckNhbGxzLnB1c2gobmFtZSk7Ci0gICAgICAgICAg
ICBjdXN0b21FbGVtZW50cy5kZWZpbmUoJ2lubmVyLWN1c3RvbS1lbGVtZW50JywgSW5uZXJDdXN0
b21FbGVtZW50KTsKLSAgICAgICAgICAgIHJldHVybiB0YXJnZXRbbmFtZV07Ci0gICAgICAgIH0K
LSAgICB9KTsKLSAgICB2YXIgaW5uZXJDYWxscyA9IFtdOwotICAgIHZhciBJbm5lckN1c3RvbUVs
ZW1lbnQgPSBuZXcgUHJveHkoY2xhc3MgZXh0ZW5kcyBIVE1MRWxlbWVudCB7IH0sIHsKLSAgICAg
ICAgZ2V0OiBmdW5jdGlvbiAodGFyZ2V0LCBuYW1lKSB7Ci0gICAgICAgICAgICBvdXRlckNhbGxz
LnB1c2gobmFtZSk7Ci0gICAgICAgICAgICByZXR1cm4gdGFyZ2V0W25hbWVdOwotICAgICAgICB9
Ci0gICAgfSk7Ci0KLSAgICBhc3NlcnRfdGhyb3dzKHsnbmFtZSc6ICdOb3RTdXBwb3J0ZWRFcnJv
cid9LCBmdW5jdGlvbiAoKSB7IGN1c3RvbUVsZW1lbnRzLmRlZmluZSgnb3V0ZXItY3VzdG9tLWVs
ZW1lbnQnLCBPdXRlckN1c3RvbUVsZW1lbnQpOyB9LAotICAgICAgICAnY3VzdG9tRWxlbWVudHMu
ZGVmaW5lIG11c3QgdGhyb3cgYSBOb3RTdXBwb3J0ZWRFcnJvciBpZiB0aGUgc3BlY2lmaWVkIGNs
YXNzIGFscmVhZHkgZGVmaW5lcyBhbiBlbGVtZW50Jyk7Ci0gICAgYXNzZXJ0X2FycmF5X2VxdWFs
cyhvdXRlckNhbGxzLCBbJ3Byb3RvdHlwZSddLCAnY3VzdG9tRWxlbWVudHMuZGVmaW5lIG11c3Qg
Z2V0ICJwcm90b3R5cGUiJyk7Ci0gICAgYXNzZXJ0X2FycmF5X2VxdWFscyhpbm5lckNhbGxzLCBb
XSwKLSAgICAgICAgJ2N1c3RvbUVsZW1lbnRzLmRlZmluZSBtdXN0IHRocm93IGEgTm90U3VwcG9y
dGVkRXJyb3Igd2hlbiBlbGVtZW50IGRlZmluaXRpb24gaXMgcnVubmluZyBmbGFnIGlzIHNldCcK
LSAgICAgICAgKyAnIGJlZm9yZSBnZXR0aW5nIHRoZSBwcm90b3R5cGUgb2YgdGhlIGNvbnN0cnVj
dG9yJyk7Ci0KLX0sICdjdXN0b21FbGVtZW50cy5kZWZpbmUgbXVzdCB0aHJvdyBhIE5vdFN1cHBv
cnRlZEVycm9yIHdoZW4gZWxlbWVudCBkZWZpbml0aW9uIGlzIHJ1bm5pbmcgZmxhZyBpcyBzZXQn
KTsKLQotdGVzdChmdW5jdGlvbiAoKSB7Ci0gICAgdmFyIGNhbGxzID0gW107Ci0gICAgdmFyIEVs
ZW1lbnRXaXRoQmFkSW5uZXJDb25zdHJ1Y3RvciA9IG5ldyBQcm94eShjbGFzcyBleHRlbmRzIEhU
TUxFbGVtZW50IHsgfSwgewotICAgICAgICBnZXQ6IGZ1bmN0aW9uICh0YXJnZXQsIG5hbWUpIHsK
LSAgICAgICAgICAgIGNhbGxzLnB1c2gobmFtZSk7Ci0gICAgICAgICAgICBjdXN0b21FbGVtZW50
cy5kZWZpbmUoJ2lubmVyLWN1c3RvbS1lbGVtZW50JywgMSk7Ci0gICAgICAgICAgICByZXR1cm4g
dGFyZ2V0W25hbWVdOwotICAgICAgICB9Ci0gICAgfSk7Ci0KLSAgICBhc3NlcnRfdGhyb3dzKHsn
bmFtZSc6ICdUeXBlRXJyb3InfSwgZnVuY3Rpb24gKCkgewotICAgICAgICBjdXN0b21FbGVtZW50
cy5kZWZpbmUoJ2VsZW1lbnQtd2l0aC1iYWQtaW5uZXItY29uc3RydWN0b3InLCBFbGVtZW50V2l0
aEJhZElubmVyQ29uc3RydWN0b3IpOwotICAgIH0sICdjdXN0b21FbGVtZW50cy5kZWZpbmUgbXVz
dCB0aHJvdyBhIE5vdFN1cHBvcnRlZEVycm9yIGlmIElzQ29uc3RydWN0b3IoY29uc3RydWN0b3Ip
IGlzIGZhbHNlJyk7Ci0KLSAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGNhbGxzLCBbJ3Byb3RvdHlw
ZSddLCAnY3VzdG9tRWxlbWVudHMuZGVmaW5lIG11c3QgZ2V0ICJwcm90b3R5cGUiJyk7Ci19LCAn
Y3VzdG9tRWxlbWVudHMuZGVmaW5lIG11c3QgY2hlY2sgSXNDb25zdHJ1Y3RvciBvbiB0aGUgY29u
c3RydWN0b3IgYmVmb3JlIGNoZWNraW5nIHRoZSBlbGVtZW50IGRlZmluaXRpb24gaXMgcnVubmlu
ZyBmbGFnJyk7Ci0KLXRlc3QoZnVuY3Rpb24gKCkgewotICAgIHZhciBjYWxscyA9IFtdOwotICAg
IHZhciBFbGVtZW50V2l0aEJhZElubmVyTmFtZSA9IG5ldyBQcm94eShjbGFzcyBleHRlbmRzIEhU
TUxFbGVtZW50IHsgfSwgewotICAgICAgICBnZXQ6IGZ1bmN0aW9uICh0YXJnZXQsIG5hbWUpIHsK
LSAgICAgICAgICAgIGNhbGxzLnB1c2gobmFtZSk7Ci0gICAgICAgICAgICBjdXN0b21FbGVtZW50
cy5kZWZpbmUoJ2JhZG5hbWUnLCBjbGFzcyBleHRlbmRzIEhUTUxFbGVtZW50IHt9KTsKLSAgICAg
ICAgICAgIHJldHVybiB0YXJnZXRbbmFtZV07Ci0gICAgICAgIH0KLSAgICB9KTsKLQotICAgIGFz
c2VydF90aHJvd3MoeyduYW1lJzogJ1N5bnRheEVycm9yJ30sIGZ1bmN0aW9uICgpIHsKLSAgICAg
ICAgY3VzdG9tRWxlbWVudHMuZGVmaW5lKCdlbGVtZW50LXdpdGgtYmFkLWlubmVyLW5hbWUnLCBF
bGVtZW50V2l0aEJhZElubmVyTmFtZSk7Ci0gICAgfSwgJ2N1c3RvbUVsZW1lbnRzLmRlZmluZSBt
dXN0IHRocm93IGEgU3ludGF4RXJyb3IgaWYgdGhlIHNwZWNpZmllZCBuYW1lIGlzIG5vdCBhIHZh
bGlkIGN1c3RvbSBlbGVtZW50IG5hbWUnKTsKLQotICAgIGFzc2VydF9hcnJheV9lcXVhbHMoY2Fs
bHMsIFsncHJvdG90eXBlJ10sICdjdXN0b21FbGVtZW50cy5kZWZpbmUgbXVzdCBnZXQgInByb3Rv
dHlwZSInKTsKLX0sICdjdXN0b21FbGVtZW50cy5kZWZpbmUgbXVzdCB2YWxpZGF0ZSB0aGUgY3Vz
dG9tIGVsZW1lbnQgbmFtZSBiZWZvcmUgY2hlY2tpbmcgdGhlIGVsZW1lbnQgZGVmaW5pdGlvbiBp
cyBydW5uaW5nIGZsYWcnKTsKLQotdGVzdChmdW5jdGlvbiAoKSB7Ci0gICAgdmFyIHVucmVzb2x2
ZWRFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY29uc3RydWN0b3ItY2FsbHMtZGVm
aW5lJyk7Ci0gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh1bnJlc29sdmVkRWxlbWVudCk7
Ci0gICAgdmFyIGVsZW1lbnRVcGdyYWRlZER1cmluZ1VwZ3JhZGUgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCdkZWZpbmVkLWR1cmluZy11cGdyYWRlJyk7Ci0gICAgZG9jdW1lbnQuYm9keS5hcHBl
bmRDaGlsZChlbGVtZW50VXBncmFkZWREdXJpbmdVcGdyYWRlKTsKLQotICAgIHZhciBEZWZpbmVk
RHVyaW5nVXBncmFkZSA9IGNsYXNzIGV4dGVuZHMgSFRNTEVsZW1lbnQgeyB9OwotCi0gICAgY2xh
c3MgQ29uc3RydWN0b3JDYWxsc0RlZmluZSBleHRlbmRzIEhUTUxFbGVtZW50IHsKLSAgICAgICAg
Y29uc3RydWN0b3IoKSB7Ci0gICAgICAgICAgICBjdXN0b21FbGVtZW50cy5kZWZpbmUoJ2RlZmlu
ZWQtZHVyaW5nLXVwZ3JhZGUnLCBEZWZpbmVkRHVyaW5nVXBncmFkZSk7Ci0gICAgICAgICAgICBh
c3NlcnRfZmFsc2UodW5yZXNvbHZlZEVsZW1lbnQgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvckNhbGxz
RGVmaW5lKTsKLSAgICAgICAgICAgIGFzc2VydF90cnVlKGVsZW1lbnRVcGdyYWRlZER1cmluZ1Vw
Z3JhZGUgaW5zdGFuY2VvZiBEZWZpbmVkRHVyaW5nVXBncmFkZSk7Ci0gICAgICAgICAgICBzdXBl
cigpOwotICAgICAgICAgICAgYXNzZXJ0X3RydWUodW5yZXNvbHZlZEVsZW1lbnQgaW5zdGFuY2Vv
ZiBDb25zdHJ1Y3RvckNhbGxzRGVmaW5lKTsKLSAgICAgICAgICAgIGFzc2VydF90cnVlKGVsZW1l
bnRVcGdyYWRlZER1cmluZ1VwZ3JhZGUgaW5zdGFuY2VvZiBEZWZpbmVkRHVyaW5nVXBncmFkZSk7
Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBhc3NlcnRfZmFsc2UodW5yZXNvbHZlZEVsZW1lbnQg
aW5zdGFuY2VvZiBDb25zdHJ1Y3RvckNhbGxzRGVmaW5lKTsKLSAgICBhc3NlcnRfZmFsc2UoZWxl
bWVudFVwZ3JhZGVkRHVyaW5nVXBncmFkZSBpbnN0YW5jZW9mIERlZmluZWREdXJpbmdVcGdyYWRl
KTsKLQotICAgIGN1c3RvbUVsZW1lbnRzLmRlZmluZSgnY29uc3RydWN0b3ItY2FsbHMtZGVmaW5l
JywgQ29uc3RydWN0b3JDYWxsc0RlZmluZSk7Ci19LCAnY3VzdG9tRWxlbWVudHMuZGVmaW5lIHVu
c2V0IHRoZSBlbGVtZW50IGRlZmluaXRpb24gaXMgcnVubmluZyBmbGFnIGJlZm9yZSB1cGdyYWRp
bmcgY3VzdG9tIGVsZW1lbnRzJyk7Ci0KLShmdW5jdGlvbiAoKSB7Ci0gICAgdmFyIHRlc3RDYXNl
ID0gYXN5bmNfdGVzdCgnY3VzdG9tRWxlbWVudHMuZGVmaW5lIG11c3Qgbm90IHRocm93JwotICAg
ICAgICArJyB3aGVuIGRlZmluaW5nIGFub3RoZXIgY3VzdG9tIGVsZW1lbnQgaW4gYSBkaWZmZXJl
bnQgZ2xvYmFsIG9iamVjdCBkdXJpbmcgR2V0KGNvbnN0cnVjdG9yLCAicHJvdG90eXBlIiknLCB7
dGltZW91dDogMTAwfSk7Ci0KLSAgICB2YXIgaWZyYW1lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgnaWZyYW1lJyk7Ci0gICAgaWZyYW1lLm9ubG9hZCA9IGZ1bmN0aW9uICgpIHsKLSAgICAgICAg
dGVzdENhc2Uuc3RlcChmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICB2YXIgSW5uZXJDdXN0b21F
bGVtZW50ID0gY2xhc3MgZXh0ZW5kcyBpZnJhbWUuY29udGVudFdpbmRvdy5IVE1MRWxlbWVudCB7
fTsKLSAgICAgICAgICAgIHZhciBjYWxscyA9IFtdOwotICAgICAgICAgICAgdmFyIHByb3h5ID0g
bmV3IFByb3h5KGNsYXNzIGV4dGVuZHMgSFRNTEVsZW1lbnQgeyB9LCB7Ci0gICAgICAgICAgICAg
ICAgZ2V0OiBmdW5jdGlvbiAodGFyZ2V0LCBuYW1lKSB7Ci0gICAgICAgICAgICAgICAgICAgIGNh
bGxzLnB1c2gobmFtZSk7Ci0gICAgICAgICAgICAgICAgICAgIGlmcmFtZS5jb250ZW50V2luZG93
LmN1c3RvbUVsZW1lbnRzLmRlZmluZSgnYW5vdGhlci1jdXN0b20tZWxlbWVudCcsIElubmVyQ3Vz
dG9tRWxlbWVudCk7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiB0YXJnZXRbbmFtZV07Ci0g
ICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSkKLSAgICAgICAgICAgIGN1c3RvbUVsZW1l
bnRzLmRlZmluZSgnZWxlbWVudC13aXRoLWlubmVyLWVsZW1lbnQtZGVmaW5lJywgcHJveHkpOwot
ICAgICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhjYWxscywgWydwcm90b3R5cGUnXSwgJ2N1
c3RvbUVsZW1lbnRzLmRlZmluZSBtdXN0IGdldCAicHJvdG90eXBlIicpOwotICAgICAgICAgICAg
YXNzZXJ0X3RydWUoaWZyYW1lLmNvbnRlbnREb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhbm90aGVy
LWN1c3RvbS1lbGVtZW50JykgaW5zdGFuY2VvZiBJbm5lckN1c3RvbUVsZW1lbnQpOwotICAgICAg
ICB9KTsKLSAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChpZnJhbWUpOwotICAgICAg
ICB0ZXN0Q2FzZS5kb25lKCk7Ci0gICAgfQotCi0gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGls
ZChpZnJhbWUpOwotfSkoKTsKLQotdGVzdChmdW5jdGlvbiAoKSB7Ci0gICAgdmFyIGNhbGxzID0g
W107Ci0gICAgdmFyIEVsZW1lbnRXaXRoQmFkSW5uZXJOYW1lID0gbmV3IFByb3h5KGNsYXNzIGV4
dGVuZHMgSFRNTEVsZW1lbnQgeyB9LCB7Ci0gICAgICAgIGdldDogZnVuY3Rpb24gKHRhcmdldCwg
bmFtZSkgewotICAgICAgICAgICAgY2FsbHMucHVzaChuYW1lKTsKLSAgICAgICAgICAgIGN1c3Rv
bUVsZW1lbnRzLmRlZmluZSgnYmFkbmFtZScsIGNsYXNzIGV4dGVuZHMgSFRNTEVsZW1lbnQge30p
OwotICAgICAgICAgICAgcmV0dXJuIHRhcmdldFtuYW1lXTsKLSAgICAgICAgfQotICAgIH0pOwot
Ci0gICAgYXNzZXJ0X3Rocm93cyh7J25hbWUnOiAnU3ludGF4RXJyb3InfSwgZnVuY3Rpb24gKCkg
ewotICAgICAgICBjdXN0b21FbGVtZW50cy5kZWZpbmUoJ2VsZW1lbnQtd2l0aC1iYWQtaW5uZXIt
bmFtZScsIEVsZW1lbnRXaXRoQmFkSW5uZXJOYW1lKTsKLSAgICB9LCAnY3VzdG9tRWxlbWVudHMu
ZGVmaW5lIG11c3QgdGhyb3cgYSBTeW50YXhFcnJvciBpZiB0aGUgc3BlY2lmaWVkIG5hbWUgaXMg
bm90IGEgdmFsaWQgY3VzdG9tIGVsZW1lbnQgbmFtZScpOwotCi0gICAgYXNzZXJ0X2FycmF5X2Vx
dWFscyhjYWxscywgWydwcm90b3R5cGUnXSwgJ2N1c3RvbUVsZW1lbnRzLmRlZmluZSBtdXN0IGdl
dCAicHJvdG90eXBlIicpOwotfSwgJycpOwotCi10ZXN0KGZ1bmN0aW9uICgpIHsKLSAgICB2YXIg
Y2FsbHMgPSBbXTsKLSAgICB2YXIgcHJveHkgPSBuZXcgUHJveHkoY2xhc3MgZXh0ZW5kcyBIVE1M
RWxlbWVudCB7IH0sIHsKLSAgICAgICAgZ2V0OiBmdW5jdGlvbiAodGFyZ2V0LCBuYW1lKSB7Ci0g
ICAgICAgICAgICBjYWxscy5wdXNoKG5hbWUpOwotICAgICAgICAgICAgcmV0dXJuIHRhcmdldFtu
YW1lXTsKLSAgICAgICAgfQotICAgIH0pOwotICAgIGN1c3RvbUVsZW1lbnRzLmRlZmluZSgncHJv
eHktZWxlbWVudCcsIHByb3h5KTsKLSAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGNhbGxzLCBbJ3By
b3RvdHlwZSddKTsKLX0sICdjdXN0b21FbGVtZW50cy5kZWZpbmUgbXVzdCBnZXQgInByb3RvdHlw
ZSIgcHJvcGVydHkgb2YgdGhlIGNvbnN0cnVjdG9yJyk7Ci0KLXRlc3QoZnVuY3Rpb24gKCkgewot
ICAgIHZhciBwcm94eSA9IG5ldyBQcm94eShjbGFzcyBleHRlbmRzIEhUTUxFbGVtZW50IHsgfSwg
ewotICAgICAgICBnZXQ6IGZ1bmN0aW9uICh0YXJnZXQsIG5hbWUpIHsKLSAgICAgICAgICAgIHRo
cm93IHtuYW1lOiAnZXhwZWN0ZWRFcnJvcid9OwotICAgICAgICB9Ci0gICAgfSk7Ci0gICAgYXNz
ZXJ0X3Rocm93cyh7J25hbWUnOiAnZXhwZWN0ZWRFcnJvcid9LCBmdW5jdGlvbiAoKSB7IGN1c3Rv
bUVsZW1lbnRzLmRlZmluZSgnZWxlbWVudC13aXRoLXN0cmluZy1wcm90b3R5cGUnLCBwcm94eSk7
IH0pOwotfSwgJ2N1c3RvbUVsZW1lbnRzLmRlZmluZSBtdXN0IHJldGhyb3cgYW4gZXhjZXB0aW9u
IHRocm93biB3aGlsZSBnZXR0aW5nICJwcm90b3R5cGUiIHByb3BlcnR5IG9mIHRoZSBjb25zdHJ1
Y3RvcicpOwotCi10ZXN0KGZ1bmN0aW9uICgpIHsKLSAgICB2YXIgcmV0dXJuZWRWYWx1ZTsKLSAg
ICB2YXIgcHJveHkgPSBuZXcgUHJveHkoY2xhc3MgZXh0ZW5kcyBIVE1MRWxlbWVudCB7IH0sIHsK
LSAgICAgICAgZ2V0OiBmdW5jdGlvbiAodGFyZ2V0LCBuYW1lKSB7IHJldHVybiByZXR1cm5lZFZh
bHVlOyB9Ci0gICAgfSk7Ci0KLSAgICByZXR1cm5lZFZhbHVlID0gbnVsbDsKLSAgICBhc3NlcnRf
dGhyb3dzKHsnbmFtZSc6ICdUeXBlRXJyb3InfSwgZnVuY3Rpb24gKCkgeyBjdXN0b21FbGVtZW50
cy5kZWZpbmUoJ2VsZW1lbnQtd2l0aC1zdHJpbmctcHJvdG90eXBlJywgcHJveHkpOyB9LAotICAg
ICAgICAnY3VzdG9tRWxlbWVudHMuZGVmaW5lIG11c3QgdGhyb3cgd2hlbiAicHJvdG90eXBlIiBw
cm9wZXJ0eSBvZiB0aGUgY29uc3RydWN0b3IgaXMgbnVsbCcpOwotICAgIHJldHVybmVkVmFsdWUg
PSB1bmRlZmluZWQ7Ci0gICAgYXNzZXJ0X3Rocm93cyh7J25hbWUnOiAnVHlwZUVycm9yJ30sIGZ1
bmN0aW9uICgpIHsgY3VzdG9tRWxlbWVudHMuZGVmaW5lKCdlbGVtZW50LXdpdGgtc3RyaW5nLXBy
b3RvdHlwZScsIHByb3h5KTsgfSwKLSAgICAgICAgJ2N1c3RvbUVsZW1lbnRzLmRlZmluZSBtdXN0
IHRocm93IHdoZW4gInByb3RvdHlwZSIgcHJvcGVydHkgb2YgdGhlIGNvbnN0cnVjdG9yIGlzIHVu
ZGVmaW5lZCcpOwotICAgIHJldHVybmVkVmFsdWUgPSAnaGVsbG8nOwotICAgIGFzc2VydF90aHJv
d3MoeyduYW1lJzogJ1R5cGVFcnJvcid9LCBmdW5jdGlvbiAoKSB7IGN1c3RvbUVsZW1lbnRzLmRl
ZmluZSgnZWxlbWVudC13aXRoLXN0cmluZy1wcm90b3R5cGUnLCBwcm94eSk7IH0sCi0gICAgICAg
ICdjdXN0b21FbGVtZW50cy5kZWZpbmUgbXVzdCB0aHJvdyB3aGVuICJwcm90b3R5cGUiIHByb3Bl
cnR5IG9mIHRoZSBjb25zdHJ1Y3RvciBpcyBhIHN0cmluZycpOwotICAgIHJldHVybmVkVmFsdWUg
PSAxOwotICAgIGFzc2VydF90aHJvd3MoeyduYW1lJzogJ1R5cGVFcnJvcid9LCBmdW5jdGlvbiAo
KSB7IGN1c3RvbUVsZW1lbnRzLmRlZmluZSgnZWxlbWVudC13aXRoLXN0cmluZy1wcm90b3R5cGUn
LCBwcm94eSk7IH0sCi0gICAgICAgICdjdXN0b21FbGVtZW50cy5kZWZpbmUgbXVzdCB0aHJvdyB3
aGVuICJwcm90b3R5cGUiIHByb3BlcnR5IG9mIHRoZSBjb25zdHJ1Y3RvciBpcyBhIG51bWJlcicp
OwotCi19LCAnY3VzdG9tRWxlbWVudHMuZGVmaW5lIG11c3QgdGhyb3cgd2hlbiAicHJvdG90eXBl
IiBwcm9wZXJ0eSBvZiB0aGUgY29uc3RydWN0b3IgaXMgbm90IGFuIG9iamVjdCcpOwotCi10ZXN0
KGZ1bmN0aW9uICgpIHsKLSAgICB2YXIgY29uc3RydWN0b3IgPSBmdW5jdGlvbiAoKSB7fQotICAg
IHZhciBjYWxscyA9IFtdOwotICAgIGNvbnN0cnVjdG9yLnByb3RvdHlwZSA9IG5ldyBQcm94eShj
b25zdHJ1Y3Rvci5wcm90b3R5cGUsIHsKLSAgICAgICAgZ2V0OiBmdW5jdGlvbiAodGFyZ2V0LCBu
YW1lKSB7Ci0gICAgICAgICAgICBjYWxscy5wdXNoKG5hbWUpOwotICAgICAgICAgICAgcmV0dXJu
IHRhcmdldFtuYW1lXTsKLSAgICAgICAgfQotICAgIH0pOwotICAgIGN1c3RvbUVsZW1lbnRzLmRl
ZmluZSgnZWxlbWVudC13aXRoLXByb3h5LXByb3RvdHlwZScsIGNvbnN0cnVjdG9yKTsKLSAgICBh
c3NlcnRfYXJyYXlfZXF1YWxzKGNhbGxzLCBbJ2Nvbm5lY3RlZENhbGxiYWNrJywgJ2Rpc2Nvbm5l
Y3RlZENhbGxiYWNrJywgJ2Fkb3B0ZWRDYWxsYmFjaycsICdhdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJh
Y2snXSk7Ci19LCAnY3VzdG9tRWxlbWVudHMuZGVmaW5lIG11c3QgZ2V0IGNhbGxiYWNrcyBvZiB0
aGUgY29uc3RydWN0b3IgcHJvdG90eXBlJyk7Ci0KLXRlc3QoZnVuY3Rpb24gKCkgewotICAgIHZh
ciBjb25zdHJ1Y3RvciA9IGZ1bmN0aW9uICgpIHt9Ci0gICAgdmFyIGNhbGxzID0gW107Ci0gICAg
Y29uc3RydWN0b3IucHJvdG90eXBlID0gbmV3IFByb3h5KGNvbnN0cnVjdG9yLnByb3RvdHlwZSwg
ewotICAgICAgICBnZXQ6IGZ1bmN0aW9uICh0YXJnZXQsIG5hbWUpIHsKLSAgICAgICAgICAgIGNh
bGxzLnB1c2gobmFtZSk7Ci0gICAgICAgICAgICBpZiAobmFtZSA9PSAnZGlzY29ubmVjdGVkQ2Fs
bGJhY2snKQotICAgICAgICAgICAgICAgIHRocm93IHtuYW1lOiAnZXhwZWN0ZWRFcnJvcid9Owot
ICAgICAgICAgICAgcmV0dXJuIHRhcmdldFtuYW1lXTsKLSAgICAgICAgfQotICAgIH0pOwotICAg
IGFzc2VydF90aHJvd3MoeyduYW1lJzogJ2V4cGVjdGVkRXJyb3InfSwgZnVuY3Rpb24gKCkgeyBj
dXN0b21FbGVtZW50cy5kZWZpbmUoJ2VsZW1lbnQtd2l0aC10aHJvd2luZy1jYWxsYmFjaycsIGNv
bnN0cnVjdG9yKTsgfSk7Ci0gICAgYXNzZXJ0X2FycmF5X2VxdWFscyhjYWxscywgWydjb25uZWN0
ZWRDYWxsYmFjaycsICdkaXNjb25uZWN0ZWRDYWxsYmFjayddLAotICAgICAgICAnY3VzdG9tRWxl
bWVudHMuZGVmaW5lIG11c3Qgbm90IGdldCBjYWxsYmFja3MgYWZ0ZXIgb25lIG9mIHRoZSBnZXQg
dGhyb3dzJyk7Ci19LCAnY3VzdG9tRWxlbWVudHMuZGVmaW5lIG11c3QgcmV0aHJvdyBhbiBleGNl
cHRpb24gdGhyb3duIHdoaWxlIGdldHRpbmcgY2FsbGJhY2tzIG9uIHRoZSBjb25zdHJ1Y3RvciBw
cm90b3R5cGUnKTsKLQotdGVzdChmdW5jdGlvbiAoKSB7Ci0gICAgdmFyIGNvbnN0cnVjdG9yID0g
ZnVuY3Rpb24gKCkge30KLSAgICB2YXIgY2FsbHMgPSBbXTsKLSAgICBjb25zdHJ1Y3Rvci5wcm90
b3R5cGUgPSBuZXcgUHJveHkoY29uc3RydWN0b3IucHJvdG90eXBlLCB7Ci0gICAgICAgIGdldDog
ZnVuY3Rpb24gKHRhcmdldCwgbmFtZSkgewotICAgICAgICAgICAgY2FsbHMucHVzaChuYW1lKTsK
LSAgICAgICAgICAgIGlmIChuYW1lID09ICdhZG9wdGVkQ2FsbGJhY2snKQotICAgICAgICAgICAg
ICAgIHJldHVybiAxOwotICAgICAgICAgICAgcmV0dXJuIHRhcmdldFtuYW1lXTsKLSAgICAgICAg
fQotICAgIH0pOwotICAgIGFzc2VydF90aHJvd3MoeyduYW1lJzogJ1R5cGVFcnJvcid9LCBmdW5j
dGlvbiAoKSB7IGN1c3RvbUVsZW1lbnRzLmRlZmluZSgnZWxlbWVudC13aXRoLXRocm93aW5nLWNh
bGxiYWNrJywgY29uc3RydWN0b3IpOyB9KTsKLSAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGNhbGxz
LCBbJ2Nvbm5lY3RlZENhbGxiYWNrJywgJ2Rpc2Nvbm5lY3RlZENhbGxiYWNrJywgJ2Fkb3B0ZWRD
YWxsYmFjayddLAotICAgICAgICAnY3VzdG9tRWxlbWVudHMuZGVmaW5lIG11c3Qgbm90IGdldCBj
YWxsYmFja3MgYWZ0ZXIgb25lIG9mIHRoZSBjb252ZXJzaW9uIHRocm93cycpOwotfSwgJ2N1c3Rv
bUVsZW1lbnRzLmRlZmluZSBtdXN0IHJldGhyb3cgYW4gZXhjZXB0aW9uIHRocm93biB3aGlsZSBj
b252ZXJ0aW5nIGEgY2FsbGJhY2sgdmFsdWUgdG8gRnVuY3Rpb24gY2FsbGJhY2sgdHlwZScpOwot
Ci10ZXN0KGZ1bmN0aW9uICgpIHsKLSAgICB2YXIgY29uc3RydWN0b3IgPSBmdW5jdGlvbiAoKSB7
fQotICAgIGNvbnN0cnVjdG9yLnByb3RvdHlwZS5hdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2sgPSBm
dW5jdGlvbiAoKSB7IH07Ci0gICAgdmFyIHByb3RvdHlwZUNhbGxzID0gW107Ci0gICAgdmFyIGNh
bGxPcmRlciA9IDA7Ci0gICAgY29uc3RydWN0b3IucHJvdG90eXBlID0gbmV3IFByb3h5KGNvbnN0
cnVjdG9yLnByb3RvdHlwZSwgewotICAgICAgICBnZXQ6IGZ1bmN0aW9uICh0YXJnZXQsIG5hbWUp
IHsKLSAgICAgICAgICAgIGlmIChuYW1lID09ICdwcm90b3R5cGUnIHx8IG5hbWUgPT0gJ29ic2Vy
dmVkQXR0cmlidXRlcycpCi0gICAgICAgICAgICAgICAgdGhyb3cgJ1VuZXhwZWN0ZWQgYWNjZXNz
IHRvIG9ic2VydmVkQXR0cmlidXRlcyc7Ci0gICAgICAgICAgICBwcm90b3R5cGVDYWxscy5wdXNo
KGNhbGxPcmRlcisrKTsgICAgCi0gICAgICAgICAgICBwcm90b3R5cGVDYWxscy5wdXNoKG5hbWUp
OwotICAgICAgICAgICAgcmV0dXJuIHRhcmdldFtuYW1lXTsKLSAgICAgICAgfQotICAgIH0pOwot
ICAgIHZhciBjb25zdHJ1Y3RvckNhbGxzID0gW107Ci0gICAgdmFyIHByb3h5ID0gbmV3IFByb3h5
KGNvbnN0cnVjdG9yLCB7Ci0gICAgICAgIGdldDogZnVuY3Rpb24gKHRhcmdldCwgbmFtZSkgewot
ICAgICAgICAgICAgY29uc3RydWN0b3JDYWxscy5wdXNoKGNhbGxPcmRlcisrKTsgICAgCi0gICAg
ICAgICAgICBjb25zdHJ1Y3RvckNhbGxzLnB1c2gobmFtZSk7Ci0gICAgICAgICAgICByZXR1cm4g
dGFyZ2V0W25hbWVdOwotICAgICAgICB9Ci0gICAgfSk7Ci0gICAgY3VzdG9tRWxlbWVudHMuZGVm
aW5lKCdlbGVtZW50LXdpdGgtYXR0cmlidXRlLWNoYW5nZWQtY2FsbGJhY2snLCBwcm94eSk7Ci0g
ICAgYXNzZXJ0X2FycmF5X2VxdWFscyhwcm90b3R5cGVDYWxscywgWzEsICdjb25uZWN0ZWRDYWxs
YmFjaycsIDIsICdkaXNjb25uZWN0ZWRDYWxsYmFjaycsIDMsICdhZG9wdGVkQ2FsbGJhY2snLCA0
LCAnYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrJ10pOwotICAgIGFzc2VydF9hcnJheV9lcXVhbHMo
Y29uc3RydWN0b3JDYWxscywgWzAsICdwcm90b3R5cGUnLCA1LCAnb2JzZXJ2ZWRBdHRyaWJ1dGVz
J10pOwotfSwgJ2N1c3RvbUVsZW1lbnRzLmRlZmluZSBtdXN0IGdldCAib2JzZXJ2ZWRBdHRyaWJ1
dGVzIiBwcm9wZXJ0eSBvbiB0aGUgY29uc3RydWN0b3IgcHJvdG90eXBlIHdoZW4gImF0dHJpYnV0
ZUNoYW5nZWRDYWxsYmFjayIgaXMgcHJlc2VudCcpOwotCi10ZXN0KGZ1bmN0aW9uICgpIHsKLSAg
ICB2YXIgY29uc3RydWN0b3IgPSBmdW5jdGlvbiAoKSB7fQotICAgIGNvbnN0cnVjdG9yLnByb3Rv
dHlwZS5hdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2sgPSBmdW5jdGlvbiAoKSB7IH07Ci0gICAgdmFy
IGNhbGxzID0gW107Ci0gICAgdmFyIHByb3h5ID0gbmV3IFByb3h5KGNvbnN0cnVjdG9yLCB7Ci0g
ICAgICAgIGdldDogZnVuY3Rpb24gKHRhcmdldCwgbmFtZSkgewotICAgICAgICAgICAgY2FsbHMu
cHVzaChuYW1lKTsKLSAgICAgICAgICAgIGlmIChuYW1lID09ICdvYnNlcnZlZEF0dHJpYnV0ZXMn
KQotICAgICAgICAgICAgICAgIHRocm93IHtuYW1lOiAnZXhwZWN0ZWRFcnJvcid9OwotICAgICAg
ICAgICAgcmV0dXJuIHRhcmdldFtuYW1lXTsKLSAgICAgICAgfQotICAgIH0pOwotICAgIGFzc2Vy
dF90aHJvd3MoeyduYW1lJzogJ2V4cGVjdGVkRXJyb3InfSwgZnVuY3Rpb24gKCkgeyBjdXN0b21F
bGVtZW50cy5kZWZpbmUoJ2VsZW1lbnQtd2l0aC10aHJvd2luZy1vYnNlcnZlZC1hdHRyaWJ1dGVz
JywgcHJveHkpOyB9KTsKLSAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGNhbGxzLCBbJ3Byb3RvdHlw
ZScsICdvYnNlcnZlZEF0dHJpYnV0ZXMnXSwKLSAgICAgICAgJ2N1c3RvbUVsZW1lbnRzLmRlZmlu
ZSBtdXN0IGdldCAicHJvdG90eXBlIiBhbmQgIm9ic2VydmVkQXR0cmlidXRlcyIgb24gdGhlIGNv
bnN0cnVjdG9yJyk7Ci19LCAnY3VzdG9tRWxlbWVudHMuZGVmaW5lIG11c3QgcmV0aHJvdyBhbiBl
eGNlcHRpb24gdGhyb3duIHdoaWxlIGdldHRpbmcgb2JzZXJ2ZWRBdHRyaWJ1dGVzIG9uIHRoZSBj
b25zdHJ1Y3RvciBwcm90b3R5cGUnKTsKLQotdGVzdChmdW5jdGlvbiAoKSB7Ci0gICAgdmFyIGNv
bnN0cnVjdG9yID0gZnVuY3Rpb24gKCkge30KLSAgICBjb25zdHJ1Y3Rvci5wcm90b3R5cGUuYXR0
cmlidXRlQ2hhbmdlZENhbGxiYWNrID0gZnVuY3Rpb24gKCkgeyB9OwotICAgIHZhciBjYWxscyA9
IFtdOwotICAgIHZhciBwcm94eSA9IG5ldyBQcm94eShjb25zdHJ1Y3RvciwgewotICAgICAgICBn
ZXQ6IGZ1bmN0aW9uICh0YXJnZXQsIG5hbWUpIHsKLSAgICAgICAgICAgIGNhbGxzLnB1c2gobmFt
ZSk7Ci0gICAgICAgICAgICBpZiAobmFtZSA9PSAnb2JzZXJ2ZWRBdHRyaWJ1dGVzJykKLSAgICAg
ICAgICAgICAgICByZXR1cm4gMTsKLSAgICAgICAgICAgIHJldHVybiB0YXJnZXRbbmFtZV07Ci0g
ICAgICAgIH0KLSAgICB9KTsKLSAgICBhc3NlcnRfdGhyb3dzKHsnbmFtZSc6ICdUeXBlRXJyb3In
fSwgZnVuY3Rpb24gKCkgeyBjdXN0b21FbGVtZW50cy5kZWZpbmUoJ2VsZW1lbnQtd2l0aC1pbnZh
bGlkLW9ic2VydmVkLWF0dHJpYnV0ZXMnLCBwcm94eSk7IH0pOwotICAgIGFzc2VydF9hcnJheV9l
cXVhbHMoY2FsbHMsIFsncHJvdG90eXBlJywgJ29ic2VydmVkQXR0cmlidXRlcyddLAotICAgICAg
ICAnY3VzdG9tRWxlbWVudHMuZGVmaW5lIG11c3QgZ2V0ICJwcm90b3R5cGUiIGFuZCAib2JzZXJ2
ZWRBdHRyaWJ1dGVzIiBvbiB0aGUgY29uc3RydWN0b3InKTsKLX0sICdjdXN0b21FbGVtZW50cy5k
ZWZpbmUgbXVzdCByZXRocm93IGFuIGV4Y2VwdGlvbiB0aHJvd24gd2hpbGUgY29udmVydGluZyB0
aGUgdmFsdWUgb2Ygb2JzZXJ2ZWRBdHRyaWJ1dGVzIHRvIHNlcXVlbmNlPERPTVN0cmluZz4nKTsK
LQotdGVzdChmdW5jdGlvbiAoKSB7Ci0gICAgdmFyIGNvbnN0cnVjdG9yID0gZnVuY3Rpb24gKCkg
e30KLSAgICBjb25zdHJ1Y3Rvci5wcm90b3R5cGUuYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrID0g
ZnVuY3Rpb24gKCkgeyB9OwotICAgIGNvbnN0cnVjdG9yLm9ic2VydmVkQXR0cmlidXRlcyA9IHtb
U3ltYm9sLml0ZXJhdG9yXTogZnVuY3Rpb24gKigpIHsKLSAgICAgICAgeWllbGQgJ2Zvbyc7Ci0g
ICAgICAgIHRocm93IHtuYW1lOiAnU29tZUVycm9yJ307Ci0gICAgfX07Ci0gICAgYXNzZXJ0X3Ro
cm93cyh7J25hbWUnOiAnU29tZUVycm9yJ30sIGZ1bmN0aW9uICgpIHsgY3VzdG9tRWxlbWVudHMu
ZGVmaW5lKCdlbGVtZW50LXdpdGgtZ2VuZXJhdG9yLW9ic2VydmVkLWF0dHJpYnV0ZXMnLCBjb25z
dHJ1Y3Rvcik7IH0pOwotfSwgJ2N1c3RvbUVsZW1lbnRzLmRlZmluZSBtdXN0IHJldGhyb3cgYW4g
ZXhjZXB0aW9uIHRocm93biB3aGlsZSBpdGVyYXRpbmcgb3ZlciBvYnNlcnZlZEF0dHJpYnV0ZXMg
dG8gc2VxdWVuY2U8RE9NU3RyaW5nPicpOwotCi10ZXN0KGZ1bmN0aW9uICgpIHsKLSAgICB2YXIg
Y29uc3RydWN0b3IgPSBmdW5jdGlvbiAoKSB7fQotICAgIGNvbnN0cnVjdG9yLnByb3RvdHlwZS5h
dHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2sgPSBmdW5jdGlvbiAoKSB7IH07Ci0gICAgY29uc3RydWN0
b3Iub2JzZXJ2ZWRBdHRyaWJ1dGVzID0ge1tTeW1ib2wuaXRlcmF0b3JdOiAxfTsKLSAgICBhc3Nl
cnRfdGhyb3dzKHsnbmFtZSc6ICdUeXBlRXJyb3InfSwgZnVuY3Rpb24gKCkgeyBjdXN0b21FbGVt
ZW50cy5kZWZpbmUoJ2VsZW1lbnQtd2l0aC1vYnNlcnZlZC1hdHRyaWJ1dGVzLXdpdGgtdW5jYWxs
YWJsZS1pdGVyYXRvcicsIGNvbnN0cnVjdG9yKTsgfSk7Ci19LCAnY3VzdG9tRWxlbWVudHMuZGVm
aW5lIG11c3QgcmV0aHJvdyBhbiBleGNlcHRpb24gdGhyb3duIHdoaWxlIHJldHJpZXZpbmcgU3lt
Ym9sLml0ZXJhdG9yIG9uIG9ic2VydmVkQXR0cmlidXRlcycpOwotCi10ZXN0KGZ1bmN0aW9uICgp
IHsKLSAgICB2YXIgY29uc3RydWN0b3IgPSBmdW5jdGlvbiAoKSB7fQotICAgIGNvbnN0cnVjdG9y
Lm9ic2VydmVkQXR0cmlidXRlcyA9IDE7Ci0gICAgY3VzdG9tRWxlbWVudHMuZGVmaW5lKCdlbGVt
ZW50LXdpdGhvdXQtY2FsbGJhY2std2l0aC1pbnZhbGlkLW9ic2VydmVkLWF0dHJpYnV0ZXMnLCBj
b25zdHJ1Y3Rvcik7Ci19LCAnY3VzdG9tRWxlbWVudHMuZGVmaW5lIG11c3Qgbm90IHRocm93IGV2
ZW4gaWYgIm9ic2VydmVkQXR0cmlidXRlcyIgZmFpbHMgdG8gY29udmVydCBpZiAiYXR0cmlidXRl
Q2hhbmdlZENhbGxiYWNrIiBpcyBub3QgZGVmaW5lZCcpOwotCi10ZXN0KGZ1bmN0aW9uICgpIHsK
LSAgICBjbGFzcyBNeUN1c3RvbUVsZW1lbnQgZXh0ZW5kcyBIVE1MRWxlbWVudCB7fTsKLSAgICBj
dXN0b21FbGVtZW50cy5kZWZpbmUoJ215LWN1c3RvbS1lbGVtZW50JywgTXlDdXN0b21FbGVtZW50
KTsKLQotICAgIHZhciBpbnN0YW5jZSA9IG5ldyBNeUN1c3RvbUVsZW1lbnQ7Ci0gICAgYXNzZXJ0
X3RydWUoaW5zdGFuY2UgaW5zdGFuY2VvZiBNeUN1c3RvbUVsZW1lbnQsCi0gICAgICAgICdBbiBp
bnN0YW5jZSBvZiBhIGN1c3RvbSBIVE1MIGVsZW1lbnQgYmUgYW4gaW5zdGFuY2Ugb2YgdGhlIGFz
c29jaWF0ZWQgaW50ZXJmYWNlJyk7Ci0KLSAgICBhc3NlcnRfdHJ1ZShpbnN0YW5jZSBpbnN0YW5j
ZW9mIEhUTUxFbGVtZW50LAotICAgICAgICAnQW4gaW5zdGFuY2Ugb2YgYSBjdXN0b20gSFRNTCBl
bGVtZW50IG11c3QgaW5oZXJpdCBmcm9tIEhUTUxFbGVtZW50Jyk7Ci0KLSAgICBhc3NlcnRfZXF1
YWxzKGluc3RhbmNlLmxvY2FsTmFtZSwgJ215LWN1c3RvbS1lbGVtZW50JywKLSAgICAgICAgJ0Fu
IGluc3RhbmNlIG9mIGEgY3VzdG9tIGVsZW1lbnQgbXVzdCB1c2UgdGhlIGFzc29jaWF0ZWQgdGFn
IG5hbWUnKTsKLQotICAgIGFzc2VydF9lcXVhbHMoaW5zdGFuY2UubmFtZXNwYWNlVVJJLCAnaHR0
cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcsCi0gICAgICAgICdBIGN1c3RvbSBlbGVtZW50IEhU
TUwgbXVzdCB1c2UgSFRNTCBuYW1lc3BhY2UnKTsKLQotfSwgJ2N1c3RvbUVsZW1lbnRzLmRlZmlu
ZSBtdXN0IGRlZmluZSBhbiBpbnN0YW50aWF0YWJsZSBjdXN0b20gZWxlbWVudCcpOwotCi10ZXN0
KGZ1bmN0aW9uICgpIHsKLSAgICB2YXIgZGlzY29ubmVjdGVkRWxlbWVudCA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoJ3NvbWUtY3VzdG9tJyk7Ci0gICAgdmFyIGNvbm5lY3RlZEVsZW1lbnRCZWZv
cmVTaGFkb3dIb3N0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc29tZS1jdXN0b20nKTsKLSAg
ICB2YXIgY29ubmVjdGVkRWxlbWVudEFmdGVyU2hhZG93SG9zdCA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoJ3NvbWUtY3VzdG9tJyk7Ci0gICAgdmFyIGVsZW1lbnRJblNoYWRvd1RyZWUgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCdzb21lLWN1c3RvbScpOwotICAgIHZhciBjaGlsZEVsZW1lbnRP
ZlNoYWRvd0hvc3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzb21lLWN1c3RvbScpOwotICAg
IHZhciBjdXN0b21TaGFkb3dIb3N0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc29tZS1jdXN0
b20nKTsKLSAgICB2YXIgZWxlbWVudEluTmVzdGVkU2hhZG93VHJlZSA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoJ3NvbWUtY3VzdG9tJyk7Ci0KLSAgICB2YXIgY29udGFpbmVyID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgdmFyIHNoYWRvd0hvc3QgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCdkaXYnKTsKLSAgICB2YXIgc2hhZG93Um9vdCA9IHNoYWRvd0hvc3QuYXR0YWNo
U2hhZG93KHttb2RlOiAnY2xvc2VkJ30pOwotICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZChjb25u
ZWN0ZWRFbGVtZW50QmVmb3JlU2hhZG93SG9zdCk7Ci0gICAgY29udGFpbmVyLmFwcGVuZENoaWxk
KHNoYWRvd0hvc3QpOwotICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZChjb25uZWN0ZWRFbGVtZW50
QWZ0ZXJTaGFkb3dIb3N0KTsKLSAgICBzaGFkb3dIb3N0LmFwcGVuZENoaWxkKGNoaWxkRWxlbWVu
dE9mU2hhZG93SG9zdCk7Ci0gICAgc2hhZG93Um9vdC5hcHBlbmRDaGlsZChlbGVtZW50SW5TaGFk
b3dUcmVlKTsKLSAgICBzaGFkb3dSb290LmFwcGVuZENoaWxkKGN1c3RvbVNoYWRvd0hvc3QpOwot
Ci0gICAgdmFyIGlubmVyU2hhZG93Um9vdCA9IGN1c3RvbVNoYWRvd0hvc3QuYXR0YWNoU2hhZG93
KHttb2RlOiAnY2xvc2VkJ30pOwotICAgIGlubmVyU2hhZG93Um9vdC5hcHBlbmRDaGlsZChlbGVt
ZW50SW5OZXN0ZWRTaGFkb3dUcmVlKTsKLQotICAgIHZhciBjYWxscyA9IFtdOwotICAgIGNsYXNz
IFNvbWVDdXN0b21FbGVtZW50IGV4dGVuZHMgSFRNTEVsZW1lbnQgewotICAgICAgICBjb25zdHJ1
Y3RvcigpIHsKLSAgICAgICAgICAgIHN1cGVyKCk7Ci0gICAgICAgICAgICBjYWxscy5wdXNoKHRo
aXMpOwotICAgICAgICB9Ci0gICAgfTsKLQotICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQo
Y29udGFpbmVyKTsKLSAgICBjdXN0b21FbGVtZW50cy5kZWZpbmUoJ3NvbWUtY3VzdG9tJywgU29t
ZUN1c3RvbUVsZW1lbnQpOwotICAgIGFzc2VydF9hcnJheV9lcXVhbHMoY2FsbHMsIFtjb25uZWN0
ZWRFbGVtZW50QmVmb3JlU2hhZG93SG9zdCwgZWxlbWVudEluU2hhZG93VHJlZSwgY3VzdG9tU2hh
ZG93SG9zdCwgZWxlbWVudEluTmVzdGVkU2hhZG93VHJlZSwgY2hpbGRFbGVtZW50T2ZTaGFkb3dI
b3N0LCBjb25uZWN0ZWRFbGVtZW50QWZ0ZXJTaGFkb3dIb3N0XSk7Ci19LCAnY3VzdG9tRWxlbWVu
dHMuZGVmaW5lIG11c3QgdXBncmFkZSBlbGVtZW50cyBpbiB0aGUgc2hhZG93LWluY2x1ZGluZyB0
cmVlIG9yZGVyJyk7Ci0KLXRlc3QoZnVuY3Rpb24gKCkgewotICAgIGFzc2VydF90cnVlKCdnZXQn
IGluIEN1c3RvbUVsZW1lbnRSZWdpc3RyeS5wcm90b3R5cGUsICciZ2V0IiBleGlzdHMgb24gQ3Vz
dG9tRWxlbWVudFJlZ2lzdHJ5LnByb3RvdHlwZScpOwotICAgIGFzc2VydF90cnVlKCdnZXQnIGlu
IGN1c3RvbUVsZW1lbnRzLCAnImdldCIgZXhpc3RzIG9uIHdpbmRvdy5jdXN0b21FbGVtZW50cycp
OwotfSwgJ0N1c3RvbUVsZW1lbnRSZWdpc3RyeSBpbnRlcmZhY2UgbXVzdCBoYXZlIGdldCBhcyBh
IG1ldGhvZCcpOwotCi10ZXN0KGZ1bmN0aW9uICgpIHsKLSAgICBhc3NlcnRfZXF1YWxzKGN1c3Rv
bUVsZW1lbnRzLmdldCgnYS1iJyksIHVuZGVmaW5lZCk7Ci19LCAnY3VzdG9tRWxlbWVudHMuZ2V0
IG11c3QgcmV0dXJuIHVuZGVmaW5lZCB3aGVuIHRoZSByZWdpc3RyeSBkb2VzIG5vdCBjb250YWlu
IGFuIGVudHJ5IHdpdGggdGhlIGdpdmVuIG5hbWUnKTsKLQotdGVzdChmdW5jdGlvbiAoKSB7Ci0g
ICAgYXNzZXJ0X2VxdWFscyhjdXN0b21FbGVtZW50cy5nZXQoJ2h0bWwnKSwgdW5kZWZpbmVkKTsK
LSAgICBhc3NlcnRfZXF1YWxzKGN1c3RvbUVsZW1lbnRzLmdldCgnc3BhbicpLCB1bmRlZmluZWQp
OwotICAgIGFzc2VydF9lcXVhbHMoY3VzdG9tRWxlbWVudHMuZ2V0KCdkaXYnKSwgdW5kZWZpbmVk
KTsKLSAgICBhc3NlcnRfZXF1YWxzKGN1c3RvbUVsZW1lbnRzLmdldCgnZycpLCB1bmRlZmluZWQp
OwotICAgIGFzc2VydF9lcXVhbHMoY3VzdG9tRWxlbWVudHMuZ2V0KCdhYicpLCB1bmRlZmluZWQp
OwotfSwgJ2N1c3RvbUVsZW1lbnRzLmdldCBtdXN0IHJldHVybiB1bmRlZmluZWQgd2hlbiB0aGUg
cmVnaXN0cnkgZG9lcyBub3QgY29udGFpbiBhbiBlbnRyeSB3aXRoIHRoZSBnaXZlbiBuYW1lIGV2
ZW4gaWYgdGhlIG5hbWUgd2FzIG5vdCBhIHZhbGlkIGN1c3RvbSBlbGVtZW50IG5hbWUnKTsKLQot
dGVzdChmdW5jdGlvbiAoKSB7Ci0gICAgYXNzZXJ0X2VxdWFscyhjdXN0b21FbGVtZW50cy5nZXQo
J2V4aXN0aW5nLWN1c3RvbS1lbGVtZW50JyksIHVuZGVmaW5lZCk7Ci0gICAgY2xhc3MgRXhpc3Rp
bmdDdXN0b21FbGVtZW50IGV4dGVuZHMgSFRNTEVsZW1lbnQge307Ci0gICAgY3VzdG9tRWxlbWVu
dHMuZGVmaW5lKCdleGlzdGluZy1jdXN0b20tZWxlbWVudCcsIEV4aXN0aW5nQ3VzdG9tRWxlbWVu
dCk7Ci0gICAgYXNzZXJ0X2VxdWFscyhjdXN0b21FbGVtZW50cy5nZXQoJ2V4aXN0aW5nLWN1c3Rv
bS1lbGVtZW50JyksIEV4aXN0aW5nQ3VzdG9tRWxlbWVudCk7Ci19LCAnY3VzdG9tRWxlbWVudHMu
Z2V0IHJldHVybiB0aGUgY29uc3RydWN0b3Igb2YgdGhlIGVudHJ5IHdpdGggdGhlIGdpdmVuIG5h
bWUgd2hlbiB0aGVyZSBpcyBhIG1hdGNoaW5nIGVudHJ5LicpOwotCi10ZXN0KGZ1bmN0aW9uICgp
IHsKLSAgICBhc3NlcnRfdHJ1ZShjdXN0b21FbGVtZW50cy53aGVuRGVmaW5lZCgnc29tZS1uYW1l
JykgaW5zdGFuY2VvZiBQcm9taXNlKTsKLX0sICdjdXN0b21FbGVtZW50cy53aGVuRGVmaW5lZCBt
dXN0IHJldHVybiBhIHByb21pc2UgZm9yIGEgdmFsaWQgY3VzdG9tIGVsZW1lbnQgbmFtZScpOwot
Ci10ZXN0KGZ1bmN0aW9uICgpIHsKLSAgICBhc3NlcnRfZXF1YWxzKGN1c3RvbUVsZW1lbnRzLndo
ZW5EZWZpbmVkKCdzb21lLW5hbWUnKSwgY3VzdG9tRWxlbWVudHMud2hlbkRlZmluZWQoJ3NvbWUt
bmFtZScpKTsKLX0sICdjdXN0b21FbGVtZW50cy53aGVuRGVmaW5lZCBtdXN0IHJldHVybiB0aGUg
c2FtZSBwcm9taXNlIGVhY2ggdGltZSBpbnZva2VkIGZvciBhIHZhbGlkIGN1c3RvbSBlbGVtZW50
IG5hbWUgd2hpY2ggaGFzIG5vdCBiZWVuIGRlZmluZWQnKTsKLQotcHJvbWlzZV90ZXN0KGZ1bmN0
aW9uICgpIHsKLSAgICB2YXIgcmVzb2x2ZWQgPSBmYWxzZTsKLSAgICB2YXIgcmVqZWN0ZWQgPSBm
YWxzZTsKLSAgICBjdXN0b21FbGVtZW50cy53aGVuRGVmaW5lZCgnYS1iJykudGhlbihmdW5jdGlv
biAoKSB7IHJlc29sdmVkID0gdHJ1ZTsgfSwgZnVuY3Rpb24gKCkgeyByZWplY3RlZCA9IHRydWU7
IH0pOwotICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKS50aGVuKGZ1bmN0aW9uICgpIHsKLSAg
ICAgICAgYXNzZXJ0X2ZhbHNlKHJlc29sdmVkLCAnVGhlIHByb21pc2UgcmV0dXJuZWQgYnkgIndo
ZW5EZWZpbmVkIiBtdXN0IG5vdCBiZSByZXNvbHZlZCB1bnRpbCBhIGN1c3RvbSBlbGVtZW50IGlz
IGRlZmluZWQnKTsKLSAgICAgICAgYXNzZXJ0X2ZhbHNlKHJlamVjdGVkLCAnVGhlIHByb21pc2Ug
cmV0dXJuZWQgYnkgIndoZW5EZWZpbmVkIiBtdXN0IG5vdCBiZSByZWplY3RlZCB1bnRpbCBhIGN1
c3RvbSBlbGVtZW50IGlzIGRlZmluZWQnKTsKLSAgICB9KTsgICAgCi19LCAnY3VzdG9tRWxlbWVu
dHMud2hlbkRlZmluZWQgbXVzdCByZXR1cm4gYW4gdW5yZXNvbHZlZCBwcm9taXNlIHdoZW4gdGhl
IHJlZ2lzdHJ5IGRvZXMgbm90IGNvbnRhaW4gdGhlIGVudHJ5IHdpdGggdGhlIGdpdmVuIG5hbWUn
KQotCi1wcm9taXNlX3Rlc3QoZnVuY3Rpb24gKCkgewotICAgIHZhciBwcm9taXNlID0gY3VzdG9t
RWxlbWVudHMud2hlbkRlZmluZWQoJ2JhZG5hbWUnKTsKLSAgICBwcm9taXNlLnRoZW4oZnVuY3Rp
b24gKHZhbHVlKSB7IHByb21pc2UucmVzb2x2ZWQgPSB2YWx1ZTsgfSwgZnVuY3Rpb24gKHZhbHVl
KSB7IHByb21pc2UucmVqZWN0ZWQgPSB2YWx1ZTsgfSk7Ci0KLSAgICBhc3NlcnRfZmFsc2UoJ3Jl
c29sdmVkJyBpbiBwcm9taXNlLCAnVGhlIHByb21pc2UgcmV0dXJuZWQgYnkgIndoZW5EZWZpbmVk
IiBtdXN0IG5vdCBiZSByZXNvbHZlZCB1bnRpbCB0aGUgZW5kIG9mIHRoZSBuZXh0IG1pY3JvdGFz
aycpOwotICAgIGFzc2VydF9mYWxzZSgncmVqZWN0ZWQnIGluIHByb21pc2UsICdUaGUgcHJvbWlz
ZSByZXR1cm5lZCBieSAid2hlbkRlZmluZWQiIG11c3Qgbm90IGJlIHJlamVjdGVkIHVudGlsIHRo
ZSBlbmQgb2YgdGhlIG5leHQgbWljcm90YXNrJyk7Ci0KLSAgICByZXR1cm4gUHJvbWlzZS5yZXNv
bHZlKCkudGhlbihmdW5jdGlvbiAoKSB7Ci0gICAgICAgIGFzc2VydF9mYWxzZSgncmVzb2x2ZWQn
IGluIHByb21pc2UsICdUaGUgcHJvbWlzZSByZXR1cm5lZCBieSAid2hlbkRlZmluZWQiIG11c3Qg
YmUgcmVzb2x2ZWQgd2hlbiBhIGN1c3RvbSBlbGVtZW50IGlzIGRlZmluZWQnKTsKLSAgICAgICAg
YXNzZXJ0X3RydWUoJ3JlamVjdGVkJyBpbiBwcm9taXNlLCAnVGhlIHByb21pc2UgcmV0dXJuZWQg
YnkgIndoZW5EZWZpbmVkIiBtdXN0IG5vdCBiZSByZWplY3RlZCB3aGVuIGEgY3VzdG9tIGVsZW1l
bnQgaXMgZGVmaW5lZCcpOwotICAgIH0pOwotfSwgJ2N1c3RvbUVsZW1lbnRzLndoZW5EZWZpbmVk
IG11c3QgcmV0dXJuIGEgcmVqZWN0ZWQgcHJvbWlzZSB3aGVuIHRoZSBnaXZlbiBuYW1lIGlzIG5v
dCBhIHZhbGlkIGN1c3RvbSBlbGVtZW50IG5hbWUnKTsKLQotcHJvbWlzZV90ZXN0KGZ1bmN0aW9u
ICgpIHsKLSAgICBjdXN0b21FbGVtZW50cy5kZWZpbmUoJ3ByZWV4aXN0aW5nLWN1c3RvbS1lbGVt
ZW50JywgY2xhc3MgZXh0ZW5kcyBIVE1MRWxlbWVudCB7IH0pOwotCi0gICAgdmFyIHByb21pc2Ug
PSBjdXN0b21FbGVtZW50cy53aGVuRGVmaW5lZCgncHJlZXhpc3RpbmctY3VzdG9tLWVsZW1lbnQn
KTsKLSAgICBwcm9taXNlLnRoZW4oZnVuY3Rpb24gKHZhbHVlKSB7IHByb21pc2UucmVzb2x2ZWQg
PSB2YWx1ZTsgfSwgZnVuY3Rpb24gKHZhbHVlKSB7IHByb21pc2UucmVqZWN0ZWQgPSB2YWx1ZTsg
fSk7Ci0KLSAgICBhc3NlcnRfZmFsc2UoJ3Jlc29sdmVkJyBpbiBwcm9taXNlLCAnVGhlIHByb21p
c2UgcmV0dXJuZWQgYnkgIndoZW5EZWZpbmVkIiBtdXN0IG5vdCBiZSByZXNvbHZlZCB1bnRpbCB0
aGUgZW5kIG9mIHRoZSBuZXh0IG1pY3JvdGFzaycpOwotICAgIGFzc2VydF9mYWxzZSgncmVqZWN0
ZWQnIGluIHByb21pc2UsICdUaGUgcHJvbWlzZSByZXR1cm5lZCBieSAid2hlbkRlZmluZWQiIG11
c3Qgbm90IGJlIHJlamVjdGVkIHVudGlsIHRoZSBlbmQgb2YgdGhlIG5leHQgbWljcm90YXNrJyk7
Ci0KLSAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCkudGhlbihmdW5jdGlvbiAoKSB7Ci0gICAg
ICAgIGFzc2VydF90cnVlKCdyZXNvbHZlZCcgaW4gcHJvbWlzZSwgJ1RoZSBwcm9taXNlIHJldHVy
bmVkIGJ5ICJ3aGVuRGVmaW5lZCIgbXVzdCBiZSByZXNvbHZlZCB3aGVuIGEgY3VzdG9tIGVsZW1l
bnQgaXMgZGVmaW5lZCcpOwotICAgICAgICBhc3NlcnRfZXF1YWxzKHByb21pc2UucmVzb2x2ZWQs
IHVuZGVmaW5lZCwKLSAgICAgICAgICAgICdUaGUgcHJvbWlzZSByZXR1cm5lZCBieSAid2hlbkRl
ZmluZWQiIG11c3QgYmUgcmVzb2x2ZWQgd2l0aCAidW5kZWZpbmVkIiB3aGVuIGEgY3VzdG9tIGVs
ZW1lbnQgaXMgZGVmaW5lZCcpOwotICAgICAgICBhc3NlcnRfZmFsc2UoJ3JlamVjdGVkJyBpbiBw
cm9taXNlLCAnVGhlIHByb21pc2UgcmV0dXJuZWQgYnkgIndoZW5EZWZpbmVkIiBtdXN0IG5vdCBi
ZSByZWplY3RlZCB3aGVuIGEgY3VzdG9tIGVsZW1lbnQgaXMgZGVmaW5lZCcpOwotICAgIH0pOwot
fSwgJ2N1c3RvbUVsZW1lbnRzLndoZW5EZWZpbmVkIG11c3QgcmV0dXJuIGEgcmVzb2x2ZWQgcHJv
bWlzZSB3aGVuIHRoZSByZWdpc3RyeSBjb250YWlucyB0aGUgZW50cnkgd2l0aCB0aGUgZ2l2ZW4g
bmFtZScpOwotCi1wcm9taXNlX3Rlc3QoZnVuY3Rpb24gKCkgewotICAgIGNsYXNzIEFub3RoZXJF
eGlzdGluZ0N1c3RvbUVsZW1lbnQgZXh0ZW5kcyBIVE1MRWxlbWVudCB7fTsKLSAgICBjdXN0b21F
bGVtZW50cy5kZWZpbmUoJ2Fub3RoZXItZXhpc3RpbmctY3VzdG9tLWVsZW1lbnQnLCBBbm90aGVy
RXhpc3RpbmdDdXN0b21FbGVtZW50KTsKLQotICAgIHZhciBwcm9taXNlMSA9IGN1c3RvbUVsZW1l
bnRzLndoZW5EZWZpbmVkKCdhbm90aGVyLWV4aXN0aW5nLWN1c3RvbS1lbGVtZW50Jyk7Ci0gICAg
dmFyIHByb21pc2UyID0gY3VzdG9tRWxlbWVudHMud2hlbkRlZmluZWQoJ2Fub3RoZXItZXhpc3Rp
bmctY3VzdG9tLWVsZW1lbnQnKTsKLSAgICBwcm9taXNlMS50aGVuKGZ1bmN0aW9uICh2YWx1ZSkg
eyBwcm9taXNlMS5yZXNvbHZlZCA9IHZhbHVlOyB9LCBmdW5jdGlvbiAodmFsdWUpIHsgcHJvbWlz
ZTEucmVqZWN0ZWQgPSB2YWx1ZTsgfSk7Ci0gICAgcHJvbWlzZTIudGhlbihmdW5jdGlvbiAodmFs
dWUpIHsgcHJvbWlzZTIucmVzb2x2ZWQgPSB2YWx1ZTsgfSwgZnVuY3Rpb24gKHZhbHVlKSB7IHBy
b21pc2UyLnJlamVjdGVkID0gdmFsdWU7IH0pOwotCi0gICAgYXNzZXJ0X25vdF9lcXVhbHMocHJv
bWlzZTEsIHByb21pc2UyKTsKLSAgICBhc3NlcnRfZmFsc2UoJ3Jlc29sdmVkJyBpbiBwcm9taXNl
MSwgJ1RoZSBwcm9taXNlIHJldHVybmVkIGJ5ICJ3aGVuRGVmaW5lZCIgbXVzdCBub3QgYmUgcmVz
b2x2ZWQgdW50aWwgdGhlIGVuZCBvZiB0aGUgbmV4dCBtaWNyb3Rhc2snKTsKLSAgICBhc3NlcnRf
ZmFsc2UoJ3Jlc29sdmVkJyBpbiBwcm9taXNlMiwgJ1RoZSBwcm9taXNlIHJldHVybmVkIGJ5ICJ3
aGVuRGVmaW5lZCIgbXVzdCBub3QgYmUgcmVzb2x2ZWQgdW50aWwgdGhlIGVuZCBvZiB0aGUgbmV4
dCBtaWNyb3Rhc2snKTsKLSAgICBhc3NlcnRfZmFsc2UoJ3JlamVjdGVkJyBpbiBwcm9taXNlMSwg
J1RoZSBwcm9taXNlIHJldHVybmVkIGJ5ICJ3aGVuRGVmaW5lZCIgbXVzdCBub3QgYmUgcmVqZWN0
ZWQgdW50aWwgdGhlIGVuZCBvZiB0aGUgbmV4dCBtaWNyb3Rhc2snKTsKLSAgICBhc3NlcnRfZmFs
c2UoJ3JlamVjdGVkJyBpbiBwcm9taXNlMiwgJ1RoZSBwcm9taXNlIHJldHVybmVkIGJ5ICJ3aGVu
RGVmaW5lZCIgbXVzdCBub3QgYmUgcmVqZWN0ZWQgdW50aWwgdGhlIGVuZCBvZiB0aGUgbmV4dCBt
aWNyb3Rhc2snKTsKLQotICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKS50aGVuKGZ1bmN0aW9u
ICgpIHsKLSAgICAgICAgYXNzZXJ0X3RydWUoJ3Jlc29sdmVkJyBpbiBwcm9taXNlMSwgJ1RoZSBw
cm9taXNlIHJldHVybmVkIGJ5ICJ3aGVuRGVmaW5lZCIgbXVzdCBiZSByZXNvbHZlZCB3aGVuIGEg
Y3VzdG9tIGVsZW1lbnQgaXMgZGVmaW5lZCcpOwotICAgICAgICBhc3NlcnRfZXF1YWxzKHByb21p
c2UxLnJlc29sdmVkLCB1bmRlZmluZWQsICdUaGUgcHJvbWlzZSByZXR1cm5lZCBieSAid2hlbkRl
ZmluZWQiIG11c3QgYmUgcmVzb2x2ZWQgd2l0aCAidW5kZWZpbmVkIiB3aGVuIGEgY3VzdG9tIGVs
ZW1lbnQgaXMgZGVmaW5lZCcpOwotICAgICAgICBhc3NlcnRfZmFsc2UoJ3JlamVjdGVkJyBpbiBw
cm9taXNlMSwgJ1RoZSBwcm9taXNlIHJldHVybmVkIGJ5ICJ3aGVuRGVmaW5lZCIgbXVzdCBub3Qg
YmUgcmVqZWN0ZWQgd2hlbiBhIGN1c3RvbSBlbGVtZW50IGlzIGRlZmluZWQnKTsKLQotICAgICAg
ICBhc3NlcnRfdHJ1ZSgncmVzb2x2ZWQnIGluIHByb21pc2UyLCAnVGhlIHByb21pc2UgcmV0dXJu
ZWQgYnkgIndoZW5EZWZpbmVkIiBtdXN0IGJlIHJlc29sdmVkIHdoZW4gYSBjdXN0b20gZWxlbWVu
dCBpcyBkZWZpbmVkJyk7Ci0gICAgICAgIGFzc2VydF9lcXVhbHMocHJvbWlzZTIucmVzb2x2ZWQs
IHVuZGVmaW5lZCwgJ1RoZSBwcm9taXNlIHJldHVybmVkIGJ5ICJ3aGVuRGVmaW5lZCIgbXVzdCBi
ZSByZXNvbHZlZCB3aXRoICJ1bmRlZmluZWQiIHdoZW4gYSBjdXN0b20gZWxlbWVudCBpcyBkZWZp
bmVkJyk7Ci0gICAgICAgIGFzc2VydF9mYWxzZSgncmVqZWN0ZWQnIGluIHByb21pc2UyLCAnVGhl
IHByb21pc2UgcmV0dXJuZWQgYnkgIndoZW5EZWZpbmVkIiBtdXN0IG5vdCBiZSByZWplY3RlZCB3
aGVuIGEgY3VzdG9tIGVsZW1lbnQgaXMgZGVmaW5lZCcpOwotICAgIH0pOwotfSwgJ2N1c3RvbUVs
ZW1lbnRzLndoZW5EZWZpbmVkIG11c3QgcmV0dXJuIGEgbmV3IHJlc29sdmVkIHByb21pc2UgZWFj
aCB0aW1lIGludm9rZWQgd2hlbiB0aGUgcmVnaXN0cnkgY29udGFpbnMgdGhlIGVudHJ5IHdpdGgg
dGhlIGdpdmVuIG5hbWUnKTsKLQotcHJvbWlzZV90ZXN0KGZ1bmN0aW9uICgpIHsKLSAgICB2YXIg
cHJvbWlzZSA9IGN1c3RvbUVsZW1lbnRzLndoZW5EZWZpbmVkKCdlbGVtZW50LWRlZmluZWQtYWZ0
ZXItd2hlbmRlZmluZWQnKTsKLSAgICBwcm9taXNlLnRoZW4oZnVuY3Rpb24gKHZhbHVlKSB7IHBy
b21pc2UucmVzb2x2ZWQgPSB2YWx1ZTsgfSwgZnVuY3Rpb24gKHZhbHVlKSB7IHByb21pc2UucmVq
ZWN0ZWQgPSB2YWx1ZTsgfSk7Ci0KLSAgICBhc3NlcnRfZmFsc2UoJ3Jlc29sdmVkJyBpbiBwcm9t
aXNlLCAnVGhlIHByb21pc2UgcmV0dXJuZWQgYnkgIndoZW5EZWZpbmVkIiBtdXN0IG5vdCBiZSBy
ZXNvbHZlZCB1bnRpbCB0aGUgZW5kIG9mIHRoZSBuZXh0IG1pY3JvdGFzaycpOwotICAgIGFzc2Vy
dF9mYWxzZSgncmVqZWN0ZWQnIGluIHByb21pc2UsICdUaGUgcHJvbWlzZSByZXR1cm5lZCBieSAi
d2hlbkRlZmluZWQiIG11c3Qgbm90IGJlIHJlamVjdGVkIHVudGlsIHRoZSBlbmQgb2YgdGhlIG5l
eHQgbWljcm90YXNrJyk7Ci0KLSAgICB2YXIgcHJvbWlzZUFmdGVyRGVmaW5lOwotICAgIHJldHVy
biBQcm9taXNlLnJlc29sdmUoKS50aGVuKGZ1bmN0aW9uICgpIHsKLSAgICAgICAgYXNzZXJ0X2Zh
bHNlKCdyZXNvbHZlZCcgaW4gcHJvbWlzZSwgJ1RoZSBwcm9taXNlIHJldHVybmVkIGJ5ICJ3aGVu
RGVmaW5lZCIgbXVzdCBub3QgYmUgcmVzb2x2ZWQgdW50aWwgdGhlIGVsZW1lbnQgaXMgZGVmaW5l
ZCcpOwotICAgICAgICBhc3NlcnRfZmFsc2UoJ3JlamVjdGVkJyBpbiBwcm9taXNlLCAnVGhlIHBy
b21pc2UgcmV0dXJuZWQgYnkgIndoZW5EZWZpbmVkIiBtdXN0IG5vdCBiZSByZWplY3RlZCB1bnRp
bCB0aGUgZWxlbWVudCBpcyBkZWZpbmVkJyk7Ci0gICAgICAgIGFzc2VydF9lcXVhbHMoY3VzdG9t
RWxlbWVudHMud2hlbkRlZmluZWQoJ2VsZW1lbnQtZGVmaW5lZC1hZnRlci13aGVuZGVmaW5lZCcp
LCBwcm9taXNlLAotICAgICAgICAgICAgJyJ3aGVuRGVmaW5lZCIgbXVzdCByZXR1cm4gdGhlIHNh
bWUgdW5yZXNvbHZlZCBwcm9taXNlIGJlZm9yZSB0aGUgY3VzdG9tIGVsZW1lbnQgaXMgZGVmaW5l
ZCcpOwotICAgICAgICBjdXN0b21FbGVtZW50cy5kZWZpbmUoJ2VsZW1lbnQtZGVmaW5lZC1hZnRl
ci13aGVuZGVmaW5lZCcsIGNsYXNzIGV4dGVuZHMgSFRNTEVsZW1lbnQgeyB9KTsKLSAgICAgICAg
YXNzZXJ0X2ZhbHNlKCdyZXNvbHZlZCcgaW4gcHJvbWlzZSwgJ1RoZSBwcm9taXNlIHJldHVybmVk
IGJ5ICJ3aGVuRGVmaW5lZCIgbXVzdCBub3QgYmUgcmVzb2x2ZWQgdW50aWwgdGhlIGVuZCBvZiB0
aGUgbmV4dCBtaWNyb3Rhc2snKTsKLSAgICAgICAgYXNzZXJ0X2ZhbHNlKCdyZWplY3RlZCcgaW4g
cHJvbWlzZSwgJ1RoZSBwcm9taXNlIHJldHVybmVkIGJ5ICJ3aGVuRGVmaW5lZCIgbXVzdCBub3Qg
YmUgcmVqZWN0ZWQgdW50aWwgdGhlIGVuZCBvZiB0aGUgbmV4dCBtaWNyb3Rhc2snKTsKLQotICAg
ICAgICBwcm9taXNlQWZ0ZXJEZWZpbmUgPSBjdXN0b21FbGVtZW50cy53aGVuRGVmaW5lZCgnZWxl
bWVudC1kZWZpbmVkLWFmdGVyLXdoZW5kZWZpbmVkJyk7Ci0gICAgICAgIHByb21pc2VBZnRlckRl
ZmluZS50aGVuKGZ1bmN0aW9uICh2YWx1ZSkgeyBwcm9taXNlQWZ0ZXJEZWZpbmUucmVzb2x2ZWQg
PSB2YWx1ZTsgfSwgZnVuY3Rpb24gKHZhbHVlKSB7IHByb21pc2VBZnRlckRlZmluZS5yZWplY3Rl
ZCA9IHZhbHVlOyB9KTsKLSAgICAgICAgYXNzZXJ0X25vdF9lcXVhbHMocHJvbWlzZUFmdGVyRGVm
aW5lLCBwcm9taXNlLCAnIndoZW5EZWZpbmVkIiBtdXN0IHJldHVybiBhIHJlc29sdmVkIHByb21p
c2Ugb25jZSB0aGUgY3VzdG9tIGVsZW1lbnQgaXMgZGVmaW5lZCcpOwotICAgICAgICBhc3NlcnRf
ZmFsc2UoJ3Jlc29sdmVkJyBpbiBwcm9taXNlQWZ0ZXJEZWZpbmUsICdUaGUgcHJvbWlzZSByZXR1
cm5lZCBieSAid2hlbkRlZmluZWQiIG11c3Qgbm90IGJlIHJlc29sdmVkIHVudGlsIHRoZSBlbmQg
b2YgdGhlIG5leHQgbWljcm90YXNrJyk7Ci0gICAgICAgIGFzc2VydF9mYWxzZSgncmVqZWN0ZWQn
IGluIHByb21pc2VBZnRlckRlZmluZSwgJ1RoZSBwcm9taXNlIHJldHVybmVkIGJ5ICJ3aGVuRGVm
aW5lZCIgbXVzdCBub3QgYmUgcmVqZWN0ZWQgdW50aWwgdGhlIGVuZCBvZiB0aGUgbmV4dCBtaWNy
b3Rhc2snKTsKLSAgICB9KS50aGVuKGZ1bmN0aW9uICgpIHsKLSAgICAgICAgYXNzZXJ0X3RydWUo
J3Jlc29sdmVkJyBpbiBwcm9taXNlLCAnVGhlIHByb21pc2UgcmV0dXJuZWQgYnkgIndoZW5EZWZp
bmVkIiBtdXN0IGJlIHJlc29sdmVkIHdoZW4gYSBjdXN0b20gZWxlbWVudCBpcyBkZWZpbmVkJyk7
Ci0gICAgICAgIGFzc2VydF9lcXVhbHMocHJvbWlzZS5yZXNvbHZlZCwgdW5kZWZpbmVkLAotICAg
ICAgICAgICAgJ1RoZSBwcm9taXNlIHJldHVybmVkIGJ5ICJ3aGVuRGVmaW5lZCIgbXVzdCBiZSBy
ZXNvbHZlZCB3aXRoICJ1bmRlZmluZWQiIHdoZW4gYSBjdXN0b20gZWxlbWVudCBpcyBkZWZpbmVk
Jyk7Ci0gICAgICAgIGFzc2VydF9mYWxzZSgncmVqZWN0ZWQnIGluIHByb21pc2UsICdUaGUgcHJv
bWlzZSByZXR1cm5lZCBieSAid2hlbkRlZmluZWQiIG11c3Qgbm90IGJlIHJlamVjdGVkIHdoZW4g
YSBjdXN0b20gZWxlbWVudCBpcyBkZWZpbmVkJyk7Ci0KLSAgICAgICAgYXNzZXJ0X3RydWUoJ3Jl
c29sdmVkJyBpbiBwcm9taXNlQWZ0ZXJEZWZpbmUsICdUaGUgcHJvbWlzZSByZXR1cm5lZCBieSAi
d2hlbkRlZmluZWQiIG11c3QgYmUgcmVzb2x2ZWQgd2hlbiBhIGN1c3RvbSBlbGVtZW50IGlzIGRl
ZmluZWQnKTsKLSAgICAgICAgYXNzZXJ0X2VxdWFscyhwcm9taXNlQWZ0ZXJEZWZpbmUucmVzb2x2
ZWQsIHVuZGVmaW5lZCwKLSAgICAgICAgICAgICdUaGUgcHJvbWlzZSByZXR1cm5lZCBieSAid2hl
bkRlZmluZWQiIG11c3QgYmUgcmVzb2x2ZWQgd2l0aCAidW5kZWZpbmVkIiB3aGVuIGEgY3VzdG9t
IGVsZW1lbnQgaXMgZGVmaW5lZCcpOwotICAgICAgICBhc3NlcnRfZmFsc2UoJ3JlamVjdGVkJyBp
biBwcm9taXNlQWZ0ZXJEZWZpbmUsICdUaGUgcHJvbWlzZSByZXR1cm5lZCBieSAid2hlbkRlZmlu
ZWQiIG11c3Qgbm90IGJlIHJlamVjdGVkIHdoZW4gYSBjdXN0b20gZWxlbWVudCBpcyBkZWZpbmVk
Jyk7Ci0gICAgfSk7Ci19LCAnQSBwcm9taXNlIHJldHVybmVkIGJ5IGN1c3RvbUVsZW1lbnRzLndo
ZW5EZWZpbmVkIG11c3QgYmUgcmVzb2x2ZWQgYnkgImRlZmluZSInKTsKLQotPC9zY3JpcHQ+Ci08
L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2N1c3RvbS1lbGVt
ZW50cy9IVE1MRWxlbWVudC1jb25zdHJ1Y3Rvci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9m
YXN0L2N1c3RvbS1lbGVtZW50cy9IVE1MRWxlbWVudC1jb25zdHJ1Y3Rvci1leHBlY3RlZC50eHQK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ2Nzk3N2RiNWM4YWVjOGQyOTNhNjE4OTll
NzFjZTY0OWQ5MDVkY2MuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9jdXN0b20tZWxlbWVudHMvSFRNTEVsZW1lbnQtY29uc3Ry
dWN0b3ItZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsOCArMCwwIEBACi0KLVBBU1Mg
SFRNTEVsZW1lbnQgY29uc3RydWN0b3IgbXVzdCB0aHJvdyBhIFR5cGVFcnJvciB3aGVuIE5ld1Rh
cmdldCBpcyBlcXVhbCB0byBpdHNlbGYgCi1QQVNTIEhUTUxFbGVtZW50IGNvbnN0cnVjdG9yIG11
c3QgdGhyb3cgYSBUeXBlRXJyb3Igd2hlbiBOZXdUYXJnZXQgaXMgZXF1YWwgdG8gaXRzZWxmIHZp
YSBhIFByb3h5IG9iamVjdCAKLVBBU1MgSFRNTEVsZW1lbnQgY29uc3RydWN0b3IgbXVzdCB0aHJv
dyBUeXBlRXJyb3Igd2hlbiBpdCBoYXMgbm90IGJlZW4gZGVmaW5lZCBieSBjdXN0b21FbGVtZW50
cy5kZWZpbmUgCi1QQVNTIEhUTUxFbGVtZW50IGNvbnN0cnVjdG9yIG11c3QgaW5mZXIgdGhlIHRh
ZyBuYW1lIGZyb20gdGhlIGVsZW1lbnQgaW50ZXJmYWNlIAotUEFTUyBIVE1MRWxlbWVudCBjb25z
dHJ1Y3RvciBtdXN0IGFsbG93IHN1YmNsYXNzaW5nIGEgY3VzdG9tIGVsZW1lbnQgCi1QQVNTIEhU
TUxFbGVtZW50IGNvbnN0cnVjdG9yIG11c3QgYWxsb3cgc3ViY2xhc3NpbmcgYW4gdXNlci1kZWZp
bmVkIHN1YmNsYXNzIG9mIEhUTUxFbGVtZW50IAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2N1c3RvbS1lbGVtZW50cy9IVE1MRWxlbWVudC1jb25zdHJ1Y3Rvci5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9jdXN0b20tZWxlbWVudHMvSFRNTEVsZW1lbnQtY29uc3RydWN0b3IuaHRtbApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGIzMmU3ZTA3ODRmNzI5ZTUxOGI0MmVjMjZh
YWM0NWViYWI1OGZjZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L2N1c3RvbS1lbGVtZW50cy9IVE1MRWxlbWVudC1jb25zdHJ1
Y3Rvci5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsODUgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+
Ci08aHRtbD4KLTxoZWFkPgotPHRpdGxlPkN1c3RvbSBFbGVtZW50czogSFRNTEVsZW1lbnQgbXVz
dCBhbGxvdyBzdWJjbGFzc2luZzwvdGl0bGU+Ci08bWV0YSBuYW1lPSJhdXRob3IiIHRpdGxlPSJS
eW9zdWtlIE5pd2EiIGhyZWY9Im1haWx0bzpybml3YUB3ZWJraXQub3JnIj4KLTxtZXRhIG5hbWU9
ImFzc2VydCIgY29udGVudD0iSFRNTEVsZW1lbnQgbXVzdCBhbGxvdyBzdWJjbGFzc2luZyI+Ci08
bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvI2h0bWwt
ZWxlbWVudC1jb25zdHJ1Y3RvcnMiPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0
aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxsaW5rIHJlbD0nc3R5bGVzaGVldCcgaHJlZj0n
Li4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmNzcyc+Ci08L2hlYWQ+Ci08Ym9keT4KLTxkaXYg
aWQ9ImxvZyI+PC9kaXY+Ci08c2NyaXB0PgotCi10ZXN0KGZ1bmN0aW9uICgpIHsKLSAgICBjdXN0
b21FbGVtZW50cy5kZWZpbmUoJ2h0bWwtY3VzdG9tLWVsZW1lbnQnLCBIVE1MRWxlbWVudCk7Ci0g
ICAgYXNzZXJ0X3Rocm93cyh7J25hbWUnOiAnVHlwZUVycm9yJ30sIGZ1bmN0aW9uICgpIHsgbmV3
IEhUTUxFbGVtZW50KCk7IH0pOwotfSwgJ0hUTUxFbGVtZW50IGNvbnN0cnVjdG9yIG11c3QgdGhy
b3cgYSBUeXBlRXJyb3Igd2hlbiBOZXdUYXJnZXQgaXMgZXF1YWwgdG8gaXRzZWxmJyk7Ci0KLXRl
c3QoZnVuY3Rpb24gKCkgewotICAgIGN1c3RvbUVsZW1lbnRzLmRlZmluZSgnaHRtbC1wcm94eS1j
dXN0b20tZWxlbWVudCcsIG5ldyBQcm94eShIVE1MRWxlbWVudCwge30pKTsKLSAgICBhc3NlcnRf
dGhyb3dzKHsnbmFtZSc6ICdUeXBlRXJyb3InfSwgZnVuY3Rpb24gKCkgeyBuZXcgSFRNTEVsZW1l
bnQoKTsgfSk7Ci19LCAnSFRNTEVsZW1lbnQgY29uc3RydWN0b3IgbXVzdCB0aHJvdyBhIFR5cGVF
cnJvciB3aGVuIE5ld1RhcmdldCBpcyBlcXVhbCB0byBpdHNlbGYgdmlhIGEgUHJveHkgb2JqZWN0
Jyk7Ci0KLXRlc3QoZnVuY3Rpb24gKCkgewotICAgIGNsYXNzIFNvbWVDdXN0b21FbGVtZW50IGV4
dGVuZHMgSFRNTEVsZW1lbnQge307Ci0gICAgYXNzZXJ0X3Rocm93cyh7J25hbWUnOiAnVHlwZUVy
cm9yJ30sIGZ1bmN0aW9uICgpIHsgbmV3IFNvbWVDdXN0b21FbGVtZW50OyB9KTsKLX0sICdIVE1M
RWxlbWVudCBjb25zdHJ1Y3RvciBtdXN0IHRocm93IFR5cGVFcnJvciB3aGVuIGl0IGhhcyBub3Qg
YmVlbiBkZWZpbmVkIGJ5IGN1c3RvbUVsZW1lbnRzLmRlZmluZScpOwotCi10ZXN0KGZ1bmN0aW9u
ICgpIHsKLSAgICBjbGFzcyBDdXN0b21FbGVtZW50V2l0aEluZmVycmVkVGFnTmFtZSBleHRlbmRz
IEhUTUxFbGVtZW50IHt9OwotICAgIGN1c3RvbUVsZW1lbnRzLmRlZmluZSgnaW5mZXJyZWQtbmFt
ZScsIEN1c3RvbUVsZW1lbnRXaXRoSW5mZXJyZWRUYWdOYW1lKTsKLQotICAgIHZhciBpbnN0YW5j
ZSA9IG5ldyBDdXN0b21FbGVtZW50V2l0aEluZmVycmVkVGFnTmFtZTsKLSAgICBhc3NlcnRfdHJ1
ZShpbnN0YW5jZSBpbnN0YW5jZW9mIEVsZW1lbnQsICdBIGN1c3RvbSBlbGVtZW50IG11c3QgaW5o
ZXJpdCBmcm9tIEVsZW1lbnQnKTsKLSAgICBhc3NlcnRfdHJ1ZShpbnN0YW5jZSBpbnN0YW5jZW9m
IE5vZGUsICdBIGN1c3RvbSBlbGVtZW50IG11c3QgaW5oZXJpdCBmcm9tIE5vZGUnKTsKLSAgICBh
c3NlcnRfZXF1YWxzKGluc3RhbmNlLmxvY2FsTmFtZSwgJ2luZmVycmVkLW5hbWUnKTsKLSAgICBh
c3NlcnRfZXF1YWxzKGluc3RhbmNlLm5vZGVOYW1lLCAnSU5GRVJSRUQtTkFNRScpOwotICAgIGFz
c2VydF9lcXVhbHMoaW5zdGFuY2UubmFtZXNwYWNlVVJJLCAnaHR0cDovL3d3dy53My5vcmcvMTk5
OS94aHRtbCcsICdBIGN1c3RvbSBIVE1MIGVsZW1lbnQgbXVzdCB1c2UgSFRNTCBuYW1lc3BhY2Un
KTsKLQotICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaW5zdGFuY2UpOwotICAgIGFzc2Vy
dF9lcXVhbHMoZG9jdW1lbnQuYm9keS5sYXN0Q2hpbGQsIGluc3RhbmNlLAotICAgICAgICAnZG9j
dW1lbnQuYm9keS5hcHBlbmRDaGlsZCBtdXN0IGJlIGFibGUgdG8gaW5zZXJ0IGEgY3VzdG9tIGVs
ZW1lbnQnKTsKLSAgICBhc3NlcnRfZXF1YWxzKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2luZmVy
cmVkLW5hbWUnKSwgaW5zdGFuY2UsCi0gICAgICAgICdkb2N1bWVudC5xdWVyeVNlbGVjdG9yIG11
c3QgYmUgYWJsZSB0byBmaW5kIGEgY3VzdG9tIGVsZW1lbnQgYnkgaXRzIHRhZyBuYW1lJyk7Ci0K
LX0sICdIVE1MRWxlbWVudCBjb25zdHJ1Y3RvciBtdXN0IGluZmVyIHRoZSB0YWcgbmFtZSBmcm9t
IHRoZSBlbGVtZW50IGludGVyZmFjZScpOwotCi10ZXN0KGZ1bmN0aW9uICgpIHsKLSAgICBjbGFz
cyBDb25jcmV0ZUN1c3RvbUVsZW1lbnQgZXh0ZW5kcyBIVE1MRWxlbWVudCB7IH07Ci0gICAgY2xh
c3MgU3ViQ3VzdG9tRWxlbWVudCBleHRlbmRzIENvbmNyZXRlQ3VzdG9tRWxlbWVudCB7IH07Ci0g
ICAgY3VzdG9tRWxlbWVudHMuZGVmaW5lKCdjb25jcmV0ZS1jdXN0b20tZWxlbWVudCcsIENvbmNy
ZXRlQ3VzdG9tRWxlbWVudCk7Ci0gICAgY3VzdG9tRWxlbWVudHMuZGVmaW5lKCdzdWItY3VzdG9t
LWVsZW1lbnQnLCBTdWJDdXN0b21FbGVtZW50KTsKLQotICAgIHZhciBpbnN0YW5jZSA9IG5ldyBD
b25jcmV0ZUN1c3RvbUVsZW1lbnQoKTsKLSAgICBhc3NlcnRfdHJ1ZShpbnN0YW5jZSBpbnN0YW5j
ZW9mIENvbmNyZXRlQ3VzdG9tRWxlbWVudCk7Ci0gICAgYXNzZXJ0X2ZhbHNlKGluc3RhbmNlIGlu
c3RhbmNlb2YgU3ViQ3VzdG9tRWxlbWVudCk7Ci0gICAgYXNzZXJ0X2VxdWFscyhpbnN0YW5jZS5s
b2NhbE5hbWUsICdjb25jcmV0ZS1jdXN0b20tZWxlbWVudCcpOwotICAgIGFzc2VydF9lcXVhbHMo
aW5zdGFuY2Uubm9kZU5hbWUsICdDT05DUkVURS1DVVNUT00tRUxFTUVOVCcpOwotCi0gICAgdmFy
IGluc3RhbmNlID0gbmV3IFN1YkN1c3RvbUVsZW1lbnQoKTsKLSAgICBhc3NlcnRfdHJ1ZShpbnN0
YW5jZSBpbnN0YW5jZW9mIENvbmNyZXRlQ3VzdG9tRWxlbWVudCk7Ci0gICAgYXNzZXJ0X3RydWUo
aW5zdGFuY2UgaW5zdGFuY2VvZiBTdWJDdXN0b21FbGVtZW50KTsKLSAgICBhc3NlcnRfZXF1YWxz
KGluc3RhbmNlLmxvY2FsTmFtZSwgJ3N1Yi1jdXN0b20tZWxlbWVudCcpOwotICAgIGFzc2VydF9l
cXVhbHMoaW5zdGFuY2Uubm9kZU5hbWUsICdTVUItQ1VTVE9NLUVMRU1FTlQnKTsKLQotfSwgJ0hU
TUxFbGVtZW50IGNvbnN0cnVjdG9yIG11c3QgYWxsb3cgc3ViY2xhc3NpbmcgYSBjdXN0b20gZWxl
bWVudCcpOwotCi10ZXN0KGZ1bmN0aW9uICgpIHsKLSAgICBjbGFzcyBBYnN0cmFjdEN1c3RvbUVs
ZW1lbnQgZXh0ZW5kcyBIVE1MRWxlbWVudCB7IH07Ci0gICAgY2xhc3MgQ29uY3JldGVTdWJDdXN0
b21FbGVtZW50IGV4dGVuZHMgQWJzdHJhY3RDdXN0b21FbGVtZW50IHsgfTsKLSAgICBjdXN0b21F
bGVtZW50cy5kZWZpbmUoJ2NvbmNyZXRlLXN1Yi1jdXN0b20tZWxlbWVudCcsIENvbmNyZXRlU3Vi
Q3VzdG9tRWxlbWVudCk7Ci0KLSAgICB2YXIgaW5zdGFuY2UgPSBuZXcgQ29uY3JldGVTdWJDdXN0
b21FbGVtZW50KCk7Ci0gICAgYXNzZXJ0X3RydWUoaW5zdGFuY2UgaW5zdGFuY2VvZiBBYnN0cmFj
dEN1c3RvbUVsZW1lbnQpOwotICAgIGFzc2VydF90cnVlKGluc3RhbmNlIGluc3RhbmNlb2YgQ29u
Y3JldGVTdWJDdXN0b21FbGVtZW50KTsKLSAgICBhc3NlcnRfZXF1YWxzKGluc3RhbmNlLmxvY2Fs
TmFtZSwgJ2NvbmNyZXRlLXN1Yi1jdXN0b20tZWxlbWVudCcpOwotICAgIGFzc2VydF9lcXVhbHMo
aW5zdGFuY2Uubm9kZU5hbWUsICdDT05DUkVURS1TVUItQ1VTVE9NLUVMRU1FTlQnKTsKLQotfSwg
J0hUTUxFbGVtZW50IGNvbnN0cnVjdG9yIG11c3QgYWxsb3cgc3ViY2xhc3NpbmcgYW4gdXNlci1k
ZWZpbmVkIHN1YmNsYXNzIG9mIEhUTUxFbGVtZW50Jyk7Ci0KLTwvc2NyaXB0PgotPC9ib2R5Pgot
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jdXN0b20tZWxlbWVudHMvYWRv
cHRlZC1jYWxsYmFjay1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2N1c3RvbS1lbGVt
ZW50cy9hZG9wdGVkLWNhbGxiYWNrLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggNTI0NTZhNDM3MDAwMjJiMDgzM2RlMDQ2ODIwMjlkYjQxMjhjMWMwNy4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0
L2N1c3RvbS1lbGVtZW50cy9hZG9wdGVkLWNhbGxiYWNrLWV4cGVjdGVkLnR4dAorKysgL2Rldi9u
dWxsCkBAIC0xLDU5ICswLDAgQEAKLQotUEFTUyBJbnNlcnRpbmcgYSBjdXN0b20gZWxlbWVudCBp
bnRvIHRoZSBvd25lciBkb2N1bWVudCBtdXN0IG5vdCBlbnF1ZXVlIGFuZCBpbnZva2UgYWRvcHRl
ZENhbGxiYWNrIAotUEFTUyBJbnNlcnRpbmcgYSBjdXN0b20gZWxlbWVudCBpbnRvIGEgZG9jdW1l
bnQgb2YgYSB0ZW1wbGF0ZSBlbGVtZW50IG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGFkb3B0ZWRD
YWxsYmFjayAKLVBBU1MgTW92aW5nIGEgY3VzdG9tIGVsZW1lbnQgZnJvbSB0aGUgb3duZXIgZG9j
dW1lbnQgaW50byBhIGRvY3VtZW50IG9mIGEgdGVtcGxhdGUgZWxlbWVudCBtdXN0IGVucXVldWUg
YW5kIGludm9rZSBhZG9wdGVkQ2FsbGJhY2sgCi1QQVNTIEluc2VydGluZyBhbiBhbmNlc3RvciBv
ZiBjdXN0b20gZWxlbWVudCBpbnRvIGEgZG9jdW1lbnQgb2YgYSB0ZW1wbGF0ZSBlbGVtZW50IG11
c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGFkb3B0ZWRDYWxsYmFjayAKLVBBU1MgTW92aW5nIGFuIGFu
Y2VzdG9yIG9mIGN1c3RvbSBlbGVtZW50IGZyb20gdGhlIG93bmVyIGRvY3VtZW50IGludG8gYSBk
b2N1bWVudCBvZiBhIHRlbXBsYXRlIGVsZW1lbnQgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgYWRv
cHRlZENhbGxiYWNrIAotUEFTUyBJbnNlcnRpbmcgYSBjdXN0b20gZWxlbWVudCBpbnRvIGEgc2hh
ZG93IHRyZWUgaW4gYSBkb2N1bWVudCBvZiBhIHRlbXBsYXRlIGVsZW1lbnQgbXVzdCBlbnF1ZXVl
IGFuZCBpbnZva2UgYWRvcHRlZENhbGxiYWNrIAotUEFTUyBJbnNlcnRpbmcgdGhlIHNoYWRvdyBo
b3N0IG9mIGEgY3VzdG9tIGVsZW1lbnQgaW50byBhIGRvY3VtZW50IG9mIGEgdGVtcGxhdGUgZWxl
bWVudCBtdXN0IGVucXVldWUgYW5kIGludm9rZSBhZG9wdGVkQ2FsbGJhY2sgCi1QQVNTIE1vdmlu
ZyB0aGUgc2hhZG93IGhvc3Qgb2YgYSBjdXN0b20gZWxlbWVudCBmcm9tIHRoZSBvd25lciBkb2N1
bWVudCBpbnRvIGEgZG9jdW1lbnQgb2YgYSB0ZW1wbGF0ZSBlbGVtZW50IG11c3QgZW5xdWV1ZSBh
bmQgaW52b2tlIGFkb3B0ZWRDYWxsYmFjayAKLVBBU1MgSW5zZXJ0aW5nIGEgY3VzdG9tIGVsZW1l
bnQgaW50byBhIGRldGFjaGVkIHNoYWRvdyB0cmVlIHRoYXQgYmVsb25ncyB0byBhIGRvY3VtZW50
IG9mIGEgdGVtcGxhdGUgZWxlbWVudCBtdXN0IGVucXVldWUgYW5kIGludm9rZSBhZG9wdGVkQ2Fs
bGJhY2sgCi1QQVNTIEluc2VydGluZyBhIGN1c3RvbSBlbGVtZW50IGludG8gYSBuZXcgZG9jdW1l
bnQgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgYWRvcHRlZENhbGxiYWNrIAotUEFTUyBNb3Zpbmcg
YSBjdXN0b20gZWxlbWVudCBmcm9tIHRoZSBvd25lciBkb2N1bWVudCBpbnRvIGEgbmV3IGRvY3Vt
ZW50IG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGFkb3B0ZWRDYWxsYmFjayAKLVBBU1MgSW5zZXJ0
aW5nIGFuIGFuY2VzdG9yIG9mIGN1c3RvbSBlbGVtZW50IGludG8gYSBuZXcgZG9jdW1lbnQgbXVz
dCBlbnF1ZXVlIGFuZCBpbnZva2UgYWRvcHRlZENhbGxiYWNrIAotUEFTUyBNb3ZpbmcgYW4gYW5j
ZXN0b3Igb2YgY3VzdG9tIGVsZW1lbnQgZnJvbSB0aGUgb3duZXIgZG9jdW1lbnQgaW50byBhIG5l
dyBkb2N1bWVudCBtdXN0IGVucXVldWUgYW5kIGludm9rZSBhZG9wdGVkQ2FsbGJhY2sgCi1QQVNT
IEluc2VydGluZyBhIGN1c3RvbSBlbGVtZW50IGludG8gYSBzaGFkb3cgdHJlZSBpbiBhIG5ldyBk
b2N1bWVudCBtdXN0IGVucXVldWUgYW5kIGludm9rZSBhZG9wdGVkQ2FsbGJhY2sgCi1QQVNTIElu
c2VydGluZyB0aGUgc2hhZG93IGhvc3Qgb2YgYSBjdXN0b20gZWxlbWVudCBpbnRvIGEgbmV3IGRv
Y3VtZW50IG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGFkb3B0ZWRDYWxsYmFjayAKLVBBU1MgTW92
aW5nIHRoZSBzaGFkb3cgaG9zdCBvZiBhIGN1c3RvbSBlbGVtZW50IGZyb20gdGhlIG93bmVyIGRv
Y3VtZW50IGludG8gYSBuZXcgZG9jdW1lbnQgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgYWRvcHRl
ZENhbGxiYWNrIAotUEFTUyBJbnNlcnRpbmcgYSBjdXN0b20gZWxlbWVudCBpbnRvIGEgZGV0YWNo
ZWQgc2hhZG93IHRyZWUgdGhhdCBiZWxvbmdzIHRvIGEgbmV3IGRvY3VtZW50IG11c3QgZW5xdWV1
ZSBhbmQgaW52b2tlIGFkb3B0ZWRDYWxsYmFjayAKLVBBU1MgSW5zZXJ0aW5nIGEgY3VzdG9tIGVs
ZW1lbnQgaW50byBhIGNsb25lZCBkb2N1bWVudCBtdXN0IGVucXVldWUgYW5kIGludm9rZSBhZG9w
dGVkQ2FsbGJhY2sgCi1QQVNTIE1vdmluZyBhIGN1c3RvbSBlbGVtZW50IGZyb20gdGhlIG93bmVy
IGRvY3VtZW50IGludG8gYSBjbG9uZWQgZG9jdW1lbnQgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2Ug
YWRvcHRlZENhbGxiYWNrIAotUEFTUyBJbnNlcnRpbmcgYW4gYW5jZXN0b3Igb2YgY3VzdG9tIGVs
ZW1lbnQgaW50byBhIGNsb25lZCBkb2N1bWVudCBtdXN0IGVucXVldWUgYW5kIGludm9rZSBhZG9w
dGVkQ2FsbGJhY2sgCi1QQVNTIE1vdmluZyBhbiBhbmNlc3RvciBvZiBjdXN0b20gZWxlbWVudCBm
cm9tIHRoZSBvd25lciBkb2N1bWVudCBpbnRvIGEgY2xvbmVkIGRvY3VtZW50IG11c3QgZW5xdWV1
ZSBhbmQgaW52b2tlIGFkb3B0ZWRDYWxsYmFjayAKLVBBU1MgSW5zZXJ0aW5nIGEgY3VzdG9tIGVs
ZW1lbnQgaW50byBhIHNoYWRvdyB0cmVlIGluIGEgY2xvbmVkIGRvY3VtZW50IG11c3QgZW5xdWV1
ZSBhbmQgaW52b2tlIGFkb3B0ZWRDYWxsYmFjayAKLVBBU1MgSW5zZXJ0aW5nIHRoZSBzaGFkb3cg
aG9zdCBvZiBhIGN1c3RvbSBlbGVtZW50IGludG8gYSBjbG9uZWQgZG9jdW1lbnQgbXVzdCBlbnF1
ZXVlIGFuZCBpbnZva2UgYWRvcHRlZENhbGxiYWNrIAotUEFTUyBNb3ZpbmcgdGhlIHNoYWRvdyBo
b3N0IG9mIGEgY3VzdG9tIGVsZW1lbnQgZnJvbSB0aGUgb3duZXIgZG9jdW1lbnQgaW50byBhIGNs
b25lZCBkb2N1bWVudCBtdXN0IGVucXVldWUgYW5kIGludm9rZSBhZG9wdGVkQ2FsbGJhY2sgCi1Q
QVNTIEluc2VydGluZyBhIGN1c3RvbSBlbGVtZW50IGludG8gYSBkZXRhY2hlZCBzaGFkb3cgdHJl
ZSB0aGF0IGJlbG9uZ3MgdG8gYSBjbG9uZWQgZG9jdW1lbnQgbXVzdCBlbnF1ZXVlIGFuZCBpbnZv
a2UgYWRvcHRlZENhbGxiYWNrIAotUEFTUyBJbnNlcnRpbmcgYSBjdXN0b20gZWxlbWVudCBpbnRv
IGEgZG9jdW1lbnQgY3JlYXRlZCBieSBjcmVhdGVIVE1MRG9jdW1lbnQgbXVzdCBlbnF1ZXVlIGFu
ZCBpbnZva2UgYWRvcHRlZENhbGxiYWNrIAotUEFTUyBNb3ZpbmcgYSBjdXN0b20gZWxlbWVudCBm
cm9tIHRoZSBvd25lciBkb2N1bWVudCBpbnRvIGEgZG9jdW1lbnQgY3JlYXRlZCBieSBjcmVhdGVI
VE1MRG9jdW1lbnQgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgYWRvcHRlZENhbGxiYWNrIAotUEFT
UyBJbnNlcnRpbmcgYW4gYW5jZXN0b3Igb2YgY3VzdG9tIGVsZW1lbnQgaW50byBhIGRvY3VtZW50
IGNyZWF0ZWQgYnkgY3JlYXRlSFRNTERvY3VtZW50IG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGFk
b3B0ZWRDYWxsYmFjayAKLVBBU1MgTW92aW5nIGFuIGFuY2VzdG9yIG9mIGN1c3RvbSBlbGVtZW50
IGZyb20gdGhlIG93bmVyIGRvY3VtZW50IGludG8gYSBkb2N1bWVudCBjcmVhdGVkIGJ5IGNyZWF0
ZUhUTUxEb2N1bWVudCBtdXN0IGVucXVldWUgYW5kIGludm9rZSBhZG9wdGVkQ2FsbGJhY2sgCi1Q
QVNTIEluc2VydGluZyBhIGN1c3RvbSBlbGVtZW50IGludG8gYSBzaGFkb3cgdHJlZSBpbiBhIGRv
Y3VtZW50IGNyZWF0ZWQgYnkgY3JlYXRlSFRNTERvY3VtZW50IG11c3QgZW5xdWV1ZSBhbmQgaW52
b2tlIGFkb3B0ZWRDYWxsYmFjayAKLVBBU1MgSW5zZXJ0aW5nIHRoZSBzaGFkb3cgaG9zdCBvZiBh
IGN1c3RvbSBlbGVtZW50IGludG8gYSBkb2N1bWVudCBjcmVhdGVkIGJ5IGNyZWF0ZUhUTUxEb2N1
bWVudCBtdXN0IGVucXVldWUgYW5kIGludm9rZSBhZG9wdGVkQ2FsbGJhY2sgCi1QQVNTIE1vdmlu
ZyB0aGUgc2hhZG93IGhvc3Qgb2YgYSBjdXN0b20gZWxlbWVudCBmcm9tIHRoZSBvd25lciBkb2N1
bWVudCBpbnRvIGEgZG9jdW1lbnQgY3JlYXRlZCBieSBjcmVhdGVIVE1MRG9jdW1lbnQgbXVzdCBl
bnF1ZXVlIGFuZCBpbnZva2UgYWRvcHRlZENhbGxiYWNrIAotUEFTUyBJbnNlcnRpbmcgYSBjdXN0
b20gZWxlbWVudCBpbnRvIGEgZGV0YWNoZWQgc2hhZG93IHRyZWUgdGhhdCBiZWxvbmdzIHRvIGEg
ZG9jdW1lbnQgY3JlYXRlZCBieSBjcmVhdGVIVE1MRG9jdW1lbnQgbXVzdCBlbnF1ZXVlIGFuZCBp
bnZva2UgYWRvcHRlZENhbGxiYWNrIAotUEFTUyBJbnNlcnRpbmcgYSBjdXN0b20gZWxlbWVudCBp
bnRvIGEgSFRNTCBkb2N1bWVudCBjcmVhdGVkIGJ5IGNyZWF0ZURvY3VtZW50IG11c3QgZW5xdWV1
ZSBhbmQgaW52b2tlIGFkb3B0ZWRDYWxsYmFjayAKLVBBU1MgTW92aW5nIGEgY3VzdG9tIGVsZW1l
bnQgZnJvbSB0aGUgb3duZXIgZG9jdW1lbnQgaW50byBhIEhUTUwgZG9jdW1lbnQgY3JlYXRlZCBi
eSBjcmVhdGVEb2N1bWVudCBtdXN0IGVucXVldWUgYW5kIGludm9rZSBhZG9wdGVkQ2FsbGJhY2sg
Ci1QQVNTIEluc2VydGluZyBhbiBhbmNlc3RvciBvZiBjdXN0b20gZWxlbWVudCBpbnRvIGEgSFRN
TCBkb2N1bWVudCBjcmVhdGVkIGJ5IGNyZWF0ZURvY3VtZW50IG11c3QgZW5xdWV1ZSBhbmQgaW52
b2tlIGFkb3B0ZWRDYWxsYmFjayAKLVBBU1MgTW92aW5nIGFuIGFuY2VzdG9yIG9mIGN1c3RvbSBl
bGVtZW50IGZyb20gdGhlIG93bmVyIGRvY3VtZW50IGludG8gYSBIVE1MIGRvY3VtZW50IGNyZWF0
ZWQgYnkgY3JlYXRlRG9jdW1lbnQgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgYWRvcHRlZENhbGxi
YWNrIAotUEFTUyBJbnNlcnRpbmcgYSBjdXN0b20gZWxlbWVudCBpbnRvIGEgc2hhZG93IHRyZWUg
aW4gYSBIVE1MIGRvY3VtZW50IGNyZWF0ZWQgYnkgY3JlYXRlRG9jdW1lbnQgbXVzdCBlbnF1ZXVl
IGFuZCBpbnZva2UgYWRvcHRlZENhbGxiYWNrIAotUEFTUyBJbnNlcnRpbmcgdGhlIHNoYWRvdyBo
b3N0IG9mIGEgY3VzdG9tIGVsZW1lbnQgaW50byBhIEhUTUwgZG9jdW1lbnQgY3JlYXRlZCBieSBj
cmVhdGVEb2N1bWVudCBtdXN0IGVucXVldWUgYW5kIGludm9rZSBhZG9wdGVkQ2FsbGJhY2sgCi1Q
QVNTIE1vdmluZyB0aGUgc2hhZG93IGhvc3Qgb2YgYSBjdXN0b20gZWxlbWVudCBmcm9tIHRoZSBv
d25lciBkb2N1bWVudCBpbnRvIGEgSFRNTCBkb2N1bWVudCBjcmVhdGVkIGJ5IGNyZWF0ZURvY3Vt
ZW50IG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGFkb3B0ZWRDYWxsYmFjayAKLVBBU1MgSW5zZXJ0
aW5nIGEgY3VzdG9tIGVsZW1lbnQgaW50byBhIGRldGFjaGVkIHNoYWRvdyB0cmVlIHRoYXQgYmVs
b25ncyB0byBhIEhUTUwgZG9jdW1lbnQgY3JlYXRlZCBieSBjcmVhdGVEb2N1bWVudCBtdXN0IGVu
cXVldWUgYW5kIGludm9rZSBhZG9wdGVkQ2FsbGJhY2sgCi1QQVNTIEluc2VydGluZyBhIGN1c3Rv
bSBlbGVtZW50IGludG8gYSBkb2N1bWVudCBpbiBhbiBpZnJhbWUgbXVzdCBlbnF1ZXVlIGFuZCBp
bnZva2UgYWRvcHRlZENhbGxiYWNrIAotUEFTUyBNb3ZpbmcgYSBjdXN0b20gZWxlbWVudCBmcm9t
IHRoZSBvd25lciBkb2N1bWVudCBpbnRvIGEgZG9jdW1lbnQgaW4gYW4gaWZyYW1lIG11c3QgZW5x
dWV1ZSBhbmQgaW52b2tlIGFkb3B0ZWRDYWxsYmFjayAKLVBBU1MgSW5zZXJ0aW5nIGFuIGFuY2Vz
dG9yIG9mIGN1c3RvbSBlbGVtZW50IGludG8gYSBkb2N1bWVudCBpbiBhbiBpZnJhbWUgbXVzdCBl
bnF1ZXVlIGFuZCBpbnZva2UgYWRvcHRlZENhbGxiYWNrIAotUEFTUyBNb3ZpbmcgYW4gYW5jZXN0
b3Igb2YgY3VzdG9tIGVsZW1lbnQgZnJvbSB0aGUgb3duZXIgZG9jdW1lbnQgaW50byBhIGRvY3Vt
ZW50IGluIGFuIGlmcmFtZSBtdXN0IGVucXVldWUgYW5kIGludm9rZSBhZG9wdGVkQ2FsbGJhY2sg
Ci1QQVNTIEluc2VydGluZyBhIGN1c3RvbSBlbGVtZW50IGludG8gYSBzaGFkb3cgdHJlZSBpbiBh
IGRvY3VtZW50IGluIGFuIGlmcmFtZSBtdXN0IGVucXVldWUgYW5kIGludm9rZSBhZG9wdGVkQ2Fs
bGJhY2sgCi1QQVNTIEluc2VydGluZyB0aGUgc2hhZG93IGhvc3Qgb2YgYSBjdXN0b20gZWxlbWVu
dCBpbnRvIGEgZG9jdW1lbnQgaW4gYW4gaWZyYW1lIG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGFk
b3B0ZWRDYWxsYmFjayAKLVBBU1MgTW92aW5nIHRoZSBzaGFkb3cgaG9zdCBvZiBhIGN1c3RvbSBl
bGVtZW50IGZyb20gdGhlIG93bmVyIGRvY3VtZW50IGludG8gYSBkb2N1bWVudCBpbiBhbiBpZnJh
bWUgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgYWRvcHRlZENhbGxiYWNrIAotUEFTUyBJbnNlcnRp
bmcgYSBjdXN0b20gZWxlbWVudCBpbnRvIGEgZGV0YWNoZWQgc2hhZG93IHRyZWUgdGhhdCBiZWxv
bmdzIHRvIGEgZG9jdW1lbnQgaW4gYW4gaWZyYW1lIG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGFk
b3B0ZWRDYWxsYmFjayAKLVBBU1MgSW5zZXJ0aW5nIGEgY3VzdG9tIGVsZW1lbnQgaW50byBhIEhU
TUwgZG9jdW1lbnQgZmV0Y2hlZCBieSBYSFIgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgYWRvcHRl
ZENhbGxiYWNrIAotUEFTUyBNb3ZpbmcgYSBjdXN0b20gZWxlbWVudCBmcm9tIHRoZSBvd25lciBk
b2N1bWVudCBpbnRvIGEgSFRNTCBkb2N1bWVudCBmZXRjaGVkIGJ5IFhIUiBtdXN0IGVucXVldWUg
YW5kIGludm9rZSBhZG9wdGVkQ2FsbGJhY2sgCi1QQVNTIEluc2VydGluZyBhbiBhbmNlc3RvciBv
ZiBjdXN0b20gZWxlbWVudCBpbnRvIGEgSFRNTCBkb2N1bWVudCBmZXRjaGVkIGJ5IFhIUiBtdXN0
IGVucXVldWUgYW5kIGludm9rZSBhZG9wdGVkQ2FsbGJhY2sgCi1QQVNTIE1vdmluZyBhbiBhbmNl
c3RvciBvZiBjdXN0b20gZWxlbWVudCBmcm9tIHRoZSBvd25lciBkb2N1bWVudCBpbnRvIGEgSFRN
TCBkb2N1bWVudCBmZXRjaGVkIGJ5IFhIUiBtdXN0IGVucXVldWUgYW5kIGludm9rZSBhZG9wdGVk
Q2FsbGJhY2sgCi1QQVNTIEluc2VydGluZyBhIGN1c3RvbSBlbGVtZW50IGludG8gYSBzaGFkb3cg
dHJlZSBpbiBhIEhUTUwgZG9jdW1lbnQgZmV0Y2hlZCBieSBYSFIgbXVzdCBlbnF1ZXVlIGFuZCBp
bnZva2UgYWRvcHRlZENhbGxiYWNrIAotUEFTUyBJbnNlcnRpbmcgdGhlIHNoYWRvdyBob3N0IG9m
IGEgY3VzdG9tIGVsZW1lbnQgaW50byBhIEhUTUwgZG9jdW1lbnQgZmV0Y2hlZCBieSBYSFIgbXVz
dCBlbnF1ZXVlIGFuZCBpbnZva2UgYWRvcHRlZENhbGxiYWNrIAotUEFTUyBNb3ZpbmcgdGhlIHNo
YWRvdyBob3N0IG9mIGEgY3VzdG9tIGVsZW1lbnQgZnJvbSB0aGUgb3duZXIgZG9jdW1lbnQgaW50
byBhIEhUTUwgZG9jdW1lbnQgZmV0Y2hlZCBieSBYSFIgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2Ug
YWRvcHRlZENhbGxiYWNrIAotUEFTUyBJbnNlcnRpbmcgYSBjdXN0b20gZWxlbWVudCBpbnRvIGEg
ZGV0YWNoZWQgc2hhZG93IHRyZWUgdGhhdCBiZWxvbmdzIHRvIGEgSFRNTCBkb2N1bWVudCBmZXRj
aGVkIGJ5IFhIUiBtdXN0IGVucXVldWUgYW5kIGludm9rZSBhZG9wdGVkQ2FsbGJhY2sgCi0gCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2N1c3RvbS1lbGVtZW50cy9hZG9wdGVkLWNhbGxi
YWNrLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2N1c3RvbS1lbGVtZW50cy9hZG9wdGVkLWNhbGxi
YWNrLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJkYzI1YjNhZTc3ZDU5OGZh
NDk2YTc0ODMwNGY4ZTRmM2EzODdlNTcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9jdXN0b20tZWxlbWVudHMvYWRvcHRlZC1j
YWxsYmFjay5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTM2ICswLDAgQEAKLTwhRE9DVFlQRSBo
dG1sPgotPGh0bWw+Ci08aGVhZD4KLTx0aXRsZT5DdXN0b20gRWxlbWVudHM6IGFkb3B0ZWRDYWxs
YmFjazwvdGl0bGU+Ci08bWV0YSBuYW1lPSJhdXRob3IiIHRpdGxlPSJSeW9zdWtlIE5pd2EiIGhy
ZWY9Im1haWx0bzpybml3YUB3ZWJraXQub3JnIj4KLTxtZXRhIG5hbWU9ImFzc2VydCIgY29udGVu
dD0iYWRvcHRlZENhbGxiYWNrIG11c3QgYmUgZW5xdWV1ZWQgd2hlbmV2ZXIgY3VzdG9tIGVsZW1l
bnQgaXMgYWRvcHRlZCBpbnRvIGEgbmV3IGRvY3VtZW50Ij4KLTxsaW5rIHJlbD0iaGVscCIgaHJl
Zj0iaHR0cHM6Ly93M2MuZ2l0aHViLmlvL3dlYmNvbXBvbmVudHMvc3BlYy9jdXN0b20vI2Rmbi1j
b25uZWN0ZWQtY2FsbGJhY2siPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFy
bmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuL3Jlc291cmNlcy9kb2N1bWVu
dC10eXBlcy5qcyI+PC9zY3JpcHQ+Ci08bGluayByZWw9J3N0eWxlc2hlZXQnIGhyZWY9Jy4uLy4u
L3Jlc291cmNlcy90ZXN0aGFybmVzcy5jc3MnPgotPC9oZWFkPgotPGJvZHk+Ci08ZGl2IGlkPSJs
b2ciPjwvZGl2PgotPHNjcmlwdD4KLQotdmFyIGNhbGxzID0gW107Ci1jbGFzcyBNeUN1c3RvbUVs
ZW1lbnQgZXh0ZW5kcyBIVE1MRWxlbWVudCB7Ci0gICAgY29ubmVjdGVkQ2FsbGJhY2soKSB7IGNh
bGxzLnB1c2goJ2Nvbm5lY3RlZCcpOyB9Ci0gICAgYWRvcHRlZENhbGxiYWNrKG9sZERvY3VtZW50
LCBuZXdEb2N1bWVudCkgeyBjYWxscy5wdXNoKCdhZG9wdGVkJyk7IGNhbGxzLnB1c2gob2xkRG9j
dW1lbnQpOyBjYWxscy5wdXNoKG5ld0RvY3VtZW50KTsgfQotICAgIGRpc2Nvbm5lY3RlZENhbGxi
YWNrKCkgeyBjYWxscy5wdXNoKCdkaXNjb25uZWN0ZWQnKTsgfQotfQotY3VzdG9tRWxlbWVudHMu
ZGVmaW5lKCdteS1jdXN0b20tZWxlbWVudCcsIE15Q3VzdG9tRWxlbWVudCk7Ci0KLXRlc3QoZnVu
Y3Rpb24gKCkgewotICAgIHZhciBpbnN0YW5jZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ215
LWN1c3RvbS1lbGVtZW50Jyk7Ci0gICAgY2FsbHMgPSBbXTsKLSAgICBkb2N1bWVudC5ib2R5LmFw
cGVuZENoaWxkKGluc3RhbmNlKTsKLSAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGNhbGxzLCBbJ2Nv
bm5lY3RlZCddKTsKLX0sICdJbnNlcnRpbmcgYSBjdXN0b20gZWxlbWVudCBpbnRvIHRoZSBvd25l
ciBkb2N1bWVudCBtdXN0IG5vdCBlbnF1ZXVlIGFuZCBpbnZva2UgYWRvcHRlZENhbGxiYWNrJyk7
Ci0KLURvY3VtZW50VHlwZXMuZm9yRWFjaChmdW5jdGlvbiAoZW50cnkpIHsKLSAgICBpZiAoZW50
cnkuaXNPd25lcikKLSAgICAgICAgcmV0dXJuOwotCi0gICAgdmFyIGRvY3VtZW50TmFtZSA9IGVu
dHJ5Lm5hbWU7Ci0gICAgdmFyIGdldERvY3VtZW50ID0gZW50cnkuY3JlYXRlOwotCi0gICAgcHJv
bWlzZV90ZXN0KGZ1bmN0aW9uICgpIHsKLSAgICAgICAgcmV0dXJuIGdldERvY3VtZW50KCkudGhl
bihmdW5jdGlvbiAoZG9jKSB7Ci0gICAgICAgICAgICB2YXIgaW5zdGFuY2UgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCdteS1jdXN0b20tZWxlbWVudCcpOwotICAgICAgICAgICAgY2FsbHMgPSBb
XTsKLSAgICAgICAgICAgIGRvYy5kb2N1bWVudEVsZW1lbnQuYXBwZW5kQ2hpbGQoaW5zdGFuY2Up
OwotICAgICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhjYWxscywgWydhZG9wdGVkJywgZG9j
dW1lbnQsIGRvYywgJ2Nvbm5lY3RlZCddKTsKLSAgICAgICAgfSk7Ci0gICAgfSwgJ0luc2VydGlu
ZyBhIGN1c3RvbSBlbGVtZW50IGludG8gYSAnICsgZG9jdW1lbnROYW1lICsgJyBtdXN0IGVucXVl
dWUgYW5kIGludm9rZSBhZG9wdGVkQ2FsbGJhY2snKTsKLQotICAgIHByb21pc2VfdGVzdChmdW5j
dGlvbiAoKSB7Ci0gICAgICAgIHJldHVybiBnZXREb2N1bWVudCgpLnRoZW4oZnVuY3Rpb24gKGRv
YykgewotICAgICAgICAgICAgdmFyIGluc3RhbmNlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgn
bXktY3VzdG9tLWVsZW1lbnQnKTsKLSAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hp
bGQoaW5zdGFuY2UpOwotICAgICAgICAgICAgY2FsbHMgPSBbXTsKLSAgICAgICAgICAgIGRvYy5k
b2N1bWVudEVsZW1lbnQuYXBwZW5kQ2hpbGQoaW5zdGFuY2UpOwotICAgICAgICAgICAgYXNzZXJ0
X2FycmF5X2VxdWFscyhjYWxscywgWydkaXNjb25uZWN0ZWQnLCAnYWRvcHRlZCcsIGRvY3VtZW50
LCBkb2MsICdjb25uZWN0ZWQnXSk7Ci0gICAgICAgIH0pOwotICAgIH0sICdNb3ZpbmcgYSBjdXN0
b20gZWxlbWVudCBmcm9tIHRoZSBvd25lciBkb2N1bWVudCBpbnRvIGEgJyArIGRvY3VtZW50TmFt
ZSArICcgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgYWRvcHRlZENhbGxiYWNrJyk7Ci0KLSAgICBw
cm9taXNlX3Rlc3QoZnVuY3Rpb24gKCkgewotICAgICAgICByZXR1cm4gZ2V0RG9jdW1lbnQoKS50
aGVuKGZ1bmN0aW9uIChkb2MpIHsKLSAgICAgICAgICAgIHZhciBpbnN0YW5jZSA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoJ215LWN1c3RvbS1lbGVtZW50Jyk7Ci0gICAgICAgICAgICB2YXIgcGFy
ZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgICAgICAgICBwYXJlbnQu
YXBwZW5kQ2hpbGQoaW5zdGFuY2UpOwotICAgICAgICAgICAgY2FsbHMgPSBbXTsKLSAgICAgICAg
ICAgIGRvYy5kb2N1bWVudEVsZW1lbnQuYXBwZW5kQ2hpbGQocGFyZW50KTsKLSAgICAgICAgICAg
IGFzc2VydF9hcnJheV9lcXVhbHMoY2FsbHMsIFsnYWRvcHRlZCcsIGRvY3VtZW50LCBkb2MsICdj
b25uZWN0ZWQnXSk7Ci0gICAgICAgIH0pOwotICAgIH0sICdJbnNlcnRpbmcgYW4gYW5jZXN0b3Ig
b2YgY3VzdG9tIGVsZW1lbnQgaW50byBhICcgKyBkb2N1bWVudE5hbWUgKyAnIG11c3QgZW5xdWV1
ZSBhbmQgaW52b2tlIGFkb3B0ZWRDYWxsYmFjaycpOwotCi0gICAgcHJvbWlzZV90ZXN0KGZ1bmN0
aW9uICgpIHsKLSAgICAgICAgcmV0dXJuIGdldERvY3VtZW50KCkudGhlbihmdW5jdGlvbiAoZG9j
KSB7Ci0gICAgICAgICAgICB2YXIgaW5zdGFuY2UgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdt
eS1jdXN0b20tZWxlbWVudCcpOwotICAgICAgICAgICAgdmFyIHBhcmVudCA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgICAgICAgICAgcGFyZW50LmFwcGVuZENoaWxkKGluc3Rh
bmNlKTsKLSAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocGFyZW50KTsKLSAg
ICAgICAgICAgIGNhbGxzID0gW107Ci0gICAgICAgICAgICBkb2MuZG9jdW1lbnRFbGVtZW50LmFw
cGVuZENoaWxkKHBhcmVudCk7Ci0gICAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGNhbGxz
LCBbJ2Rpc2Nvbm5lY3RlZCcsICdhZG9wdGVkJywgZG9jdW1lbnQsIGRvYywgJ2Nvbm5lY3RlZCdd
KTsKLSAgICAgICAgfSk7Ci0gICAgfSwgJ01vdmluZyBhbiBhbmNlc3RvciBvZiBjdXN0b20gZWxl
bWVudCBmcm9tIHRoZSBvd25lciBkb2N1bWVudCBpbnRvIGEgJyArIGRvY3VtZW50TmFtZSArICcg
bXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgYWRvcHRlZENhbGxiYWNrJyk7Ci0KLSAgICBwcm9taXNl
X3Rlc3QoZnVuY3Rpb24gKCkgewotICAgICAgICByZXR1cm4gZ2V0RG9jdW1lbnQoKS50aGVuKGZ1
bmN0aW9uIChkb2MpIHsKLSAgICAgICAgICAgIHZhciBpbnN0YW5jZSA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoJ215LWN1c3RvbS1lbGVtZW50Jyk7Ci0gICAgICAgICAgICB2YXIgaG9zdCA9IGRv
Yy5jcmVhdGVFbGVtZW50TlMoJ2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnLCAnZGl2Jyk7
Ci0gICAgICAgICAgICB2YXIgc2hhZG93Um9vdCA9IGhvc3QuYXR0YWNoU2hhZG93KHttb2RlOiAn
Y2xvc2VkJ30pOwotICAgICAgICAgICAgZG9jLmRvY3VtZW50RWxlbWVudC5hcHBlbmRDaGlsZCho
b3N0KTsKLQotICAgICAgICAgICAgY2FsbHMgPSBbXTsKLSAgICAgICAgICAgIHNoYWRvd1Jvb3Qu
YXBwZW5kQ2hpbGQoaW5zdGFuY2UpOwotICAgICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhj
YWxscywgWydhZG9wdGVkJywgZG9jdW1lbnQsIGRvYywgJ2Nvbm5lY3RlZCddKTsKLSAgICAgICAg
fSk7Ci0gICAgfSwgJ0luc2VydGluZyBhIGN1c3RvbSBlbGVtZW50IGludG8gYSBzaGFkb3cgdHJl
ZSBpbiBhICcgKyBkb2N1bWVudE5hbWUgKyAnIG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGFkb3B0
ZWRDYWxsYmFjaycpOwotCi0gICAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uICgpIHsKLSAgICAgICAg
cmV0dXJuIGdldERvY3VtZW50KCkudGhlbihmdW5jdGlvbiAoZG9jKSB7Ci0gICAgICAgICAgICB2
YXIgaW5zdGFuY2UgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdteS1jdXN0b20tZWxlbWVudCcp
OwotICAgICAgICAgICAgdmFyIGhvc3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsK
LSAgICAgICAgICAgIHZhciBzaGFkb3dSb290ID0gaG9zdC5hdHRhY2hTaGFkb3coe21vZGU6ICdj
bG9zZWQnfSk7Ci0gICAgICAgICAgICBzaGFkb3dSb290LmFwcGVuZENoaWxkKGluc3RhbmNlKTsK
LQotICAgICAgICAgICAgY2FsbHMgPSBbXTsKLSAgICAgICAgICAgIGRvYy5kb2N1bWVudEVsZW1l
bnQuYXBwZW5kQ2hpbGQoaG9zdCk7Ci0gICAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGNh
bGxzLCBbJ2Fkb3B0ZWQnLCBkb2N1bWVudCwgZG9jLCAnY29ubmVjdGVkJ10pOwotICAgICAgICB9
KTsKLSAgICB9LCAnSW5zZXJ0aW5nIHRoZSBzaGFkb3cgaG9zdCBvZiBhIGN1c3RvbSBlbGVtZW50
IGludG8gYSAnICsgZG9jdW1lbnROYW1lICsgJyBtdXN0IGVucXVldWUgYW5kIGludm9rZSBhZG9w
dGVkQ2FsbGJhY2snKTsKLQotICAgIHByb21pc2VfdGVzdChmdW5jdGlvbiAoKSB7Ci0gICAgICAg
IHJldHVybiBnZXREb2N1bWVudCgpLnRoZW4oZnVuY3Rpb24gKGRvYykgewotICAgICAgICAgICAg
dmFyIGluc3RhbmNlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbXktY3VzdG9tLWVsZW1lbnQn
KTsKLSAgICAgICAgICAgIHZhciBob3N0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7
Ci0gICAgICAgICAgICB2YXIgc2hhZG93Um9vdCA9IGhvc3QuYXR0YWNoU2hhZG93KHttb2RlOiAn
Y2xvc2VkJ30pOwotICAgICAgICAgICAgc2hhZG93Um9vdC5hcHBlbmRDaGlsZChpbnN0YW5jZSk7
Ci0gICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGhvc3QpOwotCi0gICAgICAg
ICAgICBjYWxscyA9IFtdOwotICAgICAgICAgICAgZG9jLmRvY3VtZW50RWxlbWVudC5hcHBlbmRD
aGlsZChob3N0KTsKLSAgICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoY2FsbHMsIFsnZGlz
Y29ubmVjdGVkJywgJ2Fkb3B0ZWQnLCBkb2N1bWVudCwgZG9jLCAnY29ubmVjdGVkJ10pOwotICAg
ICAgICB9KTsKLSAgICB9LCAnTW92aW5nIHRoZSBzaGFkb3cgaG9zdCBvZiBhIGN1c3RvbSBlbGVt
ZW50IGZyb20gdGhlIG93bmVyIGRvY3VtZW50IGludG8gYSAnICsgZG9jdW1lbnROYW1lICsgJyBt
dXN0IGVucXVldWUgYW5kIGludm9rZSBhZG9wdGVkQ2FsbGJhY2snKTsKLQotICAgIHByb21pc2Vf
dGVzdChmdW5jdGlvbiAoKSB7Ci0gICAgICAgIHJldHVybiBnZXREb2N1bWVudCgpLnRoZW4oZnVu
Y3Rpb24gKGRvYykgewotICAgICAgICAgICAgdmFyIGluc3RhbmNlID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgnbXktY3VzdG9tLWVsZW1lbnQnKTsKLSAgICAgICAgICAgIHZhciBob3N0ID0gZG9j
LmNyZWF0ZUVsZW1lbnROUygnaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcsICdkaXYnKTsK
LSAgICAgICAgICAgIHZhciBzaGFkb3dSb290ID0gaG9zdC5hdHRhY2hTaGFkb3coe21vZGU6ICdj
bG9zZWQnfSk7Ci0KLSAgICAgICAgICAgIGNhbGxzID0gW107Ci0gICAgICAgICAgICBzaGFkb3dS
b290LmFwcGVuZENoaWxkKGluc3RhbmNlKTsKLSAgICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVh
bHMoY2FsbHMsIFsnYWRvcHRlZCcsIGRvY3VtZW50LCBkb2NdKTsKLSAgICAgICAgfSk7Ci0gICAg
fSwgJ0luc2VydGluZyBhIGN1c3RvbSBlbGVtZW50IGludG8gYSBkZXRhY2hlZCBzaGFkb3cgdHJl
ZSB0aGF0IGJlbG9uZ3MgdG8gYSAnICsgZG9jdW1lbnROYW1lICsgJyBtdXN0IGVucXVldWUgYW5k
IGludm9rZSBhZG9wdGVkQ2FsbGJhY2snKTsKLX0pOwotCi08L3NjcmlwdD4KLTwvYm9keT4KLTwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRzL2F0dHJp
YnV0ZS1jaGFuZ2VkLWNhbGxiYWNrLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY3Vz
dG9tLWVsZW1lbnRzL2F0dHJpYnV0ZS1jaGFuZ2VkLWNhbGxiYWNrLWV4cGVjdGVkLnR4dApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmNmMzliYjc1YjhlMGI3MzU2MjJhOTVhNDA1Mjll
ZjViNzUzMGQ3ZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9mYXN0L2N1c3RvbS1lbGVtZW50cy9hdHRyaWJ1dGUtY2hhbmdlZC1jYWxs
YmFjay1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMCArMCwwIEBACi0KLVBBU1Mg
c2V0QXR0cmlidXRlIGFuZCByZW1vdmVBdHRyaWJ1dGUgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2Ug
YXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrIAotUEFTUyBzZXRBdHRyaWJ1dGVOUyBhbmQgcmVtb3Zl
QXR0cmlidXRlTlMgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgYXR0cmlidXRlQ2hhbmdlZENhbGxi
YWNrIAotUEFTUyBzZXRBdHRyaWJ1dGVOb2RlIGFuZCByZW1vdmVBdHRyaWJ1dGVOUyBtdXN0IGVu
cXVldWUgYW5kIGludm9rZSBhdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2sgCi1QQVNTIHNldEF0dHJp
YnV0ZU5vZGUgYW5kIHJlbW92ZUF0dHJpYnV0ZU5TIG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGF0
dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayAKLVBBU1MgTXV0YXRpbmcgYXR0cmlidXRlQ2hhbmdlZENh
bGxiYWNrIGFmdGVyIGNhbGxpbmcgY3VzdG9tRWxlbWVudHMuZGVmaW5lIG11c3Qgbm90IGFmZmVj
dCB0aGUgY2FsbGJhY2sgYmVpbmcgaW52b2tlZCAKLVBBU1MgYXR0cmlidXRlZENoYW5nZWRDYWxs
YmFjayBtdXN0IG5vdCBiZSBpbnZva2VkIHdoZW4gdGhlIG9ic2VydmVkIGF0dHJpYnV0ZXMgZG9l
cyBub3QgY29udGFpbiB0aGUgYXR0cmlidXRlLiAKLVBBU1MgTXV0YXRpbmcgb2JzZXJ2ZWRBdHRy
aWJ1dGVzIGFmdGVyIGNhbGxpbmcgY3VzdG9tRWxlbWVudHMuZGVmaW5lIG11c3Qgbm90IGFmZmVj
dCB0aGUgc2V0IG9mIGF0dHJpYnV0ZXMgZm9yIHdoaWNoIGF0dHJpYnV0ZWRDaGFuZ2VkQ2FsbGJh
Y2sgaXMgaW52b2tlZCAKLVBBU1MgYXR0cmlidXRlZENoYW5nZWRDYWxsYmFjayBtdXN0IGJlIGVu
cXVldWVkIGZvciBhdHRyaWJ1dGVzIHNwZWNpZmllZCBpbiBhIG5vbi1BcnJheSBpdGVyYWJsZSBv
YnNlcnZlZEF0dHJpYnV0ZXMgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3VzdG9t
LWVsZW1lbnRzL2F0dHJpYnV0ZS1jaGFuZ2VkLWNhbGxiYWNrLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L2N1c3RvbS1lbGVtZW50cy9hdHRyaWJ1dGUtY2hhbmdlZC1jYWxsYmFjay5odG1sCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhOTBhNmFmYzZiMTBjYWUwM2VkNjFmZTI2MDk1NGQ2
NWEyYzZkYmYyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRzL2F0dHJpYnV0ZS1jaGFuZ2VkLWNhbGxi
YWNrLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxOTMgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+
Ci08aHRtbD4KLTxoZWFkPgotPHRpdGxlPkN1c3RvbSBFbGVtZW50czogYXR0cmlidXRlQ2hhbmdl
ZENhbGxiYWNrPC90aXRsZT4KLTxtZXRhIG5hbWU9ImF1dGhvciIgdGl0bGU9IlJ5b3N1a2UgTml3
YSIgaHJlZj0ibWFpbHRvOnJuaXdhQHdlYmtpdC5vcmciPgotPG1ldGEgbmFtZT0iYXNzZXJ0IiBj
b250ZW50PSJhdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2sgbXVzdCBiZSBlbnF1ZXVlZCB3aGVuZXZl
ciBjdXN0b20gZWxlbWVudCdzIGF0dHJpYnV0ZSBpcyBhZGRlZCwgY2hhbmdlZCBvciByZW1vdmVk
Ij4KLTxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly93M2MuZ2l0aHViLmlvL3dlYmNvbXBv
bmVudHMvc3BlYy9jdXN0b20vI2Rmbi1hdHRyaWJ1dGUtY2hhbmdlZC1jYWxsYmFjayI+Ci08c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0Pgot
PGxpbmsgcmVsPSdzdHlsZXNoZWV0JyBocmVmPScuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3Mu
Y3NzJz4KLTwvaGVhZD4KLTxib2R5PgotPGRpdiBpZD0ibG9nIj48L2Rpdj4KLTxzY3JpcHQ+Ci0K
LXZhciBhcmd1bWVudExpc3QgPSBbXTsKLWNsYXNzIE15Q3VzdG9tRWxlbWVudCBleHRlbmRzIEhU
TUxFbGVtZW50IHsKLSAgICBhdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2sobmFtZSwgb2xkVmFsdWUs
IG5ld1ZhbHVlLCBuYW1lc3BhY2UpIHsKLSAgICAgICAgYXJndW1lbnRMaXN0LnB1c2goe2FyZ3Vt
ZW50czogYXJndW1lbnRzLCB2YWx1ZTogdGhpcy5nZXRBdHRyaWJ1dGVOUyhuYW1lc3BhY2UsIG5h
bWUpfSk7Ci0gICAgfQotfQotTXlDdXN0b21FbGVtZW50Lm9ic2VydmVkQXR0cmlidXRlcyA9IFsn
dGl0bGUnLCAnaWQnLCAnciddOwotY3VzdG9tRWxlbWVudHMuZGVmaW5lKCdteS1jdXN0b20tZWxl
bWVudCcsIE15Q3VzdG9tRWxlbWVudCk7Ci0KLXRlc3QoZnVuY3Rpb24gKCkgewotICAgIHZhciBp
bnN0YW5jZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ215LWN1c3RvbS1lbGVtZW50Jyk7Ci0g
ICAgYXJndW1lbnRMaXN0ID0gW107Ci0KLSAgICBpbnN0YW5jZS5zZXRBdHRyaWJ1dGUoJ3RpdGxl
JywgJ2ZvbycpOwotICAgIGFzc2VydF9lcXVhbHMoaW5zdGFuY2UuZ2V0QXR0cmlidXRlKCd0aXRs
ZScpLCAnZm9vJyk7Ci0gICAgYXNzZXJ0X2VxdWFscyhhcmd1bWVudExpc3QubGVuZ3RoLCAxKTsK
LSAgICBhc3NlcnRfZXF1YWxzKGFyZ3VtZW50TGlzdFswXS52YWx1ZSwgJ2ZvbycpOwotICAgIGFz
c2VydF9hcnJheV9lcXVhbHMoYXJndW1lbnRMaXN0WzBdLmFyZ3VtZW50cywgWyd0aXRsZScsIG51
bGwsICdmb28nLCBudWxsXSk7Ci0KLSAgICBpbnN0YW5jZS5yZW1vdmVBdHRyaWJ1dGUoJ3RpdGxl
Jyk7Ci0gICAgYXNzZXJ0X2VxdWFscyhpbnN0YW5jZS5nZXRBdHRyaWJ1dGUoJ3RpdGxlJyksIG51
bGwpOwotICAgIGFzc2VydF9lcXVhbHMoYXJndW1lbnRMaXN0Lmxlbmd0aCwgMik7Ci0gICAgYXNz
ZXJ0X2VxdWFscyhhcmd1bWVudExpc3RbMV0udmFsdWUsIG51bGwpOwotICAgIGFzc2VydF9hcnJh
eV9lcXVhbHMoYXJndW1lbnRMaXN0WzFdLmFyZ3VtZW50cywgWyd0aXRsZScsICdmb28nLCBudWxs
LCBudWxsXSk7Ci0KLX0sICdzZXRBdHRyaWJ1dGUgYW5kIHJlbW92ZUF0dHJpYnV0ZSBtdXN0IGVu
cXVldWUgYW5kIGludm9rZSBhdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2snKTsKLQotdGVzdChmdW5j
dGlvbiAoKSB7Ci0gICAgdmFyIGluc3RhbmNlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbXkt
Y3VzdG9tLWVsZW1lbnQnKTsKLSAgICBhcmd1bWVudExpc3QgPSBbXTsKLQotICAgIGluc3RhbmNl
LnNldEF0dHJpYnV0ZU5TKCdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycsICd0aXRsZScsICdo
ZWxsbycpOwotICAgIGFzc2VydF9lcXVhbHMoaW5zdGFuY2UuZ2V0QXR0cmlidXRlKCd0aXRsZScp
LCAnaGVsbG8nKTsKLSAgICBhc3NlcnRfZXF1YWxzKGFyZ3VtZW50TGlzdC5sZW5ndGgsIDEpOwot
ICAgIGFzc2VydF9lcXVhbHMoYXJndW1lbnRMaXN0WzBdLnZhbHVlLCAnaGVsbG8nKTsKLSAgICBh
c3NlcnRfYXJyYXlfZXF1YWxzKGFyZ3VtZW50TGlzdFswXS5hcmd1bWVudHMsIFsndGl0bGUnLCBu
dWxsLCAnaGVsbG8nLCAnaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnXSk7Ci0KLSAgICBpbnN0
YW5jZS5yZW1vdmVBdHRyaWJ1dGVOUygnaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnLCAndGl0
bGUnKTsKLSAgICBhc3NlcnRfZXF1YWxzKGluc3RhbmNlLmdldEF0dHJpYnV0ZSgndGl0bGUnKSwg
bnVsbCk7Ci0gICAgYXNzZXJ0X2VxdWFscyhhcmd1bWVudExpc3QubGVuZ3RoLCAyKTsKLSAgICBh
c3NlcnRfZXF1YWxzKGFyZ3VtZW50TGlzdFsxXS52YWx1ZSwgbnVsbCk7Ci0gICAgYXNzZXJ0X2Fy
cmF5X2VxdWFscyhhcmd1bWVudExpc3RbMV0uYXJndW1lbnRzLCBbJ3RpdGxlJywgJ2hlbGxvJywg
bnVsbCwgJ2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJ10pOwotCi19LCAnc2V0QXR0cmlidXRl
TlMgYW5kIHJlbW92ZUF0dHJpYnV0ZU5TIG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGF0dHJpYnV0
ZUNoYW5nZWRDYWxsYmFjaycpOwotCi10ZXN0KGZ1bmN0aW9uICgpIHsKLSAgICB2YXIgaW5zdGFu
Y2UgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdteS1jdXN0b20tZWxlbWVudCcpOwotICAgIGFy
Z3VtZW50TGlzdCA9IFtdOwotCi0gICAgdmFyIGF0dHIgPSBkb2N1bWVudC5jcmVhdGVBdHRyaWJ1
dGUoJ2lkJyk7Ci0gICAgYXR0ci52YWx1ZSA9ICdiYXInOwotICAgIGluc3RhbmNlLnNldEF0dHJp
YnV0ZU5vZGUoYXR0cik7Ci0KLSAgICBhc3NlcnRfZXF1YWxzKGluc3RhbmNlLmdldEF0dHJpYnV0
ZSgnaWQnKSwgJ2JhcicpOwotICAgIGFzc2VydF9lcXVhbHMoYXJndW1lbnRMaXN0Lmxlbmd0aCwg
MSk7Ci0gICAgYXNzZXJ0X2VxdWFscyhhcmd1bWVudExpc3RbMF0udmFsdWUsICdiYXInKTsKLSAg
ICBhc3NlcnRfYXJyYXlfZXF1YWxzKGFyZ3VtZW50TGlzdFswXS5hcmd1bWVudHMsIFsnaWQnLCBu
dWxsLCAnYmFyJywgbnVsbF0pOwotCi0gICAgaW5zdGFuY2UucmVtb3ZlQXR0cmlidXRlTm9kZShh
dHRyKTsKLSAgICBhc3NlcnRfZXF1YWxzKGluc3RhbmNlLmdldEF0dHJpYnV0ZSgnaWQnKSwgbnVs
bCk7Ci0gICAgYXNzZXJ0X2VxdWFscyhhcmd1bWVudExpc3QubGVuZ3RoLCAyKTsKLSAgICBhc3Nl
cnRfZXF1YWxzKGFyZ3VtZW50TGlzdFsxXS52YWx1ZSwgbnVsbCk7Ci0gICAgYXNzZXJ0X2FycmF5
X2VxdWFscyhhcmd1bWVudExpc3RbMV0uYXJndW1lbnRzLCBbJ2lkJywgJ2JhcicsIG51bGwsIG51
bGxdKTsKLQotfSwgJ3NldEF0dHJpYnV0ZU5vZGUgYW5kIHJlbW92ZUF0dHJpYnV0ZU5TIG11c3Qg
ZW5xdWV1ZSBhbmQgaW52b2tlIGF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjaycpOwotCi10ZXN0KGZ1
bmN0aW9uICgpIHsKLSAgICB2YXIgaW5zdGFuY2UgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdt
eS1jdXN0b20tZWxlbWVudCcpOwotICAgIGFyZ3VtZW50TGlzdCA9IFtdOwotCi0gICAgdmFyIGF0
dHIgPSBkb2N1bWVudC5jcmVhdGVBdHRyaWJ1dGVOUygnaHR0cDovL3d3dy53My5vcmcvMjAwMC9z
dmcnLCAncicpOwotICAgIGF0dHIudmFsdWUgPSAnMTAwJzsKLSAgICBpbnN0YW5jZS5zZXRBdHRy
aWJ1dGVOb2RlKGF0dHIpOwotCi0gICAgYXNzZXJ0X2VxdWFscyhpbnN0YW5jZS5nZXRBdHRyaWJ1
dGUoJ3InKSwgJzEwMCcpOwotICAgIGFzc2VydF9lcXVhbHMoYXJndW1lbnRMaXN0Lmxlbmd0aCwg
MSk7Ci0gICAgYXNzZXJ0X2VxdWFscyhhcmd1bWVudExpc3RbMF0udmFsdWUsICcxMDAnKTsKLSAg
ICBhc3NlcnRfYXJyYXlfZXF1YWxzKGFyZ3VtZW50TGlzdFswXS5hcmd1bWVudHMsIFsncicsIG51
bGwsICcxMDAnLCAnaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnXSk7Ci0KLSAgICBpbnN0YW5j
ZS5yZW1vdmVBdHRyaWJ1dGVOb2RlKGF0dHIpOwotICAgIGFzc2VydF9lcXVhbHMoaW5zdGFuY2Uu
Z2V0QXR0cmlidXRlKCdyJyksIG51bGwpOwotICAgIGFzc2VydF9lcXVhbHMoYXJndW1lbnRMaXN0
Lmxlbmd0aCwgMik7Ci0gICAgYXNzZXJ0X2VxdWFscyhhcmd1bWVudExpc3RbMV0udmFsdWUsIG51
bGwpOwotICAgIGFzc2VydF9hcnJheV9lcXVhbHMoYXJndW1lbnRMaXN0WzFdLmFyZ3VtZW50cywg
WydyJywgJzEwMCcsIG51bGwsICdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyddKTsKLX0sICdz
ZXRBdHRyaWJ1dGVOb2RlIGFuZCByZW1vdmVBdHRyaWJ1dGVOUyBtdXN0IGVucXVldWUgYW5kIGlu
dm9rZSBhdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2snKTsKLQotdGVzdChmdW5jdGlvbiAoKSB7Ci0g
ICAgdmFyIGNhbGxzVG9PbGQgPSBbXTsKLSAgICB2YXIgY2FsbHNUb05ldyA9IFtdOwotICAgIGNs
YXNzIEN1c3RvbUVsZW1lbnQgZXh0ZW5kcyBIVE1MRWxlbWVudCB7IH0KLSAgICBDdXN0b21FbGVt
ZW50LnByb3RvdHlwZS5hdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2sgPSBmdW5jdGlvbiAoKSB7Ci0g
ICAgICAgIGNhbGxzVG9PbGQucHVzaChBcnJheS5mcm9tKGFyZ3VtZW50cykpOwotICAgIH0KLSAg
ICBDdXN0b21FbGVtZW50Lm9ic2VydmVkQXR0cmlidXRlcyA9IFsndGl0bGUnXTsKLSAgICBjdXN0
b21FbGVtZW50cy5kZWZpbmUoJ2VsZW1lbnQtd2l0aC1tdXRhdGVkLWF0dHJpYnV0ZS1jaGFuZ2Vk
LWNhbGxiYWNrJywgQ3VzdG9tRWxlbWVudCk7Ci0gICAgQ3VzdG9tRWxlbWVudC5wcm90b3R5cGUu
YXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrID0gZnVuY3Rpb24gKCkgewotICAgICAgICBjYWxsc1Rv
TmV3LnB1c2goQXJyYXkuZnJvbShhcmd1bWVudHMpKTsKLSAgICB9Ci0KLSAgICB2YXIgaW5zdGFu
Y2UgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdlbGVtZW50LXdpdGgtbXV0YXRlZC1hdHRyaWJ1
dGUtY2hhbmdlZC1jYWxsYmFjaycpOwotICAgIGluc3RhbmNlLnNldEF0dHJpYnV0ZSgndGl0bGUn
LCAnaGknKTsKLSAgICBhc3NlcnRfZXF1YWxzKGluc3RhbmNlLmdldEF0dHJpYnV0ZSgndGl0bGUn
KSwgJ2hpJyk7Ci0gICAgYXNzZXJ0X2FycmF5X2VxdWFscyhjYWxsc1RvTmV3LCBbXSk7Ci0gICAg
YXNzZXJ0X2VxdWFscyhjYWxsc1RvT2xkLmxlbmd0aCwgMSk7Ci0gICAgYXNzZXJ0X2FycmF5X2Vx
dWFscyhjYWxsc1RvT2xkWzBdLCBbJ3RpdGxlJywgbnVsbCwgJ2hpJywgbnVsbF0pOwotfSwgJ011
dGF0aW5nIGF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayBhZnRlciBjYWxsaW5nIGN1c3RvbUVsZW1l
bnRzLmRlZmluZSBtdXN0IG5vdCBhZmZlY3QgdGhlIGNhbGxiYWNrIGJlaW5nIGludm9rZWQnKTsK
LQotdGVzdChmdW5jdGlvbiAoKSB7Ci0gICAgdmFyIGNhbGxzID0gW107Ci0gICAgY2xhc3MgQ3Vz
dG9tRWxlbWVudCBleHRlbmRzIEhUTUxFbGVtZW50IHsKLSAgICAgICAgYXR0cmlidXRlQ2hhbmdl
ZENhbGxiYWNrKCkgewotICAgICAgICAgICAgY2FsbHMucHVzaChBcnJheS5mcm9tKGFyZ3VtZW50
cykpOwotICAgICAgICB9Ci0gICAgfQotICAgIEN1c3RvbUVsZW1lbnQub2JzZXJ2ZWRBdHRyaWJ1
dGVzID0gWyd0aXRsZSddOwotICAgIGN1c3RvbUVsZW1lbnRzLmRlZmluZSgnZWxlbWVudC1ub3Qt
b2JzZXJ2aW5nLWlkLWF0dHJpYnV0ZScsIEN1c3RvbUVsZW1lbnQpOwotCi0gICAgdmFyIGluc3Rh
bmNlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZWxlbWVudC1ub3Qtb2JzZXJ2aW5nLWlkLWF0
dHJpYnV0ZScpOwotICAgIGluc3RhbmNlLnNldEF0dHJpYnV0ZSgndGl0bGUnLCAnaGknKTsKLSAg
ICBhc3NlcnRfZXF1YWxzKGNhbGxzLmxlbmd0aCwgMSk7Ci0gICAgYXNzZXJ0X2FycmF5X2VxdWFs
cyhjYWxsc1swXSwgWyd0aXRsZScsIG51bGwsICdoaScsIG51bGxdKTsKLSAgICBpbnN0YW5jZS5z
ZXRBdHRyaWJ1dGUoJ2lkJywgJ3NvbWUnKTsKLSAgICBhc3NlcnRfZXF1YWxzKGNhbGxzLmxlbmd0
aCwgMSk7Ci19LCAnYXR0cmlidXRlZENoYW5nZWRDYWxsYmFjayBtdXN0IG5vdCBiZSBpbnZva2Vk
IHdoZW4gdGhlIG9ic2VydmVkIGF0dHJpYnV0ZXMgZG9lcyBub3QgY29udGFpbiB0aGUgYXR0cmli
dXRlLicpOwotCi10ZXN0KGZ1bmN0aW9uICgpIHsKLSAgICB2YXIgY2FsbHMgPSBbXTsKLSAgICBj
bGFzcyBDdXN0b21FbGVtZW50IGV4dGVuZHMgSFRNTEVsZW1lbnQgeyB9Ci0gICAgQ3VzdG9tRWxl
bWVudC5wcm90b3R5cGUuYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrID0gZnVuY3Rpb24gKCkgewot
ICAgICAgICBjYWxscy5wdXNoKEFycmF5LmZyb20oYXJndW1lbnRzKSk7Ci0gICAgfQotICAgIEN1
c3RvbUVsZW1lbnQub2JzZXJ2ZWRBdHRyaWJ1dGVzID0gWyd0aXRsZScsICdsYW5nJ107Ci0gICAg
Y3VzdG9tRWxlbWVudHMuZGVmaW5lKCdlbGVtZW50LXdpdGgtbXV0YXRlZC1vYnNlcnZlZC1hdHRy
aWJ1dGVzJywgQ3VzdG9tRWxlbWVudCk7Ci0gICAgQ3VzdG9tRWxlbWVudC5vYnNlcnZlZEF0dHJp
YnV0ZXMgPSBbJ3RpdGxlJywgJ2lkJ107Ci0KLSAgICB2YXIgaW5zdGFuY2UgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCdlbGVtZW50LXdpdGgtbXV0YXRlZC1vYnNlcnZlZC1hdHRyaWJ1dGVzJyk7
Ci0gICAgaW5zdGFuY2Uuc2V0QXR0cmlidXRlKCd0aXRsZScsICdoaScpOwotICAgIGFzc2VydF9l
cXVhbHMoY2FsbHMubGVuZ3RoLCAxKTsKLSAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGNhbGxzWzBd
LCBbJ3RpdGxlJywgbnVsbCwgJ2hpJywgbnVsbF0pOwotCi0gICAgaW5zdGFuY2Uuc2V0QXR0cmli
dXRlKCdpZCcsICdzb21lJyk7Ci0gICAgYXNzZXJ0X2VxdWFscyhjYWxscy5sZW5ndGgsIDEpOwot
Ci0gICAgaW5zdGFuY2Uuc2V0QXR0cmlidXRlKCdsYW5nJywgJ2VuJyk7Ci0gICAgYXNzZXJ0X2Vx
dWFscyhjYWxscy5sZW5ndGgsIDIpOwotICAgIGFzc2VydF9hcnJheV9lcXVhbHMoY2FsbHNbMF0s
IFsndGl0bGUnLCBudWxsLCAnaGknLCBudWxsXSk7Ci0gICAgYXNzZXJ0X2FycmF5X2VxdWFscyhj
YWxsc1sxXSwgWydsYW5nJywgbnVsbCwgJ2VuJywgbnVsbF0pOwotfSwgJ011dGF0aW5nIG9ic2Vy
dmVkQXR0cmlidXRlcyBhZnRlciBjYWxsaW5nIGN1c3RvbUVsZW1lbnRzLmRlZmluZSBtdXN0IG5v
dCBhZmZlY3QgdGhlIHNldCBvZiBhdHRyaWJ1dGVzIGZvciB3aGljaCBhdHRyaWJ1dGVkQ2hhbmdl
ZENhbGxiYWNrIGlzIGludm9rZWQnKTsKLQotdGVzdChmdW5jdGlvbiAoKSB7Ci0gICAgdmFyIGNh
bGxzID0gW107Ci0gICAgY2xhc3MgQ3VzdG9tRWxlbWVudCBleHRlbmRzIEhUTUxFbGVtZW50IHsg
fQotICAgIEN1c3RvbUVsZW1lbnQucHJvdG90eXBlLmF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayA9
IGZ1bmN0aW9uICgpIHsKLSAgICAgICAgY2FsbHMucHVzaChBcnJheS5mcm9tKGFyZ3VtZW50cykp
OwotICAgIH0KLSAgICBDdXN0b21FbGVtZW50Lm9ic2VydmVkQXR0cmlidXRlcyA9IHsgW1N5bWJv
bC5pdGVyYXRvcl06IGZ1bmN0aW9uICooKSB7IHlpZWxkICdsYW5nJzsgeWllbGQgJ3N0eWxlJzsg
fSB9OwotICAgIGN1c3RvbUVsZW1lbnRzLmRlZmluZSgnZWxlbWVudC13aXRoLWdlbmVyYXRvci1v
YnNlcnZlZC1hdHRyaWJ1dGVzJywgQ3VzdG9tRWxlbWVudCk7Ci0KLSAgICB2YXIgaW5zdGFuY2Ug
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdlbGVtZW50LXdpdGgtZ2VuZXJhdG9yLW9ic2VydmVk
LWF0dHJpYnV0ZXMnKTsKLSAgICBpbnN0YW5jZS5zZXRBdHRyaWJ1dGUoJ2xhbmcnLCAnZW4nKTsK
LSAgICBhc3NlcnRfZXF1YWxzKGNhbGxzLmxlbmd0aCwgMSk7Ci0gICAgYXNzZXJ0X2FycmF5X2Vx
dWFscyhjYWxsc1swXSwgWydsYW5nJywgbnVsbCwgJ2VuJywgbnVsbF0pOwotCi0gICAgaW5zdGFu
Y2Uuc2V0QXR0cmlidXRlKCdsYW5nJywgJ2phJyk7Ci0gICAgYXNzZXJ0X2VxdWFscyhjYWxscy5s
ZW5ndGgsIDIpOwotICAgIGFzc2VydF9hcnJheV9lcXVhbHMoY2FsbHNbMV0sIFsnbGFuZycsICdl
bicsICdqYScsIG51bGxdKTsKLQotICAgIGluc3RhbmNlLnNldEF0dHJpYnV0ZSgndGl0bGUnLCAn
aGVsbG8nKTsKLSAgICBhc3NlcnRfZXF1YWxzKGNhbGxzLmxlbmd0aCwgMik7Ci0KLSAgICBpbnN0
YW5jZS5zZXRBdHRyaWJ1dGUoJ3N0eWxlJywgJ2ZvbnQtc2l6ZTogMnJlbScpOwotICAgIGFzc2Vy
dF9lcXVhbHMoY2FsbHMubGVuZ3RoLCAzKTsKLSAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGNhbGxz
WzJdLCBbJ3N0eWxlJywgbnVsbCwgJ2ZvbnQtc2l6ZTogMnJlbScsIG51bGxdKTsKLX0sICdhdHRy
aWJ1dGVkQ2hhbmdlZENhbGxiYWNrIG11c3QgYmUgZW5xdWV1ZWQgZm9yIGF0dHJpYnV0ZXMgc3Bl
Y2lmaWVkIGluIGEgbm9uLUFycmF5IGl0ZXJhYmxlIG9ic2VydmVkQXR0cmlidXRlcycpOwotCi08
L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
Y3VzdG9tLWVsZW1lbnRzL2Nvbm5lY3RlZC1jYWxsYmFja3MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvZmFzdC9jdXN0b20tZWxlbWVudHMvY29ubmVjdGVkLWNhbGxiYWNrcy1leHBlY3RlZC50
eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFiZjNmZTNmZTNlZWNiNTc3ZjUxYTFi
ZDEyMTMzNWQ2NjIyYmMyNjQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9jdXN0b20tZWxlbWVudHMvY29ubmVjdGVkLWNhbGxi
YWNrcy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw0MyArMCwwIEBACi0KLVBBU1Mg
SW5zZXJ0aW5nIGEgY3VzdG9tIGVsZW1lbnQgaW50byBhIGRvY3VtZW50IG11c3QgZW5xdWV1ZSBh
bmQgaW52b2tlIGNvbm5lY3RlZENhbGxiYWNrIAotUEFTUyBJbnNlcnRpbmcgYW4gYW5jZXN0b3Ig
b2YgY3VzdG9tIGVsZW1lbnQgaW50byBhIGRvY3VtZW50IG11c3QgZW5xdWV1ZSBhbmQgaW52b2tl
IGNvbm5lY3RlZENhbGxiYWNrIAotUEFTUyBJbnNlcnRpbmcgYSBjdXN0b20gZWxlbWVudCBpbnRv
IGEgc2hhZG93IHRyZWUgaW4gYSBkb2N1bWVudCBtdXN0IGVucXVldWUgYW5kIGludm9rZSBjb25u
ZWN0ZWRDYWxsYmFjayAKLVBBU1MgSW5zZXJ0aW5nIHRoZSBzaGFkb3cgaG9zdCBvZiBhIGN1c3Rv
bSBlbGVtZW50IGludG8gYSBkb2N1bWVudCBtdXN0IGVucXVldWUgYW5kIGludm9rZSBjb25uZWN0
ZWRDYWxsYmFjayAKLVBBU1MgSW5zZXJ0aW5nIGEgY3VzdG9tIGVsZW1lbnQgaW50byBhIGRldGFj
aGVkIHNoYWRvdyB0cmVlIHRoYXQgYmVsb25ncyB0byBhIGRvY3VtZW50IG11c3Qgbm90IGVucXVl
dWUgYW5kIGludm9rZSBjb25uZWN0ZWRDYWxsYmFjayAKLVBBU1MgSW5zZXJ0aW5nIGEgY3VzdG9t
IGVsZW1lbnQgaW50byBhIGRvY3VtZW50IG9mIGEgdGVtcGxhdGUgZWxlbWVudCBtdXN0IGVucXVl
dWUgYW5kIGludm9rZSBjb25uZWN0ZWRDYWxsYmFjayAKLVBBU1MgSW5zZXJ0aW5nIGFuIGFuY2Vz
dG9yIG9mIGN1c3RvbSBlbGVtZW50IGludG8gYSBkb2N1bWVudCBvZiBhIHRlbXBsYXRlIGVsZW1l
bnQgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgY29ubmVjdGVkQ2FsbGJhY2sgCi1QQVNTIEluc2Vy
dGluZyBhIGN1c3RvbSBlbGVtZW50IGludG8gYSBzaGFkb3cgdHJlZSBpbiBhIGRvY3VtZW50IG9m
IGEgdGVtcGxhdGUgZWxlbWVudCBtdXN0IGVucXVldWUgYW5kIGludm9rZSBjb25uZWN0ZWRDYWxs
YmFjayAKLVBBU1MgSW5zZXJ0aW5nIHRoZSBzaGFkb3cgaG9zdCBvZiBhIGN1c3RvbSBlbGVtZW50
IGludG8gYSBkb2N1bWVudCBvZiBhIHRlbXBsYXRlIGVsZW1lbnQgbXVzdCBlbnF1ZXVlIGFuZCBp
bnZva2UgY29ubmVjdGVkQ2FsbGJhY2sgCi1QQVNTIEluc2VydGluZyBhIGN1c3RvbSBlbGVtZW50
IGludG8gYSBkZXRhY2hlZCBzaGFkb3cgdHJlZSB0aGF0IGJlbG9uZ3MgdG8gYSBkb2N1bWVudCBv
ZiBhIHRlbXBsYXRlIGVsZW1lbnQgbXVzdCBub3QgZW5xdWV1ZSBhbmQgaW52b2tlIGNvbm5lY3Rl
ZENhbGxiYWNrIAotUEFTUyBJbnNlcnRpbmcgYSBjdXN0b20gZWxlbWVudCBpbnRvIGEgbmV3IGRv
Y3VtZW50IG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGNvbm5lY3RlZENhbGxiYWNrIAotUEFTUyBJ
bnNlcnRpbmcgYW4gYW5jZXN0b3Igb2YgY3VzdG9tIGVsZW1lbnQgaW50byBhIG5ldyBkb2N1bWVu
dCBtdXN0IGVucXVldWUgYW5kIGludm9rZSBjb25uZWN0ZWRDYWxsYmFjayAKLVBBU1MgSW5zZXJ0
aW5nIGEgY3VzdG9tIGVsZW1lbnQgaW50byBhIHNoYWRvdyB0cmVlIGluIGEgbmV3IGRvY3VtZW50
IG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGNvbm5lY3RlZENhbGxiYWNrIAotUEFTUyBJbnNlcnRp
bmcgdGhlIHNoYWRvdyBob3N0IG9mIGEgY3VzdG9tIGVsZW1lbnQgaW50byBhIG5ldyBkb2N1bWVu
dCBtdXN0IGVucXVldWUgYW5kIGludm9rZSBjb25uZWN0ZWRDYWxsYmFjayAKLVBBU1MgSW5zZXJ0
aW5nIGEgY3VzdG9tIGVsZW1lbnQgaW50byBhIGRldGFjaGVkIHNoYWRvdyB0cmVlIHRoYXQgYmVs
b25ncyB0byBhIG5ldyBkb2N1bWVudCBtdXN0IG5vdCBlbnF1ZXVlIGFuZCBpbnZva2UgY29ubmVj
dGVkQ2FsbGJhY2sgCi1QQVNTIEluc2VydGluZyBhIGN1c3RvbSBlbGVtZW50IGludG8gYSBjbG9u
ZWQgZG9jdW1lbnQgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgY29ubmVjdGVkQ2FsbGJhY2sgCi1Q
QVNTIEluc2VydGluZyBhbiBhbmNlc3RvciBvZiBjdXN0b20gZWxlbWVudCBpbnRvIGEgY2xvbmVk
IGRvY3VtZW50IG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGNvbm5lY3RlZENhbGxiYWNrIAotUEFT
UyBJbnNlcnRpbmcgYSBjdXN0b20gZWxlbWVudCBpbnRvIGEgc2hhZG93IHRyZWUgaW4gYSBjbG9u
ZWQgZG9jdW1lbnQgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgY29ubmVjdGVkQ2FsbGJhY2sgCi1Q
QVNTIEluc2VydGluZyB0aGUgc2hhZG93IGhvc3Qgb2YgYSBjdXN0b20gZWxlbWVudCBpbnRvIGEg
Y2xvbmVkIGRvY3VtZW50IG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGNvbm5lY3RlZENhbGxiYWNr
IAotUEFTUyBJbnNlcnRpbmcgYSBjdXN0b20gZWxlbWVudCBpbnRvIGEgZGV0YWNoZWQgc2hhZG93
IHRyZWUgdGhhdCBiZWxvbmdzIHRvIGEgY2xvbmVkIGRvY3VtZW50IG11c3Qgbm90IGVucXVldWUg
YW5kIGludm9rZSBjb25uZWN0ZWRDYWxsYmFjayAKLVBBU1MgSW5zZXJ0aW5nIGEgY3VzdG9tIGVs
ZW1lbnQgaW50byBhIGRvY3VtZW50IGNyZWF0ZWQgYnkgY3JlYXRlSFRNTERvY3VtZW50IG11c3Qg
ZW5xdWV1ZSBhbmQgaW52b2tlIGNvbm5lY3RlZENhbGxiYWNrIAotUEFTUyBJbnNlcnRpbmcgYW4g
YW5jZXN0b3Igb2YgY3VzdG9tIGVsZW1lbnQgaW50byBhIGRvY3VtZW50IGNyZWF0ZWQgYnkgY3Jl
YXRlSFRNTERvY3VtZW50IG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGNvbm5lY3RlZENhbGxiYWNr
IAotUEFTUyBJbnNlcnRpbmcgYSBjdXN0b20gZWxlbWVudCBpbnRvIGEgc2hhZG93IHRyZWUgaW4g
YSBkb2N1bWVudCBjcmVhdGVkIGJ5IGNyZWF0ZUhUTUxEb2N1bWVudCBtdXN0IGVucXVldWUgYW5k
IGludm9rZSBjb25uZWN0ZWRDYWxsYmFjayAKLVBBU1MgSW5zZXJ0aW5nIHRoZSBzaGFkb3cgaG9z
dCBvZiBhIGN1c3RvbSBlbGVtZW50IGludG8gYSBkb2N1bWVudCBjcmVhdGVkIGJ5IGNyZWF0ZUhU
TUxEb2N1bWVudCBtdXN0IGVucXVldWUgYW5kIGludm9rZSBjb25uZWN0ZWRDYWxsYmFjayAKLVBB
U1MgSW5zZXJ0aW5nIGEgY3VzdG9tIGVsZW1lbnQgaW50byBhIGRldGFjaGVkIHNoYWRvdyB0cmVl
IHRoYXQgYmVsb25ncyB0byBhIGRvY3VtZW50IGNyZWF0ZWQgYnkgY3JlYXRlSFRNTERvY3VtZW50
IG11c3Qgbm90IGVucXVldWUgYW5kIGludm9rZSBjb25uZWN0ZWRDYWxsYmFjayAKLVBBU1MgSW5z
ZXJ0aW5nIGEgY3VzdG9tIGVsZW1lbnQgaW50byBhIEhUTUwgZG9jdW1lbnQgY3JlYXRlZCBieSBj
cmVhdGVEb2N1bWVudCBtdXN0IGVucXVldWUgYW5kIGludm9rZSBjb25uZWN0ZWRDYWxsYmFjayAK
LVBBU1MgSW5zZXJ0aW5nIGFuIGFuY2VzdG9yIG9mIGN1c3RvbSBlbGVtZW50IGludG8gYSBIVE1M
IGRvY3VtZW50IGNyZWF0ZWQgYnkgY3JlYXRlRG9jdW1lbnQgbXVzdCBlbnF1ZXVlIGFuZCBpbnZv
a2UgY29ubmVjdGVkQ2FsbGJhY2sgCi1QQVNTIEluc2VydGluZyBhIGN1c3RvbSBlbGVtZW50IGlu
dG8gYSBzaGFkb3cgdHJlZSBpbiBhIEhUTUwgZG9jdW1lbnQgY3JlYXRlZCBieSBjcmVhdGVEb2N1
bWVudCBtdXN0IGVucXVldWUgYW5kIGludm9rZSBjb25uZWN0ZWRDYWxsYmFjayAKLVBBU1MgSW5z
ZXJ0aW5nIHRoZSBzaGFkb3cgaG9zdCBvZiBhIGN1c3RvbSBlbGVtZW50IGludG8gYSBIVE1MIGRv
Y3VtZW50IGNyZWF0ZWQgYnkgY3JlYXRlRG9jdW1lbnQgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2Ug
Y29ubmVjdGVkQ2FsbGJhY2sgCi1QQVNTIEluc2VydGluZyBhIGN1c3RvbSBlbGVtZW50IGludG8g
YSBkZXRhY2hlZCBzaGFkb3cgdHJlZSB0aGF0IGJlbG9uZ3MgdG8gYSBIVE1MIGRvY3VtZW50IGNy
ZWF0ZWQgYnkgY3JlYXRlRG9jdW1lbnQgbXVzdCBub3QgZW5xdWV1ZSBhbmQgaW52b2tlIGNvbm5l
Y3RlZENhbGxiYWNrIAotUEFTUyBJbnNlcnRpbmcgYSBjdXN0b20gZWxlbWVudCBpbnRvIGEgZG9j
dW1lbnQgaW4gYW4gaWZyYW1lIG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGNvbm5lY3RlZENhbGxi
YWNrIAotUEFTUyBJbnNlcnRpbmcgYW4gYW5jZXN0b3Igb2YgY3VzdG9tIGVsZW1lbnQgaW50byBh
IGRvY3VtZW50IGluIGFuIGlmcmFtZSBtdXN0IGVucXVldWUgYW5kIGludm9rZSBjb25uZWN0ZWRD
YWxsYmFjayAKLVBBU1MgSW5zZXJ0aW5nIGEgY3VzdG9tIGVsZW1lbnQgaW50byBhIHNoYWRvdyB0
cmVlIGluIGEgZG9jdW1lbnQgaW4gYW4gaWZyYW1lIG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGNv
bm5lY3RlZENhbGxiYWNrIAotUEFTUyBJbnNlcnRpbmcgdGhlIHNoYWRvdyBob3N0IG9mIGEgY3Vz
dG9tIGVsZW1lbnQgaW50byBhIGRvY3VtZW50IGluIGFuIGlmcmFtZSBtdXN0IGVucXVldWUgYW5k
IGludm9rZSBjb25uZWN0ZWRDYWxsYmFjayAKLVBBU1MgSW5zZXJ0aW5nIGEgY3VzdG9tIGVsZW1l
bnQgaW50byBhIGRldGFjaGVkIHNoYWRvdyB0cmVlIHRoYXQgYmVsb25ncyB0byBhIGRvY3VtZW50
IGluIGFuIGlmcmFtZSBtdXN0IG5vdCBlbnF1ZXVlIGFuZCBpbnZva2UgY29ubmVjdGVkQ2FsbGJh
Y2sgCi1QQVNTIEluc2VydGluZyBhIGN1c3RvbSBlbGVtZW50IGludG8gYSBIVE1MIGRvY3VtZW50
IGZldGNoZWQgYnkgWEhSIG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGNvbm5lY3RlZENhbGxiYWNr
IAotUEFTUyBJbnNlcnRpbmcgYW4gYW5jZXN0b3Igb2YgY3VzdG9tIGVsZW1lbnQgaW50byBhIEhU
TUwgZG9jdW1lbnQgZmV0Y2hlZCBieSBYSFIgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgY29ubmVj
dGVkQ2FsbGJhY2sgCi1QQVNTIEluc2VydGluZyBhIGN1c3RvbSBlbGVtZW50IGludG8gYSBzaGFk
b3cgdHJlZSBpbiBhIEhUTUwgZG9jdW1lbnQgZmV0Y2hlZCBieSBYSFIgbXVzdCBlbnF1ZXVlIGFu
ZCBpbnZva2UgY29ubmVjdGVkQ2FsbGJhY2sgCi1QQVNTIEluc2VydGluZyB0aGUgc2hhZG93IGhv
c3Qgb2YgYSBjdXN0b20gZWxlbWVudCBpbnRvIGEgSFRNTCBkb2N1bWVudCBmZXRjaGVkIGJ5IFhI
UiBtdXN0IGVucXVldWUgYW5kIGludm9rZSBjb25uZWN0ZWRDYWxsYmFjayAKLVBBU1MgSW5zZXJ0
aW5nIGEgY3VzdG9tIGVsZW1lbnQgaW50byBhIGRldGFjaGVkIHNoYWRvdyB0cmVlIHRoYXQgYmVs
b25ncyB0byBhIEhUTUwgZG9jdW1lbnQgZmV0Y2hlZCBieSBYSFIgbXVzdCBub3QgZW5xdWV1ZSBh
bmQgaW52b2tlIGNvbm5lY3RlZENhbGxiYWNrIAotCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvY3VzdG9tLWVsZW1lbnRzL2Nvbm5lY3RlZC1jYWxsYmFja3MuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRzL2Nvbm5lY3RlZC1jYWxsYmFja3MuaHRtbApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWUyM2E5YmM5ZmE1ZGZmOWRiNDQ0YTc1OWY2MWJjMDQw
OTNiZjE2Zi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L2N1c3RvbS1lbGVtZW50cy9jb25uZWN0ZWQtY2FsbGJhY2tzLmh0bWwK
KysrIC9kZXYvbnVsbApAQCAtMSw4OSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgot
PGhlYWQ+Ci08dGl0bGU+Q3VzdG9tIEVsZW1lbnRzOiBjb25uZWN0ZWRDYWxsYmFjazwvdGl0bGU+
Ci08bWV0YSBuYW1lPSJhdXRob3IiIHRpdGxlPSJSeW9zdWtlIE5pd2EiIGhyZWY9Im1haWx0bzpy
bml3YUB3ZWJraXQub3JnIj4KLTxtZXRhIG5hbWU9ImFzc2VydCIgY29udGVudD0iY29ubmVjdGVk
Q2FsbGJhY2sgbXVzdCBiZSBlbnF1ZXVlZCB3aGVuZXZlciBjdXN0b20gZWxlbWVudCBpcyBpbnNl
cnRlZCBpbnRvIGEgZG9jdW1lbnQiPgotPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL3cz
Yy5naXRodWIuaW8vd2ViY29tcG9uZW50cy9zcGVjL2N1c3RvbS8jZGZuLWNvbm5lY3RlZC1jYWxs
YmFjayI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMi
Pjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4vcmVzb3VyY2VzL2RvY3VtZW50LXR5cGVzLmpzIj48
L3NjcmlwdD4KLTxsaW5rIHJlbD0nc3R5bGVzaGVldCcgaHJlZj0nLi4vLi4vcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzLmNzcyc+Ci08L2hlYWQ+Ci08Ym9keT4KLTxkaXYgaWQ9ImxvZyI+PC9kaXY+Ci08
c2NyaXB0PgotCi12YXIgY2FsbHMgPSBbXTsKLWNsYXNzIE15Q3VzdG9tRWxlbWVudCBleHRlbmRz
IEhUTUxFbGVtZW50IHsKLSAgICBjb25uZWN0ZWRDYWxsYmFjaygpIHsgY2FsbHMucHVzaCgnY29u
bmVjdGVkJywgdGhpcyk7IH0KLSAgICBkaXNjb25uZWN0ZWRDYWxsYmFjaygpIHsgY2FsbHMucHVz
aCgnZGlzY29ubmVjdGVkJywgdGhpcyk7IH0KLX0KLWN1c3RvbUVsZW1lbnRzLmRlZmluZSgnbXkt
Y3VzdG9tLWVsZW1lbnQnLCBNeUN1c3RvbUVsZW1lbnQpOwotCi1Eb2N1bWVudFR5cGVzLmZvckVh
Y2goZnVuY3Rpb24gKGVudHJ5KSB7Ci0gICAgdmFyIGRvY3VtZW50TmFtZSA9IGVudHJ5Lm5hbWU7
Ci0gICAgdmFyIGdldERvY3VtZW50ID0gZW50cnkuY3JlYXRlOwotCi0gICAgcHJvbWlzZV90ZXN0
KGZ1bmN0aW9uICgpIHsKLSAgICAgICAgcmV0dXJuIGdldERvY3VtZW50KCkudGhlbihmdW5jdGlv
biAoZG9jKSB7Ci0gICAgICAgICAgICB2YXIgaW5zdGFuY2UgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCdteS1jdXN0b20tZWxlbWVudCcpOwotICAgICAgICAgICAgY2FsbHMgPSBbXTsKLSAgICAg
ICAgICAgIGRvYy5kb2N1bWVudEVsZW1lbnQuYXBwZW5kQ2hpbGQoaW5zdGFuY2UpOwotICAgICAg
ICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhjYWxscywgWydjb25uZWN0ZWQnLCBpbnN0YW5jZV0p
OwotICAgICAgICB9KTsKLSAgICB9LCAnSW5zZXJ0aW5nIGEgY3VzdG9tIGVsZW1lbnQgaW50byBh
ICcgKyBkb2N1bWVudE5hbWUgKyAnIG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGNvbm5lY3RlZENh
bGxiYWNrJyk7Ci0KLSAgICBwcm9taXNlX3Rlc3QoZnVuY3Rpb24gKCkgewotICAgICAgICByZXR1
cm4gZ2V0RG9jdW1lbnQoKS50aGVuKGZ1bmN0aW9uIChkb2MpIHsKLSAgICAgICAgICAgIHZhciBp
bnN0YW5jZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ215LWN1c3RvbS1lbGVtZW50Jyk7Ci0g
ICAgICAgICAgICB2YXIgcGFyZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0g
ICAgICAgICAgICBwYXJlbnQuYXBwZW5kQ2hpbGQoaW5zdGFuY2UpOwotICAgICAgICAgICAgY2Fs
bHMgPSBbXTsKLSAgICAgICAgICAgIGRvYy5kb2N1bWVudEVsZW1lbnQuYXBwZW5kQ2hpbGQocGFy
ZW50KTsKLSAgICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoY2FsbHMsIFsnY29ubmVjdGVk
JywgaW5zdGFuY2VdKTsKLSAgICAgICAgfSk7Ci0gICAgfSwgJ0luc2VydGluZyBhbiBhbmNlc3Rv
ciBvZiBjdXN0b20gZWxlbWVudCBpbnRvIGEgJyArIGRvY3VtZW50TmFtZSArICcgbXVzdCBlbnF1
ZXVlIGFuZCBpbnZva2UgY29ubmVjdGVkQ2FsbGJhY2snKTsKLQotICAgIHByb21pc2VfdGVzdChm
dW5jdGlvbiAoKSB7Ci0gICAgICAgIHJldHVybiBnZXREb2N1bWVudCgpLnRoZW4oZnVuY3Rpb24g
KGRvYykgewotICAgICAgICAgICAgdmFyIGluc3RhbmNlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgnbXktY3VzdG9tLWVsZW1lbnQnKTsKLSAgICAgICAgICAgIHZhciBob3N0ID0gZG9jLmNyZWF0
ZUVsZW1lbnROUygnaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcsICdkaXYnKTsKLSAgICAg
ICAgICAgIHZhciBzaGFkb3dSb290ID0gaG9zdC5hdHRhY2hTaGFkb3coe21vZGU6ICdjbG9zZWQn
fSk7Ci0gICAgICAgICAgICBkb2MuZG9jdW1lbnRFbGVtZW50LmFwcGVuZENoaWxkKGhvc3QpOwot
Ci0gICAgICAgICAgICBjYWxscyA9IFtdOwotICAgICAgICAgICAgc2hhZG93Um9vdC5hcHBlbmRD
aGlsZChpbnN0YW5jZSk7Ci0gICAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGNhbGxzLCBb
J2Nvbm5lY3RlZCcsIGluc3RhbmNlXSk7Ci0gICAgICAgIH0pOwotICAgIH0sICdJbnNlcnRpbmcg
YSBjdXN0b20gZWxlbWVudCBpbnRvIGEgc2hhZG93IHRyZWUgaW4gYSAnICsgZG9jdW1lbnROYW1l
ICsgJyBtdXN0IGVucXVldWUgYW5kIGludm9rZSBjb25uZWN0ZWRDYWxsYmFjaycpOwotCi0gICAg
cHJvbWlzZV90ZXN0KGZ1bmN0aW9uICgpIHsKLSAgICAgICAgcmV0dXJuIGdldERvY3VtZW50KCku
dGhlbihmdW5jdGlvbiAoZG9jKSB7Ci0gICAgICAgICAgICB2YXIgaW5zdGFuY2UgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCdteS1jdXN0b20tZWxlbWVudCcpOwotICAgICAgICAgICAgdmFyIGhv
c3QgPSBkb2MuY3JlYXRlRWxlbWVudE5TKCdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJywg
J2RpdicpOwotICAgICAgICAgICAgdmFyIHNoYWRvd1Jvb3QgPSBob3N0LmF0dGFjaFNoYWRvdyh7
bW9kZTogJ2Nsb3NlZCd9KTsKLSAgICAgICAgICAgIHNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQoaW5z
dGFuY2UpOwotCi0gICAgICAgICAgICBjYWxscyA9IFtdOwotICAgICAgICAgICAgZG9jLmRvY3Vt
ZW50RWxlbWVudC5hcHBlbmRDaGlsZChob3N0KTsKLSAgICAgICAgICAgIGFzc2VydF9hcnJheV9l
cXVhbHMoY2FsbHMsIFsnY29ubmVjdGVkJywgaW5zdGFuY2VdKTsKLSAgICAgICAgfSk7Ci0gICAg
fSwgJ0luc2VydGluZyB0aGUgc2hhZG93IGhvc3Qgb2YgYSBjdXN0b20gZWxlbWVudCBpbnRvIGEg
JyArIGRvY3VtZW50TmFtZSArICcgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgY29ubmVjdGVkQ2Fs
bGJhY2snKTsKLQotICAgIHByb21pc2VfdGVzdChmdW5jdGlvbiAoKSB7Ci0gICAgICAgIHJldHVy
biBnZXREb2N1bWVudCgpLnRoZW4oZnVuY3Rpb24gKGRvYykgewotICAgICAgICAgICAgdmFyIGlu
c3RhbmNlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbXktY3VzdG9tLWVsZW1lbnQnKTsKLSAg
ICAgICAgICAgIHZhciBob3N0ID0gZG9jLmNyZWF0ZUVsZW1lbnROUygnaHR0cDovL3d3dy53My5v
cmcvMTk5OS94aHRtbCcsICdkaXYnKTsKLSAgICAgICAgICAgIHZhciBzaGFkb3dSb290ID0gaG9z
dC5hdHRhY2hTaGFkb3coe21vZGU6ICdjbG9zZWQnfSk7Ci0KLSAgICAgICAgICAgIGNhbGxzID0g
W107Ci0gICAgICAgICAgICBzaGFkb3dSb290LmFwcGVuZENoaWxkKGluc3RhbmNlKTsKLSAgICAg
ICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoY2FsbHMsIFtdKTsKLSAgICAgICAgfSk7Ci0gICAg
fSwgJ0luc2VydGluZyBhIGN1c3RvbSBlbGVtZW50IGludG8gYSBkZXRhY2hlZCBzaGFkb3cgdHJl
ZSB0aGF0IGJlbG9uZ3MgdG8gYSAnICsgZG9jdW1lbnROYW1lICsgJyBtdXN0IG5vdCBlbnF1ZXVl
IGFuZCBpbnZva2UgY29ubmVjdGVkQ2FsbGJhY2snKTsKLX0pOwotCi08L3NjcmlwdD4KLTwvYm9k
eT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRz
L2Rpc2Nvbm5lY3RlZC1jYWxsYmFja3MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9j
dXN0b20tZWxlbWVudHMvZGlzY29ubmVjdGVkLWNhbGxiYWNrcy1leHBlY3RlZC50eHQKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJjZTZjMzFmMGIyODQzMzRmYTc5MGZlYzdmOTAwZWU1
N2FjMzA2MGYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9jdXN0b20tZWxlbWVudHMvZGlzY29ubmVjdGVkLWNhbGxiYWNrcy1l
eHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw0MyArMCwwIEBACi0KLVBBU1MgUmVtb3Zp
bmcgYSBjdXN0b20gZWxlbWVudCBmcm9tIGEgZG9jdW1lbnQgbXVzdCBlbnF1ZXVlIGFuZCBpbnZv
a2UgZGlzY29ubmVjdGVkQ2FsbGJhY2sgCi1QQVNTIFJlbW92aW5nIGFuIGFuY2VzdG9yIG9mIGN1
c3RvbSBlbGVtZW50IGZyb20gYSBkb2N1bWVudCBtdXN0IGVucXVldWUgYW5kIGludm9rZSBkaXNj
b25uZWN0ZWRDYWxsYmFjayAKLVBBU1MgUmVtb3ZpbmcgYSBjdXN0b20gZWxlbWVudCBmcm9tIGEg
c2hhZG93IHRyZWUgaW4gYSBkb2N1bWVudCBtdXN0IGVucXVldWUgYW5kIGludm9rZSBkaXNjb25u
ZWN0ZWRDYWxsYmFjayAKLVBBU1MgUmVtb3ZpbmcgdGhlIHNoYWRvdyBob3N0IG9mIGEgY3VzdG9t
IGVsZW1lbnQgZnJvbSBhZG9jdW1lbnQgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgZGlzY29ubmVj
dGVkQ2FsbGJhY2sgCi1QQVNTIFJlbW92aW5nIGEgY3VzdG9tIGVsZW1lbnQgZnJvbSBhIGRldGFj
aGVkIHNoYWRvdyB0cmVlIHRoYXQgYmVsb25ncyB0byBhIGRvY3VtZW50IG11c3Qgbm90IGVucXVl
dWUgYW5kIGludm9rZSBkaXNjb25uZWN0ZWRDYWxsYmFjayAKLVBBU1MgUmVtb3ZpbmcgYSBjdXN0
b20gZWxlbWVudCBmcm9tIGEgZG9jdW1lbnQgb2YgYSB0ZW1wbGF0ZSBlbGVtZW50IG11c3QgZW5x
dWV1ZSBhbmQgaW52b2tlIGRpc2Nvbm5lY3RlZENhbGxiYWNrIAotUEFTUyBSZW1vdmluZyBhbiBh
bmNlc3RvciBvZiBjdXN0b20gZWxlbWVudCBmcm9tIGEgZG9jdW1lbnQgb2YgYSB0ZW1wbGF0ZSBl
bGVtZW50IG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGRpc2Nvbm5lY3RlZENhbGxiYWNrIAotUEFT
UyBSZW1vdmluZyBhIGN1c3RvbSBlbGVtZW50IGZyb20gYSBzaGFkb3cgdHJlZSBpbiBhIGRvY3Vt
ZW50IG9mIGEgdGVtcGxhdGUgZWxlbWVudCBtdXN0IGVucXVldWUgYW5kIGludm9rZSBkaXNjb25u
ZWN0ZWRDYWxsYmFjayAKLVBBU1MgUmVtb3ZpbmcgdGhlIHNoYWRvdyBob3N0IG9mIGEgY3VzdG9t
IGVsZW1lbnQgZnJvbSBhZG9jdW1lbnQgb2YgYSB0ZW1wbGF0ZSBlbGVtZW50IG11c3QgZW5xdWV1
ZSBhbmQgaW52b2tlIGRpc2Nvbm5lY3RlZENhbGxiYWNrIAotUEFTUyBSZW1vdmluZyBhIGN1c3Rv
bSBlbGVtZW50IGZyb20gYSBkZXRhY2hlZCBzaGFkb3cgdHJlZSB0aGF0IGJlbG9uZ3MgdG8gYSBk
b2N1bWVudCBvZiBhIHRlbXBsYXRlIGVsZW1lbnQgbXVzdCBub3QgZW5xdWV1ZSBhbmQgaW52b2tl
IGRpc2Nvbm5lY3RlZENhbGxiYWNrIAotUEFTUyBSZW1vdmluZyBhIGN1c3RvbSBlbGVtZW50IGZy
b20gYSBuZXcgZG9jdW1lbnQgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgZGlzY29ubmVjdGVkQ2Fs
bGJhY2sgCi1QQVNTIFJlbW92aW5nIGFuIGFuY2VzdG9yIG9mIGN1c3RvbSBlbGVtZW50IGZyb20g
YSBuZXcgZG9jdW1lbnQgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgZGlzY29ubmVjdGVkQ2FsbGJh
Y2sgCi1QQVNTIFJlbW92aW5nIGEgY3VzdG9tIGVsZW1lbnQgZnJvbSBhIHNoYWRvdyB0cmVlIGlu
IGEgbmV3IGRvY3VtZW50IG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGRpc2Nvbm5lY3RlZENhbGxi
YWNrIAotUEFTUyBSZW1vdmluZyB0aGUgc2hhZG93IGhvc3Qgb2YgYSBjdXN0b20gZWxlbWVudCBm
cm9tIGFuZXcgZG9jdW1lbnQgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgZGlzY29ubmVjdGVkQ2Fs
bGJhY2sgCi1QQVNTIFJlbW92aW5nIGEgY3VzdG9tIGVsZW1lbnQgZnJvbSBhIGRldGFjaGVkIHNo
YWRvdyB0cmVlIHRoYXQgYmVsb25ncyB0byBhIG5ldyBkb2N1bWVudCBtdXN0IG5vdCBlbnF1ZXVl
IGFuZCBpbnZva2UgZGlzY29ubmVjdGVkQ2FsbGJhY2sgCi1QQVNTIFJlbW92aW5nIGEgY3VzdG9t
IGVsZW1lbnQgZnJvbSBhIGNsb25lZCBkb2N1bWVudCBtdXN0IGVucXVldWUgYW5kIGludm9rZSBk
aXNjb25uZWN0ZWRDYWxsYmFjayAKLVBBU1MgUmVtb3ZpbmcgYW4gYW5jZXN0b3Igb2YgY3VzdG9t
IGVsZW1lbnQgZnJvbSBhIGNsb25lZCBkb2N1bWVudCBtdXN0IGVucXVldWUgYW5kIGludm9rZSBk
aXNjb25uZWN0ZWRDYWxsYmFjayAKLVBBU1MgUmVtb3ZpbmcgYSBjdXN0b20gZWxlbWVudCBmcm9t
IGEgc2hhZG93IHRyZWUgaW4gYSBjbG9uZWQgZG9jdW1lbnQgbXVzdCBlbnF1ZXVlIGFuZCBpbnZv
a2UgZGlzY29ubmVjdGVkQ2FsbGJhY2sgCi1QQVNTIFJlbW92aW5nIHRoZSBzaGFkb3cgaG9zdCBv
ZiBhIGN1c3RvbSBlbGVtZW50IGZyb20gYWNsb25lZCBkb2N1bWVudCBtdXN0IGVucXVldWUgYW5k
IGludm9rZSBkaXNjb25uZWN0ZWRDYWxsYmFjayAKLVBBU1MgUmVtb3ZpbmcgYSBjdXN0b20gZWxl
bWVudCBmcm9tIGEgZGV0YWNoZWQgc2hhZG93IHRyZWUgdGhhdCBiZWxvbmdzIHRvIGEgY2xvbmVk
IGRvY3VtZW50IG11c3Qgbm90IGVucXVldWUgYW5kIGludm9rZSBkaXNjb25uZWN0ZWRDYWxsYmFj
ayAKLVBBU1MgUmVtb3ZpbmcgYSBjdXN0b20gZWxlbWVudCBmcm9tIGEgZG9jdW1lbnQgY3JlYXRl
ZCBieSBjcmVhdGVIVE1MRG9jdW1lbnQgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgZGlzY29ubmVj
dGVkQ2FsbGJhY2sgCi1QQVNTIFJlbW92aW5nIGFuIGFuY2VzdG9yIG9mIGN1c3RvbSBlbGVtZW50
IGZyb20gYSBkb2N1bWVudCBjcmVhdGVkIGJ5IGNyZWF0ZUhUTUxEb2N1bWVudCBtdXN0IGVucXVl
dWUgYW5kIGludm9rZSBkaXNjb25uZWN0ZWRDYWxsYmFjayAKLVBBU1MgUmVtb3ZpbmcgYSBjdXN0
b20gZWxlbWVudCBmcm9tIGEgc2hhZG93IHRyZWUgaW4gYSBkb2N1bWVudCBjcmVhdGVkIGJ5IGNy
ZWF0ZUhUTUxEb2N1bWVudCBtdXN0IGVucXVldWUgYW5kIGludm9rZSBkaXNjb25uZWN0ZWRDYWxs
YmFjayAKLVBBU1MgUmVtb3ZpbmcgdGhlIHNoYWRvdyBob3N0IG9mIGEgY3VzdG9tIGVsZW1lbnQg
ZnJvbSBhZG9jdW1lbnQgY3JlYXRlZCBieSBjcmVhdGVIVE1MRG9jdW1lbnQgbXVzdCBlbnF1ZXVl
IGFuZCBpbnZva2UgZGlzY29ubmVjdGVkQ2FsbGJhY2sgCi1QQVNTIFJlbW92aW5nIGEgY3VzdG9t
IGVsZW1lbnQgZnJvbSBhIGRldGFjaGVkIHNoYWRvdyB0cmVlIHRoYXQgYmVsb25ncyB0byBhIGRv
Y3VtZW50IGNyZWF0ZWQgYnkgY3JlYXRlSFRNTERvY3VtZW50IG11c3Qgbm90IGVucXVldWUgYW5k
IGludm9rZSBkaXNjb25uZWN0ZWRDYWxsYmFjayAKLVBBU1MgUmVtb3ZpbmcgYSBjdXN0b20gZWxl
bWVudCBmcm9tIGEgSFRNTCBkb2N1bWVudCBjcmVhdGVkIGJ5IGNyZWF0ZURvY3VtZW50IG11c3Qg
ZW5xdWV1ZSBhbmQgaW52b2tlIGRpc2Nvbm5lY3RlZENhbGxiYWNrIAotUEFTUyBSZW1vdmluZyBh
biBhbmNlc3RvciBvZiBjdXN0b20gZWxlbWVudCBmcm9tIGEgSFRNTCBkb2N1bWVudCBjcmVhdGVk
IGJ5IGNyZWF0ZURvY3VtZW50IG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGRpc2Nvbm5lY3RlZENh
bGxiYWNrIAotUEFTUyBSZW1vdmluZyBhIGN1c3RvbSBlbGVtZW50IGZyb20gYSBzaGFkb3cgdHJl
ZSBpbiBhIEhUTUwgZG9jdW1lbnQgY3JlYXRlZCBieSBjcmVhdGVEb2N1bWVudCBtdXN0IGVucXVl
dWUgYW5kIGludm9rZSBkaXNjb25uZWN0ZWRDYWxsYmFjayAKLVBBU1MgUmVtb3ZpbmcgdGhlIHNo
YWRvdyBob3N0IG9mIGEgY3VzdG9tIGVsZW1lbnQgZnJvbSBhSFRNTCBkb2N1bWVudCBjcmVhdGVk
IGJ5IGNyZWF0ZURvY3VtZW50IG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGRpc2Nvbm5lY3RlZENh
bGxiYWNrIAotUEFTUyBSZW1vdmluZyBhIGN1c3RvbSBlbGVtZW50IGZyb20gYSBkZXRhY2hlZCBz
aGFkb3cgdHJlZSB0aGF0IGJlbG9uZ3MgdG8gYSBIVE1MIGRvY3VtZW50IGNyZWF0ZWQgYnkgY3Jl
YXRlRG9jdW1lbnQgbXVzdCBub3QgZW5xdWV1ZSBhbmQgaW52b2tlIGRpc2Nvbm5lY3RlZENhbGxi
YWNrIAotUEFTUyBSZW1vdmluZyBhIGN1c3RvbSBlbGVtZW50IGZyb20gYSBkb2N1bWVudCBpbiBh
biBpZnJhbWUgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgZGlzY29ubmVjdGVkQ2FsbGJhY2sgCi1Q
QVNTIFJlbW92aW5nIGFuIGFuY2VzdG9yIG9mIGN1c3RvbSBlbGVtZW50IGZyb20gYSBkb2N1bWVu
dCBpbiBhbiBpZnJhbWUgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgZGlzY29ubmVjdGVkQ2FsbGJh
Y2sgCi1QQVNTIFJlbW92aW5nIGEgY3VzdG9tIGVsZW1lbnQgZnJvbSBhIHNoYWRvdyB0cmVlIGlu
IGEgZG9jdW1lbnQgaW4gYW4gaWZyYW1lIG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGRpc2Nvbm5l
Y3RlZENhbGxiYWNrIAotUEFTUyBSZW1vdmluZyB0aGUgc2hhZG93IGhvc3Qgb2YgYSBjdXN0b20g
ZWxlbWVudCBmcm9tIGFkb2N1bWVudCBpbiBhbiBpZnJhbWUgbXVzdCBlbnF1ZXVlIGFuZCBpbnZv
a2UgZGlzY29ubmVjdGVkQ2FsbGJhY2sgCi1QQVNTIFJlbW92aW5nIGEgY3VzdG9tIGVsZW1lbnQg
ZnJvbSBhIGRldGFjaGVkIHNoYWRvdyB0cmVlIHRoYXQgYmVsb25ncyB0byBhIGRvY3VtZW50IGlu
IGFuIGlmcmFtZSBtdXN0IG5vdCBlbnF1ZXVlIGFuZCBpbnZva2UgZGlzY29ubmVjdGVkQ2FsbGJh
Y2sgCi1QQVNTIFJlbW92aW5nIGEgY3VzdG9tIGVsZW1lbnQgZnJvbSBhIEhUTUwgZG9jdW1lbnQg
ZmV0Y2hlZCBieSBYSFIgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgZGlzY29ubmVjdGVkQ2FsbGJh
Y2sgCi1QQVNTIFJlbW92aW5nIGFuIGFuY2VzdG9yIG9mIGN1c3RvbSBlbGVtZW50IGZyb20gYSBI
VE1MIGRvY3VtZW50IGZldGNoZWQgYnkgWEhSIG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGRpc2Nv
bm5lY3RlZENhbGxiYWNrIAotUEFTUyBSZW1vdmluZyBhIGN1c3RvbSBlbGVtZW50IGZyb20gYSBz
aGFkb3cgdHJlZSBpbiBhIEhUTUwgZG9jdW1lbnQgZmV0Y2hlZCBieSBYSFIgbXVzdCBlbnF1ZXVl
IGFuZCBpbnZva2UgZGlzY29ubmVjdGVkQ2FsbGJhY2sgCi1QQVNTIFJlbW92aW5nIHRoZSBzaGFk
b3cgaG9zdCBvZiBhIGN1c3RvbSBlbGVtZW50IGZyb20gYUhUTUwgZG9jdW1lbnQgZmV0Y2hlZCBi
eSBYSFIgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgZGlzY29ubmVjdGVkQ2FsbGJhY2sgCi1QQVNT
IFJlbW92aW5nIGEgY3VzdG9tIGVsZW1lbnQgZnJvbSBhIGRldGFjaGVkIHNoYWRvdyB0cmVlIHRo
YXQgYmVsb25ncyB0byBhIEhUTUwgZG9jdW1lbnQgZmV0Y2hlZCBieSBYSFIgbXVzdCBub3QgZW5x
dWV1ZSBhbmQgaW52b2tlIGRpc2Nvbm5lY3RlZENhbGxiYWNrIAotCi0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRzL2Rpc2Nvbm5lY3RlZC1jYWxsYmFja3MuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRzL2Rpc2Nvbm5lY3RlZC1jYWxsYmFj
a3MuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTY1NGQzODA4MzQ4ZTdlNGE5
MTBjODhjNTU2NGY3M2NkMDU5Njg1ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2N1c3RvbS1lbGVtZW50cy9kaXNjb25uZWN0
ZWQtY2FsbGJhY2tzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw5NCArMCwwIEBACi08IURPQ1RZ
UEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08dGl0bGU+Q3VzdG9tIEVsZW1lbnRzOiBkaXNjb25u
ZWN0ZWRDYWxsYmFjazwvdGl0bGU+Ci08bWV0YSBuYW1lPSJhdXRob3IiIHRpdGxlPSJSeW9zdWtl
IE5pd2EiIGhyZWY9Im1haWx0bzpybml3YUB3ZWJraXQub3JnIj4KLTxtZXRhIG5hbWU9ImFzc2Vy
dCIgY29udGVudD0iZGlzY29ubmVjdGVkQ2FsbGJhY2sgbXVzdCBiZSBlbnF1ZXVlZCB3aGVuZXZl
ciBjdXN0b20gZWxlbWVudCBpcyByZW1vdmVkIGZyb20gYSBkb2N1bWVudCI+Ci08bGluayByZWw9
ImhlbHAiIGhyZWY9Imh0dHBzOi8vdzNjLmdpdGh1Yi5pby93ZWJjb21wb25lbnRzL3NwZWMvY3Vz
dG9tLyNkZm4tY29ubmVjdGVkLWNhbGxiYWNrIj4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi9yZXNvdXJj
ZXMvZG9jdW1lbnQtdHlwZXMuanMiPjwvc2NyaXB0PgotPGxpbmsgcmVsPSdzdHlsZXNoZWV0JyBo
cmVmPScuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuY3NzJz4KLTwvaGVhZD4KLTxib2R5Pgot
PGRpdiBpZD0ibG9nIj48L2Rpdj4KLTxzY3JpcHQ+Ci0KLXZhciBjYWxscyA9IFtdOwotY2xhc3Mg
TXlDdXN0b21FbGVtZW50IGV4dGVuZHMgSFRNTEVsZW1lbnQgewotICAgIGNvbm5lY3RlZENhbGxi
YWNrKCkgeyBjYWxscy5wdXNoKCdjb25uZWN0ZWQnLCB0aGlzKTsgfQotICAgIGRpc2Nvbm5lY3Rl
ZENhbGxiYWNrKCkgeyBjYWxscy5wdXNoKCdkaXNjb25uZWN0ZWQnLCB0aGlzKTsgfQotfQotY3Vz
dG9tRWxlbWVudHMuZGVmaW5lKCdteS1jdXN0b20tZWxlbWVudCcsIE15Q3VzdG9tRWxlbWVudCk7
Ci0KLURvY3VtZW50VHlwZXMuZm9yRWFjaChmdW5jdGlvbiAoZW50cnkpIHsKLSAgICB2YXIgZG9j
dW1lbnROYW1lID0gZW50cnkubmFtZTsKLSAgICB2YXIgZ2V0RG9jdW1lbnQgPSBlbnRyeS5jcmVh
dGU7Ci0KLSAgICBwcm9taXNlX3Rlc3QoZnVuY3Rpb24gKCkgewotICAgICAgICByZXR1cm4gZ2V0
RG9jdW1lbnQoKS50aGVuKGZ1bmN0aW9uIChkb2MpIHsKLSAgICAgICAgICAgIHZhciBpbnN0YW5j
ZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ215LWN1c3RvbS1lbGVtZW50Jyk7Ci0gICAgICAg
ICAgICBkb2MuZG9jdW1lbnRFbGVtZW50LmFwcGVuZENoaWxkKGluc3RhbmNlKTsKLSAgICAgICAg
ICAgIGNhbGxzID0gW107Ci0gICAgICAgICAgICBkb2MuZG9jdW1lbnRFbGVtZW50LnJlbW92ZUNo
aWxkKGluc3RhbmNlKTsKLSAgICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoY2FsbHMsIFsn
ZGlzY29ubmVjdGVkJywgaW5zdGFuY2VdKTsKLSAgICAgICAgfSk7Ci0gICAgfSwgJ1JlbW92aW5n
IGEgY3VzdG9tIGVsZW1lbnQgZnJvbSBhICcgKyBkb2N1bWVudE5hbWUgKyAnIG11c3QgZW5xdWV1
ZSBhbmQgaW52b2tlIGRpc2Nvbm5lY3RlZENhbGxiYWNrJyk7Ci0KLSAgICBwcm9taXNlX3Rlc3Qo
ZnVuY3Rpb24gKCkgewotICAgICAgICByZXR1cm4gZ2V0RG9jdW1lbnQoKS50aGVuKGZ1bmN0aW9u
IChkb2MpIHsKLSAgICAgICAgICAgIHZhciBpbnN0YW5jZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoJ215LWN1c3RvbS1lbGVtZW50Jyk7Ci0gICAgICAgICAgICB2YXIgcGFyZW50ID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgICAgICAgICBwYXJlbnQuYXBwZW5kQ2hpbGQo
aW5zdGFuY2UpOwotICAgICAgICAgICAgZG9jLmRvY3VtZW50RWxlbWVudC5hcHBlbmRDaGlsZChw
YXJlbnQpOwotICAgICAgICAgICAgY2FsbHMgPSBbXTsKLSAgICAgICAgICAgIGRvYy5kb2N1bWVu
dEVsZW1lbnQucmVtb3ZlQ2hpbGQocGFyZW50KTsKLSAgICAgICAgICAgIGFzc2VydF9hcnJheV9l
cXVhbHMoY2FsbHMsIFsnZGlzY29ubmVjdGVkJywgaW5zdGFuY2VdKTsKLSAgICAgICAgfSk7Ci0g
ICAgfSwgJ1JlbW92aW5nIGFuIGFuY2VzdG9yIG9mIGN1c3RvbSBlbGVtZW50IGZyb20gYSAnICsg
ZG9jdW1lbnROYW1lICsgJyBtdXN0IGVucXVldWUgYW5kIGludm9rZSBkaXNjb25uZWN0ZWRDYWxs
YmFjaycpOwotCi0gICAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uICgpIHsKLSAgICAgICAgcmV0dXJu
IGdldERvY3VtZW50KCkudGhlbihmdW5jdGlvbiAoZG9jKSB7Ci0gICAgICAgICAgICB2YXIgaW5z
dGFuY2UgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdteS1jdXN0b20tZWxlbWVudCcpOwotICAg
ICAgICAgICAgdmFyIGhvc3QgPSBkb2MuY3JlYXRlRWxlbWVudE5TKCdodHRwOi8vd3d3LnczLm9y
Zy8xOTk5L3hodG1sJywgJ2RpdicpOwotICAgICAgICAgICAgdmFyIHNoYWRvd1Jvb3QgPSBob3N0
LmF0dGFjaFNoYWRvdyh7bW9kZTogJ2Nsb3NlZCd9KTsKLSAgICAgICAgICAgIGRvYy5kb2N1bWVu
dEVsZW1lbnQuYXBwZW5kQ2hpbGQoaG9zdCk7Ci0gICAgICAgICAgICBzaGFkb3dSb290LmFwcGVu
ZENoaWxkKGluc3RhbmNlKTsKLQotICAgICAgICAgICAgY2FsbHMgPSBbXTsKLSAgICAgICAgICAg
IHNoYWRvd1Jvb3QucmVtb3ZlQ2hpbGQoaW5zdGFuY2UpOwotICAgICAgICAgICAgYXNzZXJ0X2Fy
cmF5X2VxdWFscyhjYWxscywgWydkaXNjb25uZWN0ZWQnLCBpbnN0YW5jZV0pOwotICAgICAgICB9
KTsKLSAgICB9LCAnUmVtb3ZpbmcgYSBjdXN0b20gZWxlbWVudCBmcm9tIGEgc2hhZG93IHRyZWUg
aW4gYSAnICsgZG9jdW1lbnROYW1lICsgJyBtdXN0IGVucXVldWUgYW5kIGludm9rZSBkaXNjb25u
ZWN0ZWRDYWxsYmFjaycpOwotCi0gICAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uICgpIHsKLSAgICAg
ICAgcmV0dXJuIGdldERvY3VtZW50KCkudGhlbihmdW5jdGlvbiAoZG9jKSB7Ci0gICAgICAgICAg
ICB2YXIgaW5zdGFuY2UgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdteS1jdXN0b20tZWxlbWVu
dCcpOwotICAgICAgICAgICAgdmFyIGhvc3QgPSBkb2MuY3JlYXRlRWxlbWVudE5TKCdodHRwOi8v
d3d3LnczLm9yZy8xOTk5L3hodG1sJywgJ2RpdicpOwotICAgICAgICAgICAgdmFyIHNoYWRvd1Jv
b3QgPSBob3N0LmF0dGFjaFNoYWRvdyh7bW9kZTogJ2Nsb3NlZCd9KTsKLSAgICAgICAgICAgIHNo
YWRvd1Jvb3QuYXBwZW5kQ2hpbGQoaW5zdGFuY2UpOwotICAgICAgICAgICAgZG9jLmRvY3VtZW50
RWxlbWVudC5hcHBlbmRDaGlsZChob3N0KTsKLQotICAgICAgICAgICAgY2FsbHMgPSBbXTsKLSAg
ICAgICAgICAgIGRvYy5kb2N1bWVudEVsZW1lbnQucmVtb3ZlQ2hpbGQoaG9zdCk7Ci0gICAgICAg
ICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGNhbGxzLCBbJ2Rpc2Nvbm5lY3RlZCcsIGluc3RhbmNl
XSk7Ci0gICAgICAgIH0pOwotICAgIH0sICdSZW1vdmluZyB0aGUgc2hhZG93IGhvc3Qgb2YgYSBj
dXN0b20gZWxlbWVudCBmcm9tIGEnICsgZG9jdW1lbnROYW1lICsgJyBtdXN0IGVucXVldWUgYW5k
IGludm9rZSBkaXNjb25uZWN0ZWRDYWxsYmFjaycpOwotCi0gICAgcHJvbWlzZV90ZXN0KGZ1bmN0
aW9uICgpIHsKLSAgICAgICAgcmV0dXJuIGdldERvY3VtZW50KCkudGhlbihmdW5jdGlvbiAoZG9j
KSB7Ci0gICAgICAgICAgICB2YXIgaW5zdGFuY2UgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdt
eS1jdXN0b20tZWxlbWVudCcpOwotICAgICAgICAgICAgdmFyIGhvc3QgPSBkb2MuY3JlYXRlRWxl
bWVudE5TKCdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJywgJ2RpdicpOwotICAgICAgICAg
ICAgdmFyIHNoYWRvd1Jvb3QgPSBob3N0LmF0dGFjaFNoYWRvdyh7bW9kZTogJ2Nsb3NlZCd9KTsK
LSAgICAgICAgICAgIHNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQoaW5zdGFuY2UpOwotCi0gICAgICAg
ICAgICBjYWxscyA9IFtdOwotICAgICAgICAgICAgc2hhZG93Um9vdC5yZW1vdmVDaGlsZChpbnN0
YW5jZSk7Ci0gICAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGNhbGxzLCBbXSk7Ci0gICAg
ICAgIH0pOwotICAgIH0sICdSZW1vdmluZyBhIGN1c3RvbSBlbGVtZW50IGZyb20gYSBkZXRhY2hl
ZCBzaGFkb3cgdHJlZSB0aGF0IGJlbG9uZ3MgdG8gYSAnICsgZG9jdW1lbnROYW1lICsgJyBtdXN0
IG5vdCBlbnF1ZXVlIGFuZCBpbnZva2UgZGlzY29ubmVjdGVkQ2FsbGJhY2snKTsKLX0pOwotCi08
L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL0N1c3RvbUVsZW1lbnRS
ZWdpc3RyeS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9DdXN0b21FbGVtZW50UmVnaXN0cnktZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjM1ZWM1ZWU0MWVjZDExNzk1OTRlYjFkN2IwZTkwY2ZkZjlmYzYwY2IK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2N1c3RvbS1lbGVtZW50cy9DdXN0b21FbGVtZW50UmVnaXN0cnktZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMzkgQEAKKworUEFTUyBDdXN0b21FbGVtZW50UmVnaXN0cnkgaW50ZXJmYWNl
IG11c3QgaGF2ZSBkZWZpbmUgYXMgYSBtZXRob2QgCitQQVNTIGN1c3RvbUVsZW1lbnRzLmRlZmlu
ZSBtdXN0IHRocm93IHdoZW4gdGhlIGVsZW1lbnQgaW50ZXJmYWNlIGlzIG5vdCBhIGNvbnN0cnVj
dG9yIAorUEFTUyBjdXN0b21FbGVtZW50cy5kZWZpbmUgbXVzdCBub3QgdGhyb3cgdGhlIGNvbnN0
cnVjdG9yIGlzIEhUTUxFbGVtZW50IAorUEFTUyBjdXN0b21FbGVtZW50cy5kZWZpbmUgbXVzdCB0
aHJvdyB3aXRoIGFuIGludmFsaWQgbmFtZSAKK1BBU1MgY3VzdG9tRWxlbWVudHMuZGVmaW5lIG11
c3QgdGhyb3cgd2hlbiB0aGVyZSBpcyBhbHJlYWR5IGEgY3VzdG9tIGVsZW1lbnQgb2YgdGhlIHNh
bWUgbmFtZSAKK1BBU1MgY3VzdG9tRWxlbWVudHMuZGVmaW5lIG11c3QgdGhyb3cgYSBOb3RTdXBw
b3J0ZWRFcnJvciB3aGVuIHRoZXJlIGlzIGFscmVhZHkgYSBjdXN0b20gZWxlbWVudCB3aXRoIHRo
ZSBzYW1lIGNsYXNzIAorUEFTUyBjdXN0b21FbGVtZW50cy5kZWZpbmUgbXVzdCB0aHJvdyBhIE5v
dFN1cHBvcnRlZEVycm9yIHdoZW4gZWxlbWVudCBkZWZpbml0aW9uIGlzIHJ1bm5pbmcgZmxhZyBp
cyBzZXQgCitQQVNTIGN1c3RvbUVsZW1lbnRzLmRlZmluZSBtdXN0IGNoZWNrIElzQ29uc3RydWN0
b3Igb24gdGhlIGNvbnN0cnVjdG9yIGJlZm9yZSBjaGVja2luZyB0aGUgZWxlbWVudCBkZWZpbml0
aW9uIGlzIHJ1bm5pbmcgZmxhZyAKK1BBU1MgY3VzdG9tRWxlbWVudHMuZGVmaW5lIG11c3QgdmFs
aWRhdGUgdGhlIGN1c3RvbSBlbGVtZW50IG5hbWUgYmVmb3JlIGNoZWNraW5nIHRoZSBlbGVtZW50
IGRlZmluaXRpb24gaXMgcnVubmluZyBmbGFnIAorUEFTUyBjdXN0b21FbGVtZW50cy5kZWZpbmUg
dW5zZXQgdGhlIGVsZW1lbnQgZGVmaW5pdGlvbiBpcyBydW5uaW5nIGZsYWcgYmVmb3JlIHVwZ3Jh
ZGluZyBjdXN0b20gZWxlbWVudHMgCitQQVNTIGN1c3RvbUVsZW1lbnRzLmRlZmluZSBtdXN0IG5v
dCB0aHJvdyB3aGVuIGRlZmluaW5nIGFub3RoZXIgY3VzdG9tIGVsZW1lbnQgaW4gYSBkaWZmZXJl
bnQgZ2xvYmFsIG9iamVjdCBkdXJpbmcgR2V0KGNvbnN0cnVjdG9yLCAicHJvdG90eXBlIikgCitQ
QVNTIEN1c3RvbSBFbGVtZW50czogQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5IGludGVyZmFjZSAKK1BB
U1MgY3VzdG9tRWxlbWVudHMuZGVmaW5lIG11c3QgZ2V0ICJwcm90b3R5cGUiIHByb3BlcnR5IG9m
IHRoZSBjb25zdHJ1Y3RvciAKK1BBU1MgY3VzdG9tRWxlbWVudHMuZGVmaW5lIG11c3QgcmV0aHJv
dyBhbiBleGNlcHRpb24gdGhyb3duIHdoaWxlIGdldHRpbmcgInByb3RvdHlwZSIgcHJvcGVydHkg
b2YgdGhlIGNvbnN0cnVjdG9yIAorUEFTUyBjdXN0b21FbGVtZW50cy5kZWZpbmUgbXVzdCB0aHJv
dyB3aGVuICJwcm90b3R5cGUiIHByb3BlcnR5IG9mIHRoZSBjb25zdHJ1Y3RvciBpcyBub3QgYW4g
b2JqZWN0IAorUEFTUyBjdXN0b21FbGVtZW50cy5kZWZpbmUgbXVzdCBnZXQgY2FsbGJhY2tzIG9m
IHRoZSBjb25zdHJ1Y3RvciBwcm90b3R5cGUgCitQQVNTIGN1c3RvbUVsZW1lbnRzLmRlZmluZSBt
dXN0IHJldGhyb3cgYW4gZXhjZXB0aW9uIHRocm93biB3aGlsZSBnZXR0aW5nIGNhbGxiYWNrcyBv
biB0aGUgY29uc3RydWN0b3IgcHJvdG90eXBlIAorUEFTUyBjdXN0b21FbGVtZW50cy5kZWZpbmUg
bXVzdCByZXRocm93IGFuIGV4Y2VwdGlvbiB0aHJvd24gd2hpbGUgY29udmVydGluZyBhIGNhbGxi
YWNrIHZhbHVlIHRvIEZ1bmN0aW9uIGNhbGxiYWNrIHR5cGUgCitQQVNTIGN1c3RvbUVsZW1lbnRz
LmRlZmluZSBtdXN0IGdldCAib2JzZXJ2ZWRBdHRyaWJ1dGVzIiBwcm9wZXJ0eSBvbiB0aGUgY29u
c3RydWN0b3IgcHJvdG90eXBlIHdoZW4gImF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayIgaXMgcHJl
c2VudCAKK1BBU1MgY3VzdG9tRWxlbWVudHMuZGVmaW5lIG11c3QgcmV0aHJvdyBhbiBleGNlcHRp
b24gdGhyb3duIHdoaWxlIGdldHRpbmcgb2JzZXJ2ZWRBdHRyaWJ1dGVzIG9uIHRoZSBjb25zdHJ1
Y3RvciBwcm90b3R5cGUgCitQQVNTIGN1c3RvbUVsZW1lbnRzLmRlZmluZSBtdXN0IHJldGhyb3cg
YW4gZXhjZXB0aW9uIHRocm93biB3aGlsZSBjb252ZXJ0aW5nIHRoZSB2YWx1ZSBvZiBvYnNlcnZl
ZEF0dHJpYnV0ZXMgdG8gc2VxdWVuY2U8RE9NU3RyaW5nPiAKK1BBU1MgY3VzdG9tRWxlbWVudHMu
ZGVmaW5lIG11c3QgcmV0aHJvdyBhbiBleGNlcHRpb24gdGhyb3duIHdoaWxlIGl0ZXJhdGluZyBv
dmVyIG9ic2VydmVkQXR0cmlidXRlcyB0byBzZXF1ZW5jZTxET01TdHJpbmc+IAorUEFTUyBjdXN0
b21FbGVtZW50cy5kZWZpbmUgbXVzdCByZXRocm93IGFuIGV4Y2VwdGlvbiB0aHJvd24gd2hpbGUg
cmV0cmlldmluZyBTeW1ib2wuaXRlcmF0b3Igb24gb2JzZXJ2ZWRBdHRyaWJ1dGVzIAorUEFTUyBj
dXN0b21FbGVtZW50cy5kZWZpbmUgbXVzdCBub3QgdGhyb3cgZXZlbiBpZiAib2JzZXJ2ZWRBdHRy
aWJ1dGVzIiBmYWlscyB0byBjb252ZXJ0IGlmICJhdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2siIGlz
IG5vdCBkZWZpbmVkIAorUEFTUyBjdXN0b21FbGVtZW50cy5kZWZpbmUgbXVzdCBkZWZpbmUgYW4g
aW5zdGFudGlhdGFibGUgY3VzdG9tIGVsZW1lbnQgCitQQVNTIGN1c3RvbUVsZW1lbnRzLmRlZmlu
ZSBtdXN0IHVwZ3JhZGUgZWxlbWVudHMgaW4gdGhlIHNoYWRvdy1pbmNsdWRpbmcgdHJlZSBvcmRl
ciAKK1BBU1MgQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5IGludGVyZmFjZSBtdXN0IGhhdmUgZ2V0IGFz
IGEgbWV0aG9kIAorUEFTUyBjdXN0b21FbGVtZW50cy5nZXQgbXVzdCByZXR1cm4gdW5kZWZpbmVk
IHdoZW4gdGhlIHJlZ2lzdHJ5IGRvZXMgbm90IGNvbnRhaW4gYW4gZW50cnkgd2l0aCB0aGUgZ2l2
ZW4gbmFtZSAKK1BBU1MgY3VzdG9tRWxlbWVudHMuZ2V0IG11c3QgcmV0dXJuIHVuZGVmaW5lZCB3
aGVuIHRoZSByZWdpc3RyeSBkb2VzIG5vdCBjb250YWluIGFuIGVudHJ5IHdpdGggdGhlIGdpdmVu
IG5hbWUgZXZlbiBpZiB0aGUgbmFtZSB3YXMgbm90IGEgdmFsaWQgY3VzdG9tIGVsZW1lbnQgbmFt
ZSAKK1BBU1MgY3VzdG9tRWxlbWVudHMuZ2V0IHJldHVybiB0aGUgY29uc3RydWN0b3Igb2YgdGhl
IGVudHJ5IHdpdGggdGhlIGdpdmVuIG5hbWUgd2hlbiB0aGVyZSBpcyBhIG1hdGNoaW5nIGVudHJ5
LiAKK1BBU1MgY3VzdG9tRWxlbWVudHMud2hlbkRlZmluZWQgbXVzdCByZXR1cm4gYSBwcm9taXNl
IGZvciBhIHZhbGlkIGN1c3RvbSBlbGVtZW50IG5hbWUgCitQQVNTIGN1c3RvbUVsZW1lbnRzLndo
ZW5EZWZpbmVkIG11c3QgcmV0dXJuIHRoZSBzYW1lIHByb21pc2UgZWFjaCB0aW1lIGludm9rZWQg
Zm9yIGEgdmFsaWQgY3VzdG9tIGVsZW1lbnQgbmFtZSB3aGljaCBoYXMgbm90IGJlZW4gZGVmaW5l
ZCAKK1BBU1MgY3VzdG9tRWxlbWVudHMud2hlbkRlZmluZWQgbXVzdCByZXR1cm4gYW4gdW5yZXNv
bHZlZCBwcm9taXNlIHdoZW4gdGhlIHJlZ2lzdHJ5IGRvZXMgbm90IGNvbnRhaW4gdGhlIGVudHJ5
IHdpdGggdGhlIGdpdmVuIG5hbWUgCitQQVNTIGN1c3RvbUVsZW1lbnRzLndoZW5EZWZpbmVkIG11
c3QgcmV0dXJuIGEgcmVqZWN0ZWQgcHJvbWlzZSB3aGVuIHRoZSBnaXZlbiBuYW1lIGlzIG5vdCBh
IHZhbGlkIGN1c3RvbSBlbGVtZW50IG5hbWUgCitQQVNTIGN1c3RvbUVsZW1lbnRzLndoZW5EZWZp
bmVkIG11c3QgcmV0dXJuIGEgcmVzb2x2ZWQgcHJvbWlzZSB3aGVuIHRoZSByZWdpc3RyeSBjb250
YWlucyB0aGUgZW50cnkgd2l0aCB0aGUgZ2l2ZW4gbmFtZSAKK1BBU1MgY3VzdG9tRWxlbWVudHMu
d2hlbkRlZmluZWQgbXVzdCByZXR1cm4gYSBuZXcgcmVzb2x2ZWQgcHJvbWlzZSBlYWNoIHRpbWUg
aW52b2tlZCB3aGVuIHRoZSByZWdpc3RyeSBjb250YWlucyB0aGUgZW50cnkgd2l0aCB0aGUgZ2l2
ZW4gbmFtZSAKK1BBU1MgQSBwcm9taXNlIHJldHVybmVkIGJ5IGN1c3RvbUVsZW1lbnRzLndoZW5E
ZWZpbmVkIG11c3QgYmUgcmVzb2x2ZWQgYnkgImRlZmluZSIgCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL0N1
c3RvbUVsZW1lbnRSZWdpc3RyeS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5Lmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uOGYwZjJhZWM1NWNiZDk5OTkxODViODA4NDcyNzg3ZDk2ZjI1NjU1MgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3VzdG9tLWVsZW1lbnRzL0N1c3RvbUVsZW1lbnRSZWdpc3RyeS5odG1sCkBAIC0wLDAgKzEs
NTgwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8dGl0bGU+Q3VzdG9tIEVs
ZW1lbnRzOiBDdXN0b21FbGVtZW50UmVnaXN0cnkgaW50ZXJmYWNlPC90aXRsZT4KKzxtZXRhIG5h
bWU9ImF1dGhvciIgdGl0bGU9IlJ5b3N1a2UgTml3YSIgaHJlZj0ibWFpbHRvOnJuaXdhQHdlYmtp
dC5vcmciPgorPG1ldGEgbmFtZT0iYXNzZXJ0IiBjb250ZW50PSJDdXN0b21FbGVtZW50UmVnaXN0
cnkgaW50ZXJmYWNlIG11c3QgZXhpc3QiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291
cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4v
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorPGRpdiBpZD0ibG9nIj48L2Rpdj4KKzxzY3JpcHQ+CisKK3Rlc3QoZnVuY3Rpb24gKCkgewor
ICAgIGFzc2VydF90cnVlKCdkZWZpbmUnIGluIEN1c3RvbUVsZW1lbnRSZWdpc3RyeS5wcm90b3R5
cGUsICciZGVmaW5lIiBleGlzdHMgb24gQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5LnByb3RvdHlwZScp
OworICAgIGFzc2VydF90cnVlKCdkZWZpbmUnIGluIGN1c3RvbUVsZW1lbnRzLCAnImRlZmluZSIg
ZXhpc3RzIG9uIHdpbmRvdy5jdXN0b21FbGVtZW50cycpOworfSwgJ0N1c3RvbUVsZW1lbnRSZWdp
c3RyeSBpbnRlcmZhY2UgbXVzdCBoYXZlIGRlZmluZSBhcyBhIG1ldGhvZCcpOworCit0ZXN0KGZ1
bmN0aW9uICgpIHsKKyAgICBhc3NlcnRfdGhyb3dzKHsnbmFtZSc6ICdUeXBlRXJyb3InfSwgZnVu
Y3Rpb24gKCkgeyBjdXN0b21FbGVtZW50cy5kZWZpbmUoJ2JhZG5hbWUnLCAxKTsgfSwKKyAgICAg
ICAgJ2N1c3RvbUVsZW1lbnRzLmRlZmluZSBtdXN0IHRocm93IGEgVHlwZUVycm9yIHdoZW4gdGhl
IGVsZW1lbnQgaW50ZXJmYWNlIGlzIGEgbnVtYmVyJyk7CisgICAgYXNzZXJ0X3Rocm93cyh7J25h
bWUnOiAnVHlwZUVycm9yJ30sIGZ1bmN0aW9uICgpIHsgY3VzdG9tRWxlbWVudHMuZGVmaW5lKCdi
YWRuYW1lJywgJzEyMycpOyB9LAorICAgICAgICAnY3VzdG9tRWxlbWVudHMuZGVmaW5lIG11c3Qg
dGhyb3cgYSBUeXBlRXJyb3Igd2hlbiB0aGUgZWxlbWVudCBpbnRlcmZhY2UgaXMgYSBzdHJpbmcn
KTsKKyAgICBhc3NlcnRfdGhyb3dzKHsnbmFtZSc6ICdUeXBlRXJyb3InfSwgZnVuY3Rpb24gKCkg
eyBjdXN0b21FbGVtZW50cy5kZWZpbmUoJ2JhZG5hbWUnLCB7fSk7IH0sCisgICAgICAgICdjdXN0
b21FbGVtZW50cy5kZWZpbmUgbXVzdCB0aHJvdyBhIFR5cGVFcnJvciB3aGVuIHRoZSBlbGVtZW50
IGludGVyZmFjZSBpcyBhbiBvYmplY3QnKTsKKyAgICBhc3NlcnRfdGhyb3dzKHsnbmFtZSc6ICdU
eXBlRXJyb3InfSwgZnVuY3Rpb24gKCkgeyBjdXN0b21FbGVtZW50cy5kZWZpbmUoJ2JhZG5hbWUn
LCBbXSk7IH0sCisgICAgICAgICdjdXN0b21FbGVtZW50cy5kZWZpbmUgbXVzdCB0aHJvdyBhIFR5
cGVFcnJvciB3aGVuIHRoZSBlbGVtZW50IGludGVyZmFjZSBpcyBhbiBhcnJheScpOworfSwgJ2N1
c3RvbUVsZW1lbnRzLmRlZmluZSBtdXN0IHRocm93IHdoZW4gdGhlIGVsZW1lbnQgaW50ZXJmYWNl
IGlzIG5vdCBhIGNvbnN0cnVjdG9yJyk7CisKK3Rlc3QoZnVuY3Rpb24gKCkgeworICAgIGN1c3Rv
bUVsZW1lbnRzLmRlZmluZSgnY3VzdG9tLWh0bWwtZWxlbWVudCcsIEhUTUxFbGVtZW50KTsKK30s
ICdjdXN0b21FbGVtZW50cy5kZWZpbmUgbXVzdCBub3QgdGhyb3cgdGhlIGNvbnN0cnVjdG9yIGlz
IEhUTUxFbGVtZW50Jyk7CisKK3Rlc3QoZnVuY3Rpb24gKCkgeworICAgIGNsYXNzIE15Q3VzdG9t
RWxlbWVudCBleHRlbmRzIEhUTUxFbGVtZW50IHt9OworCisgICAgYXNzZXJ0X3Rocm93cyh7J25h
bWUnOiAnU3ludGF4RXJyb3InfSwgZnVuY3Rpb24gKCkgeyBjdXN0b21FbGVtZW50cy5kZWZpbmUo
bnVsbCwgTXlDdXN0b21FbGVtZW50KTsgfSwKKyAgICAgICAgJ2N1c3RvbUVsZW1lbnRzLmRlZmlu
ZSBtdXN0IHRocm93IGEgU3ludGF4RXJyb3IgaWYgdGhlIHRhZyBuYW1lIGlzIG51bGwnKTsKKyAg
ICBhc3NlcnRfdGhyb3dzKHsnbmFtZSc6ICdTeW50YXhFcnJvcid9LCBmdW5jdGlvbiAoKSB7IGN1
c3RvbUVsZW1lbnRzLmRlZmluZSgnJywgTXlDdXN0b21FbGVtZW50KTsgfSwKKyAgICAgICAgJ2N1
c3RvbUVsZW1lbnRzLmRlZmluZSBtdXN0IHRocm93IGEgU3ludGF4RXJyb3IgaWYgdGhlIHRhZyBu
YW1lIGlzIGVtcHR5Jyk7CisgICAgYXNzZXJ0X3Rocm93cyh7J25hbWUnOiAnU3ludGF4RXJyb3In
fSwgZnVuY3Rpb24gKCkgeyBjdXN0b21FbGVtZW50cy5kZWZpbmUoJ2FiYycsIE15Q3VzdG9tRWxl
bWVudCk7IH0sCisgICAgICAgICdjdXN0b21FbGVtZW50cy5kZWZpbmUgbXVzdCB0aHJvdyBhIFN5
bnRheEVycm9yIGlmIHRoZSB0YWcgbmFtZSBkb2VzIG5vdCBjb250YWluICItIicpOworICAgIGFz
c2VydF90aHJvd3MoeyduYW1lJzogJ1N5bnRheEVycm9yJ30sIGZ1bmN0aW9uICgpIHsgY3VzdG9t
RWxlbWVudHMuZGVmaW5lKCdhLUJjJywgTXlDdXN0b21FbGVtZW50KTsgfSwKKyAgICAgICAgJ2N1
c3RvbUVsZW1lbnRzLmRlZmluZSBtdXN0IHRocm93IGEgU3ludGF4RXJyb3IgaWYgdGhlIHRhZyBu
YW1lIGNvbnRhaW5zIGFuIHVwcGVyIGNhc2UgbGV0dGVyJyk7CisKKyAgICB2YXIgYnVpbHRpblRh
Z05hbWVzID0gWworICAgICAgICAnYW5ub3RhdGlvbi14bWwnLAorICAgICAgICAnY29sb3ItcHJv
ZmlsZScsCisgICAgICAgICdmb250LWZhY2UnLAorICAgICAgICAnZm9udC1mYWNlLXNyYycsCisg
ICAgICAgICdmb250LWZhY2UtdXJpJywKKyAgICAgICAgJ2ZvbnQtZmFjZS1mb3JtYXQnLAorICAg
ICAgICAnZm9udC1mYWNlLW5hbWUnLAorICAgICAgICAnbWlzc2luZy1nbHlwaCcKKyAgICBdOwor
CisgICAgZm9yICh2YXIgdGFnTmFtZSBvZiBidWlsdGluVGFnTmFtZXMpIHsKKyAgICAgICAgYXNz
ZXJ0X3Rocm93cyh7J25hbWUnOiAnU3ludGF4RXJyb3InfSwgZnVuY3Rpb24gKCkgeyBjdXN0b21F
bGVtZW50cy5kZWZpbmUodGFnTmFtZSwgTXlDdXN0b21FbGVtZW50KTsgfSwKKyAgICAgICAgICAg
ICdjdXN0b21FbGVtZW50cy5kZWZpbmUgbXVzdCB0aHJvdyBhIFN5bnRheEVycm9yIGlmIHRoZSB0
YWcgbmFtZSBpcyAiJyArIHRhZ05hbWUgKyAnIicpOworICAgIH0KKworfSwgJ2N1c3RvbUVsZW1l
bnRzLmRlZmluZSBtdXN0IHRocm93IHdpdGggYW4gaW52YWxpZCBuYW1lJyk7CisKK3Rlc3QoZnVu
Y3Rpb24gKCkgeworICAgIGNsYXNzIFNvbWVDdXN0b21FbGVtZW50IGV4dGVuZHMgSFRNTEVsZW1l
bnQge307CisKKyAgICB2YXIgY2FsbHMgPSBbXTsKKyAgICB2YXIgT3RoZXJDdXN0b21FbGVtZW50
ID0gbmV3IFByb3h5KGNsYXNzIGV4dGVuZHMgSFRNTEVsZW1lbnQge30sIHsKKyAgICAgICAgZ2V0
OiBmdW5jdGlvbiAodGFyZ2V0LCBuYW1lKSB7CisgICAgICAgICAgICBjYWxscy5wdXNoKG5hbWUp
OworICAgICAgICAgICAgcmV0dXJuIHRhcmdldFtuYW1lXTsKKyAgICAgICAgfQorICAgIH0pCisK
KyAgICBjdXN0b21FbGVtZW50cy5kZWZpbmUoJ3NvbWUtY3VzdG9tLWVsZW1lbnQnLCBTb21lQ3Vz
dG9tRWxlbWVudCk7CisgICAgYXNzZXJ0X3Rocm93cyh7J25hbWUnOiAnTm90U3VwcG9ydGVkRXJy
b3InfSwgZnVuY3Rpb24gKCkgeyBjdXN0b21FbGVtZW50cy5kZWZpbmUoJ3NvbWUtY3VzdG9tLWVs
ZW1lbnQnLCBPdGhlckN1c3RvbUVsZW1lbnQpOyB9LAorICAgICAgICAnY3VzdG9tRWxlbWVudHMu
ZGVmaW5lIG11c3QgdGhyb3cgYSBOb3RTdXBwb3J0ZWRFcnJvciBpZiB0aGUgc3BlY2lmaWVkIHRh
ZyBuYW1lIGlzIGFscmVhZHkgdXNlZCcpOworICAgIGFzc2VydF9hcnJheV9lcXVhbHMoY2FsbHMs
IFtdLCAnY3VzdG9tRWxlbWVudHMuZGVmaW5lIG11c3QgdmFsaWRhdGUgdGhlIGN1c3RvbSBlbGVt
ZW50IG5hbWUgYmVmb3JlIGdldHRpbmcgdGhlIHByb3RvdHlwZSBvZiB0aGUgY29uc3RydWN0b3In
KTsKKworfSwgJ2N1c3RvbUVsZW1lbnRzLmRlZmluZSBtdXN0IHRocm93IHdoZW4gdGhlcmUgaXMg
YWxyZWFkeSBhIGN1c3RvbSBlbGVtZW50IG9mIHRoZSBzYW1lIG5hbWUnKTsKKwordGVzdChmdW5j
dGlvbiAoKSB7CisgICAgY2xhc3MgQW5vdGhlckN1c3RvbUVsZW1lbnQgZXh0ZW5kcyBIVE1MRWxl
bWVudCB7fTsKKworICAgIGN1c3RvbUVsZW1lbnRzLmRlZmluZSgnYW5vdGhlci1jdXN0b20tZWxl
bWVudCcsIEFub3RoZXJDdXN0b21FbGVtZW50KTsKKyAgICBhc3NlcnRfdGhyb3dzKHsnbmFtZSc6
ICdOb3RTdXBwb3J0ZWRFcnJvcid9LCBmdW5jdGlvbiAoKSB7IGN1c3RvbUVsZW1lbnRzLmRlZmlu
ZSgnc29tZS1vdGhlci1lbGVtZW50JywgQW5vdGhlckN1c3RvbUVsZW1lbnQpOyB9LAorICAgICAg
ICAnY3VzdG9tRWxlbWVudHMuZGVmaW5lIG11c3QgdGhyb3cgYSBOb3RTdXBwb3J0ZWRFcnJvciBp
ZiB0aGUgc3BlY2lmaWVkIGNsYXNzIGFscmVhZHkgZGVmaW5lcyBhbiBlbGVtZW50Jyk7CisKK30s
ICdjdXN0b21FbGVtZW50cy5kZWZpbmUgbXVzdCB0aHJvdyBhIE5vdFN1cHBvcnRlZEVycm9yIHdo
ZW4gdGhlcmUgaXMgYWxyZWFkeSBhIGN1c3RvbSBlbGVtZW50IHdpdGggdGhlIHNhbWUgY2xhc3Mn
KTsKKwordGVzdChmdW5jdGlvbiAoKSB7CisgICAgdmFyIG91dGVyQ2FsbHMgPSBbXTsKKyAgICB2
YXIgT3V0ZXJDdXN0b21FbGVtZW50ID0gbmV3IFByb3h5KGNsYXNzIGV4dGVuZHMgSFRNTEVsZW1l
bnQgeyB9LCB7CisgICAgICAgIGdldDogZnVuY3Rpb24gKHRhcmdldCwgbmFtZSkgeworICAgICAg
ICAgICAgb3V0ZXJDYWxscy5wdXNoKG5hbWUpOworICAgICAgICAgICAgY3VzdG9tRWxlbWVudHMu
ZGVmaW5lKCdpbm5lci1jdXN0b20tZWxlbWVudCcsIElubmVyQ3VzdG9tRWxlbWVudCk7CisgICAg
ICAgICAgICByZXR1cm4gdGFyZ2V0W25hbWVdOworICAgICAgICB9CisgICAgfSk7CisgICAgdmFy
IGlubmVyQ2FsbHMgPSBbXTsKKyAgICB2YXIgSW5uZXJDdXN0b21FbGVtZW50ID0gbmV3IFByb3h5
KGNsYXNzIGV4dGVuZHMgSFRNTEVsZW1lbnQgeyB9LCB7CisgICAgICAgIGdldDogZnVuY3Rpb24g
KHRhcmdldCwgbmFtZSkgeworICAgICAgICAgICAgb3V0ZXJDYWxscy5wdXNoKG5hbWUpOworICAg
ICAgICAgICAgcmV0dXJuIHRhcmdldFtuYW1lXTsKKyAgICAgICAgfQorICAgIH0pOworCisgICAg
YXNzZXJ0X3Rocm93cyh7J25hbWUnOiAnTm90U3VwcG9ydGVkRXJyb3InfSwgZnVuY3Rpb24gKCkg
eyBjdXN0b21FbGVtZW50cy5kZWZpbmUoJ291dGVyLWN1c3RvbS1lbGVtZW50JywgT3V0ZXJDdXN0
b21FbGVtZW50KTsgfSwKKyAgICAgICAgJ2N1c3RvbUVsZW1lbnRzLmRlZmluZSBtdXN0IHRocm93
IGEgTm90U3VwcG9ydGVkRXJyb3IgaWYgdGhlIHNwZWNpZmllZCBjbGFzcyBhbHJlYWR5IGRlZmlu
ZXMgYW4gZWxlbWVudCcpOworICAgIGFzc2VydF9hcnJheV9lcXVhbHMob3V0ZXJDYWxscywgWydw
cm90b3R5cGUnXSwgJ2N1c3RvbUVsZW1lbnRzLmRlZmluZSBtdXN0IGdldCAicHJvdG90eXBlIicp
OworICAgIGFzc2VydF9hcnJheV9lcXVhbHMoaW5uZXJDYWxscywgW10sCisgICAgICAgICdjdXN0
b21FbGVtZW50cy5kZWZpbmUgbXVzdCB0aHJvdyBhIE5vdFN1cHBvcnRlZEVycm9yIHdoZW4gZWxl
bWVudCBkZWZpbml0aW9uIGlzIHJ1bm5pbmcgZmxhZyBpcyBzZXQnCisgICAgICAgICsgJyBiZWZv
cmUgZ2V0dGluZyB0aGUgcHJvdG90eXBlIG9mIHRoZSBjb25zdHJ1Y3RvcicpOworCit9LCAnY3Vz
dG9tRWxlbWVudHMuZGVmaW5lIG11c3QgdGhyb3cgYSBOb3RTdXBwb3J0ZWRFcnJvciB3aGVuIGVs
ZW1lbnQgZGVmaW5pdGlvbiBpcyBydW5uaW5nIGZsYWcgaXMgc2V0Jyk7CisKK3Rlc3QoZnVuY3Rp
b24gKCkgeworICAgIHZhciBjYWxscyA9IFtdOworICAgIHZhciBFbGVtZW50V2l0aEJhZElubmVy
Q29uc3RydWN0b3IgPSBuZXcgUHJveHkoY2xhc3MgZXh0ZW5kcyBIVE1MRWxlbWVudCB7IH0sIHsK
KyAgICAgICAgZ2V0OiBmdW5jdGlvbiAodGFyZ2V0LCBuYW1lKSB7CisgICAgICAgICAgICBjYWxs
cy5wdXNoKG5hbWUpOworICAgICAgICAgICAgY3VzdG9tRWxlbWVudHMuZGVmaW5lKCdpbm5lci1j
dXN0b20tZWxlbWVudCcsIDEpOworICAgICAgICAgICAgcmV0dXJuIHRhcmdldFtuYW1lXTsKKyAg
ICAgICAgfQorICAgIH0pOworCisgICAgYXNzZXJ0X3Rocm93cyh7J25hbWUnOiAnVHlwZUVycm9y
J30sIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgY3VzdG9tRWxlbWVudHMuZGVmaW5lKCdlbGVtZW50
LXdpdGgtYmFkLWlubmVyLWNvbnN0cnVjdG9yJywgRWxlbWVudFdpdGhCYWRJbm5lckNvbnN0cnVj
dG9yKTsKKyAgICB9LCAnY3VzdG9tRWxlbWVudHMuZGVmaW5lIG11c3QgdGhyb3cgYSBOb3RTdXBw
b3J0ZWRFcnJvciBpZiBJc0NvbnN0cnVjdG9yKGNvbnN0cnVjdG9yKSBpcyBmYWxzZScpOworCisg
ICAgYXNzZXJ0X2FycmF5X2VxdWFscyhjYWxscywgWydwcm90b3R5cGUnXSwgJ2N1c3RvbUVsZW1l
bnRzLmRlZmluZSBtdXN0IGdldCAicHJvdG90eXBlIicpOworfSwgJ2N1c3RvbUVsZW1lbnRzLmRl
ZmluZSBtdXN0IGNoZWNrIElzQ29uc3RydWN0b3Igb24gdGhlIGNvbnN0cnVjdG9yIGJlZm9yZSBj
aGVja2luZyB0aGUgZWxlbWVudCBkZWZpbml0aW9uIGlzIHJ1bm5pbmcgZmxhZycpOworCit0ZXN0
KGZ1bmN0aW9uICgpIHsKKyAgICB2YXIgY2FsbHMgPSBbXTsKKyAgICB2YXIgRWxlbWVudFdpdGhC
YWRJbm5lck5hbWUgPSBuZXcgUHJveHkoY2xhc3MgZXh0ZW5kcyBIVE1MRWxlbWVudCB7IH0sIHsK
KyAgICAgICAgZ2V0OiBmdW5jdGlvbiAodGFyZ2V0LCBuYW1lKSB7CisgICAgICAgICAgICBjYWxs
cy5wdXNoKG5hbWUpOworICAgICAgICAgICAgY3VzdG9tRWxlbWVudHMuZGVmaW5lKCdiYWRuYW1l
JywgY2xhc3MgZXh0ZW5kcyBIVE1MRWxlbWVudCB7fSk7CisgICAgICAgICAgICByZXR1cm4gdGFy
Z2V0W25hbWVdOworICAgICAgICB9CisgICAgfSk7CisKKyAgICBhc3NlcnRfdGhyb3dzKHsnbmFt
ZSc6ICdTeW50YXhFcnJvcid9LCBmdW5jdGlvbiAoKSB7CisgICAgICAgIGN1c3RvbUVsZW1lbnRz
LmRlZmluZSgnZWxlbWVudC13aXRoLWJhZC1pbm5lci1uYW1lJywgRWxlbWVudFdpdGhCYWRJbm5l
ck5hbWUpOworICAgIH0sICdjdXN0b21FbGVtZW50cy5kZWZpbmUgbXVzdCB0aHJvdyBhIFN5bnRh
eEVycm9yIGlmIHRoZSBzcGVjaWZpZWQgbmFtZSBpcyBub3QgYSB2YWxpZCBjdXN0b20gZWxlbWVu
dCBuYW1lJyk7CisKKyAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGNhbGxzLCBbJ3Byb3RvdHlwZSdd
LCAnY3VzdG9tRWxlbWVudHMuZGVmaW5lIG11c3QgZ2V0ICJwcm90b3R5cGUiJyk7Cit9LCAnY3Vz
dG9tRWxlbWVudHMuZGVmaW5lIG11c3QgdmFsaWRhdGUgdGhlIGN1c3RvbSBlbGVtZW50IG5hbWUg
YmVmb3JlIGNoZWNraW5nIHRoZSBlbGVtZW50IGRlZmluaXRpb24gaXMgcnVubmluZyBmbGFnJyk7
CisKK3Rlc3QoZnVuY3Rpb24gKCkgeworICAgIHZhciB1bnJlc29sdmVkRWxlbWVudCA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoJ2NvbnN0cnVjdG9yLWNhbGxzLWRlZmluZScpOworICAgIGRvY3Vt
ZW50LmJvZHkuYXBwZW5kQ2hpbGQodW5yZXNvbHZlZEVsZW1lbnQpOworICAgIHZhciBlbGVtZW50
VXBncmFkZWREdXJpbmdVcGdyYWRlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGVmaW5lZC1k
dXJpbmctdXBncmFkZScpOworICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWxlbWVudFVw
Z3JhZGVkRHVyaW5nVXBncmFkZSk7CisKKyAgICB2YXIgRGVmaW5lZER1cmluZ1VwZ3JhZGUgPSBj
bGFzcyBleHRlbmRzIEhUTUxFbGVtZW50IHsgfTsKKworICAgIGNsYXNzIENvbnN0cnVjdG9yQ2Fs
bHNEZWZpbmUgZXh0ZW5kcyBIVE1MRWxlbWVudCB7CisgICAgICAgIGNvbnN0cnVjdG9yKCkgewor
ICAgICAgICAgICAgY3VzdG9tRWxlbWVudHMuZGVmaW5lKCdkZWZpbmVkLWR1cmluZy11cGdyYWRl
JywgRGVmaW5lZER1cmluZ1VwZ3JhZGUpOworICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKHVucmVz
b2x2ZWRFbGVtZW50IGluc3RhbmNlb2YgQ29uc3RydWN0b3JDYWxsc0RlZmluZSk7CisgICAgICAg
ICAgICBhc3NlcnRfdHJ1ZShlbGVtZW50VXBncmFkZWREdXJpbmdVcGdyYWRlIGluc3RhbmNlb2Yg
RGVmaW5lZER1cmluZ1VwZ3JhZGUpOworICAgICAgICAgICAgc3VwZXIoKTsKKyAgICAgICAgICAg
IGFzc2VydF90cnVlKHVucmVzb2x2ZWRFbGVtZW50IGluc3RhbmNlb2YgQ29uc3RydWN0b3JDYWxs
c0RlZmluZSk7CisgICAgICAgICAgICBhc3NlcnRfdHJ1ZShlbGVtZW50VXBncmFkZWREdXJpbmdV
cGdyYWRlIGluc3RhbmNlb2YgRGVmaW5lZER1cmluZ1VwZ3JhZGUpOworICAgICAgICB9CisgICAg
fQorCisgICAgYXNzZXJ0X2ZhbHNlKHVucmVzb2x2ZWRFbGVtZW50IGluc3RhbmNlb2YgQ29uc3Ry
dWN0b3JDYWxsc0RlZmluZSk7CisgICAgYXNzZXJ0X2ZhbHNlKGVsZW1lbnRVcGdyYWRlZER1cmlu
Z1VwZ3JhZGUgaW5zdGFuY2VvZiBEZWZpbmVkRHVyaW5nVXBncmFkZSk7CisKKyAgICBjdXN0b21F
bGVtZW50cy5kZWZpbmUoJ2NvbnN0cnVjdG9yLWNhbGxzLWRlZmluZScsIENvbnN0cnVjdG9yQ2Fs
bHNEZWZpbmUpOworfSwgJ2N1c3RvbUVsZW1lbnRzLmRlZmluZSB1bnNldCB0aGUgZWxlbWVudCBk
ZWZpbml0aW9uIGlzIHJ1bm5pbmcgZmxhZyBiZWZvcmUgdXBncmFkaW5nIGN1c3RvbSBlbGVtZW50
cycpOworCisoZnVuY3Rpb24gKCkgeworICAgIHZhciB0ZXN0Q2FzZSA9IGFzeW5jX3Rlc3QoJ2N1
c3RvbUVsZW1lbnRzLmRlZmluZSBtdXN0IG5vdCB0aHJvdycKKyAgICAgICAgKycgd2hlbiBkZWZp
bmluZyBhbm90aGVyIGN1c3RvbSBlbGVtZW50IGluIGEgZGlmZmVyZW50IGdsb2JhbCBvYmplY3Qg
ZHVyaW5nIEdldChjb25zdHJ1Y3RvciwgInByb3RvdHlwZSIpJywge3RpbWVvdXQ6IDEwMH0pOwor
CisgICAgdmFyIGlmcmFtZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lmcmFtZScpOworICAg
IGlmcmFtZS5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7CisgICAgICAgIHRlc3RDYXNlLnN0ZXAoZnVu
Y3Rpb24gKCkgeworICAgICAgICAgICAgdmFyIElubmVyQ3VzdG9tRWxlbWVudCA9IGNsYXNzIGV4
dGVuZHMgaWZyYW1lLmNvbnRlbnRXaW5kb3cuSFRNTEVsZW1lbnQge307CisgICAgICAgICAgICB2
YXIgY2FsbHMgPSBbXTsKKyAgICAgICAgICAgIHZhciBwcm94eSA9IG5ldyBQcm94eShjbGFzcyBl
eHRlbmRzIEhUTUxFbGVtZW50IHsgfSwgeworICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24g
KHRhcmdldCwgbmFtZSkgeworICAgICAgICAgICAgICAgICAgICBjYWxscy5wdXNoKG5hbWUpOwor
ICAgICAgICAgICAgICAgICAgICBpZnJhbWUuY29udGVudFdpbmRvdy5jdXN0b21FbGVtZW50cy5k
ZWZpbmUoJ2Fub3RoZXItY3VzdG9tLWVsZW1lbnQnLCBJbm5lckN1c3RvbUVsZW1lbnQpOworICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gdGFyZ2V0W25hbWVdOworICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIH0pCisgICAgICAgICAgICBjdXN0b21FbGVtZW50cy5kZWZpbmUoJ2VsZW1l
bnQtd2l0aC1pbm5lci1lbGVtZW50LWRlZmluZScsIHByb3h5KTsKKyAgICAgICAgICAgIGFzc2Vy
dF9hcnJheV9lcXVhbHMoY2FsbHMsIFsncHJvdG90eXBlJ10sICdjdXN0b21FbGVtZW50cy5kZWZp
bmUgbXVzdCBnZXQgInByb3RvdHlwZSInKTsKKyAgICAgICAgICAgIGFzc2VydF90cnVlKGlmcmFt
ZS5jb250ZW50RG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYW5vdGhlci1jdXN0b20tZWxlbWVudCcp
IGluc3RhbmNlb2YgSW5uZXJDdXN0b21FbGVtZW50KTsKKyAgICAgICAgfSk7CisgICAgICAgIGRv
Y3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoaWZyYW1lKTsKKyAgICAgICAgdGVzdENhc2UuZG9uZSgp
OworICAgIH0KKworICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaWZyYW1lKTsKK30pKCk7
CisKK3Rlc3QoZnVuY3Rpb24gKCkgeworICAgIHZhciBjYWxscyA9IFtdOworICAgIHZhciBFbGVt
ZW50V2l0aEJhZElubmVyTmFtZSA9IG5ldyBQcm94eShjbGFzcyBleHRlbmRzIEhUTUxFbGVtZW50
IHsgfSwgeworICAgICAgICBnZXQ6IGZ1bmN0aW9uICh0YXJnZXQsIG5hbWUpIHsKKyAgICAgICAg
ICAgIGNhbGxzLnB1c2gobmFtZSk7CisgICAgICAgICAgICBjdXN0b21FbGVtZW50cy5kZWZpbmUo
J2JhZG5hbWUnLCBjbGFzcyBleHRlbmRzIEhUTUxFbGVtZW50IHt9KTsKKyAgICAgICAgICAgIHJl
dHVybiB0YXJnZXRbbmFtZV07CisgICAgICAgIH0KKyAgICB9KTsKKworICAgIGFzc2VydF90aHJv
d3MoeyduYW1lJzogJ1N5bnRheEVycm9yJ30sIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgY3VzdG9t
RWxlbWVudHMuZGVmaW5lKCdlbGVtZW50LXdpdGgtYmFkLWlubmVyLW5hbWUnLCBFbGVtZW50V2l0
aEJhZElubmVyTmFtZSk7CisgICAgfSwgJ2N1c3RvbUVsZW1lbnRzLmRlZmluZSBtdXN0IHRocm93
IGEgU3ludGF4RXJyb3IgaWYgdGhlIHNwZWNpZmllZCBuYW1lIGlzIG5vdCBhIHZhbGlkIGN1c3Rv
bSBlbGVtZW50IG5hbWUnKTsKKworICAgIGFzc2VydF9hcnJheV9lcXVhbHMoY2FsbHMsIFsncHJv
dG90eXBlJ10sICdjdXN0b21FbGVtZW50cy5kZWZpbmUgbXVzdCBnZXQgInByb3RvdHlwZSInKTsK
K30sICcnKTsKKwordGVzdChmdW5jdGlvbiAoKSB7CisgICAgdmFyIGNhbGxzID0gW107CisgICAg
dmFyIHByb3h5ID0gbmV3IFByb3h5KGNsYXNzIGV4dGVuZHMgSFRNTEVsZW1lbnQgeyB9LCB7Cisg
ICAgICAgIGdldDogZnVuY3Rpb24gKHRhcmdldCwgbmFtZSkgeworICAgICAgICAgICAgY2FsbHMu
cHVzaChuYW1lKTsKKyAgICAgICAgICAgIHJldHVybiB0YXJnZXRbbmFtZV07CisgICAgICAgIH0K
KyAgICB9KTsKKyAgICBjdXN0b21FbGVtZW50cy5kZWZpbmUoJ3Byb3h5LWVsZW1lbnQnLCBwcm94
eSk7CisgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhjYWxscywgWydwcm90b3R5cGUnXSk7Cit9LCAn
Y3VzdG9tRWxlbWVudHMuZGVmaW5lIG11c3QgZ2V0ICJwcm90b3R5cGUiIHByb3BlcnR5IG9mIHRo
ZSBjb25zdHJ1Y3RvcicpOworCit0ZXN0KGZ1bmN0aW9uICgpIHsKKyAgICB2YXIgcHJveHkgPSBu
ZXcgUHJveHkoY2xhc3MgZXh0ZW5kcyBIVE1MRWxlbWVudCB7IH0sIHsKKyAgICAgICAgZ2V0OiBm
dW5jdGlvbiAodGFyZ2V0LCBuYW1lKSB7CisgICAgICAgICAgICB0aHJvdyB7bmFtZTogJ2V4cGVj
dGVkRXJyb3InfTsKKyAgICAgICAgfQorICAgIH0pOworICAgIGFzc2VydF90aHJvd3MoeyduYW1l
JzogJ2V4cGVjdGVkRXJyb3InfSwgZnVuY3Rpb24gKCkgeyBjdXN0b21FbGVtZW50cy5kZWZpbmUo
J2VsZW1lbnQtd2l0aC1zdHJpbmctcHJvdG90eXBlJywgcHJveHkpOyB9KTsKK30sICdjdXN0b21F
bGVtZW50cy5kZWZpbmUgbXVzdCByZXRocm93IGFuIGV4Y2VwdGlvbiB0aHJvd24gd2hpbGUgZ2V0
dGluZyAicHJvdG90eXBlIiBwcm9wZXJ0eSBvZiB0aGUgY29uc3RydWN0b3InKTsKKwordGVzdChm
dW5jdGlvbiAoKSB7CisgICAgdmFyIHJldHVybmVkVmFsdWU7CisgICAgdmFyIHByb3h5ID0gbmV3
IFByb3h5KGNsYXNzIGV4dGVuZHMgSFRNTEVsZW1lbnQgeyB9LCB7CisgICAgICAgIGdldDogZnVu
Y3Rpb24gKHRhcmdldCwgbmFtZSkgeyByZXR1cm4gcmV0dXJuZWRWYWx1ZTsgfQorICAgIH0pOwor
CisgICAgcmV0dXJuZWRWYWx1ZSA9IG51bGw7CisgICAgYXNzZXJ0X3Rocm93cyh7J25hbWUnOiAn
VHlwZUVycm9yJ30sIGZ1bmN0aW9uICgpIHsgY3VzdG9tRWxlbWVudHMuZGVmaW5lKCdlbGVtZW50
LXdpdGgtc3RyaW5nLXByb3RvdHlwZScsIHByb3h5KTsgfSwKKyAgICAgICAgJ2N1c3RvbUVsZW1l
bnRzLmRlZmluZSBtdXN0IHRocm93IHdoZW4gInByb3RvdHlwZSIgcHJvcGVydHkgb2YgdGhlIGNv
bnN0cnVjdG9yIGlzIG51bGwnKTsKKyAgICByZXR1cm5lZFZhbHVlID0gdW5kZWZpbmVkOworICAg
IGFzc2VydF90aHJvd3MoeyduYW1lJzogJ1R5cGVFcnJvcid9LCBmdW5jdGlvbiAoKSB7IGN1c3Rv
bUVsZW1lbnRzLmRlZmluZSgnZWxlbWVudC13aXRoLXN0cmluZy1wcm90b3R5cGUnLCBwcm94eSk7
IH0sCisgICAgICAgICdjdXN0b21FbGVtZW50cy5kZWZpbmUgbXVzdCB0aHJvdyB3aGVuICJwcm90
b3R5cGUiIHByb3BlcnR5IG9mIHRoZSBjb25zdHJ1Y3RvciBpcyB1bmRlZmluZWQnKTsKKyAgICBy
ZXR1cm5lZFZhbHVlID0gJ2hlbGxvJzsKKyAgICBhc3NlcnRfdGhyb3dzKHsnbmFtZSc6ICdUeXBl
RXJyb3InfSwgZnVuY3Rpb24gKCkgeyBjdXN0b21FbGVtZW50cy5kZWZpbmUoJ2VsZW1lbnQtd2l0
aC1zdHJpbmctcHJvdG90eXBlJywgcHJveHkpOyB9LAorICAgICAgICAnY3VzdG9tRWxlbWVudHMu
ZGVmaW5lIG11c3QgdGhyb3cgd2hlbiAicHJvdG90eXBlIiBwcm9wZXJ0eSBvZiB0aGUgY29uc3Ry
dWN0b3IgaXMgYSBzdHJpbmcnKTsKKyAgICByZXR1cm5lZFZhbHVlID0gMTsKKyAgICBhc3NlcnRf
dGhyb3dzKHsnbmFtZSc6ICdUeXBlRXJyb3InfSwgZnVuY3Rpb24gKCkgeyBjdXN0b21FbGVtZW50
cy5kZWZpbmUoJ2VsZW1lbnQtd2l0aC1zdHJpbmctcHJvdG90eXBlJywgcHJveHkpOyB9LAorICAg
ICAgICAnY3VzdG9tRWxlbWVudHMuZGVmaW5lIG11c3QgdGhyb3cgd2hlbiAicHJvdG90eXBlIiBw
cm9wZXJ0eSBvZiB0aGUgY29uc3RydWN0b3IgaXMgYSBudW1iZXInKTsKKworfSwgJ2N1c3RvbUVs
ZW1lbnRzLmRlZmluZSBtdXN0IHRocm93IHdoZW4gInByb3RvdHlwZSIgcHJvcGVydHkgb2YgdGhl
IGNvbnN0cnVjdG9yIGlzIG5vdCBhbiBvYmplY3QnKTsKKwordGVzdChmdW5jdGlvbiAoKSB7Cisg
ICAgdmFyIGNvbnN0cnVjdG9yID0gZnVuY3Rpb24gKCkge30KKyAgICB2YXIgY2FsbHMgPSBbXTsK
KyAgICBjb25zdHJ1Y3Rvci5wcm90b3R5cGUgPSBuZXcgUHJveHkoY29uc3RydWN0b3IucHJvdG90
eXBlLCB7CisgICAgICAgIGdldDogZnVuY3Rpb24gKHRhcmdldCwgbmFtZSkgeworICAgICAgICAg
ICAgY2FsbHMucHVzaChuYW1lKTsKKyAgICAgICAgICAgIHJldHVybiB0YXJnZXRbbmFtZV07Cisg
ICAgICAgIH0KKyAgICB9KTsKKyAgICBjdXN0b21FbGVtZW50cy5kZWZpbmUoJ2VsZW1lbnQtd2l0
aC1wcm94eS1wcm90b3R5cGUnLCBjb25zdHJ1Y3Rvcik7CisgICAgYXNzZXJ0X2FycmF5X2VxdWFs
cyhjYWxscywgWydjb25uZWN0ZWRDYWxsYmFjaycsICdkaXNjb25uZWN0ZWRDYWxsYmFjaycsICdh
ZG9wdGVkQ2FsbGJhY2snLCAnYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrJ10pOworfSwgJ2N1c3Rv
bUVsZW1lbnRzLmRlZmluZSBtdXN0IGdldCBjYWxsYmFja3Mgb2YgdGhlIGNvbnN0cnVjdG9yIHBy
b3RvdHlwZScpOworCit0ZXN0KGZ1bmN0aW9uICgpIHsKKyAgICB2YXIgY29uc3RydWN0b3IgPSBm
dW5jdGlvbiAoKSB7fQorICAgIHZhciBjYWxscyA9IFtdOworICAgIGNvbnN0cnVjdG9yLnByb3Rv
dHlwZSA9IG5ldyBQcm94eShjb25zdHJ1Y3Rvci5wcm90b3R5cGUsIHsKKyAgICAgICAgZ2V0OiBm
dW5jdGlvbiAodGFyZ2V0LCBuYW1lKSB7CisgICAgICAgICAgICBjYWxscy5wdXNoKG5hbWUpOwor
ICAgICAgICAgICAgaWYgKG5hbWUgPT0gJ2Rpc2Nvbm5lY3RlZENhbGxiYWNrJykKKyAgICAgICAg
ICAgICAgICB0aHJvdyB7bmFtZTogJ2V4cGVjdGVkRXJyb3InfTsKKyAgICAgICAgICAgIHJldHVy
biB0YXJnZXRbbmFtZV07CisgICAgICAgIH0KKyAgICB9KTsKKyAgICBhc3NlcnRfdGhyb3dzKHsn
bmFtZSc6ICdleHBlY3RlZEVycm9yJ30sIGZ1bmN0aW9uICgpIHsgY3VzdG9tRWxlbWVudHMuZGVm
aW5lKCdlbGVtZW50LXdpdGgtdGhyb3dpbmctY2FsbGJhY2snLCBjb25zdHJ1Y3Rvcik7IH0pOwor
ICAgIGFzc2VydF9hcnJheV9lcXVhbHMoY2FsbHMsIFsnY29ubmVjdGVkQ2FsbGJhY2snLCAnZGlz
Y29ubmVjdGVkQ2FsbGJhY2snXSwKKyAgICAgICAgJ2N1c3RvbUVsZW1lbnRzLmRlZmluZSBtdXN0
IG5vdCBnZXQgY2FsbGJhY2tzIGFmdGVyIG9uZSBvZiB0aGUgZ2V0IHRocm93cycpOworfSwgJ2N1
c3RvbUVsZW1lbnRzLmRlZmluZSBtdXN0IHJldGhyb3cgYW4gZXhjZXB0aW9uIHRocm93biB3aGls
ZSBnZXR0aW5nIGNhbGxiYWNrcyBvbiB0aGUgY29uc3RydWN0b3IgcHJvdG90eXBlJyk7CisKK3Rl
c3QoZnVuY3Rpb24gKCkgeworICAgIHZhciBjb25zdHJ1Y3RvciA9IGZ1bmN0aW9uICgpIHt9Cisg
ICAgdmFyIGNhbGxzID0gW107CisgICAgY29uc3RydWN0b3IucHJvdG90eXBlID0gbmV3IFByb3h5
KGNvbnN0cnVjdG9yLnByb3RvdHlwZSwgeworICAgICAgICBnZXQ6IGZ1bmN0aW9uICh0YXJnZXQs
IG5hbWUpIHsKKyAgICAgICAgICAgIGNhbGxzLnB1c2gobmFtZSk7CisgICAgICAgICAgICBpZiAo
bmFtZSA9PSAnYWRvcHRlZENhbGxiYWNrJykKKyAgICAgICAgICAgICAgICByZXR1cm4gMTsKKyAg
ICAgICAgICAgIHJldHVybiB0YXJnZXRbbmFtZV07CisgICAgICAgIH0KKyAgICB9KTsKKyAgICBh
c3NlcnRfdGhyb3dzKHsnbmFtZSc6ICdUeXBlRXJyb3InfSwgZnVuY3Rpb24gKCkgeyBjdXN0b21F
bGVtZW50cy5kZWZpbmUoJ2VsZW1lbnQtd2l0aC10aHJvd2luZy1jYWxsYmFjaycsIGNvbnN0cnVj
dG9yKTsgfSk7CisgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhjYWxscywgWydjb25uZWN0ZWRDYWxs
YmFjaycsICdkaXNjb25uZWN0ZWRDYWxsYmFjaycsICdhZG9wdGVkQ2FsbGJhY2snXSwKKyAgICAg
ICAgJ2N1c3RvbUVsZW1lbnRzLmRlZmluZSBtdXN0IG5vdCBnZXQgY2FsbGJhY2tzIGFmdGVyIG9u
ZSBvZiB0aGUgY29udmVyc2lvbiB0aHJvd3MnKTsKK30sICdjdXN0b21FbGVtZW50cy5kZWZpbmUg
bXVzdCByZXRocm93IGFuIGV4Y2VwdGlvbiB0aHJvd24gd2hpbGUgY29udmVydGluZyBhIGNhbGxi
YWNrIHZhbHVlIHRvIEZ1bmN0aW9uIGNhbGxiYWNrIHR5cGUnKTsKKwordGVzdChmdW5jdGlvbiAo
KSB7CisgICAgdmFyIGNvbnN0cnVjdG9yID0gZnVuY3Rpb24gKCkge30KKyAgICBjb25zdHJ1Y3Rv
ci5wcm90b3R5cGUuYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrID0gZnVuY3Rpb24gKCkgeyB9Owor
ICAgIHZhciBwcm90b3R5cGVDYWxscyA9IFtdOworICAgIHZhciBjYWxsT3JkZXIgPSAwOworICAg
IGNvbnN0cnVjdG9yLnByb3RvdHlwZSA9IG5ldyBQcm94eShjb25zdHJ1Y3Rvci5wcm90b3R5cGUs
IHsKKyAgICAgICAgZ2V0OiBmdW5jdGlvbiAodGFyZ2V0LCBuYW1lKSB7CisgICAgICAgICAgICBp
ZiAobmFtZSA9PSAncHJvdG90eXBlJyB8fCBuYW1lID09ICdvYnNlcnZlZEF0dHJpYnV0ZXMnKQor
ICAgICAgICAgICAgICAgIHRocm93ICdVbmV4cGVjdGVkIGFjY2VzcyB0byBvYnNlcnZlZEF0dHJp
YnV0ZXMnOworICAgICAgICAgICAgcHJvdG90eXBlQ2FsbHMucHVzaChjYWxsT3JkZXIrKyk7ICAg
IAorICAgICAgICAgICAgcHJvdG90eXBlQ2FsbHMucHVzaChuYW1lKTsKKyAgICAgICAgICAgIHJl
dHVybiB0YXJnZXRbbmFtZV07CisgICAgICAgIH0KKyAgICB9KTsKKyAgICB2YXIgY29uc3RydWN0
b3JDYWxscyA9IFtdOworICAgIHZhciBwcm94eSA9IG5ldyBQcm94eShjb25zdHJ1Y3Rvciwgewor
ICAgICAgICBnZXQ6IGZ1bmN0aW9uICh0YXJnZXQsIG5hbWUpIHsKKyAgICAgICAgICAgIGNvbnN0
cnVjdG9yQ2FsbHMucHVzaChjYWxsT3JkZXIrKyk7ICAgIAorICAgICAgICAgICAgY29uc3RydWN0
b3JDYWxscy5wdXNoKG5hbWUpOworICAgICAgICAgICAgcmV0dXJuIHRhcmdldFtuYW1lXTsKKyAg
ICAgICAgfQorICAgIH0pOworICAgIGN1c3RvbUVsZW1lbnRzLmRlZmluZSgnZWxlbWVudC13aXRo
LWF0dHJpYnV0ZS1jaGFuZ2VkLWNhbGxiYWNrJywgcHJveHkpOworICAgIGFzc2VydF9hcnJheV9l
cXVhbHMocHJvdG90eXBlQ2FsbHMsIFsxLCAnY29ubmVjdGVkQ2FsbGJhY2snLCAyLCAnZGlzY29u
bmVjdGVkQ2FsbGJhY2snLCAzLCAnYWRvcHRlZENhbGxiYWNrJywgNCwgJ2F0dHJpYnV0ZUNoYW5n
ZWRDYWxsYmFjayddKTsKKyAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGNvbnN0cnVjdG9yQ2FsbHMs
IFswLCAncHJvdG90eXBlJywgNSwgJ29ic2VydmVkQXR0cmlidXRlcyddKTsKK30sICdjdXN0b21F
bGVtZW50cy5kZWZpbmUgbXVzdCBnZXQgIm9ic2VydmVkQXR0cmlidXRlcyIgcHJvcGVydHkgb24g
dGhlIGNvbnN0cnVjdG9yIHByb3RvdHlwZSB3aGVuICJhdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2si
IGlzIHByZXNlbnQnKTsKKwordGVzdChmdW5jdGlvbiAoKSB7CisgICAgdmFyIGNvbnN0cnVjdG9y
ID0gZnVuY3Rpb24gKCkge30KKyAgICBjb25zdHJ1Y3Rvci5wcm90b3R5cGUuYXR0cmlidXRlQ2hh
bmdlZENhbGxiYWNrID0gZnVuY3Rpb24gKCkgeyB9OworICAgIHZhciBjYWxscyA9IFtdOworICAg
IHZhciBwcm94eSA9IG5ldyBQcm94eShjb25zdHJ1Y3RvciwgeworICAgICAgICBnZXQ6IGZ1bmN0
aW9uICh0YXJnZXQsIG5hbWUpIHsKKyAgICAgICAgICAgIGNhbGxzLnB1c2gobmFtZSk7CisgICAg
ICAgICAgICBpZiAobmFtZSA9PSAnb2JzZXJ2ZWRBdHRyaWJ1dGVzJykKKyAgICAgICAgICAgICAg
ICB0aHJvdyB7bmFtZTogJ2V4cGVjdGVkRXJyb3InfTsKKyAgICAgICAgICAgIHJldHVybiB0YXJn
ZXRbbmFtZV07CisgICAgICAgIH0KKyAgICB9KTsKKyAgICBhc3NlcnRfdGhyb3dzKHsnbmFtZSc6
ICdleHBlY3RlZEVycm9yJ30sIGZ1bmN0aW9uICgpIHsgY3VzdG9tRWxlbWVudHMuZGVmaW5lKCdl
bGVtZW50LXdpdGgtdGhyb3dpbmctb2JzZXJ2ZWQtYXR0cmlidXRlcycsIHByb3h5KTsgfSk7Cisg
ICAgYXNzZXJ0X2FycmF5X2VxdWFscyhjYWxscywgWydwcm90b3R5cGUnLCAnb2JzZXJ2ZWRBdHRy
aWJ1dGVzJ10sCisgICAgICAgICdjdXN0b21FbGVtZW50cy5kZWZpbmUgbXVzdCBnZXQgInByb3Rv
dHlwZSIgYW5kICJvYnNlcnZlZEF0dHJpYnV0ZXMiIG9uIHRoZSBjb25zdHJ1Y3RvcicpOworfSwg
J2N1c3RvbUVsZW1lbnRzLmRlZmluZSBtdXN0IHJldGhyb3cgYW4gZXhjZXB0aW9uIHRocm93biB3
aGlsZSBnZXR0aW5nIG9ic2VydmVkQXR0cmlidXRlcyBvbiB0aGUgY29uc3RydWN0b3IgcHJvdG90
eXBlJyk7CisKK3Rlc3QoZnVuY3Rpb24gKCkgeworICAgIHZhciBjb25zdHJ1Y3RvciA9IGZ1bmN0
aW9uICgpIHt9CisgICAgY29uc3RydWN0b3IucHJvdG90eXBlLmF0dHJpYnV0ZUNoYW5nZWRDYWxs
YmFjayA9IGZ1bmN0aW9uICgpIHsgfTsKKyAgICB2YXIgY2FsbHMgPSBbXTsKKyAgICB2YXIgcHJv
eHkgPSBuZXcgUHJveHkoY29uc3RydWN0b3IsIHsKKyAgICAgICAgZ2V0OiBmdW5jdGlvbiAodGFy
Z2V0LCBuYW1lKSB7CisgICAgICAgICAgICBjYWxscy5wdXNoKG5hbWUpOworICAgICAgICAgICAg
aWYgKG5hbWUgPT0gJ29ic2VydmVkQXR0cmlidXRlcycpCisgICAgICAgICAgICAgICAgcmV0dXJu
IDE7CisgICAgICAgICAgICByZXR1cm4gdGFyZ2V0W25hbWVdOworICAgICAgICB9CisgICAgfSk7
CisgICAgYXNzZXJ0X3Rocm93cyh7J25hbWUnOiAnVHlwZUVycm9yJ30sIGZ1bmN0aW9uICgpIHsg
Y3VzdG9tRWxlbWVudHMuZGVmaW5lKCdlbGVtZW50LXdpdGgtaW52YWxpZC1vYnNlcnZlZC1hdHRy
aWJ1dGVzJywgcHJveHkpOyB9KTsKKyAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGNhbGxzLCBbJ3By
b3RvdHlwZScsICdvYnNlcnZlZEF0dHJpYnV0ZXMnXSwKKyAgICAgICAgJ2N1c3RvbUVsZW1lbnRz
LmRlZmluZSBtdXN0IGdldCAicHJvdG90eXBlIiBhbmQgIm9ic2VydmVkQXR0cmlidXRlcyIgb24g
dGhlIGNvbnN0cnVjdG9yJyk7Cit9LCAnY3VzdG9tRWxlbWVudHMuZGVmaW5lIG11c3QgcmV0aHJv
dyBhbiBleGNlcHRpb24gdGhyb3duIHdoaWxlIGNvbnZlcnRpbmcgdGhlIHZhbHVlIG9mIG9ic2Vy
dmVkQXR0cmlidXRlcyB0byBzZXF1ZW5jZTxET01TdHJpbmc+Jyk7CisKK3Rlc3QoZnVuY3Rpb24g
KCkgeworICAgIHZhciBjb25zdHJ1Y3RvciA9IGZ1bmN0aW9uICgpIHt9CisgICAgY29uc3RydWN0
b3IucHJvdG90eXBlLmF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayA9IGZ1bmN0aW9uICgpIHsgfTsK
KyAgICBjb25zdHJ1Y3Rvci5vYnNlcnZlZEF0dHJpYnV0ZXMgPSB7W1N5bWJvbC5pdGVyYXRvcl06
IGZ1bmN0aW9uICooKSB7CisgICAgICAgIHlpZWxkICdmb28nOworICAgICAgICB0aHJvdyB7bmFt
ZTogJ1NvbWVFcnJvcid9OworICAgIH19OworICAgIGFzc2VydF90aHJvd3MoeyduYW1lJzogJ1Nv
bWVFcnJvcid9LCBmdW5jdGlvbiAoKSB7IGN1c3RvbUVsZW1lbnRzLmRlZmluZSgnZWxlbWVudC13
aXRoLWdlbmVyYXRvci1vYnNlcnZlZC1hdHRyaWJ1dGVzJywgY29uc3RydWN0b3IpOyB9KTsKK30s
ICdjdXN0b21FbGVtZW50cy5kZWZpbmUgbXVzdCByZXRocm93IGFuIGV4Y2VwdGlvbiB0aHJvd24g
d2hpbGUgaXRlcmF0aW5nIG92ZXIgb2JzZXJ2ZWRBdHRyaWJ1dGVzIHRvIHNlcXVlbmNlPERPTVN0
cmluZz4nKTsKKwordGVzdChmdW5jdGlvbiAoKSB7CisgICAgdmFyIGNvbnN0cnVjdG9yID0gZnVu
Y3Rpb24gKCkge30KKyAgICBjb25zdHJ1Y3Rvci5wcm90b3R5cGUuYXR0cmlidXRlQ2hhbmdlZENh
bGxiYWNrID0gZnVuY3Rpb24gKCkgeyB9OworICAgIGNvbnN0cnVjdG9yLm9ic2VydmVkQXR0cmli
dXRlcyA9IHtbU3ltYm9sLml0ZXJhdG9yXTogMX07CisgICAgYXNzZXJ0X3Rocm93cyh7J25hbWUn
OiAnVHlwZUVycm9yJ30sIGZ1bmN0aW9uICgpIHsgY3VzdG9tRWxlbWVudHMuZGVmaW5lKCdlbGVt
ZW50LXdpdGgtb2JzZXJ2ZWQtYXR0cmlidXRlcy13aXRoLXVuY2FsbGFibGUtaXRlcmF0b3InLCBj
b25zdHJ1Y3Rvcik7IH0pOworfSwgJ2N1c3RvbUVsZW1lbnRzLmRlZmluZSBtdXN0IHJldGhyb3cg
YW4gZXhjZXB0aW9uIHRocm93biB3aGlsZSByZXRyaWV2aW5nIFN5bWJvbC5pdGVyYXRvciBvbiBv
YnNlcnZlZEF0dHJpYnV0ZXMnKTsKKwordGVzdChmdW5jdGlvbiAoKSB7CisgICAgdmFyIGNvbnN0
cnVjdG9yID0gZnVuY3Rpb24gKCkge30KKyAgICBjb25zdHJ1Y3Rvci5vYnNlcnZlZEF0dHJpYnV0
ZXMgPSAxOworICAgIGN1c3RvbUVsZW1lbnRzLmRlZmluZSgnZWxlbWVudC13aXRob3V0LWNhbGxi
YWNrLXdpdGgtaW52YWxpZC1vYnNlcnZlZC1hdHRyaWJ1dGVzJywgY29uc3RydWN0b3IpOworfSwg
J2N1c3RvbUVsZW1lbnRzLmRlZmluZSBtdXN0IG5vdCB0aHJvdyBldmVuIGlmICJvYnNlcnZlZEF0
dHJpYnV0ZXMiIGZhaWxzIHRvIGNvbnZlcnQgaWYgImF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayIg
aXMgbm90IGRlZmluZWQnKTsKKwordGVzdChmdW5jdGlvbiAoKSB7CisgICAgY2xhc3MgTXlDdXN0
b21FbGVtZW50IGV4dGVuZHMgSFRNTEVsZW1lbnQge307CisgICAgY3VzdG9tRWxlbWVudHMuZGVm
aW5lKCdteS1jdXN0b20tZWxlbWVudCcsIE15Q3VzdG9tRWxlbWVudCk7CisKKyAgICB2YXIgaW5z
dGFuY2UgPSBuZXcgTXlDdXN0b21FbGVtZW50OworICAgIGFzc2VydF90cnVlKGluc3RhbmNlIGlu
c3RhbmNlb2YgTXlDdXN0b21FbGVtZW50LAorICAgICAgICAnQW4gaW5zdGFuY2Ugb2YgYSBjdXN0
b20gSFRNTCBlbGVtZW50IGJlIGFuIGluc3RhbmNlIG9mIHRoZSBhc3NvY2lhdGVkIGludGVyZmFj
ZScpOworCisgICAgYXNzZXJ0X3RydWUoaW5zdGFuY2UgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCwK
KyAgICAgICAgJ0FuIGluc3RhbmNlIG9mIGEgY3VzdG9tIEhUTUwgZWxlbWVudCBtdXN0IGluaGVy
aXQgZnJvbSBIVE1MRWxlbWVudCcpOworCisgICAgYXNzZXJ0X2VxdWFscyhpbnN0YW5jZS5sb2Nh
bE5hbWUsICdteS1jdXN0b20tZWxlbWVudCcsCisgICAgICAgICdBbiBpbnN0YW5jZSBvZiBhIGN1
c3RvbSBlbGVtZW50IG11c3QgdXNlIHRoZSBhc3NvY2lhdGVkIHRhZyBuYW1lJyk7CisKKyAgICBh
c3NlcnRfZXF1YWxzKGluc3RhbmNlLm5hbWVzcGFjZVVSSSwgJ2h0dHA6Ly93d3cudzMub3JnLzE5
OTkveGh0bWwnLAorICAgICAgICAnQSBjdXN0b20gZWxlbWVudCBIVE1MIG11c3QgdXNlIEhUTUwg
bmFtZXNwYWNlJyk7CisKK30sICdjdXN0b21FbGVtZW50cy5kZWZpbmUgbXVzdCBkZWZpbmUgYW4g
aW5zdGFudGlhdGFibGUgY3VzdG9tIGVsZW1lbnQnKTsKKwordGVzdChmdW5jdGlvbiAoKSB7Cisg
ICAgdmFyIGRpc2Nvbm5lY3RlZEVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzb21l
LWN1c3RvbScpOworICAgIHZhciBjb25uZWN0ZWRFbGVtZW50QmVmb3JlU2hhZG93SG9zdCA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NvbWUtY3VzdG9tJyk7CisgICAgdmFyIGNvbm5lY3RlZEVs
ZW1lbnRBZnRlclNoYWRvd0hvc3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzb21lLWN1c3Rv
bScpOworICAgIHZhciBlbGVtZW50SW5TaGFkb3dUcmVlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgnc29tZS1jdXN0b20nKTsKKyAgICB2YXIgY2hpbGRFbGVtZW50T2ZTaGFkb3dIb3N0ID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgnc29tZS1jdXN0b20nKTsKKyAgICB2YXIgY3VzdG9tU2hhZG93
SG9zdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NvbWUtY3VzdG9tJyk7CisgICAgdmFyIGVs
ZW1lbnRJbk5lc3RlZFNoYWRvd1RyZWUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzb21lLWN1
c3RvbScpOworCisgICAgdmFyIGNvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Rp
dicpOworICAgIHZhciBzaGFkb3dIb3N0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7
CisgICAgdmFyIHNoYWRvd1Jvb3QgPSBzaGFkb3dIb3N0LmF0dGFjaFNoYWRvdyh7bW9kZTogJ2Ns
b3NlZCd9KTsKKyAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQoY29ubmVjdGVkRWxlbWVudEJlZm9y
ZVNoYWRvd0hvc3QpOworICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZChzaGFkb3dIb3N0KTsKKyAg
ICBjb250YWluZXIuYXBwZW5kQ2hpbGQoY29ubmVjdGVkRWxlbWVudEFmdGVyU2hhZG93SG9zdCk7
CisgICAgc2hhZG93SG9zdC5hcHBlbmRDaGlsZChjaGlsZEVsZW1lbnRPZlNoYWRvd0hvc3QpOwor
ICAgIHNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQoZWxlbWVudEluU2hhZG93VHJlZSk7CisgICAgc2hh
ZG93Um9vdC5hcHBlbmRDaGlsZChjdXN0b21TaGFkb3dIb3N0KTsKKworICAgIHZhciBpbm5lclNo
YWRvd1Jvb3QgPSBjdXN0b21TaGFkb3dIb3N0LmF0dGFjaFNoYWRvdyh7bW9kZTogJ2Nsb3NlZCd9
KTsKKyAgICBpbm5lclNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQoZWxlbWVudEluTmVzdGVkU2hhZG93
VHJlZSk7CisKKyAgICB2YXIgY2FsbHMgPSBbXTsKKyAgICBjbGFzcyBTb21lQ3VzdG9tRWxlbWVu
dCBleHRlbmRzIEhUTUxFbGVtZW50IHsKKyAgICAgICAgY29uc3RydWN0b3IoKSB7CisgICAgICAg
ICAgICBzdXBlcigpOworICAgICAgICAgICAgY2FsbHMucHVzaCh0aGlzKTsKKyAgICAgICAgfQor
ICAgIH07CisKKyAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGNvbnRhaW5lcik7CisgICAg
Y3VzdG9tRWxlbWVudHMuZGVmaW5lKCdzb21lLWN1c3RvbScsIFNvbWVDdXN0b21FbGVtZW50KTsK
KyAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGNhbGxzLCBbY29ubmVjdGVkRWxlbWVudEJlZm9yZVNo
YWRvd0hvc3QsIGVsZW1lbnRJblNoYWRvd1RyZWUsIGN1c3RvbVNoYWRvd0hvc3QsIGVsZW1lbnRJ
bk5lc3RlZFNoYWRvd1RyZWUsIGNoaWxkRWxlbWVudE9mU2hhZG93SG9zdCwgY29ubmVjdGVkRWxl
bWVudEFmdGVyU2hhZG93SG9zdF0pOworfSwgJ2N1c3RvbUVsZW1lbnRzLmRlZmluZSBtdXN0IHVw
Z3JhZGUgZWxlbWVudHMgaW4gdGhlIHNoYWRvdy1pbmNsdWRpbmcgdHJlZSBvcmRlcicpOworCit0
ZXN0KGZ1bmN0aW9uICgpIHsKKyAgICBhc3NlcnRfdHJ1ZSgnZ2V0JyBpbiBDdXN0b21FbGVtZW50
UmVnaXN0cnkucHJvdG90eXBlLCAnImdldCIgZXhpc3RzIG9uIEN1c3RvbUVsZW1lbnRSZWdpc3Ry
eS5wcm90b3R5cGUnKTsKKyAgICBhc3NlcnRfdHJ1ZSgnZ2V0JyBpbiBjdXN0b21FbGVtZW50cywg
JyJnZXQiIGV4aXN0cyBvbiB3aW5kb3cuY3VzdG9tRWxlbWVudHMnKTsKK30sICdDdXN0b21FbGVt
ZW50UmVnaXN0cnkgaW50ZXJmYWNlIG11c3QgaGF2ZSBnZXQgYXMgYSBtZXRob2QnKTsKKwordGVz
dChmdW5jdGlvbiAoKSB7CisgICAgYXNzZXJ0X2VxdWFscyhjdXN0b21FbGVtZW50cy5nZXQoJ2Et
YicpLCB1bmRlZmluZWQpOworfSwgJ2N1c3RvbUVsZW1lbnRzLmdldCBtdXN0IHJldHVybiB1bmRl
ZmluZWQgd2hlbiB0aGUgcmVnaXN0cnkgZG9lcyBub3QgY29udGFpbiBhbiBlbnRyeSB3aXRoIHRo
ZSBnaXZlbiBuYW1lJyk7CisKK3Rlc3QoZnVuY3Rpb24gKCkgeworICAgIGFzc2VydF9lcXVhbHMo
Y3VzdG9tRWxlbWVudHMuZ2V0KCdodG1sJyksIHVuZGVmaW5lZCk7CisgICAgYXNzZXJ0X2VxdWFs
cyhjdXN0b21FbGVtZW50cy5nZXQoJ3NwYW4nKSwgdW5kZWZpbmVkKTsKKyAgICBhc3NlcnRfZXF1
YWxzKGN1c3RvbUVsZW1lbnRzLmdldCgnZGl2JyksIHVuZGVmaW5lZCk7CisgICAgYXNzZXJ0X2Vx
dWFscyhjdXN0b21FbGVtZW50cy5nZXQoJ2cnKSwgdW5kZWZpbmVkKTsKKyAgICBhc3NlcnRfZXF1
YWxzKGN1c3RvbUVsZW1lbnRzLmdldCgnYWInKSwgdW5kZWZpbmVkKTsKK30sICdjdXN0b21FbGVt
ZW50cy5nZXQgbXVzdCByZXR1cm4gdW5kZWZpbmVkIHdoZW4gdGhlIHJlZ2lzdHJ5IGRvZXMgbm90
IGNvbnRhaW4gYW4gZW50cnkgd2l0aCB0aGUgZ2l2ZW4gbmFtZSBldmVuIGlmIHRoZSBuYW1lIHdh
cyBub3QgYSB2YWxpZCBjdXN0b20gZWxlbWVudCBuYW1lJyk7CisKK3Rlc3QoZnVuY3Rpb24gKCkg
eworICAgIGFzc2VydF9lcXVhbHMoY3VzdG9tRWxlbWVudHMuZ2V0KCdleGlzdGluZy1jdXN0b20t
ZWxlbWVudCcpLCB1bmRlZmluZWQpOworICAgIGNsYXNzIEV4aXN0aW5nQ3VzdG9tRWxlbWVudCBl
eHRlbmRzIEhUTUxFbGVtZW50IHt9OworICAgIGN1c3RvbUVsZW1lbnRzLmRlZmluZSgnZXhpc3Rp
bmctY3VzdG9tLWVsZW1lbnQnLCBFeGlzdGluZ0N1c3RvbUVsZW1lbnQpOworICAgIGFzc2VydF9l
cXVhbHMoY3VzdG9tRWxlbWVudHMuZ2V0KCdleGlzdGluZy1jdXN0b20tZWxlbWVudCcpLCBFeGlz
dGluZ0N1c3RvbUVsZW1lbnQpOworfSwgJ2N1c3RvbUVsZW1lbnRzLmdldCByZXR1cm4gdGhlIGNv
bnN0cnVjdG9yIG9mIHRoZSBlbnRyeSB3aXRoIHRoZSBnaXZlbiBuYW1lIHdoZW4gdGhlcmUgaXMg
YSBtYXRjaGluZyBlbnRyeS4nKTsKKwordGVzdChmdW5jdGlvbiAoKSB7CisgICAgYXNzZXJ0X3Ry
dWUoY3VzdG9tRWxlbWVudHMud2hlbkRlZmluZWQoJ3NvbWUtbmFtZScpIGluc3RhbmNlb2YgUHJv
bWlzZSk7Cit9LCAnY3VzdG9tRWxlbWVudHMud2hlbkRlZmluZWQgbXVzdCByZXR1cm4gYSBwcm9t
aXNlIGZvciBhIHZhbGlkIGN1c3RvbSBlbGVtZW50IG5hbWUnKTsKKwordGVzdChmdW5jdGlvbiAo
KSB7CisgICAgYXNzZXJ0X2VxdWFscyhjdXN0b21FbGVtZW50cy53aGVuRGVmaW5lZCgnc29tZS1u
YW1lJyksIGN1c3RvbUVsZW1lbnRzLndoZW5EZWZpbmVkKCdzb21lLW5hbWUnKSk7Cit9LCAnY3Vz
dG9tRWxlbWVudHMud2hlbkRlZmluZWQgbXVzdCByZXR1cm4gdGhlIHNhbWUgcHJvbWlzZSBlYWNo
IHRpbWUgaW52b2tlZCBmb3IgYSB2YWxpZCBjdXN0b20gZWxlbWVudCBuYW1lIHdoaWNoIGhhcyBu
b3QgYmVlbiBkZWZpbmVkJyk7CisKK3Byb21pc2VfdGVzdChmdW5jdGlvbiAoKSB7CisgICAgdmFy
IHJlc29sdmVkID0gZmFsc2U7CisgICAgdmFyIHJlamVjdGVkID0gZmFsc2U7CisgICAgY3VzdG9t
RWxlbWVudHMud2hlbkRlZmluZWQoJ2EtYicpLnRoZW4oZnVuY3Rpb24gKCkgeyByZXNvbHZlZCA9
IHRydWU7IH0sIGZ1bmN0aW9uICgpIHsgcmVqZWN0ZWQgPSB0cnVlOyB9KTsKKyAgICByZXR1cm4g
UHJvbWlzZS5yZXNvbHZlKCkudGhlbihmdW5jdGlvbiAoKSB7CisgICAgICAgIGFzc2VydF9mYWxz
ZShyZXNvbHZlZCwgJ1RoZSBwcm9taXNlIHJldHVybmVkIGJ5ICJ3aGVuRGVmaW5lZCIgbXVzdCBu
b3QgYmUgcmVzb2x2ZWQgdW50aWwgYSBjdXN0b20gZWxlbWVudCBpcyBkZWZpbmVkJyk7CisgICAg
ICAgIGFzc2VydF9mYWxzZShyZWplY3RlZCwgJ1RoZSBwcm9taXNlIHJldHVybmVkIGJ5ICJ3aGVu
RGVmaW5lZCIgbXVzdCBub3QgYmUgcmVqZWN0ZWQgdW50aWwgYSBjdXN0b20gZWxlbWVudCBpcyBk
ZWZpbmVkJyk7CisgICAgfSk7ICAgIAorfSwgJ2N1c3RvbUVsZW1lbnRzLndoZW5EZWZpbmVkIG11
c3QgcmV0dXJuIGFuIHVucmVzb2x2ZWQgcHJvbWlzZSB3aGVuIHRoZSByZWdpc3RyeSBkb2VzIG5v
dCBjb250YWluIHRoZSBlbnRyeSB3aXRoIHRoZSBnaXZlbiBuYW1lJykKKworcHJvbWlzZV90ZXN0
KGZ1bmN0aW9uICgpIHsKKyAgICB2YXIgcHJvbWlzZSA9IGN1c3RvbUVsZW1lbnRzLndoZW5EZWZp
bmVkKCdiYWRuYW1lJyk7CisgICAgcHJvbWlzZS50aGVuKGZ1bmN0aW9uICh2YWx1ZSkgeyBwcm9t
aXNlLnJlc29sdmVkID0gdmFsdWU7IH0sIGZ1bmN0aW9uICh2YWx1ZSkgeyBwcm9taXNlLnJlamVj
dGVkID0gdmFsdWU7IH0pOworCisgICAgYXNzZXJ0X2ZhbHNlKCdyZXNvbHZlZCcgaW4gcHJvbWlz
ZSwgJ1RoZSBwcm9taXNlIHJldHVybmVkIGJ5ICJ3aGVuRGVmaW5lZCIgbXVzdCBub3QgYmUgcmVz
b2x2ZWQgdW50aWwgdGhlIGVuZCBvZiB0aGUgbmV4dCBtaWNyb3Rhc2snKTsKKyAgICBhc3NlcnRf
ZmFsc2UoJ3JlamVjdGVkJyBpbiBwcm9taXNlLCAnVGhlIHByb21pc2UgcmV0dXJuZWQgYnkgIndo
ZW5EZWZpbmVkIiBtdXN0IG5vdCBiZSByZWplY3RlZCB1bnRpbCB0aGUgZW5kIG9mIHRoZSBuZXh0
IG1pY3JvdGFzaycpOworCisgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oZnVuY3Rp
b24gKCkgeworICAgICAgICBhc3NlcnRfZmFsc2UoJ3Jlc29sdmVkJyBpbiBwcm9taXNlLCAnVGhl
IHByb21pc2UgcmV0dXJuZWQgYnkgIndoZW5EZWZpbmVkIiBtdXN0IGJlIHJlc29sdmVkIHdoZW4g
YSBjdXN0b20gZWxlbWVudCBpcyBkZWZpbmVkJyk7CisgICAgICAgIGFzc2VydF90cnVlKCdyZWpl
Y3RlZCcgaW4gcHJvbWlzZSwgJ1RoZSBwcm9taXNlIHJldHVybmVkIGJ5ICJ3aGVuRGVmaW5lZCIg
bXVzdCBub3QgYmUgcmVqZWN0ZWQgd2hlbiBhIGN1c3RvbSBlbGVtZW50IGlzIGRlZmluZWQnKTsK
KyAgICB9KTsKK30sICdjdXN0b21FbGVtZW50cy53aGVuRGVmaW5lZCBtdXN0IHJldHVybiBhIHJl
amVjdGVkIHByb21pc2Ugd2hlbiB0aGUgZ2l2ZW4gbmFtZSBpcyBub3QgYSB2YWxpZCBjdXN0b20g
ZWxlbWVudCBuYW1lJyk7CisKK3Byb21pc2VfdGVzdChmdW5jdGlvbiAoKSB7CisgICAgY3VzdG9t
RWxlbWVudHMuZGVmaW5lKCdwcmVleGlzdGluZy1jdXN0b20tZWxlbWVudCcsIGNsYXNzIGV4dGVu
ZHMgSFRNTEVsZW1lbnQgeyB9KTsKKworICAgIHZhciBwcm9taXNlID0gY3VzdG9tRWxlbWVudHMu
d2hlbkRlZmluZWQoJ3ByZWV4aXN0aW5nLWN1c3RvbS1lbGVtZW50Jyk7CisgICAgcHJvbWlzZS50
aGVuKGZ1bmN0aW9uICh2YWx1ZSkgeyBwcm9taXNlLnJlc29sdmVkID0gdmFsdWU7IH0sIGZ1bmN0
aW9uICh2YWx1ZSkgeyBwcm9taXNlLnJlamVjdGVkID0gdmFsdWU7IH0pOworCisgICAgYXNzZXJ0
X2ZhbHNlKCdyZXNvbHZlZCcgaW4gcHJvbWlzZSwgJ1RoZSBwcm9taXNlIHJldHVybmVkIGJ5ICJ3
aGVuRGVmaW5lZCIgbXVzdCBub3QgYmUgcmVzb2x2ZWQgdW50aWwgdGhlIGVuZCBvZiB0aGUgbmV4
dCBtaWNyb3Rhc2snKTsKKyAgICBhc3NlcnRfZmFsc2UoJ3JlamVjdGVkJyBpbiBwcm9taXNlLCAn
VGhlIHByb21pc2UgcmV0dXJuZWQgYnkgIndoZW5EZWZpbmVkIiBtdXN0IG5vdCBiZSByZWplY3Rl
ZCB1bnRpbCB0aGUgZW5kIG9mIHRoZSBuZXh0IG1pY3JvdGFzaycpOworCisgICAgcmV0dXJuIFBy
b21pc2UucmVzb2x2ZSgpLnRoZW4oZnVuY3Rpb24gKCkgeworICAgICAgICBhc3NlcnRfdHJ1ZSgn
cmVzb2x2ZWQnIGluIHByb21pc2UsICdUaGUgcHJvbWlzZSByZXR1cm5lZCBieSAid2hlbkRlZmlu
ZWQiIG11c3QgYmUgcmVzb2x2ZWQgd2hlbiBhIGN1c3RvbSBlbGVtZW50IGlzIGRlZmluZWQnKTsK
KyAgICAgICAgYXNzZXJ0X2VxdWFscyhwcm9taXNlLnJlc29sdmVkLCB1bmRlZmluZWQsCisgICAg
ICAgICAgICAnVGhlIHByb21pc2UgcmV0dXJuZWQgYnkgIndoZW5EZWZpbmVkIiBtdXN0IGJlIHJl
c29sdmVkIHdpdGggInVuZGVmaW5lZCIgd2hlbiBhIGN1c3RvbSBlbGVtZW50IGlzIGRlZmluZWQn
KTsKKyAgICAgICAgYXNzZXJ0X2ZhbHNlKCdyZWplY3RlZCcgaW4gcHJvbWlzZSwgJ1RoZSBwcm9t
aXNlIHJldHVybmVkIGJ5ICJ3aGVuRGVmaW5lZCIgbXVzdCBub3QgYmUgcmVqZWN0ZWQgd2hlbiBh
IGN1c3RvbSBlbGVtZW50IGlzIGRlZmluZWQnKTsKKyAgICB9KTsKK30sICdjdXN0b21FbGVtZW50
cy53aGVuRGVmaW5lZCBtdXN0IHJldHVybiBhIHJlc29sdmVkIHByb21pc2Ugd2hlbiB0aGUgcmVn
aXN0cnkgY29udGFpbnMgdGhlIGVudHJ5IHdpdGggdGhlIGdpdmVuIG5hbWUnKTsKKworcHJvbWlz
ZV90ZXN0KGZ1bmN0aW9uICgpIHsKKyAgICBjbGFzcyBBbm90aGVyRXhpc3RpbmdDdXN0b21FbGVt
ZW50IGV4dGVuZHMgSFRNTEVsZW1lbnQge307CisgICAgY3VzdG9tRWxlbWVudHMuZGVmaW5lKCdh
bm90aGVyLWV4aXN0aW5nLWN1c3RvbS1lbGVtZW50JywgQW5vdGhlckV4aXN0aW5nQ3VzdG9tRWxl
bWVudCk7CisKKyAgICB2YXIgcHJvbWlzZTEgPSBjdXN0b21FbGVtZW50cy53aGVuRGVmaW5lZCgn
YW5vdGhlci1leGlzdGluZy1jdXN0b20tZWxlbWVudCcpOworICAgIHZhciBwcm9taXNlMiA9IGN1
c3RvbUVsZW1lbnRzLndoZW5EZWZpbmVkKCdhbm90aGVyLWV4aXN0aW5nLWN1c3RvbS1lbGVtZW50
Jyk7CisgICAgcHJvbWlzZTEudGhlbihmdW5jdGlvbiAodmFsdWUpIHsgcHJvbWlzZTEucmVzb2x2
ZWQgPSB2YWx1ZTsgfSwgZnVuY3Rpb24gKHZhbHVlKSB7IHByb21pc2UxLnJlamVjdGVkID0gdmFs
dWU7IH0pOworICAgIHByb21pc2UyLnRoZW4oZnVuY3Rpb24gKHZhbHVlKSB7IHByb21pc2UyLnJl
c29sdmVkID0gdmFsdWU7IH0sIGZ1bmN0aW9uICh2YWx1ZSkgeyBwcm9taXNlMi5yZWplY3RlZCA9
IHZhbHVlOyB9KTsKKworICAgIGFzc2VydF9ub3RfZXF1YWxzKHByb21pc2UxLCBwcm9taXNlMik7
CisgICAgYXNzZXJ0X2ZhbHNlKCdyZXNvbHZlZCcgaW4gcHJvbWlzZTEsICdUaGUgcHJvbWlzZSBy
ZXR1cm5lZCBieSAid2hlbkRlZmluZWQiIG11c3Qgbm90IGJlIHJlc29sdmVkIHVudGlsIHRoZSBl
bmQgb2YgdGhlIG5leHQgbWljcm90YXNrJyk7CisgICAgYXNzZXJ0X2ZhbHNlKCdyZXNvbHZlZCcg
aW4gcHJvbWlzZTIsICdUaGUgcHJvbWlzZSByZXR1cm5lZCBieSAid2hlbkRlZmluZWQiIG11c3Qg
bm90IGJlIHJlc29sdmVkIHVudGlsIHRoZSBlbmQgb2YgdGhlIG5leHQgbWljcm90YXNrJyk7Cisg
ICAgYXNzZXJ0X2ZhbHNlKCdyZWplY3RlZCcgaW4gcHJvbWlzZTEsICdUaGUgcHJvbWlzZSByZXR1
cm5lZCBieSAid2hlbkRlZmluZWQiIG11c3Qgbm90IGJlIHJlamVjdGVkIHVudGlsIHRoZSBlbmQg
b2YgdGhlIG5leHQgbWljcm90YXNrJyk7CisgICAgYXNzZXJ0X2ZhbHNlKCdyZWplY3RlZCcgaW4g
cHJvbWlzZTIsICdUaGUgcHJvbWlzZSByZXR1cm5lZCBieSAid2hlbkRlZmluZWQiIG11c3Qgbm90
IGJlIHJlamVjdGVkIHVudGlsIHRoZSBlbmQgb2YgdGhlIG5leHQgbWljcm90YXNrJyk7CisKKyAg
ICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCkudGhlbihmdW5jdGlvbiAoKSB7CisgICAgICAgIGFz
c2VydF90cnVlKCdyZXNvbHZlZCcgaW4gcHJvbWlzZTEsICdUaGUgcHJvbWlzZSByZXR1cm5lZCBi
eSAid2hlbkRlZmluZWQiIG11c3QgYmUgcmVzb2x2ZWQgd2hlbiBhIGN1c3RvbSBlbGVtZW50IGlz
IGRlZmluZWQnKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhwcm9taXNlMS5yZXNvbHZlZCwgdW5k
ZWZpbmVkLCAnVGhlIHByb21pc2UgcmV0dXJuZWQgYnkgIndoZW5EZWZpbmVkIiBtdXN0IGJlIHJl
c29sdmVkIHdpdGggInVuZGVmaW5lZCIgd2hlbiBhIGN1c3RvbSBlbGVtZW50IGlzIGRlZmluZWQn
KTsKKyAgICAgICAgYXNzZXJ0X2ZhbHNlKCdyZWplY3RlZCcgaW4gcHJvbWlzZTEsICdUaGUgcHJv
bWlzZSByZXR1cm5lZCBieSAid2hlbkRlZmluZWQiIG11c3Qgbm90IGJlIHJlamVjdGVkIHdoZW4g
YSBjdXN0b20gZWxlbWVudCBpcyBkZWZpbmVkJyk7CisKKyAgICAgICAgYXNzZXJ0X3RydWUoJ3Jl
c29sdmVkJyBpbiBwcm9taXNlMiwgJ1RoZSBwcm9taXNlIHJldHVybmVkIGJ5ICJ3aGVuRGVmaW5l
ZCIgbXVzdCBiZSByZXNvbHZlZCB3aGVuIGEgY3VzdG9tIGVsZW1lbnQgaXMgZGVmaW5lZCcpOwor
ICAgICAgICBhc3NlcnRfZXF1YWxzKHByb21pc2UyLnJlc29sdmVkLCB1bmRlZmluZWQsICdUaGUg
cHJvbWlzZSByZXR1cm5lZCBieSAid2hlbkRlZmluZWQiIG11c3QgYmUgcmVzb2x2ZWQgd2l0aCAi
dW5kZWZpbmVkIiB3aGVuIGEgY3VzdG9tIGVsZW1lbnQgaXMgZGVmaW5lZCcpOworICAgICAgICBh
c3NlcnRfZmFsc2UoJ3JlamVjdGVkJyBpbiBwcm9taXNlMiwgJ1RoZSBwcm9taXNlIHJldHVybmVk
IGJ5ICJ3aGVuRGVmaW5lZCIgbXVzdCBub3QgYmUgcmVqZWN0ZWQgd2hlbiBhIGN1c3RvbSBlbGVt
ZW50IGlzIGRlZmluZWQnKTsKKyAgICB9KTsKK30sICdjdXN0b21FbGVtZW50cy53aGVuRGVmaW5l
ZCBtdXN0IHJldHVybiBhIG5ldyByZXNvbHZlZCBwcm9taXNlIGVhY2ggdGltZSBpbnZva2VkIHdo
ZW4gdGhlIHJlZ2lzdHJ5IGNvbnRhaW5zIHRoZSBlbnRyeSB3aXRoIHRoZSBnaXZlbiBuYW1lJyk7
CisKK3Byb21pc2VfdGVzdChmdW5jdGlvbiAoKSB7CisgICAgdmFyIHByb21pc2UgPSBjdXN0b21F
bGVtZW50cy53aGVuRGVmaW5lZCgnZWxlbWVudC1kZWZpbmVkLWFmdGVyLXdoZW5kZWZpbmVkJyk7
CisgICAgcHJvbWlzZS50aGVuKGZ1bmN0aW9uICh2YWx1ZSkgeyBwcm9taXNlLnJlc29sdmVkID0g
dmFsdWU7IH0sIGZ1bmN0aW9uICh2YWx1ZSkgeyBwcm9taXNlLnJlamVjdGVkID0gdmFsdWU7IH0p
OworCisgICAgYXNzZXJ0X2ZhbHNlKCdyZXNvbHZlZCcgaW4gcHJvbWlzZSwgJ1RoZSBwcm9taXNl
IHJldHVybmVkIGJ5ICJ3aGVuRGVmaW5lZCIgbXVzdCBub3QgYmUgcmVzb2x2ZWQgdW50aWwgdGhl
IGVuZCBvZiB0aGUgbmV4dCBtaWNyb3Rhc2snKTsKKyAgICBhc3NlcnRfZmFsc2UoJ3JlamVjdGVk
JyBpbiBwcm9taXNlLCAnVGhlIHByb21pc2UgcmV0dXJuZWQgYnkgIndoZW5EZWZpbmVkIiBtdXN0
IG5vdCBiZSByZWplY3RlZCB1bnRpbCB0aGUgZW5kIG9mIHRoZSBuZXh0IG1pY3JvdGFzaycpOwor
CisgICAgdmFyIHByb21pc2VBZnRlckRlZmluZTsKKyAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZl
KCkudGhlbihmdW5jdGlvbiAoKSB7CisgICAgICAgIGFzc2VydF9mYWxzZSgncmVzb2x2ZWQnIGlu
IHByb21pc2UsICdUaGUgcHJvbWlzZSByZXR1cm5lZCBieSAid2hlbkRlZmluZWQiIG11c3Qgbm90
IGJlIHJlc29sdmVkIHVudGlsIHRoZSBlbGVtZW50IGlzIGRlZmluZWQnKTsKKyAgICAgICAgYXNz
ZXJ0X2ZhbHNlKCdyZWplY3RlZCcgaW4gcHJvbWlzZSwgJ1RoZSBwcm9taXNlIHJldHVybmVkIGJ5
ICJ3aGVuRGVmaW5lZCIgbXVzdCBub3QgYmUgcmVqZWN0ZWQgdW50aWwgdGhlIGVsZW1lbnQgaXMg
ZGVmaW5lZCcpOworICAgICAgICBhc3NlcnRfZXF1YWxzKGN1c3RvbUVsZW1lbnRzLndoZW5EZWZp
bmVkKCdlbGVtZW50LWRlZmluZWQtYWZ0ZXItd2hlbmRlZmluZWQnKSwgcHJvbWlzZSwKKyAgICAg
ICAgICAgICcid2hlbkRlZmluZWQiIG11c3QgcmV0dXJuIHRoZSBzYW1lIHVucmVzb2x2ZWQgcHJv
bWlzZSBiZWZvcmUgdGhlIGN1c3RvbSBlbGVtZW50IGlzIGRlZmluZWQnKTsKKyAgICAgICAgY3Vz
dG9tRWxlbWVudHMuZGVmaW5lKCdlbGVtZW50LWRlZmluZWQtYWZ0ZXItd2hlbmRlZmluZWQnLCBj
bGFzcyBleHRlbmRzIEhUTUxFbGVtZW50IHsgfSk7CisgICAgICAgIGFzc2VydF9mYWxzZSgncmVz
b2x2ZWQnIGluIHByb21pc2UsICdUaGUgcHJvbWlzZSByZXR1cm5lZCBieSAid2hlbkRlZmluZWQi
IG11c3Qgbm90IGJlIHJlc29sdmVkIHVudGlsIHRoZSBlbmQgb2YgdGhlIG5leHQgbWljcm90YXNr
Jyk7CisgICAgICAgIGFzc2VydF9mYWxzZSgncmVqZWN0ZWQnIGluIHByb21pc2UsICdUaGUgcHJv
bWlzZSByZXR1cm5lZCBieSAid2hlbkRlZmluZWQiIG11c3Qgbm90IGJlIHJlamVjdGVkIHVudGls
IHRoZSBlbmQgb2YgdGhlIG5leHQgbWljcm90YXNrJyk7CisKKyAgICAgICAgcHJvbWlzZUFmdGVy
RGVmaW5lID0gY3VzdG9tRWxlbWVudHMud2hlbkRlZmluZWQoJ2VsZW1lbnQtZGVmaW5lZC1hZnRl
ci13aGVuZGVmaW5lZCcpOworICAgICAgICBwcm9taXNlQWZ0ZXJEZWZpbmUudGhlbihmdW5jdGlv
biAodmFsdWUpIHsgcHJvbWlzZUFmdGVyRGVmaW5lLnJlc29sdmVkID0gdmFsdWU7IH0sIGZ1bmN0
aW9uICh2YWx1ZSkgeyBwcm9taXNlQWZ0ZXJEZWZpbmUucmVqZWN0ZWQgPSB2YWx1ZTsgfSk7Cisg
ICAgICAgIGFzc2VydF9ub3RfZXF1YWxzKHByb21pc2VBZnRlckRlZmluZSwgcHJvbWlzZSwgJyJ3
aGVuRGVmaW5lZCIgbXVzdCByZXR1cm4gYSByZXNvbHZlZCBwcm9taXNlIG9uY2UgdGhlIGN1c3Rv
bSBlbGVtZW50IGlzIGRlZmluZWQnKTsKKyAgICAgICAgYXNzZXJ0X2ZhbHNlKCdyZXNvbHZlZCcg
aW4gcHJvbWlzZUFmdGVyRGVmaW5lLCAnVGhlIHByb21pc2UgcmV0dXJuZWQgYnkgIndoZW5EZWZp
bmVkIiBtdXN0IG5vdCBiZSByZXNvbHZlZCB1bnRpbCB0aGUgZW5kIG9mIHRoZSBuZXh0IG1pY3Jv
dGFzaycpOworICAgICAgICBhc3NlcnRfZmFsc2UoJ3JlamVjdGVkJyBpbiBwcm9taXNlQWZ0ZXJE
ZWZpbmUsICdUaGUgcHJvbWlzZSByZXR1cm5lZCBieSAid2hlbkRlZmluZWQiIG11c3Qgbm90IGJl
IHJlamVjdGVkIHVudGlsIHRoZSBlbmQgb2YgdGhlIG5leHQgbWljcm90YXNrJyk7CisgICAgfSku
dGhlbihmdW5jdGlvbiAoKSB7CisgICAgICAgIGFzc2VydF90cnVlKCdyZXNvbHZlZCcgaW4gcHJv
bWlzZSwgJ1RoZSBwcm9taXNlIHJldHVybmVkIGJ5ICJ3aGVuRGVmaW5lZCIgbXVzdCBiZSByZXNv
bHZlZCB3aGVuIGEgY3VzdG9tIGVsZW1lbnQgaXMgZGVmaW5lZCcpOworICAgICAgICBhc3NlcnRf
ZXF1YWxzKHByb21pc2UucmVzb2x2ZWQsIHVuZGVmaW5lZCwKKyAgICAgICAgICAgICdUaGUgcHJv
bWlzZSByZXR1cm5lZCBieSAid2hlbkRlZmluZWQiIG11c3QgYmUgcmVzb2x2ZWQgd2l0aCAidW5k
ZWZpbmVkIiB3aGVuIGEgY3VzdG9tIGVsZW1lbnQgaXMgZGVmaW5lZCcpOworICAgICAgICBhc3Nl
cnRfZmFsc2UoJ3JlamVjdGVkJyBpbiBwcm9taXNlLCAnVGhlIHByb21pc2UgcmV0dXJuZWQgYnkg
IndoZW5EZWZpbmVkIiBtdXN0IG5vdCBiZSByZWplY3RlZCB3aGVuIGEgY3VzdG9tIGVsZW1lbnQg
aXMgZGVmaW5lZCcpOworCisgICAgICAgIGFzc2VydF90cnVlKCdyZXNvbHZlZCcgaW4gcHJvbWlz
ZUFmdGVyRGVmaW5lLCAnVGhlIHByb21pc2UgcmV0dXJuZWQgYnkgIndoZW5EZWZpbmVkIiBtdXN0
IGJlIHJlc29sdmVkIHdoZW4gYSBjdXN0b20gZWxlbWVudCBpcyBkZWZpbmVkJyk7CisgICAgICAg
IGFzc2VydF9lcXVhbHMocHJvbWlzZUFmdGVyRGVmaW5lLnJlc29sdmVkLCB1bmRlZmluZWQsCisg
ICAgICAgICAgICAnVGhlIHByb21pc2UgcmV0dXJuZWQgYnkgIndoZW5EZWZpbmVkIiBtdXN0IGJl
IHJlc29sdmVkIHdpdGggInVuZGVmaW5lZCIgd2hlbiBhIGN1c3RvbSBlbGVtZW50IGlzIGRlZmlu
ZWQnKTsKKyAgICAgICAgYXNzZXJ0X2ZhbHNlKCdyZWplY3RlZCcgaW4gcHJvbWlzZUFmdGVyRGVm
aW5lLCAnVGhlIHByb21pc2UgcmV0dXJuZWQgYnkgIndoZW5EZWZpbmVkIiBtdXN0IG5vdCBiZSBy
ZWplY3RlZCB3aGVuIGEgY3VzdG9tIGVsZW1lbnQgaXMgZGVmaW5lZCcpOworICAgIH0pOworfSwg
J0EgcHJvbWlzZSByZXR1cm5lZCBieSBjdXN0b21FbGVtZW50cy53aGVuRGVmaW5lZCBtdXN0IGJl
IHJlc29sdmVkIGJ5ICJkZWZpbmUiJyk7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
dXN0b20tZWxlbWVudHMvSFRNTEVsZW1lbnQtY29uc3RydWN0b3ItZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMv
SFRNTEVsZW1lbnQtY29uc3RydWN0b3ItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ2Nzk3N2Ri
NWM4YWVjOGQyOTNhNjE4OTllNzFjZTY0OWQ5MDVkY2MKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9I
VE1MRWxlbWVudC1jb25zdHJ1Y3Rvci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw4IEBACisKK1BB
U1MgSFRNTEVsZW1lbnQgY29uc3RydWN0b3IgbXVzdCB0aHJvdyBhIFR5cGVFcnJvciB3aGVuIE5l
d1RhcmdldCBpcyBlcXVhbCB0byBpdHNlbGYgCitQQVNTIEhUTUxFbGVtZW50IGNvbnN0cnVjdG9y
IG11c3QgdGhyb3cgYSBUeXBlRXJyb3Igd2hlbiBOZXdUYXJnZXQgaXMgZXF1YWwgdG8gaXRzZWxm
IHZpYSBhIFByb3h5IG9iamVjdCAKK1BBU1MgSFRNTEVsZW1lbnQgY29uc3RydWN0b3IgbXVzdCB0
aHJvdyBUeXBlRXJyb3Igd2hlbiBpdCBoYXMgbm90IGJlZW4gZGVmaW5lZCBieSBjdXN0b21FbGVt
ZW50cy5kZWZpbmUgCitQQVNTIEhUTUxFbGVtZW50IGNvbnN0cnVjdG9yIG11c3QgaW5mZXIgdGhl
IHRhZyBuYW1lIGZyb20gdGhlIGVsZW1lbnQgaW50ZXJmYWNlIAorUEFTUyBIVE1MRWxlbWVudCBj
b25zdHJ1Y3RvciBtdXN0IGFsbG93IHN1YmNsYXNzaW5nIGEgY3VzdG9tIGVsZW1lbnQgCitQQVNT
IEhUTUxFbGVtZW50IGNvbnN0cnVjdG9yIG11c3QgYWxsb3cgc3ViY2xhc3NpbmcgYW4gdXNlci1k
ZWZpbmVkIHN1YmNsYXNzIG9mIEhUTUxFbGVtZW50IAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9IVE1MRWxl
bWVudC1jb25zdHJ1Y3Rvci5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvSFRNTEVsZW1lbnQtY29uc3RydWN0b3IuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5kZmE5ZDRjYjE0ZGY1ZjFhMDAzMWQ0NDFhYjZmMjJhOTExMTEyZDcyCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jdXN0b20tZWxlbWVudHMvSFRNTEVsZW1lbnQtY29uc3RydWN0b3IuaHRtbApAQCAtMCwwICsx
LDg0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8dGl0bGU+Q3VzdG9tIEVs
ZW1lbnRzOiBIVE1MRWxlbWVudCBtdXN0IGFsbG93IHN1YmNsYXNzaW5nPC90aXRsZT4KKzxtZXRh
IG5hbWU9ImF1dGhvciIgdGl0bGU9IlJ5b3N1a2UgTml3YSIgaHJlZj0ibWFpbHRvOnJuaXdhQHdl
YmtpdC5vcmciPgorPG1ldGEgbmFtZT0iYXNzZXJ0IiBjb250ZW50PSJIVE1MRWxlbWVudCBtdXN0
IGFsbG93IHN1YmNsYXNzaW5nIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9odG1s
LnNwZWMud2hhdHdnLm9yZy8jaHRtbC1lbGVtZW50LWNvbnN0cnVjdG9ycyI+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJsb2ciPjwvZGl2PgorPHNjcmlwdD4KKwor
dGVzdChmdW5jdGlvbiAoKSB7CisgICAgY3VzdG9tRWxlbWVudHMuZGVmaW5lKCdodG1sLWN1c3Rv
bS1lbGVtZW50JywgSFRNTEVsZW1lbnQpOworICAgIGFzc2VydF90aHJvd3MoeyduYW1lJzogJ1R5
cGVFcnJvcid9LCBmdW5jdGlvbiAoKSB7IG5ldyBIVE1MRWxlbWVudCgpOyB9KTsKK30sICdIVE1M
RWxlbWVudCBjb25zdHJ1Y3RvciBtdXN0IHRocm93IGEgVHlwZUVycm9yIHdoZW4gTmV3VGFyZ2V0
IGlzIGVxdWFsIHRvIGl0c2VsZicpOworCit0ZXN0KGZ1bmN0aW9uICgpIHsKKyAgICBjdXN0b21F
bGVtZW50cy5kZWZpbmUoJ2h0bWwtcHJveHktY3VzdG9tLWVsZW1lbnQnLCBuZXcgUHJveHkoSFRN
TEVsZW1lbnQsIHt9KSk7CisgICAgYXNzZXJ0X3Rocm93cyh7J25hbWUnOiAnVHlwZUVycm9yJ30s
IGZ1bmN0aW9uICgpIHsgbmV3IEhUTUxFbGVtZW50KCk7IH0pOworfSwgJ0hUTUxFbGVtZW50IGNv
bnN0cnVjdG9yIG11c3QgdGhyb3cgYSBUeXBlRXJyb3Igd2hlbiBOZXdUYXJnZXQgaXMgZXF1YWwg
dG8gaXRzZWxmIHZpYSBhIFByb3h5IG9iamVjdCcpOworCit0ZXN0KGZ1bmN0aW9uICgpIHsKKyAg
ICBjbGFzcyBTb21lQ3VzdG9tRWxlbWVudCBleHRlbmRzIEhUTUxFbGVtZW50IHt9OworICAgIGFz
c2VydF90aHJvd3MoeyduYW1lJzogJ1R5cGVFcnJvcid9LCBmdW5jdGlvbiAoKSB7IG5ldyBTb21l
Q3VzdG9tRWxlbWVudDsgfSk7Cit9LCAnSFRNTEVsZW1lbnQgY29uc3RydWN0b3IgbXVzdCB0aHJv
dyBUeXBlRXJyb3Igd2hlbiBpdCBoYXMgbm90IGJlZW4gZGVmaW5lZCBieSBjdXN0b21FbGVtZW50
cy5kZWZpbmUnKTsKKwordGVzdChmdW5jdGlvbiAoKSB7CisgICAgY2xhc3MgQ3VzdG9tRWxlbWVu
dFdpdGhJbmZlcnJlZFRhZ05hbWUgZXh0ZW5kcyBIVE1MRWxlbWVudCB7fTsKKyAgICBjdXN0b21F
bGVtZW50cy5kZWZpbmUoJ2luZmVycmVkLW5hbWUnLCBDdXN0b21FbGVtZW50V2l0aEluZmVycmVk
VGFnTmFtZSk7CisKKyAgICB2YXIgaW5zdGFuY2UgPSBuZXcgQ3VzdG9tRWxlbWVudFdpdGhJbmZl
cnJlZFRhZ05hbWU7CisgICAgYXNzZXJ0X3RydWUoaW5zdGFuY2UgaW5zdGFuY2VvZiBFbGVtZW50
LCAnQSBjdXN0b20gZWxlbWVudCBtdXN0IGluaGVyaXQgZnJvbSBFbGVtZW50Jyk7CisgICAgYXNz
ZXJ0X3RydWUoaW5zdGFuY2UgaW5zdGFuY2VvZiBOb2RlLCAnQSBjdXN0b20gZWxlbWVudCBtdXN0
IGluaGVyaXQgZnJvbSBOb2RlJyk7CisgICAgYXNzZXJ0X2VxdWFscyhpbnN0YW5jZS5sb2NhbE5h
bWUsICdpbmZlcnJlZC1uYW1lJyk7CisgICAgYXNzZXJ0X2VxdWFscyhpbnN0YW5jZS5ub2RlTmFt
ZSwgJ0lORkVSUkVELU5BTUUnKTsKKyAgICBhc3NlcnRfZXF1YWxzKGluc3RhbmNlLm5hbWVzcGFj
ZVVSSSwgJ2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnLCAnQSBjdXN0b20gSFRNTCBlbGVt
ZW50IG11c3QgdXNlIEhUTUwgbmFtZXNwYWNlJyk7CisKKyAgICBkb2N1bWVudC5ib2R5LmFwcGVu
ZENoaWxkKGluc3RhbmNlKTsKKyAgICBhc3NlcnRfZXF1YWxzKGRvY3VtZW50LmJvZHkubGFzdENo
aWxkLCBpbnN0YW5jZSwKKyAgICAgICAgJ2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQgbXVzdCBi
ZSBhYmxlIHRvIGluc2VydCBhIGN1c3RvbSBlbGVtZW50Jyk7CisgICAgYXNzZXJ0X2VxdWFscyhk
b2N1bWVudC5xdWVyeVNlbGVjdG9yKCdpbmZlcnJlZC1uYW1lJyksIGluc3RhbmNlLAorICAgICAg
ICAnZG9jdW1lbnQucXVlcnlTZWxlY3RvciBtdXN0IGJlIGFibGUgdG8gZmluZCBhIGN1c3RvbSBl
bGVtZW50IGJ5IGl0cyB0YWcgbmFtZScpOworCit9LCAnSFRNTEVsZW1lbnQgY29uc3RydWN0b3Ig
bXVzdCBpbmZlciB0aGUgdGFnIG5hbWUgZnJvbSB0aGUgZWxlbWVudCBpbnRlcmZhY2UnKTsKKwor
dGVzdChmdW5jdGlvbiAoKSB7CisgICAgY2xhc3MgQ29uY3JldGVDdXN0b21FbGVtZW50IGV4dGVu
ZHMgSFRNTEVsZW1lbnQgeyB9OworICAgIGNsYXNzIFN1YkN1c3RvbUVsZW1lbnQgZXh0ZW5kcyBD
b25jcmV0ZUN1c3RvbUVsZW1lbnQgeyB9OworICAgIGN1c3RvbUVsZW1lbnRzLmRlZmluZSgnY29u
Y3JldGUtY3VzdG9tLWVsZW1lbnQnLCBDb25jcmV0ZUN1c3RvbUVsZW1lbnQpOworICAgIGN1c3Rv
bUVsZW1lbnRzLmRlZmluZSgnc3ViLWN1c3RvbS1lbGVtZW50JywgU3ViQ3VzdG9tRWxlbWVudCk7
CisKKyAgICB2YXIgaW5zdGFuY2UgPSBuZXcgQ29uY3JldGVDdXN0b21FbGVtZW50KCk7CisgICAg
YXNzZXJ0X3RydWUoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25jcmV0ZUN1c3RvbUVsZW1lbnQpOwor
ICAgIGFzc2VydF9mYWxzZShpbnN0YW5jZSBpbnN0YW5jZW9mIFN1YkN1c3RvbUVsZW1lbnQpOwor
ICAgIGFzc2VydF9lcXVhbHMoaW5zdGFuY2UubG9jYWxOYW1lLCAnY29uY3JldGUtY3VzdG9tLWVs
ZW1lbnQnKTsKKyAgICBhc3NlcnRfZXF1YWxzKGluc3RhbmNlLm5vZGVOYW1lLCAnQ09OQ1JFVEUt
Q1VTVE9NLUVMRU1FTlQnKTsKKworICAgIHZhciBpbnN0YW5jZSA9IG5ldyBTdWJDdXN0b21FbGVt
ZW50KCk7CisgICAgYXNzZXJ0X3RydWUoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25jcmV0ZUN1c3Rv
bUVsZW1lbnQpOworICAgIGFzc2VydF90cnVlKGluc3RhbmNlIGluc3RhbmNlb2YgU3ViQ3VzdG9t
RWxlbWVudCk7CisgICAgYXNzZXJ0X2VxdWFscyhpbnN0YW5jZS5sb2NhbE5hbWUsICdzdWItY3Vz
dG9tLWVsZW1lbnQnKTsKKyAgICBhc3NlcnRfZXF1YWxzKGluc3RhbmNlLm5vZGVOYW1lLCAnU1VC
LUNVU1RPTS1FTEVNRU5UJyk7CisKK30sICdIVE1MRWxlbWVudCBjb25zdHJ1Y3RvciBtdXN0IGFs
bG93IHN1YmNsYXNzaW5nIGEgY3VzdG9tIGVsZW1lbnQnKTsKKwordGVzdChmdW5jdGlvbiAoKSB7
CisgICAgY2xhc3MgQWJzdHJhY3RDdXN0b21FbGVtZW50IGV4dGVuZHMgSFRNTEVsZW1lbnQgeyB9
OworICAgIGNsYXNzIENvbmNyZXRlU3ViQ3VzdG9tRWxlbWVudCBleHRlbmRzIEFic3RyYWN0Q3Vz
dG9tRWxlbWVudCB7IH07CisgICAgY3VzdG9tRWxlbWVudHMuZGVmaW5lKCdjb25jcmV0ZS1zdWIt
Y3VzdG9tLWVsZW1lbnQnLCBDb25jcmV0ZVN1YkN1c3RvbUVsZW1lbnQpOworCisgICAgdmFyIGlu
c3RhbmNlID0gbmV3IENvbmNyZXRlU3ViQ3VzdG9tRWxlbWVudCgpOworICAgIGFzc2VydF90cnVl
KGluc3RhbmNlIGluc3RhbmNlb2YgQWJzdHJhY3RDdXN0b21FbGVtZW50KTsKKyAgICBhc3NlcnRf
dHJ1ZShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbmNyZXRlU3ViQ3VzdG9tRWxlbWVudCk7CisgICAg
YXNzZXJ0X2VxdWFscyhpbnN0YW5jZS5sb2NhbE5hbWUsICdjb25jcmV0ZS1zdWItY3VzdG9tLWVs
ZW1lbnQnKTsKKyAgICBhc3NlcnRfZXF1YWxzKGluc3RhbmNlLm5vZGVOYW1lLCAnQ09OQ1JFVEUt
U1VCLUNVU1RPTS1FTEVNRU5UJyk7CisKK30sICdIVE1MRWxlbWVudCBjb25zdHJ1Y3RvciBtdXN0
IGFsbG93IHN1YmNsYXNzaW5nIGFuIHVzZXItZGVmaW5lZCBzdWJjbGFzcyBvZiBIVE1MRWxlbWVu
dCcpOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL09XTkVS
UyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVs
ZW1lbnRzL09XTkVSUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hOGIyNWU3OWMyZDkzNDEyNGMyMzFlZTM2NGZjODk0
MjcxZTBjYzVhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvT1dORVJTCkBAIC0wLDAgKzEsOSBAQAor
QGFsc2VtZW5vdgorQGRlZXBhay1zYQorQGRvbWVuaWMKK0Bkb21pbmljY29vbmV5CitAaGF5YXRv
aXRvCitAa29qaWlzaGkKK0Bybml3YQorQHNncmVraG92CitAdGFrYXlvc2hpa29jaGkKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9t
LWVsZW1lbnRzL2Fkb3B0ZWQtY2FsbGJhY2stZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvYWRvcHRlZC1jYWxs
YmFjay1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTI0NTZhNDM3MDAwMjJiMDgzM2RlMDQ2ODIw
MjlkYjQxMjhjMWMwNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL2Fkb3B0ZWQtY2FsbGJhY2stZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsNTkgQEAKKworUEFTUyBJbnNlcnRpbmcgYSBjdXN0b20gZWxl
bWVudCBpbnRvIHRoZSBvd25lciBkb2N1bWVudCBtdXN0IG5vdCBlbnF1ZXVlIGFuZCBpbnZva2Ug
YWRvcHRlZENhbGxiYWNrIAorUEFTUyBJbnNlcnRpbmcgYSBjdXN0b20gZWxlbWVudCBpbnRvIGEg
ZG9jdW1lbnQgb2YgYSB0ZW1wbGF0ZSBlbGVtZW50IG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGFk
b3B0ZWRDYWxsYmFjayAKK1BBU1MgTW92aW5nIGEgY3VzdG9tIGVsZW1lbnQgZnJvbSB0aGUgb3du
ZXIgZG9jdW1lbnQgaW50byBhIGRvY3VtZW50IG9mIGEgdGVtcGxhdGUgZWxlbWVudCBtdXN0IGVu
cXVldWUgYW5kIGludm9rZSBhZG9wdGVkQ2FsbGJhY2sgCitQQVNTIEluc2VydGluZyBhbiBhbmNl
c3RvciBvZiBjdXN0b20gZWxlbWVudCBpbnRvIGEgZG9jdW1lbnQgb2YgYSB0ZW1wbGF0ZSBlbGVt
ZW50IG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGFkb3B0ZWRDYWxsYmFjayAKK1BBU1MgTW92aW5n
IGFuIGFuY2VzdG9yIG9mIGN1c3RvbSBlbGVtZW50IGZyb20gdGhlIG93bmVyIGRvY3VtZW50IGlu
dG8gYSBkb2N1bWVudCBvZiBhIHRlbXBsYXRlIGVsZW1lbnQgbXVzdCBlbnF1ZXVlIGFuZCBpbnZv
a2UgYWRvcHRlZENhbGxiYWNrIAorUEFTUyBJbnNlcnRpbmcgYSBjdXN0b20gZWxlbWVudCBpbnRv
IGEgc2hhZG93IHRyZWUgaW4gYSBkb2N1bWVudCBvZiBhIHRlbXBsYXRlIGVsZW1lbnQgbXVzdCBl
bnF1ZXVlIGFuZCBpbnZva2UgYWRvcHRlZENhbGxiYWNrIAorUEFTUyBJbnNlcnRpbmcgdGhlIHNo
YWRvdyBob3N0IG9mIGEgY3VzdG9tIGVsZW1lbnQgaW50byBhIGRvY3VtZW50IG9mIGEgdGVtcGxh
dGUgZWxlbWVudCBtdXN0IGVucXVldWUgYW5kIGludm9rZSBhZG9wdGVkQ2FsbGJhY2sgCitQQVNT
IE1vdmluZyB0aGUgc2hhZG93IGhvc3Qgb2YgYSBjdXN0b20gZWxlbWVudCBmcm9tIHRoZSBvd25l
ciBkb2N1bWVudCBpbnRvIGEgZG9jdW1lbnQgb2YgYSB0ZW1wbGF0ZSBlbGVtZW50IG11c3QgZW5x
dWV1ZSBhbmQgaW52b2tlIGFkb3B0ZWRDYWxsYmFjayAKK1BBU1MgSW5zZXJ0aW5nIGEgY3VzdG9t
IGVsZW1lbnQgaW50byBhIGRldGFjaGVkIHNoYWRvdyB0cmVlIHRoYXQgYmVsb25ncyB0byBhIGRv
Y3VtZW50IG9mIGEgdGVtcGxhdGUgZWxlbWVudCBtdXN0IGVucXVldWUgYW5kIGludm9rZSBhZG9w
dGVkQ2FsbGJhY2sgCitQQVNTIEluc2VydGluZyBhIGN1c3RvbSBlbGVtZW50IGludG8gYSBuZXcg
ZG9jdW1lbnQgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgYWRvcHRlZENhbGxiYWNrIAorUEFTUyBN
b3ZpbmcgYSBjdXN0b20gZWxlbWVudCBmcm9tIHRoZSBvd25lciBkb2N1bWVudCBpbnRvIGEgbmV3
IGRvY3VtZW50IG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGFkb3B0ZWRDYWxsYmFjayAKK1BBU1Mg
SW5zZXJ0aW5nIGFuIGFuY2VzdG9yIG9mIGN1c3RvbSBlbGVtZW50IGludG8gYSBuZXcgZG9jdW1l
bnQgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgYWRvcHRlZENhbGxiYWNrIAorUEFTUyBNb3Zpbmcg
YW4gYW5jZXN0b3Igb2YgY3VzdG9tIGVsZW1lbnQgZnJvbSB0aGUgb3duZXIgZG9jdW1lbnQgaW50
byBhIG5ldyBkb2N1bWVudCBtdXN0IGVucXVldWUgYW5kIGludm9rZSBhZG9wdGVkQ2FsbGJhY2sg
CitQQVNTIEluc2VydGluZyBhIGN1c3RvbSBlbGVtZW50IGludG8gYSBzaGFkb3cgdHJlZSBpbiBh
IG5ldyBkb2N1bWVudCBtdXN0IGVucXVldWUgYW5kIGludm9rZSBhZG9wdGVkQ2FsbGJhY2sgCitQ
QVNTIEluc2VydGluZyB0aGUgc2hhZG93IGhvc3Qgb2YgYSBjdXN0b20gZWxlbWVudCBpbnRvIGEg
bmV3IGRvY3VtZW50IG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGFkb3B0ZWRDYWxsYmFjayAKK1BB
U1MgTW92aW5nIHRoZSBzaGFkb3cgaG9zdCBvZiBhIGN1c3RvbSBlbGVtZW50IGZyb20gdGhlIG93
bmVyIGRvY3VtZW50IGludG8gYSBuZXcgZG9jdW1lbnQgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2Ug
YWRvcHRlZENhbGxiYWNrIAorUEFTUyBJbnNlcnRpbmcgYSBjdXN0b20gZWxlbWVudCBpbnRvIGEg
ZGV0YWNoZWQgc2hhZG93IHRyZWUgdGhhdCBiZWxvbmdzIHRvIGEgbmV3IGRvY3VtZW50IG11c3Qg
ZW5xdWV1ZSBhbmQgaW52b2tlIGFkb3B0ZWRDYWxsYmFjayAKK1BBU1MgSW5zZXJ0aW5nIGEgY3Vz
dG9tIGVsZW1lbnQgaW50byBhIGNsb25lZCBkb2N1bWVudCBtdXN0IGVucXVldWUgYW5kIGludm9r
ZSBhZG9wdGVkQ2FsbGJhY2sgCitQQVNTIE1vdmluZyBhIGN1c3RvbSBlbGVtZW50IGZyb20gdGhl
IG93bmVyIGRvY3VtZW50IGludG8gYSBjbG9uZWQgZG9jdW1lbnQgbXVzdCBlbnF1ZXVlIGFuZCBp
bnZva2UgYWRvcHRlZENhbGxiYWNrIAorUEFTUyBJbnNlcnRpbmcgYW4gYW5jZXN0b3Igb2YgY3Vz
dG9tIGVsZW1lbnQgaW50byBhIGNsb25lZCBkb2N1bWVudCBtdXN0IGVucXVldWUgYW5kIGludm9r
ZSBhZG9wdGVkQ2FsbGJhY2sgCitQQVNTIE1vdmluZyBhbiBhbmNlc3RvciBvZiBjdXN0b20gZWxl
bWVudCBmcm9tIHRoZSBvd25lciBkb2N1bWVudCBpbnRvIGEgY2xvbmVkIGRvY3VtZW50IG11c3Qg
ZW5xdWV1ZSBhbmQgaW52b2tlIGFkb3B0ZWRDYWxsYmFjayAKK1BBU1MgSW5zZXJ0aW5nIGEgY3Vz
dG9tIGVsZW1lbnQgaW50byBhIHNoYWRvdyB0cmVlIGluIGEgY2xvbmVkIGRvY3VtZW50IG11c3Qg
ZW5xdWV1ZSBhbmQgaW52b2tlIGFkb3B0ZWRDYWxsYmFjayAKK1BBU1MgSW5zZXJ0aW5nIHRoZSBz
aGFkb3cgaG9zdCBvZiBhIGN1c3RvbSBlbGVtZW50IGludG8gYSBjbG9uZWQgZG9jdW1lbnQgbXVz
dCBlbnF1ZXVlIGFuZCBpbnZva2UgYWRvcHRlZENhbGxiYWNrIAorUEFTUyBNb3ZpbmcgdGhlIHNo
YWRvdyBob3N0IG9mIGEgY3VzdG9tIGVsZW1lbnQgZnJvbSB0aGUgb3duZXIgZG9jdW1lbnQgaW50
byBhIGNsb25lZCBkb2N1bWVudCBtdXN0IGVucXVldWUgYW5kIGludm9rZSBhZG9wdGVkQ2FsbGJh
Y2sgCitQQVNTIEluc2VydGluZyBhIGN1c3RvbSBlbGVtZW50IGludG8gYSBkZXRhY2hlZCBzaGFk
b3cgdHJlZSB0aGF0IGJlbG9uZ3MgdG8gYSBjbG9uZWQgZG9jdW1lbnQgbXVzdCBlbnF1ZXVlIGFu
ZCBpbnZva2UgYWRvcHRlZENhbGxiYWNrIAorUEFTUyBJbnNlcnRpbmcgYSBjdXN0b20gZWxlbWVu
dCBpbnRvIGEgZG9jdW1lbnQgY3JlYXRlZCBieSBjcmVhdGVIVE1MRG9jdW1lbnQgbXVzdCBlbnF1
ZXVlIGFuZCBpbnZva2UgYWRvcHRlZENhbGxiYWNrIAorUEFTUyBNb3ZpbmcgYSBjdXN0b20gZWxl
bWVudCBmcm9tIHRoZSBvd25lciBkb2N1bWVudCBpbnRvIGEgZG9jdW1lbnQgY3JlYXRlZCBieSBj
cmVhdGVIVE1MRG9jdW1lbnQgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgYWRvcHRlZENhbGxiYWNr
IAorUEFTUyBJbnNlcnRpbmcgYW4gYW5jZXN0b3Igb2YgY3VzdG9tIGVsZW1lbnQgaW50byBhIGRv
Y3VtZW50IGNyZWF0ZWQgYnkgY3JlYXRlSFRNTERvY3VtZW50IG11c3QgZW5xdWV1ZSBhbmQgaW52
b2tlIGFkb3B0ZWRDYWxsYmFjayAKK1BBU1MgTW92aW5nIGFuIGFuY2VzdG9yIG9mIGN1c3RvbSBl
bGVtZW50IGZyb20gdGhlIG93bmVyIGRvY3VtZW50IGludG8gYSBkb2N1bWVudCBjcmVhdGVkIGJ5
IGNyZWF0ZUhUTUxEb2N1bWVudCBtdXN0IGVucXVldWUgYW5kIGludm9rZSBhZG9wdGVkQ2FsbGJh
Y2sgCitQQVNTIEluc2VydGluZyBhIGN1c3RvbSBlbGVtZW50IGludG8gYSBzaGFkb3cgdHJlZSBp
biBhIGRvY3VtZW50IGNyZWF0ZWQgYnkgY3JlYXRlSFRNTERvY3VtZW50IG11c3QgZW5xdWV1ZSBh
bmQgaW52b2tlIGFkb3B0ZWRDYWxsYmFjayAKK1BBU1MgSW5zZXJ0aW5nIHRoZSBzaGFkb3cgaG9z
dCBvZiBhIGN1c3RvbSBlbGVtZW50IGludG8gYSBkb2N1bWVudCBjcmVhdGVkIGJ5IGNyZWF0ZUhU
TUxEb2N1bWVudCBtdXN0IGVucXVldWUgYW5kIGludm9rZSBhZG9wdGVkQ2FsbGJhY2sgCitQQVNT
IE1vdmluZyB0aGUgc2hhZG93IGhvc3Qgb2YgYSBjdXN0b20gZWxlbWVudCBmcm9tIHRoZSBvd25l
ciBkb2N1bWVudCBpbnRvIGEgZG9jdW1lbnQgY3JlYXRlZCBieSBjcmVhdGVIVE1MRG9jdW1lbnQg
bXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgYWRvcHRlZENhbGxiYWNrIAorUEFTUyBJbnNlcnRpbmcg
YSBjdXN0b20gZWxlbWVudCBpbnRvIGEgZGV0YWNoZWQgc2hhZG93IHRyZWUgdGhhdCBiZWxvbmdz
IHRvIGEgZG9jdW1lbnQgY3JlYXRlZCBieSBjcmVhdGVIVE1MRG9jdW1lbnQgbXVzdCBlbnF1ZXVl
IGFuZCBpbnZva2UgYWRvcHRlZENhbGxiYWNrIAorUEFTUyBJbnNlcnRpbmcgYSBjdXN0b20gZWxl
bWVudCBpbnRvIGEgSFRNTCBkb2N1bWVudCBjcmVhdGVkIGJ5IGNyZWF0ZURvY3VtZW50IG11c3Qg
ZW5xdWV1ZSBhbmQgaW52b2tlIGFkb3B0ZWRDYWxsYmFjayAKK1BBU1MgTW92aW5nIGEgY3VzdG9t
IGVsZW1lbnQgZnJvbSB0aGUgb3duZXIgZG9jdW1lbnQgaW50byBhIEhUTUwgZG9jdW1lbnQgY3Jl
YXRlZCBieSBjcmVhdGVEb2N1bWVudCBtdXN0IGVucXVldWUgYW5kIGludm9rZSBhZG9wdGVkQ2Fs
bGJhY2sgCitQQVNTIEluc2VydGluZyBhbiBhbmNlc3RvciBvZiBjdXN0b20gZWxlbWVudCBpbnRv
IGEgSFRNTCBkb2N1bWVudCBjcmVhdGVkIGJ5IGNyZWF0ZURvY3VtZW50IG11c3QgZW5xdWV1ZSBh
bmQgaW52b2tlIGFkb3B0ZWRDYWxsYmFjayAKK1BBU1MgTW92aW5nIGFuIGFuY2VzdG9yIG9mIGN1
c3RvbSBlbGVtZW50IGZyb20gdGhlIG93bmVyIGRvY3VtZW50IGludG8gYSBIVE1MIGRvY3VtZW50
IGNyZWF0ZWQgYnkgY3JlYXRlRG9jdW1lbnQgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgYWRvcHRl
ZENhbGxiYWNrIAorUEFTUyBJbnNlcnRpbmcgYSBjdXN0b20gZWxlbWVudCBpbnRvIGEgc2hhZG93
IHRyZWUgaW4gYSBIVE1MIGRvY3VtZW50IGNyZWF0ZWQgYnkgY3JlYXRlRG9jdW1lbnQgbXVzdCBl
bnF1ZXVlIGFuZCBpbnZva2UgYWRvcHRlZENhbGxiYWNrIAorUEFTUyBJbnNlcnRpbmcgdGhlIHNo
YWRvdyBob3N0IG9mIGEgY3VzdG9tIGVsZW1lbnQgaW50byBhIEhUTUwgZG9jdW1lbnQgY3JlYXRl
ZCBieSBjcmVhdGVEb2N1bWVudCBtdXN0IGVucXVldWUgYW5kIGludm9rZSBhZG9wdGVkQ2FsbGJh
Y2sgCitQQVNTIE1vdmluZyB0aGUgc2hhZG93IGhvc3Qgb2YgYSBjdXN0b20gZWxlbWVudCBmcm9t
IHRoZSBvd25lciBkb2N1bWVudCBpbnRvIGEgSFRNTCBkb2N1bWVudCBjcmVhdGVkIGJ5IGNyZWF0
ZURvY3VtZW50IG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGFkb3B0ZWRDYWxsYmFjayAKK1BBU1Mg
SW5zZXJ0aW5nIGEgY3VzdG9tIGVsZW1lbnQgaW50byBhIGRldGFjaGVkIHNoYWRvdyB0cmVlIHRo
YXQgYmVsb25ncyB0byBhIEhUTUwgZG9jdW1lbnQgY3JlYXRlZCBieSBjcmVhdGVEb2N1bWVudCBt
dXN0IGVucXVldWUgYW5kIGludm9rZSBhZG9wdGVkQ2FsbGJhY2sgCitQQVNTIEluc2VydGluZyBh
IGN1c3RvbSBlbGVtZW50IGludG8gYSBkb2N1bWVudCBpbiBhbiBpZnJhbWUgbXVzdCBlbnF1ZXVl
IGFuZCBpbnZva2UgYWRvcHRlZENhbGxiYWNrIAorUEFTUyBNb3ZpbmcgYSBjdXN0b20gZWxlbWVu
dCBmcm9tIHRoZSBvd25lciBkb2N1bWVudCBpbnRvIGEgZG9jdW1lbnQgaW4gYW4gaWZyYW1lIG11
c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGFkb3B0ZWRDYWxsYmFjayAKK1BBU1MgSW5zZXJ0aW5nIGFu
IGFuY2VzdG9yIG9mIGN1c3RvbSBlbGVtZW50IGludG8gYSBkb2N1bWVudCBpbiBhbiBpZnJhbWUg
bXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgYWRvcHRlZENhbGxiYWNrIAorUEFTUyBNb3ZpbmcgYW4g
YW5jZXN0b3Igb2YgY3VzdG9tIGVsZW1lbnQgZnJvbSB0aGUgb3duZXIgZG9jdW1lbnQgaW50byBh
IGRvY3VtZW50IGluIGFuIGlmcmFtZSBtdXN0IGVucXVldWUgYW5kIGludm9rZSBhZG9wdGVkQ2Fs
bGJhY2sgCitQQVNTIEluc2VydGluZyBhIGN1c3RvbSBlbGVtZW50IGludG8gYSBzaGFkb3cgdHJl
ZSBpbiBhIGRvY3VtZW50IGluIGFuIGlmcmFtZSBtdXN0IGVucXVldWUgYW5kIGludm9rZSBhZG9w
dGVkQ2FsbGJhY2sgCitQQVNTIEluc2VydGluZyB0aGUgc2hhZG93IGhvc3Qgb2YgYSBjdXN0b20g
ZWxlbWVudCBpbnRvIGEgZG9jdW1lbnQgaW4gYW4gaWZyYW1lIG11c3QgZW5xdWV1ZSBhbmQgaW52
b2tlIGFkb3B0ZWRDYWxsYmFjayAKK1BBU1MgTW92aW5nIHRoZSBzaGFkb3cgaG9zdCBvZiBhIGN1
c3RvbSBlbGVtZW50IGZyb20gdGhlIG93bmVyIGRvY3VtZW50IGludG8gYSBkb2N1bWVudCBpbiBh
biBpZnJhbWUgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgYWRvcHRlZENhbGxiYWNrIAorUEFTUyBJ
bnNlcnRpbmcgYSBjdXN0b20gZWxlbWVudCBpbnRvIGEgZGV0YWNoZWQgc2hhZG93IHRyZWUgdGhh
dCBiZWxvbmdzIHRvIGEgZG9jdW1lbnQgaW4gYW4gaWZyYW1lIG11c3QgZW5xdWV1ZSBhbmQgaW52
b2tlIGFkb3B0ZWRDYWxsYmFjayAKK1BBU1MgSW5zZXJ0aW5nIGEgY3VzdG9tIGVsZW1lbnQgaW50
byBhIEhUTUwgZG9jdW1lbnQgZmV0Y2hlZCBieSBYSFIgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2Ug
YWRvcHRlZENhbGxiYWNrIAorUEFTUyBNb3ZpbmcgYSBjdXN0b20gZWxlbWVudCBmcm9tIHRoZSBv
d25lciBkb2N1bWVudCBpbnRvIGEgSFRNTCBkb2N1bWVudCBmZXRjaGVkIGJ5IFhIUiBtdXN0IGVu
cXVldWUgYW5kIGludm9rZSBhZG9wdGVkQ2FsbGJhY2sgCitQQVNTIEluc2VydGluZyBhbiBhbmNl
c3RvciBvZiBjdXN0b20gZWxlbWVudCBpbnRvIGEgSFRNTCBkb2N1bWVudCBmZXRjaGVkIGJ5IFhI
UiBtdXN0IGVucXVldWUgYW5kIGludm9rZSBhZG9wdGVkQ2FsbGJhY2sgCitQQVNTIE1vdmluZyBh
biBhbmNlc3RvciBvZiBjdXN0b20gZWxlbWVudCBmcm9tIHRoZSBvd25lciBkb2N1bWVudCBpbnRv
IGEgSFRNTCBkb2N1bWVudCBmZXRjaGVkIGJ5IFhIUiBtdXN0IGVucXVldWUgYW5kIGludm9rZSBh
ZG9wdGVkQ2FsbGJhY2sgCitQQVNTIEluc2VydGluZyBhIGN1c3RvbSBlbGVtZW50IGludG8gYSBz
aGFkb3cgdHJlZSBpbiBhIEhUTUwgZG9jdW1lbnQgZmV0Y2hlZCBieSBYSFIgbXVzdCBlbnF1ZXVl
IGFuZCBpbnZva2UgYWRvcHRlZENhbGxiYWNrIAorUEFTUyBJbnNlcnRpbmcgdGhlIHNoYWRvdyBo
b3N0IG9mIGEgY3VzdG9tIGVsZW1lbnQgaW50byBhIEhUTUwgZG9jdW1lbnQgZmV0Y2hlZCBieSBY
SFIgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgYWRvcHRlZENhbGxiYWNrIAorUEFTUyBNb3Zpbmcg
dGhlIHNoYWRvdyBob3N0IG9mIGEgY3VzdG9tIGVsZW1lbnQgZnJvbSB0aGUgb3duZXIgZG9jdW1l
bnQgaW50byBhIEhUTUwgZG9jdW1lbnQgZmV0Y2hlZCBieSBYSFIgbXVzdCBlbnF1ZXVlIGFuZCBp
bnZva2UgYWRvcHRlZENhbGxiYWNrIAorUEFTUyBJbnNlcnRpbmcgYSBjdXN0b20gZWxlbWVudCBp
bnRvIGEgZGV0YWNoZWQgc2hhZG93IHRyZWUgdGhhdCBiZWxvbmdzIHRvIGEgSFRNTCBkb2N1bWVu
dCBmZXRjaGVkIGJ5IFhIUiBtdXN0IGVucXVldWUgYW5kIGludm9rZSBhZG9wdGVkQ2FsbGJhY2sg
CisgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2N1c3RvbS1lbGVtZW50cy9hZG9wdGVkLWNhbGxiYWNrLmh0bWwgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9hZG9wdGVkLWNh
bGxiYWNrLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZThmY2RiYzY0ZDlmYTY5MzJjMDZiY2RkNzA5MjVjNmYx
MWE5YjU1NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL2Fkb3B0ZWQtY2FsbGJhY2suaHRtbApAQCAt
MCwwICsxLDEzNSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHRpdGxlPkN1
c3RvbSBFbGVtZW50czogYWRvcHRlZENhbGxiYWNrPC90aXRsZT4KKzxtZXRhIG5hbWU9ImF1dGhv
ciIgdGl0bGU9IlJ5b3N1a2UgTml3YSIgaHJlZj0ibWFpbHRvOnJuaXdhQHdlYmtpdC5vcmciPgor
PG1ldGEgbmFtZT0iYXNzZXJ0IiBjb250ZW50PSJhZG9wdGVkQ2FsbGJhY2sgbXVzdCBiZSBlbnF1
ZXVlZCB3aGVuZXZlciBjdXN0b20gZWxlbWVudCBpcyBhZG9wdGVkIGludG8gYSBuZXcgZG9jdW1l
bnQiPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL3czYy5naXRodWIuaW8vd2ViY29t
cG9uZW50cy9zcGVjL2N1c3RvbS8jZGZuLWNvbm5lY3RlZC1jYWxsYmFjayI+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4vcmVzb3VyY2VzL2RvY3VtZW50LXR5cGVzLmpzIj48L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0ibG9nIj48L2Rpdj4KKzxzY3JpcHQ+CisKK3Zh
ciBjYWxscyA9IFtdOworY2xhc3MgTXlDdXN0b21FbGVtZW50IGV4dGVuZHMgSFRNTEVsZW1lbnQg
eworICAgIGNvbm5lY3RlZENhbGxiYWNrKCkgeyBjYWxscy5wdXNoKCdjb25uZWN0ZWQnKTsgfQor
ICAgIGFkb3B0ZWRDYWxsYmFjayhvbGREb2N1bWVudCwgbmV3RG9jdW1lbnQpIHsgY2FsbHMucHVz
aCgnYWRvcHRlZCcpOyBjYWxscy5wdXNoKG9sZERvY3VtZW50KTsgY2FsbHMucHVzaChuZXdEb2N1
bWVudCk7IH0KKyAgICBkaXNjb25uZWN0ZWRDYWxsYmFjaygpIHsgY2FsbHMucHVzaCgnZGlzY29u
bmVjdGVkJyk7IH0KK30KK2N1c3RvbUVsZW1lbnRzLmRlZmluZSgnbXktY3VzdG9tLWVsZW1lbnQn
LCBNeUN1c3RvbUVsZW1lbnQpOworCit0ZXN0KGZ1bmN0aW9uICgpIHsKKyAgICB2YXIgaW5zdGFu
Y2UgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdteS1jdXN0b20tZWxlbWVudCcpOworICAgIGNh
bGxzID0gW107CisgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpbnN0YW5jZSk7CisgICAg
YXNzZXJ0X2FycmF5X2VxdWFscyhjYWxscywgWydjb25uZWN0ZWQnXSk7Cit9LCAnSW5zZXJ0aW5n
IGEgY3VzdG9tIGVsZW1lbnQgaW50byB0aGUgb3duZXIgZG9jdW1lbnQgbXVzdCBub3QgZW5xdWV1
ZSBhbmQgaW52b2tlIGFkb3B0ZWRDYWxsYmFjaycpOworCitEb2N1bWVudFR5cGVzLmZvckVhY2go
ZnVuY3Rpb24gKGVudHJ5KSB7CisgICAgaWYgKGVudHJ5LmlzT3duZXIpCisgICAgICAgIHJldHVy
bjsKKworICAgIHZhciBkb2N1bWVudE5hbWUgPSBlbnRyeS5uYW1lOworICAgIHZhciBnZXREb2N1
bWVudCA9IGVudHJ5LmNyZWF0ZTsKKworICAgIHByb21pc2VfdGVzdChmdW5jdGlvbiAoKSB7Cisg
ICAgICAgIHJldHVybiBnZXREb2N1bWVudCgpLnRoZW4oZnVuY3Rpb24gKGRvYykgeworICAgICAg
ICAgICAgdmFyIGluc3RhbmNlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbXktY3VzdG9tLWVs
ZW1lbnQnKTsKKyAgICAgICAgICAgIGNhbGxzID0gW107CisgICAgICAgICAgICBkb2MuZG9jdW1l
bnRFbGVtZW50LmFwcGVuZENoaWxkKGluc3RhbmNlKTsKKyAgICAgICAgICAgIGFzc2VydF9hcnJh
eV9lcXVhbHMoY2FsbHMsIFsnYWRvcHRlZCcsIGRvY3VtZW50LCBkb2MsICdjb25uZWN0ZWQnXSk7
CisgICAgICAgIH0pOworICAgIH0sICdJbnNlcnRpbmcgYSBjdXN0b20gZWxlbWVudCBpbnRvIGEg
JyArIGRvY3VtZW50TmFtZSArICcgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgYWRvcHRlZENhbGxi
YWNrJyk7CisKKyAgICBwcm9taXNlX3Rlc3QoZnVuY3Rpb24gKCkgeworICAgICAgICByZXR1cm4g
Z2V0RG9jdW1lbnQoKS50aGVuKGZ1bmN0aW9uIChkb2MpIHsKKyAgICAgICAgICAgIHZhciBpbnN0
YW5jZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ215LWN1c3RvbS1lbGVtZW50Jyk7CisgICAg
ICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGluc3RhbmNlKTsKKyAgICAgICAgICAg
IGNhbGxzID0gW107CisgICAgICAgICAgICBkb2MuZG9jdW1lbnRFbGVtZW50LmFwcGVuZENoaWxk
KGluc3RhbmNlKTsKKyAgICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoY2FsbHMsIFsnZGlz
Y29ubmVjdGVkJywgJ2Fkb3B0ZWQnLCBkb2N1bWVudCwgZG9jLCAnY29ubmVjdGVkJ10pOworICAg
ICAgICB9KTsKKyAgICB9LCAnTW92aW5nIGEgY3VzdG9tIGVsZW1lbnQgZnJvbSB0aGUgb3duZXIg
ZG9jdW1lbnQgaW50byBhICcgKyBkb2N1bWVudE5hbWUgKyAnIG11c3QgZW5xdWV1ZSBhbmQgaW52
b2tlIGFkb3B0ZWRDYWxsYmFjaycpOworCisgICAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uICgpIHsK
KyAgICAgICAgcmV0dXJuIGdldERvY3VtZW50KCkudGhlbihmdW5jdGlvbiAoZG9jKSB7CisgICAg
ICAgICAgICB2YXIgaW5zdGFuY2UgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdteS1jdXN0b20t
ZWxlbWVudCcpOworICAgICAgICAgICAgdmFyIHBhcmVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoJ2RpdicpOworICAgICAgICAgICAgcGFyZW50LmFwcGVuZENoaWxkKGluc3RhbmNlKTsKKyAg
ICAgICAgICAgIGNhbGxzID0gW107CisgICAgICAgICAgICBkb2MuZG9jdW1lbnRFbGVtZW50LmFw
cGVuZENoaWxkKHBhcmVudCk7CisgICAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGNhbGxz
LCBbJ2Fkb3B0ZWQnLCBkb2N1bWVudCwgZG9jLCAnY29ubmVjdGVkJ10pOworICAgICAgICB9KTsK
KyAgICB9LCAnSW5zZXJ0aW5nIGFuIGFuY2VzdG9yIG9mIGN1c3RvbSBlbGVtZW50IGludG8gYSAn
ICsgZG9jdW1lbnROYW1lICsgJyBtdXN0IGVucXVldWUgYW5kIGludm9rZSBhZG9wdGVkQ2FsbGJh
Y2snKTsKKworICAgIHByb21pc2VfdGVzdChmdW5jdGlvbiAoKSB7CisgICAgICAgIHJldHVybiBn
ZXREb2N1bWVudCgpLnRoZW4oZnVuY3Rpb24gKGRvYykgeworICAgICAgICAgICAgdmFyIGluc3Rh
bmNlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbXktY3VzdG9tLWVsZW1lbnQnKTsKKyAgICAg
ICAgICAgIHZhciBwYXJlbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICAg
ICAgICAgIHBhcmVudC5hcHBlbmRDaGlsZChpbnN0YW5jZSk7CisgICAgICAgICAgICBkb2N1bWVu
dC5ib2R5LmFwcGVuZENoaWxkKHBhcmVudCk7CisgICAgICAgICAgICBjYWxscyA9IFtdOworICAg
ICAgICAgICAgZG9jLmRvY3VtZW50RWxlbWVudC5hcHBlbmRDaGlsZChwYXJlbnQpOworICAgICAg
ICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhjYWxscywgWydkaXNjb25uZWN0ZWQnLCAnYWRvcHRl
ZCcsIGRvY3VtZW50LCBkb2MsICdjb25uZWN0ZWQnXSk7CisgICAgICAgIH0pOworICAgIH0sICdN
b3ZpbmcgYW4gYW5jZXN0b3Igb2YgY3VzdG9tIGVsZW1lbnQgZnJvbSB0aGUgb3duZXIgZG9jdW1l
bnQgaW50byBhICcgKyBkb2N1bWVudE5hbWUgKyAnIG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGFk
b3B0ZWRDYWxsYmFjaycpOworCisgICAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uICgpIHsKKyAgICAg
ICAgcmV0dXJuIGdldERvY3VtZW50KCkudGhlbihmdW5jdGlvbiAoZG9jKSB7CisgICAgICAgICAg
ICB2YXIgaW5zdGFuY2UgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdteS1jdXN0b20tZWxlbWVu
dCcpOworICAgICAgICAgICAgdmFyIGhvc3QgPSBkb2MuY3JlYXRlRWxlbWVudE5TKCdodHRwOi8v
d3d3LnczLm9yZy8xOTk5L3hodG1sJywgJ2RpdicpOworICAgICAgICAgICAgdmFyIHNoYWRvd1Jv
b3QgPSBob3N0LmF0dGFjaFNoYWRvdyh7bW9kZTogJ2Nsb3NlZCd9KTsKKyAgICAgICAgICAgIGRv
Yy5kb2N1bWVudEVsZW1lbnQuYXBwZW5kQ2hpbGQoaG9zdCk7CisKKyAgICAgICAgICAgIGNhbGxz
ID0gW107CisgICAgICAgICAgICBzaGFkb3dSb290LmFwcGVuZENoaWxkKGluc3RhbmNlKTsKKyAg
ICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoY2FsbHMsIFsnYWRvcHRlZCcsIGRvY3VtZW50
LCBkb2MsICdjb25uZWN0ZWQnXSk7CisgICAgICAgIH0pOworICAgIH0sICdJbnNlcnRpbmcgYSBj
dXN0b20gZWxlbWVudCBpbnRvIGEgc2hhZG93IHRyZWUgaW4gYSAnICsgZG9jdW1lbnROYW1lICsg
JyBtdXN0IGVucXVldWUgYW5kIGludm9rZSBhZG9wdGVkQ2FsbGJhY2snKTsKKworICAgIHByb21p
c2VfdGVzdChmdW5jdGlvbiAoKSB7CisgICAgICAgIHJldHVybiBnZXREb2N1bWVudCgpLnRoZW4o
ZnVuY3Rpb24gKGRvYykgeworICAgICAgICAgICAgdmFyIGluc3RhbmNlID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgnbXktY3VzdG9tLWVsZW1lbnQnKTsKKyAgICAgICAgICAgIHZhciBob3N0ID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgICAgICAgICB2YXIgc2hhZG93Um9v
dCA9IGhvc3QuYXR0YWNoU2hhZG93KHttb2RlOiAnY2xvc2VkJ30pOworICAgICAgICAgICAgc2hh
ZG93Um9vdC5hcHBlbmRDaGlsZChpbnN0YW5jZSk7CisKKyAgICAgICAgICAgIGNhbGxzID0gW107
CisgICAgICAgICAgICBkb2MuZG9jdW1lbnRFbGVtZW50LmFwcGVuZENoaWxkKGhvc3QpOworICAg
ICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhjYWxscywgWydhZG9wdGVkJywgZG9jdW1lbnQs
IGRvYywgJ2Nvbm5lY3RlZCddKTsKKyAgICAgICAgfSk7CisgICAgfSwgJ0luc2VydGluZyB0aGUg
c2hhZG93IGhvc3Qgb2YgYSBjdXN0b20gZWxlbWVudCBpbnRvIGEgJyArIGRvY3VtZW50TmFtZSAr
ICcgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgYWRvcHRlZENhbGxiYWNrJyk7CisKKyAgICBwcm9t
aXNlX3Rlc3QoZnVuY3Rpb24gKCkgeworICAgICAgICByZXR1cm4gZ2V0RG9jdW1lbnQoKS50aGVu
KGZ1bmN0aW9uIChkb2MpIHsKKyAgICAgICAgICAgIHZhciBpbnN0YW5jZSA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoJ215LWN1c3RvbS1lbGVtZW50Jyk7CisgICAgICAgICAgICB2YXIgaG9zdCA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgICAgICAgICAgdmFyIHNoYWRvd1Jv
b3QgPSBob3N0LmF0dGFjaFNoYWRvdyh7bW9kZTogJ2Nsb3NlZCd9KTsKKyAgICAgICAgICAgIHNo
YWRvd1Jvb3QuYXBwZW5kQ2hpbGQoaW5zdGFuY2UpOworICAgICAgICAgICAgZG9jdW1lbnQuYm9k
eS5hcHBlbmRDaGlsZChob3N0KTsKKworICAgICAgICAgICAgY2FsbHMgPSBbXTsKKyAgICAgICAg
ICAgIGRvYy5kb2N1bWVudEVsZW1lbnQuYXBwZW5kQ2hpbGQoaG9zdCk7CisgICAgICAgICAgICBh
c3NlcnRfYXJyYXlfZXF1YWxzKGNhbGxzLCBbJ2Rpc2Nvbm5lY3RlZCcsICdhZG9wdGVkJywgZG9j
dW1lbnQsIGRvYywgJ2Nvbm5lY3RlZCddKTsKKyAgICAgICAgfSk7CisgICAgfSwgJ01vdmluZyB0
aGUgc2hhZG93IGhvc3Qgb2YgYSBjdXN0b20gZWxlbWVudCBmcm9tIHRoZSBvd25lciBkb2N1bWVu
dCBpbnRvIGEgJyArIGRvY3VtZW50TmFtZSArICcgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgYWRv
cHRlZENhbGxiYWNrJyk7CisKKyAgICBwcm9taXNlX3Rlc3QoZnVuY3Rpb24gKCkgeworICAgICAg
ICByZXR1cm4gZ2V0RG9jdW1lbnQoKS50aGVuKGZ1bmN0aW9uIChkb2MpIHsKKyAgICAgICAgICAg
IHZhciBpbnN0YW5jZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ215LWN1c3RvbS1lbGVtZW50
Jyk7CisgICAgICAgICAgICB2YXIgaG9zdCA9IGRvYy5jcmVhdGVFbGVtZW50TlMoJ2h0dHA6Ly93
d3cudzMub3JnLzE5OTkveGh0bWwnLCAnZGl2Jyk7CisgICAgICAgICAgICB2YXIgc2hhZG93Um9v
dCA9IGhvc3QuYXR0YWNoU2hhZG93KHttb2RlOiAnY2xvc2VkJ30pOworCisgICAgICAgICAgICBj
YWxscyA9IFtdOworICAgICAgICAgICAgc2hhZG93Um9vdC5hcHBlbmRDaGlsZChpbnN0YW5jZSk7
CisgICAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGNhbGxzLCBbJ2Fkb3B0ZWQnLCBkb2N1
bWVudCwgZG9jXSk7CisgICAgICAgIH0pOworICAgIH0sICdJbnNlcnRpbmcgYSBjdXN0b20gZWxl
bWVudCBpbnRvIGEgZGV0YWNoZWQgc2hhZG93IHRyZWUgdGhhdCBiZWxvbmdzIHRvIGEgJyArIGRv
Y3VtZW50TmFtZSArICcgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgYWRvcHRlZENhbGxiYWNrJyk7
Cit9KTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9hdHRy
aWJ1dGUtY2hhbmdlZC1jYWxsYmFjay1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9hdHRyaWJ1dGUtY2hhbmdl
ZC1jYWxsYmFjay1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmNmMzliYjc1YjhlMGI3MzU2MjJh
OTVhNDA1MjllZjViNzUzMGQ3ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL2F0dHJpYnV0ZS1jaGFu
Z2VkLWNhbGxiYWNrLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACisKK1BBU1Mgc2V0QXR0
cmlidXRlIGFuZCByZW1vdmVBdHRyaWJ1dGUgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgYXR0cmli
dXRlQ2hhbmdlZENhbGxiYWNrIAorUEFTUyBzZXRBdHRyaWJ1dGVOUyBhbmQgcmVtb3ZlQXR0cmli
dXRlTlMgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrIAor
UEFTUyBzZXRBdHRyaWJ1dGVOb2RlIGFuZCByZW1vdmVBdHRyaWJ1dGVOUyBtdXN0IGVucXVldWUg
YW5kIGludm9rZSBhdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2sgCitQQVNTIHNldEF0dHJpYnV0ZU5v
ZGUgYW5kIHJlbW92ZUF0dHJpYnV0ZU5TIG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGF0dHJpYnV0
ZUNoYW5nZWRDYWxsYmFjayAKK1BBU1MgTXV0YXRpbmcgYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNr
IGFmdGVyIGNhbGxpbmcgY3VzdG9tRWxlbWVudHMuZGVmaW5lIG11c3Qgbm90IGFmZmVjdCB0aGUg
Y2FsbGJhY2sgYmVpbmcgaW52b2tlZCAKK1BBU1MgYXR0cmlidXRlZENoYW5nZWRDYWxsYmFjayBt
dXN0IG5vdCBiZSBpbnZva2VkIHdoZW4gdGhlIG9ic2VydmVkIGF0dHJpYnV0ZXMgZG9lcyBub3Qg
Y29udGFpbiB0aGUgYXR0cmlidXRlLiAKK1BBU1MgTXV0YXRpbmcgb2JzZXJ2ZWRBdHRyaWJ1dGVz
IGFmdGVyIGNhbGxpbmcgY3VzdG9tRWxlbWVudHMuZGVmaW5lIG11c3Qgbm90IGFmZmVjdCB0aGUg
c2V0IG9mIGF0dHJpYnV0ZXMgZm9yIHdoaWNoIGF0dHJpYnV0ZWRDaGFuZ2VkQ2FsbGJhY2sgaXMg
aW52b2tlZCAKK1BBU1MgYXR0cmlidXRlZENoYW5nZWRDYWxsYmFjayBtdXN0IGJlIGVucXVldWVk
IGZvciBhdHRyaWJ1dGVzIHNwZWNpZmllZCBpbiBhIG5vbi1BcnJheSBpdGVyYWJsZSBvYnNlcnZl
ZEF0dHJpYnV0ZXMgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL2F0dHJpYnV0ZS1jaGFuZ2VkLWNhbGxiYWNr
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3Rv
bS1lbGVtZW50cy9hdHRyaWJ1dGUtY2hhbmdlZC1jYWxsYmFjay5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY4
ZTQxOTQwMzZjOGQ1M2UzNjUzOWM5NTBlNjk2NDQwMmJhYjgwNDAKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVt
ZW50cy9hdHRyaWJ1dGUtY2hhbmdlZC1jYWxsYmFjay5odG1sCkBAIC0wLDAgKzEsMTkyIEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8dGl0bGU+Q3VzdG9tIEVsZW1lbnRzOiBh
dHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2s8L3RpdGxlPgorPG1ldGEgbmFtZT0iYXV0aG9yIiB0aXRs
ZT0iUnlvc3VrZSBOaXdhIiBocmVmPSJtYWlsdG86cm5pd2FAd2Via2l0Lm9yZyI+Cis8bWV0YSBu
YW1lPSJhc3NlcnQiIGNvbnRlbnQ9ImF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayBtdXN0IGJlIGVu
cXVldWVkIHdoZW5ldmVyIGN1c3RvbSBlbGVtZW50J3MgYXR0cmlidXRlIGlzIGFkZGVkLCBjaGFu
Z2VkIG9yIHJlbW92ZWQiPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL3czYy5naXRo
dWIuaW8vd2ViY29tcG9uZW50cy9zcGVjL2N1c3RvbS8jZGZuLWF0dHJpYnV0ZS1jaGFuZ2VkLWNh
bGxiYWNrIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3Mu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFy
bmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9ImxvZyI+
PC9kaXY+Cis8c2NyaXB0PgorCit2YXIgYXJndW1lbnRMaXN0ID0gW107CitjbGFzcyBNeUN1c3Rv
bUVsZW1lbnQgZXh0ZW5kcyBIVE1MRWxlbWVudCB7CisgICAgYXR0cmlidXRlQ2hhbmdlZENhbGxi
YWNrKG5hbWUsIG9sZFZhbHVlLCBuZXdWYWx1ZSwgbmFtZXNwYWNlKSB7CisgICAgICAgIGFyZ3Vt
ZW50TGlzdC5wdXNoKHthcmd1bWVudHM6IGFyZ3VtZW50cywgdmFsdWU6IHRoaXMuZ2V0QXR0cmli
dXRlTlMobmFtZXNwYWNlLCBuYW1lKX0pOworICAgIH0KK30KK015Q3VzdG9tRWxlbWVudC5vYnNl
cnZlZEF0dHJpYnV0ZXMgPSBbJ3RpdGxlJywgJ2lkJywgJ3InXTsKK2N1c3RvbUVsZW1lbnRzLmRl
ZmluZSgnbXktY3VzdG9tLWVsZW1lbnQnLCBNeUN1c3RvbUVsZW1lbnQpOworCit0ZXN0KGZ1bmN0
aW9uICgpIHsKKyAgICB2YXIgaW5zdGFuY2UgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdteS1j
dXN0b20tZWxlbWVudCcpOworICAgIGFyZ3VtZW50TGlzdCA9IFtdOworCisgICAgaW5zdGFuY2Uu
c2V0QXR0cmlidXRlKCd0aXRsZScsICdmb28nKTsKKyAgICBhc3NlcnRfZXF1YWxzKGluc3RhbmNl
LmdldEF0dHJpYnV0ZSgndGl0bGUnKSwgJ2ZvbycpOworICAgIGFzc2VydF9lcXVhbHMoYXJndW1l
bnRMaXN0Lmxlbmd0aCwgMSk7CisgICAgYXNzZXJ0X2VxdWFscyhhcmd1bWVudExpc3RbMF0udmFs
dWUsICdmb28nKTsKKyAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGFyZ3VtZW50TGlzdFswXS5hcmd1
bWVudHMsIFsndGl0bGUnLCBudWxsLCAnZm9vJywgbnVsbF0pOworCisgICAgaW5zdGFuY2UucmVt
b3ZlQXR0cmlidXRlKCd0aXRsZScpOworICAgIGFzc2VydF9lcXVhbHMoaW5zdGFuY2UuZ2V0QXR0
cmlidXRlKCd0aXRsZScpLCBudWxsKTsKKyAgICBhc3NlcnRfZXF1YWxzKGFyZ3VtZW50TGlzdC5s
ZW5ndGgsIDIpOworICAgIGFzc2VydF9lcXVhbHMoYXJndW1lbnRMaXN0WzFdLnZhbHVlLCBudWxs
KTsKKyAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGFyZ3VtZW50TGlzdFsxXS5hcmd1bWVudHMsIFsn
dGl0bGUnLCAnZm9vJywgbnVsbCwgbnVsbF0pOworCit9LCAnc2V0QXR0cmlidXRlIGFuZCByZW1v
dmVBdHRyaWJ1dGUgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgYXR0cmlidXRlQ2hhbmdlZENhbGxi
YWNrJyk7CisKK3Rlc3QoZnVuY3Rpb24gKCkgeworICAgIHZhciBpbnN0YW5jZSA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoJ215LWN1c3RvbS1lbGVtZW50Jyk7CisgICAgYXJndW1lbnRMaXN0ID0g
W107CisKKyAgICBpbnN0YW5jZS5zZXRBdHRyaWJ1dGVOUygnaHR0cDovL3d3dy53My5vcmcvMjAw
MC9zdmcnLCAndGl0bGUnLCAnaGVsbG8nKTsKKyAgICBhc3NlcnRfZXF1YWxzKGluc3RhbmNlLmdl
dEF0dHJpYnV0ZSgndGl0bGUnKSwgJ2hlbGxvJyk7CisgICAgYXNzZXJ0X2VxdWFscyhhcmd1bWVu
dExpc3QubGVuZ3RoLCAxKTsKKyAgICBhc3NlcnRfZXF1YWxzKGFyZ3VtZW50TGlzdFswXS52YWx1
ZSwgJ2hlbGxvJyk7CisgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhhcmd1bWVudExpc3RbMF0uYXJn
dW1lbnRzLCBbJ3RpdGxlJywgbnVsbCwgJ2hlbGxvJywgJ2h0dHA6Ly93d3cudzMub3JnLzIwMDAv
c3ZnJ10pOworCisgICAgaW5zdGFuY2UucmVtb3ZlQXR0cmlidXRlTlMoJ2h0dHA6Ly93d3cudzMu
b3JnLzIwMDAvc3ZnJywgJ3RpdGxlJyk7CisgICAgYXNzZXJ0X2VxdWFscyhpbnN0YW5jZS5nZXRB
dHRyaWJ1dGUoJ3RpdGxlJyksIG51bGwpOworICAgIGFzc2VydF9lcXVhbHMoYXJndW1lbnRMaXN0
Lmxlbmd0aCwgMik7CisgICAgYXNzZXJ0X2VxdWFscyhhcmd1bWVudExpc3RbMV0udmFsdWUsIG51
bGwpOworICAgIGFzc2VydF9hcnJheV9lcXVhbHMoYXJndW1lbnRMaXN0WzFdLmFyZ3VtZW50cywg
Wyd0aXRsZScsICdoZWxsbycsIG51bGwsICdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyddKTsK
KworfSwgJ3NldEF0dHJpYnV0ZU5TIGFuZCByZW1vdmVBdHRyaWJ1dGVOUyBtdXN0IGVucXVldWUg
YW5kIGludm9rZSBhdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2snKTsKKwordGVzdChmdW5jdGlvbiAo
KSB7CisgICAgdmFyIGluc3RhbmNlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbXktY3VzdG9t
LWVsZW1lbnQnKTsKKyAgICBhcmd1bWVudExpc3QgPSBbXTsKKworICAgIHZhciBhdHRyID0gZG9j
dW1lbnQuY3JlYXRlQXR0cmlidXRlKCdpZCcpOworICAgIGF0dHIudmFsdWUgPSAnYmFyJzsKKyAg
ICBpbnN0YW5jZS5zZXRBdHRyaWJ1dGVOb2RlKGF0dHIpOworCisgICAgYXNzZXJ0X2VxdWFscyhp
bnN0YW5jZS5nZXRBdHRyaWJ1dGUoJ2lkJyksICdiYXInKTsKKyAgICBhc3NlcnRfZXF1YWxzKGFy
Z3VtZW50TGlzdC5sZW5ndGgsIDEpOworICAgIGFzc2VydF9lcXVhbHMoYXJndW1lbnRMaXN0WzBd
LnZhbHVlLCAnYmFyJyk7CisgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhhcmd1bWVudExpc3RbMF0u
YXJndW1lbnRzLCBbJ2lkJywgbnVsbCwgJ2JhcicsIG51bGxdKTsKKworICAgIGluc3RhbmNlLnJl
bW92ZUF0dHJpYnV0ZU5vZGUoYXR0cik7CisgICAgYXNzZXJ0X2VxdWFscyhpbnN0YW5jZS5nZXRB
dHRyaWJ1dGUoJ2lkJyksIG51bGwpOworICAgIGFzc2VydF9lcXVhbHMoYXJndW1lbnRMaXN0Lmxl
bmd0aCwgMik7CisgICAgYXNzZXJ0X2VxdWFscyhhcmd1bWVudExpc3RbMV0udmFsdWUsIG51bGwp
OworICAgIGFzc2VydF9hcnJheV9lcXVhbHMoYXJndW1lbnRMaXN0WzFdLmFyZ3VtZW50cywgWydp
ZCcsICdiYXInLCBudWxsLCBudWxsXSk7CisKK30sICdzZXRBdHRyaWJ1dGVOb2RlIGFuZCByZW1v
dmVBdHRyaWJ1dGVOUyBtdXN0IGVucXVldWUgYW5kIGludm9rZSBhdHRyaWJ1dGVDaGFuZ2VkQ2Fs
bGJhY2snKTsKKwordGVzdChmdW5jdGlvbiAoKSB7CisgICAgdmFyIGluc3RhbmNlID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgnbXktY3VzdG9tLWVsZW1lbnQnKTsKKyAgICBhcmd1bWVudExpc3Qg
PSBbXTsKKworICAgIHZhciBhdHRyID0gZG9jdW1lbnQuY3JlYXRlQXR0cmlidXRlTlMoJ2h0dHA6
Ly93d3cudzMub3JnLzIwMDAvc3ZnJywgJ3InKTsKKyAgICBhdHRyLnZhbHVlID0gJzEwMCc7Cisg
ICAgaW5zdGFuY2Uuc2V0QXR0cmlidXRlTm9kZShhdHRyKTsKKworICAgIGFzc2VydF9lcXVhbHMo
aW5zdGFuY2UuZ2V0QXR0cmlidXRlKCdyJyksICcxMDAnKTsKKyAgICBhc3NlcnRfZXF1YWxzKGFy
Z3VtZW50TGlzdC5sZW5ndGgsIDEpOworICAgIGFzc2VydF9lcXVhbHMoYXJndW1lbnRMaXN0WzBd
LnZhbHVlLCAnMTAwJyk7CisgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhhcmd1bWVudExpc3RbMF0u
YXJndW1lbnRzLCBbJ3InLCBudWxsLCAnMTAwJywgJ2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3Zn
J10pOworCisgICAgaW5zdGFuY2UucmVtb3ZlQXR0cmlidXRlTm9kZShhdHRyKTsKKyAgICBhc3Nl
cnRfZXF1YWxzKGluc3RhbmNlLmdldEF0dHJpYnV0ZSgncicpLCBudWxsKTsKKyAgICBhc3NlcnRf
ZXF1YWxzKGFyZ3VtZW50TGlzdC5sZW5ndGgsIDIpOworICAgIGFzc2VydF9lcXVhbHMoYXJndW1l
bnRMaXN0WzFdLnZhbHVlLCBudWxsKTsKKyAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGFyZ3VtZW50
TGlzdFsxXS5hcmd1bWVudHMsIFsncicsICcxMDAnLCBudWxsLCAnaHR0cDovL3d3dy53My5vcmcv
MjAwMC9zdmcnXSk7Cit9LCAnc2V0QXR0cmlidXRlTm9kZSBhbmQgcmVtb3ZlQXR0cmlidXRlTlMg
bXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrJyk7CisKK3Rl
c3QoZnVuY3Rpb24gKCkgeworICAgIHZhciBjYWxsc1RvT2xkID0gW107CisgICAgdmFyIGNhbGxz
VG9OZXcgPSBbXTsKKyAgICBjbGFzcyBDdXN0b21FbGVtZW50IGV4dGVuZHMgSFRNTEVsZW1lbnQg
eyB9CisgICAgQ3VzdG9tRWxlbWVudC5wcm90b3R5cGUuYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNr
ID0gZnVuY3Rpb24gKCkgeworICAgICAgICBjYWxsc1RvT2xkLnB1c2goQXJyYXkuZnJvbShhcmd1
bWVudHMpKTsKKyAgICB9CisgICAgQ3VzdG9tRWxlbWVudC5vYnNlcnZlZEF0dHJpYnV0ZXMgPSBb
J3RpdGxlJ107CisgICAgY3VzdG9tRWxlbWVudHMuZGVmaW5lKCdlbGVtZW50LXdpdGgtbXV0YXRl
ZC1hdHRyaWJ1dGUtY2hhbmdlZC1jYWxsYmFjaycsIEN1c3RvbUVsZW1lbnQpOworICAgIEN1c3Rv
bUVsZW1lbnQucHJvdG90eXBlLmF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayA9IGZ1bmN0aW9uICgp
IHsKKyAgICAgICAgY2FsbHNUb05ldy5wdXNoKEFycmF5LmZyb20oYXJndW1lbnRzKSk7CisgICAg
fQorCisgICAgdmFyIGluc3RhbmNlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZWxlbWVudC13
aXRoLW11dGF0ZWQtYXR0cmlidXRlLWNoYW5nZWQtY2FsbGJhY2snKTsKKyAgICBpbnN0YW5jZS5z
ZXRBdHRyaWJ1dGUoJ3RpdGxlJywgJ2hpJyk7CisgICAgYXNzZXJ0X2VxdWFscyhpbnN0YW5jZS5n
ZXRBdHRyaWJ1dGUoJ3RpdGxlJyksICdoaScpOworICAgIGFzc2VydF9hcnJheV9lcXVhbHMoY2Fs
bHNUb05ldywgW10pOworICAgIGFzc2VydF9lcXVhbHMoY2FsbHNUb09sZC5sZW5ndGgsIDEpOwor
ICAgIGFzc2VydF9hcnJheV9lcXVhbHMoY2FsbHNUb09sZFswXSwgWyd0aXRsZScsIG51bGwsICdo
aScsIG51bGxdKTsKK30sICdNdXRhdGluZyBhdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2sgYWZ0ZXIg
Y2FsbGluZyBjdXN0b21FbGVtZW50cy5kZWZpbmUgbXVzdCBub3QgYWZmZWN0IHRoZSBjYWxsYmFj
ayBiZWluZyBpbnZva2VkJyk7CisKK3Rlc3QoZnVuY3Rpb24gKCkgeworICAgIHZhciBjYWxscyA9
IFtdOworICAgIGNsYXNzIEN1c3RvbUVsZW1lbnQgZXh0ZW5kcyBIVE1MRWxlbWVudCB7CisgICAg
ICAgIGF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjaygpIHsKKyAgICAgICAgICAgIGNhbGxzLnB1c2go
QXJyYXkuZnJvbShhcmd1bWVudHMpKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBDdXN0b21FbGVt
ZW50Lm9ic2VydmVkQXR0cmlidXRlcyA9IFsndGl0bGUnXTsKKyAgICBjdXN0b21FbGVtZW50cy5k
ZWZpbmUoJ2VsZW1lbnQtbm90LW9ic2VydmluZy1pZC1hdHRyaWJ1dGUnLCBDdXN0b21FbGVtZW50
KTsKKworICAgIHZhciBpbnN0YW5jZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2VsZW1lbnQt
bm90LW9ic2VydmluZy1pZC1hdHRyaWJ1dGUnKTsKKyAgICBpbnN0YW5jZS5zZXRBdHRyaWJ1dGUo
J3RpdGxlJywgJ2hpJyk7CisgICAgYXNzZXJ0X2VxdWFscyhjYWxscy5sZW5ndGgsIDEpOworICAg
IGFzc2VydF9hcnJheV9lcXVhbHMoY2FsbHNbMF0sIFsndGl0bGUnLCBudWxsLCAnaGknLCBudWxs
XSk7CisgICAgaW5zdGFuY2Uuc2V0QXR0cmlidXRlKCdpZCcsICdzb21lJyk7CisgICAgYXNzZXJ0
X2VxdWFscyhjYWxscy5sZW5ndGgsIDEpOworfSwgJ2F0dHJpYnV0ZWRDaGFuZ2VkQ2FsbGJhY2sg
bXVzdCBub3QgYmUgaW52b2tlZCB3aGVuIHRoZSBvYnNlcnZlZCBhdHRyaWJ1dGVzIGRvZXMgbm90
IGNvbnRhaW4gdGhlIGF0dHJpYnV0ZS4nKTsKKwordGVzdChmdW5jdGlvbiAoKSB7CisgICAgdmFy
IGNhbGxzID0gW107CisgICAgY2xhc3MgQ3VzdG9tRWxlbWVudCBleHRlbmRzIEhUTUxFbGVtZW50
IHsgfQorICAgIEN1c3RvbUVsZW1lbnQucHJvdG90eXBlLmF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFj
ayA9IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgY2FsbHMucHVzaChBcnJheS5mcm9tKGFyZ3VtZW50
cykpOworICAgIH0KKyAgICBDdXN0b21FbGVtZW50Lm9ic2VydmVkQXR0cmlidXRlcyA9IFsndGl0
bGUnLCAnbGFuZyddOworICAgIGN1c3RvbUVsZW1lbnRzLmRlZmluZSgnZWxlbWVudC13aXRoLW11
dGF0ZWQtb2JzZXJ2ZWQtYXR0cmlidXRlcycsIEN1c3RvbUVsZW1lbnQpOworICAgIEN1c3RvbUVs
ZW1lbnQub2JzZXJ2ZWRBdHRyaWJ1dGVzID0gWyd0aXRsZScsICdpZCddOworCisgICAgdmFyIGlu
c3RhbmNlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZWxlbWVudC13aXRoLW11dGF0ZWQtb2Jz
ZXJ2ZWQtYXR0cmlidXRlcycpOworICAgIGluc3RhbmNlLnNldEF0dHJpYnV0ZSgndGl0bGUnLCAn
aGknKTsKKyAgICBhc3NlcnRfZXF1YWxzKGNhbGxzLmxlbmd0aCwgMSk7CisgICAgYXNzZXJ0X2Fy
cmF5X2VxdWFscyhjYWxsc1swXSwgWyd0aXRsZScsIG51bGwsICdoaScsIG51bGxdKTsKKworICAg
IGluc3RhbmNlLnNldEF0dHJpYnV0ZSgnaWQnLCAnc29tZScpOworICAgIGFzc2VydF9lcXVhbHMo
Y2FsbHMubGVuZ3RoLCAxKTsKKworICAgIGluc3RhbmNlLnNldEF0dHJpYnV0ZSgnbGFuZycsICdl
bicpOworICAgIGFzc2VydF9lcXVhbHMoY2FsbHMubGVuZ3RoLCAyKTsKKyAgICBhc3NlcnRfYXJy
YXlfZXF1YWxzKGNhbGxzWzBdLCBbJ3RpdGxlJywgbnVsbCwgJ2hpJywgbnVsbF0pOworICAgIGFz
c2VydF9hcnJheV9lcXVhbHMoY2FsbHNbMV0sIFsnbGFuZycsIG51bGwsICdlbicsIG51bGxdKTsK
K30sICdNdXRhdGluZyBvYnNlcnZlZEF0dHJpYnV0ZXMgYWZ0ZXIgY2FsbGluZyBjdXN0b21FbGVt
ZW50cy5kZWZpbmUgbXVzdCBub3QgYWZmZWN0IHRoZSBzZXQgb2YgYXR0cmlidXRlcyBmb3Igd2hp
Y2ggYXR0cmlidXRlZENoYW5nZWRDYWxsYmFjayBpcyBpbnZva2VkJyk7CisKK3Rlc3QoZnVuY3Rp
b24gKCkgeworICAgIHZhciBjYWxscyA9IFtdOworICAgIGNsYXNzIEN1c3RvbUVsZW1lbnQgZXh0
ZW5kcyBIVE1MRWxlbWVudCB7IH0KKyAgICBDdXN0b21FbGVtZW50LnByb3RvdHlwZS5hdHRyaWJ1
dGVDaGFuZ2VkQ2FsbGJhY2sgPSBmdW5jdGlvbiAoKSB7CisgICAgICAgIGNhbGxzLnB1c2goQXJy
YXkuZnJvbShhcmd1bWVudHMpKTsKKyAgICB9CisgICAgQ3VzdG9tRWxlbWVudC5vYnNlcnZlZEF0
dHJpYnV0ZXMgPSB7IFtTeW1ib2wuaXRlcmF0b3JdOiBmdW5jdGlvbiAqKCkgeyB5aWVsZCAnbGFu
Zyc7IHlpZWxkICdzdHlsZSc7IH0gfTsKKyAgICBjdXN0b21FbGVtZW50cy5kZWZpbmUoJ2VsZW1l
bnQtd2l0aC1nZW5lcmF0b3Itb2JzZXJ2ZWQtYXR0cmlidXRlcycsIEN1c3RvbUVsZW1lbnQpOwor
CisgICAgdmFyIGluc3RhbmNlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZWxlbWVudC13aXRo
LWdlbmVyYXRvci1vYnNlcnZlZC1hdHRyaWJ1dGVzJyk7CisgICAgaW5zdGFuY2Uuc2V0QXR0cmli
dXRlKCdsYW5nJywgJ2VuJyk7CisgICAgYXNzZXJ0X2VxdWFscyhjYWxscy5sZW5ndGgsIDEpOwor
ICAgIGFzc2VydF9hcnJheV9lcXVhbHMoY2FsbHNbMF0sIFsnbGFuZycsIG51bGwsICdlbicsIG51
bGxdKTsKKworICAgIGluc3RhbmNlLnNldEF0dHJpYnV0ZSgnbGFuZycsICdqYScpOworICAgIGFz
c2VydF9lcXVhbHMoY2FsbHMubGVuZ3RoLCAyKTsKKyAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGNh
bGxzWzFdLCBbJ2xhbmcnLCAnZW4nLCAnamEnLCBudWxsXSk7CisKKyAgICBpbnN0YW5jZS5zZXRB
dHRyaWJ1dGUoJ3RpdGxlJywgJ2hlbGxvJyk7CisgICAgYXNzZXJ0X2VxdWFscyhjYWxscy5sZW5n
dGgsIDIpOworCisgICAgaW5zdGFuY2Uuc2V0QXR0cmlidXRlKCdzdHlsZScsICdmb250LXNpemU6
IDJyZW0nKTsKKyAgICBhc3NlcnRfZXF1YWxzKGNhbGxzLmxlbmd0aCwgMyk7CisgICAgYXNzZXJ0
X2FycmF5X2VxdWFscyhjYWxsc1syXSwgWydzdHlsZScsIG51bGwsICdmb250LXNpemU6IDJyZW0n
LCBudWxsXSk7Cit9LCAnYXR0cmlidXRlZENoYW5nZWRDYWxsYmFjayBtdXN0IGJlIGVucXVldWVk
IGZvciBhdHRyaWJ1dGVzIHNwZWNpZmllZCBpbiBhIG5vbi1BcnJheSBpdGVyYWJsZSBvYnNlcnZl
ZEF0dHJpYnV0ZXMnKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVt
ZW50cy9jb25uZWN0ZWQtY2FsbGJhY2tzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL2Nvbm5lY3RlZC1jYWxs
YmFja3MtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFiZjNmZTNmZTNlZWNiNTc3ZjUxYTFiZDEy
MTMzNWQ2NjIyYmMyNjQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9jb25uZWN0ZWQtY2FsbGJhY2tz
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQzIEBACisKK1BBU1MgSW5zZXJ0aW5nIGEgY3VzdG9t
IGVsZW1lbnQgaW50byBhIGRvY3VtZW50IG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGNvbm5lY3Rl
ZENhbGxiYWNrIAorUEFTUyBJbnNlcnRpbmcgYW4gYW5jZXN0b3Igb2YgY3VzdG9tIGVsZW1lbnQg
aW50byBhIGRvY3VtZW50IG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGNvbm5lY3RlZENhbGxiYWNr
IAorUEFTUyBJbnNlcnRpbmcgYSBjdXN0b20gZWxlbWVudCBpbnRvIGEgc2hhZG93IHRyZWUgaW4g
YSBkb2N1bWVudCBtdXN0IGVucXVldWUgYW5kIGludm9rZSBjb25uZWN0ZWRDYWxsYmFjayAKK1BB
U1MgSW5zZXJ0aW5nIHRoZSBzaGFkb3cgaG9zdCBvZiBhIGN1c3RvbSBlbGVtZW50IGludG8gYSBk
b2N1bWVudCBtdXN0IGVucXVldWUgYW5kIGludm9rZSBjb25uZWN0ZWRDYWxsYmFjayAKK1BBU1Mg
SW5zZXJ0aW5nIGEgY3VzdG9tIGVsZW1lbnQgaW50byBhIGRldGFjaGVkIHNoYWRvdyB0cmVlIHRo
YXQgYmVsb25ncyB0byBhIGRvY3VtZW50IG11c3Qgbm90IGVucXVldWUgYW5kIGludm9rZSBjb25u
ZWN0ZWRDYWxsYmFjayAKK1BBU1MgSW5zZXJ0aW5nIGEgY3VzdG9tIGVsZW1lbnQgaW50byBhIGRv
Y3VtZW50IG9mIGEgdGVtcGxhdGUgZWxlbWVudCBtdXN0IGVucXVldWUgYW5kIGludm9rZSBjb25u
ZWN0ZWRDYWxsYmFjayAKK1BBU1MgSW5zZXJ0aW5nIGFuIGFuY2VzdG9yIG9mIGN1c3RvbSBlbGVt
ZW50IGludG8gYSBkb2N1bWVudCBvZiBhIHRlbXBsYXRlIGVsZW1lbnQgbXVzdCBlbnF1ZXVlIGFu
ZCBpbnZva2UgY29ubmVjdGVkQ2FsbGJhY2sgCitQQVNTIEluc2VydGluZyBhIGN1c3RvbSBlbGVt
ZW50IGludG8gYSBzaGFkb3cgdHJlZSBpbiBhIGRvY3VtZW50IG9mIGEgdGVtcGxhdGUgZWxlbWVu
dCBtdXN0IGVucXVldWUgYW5kIGludm9rZSBjb25uZWN0ZWRDYWxsYmFjayAKK1BBU1MgSW5zZXJ0
aW5nIHRoZSBzaGFkb3cgaG9zdCBvZiBhIGN1c3RvbSBlbGVtZW50IGludG8gYSBkb2N1bWVudCBv
ZiBhIHRlbXBsYXRlIGVsZW1lbnQgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgY29ubmVjdGVkQ2Fs
bGJhY2sgCitQQVNTIEluc2VydGluZyBhIGN1c3RvbSBlbGVtZW50IGludG8gYSBkZXRhY2hlZCBz
aGFkb3cgdHJlZSB0aGF0IGJlbG9uZ3MgdG8gYSBkb2N1bWVudCBvZiBhIHRlbXBsYXRlIGVsZW1l
bnQgbXVzdCBub3QgZW5xdWV1ZSBhbmQgaW52b2tlIGNvbm5lY3RlZENhbGxiYWNrIAorUEFTUyBJ
bnNlcnRpbmcgYSBjdXN0b20gZWxlbWVudCBpbnRvIGEgbmV3IGRvY3VtZW50IG11c3QgZW5xdWV1
ZSBhbmQgaW52b2tlIGNvbm5lY3RlZENhbGxiYWNrIAorUEFTUyBJbnNlcnRpbmcgYW4gYW5jZXN0
b3Igb2YgY3VzdG9tIGVsZW1lbnQgaW50byBhIG5ldyBkb2N1bWVudCBtdXN0IGVucXVldWUgYW5k
IGludm9rZSBjb25uZWN0ZWRDYWxsYmFjayAKK1BBU1MgSW5zZXJ0aW5nIGEgY3VzdG9tIGVsZW1l
bnQgaW50byBhIHNoYWRvdyB0cmVlIGluIGEgbmV3IGRvY3VtZW50IG11c3QgZW5xdWV1ZSBhbmQg
aW52b2tlIGNvbm5lY3RlZENhbGxiYWNrIAorUEFTUyBJbnNlcnRpbmcgdGhlIHNoYWRvdyBob3N0
IG9mIGEgY3VzdG9tIGVsZW1lbnQgaW50byBhIG5ldyBkb2N1bWVudCBtdXN0IGVucXVldWUgYW5k
IGludm9rZSBjb25uZWN0ZWRDYWxsYmFjayAKK1BBU1MgSW5zZXJ0aW5nIGEgY3VzdG9tIGVsZW1l
bnQgaW50byBhIGRldGFjaGVkIHNoYWRvdyB0cmVlIHRoYXQgYmVsb25ncyB0byBhIG5ldyBkb2N1
bWVudCBtdXN0IG5vdCBlbnF1ZXVlIGFuZCBpbnZva2UgY29ubmVjdGVkQ2FsbGJhY2sgCitQQVNT
IEluc2VydGluZyBhIGN1c3RvbSBlbGVtZW50IGludG8gYSBjbG9uZWQgZG9jdW1lbnQgbXVzdCBl
bnF1ZXVlIGFuZCBpbnZva2UgY29ubmVjdGVkQ2FsbGJhY2sgCitQQVNTIEluc2VydGluZyBhbiBh
bmNlc3RvciBvZiBjdXN0b20gZWxlbWVudCBpbnRvIGEgY2xvbmVkIGRvY3VtZW50IG11c3QgZW5x
dWV1ZSBhbmQgaW52b2tlIGNvbm5lY3RlZENhbGxiYWNrIAorUEFTUyBJbnNlcnRpbmcgYSBjdXN0
b20gZWxlbWVudCBpbnRvIGEgc2hhZG93IHRyZWUgaW4gYSBjbG9uZWQgZG9jdW1lbnQgbXVzdCBl
bnF1ZXVlIGFuZCBpbnZva2UgY29ubmVjdGVkQ2FsbGJhY2sgCitQQVNTIEluc2VydGluZyB0aGUg
c2hhZG93IGhvc3Qgb2YgYSBjdXN0b20gZWxlbWVudCBpbnRvIGEgY2xvbmVkIGRvY3VtZW50IG11
c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGNvbm5lY3RlZENhbGxiYWNrIAorUEFTUyBJbnNlcnRpbmcg
YSBjdXN0b20gZWxlbWVudCBpbnRvIGEgZGV0YWNoZWQgc2hhZG93IHRyZWUgdGhhdCBiZWxvbmdz
IHRvIGEgY2xvbmVkIGRvY3VtZW50IG11c3Qgbm90IGVucXVldWUgYW5kIGludm9rZSBjb25uZWN0
ZWRDYWxsYmFjayAKK1BBU1MgSW5zZXJ0aW5nIGEgY3VzdG9tIGVsZW1lbnQgaW50byBhIGRvY3Vt
ZW50IGNyZWF0ZWQgYnkgY3JlYXRlSFRNTERvY3VtZW50IG11c3QgZW5xdWV1ZSBhbmQgaW52b2tl
IGNvbm5lY3RlZENhbGxiYWNrIAorUEFTUyBJbnNlcnRpbmcgYW4gYW5jZXN0b3Igb2YgY3VzdG9t
IGVsZW1lbnQgaW50byBhIGRvY3VtZW50IGNyZWF0ZWQgYnkgY3JlYXRlSFRNTERvY3VtZW50IG11
c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGNvbm5lY3RlZENhbGxiYWNrIAorUEFTUyBJbnNlcnRpbmcg
YSBjdXN0b20gZWxlbWVudCBpbnRvIGEgc2hhZG93IHRyZWUgaW4gYSBkb2N1bWVudCBjcmVhdGVk
IGJ5IGNyZWF0ZUhUTUxEb2N1bWVudCBtdXN0IGVucXVldWUgYW5kIGludm9rZSBjb25uZWN0ZWRD
YWxsYmFjayAKK1BBU1MgSW5zZXJ0aW5nIHRoZSBzaGFkb3cgaG9zdCBvZiBhIGN1c3RvbSBlbGVt
ZW50IGludG8gYSBkb2N1bWVudCBjcmVhdGVkIGJ5IGNyZWF0ZUhUTUxEb2N1bWVudCBtdXN0IGVu
cXVldWUgYW5kIGludm9rZSBjb25uZWN0ZWRDYWxsYmFjayAKK1BBU1MgSW5zZXJ0aW5nIGEgY3Vz
dG9tIGVsZW1lbnQgaW50byBhIGRldGFjaGVkIHNoYWRvdyB0cmVlIHRoYXQgYmVsb25ncyB0byBh
IGRvY3VtZW50IGNyZWF0ZWQgYnkgY3JlYXRlSFRNTERvY3VtZW50IG11c3Qgbm90IGVucXVldWUg
YW5kIGludm9rZSBjb25uZWN0ZWRDYWxsYmFjayAKK1BBU1MgSW5zZXJ0aW5nIGEgY3VzdG9tIGVs
ZW1lbnQgaW50byBhIEhUTUwgZG9jdW1lbnQgY3JlYXRlZCBieSBjcmVhdGVEb2N1bWVudCBtdXN0
IGVucXVldWUgYW5kIGludm9rZSBjb25uZWN0ZWRDYWxsYmFjayAKK1BBU1MgSW5zZXJ0aW5nIGFu
IGFuY2VzdG9yIG9mIGN1c3RvbSBlbGVtZW50IGludG8gYSBIVE1MIGRvY3VtZW50IGNyZWF0ZWQg
YnkgY3JlYXRlRG9jdW1lbnQgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgY29ubmVjdGVkQ2FsbGJh
Y2sgCitQQVNTIEluc2VydGluZyBhIGN1c3RvbSBlbGVtZW50IGludG8gYSBzaGFkb3cgdHJlZSBp
biBhIEhUTUwgZG9jdW1lbnQgY3JlYXRlZCBieSBjcmVhdGVEb2N1bWVudCBtdXN0IGVucXVldWUg
YW5kIGludm9rZSBjb25uZWN0ZWRDYWxsYmFjayAKK1BBU1MgSW5zZXJ0aW5nIHRoZSBzaGFkb3cg
aG9zdCBvZiBhIGN1c3RvbSBlbGVtZW50IGludG8gYSBIVE1MIGRvY3VtZW50IGNyZWF0ZWQgYnkg
Y3JlYXRlRG9jdW1lbnQgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgY29ubmVjdGVkQ2FsbGJhY2sg
CitQQVNTIEluc2VydGluZyBhIGN1c3RvbSBlbGVtZW50IGludG8gYSBkZXRhY2hlZCBzaGFkb3cg
dHJlZSB0aGF0IGJlbG9uZ3MgdG8gYSBIVE1MIGRvY3VtZW50IGNyZWF0ZWQgYnkgY3JlYXRlRG9j
dW1lbnQgbXVzdCBub3QgZW5xdWV1ZSBhbmQgaW52b2tlIGNvbm5lY3RlZENhbGxiYWNrIAorUEFT
UyBJbnNlcnRpbmcgYSBjdXN0b20gZWxlbWVudCBpbnRvIGEgZG9jdW1lbnQgaW4gYW4gaWZyYW1l
IG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGNvbm5lY3RlZENhbGxiYWNrIAorUEFTUyBJbnNlcnRp
bmcgYW4gYW5jZXN0b3Igb2YgY3VzdG9tIGVsZW1lbnQgaW50byBhIGRvY3VtZW50IGluIGFuIGlm
cmFtZSBtdXN0IGVucXVldWUgYW5kIGludm9rZSBjb25uZWN0ZWRDYWxsYmFjayAKK1BBU1MgSW5z
ZXJ0aW5nIGEgY3VzdG9tIGVsZW1lbnQgaW50byBhIHNoYWRvdyB0cmVlIGluIGEgZG9jdW1lbnQg
aW4gYW4gaWZyYW1lIG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGNvbm5lY3RlZENhbGxiYWNrIAor
UEFTUyBJbnNlcnRpbmcgdGhlIHNoYWRvdyBob3N0IG9mIGEgY3VzdG9tIGVsZW1lbnQgaW50byBh
IGRvY3VtZW50IGluIGFuIGlmcmFtZSBtdXN0IGVucXVldWUgYW5kIGludm9rZSBjb25uZWN0ZWRD
YWxsYmFjayAKK1BBU1MgSW5zZXJ0aW5nIGEgY3VzdG9tIGVsZW1lbnQgaW50byBhIGRldGFjaGVk
IHNoYWRvdyB0cmVlIHRoYXQgYmVsb25ncyB0byBhIGRvY3VtZW50IGluIGFuIGlmcmFtZSBtdXN0
IG5vdCBlbnF1ZXVlIGFuZCBpbnZva2UgY29ubmVjdGVkQ2FsbGJhY2sgCitQQVNTIEluc2VydGlu
ZyBhIGN1c3RvbSBlbGVtZW50IGludG8gYSBIVE1MIGRvY3VtZW50IGZldGNoZWQgYnkgWEhSIG11
c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGNvbm5lY3RlZENhbGxiYWNrIAorUEFTUyBJbnNlcnRpbmcg
YW4gYW5jZXN0b3Igb2YgY3VzdG9tIGVsZW1lbnQgaW50byBhIEhUTUwgZG9jdW1lbnQgZmV0Y2hl
ZCBieSBYSFIgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgY29ubmVjdGVkQ2FsbGJhY2sgCitQQVNT
IEluc2VydGluZyBhIGN1c3RvbSBlbGVtZW50IGludG8gYSBzaGFkb3cgdHJlZSBpbiBhIEhUTUwg
ZG9jdW1lbnQgZmV0Y2hlZCBieSBYSFIgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgY29ubmVjdGVk
Q2FsbGJhY2sgCitQQVNTIEluc2VydGluZyB0aGUgc2hhZG93IGhvc3Qgb2YgYSBjdXN0b20gZWxl
bWVudCBpbnRvIGEgSFRNTCBkb2N1bWVudCBmZXRjaGVkIGJ5IFhIUiBtdXN0IGVucXVldWUgYW5k
IGludm9rZSBjb25uZWN0ZWRDYWxsYmFjayAKK1BBU1MgSW5zZXJ0aW5nIGEgY3VzdG9tIGVsZW1l
bnQgaW50byBhIGRldGFjaGVkIHNoYWRvdyB0cmVlIHRoYXQgYmVsb25ncyB0byBhIEhUTUwgZG9j
dW1lbnQgZmV0Y2hlZCBieSBYSFIgbXVzdCBub3QgZW5xdWV1ZSBhbmQgaW52b2tlIGNvbm5lY3Rl
ZENhbGxiYWNrIAorCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL2Nvbm5lY3RlZC1jYWxsYmFja3MuaHRtbCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1l
bnRzL2Nvbm5lY3RlZC1jYWxsYmFja3MuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hOGFlODVjOTI4NTg3MWQ4
MmNkZjA3NGFjYzUyMzZjMjFjNmY2ZjAzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvY29ubmVjdGVk
LWNhbGxiYWNrcy5odG1sCkBAIC0wLDAgKzEsODggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
Cis8aGVhZD4KKzx0aXRsZT5DdXN0b20gRWxlbWVudHM6IGNvbm5lY3RlZENhbGxiYWNrPC90aXRs
ZT4KKzxtZXRhIG5hbWU9ImF1dGhvciIgdGl0bGU9IlJ5b3N1a2UgTml3YSIgaHJlZj0ibWFpbHRv
OnJuaXdhQHdlYmtpdC5vcmciPgorPG1ldGEgbmFtZT0iYXNzZXJ0IiBjb250ZW50PSJjb25uZWN0
ZWRDYWxsYmFjayBtdXN0IGJlIGVucXVldWVkIHdoZW5ldmVyIGN1c3RvbSBlbGVtZW50IGlzIGlu
c2VydGVkIGludG8gYSBkb2N1bWVudCI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8v
dzNjLmdpdGh1Yi5pby93ZWJjb21wb25lbnRzL3NwZWMvY3VzdG9tLyNkZm4tY29ubmVjdGVkLWNh
bGxiYWNrIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3Mu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFy
bmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2RvY3VtZW50
LXR5cGVzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0ibG9nIj48L2Rp
dj4KKzxzY3JpcHQ+CisKK3ZhciBjYWxscyA9IFtdOworY2xhc3MgTXlDdXN0b21FbGVtZW50IGV4
dGVuZHMgSFRNTEVsZW1lbnQgeworICAgIGNvbm5lY3RlZENhbGxiYWNrKCkgeyBjYWxscy5wdXNo
KCdjb25uZWN0ZWQnLCB0aGlzKTsgfQorICAgIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCkgeyBjYWxs
cy5wdXNoKCdkaXNjb25uZWN0ZWQnLCB0aGlzKTsgfQorfQorY3VzdG9tRWxlbWVudHMuZGVmaW5l
KCdteS1jdXN0b20tZWxlbWVudCcsIE15Q3VzdG9tRWxlbWVudCk7CisKK0RvY3VtZW50VHlwZXMu
Zm9yRWFjaChmdW5jdGlvbiAoZW50cnkpIHsKKyAgICB2YXIgZG9jdW1lbnROYW1lID0gZW50cnku
bmFtZTsKKyAgICB2YXIgZ2V0RG9jdW1lbnQgPSBlbnRyeS5jcmVhdGU7CisKKyAgICBwcm9taXNl
X3Rlc3QoZnVuY3Rpb24gKCkgeworICAgICAgICByZXR1cm4gZ2V0RG9jdW1lbnQoKS50aGVuKGZ1
bmN0aW9uIChkb2MpIHsKKyAgICAgICAgICAgIHZhciBpbnN0YW5jZSA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoJ215LWN1c3RvbS1lbGVtZW50Jyk7CisgICAgICAgICAgICBjYWxscyA9IFtdOwor
ICAgICAgICAgICAgZG9jLmRvY3VtZW50RWxlbWVudC5hcHBlbmRDaGlsZChpbnN0YW5jZSk7Cisg
ICAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGNhbGxzLCBbJ2Nvbm5lY3RlZCcsIGluc3Rh
bmNlXSk7CisgICAgICAgIH0pOworICAgIH0sICdJbnNlcnRpbmcgYSBjdXN0b20gZWxlbWVudCBp
bnRvIGEgJyArIGRvY3VtZW50TmFtZSArICcgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgY29ubmVj
dGVkQ2FsbGJhY2snKTsKKworICAgIHByb21pc2VfdGVzdChmdW5jdGlvbiAoKSB7CisgICAgICAg
IHJldHVybiBnZXREb2N1bWVudCgpLnRoZW4oZnVuY3Rpb24gKGRvYykgeworICAgICAgICAgICAg
dmFyIGluc3RhbmNlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbXktY3VzdG9tLWVsZW1lbnQn
KTsKKyAgICAgICAgICAgIHZhciBwYXJlbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYn
KTsKKyAgICAgICAgICAgIHBhcmVudC5hcHBlbmRDaGlsZChpbnN0YW5jZSk7CisgICAgICAgICAg
ICBjYWxscyA9IFtdOworICAgICAgICAgICAgZG9jLmRvY3VtZW50RWxlbWVudC5hcHBlbmRDaGls
ZChwYXJlbnQpOworICAgICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhjYWxscywgWydjb25u
ZWN0ZWQnLCBpbnN0YW5jZV0pOworICAgICAgICB9KTsKKyAgICB9LCAnSW5zZXJ0aW5nIGFuIGFu
Y2VzdG9yIG9mIGN1c3RvbSBlbGVtZW50IGludG8gYSAnICsgZG9jdW1lbnROYW1lICsgJyBtdXN0
IGVucXVldWUgYW5kIGludm9rZSBjb25uZWN0ZWRDYWxsYmFjaycpOworCisgICAgcHJvbWlzZV90
ZXN0KGZ1bmN0aW9uICgpIHsKKyAgICAgICAgcmV0dXJuIGdldERvY3VtZW50KCkudGhlbihmdW5j
dGlvbiAoZG9jKSB7CisgICAgICAgICAgICB2YXIgaW5zdGFuY2UgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCdteS1jdXN0b20tZWxlbWVudCcpOworICAgICAgICAgICAgdmFyIGhvc3QgPSBkb2Mu
Y3JlYXRlRWxlbWVudE5TKCdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJywgJ2RpdicpOwor
ICAgICAgICAgICAgdmFyIHNoYWRvd1Jvb3QgPSBob3N0LmF0dGFjaFNoYWRvdyh7bW9kZTogJ2Ns
b3NlZCd9KTsKKyAgICAgICAgICAgIGRvYy5kb2N1bWVudEVsZW1lbnQuYXBwZW5kQ2hpbGQoaG9z
dCk7CisKKyAgICAgICAgICAgIGNhbGxzID0gW107CisgICAgICAgICAgICBzaGFkb3dSb290LmFw
cGVuZENoaWxkKGluc3RhbmNlKTsKKyAgICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoY2Fs
bHMsIFsnY29ubmVjdGVkJywgaW5zdGFuY2VdKTsKKyAgICAgICAgfSk7CisgICAgfSwgJ0luc2Vy
dGluZyBhIGN1c3RvbSBlbGVtZW50IGludG8gYSBzaGFkb3cgdHJlZSBpbiBhICcgKyBkb2N1bWVu
dE5hbWUgKyAnIG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGNvbm5lY3RlZENhbGxiYWNrJyk7CisK
KyAgICBwcm9taXNlX3Rlc3QoZnVuY3Rpb24gKCkgeworICAgICAgICByZXR1cm4gZ2V0RG9jdW1l
bnQoKS50aGVuKGZ1bmN0aW9uIChkb2MpIHsKKyAgICAgICAgICAgIHZhciBpbnN0YW5jZSA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoJ215LWN1c3RvbS1lbGVtZW50Jyk7CisgICAgICAgICAgICB2
YXIgaG9zdCA9IGRvYy5jcmVhdGVFbGVtZW50TlMoJ2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0
bWwnLCAnZGl2Jyk7CisgICAgICAgICAgICB2YXIgc2hhZG93Um9vdCA9IGhvc3QuYXR0YWNoU2hh
ZG93KHttb2RlOiAnY2xvc2VkJ30pOworICAgICAgICAgICAgc2hhZG93Um9vdC5hcHBlbmRDaGls
ZChpbnN0YW5jZSk7CisKKyAgICAgICAgICAgIGNhbGxzID0gW107CisgICAgICAgICAgICBkb2Mu
ZG9jdW1lbnRFbGVtZW50LmFwcGVuZENoaWxkKGhvc3QpOworICAgICAgICAgICAgYXNzZXJ0X2Fy
cmF5X2VxdWFscyhjYWxscywgWydjb25uZWN0ZWQnLCBpbnN0YW5jZV0pOworICAgICAgICB9KTsK
KyAgICB9LCAnSW5zZXJ0aW5nIHRoZSBzaGFkb3cgaG9zdCBvZiBhIGN1c3RvbSBlbGVtZW50IGlu
dG8gYSAnICsgZG9jdW1lbnROYW1lICsgJyBtdXN0IGVucXVldWUgYW5kIGludm9rZSBjb25uZWN0
ZWRDYWxsYmFjaycpOworCisgICAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uICgpIHsKKyAgICAgICAg
cmV0dXJuIGdldERvY3VtZW50KCkudGhlbihmdW5jdGlvbiAoZG9jKSB7CisgICAgICAgICAgICB2
YXIgaW5zdGFuY2UgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdteS1jdXN0b20tZWxlbWVudCcp
OworICAgICAgICAgICAgdmFyIGhvc3QgPSBkb2MuY3JlYXRlRWxlbWVudE5TKCdodHRwOi8vd3d3
LnczLm9yZy8xOTk5L3hodG1sJywgJ2RpdicpOworICAgICAgICAgICAgdmFyIHNoYWRvd1Jvb3Qg
PSBob3N0LmF0dGFjaFNoYWRvdyh7bW9kZTogJ2Nsb3NlZCd9KTsKKworICAgICAgICAgICAgY2Fs
bHMgPSBbXTsKKyAgICAgICAgICAgIHNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQoaW5zdGFuY2UpOwor
ICAgICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhjYWxscywgW10pOworICAgICAgICB9KTsK
KyAgICB9LCAnSW5zZXJ0aW5nIGEgY3VzdG9tIGVsZW1lbnQgaW50byBhIGRldGFjaGVkIHNoYWRv
dyB0cmVlIHRoYXQgYmVsb25ncyB0byBhICcgKyBkb2N1bWVudE5hbWUgKyAnIG11c3Qgbm90IGVu
cXVldWUgYW5kIGludm9rZSBjb25uZWN0ZWRDYWxsYmFjaycpOworfSk7CisKKzwvc2NyaXB0Pgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvY3VzdG9tLWVsZW1lbnQtcmVnaXN0cnkv
ZGVmaW5lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL2N1c3RvbS1lbGVtZW50LXJlZ2lzdHJ5L2RlZmluZS1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmI3ZDQ3MDA2ZTJhM2MxYWE3NDQ2NzE0ZGQ2M2M5NmUz
YzE4N2U1NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL2N1c3RvbS1lbGVtZW50LXJlZ2lzdHJ5L2Rl
ZmluZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitDT05TT0xFIE1FU1NBR0U6IGxpbmUg
MTU6IFR5cGVFcnJvcjogdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ2lm
cmFtZS5jb250ZW50RG9jdW1lbnQuZGVmYXVsdFZpZXcnKQorCitIYXJuZXNzIEVycm9yIChGQUlM
KSwgbWVzc2FnZSA9IFR5cGVFcnJvcjogdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1
YXRpbmcgJ2lmcmFtZS5jb250ZW50RG9jdW1lbnQuZGVmYXVsdFZpZXcnKQorCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVs
ZW1lbnRzL2N1c3RvbS1lbGVtZW50LXJlZ2lzdHJ5L2RlZmluZS5odG1sIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvY3VzdG9tLWVs
ZW1lbnQtcmVnaXN0cnkvZGVmaW5lLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTNiOTVkYTNkZGQwMTU2Zjdl
YWExNzM3NmQzNTA2YzY2MzM2NjlmZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL2N1c3RvbS1lbGVt
ZW50LXJlZ2lzdHJ5L2RlZmluZS5odG1sCkBAIC0wLDAgKzEsMjQzIEBACis8IURPQ1RZUEUgaHRt
bD4KKzx0aXRsZT5DdXN0b20gRWxlbWVudHM6IEVsZW1lbnQgZGVmaW5pdGlvbjwvdGl0bGU+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3Ny
ZXBvcnQuanMiPjwvc2NyaXB0PgorPGJvZHk+Cis8ZGl2IGlkPSJsb2ciPjwvZGl2PgorPGlmcmFt
ZSBpZD0iaWZyYW1lIj48L2lmcmFtZT4KKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisoKCkgPT4g
IHsKKyAgLy8gRWxlbWVudCBkZWZpbml0aW9uCisgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3
Zy5vcmcvbXVsdGlwYWdlL3NjcmlwdGluZy5odG1sI2VsZW1lbnQtZGVmaW5pdGlvbgorCisgIC8v
IFVzZSB3aW5kb3cgZnJvbSBpZnJhbWUgdG8gaXNvbGF0ZSB0aGUgdGVzdC4KKyAgY29uc3QgdGVz
dFdpbmRvdyA9IGlmcmFtZS5jb250ZW50RG9jdW1lbnQuZGVmYXVsdFZpZXc7CisgIGNvbnN0IGN1
c3RvbUVsZW1lbnRzID0gdGVzdFdpbmRvdy5jdXN0b21FbGVtZW50czsKKworICBsZXQgdGVzdGFi
bGUgPSBmYWxzZTsKKyAgdGVzdCgoKSA9PiAgeworICAgIGFzc2VydF90cnVlKCdjdXN0b21FbGVt
ZW50cycgaW4gdGVzdFdpbmRvdywgJyJ3aW5kb3cuY3VzdG9tRWxlbWVudHMiIGV4aXN0cycpOwor
ICAgIGFzc2VydF90cnVlKCdkZWZpbmUnIGluIGN1c3RvbUVsZW1lbnRzLCAnIndpbmRvdy5jdXN0
b21FbGVtZW50cy5kZWZpbmUiIGV4aXN0cycpOworICAgIHRlc3RhYmxlID0gdHJ1ZTsKKyAgfSwg
JyJ3aW5kb3cuY3VzdG9tRWxlbWVudHMuZGVmaW5lIiBzaG91bGQgZXhpc3RzJyk7CisgIGlmICgh
dGVzdGFibGUpCisgICAgcmV0dXJuOworCisgIGNvbnN0IGV4cGVjdFR5cGVFcnJvciA9IFR5cGVF
cnJvci5wcm90b3R5cGU7CisgIC8vIEZvbGxvd2luZyBlcnJvcnMgYXJlIERPTUV4Y2VwdGlvbiwg
bm90IEphdmFTY3JpcHQgZXJyb3JzLgorICBjb25zdCBleHBlY3RTeW50YXhFcnJvciA9ICdTWU5U
QVhfRVJSJzsKKyAgY29uc3QgZXhwZWN0Tm90U3VwcG9ydGVkRXJyb3IgPSAnTk9UX1NVUFBPUlRF
RF9FUlInOworCisgIC8vIDEuIElmIElzQ29uc3RydWN0b3IoY29uc3RydWN0b3IpIGlzIGZhbHNl
LAorICAvLyB0aGVuIHRocm93IGEgVHlwZUVycm9yIGFuZCBhYm9ydCB0aGVzZSBzdGVwcy4KKyAg
dGVzdCgoKSA9PiAgeworICAgIGFzc2VydF90aHJvd3MoZXhwZWN0VHlwZUVycm9yLCAoKSA9PiAg
eworICAgICAgY3VzdG9tRWxlbWVudHMuZGVmaW5lKCk7CisgICAgfSk7CisgIH0sICdJZiBubyBh
cmd1bWVudHMsIHNob3VsZCB0aHJvdyBhIFR5cGVFcnJvcicpOworICB0ZXN0KCgpID0+ICB7Cisg
ICAgYXNzZXJ0X3Rocm93cyhleHBlY3RUeXBlRXJyb3IsICgpID0+ICB7CisgICAgICBjdXN0b21F
bGVtZW50cy5kZWZpbmUoJ3Rlc3QtZGVmaW5lLW9uZS1hcmcnKTsKKyAgICB9KTsKKyAgfSwgJ0lm
IG9uZSBhcmd1bWVudCwgc2hvdWxkIHRocm93IGEgVHlwZUVycm9yJyk7CisgIFsKKyAgICBbICd1
bmRlZmluZWQnLCB1bmRlZmluZWQgXSwKKyAgICBbICdudWxsJywgbnVsbCBdLAorICAgIFsgJ29i
amVjdCcsIHt9IF0sCisgICAgWyAnc3RyaW5nJywgJ3N0cmluZycgXSwKKyAgICBbICdhcnJvdyBm
dW5jdGlvbicsICgpID0+IHt9IF0sIC8vIElzQ29uc3RydWN0b3IgcmV0dXJucyBmYWxzZSBmb3Ig
YXJyb3cgZnVuY3Rpb25zCisgICAgWyAnbWV0aG9kJywgKHsgbSgpIHsgfSB9KS5tIF0sIC8vIElz
Q29uc3RydWN0b3IgcmV0dXJucyBmYWxzZSBmb3IgbWV0aG9kcworICBdLmZvckVhY2godCA9PiAg
eworICAgIHRlc3QoKCkgPT4gIHsKKyAgICAgIGFzc2VydF90aHJvd3MoZXhwZWN0VHlwZUVycm9y
LCAoKSA9PiAgeworICAgICAgICBjdXN0b21FbGVtZW50cy5kZWZpbmUoYHRlc3QtZGVmaW5lLWNv
bnN0cnVjdG9yLSR7dFswXX1gLCB0WzFdKTsKKyAgICAgIH0pOworICAgIH0sIGBJZiBjb25zdHJ1
Y3RvciBpcyAke3RbMF19LCBzaG91bGQgdGhyb3cgYSBUeXBlRXJyb3JgKTsKKyAgfSk7CisKKyAg
Ly8gMi4gSWYgbmFtZSBpcyBub3QgYSB2YWxpZCBjdXN0b20gZWxlbWVudCBuYW1lLAorICAvLyB0
aGVuIHRocm93IGEgU3ludGF4RXJyb3IgYW5kIGFib3J0IHRoZXNlIHN0ZXBzLgorICBsZXQgdmFs
aWRDdXN0b21FbGVtZW50TmFtZXMgPSBbCisgICAgLy8gW2Etel0gKFBDRU5DaGFyKSogJy0nIChQ
Q0VOQ2hhcikqCisgICAgLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uv
c2NyaXB0aW5nLmh0bWwjdmFsaWQtY3VzdG9tLWVsZW1lbnQtbmFtZQorICAgICdhLScsCisgICAg
J2EtYScsCisgICAgJ2FhLScsCisgICAgJ2FhLWEnLAorICAgICdhLS4tXycsCisgICAgJ2EtMDEy
MzQ1Njc4OScsCisgICAgJ2EtXHU2RjIyXHU1QjU3JywgLy8gVHdvIENKSyBVbmlmaWVkIElkZW9n
cmFwaHMKKyAgICAnYS1cdUQ4NDBcdURDMEInLCAvLyBTdXJyb2dhdGUgcGFpciBVKzIwMDBCCisg
IF07CisgIGxldCBpbnZhbGlkQ3VzdG9tRWxlbWVudE5hbWVzID0gWworICAgIHVuZGVmaW5lZCwK
KyAgICBudWxsLAorICAgICcnLAorICAgICctJywKKyAgICAnYScsCisgICAgJ2lucHV0JywKKyAg
ICAnbXljdXN0b21lbGVtZW50JywKKyAgICAnQScsCisgICAgJ0EtJywKKyAgICAnMC0nLAorICAg
ICdhLUEnLAorICAgICdhLVonLAorICAgICdBLWEnLAorICAgICdhLWFcdTAwRDcnLAorICAgICdh
LWFcdTMwMDAnLAorICAgICdhLWFcdURCODBcdURDMDAnLCAvLyBTdXJyb2dhdGUgcGFpciBVK0Yw
MDAwCisgICAgLy8gbmFtZSBtdXN0IG5vdCBiZSBhbnkgb2YgdGhlIGh5cGhlbi1jb250YWluaW5n
IGVsZW1lbnQgbmFtZXMuCisgICAgJ2Fubm90YXRpb24teG1sJywKKyAgICAnY29sb3ItcHJvZmls
ZScsCisgICAgJ2ZvbnQtZmFjZScsCisgICAgJ2ZvbnQtZmFjZS1zcmMnLAorICAgICdmb250LWZh
Y2UtdXJpJywKKyAgICAnZm9udC1mYWNlLWZvcm1hdCcsCisgICAgJ2ZvbnQtZmFjZS1uYW1lJywK
KyAgICAnbWlzc2luZy1nbHlwaCcsCisgIF07CisgIHZhbGlkQ3VzdG9tRWxlbWVudE5hbWVzLmZv
ckVhY2gobmFtZSA9PiAgeworICAgIHRlc3QoKCkgPT4gIHsKKyAgICAgIGN1c3RvbUVsZW1lbnRz
LmRlZmluZShuYW1lLCBjbGFzcyB7fSk7CisgICAgfSwgYEVsZW1lbnQgbmFtZXM6IGRlZmluaW5n
IGFuIGVsZW1lbnQgbmFtZWQgJHtuYW1lfSBzaG91bGQgc3VjY2VlZGApOworICB9KTsKKyAgaW52
YWxpZEN1c3RvbUVsZW1lbnROYW1lcy5mb3JFYWNoKG5hbWUgPT4gIHsKKyAgICB0ZXN0KCgpID0+
ICB7CisgICAgICBhc3NlcnRfdGhyb3dzKGV4cGVjdFN5bnRheEVycm9yLCAoKSA9PiAgeworICAg
ICAgICBjdXN0b21FbGVtZW50cy5kZWZpbmUobmFtZSwgY2xhc3Mge30pOworICAgICAgfSk7Cisg
ICAgfSwgYEVsZW1lbnQgbmFtZXM6IGRlZmluaW5nIGFuIGVsZW1lbnQgbmFtZWQgJHtuYW1lfSBz
aG91bGQgdGhyb3cgYSBTeW50YXhFcnJvcmApOworICB9KTsKKworICAvLyAzLiBJZiB0aGlzIEN1
c3RvbUVsZW1lbnRSZWdpc3RyeSBjb250YWlucyBhbiBlbnRyeSB3aXRoIG5hbWUgbmFtZSwKKyAg
Ly8gdGhlbiB0aHJvdyBhIE5vdFN1cHBvcnRlZEVycm9yIGFuZCBhYm9ydCB0aGVzZSBzdGVwcy4K
KyAgdGVzdCgoKSA9PiAgeworICAgIGN1c3RvbUVsZW1lbnRzLmRlZmluZSgndGVzdC1kZWZpbmUt
ZHVwLW5hbWUnLCBjbGFzcyB7fSk7CisgICAgYXNzZXJ0X3Rocm93cyhleHBlY3ROb3RTdXBwb3J0
ZWRFcnJvciwgKCkgPT4gIHsKKyAgICAgIGN1c3RvbUVsZW1lbnRzLmRlZmluZSgndGVzdC1kZWZp
bmUtZHVwLW5hbWUnLCBjbGFzcyB7fSk7CisgICAgfSk7CisgIH0sICdJZiB0aGUgbmFtZSBpcyBh
bHJlYWR5IGRlZmluZWQsIHNob3VsZCB0aHJvdyBhIE5vdFN1cHBvcnRlZEVycm9yJyk7CisKKyAg
Ly8gNS4gSWYgdGhpcyBDdXN0b21FbGVtZW50UmVnaXN0cnkgY29udGFpbnMgYW4gZW50cnkgd2l0
aCBjb25zdHJ1Y3RvciBjb25zdHJ1Y3RvciwKKyAgLy8gdGhlbiB0aHJvdyBhIE5vdFN1cHBvcnRl
ZEVycm9yIGFuZCBhYm9ydCB0aGVzZSBzdGVwcy4KKyAgdGVzdCgoKSA9PiAgeworICAgIGNsYXNz
IFRlc3REdXBDb25zdHJ1Y3RvciB7fTsKKyAgICBjdXN0b21FbGVtZW50cy5kZWZpbmUoJ3Rlc3Qt
ZGVmaW5lLWR1cC1jb25zdHJ1Y3RvcicsIFRlc3REdXBDb25zdHJ1Y3Rvcik7CisgICAgYXNzZXJ0
X3Rocm93cyhleHBlY3ROb3RTdXBwb3J0ZWRFcnJvciwgKCkgPT4gIHsKKyAgICAgIGN1c3RvbUVs
ZW1lbnRzLmRlZmluZSgndGVzdC1kZWZpbmUtZHVwLWN0b3IyJywgVGVzdER1cENvbnN0cnVjdG9y
KTsKKyAgICB9KTsKKyAgfSwgJ0lmIHRoZSBjb25zdHJ1Y3RvciBpcyBhbHJlYWR5IGRlZmluZWQs
IHNob3VsZCB0aHJvdyBhIE5vdFN1cHBvcnRlZEVycm9yJyk7CisKKyAgLy8gOS4xLiBJZiBleHRl
bmRzIGlzIGEgdmFsaWQgY3VzdG9tIGVsZW1lbnQgbmFtZSwKKyAgLy8gdGhlbiB0aHJvdyBhIE5v
dFN1cHBvcnRlZEVycm9yLgorICB2YWxpZEN1c3RvbUVsZW1lbnROYW1lcy5mb3JFYWNoKG5hbWUg
PT4gIHsKKyAgICB0ZXN0KCgpID0+ICB7CisgICAgICBhc3NlcnRfdGhyb3dzKGV4cGVjdE5vdFN1
cHBvcnRlZEVycm9yLCAoKSA9PiAgeworICAgICAgICBjdXN0b21FbGVtZW50cy5kZWZpbmUoJ3Rl
c3QtZGVmaW5lLWV4dGVuZC12YWxpZC1uYW1lJywgY2xhc3Mge30sIHsgZXh0ZW5kczogbmFtZSB9
KTsKKyAgICAgIH0pOworICAgIH0sIGBJZiBleHRlbmRzIGlzICR7bmFtZX0sIHNob3VsZCB0aHJv
dyBhIE5vdFN1cHBvcnRlZEVycm9yYCk7CisgIH0pOworCisgIC8vIDkuMi4gSWYgdGhlIGVsZW1l
bnQgaW50ZXJmYWNlIGZvciBleHRlbmRzIGFuZCB0aGUgSFRNTCBuYW1lc3BhY2UgaXMgSFRNTFVu
a25vd25FbGVtZW50CisgIC8vIChlLmcuLCBpZiBleHRlbmRzIGRvZXMgbm90IGluZGljYXRlIGFu
IGVsZW1lbnQgZGVmaW5pdGlvbiBpbiB0aGlzIHNwZWNpZmljYXRpb24pLAorICAvLyB0aGVuIHRo
cm93IGEgTm90U3VwcG9ydGVkRXJyb3IuCisgIFsKKyAgICAvLyBodHRwczovL2h0bWwuc3BlYy53
aGF0d2cub3JnL211bHRpcGFnZS9kb20uaHRtbCNlbGVtZW50cy1pbi10aGUtZG9tOmh0bWx1bmtu
b3duZWxlbWVudAorICAgICdiZ3NvdW5kJywKKyAgICAnYmxpbmsnLAorICAgICdpc2luZGV4JywK
KyAgICAnbXVsdGljb2wnLAorICAgICduZXh0aWQnLAorICAgICdzcGFjZXInLAorICAgICdlbGVt
ZW50bmFtZXRvYmV1bmtub3duZWxlbWVudCcsCisgIF0uZm9yRWFjaChuYW1lID0+ICB7CisgICAg
dGVzdCgoKSA9PiAgeworICAgICAgYXNzZXJ0X3Rocm93cyhleHBlY3ROb3RTdXBwb3J0ZWRFcnJv
ciwgKCkgPT4gIHsKKyAgICAgICAgY3VzdG9tRWxlbWVudHMuZGVmaW5lKCd0ZXN0LWRlZmluZS1l
eHRlbmQtJyArIG5hbWUsIGNsYXNzIHt9LCB7IGV4dGVuZHM6IG5hbWUgfSk7CisgICAgICB9KTsK
KyAgICB9LCBgSWYgZXh0ZW5kcyBpcyAke25hbWV9LCBzaG91bGQgdGhyb3cgYSBOb3RTdXBwb3J0
ZWRFcnJvcmApOworICB9KTsKKworICAvLyAxMi4xLiBMZXQgcHJvdG90eXBlIGJlIEdldChjb25z
dHJ1Y3RvciwgInByb3RvdHlwZSIpLiBSZXRocm93IGFueSBleGNlcHRpb25zLgorICBmdW5jdGlv
biBhc3NlcnRfcmV0aHJvd24oZnVuYywgZGVzY3JpcHRpb24pIHsKKyAgICBhc3NlcnRfdGhyb3dz
KHsgbmFtZTogJ3JldGhyb3duJyB9LCBmdW5jLCBkZXNjcmlwdGlvbik7CisgIH0KKyAgZnVuY3Rp
b24gdGhyb3dfcmV0aHJvd25fZXJyb3IoKSB7CisgICAgY29uc3QgZSA9IG5ldyBFcnJvcignY2hl
Y2sgdGhpcyBpcyByZXRocm93bicpOworICAgIGUubmFtZSA9ICdyZXRocm93bic7CisgICAgdGhy
b3cgZTsKKyAgfQorICB0ZXN0KCgpID0+ICB7CisgICAgLy8gSGFjayBmb3IgcHJvdG90eXBlIHRv
IHRocm93IHdoaWxlIElzQ29uc3RydWN0b3IgaXMgdHJ1ZS4KKyAgICBjb25zdCBCYWRDb25zdHJ1
Y3RvciA9IChmdW5jdGlvbiAoKSB7IH0pLmJpbmQoe30pOworICAgIE9iamVjdC5kZWZpbmVQcm9w
ZXJ0eShCYWRDb25zdHJ1Y3RvciwgJ3Byb3RvdHlwZScsIHsKKyAgICAgIGdldCgpIHsgdGhyb3df
cmV0aHJvd25fZXJyb3IoKTsgfQorICAgIH0pOworICAgIGFzc2VydF9yZXRocm93bigoKSA9PiAg
eworICAgICAgY3VzdG9tRWxlbWVudHMuZGVmaW5lKCd0ZXN0LWRlZmluZS1jb25zdHJ1Y3Rvci1w
cm90b3R5cGUtcmV0aHJvdycsIEJhZENvbnN0cnVjdG9yKTsKKyAgICB9KTsKKyAgfSwgJ0lmIGNv
bnN0cnVjdG9yLnByb3RvdHlwZSB0aHJvd3MsIHNob3VsZCByZXRocm93Jyk7CisKKyAgLy8gMTIu
Mi4gSWYgVHlwZShwcm90b3R5cGUpIGlzIG5vdCBPYmplY3QsCisgIC8vIHRoZW4gdGhyb3cgYSBU
eXBlRXJyb3IgZXhjZXB0aW9uLgorICB0ZXN0KCgpID0+ICB7CisgICAgY29uc3QgYyA9IChmdW5j
dGlvbiAoKSB7IH0pLmJpbmQoe30pOyAvLyBwcm90b3R5cGUgaXMgdW5kZWZpbmVkLgorICAgIGFz
c2VydF90aHJvd3MoZXhwZWN0VHlwZUVycm9yLCAoKSA9PiAgeworICAgICAgY3VzdG9tRWxlbWVu
dHMuZGVmaW5lKCd0ZXN0LWRlZmluZS1jb25zdHJ1Y3Rvci1wcm90b3R5cGUtdW5kZWZpbmVkJywg
Yyk7CisgICAgfSk7CisgIH0sICdJZiBUeXBlKGNvbnN0cnVjdG9yLnByb3RvdHlwZSkgaXMgdW5k
ZWZpbmVkLCBzaG91bGQgdGhyb3cgYSBUeXBlRXJyb3InKTsKKyAgdGVzdCgoKSA9PiAgeworICAg
IGZ1bmN0aW9uIGMoKSB7fTsKKyAgICBjLnByb3RvdHlwZSA9ICdzdHJpbmcnOworICAgIGFzc2Vy
dF90aHJvd3MoZXhwZWN0VHlwZUVycm9yLCAoKSA9PiAgeworICAgICAgY3VzdG9tRWxlbWVudHMu
ZGVmaW5lKCd0ZXN0LWRlZmluZS1jb25zdHJ1Y3Rvci1wcm90b3R5cGUtc3RyaW5nJywgYyk7Cisg
ICAgfSk7CisgIH0sICdJZiBUeXBlKGNvbnN0cnVjdG9yLnByb3RvdHlwZSkgaXMgc3RyaW5nLCBz
aG91bGQgdGhyb3cgYSBUeXBlRXJyb3InKTsKKworICAvLyAxMi4zLiBMZXQgbGlmZWN5Y2xlQ2Fs
bGJhY2tzIGJlIGEgbWFwIHdpdGggdGhlIGZvdXIga2V5cyAiY29ubmVjdGVkQ2FsbGJhY2siLAor
ICAvLyAiZGlzY29ubmVjdGVkQ2FsbGJhY2siLCAiYWRvcHRlZENhbGxiYWNrIiwgYW5kICJhdHRy
aWJ1dGVDaGFuZ2VkQ2FsbGJhY2siLAorICAvLyBlYWNoIG9mIHdoaWNoIGJlbG9uZ3MgdG8gYW4g
ZW50cnkgd2hvc2UgdmFsdWUgaXMgbnVsbC4KKyAgLy8gMTIuNC4gRm9yIGVhY2ggb2YgdGhlIGZv
dXIga2V5cyBjYWxsYmFja05hbWUgaW4gbGlmZWN5Y2xlQ2FsbGJhY2tzOgorICAvLyAxMi40LjEu
IExldCBjYWxsYmFja1ZhbHVlIGJlIEdldChwcm90b3R5cGUsIGNhbGxiYWNrTmFtZSkuIFJldGhy
b3cgYW55IGV4Y2VwdGlvbnMuCisgIC8vIDEyLjQuMi4gSWYgY2FsbGJhY2tWYWx1ZSBpcyBub3Qg
dW5kZWZpbmVkLCB0aGVuIHNldCB0aGUgdmFsdWUgb2YgdGhlIGVudHJ5IGluCisgIC8vIGxpZmVj
eWNsZUNhbGxiYWNrcyB3aXRoIGtleSBjYWxsYmFja05hbWUgdG8gdGhlIHJlc3VsdCBvZiBjb252
ZXJ0aW5nIGNhbGxiYWNrVmFsdWUKKyAgLy8gdG8gdGhlIFdlYiBJREwgRnVuY3Rpb24gY2FsbGJh
Y2sgdHlwZS4gUmV0aHJvdyBhbnkgZXhjZXB0aW9ucyBmcm9tIHRoZSBjb252ZXJzaW9uLgorICBb
CisgICAgJ2Nvbm5lY3RlZENhbGxiYWNrJywKKyAgICAnZGlzY29ubmVjdGVkQ2FsbGJhY2snLAor
ICAgICdhZG9wdGVkQ2FsbGJhY2snLAorICAgICdhdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2snLAor
ICBdLmZvckVhY2gobmFtZSA9PiB7CisgICAgdGVzdCgoKSA9PiB7CisgICAgICBjbGFzcyBDIHsK
KyAgICAgICAgZ2V0IFtuYW1lXSgpIHsgdGhyb3dfcmV0aHJvd25fZXJyb3IoKTsgfQorICAgICAg
fQorICAgICAgYXNzZXJ0X3JldGhyb3duKCgpID0+IHsKKyAgICAgICAgY3VzdG9tRWxlbWVudHMu
ZGVmaW5lKGB0ZXN0LWRlZmluZS0ke25hbWUudG9Mb3dlckNhc2UoKX0tcmV0aHJvd2AsIEMpOwor
ICAgICAgfSk7CisgICAgfSwgYElmIGNvbnN0cnVjdG9yLnByb3RvdHlwZS4ke25hbWV9IHRocm93
cywgc2hvdWxkIHJldGhyb3dgKTsKKworICAgIFsKKyAgICAgIHsgbmFtZTogJ3VuZGVmaW5lZCcs
IHZhbHVlOiB1bmRlZmluZWQsIHN1Y2Nlc3M6IHRydWUgfSwKKyAgICAgIHsgbmFtZTogJ2Z1bmN0
aW9uJywgdmFsdWU6IGZ1bmN0aW9uICgpIHsgfSwgc3VjY2VzczogdHJ1ZSB9LAorICAgICAgeyBu
YW1lOiAnbnVsbCcsIHZhbHVlOiBudWxsLCBzdWNjZXNzOiBmYWxzZSB9LAorICAgICAgeyBuYW1l
OiAnb2JqZWN0JywgdmFsdWU6IHt9LCBzdWNjZXNzOiBmYWxzZSB9LAorICAgICAgeyBuYW1lOiAn
aW50ZWdlcicsIHZhbHVlOiAxLCBzdWNjZXNzOiBmYWxzZSB9LAorICAgIF0uZm9yRWFjaChkYXRh
ID0+IHsKKyAgICAgIHRlc3QoKCkgPT4geworICAgICAgICBjbGFzcyBDIHsgfTsKKyAgICAgICAg
Qy5wcm90b3R5cGVbbmFtZV0gPSBkYXRhLnZhbHVlOworICAgICAgICBpZiAoZGF0YS5zdWNjZXNz
KSB7CisgICAgICAgICAgY3VzdG9tRWxlbWVudHMuZGVmaW5lKGB0ZXN0LWRlZmluZS0ke25hbWUu
dG9Mb3dlckNhc2UoKX0tJHtkYXRhLm5hbWV9YCwgQyk7CisgICAgICAgIH0gZWxzZSB7CisgICAg
ICAgICAgYXNzZXJ0X3Rocm93cyhleHBlY3RUeXBlRXJyb3IsICgpID0+IHsKKyAgICAgICAgICAg
IGN1c3RvbUVsZW1lbnRzLmRlZmluZShgdGVzdC1kZWZpbmUtJHtuYW1lLnRvTG93ZXJDYXNlKCl9
LSR7ZGF0YS5uYW1lfWAsIEMpOworICAgICAgICAgIH0pOworICAgICAgICB9CisgICAgICB9LCBg
SWYgY29uc3RydWN0b3IucHJvdG90eXBlLiR7bmFtZX0gaXMgJHtkYXRhLm5hbWV9LCBzaG91bGQg
JHtkYXRhLnN1Y2Nlc3MgPyAnc3VjY2VlZCcgOiAndGhyb3cgYSBUeXBlRXJyb3InfWApOworICAg
IH0pOworICB9KTsKK30pKCk7Cis8L3NjcmlwdD4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL2N1
c3RvbS1lbGVtZW50LXJlZ2lzdHJ5L3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvY3VzdG9tLWVsZW1lbnQt
cmVnaXN0cnkvdzNjLWltcG9ydC5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmQ0ZDM5MGViYWMzMmUwZjk5ODkx
NThiZWFkZTlhMTA3MTc2ZDhiOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL2N1c3RvbS1lbGVtZW50
LXJlZ2lzdHJ5L3czYy1pbXBvcnQubG9nCkBAIC0wLDAgKzEsMTggQEAKK1RoZSB0ZXN0cyBpbiB0
aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgorRG8g
Tk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCitJbnN0ZWFkLCBjcmVh
dGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFczQyBDU1Mgb3IgV1BUIGdpdGh1YjoKKwlodHRwczov
L2dpdGh1Yi5jb20vdzNjL2Nzc3dnLXRlc3QKKwlodHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cworCitUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRl
c3RzIGluIFdlYktpdCB0byByZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlz
IGZpbGUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHBy
ZWZpeGVzOgorTm9uZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6
CitOb25lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvY3VzdG9tLWVsZW1l
bnQtcmVnaXN0cnkvZGVmaW5lLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL2Rpc2Nvbm5lY3RlZC1jYWxs
YmFja3MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jdXN0b20tZWxlbWVudHMvZGlzY29ubmVjdGVkLWNhbGxiYWNrcy1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMmNlNmMzMWYwYjI4NDMzNGZhNzkwZmVjN2Y5MDBlZTU3YWMzMDYwZgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3VzdG9tLWVsZW1lbnRzL2Rpc2Nvbm5lY3RlZC1jYWxsYmFja3MtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsNDMgQEAKKworUEFTUyBSZW1vdmluZyBhIGN1c3RvbSBlbGVtZW50IGZyb20g
YSBkb2N1bWVudCBtdXN0IGVucXVldWUgYW5kIGludm9rZSBkaXNjb25uZWN0ZWRDYWxsYmFjayAK
K1BBU1MgUmVtb3ZpbmcgYW4gYW5jZXN0b3Igb2YgY3VzdG9tIGVsZW1lbnQgZnJvbSBhIGRvY3Vt
ZW50IG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGRpc2Nvbm5lY3RlZENhbGxiYWNrIAorUEFTUyBS
ZW1vdmluZyBhIGN1c3RvbSBlbGVtZW50IGZyb20gYSBzaGFkb3cgdHJlZSBpbiBhIGRvY3VtZW50
IG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGRpc2Nvbm5lY3RlZENhbGxiYWNrIAorUEFTUyBSZW1v
dmluZyB0aGUgc2hhZG93IGhvc3Qgb2YgYSBjdXN0b20gZWxlbWVudCBmcm9tIGFkb2N1bWVudCBt
dXN0IGVucXVldWUgYW5kIGludm9rZSBkaXNjb25uZWN0ZWRDYWxsYmFjayAKK1BBU1MgUmVtb3Zp
bmcgYSBjdXN0b20gZWxlbWVudCBmcm9tIGEgZGV0YWNoZWQgc2hhZG93IHRyZWUgdGhhdCBiZWxv
bmdzIHRvIGEgZG9jdW1lbnQgbXVzdCBub3QgZW5xdWV1ZSBhbmQgaW52b2tlIGRpc2Nvbm5lY3Rl
ZENhbGxiYWNrIAorUEFTUyBSZW1vdmluZyBhIGN1c3RvbSBlbGVtZW50IGZyb20gYSBkb2N1bWVu
dCBvZiBhIHRlbXBsYXRlIGVsZW1lbnQgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgZGlzY29ubmVj
dGVkQ2FsbGJhY2sgCitQQVNTIFJlbW92aW5nIGFuIGFuY2VzdG9yIG9mIGN1c3RvbSBlbGVtZW50
IGZyb20gYSBkb2N1bWVudCBvZiBhIHRlbXBsYXRlIGVsZW1lbnQgbXVzdCBlbnF1ZXVlIGFuZCBp
bnZva2UgZGlzY29ubmVjdGVkQ2FsbGJhY2sgCitQQVNTIFJlbW92aW5nIGEgY3VzdG9tIGVsZW1l
bnQgZnJvbSBhIHNoYWRvdyB0cmVlIGluIGEgZG9jdW1lbnQgb2YgYSB0ZW1wbGF0ZSBlbGVtZW50
IG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGRpc2Nvbm5lY3RlZENhbGxiYWNrIAorUEFTUyBSZW1v
dmluZyB0aGUgc2hhZG93IGhvc3Qgb2YgYSBjdXN0b20gZWxlbWVudCBmcm9tIGFkb2N1bWVudCBv
ZiBhIHRlbXBsYXRlIGVsZW1lbnQgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgZGlzY29ubmVjdGVk
Q2FsbGJhY2sgCitQQVNTIFJlbW92aW5nIGEgY3VzdG9tIGVsZW1lbnQgZnJvbSBhIGRldGFjaGVk
IHNoYWRvdyB0cmVlIHRoYXQgYmVsb25ncyB0byBhIGRvY3VtZW50IG9mIGEgdGVtcGxhdGUgZWxl
bWVudCBtdXN0IG5vdCBlbnF1ZXVlIGFuZCBpbnZva2UgZGlzY29ubmVjdGVkQ2FsbGJhY2sgCitQ
QVNTIFJlbW92aW5nIGEgY3VzdG9tIGVsZW1lbnQgZnJvbSBhIG5ldyBkb2N1bWVudCBtdXN0IGVu
cXVldWUgYW5kIGludm9rZSBkaXNjb25uZWN0ZWRDYWxsYmFjayAKK1BBU1MgUmVtb3ZpbmcgYW4g
YW5jZXN0b3Igb2YgY3VzdG9tIGVsZW1lbnQgZnJvbSBhIG5ldyBkb2N1bWVudCBtdXN0IGVucXVl
dWUgYW5kIGludm9rZSBkaXNjb25uZWN0ZWRDYWxsYmFjayAKK1BBU1MgUmVtb3ZpbmcgYSBjdXN0
b20gZWxlbWVudCBmcm9tIGEgc2hhZG93IHRyZWUgaW4gYSBuZXcgZG9jdW1lbnQgbXVzdCBlbnF1
ZXVlIGFuZCBpbnZva2UgZGlzY29ubmVjdGVkQ2FsbGJhY2sgCitQQVNTIFJlbW92aW5nIHRoZSBz
aGFkb3cgaG9zdCBvZiBhIGN1c3RvbSBlbGVtZW50IGZyb20gYW5ldyBkb2N1bWVudCBtdXN0IGVu
cXVldWUgYW5kIGludm9rZSBkaXNjb25uZWN0ZWRDYWxsYmFjayAKK1BBU1MgUmVtb3ZpbmcgYSBj
dXN0b20gZWxlbWVudCBmcm9tIGEgZGV0YWNoZWQgc2hhZG93IHRyZWUgdGhhdCBiZWxvbmdzIHRv
IGEgbmV3IGRvY3VtZW50IG11c3Qgbm90IGVucXVldWUgYW5kIGludm9rZSBkaXNjb25uZWN0ZWRD
YWxsYmFjayAKK1BBU1MgUmVtb3ZpbmcgYSBjdXN0b20gZWxlbWVudCBmcm9tIGEgY2xvbmVkIGRv
Y3VtZW50IG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGRpc2Nvbm5lY3RlZENhbGxiYWNrIAorUEFT
UyBSZW1vdmluZyBhbiBhbmNlc3RvciBvZiBjdXN0b20gZWxlbWVudCBmcm9tIGEgY2xvbmVkIGRv
Y3VtZW50IG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGRpc2Nvbm5lY3RlZENhbGxiYWNrIAorUEFT
UyBSZW1vdmluZyBhIGN1c3RvbSBlbGVtZW50IGZyb20gYSBzaGFkb3cgdHJlZSBpbiBhIGNsb25l
ZCBkb2N1bWVudCBtdXN0IGVucXVldWUgYW5kIGludm9rZSBkaXNjb25uZWN0ZWRDYWxsYmFjayAK
K1BBU1MgUmVtb3ZpbmcgdGhlIHNoYWRvdyBob3N0IG9mIGEgY3VzdG9tIGVsZW1lbnQgZnJvbSBh
Y2xvbmVkIGRvY3VtZW50IG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGRpc2Nvbm5lY3RlZENhbGxi
YWNrIAorUEFTUyBSZW1vdmluZyBhIGN1c3RvbSBlbGVtZW50IGZyb20gYSBkZXRhY2hlZCBzaGFk
b3cgdHJlZSB0aGF0IGJlbG9uZ3MgdG8gYSBjbG9uZWQgZG9jdW1lbnQgbXVzdCBub3QgZW5xdWV1
ZSBhbmQgaW52b2tlIGRpc2Nvbm5lY3RlZENhbGxiYWNrIAorUEFTUyBSZW1vdmluZyBhIGN1c3Rv
bSBlbGVtZW50IGZyb20gYSBkb2N1bWVudCBjcmVhdGVkIGJ5IGNyZWF0ZUhUTUxEb2N1bWVudCBt
dXN0IGVucXVldWUgYW5kIGludm9rZSBkaXNjb25uZWN0ZWRDYWxsYmFjayAKK1BBU1MgUmVtb3Zp
bmcgYW4gYW5jZXN0b3Igb2YgY3VzdG9tIGVsZW1lbnQgZnJvbSBhIGRvY3VtZW50IGNyZWF0ZWQg
YnkgY3JlYXRlSFRNTERvY3VtZW50IG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGRpc2Nvbm5lY3Rl
ZENhbGxiYWNrIAorUEFTUyBSZW1vdmluZyBhIGN1c3RvbSBlbGVtZW50IGZyb20gYSBzaGFkb3cg
dHJlZSBpbiBhIGRvY3VtZW50IGNyZWF0ZWQgYnkgY3JlYXRlSFRNTERvY3VtZW50IG11c3QgZW5x
dWV1ZSBhbmQgaW52b2tlIGRpc2Nvbm5lY3RlZENhbGxiYWNrIAorUEFTUyBSZW1vdmluZyB0aGUg
c2hhZG93IGhvc3Qgb2YgYSBjdXN0b20gZWxlbWVudCBmcm9tIGFkb2N1bWVudCBjcmVhdGVkIGJ5
IGNyZWF0ZUhUTUxEb2N1bWVudCBtdXN0IGVucXVldWUgYW5kIGludm9rZSBkaXNjb25uZWN0ZWRD
YWxsYmFjayAKK1BBU1MgUmVtb3ZpbmcgYSBjdXN0b20gZWxlbWVudCBmcm9tIGEgZGV0YWNoZWQg
c2hhZG93IHRyZWUgdGhhdCBiZWxvbmdzIHRvIGEgZG9jdW1lbnQgY3JlYXRlZCBieSBjcmVhdGVI
VE1MRG9jdW1lbnQgbXVzdCBub3QgZW5xdWV1ZSBhbmQgaW52b2tlIGRpc2Nvbm5lY3RlZENhbGxi
YWNrIAorUEFTUyBSZW1vdmluZyBhIGN1c3RvbSBlbGVtZW50IGZyb20gYSBIVE1MIGRvY3VtZW50
IGNyZWF0ZWQgYnkgY3JlYXRlRG9jdW1lbnQgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgZGlzY29u
bmVjdGVkQ2FsbGJhY2sgCitQQVNTIFJlbW92aW5nIGFuIGFuY2VzdG9yIG9mIGN1c3RvbSBlbGVt
ZW50IGZyb20gYSBIVE1MIGRvY3VtZW50IGNyZWF0ZWQgYnkgY3JlYXRlRG9jdW1lbnQgbXVzdCBl
bnF1ZXVlIGFuZCBpbnZva2UgZGlzY29ubmVjdGVkQ2FsbGJhY2sgCitQQVNTIFJlbW92aW5nIGEg
Y3VzdG9tIGVsZW1lbnQgZnJvbSBhIHNoYWRvdyB0cmVlIGluIGEgSFRNTCBkb2N1bWVudCBjcmVh
dGVkIGJ5IGNyZWF0ZURvY3VtZW50IG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGRpc2Nvbm5lY3Rl
ZENhbGxiYWNrIAorUEFTUyBSZW1vdmluZyB0aGUgc2hhZG93IGhvc3Qgb2YgYSBjdXN0b20gZWxl
bWVudCBmcm9tIGFIVE1MIGRvY3VtZW50IGNyZWF0ZWQgYnkgY3JlYXRlRG9jdW1lbnQgbXVzdCBl
bnF1ZXVlIGFuZCBpbnZva2UgZGlzY29ubmVjdGVkQ2FsbGJhY2sgCitQQVNTIFJlbW92aW5nIGEg
Y3VzdG9tIGVsZW1lbnQgZnJvbSBhIGRldGFjaGVkIHNoYWRvdyB0cmVlIHRoYXQgYmVsb25ncyB0
byBhIEhUTUwgZG9jdW1lbnQgY3JlYXRlZCBieSBjcmVhdGVEb2N1bWVudCBtdXN0IG5vdCBlbnF1
ZXVlIGFuZCBpbnZva2UgZGlzY29ubmVjdGVkQ2FsbGJhY2sgCitQQVNTIFJlbW92aW5nIGEgY3Vz
dG9tIGVsZW1lbnQgZnJvbSBhIGRvY3VtZW50IGluIGFuIGlmcmFtZSBtdXN0IGVucXVldWUgYW5k
IGludm9rZSBkaXNjb25uZWN0ZWRDYWxsYmFjayAKK1BBU1MgUmVtb3ZpbmcgYW4gYW5jZXN0b3Ig
b2YgY3VzdG9tIGVsZW1lbnQgZnJvbSBhIGRvY3VtZW50IGluIGFuIGlmcmFtZSBtdXN0IGVucXVl
dWUgYW5kIGludm9rZSBkaXNjb25uZWN0ZWRDYWxsYmFjayAKK1BBU1MgUmVtb3ZpbmcgYSBjdXN0
b20gZWxlbWVudCBmcm9tIGEgc2hhZG93IHRyZWUgaW4gYSBkb2N1bWVudCBpbiBhbiBpZnJhbWUg
bXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgZGlzY29ubmVjdGVkQ2FsbGJhY2sgCitQQVNTIFJlbW92
aW5nIHRoZSBzaGFkb3cgaG9zdCBvZiBhIGN1c3RvbSBlbGVtZW50IGZyb20gYWRvY3VtZW50IGlu
IGFuIGlmcmFtZSBtdXN0IGVucXVldWUgYW5kIGludm9rZSBkaXNjb25uZWN0ZWRDYWxsYmFjayAK
K1BBU1MgUmVtb3ZpbmcgYSBjdXN0b20gZWxlbWVudCBmcm9tIGEgZGV0YWNoZWQgc2hhZG93IHRy
ZWUgdGhhdCBiZWxvbmdzIHRvIGEgZG9jdW1lbnQgaW4gYW4gaWZyYW1lIG11c3Qgbm90IGVucXVl
dWUgYW5kIGludm9rZSBkaXNjb25uZWN0ZWRDYWxsYmFjayAKK1BBU1MgUmVtb3ZpbmcgYSBjdXN0
b20gZWxlbWVudCBmcm9tIGEgSFRNTCBkb2N1bWVudCBmZXRjaGVkIGJ5IFhIUiBtdXN0IGVucXVl
dWUgYW5kIGludm9rZSBkaXNjb25uZWN0ZWRDYWxsYmFjayAKK1BBU1MgUmVtb3ZpbmcgYW4gYW5j
ZXN0b3Igb2YgY3VzdG9tIGVsZW1lbnQgZnJvbSBhIEhUTUwgZG9jdW1lbnQgZmV0Y2hlZCBieSBY
SFIgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgZGlzY29ubmVjdGVkQ2FsbGJhY2sgCitQQVNTIFJl
bW92aW5nIGEgY3VzdG9tIGVsZW1lbnQgZnJvbSBhIHNoYWRvdyB0cmVlIGluIGEgSFRNTCBkb2N1
bWVudCBmZXRjaGVkIGJ5IFhIUiBtdXN0IGVucXVldWUgYW5kIGludm9rZSBkaXNjb25uZWN0ZWRD
YWxsYmFjayAKK1BBU1MgUmVtb3ZpbmcgdGhlIHNoYWRvdyBob3N0IG9mIGEgY3VzdG9tIGVsZW1l
bnQgZnJvbSBhSFRNTCBkb2N1bWVudCBmZXRjaGVkIGJ5IFhIUiBtdXN0IGVucXVldWUgYW5kIGlu
dm9rZSBkaXNjb25uZWN0ZWRDYWxsYmFjayAKK1BBU1MgUmVtb3ZpbmcgYSBjdXN0b20gZWxlbWVu
dCBmcm9tIGEgZGV0YWNoZWQgc2hhZG93IHRyZWUgdGhhdCBiZWxvbmdzIHRvIGEgSFRNTCBkb2N1
bWVudCBmZXRjaGVkIGJ5IFhIUiBtdXN0IG5vdCBlbnF1ZXVlIGFuZCBpbnZva2UgZGlzY29ubmVj
dGVkQ2FsbGJhY2sgCisKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvZGlzY29ubmVjdGVkLWNhbGxiYWNrcy5o
dG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20t
ZWxlbWVudHMvZGlzY29ubmVjdGVkLWNhbGxiYWNrcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQxZDM5Zjlj
YmRkYjc3NjBhMmRjMjVhNWFlYjdiOWYzYzNjZTQzY2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9k
aXNjb25uZWN0ZWQtY2FsbGJhY2tzLmh0bWwKQEAgLTAsMCArMSw5MyBAQAorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbD4KKzxoZWFkPgorPHRpdGxlPkN1c3RvbSBFbGVtZW50czogZGlzY29ubmVjdGVk
Q2FsbGJhY2s8L3RpdGxlPgorPG1ldGEgbmFtZT0iYXV0aG9yIiB0aXRsZT0iUnlvc3VrZSBOaXdh
IiBocmVmPSJtYWlsdG86cm5pd2FAd2Via2l0Lm9yZyI+Cis8bWV0YSBuYW1lPSJhc3NlcnQiIGNv
bnRlbnQ9ImRpc2Nvbm5lY3RlZENhbGxiYWNrIG11c3QgYmUgZW5xdWV1ZWQgd2hlbmV2ZXIgY3Vz
dG9tIGVsZW1lbnQgaXMgcmVtb3ZlZCBmcm9tIGEgZG9jdW1lbnQiPgorPGxpbmsgcmVsPSJoZWxw
IiBocmVmPSJodHRwczovL3czYy5naXRodWIuaW8vd2ViY29tcG9uZW50cy9zcGVjL2N1c3RvbS8j
ZGZuLWNvbm5lY3RlZC1jYWxsYmFjayI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJl
c291cmNlcy9kb2N1bWVudC10eXBlcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxk
aXYgaWQ9ImxvZyI+PC9kaXY+Cis8c2NyaXB0PgorCit2YXIgY2FsbHMgPSBbXTsKK2NsYXNzIE15
Q3VzdG9tRWxlbWVudCBleHRlbmRzIEhUTUxFbGVtZW50IHsKKyAgICBjb25uZWN0ZWRDYWxsYmFj
aygpIHsgY2FsbHMucHVzaCgnY29ubmVjdGVkJywgdGhpcyk7IH0KKyAgICBkaXNjb25uZWN0ZWRD
YWxsYmFjaygpIHsgY2FsbHMucHVzaCgnZGlzY29ubmVjdGVkJywgdGhpcyk7IH0KK30KK2N1c3Rv
bUVsZW1lbnRzLmRlZmluZSgnbXktY3VzdG9tLWVsZW1lbnQnLCBNeUN1c3RvbUVsZW1lbnQpOwor
CitEb2N1bWVudFR5cGVzLmZvckVhY2goZnVuY3Rpb24gKGVudHJ5KSB7CisgICAgdmFyIGRvY3Vt
ZW50TmFtZSA9IGVudHJ5Lm5hbWU7CisgICAgdmFyIGdldERvY3VtZW50ID0gZW50cnkuY3JlYXRl
OworCisgICAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uICgpIHsKKyAgICAgICAgcmV0dXJuIGdldERv
Y3VtZW50KCkudGhlbihmdW5jdGlvbiAoZG9jKSB7CisgICAgICAgICAgICB2YXIgaW5zdGFuY2Ug
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdteS1jdXN0b20tZWxlbWVudCcpOworICAgICAgICAg
ICAgZG9jLmRvY3VtZW50RWxlbWVudC5hcHBlbmRDaGlsZChpbnN0YW5jZSk7CisgICAgICAgICAg
ICBjYWxscyA9IFtdOworICAgICAgICAgICAgZG9jLmRvY3VtZW50RWxlbWVudC5yZW1vdmVDaGls
ZChpbnN0YW5jZSk7CisgICAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGNhbGxzLCBbJ2Rp
c2Nvbm5lY3RlZCcsIGluc3RhbmNlXSk7CisgICAgICAgIH0pOworICAgIH0sICdSZW1vdmluZyBh
IGN1c3RvbSBlbGVtZW50IGZyb20gYSAnICsgZG9jdW1lbnROYW1lICsgJyBtdXN0IGVucXVldWUg
YW5kIGludm9rZSBkaXNjb25uZWN0ZWRDYWxsYmFjaycpOworCisgICAgcHJvbWlzZV90ZXN0KGZ1
bmN0aW9uICgpIHsKKyAgICAgICAgcmV0dXJuIGdldERvY3VtZW50KCkudGhlbihmdW5jdGlvbiAo
ZG9jKSB7CisgICAgICAgICAgICB2YXIgaW5zdGFuY2UgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCdteS1jdXN0b20tZWxlbWVudCcpOworICAgICAgICAgICAgdmFyIHBhcmVudCA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgICAgICAgICAgcGFyZW50LmFwcGVuZENoaWxkKGlu
c3RhbmNlKTsKKyAgICAgICAgICAgIGRvYy5kb2N1bWVudEVsZW1lbnQuYXBwZW5kQ2hpbGQocGFy
ZW50KTsKKyAgICAgICAgICAgIGNhbGxzID0gW107CisgICAgICAgICAgICBkb2MuZG9jdW1lbnRF
bGVtZW50LnJlbW92ZUNoaWxkKHBhcmVudCk7CisgICAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1
YWxzKGNhbGxzLCBbJ2Rpc2Nvbm5lY3RlZCcsIGluc3RhbmNlXSk7CisgICAgICAgIH0pOworICAg
IH0sICdSZW1vdmluZyBhbiBhbmNlc3RvciBvZiBjdXN0b20gZWxlbWVudCBmcm9tIGEgJyArIGRv
Y3VtZW50TmFtZSArICcgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgZGlzY29ubmVjdGVkQ2FsbGJh
Y2snKTsKKworICAgIHByb21pc2VfdGVzdChmdW5jdGlvbiAoKSB7CisgICAgICAgIHJldHVybiBn
ZXREb2N1bWVudCgpLnRoZW4oZnVuY3Rpb24gKGRvYykgeworICAgICAgICAgICAgdmFyIGluc3Rh
bmNlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbXktY3VzdG9tLWVsZW1lbnQnKTsKKyAgICAg
ICAgICAgIHZhciBob3N0ID0gZG9jLmNyZWF0ZUVsZW1lbnROUygnaHR0cDovL3d3dy53My5vcmcv
MTk5OS94aHRtbCcsICdkaXYnKTsKKyAgICAgICAgICAgIHZhciBzaGFkb3dSb290ID0gaG9zdC5h
dHRhY2hTaGFkb3coe21vZGU6ICdjbG9zZWQnfSk7CisgICAgICAgICAgICBkb2MuZG9jdW1lbnRF
bGVtZW50LmFwcGVuZENoaWxkKGhvc3QpOworICAgICAgICAgICAgc2hhZG93Um9vdC5hcHBlbmRD
aGlsZChpbnN0YW5jZSk7CisKKyAgICAgICAgICAgIGNhbGxzID0gW107CisgICAgICAgICAgICBz
aGFkb3dSb290LnJlbW92ZUNoaWxkKGluc3RhbmNlKTsKKyAgICAgICAgICAgIGFzc2VydF9hcnJh
eV9lcXVhbHMoY2FsbHMsIFsnZGlzY29ubmVjdGVkJywgaW5zdGFuY2VdKTsKKyAgICAgICAgfSk7
CisgICAgfSwgJ1JlbW92aW5nIGEgY3VzdG9tIGVsZW1lbnQgZnJvbSBhIHNoYWRvdyB0cmVlIGlu
IGEgJyArIGRvY3VtZW50TmFtZSArICcgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgZGlzY29ubmVj
dGVkQ2FsbGJhY2snKTsKKworICAgIHByb21pc2VfdGVzdChmdW5jdGlvbiAoKSB7CisgICAgICAg
IHJldHVybiBnZXREb2N1bWVudCgpLnRoZW4oZnVuY3Rpb24gKGRvYykgeworICAgICAgICAgICAg
dmFyIGluc3RhbmNlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbXktY3VzdG9tLWVsZW1lbnQn
KTsKKyAgICAgICAgICAgIHZhciBob3N0ID0gZG9jLmNyZWF0ZUVsZW1lbnROUygnaHR0cDovL3d3
dy53My5vcmcvMTk5OS94aHRtbCcsICdkaXYnKTsKKyAgICAgICAgICAgIHZhciBzaGFkb3dSb290
ID0gaG9zdC5hdHRhY2hTaGFkb3coe21vZGU6ICdjbG9zZWQnfSk7CisgICAgICAgICAgICBzaGFk
b3dSb290LmFwcGVuZENoaWxkKGluc3RhbmNlKTsKKyAgICAgICAgICAgIGRvYy5kb2N1bWVudEVs
ZW1lbnQuYXBwZW5kQ2hpbGQoaG9zdCk7CisKKyAgICAgICAgICAgIGNhbGxzID0gW107CisgICAg
ICAgICAgICBkb2MuZG9jdW1lbnRFbGVtZW50LnJlbW92ZUNoaWxkKGhvc3QpOworICAgICAgICAg
ICAgYXNzZXJ0X2FycmF5X2VxdWFscyhjYWxscywgWydkaXNjb25uZWN0ZWQnLCBpbnN0YW5jZV0p
OworICAgICAgICB9KTsKKyAgICB9LCAnUmVtb3ZpbmcgdGhlIHNoYWRvdyBob3N0IG9mIGEgY3Vz
dG9tIGVsZW1lbnQgZnJvbSBhJyArIGRvY3VtZW50TmFtZSArICcgbXVzdCBlbnF1ZXVlIGFuZCBp
bnZva2UgZGlzY29ubmVjdGVkQ2FsbGJhY2snKTsKKworICAgIHByb21pc2VfdGVzdChmdW5jdGlv
biAoKSB7CisgICAgICAgIHJldHVybiBnZXREb2N1bWVudCgpLnRoZW4oZnVuY3Rpb24gKGRvYykg
eworICAgICAgICAgICAgdmFyIGluc3RhbmNlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbXkt
Y3VzdG9tLWVsZW1lbnQnKTsKKyAgICAgICAgICAgIHZhciBob3N0ID0gZG9jLmNyZWF0ZUVsZW1l
bnROUygnaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcsICdkaXYnKTsKKyAgICAgICAgICAg
IHZhciBzaGFkb3dSb290ID0gaG9zdC5hdHRhY2hTaGFkb3coe21vZGU6ICdjbG9zZWQnfSk7Cisg
ICAgICAgICAgICBzaGFkb3dSb290LmFwcGVuZENoaWxkKGluc3RhbmNlKTsKKworICAgICAgICAg
ICAgY2FsbHMgPSBbXTsKKyAgICAgICAgICAgIHNoYWRvd1Jvb3QucmVtb3ZlQ2hpbGQoaW5zdGFu
Y2UpOworICAgICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhjYWxscywgW10pOworICAgICAg
ICB9KTsKKyAgICB9LCAnUmVtb3ZpbmcgYSBjdXN0b20gZWxlbWVudCBmcm9tIGEgZGV0YWNoZWQg
c2hhZG93IHRyZWUgdGhhdCBiZWxvbmdzIHRvIGEgJyArIGRvY3VtZW50TmFtZSArICcgbXVzdCBu
b3QgZW5xdWV1ZSBhbmQgaW52b2tlIGRpc2Nvbm5lY3RlZENhbGxiYWNrJyk7Cit9KTsKKworPC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9odG1sY29uc3RydWN0b3Iv
bmV3dGFyZ2V0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL2h0bWxjb25zdHJ1Y3Rvci9uZXd0YXJnZXQtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAyYTllOTk1NmE2M2ZiM2I3NDU5ZWYwMzIyMmJkMDFjOTZm
NWQ3MmUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9odG1sY29uc3RydWN0b3IvbmV3dGFyZ2V0LWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDcgQEAKKworRkFJTCBVc2UgTmV3VGFyZ2V0J3MgcHJvdG90
eXBlLCBub3QgdGhlIG9uZSBzdG9yZWQgYXQgZGVmaW5pdGlvbiB0aW1lIHByb21pc2VfdGVzdDog
VW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogbnVsbCBp
cyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdkb2N1bWVudC5iby4uLiIKK0ZBSUwgUmV0aHJv
dyBhbnkgZXhjZXB0aW9ucyB0aHJvd24gd2hpbGUgZ2V0dGluZyB0aGUgcHJvdG90eXBlIGFzc2Vy
dF90aHJvd3M6IGZ1bmN0aW9uICIoKSA9PiB7CisgICAgICByZXR1cm4gUmVmbGVjdC5jb25zdHJ1
Y3Qody5IVE1MRWxlbWVudCwgW10sLi4uIiB0aHJldyBvYmplY3QgIlR5cGVFcnJvcjogbmV3LnRh
cmdldCBkb2VzIG5vdCBkZWZpbmUgYSBjdXN0b20gZWxlbWVudCIgKCJUeXBlRXJyb3IiKSBleHBl
Y3RlZCBvYmplY3QgIltvYmplY3QgT2JqZWN0XSIgKCJwcm90b3R5cGUgdGhyb3dzIikKK0ZBSUwg
SWYgcHJvdG90eXBlIGlzIG5vdCBvYmplY3QsIGRlcml2ZXMgdGhlIGZhbGxiYWNrIGZyb20gTmV3
VGFyZ2V0J3MgcmVhbG0gKGF1dG9ub21vdXMgY3VzdG9tIGVsZW1lbnRzKSBwcm9taXNlX3Rlc3Q6
IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IG5ldy50
YXJnZXQgZG9lcyBub3QgZGVmaW5lIGEgY3VzdG9tIGVsZW1lbnQiCitGQUlMIElmIHByb3RvdHlw
ZSBpcyBub3Qgb2JqZWN0LCBkZXJpdmVzIHRoZSBmYWxsYmFjayBmcm9tIE5ld1RhcmdldCdzIHJl
YWxtIChjdXN0b21pemVkIGJ1aWx0LWluIGVsZW1lbnRzKSBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxl
ZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IFJlZmxlY3QuY29uc3Ry
dWN0IHJlcXVpcmVzIHRoZSBmaXJzdCBhcmd1bWVudCAuLi4iCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL2h0
bWxjb25zdHJ1Y3Rvci9uZXd0YXJnZXQuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL2h0bWxjb25zdHJ1Y3Rvci9uZXd0YXJn
ZXQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4zZTQzMDdhOTE5OTNlMWYzMjA3N2ZiZDlkOTllZTUyZjQwYmVj
ZGFlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvaHRtbGNvbnN0cnVjdG9yL25ld3RhcmdldC5odG1s
CkBAIC0wLDAgKzEsMTI0IEBACis8IURPQ1RZUEUgaHRtbD4KKzx0aXRsZT5DdXN0b20gRWxlbWVu
dHM6IFtIVE1MQ29uc3RydWN0b3JdIGRlcml2ZXMgcHJvdG90eXBlIGZyb20gTmV3VGFyZ2V0PC90
aXRsZT4KKzxtZXRhIG5hbWU9ImF1dGhvciIgdGl0bGU9IkRvbWVuaWMgRGVuaWNvbGEiIGhyZWY9
Im1haWx0bzpkQGRvbWVuaWMubWUiPgorPG1ldGEgbmFtZT0iaGVscCIgY29udGVudD0iaHR0cHM6
Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2UvZG9tLmh0bWwjaHRtbGNvbnN0cnVjdG9y
Ij4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFy
bmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2N1c3Rv
bS1lbGVtZW50cy1oZWxwZXJzLmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KKyJ1c2Ugc3RyaWN0
IjsKKwordGVzdF93aXRoX3dpbmRvdyh3ID0+IHsKKyAgbGV0IGFmdGVyRGVmaW5pdGlvbiA9IGZh
bHNlOworICBjb25zdCBwcm90bzEgPSB7ICJwcm90byI6ICJudW1iZXIgb25lIiB9OworICBjb25z
dCBwcm90bzIgPSB7ICJwcm90byI6ICJudW1iZXIgdHdvIiB9OworCisgIGNvbnN0IFRlc3RFbGVt
ZW50ID0gKGZ1bmN0aW9uICgpIHsKKyAgICBhc3NlcnRfdGhyb3dzKHsgbmFtZTogInByb3RvdHlw
ZSB0aHJvd3MiIH0sICgpID0+IHsKKyAgICAgIGNvbnN0IG8gPSBSZWZsZWN0LmNvbnN0cnVjdCh3
LkhUTUxFbGVtZW50LCBbXSwgbmV3LnRhcmdldCk7CisKKyAgICAgIGFzc2VydF9lcXVhbHMoT2Jq
ZWN0LmdldFByb3RvdHlwZU9mKG8pLCBwcm90bzIsCisgICAgICAgICJNdXN0IHVzZSB0aGUgdmFs
dWUgcmV0dXJuZWQgZnJvbSBuZXcudGFyZ2V0LnByb3RvdHlwZSIpOworICAgICAgYXNzZXJ0X25v
dF9lcXVhbHMoT2JqZWN0LmdldFByb3RvdHlwZU9mKG8pLCBwcm90bzEsCisgICAgICAgICJNdXN0
IG5vdCB1c2UgdGhlIHByb3RvdHlwZSBzdG9yZWQgYXQgZGVmaW5pdGlvbiB0aW1lIik7CisgICAg
fSk7CisgIH0pLmJpbmQoe30pOworCisgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShUZXN0RWxlbWVu
dCwgInByb3RvdHlwZSIsIHsKKyAgICBnZXQoKSB7CisgICAgICByZXR1cm4gYmVmb3JlRGVmaW5p
dGlvbiA/IHByb3RvMSA6IHByb3RvMjsKKyAgICB9CisgIH0pOworCisgIHcuY3VzdG9tRWxlbWVu
dHMuZGVmaW5lKCJ0ZXN0LWVsZW1lbnQiLCBUZXN0RWxlbWVudCk7CisKKyAgYmVmb3JlRGVmaW5p
dGlvbiA9IHRydWU7CisgIG5ldyBUZXN0RWxlbWVudCgpOworCit9LCAiVXNlIE5ld1RhcmdldCdz
IHByb3RvdHlwZSwgbm90IHRoZSBvbmUgc3RvcmVkIGF0IGRlZmluaXRpb24gdGltZSIpOworCit0
ZXN0X3dpdGhfd2luZG93KHcgPT4geworICAvLyBXZSBoYXZlIHRvIG5vdCB0aHJvdyBkdXJpbmcg
ZGVmaW5lKCksIGJ1dCB0aHJvdyBkdXJpbmcgc3VwZXIoKQorICBsZXQgdGhyb3dzID0gZmFsc2U7
CisKKyAgY29uc3QgVGVzdEVsZW1lbnQgPSAoZnVuY3Rpb24gKCkgeworICAgIGFzc2VydF90aHJv
d3MoeyBuYW1lOiAicHJvdG90eXBlIHRocm93cyIgfSwgKCkgPT4geworICAgICAgcmV0dXJuIFJl
ZmxlY3QuY29uc3RydWN0KHcuSFRNTEVsZW1lbnQsIFtdLCBuZXcudGFyZ2V0KTsKKyAgICB9KTsK
KyAgfSkuYmluZCh7fSk7CisKKyAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFRlc3RFbGVtZW50LCAi
cHJvdG90eXBlIiwgeworICAgIGdldCgpIHsKKyAgICAgIGlmICh0aHJvd3MpIHsKKyAgICAgICAg
dGhyb3cgeyBuYW1lOiAicHJvdG90eXBlIHRocm93cyIgfTsKKyAgICAgIH0KKyAgICAgIHJldHVy
biB7fTsKKyAgICB9CisgIH0pOworCisgIHcuY3VzdG9tRWxlbWVudHMuZGVmaW5lKCJ0ZXN0LWVs
ZW1lbnQiLCBUZXN0RWxlbWVudCk7CisKKyAgdGhyb3dzID0gdHJ1ZTsKKyAgbmV3IFRlc3RFbGVt
ZW50KCk7CisKK30sICJSZXRocm93IGFueSBleGNlcHRpb25zIHRocm93biB3aGlsZSBnZXR0aW5n
IHRoZSBwcm90b3R5cGUiKTsKKwordGVzdF93aXRoX3dpbmRvdyh3ID0+IHsKKyAgZm9yIChjb25z
dCBub3RBbk9iamVjdCBvZiBbbnVsbCwgdW5kZWZpbmVkLCA1LCAic3RyaW5nIl0pIHsKKyAgICAv
LyBXZSBoYXZlIHRvIHJldHVybiBhbiBvYmplY3QgZHVyaW5nIGRlZmluZSgpLCBidXQgbm90IGR1
cmluZyBzdXBlcigpCisgICAgbGV0IHJldHVybk5vdEFuT2JqZWN0ID0gZmFsc2U7CisKKyAgICBj
b25zdCBUZXN0RWxlbWVudCA9IChmdW5jdGlvbiAoKSB7CisgICAgICBjb25zdCBvID0gUmVmbGVj
dC5jb25zdHJ1Y3Qody5IVE1MRWxlbWVudCwgW10sIG5ldy50YXJnZXQpOworCisgICAgICBhc3Nl
cnRfZXF1YWxzKE9iamVjdC5nZXRQcm90b3R5cGVPZihvKSwgd2luZG93LkhUTUxFbGVtZW50LAor
ICAgICAgICAiTXVzdCB1c2UgdGhlIEhUTUxFbGVtZW50IGZyb20gdGhlIHJlYWxtIG9mIE5ld1Rh
cmdldCIpOworICAgICAgYXNzZXJ0X25vdF9lcXVhbHMoT2JqZWN0LmdldFByb3RvdHlwZU9mKG8p
LCB3LkhUTUxFbGVtZW50LAorICAgICAgICAiTXVzdCBub3QgdXNlIHRoZSBIVE1MRWxlbWVudCBm
cm9tIHRoZSByZWFsbSBvZiB0aGUgYWN0aXZlIGZ1bmN0aW9uIG9iamVjdCAody5IVE1MRWxlbWVu
dCkiKTsKKworICAgICAgcmV0dXJuIG87CisgICAgfSkuYmluZCh7fSk7CisKKyAgICBPYmplY3Qu
ZGVmaW5lUHJvcGVydHkoVGVzdEVsZW1lbnQsICJwcm90b3R5cGUiLCB7CisgICAgICBnZXQoKSB7
CisgICAgICAgIHJldHVybiByZXR1cm5Ob3RBbk9iamVjdCA/IG5vdEFuT2JqZWN0IDoge307Cisg
ICAgICB9CisgICAgfSk7CisKKyAgICB3LmN1c3RvbUVsZW1lbnRzLmRlZmluZSgidGVzdC1lbGVt
ZW50IiwgVGVzdEVsZW1lbnQpOworCisgICAgcmV0dXJuTm90QW5PYmplY3QgPSB0cnVlOworICAg
IG5ldyBUZXN0RWxlbWVudCgpOworICB9Cit9LCAiSWYgcHJvdG90eXBlIGlzIG5vdCBvYmplY3Qs
IGRlcml2ZXMgdGhlIGZhbGxiYWNrIGZyb20gTmV3VGFyZ2V0J3MgcmVhbG0gKGF1dG9ub21vdXMg
Y3VzdG9tIGVsZW1lbnRzKSIpOworCit0ZXN0X3dpdGhfd2luZG93KHcgPT4geworICBmb3IgKGNv
bnN0IG5vdEFuT2JqZWN0IG9mIFtudWxsLCB1bmRlZmluZWQsIDUsICJzdHJpbmciXSkgeworICAg
IC8vIFdlIGhhdmUgdG8gcmV0dXJuIGFuIG9iamVjdCBkdXJpbmcgZGVmaW5lKCksIGJ1dCBub3Qg
ZHVyaW5nIHN1cGVyKCkKKyAgICBsZXQgcmV0dXJuTm90QW5PYmplY3QgPSBmYWxzZTsKKworICAg
IGNvbnN0IFRlc3RFbGVtZW50ID0gKGZ1bmN0aW9uICgpIHsKKyAgICAgIGNvbnN0IG8gPSBSZWZs
ZWN0LmNvbnN0cnVjdCh3LkhUTUxQYXJhZ3JhcGhFbGVtZW50LCBbXSwgbmV3LnRhcmdldCk7CisK
KyAgICAgIGFzc2VydF9lcXVhbHMoT2JqZWN0LmdldFByb3RvdHlwZU9mKG8pLCB3aW5kb3cuSFRN
TFBhcmFncmFwaEVsZW1lbnQsCisgICAgICAgICJNdXN0IHVzZSB0aGUgSFRNTFBhcmFncmFwaEVs
ZW1lbnQgZnJvbSB0aGUgcmVhbG0gb2YgTmV3VGFyZ2V0Iik7CisgICAgICBhc3NlcnRfbm90X2Vx
dWFscyhPYmplY3QuZ2V0UHJvdG90eXBlT2YobyksIHcuSFRNTFBhcmFncmFwaEVsZW1lbnQsCisg
ICAgICAgICJNdXN0IG5vdCB1c2UgdGhlIEhUTUxQYXJhZ3JhcGhFbGVtZW50IGZyb20gdGhlIHJl
YWxtIG9mIHRoZSBhY3RpdmUgZnVuY3Rpb24gb2JqZWN0ICh3LkhUTUxQYXJhZ3JhcGhFbGVtZW50
KSIpOworCisgICAgICByZXR1cm4gbzsKKyAgICB9KS5iaW5kKHt9KTsKKworICAgIE9iamVjdC5k
ZWZpbmVQcm9wZXJ0eShUZXN0RWxlbWVudCwgInByb3RvdHlwZSIsIHsKKyAgICAgIGdldCgpIHsK
KyAgICAgICAgcmV0dXJuIHJldHVybk5vdEFuT2JqZWN0ID8gbm90QW5PYmplY3QgOiB7fTsKKyAg
ICAgIH0KKyAgICB9KTsKKworICAgIHcuY3VzdG9tRWxlbWVudHMuZGVmaW5lKCJ0ZXN0LWVsZW1l
bnQiLCBUZXN0RWxlbWVudCwgeyBleHRlbmRzOiAicCIgfSk7CisKKyAgICByZXR1cm5Ob3RBbk9i
amVjdCA9IHRydWU7CisgICAgbmV3IFRlc3RFbGVtZW50KCk7CisgIH0KK30sICJJZiBwcm90b3R5
cGUgaXMgbm90IG9iamVjdCwgZGVyaXZlcyB0aGUgZmFsbGJhY2sgZnJvbSBOZXdUYXJnZXQncyBy
ZWFsbSAoY3VzdG9taXplZCBidWlsdC1pbiBlbGVtZW50cykiKTsKKzwvc2NyaXB0PgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20t
ZWxlbWVudHMvaHRtbGNvbnN0cnVjdG9yL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvaHRtbGNvbnN0cnVj
dG9yL3czYy1pbXBvcnQubG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFiNjFhOTNlZWFhMDE5Y2I4OTdiZWJmMGE5
YjVjNzhiNGM0MzJlMDQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9odG1sY29uc3RydWN0b3IvdzNj
LWltcG9ydC5sb2cKQEAgLTAsMCArMSwxOCBAQAorVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5
IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRo
ZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVx
dWVzdCBvbiB0aGUgVzNDIENTUyBvciBXUFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0aHViLmNvbS93
M2MvY3Nzd2ctdGVzdAorCWh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
CisKK1RoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0
IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KKworLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25l
CitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKKy0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQorTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9odG1sY29uc3RydWN0b3IvbmV3dGFyZ2V0
Lmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3VzdG9tLWVsZW1lbnRzL3JlYWN0aW9uLXRpbWluZy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9y
ZWFjdGlvbi10aW1pbmctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlmMDMwNDc0MTM0NzgzNjY5
NmIxOThlYmMyMzgzYTk4MWJhODAxMzUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9yZWFjdGlvbi10
aW1pbmctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorCitQQVNTIHNldEF0dHJpYnV0ZSBh
bmQgcmVtb3ZlQXR0cmlidXRlIG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGF0dHJpYnV0ZUNoYW5n
ZWRDYWxsYmFjayAKK1BBU1MgQ2FsbGluZyBOb2RlLnByb3RvdHlwZS5jbG9uZU5vZGUoZmFsc2Up
IG11c3QgcHVzaCBhIG5ldyBlbGVtZW50IHF1ZXVlIHRvIHRoZSBwcm9jZXNzaW5nIHN0YWNrIAor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2N1c3RvbS1lbGVtZW50cy9yZWFjdGlvbi10aW1pbmcuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL3JlYWN0aW9uLXRpbWlu
Zy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmExZGIxMDQ3YjgxN2I2ZmY3ODNiYjY4M2QwOGExMTMwMjEwYmFj
NmEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9yZWFjdGlvbi10aW1pbmcuaHRtbApAQCAtMCwwICsx
LDg4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8dGl0bGU+Q3VzdG9tIEVs
ZW1lbnRzOiBDdXN0b20gZWxlbWVudCByZWFjdGlvbnMgbXVzdCBiZSBpbnZva2VkIGJlZm9yZSBy
ZXR1cm5pbmcgdG8gYXV0aG9yIHNjcmlwdHM8L3RpdGxlPgorPG1ldGEgbmFtZT0iYXV0aG9yIiB0
aXRsZT0iUnlvc3VrZSBOaXdhIiBocmVmPSJtYWlsdG86cm5pd2FAd2Via2l0Lm9yZyI+Cis8bWV0
YSBuYW1lPSJhc3NlcnQiIGNvbnRlbnQ9IkN1c3RvbSBlbGVtZW50IHJlYWN0aW9ucyBtdXN0IGJl
IGludm9rZWQgYmVmb3JlIHJldHVybmluZyB0byBhdXRob3Igc2NyaXB0cyI+Cis8bGluayByZWw9
ImhlbHAiIGhyZWY9Imh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3Njcmlw
dGluZy5odG1sI2ludm9rZS1jdXN0b20tZWxlbWVudC1yZWFjdGlvbnMiPgorPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0ibG9nIj48L2Rpdj4KKzxzY3JpcHQ+CisKK2Ns
YXNzIE15Q3VzdG9tRWxlbWVudCBleHRlbmRzIEhUTUxFbGVtZW50IHsKKyAgICBhdHRyaWJ1dGVD
aGFuZ2VkQ2FsbGJhY2soLi4uYXJncykgeworICAgICAgICB0aGlzLmhhbmRsZXIoLi4uYXJncyk7
CisgICAgfQorCisgICAgaGFuZGxlcigpIHsgfQorfQorTXlDdXN0b21FbGVtZW50Lm9ic2VydmVk
QXR0cmlidXRlcyA9IFsnZGF0YS10aXRsZScsICd0aXRsZSddOworY3VzdG9tRWxlbWVudHMuZGVm
aW5lKCdteS1jdXN0b20tZWxlbWVudCcsIE15Q3VzdG9tRWxlbWVudCk7CisKK3Rlc3QoZnVuY3Rp
b24gKCkgeworICAgIHZhciBpbnN0YW5jZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ215LWN1
c3RvbS1lbGVtZW50Jyk7CisgICAgdmFyIGFub3RoZXJJbnN0YW5jZSA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoJ215LWN1c3RvbS1lbGVtZW50Jyk7CisKKyAgICB2YXIgY2FsbGJhY2tPcmRlciA9
IFtdOworICAgIGluc3RhbmNlLmhhbmRsZXIgPSBmdW5jdGlvbiAoKSB7CisgICAgICAgIGNhbGxi
YWNrT3JkZXIucHVzaChbdGhpcywgJ2JlZ2luJ10pOworICAgICAgICBhbm90aGVySW5zdGFuY2Uu
c2V0QXR0cmlidXRlKCdkYXRhLXRpdGxlJywgJ2JheicpOworICAgICAgICBjYWxsYmFja09yZGVy
LnB1c2goW3RoaXMsICdlbmQnXSk7CisgICAgfQorICAgIGFub3RoZXJJbnN0YW5jZS5oYW5kbGVy
ID0gZnVuY3Rpb24gKCkgeworICAgICAgICBjYWxsYmFja09yZGVyLnB1c2goW3RoaXMsICdiZWdp
biddKTsKKyAgICAgICAgY2FsbGJhY2tPcmRlci5wdXNoKFt0aGlzLCAnZW5kJ10pOworICAgIH0K
KworICAgIGluc3RhbmNlLnNldEF0dHJpYnV0ZSgndGl0bGUnLCAnZm9vJyk7CisgICAgYXNzZXJ0
X2VxdWFscyhjYWxsYmFja09yZGVyLmxlbmd0aCwgNCk7CisKKyAgICBhc3NlcnRfYXJyYXlfZXF1
YWxzKGNhbGxiYWNrT3JkZXJbMF0sIFtpbnN0YW5jZSwgJ2JlZ2luJ10pOworICAgIGFzc2VydF9h
cnJheV9lcXVhbHMoY2FsbGJhY2tPcmRlclsxXSwgW2Fub3RoZXJJbnN0YW5jZSwgJ2JlZ2luJ10p
OworICAgIGFzc2VydF9hcnJheV9lcXVhbHMoY2FsbGJhY2tPcmRlclsyXSwgW2Fub3RoZXJJbnN0
YW5jZSwgJ2VuZCddKTsKKyAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGNhbGxiYWNrT3JkZXJbM10s
IFtpbnN0YW5jZSwgJ2VuZCddKTsKKworfSwgJ3NldEF0dHJpYnV0ZSBhbmQgcmVtb3ZlQXR0cmli
dXRlIG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjaycpOwor
Cit0ZXN0KGZ1bmN0aW9uICgpIHsKKyAgICB2YXIgc2hvdWxkQ2xvbmVBbm90aGVySW5zdGFuY2Ug
PSBmYWxzZTsKKyAgICB2YXIgYW5vdGhlckluc3RhbmNlQ2xvbmU7CisgICAgdmFyIGxvZyA9IFtd
OworCisgICAgY2xhc3MgU2VsZkNsb25pbmdFbGVtZW50IGV4dGVuZHMgSFRNTEVsZW1lbnQgewor
ICAgICAgICBjb25zdHJ1Y3RvcigpIHsKKyAgICAgICAgICAgIHN1cGVyKCk7CisgICAgICAgICAg
ICBsb2cucHVzaChbdGhpcywgJ2JlZ2luJ10pOworICAgICAgICAgICAgaWYgKHNob3VsZENsb25l
QW5vdGhlckluc3RhbmNlKSB7CisgICAgICAgICAgICAgICAgc2hvdWxkQ2xvbmVBbm90aGVySW5z
dGFuY2UgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICBhbm90aGVySW5zdGFuY2VDbG9uZSA9IGFu
b3RoZXJJbnN0YW5jZS5jbG9uZU5vZGUoZmFsc2UpOworICAgICAgICAgICAgfQorICAgICAgICAg
ICAgbG9nLnB1c2goW3RoaXMsICdlbmQnXSk7CisgICAgICAgIH0KKyAgICB9CisgICAgY3VzdG9t
RWxlbWVudHMuZGVmaW5lKCdzZWxmLWNsb25pbmctZWxlbWVudCcsIFNlbGZDbG9uaW5nRWxlbWVu
dCk7CisKKyAgICB2YXIgaW5zdGFuY2UgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzZWxmLWNs
b25pbmctZWxlbWVudCcpOworICAgIHZhciBhbm90aGVySW5zdGFuY2UgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCdzZWxmLWNsb25pbmctZWxlbWVudCcpOworICAgIHNob3VsZENsb25lQW5vdGhl
ckluc3RhbmNlID0gdHJ1ZTsKKworICAgIGFzc2VydF9lcXVhbHMobG9nLmxlbmd0aCwgNCk7Cisg
ICAgdmFyIGluc3RhbmNlQ2xvbmUgPSBpbnN0YW5jZS5jbG9uZU5vZGUoZmFsc2UpOworCisgICAg
YXNzZXJ0X2VxdWFscyhsb2cubGVuZ3RoLCA4KTsKKyAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxv
Z1swXSwgW2luc3RhbmNlLCAnYmVnaW4nXSk7CisgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2db
MV0sIFtpbnN0YW5jZSwgJ2VuZCddKTsKKyAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZ1syXSwg
W2Fub3RoZXJJbnN0YW5jZSwgJ2JlZ2luJ10pOworICAgIGFzc2VydF9hcnJheV9lcXVhbHMobG9n
WzNdLCBbYW5vdGhlckluc3RhbmNlLCAnZW5kJ10pOworICAgIGFzc2VydF9hcnJheV9lcXVhbHMo
bG9nWzRdLCBbaW5zdGFuY2VDbG9uZSwgJ2JlZ2luJ10pOworICAgIGFzc2VydF9hcnJheV9lcXVh
bHMobG9nWzVdLCBbYW5vdGhlckluc3RhbmNlQ2xvbmUsICdiZWdpbiddKTsKKyAgICBhc3NlcnRf
YXJyYXlfZXF1YWxzKGxvZ1s2XSwgW2Fub3RoZXJJbnN0YW5jZUNsb25lLCAnZW5kJ10pOworICAg
IGFzc2VydF9hcnJheV9lcXVhbHMobG9nWzddLCBbaW5zdGFuY2VDbG9uZSwgJ2VuZCddKTsKK30s
ICdDYWxsaW5nIE5vZGUucHJvdG90eXBlLmNsb25lTm9kZShmYWxzZSkgbXVzdCBwdXNoIGEgbmV3
IGVsZW1lbnQgcXVldWUgdG8gdGhlIHByb2Nlc3Npbmcgc3RhY2snKTsKKworPC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9yZWFjdGlvbnMvQXR0ci1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1l
bGVtZW50cy9yZWFjdGlvbnMvQXR0ci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWY3MjljYzMz
NTViYmEwZjdkOGNlY2I3YmM0YjYyZjgyOGUwODc4NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL3Jl
YWN0aW9ucy9BdHRyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKKworRkFJTCB2YWx1ZSBv
biBBdHRyIG11c3QgZW5xdWV1ZSBhbiBhdHRyaWJ1dGVDaGFuZ2VkIHJlYWN0aW9uIHdoZW4gcmVw
bGFjaW5nIGFuIGV4aXN0aW5nIGF0dHJpYnV0ZSBhc3NlcnRfYXJyYXlfZXF1YWxzOiBsZW5ndGhz
IGRpZmZlciwgZXhwZWN0ZWQgMSBnb3QgMAorUEFTUyB2YWx1ZSBvbiBBdHRyIG11c3Qgbm90IGVu
cXVldWUgYW4gYXR0cmlidXRlQ2hhbmdlZCByZWFjdGlvbiB3aGVuIHJlcGxhY2luZyBhbiBleGlz
dGluZyB1bm9ic2VydmVkIGF0dHJpYnV0ZSAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvcmVhY3Rpb25zL0F0
dHIuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Vz
dG9tLWVsZW1lbnRzL3JlYWN0aW9ucy9BdHRyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMThiODZkODExYjU5
MDVmNzNiZmE0NjZjZjllOGVmNWE0ZTFhODZkNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL3JlYWN0
aW9ucy9BdHRyLmh0bWwKQEAgLTAsMCArMSwyMiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
KzxoZWFkPgorPHRpdGxlPkN1c3RvbSBFbGVtZW50czogQ0VSZWFjdGlvbnMgb24gQXR0ciBpbnRl
cmZhY2U8L3RpdGxlPgorPG1ldGEgbmFtZT0iYXV0aG9yIiB0aXRsZT0iUnlvc3VrZSBOaXdhIiBo
cmVmPSJtYWlsdG86cm5pd2FAd2Via2l0Lm9yZyI+Cis8bWV0YSBuYW1lPSJhc3NlcnQiIGNvbnRl
bnQ9InZhbHVlIG9mIEF0dHIgaW50ZXJmYWNlIG11c3QgaGF2ZSBDRVJlYWN0aW9ucyI+Cis8bWV0
YSBuYW1lPSJoZWxwIiBjb250ZW50PSJodHRwczovL2RvbS5zcGVjLndoYXR3Zy5vcmcvI25vZGUi
PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuL3Jlc291cmNlcy9yZWFjdGlv
bnMuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJsb2ciPjwvZGl2Pgor
PHNjcmlwdD4KKwordGVzdEF0dHJpYnV0ZU11dGF0b3IoZnVuY3Rpb24gKGVsZW1lbnQsIG5hbWUs
IHZhbHVlKSB7CisgICAgZWxlbWVudC5hdHRyaWJ1dGVzW25hbWVdLnZhbHVlID0gdmFsdWU7Cit9
LCAndmFsdWUgb24gQXR0cicpOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9t
LWVsZW1lbnRzL3JlYWN0aW9ucy9DaGlsZE5vZGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvcmVhY3Rpb25z
L0NoaWxkTm9kZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2MxZjI4OTUzMTM4YzgwYWI1MzAw
NTc2ZDVkN2M1YTAwOWVhYTVkNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL3JlYWN0aW9ucy9DaGls
ZE5vZGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOSBAQAorCitGQUlMIGJlZm9yZSBvbiBDaGls
ZE5vZGUgbXVzdCBlbnF1ZXVlIGEgY29ubmVjdGVkIHJlYWN0aW9uIGFzc2VydF9hcnJheV9lcXVh
bHM6IGxlbmd0aHMgZGlmZmVyLCBleHBlY3RlZCAxIGdvdCAwCitGQUlMIGJlZm9yZSBvbiBDaGls
ZE5vZGUgbXVzdCBlbnF1ZXVlIGEgZGlzY29ubmVjdGVkIHJlYWN0aW9uLCBhbiBhZG9wdGVkIHJl
YWN0aW9uLCBhbmQgYSBjb25uZWN0ZWQgcmVhY3Rpb24gd2hlbiB0aGUgY3VzdG9tIGVsZW1lbnQg
d2FzIGluIGFub3RoZXIgZG9jdW1lbnQgYXNzZXJ0X2FycmF5X2VxdWFsczogbGVuZ3RocyBkaWZm
ZXIsIGV4cGVjdGVkIDEgZ290IDAKK0ZBSUwgYWZ0ZXIgb24gQ2hpbGROb2RlIG11c3QgZW5xdWV1
ZSBhIGNvbm5lY3RlZCByZWFjdGlvbiBhc3NlcnRfYXJyYXlfZXF1YWxzOiBsZW5ndGhzIGRpZmZl
ciwgZXhwZWN0ZWQgMSBnb3QgMAorRkFJTCBhZnRlciBvbiBDaGlsZE5vZGUgbXVzdCBlbnF1ZXVl
IGEgZGlzY29ubmVjdGVkIHJlYWN0aW9uLCBhbiBhZG9wdGVkIHJlYWN0aW9uLCBhbmQgYSBjb25u
ZWN0ZWQgcmVhY3Rpb24gd2hlbiB0aGUgY3VzdG9tIGVsZW1lbnQgd2FzIGluIGFub3RoZXIgZG9j
dW1lbnQgYXNzZXJ0X2FycmF5X2VxdWFsczogbGVuZ3RocyBkaWZmZXIsIGV4cGVjdGVkIDEgZ290
IDAKK0ZBSUwgcmVwbGFjZVdpdGggb24gQ2hpbGROb2RlIG11c3QgZW5xdWV1ZSBhIGNvbm5lY3Rl
ZCByZWFjdGlvbiBhc3NlcnRfYXJyYXlfZXF1YWxzOiBsZW5ndGhzIGRpZmZlciwgZXhwZWN0ZWQg
MSBnb3QgMAorRkFJTCByZXBsYWNlV2l0aCBvbiBDaGlsZE5vZGUgbXVzdCBlbnF1ZXVlIGEgZGlz
Y29ubmVjdGVkIHJlYWN0aW9uLCBhbiBhZG9wdGVkIHJlYWN0aW9uLCBhbmQgYSBjb25uZWN0ZWQg
cmVhY3Rpb24gd2hlbiB0aGUgY3VzdG9tIGVsZW1lbnQgd2FzIGluIGFub3RoZXIgZG9jdW1lbnQg
YXNzZXJ0X2FycmF5X2VxdWFsczogbGVuZ3RocyBkaWZmZXIsIGV4cGVjdGVkIDEgZ290IDAKK0ZB
SUwgcmVwbGFjZVdpdGggb24gQ2hpbGROb2RlIG11c3QgZW5xdWV1ZSBhIGRpc2Nvbm5lY3RlZCBy
ZWFjdGlvbiBhc3NlcnRfYXJyYXlfZXF1YWxzOiBsZW5ndGhzIGRpZmZlciwgZXhwZWN0ZWQgMSBn
b3QgMAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2N1c3RvbS1lbGVtZW50cy9yZWFjdGlvbnMvQ2hpbGROb2RlLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9yZWFj
dGlvbnMvQ2hpbGROb2RlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWQ4MmEyMDgxODUyNGU4MDUwZjI5NWRk
Mzg4MzFhYjZjNDEyZDQyNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL3JlYWN0aW9ucy9DaGlsZE5v
ZGUuaHRtbApAQCAtMCwwICsxLDM0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+
Cis8dGl0bGU+Q3VzdG9tIEVsZW1lbnRzOiBDRVJlYWN0aW9ucyBvbiBDaGlsZE5vZGUgaW50ZXJm
YWNlPC90aXRsZT4KKzxtZXRhIG5hbWU9ImF1dGhvciIgdGl0bGU9IlJ5b3N1a2UgTml3YSIgaHJl
Zj0ibWFpbHRvOnJuaXdhQHdlYmtpdC5vcmciPgorPG1ldGEgbmFtZT0iYXNzZXJ0IiBjb250ZW50
PSJiZWZvcmUsIGFmdGVyLCBhZnRlciwgcmVwbGFjZVdpdGgsIGFuZCByZW1vdmUgb2YgQ2hpbGRO
b2RlIGludGVyZmFjZSBtdXN0IGhhdmUgQ0VSZWFjdGlvbnMiPgorPG1ldGEgbmFtZT0iaGVscCIg
Y29udGVudD0iaHR0cHM6Ly9kb20uc3BlYy53aGF0d2cub3JnLyNwYXJlbnRub2RlIj4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9y
dC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi9yZXNvdXJjZXMvcmVhY3Rpb25zLmpzIj48
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0ibG9nIj48L2Rpdj4KKzxzY3JpcHQ+
CisKK3Rlc3ROb2RlQ29ubmVjdG9yKGZ1bmN0aW9uIChuZXdDb250YWluZXIsIGN1c3RvbUVsZW1l
bnQpIHsKKyAgICBuZXdDb250YWluZXIuZmlyc3RDaGlsZC5iZWZvcmUoY3VzdG9tRWxlbWVudCk7
Cit9LCAnYmVmb3JlIG9uIENoaWxkTm9kZScpOworCit0ZXN0Tm9kZUNvbm5lY3RvcihmdW5jdGlv
biAobmV3Q29udGFpbmVyLCBjdXN0b21FbGVtZW50KSB7CisgICAgbmV3Q29udGFpbmVyLmZpcnN0
Q2hpbGQuYWZ0ZXIoY3VzdG9tRWxlbWVudCk7Cit9LCAnYWZ0ZXIgb24gQ2hpbGROb2RlJyk7CisK
K3Rlc3ROb2RlQ29ubmVjdG9yKGZ1bmN0aW9uIChuZXdDb250YWluZXIsIGN1c3RvbUVsZW1lbnQp
IHsKKyAgICBuZXdDb250YWluZXIuZmlyc3RDaGlsZC5yZXBsYWNlV2l0aChjdXN0b21FbGVtZW50
KTsKK30sICdyZXBsYWNlV2l0aCBvbiBDaGlsZE5vZGUnKTsKKwordGVzdE5vZGVEaXNjb25uZWN0
b3IoZnVuY3Rpb24gKGN1c3RvbUVsZW1lbnQpIHsKKyAgICBjdXN0b21FbGVtZW50LnJlbW92ZSgp
OworfSwgJ3JlcGxhY2VXaXRoIG9uIENoaWxkTm9kZScpOworCis8L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL3JlYWN0aW9ucy9ET01Ub2tlbkxpc3QtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20t
ZWxlbWVudHMvcmVhY3Rpb25zL0RPTVRva2VuTGlzdC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ODQ3OWQxY2E3MDkyZDFiNjAyOGNiNDYzODdjNzBhZmE4ODVlMzBjNgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVs
ZW1lbnRzL3JlYWN0aW9ucy9ET01Ub2tlbkxpc3QtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjIg
QEAKKworRkFJTCBhZGQgb24gRE9NVG9rZW5MaXN0IG11c3QgZW5xdWV1ZSBhbiBhdHRyaWJ1dGVD
aGFuZ2VkIHJlYWN0aW9uIHdoZW4gYWRkaW5nIGFuIGF0dHJpYnV0ZSBhc3NlcnRfYXJyYXlfZXF1
YWxzOiBsZW5ndGhzIGRpZmZlciwgZXhwZWN0ZWQgMSBnb3QgMAorUEFTUyBhZGQgb24gRE9NVG9r
ZW5MaXN0IG11c3Qgbm90IGVucXVldWUgYW4gYXR0cmlidXRlQ2hhbmdlZCByZWFjdGlvbiB3aGVu
IGFkZGluZyBhbiB1bm9ic2VydmVkIGF0dHJpYnV0ZSAKK0ZBSUwgYWRkIG9uIERPTVRva2VuTGlz
dCBtdXN0IGVucXVldWUgYW4gYXR0cmlidXRlQ2hhbmdlZCByZWFjdGlvbiB3aGVuIGFkZGluZyBh
IHZhbHVlIHRvIGFuIGV4aXN0aW5nIGF0dHJpYnV0ZSBhc3NlcnRfYXJyYXlfZXF1YWxzOiBsZW5n
dGhzIGRpZmZlciwgZXhwZWN0ZWQgMSBnb3QgMAorUEFTUyBhZGQgb24gRE9NVG9rZW5MaXN0IG11
c3Qgbm90IGVucXVldWUgYW4gYXR0cmlidXRlQ2hhbmdlZCByZWFjdGlvbiB3aGVuIGFkZGluZyBh
IHZhbHVlIHRvIGFuIHVub2JzZXJ2ZWQgYXR0cmlidXRlIAorRkFJTCBhZGQgb24gRE9NVG9rZW5M
aXN0IG11c3QgZW5xdWV1ZSBleGFjdGx5IG9uZSBhdHRyaWJ1dGVDaGFuZ2VkIHJlYWN0aW9uIHdo
ZW4gYWRkaW5nIG11bHRpcGxlIHZhbHVlcyB0byBhbiBhdHRyaWJ1dGUgYXNzZXJ0X2FycmF5X2Vx
dWFsczogbGVuZ3RocyBkaWZmZXIsIGV4cGVjdGVkIDEgZ290IDAKK0ZBSUwgcmVtb3ZlIG9uIERP
TVRva2VuTGlzdCBtdXN0IGVucXVldWUgYW4gYXR0cmlidXRlQ2hhbmdlZCByZWFjdGlvbiB3aGVu
IHJlbW92aW5nIGEgdmFsdWUgZnJvbSBhbiBhdHRyaWJ1dGUgYXNzZXJ0X2FycmF5X2VxdWFsczog
bGVuZ3RocyBkaWZmZXIsIGV4cGVjdGVkIDEgZ290IDAKK0ZBSUwgcmVtb3ZlIG9uIERPTVRva2Vu
TGlzdCBtdXN0IGVucXVldWUgZXhhY3RseSBvbmUgYXR0cmlidXRlQ2hhbmdlZCByZWFjdGlvbiB3
aGVuIHJlbW92aW5nIG11bHRpcGxlIHZhbHVlcyB0byBhbiBhdHRyaWJ1dGUgYXNzZXJ0X2FycmF5
X2VxdWFsczogbGVuZ3RocyBkaWZmZXIsIGV4cGVjdGVkIDEgZ290IDAKK1BBU1MgcmVtb3ZlIG9u
IERPTVRva2VuTGlzdCBtdXN0IG5vdCBlbnF1ZXVlIGFuIGF0dHJpYnV0ZUNoYW5nZWQgcmVhY3Rp
b24gd2hlbiByZW1vdmluZyBhIG5vbi1leGlzdGVudCB2YWx1ZSBmcm9tIGFuIGF0dHJpYnV0ZSAK
K1BBU1MgcmVtb3ZlIG9uIERPTVRva2VuTGlzdCBtdXN0IG5vdCBlbnF1ZXVlIGFuIGF0dHJpYnV0
ZUNoYW5nZWQgcmVhY3Rpb24gd2hlbiByZW1vdmluZyBhIHZhbHVlIGZyb20gYW4gdW5vYnNlcnZl
ZCBhdHRyaWJ1dGUgCitGQUlMIHRvZ2dsZSBvbiBET01Ub2tlbkxpc3QgbXVzdCBlbnF1ZXVlIGFu
IGF0dHJpYnV0ZUNoYW5nZWQgcmVhY3Rpb24gd2hlbiBhZGRpbmcgYSB2YWx1ZSB0byBhbiBhdHRy
aWJ1dGUgYXNzZXJ0X2FycmF5X2VxdWFsczogbGVuZ3RocyBkaWZmZXIsIGV4cGVjdGVkIDEgZ290
IDAKK0ZBSUwgdG9nZ2xlIG9uIERPTVRva2VuTGlzdCBtdXN0IGVucXVldWUgYW4gYXR0cmlidXRl
Q2hhbmdlZCByZWFjdGlvbiB3aGVuIHJlbW92aW5nIGEgdmFsdWUgZnJvbSBhbiBhdHRyaWJ1dGUg
YXNzZXJ0X2FycmF5X2VxdWFsczogbGVuZ3RocyBkaWZmZXIsIGV4cGVjdGVkIDEgZ290IDAKK1BB
U1MgcmVtb3ZlIG9uIERPTVRva2VuTGlzdCBtdXN0IG5vdCBlbnF1ZXVlIGFuIGF0dHJpYnV0ZUNo
YW5nZWQgcmVhY3Rpb24gd2hlbiByZW1vdmluZyBhIHZhbHVlIGZyb20gYW4gdW5vYnNlcnZlZCBh
dHRyaWJ1dGUgCitGQUlMIHJlcGxhY2Ugb24gRE9NVG9rZW5MaXN0IG11c3QgZW5xdWV1ZSBhbiBh
dHRyaWJ1dGVDaGFuZ2VkIHJlYWN0aW9uIHdoZW4gcmVwbGFjaW5nIGEgdmFsdWUgaW4gYW4gYXR0
cmlidXRlIGFzc2VydF9hcnJheV9lcXVhbHM6IGxlbmd0aHMgZGlmZmVyLCBleHBlY3RlZCAxIGdv
dCAwCitQQVNTIHJlcGxhY2Ugb24gRE9NVG9rZW5MaXN0IG11c3Qgbm90IGVucXVldWUgYW4gYXR0
cmlidXRlQ2hhbmdlZCByZWFjdGlvbiB3aGVuIHRoZSB0b2tlbiB0byByZXBsYWNlIGRvZXMgbm90
IGV4aXN0IGluIHRoZSBhdHRyaWJ1dGUgCitQQVNTIHJlcGxhY2Ugb24gRE9NVG9rZW5MaXN0IG11
c3Qgbm90IGVucXVldWUgYW4gYXR0cmlidXRlQ2hhbmdlZCByZWFjdGlvbiB3aGVuIHJlcGxhY2lu
ZyBhIHZhbHVlIGluIGFuIHVub2JzZXJ2ZWQgYXR0cmlidXRlIAorRkFJTCB0aGUgc3RyaW5naWZp
ZXIgb2YgRE9NVG9rZW5MaXN0IG11c3QgZW5xdWV1ZSBhbiBhdHRyaWJ1dGVDaGFuZ2VkIHJlYWN0
aW9uIHdoZW4gYWRkaW5nIGFuIG9ic2VydmVkIGF0dHJpYnV0ZSBhc3NlcnRfYXJyYXlfZXF1YWxz
OiBsZW5ndGhzIGRpZmZlciwgZXhwZWN0ZWQgMSBnb3QgMAorUEFTUyB0aGUgc3RyaW5naWZpZXIg
b2YgRE9NVG9rZW5MaXN0IG11c3Qgbm90IGVucXVldWUgYW4gYXR0cmlidXRlQ2hhbmdlZCByZWFj
dGlvbiB3aGVuIGFkZGluZyBhbiB1bm9ic2VydmVkIGF0dHJpYnV0ZSAKK0ZBSUwgdGhlIHN0cmlu
Z2lmaWVyIG9mIERPTVRva2VuTGlzdCBtdXN0IGVucXVldWUgYW4gYXR0cmlidXRlQ2hhbmdlZCBy
ZWFjdGlvbiB3aGVuIG11dGF0aW5nIHRoZSB2YWx1ZSBvZiBhbiBvYnNlcnZlZCBhdHRyaWJ1dGUg
YXNzZXJ0X2FycmF5X2VxdWFsczogbGVuZ3RocyBkaWZmZXIsIGV4cGVjdGVkIDEgZ290IDAKK1BB
U1MgdGhlIHN0cmluZ2lmaWVyIG9mIERPTVRva2VuTGlzdCBtdXN0IG5vdCBlbnF1ZXVlIGFuIGF0
dHJpYnV0ZUNoYW5nZWQgcmVhY3Rpb24gd2hlbiBtdXRhdGluZyB0aGUgdmFsdWUgb2YgYW4gdW5v
YnNlcnZlZCBhdHRyaWJ1dGUgCitGQUlMIHRoZSBzdHJpbmdpZmllciBvZiBET01Ub2tlbkxpc3Qg
bXVzdCBlbnF1ZXVlIGFuIGF0dHJpYnV0ZUNoYW5nZWQgcmVhY3Rpb24gd2hlbiB0aGUgc2V0dGVy
IGlzIGNhbGxlZCB3aXRoIHRoZSBvcmlnaW5hbCB2YWx1ZSBvZiB0aGUgYXR0cmlidXRlIGFzc2Vy
dF9hcnJheV9lcXVhbHM6IGxlbmd0aHMgZGlmZmVyLCBleHBlY3RlZCAxIGdvdCAwCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9t
LWVsZW1lbnRzL3JlYWN0aW9ucy9ET01Ub2tlbkxpc3QuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL3JlYWN0aW9ucy9ET01U
b2tlbkxpc3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wYTljOWMzMmU5ZmVlYjJhZWZlNDg0NDkzMTA0YzIw
MTI5MzE3OGY1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvcmVhY3Rpb25zL0RPTVRva2VuTGlzdC5o
dG1sCkBAIC0wLDAgKzEsMjE2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8
dGl0bGU+Q3VzdG9tIEVsZW1lbnRzOiBDRVJlYWN0aW9ucyBvbiBET01Ub2tlbkxpc3QgaW50ZXJm
YWNlPC90aXRsZT4KKzxtZXRhIG5hbWU9ImF1dGhvciIgdGl0bGU9IlJ5b3N1a2UgTml3YSIgaHJl
Zj0ibWFpbHRvOnJuaXdhQHdlYmtpdC5vcmciPgorPG1ldGEgbmFtZT0iYXNzZXJ0IiBjb250ZW50
PSJhZGQsIHJlbW92ZSwgdG9nZ2xlLCByZXBsYWNlLCBhbmQgdGhlIHN0cmluZ2lmaWVyIG9mIERP
TVRva2VuTGlzdCBpbnRlcmZhY2UgbXVzdCBoYXZlIENFUmVhY3Rpb25zIj4KKzxtZXRhIG5hbWU9
ImhlbHAiIGNvbnRlbnQ9Imh0dHBzOi8vZG9tLnNwZWMud2hhdHdnLm9yZy8jbm9kZSI+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBv
cnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4vcmVzb3VyY2VzL3JlYWN0aW9ucy5qcyI+
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisKK3Rlc3QoZnVuY3Rpb24gKCkg
eworICAgIHZhciBlbGVtZW50ID0gZGVmaW5lTmV3Q3VzdG9tRWxlbWVudChbJ2NsYXNzJ10pOwor
ICAgIHZhciBpbnN0YW5jZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoZWxlbWVudC5uYW1lKTsK
KyAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGVsZW1lbnQubG9nKCkudHlwZXMoKSwgWydjb25zdHJ1
Y3RlZCddKTsKKyAgICBpbnN0YW5jZS5jbGFzc0xpc3QuYWRkKCdmb28nKTsKKyAgICB2YXIgbG9n
RW50cmllcyA9IGVsZW1lbnQubG9nKCk7CisgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2dFbnRy
aWVzLnR5cGVzKCksIFsnYXR0cmlidXRlQ2hhbmdlZCddKTsKKyAgICBhc3NlcnRfYXR0cmlidXRl
X2xvZ19lbnRyeShsb2dFbnRyaWVzLmxvZygpLCB7bmFtZTogJ2NsYXNzJywgb2xkVmFsdWU6IG51
bGwsIG5ld1ZhbHVlOiAnZm9vJywgbmFtZXNwYWNlOiBudWxsfSk7Cit9LCAnYWRkIG9uIERPTVRv
a2VuTGlzdCBtdXN0IGVucXVldWUgYW4gYXR0cmlidXRlQ2hhbmdlZCByZWFjdGlvbiB3aGVuIGFk
ZGluZyBhbiBhdHRyaWJ1dGUnKTsKKwordGVzdChmdW5jdGlvbiAoKSB7CisgICAgdmFyIGVsZW1l
bnQgPSBkZWZpbmVOZXdDdXN0b21FbGVtZW50KFsnc3R5bGUnXSk7CisgICAgdmFyIGluc3RhbmNl
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChlbGVtZW50Lm5hbWUpOworICAgIGFzc2VydF9hcnJh
eV9lcXVhbHMoZWxlbWVudC5sb2coKS50eXBlcygpLCBbJ2NvbnN0cnVjdGVkJ10pOworICAgIGlu
c3RhbmNlLmNsYXNzTGlzdC5hZGQoJ2ZvbycpOworICAgIGFzc2VydF9hcnJheV9lcXVhbHMoZWxl
bWVudC5sb2coKS50eXBlcygpLCBbXSk7Cit9LCAnYWRkIG9uIERPTVRva2VuTGlzdCBtdXN0IG5v
dCBlbnF1ZXVlIGFuIGF0dHJpYnV0ZUNoYW5nZWQgcmVhY3Rpb24gd2hlbiBhZGRpbmcgYW4gdW5v
YnNlcnZlZCBhdHRyaWJ1dGUnKTsKKwordGVzdChmdW5jdGlvbiAoKSB7CisgICAgdmFyIGVsZW1l
bnQgPSBkZWZpbmVOZXdDdXN0b21FbGVtZW50KFsnY2xhc3MnXSk7CisgICAgdmFyIGluc3RhbmNl
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChlbGVtZW50Lm5hbWUpOworICAgIGluc3RhbmNlLnNl
dEF0dHJpYnV0ZSgnY2xhc3MnLCAnaGVsbG8nKTsKKyAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGVs
ZW1lbnQubG9nKCkudHlwZXMoKSwgWydjb25zdHJ1Y3RlZCcsICdhdHRyaWJ1dGVDaGFuZ2VkJ10p
OworICAgIGluc3RhbmNlLmNsYXNzTGlzdC5hZGQoJ3dvcmxkJyk7CisgICAgdmFyIGxvZ0VudHJp
ZXMgPSBlbGVtZW50LmxvZygpOworICAgIGFzc2VydF9hcnJheV9lcXVhbHMobG9nRW50cmllcy50
eXBlcygpLCBbJ2F0dHJpYnV0ZUNoYW5nZWQnXSk7CisgICAgYXNzZXJ0X2F0dHJpYnV0ZV9sb2df
ZW50cnkobG9nRW50cmllcy5sb2coKSwge25hbWU6ICdjbGFzcycsIG9sZFZhbHVlOiAnaGVsbG8n
LCBuZXdWYWx1ZTogJ2hlbGxvIHdvcmxkJywgbmFtZXNwYWNlOiBudWxsfSk7Cit9LCAnYWRkIG9u
IERPTVRva2VuTGlzdCBtdXN0IGVucXVldWUgYW4gYXR0cmlidXRlQ2hhbmdlZCByZWFjdGlvbiB3
aGVuIGFkZGluZyBhIHZhbHVlIHRvIGFuIGV4aXN0aW5nIGF0dHJpYnV0ZScpOworCit0ZXN0KGZ1
bmN0aW9uICgpIHsKKyAgICB2YXIgZWxlbWVudCA9IGRlZmluZU5ld0N1c3RvbUVsZW1lbnQoWydj
b250ZW50ZWRpdGFibGUnXSk7CisgICAgdmFyIGluc3RhbmNlID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudChlbGVtZW50Lm5hbWUpOworICAgIGluc3RhbmNlLnNldEF0dHJpYnV0ZSgnY2xhc3MnLCAn
aGVsbG8nKTsKKyAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGVsZW1lbnQubG9nKCkudHlwZXMoKSwg
Wydjb25zdHJ1Y3RlZCddKTsKKyAgICBpbnN0YW5jZS5jbGFzc0xpc3QuYWRkKCd3b3JsZCcpOwor
ICAgIGFzc2VydF9hcnJheV9lcXVhbHMoZWxlbWVudC5sb2coKS50eXBlcygpLCBbXSk7Cit9LCAn
YWRkIG9uIERPTVRva2VuTGlzdCBtdXN0IG5vdCBlbnF1ZXVlIGFuIGF0dHJpYnV0ZUNoYW5nZWQg
cmVhY3Rpb24gd2hlbiBhZGRpbmcgYSB2YWx1ZSB0byBhbiB1bm9ic2VydmVkIGF0dHJpYnV0ZScp
OworCit0ZXN0KGZ1bmN0aW9uICgpIHsKKyAgICB2YXIgZWxlbWVudCA9IGRlZmluZU5ld0N1c3Rv
bUVsZW1lbnQoWydjbGFzcyddKTsKKyAgICB2YXIgaW5zdGFuY2UgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KGVsZW1lbnQubmFtZSk7CisgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhlbGVtZW50Lmxv
ZygpLnR5cGVzKCksIFsnY29uc3RydWN0ZWQnXSk7CisgICAgaW5zdGFuY2UuY2xhc3NMaXN0LmFk
ZCgnaGVsbG8nLCAnd29ybGQnKTsKKyAgICB2YXIgbG9nRW50cmllcyA9IGVsZW1lbnQubG9nKCk7
CisgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2dFbnRyaWVzLnR5cGVzKCksIFsnYXR0cmlidXRl
Q2hhbmdlZCddKTsKKyAgICBhc3NlcnRfYXR0cmlidXRlX2xvZ19lbnRyeShsb2dFbnRyaWVzLmxv
ZygpLCB7bmFtZTogJ2NsYXNzJywgb2xkVmFsdWU6IG51bGwsIG5ld1ZhbHVlOiAnaGVsbG8gd29y
bGQnLCBuYW1lc3BhY2U6IG51bGx9KTsKK30sICdhZGQgb24gRE9NVG9rZW5MaXN0IG11c3QgZW5x
dWV1ZSBleGFjdGx5IG9uZSBhdHRyaWJ1dGVDaGFuZ2VkIHJlYWN0aW9uIHdoZW4gYWRkaW5nIG11
bHRpcGxlIHZhbHVlcyB0byBhbiBhdHRyaWJ1dGUnKTsKKwordGVzdChmdW5jdGlvbiAoKSB7Cisg
ICAgdmFyIGVsZW1lbnQgPSBkZWZpbmVOZXdDdXN0b21FbGVtZW50KFsnY2xhc3MnXSk7CisgICAg
dmFyIGluc3RhbmNlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChlbGVtZW50Lm5hbWUpOworICAg
IGluc3RhbmNlLnNldEF0dHJpYnV0ZSgnY2xhc3MnLCAnaGVsbG8gd29ybGQnKTsKKyAgICBhc3Nl
cnRfYXJyYXlfZXF1YWxzKGVsZW1lbnQubG9nKCkudHlwZXMoKSwgWydjb25zdHJ1Y3RlZCcsICdh
dHRyaWJ1dGVDaGFuZ2VkJ10pOworICAgIGluc3RhbmNlLmNsYXNzTGlzdC5yZW1vdmUoJ3dvcmxk
Jyk7CisgICAgdmFyIGxvZ0VudHJpZXMgPSBlbGVtZW50LmxvZygpOworICAgIGFzc2VydF9hcnJh
eV9lcXVhbHMobG9nRW50cmllcy50eXBlcygpLCBbJ2F0dHJpYnV0ZUNoYW5nZWQnXSk7CisgICAg
YXNzZXJ0X2F0dHJpYnV0ZV9sb2dfZW50cnkobG9nRW50cmllcy5sb2coKSwge25hbWU6ICdjbGFz
cycsIG9sZFZhbHVlOiAnaGVsbG8gd29ybGQnLCBuZXdWYWx1ZTogJ2hlbGxvJywgbmFtZXNwYWNl
OiBudWxsfSk7Cit9LCAncmVtb3ZlIG9uIERPTVRva2VuTGlzdCBtdXN0IGVucXVldWUgYW4gYXR0
cmlidXRlQ2hhbmdlZCByZWFjdGlvbiB3aGVuIHJlbW92aW5nIGEgdmFsdWUgZnJvbSBhbiBhdHRy
aWJ1dGUnKTsKKwordGVzdChmdW5jdGlvbiAoKSB7CisgICAgdmFyIGVsZW1lbnQgPSBkZWZpbmVO
ZXdDdXN0b21FbGVtZW50KFsnY2xhc3MnXSk7CisgICAgdmFyIGluc3RhbmNlID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudChlbGVtZW50Lm5hbWUpOworICAgIGluc3RhbmNlLnNldEF0dHJpYnV0ZSgn
Y2xhc3MnLCAnaGVsbG8gZm9vIHdvcmxkIGJhcicpOworICAgIGFzc2VydF9hcnJheV9lcXVhbHMo
ZWxlbWVudC5sb2coKS50eXBlcygpLCBbJ2NvbnN0cnVjdGVkJywgJ2F0dHJpYnV0ZUNoYW5nZWQn
XSk7CisgICAgaW5zdGFuY2UuY2xhc3NMaXN0LnJlbW92ZSgnaGVsbG8nLCAnd29ybGQnKTsKKyAg
ICB2YXIgbG9nRW50cmllcyA9IGVsZW1lbnQubG9nKCk7CisgICAgYXNzZXJ0X2FycmF5X2VxdWFs
cyhsb2dFbnRyaWVzLnR5cGVzKCksIFsnYXR0cmlidXRlQ2hhbmdlZCddKTsKKyAgICBhc3NlcnRf
YXR0cmlidXRlX2xvZ19lbnRyeShsb2dFbnRyaWVzLmxvZygpLCB7bmFtZTogJ2NsYXNzJywgb2xk
VmFsdWU6ICdoZWxsbyBmb28gd29ybGQgYmFyJywgbmV3VmFsdWU6ICdmb28gYmFyJywgbmFtZXNw
YWNlOiBudWxsfSk7Cit9LCAncmVtb3ZlIG9uIERPTVRva2VuTGlzdCBtdXN0IGVucXVldWUgZXhh
Y3RseSBvbmUgYXR0cmlidXRlQ2hhbmdlZCByZWFjdGlvbiB3aGVuIHJlbW92aW5nIG11bHRpcGxl
IHZhbHVlcyB0byBhbiBhdHRyaWJ1dGUnKTsKKwordGVzdChmdW5jdGlvbiAoKSB7CisgICAgdmFy
IGVsZW1lbnQgPSBkZWZpbmVOZXdDdXN0b21FbGVtZW50KFsnY2xhc3MnXSk7CisgICAgdmFyIGlu
c3RhbmNlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChlbGVtZW50Lm5hbWUpOworICAgIGluc3Rh
bmNlLnNldEF0dHJpYnV0ZSgnY2xhc3MnLCAnaGVsbG8gd29ybGQnKTsKKyAgICBhc3NlcnRfYXJy
YXlfZXF1YWxzKGVsZW1lbnQubG9nKCkudHlwZXMoKSwgWydjb25zdHJ1Y3RlZCcsICdhdHRyaWJ1
dGVDaGFuZ2VkJ10pOworICAgIGluc3RhbmNlLmNsYXNzTGlzdC5yZW1vdmUoJ2ZvbycpOworICAg
IGFzc2VydF9hcnJheV9lcXVhbHMoZWxlbWVudC5sb2coKS50eXBlcygpLCBbXSk7Cit9LCAncmVt
b3ZlIG9uIERPTVRva2VuTGlzdCBtdXN0IG5vdCBlbnF1ZXVlIGFuIGF0dHJpYnV0ZUNoYW5nZWQg
cmVhY3Rpb24gd2hlbiByZW1vdmluZyBhIG5vbi1leGlzdGVudCB2YWx1ZSBmcm9tIGFuIGF0dHJp
YnV0ZScpOworCit0ZXN0KGZ1bmN0aW9uICgpIHsKKyAgICB2YXIgZWxlbWVudCA9IGRlZmluZU5l
d0N1c3RvbUVsZW1lbnQoWyd0aXRsZSddKTsKKyAgICB2YXIgaW5zdGFuY2UgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KGVsZW1lbnQubmFtZSk7CisgICAgaW5zdGFuY2Uuc2V0QXR0cmlidXRlKCdj
bGFzcycsICdoZWxsbyB3b3JsZCcpOworICAgIGFzc2VydF9hcnJheV9lcXVhbHMoZWxlbWVudC5s
b2coKS50eXBlcygpLCBbJ2NvbnN0cnVjdGVkJ10pOworICAgIGluc3RhbmNlLmNsYXNzTGlzdC5y
ZW1vdmUoJ3dvcmxkJyk7CisgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhlbGVtZW50LmxvZygpLnR5
cGVzKCksIFtdKTsKK30sICdyZW1vdmUgb24gRE9NVG9rZW5MaXN0IG11c3Qgbm90IGVucXVldWUg
YW4gYXR0cmlidXRlQ2hhbmdlZCByZWFjdGlvbiB3aGVuIHJlbW92aW5nIGEgdmFsdWUgZnJvbSBh
biB1bm9ic2VydmVkIGF0dHJpYnV0ZScpOworCit0ZXN0KGZ1bmN0aW9uICgpIHsKKyAgICB2YXIg
ZWxlbWVudCA9IGRlZmluZU5ld0N1c3RvbUVsZW1lbnQoWydjbGFzcyddKTsKKyAgICB2YXIgaW5z
dGFuY2UgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KGVsZW1lbnQubmFtZSk7CisgICAgaW5zdGFu
Y2Uuc2V0QXR0cmlidXRlKCdjbGFzcycsICdoZWxsbycpOworICAgIGFzc2VydF9hcnJheV9lcXVh
bHMoZWxlbWVudC5sb2coKS50eXBlcygpLCBbJ2NvbnN0cnVjdGVkJywgJ2F0dHJpYnV0ZUNoYW5n
ZWQnXSk7CisgICAgaW5zdGFuY2UuY2xhc3NMaXN0LnRvZ2dsZSgnd29ybGQnKTsKKyAgICB2YXIg
bG9nRW50cmllcyA9IGVsZW1lbnQubG9nKCk7CisgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2dF
bnRyaWVzLnR5cGVzKCksIFsnYXR0cmlidXRlQ2hhbmdlZCddKTsKKyAgICBhc3NlcnRfYXR0cmli
dXRlX2xvZ19lbnRyeShsb2dFbnRyaWVzLmxvZygpLCB7bmFtZTogJ2NsYXNzJywgb2xkVmFsdWU6
ICdoZWxsbycsIG5ld1ZhbHVlOiAnaGVsbG8gd29ybGQnLCBuYW1lc3BhY2U6IG51bGx9KTsKK30s
ICd0b2dnbGUgb24gRE9NVG9rZW5MaXN0IG11c3QgZW5xdWV1ZSBhbiBhdHRyaWJ1dGVDaGFuZ2Vk
IHJlYWN0aW9uIHdoZW4gYWRkaW5nIGEgdmFsdWUgdG8gYW4gYXR0cmlidXRlJyk7CisKK3Rlc3Qo
ZnVuY3Rpb24gKCkgeworICAgIHZhciBlbGVtZW50ID0gZGVmaW5lTmV3Q3VzdG9tRWxlbWVudChb
J2NsYXNzJ10pOworICAgIHZhciBpbnN0YW5jZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoZWxl
bWVudC5uYW1lKTsKKyAgICBpbnN0YW5jZS5zZXRBdHRyaWJ1dGUoJ2NsYXNzJywgJ2hlbGxvIHdv
cmxkJyk7CisgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhlbGVtZW50LmxvZygpLnR5cGVzKCksIFsn
Y29uc3RydWN0ZWQnLCAnYXR0cmlidXRlQ2hhbmdlZCddKTsKKyAgICBpbnN0YW5jZS5jbGFzc0xp
c3QudG9nZ2xlKCd3b3JsZCcpOworICAgIHZhciBsb2dFbnRyaWVzID0gZWxlbWVudC5sb2coKTsK
KyAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZ0VudHJpZXMudHlwZXMoKSwgWydhdHRyaWJ1dGVD
aGFuZ2VkJ10pOworICAgIGFzc2VydF9hdHRyaWJ1dGVfbG9nX2VudHJ5KGxvZ0VudHJpZXMubG9n
KCksIHtuYW1lOiAnY2xhc3MnLCBvbGRWYWx1ZTogJ2hlbGxvIHdvcmxkJywgbmV3VmFsdWU6ICdo
ZWxsbycsIG5hbWVzcGFjZTogbnVsbH0pOworfSwgJ3RvZ2dsZSBvbiBET01Ub2tlbkxpc3QgbXVz
dCBlbnF1ZXVlIGFuIGF0dHJpYnV0ZUNoYW5nZWQgcmVhY3Rpb24gd2hlbiByZW1vdmluZyBhIHZh
bHVlIGZyb20gYW4gYXR0cmlidXRlJyk7CisKK3Rlc3QoZnVuY3Rpb24gKCkgeworICAgIHZhciBl
bGVtZW50ID0gZGVmaW5lTmV3Q3VzdG9tRWxlbWVudChbJ2xhbmcnXSk7CisgICAgdmFyIGluc3Rh
bmNlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChlbGVtZW50Lm5hbWUpOworICAgIGluc3RhbmNl
LnNldEF0dHJpYnV0ZSgnY2xhc3MnLCAnaGVsbG8gd29ybGQnKTsKKyAgICBhc3NlcnRfYXJyYXlf
ZXF1YWxzKGVsZW1lbnQubG9nKCkudHlwZXMoKSwgWydjb25zdHJ1Y3RlZCddKTsKKyAgICBpbnN0
YW5jZS5jbGFzc0xpc3QudG9nZ2xlKCd3b3JsZCcpOworICAgIGFzc2VydF9hcnJheV9lcXVhbHMo
ZWxlbWVudC5sb2coKS50eXBlcygpLCBbXSk7Cit9LCAncmVtb3ZlIG9uIERPTVRva2VuTGlzdCBt
dXN0IG5vdCBlbnF1ZXVlIGFuIGF0dHJpYnV0ZUNoYW5nZWQgcmVhY3Rpb24gd2hlbiByZW1vdmlu
ZyBhIHZhbHVlIGZyb20gYW4gdW5vYnNlcnZlZCBhdHRyaWJ1dGUnKTsKKwordGVzdChmdW5jdGlv
biAoKSB7CisgICAgdmFyIGVsZW1lbnQgPSBkZWZpbmVOZXdDdXN0b21FbGVtZW50KFsnY2xhc3Mn
XSk7CisgICAgdmFyIGluc3RhbmNlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChlbGVtZW50Lm5h
bWUpOworICAgIGluc3RhbmNlLnNldEF0dHJpYnV0ZSgnY2xhc3MnLCAnaGVsbG8nKTsKKyAgICBh
c3NlcnRfYXJyYXlfZXF1YWxzKGVsZW1lbnQubG9nKCkudHlwZXMoKSwgWydjb25zdHJ1Y3RlZCcs
ICdhdHRyaWJ1dGVDaGFuZ2VkJ10pOworICAgIGluc3RhbmNlLmNsYXNzTGlzdC5yZXBsYWNlKCdo
ZWxsbycsICd3b3JsZCcpOworICAgIHZhciBsb2dFbnRyaWVzID0gZWxlbWVudC5sb2coKTsKKyAg
ICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZ0VudHJpZXMudHlwZXMoKSwgWydhdHRyaWJ1dGVDaGFu
Z2VkJ10pOworICAgIGFzc2VydF9hdHRyaWJ1dGVfbG9nX2VudHJ5KGxvZ0VudHJpZXMubG9nKCks
IHtuYW1lOiAnY2xhc3MnLCBvbGRWYWx1ZTogJ2hlbGxvJywgbmV3VmFsdWU6ICd3b3JsZCcsIG5h
bWVzcGFjZTogbnVsbH0pOworfSwgJ3JlcGxhY2Ugb24gRE9NVG9rZW5MaXN0IG11c3QgZW5xdWV1
ZSBhbiBhdHRyaWJ1dGVDaGFuZ2VkIHJlYWN0aW9uIHdoZW4gcmVwbGFjaW5nIGEgdmFsdWUgaW4g
YW4gYXR0cmlidXRlJyk7CisKK3Rlc3QoZnVuY3Rpb24gKCkgeworICAgIHZhciBlbGVtZW50ID0g
ZGVmaW5lTmV3Q3VzdG9tRWxlbWVudChbJ2NsYXNzJ10pOworICAgIHZhciBpbnN0YW5jZSA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoZWxlbWVudC5uYW1lKTsKKyAgICBpbnN0YW5jZS5zZXRBdHRy
aWJ1dGUoJ2NsYXNzJywgJ2hlbGxvIHdvcmxkJyk7CisgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhl
bGVtZW50LmxvZygpLnR5cGVzKCksIFsnY29uc3RydWN0ZWQnLCAnYXR0cmlidXRlQ2hhbmdlZCdd
KTsKKyAgICBpbnN0YW5jZS5jbGFzc0xpc3QucmVwbGFjZSgnZm9vJywgJ2JhcicpOworICAgIGFz
c2VydF9hcnJheV9lcXVhbHMoZWxlbWVudC5sb2coKS50eXBlcygpLCBbXSk7Cit9LCAncmVwbGFj
ZSBvbiBET01Ub2tlbkxpc3QgbXVzdCBub3QgZW5xdWV1ZSBhbiBhdHRyaWJ1dGVDaGFuZ2VkIHJl
YWN0aW9uIHdoZW4gdGhlIHRva2VuIHRvIHJlcGxhY2UgZG9lcyBub3QgZXhpc3QgaW4gdGhlIGF0
dHJpYnV0ZScpOworCit0ZXN0KGZ1bmN0aW9uICgpIHsKKyAgICB2YXIgZWxlbWVudCA9IGRlZmlu
ZU5ld0N1c3RvbUVsZW1lbnQoWyd0aXRsZSddKTsKKyAgICB2YXIgaW5zdGFuY2UgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KGVsZW1lbnQubmFtZSk7CisgICAgaW5zdGFuY2Uuc2V0QXR0cmlidXRl
KCdjbGFzcycsICdoZWxsbycpOworICAgIGFzc2VydF9hcnJheV9lcXVhbHMoZWxlbWVudC5sb2co
KS50eXBlcygpLCBbJ2NvbnN0cnVjdGVkJ10pOworICAgIGluc3RhbmNlLmNsYXNzTGlzdC5yZXBs
YWNlKCdoZWxsbycsICd3b3JsZCcpOworICAgIGFzc2VydF9hcnJheV9lcXVhbHMoZWxlbWVudC5s
b2coKS50eXBlcygpLCBbXSk7Cit9LCAncmVwbGFjZSBvbiBET01Ub2tlbkxpc3QgbXVzdCBub3Qg
ZW5xdWV1ZSBhbiBhdHRyaWJ1dGVDaGFuZ2VkIHJlYWN0aW9uIHdoZW4gcmVwbGFjaW5nIGEgdmFs
dWUgaW4gYW4gdW5vYnNlcnZlZCBhdHRyaWJ1dGUnKTsKKwordGVzdChmdW5jdGlvbiAoKSB7Cisg
ICAgdmFyIGVsZW1lbnQgPSBkZWZpbmVOZXdDdXN0b21FbGVtZW50KFsnY2xhc3MnXSk7CisgICAg
dmFyIGluc3RhbmNlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChlbGVtZW50Lm5hbWUpOworICAg
IGFzc2VydF9hcnJheV9lcXVhbHMoZWxlbWVudC5sb2coKS50eXBlcygpLCBbJ2NvbnN0cnVjdGVk
J10pOworICAgIGluc3RhbmNlLmNsYXNzTGlzdCA9ICdoZWxsbyc7CisgICAgdmFyIGxvZ0VudHJp
ZXMgPSBlbGVtZW50LmxvZygpOworICAgIGFzc2VydF9hcnJheV9lcXVhbHMobG9nRW50cmllcy50
eXBlcygpLCBbJ2F0dHJpYnV0ZUNoYW5nZWQnXSk7CisgICAgYXNzZXJ0X2F0dHJpYnV0ZV9sb2df
ZW50cnkobG9nRW50cmllcy5sb2coKSwge25hbWU6ICdjbGFzcycsIG9sZFZhbHVlOiBudWxsLCBu
ZXdWYWx1ZTogJ2hlbGxvJywgbmFtZXNwYWNlOiBudWxsfSk7Cit9LCAndGhlIHN0cmluZ2lmaWVy
IG9mIERPTVRva2VuTGlzdCBtdXN0IGVucXVldWUgYW4gYXR0cmlidXRlQ2hhbmdlZCByZWFjdGlv
biB3aGVuIGFkZGluZyBhbiBvYnNlcnZlZCBhdHRyaWJ1dGUnKTsKKwordGVzdChmdW5jdGlvbiAo
KSB7CisgICAgdmFyIGVsZW1lbnQgPSBkZWZpbmVOZXdDdXN0b21FbGVtZW50KFsnaWQnXSk7Cisg
ICAgdmFyIGluc3RhbmNlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChlbGVtZW50Lm5hbWUpOwor
ICAgIGluc3RhbmNlLnNldEF0dHJpYnV0ZSgnY2xhc3MnLCAnaGVsbG8nKTsKKyAgICBhc3NlcnRf
YXJyYXlfZXF1YWxzKGVsZW1lbnQubG9nKCkudHlwZXMoKSwgWydjb25zdHJ1Y3RlZCddKTsKKyAg
ICBpbnN0YW5jZS5jbGFzc0xpc3QgPSAnaGVsbG8nOworICAgIHZhciBsb2dFbnRyaWVzID0gZWxl
bWVudC5sb2coKTsKKyAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGVsZW1lbnQubG9nKCkudHlwZXMo
KSwgW10pOworfSwgJ3RoZSBzdHJpbmdpZmllciBvZiBET01Ub2tlbkxpc3QgbXVzdCBub3QgZW5x
dWV1ZSBhbiBhdHRyaWJ1dGVDaGFuZ2VkIHJlYWN0aW9uIHdoZW4gYWRkaW5nIGFuIHVub2JzZXJ2
ZWQgYXR0cmlidXRlJyk7CisKK3Rlc3QoZnVuY3Rpb24gKCkgeworICAgIHZhciBlbGVtZW50ID0g
ZGVmaW5lTmV3Q3VzdG9tRWxlbWVudChbJ2NsYXNzJ10pOworICAgIHZhciBpbnN0YW5jZSA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoZWxlbWVudC5uYW1lKTsKKyAgICBpbnN0YW5jZS5zZXRBdHRy
aWJ1dGUoJ2NsYXNzJywgJ2hlbGxvJyk7CisgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhlbGVtZW50
LmxvZygpLnR5cGVzKCksIFsnY29uc3RydWN0ZWQnLCAnYXR0cmlidXRlQ2hhbmdlZCddKTsKKyAg
ICBpbnN0YW5jZS5jbGFzc0xpc3QgPSAnd29ybGQnOworICAgIHZhciBsb2dFbnRyaWVzID0gZWxl
bWVudC5sb2coKTsKKyAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZ0VudHJpZXMudHlwZXMoKSwg
WydhdHRyaWJ1dGVDaGFuZ2VkJ10pOworICAgIGFzc2VydF9hdHRyaWJ1dGVfbG9nX2VudHJ5KGxv
Z0VudHJpZXMubG9nKCksIHtuYW1lOiAnY2xhc3MnLCBvbGRWYWx1ZTogJ2hlbGxvJywgbmV3VmFs
dWU6ICd3b3JsZCcsIG5hbWVzcGFjZTogbnVsbH0pOworfSwgJ3RoZSBzdHJpbmdpZmllciBvZiBE
T01Ub2tlbkxpc3QgbXVzdCBlbnF1ZXVlIGFuIGF0dHJpYnV0ZUNoYW5nZWQgcmVhY3Rpb24gd2hl
biBtdXRhdGluZyB0aGUgdmFsdWUgb2YgYW4gb2JzZXJ2ZWQgYXR0cmlidXRlJyk7CisKK3Rlc3Qo
ZnVuY3Rpb24gKCkgeworICAgIHZhciBlbGVtZW50ID0gZGVmaW5lTmV3Q3VzdG9tRWxlbWVudChb
XSk7CisgICAgdmFyIGluc3RhbmNlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChlbGVtZW50Lm5h
bWUpOworICAgIGluc3RhbmNlLnNldEF0dHJpYnV0ZSgnY2xhc3MnLCAnaGVsbG8nKTsKKyAgICBh
c3NlcnRfYXJyYXlfZXF1YWxzKGVsZW1lbnQubG9nKCkudHlwZXMoKSwgWydjb25zdHJ1Y3RlZCdd
KTsKKyAgICBpbnN0YW5jZS5jbGFzc0xpc3QgPSAnd29ybGQnOworICAgIGFzc2VydF9hcnJheV9l
cXVhbHMoZWxlbWVudC5sb2coKS50eXBlcygpLCBbXSk7Cit9LCAndGhlIHN0cmluZ2lmaWVyIG9m
IERPTVRva2VuTGlzdCBtdXN0IG5vdCBlbnF1ZXVlIGFuIGF0dHJpYnV0ZUNoYW5nZWQgcmVhY3Rp
b24gd2hlbiBtdXRhdGluZyB0aGUgdmFsdWUgb2YgYW4gdW5vYnNlcnZlZCBhdHRyaWJ1dGUnKTsK
KwordGVzdChmdW5jdGlvbiAoKSB7CisgICAgdmFyIGVsZW1lbnQgPSBkZWZpbmVOZXdDdXN0b21F
bGVtZW50KFsnY2xhc3MnXSk7CisgICAgdmFyIGluc3RhbmNlID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudChlbGVtZW50Lm5hbWUpOworICAgIGluc3RhbmNlLnNldEF0dHJpYnV0ZSgnY2xhc3MnLCAn
aGVsbG8nKTsKKyAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGVsZW1lbnQubG9nKCkudHlwZXMoKSwg
Wydjb25zdHJ1Y3RlZCcsICdhdHRyaWJ1dGVDaGFuZ2VkJ10pOworICAgIGluc3RhbmNlLmNsYXNz
TGlzdCA9ICdoZWxsbyc7CisgICAgdmFyIGxvZ0VudHJpZXMgPSBlbGVtZW50LmxvZygpOworICAg
IGFzc2VydF9hcnJheV9lcXVhbHMobG9nRW50cmllcy50eXBlcygpLCBbJ2F0dHJpYnV0ZUNoYW5n
ZWQnXSk7CisgICAgYXNzZXJ0X2F0dHJpYnV0ZV9sb2dfZW50cnkobG9nRW50cmllcy5sb2coKSwg
e25hbWU6ICdjbGFzcycsIG9sZFZhbHVlOiAnaGVsbG8nLCBuZXdWYWx1ZTogJ2hlbGxvJywgbmFt
ZXNwYWNlOiBudWxsfSk7Cit9LCAndGhlIHN0cmluZ2lmaWVyIG9mIERPTVRva2VuTGlzdCBtdXN0
IGVucXVldWUgYW4gYXR0cmlidXRlQ2hhbmdlZCByZWFjdGlvbiB3aGVuIHRoZSBzZXR0ZXIgaXMg
Y2FsbGVkIHdpdGggdGhlIG9yaWdpbmFsIHZhbHVlIG9mIHRoZSBhdHRyaWJ1dGUnKTsKKworPC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9yZWFjdGlvbnMvRG9jdW1l
bnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jdXN0b20tZWxlbWVudHMvcmVhY3Rpb25zL0RvY3VtZW50LWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi45YjE4OTFlODdmZjdkMGI3NzdjNGUyODRkN2RlMGIxMzI1OTdjMDY2Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
dXN0b20tZWxlbWVudHMvcmVhY3Rpb25zL0RvY3VtZW50LWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDQgQEAKKworRkFJTCBpbXBvcnROb2RlIG9uIERvY3VtZW50IG11c3QgY29uc3RydWN0IGEgbmV3
IGN1c3RvbSBlbGVtZW50IHdoZW4gaW1wb3J0aW5nIGEgY3VzdG9tIGVsZW1lbnQgYXNzZXJ0X2Fy
cmF5X2VxdWFsczogbGVuZ3RocyBkaWZmZXIsIGV4cGVjdGVkIDEgZ290IDAKK0ZBSUwgYWRvcHRO
b2RlIG9uIERvY3VtZW50IG11c3QgZW5xdWV1ZSBhbiBhZG9wdGVkIHJlYWN0aW9uIHdoZW4gaW1w
b3J0aW5nIGEgY3VzdG9tIGVsZW1lbnQgYXNzZXJ0X2FycmF5X2VxdWFsczogbGVuZ3RocyBkaWZm
ZXIsIGV4cGVjdGVkIDEgZ290IDAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvcmVhY3Rpb25zL0RvY3VtZW50
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3Rv
bS1lbGVtZW50cy9yZWFjdGlvbnMvRG9jdW1lbnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ODE0NGIyNDZk
YTgxM2QzOWQyODkxZTc1MmNiYTAwNTMwODBhZDc3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvcmVh
Y3Rpb25zL0RvY3VtZW50Lmh0bWwKQEAgLTAsMCArMSw0NiBAQAorPCFET0NUWVBFIGh0bWw+Cis8
aHRtbD4KKzxoZWFkPgorPHRpdGxlPkN1c3RvbSBFbGVtZW50czogQ0VSZWFjdGlvbnMgb24gUGFy
ZW50Tm9kZSBpbnRlcmZhY2U8L3RpdGxlPgorPG1ldGEgbmFtZT0iYXV0aG9yIiB0aXRsZT0iUnlv
c3VrZSBOaXdhIiBocmVmPSJtYWlsdG86cm5pd2FAd2Via2l0Lm9yZyI+Cis8bWV0YSBuYW1lPSJh
c3NlcnQiIGNvbnRlbnQ9ImltcG9ydE5vZGUgYW5kIGFkb3B0Tm9kZSBvZiBEb2N1bWVudCBpbnRl
cmZhY2UgbXVzdCBoYXZlIENFUmVhY3Rpb25zIj4KKzxtZXRhIG5hbWU9ImhlbHAiIGNvbnRlbnQ9
Imh0dHBzOi8vZG9tLnNwZWMud2hhdHdnLm9yZy8jZG9jdW1lbnQiPgorPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIuL3Jlc291cmNlcy9yZWFjdGlvbnMuanMiPjwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJsb2ciPjwvZGl2PgorPHNjcmlwdD4KKwordGVzdChm
dW5jdGlvbiAoKSB7CisgICAgdmFyIGVsZW1lbnQgPSBkZWZpbmVOZXdDdXN0b21FbGVtZW50KCk7
CisgICAgdmFyIGluc3RhbmNlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChlbGVtZW50Lm5hbWUp
OworICAgIGFzc2VydF9hcnJheV9lcXVhbHMoZWxlbWVudC5sb2coKS50eXBlcygpLCBbJ2NvbnN0
cnVjdGVkJ10pOworCisgICAgdmFyIG5ld0RvYyA9IGRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNy
ZWF0ZUhUTUxEb2N1bWVudCgpOworICAgIG5ld0RvYy5pbXBvcnROb2RlKGluc3RhbmNlKTsKKwor
ICAgIHZhciBsb2dFbnRyaWVzID0gZWxlbWVudC5sb2coKTsKKyAgICBhc3NlcnRfYXJyYXlfZXF1
YWxzKGxvZ0VudHJpZXMudHlwZXMoKSwgWydjb25zdHJ1Y3RlZCddKTsKKyAgICBhc3NlcnRfZXF1
YWxzKGxvZ0VudHJpZXMubG9nKCkub2xkRG9jdW1lbnQsIGRvY3VtZW50KTsKKyAgICBhc3NlcnRf
ZXF1YWxzKGxvZ0VudHJpZXMubG9nKCkubmV3RG9jdW1lbnQsIG5ld0RvYyk7Cit9LCAnaW1wb3J0
Tm9kZSBvbiBEb2N1bWVudCBtdXN0IGNvbnN0cnVjdCBhIG5ldyBjdXN0b20gZWxlbWVudCB3aGVu
IGltcG9ydGluZyBhIGN1c3RvbSBlbGVtZW50Jyk7CisKK3Rlc3QoZnVuY3Rpb24gKCkgeworICAg
IHZhciBlbGVtZW50ID0gZGVmaW5lTmV3Q3VzdG9tRWxlbWVudCgpOworICAgIHZhciBpbnN0YW5j
ZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoZWxlbWVudC5uYW1lKTsKKyAgICBhc3NlcnRfYXJy
YXlfZXF1YWxzKGVsZW1lbnQubG9nKCkudHlwZXMoKSwgWydjb25zdHJ1Y3RlZCddKTsKKworICAg
IHZhciBuZXdEb2MgPSBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQo
KTsKKyAgICBuZXdEb2MuYWRvcHROb2RlKGluc3RhbmNlKTsKKworICAgIHZhciBsb2dFbnRyaWVz
ID0gZWxlbWVudC5sb2coKTsKKyAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZ0VudHJpZXMudHlw
ZXMoKSwgWydhZG9wdGVkJ10pOworICAgIGFzc2VydF9lcXVhbHMobG9nRW50cmllcy5sb2coKS5v
bGREb2N1bWVudCwgZG9jdW1lbnQpOworICAgIGFzc2VydF9lcXVhbHMobG9nRW50cmllcy5sb2co
KS5uZXdEb2N1bWVudCwgbmV3RG9jKTsKK30sICdhZG9wdE5vZGUgb24gRG9jdW1lbnQgbXVzdCBl
bnF1ZXVlIGFuIGFkb3B0ZWQgcmVhY3Rpb24gd2hlbiBpbXBvcnRpbmcgYSBjdXN0b20gZWxlbWVu
dCcpOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL3JlYWN0
aW9ucy9FbGVtZW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL3JlYWN0aW9ucy9FbGVtZW50LWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi41NDA3ZTg3ZDM5ODgzMGNlNTdiMzkxMDRmY2I5ZTMxOTY1MzY2MGZk
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jdXN0b20tZWxlbWVudHMvcmVhY3Rpb25zL0VsZW1lbnQtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMzggQEAKKworRkFJTCBpZCBvbiBFbGVtZW50IG11c3QgZW5xdWV1ZSBhbiBhdHRy
aWJ1dGVDaGFuZ2VkIHJlYWN0aW9uIHdoZW4gYWRkaW5nIGlkIGNvbnRlbnQgYXR0cmlidXRlIGFz
c2VydF9hcnJheV9lcXVhbHM6IGxlbmd0aHMgZGlmZmVyLCBleHBlY3RlZCAxIGdvdCAwCitGQUlM
IGlkIG9uIEVsZW1lbnQgbXVzdCBlbnF1ZXVlIGFuIGF0dHJpYnV0ZUNoYW5nZWQgcmVhY3Rpb24g
d2hlbiByZXBsYWNpbmcgYW4gZXhpc3RpbmcgYXR0cmlidXRlIGFzc2VydF9hcnJheV9lcXVhbHM6
IGxlbmd0aHMgZGlmZmVyLCBleHBlY3RlZCAyIGdvdCAxCitGQUlMIGNsYXNzTmFtZSBvbiBFbGVt
ZW50IG11c3QgZW5xdWV1ZSBhbiBhdHRyaWJ1dGVDaGFuZ2VkIHJlYWN0aW9uIHdoZW4gYWRkaW5n
IGNsYXNzIGNvbnRlbnQgYXR0cmlidXRlIGFzc2VydF9hcnJheV9lcXVhbHM6IGxlbmd0aHMgZGlm
ZmVyLCBleHBlY3RlZCAxIGdvdCAwCitGQUlMIGNsYXNzTmFtZSBvbiBFbGVtZW50IG11c3QgZW5x
dWV1ZSBhbiBhdHRyaWJ1dGVDaGFuZ2VkIHJlYWN0aW9uIHdoZW4gcmVwbGFjaW5nIGFuIGV4aXN0
aW5nIGF0dHJpYnV0ZSBhc3NlcnRfYXJyYXlfZXF1YWxzOiBsZW5ndGhzIGRpZmZlciwgZXhwZWN0
ZWQgMiBnb3QgMQorRkFJTCBzbG90IG9uIEVsZW1lbnQgbXVzdCBlbnF1ZXVlIGFuIGF0dHJpYnV0
ZUNoYW5nZWQgcmVhY3Rpb24gd2hlbiBhZGRpbmcgc2xvdCBjb250ZW50IGF0dHJpYnV0ZSBhc3Nl
cnRfYXJyYXlfZXF1YWxzOiBsZW5ndGhzIGRpZmZlciwgZXhwZWN0ZWQgMSBnb3QgMAorRkFJTCBz
bG90IG9uIEVsZW1lbnQgbXVzdCBlbnF1ZXVlIGFuIGF0dHJpYnV0ZUNoYW5nZWQgcmVhY3Rpb24g
d2hlbiByZXBsYWNpbmcgYW4gZXhpc3RpbmcgYXR0cmlidXRlIGFzc2VydF9hcnJheV9lcXVhbHM6
IGxlbmd0aHMgZGlmZmVyLCBleHBlY3RlZCAyIGdvdCAxCitQQVNTIHNldEF0dHJpYnV0ZSBvbiBF
bGVtZW50IG11c3QgZW5xdWV1ZSBhbiBhdHRyaWJ1dGVDaGFuZ2VkIHJlYWN0aW9uIHdoZW4gYWRk
aW5nIGFuIGF0dHJpYnV0ZSAKK1BBU1Mgc2V0QXR0cmlidXRlIG9uIEVsZW1lbnQgbXVzdCBub3Qg
ZW5xdWV1ZSBhbiBhdHRyaWJ1dGVDaGFuZ2VkIHJlYWN0aW9uIHdoZW4gYWRkaW5nIGFuIHVub2Jz
ZXJ2ZWQgYXR0cmlidXRlIAorUEFTUyBzZXRBdHRyaWJ1dGUgb24gRWxlbWVudCBtdXN0IGVucXVl
dWUgYW4gYXR0cmlidXRlQ2hhbmdlZCByZWFjdGlvbiB3aGVuIHJlcGxhY2luZyBhbiBleGlzdGlu
ZyBhdHRyaWJ1dGUgCitQQVNTIHNldEF0dHJpYnV0ZSBvbiBFbGVtZW50IG11c3QgZW5xdWV1ZSBh
biBhdHRyaWJ1dGVDaGFuZ2VkIHJlYWN0aW9uIHdoZW4gcmVwbGFjaW5nIGFuIGV4aXN0aW5nIHVu
b2JzZXJ2ZWQgYXR0cmlidXRlIAorUEFTUyBzZXRBdHRyaWJ1dGVOUyBvbiBFbGVtZW50IG11c3Qg
ZW5xdWV1ZSBhbiBhdHRyaWJ1dGVDaGFuZ2VkIHJlYWN0aW9uIHdoZW4gYWRkaW5nIGFuIGF0dHJp
YnV0ZSAKK1BBU1Mgc2V0QXR0cmlidXRlTlMgb24gRWxlbWVudCBtdXN0IG5vdCBlbnF1ZXVlIGFu
IGF0dHJpYnV0ZUNoYW5nZWQgcmVhY3Rpb24gd2hlbiBhZGRpbmcgYW4gdW5vYnNlcnZlZCBhdHRy
aWJ1dGUgCitQQVNTIHNldEF0dHJpYnV0ZU5TIG9uIEVsZW1lbnQgbXVzdCBlbnF1ZXVlIGFuIGF0
dHJpYnV0ZUNoYW5nZWQgcmVhY3Rpb24gd2hlbiByZXBsYWNpbmcgYW4gZXhpc3RpbmcgYXR0cmli
dXRlIAorUEFTUyBzZXRBdHRyaWJ1dGVOUyBvbiBFbGVtZW50IG11c3QgZW5xdWV1ZSBhbiBhdHRy
aWJ1dGVDaGFuZ2VkIHJlYWN0aW9uIHdoZW4gcmVwbGFjaW5nIGFuIGV4aXN0aW5nIHVub2JzZXJ2
ZWQgYXR0cmlidXRlIAorUEFTUyByZW1vdmVBdHRyaWJ1dGUgb24gRWxlbWVudCBtdXN0IG5vdCBl
bnF1ZXVlIGFuIGF0dHJpYnV0ZUNoYW5nZWQgcmVhY3Rpb24gd2hlbiByZW1vdmluZyBhbiBhdHRy
aWJ1dGUgdGhhdCBkb2VzIG5vdCBleGlzdCAKK1BBU1MgcmVtb3ZlQXR0cmlidXRlIG9uIEVsZW1l
bnQgbXVzdCBub3QgZW5xdWV1ZSBhbiBhdHRyaWJ1dGVDaGFuZ2VkIHJlYWN0aW9uIHdoZW4gcmVt
b3ZpbmcgYW4gdW5vYnNlcnZlZCBhdHRyaWJ1dGUgCitQQVNTIHJlbW92ZUF0dHJpYnV0ZSBvbiBF
bGVtZW50IG11c3QgZW5xdWV1ZSBhbiBhdHRyaWJ1dGVDaGFuZ2VkIHJlYWN0aW9uIHdoZW4gcmVt
b3ZpbmcgYW4gZXhpc3RpbmcgYXR0cmlidXRlIAorUEFTUyByZW1vdmVBdHRyaWJ1dGUgb24gRWxl
bWVudCBtdXN0IG5vdCBlbnF1ZXVlIGFuIGF0dHJpYnV0ZUNoYW5nZWQgcmVhY3Rpb24gd2hlbiBy
ZW1vdmluZyBhbiBleGlzdGluZyB1bm9ic2VydmVkIGF0dHJpYnV0ZSAKK1BBU1MgcmVtb3ZlQXR0
cmlidXRlTlMgb24gRWxlbWVudCBtdXN0IG5vdCBlbnF1ZXVlIGFuIGF0dHJpYnV0ZUNoYW5nZWQg
cmVhY3Rpb24gd2hlbiByZW1vdmluZyBhbiBhdHRyaWJ1dGUgdGhhdCBkb2VzIG5vdCBleGlzdCAK
K1BBU1MgcmVtb3ZlQXR0cmlidXRlTlMgb24gRWxlbWVudCBtdXN0IG5vdCBlbnF1ZXVlIGFuIGF0
dHJpYnV0ZUNoYW5nZWQgcmVhY3Rpb24gd2hlbiByZW1vdmluZyBhbiB1bm9ic2VydmVkIGF0dHJp
YnV0ZSAKK1BBU1MgcmVtb3ZlQXR0cmlidXRlTlMgb24gRWxlbWVudCBtdXN0IGVucXVldWUgYW4g
YXR0cmlidXRlQ2hhbmdlZCByZWFjdGlvbiB3aGVuIHJlbW92aW5nIGFuIGV4aXN0aW5nIGF0dHJp
YnV0ZSAKK1BBU1MgcmVtb3ZlQXR0cmlidXRlTlMgb24gRWxlbWVudCBtdXN0IG5vdCBlbnF1ZXVl
IGFuIGF0dHJpYnV0ZUNoYW5nZWQgcmVhY3Rpb24gd2hlbiByZW1vdmluZyBhbiBleGlzdGluZyB1
bm9ic2VydmVkIGF0dHJpYnV0ZSAKK1BBU1Mgc2V0QXR0cmlidXRlTm9kZSBvbiBFbGVtZW50IG11
c3QgZW5xdWV1ZSBhbiBhdHRyaWJ1dGVDaGFuZ2VkIHJlYWN0aW9uIHdoZW4gYWRkaW5nIGFuIGF0
dHJpYnV0ZSAKK1BBU1Mgc2V0QXR0cmlidXRlTm9kZSBvbiBFbGVtZW50IG11c3Qgbm90IGVucXVl
dWUgYW4gYXR0cmlidXRlQ2hhbmdlZCByZWFjdGlvbiB3aGVuIGFkZGluZyBhbiB1bm9ic2VydmVk
IGF0dHJpYnV0ZSAKK1BBU1Mgc2V0QXR0cmlidXRlTm9kZSBvbiBFbGVtZW50IG11c3QgZW5xdWV1
ZSBhbiBhdHRyaWJ1dGVDaGFuZ2VkIHJlYWN0aW9uIHdoZW4gcmVwbGFjaW5nIGFuIGV4aXN0aW5n
IGF0dHJpYnV0ZSAKK1BBU1Mgc2V0QXR0cmlidXRlTm9kZSBvbiBFbGVtZW50IG11c3QgZW5xdWV1
ZSBhbiBhdHRyaWJ1dGVDaGFuZ2VkIHJlYWN0aW9uIHdoZW4gcmVwbGFjaW5nIGFuIGV4aXN0aW5n
IHVub2JzZXJ2ZWQgYXR0cmlidXRlIAorUEFTUyBzZXRBdHRyaWJ1dGVOb2RlTlMgb24gRWxlbWVu
dCBtdXN0IGVucXVldWUgYW4gYXR0cmlidXRlQ2hhbmdlZCByZWFjdGlvbiB3aGVuIGFkZGluZyBh
biBhdHRyaWJ1dGUgCitQQVNTIHNldEF0dHJpYnV0ZU5vZGVOUyBvbiBFbGVtZW50IG11c3Qgbm90
IGVucXVldWUgYW4gYXR0cmlidXRlQ2hhbmdlZCByZWFjdGlvbiB3aGVuIGFkZGluZyBhbiB1bm9i
c2VydmVkIGF0dHJpYnV0ZSAKK1BBU1Mgc2V0QXR0cmlidXRlTm9kZU5TIG9uIEVsZW1lbnQgbXVz
dCBlbnF1ZXVlIGFuIGF0dHJpYnV0ZUNoYW5nZWQgcmVhY3Rpb24gd2hlbiByZXBsYWNpbmcgYW4g
ZXhpc3RpbmcgYXR0cmlidXRlIAorUEFTUyBzZXRBdHRyaWJ1dGVOb2RlTlMgb24gRWxlbWVudCBt
dXN0IGVucXVldWUgYW4gYXR0cmlidXRlQ2hhbmdlZCByZWFjdGlvbiB3aGVuIHJlcGxhY2luZyBh
biBleGlzdGluZyB1bm9ic2VydmVkIGF0dHJpYnV0ZSAKK1BBU1MgcmVtb3ZlQXR0cmlidXRlTm9k
ZSBvbiBFbGVtZW50IG11c3Qgbm90IGVucXVldWUgYW4gYXR0cmlidXRlQ2hhbmdlZCByZWFjdGlv
biB3aGVuIHJlbW92aW5nIGFuIGF0dHJpYnV0ZSB0aGF0IGRvZXMgbm90IGV4aXN0IAorUEFTUyBy
ZW1vdmVBdHRyaWJ1dGVOb2RlIG9uIEVsZW1lbnQgbXVzdCBub3QgZW5xdWV1ZSBhbiBhdHRyaWJ1
dGVDaGFuZ2VkIHJlYWN0aW9uIHdoZW4gcmVtb3ZpbmcgYW4gdW5vYnNlcnZlZCBhdHRyaWJ1dGUg
CitQQVNTIHJlbW92ZUF0dHJpYnV0ZU5vZGUgb24gRWxlbWVudCBtdXN0IGVucXVldWUgYW4gYXR0
cmlidXRlQ2hhbmdlZCByZWFjdGlvbiB3aGVuIHJlbW92aW5nIGFuIGV4aXN0aW5nIGF0dHJpYnV0
ZSAKK1BBU1MgcmVtb3ZlQXR0cmlidXRlTm9kZSBvbiBFbGVtZW50IG11c3Qgbm90IGVucXVldWUg
YW4gYXR0cmlidXRlQ2hhbmdlZCByZWFjdGlvbiB3aGVuIHJlbW92aW5nIGFuIGV4aXN0aW5nIHVu
b2JzZXJ2ZWQgYXR0cmlidXRlIAorRkFJTCB1bmRlZmluZWQgbXVzdCBlbnF1ZXVlIGEgY29ubmVj
dGVkIHJlYWN0aW9uIGFzc2VydF9hcnJheV9lcXVhbHM6IGxlbmd0aHMgZGlmZmVyLCBleHBlY3Rl
ZCAxIGdvdCAwCitGQUlMIHVuZGVmaW5lZCBtdXN0IGVucXVldWUgYSBkaXNjb25uZWN0ZWQgcmVh
Y3Rpb24sIGFuIGFkb3B0ZWQgcmVhY3Rpb24sIGFuZCBhIGNvbm5lY3RlZCByZWFjdGlvbiB3aGVu
IHRoZSBjdXN0b20gZWxlbWVudCB3YXMgaW4gYW5vdGhlciBkb2N1bWVudCBhc3NlcnRfYXJyYXlf
ZXF1YWxzOiBsZW5ndGhzIGRpZmZlciwgZXhwZWN0ZWQgMSBnb3QgMAorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50
cy9yZWFjdGlvbnMvRWxlbWVudC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvcmVhY3Rpb25zL0VsZW1lbnQuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5iZWVmNWUyMmIxZGYwZjhiOWY3NGI0NzljMDQ4ZDE3OTAwMjg3Y2Q4Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
dXN0b20tZWxlbWVudHMvcmVhY3Rpb25zL0VsZW1lbnQuaHRtbApAQCAtMCwwICsxLDYwIEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8dGl0bGU+Q3VzdG9tIEVsZW1lbnRzOiBD
RVJlYWN0aW9ucyBvbiBOb2RlIGludGVyZmFjZTwvdGl0bGU+Cis8bWV0YSBuYW1lPSJhdXRob3Ii
IHRpdGxlPSJSeW9zdWtlIE5pd2EiIGhyZWY9Im1haWx0bzpybml3YUB3ZWJraXQub3JnIj4KKzxt
ZXRhIG5hbWU9ImFzc2VydCIgY29udGVudD0iaWQsIGNsYXNzTmFtZSwgc2xvdCwgc2V0QXR0cmli
dXRlLCBzZXRBdHRyaWJ1dGVOUywgcmVtb3ZlQXR0cmlidXRlLCByZW1vdmVBdHRyaWJ1dGVOUywg
c2V0QXR0cmlidXRlTm9kZSwgc2V0QXR0cmlidXRlTm9kZU5TLCByZW1vdmVBdHRyaWJ1dGVOb2Rl
LCBhbmQgaW5zZXJ0QWRqYWNlbnRFbGVtZW50IG9mIEVsZW1lbnQgaW50ZXJmYWNlIG11c3QgaGF2
ZSBDRVJlYWN0aW9ucyI+Cis8bWV0YSBuYW1lPSJoZWxwIiBjb250ZW50PSJodHRwczovL2RvbS5z
cGVjLndoYXR3Zy5vcmcvI2VsZW1lbnQiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jl
c291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4v
Li4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuL3Jlc291cmNlcy9yZWFjdGlvbnMuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+
Cis8ZGl2IGlkPSJsb2ciPjwvZGl2PgorPHNjcmlwdD4KKwordGVzdFJlZmxlY3RBdHRyaWJ1dGUo
J2lkJywgJ2lkJywgJ2ZvbycsICdiYXInLCAnaWQgb24gRWxlbWVudCcpOwordGVzdFJlZmxlY3RB
dHRyaWJ1dGUoJ2NsYXNzTmFtZScsICdjbGFzcycsICdmb28nLCAnYmFyJywgJ2NsYXNzTmFtZSBv
biBFbGVtZW50Jyk7Cit0ZXN0UmVmbGVjdEF0dHJpYnV0ZSgnc2xvdCcsICdzbG90JywgJ2Zvbycs
ICdiYXInLCAnc2xvdCBvbiBFbGVtZW50Jyk7CisKK3Rlc3RBdHRyaWJ1dGVBZGRlcihmdW5jdGlv
biAoZWxlbWVudCwgbmFtZSwgdmFsdWUpIHsKKyAgICBlbGVtZW50LnNldEF0dHJpYnV0ZShuYW1l
LCB2YWx1ZSk7Cit9LCAnc2V0QXR0cmlidXRlIG9uIEVsZW1lbnQnKTsKKwordGVzdEF0dHJpYnV0
ZUFkZGVyKGZ1bmN0aW9uIChlbGVtZW50LCBuYW1lLCB2YWx1ZSkgeworICAgIGVsZW1lbnQuc2V0
QXR0cmlidXRlTlMobnVsbCwgbmFtZSwgdmFsdWUpOworfSwgJ3NldEF0dHJpYnV0ZU5TIG9uIEVs
ZW1lbnQnKTsKKwordGVzdEF0dHJpYnV0ZVJlbW92ZXIoZnVuY3Rpb24gKGVsZW1lbnQsIG5hbWUp
IHsKKyAgICBlbGVtZW50LnJlbW92ZUF0dHJpYnV0ZShuYW1lKTsKK30sICdyZW1vdmVBdHRyaWJ1
dGUgb24gRWxlbWVudCcpOworCit0ZXN0QXR0cmlidXRlUmVtb3ZlcihmdW5jdGlvbiAoZWxlbWVu
dCwgbmFtZSkgeworICAgIGVsZW1lbnQucmVtb3ZlQXR0cmlidXRlTlMobnVsbCwgbmFtZSk7Cit9
LCAncmVtb3ZlQXR0cmlidXRlTlMgb24gRWxlbWVudCcpOworCit0ZXN0QXR0cmlidXRlQWRkZXIo
ZnVuY3Rpb24gKGVsZW1lbnQsIG5hbWUsIHZhbHVlKSB7CisgICAgdmFyIGF0dHIgPSBkb2N1bWVu
dC5jcmVhdGVBdHRyaWJ1dGUobmFtZSk7CisgICAgYXR0ci52YWx1ZSA9IHZhbHVlOworICAgIGVs
ZW1lbnQuc2V0QXR0cmlidXRlTm9kZShhdHRyKTsKK30sICdzZXRBdHRyaWJ1dGVOb2RlIG9uIEVs
ZW1lbnQnKTsKKwordGVzdEF0dHJpYnV0ZUFkZGVyKGZ1bmN0aW9uIChlbGVtZW50LCBuYW1lLCB2
YWx1ZSkgeworICAgIHZhciBhdHRyID0gZG9jdW1lbnQuY3JlYXRlQXR0cmlidXRlKG5hbWUpOwor
ICAgIGF0dHIudmFsdWUgPSB2YWx1ZTsKKyAgICBlbGVtZW50LnNldEF0dHJpYnV0ZU5vZGVOUyhh
dHRyKTsKK30sICdzZXRBdHRyaWJ1dGVOb2RlTlMgb24gRWxlbWVudCcpOworCit0ZXN0QXR0cmli
dXRlUmVtb3ZlcihmdW5jdGlvbiAoZWxlbWVudCwgbmFtZSkgeworICAgIHZhciBhdHRyID0gZWxl
bWVudC5nZXRBdHRyaWJ1dGVOb2RlKG5hbWUpOworICAgIGlmIChhdHRyKQorICAgICAgICBlbGVt
ZW50LnJlbW92ZUF0dHJpYnV0ZU5vZGUoZWxlbWVudC5nZXRBdHRyaWJ1dGVOb2RlKG5hbWUpKTsK
K30sICdyZW1vdmVBdHRyaWJ1dGVOb2RlIG9uIEVsZW1lbnQnKTsKKwordGVzdE5vZGVDb25uZWN0
b3IoZnVuY3Rpb24gKG5ld0NvbnRhaW5lciwgZWxlbWVudCkgeworICAgIG5ld0NvbnRhaW5lci5p
bnNlcnRBZGphY2VudEVsZW1lbnQoJ2FmdGVyQmVnaW4nLCBlbGVtZW50KTsKK30pOworCis8L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL3JlYWN0aW9ucy9OYW1lZE5v
ZGVNYXAtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jdXN0b20tZWxlbWVudHMvcmVhY3Rpb25zL05hbWVkTm9kZU1hcC1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYjhjNjVhZjIwMWQzMDUzNjBkYjIzNjk5NTY2MjUwZGUxMmRjMmUwZgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3VzdG9tLWVsZW1lbnRzL3JlYWN0aW9ucy9OYW1lZE5vZGVNYXAtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMTggQEAKKworRkFJTCBzZXROYW1lZEl0ZW0gb24gTmFtZWROb2RlTWFwIG11
c3QgZW5xdWV1ZSBhbiBhdHRyaWJ1dGVDaGFuZ2VkIHJlYWN0aW9uIHdoZW4gYWRkaW5nIGFuIGF0
dHJpYnV0ZSBhc3NlcnRfYXJyYXlfZXF1YWxzOiBsZW5ndGhzIGRpZmZlciwgZXhwZWN0ZWQgMSBn
b3QgMAorUEFTUyBzZXROYW1lZEl0ZW0gb24gTmFtZWROb2RlTWFwIG11c3Qgbm90IGVucXVldWUg
YW4gYXR0cmlidXRlQ2hhbmdlZCByZWFjdGlvbiB3aGVuIGFkZGluZyBhbiB1bm9ic2VydmVkIGF0
dHJpYnV0ZSAKK0ZBSUwgc2V0TmFtZWRJdGVtIG9uIE5hbWVkTm9kZU1hcCBtdXN0IGVucXVldWUg
YW4gYXR0cmlidXRlQ2hhbmdlZCByZWFjdGlvbiB3aGVuIHJlcGxhY2luZyBhbiBleGlzdGluZyBh
dHRyaWJ1dGUgYXNzZXJ0X2FycmF5X2VxdWFsczogbGVuZ3RocyBkaWZmZXIsIGV4cGVjdGVkIDEg
Z290IDAKK1BBU1Mgc2V0TmFtZWRJdGVtIG9uIE5hbWVkTm9kZU1hcCBtdXN0IGVucXVldWUgYW4g
YXR0cmlidXRlQ2hhbmdlZCByZWFjdGlvbiB3aGVuIHJlcGxhY2luZyBhbiBleGlzdGluZyB1bm9i
c2VydmVkIGF0dHJpYnV0ZSAKK0ZBSUwgc2V0TmFtZWRJdGVtTlMgb24gTmFtZWROb2RlTWFwIG11
c3QgZW5xdWV1ZSBhbiBhdHRyaWJ1dGVDaGFuZ2VkIHJlYWN0aW9uIHdoZW4gYWRkaW5nIGFuIGF0
dHJpYnV0ZSBhc3NlcnRfYXJyYXlfZXF1YWxzOiBsZW5ndGhzIGRpZmZlciwgZXhwZWN0ZWQgMSBn
b3QgMAorUEFTUyBzZXROYW1lZEl0ZW1OUyBvbiBOYW1lZE5vZGVNYXAgbXVzdCBub3QgZW5xdWV1
ZSBhbiBhdHRyaWJ1dGVDaGFuZ2VkIHJlYWN0aW9uIHdoZW4gYWRkaW5nIGFuIHVub2JzZXJ2ZWQg
YXR0cmlidXRlIAorRkFJTCBzZXROYW1lZEl0ZW1OUyBvbiBOYW1lZE5vZGVNYXAgbXVzdCBlbnF1
ZXVlIGFuIGF0dHJpYnV0ZUNoYW5nZWQgcmVhY3Rpb24gd2hlbiByZXBsYWNpbmcgYW4gZXhpc3Rp
bmcgYXR0cmlidXRlIGFzc2VydF9hcnJheV9lcXVhbHM6IGxlbmd0aHMgZGlmZmVyLCBleHBlY3Rl
ZCAxIGdvdCAwCitQQVNTIHNldE5hbWVkSXRlbU5TIG9uIE5hbWVkTm9kZU1hcCBtdXN0IGVucXVl
dWUgYW4gYXR0cmlidXRlQ2hhbmdlZCByZWFjdGlvbiB3aGVuIHJlcGxhY2luZyBhbiBleGlzdGlu
ZyB1bm9ic2VydmVkIGF0dHJpYnV0ZSAKK0ZBSUwgcmVtb3ZlTmFtZWRJdGVtIG9uIE5hbWVkTm9k
ZU1hcCBtdXN0IG5vdCBlbnF1ZXVlIGFuIGF0dHJpYnV0ZUNoYW5nZWQgcmVhY3Rpb24gd2hlbiBy
ZW1vdmluZyBhbiBhdHRyaWJ1dGUgdGhhdCBkb2VzIG5vdCBleGlzdCBUaGUgb2JqZWN0IGNhbiBu
b3QgYmUgZm91bmQgaGVyZS4KK1BBU1MgcmVtb3ZlTmFtZWRJdGVtIG9uIE5hbWVkTm9kZU1hcCBt
dXN0IG5vdCBlbnF1ZXVlIGFuIGF0dHJpYnV0ZUNoYW5nZWQgcmVhY3Rpb24gd2hlbiByZW1vdmlu
ZyBhbiB1bm9ic2VydmVkIGF0dHJpYnV0ZSAKK0ZBSUwgcmVtb3ZlTmFtZWRJdGVtIG9uIE5hbWVk
Tm9kZU1hcCBtdXN0IGVucXVldWUgYW4gYXR0cmlidXRlQ2hhbmdlZCByZWFjdGlvbiB3aGVuIHJl
bW92aW5nIGFuIGV4aXN0aW5nIGF0dHJpYnV0ZSBhc3NlcnRfYXJyYXlfZXF1YWxzOiBsZW5ndGhz
IGRpZmZlciwgZXhwZWN0ZWQgMSBnb3QgMAorUEFTUyByZW1vdmVOYW1lZEl0ZW0gb24gTmFtZWRO
b2RlTWFwIG11c3Qgbm90IGVucXVldWUgYW4gYXR0cmlidXRlQ2hhbmdlZCByZWFjdGlvbiB3aGVu
IHJlbW92aW5nIGFuIGV4aXN0aW5nIHVub2JzZXJ2ZWQgYXR0cmlidXRlIAorRkFJTCByZW1vdmVO
YW1lZEl0ZW1OUyBvbiBOYW1lZE5vZGVNYXAgbXVzdCBub3QgZW5xdWV1ZSBhbiBhdHRyaWJ1dGVD
aGFuZ2VkIHJlYWN0aW9uIHdoZW4gcmVtb3ZpbmcgYW4gYXR0cmlidXRlIHRoYXQgZG9lcyBub3Qg
ZXhpc3QgVGhlIG9iamVjdCBjYW4gbm90IGJlIGZvdW5kIGhlcmUuCitQQVNTIHJlbW92ZU5hbWVk
SXRlbU5TIG9uIE5hbWVkTm9kZU1hcCBtdXN0IG5vdCBlbnF1ZXVlIGFuIGF0dHJpYnV0ZUNoYW5n
ZWQgcmVhY3Rpb24gd2hlbiByZW1vdmluZyBhbiB1bm9ic2VydmVkIGF0dHJpYnV0ZSAKK0ZBSUwg
cmVtb3ZlTmFtZWRJdGVtTlMgb24gTmFtZWROb2RlTWFwIG11c3QgZW5xdWV1ZSBhbiBhdHRyaWJ1
dGVDaGFuZ2VkIHJlYWN0aW9uIHdoZW4gcmVtb3ZpbmcgYW4gZXhpc3RpbmcgYXR0cmlidXRlIGFz
c2VydF9hcnJheV9lcXVhbHM6IGxlbmd0aHMgZGlmZmVyLCBleHBlY3RlZCAxIGdvdCAwCitQQVNT
IHJlbW92ZU5hbWVkSXRlbU5TIG9uIE5hbWVkTm9kZU1hcCBtdXN0IG5vdCBlbnF1ZXVlIGFuIGF0
dHJpYnV0ZUNoYW5nZWQgcmVhY3Rpb24gd2hlbiByZW1vdmluZyBhbiBleGlzdGluZyB1bm9ic2Vy
dmVkIGF0dHJpYnV0ZSAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvcmVhY3Rpb25zL05hbWVkTm9kZU1hcC5o
dG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20t
ZWxlbWVudHMvcmVhY3Rpb25zL05hbWVkTm9kZU1hcC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM5ZmQyZjky
YmI1NzY2N2MzNmJjYWIxYjIyNDA1OTM4NWQxN2U4ZDUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9y
ZWFjdGlvbnMvTmFtZWROb2RlTWFwLmh0bWwKQEAgLTAsMCArMSwzOCBAQAorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbD4KKzxoZWFkPgorPHRpdGxlPkN1c3RvbSBFbGVtZW50czogQ0VSZWFjdGlvbnMg
b24gTmFtZWROb2RlTWFwIGludGVyZmFjZTwvdGl0bGU+Cis8bWV0YSBuYW1lPSJhdXRob3IiIHRp
dGxlPSJSeW9zdWtlIE5pd2EiIGhyZWY9Im1haWx0bzpybml3YUB3ZWJraXQub3JnIj4KKzxtZXRh
IG5hbWU9ImFzc2VydCIgY29udGVudD0ic2V0TmFtZWRJdGVtLCBzZXROYW1lZEl0ZW1OUywgcmVt
b3ZlTmFtZWRpdGVtLCBhbmQgcmVtb3ZlTmFtZWRJdGVtTlMgb2YgTmFtZWROb2RlTWFwIGludGVy
ZmFjZSBtdXN0IGhhdmUgQ0VSZWFjdGlvbnMiPgorPG1ldGEgbmFtZT0iaGVscCIgY29udGVudD0i
aHR0cHM6Ly9kb20uc3BlYy53aGF0d2cub3JnLyNub2RlIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8u
Li8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi9yZXNvdXJjZXMvcmVhY3Rpb25zLmpzIj48L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorPGRpdiBpZD0ibG9nIj48L2Rpdj4KKzxzY3JpcHQ+CisKK3Rlc3RBdHRyaWJ1
dGVBZGRlcihmdW5jdGlvbiAoZWxlbWVudCwgbmFtZSwgdmFsdWUpIHsKKyAgICB2YXIgYXR0ciA9
IGVsZW1lbnQub3duZXJEb2N1bWVudC5jcmVhdGVBdHRyaWJ1dGUobmFtZSk7CisgICAgYXR0ci52
YWx1ZSA9IHZhbHVlOworICAgIGVsZW1lbnQuYXR0cmlidXRlcy5zZXROYW1lZEl0ZW0oYXR0cik7
Cit9LCAnc2V0TmFtZWRJdGVtIG9uIE5hbWVkTm9kZU1hcCcpOworCit0ZXN0QXR0cmlidXRlQWRk
ZXIoZnVuY3Rpb24gKGVsZW1lbnQsIG5hbWUsIHZhbHVlKSB7CisgICAgdmFyIGF0dHIgPSBlbGVt
ZW50Lm93bmVyRG9jdW1lbnQuY3JlYXRlQXR0cmlidXRlKG5hbWUpOworICAgIGF0dHIudmFsdWUg
PSB2YWx1ZTsKKyAgICBlbGVtZW50LmF0dHJpYnV0ZXMuc2V0TmFtZWRJdGVtTlMoYXR0cik7Cit9
LCAnc2V0TmFtZWRJdGVtTlMgb24gTmFtZWROb2RlTWFwJyk7CisKK3Rlc3RBdHRyaWJ1dGVSZW1v
dmVyKGZ1bmN0aW9uIChlbGVtZW50LCBuYW1lKSB7CisgICAgZWxlbWVudC5hdHRyaWJ1dGVzLnJl
bW92ZU5hbWVkSXRlbShuYW1lKTsKK30sICdyZW1vdmVOYW1lZEl0ZW0gb24gTmFtZWROb2RlTWFw
Jyk7CisKK3Rlc3RBdHRyaWJ1dGVSZW1vdmVyKGZ1bmN0aW9uIChlbGVtZW50LCBuYW1lKSB7Cisg
ICAgZWxlbWVudC5hdHRyaWJ1dGVzLnJlbW92ZU5hbWVkSXRlbU5TKG51bGwsIG5hbWUpOworfSwg
J3JlbW92ZU5hbWVkSXRlbU5TIG9uIE5hbWVkTm9kZU1hcCcpOworCis8L3NjcmlwdD4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL3JlYWN0aW9ucy9Ob2RlLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1l
bnRzL3JlYWN0aW9ucy9Ob2RlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kYzY2MGQzNmU2MzY4
NWExNDU1MTFiMGNiMTdhMTc5NTNhOTA3M2VkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvcmVhY3Rp
b25zL05vZGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTYgQEAKKworRkFJTCBub2RlVmFsdWUg
b24gTm9kZSBtdXN0IGVucXVldWUgYW4gYXR0cmlidXRlQ2hhbmdlZCByZWFjdGlvbiB3aGVuIHJl
cGxhY2luZyBhbiBleGlzdGluZyBhdHRyaWJ1dGUgYXNzZXJ0X2FycmF5X2VxdWFsczogbGVuZ3Ro
cyBkaWZmZXIsIGV4cGVjdGVkIDEgZ290IDAKK1BBU1Mgbm9kZVZhbHVlIG9uIE5vZGUgbXVzdCBu
b3QgZW5xdWV1ZSBhbiBhdHRyaWJ1dGVDaGFuZ2VkIHJlYWN0aW9uIHdoZW4gcmVwbGFjaW5nIGFu
IGV4aXN0aW5nIHVub2JzZXJ2ZWQgYXR0cmlidXRlIAorRkFJTCB0ZXh0Q29udGVudCBvbiBOb2Rl
IG11c3QgZW5xdWV1ZSBhbiBhdHRyaWJ1dGVDaGFuZ2VkIHJlYWN0aW9uIHdoZW4gcmVwbGFjaW5n
IGFuIGV4aXN0aW5nIGF0dHJpYnV0ZSBhc3NlcnRfYXJyYXlfZXF1YWxzOiBsZW5ndGhzIGRpZmZl
ciwgZXhwZWN0ZWQgMSBnb3QgMAorUEFTUyB0ZXh0Q29udGVudCBvbiBOb2RlIG11c3Qgbm90IGVu
cXVldWUgYW4gYXR0cmlidXRlQ2hhbmdlZCByZWFjdGlvbiB3aGVuIHJlcGxhY2luZyBhbiBleGlz
dGluZyB1bm9ic2VydmVkIGF0dHJpYnV0ZSAKK0ZBSUwgY2xvbmVOb2RlIG9uIE5vZGUgbXVzdCBl
bnF1ZXVlIGFuIGF0dHJpYnV0ZUNoYW5nZWQgcmVhY3Rpb24gd2hlbiBjbG9uaW5nIGFuIGVsZW1l
bnQgd2l0aCBhbiBvYnNlcnZlZCBhdHRyaWJ1dGUgYXNzZXJ0X2FycmF5X2VxdWFsczogbGVuZ3Ro
cyBkaWZmZXIsIGV4cGVjdGVkIDIgZ290IDEKK1BBU1MgY2xvbmVOb2RlIG9uIE5vZGUgbXVzdCBu
b3QgZW5xdWV1ZSBhbiBhdHRyaWJ1dGVDaGFuZ2VkIHJlYWN0aW9uIHdoZW4gY2xvbmluZyBhbiBl
bGVtZW50IHdpdGggYW4gdW5vYnNlcnZlZCBhdHRyaWJ1dGUgCitGQUlMIGNsb25lTm9kZSBvbiBO
b2RlIG11c3QgZW5xdWV1ZSBhbiBhdHRyaWJ1dGVDaGFuZ2VkIHJlYWN0aW9uIHdoZW4gY2xvbmlu
ZyBhbiBlbGVtZW50IG9ubHkgZm9yIG9ic2VydmVkIGF0dHJpYnV0ZXMgYXNzZXJ0X2FycmF5X2Vx
dWFsczogbGVuZ3RocyBkaWZmZXIsIGV4cGVjdGVkIDQgZ290IDMKK0ZBSUwgaW5zZXJ0QmVmb3Jl
IG9uIENoaWxkTm9kZSBtdXN0IGVucXVldWUgYSBjb25uZWN0ZWQgcmVhY3Rpb24gYXNzZXJ0X2Fy
cmF5X2VxdWFsczogbGVuZ3RocyBkaWZmZXIsIGV4cGVjdGVkIDEgZ290IDAKK0ZBSUwgaW5zZXJ0
QmVmb3JlIG9uIENoaWxkTm9kZSBtdXN0IGVucXVldWUgYSBkaXNjb25uZWN0ZWQgcmVhY3Rpb24s
IGFuIGFkb3B0ZWQgcmVhY3Rpb24sIGFuZCBhIGNvbm5lY3RlZCByZWFjdGlvbiB3aGVuIHRoZSBj
dXN0b20gZWxlbWVudCB3YXMgaW4gYW5vdGhlciBkb2N1bWVudCBhc3NlcnRfYXJyYXlfZXF1YWxz
OiBsZW5ndGhzIGRpZmZlciwgZXhwZWN0ZWQgMSBnb3QgMAorUEFTUyBhcHBlbmRDaGlsZCBvbiBD
aGlsZE5vZGUgbXVzdCBlbnF1ZXVlIGEgY29ubmVjdGVkIHJlYWN0aW9uIAorUEFTUyBhcHBlbmRD
aGlsZCBvbiBDaGlsZE5vZGUgbXVzdCBlbnF1ZXVlIGEgZGlzY29ubmVjdGVkIHJlYWN0aW9uLCBh
biBhZG9wdGVkIHJlYWN0aW9uLCBhbmQgYSBjb25uZWN0ZWQgcmVhY3Rpb24gd2hlbiB0aGUgY3Vz
dG9tIGVsZW1lbnQgd2FzIGluIGFub3RoZXIgZG9jdW1lbnQgCitGQUlMIHJlcGxhY2VDaGlsZCBv
biBDaGlsZE5vZGUgbXVzdCBlbnF1ZXVlIGEgY29ubmVjdGVkIHJlYWN0aW9uIGFzc2VydF9hcnJh
eV9lcXVhbHM6IGxlbmd0aHMgZGlmZmVyLCBleHBlY3RlZCAxIGdvdCAwCitGQUlMIHJlcGxhY2VD
aGlsZCBvbiBDaGlsZE5vZGUgbXVzdCBlbnF1ZXVlIGEgZGlzY29ubmVjdGVkIHJlYWN0aW9uLCBh
biBhZG9wdGVkIHJlYWN0aW9uLCBhbmQgYSBjb25uZWN0ZWQgcmVhY3Rpb24gd2hlbiB0aGUgY3Vz
dG9tIGVsZW1lbnQgd2FzIGluIGFub3RoZXIgZG9jdW1lbnQgYXNzZXJ0X2FycmF5X2VxdWFsczog
bGVuZ3RocyBkaWZmZXIsIGV4cGVjdGVkIDEgZ290IDAKK1BBU1MgcmVtb3ZlQ2hpbGQgb24gQ2hp
bGROb2RlIG11c3QgZW5xdWV1ZSBhIGRpc2Nvbm5lY3RlZCByZWFjdGlvbiAKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxl
bWVudHMvcmVhY3Rpb25zL05vZGUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL3JlYWN0aW9ucy9Ob2RlLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uOGY0MGQ0MjZiMDYzYWVjYTFlYjkyOWRkZGIxNjlmNTBmZWY2YTMzZgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Vz
dG9tLWVsZW1lbnRzL3JlYWN0aW9ucy9Ob2RlLmh0bWwKQEAgLTAsMCArMSw0OCBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHRpdGxlPkN1c3RvbSBFbGVtZW50czogQ0VSZWFj
dGlvbnMgb24gTm9kZSBpbnRlcmZhY2U8L3RpdGxlPgorPG1ldGEgbmFtZT0iYXV0aG9yIiB0aXRs
ZT0iUnlvc3VrZSBOaXdhIiBocmVmPSJtYWlsdG86cm5pd2FAd2Via2l0Lm9yZyI+Cis8bWV0YSBu
YW1lPSJhc3NlcnQiIGNvbnRlbnQ9Im5vZGVWYWx1ZSwgdGV4dENvbnRlbnQsIG5vcm1hbGl6ZSwg
Y2xvbmVOb2RlLCBpbnNlcnRCZWZvcmUsIGFwcGVuZENoaWxkLCByZXBsYWNlQ2hpbGQsIGFuZCBy
ZW1vdmVDaGlsZCBvZiBOb2RlIGludGVyZmFjZSBtdXN0IGhhdmUgQ0VSZWFjdGlvbnMiPgorPG1l
dGEgbmFtZT0iaGVscCIgY29udGVudD0iaHR0cHM6Ly9kb20uc3BlYy53aGF0d2cub3JnLyNub2Rl
Ij4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFy
bmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi9yZXNvdXJjZXMvcmVhY3Rp
b25zLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0ibG9nIj48L2Rpdj4K
KzxzY3JpcHQ+CisKK3Rlc3RBdHRyaWJ1dGVNdXRhdG9yKGZ1bmN0aW9uIChlbGVtZW50LCBuYW1l
LCB2YWx1ZSkgeworICAgIGVsZW1lbnQuZ2V0QXR0cmlidXRlTm9kZShuYW1lKS5ub2RlVmFsdWUg
PSB2YWx1ZTsKK30sICdub2RlVmFsdWUgb24gTm9kZScpOworCit0ZXN0QXR0cmlidXRlTXV0YXRv
cihmdW5jdGlvbiAoZWxlbWVudCwgbmFtZSwgdmFsdWUpIHsKKyAgICBlbGVtZW50LmdldEF0dHJp
YnV0ZU5vZGUobmFtZSkudGV4dENvbnRlbnQgPSB2YWx1ZTsKK30sICd0ZXh0Q29udGVudCBvbiBO
b2RlJyk7CisKKy8vIEZJWE1FOiBBZGQgYSB0ZXN0IGZvciBub3JtYWxpemUoKQorCit0ZXN0Q2xv
bmVyKGZ1bmN0aW9uIChjdXN0b21FbGVtZW50KSB7CisgICAgcmV0dXJuIGN1c3RvbUVsZW1lbnQu
Y2xvbmVOb2RlKGZhbHNlKTsKK30sICdjbG9uZU5vZGUgb24gTm9kZScpOworCit0ZXN0Tm9kZUNv
bm5lY3RvcihmdW5jdGlvbiAobmV3Q29udGFpbmVyLCBjdXN0b21FbGVtZW50KSB7CisgICAgbmV3
Q29udGFpbmVyLmluc2VydEJlZm9yZShjdXN0b21FbGVtZW50LCBuZXdDb250YWluZXIuZmlyc3RD
aGlsZCk7Cit9LCAnaW5zZXJ0QmVmb3JlIG9uIENoaWxkTm9kZScpOworCit0ZXN0Tm9kZUNvbm5l
Y3RvcihmdW5jdGlvbiAobmV3Q29udGFpbmVyLCBjdXN0b21FbGVtZW50KSB7CisgICAgbmV3Q29u
dGFpbmVyLmFwcGVuZENoaWxkKGN1c3RvbUVsZW1lbnQpOworfSwgJ2FwcGVuZENoaWxkIG9uIENo
aWxkTm9kZScpOworCit0ZXN0Tm9kZUNvbm5lY3RvcihmdW5jdGlvbiAobmV3Q29udGFpbmVyLCBj
dXN0b21FbGVtZW50KSB7CisgICAgbmV3Q29udGFpbmVyLnJlcGxhY2VDaGlsZChjdXN0b21FbGVt
ZW50LCBuZXdDb250YWluZXIuZmlyc3RDaGlsZCk7Cit9LCAncmVwbGFjZUNoaWxkIG9uIENoaWxk
Tm9kZScpOworCit0ZXN0Tm9kZURpc2Nvbm5lY3RvcihmdW5jdGlvbiAoY3VzdG9tRWxlbWVudCkg
eworICAgIGN1c3RvbUVsZW1lbnQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChjdXN0b21FbGVtZW50
KTsKK30sICdyZW1vdmVDaGlsZCBvbiBDaGlsZE5vZGUnKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9yZWFjdGlvbnMvUGFyZW50Tm9kZS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1l
bGVtZW50cy9yZWFjdGlvbnMvUGFyZW50Tm9kZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGRk
NzM1MDcxZTQwMDFkMGJiMTY2ZTgwNDQxNjZmNTQ4YTNjOTM2MwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1l
bnRzL3JlYWN0aW9ucy9QYXJlbnROb2RlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYgQEAKKwor
RkFJTCBwcmVwZW5kIG9uIFBhcmVudE5vZGUgbXVzdCBlbnF1ZXVlIGEgY29ubmVjdGVkIHJlYWN0
aW9uIGFzc2VydF9hcnJheV9lcXVhbHM6IGxlbmd0aHMgZGlmZmVyLCBleHBlY3RlZCAxIGdvdCAw
CitGQUlMIHByZXBlbmQgb24gUGFyZW50Tm9kZSBtdXN0IGVucXVldWUgYSBkaXNjb25uZWN0ZWQg
cmVhY3Rpb24sIGFuIGFkb3B0ZWQgcmVhY3Rpb24sIGFuZCBhIGNvbm5lY3RlZCByZWFjdGlvbiB3
aGVuIHRoZSBjdXN0b20gZWxlbWVudCB3YXMgaW4gYW5vdGhlciBkb2N1bWVudCBhc3NlcnRfYXJy
YXlfZXF1YWxzOiBsZW5ndGhzIGRpZmZlciwgZXhwZWN0ZWQgMSBnb3QgMAorRkFJTCBhcHBlbmQg
b24gUGFyZW50Tm9kZSBtdXN0IGVucXVldWUgYSBjb25uZWN0ZWQgcmVhY3Rpb24gYXNzZXJ0X2Fy
cmF5X2VxdWFsczogbGVuZ3RocyBkaWZmZXIsIGV4cGVjdGVkIDEgZ290IDAKK0ZBSUwgYXBwZW5k
IG9uIFBhcmVudE5vZGUgbXVzdCBlbnF1ZXVlIGEgZGlzY29ubmVjdGVkIHJlYWN0aW9uLCBhbiBh
ZG9wdGVkIHJlYWN0aW9uLCBhbmQgYSBjb25uZWN0ZWQgcmVhY3Rpb24gd2hlbiB0aGUgY3VzdG9t
IGVsZW1lbnQgd2FzIGluIGFub3RoZXIgZG9jdW1lbnQgYXNzZXJ0X2FycmF5X2VxdWFsczogbGVu
Z3RocyBkaWZmZXIsIGV4cGVjdGVkIDEgZ290IDAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvcmVhY3Rpb25z
L1BhcmVudE5vZGUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3VzdG9tLWVsZW1lbnRzL3JlYWN0aW9ucy9QYXJlbnROb2RlLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMjBiOWE2N2VkMjQwOTAxZmFkOGZlMjgxOWQyZDkzZjNjYWZiZWUxNAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9t
LWVsZW1lbnRzL3JlYWN0aW9ucy9QYXJlbnROb2RlLmh0bWwKQEAgLTAsMCArMSwyNiBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHRpdGxlPkN1c3RvbSBFbGVtZW50czogQ0VS
ZWFjdGlvbnMgb24gUGFyZW50Tm9kZSBpbnRlcmZhY2U8L3RpdGxlPgorPG1ldGEgbmFtZT0iYXV0
aG9yIiB0aXRsZT0iUnlvc3VrZSBOaXdhIiBocmVmPSJtYWlsdG86cm5pd2FAd2Via2l0Lm9yZyI+
Cis8bWV0YSBuYW1lPSJhc3NlcnQiIGNvbnRlbnQ9InByZXBlbmQgYW5kIGFwcGVuZCBvZiBQYXJl
bnROb2RlIGludGVyZmFjZSBtdXN0IGhhdmUgQ0VSZWFjdGlvbnMiPgorPG1ldGEgbmFtZT0iaGVs
cCIgY29udGVudD0iaHR0cHM6Ly9kb20uc3BlYy53aGF0d2cub3JnLyNwYXJlbnRub2RlIj4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3Jl
cG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi9yZXNvdXJjZXMvcmVhY3Rpb25zLmpz
Ij48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0ibG9nIj48L2Rpdj4KKzxzY3Jp
cHQ+CisKK3Rlc3ROb2RlQ29ubmVjdG9yKGZ1bmN0aW9uIChuZXdDb250YWluZXIsIGN1c3RvbUVs
ZW1lbnQpIHsKKyAgICBuZXdDb250YWluZXIucHJlcGVuZChjdXN0b21FbGVtZW50KTsKK30sICdw
cmVwZW5kIG9uIFBhcmVudE5vZGUnKTsKKwordGVzdE5vZGVDb25uZWN0b3IoZnVuY3Rpb24gKG5l
d0NvbnRhaW5lciwgY3VzdG9tRWxlbWVudCkgeworICAgIG5ld0NvbnRhaW5lci5hcHBlbmQoY3Vz
dG9tRWxlbWVudCk7Cit9LCAnYXBwZW5kIG9uIFBhcmVudE5vZGUnKTsKKworPC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9yZWFjdGlvbnMvUmFuZ2UtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20t
ZWxlbWVudHMvcmVhY3Rpb25zL1JhbmdlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNjMzYmQ3
Y2U2NDc4Y2Y4YjJkOGIwZTUxYjlmOTM5ZTJmMWU4ODQ2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMv
cmVhY3Rpb25zL1JhbmdlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBACisKK0ZBSUwgZGVs
ZXRlQ29udGVudHMgb24gUmFuZ2UgbXVzdCBlbnF1ZXVlIGEgZGlzY29ubmVjdGVkIHJlYWN0aW9u
IGFzc2VydF9hcnJheV9lcXVhbHM6IGxlbmd0aHMgZGlmZmVyLCBleHBlY3RlZCAxIGdvdCAwCitG
QUlMIGV4dHJhY3RDb250ZW50cyBvbiBSYW5nZSBtdXN0IGVucXVldWUgYSBkaXNjb25uZWN0ZWQg
cmVhY3Rpb24gYXNzZXJ0X2FycmF5X2VxdWFsczogbGVuZ3RocyBkaWZmZXIsIGV4cGVjdGVkIDEg
Z290IDAKK0ZBSUwgY2xvbmVDb250ZW50cyBvbiBSYW5nZSBtdXN0IGVucXVldWUgYW4gYXR0cmli
dXRlQ2hhbmdlZCByZWFjdGlvbiB3aGVuIGNsb25pbmcgYW4gZWxlbWVudCB3aXRoIGFuIG9ic2Vy
dmVkIGF0dHJpYnV0ZSBhc3NlcnRfYXJyYXlfZXF1YWxzOiBsZW5ndGhzIGRpZmZlciwgZXhwZWN0
ZWQgMiBnb3QgMAorRkFJTCBjbG9uZUNvbnRlbnRzIG9uIFJhbmdlIG11c3Qgbm90IGVucXVldWUg
YW4gYXR0cmlidXRlQ2hhbmdlZCByZWFjdGlvbiB3aGVuIGNsb25pbmcgYW4gZWxlbWVudCB3aXRo
IGFuIHVub2JzZXJ2ZWQgYXR0cmlidXRlIGFzc2VydF9hcnJheV9lcXVhbHM6IGxlbmd0aHMgZGlm
ZmVyLCBleHBlY3RlZCAxIGdvdCAwCitGQUlMIGNsb25lQ29udGVudHMgb24gUmFuZ2UgbXVzdCBl
bnF1ZXVlIGFuIGF0dHJpYnV0ZUNoYW5nZWQgcmVhY3Rpb24gd2hlbiBjbG9uaW5nIGFuIGVsZW1l
bnQgb25seSBmb3Igb2JzZXJ2ZWQgYXR0cmlidXRlcyBhc3NlcnRfYXJyYXlfZXF1YWxzOiBsZW5n
dGhzIGRpZmZlciwgZXhwZWN0ZWQgNCBnb3QgMworRkFJTCBpbnNlcnROb2RlIG9uIFJhbmdlIG11
c3QgZW5xdWV1ZSBhIGNvbm5lY3RlZCByZWFjdGlvbiBhc3NlcnRfYXJyYXlfZXF1YWxzOiBsZW5n
dGhzIGRpZmZlciwgZXhwZWN0ZWQgMSBnb3QgMAorRkFJTCBpbnNlcnROb2RlIG9uIFJhbmdlIG11
c3QgZW5xdWV1ZSBhIGRpc2Nvbm5lY3RlZCByZWFjdGlvbiwgYW4gYWRvcHRlZCByZWFjdGlvbiwg
YW5kIGEgY29ubmVjdGVkIHJlYWN0aW9uIHdoZW4gdGhlIGN1c3RvbSBlbGVtZW50IHdhcyBpbiBh
bm90aGVyIGRvY3VtZW50IGFzc2VydF9hcnJheV9lcXVhbHM6IGxlbmd0aHMgZGlmZmVyLCBleHBl
Y3RlZCAxIGdvdCAwCitGQUlMIGluc2VydE5vZGUgb24gUmFuZ2UgbXVzdCBlbnF1ZXVlIGEgY29u
bmVjdGVkIHJlYWN0aW9uIGFzc2VydF9hcnJheV9lcXVhbHM6IGxlbmd0aHMgZGlmZmVyLCBleHBl
Y3RlZCAxIGdvdCAwCitGQUlMIGluc2VydE5vZGUgb24gUmFuZ2UgbXVzdCBlbnF1ZXVlIGEgZGlz
Y29ubmVjdGVkIHJlYWN0aW9uLCBhbiBhZG9wdGVkIHJlYWN0aW9uLCBhbmQgYSBjb25uZWN0ZWQg
cmVhY3Rpb24gd2hlbiB0aGUgY3VzdG9tIGVsZW1lbnQgd2FzIGluIGFub3RoZXIgZG9jdW1lbnQg
YXNzZXJ0X2FycmF5X2VxdWFsczogbGVuZ3RocyBkaWZmZXIsIGV4cGVjdGVkIDEgZ290IDAKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
dXN0b20tZWxlbWVudHMvcmVhY3Rpb25zL1JhbmdlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9yZWFjdGlvbnMvUmFuZ2Uu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4zMjNlMDBkMzViMDdhMDNkNzZkNGY3ODlhZDg5ZjMzZjg2YTMzOTU4
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jdXN0b20tZWxlbWVudHMvcmVhY3Rpb25zL1JhbmdlLmh0bWwKQEAgLTAsMCArMSw0
OCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHRpdGxlPkN1c3RvbSBFbGVt
ZW50czogQ0VSZWFjdGlvbnMgb24gUmFuZ2UgaW50ZXJmYWNlPC90aXRsZT4KKzxtZXRhIG5hbWU9
ImF1dGhvciIgdGl0bGU9IlJ5b3N1a2UgTml3YSIgaHJlZj0ibWFpbHRvOnJuaXdhQHdlYmtpdC5v
cmciPgorPG1ldGEgbmFtZT0iYXNzZXJ0IiBjb250ZW50PSJkZWxldGVDb250ZW50cywgZXh0cmFj
dENvbnRlbnRzLCBjbG9uZUNvbnRlbnRzLCBpbnNlcnROb2RlLCBhbmQgc3Vycm91bmRDb250ZW50
cyBvZiBSYW5nZSBpbnRlcmZhY2UgbXVzdCBoYXZlIENFUmVhY3Rpb25zIj4KKzxtZXRhIG5hbWU9
ImhlbHAiIGNvbnRlbnQ9Imh0dHBzOi8vZG9tLnNwZWMud2hhdHdnLm9yZy8jbm9kZSI+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBv
cnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4vcmVzb3VyY2VzL3JlYWN0aW9ucy5qcyI+
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9ImxvZyI+PC9kaXY+Cis8c2NyaXB0
PgorCit0ZXN0Tm9kZURpc2Nvbm5lY3RvcihmdW5jdGlvbiAoY3VzdG9tRWxlbWVudCkgeworICAg
IHZhciByYW5nZSA9IGRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7CisgICAgcmFuZ2Uuc2VsZWN0Tm9k
ZShjdXN0b21FbGVtZW50KTsKKyAgICByYW5nZS5kZWxldGVDb250ZW50cygpOworfSwgJ2RlbGV0
ZUNvbnRlbnRzIG9uIFJhbmdlJyk7CisKK3Rlc3ROb2RlRGlzY29ubmVjdG9yKGZ1bmN0aW9uIChj
dXN0b21FbGVtZW50KSB7CisgICAgdmFyIHJhbmdlID0gZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTsK
KyAgICByYW5nZS5zZWxlY3ROb2RlKGN1c3RvbUVsZW1lbnQpOworICAgIHJhbmdlLmV4dHJhY3RD
b250ZW50cygpOworfSwgJ2V4dHJhY3RDb250ZW50cyBvbiBSYW5nZScpOworCit0ZXN0Q2xvbmVy
KGZ1bmN0aW9uIChjdXN0b21FbGVtZW50KSB7CisgICAgdmFyIHJhbmdlID0gZG9jdW1lbnQuY3Jl
YXRlUmFuZ2UoKTsKKyAgICByYW5nZS5zZWxlY3ROb2RlKGN1c3RvbUVsZW1lbnQpOworICAgIHJh
bmdlLmNsb25lQ29udGVudHMoKTsKK30sICdjbG9uZUNvbnRlbnRzIG9uIFJhbmdlJykKKwordGVz
dE5vZGVDb25uZWN0b3IoZnVuY3Rpb24gKGNvbnRhaW5lciwgY3VzdG9tRWxlbWVudCkgeworICAg
IHZhciByYW5nZSA9IGRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7CisgICAgcmFuZ2Uuc2VsZWN0Tm9k
ZUNvbnRlbnRzKGNvbnRhaW5lcik7CisgICAgcmFuZ2UuaW5zZXJ0Tm9kZShjdXN0b21FbGVtZW50
KTsKK30sICdpbnNlcnROb2RlIG9uIFJhbmdlJyk7CisKK3Rlc3ROb2RlQ29ubmVjdG9yKGZ1bmN0
aW9uIChjb250YWluZXIsIGN1c3RvbUVsZW1lbnQpIHsKKyAgICB2YXIgcmFuZ2UgPSBkb2N1bWVu
dC5jcmVhdGVSYW5nZSgpOworICAgIHJhbmdlLnNlbGVjdE5vZGVDb250ZW50cyhjb250YWluZXIp
OworICAgIHJhbmdlLnN1cnJvdW5kQ29udGVudHMoY3VzdG9tRWxlbWVudCk7Cit9LCAnaW5zZXJ0
Tm9kZSBvbiBSYW5nZScpOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVs
ZW1lbnRzL3JlYWN0aW9ucy9yZXNvdXJjZXMvcmVhY3Rpb25zLmpzIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvcmVhY3Rpb25zL3Jl
c291cmNlcy9yZWFjdGlvbnMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWUwNmM3NjczNWMyODFhNjBhYWM2OTg2
YjZiZDZiMWRkMjhmOWEzMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL3JlYWN0aW9ucy9yZXNvdXJj
ZXMvcmVhY3Rpb25zLmpzCkBAIC0wLDAgKzEsMjU2IEBACisKK2xldCB0ZXN0TnVtYmVyID0gMTsK
KworZnVuY3Rpb24gZGVmaW5lTmV3Q3VzdG9tRWxlbWVudChvYnNlcnZlZEF0dHJpYnV0ZXMpIHsK
KyAgICBsZXQgbG9nID0gW107CisgICAgbGV0IG5hbWUgPSAnY3VzdG9tLWVsZW1lbnQtJyArIHRl
c3ROdW1iZXIrKzsKKworICAgIGNsYXNzIEN1c3RvbUVsZW1lbnQgZXh0ZW5kcyBIVE1MRWxlbWVu
dCB7CisgICAgICAgIGNvbnN0cnVjdG9yKCkgeworICAgICAgICAgICAgc3VwZXIoKTsKKyAgICAg
ICAgICAgIGxvZy5wdXNoKHt0eXBlOiAnY29uc3RydWN0ZWQnLCBlbGVtZW50OiB0aGlzfSk7Cisg
ICAgICAgIH0KKyAgICAgICAgYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrKG5hbWUsIG9sZFZhbHVl
LCBuZXdWYWx1ZSwgbmFtZXNwYWNlKSB7CisgICAgICAgICAgICBsb2cucHVzaCh7dHlwZTogJ2F0
dHJpYnV0ZUNoYW5nZWQnLCBlbGVtZW50OiB0aGlzLCBuYW1lOiBuYW1lLCBvbGRWYWx1ZTogb2xk
VmFsdWUsIG5ld1ZhbHVlOiBuZXdWYWx1ZSwgbmFtZXNwYWNlOiBuYW1lc3BhY2V9KTsKKyAgICAg
ICAgfQorICAgICAgICBjb25uZWN0ZWRDYWxsYmFjaygpIHsgbG9nLnB1c2goe3R5cGU6ICdjb25u
ZWN0ZWQnLCBlbGVtZW50OiB0aGlzfSk7IH0KKyAgICAgICAgZGlzY29ubmVjdGVkQ2FsbGJhY2so
KSB7IGxvZy5wdXNoKHt0eXBlOiAnZGlzY29ubmVjdGVkJywgZWxlbWVudDogdGhpc30pOyB9Cisg
ICAgICAgIGFkb3B0ZWRDYWxsYmFjayhvbGREb2N1bWVudCwgbmV3RG9jdW1lbnQpIHsgbG9nLnB1
c2goe3R5cGU6ICdhZG9wdGVkJywgZWxlbWVudDogdGhpcywgb2xkRG9jdW1lbnQ6IG9sZERvY3Vt
ZW50LCBuZXdEb2N1bWVudDogbmV3RG9jdW1lbnR9KTsgfQorICAgIH0KKyAgICBDdXN0b21FbGVt
ZW50Lm9ic2VydmVkQXR0cmlidXRlcyA9IG9ic2VydmVkQXR0cmlidXRlczsKKworICAgIGN1c3Rv
bUVsZW1lbnRzLmRlZmluZShuYW1lLCBDdXN0b21FbGVtZW50KTsKKworICAgIHJldHVybiB7Cisg
ICAgICAgIG5hbWU6IG5hbWUsCisgICAgICAgIGxvZzogZnVuY3Rpb24gKCkgeworICAgICAgICAg
ICAgbGV0IGN1cnJlbnRMb2cgPSBsb2c7IGxvZyA9IFtdOworICAgICAgICAgICAgcmV0dXJuIHsK
KyAgICAgICAgICAgICAgICB0eXBlczogKCkgPT4gY3VycmVudExvZy5tYXAoKGVudHJ5KSA9PiBl
bnRyeS50eXBlKSwKKyAgICAgICAgICAgICAgICBsb2c6IChpKSA9PiBjdXJyZW50TG9nW2kgPT0g
dW5kZWZpbmVkID8gY3VycmVudExvZy5sZW5ndGggLSAxIDogaV0sCisgICAgICAgICAgICB9Cisg
ICAgICAgIH0KKyAgICB9OworfQorCitmdW5jdGlvbiBhc3NlcnRfYXR0cmlidXRlX2xvZ19lbnRy
eShsb2csIGV4cGVjdGVkKSB7CisgICAgYXNzZXJ0X2VxdWFscyhsb2cubmFtZSwgZXhwZWN0ZWQu
bmFtZSk7CisgICAgYXNzZXJ0X2VxdWFscyhsb2cub2xkVmFsdWUsIGV4cGVjdGVkLm9sZFZhbHVl
KTsKKyAgICBhc3NlcnRfZXF1YWxzKGxvZy5uZXdWYWx1ZSwgZXhwZWN0ZWQubmV3VmFsdWUpOwor
ICAgIGFzc2VydF9lcXVhbHMobG9nLm5hbWVzcGFjZSwgZXhwZWN0ZWQubmFtZXNwYWNlKTsKK30K
KworZnVuY3Rpb24gdGVzdE5vZGVDb25uZWN0b3IodGVzdEZ1bmN0aW9uLCBuYW1lKSB7CisgICAg
bGV0IGNvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgIGNvbnRh
aW5lci5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSk7CisgICAgZG9j
dW1lbnQuYm9keS5hcHBlbmRDaGlsZChjb250YWluZXIpOworCisgICAgdGVzdChmdW5jdGlvbiAo
KSB7CisgICAgICAgIHZhciBlbGVtZW50ID0gZGVmaW5lTmV3Q3VzdG9tRWxlbWVudCgpOworICAg
ICAgICB2YXIgaW5zdGFuY2UgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KGVsZW1lbnQubmFtZSk7
CisgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoZWxlbWVudC5sb2coKS50eXBlcygpLCBbJ2Nv
bnN0cnVjdGVkJ10pOworICAgICAgICB0ZXN0RnVuY3Rpb24oY29udGFpbmVyLCBpbnN0YW5jZSk7
CisgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoZWxlbWVudC5sb2coKS50eXBlcygpLCBbJ2Nv
bm5lY3RlZCddKTsKKyAgICB9LCBuYW1lICsgJyBtdXN0IGVucXVldWUgYSBjb25uZWN0ZWQgcmVh
Y3Rpb24nKTsKKworICAgIHRlc3QoZnVuY3Rpb24gKCkgeworICAgICAgICB2YXIgZWxlbWVudCA9
IGRlZmluZU5ld0N1c3RvbUVsZW1lbnQoKTsKKyAgICAgICAgdmFyIGluc3RhbmNlID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudChlbGVtZW50Lm5hbWUpOworICAgICAgICBhc3NlcnRfYXJyYXlfZXF1
YWxzKGVsZW1lbnQubG9nKCkudHlwZXMoKSwgWydjb25zdHJ1Y3RlZCddKTsKKyAgICAgICAgdmFy
IG5ld0RvYyA9IGRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZUhUTUxEb2N1bWVudCgpOwor
ICAgICAgICB0ZXN0RnVuY3Rpb24oY29udGFpbmVyLCBpbnN0YW5jZSk7CisgICAgICAgIGFzc2Vy
dF9hcnJheV9lcXVhbHMoZWxlbWVudC5sb2coKS50eXBlcygpLCBbJ2Nvbm5lY3RlZCddKTsKKyAg
ICAgICAgdGVzdEZ1bmN0aW9uKG5ld0RvYy5kb2N1bWVudEVsZW1lbnQsIGluc3RhbmNlKTsKKyAg
ICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhlbGVtZW50LmxvZygpLnR5cGVzKCksIFsnZGlzY29u
bmVjdGVkJywgJ2Fkb3B0ZWQnLCAnY29ubmVjdGVkJ10pOworICAgIH0sIG5hbWUgKyAnIG11c3Qg
ZW5xdWV1ZSBhIGRpc2Nvbm5lY3RlZCByZWFjdGlvbiwgYW4gYWRvcHRlZCByZWFjdGlvbiwgYW5k
IGEgY29ubmVjdGVkIHJlYWN0aW9uIHdoZW4gdGhlIGN1c3RvbSBlbGVtZW50IHdhcyBpbiBhbm90
aGVyIGRvY3VtZW50Jyk7CisKKyAgICBjb250YWluZXIucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChj
b250YWluZXIpOworfQorCitmdW5jdGlvbiB0ZXN0Tm9kZURpc2Nvbm5lY3Rvcih0ZXN0RnVuY3Rp
b24sIG5hbWUpIHsKKyAgICBsZXQgY29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgn
ZGl2Jyk7CisgICAgY29udGFpbmVyLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
J2RpdicpKTsKKyAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGNvbnRhaW5lcik7CisgCisg
ICAgdGVzdChmdW5jdGlvbiAoKSB7CisgICAgICAgIHZhciBlbGVtZW50ID0gZGVmaW5lTmV3Q3Vz
dG9tRWxlbWVudCgpOworICAgICAgICB2YXIgaW5zdGFuY2UgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KGVsZW1lbnQubmFtZSk7CisgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoZWxlbWVudC5s
b2coKS50eXBlcygpLCBbJ2NvbnN0cnVjdGVkJ10pOworICAgICAgICBjb250YWluZXIuYXBwZW5k
Q2hpbGQoaW5zdGFuY2UpOworICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGVsZW1lbnQubG9n
KCkudHlwZXMoKSwgWydjb25uZWN0ZWQnXSk7CisgICAgICAgIHRlc3RGdW5jdGlvbihpbnN0YW5j
ZSk7CisgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoZWxlbWVudC5sb2coKS50eXBlcygpLCBb
J2Rpc2Nvbm5lY3RlZCddKTsKKyAgICB9LCBuYW1lICsgJyBtdXN0IGVucXVldWUgYSBkaXNjb25u
ZWN0ZWQgcmVhY3Rpb24nKTsKKworICAgIGNvbnRhaW5lci5wYXJlbnROb2RlLnJlbW92ZUNoaWxk
KGNvbnRhaW5lcik7Cit9CisKK2Z1bmN0aW9uIHRlc3RDbG9uZXIodGVzdEZ1bmN0aW9uLCBuYW1l
KSB7CisgICAgbGV0IGNvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwor
ICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSk7
CisgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChjb250YWluZXIpOworCisgICAgdGVzdChm
dW5jdGlvbiAoKSB7CisgICAgICAgIHZhciBlbGVtZW50ID0gZGVmaW5lTmV3Q3VzdG9tRWxlbWVu
dChbJ2lkJ10pOworICAgICAgICB2YXIgaW5zdGFuY2UgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KGVsZW1lbnQubmFtZSk7CisgICAgICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZChpbnN0YW5jZSk7
CisKKyAgICAgICAgaW5zdGFuY2Uuc2V0QXR0cmlidXRlKCdpZCcsICdmb28nKTsKKyAgICAgICAg
YXNzZXJ0X2FycmF5X2VxdWFscyhlbGVtZW50LmxvZygpLnR5cGVzKCksIFsnY29uc3RydWN0ZWQn
LCAnY29ubmVjdGVkJywgJ2F0dHJpYnV0ZUNoYW5nZWQnXSk7CisgICAgICAgIHZhciBuZXdJbnN0
YW5jZSA9IHRlc3RGdW5jdGlvbihpbnN0YW5jZSk7CisgICAgICAgIHZhciBsb2dFbnRyaWVzID0g
ZWxlbWVudC5sb2coKTsKKyAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2dFbnRyaWVzLnR5
cGVzKCksIFsnY29uc3RydWN0ZWQnLCAnYXR0cmlidXRlQ2hhbmdlZCddKTsKKyAgICAgICAgYXNz
ZXJ0X2F0dHJpYnV0ZV9sb2dfZW50cnkobG9nRW50cmllcy5sb2coKSwge25hbWU6ICdpZCcsIG9s
ZFZhbHVlOiBudWxsLCBuZXdWYWx1ZTogJ2ZvbycsIG5hbWVzcGFjZTogbnVsbH0pOworICAgIH0s
IG5hbWUgKyAnIG11c3QgZW5xdWV1ZSBhbiBhdHRyaWJ1dGVDaGFuZ2VkIHJlYWN0aW9uIHdoZW4g
Y2xvbmluZyBhbiBlbGVtZW50IHdpdGggYW4gb2JzZXJ2ZWQgYXR0cmlidXRlJyk7CisKKyAgICB0
ZXN0KGZ1bmN0aW9uICgpIHsKKyAgICAgICAgdmFyIGVsZW1lbnQgPSBkZWZpbmVOZXdDdXN0b21F
bGVtZW50KFsnaWQnXSk7CisgICAgICAgIHZhciBpbnN0YW5jZSA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoZWxlbWVudC5uYW1lKTsKKyAgICAgICAgY29udGFpbmVyLmFwcGVuZENoaWxkKGluc3Rh
bmNlKTsKKworICAgICAgICBpbnN0YW5jZS5zZXRBdHRyaWJ1dGUoJ2xhbmcnLCAnZW4nKTsKKyAg
ICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhlbGVtZW50LmxvZygpLnR5cGVzKCksIFsnY29uc3Ry
dWN0ZWQnLCAnY29ubmVjdGVkJ10pOworICAgICAgICB2YXIgbmV3SW5zdGFuY2UgPSB0ZXN0RnVu
Y3Rpb24oaW5zdGFuY2UpOworICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGVsZW1lbnQubG9n
KCkudHlwZXMoKSwgWydjb25zdHJ1Y3RlZCddKTsKKyAgICB9LCBuYW1lICsgJyBtdXN0IG5vdCBl
bnF1ZXVlIGFuIGF0dHJpYnV0ZUNoYW5nZWQgcmVhY3Rpb24gd2hlbiBjbG9uaW5nIGFuIGVsZW1l
bnQgd2l0aCBhbiB1bm9ic2VydmVkIGF0dHJpYnV0ZScpOworCisgICAgdGVzdChmdW5jdGlvbiAo
KSB7CisgICAgICAgIHZhciBlbGVtZW50ID0gZGVmaW5lTmV3Q3VzdG9tRWxlbWVudChbJ3RpdGxl
JywgJ2NsYXNzJ10pOworICAgICAgICB2YXIgaW5zdGFuY2UgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KGVsZW1lbnQubmFtZSk7CisgICAgICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZChpbnN0YW5j
ZSk7CisKKyAgICAgICAgaW5zdGFuY2Uuc2V0QXR0cmlidXRlKCdsYW5nJywgJ2VuJyk7CisgICAg
ICAgIGluc3RhbmNlLmNsYXNzTmFtZSA9ICdmb28nOworICAgICAgICBpbnN0YW5jZS5zZXRBdHRy
aWJ1dGUoJ3RpdGxlJywgJ2hlbGxvIHdvcmxkJyk7CisgICAgICAgIGFzc2VydF9hcnJheV9lcXVh
bHMoZWxlbWVudC5sb2coKS50eXBlcygpLCBbJ2NvbnN0cnVjdGVkJywgJ2Nvbm5lY3RlZCcsICdh
dHRyaWJ1dGVDaGFuZ2VkJywgJ2F0dHJpYnV0ZUNoYW5nZWQnXSk7CisgICAgICAgIHZhciBuZXdJ
bnN0YW5jZSA9IHRlc3RGdW5jdGlvbihpbnN0YW5jZSk7CisgICAgICAgIHZhciBsb2dFbnRyaWVz
ID0gZWxlbWVudC5sb2coKTsKKyAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2dFbnRyaWVz
LnR5cGVzKCksIFsnY29uc3RydWN0ZWQnLCAnYXR0cmlidXRlQ2hhbmdlZCcsICdhdHRyaWJ1dGVD
aGFuZ2VkJ10pOworICAgICAgICBhc3NlcnRfYXR0cmlidXRlX2xvZ19lbnRyeShsb2dFbnRyaWVz
LmxvZygxKSwge25hbWU6ICdjbGFzcycsIG9sZFZhbHVlOiBudWxsLCBuZXdWYWx1ZTogJ2Zvbycs
IG5hbWVzcGFjZTogbnVsbH0pOworICAgICAgICBhc3NlcnRfYXR0cmlidXRlX2xvZ19lbnRyeShs
b2dFbnRyaWVzLmxvZygyKSwge25hbWU6ICd0aXRsZScsIG9sZFZhbHVlOiBudWxsLCBuZXdWYWx1
ZTogJ2hlbGxvIHdvcmxkJywgbmFtZXNwYWNlOiBudWxsfSk7CisgICAgfSwgbmFtZSArICcgbXVz
dCBlbnF1ZXVlIGFuIGF0dHJpYnV0ZUNoYW5nZWQgcmVhY3Rpb24gd2hlbiBjbG9uaW5nIGFuIGVs
ZW1lbnQgb25seSBmb3Igb2JzZXJ2ZWQgYXR0cmlidXRlcycpOworfQorCitmdW5jdGlvbiB0ZXN0
UmVmbGVjdEF0dHJpYnV0ZShqc0F0dHJpYnV0ZU5hbWUsIGNvbnRlbnRBdHRyaWJ1dGVOYW1lLCB2
YWxpZFZhbHVlMSwgdmFsaWRWYWx1ZTIsIG5hbWUpIHsKKyAgICB0ZXN0KGZ1bmN0aW9uICgpIHsK
KyAgICAgICAgdmFyIGVsZW1lbnQgPSBkZWZpbmVOZXdDdXN0b21FbGVtZW50KFtjb250ZW50QXR0
cmlidXRlTmFtZV0pOworICAgICAgICB2YXIgaW5zdGFuY2UgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KGVsZW1lbnQubmFtZSk7CisgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoZWxlbWVudC5s
b2coKS50eXBlcygpLCBbJ2NvbnN0cnVjdGVkJ10pOworICAgICAgICBpbnN0YW5jZVtqc0F0dHJp
YnV0ZU5hbWVdID0gdmFsaWRWYWx1ZTE7CisgICAgICAgIHZhciBsb2dFbnRyaWVzID0gZWxlbWVu
dC5sb2coKTsKKyAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2dFbnRyaWVzLnR5cGVzKCks
IFsnYXR0cmlidXRlQ2hhbmdlZCddKTsKKyAgICAgICAgYXNzZXJ0X2F0dHJpYnV0ZV9sb2dfZW50
cnkobG9nRW50cmllcy5sb2coKSwge25hbWU6IGNvbnRlbnRBdHRyaWJ1dGVOYW1lLCBvbGRWYWx1
ZTogbnVsbCwgbmV3VmFsdWU6IHZhbGlkVmFsdWUxLCBuYW1lc3BhY2U6IG51bGx9KTsKKyAgICB9
LCBuYW1lICsgJyBtdXN0IGVucXVldWUgYW4gYXR0cmlidXRlQ2hhbmdlZCByZWFjdGlvbiB3aGVu
IGFkZGluZyAnICsgY29udGVudEF0dHJpYnV0ZU5hbWUgKyAnIGNvbnRlbnQgYXR0cmlidXRlJyk7
CisKKyAgICB0ZXN0KGZ1bmN0aW9uICgpIHsKKyAgICAgICAgdmFyIGVsZW1lbnQgPSBkZWZpbmVO
ZXdDdXN0b21FbGVtZW50KFtjb250ZW50QXR0cmlidXRlTmFtZV0pOworICAgICAgICB2YXIgaW5z
dGFuY2UgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KGVsZW1lbnQubmFtZSk7CisgICAgICAgIGlu
c3RhbmNlW2pzQXR0cmlidXRlTmFtZV0gPSB2YWxpZFZhbHVlMTsKKyAgICAgICAgYXNzZXJ0X2Fy
cmF5X2VxdWFscyhlbGVtZW50LmxvZygpLnR5cGVzKCksIFsnY29uc3RydWN0ZWQnLCAnYXR0cmli
dXRlQ2hhbmdlZCddKTsKKyAgICAgICAgaW5zdGFuY2VbanNBdHRyaWJ1dGVOYW1lXSA9IHZhbGlk
VmFsdWUyOworICAgICAgICB2YXIgbG9nRW50cmllcyA9IGVsZW1lbnQubG9nKCk7CisgICAgICAg
IGFzc2VydF9hcnJheV9lcXVhbHMobG9nRW50cmllcy50eXBlcygpLCBbJ2F0dHJpYnV0ZUNoYW5n
ZWQnXSk7CisgICAgICAgIGFzc2VydF9hdHRyaWJ1dGVfbG9nX2VudHJ5KGxvZ0VudHJpZXMubG9n
KCksIHtuYW1lOiBjb250ZW50QXR0cmlidXRlTmFtZSwgb2xkVmFsdWU6IHZhbGlkVmFsdWUxLCBu
ZXdWYWx1ZTogdmFsaWRWYWx1ZTIsIG5hbWVzcGFjZTogbnVsbH0pOworICAgIH0sIG5hbWUgKyAn
IG11c3QgZW5xdWV1ZSBhbiBhdHRyaWJ1dGVDaGFuZ2VkIHJlYWN0aW9uIHdoZW4gcmVwbGFjaW5n
IGFuIGV4aXN0aW5nIGF0dHJpYnV0ZScpOworfQorCitmdW5jdGlvbiB0ZXN0QXR0cmlidXRlQWRk
ZXIodGVzdEZ1bmN0aW9uLCBuYW1lKSB7CisgICAgdGVzdChmdW5jdGlvbiAoKSB7CisgICAgICAg
IHZhciBlbGVtZW50ID0gZGVmaW5lTmV3Q3VzdG9tRWxlbWVudChbJ2lkJ10pOworICAgICAgICB2
YXIgaW5zdGFuY2UgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KGVsZW1lbnQubmFtZSk7CisgICAg
ICAgIGFzc2VydF9hcnJheV9lcXVhbHMoZWxlbWVudC5sb2coKS50eXBlcygpLCBbJ2NvbnN0cnVj
dGVkJ10pOworICAgICAgICB0ZXN0RnVuY3Rpb24oaW5zdGFuY2UsICdpZCcsICdmb28nKTsKKyAg
ICAgICAgdmFyIGxvZ0VudHJpZXMgPSBlbGVtZW50LmxvZygpOworICAgICAgICBhc3NlcnRfYXJy
YXlfZXF1YWxzKGxvZ0VudHJpZXMudHlwZXMoKSwgWydhdHRyaWJ1dGVDaGFuZ2VkJ10pOworICAg
ICAgICBhc3NlcnRfYXR0cmlidXRlX2xvZ19lbnRyeShsb2dFbnRyaWVzLmxvZygpLCB7bmFtZTog
J2lkJywgb2xkVmFsdWU6IG51bGwsIG5ld1ZhbHVlOiAnZm9vJywgbmFtZXNwYWNlOiBudWxsfSk7
CisgICAgfSwgbmFtZSArICcgbXVzdCBlbnF1ZXVlIGFuIGF0dHJpYnV0ZUNoYW5nZWQgcmVhY3Rp
b24gd2hlbiBhZGRpbmcgYW4gYXR0cmlidXRlJyk7CisKKyAgICB0ZXN0KGZ1bmN0aW9uICgpIHsK
KyAgICAgICAgdmFyIGVsZW1lbnQgPSBkZWZpbmVOZXdDdXN0b21FbGVtZW50KFsnY2xhc3MnXSk7
CisgICAgICAgIHZhciBpbnN0YW5jZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoZWxlbWVudC5u
YW1lKTsKKyAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhlbGVtZW50LmxvZygpLnR5cGVzKCks
IFsnY29uc3RydWN0ZWQnXSk7CisgICAgICAgIHRlc3RGdW5jdGlvbihpbnN0YW5jZSwgJ2RhdGEt
bGFuZycsICdlbicpOworICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGVsZW1lbnQubG9nKCku
dHlwZXMoKSwgW10pOworICAgIH0sIG5hbWUgKyAnIG11c3Qgbm90IGVucXVldWUgYW4gYXR0cmli
dXRlQ2hhbmdlZCByZWFjdGlvbiB3aGVuIGFkZGluZyBhbiB1bm9ic2VydmVkIGF0dHJpYnV0ZScp
OworCisgICAgdGVzdChmdW5jdGlvbiAoKSB7CisgICAgICAgIHZhciBlbGVtZW50ID0gZGVmaW5l
TmV3Q3VzdG9tRWxlbWVudChbJ3RpdGxlJ10pOworICAgICAgICB2YXIgaW5zdGFuY2UgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KGVsZW1lbnQubmFtZSk7CisgICAgICAgIGluc3RhbmNlLnNldEF0
dHJpYnV0ZSgndGl0bGUnLCAnaGVsbG8nKTsKKyAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhl
bGVtZW50LmxvZygpLnR5cGVzKCksIFsnY29uc3RydWN0ZWQnLCAnYXR0cmlidXRlQ2hhbmdlZCdd
KTsKKyAgICAgICAgdGVzdEZ1bmN0aW9uKGluc3RhbmNlLCAndGl0bGUnLCAnd29ybGQnKTsKKyAg
ICAgICAgdmFyIGxvZ0VudHJpZXMgPSBlbGVtZW50LmxvZygpOworICAgICAgICBhc3NlcnRfYXJy
YXlfZXF1YWxzKGxvZ0VudHJpZXMudHlwZXMoKSwgWydhdHRyaWJ1dGVDaGFuZ2VkJ10pOworICAg
ICAgICBhc3NlcnRfYXR0cmlidXRlX2xvZ19lbnRyeShsb2dFbnRyaWVzLmxvZygpLCB7bmFtZTog
J3RpdGxlJywgb2xkVmFsdWU6ICdoZWxsbycsIG5ld1ZhbHVlOiAnd29ybGQnLCBuYW1lc3BhY2U6
IG51bGx9KTsKKyAgICB9LCBuYW1lICsgJyBtdXN0IGVucXVldWUgYW4gYXR0cmlidXRlQ2hhbmdl
ZCByZWFjdGlvbiB3aGVuIHJlcGxhY2luZyBhbiBleGlzdGluZyBhdHRyaWJ1dGUnKTsKKworICAg
IHRlc3QoZnVuY3Rpb24gKCkgeworICAgICAgICB2YXIgZWxlbWVudCA9IGRlZmluZU5ld0N1c3Rv
bUVsZW1lbnQoW10pOworICAgICAgICB2YXIgaW5zdGFuY2UgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KGVsZW1lbnQubmFtZSk7CisgICAgICAgIGluc3RhbmNlLnNldEF0dHJpYnV0ZSgnZGF0YS1s
YW5nJywgJ3poJyk7CisgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoZWxlbWVudC5sb2coKS50
eXBlcygpLCBbJ2NvbnN0cnVjdGVkJ10pOworICAgICAgICB0ZXN0RnVuY3Rpb24oaW5zdGFuY2Us
ICdkYXRhLWxhbmcnLCAnZW4nKTsKKyAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhlbGVtZW50
LmxvZygpLnR5cGVzKCksIFtdKTsKKyAgICB9LCBuYW1lICsgJyBtdXN0IGVucXVldWUgYW4gYXR0
cmlidXRlQ2hhbmdlZCByZWFjdGlvbiB3aGVuIHJlcGxhY2luZyBhbiBleGlzdGluZyB1bm9ic2Vy
dmVkIGF0dHJpYnV0ZScpOworfQorCitmdW5jdGlvbiB0ZXN0QXR0cmlidXRlTXV0YXRvcih0ZXN0
RnVuY3Rpb24sIG5hbWUpIHsKKyAgICB0ZXN0KGZ1bmN0aW9uICgpIHsKKyAgICAgICAgdmFyIGVs
ZW1lbnQgPSBkZWZpbmVOZXdDdXN0b21FbGVtZW50KFsndGl0bGUnXSk7CisgICAgICAgIHZhciBp
bnN0YW5jZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoZWxlbWVudC5uYW1lKTsKKyAgICAgICAg
aW5zdGFuY2Uuc2V0QXR0cmlidXRlKCd0aXRsZScsICdoZWxsbycpOworICAgICAgICBhc3NlcnRf
YXJyYXlfZXF1YWxzKGVsZW1lbnQubG9nKCkudHlwZXMoKSwgWydjb25zdHJ1Y3RlZCcsICdhdHRy
aWJ1dGVDaGFuZ2VkJ10pOworICAgICAgICB0ZXN0RnVuY3Rpb24oaW5zdGFuY2UsICd0aXRsZScs
ICd3b3JsZCcpOworICAgICAgICB2YXIgbG9nRW50cmllcyA9IGVsZW1lbnQubG9nKCk7CisgICAg
ICAgIGFzc2VydF9hcnJheV9lcXVhbHMobG9nRW50cmllcy50eXBlcygpLCBbJ2F0dHJpYnV0ZUNo
YW5nZWQnXSk7CisgICAgICAgIGFzc2VydF9hdHRyaWJ1dGVfbG9nX2VudHJ5KGxvZ0VudHJpZXMu
bG9nKCksIHtuYW1lOiAndGl0bGUnLCBvbGRWYWx1ZTogJ2hlbGxvJywgbmV3VmFsdWU6ICd3b3Js
ZCcsIG5hbWVzcGFjZTogbnVsbH0pOworICAgIH0sIG5hbWUgKyAnIG11c3QgZW5xdWV1ZSBhbiBh
dHRyaWJ1dGVDaGFuZ2VkIHJlYWN0aW9uIHdoZW4gcmVwbGFjaW5nIGFuIGV4aXN0aW5nIGF0dHJp
YnV0ZScpOworCisgICAgdGVzdChmdW5jdGlvbiAoKSB7CisgICAgICAgIHZhciBlbGVtZW50ID0g
ZGVmaW5lTmV3Q3VzdG9tRWxlbWVudChbJ2NsYXNzJ10pOworICAgICAgICB2YXIgaW5zdGFuY2Ug
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KGVsZW1lbnQubmFtZSk7CisgICAgICAgIGluc3RhbmNl
LnNldEF0dHJpYnV0ZSgnZGF0YS1sYW5nJywgJ3poJyk7CisgICAgICAgIGFzc2VydF9hcnJheV9l
cXVhbHMoZWxlbWVudC5sb2coKS50eXBlcygpLCBbJ2NvbnN0cnVjdGVkJ10pOworICAgICAgICB0
ZXN0RnVuY3Rpb24oaW5zdGFuY2UsICdkYXRhLWxhbmcnLCAnZW4nKTsKKyAgICAgICAgYXNzZXJ0
X2FycmF5X2VxdWFscyhlbGVtZW50LmxvZygpLnR5cGVzKCksIFtdKTsKKyAgICB9LCBuYW1lICsg
JyBtdXN0IG5vdCBlbnF1ZXVlIGFuIGF0dHJpYnV0ZUNoYW5nZWQgcmVhY3Rpb24gd2hlbiByZXBs
YWNpbmcgYW4gZXhpc3RpbmcgdW5vYnNlcnZlZCBhdHRyaWJ1dGUnKTsKK30KKworZnVuY3Rpb24g
dGVzdEF0dHJpYnV0ZVJlbW92ZXIodGVzdEZ1bmN0aW9uLCBuYW1lKSB7CisgICAgdGVzdChmdW5j
dGlvbiAoKSB7CisgICAgICAgIHZhciBlbGVtZW50ID0gZGVmaW5lTmV3Q3VzdG9tRWxlbWVudChb
J3RpdGxlJ10pOworICAgICAgICB2YXIgaW5zdGFuY2UgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KGVsZW1lbnQubmFtZSk7CisgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoZWxlbWVudC5sb2co
KS50eXBlcygpLCBbJ2NvbnN0cnVjdGVkJ10pOworICAgICAgICB0ZXN0RnVuY3Rpb24oaW5zdGFu
Y2UsICd0aXRsZScpOworICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGVsZW1lbnQubG9nKCku
dHlwZXMoKSwgW10pOworICAgIH0sIG5hbWUgKyAnIG11c3Qgbm90IGVucXVldWUgYW4gYXR0cmli
dXRlQ2hhbmdlZCByZWFjdGlvbiB3aGVuIHJlbW92aW5nIGFuIGF0dHJpYnV0ZSB0aGF0IGRvZXMg
bm90IGV4aXN0Jyk7CisKKyAgICB0ZXN0KGZ1bmN0aW9uICgpIHsKKyAgICAgICAgdmFyIGVsZW1l
bnQgPSBkZWZpbmVOZXdDdXN0b21FbGVtZW50KFtdKTsKKyAgICAgICAgdmFyIGluc3RhbmNlID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChlbGVtZW50Lm5hbWUpOworICAgICAgICBpbnN0YW5jZS5z
ZXRBdHRyaWJ1dGUoJ2RhdGEtbGFuZycsICdoZWxsbycpOworICAgICAgICBhc3NlcnRfYXJyYXlf
ZXF1YWxzKGVsZW1lbnQubG9nKCkudHlwZXMoKSwgWydjb25zdHJ1Y3RlZCddKTsKKyAgICAgICAg
dGVzdEZ1bmN0aW9uKGluc3RhbmNlLCAnZGF0YS1sYW5nJyk7CisgICAgICAgIGFzc2VydF9hcnJh
eV9lcXVhbHMoZWxlbWVudC5sb2coKS50eXBlcygpLCBbXSk7CisgICAgfSwgbmFtZSArICcgbXVz
dCBub3QgZW5xdWV1ZSBhbiBhdHRyaWJ1dGVDaGFuZ2VkIHJlYWN0aW9uIHdoZW4gcmVtb3Zpbmcg
YW4gdW5vYnNlcnZlZCBhdHRyaWJ1dGUnKTsKKworICAgIHRlc3QoZnVuY3Rpb24gKCkgeworICAg
ICAgICB2YXIgZWxlbWVudCA9IGRlZmluZU5ld0N1c3RvbUVsZW1lbnQoWyd0aXRsZSddKTsKKyAg
ICAgICAgdmFyIGluc3RhbmNlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChlbGVtZW50Lm5hbWUp
OworICAgICAgICBpbnN0YW5jZS5zZXRBdHRyaWJ1dGUoJ3RpdGxlJywgJ2hlbGxvJyk7CisgICAg
ICAgIGFzc2VydF9hcnJheV9lcXVhbHMoZWxlbWVudC5sb2coKS50eXBlcygpLCBbJ2NvbnN0cnVj
dGVkJywgJ2F0dHJpYnV0ZUNoYW5nZWQnXSk7CisgICAgICAgIHRlc3RGdW5jdGlvbihpbnN0YW5j
ZSwgJ3RpdGxlJyk7CisgICAgICAgIHZhciBsb2dFbnRyaWVzID0gZWxlbWVudC5sb2coKTsKKyAg
ICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2dFbnRyaWVzLnR5cGVzKCksIFsnYXR0cmlidXRl
Q2hhbmdlZCddKTsKKyAgICAgICAgYXNzZXJ0X2F0dHJpYnV0ZV9sb2dfZW50cnkobG9nRW50cmll
cy5sb2coKSwge25hbWU6ICd0aXRsZScsIG9sZFZhbHVlOiAnaGVsbG8nLCBuZXdWYWx1ZTogbnVs
bCwgbmFtZXNwYWNlOiBudWxsfSk7CisgICAgfSwgbmFtZSArICcgbXVzdCBlbnF1ZXVlIGFuIGF0
dHJpYnV0ZUNoYW5nZWQgcmVhY3Rpb24gd2hlbiByZW1vdmluZyBhbiBleGlzdGluZyBhdHRyaWJ1
dGUnKTsKKworICAgIHRlc3QoZnVuY3Rpb24gKCkgeworICAgICAgICB2YXIgZWxlbWVudCA9IGRl
ZmluZU5ld0N1c3RvbUVsZW1lbnQoW10pOworICAgICAgICB2YXIgaW5zdGFuY2UgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KGVsZW1lbnQubmFtZSk7CisgICAgICAgIGluc3RhbmNlLnNldEF0dHJp
YnV0ZSgnZGF0YS1sYW5nJywgJ2phJyk7CisgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoZWxl
bWVudC5sb2coKS50eXBlcygpLCBbJ2NvbnN0cnVjdGVkJ10pOworICAgICAgICB0ZXN0RnVuY3Rp
b24oaW5zdGFuY2UsICdkYXRhLWxhbmcnKTsKKyAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhl
bGVtZW50LmxvZygpLnR5cGVzKCksIFtdKTsKKyAgICB9LCBuYW1lICsgJyBtdXN0IG5vdCBlbnF1
ZXVlIGFuIGF0dHJpYnV0ZUNoYW5nZWQgcmVhY3Rpb24gd2hlbiByZW1vdmluZyBhbiBleGlzdGlu
ZyB1bm9ic2VydmVkIGF0dHJpYnV0ZScpOworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvcmVhY3Rpb25zL3Jl
c291cmNlcy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL3JlYWN0aW9ucy9yZXNvdXJjZXMvdzNjLWltcG9y
dC5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZTkwOTEwYjVhNGQ5YjNiMjkxNDMyODQ1MDkyNzQ5N2QzY2I4NDFk
NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL3JlYWN0aW9ucy9yZXNvdXJjZXMvdzNjLWltcG9ydC5s
b2cKQEAgLTAsMCArMSwxOCBAQAorVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1w
b3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3Rz
IGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0
aGUgVzNDIENTUyBvciBXUFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0aHViLmNvbS93M2MvY3Nzd2ct
dGVzdAorCWh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzCisKK1RoZW4g
cnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1w
b3J0CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KKworLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCitQcm9wZXJ0
eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKKy0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQorTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2N1c3RvbS1lbGVtZW50cy9yZWFjdGlvbnMvcmVzb3VyY2VzL3JlYWN0aW9ucy5qcwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
dXN0b20tZWxlbWVudHMvcmVhY3Rpb25zL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvcmVhY3Rpb25zL3cz
Yy1pbXBvcnQubG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVmMDE2Yjk3ZTgzYTRlNjBmOTRjOTgyOGQ2MWRkMjJm
OTBjYWI5YjgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9yZWFjdGlvbnMvdzNjLWltcG9ydC5sb2cK
QEAgLTAsMCArMSwyNiBAQAorVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0
ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRp
cmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUg
VzNDIENTUyBvciBXUFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0aHViLmNvbS93M2MvY3Nzd2ctdGVz
dAorCWh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzCisKK1RoZW4gcnVu
IHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0
CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KKworLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCitQcm9wZXJ0eSB2
YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKKy0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor
TGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2N1c3RvbS1lbGVtZW50cy9yZWFjdGlvbnMvQXR0ci5odG1sCisvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvcmVhY3Rpb25zL0No
aWxkTm9kZS5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jdXN0b20tZWxlbWVudHMvcmVhY3Rpb25zL0RPTVRva2VuTGlzdC5odG1sCisvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvcmVhY3Rp
b25zL0RvY3VtZW50Lmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2N1c3RvbS1lbGVtZW50cy9yZWFjdGlvbnMvRWxlbWVudC5odG1sCisvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvcmVhY3Rp
b25zL05hbWVkTm9kZU1hcC5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvcmVhY3Rpb25zL05vZGUuaHRtbAorL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL3JlYWN0
aW9ucy9QYXJlbnROb2RlLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9yZWFjdGlvbnMvUmFuZ2UuaHRtbApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxl
bWVudHMvcmVzb3VyY2VzL2N1c3RvbS1lbGVtZW50cy1oZWxwZXJzLmpzIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvcmVzb3VyY2Vz
L2N1c3RvbS1lbGVtZW50cy1oZWxwZXJzLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBkZmJkNjM2M2IyMmVkMzZm
ZGY3YzkxMDZhZjNiMTljNWJmN2Q1MDMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9yZXNvdXJjZXMv
Y3VzdG9tLWVsZW1lbnRzLWhlbHBlcnMuanMKQEAgLTAsMCArMSwyMiBAQAorZnVuY3Rpb24gY3Jl
YXRlX3dpbmRvd19pbl90ZXN0KHQsIHNyY2RvYykgeworICBsZXQgcCA9IG5ldyBQcm9taXNlKChy
ZXNvbHZlKSA9PiB7CisgICAgbGV0IGYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpZnJhbWUn
KTsKKyAgICBmLnNyY2RvYyA9IHNyY2RvYyA/IHNyY2RvYyA6ICcnOworICAgIGYub25sb2FkID0g
KGV2ZW50KSA9PiB7CisgICAgICBsZXQgdyA9IGYuY29udGVudFdpbmRvdzsKKyAgICAgIHQuYWRk
X2NsZWFudXAoKCkgPT4gZi5wYXJlbnROb2RlICYmIGYucmVtb3ZlKCkpOworICAgICAgcmVzb2x2
ZSh3KTsKKyAgICB9OworICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZik7CisgIH0pOwor
ICByZXR1cm4gcDsKK30KKworZnVuY3Rpb24gdGVzdF93aXRoX3dpbmRvdyhmLCBuYW1lLCBzcmNk
b2MpIHsKKyAgcHJvbWlzZV90ZXN0KCh0KSA9PiB7CisgICAgcmV0dXJuIGNyZWF0ZV93aW5kb3df
aW5fdGVzdCh0LCBzcmNkb2MpCisgICAgLnRoZW4oKHcpID0+IHsKKyAgICAgIGYodyk7CisgICAg
fSk7CisgIH0sIG5hbWUpOworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvcmVzb3VyY2VzL2RvY3VtZW50LXR5
cGVzLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0
b20tZWxlbWVudHMvcmVzb3VyY2VzL2RvY3VtZW50LXR5cGVzLmpzCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU1Mjg0
ZDViMTMyZDBhNDQwMjY2M2VjMDQ5NTcxZTYxNjhjOWFiZmYKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50
cy9yZXNvdXJjZXMvZG9jdW1lbnQtdHlwZXMuanMKQEAgLTAsMCArMSw4MyBAQAorY29uc3QgRG9j
dW1lbnRUeXBlcyA9IFsKKyAgICB7CisgICAgICAgIG5hbWU6ICdkb2N1bWVudCcsCisgICAgICAg
IGNyZWF0ZTogZnVuY3Rpb24gKCkgeyByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGRvY3VtZW50KTsg
fSwKKyAgICAgICAgaXNPd25lcjogdHJ1ZSwKKyAgICAgICAgaGFzQnJvd3NpbmdDb250ZXh0OiB0
cnVlLAorICAgIH0sCisgICAgeworICAgICAgICBuYW1lOiAnZG9jdW1lbnQgb2YgYSB0ZW1wbGF0
ZSBlbGVtZW50JywKKyAgICAgICAgY3JlYXRlOiBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICBy
ZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUpIHsKKyAgICAgICAgICAgICAgICB2
YXIgdGVtcGxhdGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoJ2h0dHA6Ly93d3cudzMub3Jn
LzE5OTkveGh0bWwnLCAndGVtcGxhdGUnKTsKKyAgICAgICAgICAgICAgICB2YXIgZG9jID0gdGVt
cGxhdGUuY29udGVudC5vd25lckRvY3VtZW50OworICAgICAgICAgICAgICAgIGlmICghZG9jLmRv
Y3VtZW50RWxlbWVudCkKKyAgICAgICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKGRvYy5j
cmVhdGVFbGVtZW50KCdodG1sJykpOworICAgICAgICAgICAgICAgIHJlc29sdmUoZG9jKTsKKyAg
ICAgICAgICAgIH0pOworICAgICAgICB9LAorICAgICAgICBoYXNCcm93c2luZ0NvbnRleHQ6IGZh
bHNlLAorICAgIH0sCisgICAgeworICAgICAgICBuYW1lOiAnbmV3IGRvY3VtZW50JywKKyAgICAg
ICAgY3JlYXRlOiBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2Uo
ZnVuY3Rpb24gKHJlc29sdmUpIHsKKyAgICAgICAgICAgICAgICB2YXIgZG9jID0gbmV3IERvY3Vt
ZW50KCk7CisgICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKGRvYy5jcmVhdGVFbGVtZW50
KCdodG1sJykpOworICAgICAgICAgICAgICAgIHJlc29sdmUoZG9jKTsKKyAgICAgICAgICAgIH0p
OworICAgICAgICB9LAorICAgICAgICBoYXNCcm93c2luZ0NvbnRleHQ6IGZhbHNlLAorICAgIH0s
CisgICAgeworICAgICAgICBuYW1lOiAnY2xvbmVkIGRvY3VtZW50JywKKyAgICAgICAgY3JlYXRl
OiBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24g
KHJlc29sdmUpIHsKKyAgICAgICAgICAgICAgICB2YXIgZG9jID0gZG9jdW1lbnQuY2xvbmVOb2Rl
KGZhbHNlKTsKKyAgICAgICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoZG9jLmNyZWF0ZUVsZW1l
bnQoJ2h0bWwnKSk7CisgICAgICAgICAgICAgICAgcmVzb2x2ZShkb2MpOworICAgICAgICAgICAg
fSk7CisgICAgICAgIH0sCisgICAgICAgIGhhc0Jyb3dzaW5nQ29udGV4dDogZmFsc2UsCisgICAg
fSwKKyAgICB7CisgICAgICAgIG5hbWU6ICdkb2N1bWVudCBjcmVhdGVkIGJ5IGNyZWF0ZUhUTUxE
b2N1bWVudCcsCisgICAgICAgIGNyZWF0ZTogZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgcmV0
dXJuIFByb21pc2UucmVzb2x2ZShkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9j
dW1lbnQoKSk7CisgICAgICAgIH0sCisgICAgICAgIGhhc0Jyb3dzaW5nQ29udGV4dDogZmFsc2Us
CisgICAgfSwKKyAgICB7CisgICAgICAgIG5hbWU6ICdIVE1MIGRvY3VtZW50IGNyZWF0ZWQgYnkg
Y3JlYXRlRG9jdW1lbnQnLAorICAgICAgICBjcmVhdGU6IGZ1bmN0aW9uICgpIHsKKyAgICAgICAg
ICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRl
RG9jdW1lbnQoJ2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnLCAnaHRtbCcsIG51bGwpKTsK
KyAgICAgICAgfSwKKyAgICAgICAgaGFzQnJvd3NpbmdDb250ZXh0OiBmYWxzZSwKKyAgICB9LAor
ICAgIHsKKyAgICAgICAgbmFtZTogJ2RvY3VtZW50IGluIGFuIGlmcmFtZScsCisgICAgICAgIGNy
ZWF0ZTogZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0
aW9uIChyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgICAgICAgICAgICB2YXIgaWZyYW1lID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgnaWZyYW1lJyk7CisgICAgICAgICAgICAgICAgaWZyYW1lLm9u
bG9hZCA9IGZ1bmN0aW9uICgpIHsgcmVzb2x2ZShpZnJhbWUuY29udGVudERvY3VtZW50KTsgfQor
ICAgICAgICAgICAgICAgIGlmcmFtZS5vbmVycm9yID0gZnVuY3Rpb24gKCkgeyByZWplY3QoJ0Zh
aWxlZCB0byBsb2FkIGFuIGVtcHR5IGlmcmFtZScpOyB9CisgICAgICAgICAgICAgICAgZG9jdW1l
bnQuYm9keS5hcHBlbmRDaGlsZChpZnJhbWUpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0s
CisgICAgICAgIGhhc0Jyb3dzaW5nQ29udGV4dDogdHJ1ZSwKKyAgICB9LAorICAgIHsKKyAgICAg
ICAgbmFtZTogJ0hUTUwgZG9jdW1lbnQgZmV0Y2hlZCBieSBYSFInLAorICAgICAgICBjcmVhdGU6
IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAo
cmVzb2x2ZSwgcmVqZWN0KSB7CisgICAgICAgICAgICAgICAgdmFyIHhociA9IG5ldyBYTUxIdHRw
UmVxdWVzdCgpOworICAgICAgICAgICAgICAgIHhoci5vcGVuKCdHRVQnLCAncmVzb3VyY2VzL2Vt
cHR5LWh0bWwtZG9jdW1lbnQuaHRtbCcpOworICAgICAgICAgICAgICAgIHhoci5vdmVycmlkZU1p
bWVUeXBlKCd0ZXh0L3htbCcpOworICAgICAgICAgICAgICAgIHhoci5vbmxvYWQgPSBmdW5jdGlv
biAoKSB7IHJlc29sdmUoeGhyLnJlc3BvbnNlWE1MKTsgfQorICAgICAgICAgICAgICAgIHhoci5v
bmVycm9yID0gZnVuY3Rpb24gKCkgeyByZWplY3QoJ0ZhaWxlZCB0byBmZXRjaCB0aGUgZG9jdW1l
bnQnKTsgfQorICAgICAgICAgICAgICAgIHhoci5zZW5kKCk7CisgICAgICAgICAgICB9KTsKKyAg
ICAgICAgfSwKKyAgICAgICAgaGFzQnJvd3NpbmdDb250ZXh0OiBmYWxzZSwKKyAgICB9CitdOwpc
IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL3Jlc291cmNlcy9lbXB0
eS1odG1sLWRvY3VtZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9yZXNvdXJjZXMvZW1wdHktaHRtbC1kb2N1bWVudC5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmVhY2EzZjQ5ZmQxNTg0MGEzNjg4YTEwYTkxYjU2NTI0NTY2ODkzYzUK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2N1c3RvbS1lbGVtZW50cy9yZXNvdXJjZXMvZW1wdHktaHRtbC1kb2N1bWVudC5odG1s
CkBAIC0wLDAgKzEsNSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvcmVzb3VyY2VzL3czYy1pbXBvcnQubG9nIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMv
cmVzb3VyY2VzL3czYy1pbXBvcnQubG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMwOTdiYTA1MjQ5MjVhNDUzMjAy
ODk3NTUxMzNjYjhlYjc1MTg3MDUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9yZXNvdXJjZXMvdzNj
LWltcG9ydC5sb2cKQEAgLTAsMCArMSwyMCBAQAorVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5
IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRo
ZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVx
dWVzdCBvbiB0aGUgVzNDIENTUyBvciBXUFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0aHViLmNvbS93
M2MvY3Nzd2ctdGVzdAorCWh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
CisKK1RoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0
IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KKworLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25l
CitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKKy0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQorTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9yZXNvdXJjZXMvY3VzdG9tLWVsZW1lbnRz
LWhlbHBlcnMuanMKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2N1c3RvbS1lbGVtZW50cy9yZXNvdXJjZXMvZG9jdW1lbnQtdHlwZXMuanMKKy9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9yZXNvdXJj
ZXMvZW1wdHktaHRtbC1kb2N1bWVudC5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy93M2MtaW1wb3J0Lmxv
ZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVs
ZW1lbnRzL3czYy1pbXBvcnQubG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU4MDM3OWE1OGIyZTYxOGEwOTQxY2Nh
NDE3NzdlNjUzODQ4NzdiYTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy93M2MtaW1wb3J0LmxvZwpA
QCAtMCwwICsxLDI1IEBACitUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRl
ZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGly
ZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBX
M0MgQ1NTIG9yIFdQVCBnaXRodWI6CisJaHR0cHM6Ly9naXRodWIuY29tL3czYy9jc3N3Zy10ZXN0
CisJaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWItcGxhdGZvcm0tdGVzdHMKKworVGhlbiBydW4g
dGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQK
KworRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgorCistLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
K1Byb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKK1Byb3BlcnR5IHZh
bHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitM
aXN0IG9mIGZpbGVzOgorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3VzdG9tLWVsZW1lbnRzL0N1c3RvbUVsZW1lbnRSZWdpc3RyeS5odG1sCisvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvSFRNTEVs
ZW1lbnQtY29uc3RydWN0b3IuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL09XTkVSUworL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL2Fkb3B0ZWQtY2FsbGJhY2su
aHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9t
LWVsZW1lbnRzL2F0dHJpYnV0ZS1jaGFuZ2VkLWNhbGxiYWNrLmh0bWwKKy9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9jb25uZWN0ZWQt
Y2FsbGJhY2tzLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2N1c3RvbS1lbGVtZW50cy9kaXNjb25uZWN0ZWQtY2FsbGJhY2tzLmh0bWwKKy9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9yZWFj
dGlvbi10aW1pbmcuaHRtbAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>