<?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>163815</bug_id>
          
          <creation_ts>2016-10-21 15:52:30 -0700</creation_ts>
          <short_desc>Update custom elements tests</short_desc>
          <delta_ts>2016-10-21 19:50:07 -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></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>commit-queue</cc>
    
    <cc>lforschler</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1243134</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-10-21 15:52:30 -0700</bug_when>
    <thetext>Update the tests yet again now that more tests have been upstream&apos;ed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1243189</commentid>
    <comment_count>1</comment_count>
      <attachid>292440</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-10-21 17:34:08 -0700</bug_when>
    <thetext>Created attachment 292440
Updated the tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1243223</commentid>
    <comment_count>2</comment_count>
      <attachid>292440</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-10-21 19:15:30 -0700</bug_when>
    <thetext>Comment on attachment 292440
Updated the tests

rs=me, there are 1 or 2 failing tests, but this looks like just an import they can be addressed separately</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1243234</commentid>
    <comment_count>3</comment_count>
      <attachid>292440</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-10-21 19:50:04 -0700</bug_when>
    <thetext>Comment on attachment 292440
Updated the tests

Clearing flags on attachment: 292440

Committed r207703: &lt;http://trac.webkit.org/changeset/207703&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1243235</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-10-21 19:50:07 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>292440</attachid>
            <date>2016-10-21 17:34:08 -0700</date>
            <delta_ts>2016-10-21 19:50:04 -0700</delta_ts>
            <desc>Updated the tests</desc>
            <filename>bug-163815-20161021173028.patch</filename>
            <type>text/plain</type>
            <size>179599</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA3Njk2CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMWI5YWU1N2E2ZjE0NmQ3Mjc4YWU2
NzhlZmYyNDIzOGRmNDliMmYyNi4uYWY1ODdmZjQzNzEwNzYxZWJjZmQ2NTIyNWI1NmZhZWUyZGNi
MjQ0NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE2LTEwLTIxICBSeW9zdWtlIE5pd2EgIDxy
bml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIFVwZGF0ZSBjdXN0b20gZWxlbWVudHMgdGVzdHMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MzgxNQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZWQg
dGhlIHRlc3RzIHRoYXQgaGF2ZSBiZWVuIHVwc3RyZWFtZWQgYW5kIHJlaW1wb3J0ZWQgZnJvbSB3
ZWItcGxhdGZvcm0tdGVzdHMuCisKKyAgICAgICAgKiBmYXN0L2N1c3RvbS1lbGVtZW50cy9Eb2N1
bWVudC1jcmVhdGVFbGVtZW50LWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0
L2N1c3RvbS1lbGVtZW50cy9lbnF1ZXVlLWN1c3RvbS1lbGVtZW50LXVwZ3JhZGUtcmVhY3Rpb24t
ZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvY3VzdG9tLWVsZW1lbnRzL3Bh
cnNlci86IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9jdXN0b20tZWxlbWVudHMvdXBncmFkaW5n
LzogUmVtb3ZlZC4KKwogMjAxNi0xMC0yMCAgRGVhbiBKYWNrc29uICA8ZGlub0BhcHBsZS5jb20+
CiAKICAgICAgICAgU1ZHIHNob3VsZCBub3QgcGFpbnQgc2VsZWN0aW9uIHdpdGhpbiBhIG1hc2sK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IDNhODdkMmRhYWQ2OWI3MjQzMzY1MTYw
ODkzNmQ3MDY4OWZhMThjYzcuLjg2ODg4NzM4ZDY5NjVjNjNmNmUyYjY1NTRmYTllNGRkMzMyZDcz
ZDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDE2
LTEwLTIxICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIFVwZGF0
ZSBjdXN0b20gZWxlbWVudHMgdGVzdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE2MzgxNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFJlLWltcG9ydCB0aGUgY3VzdG9tIGVsZW1lbnRzIGFzIG9mIDUwNzhh
YTQ0ODc5Yzg3YzM4YjY0MzA2NzA1ODM5NTFkYmVhZTMwMjUuCisKKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL0RvY3VtZW50LWNyZWF0ZUVsZW1lbnQtZXhwZWN0
ZWQudHh0OiBNb3ZlZCBmcm9tIGZyb20gZmFzdC9jdXN0b20tZWxlbWVudHMvRG9jdW1lbnQtY3Jl
YXRlRWxlbWVudC5odG1sLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxl
bWVudHMvRG9jdW1lbnQtY3JlYXRlRWxlbWVudC5odG1sOiBEaXR0by4KKyAgICAgICAgKiB3ZWIt
cGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL3BhcnNlci9wYXJzZXItY29uc3RydWN0cy1j
dXN0b20tZWxlbWVudC1pbi1kb2N1bWVudC13cml0ZS1leHBlY3RlZC50eHQ6IE1vdmVkIGZyb20g
ZnJvbSBmYXN0L2N1c3RvbS1lbGVtZW50cy9wYXJzZXIvLgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9jdXN0b20tZWxlbWVudHMvcGFyc2VyL3BhcnNlci1jb25zdHJ1Y3RzLWN1c3RvbS1l
bGVtZW50LWluLWRvY3VtZW50LXdyaXRlLmh0bWw6IERpdHRvLgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvcGFyc2VyL3BhcnNlci1jb25zdHJ1Y3RzLWN1c3Rv
bS1lbGVtZW50LXN5bmNocm9ub3VzbHktZXhwZWN0ZWQudHh0OiBEaXR0by4KKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL3BhcnNlci9wYXJzZXItY29uc3RydWN0
cy1jdXN0b20tZWxlbWVudC1zeW5jaHJvbm91c2x5Lmh0bWw6IERpdHRvLgorICAgICAgICAqIHdl
Yi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvcGFyc2VyL3BhcnNlci1jb25zdHJ1Y3Rz
LWN1c3RvbS1lbGVtZW50cy1leHBlY3RlZC50eHQ6IERpdHRvLgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvcGFyc2VyL3BhcnNlci1jb25zdHJ1Y3RzLWN1c3Rv
bS1lbGVtZW50cy5odG1sOiBEaXR0by4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3Vz
dG9tLWVsZW1lbnRzL3BhcnNlci9wYXJzZXItZmFsbHNiYWNrLXRvLXVua25vd24tZWxlbWVudC1l
eHBlY3RlZC50eHQ6IERpdHRvLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20t
ZWxlbWVudHMvcGFyc2VyL3BhcnNlci1mYWxsc2JhY2stdG8tdW5rbm93bi1lbGVtZW50Lmh0bWw6
IERpdHRvLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvcGFy
c2VyL3BhcnNlci1zZXRzLWF0dHJpYnV0ZXMtYW5kLWNoaWxkcmVuLWV4cGVjdGVkLnR4dDogRGl0
dG8uCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9wYXJzZXIv
cGFyc2VyLXNldHMtYXR0cmlidXRlcy1hbmQtY2hpbGRyZW4uaHRtbDogRGl0dG8uCisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9wYXJzZXIvcGFyc2VyLXVzZXMt
Y29uc3RydWN0ZWQtZWxlbWVudC1leHBlY3RlZC50eHQ6IERpdHRvLgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvcGFyc2VyL3BhcnNlci11c2VzLWNvbnN0cnVj
dGVkLWVsZW1lbnQuaHRtbDogRGl0dG8uCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2N1
c3RvbS1lbGVtZW50cy9wYXJzZXIvcGFyc2VyLXVzZXMtcmVnaXN0cnktb2Ytb3duZXItZG9jdW1l
bnQtZXhwZWN0ZWQudHh0OiBEaXR0by4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3Vz
dG9tLWVsZW1lbnRzL3BhcnNlci9wYXJzZXItdXNlcy1yZWdpc3RyeS1vZi1vd25lci1kb2N1bWVu
dC5odG1sOiBEaXR0by4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1l
bnRzL3BhcnNlci93M2MtaW1wb3J0LmxvZzogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL2N1c3RvbS1lbGVtZW50cy9yZWFjdGlvbnMvRE9NVG9rZW5MaXN0LWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL3JlYWN0aW9u
cy9ET01Ub2tlbkxpc3QuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9t
LWVsZW1lbnRzL3JlYWN0aW9ucy9Eb2N1bWVudC1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9yZWFjdGlvbnMvRG9jdW1lbnQuaHRtbDoK
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL3JlYWN0aW9ucy9S
YW5nZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1l
bGVtZW50cy9yZWFjdGlvbnMvcmVzb3VyY2VzL3JlYWN0aW9ucy5qczoKKyAgICAgICAgKiB3ZWIt
cGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL3VwZ3JhZGluZy1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvdXBncmFk
aW5nLmh0bWw6IE1vdmVkIGZyb20gZmFzdC9jdXN0b20tZWxlbWVudHMvZW5xdWV1ZS1jdXN0b20t
ZWxlbWVudC11cGdyYWRlLXJlYWN0aW9uLmh0bWwuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRl
c3RzL2N1c3RvbS1lbGVtZW50cy91cGdyYWRpbmcvTm9kZS1jbG9uZU5vZGUtZXhwZWN0ZWQudHh0
OiBNb3ZlZCBmcm9tIGZhc3QvY3VzdG9tLWVsZW1lbnRzL3VwZ3JhZGluZy8uCisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy91cGdyYWRpbmcvTm9kZS1jbG9uZU5v
ZGUuaHRtbDogRGl0dG8uCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVt
ZW50cy91cGdyYWRpbmcvdXBncmFkaW5nLXBhcnNlci1jcmVhdGVkLWVsZW1lbnQtZXhwZWN0ZWQu
dHh0OiBEaXR0by4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRz
L3VwZ3JhZGluZy91cGdyYWRpbmctcGFyc2VyLWNyZWF0ZWQtZWxlbWVudC5odG1sOiBEaXR0by4K
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL3VwZ3JhZGluZy93
M2MtaW1wb3J0LmxvZzogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3Rv
bS1lbGVtZW50cy93M2MtaW1wb3J0LmxvZzoKKwogMjAxNi0xMC0yMCAgWmFuIERvYmVyc2VrICA8
emRvYmVyc2VrQGlnYWxpYS5jb20+CiAKICAgICAgICAgSW1wb3J0IFczQyBFTUUgdGVzdHMKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRzL0RvY3VtZW50LWNyZWF0
ZUVsZW1lbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jdXN0b20tZWxlbWVudHMv
RG9jdW1lbnQtY3JlYXRlRWxlbWVudC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGY0MTdlZGFjNzdhMDk3NTgzMzExZDEwODZmZDMzNzlmNGYyOGRmZmQuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFz
dC9jdXN0b20tZWxlbWVudHMvRG9jdW1lbnQtY3JlYXRlRWxlbWVudC1leHBlY3RlZC50eHQKKysr
IC9kZXYvbnVsbApAQCAtMSwzNyArMCwwIEBACi0KLVBBU1MgZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCBtdXN0IGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBjdXN0b20gZWxlbWVudHMgCi1QQVNTIGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQgbXVzdCByZXBvcnQgYSBUeXBlRXJyb3Igd2hlbiB0aGUgcmVzdWx0
IG9mIENvbnN0cnVjdCBpcyBub3QgYSBET00gbm9kZSAKLVBBU1MgZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCBtdXN0IHJlcG9ydCBhIFR5cGVFcnJvciB3aGVuIHRoZSByZXN1bHQgb2YgQ29uc3RydWN0
IGlzIGEgVGV4dE5vZGUgCi1QQVNTIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQgbXVzdCByZXBvcnQg
YSBOb3RTdXBwb3J0ZWRFcnJvciB3aGVuIGF0dHJpYnV0ZSBpcyBhZGRlZCBieSBzZXRBdHRyaWJ1
dGUgZHVyaW5nIGNvbnN0cnVjdGlvbiAKLVBBU1MgZG9jdW1lbnQuY3JlYXRlRWxlbWVudCBtdXN0
IHJlcG9ydCBhIE5vdFN1cHBvcnRlZEVycm9yIHdoZW4gYXR0cmlidXRlIGlzIGFkZGVkIGJ5IGF0
dHJpYnV0ZXMuc2V0TmFtZWRJdGVtIGR1cmluZyBjb25zdHJ1Y3Rpb24gCi1QQVNTIGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQgbXVzdCBub3QgcmVwb3J0IGEgTm90U3VwcG9ydGVkRXJyb3Igd2hlbiBh
dHRyaWJ1dGUgaXMgYWRkZWQgYW5kIHJlbW92ZWQgZHVyaW5nIGNvbnN0cnVjdGlvbiAKLVBBU1Mg
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCBtdXN0IHJlcG9ydCBhIE5vdFN1cHBvcnRlZEVycm9yIHdo
ZW4gYSBUZXh0IGNoaWxkIGlzIGFkZGVkIGR1cmluZyBjb25zdHJ1Y3Rpb24gCi1QQVNTIGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQgbXVzdCByZXBvcnQgYSBOb3RTdXBwb3J0ZWRFcnJvciB3aGVuIGEg
Q29tbWVudCBjaGlsZCBpcyBhZGRlZCBkdXJpbmcgY29uc3RydWN0aW9uIAotUEFTUyBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50IG11c3QgcmVwb3J0IGEgTm90U3VwcG9ydGVkRXJyb3Igd2hlbiBhbiBl
bGVtZW50IGNoaWxkIGlzIGFkZGVkIGR1cmluZyBjb25zdHJ1Y3Rpb24gCi1QQVNTIGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQgbXVzdCBub3QgcmVwb3J0IGEgTm90U3VwcG9ydGVkRXJyb3Igd2hlbiBh
biBlbGVtZW50IGNoaWxkIGlzIGFkZGVkIGFuZCByZW1vdmVkIGR1cmluZyBjb25zdHJ1Y3Rpb24g
Ci1QQVNTIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQgbXVzdCByZXBvcnQgYSBOb3RTdXBwb3J0ZWRF
cnJvciB3aGVuIHRoZSBlbGVtZW50IGdldHMgaW5zZXJ0ZWQgaW50byBhbm90aGVyIGVsZW1lbnQg
ZHVyaW5nIGNvbnN0cnVjdGlvbiAKLVBBU1MgZG9jdW1lbnQuY3JlYXRlRWxlbWVudCBtdXN0IG5v
dCByZXBvcnQgYSBOb3RTdXBwb3J0ZWRFcnJvciB3aGVuIHRoZSBlbGVtZW50IGlzIGluc2VydGVk
IGFuZCByZW1vdmVkIGZyb20gYW5vdGhlciBlbGVtZW50IGR1cmluZyBjb25zdHJ1Y3Rpb24gCi1Q
QVNTIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQgbXVzdCByZXBvcnQgYSBOb3RTdXBwb3J0ZWRFcnJv
ciB3aGVuIHRoZSBlbGVtZW50IGlzIGFkb3B0ZWQgaW50byBhIGRvY3VtZW50IG9mIGEgdGVtcGxh
dGUgZWxlbWVudCBkdXJpbmcgY29uc3RydWN0aW9uIAotUEFTUyBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50IG11c3QgcmVwb3J0IGEgTm90U3VwcG9ydGVkRXJyb3Igd2hlbiB0aGUgZWxlbWVudCBpcyBp
bnNlcnRlZCBpbnRvIGEgZG9jdW1lbnQgb2YgYSB0ZW1wbGF0ZSBlbGVtZW50IGR1cmluZyBjb25z
dHJ1Y3Rpb24gCi1QQVNTIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQgbXVzdCBub3QgcmVwb3J0IGEg
Tm90U3VwcG9ydGVkRXJyb3Igd2hlbiB0aGUgZWxlbWVudCBpcyBhZG9wdGVkIGJhY2sgZnJvbSBh
IGRvY3VtZW50IG9mIGEgdGVtcGxhdGUgZWxlbWVudCBkdXJpbmcgY29uc3RydWN0aW9uIAotUEFT
UyBkb2N1bWVudC5jcmVhdGVFbGVtZW50IG11c3QgcmVwb3J0IGEgTm90U3VwcG9ydGVkRXJyb3Ig
d2hlbiB0aGUgZWxlbWVudCBpcyBhZG9wdGVkIGludG8gYSBuZXcgZG9jdW1lbnQgZHVyaW5nIGNv
bnN0cnVjdGlvbiAKLVBBU1MgZG9jdW1lbnQuY3JlYXRlRWxlbWVudCBtdXN0IHJlcG9ydCBhIE5v
dFN1cHBvcnRlZEVycm9yIHdoZW4gdGhlIGVsZW1lbnQgaXMgaW5zZXJ0ZWQgaW50byBhIG5ldyBk
b2N1bWVudCBkdXJpbmcgY29uc3RydWN0aW9uIAotUEFTUyBkb2N1bWVudC5jcmVhdGVFbGVtZW50
IG11c3Qgbm90IHJlcG9ydCBhIE5vdFN1cHBvcnRlZEVycm9yIHdoZW4gdGhlIGVsZW1lbnQgaXMg
YWRvcHRlZCBiYWNrIGZyb20gYSBuZXcgZG9jdW1lbnQgZHVyaW5nIGNvbnN0cnVjdGlvbiAKLVBB
U1MgZG9jdW1lbnQuY3JlYXRlRWxlbWVudCBtdXN0IHJlcG9ydCBhIE5vdFN1cHBvcnRlZEVycm9y
IHdoZW4gdGhlIGVsZW1lbnQgaXMgYWRvcHRlZCBpbnRvIGEgY2xvbmVkIGRvY3VtZW50IGR1cmlu
ZyBjb25zdHJ1Y3Rpb24gCi1QQVNTIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQgbXVzdCByZXBvcnQg
YSBOb3RTdXBwb3J0ZWRFcnJvciB3aGVuIHRoZSBlbGVtZW50IGlzIGluc2VydGVkIGludG8gYSBj
bG9uZWQgZG9jdW1lbnQgZHVyaW5nIGNvbnN0cnVjdGlvbiAKLVBBU1MgZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCBtdXN0IG5vdCByZXBvcnQgYSBOb3RTdXBwb3J0ZWRFcnJvciB3aGVuIHRoZSBlbGVt
ZW50IGlzIGFkb3B0ZWQgYmFjayBmcm9tIGEgY2xvbmVkIGRvY3VtZW50IGR1cmluZyBjb25zdHJ1
Y3Rpb24gCi1QQVNTIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQgbXVzdCByZXBvcnQgYSBOb3RTdXBw
b3J0ZWRFcnJvciB3aGVuIHRoZSBlbGVtZW50IGlzIGFkb3B0ZWQgaW50byBhIGRvY3VtZW50IGNy
ZWF0ZWQgYnkgY3JlYXRlSFRNTERvY3VtZW50IGR1cmluZyBjb25zdHJ1Y3Rpb24gCi1QQVNTIGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQgbXVzdCByZXBvcnQgYSBOb3RTdXBwb3J0ZWRFcnJvciB3aGVu
IHRoZSBlbGVtZW50IGlzIGluc2VydGVkIGludG8gYSBkb2N1bWVudCBjcmVhdGVkIGJ5IGNyZWF0
ZUhUTUxEb2N1bWVudCBkdXJpbmcgY29uc3RydWN0aW9uIAotUEFTUyBkb2N1bWVudC5jcmVhdGVF
bGVtZW50IG11c3Qgbm90IHJlcG9ydCBhIE5vdFN1cHBvcnRlZEVycm9yIHdoZW4gdGhlIGVsZW1l
bnQgaXMgYWRvcHRlZCBiYWNrIGZyb20gYSBkb2N1bWVudCBjcmVhdGVkIGJ5IGNyZWF0ZUhUTUxE
b2N1bWVudCBkdXJpbmcgY29uc3RydWN0aW9uIAotUEFTUyBkb2N1bWVudC5jcmVhdGVFbGVtZW50
IG11c3QgcmVwb3J0IGEgTm90U3VwcG9ydGVkRXJyb3Igd2hlbiB0aGUgZWxlbWVudCBpcyBhZG9w
dGVkIGludG8gYSBIVE1MIGRvY3VtZW50IGNyZWF0ZWQgYnkgY3JlYXRlRG9jdW1lbnQgZHVyaW5n
IGNvbnN0cnVjdGlvbiAKLVBBU1MgZG9jdW1lbnQuY3JlYXRlRWxlbWVudCBtdXN0IHJlcG9ydCBh
IE5vdFN1cHBvcnRlZEVycm9yIHdoZW4gdGhlIGVsZW1lbnQgaXMgaW5zZXJ0ZWQgaW50byBhIEhU
TUwgZG9jdW1lbnQgY3JlYXRlZCBieSBjcmVhdGVEb2N1bWVudCBkdXJpbmcgY29uc3RydWN0aW9u
IAotUEFTUyBkb2N1bWVudC5jcmVhdGVFbGVtZW50IG11c3Qgbm90IHJlcG9ydCBhIE5vdFN1cHBv
cnRlZEVycm9yIHdoZW4gdGhlIGVsZW1lbnQgaXMgYWRvcHRlZCBiYWNrIGZyb20gYSBIVE1MIGRv
Y3VtZW50IGNyZWF0ZWQgYnkgY3JlYXRlRG9jdW1lbnQgZHVyaW5nIGNvbnN0cnVjdGlvbiAKLVBB
U1MgZG9jdW1lbnQuY3JlYXRlRWxlbWVudCBtdXN0IHJlcG9ydCBhIE5vdFN1cHBvcnRlZEVycm9y
IHdoZW4gdGhlIGVsZW1lbnQgaXMgYWRvcHRlZCBpbnRvIGEgZG9jdW1lbnQgaW4gYW4gaWZyYW1l
IGR1cmluZyBjb25zdHJ1Y3Rpb24gCi1QQVNTIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQgbXVzdCBy
ZXBvcnQgYSBOb3RTdXBwb3J0ZWRFcnJvciB3aGVuIHRoZSBlbGVtZW50IGlzIGluc2VydGVkIGlu
dG8gYSBkb2N1bWVudCBpbiBhbiBpZnJhbWUgZHVyaW5nIGNvbnN0cnVjdGlvbiAKLVBBU1MgZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCBtdXN0IG5vdCByZXBvcnQgYSBOb3RTdXBwb3J0ZWRFcnJvciB3
aGVuIHRoZSBlbGVtZW50IGlzIGFkb3B0ZWQgYmFjayBmcm9tIGEgZG9jdW1lbnQgaW4gYW4gaWZy
YW1lIGR1cmluZyBjb25zdHJ1Y3Rpb24gCi1QQVNTIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQgbXVz
dCByZXBvcnQgYSBOb3RTdXBwb3J0ZWRFcnJvciB3aGVuIHRoZSBlbGVtZW50IGlzIGFkb3B0ZWQg
aW50byBhIEhUTUwgZG9jdW1lbnQgZmV0Y2hlZCBieSBYSFIgZHVyaW5nIGNvbnN0cnVjdGlvbiAK
LVBBU1MgZG9jdW1lbnQuY3JlYXRlRWxlbWVudCBtdXN0IHJlcG9ydCBhIE5vdFN1cHBvcnRlZEVy
cm9yIHdoZW4gdGhlIGVsZW1lbnQgaXMgaW5zZXJ0ZWQgaW50byBhIEhUTUwgZG9jdW1lbnQgZmV0
Y2hlZCBieSBYSFIgZHVyaW5nIGNvbnN0cnVjdGlvbiAKLVBBU1MgZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCBtdXN0IG5vdCByZXBvcnQgYSBOb3RTdXBwb3J0ZWRFcnJvciB3aGVuIHRoZSBlbGVtZW50
IGlzIGFkb3B0ZWQgYmFjayBmcm9tIGEgSFRNTCBkb2N1bWVudCBmZXRjaGVkIGJ5IFhIUiBkdXJp
bmcgY29uc3RydWN0aW9uIAotUEFTUyBkb2N1bWVudC5jcmVhdGVFbGVtZW50IG11c3QgcmVwb3J0
IGEgTm90U3VwcG9ydGVkRXJyb3Igd2hlbiB0aGUgbG9jYWwgbmFtZSBvZiB0aGUgZWxlbWVudCBk
b2VzIG5vdCBtYXRjaCB0aGF0IG9mIHRoZSBjdXN0b20gZWxlbWVudCAKLVBBU1MgZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCBtdXN0IHJlcG9ydCBhbiBleGNlcHRpb24gdGhyb3duIGJ5IGEgY3VzdG9t
IGVsZW1lbnQgY29uc3RydWN0b3IgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3Vz
dG9tLWVsZW1lbnRzL0RvY3VtZW50LWNyZWF0ZUVsZW1lbnQuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvY3VzdG9tLWVsZW1lbnRzL0RvY3VtZW50LWNyZWF0ZUVsZW1lbnQuaHRtbApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDA2NGU1Y2MzYjY0ZGU1OWVjNGVjYWUzOGQzMTFlOTAwYWUw
NGE0ZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L2N1c3RvbS1lbGVtZW50cy9Eb2N1bWVudC1jcmVhdGVFbGVtZW50Lmh0bWwK
KysrIC9kZXYvbnVsbApAQCAtMSwzMzEgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4K
LTxoZWFkPgotPHRpdGxlPkN1c3RvbSBFbGVtZW50czogRXh0ZW5zaW9ucyB0byBEb2N1bWVudCBp
bnRlcmZhY2U8L3RpdGxlPgotPG1ldGEgbmFtZT0iYXV0aG9yIiB0aXRsZT0iUnlvc3VrZSBOaXdh
IiBocmVmPSJtYWlsdG86cm5pd2FAd2Via2l0Lm9yZyI+Ci08bWV0YSBuYW1lPSJhc3NlcnQiIGNv
bnRlbnQ9ImRvY3VtZW50LmNyZWF0ZUVsZW1lbnQgc2hvdWxkIGluc3RhbnRpYXRlIGEgY3VzdG9t
IGVsZW1lbnQiPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0
LmpzIj48L3NjcmlwdD4KLTxsaW5rIHJlbD0nc3R5bGVzaGVldCcgaHJlZj0nLi4vLi4vcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzLmNzcyc+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL2RvY3VtZW50LXR5
cGVzLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPGRpdiBpZD0ibG9nIj48L2Rpdj4K
LTxzY3JpcHQ+Ci1zZXR1cCh7YWxsb3dfdW5jYXVnaHRfZXhjZXB0aW9uOnRydWV9KTsKLQotdGVz
dChmdW5jdGlvbiAoKSB7Ci0gICAgY2xhc3MgTXlDdXN0b21FbGVtZW50IGV4dGVuZHMgSFRNTEVs
ZW1lbnQge307Ci0KLSAgICBhc3NlcnRfdHJ1ZShkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdteS1j
dXN0b20tZWxlbWVudCcpIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpOwotICAgIGFzc2VydF9mYWxz
ZShkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdteS1jdXN0b20tZWxlbWVudCcpIGluc3RhbmNlb2Yg
TXlDdXN0b21FbGVtZW50KTsKLQotICAgIGN1c3RvbUVsZW1lbnRzLmRlZmluZSgnbXktY3VzdG9t
LWVsZW1lbnQnLCBNeUN1c3RvbUVsZW1lbnQpOwotICAgIHZhciBpbnN0YW5jZSA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoJ215LWN1c3RvbS1lbGVtZW50Jyk7Ci0gICAgYXNzZXJ0X3RydWUoaW5z
dGFuY2UgaW5zdGFuY2VvZiBNeUN1c3RvbUVsZW1lbnQpOwotICAgIGFzc2VydF9lcXVhbHMoaW5z
dGFuY2UubG9jYWxOYW1lLCAnbXktY3VzdG9tLWVsZW1lbnQnKTsKLSAgICBhc3NlcnRfZXF1YWxz
KGluc3RhbmNlLm5hbWVzcGFjZVVSSSwgJ2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnLCAn
QSBjdXN0b20gZWxlbWVudCBIVE1MIG11c3QgdXNlIEhUTUwgbmFtZXNwYWNlJyk7Ci0KLX0sICdk
b2N1bWVudC5jcmVhdGVFbGVtZW50IG11c3QgY3JlYXRlIGFuIGluc3RhbmNlIG9mIGN1c3RvbSBl
bGVtZW50cycpOwotCi1mdW5jdGlvbiBhc3NlcnRfcmVwb3J0cyhleHBlY3RlZCwgdGVzdEZ1bmN0
aW9uLCBtZXNzYWdlKSB7Ci0gICAgdmFyIHVuY2F1Z2h0RXJyb3IgPSBudWxsOwotICAgIHdpbmRv
dy5vbmVycm9yID0gZnVuY3Rpb24gKG1lc3NhZ2UsIHVybCwgbGluZU51bWJlciwgY29sdW1uTnVt
YmVyLCBlcnJvcikgeyB1bmNhdWdodEVycm9yID0gZXJyb3I7IHJldHVybiB0cnVlOyB9Ci0gICAg
dGVzdEZ1bmN0aW9uKCk7Ci0gICAgaWYgKHR5cGVvZihleHBlY3RlZCkgPT0gJ3N0cmluZycpCi0g
ICAgICAgIGFzc2VydF9lcXVhbHModW5jYXVnaHRFcnJvciwgZXhwZWN0ZWQsIG1lc3NhZ2UpOwot
ICAgIGVsc2UgaWYgKGV4cGVjdGVkICYmICduYW1lJyBpbiBleHBlY3RlZCkKLSAgICAgICAgYXNz
ZXJ0X2VxdWFscyh1bmNhdWdodEVycm9yLm5hbWUsIGV4cGVjdGVkLm5hbWUsIG1lc3NhZ2UpOwot
ICAgIGVsc2UKLSAgICAgIGFzc2VydF9lcXVhbHModW5jYXVnaHRFcnJvciwgZXhwZWN0ZWQsIG1l
c3NhZ2UpOwotICAgIHdpbmRvdy5vbmVycm9yID0gbnVsbDsKLX0KLQotZnVuY3Rpb24gYXNzZXJ0
X25vdF9yZXBvcnRzKHRlc3RGdW5jdGlvbiwgbWVzc2FnZSkgewotICAgIGFzc2VydF9yZXBvcnRz
KG51bGwsIHRlc3RGdW5jdGlvbiwgbWVzc2FnZSk7Ci19Ci0KLXRlc3QoZnVuY3Rpb24gKCkgewot
ICAgIGNsYXNzIE9iamVjdEN1c3RvbUVsZW1lbnQgZXh0ZW5kcyBIVE1MRWxlbWVudCB7Ci0gICAg
ICAgIGNvbnN0cnVjdG9yKCkKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIHtmb286ICdi
YXInfTsKLSAgICAgICAgfQotICAgIH07Ci0gICAgY3VzdG9tRWxlbWVudHMuZGVmaW5lKCdvYmpl
Y3QtY3VzdG9tLWVsZW1lbnQnLCBPYmplY3RDdXN0b21FbGVtZW50KTsKLQotICAgIHZhciBpbnN0
YW5jZSA9IG5ldyBPYmplY3RDdXN0b21FbGVtZW50OwotICAgIGFzc2VydF90cnVlKGluc3RhbmNl
IGluc3RhbmNlb2YgT2JqZWN0KTsKLSAgICBhc3NlcnRfZXF1YWxzKGluc3RhbmNlLmZvbywgJ2Jh
cicpOwotCi0gICAgdmFyIGluc3RhbmNlOwotICAgIGFzc2VydF9yZXBvcnRzKHtuYW1lOiAnVHlw
ZUVycm9yJ30sIGZ1bmN0aW9uICgpIHsgaW5zdGFuY2UgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCdvYmplY3QtY3VzdG9tLWVsZW1lbnQnKTsgfSk7Ci0gICAgYXNzZXJ0X2VxdWFscyhpbnN0YW5j
ZS5sb2NhbE5hbWUsICdvYmplY3QtY3VzdG9tLWVsZW1lbnQnKTsKLSAgICBhc3NlcnRfdHJ1ZShp
bnN0YW5jZSBpbnN0YW5jZW9mIEhUTUxVbmtub3duRWxlbWVudCk7Ci19LCAnZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCBtdXN0IHJlcG9ydCBhIFR5cGVFcnJvciB3aGVuIHRoZSByZXN1bHQgb2YgQ29u
c3RydWN0IGlzIG5vdCBhIERPTSBub2RlJyk7Ci0KLXRlc3QoZnVuY3Rpb24gKCkgewotICAgIGNs
YXNzIFRleHRDdXN0b21FbGVtZW50IGV4dGVuZHMgSFRNTEVsZW1lbnQgewotICAgICAgICBjb25z
dHJ1Y3RvcigpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBkb2N1bWVudC5jcmVhdGVU
ZXh0Tm9kZSgnaGVsbG8nKTsKLSAgICAgICAgfQotICAgIH07Ci0gICAgY3VzdG9tRWxlbWVudHMu
ZGVmaW5lKCd0ZXh0LWN1c3RvbS1lbGVtZW50JywgVGV4dEN1c3RvbUVsZW1lbnQpOwotICAgIGFz
c2VydF90cnVlKG5ldyBUZXh0Q3VzdG9tRWxlbWVudCBpbnN0YW5jZW9mIFRleHQpOwotICAgIHZh
ciBpbnN0YW5jZTsKLSAgICBhc3NlcnRfcmVwb3J0cyh7bmFtZTogJ1R5cGVFcnJvcid9LCBmdW5j
dGlvbiAoKSB7IGluc3RhbmNlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGV4dC1jdXN0b20t
ZWxlbWVudCcpOyB9KTsKLSAgICBhc3NlcnRfZXF1YWxzKGluc3RhbmNlLmxvY2FsTmFtZSwgJ3Rl
eHQtY3VzdG9tLWVsZW1lbnQnKTsKLSAgICBhc3NlcnRfdHJ1ZShpbnN0YW5jZSBpbnN0YW5jZW9m
IEhUTUxVbmtub3duRWxlbWVudCk7Ci19LCAnZG9jdW1lbnQuY3JlYXRlRWxlbWVudCBtdXN0IHJl
cG9ydCBhIFR5cGVFcnJvciB3aGVuIHRoZSByZXN1bHQgb2YgQ29uc3RydWN0IGlzIGEgVGV4dE5v
ZGUnKTsKLQotdGVzdChmdW5jdGlvbiAoKSB7Ci0gICAgY2xhc3MgRWxlbWVudFdpdGhBdHRyaWJ1
dGUgZXh0ZW5kcyBIVE1MRWxlbWVudCB7Ci0gICAgICAgIGNvbnN0cnVjdG9yKCkKLSAgICAgICAg
ewotICAgICAgICAgICAgc3VwZXIoKTsKLSAgICAgICAgICAgIHRoaXMuc2V0QXR0cmlidXRlKCdp
ZCcsICdmb28nKTsKLSAgICAgICAgfQotICAgIH07Ci0gICAgY3VzdG9tRWxlbWVudHMuZGVmaW5l
KCdlbGVtZW50LXdpdGgtYXR0cmlidXRlJywgRWxlbWVudFdpdGhBdHRyaWJ1dGUpOwotICAgIGFz
c2VydF90cnVlKG5ldyBFbGVtZW50V2l0aEF0dHJpYnV0ZSBpbnN0YW5jZW9mIEVsZW1lbnRXaXRo
QXR0cmlidXRlKTsKLSAgICB2YXIgaW5zdGFuY2U7Ci0gICAgYXNzZXJ0X3JlcG9ydHMoe25hbWU6
ICdOb3RTdXBwb3J0ZWRFcnJvcid9LCBmdW5jdGlvbiAoKSB7IGluc3RhbmNlID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgnZWxlbWVudC13aXRoLWF0dHJpYnV0ZScpOyB9KTsKLSAgICBhc3NlcnRf
ZXF1YWxzKGluc3RhbmNlLmxvY2FsTmFtZSwgJ2VsZW1lbnQtd2l0aC1hdHRyaWJ1dGUnKTsKLSAg
ICBhc3NlcnRfdHJ1ZShpbnN0YW5jZSBpbnN0YW5jZW9mIEhUTUxVbmtub3duRWxlbWVudCk7Ci19
LCAnZG9jdW1lbnQuY3JlYXRlRWxlbWVudCBtdXN0IHJlcG9ydCBhIE5vdFN1cHBvcnRlZEVycm9y
IHdoZW4gYXR0cmlidXRlIGlzIGFkZGVkIGJ5IHNldEF0dHJpYnV0ZSBkdXJpbmcgY29uc3RydWN0
aW9uJyk7Ci0KLXRlc3QoZnVuY3Rpb24gKCkgewotICAgIGNsYXNzIEVsZW1lbnRXaXRoQXR0ck5v
ZGUgZXh0ZW5kcyBIVE1MRWxlbWVudCB7Ci0gICAgICAgIGNvbnN0cnVjdG9yKCkKLSAgICAgICAg
ewotICAgICAgICAgICAgc3VwZXIoKTsKLSAgICAgICAgICAgIHRoaXMuYXR0cmlidXRlcy5zZXRO
YW1lZEl0ZW0oZG9jdW1lbnQuY3JlYXRlQXR0cmlidXRlKCd0aXRsZScpKTsKLSAgICAgICAgfQot
ICAgIH07Ci0gICAgY3VzdG9tRWxlbWVudHMuZGVmaW5lKCdlbGVtZW50LXdpdGgtYXR0ci1ub2Rl
JywgRWxlbWVudFdpdGhBdHRyTm9kZSk7Ci0gICAgYXNzZXJ0X3RydWUobmV3IEVsZW1lbnRXaXRo
QXR0ck5vZGUgaW5zdGFuY2VvZiBFbGVtZW50V2l0aEF0dHJOb2RlKTsKLSAgICB2YXIgaW5zdGFu
Y2U7Ci0gICAgYXNzZXJ0X3JlcG9ydHMoe25hbWU6ICdOb3RTdXBwb3J0ZWRFcnJvcid9LCBmdW5j
dGlvbiAoKSB7IGluc3RhbmNlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZWxlbWVudC13aXRo
LWF0dHItbm9kZScpOyB9KTsKLSAgICBhc3NlcnRfZXF1YWxzKGluc3RhbmNlLmxvY2FsTmFtZSwg
J2VsZW1lbnQtd2l0aC1hdHRyLW5vZGUnKTsKLSAgICBhc3NlcnRfdHJ1ZShpbnN0YW5jZSBpbnN0
YW5jZW9mIEhUTUxVbmtub3duRWxlbWVudCk7Ci19LCAnZG9jdW1lbnQuY3JlYXRlRWxlbWVudCBt
dXN0IHJlcG9ydCBhIE5vdFN1cHBvcnRlZEVycm9yIHdoZW4gYXR0cmlidXRlIGlzIGFkZGVkIGJ5
IGF0dHJpYnV0ZXMuc2V0TmFtZWRJdGVtIGR1cmluZyBjb25zdHJ1Y3Rpb24nKTsKLQotdGVzdChm
dW5jdGlvbiAoKSB7Ci0gICAgY2xhc3MgRWxlbWVudFdpdGhOb0F0dHJpYnV0ZXMgZXh0ZW5kcyBI
VE1MRWxlbWVudCB7Ci0gICAgICAgIGNvbnN0cnVjdG9yKCkKLSAgICAgICAgewotICAgICAgICAg
ICAgc3VwZXIoKTsKLSAgICAgICAgICAgIHRoaXMuYXR0cmlidXRlcy5zZXROYW1lZEl0ZW0oZG9j
dW1lbnQuY3JlYXRlQXR0cmlidXRlKCd0aXRsZScpKTsKLSAgICAgICAgICAgIHRoaXMucmVtb3Zl
QXR0cmlidXRlKCd0aXRsZScpOwotICAgICAgICB9Ci0gICAgfTsKLSAgICBjdXN0b21FbGVtZW50
cy5kZWZpbmUoJ2VsZW1lbnQtd2l0aC1uby1hdHRpcmlidXRlcycsIEVsZW1lbnRXaXRoTm9BdHRy
aWJ1dGVzKTsKLSAgICBhc3NlcnRfdHJ1ZShuZXcgRWxlbWVudFdpdGhOb0F0dHJpYnV0ZXMgaW5z
dGFuY2VvZiBFbGVtZW50V2l0aE5vQXR0cmlidXRlcyk7Ci0gICAgdmFyIGluc3RhbmNlOwotICAg
IGFzc2VydF9ub3RfcmVwb3J0cyhmdW5jdGlvbiAoKSB7IGluc3RhbmNlID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgnZWxlbWVudC13aXRoLW5vLWF0dGlyaWJ1dGVzJyk7IH0pOwotICAgIGFzc2Vy
dF90cnVlKGluc3RhbmNlIGluc3RhbmNlb2YgRWxlbWVudFdpdGhOb0F0dHJpYnV0ZXMpOwotfSwg
J2RvY3VtZW50LmNyZWF0ZUVsZW1lbnQgbXVzdCBub3QgcmVwb3J0IGEgTm90U3VwcG9ydGVkRXJy
b3Igd2hlbiBhdHRyaWJ1dGUgaXMgYWRkZWQgYW5kIHJlbW92ZWQgZHVyaW5nIGNvbnN0cnVjdGlv
bicpOwotCi10ZXN0KGZ1bmN0aW9uICgpIHsKLSAgICBjbGFzcyBFbGVtZW50V2l0aENoaWxkVGV4
dCBleHRlbmRzIEhUTUxFbGVtZW50IHsKLSAgICAgICAgY29uc3RydWN0b3IoKQotICAgICAgICB7
Ci0gICAgICAgICAgICBzdXBlcigpOwotICAgICAgICAgICAgdGhpcy5hcHBlbmRDaGlsZChkb2N1
bWVudC5jcmVhdGVUZXh0Tm9kZSgnaGVsbG8nKSk7Ci0gICAgICAgIH0KLSAgICB9OwotICAgIGN1
c3RvbUVsZW1lbnRzLmRlZmluZSgnZWxlbWVudC13aXRoLWNoaWxkLXRleHQnLCBFbGVtZW50V2l0
aENoaWxkVGV4dCk7Ci0gICAgYXNzZXJ0X3RydWUobmV3IEVsZW1lbnRXaXRoQ2hpbGRUZXh0IGlu
c3RhbmNlb2YgRWxlbWVudFdpdGhDaGlsZFRleHQpOwotICAgIHZhciBpbnN0YW5jZTsKLSAgICBh
c3NlcnRfcmVwb3J0cyh7bmFtZTogJ05vdFN1cHBvcnRlZEVycm9yJ30sIGZ1bmN0aW9uICgpIHsg
aW5zdGFuY2UgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdlbGVtZW50LXdpdGgtY2hpbGQtdGV4
dCcpOyB9KTsKLSAgICBhc3NlcnRfZXF1YWxzKGluc3RhbmNlLmxvY2FsTmFtZSwgJ2VsZW1lbnQt
d2l0aC1jaGlsZC10ZXh0Jyk7Ci0gICAgYXNzZXJ0X3RydWUoaW5zdGFuY2UgaW5zdGFuY2VvZiBI
VE1MVW5rbm93bkVsZW1lbnQpOwotfSwgJ2RvY3VtZW50LmNyZWF0ZUVsZW1lbnQgbXVzdCByZXBv
cnQgYSBOb3RTdXBwb3J0ZWRFcnJvciB3aGVuIGEgVGV4dCBjaGlsZCBpcyBhZGRlZCBkdXJpbmcg
Y29uc3RydWN0aW9uJyk7Ci0KLXRlc3QoZnVuY3Rpb24gKCkgewotICAgIGNsYXNzIEVsZW1lbnRX
aXRoQ2hpbGRDb21tZW50IGV4dGVuZHMgSFRNTEVsZW1lbnQgewotICAgICAgICBjb25zdHJ1Y3Rv
cigpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHN1cGVyKCk7Ci0gICAgICAgICAgICB0aGlzLmFw
cGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUNvbW1lbnQoJ2hlbGxvJykpOwotICAgICAgICB9Ci0g
ICAgfTsKLSAgICBjdXN0b21FbGVtZW50cy5kZWZpbmUoJ2VsZW1lbnQtd2l0aC1jaGlsZC1jb21t
ZW50JywgRWxlbWVudFdpdGhDaGlsZENvbW1lbnQpOwotICAgIGFzc2VydF90cnVlKG5ldyBFbGVt
ZW50V2l0aENoaWxkQ29tbWVudCBpbnN0YW5jZW9mIEVsZW1lbnRXaXRoQ2hpbGRDb21tZW50KTsK
LSAgICB2YXIgaW5zdGFuY2U7Ci0gICAgYXNzZXJ0X3JlcG9ydHMoe25hbWU6ICdOb3RTdXBwb3J0
ZWRFcnJvcid9LCBmdW5jdGlvbiAoKSB7IGluc3RhbmNlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgnZWxlbWVudC13aXRoLWNoaWxkLWNvbW1lbnQnKTsgfSk7Ci0gICAgYXNzZXJ0X2VxdWFscyhp
bnN0YW5jZS5sb2NhbE5hbWUsICdlbGVtZW50LXdpdGgtY2hpbGQtY29tbWVudCcpOwotICAgIGFz
c2VydF90cnVlKGluc3RhbmNlIGluc3RhbmNlb2YgSFRNTFVua25vd25FbGVtZW50KTsKLX0sICdk
b2N1bWVudC5jcmVhdGVFbGVtZW50IG11c3QgcmVwb3J0IGEgTm90U3VwcG9ydGVkRXJyb3Igd2hl
biBhIENvbW1lbnQgY2hpbGQgaXMgYWRkZWQgZHVyaW5nIGNvbnN0cnVjdGlvbicpOwotCi10ZXN0
KGZ1bmN0aW9uICgpIHsKLSAgICBjbGFzcyBFbGVtZW50V2l0aENoaWxkRWxlbWVudCBleHRlbmRz
IEhUTUxFbGVtZW50IHsKLSAgICAgICAgY29uc3RydWN0b3IoKQotICAgICAgICB7Ci0gICAgICAg
ICAgICBzdXBlcigpOwotICAgICAgICAgICAgdGhpcy5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCdkaXYnKSk7Ci0gICAgICAgIH0KLSAgICB9OwotICAgIGN1c3RvbUVsZW1lbnRz
LmRlZmluZSgnZWxlbWVudC13aXRoLWNoaWxkLWVsZW1lbnQnLCBFbGVtZW50V2l0aENoaWxkRWxl
bWVudCk7Ci0gICAgYXNzZXJ0X3RydWUobmV3IEVsZW1lbnRXaXRoQ2hpbGRFbGVtZW50IGluc3Rh
bmNlb2YgRWxlbWVudFdpdGhDaGlsZEVsZW1lbnQpOwotICAgIHZhciBpbnN0YW5jZTsKLSAgICBh
c3NlcnRfcmVwb3J0cyh7bmFtZTogJ05vdFN1cHBvcnRlZEVycm9yJ30sIGZ1bmN0aW9uICgpIHsg
aW5zdGFuY2UgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdlbGVtZW50LXdpdGgtY2hpbGQtZWxl
bWVudCcpOyB9KTsKLSAgICBhc3NlcnRfZXF1YWxzKGluc3RhbmNlLmxvY2FsTmFtZSwgJ2VsZW1l
bnQtd2l0aC1jaGlsZC1lbGVtZW50Jyk7Ci0gICAgYXNzZXJ0X3RydWUoaW5zdGFuY2UgaW5zdGFu
Y2VvZiBIVE1MVW5rbm93bkVsZW1lbnQpOwotfSwgJ2RvY3VtZW50LmNyZWF0ZUVsZW1lbnQgbXVz
dCByZXBvcnQgYSBOb3RTdXBwb3J0ZWRFcnJvciB3aGVuIGFuIGVsZW1lbnQgY2hpbGQgaXMgYWRk
ZWQgZHVyaW5nIGNvbnN0cnVjdGlvbicpOwotCi10ZXN0KGZ1bmN0aW9uICgpIHsKLSAgICBjbGFz
cyBFbGVtZW50V2l0aE5vQ2hpbGRFbGVtZW50cyBleHRlbmRzIEhUTUxFbGVtZW50IHsKLSAgICAg
ICAgY29uc3RydWN0b3IoKQotICAgICAgICB7Ci0gICAgICAgICAgICBzdXBlcigpOwotICAgICAg
ICAgICAgdGhpcy5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSk7Ci0g
ICAgICAgICAgICB0aGlzLnJlbW92ZUNoaWxkKHRoaXMuZmlyc3RDaGlsZCk7Ci0gICAgICAgIH0K
LSAgICB9OwotICAgIGN1c3RvbUVsZW1lbnRzLmRlZmluZSgnZWxlbWVudC13aXRoLW5vLWNoaWxk
LWVsZW1lbnRzJywgRWxlbWVudFdpdGhOb0NoaWxkRWxlbWVudHMpOwotICAgIHZhciBpbnN0YW5j
ZTsKLSAgICBhc3NlcnRfbm90X3JlcG9ydHMoZnVuY3Rpb24gKCkgeyBpbnN0YW5jZSA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoJ2VsZW1lbnQtd2l0aC1uby1jaGlsZC1lbGVtZW50cycpOyB9KTsK
LSAgICBhc3NlcnRfdHJ1ZShpbnN0YW5jZSBpbnN0YW5jZW9mIEVsZW1lbnRXaXRoTm9DaGlsZEVs
ZW1lbnRzKTsKLX0sICdkb2N1bWVudC5jcmVhdGVFbGVtZW50IG11c3Qgbm90IHJlcG9ydCBhIE5v
dFN1cHBvcnRlZEVycm9yIHdoZW4gYW4gZWxlbWVudCBjaGlsZCBpcyBhZGRlZCBhbmQgcmVtb3Zl
ZCBkdXJpbmcgY29uc3RydWN0aW9uJyk7Ci0KLXRlc3QoZnVuY3Rpb24gKCkgewotICAgIGNsYXNz
IEVsZW1lbnRXaXRoUGFyZW50IGV4dGVuZHMgSFRNTEVsZW1lbnQgewotICAgICAgICBjb25zdHJ1
Y3RvcigpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHN1cGVyKCk7Ci0gICAgICAgICAgICBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKS5hcHBlbmRDaGlsZCh0aGlzKTsKLSAgICAgICAgfQot
ICAgIH07Ci0gICAgY3VzdG9tRWxlbWVudHMuZGVmaW5lKCdlbGVtZW50LXdpdGgtcGFyZW50Jywg
RWxlbWVudFdpdGhQYXJlbnQpOwotICAgIGFzc2VydF90cnVlKG5ldyBFbGVtZW50V2l0aFBhcmVu
dCBpbnN0YW5jZW9mIEVsZW1lbnRXaXRoUGFyZW50KTsKLSAgICB2YXIgaW5zdGFuY2U7Ci0gICAg
YXNzZXJ0X3JlcG9ydHMoe25hbWU6ICdOb3RTdXBwb3J0ZWRFcnJvcid9LCBmdW5jdGlvbiAoKSB7
IGluc3RhbmNlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZWxlbWVudC13aXRoLXBhcmVudCcp
OyB9KTsKLSAgICBhc3NlcnRfZXF1YWxzKGluc3RhbmNlLmxvY2FsTmFtZSwgJ2VsZW1lbnQtd2l0
aC1wYXJlbnQnKTsKLSAgICBhc3NlcnRfdHJ1ZShpbnN0YW5jZSBpbnN0YW5jZW9mIEhUTUxVbmtu
b3duRWxlbWVudCk7Ci19LCAnZG9jdW1lbnQuY3JlYXRlRWxlbWVudCBtdXN0IHJlcG9ydCBhIE5v
dFN1cHBvcnRlZEVycm9yIHdoZW4gdGhlIGVsZW1lbnQgZ2V0cyBpbnNlcnRlZCBpbnRvIGFub3Ro
ZXIgZWxlbWVudCBkdXJpbmcgY29uc3RydWN0aW9uJyk7Ci0KLXRlc3QoZnVuY3Rpb24gKCkgewot
ICAgIGNsYXNzIEVsZW1lbnRXaXRoTm9QYXJlbnQgZXh0ZW5kcyBIVE1MRWxlbWVudCB7Ci0gICAg
ICAgIGNvbnN0cnVjdG9yKCkKLSAgICAgICAgewotICAgICAgICAgICAgc3VwZXIoKTsKLSAgICAg
ICAgICAgIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpLmFwcGVuZENoaWxkKHRoaXMpOwot
ICAgICAgICAgICAgdGhpcy5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRoaXMpOwotICAgICAgICB9
Ci0gICAgfTsKLSAgICBjdXN0b21FbGVtZW50cy5kZWZpbmUoJ2VsZW1lbnQtd2l0aC1uby1wYXJl
bnQnLCBFbGVtZW50V2l0aE5vUGFyZW50KTsKLSAgICB2YXIgaW5zdGFuY2U7Ci0gICAgYXNzZXJ0
X25vdF9yZXBvcnRzKGZ1bmN0aW9uICgpIHsgaW5zdGFuY2UgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCdlbGVtZW50LXdpdGgtbm8tcGFyZW50Jyk7IH0pOwotICAgIGFzc2VydF90cnVlKGluc3Rh
bmNlIGluc3RhbmNlb2YgRWxlbWVudFdpdGhOb1BhcmVudCk7Ci19LCAnZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCBtdXN0IG5vdCByZXBvcnQgYSBOb3RTdXBwb3J0ZWRFcnJvciB3aGVuIHRoZSBlbGVt
ZW50IGlzIGluc2VydGVkIGFuZCByZW1vdmVkIGZyb20gYW5vdGhlciBlbGVtZW50IGR1cmluZyBj
b25zdHJ1Y3Rpb24nKTsKLQotRG9jdW1lbnRUeXBlcy5mb3JFYWNoKGZ1bmN0aW9uIChlbnRyeSwg
dGVzdE51bWJlcikgewotICAgIGlmIChlbnRyeS5pc093bmVyKQotICAgICAgICByZXR1cm47Ci0K
LSAgICB2YXIgZ2V0RG9jdW1lbnQgPSBlbnRyeS5jcmVhdGU7Ci0gICAgdmFyIGRvY3VlbW50TmFt
ZSA9IGVudHJ5Lm5hbWU7Ci0KLSAgICBwcm9taXNlX3Rlc3QoZnVuY3Rpb24gKCkgewotICAgICAg
ICByZXR1cm4gZ2V0RG9jdW1lbnQoKS50aGVuKGZ1bmN0aW9uIChkb2MpIHsKLSAgICAgICAgICAg
IGNsYXNzIEVsZW1lbnRXaXRoQWRvcHRDYWxsIGV4dGVuZHMgSFRNTEVsZW1lbnQgewotICAgICAg
ICAgICAgICAgIGNvbnN0cnVjdG9yKCkKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAg
ICAgICAgIHN1cGVyKCk7Ci0gICAgICAgICAgICAgICAgICAgIGRvYy5hZG9wdE5vZGUodGhpcyk7
Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfTsKLSAgICAgICAgICAgIHZhciBuYW1l
ID0gJ2VsZW1lbnQtd2l0aC1hZG9wdC1jYWxsLScgKyB0ZXN0TnVtYmVyOwotICAgICAgICAgICAg
Y3VzdG9tRWxlbWVudHMuZGVmaW5lKG5hbWUsIEVsZW1lbnRXaXRoQWRvcHRDYWxsKTsKLSAgICAg
ICAgICAgIGFzc2VydF90cnVlKG5ldyBFbGVtZW50V2l0aEFkb3B0Q2FsbCBpbnN0YW5jZW9mIEVs
ZW1lbnRXaXRoQWRvcHRDYWxsKTsKLSAgICAgICAgICAgIHZhciBpbnN0YW5jZTsKLSAgICAgICAg
ICAgIGFzc2VydF9yZXBvcnRzKHtuYW1lOiAnTm90U3VwcG9ydGVkRXJyb3InfSwgZnVuY3Rpb24g
KCkgeyBpbnN0YW5jZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQobmFtZSk7IH0pOwotICAgICAg
ICAgICAgYXNzZXJ0X2VxdWFscyhpbnN0YW5jZS5sb2NhbE5hbWUsIG5hbWUpOwotICAgICAgICAg
ICAgYXNzZXJ0X3RydWUoaW5zdGFuY2UgaW5zdGFuY2VvZiBIVE1MVW5rbm93bkVsZW1lbnQpOwot
ICAgICAgICB9KTsKLSAgICB9LCAnZG9jdW1lbnQuY3JlYXRlRWxlbWVudCBtdXN0IHJlcG9ydCBh
IE5vdFN1cHBvcnRlZEVycm9yIHdoZW4gdGhlIGVsZW1lbnQgaXMgYWRvcHRlZCBpbnRvIGEgJyAr
IGRvY3VlbW50TmFtZSArICcgZHVyaW5nIGNvbnN0cnVjdGlvbicpOwotCi0gICAgcHJvbWlzZV90
ZXN0KGZ1bmN0aW9uICgpIHsKLSAgICAgICAgcmV0dXJuIGdldERvY3VtZW50KCkudGhlbihmdW5j
dGlvbiAoZG9jKSB7Ci0gICAgICAgICAgICBjbGFzcyBFbGVtZW50SW5zZXJ0ZWRJbnRvQW5vdGhl
ckRvY3VtZW50IGV4dGVuZHMgSFRNTEVsZW1lbnQgewotICAgICAgICAgICAgICAgIGNvbnN0cnVj
dG9yKCkKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIHN1cGVyKCk7Ci0g
ICAgICAgICAgICAgICAgICAgIGRvYy5kb2N1bWVudEVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcyk7
Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfTsKLSAgICAgICAgICAgIHZhciBuYW1l
ID0gJ2VsZW1lbnQtaW5zZXJ0ZWQtaW50by1hbm90aGVyLWRvY3VtZW50LScgKyB0ZXN0TnVtYmVy
OwotICAgICAgICAgICAgY3VzdG9tRWxlbWVudHMuZGVmaW5lKG5hbWUsIEVsZW1lbnRJbnNlcnRl
ZEludG9Bbm90aGVyRG9jdW1lbnQpOwotICAgICAgICAgICAgYXNzZXJ0X3RydWUobmV3IEVsZW1l
bnRJbnNlcnRlZEludG9Bbm90aGVyRG9jdW1lbnQgaW5zdGFuY2VvZiBFbGVtZW50SW5zZXJ0ZWRJ
bnRvQW5vdGhlckRvY3VtZW50KTsKLSAgICAgICAgICAgIHZhciBpbnN0YW5jZTsKLSAgICAgICAg
ICAgIGFzc2VydF9yZXBvcnRzKHtuYW1lOiAnTm90U3VwcG9ydGVkRXJyb3InfSwgZnVuY3Rpb24g
KCkgeyBpbnN0YW5jZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQobmFtZSk7IH0pOwotICAgICAg
ICAgICAgYXNzZXJ0X2VxdWFscyhpbnN0YW5jZS5sb2NhbE5hbWUsIG5hbWUpOwotICAgICAgICAg
ICAgYXNzZXJ0X3RydWUoaW5zdGFuY2UgaW5zdGFuY2VvZiBIVE1MVW5rbm93bkVsZW1lbnQpOwot
ICAgICAgICB9KTsKLSAgICB9LCAnZG9jdW1lbnQuY3JlYXRlRWxlbWVudCBtdXN0IHJlcG9ydCBh
IE5vdFN1cHBvcnRlZEVycm9yIHdoZW4gdGhlIGVsZW1lbnQgaXMgaW5zZXJ0ZWQgaW50byBhICcg
KyBkb2N1ZW1udE5hbWUgKyAnIGR1cmluZyBjb25zdHJ1Y3Rpb24nKTsKLQotICAgIHByb21pc2Vf
dGVzdChmdW5jdGlvbiAoKSB7Ci0gICAgICAgIHJldHVybiBnZXREb2N1bWVudCgpLnRoZW4oZnVu
Y3Rpb24gKGRvYykgewotICAgICAgICAgICAgY2xhc3MgRWxlbWVudFRoYXRHZXRBZG9wdGVkQmFj
ayBleHRlbmRzIEhUTUxFbGVtZW50IHsKLSAgICAgICAgICAgICAgICBjb25zdHJ1Y3RvcigpCi0g
ICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICBzdXBlcigpOwotICAgICAgICAg
ICAgICAgICAgICBkb2MuYWRvcHROb2RlKHRoaXMpOwotICAgICAgICAgICAgICAgICAgICBkb2N1
bWVudC5hZG9wdE5vZGUodGhpcyk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfTsK
LSAgICAgICAgICAgIHZhciBuYW1lID0gJ2VsZW1lbnQtdGhhdC1nZXQtYWRvcHRlZC1iYWNrJyAr
IHRlc3ROdW1iZXI7Ci0gICAgICAgICAgICBjdXN0b21FbGVtZW50cy5kZWZpbmUobmFtZSwgRWxl
bWVudFRoYXRHZXRBZG9wdGVkQmFjayk7Ci0gICAgICAgICAgICB2YXIgaW5zdGFuY2U7Ci0gICAg
ICAgICAgICBhc3NlcnRfbm90X3JlcG9ydHMoZnVuY3Rpb24gKCkgeyBpbnN0YW5jZSA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQobmFtZSk7IH0pOwotICAgICAgICAgICAgYXNzZXJ0X3RydWUoaW5z
dGFuY2UgaW5zdGFuY2VvZiBFbGVtZW50VGhhdEdldEFkb3B0ZWRCYWNrKTsKLSAgICAgICAgfSk7
Ci0gICAgfSwgJ2RvY3VtZW50LmNyZWF0ZUVsZW1lbnQgbXVzdCBub3QgcmVwb3J0IGEgTm90U3Vw
cG9ydGVkRXJyb3Igd2hlbiB0aGUgZWxlbWVudCBpcyBhZG9wdGVkIGJhY2sgZnJvbSBhICcgKyBk
b2N1ZW1udE5hbWUgKyAnIGR1cmluZyBjb25zdHJ1Y3Rpb24nKTsKLX0pOwotCi10ZXN0KGZ1bmN0
aW9uICgpIHsKLSAgICBjbGFzcyBEaXZDdXN0b21FbGVtZW50IGV4dGVuZHMgSFRNTEVsZW1lbnQg
ewotICAgICAgICBjb25zdHJ1Y3RvcigpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHN1cGVyKCk7
Ci0gICAgICAgICAgICByZXR1cm4gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAg
ICAgIH0KLSAgICB9OwotICAgIGN1c3RvbUVsZW1lbnRzLmRlZmluZSgnZGl2LWN1c3RvbS1lbGVt
ZW50JywgRGl2Q3VzdG9tRWxlbWVudCk7Ci0gICAgYXNzZXJ0X3RydWUobmV3IERpdkN1c3RvbUVs
ZW1lbnQgaW5zdGFuY2VvZiBIVE1MRGl2RWxlbWVudCk7Ci0gICAgdmFyIGluc3RhbmNlOwotICAg
IGFzc2VydF9yZXBvcnRzKHtuYW1lOiAnTm90U3VwcG9ydGVkRXJyb3InfSwgZnVuY3Rpb24gKCkg
eyBpbnN0YW5jZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Rpdi1jdXN0b20tZWxlbWVudCcp
OyB9KTsKLSAgICBhc3NlcnRfZXF1YWxzKGluc3RhbmNlLmxvY2FsTmFtZSwgJ2Rpdi1jdXN0b20t
ZWxlbWVudCcpOwotICAgIGFzc2VydF90cnVlKGluc3RhbmNlIGluc3RhbmNlb2YgSFRNTFVua25v
d25FbGVtZW50KTsKLX0sICdkb2N1bWVudC5jcmVhdGVFbGVtZW50IG11c3QgcmVwb3J0IGEgTm90
U3VwcG9ydGVkRXJyb3Igd2hlbiB0aGUgbG9jYWwgbmFtZSBvZiB0aGUgZWxlbWVudCBkb2VzIG5v
dCBtYXRjaCB0aGF0IG9mIHRoZSBjdXN0b20gZWxlbWVudCcpOwotCi10ZXN0KGZ1bmN0aW9uICgp
IHsKLSAgICB2YXIgZXhjZXB0aW9uVG9UaHJvdyA9IHtuYW1lOiAnZXhjZXB0aW9uIHRocm93biBi
eSBhIGN1c3RvbSBjb25zdHJ1Y3Rvcid9OwotICAgIGNsYXNzIFRocm93Q3VzdG9tRWxlbWVudCBl
eHRlbmRzIEhUTUxFbGVtZW50IHsKLSAgICAgICAgY29uc3RydWN0b3IoKQotICAgICAgICB7Ci0g
ICAgICAgICAgICBzdXBlcigpOwotICAgICAgICAgICAgaWYgKGV4Y2VwdGlvblRvVGhyb3cpCi0g
ICAgICAgICAgICAgICAgdGhyb3cgZXhjZXB0aW9uVG9UaHJvdzsKLSAgICAgICAgfQotICAgIH07
Ci0gICAgY3VzdG9tRWxlbWVudHMuZGVmaW5lKCd0aHJvdy1jdXN0b20tZWxlbWVudCcsIFRocm93
Q3VzdG9tRWxlbWVudCk7Ci0KLSAgICBhc3NlcnRfdGhyb3dzKGV4Y2VwdGlvblRvVGhyb3csIGZ1
bmN0aW9uICgpIHsgbmV3IFRocm93Q3VzdG9tRWxlbWVudDsgfSk7Ci0gICAgdmFyIGluc3RhbmNl
OwotICAgIGFzc2VydF9yZXBvcnRzKGV4Y2VwdGlvblRvVGhyb3csIGZ1bmN0aW9uICgpIHsgaW5z
dGFuY2UgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0aHJvdy1jdXN0b20tZWxlbWVudCcpOyB9
KTsKLSAgICBhc3NlcnRfZXF1YWxzKGluc3RhbmNlLmxvY2FsTmFtZSwgJ3Rocm93LWN1c3RvbS1l
bGVtZW50Jyk7Ci0gICAgYXNzZXJ0X3RydWUoaW5zdGFuY2UgaW5zdGFuY2VvZiBIVE1MVW5rbm93
bkVsZW1lbnQpOwotCi0gICAgZXhjZXB0aW9uVG9UaHJvdyA9IGZhbHNlOwotICAgIHZhciBpbnN0
YW5jZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3Rocm93LWN1c3RvbS1lbGVtZW50Jyk7Ci0g
ICAgYXNzZXJ0X3RydWUoaW5zdGFuY2UgaW5zdGFuY2VvZiBUaHJvd0N1c3RvbUVsZW1lbnQpOwot
ICAgIGFzc2VydF9lcXVhbHMoaW5zdGFuY2UubG9jYWxOYW1lLCAndGhyb3ctY3VzdG9tLWVsZW1l
bnQnKTsKLQotfSwgJ2RvY3VtZW50LmNyZWF0ZUVsZW1lbnQgbXVzdCByZXBvcnQgYW4gZXhjZXB0
aW9uIHRocm93biBieSBhIGN1c3RvbSBlbGVtZW50IGNvbnN0cnVjdG9yJyk7Ci0KLTwvc2NyaXB0
PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jdXN0b20t
ZWxlbWVudHMvZW5xdWV1ZS1jdXN0b20tZWxlbWVudC11cGdyYWRlLXJlYWN0aW9uLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRzL2VucXVldWUtY3VzdG9tLWVs
ZW1lbnQtdXBncmFkZS1yZWFjdGlvbi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGJlNDQ3NzQzN2IyYjVjYjYwYzQ3MWJiZmNmM2JmOTc3NWUxMzA2NDMuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFz
dC9jdXN0b20tZWxlbWVudHMvZW5xdWV1ZS1jdXN0b20tZWxlbWVudC11cGdyYWRlLXJlYWN0aW9u
LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDI3ICswLDAgQEAKLQotUEFTUyBDcmVh
dGluZyBhbiBlbGVtZW50IGluIGRvY3VtZW50IG9mIGEgdGVtcGxhdGUgZWxlbWVudCBtdXN0IG5v
dCBlbnF1ZXVlIGEgY3VzdG9tIGVsZW1lbnQgdXBncmFkZSByZWFjdGlvbiBiZWNhdXNlIHRoZSBk
b2N1bWVudCBkb2VzIG5vdCBoYXZlIGEgYnJvd3NpbmcgY29udGV4dCAKLVBBU1MgQ3JlYXRpbmcg
YW4gZWxlbWVudCBpbiBkb2N1bWVudCBvZiBhIHRlbXBsYXRlIGVsZW1lbnQgYW5kIGluc2VydGlu
ZyBpbnRvIHRoZSBkb2N1bWVudCBtdXN0IG5vdCBlbnF1ZXVlIGEgY3VzdG9tIGVsZW1lbnQgdXBn
cmFkZSByZWFjdGlvbiAKLVBBU1MgQ3JlYXRpbmcgYW4gZWxlbWVudCBpbiBkb2N1bWVudCBvZiBh
IHRlbXBsYXRlIGVsZW1lbnQgYW5kIGFkb3B0aW5nIGJhY2sgdG8gYSBkb2N1bWVudCB3aXRoIGJy
b3dzaW5nIGNvbnRleHQgbXVzdCBlbnF1ZXVlIGEgY3VzdG9tIGVsZW1lbnQgdXBncmFkZSByZWFj
dGlvbiAKLVBBU1MgQ3JlYXRpbmcgYW4gZWxlbWVudCBpbiBuZXcgZG9jdW1lbnQgbXVzdCBub3Qg
ZW5xdWV1ZSBhIGN1c3RvbSBlbGVtZW50IHVwZ3JhZGUgcmVhY3Rpb24gYmVjYXVzZSB0aGUgZG9j
dW1lbnQgZG9lcyBub3QgaGF2ZSBhIGJyb3dzaW5nIGNvbnRleHQgCi1QQVNTIENyZWF0aW5nIGFu
IGVsZW1lbnQgaW4gbmV3IGRvY3VtZW50IGFuZCBpbnNlcnRpbmcgaW50byB0aGUgZG9jdW1lbnQg
bXVzdCBub3QgZW5xdWV1ZSBhIGN1c3RvbSBlbGVtZW50IHVwZ3JhZGUgcmVhY3Rpb24gCi1QQVNT
IENyZWF0aW5nIGFuIGVsZW1lbnQgaW4gbmV3IGRvY3VtZW50IGFuZCBhZG9wdGluZyBiYWNrIHRv
IGEgZG9jdW1lbnQgd2l0aCBicm93c2luZyBjb250ZXh0IG11c3QgZW5xdWV1ZSBhIGN1c3RvbSBl
bGVtZW50IHVwZ3JhZGUgcmVhY3Rpb24gCi1QQVNTIENyZWF0aW5nIGFuIGVsZW1lbnQgaW4gY2xv
bmVkIGRvY3VtZW50IG11c3Qgbm90IGVucXVldWUgYSBjdXN0b20gZWxlbWVudCB1cGdyYWRlIHJl
YWN0aW9uIGJlY2F1c2UgdGhlIGRvY3VtZW50IGRvZXMgbm90IGhhdmUgYSBicm93c2luZyBjb250
ZXh0IAotUEFTUyBDcmVhdGluZyBhbiBlbGVtZW50IGluIGNsb25lZCBkb2N1bWVudCBhbmQgaW5z
ZXJ0aW5nIGludG8gdGhlIGRvY3VtZW50IG11c3Qgbm90IGVucXVldWUgYSBjdXN0b20gZWxlbWVu
dCB1cGdyYWRlIHJlYWN0aW9uIAotUEFTUyBDcmVhdGluZyBhbiBlbGVtZW50IGluIGNsb25lZCBk
b2N1bWVudCBhbmQgYWRvcHRpbmcgYmFjayB0byBhIGRvY3VtZW50IHdpdGggYnJvd3NpbmcgY29u
dGV4dCBtdXN0IGVucXVldWUgYSBjdXN0b20gZWxlbWVudCB1cGdyYWRlIHJlYWN0aW9uIAotUEFT
UyBDcmVhdGluZyBhbiBlbGVtZW50IGluIGRvY3VtZW50IGNyZWF0ZWQgYnkgY3JlYXRlSFRNTERv
Y3VtZW50IG11c3Qgbm90IGVucXVldWUgYSBjdXN0b20gZWxlbWVudCB1cGdyYWRlIHJlYWN0aW9u
IGJlY2F1c2UgdGhlIGRvY3VtZW50IGRvZXMgbm90IGhhdmUgYSBicm93c2luZyBjb250ZXh0IAot
UEFTUyBDcmVhdGluZyBhbiBlbGVtZW50IGluIGRvY3VtZW50IGNyZWF0ZWQgYnkgY3JlYXRlSFRN
TERvY3VtZW50IGFuZCBpbnNlcnRpbmcgaW50byB0aGUgZG9jdW1lbnQgbXVzdCBub3QgZW5xdWV1
ZSBhIGN1c3RvbSBlbGVtZW50IHVwZ3JhZGUgcmVhY3Rpb24gCi1QQVNTIENyZWF0aW5nIGFuIGVs
ZW1lbnQgaW4gZG9jdW1lbnQgY3JlYXRlZCBieSBjcmVhdGVIVE1MRG9jdW1lbnQgYW5kIGFkb3B0
aW5nIGJhY2sgdG8gYSBkb2N1bWVudCB3aXRoIGJyb3dzaW5nIGNvbnRleHQgbXVzdCBlbnF1ZXVl
IGEgY3VzdG9tIGVsZW1lbnQgdXBncmFkZSByZWFjdGlvbiAKLVBBU1MgQ3JlYXRpbmcgYW4gZWxl
bWVudCBpbiBIVE1MIGRvY3VtZW50IGNyZWF0ZWQgYnkgY3JlYXRlRG9jdW1lbnQgbXVzdCBub3Qg
ZW5xdWV1ZSBhIGN1c3RvbSBlbGVtZW50IHVwZ3JhZGUgcmVhY3Rpb24gYmVjYXVzZSB0aGUgZG9j
dW1lbnQgZG9lcyBub3QgaGF2ZSBhIGJyb3dzaW5nIGNvbnRleHQgCi1QQVNTIENyZWF0aW5nIGFu
IGVsZW1lbnQgaW4gSFRNTCBkb2N1bWVudCBjcmVhdGVkIGJ5IGNyZWF0ZURvY3VtZW50IGFuZCBp
bnNlcnRpbmcgaW50byB0aGUgZG9jdW1lbnQgbXVzdCBub3QgZW5xdWV1ZSBhIGN1c3RvbSBlbGVt
ZW50IHVwZ3JhZGUgcmVhY3Rpb24gCi1QQVNTIENyZWF0aW5nIGFuIGVsZW1lbnQgaW4gSFRNTCBk
b2N1bWVudCBjcmVhdGVkIGJ5IGNyZWF0ZURvY3VtZW50IGFuZCBhZG9wdGluZyBiYWNrIHRvIGEg
ZG9jdW1lbnQgd2l0aCBicm93c2luZyBjb250ZXh0IG11c3QgZW5xdWV1ZSBhIGN1c3RvbSBlbGVt
ZW50IHVwZ3JhZGUgcmVhY3Rpb24gCi1QQVNTIENyZWF0aW5nIGFuIGVsZW1lbnQgaW4gSFRNTCBk
b2N1bWVudCBmZXRjaGVkIGJ5IFhIUiBtdXN0IG5vdCBlbnF1ZXVlIGEgY3VzdG9tIGVsZW1lbnQg
dXBncmFkZSByZWFjdGlvbiBiZWNhdXNlIHRoZSBkb2N1bWVudCBkb2VzIG5vdCBoYXZlIGEgYnJv
d3NpbmcgY29udGV4dCAKLVBBU1MgQ3JlYXRpbmcgYW4gZWxlbWVudCBpbiBIVE1MIGRvY3VtZW50
IGZldGNoZWQgYnkgWEhSIGFuZCBpbnNlcnRpbmcgaW50byB0aGUgZG9jdW1lbnQgbXVzdCBub3Qg
ZW5xdWV1ZSBhIGN1c3RvbSBlbGVtZW50IHVwZ3JhZGUgcmVhY3Rpb24gCi1QQVNTIENyZWF0aW5n
IGFuIGVsZW1lbnQgaW4gSFRNTCBkb2N1bWVudCBmZXRjaGVkIGJ5IFhIUiBhbmQgYWRvcHRpbmcg
YmFjayB0byBhIGRvY3VtZW50IHdpdGggYnJvd3NpbmcgY29udGV4dCBtdXN0IGVucXVldWUgYSBj
dXN0b20gZWxlbWVudCB1cGdyYWRlIHJlYWN0aW9uIAotUEFTUyBDcmVhdGluZyBhbiBlbGVtZW50
IGluIGRvY3VtZW50IGluIGFuIGlmcmFtZSBtdXN0IG5vdCBlbnF1ZXVlIGEgY3VzdG9tIGVsZW1l
bnQgdXBncmFkZSByZWFjdGlvbiBpZiB0aGVyZSBpcyBubyBtYXRjaGluZyBkZWZpbml0aW9uIAot
UEFTUyBDcmVhdGluZyBhbiBlbGVtZW50IGluIGRvY3VtZW50IGluIGFuIGlmcmFtZSBtdXN0IGVu
cXVldWUgYSBjdXN0b20gZWxlbWVudCB1cGdyYWRlIHJlYWN0aW9uIGlmIHRoZXJlIGlzIGEgbWF0
Y2hpbmcgZGVmaW5pdGlvbiAKLVBBU1MgImRlZmluZSIgaW4gZG9jdW1lbnQgaW4gYW4gaWZyYW1l
IG11c3Qgbm90IGVucXVldWUgYSBjdXN0b20gZWxlbWVudCB1cGdyYWRlIHJlYWN0aW9uIG9uIGEg
ZGlzY29ubmVjdGVkIHVucmVzb2x2ZWQgY3VzdG9tIGVsZW1lbnQgCi1QQVNTIEluc2VydGluZyBh
biB1bnJlc29sdmVkIGN1c3RvbSBlbGVtZW50IGludG8gZG9jdW1lbnQgaW4gYW4gaWZyYW1lIG11
c3QgZW5xdWV1ZSBhIGN1c3RvbSBlbGVtZW50IHVwZ3JhZGUgcmVhY3Rpb24gCi1QQVNTICJkZWZp
bmUiIGluIGRvY3VtZW50IGluIGFuIGlmcmFtZSBtdXN0IGVucXVldWUgYSBjdXN0b20gZWxlbWVu
dCB1cGdyYWRlIHJlYWN0aW9uIG9uIGEgY29ubmVjdGVkIHVucmVzb2x2ZWQgY3VzdG9tIGVsZW1l
bnQgCi1QQVNTIEFkb3B0aW5nIChhbmQgbGVhdmluZyBkaXNjb25uY2V0ZWQpIGFuIHVucmVzb2x2
ZWQgY3VzdG9tIGVsZW1lbnQgaW50byBkb2N1bWVudCBpbiBhbiBpZnJhbWUgbXVzdCBub3QgZW5x
dWV1ZSBhIGN1c3RvbSBlbGVtZW50IHVwZ3JhZGUgcmVhY3Rpb24gCi1QQVNTIEFkb3B0aW5nIGFu
ZCBpbnNlcnRpbmcgYW4gdW5yZXNvbHZlZCBjdXN0b20gZWxlbWVudCBpbnRvIGRvY3VtZW50IGlu
IGFuIGlmcmFtZSBtdXN0IGVucXVldWUgYSBjdXN0b20gZWxlbWVudCB1cGdyYWRlIHJlYWN0aW9u
IAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2N1c3RvbS1lbGVtZW50cy9lbnF1ZXVl
LWN1c3RvbS1lbGVtZW50LXVwZ3JhZGUtcmVhY3Rpb24uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
Y3VzdG9tLWVsZW1lbnRzL2VucXVldWUtY3VzdG9tLWVsZW1lbnQtdXBncmFkZS1yZWFjdGlvbi5o
dG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3NTExZGMxOTY3YWEzODFmNDdjOWZl
ODFjZDdhNTg5ZWI3NjU5Yjg2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRzL2VucXVldWUtY3VzdG9t
LWVsZW1lbnQtdXBncmFkZS1yZWFjdGlvbi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTg5ICsw
LDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTx0aXRsZT5DdXN0b20gRWxl
bWVudHM6IEVucXVldWUgYSBjdXN0b20gZWxlbWVudCB1cGdyYWRlIHJlYWN0aW9uPC90aXRsZT4K
LTxtZXRhIG5hbWU9ImF1dGhvciIgdGl0bGU9IlJ5b3N1a2UgTml3YSIgaHJlZj0ibWFpbHRvOnJu
aXdhQHdlYmtpdC5vcmciPgotPG1ldGEgbmFtZT0iYXNzZXJ0IiBjb250ZW50PSJFbnF1ZXVlIGEg
Y3VzdG9tIGVsZW1lbnQgdXBncmFkZSByZWFjdGlvbiBtdXN0IHVwZ3JhZGUgYSBjdXN0b20gZWxl
bWVudCI+Ci08bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZG9tLnNwZWMud2hhdHdnLm9y
Zy8jY29uY2VwdC1jcmVhdGUtZWxlbWVudCI+Ci08bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBz
Oi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3NjcmlwdGluZy5odG1sI2NvbmNlcHQt
dHJ5LXVwZ3JhZGUiPgotPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2h0bWwuc3BlYy53
aGF0d2cub3JnL211bHRpcGFnZS9zY3JpcHRpbmcuaHRtbCNlbnF1ZXVlLWEtY3VzdG9tLWVsZW1l
bnQtdXBncmFkZS1yZWFjdGlvbiI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhh
cm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPGxpbmsgcmVsPSdzdHlsZXNoZWV0JyBocmVmPScu
Li8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuY3NzJz4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
ZG9jdW1lbnQtdHlwZXMuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08ZGl2IGlkPSJs
b2ciPjwvZGl2PgotPHNjcmlwdD4KLQotY2xhc3MgUHJlZGVmaW5lZEN1c3RvbUVsZW1lbnQgZXh0
ZW5kcyBIVE1MRWxlbWVudCB7fQotY3VzdG9tRWxlbWVudHMuZGVmaW5lKCdwcmVkZWZpbmVkLWN1
c3RvbS1lbGVtZW50JywgUHJlZGVmaW5lZEN1c3RvbUVsZW1lbnQpOwotCi12YXIgY3VzdG9tRWxl
bWVudE51bWJlciA9IDE7Ci1mdW5jdGlvbiBnZW5lcmF0ZU5leHRDdXN0b21FbGVtZW50TmFtZSgp
IHsgcmV0dXJuICdjdXN0b20tJyArIGN1c3RvbUVsZW1lbnROdW1iZXIrKzsgfQotCi1Eb2N1bWVu
dFR5cGVzLmZpbHRlcihmdW5jdGlvbiAoZW50cnkpIHsgcmV0dXJuICFlbnRyeS5pc093bmVyICYm
ICFlbnRyeS5oYXNCcm93c2luZ0NvbnRleHQ7IH0pLmZvckVhY2goZnVuY3Rpb24gKGVudHJ5KSB7
Ci0gICAgdmFyIGRvY3VtZW50TmFtZSA9IGVudHJ5Lm5hbWU7Ci0gICAgdmFyIGdldERvY3VtZW50
ID0gZW50cnkuY3JlYXRlOwotCi0gICAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uICgpIHsKLSAgICAg
ICAgcmV0dXJuIGdldERvY3VtZW50KCkudGhlbihmdW5jdGlvbiAoZG9jKSB7Ci0gICAgICAgICAg
ICBhc3NlcnRfZmFsc2UoZG9jLmNyZWF0ZUVsZW1lbnQoJ3ByZWRlZmluZWQtY3VzdG9tLWVsZW1l
bnQnKSBpbnN0YW5jZW9mIFByZWRlZmluZWRDdXN0b21FbGVtZW50KTsKLSAgICAgICAgfSk7Ci0g
ICAgfSwgJ0NyZWF0aW5nIGFuIGVsZW1lbnQgaW4gJyArIGRvY3VtZW50TmFtZSArICcgbXVzdCBu
b3QgZW5xdWV1ZSBhIGN1c3RvbSBlbGVtZW50IHVwZ3JhZGUgcmVhY3Rpb24nCi0gICAgICAgICsg
JyBiZWNhdXNlIHRoZSBkb2N1bWVudCBkb2VzIG5vdCBoYXZlIGEgYnJvd3NpbmcgY29udGV4dCcp
OwotCi0gICAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uICgpIHsKLSAgICAgICAgdmFyIG5hbWUgPSBn
ZW5lcmF0ZU5leHRDdXN0b21FbGVtZW50TmFtZSgpOwotICAgICAgICB2YXIgdW5yZXNvbHZlZEVs
ZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KG5hbWUpOwotCi0gICAgICAgIGFzc2VydF9l
cXVhbHModW5yZXNvbHZlZEVsZW1lbnQuX19wcm90b19fLCBIVE1MRWxlbWVudC5wcm90b3R5cGUs
Ci0gICAgICAgICAgICAnW1tQcm90b3R5cGVdXSBpbnRlcm5hbCBzbG90IG9mIHRoZSB1bnJlc29s
dmVkIGN1c3RvbSBlbGVtZW50IG11c3QgYmUgdGhlIEhUTUxFbGVtZW50IHByb3RvdHlwZScpOwot
Ci0gICAgICAgIHJldHVybiBnZXREb2N1bWVudCgpLnRoZW4oZnVuY3Rpb24gKGRvYykgewotICAg
ICAgICAgICAgdmFyIHVucmVzb2x2ZWRFbGVtZW50SW5Eb2MgPSBkb2MuY3JlYXRlRWxlbWVudChu
YW1lKTsKLSAgICAgICAgICAgIHZhciBwcm90b3R5cGUgPSAodW5yZXNvbHZlZEVsZW1lbnRJbkRv
Yy5uYW1lc3BhY2VVUkkgPT0gJ2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnID8gSFRNTEVs
ZW1lbnQgOiBFbGVtZW50KS5wcm90b3R5cGU7Ci0KLSAgICAgICAgICAgIGFzc2VydF9lcXVhbHMo
dW5yZXNvbHZlZEVsZW1lbnRJbkRvYy5fX3Byb3RvX18sIHByb3RvdHlwZSwKLSAgICAgICAgICAg
ICAgICAnW1tQcm90b3R5cGVdXSBpbnRlcm5hbCBzbG90IG9mIHRoZSB1bnJlc29sdmVkIGN1c3Rv
bSBlbGVtZW50IG11c3QgYmUgdGhlICcgKyBwcm90b3R5cGUudG9TdHJpbmcoKSArICcgcHJvdG90
eXBlJyk7Ci0gICAgICAgICAgICB2YXIgc29tZUN1c3RvbUVsZW1lbnQgPSBjbGFzcyBleHRlbmRz
IEhUTUxFbGVtZW50IHt9OwotICAgICAgICAgICAgY3VzdG9tRWxlbWVudHMuZGVmaW5lKG5hbWUs
IHNvbWVDdXN0b21FbGVtZW50KTsKLSAgICAgICAgICAgIGFzc2VydF9lcXVhbHModW5yZXNvbHZl
ZEVsZW1lbnRJbkRvYy5fX3Byb3RvX18sIHByb3RvdHlwZSwgJyJkZWZpbmUiIG11c3Qgbm90IHVw
Z3JhZGUgYSBkaXNjb25uZWN0ZWQgdW5yZXNvbHZlZCBjdXN0b20gZWxlbWVudHMnKTsKLSAgICAg
ICAgICAgIGRvYy5kb2N1bWVudEVsZW1lbnQuYXBwZW5kQ2hpbGQodW5yZXNvbHZlZEVsZW1lbnRJ
bkRvYyk7Ci0gICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHVucmVzb2x2ZWRFbGVtZW50SW5Eb2Mu
X19wcm90b19fLCBwcm90b3R5cGUsCi0gICAgICAgICAgICAgICAgJ0luc2VydGluZyBhbiBlbGVt
ZW50IGludG8gYSBkb2N1bWVudCB3aXRob3V0IGEgYnJvd3NpbmcgY29udGV4dCBtdXN0IG5vdCBl
bnF1ZXVlIGEgY3VzdG9tIGVsZW1lbnQgdXBncmFkZSByZWFjdGlvbicpOwotICAgICAgICB9KTsK
LSAgICB9LCAnQ3JlYXRpbmcgYW4gZWxlbWVudCBpbiAnICsgZG9jdW1lbnROYW1lICsgJyBhbmQg
aW5zZXJ0aW5nIGludG8gdGhlIGRvY3VtZW50IG11c3Qgbm90IGVucXVldWUgYSBjdXN0b20gZWxl
bWVudCB1cGdyYWRlIHJlYWN0aW9uJyk7Ci0KLSAgICBwcm9taXNlX3Rlc3QoZnVuY3Rpb24gKCkg
ewotICAgICAgICB2YXIgbmFtZSA9IGdlbmVyYXRlTmV4dEN1c3RvbUVsZW1lbnROYW1lKCk7Ci0g
ICAgICAgIHZhciB1bnJlc29sdmVkRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQobmFt
ZSk7Ci0KLSAgICAgICAgYXNzZXJ0X2VxdWFscyh1bnJlc29sdmVkRWxlbWVudC5fX3Byb3RvX18s
IEhUTUxFbGVtZW50LnByb3RvdHlwZSwKLSAgICAgICAgICAgICdbW1Byb3RvdHlwZV1dIGludGVy
bmFsIHNsb3Qgb2YgdGhlIHVucmVzb2x2ZWQgY3VzdG9tIGVsZW1lbnQgbXVzdCBiZSB0aGUgSFRN
TEVsZW1lbnQgcHJvdG90eXBlJyk7Ci0KLSAgICAgICAgcmV0dXJuIGdldERvY3VtZW50KCkudGhl
bihmdW5jdGlvbiAoZG9jKSB7Ci0gICAgICAgICAgICB2YXIgdW5yZXNvbHZlZEVsZW1lbnRJbkRv
YyA9IGRvYy5jcmVhdGVFbGVtZW50KG5hbWUpOwotICAgICAgICAgICAgdmFyIHByb3RvdHlwZSA9
ICh1bnJlc29sdmVkRWxlbWVudEluRG9jLm5hbWVzcGFjZVVSSSA9PSAnaHR0cDovL3d3dy53My5v
cmcvMTk5OS94aHRtbCcgPyBIVE1MRWxlbWVudCA6IEVsZW1lbnQpLnByb3RvdHlwZTsKLQotICAg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyh1bnJlc29sdmVkRWxlbWVudEluRG9jLl9fcHJvdG9fXywg
cHJvdG90eXBlLAotICAgICAgICAgICAgICAgICdbW1Byb3RvdHlwZV1dIGludGVybmFsIHNsb3Qg
b2YgdGhlIHVucmVzb2x2ZWQgY3VzdG9tIGVsZW1lbnQgbXVzdCBiZSB0aGUgJyArIHByb3RvdHlw
ZS50b1N0cmluZygpICsgJyBwcm90b3R5cGUnKTsKLSAgICAgICAgICAgIHZhciBzb21lQ3VzdG9t
RWxlbWVudCA9IGNsYXNzIGV4dGVuZHMgSFRNTEVsZW1lbnQge307Ci0gICAgICAgICAgICBjdXN0
b21FbGVtZW50cy5kZWZpbmUobmFtZSwgc29tZUN1c3RvbUVsZW1lbnQpOwotICAgICAgICAgICAg
YXNzZXJ0X2VxdWFscyh1bnJlc29sdmVkRWxlbWVudEluRG9jLl9fcHJvdG9fXywgcHJvdG90eXBl
LCAnImRlZmluZSIgbXVzdCBub3QgdXBncmFkZSBhIGRpc2Nvbm5lY3RlZCB1bnJlc29sdmVkIGN1
c3RvbSBlbGVtZW50cycpOwotICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh1
bnJlc29sdmVkRWxlbWVudEluRG9jKTsKLQotICAgICAgICAgICAgaWYgKHVucmVzb2x2ZWRFbGVt
ZW50SW5Eb2MubmFtZXNwYWNlVVJJID09ICdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJykg
ewotICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHModW5yZXNvbHZlZEVsZW1lbnRJbkRvYy5f
X3Byb3RvX18sIHNvbWVDdXN0b21FbGVtZW50LnByb3RvdHlwZSwKLSAgICAgICAgICAgICAgICAg
ICAgJ0luc2VydGluZyBhbiBlbGVtZW50IGludG8gYSBkb2N1bWVudCB3aXRoIGEgYnJvd3Npbmcg
Y29udGV4dCBtdXN0IGVucXVldWUgYSBjdXN0b20gZWxlbWVudCB1cGdyYWRlIHJlYWN0aW9uJyk7
Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHModW5y
ZXNvbHZlZEVsZW1lbnRJbkRvYy5fX3Byb3RvX18sIHByb3RvdHlwZSwKLSAgICAgICAgICAgICAg
ICAgICAgJ0xvb2tpbmcgdXAgYSBjdXN0b20gZWxlbWVudCBkZWZpbml0aW9uIG11c3QgcmV0dXJu
IG51bGwgaWYgdGhlIGVsZW1lbnQgaXMgbm90IGluIHRoZSBIVE1MIG5hbWVzcGFjZScpOwotICAg
ICAgICAgICAgfQotICAgICAgICB9KTsKLSAgICB9LCAnQ3JlYXRpbmcgYW4gZWxlbWVudCBpbiAn
ICsgZG9jdW1lbnROYW1lICsgJyBhbmQgYWRvcHRpbmcgYmFjayB0byBhIGRvY3VtZW50IHdpdGgg
YnJvd3NpbmcgY29udGV4dCBtdXN0IGVucXVldWUgYSBjdXN0b20gZWxlbWVudCB1cGdyYWRlIHJl
YWN0aW9uJyk7Ci0KLX0pOwotCi1Eb2N1bWVudFR5cGVzLmZpbHRlcihmdW5jdGlvbiAoZW50cnkp
IHsgcmV0dXJuICFlbnRyeS5pc093bmVyICYmIGVudHJ5Lmhhc0Jyb3dzaW5nQ29udGV4dDsgfSku
Zm9yRWFjaChmdW5jdGlvbiAoZW50cnkpIHsKLSAgICB2YXIgZG9jdW1lbnROYW1lID0gZW50cnku
bmFtZTsKLSAgICB2YXIgZ2V0RG9jdW1lbnQgPSBlbnRyeS5jcmVhdGU7Ci0KLSAgICBwcm9taXNl
X3Rlc3QoZnVuY3Rpb24gKCkgewotICAgICAgICByZXR1cm4gZ2V0RG9jdW1lbnQoKS50aGVuKGZ1
bmN0aW9uIChkb2MpIHsKLSAgICAgICAgICAgIGFzc2VydF9mYWxzZShkb2MuY3JlYXRlRWxlbWVu
dCgncHJlZGVmaW5lZC1jdXN0b20tZWxlbWVudCcpIGluc3RhbmNlb2YgUHJlZGVmaW5lZEN1c3Rv
bUVsZW1lbnQpOwotICAgICAgICB9KTsKLSAgICB9LCAnQ3JlYXRpbmcgYW4gZWxlbWVudCBpbiAn
ICsgZG9jdW1lbnROYW1lICsgJyBtdXN0IG5vdCBlbnF1ZXVlIGEgY3VzdG9tIGVsZW1lbnQgdXBn
cmFkZSByZWFjdGlvbiBpZiB0aGVyZSBpcyBubyBtYXRjaGluZyBkZWZpbml0aW9uJyk7Ci0KLSAg
ICBwcm9taXNlX3Rlc3QoZnVuY3Rpb24gKCkgewotICAgICAgICByZXR1cm4gZ2V0RG9jdW1lbnQo
KS50aGVuKGZ1bmN0aW9uIChkb2MpIHsKLSAgICAgICAgICAgIHZhciBkb2NXaW5kb3cgPSBkb2Mu
ZGVmYXVsdFZpZXc7Ci0gICAgICAgICAgICBjbGFzcyBEaXN0aW5jdFByZWRlZmluZWRDdXN0b21F
bGVtZW50IGV4dGVuZHMgZG9jV2luZG93LkhUTUxFbGVtZW50IHsgfTsKLSAgICAgICAgICAgIGRv
Y1dpbmRvdy5jdXN0b21FbGVtZW50cy5kZWZpbmUoJ3ByZWRlZmluZWQtY3VzdG9tLWVsZW1lbnQn
LCBEaXN0aW5jdFByZWRlZmluZWRDdXN0b21FbGVtZW50KTsKLSAgICAgICAgICAgIGFzc2VydF90
cnVlKGRvYy5jcmVhdGVFbGVtZW50KCdwcmVkZWZpbmVkLWN1c3RvbS1lbGVtZW50JykgaW5zdGFu
Y2VvZiBEaXN0aW5jdFByZWRlZmluZWRDdXN0b21FbGVtZW50KTsKLSAgICAgICAgfSk7Ci0gICAg
fSwgJ0NyZWF0aW5nIGFuIGVsZW1lbnQgaW4gJyArIGRvY3VtZW50TmFtZSArICcgbXVzdCBlbnF1
ZXVlIGEgY3VzdG9tIGVsZW1lbnQgdXBncmFkZSByZWFjdGlvbiBpZiB0aGVyZSBpcyBhIG1hdGNo
aW5nIGRlZmluaXRpb24nKTsKLQotICAgIHByb21pc2VfdGVzdChmdW5jdGlvbiAoKSB7Ci0gICAg
ICAgIHZhciB1bnJlc29sdmVkRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3VucmVz
b2x2ZWQtZWxlbWVudCcpOwotICAgICAgICByZXR1cm4gZ2V0RG9jdW1lbnQoKS50aGVuKGZ1bmN0
aW9uIChkb2MpIHsKLSAgICAgICAgICAgIHZhciBkb2NXaW5kb3cgPSBkb2MuZGVmYXVsdFZpZXc7
Ci0gICAgICAgICAgICBjbGFzcyBVbnJlc29sdmVkRWxlbWVudCBleHRlbmRzIGRvY1dpbmRvdy5I
VE1MRWxlbWVudCB7IH07Ci0gICAgICAgICAgICB2YXIgdW5yZXNvbHZlZEVsZW1lbnRJbkRvYyA9
IGRvYy5jcmVhdGVFbGVtZW50KCd1bnJlc29sdmVkLWVsZW1lbnQnKTsKLQotICAgICAgICAgICAg
YXNzZXJ0X2VxdWFscyh1bnJlc29sdmVkRWxlbWVudC5fX3Byb3RvX18sIEhUTUxFbGVtZW50LnBy
b3RvdHlwZSk7Ci0gICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHVucmVzb2x2ZWRFbGVtZW50SW5E
b2MuX19wcm90b19fLCBkb2NXaW5kb3cuSFRNTEVsZW1lbnQucHJvdG90eXBlKTsKLQotICAgICAg
ICAgICAgZG9jV2luZG93LmN1c3RvbUVsZW1lbnRzLmRlZmluZSgndW5yZXNvbHZlZC1lbGVtZW50
JywgVW5yZXNvbHZlZEVsZW1lbnQpOwotCi0gICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHVucmVz
b2x2ZWRFbGVtZW50Ll9fcHJvdG9fXywgSFRNTEVsZW1lbnQucHJvdG90eXBlKTsKLSAgICAgICAg
ICAgIGFzc2VydF9lcXVhbHModW5yZXNvbHZlZEVsZW1lbnRJbkRvYy5fX3Byb3RvX18sIGRvY1dp
bmRvdy5IVE1MRWxlbWVudC5wcm90b3R5cGUpOwotCi0gICAgICAgIH0pOwotICAgIH0sICciZGVm
aW5lIiBpbiAnICsgZG9jdW1lbnROYW1lICsgJyBtdXN0IG5vdCBlbnF1ZXVlIGEgY3VzdG9tIGVs
ZW1lbnQgdXBncmFkZSByZWFjdGlvbiBvbiBhIGRpc2Nvbm5lY3RlZCB1bnJlc29sdmVkIGN1c3Rv
bSBlbGVtZW50Jyk7Ci0KLSAgICBwcm9taXNlX3Rlc3QoZnVuY3Rpb24gKCkgewotICAgICAgICB2
YXIgdW5yZXNvbHZlZEVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd1bnJlc29sdmVk
LWVsZW1lbnQnKTsKLSAgICAgICAgcmV0dXJuIGdldERvY3VtZW50KCkudGhlbihmdW5jdGlvbiAo
ZG9jKSB7Ci0gICAgICAgICAgICB2YXIgZG9jV2luZG93ID0gZG9jLmRlZmF1bHRWaWV3OwotICAg
ICAgICAgICAgY2xhc3MgVW5yZXNvbHZlZEVsZW1lbnQgZXh0ZW5kcyBkb2NXaW5kb3cuSFRNTEVs
ZW1lbnQgeyB9OwotICAgICAgICAgICAgdmFyIHVucmVzb2x2ZWRFbGVtZW50SW5Eb2MgPSBkb2Mu
Y3JlYXRlRWxlbWVudCgndW5yZXNvbHZlZC1lbGVtZW50Jyk7Ci0KLSAgICAgICAgICAgIGFzc2Vy
dF9lcXVhbHModW5yZXNvbHZlZEVsZW1lbnQuX19wcm90b19fLCBIVE1MRWxlbWVudC5wcm90b3R5
cGUpOwotICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyh1bnJlc29sdmVkRWxlbWVudEluRG9jLl9f
cHJvdG9fXywgZG9jV2luZG93LkhUTUxFbGVtZW50LnByb3RvdHlwZSk7Ci0KLSAgICAgICAgICAg
IGRvY1dpbmRvdy5jdXN0b21FbGVtZW50cy5kZWZpbmUoJ3VucmVzb2x2ZWQtZWxlbWVudCcsIFVu
cmVzb2x2ZWRFbGVtZW50KTsKLSAgICAgICAgICAgIGRvYy5kb2N1bWVudEVsZW1lbnQuYXBwZW5k
Q2hpbGQodW5yZXNvbHZlZEVsZW1lbnRJbkRvYyk7Ci0KLSAgICAgICAgICAgIGFzc2VydF9lcXVh
bHModW5yZXNvbHZlZEVsZW1lbnQuX19wcm90b19fLCBIVE1MRWxlbWVudC5wcm90b3R5cGUpOwot
ICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyh1bnJlc29sdmVkRWxlbWVudEluRG9jLl9fcHJvdG9f
XywgVW5yZXNvbHZlZEVsZW1lbnQucHJvdG90eXBlKTsKLSAgICAgICAgfSk7Ci0gICAgfSwgJ0lu
c2VydGluZyBhbiB1bnJlc29sdmVkIGN1c3RvbSBlbGVtZW50IGludG8gJyArIGRvY3VtZW50TmFt
ZSArICcgbXVzdCBlbnF1ZXVlIGEgY3VzdG9tIGVsZW1lbnQgdXBncmFkZSByZWFjdGlvbicpOwot
Ci0gICAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uICgpIHsKLSAgICAgICAgdmFyIHVucmVzb2x2ZWRF
bGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndW5yZXNvbHZlZC1lbGVtZW50Jyk7Ci0g
ICAgICAgIHJldHVybiBnZXREb2N1bWVudCgpLnRoZW4oZnVuY3Rpb24gKGRvYykgewotICAgICAg
ICAgICAgdmFyIGRvY1dpbmRvdyA9IGRvYy5kZWZhdWx0VmlldzsKLSAgICAgICAgICAgIGNsYXNz
IFVucmVzb2x2ZWRFbGVtZW50IGV4dGVuZHMgZG9jV2luZG93LkhUTUxFbGVtZW50IHsgfTsKLSAg
ICAgICAgICAgIHZhciB1bnJlc29sdmVkRWxlbWVudEluRG9jID0gZG9jLmNyZWF0ZUVsZW1lbnQo
J3VucmVzb2x2ZWQtZWxlbWVudCcpOwotICAgICAgICAgICAgZG9jLmRvY3VtZW50RWxlbWVudC5h
cHBlbmRDaGlsZCh1bnJlc29sdmVkRWxlbWVudEluRG9jKTsKLQotICAgICAgICAgICAgYXNzZXJ0
X2VxdWFscyh1bnJlc29sdmVkRWxlbWVudC5fX3Byb3RvX18sIEhUTUxFbGVtZW50LnByb3RvdHlw
ZSk7Ci0gICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHVucmVzb2x2ZWRFbGVtZW50SW5Eb2MuX19w
cm90b19fLCBkb2NXaW5kb3cuSFRNTEVsZW1lbnQucHJvdG90eXBlKTsKLQotICAgICAgICAgICAg
ZG9jV2luZG93LmN1c3RvbUVsZW1lbnRzLmRlZmluZSgndW5yZXNvbHZlZC1lbGVtZW50JywgVW5y
ZXNvbHZlZEVsZW1lbnQpOwotCi0gICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHVucmVzb2x2ZWRF
bGVtZW50Ll9fcHJvdG9fXywgSFRNTEVsZW1lbnQucHJvdG90eXBlKTsKLSAgICAgICAgICAgIGFz
c2VydF9lcXVhbHModW5yZXNvbHZlZEVsZW1lbnRJbkRvYy5fX3Byb3RvX18sIFVucmVzb2x2ZWRF
bGVtZW50LnByb3RvdHlwZSk7Ci0gICAgICAgIH0pOwotICAgIH0sICciZGVmaW5lIiBpbiAnICsg
ZG9jdW1lbnROYW1lICsgJyBtdXN0IGVucXVldWUgYSBjdXN0b20gZWxlbWVudCB1cGdyYWRlIHJl
YWN0aW9uIG9uIGEgY29ubmVjdGVkIHVucmVzb2x2ZWQgY3VzdG9tIGVsZW1lbnQnKTsKLQotICAg
IHByb21pc2VfdGVzdChmdW5jdGlvbiAoKSB7Ci0gICAgICAgIHZhciB1bnJlc29sdmVkRWxlbWVu
dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3VucmVzb2x2ZWQtZWxlbWVudCcpOwotICAgICAg
ICByZXR1cm4gZ2V0RG9jdW1lbnQoKS50aGVuKGZ1bmN0aW9uIChkb2MpIHsKLSAgICAgICAgICAg
IHZhciBkb2NXaW5kb3cgPSBkb2MuZGVmYXVsdFZpZXc7Ci0gICAgICAgICAgICBjbGFzcyBVbnJl
c29sdmVkRWxlbWVudCBleHRlbmRzIGRvY1dpbmRvdy5IVE1MRWxlbWVudCB7IH07Ci0gICAgICAg
ICAgICBhc3NlcnRfZmFsc2UodW5yZXNvbHZlZEVsZW1lbnQgaW5zdGFuY2VvZiBVbnJlc29sdmVk
RWxlbWVudCk7Ci0gICAgICAgICAgICBkb2NXaW5kb3cuY3VzdG9tRWxlbWVudHMuZGVmaW5lKCd1
bnJlc29sdmVkLWVsZW1lbnQnLCBVbnJlc29sdmVkRWxlbWVudCk7Ci0gICAgICAgICAgICBkb2Mu
YWRvcHROb2RlKHVucmVzb2x2ZWRFbGVtZW50KTsKLSAgICAgICAgICAgIGFzc2VydF9mYWxzZSh1
bnJlc29sdmVkRWxlbWVudCBpbnN0YW5jZW9mIFVucmVzb2x2ZWRFbGVtZW50KTsKLSAgICAgICAg
fSk7Ci0gICAgfSwgJ0Fkb3B0aW5nIChhbmQgbGVhdmluZyBkaXNjb25uY2V0ZWQpIGFuIHVucmVz
b2x2ZWQgY3VzdG9tIGVsZW1lbnQgaW50byAnICsgZG9jdW1lbnROYW1lICsgJyBtdXN0IG5vdCBl
bnF1ZXVlIGEgY3VzdG9tIGVsZW1lbnQgdXBncmFkZSByZWFjdGlvbicpOwotCi0gICAgcHJvbWlz
ZV90ZXN0KGZ1bmN0aW9uICgpIHsKLSAgICAgICAgdmFyIHVucmVzb2x2ZWRFbGVtZW50ID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgndW5yZXNvbHZlZC1lbGVtZW50Jyk7Ci0gICAgICAgIHJldHVy
biBnZXREb2N1bWVudCgpLnRoZW4oZnVuY3Rpb24gKGRvYykgewotICAgICAgICAgICAgdmFyIGRv
Y1dpbmRvdyA9IGRvYy5kZWZhdWx0VmlldzsKLSAgICAgICAgICAgIGNsYXNzIFVucmVzb2x2ZWRF
bGVtZW50IGV4dGVuZHMgZG9jV2luZG93LkhUTUxFbGVtZW50IHsgfTsKLSAgICAgICAgICAgIGFz
c2VydF9mYWxzZSh1bnJlc29sdmVkRWxlbWVudCBpbnN0YW5jZW9mIFVucmVzb2x2ZWRFbGVtZW50
KTsKLSAgICAgICAgICAgIGRvY1dpbmRvdy5jdXN0b21FbGVtZW50cy5kZWZpbmUoJ3VucmVzb2x2
ZWQtZWxlbWVudCcsIFVucmVzb2x2ZWRFbGVtZW50KTsKLSAgICAgICAgICAgIGRvYy5kb2N1bWVu
dEVsZW1lbnQuYXBwZW5kQ2hpbGQodW5yZXNvbHZlZEVsZW1lbnQpOwotICAgICAgICAgICAgYXNz
ZXJ0X3RydWUodW5yZXNvbHZlZEVsZW1lbnQgaW5zdGFuY2VvZiBVbnJlc29sdmVkRWxlbWVudCk7
Ci0gICAgICAgIH0pOwotICAgIH0sICdBZG9wdGluZyBhbmQgaW5zZXJ0aW5nIGFuIHVucmVzb2x2
ZWQgY3VzdG9tIGVsZW1lbnQgaW50byAnICsgZG9jdW1lbnROYW1lICsgJyBtdXN0IGVucXVldWUg
YSBjdXN0b20gZWxlbWVudCB1cGdyYWRlIHJlYWN0aW9uJyk7Ci0KLX0pOwotCi08L3NjcmlwdD4K
LTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVs
ZW1lbnRzL3BhcnNlci9wYXJzZXItY29uc3RydWN0cy1jdXN0b20tZWxlbWVudC1pbi1kb2N1bWVu
dC13cml0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2N1c3RvbS1lbGVtZW50cy9w
YXJzZXIvcGFyc2VyLWNvbnN0cnVjdHMtY3VzdG9tLWVsZW1lbnQtaW4tZG9jdW1lbnQtd3JpdGUt
ZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5N2FmMjk5OTdkMTE2
ZTlhODM1NzhjMTBhZWJhOTI4N2M2YTU0NzMwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRzL3BhcnNl
ci9wYXJzZXItY29uc3RydWN0cy1jdXN0b20tZWxlbWVudC1pbi1kb2N1bWVudC13cml0ZS1leHBl
Y3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLQotUEFTUyBIVE1MIHBhcnNl
ciBtdXN0IGluc3RhbnRpYXRlIGN1c3RvbSBlbGVtZW50cyBpbnNpZGUgZG9jdW1lbnQud3JpdGUg
Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRzL3BhcnNlci9w
YXJzZXItY29uc3RydWN0cy1jdXN0b20tZWxlbWVudC1pbi1kb2N1bWVudC13cml0ZS5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9jdXN0b20tZWxlbWVudHMvcGFyc2VyL3BhcnNlci1jb25zdHJ1Y3Rz
LWN1c3RvbS1lbGVtZW50LWluLWRvY3VtZW50LXdyaXRlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDMyYWYwYWNjYzBhMjQzNDIxYjIzNTNlNzliNTdmMTk3MTg1YTM3OGMuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC9jdXN0b20tZWxlbWVudHMvcGFyc2VyL3BhcnNlci1jb25zdHJ1Y3RzLWN1c3RvbS1lbGVt
ZW50LWluLWRvY3VtZW50LXdyaXRlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzMCArMCwwIEBA
Ci08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08dGl0bGU+Q3VzdG9tIEVsZW1lbnRz
OiBDaGFuZ2VzIHRvIHRoZSBIVE1MIHBhcnNlcjwvdGl0bGU+Ci08bWV0YSBuYW1lPSJhdXRob3Ii
IHRpdGxlPSJSeW9zdWtlIE5pd2EiIGhyZWY9Im1haWx0bzpybml3YUB3ZWJraXQub3JnIj4KLTxt
ZXRhIG5hbWU9ImFzc2VydCIgY29udGVudD0iSFRNTCBwYXJzZXIgbXVzdCBjb25zdHJ1Y3QgY3Vz
dG9tIGVsZW1lbnRzIGluc2lkZSBkb2N1bWVudC53cml0ZSI+Ci08c2NyaXB0IHNyYz0iLi4vLi4v
Li4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPGxpbmsgcmVs
PSdzdHlsZXNoZWV0JyBocmVmPScuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuY3NzJz4K
LTwvaGVhZD4KLTxib2R5PgotPGRpdiBpZD0ibG9nIj48L2Rpdj4KLTxzY3JpcHQ+Ci0KLWNsYXNz
IE15Q3VzdG9tRWxlbWVudCBleHRlbmRzIEhUTUxFbGVtZW50IHsgfQotY3VzdG9tRWxlbWVudHMu
ZGVmaW5lKCdteS1jdXN0b20tZWxlbWVudCcsIE15Q3VzdG9tRWxlbWVudCk7Ci0KLWRvY3VtZW50
LndyaXRlKCc8bXktY3VzdG9tLWVsZW1lbnQ+PC9teS1jdXN0b20tZWxlbWVudD4nKTsKLQotdGVz
dChmdW5jdGlvbiAoKSB7Ci0gICAgdmFyIGluc3RhbmNlID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rv
cignbXktY3VzdG9tLWVsZW1lbnQnKTsKLQotICAgIGFzc2VydF90cnVlKGluc3RhbmNlIGluc3Rh
bmNlb2YgSFRNTEVsZW1lbnQpOwotICAgIGFzc2VydF90cnVlKGluc3RhbmNlIGluc3RhbmNlb2Yg
TXlDdXN0b21FbGVtZW50KTsKLQotfSwgJ0hUTUwgcGFyc2VyIG11c3QgaW5zdGFudGlhdGUgY3Vz
dG9tIGVsZW1lbnRzIGluc2lkZSBkb2N1bWVudC53cml0ZScpOwotCi08L3NjcmlwdD4KLTwvYm9k
eT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRz
L3BhcnNlci9wYXJzZXItY29uc3RydWN0cy1jdXN0b20tZWxlbWVudC1zeW5jaHJvbm91c2x5LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRzL3BhcnNlci9wYXJz
ZXItY29uc3RydWN0cy1jdXN0b20tZWxlbWVudC1zeW5jaHJvbm91c2x5LWV4cGVjdGVkLnR4dApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWE2ZDM5N2ZiMjY1NTlhZTM4YzNmYTU1OWIy
ZjZmMTI5YzY5MjE2YS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L2N1c3RvbS1lbGVtZW50cy9wYXJzZXIvcGFyc2VyLWNvbnN0
cnVjdHMtY3VzdG9tLWVsZW1lbnQtc3luY2hyb25vdXNseS1leHBlY3RlZC50eHQKKysrIC9kZXYv
bnVsbApAQCAtMSwzICswLDAgQEAKLQotUEFTUyBIVE1MIHBhcnNlciBtdXN0IG9ubHkgYXBwZW5k
IG5vZGVzIHRoYXQgYXBwZWFyIGJlZm9yZSBhIGN1c3RvbSBlbGVtZW50IGJlZm9yZSBpbnN0YW50
aWF0aW5nIHRoZSBjdXN0b20gZWxlbWVudCAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9jdXN0b20tZWxlbWVudHMvcGFyc2VyL3BhcnNlci1jb25zdHJ1Y3RzLWN1c3RvbS1lbGVtZW50
LXN5bmNocm9ub3VzbHkuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRzL3Bh
cnNlci9wYXJzZXItY29uc3RydWN0cy1jdXN0b20tZWxlbWVudC1zeW5jaHJvbm91c2x5Lmh0bWwK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBhZmJmNmE2MTdiNTJhYzE3NTc1NzdhMjRl
ZWU3ZWM1ZDQ0MGE2MTQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9jdXN0b20tZWxlbWVudHMvcGFyc2VyL3BhcnNlci1jb25z
dHJ1Y3RzLWN1c3RvbS1lbGVtZW50LXN5bmNocm9ub3VzbHkuaHRtbAorKysgL2Rldi9udWxsCkBA
IC0xLDUwICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTx0aXRsZT5D
dXN0b20gRWxlbWVudHM6IENoYW5nZXMgdG8gdGhlIEhUTUwgcGFyc2VyPC90aXRsZT4KLTxtZXRh
IG5hbWU9ImF1dGhvciIgdGl0bGU9IlJ5b3N1a2UgTml3YSIgaHJlZj0ibWFpbHRvOnJuaXdhQHdl
YmtpdC5vcmciPgotPG1ldGEgbmFtZT0iYXNzZXJ0IiBjb250ZW50PSJIVE1MIHBhcnNlciBtdXN0
IGNvbnN0cnVjdCBhIGN1c3RvbSBlbGVtZW50IHN5bmNocm9ub3VzbHkiPgotPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxs
aW5rIHJlbD0nc3R5bGVzaGVldCcgaHJlZj0nLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
LmNzcyc+Ci08L2hlYWQ+Ci08Ym9keT4KLTxkaXYgaWQ9ImxvZyI+PC9kaXY+Ci08c2NyaXB0Pgot
Ci12YXIgY2hpbGRFbGVtZW50Q291bnRJbkNvbnN0cnVjdG9yOwotdmFyIGNvbnRhaW5lckNoaWxk
Tm9kZXNJbkNvbnN0cnVjdG9yID0gW107Ci12YXIgY29udGFpbmVyTmV4dFNpbGJpbmdJbkNvbnN0
cnVjdG9yOwotY2xhc3MgTXlDdXN0b21FbGVtZW50IGV4dGVuZHMgSFRNTEVsZW1lbnQgewotICAg
IGNvbnN0cnVjdG9yKCkgewotICAgICAgICBzdXBlcigpOwotICAgICAgICB2YXIgY29udGFpbmVy
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2N1c3RvbS1lbGVtZW50LWNvbnRhaW5lcicpOwot
ICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNvbnRhaW5lci5jaGlsZE5vZGVzLmxlbmd0aDsg
aSsrKQotICAgICAgICAgICAgY29udGFpbmVyQ2hpbGROb2Rlc0luQ29uc3RydWN0b3IucHVzaChj
b250YWluZXIuY2hpbGROb2Rlc1tpXSk7Ci0gICAgICAgIGNvbnRhaW5lck5leHRTaWxiaW5nSW5D
b25zdHJ1Y3RvciA9IGNvbnRhaW5lci5uZXh0U2libGluZzsKLSAgICB9Ci19OwotY3VzdG9tRWxl
bWVudHMuZGVmaW5lKCdteS1jdXN0b20tZWxlbWVudCcsIE15Q3VzdG9tRWxlbWVudCk7Ci0KLTwv
c2NyaXB0PgotPGRpdiBpZD0iY3VzdG9tLWVsZW1lbnQtY29udGFpbmVyIj4KLSAgICA8c3BhbiBp
ZD0iY3VzdG9tLWVsZW1lbnQtcHJldmlvdXMtZWxlbWVudCI+PC9zcGFuPgotICAgIDxteS1jdXN0
b20tZWxlbWVudD48L215LWN1c3RvbS1lbGVtZW50PgotICAgIDxkaXYgaWQ9ImN1c3RvbS1lbGVt
ZW50LW5leHQtZWxlbWVudCI+PC9kaXY+Ci08L2Rpdj4KLTxzY3JpcHQ+Ci0KLXRlc3QoZnVuY3Rp
b24gKCkgewotICAgIHZhciBpbnN0YW5jZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ215LWN1
c3RvbS1lbGVtZW50Jyk7Ci0KLSAgICBhc3NlcnRfZXF1YWxzKGNvbnRhaW5lckNoaWxkTm9kZXNJ
bkNvbnN0cnVjdG9yLmxlbmd0aCwgMyk7Ci0gICAgYXNzZXJ0X2VxdWFscyhjb250YWluZXJDaGls
ZE5vZGVzSW5Db25zdHJ1Y3RvclswXSwgaW5zdGFuY2UucGFyZW50Tm9kZS5maXJzdENoaWxkKTsK
LSAgICBhc3NlcnRfZXF1YWxzKGNvbnRhaW5lckNoaWxkTm9kZXNJbkNvbnN0cnVjdG9yWzFdLCBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY3VzdG9tLWVsZW1lbnQtcHJldmlvdXMtZWxlbWVudCcp
KTsKLSAgICBhc3NlcnRfZXF1YWxzKGNvbnRhaW5lckNoaWxkTm9kZXNJbkNvbnN0cnVjdG9yWzJd
LCBpbnN0YW5jZS5wcmV2aW91c1NpYmxpbmcpOwotICAgIGFzc2VydF9lcXVhbHMoY29udGFpbmVy
TmV4dFNpbGJpbmdJbkNvbnN0cnVjdG9yLCBudWxsKTsKLQotfSwgJ0hUTUwgcGFyc2VyIG11c3Qg
b25seSBhcHBlbmQgbm9kZXMgdGhhdCBhcHBlYXIgYmVmb3JlIGEgY3VzdG9tIGVsZW1lbnQgYmVm
b3JlIGluc3RhbnRpYXRpbmcgdGhlIGN1c3RvbSBlbGVtZW50Jyk7Ci0KLTwvc2NyaXB0PgotPC9i
b2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jdXN0b20tZWxlbWVu
dHMvcGFyc2VyL3BhcnNlci1jb25zdHJ1Y3RzLWN1c3RvbS1lbGVtZW50cy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L2N1c3RvbS1lbGVtZW50cy9wYXJzZXIvcGFyc2VyLWNvbnN0cnVj
dHMtY3VzdG9tLWVsZW1lbnRzLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggOTg3N2Q0YjkyM2FhN2IyODM2NmVmZjEwZmExYjdhZjc0ZmIxMDE5OC4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2N1
c3RvbS1lbGVtZW50cy9wYXJzZXIvcGFyc2VyLWNvbnN0cnVjdHMtY3VzdG9tLWVsZW1lbnRzLWV4
cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDQgKzAsMCBAQAotCi1QQVNTIEhUTUwgcGFy
c2VyIG11c3QgTk9UIGNyZWF0ZSBhIGN1c3RvbSBlbGVtZW50IGJlZm9yZSBjdXN0b21FbGVtZW50
cy5kZWZpbmUgaXMgY2FsbGVkIAotUEFTUyBIVE1MIHBhcnNlciBtdXN0IGNyZWF0ZSBhIGRlZmlu
ZWQgY3VzdG9tIGVsZW1lbnQgYmVmb3JlIGV4ZWN1dGluZyBpbmxpbmUgc2NyaXB0cyAKLQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jdXN0b20tZWxlbWVudHMvcGFyc2VyL3BhcnNlci1j
b25zdHJ1Y3RzLWN1c3RvbS1lbGVtZW50cy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jdXN0b20t
ZWxlbWVudHMvcGFyc2VyL3BhcnNlci1jb25zdHJ1Y3RzLWN1c3RvbS1lbGVtZW50cy5odG1sCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwYzkwNDM2NDU3NDI5MDFhYmM2MzY0OGYwMjFm
ZWIxNzJkZjU2NTVjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRzL3BhcnNlci9wYXJzZXItY29uc3Ry
dWN0cy1jdXN0b20tZWxlbWVudHMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQ3ICswLDAgQEAK
LTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTx0aXRsZT5DdXN0b20gRWxlbWVudHM6
IENoYW5nZXMgdG8gdGhlIEhUTUwgcGFyc2VyPC90aXRsZT4KLTxtZXRhIG5hbWU9ImF1dGhvciIg
dGl0bGU9IlJ5b3N1a2UgTml3YSIgaHJlZj0ibWFpbHRvOnJuaXdhQHdlYmtpdC5vcmciPgotPG1l
dGEgbmFtZT0iYXNzZXJ0IiBjb250ZW50PSJIVE1MIHBhcnNlciBjcmVhdGVzIGEgY3VzdG9tIGVs
ZW1lbnQiPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzIj48L3NjcmlwdD4KLTxsaW5rIHJlbD0nc3R5bGVzaGVldCcgaHJlZj0nLi4vLi4vLi4v
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmNzcyc+Ci08L2hlYWQ+Ci08Ym9keT4KLTxkaXYgaWQ9Imxv
ZyI+PC9kaXY+Ci08bXktY3VzdG9tLWVsZW1lbnQgaWQ9Imluc3RhbmNlMSI+PC9teS1jdXN0b20t
ZWxlbWVudD4KLTxzY3JpcHQ+Ci0KLWNsYXNzIE15Q3VzdG9tRWxlbWVudCBleHRlbmRzIEhUTUxF
bGVtZW50IHsgfTsKLQotdGVzdChmdW5jdGlvbiAoKSB7Ci0gICAgdmFyIGN1c3RvbUVsZW1lbnQg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5zdGFuY2UxJyk7Ci0KLSAgICBhc3NlcnRfdHJ1
ZShjdXN0b21FbGVtZW50IGluc3RhbmNlb2YgSFRNTEVsZW1lbnQsICdBbiB1bnJlc29sdmVkIGN1
c3RvbSBlbGVtZW50IG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgSFRNTEVsZW1lbnQnKTsKLSAgICBh
c3NlcnRfZmFsc2UoY3VzdG9tRWxlbWVudCBpbnN0YW5jZW9mIE15Q3VzdG9tRWxlbWVudCwgJ0Fu
IHVucmVzb2x2ZWQgY3VzdG9tIGVsZW1lbnQgbXVzdCBOT1QgYmUgYW4gaW5zdGFuY2Ugb2YgdGhh
dCBjdXN0b20gZWxlbWVudCcpOwotICAgIGFzc2VydF9lcXVhbHMoY3VzdG9tRWxlbWVudC5sb2Nh
bE5hbWUsICdteS1jdXN0b20tZWxlbWVudCcpOwotICAgIGFzc2VydF9lcXVhbHMoY3VzdG9tRWxl
bWVudC5uYW1lc3BhY2VVUkksICdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJywgJ0EgY3Vz
dG9tIGVsZW1lbnQgSFRNTCBtdXN0IHVzZSBIVE1MIG5hbWVzcGFjZScpOwotCi19LCAnSFRNTCBw
YXJzZXIgbXVzdCBOT1QgY3JlYXRlIGEgY3VzdG9tIGVsZW1lbnQgYmVmb3JlIGN1c3RvbUVsZW1l
bnRzLmRlZmluZSBpcyBjYWxsZWQnKTsKLQotY3VzdG9tRWxlbWVudHMuZGVmaW5lKCdteS1jdXN0
b20tZWxlbWVudCcsIE15Q3VzdG9tRWxlbWVudCk7Ci0KLTwvc2NyaXB0PgotPG15LWN1c3RvbS1l
bGVtZW50IGlkPSJpbnN0YW5jZTIiPjwvbXktY3VzdG9tLWVsZW1lbnQ+Ci08c2NyaXB0PgotCi10
ZXN0KGZ1bmN0aW9uICgpIHsKLSAgICB2YXIgY3VzdG9tRWxlbWVudCA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdpbnN0YW5jZTInKTsKLQotICAgIGFzc2VydF90cnVlKGN1c3RvbUVsZW1lbnQg
aW5zdGFuY2VvZiBIVE1MRWxlbWVudCwgJ0EgcmVzb2x2ZWQgY3VzdG9tIGVsZW1lbnQgbXVzdCBi
ZSBhbiBpbnN0YW5jZSBvZiBIVE1MRWxlbWVudCcpOwotICAgIGFzc2VydF9mYWxzZShjdXN0b21F
bGVtZW50IGluc3RhbmNlb2YgSFRNTFVua25vd25FbGVtZW50LCAnQSByZXNvbHZlZCBjdXN0b20g
ZWxlbWVudCBtdXN0IE5PVCBiZSBhbiBpbnN0YW5jZSBvZiBIVE1MVW5rbm93bkVsZW1lbnQnKTsK
LSAgICBhc3NlcnRfdHJ1ZShjdXN0b21FbGVtZW50IGluc3RhbmNlb2YgTXlDdXN0b21FbGVtZW50
LCAnQSByZXNvbHZlZCBjdXN0b20gZWxlbWVudCBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIHRoYXQg
Y3VzdG9tIGVsZW1lbnQnKTsKLSAgICBhc3NlcnRfZXF1YWxzKGN1c3RvbUVsZW1lbnQubG9jYWxO
YW1lLCAnbXktY3VzdG9tLWVsZW1lbnQnKTsKLSAgICBhc3NlcnRfZXF1YWxzKGN1c3RvbUVsZW1l
bnQubmFtZXNwYWNlVVJJLCAnaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcsICdBIGN1c3Rv
bSBlbGVtZW50IEhUTUwgbXVzdCB1c2UgSFRNTCBuYW1lc3BhY2UnKTsKLQotfSwgJ0hUTUwgcGFy
c2VyIG11c3QgY3JlYXRlIGEgZGVmaW5lZCBjdXN0b20gZWxlbWVudCBiZWZvcmUgZXhlY3V0aW5n
IGlubGluZSBzY3JpcHRzJyk7Ci0KLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jdXN0b20tZWxlbWVudHMvcGFyc2VyL3BhcnNlci1mYWxs
c2JhY2stdG8tdW5rbm93bi1lbGVtZW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qv
Y3VzdG9tLWVsZW1lbnRzL3BhcnNlci9wYXJzZXItZmFsbHNiYWNrLXRvLXVua25vd24tZWxlbWVu
dC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNkOWY4NzZlODI1
NDQ3NGI1NzRhMDU3ZjBlYzE0MDFiYjYyZDE4OTQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9jdXN0b20tZWxlbWVudHMvcGFy
c2VyL3BhcnNlci1mYWxsc2JhY2stdG8tdW5rbm93bi1lbGVtZW50LWV4cGVjdGVkLnR4dAorKysg
L2Rldi9udWxsCkBAIC0xLDEyICswLDAgQEAKLUNPTlNPTEUgTUVTU0FHRTogVHlwZUVycm9yOiBU
aGUgcmVzdWx0IG9mIGNvbnN0cnVjdGluZyBhIGN1c3RvbSBlbGVtZW50IG11c3QgYmUgYSBIVE1M
RWxlbWVudAotQ09OU09MRSBNRVNTQUdFOiBUeXBlRXJyb3I6IFRoZSByZXN1bHQgb2YgY29uc3Ry
dWN0aW5nIGEgY3VzdG9tIGVsZW1lbnQgbXVzdCBiZSBhIEhUTUxFbGVtZW50Ci1DT05TT0xFIE1F
U1NBR0U6IGxpbmUgMzI6IFJlZmVyZW5jZUVycm9yOiBDYW5ub3QgYWNjZXNzIHVuaW5pdGlhbGl6
ZWQgdmFyaWFibGUuCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMzg6IEJhZAotCi1IYXJuZXNzIEVy
cm9yIChGQUlMKSwgbWVzc2FnZSA9IEJhZAotCi1QQVNTIEhUTUwgcGFyc2VyIG11c3QgY3JlYXRl
IGEgZmFsbGJhY2sgSFRNTFVua25vd25FbGVtZW50IHdoZW4gYSBjdXN0b20gZWxlbWVudCBjb25z
dHJ1Y3RvciByZXR1cm5zIGEgVGV4dCBub2RlIAotUEFTUyBIVE1MIHBhcnNlciBtdXN0IGNyZWF0
ZSBhIGZhbGxiYWNrIEhUTUxVbmtub3duRWxlbWVudCB3aGVuIGEgY3VzdG9tIGVsZW1lbnQgY29u
c3RydWN0b3IgcmV0dXJucyBub24tRWxlbWVudCBvYmplY3QgCi1QQVNTIEhUTUwgcGFyc2VyIG11
c3QgY3JlYXRlIGEgZmFsbGJhY2sgSFRNTFVua25vd25FbGVtZW50IHdoZW4gYSBjdXN0b20gZWxl
bWVudCBjb25zdHJ1Y3RvciBkb2VzIG5vdCBjYWxsIHN1cGVyKCkgCi1QQVNTIEhUTUwgcGFyc2Vy
IG11c3QgY3JlYXRlIGEgZmFsbGJhY2sgSFRNTFVua25vd25FbGVtZW50IHdoZW4gYSBjdXN0b20g
ZWxlbWVudCBjb25zdHJ1Y3RvciB0aHJvd3MgYW4gZXhjZXB0aW9uIAotCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2N1c3RvbS1lbGVtZW50cy9wYXJzZXIvcGFyc2VyLWZhbGxzYmFjay10
by11bmtub3duLWVsZW1lbnQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRz
L3BhcnNlci9wYXJzZXItZmFsbHNiYWNrLXRvLXVua25vd24tZWxlbWVudC5odG1sCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MmFjYjgzM2RmY2EzNjUxOTkyODg0Njc4YzYwOGVkNDZl
MGNkNjZlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRzL3BhcnNlci9wYXJzZXItZmFsbHNiYWNrLXRv
LXVua25vd24tZWxlbWVudC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsODggKzAsMCBAQAotPCFE
T0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHRpdGxlPkN1c3RvbSBFbGVtZW50czogQ2hh
bmdlcyB0byB0aGUgSFRNTCBwYXJzZXI8L3RpdGxlPgotPG1ldGEgbmFtZT0iYXV0aG9yIiB0aXRs
ZT0iUnlvc3VrZSBOaXdhIiBocmVmPSJtYWlsdG86cm5pd2FAd2Via2l0Lm9yZyI+Ci08bWV0YSBu
YW1lPSJhc3NlcnQiIGNvbnRlbnQ9IkhUTUwgcGFyc2VyIG11c3QgZmFsbGJhY2sgdG8gY3JlYXRp
bmcgYSBIVE1MVW5rbm93bkVsZW1lbnQgd2hlbiBhIGN1c3RvbSBlbGVtZW50IGNvbnN0cnVjdGlv
biBmYWlscyI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3Ny
ZXBvcnQuanMiPjwvc2NyaXB0PgotPGxpbmsgcmVsPSdzdHlsZXNoZWV0JyBocmVmPScuLi8uLi8u
Li9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuY3NzJz4KLTwvaGVhZD4KLTxib2R5PgotPGRpdiBpZD0i
bG9nIj48L2Rpdj4KLTxzY3JpcHQ+Ci0KLWNsYXNzIFJldHVybnNUZXh0Tm9kZSBleHRlbmRzIEhU
TUxFbGVtZW50IHsKLSAgICBjb25zdHJ1Y3RvcigpIHsKLSAgICAgICAgc3VwZXIoKTsKLSAgICAg
ICAgcmV0dXJuIGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCdzb21lIHRleHQnKTsKLSAgICB9Ci19
OwotY3VzdG9tRWxlbWVudHMuZGVmaW5lKCdyZXR1cm5zLXRleHQnLCBSZXR1cm5zVGV4dE5vZGUp
OwotCi1jbGFzcyBSZXR1cm5zTm9uRWxlbWVudE9iamVjdCBleHRlbmRzIEhUTUxFbGVtZW50IHsK
LSAgICBjb25zdHJ1Y3RvcigpIHsKLSAgICAgICAgc3VwZXIoKTsKLSAgICAgICAgcmV0dXJuIHt9
OwotICAgIH0KLX07Ci1jdXN0b21FbGVtZW50cy5kZWZpbmUoJ3JldHVybnMtbm9uLWVsZW1lbnQt
b2JqZWN0JywgUmV0dXJuc05vbkVsZW1lbnRPYmplY3QpOwotCi1jbGFzcyBMYWNrc1N1cGVyQ2Fs
bCBleHRlbmRzIEhUTUxFbGVtZW50IHsKLSAgICBjb25zdHJ1Y3RvcigpIHsgfQotfTsKLWN1c3Rv
bUVsZW1lbnRzLmRlZmluZSgnbGFja3Mtc3VwZXItY2FsbCcsIExhY2tzU3VwZXJDYWxsKTsKLQot
Y2xhc3MgVGhyb3dzRXhjZXB0aW9uIGV4dGVuZHMgSFRNTEVsZW1lbnQgewotICAgIGNvbnN0cnVj
dG9yKCkgewotICAgICAgICB0aHJvdyAnQmFkJzsKLSAgICB9Ci19OwotY3VzdG9tRWxlbWVudHMu
ZGVmaW5lKCd0aHJvd3MtZXhjZXB0aW9uJywgVGhyb3dzRXhjZXB0aW9uKTsKLQotPC9zY3JpcHQ+
Ci08cmV0dXJucy10ZXh0PjwvcmV0dXJucy10ZXh0PgotPHJldHVybnMtbm9uLWVsZW1lbnQtb2Jq
ZWN0PjwvcmV0dXJucy1ub24tZWxlbWVudC1vYmplY3Q+Ci08bGFja3Mtc3VwZXItY2FsbD48L2xh
Y2tzLXN1cGVyLWNhbGw+Ci08dGhyb3dzLWV4Y2VwdGlvbj48L3Rocm93cy1leGNlcHRpb24+Ci08
c2NyaXB0PgotCi10ZXN0KGZ1bmN0aW9uICgpIHsKLSAgICB2YXIgaW5zdGFuY2UgPSBkb2N1bWVu
dC5xdWVyeVNlbGVjdG9yKCdyZXR1cm5zLXRleHQnKTsKLQotICAgIGFzc2VydF9mYWxzZShpbnN0
YW5jZSBpbnN0YW5jZW9mIFJldHVybnNUZXh0Tm9kZSwgJ0hUTUwgcGFyc2VyIG11c3QgTk9UIGlu
c3RhbnRpYXRlIGEgY3VzdG9tIGVsZW1lbnQgd2hlbiB0aGUgY29uc3RydWN0b3IgcmV0dXJucyBh
IFRleHQgbm9kZScpOwotICAgIGFzc2VydF90cnVlKGluc3RhbmNlIGluc3RhbmNlb2YgSFRNTEVs
ZW1lbnQsICdUaGUgZmFsbGJhY2sgZWxlbWVudCBjcmVhdGVkIGJ5IEhUTUwgcGFyc2VyIG11c3Qg
YmUgYW4gaW5zdGFuY2Ugb2YgSFRNTEVsZW1lbnQnKTsKLSAgICBhc3NlcnRfdHJ1ZShpbnN0YW5j
ZSBpbnN0YW5jZW9mIEhUTUxVbmtub3duRWxlbWVudCwgJ1RoZSBmYWxsYmFjayBlbGVtZW50IGNy
ZWF0ZWQgYnkgSFRNTCBwYXJzZXIgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBIVE1MVW5rbm93bkVs
ZW1lbnQnKTsKLQotfSwgJ0hUTUwgcGFyc2VyIG11c3QgY3JlYXRlIGEgZmFsbGJhY2sgSFRNTFVu
a25vd25FbGVtZW50IHdoZW4gYSBjdXN0b20gZWxlbWVudCBjb25zdHJ1Y3RvciByZXR1cm5zIGEg
VGV4dCBub2RlJyk7Ci0KLXRlc3QoZnVuY3Rpb24gKCkgewotICAgIHZhciBpbnN0YW5jZSA9IGRv
Y3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ3JldHVybnMtbm9uLWVsZW1lbnQtb2JqZWN0Jyk7Ci0KLSAg
ICBhc3NlcnRfZmFsc2UoaW5zdGFuY2UgaW5zdGFuY2VvZiBSZXR1cm5zTm9uRWxlbWVudE9iamVj
dCwgJ0hUTUwgcGFyc2VyIG11c3QgTk9UIGluc3RhbnRpYXRlIGEgY3VzdG9tIGVsZW1lbnQgd2hl
biB0aGUgY29uc3RydWN0b3IgcmV0dXJucyBhIG5vbi1FbGVtZW50IG9iamVjdCcpOwotICAgIGFz
c2VydF90cnVlKGluc3RhbmNlIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQsICdUaGUgZmFsbGJhY2sg
ZWxlbWVudCBjcmVhdGVkIGJ5IEhUTUwgcGFyc2VyIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgSFRN
TEVsZW1lbnQnKTsKLSAgICBhc3NlcnRfdHJ1ZShpbnN0YW5jZSBpbnN0YW5jZW9mIEhUTUxVbmtu
b3duRWxlbWVudCwgJ1RoZSBmYWxsYmFjayBlbGVtZW50IGNyZWF0ZWQgYnkgSFRNTCBwYXJzZXIg
bXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBIVE1MVW5rbm93bkVsZW1lbnQnKTsKLQotfSwgJ0hUTUwg
cGFyc2VyIG11c3QgY3JlYXRlIGEgZmFsbGJhY2sgSFRNTFVua25vd25FbGVtZW50IHdoZW4gYSBj
dXN0b20gZWxlbWVudCBjb25zdHJ1Y3RvciByZXR1cm5zIG5vbi1FbGVtZW50IG9iamVjdCcpOwot
Ci10ZXN0KGZ1bmN0aW9uICgpIHsKLSAgICB2YXIgaW5zdGFuY2UgPSBkb2N1bWVudC5xdWVyeVNl
bGVjdG9yKCdsYWNrcy1zdXBlci1jYWxsJyk7Ci0KLSAgICBhc3NlcnRfZmFsc2UoaW5zdGFuY2Ug
aW5zdGFuY2VvZiBMYWNrc1N1cGVyQ2FsbCwgJ0hUTUwgcGFyc2VyIG11c3QgTk9UIGluc3RhbnRp
YXRlIGEgY3VzdG9tIGVsZW1lbnQgd2hlbiB0aGUgY29uc3RydWN0b3IgZG9lcyBub3QgY2FsbCBz
dXBlcigpJyk7Ci0gICAgYXNzZXJ0X3RydWUoaW5zdGFuY2UgaW5zdGFuY2VvZiBIVE1MRWxlbWVu
dCwgJ1RoZSBmYWxsYmFjayBlbGVtZW50IGNyZWF0ZWQgYnkgSFRNTCBwYXJzZXIgbXVzdCBiZSBh
biBpbnN0YW5jZSBvZiBIVE1MRWxlbWVudCcpOwotICAgIGFzc2VydF90cnVlKGluc3RhbmNlIGlu
c3RhbmNlb2YgSFRNTFVua25vd25FbGVtZW50LCAnVGhlIGZhbGxiYWNrIGVsZW1lbnQgY3JlYXRl
ZCBieSBIVE1MIHBhcnNlciBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIEhUTUxVbmtub3duRWxlbWVu
dCcpOwotCi19LCAnSFRNTCBwYXJzZXIgbXVzdCBjcmVhdGUgYSBmYWxsYmFjayBIVE1MVW5rbm93
bkVsZW1lbnQgd2hlbiBhIGN1c3RvbSBlbGVtZW50IGNvbnN0cnVjdG9yIGRvZXMgbm90IGNhbGwg
c3VwZXIoKScpOwotCi10ZXN0KGZ1bmN0aW9uICgpIHsKLSAgICB2YXIgaW5zdGFuY2UgPSBkb2N1
bWVudC5xdWVyeVNlbGVjdG9yKCd0aHJvd3MtZXhjZXB0aW9uJyk7Ci0KLSAgICBhc3NlcnRfZmFs
c2UoaW5zdGFuY2UgaW5zdGFuY2VvZiBUaHJvd3NFeGNlcHRpb24sICdIVE1MIHBhcnNlciBtdXN0
IE5PVCBpbnN0YW50aWF0ZSBhIGN1c3RvbSBlbGVtZW50IHdoZW4gdGhlIGNvbnN0cnVjdG9yIHRo
cm93cyBhbiBleGNlcHRpb24nKTsKLSAgICBhc3NlcnRfdHJ1ZShpbnN0YW5jZSBpbnN0YW5jZW9m
IEhUTUxFbGVtZW50LCAnVGhlIGZhbGxiYWNrIGVsZW1lbnQgY3JlYXRlZCBieSBIVE1MIHBhcnNl
ciBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIEhUTUxFbGVtZW50Jyk7Ci0gICAgYXNzZXJ0X3RydWUo
aW5zdGFuY2UgaW5zdGFuY2VvZiBIVE1MVW5rbm93bkVsZW1lbnQsICdUaGUgZmFsbGJhY2sgZWxl
bWVudCBjcmVhdGVkIGJ5IEhUTUwgcGFyc2VyIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgSFRNTFVu
a25vd25FbGVtZW50Jyk7Ci0KLX0sICdIVE1MIHBhcnNlciBtdXN0IGNyZWF0ZSBhIGZhbGxiYWNr
IEhUTUxVbmtub3duRWxlbWVudCB3aGVuIGEgY3VzdG9tIGVsZW1lbnQgY29uc3RydWN0b3IgdGhy
b3dzIGFuIGV4Y2VwdGlvbicpOwotCi08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRzL3BhcnNlci9wYXJzZXItc2V0
cy1hdHRyaWJ1dGVzLWFuZC1jaGlsZHJlbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0
L2N1c3RvbS1lbGVtZW50cy9wYXJzZXIvcGFyc2VyLXNldHMtYXR0cmlidXRlcy1hbmQtY2hpbGRy
ZW4tZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzNTBiZDg3YTNi
YjRlYWQ3OTRhMTlhYTU0N2ZhN2I3MTI4Mjk0NGNkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRzL3Bh
cnNlci9wYXJzZXItc2V0cy1hdHRyaWJ1dGVzLWFuZC1jaGlsZHJlbi1leHBlY3RlZC50eHQKKysr
IC9kZXYvbnVsbApAQCAtMSw1ICswLDAgQEAKLQotUEFTUyBIVE1MIHBhcnNlciBtdXN0IHNldCB0
aGUgYXR0cmlidXRlcyAKLVBBU1MgSFRNTCBwYXJzZXIgbXVzdCBhcHBlbmQgY2hpbGQgbm9kZXMg
Ci1QQVNTIEhUTUwgcGFyc2VyIG11c3Qgc2V0IHRoZSBhdHRyaWJ1dGVzIG9yIGFwcGVuZCBjaGls
ZHJlbiBiZWZvcmUgY2FsbGluZyBjb25zdHJ1Y3RvciAKLWhlbGxvIHdvcmxkCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2N1c3RvbS1lbGVtZW50cy9wYXJzZXIvcGFyc2VyLXNldHMtYXR0
cmlidXRlcy1hbmQtY2hpbGRyZW4uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1l
bnRzL3BhcnNlci9wYXJzZXItc2V0cy1hdHRyaWJ1dGVzLWFuZC1jaGlsZHJlbi5odG1sCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwZjJiNDRiOWQzYmMzNzNiYWFhNWYxZDQ1NTEyMzky
ZDZlMmUzOWY3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRzL3BhcnNlci9wYXJzZXItc2V0cy1hdHRy
aWJ1dGVzLWFuZC1jaGlsZHJlbi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNjMgKzAsMCBAQAot
PCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHRpdGxlPkN1c3RvbSBFbGVtZW50czog
Q2hhbmdlcyB0byB0aGUgSFRNTCBwYXJzZXI8L3RpdGxlPgotPG1ldGEgbmFtZT0iYXV0aG9yIiB0
aXRsZT0iUnlvc3VrZSBOaXdhIiBocmVmPSJtYWlsdG86cm5pd2FAd2Via2l0Lm9yZyI+Ci08bWV0
YSBuYW1lPSJhc3NlcnQiIGNvbnRlbnQ9IkhUTUwgcGFyc2VyIG11c3Qgc2V0IHRoZSBhdHRyaWJ1
dGVzIGFuZCBhcHBlbmQgdGhlIGNoaWxkcmVuIG9uIGEgY3VzdG9tIGVsZW1lbnQiPgotPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Njcmlw
dD4KLTxsaW5rIHJlbD0nc3R5bGVzaGVldCcgaHJlZj0nLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmNzcyc+Ci08L2hlYWQ+Ci08Ym9keT4KLTxkaXYgaWQ9ImxvZyI+PC9kaXY+Ci08c2Ny
aXB0PgotCi12YXIgbnVtYmVyT2ZBdHRyaWJ1dGVzSW5Db25zdHJ1Y3RvcjsKLXZhciBudW1iZXJP
ZkNoaWxkTm9kZXNJbkNvbnN0cnVjdG9yOwotCi1jbGFzcyBNeUN1c3RvbUVsZW1lbnQgZXh0ZW5k
cyBIVE1MRWxlbWVudCB7Ci0gICAgY29uc3RydWN0b3IoLi4uYXJncykgewotICAgICAgICBzdXBl
ciguLi5hcmdzKTsKLSAgICAgICAgbnVtYmVyT2ZBdHRyaWJ1dGVzSW5Db25zdHJ1Y3RvciA9IHRo
aXMuYXR0cmlidXRlcy5sZW5ndGg7Ci0gICAgICAgIG51bWJlck9mQ2hpbGROb2Rlc0luQ29uc3Ry
dWN0b3IgPSB0aGlzLmNoaWxkTm9kZXMubGVuZ3RoOwotICAgIH0KLX07Ci1jdXN0b21FbGVtZW50
cy5kZWZpbmUoJ215LWN1c3RvbS1lbGVtZW50JywgTXlDdXN0b21FbGVtZW50KTsKLQotPC9zY3Jp
cHQ+Ci08bXktY3VzdG9tLWVsZW1lbnQgaWQ9ImN1c3RvbS1lbGVtZW50LWlkIiBjbGFzcz0iY2xh
c3MxIGNsYXNzMiI+aGVsbG8gPGI+d29ybGQ8L2I+PC9teS1jdXN0b20tZWxlbWVudD4KLTxzY3Jp
cHQ+Ci0KLXZhciBjdXN0b21FbGVtZW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignbXktY3Vz
dG9tLWVsZW1lbnQnKTsKLQotdGVzdChmdW5jdGlvbiAoKSB7Ci0gICAgYXNzZXJ0X2VxdWFscyhj
dXN0b21FbGVtZW50LmdldEF0dHJpYnV0ZSgnaWQnKSwgJ2N1c3RvbS1lbGVtZW50LWlkJywgJ0hU
TUwgcGFyc2VyIG11c3QgcHJlc2VydmUgdGhlIGlkIGF0dHJpYnV0ZScpOwotICAgIGFzc2VydF9l
cXVhbHMoY3VzdG9tRWxlbWVudC5pZCwgJ2N1c3RvbS1lbGVtZW50LWlkJywgJ0hUTUwgcGFyc2Vy
IG11c3QgcHJlc2VydmUgdGhlIHNlbWFudGljcyBvZiByZWZsZWN0IGZvciB0aGUgaWQgYXR0cmli
dXRlJyk7Ci0gICAgYXNzZXJ0X2VxdWFscyhjdXN0b21FbGVtZW50LmdldEF0dHJpYnV0ZSgnY2xh
c3MnKSwgJ2NsYXNzMSBjbGFzczInLCAnSFRNTCBwYXJzZXIgbXVzdCBwcmVzZXJ2ZSB0aGUgY2xh
c3MgYXR0cmlidXRlJyk7Ci0gICAgYXNzZXJ0X2VxdWFscyhjdXN0b21FbGVtZW50LmNsYXNzTGlz
dC5sZW5ndGgsIDIsICdIVE1MIHBhcnNlciBtdXN0IGluaXRpYWxpemUgY2xhc3NMaXN0IG9uIGN1
c3RvbSBlbGVtZW50cycpOwotICAgIGFzc2VydF9lcXVhbHMoY3VzdG9tRWxlbWVudC5jbGFzc0xp
c3RbMF0sICdjbGFzczEnLCAnSFRNTCBwYXJzZXIgbXVzdCBpbml0aWFsaXplIGNsYXNzTGlzdCBv
biBjdXN0b20gZWxlbWVudHMnKTsKLSAgICBhc3NlcnRfZXF1YWxzKGN1c3RvbUVsZW1lbnQuY2xh
c3NMaXN0WzFdLCAnY2xhc3MyJywgJ0hUTUwgcGFyc2VyIG11c3QgaW5pdGlhbGl6ZSBjbGFzc0xp
c3Qgb24gY3VzdG9tIGVsZW1lbnRzJyk7Ci0KLSAgICBhc3NlcnRfZXF1YWxzKGN1c3RvbUVsZW1l
bnQuY2hpbGROb2Rlcy5sZW5ndGgsIDIsICdIVE1MIHBhcnNlciBtdXN0IGFwcGVuZCBjaGlsZCBu
b2RlcycpOwotICAgIGFzc2VydF9lcXVhbHMoY3VzdG9tRWxlbWVudC5jbGFzc0xpc3RbMF0sICdj
bGFzczEnLCAnSFRNTCBwYXJzZXIgbXVzdCBpbml0aWFsaXplIGNsYXNzTGlzdCBvbiBjdXN0b20g
ZWxlbWVudHMnKTsKLSAgICBhc3NlcnRfZXF1YWxzKGN1c3RvbUVsZW1lbnQuY2xhc3NMaXN0WzFd
LCAnY2xhc3MyJywgJ0hUTUwgcGFyc2VyIG11c3QgaW5pdGlhbGl6ZSBjbGFzc0xpc3Qgb24gY3Vz
dG9tIGVsZW1lbnRzJyk7Ci0KLX0sICdIVE1MIHBhcnNlciBtdXN0IHNldCB0aGUgYXR0cmlidXRl
cycpOwotCi10ZXN0KGZ1bmN0aW9uICgpIHsKLSAgICBhc3NlcnRfZXF1YWxzKGN1c3RvbUVsZW1l
bnQuY2hpbGROb2Rlcy5sZW5ndGgsIDIsICdIVE1MIHBhcnNlciBtdXN0IGFwcGVuZCBjaGlsZCBu
b2RlcycpOwotICAgIGFzc2VydF90cnVlKGN1c3RvbUVsZW1lbnQuZmlyc3RDaGlsZCBpbnN0YW5j
ZW9mIFRleHQsICdIVE1MIHBhcnNlciBtdXN0IGFwcGVuZCBUZXh0IG5vZGUgY2hpbGQgdG8gYSBj
dXN0b20gZWxlbWVudCcpOwotICAgIGFzc2VydF9lcXVhbHMoY3VzdG9tRWxlbWVudC5maXJzdENo
aWxkLmRhdGEsICdoZWxsbyAnLCAnSFRNTCBwYXJzZXIgbXVzdCBhcHBlbmQgVGV4dCBub2RlIGNo
aWxkIHRvIGEgY3VzdG9tIGVsZW1lbnQnKTsKLSAgICBhc3NlcnRfdHJ1ZShjdXN0b21FbGVtZW50
Lmxhc3RDaGlsZCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50LCAnSFRNTCBwYXJzZXIgbXVzdCBhcHBl
bmQgYSBidWlsdGluIGVsZW1lbnQgY2hpbGQgdG8gYSBjdXN0b20gZWxlbWVudCcpOwotICAgIGFz
c2VydF90cnVlKGN1c3RvbUVsZW1lbnQubGFzdENoaWxkLmZpcnN0Q2hpbGQgaW5zdGFuY2VvZiBU
ZXh0LCAnSFRNTCBwYXJzZXIgbXVzdCBwcmVzZXJ2ZSBncmFuZGNoaWxkIG5vZGVzIG9mIGEgY3Vz
dG9tIGVsZW1lbnQnKTsKLSAgICBhc3NlcnRfZXF1YWxzKGN1c3RvbUVsZW1lbnQubGFzdENoaWxk
LmZpcnN0Q2hpbGQuZGF0YSwgJ3dvcmxkJywgJ0hUTUwgcGFyc2VyIG11c3QgcHJlc2VydmUgZ3Jh
bmRjaGlsZCBub2RlcyBvZiBhIGN1c3RvbSBlbGVtZW50Jyk7Ci19LCAnSFRNTCBwYXJzZXIgbXVz
dCBhcHBlbmQgY2hpbGQgbm9kZXMnKTsKLQotdGVzdChmdW5jdGlvbiAoKSB7Ci0gICAgYXNzZXJ0
X2VxdWFscyhudW1iZXJPZkF0dHJpYnV0ZXNJbkNvbnN0cnVjdG9yLCAwLCAnSFRNTCBwYXJzZXIg
bXVzdCBub3Qgc2V0IGF0dHJpYnV0ZXMgb24gYSBjdXN0b20gZWxlbWVudCBiZWZvcmUgaW52b2tp
bmcgdGhlIGNvbnN0cnVjdG9yJyk7Ci0gICAgYXNzZXJ0X2VxdWFscyhudW1iZXJPZkNoaWxkTm9k
ZXNJbkNvbnN0cnVjdG9yLCAwLCAnSFRNTCBwYXJzZXIgbXVzdCBub3QgYXBwZW5kIGNoaWxkIG5v
ZGVzIHRvIGEgY3VzdG9tIGVsZW1lbnQgYmVmb3JlIGludm9raW5nIHRoZSBjb25zdHJ1Y3Rvcicp
OwotfSwgJ0hUTUwgcGFyc2VyIG11c3Qgc2V0IHRoZSBhdHRyaWJ1dGVzIG9yIGFwcGVuZCBjaGls
ZHJlbiBiZWZvcmUgY2FsbGluZyBjb25zdHJ1Y3RvcicpOwotCi08L3NjcmlwdD4KLTwvYm9keT4K
LTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRzL3Bh
cnNlci9wYXJzZXItdXNlcy1jb25zdHJ1Y3RlZC1lbGVtZW50LWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRzL3BhcnNlci9wYXJzZXItdXNlcy1jb25zdHJ1Y3Rl
ZC1lbGVtZW50LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTA1
MmYzNTVmNDY1NWJhNDQ0YjI1Y2E4YWYyYmFiMDY0ODFkYTkxMi4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2N1c3RvbS1lbGVt
ZW50cy9wYXJzZXIvcGFyc2VyLXVzZXMtY29uc3RydWN0ZWQtZWxlbWVudC1leHBlY3RlZC50eHQK
KysrIC9kZXYvbnVsbApAQCAtMSw0ICswLDAgQEAKLQotUEFTUyBIVE1MIHBhcnNlciBtdXN0IHVz
ZSB0aGUgcmV0dXJuZWQgdmFsdWUgb2YgdGhlIGN1c3RvbSBlbGVtZW50IGNvbnN0cnVjdG9yIGlu
c3RlYWQgb2YgdGhlIG9uZSBjcmVhdGVkIGJlZm9yZSBzdXBlcigpIGNhbGwgCi1QQVNTIEhUTUwg
cGFyc2VyIG11c3QgdXNlIHRoZSByZXR1cm5lZCB2YWx1ZSBvZiB0aGUgY3VzdG9tIGVsZW1lbnQg
Y29uc3RydWN0b3IgaW5zdGVhZCB1c2luZyB0aGUgb25lIGNyZWF0ZWQgaW4gc3VwZXIoKSBjYWxs
IAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2N1c3RvbS1lbGVtZW50cy9wYXJzZXIv
cGFyc2VyLXVzZXMtY29uc3RydWN0ZWQtZWxlbWVudC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9j
dXN0b20tZWxlbWVudHMvcGFyc2VyL3BhcnNlci11c2VzLWNvbnN0cnVjdGVkLWVsZW1lbnQuaHRt
bApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDg1N2I2YWJjNTkxYzg4YTM0YzQwZDU1
ZGE2ZjhjNTEyM2Q3ZTM4Zi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2N1c3RvbS1lbGVtZW50cy9wYXJzZXIvcGFyc2VyLXVz
ZXMtY29uc3RydWN0ZWQtZWxlbWVudC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzIgKzAsMCBA
QAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHRpdGxlPkN1c3RvbSBFbGVtZW50
czogQ2hhbmdlcyB0byB0aGUgSFRNTCBwYXJzZXI8L3RpdGxlPgotPG1ldGEgbmFtZT0iYXV0aG9y
IiB0aXRsZT0iUnlvc3VrZSBOaXdhIiBocmVmPSJtYWlsdG86cm5pd2FAd2Via2l0Lm9yZyI+Ci08
bWV0YSBuYW1lPSJhc3NlcnQiIGNvbnRlbnQ9IkhUTUwgcGFyc2VyIG11c3QgY29uc3RydWN0IGEg
Y3VzdG9tIGVsZW1lbnQgaW5zdGVhZCBvZiB1cGdyYWRpbmciPgotPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4v
Li4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxsaW5rIHJl
bD0nc3R5bGVzaGVldCcgaHJlZj0nLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmNzcyc+
Ci08L2hlYWQ+Ci08Ym9keT4KLTxkaXYgaWQ9ImxvZyI+PC9kaXY+Ci08c2NyaXB0PgotCi1sZXQg
YW5vdGhlckVsZW1lbnRDcmVhdGVkQmVmb3JlU3VwZXJDYWxsID0gdW5kZWZpbmVkOwotbGV0IGVs
ZW1lbnRDcmVhdGVkQnlTdXBlckNhbGwgPSB1bmRlZmluZWQ7Ci1sZXQgc2hvdWxkQ3JlYXRlRWxl
bWVudEJlZm9yZVN1cGVyQ2FsbCA9IHRydWU7Ci1jbGFzcyBJbnN0YW50aWF0ZXNJdHNlbGZCZWZv
cmVTdXBlciBleHRlbmRzIEhUTUxFbGVtZW50IHsKLSAgICBjb25zdHJ1Y3RvcigpIHsKLSAgICAg
ICAgaWYgKHNob3VsZENyZWF0ZUVsZW1lbnRCZWZvcmVTdXBlckNhbGwpIHsKLSAgICAgICAgICAg
IHNob3VsZENyZWF0ZUVsZW1lbnRCZWZvcmVTdXBlckNhbGwgPSBmYWxzZTsKLSAgICAgICAgICAg
IGFub3RoZXJFbGVtZW50Q3JlYXRlZEJlZm9yZVN1cGVyQ2FsbCA9IG5ldyBJbnN0YW50aWF0ZXNJ
dHNlbGZCZWZvcmVTdXBlcigpOwotICAgICAgICB9Ci0gICAgICAgIHN1cGVyKCk7Ci0gICAgICAg
IGVsZW1lbnRDcmVhdGVkQnlTdXBlckNhbGwgPSB0aGlzOwotICAgIH0KLX07Ci1jdXN0b21FbGVt
ZW50cy5kZWZpbmUoJ2luc3RhbnRpYXRlcy1pdHNlbGYtYmVmb3JlLXN1cGVyJywgSW5zdGFudGlh
dGVzSXRzZWxmQmVmb3JlU3VwZXIpOwotCi1sZXQgc2hvdWxkQ3JlYXRlQW5vdGhlckluc3RhbmNl
ID0gdHJ1ZTsKLWxldCBhbm90aGVySW5zdGFuY2UgPSB1bmRlZmluZWQ7Ci1sZXQgZmlyc3RJbnN0
YW5jZSA9IHVuZGVmaW5lZDsKLWNsYXNzIFJldHVybnNBbm90aGVySW5zdGFuY2UgZXh0ZW5kcyBI
VE1MRWxlbWVudCB7Ci0gICAgY29uc3RydWN0b3IoKSB7Ci0gICAgICAgIHN1cGVyKCk7Ci0gICAg
ICAgIGlmIChzaG91bGRDcmVhdGVBbm90aGVySW5zdGFuY2UpIHsKLSAgICAgICAgICAgIHNob3Vs
ZENyZWF0ZUFub3RoZXJJbnN0YW5jZSA9IGZhbHNlOwotICAgICAgICAgICAgZmlyc3RJbnN0YW5j
ZSA9IHRoaXM7Ci0gICAgICAgICAgICBhbm90aGVySW5zdGFuY2UgPSBuZXcgUmV0dXJuc0Fub3Ro
ZXJJbnN0YW5jZTsKLSAgICAgICAgICAgIHJldHVybiBhbm90aGVySW5zdGFuY2U7Ci0gICAgICAg
IH0gZWxzZQotICAgICAgICAgICAgcmV0dXJuIHRoaXM7Ci0gICAgfQotfTsKLWN1c3RvbUVsZW1l
bnRzLmRlZmluZSgncmV0dXJucy1hbm90aGVyLWluc3RhbmNlJywgUmV0dXJuc0Fub3RoZXJJbnN0
YW5jZSk7Ci0KLTwvc2NyaXB0PgotPGluc3RhbnRpYXRlcy1pdHNlbGYtYmVmb3JlLXN1cGVyPjwv
aW5zdGFudGlhdGVzLWl0c2VsZi1iZWZvcmUtc3VwZXI+Ci08cmV0dXJucy1hbm90aGVyLWluc3Rh
bmNlPjwvcmV0dXJucy1hbm90aGVyLWluc3RhbmNlPgotPHNjcmlwdD4KLQotdGVzdChmdW5jdGlv
biAoKSB7Ci0gICAgdmFyIGluc3RhbmNlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaW5zdGFu
dGlhdGVzLWl0c2VsZi1iZWZvcmUtc3VwZXInKTsKLQotICAgIGFzc2VydF9lcXVhbHMoaW5zdGFu
Y2UsIGVsZW1lbnRDcmVhdGVkQnlTdXBlckNhbGwsICdIVE1MIHBhcnNlciBtdXN0IGluc2VydCB0
aGUgZWxlbWVudCByZXR1cm5lZCBieSB0aGUgY3VzdG9tIGVsZW1lbnQgY29uc3RydWN0b3InKTsK
LSAgICBhc3NlcnRfbm90X2VxdWFscyhpbnN0YW5jZSwgYW5vdGhlckVsZW1lbnRDcmVhdGVkQmVm
b3JlU3VwZXJDYWxsLCAnSFRNTCBwYXJzZXIgbXVzdCBub3QgaW5zZXJ0IGFub3RoZXIgaW5zdGFu
Y2Ugb2YgdGhlIGN1c3RvbSBlbGVtZW50IGNyZWF0ZWQgYmVmb3JlIHN1cGVyKCkgY2FsbCcpOwot
ICAgIGFzc2VydF9lcXVhbHMoYW5vdGhlckVsZW1lbnRDcmVhdGVkQmVmb3JlU3VwZXJDYWxsLnBh
cmVudE5vZGUsIG51bGwsICdIVE1MIHBhcnNlciBtdXN0IG5vdCBpbnNlcnQgYW5vdGhlciBpbnN0
YW5jZSBvZiB0aGUgY3VzdG9tIGVsZW1lbnQgY3JlYXRlZCBiZWZvcmUgc3VwZXIoKSBjYWxsJyk7
Ci0KLX0sICdIVE1MIHBhcnNlciBtdXN0IHVzZSB0aGUgcmV0dXJuZWQgdmFsdWUgb2YgdGhlIGN1
c3RvbSBlbGVtZW50IGNvbnN0cnVjdG9yIGluc3RlYWQgb2YgdGhlIG9uZSBjcmVhdGVkIGJlZm9y
ZSBzdXBlcigpIGNhbGwnKTsKLQotdGVzdChmdW5jdGlvbiAoKSB7Ci0gICAgdmFyIGluc3RhbmNl
ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigncmV0dXJucy1hbm90aGVyLWluc3RhbmNlJyk7Ci0K
LSAgICBhc3NlcnRfZXF1YWxzKGluc3RhbmNlLCBhbm90aGVySW5zdGFuY2UsICdIVE1MIHBhcnNl
ciBtdXN0IGluc2VydCB0aGUgZWxlbWVudCByZXR1cm5lZCBieSB0aGUgY3VzdG9tIGVsZW1lbnQg
Y29uc3RydWN0b3InKTsKLSAgICBhc3NlcnRfbm90X2VxdWFscyhpbnN0YW5jZSwgZmlyc3RJbnN0
YW5jZSwgJ0hUTUwgcGFyc2VyIG11c3Qgbm90IGluc2VydCB0aGUgZWxlbWVudCBjcmVhdGVkIGJ5
IHN1cGVyKCkgY2FsbCBpZiB0aGUgY29uc3RydWN0b3IgcmV0dXJuZWQgYW5vdGhlciBlbGVtZW50
Jyk7Ci0gICAgYXNzZXJ0X2VxdWFscyhmaXJzdEluc3RhbmNlLnBhcmVudE5vZGUsIG51bGwsICdI
VE1MIHBhcnNlciBtdXN0IG5vdCBpbnNlcnQgdGhlIGVsZW1lbnQgY3JlYXRlZCBieSBzdXBlcigp
IGNhbGwgaWYgdGhlIGNvbnN0cnVjdG9yIHJldHVybmVkIGFub3RoZXIgZWxlbWVudCcpOwotCi19
LCAnSFRNTCBwYXJzZXIgbXVzdCB1c2UgdGhlIHJldHVybmVkIHZhbHVlIG9mIHRoZSBjdXN0b20g
ZWxlbWVudCBjb25zdHJ1Y3RvciBpbnN0ZWFkIHVzaW5nIHRoZSBvbmUgY3JlYXRlZCBpbiBzdXBl
cigpIGNhbGwnKTsKLQotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2N1c3RvbS1lbGVtZW50cy9wYXJzZXIvcGFyc2VyLXVzZXMtcmVnaXN0
cnktb2Ytb3duZXItZG9jdW1lbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jdXN0
b20tZWxlbWVudHMvcGFyc2VyL3BhcnNlci11c2VzLXJlZ2lzdHJ5LW9mLW93bmVyLWRvY3VtZW50
LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzIyMTY5MGMzYjU5
NTMxZTVlMzZkYzJkMzU1YTNlZmVkMGVhMjYwYi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2N1c3RvbS1lbGVtZW50cy9wYXJz
ZXIvcGFyc2VyLXVzZXMtcmVnaXN0cnktb2Ytb3duZXItZG9jdW1lbnQtZXhwZWN0ZWQudHh0Cisr
KyAvZGV2L251bGwKQEAgLTEsOCArMCwwIEBACi0KLVBBU1MgSFRNTCBwYXJzZXIgbXVzdCBub3Qg
aW5zdGFudGlhdGUgY3VzdG9tIGVsZW1lbnRzIGluc2lkZSB0ZW1wbGF0ZSBlbGVtZW50cyAKLVBB
U1MgSFRNTCBwYXJzZXIgbXVzdCBub3QgdXNlIHRoZSByZWdpc3RyeSBvZiB0aGUgb3duZXIgZWxl
bWVudCdzIGRvY3VtZW50IGluc2lkZSBhbiBpZnJhbWUgCi1QQVNTIEhUTUwgcGFyc2VyIG11c3Qg
dXNlIHRoZSByZWdpc3RyeSBvZiB0aGUgY29udGVudCBkb2N1bWVudCBpbnNpZGUgYW4gaWZyYW1l
IAotUEFTUyBIVE1MIHBhcnNlciBtdXN0IG5vdCBpbnN0YW50aWF0ZSBhIGN1c3RvbSBlbGVtZW50
IGRlZmluZWQgaW5zaWRlIGFuIGZyYW1lIGluIGZyYW1lIGVsZW1lbnQncyBvd25lciBkb2N1bWVu
dCAKLVBBU1MgSFRNTCBwYXJzZXIgbXVzdCB1c2UgdGhlIHJlZ2lzdHJ5IG9mIHdpbmRvdy5kb2N1
bWVudCBpbiBhIGRvY3VtZW50IGNyZWF0ZWQgYnkgZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3Jl
YXRlSFRNTERvY3VtZW50KCkgCi1QQVNTIEhUTUwgcGFyc2VyIG11c3QgdXNlIHRoZSByZWdpc3Ry
eSBvZiB3aW5kb3cuZG9jdW1lbnQgaW4gYSBkb2N1bWVudCBjcmVhdGVkIGJ5IGRvY3VtZW50Lmlt
cGxlbWVudGF0aW9uLmNyZWF0ZVhIVE1MRG9jdW1lbnQoKSAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9jdXN0b20tZWxlbWVudHMvcGFyc2VyL3BhcnNlci11c2VzLXJlZ2lzdHJ5LW9m
LW93bmVyLWRvY3VtZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2N1c3RvbS1lbGVtZW50cy9w
YXJzZXIvcGFyc2VyLXVzZXMtcmVnaXN0cnktb2Ytb3duZXItZG9jdW1lbnQuaHRtbApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGI1YmI3NGZmYzBhZDQwMjJmZjBlNGExMzZiMGYzMTU1
OTJkZTE5Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L2N1c3RvbS1lbGVtZW50cy9wYXJzZXIvcGFyc2VyLXVzZXMtcmVnaXN0
cnktb2Ytb3duZXItZG9jdW1lbnQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDk4ICswLDAgQEAK
LTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTx0aXRsZT5DdXN0b20gRWxlbWVudHM6
IENoYW5nZXMgdG8gdGhlIEhUTUwgcGFyc2VyPC90aXRsZT4KLTxtZXRhIG5hbWU9ImF1dGhvciIg
dGl0bGU9IlJ5b3N1a2UgTml3YSIgaHJlZj0ibWFpbHRvOnJuaXdhQHdlYmtpdC5vcmciPgotPG1l
dGEgbmFtZT0iYXNzZXJ0IiBjb250ZW50PSJIVE1MIHBhcnNlciBtdXN0IHVzZSB0aGUgb3duZXIg
ZG9jdW1lbnQncyBjdXN0b20gZWxlbWVudCByZWdpc3RyeSI+Ci08c2NyaXB0IHNyYz0iLi4vLi4v
Li4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPGxpbmsgcmVs
PSdzdHlsZXNoZWV0JyBocmVmPScuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuY3NzJz4K
LTwvaGVhZD4KLTxib2R5PgotPGRpdiBpZD0ibG9nIj48L2Rpdj4KLTxzY3JpcHQ+Ci0KLWNsYXNz
IE15Q3VzdG9tRWxlbWVudCBleHRlbmRzIEhUTUxFbGVtZW50IHsgfTsKLWN1c3RvbUVsZW1lbnRz
LmRlZmluZSgnbXktY3VzdG9tLWVsZW1lbnQnLCBNeUN1c3RvbUVsZW1lbnQpOwotCi1kb2N1bWVu
dC53cml0ZSgnPHRlbXBsYXRlPjxteS1jdXN0b20tZWxlbWVudD48L215LWN1c3RvbS1lbGVtZW50
PjwvdGVtcGxhdGU+Jyk7Ci0KLXRlc3QoZnVuY3Rpb24gKCkgewotICAgIHZhciB0ZW1wbGF0ZSA9
IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ3RlbXBsYXRlJyk7Ci0gICAgdmFyIGluc3RhbmNlID0g
dGVtcGxhdGUuY29udGVudC5maXJzdENoaWxkOwotCi0gICAgYXNzZXJ0X3RydWUoaW5zdGFuY2Ug
aW5zdGFuY2VvZiBIVE1MRWxlbWVudCwKLSAgICAgICAgJ0EgY3VzdG9tIGVsZW1lbnQgaW5zaWRl
IGEgdGVtcGxhdGUgZWxlbWVudCBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIEhUTUxFbGVtZW50Jyk7
Ci0gICAgYXNzZXJ0X2ZhbHNlKGluc3RhbmNlIGluc3RhbmNlb2YgTXlDdXN0b21FbGVtZW50LAot
ICAgICAgICAnQSBjdXN0b20gZWxlbWVudCBtdXN0IG5vdCBiZSBpbnN0YW50aWF0ZWQgaW5zaWRl
IGEgdGVtcGxhdGUgZWxlbWVudCB1c2luZyB0aGUgcmVnaXN0cnkgb2YgdGhlIHRlbXBsYXRlIGVs
ZW1lbnRcJ3Mgb3duZXIgZG9jdW1lbnQnKTsKLSAgICBhc3NlcnRfZXF1YWxzKGluc3RhbmNlLm93
bmVyRG9jdW1lbnQsIHRlbXBsYXRlLmNvbnRlbnQub3duZXJEb2N1bWVudCwKLSAgICAgICAgJ0N1
c3RvbSBlbGVtZW50cyBpbnNpZGUgYSB0ZW1wbGF0ZSBtdXN0IHVzZSB0aGUgYXBwcm9wcmlhdGUg
dGVtcGxhdGUgY29udGVudHMgb3duZXIgZG9jdW1lbnQgYXMgdGhlIG93bmVyIGRvY3VtZW50Jyk7
Ci0KLX0sICdIVE1MIHBhcnNlciBtdXN0IG5vdCBpbnN0YW50aWF0ZSBjdXN0b20gZWxlbWVudHMg
aW5zaWRlIHRlbXBsYXRlIGVsZW1lbnRzJyk7Ci0KLXZhciBpZnJhbWUgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCdpZnJhbWUnKTsKLWRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaWZyYW1lKTsK
LWlmcmFtZS5jb250ZW50RG9jdW1lbnQuYm9keS5pbm5lckhUTUwgPSAnPG15LWN1c3RvbS1lbGVt
ZW50PjwvbXktY3VzdG9tLWVsZW1lbnQ+JzsKLQotdGVzdChmdW5jdGlvbiAoKSB7Ci0gICAgdmFy
IGluc3RhbmNlID0gaWZyYW1lLmNvbnRlbnREb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdteS1jdXN0
b20tZWxlbWVudCcpOwotCi0gICAgYXNzZXJ0X3RydWUoaW5zdGFuY2UgaW5zdGFuY2VvZiBpZnJh
bWUuY29udGVudFdpbmRvdy5IVE1MRWxlbWVudCk7Ci0gICAgYXNzZXJ0X2ZhbHNlKGluc3RhbmNl
IGluc3RhbmNlb2YgTXlDdXN0b21FbGVtZW50KTsKLQotfSwgJ0hUTUwgcGFyc2VyIG11c3Qgbm90
IHVzZSB0aGUgcmVnaXN0cnkgb2YgdGhlIG93bmVyIGVsZW1lbnRcJ3MgZG9jdW1lbnQgaW5zaWRl
IGFuIGlmcmFtZScpOwotCi1jbGFzcyBFbGVtZW50SW5JRnJhbWUgZXh0ZW5kcyBpZnJhbWUuY29u
dGVudFdpbmRvdy5IVE1MRWxlbWVudCB7IH07Ci1pZnJhbWUuY29udGVudFdpbmRvdy5jdXN0b21F
bGVtZW50cy5kZWZpbmUoJ2VsZW1lbnQtaW4taWZyYW1lJywgRWxlbWVudEluSUZyYW1lKTsKLWlm
cmFtZS5jb250ZW50RG9jdW1lbnQuYm9keS5pbm5lckhUTUwgPSAnPGVsZW1lbnQtaW4taWZyYW1l
PjwvZWxlbWVudC1pbi1pZnJhbWU+JzsKLQotdGVzdChmdW5jdGlvbiAoKSB7Ci0gICAgdmFyIGlu
c3RhbmNlID0gaWZyYW1lLmNvbnRlbnREb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdlbGVtZW50LWlu
LWlmcmFtZScpOwotCi0gICAgYXNzZXJ0X3RydWUoaW5zdGFuY2UgaW5zdGFuY2VvZiBpZnJhbWUu
Y29udGVudFdpbmRvdy5IVE1MRWxlbWVudCwgJ0EgY3VzdG9tIGVsZW1lbnQgaW5zaWRlIGFuIGlm
cmFtZSBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIEhUTUxFbGVtZW50Jyk7Ci0gICAgYXNzZXJ0X3Ry
dWUoaW5zdGFuY2UgaW5zdGFuY2VvZiBFbGVtZW50SW5JRnJhbWUsCi0gICAgICAgICdBIGN1c3Rv
bSBlbGVtZW50IG11c3QgYmUgaW5zdGFudGlhdGVkIGluc2lkZSBhbiBpZnJhbWUgdXNpbmcgdGhl
IHJlZ2lzdHJ5IG9mIHRoZSBjb250ZW50IGRvY3VtZW50Jyk7Ci0gICAgYXNzZXJ0X2VxdWFscyhp
bnN0YW5jZS5vd25lckRvY3VtZW50LCBpZnJhbWUuY29udGVudERvY3VtZW50LAotICAgICAgICAn
VGhlIG93bmVyIGRvY3VtZW50IG9mIGN1c3RvbSBlbGVtZW50cyBpbnNpZGUgYW4gaWZyYW1lIG11
c3QgYmUgdGhlIGNvbnRlbnQgZG9jdW1lbnQgb2YgdGhlIGlmcmFtZScpOwotCi19LCAnSFRNTCBw
YXJzZXIgbXVzdCB1c2UgdGhlIHJlZ2lzdHJ5IG9mIHRoZSBjb250ZW50IGRvY3VtZW50IGluc2lk
ZSBhbiBpZnJhbWUnKTsKLQotZG9jdW1lbnQud3JpdGUoJzxlbGVtZW50LWluLWlmcmFtZT48L2Vs
ZW1lbnQtaW4taWZyYW1lPicpOwotCi10ZXN0KGZ1bmN0aW9uICgpIHsKLSAgICB2YXIgaW5zdGFu
Y2UgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdlbGVtZW50LWluLWlmcmFtZScpOwotCi0gICAg
YXNzZXJ0X3RydWUoaW5zdGFuY2UgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCk7Ci0gICAgYXNzZXJ0
X2ZhbHNlKGluc3RhbmNlIGluc3RhbmNlb2YgRWxlbWVudEluSUZyYW1lKTsKLQotfSwgJ0hUTUwg
cGFyc2VyIG11c3Qgbm90IGluc3RhbnRpYXRlIGEgY3VzdG9tIGVsZW1lbnQgZGVmaW5lZCBpbnNp
ZGUgYW4gZnJhbWUgaW4gZnJhbWUgZWxlbWVudFwncyBvd25lciBkb2N1bWVudCcpOwotCi1kb2N1
bWVudC5ib2R5LnJlbW92ZUNoaWxkKGlmcmFtZSk7Ci0KLXZhciB3aW5kb3dsZXNzRG9jdW1lbnQg
PSBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQoKTsKLXdpbmRvd2xl
c3NEb2N1bWVudC5vcGVuKCk7Ci13aW5kb3dsZXNzRG9jdW1lbnQud3JpdGUoJzxteS1jdXN0b20t
ZWxlbWVudD48L215LWN1c3RvbS1lbGVtZW50PicpOwotd2luZG93bGVzc0RvY3VtZW50LmNsb3Nl
KCk7Ci0KLXRlc3QoZnVuY3Rpb24gKCkgewotICAgIHZhciBpbnN0YW5jZSA9IHdpbmRvd2xlc3NE
b2N1bWVudC5xdWVyeVNlbGVjdG9yKCdteS1jdXN0b20tZWxlbWVudCcpOwotCi0gICAgYXNzZXJ0
X3RydWUoaW5zdGFuY2UgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCk7Ci0gICAgYXNzZXJ0X2ZhbHNl
KGluc3RhbmNlIGluc3RhbmNlb2YgTXlDdXN0b21FbGVtZW50KTsKLQotfSwgJ0hUTUwgcGFyc2Vy
IG11c3QgdXNlIHRoZSByZWdpc3RyeSBvZiB3aW5kb3cuZG9jdW1lbnQgaW4gYSBkb2N1bWVudCBj
cmVhdGVkIGJ5IGRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZUhUTUxEb2N1bWVudCgpJyk7
Ci0KLXdpbmRvd2xlc3NEb2N1bWVudCA9IGRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZURv
Y3VtZW50ICgnaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcsICdodG1sJywgbnVsbCk7Ci13
aW5kb3dsZXNzRG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmlubmVySFRNTCA9ICc8bXktY3VzdG9t
LWVsZW1lbnQ+PC9teS1jdXN0b20tZWxlbWVudD4nOwotCi10ZXN0KGZ1bmN0aW9uICgpIHsKLSAg
ICB2YXIgaW5zdGFuY2UgPSB3aW5kb3dsZXNzRG9jdW1lbnQucXVlcnlTZWxlY3RvcignbXktY3Vz
dG9tLWVsZW1lbnQnKTsKLQotICAgIGFzc2VydF90cnVlKGluc3RhbmNlIGluc3RhbmNlb2YgSFRN
TEVsZW1lbnQpOwotICAgIGFzc2VydF9mYWxzZShpbnN0YW5jZSBpbnN0YW5jZW9mIE15Q3VzdG9t
RWxlbWVudCk7Ci0KLX0sICdIVE1MIHBhcnNlciBtdXN0IHVzZSB0aGUgcmVnaXN0cnkgb2Ygd2lu
ZG93LmRvY3VtZW50IGluIGEgZG9jdW1lbnQgY3JlYXRlZCBieSBkb2N1bWVudC5pbXBsZW1lbnRh
dGlvbi5jcmVhdGVYSFRNTERvY3VtZW50KCknKTsKLQotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2N1c3RvbS1lbGVtZW50cy91cGdyYWRp
bmcvTm9kZS1jbG9uZU5vZGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jdXN0b20t
ZWxlbWVudHMvdXBncmFkaW5nL05vZGUtY2xvbmVOb2RlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggY2E1ZGYwZDlkOTM3NTFiNTc2MmExZGExNTAzNTUxMzIwYzcx
Mzk5Yi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L2N1c3RvbS1lbGVtZW50cy91cGdyYWRpbmcvTm9kZS1jbG9uZU5vZGUtZXhw
ZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTAgKzAsMCBAQAotCi1QQVNTIE5vZGUucHJv
dG90eXBlLmNsb25lTm9kZShmYWxzZSkgbXVzdCBiZSBhYmxlIHRvIGNsb25lIGEgY3VzdG9tIGVs
ZW1lbnQgCi1QQVNTIE5vZGUucHJvdG90eXBlLmNsb25lTm9kZShmYWxzZSkgbXVzdCBiZSBhYmxl
IHRvIGNsb25lIGEgY3VzdG9tIGVsZW1lbnQgaW5zaWRlIGFuIGlmcmFtZSAKLVBBU1MgTm9kZS5w
cm90b3R5cGUuY2xvbmVOb2RlKHRydWUpIG11c3QgYmUgYWJsZSB0byBjbG9uZSBhIGRlc2NlbmRl
bnQgY3VzdG9tIGVsZW1lbnQgCi1QQVNTIE5vZGUucHJvdG90eXBlLmNsb25lTm9kZSh0cnVlKSBt
dXN0IGJlIGFibGUgdG8gY2xvbmUgYSBkZXNjZW5kZW50IGN1c3RvbSBlbGVtZW50IAotUEFTUyBI
VE1MRWxlbWVudCBjb25zdHJ1Y3RvciBtdXN0IHRocm93IGFuIEludmFsaWRTdGF0ZUVycm9yIHdo
ZW4gdGhlIHRvcCBvZiB0aGUgY29uc3RydWN0aW9uIHN0YWNrIGlzIG1hcmtlZCBBbHJlYWR5Q29u
c3RydWN0ZWQgZHVlIHRvIGEgY3VzdG9tIGVsZW1lbnQgY29uc3RydWN0b3IgY29uc3RydWN0aW5n
IGl0c2VsZiBhZnRlciBzdXBlcigpIGNhbGwgCi1QQVNTIEhUTUxFbGVtZW50IGNvbnN0cnVjdG9y
IG11c3QgdGhyb3cgYW4gSW52YWxpZFN0YXRlRXJyb3Igd2hlbiB0aGUgdG9wIG9mIHRoZSBjb25z
dHJ1Y3Rpb24gc3RhY2sgaXMgbWFya2VkIEFscmVhZHlDb25zdHJ1Y3RlZCBkdWUgdG8gYSBjdXN0
b20gZWxlbWVudCBjb25zdHJ1Y3RvciBjb25zdHJ1Y3RpbmcgaXRzZWxmIGJlZm9yZSBzdXBlcigp
IGNhbGwgCi1QQVNTIFVwZ3JhZGluZyBhIGN1c3RvbSBlbGVtZW50IG11c3QgdGhyb3cgSW52YWxp
ZFN0YXRlRXJyb3Igd2hlbiB0aGUgY3VzdG9tIGVsZW1lbnQncyBjb25zdHJ1Y3RvciByZXR1cm5z
IGFub3RoZXIgZWxlbWVudCAKLVBBU1MgSW5zZXJ0aW5nIGFuIGVsZW1lbnQgbXVzdCBub3QgdHJ5
IHRvIHVwZ3JhZGUgYSBjdXN0b20gZWxlbWVudCB3aGVuIGl0IGhhZCBhbHJlYWR5IGZhaWxlZCB0
byB1cGdyYWRlIG9uY2UgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVs
ZW1lbnRzL3VwZ3JhZGluZy9Ob2RlLWNsb25lTm9kZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9j
dXN0b20tZWxlbWVudHMvdXBncmFkaW5nL05vZGUtY2xvbmVOb2RlLmh0bWwKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDNkM2E4NTljNjA2NGU3NTcwMzllYmUyOGFiMWVjY2Y0MDZhNWI5
ZWEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9jdXN0b20tZWxlbWVudHMvdXBncmFkaW5nL05vZGUtY2xvbmVOb2RlLmh0bWwK
KysrIC9kZXYvbnVsbApAQCAtMSwyMDYgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4K
LTxoZWFkPgotPHRpdGxlPkN1c3RvbSBFbGVtZW50czogVXBncmFkaW5nPC90aXRsZT4KLTxtZXRh
IG5hbWU9ImF1dGhvciIgdGl0bGU9IlJ5b3N1a2UgTml3YSIgaHJlZj0ibWFpbHRvOnJuaXdhQHdl
YmtpdC5vcmciPgotPG1ldGEgbmFtZT0iYXNzZXJ0IiBjb250ZW50PSJOb2RlLnByb3RvdHlwZS5j
bG9uZU5vZGUgc2hvdWxkIHVwZ3JhZGUgYSBjdXN0b20gZWxlbWVudCI+Ci08bGluayByZWw9Imhl
bHAiIGhyZWY9Imh0dHBzOi8vdzNjLmdpdGh1Yi5pby93ZWJjb21wb25lbnRzL3NwZWMvY3VzdG9t
LyN1cGdyYWRpbmciPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVz
cy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxsaW5rIHJlbD0nc3R5bGVzaGVldCcgaHJlZj0nLi4v
Li4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmNzcyc+Ci08L2hlYWQ+Ci08Ym9keT4KLTxkaXYg
aWQ9ImxvZyI+PC9kaXY+Ci08c2NyaXB0PgotCi1mdW5jdGlvbiB3aXRoTmV3RG9jdW1lbnRXaXRo
QUJyb3dzaW5nQ29udGV4dChjYWxsYmFjaykgewotICAgIHZhciBpZnJhbWUgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCdpZnJhbWUnKTsKLSAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGlm
cmFtZSk7Ci0gICAgdHJ5IHsKLSAgICAgICAgY2FsbGJhY2soaWZyYW1lLmNvbnRlbnRXaW5kb3cs
IGlmcmFtZS5jb250ZW50RG9jdW1lbnQpOyAgICAgICAgCi0gICAgfSBmaW5hbGx5IHsKLSAgICAg
ICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChpZnJhbWUpOwotICAgIH0KLX0KLQotdGVzdChm
dW5jdGlvbiAoKSB7Ci0gICAgY2xhc3MgTXlDdXN0b21FbGVtZW50IGV4dGVuZHMgSFRNTEVsZW1l
bnQge30KLSAgICBjdXN0b21FbGVtZW50cy5kZWZpbmUoJ215LWN1c3RvbS1lbGVtZW50JywgTXlD
dXN0b21FbGVtZW50KTsKLQotICAgIHZhciBpbnN0YW5jZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoJ215LWN1c3RvbS1lbGVtZW50Jyk7Ci0gICAgYXNzZXJ0X3RydWUoaW5zdGFuY2UgaW5zdGFu
Y2VvZiBIVE1MRWxlbWVudCk7Ci0gICAgYXNzZXJ0X3RydWUoaW5zdGFuY2UgaW5zdGFuY2VvZiBN
eUN1c3RvbUVsZW1lbnQpOwotCi0gICAgdmFyIGNsb25lID0gaW5zdGFuY2UuY2xvbmVOb2RlKGZh
bHNlKTsKLSAgICBhc3NlcnRfbm90X2VxdWFscyhpbnN0YW5jZSwgY2xvbmUpOwotICAgIGFzc2Vy
dF90cnVlKGNsb25lIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQsCi0gICAgICAgICdBIGNsb25lZCBj
dXN0b20gZWxlbWVudCBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIEhUTUxFbGVtZW50Jyk7Ci0gICAg
YXNzZXJ0X3RydWUoY2xvbmUgaW5zdGFuY2VvZiBNeUN1c3RvbUVsZW1lbnQsCi0gICAgICAgICdB
IGNsb25lZCBjdXN0b20gZWxlbWVudCBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIHRoZSBjdXN0b20g
ZWxlbWVudCcpOwotfSwgJ05vZGUucHJvdG90eXBlLmNsb25lTm9kZShmYWxzZSkgbXVzdCBiZSBh
YmxlIHRvIGNsb25lIGEgY3VzdG9tIGVsZW1lbnQnKTsKLQotdGVzdChmdW5jdGlvbiAoKSB7Ci0g
ICAgd2l0aE5ld0RvY3VtZW50V2l0aEFCcm93c2luZ0NvbnRleHQoZnVuY3Rpb24gKGNvbnRlbnRX
aW5kb3csIGNvbnRlbnREb2N1bWVudCkgewotICAgICAgICBjbGFzcyBNeUN1c3RvbUVsZW1lbnQg
ZXh0ZW5kcyBjb250ZW50V2luZG93LkhUTUxFbGVtZW50IHt9Ci0gICAgICAgIGNvbnRlbnRXaW5k
b3cuY3VzdG9tRWxlbWVudHMuZGVmaW5lKCdteS1jdXN0b20tZWxlbWVudCcsIE15Q3VzdG9tRWxl
bWVudCk7Ci0KLSAgICAgICAgdmFyIGluc3RhbmNlID0gY29udGVudERvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoJ215LWN1c3RvbS1lbGVtZW50Jyk7Ci0gICAgICAgIGFzc2VydF90cnVlKGluc3RhbmNl
IGluc3RhbmNlb2YgY29udGVudFdpbmRvdy5IVE1MRWxlbWVudCk7Ci0gICAgICAgIGFzc2VydF90
cnVlKGluc3RhbmNlIGluc3RhbmNlb2YgTXlDdXN0b21FbGVtZW50KTsKLQotICAgICAgICB2YXIg
Y2xvbmUgPSBpbnN0YW5jZS5jbG9uZU5vZGUoZmFsc2UpOwotICAgICAgICBhc3NlcnRfbm90X2Vx
dWFscyhpbnN0YW5jZSwgY2xvbmUpOwotICAgICAgICBhc3NlcnRfdHJ1ZShjbG9uZSBpbnN0YW5j
ZW9mIGNvbnRlbnRXaW5kb3cuSFRNTEVsZW1lbnQsCi0gICAgICAgICAgICAnQSBjbG9uZWQgY3Vz
dG9tIGVsZW1lbnQgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBIVE1MRWxlbWVudCcpOwotICAgICAg
ICBhc3NlcnRfdHJ1ZShjbG9uZSBpbnN0YW5jZW9mIE15Q3VzdG9tRWxlbWVudCwKLSAgICAgICAg
ICAgICdBIGNsb25lZCBjdXN0b20gZWxlbWVudCBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIHRoZSBj
dXN0b20gZWxlbWVudCcpOwotICAgIH0pOwotfSwgJ05vZGUucHJvdG90eXBlLmNsb25lTm9kZShm
YWxzZSkgbXVzdCBiZSBhYmxlIHRvIGNsb25lIGEgY3VzdG9tIGVsZW1lbnQgaW5zaWRlIGFuIGlm
cmFtZScpOwotCi10ZXN0KGZ1bmN0aW9uICgpIHsKLSAgICB3aXRoTmV3RG9jdW1lbnRXaXRoQUJy
b3dzaW5nQ29udGV4dChmdW5jdGlvbiAoY29udGVudFdpbmRvdywgY29udGVudERvY3VtZW50KSB7
Ci0gICAgICAgIGNsYXNzIE15Q3VzdG9tRWxlbWVudCBleHRlbmRzIGNvbnRlbnRXaW5kb3cuSFRN
TEVsZW1lbnQgeyB9Ci0gICAgICAgIGNvbnRlbnRXaW5kb3cuY3VzdG9tRWxlbWVudHMuZGVmaW5l
KCdteS1jdXN0b20tZWxlbWVudCcsIE15Q3VzdG9tRWxlbWVudCk7Ci0KLSAgICAgICAgdmFyIGlu
c3RhbmNlID0gY29udGVudERvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ215LWN1c3RvbS1lbGVtZW50
Jyk7Ci0gICAgICAgIHZhciBjb250YWluZXIgPSBjb250ZW50RG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgnZGl2Jyk7Ci0gICAgICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZChpbnN0YW5jZSk7Ci0KLSAg
ICAgICAgdmFyIGNvbnRhaW5lckNsb25lID0gY29udGFpbmVyLmNsb25lTm9kZSh0cnVlKTsKLSAg
ICAgICAgYXNzZXJ0X3RydWUoY29udGFpbmVyQ2xvbmUgaW5zdGFuY2VvZiBjb250ZW50V2luZG93
LkhUTUxEaXZFbGVtZW50KTsKLQotICAgICAgICB2YXIgY2xvbmUgPSBjb250YWluZXJDbG9uZS5m
aXJzdENoaWxkOwotICAgICAgICBhc3NlcnRfbm90X2VxdWFscyhpbnN0YW5jZSwgY2xvbmUpOwot
ICAgICAgICBhc3NlcnRfdHJ1ZShjbG9uZSBpbnN0YW5jZW9mIGNvbnRlbnRXaW5kb3cuSFRNTEVs
ZW1lbnQsCi0gICAgICAgICAgICAnQSBjbG9uZWQgY3VzdG9tIGVsZW1lbnQgbXVzdCBiZSBhbiBp
bnN0YW5jZSBvZiBIVE1MRWxlbWVudCcpOwotICAgICAgICBhc3NlcnRfdHJ1ZShjbG9uZSBpbnN0
YW5jZW9mIE15Q3VzdG9tRWxlbWVudCwKLSAgICAgICAgICAgICdBIGNsb25lZCBjdXN0b20gZWxl
bWVudCBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIHRoZSBjdXN0b20gZWxlbWVudCcpOwotICAgIH0p
OwotfSwgJ05vZGUucHJvdG90eXBlLmNsb25lTm9kZSh0cnVlKSBtdXN0IGJlIGFibGUgdG8gY2xv
bmUgYSBkZXNjZW5kZW50IGN1c3RvbSBlbGVtZW50Jyk7Ci0KLXRlc3QoZnVuY3Rpb24gKCkgewot
ICAgIHdpdGhOZXdEb2N1bWVudFdpdGhBQnJvd3NpbmdDb250ZXh0KGZ1bmN0aW9uIChjb250ZW50
V2luZG93LCBjb250ZW50RG9jdW1lbnQpIHsKLSAgICAgICAgdmFyIHBhcmVudE5vZGVJbkNvbnN0
cnVjdG9yOwotICAgICAgICB2YXIgcHJldmlvdXNTaWJsaW5nSW5Db25zdHJ1Y3RvcjsKLSAgICAg
ICAgdmFyIG5leHRTaWJsaW5nSW5Db25zdHJ1Y3RvcjsKLSAgICAgICAgY2xhc3MgTXlDdXN0b21F
bGVtZW50IGV4dGVuZHMgY29udGVudFdpbmRvdy5IVE1MRWxlbWVudCB7Ci0gICAgICAgICAgICBj
b25zdHJ1Y3RvcigpIHsKLSAgICAgICAgICAgICAgICBzdXBlcigpOwotICAgICAgICAgICAgICAg
IHBhcmVudE5vZGVJbkNvbnN0cnVjdG9yID0gdGhpcy5wYXJlbnROb2RlOwotICAgICAgICAgICAg
ICAgIHByZXZpb3VzU2libGluZ0luQ29uc3RydWN0b3IgPSB0aGlzLnByZXZpb3VzU2libGluZzsK
LSAgICAgICAgICAgICAgICBuZXh0U2libGluZ0luQ29uc3RydWN0b3IgPSB0aGlzLm5leHRTaWJs
aW5nOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIGNvbnRlbnRXaW5kb3cuY3Vz
dG9tRWxlbWVudHMuZGVmaW5lKCdteS1jdXN0b20tZWxlbWVudCcsIE15Q3VzdG9tRWxlbWVudCk7
Ci0KLSAgICAgICAgdmFyIGluc3RhbmNlID0gY29udGVudERvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
J215LWN1c3RvbS1lbGVtZW50Jyk7Ci0gICAgICAgIHZhciBzaWJsaW5nQmVmb3JlSW5zdGFuY2Ug
PSBjb250ZW50RG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYicpOwotICAgICAgICB2YXIgc2libGlu
Z0FmdGVySW5zdGFuY2UgPSBjb250ZW50RG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpOwotICAg
ICAgICB2YXIgY29udGFpbmVyID0gY29udGVudERvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Rpdicp
OwotICAgICAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQoc2libGluZ0JlZm9yZUluc3RhbmNlKTsK
LSAgICAgICAgY29udGFpbmVyLmFwcGVuZENoaWxkKGluc3RhbmNlKTsKLSAgICAgICAgY29udGFp
bmVyLmFwcGVuZENoaWxkKHNpYmxpbmdBZnRlckluc3RhbmNlKTsKLQotICAgICAgICB2YXIgY29u
dGFpbmVyQ2xvbmUgPSBjb250YWluZXIuY2xvbmVOb2RlKHRydWUpOwotCi0gICAgICAgIGFzc2Vy
dF9lcXVhbHMocGFyZW50Tm9kZUluQ29uc3RydWN0b3IsIGNvbnRhaW5lckNsb25lLAotICAgICAg
ICAgICAgJ0FuIHVwZ3JhZGVkIGVsZW1lbnQgbXVzdCBoYXZlIGl0cyBwYXJlbnROb2RlIHNldCBi
ZWZvcmUgdGhlIGN1c3RvbSBlbGVtZW50IGNvbnN0cnVjdG9yIGlzIGNhbGxlZCcpOwotICAgICAg
ICBhc3NlcnRfZXF1YWxzKHByZXZpb3VzU2libGluZ0luQ29uc3RydWN0b3IsIGNvbnRhaW5lckNs
b25lLmZpcnN0Q2hpbGQsCi0gICAgICAgICAgICAnQW4gdXBncmFkZWQgZWxlbWVudCBtdXN0IGhh
dmUgaXRzIHByZXZpb3VzU2libGluZyBzZXQgYmVmb3JlIHRoZSBjdXN0b20gZWxlbWVudCBjb25z
dHJ1Y3RvciBpcyBjYWxsZWQnKTsKLSAgICAgICAgYXNzZXJ0X2VxdWFscyhuZXh0U2libGluZ0lu
Q29uc3RydWN0b3IsIGNvbnRhaW5lckNsb25lLmxhc3RDaGlsZCwKLSAgICAgICAgICAgICdBbiB1
cGdyYWRlZCBlbGVtZW50IG11c3QgaGF2ZSBpdHMgbmV4dFNpYmxpbmcgc2V0IGJlZm9yZSB0aGUg
Y3VzdG9tIGVsZW1lbnQgY29uc3RydWN0b3IgaXMgY2FsbGVkJyk7Ci0gICAgfSk7Ci19LCAnTm9k
ZS5wcm90b3R5cGUuY2xvbmVOb2RlKHRydWUpIG11c3QgYmUgYWJsZSB0byBjbG9uZSBhIGRlc2Nl
bmRlbnQgY3VzdG9tIGVsZW1lbnQnKTsKLQotdGVzdChmdW5jdGlvbiAoKSB7Ci0gICAgd2l0aE5l
d0RvY3VtZW50V2l0aEFCcm93c2luZ0NvbnRleHQoZnVuY3Rpb24gKGNvbnRlbnRXaW5kb3csIGNv
bnRlbnREb2N1bWVudCkgewotICAgICAgICBjbGFzcyBNeUN1c3RvbUVsZW1lbnQgZXh0ZW5kcyBj
b250ZW50V2luZG93LkhUTUxFbGVtZW50IHsKLSAgICAgICAgICAgIGNvbnN0cnVjdG9yKGRvTm90
Q3JlYXRlSXRzZWxmKSB7Ci0gICAgICAgICAgICAgICAgc3VwZXIoKTsKLSAgICAgICAgICAgICAg
ICBpZiAoIWRvTm90Q3JlYXRlSXRzZWxmKQotICAgICAgICAgICAgICAgICAgICBuZXcgTXlDdXN0
b21FbGVtZW50KHRydWUpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIGNvbnRl
bnRXaW5kb3cuY3VzdG9tRWxlbWVudHMuZGVmaW5lKCdteS1jdXN0b20tZWxlbWVudCcsIE15Q3Vz
dG9tRWxlbWVudCk7Ci0KLSAgICAgICAgdmFyIGluc3RhbmNlID0gbmV3IE15Q3VzdG9tRWxlbWVu
dChmYWxzZSk7Ci0gICAgICAgIHZhciB1bmNhdWdodEVycm9yOwotICAgICAgICBjb250ZW50V2lu
ZG93Lm9uZXJyb3IgPSBmdW5jdGlvbiAobWVzc2FnZSwgdXJsLCBsaW5lTnVtYmVyLCBjb2x1bW5O
dW1iZXIsIGVycm9yKSB7IHVuY2F1Z2h0RXJyb3IgPSBlcnJvcjsgcmV0dXJuIHRydWU7IH0KLSAg
ICAgICAgaW5zdGFuY2UuY2xvbmVOb2RlKGZhbHNlKTsKLSAgICAgICAgYXNzZXJ0X2VxdWFscyh1
bmNhdWdodEVycm9yLm5hbWUsICdJbnZhbGlkU3RhdGVFcnJvcicpOwotICAgIH0pOwotfSwgJ0hU
TUxFbGVtZW50IGNvbnN0cnVjdG9yIG11c3QgdGhyb3cgYW4gSW52YWxpZFN0YXRlRXJyb3Igd2hl
biB0aGUgdG9wIG9mIHRoZSBjb25zdHJ1Y3Rpb24gc3RhY2sgaXMgbWFya2VkIEFscmVhZHlDb25z
dHJ1Y3RlZCcKLSAgICArICcgZHVlIHRvIGEgY3VzdG9tIGVsZW1lbnQgY29uc3RydWN0b3IgY29u
c3RydWN0aW5nIGl0c2VsZiBhZnRlciBzdXBlcigpIGNhbGwnKTsKLQotdGVzdChmdW5jdGlvbiAo
KSB7Ci0gICAgd2l0aE5ld0RvY3VtZW50V2l0aEFCcm93c2luZ0NvbnRleHQoZnVuY3Rpb24gKGNv
bnRlbnRXaW5kb3csIGNvbnRlbnREb2N1bWVudCkgewotICAgICAgICBjbGFzcyBNeUN1c3RvbUVs
ZW1lbnQgZXh0ZW5kcyBjb250ZW50V2luZG93LkhUTUxFbGVtZW50IHsKLSAgICAgICAgICAgIGNv
bnN0cnVjdG9yKGRvTm90Q3JlYXRlSXRzZWxmKSB7Ci0gICAgICAgICAgICAgICAgaWYgKCFkb05v
dENyZWF0ZUl0c2VsZikKLSAgICAgICAgICAgICAgICAgICAgbmV3IE15Q3VzdG9tRWxlbWVudCh0
cnVlKTsKLSAgICAgICAgICAgICAgICBzdXBlcigpOwotICAgICAgICAgICAgfQotICAgICAgICB9
Ci0gICAgICAgIGNvbnRlbnRXaW5kb3cuY3VzdG9tRWxlbWVudHMuZGVmaW5lKCdteS1jdXN0b20t
ZWxlbWVudCcsIE15Q3VzdG9tRWxlbWVudCk7Ci0KLSAgICAgICAgdmFyIGluc3RhbmNlID0gbmV3
IE15Q3VzdG9tRWxlbWVudChmYWxzZSk7Ci0gICAgICAgIHZhciB1bmNhdWdodEVycm9yOwotICAg
ICAgICBjb250ZW50V2luZG93Lm9uZXJyb3IgPSBmdW5jdGlvbiAobWVzc2FnZSwgdXJsLCBsaW5l
TnVtYmVyLCBjb2x1bW5OdW1iZXIsIGVycm9yKSB7IHVuY2F1Z2h0RXJyb3IgPSBlcnJvcjsgcmV0
dXJuIHRydWU7IH0KLSAgICAgICAgaW5zdGFuY2UuY2xvbmVOb2RlKGZhbHNlKTsKLSAgICAgICAg
YXNzZXJ0X2VxdWFscyh1bmNhdWdodEVycm9yLm5hbWUsICdJbnZhbGlkU3RhdGVFcnJvcicpOwot
ICAgIH0pOwotfSwgJ0hUTUxFbGVtZW50IGNvbnN0cnVjdG9yIG11c3QgdGhyb3cgYW4gSW52YWxp
ZFN0YXRlRXJyb3Igd2hlbiB0aGUgdG9wIG9mIHRoZSBjb25zdHJ1Y3Rpb24gc3RhY2sgaXMgbWFy
a2VkIEFscmVhZHlDb25zdHJ1Y3RlZCcKLSAgICArICcgZHVlIHRvIGEgY3VzdG9tIGVsZW1lbnQg
Y29uc3RydWN0b3IgY29uc3RydWN0aW5nIGl0c2VsZiBiZWZvcmUgc3VwZXIoKSBjYWxsJyk7Ci0K
LXRlc3QoZnVuY3Rpb24gKCkgewotICAgIHdpdGhOZXdEb2N1bWVudFdpdGhBQnJvd3NpbmdDb250
ZXh0KGZ1bmN0aW9uIChjb250ZW50V2luZG93LCBjb250ZW50RG9jdW1lbnQpIHsKLSAgICAgICAg
dmFyIHJldHVyblNwYW4gPSBmYWxzZTsKLSAgICAgICAgY2xhc3MgTXlDdXN0b21FbGVtZW50IGV4
dGVuZHMgY29udGVudFdpbmRvdy5IVE1MRWxlbWVudCB7Ci0gICAgICAgICAgICBjb25zdHJ1Y3Rv
cigpIHsKLSAgICAgICAgICAgICAgICBzdXBlcigpOwotICAgICAgICAgICAgICAgIGlmIChyZXR1
cm5TcGFuKQotICAgICAgICAgICAgICAgICAgICByZXR1cm4gY29udGVudERvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoJ3NwYW4nKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICBjb250
ZW50V2luZG93LmN1c3RvbUVsZW1lbnRzLmRlZmluZSgnbXktY3VzdG9tLWVsZW1lbnQnLCBNeUN1
c3RvbUVsZW1lbnQpOwotCi0gICAgICAgIHZhciBpbnN0YW5jZSA9IG5ldyBNeUN1c3RvbUVsZW1l
bnQoZmFsc2UpOwotICAgICAgICByZXR1cm5TcGFuID0gdHJ1ZTsKLSAgICAgICAgdmFyIHVuY2F1
Z2h0RXJyb3I7Ci0gICAgICAgIGNvbnRlbnRXaW5kb3cub25lcnJvciA9IGZ1bmN0aW9uIChtZXNz
YWdlLCB1cmwsIGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlciwgZXJyb3IpIHsgdW5jYXVnaHRFcnJv
ciA9IGVycm9yOyByZXR1cm4gdHJ1ZTsgfQotICAgICAgICBpbnN0YW5jZS5jbG9uZU5vZGUoZmFs
c2UpOwotICAgICAgICBhc3NlcnRfZXF1YWxzKHVuY2F1Z2h0RXJyb3IubmFtZSwgJ0ludmFsaWRT
dGF0ZUVycm9yJyk7Ci0gICAgfSk7Ci19LCAnVXBncmFkaW5nIGEgY3VzdG9tIGVsZW1lbnQgbXVz
dCB0aHJvdyBJbnZhbGlkU3RhdGVFcnJvciB3aGVuIHRoZSBjdXN0b20gZWxlbWVudFwncyBjb25z
dHJ1Y3RvciByZXR1cm5zIGFub3RoZXIgZWxlbWVudCcpOwotCi10ZXN0KGZ1bmN0aW9uICgpIHsK
LSAgICB3aXRoTmV3RG9jdW1lbnRXaXRoQUJyb3dzaW5nQ29udGV4dChmdW5jdGlvbiAoY29udGVu
dFdpbmRvdywgY29udGVudERvY3VtZW50KSB7Ci0KLSAgICAgICAgdmFyIGluc3RhbmNlID0gY29u
dGVudERvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ215LWN1c3RvbS1lbGVtZW50Jyk7Ci0gICAgICAg
IGNvbnRlbnREb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGluc3RhbmNlKTsKLQotICAgICAgICB2
YXIgY2FsbHMgPSBbXTsKLSAgICAgICAgY2xhc3MgTXlDdXN0b21FbGVtZW50IGV4dGVuZHMgY29u
dGVudFdpbmRvdy5IVE1MRWxlbWVudCB7Ci0gICAgICAgICAgICBjb25zdHJ1Y3RvcigpIHsKLSAg
ICAgICAgICAgICAgICBzdXBlcigpOwotICAgICAgICAgICAgICAgIGNhbGxzLnB1c2godGhpcyk7
Ci0gICAgICAgICAgICAgICAgdGhyb3cgJ2JhZCc7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0K
LQotICAgICAgICB2YXIgdW5jYXVnaHRFcnJvcjsKLSAgICAgICAgY29udGVudFdpbmRvdy5vbmVy
cm9yID0gZnVuY3Rpb24gKG1lc3NhZ2UsIHVybCwgbGluZU51bWJlciwgY29sdW1uTnVtYmVyLCBl
cnJvcikgeyB1bmNhdWdodEVycm9yID0gZXJyb3I7IHJldHVybiB0cnVlOyB9Ci0gICAgICAgIGNv
bnRlbnRXaW5kb3cuY3VzdG9tRWxlbWVudHMuZGVmaW5lKCdteS1jdXN0b20tZWxlbWVudCcsIE15
Q3VzdG9tRWxlbWVudCk7Ci0gICAgICAgIGFzc2VydF9lcXVhbHModW5jYXVnaHRFcnJvciwgJ2Jh
ZCcpOwotCi0gICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoY2FsbHMsIFtpbnN0YW5jZV0pOwot
ICAgICAgICBjb250ZW50RG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChpbnN0YW5jZSk7Ci0gICAg
ICAgIGNvbnRlbnREb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGluc3RhbmNlKTsKLSAgICAgICAg
YXNzZXJ0X2FycmF5X2VxdWFscyhjYWxscywgW2luc3RhbmNlXSk7Ci0KLSAgICB9KTsKLX0sICdJ
bnNlcnRpbmcgYW4gZWxlbWVudCBtdXN0IG5vdCB0cnkgdG8gdXBncmFkZSBhIGN1c3RvbSBlbGVt
ZW50IHdoZW4gaXQgaGFkIGFscmVhZHkgZmFpbGVkIHRvIHVwZ3JhZGUgb25jZScpOwotCi08L3Nj
cmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3Vz
dG9tLWVsZW1lbnRzL3VwZ3JhZGluZy91cGdyYWRpbmctcGFyc2VyLWNyZWF0ZWQtZWxlbWVudC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2N1c3RvbS1lbGVtZW50cy91cGdyYWRpbmcv
dXBncmFkaW5nLXBhcnNlci1jcmVhdGVkLWVsZW1lbnQtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA2ODBjYmY2MTBiOWEzMzE2ZjIyMjU5M2QyNGY2M2ExNzVhNzc1
MzIxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRzL3VwZ3JhZGluZy91cGdyYWRpbmctcGFyc2VyLWNy
ZWF0ZWQtZWxlbWVudC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw2ICswLDAgQEAK
LQotUEFTUyBFbGVtZW50LnByb3RvdHlwZS5jcmVhdGVFbGVtZW50IG11c3QgYWRkIGFuIHVucmVz
b2x2ZWQgY3VzdG9tIGVsZW1lbnQgdG8gdGhlIHVwZ3JhZGUgY2FuZGlkYXRlcyBtYXAgCi1QQVNT
IEhUTUxFbGVtZW50IGNvbnN0cnVjdG9yIG11c3QgdGhyb3cgYW4gSW52YWxpZFN0YXRlRXJyb3Ig
d2hlbiB0aGUgdG9wIG9mIHRoZSBjb25zdHJ1Y3Rpb24gc3RhY2sgaXMgbWFya2VkIEFscmVhZHlD
b25zdHJ1Y3RlZCBkdWUgdG8gYSBjdXN0b20gZWxlbWVudCBjb25zdHJ1Y3RvciBjb25zdHJ1Y3Rp
bmcgaXRzZWxmIGFmdGVyIHN1cGVyKCkgY2FsbCAKLVBBU1MgSFRNTEVsZW1lbnQgY29uc3RydWN0
b3IgbXVzdCB0aHJvdyBhbiBJbnZhbGlkU3RhdGVFcnJvciB3aGVuIHRoZSB0b3Agb2YgdGhlIGNv
bnN0cnVjdGlvbiBzdGFjayBpcyBtYXJrZWQgQWxyZWFkeUNvbnN0cnVjdGVkIGR1ZSB0byBhIGN1
c3RvbSBlbGVtZW50IGNvbnN0cnVjdG9yIGNvbnN0cnVjdGluZyBpdHNlbGYgYmVmb3JlIHN1cGVy
KCkgY2FsbCAKLVBBU1MgVXBncmFkaW5nIGEgY3VzdG9tIGVsZW1lbnQgbXVzdCB0aHJvdyBhbiBJ
bnZhbGlkU3RhdGVFcnJvciB3aGVuIHRoZSByZXR1cm5lZCBlbGVtZW50IGlzIG5vdCBTYW1lVmFs
dWUgYXMgdGhlIHVwZ3JhZGVkIGVsZW1lbnQgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvY3VzdG9tLWVsZW1lbnRzL3VwZ3JhZGluZy91cGdyYWRpbmctcGFyc2VyLWNyZWF0ZWQtZWxl
bWVudC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jdXN0b20tZWxlbWVudHMvdXBncmFkaW5nL3Vw
Z3JhZGluZy1wYXJzZXItY3JlYXRlZC1lbGVtZW50Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGE4ODkxNjM2ZGZhNzEyYWZhNTM3Y2M1ZDdkOWJjY2RkOGM3NjkwOWIuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFz
dC9jdXN0b20tZWxlbWVudHMvdXBncmFkaW5nL3VwZ3JhZGluZy1wYXJzZXItY3JlYXRlZC1lbGVt
ZW50Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw5OCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4K
LTxodG1sPgotPGhlYWQ+Ci08dGl0bGU+Q3VzdG9tIEVsZW1lbnRzOiBVcGdyYWRpbmcgdW5yZXNv
bHZlZCBlbGVtZW50czwvdGl0bGU+Ci08bWV0YSBuYW1lPSJhdXRob3IiIHRpdGxlPSJSeW9zdWtl
IE5pd2EiIGhyZWY9Im1haWx0bzpybml3YUB3ZWJraXQub3JnIj4KLTxtZXRhIG5hbWU9ImFzc2Vy
dCIgY29udGVudD0iSFRNTCBwYXJzZXIgbXVzdCBhZGQgYW4gdW5yZXNvbHZlZCBjdXN0b20gZWxl
bWVudCB0byB0aGUgdXBncmFkZSBjYW5kaWRhdGVzIG1hcCI+Ci08bGluayByZWw9ImhlbHAiIGhy
ZWY9Imh0dHBzOi8vdzNjLmdpdGh1Yi5pby93ZWJjb21wb25lbnRzL3NwZWMvY3VzdG9tLyN1cGdy
YWRpbmciPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzIj48L3NjcmlwdD4KLTxsaW5rIHJlbD0nc3R5bGVzaGVldCcgaHJlZj0nLi4vLi4vLi4v
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmNzcyc+Ci08L2hlYWQ+Ci08Ym9keT4KLTxkaXYgaWQ9Imxv
ZyI+PC9kaXY+Ci08bXktY3VzdG9tLWVsZW1lbnQ+PC9teS1jdXN0b20tZWxlbWVudD4KLTxpbnN0
YW50aWF0ZXMtaXRzZWxmLWFmdGVyLXN1cGVyPjwvaW5zdGFudGlhdGVzLWl0c2VsZi1hZnRlci1z
dXBlcj4KLTxpbnN0YW50aWF0ZXMtaXRzZWxmLWJlZm9yZS1zdXBlcj48L2luc3RhbnRpYXRlcy1p
dHNlbGYtYmVmb3JlLXN1cGVyPgotPG15LW90aGVyLWVsZW1lbnQgaWQ9Imluc3RhbmNlIj48L215
LW90aGVyLWVsZW1lbnQ+Ci08bXktb3RoZXItZWxlbWVudCBpZD0ib3RoZXJJbnN0YW5jZSI+PC9t
eS1vdGhlci1lbGVtZW50PgotPHNjcmlwdD4KLQotc2V0dXAoe2FsbG93X3VuY2F1Z2h0X2V4Y2Vw
dGlvbjp0cnVlfSk7Ci0KLXRlc3QoZnVuY3Rpb24gKCkgewotICAgIGNsYXNzIE15Q3VzdG9tRWxl
bWVudCBleHRlbmRzIEhUTUxFbGVtZW50IHsgfQotCi0gICAgdmFyIGluc3RhbmNlID0gZG9jdW1l
bnQucXVlcnlTZWxlY3RvcignbXktY3VzdG9tLWVsZW1lbnQnKTsKLSAgICBhc3NlcnRfdHJ1ZShp
bnN0YW5jZSBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KTsKLSAgICBhc3NlcnRfZmFsc2UoaW5zdGFu
Y2UgaW5zdGFuY2VvZiBIVE1MVW5rbm93bkVsZW1lbnQsCi0gICAgICAgICdhbiB1bnJlc29sdmVk
IGN1c3RvbSBlbGVtZW50IHNob3VsZCBub3QgYmUgYW4gaW5zdGFuY2Ugb2YgSFRNTFVua25vd25F
bGVtZW50Jyk7Ci0gICAgYXNzZXJ0X2ZhbHNlKGluc3RhbmNlIGluc3RhbmNlb2YgTXlDdXN0b21F
bGVtZW50KTsKLQotICAgIGN1c3RvbUVsZW1lbnRzLmRlZmluZSgnbXktY3VzdG9tLWVsZW1lbnQn
LCBNeUN1c3RvbUVsZW1lbnQpOwotCi0gICAgYXNzZXJ0X3RydWUoaW5zdGFuY2UgaW5zdGFuY2Vv
ZiBIVE1MRWxlbWVudCk7Ci0gICAgYXNzZXJ0X3RydWUoaW5zdGFuY2UgaW5zdGFuY2VvZiBNeUN1
c3RvbUVsZW1lbnQsCi0gICAgICAgICdDYWxsaW5nIGN1c3RvbUVsZW1lbnRzLmRlZmluZSBtdXN0
IHVwZ3JhZGUgZXhpc3RpbmcgY3VzdG9tIGVsZW1lbnRzJyk7Ci0KLX0sICdFbGVtZW50LnByb3Rv
dHlwZS5jcmVhdGVFbGVtZW50IG11c3QgYWRkIGFuIHVucmVzb2x2ZWQgY3VzdG9tIGVsZW1lbnQg
dG8gdGhlIHVwZ3JhZGUgY2FuZGlkYXRlcyBtYXAnKTsKLQotdGVzdChmdW5jdGlvbiAoKSB7Ci0g
ICAgY2xhc3MgSW5zdGFudGlhdGVzSXRzZWxmQWZ0ZXJTdXBlciBleHRlbmRzIEhUTUxFbGVtZW50
IHsKLSAgICAgICAgY29uc3RydWN0b3IoZG9Ob3RDcmVhdGVJdHNlbGYpIHsKLSAgICAgICAgICAg
IHN1cGVyKCk7Ci0gICAgICAgICAgICBpZiAoIWRvTm90Q3JlYXRlSXRzZWxmKQotICAgICAgICAg
ICAgICAgIG5ldyBJbnN0YW50aWF0ZXNJdHNlbGZBZnRlclN1cGVyKHRydWUpOwotICAgICAgICB9
Ci0gICAgfQotCi0gICAgdmFyIHVuY2F1Z2h0RXJyb3I7Ci0gICAgd2luZG93Lm9uZXJyb3IgPSBm
dW5jdGlvbiAobWVzc2FnZSwgdXJsLCBsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIsIGVycm9yKSB7
IHVuY2F1Z2h0RXJyb3IgPSBlcnJvcjsgcmV0dXJuIHRydWU7IH0KLSAgICBjdXN0b21FbGVtZW50
cy5kZWZpbmUoJ2luc3RhbnRpYXRlcy1pdHNlbGYtYWZ0ZXItc3VwZXInLCBJbnN0YW50aWF0ZXNJ
dHNlbGZBZnRlclN1cGVyKTsKLSAgICBhc3NlcnRfZXF1YWxzKHVuY2F1Z2h0RXJyb3IubmFtZSwg
J0ludmFsaWRTdGF0ZUVycm9yJyk7Ci19LCAnSFRNTEVsZW1lbnQgY29uc3RydWN0b3IgbXVzdCB0
aHJvdyBhbiBJbnZhbGlkU3RhdGVFcnJvciB3aGVuIHRoZSB0b3Agb2YgdGhlIGNvbnN0cnVjdGlv
biBzdGFjayBpcyBtYXJrZWQgQWxyZWFkeUNvbnN0cnVjdGVkJwotICAgICsgJyBkdWUgdG8gYSBj
dXN0b20gZWxlbWVudCBjb25zdHJ1Y3RvciBjb25zdHJ1Y3RpbmcgaXRzZWxmIGFmdGVyIHN1cGVy
KCkgY2FsbCcpOwotCi10ZXN0KGZ1bmN0aW9uICgpIHsKLSAgICBjbGFzcyBJbnN0YW50aWF0ZXNJ
dHNlbGZCZWZvcmVTdXBlciBleHRlbmRzIEhUTUxFbGVtZW50IHsKLSAgICAgICAgY29uc3RydWN0
b3IoZG9Ob3RDcmVhdGVJdHNlbGYpIHsKLSAgICAgICAgICAgIGlmICghZG9Ob3RDcmVhdGVJdHNl
bGYpCi0gICAgICAgICAgICAgICAgbmV3IEluc3RhbnRpYXRlc0l0c2VsZkJlZm9yZVN1cGVyKHRy
dWUpOwotICAgICAgICAgICAgc3VwZXIoKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIHZhciB1
bmNhdWdodEVycm9yOwotICAgIHdpbmRvdy5vbmVycm9yID0gZnVuY3Rpb24gKG1lc3NhZ2UsIHVy
bCwgbGluZU51bWJlciwgY29sdW1uTnVtYmVyLCBlcnJvcikgeyB1bmNhdWdodEVycm9yID0gZXJy
b3I7IHJldHVybiB0cnVlOyB9Ci0gICAgY3VzdG9tRWxlbWVudHMuZGVmaW5lKCdpbnN0YW50aWF0
ZXMtaXRzZWxmLWJlZm9yZS1zdXBlcicsIEluc3RhbnRpYXRlc0l0c2VsZkJlZm9yZVN1cGVyKTsK
LSAgICBhc3NlcnRfZXF1YWxzKHVuY2F1Z2h0RXJyb3IubmFtZSwgJ0ludmFsaWRTdGF0ZUVycm9y
Jyk7Ci19LCAnSFRNTEVsZW1lbnQgY29uc3RydWN0b3IgbXVzdCB0aHJvdyBhbiBJbnZhbGlkU3Rh
dGVFcnJvciB3aGVuIHRoZSB0b3Agb2YgdGhlIGNvbnN0cnVjdGlvbiBzdGFjayBpcyBtYXJrZWQg
QWxyZWFkeUNvbnN0cnVjdGVkJwotICAgICsgJyBkdWUgdG8gYSBjdXN0b20gZWxlbWVudCBjb25z
dHJ1Y3RvciBjb25zdHJ1Y3RpbmcgaXRzZWxmIGJlZm9yZSBzdXBlcigpIGNhbGwnKTsKLQotdGVz
dChmdW5jdGlvbiAoKSB7Ci0gICAgY2xhc3MgTXlPdGhlckVsZW1lbnQgZXh0ZW5kcyBIVE1MRWxl
bWVudCB7Ci0gICAgICAgIGNvbnN0cnVjdG9yKCkgewotICAgICAgICAgICAgc3VwZXIoKTsKLSAg
ICAgICAgICAgIGlmICh0aGlzID09IGluc3RhbmNlKQotICAgICAgICAgICAgICAgIHJldHVybiBv
dGhlckluc3RhbmNlOwotICAgICAgICB9Ci0gICAgfQotICAgIHZhciBpbnN0YW5jZSA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdpbnN0YW5jZScpOwotICAgIHZhciBvdGhlckluc3RhbmNlID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ290aGVySW5zdGFuY2UnKTsKLQotICAgIGFzc2VydF9m
YWxzZShpbnN0YW5jZSBpbnN0YW5jZW9mIE15T3RoZXJFbGVtZW50KTsKLSAgICBhc3NlcnRfZmFs
c2Uob3RoZXJJbnN0YW5jZSBpbnN0YW5jZW9mIE15T3RoZXJFbGVtZW50KTsKLQotICAgIHZhciB1
bmNhdWdodEVycm9yOwotICAgIHdpbmRvdy5vbmVycm9yID0gZnVuY3Rpb24gKG1lc3NhZ2UsIHVy
bCwgbGluZU51bWJlciwgY29sdW1uTnVtYmVyLCBlcnJvcikgeyB1bmNhdWdodEVycm9yID0gZXJy
b3I7IHJldHVybiB0cnVlOyB9Ci0gICAgY3VzdG9tRWxlbWVudHMuZGVmaW5lKCdteS1vdGhlci1l
bGVtZW50JywgTXlPdGhlckVsZW1lbnQpOwotICAgIGFzc2VydF9lcXVhbHModW5jYXVnaHRFcnJv
ci5uYW1lLCAnSW52YWxpZFN0YXRlRXJyb3InKTsKLQotICAgIGFzc2VydF90cnVlKGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoJ215LW90aGVyLWVsZW1lbnQnKSBpbnN0YW5jZW9mIE15T3RoZXJFbGVt
ZW50LAotICAgICAgICAnVXBncmFkaW5nIG9mIGN1c3RvbSBlbGVtZW50cyBtdXN0IGhhcHBlbiBh
ZnRlciB0aGUgZGVmaW5pdGlvbiB3YXMgYWRkZWQgdG8gdGhlIHJlZ2lzdHJ5LicpOwotCi19LCAn
VXBncmFkaW5nIGEgY3VzdG9tIGVsZW1lbnQgbXVzdCB0aHJvdyBhbiBJbnZhbGlkU3RhdGVFcnJv
ciB3aGVuIHRoZSByZXR1cm5lZCBlbGVtZW50IGlzIG5vdCBTYW1lVmFsdWUgYXMgdGhlIHVwZ3Jh
ZGVkIGVsZW1lbnQnKTsKLQotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVt
ZW50cy9Eb2N1bWVudC1jcmVhdGVFbGVtZW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL0RvY3VtZW50LWNy
ZWF0ZUVsZW1lbnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVjODZmOTQ1NTAyNDkzYWExYTI3
ZTVkNjdmNTE0NTQ5MzhhY2EyMWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9Eb2N1bWVudC1jcmVh
dGVFbGVtZW50LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE1IEBACitDT05TT0xFIE1FU1NBR0U6
IGxpbmUgMjI1OiBSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogZG9jdW1lbnRf
dHlwZXMKKworUEFTUyBkb2N1bWVudC5jcmVhdGVFbGVtZW50IG11c3QgY3JlYXRlIGFuIGluc3Rh
bmNlIG9mIGN1c3RvbSBlbGVtZW50cyAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlRWxlbWVudCBtdXN0
IHJlcG9ydCBhIFR5cGVFcnJvciB3aGVuIHRoZSByZXN1bHQgb2YgQ29uc3RydWN0IGlzIG5vdCBh
IERPTSBub2RlIAorUEFTUyBkb2N1bWVudC5jcmVhdGVFbGVtZW50IG11c3QgcmVwb3J0IGEgVHlw
ZUVycm9yIHdoZW4gdGhlIHJlc3VsdCBvZiBDb25zdHJ1Y3QgaXMgYSBUZXh0Tm9kZSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCBtdXN0IHJlcG9ydCBhIE5vdFN1cHBvcnRlZEVycm9yIHdo
ZW4gYXR0cmlidXRlIGlzIGFkZGVkIGJ5IHNldEF0dHJpYnV0ZSBkdXJpbmcgY29uc3RydWN0aW9u
IAorUEFTUyBkb2N1bWVudC5jcmVhdGVFbGVtZW50IG11c3QgcmVwb3J0IGEgTm90U3VwcG9ydGVk
RXJyb3Igd2hlbiBhdHRyaWJ1dGUgaXMgYWRkZWQgYnkgYXR0cmlidXRlcy5zZXROYW1lZEl0ZW0g
ZHVyaW5nIGNvbnN0cnVjdGlvbiAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlRWxlbWVudCBtdXN0IG5v
dCByZXBvcnQgYSBOb3RTdXBwb3J0ZWRFcnJvciB3aGVuIGF0dHJpYnV0ZSBpcyBhZGRlZCBhbmQg
cmVtb3ZlZCBkdXJpbmcgY29uc3RydWN0aW9uIAorUEFTUyBkb2N1bWVudC5jcmVhdGVFbGVtZW50
IG11c3QgcmVwb3J0IGEgTm90U3VwcG9ydGVkRXJyb3Igd2hlbiBhIFRleHQgY2hpbGQgaXMgYWRk
ZWQgZHVyaW5nIGNvbnN0cnVjdGlvbiAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlRWxlbWVudCBtdXN0
IHJlcG9ydCBhIE5vdFN1cHBvcnRlZEVycm9yIHdoZW4gYSBDb21tZW50IGNoaWxkIGlzIGFkZGVk
IGR1cmluZyBjb25zdHJ1Y3Rpb24gCitQQVNTIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQgbXVzdCBy
ZXBvcnQgYSBOb3RTdXBwb3J0ZWRFcnJvciB3aGVuIGFuIGVsZW1lbnQgY2hpbGQgaXMgYWRkZWQg
ZHVyaW5nIGNvbnN0cnVjdGlvbiAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlRWxlbWVudCBtdXN0IG5v
dCByZXBvcnQgYSBOb3RTdXBwb3J0ZWRFcnJvciB3aGVuIGFuIGVsZW1lbnQgY2hpbGQgaXMgYWRk
ZWQgYW5kIHJlbW92ZWQgZHVyaW5nIGNvbnN0cnVjdGlvbiAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCBtdXN0IHJlcG9ydCBhIE5vdFN1cHBvcnRlZEVycm9yIHdoZW4gdGhlIGVsZW1lbnQg
Z2V0cyBpbnNlcnRlZCBpbnRvIGFub3RoZXIgZWxlbWVudCBkdXJpbmcgY29uc3RydWN0aW9uIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVFbGVtZW50IG11c3Qgbm90IHJlcG9ydCBhIE5vdFN1cHBvcnRl
ZEVycm9yIHdoZW4gdGhlIGVsZW1lbnQgaXMgaW5zZXJ0ZWQgYW5kIHJlbW92ZWQgZnJvbSBhbm90
aGVyIGVsZW1lbnQgZHVyaW5nIGNvbnN0cnVjdGlvbiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvRG9jdW1l
bnQtY3JlYXRlRWxlbWVudC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvRG9jdW1lbnQtY3JlYXRlRWxlbWVudC5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmY4YjNhOTRjMDBkZGZhZTBlZjkxYWQwNjkzN2MwNTIyNmMwMmMwNGQKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2N1c3RvbS1lbGVtZW50cy9Eb2N1bWVudC1jcmVhdGVFbGVtZW50Lmh0bWwKQEAgLTAsMCArMSwz
MzIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzx0aXRsZT5DdXN0b20gRWxl
bWVudHM6IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQgc2hvdWxkIGNyZWF0ZSBhbiBlbGVtZW50IHdp
dGggc3luY2hyb25vdXMgY3VzdG9tIGVsZW1lbnRzIGZsYWcgc2V0PC90aXRsZT4KKzxtZXRhIG5h
bWU9ImF1dGhvciIgdGl0bGU9IlJ5b3N1a2UgTml3YSIgaHJlZj0ibWFpbHRvOnJuaXdhQHdlYmtp
dC5vcmciPgorPG1ldGEgbmFtZT0iYXNzZXJ0IiBjb250ZW50PSJkb2N1bWVudC5jcmVhdGVFbGVt
ZW50IHNob3VsZCBjcmVhdGUgYW4gZWxlbWVudCB3aXRoIHN5bmNocm9ub3VzIGN1c3RvbSBlbGVt
ZW50cyBmbGFnIHNldCI+Cis8bGluayByZWw9ImhlbHAiIGNvbnRlbnQ9Imh0dHBzOi8vZG9tLnNw
ZWMud2hhdHdnLm9yZy8jZG9tLWRvY3VtZW50LWNyZWF0ZWVsZW1lbnQiPgorPGxpbmsgcmVsPSJo
ZWxwIiBjb250ZW50PSJodHRwczovL2RvbS5zcGVjLndoYXR3Zy5vcmcvI2NvbmNlcHQtY3JlYXRl
LWVsZW1lbnQiPgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9jdXN0b20tZWxlbWVudHMtaGVscGVyLmpzIj48
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0ibG9nIj48L2Rpdj4KKzxzY3JpcHQ+
CitzZXR1cCh7YWxsb3dfdW5jYXVnaHRfZXhjZXB0aW9uOnRydWV9KTsKKwordGVzdChmdW5jdGlv
biAoKSB7CisgICAgY2xhc3MgTXlDdXN0b21FbGVtZW50IGV4dGVuZHMgSFRNTEVsZW1lbnQge307
CisKKyAgICBhc3NlcnRfdHJ1ZShkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdteS1jdXN0b20tZWxl
bWVudCcpIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpOworICAgIGFzc2VydF9mYWxzZShkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCdteS1jdXN0b20tZWxlbWVudCcpIGluc3RhbmNlb2YgTXlDdXN0b21F
bGVtZW50KTsKKworICAgIGN1c3RvbUVsZW1lbnRzLmRlZmluZSgnbXktY3VzdG9tLWVsZW1lbnQn
LCBNeUN1c3RvbUVsZW1lbnQpOworICAgIHZhciBpbnN0YW5jZSA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoJ215LWN1c3RvbS1lbGVtZW50Jyk7CisgICAgYXNzZXJ0X3RydWUoaW5zdGFuY2UgaW5z
dGFuY2VvZiBNeUN1c3RvbUVsZW1lbnQpOworICAgIGFzc2VydF9lcXVhbHMoaW5zdGFuY2UubG9j
YWxOYW1lLCAnbXktY3VzdG9tLWVsZW1lbnQnKTsKKyAgICBhc3NlcnRfZXF1YWxzKGluc3RhbmNl
Lm5hbWVzcGFjZVVSSSwgJ2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnLCAnQSBjdXN0b20g
ZWxlbWVudCBIVE1MIG11c3QgdXNlIEhUTUwgbmFtZXNwYWNlJyk7CisKK30sICdkb2N1bWVudC5j
cmVhdGVFbGVtZW50IG11c3QgY3JlYXRlIGFuIGluc3RhbmNlIG9mIGN1c3RvbSBlbGVtZW50cycp
OworCitmdW5jdGlvbiBhc3NlcnRfcmVwb3J0cyhleHBlY3RlZCwgdGVzdEZ1bmN0aW9uLCBtZXNz
YWdlKSB7CisgICAgdmFyIHVuY2F1Z2h0RXJyb3IgPSBudWxsOworICAgIHdpbmRvdy5vbmVycm9y
ID0gZnVuY3Rpb24gKG1lc3NhZ2UsIHVybCwgbGluZU51bWJlciwgY29sdW1uTnVtYmVyLCBlcnJv
cikgeyB1bmNhdWdodEVycm9yID0gZXJyb3I7IHJldHVybiB0cnVlOyB9CisgICAgdGVzdEZ1bmN0
aW9uKCk7CisgICAgaWYgKHR5cGVvZihleHBlY3RlZCkgPT0gJ3N0cmluZycpCisgICAgICAgIGFz
c2VydF9lcXVhbHModW5jYXVnaHRFcnJvciwgZXhwZWN0ZWQsIG1lc3NhZ2UpOworICAgIGVsc2Ug
aWYgKGV4cGVjdGVkICYmICduYW1lJyBpbiBleHBlY3RlZCkKKyAgICAgICAgYXNzZXJ0X2VxdWFs
cyh1bmNhdWdodEVycm9yLm5hbWUsIGV4cGVjdGVkLm5hbWUsIG1lc3NhZ2UpOworICAgIGVsc2UK
KyAgICAgIGFzc2VydF9lcXVhbHModW5jYXVnaHRFcnJvciwgZXhwZWN0ZWQsIG1lc3NhZ2UpOwor
ICAgIHdpbmRvdy5vbmVycm9yID0gbnVsbDsKK30KKworZnVuY3Rpb24gYXNzZXJ0X25vdF9yZXBv
cnRzKHRlc3RGdW5jdGlvbiwgbWVzc2FnZSkgeworICAgIGFzc2VydF9yZXBvcnRzKG51bGwsIHRl
c3RGdW5jdGlvbiwgbWVzc2FnZSk7Cit9CisKK3Rlc3QoZnVuY3Rpb24gKCkgeworICAgIGNsYXNz
IE9iamVjdEN1c3RvbUVsZW1lbnQgZXh0ZW5kcyBIVE1MRWxlbWVudCB7CisgICAgICAgIGNvbnN0
cnVjdG9yKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIHtmb286ICdiYXInfTsKKyAg
ICAgICAgfQorICAgIH07CisgICAgY3VzdG9tRWxlbWVudHMuZGVmaW5lKCdvYmplY3QtY3VzdG9t
LWVsZW1lbnQnLCBPYmplY3RDdXN0b21FbGVtZW50KTsKKworICAgIHZhciBpbnN0YW5jZSA9IG5l
dyBPYmplY3RDdXN0b21FbGVtZW50OworICAgIGFzc2VydF90cnVlKGluc3RhbmNlIGluc3RhbmNl
b2YgT2JqZWN0KTsKKyAgICBhc3NlcnRfZXF1YWxzKGluc3RhbmNlLmZvbywgJ2JhcicpOworCisg
ICAgdmFyIGluc3RhbmNlOworICAgIGFzc2VydF9yZXBvcnRzKHtuYW1lOiAnVHlwZUVycm9yJ30s
IGZ1bmN0aW9uICgpIHsgaW5zdGFuY2UgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdvYmplY3Qt
Y3VzdG9tLWVsZW1lbnQnKTsgfSk7CisgICAgYXNzZXJ0X2VxdWFscyhpbnN0YW5jZS5sb2NhbE5h
bWUsICdvYmplY3QtY3VzdG9tLWVsZW1lbnQnKTsKKyAgICBhc3NlcnRfdHJ1ZShpbnN0YW5jZSBp
bnN0YW5jZW9mIEhUTUxVbmtub3duRWxlbWVudCk7Cit9LCAnZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCBtdXN0IHJlcG9ydCBhIFR5cGVFcnJvciB3aGVuIHRoZSByZXN1bHQgb2YgQ29uc3RydWN0IGlz
IG5vdCBhIERPTSBub2RlJyk7CisKK3Rlc3QoZnVuY3Rpb24gKCkgeworICAgIGNsYXNzIFRleHRD
dXN0b21FbGVtZW50IGV4dGVuZHMgSFRNTEVsZW1lbnQgeworICAgICAgICBjb25zdHJ1Y3Rvcigp
CisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgn
aGVsbG8nKTsKKyAgICAgICAgfQorICAgIH07CisgICAgY3VzdG9tRWxlbWVudHMuZGVmaW5lKCd0
ZXh0LWN1c3RvbS1lbGVtZW50JywgVGV4dEN1c3RvbUVsZW1lbnQpOworICAgIGFzc2VydF90cnVl
KG5ldyBUZXh0Q3VzdG9tRWxlbWVudCBpbnN0YW5jZW9mIFRleHQpOworICAgIHZhciBpbnN0YW5j
ZTsKKyAgICBhc3NlcnRfcmVwb3J0cyh7bmFtZTogJ1R5cGVFcnJvcid9LCBmdW5jdGlvbiAoKSB7
IGluc3RhbmNlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGV4dC1jdXN0b20tZWxlbWVudCcp
OyB9KTsKKyAgICBhc3NlcnRfZXF1YWxzKGluc3RhbmNlLmxvY2FsTmFtZSwgJ3RleHQtY3VzdG9t
LWVsZW1lbnQnKTsKKyAgICBhc3NlcnRfdHJ1ZShpbnN0YW5jZSBpbnN0YW5jZW9mIEhUTUxVbmtu
b3duRWxlbWVudCk7Cit9LCAnZG9jdW1lbnQuY3JlYXRlRWxlbWVudCBtdXN0IHJlcG9ydCBhIFR5
cGVFcnJvciB3aGVuIHRoZSByZXN1bHQgb2YgQ29uc3RydWN0IGlzIGEgVGV4dE5vZGUnKTsKKwor
dGVzdChmdW5jdGlvbiAoKSB7CisgICAgY2xhc3MgRWxlbWVudFdpdGhBdHRyaWJ1dGUgZXh0ZW5k
cyBIVE1MRWxlbWVudCB7CisgICAgICAgIGNvbnN0cnVjdG9yKCkKKyAgICAgICAgeworICAgICAg
ICAgICAgc3VwZXIoKTsKKyAgICAgICAgICAgIHRoaXMuc2V0QXR0cmlidXRlKCdpZCcsICdmb28n
KTsKKyAgICAgICAgfQorICAgIH07CisgICAgY3VzdG9tRWxlbWVudHMuZGVmaW5lKCdlbGVtZW50
LXdpdGgtYXR0cmlidXRlJywgRWxlbWVudFdpdGhBdHRyaWJ1dGUpOworICAgIGFzc2VydF90cnVl
KG5ldyBFbGVtZW50V2l0aEF0dHJpYnV0ZSBpbnN0YW5jZW9mIEVsZW1lbnRXaXRoQXR0cmlidXRl
KTsKKyAgICB2YXIgaW5zdGFuY2U7CisgICAgYXNzZXJ0X3JlcG9ydHMoe25hbWU6ICdOb3RTdXBw
b3J0ZWRFcnJvcid9LCBmdW5jdGlvbiAoKSB7IGluc3RhbmNlID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgnZWxlbWVudC13aXRoLWF0dHJpYnV0ZScpOyB9KTsKKyAgICBhc3NlcnRfZXF1YWxzKGlu
c3RhbmNlLmxvY2FsTmFtZSwgJ2VsZW1lbnQtd2l0aC1hdHRyaWJ1dGUnKTsKKyAgICBhc3NlcnRf
dHJ1ZShpbnN0YW5jZSBpbnN0YW5jZW9mIEhUTUxVbmtub3duRWxlbWVudCk7Cit9LCAnZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCBtdXN0IHJlcG9ydCBhIE5vdFN1cHBvcnRlZEVycm9yIHdoZW4gYXR0
cmlidXRlIGlzIGFkZGVkIGJ5IHNldEF0dHJpYnV0ZSBkdXJpbmcgY29uc3RydWN0aW9uJyk7CisK
K3Rlc3QoZnVuY3Rpb24gKCkgeworICAgIGNsYXNzIEVsZW1lbnRXaXRoQXR0ck5vZGUgZXh0ZW5k
cyBIVE1MRWxlbWVudCB7CisgICAgICAgIGNvbnN0cnVjdG9yKCkKKyAgICAgICAgeworICAgICAg
ICAgICAgc3VwZXIoKTsKKyAgICAgICAgICAgIHRoaXMuYXR0cmlidXRlcy5zZXROYW1lZEl0ZW0o
ZG9jdW1lbnQuY3JlYXRlQXR0cmlidXRlKCd0aXRsZScpKTsKKyAgICAgICAgfQorICAgIH07Cisg
ICAgY3VzdG9tRWxlbWVudHMuZGVmaW5lKCdlbGVtZW50LXdpdGgtYXR0ci1ub2RlJywgRWxlbWVu
dFdpdGhBdHRyTm9kZSk7CisgICAgYXNzZXJ0X3RydWUobmV3IEVsZW1lbnRXaXRoQXR0ck5vZGUg
aW5zdGFuY2VvZiBFbGVtZW50V2l0aEF0dHJOb2RlKTsKKyAgICB2YXIgaW5zdGFuY2U7CisgICAg
YXNzZXJ0X3JlcG9ydHMoe25hbWU6ICdOb3RTdXBwb3J0ZWRFcnJvcid9LCBmdW5jdGlvbiAoKSB7
IGluc3RhbmNlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZWxlbWVudC13aXRoLWF0dHItbm9k
ZScpOyB9KTsKKyAgICBhc3NlcnRfZXF1YWxzKGluc3RhbmNlLmxvY2FsTmFtZSwgJ2VsZW1lbnQt
d2l0aC1hdHRyLW5vZGUnKTsKKyAgICBhc3NlcnRfdHJ1ZShpbnN0YW5jZSBpbnN0YW5jZW9mIEhU
TUxVbmtub3duRWxlbWVudCk7Cit9LCAnZG9jdW1lbnQuY3JlYXRlRWxlbWVudCBtdXN0IHJlcG9y
dCBhIE5vdFN1cHBvcnRlZEVycm9yIHdoZW4gYXR0cmlidXRlIGlzIGFkZGVkIGJ5IGF0dHJpYnV0
ZXMuc2V0TmFtZWRJdGVtIGR1cmluZyBjb25zdHJ1Y3Rpb24nKTsKKwordGVzdChmdW5jdGlvbiAo
KSB7CisgICAgY2xhc3MgRWxlbWVudFdpdGhOb0F0dHJpYnV0ZXMgZXh0ZW5kcyBIVE1MRWxlbWVu
dCB7CisgICAgICAgIGNvbnN0cnVjdG9yKCkKKyAgICAgICAgeworICAgICAgICAgICAgc3VwZXIo
KTsKKyAgICAgICAgICAgIHRoaXMuYXR0cmlidXRlcy5zZXROYW1lZEl0ZW0oZG9jdW1lbnQuY3Jl
YXRlQXR0cmlidXRlKCd0aXRsZScpKTsKKyAgICAgICAgICAgIHRoaXMucmVtb3ZlQXR0cmlidXRl
KCd0aXRsZScpOworICAgICAgICB9CisgICAgfTsKKyAgICBjdXN0b21FbGVtZW50cy5kZWZpbmUo
J2VsZW1lbnQtd2l0aC1uby1hdHRpcmlidXRlcycsIEVsZW1lbnRXaXRoTm9BdHRyaWJ1dGVzKTsK
KyAgICBhc3NlcnRfdHJ1ZShuZXcgRWxlbWVudFdpdGhOb0F0dHJpYnV0ZXMgaW5zdGFuY2VvZiBF
bGVtZW50V2l0aE5vQXR0cmlidXRlcyk7CisgICAgdmFyIGluc3RhbmNlOworICAgIGFzc2VydF9u
b3RfcmVwb3J0cyhmdW5jdGlvbiAoKSB7IGluc3RhbmNlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgnZWxlbWVudC13aXRoLW5vLWF0dGlyaWJ1dGVzJyk7IH0pOworICAgIGFzc2VydF90cnVlKGlu
c3RhbmNlIGluc3RhbmNlb2YgRWxlbWVudFdpdGhOb0F0dHJpYnV0ZXMpOworfSwgJ2RvY3VtZW50
LmNyZWF0ZUVsZW1lbnQgbXVzdCBub3QgcmVwb3J0IGEgTm90U3VwcG9ydGVkRXJyb3Igd2hlbiBh
dHRyaWJ1dGUgaXMgYWRkZWQgYW5kIHJlbW92ZWQgZHVyaW5nIGNvbnN0cnVjdGlvbicpOworCit0
ZXN0KGZ1bmN0aW9uICgpIHsKKyAgICBjbGFzcyBFbGVtZW50V2l0aENoaWxkVGV4dCBleHRlbmRz
IEhUTUxFbGVtZW50IHsKKyAgICAgICAgY29uc3RydWN0b3IoKQorICAgICAgICB7CisgICAgICAg
ICAgICBzdXBlcigpOworICAgICAgICAgICAgdGhpcy5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVh
dGVUZXh0Tm9kZSgnaGVsbG8nKSk7CisgICAgICAgIH0KKyAgICB9OworICAgIGN1c3RvbUVsZW1l
bnRzLmRlZmluZSgnZWxlbWVudC13aXRoLWNoaWxkLXRleHQnLCBFbGVtZW50V2l0aENoaWxkVGV4
dCk7CisgICAgYXNzZXJ0X3RydWUobmV3IEVsZW1lbnRXaXRoQ2hpbGRUZXh0IGluc3RhbmNlb2Yg
RWxlbWVudFdpdGhDaGlsZFRleHQpOworICAgIHZhciBpbnN0YW5jZTsKKyAgICBhc3NlcnRfcmVw
b3J0cyh7bmFtZTogJ05vdFN1cHBvcnRlZEVycm9yJ30sIGZ1bmN0aW9uICgpIHsgaW5zdGFuY2Ug
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdlbGVtZW50LXdpdGgtY2hpbGQtdGV4dCcpOyB9KTsK
KyAgICBhc3NlcnRfZXF1YWxzKGluc3RhbmNlLmxvY2FsTmFtZSwgJ2VsZW1lbnQtd2l0aC1jaGls
ZC10ZXh0Jyk7CisgICAgYXNzZXJ0X3RydWUoaW5zdGFuY2UgaW5zdGFuY2VvZiBIVE1MVW5rbm93
bkVsZW1lbnQpOworfSwgJ2RvY3VtZW50LmNyZWF0ZUVsZW1lbnQgbXVzdCByZXBvcnQgYSBOb3RT
dXBwb3J0ZWRFcnJvciB3aGVuIGEgVGV4dCBjaGlsZCBpcyBhZGRlZCBkdXJpbmcgY29uc3RydWN0
aW9uJyk7CisKK3Rlc3QoZnVuY3Rpb24gKCkgeworICAgIGNsYXNzIEVsZW1lbnRXaXRoQ2hpbGRD
b21tZW50IGV4dGVuZHMgSFRNTEVsZW1lbnQgeworICAgICAgICBjb25zdHJ1Y3RvcigpCisgICAg
ICAgIHsKKyAgICAgICAgICAgIHN1cGVyKCk7CisgICAgICAgICAgICB0aGlzLmFwcGVuZENoaWxk
KGRvY3VtZW50LmNyZWF0ZUNvbW1lbnQoJ2hlbGxvJykpOworICAgICAgICB9CisgICAgfTsKKyAg
ICBjdXN0b21FbGVtZW50cy5kZWZpbmUoJ2VsZW1lbnQtd2l0aC1jaGlsZC1jb21tZW50JywgRWxl
bWVudFdpdGhDaGlsZENvbW1lbnQpOworICAgIGFzc2VydF90cnVlKG5ldyBFbGVtZW50V2l0aENo
aWxkQ29tbWVudCBpbnN0YW5jZW9mIEVsZW1lbnRXaXRoQ2hpbGRDb21tZW50KTsKKyAgICB2YXIg
aW5zdGFuY2U7CisgICAgYXNzZXJ0X3JlcG9ydHMoe25hbWU6ICdOb3RTdXBwb3J0ZWRFcnJvcid9
LCBmdW5jdGlvbiAoKSB7IGluc3RhbmNlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZWxlbWVu
dC13aXRoLWNoaWxkLWNvbW1lbnQnKTsgfSk7CisgICAgYXNzZXJ0X2VxdWFscyhpbnN0YW5jZS5s
b2NhbE5hbWUsICdlbGVtZW50LXdpdGgtY2hpbGQtY29tbWVudCcpOworICAgIGFzc2VydF90cnVl
KGluc3RhbmNlIGluc3RhbmNlb2YgSFRNTFVua25vd25FbGVtZW50KTsKK30sICdkb2N1bWVudC5j
cmVhdGVFbGVtZW50IG11c3QgcmVwb3J0IGEgTm90U3VwcG9ydGVkRXJyb3Igd2hlbiBhIENvbW1l
bnQgY2hpbGQgaXMgYWRkZWQgZHVyaW5nIGNvbnN0cnVjdGlvbicpOworCit0ZXN0KGZ1bmN0aW9u
ICgpIHsKKyAgICBjbGFzcyBFbGVtZW50V2l0aENoaWxkRWxlbWVudCBleHRlbmRzIEhUTUxFbGVt
ZW50IHsKKyAgICAgICAgY29uc3RydWN0b3IoKQorICAgICAgICB7CisgICAgICAgICAgICBzdXBl
cigpOworICAgICAgICAgICAgdGhpcy5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCdkaXYnKSk7CisgICAgICAgIH0KKyAgICB9OworICAgIGN1c3RvbUVsZW1lbnRzLmRlZmluZSgn
ZWxlbWVudC13aXRoLWNoaWxkLWVsZW1lbnQnLCBFbGVtZW50V2l0aENoaWxkRWxlbWVudCk7Cisg
ICAgYXNzZXJ0X3RydWUobmV3IEVsZW1lbnRXaXRoQ2hpbGRFbGVtZW50IGluc3RhbmNlb2YgRWxl
bWVudFdpdGhDaGlsZEVsZW1lbnQpOworICAgIHZhciBpbnN0YW5jZTsKKyAgICBhc3NlcnRfcmVw
b3J0cyh7bmFtZTogJ05vdFN1cHBvcnRlZEVycm9yJ30sIGZ1bmN0aW9uICgpIHsgaW5zdGFuY2Ug
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdlbGVtZW50LXdpdGgtY2hpbGQtZWxlbWVudCcpOyB9
KTsKKyAgICBhc3NlcnRfZXF1YWxzKGluc3RhbmNlLmxvY2FsTmFtZSwgJ2VsZW1lbnQtd2l0aC1j
aGlsZC1lbGVtZW50Jyk7CisgICAgYXNzZXJ0X3RydWUoaW5zdGFuY2UgaW5zdGFuY2VvZiBIVE1M
VW5rbm93bkVsZW1lbnQpOworfSwgJ2RvY3VtZW50LmNyZWF0ZUVsZW1lbnQgbXVzdCByZXBvcnQg
YSBOb3RTdXBwb3J0ZWRFcnJvciB3aGVuIGFuIGVsZW1lbnQgY2hpbGQgaXMgYWRkZWQgZHVyaW5n
IGNvbnN0cnVjdGlvbicpOworCit0ZXN0KGZ1bmN0aW9uICgpIHsKKyAgICBjbGFzcyBFbGVtZW50
V2l0aE5vQ2hpbGRFbGVtZW50cyBleHRlbmRzIEhUTUxFbGVtZW50IHsKKyAgICAgICAgY29uc3Ry
dWN0b3IoKQorICAgICAgICB7CisgICAgICAgICAgICBzdXBlcigpOworICAgICAgICAgICAgdGhp
cy5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSk7CisgICAgICAgICAg
ICB0aGlzLnJlbW92ZUNoaWxkKHRoaXMuZmlyc3RDaGlsZCk7CisgICAgICAgIH0KKyAgICB9Owor
ICAgIGN1c3RvbUVsZW1lbnRzLmRlZmluZSgnZWxlbWVudC13aXRoLW5vLWNoaWxkLWVsZW1lbnRz
JywgRWxlbWVudFdpdGhOb0NoaWxkRWxlbWVudHMpOworICAgIHZhciBpbnN0YW5jZTsKKyAgICBh
c3NlcnRfbm90X3JlcG9ydHMoZnVuY3Rpb24gKCkgeyBpbnN0YW5jZSA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoJ2VsZW1lbnQtd2l0aC1uby1jaGlsZC1lbGVtZW50cycpOyB9KTsKKyAgICBhc3Nl
cnRfdHJ1ZShpbnN0YW5jZSBpbnN0YW5jZW9mIEVsZW1lbnRXaXRoTm9DaGlsZEVsZW1lbnRzKTsK
K30sICdkb2N1bWVudC5jcmVhdGVFbGVtZW50IG11c3Qgbm90IHJlcG9ydCBhIE5vdFN1cHBvcnRl
ZEVycm9yIHdoZW4gYW4gZWxlbWVudCBjaGlsZCBpcyBhZGRlZCBhbmQgcmVtb3ZlZCBkdXJpbmcg
Y29uc3RydWN0aW9uJyk7CisKK3Rlc3QoZnVuY3Rpb24gKCkgeworICAgIGNsYXNzIEVsZW1lbnRX
aXRoUGFyZW50IGV4dGVuZHMgSFRNTEVsZW1lbnQgeworICAgICAgICBjb25zdHJ1Y3RvcigpCisg
ICAgICAgIHsKKyAgICAgICAgICAgIHN1cGVyKCk7CisgICAgICAgICAgICBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCdkaXYnKS5hcHBlbmRDaGlsZCh0aGlzKTsKKyAgICAgICAgfQorICAgIH07Cisg
ICAgY3VzdG9tRWxlbWVudHMuZGVmaW5lKCdlbGVtZW50LXdpdGgtcGFyZW50JywgRWxlbWVudFdp
dGhQYXJlbnQpOworICAgIGFzc2VydF90cnVlKG5ldyBFbGVtZW50V2l0aFBhcmVudCBpbnN0YW5j
ZW9mIEVsZW1lbnRXaXRoUGFyZW50KTsKKyAgICB2YXIgaW5zdGFuY2U7CisgICAgYXNzZXJ0X3Jl
cG9ydHMoe25hbWU6ICdOb3RTdXBwb3J0ZWRFcnJvcid9LCBmdW5jdGlvbiAoKSB7IGluc3RhbmNl
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZWxlbWVudC13aXRoLXBhcmVudCcpOyB9KTsKKyAg
ICBhc3NlcnRfZXF1YWxzKGluc3RhbmNlLmxvY2FsTmFtZSwgJ2VsZW1lbnQtd2l0aC1wYXJlbnQn
KTsKKyAgICBhc3NlcnRfdHJ1ZShpbnN0YW5jZSBpbnN0YW5jZW9mIEhUTUxVbmtub3duRWxlbWVu
dCk7Cit9LCAnZG9jdW1lbnQuY3JlYXRlRWxlbWVudCBtdXN0IHJlcG9ydCBhIE5vdFN1cHBvcnRl
ZEVycm9yIHdoZW4gdGhlIGVsZW1lbnQgZ2V0cyBpbnNlcnRlZCBpbnRvIGFub3RoZXIgZWxlbWVu
dCBkdXJpbmcgY29uc3RydWN0aW9uJyk7CisKK3Rlc3QoZnVuY3Rpb24gKCkgeworICAgIGNsYXNz
IEVsZW1lbnRXaXRoTm9QYXJlbnQgZXh0ZW5kcyBIVE1MRWxlbWVudCB7CisgICAgICAgIGNvbnN0
cnVjdG9yKCkKKyAgICAgICAgeworICAgICAgICAgICAgc3VwZXIoKTsKKyAgICAgICAgICAgIGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpLmFwcGVuZENoaWxkKHRoaXMpOworICAgICAgICAg
ICAgdGhpcy5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRoaXMpOworICAgICAgICB9CisgICAgfTsK
KyAgICBjdXN0b21FbGVtZW50cy5kZWZpbmUoJ2VsZW1lbnQtd2l0aC1uby1wYXJlbnQnLCBFbGVt
ZW50V2l0aE5vUGFyZW50KTsKKyAgICB2YXIgaW5zdGFuY2U7CisgICAgYXNzZXJ0X25vdF9yZXBv
cnRzKGZ1bmN0aW9uICgpIHsgaW5zdGFuY2UgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdlbGVt
ZW50LXdpdGgtbm8tcGFyZW50Jyk7IH0pOworICAgIGFzc2VydF90cnVlKGluc3RhbmNlIGluc3Rh
bmNlb2YgRWxlbWVudFdpdGhOb1BhcmVudCk7Cit9LCAnZG9jdW1lbnQuY3JlYXRlRWxlbWVudCBt
dXN0IG5vdCByZXBvcnQgYSBOb3RTdXBwb3J0ZWRFcnJvciB3aGVuIHRoZSBlbGVtZW50IGlzIGlu
c2VydGVkIGFuZCByZW1vdmVkIGZyb20gYW5vdGhlciBlbGVtZW50IGR1cmluZyBjb25zdHJ1Y3Rp
b24nKTsKKworZG9jdW1lbnRfdHlwZXMoKS5mb3JFYWNoKGZ1bmN0aW9uIChlbnRyeSwgdGVzdE51
bWJlcikgeworICAgIGlmIChlbnRyeS5pc093bmVyKQorICAgICAgICByZXR1cm47CisKKyAgICB2
YXIgZ2V0RG9jdW1lbnQgPSBlbnRyeS5jcmVhdGU7CisgICAgdmFyIGRvY3VlbW50TmFtZSA9IGVu
dHJ5Lm5hbWU7CisKKyAgICBwcm9taXNlX3Rlc3QoZnVuY3Rpb24gKCkgeworICAgICAgICByZXR1
cm4gZ2V0RG9jdW1lbnQoKS50aGVuKGZ1bmN0aW9uIChkb2MpIHsKKyAgICAgICAgICAgIGNsYXNz
IEVsZW1lbnRXaXRoQWRvcHRDYWxsIGV4dGVuZHMgSFRNTEVsZW1lbnQgeworICAgICAgICAgICAg
ICAgIGNvbnN0cnVjdG9yKCkKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAg
IHN1cGVyKCk7CisgICAgICAgICAgICAgICAgICAgIGRvYy5hZG9wdE5vZGUodGhpcyk7CisgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIHZhciBuYW1lID0gJ2Vs
ZW1lbnQtd2l0aC1hZG9wdC1jYWxsLScgKyB0ZXN0TnVtYmVyOworICAgICAgICAgICAgY3VzdG9t
RWxlbWVudHMuZGVmaW5lKG5hbWUsIEVsZW1lbnRXaXRoQWRvcHRDYWxsKTsKKyAgICAgICAgICAg
IGFzc2VydF90cnVlKG5ldyBFbGVtZW50V2l0aEFkb3B0Q2FsbCBpbnN0YW5jZW9mIEVsZW1lbnRX
aXRoQWRvcHRDYWxsKTsKKyAgICAgICAgICAgIHZhciBpbnN0YW5jZTsKKyAgICAgICAgICAgIGFz
c2VydF9yZXBvcnRzKHtuYW1lOiAnTm90U3VwcG9ydGVkRXJyb3InfSwgZnVuY3Rpb24gKCkgeyBp
bnN0YW5jZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQobmFtZSk7IH0pOworICAgICAgICAgICAg
YXNzZXJ0X2VxdWFscyhpbnN0YW5jZS5sb2NhbE5hbWUsIG5hbWUpOworICAgICAgICAgICAgYXNz
ZXJ0X3RydWUoaW5zdGFuY2UgaW5zdGFuY2VvZiBIVE1MVW5rbm93bkVsZW1lbnQpOworICAgICAg
ICB9KTsKKyAgICB9LCAnZG9jdW1lbnQuY3JlYXRlRWxlbWVudCBtdXN0IHJlcG9ydCBhIE5vdFN1
cHBvcnRlZEVycm9yIHdoZW4gdGhlIGVsZW1lbnQgaXMgYWRvcHRlZCBpbnRvIGEgJyArIGRvY3Vl
bW50TmFtZSArICcgZHVyaW5nIGNvbnN0cnVjdGlvbicpOworCisgICAgcHJvbWlzZV90ZXN0KGZ1
bmN0aW9uICgpIHsKKyAgICAgICAgcmV0dXJuIGdldERvY3VtZW50KCkudGhlbihmdW5jdGlvbiAo
ZG9jKSB7CisgICAgICAgICAgICBjbGFzcyBFbGVtZW50SW5zZXJ0ZWRJbnRvQW5vdGhlckRvY3Vt
ZW50IGV4dGVuZHMgSFRNTEVsZW1lbnQgeworICAgICAgICAgICAgICAgIGNvbnN0cnVjdG9yKCkK
KyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIHN1cGVyKCk7CisgICAgICAg
ICAgICAgICAgICAgIGRvYy5kb2N1bWVudEVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcyk7CisgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIHZhciBuYW1lID0gJ2Vs
ZW1lbnQtaW5zZXJ0ZWQtaW50by1hbm90aGVyLWRvY3VtZW50LScgKyB0ZXN0TnVtYmVyOworICAg
ICAgICAgICAgY3VzdG9tRWxlbWVudHMuZGVmaW5lKG5hbWUsIEVsZW1lbnRJbnNlcnRlZEludG9B
bm90aGVyRG9jdW1lbnQpOworICAgICAgICAgICAgYXNzZXJ0X3RydWUobmV3IEVsZW1lbnRJbnNl
cnRlZEludG9Bbm90aGVyRG9jdW1lbnQgaW5zdGFuY2VvZiBFbGVtZW50SW5zZXJ0ZWRJbnRvQW5v
dGhlckRvY3VtZW50KTsKKyAgICAgICAgICAgIHZhciBpbnN0YW5jZTsKKyAgICAgICAgICAgIGFz
c2VydF9yZXBvcnRzKHtuYW1lOiAnTm90U3VwcG9ydGVkRXJyb3InfSwgZnVuY3Rpb24gKCkgeyBp
bnN0YW5jZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQobmFtZSk7IH0pOworICAgICAgICAgICAg
YXNzZXJ0X2VxdWFscyhpbnN0YW5jZS5sb2NhbE5hbWUsIG5hbWUpOworICAgICAgICAgICAgYXNz
ZXJ0X3RydWUoaW5zdGFuY2UgaW5zdGFuY2VvZiBIVE1MVW5rbm93bkVsZW1lbnQpOworICAgICAg
ICB9KTsKKyAgICB9LCAnZG9jdW1lbnQuY3JlYXRlRWxlbWVudCBtdXN0IHJlcG9ydCBhIE5vdFN1
cHBvcnRlZEVycm9yIHdoZW4gdGhlIGVsZW1lbnQgaXMgaW5zZXJ0ZWQgaW50byBhICcgKyBkb2N1
ZW1udE5hbWUgKyAnIGR1cmluZyBjb25zdHJ1Y3Rpb24nKTsKKworICAgIHByb21pc2VfdGVzdChm
dW5jdGlvbiAoKSB7CisgICAgICAgIHJldHVybiBnZXREb2N1bWVudCgpLnRoZW4oZnVuY3Rpb24g
KGRvYykgeworICAgICAgICAgICAgY2xhc3MgRWxlbWVudFRoYXRHZXRBZG9wdGVkQmFjayBleHRl
bmRzIEhUTUxFbGVtZW50IHsKKyAgICAgICAgICAgICAgICBjb25zdHJ1Y3RvcigpCisgICAgICAg
ICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBzdXBlcigpOworICAgICAgICAgICAgICAg
ICAgICBkb2MuYWRvcHROb2RlKHRoaXMpOworICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5h
ZG9wdE5vZGUodGhpcyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfTsKKyAgICAg
ICAgICAgIHZhciBuYW1lID0gJ2VsZW1lbnQtdGhhdC1nZXQtYWRvcHRlZC1iYWNrJyArIHRlc3RO
dW1iZXI7CisgICAgICAgICAgICBjdXN0b21FbGVtZW50cy5kZWZpbmUobmFtZSwgRWxlbWVudFRo
YXRHZXRBZG9wdGVkQmFjayk7CisgICAgICAgICAgICB2YXIgaW5zdGFuY2U7CisgICAgICAgICAg
ICBhc3NlcnRfbm90X3JlcG9ydHMoZnVuY3Rpb24gKCkgeyBpbnN0YW5jZSA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQobmFtZSk7IH0pOworICAgICAgICAgICAgYXNzZXJ0X3RydWUoaW5zdGFuY2Ug
aW5zdGFuY2VvZiBFbGVtZW50VGhhdEdldEFkb3B0ZWRCYWNrKTsKKyAgICAgICAgfSk7CisgICAg
fSwgJ2RvY3VtZW50LmNyZWF0ZUVsZW1lbnQgbXVzdCBub3QgcmVwb3J0IGEgTm90U3VwcG9ydGVk
RXJyb3Igd2hlbiB0aGUgZWxlbWVudCBpcyBhZG9wdGVkIGJhY2sgZnJvbSBhICcgKyBkb2N1ZW1u
dE5hbWUgKyAnIGR1cmluZyBjb25zdHJ1Y3Rpb24nKTsKK30pOworCit0ZXN0KGZ1bmN0aW9uICgp
IHsKKyAgICBjbGFzcyBEaXZDdXN0b21FbGVtZW50IGV4dGVuZHMgSFRNTEVsZW1lbnQgeworICAg
ICAgICBjb25zdHJ1Y3RvcigpCisgICAgICAgIHsKKyAgICAgICAgICAgIHN1cGVyKCk7CisgICAg
ICAgICAgICByZXR1cm4gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgICAgIH0K
KyAgICB9OworICAgIGN1c3RvbUVsZW1lbnRzLmRlZmluZSgnZGl2LWN1c3RvbS1lbGVtZW50Jywg
RGl2Q3VzdG9tRWxlbWVudCk7CisgICAgYXNzZXJ0X3RydWUobmV3IERpdkN1c3RvbUVsZW1lbnQg
aW5zdGFuY2VvZiBIVE1MRGl2RWxlbWVudCk7CisgICAgdmFyIGluc3RhbmNlOworICAgIGFzc2Vy
dF9yZXBvcnRzKHtuYW1lOiAnTm90U3VwcG9ydGVkRXJyb3InfSwgZnVuY3Rpb24gKCkgeyBpbnN0
YW5jZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Rpdi1jdXN0b20tZWxlbWVudCcpOyB9KTsK
KyAgICBhc3NlcnRfZXF1YWxzKGluc3RhbmNlLmxvY2FsTmFtZSwgJ2Rpdi1jdXN0b20tZWxlbWVu
dCcpOworICAgIGFzc2VydF90cnVlKGluc3RhbmNlIGluc3RhbmNlb2YgSFRNTFVua25vd25FbGVt
ZW50KTsKK30sICdkb2N1bWVudC5jcmVhdGVFbGVtZW50IG11c3QgcmVwb3J0IGEgTm90U3VwcG9y
dGVkRXJyb3Igd2hlbiB0aGUgbG9jYWwgbmFtZSBvZiB0aGUgZWxlbWVudCBkb2VzIG5vdCBtYXRj
aCB0aGF0IG9mIHRoZSBjdXN0b20gZWxlbWVudCcpOworCit0ZXN0KGZ1bmN0aW9uICgpIHsKKyAg
ICB2YXIgZXhjZXB0aW9uVG9UaHJvdyA9IHtuYW1lOiAnZXhjZXB0aW9uIHRocm93biBieSBhIGN1
c3RvbSBjb25zdHJ1Y3Rvcid9OworICAgIGNsYXNzIFRocm93Q3VzdG9tRWxlbWVudCBleHRlbmRz
IEhUTUxFbGVtZW50IHsKKyAgICAgICAgY29uc3RydWN0b3IoKQorICAgICAgICB7CisgICAgICAg
ICAgICBzdXBlcigpOworICAgICAgICAgICAgaWYgKGV4Y2VwdGlvblRvVGhyb3cpCisgICAgICAg
ICAgICAgICAgdGhyb3cgZXhjZXB0aW9uVG9UaHJvdzsKKyAgICAgICAgfQorICAgIH07CisgICAg
Y3VzdG9tRWxlbWVudHMuZGVmaW5lKCd0aHJvdy1jdXN0b20tZWxlbWVudCcsIFRocm93Q3VzdG9t
RWxlbWVudCk7CisKKyAgICBhc3NlcnRfdGhyb3dzKGV4Y2VwdGlvblRvVGhyb3csIGZ1bmN0aW9u
ICgpIHsgbmV3IFRocm93Q3VzdG9tRWxlbWVudDsgfSk7CisgICAgdmFyIGluc3RhbmNlOworICAg
IGFzc2VydF9yZXBvcnRzKGV4Y2VwdGlvblRvVGhyb3csIGZ1bmN0aW9uICgpIHsgaW5zdGFuY2Ug
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0aHJvdy1jdXN0b20tZWxlbWVudCcpOyB9KTsKKyAg
ICBhc3NlcnRfZXF1YWxzKGluc3RhbmNlLmxvY2FsTmFtZSwgJ3Rocm93LWN1c3RvbS1lbGVtZW50
Jyk7CisgICAgYXNzZXJ0X3RydWUoaW5zdGFuY2UgaW5zdGFuY2VvZiBIVE1MVW5rbm93bkVsZW1l
bnQpOworCisgICAgZXhjZXB0aW9uVG9UaHJvdyA9IGZhbHNlOworICAgIHZhciBpbnN0YW5jZSA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3Rocm93LWN1c3RvbS1lbGVtZW50Jyk7CisgICAgYXNz
ZXJ0X3RydWUoaW5zdGFuY2UgaW5zdGFuY2VvZiBUaHJvd0N1c3RvbUVsZW1lbnQpOworICAgIGFz
c2VydF9lcXVhbHMoaW5zdGFuY2UubG9jYWxOYW1lLCAndGhyb3ctY3VzdG9tLWVsZW1lbnQnKTsK
KworfSwgJ2RvY3VtZW50LmNyZWF0ZUVsZW1lbnQgbXVzdCByZXBvcnQgYW4gZXhjZXB0aW9uIHRo
cm93biBieSBhIGN1c3RvbSBlbGVtZW50IGNvbnN0cnVjdG9yJyk7CisKKzwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvcGFyc2VyL3BhcnNlci1jb25zdHJ1Y3RzLWN1
c3RvbS1lbGVtZW50LWluLWRvY3VtZW50LXdyaXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL3BhcnNlci9w
YXJzZXItY29uc3RydWN0cy1jdXN0b20tZWxlbWVudC1pbi1kb2N1bWVudC13cml0ZS1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uOTdhZjI5OTk3ZDExNmU5YTgzNTc4YzEwYWViYTkyODdjNmE1NDcz
MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL3BhcnNlci9wYXJzZXItY29uc3RydWN0cy1jdXN0b20t
ZWxlbWVudC1pbi1kb2N1bWVudC13cml0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisK
K1BBU1MgSFRNTCBwYXJzZXIgbXVzdCBpbnN0YW50aWF0ZSBjdXN0b20gZWxlbWVudHMgaW5zaWRl
IGRvY3VtZW50LndyaXRlIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9wYXJzZXIvcGFyc2VyLWNvbnN0cnVj
dHMtY3VzdG9tLWVsZW1lbnQtaW4tZG9jdW1lbnQtd3JpdGUuaHRtbCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL3BhcnNlci9wYXJz
ZXItY29uc3RydWN0cy1jdXN0b20tZWxlbWVudC1pbi1kb2N1bWVudC13cml0ZS5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjNiNTI1NjY3N2QwZDA4ZjJkYWM5MjQwZGYwNmFiYzMzNGY1NzdmN2MKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1
c3RvbS1lbGVtZW50cy9wYXJzZXIvcGFyc2VyLWNvbnN0cnVjdHMtY3VzdG9tLWVsZW1lbnQtaW4t
ZG9jdW1lbnQtd3JpdGUuaHRtbApAQCAtMCwwICsxLDMyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sPgorPGhlYWQ+Cis8dGl0bGU+Q3VzdG9tIEVsZW1lbnRzOiBDaGFuZ2VzIHRvIHRoZSBIVE1M
IHBhcnNlcjwvdGl0bGU+Cis8bWV0YSBuYW1lPSJhdXRob3IiIHRpdGxlPSJSeW9zdWtlIE5pd2Ei
IGhyZWY9Im1haWx0bzpybml3YUB3ZWJraXQub3JnIj4KKzxtZXRhIG5hbWU9ImFzc2VydCIgY29u
dGVudD0iSFRNTCBwYXJzZXIgbXVzdCBjb25zdHJ1Y3QgY3VzdG9tIGVsZW1lbnRzIGluc2lkZSBk
b2N1bWVudC53cml0ZSI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vaHRtbC5zcGVj
LndoYXR3Zy5vcmcvI2NyZWF0ZS1hbi1lbGVtZW50LWZvci10aGUtdG9rZW4iPgorPGxpbmsgcmVs
PSJoZWxwIiBocmVmPSJodHRwczovL2RvbS5zcGVjLndoYXR3Zy5vcmcvI2NvbmNlcHQtY3JlYXRl
LWVsZW1lbnQiPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2h0bWwuc3BlYy53aGF0
d2cub3JnLyNkb2N1bWVudC53cml0ZSgpIj4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
cmVwb3J0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0ibG9nIj48L2Rp
dj4KKzxzY3JpcHQ+CisKK2NsYXNzIE15Q3VzdG9tRWxlbWVudCBleHRlbmRzIEhUTUxFbGVtZW50
IHsgfQorY3VzdG9tRWxlbWVudHMuZGVmaW5lKCdteS1jdXN0b20tZWxlbWVudCcsIE15Q3VzdG9t
RWxlbWVudCk7CisKK2RvY3VtZW50LndyaXRlKCc8bXktY3VzdG9tLWVsZW1lbnQ+PC9teS1jdXN0
b20tZWxlbWVudD4nKTsKKwordGVzdChmdW5jdGlvbiAoKSB7CisgICAgdmFyIGluc3RhbmNlID0g
ZG9jdW1lbnQucXVlcnlTZWxlY3RvcignbXktY3VzdG9tLWVsZW1lbnQnKTsKKworICAgIGFzc2Vy
dF90cnVlKGluc3RhbmNlIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpOworICAgIGFzc2VydF90cnVl
KGluc3RhbmNlIGluc3RhbmNlb2YgTXlDdXN0b21FbGVtZW50KTsKKworfSwgJ0hUTUwgcGFyc2Vy
IG11c3QgaW5zdGFudGlhdGUgY3VzdG9tIGVsZW1lbnRzIGluc2lkZSBkb2N1bWVudC53cml0ZScp
OworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL3BhcnNlci9w
YXJzZXItY29uc3RydWN0cy1jdXN0b20tZWxlbWVudC1zeW5jaHJvbm91c2x5LWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVs
ZW1lbnRzL3BhcnNlci9wYXJzZXItY29uc3RydWN0cy1jdXN0b20tZWxlbWVudC1zeW5jaHJvbm91
c2x5LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xYTZkMzk3ZmIyNjU1OWFlMzhjM2ZhNTU5YjJm
NmYxMjljNjkyMTZhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvcGFyc2VyL3BhcnNlci1jb25zdHJ1
Y3RzLWN1c3RvbS1lbGVtZW50LXN5bmNocm9ub3VzbHktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MyBAQAorCitQQVNTIEhUTUwgcGFyc2VyIG11c3Qgb25seSBhcHBlbmQgbm9kZXMgdGhhdCBhcHBl
YXIgYmVmb3JlIGEgY3VzdG9tIGVsZW1lbnQgYmVmb3JlIGluc3RhbnRpYXRpbmcgdGhlIGN1c3Rv
bSBlbGVtZW50IAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9wYXJzZXIvcGFyc2VyLWNvbnN0cnVjdHMtY3Vz
dG9tLWVsZW1lbnQtc3luY2hyb25vdXNseS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvcGFyc2VyL3BhcnNlci1jb25zdHJ1
Y3RzLWN1c3RvbS1lbGVtZW50LXN5bmNocm9ub3VzbHkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMDZhYTE3
ZjIwYjY2ZGZiYmJiOGYyNzFjYmMwNzBiYTgyMWJiYjI2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMv
cGFyc2VyL3BhcnNlci1jb25zdHJ1Y3RzLWN1c3RvbS1lbGVtZW50LXN5bmNocm9ub3VzbHkuaHRt
bApAQCAtMCwwICsxLDUxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8dGl0
bGU+Q3VzdG9tIEVsZW1lbnRzOiBDaGFuZ2VzIHRvIHRoZSBIVE1MIHBhcnNlcjwvdGl0bGU+Cis8
bWV0YSBuYW1lPSJhdXRob3IiIHRpdGxlPSJSeW9zdWtlIE5pd2EiIGhyZWY9Im1haWx0bzpybml3
YUB3ZWJraXQub3JnIj4KKzxtZXRhIG5hbWU9ImFzc2VydCIgY29udGVudD0iSFRNTCBwYXJzZXIg
bXVzdCBjb25zdHJ1Y3QgYSBjdXN0b20gZWxlbWVudCBzeW5jaHJvbm91c2x5Ij4KKzxsaW5rIHJl
bD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy8jY3JlYXRlLWFuLWVs
ZW1lbnQtZm9yLXRoZS10b2tlbiI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZG9t
LnNwZWMud2hhdHdnLm9yZy8jY29uY2VwdC1jcmVhdGUtZWxlbWVudCI+Cis8c2NyaXB0IHNyYz0i
L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291
cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxk
aXYgaWQ9ImxvZyI+PC9kaXY+Cis8c2NyaXB0PgorCit2YXIgY2hpbGRFbGVtZW50Q291bnRJbkNv
bnN0cnVjdG9yOwordmFyIGNvbnRhaW5lckNoaWxkTm9kZXNJbkNvbnN0cnVjdG9yID0gW107Cit2
YXIgY29udGFpbmVyTmV4dFNpYmxpbmdJbkNvbnN0cnVjdG9yOworY2xhc3MgTXlDdXN0b21FbGVt
ZW50IGV4dGVuZHMgSFRNTEVsZW1lbnQgeworICAgIGNvbnN0cnVjdG9yKCkgeworICAgICAgICBz
dXBlcigpOworICAgICAgICB2YXIgY29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J2N1c3RvbS1lbGVtZW50LWNvbnRhaW5lcicpOworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8
IGNvbnRhaW5lci5jaGlsZE5vZGVzLmxlbmd0aDsgaSsrKQorICAgICAgICAgICAgY29udGFpbmVy
Q2hpbGROb2Rlc0luQ29uc3RydWN0b3IucHVzaChjb250YWluZXIuY2hpbGROb2Rlc1tpXSk7Cisg
ICAgICAgIGNvbnRhaW5lck5leHRTaWJsaW5nSW5Db25zdHJ1Y3RvciA9IGNvbnRhaW5lci5uZXh0
U2libGluZzsKKyAgICB9Cit9OworY3VzdG9tRWxlbWVudHMuZGVmaW5lKCdteS1jdXN0b20tZWxl
bWVudCcsIE15Q3VzdG9tRWxlbWVudCk7CisKKzwvc2NyaXB0PgorPGRpdiBpZD0iY3VzdG9tLWVs
ZW1lbnQtY29udGFpbmVyIj4KKyAgICA8c3BhbiBpZD0iY3VzdG9tLWVsZW1lbnQtcHJldmlvdXMt
ZWxlbWVudCI+PC9zcGFuPgorICAgIDxteS1jdXN0b20tZWxlbWVudD48L215LWN1c3RvbS1lbGVt
ZW50PgorICAgIDxkaXYgaWQ9ImN1c3RvbS1lbGVtZW50LW5leHQtZWxlbWVudCI+PC9kaXY+Cis8
L2Rpdj4KKzxzY3JpcHQ+CisKK3Rlc3QoZnVuY3Rpb24gKCkgeworICAgIHZhciBpbnN0YW5jZSA9
IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ215LWN1c3RvbS1lbGVtZW50Jyk7CisKKyAgICBhc3Nl
cnRfZXF1YWxzKGNvbnRhaW5lckNoaWxkTm9kZXNJbkNvbnN0cnVjdG9yLmxlbmd0aCwgMyk7Cisg
ICAgYXNzZXJ0X2VxdWFscyhjb250YWluZXJDaGlsZE5vZGVzSW5Db25zdHJ1Y3RvclswXSwgaW5z
dGFuY2UucGFyZW50Tm9kZS5maXJzdENoaWxkKTsKKyAgICBhc3NlcnRfZXF1YWxzKGNvbnRhaW5l
ckNoaWxkTm9kZXNJbkNvbnN0cnVjdG9yWzFdLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY3Vz
dG9tLWVsZW1lbnQtcHJldmlvdXMtZWxlbWVudCcpKTsKKyAgICBhc3NlcnRfZXF1YWxzKGNvbnRh
aW5lckNoaWxkTm9kZXNJbkNvbnN0cnVjdG9yWzJdLCBpbnN0YW5jZS5wcmV2aW91c1NpYmxpbmcp
OworICAgIGFzc2VydF9lcXVhbHMoY29udGFpbmVyTmV4dFNpYmxpbmdJbkNvbnN0cnVjdG9yLCBu
dWxsKTsKKworfSwgJ0hUTUwgcGFyc2VyIG11c3Qgb25seSBhcHBlbmQgbm9kZXMgdGhhdCBhcHBl
YXIgYmVmb3JlIGEgY3VzdG9tIGVsZW1lbnQgYmVmb3JlIGluc3RhbnRpYXRpbmcgdGhlIGN1c3Rv
bSBlbGVtZW50Jyk7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVu
dHMvcGFyc2VyL3BhcnNlci1jb25zdHJ1Y3RzLWN1c3RvbS1lbGVtZW50cy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVt
ZW50cy9wYXJzZXIvcGFyc2VyLWNvbnN0cnVjdHMtY3VzdG9tLWVsZW1lbnRzLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi45ODc3ZDRiOTIzYWE3YjI4MzY2ZWZmMTBmYTFiN2FmNzRmYjEwMTk4Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jdXN0b20tZWxlbWVudHMvcGFyc2VyL3BhcnNlci1jb25zdHJ1Y3RzLWN1c3RvbS1lbGVt
ZW50cy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACisKK1BBU1MgSFRNTCBwYXJzZXIgbXVz
dCBOT1QgY3JlYXRlIGEgY3VzdG9tIGVsZW1lbnQgYmVmb3JlIGN1c3RvbUVsZW1lbnRzLmRlZmlu
ZSBpcyBjYWxsZWQgCitQQVNTIEhUTUwgcGFyc2VyIG11c3QgY3JlYXRlIGEgZGVmaW5lZCBjdXN0
b20gZWxlbWVudCBiZWZvcmUgZXhlY3V0aW5nIGlubGluZSBzY3JpcHRzIAorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVt
ZW50cy9wYXJzZXIvcGFyc2VyLWNvbnN0cnVjdHMtY3VzdG9tLWVsZW1lbnRzLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9w
YXJzZXIvcGFyc2VyLWNvbnN0cnVjdHMtY3VzdG9tLWVsZW1lbnRzLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
M2YxM2M1MGEwZTFiMTBlN2M5MTQwMzhjNzg1YjYwYjkyYWJmZjRhOQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVs
ZW1lbnRzL3BhcnNlci9wYXJzZXItY29uc3RydWN0cy1jdXN0b20tZWxlbWVudHMuaHRtbApAQCAt
MCwwICsxLDQ4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8dGl0bGU+Q3Vz
dG9tIEVsZW1lbnRzOiBDaGFuZ2VzIHRvIHRoZSBIVE1MIHBhcnNlcjwvdGl0bGU+Cis8bWV0YSBu
YW1lPSJhdXRob3IiIHRpdGxlPSJSeW9zdWtlIE5pd2EiIGhyZWY9Im1haWx0bzpybml3YUB3ZWJr
aXQub3JnIj4KKzxtZXRhIG5hbWU9ImFzc2VydCIgY29udGVudD0iSFRNTCBwYXJzZXIgY3JlYXRl
cyBhIGN1c3RvbSBlbGVtZW50Ij4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9odG1s
LnNwZWMud2hhdHdnLm9yZy8jY3JlYXRlLWFuLWVsZW1lbnQtZm9yLXRoZS10b2tlbiI+Cis8bGlu
ayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZG9tLnNwZWMud2hhdHdnLm9yZy8jY29uY2VwdC1j
cmVhdGUtZWxlbWVudCI+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9ImxvZyI+PC9kaXY+Cis8bXktY3Vz
dG9tLWVsZW1lbnQgaWQ9Imluc3RhbmNlMSI+PC9teS1jdXN0b20tZWxlbWVudD4KKzxzY3JpcHQ+
CisKK2NsYXNzIE15Q3VzdG9tRWxlbWVudCBleHRlbmRzIEhUTUxFbGVtZW50IHsgfTsKKwordGVz
dChmdW5jdGlvbiAoKSB7CisgICAgdmFyIGN1c3RvbUVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnaW5zdGFuY2UxJyk7CisKKyAgICBhc3NlcnRfdHJ1ZShjdXN0b21FbGVtZW50IGlu
c3RhbmNlb2YgSFRNTEVsZW1lbnQsICdBbiB1bnJlc29sdmVkIGN1c3RvbSBlbGVtZW50IG11c3Qg
YmUgYW4gaW5zdGFuY2Ugb2YgSFRNTEVsZW1lbnQnKTsKKyAgICBhc3NlcnRfZmFsc2UoY3VzdG9t
RWxlbWVudCBpbnN0YW5jZW9mIE15Q3VzdG9tRWxlbWVudCwgJ0FuIHVucmVzb2x2ZWQgY3VzdG9t
IGVsZW1lbnQgbXVzdCBOT1QgYmUgYW4gaW5zdGFuY2Ugb2YgdGhhdCBjdXN0b20gZWxlbWVudCcp
OworICAgIGFzc2VydF9lcXVhbHMoY3VzdG9tRWxlbWVudC5sb2NhbE5hbWUsICdteS1jdXN0b20t
ZWxlbWVudCcpOworICAgIGFzc2VydF9lcXVhbHMoY3VzdG9tRWxlbWVudC5uYW1lc3BhY2VVUkks
ICdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJywgJ0EgY3VzdG9tIGVsZW1lbnQgSFRNTCBt
dXN0IHVzZSBIVE1MIG5hbWVzcGFjZScpOworCit9LCAnSFRNTCBwYXJzZXIgbXVzdCBOT1QgY3Jl
YXRlIGEgY3VzdG9tIGVsZW1lbnQgYmVmb3JlIGN1c3RvbUVsZW1lbnRzLmRlZmluZSBpcyBjYWxs
ZWQnKTsKKworY3VzdG9tRWxlbWVudHMuZGVmaW5lKCdteS1jdXN0b20tZWxlbWVudCcsIE15Q3Vz
dG9tRWxlbWVudCk7CisKKzwvc2NyaXB0PgorPG15LWN1c3RvbS1lbGVtZW50IGlkPSJpbnN0YW5j
ZTIiPjwvbXktY3VzdG9tLWVsZW1lbnQ+Cis8c2NyaXB0PgorCit0ZXN0KGZ1bmN0aW9uICgpIHsK
KyAgICB2YXIgY3VzdG9tRWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnN0YW5j
ZTInKTsKKworICAgIGFzc2VydF90cnVlKGN1c3RvbUVsZW1lbnQgaW5zdGFuY2VvZiBIVE1MRWxl
bWVudCwgJ0EgcmVzb2x2ZWQgY3VzdG9tIGVsZW1lbnQgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBI
VE1MRWxlbWVudCcpOworICAgIGFzc2VydF9mYWxzZShjdXN0b21FbGVtZW50IGluc3RhbmNlb2Yg
SFRNTFVua25vd25FbGVtZW50LCAnQSByZXNvbHZlZCBjdXN0b20gZWxlbWVudCBtdXN0IE5PVCBi
ZSBhbiBpbnN0YW5jZSBvZiBIVE1MVW5rbm93bkVsZW1lbnQnKTsKKyAgICBhc3NlcnRfdHJ1ZShj
dXN0b21FbGVtZW50IGluc3RhbmNlb2YgTXlDdXN0b21FbGVtZW50LCAnQSByZXNvbHZlZCBjdXN0
b20gZWxlbWVudCBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIHRoYXQgY3VzdG9tIGVsZW1lbnQnKTsK
KyAgICBhc3NlcnRfZXF1YWxzKGN1c3RvbUVsZW1lbnQubG9jYWxOYW1lLCAnbXktY3VzdG9tLWVs
ZW1lbnQnKTsKKyAgICBhc3NlcnRfZXF1YWxzKGN1c3RvbUVsZW1lbnQubmFtZXNwYWNlVVJJLCAn
aHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcsICdBIGN1c3RvbSBlbGVtZW50IEhUTUwgbXVz
dCB1c2UgSFRNTCBuYW1lc3BhY2UnKTsKKworfSwgJ0hUTUwgcGFyc2VyIG11c3QgY3JlYXRlIGEg
ZGVmaW5lZCBjdXN0b20gZWxlbWVudCBiZWZvcmUgZXhlY3V0aW5nIGlubGluZSBzY3JpcHRzJyk7
CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvcGFyc2VyL3Bh
cnNlci1mYWxsc2JhY2stdG8tdW5rbm93bi1lbGVtZW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL3BhcnNl
ci9wYXJzZXItZmFsbHNiYWNrLXRvLXVua25vd24tZWxlbWVudC1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNmY2ZGM4NzE3Y2ZlZWIxNDg4YWQ5ZDk1N2JlYWM1Yzg0MmFjNGJhZQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Vz
dG9tLWVsZW1lbnRzL3BhcnNlci9wYXJzZXItZmFsbHNiYWNrLXRvLXVua25vd24tZWxlbWVudC1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorQ09OU09MRSBNRVNTQUdFOiBUeXBlRXJyb3I6
IFRoZSByZXN1bHQgb2YgY29uc3RydWN0aW5nIGEgY3VzdG9tIGVsZW1lbnQgbXVzdCBiZSBhIEhU
TUxFbGVtZW50CitDT05TT0xFIE1FU1NBR0U6IFR5cGVFcnJvcjogVGhlIHJlc3VsdCBvZiBjb25z
dHJ1Y3RpbmcgYSBjdXN0b20gZWxlbWVudCBtdXN0IGJlIGEgSFRNTEVsZW1lbnQKK0NPTlNPTEUg
TUVTU0FHRTogbGluZSAzNTogUmVmZXJlbmNlRXJyb3I6IENhbm5vdCBhY2Nlc3MgdW5pbml0aWFs
aXplZCB2YXJpYWJsZS4KK0NPTlNPTEUgTUVTU0FHRTogbGluZSA0MTogQmFkCisKK1BBU1MgSFRN
TCBwYXJzZXIgbXVzdCBjcmVhdGUgYSBmYWxsYmFjayBIVE1MVW5rbm93bkVsZW1lbnQgd2hlbiBh
IGN1c3RvbSBlbGVtZW50IGNvbnN0cnVjdG9yIHJldHVybnMgYSBUZXh0IG5vZGUgCitQQVNTIEhU
TUwgcGFyc2VyIG11c3QgY3JlYXRlIGEgZmFsbGJhY2sgSFRNTFVua25vd25FbGVtZW50IHdoZW4g
YSBjdXN0b20gZWxlbWVudCBjb25zdHJ1Y3RvciByZXR1cm5zIG5vbi1FbGVtZW50IG9iamVjdCAK
K1BBU1MgSFRNTCBwYXJzZXIgbXVzdCBjcmVhdGUgYSBmYWxsYmFjayBIVE1MVW5rbm93bkVsZW1l
bnQgd2hlbiBhIGN1c3RvbSBlbGVtZW50IGNvbnN0cnVjdG9yIGRvZXMgbm90IGNhbGwgc3VwZXIo
KSAKK1BBU1MgSFRNTCBwYXJzZXIgbXVzdCBjcmVhdGUgYSBmYWxsYmFjayBIVE1MVW5rbm93bkVs
ZW1lbnQgd2hlbiBhIGN1c3RvbSBlbGVtZW50IGNvbnN0cnVjdG9yIHRocm93cyBhbiBleGNlcHRp
b24gCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3VzdG9tLWVsZW1lbnRzL3BhcnNlci9wYXJzZXItZmFsbHNiYWNrLXRvLXVua25vd24t
ZWxlbWVudC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jdXN0b20tZWxlbWVudHMvcGFyc2VyL3BhcnNlci1mYWxsc2JhY2stdG8tdW5rbm93bi1lbGVt
ZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uODJlOTcwZjFhZTgxMGY1NGEzZDM3YzVjNWIxNDIxNDM0MjJi
ZGExMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL3BhcnNlci9wYXJzZXItZmFsbHNiYWNrLXRvLXVu
a25vd24tZWxlbWVudC5odG1sCkBAIC0wLDAgKzEsOTEgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0
bWw+Cis8aGVhZD4KKzx0aXRsZT5DdXN0b20gRWxlbWVudHM6IENoYW5nZXMgdG8gdGhlIEhUTUwg
cGFyc2VyPC90aXRsZT4KKzxtZXRhIG5hbWU9ImF1dGhvciIgdGl0bGU9IlJ5b3N1a2UgTml3YSIg
aHJlZj0ibWFpbHRvOnJuaXdhQHdlYmtpdC5vcmciPgorPG1ldGEgbmFtZT0iYXNzZXJ0IiBjb250
ZW50PSJIVE1MIHBhcnNlciBtdXN0IGZhbGxiYWNrIHRvIGNyZWF0aW5nIGEgSFRNTFVua25vd25F
bGVtZW50IHdoZW4gYSBjdXN0b20gZWxlbWVudCBjb25zdHJ1Y3Rpb24gZmFpbHMiPgorPGxpbmsg
cmVsPSJoZWxwIiBocmVmPSJodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnLyNjcmVhdGUtYW4t
ZWxlbWVudC1mb3ItdGhlLXRva2VuIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9k
b20uc3BlYy53aGF0d2cub3JnLyNjb25jZXB0LWNyZWF0ZS1lbGVtZW50Ij4KKzxzY3JpcHQgc3Jj
PSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5Pgor
PGRpdiBpZD0ibG9nIj48L2Rpdj4KKzxzY3JpcHQ+CisKK3NldHVwKHthbGxvd191bmNhdWdodF9l
eGNlcHRpb246dHJ1ZX0pOworCitjbGFzcyBSZXR1cm5zVGV4dE5vZGUgZXh0ZW5kcyBIVE1MRWxl
bWVudCB7CisgICAgY29uc3RydWN0b3IoKSB7CisgICAgICAgIHN1cGVyKCk7CisgICAgICAgIHJl
dHVybiBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgnc29tZSB0ZXh0Jyk7CisgICAgfQorfTsKK2N1
c3RvbUVsZW1lbnRzLmRlZmluZSgncmV0dXJucy10ZXh0JywgUmV0dXJuc1RleHROb2RlKTsKKwor
Y2xhc3MgUmV0dXJuc05vbkVsZW1lbnRPYmplY3QgZXh0ZW5kcyBIVE1MRWxlbWVudCB7CisgICAg
Y29uc3RydWN0b3IoKSB7CisgICAgICAgIHN1cGVyKCk7CisgICAgICAgIHJldHVybiB7fTsKKyAg
ICB9Cit9OworY3VzdG9tRWxlbWVudHMuZGVmaW5lKCdyZXR1cm5zLW5vbi1lbGVtZW50LW9iamVj
dCcsIFJldHVybnNOb25FbGVtZW50T2JqZWN0KTsKKworY2xhc3MgTGFja3NTdXBlckNhbGwgZXh0
ZW5kcyBIVE1MRWxlbWVudCB7CisgICAgY29uc3RydWN0b3IoKSB7IH0KK307CitjdXN0b21FbGVt
ZW50cy5kZWZpbmUoJ2xhY2tzLXN1cGVyLWNhbGwnLCBMYWNrc1N1cGVyQ2FsbCk7CisKK2NsYXNz
IFRocm93c0V4Y2VwdGlvbiBleHRlbmRzIEhUTUxFbGVtZW50IHsKKyAgICBjb25zdHJ1Y3Rvcigp
IHsKKyAgICAgICAgdGhyb3cgJ0JhZCc7CisgICAgfQorfTsKK2N1c3RvbUVsZW1lbnRzLmRlZmlu
ZSgndGhyb3dzLWV4Y2VwdGlvbicsIFRocm93c0V4Y2VwdGlvbik7CisKKzwvc2NyaXB0PgorPHJl
dHVybnMtdGV4dD48L3JldHVybnMtdGV4dD4KKzxyZXR1cm5zLW5vbi1lbGVtZW50LW9iamVjdD48
L3JldHVybnMtbm9uLWVsZW1lbnQtb2JqZWN0PgorPGxhY2tzLXN1cGVyLWNhbGw+PC9sYWNrcy1z
dXBlci1jYWxsPgorPHRocm93cy1leGNlcHRpb24+PC90aHJvd3MtZXhjZXB0aW9uPgorPHNjcmlw
dD4KKwordGVzdChmdW5jdGlvbiAoKSB7CisgICAgdmFyIGluc3RhbmNlID0gZG9jdW1lbnQucXVl
cnlTZWxlY3RvcigncmV0dXJucy10ZXh0Jyk7CisKKyAgICBhc3NlcnRfZmFsc2UoaW5zdGFuY2Ug
aW5zdGFuY2VvZiBSZXR1cm5zVGV4dE5vZGUsICdIVE1MIHBhcnNlciBtdXN0IE5PVCBpbnN0YW50
aWF0ZSBhIGN1c3RvbSBlbGVtZW50IHdoZW4gdGhlIGNvbnN0cnVjdG9yIHJldHVybnMgYSBUZXh0
IG5vZGUnKTsKKyAgICBhc3NlcnRfdHJ1ZShpbnN0YW5jZSBpbnN0YW5jZW9mIEhUTUxFbGVtZW50
LCAnVGhlIGZhbGxiYWNrIGVsZW1lbnQgY3JlYXRlZCBieSBIVE1MIHBhcnNlciBtdXN0IGJlIGFu
IGluc3RhbmNlIG9mIEhUTUxFbGVtZW50Jyk7CisgICAgYXNzZXJ0X3RydWUoaW5zdGFuY2UgaW5z
dGFuY2VvZiBIVE1MVW5rbm93bkVsZW1lbnQsICdUaGUgZmFsbGJhY2sgZWxlbWVudCBjcmVhdGVk
IGJ5IEhUTUwgcGFyc2VyIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgSFRNTFVua25vd25FbGVtZW50
Jyk7CisKK30sICdIVE1MIHBhcnNlciBtdXN0IGNyZWF0ZSBhIGZhbGxiYWNrIEhUTUxVbmtub3du
RWxlbWVudCB3aGVuIGEgY3VzdG9tIGVsZW1lbnQgY29uc3RydWN0b3IgcmV0dXJucyBhIFRleHQg
bm9kZScpOworCit0ZXN0KGZ1bmN0aW9uICgpIHsKKyAgICB2YXIgaW5zdGFuY2UgPSBkb2N1bWVu
dC5xdWVyeVNlbGVjdG9yKCdyZXR1cm5zLW5vbi1lbGVtZW50LW9iamVjdCcpOworCisgICAgYXNz
ZXJ0X2ZhbHNlKGluc3RhbmNlIGluc3RhbmNlb2YgUmV0dXJuc05vbkVsZW1lbnRPYmplY3QsICdI
VE1MIHBhcnNlciBtdXN0IE5PVCBpbnN0YW50aWF0ZSBhIGN1c3RvbSBlbGVtZW50IHdoZW4gdGhl
IGNvbnN0cnVjdG9yIHJldHVybnMgYSBub24tRWxlbWVudCBvYmplY3QnKTsKKyAgICBhc3NlcnRf
dHJ1ZShpbnN0YW5jZSBpbnN0YW5jZW9mIEhUTUxFbGVtZW50LCAnVGhlIGZhbGxiYWNrIGVsZW1l
bnQgY3JlYXRlZCBieSBIVE1MIHBhcnNlciBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIEhUTUxFbGVt
ZW50Jyk7CisgICAgYXNzZXJ0X3RydWUoaW5zdGFuY2UgaW5zdGFuY2VvZiBIVE1MVW5rbm93bkVs
ZW1lbnQsICdUaGUgZmFsbGJhY2sgZWxlbWVudCBjcmVhdGVkIGJ5IEhUTUwgcGFyc2VyIG11c3Qg
YmUgYW4gaW5zdGFuY2Ugb2YgSFRNTFVua25vd25FbGVtZW50Jyk7CisKK30sICdIVE1MIHBhcnNl
ciBtdXN0IGNyZWF0ZSBhIGZhbGxiYWNrIEhUTUxVbmtub3duRWxlbWVudCB3aGVuIGEgY3VzdG9t
IGVsZW1lbnQgY29uc3RydWN0b3IgcmV0dXJucyBub24tRWxlbWVudCBvYmplY3QnKTsKKwordGVz
dChmdW5jdGlvbiAoKSB7CisgICAgdmFyIGluc3RhbmNlID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rv
cignbGFja3Mtc3VwZXItY2FsbCcpOworCisgICAgYXNzZXJ0X2ZhbHNlKGluc3RhbmNlIGluc3Rh
bmNlb2YgTGFja3NTdXBlckNhbGwsICdIVE1MIHBhcnNlciBtdXN0IE5PVCBpbnN0YW50aWF0ZSBh
IGN1c3RvbSBlbGVtZW50IHdoZW4gdGhlIGNvbnN0cnVjdG9yIGRvZXMgbm90IGNhbGwgc3VwZXIo
KScpOworICAgIGFzc2VydF90cnVlKGluc3RhbmNlIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQsICdU
aGUgZmFsbGJhY2sgZWxlbWVudCBjcmVhdGVkIGJ5IEhUTUwgcGFyc2VyIG11c3QgYmUgYW4gaW5z
dGFuY2Ugb2YgSFRNTEVsZW1lbnQnKTsKKyAgICBhc3NlcnRfdHJ1ZShpbnN0YW5jZSBpbnN0YW5j
ZW9mIEhUTUxVbmtub3duRWxlbWVudCwgJ1RoZSBmYWxsYmFjayBlbGVtZW50IGNyZWF0ZWQgYnkg
SFRNTCBwYXJzZXIgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBIVE1MVW5rbm93bkVsZW1lbnQnKTsK
KworfSwgJ0hUTUwgcGFyc2VyIG11c3QgY3JlYXRlIGEgZmFsbGJhY2sgSFRNTFVua25vd25FbGVt
ZW50IHdoZW4gYSBjdXN0b20gZWxlbWVudCBjb25zdHJ1Y3RvciBkb2VzIG5vdCBjYWxsIHN1cGVy
KCknKTsKKwordGVzdChmdW5jdGlvbiAoKSB7CisgICAgdmFyIGluc3RhbmNlID0gZG9jdW1lbnQu
cXVlcnlTZWxlY3RvcigndGhyb3dzLWV4Y2VwdGlvbicpOworCisgICAgYXNzZXJ0X2ZhbHNlKGlu
c3RhbmNlIGluc3RhbmNlb2YgVGhyb3dzRXhjZXB0aW9uLCAnSFRNTCBwYXJzZXIgbXVzdCBOT1Qg
aW5zdGFudGlhdGUgYSBjdXN0b20gZWxlbWVudCB3aGVuIHRoZSBjb25zdHJ1Y3RvciB0aHJvd3Mg
YW4gZXhjZXB0aW9uJyk7CisgICAgYXNzZXJ0X3RydWUoaW5zdGFuY2UgaW5zdGFuY2VvZiBIVE1M
RWxlbWVudCwgJ1RoZSBmYWxsYmFjayBlbGVtZW50IGNyZWF0ZWQgYnkgSFRNTCBwYXJzZXIgbXVz
dCBiZSBhbiBpbnN0YW5jZSBvZiBIVE1MRWxlbWVudCcpOworICAgIGFzc2VydF90cnVlKGluc3Rh
bmNlIGluc3RhbmNlb2YgSFRNTFVua25vd25FbGVtZW50LCAnVGhlIGZhbGxiYWNrIGVsZW1lbnQg
Y3JlYXRlZCBieSBIVE1MIHBhcnNlciBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIEhUTUxVbmtub3du
RWxlbWVudCcpOworCit9LCAnSFRNTCBwYXJzZXIgbXVzdCBjcmVhdGUgYSBmYWxsYmFjayBIVE1M
VW5rbm93bkVsZW1lbnQgd2hlbiBhIGN1c3RvbSBlbGVtZW50IGNvbnN0cnVjdG9yIHRocm93cyBh
biBleGNlcHRpb24nKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVt
ZW50cy9wYXJzZXIvcGFyc2VyLXNldHMtYXR0cmlidXRlcy1hbmQtY2hpbGRyZW4tZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20t
ZWxlbWVudHMvcGFyc2VyL3BhcnNlci1zZXRzLWF0dHJpYnV0ZXMtYW5kLWNoaWxkcmVuLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4zNTBiZDg3YTNiYjRlYWQ3OTRhMTlhYTU0N2ZhN2I3MTI4Mjk0
NGNkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvcGFyc2VyL3BhcnNlci1zZXRzLWF0dHJpYnV0ZXMt
YW5kLWNoaWxkcmVuLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKKworUEFTUyBIVE1MIHBh
cnNlciBtdXN0IHNldCB0aGUgYXR0cmlidXRlcyAKK1BBU1MgSFRNTCBwYXJzZXIgbXVzdCBhcHBl
bmQgY2hpbGQgbm9kZXMgCitQQVNTIEhUTUwgcGFyc2VyIG11c3Qgc2V0IHRoZSBhdHRyaWJ1dGVz
IG9yIGFwcGVuZCBjaGlsZHJlbiBiZWZvcmUgY2FsbGluZyBjb25zdHJ1Y3RvciAKK2hlbGxvIHdv
cmxkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2N1c3RvbS1lbGVtZW50cy9wYXJzZXIvcGFyc2VyLXNldHMtYXR0cmlidXRlcy1hbmQtY2hp
bGRyZW4uaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3VzdG9tLWVsZW1lbnRzL3BhcnNlci9wYXJzZXItc2V0cy1hdHRyaWJ1dGVzLWFuZC1jaGlsZHJl
bi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmJhMzMxMzcwYTc4ZGFhMzBlNWMyMjU4YjNhYjZhYjBhMWEzZGNk
ZWQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9wYXJzZXIvcGFyc2VyLXNldHMtYXR0cmlidXRlcy1h
bmQtY2hpbGRyZW4uaHRtbApAQCAtMCwwICsxLDU5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorPGhlYWQ+Cis8dGl0bGU+Q3VzdG9tIEVsZW1lbnRzOiBDaGFuZ2VzIHRvIHRoZSBIVE1MIHBh
cnNlcjwvdGl0bGU+Cis8bWV0YSBuYW1lPSJhdXRob3IiIHRpdGxlPSJSeW9zdWtlIE5pd2EiIGhy
ZWY9Im1haWx0bzpybml3YUB3ZWJraXQub3JnIj4KKzxtZXRhIG5hbWU9ImFzc2VydCIgY29udGVu
dD0iSFRNTCBwYXJzZXIgbXVzdCBzZXQgdGhlIGF0dHJpYnV0ZXMgYW5kIGFwcGVuZCB0aGUgY2hp
bGRyZW4gb24gYSBjdXN0b20gZWxlbWVudCI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBz
Oi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvI2NyZWF0ZS1hbi1lbGVtZW50LWZvci10aGUtdG9rZW4i
PgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2RvbS5zcGVjLndoYXR3Zy5vcmcvI2Nv
bmNlcHQtY3JlYXRlLWVsZW1lbnQiPgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5l
c3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBv
cnQuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJsb2ciPjwvZGl2Pgor
PHNjcmlwdD4KKwordmFyIG51bWJlck9mQXR0cmlidXRlc0luQ29uc3RydWN0b3I7Cit2YXIgbnVt
YmVyT2ZDaGlsZE5vZGVzSW5Db25zdHJ1Y3RvcjsKKworY2xhc3MgTXlDdXN0b21FbGVtZW50IGV4
dGVuZHMgSFRNTEVsZW1lbnQgeworICAgIGNvbnN0cnVjdG9yKC4uLmFyZ3MpIHsKKyAgICAgICAg
c3VwZXIoLi4uYXJncyk7CisgICAgICAgIG51bWJlck9mQXR0cmlidXRlc0luQ29uc3RydWN0b3Ig
PSB0aGlzLmF0dHJpYnV0ZXMubGVuZ3RoOworICAgICAgICBudW1iZXJPZkNoaWxkTm9kZXNJbkNv
bnN0cnVjdG9yID0gdGhpcy5jaGlsZE5vZGVzLmxlbmd0aDsKKyAgICB9Cit9OworY3VzdG9tRWxl
bWVudHMuZGVmaW5lKCdteS1jdXN0b20tZWxlbWVudCcsIE15Q3VzdG9tRWxlbWVudCk7CisKKzwv
c2NyaXB0PgorPG15LWN1c3RvbS1lbGVtZW50IGlkPSJjdXN0b20tZWxlbWVudC1pZCIgY2xhc3M9
ImNsYXNzMSBjbGFzczIiPmhlbGxvIDxiPndvcmxkPC9iPjwvbXktY3VzdG9tLWVsZW1lbnQ+Cis8
c2NyaXB0PgorCit2YXIgY3VzdG9tRWxlbWVudCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ215
LWN1c3RvbS1lbGVtZW50Jyk7CisKK3Rlc3QoZnVuY3Rpb24gKCkgeworICAgIGFzc2VydF9lcXVh
bHMoY3VzdG9tRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ2lkJyksICdjdXN0b20tZWxlbWVudC1pZCcs
ICdIVE1MIHBhcnNlciBtdXN0IHByZXNlcnZlIHRoZSBpZCBhdHRyaWJ1dGUnKTsKKyAgICBhc3Nl
cnRfZXF1YWxzKGN1c3RvbUVsZW1lbnQuaWQsICdjdXN0b20tZWxlbWVudC1pZCcsICdIVE1MIHBh
cnNlciBtdXN0IHByZXNlcnZlIHRoZSBzZW1hbnRpY3Mgb2YgcmVmbGVjdCBmb3IgdGhlIGlkIGF0
dHJpYnV0ZScpOworICAgIGFzc2VydF9lcXVhbHMoY3VzdG9tRWxlbWVudC5nZXRBdHRyaWJ1dGUo
J2NsYXNzJyksICdjbGFzczEgY2xhc3MyJywgJ0hUTUwgcGFyc2VyIG11c3QgcHJlc2VydmUgdGhl
IGNsYXNzIGF0dHJpYnV0ZScpOworICAgIGFzc2VydF9lcXVhbHMoY3VzdG9tRWxlbWVudC5jbGFz
c0xpc3QubGVuZ3RoLCAyLCAnSFRNTCBwYXJzZXIgbXVzdCBpbml0aWFsaXplIGNsYXNzTGlzdCBv
biBjdXN0b20gZWxlbWVudHMnKTsKKyAgICBhc3NlcnRfZXF1YWxzKGN1c3RvbUVsZW1lbnQuY2xh
c3NMaXN0WzBdLCAnY2xhc3MxJywgJ0hUTUwgcGFyc2VyIG11c3QgaW5pdGlhbGl6ZSBjbGFzc0xp
c3Qgb24gY3VzdG9tIGVsZW1lbnRzJyk7CisgICAgYXNzZXJ0X2VxdWFscyhjdXN0b21FbGVtZW50
LmNsYXNzTGlzdFsxXSwgJ2NsYXNzMicsICdIVE1MIHBhcnNlciBtdXN0IGluaXRpYWxpemUgY2xh
c3NMaXN0IG9uIGN1c3RvbSBlbGVtZW50cycpOworfSwgJ0hUTUwgcGFyc2VyIG11c3Qgc2V0IHRo
ZSBhdHRyaWJ1dGVzJyk7CisKK3Rlc3QoZnVuY3Rpb24gKCkgeworICAgIGFzc2VydF9lcXVhbHMo
Y3VzdG9tRWxlbWVudC5jaGlsZE5vZGVzLmxlbmd0aCwgMiwgJ0hUTUwgcGFyc2VyIG11c3QgYXBw
ZW5kIGNoaWxkIG5vZGVzJyk7CisgICAgYXNzZXJ0X3RydWUoY3VzdG9tRWxlbWVudC5maXJzdENo
aWxkIGluc3RhbmNlb2YgVGV4dCwgJ0hUTUwgcGFyc2VyIG11c3QgYXBwZW5kIFRleHQgbm9kZSBj
aGlsZCB0byBhIGN1c3RvbSBlbGVtZW50Jyk7CisgICAgYXNzZXJ0X2VxdWFscyhjdXN0b21FbGVt
ZW50LmZpcnN0Q2hpbGQuZGF0YSwgJ2hlbGxvICcsICdIVE1MIHBhcnNlciBtdXN0IGFwcGVuZCBU
ZXh0IG5vZGUgY2hpbGQgdG8gYSBjdXN0b20gZWxlbWVudCcpOworICAgIGFzc2VydF90cnVlKGN1
c3RvbUVsZW1lbnQubGFzdENoaWxkIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQsICdIVE1MIHBhcnNl
ciBtdXN0IGFwcGVuZCBhIGJ1aWx0aW4gZWxlbWVudCBjaGlsZCB0byBhIGN1c3RvbSBlbGVtZW50
Jyk7CisgICAgYXNzZXJ0X3RydWUoY3VzdG9tRWxlbWVudC5sYXN0Q2hpbGQuZmlyc3RDaGlsZCBp
bnN0YW5jZW9mIFRleHQsICdIVE1MIHBhcnNlciBtdXN0IHByZXNlcnZlIGdyYW5kY2hpbGQgbm9k
ZXMgb2YgYSBjdXN0b20gZWxlbWVudCcpOworICAgIGFzc2VydF9lcXVhbHMoY3VzdG9tRWxlbWVu
dC5sYXN0Q2hpbGQuZmlyc3RDaGlsZC5kYXRhLCAnd29ybGQnLCAnSFRNTCBwYXJzZXIgbXVzdCBw
cmVzZXJ2ZSBncmFuZGNoaWxkIG5vZGVzIG9mIGEgY3VzdG9tIGVsZW1lbnQnKTsKK30sICdIVE1M
IHBhcnNlciBtdXN0IGFwcGVuZCBjaGlsZCBub2RlcycpOworCit0ZXN0KGZ1bmN0aW9uICgpIHsK
KyAgICBhc3NlcnRfZXF1YWxzKG51bWJlck9mQXR0cmlidXRlc0luQ29uc3RydWN0b3IsIDAsICdI
VE1MIHBhcnNlciBtdXN0IG5vdCBzZXQgYXR0cmlidXRlcyBvbiBhIGN1c3RvbSBlbGVtZW50IGJl
Zm9yZSBpbnZva2luZyB0aGUgY29uc3RydWN0b3InKTsKKyAgICBhc3NlcnRfZXF1YWxzKG51bWJl
ck9mQ2hpbGROb2Rlc0luQ29uc3RydWN0b3IsIDAsICdIVE1MIHBhcnNlciBtdXN0IG5vdCBhcHBl
bmQgY2hpbGQgbm9kZXMgdG8gYSBjdXN0b20gZWxlbWVudCBiZWZvcmUgaW52b2tpbmcgdGhlIGNv
bnN0cnVjdG9yJyk7Cit9LCAnSFRNTCBwYXJzZXIgbXVzdCBzZXQgdGhlIGF0dHJpYnV0ZXMgb3Ig
YXBwZW5kIGNoaWxkcmVuIGJlZm9yZSBjYWxsaW5nIGNvbnN0cnVjdG9yJyk7CisKKzwvc2NyaXB0
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvcGFyc2VyL3BhcnNlci11c2VzLWNv
bnN0cnVjdGVkLWVsZW1lbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvcGFyc2VyL3BhcnNlci11c2VzLWNv
bnN0cnVjdGVkLWVsZW1lbnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQwMjMyMjMxODE1MGNk
ODBkZTc3ZjU4ZThjNDQzNjM0ZTRjNjg1MDIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9wYXJzZXIv
cGFyc2VyLXVzZXMtY29uc3RydWN0ZWQtZWxlbWVudC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0
IEBACisKK0ZBSUwgSFRNTCBwYXJzZXIgbXVzdCB1c2UgdGhlIHJldHVybmVkIHZhbHVlIG9mIHRo
ZSBjdXN0b20gZWxlbWVudCBjb25zdHJ1Y3RvciBpbnN0ZWFkIG9mIHRoZSBvbmUgY3JlYXRlZCBi
ZWZvcmUgc3VwZXIoKSBjYWxsIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIChzdHJpbmcpICJIVE1M
IHBhcnNlciBtdXN0IGluc2VydCB0aGUgc3luY2hyb25vdXNseSBjb25zdHJ1Y3RlZCBjdXN0b20g
ZWxlbWVudCIgYnV0IGdvdCAoYm9vbGVhbikgdHJ1ZQorRkFJTCBIVE1MIHBhcnNlciBtdXN0IHVz
ZSB0aGUgcmV0dXJuZWQgdmFsdWUgb2YgdGhlIGN1c3RvbSBlbGVtZW50IGNvbnN0cnVjdG9yIGlu
c3RlYWQgdXNpbmcgdGhlIG9uZSBjcmVhdGVkIGluIHN1cGVyKCkgY2FsbCBhc3NlcnRfZXF1YWxz
OiBleHBlY3RlZCAoc3RyaW5nKSAiSFRNTCBwYXJzZXIgbXVzdCBpbnNlcnQgdGhlIHN5bmNocm9u
b3VzbHkgY29uc3RydWN0ZWQgY3VzdG9tIGVsZW1lbnQiIGJ1dCBnb3QgKGJvb2xlYW4pIHRydWUK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jdXN0b20tZWxlbWVudHMvcGFyc2VyL3BhcnNlci11c2VzLWNvbnN0cnVjdGVkLWVsZW1lbnQu
aHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9t
LWVsZW1lbnRzL3BhcnNlci9wYXJzZXItdXNlcy1jb25zdHJ1Y3RlZC1lbGVtZW50Lmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMzkzYmJlYzY5OGI2MDIxYzc4MDY0Y2YzMGE3MTJlYTY5OTRkMDE0MQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3VzdG9tLWVsZW1lbnRzL3BhcnNlci9wYXJzZXItdXNlcy1jb25zdHJ1Y3RlZC1lbGVtZW50Lmh0
bWwKQEAgLTAsMCArMSw3NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHRp
dGxlPkN1c3RvbSBFbGVtZW50czogSFRNTCBwYXJzZXIgbXVzdCBjb25zdHJ1Y3QgYSBjdXN0b20g
ZWxlbWVudCBpbnN0ZWFkIG9mIHVwZ3JhZGluZzwvdGl0bGU+Cis8bWV0YSBuYW1lPSJhdXRob3Ii
IHRpdGxlPSJSeW9zdWtlIE5pd2EiIGhyZWY9Im1haWx0bzpybml3YUB3ZWJraXQub3JnIj4KKzxt
ZXRhIG5hbWU9ImFzc2VydCIgY29udGVudD0iSFRNTCBwYXJzZXIgbXVzdCBjb25zdHJ1Y3QgYSBj
dXN0b20gZWxlbWVudCBpbnN0ZWFkIG9mIHVwZ3JhZGluZyI+Cis8c2NyaXB0IHNyYz0iL3Jlc291
cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90
ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0
dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvI2NyZWF0ZS1hbi1lbGVtZW50LWZvci10aGUtdG9r
ZW4iPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2RvbS5zcGVjLndoYXR3Zy5vcmcv
I2NvbmNlcHQtY3JlYXRlLWVsZW1lbnQiPgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJsb2ci
PjwvZGl2PgorPHNjcmlwdD4KKworbGV0IGFub3RoZXJFbGVtZW50Q3JlYXRlZEJlZm9yZVN1cGVy
Q2FsbCA9IHVuZGVmaW5lZDsKK2xldCBlbGVtZW50Q3JlYXRlZEJ5U3VwZXJDYWxsID0gdW5kZWZp
bmVkOworbGV0IHNob3VsZENyZWF0ZUVsZW1lbnRCZWZvcmVTdXBlckNhbGwgPSB0cnVlOworY2xh
c3MgSW5zdGFudGlhdGVzSXRzZWxmQmVmb3JlU3VwZXIgZXh0ZW5kcyBIVE1MRWxlbWVudCB7Cisg
ICAgY29uc3RydWN0b3IoKSB7CisgICAgICAgIGlmIChzaG91bGRDcmVhdGVFbGVtZW50QmVmb3Jl
U3VwZXJDYWxsKSB7CisgICAgICAgICAgICBzaG91bGRDcmVhdGVFbGVtZW50QmVmb3JlU3VwZXJD
YWxsID0gZmFsc2U7CisgICAgICAgICAgICBhbm90aGVyRWxlbWVudENyZWF0ZWRCZWZvcmVTdXBl
ckNhbGwgPSBuZXcgSW5zdGFudGlhdGVzSXRzZWxmQmVmb3JlU3VwZXIoKTsKKyAgICAgICAgfQor
ICAgICAgICBzdXBlcigpOworICAgICAgICBlbGVtZW50Q3JlYXRlZEJ5U3VwZXJDYWxsID0gdGhp
czsKKyAgICB9Cit9OworY3VzdG9tRWxlbWVudHMuZGVmaW5lKCdpbnN0YW50aWF0ZXMtaXRzZWxm
LWJlZm9yZS1zdXBlcicsIEluc3RhbnRpYXRlc0l0c2VsZkJlZm9yZVN1cGVyKTsKKworbGV0IHNo
b3VsZENyZWF0ZUFub3RoZXJJbnN0YW5jZSA9IHRydWU7CitsZXQgYW5vdGhlckluc3RhbmNlID0g
dW5kZWZpbmVkOworbGV0IGZpcnN0SW5zdGFuY2UgPSB1bmRlZmluZWQ7CitjbGFzcyBSZXR1cm5z
QW5vdGhlckluc3RhbmNlIGV4dGVuZHMgSFRNTEVsZW1lbnQgeworICAgIGNvbnN0cnVjdG9yKCkg
eworICAgICAgICBzdXBlcigpOworICAgICAgICBpZiAoc2hvdWxkQ3JlYXRlQW5vdGhlckluc3Rh
bmNlKSB7CisgICAgICAgICAgICBzaG91bGRDcmVhdGVBbm90aGVySW5zdGFuY2UgPSBmYWxzZTsK
KyAgICAgICAgICAgIGZpcnN0SW5zdGFuY2UgPSB0aGlzOworICAgICAgICAgICAgYW5vdGhlcklu
c3RhbmNlID0gbmV3IFJldHVybnNBbm90aGVySW5zdGFuY2U7CisgICAgICAgICAgICByZXR1cm4g
YW5vdGhlckluc3RhbmNlOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIHJldHVybiB0aGlz
OworICAgIH0KK307CitjdXN0b21FbGVtZW50cy5kZWZpbmUoJ3JldHVybnMtYW5vdGhlci1pbnN0
YW5jZScsIFJldHVybnNBbm90aGVySW5zdGFuY2UpOworCis8L3NjcmlwdD4KKzxpbnN0YW50aWF0
ZXMtaXRzZWxmLWJlZm9yZS1zdXBlcj48L2luc3RhbnRpYXRlcy1pdHNlbGYtYmVmb3JlLXN1cGVy
PgorPHJldHVybnMtYW5vdGhlci1pbnN0YW5jZT48L3JldHVybnMtYW5vdGhlci1pbnN0YW5jZT4K
KzxzY3JpcHQ+CisKK3Rlc3QoZnVuY3Rpb24gKCkgeworICAgIHZhciBpbnN0YW5jZSA9IGRvY3Vt
ZW50LnF1ZXJ5U2VsZWN0b3IoJ2luc3RhbnRpYXRlcy1pdHNlbGYtYmVmb3JlLXN1cGVyJyk7CisK
KyAgICBhc3NlcnRfZXF1YWxzKGluc3RhbmNlIGluc3RhbmNlb2YgSW5zdGFudGlhdGVzSXRzZWxm
QmVmb3JlU3VwZXIsICdIVE1MIHBhcnNlciBtdXN0IGluc2VydCB0aGUgc3luY2hyb25vdXNseSBj
b25zdHJ1Y3RlZCBjdXN0b20gZWxlbWVudCcpOworICAgIGFzc2VydF9lcXVhbHMoaW5zdGFuY2Us
IGVsZW1lbnRDcmVhdGVkQnlTdXBlckNhbGwsICdIVE1MIHBhcnNlciBtdXN0IGluc2VydCB0aGUg
ZWxlbWVudCByZXR1cm5lZCBieSB0aGUgY3VzdG9tIGVsZW1lbnQgY29uc3RydWN0b3InKTsKKyAg
ICBhc3NlcnRfbm90X2VxdWFscyhpbnN0YW5jZSwgYW5vdGhlckVsZW1lbnRDcmVhdGVkQmVmb3Jl
U3VwZXJDYWxsLCAnSFRNTCBwYXJzZXIgbXVzdCBub3QgaW5zZXJ0IGFub3RoZXIgaW5zdGFuY2Ug
b2YgdGhlIGN1c3RvbSBlbGVtZW50IGNyZWF0ZWQgYmVmb3JlIHN1cGVyKCkgY2FsbCcpOworICAg
IGFzc2VydF9lcXVhbHMoYW5vdGhlckVsZW1lbnRDcmVhdGVkQmVmb3JlU3VwZXJDYWxsLnBhcmVu
dE5vZGUsIG51bGwsICdIVE1MIHBhcnNlciBtdXN0IG5vdCBpbnNlcnQgYW5vdGhlciBpbnN0YW5j
ZSBvZiB0aGUgY3VzdG9tIGVsZW1lbnQgY3JlYXRlZCBiZWZvcmUgc3VwZXIoKSBjYWxsJyk7CisK
K30sICdIVE1MIHBhcnNlciBtdXN0IHVzZSB0aGUgcmV0dXJuZWQgdmFsdWUgb2YgdGhlIGN1c3Rv
bSBlbGVtZW50IGNvbnN0cnVjdG9yIGluc3RlYWQgb2YgdGhlIG9uZSBjcmVhdGVkIGJlZm9yZSBz
dXBlcigpIGNhbGwnKTsKKwordGVzdChmdW5jdGlvbiAoKSB7CisgICAgdmFyIGluc3RhbmNlID0g
ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigncmV0dXJucy1hbm90aGVyLWluc3RhbmNlJyk7CisKKyAg
ICBhc3NlcnRfZXF1YWxzKGluc3RhbmNlIGluc3RhbmNlb2YgUmV0dXJuc0Fub3RoZXJJbnN0YW5j
ZSwgJ0hUTUwgcGFyc2VyIG11c3QgaW5zZXJ0IHRoZSBzeW5jaHJvbm91c2x5IGNvbnN0cnVjdGVk
IGN1c3RvbSBlbGVtZW50Jyk7CisgICAgYXNzZXJ0X2VxdWFscyhpbnN0YW5jZSwgYW5vdGhlcklu
c3RhbmNlLCAnSFRNTCBwYXJzZXIgbXVzdCBpbnNlcnQgdGhlIGVsZW1lbnQgcmV0dXJuZWQgYnkg
dGhlIGN1c3RvbSBlbGVtZW50IGNvbnN0cnVjdG9yJyk7CisgICAgYXNzZXJ0X25vdF9lcXVhbHMo
aW5zdGFuY2UsIGZpcnN0SW5zdGFuY2UsICdIVE1MIHBhcnNlciBtdXN0IG5vdCBpbnNlcnQgdGhl
IGVsZW1lbnQgY3JlYXRlZCBieSBzdXBlcigpIGNhbGwgaWYgdGhlIGNvbnN0cnVjdG9yIHJldHVy
bmVkIGFub3RoZXIgZWxlbWVudCcpOworICAgIGFzc2VydF9lcXVhbHMoZmlyc3RJbnN0YW5jZS5w
YXJlbnROb2RlLCBudWxsLCAnSFRNTCBwYXJzZXIgbXVzdCBub3QgaW5zZXJ0IHRoZSBlbGVtZW50
IGNyZWF0ZWQgYnkgc3VwZXIoKSBjYWxsIGlmIHRoZSBjb25zdHJ1Y3RvciByZXR1cm5lZCBhbm90
aGVyIGVsZW1lbnQnKTsKKworfSwgJ0hUTUwgcGFyc2VyIG11c3QgdXNlIHRoZSByZXR1cm5lZCB2
YWx1ZSBvZiB0aGUgY3VzdG9tIGVsZW1lbnQgY29uc3RydWN0b3IgaW5zdGVhZCB1c2luZyB0aGUg
b25lIGNyZWF0ZWQgaW4gc3VwZXIoKSBjYWxsJyk7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jdXN0b20tZWxlbWVudHMvcGFyc2VyL3BhcnNlci11c2VzLXJlZ2lzdHJ5LW9mLW93bmVy
LWRvY3VtZW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL3BhcnNlci9wYXJzZXItdXNlcy1yZWdpc3RyeS1v
Zi1vd25lci1kb2N1bWVudC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzY0YTZmNTFkZDM5ZTg4
ZTQwZmM0OGI3ODBlZDM5YTFmMjIxODlmZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL3BhcnNlci9w
YXJzZXItdXNlcy1yZWdpc3RyeS1vZi1vd25lci1kb2N1bWVudC1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwxMCBAQAorCitQQVNTIEhUTUwgcGFyc2VyIG11c3Qgbm90IGluc3RhbnRpYXRlIGN1c3Rv
bSBlbGVtZW50cyBpbnNpZGUgdGVtcGxhdGUgZWxlbWVudHMgCitQQVNTIEhUTUwgcGFyc2VyIG11
c3Qgbm90IHVzZSB0aGUgcmVnaXN0cnkgb2YgdGhlIG93bmVyIGVsZW1lbnQncyBkb2N1bWVudCBp
bnNpZGUgYW4gaWZyYW1lIAorUEFTUyBIVE1MIHBhcnNlciBtdXN0IHVzZSB0aGUgcmVnaXN0cnkg
b2YgdGhlIGNvbnRlbnQgZG9jdW1lbnQgaW5zaWRlIGFuIGlmcmFtZSAKK1BBU1MgSFRNTCBwYXJz
ZXIgbXVzdCBub3QgaW5zdGFudGlhdGUgYSBjdXN0b20gZWxlbWVudCBkZWZpbmVkIGluc2lkZSBh
biBmcmFtZSBpbiBmcmFtZSBlbGVtZW50J3Mgb3duZXIgZG9jdW1lbnQgCitQQVNTIEhUTUwgcGFy
c2VyIG11c3QgdXNlIHRoZSByZWdpc3RyeSBvZiB3aW5kb3cuZG9jdW1lbnQgaW4gYSBkb2N1bWVu
dCBjcmVhdGVkIGJ5IGRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZUhUTUxEb2N1bWVudCgp
IAorUEFTUyBIVE1MIHBhcnNlciBtdXN0IHVzZSB0aGUgcmVnaXN0cnkgb2Ygd2luZG93LmRvY3Vt
ZW50IGluIGEgZG9jdW1lbnQgY3JlYXRlZCBieSBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVh
dGVYSFRNTERvY3VtZW50KCkgCitQQVNTIEhUTUwgcGFyc2VyIG11c3QgdXNlIHRoZSByZWdpc3Ry
eSBvZiB3aW5kb3cuZG9jdW1lbnQgaW4gYSBkb2N1bWVudCBjcmVhdGVkIGJ5IG5ldyBEb2N1bWVu
dCAKK1BBU1MgSFRNTCBwYXJzZXIgbXVzdCB1c2UgdGhlIHJlZ2lzdHJ5IG9mIHdpbmRvdy5kb2N1
bWVudCBpbiBhIGRvY3VtZW50IGNyZWF0ZWQgYnkgWE1MSHR0cFJlcXVlc3QgCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVs
ZW1lbnRzL3BhcnNlci9wYXJzZXItdXNlcy1yZWdpc3RyeS1vZi1vd25lci1kb2N1bWVudC5odG1s
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxl
bWVudHMvcGFyc2VyL3BhcnNlci11c2VzLXJlZ2lzdHJ5LW9mLW93bmVyLWRvY3VtZW50Lmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZWZkYzNhMmE0N2M4OTI0M2Q0YzZmNmU5ZWMxMWIwYWExNWEwMmNkZgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3VzdG9tLWVsZW1lbnRzL3BhcnNlci9wYXJzZXItdXNlcy1yZWdpc3RyeS1vZi1vd25lci1k
b2N1bWVudC5odG1sCkBAIC0wLDAgKzEsMTI2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
PGhlYWQ+Cis8dGl0bGU+Q3VzdG9tIEVsZW1lbnRzOiBIVE1MIHBhcnNlciBtdXN0IHVzZSB0aGUg
b3duZXIgZG9jdW1lbnQncyBjdXN0b20gZWxlbWVudCByZWdpc3RyeTwvdGl0bGU+Cis8bWV0YSBu
YW1lPSJhdXRob3IiIHRpdGxlPSJSeW9zdWtlIE5pd2EiIGhyZWY9Im1haWx0bzpybml3YUB3ZWJr
aXQub3JnIj4KKzxtZXRhIG5hbWU9ImFzc2VydCIgY29udGVudD0iSFRNTCBwYXJzZXIgbXVzdCB1
c2UgdGhlIG93bmVyIGRvY3VtZW50J3MgY3VzdG9tIGVsZW1lbnQgcmVnaXN0cnkiPgorPGxpbmsg
cmVsPSJoZWxwIiBocmVmPSJodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnLyNjcmVhdGUtYW4t
ZWxlbWVudC1mb3ItdGhlLXRva2VuIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9k
b20uc3BlYy53aGF0d2cub3JnLyNjb25jZXB0LWNyZWF0ZS1lbGVtZW50Ij4KKzxzY3JpcHQgc3Jj
PSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5Pgor
PGRpdiBpZD0ibG9nIj48L2Rpdj4KKzxzY3JpcHQ+CisKK2NsYXNzIE15Q3VzdG9tRWxlbWVudCBl
eHRlbmRzIEhUTUxFbGVtZW50IHsgfTsKK2N1c3RvbUVsZW1lbnRzLmRlZmluZSgnbXktY3VzdG9t
LWVsZW1lbnQnLCBNeUN1c3RvbUVsZW1lbnQpOworCitkb2N1bWVudC53cml0ZSgnPHRlbXBsYXRl
PjxteS1jdXN0b20tZWxlbWVudD48L215LWN1c3RvbS1lbGVtZW50PjwvdGVtcGxhdGU+Jyk7CisK
K3Rlc3QoZnVuY3Rpb24gKCkgeworICAgIHZhciB0ZW1wbGF0ZSA9IGRvY3VtZW50LnF1ZXJ5U2Vs
ZWN0b3IoJ3RlbXBsYXRlJyk7CisgICAgdmFyIGluc3RhbmNlID0gdGVtcGxhdGUuY29udGVudC5m
aXJzdENoaWxkOworCisgICAgYXNzZXJ0X3RydWUoaW5zdGFuY2UgaW5zdGFuY2VvZiBIVE1MRWxl
bWVudCwKKyAgICAgICAgJ0EgY3VzdG9tIGVsZW1lbnQgaW5zaWRlIGEgdGVtcGxhdGUgZWxlbWVu
dCBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIEhUTUxFbGVtZW50Jyk7CisgICAgYXNzZXJ0X2ZhbHNl
KGluc3RhbmNlIGluc3RhbmNlb2YgTXlDdXN0b21FbGVtZW50LAorICAgICAgICAnQSBjdXN0b20g
ZWxlbWVudCBtdXN0IG5vdCBiZSBpbnN0YW50aWF0ZWQgaW5zaWRlIGEgdGVtcGxhdGUgZWxlbWVu
dCB1c2luZyB0aGUgcmVnaXN0cnkgb2YgdGhlIHRlbXBsYXRlIGVsZW1lbnRcJ3Mgb3duZXIgZG9j
dW1lbnQnKTsKKyAgICBhc3NlcnRfZXF1YWxzKGluc3RhbmNlLm93bmVyRG9jdW1lbnQsIHRlbXBs
YXRlLmNvbnRlbnQub3duZXJEb2N1bWVudCwKKyAgICAgICAgJ0N1c3RvbSBlbGVtZW50cyBpbnNp
ZGUgYSB0ZW1wbGF0ZSBtdXN0IHVzZSB0aGUgYXBwcm9wcmlhdGUgdGVtcGxhdGUgY29udGVudHMg
b3duZXIgZG9jdW1lbnQgYXMgdGhlIG93bmVyIGRvY3VtZW50Jyk7CisKK30sICdIVE1MIHBhcnNl
ciBtdXN0IG5vdCBpbnN0YW50aWF0ZSBjdXN0b20gZWxlbWVudHMgaW5zaWRlIHRlbXBsYXRlIGVs
ZW1lbnRzJyk7CisKK3ZhciBpZnJhbWUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpZnJhbWUn
KTsKK2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaWZyYW1lKTsKK2lmcmFtZS5jb250ZW50RG9j
dW1lbnQuYm9keS5pbm5lckhUTUwgPSAnPG15LWN1c3RvbS1lbGVtZW50PjwvbXktY3VzdG9tLWVs
ZW1lbnQ+JzsKKwordGVzdChmdW5jdGlvbiAoKSB7CisgICAgdmFyIGluc3RhbmNlID0gaWZyYW1l
LmNvbnRlbnREb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdteS1jdXN0b20tZWxlbWVudCcpOworCisg
ICAgYXNzZXJ0X3RydWUoaW5zdGFuY2UgaW5zdGFuY2VvZiBpZnJhbWUuY29udGVudFdpbmRvdy5I
VE1MRWxlbWVudCk7CisgICAgYXNzZXJ0X2ZhbHNlKGluc3RhbmNlIGluc3RhbmNlb2YgTXlDdXN0
b21FbGVtZW50KTsKKworfSwgJ0hUTUwgcGFyc2VyIG11c3Qgbm90IHVzZSB0aGUgcmVnaXN0cnkg
b2YgdGhlIG93bmVyIGVsZW1lbnRcJ3MgZG9jdW1lbnQgaW5zaWRlIGFuIGlmcmFtZScpOworCitj
bGFzcyBFbGVtZW50SW5JRnJhbWUgZXh0ZW5kcyBpZnJhbWUuY29udGVudFdpbmRvdy5IVE1MRWxl
bWVudCB7IH07CitpZnJhbWUuY29udGVudFdpbmRvdy5jdXN0b21FbGVtZW50cy5kZWZpbmUoJ2Vs
ZW1lbnQtaW4taWZyYW1lJywgRWxlbWVudEluSUZyYW1lKTsKK2lmcmFtZS5jb250ZW50RG9jdW1l
bnQuYm9keS5pbm5lckhUTUwgPSAnPGVsZW1lbnQtaW4taWZyYW1lPjwvZWxlbWVudC1pbi1pZnJh
bWU+JzsKKwordGVzdChmdW5jdGlvbiAoKSB7CisgICAgdmFyIGluc3RhbmNlID0gaWZyYW1lLmNv
bnRlbnREb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdlbGVtZW50LWluLWlmcmFtZScpOworCisgICAg
YXNzZXJ0X3RydWUoaW5zdGFuY2UgaW5zdGFuY2VvZiBpZnJhbWUuY29udGVudFdpbmRvdy5IVE1M
RWxlbWVudCwgJ0EgY3VzdG9tIGVsZW1lbnQgaW5zaWRlIGFuIGlmcmFtZSBtdXN0IGJlIGFuIGlu
c3RhbmNlIG9mIEhUTUxFbGVtZW50Jyk7CisgICAgYXNzZXJ0X3RydWUoaW5zdGFuY2UgaW5zdGFu
Y2VvZiBFbGVtZW50SW5JRnJhbWUsCisgICAgICAgICdBIGN1c3RvbSBlbGVtZW50IG11c3QgYmUg
aW5zdGFudGlhdGVkIGluc2lkZSBhbiBpZnJhbWUgdXNpbmcgdGhlIHJlZ2lzdHJ5IG9mIHRoZSBj
b250ZW50IGRvY3VtZW50Jyk7CisgICAgYXNzZXJ0X2VxdWFscyhpbnN0YW5jZS5vd25lckRvY3Vt
ZW50LCBpZnJhbWUuY29udGVudERvY3VtZW50LAorICAgICAgICAnVGhlIG93bmVyIGRvY3VtZW50
IG9mIGN1c3RvbSBlbGVtZW50cyBpbnNpZGUgYW4gaWZyYW1lIG11c3QgYmUgdGhlIGNvbnRlbnQg
ZG9jdW1lbnQgb2YgdGhlIGlmcmFtZScpOworCit9LCAnSFRNTCBwYXJzZXIgbXVzdCB1c2UgdGhl
IHJlZ2lzdHJ5IG9mIHRoZSBjb250ZW50IGRvY3VtZW50IGluc2lkZSBhbiBpZnJhbWUnKTsKKwor
ZG9jdW1lbnQud3JpdGUoJzxlbGVtZW50LWluLWlmcmFtZT48L2VsZW1lbnQtaW4taWZyYW1lPicp
OworCit0ZXN0KGZ1bmN0aW9uICgpIHsKKyAgICB2YXIgaW5zdGFuY2UgPSBkb2N1bWVudC5xdWVy
eVNlbGVjdG9yKCdlbGVtZW50LWluLWlmcmFtZScpOworCisgICAgYXNzZXJ0X3RydWUoaW5zdGFu
Y2UgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCk7CisgICAgYXNzZXJ0X2ZhbHNlKGluc3RhbmNlIGlu
c3RhbmNlb2YgRWxlbWVudEluSUZyYW1lKTsKKworfSwgJ0hUTUwgcGFyc2VyIG11c3Qgbm90IGlu
c3RhbnRpYXRlIGEgY3VzdG9tIGVsZW1lbnQgZGVmaW5lZCBpbnNpZGUgYW4gZnJhbWUgaW4gZnJh
bWUgZWxlbWVudFwncyBvd25lciBkb2N1bWVudCcpOworCitkb2N1bWVudC5ib2R5LnJlbW92ZUNo
aWxkKGlmcmFtZSk7CisKK3Rlc3QoZnVuY3Rpb24gKCkgeworICAgIHZhciB3aW5kb3dsZXNzRG9j
dW1lbnQgPSBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQoKTsKKyAg
ICB3aW5kb3dsZXNzRG9jdW1lbnQub3BlbigpOworICAgIHdpbmRvd2xlc3NEb2N1bWVudC53cml0
ZSgnPG15LWN1c3RvbS1lbGVtZW50PjwvbXktY3VzdG9tLWVsZW1lbnQ+Jyk7CisgICAgd2luZG93
bGVzc0RvY3VtZW50LmNsb3NlKCk7CisKKyAgICB2YXIgaW5zdGFuY2UgPSB3aW5kb3dsZXNzRG9j
dW1lbnQucXVlcnlTZWxlY3RvcignbXktY3VzdG9tLWVsZW1lbnQnKTsKKworICAgIGFzc2VydF90
cnVlKGluc3RhbmNlIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpOworICAgIGFzc2VydF9mYWxzZShp
bnN0YW5jZSBpbnN0YW5jZW9mIE15Q3VzdG9tRWxlbWVudCk7CisKK30sICdIVE1MIHBhcnNlciBt
dXN0IHVzZSB0aGUgcmVnaXN0cnkgb2Ygd2luZG93LmRvY3VtZW50IGluIGEgZG9jdW1lbnQgY3Jl
YXRlZCBieSBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQoKScpOwor
Cit0ZXN0KGZ1bmN0aW9uICgpIHsKKyAgICB2YXIgd2luZG93bGVzc0RvY3VtZW50ID0gZG9jdW1l
bnQuaW1wbGVtZW50YXRpb24uY3JlYXRlRG9jdW1lbnQgKCdodHRwOi8vd3d3LnczLm9yZy8xOTk5
L3hodG1sJywgJ2h0bWwnLCBudWxsKTsKKyAgICB3aW5kb3dsZXNzRG9jdW1lbnQuZG9jdW1lbnRF
bGVtZW50LmlubmVySFRNTCA9ICc8bXktY3VzdG9tLWVsZW1lbnQ+PC9teS1jdXN0b20tZWxlbWVu
dD4nOworCisgICAgdmFyIGluc3RhbmNlID0gd2luZG93bGVzc0RvY3VtZW50LnF1ZXJ5U2VsZWN0
b3IoJ215LWN1c3RvbS1lbGVtZW50Jyk7CisgICAgYXNzZXJ0X3RydWUoaW5zdGFuY2UgaW5zdGFu
Y2VvZiBIVE1MRWxlbWVudCk7CisgICAgYXNzZXJ0X2ZhbHNlKGluc3RhbmNlIGluc3RhbmNlb2Yg
TXlDdXN0b21FbGVtZW50KTsKKworfSwgJ0hUTUwgcGFyc2VyIG11c3QgdXNlIHRoZSByZWdpc3Ry
eSBvZiB3aW5kb3cuZG9jdW1lbnQgaW4gYSBkb2N1bWVudCBjcmVhdGVkIGJ5IGRvY3VtZW50Lmlt
cGxlbWVudGF0aW9uLmNyZWF0ZVhIVE1MRG9jdW1lbnQoKScpOworCit0ZXN0KGZ1bmN0aW9uICgp
IHsKKyAgICB2YXIgd2luZG93bGVzc0RvY3VtZW50ID0gbmV3IERvY3VtZW50OworICAgIHdpbmRv
d2xlc3NEb2N1bWVudC5hcHBlbmRDaGlsZCh3aW5kb3dsZXNzRG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgnaHRtbCcpKTsKKyAgICB3aW5kb3dsZXNzRG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmlubmVy
SFRNTCA9ICc8bXktY3VzdG9tLWVsZW1lbnQ+PC9teS1jdXN0b20tZWxlbWVudD4nOworCisgICAg
dmFyIGluc3RhbmNlID0gd2luZG93bGVzc0RvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ215LWN1c3Rv
bS1lbGVtZW50Jyk7CisKKyAgICBhc3NlcnRfdHJ1ZShpbnN0YW5jZSBpbnN0YW5jZW9mIEVsZW1l
bnQpOworICAgIGFzc2VydF9mYWxzZShpbnN0YW5jZSBpbnN0YW5jZW9mIE15Q3VzdG9tRWxlbWVu
dCk7CisKK30sICdIVE1MIHBhcnNlciBtdXN0IHVzZSB0aGUgcmVnaXN0cnkgb2Ygd2luZG93LmRv
Y3VtZW50IGluIGEgZG9jdW1lbnQgY3JlYXRlZCBieSBuZXcgRG9jdW1lbnQnKTsKKworcHJvbWlz
ZV90ZXN0KGZ1bmN0aW9uICgpIHsKKyAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJl
c29sdmUsIHJlamVjdCkgeworICAgICAgICB2YXIgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7
CisgICAgICAgIHhoci5vcGVuKCdHRVQnLCAnLi4vcmVzb3VyY2VzL2VtcHR5LWh0bWwtZG9jdW1l
bnQuaHRtbCcpOworICAgICAgICB4aHIub3ZlcnJpZGVNaW1lVHlwZSgndGV4dC94bWwnKTsKKyAg
ICAgICAgeGhyLm9ubG9hZCA9IGZ1bmN0aW9uICgpIHsgcmVzb2x2ZSh4aHIucmVzcG9uc2VYTUwp
OyB9CisgICAgICAgIHhoci5vbmVycm9yID0gZnVuY3Rpb24gKCkgeyByZWplY3QoJ0ZhaWxlZCB0
byBmZXRjaCB0aGUgZG9jdW1lbnQnKTsgfQorICAgICAgICB4aHIuc2VuZCgpOworICAgIH0pLnRo
ZW4oZnVuY3Rpb24gKGRvYykgeworICAgICAgICBkb2MuZG9jdW1lbnRFbGVtZW50LmlubmVySFRN
TCA9ICc8bXktY3VzdG9tLWVsZW1lbnQ+PC9teS1jdXN0b20tZWxlbWVudD4nOworICAgICAgICB2
YXIgaW5zdGFuY2UgPSBkb2MucXVlcnlTZWxlY3RvcignbXktY3VzdG9tLWVsZW1lbnQnKTsKKyAg
ICAgICAgYXNzZXJ0X3RydWUoaW5zdGFuY2UgaW5zdGFuY2VvZiBFbGVtZW50KTsKKyAgICAgICAg
YXNzZXJ0X2ZhbHNlKGluc3RhbmNlIGluc3RhbmNlb2YgTXlDdXN0b21FbGVtZW50KTsgICAgICAg
IAorICAgIH0pOworfSwgJ0hUTUwgcGFyc2VyIG11c3QgdXNlIHRoZSByZWdpc3RyeSBvZiB3aW5k
b3cuZG9jdW1lbnQgaW4gYSBkb2N1bWVudCBjcmVhdGVkIGJ5IFhNTEh0dHBSZXF1ZXN0Jyk7CisK
Kzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvcGFyc2VyL3czYy1p
bXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
dXN0b20tZWxlbWVudHMvcGFyc2VyL3czYy1pbXBvcnQubG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkxMzI5MjM5
MjE5ZWRiNDczZWRjYTI2NDhiNDNjYzRjNzg2MzM5YWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9w
YXJzZXIvdzNjLWltcG9ydC5sb2cKQEAgLTAsMCArMSwyNCBAQAorVGhlIHRlc3RzIGluIHRoaXMg
ZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBOT1Qg
bW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNyZWF0ZSBh
IHB1bGwgcmVxdWVzdCBvbiB0aGUgVzNDIENTUyBvciBXUFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0
aHViLmNvbS93M2MvY3Nzd2ctdGVzdAorCWh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzCisKK1RoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMg
aW4gV2ViS2l0IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmls
ZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4
ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05v
bmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQorTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9wYXJzZXIvcGFyc2VyLWNv
bnN0cnVjdHMtY3VzdG9tLWVsZW1lbnQtaW4tZG9jdW1lbnQtd3JpdGUuaHRtbAorL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL3BhcnNl
ci9wYXJzZXItY29uc3RydWN0cy1jdXN0b20tZWxlbWVudC1zeW5jaHJvbm91c2x5Lmh0bWwKKy9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50
cy9wYXJzZXIvcGFyc2VyLWNvbnN0cnVjdHMtY3VzdG9tLWVsZW1lbnRzLmh0bWwKKy9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9wYXJz
ZXIvcGFyc2VyLWZhbGxzYmFjay10by11bmtub3duLWVsZW1lbnQuaHRtbAorL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL3BhcnNlci9w
YXJzZXItc2V0cy1hdHRyaWJ1dGVzLWFuZC1jaGlsZHJlbi5odG1sCisvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvcGFyc2VyL3BhcnNl
ci11c2VzLWNvbnN0cnVjdGVkLWVsZW1lbnQuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL3BhcnNlci9wYXJzZXItdXNlcy1y
ZWdpc3RyeS1vZi1vd25lci1kb2N1bWVudC5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9yZWFjdGlvbnMv
RE9NVG9rZW5MaXN0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL3JlYWN0aW9ucy9ET01Ub2tlbkxpc3QtZXhw
ZWN0ZWQudHh0CmluZGV4IDAxNTI2N2U5ODA4OGM2ZTVkOWJiMzYwZjM4ODBiNDNkOGFkOGI5MTQu
Ljk3NDg2MjdiZTQ2MWY3ZDVlOGIzZGE1YWE1ZjY3MDFkZDNjNGM4M2QgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRz
L3JlYWN0aW9ucy9ET01Ub2tlbkxpc3QtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL3JlYWN0aW9ucy9E
T01Ub2tlbkxpc3QtZXhwZWN0ZWQudHh0CkBAIC02LDcgKzYsNyBAQCBQQVNTIGFkZCBvbiBET01U
b2tlbkxpc3QgbXVzdCBub3QgZW5xdWV1ZSBhbiBhdHRyaWJ1dGVDaGFuZ2VkIHJlYWN0aW9uIHdo
ZW4gYWRkaQogUEFTUyBhZGQgb24gRE9NVG9rZW5MaXN0IG11c3QgZW5xdWV1ZSBleGFjdGx5IG9u
ZSBhdHRyaWJ1dGVDaGFuZ2VkIHJlYWN0aW9uIHdoZW4gYWRkaW5nIG11bHRpcGxlIHZhbHVlcyB0
byBhbiBhdHRyaWJ1dGUgCiBQQVNTIHJlbW92ZSBvbiBET01Ub2tlbkxpc3QgbXVzdCBlbnF1ZXVl
IGFuIGF0dHJpYnV0ZUNoYW5nZWQgcmVhY3Rpb24gd2hlbiByZW1vdmluZyBhIHZhbHVlIGZyb20g
YW4gYXR0cmlidXRlIAogUEFTUyByZW1vdmUgb24gRE9NVG9rZW5MaXN0IG11c3QgZW5xdWV1ZSBl
eGFjdGx5IG9uZSBhdHRyaWJ1dGVDaGFuZ2VkIHJlYWN0aW9uIHdoZW4gcmVtb3ZpbmcgbXVsdGlw
bGUgdmFsdWVzIHRvIGFuIGF0dHJpYnV0ZSAKLUZBSUwgcmVtb3ZlIG9uIERPTVRva2VuTGlzdCBt
dXN0IG5vdCBlbnF1ZXVlIGFuIGF0dHJpYnV0ZUNoYW5nZWQgcmVhY3Rpb24gd2hlbiByZW1vdmlu
ZyBhIG5vbi1leGlzdGVudCB2YWx1ZSBmcm9tIGFuIGF0dHJpYnV0ZSBhc3NlcnRfYXJyYXlfZXF1
YWxzOiBsZW5ndGhzIGRpZmZlciwgZXhwZWN0ZWQgMCBnb3QgMQorUEFTUyByZW1vdmUgb24gRE9N
VG9rZW5MaXN0IG11c3QgZW5xdWV1ZSBhbiBhdHRyaWJ1dGVDaGFuZ2VkIHJlYWN0aW9uIGV2ZW4g
d2hlbiByZW1vdmluZyBhIG5vbi1leGlzdGVudCB2YWx1ZSBmcm9tIGFuIGF0dHJpYnV0ZSAKIFBB
U1MgcmVtb3ZlIG9uIERPTVRva2VuTGlzdCBtdXN0IG5vdCBlbnF1ZXVlIGFuIGF0dHJpYnV0ZUNo
YW5nZWQgcmVhY3Rpb24gd2hlbiByZW1vdmluZyBhIHZhbHVlIGZyb20gYW4gdW5vYnNlcnZlZCBh
dHRyaWJ1dGUgCiBQQVNTIHRvZ2dsZSBvbiBET01Ub2tlbkxpc3QgbXVzdCBlbnF1ZXVlIGFuIGF0
dHJpYnV0ZUNoYW5nZWQgcmVhY3Rpb24gd2hlbiBhZGRpbmcgYSB2YWx1ZSB0byBhbiBhdHRyaWJ1
dGUgCiBQQVNTIHRvZ2dsZSBvbiBET01Ub2tlbkxpc3QgbXVzdCBlbnF1ZXVlIGFuIGF0dHJpYnV0
ZUNoYW5nZWQgcmVhY3Rpb24gd2hlbiByZW1vdmluZyBhIHZhbHVlIGZyb20gYW4gYXR0cmlidXRl
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jdXN0b20tZWxlbWVudHMvcmVhY3Rpb25zL0RPTVRva2VuTGlzdC5odG1sIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvcmVhY3Rp
b25zL0RPTVRva2VuTGlzdC5odG1sCmluZGV4IDM4MDA2ZDNlNzdkOWU4ZWFiNzM0NzU0MzMyZjhh
NjAzYmY4OGQ5OWIuLmU4YzI2ZGY0OThmZmFmYzQ3M2NlOTBkZmI4NmVjNmNkMjM2NTEzMDUgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Vz
dG9tLWVsZW1lbnRzL3JlYWN0aW9ucy9ET01Ub2tlbkxpc3QuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9yZWFjdGlv
bnMvRE9NVG9rZW5MaXN0Lmh0bWwKQEAgLTg5LDggKzg5LDEwIEBAIHRlc3QoZnVuY3Rpb24gKCkg
ewogICAgIGluc3RhbmNlLnNldEF0dHJpYnV0ZSgnY2xhc3MnLCAnaGVsbG8gd29ybGQnKTsKICAg
ICBhc3NlcnRfYXJyYXlfZXF1YWxzKGVsZW1lbnQudGFrZUxvZygpLnR5cGVzKCksIFsnY29uc3Ry
dWN0ZWQnLCAnYXR0cmlidXRlQ2hhbmdlZCddKTsKICAgICBpbnN0YW5jZS5jbGFzc0xpc3QucmVt
b3ZlKCdmb28nKTsKLSAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGVsZW1lbnQudGFrZUxvZygpLnR5
cGVzKCksIFtdKTsKLX0sICdyZW1vdmUgb24gRE9NVG9rZW5MaXN0IG11c3Qgbm90IGVucXVldWUg
YW4gYXR0cmlidXRlQ2hhbmdlZCByZWFjdGlvbiB3aGVuIHJlbW92aW5nIGEgbm9uLWV4aXN0ZW50
IHZhbHVlIGZyb20gYW4gYXR0cmlidXRlJyk7CisgICAgdmFyIGxvZ0VudHJpZXMgPSBlbGVtZW50
LnRha2VMb2coKTsKKyAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZ0VudHJpZXMudHlwZXMoKSwg
WydhdHRyaWJ1dGVDaGFuZ2VkJ10pOworICAgIGFzc2VydF9hdHRyaWJ1dGVfbG9nX2VudHJ5KGxv
Z0VudHJpZXMubGFzdCgpLCB7bmFtZTogJ2NsYXNzJywgb2xkVmFsdWU6ICdoZWxsbyB3b3JsZCcs
IG5ld1ZhbHVlOiAnaGVsbG8gd29ybGQnLCBuYW1lc3BhY2U6IG51bGx9KTsKK30sICdyZW1vdmUg
b24gRE9NVG9rZW5MaXN0IG11c3QgZW5xdWV1ZSBhbiBhdHRyaWJ1dGVDaGFuZ2VkIHJlYWN0aW9u
IGV2ZW4gd2hlbiByZW1vdmluZyBhIG5vbi1leGlzdGVudCB2YWx1ZSBmcm9tIGFuIGF0dHJpYnV0
ZScpOwogCiB0ZXN0KGZ1bmN0aW9uICgpIHsKICAgICB2YXIgZWxlbWVudCA9IGRlZmluZV9uZXdf
Y3VzdG9tX2VsZW1lbnQoWyd0aXRsZSddKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL3JlYWN0aW9ucy9Eb2N1
bWVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2N1c3RvbS1lbGVtZW50cy9yZWFjdGlvbnMvRG9jdW1lbnQtZXhwZWN0ZWQudHh0Cmlu
ZGV4IDZhMjg1MGIyNjA5ODhlMzAxNWI5MjA0NGYwZTA5MzRmNTQwNmQ3ZjUuLjk3N2RjYTZkNDY4
ZWY5ZWY3NmMwZDQwNWE4ZGQ3ZTNjMGM5MGIwZGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL3JlYWN0aW9ucy9E
b2N1bWVudC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvcmVhY3Rpb25zL0RvY3VtZW50LWV4cGVjdGVk
LnR4dApAQCAtMSw1ICsxLDYgQEAKIAotRkFJTCBpbXBvcnROb2RlIG9uIERvY3VtZW50IG11c3Qg
Y29uc3RydWN0IGEgbmV3IGN1c3RvbSBlbGVtZW50IHdoZW4gaW1wb3J0aW5nIGEgY3VzdG9tIGVs
ZW1lbnQgYXNzZXJ0X2FycmF5X2VxdWFsczogbGVuZ3RocyBkaWZmZXIsIGV4cGVjdGVkIDEgZ290
IDAKK1BBU1MgaW1wb3J0Tm9kZSBvbiBEb2N1bWVudCBtdXN0IG5vdCBjb25zdHJ1Y3QgYSBuZXcg
Y3VzdG9tIGVsZW1lbnQgd2hlbiBpbXBvcnRpbmcgYSBjdXN0b20gZWxlbWVudCBpbnRvIGEgd2lu
ZG93LWxlc3MgZG9jdW1lbnQgCitQQVNTIGltcG9ydE5vZGUgb24gRG9jdW1lbnQgbXVzdCBjb25z
dHJ1Y3QgYSBuZXcgY3VzdG9tIGVsZW1lbnQgd2hlbiBpbXBvcnRpbmcgYSBjdXN0b20gZWxlbWVu
dCBmcm9tIGEgdGVtcGxhdGUgCiBQQVNTIGFkb3B0Tm9kZSBvbiBEb2N1bWVudCBtdXN0IGVucXVl
dWUgYW4gYWRvcHRlZCByZWFjdGlvbiB3aGVuIGltcG9ydGluZyBhIGN1c3RvbSBlbGVtZW50IAog
UEFTUyBleGVjQ29tbWFuZCBvbiBEb2N1bWVudCBtdXN0IGVucXVldWUgYSBkaXNjb25uZWN0ZWQg
cmVhY3Rpb24gd2hlbiBkZWxldGluZyBhIGN1c3RvbSBlbGVtZW50IGZyb20gYSBjb250ZW50ZWRp
dGFibGUgZWxlbWVudCAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvcmVhY3Rpb25zL0RvY3VtZW50Lmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVt
ZW50cy9yZWFjdGlvbnMvRG9jdW1lbnQuaHRtbAppbmRleCA0YmJhOTFlNDU3MzMxNTE4NzM4MWZh
MTg1MDZkZWQxM2NiYmUxMjM4Li4xM2YwZDgxYjllYWM0NGNmMTAyNmM4YjYzY2UyMTVmMDQwNGI1
NWRiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2N1c3RvbS1lbGVtZW50cy9yZWFjdGlvbnMvRG9jdW1lbnQuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9yZWFj
dGlvbnMvRG9jdW1lbnQuaHRtbApAQCAtMjMsMTEgKzIzLDE3IEBAIHRlc3QoZnVuY3Rpb24gKCkg
ewogICAgIHZhciBuZXdEb2MgPSBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9j
dW1lbnQoKTsKICAgICBuZXdEb2MuaW1wb3J0Tm9kZShpbnN0YW5jZSk7CiAKLSAgICB2YXIgbG9n
RW50cmllcyA9IGVsZW1lbnQudGFrZUxvZygpOwotICAgIGFzc2VydF9hcnJheV9lcXVhbHMobG9n
RW50cmllcy50eXBlcygpLCBbJ2NvbnN0cnVjdGVkJ10pOwotICAgIGFzc2VydF9lcXVhbHMobG9n
RW50cmllcy5sYXN0KCkub2xkRG9jdW1lbnQsIGRvY3VtZW50KTsKLSAgICBhc3NlcnRfZXF1YWxz
KGxvZ0VudHJpZXMubGFzdCgpLm5ld0RvY3VtZW50LCBuZXdEb2MpOwotfSwgJ2ltcG9ydE5vZGUg
b24gRG9jdW1lbnQgbXVzdCBjb25zdHJ1Y3QgYSBuZXcgY3VzdG9tIGVsZW1lbnQgd2hlbiBpbXBv
cnRpbmcgYSBjdXN0b20gZWxlbWVudCcpOworICAgIGFzc2VydF9hcnJheV9lcXVhbHMoZWxlbWVu
dC50YWtlTG9nKCkudHlwZXMoKSwgW10pOworfSwgJ2ltcG9ydE5vZGUgb24gRG9jdW1lbnQgbXVz
dCBub3QgY29uc3RydWN0IGEgbmV3IGN1c3RvbSBlbGVtZW50IHdoZW4gaW1wb3J0aW5nIGEgY3Vz
dG9tIGVsZW1lbnQgaW50byBhIHdpbmRvdy1sZXNzIGRvY3VtZW50Jyk7CisKK3Rlc3QoZnVuY3Rp
b24gKCkgeworICAgIHZhciBlbGVtZW50ID0gZGVmaW5lX25ld19jdXN0b21fZWxlbWVudCgpOwor
ICAgIHZhciB0ZW1wbGF0ZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RlbXBsYXRlJyk7Cisg
ICAgdGVtcGxhdGUuaW5uZXJIVE1MID0gYDwke2VsZW1lbnQubmFtZX0+PC8ke2VsZW1lbnQubmFt
ZX0+YDsKKyAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGVsZW1lbnQudGFrZUxvZygpLnR5cGVzKCks
IFtdKTsKKyAgICBkb2N1bWVudC5pbXBvcnROb2RlKHRlbXBsYXRlLmNvbnRlbnQsIHRydWUpOwor
ICAgIGFzc2VydF9hcnJheV9lcXVhbHMoZWxlbWVudC50YWtlTG9nKCkudHlwZXMoKSwgWydjb25z
dHJ1Y3RlZCddKTsKK30sICdpbXBvcnROb2RlIG9uIERvY3VtZW50IG11c3QgY29uc3RydWN0IGEg
bmV3IGN1c3RvbSBlbGVtZW50IHdoZW4gaW1wb3J0aW5nIGEgY3VzdG9tIGVsZW1lbnQgZnJvbSBh
IHRlbXBsYXRlJyk7CiAKIHRlc3QoZnVuY3Rpb24gKCkgewogICAgIHZhciBlbGVtZW50ID0gZGVm
aW5lX25ld19jdXN0b21fZWxlbWVudCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvcmVhY3Rpb25zL1Jhbmdl
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3VzdG9tLWVsZW1lbnRzL3JlYWN0aW9ucy9SYW5nZS1leHBlY3RlZC50eHQKaW5kZXggNjhl
ZWY2YzYzYmFiZGJjNzdjNDc2YmI3MjllN2ZiNjU1ODI4NGM3Zi4uNDFlZmQxZGNiNjdhZTIzZDg3
ODkyMGE2MjRlYTcwMGE0Njk2OGU4OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvcmVhY3Rpb25zL1JhbmdlLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2N1c3RvbS1lbGVtZW50cy9yZWFjdGlvbnMvUmFuZ2UtZXhwZWN0ZWQudHh0CkBAIC04LDYg
KzgsNSBAQCBQQVNTIGluc2VydE5vZGUgb24gUmFuZ2UgbXVzdCBlbnF1ZXVlIGEgY29ubmVjdGVk
IHJlYWN0aW9uCiBQQVNTIGluc2VydE5vZGUgb24gUmFuZ2UgbXVzdCBlbnF1ZXVlIGEgZGlzY29u
bmVjdGVkIHJlYWN0aW9uLCBhbiBhZG9wdGVkIHJlYWN0aW9uLCBhbmQgYSBjb25uZWN0ZWQgcmVh
Y3Rpb24gd2hlbiB0aGUgY3VzdG9tIGVsZW1lbnQgd2FzIGluIGFub3RoZXIgZG9jdW1lbnQgCiBQ
QVNTIHN1cnJvdW5kQ29udGVudHMgb24gUmFuZ2UgbXVzdCBlbnF1ZXVlIGEgY29ubmVjdGVkIHJl
YWN0aW9uIAogUEFTUyBzdXJyb3VuZENvbnRlbnRzIG9uIFJhbmdlIG11c3QgZW5xdWV1ZSBhIGRp
c2Nvbm5lY3RlZCByZWFjdGlvbiwgYW4gYWRvcHRlZCByZWFjdGlvbiwgYW5kIGEgY29ubmVjdGVk
IHJlYWN0aW9uIHdoZW4gdGhlIGN1c3RvbSBlbGVtZW50IHdhcyBpbiBhbm90aGVyIGRvY3VtZW50
IAotRkFJTCBjcmVhdGVDb250ZXh0dWFsRnJhZ21lbnQgb24gUmFuZ2UgbXVzdCBjb25zdHJ1Y3Qg
YSBjdXN0b20gZWxlbWVudCBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJjbGFzcyBDdXN0b21FbGVtZW50IGV4dGVuZHMgSFRNTEVsZW1lbnQgewotICAgICAgICBj
b25zdHJ1Li4uIiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBPYmplY3RdIgorRkFJ
TCBjcmVhdGVDb250ZXh0dWFsRnJhZ21lbnQgb24gUmFuZ2UgbXVzdCBjb25zdHJ1Y3QgYSBjdXN0
b20gZWxlbWVudCBhc3NlcnRfYXJyYXlfZXF1YWxzOiBsZW5ndGhzIGRpZmZlciwgZXhwZWN0ZWQg
MiBnb3QgMQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9yZWFjdGlvbnMvcmVzb3VyY2VzL3JlYWN0aW9ucy5q
cyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVs
ZW1lbnRzL3JlYWN0aW9ucy9yZXNvdXJjZXMvcmVhY3Rpb25zLmpzCmluZGV4IDFkNmM0OGU4Njhi
OGI1MzE0ZjFlYWQ5OTllMDYxZmZmM2IxZTMxNTAuLmIwNTQzYmJkNDI4ZGYzNDYwZmUyNDA2OGQ3
OTRiZjIyODBjN2Q1OGMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL3JlYWN0aW9ucy9yZXNvdXJjZXMvcmVhY3Rp
b25zLmpzCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3VzdG9tLWVsZW1lbnRzL3JlYWN0aW9ucy9yZXNvdXJjZXMvcmVhY3Rpb25zLmpzCkBAIC03Myw3
ICs3Myw3IEBAIGZ1bmN0aW9uIHRlc3RQYXJzaW5nTWFya3VwKHRlc3RGdW5jdGlvbiwgbmFtZSkg
ewogICAgICAgICB2YXIgZWxlbWVudCA9IGRlZmluZV9uZXdfY3VzdG9tX2VsZW1lbnQoWydpZCdd
KTsKICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhlbGVtZW50LnRha2VMb2coKS50eXBlcygp
LCBbXSk7CiAgICAgICAgIHZhciBpbnN0YW5jZSA9IHRlc3RGdW5jdGlvbihkb2N1bWVudCwgYDwk
e2VsZW1lbnQubmFtZX0gaWQ9ImhlbGxvIiBjbGFzcz0iZm9vIj48LyR7ZWxlbWVudC5uYW1lfT5g
KTsKLSAgICAgICAgYXNzZXJ0X2VxdWFscyhPYmplY3QuZ2V0UHJvdG90eXBlT2YoaW5zdGFuY2Uu
cXVlcnlTZWxlY3RvcihlbGVtZW50Lm5hbWUpKSwgZWxlbWVudC5jbGFzcyk7CisgICAgICAgIGFz
c2VydF9lcXVhbHMoT2JqZWN0LmdldFByb3RvdHlwZU9mKGluc3RhbmNlLnF1ZXJ5U2VsZWN0b3Io
ZWxlbWVudC5uYW1lKSksIGVsZW1lbnQuY2xhc3MucHJvdG90eXBlKTsKICAgICAgICAgdmFyIGxv
Z0VudHJpZXMgPSBlbGVtZW50LnRha2VMb2coKTsKICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFs
cyhsb2dFbnRyaWVzLnR5cGVzKCksIFsnY29uc3RydWN0ZWQnLCAnYXR0cmlidXRlQ2hhbmdlZCdd
KTsKICAgICAgICAgYXNzZXJ0X2F0dHJpYnV0ZV9sb2dfZW50cnkobG9nRW50cmllc1sxXSwge25h
bWU6ICdpZCcsIG9sZFZhbHVlOiBudWxsLCBuZXdWYWx1ZTogJ2hlbGxvJywgbmFtZXNwYWNlOiBu
dWxsfSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2N1c3RvbS1lbGVtZW50cy91cGdyYWRpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvdXBncmFk
aW5nLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MTA0ZTA5MGEyMzQyOWE4MWY2M2NkOGIwYWI3
MTAyNGM5NjUwMDc2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvdXBncmFkaW5nLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDI3IEBACisKK1BBU1MgQ3JlYXRpbmcgYW4gZWxlbWVudCBpbiB0aGUgZG9j
dW1lbnQgb2YgdGhlIHRlbXBsYXRlIGVsZW1lbnRzIG11c3Qgbm90IGVucXVldWUgYSBjdXN0b20g
ZWxlbWVudCB1cGdyYWRlIHJlYWN0aW9uIGJlY2F1c2UgdGhlIGRvY3VtZW50IGRvZXMgbm90IGhh
dmUgYSBicm93c2luZyBjb250ZXh0IAorUEFTUyBDcmVhdGluZyBhbiBlbGVtZW50IGluIHRoZSBk
b2N1bWVudCBvZiB0aGUgdGVtcGxhdGUgZWxlbWVudHMgYW5kIGluc2VydGluZyBpbnRvIHRoZSBk
b2N1bWVudCBtdXN0IG5vdCBlbnF1ZXVlIGEgY3VzdG9tIGVsZW1lbnQgdXBncmFkZSByZWFjdGlv
biAKK1BBU1MgQ3JlYXRpbmcgYW4gZWxlbWVudCBpbiB0aGUgZG9jdW1lbnQgb2YgdGhlIHRlbXBs
YXRlIGVsZW1lbnRzIGFuZCBhZG9wdGluZyBiYWNrIHRvIGEgZG9jdW1lbnQgd2l0aCBicm93c2lu
ZyBjb250ZXh0IG11c3QgZW5xdWV1ZSBhIGN1c3RvbSBlbGVtZW50IHVwZ3JhZGUgcmVhY3Rpb24g
CitQQVNTIENyZWF0aW5nIGFuIGVsZW1lbnQgaW4gYSBuZXcgZG9jdW1lbnQgbXVzdCBub3QgZW5x
dWV1ZSBhIGN1c3RvbSBlbGVtZW50IHVwZ3JhZGUgcmVhY3Rpb24gYmVjYXVzZSB0aGUgZG9jdW1l
bnQgZG9lcyBub3QgaGF2ZSBhIGJyb3dzaW5nIGNvbnRleHQgCitQQVNTIENyZWF0aW5nIGFuIGVs
ZW1lbnQgaW4gYSBuZXcgZG9jdW1lbnQgYW5kIGluc2VydGluZyBpbnRvIHRoZSBkb2N1bWVudCBt
dXN0IG5vdCBlbnF1ZXVlIGEgY3VzdG9tIGVsZW1lbnQgdXBncmFkZSByZWFjdGlvbiAKK1BBU1Mg
Q3JlYXRpbmcgYW4gZWxlbWVudCBpbiBhIG5ldyBkb2N1bWVudCBhbmQgYWRvcHRpbmcgYmFjayB0
byBhIGRvY3VtZW50IHdpdGggYnJvd3NpbmcgY29udGV4dCBtdXN0IGVucXVldWUgYSBjdXN0b20g
ZWxlbWVudCB1cGdyYWRlIHJlYWN0aW9uIAorUEFTUyBDcmVhdGluZyBhbiBlbGVtZW50IGluIGEg
Y2xvbmVkIGRvY3VtZW50IG11c3Qgbm90IGVucXVldWUgYSBjdXN0b20gZWxlbWVudCB1cGdyYWRl
IHJlYWN0aW9uIGJlY2F1c2UgdGhlIGRvY3VtZW50IGRvZXMgbm90IGhhdmUgYSBicm93c2luZyBj
b250ZXh0IAorUEFTUyBDcmVhdGluZyBhbiBlbGVtZW50IGluIGEgY2xvbmVkIGRvY3VtZW50IGFu
ZCBpbnNlcnRpbmcgaW50byB0aGUgZG9jdW1lbnQgbXVzdCBub3QgZW5xdWV1ZSBhIGN1c3RvbSBl
bGVtZW50IHVwZ3JhZGUgcmVhY3Rpb24gCitQQVNTIENyZWF0aW5nIGFuIGVsZW1lbnQgaW4gYSBj
bG9uZWQgZG9jdW1lbnQgYW5kIGFkb3B0aW5nIGJhY2sgdG8gYSBkb2N1bWVudCB3aXRoIGJyb3dz
aW5nIGNvbnRleHQgbXVzdCBlbnF1ZXVlIGEgY3VzdG9tIGVsZW1lbnQgdXBncmFkZSByZWFjdGlv
biAKK1BBU1MgQ3JlYXRpbmcgYW4gZWxlbWVudCBpbiBhIGRvY3VtZW50IGNyZWF0ZWQgYnkgY3Jl
YXRlSFRNTERvY3VtZW50IG11c3Qgbm90IGVucXVldWUgYSBjdXN0b20gZWxlbWVudCB1cGdyYWRl
IHJlYWN0aW9uIGJlY2F1c2UgdGhlIGRvY3VtZW50IGRvZXMgbm90IGhhdmUgYSBicm93c2luZyBj
b250ZXh0IAorUEFTUyBDcmVhdGluZyBhbiBlbGVtZW50IGluIGEgZG9jdW1lbnQgY3JlYXRlZCBi
eSBjcmVhdGVIVE1MRG9jdW1lbnQgYW5kIGluc2VydGluZyBpbnRvIHRoZSBkb2N1bWVudCBtdXN0
IG5vdCBlbnF1ZXVlIGEgY3VzdG9tIGVsZW1lbnQgdXBncmFkZSByZWFjdGlvbiAKK1BBU1MgQ3Jl
YXRpbmcgYW4gZWxlbWVudCBpbiBhIGRvY3VtZW50IGNyZWF0ZWQgYnkgY3JlYXRlSFRNTERvY3Vt
ZW50IGFuZCBhZG9wdGluZyBiYWNrIHRvIGEgZG9jdW1lbnQgd2l0aCBicm93c2luZyBjb250ZXh0
IG11c3QgZW5xdWV1ZSBhIGN1c3RvbSBlbGVtZW50IHVwZ3JhZGUgcmVhY3Rpb24gCitQQVNTIENy
ZWF0aW5nIGFuIGVsZW1lbnQgaW4gYW4gSFRNTCBkb2N1bWVudCBjcmVhdGVkIGJ5IGNyZWF0ZURv
Y3VtZW50IG11c3Qgbm90IGVucXVldWUgYSBjdXN0b20gZWxlbWVudCB1cGdyYWRlIHJlYWN0aW9u
IGJlY2F1c2UgdGhlIGRvY3VtZW50IGRvZXMgbm90IGhhdmUgYSBicm93c2luZyBjb250ZXh0IAor
UEFTUyBDcmVhdGluZyBhbiBlbGVtZW50IGluIGFuIEhUTUwgZG9jdW1lbnQgY3JlYXRlZCBieSBj
cmVhdGVEb2N1bWVudCBhbmQgaW5zZXJ0aW5nIGludG8gdGhlIGRvY3VtZW50IG11c3Qgbm90IGVu
cXVldWUgYSBjdXN0b20gZWxlbWVudCB1cGdyYWRlIHJlYWN0aW9uIAorUEFTUyBDcmVhdGluZyBh
biBlbGVtZW50IGluIGFuIEhUTUwgZG9jdW1lbnQgY3JlYXRlZCBieSBjcmVhdGVEb2N1bWVudCBh
bmQgYWRvcHRpbmcgYmFjayB0byBhIGRvY3VtZW50IHdpdGggYnJvd3NpbmcgY29udGV4dCBtdXN0
IGVucXVldWUgYSBjdXN0b20gZWxlbWVudCB1cGdyYWRlIHJlYWN0aW9uIAorUEFTUyBDcmVhdGlu
ZyBhbiBlbGVtZW50IGluIGFuIEhUTUwgZG9jdW1lbnQgZmV0Y2hlZCBieSBYSFIgbXVzdCBub3Qg
ZW5xdWV1ZSBhIGN1c3RvbSBlbGVtZW50IHVwZ3JhZGUgcmVhY3Rpb24gYmVjYXVzZSB0aGUgZG9j
dW1lbnQgZG9lcyBub3QgaGF2ZSBhIGJyb3dzaW5nIGNvbnRleHQgCitQQVNTIENyZWF0aW5nIGFu
IGVsZW1lbnQgaW4gYW4gSFRNTCBkb2N1bWVudCBmZXRjaGVkIGJ5IFhIUiBhbmQgaW5zZXJ0aW5n
IGludG8gdGhlIGRvY3VtZW50IG11c3Qgbm90IGVucXVldWUgYSBjdXN0b20gZWxlbWVudCB1cGdy
YWRlIHJlYWN0aW9uIAorUEFTUyBDcmVhdGluZyBhbiBlbGVtZW50IGluIGFuIEhUTUwgZG9jdW1l
bnQgZmV0Y2hlZCBieSBYSFIgYW5kIGFkb3B0aW5nIGJhY2sgdG8gYSBkb2N1bWVudCB3aXRoIGJy
b3dzaW5nIGNvbnRleHQgbXVzdCBlbnF1ZXVlIGEgY3VzdG9tIGVsZW1lbnQgdXBncmFkZSByZWFj
dGlvbiAKK1BBU1MgQ3JlYXRpbmcgYW4gZWxlbWVudCBpbiB0aGUgZG9jdW1lbnQgb2YgYW4gaWZy
YW1lIG11c3Qgbm90IGVucXVldWUgYSBjdXN0b20gZWxlbWVudCB1cGdyYWRlIHJlYWN0aW9uIGlm
IHRoZXJlIGlzIG5vIG1hdGNoaW5nIGRlZmluaXRpb24gCitQQVNTIENyZWF0aW5nIGFuIGVsZW1l
bnQgaW4gdGhlIGRvY3VtZW50IG9mIGFuIGlmcmFtZSBtdXN0IGVucXVldWUgYSBjdXN0b20gZWxl
bWVudCB1cGdyYWRlIHJlYWN0aW9uIGlmIHRoZXJlIGlzIGEgbWF0Y2hpbmcgZGVmaW5pdGlvbiAK
K1BBU1MgImRlZmluZSIgaW4gdGhlIGRvY3VtZW50IG9mIGFuIGlmcmFtZSBtdXN0IG5vdCBlbnF1
ZXVlIGEgY3VzdG9tIGVsZW1lbnQgdXBncmFkZSByZWFjdGlvbiBvbiBhIGRpc2Nvbm5lY3RlZCB1
bnJlc29sdmVkIGN1c3RvbSBlbGVtZW50IAorUEFTUyBJbnNlcnRpbmcgYW4gdW5yZXNvbHZlZCBj
dXN0b20gZWxlbWVudCBpbnRvIHRoZSBkb2N1bWVudCBvZiBhbiBpZnJhbWUgbXVzdCBlbnF1ZXVl
IGEgY3VzdG9tIGVsZW1lbnQgdXBncmFkZSByZWFjdGlvbiAKK1BBU1MgImRlZmluZSIgaW4gdGhl
IGRvY3VtZW50IG9mIGFuIGlmcmFtZSBtdXN0IGVucXVldWUgYSBjdXN0b20gZWxlbWVudCB1cGdy
YWRlIHJlYWN0aW9uIG9uIGEgY29ubmVjdGVkIHVucmVzb2x2ZWQgY3VzdG9tIGVsZW1lbnQgCitQ
QVNTIEFkb3B0aW5nIChhbmQgbGVhdmluZyBkaXNjb25uY2V0ZWQpIGFuIHVucmVzb2x2ZWQgY3Vz
dG9tIGVsZW1lbnQgaW50byB0aGUgZG9jdW1lbnQgb2YgYW4gaWZyYW1lIG11c3Qgbm90IGVucXVl
dWUgYSBjdXN0b20gZWxlbWVudCB1cGdyYWRlIHJlYWN0aW9uIAorUEFTUyBBZG9wdGluZyBhbmQg
aW5zZXJ0aW5nIGFuIHVucmVzb2x2ZWQgY3VzdG9tIGVsZW1lbnQgaW50byB0aGUgZG9jdW1lbnQg
b2YgYW4gaWZyYW1lIG11c3QgZW5xdWV1ZSBhIGN1c3RvbSBlbGVtZW50IHVwZ3JhZGUgcmVhY3Rp
b24gCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3VzdG9tLWVsZW1lbnRzL3VwZ3JhZGluZy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvdXBncmFkaW5nLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYWFlYTBjYjRhMDIxMTY5NjMxYzJiNTBkMGY1OTdjYjcyN2EwYjYxNAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3VzdG9tLWVsZW1lbnRzL3VwZ3JhZGluZy5odG1sCkBAIC0wLDAgKzEsMTkwIEBACis8IURP
Q1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8dGl0bGU+Q3VzdG9tIEVsZW1lbnRzOiBFbnF1
ZXVlIGEgY3VzdG9tIGVsZW1lbnQgdXBncmFkZSByZWFjdGlvbjwvdGl0bGU+Cis8bWV0YSBuYW1l
PSJhdXRob3IiIHRpdGxlPSJSeW9zdWtlIE5pd2EiIGhyZWY9Im1haWx0bzpybml3YUB3ZWJraXQu
b3JnIj4KKzxtZXRhIG5hbWU9ImFzc2VydCIgY29udGVudD0iRW5xdWV1ZSBhIGN1c3RvbSBlbGVt
ZW50IHVwZ3JhZGUgcmVhY3Rpb24gbXVzdCB1cGdyYWRlIGEgY3VzdG9tIGVsZW1lbnQiPgorPGxp
bmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2RvbS5zcGVjLndoYXR3Zy5vcmcvI2NvbmNlcHQt
Y3JlYXRlLWVsZW1lbnQiPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2h0bWwuc3Bl
Yy53aGF0d2cub3JnL211bHRpcGFnZS9zY3JpcHRpbmcuaHRtbCNjb25jZXB0LXRyeS11cGdyYWRl
Ij4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9t
dWx0aXBhZ2Uvc2NyaXB0aW5nLmh0bWwjZW5xdWV1ZS1hLWN1c3RvbS1lbGVtZW50LXVwZ3JhZGUt
cmVhY3Rpb24iPgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9jdXN0b20tZWxlbWVudHMtaGVscGVycy5qcyI+
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9ImxvZyI+PC9kaXY+Cis8c2NyaXB0
PgorCitjbGFzcyBQcmVkZWZpbmVkQ3VzdG9tRWxlbWVudCBleHRlbmRzIEhUTUxFbGVtZW50IHt9
CitjdXN0b21FbGVtZW50cy5kZWZpbmUoJ3ByZWRlZmluZWQtY3VzdG9tLWVsZW1lbnQnLCBQcmVk
ZWZpbmVkQ3VzdG9tRWxlbWVudCk7CisKK3ZhciBjdXN0b21FbGVtZW50TnVtYmVyID0gMTsKK2Z1
bmN0aW9uIGdlbmVyYXRlTmV4dEN1c3RvbUVsZW1lbnROYW1lKCkgeyByZXR1cm4gJ2N1c3RvbS0n
ICsgY3VzdG9tRWxlbWVudE51bWJlcisrOyB9CisKKy8vIFRlc3RzIGZvciBkb2N1bWVudHMgd2l0
aG91dCBhIGJyb3dzaW5nIGNvbnRleHQuCitkb2N1bWVudF90eXBlcygpLmZpbHRlcihmdW5jdGlv
biAoZW50cnkpIHsgcmV0dXJuICFlbnRyeS5pc093bmVyICYmICFlbnRyeS5oYXNCcm93c2luZ0Nv
bnRleHQ7IH0pLmZvckVhY2goZnVuY3Rpb24gKGVudHJ5KSB7CisgICAgdmFyIGRvY3VtZW50TmFt
ZSA9IGVudHJ5Lm5hbWU7CisgICAgdmFyIGdldERvY3VtZW50ID0gZW50cnkuY3JlYXRlOworCisg
ICAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uICgpIHsKKyAgICAgICAgcmV0dXJuIGdldERvY3VtZW50
KCkudGhlbihmdW5jdGlvbiAoZG9jKSB7CisgICAgICAgICAgICBhc3NlcnRfZmFsc2UoZG9jLmNy
ZWF0ZUVsZW1lbnQoJ3ByZWRlZmluZWQtY3VzdG9tLWVsZW1lbnQnKSBpbnN0YW5jZW9mIFByZWRl
ZmluZWRDdXN0b21FbGVtZW50KTsKKyAgICAgICAgfSk7CisgICAgfSwgJ0NyZWF0aW5nIGFuIGVs
ZW1lbnQgaW4gJyArIGRvY3VtZW50TmFtZSArICcgbXVzdCBub3QgZW5xdWV1ZSBhIGN1c3RvbSBl
bGVtZW50IHVwZ3JhZGUgcmVhY3Rpb24nCisgICAgICAgICsgJyBiZWNhdXNlIHRoZSBkb2N1bWVu
dCBkb2VzIG5vdCBoYXZlIGEgYnJvd3NpbmcgY29udGV4dCcpOworCisgICAgcHJvbWlzZV90ZXN0
KGZ1bmN0aW9uICgpIHsKKyAgICAgICAgdmFyIG5hbWUgPSBnZW5lcmF0ZU5leHRDdXN0b21FbGVt
ZW50TmFtZSgpOworICAgICAgICB2YXIgdW5yZXNvbHZlZEVsZW1lbnQgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KG5hbWUpOworCisgICAgICAgIGFzc2VydF9lcXVhbHModW5yZXNvbHZlZEVsZW1l
bnQuX19wcm90b19fLCBIVE1MRWxlbWVudC5wcm90b3R5cGUsCisgICAgICAgICAgICAnW1tQcm90
b3R5cGVdXSBpbnRlcm5hbCBzbG90IG9mIHRoZSB1bnJlc29sdmVkIGN1c3RvbSBlbGVtZW50IG11
c3QgYmUgdGhlIEhUTUxFbGVtZW50IHByb3RvdHlwZScpOworCisgICAgICAgIHJldHVybiBnZXRE
b2N1bWVudCgpLnRoZW4oZnVuY3Rpb24gKGRvYykgeworICAgICAgICAgICAgdmFyIHVucmVzb2x2
ZWRFbGVtZW50SW5Eb2MgPSBkb2MuY3JlYXRlRWxlbWVudChuYW1lKTsKKyAgICAgICAgICAgIHZh
ciBwcm90b3R5cGUgPSAodW5yZXNvbHZlZEVsZW1lbnRJbkRvYy5uYW1lc3BhY2VVUkkgPT0gJ2h0
dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnID8gSFRNTEVsZW1lbnQgOiBFbGVtZW50KS5wcm90
b3R5cGU7CisKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHModW5yZXNvbHZlZEVsZW1lbnRJbkRv
Yy5fX3Byb3RvX18sIHByb3RvdHlwZSwKKyAgICAgICAgICAgICAgICAnW1tQcm90b3R5cGVdXSBp
bnRlcm5hbCBzbG90IG9mIHRoZSB1bnJlc29sdmVkIGN1c3RvbSBlbGVtZW50IG11c3QgYmUgdGhl
ICcgKyBwcm90b3R5cGUudG9TdHJpbmcoKSArICcgcHJvdG90eXBlJyk7CisgICAgICAgICAgICB2
YXIgc29tZUN1c3RvbUVsZW1lbnQgPSBjbGFzcyBleHRlbmRzIEhUTUxFbGVtZW50IHt9OworICAg
ICAgICAgICAgY3VzdG9tRWxlbWVudHMuZGVmaW5lKG5hbWUsIHNvbWVDdXN0b21FbGVtZW50KTsK
KyAgICAgICAgICAgIGFzc2VydF9lcXVhbHModW5yZXNvbHZlZEVsZW1lbnRJbkRvYy5fX3Byb3Rv
X18sIHByb3RvdHlwZSwgJyJkZWZpbmUiIG11c3Qgbm90IHVwZ3JhZGUgYSBkaXNjb25uZWN0ZWQg
dW5yZXNvbHZlZCBjdXN0b20gZWxlbWVudHMnKTsKKyAgICAgICAgICAgIGRvYy5kb2N1bWVudEVs
ZW1lbnQuYXBwZW5kQ2hpbGQodW5yZXNvbHZlZEVsZW1lbnRJbkRvYyk7CisgICAgICAgICAgICBh
c3NlcnRfZXF1YWxzKHVucmVzb2x2ZWRFbGVtZW50SW5Eb2MuX19wcm90b19fLCBwcm90b3R5cGUs
CisgICAgICAgICAgICAgICAgJ0luc2VydGluZyBhbiBlbGVtZW50IGludG8gYSBkb2N1bWVudCB3
aXRob3V0IGEgYnJvd3NpbmcgY29udGV4dCBtdXN0IG5vdCBlbnF1ZXVlIGEgY3VzdG9tIGVsZW1l
bnQgdXBncmFkZSByZWFjdGlvbicpOworICAgICAgICB9KTsKKyAgICB9LCAnQ3JlYXRpbmcgYW4g
ZWxlbWVudCBpbiAnICsgZG9jdW1lbnROYW1lICsgJyBhbmQgaW5zZXJ0aW5nIGludG8gdGhlIGRv
Y3VtZW50IG11c3Qgbm90IGVucXVldWUgYSBjdXN0b20gZWxlbWVudCB1cGdyYWRlIHJlYWN0aW9u
Jyk7CisKKyAgICBwcm9taXNlX3Rlc3QoZnVuY3Rpb24gKCkgeworICAgICAgICB2YXIgbmFtZSA9
IGdlbmVyYXRlTmV4dEN1c3RvbUVsZW1lbnROYW1lKCk7CisgICAgICAgIHZhciB1bnJlc29sdmVk
RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQobmFtZSk7CisKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyh1bnJlc29sdmVkRWxlbWVudC5fX3Byb3RvX18sIEhUTUxFbGVtZW50LnByb3RvdHlw
ZSwKKyAgICAgICAgICAgICdbW1Byb3RvdHlwZV1dIGludGVybmFsIHNsb3Qgb2YgdGhlIHVucmVz
b2x2ZWQgY3VzdG9tIGVsZW1lbnQgbXVzdCBiZSB0aGUgSFRNTEVsZW1lbnQgcHJvdG90eXBlJyk7
CisKKyAgICAgICAgcmV0dXJuIGdldERvY3VtZW50KCkudGhlbihmdW5jdGlvbiAoZG9jKSB7Cisg
ICAgICAgICAgICB2YXIgdW5yZXNvbHZlZEVsZW1lbnRJbkRvYyA9IGRvYy5jcmVhdGVFbGVtZW50
KG5hbWUpOworICAgICAgICAgICAgdmFyIHByb3RvdHlwZSA9ICh1bnJlc29sdmVkRWxlbWVudElu
RG9jLm5hbWVzcGFjZVVSSSA9PSAnaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcgPyBIVE1M
RWxlbWVudCA6IEVsZW1lbnQpLnByb3RvdHlwZTsKKworICAgICAgICAgICAgYXNzZXJ0X2VxdWFs
cyh1bnJlc29sdmVkRWxlbWVudEluRG9jLl9fcHJvdG9fXywgcHJvdG90eXBlLAorICAgICAgICAg
ICAgICAgICdbW1Byb3RvdHlwZV1dIGludGVybmFsIHNsb3Qgb2YgdGhlIHVucmVzb2x2ZWQgY3Vz
dG9tIGVsZW1lbnQgbXVzdCBiZSB0aGUgJyArIHByb3RvdHlwZS50b1N0cmluZygpICsgJyBwcm90
b3R5cGUnKTsKKyAgICAgICAgICAgIHZhciBzb21lQ3VzdG9tRWxlbWVudCA9IGNsYXNzIGV4dGVu
ZHMgSFRNTEVsZW1lbnQge307CisgICAgICAgICAgICBjdXN0b21FbGVtZW50cy5kZWZpbmUobmFt
ZSwgc29tZUN1c3RvbUVsZW1lbnQpOworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyh1bnJlc29s
dmVkRWxlbWVudEluRG9jLl9fcHJvdG9fXywgcHJvdG90eXBlLCAnImRlZmluZSIgbXVzdCBub3Qg
dXBncmFkZSBhIGRpc2Nvbm5lY3RlZCB1bnJlc29sdmVkIGN1c3RvbSBlbGVtZW50cycpOworICAg
ICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh1bnJlc29sdmVkRWxlbWVudEluRG9j
KTsKKworICAgICAgICAgICAgaWYgKHVucmVzb2x2ZWRFbGVtZW50SW5Eb2MubmFtZXNwYWNlVVJJ
ID09ICdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJykgeworICAgICAgICAgICAgICAgIGFz
c2VydF9lcXVhbHModW5yZXNvbHZlZEVsZW1lbnRJbkRvYy5fX3Byb3RvX18sIHNvbWVDdXN0b21F
bGVtZW50LnByb3RvdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgJ0luc2VydGluZyBhbiBlbGVt
ZW50IGludG8gYSBkb2N1bWVudCB3aXRoIGEgYnJvd3NpbmcgY29udGV4dCBtdXN0IGVucXVldWUg
YSBjdXN0b20gZWxlbWVudCB1cGdyYWRlIHJlYWN0aW9uJyk7CisgICAgICAgICAgICB9IGVsc2Ug
eworICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHModW5yZXNvbHZlZEVsZW1lbnRJbkRvYy5f
X3Byb3RvX18sIHByb3RvdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgJ0xvb2tpbmcgdXAgYSBj
dXN0b20gZWxlbWVudCBkZWZpbml0aW9uIG11c3QgcmV0dXJuIG51bGwgaWYgdGhlIGVsZW1lbnQg
aXMgbm90IGluIHRoZSBIVE1MIG5hbWVzcGFjZScpOworICAgICAgICAgICAgfQorICAgICAgICB9
KTsKKyAgICB9LCAnQ3JlYXRpbmcgYW4gZWxlbWVudCBpbiAnICsgZG9jdW1lbnROYW1lICsgJyBh
bmQgYWRvcHRpbmcgYmFjayB0byBhIGRvY3VtZW50IHdpdGggYnJvd3NpbmcgY29udGV4dCBtdXN0
IGVucXVldWUgYSBjdXN0b20gZWxlbWVudCB1cGdyYWRlIHJlYWN0aW9uJyk7CisKK30pOworCisv
LyBUZXN0cyBmb3IgZG9jdW1lbnRzIHdpdGggYSBicm93c2luZyBjb250ZXh0LgorZG9jdW1lbnRf
dHlwZXMoKS5maWx0ZXIoZnVuY3Rpb24gKGVudHJ5KSB7IHJldHVybiAhZW50cnkuaXNPd25lciAm
JiBlbnRyeS5oYXNCcm93c2luZ0NvbnRleHQ7IH0pLmZvckVhY2goZnVuY3Rpb24gKGVudHJ5KSB7
CisgICAgdmFyIGRvY3VtZW50TmFtZSA9IGVudHJ5Lm5hbWU7CisgICAgdmFyIGdldERvY3VtZW50
ID0gZW50cnkuY3JlYXRlOworCisgICAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uICgpIHsKKyAgICAg
ICAgcmV0dXJuIGdldERvY3VtZW50KCkudGhlbihmdW5jdGlvbiAoZG9jKSB7CisgICAgICAgICAg
ICBhc3NlcnRfZmFsc2UoZG9jLmNyZWF0ZUVsZW1lbnQoJ3ByZWRlZmluZWQtY3VzdG9tLWVsZW1l
bnQnKSBpbnN0YW5jZW9mIFByZWRlZmluZWRDdXN0b21FbGVtZW50KTsKKyAgICAgICAgfSk7Cisg
ICAgfSwgJ0NyZWF0aW5nIGFuIGVsZW1lbnQgaW4gJyArIGRvY3VtZW50TmFtZSArICcgbXVzdCBu
b3QgZW5xdWV1ZSBhIGN1c3RvbSBlbGVtZW50IHVwZ3JhZGUgcmVhY3Rpb24gaWYgdGhlcmUgaXMg
bm8gbWF0Y2hpbmcgZGVmaW5pdGlvbicpOworCisgICAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uICgp
IHsKKyAgICAgICAgcmV0dXJuIGdldERvY3VtZW50KCkudGhlbihmdW5jdGlvbiAoZG9jKSB7Cisg
ICAgICAgICAgICB2YXIgZG9jV2luZG93ID0gZG9jLmRlZmF1bHRWaWV3OworICAgICAgICAgICAg
Y2xhc3MgRGlzdGluY3RQcmVkZWZpbmVkQ3VzdG9tRWxlbWVudCBleHRlbmRzIGRvY1dpbmRvdy5I
VE1MRWxlbWVudCB7IH07CisgICAgICAgICAgICBkb2NXaW5kb3cuY3VzdG9tRWxlbWVudHMuZGVm
aW5lKCdwcmVkZWZpbmVkLWN1c3RvbS1lbGVtZW50JywgRGlzdGluY3RQcmVkZWZpbmVkQ3VzdG9t
RWxlbWVudCk7CisgICAgICAgICAgICBhc3NlcnRfdHJ1ZShkb2MuY3JlYXRlRWxlbWVudCgncHJl
ZGVmaW5lZC1jdXN0b20tZWxlbWVudCcpIGluc3RhbmNlb2YgRGlzdGluY3RQcmVkZWZpbmVkQ3Vz
dG9tRWxlbWVudCk7CisgICAgICAgIH0pOworICAgIH0sICdDcmVhdGluZyBhbiBlbGVtZW50IGlu
ICcgKyBkb2N1bWVudE5hbWUgKyAnIG11c3QgZW5xdWV1ZSBhIGN1c3RvbSBlbGVtZW50IHVwZ3Jh
ZGUgcmVhY3Rpb24gaWYgdGhlcmUgaXMgYSBtYXRjaGluZyBkZWZpbml0aW9uJyk7CisKKyAgICBw
cm9taXNlX3Rlc3QoZnVuY3Rpb24gKCkgeworICAgICAgICB2YXIgdW5yZXNvbHZlZEVsZW1lbnQg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd1bnJlc29sdmVkLWVsZW1lbnQnKTsKKyAgICAgICAg
cmV0dXJuIGdldERvY3VtZW50KCkudGhlbihmdW5jdGlvbiAoZG9jKSB7CisgICAgICAgICAgICB2
YXIgZG9jV2luZG93ID0gZG9jLmRlZmF1bHRWaWV3OworICAgICAgICAgICAgY2xhc3MgVW5yZXNv
bHZlZEVsZW1lbnQgZXh0ZW5kcyBkb2NXaW5kb3cuSFRNTEVsZW1lbnQgeyB9OworICAgICAgICAg
ICAgdmFyIHVucmVzb2x2ZWRFbGVtZW50SW5Eb2MgPSBkb2MuY3JlYXRlRWxlbWVudCgndW5yZXNv
bHZlZC1lbGVtZW50Jyk7CisKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHModW5yZXNvbHZlZEVs
ZW1lbnQuX19wcm90b19fLCBIVE1MRWxlbWVudC5wcm90b3R5cGUpOworICAgICAgICAgICAgYXNz
ZXJ0X2VxdWFscyh1bnJlc29sdmVkRWxlbWVudEluRG9jLl9fcHJvdG9fXywgZG9jV2luZG93LkhU
TUxFbGVtZW50LnByb3RvdHlwZSk7CisKKyAgICAgICAgICAgIGRvY1dpbmRvdy5jdXN0b21FbGVt
ZW50cy5kZWZpbmUoJ3VucmVzb2x2ZWQtZWxlbWVudCcsIFVucmVzb2x2ZWRFbGVtZW50KTsKKwor
ICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyh1bnJlc29sdmVkRWxlbWVudC5fX3Byb3RvX18sIEhU
TUxFbGVtZW50LnByb3RvdHlwZSk7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHVucmVzb2x2
ZWRFbGVtZW50SW5Eb2MuX19wcm90b19fLCBkb2NXaW5kb3cuSFRNTEVsZW1lbnQucHJvdG90eXBl
KTsKKworICAgICAgICB9KTsKKyAgICB9LCAnImRlZmluZSIgaW4gJyArIGRvY3VtZW50TmFtZSAr
ICcgbXVzdCBub3QgZW5xdWV1ZSBhIGN1c3RvbSBlbGVtZW50IHVwZ3JhZGUgcmVhY3Rpb24gb24g
YSBkaXNjb25uZWN0ZWQgdW5yZXNvbHZlZCBjdXN0b20gZWxlbWVudCcpOworCisgICAgcHJvbWlz
ZV90ZXN0KGZ1bmN0aW9uICgpIHsKKyAgICAgICAgdmFyIHVucmVzb2x2ZWRFbGVtZW50ID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgndW5yZXNvbHZlZC1lbGVtZW50Jyk7CisgICAgICAgIHJldHVy
biBnZXREb2N1bWVudCgpLnRoZW4oZnVuY3Rpb24gKGRvYykgeworICAgICAgICAgICAgdmFyIGRv
Y1dpbmRvdyA9IGRvYy5kZWZhdWx0VmlldzsKKyAgICAgICAgICAgIGNsYXNzIFVucmVzb2x2ZWRF
bGVtZW50IGV4dGVuZHMgZG9jV2luZG93LkhUTUxFbGVtZW50IHsgfTsKKyAgICAgICAgICAgIHZh
ciB1bnJlc29sdmVkRWxlbWVudEluRG9jID0gZG9jLmNyZWF0ZUVsZW1lbnQoJ3VucmVzb2x2ZWQt
ZWxlbWVudCcpOworCisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHVucmVzb2x2ZWRFbGVtZW50
Ll9fcHJvdG9fXywgSFRNTEVsZW1lbnQucHJvdG90eXBlKTsKKyAgICAgICAgICAgIGFzc2VydF9l
cXVhbHModW5yZXNvbHZlZEVsZW1lbnRJbkRvYy5fX3Byb3RvX18sIGRvY1dpbmRvdy5IVE1MRWxl
bWVudC5wcm90b3R5cGUpOworCisgICAgICAgICAgICBkb2NXaW5kb3cuY3VzdG9tRWxlbWVudHMu
ZGVmaW5lKCd1bnJlc29sdmVkLWVsZW1lbnQnLCBVbnJlc29sdmVkRWxlbWVudCk7CisgICAgICAg
ICAgICBkb2MuZG9jdW1lbnRFbGVtZW50LmFwcGVuZENoaWxkKHVucmVzb2x2ZWRFbGVtZW50SW5E
b2MpOworCisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHVucmVzb2x2ZWRFbGVtZW50Ll9fcHJv
dG9fXywgSFRNTEVsZW1lbnQucHJvdG90eXBlKTsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMo
dW5yZXNvbHZlZEVsZW1lbnRJbkRvYy5fX3Byb3RvX18sIFVucmVzb2x2ZWRFbGVtZW50LnByb3Rv
dHlwZSk7CisgICAgICAgIH0pOworICAgIH0sICdJbnNlcnRpbmcgYW4gdW5yZXNvbHZlZCBjdXN0
b20gZWxlbWVudCBpbnRvICcgKyBkb2N1bWVudE5hbWUgKyAnIG11c3QgZW5xdWV1ZSBhIGN1c3Rv
bSBlbGVtZW50IHVwZ3JhZGUgcmVhY3Rpb24nKTsKKworICAgIHByb21pc2VfdGVzdChmdW5jdGlv
biAoKSB7CisgICAgICAgIHZhciB1bnJlc29sdmVkRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoJ3VucmVzb2x2ZWQtZWxlbWVudCcpOworICAgICAgICByZXR1cm4gZ2V0RG9jdW1lbnQo
KS50aGVuKGZ1bmN0aW9uIChkb2MpIHsKKyAgICAgICAgICAgIHZhciBkb2NXaW5kb3cgPSBkb2Mu
ZGVmYXVsdFZpZXc7CisgICAgICAgICAgICBjbGFzcyBVbnJlc29sdmVkRWxlbWVudCBleHRlbmRz
IGRvY1dpbmRvdy5IVE1MRWxlbWVudCB7IH07CisgICAgICAgICAgICB2YXIgdW5yZXNvbHZlZEVs
ZW1lbnRJbkRvYyA9IGRvYy5jcmVhdGVFbGVtZW50KCd1bnJlc29sdmVkLWVsZW1lbnQnKTsKKyAg
ICAgICAgICAgIGRvYy5kb2N1bWVudEVsZW1lbnQuYXBwZW5kQ2hpbGQodW5yZXNvbHZlZEVsZW1l
bnRJbkRvYyk7CisKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHModW5yZXNvbHZlZEVsZW1lbnQu
X19wcm90b19fLCBIVE1MRWxlbWVudC5wcm90b3R5cGUpOworICAgICAgICAgICAgYXNzZXJ0X2Vx
dWFscyh1bnJlc29sdmVkRWxlbWVudEluRG9jLl9fcHJvdG9fXywgZG9jV2luZG93LkhUTUxFbGVt
ZW50LnByb3RvdHlwZSk7CisKKyAgICAgICAgICAgIGRvY1dpbmRvdy5jdXN0b21FbGVtZW50cy5k
ZWZpbmUoJ3VucmVzb2x2ZWQtZWxlbWVudCcsIFVucmVzb2x2ZWRFbGVtZW50KTsKKworICAgICAg
ICAgICAgYXNzZXJ0X2VxdWFscyh1bnJlc29sdmVkRWxlbWVudC5fX3Byb3RvX18sIEhUTUxFbGVt
ZW50LnByb3RvdHlwZSk7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHVucmVzb2x2ZWRFbGVt
ZW50SW5Eb2MuX19wcm90b19fLCBVbnJlc29sdmVkRWxlbWVudC5wcm90b3R5cGUpOworICAgICAg
ICB9KTsKKyAgICB9LCAnImRlZmluZSIgaW4gJyArIGRvY3VtZW50TmFtZSArICcgbXVzdCBlbnF1
ZXVlIGEgY3VzdG9tIGVsZW1lbnQgdXBncmFkZSByZWFjdGlvbiBvbiBhIGNvbm5lY3RlZCB1bnJl
c29sdmVkIGN1c3RvbSBlbGVtZW50Jyk7CisKKyAgICBwcm9taXNlX3Rlc3QoZnVuY3Rpb24gKCkg
eworICAgICAgICB2YXIgdW5yZXNvbHZlZEVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCd1bnJlc29sdmVkLWVsZW1lbnQnKTsKKyAgICAgICAgcmV0dXJuIGdldERvY3VtZW50KCkudGhl
bihmdW5jdGlvbiAoZG9jKSB7CisgICAgICAgICAgICB2YXIgZG9jV2luZG93ID0gZG9jLmRlZmF1
bHRWaWV3OworICAgICAgICAgICAgY2xhc3MgVW5yZXNvbHZlZEVsZW1lbnQgZXh0ZW5kcyBkb2NX
aW5kb3cuSFRNTEVsZW1lbnQgeyB9OworICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKHVucmVzb2x2
ZWRFbGVtZW50IGluc3RhbmNlb2YgVW5yZXNvbHZlZEVsZW1lbnQpOworICAgICAgICAgICAgZG9j
V2luZG93LmN1c3RvbUVsZW1lbnRzLmRlZmluZSgndW5yZXNvbHZlZC1lbGVtZW50JywgVW5yZXNv
bHZlZEVsZW1lbnQpOworICAgICAgICAgICAgZG9jLmFkb3B0Tm9kZSh1bnJlc29sdmVkRWxlbWVu
dCk7CisgICAgICAgICAgICBhc3NlcnRfZmFsc2UodW5yZXNvbHZlZEVsZW1lbnQgaW5zdGFuY2Vv
ZiBVbnJlc29sdmVkRWxlbWVudCk7CisgICAgICAgIH0pOworICAgIH0sICdBZG9wdGluZyAoYW5k
IGxlYXZpbmcgZGlzY29ubmNldGVkKSBhbiB1bnJlc29sdmVkIGN1c3RvbSBlbGVtZW50IGludG8g
JyArIGRvY3VtZW50TmFtZSArICcgbXVzdCBub3QgZW5xdWV1ZSBhIGN1c3RvbSBlbGVtZW50IHVw
Z3JhZGUgcmVhY3Rpb24nKTsKKworICAgIHByb21pc2VfdGVzdChmdW5jdGlvbiAoKSB7CisgICAg
ICAgIHZhciB1bnJlc29sdmVkRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3VucmVz
b2x2ZWQtZWxlbWVudCcpOworICAgICAgICByZXR1cm4gZ2V0RG9jdW1lbnQoKS50aGVuKGZ1bmN0
aW9uIChkb2MpIHsKKyAgICAgICAgICAgIHZhciBkb2NXaW5kb3cgPSBkb2MuZGVmYXVsdFZpZXc7
CisgICAgICAgICAgICBjbGFzcyBVbnJlc29sdmVkRWxlbWVudCBleHRlbmRzIGRvY1dpbmRvdy5I
VE1MRWxlbWVudCB7IH07CisgICAgICAgICAgICBhc3NlcnRfZmFsc2UodW5yZXNvbHZlZEVsZW1l
bnQgaW5zdGFuY2VvZiBVbnJlc29sdmVkRWxlbWVudCk7CisgICAgICAgICAgICBkb2NXaW5kb3cu
Y3VzdG9tRWxlbWVudHMuZGVmaW5lKCd1bnJlc29sdmVkLWVsZW1lbnQnLCBVbnJlc29sdmVkRWxl
bWVudCk7CisgICAgICAgICAgICBkb2MuZG9jdW1lbnRFbGVtZW50LmFwcGVuZENoaWxkKHVucmVz
b2x2ZWRFbGVtZW50KTsKKyAgICAgICAgICAgIGFzc2VydF90cnVlKHVucmVzb2x2ZWRFbGVtZW50
IGluc3RhbmNlb2YgVW5yZXNvbHZlZEVsZW1lbnQpOworICAgICAgICB9KTsKKyAgICB9LCAnQWRv
cHRpbmcgYW5kIGluc2VydGluZyBhbiB1bnJlc29sdmVkIGN1c3RvbSBlbGVtZW50IGludG8gJyAr
IGRvY3VtZW50TmFtZSArICcgbXVzdCBlbnF1ZXVlIGEgY3VzdG9tIGVsZW1lbnQgdXBncmFkZSBy
ZWFjdGlvbicpOworCit9KTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1l
bGVtZW50cy91cGdyYWRpbmcvTm9kZS1jbG9uZU5vZGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvdXBncmFk
aW5nL05vZGUtY2xvbmVOb2RlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kZjI5YjBhMWVhOWUz
MGFhZmJlYTZkM2E0YjU5ZGJjOTE0YmYwMTQxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvdXBncmFk
aW5nL05vZGUtY2xvbmVOb2RlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACisKK1BBU1Mg
Tm9kZS5wcm90b3R5cGUuY2xvbmVOb2RlKGZhbHNlKSBtdXN0IGJlIGFibGUgdG8gY2xvbmUgYSBj
dXN0b20gZWxlbWVudCAKK1BBU1MgTm9kZS5wcm90b3R5cGUuY2xvbmVOb2RlKGZhbHNlKSBtdXN0
IGJlIGFibGUgdG8gY2xvbmUgYSBjdXN0b20gZWxlbWVudCBpbnNpZGUgYW4gaWZyYW1lIAorUEFT
UyBOb2RlLnByb3RvdHlwZS5jbG9uZU5vZGUodHJ1ZSkgbXVzdCBiZSBhYmxlIHRvIGNsb25lIGEg
ZGVzY2VuZGVudCBjdXN0b20gZWxlbWVudCAKK1BBU1MgTm9kZS5wcm90b3R5cGUuY2xvbmVOb2Rl
KHRydWUpIG11c3Qgc2V0IHBhcmVudE5vZGUsIHByZXZpb3VzU2libGluZywgYW5kIG5leHRTaWJs
aW5nIGJlZm9yZSB1cGdyYWRpbmcgY3VzdG9tIGVsZW1lbnRzIAorUEFTUyBIVE1MRWxlbWVudCBj
b25zdHJ1Y3RvciBtdXN0IHRocm93IGFuIEludmFsaWRTdGF0ZUVycm9yIHdoZW4gdGhlIHRvcCBv
ZiB0aGUgY29uc3RydWN0aW9uIHN0YWNrIGlzIG1hcmtlZCBBbHJlYWR5Q29uc3RydWN0ZWQgZHVl
IHRvIGEgY3VzdG9tIGVsZW1lbnQgY29uc3RydWN0b3IgY29uc3RydWN0aW5nIGl0c2VsZiBhZnRl
ciBzdXBlcigpIGNhbGwgCitQQVNTIEhUTUxFbGVtZW50IGNvbnN0cnVjdG9yIG11c3QgdGhyb3cg
YW4gSW52YWxpZFN0YXRlRXJyb3Igd2hlbiB0aGUgdG9wIG9mIHRoZSBjb25zdHJ1Y3Rpb24gc3Rh
Y2sgaXMgbWFya2VkIEFscmVhZHlDb25zdHJ1Y3RlZCBkdWUgdG8gYSBjdXN0b20gZWxlbWVudCBj
b25zdHJ1Y3RvciBjb25zdHJ1Y3RpbmcgaXRzZWxmIGJlZm9yZSBzdXBlcigpIGNhbGwgCitQQVNT
IFVwZ3JhZGluZyBhIGN1c3RvbSBlbGVtZW50IG11c3QgdGhyb3cgSW52YWxpZFN0YXRlRXJyb3Ig
d2hlbiB0aGUgY3VzdG9tIGVsZW1lbnQncyBjb25zdHJ1Y3RvciByZXR1cm5zIGFub3RoZXIgZWxl
bWVudCAKK1BBU1MgSW5zZXJ0aW5nIGFuIGVsZW1lbnQgbXVzdCBub3QgdHJ5IHRvIHVwZ3JhZGUg
YSBjdXN0b20gZWxlbWVudCB3aGVuIGl0IGhhZCBhbHJlYWR5IGZhaWxlZCB0byB1cGdyYWRlIG9u
Y2UgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3VzdG9tLWVsZW1lbnRzL3VwZ3JhZGluZy9Ob2RlLWNsb25lTm9kZS5odG1sIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMv
dXBncmFkaW5nL05vZGUtY2xvbmVOb2RlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjE1ODBmNDE4NGI2MmU4
N2JiMjMxNjQxMzE3ZDllYjZlZjFkZWE1MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL3VwZ3JhZGlu
Zy9Ob2RlLWNsb25lTm9kZS5odG1sCkBAIC0wLDAgKzEsMTg1IEBACis8IURPQ1RZUEUgaHRtbD4K
KzxodG1sPgorPGhlYWQ+Cis8dGl0bGU+Q3VzdG9tIEVsZW1lbnRzOiBVcGdyYWRpbmc8L3RpdGxl
PgorPG1ldGEgbmFtZT0iYXV0aG9yIiB0aXRsZT0iUnlvc3VrZSBOaXdhIiBocmVmPSJtYWlsdG86
cm5pd2FAd2Via2l0Lm9yZyI+Cis8bWV0YSBuYW1lPSJhc3NlcnQiIGNvbnRlbnQ9Ik5vZGUucHJv
dG90eXBlLmNsb25lTm9kZSBzaG91bGQgdXBncmFkZSBhIGN1c3RvbSBlbGVtZW50Ij4KKzxsaW5r
IHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy8jdXBncmFkZXMi
PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9jdXN0b20tZWxlbWVudHMtaGVscGVycy5qcyI+PC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9ImxvZyI+PC9kaXY+Cis8c2NyaXB0PgorCit0
ZXN0KGZ1bmN0aW9uICgpIHsKKyAgICBjbGFzcyBNeUN1c3RvbUVsZW1lbnQgZXh0ZW5kcyBIVE1M
RWxlbWVudCB7fQorICAgIGN1c3RvbUVsZW1lbnRzLmRlZmluZSgnbXktY3VzdG9tLWVsZW1lbnQn
LCBNeUN1c3RvbUVsZW1lbnQpOworCisgICAgdmFyIGluc3RhbmNlID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgnbXktY3VzdG9tLWVsZW1lbnQnKTsKKyAgICBhc3NlcnRfdHJ1ZShpbnN0YW5jZSBp
bnN0YW5jZW9mIEhUTUxFbGVtZW50KTsKKyAgICBhc3NlcnRfdHJ1ZShpbnN0YW5jZSBpbnN0YW5j
ZW9mIE15Q3VzdG9tRWxlbWVudCk7CisKKyAgICB2YXIgY2xvbmUgPSBpbnN0YW5jZS5jbG9uZU5v
ZGUoZmFsc2UpOworICAgIGFzc2VydF9ub3RfZXF1YWxzKGluc3RhbmNlLCBjbG9uZSk7CisgICAg
YXNzZXJ0X3RydWUoY2xvbmUgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCwKKyAgICAgICAgJ0EgY2xv
bmVkIGN1c3RvbSBlbGVtZW50IG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgSFRNTEVsZW1lbnQnKTsK
KyAgICBhc3NlcnRfdHJ1ZShjbG9uZSBpbnN0YW5jZW9mIE15Q3VzdG9tRWxlbWVudCwKKyAgICAg
ICAgJ0EgY2xvbmVkIGN1c3RvbSBlbGVtZW50IG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgdGhlIGN1
c3RvbSBlbGVtZW50Jyk7Cit9LCAnTm9kZS5wcm90b3R5cGUuY2xvbmVOb2RlKGZhbHNlKSBtdXN0
IGJlIGFibGUgdG8gY2xvbmUgYSBjdXN0b20gZWxlbWVudCcpOworCit0ZXN0X3dpdGhfd2luZG93
KGZ1bmN0aW9uIChjb250ZW50V2luZG93KSB7CisgICAgdmFyIGNvbnRlbnREb2N1bWVudCA9IGNv
bnRlbnRXaW5kb3cuZG9jdW1lbnQ7CisgICAgY2xhc3MgTXlDdXN0b21FbGVtZW50IGV4dGVuZHMg
Y29udGVudFdpbmRvdy5IVE1MRWxlbWVudCB7fQorICAgIGNvbnRlbnRXaW5kb3cuY3VzdG9tRWxl
bWVudHMuZGVmaW5lKCdteS1jdXN0b20tZWxlbWVudCcsIE15Q3VzdG9tRWxlbWVudCk7CisKKyAg
ICB2YXIgaW5zdGFuY2UgPSBjb250ZW50RG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbXktY3VzdG9t
LWVsZW1lbnQnKTsKKyAgICBhc3NlcnRfdHJ1ZShpbnN0YW5jZSBpbnN0YW5jZW9mIGNvbnRlbnRX
aW5kb3cuSFRNTEVsZW1lbnQpOworICAgIGFzc2VydF90cnVlKGluc3RhbmNlIGluc3RhbmNlb2Yg
TXlDdXN0b21FbGVtZW50KTsKKworICAgIHZhciBjbG9uZSA9IGluc3RhbmNlLmNsb25lTm9kZShm
YWxzZSk7CisgICAgYXNzZXJ0X25vdF9lcXVhbHMoaW5zdGFuY2UsIGNsb25lKTsKKyAgICBhc3Nl
cnRfdHJ1ZShjbG9uZSBpbnN0YW5jZW9mIGNvbnRlbnRXaW5kb3cuSFRNTEVsZW1lbnQsCisgICAg
ICAgICdBIGNsb25lZCBjdXN0b20gZWxlbWVudCBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIEhUTUxF
bGVtZW50Jyk7CisgICAgYXNzZXJ0X3RydWUoY2xvbmUgaW5zdGFuY2VvZiBNeUN1c3RvbUVsZW1l
bnQsCisgICAgICAgICdBIGNsb25lZCBjdXN0b20gZWxlbWVudCBtdXN0IGJlIGFuIGluc3RhbmNl
IG9mIHRoZSBjdXN0b20gZWxlbWVudCcpOworfSwgJ05vZGUucHJvdG90eXBlLmNsb25lTm9kZShm
YWxzZSkgbXVzdCBiZSBhYmxlIHRvIGNsb25lIGEgY3VzdG9tIGVsZW1lbnQgaW5zaWRlIGFuIGlm
cmFtZScpOworCit0ZXN0X3dpdGhfd2luZG93KGZ1bmN0aW9uIChjb250ZW50V2luZG93KSB7Cisg
ICAgdmFyIGNvbnRlbnREb2N1bWVudCA9IGNvbnRlbnRXaW5kb3cuZG9jdW1lbnQ7CisgICAgY2xh
c3MgTXlDdXN0b21FbGVtZW50IGV4dGVuZHMgY29udGVudFdpbmRvdy5IVE1MRWxlbWVudCB7IH0K
KyAgICBjb250ZW50V2luZG93LmN1c3RvbUVsZW1lbnRzLmRlZmluZSgnbXktY3VzdG9tLWVsZW1l
bnQnLCBNeUN1c3RvbUVsZW1lbnQpOworCisgICAgdmFyIGluc3RhbmNlID0gY29udGVudERvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoJ215LWN1c3RvbS1lbGVtZW50Jyk7CisgICAgdmFyIGNvbnRhaW5l
ciA9IGNvbnRlbnREb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICBjb250YWluZXIu
YXBwZW5kQ2hpbGQoaW5zdGFuY2UpOworCisgICAgdmFyIGNvbnRhaW5lckNsb25lID0gY29udGFp
bmVyLmNsb25lTm9kZSh0cnVlKTsKKyAgICBhc3NlcnRfdHJ1ZShjb250YWluZXJDbG9uZSBpbnN0
YW5jZW9mIGNvbnRlbnRXaW5kb3cuSFRNTERpdkVsZW1lbnQpOworCisgICAgdmFyIGNsb25lID0g
Y29udGFpbmVyQ2xvbmUuZmlyc3RDaGlsZDsKKyAgICBhc3NlcnRfbm90X2VxdWFscyhpbnN0YW5j
ZSwgY2xvbmUpOworICAgIGFzc2VydF90cnVlKGNsb25lIGluc3RhbmNlb2YgY29udGVudFdpbmRv
dy5IVE1MRWxlbWVudCwKKyAgICAgICAgJ0EgY2xvbmVkIGN1c3RvbSBlbGVtZW50IG11c3QgYmUg
YW4gaW5zdGFuY2Ugb2YgSFRNTEVsZW1lbnQnKTsKKyAgICBhc3NlcnRfdHJ1ZShjbG9uZSBpbnN0
YW5jZW9mIE15Q3VzdG9tRWxlbWVudCwKKyAgICAgICAgJ0EgY2xvbmVkIGN1c3RvbSBlbGVtZW50
IG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgdGhlIGN1c3RvbSBlbGVtZW50Jyk7Cit9LCAnTm9kZS5w
cm90b3R5cGUuY2xvbmVOb2RlKHRydWUpIG11c3QgYmUgYWJsZSB0byBjbG9uZSBhIGRlc2NlbmRl
bnQgY3VzdG9tIGVsZW1lbnQnKTsKKwordGVzdF93aXRoX3dpbmRvdyhmdW5jdGlvbiAoY29udGVu
dFdpbmRvdykgeworICAgIHZhciBwYXJlbnROb2RlSW5Db25zdHJ1Y3RvcjsKKyAgICB2YXIgcHJl
dmlvdXNTaWJsaW5nSW5Db25zdHJ1Y3RvcjsKKyAgICB2YXIgbmV4dFNpYmxpbmdJbkNvbnN0cnVj
dG9yOworICAgIGNsYXNzIE15Q3VzdG9tRWxlbWVudCBleHRlbmRzIGNvbnRlbnRXaW5kb3cuSFRN
TEVsZW1lbnQgeworICAgICAgICBjb25zdHJ1Y3RvcigpIHsKKyAgICAgICAgICAgIHN1cGVyKCk7
CisgICAgICAgICAgICBwYXJlbnROb2RlSW5Db25zdHJ1Y3RvciA9IHRoaXMucGFyZW50Tm9kZTsK
KyAgICAgICAgICAgIHByZXZpb3VzU2libGluZ0luQ29uc3RydWN0b3IgPSB0aGlzLnByZXZpb3Vz
U2libGluZzsKKyAgICAgICAgICAgIG5leHRTaWJsaW5nSW5Db25zdHJ1Y3RvciA9IHRoaXMubmV4
dFNpYmxpbmc7CisgICAgICAgIH0KKyAgICB9CisgICAgY29udGVudFdpbmRvdy5jdXN0b21FbGVt
ZW50cy5kZWZpbmUoJ215LWN1c3RvbS1lbGVtZW50JywgTXlDdXN0b21FbGVtZW50KTsKKworICAg
IHZhciBjb250ZW50RG9jdW1lbnQgPSBjb250ZW50V2luZG93LmRvY3VtZW50OworICAgIHZhciBp
bnN0YW5jZSA9IGNvbnRlbnREb2N1bWVudC5jcmVhdGVFbGVtZW50KCdteS1jdXN0b20tZWxlbWVu
dCcpOworICAgIHZhciBzaWJsaW5nQmVmb3JlSW5zdGFuY2UgPSBjb250ZW50RG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgnYicpOworICAgIHZhciBzaWJsaW5nQWZ0ZXJJbnN0YW5jZSA9IGNvbnRlbnRE
b2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7CisgICAgdmFyIGNvbnRhaW5lciA9IGNvbnRlbnRE
b2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQo
c2libGluZ0JlZm9yZUluc3RhbmNlKTsKKyAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQoaW5zdGFu
Y2UpOworICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZChzaWJsaW5nQWZ0ZXJJbnN0YW5jZSk7CisK
KyAgICB2YXIgY29udGFpbmVyQ2xvbmUgPSBjb250YWluZXIuY2xvbmVOb2RlKHRydWUpOworCisg
ICAgYXNzZXJ0X2VxdWFscyhwYXJlbnROb2RlSW5Db25zdHJ1Y3RvciwgY29udGFpbmVyQ2xvbmUs
CisgICAgICAgICdBbiB1cGdyYWRlZCBlbGVtZW50IG11c3QgaGF2ZSBpdHMgcGFyZW50Tm9kZSBz
ZXQgYmVmb3JlIHRoZSBjdXN0b20gZWxlbWVudCBjb25zdHJ1Y3RvciBpcyBjYWxsZWQnKTsKKyAg
ICBhc3NlcnRfZXF1YWxzKHByZXZpb3VzU2libGluZ0luQ29uc3RydWN0b3IsIGNvbnRhaW5lckNs
b25lLmZpcnN0Q2hpbGQsCisgICAgICAgICdBbiB1cGdyYWRlZCBlbGVtZW50IG11c3QgaGF2ZSBp
dHMgcHJldmlvdXNTaWJsaW5nIHNldCBiZWZvcmUgdGhlIGN1c3RvbSBlbGVtZW50IGNvbnN0cnVj
dG9yIGlzIGNhbGxlZCcpOworICAgIGFzc2VydF9lcXVhbHMobmV4dFNpYmxpbmdJbkNvbnN0cnVj
dG9yLCBjb250YWluZXJDbG9uZS5sYXN0Q2hpbGQsCisgICAgICAgICdBbiB1cGdyYWRlZCBlbGVt
ZW50IG11c3QgaGF2ZSBpdHMgbmV4dFNpYmxpbmcgc2V0IGJlZm9yZSB0aGUgY3VzdG9tIGVsZW1l
bnQgY29uc3RydWN0b3IgaXMgY2FsbGVkJyk7Cit9LCAnTm9kZS5wcm90b3R5cGUuY2xvbmVOb2Rl
KHRydWUpIG11c3Qgc2V0IHBhcmVudE5vZGUsIHByZXZpb3VzU2libGluZywgYW5kIG5leHRTaWJs
aW5nIGJlZm9yZSB1cGdyYWRpbmcgY3VzdG9tIGVsZW1lbnRzJyk7CisKK3Rlc3Rfd2l0aF93aW5k
b3coZnVuY3Rpb24gKGNvbnRlbnRXaW5kb3cpIHsKKyAgICBjbGFzcyBNeUN1c3RvbUVsZW1lbnQg
ZXh0ZW5kcyBjb250ZW50V2luZG93LkhUTUxFbGVtZW50IHsKKyAgICAgICAgY29uc3RydWN0b3Io
ZG9Ob3RDcmVhdGVJdHNlbGYpIHsKKyAgICAgICAgICAgIHN1cGVyKCk7CisgICAgICAgICAgICBp
ZiAoIWRvTm90Q3JlYXRlSXRzZWxmKQorICAgICAgICAgICAgICAgIG5ldyBNeUN1c3RvbUVsZW1l
bnQodHJ1ZSk7CisgICAgICAgIH0KKyAgICB9CisgICAgY29udGVudFdpbmRvdy5jdXN0b21FbGVt
ZW50cy5kZWZpbmUoJ215LWN1c3RvbS1lbGVtZW50JywgTXlDdXN0b21FbGVtZW50KTsKKworICAg
IHZhciBpbnN0YW5jZSA9IG5ldyBNeUN1c3RvbUVsZW1lbnQoZmFsc2UpOworICAgIHZhciB1bmNh
dWdodEVycm9yOworICAgIGNvbnRlbnRXaW5kb3cub25lcnJvciA9IGZ1bmN0aW9uIChtZXNzYWdl
LCB1cmwsIGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlciwgZXJyb3IpIHsgdW5jYXVnaHRFcnJvciA9
IGVycm9yOyByZXR1cm4gdHJ1ZTsgfQorICAgIGluc3RhbmNlLmNsb25lTm9kZShmYWxzZSk7Cisg
ICAgYXNzZXJ0X2VxdWFscyh1bmNhdWdodEVycm9yLm5hbWUsICdJbnZhbGlkU3RhdGVFcnJvcicp
OworfSwgJ0hUTUxFbGVtZW50IGNvbnN0cnVjdG9yIG11c3QgdGhyb3cgYW4gSW52YWxpZFN0YXRl
RXJyb3Igd2hlbiB0aGUgdG9wIG9mIHRoZSBjb25zdHJ1Y3Rpb24gc3RhY2sgaXMgbWFya2VkIEFs
cmVhZHlDb25zdHJ1Y3RlZCcKKyAgICArICcgZHVlIHRvIGEgY3VzdG9tIGVsZW1lbnQgY29uc3Ry
dWN0b3IgY29uc3RydWN0aW5nIGl0c2VsZiBhZnRlciBzdXBlcigpIGNhbGwnKTsKKwordGVzdF93
aXRoX3dpbmRvdyhmdW5jdGlvbiAoY29udGVudFdpbmRvdykgeworICAgIGNsYXNzIE15Q3VzdG9t
RWxlbWVudCBleHRlbmRzIGNvbnRlbnRXaW5kb3cuSFRNTEVsZW1lbnQgeworICAgICAgICBjb25z
dHJ1Y3Rvcihkb05vdENyZWF0ZUl0c2VsZikgeworICAgICAgICAgICAgaWYgKCFkb05vdENyZWF0
ZUl0c2VsZikKKyAgICAgICAgICAgICAgICBuZXcgTXlDdXN0b21FbGVtZW50KHRydWUpOworICAg
ICAgICAgICAgc3VwZXIoKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBjb250ZW50V2luZG93LmN1
c3RvbUVsZW1lbnRzLmRlZmluZSgnbXktY3VzdG9tLWVsZW1lbnQnLCBNeUN1c3RvbUVsZW1lbnQp
OworCisgICAgdmFyIGluc3RhbmNlID0gbmV3IE15Q3VzdG9tRWxlbWVudChmYWxzZSk7CisgICAg
dmFyIHVuY2F1Z2h0RXJyb3I7CisgICAgY29udGVudFdpbmRvdy5vbmVycm9yID0gZnVuY3Rpb24g
KG1lc3NhZ2UsIHVybCwgbGluZU51bWJlciwgY29sdW1uTnVtYmVyLCBlcnJvcikgeyB1bmNhdWdo
dEVycm9yID0gZXJyb3I7IHJldHVybiB0cnVlOyB9CisgICAgaW5zdGFuY2UuY2xvbmVOb2RlKGZh
bHNlKTsKKyAgICBhc3NlcnRfZXF1YWxzKHVuY2F1Z2h0RXJyb3IubmFtZSwgJ0ludmFsaWRTdGF0
ZUVycm9yJyk7Cit9LCAnSFRNTEVsZW1lbnQgY29uc3RydWN0b3IgbXVzdCB0aHJvdyBhbiBJbnZh
bGlkU3RhdGVFcnJvciB3aGVuIHRoZSB0b3Agb2YgdGhlIGNvbnN0cnVjdGlvbiBzdGFjayBpcyBt
YXJrZWQgQWxyZWFkeUNvbnN0cnVjdGVkJworICAgICsgJyBkdWUgdG8gYSBjdXN0b20gZWxlbWVu
dCBjb25zdHJ1Y3RvciBjb25zdHJ1Y3RpbmcgaXRzZWxmIGJlZm9yZSBzdXBlcigpIGNhbGwnKTsK
KwordGVzdF93aXRoX3dpbmRvdyhmdW5jdGlvbiAoY29udGVudFdpbmRvdykgeworICAgIHZhciBj
b250ZW50RG9jdW1lbnQgPSBjb250ZW50V2luZG93LmRvY3VtZW50OworICAgIHZhciByZXR1cm5T
cGFuID0gZmFsc2U7CisgICAgY2xhc3MgTXlDdXN0b21FbGVtZW50IGV4dGVuZHMgY29udGVudFdp
bmRvdy5IVE1MRWxlbWVudCB7CisgICAgICAgIGNvbnN0cnVjdG9yKCkgeworICAgICAgICAgICAg
c3VwZXIoKTsKKyAgICAgICAgICAgIGlmIChyZXR1cm5TcGFuKQorICAgICAgICAgICAgICAgIHJl
dHVybiBjb250ZW50RG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpOworICAgICAgICB9Cisg
ICAgfQorICAgIGNvbnRlbnRXaW5kb3cuY3VzdG9tRWxlbWVudHMuZGVmaW5lKCdteS1jdXN0b20t
ZWxlbWVudCcsIE15Q3VzdG9tRWxlbWVudCk7CisKKyAgICB2YXIgaW5zdGFuY2UgPSBuZXcgTXlD
dXN0b21FbGVtZW50KGZhbHNlKTsKKyAgICByZXR1cm5TcGFuID0gdHJ1ZTsKKyAgICB2YXIgdW5j
YXVnaHRFcnJvcjsKKyAgICBjb250ZW50V2luZG93Lm9uZXJyb3IgPSBmdW5jdGlvbiAobWVzc2Fn
ZSwgdXJsLCBsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIsIGVycm9yKSB7IHVuY2F1Z2h0RXJyb3Ig
PSBlcnJvcjsgcmV0dXJuIHRydWU7IH0KKyAgICBpbnN0YW5jZS5jbG9uZU5vZGUoZmFsc2UpOwor
ICAgIGFzc2VydF9lcXVhbHModW5jYXVnaHRFcnJvci5uYW1lLCAnSW52YWxpZFN0YXRlRXJyb3In
KTsKK30sICdVcGdyYWRpbmcgYSBjdXN0b20gZWxlbWVudCBtdXN0IHRocm93IEludmFsaWRTdGF0
ZUVycm9yIHdoZW4gdGhlIGN1c3RvbSBlbGVtZW50XCdzIGNvbnN0cnVjdG9yIHJldHVybnMgYW5v
dGhlciBlbGVtZW50Jyk7CisKK3Rlc3Rfd2l0aF93aW5kb3coZnVuY3Rpb24gKGNvbnRlbnRXaW5k
b3cpIHsKKyAgICB2YXIgY29udGVudERvY3VtZW50ID0gY29udGVudFdpbmRvdy5kb2N1bWVudDsK
KyAgICB2YXIgaW5zdGFuY2UgPSBjb250ZW50RG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbXktY3Vz
dG9tLWVsZW1lbnQnKTsKKyAgICBjb250ZW50RG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpbnN0
YW5jZSk7CisKKyAgICB2YXIgY2FsbHMgPSBbXTsKKyAgICBjbGFzcyBNeUN1c3RvbUVsZW1lbnQg
ZXh0ZW5kcyBjb250ZW50V2luZG93LkhUTUxFbGVtZW50IHsKKyAgICAgICAgY29uc3RydWN0b3Io
KSB7CisgICAgICAgICAgICBzdXBlcigpOworICAgICAgICAgICAgY2FsbHMucHVzaCh0aGlzKTsK
KyAgICAgICAgICAgIHRocm93ICdiYWQnOworICAgICAgICB9CisgICAgfQorCisgICAgdmFyIHVu
Y2F1Z2h0RXJyb3I7CisgICAgY29udGVudFdpbmRvdy5vbmVycm9yID0gZnVuY3Rpb24gKG1lc3Nh
Z2UsIHVybCwgbGluZU51bWJlciwgY29sdW1uTnVtYmVyLCBlcnJvcikgeyB1bmNhdWdodEVycm9y
ID0gZXJyb3I7IHJldHVybiB0cnVlOyB9CisgICAgY29udGVudFdpbmRvdy5jdXN0b21FbGVtZW50
cy5kZWZpbmUoJ215LWN1c3RvbS1lbGVtZW50JywgTXlDdXN0b21FbGVtZW50KTsKKyAgICBhc3Nl
cnRfZXF1YWxzKHVuY2F1Z2h0RXJyb3IsICdiYWQnKTsKKworICAgIGFzc2VydF9hcnJheV9lcXVh
bHMoY2FsbHMsIFtpbnN0YW5jZV0pOworICAgIGNvbnRlbnREb2N1bWVudC5ib2R5LnJlbW92ZUNo
aWxkKGluc3RhbmNlKTsKKyAgICBjb250ZW50RG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpbnN0
YW5jZSk7CisgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhjYWxscywgW2luc3RhbmNlXSk7Cit9LCAn
SW5zZXJ0aW5nIGFuIGVsZW1lbnQgbXVzdCBub3QgdHJ5IHRvIHVwZ3JhZGUgYSBjdXN0b20gZWxl
bWVudCB3aGVuIGl0IGhhZCBhbHJlYWR5IGZhaWxlZCB0byB1cGdyYWRlIG9uY2UnKTsKKworPC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy91cGdyYWRpbmcvdXBncmFk
aW5nLXBhcnNlci1jcmVhdGVkLWVsZW1lbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvdXBncmFkaW5nL3Vw
Z3JhZGluZy1wYXJzZXItY3JlYXRlZC1lbGVtZW50LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42
ODBjYmY2MTBiOWEzMzE2ZjIyMjU5M2QyNGY2M2ExNzVhNzc1MzIxCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxl
bWVudHMvdXBncmFkaW5nL3VwZ3JhZGluZy1wYXJzZXItY3JlYXRlZC1lbGVtZW50LWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDYgQEAKKworUEFTUyBFbGVtZW50LnByb3RvdHlwZS5jcmVhdGVFbGVt
ZW50IG11c3QgYWRkIGFuIHVucmVzb2x2ZWQgY3VzdG9tIGVsZW1lbnQgdG8gdGhlIHVwZ3JhZGUg
Y2FuZGlkYXRlcyBtYXAgCitQQVNTIEhUTUxFbGVtZW50IGNvbnN0cnVjdG9yIG11c3QgdGhyb3cg
YW4gSW52YWxpZFN0YXRlRXJyb3Igd2hlbiB0aGUgdG9wIG9mIHRoZSBjb25zdHJ1Y3Rpb24gc3Rh
Y2sgaXMgbWFya2VkIEFscmVhZHlDb25zdHJ1Y3RlZCBkdWUgdG8gYSBjdXN0b20gZWxlbWVudCBj
b25zdHJ1Y3RvciBjb25zdHJ1Y3RpbmcgaXRzZWxmIGFmdGVyIHN1cGVyKCkgY2FsbCAKK1BBU1Mg
SFRNTEVsZW1lbnQgY29uc3RydWN0b3IgbXVzdCB0aHJvdyBhbiBJbnZhbGlkU3RhdGVFcnJvciB3
aGVuIHRoZSB0b3Agb2YgdGhlIGNvbnN0cnVjdGlvbiBzdGFjayBpcyBtYXJrZWQgQWxyZWFkeUNv
bnN0cnVjdGVkIGR1ZSB0byBhIGN1c3RvbSBlbGVtZW50IGNvbnN0cnVjdG9yIGNvbnN0cnVjdGlu
ZyBpdHNlbGYgYmVmb3JlIHN1cGVyKCkgY2FsbCAKK1BBU1MgVXBncmFkaW5nIGEgY3VzdG9tIGVs
ZW1lbnQgbXVzdCB0aHJvdyBhbiBJbnZhbGlkU3RhdGVFcnJvciB3aGVuIHRoZSByZXR1cm5lZCBl
bGVtZW50IGlzIG5vdCBTYW1lVmFsdWUgYXMgdGhlIHVwZ3JhZGVkIGVsZW1lbnQgCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9t
LWVsZW1lbnRzL3VwZ3JhZGluZy91cGdyYWRpbmctcGFyc2VyLWNyZWF0ZWQtZWxlbWVudC5odG1s
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxl
bWVudHMvdXBncmFkaW5nL3VwZ3JhZGluZy1wYXJzZXItY3JlYXRlZC1lbGVtZW50Lmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uN2NjM2IxOGFlZWZiOGRiNTViY2FjN2FjMWNmMzIxYzFiNWZmZjI4YwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3VzdG9tLWVsZW1lbnRzL3VwZ3JhZGluZy91cGdyYWRpbmctcGFyc2VyLWNyZWF0ZWQtZWxlbWVu
dC5odG1sCkBAIC0wLDAgKzEsOTcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4K
Kzx0aXRsZT5DdXN0b20gRWxlbWVudHM6IFVwZ3JhZGluZyB1bnJlc29sdmVkIGVsZW1lbnRzPC90
aXRsZT4KKzxtZXRhIG5hbWU9ImF1dGhvciIgdGl0bGU9IlJ5b3N1a2UgTml3YSIgaHJlZj0ibWFp
bHRvOnJuaXdhQHdlYmtpdC5vcmciPgorPG1ldGEgbmFtZT0iYXNzZXJ0IiBjb250ZW50PSJIVE1M
IHBhcnNlciBtdXN0IGFkZCBhbiB1bnJlc29sdmVkIGN1c3RvbSBlbGVtZW50IHRvIHRoZSB1cGdy
YWRlIGNhbmRpZGF0ZXMgbWFwIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9odG1s
LnNwZWMud2hhdHdnLm9yZy8jdXBncmFkZXMiPgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVz
dGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5l
c3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJsb2ciPjwv
ZGl2PgorPG15LWN1c3RvbS1lbGVtZW50PjwvbXktY3VzdG9tLWVsZW1lbnQ+Cis8aW5zdGFudGlh
dGVzLWl0c2VsZi1hZnRlci1zdXBlcj48L2luc3RhbnRpYXRlcy1pdHNlbGYtYWZ0ZXItc3VwZXI+
Cis8aW5zdGFudGlhdGVzLWl0c2VsZi1iZWZvcmUtc3VwZXI+PC9pbnN0YW50aWF0ZXMtaXRzZWxm
LWJlZm9yZS1zdXBlcj4KKzxteS1vdGhlci1lbGVtZW50IGlkPSJpbnN0YW5jZSI+PC9teS1vdGhl
ci1lbGVtZW50PgorPG15LW90aGVyLWVsZW1lbnQgaWQ9Im90aGVySW5zdGFuY2UiPjwvbXktb3Ro
ZXItZWxlbWVudD4KKzxzY3JpcHQ+CisKK3NldHVwKHthbGxvd191bmNhdWdodF9leGNlcHRpb246
dHJ1ZX0pOworCit0ZXN0KGZ1bmN0aW9uICgpIHsKKyAgICBjbGFzcyBNeUN1c3RvbUVsZW1lbnQg
ZXh0ZW5kcyBIVE1MRWxlbWVudCB7IH0KKworICAgIHZhciBpbnN0YW5jZSA9IGRvY3VtZW50LnF1
ZXJ5U2VsZWN0b3IoJ215LWN1c3RvbS1lbGVtZW50Jyk7CisgICAgYXNzZXJ0X3RydWUoaW5zdGFu
Y2UgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCk7CisgICAgYXNzZXJ0X2ZhbHNlKGluc3RhbmNlIGlu
c3RhbmNlb2YgSFRNTFVua25vd25FbGVtZW50LAorICAgICAgICAnYW4gdW5yZXNvbHZlZCBjdXN0
b20gZWxlbWVudCBzaG91bGQgbm90IGJlIGFuIGluc3RhbmNlIG9mIEhUTUxVbmtub3duRWxlbWVu
dCcpOworICAgIGFzc2VydF9mYWxzZShpbnN0YW5jZSBpbnN0YW5jZW9mIE15Q3VzdG9tRWxlbWVu
dCk7CisKKyAgICBjdXN0b21FbGVtZW50cy5kZWZpbmUoJ215LWN1c3RvbS1lbGVtZW50JywgTXlD
dXN0b21FbGVtZW50KTsKKworICAgIGFzc2VydF90cnVlKGluc3RhbmNlIGluc3RhbmNlb2YgSFRN
TEVsZW1lbnQpOworICAgIGFzc2VydF90cnVlKGluc3RhbmNlIGluc3RhbmNlb2YgTXlDdXN0b21F
bGVtZW50LAorICAgICAgICAnQ2FsbGluZyBjdXN0b21FbGVtZW50cy5kZWZpbmUgbXVzdCB1cGdy
YWRlIGV4aXN0aW5nIGN1c3RvbSBlbGVtZW50cycpOworCit9LCAnRWxlbWVudC5wcm90b3R5cGUu
Y3JlYXRlRWxlbWVudCBtdXN0IGFkZCBhbiB1bnJlc29sdmVkIGN1c3RvbSBlbGVtZW50IHRvIHRo
ZSB1cGdyYWRlIGNhbmRpZGF0ZXMgbWFwJyk7CisKK3Rlc3QoZnVuY3Rpb24gKCkgeworICAgIGNs
YXNzIEluc3RhbnRpYXRlc0l0c2VsZkFmdGVyU3VwZXIgZXh0ZW5kcyBIVE1MRWxlbWVudCB7Cisg
ICAgICAgIGNvbnN0cnVjdG9yKGRvTm90Q3JlYXRlSXRzZWxmKSB7CisgICAgICAgICAgICBzdXBl
cigpOworICAgICAgICAgICAgaWYgKCFkb05vdENyZWF0ZUl0c2VsZikKKyAgICAgICAgICAgICAg
ICBuZXcgSW5zdGFudGlhdGVzSXRzZWxmQWZ0ZXJTdXBlcih0cnVlKTsKKyAgICAgICAgfQorICAg
IH0KKworICAgIHZhciB1bmNhdWdodEVycm9yOworICAgIHdpbmRvdy5vbmVycm9yID0gZnVuY3Rp
b24gKG1lc3NhZ2UsIHVybCwgbGluZU51bWJlciwgY29sdW1uTnVtYmVyLCBlcnJvcikgeyB1bmNh
dWdodEVycm9yID0gZXJyb3I7IHJldHVybiB0cnVlOyB9CisgICAgY3VzdG9tRWxlbWVudHMuZGVm
aW5lKCdpbnN0YW50aWF0ZXMtaXRzZWxmLWFmdGVyLXN1cGVyJywgSW5zdGFudGlhdGVzSXRzZWxm
QWZ0ZXJTdXBlcik7CisgICAgYXNzZXJ0X2VxdWFscyh1bmNhdWdodEVycm9yLm5hbWUsICdJbnZh
bGlkU3RhdGVFcnJvcicpOworfSwgJ0hUTUxFbGVtZW50IGNvbnN0cnVjdG9yIG11c3QgdGhyb3cg
YW4gSW52YWxpZFN0YXRlRXJyb3Igd2hlbiB0aGUgdG9wIG9mIHRoZSBjb25zdHJ1Y3Rpb24gc3Rh
Y2sgaXMgbWFya2VkIEFscmVhZHlDb25zdHJ1Y3RlZCcKKyAgICArICcgZHVlIHRvIGEgY3VzdG9t
IGVsZW1lbnQgY29uc3RydWN0b3IgY29uc3RydWN0aW5nIGl0c2VsZiBhZnRlciBzdXBlcigpIGNh
bGwnKTsKKwordGVzdChmdW5jdGlvbiAoKSB7CisgICAgY2xhc3MgSW5zdGFudGlhdGVzSXRzZWxm
QmVmb3JlU3VwZXIgZXh0ZW5kcyBIVE1MRWxlbWVudCB7CisgICAgICAgIGNvbnN0cnVjdG9yKGRv
Tm90Q3JlYXRlSXRzZWxmKSB7CisgICAgICAgICAgICBpZiAoIWRvTm90Q3JlYXRlSXRzZWxmKQor
ICAgICAgICAgICAgICAgIG5ldyBJbnN0YW50aWF0ZXNJdHNlbGZCZWZvcmVTdXBlcih0cnVlKTsK
KyAgICAgICAgICAgIHN1cGVyKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICB2YXIgdW5jYXVn
aHRFcnJvcjsKKyAgICB3aW5kb3cub25lcnJvciA9IGZ1bmN0aW9uIChtZXNzYWdlLCB1cmwsIGxp
bmVOdW1iZXIsIGNvbHVtbk51bWJlciwgZXJyb3IpIHsgdW5jYXVnaHRFcnJvciA9IGVycm9yOyBy
ZXR1cm4gdHJ1ZTsgfQorICAgIGN1c3RvbUVsZW1lbnRzLmRlZmluZSgnaW5zdGFudGlhdGVzLWl0
c2VsZi1iZWZvcmUtc3VwZXInLCBJbnN0YW50aWF0ZXNJdHNlbGZCZWZvcmVTdXBlcik7CisgICAg
YXNzZXJ0X2VxdWFscyh1bmNhdWdodEVycm9yLm5hbWUsICdJbnZhbGlkU3RhdGVFcnJvcicpOwor
fSwgJ0hUTUxFbGVtZW50IGNvbnN0cnVjdG9yIG11c3QgdGhyb3cgYW4gSW52YWxpZFN0YXRlRXJy
b3Igd2hlbiB0aGUgdG9wIG9mIHRoZSBjb25zdHJ1Y3Rpb24gc3RhY2sgaXMgbWFya2VkIEFscmVh
ZHlDb25zdHJ1Y3RlZCcKKyAgICArICcgZHVlIHRvIGEgY3VzdG9tIGVsZW1lbnQgY29uc3RydWN0
b3IgY29uc3RydWN0aW5nIGl0c2VsZiBiZWZvcmUgc3VwZXIoKSBjYWxsJyk7CisKK3Rlc3QoZnVu
Y3Rpb24gKCkgeworICAgIGNsYXNzIE15T3RoZXJFbGVtZW50IGV4dGVuZHMgSFRNTEVsZW1lbnQg
eworICAgICAgICBjb25zdHJ1Y3RvcigpIHsKKyAgICAgICAgICAgIHN1cGVyKCk7CisgICAgICAg
ICAgICBpZiAodGhpcyA9PSBpbnN0YW5jZSkKKyAgICAgICAgICAgICAgICByZXR1cm4gb3RoZXJJ
bnN0YW5jZTsKKyAgICAgICAgfQorICAgIH0KKyAgICB2YXIgaW5zdGFuY2UgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnaW5zdGFuY2UnKTsKKyAgICB2YXIgb3RoZXJJbnN0YW5jZSA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdvdGhlckluc3RhbmNlJyk7CisKKyAgICBhc3NlcnRfZmFsc2Uo
aW5zdGFuY2UgaW5zdGFuY2VvZiBNeU90aGVyRWxlbWVudCk7CisgICAgYXNzZXJ0X2ZhbHNlKG90
aGVySW5zdGFuY2UgaW5zdGFuY2VvZiBNeU90aGVyRWxlbWVudCk7CisKKyAgICB2YXIgdW5jYXVn
aHRFcnJvcjsKKyAgICB3aW5kb3cub25lcnJvciA9IGZ1bmN0aW9uIChtZXNzYWdlLCB1cmwsIGxp
bmVOdW1iZXIsIGNvbHVtbk51bWJlciwgZXJyb3IpIHsgdW5jYXVnaHRFcnJvciA9IGVycm9yOyBy
ZXR1cm4gdHJ1ZTsgfQorICAgIGN1c3RvbUVsZW1lbnRzLmRlZmluZSgnbXktb3RoZXItZWxlbWVu
dCcsIE15T3RoZXJFbGVtZW50KTsKKyAgICBhc3NlcnRfZXF1YWxzKHVuY2F1Z2h0RXJyb3IubmFt
ZSwgJ0ludmFsaWRTdGF0ZUVycm9yJyk7CisKKyAgICBhc3NlcnRfdHJ1ZShkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCdteS1vdGhlci1lbGVtZW50JykgaW5zdGFuY2VvZiBNeU90aGVyRWxlbWVudCwK
KyAgICAgICAgJ1VwZ3JhZGluZyBvZiBjdXN0b20gZWxlbWVudHMgbXVzdCBoYXBwZW4gYWZ0ZXIg
dGhlIGRlZmluaXRpb24gd2FzIGFkZGVkIHRvIHRoZSByZWdpc3RyeS4nKTsKKworfSwgJ1VwZ3Jh
ZGluZyBhIGN1c3RvbSBlbGVtZW50IG11c3QgdGhyb3cgYW4gSW52YWxpZFN0YXRlRXJyb3Igd2hl
biB0aGUgcmV0dXJuZWQgZWxlbWVudCBpcyBub3QgU2FtZVZhbHVlIGFzIHRoZSB1cGdyYWRlZCBl
bGVtZW50Jyk7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMv
dXBncmFkaW5nL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvdXBncmFkaW5nL3czYy1pbXBvcnQubG9nCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjU4YmU1NDEwODIzNWM5ODgyOTUzNWVhNDBkNTZmNzNjOWE4MTJjOWIKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2N1c3RvbS1lbGVtZW50cy91cGdyYWRpbmcvdzNjLWltcG9ydC5sb2cKQEAgLTAsMCArMSwxOSBA
QAorVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzND
IHJlcG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktp
dC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgVzNDIENTUyBvciBXUFQg
Z2l0aHViOgorCWh0dHBzOi8vZ2l0aHViLmNvbS93M2MvY3Nzd2ctdGVzdAorCWh0dHBzOi8vZ2l0
aHViLmNvbS93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzCisKK1RoZW4gcnVuIHRoZSBUb29scy9TY3Jp
cHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBtb2Rp
Znkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJl
cXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5n
IHZlbmRvciBwcmVmaXhlczoKK05vbmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTGlzdCBvZiBmaWxlczoK
Ky9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVt
ZW50cy91cGdyYWRpbmcvTm9kZS1jbG9uZU5vZGUuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL3VwZ3JhZGluZy91cGdyYWRp
bmctcGFyc2VyLWNyZWF0ZWQtZWxlbWVudC5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy93M2MtaW1wb3J0
LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9t
LWVsZW1lbnRzL3czYy1pbXBvcnQubG9nCmluZGV4IGU4MDM3OWE1OGIyZTYxOGEwOTQxY2NhNDE3
NzdlNjUzODQ4NzdiYTMuLmIzNTZjNTQ0ZjVmMDJjODFkM2YyNjBhNTM0NDMzNTljZmJkNWU5MjQg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3VzdG9tLWVsZW1lbnRzL3czYy1pbXBvcnQubG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL3czYy1pbXBvcnQubG9nCkBA
IC0xNiw2ICsxNiw3IEBAIE5vbmUKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogTGlzdCBvZiBmaWxlczoKIC9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50
cy9DdXN0b21FbGVtZW50UmVnaXN0cnkuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL0RvY3VtZW50LWNyZWF0ZUVsZW1lbnQu
aHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9t
LWVsZW1lbnRzL0hUTUxFbGVtZW50LWNvbnN0cnVjdG9yLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9PV05FUlMKIC9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9h
ZG9wdGVkLWNhbGxiYWNrLmh0bWwKQEAgLTIzLDMgKzI0LDQgQEAgTGlzdCBvZiBmaWxlczoKIC9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50
cy9jb25uZWN0ZWQtY2FsbGJhY2tzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9kaXNjb25uZWN0ZWQtY2FsbGJhY2tzLmh0
bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1l
bGVtZW50cy9yZWFjdGlvbi10aW1pbmcuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL3VwZ3JhZGluZy5odG1sCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>