<?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>201624</bug_id>
          
          <creation_ts>2019-09-09 18:45:45 -0700</creation_ts>
          <short_desc>Web Inspector: Remove legacy CodeMirror based pretty printers</short_desc>
          <delta_ts>2019-09-11 14:26:20 -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>Web Inspector</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>201535</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Joseph Pecoraro">joepeck</reporter>
          <assigned_to name="Joseph Pecoraro">joepeck</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>hi</cc>
    
    <cc>inspector-bugzilla-changes</cc>
    
    <cc>jer.noble</cc>
    
    <cc>joepeck</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1569398</commentid>
    <comment_count>0</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2019-09-09 18:45:45 -0700</bug_when>
    <thetext>Remove legacy CodeMirror based pretty printers

These haven&apos;t been used in a while. We already support JS/CSS formatters on a worker without CodeMirror.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1569400</commentid>
    <comment_count>1</comment_count>
      <attachid>378428</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2019-09-09 18:48:53 -0700</bug_when>
    <thetext>Created attachment 378428
[PATCH] Proposed Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1569648</commentid>
    <comment_count>2</comment_count>
      <attachid>378428</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-09-10 13:45:22 -0700</bug_when>
    <thetext>Comment on attachment 378428
[PATCH] Proposed Fix

r=me after rebase :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1569734</commentid>
    <comment_count>3</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2019-09-10 16:46:34 -0700</bug_when>
    <thetext>Just waiting on the earlier patch to land.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1569761</commentid>
    <comment_count>4</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2019-09-10 17:36:00 -0700</bug_when>
    <thetext>Actually no need to wait for HTML Formatter. I can land this first.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1569765</commentid>
    <comment_count>5</comment_count>
      <attachid>378515</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2019-09-10 17:39:19 -0700</bug_when>
    <thetext>Created attachment 378515
[PATCH] For Landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1569767</commentid>
    <comment_count>6</comment_count>
      <attachid>378516</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2019-09-10 17:41:14 -0700</bug_when>
    <thetext>Created attachment 378516
[PATCH] For Landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1569821</commentid>
    <comment_count>7</comment_count>
      <attachid>378516</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-09-10 21:01:47 -0700</bug_when>
    <thetext>Comment on attachment 378516
[PATCH] For Landing

Clearing flags on attachment: 378516

Committed r249751: &lt;https://trac.webkit.org/changeset/249751&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1569978</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-09-11 14:26:20 -0700</bug_when>
    <thetext>&lt;rdar://problem/55276530&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>378428</attachid>
            <date>2019-09-09 18:48:53 -0700</date>
            <delta_ts>2019-09-10 13:45:22 -0700</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>rm-legacy-1.patch</filename>
            <type>text/plain</type>
            <size>131457</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAzOTlkYmE2NjhjNy4uOGVjM2JjNGVmOGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0OCBAQAor
MjAxOS0wOS0wOSAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgorCisgICAg
ICAgIFdlYiBJbnNwZWN0b3I6IFJlbW92ZSBsZWdhY3kgQ29kZU1pcnJvciBiYXNlZCBwcmV0dHkg
cHJpbnRlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIwMTYyNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogaW5zcGVjdG9yL2NvZGVtaXJyb3IvcHJldHR5cHJpbnRpbmctY3NzLWV4cGVjdGVkLnR4dDog
UmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvY29kZW1pcnJvci9wcmV0dHlwcmludGluZy1j
c3MuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvY29kZW1pcnJvci9wcmV0dHlw
cmludGluZy1qYXZhc2NyaXB0LWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNw
ZWN0b3IvY29kZW1pcnJvci9wcmV0dHlwcmludGluZy1qYXZhc2NyaXB0Lmh0bWw6IFJlbW92ZWQu
CisgICAgICAgICogaW5zcGVjdG9yL2NvZGVtaXJyb3IvcmVzb3VyY2VzL3ByZXR0eXByaW50aW5n
L2Nzcy10ZXN0cy9iYXNpYy1leHBlY3RlZC5jc3M6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVj
dG9yL2NvZGVtaXJyb3IvcmVzb3VyY2VzL3ByZXR0eXByaW50aW5nL2Nzcy10ZXN0cy9iYXNpYy5j
c3M6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2NvZGVtaXJyb3IvcmVzb3VyY2VzL3By
ZXR0eXByaW50aW5nL2Nzcy10ZXN0cy9jYWxjLWV4cGVjdGVkLmNzczogUmVtb3ZlZC4KKyAgICAg
ICAgKiBpbnNwZWN0b3IvY29kZW1pcnJvci9yZXNvdXJjZXMvcHJldHR5cHJpbnRpbmcvY3NzLXRl
c3RzL2NhbGMuY3NzOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9jb2RlbWlycm9yL3Jl
c291cmNlcy9wcmV0dHlwcmludGluZy9jc3MtdGVzdHMvZ3JhZGllbnQtZXhwZWN0ZWQuY3NzOiBS
ZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9jb2RlbWlycm9yL3Jlc291cmNlcy9wcmV0dHlw
cmludGluZy9jc3MtdGVzdHMvZ3JhZGllbnQuY3NzOiBSZW1vdmVkLgorICAgICAgICAqIGluc3Bl
Y3Rvci9jb2RlbWlycm9yL3Jlc291cmNlcy9wcmV0dHlwcmludGluZy9jc3MtdGVzdHMva2V5ZnJh
bWVzLWV4cGVjdGVkLmNzczogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvY29kZW1pcnJv
ci9yZXNvdXJjZXMvcHJldHR5cHJpbnRpbmcvY3NzLXRlc3RzL2tleWZyYW1lcy5jc3M6IFJlbW92
ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2NvZGVtaXJyb3IvcmVzb3VyY2VzL3ByZXR0eXByaW50
aW5nL2Nzcy10ZXN0cy9tZWRpYS1xdWVyeS1leHBlY3RlZC5jc3M6IFJlbW92ZWQuCisgICAgICAg
ICogaW5zcGVjdG9yL2NvZGVtaXJyb3IvcmVzb3VyY2VzL3ByZXR0eXByaW50aW5nL2Nzcy10ZXN0
cy9tZWRpYS1xdWVyeS5jc3M6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2NvZGVtaXJy
b3IvcmVzb3VyY2VzL3ByZXR0eXByaW50aW5nL2Nzcy10ZXN0cy9zZWxlY3RvcnMtZXhwZWN0ZWQu
Y3NzOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9jb2RlbWlycm9yL3Jlc291cmNlcy9w
cmV0dHlwcmludGluZy9jc3MtdGVzdHMvc2VsZWN0b3JzLmNzczogUmVtb3ZlZC4KKyAgICAgICAg
KiBpbnNwZWN0b3IvY29kZW1pcnJvci9yZXNvdXJjZXMvcHJldHR5cHJpbnRpbmcvY3NzLXRlc3Rz
L3dyYXBwaW5nLWV4cGVjdGVkLmNzczogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvY29k
ZW1pcnJvci9yZXNvdXJjZXMvcHJldHR5cHJpbnRpbmcvY3NzLXRlc3RzL3dyYXBwaW5nLmNzczog
UmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvY29kZW1pcnJvci9yZXNvdXJjZXMvcHJldHR5
cHJpbnRpbmcvamF2YXNjcmlwdC10ZXN0cy9ibG9jay1jb21tZW50LWV4cGVjdGVkLmpzOiBSZW1v
dmVkLgorICAgICAgICAqIGluc3BlY3Rvci9jb2RlbWlycm9yL3Jlc291cmNlcy9wcmV0dHlwcmlu
dGluZy9qYXZhc2NyaXB0LXRlc3RzL2Jsb2NrLWNvbW1lbnQuanM6IFJlbW92ZWQuCisgICAgICAg
ICogaW5zcGVjdG9yL2NvZGVtaXJyb3IvcmVzb3VyY2VzL3ByZXR0eXByaW50aW5nL2phdmFzY3Jp
cHQtdGVzdHMvZG8td2hpbGUtbG9vcC1leHBlY3RlZC5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBp
bnNwZWN0b3IvY29kZW1pcnJvci9yZXNvdXJjZXMvcHJldHR5cHJpbnRpbmcvamF2YXNjcmlwdC10
ZXN0cy9kby13aGlsZS1sb29wLmpzOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9jb2Rl
bWlycm9yL3Jlc291cmNlcy9wcmV0dHlwcmludGluZy9qYXZhc2NyaXB0LXRlc3RzL2RvLXdoaWxl
LXdpdGhpbi1pZi1leHBlY3RlZC5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvY29k
ZW1pcnJvci9yZXNvdXJjZXMvcHJldHR5cHJpbnRpbmcvamF2YXNjcmlwdC10ZXN0cy9kby13aGls
ZS13aXRoaW4taWYuanM6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2NvZGVtaXJyb3Iv
cmVzb3VyY2VzL3ByZXR0eXByaW50aW5nL2phdmFzY3JpcHQtdGVzdHMvaWYtZm9sbG93ZWQtYnkt
d2hpbGUtZXhwZWN0ZWQuanM6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2NvZGVtaXJy
b3IvcmVzb3VyY2VzL3ByZXR0eXByaW50aW5nL2phdmFzY3JpcHQtdGVzdHMvaWYtZm9sbG93ZWQt
Ynktd2hpbGUuanM6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2NvZGVtaXJyb3IvcmVz
b3VyY2VzL3ByZXR0eXByaW50aW5nL2phdmFzY3JpcHQtdGVzdHMvaWYtd2hpbGUtd2l0aGluLWRv
LXdoaWxlLWV4cGVjdGVkLmpzOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9jb2RlbWly
cm9yL3Jlc291cmNlcy9wcmV0dHlwcmludGluZy9qYXZhc2NyaXB0LXRlc3RzL2lmLXdoaWxlLXdp
dGhpbi1kby13aGlsZS5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvY29kZW1pcnJv
ci9yZXNvdXJjZXMvcHJldHR5cHJpbnRpbmcvamF2YXNjcmlwdC10ZXN0cy9zaW5nbGUtc3RhdGVt
ZW50LWJsb2Nrcy1leHBlY3RlZC5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvY29k
ZW1pcnJvci9yZXNvdXJjZXMvcHJldHR5cHJpbnRpbmcvamF2YXNjcmlwdC10ZXN0cy9zaW5nbGUt
c3RhdGVtZW50LWJsb2Nrcy5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvY29kZW1p
cnJvci9yZXNvdXJjZXMvcHJldHR5cHJpbnRpbmcvamF2YXNjcmlwdC10ZXN0cy9zd2l0Y2gtY2Fz
ZS1kZWZhdWx0LWV4cGVjdGVkLmpzOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9jb2Rl
bWlycm9yL3Jlc291cmNlcy9wcmV0dHlwcmludGluZy9qYXZhc2NyaXB0LXRlc3RzL3N3aXRjaC1j
YXNlLWRlZmF1bHQuanM6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2NvZGVtaXJyb3Iv
cmVzb3VyY2VzL3ByZXR0eXByaW50aW5nL2phdmFzY3JpcHQtdGVzdHMvdW5hcnktYmluYXJ5LW9w
ZXJhdG9ycy1leHBlY3RlZC5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvY29kZW1p
cnJvci9yZXNvdXJjZXMvcHJldHR5cHJpbnRpbmcvamF2YXNjcmlwdC10ZXN0cy91bmFyeS1iaW5h
cnktb3BlcmF0b3JzLmpzOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9jb2RlbWlycm9y
L3Jlc291cmNlcy9wcmV0dHlwcmludGluZy9qYXZhc2NyaXB0LXRlc3RzL3doaWxlLXdpdGhpbi1k
by13aGlsZS1leHBlY3RlZC5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvY29kZW1p
cnJvci9yZXNvdXJjZXMvcHJldHR5cHJpbnRpbmcvamF2YXNjcmlwdC10ZXN0cy93aGlsZS13aXRo
aW4tZG8td2hpbGUuanM6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2NvZGVtaXJyb3Iv
cmVzb3VyY2VzL3ByZXR0eXByaW50aW5nL3V0aWxpdGllcy5qczogUmVtb3ZlZC4KKwogMjAxOS0w
OS0wOSAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgogCiAgICAgICAgIFdl
YiBJbnNwZWN0b3I6IEZvcm1hdHRlcjogUHJldHR5IFByaW50IEhUTUwgcmVzb3VyY2VzIChpbmNs
dWRpbmcgaW5saW5lIDxzY3JpcHQ+LzxzdHlsZT4pCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvY29kZW1pcnJvci9wcmV0dHlwcmludGluZy1jc3MtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2NvZGVtaXJyb3IvcHJldHR5cHJpbnRpbmctY3NzLWV4cGVjdGVk
LnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDdlNmU2NTRjYzMuLjAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb2RlbWlycm9yL3ByZXR0eXByaW50aW5n
LWNzcy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyNSArMCwwIEBACi1UZXN0IENT
UyBwcmV0dHkgcHJpbnRpbmcgd2l0aCBDb2RlTWlycm9yLgotCi0KLT09IFJ1bm5pbmcgdGVzdCBz
dWl0ZTogQ29kZU1pcnJvci5QcmV0dHlQcmludGluZy5DU1MKLS0tIFJ1bm5pbmcgdGVzdCBjYXNl
OiBDb2RlTWlycm9yLlByZXR0eVByaW50aW5nLkNTUy5iYXNpYy5jc3MKLVBBU1MKLQotLS0gUnVu
bmluZyB0ZXN0IGNhc2U6IENvZGVNaXJyb3IuUHJldHR5UHJpbnRpbmcuQ1NTLmNhbGMuY3NzCi1Q
QVNTCi0KLS0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBDb2RlTWlycm9yLlByZXR0eVByaW50aW5nLkNT
Uy5ncmFkaWVudC5jc3MKLVBBU1MKLQotLS0gUnVubmluZyB0ZXN0IGNhc2U6IENvZGVNaXJyb3Iu
UHJldHR5UHJpbnRpbmcuQ1NTLmtleWZyYW1lcy5jc3MKLVBBU1MKLQotLS0gUnVubmluZyB0ZXN0
IGNhc2U6IENvZGVNaXJyb3IuUHJldHR5UHJpbnRpbmcuQ1NTLm1lZGlhLXF1ZXJ5LmNzcwotUEFT
UwotCi0tLSBSdW5uaW5nIHRlc3QgY2FzZTogQ29kZU1pcnJvci5QcmV0dHlQcmludGluZy5DU1Mu
c2VsZWN0b3JzLmNzcwotUEFTUwotCi0tLSBSdW5uaW5nIHRlc3QgY2FzZTogQ29kZU1pcnJvci5Q
cmV0dHlQcmludGluZy5DU1Mud3JhcHBpbmcuY3NzCi1QQVNTCi0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9jb2RlbWlycm9yL3ByZXR0eXByaW50aW5nLWNzcy5odG1sIGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2NvZGVtaXJyb3IvcHJldHR5cHJpbnRpbmctY3NzLmh0bWwKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhiMGE2OTVhZDNkLi4wMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29kZW1pcnJvci9wcmV0dHlwcmludGluZy1jc3MuaHRt
bAorKysgL2Rldi9udWxsCkBAIC0xLDI4ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+
Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJj
ZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9w
cmV0dHlwcmludGluZy91dGlsaXRpZXMuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWZ1bmN0aW9u
IHRlc3QoKQotewotICAgIGxldCBzdWl0ZSA9IEluc3BlY3RvclRlc3QuY3JlYXRlQXN5bmNTdWl0
ZSgiQ29kZU1pcnJvci5QcmV0dHlQcmludGluZy5DU1MiKTsKLQotICAgIGFkZFByZXR0eVByaW50
aW5nVGVzdHMoc3VpdGUsICJ0ZXh0L2NzcyIsIFsKLSAgICAgICAgInJlc291cmNlcy9wcmV0dHlw
cmludGluZy9jc3MtdGVzdHMvYmFzaWMuY3NzIiwKLSAgICAgICAgInJlc291cmNlcy9wcmV0dHlw
cmludGluZy9jc3MtdGVzdHMvY2FsYy5jc3MiLAotICAgICAgICAicmVzb3VyY2VzL3ByZXR0eXBy
aW50aW5nL2Nzcy10ZXN0cy9ncmFkaWVudC5jc3MiLAotICAgICAgICAicmVzb3VyY2VzL3ByZXR0
eXByaW50aW5nL2Nzcy10ZXN0cy9rZXlmcmFtZXMuY3NzIiwKLSAgICAgICAgInJlc291cmNlcy9w
cmV0dHlwcmludGluZy9jc3MtdGVzdHMvbWVkaWEtcXVlcnkuY3NzIiwKLSAgICAgICAgInJlc291
cmNlcy9wcmV0dHlwcmludGluZy9jc3MtdGVzdHMvc2VsZWN0b3JzLmNzcyIsCi0gICAgICAgICJy
ZXNvdXJjZXMvcHJldHR5cHJpbnRpbmcvY3NzLXRlc3RzL3dyYXBwaW5nLmNzcyIsCi0gICAgXSk7
Ci0KLSAgICBzdWl0ZS5ydW5UZXN0Q2FzZXNBbmRGaW5pc2goKTsKLX0KLTwvc2NyaXB0PgotPC9o
ZWFkPgotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+VGVzdCBDU1MgcHJldHR5IHByaW50
aW5nIHdpdGggQ29kZU1pcnJvci48L3A+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvY29kZW1pcnJvci9wcmV0dHlwcmludGluZy1qYXZhc2NyaXB0
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb2RlbWlycm9yL3ByZXR0eXBy
aW50aW5nLWphdmFzY3JpcHQtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBiNjZkY2ZjYWNhNS4uMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2NvZGVtaXJyb3IvcHJldHR5cHJpbnRpbmctamF2YXNjcmlwdC1leHBlY3RlZC50eHQKKysrIC9k
ZXYvbnVsbApAQCAtMSwzMSArMCwwIEBACi1UZXN0IEphdmFTY3JpcHQgcHJldHR5IHByaW50aW5n
IHdpdGggQ29kZU1pcnJvci4KLQotCi09PSBSdW5uaW5nIHRlc3Qgc3VpdGU6IENvZGVNaXJyb3Iu
UHJldHR5UHJpbnRpbmcuSmF2YVNjcmlwdAotLS0gUnVubmluZyB0ZXN0IGNhc2U6IENvZGVNaXJy
b3IuUHJldHR5UHJpbnRpbmcuSmF2YVNjcmlwdC5ibG9jay1jb21tZW50LmpzCi1QQVNTCi0KLS0t
IFJ1bm5pbmcgdGVzdCBjYXNlOiBDb2RlTWlycm9yLlByZXR0eVByaW50aW5nLkphdmFTY3JpcHQu
c2luZ2xlLXN0YXRlbWVudC1ibG9ja3MuanMKLVBBU1MKLQotLS0gUnVubmluZyB0ZXN0IGNhc2U6
IENvZGVNaXJyb3IuUHJldHR5UHJpbnRpbmcuSmF2YVNjcmlwdC5zd2l0Y2gtY2FzZS1kZWZhdWx0
LmpzCi1QQVNTCi0KLS0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBDb2RlTWlycm9yLlByZXR0eVByaW50
aW5nLkphdmFTY3JpcHQudW5hcnktYmluYXJ5LW9wZXJhdG9ycy5qcwotUEFTUwotCi0tLSBSdW5u
aW5nIHRlc3QgY2FzZTogQ29kZU1pcnJvci5QcmV0dHlQcmludGluZy5KYXZhU2NyaXB0LmRvLXdo
aWxlLWxvb3AuanMKLVBBU1MKLQotLS0gUnVubmluZyB0ZXN0IGNhc2U6IENvZGVNaXJyb3IuUHJl
dHR5UHJpbnRpbmcuSmF2YVNjcmlwdC5pZi1mb2xsb3dlZC1ieS13aGlsZS5qcwotUEFTUwotCi0t
LSBSdW5uaW5nIHRlc3QgY2FzZTogQ29kZU1pcnJvci5QcmV0dHlQcmludGluZy5KYXZhU2NyaXB0
LndoaWxlLXdpdGhpbi1kby13aGlsZS5qcwotUEFTUwotCi0tLSBSdW5uaW5nIHRlc3QgY2FzZTog
Q29kZU1pcnJvci5QcmV0dHlQcmludGluZy5KYXZhU2NyaXB0LmlmLXdoaWxlLXdpdGhpbi1kby13
aGlsZS5qcwotUEFTUwotCi0tLSBSdW5uaW5nIHRlc3QgY2FzZTogQ29kZU1pcnJvci5QcmV0dHlQ
cmludGluZy5KYXZhU2NyaXB0LmRvLXdoaWxlLXdpdGhpbi1pZi5qcwotUEFTUwotCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29kZW1pcnJvci9wcmV0dHlwcmludGluZy1qYXZh
c2NyaXB0Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29kZW1pcnJvci9wcmV0dHlwcmlu
dGluZy1qYXZhc2NyaXB0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY5MmVh
MGU4NDM0Li4wMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29kZW1pcnJv
ci9wcmV0dHlwcmludGluZy1qYXZhc2NyaXB0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzMCAr
MCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4v
Li4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0LmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJldHR5cHJpbnRpbmcvdXRpbGl0aWVzLmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBsZXQgc3VpdGUg
PSBJbnNwZWN0b3JUZXN0LmNyZWF0ZUFzeW5jU3VpdGUoIkNvZGVNaXJyb3IuUHJldHR5UHJpbnRp
bmcuSmF2YVNjcmlwdCIpOwotCi0gICAgYWRkUHJldHR5UHJpbnRpbmdUZXN0cyhzdWl0ZSwgInRl
eHQvamF2YXNjcmlwdCIsIFsKLSAgICAgICAgInJlc291cmNlcy9wcmV0dHlwcmludGluZy9qYXZh
c2NyaXB0LXRlc3RzL2Jsb2NrLWNvbW1lbnQuanMiLAotICAgICAgICAicmVzb3VyY2VzL3ByZXR0
eXByaW50aW5nL2phdmFzY3JpcHQtdGVzdHMvc2luZ2xlLXN0YXRlbWVudC1ibG9ja3MuanMiLAot
ICAgICAgICAicmVzb3VyY2VzL3ByZXR0eXByaW50aW5nL2phdmFzY3JpcHQtdGVzdHMvc3dpdGNo
LWNhc2UtZGVmYXVsdC5qcyIsCi0gICAgICAgICJyZXNvdXJjZXMvcHJldHR5cHJpbnRpbmcvamF2
YXNjcmlwdC10ZXN0cy91bmFyeS1iaW5hcnktb3BlcmF0b3JzLmpzIiwKLSAgICAgICAgInJlc291
cmNlcy9wcmV0dHlwcmludGluZy9qYXZhc2NyaXB0LXRlc3RzL2RvLXdoaWxlLWxvb3AuanMiLAot
ICAgICAgICAicmVzb3VyY2VzL3ByZXR0eXByaW50aW5nL2phdmFzY3JpcHQtdGVzdHMvaWYtZm9s
bG93ZWQtYnktd2hpbGUuanMiLAotICAgICAgICAicmVzb3VyY2VzL3ByZXR0eXByaW50aW5nL2ph
dmFzY3JpcHQtdGVzdHMvd2hpbGUtd2l0aGluLWRvLXdoaWxlLmpzIiwKLSAgICAgICAgInJlc291
cmNlcy9wcmV0dHlwcmludGluZy9qYXZhc2NyaXB0LXRlc3RzL2lmLXdoaWxlLXdpdGhpbi1kby13
aGlsZS5qcyIsCi0gICAgICAgICJyZXNvdXJjZXMvcHJldHR5cHJpbnRpbmcvamF2YXNjcmlwdC10
ZXN0cy9kby13aGlsZS13aXRoaW4taWYuanMiLAotICAgIF0pOwotCi0gICAgc3VpdGUucnVuVGVz
dENhc2VzQW5kRmluaXNoKCk7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0i
cnVuVGVzdCgpIj4KLTxwPlRlc3QgSmF2YVNjcmlwdCBwcmV0dHkgcHJpbnRpbmcgd2l0aCBDb2Rl
TWlycm9yLjwvcD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9jb2RlbWlycm9yL3Jlc291cmNlcy9wcmV0dHlwcmludGluZy9jc3MtdGVzdHMvYmFz
aWMtZXhwZWN0ZWQuY3NzIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvZGVtaXJyb3IvcmVzb3Vy
Y2VzL3ByZXR0eXByaW50aW5nL2Nzcy10ZXN0cy9iYXNpYy1leHBlY3RlZC5jc3MKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU0YmFmYTg5YzE3Li4wMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvY29kZW1pcnJvci9yZXNvdXJjZXMvcHJldHR5cHJpbnRpbmcvY3Nz
LXRlc3RzL2Jhc2ljLWV4cGVjdGVkLmNzcworKysgL2Rldi9udWxsCkBAIC0xLDk1ICswLDAgQEAK
LS8qIFJFU0VUICovCi1odG1sLCBib2R5LCBkaXYsIHVsLCBvbCwgbGksIGRsLCBkdCwgZGQsIGgx
LCBoMiwgaDMsIGg0LCBoNSwgaDYsIHByZSwgZm9ybSwgcCwKLWJsb2NrcXVvdGUsIGZpZWxkc2V0
LCBpbnB1dCwgYWJiciwgYXJ0aWNsZSwgYXNpZGUsIGNvbW1hbmQsIGRldGFpbHMsCi1maWdjYXB0
aW9uLCBmaWd1cmUsIGZvb3RlciwgaGVhZGVyLCBoZ3JvdXAsIG1hcmssIG1ldGVyLCBuYXYsIG91
dHB1dCwKLXByb2dyZXNzLCBzZWN0aW9uLCBzdW1tYXJ5LCB0aW1lIHsKLSAgICBtYXJnaW46IDA7
Ci0gICAgcGFkZGluZzogMDsKLX0KLQotaDEsIGgyLCBoMywgaDQsIGg1LCBoNiwgcHJlLCBjb2Rl
LCBhZGRyZXNzLCBjYXB0aW9uLCBjaXRlLCBjb2RlLCBlbSwgc3Ryb25nLAotdGgsIGZpZ2NhcHRp
b24gewotICAgIGZvbnQtc2l6ZTogMWVtOwotICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7Ci0gICAg
Zm9udC1zdHlsZTogbm9ybWFsOwotfQotCi1maWVsZHNldCwgaWZyYW1lIHsKLSAgICBib3JkZXI6
IG5vbmUKLX0KLQotdGFibGUgewotICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7Ci0gICAg
Ym9yZGVyLXNwYWNpbmc6IDAKLX0KLQotYXJ0aWNsZSwgYXNpZGUsIGZvb3RlciwgaGVhZGVyLCBo
Z3JvdXAsIG5hdiwgc2VjdGlvbiwgZmlndXJlLCBmaWdjYXB0aW9uIHsKLSAgICBkaXNwbGF5OiBi
bG9jazsKLX0KLQotLyogRklYTUU6IGV4dHJhIHdoaXRlc3BhY2UgKi8KLWNhcHRpb24gLCB0aCB7
Ci0gICAgdGV4dC1hbGlnbjogbGVmdDsKLX0KLQotLyogSU1QT1JUQU5UICovCi0vKiBGSVhNRTog
d2hpdGVzcGFjZSBiZXR3ZWVuICIhIiBhbmQgImltcG9ydGFudCIgY2FuIGJlIGltcHJvdmVkICov
Ci1ib2R5IHsKLSAgICBjb2xvcjogcmVkICFpbXBvcnRhbnQ7Ci19Ci0KLWJvZHkgewotICAgIGNv
bG9yOiByZWQgIWltcG9ydGFudDsKLX0KLQotYm9keSB7Ci0gICAgY29sb3I6IHJlZCAhIGltcG9y
dGFudDsKLX0KLQotLyogSU5MSU5FIENPTU1FTlQgKi8KLWJvZHkgewotICAgIGNvbG9yOiByZWQ7
IC8qIGJsdWUgKi8KLX0KLQotLyogVVJMUyAqLwotLm15aW1hZ2UgewotICAgIGJhY2tncm91bmQt
aW1hZ2U6IHVybChodHRwOi8vZXhhbXBsZS5jb20vaW1hZ2UucG5nKSwgdXJsKHR3by5wbmcpCi19
Ci0KLS5teWltYWdlIHsKLSAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoImh0dHA6Ly9leGFtcGxl
LmNvbS9pbWFnZS5wbmciKSwgdXJsKCJ0d28ucG5nIikKLX0KLQotLyogUFJFRklYRUQgU0VMRUNU
T1JTIEFORCBQUk9QRVJUSUVTICovCi0uZm9vIC13ZWJraXQtYW55KGEsIGIsIGMpIHsKLSAgICAt
d2Via2l0LXRyYW5zaXRpb246IGFsbDsKLSAgICBjb2xvcjogcmVkCi19Ci0KLS8qIFBTRVVETyBT
RUxFQ1RPUlMgKi8KLWE6bGluaywgYTp2aXNpdGVkIHsKLSAgICBjb2xvcjogYmxhY2sKLX0KLQot
LyogUFNFVURPIEVMRU1FTlRTICovCi1wOjpiZWZvcmUsIHA6OmFmdGVyIHsKLSAgICBjb250ZW50
OiAidGVzdCI7Ci19Ci0KLS8qIFJHQiwgSFNMICovCi1ib2R5IHsKLSAgICBjb2xvcjogcmdiKDEs
IDEsIDEpOwotICAgIGNvbG9yOiByZ2JhKDEwMCwgMCwgMjU1LCAwLjUpOwotICAgIGNvbG9yOiBo
c2woMTIwLCAxMDAlLCA1MCUpOwotICAgIGNvbG9yOiBoc2xhKDEyMCwgNjAlLCA3MCUsIDAuMyk7
Ci19Ci0KLS8qCi0gKiBUaGlzIGlzIGEgbXVsdGktbGluZSBjb21tZW50LgotICogLSB3aXRoIGlu
ZGVudGF0aW9uCi0gKiAtIGFuZCBpcyBnZW5lcmFsbHkgYXdlc29tZS4KLSAqLwotYm9keSB7Ci0g
ICAgY29sb3I6IHJlZAotfQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29k
ZW1pcnJvci9yZXNvdXJjZXMvcHJldHR5cHJpbnRpbmcvY3NzLXRlc3RzL2Jhc2ljLmNzcyBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9jb2RlbWlycm9yL3Jlc291cmNlcy9wcmV0dHlwcmludGluZy9j
c3MtdGVzdHMvYmFzaWMuY3NzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwOTM5ZjQ4
ZTYwNy4uMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvZGVtaXJyb3Iv
cmVzb3VyY2VzL3ByZXR0eXByaW50aW5nL2Nzcy10ZXN0cy9iYXNpYy5jc3MKKysrIC9kZXYvbnVs
bApAQCAtMSw0MSArMCwwIEBACi0vKiBSRVNFVCAqLwotaHRtbCxib2R5LGRpdix1bCxvbCxsaSxk
bCxkdCxkZCxoMSxoMixoMyxoNCxoNSxoNixwcmUsZm9ybSxwLGJsb2NrcXVvdGUsZmllbGRzZXQs
aW5wdXQsYWJicixhcnRpY2xlLGFzaWRlLGNvbW1hbmQsZGV0YWlscyxmaWdjYXB0aW9uLGZpZ3Vy
ZSxmb290ZXIsaGVhZGVyLGhncm91cCxtYXJrLG1ldGVyLG5hdixvdXRwdXQscHJvZ3Jlc3Msc2Vj
dGlvbixzdW1tYXJ5LHRpbWUgeyBtYXJnaW46IDA7IHBhZGRpbmc6IDA7IH0KLWgxLGgyLGgzLGg0
LGg1LGg2LHByZSxjb2RlLGFkZHJlc3MsY2FwdGlvbixjaXRlLGNvZGUsZW0sc3Ryb25nLHRoLGZp
Z2NhcHRpb24geyBmb250LXNpemU6IDFlbTsgZm9udC13ZWlnaHQ6IG5vcm1hbDsgZm9udC1zdHls
ZTogbm9ybWFsOyB9Ci1maWVsZHNldCxpZnJhbWV7Ym9yZGVyOm5vbmV9Ci10YWJsZXtib3JkZXIt
Y29sbGFwc2U6Y29sbGFwc2U7Ym9yZGVyLXNwYWNpbmc6MH0KLWFydGljbGUsYXNpZGUsZm9vdGVy
LGhlYWRlcixoZ3JvdXAsbmF2LHNlY3Rpb24sZmlndXJlLGZpZ2NhcHRpb257ZGlzcGxheTogYmxv
Y2s7fQotCi0vKiBGSVhNRTogZXh0cmEgd2hpdGVzcGFjZSAqLwotY2FwdGlvbiAgLCAgIHRoIHsg
dGV4dC1hbGlnbjogbGVmdDsgfQotCi0vKiBJTVBPUlRBTlQgKi8KLS8qIEZJWE1FOiB3aGl0ZXNw
YWNlIGJldHdlZW4gIiEiIGFuZCAiaW1wb3J0YW50IiBjYW4gYmUgaW1wcm92ZWQgKi8KLWJvZHl7
Y29sb3I6cmVkIWltcG9ydGFudDt9Ci1ib2R5e2NvbG9yOnJlZCAhaW1wb3J0YW50O30KLWJvZHl7
Y29sb3I6cmVkICEgaW1wb3J0YW50O30KLQotLyogSU5MSU5FIENPTU1FTlQgKi8KLWJvZHl7Y29s
b3I6cmVkOy8qIGJsdWUgKi99Ci0KLS8qIFVSTFMgKi8KLS5teWltYWdle2JhY2tncm91bmQtaW1h
Z2U6dXJsKGh0dHA6Ly9leGFtcGxlLmNvbS9pbWFnZS5wbmcpLHVybCh0d28ucG5nKX0KLS5teWlt
YWdle2JhY2tncm91bmQtaW1hZ2U6dXJsKCJodHRwOi8vZXhhbXBsZS5jb20vaW1hZ2UucG5nIiks
dXJsKCJ0d28ucG5nIil9Ci0KLS8qIFBSRUZJWEVEIFNFTEVDVE9SUyBBTkQgUFJPUEVSVElFUyAq
LwotLmZvbyAtd2Via2l0LWFueShhLGIsYyl7LXdlYmtpdC10cmFuc2l0aW9uOmFsbDtjb2xvcjpy
ZWR9Ci0KLS8qIFBTRVVETyBTRUxFQ1RPUlMgKi8KLWE6bGluayxhOnZpc2l0ZWR7Y29sb3I6Ymxh
Y2t9Ci0KLS8qIFBTRVVETyBFTEVNRU5UUyAqLwotcDo6YmVmb3JlLHA6OmFmdGVye2NvbnRlbnQ6
InRlc3QiO30KLQotLyogUkdCLCBIU0wgKi8KLWJvZHl7Y29sb3I6cmdiKDEsMSwxKTtjb2xvcjpy
Z2JhKDEwMCwwLDI1NSwwLjUpO2NvbG9yOmhzbCgxMjAsMTAwJSw1MCUpO2NvbG9yOmhzbGEoMTIw
LDYwJSw3MCUsMC4zKTt9Ci0KLS8qCi0gKiBUaGlzIGlzIGEgbXVsdGktbGluZSBjb21tZW50Lgot
ICogLSB3aXRoIGluZGVudGF0aW9uCi0gKiAtIGFuZCBpcyBnZW5lcmFsbHkgYXdlc29tZS4KLSAq
LwotYm9keXtjb2xvcjpyZWR9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29k
ZW1pcnJvci9yZXNvdXJjZXMvcHJldHR5cHJpbnRpbmcvY3NzLXRlc3RzL2NhbGMtZXhwZWN0ZWQu
Y3NzIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvZGVtaXJyb3IvcmVzb3VyY2VzL3ByZXR0eXBy
aW50aW5nL2Nzcy10ZXN0cy9jYWxjLWV4cGVjdGVkLmNzcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMzRkZTMzOGFlNWYuLjAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9jb2RlbWlycm9yL3Jlc291cmNlcy9wcmV0dHlwcmludGluZy9jc3MtdGVzdHMvY2FsYy1l
eHBlY3RlZC5jc3MKKysrIC9kZXYvbnVsbApAQCAtMSwyMiArMCwwIEBACi0vKiBDQUxDIEVYUFJF
U1NJT05TICovCi0vKiBGSVhNRTogbmVnYXRpdmUgbnVtYmVycyBjYW4gYmUgaW1wcm92ZWQgKi8K
LWRpdiB7Ci0gICAgd2lkdGg6IC13ZWJraXQtY2FsYygxMDAlICsgODBweCArIDFlbSk7Ci19Ci0K
LWRpdiB7Ci0gICAgd2lkdGg6IC13ZWJraXQtY2FsYygxMDAlIC8gNik7Ci19Ci0KLWRpdiB7Ci0g
ICAgd2lkdGg6IC13ZWJraXQtY2FsYygxMCUgKiA2KTsKLX0KLQotZGl2IHsKLSAgICB3aWR0aDog
Y2FsYygtOTYwcHggKyA3NSUpOwotfQotCi1kaXYgewotICAgIHdpZHRoOiBjYWxjKDEwMHZ3LTUw
dncpOwotfQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29kZW1pcnJvci9y
ZXNvdXJjZXMvcHJldHR5cHJpbnRpbmcvY3NzLXRlc3RzL2NhbGMuY3NzIGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2NvZGVtaXJyb3IvcmVzb3VyY2VzL3ByZXR0eXByaW50aW5nL2Nzcy10ZXN0cy9j
YWxjLmNzcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjVkNjhkMTdkMGYuLjAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb2RlbWlycm9yL3Jlc291cmNlcy9w
cmV0dHlwcmludGluZy9jc3MtdGVzdHMvY2FsYy5jc3MKKysrIC9kZXYvbnVsbApAQCAtMSw3ICsw
LDAgQEAKLS8qIENBTEMgRVhQUkVTU0lPTlMgKi8KLS8qIEZJWE1FOiBuZWdhdGl2ZSBudW1iZXJz
IGNhbiBiZSBpbXByb3ZlZCAqLwotZGl2e3dpZHRoOi13ZWJraXQtY2FsYygxMDAlKzgwcHgrMWVt
KTt9Ci1kaXZ7d2lkdGg6LXdlYmtpdC1jYWxjKDEwMCUvNik7fQotZGl2e3dpZHRoOi13ZWJraXQt
Y2FsYygxMCUqNik7fQotZGl2e3dpZHRoOmNhbGMoLTk2MHB4Kzc1JSk7fQotZGl2e3dpZHRoOmNh
bGMoMTAwdnctNTB2dyk7fQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvZGVt
aXJyb3IvcmVzb3VyY2VzL3ByZXR0eXByaW50aW5nL2Nzcy10ZXN0cy9ncmFkaWVudC1leHBlY3Rl
ZC5jc3MgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29kZW1pcnJvci9yZXNvdXJjZXMvcHJldHR5
cHJpbnRpbmcvY3NzLXRlc3RzL2dyYWRpZW50LWV4cGVjdGVkLmNzcwpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggNzMzNTgxNzM0MDcuLjAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9jb2RlbWlycm9yL3Jlc291cmNlcy9wcmV0dHlwcmludGluZy9jc3MtdGVzdHMv
Z3JhZGllbnQtZXhwZWN0ZWQuY3NzCisrKyAvZGV2L251bGwKQEAgLTEsOSArMCwwIEBACi0uZG90
LW5hdjpudGgtY2hpbGQoMW4pIGxpIGEuYWN0aXZlIHsKLSAgICB0b3A6IDA7Ci0gICAgYmFja2dy
b3VuZDogIzA4YzsKLSAgICBiYWNrZ3JvdW5kOiAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwgbGVm
dHRvcCwgbGVmdGJvdHRvbSwgY29sb3Itc3RvcCgwJSwgcmdiKDEyNiwgMTk4LCAyMzQpKSwgY29s
b3Itc3RvcCgyNCUsIHJnYig3MCwgMTc5LCAyMzQpKSwgY29sb3Itc3RvcCgxMDAlLCByZ2IoMywg
MTM1LCAyMDEpKSk7Ci0gICAgYmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9w
LCByZ2IoMTI2LCAxOTgsIDIzNCkgMCUsIHJnYig3MCwgMTc5LCAyMzQpIDQ1JSwgcmdiKDMsIDEz
NSwgMjAxKSAxMDAlKTsKLSAgICBiYWNrZ3JvdW5kOiAtbW96LWxpbmVhci1ncmFkaWVudCh0b3As
IHJnYigxMjYsIDE5OCwgMjM0KSAwJSwgcmdiKDcwLCAxNzksIDIzNCkgNDUlLCByZ2IoMywgMTM1
LCAyMDEpIDEwMCUpOwotICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0b3AsIHJnYigx
MjYsIDE5OCwgMjM0KSAwJSwgcmdiKDcwLCAxNzksIDIzNCkgNDUlLCByZ2IoMywgMTM1LCAyMDEp
IDEwMCUpOwotfQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29kZW1pcnJv
ci9yZXNvdXJjZXMvcHJldHR5cHJpbnRpbmcvY3NzLXRlc3RzL2dyYWRpZW50LmNzcyBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9jb2RlbWlycm9yL3Jlc291cmNlcy9wcmV0dHlwcmludGluZy9jc3Mt
dGVzdHMvZ3JhZGllbnQuY3NzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmMzU2MmFk
NGE4Ny4uMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvZGVtaXJyb3Iv
cmVzb3VyY2VzL3ByZXR0eXByaW50aW5nL2Nzcy10ZXN0cy9ncmFkaWVudC5jc3MKKysrIC9kZXYv
bnVsbApAQCAtMSw3ICswLDAgQEAKLS5kb3QtbmF2Om50aC1jaGlsZCgxbikgbGkgYS5hY3RpdmUg
ewotICAgIHRvcDowO2JhY2tncm91bmQ6IzA4YzsKLQliYWNrZ3JvdW5kOi13ZWJraXQtZ3JhZGll
bnQobGluZWFyLGxlZnR0b3AsbGVmdGJvdHRvbSxjb2xvci1zdG9wKDAlLHJnYigxMjYsMTk4LDIz
NCkpLGNvbG9yLXN0b3AoMjQlLHJnYig3MCwxNzksMjM0KSksY29sb3Itc3RvcCgxMDAlLHJnYigz
LDEzNSwyMDEpKSk7Ci0JYmFja2dyb3VuZDotd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3Ascmdi
KDEyNiwxOTgsMjM0KTAlLHJnYig3MCwxNzksMjM0KTQ1JSxyZ2IoMywxMzUsMjAxKTEwMCUpOwot
CWJhY2tncm91bmQ6ICAgLW1vei1saW5lYXItZ3JhZGllbnQodG9wLHJnYigxMjYsMTk4LDIzNCkw
JSxyZ2IoNzAsMTc5LDIzNCk0NSUscmdiKDMsMTM1LDIwMSkxMDAlKTsKLQliYWNrZ3JvdW5kOiAg
ICAgICAgbGluZWFyLWdyYWRpZW50KHRvcCxyZ2IoMTI2LDE5OCwyMzQpMCUscmdiKDcwLDE3OSwy
MzQpNDUlLHJnYigzLDEzNSwyMDEpMTAwJSk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvY29kZW1pcnJvci9yZXNvdXJjZXMvcHJldHR5cHJpbnRpbmcvY3NzLXRlc3RzL2tl
eWZyYW1lcy1leHBlY3RlZC5jc3MgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29kZW1pcnJvci9y
ZXNvdXJjZXMvcHJldHR5cHJpbnRpbmcvY3NzLXRlc3RzL2tleWZyYW1lcy1leHBlY3RlZC5jc3MK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU3MTA2NzIwNDQ3Li4wMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29kZW1pcnJvci9yZXNvdXJjZXMvcHJldHR5cHJp
bnRpbmcvY3NzLXRlc3RzL2tleWZyYW1lcy1leHBlY3RlZC5jc3MKKysrIC9kZXYvbnVsbApAQCAt
MSwxMCArMCwwIEBACi1ALXdlYmtpdC1rZXlmcmFtZXMgc3BpbiB7Ci0gICAgMCUgewotICAgICAg
ICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKC0xODBkZWcpIHRyYW5zbGF0ZSgwcHgsIDBweCk7
Ci0gICAgfQotCi0gICAgMTAwJSB7Ci0gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUo
MTgwZGVnKSB0cmFuc2xhdGUoMTBweCwgNzVweCk7Ci0gICAgfQotfQotCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvY29kZW1pcnJvci9yZXNvdXJjZXMvcHJldHR5cHJpbnRpbmcv
Y3NzLXRlc3RzL2tleWZyYW1lcy5jc3MgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29kZW1pcnJv
ci9yZXNvdXJjZXMvcHJldHR5cHJpbnRpbmcvY3NzLXRlc3RzL2tleWZyYW1lcy5jc3MKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJkODhiNTZjYzQ5Li4wMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvY29kZW1pcnJvci9yZXNvdXJjZXMvcHJldHR5cHJpbnRpbmcv
Y3NzLXRlc3RzL2tleWZyYW1lcy5jc3MKKysrIC9kZXYvbnVsbApAQCAtMSArMCwwIEBACi1ALXdl
YmtpdC1rZXlmcmFtZXMgc3BpbnswJXstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoLTE4MGRlZyl0
cmFuc2xhdGUoMHB4LDBweCk7fTEwMCV7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDE4MGRlZyl0
cmFuc2xhdGUoMTBweCw3NXB4KTt9fQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2NvZGVtaXJyb3IvcmVzb3VyY2VzL3ByZXR0eXByaW50aW5nL2Nzcy10ZXN0cy9tZWRpYS1xdWVy
eS1leHBlY3RlZC5jc3MgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29kZW1pcnJvci9yZXNvdXJj
ZXMvcHJldHR5cHJpbnRpbmcvY3NzLXRlc3RzL21lZGlhLXF1ZXJ5LWV4cGVjdGVkLmNzcwpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmFkMjI5YjUzNTUuLjAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9jb2RlbWlycm9yL3Jlc291cmNlcy9wcmV0dHlwcmludGlu
Zy9jc3MtdGVzdHMvbWVkaWEtcXVlcnktZXhwZWN0ZWQuY3NzCisrKyAvZGV2L251bGwKQEAgLTEs
MzUgKzAsMCBAQAotLyogTUVESUEgUVVFUlkgSU5ERU5UQVRJT04gKi8KLUBtZWRpYSBwcmludCB7
Ci0gICAgYm9keSwgI21haW4sICNjb250ZW50IHsKLSAgICAgICAgY29sb3I6ICMwMDAgIWltcG9y
dGFudDsKLSAgICB9Ci0KLSAgICBhLCBhOmxpbmssIGE6dmlzaXRlZCB7Ci0gICAgICAgIGNvbG9y
OiAjMDAwICFpbXBvcnRhbnQ7Ci0gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0
YW50OwotICAgIH0KLQotICAgICN0YWJzLCAjZ2xvYmFsaGVhZGVyLCAjZ2xvYmFsZm9vdGVyLCAj
ZGlyZWN0b3J5bmF2LCAubm9wcmludCwgLmhpZGUgewotICAgICAgICBkaXNwbGF5OiBub25lICFp
bXBvcnRhbnQ7Ci0gICAgfQotCi0gICAgI21haW4gYS5wZGYsICNtYWluIGEuaHRtbCwgI21haW4g
YS5xdCwgI21haW4gYS5pY2FsLCAjbWFpbiBhLmRsLCAjbWFpbiBhLmRtZywKLSAgICAjbWFpbiBh
LnppcCwgI21haW4gYS5rZXlub3RlLCAjbWFpbiBhLmF1ZGlvIHsKLSAgICAgICAgcGFkZGluZy1s
ZWZ0OiAwOwotICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lOwotICAgIH0KLX0KLQotLyog
TUVESUEgUVVFUlkgKi8KLUBtZWRpYSBzY3JlZW4gYW5kIChtYXgtZGV2aWNlLXdpZHRoOjQ4MHB4
KSB7Ci0gICAgaHRtbCB7Ci0gICAgICAgIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogbm9uZTsK
LSAgICB9Ci19Ci0KLUBtZWRpYSBub3QgKChzY3JlZW4pIGFuZCAocHJpbnQpKSwgKHByaW50KSB7
Ci0gICAgYm9keSB7Ci0gICAgICAgIGNvbG9yOiByZWQKLSAgICB9Ci19Ci0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9jb2RlbWlycm9yL3Jlc291cmNlcy9wcmV0dHlwcmludGlu
Zy9jc3MtdGVzdHMvbWVkaWEtcXVlcnkuY3NzIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvZGVt
aXJyb3IvcmVzb3VyY2VzL3ByZXR0eXByaW50aW5nL2Nzcy10ZXN0cy9tZWRpYS1xdWVyeS5jc3MK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI4NmJjZmZjMDlhLi4wMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29kZW1pcnJvci9yZXNvdXJjZXMvcHJldHR5cHJp
bnRpbmcvY3NzLXRlc3RzL21lZGlhLXF1ZXJ5LmNzcworKysgL2Rldi9udWxsCkBAIC0xLDYgKzAs
MCBAQAotLyogTUVESUEgUVVFUlkgSU5ERU5UQVRJT04gKi8KLUBtZWRpYSBwcmludHtib2R5LCNt
YWluLCNjb250ZW50e2NvbG9yOiMwMDAhaW1wb3J0YW50O31hLGE6bGluayxhOnZpc2l0ZWR7Y29s
b3I6IzAwMCFpbXBvcnRhbnQ7dGV4dC1kZWNvcmF0aW9uOm5vbmUhaW1wb3J0YW50O30jdGFicywj
Z2xvYmFsaGVhZGVyLCNnbG9iYWxmb290ZXIsI2RpcmVjdG9yeW5hdiwubm9wcmludCwuaGlkZXtk
aXNwbGF5Om5vbmUhaW1wb3J0YW50O30jbWFpbiBhLnBkZiwjbWFpbiBhLmh0bWwsI21haW4gYS5x
dCwjbWFpbiBhLmljYWwsI21haW4gYS5kbCwjbWFpbiBhLmRtZywjbWFpbiBhLnppcCwjbWFpbiBh
LmtleW5vdGUsI21haW4gYS5hdWRpb3twYWRkaW5nLWxlZnQ6MDtiYWNrZ3JvdW5kLWltYWdlOm5v
bmU7fX0KLQotLyogTUVESUEgUVVFUlkgKi8KLUBtZWRpYSBzY3JlZW4gYW5kKG1heC1kZXZpY2Ut
d2lkdGg6NDgwcHgpe2h0bWx7LXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0Om5vbmU7fX0KLUBtZWRp
YSBub3QoKHNjcmVlbilhbmQocHJpbnQpKSwocHJpbnQpe2JvZHl7Y29sb3I6cmVkfX0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb2RlbWlycm9yL3Jlc291cmNlcy9wcmV0dHlw
cmludGluZy9jc3MtdGVzdHMvc2VsZWN0b3JzLWV4cGVjdGVkLmNzcyBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9jb2RlbWlycm9yL3Jlc291cmNlcy9wcmV0dHlwcmludGluZy9jc3MtdGVzdHMvc2Vs
ZWN0b3JzLWV4cGVjdGVkLmNzcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmUwMDdm
OTNkNTcuLjAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb2RlbWlycm9y
L3Jlc291cmNlcy9wcmV0dHlwcmludGluZy9jc3MtdGVzdHMvc2VsZWN0b3JzLWV4cGVjdGVkLmNz
cworKysgL2Rldi9udWxsCkBAIC0xLDggKzAsMCBAQAotLyogU0hPUlQgU0VMRUNUT1IsIEVNUFRZ
IENPTlRFTlQgKi8KLWEge30KLQotLyogQ09NUExFWCBTRUxFQ1RPUiAqLwotZGl2IGRpdiA+IGRp
diNpZC5mb28uYmFyOmhvdmVyIC5zb21ldGhpbmcgPiAuY2hpbGQgfiAuc2libGluZyArIC5zaWJs
aW5nOjphZnRlciB7Ci0gICAgY29sb3I6IHJlZDsKLX0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2NvZGVtaXJyb3IvcmVzb3VyY2VzL3ByZXR0eXByaW50aW5nL2Nzcy10ZXN0
cy9zZWxlY3RvcnMuY3NzIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvZGVtaXJyb3IvcmVzb3Vy
Y2VzL3ByZXR0eXByaW50aW5nL2Nzcy10ZXN0cy9zZWxlY3RvcnMuY3NzCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA1YTNlZjdjNGI0Ny4uMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2NvZGVtaXJyb3IvcmVzb3VyY2VzL3ByZXR0eXByaW50aW5nL2Nzcy10ZXN0
cy9zZWxlY3RvcnMuY3NzCisrKyAvZGV2L251bGwKQEAgLTEsNSArMCwwIEBACi0vKiBTSE9SVCBT
RUxFQ1RPUiwgRU1QVFkgQ09OVEVOVCAqLwotYXt9Ci0KLS8qIENPTVBMRVggU0VMRUNUT1IgKi8K
LWRpdiBkaXY+ZGl2I2lkLmZvby5iYXI6aG92ZXIgLnNvbWV0aGluZz4uY2hpbGR+LnNpYmxpbmcr
LnNpYmxpbmc6OmFmdGVye2NvbG9yOnJlZDt9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvY29kZW1pcnJvci9yZXNvdXJjZXMvcHJldHR5cHJpbnRpbmcvY3NzLXRlc3RzL3dyYXBw
aW5nLWV4cGVjdGVkLmNzcyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb2RlbWlycm9yL3Jlc291
cmNlcy9wcmV0dHlwcmludGluZy9jc3MtdGVzdHMvd3JhcHBpbmctZXhwZWN0ZWQuY3NzCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlM2MwYmQyZjQ4OC4uMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvZGVtaXJyb3IvcmVzb3VyY2VzL3ByZXR0eXByaW50aW5n
L2Nzcy10ZXN0cy93cmFwcGluZy1leHBlY3RlZC5jc3MKKysrIC9kZXYvbnVsbApAQCAtMSwyMSAr
MCwwIEBACi0vKiBMT05HIExJU1RTIFNIT1VMRCBXUkFQICovCi1hLmJyb3dzZXdlYmFwcHNzLCBh
LmJ1c2luZXNzc3RvcmVzLCBhLmJ1eWlwaG9uZXMsIGEuYnV5bm93cywgYS5idXlub3dzLWFycm93
LAotYS5jb21pbmdzb29ucywgcDo6YmVmb3JlLCBhLmRlc2NhcmdhcmFob3JhcywgYS5kb3dubG9h
ZGl0dW5lc3MsIGEuZG93bmxvYWRub3dzLAotYS5maW5kcywgYS5mcmVldHJpYWxzLCBhLmdldHN0
YXJ0ZWRzLCBhLmdvcywgYS5ob3d0b2FwcGx5cywgYS5ob3d0b2J1eXMsCi1hLmpvaW5ub3dzLCBh
LmxlYXJubW9yZXMsIGEubmlrZWJ1eW5vd3MsIGEubm90aWZ5bWVzLCBhLm9yZGVybm93cywKLWEu
cHJlb3JkZXJub3dzLCBhLnByZW9yZGVycywgYS5yZXNlcnZlcywgYS5zdGFydHlvdXJzZWFyY2hz
LCBhLnN1Ym1pdHMsCi1hLnRyeWFtYWNzLCBhLnVwZ3JhZGVub3dzIHsKLSAgICBjb2xvcjogcmVk
Ci19Ci0KLWEuYnJvd3Nld2ViYXBwc3M6aG92ZXIsIGEuYnVzaW5lc3NzdG9yZXM6aG92ZXIsIGEu
YnV5aXBob25lczpob3ZlciwKLWEuYnV5bm93czpob3ZlciwgYS5idXlub3dzLWFycm93OmhvdmVy
LCBhLmNvbWluZ3Nvb25zOmhvdmVyLCBwOjpiZWZvcmUsCi1hLmRlc2NhcmdhcmFob3Jhczpob3Zl
ciwgYS5kb3dubG9hZGl0dW5lc3M6aG92ZXIsIGEuZG93bmxvYWRub3dzOmhvdmVyLAotYS5maW5k
czpob3ZlciwgYS5mcmVldHJpYWxzOmhvdmVyLCBhLmdldHN0YXJ0ZWRzOmhvdmVyLCBhLmdvczpo
b3ZlciwKLWEuaG93dG9hcHBseXM6aG92ZXIsIGEuaG93dG9idXlzOmhvdmVyLCBhLmpvaW5ub3dz
OmhvdmVyLCBhLmxlYXJubW9yZXM6aG92ZXIsCi1hLm5pa2VidXlub3dzOmhvdmVyLCBhLm5vdGlm
eW1lczpob3ZlciwgYS5vcmRlcm5vd3M6aG92ZXIsIGEucHJlb3JkZXJub3dzOmhvdmVyLAotYS5w
cmVvcmRlcnM6aG92ZXIsIGEucmVzZXJ2ZXM6aG92ZXIsIGEuc3RhcnR5b3Vyc2VhcmNoczpob3Zl
ciwgYS5zdWJtaXRzOmhvdmVyLAotYS50cnlhbWFjczpob3ZlciwgYS51cGdyYWRlbm93czpob3Zl
ciB7Ci0gICAgY29sb3I6IHJlZAotfQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvY29kZW1pcnJvci9yZXNvdXJjZXMvcHJldHR5cHJpbnRpbmcvY3NzLXRlc3RzL3dyYXBwaW5n
LmNzcyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb2RlbWlycm9yL3Jlc291cmNlcy9wcmV0dHlw
cmludGluZy9jc3MtdGVzdHMvd3JhcHBpbmcuY3NzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwYTVhN2EzOWJkYS4uMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2NvZGVtaXJyb3IvcmVzb3VyY2VzL3ByZXR0eXByaW50aW5nL2Nzcy10ZXN0cy93cmFwcGluZy5j
c3MKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLS8qIExPTkcgTElTVFMgU0hPVUxEIFdS
QVAgKi8KLWEuYnJvd3Nld2ViYXBwc3MsYS5idXNpbmVzc3N0b3JlcyxhLmJ1eWlwaG9uZXMsYS5i
dXlub3dzLGEuYnV5bm93cy1hcnJvdyxhLmNvbWluZ3Nvb25zLHA6OmJlZm9yZSxhLmRlc2Nhcmdh
cmFob3JhcyxhLmRvd25sb2FkaXR1bmVzcyxhLmRvd25sb2Fkbm93cyxhLmZpbmRzLGEuZnJlZXRy
aWFscyxhLmdldHN0YXJ0ZWRzLGEuZ29zLGEuaG93dG9hcHBseXMsYS5ob3d0b2J1eXMsYS5qb2lu
bm93cyxhLmxlYXJubW9yZXMsYS5uaWtlYnV5bm93cyxhLm5vdGlmeW1lcyxhLm9yZGVybm93cyxh
LnByZW9yZGVybm93cyxhLnByZW9yZGVycyxhLnJlc2VydmVzLGEuc3RhcnR5b3Vyc2VhcmNocyxh
LnN1Ym1pdHMsYS50cnlhbWFjcyxhLnVwZ3JhZGVub3dzIHtjb2xvcjpyZWR9Ci1hLmJyb3dzZXdl
YmFwcHNzOmhvdmVyLGEuYnVzaW5lc3NzdG9yZXM6aG92ZXIsYS5idXlpcGhvbmVzOmhvdmVyLGEu
YnV5bm93czpob3ZlcixhLmJ1eW5vd3MtYXJyb3c6aG92ZXIsYS5jb21pbmdzb29uczpob3Zlcixw
OjpiZWZvcmUsYS5kZXNjYXJnYXJhaG9yYXM6aG92ZXIsYS5kb3dubG9hZGl0dW5lc3M6aG92ZXIs
YS5kb3dubG9hZG5vd3M6aG92ZXIsYS5maW5kczpob3ZlcixhLmZyZWV0cmlhbHM6aG92ZXIsYS5n
ZXRzdGFydGVkczpob3ZlcixhLmdvczpob3ZlcixhLmhvd3RvYXBwbHlzOmhvdmVyLGEuaG93dG9i
dXlzOmhvdmVyLGEuam9pbm5vd3M6aG92ZXIsYS5sZWFybm1vcmVzOmhvdmVyLGEubmlrZWJ1eW5v
d3M6aG92ZXIsYS5ub3RpZnltZXM6aG92ZXIsYS5vcmRlcm5vd3M6aG92ZXIsYS5wcmVvcmRlcm5v
d3M6aG92ZXIsYS5wcmVvcmRlcnM6aG92ZXIsYS5yZXNlcnZlczpob3ZlcixhLnN0YXJ0eW91cnNl
YXJjaHM6aG92ZXIsYS5zdWJtaXRzOmhvdmVyLGEudHJ5YW1hY3M6aG92ZXIsYS51cGdyYWRlbm93
czpob3ZlciB7Y29sb3I6cmVkfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nv
ZGVtaXJyb3IvcmVzb3VyY2VzL3ByZXR0eXByaW50aW5nL2phdmFzY3JpcHQtdGVzdHMvYmxvY2st
Y29tbWVudC1leHBlY3RlZC5qcyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb2RlbWlycm9yL3Jl
c291cmNlcy9wcmV0dHlwcmludGluZy9qYXZhc2NyaXB0LXRlc3RzL2Jsb2NrLWNvbW1lbnQtZXhw
ZWN0ZWQuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQyNWMwZjEyMzVjLi4wMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29kZW1pcnJvci9yZXNvdXJjZXMv
cHJldHR5cHJpbnRpbmcvamF2YXNjcmlwdC10ZXN0cy9ibG9jay1jb21tZW50LWV4cGVjdGVkLmpz
CisrKyAvZGV2L251bGwKQEAgLTEsNCArMCwwIEBACi0vKgotICogVGVzdAotICovCi0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb2RlbWlycm9yL3Jlc291cmNlcy9wcmV0dHlw
cmludGluZy9qYXZhc2NyaXB0LXRlc3RzL2Jsb2NrLWNvbW1lbnQuanMgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvY29kZW1pcnJvci9yZXNvdXJjZXMvcHJldHR5cHJpbnRpbmcvamF2YXNjcmlwdC10
ZXN0cy9ibG9jay1jb21tZW50LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MzVi
ZjI1NDk5MC4uMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvZGVtaXJy
b3IvcmVzb3VyY2VzL3ByZXR0eXByaW50aW5nL2phdmFzY3JpcHQtdGVzdHMvYmxvY2stY29tbWVu
dC5qcworKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotLyoKLSAqIFRlc3QKLSAqLwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvZGVtaXJyb3IvcmVzb3VyY2VzL3ByZXR0
eXByaW50aW5nL2phdmFzY3JpcHQtdGVzdHMvZG8td2hpbGUtbG9vcC1leHBlY3RlZC5qcyBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9jb2RlbWlycm9yL3Jlc291cmNlcy9wcmV0dHlwcmludGluZy9q
YXZhc2NyaXB0LXRlc3RzL2RvLXdoaWxlLWxvb3AtZXhwZWN0ZWQuanMKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDA4NWEyMGI1MDc1Li4wMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvY29kZW1pcnJvci9yZXNvdXJjZXMvcHJldHR5cHJpbnRpbmcvamF2YXNjcmlw
dC10ZXN0cy9kby13aGlsZS1sb29wLWV4cGVjdGVkLmpzCisrKyAvZGV2L251bGwKQEAgLTEsNCAr
MCwwIEBACi1kbyB7Ci0gICAgIngiCi19IHdoaWxlICgwKTsKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2NvZGVtaXJyb3IvcmVzb3VyY2VzL3ByZXR0eXByaW50aW5nL2phdmFz
Y3JpcHQtdGVzdHMvZG8td2hpbGUtbG9vcC5qcyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb2Rl
bWlycm9yL3Jlc291cmNlcy9wcmV0dHlwcmludGluZy9qYXZhc2NyaXB0LXRlc3RzL2RvLXdoaWxl
LWxvb3AuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFlYjNlYmUzN2U3Li4wMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29kZW1pcnJvci9yZXNvdXJjZXMv
cHJldHR5cHJpbnRpbmcvamF2YXNjcmlwdC10ZXN0cy9kby13aGlsZS1sb29wLmpzCisrKyAvZGV2
L251bGwKQEAgLTEgKzAsMCBAQAotZG97IngifXdoaWxlKDApOwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2NvZGVtaXJyb3IvcmVzb3VyY2VzL3ByZXR0eXByaW50aW5nL2phdmFz
Y3JpcHQtdGVzdHMvZG8td2hpbGUtd2l0aGluLWlmLWV4cGVjdGVkLmpzIGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2NvZGVtaXJyb3IvcmVzb3VyY2VzL3ByZXR0eXByaW50aW5nL2phdmFzY3JpcHQt
dGVzdHMvZG8td2hpbGUtd2l0aGluLWlmLWV4cGVjdGVkLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA5MzNkNWJjNWViYS4uMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2NvZGVtaXJyb3IvcmVzb3VyY2VzL3ByZXR0eXByaW50aW5nL2phdmFzY3JpcHQtdGVz
dHMvZG8td2hpbGUtd2l0aGluLWlmLWV4cGVjdGVkLmpzCisrKyAvZGV2L251bGwKQEAgLTEsNiAr
MCwwIEBACi1pZiAodHJ1ZSkgewotICAgIGRvIHsKLSAgICAgICAgdmFyIHg7Ci0gICAgfSB3aGls
ZSAoMCk7Ci19Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb2RlbWlycm9y
L3Jlc291cmNlcy9wcmV0dHlwcmludGluZy9qYXZhc2NyaXB0LXRlc3RzL2RvLXdoaWxlLXdpdGhp
bi1pZi5qcyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb2RlbWlycm9yL3Jlc291cmNlcy9wcmV0
dHlwcmludGluZy9qYXZhc2NyaXB0LXRlc3RzL2RvLXdoaWxlLXdpdGhpbi1pZi5qcwpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTI4N2U5YTViMjYuLjAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9jb2RlbWlycm9yL3Jlc291cmNlcy9wcmV0dHlwcmludGluZy9q
YXZhc2NyaXB0LXRlc3RzL2RvLXdoaWxlLXdpdGhpbi1pZi5qcworKysgL2Rldi9udWxsCkBAIC0x
ICswLDAgQEAKLWlmICh0cnVlKSB7IGRvIHt2YXIgeDt9IHdoaWxlICgwKTt9CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29kZW1pcnJvci9yZXNvdXJjZXMvcHJldHR5cHJpbnRp
bmcvamF2YXNjcmlwdC10ZXN0cy9pZi1mb2xsb3dlZC1ieS13aGlsZS1leHBlY3RlZC5qcyBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9jb2RlbWlycm9yL3Jlc291cmNlcy9wcmV0dHlwcmludGluZy9q
YXZhc2NyaXB0LXRlc3RzL2lmLWZvbGxvd2VkLWJ5LXdoaWxlLWV4cGVjdGVkLmpzCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyYjU5OTJiZTRjYy4uMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2NvZGVtaXJyb3IvcmVzb3VyY2VzL3ByZXR0eXByaW50aW5nL2ph
dmFzY3JpcHQtdGVzdHMvaWYtZm9sbG93ZWQtYnktd2hpbGUtZXhwZWN0ZWQuanMKKysrIC9kZXYv
bnVsbApAQCAtMSw3ICswLDAgQEAKLWlmICh4ID09IDIpIHsKLSAgICB2YXIgeQotfQotd2hpbGUg
KDApIHsKLSAgICB5ID0gMwotfQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
Y29kZW1pcnJvci9yZXNvdXJjZXMvcHJldHR5cHJpbnRpbmcvamF2YXNjcmlwdC10ZXN0cy9pZi1m
b2xsb3dlZC1ieS13aGlsZS5qcyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb2RlbWlycm9yL3Jl
c291cmNlcy9wcmV0dHlwcmludGluZy9qYXZhc2NyaXB0LXRlc3RzL2lmLWZvbGxvd2VkLWJ5LXdo
aWxlLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5OTBmOTNlM2NmMi4uMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvZGVtaXJyb3IvcmVzb3VyY2VzL3By
ZXR0eXByaW50aW5nL2phdmFzY3JpcHQtdGVzdHMvaWYtZm9sbG93ZWQtYnktd2hpbGUuanMKKysr
IC9kZXYvbnVsbApAQCAtMSArMCwwIEBACi1pZih4PT0yKXt2YXIgeX13aGlsZSgwKXt5PTN9CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29kZW1pcnJvci9yZXNvdXJjZXMvcHJl
dHR5cHJpbnRpbmcvamF2YXNjcmlwdC10ZXN0cy9pZi13aGlsZS13aXRoaW4tZG8td2hpbGUtZXhw
ZWN0ZWQuanMgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29kZW1pcnJvci9yZXNvdXJjZXMvcHJl
dHR5cHJpbnRpbmcvamF2YXNjcmlwdC10ZXN0cy9pZi13aGlsZS13aXRoaW4tZG8td2hpbGUtZXhw
ZWN0ZWQuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgxYmZiYTM3YWU0Li4wMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29kZW1pcnJvci9yZXNvdXJjZXMv
cHJldHR5cHJpbnRpbmcvamF2YXNjcmlwdC10ZXN0cy9pZi13aGlsZS13aXRoaW4tZG8td2hpbGUt
ZXhwZWN0ZWQuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxMyArMCwwIEBACi1kbyB7Ci0gICAgaWYg
KHRydWUpIHsKLSAgICAgICAgdmFyIHg7Ci0gICAgfQotICAgIHdoaWxlICgwKSB7Ci0gICAgICAg
IHggPSAxOwotICAgIH0KLSAgICBpZiAodHJ1ZSkKLSAgICAgICAgdmFyIHk7Ci0gICAgd2hpbGUg
KDApCi0gICAgICAgIHkgPSAxOwotfSB3aGlsZSAoMCk7Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci9jb2RlbWlycm9yL3Jlc291cmNlcy9wcmV0dHlwcmludGluZy9qYXZhc2Ny
aXB0LXRlc3RzL2lmLXdoaWxlLXdpdGhpbi1kby13aGlsZS5qcyBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9jb2RlbWlycm9yL3Jlc291cmNlcy9wcmV0dHlwcmludGluZy9qYXZhc2NyaXB0LXRlc3Rz
L2lmLXdoaWxlLXdpdGhpbi1kby13aGlsZS5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMjA2MzQ5ZmJhMzAuLjAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9j
b2RlbWlycm9yL3Jlc291cmNlcy9wcmV0dHlwcmludGluZy9qYXZhc2NyaXB0LXRlc3RzL2lmLXdo
aWxlLXdpdGhpbi1kby13aGlsZS5qcworKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLWRvIHtp
ZiAodHJ1ZSkge3ZhciB4O313aGlsZSAoMCkge3ggPSAxO31pZiAodHJ1ZSl2YXIgeTt3aGlsZSAo
MCl5ID0gMTt9d2hpbGUgKDApOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nv
ZGVtaXJyb3IvcmVzb3VyY2VzL3ByZXR0eXByaW50aW5nL2phdmFzY3JpcHQtdGVzdHMvc2luZ2xl
LXN0YXRlbWVudC1ibG9ja3MtZXhwZWN0ZWQuanMgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29k
ZW1pcnJvci9yZXNvdXJjZXMvcHJldHR5cHJpbnRpbmcvamF2YXNjcmlwdC10ZXN0cy9zaW5nbGUt
c3RhdGVtZW50LWJsb2Nrcy1leHBlY3RlZC5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggZDIxNjc2YTJkM2QuLjAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9j
b2RlbWlycm9yL3Jlc291cmNlcy9wcmV0dHlwcmludGluZy9qYXZhc2NyaXB0LXRlc3RzL3Npbmds
ZS1zdGF0ZW1lbnQtYmxvY2tzLWV4cGVjdGVkLmpzCisrKyAvZGV2L251bGwKQEAgLTEsODkgKzAs
MCBAQAotaWYgKHRydWUpCi0gICAgaWYgKHRydWUpCi0gICAgICAgIGFsZXJ0KDEpOwotICAgIGVs
c2UgaWYgKHRydWUpCi0gICAgICAgIGFsZXJ0KDIpOwotICAgIGVsc2UKLSAgICAgICAgYWxlcnQo
Myk7Ci0KLWlmICh0cnVlKQotICAgIGlmICh0cnVlKSB7Ci0gICAgICAgIGFsZXJ0KDEpCi0gICAg
fSBlbHNlCi0gICAgICAgIGFsZXJ0KDIpOwotCi1pZiAodHJ1ZSkKLSAgICBpZiAodHJ1ZSkgewot
ICAgICAgICB2YXIgYSA9IDE7Ci0gICAgICAgIHZhciBiID0gewotICAgICAgICAgICAgYTogMQot
ICAgICAgICB9OwotICAgIH0gZWxzZQotICAgICAgICBhbGVydCgyKTsKLQotZnVuY3Rpb24oKSB7
Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDA7ICsraSkKLSAgICAgICAgaWYgKHRydWUpCi0g
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLWZ1bmN0aW9u
IGZvbyhjbSkgewotICAgIGlmICh0cnVlKQotICAgICAgICByZXR1cm47Ci0gICAgZWxzZQotICAg
ICAgICBmYWxzZTsKLX0KLQotaWYgKHRydWUpIHsKLSAgICBpZiAoZmFsc2UpCi0gICAgICAgIGlm
ICh0cnVlKSB7Ci0gICAgICAgICAgICB0cnVlOwotICAgICAgICB9Ci0gICAgcmV0dXJuIDI7Ci19
Ci0KLWlmICh0cnVlKSB7Ci0gICAgaWYgKGZhbHNlKQotICAgICAgICBpZiAodHJ1ZSkKLSAgICAg
ICAgICAgIHRydWU7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGZhbHNlOwotICAgIGVsc2Ug
aWYgKHRydWUpCi0gICAgICAgIHRydWU7Ci0gICAgZWxzZQotICAgICAgICBmYWxzZTsKLX0KLQot
aWYgKHRydWUpCi0gICAgZm9yICg7IDspCi0gICAgICAgIHRydWU7Ci1lbHNlCi0gICAgd2hpbGUg
KHRydWUpCi0gICAgICAgIHRydWU7Ci0KLWZ1bmN0aW9uKCkgewotICAgIGlmICh0cnVlKSB7Ci0g
ICAgICAgIGZvciAoOyA7KQotICAgICAgICAgICAgdHJ1ZTsKLSAgICB9IGVsc2UgaWYgKDEpCi0g
ICAgICAgIGZvciAoOyA7KQotICAgICAgICAgICAgdHJ1ZTsKLSAgICByZXR1cm47Ci19Ci0KLWRv
Ci0gICAgdHJ1ZTsKLXdoaWxlICh0cnVlKTsKLQotaWYgKHggPT0gMSkKLSAgICBhbGVydCgxKTsK
LWVsc2UgaWYgKHggPT0gMikKLSAgICBhbGVydCgyKTsKLWVsc2UKLSAgICBhbGVydCgzKTsKLQot
Ly8gRklYTUU6IEZhaWxpbmcuCi0KLS8vIGlmKHRydWUpdHJ5e3RydWU7fWNhdGNoKGUpe3RydWU7
fWZpbmFsbHl7dHJ1ZTt9Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb2Rl
bWlycm9yL3Jlc291cmNlcy9wcmV0dHlwcmludGluZy9qYXZhc2NyaXB0LXRlc3RzL3NpbmdsZS1z
dGF0ZW1lbnQtYmxvY2tzLmpzIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvZGVtaXJyb3IvcmVz
b3VyY2VzL3ByZXR0eXByaW50aW5nL2phdmFzY3JpcHQtdGVzdHMvc2luZ2xlLXN0YXRlbWVudC1i
bG9ja3MuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDkyZDRkZmE1OTlmLi4wMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29kZW1pcnJvci9yZXNvdXJjZXMv
cHJldHR5cHJpbnRpbmcvamF2YXNjcmlwdC10ZXN0cy9zaW5nbGUtc3RhdGVtZW50LWJsb2Nrcy5q
cworKysgL2Rldi9udWxsCkBAIC0xLDI1ICswLDAgQEAKLWlmKHRydWUpaWYodHJ1ZSlhbGVydCgx
KTtlbHNlIGlmKHRydWUpYWxlcnQoMik7ZWxzZSBhbGVydCgzKTsKLQotaWYodHJ1ZSlpZih0cnVl
KXthbGVydCgxKX1lbHNlIGFsZXJ0KDIpOwotCi1pZih0cnVlKWlmKHRydWUpe3ZhciBhPTE7dmFy
IGI9e2E6MX07fWVsc2UgYWxlcnQoMik7Ci0KLWZ1bmN0aW9uKCl7Zm9yKHZhciBpPTA7aTwxMDA7
KytpKWlmKHRydWUpcmV0dXJuIHRydWU7cmV0dXJuIGZhbHNlO30KLQotZnVuY3Rpb24gZm9vKGNt
KXtpZih0cnVlKXJldHVybjtlbHNlIGZhbHNlO30KLQotaWYodHJ1ZSl7aWYoZmFsc2UpaWYodHJ1
ZSl7dHJ1ZTt9cmV0dXJuIDI7fQotCi1pZih0cnVlKXtpZihmYWxzZSlpZih0cnVlKXRydWU7ZWxz
ZSBmYWxzZTtlbHNlIGlmKHRydWUpdHJ1ZTtlbHNlIGZhbHNlO30KLQotaWYodHJ1ZSlmb3IoOzsp
dHJ1ZTtlbHNlIHdoaWxlKHRydWUpdHJ1ZTsKLQotZnVuY3Rpb24oKXtpZih0cnVlKXtmb3IoOzsp
dHJ1ZTt9ZWxzZSBpZigxKWZvcig7Oyl0cnVlO3JldHVybjt9Ci0KLWRvIHRydWU7d2hpbGUodHJ1
ZSk7Ci0KLWlmKHg9PTEpYWxlcnQoMSk7ZWxzZSBpZih4PT0yKWFsZXJ0KDIpO2Vsc2UgYWxlcnQo
Myk7Ci0KLS8vIEZJWE1FOiBGYWlsaW5nLgotCi0vLyBpZih0cnVlKXRyeXt0cnVlO31jYXRjaChl
KXt0cnVlO31maW5hbGx5e3RydWU7fQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2NvZGVtaXJyb3IvcmVzb3VyY2VzL3ByZXR0eXByaW50aW5nL2phdmFzY3JpcHQtdGVzdHMvc3dp
dGNoLWNhc2UtZGVmYXVsdC1leHBlY3RlZC5qcyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb2Rl
bWlycm9yL3Jlc291cmNlcy9wcmV0dHlwcmludGluZy9qYXZhc2NyaXB0LXRlc3RzL3N3aXRjaC1j
YXNlLWRlZmF1bHQtZXhwZWN0ZWQuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZl
MmQ5NWU0MGY1Li4wMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29kZW1p
cnJvci9yZXNvdXJjZXMvcHJldHR5cHJpbnRpbmcvamF2YXNjcmlwdC10ZXN0cy9zd2l0Y2gtY2Fz
ZS1kZWZhdWx0LWV4cGVjdGVkLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMjcgKzAsMCBAQAotZnVu
Y3Rpb24gQ3RvcjEoKSB7Ci0gICAgdGhpcy5jYXNlID0gMTsKLSAgICB0aGlzLnNvbWV0aGluZyA9
IDI7Ci19Ci1mdW5jdGlvbiBDdG9yMigpIHsKLSAgICB0aGlzLmRlZmF1bHQgPSAxOwotICAgIHRo
aXMuc29tZXRoaW5nID0gMjsKLX0KLQotc3dpdGNoICh4KSB7Ci1jYXNlICJhYmMiOgotICAgIHJl
dHVybiB0aGlzLmRlZmF1bHQ7Ci1jYXNlICJkZWYiOgotICAgIHJldHVybiB0aGlzLmNhc2U7Ci1k
ZWZhdWx0OgotICAgIHJldHVybiAzOwotfQotCi1zd2l0Y2ggKHgpIHsKLWNhc2UgImFiYyI6Ci0g
ICAgcmV0dXJuIDE7Ci1jYXNlICJkZWYiOgotICAgIHJldHVybiAyOwotZGVmYXVsdDoKLSAgICBy
ZXR1cm4gMzsKLX0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvZGVtaXJy
b3IvcmVzb3VyY2VzL3ByZXR0eXByaW50aW5nL2phdmFzY3JpcHQtdGVzdHMvc3dpdGNoLWNhc2Ut
ZGVmYXVsdC5qcyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb2RlbWlycm9yL3Jlc291cmNlcy9w
cmV0dHlwcmludGluZy9qYXZhc2NyaXB0LXRlc3RzL3N3aXRjaC1jYXNlLWRlZmF1bHQuanMKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg3N2Q5ODgxZjk1Li4wMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29kZW1pcnJvci9yZXNvdXJjZXMvcHJldHR5cHJpbnRp
bmcvamF2YXNjcmlwdC10ZXN0cy9zd2l0Y2gtY2FzZS1kZWZhdWx0LmpzCisrKyAvZGV2L251bGwK
QEAgLTEsMTMgKzAsMCBAQAotZnVuY3Rpb24gQ3RvcjEoKXt0aGlzLmNhc2U9MTt0aGlzLnNvbWV0
aGluZz0yO30KLWZ1bmN0aW9uIEN0b3IyKCl7dGhpcy5kZWZhdWx0PTE7dGhpcy5zb21ldGhpbmc9
Mjt9Ci0KLXN3aXRjaCh4KXtjYXNlICJhYmMiOnJldHVybiB0aGlzLmRlZmF1bHQ7Y2FzZSAiZGVm
IjpyZXR1cm4gdGhpcy5jYXNlO2RlZmF1bHQ6cmV0dXJuIDM7fQotCi1zd2l0Y2goeCl7Ci0gIGNh
c2UgImFiYyI6Ci0gICAgcmV0dXJuIDE7Ci0gIGNhc2UgImRlZiI6Ci0gICAgcmV0dXJuIDI7Ci0g
IGRlZmF1bHQ6Ci0gICAgcmV0dXJuIDM7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvY29kZW1pcnJvci9yZXNvdXJjZXMvcHJldHR5cHJpbnRpbmcvamF2YXNjcmlwdC10ZXN0
cy91bmFyeS1iaW5hcnktb3BlcmF0b3JzLWV4cGVjdGVkLmpzIGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2NvZGVtaXJyb3IvcmVzb3VyY2VzL3ByZXR0eXByaW50aW5nL2phdmFzY3JpcHQtdGVzdHMv
dW5hcnktYmluYXJ5LW9wZXJhdG9ycy1leHBlY3RlZC5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggNzY5ZmExMWIyZTcuLjAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9jb2RlbWlycm9yL3Jlc291cmNlcy9wcmV0dHlwcmludGluZy9qYXZhc2NyaXB0LXRlc3Rz
L3VuYXJ5LWJpbmFyeS1vcGVyYXRvcnMtZXhwZWN0ZWQuanMKKysrIC9kZXYvbnVsbApAQCAtMSw0
NSArMCwwIEBACi0rMTsKLS0xOwotfjE7Ci0hMTsKLSEhMTsKLTEgKyAxIC0gMSAqIDEgLyAxICUg
MTsKLTEuMiArIDEuMiAtIDEuMiAqIDEuMiAvIDEuMiAlIDEuMjsKLSgxICsgMSAtIDEgKiAxIC8g
MSAlIDEpOwotKDEpICsgKDEpIC0gKDEpICogKDEpIC8gKDEpICUgKDEpOwotKygxKTsKLStzOwot
LXM7Ci1+czsKLXggPSAxOwoteCA9IDFlMjsKLXggPSAxICsgMTsKLXggPSAxZTIgKyAxZTI7Ci14
ID0geCArIDE7Ci14ID0geCA9IHg7Ci14ID0geFsxXSArIDE7Ci14ID0gWzFdOwoteCA9ICgxKTsK
LXggPSAocyk7Ci14ID0gWzEsIDEsIHNdOwotZm9vKDEsIDEsIHMpOwoteCA9IFsxICsgMSAtIDEg
KiAxIC8gMSAlIDEsICsxLCAxIC0gMSwgLTEsIH4xLCAtcywgcyArIDEsIHMgLSAxLCBhWzFdICsg
MSwgYVsxXSAtIDFdOwotZm9vKDEgKyAxIC0gMSAqIDEgLyAxICUgMSwgKzEsIDEgLSAxLCAtMSwg
fjEsIC1zLCBzICsgMSwgcyAtIDEsIGFbMV0gKyAxLCBhWzFdIC0gMSk7Ci14ID0gWy0xICsgMSAq
IDEgLyAxICUgMV07Ci14ID0gKC0xICsgMSAqIDEgLyAxICUgMSk7Ci14ID0gMSA/ICsxIDogLXM7
Ci14ID0gKDEgPyArMSA6IC1zKTsKLXggPSBbMSA/IC0xIDogK3NdOwoteCA9IHsKLSAgICBhOiAt
MSwKLSAgICBiOiArMSwKLSAgICBjOiAxIC0gMSwKLSAgICBkOiAxLAotICAgIHM6IHMKLX07Ci0v
LyBGSVhNRTogU3RpbGwgYnJva2VuIGNhc2VzLiBDb2RlbWlycm9yIHRyZWF0cyBhZGphY2VudCBv
cGVyYXRvciBjaGFyYWN0ZXJzIGFzIG9uZSBvcGVyYXRvci4gRm9yIGV4YW1wbGU6Ci0vLyB4PSsx
IC8vIENvZGVtaXJyb3IgdHJlYXRzICI9KyIgYXMgYSBzaW5nbGUgb3BlcmF0b3IuCi0vLyB4PTE/
KzE6MSAvLyBDb2RlbWlycm9yIHRyZWF0cyAiPysiIGFzIGEgc2luZ2xlIG9wZXJhdG9yLgotLy8g
eD0xKy0yKzEgLy8gQ29kZW1pcnJvciB0cmVhdHMgIistIiBhcyBhIHNpbmdsZSBvcGVyYXRvci4K
LS8vIHg9MS0rMisxIC8vIENvZGVtaXJyb3IgdHJlYXRzICItKyIgYXMgYSBzaW5nbGUgb3BlcmF0
b3IuCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb2RlbWlycm9yL3Jlc291
cmNlcy9wcmV0dHlwcmludGluZy9qYXZhc2NyaXB0LXRlc3RzL3VuYXJ5LWJpbmFyeS1vcGVyYXRv
cnMuanMgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29kZW1pcnJvci9yZXNvdXJjZXMvcHJldHR5
cHJpbnRpbmcvamF2YXNjcmlwdC10ZXN0cy91bmFyeS1iaW5hcnktb3BlcmF0b3JzLmpzCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmMjdjNjczOWQ0My4uMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvZGVtaXJyb3IvcmVzb3VyY2VzL3ByZXR0eXByaW50aW5n
L2phdmFzY3JpcHQtdGVzdHMvdW5hcnktYmluYXJ5LW9wZXJhdG9ycy5qcworKysgL2Rldi9udWxs
CkBAIC0xLDM4ICswLDAgQEAKLSsxOwotLTE7Ci1+MTsKLSExOwotISExOwotMSsxLTEqMS8xJTE7
Ci0xLjIrMS4yLTEuMioxLjIvMS4yJTEuMjsKLSgxKzEtMSoxLzElMSk7Ci0oMSkrKDEpLSgxKSoo
MSkvKDEpJSgxKTsKLSsoMSk7Ci0rczsKLS1zOwotfnM7Ci14PTE7Ci14PTFlMjsKLXg9MSsxOwot
eD0xZTIrMWUyOwoteD14KzE7Ci14PXg9eDsKLXg9eFsxXSsxOwoteD1bMV07Ci14PSgxKTsKLXg9
KHMpOwoteD1bMSwxLHNdOwotZm9vKDEsMSxzKTsKLXg9WzErMS0xKjEvMSUxLCsxLDEtMSwtMSx+
MSwtcyxzKzEscy0xLGFbMV0rMSxhWzFdLTFdOwotZm9vKDErMS0xKjEvMSUxLCsxLDEtMSwtMSx+
MSwtcyxzKzEscy0xLGFbMV0rMSxhWzFdLTEpOwoteD1bLTErMSoxLzElMV07Ci14PSgtMSsxKjEv
MSUxKTsKLXg9MT8gKzE6LXM7Ci14PSgxPyArMTotcyk7Ci14PVsxPyAtMTorc107Ci14PXthOi0x
LGI6KzEsYzoxLTEsZDoxLHM6c307Ci0vLyBGSVhNRTogU3RpbGwgYnJva2VuIGNhc2VzLiBDb2Rl
bWlycm9yIHRyZWF0cyBhZGphY2VudCBvcGVyYXRvciBjaGFyYWN0ZXJzIGFzIG9uZSBvcGVyYXRv
ci4gRm9yIGV4YW1wbGU6Ci0vLyB4PSsxIC8vIENvZGVtaXJyb3IgdHJlYXRzICI9KyIgYXMgYSBz
aW5nbGUgb3BlcmF0b3IuCi0vLyB4PTE/KzE6MSAvLyBDb2RlbWlycm9yIHRyZWF0cyAiPysiIGFz
IGEgc2luZ2xlIG9wZXJhdG9yLgotLy8geD0xKy0yKzEgLy8gQ29kZW1pcnJvciB0cmVhdHMgIist
IiBhcyBhIHNpbmdsZSBvcGVyYXRvci4KLS8vIHg9MS0rMisxIC8vIENvZGVtaXJyb3IgdHJlYXRz
ICItKyIgYXMgYSBzaW5nbGUgb3BlcmF0b3IuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvY29kZW1pcnJvci9yZXNvdXJjZXMvcHJldHR5cHJpbnRpbmcvamF2YXNjcmlwdC10ZXN0
cy93aGlsZS13aXRoaW4tZG8td2hpbGUtZXhwZWN0ZWQuanMgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvY29kZW1pcnJvci9yZXNvdXJjZXMvcHJldHR5cHJpbnRpbmcvamF2YXNjcmlwdC10ZXN0cy93
aGlsZS13aXRoaW4tZG8td2hpbGUtZXhwZWN0ZWQuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDI0ZWIyM2ViZDNjLi4wMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvY29kZW1pcnJvci9yZXNvdXJjZXMvcHJldHR5cHJpbnRpbmcvamF2YXNjcmlwdC10ZXN0cy93
aGlsZS13aXRoaW4tZG8td2hpbGUtZXhwZWN0ZWQuanMKKysrIC9kZXYvbnVsbApAQCAtMSw3ICsw
LDAgQEAKLWRvIHsKLSAgICB2YXIgY291bnRlciA9IDA7Ci0gICAgd2hpbGUgKGNvdW50ZXIgPCAz
KSB7Ci0gICAgICAgIGNvdW50ZXIgKz0gMTsKLSAgICB9Ci19IHdoaWxlICgwKTsKLQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvZGVtaXJyb3IvcmVzb3VyY2VzL3ByZXR0eXBy
aW50aW5nL2phdmFzY3JpcHQtdGVzdHMvd2hpbGUtd2l0aGluLWRvLXdoaWxlLmpzIGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2NvZGVtaXJyb3IvcmVzb3VyY2VzL3ByZXR0eXByaW50aW5nL2phdmFz
Y3JpcHQtdGVzdHMvd2hpbGUtd2l0aGluLWRvLXdoaWxlLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAzMGU2NTEzYTAzNC4uMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2NvZGVtaXJyb3IvcmVzb3VyY2VzL3ByZXR0eXByaW50aW5nL2phdmFzY3JpcHQtdGVz
dHMvd2hpbGUtd2l0aGluLWRvLXdoaWxlLmpzCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAot
ZG97dmFyIGNvdW50ZXI9MDt3aGlsZShjb3VudGVyPDMpe2NvdW50ZXIrPTE7fX13aGlsZSgwKTsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb2RlbWlycm9yL3Jlc291cmNlcy9w
cmV0dHlwcmludGluZy91dGlsaXRpZXMuanMgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29kZW1p
cnJvci9yZXNvdXJjZXMvcHJldHR5cHJpbnRpbmcvdXRpbGl0aWVzLmpzCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA0YjFkNjgyNzljZi4uMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2NvZGVtaXJyb3IvcmVzb3VyY2VzL3ByZXR0eXByaW50aW5nL3V0aWxpdGll
cy5qcworKysgL2Rldi9udWxsCkBAIC0xLDYyICswLDAgQEAKLVRlc3RQYWdlLnJlZ2lzdGVySW5p
dGlhbGl6ZXIoZnVuY3Rpb24oKSB7Ci0gICAgZnVuY3Rpb24gbG9hZFByZXR0eVByaW50aW5nVGVz
dEFuZEV4cGVjdGVkUmVzdWx0cyh0ZXN0VVJMKSB7Ci0gICAgICAgIGxldCBleHBlY3RlZFVSTCA9
IHRlc3RVUkwucmVwbGFjZSgvXC4oW15cLl0rKSQvLCAiLWV4cGVjdGVkLiQxIik7Ci0gICAgICAg
IHJldHVybiBQcm9taXNlLmFsbChbCi0gICAgICAgICAgICBOZXR3b3JrQWdlbnQubG9hZFJlc291
cmNlKFdJLm5ldHdvcmtNYW5hZ2VyLm1haW5GcmFtZS5pZCwgdGVzdFVSTCksCi0gICAgICAgICAg
ICBOZXR3b3JrQWdlbnQubG9hZFJlc291cmNlKFdJLm5ldHdvcmtNYW5hZ2VyLm1haW5GcmFtZS5p
ZCwgZXhwZWN0ZWRVUkwpCi0gICAgICAgIF0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0cykgewotICAg
ICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh7dGVzdFRleHQ6IHJlc3VsdHNbMF0uY29u
dGVudCwgZXhwZWN0ZWRUZXh0OiByZXN1bHRzWzFdLmNvbnRlbnQgfSk7Ci0gICAgICAgIH0pOwot
ICAgIH0KLQotICAgIGZ1bmN0aW9uIHJ1blByZXR0eVByaW50aW5nVGVzdChtb2RlLCB0ZXN0TmFt
ZSwgdGVzdFVSTCkgewotICAgICAgICByZXR1cm4gbG9hZFByZXR0eVByaW50aW5nVGVzdEFuZEV4
cGVjdGVkUmVzdWx0cyh0ZXN0VVJMKS50aGVuKGZ1bmN0aW9uKHJlc3VsdHMpIHsKLSAgICAgICAg
ICAgIGxldCB7dGVzdFRleHQsIGV4cGVjdGVkVGV4dH0gPSByZXN1bHRzOwotCi0gICAgICAgICAg
ICBsZXQgZWRpdG9yID0gQ29kZU1pcnJvcihkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSk7
Ci0gICAgICAgICAgICBlZGl0b3Iuc2V0T3B0aW9uKCJtb2RlIiwgbW9kZSk7Ci0gICAgICAgICAg
ICBlZGl0b3Iuc2V0VmFsdWUodGVzdFRleHQpOwotCi0gICAgICAgICAgICBjb25zdCBzdGFydCA9
IHtsaW5lOiAwLCBjaDogMH07Ci0gICAgICAgICAgICBjb25zdCBlbmQgPSB7bGluZTogZWRpdG9y
LmxpbmVDb3VudCgpIC0gMX07Ci0gICAgICAgICAgICBjb25zdCBpbmRlbnRTdHJpbmcgPSAiICAg
ICI7Ci0gICAgICAgICAgICBsZXQgYnVpbGRlciA9IG5ldyBGb3JtYXR0ZXJDb250ZW50QnVpbGRl
cihpbmRlbnRTdHJpbmcpOwotICAgICAgICAgICAgbGV0IGZvcm1hdHRlciA9IG5ldyBXSS5Gb3Jt
YXR0ZXIoZWRpdG9yLCBidWlsZGVyKTsKLSAgICAgICAgICAgIGZvcm1hdHRlci5mb3JtYXQoc3Rh
cnQsIGVuZCk7Ci0KLSAgICAgICAgICAgIGxldCBwYXNzID0gYnVpbGRlci5mb3JtYXR0ZWRDb250
ZW50ID09PSBleHBlY3RlZFRleHQ7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZyhwYXNz
ID8gIlBBU1MiIDogIkZBSUwiKTsKLQotICAgICAgICAgICAgaWYgKCFwYXNzKSB7Ci0gICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIklucHV0OiIpOwotICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QubG9nKCItLS0tLS0tLS0tLSIpOwotICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QubG9nKHRlc3RUZXh0KTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygi
LS0tLS0tLS0tLS0iKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiRm9ybWF0
dGVkIE91dHB1dDogIiArIGJ1aWxkZXIuZm9ybWF0dGVkQ29udGVudC5sZW5ndGgpOwotICAgICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCItLS0tLS0tLS0tLSIpOwotICAgICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QubG9nKGJ1aWxkZXIuZm9ybWF0dGVkQ29udGVudCk7Ci0gICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIi0tLS0tLS0tLS0tIik7Ci0gICAgICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5sb2coIkV4cGVjdGVkIE91dHB1dDogIiArIGV4cGVjdGVkVGV4dC5s
ZW5ndGgpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCItLS0tLS0tLS0tLSIp
OwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKGV4cGVjdGVkVGV4dCk7Ci0gICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIi0tLS0tLS0tLS0tIik7Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgIH0pOwotICAgIH0KLQotICAgIHdpbmRvdy5hZGRQcmV0dHlQcmludGluZ1Rl
c3RzID0gZnVuY3Rpb24oc3VpdGUsIG1vZGUsIHRlc3RzKSB7Ci0gICAgICAgIGxldCB0ZXN0UGFn
ZVVSTCA9IFdJLm5ldHdvcmtNYW5hZ2VyLm1haW5GcmFtZS5tYWluUmVzb3VyY2UudXJsOwotICAg
ICAgICBsZXQgdGVzdFBhZ2VSZXNvdXJjZXNVUkwgPSB0ZXN0UGFnZVVSTC5zdWJzdHJpbmcoMCwg
dGVzdFBhZ2VVUkwubGFzdEluZGV4T2YoIi8iKSk7ICAgICAgICAgICAgCi0KLSAgICAgICAgZm9y
IChsZXQgdGVzdCBvZiB0ZXN0cykgewotICAgICAgICAgICAgbGV0IHRlc3ROYW1lID0gdGVzdC5z
dWJzdHJpbmcodGVzdC5sYXN0SW5kZXhPZigiLyIpICsgMSk7Ci0gICAgICAgICAgICBsZXQgdGVz
dFVSTCA9IHRlc3RQYWdlUmVzb3VyY2VzVVJMICsgIi8iICsgdGVzdDsKLSAgICAgICAgICAgIHN1
aXRlLmFkZFRlc3RDYXNlKHsKLSAgICAgICAgICAgICAgICBuYW1lOiBzdWl0ZS5uYW1lICsgIi4i
ICsgdGVzdE5hbWUsCi0gICAgICAgICAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsgCi0g
ICAgICAgICAgICAgICAgICAgIHJ1blByZXR0eVByaW50aW5nVGVzdChtb2RlLCB0ZXN0TmFtZSwg
dGVzdFVSTCkudGhlbihyZXNvbHZlKS5jYXRjaChyZWplY3QpOwotICAgICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgIH0pOwotICAgICAgICB9Ci0gICAgfTsKLX0pOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFu
Z2VMb2cKaW5kZXggOTQ3M2QxNjFhNGIuLmU3ZDQ3MmFlYjljIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAxOS0wOS0wOSAgSm9zZXBoIFBlY29yYXJvICA8cGVj
b3Jhcm9AYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFJlbW92ZSBsZWdhY3kg
Q29kZU1pcnJvciBiYXNlZCBwcmV0dHkgcHJpbnRlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMTYyNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogVG9vbHMvTGVnYWN5UHJldHR5UHJpbnRpbmcvRm9y
bWF0dGVyRGVidWcuanM6IFJlbW92ZWQuCisgICAgICAgICogVG9vbHMvTGVnYWN5UHJldHR5UHJp
bnRpbmcvVXRpbGl0aWVzLmpzOiBSZW1vdmVkLgorICAgICAgICAqIFRvb2xzL0xlZ2FjeVByZXR0
eVByaW50aW5nL2NvZGVtaXJyb3ItYWRkaXRpb25zLmNzczogUmVtb3ZlZC4KKyAgICAgICAgKiBU
b29scy9MZWdhY3lQcmV0dHlQcmludGluZy9pbmRleC5odG1sOiBSZW1vdmVkLgorICAgICAgICAq
IFRvb2xzL0xlZ2FjeVByZXR0eVByaW50aW5nL3BvcHVsYXRlL2FwcGxlLmNzczogUmVtb3ZlZC4K
KyAgICAgICAgKiBVc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0Zvcm1hdHRlci5qczogUmVtb3Zl
ZC4KKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL01haW4uaHRtbDoKKyAgICAgICAgKiBVc2VySW50
ZXJmYWNlL1Rlc3QuaHRtbDoKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0NvZGVNaXJy
b3JGb3JtYXR0ZXJzLmpzOiBSZW1vdmVkLgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3Mv
VGV4dEVkaXRvci5qczoKKyAgICAgICAgKFdJLlRleHRFZGl0b3IucHJvdG90eXBlLnByZXR0eVBy
aW50KToKKyAgICAgICAgKFdJLlRleHRFZGl0b3IucHJvdG90eXBlLl9jYW5Vc2VGb3JtYXR0ZXJX
b3JrZXIpOiBEZWxldGVkLgorICAgICAgICAoV0kuVGV4dEVkaXRvci5wcm90b3R5cGUuX3N0YXJ0
Q29kZU1pcnJvclByZXR0eVByaW50KTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJJbnNwZWN0b3JV
SS52Y3hwcm9qL1dlYkluc3BlY3RvclVJLnZjeHByb2o6CisgICAgICAgICogV2ViSW5zcGVjdG9y
VUkudmN4cHJvai9XZWJJbnNwZWN0b3JVSS52Y3hwcm9qLmZpbHRlcnM6CisKIDIwMTktMDktMDkg
IEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5z
cGVjdG9yOiBGb3JtYXR0ZXI6IFByZXR0eSBQcmludCBIVE1MIHJlc291cmNlcyAoaW5jbHVkaW5n
IGlubGluZSA8c2NyaXB0Pi88c3R5bGU+KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1Rvb2xzL0xlZ2FjeVByZXR0eVByaW50aW5nL0Zvcm1hdHRlckRlYnVnLmpzIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL1Rvb2xzL0xlZ2FjeVByZXR0eVByaW50aW5nL0Zvcm1hdHRlckRlYnVn
LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0ZDlmNzFjNDRhMC4uMDAwMDAwMDAw
MDAKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Rvb2xzL0xlZ2FjeVByZXR0eVByaW50aW5n
L0Zvcm1hdHRlckRlYnVnLmpzCisrKyAvZGV2L251bGwKQEAgLTEsNTQgKzAsMCBAQAotV0kuRm9y
bWF0dGVyLnByb3RvdHlwZS5kZWJ1ZyA9IGZ1bmN0aW9uKGZyb20sIHRvKQotewotICAgIHZhciBk
ZWJ1ZyA9ICIiOwotICAgIHZhciBvdXRlck1vZGUgPSB0aGlzLl9jb2RlTWlycm9yLmdldE1vZGUo
KTsKLSAgICB2YXIgY29udGVudCA9IHRoaXMuX2NvZGVNaXJyb3IuZ2V0UmFuZ2UoZnJvbSwgdG8p
OwotICAgIHZhciBzdGF0ZSA9IENvZGVNaXJyb3IuY29weVN0YXRlKG91dGVyTW9kZSwgdGhpcy5f
Y29kZU1pcnJvci5nZXRUb2tlbkF0KGZyb20pLnN0YXRlKTsKLQotICAgIGZ1bmN0aW9uIHBhZChz
dHIsIHgsIGRvTm90UXVvdGUpCi0gICAgewotICAgICAgICB2YXIgcmVzdWx0ID0gZG9Ob3RRdW90
ZSA/IHN0ciA6ICInIiArIHN0ciArICInIjsKLSAgICAgICAgZm9yICh2YXIgdG9QYWQgPSB4IC0g
cmVzdWx0Lmxlbmd0aDsgdG9QYWQgPiAwOyAtLXRvUGFkKQotICAgICAgICAgICAgcmVzdWx0ICs9
ICIgIjsKLSAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBkZWJ1
Z1Rva2VuKG1vZGUsIHRva2VuLCBzdGF0ZSwgc3RyZWFtLCBvcmlnaW5hbFBvc2l0aW9uLCBzdGFy
dE9mTmV3TGluZSkKLSAgICB7Ci0gICAgICAgIC8vIFRva2VuIFR5cGUKLSAgICAgICAgZGVidWcg
Kz0gIlRva2VuOiAiICsgcGFkKFN0cmluZyh0b2tlbiksIDE0LCAhdG9rZW4pOwotCi0gICAgICAg
IC8vIE9yaWdpbmFsIFBvc2l0aW9uCi0gICAgICAgIGRlYnVnICs9ICJQb3NpdGlvbjogIiArIHBh
ZChTdHJpbmcob3JpZ2luYWxQb3NpdGlvbiksIDEwKTsKLQotICAgICAgICAvLyBMYW5ndWFnZSBT
cGVjaWZpYyBJbmZvCi0gICAgICAgIGlmIChzdGF0ZS5sZXhpY2FsKSB7Ci0gICAgICAgICAgICAv
LyBKYXZhU2NyaXB0Ci0gICAgICAgICAgICBkZWJ1ZyArPSAiTGV4aWNhbDogIiArIHBhZChTdHJp
bmcoc3RhdGUubGV4aWNhbC50eXBlKSwgMTApOyAvLyBKYXZhU2NyaXB0Ci0gICAgICAgICAgICBk
ZWJ1ZyArPSAiUHJldjogIiArIHBhZChTdHJpbmcoc3RhdGUubGV4aWNhbC5wcmV2ID8gc3RhdGUu
bGV4aWNhbC5wcmV2LnR5cGUgOiBzdGF0ZS5sZXhpY2FsLnByZXYpLCAxMCwgIXN0YXRlLmxleGlj
YWwucHJldik7Ci0gICAgICAgIH0gZWxzZSBpZiAoc3RhdGUuc3RhdGUpIHsKLSAgICAgICAgICAg
IC8vIENTUwotICAgICAgICAgICAgZGVidWcgKz0gIlN0YXRlOiAiICsgcGFkKFN0cmluZyhzdGF0
ZS5zdGF0ZSksIDE2KTsKLSAgICAgICAgfQotCi0gICAgICAgIC8vIFN0cmluZwotICAgICAgICBk
ZWJ1ZyArPSAiQ3VycmVudDogJyIgKyBzdHJlYW0uY3VycmVudCgpICsgIidcbiI7Ci0gICAgfQot
Ci0gICAgdmFyIGxpbmVPZmZzZXQgPSAwOwotICAgIHZhciBsaW5lcyA9IGNvbnRlbnQuc3BsaXQo
IlxuIik7Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsaW5lcy5sZW5ndGg7ICsraSkgewotICAg
ICAgICB2YXIgbGluZSA9IGxpbmVzW2ldOwotICAgICAgICB2YXIgc3RhcnRPZk5ld0xpbmUgPSB0
cnVlOwotICAgICAgICB2YXIgc3RyZWFtID0gbmV3IENvZGVNaXJyb3IuU3RyaW5nU3RyZWFtKGxp
bmUpOwotICAgICAgICB3aGlsZSAoIXN0cmVhbS5lb2woKSkgewotICAgICAgICAgICAgdmFyIGlu
bmVyTW9kZSA9IENvZGVNaXJyb3IuaW5uZXJNb2RlKG91dGVyTW9kZSwgc3RhdGUpOwotICAgICAg
ICAgICAgdmFyIHRva2VuID0gb3V0ZXJNb2RlLnRva2VuKHN0cmVhbSwgc3RhdGUpOwotICAgICAg
ICAgICAgZGVidWdUb2tlbihpbm5lck1vZGUubW9kZSwgdG9rZW4sIHN0YXRlLCBzdHJlYW0sIGxp
bmVPZmZzZXQgKyBzdHJlYW0uc3RhcnQsIHN0YXJ0T2ZOZXdMaW5lKTsKLSAgICAgICAgICAgIHN0
cmVhbS5zdGFydCA9IHN0cmVhbS5wb3M7Ci0gICAgICAgICAgICBzdGFydE9mTmV3TGluZSA9IGZh
bHNlOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgcmV0dXJuIGRlYnVnOwotfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Ub29scy9MZWdhY3lQcmV0dHlQcmludGluZy9VdGls
aXRpZXMuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVG9vbHMvTGVnYWN5UHJldHR5UHJpbnRp
bmcvVXRpbGl0aWVzLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3NDk5OGM1YTdm
MC4uMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Rvb2xzL0xlZ2FjeVBy
ZXR0eVByaW50aW5nL1V0aWxpdGllcy5qcworKysgL2Rldi9udWxsCkBAIC0xLDkgKzAsMCBAQAot
T2JqZWN0LmRlZmluZVByb3BlcnR5KEFycmF5LnByb3RvdHlwZSwgImxhc3RWYWx1ZSIsCi17Ci0g
ICAgZ2V0OiBmdW5jdGlvbigpCi0gICAgewotICAgICAgICBpZiAoIXRoaXMubGVuZ3RoKQotICAg
ICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKLSAgICAgICAgcmV0dXJuIHRoaXNbdGhpcy5sZW5n
dGggLSAxXTsKLSAgICB9Ci19KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9U
b29scy9MZWdhY3lQcmV0dHlQcmludGluZy9jb2RlbWlycm9yLWFkZGl0aW9ucy5jc3MgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVG9vbHMvTGVnYWN5UHJldHR5UHJpbnRpbmcvY29kZW1pcnJvci1h
ZGRpdGlvbnMuY3NzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkMzNmNTFmZjFlMy4u
MDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Rvb2xzL0xlZ2FjeVByZXR0
eVByaW50aW5nL2NvZGVtaXJyb3ItYWRkaXRpb25zLmNzcworKysgL2Rldi9udWxsCkBAIC0xLDE2
NyArMCwwIEBACi0uQ29kZU1pcnJvciB7Ci0gICAgaGVpZ2h0OiBhdXRvOwotfQotCi1ib2R5IHsK
LSAgZm9udC1mYW1pbHk6IERyb2lkIFNhbnMsIEFyaWFsLCBzYW5zLXNlcmlmOwotICBsaW5lLWhl
aWdodDogMS41OwotICBtYXgtd2lkdGg6IDY0LjNlbTsKLSAgbWFyZ2luOiAzZW0gYXV0bzsKLSAg
cGFkZGluZzogMCAxZW07Ci19Ci0KLWgxIHsKLSAgbGV0dGVyLXNwYWNpbmc6IC0zcHg7Ci0gIGZv
bnQtc2l6ZTogMy4yM2VtOwotICBmb250LXdlaWdodDogYm9sZDsKLSAgbWFyZ2luOiAwOwotfQot
Ci1oMiB7Ci0gIGZvbnQtc2l6ZTogMS4yM2VtOwotICBmb250LXdlaWdodDogYm9sZDsKLSAgbWFy
Z2luOiAuNWVtIDA7Ci0gIGxldHRlci1zcGFjaW5nOiAtMXB4OwotfQotCi1oMyB7Ci0gIGZvbnQt
c2l6ZTogMS4xZW07Ci0gIGZvbnQtd2VpZ2h0OiBib2xkOwotICBtYXJnaW46IC40ZW0gMDsKLX0K
LQotcHJlIHsKLSAgYmFja2dyb3VuZC1jb2xvcjogI2VlZTsKLSAgYm9yZGVyLXJhZGl1czogNnB4
OwotICBwYWRkaW5nOiAxZW07Ci19Ci0KLXByZS5jb2RlIHsKLSAgbWFyZ2luOiAwIDFlbTsKLX0K
LQotLmdyZXkgewotICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlOwotICBib3JkZXItcmFkaXVzOiA2
cHg7Ci0gIG1hcmdpbi1ib3R0b206IDEuNjVlbTsKLSAgbWFyZ2luLXRvcDogMC44MjVlbTsKLSAg
cGFkZGluZzogMC44MjVlbSAxLjY1ZW07Ci0gIHBvc2l0aW9uOiByZWxhdGl2ZTsKLX0KLQotaW1n
LmxvZ28gewotICBwb3NpdGlvbjogYWJzb2x1dGU7Ci0gIHJpZ2h0OiAtMWVtOwotICBib3R0b206
IDRweDsKLSAgbWF4LXdpZHRoOiAyMy42ODc1ZW07IC8qIFNjYWxlIGltYWdlIGRvd24gd2l0aCB0
ZXh0IHRvIHByZXZlbnQgY2xpcHBpbmcgKi8KLX0KLQotLmdyZXkgPiBwcmUgewotICBiYWNrZ3Jv
dW5kOm5vbmU7Ci0gIGJvcmRlci1yYWRpdXM6MDsKLSAgcGFkZGluZzowOwotICBtYXJnaW46MDsK
LSAgZm9udC1zaXplOjIuMmVtOwotICBsaW5lLWhlaWdodDoxLjJlbTsKLX0KLQotYTpsaW5rLCBh
OnZpc2l0ZWQsIC5xdWFzaWxpbmsgewotICBjb2xvcjogI2RmMDAxOTsKLSAgY3Vyc29yOiBwb2lu
dGVyOwotICB0ZXh0LWRlY29yYXRpb246IG5vbmU7Ci19Ci0KLWE6aG92ZXIsIC5xdWFzaWxpbms6
aG92ZXIgewotICBjb2xvcjogIzgwMDAwNDsKLX0KLQotaDEgYTpsaW5rLCBoMSBhOnZpc2l0ZWQs
IGgxIGE6aG92ZXIgewotICBjb2xvcjogYmxhY2s7Ci19Ci0KLXVsIHsKLSAgbWFyZ2luOiAwOwot
ICBwYWRkaW5nLWxlZnQ6IDEuMmVtOwotfQotCi1hLmRvd25sb2FkIHsKLSAgY29sb3I6IHdoaXRl
OwotICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGYwMDE5OwotICB3aWR0aDogMTAwJTsKLSAgZGlzcGxh
eTogYmxvY2s7Ci0gIHRleHQtYWxpZ246IGNlbnRlcjsKLSAgZm9udC1zaXplOiAxLjIzZW07Ci0g
IGZvbnQtd2VpZ2h0OiBib2xkOwotICB0ZXh0LWRlY29yYXRpb246IG5vbmU7Ci0gIGJvcmRlci1y
YWRpdXM6IDZweDsKLSAgcGFkZGluZzogLjVlbSAwOwotICBtYXJnaW4tYm90dG9tOiAxZW07Ci19
Ci0KLWEuZG93bmxvYWQ6aG92ZXIgewotICBiYWNrZ3JvdW5kLWNvbG9yOiAjYmIwMDEwOwotfQot
Ci0ucmVsIHsKLSAgbWFyZ2luLWJvdHRvbTogMDsKLX0KLQotLnJlbC1ub3RlIHsKLSAgY29sb3I6
ICM3Nzc7Ci0gIGZvbnQtc2l6ZTogLjllbTsKLSAgbWFyZ2luLXRvcDogLjFlbTsKLX0KLQotLmxv
Z28tYnJhY2VzIHsKLSAgY29sb3I6ICNkZjAwMTk7Ci0gIHBvc2l0aW9uOiByZWxhdGl2ZTsKLSAg
dG9wOiAtNHB4OwotfQotCi0uYmxrIHsKLSAgZmxvYXQ6IGxlZnQ7Ci19Ci0KLS5sZWZ0IHsKLSAg
bWFyZ2luLXJpZ2h0OiAyMC42OGVtOwotICBtYXgtd2lkdGg6IDM3ZW07Ci0gIHBhZGRpbmctcmln
aHQ6IDYuNTNlbTsKLSAgcGFkZGluZy1ib3R0b206IDFlbTsKLX0KLQotLmxlZnQxIHsKLSAgd2lk
dGg6IDE1LjI0ZW07Ci0gIHBhZGRpbmctcmlnaHQ6IDYuNDVlbTsKLX0KLQotLmxlZnQyIHsKLSAg
bWF4LXdpZHRoOiAxNS4yNGVtOwotfQotCi0ucmlnaHQgewotICB3aWR0aDogMjAuNjhlbTsKLSAg
bWFyZ2luLWxlZnQ6IC0yMC42OGVtOwotfQotCi0ubGVmdGJpZyB7Ci0gIHdpZHRoOiA0Mi40NGVt
OwotICBwYWRkaW5nLXJpZ2h0OiA2LjUzZW07Ci19Ci0KLS5yaWdodHNtYWxsIHsKLSAgd2lkdGg6
IDE1LjI0ZW07Ci19Ci0KLS5jbGVhcjo6YWZ0ZXIgewotICB2aXNpYmlsaXR5OiBoaWRkZW47Ci0g
IGRpc3BsYXk6IGJsb2NrOwotICBmb250LXNpemU6IDA7Ci0gIGNvbnRlbnQ6ICIgIjsKLSAgY2xl
YXI6IGJvdGg7Ci0gIGhlaWdodDogMDsKLX0KLS5jbGVhciB7IGRpc3BsYXk6IGlubGluZS1ibG9j
azsgfQotLyogc3RhcnQgY29tbWVudGVkIGJhY2tzbGFzaCBoYWNrIFwqLwotKiBodG1sIC5jbGVh
ciB7IGhlaWdodDogMSU7IH0KLS5jbGVhciB7IGRpc3BsYXk6IGJsb2NrOyB9Ci0vKiBjbG9zZSBj
b21tZW50ZWQgYmFja3NsYXNoIGhhY2sgKi8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Ub29scy9MZWdhY3lQcmV0dHlQcmludGluZy9pbmRleC5odG1sIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1Rvb2xzL0xlZ2FjeVByZXR0eVByaW50aW5nL2luZGV4Lmh0bWwKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ0MjE2NmFjYjM2Li4wMDAwMDAwMDAwMAotLS0gYS9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVG9vbHMvTGVnYWN5UHJldHR5UHJpbnRpbmcvaW5kZXguaHRtbAor
KysgL2Rldi9udWxsCkBAIC0xLDMxOSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgot
PGhlYWQ+Ci0gICAgPHRpdGxlPkRlYnVnPC90aXRsZT4KLSAgICA8bGluayByZWw9InN0eWxlc2hl
ZXQiIGhyZWY9Ii4uLy4uL1VzZXJJbnRlcmZhY2UvRXh0ZXJuYWwvQ29kZU1pcnJvci9jb2RlbWly
cm9yLmNzcyI+Ci0gICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJjb2RlbWlycm9yLWFk
ZGl0aW9ucy5jc3MiPgotICAgIDxzY3JpcHQgc3JjPSJVdGlsaXRpZXMuanMiPjwvc2NyaXB0Pgot
ICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9Vc2VySW50ZXJmYWNlL0V4dGVybmFsL0NvZGVNaXJyb3Iv
Y29kZW1pcnJvci5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9Ii4uLy4uL1VzZXJJbnRl
cmZhY2UvRXh0ZXJuYWwvQ29kZU1pcnJvci9qYXZhc2NyaXB0LmpzIj48L3NjcmlwdD4KLSAgICA8
c2NyaXB0IHNyYz0iLi4vLi4vVXNlckludGVyZmFjZS9FeHRlcm5hbC9Db2RlTWlycm9yL2Nzcy5q
cyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9Ii4uLy4uL1VzZXJJbnRlcmZhY2UvQmFzZS9X
ZWJJbnNwZWN0b3IuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9Vc2VySW50
ZXJmYWNlL1ZpZXdzL0NvZGVNaXJyb3JBZGRpdGlvbnMuanMiPjwvc2NyaXB0PgotICAgIDxzY3Jp
cHQgc3JjPSIuLi8uLi9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0Zvcm1hdHRlci5qcyI+PC9z
Y3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9IkZvcm1hdHRlckRlYnVnLmpzIj48L3NjcmlwdD4KLSAg
ICA8c2NyaXB0IHNyYz0iLi4vLi4vVXNlckludGVyZmFjZS9Xb3JrZXJzL0Zvcm1hdHRlci9Gb3Jt
YXR0ZXJDb250ZW50QnVpbGRlci5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9Ii4uLy4u
L1VzZXJJbnRlcmZhY2UvVmlld3MvQ29kZU1pcnJvckZvcm1hdHRlcnMuanMiPjwvc2NyaXB0Pgot
PC9oZWFkPgotPGJvZHk+Ci0KLSAgICA8aDE+RGVidWcgUHJldHR5IFByaW50aW5nPC9oMT4KLQot
ICAgIDwhLS0gQ29udHJvbHMgLS0+Ci0gICAgPHNlbGVjdCBpZD0ibW9kZSI+Ci0gICAgICAgIDxv
cHRpb24gc2VsZWN0ZWQgdmFsdWU9InRleHQvamF2YXNjcmlwdCI+SmF2YVNjcmlwdDwvb3B0aW9u
PgotICAgICAgICA8b3B0aW9uIHZhbHVlPSJ0ZXh0L2NzcyI+Q1NTPC9vcHRpb24+Ci0gICAgPC9z
ZWxlY3Q+Ci0gICAgPGJ1dHRvbiBpZD0icG9wdWxhdGUiPlBvcHVsYXRlPC9idXR0b24+Ci0gICAg
PGJ1dHRvbiBpZD0icnVuLXRlc3RzIj5SdW4gVGVzdHM8L2J1dHRvbj4KLSAgICA8YnV0dG9uIGlk
PSJjbGVhciI+Q2xlYXI8L2J1dHRvbj4KLSAgICA8YnV0dG9uIGlkPSJzZWxlY3Qtb3V0cHV0Ij5T
ZWxlY3QgT3V0cHV0PC9idXR0b24+Ci0gICAgPGJ1dHRvbiBpZD0icnVuLWFnYWluIj5SdW4gQWdh
aW48L2J1dHRvbj4KLSAgICA8YnV0dG9uIGlkPSJzYXZlLWFzLXVybCI+U2F2ZSBVUkw8L2J1dHRv
bj4KLSAgICA8YnV0dG9uIGlkPSJzYXZlLWxvY2FsLXN0b3JhZ2UiPlNhdmUgdG8gU3RvcmFnZTwv
YnV0dG9uPgotICAgIDxidXR0b24gaWQ9ImNsZWFyLWxvY2FsLXN0b3JhZ2UiPkNsZWFyIFN0b3Jh
Z2U8L2J1dHRvbj4KLSAgICA8c21hbGwgaWQ9InRpbWUiPjwvc21hbGw+Ci0KLSAgICA8YnI+PGJy
PgotCi0gICAgPCEtLSBFZGl0b3IgLS0+Ci0gICAgPHRleHRhcmVhIGlkPSJjb2RlIiBuYW1lPSJj
b2RlIj48L3RleHRhcmVhPgotCi0gICAgPCEtLSBPdXRwdXQgLS0+Ci0gICAgPHByZSBpZD0icHJl
dHR5Ij48L3ByZT4KLSAgICA8cHJlIGlkPSJkZWJ1ZyI+PC9wcmU+Ci0KLSAgICA8c2NyaXB0Pgot
ICAgIC8vIEVkaXRvci4KLSAgICB2YXIgY20gPSBDb2RlTWlycm9yLmZyb21UZXh0QXJlYShkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgiY29kZSIpLCB7Ci0gICAgICAgIGxpbmVOdW1iZXJzOiB0cnVl
LAotICAgIH0pOwotCi0gICAgLy8gSW5pdGlhbCB2YWx1ZXMgZnJvbSBVUkwuCi0gICAgdmFyIHF1
ZXJ5UGFyYW1zID0ge307Ci0gICAgaWYgKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2gubGVuZ3RoID4g
MCkgewotICAgICAgICB2YXIgc2VhcmNoU3RyaW5nID0gd2luZG93LmxvY2F0aW9uLnNlYXJjaC5z
dWJzdHJpbmcoMSk7Ci0gICAgICAgIHZhciBncm91cHMgPSBzZWFyY2hTdHJpbmcuc3BsaXQoIiYi
KTsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBncm91cHMubGVuZ3RoOyArK2kpIHsKLSAg
ICAgICAgICAgIHZhciBwYWlyID0gZ3JvdXBzW2ldLnNwbGl0KCI9Iik7Ci0gICAgICAgICAgICBx
dWVyeVBhcmFtc1tkZWNvZGVVUklDb21wb25lbnQocGFpclswXSldID0gZGVjb2RlVVJJQ29tcG9u
ZW50KHBhaXJbMV0pOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgLy8gSW5pdGlhbCBtb2RlIGFu
ZCBzdHJpbmcuCi0gICAgdmFyIG1vZGUgPSAidGV4dC9qYXZhc2NyaXB0IjsKLSAgICB2YXIgY29u
dGVudCA9ICIoZnVuY3Rpb24oKSB7IHZhciBhPTE7IHJldHVybiBhKzE7IH0pKCk7IjsKLSAgICB2
YXIgdXBkYXRlUGlja2VyID0gZmFsc2U7Ci0gICAgaWYgKHF1ZXJ5UGFyYW1zLmNvbnRlbnQgfHwg
cXVlcnlQYXJhbXMubW9kZSkgewotICAgICAgICBjb250ZW50ID0gcXVlcnlQYXJhbXMuY29udGVu
dCB8fCAiIjsKLSAgICAgICAgbW9kZSA9IHF1ZXJ5UGFyYW1zLm1vZGUgfHwgInRleHQvamF2YXNj
cmlwdCI7Ci0gICAgICAgIHVwZGF0ZVBpY2tlciA9IHRydWU7Ci0gICAgfSBlbHNlIGlmIChsb2Nh
bFN0b3JhZ2UuY29udGVudCB8fCBsb2NhbFN0b3JhZ2UubW9kZSkgewotICAgICAgICBjb250ZW50
ID0gbG9jYWxTdG9yYWdlLmNvbnRlbnQgfHwgIiI7Ci0gICAgICAgIG1vZGUgPSBsb2NhbFN0b3Jh
Z2UubW9kZSB8fCAidGV4dC9qYXZhc2NyaXB0IjsKLSAgICAgICAgdXBkYXRlUGlja2VyID0gdHJ1
ZTsKLSAgICB9Ci0KLSAgICAvLyBJbml0aWFsIG1vZGUgcGlja2VyIHZhbHVlLgotICAgIHZhciBt
b2RlUGlja2VyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1vZGUiKTsKLSAgICBpZiAodXBk
YXRlUGlja2VyKSB7Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbW9kZVBpY2tlci5vcHRp
b25zLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgICAgICBpZiAobW9kZVBpY2tlci5vcHRpb25zW2ld
LnZhbHVlID09PSBtb2RlKSB7Ci0gICAgICAgICAgICAgICAgbW9kZVBpY2tlci5vcHRpb25zW2ld
LnNlbGVjdGVkID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0K
LSAgICAgICAgfQotICAgIH0KLQotICAgIC8vIFNldCBvbiBDb2RlTWlycm9yLgotICAgIGNtLnNl
dFZhbHVlKGNvbnRlbnQpOwotICAgIGNtLnNldE9wdGlvbigibW9kZSIsIG1vZGUpOwotCi0gICAg
Ly8gQ2hhbmdpbmcgdGhlIG1vZGUuCi0gICAgbW9kZVBpY2tlci5hZGRFdmVudExpc3RlbmVyKCJj
aGFuZ2UiLCBmdW5jdGlvbihldmVudCkgewotICAgICAgICBjbS5zZXRWYWx1ZSgiIik7Ci0gICAg
ICAgIGNtLnNldE9wdGlvbigibW9kZSIsIG1vZGVQaWNrZXIudmFsdWUpOwotICAgICAgICByZWZy
ZXNoKCk7Ci0gICAgfSk7Ci0KLSAgICAvLyBQb3B1bGF0ZSBidXR0b24gdG8gcG9wdWxhdGUgd2l0
aCBzb21lIGNhbm5lZCBjb250ZW50LgotICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwb3B1
bGF0ZSIpLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAg
ICAgc3dpdGNoIChtb2RlUGlja2VyLnZhbHVlKSB7Ci0gICAgICAgICAgICBjYXNlICJ0ZXh0L2ph
dmFzY3JpcHQiOgotICAgICAgICAgICAgICAgIHZhciB1cmwgPSAiLi4vLi4vLi4vLi4vTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2Zvcm1hdHRpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQtdGVzdHMvc2Ft
cGxlLWpxdWVyeS5qcyI7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNl
ICJ0ZXh0L2NzcyI6Ci0gICAgICAgICAgICAgICAgdmFyIHVybCA9ICJwb3B1bGF0ZS9hcHBsZS5j
c3MiOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0KLSAgICAgICAgdmFyIHho
ciA9IG5ldyBYTUxIdHRwUmVxdWVzdDsKLSAgICAgICAgeGhyLm9wZW4oIkdFVCIsIHVybCwgdHJ1
ZSk7Ci0gICAgICAgIHhoci5vbmxvYWQgPSBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIGNtLnNl
dFZhbHVlKHhoci5yZXNwb25zZVRleHQpOwotICAgICAgICAgICAgc2V0VGltZW91dChyZWZyZXNo
KTsKLSAgICAgICAgfQotICAgICAgICB4aHIuc2VuZCgpOwotICAgIH0pOwotCi0gICAgLy8gUnVu
IFRlc3RzIGJ1dHRvbi4KLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicnVuLXRlc3RzIiku
YWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBmdW5jdGlvbihldmVudCkgewotICAgICAgICBjbS5z
ZXRWYWx1ZSgiLyogUnVubmluZyBUZXN0cy4uLiAqLyIpOwotICAgICAgICByZWZyZXNoKCk7Ci0g
ICAgICAgIHJ1blRlc3RzKCk7Ci0gICAgfSk7Ci0KLSAgICAvLyBDbGVhciBidXR0b24uCi0gICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNsZWFyIikuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2si
LCBmdW5jdGlvbihldmVudCkgewotICAgICAgICBjbS5zZXRWYWx1ZSgiIik7Ci0gICAgICAgIHJl
ZnJlc2goKTsKLSAgICB9KTsKLQotICAgIC8vIFNlbGVjdCBvdXRwdXQgYnV0dG9uLgotICAgIGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZWxlY3Qtb3V0cHV0IikuYWRkRXZlbnRMaXN0ZW5lcigi
Y2xpY2siLCBmdW5jdGlvbihldmVudCkgewotICAgICAgICB2YXIgcmFuZ2UgPSBkb2N1bWVudC5j
cmVhdGVSYW5nZSgpOwotICAgICAgICByYW5nZS5zZWxlY3ROb2RlQ29udGVudHMoZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoInByZXR0eSIpKTsKLSAgICAgICAgdmFyIHNlbGVjdGlvbiA9IHdpbmRv
dy5nZXRTZWxlY3Rpb24oKTsKLSAgICAgICAgc2VsZWN0aW9uLnJlbW92ZUFsbFJhbmdlcygpOwot
ICAgICAgICBzZWxlY3Rpb24uYWRkUmFuZ2UocmFuZ2UpOwotICAgIH0pOwotCi0gICAgLy8gUnVu
IGFnYWluIGJ1dHRvbi4KLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicnVuLWFnYWluIiku
YWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBmdW5jdGlvbihldmVudCkgewotICAgICAgICByZWZy
ZXNoKCk7Ci0gICAgfSk7Ci0KLSAgICAvLyBTYXZlIGFzIFVSTCBidXR0b24uCi0gICAgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoInNhdmUtYXMtdXJsIikuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2si
LCBmdW5jdGlvbihldmVudCkgewotICAgICAgICB2YXIgbW9kZSA9IG1vZGVQaWNrZXIudmFsdWU7
Ci0gICAgICAgIHZhciBjb250ZW50ID0gY20uZ2V0VmFsdWUoKTsKLSAgICAgICAgd2luZG93Lmxv
Y2F0aW9uLnNlYXJjaCA9ICI/bW9kZT0iICsgd2luZG93LmVuY29kZVVSSUNvbXBvbmVudChtb2Rl
KSArICImY29udGVudD0iICsgd2luZG93LmVuY29kZVVSSUNvbXBvbmVudChjb250ZW50KTsKLSAg
ICB9KTsKLQotICAgIC8vIFNhdmUgdG8gbG9jYWxTdG9yYWdlLgotICAgIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJzYXZlLWxvY2FsLXN0b3JhZ2UiKS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIs
IGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgICAgIGxvY2FsU3RvcmFnZS5tb2RlID0gbW9kZVBpY2tl
ci52YWx1ZTsKLSAgICAgICAgbG9jYWxTdG9yYWdlLmNvbnRlbnQgPSBjbS5nZXRWYWx1ZSgpOwot
ICAgIH0pOwotCi0gICAgLy8gQ2xlYXIgbG9jYWxTdG9yYWdlLgotICAgIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJjbGVhci1sb2NhbC1zdG9yYWdlIikuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2si
LCBmdW5jdGlvbihldmVudCkgewotICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgibW9k
ZSIpOwotICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgiY29udGVudCIpOwotICAgIH0p
OwotCi0gICAgLy8gQnV0dG9uIGhlbHBlcnMuCi0gICAgdmFyIGJ1dHRvbnMgPSBbIm1vZGUiLCAi
cG9wdWxhdGUiLCAicnVuLXRlc3RzIiwgImNsZWFyIiwgInNlbGVjdC1vdXRwdXQiLCAicnVuLWFn
YWluIl07Ci0gICAgZnVuY3Rpb24gZGlzYWJsZUJ1dHRvbnMoKSB7Ci0gICAgICAgIGJ1dHRvbnMu
Zm9yRWFjaChmdW5jdGlvbihpZCkgewotICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoaWQpLmRpc2FibGVkID0gdHJ1ZTsKLSAgICAgICAgfSk7Ci0gICAgfQotICAgIGZ1bmN0aW9u
IGVuYWJsZUJ1dHRvbnMoKSB7Ci0gICAgICAgIGJ1dHRvbnMuZm9yRWFjaChmdW5jdGlvbihpZCkg
ewotICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmRpc2FibGVkID0gZmFs
c2U7Ci0gICAgICAgIH0pOwotICAgIH0KLQotICAgIC8vIFJlZnJlc2ggYWZ0ZXIgY2hhbmdlcyBh
ZnRlciBhIHNob3J0IGRlbGF5LgotICAgIHZhciB0aW1lciA9IG51bGw7Ci0gICAgY20ub24oImNo
YW5nZSIsIGZ1bmN0aW9uKGNvZGVNaXJyb3IsIGNoYW5nZSkgewotICAgICAgICBpZiAodGltZXIp
Ci0gICAgICAgICAgICBjbGVhclRpbWVvdXQodGltZXIpCi0gICAgICAgIHRpbWVyID0gc2V0VGlt
ZW91dChmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aW1lcik7Ci0gICAg
ICAgICAgICB0aW1lciA9IG51bGw7Ci0gICAgICAgICAgICByZWZyZXNoKCk7Ci0gICAgICAgIH0s
IDUwMCk7Ci0gICAgfSk7Ci0KLSAgICAvLyBPdXRwdXQgZWxlbWVudHMuCi0gICAgdmFyIHRpbWVP
dXRwdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGltZSIpOwotICAgIHZhciBwcmV0dHlQ
cmUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicHJldHR5Iik7Ci0gICAgdmFyIGRlYnVnUHJl
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRlYnVnIik7Ci0KLSAgICBmdW5jdGlvbiByZWZy
ZXNoKCkgewotICAgICAgICBpZiAodGltZXIpCi0gICAgICAgICAgICBjbGVhclRpbWVvdXQodGlt
ZXIpOwotCi0gICAgICAgIGNvbnN0IHN0YXJ0ID0ge2xpbmU6IDAsIGNoOiAwfTsKLSAgICAgICAg
Y29uc3QgZW5kID0ge2xpbmU6IGNtLmxpbmVDb3VudCgpIC0gMX07Ci0KLSAgICAgICAgLy8gU2V0
dXAuCi0gICAgICAgIGNvbnN0IGluZGVudFN0cmluZyA9ICIgICAgIjsKLSAgICAgICAgdmFyIGJ1
aWxkZXIgPSBuZXcgRm9ybWF0dGVyQ29udGVudEJ1aWxkZXIoaW5kZW50U3RyaW5nKTsKLSAgICAg
ICAgdmFyIGZvcm1hdHRlciA9IG5ldyBXSS5Gb3JtYXR0ZXIoY20sIGJ1aWxkZXIpOwotCi0gICAg
ICAgIC8vIFRpbWUgdGhlIGZvcm1hdHRlci4KLSAgICAgICAgdmFyIHN0YXJ0VGltZSA9IERhdGUu
bm93KCk7Ci0gICAgICAgIGZvcm1hdHRlci5mb3JtYXQoc3RhcnQsIGVuZCk7Ci0gICAgICAgIHZh
ciBlbmRUaW1lID0gRGF0ZS5ub3coKTsKLQotICAgICAgICAvLyBHYXRoZXIgZGVidWcgaW5mb3Jt
YXRpb24uCi0gICAgICAgIHZhciBkZWJ1ZyA9IGZvcm1hdHRlci5kZWJ1ZyhzdGFydCwgZW5kKTsK
LQotICAgICAgICAvLyBPdXRwdXQgdGhlIHJlc3VsdHMuCi0gICAgICAgIHRpbWVPdXRwdXQuaW5u
ZXJUZXh0ID0gKGVuZFRpbWUgLSBzdGFydFRpbWUpICsgIm1zIjsKLSAgICAgICAgcHJldHR5UHJl
LmlubmVyVGV4dCA9IGJ1aWxkZXIuZm9ybWF0dGVkQ29udGVudDsKLSAgICAgICAgZGVidWdQcmUu
aW5uZXJUZXh0ID0gZGVidWc7Ci0gICAgfQotCi0gICAgc2V0VGltZW91dChyZWZyZXNoKTsKLQot
ICAgIC8vIFRlc3RzLgotICAgIGZ1bmN0aW9uIHJ1blRlc3RzKCkgewotICAgICAgICBkaXNhYmxl
QnV0dG9ucygpOwotICAgICAgICBmdW5jdGlvbiBjb21wbGV0ZWRDYWxsYmFjaygpIHsKLSAgICAg
ICAgICAgIGVuYWJsZUJ1dHRvbnMoKTsKLSAgICAgICAgfQotCi0gICAgICAgIGlmIChtb2RlUGlj
a2VyLnZhbHVlID09PSAidGV4dC9qYXZhc2NyaXB0IikKLSAgICAgICAgICAgIHJ1bkphdmFTY3Jp
cHRUZXN0cyhjb21wbGV0ZWRDYWxsYmFjayk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHJ1
bkNTU1Rlc3RzKGNvbXBsZXRlZENhbGxiYWNrKTsKLSAgICB9Ci0gICAgZnVuY3Rpb24gcnVuSmF2
YVNjcmlwdFRlc3RzKGNhbGxiYWNrKSB7Ci0gICAgICAgIF9ydW5UZXN0cyhjYWxsYmFjaywgWwot
ICAgICAgICAgICAgImphdmFzY3JpcHQtdGVzdHMvYmxvY2stY29tbWVudC5qcyIsCi0gICAgICAg
ICAgICAiamF2YXNjcmlwdC10ZXN0cy9zaW5nbGUtc3RhdGVtZW50LWJsb2Nrcy5qcyIsCi0gICAg
ICAgICAgICAiamF2YXNjcmlwdC10ZXN0cy9zd2l0Y2gtY2FzZS1kZWZhdWx0LmpzIiwKLSAgICAg
ICAgXSk7Ci0gICAgfQotICAgIGZ1bmN0aW9uIHJ1bkNTU1Rlc3RzKGNhbGxiYWNrKSB7Ci0gICAg
ICAgIF9ydW5UZXN0cyhjYWxsYmFjaywgWwotICAgICAgICAgICAgImNzcy10ZXN0cy9iYXNpYy5j
c3MiLAotICAgICAgICAgICAgImNzcy10ZXN0cy9jYWxjLmNzcyIsCi0gICAgICAgICAgICAiY3Nz
LXRlc3RzL2dyYWRpZW50LmNzcyIsCi0gICAgICAgICAgICAiY3NzLXRlc3RzL2tleWZyYW1lcy5j
c3MiLAotICAgICAgICAgICAgImNzcy10ZXN0cy9tZWRpYS1xdWVyeS5jc3MiLAotICAgICAgICAg
ICAgImNzcy10ZXN0cy9zZWxlY3RvcnMuY3NzIiwKLSAgICAgICAgICAgICJjc3MtdGVzdHMvd3Jh
cHBpbmcuY3NzIiwKLSAgICAgICAgXSk7Ci0gICAgfQotICAgIGZ1bmN0aW9uIF9ydW5UZXN0cyhj
YWxsYmFjaywgbWFuaWZlc3QpIHsKLSAgICAgICAgdmFyIGluZGV4ID0gLTE7Ci0gICAgICAgIHZh
ciByZXN1bHRzID0gW107Ci0gICAgICAgIHNldFRpbWVvdXQocnVuTmV4dFRlc3QsIDApOwotCi0g
ICAgICAgIGZ1bmN0aW9uIHJ1bk5leHRUZXN0KCkgewotICAgICAgICAgICAgLy8gTmV4dCB0ZXN0
LgotICAgICAgICAgICAgaW5kZXgrKzsKLQotICAgICAgICAgICAgLy8gRG9uZS4KLSAgICAgICAg
ICAgIGlmIChpbmRleCA+PSBtYW5pZmVzdC5sZW5ndGgpIHsKLSAgICAgICAgICAgICAgICBpZiAo
IWluZGV4KQotICAgICAgICAgICAgICAgICAgICByZXN1bHRzLnB1c2goIi8qIE5vIHRlc3RzIGZv
ciBtb2RlOiAiICsgbW9kZVBpY2tlci52YWx1ZSk7Ci0gICAgICAgICAgICAgICAgcHJpbnRSZXN1
bHRzKCk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgfQotCi0gICAgICAg
ICAgICAvLyBMb2FkIHRlc3QgYW5kIGV4cGVjdGVkIHJlc3VsdHMuCi0gICAgICAgICAgICB2YXIg
dGVzdCA9IG1hbmlmZXN0W2luZGV4XTsKLSAgICAgICAgICAgIHZhciB0ZXN0VVJMID0gIi4uLy4u
Ly4uLy4uL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb2RlbWlycm9yL3Jlc291cmNlcy9wcmV0dHlw
cmludGluZy8iICsgdGVzdDsKLSAgICAgICAgICAgIHZhciBleHBlY3RlZFVSTCA9IHRlc3RVUkwu
cmVwbGFjZSgvXC4oW15cLl0rKSQvLCAiLWV4cGVjdGVkLiQxIik7Ci0gICAgICAgICAgICB2YXIg
eGhyMSA9IG5ldyBYTUxIdHRwUmVxdWVzdDsKLSAgICAgICAgICAgIHhocjEub3BlbigiR0VUIiwg
dGVzdFVSTCwgZmFsc2UpOwotICAgICAgICAgICAgeGhyMS5zZW5kKCk7Ci0gICAgICAgICAgICB2
YXIgeGhyMiA9IG5ldyBYTUxIdHRwUmVxdWVzdDsKLSAgICAgICAgICAgIHhocjIub3BlbigiR0VU
IiwgZXhwZWN0ZWRVUkwsIGZhbHNlKTsKLSAgICAgICAgICAgIHhocjIuc2VuZCgpOwotICAgICAg
ICAgICAgdmFyIHRlc3REYXRhID0geGhyMS5yZXNwb25zZVRleHQ7Ci0gICAgICAgICAgICB2YXIg
ZXhwZWN0ZWREYXRhID0geGhyMi5yZXNwb25zZVRleHQ7Ci0KLSAgICAgICAgICAgIC8vIFJ1biB0
aGUgdGVzdC4KLSAgICAgICAgICAgIHZhciBlZGl0b3IgPSBDb2RlTWlycm9yKGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoImRpdiIpKTsKLSAgICAgICAgICAgIGVkaXRvci5zZXRPcHRpb24oIm1vZGUi
LCBtb2RlUGlja2VyLnZhbHVlKTsKLSAgICAgICAgICAgIGVkaXRvci5zZXRWYWx1ZSh0ZXN0RGF0
YSk7Ci0gICAgICAgICAgICBjb25zdCBzdGFydCA9IHtsaW5lOiAwLCBjaDogMH07Ci0gICAgICAg
ICAgICBjb25zdCBlbmQgPSB7bGluZTogZWRpdG9yLmxpbmVDb3VudCgpIC0gMX07Ci0gICAgICAg
ICAgICBjb25zdCBpbmRlbnRTdHJpbmcgPSAiICAgICI7Ci0gICAgICAgICAgICB2YXIgYnVpbGRl
ciA9IG5ldyBGb3JtYXR0ZXJDb250ZW50QnVpbGRlcihpbmRlbnRTdHJpbmcpOwotICAgICAgICAg
ICAgdmFyIGZvcm1hdHRlciA9IG5ldyBXSS5Gb3JtYXR0ZXIoZWRpdG9yLCBidWlsZGVyKTsKLSAg
ICAgICAgICAgIGZvcm1hdHRlci5mb3JtYXQoc3RhcnQsIGVuZCk7Ci0KLSAgICAgICAgICAgIC8v
IENvbXBhcmUgcmVzdWx0cy4KLSAgICAgICAgICAgIHZhciBwYXNzID0gYnVpbGRlci5mb3JtYXR0
ZWRDb250ZW50ID09PSBleHBlY3RlZERhdGE7Ci0gICAgICAgICAgICByZXN1bHRzLnB1c2goIi8q
ICIgKyAocGFzcyA/ICJQQVNTIiA6ICJGQUlMIikgKyAiOiAiICsgdGVzdCArICIgKi8iKTsKLQot
ICAgICAgICAgICAgLy8gT3V0cHV0IGZhaWx1cmVzIHRvIGNvbnNvbGUuCi0gICAgICAgICAgICBp
ZiAoIXBhc3MpIHsKLSAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiVGVzdCIsIHRlc3QpOwot
ICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCJGb3JtYXR0ZWQgT3V0cHV0IiwgYnVpbGRlci5m
b3JtYXR0ZWRDb250ZW50Lmxlbmd0aCk7Ci0gICAgICAgICAgICAgICAgY29uc29sZS5sb2coYnVp
bGRlci5mb3JtYXR0ZWRDb250ZW50KTsKLSAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiRXhw
ZWN0ZWQgT3V0cHV0IiwgZXhwZWN0ZWREYXRhLmxlbmd0aCk7Ci0gICAgICAgICAgICAgICAgY29u
c29sZS5sb2coZXhwZWN0ZWREYXRhKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgcnVu
TmV4dFRlc3QoKTsKLSAgICAgICAgfQotCi0gICAgICAgIGZ1bmN0aW9uIHByaW50UmVzdWx0cygp
IHsKLSAgICAgICAgICAgIGNtLnNldFZhbHVlKHJlc3VsdHMuam9pbigiXG4iKSk7Ci0gICAgICAg
ICAgICBjbS5yZWZyZXNoKCk7Ci0gICAgICAgICAgICBjYWxsYmFjaygpOwotICAgICAgICB9Ci0g
ICAgfQotCi0gICAgPC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVG9vbHMvTGVnYWN5UHJldHR5UHJpbnRpbmcvcG9wdWxhdGUvYXBw
bGUuY3NzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1Rvb2xzL0xlZ2FjeVByZXR0eVByaW50aW5n
L3BvcHVsYXRlL2FwcGxlLmNzcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjAzMzAy
NWUyODguLjAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Ub29scy9MZWdh
Y3lQcmV0dHlQcmludGluZy9wb3B1bGF0ZS9hcHBsZS5jc3MKKysrIC9kZXYvbnVsbApAQCAtMSw0
NjYgKzAsMCBAQAotLyogUkVTRVQgKi8KLWh0bWwsYm9keSxkaXYsdWwsb2wsbGksZGwsZHQsZGQs
aDEsaDIsaDMsaDQsaDUsaDYscHJlLGZvcm0scCxibG9ja3F1b3RlLGZpZWxkc2V0LGlucHV0LGFi
YnIsYXJ0aWNsZSxhc2lkZSxjb21tYW5kLGRldGFpbHMsZmlnY2FwdGlvbixmaWd1cmUsZm9vdGVy
LGhlYWRlcixoZ3JvdXAsbWFyayxtZXRlcixuYXYsb3V0cHV0LHByb2dyZXNzLHNlY3Rpb24sc3Vt
bWFyeSx0aW1lIHsgbWFyZ2luOiAwOyBwYWRkaW5nOiAwOyB9Ci1oMSxoMixoMyxoNCxoNSxoNixw
cmUsY29kZSxhZGRyZXNzLGNhcHRpb24sY2l0ZSxjb2RlLGVtLHN0cm9uZyx0aCxmaWdjYXB0aW9u
IHsgZm9udC1zaXplOiAxZW07IGZvbnQtd2VpZ2h0OiBub3JtYWw7IGZvbnQtc3R5bGU6IG5vcm1h
bDsgfQotZmllbGRzZXQsaWZyYW1lIHsgYm9yZGVyOiBub25lOyB9Ci1jYXB0aW9uLHRoIHsgdGV4
dC1hbGlnbjogbGVmdDsgfQotdGFibGUgeyBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOyBib3Jk
ZXItc3BhY2luZzogMDsgfQotYXJ0aWNsZSxhc2lkZSxmb290ZXIsaGVhZGVyLGhncm91cCxuYXYs
c2VjdGlvbixmaWd1cmUsZmlnY2FwdGlvbiB7IGRpc3BsYXk6IGJsb2NrOyB9Ci0KLS8qIExBWU9V
VCAqLwotaHRtbCB7IGJhY2tncm91bmQtY29sb3I6I2ZmZjsgfQotCi0uY2xlYXIgeyBjbGVhcjog
Ym90aDsgfQotLmNsZWFyZXIgeyBjbGVhcjogYm90aDsgZGlzcGxheTogYmxvY2s7IG1hcmdpbjog
MDsgcGFkZGluZzogMDsgaGVpZ2h0OiAwOyBsaW5lLWhlaWdodDogMXB4OyBmb250LXNpemU6IDFw
eDsgfQotLnNlbGZjbGVhciB7IHpvb206MTsgfQotLnNlbGZjbGVhcjo6YWZ0ZXIgeyBjb250ZW50
OicuJzsgZGlzcGxheTpibG9jazsgaGVpZ2h0OjA7IGNsZWFyOmJvdGg7IHZpc2liaWxpdHk6aGlk
ZGVuOyB9Ci0KLWltZywgLnNlYXJjaC13cmFwcGVyIC5sZWZ0LCAuc2VhcmNoLXdyYXBwZXIgLnJp
Z2h0LCB1bC5zcC1yZXN1bHRzIGxpLnZpZXdhbGwgYSwgdWwuc3AtcmVzdWx0cyBsaSAucmVwbGFj
ZW1lbnRpbWcsIAotI2dsb2JhbGZvb3RlciAjYnJlYWRjcnVtYnMsICNnbG9iYWxmb290ZXIgI2Jy
ZWFkY3J1bWJzIHNwYW4sICNkaXJlY3RvcnluYXYgLmNhcGJvdHRvbSwgCi0jcHJvZHVjdGhlYWRl
ciBoMSBhLCAjcHJvZHVjdGhlYWRlciBoMiBhLCAjbWFpbiAubWFpbmNhcCB7IGJlaGF2aW9yOiB1
cmwoL2dsb2JhbC9zY3JpcHRzL2xpYi9pZXBuZ2ZpeC5odGMpOyB9Ci0KLWltZyB7IGJvcmRlcjog
MDsgfQotaW1nLmxlZnQgeyBmbG9hdDogbGVmdDsgbWFyZ2luOiAycHggMjBweCAxNnB4IDA7IH0K
LWltZy5yaWdodCB7IGZsb2F0OiByaWdodDsgbWFyZ2luOiAycHggMCAxNnB4IDIwcHg7IH0KLWlt
Zy5hY3Jvc3MgeyBtYXJnaW46IDJweCAwIDE2cHggMDsgfQotaW1nLmZsdXNobGVmdCB7IG1hcmdp
bi1sZWZ0OiAtMjBweDsgfQotaW1nLmZsdXNocmlnaHQgeyBtYXJnaW4tcmlnaHQ6IC0yMHB4OyB9
Ci0KLS5yZXBsYWNlZCB7IGRpc3BsYXk6IGJsb2NrOyB3aWR0aDogMXB4OyBoZWlnaHQ6IDFweDsg
b3V0bGluZTogbm9uZTsgb3ZlcmZsb3c6IGhpZGRlbjsgdGV4dC1pbmRlbnQ6IC05OTk5cHg7IH0K
LSNvbW5pdHVyZSwgI3RvcCB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAwOyB9Ci0jY29udGFp
bmVyIHsgd2lkdGg6IDk4MHB4OyBtYXJnaW46IDAgYXV0bzsgcG9zaXRpb246IHJlbGF0aXZlOyB9
Ci0jbWFpbiB7IHdpZHRoOiAxMDAlOyBwb3NpdGlvbjogcmVsYXRpdmU7IH0KLSNjb250ZW50IHsg
cGFkZGluZzogMThweCAyMHB4OyBwb3NpdGlvbjogcmVsYXRpdmU7IGNvbG9yOiAjMzMzOyB9Ci0j
YnJlYWRjcnVtYiB7IGNsZWFyOiBib3RoOyB0ZXh0LWFsaWduOiBjZW50ZXI7IG1hcmdpbjogMThw
eCBhdXRvOyBjbGVhcjogYm90aDsgZm9udC1zaXplOiAxMHB4OyBjb2xvcjogIzY4Njg2ODsgfQot
Ci0uY29udGVudCB7IGJhY2tncm91bmQ6ICNmZmY7IGJvcmRlcjogMXB4IHNvbGlkOyBib3JkZXIt
Y29sb3I6ICNlNWU1ZTUgI2RiZGJkYiAjZDJkMmQyOyAtd2Via2l0LWJveC1zaGFkb3c6IHJnYmEo
MCwwLDAsMC4zKSAwIDFweCAzcHg7IC1tb3otYm94LXNoYWRvdzogcmdiYSgwLDAsMCwwLjMpIDAg
MXB4IDNweDsgYm94LXNoYWRvdzogcmdiYSgwLDAsMCwwLjMpIDAgMXB4IDNweDsgfQotLmNvbnRl
bnQ6bnRoLWNoaWxkKDFuKSB7IGJvcmRlcjogbm9uZTsgfSAvKiByZXNldCBib3JkZXIgZm9yIHNt
YXJ0IGJyb3dzZXJzICovCi0KLS5jb250ZW50LAotLnJvdW5kZWQgeyBib3JkZXItcmFkaXVzOiA0
cHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czogNHB4OyAtbW96LWJvcmRlci1yYWRpdXM6IDRweDsg
LW8tYm9yZGVyLXJhZGl1czogNHB4OyAta2h0bWwtYm9yZGVyLXJhZGl1czogNHB4OyB9Ci0KLS5z
aGFkb3cgeyAtd2Via2l0LWJveC1zaGFkb3c6IHJnYmEoMCwwLDAsMC4zNSkgMCAxcHggM3B4OyAt
bW96LWJveC1zaGFkb3c6IHJnYmEoMCwwLDAsMC4zNSkgMCAxcHggM3B4OyBib3gtc2hhZG93OiBy
Z2JhKDAsMCwwLDAuMzUpIDAgMXB4IDNweDsgfQotaW1nLnNoYWRvdyB7IHBhZGRpbmc6IDVweDsg
YmFja2dyb3VuZDogI2ZmZjsgbWFyZ2luLWJvdHRvbTogMnB4OyAqYm9yZGVyOiAxcHggc29saWQg
I2UyZTJlMjsgX3Bvc2l0aW9uOiByZWxhdGl2ZTsgfQotCi0KLS5jYWxsb3V0IHsgYm9yZGVyLXJh
ZGl1czogN3B4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDdweDsgLW1vei1ib3JkZXItcmFkaXVz
OiA3cHg7IC1vLWJvcmRlci1yYWRpdXM6IDdweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6IDdweDsg
fQotCi0ucm91bmRlZHRvcCB7IGJvcmRlci1yYWRpdXM6IDRweCA0cHggMCAwOyAtd2Via2l0LWJv
cmRlci10b3AtbGVmdC1yYWRpdXM6NHB4OyAtd2Via2l0LWJvcmRlci10b3AtcmlnaHQtcmFkaXVz
OjRweDsgLW1vei1ib3JkZXItcmFkaXVzOiA0cHggNHB4IDAgMDsgLW8tYm9yZGVyLXJhZGl1czog
NHB4IDRweCAwIDA7IC1raHRtbC1ib3JkZXItcmFkaXVzOiA0cHggNHB4IDAgMDsgfQotLnJvdW5k
ZWRib3R0b20geyBib3JkZXItcmFkaXVzOiAwIDAgNHB4IDRweDsgLXdlYmtpdC1ib3JkZXItYm90
dG9tLWxlZnQtcmFkaXVzOjRweDsgLXdlYmtpdC1ib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czo0
cHg7IC1tb3otYm9yZGVyLXJhZGl1czogMCAwIDRweCA0cHg7IC1vLWJvcmRlci1yYWRpdXM6IDAg
MCA0cHggNHB4OyAta2h0bWwtYm9yZGVyLXJhZGl1czogMCAwIDRweCA0cHg7IH0KLS5yb3VuZGVk
cmlnaHQgeyBib3JkZXItcmFkaXVzOiAwIDRweCA0cHggMDsgLXdlYmtpdC1ib3JkZXItdG9wLXJp
Z2h0LXJhZGl1czo0cHg7IC13ZWJraXQtYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6NHB4OyAt
bW96LWJvcmRlci1yYWRpdXM6IDAgNHB4IDRweCAwOyAtby1ib3JkZXItcmFkaXVzOiAwIDRweCA0
cHggMDsgLWtodG1sLWJvcmRlci1yYWRpdXM6IDAgNHB4IDRweCAwOyB9Ci0ucm91bmRlZGxlZnQg
eyBib3JkZXItcmFkaXVzOiA0cHggMCAwIDRweDsgLXdlYmtpdC1ib3JkZXItdG9wLWxlZnQtcmFk
aXVzOjRweDsgLXdlYmtpdC1ib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjRweDsgLW1vei1ib3Jk
ZXItcmFkaXVzOiA0cHggMCAwIDRweDsgLW8tYm9yZGVyLXJhZGl1czogNHB4IDAgMCA0cHg7IC1r
aHRtbC1ib3JkZXItcmFkaXVzOiA0cHggMCAwIDRweDsgfQotLnJvdW5kZWR0b3BsZWZ0IHsgYm9y
ZGVyLXJhZGl1czo0cHggMCAwOyAtd2Via2l0LWJvcmRlci10b3AtbGVmdC1yYWRpdXM6NHB4OyAt
bW96LWJvcmRlci1yYWRpdXM6NHB4IDAgMDsgLW8tYm9yZGVyLXJhZGl1czo0cHggMCAwOyAta2h0
bWwtYm9yZGVyLXJhZGl1czo0cHggMCAwOyB9Ci0ucm91bmRlZHRvcHJpZ2h0IHsgYm9yZGVyLXJh
ZGl1czogMCA0cHggMCAwOyAtd2Via2l0LWJvcmRlci10b3AtcmlnaHQtcmFkaXVzOjRweDsgLW1v
ei1ib3JkZXItcmFkaXVzOjAgNHB4IDAgMDsgLW8tYm9yZGVyLXJhZGl1czowIDRweCAwIDA7IC1r
aHRtbC1ib3JkZXItcmFkaXVzOiAwIDRweCAwIDA7IH0KLS5yb3VuZGVkYm90dG9tbGVmdCB7IGJv
cmRlci1yYWRpdXM6IDAgMCAwIDRweDsgLXdlYmtpdC1ib3JkZXItYm90dG9tLWxlZnQtcmFkaXVz
OjRweDsgLW1vei1ib3JkZXItcmFkaXVzOiAwIDAgMCA0cHg7IC1vLWJvcmRlci1yYWRpdXM6IDAg
MCAwIDRweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6IDAgMCAwIDRweDsgfQotLnJvdW5kZWRib3R0
b21yaWdodCB7IGJvcmRlci1yYWRpdXM6IDAgMCA0cHggMDsgLXdlYmtpdC1ib3JkZXItYm90dG9t
LXJpZ2h0LXJhZGl1czo0cHg7IC1tb3otYm9yZGVyLXJhZGl1czogMCAwIDRweCAwOyAtby1ib3Jk
ZXItcmFkaXVzOiAwIDAgNHB4IDA7IC1raHRtbC1ib3JkZXItcmFkaXVzOiAwIDAgNHB4IDA7IH0K
LQotLmdyYWJiYWJsZSB7IGN1cnNvcjptb3ZlOyBjdXJzb3I6LXdlYmtpdC1ncmFiOyBjdXJzb3I6
LW1vei1ncmFiOyBjdXJzb3I6Z3JhYjsgfQotLmdyYWJiaW5nLAotLmdyYWJiaW5nIC5ncmFiYmFi
bGUgeyBjdXJzb3I6bW92ZTsgY3Vyc29yOi13ZWJraXQtZ3JhYmJpbmc7IGN1cnNvcjotbW96LWdy
YWJiaW5nOyBjdXJzb3I6Z3JhYmJpbmc7IH0KLQotLyogR1JJRCAqLwotLmNvbHVtbiB7IGZsb2F0
OiBsZWZ0OyB9Ci0uZ3JpZDJjb2wsIC5ncmlkMmNvbGEsIC5ncmlkMmNvbGIsIC5ncmlkMmNvbGMs
IC5ncmlkMmNvbGQsIC5ncmlkMmNvbGUsIC5ncmlkMmNvbGYsIC5ncmlkM2NvbCwgLmdyaWQzY29s
YSwgLmdyaWQ0Y29sLCAuZ3JpZDVjb2wsIC5ncmlkNmNvbCB7IHdpZHRoOiAxMDAlOyB9Ci0KLS5n
cmlkMmNvbCAuY29sdW1uIHsgd2lkdGg6IDQ5JTsgfQotLmdyaWQyY29sIC5ncmlkMmNvbCAuY29s
dW1uIHsgd2lkdGg6IDQ3LjglOyB9Ci0uZ3JpZDNjb2wgLmdyaWQyY29sIC5jb2x1bW4geyB3aWR0
aDogNDYlOyB9Ci0uZ3JpZDRjb2wgLmdyaWQyY29sIC5jb2x1bW4geyB3aWR0aDogNDUlOyB9Ci0K
LS5ncmlkMmNvbGEgLmNvbHVtbi5maXJzdCB7IHdpZHRoOiA2NiU7IH0KLS5ncmlkMmNvbGEgLmNv
bHVtbi5sYXN0IHsgd2lkdGg6IDMyJTsgfQotCi0uZ3JpZDJjb2xiIC5jb2x1bW4uZmlyc3QgeyB3
aWR0aDogNzQuOSU7IH0KLS5ncmlkMmNvbGIgLmNvbHVtbi5sYXN0IHsgd2lkdGg6IDIzJTsgfQot
Ci0uZ3JpZDJjb2xjIC5jb2x1bW4uZmlyc3QgeyB3aWR0aDogMzIlOyB9Ci0uZ3JpZDJjb2xjIC5j
b2x1bW4ubGFzdCB7IHdpZHRoOiA2NiU7IH0KLQotLmdyaWQyY29sZCAuY29sdW1uLmZpcnN0IHsg
d2lkdGg6IDIzJTsgfQotLmdyaWQyY29sZCAuY29sdW1uLmxhc3QgeyB3aWR0aDogNzQuOSU7IH0K
LQotLmdyaWQyY29sZSAuY29sdW1uLmZpcnN0IHsgd2lkdGg6IDc5JTsgfQotLmdyaWQyY29sZSAu
Y29sdW1uLmxhc3QgeyB3aWR0aDogMTklOyB9Ci0KLS5ncmlkMmNvbGYgLmNvbHVtbi5maXJzdCB7
IHdpZHRoOiAxOSU7IH0KLS5ncmlkMmNvbGYgLmNvbHVtbi5sYXN0IHsgd2lkdGg6IDc5JTsgfQot
Ci0uZ3JpZDNjb2wgLmNvbHVtbiB7IHdpZHRoOiAzMiU7IG1hcmdpbi1sZWZ0OiAyJTsgfQotLmdy
aWQyY29sIC5ncmlkM2NvbCAuY29sdW1uIHsgd2lkdGg6IDMxJTsgfQotCi0uZ3JpZDNjb2xhIC5j
b2x1bW4geyB3aWR0aDogNTglOyBtYXJnaW4tbGVmdDogMiU7IH0KLS5ncmlkM2NvbGEgLmNvbHVt
bi5maXJzdCwKLS5ncmlkM2NvbGEgLmNvbHVtbi5sYXN0IHsgd2lkdGg6IDE5JTsgfQotCi0uZ3Jp
ZDRjb2wgLmNvbHVtbiB7IHdpZHRoOiAyMyU7IG1hcmdpbi1sZWZ0OiAzJTsgfQotCi0uZ3JpZDVj
b2wgLmNvbHVtbiB7IHdpZHRoOiAxOC40JTsgbWFyZ2luLWxlZnQ6IDIlOyB9Ci0KLS5ncmlkNmNv
bCAuY29sdW1uIHsgd2lkdGg6IDE1JTsgbWFyZ2luLWxlZnQ6IDIlOyB9Ci0KLS5jb2x1bW4uZmly
c3QsIC5jb2x1bW4ubGFzdCB7IG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7IH0KLS5jb2x1bW4u
bGFzdCB7IGZsb2F0OiByaWdodCAhaW1wb3J0YW50OyB9Ci0KLXAubGFzdCwgdWwubGFzdCwgb2wu
bGFzdCwgbGkubGFzdCB7IF93aWR0aDogYXV0byAhaW1wb3J0YW50OyBfZmxvYXQ6IG5vbmUgIWlt
cG9ydGFudDsgfQotCi0jY29udGFpbmVyOjphZnRlciwgI2NvbnRlbnQ6OmFmdGVyLCAuZ3JpZDJj
b2w6OmFmdGVyLCAuZ3JpZDJjb2xhOjphZnRlciwgLmdyaWQyY29sYjo6YWZ0ZXIsIC5ncmlkMmNv
bGM6OmFmdGVyLCAuZ3JpZDJjb2xkOjphZnRlciwgLmdyaWQyY29sZTo6YWZ0ZXIsIC5ncmlkMmNv
bGY6OmFmdGVyLCAuZ3JpZDNjb2w6OmFmdGVyLCAuZ3JpZDNjb2xhOjphZnRlciwgLmdyaWQ0Y29s
OjphZnRlciwgLmdyaWQ1Y29sOjphZnRlciwgLmdyaWQ2Y29sOjphZnRlciB7IGNvbnRlbnQ6ICIu
IjsgZGlzcGxheTogYmxvY2s7IGhlaWdodDogMDsgY2xlYXI6IGJvdGg7IHZpc2liaWxpdHk6IGhp
ZGRlbjsgfQotI2NvbnRhaW5lciwgI2NvbnRlbnQsIC5ncmlkMmNvbCwgLmdyaWQyY29sYSwgLmdy
aWQyY29sYiwgLmdyaWQyY29sYywgLmdyaWQyY29sZCwgLmdyaWQyY29sZSwgLmdyaWQyY29sZiwg
LmdyaWQzY29sLCAuZ3JpZDNjb2xhLCAuZ3JpZDRjb2wsIC5ncmlkNWNvbCwgLmdyaWQ2Y29sIHsg
em9vbTogMTsgfQotCi0vKiBUWVBFICovCi1ib2R5IHsgZm9udDogMTJweC8xOHB4ICJMdWNpZGEg
R3JhbmRlIiwgIkx1Y2lkYSBTYW5zIFVuaWNvZGUiLCBIZWx2ZXRpY2EsIEFyaWFsLCBWZXJkYW5h
LCBzYW5zLXNlcmlmOyBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgY29sb3I6ICMzMzM7
IC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkOyB9Ci0KLWEgeyBjb2xvcjogIzA4
YzsgfQotYTpsaW5rLCBhOnZpc2l0ZWQsIGE6YWN0aXZlIHsgdGV4dC1kZWNvcmF0aW9uOiBub25l
OyB9Ci1hOmhvdmVyIHsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH0KLWEuYmxvY2sgeyBk
aXNwbGF5OiBibG9jazsgY3Vyc29yOiBwb2ludGVyOyB9Ci1hLmJsb2NrIHNwYW4sCi1hLmJsb2Nr
IGVtIHsgY29sb3I6IzA4YzsgY3Vyc29yOiBwb2ludGVyOyB9Ci1hLmJsb2NrOmhvdmVyIHsgdGV4
dC1kZWNvcmF0aW9uOiBub25lOyB9Ci1hLmJsb2NrOmhvdmVyIHNwYW4sCi1hLmJsb2NrOmhvdmVy
IGVtIHsgY29sb3I6ICMwOGM7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9Ci1hLm1vcmUs
IGVtLm1vcmUsIHNwYW4ubW9yZSB7IHdoaXRlLXNwYWNlOiBub3dyYXA7IHBhZGRpbmctcmlnaHQ6
IDEwcHg7IGJhY2tncm91bmQ6IHVybChodHRwOi8vaW1hZ2VzLmFwcGxlLmNvbS9nbG9iYWwvZWxl
bWVudHMvYXJyb3dzL21vcmVhcnJvd18wOGMuZ2lmKSBuby1yZXBlYXQgMTAwJSA1MCU7IGN1cnNv
cjogcG9pbnRlcjsgem9vbTogMTsgfQotYS5tb3JlbGFyZ2UsIGVtLm1vcmVsYXJnZSwgc3Bhbi5t
b3JlbGFyZ2UgeyB3aGl0ZS1zcGFjZTpub3dyYXA7IHBhZGRpbmctcmlnaHQ6MTJweDsgYmFja2dy
b3VuZDp1cmwoaHR0cDovL2ltYWdlcy5hcHBsZS5jb20vZ2xvYmFsL2VsZW1lbnRzL2Fycm93cy9t
b3JlYXJyb3dfYmlnXzA4Yy5naWYpIG5vLXJlcGVhdCAxMDAlIDUwJTsgY3Vyc29yOnBvaW50ZXI7
IHpvb206MTsgfQotYS5sZXNzbGFyZ2UsIGVtLmxlc3NsYXJnZSwgc3Bhbi5sZXNzbGFyZ2UgeyB3
aGl0ZS1zcGFjZTpub3dyYXA7IHBhZGRpbmctbGVmdDoxMnB4OyBiYWNrZ3JvdW5kOnVybChodHRw
Oi8vaW1hZ2VzLmFwcGxlLmNvbS9nbG9iYWwvZWxlbWVudHMvYXJyb3dzL2xlc3NhcnJvd19iaWdf
MDhjLmdpZikgbm8tcmVwZWF0IDAgNTAlOyBjdXJzb3I6cG9pbnRlcjsgem9vbToxOyB9Ci1AbWVk
aWEgb25seSBzY3JlZW4gewotCWEubW9yZSwgZW0ubW9yZSwgc3Bhbi5tb3JlIHsgYmFja2dyb3Vu
ZC1pbWFnZTp1cmwoLi8uLi9lbGVtZW50cy9hcnJvd3MvbW9yZWFycm93XzA4Yy5zdmcpOyB9Ci0J
YS5tb3JlbGFyZ2UsIGVtLm1vcmVsYXJnZSwgc3Bhbi5tb3JlbGFyZ2UgeyBiYWNrZ3JvdW5kLWlt
YWdlOnVybCguLy4uL2VsZW1lbnRzL2Fycm93cy9tb3JlYXJyb3dfYmlnXzA4Yy5zdmcpOyB9Ci0J
YS5sZXNzbGFyZ2UsIGVtLmxlc3NsYXJnZSwgc3Bhbi5sZXNzbGFyZ2UgeyBiYWNrZ3JvdW5kLWlt
YWdlOnVybCguLy4uL2VsZW1lbnRzL2Fycm93cy9sZXNzYXJyb3dfYmlnXzA4Yy5zdmcpOyB9Ci19
Ci1hLmV4dGVybmFsLCBlbS5leHRlcm5hbCwgc3Bhbi5leHRlcm5hbCB7IHdoaXRlLXNwYWNlOiBu
b3dyYXA7IHBhZGRpbmctcmlnaHQ6IDE1cHg7IGJhY2tncm91bmQ6IHVybChodHRwOi8vaW1hZ2Vz
LmFwcGxlLmNvbS9nbG9iYWwvZWxlbWVudHMvaWNvbnMvZXh0ZXJuYWwxMHgxMC5naWYpIG5vLXJl
cGVhdCAxMDAlIDQ5JTsgY3Vyc29yOiBwb2ludGVyOyB6b29tOiAxOyB9Ci1hW3JlbD0iZXh0ZXJu
YWwiXSB7IHdoaXRlLXNwYWNlOiBub3dyYXA7IHBhZGRpbmctcmlnaHQ6IDE1cHg7IGJhY2tncm91
bmQ6IHVybChodHRwOi8vaW1hZ2VzLmFwcGxlLmNvbS9nbG9iYWwvZWxlbWVudHMvaWNvbnMvZXh0
ZXJuYWwxMHgxMC5naWYpIG5vLXJlcGVhdCAxMDAlIDQ5JTsgY3Vyc29yOiBwb2ludGVyOyB6b29t
OiAxOyB9Ci1lbS5tb3JlLCBzcGFuLm1vcmUsIGVtLmV4dGVybmFsLCBzcGFuLmV4dGVybmFsIHsg
Y29sb3I6IzA4YzsgZm9udC1zdHlsZTogbm9ybWFsOyBjdXJzb3I6IHBvaW50ZXI7IH0KLS5ub3dy
YXAgeyB3aGl0ZS1zcGFjZTpub3dyYXA7IH0KLXN0cm9uZywgYiB7IGZvbnQtd2VpZ2h0OiBib2xk
OyB9Ci1lbSwgaSwgY2l0ZSB7IGZvbnQtc3R5bGU6IGl0YWxpYzsgfQotc3VwIHsgcGFkZGluZy1s
ZWZ0OiAxcHg7IGZvbnQtc2l6ZTogMTBweCAhaW1wb3J0YW50OyBmb250LXdlaWdodDogbm9ybWFs
ICFpbXBvcnRhbnQ7IHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTsgcG9zaXRpb246IHJlbGF0aXZl
OyBib3R0b206IDAuMzNlbTsgX3Bvc2l0aW9uOiBzdGF0aWMgIWltcG9ydGFudDsgfQotc3VwLCBz
dXAgYSB7IGNvbG9yOiM2NjY7IH0KLXN1cCBhOmhvdmVyIHsgY29sb3I6IzA4YzsgdGV4dC1kZWNv
cmF0aW9uOm5vbmU7IH0KLWFiYnIgeyBib3JkZXI6IDA7IH0KLS5zb3N1bWkgeyBmb250LXNpemU6
IDEwcHggIWltcG9ydGFudDsgbGluZS1oZWlnaHQ6MS41OyBjb2xvcjojODg4OyB9Ci0uc29zdW1p
X2ZlYXR1cmVzIHsgZm9udC1zaXplOiAxMHB4ICFpbXBvcnRhbnQ7IGxpbmUtaGVpZ2h0OjEuNTsg
Y29sb3I6Izg4ODsgfQotCi1oMSxoMixoMyxoNCxoNSxoNixzdHJvbmcgeyBjb2xvcjojMDAwOyB9
Ci1oMSxoMixoMyxoNCB7IGZvbnQtd2VpZ2h0OiBib2xkOyB9Ci1oMixoMyxoNCB7IGxpbmUtaGVp
Z2h0OiAxOHB4OyB9Ci1oMSxoMiB7IG1hcmdpbi1ib3R0b206IDE4cHg7IH0KLWgxIHsgZm9udC1z
aXplOiAyNHB4OyBsaW5lLWhlaWdodDogMzZweDsgfQotaDIgeyBmb250LXNpemU6IDE2cHg7IH0K
LWgzIHsgZm9udC1zaXplOiAxZW07IH0KLWg0IHsgZm9udC1zaXplOiAxMHB4OyB9Ci1wIHsgbWFy
Z2luLWJvdHRvbTogMThweDsgfQotcC5pbnRybyB7IGNvbG9yOiAjODg4OyBmb250LXNpemU6IDE2
cHg7IGxpbmUtaGVpZ2h0OiAyMnB4OyBmb250LXdlaWdodDogbm9ybWFsOyB9Ci0ubW9yZSB7IHRl
eHQtYWxpZ246IHJpZ2h0OyB9Ci0KLXVsIHsgbGlzdC1zdHlsZTogbm9uZSBvdXRzaWRlOyB9Ci1v
bCB7IG1hcmdpbi1ib3R0b206IDE4cHg7IGxpc3Qtc3R5bGU6IGRlY2ltYWw7IG1hcmdpbi1sZWZ0
OiAyLjJlbTsgfQotdWwuc3F1YXJlLAotdWwuY2lyY2xlIHsgbWFyZ2luLWxlZnQ6IDJlbTsgbWFy
Z2luLWJvdHRvbTogMThweDsgfQotdWwuc3F1YXJlIHsgbGlzdC1zdHlsZTogc3F1YXJlIG91dHNp
ZGU7IH0KLXVsLmNpcmNsZSB7IGxpc3Qtc3R5bGU6IGNpcmNsZSBvdXRzaWRlOyB9Ci11bCB1bC5j
aXJjbGUsCi11bCB1bC5zcXVhcmUgeyBtYXJnaW4tdG9wOiA0cHg7IG1hcmdpbi1ib3R0b206IDVw
eDsgfQotb2wuc29zdW1pIHsgbWFyZ2luLWxlZnQ6IDA7IHBhZGRpbmctbGVmdDogMmVtOyAqcGFk
ZGluZy1sZWZ0OiAyLjJlbTsgfQotCi1hLnBkZiB7IGJhY2tncm91bmQ6IHVybChodHRwOi8vaW1h
Z2VzLmFwcGxlLmNvbS9nbG9iYWwvZWxlbWVudHMvaWNvbnMvZ2xvYmFsaWNvbnBkZjEyeDEyLmdp
ZikgMCAwLjRlbSBuby1yZXBlYXQ7IGRpc3BsYXk6IGJsb2NrOyBwYWRkaW5nLWxlZnQ6IDIwcHg7
IH0KLWEuaHRtbCB7IGJhY2tncm91bmQ6IHVybChodHRwOi8vaW1hZ2VzLmFwcGxlLmNvbS9nbG9i
YWwvZWxlbWVudHMvaWNvbnMvZ2xvYmFsaWNvbmh0bWwxMngxMi5naWYpIDAgMC40ZW0gbm8tcmVw
ZWF0OyBkaXNwbGF5OiBibG9jazsgcGFkZGluZy1sZWZ0OiAyMHB4OyB9Ci1hLnF0IHsgYmFja2dy
b3VuZDogdXJsKGh0dHA6Ly9pbWFnZXMuYXBwbGUuY29tL2dsb2JhbC9lbGVtZW50cy9pY29ucy9n
bG9iYWxpY29ucXQxMngxMi5naWYpIDAgMC40ZW0gbm8tcmVwZWF0OyBkaXNwbGF5OiBibG9jazsg
cGFkZGluZy1sZWZ0OiAyMHB4OyB9Ci1hLmljYWwgeyBiYWNrZ3JvdW5kOiB1cmwoaHR0cDovL2lt
YWdlcy5hcHBsZS5jb20vZ2xvYmFsL2VsZW1lbnRzL2ljb25zL2dsb2JhbGljb25pY2FsMTJ4MTIu
Z2lmKSAwIDAuNGVtIG5vLXJlcGVhdDsgZGlzcGxheTogYmxvY2s7IHBhZGRpbmctbGVmdDogMjBw
eDsgfQotYS5kbCB7IGJhY2tncm91bmQ6IHVybChodHRwOi8vaW1hZ2VzLmFwcGxlLmNvbS9nbG9i
YWwvZWxlbWVudHMvaWNvbnMvZ2xvYmFsaWNvbmRsMTF4MTAuZ2lmKSAwIDAuNGVtIG5vLXJlcGVh
dDsgZGlzcGxheTogYmxvY2s7IHBhZGRpbmctbGVmdDogMjBweDsgfQotYS5kbWcgeyBiYWNrZ3Jv
dW5kOiB1cmwoaHR0cDovL2ltYWdlcy5hcHBsZS5jb20vZ2xvYmFsL2VsZW1lbnRzL2ljb25zL2ds
b2JhbGljb25kbWcxMngxMi5naWYpIDAgMC40ZW0gbm8tcmVwZWF0OyBkaXNwbGF5OiBibG9jazsg
cGFkZGluZy1sZWZ0OiAyMHB4OyB9Ci1hLnppcCB7IGJhY2tncm91bmQ6IHVybChodHRwOi8vaW1h
Z2VzLmFwcGxlLmNvbS9nbG9iYWwvZWxlbWVudHMvaWNvbnMvZ2xvYmFsaWNvbnppcDEyeDEyLmdp
ZikgMCAwLjRlbSBuby1yZXBlYXQ7IGRpc3BsYXk6IGJsb2NrOyBwYWRkaW5nLWxlZnQ6IDIwcHg7
IH0KLWEua2V5bm90ZSB7IGJhY2tncm91bmQ6IHVybChodHRwOi8vaW1hZ2VzLmFwcGxlLmNvbS9n
bG9iYWwvZWxlbWVudHMvaWNvbnMvZ2xvYmFsaWNvbmtleW5vdGUxMngxMi5naWYpIDAgMC40ZW0g
bm8tcmVwZWF0OyBkaXNwbGF5OiBibG9jazsgcGFkZGluZy1sZWZ0OiAyMHB4OyB9Ci1hLmF1ZGlv
IHsgYmFja2dyb3VuZDogdXJsKGh0dHA6Ly9pbWFnZXMuYXBwbGUuY29tL2dsb2JhbC9lbGVtZW50
cy9pY29ucy9nbG9iYWxpY29uYXVkaW8xMngxMi5naWYpIDAgMC40ZW0gbm8tcmVwZWF0OyBkaXNw
bGF5OiBibG9jazsgcGFkZGluZy1sZWZ0OiAyMHB4OyB9Ci0KLS5kb3QtbmF2IHsgd2lkdGg6MTAw
JTsgbWFyZ2luOjA7IHBhZGRpbmc6MDsgdGV4dC1hbGlnbjpjZW50ZXI7IGxpbmUtaGVpZ2h0OjFw
eDsgfQotLmRvdC1uYXYgbGksCi0uZG90LW5hdiBsaSBhIHsgZGlzcGxheTotbW96LWlubGluZS1z
dGFjazsgZGlzcGxheTppbmxpbmUtYmxvY2s7ICpkaXNwbGF5OmlubGluZTsgKnpvb206MTsgfQot
LmRvdC1uYXYgbGkgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgei1pbmRleDoxOyBtYXJnaW46MDsgd2lk
dGg6MTNweDsgaGVpZ2h0OjE1cHg7IG92ZXJmbG93OmhpZGRlbjsgfQotLmRvdC1uYXYgbGkgYSB7
IHBvc2l0aW9uOmFic29sdXRlOyB6LWluZGV4OjE7IHdpZHRoOjEzcHg7IGhlaWdodDo0NXB4OyB0
b3A6MDsgbGVmdDowOyBjdXJzb3I6cG9pbnRlcjsgdGV4dC1pbmRlbnQ6LTEwMDBlbTsgYmFja2dy
b3VuZDp1cmwoaHR0cDovL2ltYWdlcy5hcHBsZS5jb20vZ2xvYmFsL2VsZW1lbnRzL2J1dHRvbnMv
ZG90c18wOGMucG5nKSBuby1yZXBlYXQgMCAwOyBiZWhhdmlvcjp1cmwoL2dsb2JhbC9zY3JpcHRz
L2xpYi9pZTdwbmdmaXguaHRjKTsgfQotLmRvdC1uYXYgbGkgYTpob3ZlciB7IHRvcDotMTVweDsg
fQotLmRvdC1uYXYgbGkgYS5hY3RpdmUgeyBjdXJzb3I6ZGVmYXVsdDsgdG9wOi0zMHB4OyB9Ci0K
LS5kb3QtbmF2Om50aC1jaGlsZCgxbikgbGkgeyB3aWR0aDoxMHB4OyBoZWlnaHQ6MTBweDsgcGFk
ZGluZzozcHggMnB4IDJweCAycHg7IH0KLS5kb3QtbmF2Om50aC1jaGlsZCgxbikgbGkgYSB7IGJv
cmRlci1yYWRpdXM6NXB4OyB3aWR0aDoxMHB4OyBoZWlnaHQ6MTBweDsgYmFja2dyb3VuZDojZTBl
MWUzOwotCS13ZWJraXQtYm94LXNoYWRvdzppbnNldCAwIDFweCAxcHggcmdiYSgwLCAwLCAwLCAu
MjUpOwotCSAgIC1tb3otYm94LXNoYWRvdzppbnNldCAwIDFweCAxcHggcmdiYSgwLCAwLCAwLCAu
MjUpOwotCSAgICAgICAgYm94LXNoYWRvdzppbnNldCAwIDFweCAxcHggcmdiYSgwLCAwLCAwLCAu
MjUpOwotfQotLmRvdC1uYXY6bnRoLWNoaWxkKDFuKSBsaSBhOmhvdmVyIHsgdG9wOjA7IGJhY2tn
cm91bmQ6I2NjYzt9Ci0uZG90LW5hdjpudGgtY2hpbGQoMW4pIGxpIGEuYWN0aXZlIHsgdG9wOjA7
IGJhY2tncm91bmQ6IzA4YzsKLQliYWNrZ3JvdW5kOi13ZWJraXQtZ3JhZGllbnQobGluZWFyLGxl
ZnR0b3AsbGVmdGJvdHRvbSxjb2xvci1zdG9wKDAlLHJnYigxMjYsMTk4LDIzNCkpLGNvbG9yLXN0
b3AoMjQlLHJnYig3MCwxNzksMjM0KSksY29sb3Itc3RvcCgxMDAlLHJnYigzLDEzNSwyMDEpKSk7
Ci0JYmFja2dyb3VuZDotd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AscmdiKDEyNiwxOTgsMjM0
KTAlLHJnYig3MCwxNzksMjM0KTQ1JSxyZ2IoMywxMzUsMjAxKTEwMCUpOwotCWJhY2tncm91bmQ6
ICAgLW1vei1saW5lYXItZ3JhZGllbnQodG9wLHJnYigxMjYsMTk4LDIzNCkwJSxyZ2IoNzAsMTc5
LDIzNCk0NSUscmdiKDMsMTM1LDIwMSkxMDAlKTsKLQliYWNrZ3JvdW5kOiAgICAgICAgbGluZWFy
LWdyYWRpZW50KHRvcCxyZ2IoMTI2LDE5OCwyMzQpMCUscmdiKDcwLDE3OSwyMzQpNDUlLHJnYigz
LDEzNSwyMDEpMTAwJSk7Ci0JLXdlYmtpdC1ib3gtc2hhZG93Omluc2V0IDAgMXB4IDAgcmdiYSgw
LCAwLCAwLCAuMjUpOwotCSAgIC1tb3otYm94LXNoYWRvdzppbnNldCAwIDFweCAwIHJnYmEoMCwg
MCwgMCwgLjI1KTsKLQkgICAgICAgIGJveC1zaGFkb3c6aW5zZXQgMCAxcHggMCByZ2JhKDAsIDAs
IDAsIC4yNSk7Ci19Ci0KLS5sYXN0IHsgbWFyZ2luLWJvdHRvbTogMDsgfQotI21haW4gLnNpZGVi
YXIgeyBmb250LXNpemU6IDEwcHg7IGxpbmUtaGVpZ2h0OiAxOHB4OyBjb2xvcjojMzMzOyB9Ci0j
bWFpbiAuY2FsbG91dCB7IGZvbnQtc2l6ZTogMTFweDsgbGluZS1oZWlnaHQ6IDE4cHg7IG1hcmdp
bi1ib3R0b206IDE4cHg7IH0KLQotYm9keS5zcGVjcyAjbWFpbiB7IGZvbnQtc2l6ZTogMTFweDsg
bGluZS1oZWlnaHQ6IDE2cHg7IH0KLQotLyogUElQRUQgTElOS1MgKi8KLS5waXBlZCB7IGRpc3Bs
YXk6IGJsb2NrOyB6b29tOiAxOyB9Ci0ucGlwZWQ6OmFmdGVyIHsgY29udGVudDogIi4iOyBkaXNw
bGF5OiBibG9jazsgaGVpZ2h0OiAwOyBjbGVhcjogYm90aDsgdmlzaWJpbGl0eTogaGlkZGVuOyB9
Ci0ucGlwZWQgbGkgeyBmbG9hdDogbGVmdDsgZGlzcGxheTogaW5saW5lOyB9Ci0ucGlwZWQgYSB7
IGJvcmRlci1sZWZ0OiAxcHggc29saWQgIzc5N2M4MDsgcGFkZGluZzogMCAwIDAgMC43NWVtOyBt
YXJnaW4tbGVmdDogMC43NWVtOyB9Ci0ucGlwZWQgYS5maXJzdCB7IGJvcmRlci1sZWZ0OiAwICFp
bXBvcnRhbnQ7IHBhZGRpbmctbGVmdDogMDsgbWFyZ2luLWxlZnQ6IDAgIWltcG9ydGFudDsgfQot
Ci0vKi0tLSBHbG9iYWwgRm9vdGVyIChsZWdhY3kpIC0tLSovCi0jZ2xvYmFsZm9vdGVyIC5nZi1i
dXkgeyBmbG9hdDogbGVmdDsgd2lkdGg6IDYwJTsgbWFyZ2luOiAxOHB4IDAgOXB4OyB9Ci0jZ2xv
YmFsZm9vdGVyIC5nZi1saW5rcyB7IGZsb2F0OiByaWdodDsgbWFyZ2luOiAxOHB4IDAgOXB4OyB9
Ci0jZ2xvYmFsZm9vdGVyIC5nZi1saW5rcyBhIHsgcGFkZGluZzogMCAxMHB4OyB3aGl0ZS1zcGFj
ZTogbm93cmFwOyB9Ci0jZ2xvYmFsZm9vdGVyIC5nZi1saW5rcyBhLmxhc3QgeyBwYWRkaW5nLXJp
Z2h0OiAwOyBfZmxvYXQ6IG5vbmUgIWltcG9ydGFudDsgd2lkdGg6IGF1dG8gIWltcG9ydGFudDsg
fQotCi0vKi0tLSBHbG9iYWwgRm9vdGVyIC0tLSovCi0jZ2xvYmFsZm9vdGVyIHsgd2lkdGg6IDk4
MHB4OyBjb2xvcjogIzg4ODsgZm9udC1zaXplOiAxMHB4OyBtYXJnaW46IDE4cHggYXV0byAwOyBw
YWRkaW5nLWJvdHRvbTogMzZweDsgdGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50OyB9Ci0jZ2xv
YmFsZm9vdGVyIGEgeyBjb2xvcjogIzA4YzsgfQotI2dsb2JhbGZvb3RlciBwIHsgbWFyZ2luLWJv
dHRvbTogMWVtOyB9Ci0jZ2xvYmFsZm9vdGVyIHAuZ2YtYnV5IHsgZmxvYXQ6IGxlZnQ7IHdpZHRo
OiA1MiU7IG1hcmdpbjogMThweCAwIDlweCAzcHg7IH0KLSNnbG9iYWxmb290ZXIgdWwucGlwZWQg
YSB7IHBhZGRpbmc6IDAgMCAwIDEuNWVtOyBtYXJnaW4tbGVmdDogMS41ZW07IGJvcmRlci1sZWZ0
OiAxcHggc29saWQgI2QwZDBkMDsgfQotI2dsb2JhbGZvb3RlciAuZ2YtbGlua3MgeyBmbG9hdDog
cmlnaHQ7IG1hcmdpbjogMThweCAzcHggOXB4IDA7IH0KLSNnbG9iYWxmb290ZXIgLmdmLXNvc3Vt
aSB7IGNsZWFyOiBib3RoOyB3aWR0aDogMTAwJTsgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNkZGQ7
IHBhZGRpbmctdG9wOiA5cHg7IH0KLSNnbG9iYWxmb290ZXIgLmdmLXNvc3VtaSBhIHsgcGFkZGlu
ZzogMCAxMHB4OyB9Ci0jZ2xvYmFsZm9vdGVyIC5nZi1zb3N1bWkgcCB7IGZsb2F0OiBsZWZ0OyBt
YXJnaW4tbGVmdDogM3B4OyB9Ci0jZ2xvYmFsZm9vdGVyIGZvcm0geyBtYXJnaW46IDE4cHggMTBw
eDsgfQotI2dsb2JhbGZvb3RlciAuc2VhcmNoLXdyYXBwZXIgeyBtYXJnaW46IDAgYXV0bzsgfQot
I2dsb2JhbGZvb3RlciAuc2VhcmNoLXdyYXBwZXIgaW5wdXQucHJldHR5c2VhcmNoIHsgbWFyZ2lu
LWxlZnQ6IDEwcHg7IH0KLSNnbG9iYWxmb290ZXIgdWwucGlwZWQgYS5jb250YWN0X3VzIHsgcGFk
ZGluZy1yaWdodDogMS41ZW07IGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNkMGQwZDA7IH0KLSNn
bG9iYWxmb290ZXIgdWwucGlwZWQgYS5jaG9vc2UgeyBtYXJnaW4tbGVmdDogMDsgYm9yZGVyOiAw
OyB9Ci0jZ2xvYmFsZm9vdGVyIHVsLnBpcGVkIGEuY2hvb3NlIGltZyB7IHZlcnRpY2FsLWFsaWdu
OiBtaWRkbGU7IG1hcmdpbi10b3A6IC01cHg7ICpwb3NpdGlvbjogcmVsYXRpdmU7IH0KLQotLyot
LS0gQnJlYWRjcnVtYnMgKGxlZ2FjeSkgLS0tKi8KLSNnbG9iYWxmb290ZXIgI2JyZWFkY3J1bWJz
IHsgZm9udC1zaXplOiAxMXB4OyBjb2xvcjogIzQ0NDsgYmFja2dyb3VuZDogdXJsKGh0dHA6Ly9p
bWFnZXMuYXBwbGUuY29tL2dsb2JhbC9lbGVtZW50cy9icmVhZG9yeS9icmVhZGNydW1iX2JnLnBu
Zykgbm8tcmVwZWF0OyBvdmVyZmxvdzogaGlkZGVuOyBoZWlnaHQ6IDM2cHg7IGxpbmUtaGVpZ2h0
OiAzNHB4OyBmb250LXdlaWdodDogYm9sZDsgdGV4dC1zaGFkb3c6IDAgMXB4IDAgI2ZmZjsgfQot
I2dsb2JhbGZvb3RlciAjYnJlYWRjcnVtYnMgYSB7IGNvbG9yOiAjNDQ0OyB0ZXh0LWRlY29yYXRp
b246IG5vbmU7IGZsb2F0OiBsZWZ0OyBwYWRkaW5nOiAwIDEwcHg7IG1hcmdpbi1sZWZ0OiAtMTBw
eDsgKnBvc2l0aW9uOiByZWxhdGl2ZTsgX2N1cnNvcjogaGFuZDsgfQotI2dsb2JhbGZvb3RlciAj
YnJlYWRjcnVtYnMgYTpob3ZlciB7IGNvbG9yOiAjMzMzOyB0ZXh0LWRlY29yYXRpb246IG5vbmUg
IWltcG9ydGFudDsgfQotI2dsb2JhbGZvb3RlciAjYnJlYWRjcnVtYnMgYS5ob21lIHsgbWFyZ2lu
OiAwOyB3aWR0aDogMTVweDsgaGVpZ2h0OiAwOyBwYWRkaW5nLXRvcDogMzZweDsgb3ZlcmZsb3c6
IGhpZGRlbjsgfQotI2dsb2JhbGZvb3RlciAjYnJlYWRjcnVtYnMgc3BhbiB7IGZsb2F0OiBsZWZ0
OyB3aWR0aDogOXB4OyBtYXJnaW46IDAgMTBweCAwIDA7IGhlaWdodDogMDsgcGFkZGluZy10b3A6
IDM0cHg7IG1hcmdpbi10b3A6IDFweDsgb3ZlcmZsb3c6IGhpZGRlbjsgYmFja2dyb3VuZDogdXJs
KGh0dHA6Ly9pbWFnZXMuYXBwbGUuY29tL2dsb2JhbC9lbGVtZW50cy9icmVhZG9yeS9icmVhZGNy
dW1iX3NlcC5wbmcpIG5vLXJlcGVhdDsgfQotCi0vKi0tLSBCcmVhZGNydW1icyAtLS0qLwotI2ds
b2JhbGZvb3RlciBvbCNicmVhZGNydW1icyB7IGZvbnQtc2l6ZTogMTFweDsgY29sb3I6ICM0NDQ7
IGJhY2tncm91bmQ6IHVybChodHRwOi8vaW1hZ2VzLmFwcGxlLmNvbS9nbG9iYWwvZWxlbWVudHMv
YnJlYWRvcnkvYnJlYWRjcnVtYl9iZy5wbmcpIG5vLXJlcGVhdDsgaGVpZ2h0OiAzNnB4OyBsaW5l
LWhlaWdodDogMzRweDsgbWFyZ2luOiAwOyBsaXN0LXN0eWxlOiBub25lOyBmb250LXdlaWdodDog
Ym9sZDsgdGV4dC1zaGFkb3c6IDAgMXB4IDAgI2ZmZjsgfQotI2dsb2JhbGZvb3RlciBvbCNicmVh
ZGNydW1icyBsaSB7IGZsb2F0OiBsZWZ0OyBtYXJnaW46IDA7IHBhZGRpbmc6IDAgMCAwIDIwcHg7
IGJhY2tncm91bmQ6IHVybChodHRwOi8vaW1hZ2VzLmFwcGxlLmNvbS9nbG9iYWwvZWxlbWVudHMv
YnJlYWRvcnkvYnJlYWRjcnVtYl9zZXBfMjAwODA5MDkucG5nKSBuby1yZXBlYXQ7IH0KLSNnbG9i
YWxmb290ZXIgb2wjYnJlYWRjcnVtYnMgbGkgYSB7IGZsb2F0OiBsZWZ0OyBjb2xvcjogIzQ0NDsg
dGV4dC1kZWNvcmF0aW9uOiBub25lOyBwYWRkaW5nOiAwIDEwcHg7IG1hcmdpbi1sZWZ0OiAtMTBw
eDsgfQotI2dsb2JhbGZvb3RlciBvbCNicmVhZGNydW1icyBsaSBhOmhvdmVyIHsgY29sb3I6ICMz
MzM7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfQotI2dsb2JhbGZvb3RlciBvbCNicmVhZGNydW1i
cyBsaS5ob21lIHsgYmFja2dyb3VuZDogbm9uZTsgbWFyZ2luOiAwOyBwYWRkaW5nOiAwOyB9Ci0j
Z2xvYmFsZm9vdGVyIG9sI2JyZWFkY3J1bWJzIGxpLmhvbWUgYSB7IG1hcmdpbjogMDsgcGFkZGlu
ZzogMCAxMHB4OyB3aWR0aDogMTVweDsgdGV4dC1pbmRlbnQ6IC05OTk5cHg7IG92ZXJmbG93OiBo
aWRkZW47IH0KLQotLyotLS0gRGlyZWN0b3J5IE5hdiAtLS0qLwotI2RpcmVjdG9yeW5hdiB7IGZv
bnQtc2l6ZTogMTFweDsgbGluZS1oZWlnaHQ6MTRweDsgcGFkZGluZy10b3A6MnB4OyBiYWNrZ3Jv
dW5kOiB1cmwoaHR0cDovL2ltYWdlcy5hcHBsZS5jb20vZ2xvYmFsL2VsZW1lbnRzL2JyZWFkb3J5
L2RpcmVjdG9yeV9iZy5wbmcpIHJlcGVhdC15OyBib3JkZXItdG9wOiAxcHggc29saWQgI2RkZDsg
ZmxvYXQ6IGxlZnQ7IHdpZHRoOiAxMDAlOyBtYXJnaW4tdG9wOiAtNHB4OyAqcG9zaXRpb246IHJl
bGF0aXZlOyB9Ci0jZGlyZWN0b3J5bmF2IC5jb2x1bW4geyB3aWR0aDogMTIwcHg7IHBhZGRpbmc6
IDlweCAwIDJweCAxOHB4OyB9Ci0jZGlyZWN0b3J5bmF2IC5jb2x1bW4ubGFzdCB7IGZsb2F0OiBs
ZWZ0ICFpbXBvcnRhbnQ7IHBhZGRpbmctcmlnaHQ6IDA7IH0KLSNkaXJlY3RvcnluYXYgaDMgeyBj
b2xvcjogIzY2NjsgbWFyZ2luOiAwOyBmb250LXNpemU6IDFlbTsgbGluZS1oZWlnaHQ6IDE0cHg7
IGZvbnQtd2VpZ2h0OiBib2xkOyBwYWRkaW5nLWJvdHRvbTogNHB4OyB9Ci0jZGlyZWN0b3J5bmF2
IGgzLnN0YW5kYWxvbmUgeyBtYXJnaW4tYm90dG9tOiAxOHB4OyB9Ci0jZGlyZWN0b3J5bmF2IGEg
eyBjb2xvcjogIzg4ODsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyBkaXNwbGF5OiBibG9jazsgem9v
bTogMTsgfQotI2RpcmVjdG9yeW5hdiBoMy5zdGFuZGFsb25lIGE6bGluaywKLSNkaXJlY3Rvcnlu
YXYgaDMuc3RhbmRhbG9uZSBhOnZpc2l0ZWQgeyBjb2xvcjogIzQ0NDsgfQotI2RpcmVjdG9yeW5h
diBhOmhvdmVyIHsgY29sb3I6ICMzMzMgIWltcG9ydGFudDsgdGV4dC1kZWNvcmF0aW9uOiBub25l
ICFpbXBvcnRhbnQ7IH0KLSNkaXJlY3RvcnluYXYgLmNhcGJvdHRvbSB7IGNsZWFyOiBib3RoOyBw
b3NpdGlvbjogcmVsYXRpdmU7IHRvcDogNXB4OyBfdG9wOiAxMnB4OyBoZWlnaHQ6IDVweDsgd2lk
dGg6IDk4MHB4OyBiYWNrZ3JvdW5kOiB1cmwoaHR0cDovL2ltYWdlcy5hcHBsZS5jb20vZ2xvYmFs
L2VsZW1lbnRzL2JyZWFkb3J5L2RpcmVjdG9yeV9jYXBiZy5wbmcpIG5vLXJlcGVhdDsgfQotI2Rp
cmVjdG9yeW5hdiB1bCB7IG1hcmdpbi1ib3R0b206IDA7IHBhZGRpbmctYm90dG9tOiA5cHg7IH0K
LSNkaXJlY3RvcnluYXYgdWwgbGkgeyBwYWRkaW5nLWJvdHRvbTogNHB4OyB9Ci0jZGlyZWN0b3J5
bmF2LmlvcyAuY29sdW1uLAotI2RpcmVjdG9yeW5hdi5tYWMgLmNvbHVtbiwKLSNkaXJlY3Rvcnlu
YXYuaXBvZCAuY29sdW1uLAotI2RpcmVjdG9yeW5hdi5pcG9kdG91Y2ggLmNvbHVtbiwKLSNkaXJl
Y3RvcnluYXYuaXBhZCAuY29sdW1uLAotI2RpcmVjdG9yeW5hdi5pcGhvbmUgLmNvbHVtbiwKLSNk
aXJlY3RvcnluYXYuaXR1bmVzIC5jb2x1bW4geyB3aWR0aDogMTkwcHg7IHBhZGRpbmc6IDlweCAw
IDAgNTRweDsgfQotCi0vKi0tLSBCUkVBRE9SWSAtLS0qLwotI2JyZWFkb3J5IHsgYm9yZGVyOiAx
cHggc29saWQgI2RkZDsgd2lkdGg6IDk3OHB4OyBtYXJnaW46IDAgYXV0bzsgLW1vei1ib3JkZXIt
cmFkaXVzOiA0cHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czogNHB4OyBib3JkZXItcmFkaXVzOiA0
cHg7IH0KLSNnbG9iYWxmb290ZXIgI2JyZWFkb3J5IG9sI2JyZWFkY3J1bWJzIHsgYmFja2dyb3Vu
ZDogbm9uZTsgY2xlYXI6IGJvdGg7IGZsb2F0OiBub25lOyBoZWlnaHQ6IDNlbTsgbGluZS1oZWln
aHQ6IDNlbTsgZm9udC1zaXplOiAxMXB4OyBjb2xvcjogIzY2NjsgbWFyZ2luOiAwOyBsaXN0LXN0
eWxlOiBub25lOyBmb250LXdlaWdodDogYm9sZDsgdGV4dC1zaGFkb3c6IDAgMXB4IDAgI2ZmZjsg
fQotI2JyZWFkb3J5IG9sI2JyZWFkY3J1bWJzIGxpIHsgYmFja2dyb3VuZDogbm9uZTsgZmxvYXQ6
IGxlZnQ7IG1hcmdpbjogMDsgcGFkZGluZzogMCAwIDAgMWVtOyB9Ci0jYnJlYWRvcnkgb2wjYnJl
YWRjcnVtYnMgbGkgYSB7IGZsb2F0OiBsZWZ0OyBjb2xvcjogIzY2NjsgdGV4dC1kZWNvcmF0aW9u
OiBub25lOyBwYWRkaW5nOiAwIDEuNzVlbSAwIDA7IG1hcmdpbi1sZWZ0OiAwcHg7IGJhY2tncm91
bmQ6IHVybChodHRwOi8vaW1hZ2VzLmFwcGxlLmNvbS9nbG9iYWwvZWxlbWVudHMvYnJlYWRvcnkv
YnJlYWRjcnVtYl9zZXBhcmF0b3IucG5nKSBuby1yZXBlYXQgMTAwJSA1MCU7IH0KLSNicmVhZG9y
eSBvbCNicmVhZGNydW1icyBsaSBhOmhvdmVyIHsgY29sb3I6ICMzMzM7IHRleHQtZGVjb3JhdGlv
bjogbm9uZTsgfQotI2JyZWFkb3J5IG9sI2JyZWFkY3J1bWJzIGxpLmhvbWUgeyBiYWNrZ3JvdW5k
OiBub25lOyBtYXJnaW46IDA7IHBhZGRpbmc6IDA7IH0KLSNicmVhZG9yeSBvbCNicmVhZGNydW1i
cyBsaS5ob21lIGEgeyBiYWNrZ3JvdW5kOiB1cmwoaHR0cDovL2ltYWdlcy5hcHBsZS5jb20vZ2xv
YmFsL2VsZW1lbnRzL2JyZWFkb3J5L2JyZWFkY3J1bWJfaG9tZS5wbmcpIG5vLXJlcGVhdCAxLjI1
ZW0gNTAlOyBtYXJnaW46IDA7IHBhZGRpbmc6IDAgMCAwIDEuMjVlbTsgd2lkdGg6IDMwcHg7IHRl
eHQtaW5kZW50OiAtOTk5OXB4OyBvdmVyZmxvdzogaGlkZGVuOyB9Ci0jYnJlYWRvcnkgb2wjYnJl
YWRjcnVtYnMgbGkuaG9tZSBhOmhvdmVyIHsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly9p
bWFnZXMuYXBwbGUuY29tL2dsb2JhbC9lbGVtZW50cy9icmVhZG9yeS9icmVhZGNydW1iX2hvbWVf
b3Zlci5wbmcpOyB9Ci0KLUBtZWRpYSBvbmx5IHNjcmVlbiB7IAotCSNicmVhZG9yeSBvbCNicmVh
ZGNydW1icyBsaSBhIHsgYmFja2dyb3VuZC1pbWFnZTp1cmwoLi8uLi9lbGVtZW50cy9icmVhZG9y
eS9icmVhZGNydW1iX3NlcGFyYXRvci5zdmcpOyB9Ci0JI2JyZWFkb3J5IG9sI2JyZWFkY3J1bWJz
IGxpLmhvbWUgYSB7IGJhY2tncm91bmQtaW1hZ2U6dXJsKC4vLi4vZWxlbWVudHMvYnJlYWRvcnkv
YnJlYWRjcnVtYl9ob21lLnN2Zyk7IH0KLQkjYnJlYWRvcnkgb2wjYnJlYWRjcnVtYnMgbGkuaG9t
ZSBhOmhvdmVyIHsgYmFja2dyb3VuZC1pbWFnZTp1cmwoLi8uLi9lbGVtZW50cy9icmVhZG9yeS9i
cmVhZGNydW1iX2hvbWVfb3Zlci5zdmcpOyB9Ci19Ci0KLSNicmVhZG9yeSAjZGlyZWN0b3J5bmF2
IHsgYmFja2dyb3VuZDogbm9uZTsgY2xlYXI6IGJvdGg7IGZsb2F0OiBub25lOyBtYXJnaW4tdG9w
OiAwOyB9Ci0jYnJlYWRvcnkgI2RpcmVjdG9yeW5hdiAuY2FwYm90dG9tIHsgaGVpZ2h0OiAwOyBm
b250LXNpemU6IDFweDsgX2Rpc3BsYXk6IG5vbmU7IH0KLQotLyogUFJPRFVDVEhFQURFUiAqLwot
I3Byb2R1Y3RoZWFkZXIgeyBwYWRkaW5nOiAxZW0gMCAwLjJlbTsgb3ZlcmZsb3c6IGhpZGRlbjsg
d2lkdGg6IDk4MHB4OyBtYXJnaW46IDAgYXV0bzsgKnBvc2l0aW9uOiByZWxhdGl2ZTsgKmhlaWdo
dDogMzlweDsgfQotI3Byb2R1Y3RoZWFkZXIgaDEsIAotI3Byb2R1Y3RoZWFkZXIgaDIgeyBoZWln
aHQ6IDMycHg7IGxpbmUtaGVpZ2h0OiAzMnB4OyBkaXNwbGF5OiBpbmxpbmU7IGZsb2F0OiBsZWZ0
OyBtYXJnaW46IDFweCAwIDZweCA4cHg7IHBhZGRpbmc6IDA7IG1hcmdpbi1ib3R0b206IDZweCAh
aW1wb3J0YW50OyB9Ci0jcHJvZHVjdGhlYWRlciBoMSBhLCAKLSNwcm9kdWN0aGVhZGVyIGgyIGEg
eyBsaW5lLWhlaWdodDogMzJweDsgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAwOyBiYWNrZ3JvdW5k
LXJlcGVhdDogbm8tcmVwZWF0OyBjb2xvcjogIzg4ODsgZGlzcGxheTogYmxvY2s7IGZvbnQtd2Vp
Z2h0OiBub3JtYWw7IGhlaWdodDogMzJweDsgb3V0bGluZTogbm9uZTsgdGV4dC1kZWNvcmF0aW9u
OiBub25lOyB0ZXh0LWluZGVudDogLTk5OTlweDsgKnBvc2l0aW9uOiByZWxhdGl2ZTsgfQotYm9k
eSNvdmVydmlldyAjcHJvZHVjdGhlYWRlciBoMSBhLCAKLWJvZHkjb3ZlcnZpZXcgI3Byb2R1Y3Ro
ZWFkZXIgaDIgYSB7IGN1cnNvcjogZGVmYXVsdDsgfQotCi0jcHJvZHVjdGhlYWRlciB1bCB7IGRp
c3BsYXk6IGlubGluZTsgZmxvYXQ6IHJpZ2h0OyBtYXJnaW46IDA7IH0KLSNwcm9kdWN0aGVhZGVy
IHVsIGxpIHsgZGlzcGxheTogaW5saW5lOyB9Ci0jcHJvZHVjdGhlYWRlciB1bCBsaSBhIHsgY29s
b3I6ICMzMzM7IGZsb2F0OiBsZWZ0ICFpbXBvcnRhbnQ7IG1hcmdpbi10b3A6IDFlbTsgbWFyZ2lu
LWxlZnQ6IDMwcHg7IG1hcmdpbi1yaWdodDogOHB4OyBwYWRkaW5nOiAwOyB0ZXh0LWRlY29yYXRp
b246IG5vbmU7IH0KLSNwcm9kdWN0aGVhZGVyIHVsIGxpIGE6aG92ZXIgeyBjb2xvcjogIzA4Yzsg
fQotCi0jcHJvZHVjdGhlYWRlciBhLmJ1eW5vdywgI3Byb2R1Y3RoZWFkZXIgc3Bhbi5idXlub3cs
IC8qIG9sZCAqLwotI3Byb2R1Y3RoZWFkZXIgYS5vcmRlcm5vdywgI3Byb2R1Y3RoZWFkZXIgc3Bh
bi5vcmRlcm5vdywKLSNwcm9kdWN0aGVhZGVyIGEuam9pbm5vdywgI3Byb2R1Y3RoZWFkZXIgc3Bh
bi5qb2lubm93LAotI3Byb2R1Y3RoZWFkZXIgYS5wcmVvcmRlciwgI3Byb2R1Y3RoZWFkZXIgc3Bh
bi5wcmVvcmRlciwKLSNwcm9kdWN0aGVhZGVyIGEucHJlb3JkZXJfYmx1ZSwgI3Byb2R1Y3RoZWFk
ZXIgc3Bhbi5wcmVvcmRlcl9ibHVlLAotI3Byb2R1Y3RoZWFkZXIgYS5ob3d0b2J1eSwgI3Byb2R1
Y3RoZWFkZXIgc3Bhbi5ob3d0b2J1eSwKLSNwcm9kdWN0aGVhZGVyIGEuaG93dG9hcHBseSwgI3By
b2R1Y3RoZWFkZXIgc3Bhbi5ob3d0b2FwcGx5LAotI3Byb2R1Y3RoZWFkZXIgYS5mcmVldHJpYWws
ICNwcm9kdWN0aGVhZGVyIHNwYW4uZnJlZXRyaWFsLAotI3Byb2R1Y3RoZWFkZXIgYS5kb3dubG9h
ZG5vdywgI3Byb2R1Y3RoZWFkZXIgc3Bhbi5kb3dubG9hZG5vdywKLSNwcm9kdWN0bmF2IGEuZG93
bmxvYWRub3csICNwcm9kdWN0bmF2IHNwYW4uZG93bmxvYWRub3csCi0jcHJvZHVjdGhlYWRlciBh
LnVwZ3JhZGVub3csICNwcm9kdWN0aGVhZGVyIHNwYW4udXBncmFkZW5vdywKLSNwcm9kdWN0aGVh
ZGVyIGEudHJ5YW1hYywgI3Byb2R1Y3RoZWFkZXIgc3Bhbi50cnlhbWFjIHsgaGVpZ2h0OiAyNXB4
OyBtYXJnaW46IDAuN2VtIDAgMCAyMHB4OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIDA7IGJhY2tn
cm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7IGRpc3BsYXk6IGJsb2NrOyBmbG9hdDogcmlnaHQ7IHBv
c2l0aW9uOiByZWxhdGl2ZTsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB0ZXh0LWluZGVudDogLTk5
OTlweDsgb3V0bGluZTogbm9uZTsgb3ZlcmZsb3c6IGhpZGRlbjsgfQotI3Byb2R1Y3RoZWFkZXIg
YS5ub3RpZnltZSwgI3Byb2R1Y3RoZWFkZXIgc3Bhbi5ub3RpZnltZSB7IGhlaWdodDogMjVweDsg
bWFyZ2luOiAwLjhlbSAwIDAgMjBweDsgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAwOyBiYWNrZ3Jv
dW5kLXJlcGVhdDogbm8tcmVwZWF0OyBkaXNwbGF5OiBibG9jazsgZmxvYXQ6IHJpZ2h0OyBwb3Np
dGlvbjogcmVsYXRpdmU7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgdGV4dC1pbmRlbnQ6IC05OTk5
cHg7IG91dGxpbmU6IG5vbmU7IG92ZXJmbG93OiBoaWRkZW47IH0KLQotI3Byb2R1Y3RoZWFkZXIg
YS5wcmVvcmRlcl9ibHVlLCAjcHJvZHVjdGhlYWRlciBzcGFuLnByZW9yZGVyX2JsdWUgeyB3aWR0
aDogNzVweDsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly9pbWFnZXMuYXBwbGUuY29tL2ds
b2JhbC9lbGVtZW50cy9idXR0b25zL3ByZW9yZGVyX2JsdWUucG5nKTsgfQotI3Byb2R1Y3RoZWFk
ZXIgYS5idXlub3csICNwcm9kdWN0aGVhZGVyIHNwYW4uYnV5bm93IHsgd2lkdGg6IDcycHg7IGJh
Y2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vaW1hZ2VzLmFwcGxlLmNvbS9nbG9iYWwvZWxlbWVu
dHMvYnV0dG9ucy9idXlub3dzLnBuZyk7IF9iYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL2lt
YWdlcy5hcHBsZS5jb20vZ2xvYmFsL2VsZW1lbnRzL2J1dHRvbnMvYnV5bm93cy5naWYpOyB9Ci0j
cHJvZHVjdGhlYWRlciBhLm9yZGVybm93LCAjcHJvZHVjdGhlYWRlciBzcGFuLm9yZGVybm93IHsg
d2lkdGg6IDgxcHg7IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vaW1hZ2VzLmFwcGxlLmNv
bS9nbG9iYWwvZWxlbWVudHMvYnV0dG9ucy9vcmRlcm5vd3MucG5nKTsgX2JhY2tncm91bmQtaW1h
Z2U6IHVybChodHRwOi8vaW1hZ2VzLmFwcGxlLmNvbS9nbG9iYWwvZWxlbWVudHMvYnV0dG9ucy9v
cmRlcm5vd3MuZ2lmKTsgfQotI3Byb2R1Y3RoZWFkZXIgYS5qb2lubm93LCAjcHJvZHVjdGhlYWRl
ciBzcGFuLmpvaW5ub3cgeyB3aWR0aDogNzJweDsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6
Ly9pbWFnZXMuYXBwbGUuY29tL2dsb2JhbC9lbGVtZW50cy9idXR0b25zL2pvaW5ub3dzLnBuZyk7
IF9iYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL2ltYWdlcy5hcHBsZS5jb20vZ2xvYmFsL2Vs
ZW1lbnRzL2J1dHRvbnMvam9pbm5vd3MuZ2lmKTsgfQotI3Byb2R1Y3RoZWFkZXIgYS5wcmVvcmRl
ciwgI3Byb2R1Y3RoZWFkZXIgc3Bhbi5wcmVvcmRlciB7IHdpZHRoOiA5OXB4OyBiYWNrZ3JvdW5k
LWltYWdlOiB1cmwoaHR0cDovL2ltYWdlcy5hcHBsZS5jb20vZ2xvYmFsL2VsZW1lbnRzL2J1dHRv
bnMvcHJlb3JkZXJub3dzLnBuZyk7IF9iYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL2ltYWdl
cy5hcHBsZS5jb20vZ2xvYmFsL2VsZW1lbnRzL2J1dHRvbnMvcHJlb3JkZXJub3dzLmdpZik7IH0K
LSNwcm9kdWN0aGVhZGVyIGEuaG93dG9idXksICNwcm9kdWN0aGVhZGVyIHNwYW4uaG93dG9idXkg
eyB3aWR0aDogODZweDsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly9pbWFnZXMuYXBwbGUu
Y29tL2dsb2JhbC9lbGVtZW50cy9idXR0b25zL2hvd3RvYnV5cy5wbmcpOyBfYmFja2dyb3VuZC1p
bWFnZTogdXJsKGh0dHA6Ly9pbWFnZXMuYXBwbGUuY29tL2dsb2JhbC9lbGVtZW50cy9idXR0b25z
L2hvd3RvYnV5cy5naWYpOyB9Ci0jcHJvZHVjdGhlYWRlciBhLmhvd3RvYXBwbHksICNwcm9kdWN0
aGVhZGVyIHNwYW4uaG93dG9hcHBseSB7IHdpZHRoOiAxMDBweDsgYmFja2dyb3VuZC1pbWFnZTog
dXJsKGh0dHA6Ly9pbWFnZXMuYXBwbGUuY29tL2dsb2JhbC9lbGVtZW50cy9idXR0b25zL2hvd3Rv
YXBwbHlzLnBuZyk7IF9iYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL2ltYWdlcy5hcHBsZS5j
b20vZ2xvYmFsL2VsZW1lbnRzL2J1dHRvbnMvaG93dG9hcHBseXMuZ2lmKTsgfQotI3Byb2R1Y3Ro
ZWFkZXIgYS5mcmVldHJpYWwsICNwcm9kdWN0aGVhZGVyIHNwYW4uZnJlZXRyaWFsIHsgd2lkdGg6
IDcycHg7IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vaW1hZ2VzLmFwcGxlLmNvbS9nbG9i
YWwvZWxlbWVudHMvYnV0dG9ucy9mcmVldHJpYWxzLnBuZyk7IF9iYWNrZ3JvdW5kLWltYWdlOiB1
cmwoaHR0cDovL2ltYWdlcy5hcHBsZS5jb20vZ2xvYmFsL2VsZW1lbnRzL2J1dHRvbnMvZnJlZXRy
aWFscy5naWYpOyB9Ci0jcHJvZHVjdGhlYWRlciBhLmRvd25sb2Fkbm93LCAjcHJvZHVjdGhlYWRl
ciBzcGFuLmRvd25sb2Fkbm93IHsgd2lkdGg6IDEwOHB4OyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwo
aHR0cDovL2ltYWdlcy5hcHBsZS5jb20vZ2xvYmFsL2VsZW1lbnRzL2J1dHRvbnMvZG93bmxvYWRu
b3dzLnBuZyk7IF9iYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL2ltYWdlcy5hcHBsZS5jb20v
Z2xvYmFsL2VsZW1lbnRzL2J1dHRvbnMvZG93bmxvYWRub3dzLmdpZik7IH0KLSNwcm9kdWN0bmF2
IGEuZG93bmxvYWRub3csICNwcm9kdWN0bmF2IHNwYW4uZG93bmxvYWRub3cgeyB3aWR0aDogMTA4
cHg7IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vaW1hZ2VzLmFwcGxlLmNvbS9nbG9iYWwv
ZWxlbWVudHMvYnV0dG9ucy9kb3dubG9hZG5vd3MucG5nKTsgX2JhY2tncm91bmQtaW1hZ2U6IHVy
bChodHRwOi8vaW1hZ2VzLmFwcGxlLmNvbS9nbG9iYWwvZWxlbWVudHMvYnV0dG9ucy9kb3dubG9h
ZG5vd3MuZ2lmKTsgfQotI3Byb2R1Y3RoZWFkZXIgYS51cGdyYWRlbm93LCAjcHJvZHVjdGhlYWRl
ciBzcGFuLnVwZ3JhZGVub3cgeyB3aWR0aDogMTA0cHg7IGJhY2tncm91bmQtaW1hZ2U6IHVybCho
dHRwOi8vaW1hZ2VzLmFwcGxlLmNvbS9nbG9iYWwvZWxlbWVudHMvYnV0dG9ucy91cGdyYWRlbm93
cy5wbmcpOyBfYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly9pbWFnZXMuYXBwbGUuY29tL2ds
b2JhbC9lbGVtZW50cy9idXR0b25zL3VwZ3JhZGVub3dzLmdpZik7IH0KLSNwcm9kdWN0aGVhZGVy
IGEudHJ5YW1hYywgI3Byb2R1Y3RoZWFkZXIgc3Bhbi50cnlhbWFjIHsgd2lkdGg6IDc3cHg7IGJh
Y2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vaW1hZ2VzLmFwcGxlLmNvbS9nbG9iYWwvZWxlbWVu
dHMvYnV0dG9ucy90cnlhbWFjcy5wbmcpOyBfYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly9p
bWFnZXMuYXBwbGUuY29tL2dsb2JhbC9lbGVtZW50cy9idXR0b25zL3RyeWFtYWNzLmdpZik7IH0K
LSNwcm9kdWN0aGVhZGVyIGEubm90aWZ5bWUsICNwcm9kdWN0aGVhZGVyIHNwYW4ubm90aWZ5bWUg
eyB3aWR0aDogNzVweDsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly9pbWFnZXMuYXBwbGUu
Y29tL2dsb2JhbC9lbGVtZW50cy9idXR0b25zL25vdGlmeW1lcy5wbmcpOyBfYmFja2dyb3VuZC1p
bWFnZTogdXJsKGh0dHA6Ly9pbWFnZXMuYXBwbGUuY29tL2dsb2JhbC9lbGVtZW50cy9idXR0b25z
L25vdGlmeW1lcy5naWYpOyB9Ci0KLSNwcm9kdWN0aGVhZGVyIGEuYnV5bm93OmhvdmVyLCAjcHJv
ZHVjdGhlYWRlciBhLmJ1eW5vdzpmb2N1cywKLSNwcm9kdWN0aGVhZGVyIGEub3JkZXJub3c6aG92
ZXIsICNwcm9kdWN0aGVhZGVyIGEub3JkZXJub3c6Zm9jdXMsCi0jcHJvZHVjdGhlYWRlciBhLmpv
aW5ub3c6aG92ZXIsICNwcm9kdWN0aGVhZGVyIGEuam9pbm5vdzpmb2N1cywKLSNwcm9kdWN0aGVh
ZGVyIGEucHJlb3JkZXI6aG92ZXIsICNwcm9kdWN0aGVhZGVyIGEucHJlb3JkZXI6Zm9jdXMsCi0j
cHJvZHVjdGhlYWRlciBhLmhvd3RvYnV5OmhvdmVyLCAjcHJvZHVjdGhlYWRlciBhLmhvd3RvYnV5
OmZvY3VzLAotI3Byb2R1Y3RoZWFkZXIgYS5ob3d0b2FwcGx5OmhvdmVyLCAjcHJvZHVjdGhlYWRl
ciBhLmhvd3RvYXBwbHk6Zm9jdXMsCi0jcHJvZHVjdGhlYWRlciBhLmZyZWV0cmlhbDpob3Zlciwg
I3Byb2R1Y3RoZWFkZXIgYS5mcmVldHJpYWw6Zm9jdXMsCi0jcHJvZHVjdGhlYWRlciBhLmRvd25s
b2Fkbm93OmhvdmVyLCAjcHJvZHVjdGhlYWRlciBhLmRvd25sb2Fkbm93OmZvY3VzLAotI3Byb2R1
Y3RuYXYgYS5kb3dubG9hZG5vdzpob3ZlciwgI3Byb2R1Y3RuYXYgYS5kb3dubG9hZG5vdzpmb2N1
cywKLSNwcm9kdWN0aGVhZGVyIGEudXBncmFkZW5vdzpob3ZlciwgI3Byb2R1Y3RoZWFkZXIgYS51
cGdyYWRlbm93OmZvY3VzLAotI3Byb2R1Y3RoZWFkZXIgYS50cnlhbWFjOmhvdmVyLCAjcHJvZHVj
dGhlYWRlciBhLnRyeWFtYWM6Zm9jdXMsCi0jcHJvZHVjdGhlYWRlciBhLm5vdGlmeW1lOmhvdmVy
LCAjcHJvZHVjdGhlYWRlciBhLm5vdGlmeW1lOmZvY3VzIHsgYmFja2dyb3VuZC1wb3NpdGlvbjog
MCAtMjVweDsgfQotCi0jcHJvZHVjdGhlYWRlciBhLmJ1eW5vdzphY3RpdmUsCi0jcHJvZHVjdGhl
YWRlciBhLm9yZGVybm93OmFjdGl2ZSwKLSNwcm9kdWN0aGVhZGVyIGEuam9pbm5vdzphY3RpdmUs
Ci0jcHJvZHVjdGhlYWRlciBhLnByZW9yZGVyOmFjdGl2ZSwKLSNwcm9kdWN0aGVhZGVyIGEuaG93
dG9idXk6YWN0aXZlLAotI3Byb2R1Y3RoZWFkZXIgYS5ob3d0b2FwcGx5OmFjdGl2ZSwKLSNwcm9k
dWN0aGVhZGVyIGEuZnJlZXRyaWFsOmFjdGl2ZSwKLSNwcm9kdWN0aGVhZGVyIGEuZG93bmxvYWRu
b3c6YWN0aXZlLAotI3Byb2R1Y3RuYXYgYS5kb3dubG9hZG5vdzphY3RpdmUsCi0jcHJvZHVjdGhl
YWRlciBhLnVwZ3JhZGVub3c6YWN0aXZlLAotI3Byb2R1Y3RoZWFkZXIgYS50cnlhbWFjOmFjdGl2
ZSwKLSNwcm9kdWN0aGVhZGVyIGEubm90aWZ5bWU6YWN0aXZlIHsgYmFja2dyb3VuZC1wb3NpdGlv
bjogMCAtNTBweDsgfQotCi0jcHJvZHVjdGhlYWRlciBzcGFuLmJ1eW5vdywKLSNwcm9kdWN0aGVh
ZGVyIHNwYW4ub3JkZXJub3csCi0jcHJvZHVjdGhlYWRlciBzcGFuLmpvaW5ub3csCi0jcHJvZHVj
dGhlYWRlciBzcGFuLnByZW9yZGVyLAotI3Byb2R1Y3RoZWFkZXIgc3Bhbi5ob3d0b2J1eSwKLSNw
cm9kdWN0aGVhZGVyIHNwYW4uaG93dG9hcHBseSwKLSNwcm9kdWN0aGVhZGVyIHNwYW4uZnJlZXRy
aWFsLAotI3Byb2R1Y3RoZWFkZXIgc3Bhbi5kb3dubG9hZG5vdywKLSNwcm9kdWN0bmF2IHNwYW4u
ZG93bmxvYWRub3csCi0jcHJvZHVjdGhlYWRlciBzcGFuLnVwZ3JhZGVub3csCi0jcHJvZHVjdGhl
YWRlciBzcGFuLm5vdGlmeW1lIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAtNzVweDsgfQotCi0K
LS8qIEJVVFRPTlMgLSAoVS5TLikgKi8KLS5icm93c2V3ZWJhcHBzcywgLmJ1c2luZXNzc3RvcmVz
LCAuYnV5aXBob25lcywgLmJ1eW5vd3MsIC5idXlub3dzLWFycm93LCAuY29taW5nc29vbnMsIC5k
ZXNjYXJnYXJhaG9yYXMsIC5kb3dubG9hZGl0dW5lc3MsIC5kb3dubG9hZG5vd3MsIC5maW5kcywg
LmZyZWV0cmlhbHMsIC5nZXRzdGFydGVkcywgLmdvcywgLmhvd3RvYXBwbHlzLCAuaG93dG9idXlz
LCAuam9pbm5vd3MsIC5sZWFybm1vcmVzLCAubmlrZWJ1eW5vd3MsIC5ub3RpZnltZXMsIC5vcmRl
cm5vd3MsIC5wcmVvcmRlcm5vd3MsIC5wcmVvcmRlcnMsIC5yZXNlcnZlcywgLnN0YXJ0eW91cnNl
YXJjaHMsIC5zdWJtaXRzLCAudHJ5YW1hY3MsIC51cGdyYWRlbm93cyB7Ci0JaGVpZ2h0OiAyNXB4
OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIDA7IGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7
IGRpc3BsYXk6IGJsb2NrOyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IHRleHQtaW5kZW50OiAtOTk5
OXB4OyBvdmVyZmxvdzogaGlkZGVuOwotfQotYS5icm93c2V3ZWJhcHBzczpob3ZlciwgYS5idXNp
bmVzc3N0b3Jlczpob3ZlciwgYS5idXlpcGhvbmVzOmhvdmVyLCBhLmJ1eW5vd3M6aG92ZXIsIGEu
YnV5bm93cy1hcnJvdzpob3ZlciwgYS5jb21pbmdzb29uczpob3ZlciwgYS5kZXNjYXJnYXJhaG9y
YXM6aG92ZXIsIGEuZG93bmxvYWRpdHVuZXNzOmhvdmVyLCBhLmRvd25sb2Fkbm93czpob3Zlciwg
YS5maW5kczpob3ZlciwgYS5mcmVldHJpYWxzOmhvdmVyLCBhLmdldHN0YXJ0ZWRzOmhvdmVyLCBh
Lmdvczpob3ZlciwgYS5ob3d0b2FwcGx5czpob3ZlciwgYS5ob3d0b2J1eXM6aG92ZXIsIGEuam9p
bm5vd3M6aG92ZXIsIGEubGVhcm5tb3Jlczpob3ZlciwgYS5uaWtlYnV5bm93czpob3ZlciwgYS5u
b3RpZnltZXM6aG92ZXIsIGEub3JkZXJub3dzOmhvdmVyLCBhLnByZW9yZGVybm93czpob3Zlciwg
YS5wcmVvcmRlcnM6aG92ZXIsIGEucmVzZXJ2ZXM6aG92ZXIsIGEuc3RhcnR5b3Vyc2VhcmNoczpo
b3ZlciwgYS5zdWJtaXRzOmhvdmVyLCBhLnRyeWFtYWNzOmhvdmVyLCBhLnVwZ3JhZGVub3dzOmhv
dmVyLAotYS5icm93c2V3ZWJhcHBzczpmb2N1cywgYS5idXNpbmVzc3N0b3Jlczpmb2N1cywgYS5i
dXlpcGhvbmVzOmZvY3VzLCBhLmJ1eW5vd3M6Zm9jdXMsIGEuYnV5bm93cy1hcnJvdzpmb2N1cywg
YS5jb21pbmdzb29uczpmb2N1cywgYS5kZXNjYXJnYXJhaG9yYXM6Zm9jdXMsIGEuZG93bmxvYWRp
dHVuZXNzOmZvY3VzLCBhLmRvd25sb2Fkbm93czpmb2N1cywgYS5maW5kczpmb2N1cywgYS5mcmVl
dHJpYWxzOmZvY3VzLCBhLmdldHN0YXJ0ZWRzOmZvY3VzLCBhLmdvczpmb2N1cywgYS5ob3d0b2Fw
cGx5czpmb2N1cywgYS5ob3d0b2J1eXM6Zm9jdXMsIGEuam9pbm5vd3M6Zm9jdXMsIGEubGVhcm5t
b3Jlczpmb2N1cywgYS5uaWtlYnV5bm93czpmb2N1cywgYS5ub3RpZnltZXM6Zm9jdXMsIGEub3Jk
ZXJub3dzOmZvY3VzLCBhLnByZW9yZGVybm93czpmb2N1cywgYS5wcmVvcmRlcnM6Zm9jdXMsIGEu
cmVzZXJ2ZXM6Zm9jdXMsIGEuc3RhcnR5b3Vyc2VhcmNoczpmb2N1cywgYS5zdWJtaXRzOmZvY3Vz
LCBhLnRyeWFtYWNzOmZvY3VzLCBhLnVwZ3JhZGVub3dzOmZvY3VzIHsKLQliYWNrZ3JvdW5kLXBv
c2l0aW9uOiAwIC0yNXB4OwotfQotYS5icm93c2V3ZWJhcHBzczphY3RpdmUsIGEuYnVzaW5lc3Nz
dG9yZXM6YWN0aXZlLCBhLmJ1eWlwaG9uZXM6YWN0aXZlLCBhLmJ1eW5vd3M6YWN0aXZlLCBhLmJ1
eW5vd3MtYXJyb3c6YWN0aXZlLCBhLmNvbWluZ3Nvb25zOmFjdGl2ZSwgYS5kZXNjYXJnYXJhaG9y
YXM6YWN0aXZlLCBhLmRvd25sb2FkaXR1bmVzczphY3RpdmUsIGEuZG93bmxvYWRub3dzOmFjdGl2
ZSwgYS5maW5kczphY3RpdmUsIGEuZnJlZXRyaWFsczphY3RpdmUsIGEuZ2V0c3RhcnRlZHM6YWN0
aXZlLCBhLmdvczphY3RpdmUsIGEuaG93dG9hcHBseXM6YWN0aXZlLCBhLmhvd3RvYnV5czphY3Rp
dmUsIGEuam9pbm5vd3M6YWN0aXZlLCBhLmxlYXJubW9yZXM6YWN0aXZlLCBhLm5pa2VidXlub3dz
OmFjdGl2ZSwgYS5ub3RpZnltZXM6YWN0aXZlLCBhLm9yZGVybm93czphY3RpdmUsIGEucHJlb3Jk
ZXJub3dzOmFjdGl2ZSwgYS5wcmVvcmRlcnM6YWN0aXZlLCBhLnJlc2VydmVzOmFjdGl2ZSwgYS5z
dGFydHlvdXJzZWFyY2hzOmFjdGl2ZSwgYS5zdWJtaXRzOmFjdGl2ZSwgYS50cnlhbWFjczphY3Rp
dmUsIGEudXBncmFkZW5vd3M6YWN0aXZlIHsKLQliYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC01MHB4
OwotfQotc3Bhbi5icm93c2V3ZWJhcHBzcywgc3Bhbi5idXNpbmVzc3N0b3Jlcywgc3Bhbi5idXlp
cGhvbmVzLCBzcGFuLmJ1eW5vd3MsIHNwYW4uY29taW5nc29vbnMsIHNwYW4uZGVzY2FyZ2FyYWhv
cmFzLCBzcGFuLmRvd25sb2FkaXR1bmVzcywgc3Bhbi5kb3dubG9hZG5vd3MsIHNwYW4uZmluZHMs
IHNwYW4uZnJlZXRyaWFscywgc3Bhbi5nZXRzdGFydGVkcywgc3Bhbi5nb3MsIHNwYW4uaG93dG9h
cHBseXMsIHNwYW4uaG93dG9idXlzLCBzcGFuLmpvaW5ub3dzLCBzcGFuLmxlYXJubW9yZXMsIHNw
YW4ubmlrZWJ1eW5vd3MsIHNwYW4ubm90aWZ5bWVzLCBzcGFuLm9yZGVybm93cywgc3Bhbi5wcmVv
cmRlcm5vd3MsIHNwYW4ucHJlb3JkZXJzLCBzcGFuLnJlc2VydmVzLCBzcGFuLnN0YXJ0eW91cnNl
YXJjaHMsIHNwYW4uc3VibWl0cywgc3Bhbi50cnlhbWFjcywgc3Bhbi51cGdyYWRlbm93cyB7Ci0J
YmFja2dyb3VuZC1wb3NpdGlvbjogMCAtNzVweDsKLX0KLS5icm93c2V3ZWJhcHBzcyB7IGJhY2tn
cm91bmQtaW1hZ2U6IHVybChodHRwOi8vaW1hZ2VzLmFwcGxlLmNvbS9nbG9iYWwvZWxlbWVudHMv
YnV0dG9ucy9icm93c2V3ZWJhcHBzcy5wbmcpOyBfYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6
Ly9pbWFnZXMuYXBwbGUuY29tL2dsb2JhbC9lbGVtZW50cy9idXR0b25zL2Jyb3dzZXdlYmFwcHNz
LmdpZik7IHdpZHRoOiAxMjNweDsgfQotLmJ1c2luZXNzc3RvcmVzIHsgYmFja2dyb3VuZC1pbWFn
ZTogdXJsKGh0dHA6Ly9pbWFnZXMuYXBwbGUuY29tL2dsb2JhbC9lbGVtZW50cy9idXR0b25zL2J1
c2luZXNzc3RvcmVzLnBuZyk7IF9iYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL2ltYWdlcy5h
cHBsZS5jb20vZ2xvYmFsL2VsZW1lbnRzL2J1dHRvbnMvYnVzaW5lc3NzdG9yZXMuZ2lmKTsgd2lk
dGg6IDEwNXB4OyB9Ci0uYnV5aXBob25lcyB7IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8v
aW1hZ2VzLmFwcGxlLmNvbS9nbG9iYWwvZWxlbWVudHMvYnV0dG9ucy9idXlpcGhvbmVzLnBuZyk7
IF9iYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL2ltYWdlcy5hcHBsZS5jb20vZ2xvYmFsL2Vs
ZW1lbnRzL2J1dHRvbnMvYnV5aXBob25lcy5naWYpOyB3aWR0aDogODdweDsgfQotLmJ1eW5vd3Mg
eyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL2ltYWdlcy5hcHBsZS5jb20vZ2xvYmFsL2Vs
ZW1lbnRzL2J1dHRvbnMvYnV5bm93cy5wbmcpOyBfYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6
Ly9pbWFnZXMuYXBwbGUuY29tL2dsb2JhbC9lbGVtZW50cy9idXR0b25zL2J1eW5vd3MuZ2lmKTsg
d2lkdGg6IDcycHg7IH0KLS5idXlub3dzLWFycm93IHsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0
dHA6Ly9pbWFnZXMuYXBwbGUuY29tL2dsb2JhbC9lbGVtZW50cy9idXR0b25zL2J1eW5vd3NfYXJy
b3cucG5nKTsgX2JhY2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vaW1hZ2VzLmFwcGxlLmNvbS9n
bG9iYWwvZWxlbWVudHMvYnV0dG9ucy9idXlub3dzX2Fycm93LmdpZik7IHdpZHRoOiA4NnB4OyB9
Ci0uY29taW5nc29vbnMgeyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL2ltYWdlcy5hcHBs
ZS5jb20vZ2xvYmFsL2VsZW1lbnRzL2J1dHRvbnMvY29taW5nc29vbnMucG5nKTsgX2JhY2tncm91
bmQtaW1hZ2U6IHVybChodHRwOi8vaW1hZ2VzLmFwcGxlLmNvbS9nbG9iYWwvZWxlbWVudHMvYnV0
dG9ucy9jb21pbmdzb29ucy5naWYpOyB3aWR0aDogOTdweDsgfQotLmRlc2NhcmdhcmFob3JhcyB7
IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vaW1hZ2VzLmFwcGxlLmNvbS9nbG9iYWwvZWxl
bWVudHMvYnV0dG9ucy9kZXNjYXJnYXJhaG9yYXMucG5nKTsgX2JhY2tncm91bmQtaW1hZ2U6IHVy
bChodHRwOi8vaW1hZ2VzLmFwcGxlLmNvbS9nbG9iYWwvZWxlbWVudHMvYnV0dG9ucy9kZXNjYXJn
YXJhaG9yYXMuZ2lmKTsgd2lkdGg6IDEwOHB4OyB9Ci0uZG93bmxvYWRpdHVuZXNzIHsgYmFja2dy
b3VuZC1pbWFnZTogdXJsKGh0dHA6Ly9pbWFnZXMuYXBwbGUuY29tL2dsb2JhbC9lbGVtZW50cy9i
dXR0b25zL2Rvd25sb2FkaXR1bmVzcy5wbmcpOyBfYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6
Ly9pbWFnZXMuYXBwbGUuY29tL2dsb2JhbC9lbGVtZW50cy9idXR0b25zL2Rvd25sb2FkaXR1bmVz
cy5naWYpOyB3aWR0aDogMTE2cHg7IH0KLS5kb3dubG9hZG5vd3MgeyBiYWNrZ3JvdW5kLWltYWdl
OiB1cmwoaHR0cDovL2ltYWdlcy5hcHBsZS5jb20vZ2xvYmFsL2VsZW1lbnRzL2J1dHRvbnMvZG93
bmxvYWRub3dzLnBuZyk7IF9iYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL2ltYWdlcy5hcHBs
ZS5jb20vZ2xvYmFsL2VsZW1lbnRzL2J1dHRvbnMvZG93bmxvYWRub3dzLmdpZik7IHdpZHRoOiAx
MDhweDsgfQotLmZpbmRzIHsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly9pbWFnZXMuYXBw
bGUuY29tL2dsb2JhbC9lbGVtZW50cy9idXR0b25zL2ZpbmRzLnBuZyk7IF9iYWNrZ3JvdW5kLWlt
YWdlOiB1cmwoaHR0cDovL2ltYWdlcy5hcHBsZS5jb20vZ2xvYmFsL2VsZW1lbnRzL2J1dHRvbnMv
ZmluZHMuZ2lmKTsgd2lkdGg6IDUycHg7IH0KLS5mcmVldHJpYWxzIHsgYmFja2dyb3VuZC1pbWFn
ZTogdXJsKGh0dHA6Ly9pbWFnZXMuYXBwbGUuY29tL2dsb2JhbC9lbGVtZW50cy9idXR0b25zL2Zy
ZWV0cmlhbHMucG5nKTsgX2JhY2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vaW1hZ2VzLmFwcGxl
LmNvbS9nbG9iYWwvZWxlbWVudHMvYnV0dG9ucy9mcmVldHJpYWxzLmdpZik7IHdpZHRoOiA3MnB4
OyB9Ci0uZ2V0c3RhcnRlZHMgeyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL2ltYWdlcy5h
cHBsZS5jb20vZ2xvYmFsL2VsZW1lbnRzL2J1dHRvbnMvZ2V0c3RhcnRlZHMucG5nKTsgX2JhY2tn
cm91bmQtaW1hZ2U6IHVybChodHRwOi8vaW1hZ2VzLmFwcGxlLmNvbS9nbG9iYWwvZWxlbWVudHMv
YnV0dG9ucy9nZXRzdGFydGVkcy5naWYpOyB3aWR0aDogOTBweDsgfQotLmdvcyB7IGJhY2tncm91
bmQtaW1hZ2U6IHVybChodHRwOi8vaW1hZ2VzLmFwcGxlLmNvbS9nbG9iYWwvZWxlbWVudHMvYnV0
dG9ucy9nb3MucG5nKTsgX2JhY2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vaW1hZ2VzLmFwcGxl
LmNvbS9nbG9iYWwvZWxlbWVudHMvYnV0dG9ucy9nb3MuZ2lmKTsgd2lkdGg6IDQ0cHg7IH0KLS5o
b3d0b2FwcGx5cyB7IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vaW1hZ2VzLmFwcGxlLmNv
bS9nbG9iYWwvZWxlbWVudHMvYnV0dG9ucy9ob3d0b2FwcGx5cy5wbmcpOyBfYmFja2dyb3VuZC1p
bWFnZTogdXJsKGh0dHA6Ly9pbWFnZXMuYXBwbGUuY29tL2dsb2JhbC9lbGVtZW50cy9idXR0b25z
L2hvd3RvYXBwbHlzLmdpZik7IHdpZHRoOiAxMDBweDsgfQotLmhvd3RvYnV5cyB7IGJhY2tncm91
bmQtaW1hZ2U6IHVybChodHRwOi8vaW1hZ2VzLmFwcGxlLmNvbS9nbG9iYWwvZWxlbWVudHMvYnV0
dG9ucy9ob3d0b2J1eXMucG5nKTsgX2JhY2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vaW1hZ2Vz
LmFwcGxlLmNvbS9nbG9iYWwvZWxlbWVudHMvYnV0dG9ucy9ob3d0b2J1eXMuZ2lmKTsgd2lkdGg6
IDg2cHg7IH0KLS5qb2lubm93cyB7IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vaW1hZ2Vz
LmFwcGxlLmNvbS9nbG9iYWwvZWxlbWVudHMvYnV0dG9ucy9qb2lubm93cy5wbmcpOyBfYmFja2dy
b3VuZC1pbWFnZTogdXJsKGh0dHA6Ly9pbWFnZXMuYXBwbGUuY29tL2dsb2JhbC9lbGVtZW50cy9i
dXR0b25zL2pvaW5ub3dzLmdpZik7IHdpZHRoOiA3MnB4OyB9Ci0ubGVhcm5tb3JlcyB7IGJhY2tn
cm91bmQtaW1hZ2U6IHVybChodHRwOi8vaW1hZ2VzLmFwcGxlLmNvbS9nbG9iYWwvZWxlbWVudHMv
YnV0dG9ucy9sZWFybm1vcmVzLnBuZyk7IF9iYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL2lt
YWdlcy5hcHBsZS5jb20vZ2xvYmFsL2VsZW1lbnRzL2J1dHRvbnMvbGVhcm5tb3Jlcy5naWYpOyB3
aWR0aDogODlweDsgfQotLm5pa2VidXlub3dzIHsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6
Ly9pbWFnZXMuYXBwbGUuY29tL2dsb2JhbC9lbGVtZW50cy9idXR0b25zL25pa2VidXlub3dzLnBu
Zyk7IF9iYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL2ltYWdlcy5hcHBsZS5jb20vZ2xvYmFs
L2VsZW1lbnRzL2J1dHRvbnMvbmlrZWJ1eW5vd3MuZ2lmKTsgd2lkdGg6IDcycHg7IH0KLS5ub3Rp
ZnltZXMgeyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL2ltYWdlcy5hcHBsZS5jb20vZ2xv
YmFsL2VsZW1lbnRzL2J1dHRvbnMvbm90aWZ5bWVzLnBuZyk7IF9iYWNrZ3JvdW5kLWltYWdlOiB1
cmwoaHR0cDovL2ltYWdlcy5hcHBsZS5jb20vZ2xvYmFsL2VsZW1lbnRzL2J1dHRvbnMvbm90aWZ5
bWVzLmdpZik7IHdpZHRoOiA4MHB4OyB9Ci0ub3JkZXJub3dzIHsgYmFja2dyb3VuZC1pbWFnZTog
dXJsKGh0dHA6Ly9pbWFnZXMuYXBwbGUuY29tL2dsb2JhbC9lbGVtZW50cy9idXR0b25zL29yZGVy
bm93cy5wbmcpOyBfYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly9pbWFnZXMuYXBwbGUuY29t
L2dsb2JhbC9lbGVtZW50cy9idXR0b25zL29yZGVybm93cy5naWYpOyB3aWR0aDogODFweDsgfQot
LnByZW9yZGVybm93cyB7IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vaW1hZ2VzLmFwcGxl
LmNvbS9nbG9iYWwvZWxlbWVudHMvYnV0dG9ucy9wcmVvcmRlcm5vd3MucG5nKTsgX2JhY2tncm91
bmQtaW1hZ2U6IHVybChodHRwOi8vaW1hZ2VzLmFwcGxlLmNvbS9nbG9iYWwvZWxlbWVudHMvYnV0
dG9ucy9wcmVvcmRlcm5vd3MuZ2lmKTsgd2lkdGg6IDk5cHg7IH0KLS5wcmVvcmRlcnMgeyBiYWNr
Z3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL2ltYWdlcy5hcHBsZS5jb20vZ2xvYmFsL2VsZW1lbnRz
L2J1dHRvbnMvcHJlb3JkZXJzLnBuZyk7IF9iYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL2lt
YWdlcy5hcHBsZS5jb20vZ2xvYmFsL2VsZW1lbnRzL2J1dHRvbnMvcHJlb3JkZXJzLmdpZik7IHdp
ZHRoOiA3N3B4OyB9Ci0ucmVzZXJ2ZXMgeyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL2lt
YWdlcy5hcHBsZS5jb20vZ2xvYmFsL2VsZW1lbnRzL2J1dHRvbnMvcmVzZXJ2ZXMucG5nKTsgX2Jh
Y2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vaW1hZ2VzLmFwcGxlLmNvbS9nbG9iYWwvZWxlbWVu
dHMvYnV0dG9ucy9yZXNlcnZlcy5naWYpOyB3aWR0aDogNjhweDsgfQotLnN0YXJ0eW91cnNlYXJj
aHMgeyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL2ltYWdlcy5hcHBsZS5jb20vZ2xvYmFs
L2VsZW1lbnRzL2J1dHRvbnMvc3RhcnR5b3Vyc2VhcmNocy5wbmcpOyBfYmFja2dyb3VuZC1pbWFn
ZTogdXJsKGh0dHA6Ly9pbWFnZXMuYXBwbGUuY29tL2dsb2JhbC9lbGVtZW50cy9idXR0b25zL3N0
YXJ0eW91cnNlYXJjaHMuZ2lmKTsgd2lkdGg6IDEyMHB4OyB9Ci0uc3VibWl0cyB7IGJhY2tncm91
bmQtaW1hZ2U6IHVybChodHRwOi8vaW1hZ2VzLmFwcGxlLmNvbS9nbG9iYWwvZWxlbWVudHMvYnV0
dG9ucy9zdWJtaXRzLnBuZyk7IF9iYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL2ltYWdlcy5h
cHBsZS5jb20vZ2xvYmFsL2VsZW1lbnRzL2J1dHRvbnMvc3VibWl0cy5naWYpOyB3aWR0aDogNjdw
eDsgfQotLnRyeWFtYWNzIHsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly9pbWFnZXMuYXBw
bGUuY29tL2dsb2JhbC9lbGVtZW50cy9idXR0b25zL3RyeWFtYWNzLnBuZyk7IF9iYWNrZ3JvdW5k
LWltYWdlOiB1cmwoaHR0cDovL2ltYWdlcy5hcHBsZS5jb20vZ2xvYmFsL2VsZW1lbnRzL2J1dHRv
bnMvdHJ5YW1hY3MuZ2lmKTsgd2lkdGg6IDc3cHg7IH0KLS51cGdyYWRlbm93cyB7IGJhY2tncm91
bmQtaW1hZ2U6IHVybChodHRwOi8vaW1hZ2VzLmFwcGxlLmNvbS9nbG9iYWwvZWxlbWVudHMvYnV0
dG9ucy91cGdyYWRlbm93cy5wbmcpOyBfYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly9pbWFn
ZXMuYXBwbGUuY29tL2dsb2JhbC9lbGVtZW50cy9idXR0b25zL3VwZ3JhZGVub3dzLmdpZik7IHdp
ZHRoOiAxMDRweDsgfQotCi0jcHJvZHVjdGhlYWRlciAuYnJvd3Nld2ViYXBwc3MsICNwcm9kdWN0
aGVhZGVyIC5idXNpbmVzc3N0b3JlcywgI3Byb2R1Y3RoZWFkZXIgLmJ1eWlwaG9uZXMsICNwcm9k
dWN0aGVhZGVyIC5idXlub3dzLCAjcHJvZHVjdGhlYWRlciAuY29taW5nc29vbnMsICNwcm9kdWN0
aGVhZGVyIC5kZXNjYXJnYXJhaG9yYXMsIAotI3Byb2R1Y3RoZWFkZXIgLmRvd25sb2FkaXR1bmVz
cywgI3Byb2R1Y3RoZWFkZXIgLmRvd25sb2Fkbm93cywgI3Byb2R1Y3RoZWFkZXIgLmZpbmRzLCAj
cHJvZHVjdGhlYWRlciAuZnJlZXRyaWFscywgI3Byb2R1Y3RoZWFkZXIgLmdldHN0YXJ0ZWRzLCAK
LSNwcm9kdWN0aGVhZGVyIC5nb3MsICNwcm9kdWN0aGVhZGVyIC5ob3d0b2FwcGx5cywgI3Byb2R1
Y3RoZWFkZXIgLmhvd3RvYnV5cywgI3Byb2R1Y3RoZWFkZXIgLmpvaW5ub3dzLCAjcHJvZHVjdGhl
YWRlciAubGVhcm5tb3JlcywgCi0jcHJvZHVjdGhlYWRlciAubm90aWZ5bWVzLCAjcHJvZHVjdGhl
YWRlciAub3JkZXJub3dzLCAjcHJvZHVjdGhlYWRlciAucHJlb3JkZXJub3dzLCAjcHJvZHVjdGhl
YWRlciAucHJlb3JkZXJzLCAjcHJvZHVjdGhlYWRlciAucmVzZXJ2ZXMsIAotI3Byb2R1Y3RoZWFk
ZXIgLnN0YXJ0eW91cnNlYXJjaHMsICNwcm9kdWN0aGVhZGVyIC5zdWJtaXRzLCAjcHJvZHVjdGhl
YWRlciAudHJ5YW1hY3MsICNwcm9kdWN0aGVhZGVyIC51cGdyYWRlbm93cyB7Ci0JbWFyZ2luOiAw
LjhlbSAwIDAgMjBweDsgZmxvYXQ6IGxlZnQ7Ci19Ci0KLS8qIHByb21vZm9vdGVyICovCi0jcHJv
bW9mb290ZXIgeyB3aWR0aDo5ODRweDsgbWFyZ2luOjE4cHggYXV0byAwOyBwYWRkaW5nLXRvcDox
N3B4OyBiYWNrZ3JvdW5kOnVybChodHRwOi8vaW1hZ2VzLmFwcGxlLmNvbS9wcm9tb3MvaW1hZ2Vz
L3Byb21vZm9vdGVyX3RvcC5wbmcpIG5vLXJlcGVhdDsgem9vbToxOyBfYmFja2dyb3VuZC1pbWFn
ZTp1cmwoaHR0cDovL2ltYWdlcy5hcHBsZS5jb20vcHJvbW9zL2ltYWdlcy9wcm9tb2Zvb3Rlcl90
b3AuZ2lmKTsgfQotI3Byb21vZm9vdGVyICNwcm9tb3MgeyB3aWR0aDo5ODBweDsgbWFyZ2luLWJv
dHRvbTowOyBwYWRkaW5nOjAgMnB4IDRweDsgYmFja2dyb3VuZDp1cmwoaHR0cDovL2ltYWdlcy5h
cHBsZS5jb20vcHJvbW9zL2ltYWdlcy9wcm9tb2Zvb3Rlcl9ib3R0b20ucG5nKSBuby1yZXBlYXQg
MCAxMDAlOyB6b29tOjE7IF9iYWNrZ3JvdW5kLWltYWdlOnVybChodHRwOi8vaW1hZ2VzLmFwcGxl
LmNvbS9wcm9tb3MvaW1hZ2VzL3Byb21vZm9vdGVyX2JvdHRvbS5naWYpOyB9Ci0jcHJvbW9mb290
ZXIgI3Byb21vczo6YWZ0ZXIgeyBjb250ZW50OicuJzsgZGlzcGxheTpibG9jazsgaGVpZ2h0OjA7
IGNsZWFyOmJvdGg7IHZpc2liaWxpdHk6aGlkZGVuOyB9Ci0jcHJvbW9mb290ZXIgI3Byb21vcyBs
aS5wcm9tbyB7IHBvc2l0aW9uOnJlbGF0aXZlOyBmbG9hdDpsZWZ0OyB3aWR0aDoyNDRweDsgbWlu
LWhlaWdodDoxNWVtOyBfaGVpZ2h0OjE1ZW07IHBhZGRpbmctcmlnaHQ6MXB4OyBtYXJnaW4tdG9w
Oi0xNnB4OyB9Ci0jcHJvbW9mb290ZXIgI3Byb21vcyBsaS5wcm9tbyBhIHsgY29sb3I6Izc3Nzsg
fQotI3Byb21vZm9vdGVyICNwcm9tb3MgbGkucHJvbW86aG92ZXIgYSB7IGNvbG9yOiMwOGM7IHRl
eHQtZGVjb3JhdGlvbjpub25lOyB9Ci0KLSNwcm9tb2Zvb3RlciAjcHJvbW9zIGltZyB7IGRpc3Bs
YXk6YmxvY2s7IH0KLQotI3Byb21vZm9vdGVyICNwcm9tb3MgaDQgYSwKLSNwcm9tb2Zvb3RlciAj
cHJvbW9zIHAgYSwKLSNwcm9tb2Zvb3RlciAjcHJvbW9zIHVsIHsgZGlzcGxheTpibG9jazsgcGFk
ZGluZy1sZWZ0OjE1cHg7IHBhZGRpbmctcmlnaHQ6MTJweDsgdGV4dC1hbGlnbjpsZWZ0OyB6LWlu
ZGV4OjEwMTsgKnBvc2l0aW9uOnJlbGF0aXZlOyB9Ci0KLSNwcm9tb2Zvb3RlciAjcHJvbW9zIGg0
IGEgeyBmb250LXNpemU6MThweDsgZm9udC13ZWlnaHQ6bm9ybWFsOyBwYWRkaW5nLXRvcDoxNXB4
OyB9Ci0jcHJvbW9mb290ZXIgI3Byb21vcyBwIHsgbWFyZ2luLWJvdHRvbTowOyB9Ci0jcHJvbW9m
b290ZXIgI3Byb21vcyBwIGEgeyBmb250LXNpemU6MTFweDsgbGluZS1oZWlnaHQ6MTZweDsgfQot
I3Byb21vZm9vdGVyICNwcm9tb3MgYS5pbWFnZSB7IGhlaWdodDoxODBweDsgcG9zaXRpb246YWJz
b2x1dGU7IGJvdHRvbTowOyB6LWluZGV4OjEwMDsgfQotCi0jcHJvbW9mb290ZXIgI3Byb21vcyAu
cHJvbW8ubGVmdCBwIGEgeyB3aWR0aDoxMTBweDsgfQotI3Byb21vZm9vdGVyICNwcm9tb3MgLnBy
b21vLnJpZ2h0IHAgYSB7IHdpZHRoOjExMnB4OyBwYWRkaW5nLWxlZnQ6MTE2cHg7IH0KLSNwcm9t
b2Zvb3RlciAjcHJvbW9zIC5wcm9tby5jZW50ZXIgcCBhIHsgdGV4dC1hbGlnbjpjZW50ZXI7IH0K
LQotI3Byb21vZm9vdGVyICNwcm9tb3MgbGkuYnV5IHsgcG9zaXRpb246cmVsYXRpdmU7IGZsb2F0
OmxlZnQ7IHdpZHRoOjI0NHB4OyBwYWRkaW5nLXJpZ2h0OjFweDsgbWFyZ2luLXRvcDotMTdweDsg
Y29sb3I6Izc3NzsgfQotI3Byb21vZm9vdGVyICNwcm9tb3MgbGkuYnV5IHVsIHsgZm9udC1zaXpl
OjExcHg7IGxpbmUtaGVpZ2h0OjEuNDsgfQotCi0jcHJvbW9mb290ZXIuZ3JpZDJjb2wgeyBtaW4t
aGVpZ2h0OiA3MHB4OyBwYWRkaW5nOjE1cHggMCA4cHggMDsgIGJvcmRlcjogMXB4IHNvbGlkICNE
MkQyRDI7IH0KLSNwcm9tb2Zvb3Rlci5ncmlkMmNvbCB7IGJhY2tncm91bmQ6I2ZmZjsKLSAgICBi
YWNrZ3JvdW5kOi13ZWJraXQtZ3JhZGllbnQobGluZWFyLCAwJSAwJSwgMCUgMTAwJSwgZnJvbSgj
ZmZmKSwgdG8oI2U1ZTVlNSkpOwotICAgIGJhY2tncm91bmQ6LW1vei1saW5lYXItZ3JhZGllbnQo
MTAwJSAxMDAlIDkwZGVnLCAjZTVlNWU1LCAjZmZmKTsKLSAgICBmaWx0ZXI6cHJvZ2lkOkRYSW1h
Z2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KEdyYWRpZW50VHlwZT0wLCBzdGFydENvbG9y
c3RyPScjRkZGRkZGJywgZW5kQ29sb3JzdHI9JyNlNWU1ZTUnKTsKLSB9Ci0jcHJvbW9mb290ZXIu
Z3JpZDJjb2wgI3Byb21vcyB7IGJhY2tncm91bmQ6IG5vbmU7fQotI3Byb21vZm9vdGVyLmdyaWQy
Y29sICNwcm9tb3MgbGkucHJvbW8geyB3aWR0aDogNDclOyBtaW4taGVpZ2h0OiA3MHB4OyBtYXJn
aW4tYm90dG9tOiAtMTBweDsgfQotI3Byb21vZm9vdGVyLmdyaWQyY29sICNwcm9tb3MgbGkucHJv
bW8uZmlyc3QgeyBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjZThlOGU4OyB9Ci0jcHJvbW9mb290
ZXIuZ3JpZDJjb2wgbGkucHJvbW8geyBwYWRkaW5nOjIwcHg7IH0KLQotLyogUFJJTlQgKi8KLUBt
ZWRpYSBwcmludCB7Ci0JYm9keSwgI21haW4sICNjb250ZW50IHsgY29sb3I6ICMwMDAgIWltcG9y
dGFudDsgfQotCWEsIGE6bGluaywgYTp2aXNpdGVkIHsgY29sb3I6ICMwMDAgIWltcG9ydGFudDsg
dGV4dC1kZWNvcmF0aW9uOm5vbmUgIWltcG9ydGFudDsgfQotCSN0YWJzLCAjZ2xvYmFsaGVhZGVy
LCAjZ2xvYmFsZm9vdGVyLCAjZGlyZWN0b3J5bmF2LCAubm9wcmludCwgLmhpZGUgeyBkaXNwbGF5
OiBub25lICFpbXBvcnRhbnQ7IH0KLQkjbWFpbiBhLnBkZiwgI21haW4gYS5odG1sLCAjbWFpbiBh
LnF0LCAjbWFpbiBhLmljYWwsICNtYWluIGEuZGwsICNtYWluIGEuZG1nLCAjbWFpbiBhLnppcCwg
I21haW4gYS5rZXlub3RlLCAjbWFpbiBhLmF1ZGlvIHsgcGFkZGluZy1sZWZ0OiAwICFpbXBvcnRh
bnQ7IGJhY2tncm91bmQtaW1hZ2U6IG5vbmUgIWltcG9ydGFudDsgfQotfQotCi0vKiBpUGhvbmUg
Ki8KLUBtZWRpYSBzY3JlZW4gYW5kIChtYXgtZGV2aWNlLXdpZHRoOiA0ODBweCkgeyBodG1sIHsg
LXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiBub25lOyB9IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0Zvcm1hdHRlci5qcyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0Zvcm1hdHRlci5q
cwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTRhNjU4MDlhNmEuLjAwMDAwMDAwMDAw
Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0Zv
cm1hdHRlci5qcworKysgL2Rldi9udWxsCkBAIC0xLDE2NyArMCwwIEBACi0vKgotICogQ29weXJp
Z2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAq
Ci0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQot
V0kuRm9ybWF0dGVyID0gY2xhc3MgRm9ybWF0dGVyCi17Ci0gICAgY29uc3RydWN0b3IoY29kZU1p
cnJvciwgYnVpbGRlcikKLSAgICB7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KGNvZGVNaXJyb3Ip
OwotICAgICAgICBjb25zb2xlLmFzc2VydChidWlsZGVyKTsKLQotICAgICAgICB0aGlzLl9jb2Rl
TWlycm9yID0gY29kZU1pcnJvcjsKLSAgICAgICAgdGhpcy5fYnVpbGRlciA9IGJ1aWxkZXI7Ci0K
LSAgICAgICAgdGhpcy5fbGFzdFRva2VuID0gbnVsbDsKLSAgICAgICAgdGhpcy5fbGFzdENvbnRl
bnQgPSAiIjsKLSAgICB9Ci0KLSAgICAvLyBQdWJsaWMKLQotICAgIGZvcm1hdChmcm9tLCB0bykK
LSAgICB7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRoaXMuX2J1aWxkZXIub3JpZ2luYWxDb250
ZW50ID09PSBudWxsKTsKLSAgICAgICAgaWYgKHRoaXMuX2J1aWxkZXIub3JpZ2luYWxDb250ZW50
ICE9PSBudWxsKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIHZhciBvdXRlck1vZGUg
PSB0aGlzLl9jb2RlTWlycm9yLmdldE1vZGUoKTsKLSAgICAgICAgdmFyIGNvbnRlbnQgPSB0aGlz
Ll9jb2RlTWlycm9yLmdldFJhbmdlKGZyb20sIHRvKTsKLSAgICAgICAgdmFyIHN0YXRlID0gQ29k
ZU1pcnJvci5jb3B5U3RhdGUob3V0ZXJNb2RlLCB0aGlzLl9jb2RlTWlycm9yLmdldFRva2VuQXQo
ZnJvbSkuc3RhdGUpOwotICAgICAgICB0aGlzLl9idWlsZGVyLnNldE9yaWdpbmFsQ29udGVudChj
b250ZW50KTsKLQotICAgICAgICB2YXIgbGluZU9mZnNldCA9IDA7Ci0gICAgICAgIHZhciBsaW5l
cyA9IGNvbnRlbnQuc3BsaXQoIlxuIik7Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGlu
ZXMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgICAgIHZhciBsaW5lID0gbGluZXNbaV07Ci0gICAg
ICAgICAgICB2YXIgc3RhcnRPZk5ld0xpbmUgPSB0cnVlOwotICAgICAgICAgICAgdmFyIGZpcnN0
VG9rZW5PbkxpbmUgPSB0cnVlOwotICAgICAgICAgICAgdmFyIHN0cmVhbSA9IG5ldyBDb2RlTWly
cm9yLlN0cmluZ1N0cmVhbShsaW5lKTsKLSAgICAgICAgICAgIHdoaWxlICghc3RyZWFtLmVvbCgp
KSB7Ci0gICAgICAgICAgICAgICAgdmFyIGlubmVyTW9kZSA9IENvZGVNaXJyb3IuaW5uZXJNb2Rl
KG91dGVyTW9kZSwgc3RhdGUpOwotICAgICAgICAgICAgICAgIHZhciB0b2tlbiA9IG91dGVyTW9k
ZS50b2tlbihzdHJlYW0sIHN0YXRlKTsKLSAgICAgICAgICAgICAgICB2YXIgaXNXaGl0ZVNwYWNl
ID0gdG9rZW4gPT09IG51bGwgJiYgL15ccyokLy50ZXN0KHN0cmVhbS5jdXJyZW50KCkpOwotICAg
ICAgICAgICAgICAgIHRoaXMuX2hhbmRsZVRva2VuKGlubmVyTW9kZS5tb2RlLCB0b2tlbiwgc3Rh
dGUsIHN0cmVhbSwgbGluZU9mZnNldCArIHN0cmVhbS5zdGFydCwgaXNXaGl0ZVNwYWNlLCBzdGFy
dE9mTmV3TGluZSwgZmlyc3RUb2tlbk9uTGluZSk7Ci0gICAgICAgICAgICAgICAgc3RyZWFtLnN0
YXJ0ID0gc3RyZWFtLnBvczsKLSAgICAgICAgICAgICAgICBzdGFydE9mTmV3TGluZSA9IGZhbHNl
OwotICAgICAgICAgICAgICAgIGlmIChmaXJzdFRva2VuT25MaW5lICYmICFpc1doaXRlU3BhY2Up
Ci0gICAgICAgICAgICAgICAgICAgIGZpcnN0VG9rZW5PbkxpbmUgPSBmYWxzZTsKLSAgICAgICAg
ICAgIH0KLQotICAgICAgICAgICAgaWYgKGZpcnN0VG9rZW5PbkxpbmUpCi0gICAgICAgICAgICAg
ICAgdGhpcy5faGFuZGxlRW1wdHlMaW5lKCk7Ci0KLSAgICAgICAgICAgIGxpbmVPZmZzZXQgKz0g
bGluZS5sZW5ndGggKyAxOyAvLyArMSBmb3IgdGhlICJcbiIgcmVtb3ZlZCBpbiBzcGxpdC4KLSAg
ICAgICAgICAgIHRoaXMuX2hhbmRsZUxpbmVFbmRpbmcobGluZU9mZnNldCAtIDEpOyAvLyAtMSBm
b3IgdGhlIGluZGV4IG9mIHRoZSAiXG4iLgotICAgICAgICB9Ci0KLSAgICAgICAgdGhpcy5fYnVp
bGRlci5maW5pc2goKTsKLSAgICB9Ci0KLSAgICAvLyBQcml2YXRlCi0KLSAgICBfaGFuZGxlVG9r
ZW4obW9kZSwgdG9rZW4sIHN0YXRlLCBzdHJlYW0sIG9yaWdpbmFsUG9zaXRpb24sIGlzV2hpdGVT
cGFjZSwgc3RhcnRPZk5ld0xpbmUsIGZpcnN0VG9rZW5PbkxpbmUpCi0gICAgewotICAgICAgICAv
LyBTdHJpbmcgY29udGVudCBvZiB0aGUgdG9rZW4uCi0gICAgICAgIHZhciBjb250ZW50ID0gc3Ry
ZWFtLmN1cnJlbnQoKTsKLQotICAgICAgICAvLyBTdGFydCBvZiBhIG5ldyBsaW5lLiBJbnNlcnQg
YSBuZXdsaW5lIHRvIGJlIHNhZmUgaWYgY29kZSB3YXMgbm90LUFTSSBzYWZlLiBUaGVzZSBhcmUg
Y29sbGFwc2VkLgotICAgICAgICBpZiAoc3RhcnRPZk5ld0xpbmUpCi0gICAgICAgICAgICB0aGlz
Ll9idWlsZGVyLmFwcGVuZE5ld2xpbmUoKTsKLQotICAgICAgICAvLyBXaGl0ZXNwYWNlLiBSZW1v
dmUgYWxsIHNwYWNlcyBvciBjb2xsYXBzZSB0byBhIHNpbmdsZSBzcGFjZS4KLSAgICAgICAgaWYg
KGlzV2hpdGVTcGFjZSkgewotICAgICAgICAgICAgdGhpcy5fYnVpbGRlci5hcHBlbmRTcGFjZSgp
OwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgLy8gQXZvaWQgc29t
ZSBob29rcyBmb3IgY29udGVudCBpbiBjb21tZW50cy4KLSAgICAgICAgdmFyIGlzQ29tbWVudCA9
IHRva2VuICYmIC9cYmNvbW1lbnRcYi8udGVzdCh0b2tlbik7Ci0KLSAgICAgICAgaWYgKG1vZGUu
bW9kaWZ5U3RhdGVGb3JUb2tlblByZSkKLSAgICAgICAgICAgIG1vZGUubW9kaWZ5U3RhdGVGb3JU
b2tlblByZSh0aGlzLl9sYXN0VG9rZW4sIHRoaXMuX2xhc3RDb250ZW50LCB0b2tlbiwgc3RhdGUs
IGNvbnRlbnQsIGlzQ29tbWVudCk7Ci0KLSAgICAgICAgLy8gU2hvdWxkIHdlIHJlbW92ZSB0aGUg
bGFzdCB3aGl0ZXNwYWNlPwotICAgICAgICBpZiAodGhpcy5fYnVpbGRlci5sYXN0VG9rZW5XYXNX
aGl0ZXNwYWNlICYmIG1vZGUucmVtb3ZlTGFzdFdoaXRlc3BhY2UodGhpcy5fbGFzdFRva2VuLCB0
aGlzLl9sYXN0Q29udGVudCwgdG9rZW4sIHN0YXRlLCBjb250ZW50LCBpc0NvbW1lbnQpKQotICAg
ICAgICAgICAgdGhpcy5fYnVpbGRlci5yZW1vdmVMYXN0V2hpdGVzcGFjZSgpOwotCi0gICAgICAg
IC8vIFNob3VsZCB3ZSByZW1vdmUgdGhlIGxhc3QgbmV3bGluZT8KLSAgICAgICAgaWYgKHRoaXMu
X2J1aWxkZXIubGFzdFRva2VuV2FzTmV3bGluZSAmJiBtb2RlLnJlbW92ZUxhc3ROZXdsaW5lKHRo
aXMuX2xhc3RUb2tlbiwgdGhpcy5fbGFzdENvbnRlbnQsIHRva2VuLCBzdGF0ZSwgY29udGVudCwg
aXNDb21tZW50LCBmaXJzdFRva2VuT25MaW5lKSkKLSAgICAgICAgICAgIHRoaXMuX2J1aWxkZXIu
cmVtb3ZlTGFzdE5ld2xpbmUoKTsKLQotICAgICAgICAvLyBBZGQgd2hpdGVzcGFjZSBhZnRlciB0
aGUgbGFzdCB0b2tlbj8KLSAgICAgICAgaWYgKCF0aGlzLl9idWlsZGVyLmxhc3RUb2tlbldhc1do
aXRlc3BhY2UgJiYgbW9kZS5zaG91bGRIYXZlU3BhY2VBZnRlckxhc3RUb2tlbih0aGlzLl9sYXN0
VG9rZW4sIHRoaXMuX2xhc3RDb250ZW50LCB0b2tlbiwgc3RhdGUsIGNvbnRlbnQsIGlzQ29tbWVu
dCkpCi0gICAgICAgICAgICB0aGlzLl9idWlsZGVyLmFwcGVuZFNwYWNlKCk7Ci0KLSAgICAgICAg
Ly8gQWRkIHdoaXRlc3BhY2UgYmVmb3JlIHRoaXMgdG9rZW4/Ci0gICAgICAgIGlmICghdGhpcy5f
YnVpbGRlci5sYXN0VG9rZW5XYXNXaGl0ZXNwYWNlICYmIG1vZGUuc2hvdWxkSGF2ZVNwYWNlQmVm
b3JlVG9rZW4odGhpcy5fbGFzdFRva2VuLCB0aGlzLl9sYXN0Q29udGVudCwgdG9rZW4sIHN0YXRl
LCBjb250ZW50LCBpc0NvbW1lbnQpKQotICAgICAgICAgICAgdGhpcy5fYnVpbGRlci5hcHBlbmRT
cGFjZSgpOwotCi0gICAgICAgIC8vIFNob3VsZCB3ZSBkZWRlbnQgYmVmb3JlIHRoaXMgdG9rZW4/
Ci0gICAgICAgIHZhciBkZWRlbnRzID0gbW9kZS5kZWRlbnRzQmVmb3JlVG9rZW4odGhpcy5fbGFz
dFRva2VuLCB0aGlzLl9sYXN0Q29udGVudCwgdG9rZW4sIHN0YXRlLCBjb250ZW50LCBpc0NvbW1l
bnQpOwotICAgICAgICB3aGlsZSAoZGVkZW50cy0tID4gMCkKLSAgICAgICAgICAgIHRoaXMuX2J1
aWxkZXIuZGVkZW50KCk7Ci0KLSAgICAgICAgLy8gU2hvdWxkIHdlIGFkZCBhIG5ld2xpbmUgYmVm
b3JlIHRoaXMgdG9rZW4/Ci0gICAgICAgIGlmIChtb2RlLm5ld2xpbmVCZWZvcmVUb2tlbih0aGlz
Ll9sYXN0VG9rZW4sIHRoaXMuX2xhc3RDb250ZW50LCB0b2tlbiwgc3RhdGUsIGNvbnRlbnQsIGlz
Q29tbWVudCkpCi0gICAgICAgICAgICB0aGlzLl9idWlsZGVyLmFwcGVuZE5ld2xpbmUoKTsKLQot
ICAgICAgICAvLyBTaG91bGQgd2UgaW5kZW50IGJlZm9yZSB0aGlzIHRva2VuPwotICAgICAgICBp
ZiAobW9kZS5pbmRlbnRCZWZvcmVUb2tlbih0aGlzLl9sYXN0VG9rZW4sIHRoaXMuX2xhc3RDb250
ZW50LCB0b2tlbiwgc3RhdGUsIGNvbnRlbnQsIGlzQ29tbWVudCkpCi0gICAgICAgICAgICB0aGlz
Ll9idWlsZGVyLmluZGVudCgpOwotCi0gICAgICAgIC8vIEFwcGVuZCB0b2tlbi4KLSAgICAgICAg
dGhpcy5fYnVpbGRlci5hcHBlbmRUb2tlbihjb250ZW50LCBvcmlnaW5hbFBvc2l0aW9uKTsKLQot
ICAgICAgICAvLyBMZXQgdGhlIHByZXR0eSBwcmludGVyIHVwZGF0ZSBhbnkgc3RhdGUgaXQga2Vl
cHMgdHJhY2sgb2YuCi0gICAgICAgIGlmIChtb2RlLm1vZGlmeVN0YXRlRm9yVG9rZW5Qb3N0KQot
ICAgICAgICAgICAgbW9kZS5tb2RpZnlTdGF0ZUZvclRva2VuUG9zdCh0aGlzLl9sYXN0VG9rZW4s
IHRoaXMuX2xhc3RDb250ZW50LCB0b2tlbiwgc3RhdGUsIGNvbnRlbnQsIGlzQ29tbWVudCk7Ci0K
LSAgICAgICAgLy8gU2hvdWxkIHdlIGluZGVudCBvciBkZWRlbnQgYWZ0ZXIgdGhpcyB0b2tlbj8K
LSAgICAgICAgaWYgKCFpc0NvbW1lbnQgJiYgbW9kZS5pbmRlbnRBZnRlclRva2VuKHRoaXMuX2xh
c3RUb2tlbiwgdGhpcy5fbGFzdENvbnRlbnQsIHRva2VuLCBzdGF0ZSwgY29udGVudCwgaXNDb21t
ZW50KSkKLSAgICAgICAgICAgIHRoaXMuX2J1aWxkZXIuaW5kZW50KCk7Ci0KLSAgICAgICAgLy8g
U2hvdWxkIHdlIGFkZCBuZXdsaW5lcyBhZnRlciB0aGlzIHRva2VuPwotICAgICAgICB2YXIgbmV3
bGluZXMgPSBtb2RlLm5ld2xpbmVzQWZ0ZXJUb2tlbih0aGlzLl9sYXN0VG9rZW4sIHRoaXMuX2xh
c3RDb250ZW50LCB0b2tlbiwgc3RhdGUsIGNvbnRlbnQsIGlzQ29tbWVudCk7Ci0gICAgICAgIGlm
IChuZXdsaW5lcykKLSAgICAgICAgICAgIHRoaXMuX2J1aWxkZXIuYXBwZW5kTXVsdGlwbGVOZXds
aW5lcyhuZXdsaW5lcyk7Ci0KLSAgICAgICAgLy8gUmVjb3JkIHRoaXMgdG9rZW4gYXMgdGhlIGxh
c3QgdG9rZW4uCi0gICAgICAgIHRoaXMuX2xhc3RUb2tlbiA9IHRva2VuOwotICAgICAgICB0aGlz
Ll9sYXN0Q29udGVudCA9IGNvbnRlbnQ7Ci0gICAgfQotCi0gICAgX2hhbmRsZUVtcHR5TGluZSgp
Ci0gICAgewotICAgICAgICAvLyBQcmVzZXJ2ZSBvcmlnaW5hbCB3aGl0ZXNwYWNlIG9ubHkgbGlu
ZXMgYnkgYWRkaW5nIGEgbmV3bGluZS4KLSAgICAgICAgLy8gSG93ZXZlciwgZG9uJ3QgZG8gdGhp
cyBpZiB0aGUgYnVpbGRlciBqdXN0IGFkZGVkIG11bHRpcGxlIG5ld2xpbmVzLgotICAgICAgICBp
ZiAoISh0aGlzLl9idWlsZGVyLmxhc3RUb2tlbldhc05ld2xpbmUgJiYgdGhpcy5fYnVpbGRlci5s
YXN0TmV3bGluZUFwcGVuZFdhc011bHRpcGxlKSkKLSAgICAgICAgICAgIHRoaXMuX2J1aWxkZXIu
YXBwZW5kTmV3bGluZSh0cnVlKTsKLSAgICB9Ci0KLSAgICBfaGFuZGxlTGluZUVuZGluZyhvcmln
aW5hbE5ld0xpbmVQb3NpdGlvbikKLSAgICB7Ci0gICAgICAgIC8vIFJlY29yZCB0aGUgb3JpZ2lu
YWwgbGluZSBlbmRpbmcuCi0gICAgICAgIHRoaXMuX2J1aWxkZXIuYWRkT3JpZ2luYWxMaW5lRW5k
aW5nKG9yaWdpbmFsTmV3TGluZVBvc2l0aW9uKTsKLSAgICB9Ci19OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTWFpbi5odG1sIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTWFpbi5odG1sCmluZGV4IDk0ZDE0NGU5ZjQ2Li43ZmY3
MWZiYzE1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
TWFpbi5odG1sCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01haW4u
aHRtbApAQCAtNjI1LDcgKzYyNSw2IEBACiAgICAgPHNjcmlwdCBzcmM9IlZpZXdzL0NsdXN0ZXJD
b250ZW50Vmlldy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlZpZXdzL0NvZGVNaXJy
b3JBZGRpdGlvbnMuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9Db2RlTWly
cm9yRWRpdG9yLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iVmlld3MvQ29kZU1pcnJv
ckZvcm1hdHRlcnMuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9Db2RlTWly
cm9yTG9jYWxPdmVycmlkZVVSTE1vZGUuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJW
aWV3cy9Db2RlTWlycm9yUmVnZXhNb2RlLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0i
Vmlld3MvQ29kZU1pcnJvclRleHRNYXJrZXJzLmpzIj48L3NjcmlwdD4KQEAgLTg3OSw3ICs4Nzgs
NiBAQAogICAgIDxzY3JpcHQgc3JjPSJDb250cm9sbGVycy9EYXRhYmFzZU1hbmFnZXIuanMiPjwv
c2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJDb250cm9sbGVycy9EZWJ1Z2dlck1hbmFnZXIuanMi
Pjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJDb250cm9sbGVycy9EcmFnVG9BZGp1c3RDb250
cm9sbGVyLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iQ29udHJvbGxlcnMvRm9ybWF0
dGVyLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iQ29udHJvbGxlcnMvRm9ybWF0dGVy
U291cmNlTWFwLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iQ29udHJvbGxlcnMvSEFS
QnVpbGRlci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkNvbnRyb2xsZXJzL0hlYXBN
YW5hZ2VyLmpzIj48L3NjcmlwdD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1Rlc3QuaHRtbCBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1Rlc3QuaHRtbAppbmRleCBkMDZjMjliZmNlMy4uYWQ0NzY1YzkxN2IgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Rlc3QuaHRtbAorKysgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9UZXN0Lmh0bWwKQEAgLTI1OCwxMiArMjU4
LDEwIEBACiAgICAgPHNjcmlwdCBzcmM9IkNvbnRyb2xsZXJzL1RpbWVsaW5lTWFuYWdlci5qcyI+
PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkNvbnRyb2xsZXJzL1dvcmtlck1hbmFnZXIuanMi
Pjwvc2NyaXB0PgogCi0gICAgPHNjcmlwdCBzcmM9IkNvbnRyb2xsZXJzL0Zvcm1hdHRlci5qcyI+
PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkNvbnRyb2xsZXJzL1Jlc291cmNlUXVlcnlDb250
cm9sbGVyLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iQ29udHJvbGxlcnMvU2VsZWN0
aW9uQ29udHJvbGxlci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IldvcmtlcnMvRm9y
bWF0dGVyL0Zvcm1hdHRlckNvbnRlbnRCdWlsZGVyLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0
IHNyYz0iVmlld3MvQ29kZU1pcnJvckFkZGl0aW9ucy5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlw
dCBzcmM9IlZpZXdzL0NvZGVNaXJyb3JGb3JtYXR0ZXJzLmpzIj48L3NjcmlwdD4KICAgICA8c2Ny
aXB0IHNyYz0iVmlld3MvRWRpdGluZ1N1cHBvcnQuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQg
c3JjPSJWaWV3cy9WaWV3LmpzIj48L3NjcmlwdD4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29kZU1pcnJvckZvcm1hdHRlcnMuanMgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Db2RlTWlycm9yRm9ybWF0
dGVycy5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGRiYmNjNDJhZTEuLjAwMDAw
MDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0Nv
ZGVNaXJyb3JGb3JtYXR0ZXJzLmpzCisrKyAvZGV2L251bGwKQEAgLTEsNDQ5ICswLDAgQEAKLS8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgot
ICogQ29weXJpZ2h0IChDKSAyMDE1IFRvYmlhcyBSZWlzcyA8dG9iaSt3ZWJraXRAYmFzZWNvZGUu
ZGU+Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgotICovCi0KLS8vIEluIHRoZSBpbnNwZWN0b3IgdG9rZW4gdHlwZXMgaGF2ZSBiZWVu
IG1vZGlmaWVkIHRvIGluY2x1ZGUgZXh0cmEgbW9kZSBpbmZvcm1hdGlvbgotLy8gYWZ0ZXIgdGhl
IGFjdHVhbCB0b2tlbiB0eXBlLiBTbyB3ZSBjYW4ndCBkbyB0b2tlbiA9PT0gImZvbyIuIFNvIGlu
c3RlYWQgd2UgZG8KLS8vIC9cYmZvb1xiLy50ZXN0KHRva2VuKS4KLQotQ29kZU1pcnJvci5leHRl
bmRNb2RlKCJqYXZhc2NyaXB0IiwgewotICAgIHNob3VsZEhhdmVTcGFjZUJlZm9yZVRva2VuOiBm
dW5jdGlvbihsYXN0VG9rZW4sIGxhc3RDb250ZW50LCB0b2tlbiwgc3RhdGUsIGNvbnRlbnQsIGlz
Q29tbWVudCkKLSAgICB7Ci0gICAgICAgIGlmICghdG9rZW4pIHsKLSAgICAgICAgICAgIGlmIChj
b250ZW50ID09PSAiKCIpIC8vIE1vc3Qga2V5d29yZHMgbGlrZSAiaWYgKCIgYnV0IG5vdCAiZnVu
Y3Rpb24oIiBvciAidHlwZW9mKCIuCi0gICAgICAgICAgICAgICAgcmV0dXJuIGxhc3RUb2tlbiAm
JiAvXGJrZXl3b3JkXGIvLnRlc3QobGFzdFRva2VuKSAmJiAobGFzdENvbnRlbnQgIT09ICJmdW5j
dGlvbiIgJiYgbGFzdENvbnRlbnQgIT09ICJ0eXBlb2YiICYmIGxhc3RDb250ZW50ICE9PSAiaW5z
dGFuY2VvZiIpOwotICAgICAgICAgICAgaWYgKGNvbnRlbnQgPT09ICI6IikgLy8gVGVybmFyeS4K
LSAgICAgICAgICAgICAgICByZXR1cm4gc3RhdGUubGV4aWNhbC50eXBlID09PSAic3RhdCIgfHwg
c3RhdGUubGV4aWNhbC50eXBlID09PSAiKSIgfHwgc3RhdGUubGV4aWNhbC50eXBlID09PSAiXSI7
Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoaXND
b21tZW50KQotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICAgICAgaWYgKC9cYm9wZXJh
dG9yXGIvLnRlc3QodG9rZW4pKSB7Ci0gICAgICAgICAgICBpZiAoIWxhc3RUb2tlbiAmJiAoY29u
dGVudCA9PT0gIisiIHx8IGNvbnRlbnQgPT09ICItIiB8fCBjb250ZW50ID09PSAifiIpICYmIChs
YXN0Q29udGVudCAhPT0gIikiICYmIGxhc3RDb250ZW50ICE9PSAiXSIpKSAvLyBQb3NzaWJsZSBV
bmFyeSArLy0uCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgaWYg
KGNvbnRlbnQgPT09ICIhIikgLy8gVW5hcnkgISBzaG91bGQgbm90IGJlIGNvbmZ1c2VkIHdpdGgg
IiE9Ii4KLSAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICByZXR1cm4g
IistLyolJiZ8fCE9PT0rPS09Pj08PT8iLmluZGV4T2YoY29udGVudCkgPj0gMDsgLy8gT3BlcmF0
b3JzLgotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKC9cYmtleXdvcmRcYi8udGVzdCh0b2tlbikp
IHsgLy8gTW9zdCBrZXl3b3JkcyByZXF1aXJlIHNwYWNlcyBiZWZvcmUgdGhlbSwgdW5sZXNzIGEg
J30nIGNhbiBjb21lIGJlZm9yZSBpdC4KLSAgICAgICAgICAgIGlmIChjb250ZW50ID09PSAiZWxz
ZSIgfHwgY29udGVudCA9PT0gImNhdGNoIiB8fCBjb250ZW50ID09PSAiZmluYWxseSIpCi0gICAg
ICAgICAgICAgICAgcmV0dXJuIGxhc3RDb250ZW50ID09PSAifSI7Ci0gICAgICAgICAgICBpZiAo
Y29udGVudCA9PT0gIndoaWxlIiAmJiBsYXN0Q29udGVudCA9PT0gIn0iKQotICAgICAgICAgICAg
ICAgIHJldHVybiBzdGF0ZS5fanNQcmV0dHlQcmludC5sYXN0Q29udGVudEJlZm9yZUJsb2NrID09
PSAiZG8iOwotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB9Ci0KLSAgICAgICAg
cmV0dXJuIGZhbHNlOwotICAgIH0sCi0KLSAgICBzaG91bGRIYXZlU3BhY2VBZnRlckxhc3RUb2tl
bjogZnVuY3Rpb24obGFzdFRva2VuLCBsYXN0Q29udGVudCwgdG9rZW4sIHN0YXRlLCBjb250ZW50
LCBpc0NvbW1lbnQpCi0gICAgewotICAgICAgICBpZiAobGFzdFRva2VuICYmIC9cYmtleXdvcmRc
Yi8udGVzdChsYXN0VG9rZW4pKSB7IC8vIE1vc3Qga2V5d29yZHMgcmVxdWlyZSBzcGFjZXMgYWZ0
ZXIgdGhlbSwgdW5sZXNzIGEgJ3snIG9yICc7JyBjYW4gY29tZSBhZnRlciBpdC4KLSAgICAgICAg
ICAgIGlmIChsYXN0Q29udGVudCA9PT0gImVsc2UiKQotICAgICAgICAgICAgICAgIHJldHVybiB0
cnVlOwotICAgICAgICAgICAgaWYgKGxhc3RDb250ZW50ID09PSAiY2F0Y2giKQotICAgICAgICAg
ICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICAgICAgaWYgKGxhc3RDb250ZW50ID09PSAicmV0
dXJuIikKLSAgICAgICAgICAgICAgICByZXR1cm4gY29udGVudCAhPT0gIjsiOwotICAgICAgICAg
ICAgaWYgKGxhc3RDb250ZW50ID09PSAidGhyb3ciKQotICAgICAgICAgICAgICAgIHJldHVybiB0
cnVlOwotICAgICAgICAgICAgaWYgKGxhc3RDb250ZW50ID09PSAidHJ5IikKLSAgICAgICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgICAgIGlmIChsYXN0Q29udGVudCA9PT0gImZpbmFs
bHkiKQotICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICAgICAgaWYgKGxhc3RD
b250ZW50ID09PSAiZG8iKQotICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKGxhc3RUb2tlbiAmJiAv
XGJjb21tZW50XGIvLnRlc3QobGFzdFRva2VuKSkgLy8gRW1iZWRkZWQgLyogY29tbWVudCAqLy4K
LSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICBpZiAobGFzdENvbnRlbnQgPT09ICIp
IikgLy8gIil7Ii4KLSAgICAgICAgICAgIHJldHVybiBjb250ZW50ID09PSAieyI7Ci0gICAgICAg
IGlmIChsYXN0Q29udGVudCA9PT0gIjsiKSAvLyBJbiBmb3IgbG9vcC4KLSAgICAgICAgICAgIHJl
dHVybiBzdGF0ZS5sZXhpY2FsLnR5cGUgPT09ICIpIjsKLSAgICAgICAgaWYgKGxhc3RDb250ZW50
ID09PSAiISIpIC8vIFVuYXJ5ICEgc2hvdWxkIG5vdCBiZSBjb25mdXNlZCB3aXRoICIhPSIuCi0g
ICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICAgICAgLy8gSWYgdGhpcyB1bmFyeSBvcGVy
YXRvciBkaWQgbm90IGhhdmUgYSBsZWFkaW5nIGV4cHJlc3Npb24gaXQgaXMgcHJvYmFibHkgdW5h
cnkuCi0gICAgICAgIGlmICgobGFzdENvbnRlbnQgPT09ICIrIiB8fCBsYXN0Q29udGVudCA9PT0g
Ii0iIHx8IGxhc3RDb250ZW50ID09PSAifiIpICYmICFzdGF0ZS5fanNQcmV0dHlQcmludC51bmFy
eU9wZXJhdG9ySGFkTGVhZGluZ0V4cHIpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAg
ICAgICAgcmV0dXJuICIsKy0vKiUmJnx8OiE9PT0rPS09Pj08PT8iLmluZGV4T2YobGFzdENvbnRl
bnQpID49IDA7IC8vIE9wZXJhdG9ycy4KLSAgICB9LAotCi0gICAgbmV3bGluZXNBZnRlclRva2Vu
OiBmdW5jdGlvbihsYXN0VG9rZW4sIGxhc3RDb250ZW50LCB0b2tlbiwgc3RhdGUsIGNvbnRlbnQs
IGlzQ29tbWVudCkKLSAgICB7Ci0gICAgICAgIGlmICghdG9rZW4pIHsKLSAgICAgICAgICAgIGlm
IChjb250ZW50ID09PSAiLCIpIC8vIEluIG9iamVjdCBsaXRlcmFscywgbGlrZSBpbiB7YToxLGI6
Mn0sIGJ1dCBub3QgaW4gcGFyYW0gbGlzdHMgb3IgdmFyZGVmIGxpc3RzLgotICAgICAgICAgICAg
ICAgIHJldHVybiBzdGF0ZS5sZXhpY2FsLnR5cGUgPT09ICJ9IiA/IDEgOiAwOwotICAgICAgICAg
ICAgaWYgKGNvbnRlbnQgPT09ICI7IikgLy8gRXZlcnl3aGVyZSBleGNlcHQgaW4gZm9yIGxvb3Ag
Y29uZGl0aW9ucy4KLSAgICAgICAgICAgICAgICByZXR1cm4gc3RhdGUubGV4aWNhbC50eXBlICE9
PSAiKSIgPyAxIDogMDsKLSAgICAgICAgICAgIGlmIChjb250ZW50ID09PSAiOiIgJiYgc3RhdGUu
bGV4aWNhbC50eXBlID09PSAifSIgJiYgc3RhdGUubGV4aWNhbC5wcmV2ICYmIHN0YXRlLmxleGlj
YWwucHJldi50eXBlID09PSAiZm9ybSIpIC8vIFN3aXRjaCBjYXNlL2RlZmF1bHQuCi0gICAgICAg
ICAgICAgICAgcmV0dXJuIDE7Ci0gICAgICAgICAgICByZXR1cm4gY29udGVudC5sZW5ndGggPT09
IDEgJiYgInt9Ii5pbmRleE9mKGNvbnRlbnQpID49IDAgPyAxIDogMDsgLy8gQWZ0ZXIgYnJhY2Vz
LgotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKGlzQ29tbWVudCkKLSAgICAgICAgICAgIHJldHVy
biAxOwotCi0gICAgICAgIHJldHVybiAwOwotICAgIH0sCi0KLSAgICByZW1vdmVMYXN0V2hpdGVz
cGFjZTogZnVuY3Rpb24obGFzdFRva2VuLCBsYXN0Q29udGVudCwgdG9rZW4sIHN0YXRlLCBjb250
ZW50LCBpc0NvbW1lbnQpCi0gICAgewotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfSwKLQot
ICAgIHJlbW92ZUxhc3ROZXdsaW5lOiBmdW5jdGlvbihsYXN0VG9rZW4sIGxhc3RDb250ZW50LCB0
b2tlbiwgc3RhdGUsIGNvbnRlbnQsIGlzQ29tbWVudCwgZmlyc3RUb2tlbk9uTGluZSkKLSAgICB7
Ci0gICAgICAgIGlmICghdG9rZW4pIHsKLSAgICAgICAgICAgIGlmIChjb250ZW50ID09PSAifSIp
IC8vICJ7fSIuCi0gICAgICAgICAgICAgICAgcmV0dXJuIGxhc3RDb250ZW50ID09PSAieyI7Ci0g
ICAgICAgICAgICBpZiAoY29udGVudCA9PT0gIjsiKSAvLyAieCA9IHt9OyIgb3IgIjs7Ii4KLSAg
ICAgICAgICAgICAgICByZXR1cm4gIn07Ii5pbmRleE9mKGxhc3RDb250ZW50KSA+PSAwOwotICAg
ICAgICAgICAgaWYgKGNvbnRlbnQgPT09ICI6IikgLy8gVGVybmFyeS4KLSAgICAgICAgICAgICAg
ICByZXR1cm4gbGFzdENvbnRlbnQgPT09ICJ9IiAmJiAoc3RhdGUubGV4aWNhbC50eXBlID09PSAi
c3RhdCIgfHwgc3RhdGUubGV4aWNhbC50eXBlID09PSAiKSIgfHwgc3RhdGUubGV4aWNhbC50eXBl
ID09PSAiXSIpOwotICAgICAgICAgICAgaWYgKCIsKCkuIi5pbmRleE9mKGNvbnRlbnQpID49IDAp
IC8vICJ9KSIsICJ9LmJpbmQiLCAiZnVuY3Rpb24oKSB7IC4uLiB9KCkiLCBvciAifSwgZmFsc2Up
Ii4KLSAgICAgICAgICAgICAgICByZXR1cm4gbGFzdENvbnRlbnQgPT09ICJ9IjsKLSAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQotCi0gICAgICAgIGlmIChpc0NvbW1lbnQpIHsg
Ly8gQ29tbWVudCBhZnRlciBzZW1pY29sb24uCi0gICAgICAgICAgICBpZiAoIWZpcnN0VG9rZW5P
bkxpbmUgJiYgbGFzdENvbnRlbnQgPT09ICI7IikKLSAgICAgICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQotCi0gICAgICAgIGlmICgv
XGJrZXl3b3JkXGIvLnRlc3QodG9rZW4pKSB7Ci0gICAgICAgICAgICBpZiAoY29udGVudCA9PT0g
ImVsc2UiIHx8IGNvbnRlbnQgPT09ICJjYXRjaCIgfHwgY29udGVudCA9PT0gImZpbmFsbHkiKSAv
LyAifSBlbHNlIiwgIn0gY2F0Y2giLCAifSBmaW5hbGx5IgotICAgICAgICAgICAgICAgIHJldHVy
biBsYXN0Q29udGVudCA9PT0gIn0iOwotICAgICAgICAgICAgaWYgKGNvbnRlbnQgPT09ICJ3aGls
ZSIgJiYgbGFzdENvbnRlbnQgPT09ICJ9IikKLSAgICAgICAgICAgICAgICByZXR1cm4gc3RhdGUu
X2pzUHJldHR5UHJpbnQubGFzdENvbnRlbnRCZWZvcmVCbG9jayA9PT0gImRvIjsKLSAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQotCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAg
ICB9LAotCi0gICAgaW5kZW50QWZ0ZXJUb2tlbjogZnVuY3Rpb24obGFzdFRva2VuLCBsYXN0Q29u
dGVudCwgdG9rZW4sIHN0YXRlLCBjb250ZW50LCBpc0NvbW1lbnQpCi0gICAgewotICAgICAgICBp
ZiAoY29udGVudCA9PT0gInsiKQotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICAgICAg
aWYgKGNvbnRlbnQgPT09ICJjYXNlIiB8fCBjb250ZW50ID09PSAiZGVmYXVsdCIpCi0gICAgICAg
ICAgICByZXR1cm4gc3RhdGUubGV4aWNhbC50eXBlID09PSAifSIgJiYgc3RhdGUubGV4aWNhbC5w
cmV2ICYmIHN0YXRlLmxleGljYWwucHJldi50eXBlID09PSAiZm9ybSI7IC8vIFN3aXRjaCBjYXNl
L2RlZmF1bHQuCi0KLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0sCi0KLSAgICBuZXdsaW5l
QmVmb3JlVG9rZW46IGZ1bmN0aW9uKGxhc3RUb2tlbiwgbGFzdENvbnRlbnQsIHRva2VuLCBzdGF0
ZSwgY29udGVudCwgaXNDb21tZW50KQotICAgIHsKLSAgICAgICAgaWYgKHN0YXRlLl9qc1ByZXR0
eVByaW50LnNob3VsZEluZGVudCkKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotCi0gICAgICAg
IHJldHVybiBjb250ZW50ID09PSAifSIgJiYgbGFzdENvbnRlbnQgIT09ICJ7IjsgLy8gInt9Igot
ICAgIH0sCi0KLSAgICBpbmRlbnRCZWZvcmVUb2tlbjogZnVuY3Rpb24obGFzdFRva2VuLCBsYXN0
Q29udGVudCwgdG9rZW4sIHN0YXRlLCBjb250ZW50LCBpc0NvbW1lbnQpCi0gICAgewotICAgICAg
ICBpZiAoc3RhdGUuX2pzUHJldHR5UHJpbnQuc2hvdWxkSW5kZW50KQotICAgICAgICAgICAgcmV0
dXJuIHRydWU7Ci0KLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0sCi0KLSAgICBkZWRlbnRz
QmVmb3JlVG9rZW46IGZ1bmN0aW9uKGxhc3RUb2tlbiwgbGFzdENvbnRlbnQsIHRva2VuLCBzdGF0
ZSwgY29udGVudCwgaXNDb21tZW50KQotICAgIHsKLSAgICAgICAgdmFyIGRlZGVudCA9IDA7Ci0K
LSAgICAgICAgaWYgKHN0YXRlLl9qc1ByZXR0eVByaW50LnNob3VsZERlZGVudCkKLSAgICAgICAg
ICAgIGRlZGVudCArPSBzdGF0ZS5fanNQcmV0dHlQcmludC5kZWRlbnRTaXplOwotCi0gICAgICAg
IGlmICghdG9rZW4gJiYgY29udGVudCA9PT0gIn0iKQotICAgICAgICAgICAgZGVkZW50ICs9IDE7
Ci0gICAgICAgIGVsc2UgaWYgKHRva2VuICYmIC9cYmtleXdvcmRcYi8udGVzdCh0b2tlbikgJiYg
KGNvbnRlbnQgPT09ICJjYXNlIiB8fCBjb250ZW50ID09PSAiZGVmYXVsdCIpKQotICAgICAgICAg
ICAgZGVkZW50ICs9IDE7Ci0KLSAgICAgICAgcmV0dXJuIGRlZGVudDsKLSAgICB9LAotCi0gICAg
bW9kaWZ5U3RhdGVGb3JUb2tlblByZTogZnVuY3Rpb24obGFzdFRva2VuLCBsYXN0Q29udGVudCwg
dG9rZW4sIHN0YXRlLCBjb250ZW50LCBpc0NvbW1lbnQpCi0gICAgewotICAgICAgICBpZiAoIXN0
YXRlLl9qc1ByZXR0eVByaW50KSB7Ci0gICAgICAgICAgICBzdGF0ZS5fanNQcmV0dHlQcmludCA9
IHsKLSAgICAgICAgICAgICAgICBpbmRlbnRDb3VudDogMCwgICAgICAgLy8gSG93IGZhciBoYXZl
IHdlIGluZGVudGVkIGJlY2F1c2Ugb2Ygc2luZ2xlIHN0YXRlbWVudCBibG9ja3MuCi0gICAgICAg
ICAgICAgICAgc2hvdWxkSW5kZW50OiBmYWxzZSwgIC8vIFNpZ25hbCB3ZSBzaG91bGQgaW5kZW50
IG9uIGVudGVyaW5nIGEgc2luZ2xlIHN0YXRlbWVudCBibG9jay4KLSAgICAgICAgICAgICAgICBz
aG91bGREZWRlbnQ6IGZhbHNlLCAgLy8gU2lnbmFsIHdlIHNob3VsZCBkZWRlbnQgb24gbGVhdmlu
ZyBhIHNpbmdsZSBzdGF0ZW1lbnQgYmxvY2suCi0gICAgICAgICAgICAgICAgZGVkZW50U2l6ZTog
MCwgICAgICAgIC8vIEhvdyBmYXIgd2Ugc2hvdWxkIGRlZGVudCB3aGVuIGxlYXZpbmcgYSBzaW5n
bGUgc3RhdGVtZW50IGJsb2NrLgotICAgICAgICAgICAgICAgIGxhc3RJZkluZGVudENvdW50OiAw
LCAvLyBLZWVwIHRyYWNrIG9mIHRoZSBpbmRlbnQgdGhlIGxhc3QgdGltZSB3ZSBzYXcgYW4gaWYg
d2l0aG91dCBicmFjZXMuCi0gICAgICAgICAgICAgICAgb3BlbkJyYWNlU3RhcnRNYXJrZXJzOiBb
XSwgIC8vIEtlZXAgdHJhY2sgb2Ygbm9uLXNpbmdsZSBzdGF0ZW1lbnQgYmxvY2tzLgotICAgICAg
ICAgICAgICAgIG9wZW5CcmFjZVRyYWNraW5nQ291bnQ6IC0xLCAvLyBLZWVwIHRyYWNrIG9mICJ7
IiBhbmQgIn0iIGluIG5vbi1zaW5nbGUgc3RhdGVtZW50IGJsb2Nrcy4KLSAgICAgICAgICAgICAg
ICB1bmFyeU9wZXJhdG9ySGFkTGVhZGluZ0V4cHI6IGZhbHNlLCAvLyBUcnkgdG8gZGV0ZWN0IGlm
IGEgdW5hcnkgb3BlcmF0b3IgaGFkIGEgbGVhZGluZyBleHByZXNzaW9uIGFuZCB0aGVyZWZvcmUg
bWF5IGJlIGJpbmFyeS4KLSAgICAgICAgICAgICAgICBsYXN0Q29udGVudEJlZm9yZUJsb2NrOiB1
bmRlZmluZWQsIC8vIFVzZWQgdG8gZGV0ZWN0IGlmIHRoaXMgd2FzIGEgZG8vd2hpbGUuCi0gICAg
ICAgICAgICB9OwotICAgICAgICB9Ci0KLSAgICAgICAgLy8gLSBFbnRlcmluZzoKLSAgICAgICAg
Ly8gICAtIFByZWNvbmRpdGlvbnM6Ci0gICAgICAgIC8vICAgICAtIGxhc3QgbGV4aWNhbCB3YXMg
YSAiZm9ybSIgd2UgaGF2ZW4ndCBlbmNvdW50ZXJlZCBiZWZvcmUKLSAgICAgICAgLy8gICAgIC0g
bGFzdCBjb250ZW50IHdhcyAiKSIsICJlbHNlIiwgb3IgImRvIgotICAgICAgICAvLyAgICAgLSBj
dXJyZW50IGxleGljYWwgaXMgbm90ICIpIiAoaW4gYW4gZXhwcmVzc2lvbiBvciBjb25kaXRpb24p
Ci0gICAgICAgIC8vICAgLSBDYXNlczoKLSAgICAgICAgLy8gICAgIDEuICJ7IgotICAgICAgICAv
LyAgICAgICAtIGluZGVudCArMAotICAgICAgICAvLyAgICAgICAtIHNhdmUgdGhpcyBpbmRlbnQg
c2l6ZSBzbyB3aGVuIHdlIGVuY291bnRlciB0aGUgIn0iIHdlIGtub3cgaG93IGZhciB0byBkZWRl
bnQKLSAgICAgICAgLy8gICAgIDIuICJlbHNlIGlmIgotICAgICAgICAvLyAgICAgICAtIGluZGVu
dCArMCBhbmQgZG8gbm90IHNpZ25hbCB0byBhZGQgYSBuZXdsaW5lIGFuZCBpbmRlbnQKLSAgICAg
ICAgLy8gICAgICAgLSBtYXJrIHRoZSBsYXN0IGlmIGxvY2F0aW9uIHNvIHdoZW4gd2UgZW5jb3Vu
dGVyIGFuICJlbHNlIiB3ZSBrbm93IGhvdyBmYXIgdG8gZGVkZW50Ci0gICAgICAgIC8vICAgICAg
IC0gbWFyayB0aGUgbGV4aWNhbCBzdGF0ZSBzbyB3ZSBrbm93IHdlIGFyZSBpbnNpZGUgYSBzaW5n
bGUgc3RhdGVtZW50IGJsb2NrCi0gICAgICAgIC8vICAgICAzLiBUb2tlbiB3aXRob3V0IGJyYWNl
LgotICAgICAgICAvLyAgICAgICAtIGluZGVudCArMSBhbmQgc2lnbmFsIHRvIGFkZCBhIG5ld2xp
bmUgYW5kIGluZGVudAotICAgICAgICAvLyAgICAgICAtIG1hcmsgdGhlIGxhc3QgaWYgbG9jYXRp
b24gc28gd2hlbiB3ZSBlbmNvdW50ZXIgYW4gImVsc2UiIHdlIGtub3cgaG93IGZhciB0byBkZWRl
bnQKLSAgICAgICAgLy8gICAgICAgLSBtYXJrIHRoZSBsZXhpY2FsIHN0YXRlIHNvIHdlIGtub3cg
d2UgYXJlIGluc2lkZSBhIHNpbmdsZSBzdGF0ZW1lbnQgYmxvY2sKLSAgICAgICAgaWYgKCFpc0Nv
bW1lbnQgJiYgc3RhdGUubGV4aWNhbC5wcmV2ICYmIHN0YXRlLmxleGljYWwucHJldi50eXBlID09
PSAiZm9ybSIgJiYgIXN0YXRlLmxleGljYWwucHJldi5fanNQcmV0dHlQcmludE1hcmtlciAmJiAo
bGFzdENvbnRlbnQgPT09ICIpIiB8fCBsYXN0Q29udGVudCA9PT0gImVsc2UiIHx8IGxhc3RDb250
ZW50ID09PSAiZG8iKSAmJiAoc3RhdGUubGV4aWNhbC50eXBlICE9PSAiKSIpKSB7Ci0gICAgICAg
ICAgICBpZiAoY29udGVudCA9PT0gInsiKSB7Ci0gICAgICAgICAgICAgICAgLy8gU2F2ZSB0aGUg
c3RhdGUgYXQgdGhlIG9wZW5pbmcgYnJhY2Ugc28gd2UgY2FuIHJldHVybiB0byBpdCB3aGVuIHdl
IHNlZSAifSIuCi0gICAgICAgICAgICAgICAgdmFyIHNhdmVkU3RhdGUgPSB7aW5kZW50Q291bnQ6
IHN0YXRlLl9qc1ByZXR0eVByaW50LmluZGVudENvdW50LCBvcGVuQnJhY2VUcmFja2luZ0NvdW50
OiBzdGF0ZS5fanNQcmV0dHlQcmludC5vcGVuQnJhY2VUcmFja2luZ0NvdW50LCBsYXN0Q29udGVu
dEJlZm9yZUJsb2NrOiBsYXN0Q29udGVudH07Ci0gICAgICAgICAgICAgICAgc3RhdGUuX2pzUHJl
dHR5UHJpbnQub3BlbkJyYWNlU3RhcnRNYXJrZXJzLnB1c2goc2F2ZWRTdGF0ZSk7Ci0gICAgICAg
ICAgICAgICAgc3RhdGUuX2pzUHJldHR5UHJpbnQub3BlbkJyYWNlVHJhY2tpbmdDb3VudCA9IDE7
Ci0gICAgICAgICAgICB9IGVsc2UgaWYgKHN0YXRlLmxleGljYWwudHlwZSAhPT0gIn0iKSB7Ci0g
ICAgICAgICAgICAgICAgLy8gSW5jcmVhc2UgdGhlIGluZGVudCBjb3VudC4gU2lnbmFsIGZvciBh
IG5ld2xpbmUgYW5kIGluZGVudCBpZiBuZWVkZWQuCi0gICAgICAgICAgICAgICAgaWYgKCEobGFz
dENvbnRlbnQgPT09ICJlbHNlIiAmJiBjb250ZW50ID09PSAiaWYiKSkgewotICAgICAgICAgICAg
ICAgICAgICBzdGF0ZS5fanNQcmV0dHlQcmludC5pbmRlbnRDb3VudCsrOwotICAgICAgICAgICAg
ICAgICAgICBzdGF0ZS5fanNQcmV0dHlQcmludC5zaG91bGRJbmRlbnQgPSB0cnVlOwotICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBzdGF0ZS5sZXhpY2FsLnByZXYuX2pzUHJldHR5
UHJpbnRNYXJrZXIgPSB0cnVlOwotICAgICAgICAgICAgICAgIGlmIChzdGF0ZS5fanNQcmV0dHlQ
cmludC5lbnRlcmluZ0lmKQotICAgICAgICAgICAgICAgICAgICBzdGF0ZS5fanNQcmV0dHlQcmlu
dC5sYXN0SWZJbmRlbnRDb3VudCA9IHN0YXRlLl9qc1ByZXR0eVByaW50LmluZGVudENvdW50IC0g
MTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIC8vIC0gTGVhdmluZzoKLSAg
ICAgICAgLy8gICAtIFByZWNvbmRpdGlvbnM6Ci0gICAgICAgIC8vICAgICAtIGlnbm9yZSAiOyIs
IHdhaXQgZm9yIHRoZSBuZXh0IHRva2VuIGluc3RlYWQuCi0gICAgICAgIC8vICAgLSBDYXNlczoK
LSAgICAgICAgLy8gICAgIDEuICJlbHNlIgotICAgICAgICAvLyAgICAgICAtIGRlZGVudCB0byB0
aGUgbGFzdCAiaWYiCi0gICAgICAgIC8vICAgICAyLiAifSIgYW5kIGFsbCBicmFjZXMgd2Ugc2F3
IGFyZSBiYWxhbmNlZAotICAgICAgICAvLyAgICAgICAtIGRlZGVudCB0byB0aGUgbGFzdCAieyIK
LSAgICAgICAgLy8gICAgIDMuIFRva2VuIHdpdGhvdXQgYSBtYXJrZXIgb24gdGhlIHN0YWNrCi0g
ICAgICAgIC8vICAgICAgIC0gZGVkZW50IGFsbCB0aGUgd2F5Ci0gICAgICAgIGVsc2UgewotICAg
ICAgICAgICAgY29uc29sZS5hc3NlcnQoIXN0YXRlLl9qc1ByZXR0eVByaW50LnNob3VsZERlZGVu
dCk7Ci0gICAgICAgICAgICBjb25zb2xlLmFzc2VydCghc3RhdGUuX2pzUHJldHR5UHJpbnQuZGVk
ZW50U2l6ZSk7Ci0KLSAgICAgICAgICAgIC8vIFRyYWNrICJ7IiBhbmQgIn0iIHRvIGtub3cgd2hl
biB0aGUgIn0iIGlzIHJlYWxseSBjbG9zaW5nIGEgYmxvY2suCi0gICAgICAgICAgICBpZiAoIWlz
Q29tbWVudCkgewotICAgICAgICAgICAgICAgIGlmIChjb250ZW50ID09PSAieyIpCi0gICAgICAg
ICAgICAgICAgICAgIHN0YXRlLl9qc1ByZXR0eVByaW50Lm9wZW5CcmFjZVRyYWNraW5nQ291bnQr
KzsKLSAgICAgICAgICAgICAgICBlbHNlIGlmIChjb250ZW50ID09PSAifSIpCi0gICAgICAgICAg
ICAgICAgICAgIHN0YXRlLl9qc1ByZXR0eVByaW50Lm9wZW5CcmFjZVRyYWNraW5nQ291bnQtLTsK
LSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgaWYgKGNvbnRlbnQgPT09ICI7IikgewotICAg
ICAgICAgICAgICAgIC8vIElnbm9yZS4KLSAgICAgICAgICAgIH0gZWxzZSBpZiAoY29udGVudCA9
PT0gImVsc2UiKSB7Ci0gICAgICAgICAgICAgICAgLy8gRGVkZW50IHRvIHRoZSBsYXN0ICJpZiIu
Ci0gICAgICAgICAgICAgICAgaWYgKGxhc3RDb250ZW50ICE9PSAifSIpIHsKLSAgICAgICAgICAg
ICAgICAgICAgc3RhdGUuX2pzUHJldHR5UHJpbnQuc2hvdWxkRGVkZW50ID0gdHJ1ZTsKLSAgICAg
ICAgICAgICAgICAgICAgc3RhdGUuX2pzUHJldHR5UHJpbnQuZGVkZW50U2l6ZSA9IHN0YXRlLl9q
c1ByZXR0eVByaW50LmluZGVudENvdW50IC0gc3RhdGUuX2pzUHJldHR5UHJpbnQubGFzdElmSW5k
ZW50Q291bnQ7Ci0gICAgICAgICAgICAgICAgICAgIHN0YXRlLl9qc1ByZXR0eVByaW50Lmxhc3RJ
ZkluZGVudENvdW50ID0gMDsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2Ug
aWYgKGNvbnRlbnQgPT09ICJ9IiAmJiAhc3RhdGUuX2pzUHJldHR5UHJpbnQub3BlbkJyYWNlVHJh
Y2tpbmdDb3VudCAmJiBzdGF0ZS5fanNQcmV0dHlQcmludC5vcGVuQnJhY2VTdGFydE1hcmtlcnMu
bGVuZ3RoKSB7Ci0gICAgICAgICAgICAgICAgLy8gRGVkZW50IHRvIHRoZSBsYXN0ICJ7Ii4KLSAg
ICAgICAgICAgICAgICB2YXIgc2F2ZWRTdGF0ZSA9IHN0YXRlLl9qc1ByZXR0eVByaW50Lm9wZW5C
cmFjZVN0YXJ0TWFya2Vycy5wb3AoKTsKLSAgICAgICAgICAgICAgICBzdGF0ZS5fanNQcmV0dHlQ
cmludC5zaG91bGREZWRlbnQgPSB0cnVlOwotICAgICAgICAgICAgICAgIHN0YXRlLl9qc1ByZXR0
eVByaW50LmRlZGVudFNpemUgPSBzdGF0ZS5fanNQcmV0dHlQcmludC5pbmRlbnRDb3VudCAtIHNh
dmVkU3RhdGUuaW5kZW50Q291bnQ7Ci0gICAgICAgICAgICAgICAgc3RhdGUuX2pzUHJldHR5UHJp
bnQub3BlbkJyYWNlVHJhY2tpbmdDb3VudCA9IHNhdmVkU3RhdGUub3BlbkJyYWNlVHJhY2tpbmdD
b3VudDsKLSAgICAgICAgICAgICAgICBzdGF0ZS5fanNQcmV0dHlQcmludC5sYXN0Q29udGVudEJl
Zm9yZUJsb2NrID0gc2F2ZWRTdGF0ZS5sYXN0Q29udGVudEJlZm9yZUJsb2NrOwotICAgICAgICAg
ICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAvLyBEZWRlbnQgYWxsIHRoZSB3YXkuCi0gICAg
ICAgICAgICAgICAgdmFyIHNob3VsZERlZGVudCA9IHRydWU7Ci0gICAgICAgICAgICAgICAgdmFy
IGxleGljYWwgPSBzdGF0ZS5sZXhpY2FsLnByZXY7Ci0gICAgICAgICAgICAgICAgd2hpbGUgKGxl
eGljYWwpIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGxleGljYWwuX2pzUHJldHR5UHJpbnRN
YXJrZXIpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHNob3VsZERlZGVudCA9IGZhbHNlOwot
ICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgICAgICAgICAgbGV4aWNhbCA9IGxleGljYWwucHJldjsKLSAgICAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICAgICAgaWYgKHNob3VsZERlZGVudCkgewotICAgICAgICAgICAgICAg
ICAgICBzdGF0ZS5fanNQcmV0dHlQcmludC5zaG91bGREZWRlbnQgPSB0cnVlOwotICAgICAgICAg
ICAgICAgICAgICBzdGF0ZS5fanNQcmV0dHlQcmludC5kZWRlbnRTaXplID0gc3RhdGUuX2pzUHJl
dHR5UHJpbnQuaW5kZW50Q291bnQ7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQot
ICAgICAgICB9Ci0KLSAgICAgICAgLy8gU2lnbmFsIGZvciB3aGVuIHdlIHdpbGwgYmUgZW50ZXJp
bmcgYW4gaWYuCi0gICAgICAgIGlmICh0b2tlbiAmJiBzdGF0ZS5sZXhpY2FsLnR5cGUgPT09ICJm
b3JtIiAmJiBzdGF0ZS5sZXhpY2FsLnByZXYgJiYgc3RhdGUubGV4aWNhbC5wcmV2ICE9PSAiZm9y
bSIgJiYgL1xia2V5d29yZFxiLy50ZXN0KHRva2VuKSkKLSAgICAgICAgICAgIHN0YXRlLl9qc1By
ZXR0eVByaW50LmVudGVyaW5nSWYgPSBjb250ZW50ID09PSAiaWYiOwotICAgIH0sCi0KLSAgICBt
b2RpZnlTdGF0ZUZvclRva2VuUG9zdDogZnVuY3Rpb24obGFzdFRva2VuLCBsYXN0Q29udGVudCwg
dG9rZW4sIHN0YXRlLCBjb250ZW50LCBpc0NvbW1lbnQpCi0gICAgewotICAgICAgICBpZiAoc3Rh
dGUuX2pzUHJldHR5UHJpbnQuc2hvdWxkSW5kZW50KQotICAgICAgICAgICAgc3RhdGUuX2pzUHJl
dHR5UHJpbnQuc2hvdWxkSW5kZW50ID0gZmFsc2U7Ci0KLSAgICAgICAgaWYgKHN0YXRlLl9qc1By
ZXR0eVByaW50LnNob3VsZERlZGVudCkgewotICAgICAgICAgICAgc3RhdGUuX2pzUHJldHR5UHJp
bnQuaW5kZW50Q291bnQgLT0gc3RhdGUuX2pzUHJldHR5UHJpbnQuZGVkZW50U2l6ZTsKLSAgICAg
ICAgICAgIHN0YXRlLl9qc1ByZXR0eVByaW50LmRlZGVudFNpemUgPSAwOwotICAgICAgICAgICAg
c3RhdGUuX2pzUHJldHR5UHJpbnQuc2hvdWxkRGVkZW50ID0gZmFsc2U7Ci0gICAgICAgIH0KLQot
ICAgICAgICBpZiAoKGNvbnRlbnQgPT09ICIrIiB8fCBjb250ZW50ID09PSAiLSIgfHwgY29udGVu
dCA9PT0gIn4iKSAmJiAobGFzdENvbnRlbnQgPT09ICIpIiB8fCBsYXN0Q29udGVudCA9PT0gIl0i
IHx8IC9cYig/OnZhcmlhYmxlfG51bWJlcilcYi8udGVzdChsYXN0VG9rZW4pKSkKLSAgICAgICAg
ICAgIHN0YXRlLl9qc1ByZXR0eVByaW50LnVuYXJ5T3BlcmF0b3JIYWRMZWFkaW5nRXhwciA9IHRy
dWU7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHN0YXRlLl9qc1ByZXR0eVByaW50LnVuYXJ5
T3BlcmF0b3JIYWRMZWFkaW5nRXhwciA9IGZhbHNlOwotICAgIH0KLX0pOwotCi1Db2RlTWlycm9y
LmV4dGVuZE1vZGUoImNzcyIsIHsKLSAgICBzaG91bGRIYXZlU3BhY2VCZWZvcmVUb2tlbjogZnVu
Y3Rpb24obGFzdFRva2VuLCBsYXN0Q29udGVudCwgdG9rZW4sIHN0YXRlLCBjb250ZW50LCBpc0Nv
bW1lbnQpCi0gICAgewotICAgICAgICBpZiAoIXRva2VuKSB7Ci0gICAgICAgICAgICBpZiAoY29u
dGVudCA9PT0gInsiKQotICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICAgICAg
cmV0dXJuICI+K34tKi8iLmluZGV4T2YoY29udGVudCkgPj0gMDsgLy8gY2FsYygpIGV4cHJlc3Np
b24gb3IgY2hpbGQvc2libGluZyBzZWxlY3RvcnMKLSAgICAgICAgfQotCi0gICAgICAgIGlmIChp
c0NvbW1lbnQpCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLQotICAgICAgICBpZiAoL1xia2V5
d29yZFxiLy50ZXN0KHRva2VuKSkgewotICAgICAgICAgICAgaWYgKGNvbnRlbnQuY2hhckF0KDAp
ID09PSAiISIpIC8vICIhaW1wb3J0YW50Ii4KLSAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
LSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQotCi0gICAgICAgIHJldHVybiBm
YWxzZTsKLSAgICB9LAotCi0gICAgc2hvdWxkSGF2ZVNwYWNlQWZ0ZXJMYXN0VG9rZW46IGZ1bmN0
aW9uKGxhc3RUb2tlbiwgbGFzdENvbnRlbnQsIHRva2VuLCBzdGF0ZSwgY29udGVudCwgaXNDb21t
ZW50KQotICAgIHsKLSAgICAgICAgaWYgKCFsYXN0VG9rZW4pIHsKLSAgICAgICAgICAgIGlmIChs
YXN0Q29udGVudCA9PT0gIiwiKQotICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAg
ICAgICAgaWYgKGxhc3RDb250ZW50ID09PSAiOiIpIC8vIFNwYWNlIGluICJwcm9wOiB2YWx1ZSIg
YnV0IG5vdCBpbiBhIHNlbGVjdG9ycyAiYTpsaW5rIiBvciAiZGl2OjphZnRlciIgb3IgbWVkaWEg
cXVlcmllcyAiKG1heC1kZXZpY2Utd2lkdGg6NDgwcHgpIi4KLSAgICAgICAgICAgICAgICByZXR1
cm4gc3RhdGUuc3RhdGUgPT09ICJwcm9wIjsKLSAgICAgICAgICAgIGlmIChsYXN0Q29udGVudCA9
PT0gIikiICYmIChjb250ZW50ICE9PSAiKSIgJiYgY29udGVudCAhPT0gIiwiKSkgewotICAgICAg
ICAgICAgICAgIGlmICgvXGJudW1iZXJcYi8udGVzdCh0b2tlbikpIC8vIGxpbmVhci1ncmFkaWVu
dChyZ2IoLi4uKTAlLHJnYiguLi4pMTAwJSkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRy
dWU7Ci0gICAgICAgICAgICAgICAgaWYgKHN0YXRlLnN0YXRlID09PSAicHJvcCIpIC8vIC13ZWJr
aXQtdHJhbnNmb3JtOnJvdGF0ZSguLi4pdHJhbnNsYXRlKC4uLik7Ci0gICAgICAgICAgICAgICAg
ICAgIHJldHVybiB0cnVlOwotICAgICAgICAgICAgICAgIGlmIChzdGF0ZS5zdGF0ZSA9PT0gIm1l
ZGlhIiB8fCBzdGF0ZS5zdGF0ZSA9PT0gImF0QmxvY2tfcGFyZW5zIikgLy8gU3BhY2UgaW4gIm5v
dChmb28pYW5kIiBidXQgbm90IGF0IHRoZSBlbmQgb2YgIm5vdChub3QoZm9vKSkiCi0gICAgICAg
ICAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsg
Ly8gY29sb3I6IHJnYiguLi4pOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgcmV0dXJuICI+
K34tKi8iLmluZGV4T2YobGFzdENvbnRlbnQpID49IDA7IC8vIGNhbGMoKSBleHByZXNzaW9uIG9y
IGNoaWxkL3NpYmxpbmcgc2VsZWN0b3JzCi0gICAgICAgIH0KLQotICAgICAgICBpZiAoL1xiY29t
bWVudFxiLy50ZXN0KGxhc3RUb2tlbikpCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLQotICAg
ICAgICBpZiAoL1xia2V5d29yZFxiLy50ZXN0KGxhc3RUb2tlbikpIC8vIG1lZGlhLXF1ZXJ5IGtl
eXdvcmRzCi0gICAgICAgICAgICByZXR1cm4gc3RhdGUuc3RhdGUgPT09ICJtZWRpYSIgfHwgKHN0
YXRlLnN0YXRlID09PSAiYXRCbG9ja19wYXJlbnMiICYmIGNvbnRlbnQgIT09ICIpIik7Ci0KLSAg
ICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0sCi0KLSAgICBuZXdsaW5lc0FmdGVyVG9rZW46IGZ1
bmN0aW9uKGxhc3RUb2tlbiwgbGFzdENvbnRlbnQsIHRva2VuLCBzdGF0ZSwgY29udGVudCwgaXND
b21tZW50KQotICAgIHsKLSAgICAgICAgaWYgKCF0b2tlbikgewotICAgICAgICAgICAgaWYgKGNv
bnRlbnQgPT09ICI7IikKLSAgICAgICAgICAgICAgICByZXR1cm4gMTsKLSAgICAgICAgICAgIGlm
IChjb250ZW50ID09PSAiLCIpIHsgLy8gImEsYixjLC4uLix6e30iIHJ1bGUgbGlzdCBhdCB0b3Ag
bGV2ZWwgb3IgaW4gQG1lZGlhIHRvcCBsZXZlbCBhbmQgb25seSBpZiB0aGUgbGluZSBsZW5ndGgg
d2lsbCBiZSBsYXJnZS4KLSAgICAgICAgICAgICAgICBpZiAoKHN0YXRlLnN0YXRlID09PSAidG9w
IiB8fCBzdGF0ZS5zdGF0ZSA9PT0gIm1lZGlhIikgJiYgc3RhdGUuX2Nzc1ByZXR0eVByaW50Lmxp
bmVMZW5ndGggPiA2MCkgewotICAgICAgICAgICAgICAgICAgICBzdGF0ZS5fY3NzUHJldHR5UHJp
bnQubGluZUxlbmd0aCA9IDA7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiAxOwotICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICByZXR1cm4gMDsKLSAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgIGlmIChjb250ZW50ID09PSAieyIpCi0gICAgICAgICAgICAgICAgcmV0dXJuIDE7
Ci0gICAgICAgICAgICBpZiAoY29udGVudCA9PT0gIn0iKSAvLyAyIG5ld2xpbmVzIGJldHdlZW4g
cnVsZSBkZWNsYXJhdGlvbnMuCi0gICAgICAgICAgICAgICAgcmV0dXJuIDI7Ci0gICAgICAgICAg
ICByZXR1cm4gMDsKLSAgICAgICAgfQotCi0gICAgICAgIGlmIChpc0NvbW1lbnQpCi0gICAgICAg
ICAgICByZXR1cm4gMTsKLQotICAgICAgICByZXR1cm4gMDsKLSAgICB9LAotCi0gICAgcmVtb3Zl
TGFzdFdoaXRlc3BhY2U6IGZ1bmN0aW9uKGxhc3RUb2tlbiwgbGFzdENvbnRlbnQsIHRva2VuLCBz
dGF0ZSwgY29udGVudCwgaXNDb21tZW50KQotICAgIHsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgIH0sCi0KLSAgICByZW1vdmVMYXN0TmV3bGluZTogZnVuY3Rpb24obGFzdFRva2VuLCBsYXN0
Q29udGVudCwgdG9rZW4sIHN0YXRlLCBjb250ZW50LCBpc0NvbW1lbnQsIGZpcnN0VG9rZW5Pbkxp
bmUpCi0gICAgewotICAgICAgICBpZiAoaXNDb21tZW50KSB7IC8vIENvbW1lbnQgYWZ0ZXIgc2Vt
aWNvbG9uLgotICAgICAgICAgICAgaWYgKCFmaXJzdFRva2VuT25MaW5lICYmIGxhc3RDb250ZW50
ID09PSAiOyIpCi0gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgICAgICByZXR1
cm4gZmFsc2U7Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gY29udGVudCA9PT0gIn0iICYm
IChsYXN0Q29udGVudCA9PT0gInsiIHx8IGxhc3RDb250ZW50ID09PSAifSIpOyAvLyAie30iIGFu
ZCAifVxufSIgd2hlbiBjbG9zaW5nIEBtZWRpYS4KLSAgICB9LAotCi0gICAgaW5kZW50QWZ0ZXJU
b2tlbjogZnVuY3Rpb24obGFzdFRva2VuLCBsYXN0Q29udGVudCwgdG9rZW4sIHN0YXRlLCBjb250
ZW50LCBpc0NvbW1lbnQpCi0gICAgewotICAgICAgICByZXR1cm4gY29udGVudCA9PT0gInsiOwot
ICAgIH0sCi0KLSAgICBuZXdsaW5lQmVmb3JlVG9rZW46IGZ1bmN0aW9uKGxhc3RUb2tlbiwgbGFz
dENvbnRlbnQsIHRva2VuLCBzdGF0ZSwgY29udGVudCwgaXNDb21tZW50KQotICAgIHsKLSAgICAg
ICAgcmV0dXJuIGNvbnRlbnQgPT09ICJ9IiAmJiAobGFzdENvbnRlbnQgIT09ICJ7IiAmJiBsYXN0
Q29udGVudCAhPT0gIn0iKTsgLy8gInt9IiBhbmQgIn1cbn0iIHdoZW4gY2xvc2luZyBAbWVkaWEu
Ci0gICAgfSwKLQotICAgIGluZGVudEJlZm9yZVRva2VuOiBmdW5jdGlvbihsYXN0VG9rZW4sIGxh
c3RDb250ZW50LCB0b2tlbiwgc3RhdGUsIGNvbnRlbnQsIGlzQ29tbWVudCkKLSAgICB7Ci0gICAg
ICAgIHJldHVybiBmYWxzZTsKLSAgICB9LAotCi0gICAgZGVkZW50c0JlZm9yZVRva2VuOiBmdW5j
dGlvbihsYXN0VG9rZW4sIGxhc3RDb250ZW50LCB0b2tlbiwgc3RhdGUsIGNvbnRlbnQsIGlzQ29t
bWVudCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBjb250ZW50ID09PSAifSIgPyAxIDogMDsKLSAg
ICB9LAotCi0gICAgbW9kaWZ5U3RhdGVGb3JUb2tlblBvc3Q6IGZ1bmN0aW9uKGxhc3RUb2tlbiwg
bGFzdENvbnRlbnQsIHRva2VuLCBzdGF0ZSwgY29udGVudCwgaXNDb21tZW50KQotICAgIHsKLSAg
ICAgICAgaWYgKCFzdGF0ZS5fY3NzUHJldHR5UHJpbnQpCi0gICAgICAgICAgICBzdGF0ZS5fY3Nz
UHJldHR5UHJpbnQgPSB7bGluZUxlbmd0aDogMH07Ci0KLSAgICAgICAgLy8gSW4gb3JkZXIgaW5z
ZXJ0IG5ld2xpbmVzIGluIHNlbGVjdG9yIGxpc3RzIHdlIG5lZWQga2VlcCB0cmFjayBvZiB0aGUg
bGVuZ3RoIG9mIHRoZSBjdXJyZW50IGxpbmUuCi0gICAgICAgIC8vIFRoaXMgaXNuJ3QgZXhhY3Qg
bGluZSBsZW5ndGgsIG9ubHkgdGhlIGJ1aWxkZXIga25vd3MgdGhhdCwgYnV0IGl0IGlzIGdvb2Qg
ZW5vdWdoIHRvIGdldCBhbiBpZGVhLgotICAgICAgICAvLyBJZiB3ZSBhcmUgYXQgYSB0b3AgbGV2
ZWwsIGtlZXAgdHJhY2sgb2YgdGhlIGN1cnJlbnQgbGluZSBsZW5ndGgsIG90aGVyd2lzZSB3ZSBy
ZXNldCB0byAwLgotICAgICAgICBpZiAoIWlzQ29tbWVudCAmJiAoc3RhdGUuc3RhdGUgPT09ICJ0
b3AiIHx8IHN0YXRlLnN0YXRlID09PSAibWVkaWEiIHx8IHN0YXRlLnN0YXRlID09PSAicHNldWRv
IikpCi0gICAgICAgICAgICBzdGF0ZS5fY3NzUHJldHR5UHJpbnQubGluZUxlbmd0aCArPSBjb250
ZW50Lmxlbmd0aDsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgc3RhdGUuX2Nzc1ByZXR0eVBy
aW50LmxpbmVMZW5ndGggPSAwOwotICAgIH0KLX0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVGV4dEVkaXRvci5qcyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1RleHRFZGl0b3IuanMKaW5kZXggY2MzOWE3
YzI2NmIuLmE5MzkxNGRiMjI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9UZXh0RWRpdG9yLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1RleHRFZGl0b3IuanMKQEAgLTg1MywxOSArODUzLDExIEBA
IFdJLlRleHRFZGl0b3IgPSBjbGFzcyBUZXh0RWRpdG9yIGV4dGVuZHMgV0kuVmlldwogCiAgICAg
ICAgICAgICBpZiAoIXByZXR0eSkKICAgICAgICAgICAgICAgICB0aGlzLl91bmRvRm9ybWF0dGlu
ZyhiZWZvcmVQcmV0dHlQcmludFN0YXRlLCByZXNvbHZlKTsKLSAgICAgICAgICAgIGVsc2UgaWYg
KHRoaXMuX2NhblVzZUZvcm1hdHRlcldvcmtlcigpKQorICAgICAgICAgICAgZWxzZQogICAgICAg
ICAgICAgICAgIHRoaXMuX3N0YXJ0V29ya2VyUHJldHR5UHJpbnQoYmVmb3JlUHJldHR5UHJpbnRT
dGF0ZSwgcmVzb2x2ZSk7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgdGhpcy5f
c3RhcnRDb2RlTWlycm9yUHJldHR5UHJpbnQoYmVmb3JlUHJldHR5UHJpbnRTdGF0ZSwgcmVzb2x2
ZSk7CiAgICAgICAgIH0pOwogICAgIH0KIAotICAgIF9jYW5Vc2VGb3JtYXR0ZXJXb3JrZXIoKQot
ICAgIHsKLSAgICAgICAgbGV0IG1vZGUgPSB0aGlzLl9jb2RlTWlycm9yLmdldE1vZGUoKS5uYW1l
OwotICAgICAgICByZXR1cm4gbW9kZSA9PT0gImphdmFzY3JpcHQiIHx8IG1vZGUgPT09ICJjc3Mi
IHx8IG1vZGUgPT09ICJodG1sbWl4ZWQiOwotICAgIH0KLQogICAgIF9hdHRlbXB0VG9EZXRlcm1p
bmVNSU1FVHlwZSgpCiAgICAgewogICAgICAgICBsZXQgc3RhcnRUaW1lID0gRGF0ZS5ub3coKTsK
QEAgLTkxMSwyMCArOTAzLDYgQEAgV0kuVGV4dEVkaXRvciA9IGNsYXNzIFRleHRFZGl0b3IgZXh0
ZW5kcyBXSS5WaWV3CiAgICAgICAgICAgICB3b3JrZXJQcm94eS5mb3JtYXRIVE1MKHNvdXJjZVRl
eHQsIGluZGVudFN0cmluZywgaW5jbHVkZVNvdXJjZU1hcERhdGEsIGZvcm1hdENhbGxiYWNrKTsK
ICAgICB9CiAKLSAgICBfc3RhcnRDb2RlTWlycm9yUHJldHR5UHJpbnQoYmVmb3JlUHJldHR5UHJp
bnRTdGF0ZSwgY2FsbGJhY2spCi0gICAgewotICAgICAgICBsZXQgaW5kZW50U3RyaW5nID0gV0ku
aW5kZW50U3RyaW5nKCk7Ci0gICAgICAgIGxldCBzdGFydCA9IHtsaW5lOiAwLCBjaDogMH07Ci0g
ICAgICAgIGxldCBlbmQgPSB7bGluZTogdGhpcy5fY29kZU1pcnJvci5saW5lQ291bnQoKSAtIDF9
OwotICAgICAgICBsZXQgYnVpbGRlciA9IG5ldyBGb3JtYXR0ZXJDb250ZW50QnVpbGRlcihpbmRl
bnRTdHJpbmcpOwotICAgICAgICBsZXQgZm9ybWF0dGVyID0gbmV3IFdJLkZvcm1hdHRlcih0aGlz
Ll9jb2RlTWlycm9yLCBidWlsZGVyKTsKLSAgICAgICAgZm9ybWF0dGVyLmZvcm1hdChzdGFydCwg
ZW5kKTsKLQotICAgICAgICBsZXQgZm9ybWF0dGVkVGV4dCA9IGJ1aWxkZXIuZm9ybWF0dGVkQ29u
dGVudDsKLSAgICAgICAgbGV0IHNvdXJjZU1hcERhdGEgPSBidWlsZGVyLnNvdXJjZU1hcERhdGE7
Ci0gICAgICAgIHRoaXMuX2ZpbmlzaFByZXR0eVByaW50KGJlZm9yZVByZXR0eVByaW50U3RhdGUs
IGZvcm1hdHRlZFRleHQsIHNvdXJjZU1hcERhdGEsIGNhbGxiYWNrKTsKLSAgICB9Ci0KICAgICBf
ZmluaXNoUHJldHR5UHJpbnQoYmVmb3JlUHJldHR5UHJpbnRTdGF0ZSwgZm9ybWF0dGVkVGV4dCwg
c291cmNlTWFwRGF0YSwgY2FsbGJhY2spCiAgICAgewogICAgICAgICB0aGlzLl9jb2RlTWlycm9y
Lm9wZXJhdGlvbigoKSA9PiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvV2Vi
SW5zcGVjdG9yVUkudmN4cHJvai9XZWJJbnNwZWN0b3JVSS52Y3hwcm9qIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1dlYkluc3BlY3RvclVJLnZjeHByb2ovV2ViSW5zcGVjdG9yVUkudmN4cHJvagpp
bmRleCAxM2ViY2JjMzg4OS4uMGQyMzBmOWI1NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9XZWJJbnNwZWN0b3JVSS52Y3hwcm9qL1dlYkluc3BlY3RvclVJLnZjeHByb2oKKysr
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1dlYkluc3BlY3RvclVJLnZjeHByb2ovV2ViSW5zcGVj
dG9yVUkudmN4cHJvagpAQCAtMzA2LDcgKzMwNiw2IEBACiAgICAgPE5vbmUgSW5jbHVkZT0iLi5c
VXNlckludGVyZmFjZVxDb2RlTWlycm9yQ29tcGxldGlvbkNvbnRyb2xsZXIuanMiIC8+CiAgICAg
PE5vbmUgSW5jbHVkZT0iLi5cVXNlckludGVyZmFjZVxDb2RlTWlycm9yRHJhZ1RvQWx0ZXJOdW1i
ZXJDb250cm9sbGVyLmNzcyIgLz4KICAgICA8Tm9uZSBJbmNsdWRlPSIuLlxVc2VySW50ZXJmYWNl
XENvZGVNaXJyb3JEcmFnVG9BbHRlck51bWJlckNvbnRyb2xsZXIuanMiIC8+Ci0gICAgPE5vbmUg
SW5jbHVkZT0iLi5cVXNlckludGVyZmFjZVxDb2RlTWlycm9yRm9ybWF0dGVycy5qcyIgLz4KICAg
ICA8Tm9uZSBJbmNsdWRlPSIuLlxVc2VySW50ZXJmYWNlXENvZGVNaXJyb3JPdmVycmlkZXMuY3Nz
IiAvPgogICAgIDxOb25lIEluY2x1ZGU9Ii4uXFVzZXJJbnRlcmZhY2VcQ29kZU1pcnJvclRva2Vu
VHJhY2tpbmdDb250cm9sbGVyLmNzcyIgLz4KICAgICA8Tm9uZSBJbmNsdWRlPSIuLlxVc2VySW50
ZXJmYWNlXENvZGVNaXJyb3JUb2tlblRyYWNraW5nQ29udHJvbGxlci5qcyIgLz4KQEAgLTQ0MSw3
ICs0NDAsNiBAQAogICAgIDxOb25lIEluY2x1ZGU9Ii4uXFVzZXJJbnRlcmZhY2VcRm9sZGVyaXpl
ZFRyZWVFbGVtZW50LmpzIiAvPgogICAgIDxOb25lIEluY2x1ZGU9Ii4uXFVzZXJJbnRlcmZhY2Vc
Rm9udFJlc291cmNlQ29udGVudFZpZXcuY3NzIiAvPgogICAgIDxOb25lIEluY2x1ZGU9Ii4uXFVz
ZXJJbnRlcmZhY2VcRm9udFJlc291cmNlQ29udGVudFZpZXcuanMiIC8+Ci0gICAgPE5vbmUgSW5j
bHVkZT0iLi5cVXNlckludGVyZmFjZVxGb3JtYXR0ZXIuanMiIC8+CiAgICAgPE5vbmUgSW5jbHVk
ZT0iLi5cVXNlckludGVyZmFjZVxGb3JtYXR0ZXJDb250ZW50QnVpbGRlci5qcyIgLz4KICAgICA8
Tm9uZSBJbmNsdWRlPSIuLlxVc2VySW50ZXJmYWNlXEZvcm1hdHRlclNvdXJjZU1hcC5qcyIgLz4K
ICAgICA8Tm9uZSBJbmNsdWRlPSIuLlxVc2VySW50ZXJmYWNlXEZyYW1lLmpzIiAvPgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1dlYkluc3BlY3RvclVJLnZjeHByb2ovV2ViSW5z
cGVjdG9yVUkudmN4cHJvai5maWx0ZXJzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1dlYkluc3Bl
Y3RvclVJLnZjeHByb2ovV2ViSW5zcGVjdG9yVUkudmN4cHJvai5maWx0ZXJzCmluZGV4IDhkYjFm
YmViNTFhLi44ZDgzMTE0MDRhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1dl
Ykluc3BlY3RvclVJLnZjeHByb2ovV2ViSW5zcGVjdG9yVUkudmN4cHJvai5maWx0ZXJzCisrKyBi
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9XZWJJbnNwZWN0b3JVSS52Y3hwcm9qL1dlYkluc3BlY3Rv
clVJLnZjeHByb2ouZmlsdGVycwpAQCAtMTY4LDkgKzE2OCw2IEBACiAgICAgPE5vbmUgSW5jbHVk
ZT0iLi5cVXNlckludGVyZmFjZVxDb2RlTWlycm9yRHJhZ1RvQWx0ZXJOdW1iZXJDb250cm9sbGVy
LmpzIj4KICAgICAgIDxGaWx0ZXI+VXNlckludGVyZmFjZTwvRmlsdGVyPgogICAgIDwvTm9uZT4K
LSAgICA8Tm9uZSBJbmNsdWRlPSIuLlxVc2VySW50ZXJmYWNlXENvZGVNaXJyb3JGb3JtYXR0ZXJz
LmpzIj4KLSAgICAgIDxGaWx0ZXI+VXNlckludGVyZmFjZTwvRmlsdGVyPgotICAgIDwvTm9uZT4K
ICAgICA8Tm9uZSBJbmNsdWRlPSIuLlxVc2VySW50ZXJmYWNlXENvZGVNaXJyb3JPdmVycmlkZXMu
Y3NzIj4KICAgICAgIDxGaWx0ZXI+VXNlckludGVyZmFjZTwvRmlsdGVyPgogICAgIDwvTm9uZT4K
QEAgLTUxMCw5ICs1MDcsNiBAQAogICAgIDxOb25lIEluY2x1ZGU9Ii4uXFVzZXJJbnRlcmZhY2Vc
Rm9udFJlc291cmNlQ29udGVudFZpZXcuanMiPgogICAgICAgPEZpbHRlcj5Vc2VySW50ZXJmYWNl
PC9GaWx0ZXI+CiAgICAgPC9Ob25lPgotICAgIDxOb25lIEluY2x1ZGU9Ii4uXFVzZXJJbnRlcmZh
Y2VcRm9ybWF0dGVyLmpzIj4KLSAgICAgIDxGaWx0ZXI+VXNlckludGVyZmFjZTwvRmlsdGVyPgot
ICAgIDwvTm9uZT4KICAgICA8Tm9uZSBJbmNsdWRlPSIuLlxVc2VySW50ZXJmYWNlXEZvcm1hdHRl
ckNvbnRlbnRCdWlsZGVyLmpzIj4KICAgICAgIDxGaWx0ZXI+VXNlckludGVyZmFjZTwvRmlsdGVy
PgogICAgIDwvTm9uZT4K
</data>
<flag name="review"
          id="394054"
          type_id="1"
          status="+"
          setter="hi"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>378515</attachid>
            <date>2019-09-10 17:39:19 -0700</date>
            <delta_ts>2019-09-10 17:41:14 -0700</delta_ts>
            <desc>[PATCH] For Landing</desc>
            <filename>for-bots-1.patch</filename>
            <type>text/plain</type>
            <size>124550</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA4ZWQyNDQ1YTk4OS4uN2NmNmQ0OTJiNGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0OCBAQAor
MjAxOS0wOS0xMCAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgorCisgICAg
ICAgIFdlYiBJbnNwZWN0b3I6IFJlbW92ZSBsZWdhY3kgQ29kZU1pcnJvciBiYXNlZCBwcmV0dHkg
cHJpbnRlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIwMTYyNAorCisgICAgICAgIFJldmlld2VkIGJ5IERldmluIFJvdXNzby4KKworICAgICAgICAq
IGluc3BlY3Rvci9jb2RlbWlycm9yL3ByZXR0eXByaW50aW5nLWNzcy1leHBlY3RlZC50eHQ6IFJl
bW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2NvZGVtaXJyb3IvcHJldHR5cHJpbnRpbmctY3Nz
Lmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2NvZGVtaXJyb3IvcHJldHR5cHJp
bnRpbmctamF2YXNjcmlwdC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVj
dG9yL2NvZGVtaXJyb3IvcHJldHR5cHJpbnRpbmctamF2YXNjcmlwdC5odG1sOiBSZW1vdmVkLgor
ICAgICAgICAqIGluc3BlY3Rvci9jb2RlbWlycm9yL3Jlc291cmNlcy9wcmV0dHlwcmludGluZy9j
c3MtdGVzdHMvYmFzaWMtZXhwZWN0ZWQuY3NzOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rv
ci9jb2RlbWlycm9yL3Jlc291cmNlcy9wcmV0dHlwcmludGluZy9jc3MtdGVzdHMvYmFzaWMuY3Nz
OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9jb2RlbWlycm9yL3Jlc291cmNlcy9wcmV0
dHlwcmludGluZy9jc3MtdGVzdHMvY2FsYy1leHBlY3RlZC5jc3M6IFJlbW92ZWQuCisgICAgICAg
ICogaW5zcGVjdG9yL2NvZGVtaXJyb3IvcmVzb3VyY2VzL3ByZXR0eXByaW50aW5nL2Nzcy10ZXN0
cy9jYWxjLmNzczogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvY29kZW1pcnJvci9yZXNv
dXJjZXMvcHJldHR5cHJpbnRpbmcvY3NzLXRlc3RzL2dyYWRpZW50LWV4cGVjdGVkLmNzczogUmVt
b3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvY29kZW1pcnJvci9yZXNvdXJjZXMvcHJldHR5cHJp
bnRpbmcvY3NzLXRlc3RzL2dyYWRpZW50LmNzczogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0
b3IvY29kZW1pcnJvci9yZXNvdXJjZXMvcHJldHR5cHJpbnRpbmcvY3NzLXRlc3RzL2tleWZyYW1l
cy1leHBlY3RlZC5jc3M6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2NvZGVtaXJyb3Iv
cmVzb3VyY2VzL3ByZXR0eXByaW50aW5nL2Nzcy10ZXN0cy9rZXlmcmFtZXMuY3NzOiBSZW1vdmVk
LgorICAgICAgICAqIGluc3BlY3Rvci9jb2RlbWlycm9yL3Jlc291cmNlcy9wcmV0dHlwcmludGlu
Zy9jc3MtdGVzdHMvbWVkaWEtcXVlcnktZXhwZWN0ZWQuY3NzOiBSZW1vdmVkLgorICAgICAgICAq
IGluc3BlY3Rvci9jb2RlbWlycm9yL3Jlc291cmNlcy9wcmV0dHlwcmludGluZy9jc3MtdGVzdHMv
bWVkaWEtcXVlcnkuY3NzOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9jb2RlbWlycm9y
L3Jlc291cmNlcy9wcmV0dHlwcmludGluZy9jc3MtdGVzdHMvc2VsZWN0b3JzLWV4cGVjdGVkLmNz
czogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvY29kZW1pcnJvci9yZXNvdXJjZXMvcHJl
dHR5cHJpbnRpbmcvY3NzLXRlc3RzL3NlbGVjdG9ycy5jc3M6IFJlbW92ZWQuCisgICAgICAgICog
aW5zcGVjdG9yL2NvZGVtaXJyb3IvcmVzb3VyY2VzL3ByZXR0eXByaW50aW5nL2Nzcy10ZXN0cy93
cmFwcGluZy1leHBlY3RlZC5jc3M6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2NvZGVt
aXJyb3IvcmVzb3VyY2VzL3ByZXR0eXByaW50aW5nL2Nzcy10ZXN0cy93cmFwcGluZy5jc3M6IFJl
bW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2NvZGVtaXJyb3IvcmVzb3VyY2VzL3ByZXR0eXBy
aW50aW5nL2phdmFzY3JpcHQtdGVzdHMvYmxvY2stY29tbWVudC1leHBlY3RlZC5qczogUmVtb3Zl
ZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvY29kZW1pcnJvci9yZXNvdXJjZXMvcHJldHR5cHJpbnRp
bmcvamF2YXNjcmlwdC10ZXN0cy9ibG9jay1jb21tZW50LmpzOiBSZW1vdmVkLgorICAgICAgICAq
IGluc3BlY3Rvci9jb2RlbWlycm9yL3Jlc291cmNlcy9wcmV0dHlwcmludGluZy9qYXZhc2NyaXB0
LXRlc3RzL2RvLXdoaWxlLWxvb3AtZXhwZWN0ZWQuanM6IFJlbW92ZWQuCisgICAgICAgICogaW5z
cGVjdG9yL2NvZGVtaXJyb3IvcmVzb3VyY2VzL3ByZXR0eXByaW50aW5nL2phdmFzY3JpcHQtdGVz
dHMvZG8td2hpbGUtbG9vcC5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvY29kZW1p
cnJvci9yZXNvdXJjZXMvcHJldHR5cHJpbnRpbmcvamF2YXNjcmlwdC10ZXN0cy9kby13aGlsZS13
aXRoaW4taWYtZXhwZWN0ZWQuanM6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2NvZGVt
aXJyb3IvcmVzb3VyY2VzL3ByZXR0eXByaW50aW5nL2phdmFzY3JpcHQtdGVzdHMvZG8td2hpbGUt
d2l0aGluLWlmLmpzOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9jb2RlbWlycm9yL3Jl
c291cmNlcy9wcmV0dHlwcmludGluZy9qYXZhc2NyaXB0LXRlc3RzL2lmLWZvbGxvd2VkLWJ5LXdo
aWxlLWV4cGVjdGVkLmpzOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9jb2RlbWlycm9y
L3Jlc291cmNlcy9wcmV0dHlwcmludGluZy9qYXZhc2NyaXB0LXRlc3RzL2lmLWZvbGxvd2VkLWJ5
LXdoaWxlLmpzOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9jb2RlbWlycm9yL3Jlc291
cmNlcy9wcmV0dHlwcmludGluZy9qYXZhc2NyaXB0LXRlc3RzL2lmLXdoaWxlLXdpdGhpbi1kby13
aGlsZS1leHBlY3RlZC5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvY29kZW1pcnJv
ci9yZXNvdXJjZXMvcHJldHR5cHJpbnRpbmcvamF2YXNjcmlwdC10ZXN0cy9pZi13aGlsZS13aXRo
aW4tZG8td2hpbGUuanM6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2NvZGVtaXJyb3Iv
cmVzb3VyY2VzL3ByZXR0eXByaW50aW5nL2phdmFzY3JpcHQtdGVzdHMvc2luZ2xlLXN0YXRlbWVu
dC1ibG9ja3MtZXhwZWN0ZWQuanM6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2NvZGVt
aXJyb3IvcmVzb3VyY2VzL3ByZXR0eXByaW50aW5nL2phdmFzY3JpcHQtdGVzdHMvc2luZ2xlLXN0
YXRlbWVudC1ibG9ja3MuanM6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2NvZGVtaXJy
b3IvcmVzb3VyY2VzL3ByZXR0eXByaW50aW5nL2phdmFzY3JpcHQtdGVzdHMvc3dpdGNoLWNhc2Ut
ZGVmYXVsdC1leHBlY3RlZC5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvY29kZW1p
cnJvci9yZXNvdXJjZXMvcHJldHR5cHJpbnRpbmcvamF2YXNjcmlwdC10ZXN0cy9zd2l0Y2gtY2Fz
ZS1kZWZhdWx0LmpzOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9jb2RlbWlycm9yL3Jl
c291cmNlcy9wcmV0dHlwcmludGluZy9qYXZhc2NyaXB0LXRlc3RzL3VuYXJ5LWJpbmFyeS1vcGVy
YXRvcnMtZXhwZWN0ZWQuanM6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2NvZGVtaXJy
b3IvcmVzb3VyY2VzL3ByZXR0eXByaW50aW5nL2phdmFzY3JpcHQtdGVzdHMvdW5hcnktYmluYXJ5
LW9wZXJhdG9ycy5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvY29kZW1pcnJvci9y
ZXNvdXJjZXMvcHJldHR5cHJpbnRpbmcvamF2YXNjcmlwdC10ZXN0cy93aGlsZS13aXRoaW4tZG8t
d2hpbGUtZXhwZWN0ZWQuanM6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2NvZGVtaXJy
b3IvcmVzb3VyY2VzL3ByZXR0eXByaW50aW5nL2phdmFzY3JpcHQtdGVzdHMvd2hpbGUtd2l0aGlu
LWRvLXdoaWxlLmpzOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9jb2RlbWlycm9yL3Jl
c291cmNlcy9wcmV0dHlwcmludGluZy91dGlsaXRpZXMuanM6IFJlbW92ZWQuCisKIDIwMTktMDkt
MTAgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBTdG9wIHVzaW5n
IHRlc3RSdW5uZXIuc2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZF9ERVBSRUNBVEVEKCkgaW4gaHR0
cC90ZXN0cy9jb29raWVzL3ByaXZhdGUtY29va2llLXN0b3JhZ2UuaHRtbApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvZGVtaXJyb3IvcHJldHR5cHJpbnRpbmctY3NzLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb2RlbWlycm9yL3ByZXR0eXByaW50aW5n
LWNzcy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ3ZTZlNjU0
Y2MzLi4wMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29kZW1pcnJvci9w
cmV0dHlwcmludGluZy1jc3MtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMjUgKzAs
MCBAQAotVGVzdCBDU1MgcHJldHR5IHByaW50aW5nIHdpdGggQ29kZU1pcnJvci4KLQotCi09PSBS
dW5uaW5nIHRlc3Qgc3VpdGU6IENvZGVNaXJyb3IuUHJldHR5UHJpbnRpbmcuQ1NTCi0tLSBSdW5u
aW5nIHRlc3QgY2FzZTogQ29kZU1pcnJvci5QcmV0dHlQcmludGluZy5DU1MuYmFzaWMuY3NzCi1Q
QVNTCi0KLS0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBDb2RlTWlycm9yLlByZXR0eVByaW50aW5nLkNT
Uy5jYWxjLmNzcwotUEFTUwotCi0tLSBSdW5uaW5nIHRlc3QgY2FzZTogQ29kZU1pcnJvci5QcmV0
dHlQcmludGluZy5DU1MuZ3JhZGllbnQuY3NzCi1QQVNTCi0KLS0tIFJ1bm5pbmcgdGVzdCBjYXNl
OiBDb2RlTWlycm9yLlByZXR0eVByaW50aW5nLkNTUy5rZXlmcmFtZXMuY3NzCi1QQVNTCi0KLS0t
IFJ1bm5pbmcgdGVzdCBjYXNlOiBDb2RlTWlycm9yLlByZXR0eVByaW50aW5nLkNTUy5tZWRpYS1x
dWVyeS5jc3MKLVBBU1MKLQotLS0gUnVubmluZyB0ZXN0IGNhc2U6IENvZGVNaXJyb3IuUHJldHR5
UHJpbnRpbmcuQ1NTLnNlbGVjdG9ycy5jc3MKLVBBU1MKLQotLS0gUnVubmluZyB0ZXN0IGNhc2U6
IENvZGVNaXJyb3IuUHJldHR5UHJpbnRpbmcuQ1NTLndyYXBwaW5nLmNzcwotUEFTUwotCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29kZW1pcnJvci9wcmV0dHlwcmludGluZy1j
c3MuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb2RlbWlycm9yL3ByZXR0eXByaW50aW5n
LWNzcy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4YjBhNjk1YWQzZC4uMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvZGVtaXJyb3IvcHJldHR5cHJp
bnRpbmctY3NzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyOCArMCwwIEBACi08IURPQ1RZUEUg
aHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNw
ZWN0b3IvcmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvcHJldHR5cHJpbnRpbmcvdXRpbGl0aWVzLmpzIj48L3NjcmlwdD4KLTxzY3Jp
cHQ+Ci1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBsZXQgc3VpdGUgPSBJbnNwZWN0b3JUZXN0LmNy
ZWF0ZUFzeW5jU3VpdGUoIkNvZGVNaXJyb3IuUHJldHR5UHJpbnRpbmcuQ1NTIik7Ci0KLSAgICBh
ZGRQcmV0dHlQcmludGluZ1Rlc3RzKHN1aXRlLCAidGV4dC9jc3MiLCBbCi0gICAgICAgICJyZXNv
dXJjZXMvcHJldHR5cHJpbnRpbmcvY3NzLXRlc3RzL2Jhc2ljLmNzcyIsCi0gICAgICAgICJyZXNv
dXJjZXMvcHJldHR5cHJpbnRpbmcvY3NzLXRlc3RzL2NhbGMuY3NzIiwKLSAgICAgICAgInJlc291
cmNlcy9wcmV0dHlwcmludGluZy9jc3MtdGVzdHMvZ3JhZGllbnQuY3NzIiwKLSAgICAgICAgInJl
c291cmNlcy9wcmV0dHlwcmludGluZy9jc3MtdGVzdHMva2V5ZnJhbWVzLmNzcyIsCi0gICAgICAg
ICJyZXNvdXJjZXMvcHJldHR5cHJpbnRpbmcvY3NzLXRlc3RzL21lZGlhLXF1ZXJ5LmNzcyIsCi0g
ICAgICAgICJyZXNvdXJjZXMvcHJldHR5cHJpbnRpbmcvY3NzLXRlc3RzL3NlbGVjdG9ycy5jc3Mi
LAotICAgICAgICAicmVzb3VyY2VzL3ByZXR0eXByaW50aW5nL2Nzcy10ZXN0cy93cmFwcGluZy5j
c3MiLAotICAgIF0pOwotCi0gICAgc3VpdGUucnVuVGVzdENhc2VzQW5kRmluaXNoKCk7Ci19Ci08
L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPlRlc3QgQ1NT
IHByZXR0eSBwcmludGluZyB3aXRoIENvZGVNaXJyb3IuPC9wPgotPC9ib2R5PgotPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvZGVtaXJyb3IvcHJldHR5cHJpbnRp
bmctamF2YXNjcmlwdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29kZW1p
cnJvci9wcmV0dHlwcmludGluZy1qYXZhc2NyaXB0LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggYjY2ZGNmY2FjYTUuLjAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci9jb2RlbWlycm9yL3ByZXR0eXByaW50aW5nLWphdmFzY3JpcHQtZXhwZWN0
ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMzEgKzAsMCBAQAotVGVzdCBKYXZhU2NyaXB0IHBy
ZXR0eSBwcmludGluZyB3aXRoIENvZGVNaXJyb3IuCi0KLQotPT0gUnVubmluZyB0ZXN0IHN1aXRl
OiBDb2RlTWlycm9yLlByZXR0eVByaW50aW5nLkphdmFTY3JpcHQKLS0tIFJ1bm5pbmcgdGVzdCBj
YXNlOiBDb2RlTWlycm9yLlByZXR0eVByaW50aW5nLkphdmFTY3JpcHQuYmxvY2stY29tbWVudC5q
cwotUEFTUwotCi0tLSBSdW5uaW5nIHRlc3QgY2FzZTogQ29kZU1pcnJvci5QcmV0dHlQcmludGlu
Zy5KYXZhU2NyaXB0LnNpbmdsZS1zdGF0ZW1lbnQtYmxvY2tzLmpzCi1QQVNTCi0KLS0tIFJ1bm5p
bmcgdGVzdCBjYXNlOiBDb2RlTWlycm9yLlByZXR0eVByaW50aW5nLkphdmFTY3JpcHQuc3dpdGNo
LWNhc2UtZGVmYXVsdC5qcwotUEFTUwotCi0tLSBSdW5uaW5nIHRlc3QgY2FzZTogQ29kZU1pcnJv
ci5QcmV0dHlQcmludGluZy5KYXZhU2NyaXB0LnVuYXJ5LWJpbmFyeS1vcGVyYXRvcnMuanMKLVBB
U1MKLQotLS0gUnVubmluZyB0ZXN0IGNhc2U6IENvZGVNaXJyb3IuUHJldHR5UHJpbnRpbmcuSmF2
YVNjcmlwdC5kby13aGlsZS1sb29wLmpzCi1QQVNTCi0KLS0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBD
b2RlTWlycm9yLlByZXR0eVByaW50aW5nLkphdmFTY3JpcHQuaWYtZm9sbG93ZWQtYnktd2hpbGUu
anMKLVBBU1MKLQotLS0gUnVubmluZyB0ZXN0IGNhc2U6IENvZGVNaXJyb3IuUHJldHR5UHJpbnRp
bmcuSmF2YVNjcmlwdC53aGlsZS13aXRoaW4tZG8td2hpbGUuanMKLVBBU1MKLQotLS0gUnVubmlu
ZyB0ZXN0IGNhc2U6IENvZGVNaXJyb3IuUHJldHR5UHJpbnRpbmcuSmF2YVNjcmlwdC5pZi13aGls
ZS13aXRoaW4tZG8td2hpbGUuanMKLVBBU1MKLQotLS0gUnVubmluZyB0ZXN0IGNhc2U6IENvZGVN
aXJyb3IuUHJldHR5UHJpbnRpbmcuSmF2YVNjcmlwdC5kby13aGlsZS13aXRoaW4taWYuanMKLVBB
U1MKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvZGVtaXJyb3IvcHJldHR5
cHJpbnRpbmctamF2YXNjcmlwdC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvZGVtaXJy
b3IvcHJldHR5cHJpbnRpbmctamF2YXNjcmlwdC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBmOTJlYTBlODQzNC4uMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2NvZGVtaXJyb3IvcHJldHR5cHJpbnRpbmctamF2YXNjcmlwdC5odG1sCisrKyAvZGV2L251
bGwKQEAgLTEsMzAgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNj
cmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9pbnNwZWN0b3It
dGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3ByZXR0eXByaW50aW5n
L3V0aWxpdGllcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotZnVuY3Rpb24gdGVzdCgpCi17Ci0g
ICAgbGV0IHN1aXRlID0gSW5zcGVjdG9yVGVzdC5jcmVhdGVBc3luY1N1aXRlKCJDb2RlTWlycm9y
LlByZXR0eVByaW50aW5nLkphdmFTY3JpcHQiKTsKLQotICAgIGFkZFByZXR0eVByaW50aW5nVGVz
dHMoc3VpdGUsICJ0ZXh0L2phdmFzY3JpcHQiLCBbCi0gICAgICAgICJyZXNvdXJjZXMvcHJldHR5
cHJpbnRpbmcvamF2YXNjcmlwdC10ZXN0cy9ibG9jay1jb21tZW50LmpzIiwKLSAgICAgICAgInJl
c291cmNlcy9wcmV0dHlwcmludGluZy9qYXZhc2NyaXB0LXRlc3RzL3NpbmdsZS1zdGF0ZW1lbnQt
YmxvY2tzLmpzIiwKLSAgICAgICAgInJlc291cmNlcy9wcmV0dHlwcmludGluZy9qYXZhc2NyaXB0
LXRlc3RzL3N3aXRjaC1jYXNlLWRlZmF1bHQuanMiLAotICAgICAgICAicmVzb3VyY2VzL3ByZXR0
eXByaW50aW5nL2phdmFzY3JpcHQtdGVzdHMvdW5hcnktYmluYXJ5LW9wZXJhdG9ycy5qcyIsCi0g
ICAgICAgICJyZXNvdXJjZXMvcHJldHR5cHJpbnRpbmcvamF2YXNjcmlwdC10ZXN0cy9kby13aGls
ZS1sb29wLmpzIiwKLSAgICAgICAgInJlc291cmNlcy9wcmV0dHlwcmludGluZy9qYXZhc2NyaXB0
LXRlc3RzL2lmLWZvbGxvd2VkLWJ5LXdoaWxlLmpzIiwKLSAgICAgICAgInJlc291cmNlcy9wcmV0
dHlwcmludGluZy9qYXZhc2NyaXB0LXRlc3RzL3doaWxlLXdpdGhpbi1kby13aGlsZS5qcyIsCi0g
ICAgICAgICJyZXNvdXJjZXMvcHJldHR5cHJpbnRpbmcvamF2YXNjcmlwdC10ZXN0cy9pZi13aGls
ZS13aXRoaW4tZG8td2hpbGUuanMiLAotICAgICAgICAicmVzb3VyY2VzL3ByZXR0eXByaW50aW5n
L2phdmFzY3JpcHQtdGVzdHMvZG8td2hpbGUtd2l0aGluLWlmLmpzIiwKLSAgICBdKTsKLQotICAg
IHN1aXRlLnJ1blRlc3RDYXNlc0FuZEZpbmlzaCgpOwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08
Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD5UZXN0IEphdmFTY3JpcHQgcHJldHR5IHByaW50
aW5nIHdpdGggQ29kZU1pcnJvci48L3A+Ci08L2JvZHk+Ci08L2h0bWw+CiogVW5tZXJnZWQgcGF0
aCBMYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29kZW1pcnJvci9yZXNvdXJjZXMvcHJldHR5cHJpbnRp
bmcvY3NzLXRlc3RzL2Jhc2ljLWV4cGVjdGVkLmNzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2NvZGVtaXJyb3IvcmVzb3VyY2VzL3ByZXR0eXByaW50aW5nL2Nzcy10ZXN0cy9i
YXNpYy5jc3MgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29kZW1pcnJvci9yZXNvdXJjZXMvcHJl
dHR5cHJpbnRpbmcvY3NzLXRlc3RzL2Jhc2ljLmNzcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDkzOWY0OGU2MDcuLjAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9jb2RlbWlycm9yL3Jlc291cmNlcy9wcmV0dHlwcmludGluZy9jc3MtdGVzdHMvYmFzaWMuY3Nz
CisrKyAvZGV2L251bGwKQEAgLTEsNDEgKzAsMCBAQAotLyogUkVTRVQgKi8KLWh0bWwsYm9keSxk
aXYsdWwsb2wsbGksZGwsZHQsZGQsaDEsaDIsaDMsaDQsaDUsaDYscHJlLGZvcm0scCxibG9ja3F1
b3RlLGZpZWxkc2V0LGlucHV0LGFiYnIsYXJ0aWNsZSxhc2lkZSxjb21tYW5kLGRldGFpbHMsZmln
Y2FwdGlvbixmaWd1cmUsZm9vdGVyLGhlYWRlcixoZ3JvdXAsbWFyayxtZXRlcixuYXYsb3V0cHV0
LHByb2dyZXNzLHNlY3Rpb24sc3VtbWFyeSx0aW1lIHsgbWFyZ2luOiAwOyBwYWRkaW5nOiAwOyB9
Ci1oMSxoMixoMyxoNCxoNSxoNixwcmUsY29kZSxhZGRyZXNzLGNhcHRpb24sY2l0ZSxjb2RlLGVt
LHN0cm9uZyx0aCxmaWdjYXB0aW9uIHsgZm9udC1zaXplOiAxZW07IGZvbnQtd2VpZ2h0OiBub3Jt
YWw7IGZvbnQtc3R5bGU6IG5vcm1hbDsgfQotZmllbGRzZXQsaWZyYW1le2JvcmRlcjpub25lfQot
dGFibGV7Ym9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlO2JvcmRlci1zcGFjaW5nOjB9Ci1hcnRpY2xl
LGFzaWRlLGZvb3RlcixoZWFkZXIsaGdyb3VwLG5hdixzZWN0aW9uLGZpZ3VyZSxmaWdjYXB0aW9u
e2Rpc3BsYXk6IGJsb2NrO30KLQotLyogRklYTUU6IGV4dHJhIHdoaXRlc3BhY2UgKi8KLWNhcHRp
b24gICwgICB0aCB7IHRleHQtYWxpZ246IGxlZnQ7IH0KLQotLyogSU1QT1JUQU5UICovCi0vKiBG
SVhNRTogd2hpdGVzcGFjZSBiZXR3ZWVuICIhIiBhbmQgImltcG9ydGFudCIgY2FuIGJlIGltcHJv
dmVkICovCi1ib2R5e2NvbG9yOnJlZCFpbXBvcnRhbnQ7fQotYm9keXtjb2xvcjpyZWQgIWltcG9y
dGFudDt9Ci1ib2R5e2NvbG9yOnJlZCAhIGltcG9ydGFudDt9Ci0KLS8qIElOTElORSBDT01NRU5U
ICovCi1ib2R5e2NvbG9yOnJlZDsvKiBibHVlICovfQotCi0vKiBVUkxTICovCi0ubXlpbWFnZXti
YWNrZ3JvdW5kLWltYWdlOnVybChodHRwOi8vZXhhbXBsZS5jb20vaW1hZ2UucG5nKSx1cmwodHdv
LnBuZyl9Ci0ubXlpbWFnZXtiYWNrZ3JvdW5kLWltYWdlOnVybCgiaHR0cDovL2V4YW1wbGUuY29t
L2ltYWdlLnBuZyIpLHVybCgidHdvLnBuZyIpfQotCi0vKiBQUkVGSVhFRCBTRUxFQ1RPUlMgQU5E
IFBST1BFUlRJRVMgKi8KLS5mb28gLXdlYmtpdC1hbnkoYSxiLGMpey13ZWJraXQtdHJhbnNpdGlv
bjphbGw7Y29sb3I6cmVkfQotCi0vKiBQU0VVRE8gU0VMRUNUT1JTICovCi1hOmxpbmssYTp2aXNp
dGVke2NvbG9yOmJsYWNrfQotCi0vKiBQU0VVRE8gRUxFTUVOVFMgKi8KLXA6OmJlZm9yZSxwOjph
ZnRlcntjb250ZW50OiJ0ZXN0Ijt9Ci0KLS8qIFJHQiwgSFNMICovCi1ib2R5e2NvbG9yOnJnYigx
LDEsMSk7Y29sb3I6cmdiYSgxMDAsMCwyNTUsMC41KTtjb2xvcjpoc2woMTIwLDEwMCUsNTAlKTtj
b2xvcjpoc2xhKDEyMCw2MCUsNzAlLDAuMyk7fQotCi0vKgotICogVGhpcyBpcyBhIG11bHRpLWxp
bmUgY29tbWVudC4KLSAqIC0gd2l0aCBpbmRlbnRhdGlvbgotICogLSBhbmQgaXMgZ2VuZXJhbGx5
IGF3ZXNvbWUuCi0gKi8KLWJvZHl7Y29sb3I6cmVkfQoqIFVubWVyZ2VkIHBhdGggTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2NvZGVtaXJyb3IvcmVzb3VyY2VzL3ByZXR0eXByaW50aW5nL2Nzcy10ZXN0
cy9jYWxjLWV4cGVjdGVkLmNzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nv
ZGVtaXJyb3IvcmVzb3VyY2VzL3ByZXR0eXByaW50aW5nL2Nzcy10ZXN0cy9jYWxjLmNzcyBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9jb2RlbWlycm9yL3Jlc291cmNlcy9wcmV0dHlwcmludGluZy9j
c3MtdGVzdHMvY2FsYy5jc3MKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI1ZDY4ZDE3
ZDBmLi4wMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29kZW1pcnJvci9y
ZXNvdXJjZXMvcHJldHR5cHJpbnRpbmcvY3NzLXRlc3RzL2NhbGMuY3NzCisrKyAvZGV2L251bGwK
QEAgLTEsNyArMCwwIEBACi0vKiBDQUxDIEVYUFJFU1NJT05TICovCi0vKiBGSVhNRTogbmVnYXRp
dmUgbnVtYmVycyBjYW4gYmUgaW1wcm92ZWQgKi8KLWRpdnt3aWR0aDotd2Via2l0LWNhbGMoMTAw
JSs4MHB4KzFlbSk7fQotZGl2e3dpZHRoOi13ZWJraXQtY2FsYygxMDAlLzYpO30KLWRpdnt3aWR0
aDotd2Via2l0LWNhbGMoMTAlKjYpO30KLWRpdnt3aWR0aDpjYWxjKC05NjBweCs3NSUpO30KLWRp
dnt3aWR0aDpjYWxjKDEwMHZ3LTUwdncpO30KKiBVbm1lcmdlZCBwYXRoIExheW91dFRlc3RzL2lu
c3BlY3Rvci9jb2RlbWlycm9yL3Jlc291cmNlcy9wcmV0dHlwcmludGluZy9jc3MtdGVzdHMvZ3Jh
ZGllbnQtZXhwZWN0ZWQuY3NzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29k
ZW1pcnJvci9yZXNvdXJjZXMvcHJldHR5cHJpbnRpbmcvY3NzLXRlc3RzL2dyYWRpZW50LmNzcyBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9jb2RlbWlycm9yL3Jlc291cmNlcy9wcmV0dHlwcmludGlu
Zy9jc3MtdGVzdHMvZ3JhZGllbnQuY3NzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBm
MzU2MmFkNGE4Ny4uMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvZGVt
aXJyb3IvcmVzb3VyY2VzL3ByZXR0eXByaW50aW5nL2Nzcy10ZXN0cy9ncmFkaWVudC5jc3MKKysr
IC9kZXYvbnVsbApAQCAtMSw3ICswLDAgQEAKLS5kb3QtbmF2Om50aC1jaGlsZCgxbikgbGkgYS5h
Y3RpdmUgewotICAgIHRvcDowO2JhY2tncm91bmQ6IzA4YzsKLQliYWNrZ3JvdW5kOi13ZWJraXQt
Z3JhZGllbnQobGluZWFyLGxlZnR0b3AsbGVmdGJvdHRvbSxjb2xvci1zdG9wKDAlLHJnYigxMjYs
MTk4LDIzNCkpLGNvbG9yLXN0b3AoMjQlLHJnYig3MCwxNzksMjM0KSksY29sb3Itc3RvcCgxMDAl
LHJnYigzLDEzNSwyMDEpKSk7Ci0JYmFja2dyb3VuZDotd2Via2l0LWxpbmVhci1ncmFkaWVudCh0
b3AscmdiKDEyNiwxOTgsMjM0KTAlLHJnYig3MCwxNzksMjM0KTQ1JSxyZ2IoMywxMzUsMjAxKTEw
MCUpOwotCWJhY2tncm91bmQ6ICAgLW1vei1saW5lYXItZ3JhZGllbnQodG9wLHJnYigxMjYsMTk4
LDIzNCkwJSxyZ2IoNzAsMTc5LDIzNCk0NSUscmdiKDMsMTM1LDIwMSkxMDAlKTsKLQliYWNrZ3Jv
dW5kOiAgICAgICAgbGluZWFyLWdyYWRpZW50KHRvcCxyZ2IoMTI2LDE5OCwyMzQpMCUscmdiKDcw
LDE3OSwyMzQpNDUlLHJnYigzLDEzNSwyMDEpMTAwJSk7Ci19CiogVW5tZXJnZWQgcGF0aCBMYXlv
dXRUZXN0cy9pbnNwZWN0b3IvY29kZW1pcnJvci9yZXNvdXJjZXMvcHJldHR5cHJpbnRpbmcvY3Nz
LXRlc3RzL2tleWZyYW1lcy1leHBlY3RlZC5jc3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9jb2RlbWlycm9yL3Jlc291cmNlcy9wcmV0dHlwcmludGluZy9jc3MtdGVzdHMva2V5
ZnJhbWVzLmNzcyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb2RlbWlycm9yL3Jlc291cmNlcy9w
cmV0dHlwcmludGluZy9jc3MtdGVzdHMva2V5ZnJhbWVzLmNzcwpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggYmQ4OGI1NmNjNDkuLjAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9jb2RlbWlycm9yL3Jlc291cmNlcy9wcmV0dHlwcmludGluZy9jc3MtdGVzdHMva2V5
ZnJhbWVzLmNzcworKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLUAtd2Via2l0LWtleWZyYW1l
cyBzcGluezAley13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgtMTgwZGVnKXRyYW5zbGF0ZSgwcHgs
MHB4KTt9MTAwJXstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMTgwZGVnKXRyYW5zbGF0ZSgxMHB4
LDc1cHgpO319CiogVW5tZXJnZWQgcGF0aCBMYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29kZW1pcnJv
ci9yZXNvdXJjZXMvcHJldHR5cHJpbnRpbmcvY3NzLXRlc3RzL21lZGlhLXF1ZXJ5LWV4cGVjdGVk
LmNzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvZGVtaXJyb3IvcmVzb3Vy
Y2VzL3ByZXR0eXByaW50aW5nL2Nzcy10ZXN0cy9tZWRpYS1xdWVyeS5jc3MgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvY29kZW1pcnJvci9yZXNvdXJjZXMvcHJldHR5cHJpbnRpbmcvY3NzLXRlc3Rz
L21lZGlhLXF1ZXJ5LmNzcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjg2YmNmZmMw
OWEuLjAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb2RlbWlycm9yL3Jl
c291cmNlcy9wcmV0dHlwcmludGluZy9jc3MtdGVzdHMvbWVkaWEtcXVlcnkuY3NzCisrKyAvZGV2
L251bGwKQEAgLTEsNiArMCwwIEBACi0vKiBNRURJQSBRVUVSWSBJTkRFTlRBVElPTiAqLwotQG1l
ZGlhIHByaW50e2JvZHksI21haW4sI2NvbnRlbnR7Y29sb3I6IzAwMCFpbXBvcnRhbnQ7fWEsYTps
aW5rLGE6dmlzaXRlZHtjb2xvcjojMDAwIWltcG9ydGFudDt0ZXh0LWRlY29yYXRpb246bm9uZSFp
bXBvcnRhbnQ7fSN0YWJzLCNnbG9iYWxoZWFkZXIsI2dsb2JhbGZvb3RlciwjZGlyZWN0b3J5bmF2
LC5ub3ByaW50LC5oaWRle2Rpc3BsYXk6bm9uZSFpbXBvcnRhbnQ7fSNtYWluIGEucGRmLCNtYWlu
IGEuaHRtbCwjbWFpbiBhLnF0LCNtYWluIGEuaWNhbCwjbWFpbiBhLmRsLCNtYWluIGEuZG1nLCNt
YWluIGEuemlwLCNtYWluIGEua2V5bm90ZSwjbWFpbiBhLmF1ZGlve3BhZGRpbmctbGVmdDowO2Jh
Y2tncm91bmQtaW1hZ2U6bm9uZTt9fQotCi0vKiBNRURJQSBRVUVSWSAqLwotQG1lZGlhIHNjcmVl
biBhbmQobWF4LWRldmljZS13aWR0aDo0ODBweCl7aHRtbHstd2Via2l0LXRleHQtc2l6ZS1hZGp1
c3Q6bm9uZTt9fQotQG1lZGlhIG5vdCgoc2NyZWVuKWFuZChwcmludCkpLChwcmludCl7Ym9keXtj
b2xvcjpyZWR9fQoqIFVubWVyZ2VkIHBhdGggTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvZGVtaXJy
b3IvcmVzb3VyY2VzL3ByZXR0eXByaW50aW5nL2Nzcy10ZXN0cy9zZWxlY3RvcnMtZXhwZWN0ZWQu
Y3NzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29kZW1pcnJvci9yZXNvdXJj
ZXMvcHJldHR5cHJpbnRpbmcvY3NzLXRlc3RzL3NlbGVjdG9ycy5jc3MgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvY29kZW1pcnJvci9yZXNvdXJjZXMvcHJldHR5cHJpbnRpbmcvY3NzLXRlc3RzL3Nl
bGVjdG9ycy5jc3MKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVhM2VmN2M0YjQ3Li4w
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29kZW1pcnJvci9yZXNvdXJj
ZXMvcHJldHR5cHJpbnRpbmcvY3NzLXRlc3RzL3NlbGVjdG9ycy5jc3MKKysrIC9kZXYvbnVsbApA
QCAtMSw1ICswLDAgQEAKLS8qIFNIT1JUIFNFTEVDVE9SLCBFTVBUWSBDT05URU5UICovCi1he30K
LQotLyogQ09NUExFWCBTRUxFQ1RPUiAqLwotZGl2IGRpdj5kaXYjaWQuZm9vLmJhcjpob3ZlciAu
c29tZXRoaW5nPi5jaGlsZH4uc2libGluZysuc2libGluZzo6YWZ0ZXJ7Y29sb3I6cmVkO30KKiBV
bm1lcmdlZCBwYXRoIExheW91dFRlc3RzL2luc3BlY3Rvci9jb2RlbWlycm9yL3Jlc291cmNlcy9w
cmV0dHlwcmludGluZy9jc3MtdGVzdHMvd3JhcHBpbmctZXhwZWN0ZWQuY3NzCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29kZW1pcnJvci9yZXNvdXJjZXMvcHJldHR5cHJpbnRp
bmcvY3NzLXRlc3RzL3dyYXBwaW5nLmNzcyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb2RlbWly
cm9yL3Jlc291cmNlcy9wcmV0dHlwcmludGluZy9jc3MtdGVzdHMvd3JhcHBpbmcuY3NzCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwYTVhN2EzOWJkYS4uMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvZGVtaXJyb3IvcmVzb3VyY2VzL3ByZXR0eXByaW50aW5n
L2Nzcy10ZXN0cy93cmFwcGluZy5jc3MKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLS8q
IExPTkcgTElTVFMgU0hPVUxEIFdSQVAgKi8KLWEuYnJvd3Nld2ViYXBwc3MsYS5idXNpbmVzc3N0
b3JlcyxhLmJ1eWlwaG9uZXMsYS5idXlub3dzLGEuYnV5bm93cy1hcnJvdyxhLmNvbWluZ3Nvb25z
LHA6OmJlZm9yZSxhLmRlc2NhcmdhcmFob3JhcyxhLmRvd25sb2FkaXR1bmVzcyxhLmRvd25sb2Fk
bm93cyxhLmZpbmRzLGEuZnJlZXRyaWFscyxhLmdldHN0YXJ0ZWRzLGEuZ29zLGEuaG93dG9hcHBs
eXMsYS5ob3d0b2J1eXMsYS5qb2lubm93cyxhLmxlYXJubW9yZXMsYS5uaWtlYnV5bm93cyxhLm5v
dGlmeW1lcyxhLm9yZGVybm93cyxhLnByZW9yZGVybm93cyxhLnByZW9yZGVycyxhLnJlc2VydmVz
LGEuc3RhcnR5b3Vyc2VhcmNocyxhLnN1Ym1pdHMsYS50cnlhbWFjcyxhLnVwZ3JhZGVub3dzIHtj
b2xvcjpyZWR9Ci1hLmJyb3dzZXdlYmFwcHNzOmhvdmVyLGEuYnVzaW5lc3NzdG9yZXM6aG92ZXIs
YS5idXlpcGhvbmVzOmhvdmVyLGEuYnV5bm93czpob3ZlcixhLmJ1eW5vd3MtYXJyb3c6aG92ZXIs
YS5jb21pbmdzb29uczpob3ZlcixwOjpiZWZvcmUsYS5kZXNjYXJnYXJhaG9yYXM6aG92ZXIsYS5k
b3dubG9hZGl0dW5lc3M6aG92ZXIsYS5kb3dubG9hZG5vd3M6aG92ZXIsYS5maW5kczpob3Zlcixh
LmZyZWV0cmlhbHM6aG92ZXIsYS5nZXRzdGFydGVkczpob3ZlcixhLmdvczpob3ZlcixhLmhvd3Rv
YXBwbHlzOmhvdmVyLGEuaG93dG9idXlzOmhvdmVyLGEuam9pbm5vd3M6aG92ZXIsYS5sZWFybm1v
cmVzOmhvdmVyLGEubmlrZWJ1eW5vd3M6aG92ZXIsYS5ub3RpZnltZXM6aG92ZXIsYS5vcmRlcm5v
d3M6aG92ZXIsYS5wcmVvcmRlcm5vd3M6aG92ZXIsYS5wcmVvcmRlcnM6aG92ZXIsYS5yZXNlcnZl
czpob3ZlcixhLnN0YXJ0eW91cnNlYXJjaHM6aG92ZXIsYS5zdWJtaXRzOmhvdmVyLGEudHJ5YW1h
Y3M6aG92ZXIsYS51cGdyYWRlbm93czpob3ZlciB7Y29sb3I6cmVkfQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2NvZGVtaXJyb3IvcmVzb3VyY2VzL3ByZXR0eXByaW50aW5nL2ph
dmFzY3JpcHQtdGVzdHMvYmxvY2stY29tbWVudC1leHBlY3RlZC5qcyBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9jb2RlbWlycm9yL3Jlc291cmNlcy9wcmV0dHlwcmludGluZy9qYXZhc2NyaXB0LXRl
c3RzL2Jsb2NrLWNvbW1lbnQtZXhwZWN0ZWQuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDQyNWMwZjEyMzVjLi4wMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
Y29kZW1pcnJvci9yZXNvdXJjZXMvcHJldHR5cHJpbnRpbmcvamF2YXNjcmlwdC10ZXN0cy9ibG9j
ay1jb21tZW50LWV4cGVjdGVkLmpzCisrKyAvZGV2L251bGwKQEAgLTEsNCArMCwwIEBACi0vKgot
ICogVGVzdAotICovCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb2RlbWly
cm9yL3Jlc291cmNlcy9wcmV0dHlwcmludGluZy9qYXZhc2NyaXB0LXRlc3RzL2Jsb2NrLWNvbW1l
bnQuanMgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29kZW1pcnJvci9yZXNvdXJjZXMvcHJldHR5
cHJpbnRpbmcvamF2YXNjcmlwdC10ZXN0cy9ibG9jay1jb21tZW50LmpzCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA4MzViZjI1NDk5MC4uMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2NvZGVtaXJyb3IvcmVzb3VyY2VzL3ByZXR0eXByaW50aW5nL2phdmFzY3Jp
cHQtdGVzdHMvYmxvY2stY29tbWVudC5qcworKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAot
LyoKLSAqIFRlc3QKLSAqLwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvZGVt
aXJyb3IvcmVzb3VyY2VzL3ByZXR0eXByaW50aW5nL2phdmFzY3JpcHQtdGVzdHMvZG8td2hpbGUt
bG9vcC1leHBlY3RlZC5qcyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb2RlbWlycm9yL3Jlc291
cmNlcy9wcmV0dHlwcmludGluZy9qYXZhc2NyaXB0LXRlc3RzL2RvLXdoaWxlLWxvb3AtZXhwZWN0
ZWQuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA4NWEyMGI1MDc1Li4wMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29kZW1pcnJvci9yZXNvdXJjZXMvcHJl
dHR5cHJpbnRpbmcvamF2YXNjcmlwdC10ZXN0cy9kby13aGlsZS1sb29wLWV4cGVjdGVkLmpzCisr
KyAvZGV2L251bGwKQEAgLTEsNCArMCwwIEBACi1kbyB7Ci0gICAgIngiCi19IHdoaWxlICgwKTsK
LQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvZGVtaXJyb3IvcmVzb3VyY2Vz
L3ByZXR0eXByaW50aW5nL2phdmFzY3JpcHQtdGVzdHMvZG8td2hpbGUtbG9vcC5qcyBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9jb2RlbWlycm9yL3Jlc291cmNlcy9wcmV0dHlwcmludGluZy9qYXZh
c2NyaXB0LXRlc3RzL2RvLXdoaWxlLWxvb3AuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGFlYjNlYmUzN2U3Li4wMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
Y29kZW1pcnJvci9yZXNvdXJjZXMvcHJldHR5cHJpbnRpbmcvamF2YXNjcmlwdC10ZXN0cy9kby13
aGlsZS1sb29wLmpzCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotZG97IngifXdoaWxlKDAp
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvZGVtaXJyb3IvcmVzb3VyY2Vz
L3ByZXR0eXByaW50aW5nL2phdmFzY3JpcHQtdGVzdHMvZG8td2hpbGUtd2l0aGluLWlmLWV4cGVj
dGVkLmpzIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvZGVtaXJyb3IvcmVzb3VyY2VzL3ByZXR0
eXByaW50aW5nL2phdmFzY3JpcHQtdGVzdHMvZG8td2hpbGUtd2l0aGluLWlmLWV4cGVjdGVkLmpz
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5MzNkNWJjNWViYS4uMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvZGVtaXJyb3IvcmVzb3VyY2VzL3ByZXR0eXBy
aW50aW5nL2phdmFzY3JpcHQtdGVzdHMvZG8td2hpbGUtd2l0aGluLWlmLWV4cGVjdGVkLmpzCisr
KyAvZGV2L251bGwKQEAgLTEsNiArMCwwIEBACi1pZiAodHJ1ZSkgewotICAgIGRvIHsKLSAgICAg
ICAgdmFyIHg7Ci0gICAgfSB3aGlsZSAoMCk7Ci19Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9jb2RlbWlycm9yL3Jlc291cmNlcy9wcmV0dHlwcmludGluZy9qYXZhc2NyaXB0
LXRlc3RzL2RvLXdoaWxlLXdpdGhpbi1pZi5qcyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb2Rl
bWlycm9yL3Jlc291cmNlcy9wcmV0dHlwcmludGluZy9qYXZhc2NyaXB0LXRlc3RzL2RvLXdoaWxl
LXdpdGhpbi1pZi5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTI4N2U5YTViMjYu
LjAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb2RlbWlycm9yL3Jlc291
cmNlcy9wcmV0dHlwcmludGluZy9qYXZhc2NyaXB0LXRlc3RzL2RvLXdoaWxlLXdpdGhpbi1pZi5q
cworKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLWlmICh0cnVlKSB7IGRvIHt2YXIgeDt9IHdo
aWxlICgwKTt9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29kZW1pcnJvci9y
ZXNvdXJjZXMvcHJldHR5cHJpbnRpbmcvamF2YXNjcmlwdC10ZXN0cy9pZi1mb2xsb3dlZC1ieS13
aGlsZS1leHBlY3RlZC5qcyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb2RlbWlycm9yL3Jlc291
cmNlcy9wcmV0dHlwcmludGluZy9qYXZhc2NyaXB0LXRlc3RzL2lmLWZvbGxvd2VkLWJ5LXdoaWxl
LWV4cGVjdGVkLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyYjU5OTJiZTRjYy4u
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvZGVtaXJyb3IvcmVzb3Vy
Y2VzL3ByZXR0eXByaW50aW5nL2phdmFzY3JpcHQtdGVzdHMvaWYtZm9sbG93ZWQtYnktd2hpbGUt
ZXhwZWN0ZWQuanMKKysrIC9kZXYvbnVsbApAQCAtMSw3ICswLDAgQEAKLWlmICh4ID09IDIpIHsK
LSAgICB2YXIgeQotfQotd2hpbGUgKDApIHsKLSAgICB5ID0gMwotfQotCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvY29kZW1pcnJvci9yZXNvdXJjZXMvcHJldHR5cHJpbnRpbmcv
amF2YXNjcmlwdC10ZXN0cy9pZi1mb2xsb3dlZC1ieS13aGlsZS5qcyBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9jb2RlbWlycm9yL3Jlc291cmNlcy9wcmV0dHlwcmludGluZy9qYXZhc2NyaXB0LXRl
c3RzL2lmLWZvbGxvd2VkLWJ5LXdoaWxlLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA5OTBmOTNlM2NmMi4uMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nv
ZGVtaXJyb3IvcmVzb3VyY2VzL3ByZXR0eXByaW50aW5nL2phdmFzY3JpcHQtdGVzdHMvaWYtZm9s
bG93ZWQtYnktd2hpbGUuanMKKysrIC9kZXYvbnVsbApAQCAtMSArMCwwIEBACi1pZih4PT0yKXt2
YXIgeX13aGlsZSgwKXt5PTN9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29k
ZW1pcnJvci9yZXNvdXJjZXMvcHJldHR5cHJpbnRpbmcvamF2YXNjcmlwdC10ZXN0cy9pZi13aGls
ZS13aXRoaW4tZG8td2hpbGUtZXhwZWN0ZWQuanMgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29k
ZW1pcnJvci9yZXNvdXJjZXMvcHJldHR5cHJpbnRpbmcvamF2YXNjcmlwdC10ZXN0cy9pZi13aGls
ZS13aXRoaW4tZG8td2hpbGUtZXhwZWN0ZWQuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDgxYmZiYTM3YWU0Li4wMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
Y29kZW1pcnJvci9yZXNvdXJjZXMvcHJldHR5cHJpbnRpbmcvamF2YXNjcmlwdC10ZXN0cy9pZi13
aGlsZS13aXRoaW4tZG8td2hpbGUtZXhwZWN0ZWQuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxMyAr
MCwwIEBACi1kbyB7Ci0gICAgaWYgKHRydWUpIHsKLSAgICAgICAgdmFyIHg7Ci0gICAgfQotICAg
IHdoaWxlICgwKSB7Ci0gICAgICAgIHggPSAxOwotICAgIH0KLSAgICBpZiAodHJ1ZSkKLSAgICAg
ICAgdmFyIHk7Ci0gICAgd2hpbGUgKDApCi0gICAgICAgIHkgPSAxOwotfSB3aGlsZSAoMCk7Ci0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb2RlbWlycm9yL3Jlc291cmNlcy9w
cmV0dHlwcmludGluZy9qYXZhc2NyaXB0LXRlc3RzL2lmLXdoaWxlLXdpdGhpbi1kby13aGlsZS5q
cyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb2RlbWlycm9yL3Jlc291cmNlcy9wcmV0dHlwcmlu
dGluZy9qYXZhc2NyaXB0LXRlc3RzL2lmLXdoaWxlLXdpdGhpbi1kby13aGlsZS5qcwpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjA2MzQ5ZmJhMzAuLjAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9jb2RlbWlycm9yL3Jlc291cmNlcy9wcmV0dHlwcmludGluZy9q
YXZhc2NyaXB0LXRlc3RzL2lmLXdoaWxlLXdpdGhpbi1kby13aGlsZS5qcworKysgL2Rldi9udWxs
CkBAIC0xICswLDAgQEAKLWRvIHtpZiAodHJ1ZSkge3ZhciB4O313aGlsZSAoMCkge3ggPSAxO31p
ZiAodHJ1ZSl2YXIgeTt3aGlsZSAoMCl5ID0gMTt9d2hpbGUgKDApOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2NvZGVtaXJyb3IvcmVzb3VyY2VzL3ByZXR0eXByaW50aW5nL2ph
dmFzY3JpcHQtdGVzdHMvc2luZ2xlLXN0YXRlbWVudC1ibG9ja3MtZXhwZWN0ZWQuanMgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvY29kZW1pcnJvci9yZXNvdXJjZXMvcHJldHR5cHJpbnRpbmcvamF2
YXNjcmlwdC10ZXN0cy9zaW5nbGUtc3RhdGVtZW50LWJsb2Nrcy1leHBlY3RlZC5qcwpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDIxNjc2YTJkM2QuLjAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9jb2RlbWlycm9yL3Jlc291cmNlcy9wcmV0dHlwcmludGluZy9q
YXZhc2NyaXB0LXRlc3RzL3NpbmdsZS1zdGF0ZW1lbnQtYmxvY2tzLWV4cGVjdGVkLmpzCisrKyAv
ZGV2L251bGwKQEAgLTEsODkgKzAsMCBAQAotaWYgKHRydWUpCi0gICAgaWYgKHRydWUpCi0gICAg
ICAgIGFsZXJ0KDEpOwotICAgIGVsc2UgaWYgKHRydWUpCi0gICAgICAgIGFsZXJ0KDIpOwotICAg
IGVsc2UKLSAgICAgICAgYWxlcnQoMyk7Ci0KLWlmICh0cnVlKQotICAgIGlmICh0cnVlKSB7Ci0g
ICAgICAgIGFsZXJ0KDEpCi0gICAgfSBlbHNlCi0gICAgICAgIGFsZXJ0KDIpOwotCi1pZiAodHJ1
ZSkKLSAgICBpZiAodHJ1ZSkgewotICAgICAgICB2YXIgYSA9IDE7Ci0gICAgICAgIHZhciBiID0g
ewotICAgICAgICAgICAgYTogMQotICAgICAgICB9OwotICAgIH0gZWxzZQotICAgICAgICBhbGVy
dCgyKTsKLQotZnVuY3Rpb24oKSB7Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDA7ICsraSkK
LSAgICAgICAgaWYgKHRydWUpCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICByZXR1cm4g
ZmFsc2U7Ci19Ci0KLWZ1bmN0aW9uIGZvbyhjbSkgewotICAgIGlmICh0cnVlKQotICAgICAgICBy
ZXR1cm47Ci0gICAgZWxzZQotICAgICAgICBmYWxzZTsKLX0KLQotaWYgKHRydWUpIHsKLSAgICBp
ZiAoZmFsc2UpCi0gICAgICAgIGlmICh0cnVlKSB7Ci0gICAgICAgICAgICB0cnVlOwotICAgICAg
ICB9Ci0gICAgcmV0dXJuIDI7Ci19Ci0KLWlmICh0cnVlKSB7Ci0gICAgaWYgKGZhbHNlKQotICAg
ICAgICBpZiAodHJ1ZSkKLSAgICAgICAgICAgIHRydWU7Ci0gICAgICAgIGVsc2UKLSAgICAgICAg
ICAgIGZhbHNlOwotICAgIGVsc2UgaWYgKHRydWUpCi0gICAgICAgIHRydWU7Ci0gICAgZWxzZQot
ICAgICAgICBmYWxzZTsKLX0KLQotaWYgKHRydWUpCi0gICAgZm9yICg7IDspCi0gICAgICAgIHRy
dWU7Ci1lbHNlCi0gICAgd2hpbGUgKHRydWUpCi0gICAgICAgIHRydWU7Ci0KLWZ1bmN0aW9uKCkg
ewotICAgIGlmICh0cnVlKSB7Ci0gICAgICAgIGZvciAoOyA7KQotICAgICAgICAgICAgdHJ1ZTsK
LSAgICB9IGVsc2UgaWYgKDEpCi0gICAgICAgIGZvciAoOyA7KQotICAgICAgICAgICAgdHJ1ZTsK
LSAgICByZXR1cm47Ci19Ci0KLWRvCi0gICAgdHJ1ZTsKLXdoaWxlICh0cnVlKTsKLQotaWYgKHgg
PT0gMSkKLSAgICBhbGVydCgxKTsKLWVsc2UgaWYgKHggPT0gMikKLSAgICBhbGVydCgyKTsKLWVs
c2UKLSAgICBhbGVydCgzKTsKLQotLy8gRklYTUU6IEZhaWxpbmcuCi0KLS8vIGlmKHRydWUpdHJ5
e3RydWU7fWNhdGNoKGUpe3RydWU7fWZpbmFsbHl7dHJ1ZTt9Ci0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9jb2RlbWlycm9yL3Jlc291cmNlcy9wcmV0dHlwcmludGluZy9qYXZh
c2NyaXB0LXRlc3RzL3NpbmdsZS1zdGF0ZW1lbnQtYmxvY2tzLmpzIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2NvZGVtaXJyb3IvcmVzb3VyY2VzL3ByZXR0eXByaW50aW5nL2phdmFzY3JpcHQtdGVz
dHMvc2luZ2xlLXN0YXRlbWVudC1ibG9ja3MuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDkyZDRkZmE1OTlmLi4wMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
Y29kZW1pcnJvci9yZXNvdXJjZXMvcHJldHR5cHJpbnRpbmcvamF2YXNjcmlwdC10ZXN0cy9zaW5n
bGUtc3RhdGVtZW50LWJsb2Nrcy5qcworKysgL2Rldi9udWxsCkBAIC0xLDI1ICswLDAgQEAKLWlm
KHRydWUpaWYodHJ1ZSlhbGVydCgxKTtlbHNlIGlmKHRydWUpYWxlcnQoMik7ZWxzZSBhbGVydCgz
KTsKLQotaWYodHJ1ZSlpZih0cnVlKXthbGVydCgxKX1lbHNlIGFsZXJ0KDIpOwotCi1pZih0cnVl
KWlmKHRydWUpe3ZhciBhPTE7dmFyIGI9e2E6MX07fWVsc2UgYWxlcnQoMik7Ci0KLWZ1bmN0aW9u
KCl7Zm9yKHZhciBpPTA7aTwxMDA7KytpKWlmKHRydWUpcmV0dXJuIHRydWU7cmV0dXJuIGZhbHNl
O30KLQotZnVuY3Rpb24gZm9vKGNtKXtpZih0cnVlKXJldHVybjtlbHNlIGZhbHNlO30KLQotaWYo
dHJ1ZSl7aWYoZmFsc2UpaWYodHJ1ZSl7dHJ1ZTt9cmV0dXJuIDI7fQotCi1pZih0cnVlKXtpZihm
YWxzZSlpZih0cnVlKXRydWU7ZWxzZSBmYWxzZTtlbHNlIGlmKHRydWUpdHJ1ZTtlbHNlIGZhbHNl
O30KLQotaWYodHJ1ZSlmb3IoOzspdHJ1ZTtlbHNlIHdoaWxlKHRydWUpdHJ1ZTsKLQotZnVuY3Rp
b24oKXtpZih0cnVlKXtmb3IoOzspdHJ1ZTt9ZWxzZSBpZigxKWZvcig7Oyl0cnVlO3JldHVybjt9
Ci0KLWRvIHRydWU7d2hpbGUodHJ1ZSk7Ci0KLWlmKHg9PTEpYWxlcnQoMSk7ZWxzZSBpZih4PT0y
KWFsZXJ0KDIpO2Vsc2UgYWxlcnQoMyk7Ci0KLS8vIEZJWE1FOiBGYWlsaW5nLgotCi0vLyBpZih0
cnVlKXRyeXt0cnVlO31jYXRjaChlKXt0cnVlO31maW5hbGx5e3RydWU7fQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvZGVtaXJyb3IvcmVzb3VyY2VzL3ByZXR0eXByaW50aW5n
L2phdmFzY3JpcHQtdGVzdHMvc3dpdGNoLWNhc2UtZGVmYXVsdC1leHBlY3RlZC5qcyBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9jb2RlbWlycm9yL3Jlc291cmNlcy9wcmV0dHlwcmludGluZy9qYXZh
c2NyaXB0LXRlc3RzL3N3aXRjaC1jYXNlLWRlZmF1bHQtZXhwZWN0ZWQuanMKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDZlMmQ5NWU0MGY1Li4wMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvY29kZW1pcnJvci9yZXNvdXJjZXMvcHJldHR5cHJpbnRpbmcvamF2YXNj
cmlwdC10ZXN0cy9zd2l0Y2gtY2FzZS1kZWZhdWx0LWV4cGVjdGVkLmpzCisrKyAvZGV2L251bGwK
QEAgLTEsMjcgKzAsMCBAQAotZnVuY3Rpb24gQ3RvcjEoKSB7Ci0gICAgdGhpcy5jYXNlID0gMTsK
LSAgICB0aGlzLnNvbWV0aGluZyA9IDI7Ci19Ci1mdW5jdGlvbiBDdG9yMigpIHsKLSAgICB0aGlz
LmRlZmF1bHQgPSAxOwotICAgIHRoaXMuc29tZXRoaW5nID0gMjsKLX0KLQotc3dpdGNoICh4KSB7
Ci1jYXNlICJhYmMiOgotICAgIHJldHVybiB0aGlzLmRlZmF1bHQ7Ci1jYXNlICJkZWYiOgotICAg
IHJldHVybiB0aGlzLmNhc2U7Ci1kZWZhdWx0OgotICAgIHJldHVybiAzOwotfQotCi1zd2l0Y2gg
KHgpIHsKLWNhc2UgImFiYyI6Ci0gICAgcmV0dXJuIDE7Ci1jYXNlICJkZWYiOgotICAgIHJldHVy
biAyOwotZGVmYXVsdDoKLSAgICByZXR1cm4gMzsKLX0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2NvZGVtaXJyb3IvcmVzb3VyY2VzL3ByZXR0eXByaW50aW5nL2phdmFzY3Jp
cHQtdGVzdHMvc3dpdGNoLWNhc2UtZGVmYXVsdC5qcyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9j
b2RlbWlycm9yL3Jlc291cmNlcy9wcmV0dHlwcmludGluZy9qYXZhc2NyaXB0LXRlc3RzL3N3aXRj
aC1jYXNlLWRlZmF1bHQuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg3N2Q5ODgx
Zjk1Li4wMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29kZW1pcnJvci9y
ZXNvdXJjZXMvcHJldHR5cHJpbnRpbmcvamF2YXNjcmlwdC10ZXN0cy9zd2l0Y2gtY2FzZS1kZWZh
dWx0LmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTMgKzAsMCBAQAotZnVuY3Rpb24gQ3RvcjEoKXt0
aGlzLmNhc2U9MTt0aGlzLnNvbWV0aGluZz0yO30KLWZ1bmN0aW9uIEN0b3IyKCl7dGhpcy5kZWZh
dWx0PTE7dGhpcy5zb21ldGhpbmc9Mjt9Ci0KLXN3aXRjaCh4KXtjYXNlICJhYmMiOnJldHVybiB0
aGlzLmRlZmF1bHQ7Y2FzZSAiZGVmIjpyZXR1cm4gdGhpcy5jYXNlO2RlZmF1bHQ6cmV0dXJuIDM7
fQotCi1zd2l0Y2goeCl7Ci0gIGNhc2UgImFiYyI6Ci0gICAgcmV0dXJuIDE7Ci0gIGNhc2UgImRl
ZiI6Ci0gICAgcmV0dXJuIDI7Ci0gIGRlZmF1bHQ6Ci0gICAgcmV0dXJuIDM7Ci19CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29kZW1pcnJvci9yZXNvdXJjZXMvcHJldHR5cHJp
bnRpbmcvamF2YXNjcmlwdC10ZXN0cy91bmFyeS1iaW5hcnktb3BlcmF0b3JzLWV4cGVjdGVkLmpz
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvZGVtaXJyb3IvcmVzb3VyY2VzL3ByZXR0eXByaW50
aW5nL2phdmFzY3JpcHQtdGVzdHMvdW5hcnktYmluYXJ5LW9wZXJhdG9ycy1leHBlY3RlZC5qcwpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzY5ZmExMWIyZTcuLjAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb2RlbWlycm9yL3Jlc291cmNlcy9wcmV0dHlwcmlu
dGluZy9qYXZhc2NyaXB0LXRlc3RzL3VuYXJ5LWJpbmFyeS1vcGVyYXRvcnMtZXhwZWN0ZWQuanMK
KysrIC9kZXYvbnVsbApAQCAtMSw0NSArMCwwIEBACi0rMTsKLS0xOwotfjE7Ci0hMTsKLSEhMTsK
LTEgKyAxIC0gMSAqIDEgLyAxICUgMTsKLTEuMiArIDEuMiAtIDEuMiAqIDEuMiAvIDEuMiAlIDEu
MjsKLSgxICsgMSAtIDEgKiAxIC8gMSAlIDEpOwotKDEpICsgKDEpIC0gKDEpICogKDEpIC8gKDEp
ICUgKDEpOwotKygxKTsKLStzOwotLXM7Ci1+czsKLXggPSAxOwoteCA9IDFlMjsKLXggPSAxICsg
MTsKLXggPSAxZTIgKyAxZTI7Ci14ID0geCArIDE7Ci14ID0geCA9IHg7Ci14ID0geFsxXSArIDE7
Ci14ID0gWzFdOwoteCA9ICgxKTsKLXggPSAocyk7Ci14ID0gWzEsIDEsIHNdOwotZm9vKDEsIDEs
IHMpOwoteCA9IFsxICsgMSAtIDEgKiAxIC8gMSAlIDEsICsxLCAxIC0gMSwgLTEsIH4xLCAtcywg
cyArIDEsIHMgLSAxLCBhWzFdICsgMSwgYVsxXSAtIDFdOwotZm9vKDEgKyAxIC0gMSAqIDEgLyAx
ICUgMSwgKzEsIDEgLSAxLCAtMSwgfjEsIC1zLCBzICsgMSwgcyAtIDEsIGFbMV0gKyAxLCBhWzFd
IC0gMSk7Ci14ID0gWy0xICsgMSAqIDEgLyAxICUgMV07Ci14ID0gKC0xICsgMSAqIDEgLyAxICUg
MSk7Ci14ID0gMSA/ICsxIDogLXM7Ci14ID0gKDEgPyArMSA6IC1zKTsKLXggPSBbMSA/IC0xIDog
K3NdOwoteCA9IHsKLSAgICBhOiAtMSwKLSAgICBiOiArMSwKLSAgICBjOiAxIC0gMSwKLSAgICBk
OiAxLAotICAgIHM6IHMKLX07Ci0vLyBGSVhNRTogU3RpbGwgYnJva2VuIGNhc2VzLiBDb2RlbWly
cm9yIHRyZWF0cyBhZGphY2VudCBvcGVyYXRvciBjaGFyYWN0ZXJzIGFzIG9uZSBvcGVyYXRvci4g
Rm9yIGV4YW1wbGU6Ci0vLyB4PSsxIC8vIENvZGVtaXJyb3IgdHJlYXRzICI9KyIgYXMgYSBzaW5n
bGUgb3BlcmF0b3IuCi0vLyB4PTE/KzE6MSAvLyBDb2RlbWlycm9yIHRyZWF0cyAiPysiIGFzIGEg
c2luZ2xlIG9wZXJhdG9yLgotLy8geD0xKy0yKzEgLy8gQ29kZW1pcnJvciB0cmVhdHMgIistIiBh
cyBhIHNpbmdsZSBvcGVyYXRvci4KLS8vIHg9MS0rMisxIC8vIENvZGVtaXJyb3IgdHJlYXRzICIt
KyIgYXMgYSBzaW5nbGUgb3BlcmF0b3IuCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9jb2RlbWlycm9yL3Jlc291cmNlcy9wcmV0dHlwcmludGluZy9qYXZhc2NyaXB0LXRlc3Rz
L3VuYXJ5LWJpbmFyeS1vcGVyYXRvcnMuanMgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29kZW1p
cnJvci9yZXNvdXJjZXMvcHJldHR5cHJpbnRpbmcvamF2YXNjcmlwdC10ZXN0cy91bmFyeS1iaW5h
cnktb3BlcmF0b3JzLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmMjdjNjczOWQ0
My4uMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvZGVtaXJyb3IvcmVz
b3VyY2VzL3ByZXR0eXByaW50aW5nL2phdmFzY3JpcHQtdGVzdHMvdW5hcnktYmluYXJ5LW9wZXJh
dG9ycy5qcworKysgL2Rldi9udWxsCkBAIC0xLDM4ICswLDAgQEAKLSsxOwotLTE7Ci1+MTsKLSEx
OwotISExOwotMSsxLTEqMS8xJTE7Ci0xLjIrMS4yLTEuMioxLjIvMS4yJTEuMjsKLSgxKzEtMSox
LzElMSk7Ci0oMSkrKDEpLSgxKSooMSkvKDEpJSgxKTsKLSsoMSk7Ci0rczsKLS1zOwotfnM7Ci14
PTE7Ci14PTFlMjsKLXg9MSsxOwoteD0xZTIrMWUyOwoteD14KzE7Ci14PXg9eDsKLXg9eFsxXSsx
OwoteD1bMV07Ci14PSgxKTsKLXg9KHMpOwoteD1bMSwxLHNdOwotZm9vKDEsMSxzKTsKLXg9WzEr
MS0xKjEvMSUxLCsxLDEtMSwtMSx+MSwtcyxzKzEscy0xLGFbMV0rMSxhWzFdLTFdOwotZm9vKDEr
MS0xKjEvMSUxLCsxLDEtMSwtMSx+MSwtcyxzKzEscy0xLGFbMV0rMSxhWzFdLTEpOwoteD1bLTEr
MSoxLzElMV07Ci14PSgtMSsxKjEvMSUxKTsKLXg9MT8gKzE6LXM7Ci14PSgxPyArMTotcyk7Ci14
PVsxPyAtMTorc107Ci14PXthOi0xLGI6KzEsYzoxLTEsZDoxLHM6c307Ci0vLyBGSVhNRTogU3Rp
bGwgYnJva2VuIGNhc2VzLiBDb2RlbWlycm9yIHRyZWF0cyBhZGphY2VudCBvcGVyYXRvciBjaGFy
YWN0ZXJzIGFzIG9uZSBvcGVyYXRvci4gRm9yIGV4YW1wbGU6Ci0vLyB4PSsxIC8vIENvZGVtaXJy
b3IgdHJlYXRzICI9KyIgYXMgYSBzaW5nbGUgb3BlcmF0b3IuCi0vLyB4PTE/KzE6MSAvLyBDb2Rl
bWlycm9yIHRyZWF0cyAiPysiIGFzIGEgc2luZ2xlIG9wZXJhdG9yLgotLy8geD0xKy0yKzEgLy8g
Q29kZW1pcnJvciB0cmVhdHMgIistIiBhcyBhIHNpbmdsZSBvcGVyYXRvci4KLS8vIHg9MS0rMisx
IC8vIENvZGVtaXJyb3IgdHJlYXRzICItKyIgYXMgYSBzaW5nbGUgb3BlcmF0b3IuCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29kZW1pcnJvci9yZXNvdXJjZXMvcHJldHR5cHJp
bnRpbmcvamF2YXNjcmlwdC10ZXN0cy93aGlsZS13aXRoaW4tZG8td2hpbGUtZXhwZWN0ZWQuanMg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29kZW1pcnJvci9yZXNvdXJjZXMvcHJldHR5cHJpbnRp
bmcvamF2YXNjcmlwdC10ZXN0cy93aGlsZS13aXRoaW4tZG8td2hpbGUtZXhwZWN0ZWQuanMKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI0ZWIyM2ViZDNjLi4wMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29kZW1pcnJvci9yZXNvdXJjZXMvcHJldHR5cHJpbnRp
bmcvamF2YXNjcmlwdC10ZXN0cy93aGlsZS13aXRoaW4tZG8td2hpbGUtZXhwZWN0ZWQuanMKKysr
IC9kZXYvbnVsbApAQCAtMSw3ICswLDAgQEAKLWRvIHsKLSAgICB2YXIgY291bnRlciA9IDA7Ci0g
ICAgd2hpbGUgKGNvdW50ZXIgPCAzKSB7Ci0gICAgICAgIGNvdW50ZXIgKz0gMTsKLSAgICB9Ci19
IHdoaWxlICgwKTsKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvZGVtaXJy
b3IvcmVzb3VyY2VzL3ByZXR0eXByaW50aW5nL2phdmFzY3JpcHQtdGVzdHMvd2hpbGUtd2l0aGlu
LWRvLXdoaWxlLmpzIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvZGVtaXJyb3IvcmVzb3VyY2Vz
L3ByZXR0eXByaW50aW5nL2phdmFzY3JpcHQtdGVzdHMvd2hpbGUtd2l0aGluLWRvLXdoaWxlLmpz
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzMGU2NTEzYTAzNC4uMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvZGVtaXJyb3IvcmVzb3VyY2VzL3ByZXR0eXBy
aW50aW5nL2phdmFzY3JpcHQtdGVzdHMvd2hpbGUtd2l0aGluLWRvLXdoaWxlLmpzCisrKyAvZGV2
L251bGwKQEAgLTEgKzAsMCBAQAotZG97dmFyIGNvdW50ZXI9MDt3aGlsZShjb3VudGVyPDMpe2Nv
dW50ZXIrPTE7fX13aGlsZSgwKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9j
b2RlbWlycm9yL3Jlc291cmNlcy9wcmV0dHlwcmludGluZy91dGlsaXRpZXMuanMgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvY29kZW1pcnJvci9yZXNvdXJjZXMvcHJldHR5cHJpbnRpbmcvdXRpbGl0
aWVzLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0YjFkNjgyNzljZi4uMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvZGVtaXJyb3IvcmVzb3VyY2VzL3By
ZXR0eXByaW50aW5nL3V0aWxpdGllcy5qcworKysgL2Rldi9udWxsCkBAIC0xLDYyICswLDAgQEAK
LVRlc3RQYWdlLnJlZ2lzdGVySW5pdGlhbGl6ZXIoZnVuY3Rpb24oKSB7Ci0gICAgZnVuY3Rpb24g
bG9hZFByZXR0eVByaW50aW5nVGVzdEFuZEV4cGVjdGVkUmVzdWx0cyh0ZXN0VVJMKSB7Ci0gICAg
ICAgIGxldCBleHBlY3RlZFVSTCA9IHRlc3RVUkwucmVwbGFjZSgvXC4oW15cLl0rKSQvLCAiLWV4
cGVjdGVkLiQxIik7Ci0gICAgICAgIHJldHVybiBQcm9taXNlLmFsbChbCi0gICAgICAgICAgICBO
ZXR3b3JrQWdlbnQubG9hZFJlc291cmNlKFdJLm5ldHdvcmtNYW5hZ2VyLm1haW5GcmFtZS5pZCwg
dGVzdFVSTCksCi0gICAgICAgICAgICBOZXR3b3JrQWdlbnQubG9hZFJlc291cmNlKFdJLm5ldHdv
cmtNYW5hZ2VyLm1haW5GcmFtZS5pZCwgZXhwZWN0ZWRVUkwpCi0gICAgICAgIF0pLnRoZW4oZnVu
Y3Rpb24ocmVzdWx0cykgewotICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh7dGVz
dFRleHQ6IHJlc3VsdHNbMF0uY29udGVudCwgZXhwZWN0ZWRUZXh0OiByZXN1bHRzWzFdLmNvbnRl
bnQgfSk7Ci0gICAgICAgIH0pOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHJ1blByZXR0eVByaW50
aW5nVGVzdChtb2RlLCB0ZXN0TmFtZSwgdGVzdFVSTCkgewotICAgICAgICByZXR1cm4gbG9hZFBy
ZXR0eVByaW50aW5nVGVzdEFuZEV4cGVjdGVkUmVzdWx0cyh0ZXN0VVJMKS50aGVuKGZ1bmN0aW9u
KHJlc3VsdHMpIHsKLSAgICAgICAgICAgIGxldCB7dGVzdFRleHQsIGV4cGVjdGVkVGV4dH0gPSBy
ZXN1bHRzOwotCi0gICAgICAgICAgICBsZXQgZWRpdG9yID0gQ29kZU1pcnJvcihkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCJkaXYiKSk7Ci0gICAgICAgICAgICBlZGl0b3Iuc2V0T3B0aW9uKCJtb2Rl
IiwgbW9kZSk7Ci0gICAgICAgICAgICBlZGl0b3Iuc2V0VmFsdWUodGVzdFRleHQpOwotCi0gICAg
ICAgICAgICBjb25zdCBzdGFydCA9IHtsaW5lOiAwLCBjaDogMH07Ci0gICAgICAgICAgICBjb25z
dCBlbmQgPSB7bGluZTogZWRpdG9yLmxpbmVDb3VudCgpIC0gMX07Ci0gICAgICAgICAgICBjb25z
dCBpbmRlbnRTdHJpbmcgPSAiICAgICI7Ci0gICAgICAgICAgICBsZXQgYnVpbGRlciA9IG5ldyBG
b3JtYXR0ZXJDb250ZW50QnVpbGRlcihpbmRlbnRTdHJpbmcpOwotICAgICAgICAgICAgbGV0IGZv
cm1hdHRlciA9IG5ldyBXSS5Gb3JtYXR0ZXIoZWRpdG9yLCBidWlsZGVyKTsKLSAgICAgICAgICAg
IGZvcm1hdHRlci5mb3JtYXQoc3RhcnQsIGVuZCk7Ci0KLSAgICAgICAgICAgIGxldCBwYXNzID0g
YnVpbGRlci5mb3JtYXR0ZWRDb250ZW50ID09PSBleHBlY3RlZFRleHQ7Ci0gICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmxvZyhwYXNzID8gIlBBU1MiIDogIkZBSUwiKTsKLQotICAgICAgICAgICAg
aWYgKCFwYXNzKSB7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIklucHV0OiIp
OwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCItLS0tLS0tLS0tLSIpOwotICAg
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKHRlc3RUZXh0KTsKLSAgICAgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmxvZygiLS0tLS0tLS0tLS0iKTsKLSAgICAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmxvZygiRm9ybWF0dGVkIE91dHB1dDogIiArIGJ1aWxkZXIuZm9ybWF0dGVkQ29u
dGVudC5sZW5ndGgpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCItLS0tLS0t
LS0tLSIpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKGJ1aWxkZXIuZm9ybWF0
dGVkQ29udGVudCk7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIi0tLS0tLS0t
LS0tIik7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkV4cGVjdGVkIE91dHB1
dDogIiArIGV4cGVjdGVkVGV4dC5sZW5ndGgpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QubG9nKCItLS0tLS0tLS0tLSIpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9n
KGV4cGVjdGVkVGV4dCk7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIi0tLS0t
LS0tLS0tIik7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0pOwotICAgIH0KLQotICAgIHdpbmRv
dy5hZGRQcmV0dHlQcmludGluZ1Rlc3RzID0gZnVuY3Rpb24oc3VpdGUsIG1vZGUsIHRlc3RzKSB7
Ci0gICAgICAgIGxldCB0ZXN0UGFnZVVSTCA9IFdJLm5ldHdvcmtNYW5hZ2VyLm1haW5GcmFtZS5t
YWluUmVzb3VyY2UudXJsOwotICAgICAgICBsZXQgdGVzdFBhZ2VSZXNvdXJjZXNVUkwgPSB0ZXN0
UGFnZVVSTC5zdWJzdHJpbmcoMCwgdGVzdFBhZ2VVUkwubGFzdEluZGV4T2YoIi8iKSk7ICAgICAg
ICAgICAgCi0KLSAgICAgICAgZm9yIChsZXQgdGVzdCBvZiB0ZXN0cykgewotICAgICAgICAgICAg
bGV0IHRlc3ROYW1lID0gdGVzdC5zdWJzdHJpbmcodGVzdC5sYXN0SW5kZXhPZigiLyIpICsgMSk7
Ci0gICAgICAgICAgICBsZXQgdGVzdFVSTCA9IHRlc3RQYWdlUmVzb3VyY2VzVVJMICsgIi8iICsg
dGVzdDsKLSAgICAgICAgICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKLSAgICAgICAgICAgICAgICBu
YW1lOiBzdWl0ZS5uYW1lICsgIi4iICsgdGVzdE5hbWUsCi0gICAgICAgICAgICAgICAgdGVzdChy
ZXNvbHZlLCByZWplY3QpIHsgCi0gICAgICAgICAgICAgICAgICAgIHJ1blByZXR0eVByaW50aW5n
VGVzdChtb2RlLCB0ZXN0TmFtZSwgdGVzdFVSTCkudGhlbihyZXNvbHZlKS5jYXRjaChyZWplY3Qp
OwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0pOwotICAgICAgICB9Ci0gICAgfTsK
LX0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKaW5kZXggNzc5NzNlYzY0NWQuLjI4OWZiMGM2M2Qz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAxOS0wOS0xMCAg
Sm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IFJlbW92ZSBsZWdhY3kgQ29kZU1pcnJvciBiYXNlZCBwcmV0dHkgcHJpbnRlcnMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMTYyNAorCisg
ICAgICAgIFJldmlld2VkIGJ5IERldmluIFJvdXNzby4KKworICAgICAgICAqIFRvb2xzL1ByZXR0
eVByaW50aW5nL0Zvcm1hdHRlckRlYnVnLmpzOiBSZW1vdmVkLgorICAgICAgICAqIFRvb2xzL1By
ZXR0eVByaW50aW5nL1V0aWxpdGllcy5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBUb29scy9QcmV0
dHlQcmludGluZy9jb2RlbWlycm9yLWFkZGl0aW9ucy5jc3M6IFJlbW92ZWQuCisgICAgICAgICog
VG9vbHMvUHJldHR5UHJpbnRpbmcvaW5kZXguaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBUb29s
cy9QcmV0dHlQcmludGluZy9wb3B1bGF0ZS9hcHBsZS5jc3M6IFJlbW92ZWQuCisgICAgICAgICog
VXNlckludGVyZmFjZS9Db250cm9sbGVycy9Gb3JtYXR0ZXIuanM6IFJlbW92ZWQuCisgICAgICAg
ICogVXNlckludGVyZmFjZS9NYWluLmh0bWw6CisgICAgICAgICogVXNlckludGVyZmFjZS9UZXN0
Lmh0bWw6CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9Db2RlTWlycm9yRm9ybWF0dGVy
cy5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1RleHRFZGl0b3Iu
anM6CisgICAgICAgIChXSS5UZXh0RWRpdG9yLnByb3RvdHlwZS5wcmV0dHlQcmludCk6CisgICAg
ICAgIChXSS5UZXh0RWRpdG9yLnByb3RvdHlwZS5fY2FuVXNlRm9ybWF0dGVyV29ya2VyKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdJLlRleHRFZGl0b3IucHJvdG90eXBlLl9zdGFydENvZGVNaXJyb3JQ
cmV0dHlQcmludCk6IERlbGV0ZWQuCisgICAgICAgICogV2ViSW5zcGVjdG9yVUkudmN4cHJvai9X
ZWJJbnNwZWN0b3JVSS52Y3hwcm9qOgorICAgICAgICAqIFdlYkluc3BlY3RvclVJLnZjeHByb2ov
V2ViSW5zcGVjdG9yVUkudmN4cHJvai5maWx0ZXJzOgorCiAyMDE5LTA5LTA5ICBKb3NlcGggUGVj
b3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogRGFy
ayBNb2RlOiBPdmVydmlldyBUaW1lbGluZSBWaWV3IGhhcyBqYXJyaW5nIHdoaXRlIGJveC1zaGFk
b3dzIGluIGRhcmsgbW9kZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Rvb2xz
L1ByZXR0eVByaW50aW5nL0Zvcm1hdHRlckRlYnVnLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1Rvb2xzL1ByZXR0eVByaW50aW5nL0Zvcm1hdHRlckRlYnVnLmpzCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA0ZDlmNzFjNDRhMC4uMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYklu
c3BlY3RvclVJL1Rvb2xzL1ByZXR0eVByaW50aW5nL0Zvcm1hdHRlckRlYnVnLmpzCisrKyAvZGV2
L251bGwKQEAgLTEsNTQgKzAsMCBAQAotV0kuRm9ybWF0dGVyLnByb3RvdHlwZS5kZWJ1ZyA9IGZ1
bmN0aW9uKGZyb20sIHRvKQotewotICAgIHZhciBkZWJ1ZyA9ICIiOwotICAgIHZhciBvdXRlck1v
ZGUgPSB0aGlzLl9jb2RlTWlycm9yLmdldE1vZGUoKTsKLSAgICB2YXIgY29udGVudCA9IHRoaXMu
X2NvZGVNaXJyb3IuZ2V0UmFuZ2UoZnJvbSwgdG8pOwotICAgIHZhciBzdGF0ZSA9IENvZGVNaXJy
b3IuY29weVN0YXRlKG91dGVyTW9kZSwgdGhpcy5fY29kZU1pcnJvci5nZXRUb2tlbkF0KGZyb20p
LnN0YXRlKTsKLQotICAgIGZ1bmN0aW9uIHBhZChzdHIsIHgsIGRvTm90UXVvdGUpCi0gICAgewot
ICAgICAgICB2YXIgcmVzdWx0ID0gZG9Ob3RRdW90ZSA/IHN0ciA6ICInIiArIHN0ciArICInIjsK
LSAgICAgICAgZm9yICh2YXIgdG9QYWQgPSB4IC0gcmVzdWx0Lmxlbmd0aDsgdG9QYWQgPiAwOyAt
LXRvUGFkKQotICAgICAgICAgICAgcmVzdWx0ICs9ICIgIjsKLSAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBkZWJ1Z1Rva2VuKG1vZGUsIHRva2VuLCBzdGF0ZSwg
c3RyZWFtLCBvcmlnaW5hbFBvc2l0aW9uLCBzdGFydE9mTmV3TGluZSkKLSAgICB7Ci0gICAgICAg
IC8vIFRva2VuIFR5cGUKLSAgICAgICAgZGVidWcgKz0gIlRva2VuOiAiICsgcGFkKFN0cmluZyh0
b2tlbiksIDE0LCAhdG9rZW4pOwotCi0gICAgICAgIC8vIE9yaWdpbmFsIFBvc2l0aW9uCi0gICAg
ICAgIGRlYnVnICs9ICJQb3NpdGlvbjogIiArIHBhZChTdHJpbmcob3JpZ2luYWxQb3NpdGlvbiks
IDEwKTsKLQotICAgICAgICAvLyBMYW5ndWFnZSBTcGVjaWZpYyBJbmZvCi0gICAgICAgIGlmIChz
dGF0ZS5sZXhpY2FsKSB7Ci0gICAgICAgICAgICAvLyBKYXZhU2NyaXB0Ci0gICAgICAgICAgICBk
ZWJ1ZyArPSAiTGV4aWNhbDogIiArIHBhZChTdHJpbmcoc3RhdGUubGV4aWNhbC50eXBlKSwgMTAp
OyAvLyBKYXZhU2NyaXB0Ci0gICAgICAgICAgICBkZWJ1ZyArPSAiUHJldjogIiArIHBhZChTdHJp
bmcoc3RhdGUubGV4aWNhbC5wcmV2ID8gc3RhdGUubGV4aWNhbC5wcmV2LnR5cGUgOiBzdGF0ZS5s
ZXhpY2FsLnByZXYpLCAxMCwgIXN0YXRlLmxleGljYWwucHJldik7Ci0gICAgICAgIH0gZWxzZSBp
ZiAoc3RhdGUuc3RhdGUpIHsKLSAgICAgICAgICAgIC8vIENTUwotICAgICAgICAgICAgZGVidWcg
Kz0gIlN0YXRlOiAiICsgcGFkKFN0cmluZyhzdGF0ZS5zdGF0ZSksIDE2KTsKLSAgICAgICAgfQot
Ci0gICAgICAgIC8vIFN0cmluZwotICAgICAgICBkZWJ1ZyArPSAiQ3VycmVudDogJyIgKyBzdHJl
YW0uY3VycmVudCgpICsgIidcbiI7Ci0gICAgfQotCi0gICAgdmFyIGxpbmVPZmZzZXQgPSAwOwot
ICAgIHZhciBsaW5lcyA9IGNvbnRlbnQuc3BsaXQoIlxuIik7Ci0gICAgZm9yICh2YXIgaSA9IDA7
IGkgPCBsaW5lcy5sZW5ndGg7ICsraSkgewotICAgICAgICB2YXIgbGluZSA9IGxpbmVzW2ldOwot
ICAgICAgICB2YXIgc3RhcnRPZk5ld0xpbmUgPSB0cnVlOwotICAgICAgICB2YXIgc3RyZWFtID0g
bmV3IENvZGVNaXJyb3IuU3RyaW5nU3RyZWFtKGxpbmUpOwotICAgICAgICB3aGlsZSAoIXN0cmVh
bS5lb2woKSkgewotICAgICAgICAgICAgdmFyIGlubmVyTW9kZSA9IENvZGVNaXJyb3IuaW5uZXJN
b2RlKG91dGVyTW9kZSwgc3RhdGUpOwotICAgICAgICAgICAgdmFyIHRva2VuID0gb3V0ZXJNb2Rl
LnRva2VuKHN0cmVhbSwgc3RhdGUpOwotICAgICAgICAgICAgZGVidWdUb2tlbihpbm5lck1vZGUu
bW9kZSwgdG9rZW4sIHN0YXRlLCBzdHJlYW0sIGxpbmVPZmZzZXQgKyBzdHJlYW0uc3RhcnQsIHN0
YXJ0T2ZOZXdMaW5lKTsKLSAgICAgICAgICAgIHN0cmVhbS5zdGFydCA9IHN0cmVhbS5wb3M7Ci0g
ICAgICAgICAgICBzdGFydE9mTmV3TGluZSA9IGZhbHNlOwotICAgICAgICB9Ci0gICAgfQotCi0g
ICAgcmV0dXJuIGRlYnVnOwotfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9U
b29scy9QcmV0dHlQcmludGluZy9VdGlsaXRpZXMuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VG9vbHMvUHJldHR5UHJpbnRpbmcvVXRpbGl0aWVzLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA3NDk5OGM1YTdmMC4uMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1Rvb2xzL1ByZXR0eVByaW50aW5nL1V0aWxpdGllcy5qcworKysgL2Rldi9udWxsCkBAIC0x
LDkgKzAsMCBAQAotT2JqZWN0LmRlZmluZVByb3BlcnR5KEFycmF5LnByb3RvdHlwZSwgImxhc3RW
YWx1ZSIsCi17Ci0gICAgZ2V0OiBmdW5jdGlvbigpCi0gICAgewotICAgICAgICBpZiAoIXRoaXMu
bGVuZ3RoKQotICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKLSAgICAgICAgcmV0dXJuIHRo
aXNbdGhpcy5sZW5ndGggLSAxXTsKLSAgICB9Ci19KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Ub29scy9QcmV0dHlQcmludGluZy9jb2RlbWlycm9yLWFkZGl0aW9ucy5jc3Mg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVG9vbHMvUHJldHR5UHJpbnRpbmcvY29kZW1pcnJvci1h
ZGRpdGlvbnMuY3NzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkMzNmNTFmZjFlMy4u
MDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Rvb2xzL1ByZXR0eVByaW50
aW5nL2NvZGVtaXJyb3ItYWRkaXRpb25zLmNzcworKysgL2Rldi9udWxsCkBAIC0xLDE2NyArMCww
IEBACi0uQ29kZU1pcnJvciB7Ci0gICAgaGVpZ2h0OiBhdXRvOwotfQotCi1ib2R5IHsKLSAgZm9u
dC1mYW1pbHk6IERyb2lkIFNhbnMsIEFyaWFsLCBzYW5zLXNlcmlmOwotICBsaW5lLWhlaWdodDog
MS41OwotICBtYXgtd2lkdGg6IDY0LjNlbTsKLSAgbWFyZ2luOiAzZW0gYXV0bzsKLSAgcGFkZGlu
ZzogMCAxZW07Ci19Ci0KLWgxIHsKLSAgbGV0dGVyLXNwYWNpbmc6IC0zcHg7Ci0gIGZvbnQtc2l6
ZTogMy4yM2VtOwotICBmb250LXdlaWdodDogYm9sZDsKLSAgbWFyZ2luOiAwOwotfQotCi1oMiB7
Ci0gIGZvbnQtc2l6ZTogMS4yM2VtOwotICBmb250LXdlaWdodDogYm9sZDsKLSAgbWFyZ2luOiAu
NWVtIDA7Ci0gIGxldHRlci1zcGFjaW5nOiAtMXB4OwotfQotCi1oMyB7Ci0gIGZvbnQtc2l6ZTog
MS4xZW07Ci0gIGZvbnQtd2VpZ2h0OiBib2xkOwotICBtYXJnaW46IC40ZW0gMDsKLX0KLQotcHJl
IHsKLSAgYmFja2dyb3VuZC1jb2xvcjogI2VlZTsKLSAgYm9yZGVyLXJhZGl1czogNnB4OwotICBw
YWRkaW5nOiAxZW07Ci19Ci0KLXByZS5jb2RlIHsKLSAgbWFyZ2luOiAwIDFlbTsKLX0KLQotLmdy
ZXkgewotICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlOwotICBib3JkZXItcmFkaXVzOiA2cHg7Ci0g
IG1hcmdpbi1ib3R0b206IDEuNjVlbTsKLSAgbWFyZ2luLXRvcDogMC44MjVlbTsKLSAgcGFkZGlu
ZzogMC44MjVlbSAxLjY1ZW07Ci0gIHBvc2l0aW9uOiByZWxhdGl2ZTsKLX0KLQotaW1nLmxvZ28g
ewotICBwb3NpdGlvbjogYWJzb2x1dGU7Ci0gIHJpZ2h0OiAtMWVtOwotICBib3R0b206IDRweDsK
LSAgbWF4LXdpZHRoOiAyMy42ODc1ZW07IC8qIFNjYWxlIGltYWdlIGRvd24gd2l0aCB0ZXh0IHRv
IHByZXZlbnQgY2xpcHBpbmcgKi8KLX0KLQotLmdyZXkgPiBwcmUgewotICBiYWNrZ3JvdW5kOm5v
bmU7Ci0gIGJvcmRlci1yYWRpdXM6MDsKLSAgcGFkZGluZzowOwotICBtYXJnaW46MDsKLSAgZm9u
dC1zaXplOjIuMmVtOwotICBsaW5lLWhlaWdodDoxLjJlbTsKLX0KLQotYTpsaW5rLCBhOnZpc2l0
ZWQsIC5xdWFzaWxpbmsgewotICBjb2xvcjogI2RmMDAxOTsKLSAgY3Vyc29yOiBwb2ludGVyOwot
ICB0ZXh0LWRlY29yYXRpb246IG5vbmU7Ci19Ci0KLWE6aG92ZXIsIC5xdWFzaWxpbms6aG92ZXIg
ewotICBjb2xvcjogIzgwMDAwNDsKLX0KLQotaDEgYTpsaW5rLCBoMSBhOnZpc2l0ZWQsIGgxIGE6
aG92ZXIgewotICBjb2xvcjogYmxhY2s7Ci19Ci0KLXVsIHsKLSAgbWFyZ2luOiAwOwotICBwYWRk
aW5nLWxlZnQ6IDEuMmVtOwotfQotCi1hLmRvd25sb2FkIHsKLSAgY29sb3I6IHdoaXRlOwotICBi
YWNrZ3JvdW5kLWNvbG9yOiAjZGYwMDE5OwotICB3aWR0aDogMTAwJTsKLSAgZGlzcGxheTogYmxv
Y2s7Ci0gIHRleHQtYWxpZ246IGNlbnRlcjsKLSAgZm9udC1zaXplOiAxLjIzZW07Ci0gIGZvbnQt
d2VpZ2h0OiBib2xkOwotICB0ZXh0LWRlY29yYXRpb246IG5vbmU7Ci0gIGJvcmRlci1yYWRpdXM6
IDZweDsKLSAgcGFkZGluZzogLjVlbSAwOwotICBtYXJnaW4tYm90dG9tOiAxZW07Ci19Ci0KLWEu
ZG93bmxvYWQ6aG92ZXIgewotICBiYWNrZ3JvdW5kLWNvbG9yOiAjYmIwMDEwOwotfQotCi0ucmVs
IHsKLSAgbWFyZ2luLWJvdHRvbTogMDsKLX0KLQotLnJlbC1ub3RlIHsKLSAgY29sb3I6ICM3Nzc7
Ci0gIGZvbnQtc2l6ZTogLjllbTsKLSAgbWFyZ2luLXRvcDogLjFlbTsKLX0KLQotLmxvZ28tYnJh
Y2VzIHsKLSAgY29sb3I6ICNkZjAwMTk7Ci0gIHBvc2l0aW9uOiByZWxhdGl2ZTsKLSAgdG9wOiAt
NHB4OwotfQotCi0uYmxrIHsKLSAgZmxvYXQ6IGxlZnQ7Ci19Ci0KLS5sZWZ0IHsKLSAgbWFyZ2lu
LXJpZ2h0OiAyMC42OGVtOwotICBtYXgtd2lkdGg6IDM3ZW07Ci0gIHBhZGRpbmctcmlnaHQ6IDYu
NTNlbTsKLSAgcGFkZGluZy1ib3R0b206IDFlbTsKLX0KLQotLmxlZnQxIHsKLSAgd2lkdGg6IDE1
LjI0ZW07Ci0gIHBhZGRpbmctcmlnaHQ6IDYuNDVlbTsKLX0KLQotLmxlZnQyIHsKLSAgbWF4LXdp
ZHRoOiAxNS4yNGVtOwotfQotCi0ucmlnaHQgewotICB3aWR0aDogMjAuNjhlbTsKLSAgbWFyZ2lu
LWxlZnQ6IC0yMC42OGVtOwotfQotCi0ubGVmdGJpZyB7Ci0gIHdpZHRoOiA0Mi40NGVtOwotICBw
YWRkaW5nLXJpZ2h0OiA2LjUzZW07Ci19Ci0KLS5yaWdodHNtYWxsIHsKLSAgd2lkdGg6IDE1LjI0
ZW07Ci19Ci0KLS5jbGVhcjo6YWZ0ZXIgewotICB2aXNpYmlsaXR5OiBoaWRkZW47Ci0gIGRpc3Bs
YXk6IGJsb2NrOwotICBmb250LXNpemU6IDA7Ci0gIGNvbnRlbnQ6ICIgIjsKLSAgY2xlYXI6IGJv
dGg7Ci0gIGhlaWdodDogMDsKLX0KLS5jbGVhciB7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgfQot
Lyogc3RhcnQgY29tbWVudGVkIGJhY2tzbGFzaCBoYWNrIFwqLwotKiBodG1sIC5jbGVhciB7IGhl
aWdodDogMSU7IH0KLS5jbGVhciB7IGRpc3BsYXk6IGJsb2NrOyB9Ci0vKiBjbG9zZSBjb21tZW50
ZWQgYmFja3NsYXNoIGhhY2sgKi8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9U
b29scy9QcmV0dHlQcmludGluZy9pbmRleC5odG1sIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1Rv
b2xzL1ByZXR0eVByaW50aW5nL2luZGV4Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGQ0MjE2NmFjYjM2Li4wMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VG9vbHMvUHJldHR5UHJpbnRpbmcvaW5kZXguaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDMxOSAr
MCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci0gICAgPHRpdGxlPkRlYnVn
PC90aXRsZT4KLSAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL1VzZXJJbnRl
cmZhY2UvRXh0ZXJuYWwvQ29kZU1pcnJvci9jb2RlbWlycm9yLmNzcyI+Ci0gICAgPGxpbmsgcmVs
PSJzdHlsZXNoZWV0IiBocmVmPSJjb2RlbWlycm9yLWFkZGl0aW9ucy5jc3MiPgotICAgIDxzY3Jp
cHQgc3JjPSJVdGlsaXRpZXMuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9V
c2VySW50ZXJmYWNlL0V4dGVybmFsL0NvZGVNaXJyb3IvY29kZW1pcnJvci5qcyI+PC9zY3JpcHQ+
Ci0gICAgPHNjcmlwdCBzcmM9Ii4uLy4uL1VzZXJJbnRlcmZhY2UvRXh0ZXJuYWwvQ29kZU1pcnJv
ci9qYXZhc2NyaXB0LmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iLi4vLi4vVXNlcklu
dGVyZmFjZS9FeHRlcm5hbC9Db2RlTWlycm9yL2Nzcy5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlw
dCBzcmM9Ii4uLy4uL1VzZXJJbnRlcmZhY2UvQmFzZS9XZWJJbnNwZWN0b3IuanMiPjwvc2NyaXB0
PgotICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvZGVNaXJyb3JB
ZGRpdGlvbnMuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9Vc2VySW50ZXJm
YWNlL0NvbnRyb2xsZXJzL0Zvcm1hdHRlci5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9
IkZvcm1hdHRlckRlYnVnLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iLi4vLi4vVXNl
ckludGVyZmFjZS9Xb3JrZXJzL0Zvcm1hdHRlci9Gb3JtYXR0ZXJDb250ZW50QnVpbGRlci5qcyI+
PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9Ii4uLy4uL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29k
ZU1pcnJvckZvcm1hdHRlcnMuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci0KLSAgICA8
aDE+RGVidWcgUHJldHR5IFByaW50aW5nPC9oMT4KLQotICAgIDwhLS0gQ29udHJvbHMgLS0+Ci0g
ICAgPHNlbGVjdCBpZD0ibW9kZSI+Ci0gICAgICAgIDxvcHRpb24gc2VsZWN0ZWQgdmFsdWU9InRl
eHQvamF2YXNjcmlwdCI+SmF2YVNjcmlwdDwvb3B0aW9uPgotICAgICAgICA8b3B0aW9uIHZhbHVl
PSJ0ZXh0L2NzcyI+Q1NTPC9vcHRpb24+Ci0gICAgPC9zZWxlY3Q+Ci0gICAgPGJ1dHRvbiBpZD0i
cG9wdWxhdGUiPlBvcHVsYXRlPC9idXR0b24+Ci0gICAgPGJ1dHRvbiBpZD0icnVuLXRlc3RzIj5S
dW4gVGVzdHM8L2J1dHRvbj4KLSAgICA8YnV0dG9uIGlkPSJjbGVhciI+Q2xlYXI8L2J1dHRvbj4K
LSAgICA8YnV0dG9uIGlkPSJzZWxlY3Qtb3V0cHV0Ij5TZWxlY3QgT3V0cHV0PC9idXR0b24+Ci0g
ICAgPGJ1dHRvbiBpZD0icnVuLWFnYWluIj5SdW4gQWdhaW48L2J1dHRvbj4KLSAgICA8YnV0dG9u
IGlkPSJzYXZlLWFzLXVybCI+U2F2ZSBVUkw8L2J1dHRvbj4KLSAgICA8YnV0dG9uIGlkPSJzYXZl
LWxvY2FsLXN0b3JhZ2UiPlNhdmUgdG8gU3RvcmFnZTwvYnV0dG9uPgotICAgIDxidXR0b24gaWQ9
ImNsZWFyLWxvY2FsLXN0b3JhZ2UiPkNsZWFyIFN0b3JhZ2U8L2J1dHRvbj4KLSAgICA8c21hbGwg
aWQ9InRpbWUiPjwvc21hbGw+Ci0KLSAgICA8YnI+PGJyPgotCi0gICAgPCEtLSBFZGl0b3IgLS0+
Ci0gICAgPHRleHRhcmVhIGlkPSJjb2RlIiBuYW1lPSJjb2RlIj48L3RleHRhcmVhPgotCi0gICAg
PCEtLSBPdXRwdXQgLS0+Ci0gICAgPHByZSBpZD0icHJldHR5Ij48L3ByZT4KLSAgICA8cHJlIGlk
PSJkZWJ1ZyI+PC9wcmU+Ci0KLSAgICA8c2NyaXB0PgotICAgIC8vIEVkaXRvci4KLSAgICB2YXIg
Y20gPSBDb2RlTWlycm9yLmZyb21UZXh0QXJlYShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29k
ZSIpLCB7Ci0gICAgICAgIGxpbmVOdW1iZXJzOiB0cnVlLAotICAgIH0pOwotCi0gICAgLy8gSW5p
dGlhbCB2YWx1ZXMgZnJvbSBVUkwuCi0gICAgdmFyIHF1ZXJ5UGFyYW1zID0ge307Ci0gICAgaWYg
KHdpbmRvdy5sb2NhdGlvbi5zZWFyY2gubGVuZ3RoID4gMCkgewotICAgICAgICB2YXIgc2VhcmNo
U3RyaW5nID0gd2luZG93LmxvY2F0aW9uLnNlYXJjaC5zdWJzdHJpbmcoMSk7Ci0gICAgICAgIHZh
ciBncm91cHMgPSBzZWFyY2hTdHJpbmcuc3BsaXQoIiYiKTsKLSAgICAgICAgZm9yICh2YXIgaSA9
IDA7IGkgPCBncm91cHMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgICAgIHZhciBwYWlyID0gZ3Jv
dXBzW2ldLnNwbGl0KCI9Iik7Ci0gICAgICAgICAgICBxdWVyeVBhcmFtc1tkZWNvZGVVUklDb21w
b25lbnQocGFpclswXSldID0gZGVjb2RlVVJJQ29tcG9uZW50KHBhaXJbMV0pOwotICAgICAgICB9
Ci0gICAgfQotCi0gICAgLy8gSW5pdGlhbCBtb2RlIGFuZCBzdHJpbmcuCi0gICAgdmFyIG1vZGUg
PSAidGV4dC9qYXZhc2NyaXB0IjsKLSAgICB2YXIgY29udGVudCA9ICIoZnVuY3Rpb24oKSB7IHZh
ciBhPTE7IHJldHVybiBhKzE7IH0pKCk7IjsKLSAgICB2YXIgdXBkYXRlUGlja2VyID0gZmFsc2U7
Ci0gICAgaWYgKHF1ZXJ5UGFyYW1zLmNvbnRlbnQgfHwgcXVlcnlQYXJhbXMubW9kZSkgewotICAg
ICAgICBjb250ZW50ID0gcXVlcnlQYXJhbXMuY29udGVudCB8fCAiIjsKLSAgICAgICAgbW9kZSA9
IHF1ZXJ5UGFyYW1zLm1vZGUgfHwgInRleHQvamF2YXNjcmlwdCI7Ci0gICAgICAgIHVwZGF0ZVBp
Y2tlciA9IHRydWU7Ci0gICAgfSBlbHNlIGlmIChsb2NhbFN0b3JhZ2UuY29udGVudCB8fCBsb2Nh
bFN0b3JhZ2UubW9kZSkgewotICAgICAgICBjb250ZW50ID0gbG9jYWxTdG9yYWdlLmNvbnRlbnQg
fHwgIiI7Ci0gICAgICAgIG1vZGUgPSBsb2NhbFN0b3JhZ2UubW9kZSB8fCAidGV4dC9qYXZhc2Ny
aXB0IjsKLSAgICAgICAgdXBkYXRlUGlja2VyID0gdHJ1ZTsKLSAgICB9Ci0KLSAgICAvLyBJbml0
aWFsIG1vZGUgcGlja2VyIHZhbHVlLgotICAgIHZhciBtb2RlUGlja2VyID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoIm1vZGUiKTsKLSAgICBpZiAodXBkYXRlUGlja2VyKSB7Ci0gICAgICAgIGZv
ciAodmFyIGkgPSAwOyBpIDwgbW9kZVBpY2tlci5vcHRpb25zLmxlbmd0aDsgKytpKSB7Ci0gICAg
ICAgICAgICBpZiAobW9kZVBpY2tlci5vcHRpb25zW2ldLnZhbHVlID09PSBtb2RlKSB7Ci0gICAg
ICAgICAgICAgICAgbW9kZVBpY2tlci5vcHRpb25zW2ldLnNlbGVjdGVkID0gdHJ1ZTsKLSAgICAg
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0KLQotICAg
IC8vIFNldCBvbiBDb2RlTWlycm9yLgotICAgIGNtLnNldFZhbHVlKGNvbnRlbnQpOwotICAgIGNt
LnNldE9wdGlvbigibW9kZSIsIG1vZGUpOwotCi0gICAgLy8gQ2hhbmdpbmcgdGhlIG1vZGUuCi0g
ICAgbW9kZVBpY2tlci5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLCBmdW5jdGlvbihldmVudCkg
ewotICAgICAgICBjbS5zZXRWYWx1ZSgiIik7Ci0gICAgICAgIGNtLnNldE9wdGlvbigibW9kZSIs
IG1vZGVQaWNrZXIudmFsdWUpOwotICAgICAgICByZWZyZXNoKCk7Ci0gICAgfSk7Ci0KLSAgICAv
LyBQb3B1bGF0ZSBidXR0b24gdG8gcG9wdWxhdGUgd2l0aCBzb21lIGNhbm5lZCBjb250ZW50Lgot
ICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwb3B1bGF0ZSIpLmFkZEV2ZW50TGlzdGVuZXIo
ImNsaWNrIiwgZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAgICAgc3dpdGNoIChtb2RlUGlja2VyLnZh
bHVlKSB7Ci0gICAgICAgICAgICBjYXNlICJ0ZXh0L2phdmFzY3JpcHQiOgotICAgICAgICAgICAg
ICAgIHZhciB1cmwgPSAiLi4vLi4vLi4vLi4vTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Zvcm1hdHRp
bmcvcmVzb3VyY2VzL2phdmFzY3JpcHQtdGVzdHMvc2FtcGxlLWpxdWVyeS5qcyI7Ci0gICAgICAg
ICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlICJ0ZXh0L2NzcyI6Ci0gICAgICAgICAg
ICAgICAgdmFyIHVybCA9ICJwb3B1bGF0ZS9hcHBsZS5jc3MiOwotICAgICAgICAgICAgICAgIGJy
ZWFrOwotICAgICAgICB9Ci0KLSAgICAgICAgdmFyIHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdDsK
LSAgICAgICAgeGhyLm9wZW4oIkdFVCIsIHVybCwgdHJ1ZSk7Ci0gICAgICAgIHhoci5vbmxvYWQg
PSBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIGNtLnNldFZhbHVlKHhoci5yZXNwb25zZVRleHQp
OwotICAgICAgICAgICAgc2V0VGltZW91dChyZWZyZXNoKTsKLSAgICAgICAgfQotICAgICAgICB4
aHIuc2VuZCgpOwotICAgIH0pOwotCi0gICAgLy8gUnVuIFRlc3RzIGJ1dHRvbi4KLSAgICBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgicnVuLXRlc3RzIikuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2si
LCBmdW5jdGlvbihldmVudCkgewotICAgICAgICBjbS5zZXRWYWx1ZSgiLyogUnVubmluZyBUZXN0
cy4uLiAqLyIpOwotICAgICAgICByZWZyZXNoKCk7Ci0gICAgICAgIHJ1blRlc3RzKCk7Ci0gICAg
fSk7Ci0KLSAgICAvLyBDbGVhciBidXR0b24uCi0gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
ImNsZWFyIikuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBmdW5jdGlvbihldmVudCkgewotICAg
ICAgICBjbS5zZXRWYWx1ZSgiIik7Ci0gICAgICAgIHJlZnJlc2goKTsKLSAgICB9KTsKLQotICAg
IC8vIFNlbGVjdCBvdXRwdXQgYnV0dG9uLgotICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJz
ZWxlY3Qtb3V0cHV0IikuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBmdW5jdGlvbihldmVudCkg
ewotICAgICAgICB2YXIgcmFuZ2UgPSBkb2N1bWVudC5jcmVhdGVSYW5nZSgpOwotICAgICAgICBy
YW5nZS5zZWxlY3ROb2RlQ29udGVudHMoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInByZXR0eSIp
KTsKLSAgICAgICAgdmFyIHNlbGVjdGlvbiA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTsKLSAgICAg
ICAgc2VsZWN0aW9uLnJlbW92ZUFsbFJhbmdlcygpOwotICAgICAgICBzZWxlY3Rpb24uYWRkUmFu
Z2UocmFuZ2UpOwotICAgIH0pOwotCi0gICAgLy8gUnVuIGFnYWluIGJ1dHRvbi4KLSAgICBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgicnVuLWFnYWluIikuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2si
LCBmdW5jdGlvbihldmVudCkgewotICAgICAgICByZWZyZXNoKCk7Ci0gICAgfSk7Ci0KLSAgICAv
LyBTYXZlIGFzIFVSTCBidXR0b24uCi0gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNhdmUt
YXMtdXJsIikuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBmdW5jdGlvbihldmVudCkgewotICAg
ICAgICB2YXIgbW9kZSA9IG1vZGVQaWNrZXIudmFsdWU7Ci0gICAgICAgIHZhciBjb250ZW50ID0g
Y20uZ2V0VmFsdWUoKTsKLSAgICAgICAgd2luZG93LmxvY2F0aW9uLnNlYXJjaCA9ICI/bW9kZT0i
ICsgd2luZG93LmVuY29kZVVSSUNvbXBvbmVudChtb2RlKSArICImY29udGVudD0iICsgd2luZG93
LmVuY29kZVVSSUNvbXBvbmVudChjb250ZW50KTsKLSAgICB9KTsKLQotICAgIC8vIFNhdmUgdG8g
bG9jYWxTdG9yYWdlLgotICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzYXZlLWxvY2FsLXN0
b3JhZ2UiKS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAg
ICAgIGxvY2FsU3RvcmFnZS5tb2RlID0gbW9kZVBpY2tlci52YWx1ZTsKLSAgICAgICAgbG9jYWxT
dG9yYWdlLmNvbnRlbnQgPSBjbS5nZXRWYWx1ZSgpOwotICAgIH0pOwotCi0gICAgLy8gQ2xlYXIg
bG9jYWxTdG9yYWdlLgotICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjbGVhci1sb2NhbC1z
dG9yYWdlIikuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBmdW5jdGlvbihldmVudCkgewotICAg
ICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgibW9kZSIpOwotICAgICAgICBsb2NhbFN0b3Jh
Z2UucmVtb3ZlSXRlbSgiY29udGVudCIpOwotICAgIH0pOwotCi0gICAgLy8gQnV0dG9uIGhlbHBl
cnMuCi0gICAgdmFyIGJ1dHRvbnMgPSBbIm1vZGUiLCAicG9wdWxhdGUiLCAicnVuLXRlc3RzIiwg
ImNsZWFyIiwgInNlbGVjdC1vdXRwdXQiLCAicnVuLWFnYWluIl07Ci0gICAgZnVuY3Rpb24gZGlz
YWJsZUJ1dHRvbnMoKSB7Ci0gICAgICAgIGJ1dHRvbnMuZm9yRWFjaChmdW5jdGlvbihpZCkgewot
ICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmRpc2FibGVkID0gdHJ1ZTsK
LSAgICAgICAgfSk7Ci0gICAgfQotICAgIGZ1bmN0aW9uIGVuYWJsZUJ1dHRvbnMoKSB7Ci0gICAg
ICAgIGJ1dHRvbnMuZm9yRWFjaChmdW5jdGlvbihpZCkgewotICAgICAgICAgICAgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoaWQpLmRpc2FibGVkID0gZmFsc2U7Ci0gICAgICAgIH0pOwotICAgIH0K
LQotICAgIC8vIFJlZnJlc2ggYWZ0ZXIgY2hhbmdlcyBhZnRlciBhIHNob3J0IGRlbGF5LgotICAg
IHZhciB0aW1lciA9IG51bGw7Ci0gICAgY20ub24oImNoYW5nZSIsIGZ1bmN0aW9uKGNvZGVNaXJy
b3IsIGNoYW5nZSkgewotICAgICAgICBpZiAodGltZXIpCi0gICAgICAgICAgICBjbGVhclRpbWVv
dXQodGltZXIpCi0gICAgICAgIHRpbWVyID0gc2V0VGltZW91dChmdW5jdGlvbigpIHsKLSAgICAg
ICAgICAgIGNsZWFyVGltZW91dCh0aW1lcik7Ci0gICAgICAgICAgICB0aW1lciA9IG51bGw7Ci0g
ICAgICAgICAgICByZWZyZXNoKCk7Ci0gICAgICAgIH0sIDUwMCk7Ci0gICAgfSk7Ci0KLSAgICAv
LyBPdXRwdXQgZWxlbWVudHMuCi0gICAgdmFyIHRpbWVPdXRwdXQgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgidGltZSIpOwotICAgIHZhciBwcmV0dHlQcmUgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgicHJldHR5Iik7Ci0gICAgdmFyIGRlYnVnUHJlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoImRlYnVnIik7Ci0KLSAgICBmdW5jdGlvbiByZWZyZXNoKCkgewotICAgICAgICBpZiAodGlt
ZXIpCi0gICAgICAgICAgICBjbGVhclRpbWVvdXQodGltZXIpOwotCi0gICAgICAgIGNvbnN0IHN0
YXJ0ID0ge2xpbmU6IDAsIGNoOiAwfTsKLSAgICAgICAgY29uc3QgZW5kID0ge2xpbmU6IGNtLmxp
bmVDb3VudCgpIC0gMX07Ci0KLSAgICAgICAgLy8gU2V0dXAuCi0gICAgICAgIGNvbnN0IGluZGVu
dFN0cmluZyA9ICIgICAgIjsKLSAgICAgICAgdmFyIGJ1aWxkZXIgPSBuZXcgRm9ybWF0dGVyQ29u
dGVudEJ1aWxkZXIoaW5kZW50U3RyaW5nKTsKLSAgICAgICAgdmFyIGZvcm1hdHRlciA9IG5ldyBX
SS5Gb3JtYXR0ZXIoY20sIGJ1aWxkZXIpOwotCi0gICAgICAgIC8vIFRpbWUgdGhlIGZvcm1hdHRl
ci4KLSAgICAgICAgdmFyIHN0YXJ0VGltZSA9IERhdGUubm93KCk7Ci0gICAgICAgIGZvcm1hdHRl
ci5mb3JtYXQoc3RhcnQsIGVuZCk7Ci0gICAgICAgIHZhciBlbmRUaW1lID0gRGF0ZS5ub3coKTsK
LQotICAgICAgICAvLyBHYXRoZXIgZGVidWcgaW5mb3JtYXRpb24uCi0gICAgICAgIHZhciBkZWJ1
ZyA9IGZvcm1hdHRlci5kZWJ1ZyhzdGFydCwgZW5kKTsKLQotICAgICAgICAvLyBPdXRwdXQgdGhl
IHJlc3VsdHMuCi0gICAgICAgIHRpbWVPdXRwdXQuaW5uZXJUZXh0ID0gKGVuZFRpbWUgLSBzdGFy
dFRpbWUpICsgIm1zIjsKLSAgICAgICAgcHJldHR5UHJlLmlubmVyVGV4dCA9IGJ1aWxkZXIuZm9y
bWF0dGVkQ29udGVudDsKLSAgICAgICAgZGVidWdQcmUuaW5uZXJUZXh0ID0gZGVidWc7Ci0gICAg
fQotCi0gICAgc2V0VGltZW91dChyZWZyZXNoKTsKLQotICAgIC8vIFRlc3RzLgotICAgIGZ1bmN0
aW9uIHJ1blRlc3RzKCkgewotICAgICAgICBkaXNhYmxlQnV0dG9ucygpOwotICAgICAgICBmdW5j
dGlvbiBjb21wbGV0ZWRDYWxsYmFjaygpIHsKLSAgICAgICAgICAgIGVuYWJsZUJ1dHRvbnMoKTsK
LSAgICAgICAgfQotCi0gICAgICAgIGlmIChtb2RlUGlja2VyLnZhbHVlID09PSAidGV4dC9qYXZh
c2NyaXB0IikKLSAgICAgICAgICAgIHJ1bkphdmFTY3JpcHRUZXN0cyhjb21wbGV0ZWRDYWxsYmFj
ayk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHJ1bkNTU1Rlc3RzKGNvbXBsZXRlZENhbGxi
YWNrKTsKLSAgICB9Ci0gICAgZnVuY3Rpb24gcnVuSmF2YVNjcmlwdFRlc3RzKGNhbGxiYWNrKSB7
Ci0gICAgICAgIF9ydW5UZXN0cyhjYWxsYmFjaywgWwotICAgICAgICAgICAgImphdmFzY3JpcHQt
dGVzdHMvYmxvY2stY29tbWVudC5qcyIsCi0gICAgICAgICAgICAiamF2YXNjcmlwdC10ZXN0cy9z
aW5nbGUtc3RhdGVtZW50LWJsb2Nrcy5qcyIsCi0gICAgICAgICAgICAiamF2YXNjcmlwdC10ZXN0
cy9zd2l0Y2gtY2FzZS1kZWZhdWx0LmpzIiwKLSAgICAgICAgXSk7Ci0gICAgfQotICAgIGZ1bmN0
aW9uIHJ1bkNTU1Rlc3RzKGNhbGxiYWNrKSB7Ci0gICAgICAgIF9ydW5UZXN0cyhjYWxsYmFjaywg
WwotICAgICAgICAgICAgImNzcy10ZXN0cy9iYXNpYy5jc3MiLAotICAgICAgICAgICAgImNzcy10
ZXN0cy9jYWxjLmNzcyIsCi0gICAgICAgICAgICAiY3NzLXRlc3RzL2dyYWRpZW50LmNzcyIsCi0g
ICAgICAgICAgICAiY3NzLXRlc3RzL2tleWZyYW1lcy5jc3MiLAotICAgICAgICAgICAgImNzcy10
ZXN0cy9tZWRpYS1xdWVyeS5jc3MiLAotICAgICAgICAgICAgImNzcy10ZXN0cy9zZWxlY3RvcnMu
Y3NzIiwKLSAgICAgICAgICAgICJjc3MtdGVzdHMvd3JhcHBpbmcuY3NzIiwKLSAgICAgICAgXSk7
Ci0gICAgfQotICAgIGZ1bmN0aW9uIF9ydW5UZXN0cyhjYWxsYmFjaywgbWFuaWZlc3QpIHsKLSAg
ICAgICAgdmFyIGluZGV4ID0gLTE7Ci0gICAgICAgIHZhciByZXN1bHRzID0gW107Ci0gICAgICAg
IHNldFRpbWVvdXQocnVuTmV4dFRlc3QsIDApOwotCi0gICAgICAgIGZ1bmN0aW9uIHJ1bk5leHRU
ZXN0KCkgewotICAgICAgICAgICAgLy8gTmV4dCB0ZXN0LgotICAgICAgICAgICAgaW5kZXgrKzsK
LQotICAgICAgICAgICAgLy8gRG9uZS4KLSAgICAgICAgICAgIGlmIChpbmRleCA+PSBtYW5pZmVz
dC5sZW5ndGgpIHsKLSAgICAgICAgICAgICAgICBpZiAoIWluZGV4KQotICAgICAgICAgICAgICAg
ICAgICByZXN1bHRzLnB1c2goIi8qIE5vIHRlc3RzIGZvciBtb2RlOiAiICsgbW9kZVBpY2tlci52
YWx1ZSk7Ci0gICAgICAgICAgICAgICAgcHJpbnRSZXN1bHRzKCk7Ci0gICAgICAgICAgICAgICAg
cmV0dXJuOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAvLyBMb2FkIHRlc3QgYW5kIGV4
cGVjdGVkIHJlc3VsdHMuCi0gICAgICAgICAgICB2YXIgdGVzdCA9IG1hbmlmZXN0W2luZGV4XTsK
LSAgICAgICAgICAgIHZhciB0ZXN0VVJMID0gIi4uLy4uLy4uLy4uL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9jb2RlbWlycm9yL3Jlc291cmNlcy9wcmV0dHlwcmludGluZy8iICsgdGVzdDsKLSAgICAg
ICAgICAgIHZhciBleHBlY3RlZFVSTCA9IHRlc3RVUkwucmVwbGFjZSgvXC4oW15cLl0rKSQvLCAi
LWV4cGVjdGVkLiQxIik7Ci0gICAgICAgICAgICB2YXIgeGhyMSA9IG5ldyBYTUxIdHRwUmVxdWVz
dDsKLSAgICAgICAgICAgIHhocjEub3BlbigiR0VUIiwgdGVzdFVSTCwgZmFsc2UpOwotICAgICAg
ICAgICAgeGhyMS5zZW5kKCk7Ci0gICAgICAgICAgICB2YXIgeGhyMiA9IG5ldyBYTUxIdHRwUmVx
dWVzdDsKLSAgICAgICAgICAgIHhocjIub3BlbigiR0VUIiwgZXhwZWN0ZWRVUkwsIGZhbHNlKTsK
LSAgICAgICAgICAgIHhocjIuc2VuZCgpOwotICAgICAgICAgICAgdmFyIHRlc3REYXRhID0geGhy
MS5yZXNwb25zZVRleHQ7Ci0gICAgICAgICAgICB2YXIgZXhwZWN0ZWREYXRhID0geGhyMi5yZXNw
b25zZVRleHQ7Ci0KLSAgICAgICAgICAgIC8vIFJ1biB0aGUgdGVzdC4KLSAgICAgICAgICAgIHZh
ciBlZGl0b3IgPSBDb2RlTWlycm9yKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpKTsKLSAg
ICAgICAgICAgIGVkaXRvci5zZXRPcHRpb24oIm1vZGUiLCBtb2RlUGlja2VyLnZhbHVlKTsKLSAg
ICAgICAgICAgIGVkaXRvci5zZXRWYWx1ZSh0ZXN0RGF0YSk7Ci0gICAgICAgICAgICBjb25zdCBz
dGFydCA9IHtsaW5lOiAwLCBjaDogMH07Ci0gICAgICAgICAgICBjb25zdCBlbmQgPSB7bGluZTog
ZWRpdG9yLmxpbmVDb3VudCgpIC0gMX07Ci0gICAgICAgICAgICBjb25zdCBpbmRlbnRTdHJpbmcg
PSAiICAgICI7Ci0gICAgICAgICAgICB2YXIgYnVpbGRlciA9IG5ldyBGb3JtYXR0ZXJDb250ZW50
QnVpbGRlcihpbmRlbnRTdHJpbmcpOwotICAgICAgICAgICAgdmFyIGZvcm1hdHRlciA9IG5ldyBX
SS5Gb3JtYXR0ZXIoZWRpdG9yLCBidWlsZGVyKTsKLSAgICAgICAgICAgIGZvcm1hdHRlci5mb3Jt
YXQoc3RhcnQsIGVuZCk7Ci0KLSAgICAgICAgICAgIC8vIENvbXBhcmUgcmVzdWx0cy4KLSAgICAg
ICAgICAgIHZhciBwYXNzID0gYnVpbGRlci5mb3JtYXR0ZWRDb250ZW50ID09PSBleHBlY3RlZERh
dGE7Ci0gICAgICAgICAgICByZXN1bHRzLnB1c2goIi8qICIgKyAocGFzcyA/ICJQQVNTIiA6ICJG
QUlMIikgKyAiOiAiICsgdGVzdCArICIgKi8iKTsKLQotICAgICAgICAgICAgLy8gT3V0cHV0IGZh
aWx1cmVzIHRvIGNvbnNvbGUuCi0gICAgICAgICAgICBpZiAoIXBhc3MpIHsKLSAgICAgICAgICAg
ICAgICBjb25zb2xlLmxvZygiVGVzdCIsIHRlc3QpOwotICAgICAgICAgICAgICAgIGNvbnNvbGUu
bG9nKCJGb3JtYXR0ZWQgT3V0cHV0IiwgYnVpbGRlci5mb3JtYXR0ZWRDb250ZW50Lmxlbmd0aCk7
Ci0gICAgICAgICAgICAgICAgY29uc29sZS5sb2coYnVpbGRlci5mb3JtYXR0ZWRDb250ZW50KTsK
LSAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiRXhwZWN0ZWQgT3V0cHV0IiwgZXhwZWN0ZWRE
YXRhLmxlbmd0aCk7Ci0gICAgICAgICAgICAgICAgY29uc29sZS5sb2coZXhwZWN0ZWREYXRhKTsK
LSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgcnVuTmV4dFRlc3QoKTsKLSAgICAgICAgfQot
Ci0gICAgICAgIGZ1bmN0aW9uIHByaW50UmVzdWx0cygpIHsKLSAgICAgICAgICAgIGNtLnNldFZh
bHVlKHJlc3VsdHMuam9pbigiXG4iKSk7Ci0gICAgICAgICAgICBjbS5yZWZyZXNoKCk7Ci0gICAg
ICAgICAgICBjYWxsYmFjaygpOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgPC9zY3JpcHQ+Ci08
L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVG9vbHMv
UHJldHR5UHJpbnRpbmcvcG9wdWxhdGUvYXBwbGUuY3NzIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1Rvb2xzL1ByZXR0eVByaW50aW5nL3BvcHVsYXRlL2FwcGxlLmNzcwpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggZjAzMzAyNWUyODguLjAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Ub29scy9QcmV0dHlQcmludGluZy9wb3B1bGF0ZS9hcHBsZS5jc3MKKysrIC9k
ZXYvbnVsbApAQCAtMSw0NjYgKzAsMCBAQAotLyogUkVTRVQgKi8KLWh0bWwsYm9keSxkaXYsdWws
b2wsbGksZGwsZHQsZGQsaDEsaDIsaDMsaDQsaDUsaDYscHJlLGZvcm0scCxibG9ja3F1b3RlLGZp
ZWxkc2V0LGlucHV0LGFiYnIsYXJ0aWNsZSxhc2lkZSxjb21tYW5kLGRldGFpbHMsZmlnY2FwdGlv
bixmaWd1cmUsZm9vdGVyLGhlYWRlcixoZ3JvdXAsbWFyayxtZXRlcixuYXYsb3V0cHV0LHByb2dy
ZXNzLHNlY3Rpb24sc3VtbWFyeSx0aW1lIHsgbWFyZ2luOiAwOyBwYWRkaW5nOiAwOyB9Ci1oMSxo
MixoMyxoNCxoNSxoNixwcmUsY29kZSxhZGRyZXNzLGNhcHRpb24sY2l0ZSxjb2RlLGVtLHN0cm9u
Zyx0aCxmaWdjYXB0aW9uIHsgZm9udC1zaXplOiAxZW07IGZvbnQtd2VpZ2h0OiBub3JtYWw7IGZv
bnQtc3R5bGU6IG5vcm1hbDsgfQotZmllbGRzZXQsaWZyYW1lIHsgYm9yZGVyOiBub25lOyB9Ci1j
YXB0aW9uLHRoIHsgdGV4dC1hbGlnbjogbGVmdDsgfQotdGFibGUgeyBib3JkZXItY29sbGFwc2U6
IGNvbGxhcHNlOyBib3JkZXItc3BhY2luZzogMDsgfQotYXJ0aWNsZSxhc2lkZSxmb290ZXIsaGVh
ZGVyLGhncm91cCxuYXYsc2VjdGlvbixmaWd1cmUsZmlnY2FwdGlvbiB7IGRpc3BsYXk6IGJsb2Nr
OyB9Ci0KLS8qIExBWU9VVCAqLwotaHRtbCB7IGJhY2tncm91bmQtY29sb3I6I2ZmZjsgfQotCi0u
Y2xlYXIgeyBjbGVhcjogYm90aDsgfQotLmNsZWFyZXIgeyBjbGVhcjogYm90aDsgZGlzcGxheTog
YmxvY2s7IG1hcmdpbjogMDsgcGFkZGluZzogMDsgaGVpZ2h0OiAwOyBsaW5lLWhlaWdodDogMXB4
OyBmb250LXNpemU6IDFweDsgfQotLnNlbGZjbGVhciB7IHpvb206MTsgfQotLnNlbGZjbGVhcjo6
YWZ0ZXIgeyBjb250ZW50OicuJzsgZGlzcGxheTpibG9jazsgaGVpZ2h0OjA7IGNsZWFyOmJvdGg7
IHZpc2liaWxpdHk6aGlkZGVuOyB9Ci0KLWltZywgLnNlYXJjaC13cmFwcGVyIC5sZWZ0LCAuc2Vh
cmNoLXdyYXBwZXIgLnJpZ2h0LCB1bC5zcC1yZXN1bHRzIGxpLnZpZXdhbGwgYSwgdWwuc3AtcmVz
dWx0cyBsaSAucmVwbGFjZW1lbnRpbWcsIAotI2dsb2JhbGZvb3RlciAjYnJlYWRjcnVtYnMsICNn
bG9iYWxmb290ZXIgI2JyZWFkY3J1bWJzIHNwYW4sICNkaXJlY3RvcnluYXYgLmNhcGJvdHRvbSwg
Ci0jcHJvZHVjdGhlYWRlciBoMSBhLCAjcHJvZHVjdGhlYWRlciBoMiBhLCAjbWFpbiAubWFpbmNh
cCB7IGJlaGF2aW9yOiB1cmwoL2dsb2JhbC9zY3JpcHRzL2xpYi9pZXBuZ2ZpeC5odGMpOyB9Ci0K
LWltZyB7IGJvcmRlcjogMDsgfQotaW1nLmxlZnQgeyBmbG9hdDogbGVmdDsgbWFyZ2luOiAycHgg
MjBweCAxNnB4IDA7IH0KLWltZy5yaWdodCB7IGZsb2F0OiByaWdodDsgbWFyZ2luOiAycHggMCAx
NnB4IDIwcHg7IH0KLWltZy5hY3Jvc3MgeyBtYXJnaW46IDJweCAwIDE2cHggMDsgfQotaW1nLmZs
dXNobGVmdCB7IG1hcmdpbi1sZWZ0OiAtMjBweDsgfQotaW1nLmZsdXNocmlnaHQgeyBtYXJnaW4t
cmlnaHQ6IC0yMHB4OyB9Ci0KLS5yZXBsYWNlZCB7IGRpc3BsYXk6IGJsb2NrOyB3aWR0aDogMXB4
OyBoZWlnaHQ6IDFweDsgb3V0bGluZTogbm9uZTsgb3ZlcmZsb3c6IGhpZGRlbjsgdGV4dC1pbmRl
bnQ6IC05OTk5cHg7IH0KLSNvbW5pdHVyZSwgI3RvcCB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9w
OiAwOyB9Ci0jY29udGFpbmVyIHsgd2lkdGg6IDk4MHB4OyBtYXJnaW46IDAgYXV0bzsgcG9zaXRp
b246IHJlbGF0aXZlOyB9Ci0jbWFpbiB7IHdpZHRoOiAxMDAlOyBwb3NpdGlvbjogcmVsYXRpdmU7
IH0KLSNjb250ZW50IHsgcGFkZGluZzogMThweCAyMHB4OyBwb3NpdGlvbjogcmVsYXRpdmU7IGNv
bG9yOiAjMzMzOyB9Ci0jYnJlYWRjcnVtYiB7IGNsZWFyOiBib3RoOyB0ZXh0LWFsaWduOiBjZW50
ZXI7IG1hcmdpbjogMThweCBhdXRvOyBjbGVhcjogYm90aDsgZm9udC1zaXplOiAxMHB4OyBjb2xv
cjogIzY4Njg2ODsgfQotCi0uY29udGVudCB7IGJhY2tncm91bmQ6ICNmZmY7IGJvcmRlcjogMXB4
IHNvbGlkOyBib3JkZXItY29sb3I6ICNlNWU1ZTUgI2RiZGJkYiAjZDJkMmQyOyAtd2Via2l0LWJv
eC1zaGFkb3c6IHJnYmEoMCwwLDAsMC4zKSAwIDFweCAzcHg7IC1tb3otYm94LXNoYWRvdzogcmdi
YSgwLDAsMCwwLjMpIDAgMXB4IDNweDsgYm94LXNoYWRvdzogcmdiYSgwLDAsMCwwLjMpIDAgMXB4
IDNweDsgfQotLmNvbnRlbnQ6bnRoLWNoaWxkKDFuKSB7IGJvcmRlcjogbm9uZTsgfSAvKiByZXNl
dCBib3JkZXIgZm9yIHNtYXJ0IGJyb3dzZXJzICovCi0KLS5jb250ZW50LAotLnJvdW5kZWQgeyBi
b3JkZXItcmFkaXVzOiA0cHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czogNHB4OyAtbW96LWJvcmRl
ci1yYWRpdXM6IDRweDsgLW8tYm9yZGVyLXJhZGl1czogNHB4OyAta2h0bWwtYm9yZGVyLXJhZGl1
czogNHB4OyB9Ci0KLS5zaGFkb3cgeyAtd2Via2l0LWJveC1zaGFkb3c6IHJnYmEoMCwwLDAsMC4z
NSkgMCAxcHggM3B4OyAtbW96LWJveC1zaGFkb3c6IHJnYmEoMCwwLDAsMC4zNSkgMCAxcHggM3B4
OyBib3gtc2hhZG93OiByZ2JhKDAsMCwwLDAuMzUpIDAgMXB4IDNweDsgfQotaW1nLnNoYWRvdyB7
IHBhZGRpbmc6IDVweDsgYmFja2dyb3VuZDogI2ZmZjsgbWFyZ2luLWJvdHRvbTogMnB4OyAqYm9y
ZGVyOiAxcHggc29saWQgI2UyZTJlMjsgX3Bvc2l0aW9uOiByZWxhdGl2ZTsgfQotCi0KLS5jYWxs
b3V0IHsgYm9yZGVyLXJhZGl1czogN3B4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDdweDsgLW1v
ei1ib3JkZXItcmFkaXVzOiA3cHg7IC1vLWJvcmRlci1yYWRpdXM6IDdweDsgLWtodG1sLWJvcmRl
ci1yYWRpdXM6IDdweDsgfQotCi0ucm91bmRlZHRvcCB7IGJvcmRlci1yYWRpdXM6IDRweCA0cHgg
MCAwOyAtd2Via2l0LWJvcmRlci10b3AtbGVmdC1yYWRpdXM6NHB4OyAtd2Via2l0LWJvcmRlci10
b3AtcmlnaHQtcmFkaXVzOjRweDsgLW1vei1ib3JkZXItcmFkaXVzOiA0cHggNHB4IDAgMDsgLW8t
Ym9yZGVyLXJhZGl1czogNHB4IDRweCAwIDA7IC1raHRtbC1ib3JkZXItcmFkaXVzOiA0cHggNHB4
IDAgMDsgfQotLnJvdW5kZWRib3R0b20geyBib3JkZXItcmFkaXVzOiAwIDAgNHB4IDRweDsgLXdl
YmtpdC1ib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjRweDsgLXdlYmtpdC1ib3JkZXItYm90dG9t
LXJpZ2h0LXJhZGl1czo0cHg7IC1tb3otYm9yZGVyLXJhZGl1czogMCAwIDRweCA0cHg7IC1vLWJv
cmRlci1yYWRpdXM6IDAgMCA0cHggNHB4OyAta2h0bWwtYm9yZGVyLXJhZGl1czogMCAwIDRweCA0
cHg7IH0KLS5yb3VuZGVkcmlnaHQgeyBib3JkZXItcmFkaXVzOiAwIDRweCA0cHggMDsgLXdlYmtp
dC1ib3JkZXItdG9wLXJpZ2h0LXJhZGl1czo0cHg7IC13ZWJraXQtYm9yZGVyLWJvdHRvbS1yaWdo
dC1yYWRpdXM6NHB4OyAtbW96LWJvcmRlci1yYWRpdXM6IDAgNHB4IDRweCAwOyAtby1ib3JkZXIt
cmFkaXVzOiAwIDRweCA0cHggMDsgLWtodG1sLWJvcmRlci1yYWRpdXM6IDAgNHB4IDRweCAwOyB9
Ci0ucm91bmRlZGxlZnQgeyBib3JkZXItcmFkaXVzOiA0cHggMCAwIDRweDsgLXdlYmtpdC1ib3Jk
ZXItdG9wLWxlZnQtcmFkaXVzOjRweDsgLXdlYmtpdC1ib3JkZXItYm90dG9tLWxlZnQtcmFkaXVz
OjRweDsgLW1vei1ib3JkZXItcmFkaXVzOiA0cHggMCAwIDRweDsgLW8tYm9yZGVyLXJhZGl1czog
NHB4IDAgMCA0cHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOiA0cHggMCAwIDRweDsgfQotLnJvdW5k
ZWR0b3BsZWZ0IHsgYm9yZGVyLXJhZGl1czo0cHggMCAwOyAtd2Via2l0LWJvcmRlci10b3AtbGVm
dC1yYWRpdXM6NHB4OyAtbW96LWJvcmRlci1yYWRpdXM6NHB4IDAgMDsgLW8tYm9yZGVyLXJhZGl1
czo0cHggMCAwOyAta2h0bWwtYm9yZGVyLXJhZGl1czo0cHggMCAwOyB9Ci0ucm91bmRlZHRvcHJp
Z2h0IHsgYm9yZGVyLXJhZGl1czogMCA0cHggMCAwOyAtd2Via2l0LWJvcmRlci10b3AtcmlnaHQt
cmFkaXVzOjRweDsgLW1vei1ib3JkZXItcmFkaXVzOjAgNHB4IDAgMDsgLW8tYm9yZGVyLXJhZGl1
czowIDRweCAwIDA7IC1raHRtbC1ib3JkZXItcmFkaXVzOiAwIDRweCAwIDA7IH0KLS5yb3VuZGVk
Ym90dG9tbGVmdCB7IGJvcmRlci1yYWRpdXM6IDAgMCAwIDRweDsgLXdlYmtpdC1ib3JkZXItYm90
dG9tLWxlZnQtcmFkaXVzOjRweDsgLW1vei1ib3JkZXItcmFkaXVzOiAwIDAgMCA0cHg7IC1vLWJv
cmRlci1yYWRpdXM6IDAgMCAwIDRweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6IDAgMCAwIDRweDsg
fQotLnJvdW5kZWRib3R0b21yaWdodCB7IGJvcmRlci1yYWRpdXM6IDAgMCA0cHggMDsgLXdlYmtp
dC1ib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czo0cHg7IC1tb3otYm9yZGVyLXJhZGl1czogMCAw
IDRweCAwOyAtby1ib3JkZXItcmFkaXVzOiAwIDAgNHB4IDA7IC1raHRtbC1ib3JkZXItcmFkaXVz
OiAwIDAgNHB4IDA7IH0KLQotLmdyYWJiYWJsZSB7IGN1cnNvcjptb3ZlOyBjdXJzb3I6LXdlYmtp
dC1ncmFiOyBjdXJzb3I6LW1vei1ncmFiOyBjdXJzb3I6Z3JhYjsgfQotLmdyYWJiaW5nLAotLmdy
YWJiaW5nIC5ncmFiYmFibGUgeyBjdXJzb3I6bW92ZTsgY3Vyc29yOi13ZWJraXQtZ3JhYmJpbmc7
IGN1cnNvcjotbW96LWdyYWJiaW5nOyBjdXJzb3I6Z3JhYmJpbmc7IH0KLQotLyogR1JJRCAqLwot
LmNvbHVtbiB7IGZsb2F0OiBsZWZ0OyB9Ci0uZ3JpZDJjb2wsIC5ncmlkMmNvbGEsIC5ncmlkMmNv
bGIsIC5ncmlkMmNvbGMsIC5ncmlkMmNvbGQsIC5ncmlkMmNvbGUsIC5ncmlkMmNvbGYsIC5ncmlk
M2NvbCwgLmdyaWQzY29sYSwgLmdyaWQ0Y29sLCAuZ3JpZDVjb2wsIC5ncmlkNmNvbCB7IHdpZHRo
OiAxMDAlOyB9Ci0KLS5ncmlkMmNvbCAuY29sdW1uIHsgd2lkdGg6IDQ5JTsgfQotLmdyaWQyY29s
IC5ncmlkMmNvbCAuY29sdW1uIHsgd2lkdGg6IDQ3LjglOyB9Ci0uZ3JpZDNjb2wgLmdyaWQyY29s
IC5jb2x1bW4geyB3aWR0aDogNDYlOyB9Ci0uZ3JpZDRjb2wgLmdyaWQyY29sIC5jb2x1bW4geyB3
aWR0aDogNDUlOyB9Ci0KLS5ncmlkMmNvbGEgLmNvbHVtbi5maXJzdCB7IHdpZHRoOiA2NiU7IH0K
LS5ncmlkMmNvbGEgLmNvbHVtbi5sYXN0IHsgd2lkdGg6IDMyJTsgfQotCi0uZ3JpZDJjb2xiIC5j
b2x1bW4uZmlyc3QgeyB3aWR0aDogNzQuOSU7IH0KLS5ncmlkMmNvbGIgLmNvbHVtbi5sYXN0IHsg
d2lkdGg6IDIzJTsgfQotCi0uZ3JpZDJjb2xjIC5jb2x1bW4uZmlyc3QgeyB3aWR0aDogMzIlOyB9
Ci0uZ3JpZDJjb2xjIC5jb2x1bW4ubGFzdCB7IHdpZHRoOiA2NiU7IH0KLQotLmdyaWQyY29sZCAu
Y29sdW1uLmZpcnN0IHsgd2lkdGg6IDIzJTsgfQotLmdyaWQyY29sZCAuY29sdW1uLmxhc3QgeyB3
aWR0aDogNzQuOSU7IH0KLQotLmdyaWQyY29sZSAuY29sdW1uLmZpcnN0IHsgd2lkdGg6IDc5JTsg
fQotLmdyaWQyY29sZSAuY29sdW1uLmxhc3QgeyB3aWR0aDogMTklOyB9Ci0KLS5ncmlkMmNvbGYg
LmNvbHVtbi5maXJzdCB7IHdpZHRoOiAxOSU7IH0KLS5ncmlkMmNvbGYgLmNvbHVtbi5sYXN0IHsg
d2lkdGg6IDc5JTsgfQotCi0uZ3JpZDNjb2wgLmNvbHVtbiB7IHdpZHRoOiAzMiU7IG1hcmdpbi1s
ZWZ0OiAyJTsgfQotLmdyaWQyY29sIC5ncmlkM2NvbCAuY29sdW1uIHsgd2lkdGg6IDMxJTsgfQot
Ci0uZ3JpZDNjb2xhIC5jb2x1bW4geyB3aWR0aDogNTglOyBtYXJnaW4tbGVmdDogMiU7IH0KLS5n
cmlkM2NvbGEgLmNvbHVtbi5maXJzdCwKLS5ncmlkM2NvbGEgLmNvbHVtbi5sYXN0IHsgd2lkdGg6
IDE5JTsgfQotCi0uZ3JpZDRjb2wgLmNvbHVtbiB7IHdpZHRoOiAyMyU7IG1hcmdpbi1sZWZ0OiAz
JTsgfQotCi0uZ3JpZDVjb2wgLmNvbHVtbiB7IHdpZHRoOiAxOC40JTsgbWFyZ2luLWxlZnQ6IDIl
OyB9Ci0KLS5ncmlkNmNvbCAuY29sdW1uIHsgd2lkdGg6IDE1JTsgbWFyZ2luLWxlZnQ6IDIlOyB9
Ci0KLS5jb2x1bW4uZmlyc3QsIC5jb2x1bW4ubGFzdCB7IG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRh
bnQ7IH0KLS5jb2x1bW4ubGFzdCB7IGZsb2F0OiByaWdodCAhaW1wb3J0YW50OyB9Ci0KLXAubGFz
dCwgdWwubGFzdCwgb2wubGFzdCwgbGkubGFzdCB7IF93aWR0aDogYXV0byAhaW1wb3J0YW50OyBf
ZmxvYXQ6IG5vbmUgIWltcG9ydGFudDsgfQotCi0jY29udGFpbmVyOjphZnRlciwgI2NvbnRlbnQ6
OmFmdGVyLCAuZ3JpZDJjb2w6OmFmdGVyLCAuZ3JpZDJjb2xhOjphZnRlciwgLmdyaWQyY29sYjo6
YWZ0ZXIsIC5ncmlkMmNvbGM6OmFmdGVyLCAuZ3JpZDJjb2xkOjphZnRlciwgLmdyaWQyY29sZTo6
YWZ0ZXIsIC5ncmlkMmNvbGY6OmFmdGVyLCAuZ3JpZDNjb2w6OmFmdGVyLCAuZ3JpZDNjb2xhOjph
ZnRlciwgLmdyaWQ0Y29sOjphZnRlciwgLmdyaWQ1Y29sOjphZnRlciwgLmdyaWQ2Y29sOjphZnRl
ciB7IGNvbnRlbnQ6ICIuIjsgZGlzcGxheTogYmxvY2s7IGhlaWdodDogMDsgY2xlYXI6IGJvdGg7
IHZpc2liaWxpdHk6IGhpZGRlbjsgfQotI2NvbnRhaW5lciwgI2NvbnRlbnQsIC5ncmlkMmNvbCwg
LmdyaWQyY29sYSwgLmdyaWQyY29sYiwgLmdyaWQyY29sYywgLmdyaWQyY29sZCwgLmdyaWQyY29s
ZSwgLmdyaWQyY29sZiwgLmdyaWQzY29sLCAuZ3JpZDNjb2xhLCAuZ3JpZDRjb2wsIC5ncmlkNWNv
bCwgLmdyaWQ2Y29sIHsgem9vbTogMTsgfQotCi0vKiBUWVBFICovCi1ib2R5IHsgZm9udDogMTJw
eC8xOHB4ICJMdWNpZGEgR3JhbmRlIiwgIkx1Y2lkYSBTYW5zIFVuaWNvZGUiLCBIZWx2ZXRpY2Es
IEFyaWFsLCBWZXJkYW5hLCBzYW5zLXNlcmlmOyBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVu
dDsgY29sb3I6ICMzMzM7IC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkOyB9Ci0K
LWEgeyBjb2xvcjogIzA4YzsgfQotYTpsaW5rLCBhOnZpc2l0ZWQsIGE6YWN0aXZlIHsgdGV4dC1k
ZWNvcmF0aW9uOiBub25lOyB9Ci1hOmhvdmVyIHsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7
IH0KLWEuYmxvY2sgeyBkaXNwbGF5OiBibG9jazsgY3Vyc29yOiBwb2ludGVyOyB9Ci1hLmJsb2Nr
IHNwYW4sCi1hLmJsb2NrIGVtIHsgY29sb3I6IzA4YzsgY3Vyc29yOiBwb2ludGVyOyB9Ci1hLmJs
b2NrOmhvdmVyIHsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9Ci1hLmJsb2NrOmhvdmVyIHNwYW4s
Ci1hLmJsb2NrOmhvdmVyIGVtIHsgY29sb3I6ICMwOGM7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJs
aW5lOyB9Ci1hLm1vcmUsIGVtLm1vcmUsIHNwYW4ubW9yZSB7IHdoaXRlLXNwYWNlOiBub3dyYXA7
IHBhZGRpbmctcmlnaHQ6IDEwcHg7IGJhY2tncm91bmQ6IHVybChodHRwOi8vaW1hZ2VzLmFwcGxl
LmNvbS9nbG9iYWwvZWxlbWVudHMvYXJyb3dzL21vcmVhcnJvd18wOGMuZ2lmKSBuby1yZXBlYXQg
MTAwJSA1MCU7IGN1cnNvcjogcG9pbnRlcjsgem9vbTogMTsgfQotYS5tb3JlbGFyZ2UsIGVtLm1v
cmVsYXJnZSwgc3Bhbi5tb3JlbGFyZ2UgeyB3aGl0ZS1zcGFjZTpub3dyYXA7IHBhZGRpbmctcmln
aHQ6MTJweDsgYmFja2dyb3VuZDp1cmwoaHR0cDovL2ltYWdlcy5hcHBsZS5jb20vZ2xvYmFsL2Vs
ZW1lbnRzL2Fycm93cy9tb3JlYXJyb3dfYmlnXzA4Yy5naWYpIG5vLXJlcGVhdCAxMDAlIDUwJTsg
Y3Vyc29yOnBvaW50ZXI7IHpvb206MTsgfQotYS5sZXNzbGFyZ2UsIGVtLmxlc3NsYXJnZSwgc3Bh
bi5sZXNzbGFyZ2UgeyB3aGl0ZS1zcGFjZTpub3dyYXA7IHBhZGRpbmctbGVmdDoxMnB4OyBiYWNr
Z3JvdW5kOnVybChodHRwOi8vaW1hZ2VzLmFwcGxlLmNvbS9nbG9iYWwvZWxlbWVudHMvYXJyb3dz
L2xlc3NhcnJvd19iaWdfMDhjLmdpZikgbm8tcmVwZWF0IDAgNTAlOyBjdXJzb3I6cG9pbnRlcjsg
em9vbToxOyB9Ci1AbWVkaWEgb25seSBzY3JlZW4gewotCWEubW9yZSwgZW0ubW9yZSwgc3Bhbi5t
b3JlIHsgYmFja2dyb3VuZC1pbWFnZTp1cmwoLi8uLi9lbGVtZW50cy9hcnJvd3MvbW9yZWFycm93
XzA4Yy5zdmcpOyB9Ci0JYS5tb3JlbGFyZ2UsIGVtLm1vcmVsYXJnZSwgc3Bhbi5tb3JlbGFyZ2Ug
eyBiYWNrZ3JvdW5kLWltYWdlOnVybCguLy4uL2VsZW1lbnRzL2Fycm93cy9tb3JlYXJyb3dfYmln
XzA4Yy5zdmcpOyB9Ci0JYS5sZXNzbGFyZ2UsIGVtLmxlc3NsYXJnZSwgc3Bhbi5sZXNzbGFyZ2Ug
eyBiYWNrZ3JvdW5kLWltYWdlOnVybCguLy4uL2VsZW1lbnRzL2Fycm93cy9sZXNzYXJyb3dfYmln
XzA4Yy5zdmcpOyB9Ci19Ci1hLmV4dGVybmFsLCBlbS5leHRlcm5hbCwgc3Bhbi5leHRlcm5hbCB7
IHdoaXRlLXNwYWNlOiBub3dyYXA7IHBhZGRpbmctcmlnaHQ6IDE1cHg7IGJhY2tncm91bmQ6IHVy
bChodHRwOi8vaW1hZ2VzLmFwcGxlLmNvbS9nbG9iYWwvZWxlbWVudHMvaWNvbnMvZXh0ZXJuYWwx
MHgxMC5naWYpIG5vLXJlcGVhdCAxMDAlIDQ5JTsgY3Vyc29yOiBwb2ludGVyOyB6b29tOiAxOyB9
Ci1hW3JlbD0iZXh0ZXJuYWwiXSB7IHdoaXRlLXNwYWNlOiBub3dyYXA7IHBhZGRpbmctcmlnaHQ6
IDE1cHg7IGJhY2tncm91bmQ6IHVybChodHRwOi8vaW1hZ2VzLmFwcGxlLmNvbS9nbG9iYWwvZWxl
bWVudHMvaWNvbnMvZXh0ZXJuYWwxMHgxMC5naWYpIG5vLXJlcGVhdCAxMDAlIDQ5JTsgY3Vyc29y
OiBwb2ludGVyOyB6b29tOiAxOyB9Ci1lbS5tb3JlLCBzcGFuLm1vcmUsIGVtLmV4dGVybmFsLCBz
cGFuLmV4dGVybmFsIHsgY29sb3I6IzA4YzsgZm9udC1zdHlsZTogbm9ybWFsOyBjdXJzb3I6IHBv
aW50ZXI7IH0KLS5ub3dyYXAgeyB3aGl0ZS1zcGFjZTpub3dyYXA7IH0KLXN0cm9uZywgYiB7IGZv
bnQtd2VpZ2h0OiBib2xkOyB9Ci1lbSwgaSwgY2l0ZSB7IGZvbnQtc3R5bGU6IGl0YWxpYzsgfQot
c3VwIHsgcGFkZGluZy1sZWZ0OiAxcHg7IGZvbnQtc2l6ZTogMTBweCAhaW1wb3J0YW50OyBmb250
LXdlaWdodDogbm9ybWFsICFpbXBvcnRhbnQ7IHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTsgcG9z
aXRpb246IHJlbGF0aXZlOyBib3R0b206IDAuMzNlbTsgX3Bvc2l0aW9uOiBzdGF0aWMgIWltcG9y
dGFudDsgfQotc3VwLCBzdXAgYSB7IGNvbG9yOiM2NjY7IH0KLXN1cCBhOmhvdmVyIHsgY29sb3I6
IzA4YzsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IH0KLWFiYnIgeyBib3JkZXI6IDA7IH0KLS5zb3N1
bWkgeyBmb250LXNpemU6IDEwcHggIWltcG9ydGFudDsgbGluZS1oZWlnaHQ6MS41OyBjb2xvcjoj
ODg4OyB9Ci0uc29zdW1pX2ZlYXR1cmVzIHsgZm9udC1zaXplOiAxMHB4ICFpbXBvcnRhbnQ7IGxp
bmUtaGVpZ2h0OjEuNTsgY29sb3I6Izg4ODsgfQotCi1oMSxoMixoMyxoNCxoNSxoNixzdHJvbmcg
eyBjb2xvcjojMDAwOyB9Ci1oMSxoMixoMyxoNCB7IGZvbnQtd2VpZ2h0OiBib2xkOyB9Ci1oMixo
MyxoNCB7IGxpbmUtaGVpZ2h0OiAxOHB4OyB9Ci1oMSxoMiB7IG1hcmdpbi1ib3R0b206IDE4cHg7
IH0KLWgxIHsgZm9udC1zaXplOiAyNHB4OyBsaW5lLWhlaWdodDogMzZweDsgfQotaDIgeyBmb250
LXNpemU6IDE2cHg7IH0KLWgzIHsgZm9udC1zaXplOiAxZW07IH0KLWg0IHsgZm9udC1zaXplOiAx
MHB4OyB9Ci1wIHsgbWFyZ2luLWJvdHRvbTogMThweDsgfQotcC5pbnRybyB7IGNvbG9yOiAjODg4
OyBmb250LXNpemU6IDE2cHg7IGxpbmUtaGVpZ2h0OiAyMnB4OyBmb250LXdlaWdodDogbm9ybWFs
OyB9Ci0ubW9yZSB7IHRleHQtYWxpZ246IHJpZ2h0OyB9Ci0KLXVsIHsgbGlzdC1zdHlsZTogbm9u
ZSBvdXRzaWRlOyB9Ci1vbCB7IG1hcmdpbi1ib3R0b206IDE4cHg7IGxpc3Qtc3R5bGU6IGRlY2lt
YWw7IG1hcmdpbi1sZWZ0OiAyLjJlbTsgfQotdWwuc3F1YXJlLAotdWwuY2lyY2xlIHsgbWFyZ2lu
LWxlZnQ6IDJlbTsgbWFyZ2luLWJvdHRvbTogMThweDsgfQotdWwuc3F1YXJlIHsgbGlzdC1zdHls
ZTogc3F1YXJlIG91dHNpZGU7IH0KLXVsLmNpcmNsZSB7IGxpc3Qtc3R5bGU6IGNpcmNsZSBvdXRz
aWRlOyB9Ci11bCB1bC5jaXJjbGUsCi11bCB1bC5zcXVhcmUgeyBtYXJnaW4tdG9wOiA0cHg7IG1h
cmdpbi1ib3R0b206IDVweDsgfQotb2wuc29zdW1pIHsgbWFyZ2luLWxlZnQ6IDA7IHBhZGRpbmct
bGVmdDogMmVtOyAqcGFkZGluZy1sZWZ0OiAyLjJlbTsgfQotCi1hLnBkZiB7IGJhY2tncm91bmQ6
IHVybChodHRwOi8vaW1hZ2VzLmFwcGxlLmNvbS9nbG9iYWwvZWxlbWVudHMvaWNvbnMvZ2xvYmFs
aWNvbnBkZjEyeDEyLmdpZikgMCAwLjRlbSBuby1yZXBlYXQ7IGRpc3BsYXk6IGJsb2NrOyBwYWRk
aW5nLWxlZnQ6IDIwcHg7IH0KLWEuaHRtbCB7IGJhY2tncm91bmQ6IHVybChodHRwOi8vaW1hZ2Vz
LmFwcGxlLmNvbS9nbG9iYWwvZWxlbWVudHMvaWNvbnMvZ2xvYmFsaWNvbmh0bWwxMngxMi5naWYp
IDAgMC40ZW0gbm8tcmVwZWF0OyBkaXNwbGF5OiBibG9jazsgcGFkZGluZy1sZWZ0OiAyMHB4OyB9
Ci1hLnF0IHsgYmFja2dyb3VuZDogdXJsKGh0dHA6Ly9pbWFnZXMuYXBwbGUuY29tL2dsb2JhbC9l
bGVtZW50cy9pY29ucy9nbG9iYWxpY29ucXQxMngxMi5naWYpIDAgMC40ZW0gbm8tcmVwZWF0OyBk
aXNwbGF5OiBibG9jazsgcGFkZGluZy1sZWZ0OiAyMHB4OyB9Ci1hLmljYWwgeyBiYWNrZ3JvdW5k
OiB1cmwoaHR0cDovL2ltYWdlcy5hcHBsZS5jb20vZ2xvYmFsL2VsZW1lbnRzL2ljb25zL2dsb2Jh
bGljb25pY2FsMTJ4MTIuZ2lmKSAwIDAuNGVtIG5vLXJlcGVhdDsgZGlzcGxheTogYmxvY2s7IHBh
ZGRpbmctbGVmdDogMjBweDsgfQotYS5kbCB7IGJhY2tncm91bmQ6IHVybChodHRwOi8vaW1hZ2Vz
LmFwcGxlLmNvbS9nbG9iYWwvZWxlbWVudHMvaWNvbnMvZ2xvYmFsaWNvbmRsMTF4MTAuZ2lmKSAw
IDAuNGVtIG5vLXJlcGVhdDsgZGlzcGxheTogYmxvY2s7IHBhZGRpbmctbGVmdDogMjBweDsgfQot
YS5kbWcgeyBiYWNrZ3JvdW5kOiB1cmwoaHR0cDovL2ltYWdlcy5hcHBsZS5jb20vZ2xvYmFsL2Vs
ZW1lbnRzL2ljb25zL2dsb2JhbGljb25kbWcxMngxMi5naWYpIDAgMC40ZW0gbm8tcmVwZWF0OyBk
aXNwbGF5OiBibG9jazsgcGFkZGluZy1sZWZ0OiAyMHB4OyB9Ci1hLnppcCB7IGJhY2tncm91bmQ6
IHVybChodHRwOi8vaW1hZ2VzLmFwcGxlLmNvbS9nbG9iYWwvZWxlbWVudHMvaWNvbnMvZ2xvYmFs
aWNvbnppcDEyeDEyLmdpZikgMCAwLjRlbSBuby1yZXBlYXQ7IGRpc3BsYXk6IGJsb2NrOyBwYWRk
aW5nLWxlZnQ6IDIwcHg7IH0KLWEua2V5bm90ZSB7IGJhY2tncm91bmQ6IHVybChodHRwOi8vaW1h
Z2VzLmFwcGxlLmNvbS9nbG9iYWwvZWxlbWVudHMvaWNvbnMvZ2xvYmFsaWNvbmtleW5vdGUxMngx
Mi5naWYpIDAgMC40ZW0gbm8tcmVwZWF0OyBkaXNwbGF5OiBibG9jazsgcGFkZGluZy1sZWZ0OiAy
MHB4OyB9Ci1hLmF1ZGlvIHsgYmFja2dyb3VuZDogdXJsKGh0dHA6Ly9pbWFnZXMuYXBwbGUuY29t
L2dsb2JhbC9lbGVtZW50cy9pY29ucy9nbG9iYWxpY29uYXVkaW8xMngxMi5naWYpIDAgMC40ZW0g
bm8tcmVwZWF0OyBkaXNwbGF5OiBibG9jazsgcGFkZGluZy1sZWZ0OiAyMHB4OyB9Ci0KLS5kb3Qt
bmF2IHsgd2lkdGg6MTAwJTsgbWFyZ2luOjA7IHBhZGRpbmc6MDsgdGV4dC1hbGlnbjpjZW50ZXI7
IGxpbmUtaGVpZ2h0OjFweDsgfQotLmRvdC1uYXYgbGksCi0uZG90LW5hdiBsaSBhIHsgZGlzcGxh
eTotbW96LWlubGluZS1zdGFjazsgZGlzcGxheTppbmxpbmUtYmxvY2s7ICpkaXNwbGF5OmlubGlu
ZTsgKnpvb206MTsgfQotLmRvdC1uYXYgbGkgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgei1pbmRleDox
OyBtYXJnaW46MDsgd2lkdGg6MTNweDsgaGVpZ2h0OjE1cHg7IG92ZXJmbG93OmhpZGRlbjsgfQot
LmRvdC1uYXYgbGkgYSB7IHBvc2l0aW9uOmFic29sdXRlOyB6LWluZGV4OjE7IHdpZHRoOjEzcHg7
IGhlaWdodDo0NXB4OyB0b3A6MDsgbGVmdDowOyBjdXJzb3I6cG9pbnRlcjsgdGV4dC1pbmRlbnQ6
LTEwMDBlbTsgYmFja2dyb3VuZDp1cmwoaHR0cDovL2ltYWdlcy5hcHBsZS5jb20vZ2xvYmFsL2Vs
ZW1lbnRzL2J1dHRvbnMvZG90c18wOGMucG5nKSBuby1yZXBlYXQgMCAwOyBiZWhhdmlvcjp1cmwo
L2dsb2JhbC9zY3JpcHRzL2xpYi9pZTdwbmdmaXguaHRjKTsgfQotLmRvdC1uYXYgbGkgYTpob3Zl
ciB7IHRvcDotMTVweDsgfQotLmRvdC1uYXYgbGkgYS5hY3RpdmUgeyBjdXJzb3I6ZGVmYXVsdDsg
dG9wOi0zMHB4OyB9Ci0KLS5kb3QtbmF2Om50aC1jaGlsZCgxbikgbGkgeyB3aWR0aDoxMHB4OyBo
ZWlnaHQ6MTBweDsgcGFkZGluZzozcHggMnB4IDJweCAycHg7IH0KLS5kb3QtbmF2Om50aC1jaGls
ZCgxbikgbGkgYSB7IGJvcmRlci1yYWRpdXM6NXB4OyB3aWR0aDoxMHB4OyBoZWlnaHQ6MTBweDsg
YmFja2dyb3VuZDojZTBlMWUzOwotCS13ZWJraXQtYm94LXNoYWRvdzppbnNldCAwIDFweCAxcHgg
cmdiYSgwLCAwLCAwLCAuMjUpOwotCSAgIC1tb3otYm94LXNoYWRvdzppbnNldCAwIDFweCAxcHgg
cmdiYSgwLCAwLCAwLCAuMjUpOwotCSAgICAgICAgYm94LXNoYWRvdzppbnNldCAwIDFweCAxcHgg
cmdiYSgwLCAwLCAwLCAuMjUpOwotfQotLmRvdC1uYXY6bnRoLWNoaWxkKDFuKSBsaSBhOmhvdmVy
IHsgdG9wOjA7IGJhY2tncm91bmQ6I2NjYzt9Ci0uZG90LW5hdjpudGgtY2hpbGQoMW4pIGxpIGEu
YWN0aXZlIHsgdG9wOjA7IGJhY2tncm91bmQ6IzA4YzsKLQliYWNrZ3JvdW5kOi13ZWJraXQtZ3Jh
ZGllbnQobGluZWFyLGxlZnR0b3AsbGVmdGJvdHRvbSxjb2xvci1zdG9wKDAlLHJnYigxMjYsMTk4
LDIzNCkpLGNvbG9yLXN0b3AoMjQlLHJnYig3MCwxNzksMjM0KSksY29sb3Itc3RvcCgxMDAlLHJn
YigzLDEzNSwyMDEpKSk7Ci0JYmFja2dyb3VuZDotd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3As
cmdiKDEyNiwxOTgsMjM0KTAlLHJnYig3MCwxNzksMjM0KTQ1JSxyZ2IoMywxMzUsMjAxKTEwMCUp
OwotCWJhY2tncm91bmQ6ICAgLW1vei1saW5lYXItZ3JhZGllbnQodG9wLHJnYigxMjYsMTk4LDIz
NCkwJSxyZ2IoNzAsMTc5LDIzNCk0NSUscmdiKDMsMTM1LDIwMSkxMDAlKTsKLQliYWNrZ3JvdW5k
OiAgICAgICAgbGluZWFyLWdyYWRpZW50KHRvcCxyZ2IoMTI2LDE5OCwyMzQpMCUscmdiKDcwLDE3
OSwyMzQpNDUlLHJnYigzLDEzNSwyMDEpMTAwJSk7Ci0JLXdlYmtpdC1ib3gtc2hhZG93Omluc2V0
IDAgMXB4IDAgcmdiYSgwLCAwLCAwLCAuMjUpOwotCSAgIC1tb3otYm94LXNoYWRvdzppbnNldCAw
IDFweCAwIHJnYmEoMCwgMCwgMCwgLjI1KTsKLQkgICAgICAgIGJveC1zaGFkb3c6aW5zZXQgMCAx
cHggMCByZ2JhKDAsIDAsIDAsIC4yNSk7Ci19Ci0KLS5sYXN0IHsgbWFyZ2luLWJvdHRvbTogMDsg
fQotI21haW4gLnNpZGViYXIgeyBmb250LXNpemU6IDEwcHg7IGxpbmUtaGVpZ2h0OiAxOHB4OyBj
b2xvcjojMzMzOyB9Ci0jbWFpbiAuY2FsbG91dCB7IGZvbnQtc2l6ZTogMTFweDsgbGluZS1oZWln
aHQ6IDE4cHg7IG1hcmdpbi1ib3R0b206IDE4cHg7IH0KLQotYm9keS5zcGVjcyAjbWFpbiB7IGZv
bnQtc2l6ZTogMTFweDsgbGluZS1oZWlnaHQ6IDE2cHg7IH0KLQotLyogUElQRUQgTElOS1MgKi8K
LS5waXBlZCB7IGRpc3BsYXk6IGJsb2NrOyB6b29tOiAxOyB9Ci0ucGlwZWQ6OmFmdGVyIHsgY29u
dGVudDogIi4iOyBkaXNwbGF5OiBibG9jazsgaGVpZ2h0OiAwOyBjbGVhcjogYm90aDsgdmlzaWJp
bGl0eTogaGlkZGVuOyB9Ci0ucGlwZWQgbGkgeyBmbG9hdDogbGVmdDsgZGlzcGxheTogaW5saW5l
OyB9Ci0ucGlwZWQgYSB7IGJvcmRlci1sZWZ0OiAxcHggc29saWQgIzc5N2M4MDsgcGFkZGluZzog
MCAwIDAgMC43NWVtOyBtYXJnaW4tbGVmdDogMC43NWVtOyB9Ci0ucGlwZWQgYS5maXJzdCB7IGJv
cmRlci1sZWZ0OiAwICFpbXBvcnRhbnQ7IHBhZGRpbmctbGVmdDogMDsgbWFyZ2luLWxlZnQ6IDAg
IWltcG9ydGFudDsgfQotCi0vKi0tLSBHbG9iYWwgRm9vdGVyIChsZWdhY3kpIC0tLSovCi0jZ2xv
YmFsZm9vdGVyIC5nZi1idXkgeyBmbG9hdDogbGVmdDsgd2lkdGg6IDYwJTsgbWFyZ2luOiAxOHB4
IDAgOXB4OyB9Ci0jZ2xvYmFsZm9vdGVyIC5nZi1saW5rcyB7IGZsb2F0OiByaWdodDsgbWFyZ2lu
OiAxOHB4IDAgOXB4OyB9Ci0jZ2xvYmFsZm9vdGVyIC5nZi1saW5rcyBhIHsgcGFkZGluZzogMCAx
MHB4OyB3aGl0ZS1zcGFjZTogbm93cmFwOyB9Ci0jZ2xvYmFsZm9vdGVyIC5nZi1saW5rcyBhLmxh
c3QgeyBwYWRkaW5nLXJpZ2h0OiAwOyBfZmxvYXQ6IG5vbmUgIWltcG9ydGFudDsgd2lkdGg6IGF1
dG8gIWltcG9ydGFudDsgfQotCi0vKi0tLSBHbG9iYWwgRm9vdGVyIC0tLSovCi0jZ2xvYmFsZm9v
dGVyIHsgd2lkdGg6IDk4MHB4OyBjb2xvcjogIzg4ODsgZm9udC1zaXplOiAxMHB4OyBtYXJnaW46
IDE4cHggYXV0byAwOyBwYWRkaW5nLWJvdHRvbTogMzZweDsgdGV4dC1hbGlnbjogbGVmdCAhaW1w
b3J0YW50OyB9Ci0jZ2xvYmFsZm9vdGVyIGEgeyBjb2xvcjogIzA4YzsgfQotI2dsb2JhbGZvb3Rl
ciBwIHsgbWFyZ2luLWJvdHRvbTogMWVtOyB9Ci0jZ2xvYmFsZm9vdGVyIHAuZ2YtYnV5IHsgZmxv
YXQ6IGxlZnQ7IHdpZHRoOiA1MiU7IG1hcmdpbjogMThweCAwIDlweCAzcHg7IH0KLSNnbG9iYWxm
b290ZXIgdWwucGlwZWQgYSB7IHBhZGRpbmc6IDAgMCAwIDEuNWVtOyBtYXJnaW4tbGVmdDogMS41
ZW07IGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2QwZDBkMDsgfQotI2dsb2JhbGZvb3RlciAuZ2Yt
bGlua3MgeyBmbG9hdDogcmlnaHQ7IG1hcmdpbjogMThweCAzcHggOXB4IDA7IH0KLSNnbG9iYWxm
b290ZXIgLmdmLXNvc3VtaSB7IGNsZWFyOiBib3RoOyB3aWR0aDogMTAwJTsgYm9yZGVyLXRvcDog
MXB4IHNvbGlkICNkZGQ7IHBhZGRpbmctdG9wOiA5cHg7IH0KLSNnbG9iYWxmb290ZXIgLmdmLXNv
c3VtaSBhIHsgcGFkZGluZzogMCAxMHB4OyB9Ci0jZ2xvYmFsZm9vdGVyIC5nZi1zb3N1bWkgcCB7
IGZsb2F0OiBsZWZ0OyBtYXJnaW4tbGVmdDogM3B4OyB9Ci0jZ2xvYmFsZm9vdGVyIGZvcm0geyBt
YXJnaW46IDE4cHggMTBweDsgfQotI2dsb2JhbGZvb3RlciAuc2VhcmNoLXdyYXBwZXIgeyBtYXJn
aW46IDAgYXV0bzsgfQotI2dsb2JhbGZvb3RlciAuc2VhcmNoLXdyYXBwZXIgaW5wdXQucHJldHR5
c2VhcmNoIHsgbWFyZ2luLWxlZnQ6IDEwcHg7IH0KLSNnbG9iYWxmb290ZXIgdWwucGlwZWQgYS5j
b250YWN0X3VzIHsgcGFkZGluZy1yaWdodDogMS41ZW07IGJvcmRlci1yaWdodDogMXB4IHNvbGlk
ICNkMGQwZDA7IH0KLSNnbG9iYWxmb290ZXIgdWwucGlwZWQgYS5jaG9vc2UgeyBtYXJnaW4tbGVm
dDogMDsgYm9yZGVyOiAwOyB9Ci0jZ2xvYmFsZm9vdGVyIHVsLnBpcGVkIGEuY2hvb3NlIGltZyB7
IHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IG1hcmdpbi10b3A6IC01cHg7ICpwb3NpdGlvbjogcmVs
YXRpdmU7IH0KLQotLyotLS0gQnJlYWRjcnVtYnMgKGxlZ2FjeSkgLS0tKi8KLSNnbG9iYWxmb290
ZXIgI2JyZWFkY3J1bWJzIHsgZm9udC1zaXplOiAxMXB4OyBjb2xvcjogIzQ0NDsgYmFja2dyb3Vu
ZDogdXJsKGh0dHA6Ly9pbWFnZXMuYXBwbGUuY29tL2dsb2JhbC9lbGVtZW50cy9icmVhZG9yeS9i
cmVhZGNydW1iX2JnLnBuZykgbm8tcmVwZWF0OyBvdmVyZmxvdzogaGlkZGVuOyBoZWlnaHQ6IDM2
cHg7IGxpbmUtaGVpZ2h0OiAzNHB4OyBmb250LXdlaWdodDogYm9sZDsgdGV4dC1zaGFkb3c6IDAg
MXB4IDAgI2ZmZjsgfQotI2dsb2JhbGZvb3RlciAjYnJlYWRjcnVtYnMgYSB7IGNvbG9yOiAjNDQ0
OyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IGZsb2F0OiBsZWZ0OyBwYWRkaW5nOiAwIDEwcHg7IG1h
cmdpbi1sZWZ0OiAtMTBweDsgKnBvc2l0aW9uOiByZWxhdGl2ZTsgX2N1cnNvcjogaGFuZDsgfQot
I2dsb2JhbGZvb3RlciAjYnJlYWRjcnVtYnMgYTpob3ZlciB7IGNvbG9yOiAjMzMzOyB0ZXh0LWRl
Y29yYXRpb246IG5vbmUgIWltcG9ydGFudDsgfQotI2dsb2JhbGZvb3RlciAjYnJlYWRjcnVtYnMg
YS5ob21lIHsgbWFyZ2luOiAwOyB3aWR0aDogMTVweDsgaGVpZ2h0OiAwOyBwYWRkaW5nLXRvcDog
MzZweDsgb3ZlcmZsb3c6IGhpZGRlbjsgfQotI2dsb2JhbGZvb3RlciAjYnJlYWRjcnVtYnMgc3Bh
biB7IGZsb2F0OiBsZWZ0OyB3aWR0aDogOXB4OyBtYXJnaW46IDAgMTBweCAwIDA7IGhlaWdodDog
MDsgcGFkZGluZy10b3A6IDM0cHg7IG1hcmdpbi10b3A6IDFweDsgb3ZlcmZsb3c6IGhpZGRlbjsg
YmFja2dyb3VuZDogdXJsKGh0dHA6Ly9pbWFnZXMuYXBwbGUuY29tL2dsb2JhbC9lbGVtZW50cy9i
cmVhZG9yeS9icmVhZGNydW1iX3NlcC5wbmcpIG5vLXJlcGVhdDsgfQotCi0vKi0tLSBCcmVhZGNy
dW1icyAtLS0qLwotI2dsb2JhbGZvb3RlciBvbCNicmVhZGNydW1icyB7IGZvbnQtc2l6ZTogMTFw
eDsgY29sb3I6ICM0NDQ7IGJhY2tncm91bmQ6IHVybChodHRwOi8vaW1hZ2VzLmFwcGxlLmNvbS9n
bG9iYWwvZWxlbWVudHMvYnJlYWRvcnkvYnJlYWRjcnVtYl9iZy5wbmcpIG5vLXJlcGVhdDsgaGVp
Z2h0OiAzNnB4OyBsaW5lLWhlaWdodDogMzRweDsgbWFyZ2luOiAwOyBsaXN0LXN0eWxlOiBub25l
OyBmb250LXdlaWdodDogYm9sZDsgdGV4dC1zaGFkb3c6IDAgMXB4IDAgI2ZmZjsgfQotI2dsb2Jh
bGZvb3RlciBvbCNicmVhZGNydW1icyBsaSB7IGZsb2F0OiBsZWZ0OyBtYXJnaW46IDA7IHBhZGRp
bmc6IDAgMCAwIDIwcHg7IGJhY2tncm91bmQ6IHVybChodHRwOi8vaW1hZ2VzLmFwcGxlLmNvbS9n
bG9iYWwvZWxlbWVudHMvYnJlYWRvcnkvYnJlYWRjcnVtYl9zZXBfMjAwODA5MDkucG5nKSBuby1y
ZXBlYXQ7IH0KLSNnbG9iYWxmb290ZXIgb2wjYnJlYWRjcnVtYnMgbGkgYSB7IGZsb2F0OiBsZWZ0
OyBjb2xvcjogIzQ0NDsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyBwYWRkaW5nOiAwIDEwcHg7IG1h
cmdpbi1sZWZ0OiAtMTBweDsgfQotI2dsb2JhbGZvb3RlciBvbCNicmVhZGNydW1icyBsaSBhOmhv
dmVyIHsgY29sb3I6ICMzMzM7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfQotI2dsb2JhbGZvb3Rl
ciBvbCNicmVhZGNydW1icyBsaS5ob21lIHsgYmFja2dyb3VuZDogbm9uZTsgbWFyZ2luOiAwOyBw
YWRkaW5nOiAwOyB9Ci0jZ2xvYmFsZm9vdGVyIG9sI2JyZWFkY3J1bWJzIGxpLmhvbWUgYSB7IG1h
cmdpbjogMDsgcGFkZGluZzogMCAxMHB4OyB3aWR0aDogMTVweDsgdGV4dC1pbmRlbnQ6IC05OTk5
cHg7IG92ZXJmbG93OiBoaWRkZW47IH0KLQotLyotLS0gRGlyZWN0b3J5IE5hdiAtLS0qLwotI2Rp
cmVjdG9yeW5hdiB7IGZvbnQtc2l6ZTogMTFweDsgbGluZS1oZWlnaHQ6MTRweDsgcGFkZGluZy10
b3A6MnB4OyBiYWNrZ3JvdW5kOiB1cmwoaHR0cDovL2ltYWdlcy5hcHBsZS5jb20vZ2xvYmFsL2Vs
ZW1lbnRzL2JyZWFkb3J5L2RpcmVjdG9yeV9iZy5wbmcpIHJlcGVhdC15OyBib3JkZXItdG9wOiAx
cHggc29saWQgI2RkZDsgZmxvYXQ6IGxlZnQ7IHdpZHRoOiAxMDAlOyBtYXJnaW4tdG9wOiAtNHB4
OyAqcG9zaXRpb246IHJlbGF0aXZlOyB9Ci0jZGlyZWN0b3J5bmF2IC5jb2x1bW4geyB3aWR0aDog
MTIwcHg7IHBhZGRpbmc6IDlweCAwIDJweCAxOHB4OyB9Ci0jZGlyZWN0b3J5bmF2IC5jb2x1bW4u
bGFzdCB7IGZsb2F0OiBsZWZ0ICFpbXBvcnRhbnQ7IHBhZGRpbmctcmlnaHQ6IDA7IH0KLSNkaXJl
Y3RvcnluYXYgaDMgeyBjb2xvcjogIzY2NjsgbWFyZ2luOiAwOyBmb250LXNpemU6IDFlbTsgbGlu
ZS1oZWlnaHQ6IDE0cHg7IGZvbnQtd2VpZ2h0OiBib2xkOyBwYWRkaW5nLWJvdHRvbTogNHB4OyB9
Ci0jZGlyZWN0b3J5bmF2IGgzLnN0YW5kYWxvbmUgeyBtYXJnaW4tYm90dG9tOiAxOHB4OyB9Ci0j
ZGlyZWN0b3J5bmF2IGEgeyBjb2xvcjogIzg4ODsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyBkaXNw
bGF5OiBibG9jazsgem9vbTogMTsgfQotI2RpcmVjdG9yeW5hdiBoMy5zdGFuZGFsb25lIGE6bGlu
aywKLSNkaXJlY3RvcnluYXYgaDMuc3RhbmRhbG9uZSBhOnZpc2l0ZWQgeyBjb2xvcjogIzQ0NDsg
fQotI2RpcmVjdG9yeW5hdiBhOmhvdmVyIHsgY29sb3I6ICMzMzMgIWltcG9ydGFudDsgdGV4dC1k
ZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7IH0KLSNkaXJlY3RvcnluYXYgLmNhcGJvdHRvbSB7
IGNsZWFyOiBib3RoOyBwb3NpdGlvbjogcmVsYXRpdmU7IHRvcDogNXB4OyBfdG9wOiAxMnB4OyBo
ZWlnaHQ6IDVweDsgd2lkdGg6IDk4MHB4OyBiYWNrZ3JvdW5kOiB1cmwoaHR0cDovL2ltYWdlcy5h
cHBsZS5jb20vZ2xvYmFsL2VsZW1lbnRzL2JyZWFkb3J5L2RpcmVjdG9yeV9jYXBiZy5wbmcpIG5v
LXJlcGVhdDsgfQotI2RpcmVjdG9yeW5hdiB1bCB7IG1hcmdpbi1ib3R0b206IDA7IHBhZGRpbmct
Ym90dG9tOiA5cHg7IH0KLSNkaXJlY3RvcnluYXYgdWwgbGkgeyBwYWRkaW5nLWJvdHRvbTogNHB4
OyB9Ci0jZGlyZWN0b3J5bmF2LmlvcyAuY29sdW1uLAotI2RpcmVjdG9yeW5hdi5tYWMgLmNvbHVt
biwKLSNkaXJlY3RvcnluYXYuaXBvZCAuY29sdW1uLAotI2RpcmVjdG9yeW5hdi5pcG9kdG91Y2gg
LmNvbHVtbiwKLSNkaXJlY3RvcnluYXYuaXBhZCAuY29sdW1uLAotI2RpcmVjdG9yeW5hdi5pcGhv
bmUgLmNvbHVtbiwKLSNkaXJlY3RvcnluYXYuaXR1bmVzIC5jb2x1bW4geyB3aWR0aDogMTkwcHg7
IHBhZGRpbmc6IDlweCAwIDAgNTRweDsgfQotCi0vKi0tLSBCUkVBRE9SWSAtLS0qLwotI2JyZWFk
b3J5IHsgYm9yZGVyOiAxcHggc29saWQgI2RkZDsgd2lkdGg6IDk3OHB4OyBtYXJnaW46IDAgYXV0
bzsgLW1vei1ib3JkZXItcmFkaXVzOiA0cHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czogNHB4OyBi
b3JkZXItcmFkaXVzOiA0cHg7IH0KLSNnbG9iYWxmb290ZXIgI2JyZWFkb3J5IG9sI2JyZWFkY3J1
bWJzIHsgYmFja2dyb3VuZDogbm9uZTsgY2xlYXI6IGJvdGg7IGZsb2F0OiBub25lOyBoZWlnaHQ6
IDNlbTsgbGluZS1oZWlnaHQ6IDNlbTsgZm9udC1zaXplOiAxMXB4OyBjb2xvcjogIzY2NjsgbWFy
Z2luOiAwOyBsaXN0LXN0eWxlOiBub25lOyBmb250LXdlaWdodDogYm9sZDsgdGV4dC1zaGFkb3c6
IDAgMXB4IDAgI2ZmZjsgfQotI2JyZWFkb3J5IG9sI2JyZWFkY3J1bWJzIGxpIHsgYmFja2dyb3Vu
ZDogbm9uZTsgZmxvYXQ6IGxlZnQ7IG1hcmdpbjogMDsgcGFkZGluZzogMCAwIDAgMWVtOyB9Ci0j
YnJlYWRvcnkgb2wjYnJlYWRjcnVtYnMgbGkgYSB7IGZsb2F0OiBsZWZ0OyBjb2xvcjogIzY2Njsg
dGV4dC1kZWNvcmF0aW9uOiBub25lOyBwYWRkaW5nOiAwIDEuNzVlbSAwIDA7IG1hcmdpbi1sZWZ0
OiAwcHg7IGJhY2tncm91bmQ6IHVybChodHRwOi8vaW1hZ2VzLmFwcGxlLmNvbS9nbG9iYWwvZWxl
bWVudHMvYnJlYWRvcnkvYnJlYWRjcnVtYl9zZXBhcmF0b3IucG5nKSBuby1yZXBlYXQgMTAwJSA1
MCU7IH0KLSNicmVhZG9yeSBvbCNicmVhZGNydW1icyBsaSBhOmhvdmVyIHsgY29sb3I6ICMzMzM7
IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfQotI2JyZWFkb3J5IG9sI2JyZWFkY3J1bWJzIGxpLmhv
bWUgeyBiYWNrZ3JvdW5kOiBub25lOyBtYXJnaW46IDA7IHBhZGRpbmc6IDA7IH0KLSNicmVhZG9y
eSBvbCNicmVhZGNydW1icyBsaS5ob21lIGEgeyBiYWNrZ3JvdW5kOiB1cmwoaHR0cDovL2ltYWdl
cy5hcHBsZS5jb20vZ2xvYmFsL2VsZW1lbnRzL2JyZWFkb3J5L2JyZWFkY3J1bWJfaG9tZS5wbmcp
IG5vLXJlcGVhdCAxLjI1ZW0gNTAlOyBtYXJnaW46IDA7IHBhZGRpbmc6IDAgMCAwIDEuMjVlbTsg
d2lkdGg6IDMwcHg7IHRleHQtaW5kZW50OiAtOTk5OXB4OyBvdmVyZmxvdzogaGlkZGVuOyB9Ci0j
YnJlYWRvcnkgb2wjYnJlYWRjcnVtYnMgbGkuaG9tZSBhOmhvdmVyIHsgYmFja2dyb3VuZC1pbWFn
ZTogdXJsKGh0dHA6Ly9pbWFnZXMuYXBwbGUuY29tL2dsb2JhbC9lbGVtZW50cy9icmVhZG9yeS9i
cmVhZGNydW1iX2hvbWVfb3Zlci5wbmcpOyB9Ci0KLUBtZWRpYSBvbmx5IHNjcmVlbiB7IAotCSNi
cmVhZG9yeSBvbCNicmVhZGNydW1icyBsaSBhIHsgYmFja2dyb3VuZC1pbWFnZTp1cmwoLi8uLi9l
bGVtZW50cy9icmVhZG9yeS9icmVhZGNydW1iX3NlcGFyYXRvci5zdmcpOyB9Ci0JI2JyZWFkb3J5
IG9sI2JyZWFkY3J1bWJzIGxpLmhvbWUgYSB7IGJhY2tncm91bmQtaW1hZ2U6dXJsKC4vLi4vZWxl
bWVudHMvYnJlYWRvcnkvYnJlYWRjcnVtYl9ob21lLnN2Zyk7IH0KLQkjYnJlYWRvcnkgb2wjYnJl
YWRjcnVtYnMgbGkuaG9tZSBhOmhvdmVyIHsgYmFja2dyb3VuZC1pbWFnZTp1cmwoLi8uLi9lbGVt
ZW50cy9icmVhZG9yeS9icmVhZGNydW1iX2hvbWVfb3Zlci5zdmcpOyB9Ci19Ci0KLSNicmVhZG9y
eSAjZGlyZWN0b3J5bmF2IHsgYmFja2dyb3VuZDogbm9uZTsgY2xlYXI6IGJvdGg7IGZsb2F0OiBu
b25lOyBtYXJnaW4tdG9wOiAwOyB9Ci0jYnJlYWRvcnkgI2RpcmVjdG9yeW5hdiAuY2FwYm90dG9t
IHsgaGVpZ2h0OiAwOyBmb250LXNpemU6IDFweDsgX2Rpc3BsYXk6IG5vbmU7IH0KLQotLyogUFJP
RFVDVEhFQURFUiAqLwotI3Byb2R1Y3RoZWFkZXIgeyBwYWRkaW5nOiAxZW0gMCAwLjJlbTsgb3Zl
cmZsb3c6IGhpZGRlbjsgd2lkdGg6IDk4MHB4OyBtYXJnaW46IDAgYXV0bzsgKnBvc2l0aW9uOiBy
ZWxhdGl2ZTsgKmhlaWdodDogMzlweDsgfQotI3Byb2R1Y3RoZWFkZXIgaDEsIAotI3Byb2R1Y3Ro
ZWFkZXIgaDIgeyBoZWlnaHQ6IDMycHg7IGxpbmUtaGVpZ2h0OiAzMnB4OyBkaXNwbGF5OiBpbmxp
bmU7IGZsb2F0OiBsZWZ0OyBtYXJnaW46IDFweCAwIDZweCA4cHg7IHBhZGRpbmc6IDA7IG1hcmdp
bi1ib3R0b206IDZweCAhaW1wb3J0YW50OyB9Ci0jcHJvZHVjdGhlYWRlciBoMSBhLCAKLSNwcm9k
dWN0aGVhZGVyIGgyIGEgeyBsaW5lLWhlaWdodDogMzJweDsgYmFja2dyb3VuZC1wb3NpdGlvbjog
MCAwOyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OyBjb2xvcjogIzg4ODsgZGlzcGxheTog
YmxvY2s7IGZvbnQtd2VpZ2h0OiBub3JtYWw7IGhlaWdodDogMzJweDsgb3V0bGluZTogbm9uZTsg
dGV4dC1kZWNvcmF0aW9uOiBub25lOyB0ZXh0LWluZGVudDogLTk5OTlweDsgKnBvc2l0aW9uOiBy
ZWxhdGl2ZTsgfQotYm9keSNvdmVydmlldyAjcHJvZHVjdGhlYWRlciBoMSBhLCAKLWJvZHkjb3Zl
cnZpZXcgI3Byb2R1Y3RoZWFkZXIgaDIgYSB7IGN1cnNvcjogZGVmYXVsdDsgfQotCi0jcHJvZHVj
dGhlYWRlciB1bCB7IGRpc3BsYXk6IGlubGluZTsgZmxvYXQ6IHJpZ2h0OyBtYXJnaW46IDA7IH0K
LSNwcm9kdWN0aGVhZGVyIHVsIGxpIHsgZGlzcGxheTogaW5saW5lOyB9Ci0jcHJvZHVjdGhlYWRl
ciB1bCBsaSBhIHsgY29sb3I6ICMzMzM7IGZsb2F0OiBsZWZ0ICFpbXBvcnRhbnQ7IG1hcmdpbi10
b3A6IDFlbTsgbWFyZ2luLWxlZnQ6IDMwcHg7IG1hcmdpbi1yaWdodDogOHB4OyBwYWRkaW5nOiAw
OyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH0KLSNwcm9kdWN0aGVhZGVyIHVsIGxpIGE6aG92ZXIg
eyBjb2xvcjogIzA4YzsgfQotCi0jcHJvZHVjdGhlYWRlciBhLmJ1eW5vdywgI3Byb2R1Y3RoZWFk
ZXIgc3Bhbi5idXlub3csIC8qIG9sZCAqLwotI3Byb2R1Y3RoZWFkZXIgYS5vcmRlcm5vdywgI3By
b2R1Y3RoZWFkZXIgc3Bhbi5vcmRlcm5vdywKLSNwcm9kdWN0aGVhZGVyIGEuam9pbm5vdywgI3By
b2R1Y3RoZWFkZXIgc3Bhbi5qb2lubm93LAotI3Byb2R1Y3RoZWFkZXIgYS5wcmVvcmRlciwgI3By
b2R1Y3RoZWFkZXIgc3Bhbi5wcmVvcmRlciwKLSNwcm9kdWN0aGVhZGVyIGEucHJlb3JkZXJfYmx1
ZSwgI3Byb2R1Y3RoZWFkZXIgc3Bhbi5wcmVvcmRlcl9ibHVlLAotI3Byb2R1Y3RoZWFkZXIgYS5o
b3d0b2J1eSwgI3Byb2R1Y3RoZWFkZXIgc3Bhbi5ob3d0b2J1eSwKLSNwcm9kdWN0aGVhZGVyIGEu
aG93dG9hcHBseSwgI3Byb2R1Y3RoZWFkZXIgc3Bhbi5ob3d0b2FwcGx5LAotI3Byb2R1Y3RoZWFk
ZXIgYS5mcmVldHJpYWwsICNwcm9kdWN0aGVhZGVyIHNwYW4uZnJlZXRyaWFsLAotI3Byb2R1Y3Ro
ZWFkZXIgYS5kb3dubG9hZG5vdywgI3Byb2R1Y3RoZWFkZXIgc3Bhbi5kb3dubG9hZG5vdywKLSNw
cm9kdWN0bmF2IGEuZG93bmxvYWRub3csICNwcm9kdWN0bmF2IHNwYW4uZG93bmxvYWRub3csCi0j
cHJvZHVjdGhlYWRlciBhLnVwZ3JhZGVub3csICNwcm9kdWN0aGVhZGVyIHNwYW4udXBncmFkZW5v
dywKLSNwcm9kdWN0aGVhZGVyIGEudHJ5YW1hYywgI3Byb2R1Y3RoZWFkZXIgc3Bhbi50cnlhbWFj
IHsgaGVpZ2h0OiAyNXB4OyBtYXJnaW46IDAuN2VtIDAgMCAyMHB4OyBiYWNrZ3JvdW5kLXBvc2l0
aW9uOiAwIDA7IGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7IGRpc3BsYXk6IGJsb2NrOyBm
bG9hdDogcmlnaHQ7IHBvc2l0aW9uOiByZWxhdGl2ZTsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB0
ZXh0LWluZGVudDogLTk5OTlweDsgb3V0bGluZTogbm9uZTsgb3ZlcmZsb3c6IGhpZGRlbjsgfQot
I3Byb2R1Y3RoZWFkZXIgYS5ub3RpZnltZSwgI3Byb2R1Y3RoZWFkZXIgc3Bhbi5ub3RpZnltZSB7
IGhlaWdodDogMjVweDsgbWFyZ2luOiAwLjhlbSAwIDAgMjBweDsgYmFja2dyb3VuZC1wb3NpdGlv
bjogMCAwOyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OyBkaXNwbGF5OiBibG9jazsgZmxv
YXQ6IHJpZ2h0OyBwb3NpdGlvbjogcmVsYXRpdmU7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgdGV4
dC1pbmRlbnQ6IC05OTk5cHg7IG91dGxpbmU6IG5vbmU7IG92ZXJmbG93OiBoaWRkZW47IH0KLQot
I3Byb2R1Y3RoZWFkZXIgYS5wcmVvcmRlcl9ibHVlLCAjcHJvZHVjdGhlYWRlciBzcGFuLnByZW9y
ZGVyX2JsdWUgeyB3aWR0aDogNzVweDsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly9pbWFn
ZXMuYXBwbGUuY29tL2dsb2JhbC9lbGVtZW50cy9idXR0b25zL3ByZW9yZGVyX2JsdWUucG5nKTsg
fQotI3Byb2R1Y3RoZWFkZXIgYS5idXlub3csICNwcm9kdWN0aGVhZGVyIHNwYW4uYnV5bm93IHsg
d2lkdGg6IDcycHg7IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vaW1hZ2VzLmFwcGxlLmNv
bS9nbG9iYWwvZWxlbWVudHMvYnV0dG9ucy9idXlub3dzLnBuZyk7IF9iYWNrZ3JvdW5kLWltYWdl
OiB1cmwoaHR0cDovL2ltYWdlcy5hcHBsZS5jb20vZ2xvYmFsL2VsZW1lbnRzL2J1dHRvbnMvYnV5
bm93cy5naWYpOyB9Ci0jcHJvZHVjdGhlYWRlciBhLm9yZGVybm93LCAjcHJvZHVjdGhlYWRlciBz
cGFuLm9yZGVybm93IHsgd2lkdGg6IDgxcHg7IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8v
aW1hZ2VzLmFwcGxlLmNvbS9nbG9iYWwvZWxlbWVudHMvYnV0dG9ucy9vcmRlcm5vd3MucG5nKTsg
X2JhY2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vaW1hZ2VzLmFwcGxlLmNvbS9nbG9iYWwvZWxl
bWVudHMvYnV0dG9ucy9vcmRlcm5vd3MuZ2lmKTsgfQotI3Byb2R1Y3RoZWFkZXIgYS5qb2lubm93
LCAjcHJvZHVjdGhlYWRlciBzcGFuLmpvaW5ub3cgeyB3aWR0aDogNzJweDsgYmFja2dyb3VuZC1p
bWFnZTogdXJsKGh0dHA6Ly9pbWFnZXMuYXBwbGUuY29tL2dsb2JhbC9lbGVtZW50cy9idXR0b25z
L2pvaW5ub3dzLnBuZyk7IF9iYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL2ltYWdlcy5hcHBs
ZS5jb20vZ2xvYmFsL2VsZW1lbnRzL2J1dHRvbnMvam9pbm5vd3MuZ2lmKTsgfQotI3Byb2R1Y3Ro
ZWFkZXIgYS5wcmVvcmRlciwgI3Byb2R1Y3RoZWFkZXIgc3Bhbi5wcmVvcmRlciB7IHdpZHRoOiA5
OXB4OyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL2ltYWdlcy5hcHBsZS5jb20vZ2xvYmFs
L2VsZW1lbnRzL2J1dHRvbnMvcHJlb3JkZXJub3dzLnBuZyk7IF9iYWNrZ3JvdW5kLWltYWdlOiB1
cmwoaHR0cDovL2ltYWdlcy5hcHBsZS5jb20vZ2xvYmFsL2VsZW1lbnRzL2J1dHRvbnMvcHJlb3Jk
ZXJub3dzLmdpZik7IH0KLSNwcm9kdWN0aGVhZGVyIGEuaG93dG9idXksICNwcm9kdWN0aGVhZGVy
IHNwYW4uaG93dG9idXkgeyB3aWR0aDogODZweDsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6
Ly9pbWFnZXMuYXBwbGUuY29tL2dsb2JhbC9lbGVtZW50cy9idXR0b25zL2hvd3RvYnV5cy5wbmcp
OyBfYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly9pbWFnZXMuYXBwbGUuY29tL2dsb2JhbC9l
bGVtZW50cy9idXR0b25zL2hvd3RvYnV5cy5naWYpOyB9Ci0jcHJvZHVjdGhlYWRlciBhLmhvd3Rv
YXBwbHksICNwcm9kdWN0aGVhZGVyIHNwYW4uaG93dG9hcHBseSB7IHdpZHRoOiAxMDBweDsgYmFj
a2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly9pbWFnZXMuYXBwbGUuY29tL2dsb2JhbC9lbGVtZW50
cy9idXR0b25zL2hvd3RvYXBwbHlzLnBuZyk7IF9iYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDov
L2ltYWdlcy5hcHBsZS5jb20vZ2xvYmFsL2VsZW1lbnRzL2J1dHRvbnMvaG93dG9hcHBseXMuZ2lm
KTsgfQotI3Byb2R1Y3RoZWFkZXIgYS5mcmVldHJpYWwsICNwcm9kdWN0aGVhZGVyIHNwYW4uZnJl
ZXRyaWFsIHsgd2lkdGg6IDcycHg7IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vaW1hZ2Vz
LmFwcGxlLmNvbS9nbG9iYWwvZWxlbWVudHMvYnV0dG9ucy9mcmVldHJpYWxzLnBuZyk7IF9iYWNr
Z3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL2ltYWdlcy5hcHBsZS5jb20vZ2xvYmFsL2VsZW1lbnRz
L2J1dHRvbnMvZnJlZXRyaWFscy5naWYpOyB9Ci0jcHJvZHVjdGhlYWRlciBhLmRvd25sb2Fkbm93
LCAjcHJvZHVjdGhlYWRlciBzcGFuLmRvd25sb2Fkbm93IHsgd2lkdGg6IDEwOHB4OyBiYWNrZ3Jv
dW5kLWltYWdlOiB1cmwoaHR0cDovL2ltYWdlcy5hcHBsZS5jb20vZ2xvYmFsL2VsZW1lbnRzL2J1
dHRvbnMvZG93bmxvYWRub3dzLnBuZyk7IF9iYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL2lt
YWdlcy5hcHBsZS5jb20vZ2xvYmFsL2VsZW1lbnRzL2J1dHRvbnMvZG93bmxvYWRub3dzLmdpZik7
IH0KLSNwcm9kdWN0bmF2IGEuZG93bmxvYWRub3csICNwcm9kdWN0bmF2IHNwYW4uZG93bmxvYWRu
b3cgeyB3aWR0aDogMTA4cHg7IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vaW1hZ2VzLmFw
cGxlLmNvbS9nbG9iYWwvZWxlbWVudHMvYnV0dG9ucy9kb3dubG9hZG5vd3MucG5nKTsgX2JhY2tn
cm91bmQtaW1hZ2U6IHVybChodHRwOi8vaW1hZ2VzLmFwcGxlLmNvbS9nbG9iYWwvZWxlbWVudHMv
YnV0dG9ucy9kb3dubG9hZG5vd3MuZ2lmKTsgfQotI3Byb2R1Y3RoZWFkZXIgYS51cGdyYWRlbm93
LCAjcHJvZHVjdGhlYWRlciBzcGFuLnVwZ3JhZGVub3cgeyB3aWR0aDogMTA0cHg7IGJhY2tncm91
bmQtaW1hZ2U6IHVybChodHRwOi8vaW1hZ2VzLmFwcGxlLmNvbS9nbG9iYWwvZWxlbWVudHMvYnV0
dG9ucy91cGdyYWRlbm93cy5wbmcpOyBfYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly9pbWFn
ZXMuYXBwbGUuY29tL2dsb2JhbC9lbGVtZW50cy9idXR0b25zL3VwZ3JhZGVub3dzLmdpZik7IH0K
LSNwcm9kdWN0aGVhZGVyIGEudHJ5YW1hYywgI3Byb2R1Y3RoZWFkZXIgc3Bhbi50cnlhbWFjIHsg
d2lkdGg6IDc3cHg7IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vaW1hZ2VzLmFwcGxlLmNv
bS9nbG9iYWwvZWxlbWVudHMvYnV0dG9ucy90cnlhbWFjcy5wbmcpOyBfYmFja2dyb3VuZC1pbWFn
ZTogdXJsKGh0dHA6Ly9pbWFnZXMuYXBwbGUuY29tL2dsb2JhbC9lbGVtZW50cy9idXR0b25zL3Ry
eWFtYWNzLmdpZik7IH0KLSNwcm9kdWN0aGVhZGVyIGEubm90aWZ5bWUsICNwcm9kdWN0aGVhZGVy
IHNwYW4ubm90aWZ5bWUgeyB3aWR0aDogNzVweDsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6
Ly9pbWFnZXMuYXBwbGUuY29tL2dsb2JhbC9lbGVtZW50cy9idXR0b25zL25vdGlmeW1lcy5wbmcp
OyBfYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly9pbWFnZXMuYXBwbGUuY29tL2dsb2JhbC9l
bGVtZW50cy9idXR0b25zL25vdGlmeW1lcy5naWYpOyB9Ci0KLSNwcm9kdWN0aGVhZGVyIGEuYnV5
bm93OmhvdmVyLCAjcHJvZHVjdGhlYWRlciBhLmJ1eW5vdzpmb2N1cywKLSNwcm9kdWN0aGVhZGVy
IGEub3JkZXJub3c6aG92ZXIsICNwcm9kdWN0aGVhZGVyIGEub3JkZXJub3c6Zm9jdXMsCi0jcHJv
ZHVjdGhlYWRlciBhLmpvaW5ub3c6aG92ZXIsICNwcm9kdWN0aGVhZGVyIGEuam9pbm5vdzpmb2N1
cywKLSNwcm9kdWN0aGVhZGVyIGEucHJlb3JkZXI6aG92ZXIsICNwcm9kdWN0aGVhZGVyIGEucHJl
b3JkZXI6Zm9jdXMsCi0jcHJvZHVjdGhlYWRlciBhLmhvd3RvYnV5OmhvdmVyLCAjcHJvZHVjdGhl
YWRlciBhLmhvd3RvYnV5OmZvY3VzLAotI3Byb2R1Y3RoZWFkZXIgYS5ob3d0b2FwcGx5OmhvdmVy
LCAjcHJvZHVjdGhlYWRlciBhLmhvd3RvYXBwbHk6Zm9jdXMsCi0jcHJvZHVjdGhlYWRlciBhLmZy
ZWV0cmlhbDpob3ZlciwgI3Byb2R1Y3RoZWFkZXIgYS5mcmVldHJpYWw6Zm9jdXMsCi0jcHJvZHVj
dGhlYWRlciBhLmRvd25sb2Fkbm93OmhvdmVyLCAjcHJvZHVjdGhlYWRlciBhLmRvd25sb2Fkbm93
OmZvY3VzLAotI3Byb2R1Y3RuYXYgYS5kb3dubG9hZG5vdzpob3ZlciwgI3Byb2R1Y3RuYXYgYS5k
b3dubG9hZG5vdzpmb2N1cywKLSNwcm9kdWN0aGVhZGVyIGEudXBncmFkZW5vdzpob3ZlciwgI3By
b2R1Y3RoZWFkZXIgYS51cGdyYWRlbm93OmZvY3VzLAotI3Byb2R1Y3RoZWFkZXIgYS50cnlhbWFj
OmhvdmVyLCAjcHJvZHVjdGhlYWRlciBhLnRyeWFtYWM6Zm9jdXMsCi0jcHJvZHVjdGhlYWRlciBh
Lm5vdGlmeW1lOmhvdmVyLCAjcHJvZHVjdGhlYWRlciBhLm5vdGlmeW1lOmZvY3VzIHsgYmFja2dy
b3VuZC1wb3NpdGlvbjogMCAtMjVweDsgfQotCi0jcHJvZHVjdGhlYWRlciBhLmJ1eW5vdzphY3Rp
dmUsCi0jcHJvZHVjdGhlYWRlciBhLm9yZGVybm93OmFjdGl2ZSwKLSNwcm9kdWN0aGVhZGVyIGEu
am9pbm5vdzphY3RpdmUsCi0jcHJvZHVjdGhlYWRlciBhLnByZW9yZGVyOmFjdGl2ZSwKLSNwcm9k
dWN0aGVhZGVyIGEuaG93dG9idXk6YWN0aXZlLAotI3Byb2R1Y3RoZWFkZXIgYS5ob3d0b2FwcGx5
OmFjdGl2ZSwKLSNwcm9kdWN0aGVhZGVyIGEuZnJlZXRyaWFsOmFjdGl2ZSwKLSNwcm9kdWN0aGVh
ZGVyIGEuZG93bmxvYWRub3c6YWN0aXZlLAotI3Byb2R1Y3RuYXYgYS5kb3dubG9hZG5vdzphY3Rp
dmUsCi0jcHJvZHVjdGhlYWRlciBhLnVwZ3JhZGVub3c6YWN0aXZlLAotI3Byb2R1Y3RoZWFkZXIg
YS50cnlhbWFjOmFjdGl2ZSwKLSNwcm9kdWN0aGVhZGVyIGEubm90aWZ5bWU6YWN0aXZlIHsgYmFj
a2dyb3VuZC1wb3NpdGlvbjogMCAtNTBweDsgfQotCi0jcHJvZHVjdGhlYWRlciBzcGFuLmJ1eW5v
dywKLSNwcm9kdWN0aGVhZGVyIHNwYW4ub3JkZXJub3csCi0jcHJvZHVjdGhlYWRlciBzcGFuLmpv
aW5ub3csCi0jcHJvZHVjdGhlYWRlciBzcGFuLnByZW9yZGVyLAotI3Byb2R1Y3RoZWFkZXIgc3Bh
bi5ob3d0b2J1eSwKLSNwcm9kdWN0aGVhZGVyIHNwYW4uaG93dG9hcHBseSwKLSNwcm9kdWN0aGVh
ZGVyIHNwYW4uZnJlZXRyaWFsLAotI3Byb2R1Y3RoZWFkZXIgc3Bhbi5kb3dubG9hZG5vdywKLSNw
cm9kdWN0bmF2IHNwYW4uZG93bmxvYWRub3csCi0jcHJvZHVjdGhlYWRlciBzcGFuLnVwZ3JhZGVu
b3csCi0jcHJvZHVjdGhlYWRlciBzcGFuLm5vdGlmeW1lIHsgYmFja2dyb3VuZC1wb3NpdGlvbjog
MCAtNzVweDsgfQotCi0KLS8qIEJVVFRPTlMgLSAoVS5TLikgKi8KLS5icm93c2V3ZWJhcHBzcywg
LmJ1c2luZXNzc3RvcmVzLCAuYnV5aXBob25lcywgLmJ1eW5vd3MsIC5idXlub3dzLWFycm93LCAu
Y29taW5nc29vbnMsIC5kZXNjYXJnYXJhaG9yYXMsIC5kb3dubG9hZGl0dW5lc3MsIC5kb3dubG9h
ZG5vd3MsIC5maW5kcywgLmZyZWV0cmlhbHMsIC5nZXRzdGFydGVkcywgLmdvcywgLmhvd3RvYXBw
bHlzLCAuaG93dG9idXlzLCAuam9pbm5vd3MsIC5sZWFybm1vcmVzLCAubmlrZWJ1eW5vd3MsIC5u
b3RpZnltZXMsIC5vcmRlcm5vd3MsIC5wcmVvcmRlcm5vd3MsIC5wcmVvcmRlcnMsIC5yZXNlcnZl
cywgLnN0YXJ0eW91cnNlYXJjaHMsIC5zdWJtaXRzLCAudHJ5YW1hY3MsIC51cGdyYWRlbm93cyB7
Ci0JaGVpZ2h0OiAyNXB4OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIDA7IGJhY2tncm91bmQtcmVw
ZWF0OiBuby1yZXBlYXQ7IGRpc3BsYXk6IGJsb2NrOyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IHRl
eHQtaW5kZW50OiAtOTk5OXB4OyBvdmVyZmxvdzogaGlkZGVuOwotfQotYS5icm93c2V3ZWJhcHBz
czpob3ZlciwgYS5idXNpbmVzc3N0b3Jlczpob3ZlciwgYS5idXlpcGhvbmVzOmhvdmVyLCBhLmJ1
eW5vd3M6aG92ZXIsIGEuYnV5bm93cy1hcnJvdzpob3ZlciwgYS5jb21pbmdzb29uczpob3Zlciwg
YS5kZXNjYXJnYXJhaG9yYXM6aG92ZXIsIGEuZG93bmxvYWRpdHVuZXNzOmhvdmVyLCBhLmRvd25s
b2Fkbm93czpob3ZlciwgYS5maW5kczpob3ZlciwgYS5mcmVldHJpYWxzOmhvdmVyLCBhLmdldHN0
YXJ0ZWRzOmhvdmVyLCBhLmdvczpob3ZlciwgYS5ob3d0b2FwcGx5czpob3ZlciwgYS5ob3d0b2J1
eXM6aG92ZXIsIGEuam9pbm5vd3M6aG92ZXIsIGEubGVhcm5tb3Jlczpob3ZlciwgYS5uaWtlYnV5
bm93czpob3ZlciwgYS5ub3RpZnltZXM6aG92ZXIsIGEub3JkZXJub3dzOmhvdmVyLCBhLnByZW9y
ZGVybm93czpob3ZlciwgYS5wcmVvcmRlcnM6aG92ZXIsIGEucmVzZXJ2ZXM6aG92ZXIsIGEuc3Rh
cnR5b3Vyc2VhcmNoczpob3ZlciwgYS5zdWJtaXRzOmhvdmVyLCBhLnRyeWFtYWNzOmhvdmVyLCBh
LnVwZ3JhZGVub3dzOmhvdmVyLAotYS5icm93c2V3ZWJhcHBzczpmb2N1cywgYS5idXNpbmVzc3N0
b3Jlczpmb2N1cywgYS5idXlpcGhvbmVzOmZvY3VzLCBhLmJ1eW5vd3M6Zm9jdXMsIGEuYnV5bm93
cy1hcnJvdzpmb2N1cywgYS5jb21pbmdzb29uczpmb2N1cywgYS5kZXNjYXJnYXJhaG9yYXM6Zm9j
dXMsIGEuZG93bmxvYWRpdHVuZXNzOmZvY3VzLCBhLmRvd25sb2Fkbm93czpmb2N1cywgYS5maW5k
czpmb2N1cywgYS5mcmVldHJpYWxzOmZvY3VzLCBhLmdldHN0YXJ0ZWRzOmZvY3VzLCBhLmdvczpm
b2N1cywgYS5ob3d0b2FwcGx5czpmb2N1cywgYS5ob3d0b2J1eXM6Zm9jdXMsIGEuam9pbm5vd3M6
Zm9jdXMsIGEubGVhcm5tb3Jlczpmb2N1cywgYS5uaWtlYnV5bm93czpmb2N1cywgYS5ub3RpZnlt
ZXM6Zm9jdXMsIGEub3JkZXJub3dzOmZvY3VzLCBhLnByZW9yZGVybm93czpmb2N1cywgYS5wcmVv
cmRlcnM6Zm9jdXMsIGEucmVzZXJ2ZXM6Zm9jdXMsIGEuc3RhcnR5b3Vyc2VhcmNoczpmb2N1cywg
YS5zdWJtaXRzOmZvY3VzLCBhLnRyeWFtYWNzOmZvY3VzLCBhLnVwZ3JhZGVub3dzOmZvY3VzIHsK
LQliYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC0yNXB4OwotfQotYS5icm93c2V3ZWJhcHBzczphY3Rp
dmUsIGEuYnVzaW5lc3NzdG9yZXM6YWN0aXZlLCBhLmJ1eWlwaG9uZXM6YWN0aXZlLCBhLmJ1eW5v
d3M6YWN0aXZlLCBhLmJ1eW5vd3MtYXJyb3c6YWN0aXZlLCBhLmNvbWluZ3Nvb25zOmFjdGl2ZSwg
YS5kZXNjYXJnYXJhaG9yYXM6YWN0aXZlLCBhLmRvd25sb2FkaXR1bmVzczphY3RpdmUsIGEuZG93
bmxvYWRub3dzOmFjdGl2ZSwgYS5maW5kczphY3RpdmUsIGEuZnJlZXRyaWFsczphY3RpdmUsIGEu
Z2V0c3RhcnRlZHM6YWN0aXZlLCBhLmdvczphY3RpdmUsIGEuaG93dG9hcHBseXM6YWN0aXZlLCBh
Lmhvd3RvYnV5czphY3RpdmUsIGEuam9pbm5vd3M6YWN0aXZlLCBhLmxlYXJubW9yZXM6YWN0aXZl
LCBhLm5pa2VidXlub3dzOmFjdGl2ZSwgYS5ub3RpZnltZXM6YWN0aXZlLCBhLm9yZGVybm93czph
Y3RpdmUsIGEucHJlb3JkZXJub3dzOmFjdGl2ZSwgYS5wcmVvcmRlcnM6YWN0aXZlLCBhLnJlc2Vy
dmVzOmFjdGl2ZSwgYS5zdGFydHlvdXJzZWFyY2hzOmFjdGl2ZSwgYS5zdWJtaXRzOmFjdGl2ZSwg
YS50cnlhbWFjczphY3RpdmUsIGEudXBncmFkZW5vd3M6YWN0aXZlIHsKLQliYWNrZ3JvdW5kLXBv
c2l0aW9uOiAwIC01MHB4OwotfQotc3Bhbi5icm93c2V3ZWJhcHBzcywgc3Bhbi5idXNpbmVzc3N0
b3Jlcywgc3Bhbi5idXlpcGhvbmVzLCBzcGFuLmJ1eW5vd3MsIHNwYW4uY29taW5nc29vbnMsIHNw
YW4uZGVzY2FyZ2FyYWhvcmFzLCBzcGFuLmRvd25sb2FkaXR1bmVzcywgc3Bhbi5kb3dubG9hZG5v
d3MsIHNwYW4uZmluZHMsIHNwYW4uZnJlZXRyaWFscywgc3Bhbi5nZXRzdGFydGVkcywgc3Bhbi5n
b3MsIHNwYW4uaG93dG9hcHBseXMsIHNwYW4uaG93dG9idXlzLCBzcGFuLmpvaW5ub3dzLCBzcGFu
LmxlYXJubW9yZXMsIHNwYW4ubmlrZWJ1eW5vd3MsIHNwYW4ubm90aWZ5bWVzLCBzcGFuLm9yZGVy
bm93cywgc3Bhbi5wcmVvcmRlcm5vd3MsIHNwYW4ucHJlb3JkZXJzLCBzcGFuLnJlc2VydmVzLCBz
cGFuLnN0YXJ0eW91cnNlYXJjaHMsIHNwYW4uc3VibWl0cywgc3Bhbi50cnlhbWFjcywgc3Bhbi51
cGdyYWRlbm93cyB7Ci0JYmFja2dyb3VuZC1wb3NpdGlvbjogMCAtNzVweDsKLX0KLS5icm93c2V3
ZWJhcHBzcyB7IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vaW1hZ2VzLmFwcGxlLmNvbS9n
bG9iYWwvZWxlbWVudHMvYnV0dG9ucy9icm93c2V3ZWJhcHBzcy5wbmcpOyBfYmFja2dyb3VuZC1p
bWFnZTogdXJsKGh0dHA6Ly9pbWFnZXMuYXBwbGUuY29tL2dsb2JhbC9lbGVtZW50cy9idXR0b25z
L2Jyb3dzZXdlYmFwcHNzLmdpZik7IHdpZHRoOiAxMjNweDsgfQotLmJ1c2luZXNzc3RvcmVzIHsg
YmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly9pbWFnZXMuYXBwbGUuY29tL2dsb2JhbC9lbGVt
ZW50cy9idXR0b25zL2J1c2luZXNzc3RvcmVzLnBuZyk7IF9iYWNrZ3JvdW5kLWltYWdlOiB1cmwo
aHR0cDovL2ltYWdlcy5hcHBsZS5jb20vZ2xvYmFsL2VsZW1lbnRzL2J1dHRvbnMvYnVzaW5lc3Nz
dG9yZXMuZ2lmKTsgd2lkdGg6IDEwNXB4OyB9Ci0uYnV5aXBob25lcyB7IGJhY2tncm91bmQtaW1h
Z2U6IHVybChodHRwOi8vaW1hZ2VzLmFwcGxlLmNvbS9nbG9iYWwvZWxlbWVudHMvYnV0dG9ucy9i
dXlpcGhvbmVzLnBuZyk7IF9iYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL2ltYWdlcy5hcHBs
ZS5jb20vZ2xvYmFsL2VsZW1lbnRzL2J1dHRvbnMvYnV5aXBob25lcy5naWYpOyB3aWR0aDogODdw
eDsgfQotLmJ1eW5vd3MgeyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL2ltYWdlcy5hcHBs
ZS5jb20vZ2xvYmFsL2VsZW1lbnRzL2J1dHRvbnMvYnV5bm93cy5wbmcpOyBfYmFja2dyb3VuZC1p
bWFnZTogdXJsKGh0dHA6Ly9pbWFnZXMuYXBwbGUuY29tL2dsb2JhbC9lbGVtZW50cy9idXR0b25z
L2J1eW5vd3MuZ2lmKTsgd2lkdGg6IDcycHg7IH0KLS5idXlub3dzLWFycm93IHsgYmFja2dyb3Vu
ZC1pbWFnZTogdXJsKGh0dHA6Ly9pbWFnZXMuYXBwbGUuY29tL2dsb2JhbC9lbGVtZW50cy9idXR0
b25zL2J1eW5vd3NfYXJyb3cucG5nKTsgX2JhY2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vaW1h
Z2VzLmFwcGxlLmNvbS9nbG9iYWwvZWxlbWVudHMvYnV0dG9ucy9idXlub3dzX2Fycm93LmdpZik7
IHdpZHRoOiA4NnB4OyB9Ci0uY29taW5nc29vbnMgeyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0
cDovL2ltYWdlcy5hcHBsZS5jb20vZ2xvYmFsL2VsZW1lbnRzL2J1dHRvbnMvY29taW5nc29vbnMu
cG5nKTsgX2JhY2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vaW1hZ2VzLmFwcGxlLmNvbS9nbG9i
YWwvZWxlbWVudHMvYnV0dG9ucy9jb21pbmdzb29ucy5naWYpOyB3aWR0aDogOTdweDsgfQotLmRl
c2NhcmdhcmFob3JhcyB7IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vaW1hZ2VzLmFwcGxl
LmNvbS9nbG9iYWwvZWxlbWVudHMvYnV0dG9ucy9kZXNjYXJnYXJhaG9yYXMucG5nKTsgX2JhY2tn
cm91bmQtaW1hZ2U6IHVybChodHRwOi8vaW1hZ2VzLmFwcGxlLmNvbS9nbG9iYWwvZWxlbWVudHMv
YnV0dG9ucy9kZXNjYXJnYXJhaG9yYXMuZ2lmKTsgd2lkdGg6IDEwOHB4OyB9Ci0uZG93bmxvYWRp
dHVuZXNzIHsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly9pbWFnZXMuYXBwbGUuY29tL2ds
b2JhbC9lbGVtZW50cy9idXR0b25zL2Rvd25sb2FkaXR1bmVzcy5wbmcpOyBfYmFja2dyb3VuZC1p
bWFnZTogdXJsKGh0dHA6Ly9pbWFnZXMuYXBwbGUuY29tL2dsb2JhbC9lbGVtZW50cy9idXR0b25z
L2Rvd25sb2FkaXR1bmVzcy5naWYpOyB3aWR0aDogMTE2cHg7IH0KLS5kb3dubG9hZG5vd3MgeyBi
YWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL2ltYWdlcy5hcHBsZS5jb20vZ2xvYmFsL2VsZW1l
bnRzL2J1dHRvbnMvZG93bmxvYWRub3dzLnBuZyk7IF9iYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0
cDovL2ltYWdlcy5hcHBsZS5jb20vZ2xvYmFsL2VsZW1lbnRzL2J1dHRvbnMvZG93bmxvYWRub3dz
LmdpZik7IHdpZHRoOiAxMDhweDsgfQotLmZpbmRzIHsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0
dHA6Ly9pbWFnZXMuYXBwbGUuY29tL2dsb2JhbC9lbGVtZW50cy9idXR0b25zL2ZpbmRzLnBuZyk7
IF9iYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL2ltYWdlcy5hcHBsZS5jb20vZ2xvYmFsL2Vs
ZW1lbnRzL2J1dHRvbnMvZmluZHMuZ2lmKTsgd2lkdGg6IDUycHg7IH0KLS5mcmVldHJpYWxzIHsg
YmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly9pbWFnZXMuYXBwbGUuY29tL2dsb2JhbC9lbGVt
ZW50cy9idXR0b25zL2ZyZWV0cmlhbHMucG5nKTsgX2JhY2tncm91bmQtaW1hZ2U6IHVybChodHRw
Oi8vaW1hZ2VzLmFwcGxlLmNvbS9nbG9iYWwvZWxlbWVudHMvYnV0dG9ucy9mcmVldHJpYWxzLmdp
Zik7IHdpZHRoOiA3MnB4OyB9Ci0uZ2V0c3RhcnRlZHMgeyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwo
aHR0cDovL2ltYWdlcy5hcHBsZS5jb20vZ2xvYmFsL2VsZW1lbnRzL2J1dHRvbnMvZ2V0c3RhcnRl
ZHMucG5nKTsgX2JhY2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vaW1hZ2VzLmFwcGxlLmNvbS9n
bG9iYWwvZWxlbWVudHMvYnV0dG9ucy9nZXRzdGFydGVkcy5naWYpOyB3aWR0aDogOTBweDsgfQot
LmdvcyB7IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vaW1hZ2VzLmFwcGxlLmNvbS9nbG9i
YWwvZWxlbWVudHMvYnV0dG9ucy9nb3MucG5nKTsgX2JhY2tncm91bmQtaW1hZ2U6IHVybChodHRw
Oi8vaW1hZ2VzLmFwcGxlLmNvbS9nbG9iYWwvZWxlbWVudHMvYnV0dG9ucy9nb3MuZ2lmKTsgd2lk
dGg6IDQ0cHg7IH0KLS5ob3d0b2FwcGx5cyB7IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8v
aW1hZ2VzLmFwcGxlLmNvbS9nbG9iYWwvZWxlbWVudHMvYnV0dG9ucy9ob3d0b2FwcGx5cy5wbmcp
OyBfYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly9pbWFnZXMuYXBwbGUuY29tL2dsb2JhbC9l
bGVtZW50cy9idXR0b25zL2hvd3RvYXBwbHlzLmdpZik7IHdpZHRoOiAxMDBweDsgfQotLmhvd3Rv
YnV5cyB7IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vaW1hZ2VzLmFwcGxlLmNvbS9nbG9i
YWwvZWxlbWVudHMvYnV0dG9ucy9ob3d0b2J1eXMucG5nKTsgX2JhY2tncm91bmQtaW1hZ2U6IHVy
bChodHRwOi8vaW1hZ2VzLmFwcGxlLmNvbS9nbG9iYWwvZWxlbWVudHMvYnV0dG9ucy9ob3d0b2J1
eXMuZ2lmKTsgd2lkdGg6IDg2cHg7IH0KLS5qb2lubm93cyB7IGJhY2tncm91bmQtaW1hZ2U6IHVy
bChodHRwOi8vaW1hZ2VzLmFwcGxlLmNvbS9nbG9iYWwvZWxlbWVudHMvYnV0dG9ucy9qb2lubm93
cy5wbmcpOyBfYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly9pbWFnZXMuYXBwbGUuY29tL2ds
b2JhbC9lbGVtZW50cy9idXR0b25zL2pvaW5ub3dzLmdpZik7IHdpZHRoOiA3MnB4OyB9Ci0ubGVh
cm5tb3JlcyB7IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vaW1hZ2VzLmFwcGxlLmNvbS9n
bG9iYWwvZWxlbWVudHMvYnV0dG9ucy9sZWFybm1vcmVzLnBuZyk7IF9iYWNrZ3JvdW5kLWltYWdl
OiB1cmwoaHR0cDovL2ltYWdlcy5hcHBsZS5jb20vZ2xvYmFsL2VsZW1lbnRzL2J1dHRvbnMvbGVh
cm5tb3Jlcy5naWYpOyB3aWR0aDogODlweDsgfQotLm5pa2VidXlub3dzIHsgYmFja2dyb3VuZC1p
bWFnZTogdXJsKGh0dHA6Ly9pbWFnZXMuYXBwbGUuY29tL2dsb2JhbC9lbGVtZW50cy9idXR0b25z
L25pa2VidXlub3dzLnBuZyk7IF9iYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL2ltYWdlcy5h
cHBsZS5jb20vZ2xvYmFsL2VsZW1lbnRzL2J1dHRvbnMvbmlrZWJ1eW5vd3MuZ2lmKTsgd2lkdGg6
IDcycHg7IH0KLS5ub3RpZnltZXMgeyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL2ltYWdl
cy5hcHBsZS5jb20vZ2xvYmFsL2VsZW1lbnRzL2J1dHRvbnMvbm90aWZ5bWVzLnBuZyk7IF9iYWNr
Z3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL2ltYWdlcy5hcHBsZS5jb20vZ2xvYmFsL2VsZW1lbnRz
L2J1dHRvbnMvbm90aWZ5bWVzLmdpZik7IHdpZHRoOiA4MHB4OyB9Ci0ub3JkZXJub3dzIHsgYmFj
a2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly9pbWFnZXMuYXBwbGUuY29tL2dsb2JhbC9lbGVtZW50
cy9idXR0b25zL29yZGVybm93cy5wbmcpOyBfYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly9p
bWFnZXMuYXBwbGUuY29tL2dsb2JhbC9lbGVtZW50cy9idXR0b25zL29yZGVybm93cy5naWYpOyB3
aWR0aDogODFweDsgfQotLnByZW9yZGVybm93cyB7IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRw
Oi8vaW1hZ2VzLmFwcGxlLmNvbS9nbG9iYWwvZWxlbWVudHMvYnV0dG9ucy9wcmVvcmRlcm5vd3Mu
cG5nKTsgX2JhY2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vaW1hZ2VzLmFwcGxlLmNvbS9nbG9i
YWwvZWxlbWVudHMvYnV0dG9ucy9wcmVvcmRlcm5vd3MuZ2lmKTsgd2lkdGg6IDk5cHg7IH0KLS5w
cmVvcmRlcnMgeyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL2ltYWdlcy5hcHBsZS5jb20v
Z2xvYmFsL2VsZW1lbnRzL2J1dHRvbnMvcHJlb3JkZXJzLnBuZyk7IF9iYWNrZ3JvdW5kLWltYWdl
OiB1cmwoaHR0cDovL2ltYWdlcy5hcHBsZS5jb20vZ2xvYmFsL2VsZW1lbnRzL2J1dHRvbnMvcHJl
b3JkZXJzLmdpZik7IHdpZHRoOiA3N3B4OyB9Ci0ucmVzZXJ2ZXMgeyBiYWNrZ3JvdW5kLWltYWdl
OiB1cmwoaHR0cDovL2ltYWdlcy5hcHBsZS5jb20vZ2xvYmFsL2VsZW1lbnRzL2J1dHRvbnMvcmVz
ZXJ2ZXMucG5nKTsgX2JhY2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vaW1hZ2VzLmFwcGxlLmNv
bS9nbG9iYWwvZWxlbWVudHMvYnV0dG9ucy9yZXNlcnZlcy5naWYpOyB3aWR0aDogNjhweDsgfQot
LnN0YXJ0eW91cnNlYXJjaHMgeyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL2ltYWdlcy5h
cHBsZS5jb20vZ2xvYmFsL2VsZW1lbnRzL2J1dHRvbnMvc3RhcnR5b3Vyc2VhcmNocy5wbmcpOyBf
YmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly9pbWFnZXMuYXBwbGUuY29tL2dsb2JhbC9lbGVt
ZW50cy9idXR0b25zL3N0YXJ0eW91cnNlYXJjaHMuZ2lmKTsgd2lkdGg6IDEyMHB4OyB9Ci0uc3Vi
bWl0cyB7IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vaW1hZ2VzLmFwcGxlLmNvbS9nbG9i
YWwvZWxlbWVudHMvYnV0dG9ucy9zdWJtaXRzLnBuZyk7IF9iYWNrZ3JvdW5kLWltYWdlOiB1cmwo
aHR0cDovL2ltYWdlcy5hcHBsZS5jb20vZ2xvYmFsL2VsZW1lbnRzL2J1dHRvbnMvc3VibWl0cy5n
aWYpOyB3aWR0aDogNjdweDsgfQotLnRyeWFtYWNzIHsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0
dHA6Ly9pbWFnZXMuYXBwbGUuY29tL2dsb2JhbC9lbGVtZW50cy9idXR0b25zL3RyeWFtYWNzLnBu
Zyk7IF9iYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL2ltYWdlcy5hcHBsZS5jb20vZ2xvYmFs
L2VsZW1lbnRzL2J1dHRvbnMvdHJ5YW1hY3MuZ2lmKTsgd2lkdGg6IDc3cHg7IH0KLS51cGdyYWRl
bm93cyB7IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vaW1hZ2VzLmFwcGxlLmNvbS9nbG9i
YWwvZWxlbWVudHMvYnV0dG9ucy91cGdyYWRlbm93cy5wbmcpOyBfYmFja2dyb3VuZC1pbWFnZTog
dXJsKGh0dHA6Ly9pbWFnZXMuYXBwbGUuY29tL2dsb2JhbC9lbGVtZW50cy9idXR0b25zL3VwZ3Jh
ZGVub3dzLmdpZik7IHdpZHRoOiAxMDRweDsgfQotCi0jcHJvZHVjdGhlYWRlciAuYnJvd3Nld2Vi
YXBwc3MsICNwcm9kdWN0aGVhZGVyIC5idXNpbmVzc3N0b3JlcywgI3Byb2R1Y3RoZWFkZXIgLmJ1
eWlwaG9uZXMsICNwcm9kdWN0aGVhZGVyIC5idXlub3dzLCAjcHJvZHVjdGhlYWRlciAuY29taW5n
c29vbnMsICNwcm9kdWN0aGVhZGVyIC5kZXNjYXJnYXJhaG9yYXMsIAotI3Byb2R1Y3RoZWFkZXIg
LmRvd25sb2FkaXR1bmVzcywgI3Byb2R1Y3RoZWFkZXIgLmRvd25sb2Fkbm93cywgI3Byb2R1Y3Ro
ZWFkZXIgLmZpbmRzLCAjcHJvZHVjdGhlYWRlciAuZnJlZXRyaWFscywgI3Byb2R1Y3RoZWFkZXIg
LmdldHN0YXJ0ZWRzLCAKLSNwcm9kdWN0aGVhZGVyIC5nb3MsICNwcm9kdWN0aGVhZGVyIC5ob3d0
b2FwcGx5cywgI3Byb2R1Y3RoZWFkZXIgLmhvd3RvYnV5cywgI3Byb2R1Y3RoZWFkZXIgLmpvaW5u
b3dzLCAjcHJvZHVjdGhlYWRlciAubGVhcm5tb3JlcywgCi0jcHJvZHVjdGhlYWRlciAubm90aWZ5
bWVzLCAjcHJvZHVjdGhlYWRlciAub3JkZXJub3dzLCAjcHJvZHVjdGhlYWRlciAucHJlb3JkZXJu
b3dzLCAjcHJvZHVjdGhlYWRlciAucHJlb3JkZXJzLCAjcHJvZHVjdGhlYWRlciAucmVzZXJ2ZXMs
IAotI3Byb2R1Y3RoZWFkZXIgLnN0YXJ0eW91cnNlYXJjaHMsICNwcm9kdWN0aGVhZGVyIC5zdWJt
aXRzLCAjcHJvZHVjdGhlYWRlciAudHJ5YW1hY3MsICNwcm9kdWN0aGVhZGVyIC51cGdyYWRlbm93
cyB7Ci0JbWFyZ2luOiAwLjhlbSAwIDAgMjBweDsgZmxvYXQ6IGxlZnQ7Ci19Ci0KLS8qIHByb21v
Zm9vdGVyICovCi0jcHJvbW9mb290ZXIgeyB3aWR0aDo5ODRweDsgbWFyZ2luOjE4cHggYXV0byAw
OyBwYWRkaW5nLXRvcDoxN3B4OyBiYWNrZ3JvdW5kOnVybChodHRwOi8vaW1hZ2VzLmFwcGxlLmNv
bS9wcm9tb3MvaW1hZ2VzL3Byb21vZm9vdGVyX3RvcC5wbmcpIG5vLXJlcGVhdDsgem9vbToxOyBf
YmFja2dyb3VuZC1pbWFnZTp1cmwoaHR0cDovL2ltYWdlcy5hcHBsZS5jb20vcHJvbW9zL2ltYWdl
cy9wcm9tb2Zvb3Rlcl90b3AuZ2lmKTsgfQotI3Byb21vZm9vdGVyICNwcm9tb3MgeyB3aWR0aDo5
ODBweDsgbWFyZ2luLWJvdHRvbTowOyBwYWRkaW5nOjAgMnB4IDRweDsgYmFja2dyb3VuZDp1cmwo
aHR0cDovL2ltYWdlcy5hcHBsZS5jb20vcHJvbW9zL2ltYWdlcy9wcm9tb2Zvb3Rlcl9ib3R0b20u
cG5nKSBuby1yZXBlYXQgMCAxMDAlOyB6b29tOjE7IF9iYWNrZ3JvdW5kLWltYWdlOnVybChodHRw
Oi8vaW1hZ2VzLmFwcGxlLmNvbS9wcm9tb3MvaW1hZ2VzL3Byb21vZm9vdGVyX2JvdHRvbS5naWYp
OyB9Ci0jcHJvbW9mb290ZXIgI3Byb21vczo6YWZ0ZXIgeyBjb250ZW50OicuJzsgZGlzcGxheTpi
bG9jazsgaGVpZ2h0OjA7IGNsZWFyOmJvdGg7IHZpc2liaWxpdHk6aGlkZGVuOyB9Ci0jcHJvbW9m
b290ZXIgI3Byb21vcyBsaS5wcm9tbyB7IHBvc2l0aW9uOnJlbGF0aXZlOyBmbG9hdDpsZWZ0OyB3
aWR0aDoyNDRweDsgbWluLWhlaWdodDoxNWVtOyBfaGVpZ2h0OjE1ZW07IHBhZGRpbmctcmlnaHQ6
MXB4OyBtYXJnaW4tdG9wOi0xNnB4OyB9Ci0jcHJvbW9mb290ZXIgI3Byb21vcyBsaS5wcm9tbyBh
IHsgY29sb3I6Izc3NzsgfQotI3Byb21vZm9vdGVyICNwcm9tb3MgbGkucHJvbW86aG92ZXIgYSB7
IGNvbG9yOiMwOGM7IHRleHQtZGVjb3JhdGlvbjpub25lOyB9Ci0KLSNwcm9tb2Zvb3RlciAjcHJv
bW9zIGltZyB7IGRpc3BsYXk6YmxvY2s7IH0KLQotI3Byb21vZm9vdGVyICNwcm9tb3MgaDQgYSwK
LSNwcm9tb2Zvb3RlciAjcHJvbW9zIHAgYSwKLSNwcm9tb2Zvb3RlciAjcHJvbW9zIHVsIHsgZGlz
cGxheTpibG9jazsgcGFkZGluZy1sZWZ0OjE1cHg7IHBhZGRpbmctcmlnaHQ6MTJweDsgdGV4dC1h
bGlnbjpsZWZ0OyB6LWluZGV4OjEwMTsgKnBvc2l0aW9uOnJlbGF0aXZlOyB9Ci0KLSNwcm9tb2Zv
b3RlciAjcHJvbW9zIGg0IGEgeyBmb250LXNpemU6MThweDsgZm9udC13ZWlnaHQ6bm9ybWFsOyBw
YWRkaW5nLXRvcDoxNXB4OyB9Ci0jcHJvbW9mb290ZXIgI3Byb21vcyBwIHsgbWFyZ2luLWJvdHRv
bTowOyB9Ci0jcHJvbW9mb290ZXIgI3Byb21vcyBwIGEgeyBmb250LXNpemU6MTFweDsgbGluZS1o
ZWlnaHQ6MTZweDsgfQotI3Byb21vZm9vdGVyICNwcm9tb3MgYS5pbWFnZSB7IGhlaWdodDoxODBw
eDsgcG9zaXRpb246YWJzb2x1dGU7IGJvdHRvbTowOyB6LWluZGV4OjEwMDsgfQotCi0jcHJvbW9m
b290ZXIgI3Byb21vcyAucHJvbW8ubGVmdCBwIGEgeyB3aWR0aDoxMTBweDsgfQotI3Byb21vZm9v
dGVyICNwcm9tb3MgLnByb21vLnJpZ2h0IHAgYSB7IHdpZHRoOjExMnB4OyBwYWRkaW5nLWxlZnQ6
MTE2cHg7IH0KLSNwcm9tb2Zvb3RlciAjcHJvbW9zIC5wcm9tby5jZW50ZXIgcCBhIHsgdGV4dC1h
bGlnbjpjZW50ZXI7IH0KLQotI3Byb21vZm9vdGVyICNwcm9tb3MgbGkuYnV5IHsgcG9zaXRpb246
cmVsYXRpdmU7IGZsb2F0OmxlZnQ7IHdpZHRoOjI0NHB4OyBwYWRkaW5nLXJpZ2h0OjFweDsgbWFy
Z2luLXRvcDotMTdweDsgY29sb3I6Izc3NzsgfQotI3Byb21vZm9vdGVyICNwcm9tb3MgbGkuYnV5
IHVsIHsgZm9udC1zaXplOjExcHg7IGxpbmUtaGVpZ2h0OjEuNDsgfQotCi0jcHJvbW9mb290ZXIu
Z3JpZDJjb2wgeyBtaW4taGVpZ2h0OiA3MHB4OyBwYWRkaW5nOjE1cHggMCA4cHggMDsgIGJvcmRl
cjogMXB4IHNvbGlkICNEMkQyRDI7IH0KLSNwcm9tb2Zvb3Rlci5ncmlkMmNvbCB7IGJhY2tncm91
bmQ6I2ZmZjsKLSAgICBiYWNrZ3JvdW5kOi13ZWJraXQtZ3JhZGllbnQobGluZWFyLCAwJSAwJSwg
MCUgMTAwJSwgZnJvbSgjZmZmKSwgdG8oI2U1ZTVlNSkpOwotICAgIGJhY2tncm91bmQ6LW1vei1s
aW5lYXItZ3JhZGllbnQoMTAwJSAxMDAlIDkwZGVnLCAjZTVlNWU1LCAjZmZmKTsKLSAgICBmaWx0
ZXI6cHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KEdyYWRpZW50VHlw
ZT0wLCBzdGFydENvbG9yc3RyPScjRkZGRkZGJywgZW5kQ29sb3JzdHI9JyNlNWU1ZTUnKTsKLSB9
Ci0jcHJvbW9mb290ZXIuZ3JpZDJjb2wgI3Byb21vcyB7IGJhY2tncm91bmQ6IG5vbmU7fQotI3By
b21vZm9vdGVyLmdyaWQyY29sICNwcm9tb3MgbGkucHJvbW8geyB3aWR0aDogNDclOyBtaW4taGVp
Z2h0OiA3MHB4OyBtYXJnaW4tYm90dG9tOiAtMTBweDsgfQotI3Byb21vZm9vdGVyLmdyaWQyY29s
ICNwcm9tb3MgbGkucHJvbW8uZmlyc3QgeyBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjZThlOGU4
OyB9Ci0jcHJvbW9mb290ZXIuZ3JpZDJjb2wgbGkucHJvbW8geyBwYWRkaW5nOjIwcHg7IH0KLQot
LyogUFJJTlQgKi8KLUBtZWRpYSBwcmludCB7Ci0JYm9keSwgI21haW4sICNjb250ZW50IHsgY29s
b3I6ICMwMDAgIWltcG9ydGFudDsgfQotCWEsIGE6bGluaywgYTp2aXNpdGVkIHsgY29sb3I6ICMw
MDAgIWltcG9ydGFudDsgdGV4dC1kZWNvcmF0aW9uOm5vbmUgIWltcG9ydGFudDsgfQotCSN0YWJz
LCAjZ2xvYmFsaGVhZGVyLCAjZ2xvYmFsZm9vdGVyLCAjZGlyZWN0b3J5bmF2LCAubm9wcmludCwg
LmhpZGUgeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0KLQkjbWFpbiBhLnBkZiwgI21haW4g
YS5odG1sLCAjbWFpbiBhLnF0LCAjbWFpbiBhLmljYWwsICNtYWluIGEuZGwsICNtYWluIGEuZG1n
LCAjbWFpbiBhLnppcCwgI21haW4gYS5rZXlub3RlLCAjbWFpbiBhLmF1ZGlvIHsgcGFkZGluZy1s
ZWZ0OiAwICFpbXBvcnRhbnQ7IGJhY2tncm91bmQtaW1hZ2U6IG5vbmUgIWltcG9ydGFudDsgfQot
fQotCi0vKiBpUGhvbmUgKi8KLUBtZWRpYSBzY3JlZW4gYW5kIChtYXgtZGV2aWNlLXdpZHRoOiA0
ODBweCkgeyBodG1sIHsgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiBub25lOyB9IH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0Zv
cm1hdHRlci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xs
ZXJzL0Zvcm1hdHRlci5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTRhNjU4MDlh
NmEuLjAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L0NvbnRyb2xsZXJzL0Zvcm1hdHRlci5qcworKysgL2Rldi9udWxsCkBAIC0xLDE2NyArMCwwIEBA
Ci0vKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCi0gKi8KLQotV0kuRm9ybWF0dGVyID0gY2xhc3MgRm9ybWF0dGVyCi17Ci0gICAgY29u
c3RydWN0b3IoY29kZU1pcnJvciwgYnVpbGRlcikKLSAgICB7Ci0gICAgICAgIGNvbnNvbGUuYXNz
ZXJ0KGNvZGVNaXJyb3IpOwotICAgICAgICBjb25zb2xlLmFzc2VydChidWlsZGVyKTsKLQotICAg
ICAgICB0aGlzLl9jb2RlTWlycm9yID0gY29kZU1pcnJvcjsKLSAgICAgICAgdGhpcy5fYnVpbGRl
ciA9IGJ1aWxkZXI7Ci0KLSAgICAgICAgdGhpcy5fbGFzdFRva2VuID0gbnVsbDsKLSAgICAgICAg
dGhpcy5fbGFzdENvbnRlbnQgPSAiIjsKLSAgICB9Ci0KLSAgICAvLyBQdWJsaWMKLQotICAgIGZv
cm1hdChmcm9tLCB0bykKLSAgICB7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRoaXMuX2J1aWxk
ZXIub3JpZ2luYWxDb250ZW50ID09PSBudWxsKTsKLSAgICAgICAgaWYgKHRoaXMuX2J1aWxkZXIu
b3JpZ2luYWxDb250ZW50ICE9PSBudWxsKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAg
IHZhciBvdXRlck1vZGUgPSB0aGlzLl9jb2RlTWlycm9yLmdldE1vZGUoKTsKLSAgICAgICAgdmFy
IGNvbnRlbnQgPSB0aGlzLl9jb2RlTWlycm9yLmdldFJhbmdlKGZyb20sIHRvKTsKLSAgICAgICAg
dmFyIHN0YXRlID0gQ29kZU1pcnJvci5jb3B5U3RhdGUob3V0ZXJNb2RlLCB0aGlzLl9jb2RlTWly
cm9yLmdldFRva2VuQXQoZnJvbSkuc3RhdGUpOwotICAgICAgICB0aGlzLl9idWlsZGVyLnNldE9y
aWdpbmFsQ29udGVudChjb250ZW50KTsKLQotICAgICAgICB2YXIgbGluZU9mZnNldCA9IDA7Ci0g
ICAgICAgIHZhciBsaW5lcyA9IGNvbnRlbnQuc3BsaXQoIlxuIik7Ci0gICAgICAgIGZvciAodmFy
IGkgPSAwOyBpIDwgbGluZXMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgICAgIHZhciBsaW5lID0g
bGluZXNbaV07Ci0gICAgICAgICAgICB2YXIgc3RhcnRPZk5ld0xpbmUgPSB0cnVlOwotICAgICAg
ICAgICAgdmFyIGZpcnN0VG9rZW5PbkxpbmUgPSB0cnVlOwotICAgICAgICAgICAgdmFyIHN0cmVh
bSA9IG5ldyBDb2RlTWlycm9yLlN0cmluZ1N0cmVhbShsaW5lKTsKLSAgICAgICAgICAgIHdoaWxl
ICghc3RyZWFtLmVvbCgpKSB7Ci0gICAgICAgICAgICAgICAgdmFyIGlubmVyTW9kZSA9IENvZGVN
aXJyb3IuaW5uZXJNb2RlKG91dGVyTW9kZSwgc3RhdGUpOwotICAgICAgICAgICAgICAgIHZhciB0
b2tlbiA9IG91dGVyTW9kZS50b2tlbihzdHJlYW0sIHN0YXRlKTsKLSAgICAgICAgICAgICAgICB2
YXIgaXNXaGl0ZVNwYWNlID0gdG9rZW4gPT09IG51bGwgJiYgL15ccyokLy50ZXN0KHN0cmVhbS5j
dXJyZW50KCkpOwotICAgICAgICAgICAgICAgIHRoaXMuX2hhbmRsZVRva2VuKGlubmVyTW9kZS5t
b2RlLCB0b2tlbiwgc3RhdGUsIHN0cmVhbSwgbGluZU9mZnNldCArIHN0cmVhbS5zdGFydCwgaXNX
aGl0ZVNwYWNlLCBzdGFydE9mTmV3TGluZSwgZmlyc3RUb2tlbk9uTGluZSk7Ci0gICAgICAgICAg
ICAgICAgc3RyZWFtLnN0YXJ0ID0gc3RyZWFtLnBvczsKLSAgICAgICAgICAgICAgICBzdGFydE9m
TmV3TGluZSA9IGZhbHNlOwotICAgICAgICAgICAgICAgIGlmIChmaXJzdFRva2VuT25MaW5lICYm
ICFpc1doaXRlU3BhY2UpCi0gICAgICAgICAgICAgICAgICAgIGZpcnN0VG9rZW5PbkxpbmUgPSBm
YWxzZTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgaWYgKGZpcnN0VG9rZW5PbkxpbmUp
Ci0gICAgICAgICAgICAgICAgdGhpcy5faGFuZGxlRW1wdHlMaW5lKCk7Ci0KLSAgICAgICAgICAg
IGxpbmVPZmZzZXQgKz0gbGluZS5sZW5ndGggKyAxOyAvLyArMSBmb3IgdGhlICJcbiIgcmVtb3Zl
ZCBpbiBzcGxpdC4KLSAgICAgICAgICAgIHRoaXMuX2hhbmRsZUxpbmVFbmRpbmcobGluZU9mZnNl
dCAtIDEpOyAvLyAtMSBmb3IgdGhlIGluZGV4IG9mIHRoZSAiXG4iLgotICAgICAgICB9Ci0KLSAg
ICAgICAgdGhpcy5fYnVpbGRlci5maW5pc2goKTsKLSAgICB9Ci0KLSAgICAvLyBQcml2YXRlCi0K
LSAgICBfaGFuZGxlVG9rZW4obW9kZSwgdG9rZW4sIHN0YXRlLCBzdHJlYW0sIG9yaWdpbmFsUG9z
aXRpb24sIGlzV2hpdGVTcGFjZSwgc3RhcnRPZk5ld0xpbmUsIGZpcnN0VG9rZW5PbkxpbmUpCi0g
ICAgewotICAgICAgICAvLyBTdHJpbmcgY29udGVudCBvZiB0aGUgdG9rZW4uCi0gICAgICAgIHZh
ciBjb250ZW50ID0gc3RyZWFtLmN1cnJlbnQoKTsKLQotICAgICAgICAvLyBTdGFydCBvZiBhIG5l
dyBsaW5lLiBJbnNlcnQgYSBuZXdsaW5lIHRvIGJlIHNhZmUgaWYgY29kZSB3YXMgbm90LUFTSSBz
YWZlLiBUaGVzZSBhcmUgY29sbGFwc2VkLgotICAgICAgICBpZiAoc3RhcnRPZk5ld0xpbmUpCi0g
ICAgICAgICAgICB0aGlzLl9idWlsZGVyLmFwcGVuZE5ld2xpbmUoKTsKLQotICAgICAgICAvLyBX
aGl0ZXNwYWNlLiBSZW1vdmUgYWxsIHNwYWNlcyBvciBjb2xsYXBzZSB0byBhIHNpbmdsZSBzcGFj
ZS4KLSAgICAgICAgaWYgKGlzV2hpdGVTcGFjZSkgewotICAgICAgICAgICAgdGhpcy5fYnVpbGRl
ci5hcHBlbmRTcGFjZSgpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAg
ICAgLy8gQXZvaWQgc29tZSBob29rcyBmb3IgY29udGVudCBpbiBjb21tZW50cy4KLSAgICAgICAg
dmFyIGlzQ29tbWVudCA9IHRva2VuICYmIC9cYmNvbW1lbnRcYi8udGVzdCh0b2tlbik7Ci0KLSAg
ICAgICAgaWYgKG1vZGUubW9kaWZ5U3RhdGVGb3JUb2tlblByZSkKLSAgICAgICAgICAgIG1vZGUu
bW9kaWZ5U3RhdGVGb3JUb2tlblByZSh0aGlzLl9sYXN0VG9rZW4sIHRoaXMuX2xhc3RDb250ZW50
LCB0b2tlbiwgc3RhdGUsIGNvbnRlbnQsIGlzQ29tbWVudCk7Ci0KLSAgICAgICAgLy8gU2hvdWxk
IHdlIHJlbW92ZSB0aGUgbGFzdCB3aGl0ZXNwYWNlPwotICAgICAgICBpZiAodGhpcy5fYnVpbGRl
ci5sYXN0VG9rZW5XYXNXaGl0ZXNwYWNlICYmIG1vZGUucmVtb3ZlTGFzdFdoaXRlc3BhY2UodGhp
cy5fbGFzdFRva2VuLCB0aGlzLl9sYXN0Q29udGVudCwgdG9rZW4sIHN0YXRlLCBjb250ZW50LCBp
c0NvbW1lbnQpKQotICAgICAgICAgICAgdGhpcy5fYnVpbGRlci5yZW1vdmVMYXN0V2hpdGVzcGFj
ZSgpOwotCi0gICAgICAgIC8vIFNob3VsZCB3ZSByZW1vdmUgdGhlIGxhc3QgbmV3bGluZT8KLSAg
ICAgICAgaWYgKHRoaXMuX2J1aWxkZXIubGFzdFRva2VuV2FzTmV3bGluZSAmJiBtb2RlLnJlbW92
ZUxhc3ROZXdsaW5lKHRoaXMuX2xhc3RUb2tlbiwgdGhpcy5fbGFzdENvbnRlbnQsIHRva2VuLCBz
dGF0ZSwgY29udGVudCwgaXNDb21tZW50LCBmaXJzdFRva2VuT25MaW5lKSkKLSAgICAgICAgICAg
IHRoaXMuX2J1aWxkZXIucmVtb3ZlTGFzdE5ld2xpbmUoKTsKLQotICAgICAgICAvLyBBZGQgd2hp
dGVzcGFjZSBhZnRlciB0aGUgbGFzdCB0b2tlbj8KLSAgICAgICAgaWYgKCF0aGlzLl9idWlsZGVy
Lmxhc3RUb2tlbldhc1doaXRlc3BhY2UgJiYgbW9kZS5zaG91bGRIYXZlU3BhY2VBZnRlckxhc3RU
b2tlbih0aGlzLl9sYXN0VG9rZW4sIHRoaXMuX2xhc3RDb250ZW50LCB0b2tlbiwgc3RhdGUsIGNv
bnRlbnQsIGlzQ29tbWVudCkpCi0gICAgICAgICAgICB0aGlzLl9idWlsZGVyLmFwcGVuZFNwYWNl
KCk7Ci0KLSAgICAgICAgLy8gQWRkIHdoaXRlc3BhY2UgYmVmb3JlIHRoaXMgdG9rZW4/Ci0gICAg
ICAgIGlmICghdGhpcy5fYnVpbGRlci5sYXN0VG9rZW5XYXNXaGl0ZXNwYWNlICYmIG1vZGUuc2hv
dWxkSGF2ZVNwYWNlQmVmb3JlVG9rZW4odGhpcy5fbGFzdFRva2VuLCB0aGlzLl9sYXN0Q29udGVu
dCwgdG9rZW4sIHN0YXRlLCBjb250ZW50LCBpc0NvbW1lbnQpKQotICAgICAgICAgICAgdGhpcy5f
YnVpbGRlci5hcHBlbmRTcGFjZSgpOwotCi0gICAgICAgIC8vIFNob3VsZCB3ZSBkZWRlbnQgYmVm
b3JlIHRoaXMgdG9rZW4/Ci0gICAgICAgIHZhciBkZWRlbnRzID0gbW9kZS5kZWRlbnRzQmVmb3Jl
VG9rZW4odGhpcy5fbGFzdFRva2VuLCB0aGlzLl9sYXN0Q29udGVudCwgdG9rZW4sIHN0YXRlLCBj
b250ZW50LCBpc0NvbW1lbnQpOwotICAgICAgICB3aGlsZSAoZGVkZW50cy0tID4gMCkKLSAgICAg
ICAgICAgIHRoaXMuX2J1aWxkZXIuZGVkZW50KCk7Ci0KLSAgICAgICAgLy8gU2hvdWxkIHdlIGFk
ZCBhIG5ld2xpbmUgYmVmb3JlIHRoaXMgdG9rZW4/Ci0gICAgICAgIGlmIChtb2RlLm5ld2xpbmVC
ZWZvcmVUb2tlbih0aGlzLl9sYXN0VG9rZW4sIHRoaXMuX2xhc3RDb250ZW50LCB0b2tlbiwgc3Rh
dGUsIGNvbnRlbnQsIGlzQ29tbWVudCkpCi0gICAgICAgICAgICB0aGlzLl9idWlsZGVyLmFwcGVu
ZE5ld2xpbmUoKTsKLQotICAgICAgICAvLyBTaG91bGQgd2UgaW5kZW50IGJlZm9yZSB0aGlzIHRv
a2VuPwotICAgICAgICBpZiAobW9kZS5pbmRlbnRCZWZvcmVUb2tlbih0aGlzLl9sYXN0VG9rZW4s
IHRoaXMuX2xhc3RDb250ZW50LCB0b2tlbiwgc3RhdGUsIGNvbnRlbnQsIGlzQ29tbWVudCkpCi0g
ICAgICAgICAgICB0aGlzLl9idWlsZGVyLmluZGVudCgpOwotCi0gICAgICAgIC8vIEFwcGVuZCB0
b2tlbi4KLSAgICAgICAgdGhpcy5fYnVpbGRlci5hcHBlbmRUb2tlbihjb250ZW50LCBvcmlnaW5h
bFBvc2l0aW9uKTsKLQotICAgICAgICAvLyBMZXQgdGhlIHByZXR0eSBwcmludGVyIHVwZGF0ZSBh
bnkgc3RhdGUgaXQga2VlcHMgdHJhY2sgb2YuCi0gICAgICAgIGlmIChtb2RlLm1vZGlmeVN0YXRl
Rm9yVG9rZW5Qb3N0KQotICAgICAgICAgICAgbW9kZS5tb2RpZnlTdGF0ZUZvclRva2VuUG9zdCh0
aGlzLl9sYXN0VG9rZW4sIHRoaXMuX2xhc3RDb250ZW50LCB0b2tlbiwgc3RhdGUsIGNvbnRlbnQs
IGlzQ29tbWVudCk7Ci0KLSAgICAgICAgLy8gU2hvdWxkIHdlIGluZGVudCBvciBkZWRlbnQgYWZ0
ZXIgdGhpcyB0b2tlbj8KLSAgICAgICAgaWYgKCFpc0NvbW1lbnQgJiYgbW9kZS5pbmRlbnRBZnRl
clRva2VuKHRoaXMuX2xhc3RUb2tlbiwgdGhpcy5fbGFzdENvbnRlbnQsIHRva2VuLCBzdGF0ZSwg
Y29udGVudCwgaXNDb21tZW50KSkKLSAgICAgICAgICAgIHRoaXMuX2J1aWxkZXIuaW5kZW50KCk7
Ci0KLSAgICAgICAgLy8gU2hvdWxkIHdlIGFkZCBuZXdsaW5lcyBhZnRlciB0aGlzIHRva2VuPwot
ICAgICAgICB2YXIgbmV3bGluZXMgPSBtb2RlLm5ld2xpbmVzQWZ0ZXJUb2tlbih0aGlzLl9sYXN0
VG9rZW4sIHRoaXMuX2xhc3RDb250ZW50LCB0b2tlbiwgc3RhdGUsIGNvbnRlbnQsIGlzQ29tbWVu
dCk7Ci0gICAgICAgIGlmIChuZXdsaW5lcykKLSAgICAgICAgICAgIHRoaXMuX2J1aWxkZXIuYXBw
ZW5kTXVsdGlwbGVOZXdsaW5lcyhuZXdsaW5lcyk7Ci0KLSAgICAgICAgLy8gUmVjb3JkIHRoaXMg
dG9rZW4gYXMgdGhlIGxhc3QgdG9rZW4uCi0gICAgICAgIHRoaXMuX2xhc3RUb2tlbiA9IHRva2Vu
OwotICAgICAgICB0aGlzLl9sYXN0Q29udGVudCA9IGNvbnRlbnQ7Ci0gICAgfQotCi0gICAgX2hh
bmRsZUVtcHR5TGluZSgpCi0gICAgewotICAgICAgICAvLyBQcmVzZXJ2ZSBvcmlnaW5hbCB3aGl0
ZXNwYWNlIG9ubHkgbGluZXMgYnkgYWRkaW5nIGEgbmV3bGluZS4KLSAgICAgICAgLy8gSG93ZXZl
ciwgZG9uJ3QgZG8gdGhpcyBpZiB0aGUgYnVpbGRlciBqdXN0IGFkZGVkIG11bHRpcGxlIG5ld2xp
bmVzLgotICAgICAgICBpZiAoISh0aGlzLl9idWlsZGVyLmxhc3RUb2tlbldhc05ld2xpbmUgJiYg
dGhpcy5fYnVpbGRlci5sYXN0TmV3bGluZUFwcGVuZFdhc011bHRpcGxlKSkKLSAgICAgICAgICAg
IHRoaXMuX2J1aWxkZXIuYXBwZW5kTmV3bGluZSh0cnVlKTsKLSAgICB9Ci0KLSAgICBfaGFuZGxl
TGluZUVuZGluZyhvcmlnaW5hbE5ld0xpbmVQb3NpdGlvbikKLSAgICB7Ci0gICAgICAgIC8vIFJl
Y29yZCB0aGUgb3JpZ2luYWwgbGluZSBlbmRpbmcuCi0gICAgICAgIHRoaXMuX2J1aWxkZXIuYWRk
T3JpZ2luYWxMaW5lRW5kaW5nKG9yaWdpbmFsTmV3TGluZVBvc2l0aW9uKTsKLSAgICB9Ci19Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTWFpbi5odG1s
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTWFpbi5odG1sCmluZGV4IDk0
ZDE0NGU5ZjQ2Li43ZmY3MWZiYzE1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvTWFpbi5odG1sCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL01haW4uaHRtbApAQCAtNjI1LDcgKzYyNSw2IEBACiAgICAgPHNjcmlwdCBzcmM9
IlZpZXdzL0NsdXN0ZXJDb250ZW50Vmlldy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9
IlZpZXdzL0NvZGVNaXJyb3JBZGRpdGlvbnMuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3Jj
PSJWaWV3cy9Db2RlTWlycm9yRWRpdG9yLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0i
Vmlld3MvQ29kZU1pcnJvckZvcm1hdHRlcnMuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3Jj
PSJWaWV3cy9Db2RlTWlycm9yTG9jYWxPdmVycmlkZVVSTE1vZGUuanMiPjwvc2NyaXB0PgogICAg
IDxzY3JpcHQgc3JjPSJWaWV3cy9Db2RlTWlycm9yUmVnZXhNb2RlLmpzIj48L3NjcmlwdD4KICAg
ICA8c2NyaXB0IHNyYz0iVmlld3MvQ29kZU1pcnJvclRleHRNYXJrZXJzLmpzIj48L3NjcmlwdD4K
QEAgLTg3OSw3ICs4NzgsNiBAQAogICAgIDxzY3JpcHQgc3JjPSJDb250cm9sbGVycy9EYXRhYmFz
ZU1hbmFnZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJDb250cm9sbGVycy9EZWJ1
Z2dlck1hbmFnZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJDb250cm9sbGVycy9E
cmFnVG9BZGp1c3RDb250cm9sbGVyLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iQ29u
dHJvbGxlcnMvRm9ybWF0dGVyLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iQ29udHJv
bGxlcnMvRm9ybWF0dGVyU291cmNlTWFwLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0i
Q29udHJvbGxlcnMvSEFSQnVpbGRlci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkNv
bnRyb2xsZXJzL0hlYXBNYW5hZ2VyLmpzIj48L3NjcmlwdD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Rlc3QuaHRtbCBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1Rlc3QuaHRtbAppbmRleCAwNmRiNzYxNTg4MC4uODg0MjU2NzQx
MjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Rlc3Qu
aHRtbAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9UZXN0Lmh0bWwK
QEAgLTI1NywxMiArMjU3LDEwIEBACiAgICAgPHNjcmlwdCBzcmM9IkNvbnRyb2xsZXJzL1RpbWVs
aW5lTWFuYWdlci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkNvbnRyb2xsZXJzL1dv
cmtlck1hbmFnZXIuanMiPjwvc2NyaXB0PgogCi0gICAgPHNjcmlwdCBzcmM9IkNvbnRyb2xsZXJz
L0Zvcm1hdHRlci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkNvbnRyb2xsZXJzL1Jl
c291cmNlUXVlcnlDb250cm9sbGVyLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iQ29u
dHJvbGxlcnMvU2VsZWN0aW9uQ29udHJvbGxlci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBz
cmM9IldvcmtlcnMvRm9ybWF0dGVyL0Zvcm1hdHRlckNvbnRlbnRCdWlsZGVyLmpzIj48L3Njcmlw
dD4KICAgICA8c2NyaXB0IHNyYz0iVmlld3MvQ29kZU1pcnJvckFkZGl0aW9ucy5qcyI+PC9zY3Jp
cHQ+Ci0gICAgPHNjcmlwdCBzcmM9IlZpZXdzL0NvZGVNaXJyb3JGb3JtYXR0ZXJzLmpzIj48L3Nj
cmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVmlld3MvRWRpdGluZ1N1cHBvcnQuanMiPjwvc2NyaXB0
PgogICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9WaWV3LmpzIj48L3NjcmlwdD4KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29kZU1pcnJvckZv
cm1hdHRlcnMuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9D
b2RlTWlycm9yRm9ybWF0dGVycy5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGRi
YmNjNDJhZTEuLjAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1ZpZXdzL0NvZGVNaXJyb3JGb3JtYXR0ZXJzLmpzCisrKyAvZGV2L251bGwKQEAgLTEs
NDQ5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDE1IFRvYmlhcyBSZWlzcyA8dG9iaSt3
ZWJraXRAYmFzZWNvZGUuZGU+Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFy
ZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLS8vIEluIHRoZSBpbnNwZWN0b3IgdG9rZW4g
dHlwZXMgaGF2ZSBiZWVuIG1vZGlmaWVkIHRvIGluY2x1ZGUgZXh0cmEgbW9kZSBpbmZvcm1hdGlv
bgotLy8gYWZ0ZXIgdGhlIGFjdHVhbCB0b2tlbiB0eXBlLiBTbyB3ZSBjYW4ndCBkbyB0b2tlbiA9
PT0gImZvbyIuIFNvIGluc3RlYWQgd2UgZG8KLS8vIC9cYmZvb1xiLy50ZXN0KHRva2VuKS4KLQot
Q29kZU1pcnJvci5leHRlbmRNb2RlKCJqYXZhc2NyaXB0IiwgewotICAgIHNob3VsZEhhdmVTcGFj
ZUJlZm9yZVRva2VuOiBmdW5jdGlvbihsYXN0VG9rZW4sIGxhc3RDb250ZW50LCB0b2tlbiwgc3Rh
dGUsIGNvbnRlbnQsIGlzQ29tbWVudCkKLSAgICB7Ci0gICAgICAgIGlmICghdG9rZW4pIHsKLSAg
ICAgICAgICAgIGlmIChjb250ZW50ID09PSAiKCIpIC8vIE1vc3Qga2V5d29yZHMgbGlrZSAiaWYg
KCIgYnV0IG5vdCAiZnVuY3Rpb24oIiBvciAidHlwZW9mKCIuCi0gICAgICAgICAgICAgICAgcmV0
dXJuIGxhc3RUb2tlbiAmJiAvXGJrZXl3b3JkXGIvLnRlc3QobGFzdFRva2VuKSAmJiAobGFzdENv
bnRlbnQgIT09ICJmdW5jdGlvbiIgJiYgbGFzdENvbnRlbnQgIT09ICJ0eXBlb2YiICYmIGxhc3RD
b250ZW50ICE9PSAiaW5zdGFuY2VvZiIpOwotICAgICAgICAgICAgaWYgKGNvbnRlbnQgPT09ICI6
IikgLy8gVGVybmFyeS4KLSAgICAgICAgICAgICAgICByZXR1cm4gc3RhdGUubGV4aWNhbC50eXBl
ID09PSAic3RhdCIgfHwgc3RhdGUubGV4aWNhbC50eXBlID09PSAiKSIgfHwgc3RhdGUubGV4aWNh
bC50eXBlID09PSAiXSI7Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0KLQot
ICAgICAgICBpZiAoaXNDb21tZW50KQotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICAg
ICAgaWYgKC9cYm9wZXJhdG9yXGIvLnRlc3QodG9rZW4pKSB7Ci0gICAgICAgICAgICBpZiAoIWxh
c3RUb2tlbiAmJiAoY29udGVudCA9PT0gIisiIHx8IGNvbnRlbnQgPT09ICItIiB8fCBjb250ZW50
ID09PSAifiIpICYmIChsYXN0Q29udGVudCAhPT0gIikiICYmIGxhc3RDb250ZW50ICE9PSAiXSIp
KSAvLyBQb3NzaWJsZSBVbmFyeSArLy0uCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgICAgICAgICAgaWYgKGNvbnRlbnQgPT09ICIhIikgLy8gVW5hcnkgISBzaG91bGQgbm90IGJl
IGNvbmZ1c2VkIHdpdGggIiE9Ii4KLSAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAg
ICAgICAgICByZXR1cm4gIistLyolJiZ8fCE9PT0rPS09Pj08PT8iLmluZGV4T2YoY29udGVudCkg
Pj0gMDsgLy8gT3BlcmF0b3JzLgotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKC9cYmtleXdvcmRc
Yi8udGVzdCh0b2tlbikpIHsgLy8gTW9zdCBrZXl3b3JkcyByZXF1aXJlIHNwYWNlcyBiZWZvcmUg
dGhlbSwgdW5sZXNzIGEgJ30nIGNhbiBjb21lIGJlZm9yZSBpdC4KLSAgICAgICAgICAgIGlmIChj
b250ZW50ID09PSAiZWxzZSIgfHwgY29udGVudCA9PT0gImNhdGNoIiB8fCBjb250ZW50ID09PSAi
ZmluYWxseSIpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGxhc3RDb250ZW50ID09PSAifSI7Ci0g
ICAgICAgICAgICBpZiAoY29udGVudCA9PT0gIndoaWxlIiAmJiBsYXN0Q29udGVudCA9PT0gIn0i
KQotICAgICAgICAgICAgICAgIHJldHVybiBzdGF0ZS5fanNQcmV0dHlQcmludC5sYXN0Q29udGVu
dEJlZm9yZUJsb2NrID09PSAiZG8iOwotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAg
ICB9Ci0KLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0sCi0KLSAgICBzaG91bGRIYXZlU3Bh
Y2VBZnRlckxhc3RUb2tlbjogZnVuY3Rpb24obGFzdFRva2VuLCBsYXN0Q29udGVudCwgdG9rZW4s
IHN0YXRlLCBjb250ZW50LCBpc0NvbW1lbnQpCi0gICAgewotICAgICAgICBpZiAobGFzdFRva2Vu
ICYmIC9cYmtleXdvcmRcYi8udGVzdChsYXN0VG9rZW4pKSB7IC8vIE1vc3Qga2V5d29yZHMgcmVx
dWlyZSBzcGFjZXMgYWZ0ZXIgdGhlbSwgdW5sZXNzIGEgJ3snIG9yICc7JyBjYW4gY29tZSBhZnRl
ciBpdC4KLSAgICAgICAgICAgIGlmIChsYXN0Q29udGVudCA9PT0gImVsc2UiKQotICAgICAgICAg
ICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICAgICAgaWYgKGxhc3RDb250ZW50ID09PSAiY2F0
Y2giKQotICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICAgICAgaWYgKGxhc3RD
b250ZW50ID09PSAicmV0dXJuIikKLSAgICAgICAgICAgICAgICByZXR1cm4gY29udGVudCAhPT0g
IjsiOwotICAgICAgICAgICAgaWYgKGxhc3RDb250ZW50ID09PSAidGhyb3ciKQotICAgICAgICAg
ICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICAgICAgaWYgKGxhc3RDb250ZW50ID09PSAidHJ5
IikKLSAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgICAgIGlmIChsYXN0Q29u
dGVudCA9PT0gImZpbmFsbHkiKQotICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAg
ICAgICAgaWYgKGxhc3RDb250ZW50ID09PSAiZG8iKQotICAgICAgICAgICAgICAgIHJldHVybiB0
cnVlOwotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYg
KGxhc3RUb2tlbiAmJiAvXGJjb21tZW50XGIvLnRlc3QobGFzdFRva2VuKSkgLy8gRW1iZWRkZWQg
LyogY29tbWVudCAqLy4KLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICBpZiAobGFz
dENvbnRlbnQgPT09ICIpIikgLy8gIil7Ii4KLSAgICAgICAgICAgIHJldHVybiBjb250ZW50ID09
PSAieyI7Ci0gICAgICAgIGlmIChsYXN0Q29udGVudCA9PT0gIjsiKSAvLyBJbiBmb3IgbG9vcC4K
LSAgICAgICAgICAgIHJldHVybiBzdGF0ZS5sZXhpY2FsLnR5cGUgPT09ICIpIjsKLSAgICAgICAg
aWYgKGxhc3RDb250ZW50ID09PSAiISIpIC8vIFVuYXJ5ICEgc2hvdWxkIG5vdCBiZSBjb25mdXNl
ZCB3aXRoICIhPSIuCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICAgICAgLy8gSWYg
dGhpcyB1bmFyeSBvcGVyYXRvciBkaWQgbm90IGhhdmUgYSBsZWFkaW5nIGV4cHJlc3Npb24gaXQg
aXMgcHJvYmFibHkgdW5hcnkuCi0gICAgICAgIGlmICgobGFzdENvbnRlbnQgPT09ICIrIiB8fCBs
YXN0Q29udGVudCA9PT0gIi0iIHx8IGxhc3RDb250ZW50ID09PSAifiIpICYmICFzdGF0ZS5fanNQ
cmV0dHlQcmludC51bmFyeU9wZXJhdG9ySGFkTGVhZGluZ0V4cHIpCi0gICAgICAgICAgICByZXR1
cm4gZmFsc2U7Ci0KLSAgICAgICAgcmV0dXJuICIsKy0vKiUmJnx8OiE9PT0rPS09Pj08PT8iLmlu
ZGV4T2YobGFzdENvbnRlbnQpID49IDA7IC8vIE9wZXJhdG9ycy4KLSAgICB9LAotCi0gICAgbmV3
bGluZXNBZnRlclRva2VuOiBmdW5jdGlvbihsYXN0VG9rZW4sIGxhc3RDb250ZW50LCB0b2tlbiwg
c3RhdGUsIGNvbnRlbnQsIGlzQ29tbWVudCkKLSAgICB7Ci0gICAgICAgIGlmICghdG9rZW4pIHsK
LSAgICAgICAgICAgIGlmIChjb250ZW50ID09PSAiLCIpIC8vIEluIG9iamVjdCBsaXRlcmFscywg
bGlrZSBpbiB7YToxLGI6Mn0sIGJ1dCBub3QgaW4gcGFyYW0gbGlzdHMgb3IgdmFyZGVmIGxpc3Rz
LgotICAgICAgICAgICAgICAgIHJldHVybiBzdGF0ZS5sZXhpY2FsLnR5cGUgPT09ICJ9IiA/IDEg
OiAwOwotICAgICAgICAgICAgaWYgKGNvbnRlbnQgPT09ICI7IikgLy8gRXZlcnl3aGVyZSBleGNl
cHQgaW4gZm9yIGxvb3AgY29uZGl0aW9ucy4KLSAgICAgICAgICAgICAgICByZXR1cm4gc3RhdGUu
bGV4aWNhbC50eXBlICE9PSAiKSIgPyAxIDogMDsKLSAgICAgICAgICAgIGlmIChjb250ZW50ID09
PSAiOiIgJiYgc3RhdGUubGV4aWNhbC50eXBlID09PSAifSIgJiYgc3RhdGUubGV4aWNhbC5wcmV2
ICYmIHN0YXRlLmxleGljYWwucHJldi50eXBlID09PSAiZm9ybSIpIC8vIFN3aXRjaCBjYXNlL2Rl
ZmF1bHQuCi0gICAgICAgICAgICAgICAgcmV0dXJuIDE7Ci0gICAgICAgICAgICByZXR1cm4gY29u
dGVudC5sZW5ndGggPT09IDEgJiYgInt9Ii5pbmRleE9mKGNvbnRlbnQpID49IDAgPyAxIDogMDsg
Ly8gQWZ0ZXIgYnJhY2VzLgotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKGlzQ29tbWVudCkKLSAg
ICAgICAgICAgIHJldHVybiAxOwotCi0gICAgICAgIHJldHVybiAwOwotICAgIH0sCi0KLSAgICBy
ZW1vdmVMYXN0V2hpdGVzcGFjZTogZnVuY3Rpb24obGFzdFRva2VuLCBsYXN0Q29udGVudCwgdG9r
ZW4sIHN0YXRlLCBjb250ZW50LCBpc0NvbW1lbnQpCi0gICAgewotICAgICAgICByZXR1cm4gZmFs
c2U7Ci0gICAgfSwKLQotICAgIHJlbW92ZUxhc3ROZXdsaW5lOiBmdW5jdGlvbihsYXN0VG9rZW4s
IGxhc3RDb250ZW50LCB0b2tlbiwgc3RhdGUsIGNvbnRlbnQsIGlzQ29tbWVudCwgZmlyc3RUb2tl
bk9uTGluZSkKLSAgICB7Ci0gICAgICAgIGlmICghdG9rZW4pIHsKLSAgICAgICAgICAgIGlmIChj
b250ZW50ID09PSAifSIpIC8vICJ7fSIuCi0gICAgICAgICAgICAgICAgcmV0dXJuIGxhc3RDb250
ZW50ID09PSAieyI7Ci0gICAgICAgICAgICBpZiAoY29udGVudCA9PT0gIjsiKSAvLyAieCA9IHt9
OyIgb3IgIjs7Ii4KLSAgICAgICAgICAgICAgICByZXR1cm4gIn07Ii5pbmRleE9mKGxhc3RDb250
ZW50KSA+PSAwOwotICAgICAgICAgICAgaWYgKGNvbnRlbnQgPT09ICI6IikgLy8gVGVybmFyeS4K
LSAgICAgICAgICAgICAgICByZXR1cm4gbGFzdENvbnRlbnQgPT09ICJ9IiAmJiAoc3RhdGUubGV4
aWNhbC50eXBlID09PSAic3RhdCIgfHwgc3RhdGUubGV4aWNhbC50eXBlID09PSAiKSIgfHwgc3Rh
dGUubGV4aWNhbC50eXBlID09PSAiXSIpOwotICAgICAgICAgICAgaWYgKCIsKCkuIi5pbmRleE9m
KGNvbnRlbnQpID49IDApIC8vICJ9KSIsICJ9LmJpbmQiLCAiZnVuY3Rpb24oKSB7IC4uLiB9KCki
LCBvciAifSwgZmFsc2UpIi4KLSAgICAgICAgICAgICAgICByZXR1cm4gbGFzdENvbnRlbnQgPT09
ICJ9IjsKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQotCi0gICAgICAgIGlm
IChpc0NvbW1lbnQpIHsgLy8gQ29tbWVudCBhZnRlciBzZW1pY29sb24uCi0gICAgICAgICAgICBp
ZiAoIWZpcnN0VG9rZW5PbkxpbmUgJiYgbGFzdENvbnRlbnQgPT09ICI7IikKLSAgICAgICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQot
Ci0gICAgICAgIGlmICgvXGJrZXl3b3JkXGIvLnRlc3QodG9rZW4pKSB7Ci0gICAgICAgICAgICBp
ZiAoY29udGVudCA9PT0gImVsc2UiIHx8IGNvbnRlbnQgPT09ICJjYXRjaCIgfHwgY29udGVudCA9
PT0gImZpbmFsbHkiKSAvLyAifSBlbHNlIiwgIn0gY2F0Y2giLCAifSBmaW5hbGx5IgotICAgICAg
ICAgICAgICAgIHJldHVybiBsYXN0Q29udGVudCA9PT0gIn0iOwotICAgICAgICAgICAgaWYgKGNv
bnRlbnQgPT09ICJ3aGlsZSIgJiYgbGFzdENvbnRlbnQgPT09ICJ9IikKLSAgICAgICAgICAgICAg
ICByZXR1cm4gc3RhdGUuX2pzUHJldHR5UHJpbnQubGFzdENvbnRlbnRCZWZvcmVCbG9jayA9PT0g
ImRvIjsKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQotCi0gICAgICAgIHJl
dHVybiBmYWxzZTsKLSAgICB9LAotCi0gICAgaW5kZW50QWZ0ZXJUb2tlbjogZnVuY3Rpb24obGFz
dFRva2VuLCBsYXN0Q29udGVudCwgdG9rZW4sIHN0YXRlLCBjb250ZW50LCBpc0NvbW1lbnQpCi0g
ICAgewotICAgICAgICBpZiAoY29udGVudCA9PT0gInsiKQotICAgICAgICAgICAgcmV0dXJuIHRy
dWU7Ci0KLSAgICAgICAgaWYgKGNvbnRlbnQgPT09ICJjYXNlIiB8fCBjb250ZW50ID09PSAiZGVm
YXVsdCIpCi0gICAgICAgICAgICByZXR1cm4gc3RhdGUubGV4aWNhbC50eXBlID09PSAifSIgJiYg
c3RhdGUubGV4aWNhbC5wcmV2ICYmIHN0YXRlLmxleGljYWwucHJldi50eXBlID09PSAiZm9ybSI7
IC8vIFN3aXRjaCBjYXNlL2RlZmF1bHQuCi0KLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0s
Ci0KLSAgICBuZXdsaW5lQmVmb3JlVG9rZW46IGZ1bmN0aW9uKGxhc3RUb2tlbiwgbGFzdENvbnRl
bnQsIHRva2VuLCBzdGF0ZSwgY29udGVudCwgaXNDb21tZW50KQotICAgIHsKLSAgICAgICAgaWYg
KHN0YXRlLl9qc1ByZXR0eVByaW50LnNob3VsZEluZGVudCkKLSAgICAgICAgICAgIHJldHVybiB0
cnVlOwotCi0gICAgICAgIHJldHVybiBjb250ZW50ID09PSAifSIgJiYgbGFzdENvbnRlbnQgIT09
ICJ7IjsgLy8gInt9IgotICAgIH0sCi0KLSAgICBpbmRlbnRCZWZvcmVUb2tlbjogZnVuY3Rpb24o
bGFzdFRva2VuLCBsYXN0Q29udGVudCwgdG9rZW4sIHN0YXRlLCBjb250ZW50LCBpc0NvbW1lbnQp
Ci0gICAgewotICAgICAgICBpZiAoc3RhdGUuX2pzUHJldHR5UHJpbnQuc2hvdWxkSW5kZW50KQot
ICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0s
Ci0KLSAgICBkZWRlbnRzQmVmb3JlVG9rZW46IGZ1bmN0aW9uKGxhc3RUb2tlbiwgbGFzdENvbnRl
bnQsIHRva2VuLCBzdGF0ZSwgY29udGVudCwgaXNDb21tZW50KQotICAgIHsKLSAgICAgICAgdmFy
IGRlZGVudCA9IDA7Ci0KLSAgICAgICAgaWYgKHN0YXRlLl9qc1ByZXR0eVByaW50LnNob3VsZERl
ZGVudCkKLSAgICAgICAgICAgIGRlZGVudCArPSBzdGF0ZS5fanNQcmV0dHlQcmludC5kZWRlbnRT
aXplOwotCi0gICAgICAgIGlmICghdG9rZW4gJiYgY29udGVudCA9PT0gIn0iKQotICAgICAgICAg
ICAgZGVkZW50ICs9IDE7Ci0gICAgICAgIGVsc2UgaWYgKHRva2VuICYmIC9cYmtleXdvcmRcYi8u
dGVzdCh0b2tlbikgJiYgKGNvbnRlbnQgPT09ICJjYXNlIiB8fCBjb250ZW50ID09PSAiZGVmYXVs
dCIpKQotICAgICAgICAgICAgZGVkZW50ICs9IDE7Ci0KLSAgICAgICAgcmV0dXJuIGRlZGVudDsK
LSAgICB9LAotCi0gICAgbW9kaWZ5U3RhdGVGb3JUb2tlblByZTogZnVuY3Rpb24obGFzdFRva2Vu
LCBsYXN0Q29udGVudCwgdG9rZW4sIHN0YXRlLCBjb250ZW50LCBpc0NvbW1lbnQpCi0gICAgewot
ICAgICAgICBpZiAoIXN0YXRlLl9qc1ByZXR0eVByaW50KSB7Ci0gICAgICAgICAgICBzdGF0ZS5f
anNQcmV0dHlQcmludCA9IHsKLSAgICAgICAgICAgICAgICBpbmRlbnRDb3VudDogMCwgICAgICAg
Ly8gSG93IGZhciBoYXZlIHdlIGluZGVudGVkIGJlY2F1c2Ugb2Ygc2luZ2xlIHN0YXRlbWVudCBi
bG9ja3MuCi0gICAgICAgICAgICAgICAgc2hvdWxkSW5kZW50OiBmYWxzZSwgIC8vIFNpZ25hbCB3
ZSBzaG91bGQgaW5kZW50IG9uIGVudGVyaW5nIGEgc2luZ2xlIHN0YXRlbWVudCBibG9jay4KLSAg
ICAgICAgICAgICAgICBzaG91bGREZWRlbnQ6IGZhbHNlLCAgLy8gU2lnbmFsIHdlIHNob3VsZCBk
ZWRlbnQgb24gbGVhdmluZyBhIHNpbmdsZSBzdGF0ZW1lbnQgYmxvY2suCi0gICAgICAgICAgICAg
ICAgZGVkZW50U2l6ZTogMCwgICAgICAgIC8vIEhvdyBmYXIgd2Ugc2hvdWxkIGRlZGVudCB3aGVu
IGxlYXZpbmcgYSBzaW5nbGUgc3RhdGVtZW50IGJsb2NrLgotICAgICAgICAgICAgICAgIGxhc3RJ
ZkluZGVudENvdW50OiAwLCAvLyBLZWVwIHRyYWNrIG9mIHRoZSBpbmRlbnQgdGhlIGxhc3QgdGlt
ZSB3ZSBzYXcgYW4gaWYgd2l0aG91dCBicmFjZXMuCi0gICAgICAgICAgICAgICAgb3BlbkJyYWNl
U3RhcnRNYXJrZXJzOiBbXSwgIC8vIEtlZXAgdHJhY2sgb2Ygbm9uLXNpbmdsZSBzdGF0ZW1lbnQg
YmxvY2tzLgotICAgICAgICAgICAgICAgIG9wZW5CcmFjZVRyYWNraW5nQ291bnQ6IC0xLCAvLyBL
ZWVwIHRyYWNrIG9mICJ7IiBhbmQgIn0iIGluIG5vbi1zaW5nbGUgc3RhdGVtZW50IGJsb2Nrcy4K
LSAgICAgICAgICAgICAgICB1bmFyeU9wZXJhdG9ySGFkTGVhZGluZ0V4cHI6IGZhbHNlLCAvLyBU
cnkgdG8gZGV0ZWN0IGlmIGEgdW5hcnkgb3BlcmF0b3IgaGFkIGEgbGVhZGluZyBleHByZXNzaW9u
IGFuZCB0aGVyZWZvcmUgbWF5IGJlIGJpbmFyeS4KLSAgICAgICAgICAgICAgICBsYXN0Q29udGVu
dEJlZm9yZUJsb2NrOiB1bmRlZmluZWQsIC8vIFVzZWQgdG8gZGV0ZWN0IGlmIHRoaXMgd2FzIGEg
ZG8vd2hpbGUuCi0gICAgICAgICAgICB9OwotICAgICAgICB9Ci0KLSAgICAgICAgLy8gLSBFbnRl
cmluZzoKLSAgICAgICAgLy8gICAtIFByZWNvbmRpdGlvbnM6Ci0gICAgICAgIC8vICAgICAtIGxh
c3QgbGV4aWNhbCB3YXMgYSAiZm9ybSIgd2UgaGF2ZW4ndCBlbmNvdW50ZXJlZCBiZWZvcmUKLSAg
ICAgICAgLy8gICAgIC0gbGFzdCBjb250ZW50IHdhcyAiKSIsICJlbHNlIiwgb3IgImRvIgotICAg
ICAgICAvLyAgICAgLSBjdXJyZW50IGxleGljYWwgaXMgbm90ICIpIiAoaW4gYW4gZXhwcmVzc2lv
biBvciBjb25kaXRpb24pCi0gICAgICAgIC8vICAgLSBDYXNlczoKLSAgICAgICAgLy8gICAgIDEu
ICJ7IgotICAgICAgICAvLyAgICAgICAtIGluZGVudCArMAotICAgICAgICAvLyAgICAgICAtIHNh
dmUgdGhpcyBpbmRlbnQgc2l6ZSBzbyB3aGVuIHdlIGVuY291bnRlciB0aGUgIn0iIHdlIGtub3cg
aG93IGZhciB0byBkZWRlbnQKLSAgICAgICAgLy8gICAgIDIuICJlbHNlIGlmIgotICAgICAgICAv
LyAgICAgICAtIGluZGVudCArMCBhbmQgZG8gbm90IHNpZ25hbCB0byBhZGQgYSBuZXdsaW5lIGFu
ZCBpbmRlbnQKLSAgICAgICAgLy8gICAgICAgLSBtYXJrIHRoZSBsYXN0IGlmIGxvY2F0aW9uIHNv
IHdoZW4gd2UgZW5jb3VudGVyIGFuICJlbHNlIiB3ZSBrbm93IGhvdyBmYXIgdG8gZGVkZW50Ci0g
ICAgICAgIC8vICAgICAgIC0gbWFyayB0aGUgbGV4aWNhbCBzdGF0ZSBzbyB3ZSBrbm93IHdlIGFy
ZSBpbnNpZGUgYSBzaW5nbGUgc3RhdGVtZW50IGJsb2NrCi0gICAgICAgIC8vICAgICAzLiBUb2tl
biB3aXRob3V0IGJyYWNlLgotICAgICAgICAvLyAgICAgICAtIGluZGVudCArMSBhbmQgc2lnbmFs
IHRvIGFkZCBhIG5ld2xpbmUgYW5kIGluZGVudAotICAgICAgICAvLyAgICAgICAtIG1hcmsgdGhl
IGxhc3QgaWYgbG9jYXRpb24gc28gd2hlbiB3ZSBlbmNvdW50ZXIgYW4gImVsc2UiIHdlIGtub3cg
aG93IGZhciB0byBkZWRlbnQKLSAgICAgICAgLy8gICAgICAgLSBtYXJrIHRoZSBsZXhpY2FsIHN0
YXRlIHNvIHdlIGtub3cgd2UgYXJlIGluc2lkZSBhIHNpbmdsZSBzdGF0ZW1lbnQgYmxvY2sKLSAg
ICAgICAgaWYgKCFpc0NvbW1lbnQgJiYgc3RhdGUubGV4aWNhbC5wcmV2ICYmIHN0YXRlLmxleGlj
YWwucHJldi50eXBlID09PSAiZm9ybSIgJiYgIXN0YXRlLmxleGljYWwucHJldi5fanNQcmV0dHlQ
cmludE1hcmtlciAmJiAobGFzdENvbnRlbnQgPT09ICIpIiB8fCBsYXN0Q29udGVudCA9PT0gImVs
c2UiIHx8IGxhc3RDb250ZW50ID09PSAiZG8iKSAmJiAoc3RhdGUubGV4aWNhbC50eXBlICE9PSAi
KSIpKSB7Ci0gICAgICAgICAgICBpZiAoY29udGVudCA9PT0gInsiKSB7Ci0gICAgICAgICAgICAg
ICAgLy8gU2F2ZSB0aGUgc3RhdGUgYXQgdGhlIG9wZW5pbmcgYnJhY2Ugc28gd2UgY2FuIHJldHVy
biB0byBpdCB3aGVuIHdlIHNlZSAifSIuCi0gICAgICAgICAgICAgICAgdmFyIHNhdmVkU3RhdGUg
PSB7aW5kZW50Q291bnQ6IHN0YXRlLl9qc1ByZXR0eVByaW50LmluZGVudENvdW50LCBvcGVuQnJh
Y2VUcmFja2luZ0NvdW50OiBzdGF0ZS5fanNQcmV0dHlQcmludC5vcGVuQnJhY2VUcmFja2luZ0Nv
dW50LCBsYXN0Q29udGVudEJlZm9yZUJsb2NrOiBsYXN0Q29udGVudH07Ci0gICAgICAgICAgICAg
ICAgc3RhdGUuX2pzUHJldHR5UHJpbnQub3BlbkJyYWNlU3RhcnRNYXJrZXJzLnB1c2goc2F2ZWRT
dGF0ZSk7Ci0gICAgICAgICAgICAgICAgc3RhdGUuX2pzUHJldHR5UHJpbnQub3BlbkJyYWNlVHJh
Y2tpbmdDb3VudCA9IDE7Ci0gICAgICAgICAgICB9IGVsc2UgaWYgKHN0YXRlLmxleGljYWwudHlw
ZSAhPT0gIn0iKSB7Ci0gICAgICAgICAgICAgICAgLy8gSW5jcmVhc2UgdGhlIGluZGVudCBjb3Vu
dC4gU2lnbmFsIGZvciBhIG5ld2xpbmUgYW5kIGluZGVudCBpZiBuZWVkZWQuCi0gICAgICAgICAg
ICAgICAgaWYgKCEobGFzdENvbnRlbnQgPT09ICJlbHNlIiAmJiBjb250ZW50ID09PSAiaWYiKSkg
ewotICAgICAgICAgICAgICAgICAgICBzdGF0ZS5fanNQcmV0dHlQcmludC5pbmRlbnRDb3VudCsr
OwotICAgICAgICAgICAgICAgICAgICBzdGF0ZS5fanNQcmV0dHlQcmludC5zaG91bGRJbmRlbnQg
PSB0cnVlOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBzdGF0ZS5sZXhpY2Fs
LnByZXYuX2pzUHJldHR5UHJpbnRNYXJrZXIgPSB0cnVlOwotICAgICAgICAgICAgICAgIGlmIChz
dGF0ZS5fanNQcmV0dHlQcmludC5lbnRlcmluZ0lmKQotICAgICAgICAgICAgICAgICAgICBzdGF0
ZS5fanNQcmV0dHlQcmludC5sYXN0SWZJbmRlbnRDb3VudCA9IHN0YXRlLl9qc1ByZXR0eVByaW50
LmluZGVudENvdW50IC0gMTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIC8v
IC0gTGVhdmluZzoKLSAgICAgICAgLy8gICAtIFByZWNvbmRpdGlvbnM6Ci0gICAgICAgIC8vICAg
ICAtIGlnbm9yZSAiOyIsIHdhaXQgZm9yIHRoZSBuZXh0IHRva2VuIGluc3RlYWQuCi0gICAgICAg
IC8vICAgLSBDYXNlczoKLSAgICAgICAgLy8gICAgIDEuICJlbHNlIgotICAgICAgICAvLyAgICAg
ICAtIGRlZGVudCB0byB0aGUgbGFzdCAiaWYiCi0gICAgICAgIC8vICAgICAyLiAifSIgYW5kIGFs
bCBicmFjZXMgd2Ugc2F3IGFyZSBiYWxhbmNlZAotICAgICAgICAvLyAgICAgICAtIGRlZGVudCB0
byB0aGUgbGFzdCAieyIKLSAgICAgICAgLy8gICAgIDMuIFRva2VuIHdpdGhvdXQgYSBtYXJrZXIg
b24gdGhlIHN0YWNrCi0gICAgICAgIC8vICAgICAgIC0gZGVkZW50IGFsbCB0aGUgd2F5Ci0gICAg
ICAgIGVsc2UgewotICAgICAgICAgICAgY29uc29sZS5hc3NlcnQoIXN0YXRlLl9qc1ByZXR0eVBy
aW50LnNob3VsZERlZGVudCk7Ci0gICAgICAgICAgICBjb25zb2xlLmFzc2VydCghc3RhdGUuX2pz
UHJldHR5UHJpbnQuZGVkZW50U2l6ZSk7Ci0KLSAgICAgICAgICAgIC8vIFRyYWNrICJ7IiBhbmQg
In0iIHRvIGtub3cgd2hlbiB0aGUgIn0iIGlzIHJlYWxseSBjbG9zaW5nIGEgYmxvY2suCi0gICAg
ICAgICAgICBpZiAoIWlzQ29tbWVudCkgewotICAgICAgICAgICAgICAgIGlmIChjb250ZW50ID09
PSAieyIpCi0gICAgICAgICAgICAgICAgICAgIHN0YXRlLl9qc1ByZXR0eVByaW50Lm9wZW5CcmFj
ZVRyYWNraW5nQ291bnQrKzsKLSAgICAgICAgICAgICAgICBlbHNlIGlmIChjb250ZW50ID09PSAi
fSIpCi0gICAgICAgICAgICAgICAgICAgIHN0YXRlLl9qc1ByZXR0eVByaW50Lm9wZW5CcmFjZVRy
YWNraW5nQ291bnQtLTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgaWYgKGNvbnRlbnQg
PT09ICI7IikgewotICAgICAgICAgICAgICAgIC8vIElnbm9yZS4KLSAgICAgICAgICAgIH0gZWxz
ZSBpZiAoY29udGVudCA9PT0gImVsc2UiKSB7Ci0gICAgICAgICAgICAgICAgLy8gRGVkZW50IHRv
IHRoZSBsYXN0ICJpZiIuCi0gICAgICAgICAgICAgICAgaWYgKGxhc3RDb250ZW50ICE9PSAifSIp
IHsKLSAgICAgICAgICAgICAgICAgICAgc3RhdGUuX2pzUHJldHR5UHJpbnQuc2hvdWxkRGVkZW50
ID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAgc3RhdGUuX2pzUHJldHR5UHJpbnQuZGVkZW50
U2l6ZSA9IHN0YXRlLl9qc1ByZXR0eVByaW50LmluZGVudENvdW50IC0gc3RhdGUuX2pzUHJldHR5
UHJpbnQubGFzdElmSW5kZW50Q291bnQ7Ci0gICAgICAgICAgICAgICAgICAgIHN0YXRlLl9qc1By
ZXR0eVByaW50Lmxhc3RJZkluZGVudENvdW50ID0gMDsKLSAgICAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICB9IGVsc2UgaWYgKGNvbnRlbnQgPT09ICJ9IiAmJiAhc3RhdGUuX2pzUHJldHR5UHJp
bnQub3BlbkJyYWNlVHJhY2tpbmdDb3VudCAmJiBzdGF0ZS5fanNQcmV0dHlQcmludC5vcGVuQnJh
Y2VTdGFydE1hcmtlcnMubGVuZ3RoKSB7Ci0gICAgICAgICAgICAgICAgLy8gRGVkZW50IHRvIHRo
ZSBsYXN0ICJ7Ii4KLSAgICAgICAgICAgICAgICB2YXIgc2F2ZWRTdGF0ZSA9IHN0YXRlLl9qc1By
ZXR0eVByaW50Lm9wZW5CcmFjZVN0YXJ0TWFya2Vycy5wb3AoKTsKLSAgICAgICAgICAgICAgICBz
dGF0ZS5fanNQcmV0dHlQcmludC5zaG91bGREZWRlbnQgPSB0cnVlOwotICAgICAgICAgICAgICAg
IHN0YXRlLl9qc1ByZXR0eVByaW50LmRlZGVudFNpemUgPSBzdGF0ZS5fanNQcmV0dHlQcmludC5p
bmRlbnRDb3VudCAtIHNhdmVkU3RhdGUuaW5kZW50Q291bnQ7Ci0gICAgICAgICAgICAgICAgc3Rh
dGUuX2pzUHJldHR5UHJpbnQub3BlbkJyYWNlVHJhY2tpbmdDb3VudCA9IHNhdmVkU3RhdGUub3Bl
bkJyYWNlVHJhY2tpbmdDb3VudDsKLSAgICAgICAgICAgICAgICBzdGF0ZS5fanNQcmV0dHlQcmlu
dC5sYXN0Q29udGVudEJlZm9yZUJsb2NrID0gc2F2ZWRTdGF0ZS5sYXN0Q29udGVudEJlZm9yZUJs
b2NrOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAvLyBEZWRlbnQgYWxs
IHRoZSB3YXkuCi0gICAgICAgICAgICAgICAgdmFyIHNob3VsZERlZGVudCA9IHRydWU7Ci0gICAg
ICAgICAgICAgICAgdmFyIGxleGljYWwgPSBzdGF0ZS5sZXhpY2FsLnByZXY7Ci0gICAgICAgICAg
ICAgICAgd2hpbGUgKGxleGljYWwpIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGxleGljYWwu
X2pzUHJldHR5UHJpbnRNYXJrZXIpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHNob3VsZERl
ZGVudCA9IGZhbHNlOwotICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgbGV4aWNhbCA9IGxleGljYWwucHJldjsK
LSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgaWYgKHNob3VsZERlZGVudCkgewot
ICAgICAgICAgICAgICAgICAgICBzdGF0ZS5fanNQcmV0dHlQcmludC5zaG91bGREZWRlbnQgPSB0
cnVlOwotICAgICAgICAgICAgICAgICAgICBzdGF0ZS5fanNQcmV0dHlQcmludC5kZWRlbnRTaXpl
ID0gc3RhdGUuX2pzUHJldHR5UHJpbnQuaW5kZW50Q291bnQ7Ci0gICAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgLy8gU2lnbmFsIGZvciB3aGVuIHdl
IHdpbGwgYmUgZW50ZXJpbmcgYW4gaWYuCi0gICAgICAgIGlmICh0b2tlbiAmJiBzdGF0ZS5sZXhp
Y2FsLnR5cGUgPT09ICJmb3JtIiAmJiBzdGF0ZS5sZXhpY2FsLnByZXYgJiYgc3RhdGUubGV4aWNh
bC5wcmV2ICE9PSAiZm9ybSIgJiYgL1xia2V5d29yZFxiLy50ZXN0KHRva2VuKSkKLSAgICAgICAg
ICAgIHN0YXRlLl9qc1ByZXR0eVByaW50LmVudGVyaW5nSWYgPSBjb250ZW50ID09PSAiaWYiOwot
ICAgIH0sCi0KLSAgICBtb2RpZnlTdGF0ZUZvclRva2VuUG9zdDogZnVuY3Rpb24obGFzdFRva2Vu
LCBsYXN0Q29udGVudCwgdG9rZW4sIHN0YXRlLCBjb250ZW50LCBpc0NvbW1lbnQpCi0gICAgewot
ICAgICAgICBpZiAoc3RhdGUuX2pzUHJldHR5UHJpbnQuc2hvdWxkSW5kZW50KQotICAgICAgICAg
ICAgc3RhdGUuX2pzUHJldHR5UHJpbnQuc2hvdWxkSW5kZW50ID0gZmFsc2U7Ci0KLSAgICAgICAg
aWYgKHN0YXRlLl9qc1ByZXR0eVByaW50LnNob3VsZERlZGVudCkgewotICAgICAgICAgICAgc3Rh
dGUuX2pzUHJldHR5UHJpbnQuaW5kZW50Q291bnQgLT0gc3RhdGUuX2pzUHJldHR5UHJpbnQuZGVk
ZW50U2l6ZTsKLSAgICAgICAgICAgIHN0YXRlLl9qc1ByZXR0eVByaW50LmRlZGVudFNpemUgPSAw
OwotICAgICAgICAgICAgc3RhdGUuX2pzUHJldHR5UHJpbnQuc2hvdWxkRGVkZW50ID0gZmFsc2U7
Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoKGNvbnRlbnQgPT09ICIrIiB8fCBjb250ZW50ID09
PSAiLSIgfHwgY29udGVudCA9PT0gIn4iKSAmJiAobGFzdENvbnRlbnQgPT09ICIpIiB8fCBsYXN0
Q29udGVudCA9PT0gIl0iIHx8IC9cYig/OnZhcmlhYmxlfG51bWJlcilcYi8udGVzdChsYXN0VG9r
ZW4pKSkKLSAgICAgICAgICAgIHN0YXRlLl9qc1ByZXR0eVByaW50LnVuYXJ5T3BlcmF0b3JIYWRM
ZWFkaW5nRXhwciA9IHRydWU7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHN0YXRlLl9qc1By
ZXR0eVByaW50LnVuYXJ5T3BlcmF0b3JIYWRMZWFkaW5nRXhwciA9IGZhbHNlOwotICAgIH0KLX0p
OwotCi1Db2RlTWlycm9yLmV4dGVuZE1vZGUoImNzcyIsIHsKLSAgICBzaG91bGRIYXZlU3BhY2VC
ZWZvcmVUb2tlbjogZnVuY3Rpb24obGFzdFRva2VuLCBsYXN0Q29udGVudCwgdG9rZW4sIHN0YXRl
LCBjb250ZW50LCBpc0NvbW1lbnQpCi0gICAgewotICAgICAgICBpZiAoIXRva2VuKSB7Ci0gICAg
ICAgICAgICBpZiAoY29udGVudCA9PT0gInsiKQotICAgICAgICAgICAgICAgIHJldHVybiB0cnVl
OwotICAgICAgICAgICAgcmV0dXJuICI+K34tKi8iLmluZGV4T2YoY29udGVudCkgPj0gMDsgLy8g
Y2FsYygpIGV4cHJlc3Npb24gb3IgY2hpbGQvc2libGluZyBzZWxlY3RvcnMKLSAgICAgICAgfQot
Ci0gICAgICAgIGlmIChpc0NvbW1lbnQpCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLQotICAg
ICAgICBpZiAoL1xia2V5d29yZFxiLy50ZXN0KHRva2VuKSkgewotICAgICAgICAgICAgaWYgKGNv
bnRlbnQuY2hhckF0KDApID09PSAiISIpIC8vICIhaW1wb3J0YW50Ii4KLSAgICAgICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQotCi0g
ICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9LAotCi0gICAgc2hvdWxkSGF2ZVNwYWNlQWZ0ZXJM
YXN0VG9rZW46IGZ1bmN0aW9uKGxhc3RUb2tlbiwgbGFzdENvbnRlbnQsIHRva2VuLCBzdGF0ZSwg
Y29udGVudCwgaXNDb21tZW50KQotICAgIHsKLSAgICAgICAgaWYgKCFsYXN0VG9rZW4pIHsKLSAg
ICAgICAgICAgIGlmIChsYXN0Q29udGVudCA9PT0gIiwiKQotICAgICAgICAgICAgICAgIHJldHVy
biB0cnVlOwotICAgICAgICAgICAgaWYgKGxhc3RDb250ZW50ID09PSAiOiIpIC8vIFNwYWNlIGlu
ICJwcm9wOiB2YWx1ZSIgYnV0IG5vdCBpbiBhIHNlbGVjdG9ycyAiYTpsaW5rIiBvciAiZGl2Ojph
ZnRlciIgb3IgbWVkaWEgcXVlcmllcyAiKG1heC1kZXZpY2Utd2lkdGg6NDgwcHgpIi4KLSAgICAg
ICAgICAgICAgICByZXR1cm4gc3RhdGUuc3RhdGUgPT09ICJwcm9wIjsKLSAgICAgICAgICAgIGlm
IChsYXN0Q29udGVudCA9PT0gIikiICYmIChjb250ZW50ICE9PSAiKSIgJiYgY29udGVudCAhPT0g
IiwiKSkgewotICAgICAgICAgICAgICAgIGlmICgvXGJudW1iZXJcYi8udGVzdCh0b2tlbikpIC8v
IGxpbmVhci1ncmFkaWVudChyZ2IoLi4uKTAlLHJnYiguLi4pMTAwJSkKLSAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgICAgICAgICAgaWYgKHN0YXRlLnN0YXRlID09PSAi
cHJvcCIpIC8vIC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSguLi4pdHJhbnNsYXRlKC4uLik7Ci0g
ICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICAgICAgICAgIGlmIChzdGF0
ZS5zdGF0ZSA9PT0gIm1lZGlhIiB8fCBzdGF0ZS5zdGF0ZSA9PT0gImF0QmxvY2tfcGFyZW5zIikg
Ly8gU3BhY2UgaW4gIm5vdChmb28pYW5kIiBidXQgbm90IGF0IHRoZSBlbmQgb2YgIm5vdChub3Qo
Zm9vKSkiCi0gICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsgLy8gY29sb3I6IHJnYiguLi4pOwotICAgICAgICAgICAgfQotICAgICAg
ICAgICAgcmV0dXJuICI+K34tKi8iLmluZGV4T2YobGFzdENvbnRlbnQpID49IDA7IC8vIGNhbGMo
KSBleHByZXNzaW9uIG9yIGNoaWxkL3NpYmxpbmcgc2VsZWN0b3JzCi0gICAgICAgIH0KLQotICAg
ICAgICBpZiAoL1xiY29tbWVudFxiLy50ZXN0KGxhc3RUb2tlbikpCi0gICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKLQotICAgICAgICBpZiAoL1xia2V5d29yZFxiLy50ZXN0KGxhc3RUb2tlbikpIC8v
IG1lZGlhLXF1ZXJ5IGtleXdvcmRzCi0gICAgICAgICAgICByZXR1cm4gc3RhdGUuc3RhdGUgPT09
ICJtZWRpYSIgfHwgKHN0YXRlLnN0YXRlID09PSAiYXRCbG9ja19wYXJlbnMiICYmIGNvbnRlbnQg
IT09ICIpIik7Ci0KLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0sCi0KLSAgICBuZXdsaW5l
c0FmdGVyVG9rZW46IGZ1bmN0aW9uKGxhc3RUb2tlbiwgbGFzdENvbnRlbnQsIHRva2VuLCBzdGF0
ZSwgY29udGVudCwgaXNDb21tZW50KQotICAgIHsKLSAgICAgICAgaWYgKCF0b2tlbikgewotICAg
ICAgICAgICAgaWYgKGNvbnRlbnQgPT09ICI7IikKLSAgICAgICAgICAgICAgICByZXR1cm4gMTsK
LSAgICAgICAgICAgIGlmIChjb250ZW50ID09PSAiLCIpIHsgLy8gImEsYixjLC4uLix6e30iIHJ1
bGUgbGlzdCBhdCB0b3AgbGV2ZWwgb3IgaW4gQG1lZGlhIHRvcCBsZXZlbCBhbmQgb25seSBpZiB0
aGUgbGluZSBsZW5ndGggd2lsbCBiZSBsYXJnZS4KLSAgICAgICAgICAgICAgICBpZiAoKHN0YXRl
LnN0YXRlID09PSAidG9wIiB8fCBzdGF0ZS5zdGF0ZSA9PT0gIm1lZGlhIikgJiYgc3RhdGUuX2Nz
c1ByZXR0eVByaW50LmxpbmVMZW5ndGggPiA2MCkgewotICAgICAgICAgICAgICAgICAgICBzdGF0
ZS5fY3NzUHJldHR5UHJpbnQubGluZUxlbmd0aCA9IDA7Ci0gICAgICAgICAgICAgICAgICAgIHJl
dHVybiAxOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICByZXR1cm4gMDsKLSAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChjb250ZW50ID09PSAieyIpCi0gICAgICAgICAg
ICAgICAgcmV0dXJuIDE7Ci0gICAgICAgICAgICBpZiAoY29udGVudCA9PT0gIn0iKSAvLyAyIG5l
d2xpbmVzIGJldHdlZW4gcnVsZSBkZWNsYXJhdGlvbnMuCi0gICAgICAgICAgICAgICAgcmV0dXJu
IDI7Ci0gICAgICAgICAgICByZXR1cm4gMDsKLSAgICAgICAgfQotCi0gICAgICAgIGlmIChpc0Nv
bW1lbnQpCi0gICAgICAgICAgICByZXR1cm4gMTsKLQotICAgICAgICByZXR1cm4gMDsKLSAgICB9
LAotCi0gICAgcmVtb3ZlTGFzdFdoaXRlc3BhY2U6IGZ1bmN0aW9uKGxhc3RUb2tlbiwgbGFzdENv
bnRlbnQsIHRva2VuLCBzdGF0ZSwgY29udGVudCwgaXNDb21tZW50KQotICAgIHsKLSAgICAgICAg
cmV0dXJuIGZhbHNlOwotICAgIH0sCi0KLSAgICByZW1vdmVMYXN0TmV3bGluZTogZnVuY3Rpb24o
bGFzdFRva2VuLCBsYXN0Q29udGVudCwgdG9rZW4sIHN0YXRlLCBjb250ZW50LCBpc0NvbW1lbnQs
IGZpcnN0VG9rZW5PbkxpbmUpCi0gICAgewotICAgICAgICBpZiAoaXNDb21tZW50KSB7IC8vIENv
bW1lbnQgYWZ0ZXIgc2VtaWNvbG9uLgotICAgICAgICAgICAgaWYgKCFmaXJzdFRva2VuT25MaW5l
ICYmIGxhc3RDb250ZW50ID09PSAiOyIpCi0gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0g
ICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gY29u
dGVudCA9PT0gIn0iICYmIChsYXN0Q29udGVudCA9PT0gInsiIHx8IGxhc3RDb250ZW50ID09PSAi
fSIpOyAvLyAie30iIGFuZCAifVxufSIgd2hlbiBjbG9zaW5nIEBtZWRpYS4KLSAgICB9LAotCi0g
ICAgaW5kZW50QWZ0ZXJUb2tlbjogZnVuY3Rpb24obGFzdFRva2VuLCBsYXN0Q29udGVudCwgdG9r
ZW4sIHN0YXRlLCBjb250ZW50LCBpc0NvbW1lbnQpCi0gICAgewotICAgICAgICByZXR1cm4gY29u
dGVudCA9PT0gInsiOwotICAgIH0sCi0KLSAgICBuZXdsaW5lQmVmb3JlVG9rZW46IGZ1bmN0aW9u
KGxhc3RUb2tlbiwgbGFzdENvbnRlbnQsIHRva2VuLCBzdGF0ZSwgY29udGVudCwgaXNDb21tZW50
KQotICAgIHsKLSAgICAgICAgcmV0dXJuIGNvbnRlbnQgPT09ICJ9IiAmJiAobGFzdENvbnRlbnQg
IT09ICJ7IiAmJiBsYXN0Q29udGVudCAhPT0gIn0iKTsgLy8gInt9IiBhbmQgIn1cbn0iIHdoZW4g
Y2xvc2luZyBAbWVkaWEuCi0gICAgfSwKLQotICAgIGluZGVudEJlZm9yZVRva2VuOiBmdW5jdGlv
bihsYXN0VG9rZW4sIGxhc3RDb250ZW50LCB0b2tlbiwgc3RhdGUsIGNvbnRlbnQsIGlzQ29tbWVu
dCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9LAotCi0gICAgZGVkZW50c0Jl
Zm9yZVRva2VuOiBmdW5jdGlvbihsYXN0VG9rZW4sIGxhc3RDb250ZW50LCB0b2tlbiwgc3RhdGUs
IGNvbnRlbnQsIGlzQ29tbWVudCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBjb250ZW50ID09PSAi
fSIgPyAxIDogMDsKLSAgICB9LAotCi0gICAgbW9kaWZ5U3RhdGVGb3JUb2tlblBvc3Q6IGZ1bmN0
aW9uKGxhc3RUb2tlbiwgbGFzdENvbnRlbnQsIHRva2VuLCBzdGF0ZSwgY29udGVudCwgaXNDb21t
ZW50KQotICAgIHsKLSAgICAgICAgaWYgKCFzdGF0ZS5fY3NzUHJldHR5UHJpbnQpCi0gICAgICAg
ICAgICBzdGF0ZS5fY3NzUHJldHR5UHJpbnQgPSB7bGluZUxlbmd0aDogMH07Ci0KLSAgICAgICAg
Ly8gSW4gb3JkZXIgaW5zZXJ0IG5ld2xpbmVzIGluIHNlbGVjdG9yIGxpc3RzIHdlIG5lZWQga2Vl
cCB0cmFjayBvZiB0aGUgbGVuZ3RoIG9mIHRoZSBjdXJyZW50IGxpbmUuCi0gICAgICAgIC8vIFRo
aXMgaXNuJ3QgZXhhY3QgbGluZSBsZW5ndGgsIG9ubHkgdGhlIGJ1aWxkZXIga25vd3MgdGhhdCwg
YnV0IGl0IGlzIGdvb2QgZW5vdWdoIHRvIGdldCBhbiBpZGVhLgotICAgICAgICAvLyBJZiB3ZSBh
cmUgYXQgYSB0b3AgbGV2ZWwsIGtlZXAgdHJhY2sgb2YgdGhlIGN1cnJlbnQgbGluZSBsZW5ndGgs
IG90aGVyd2lzZSB3ZSByZXNldCB0byAwLgotICAgICAgICBpZiAoIWlzQ29tbWVudCAmJiAoc3Rh
dGUuc3RhdGUgPT09ICJ0b3AiIHx8IHN0YXRlLnN0YXRlID09PSAibWVkaWEiIHx8IHN0YXRlLnN0
YXRlID09PSAicHNldWRvIikpCi0gICAgICAgICAgICBzdGF0ZS5fY3NzUHJldHR5UHJpbnQubGlu
ZUxlbmd0aCArPSBjb250ZW50Lmxlbmd0aDsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgc3Rh
dGUuX2Nzc1ByZXR0eVByaW50LmxpbmVMZW5ndGggPSAwOwotICAgIH0KLX0pOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVGV4dEVkaXRvci5q
cyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1RleHRFZGl0b3Iu
anMKaW5kZXggNjQ1Zjk3OTE2NDEuLjNlOWQ4MWNjYzBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9UZXh0RWRpdG9yLmpzCisrKyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1RleHRFZGl0b3IuanMKQEAgLTg1
MywxOSArODUzLDExIEBAIFdJLlRleHRFZGl0b3IgPSBjbGFzcyBUZXh0RWRpdG9yIGV4dGVuZHMg
V0kuVmlldwogCiAgICAgICAgICAgICBpZiAoIXByZXR0eSkKICAgICAgICAgICAgICAgICB0aGlz
Ll91bmRvRm9ybWF0dGluZyhiZWZvcmVQcmV0dHlQcmludFN0YXRlLCByZXNvbHZlKTsKLSAgICAg
ICAgICAgIGVsc2UgaWYgKHRoaXMuX2NhblVzZUZvcm1hdHRlcldvcmtlcigpKQorICAgICAgICAg
ICAgZWxzZQogICAgICAgICAgICAgICAgIHRoaXMuX3N0YXJ0V29ya2VyUHJldHR5UHJpbnQoYmVm
b3JlUHJldHR5UHJpbnRTdGF0ZSwgcmVzb2x2ZSk7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAg
ICAgICAgICAgdGhpcy5fc3RhcnRDb2RlTWlycm9yUHJldHR5UHJpbnQoYmVmb3JlUHJldHR5UHJp
bnRTdGF0ZSwgcmVzb2x2ZSk7CiAgICAgICAgIH0pOwogICAgIH0KIAotICAgIF9jYW5Vc2VGb3Jt
YXR0ZXJXb3JrZXIoKQotICAgIHsKLSAgICAgICAgbGV0IG1vZGUgPSB0aGlzLl9jb2RlTWlycm9y
LmdldE1vZGUoKS5uYW1lOwotICAgICAgICByZXR1cm4gbW9kZSA9PT0gImphdmFzY3JpcHQiIHx8
IG1vZGUgPT09ICJjc3MiOwotICAgIH0KLQogICAgIF9hdHRlbXB0VG9EZXRlcm1pbmVNSU1FVHlw
ZSgpCiAgICAgewogICAgICAgICBsZXQgc3RhcnRUaW1lID0gRGF0ZS5ub3coKTsKQEAgLTkwOSwy
MCArOTAxLDYgQEAgV0kuVGV4dEVkaXRvciA9IGNsYXNzIFRleHRFZGl0b3IgZXh0ZW5kcyBXSS5W
aWV3CiAgICAgICAgICAgICB3b3JrZXJQcm94eS5mb3JtYXRDU1Moc291cmNlVGV4dCwgaW5kZW50
U3RyaW5nLCBpbmNsdWRlU291cmNlTWFwRGF0YSwgZm9ybWF0Q2FsbGJhY2spOwogICAgIH0KIAot
ICAgIF9zdGFydENvZGVNaXJyb3JQcmV0dHlQcmludChiZWZvcmVQcmV0dHlQcmludFN0YXRlLCBj
YWxsYmFjaykKLSAgICB7Ci0gICAgICAgIGxldCBpbmRlbnRTdHJpbmcgPSBXSS5pbmRlbnRTdHJp
bmcoKTsKLSAgICAgICAgbGV0IHN0YXJ0ID0ge2xpbmU6IDAsIGNoOiAwfTsKLSAgICAgICAgbGV0
IGVuZCA9IHtsaW5lOiB0aGlzLl9jb2RlTWlycm9yLmxpbmVDb3VudCgpIC0gMX07Ci0gICAgICAg
IGxldCBidWlsZGVyID0gbmV3IEZvcm1hdHRlckNvbnRlbnRCdWlsZGVyKGluZGVudFN0cmluZyk7
Ci0gICAgICAgIGxldCBmb3JtYXR0ZXIgPSBuZXcgV0kuRm9ybWF0dGVyKHRoaXMuX2NvZGVNaXJy
b3IsIGJ1aWxkZXIpOwotICAgICAgICBmb3JtYXR0ZXIuZm9ybWF0KHN0YXJ0LCBlbmQpOwotCi0g
ICAgICAgIGxldCBmb3JtYXR0ZWRUZXh0ID0gYnVpbGRlci5mb3JtYXR0ZWRDb250ZW50OwotICAg
ICAgICBsZXQgc291cmNlTWFwRGF0YSA9IGJ1aWxkZXIuc291cmNlTWFwRGF0YTsKLSAgICAgICAg
dGhpcy5fZmluaXNoUHJldHR5UHJpbnQoYmVmb3JlUHJldHR5UHJpbnRTdGF0ZSwgZm9ybWF0dGVk
VGV4dCwgc291cmNlTWFwRGF0YSwgY2FsbGJhY2spOwotICAgIH0KLQogICAgIF9maW5pc2hQcmV0
dHlQcmludChiZWZvcmVQcmV0dHlQcmludFN0YXRlLCBmb3JtYXR0ZWRUZXh0LCBzb3VyY2VNYXBE
YXRhLCBjYWxsYmFjaykKICAgICB7CiAgICAgICAgIHRoaXMuX2NvZGVNaXJyb3Iub3BlcmF0aW9u
KCgpID0+IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9XZWJJbnNwZWN0b3JV
SS52Y3hwcm9qL1dlYkluc3BlY3RvclVJLnZjeHByb2ogYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
V2ViSW5zcGVjdG9yVUkudmN4cHJvai9XZWJJbnNwZWN0b3JVSS52Y3hwcm9qCmluZGV4IDEzZWJj
YmMzODg5Li4wZDIzMGY5YjU2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1dl
Ykluc3BlY3RvclVJLnZjeHByb2ovV2ViSW5zcGVjdG9yVUkudmN4cHJvagorKysgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvV2ViSW5zcGVjdG9yVUkudmN4cHJvai9XZWJJbnNwZWN0b3JVSS52Y3hw
cm9qCkBAIC0zMDYsNyArMzA2LDYgQEAKICAgICA8Tm9uZSBJbmNsdWRlPSIuLlxVc2VySW50ZXJm
YWNlXENvZGVNaXJyb3JDb21wbGV0aW9uQ29udHJvbGxlci5qcyIgLz4KICAgICA8Tm9uZSBJbmNs
dWRlPSIuLlxVc2VySW50ZXJmYWNlXENvZGVNaXJyb3JEcmFnVG9BbHRlck51bWJlckNvbnRyb2xs
ZXIuY3NzIiAvPgogICAgIDxOb25lIEluY2x1ZGU9Ii4uXFVzZXJJbnRlcmZhY2VcQ29kZU1pcnJv
ckRyYWdUb0FsdGVyTnVtYmVyQ29udHJvbGxlci5qcyIgLz4KLSAgICA8Tm9uZSBJbmNsdWRlPSIu
LlxVc2VySW50ZXJmYWNlXENvZGVNaXJyb3JGb3JtYXR0ZXJzLmpzIiAvPgogICAgIDxOb25lIElu
Y2x1ZGU9Ii4uXFVzZXJJbnRlcmZhY2VcQ29kZU1pcnJvck92ZXJyaWRlcy5jc3MiIC8+CiAgICAg
PE5vbmUgSW5jbHVkZT0iLi5cVXNlckludGVyZmFjZVxDb2RlTWlycm9yVG9rZW5UcmFja2luZ0Nv
bnRyb2xsZXIuY3NzIiAvPgogICAgIDxOb25lIEluY2x1ZGU9Ii4uXFVzZXJJbnRlcmZhY2VcQ29k
ZU1pcnJvclRva2VuVHJhY2tpbmdDb250cm9sbGVyLmpzIiAvPgpAQCAtNDQxLDcgKzQ0MCw2IEBA
CiAgICAgPE5vbmUgSW5jbHVkZT0iLi5cVXNlckludGVyZmFjZVxGb2xkZXJpemVkVHJlZUVsZW1l
bnQuanMiIC8+CiAgICAgPE5vbmUgSW5jbHVkZT0iLi5cVXNlckludGVyZmFjZVxGb250UmVzb3Vy
Y2VDb250ZW50Vmlldy5jc3MiIC8+CiAgICAgPE5vbmUgSW5jbHVkZT0iLi5cVXNlckludGVyZmFj
ZVxGb250UmVzb3VyY2VDb250ZW50Vmlldy5qcyIgLz4KLSAgICA8Tm9uZSBJbmNsdWRlPSIuLlxV
c2VySW50ZXJmYWNlXEZvcm1hdHRlci5qcyIgLz4KICAgICA8Tm9uZSBJbmNsdWRlPSIuLlxVc2Vy
SW50ZXJmYWNlXEZvcm1hdHRlckNvbnRlbnRCdWlsZGVyLmpzIiAvPgogICAgIDxOb25lIEluY2x1
ZGU9Ii4uXFVzZXJJbnRlcmZhY2VcRm9ybWF0dGVyU291cmNlTWFwLmpzIiAvPgogICAgIDxOb25l
IEluY2x1ZGU9Ii4uXFVzZXJJbnRlcmZhY2VcRnJhbWUuanMiIC8+CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvV2ViSW5zcGVjdG9yVUkudmN4cHJvai9XZWJJbnNwZWN0b3JVSS52
Y3hwcm9qLmZpbHRlcnMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvV2ViSW5zcGVjdG9yVUkudmN4
cHJvai9XZWJJbnNwZWN0b3JVSS52Y3hwcm9qLmZpbHRlcnMKaW5kZXggOGRiMWZiZWI1MWEuLjhk
ODMxMTQwNGFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvV2ViSW5zcGVjdG9y
VUkudmN4cHJvai9XZWJJbnNwZWN0b3JVSS52Y3hwcm9qLmZpbHRlcnMKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1dlYkluc3BlY3RvclVJLnZjeHByb2ovV2ViSW5zcGVjdG9yVUkudmN4cHJv
ai5maWx0ZXJzCkBAIC0xNjgsOSArMTY4LDYgQEAKICAgICA8Tm9uZSBJbmNsdWRlPSIuLlxVc2Vy
SW50ZXJmYWNlXENvZGVNaXJyb3JEcmFnVG9BbHRlck51bWJlckNvbnRyb2xsZXIuanMiPgogICAg
ICAgPEZpbHRlcj5Vc2VySW50ZXJmYWNlPC9GaWx0ZXI+CiAgICAgPC9Ob25lPgotICAgIDxOb25l
IEluY2x1ZGU9Ii4uXFVzZXJJbnRlcmZhY2VcQ29kZU1pcnJvckZvcm1hdHRlcnMuanMiPgotICAg
ICAgPEZpbHRlcj5Vc2VySW50ZXJmYWNlPC9GaWx0ZXI+Ci0gICAgPC9Ob25lPgogICAgIDxOb25l
IEluY2x1ZGU9Ii4uXFVzZXJJbnRlcmZhY2VcQ29kZU1pcnJvck92ZXJyaWRlcy5jc3MiPgogICAg
ICAgPEZpbHRlcj5Vc2VySW50ZXJmYWNlPC9GaWx0ZXI+CiAgICAgPC9Ob25lPgpAQCAtNTEwLDkg
KzUwNyw2IEBACiAgICAgPE5vbmUgSW5jbHVkZT0iLi5cVXNlckludGVyZmFjZVxGb250UmVzb3Vy
Y2VDb250ZW50Vmlldy5qcyI+CiAgICAgICA8RmlsdGVyPlVzZXJJbnRlcmZhY2U8L0ZpbHRlcj4K
ICAgICA8L05vbmU+Ci0gICAgPE5vbmUgSW5jbHVkZT0iLi5cVXNlckludGVyZmFjZVxGb3JtYXR0
ZXIuanMiPgotICAgICAgPEZpbHRlcj5Vc2VySW50ZXJmYWNlPC9GaWx0ZXI+Ci0gICAgPC9Ob25l
PgogICAgIDxOb25lIEluY2x1ZGU9Ii4uXFVzZXJJbnRlcmZhY2VcRm9ybWF0dGVyQ29udGVudEJ1
aWxkZXIuanMiPgogICAgICAgPEZpbHRlcj5Vc2VySW50ZXJmYWNlPC9GaWx0ZXI+CiAgICAgPC9O
b25lPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>378516</attachid>
            <date>2019-09-10 17:41:14 -0700</date>
            <delta_ts>2019-09-10 21:01:47 -0700</delta_ts>
            <desc>[PATCH] For Landing</desc>
            <filename>for-landing-2.patch</filename>
            <type>text/plain</type>
            <size>131325</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA4ZWQyNDQ1YTk4OS4uN2NmNmQ0OTJiNGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0OCBAQAor
MjAxOS0wOS0xMCAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgorCisgICAg
ICAgIFdlYiBJbnNwZWN0b3I6IFJlbW92ZSBsZWdhY3kgQ29kZU1pcnJvciBiYXNlZCBwcmV0dHkg
cHJpbnRlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIwMTYyNAorCisgICAgICAgIFJldmlld2VkIGJ5IERldmluIFJvdXNzby4KKworICAgICAgICAq
IGluc3BlY3Rvci9jb2RlbWlycm9yL3ByZXR0eXByaW50aW5nLWNzcy1leHBlY3RlZC50eHQ6IFJl
bW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2NvZGVtaXJyb3IvcHJldHR5cHJpbnRpbmctY3Nz
Lmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2NvZGVtaXJyb3IvcHJldHR5cHJp
bnRpbmctamF2YXNjcmlwdC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVj
dG9yL2NvZGVtaXJyb3IvcHJldHR5cHJpbnRpbmctamF2YXNjcmlwdC5odG1sOiBSZW1vdmVkLgor
ICAgICAgICAqIGluc3BlY3Rvci9jb2RlbWlycm9yL3Jlc291cmNlcy9wcmV0dHlwcmludGluZy9j
c3MtdGVzdHMvYmFzaWMtZXhwZWN0ZWQuY3NzOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rv
ci9jb2RlbWlycm9yL3Jlc291cmNlcy9wcmV0dHlwcmludGluZy9jc3MtdGVzdHMvYmFzaWMuY3Nz
OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9jb2RlbWlycm9yL3Jlc291cmNlcy9wcmV0
dHlwcmludGluZy9jc3MtdGVzdHMvY2FsYy1leHBlY3RlZC5jc3M6IFJlbW92ZWQuCisgICAgICAg
ICogaW5zcGVjdG9yL2NvZGVtaXJyb3IvcmVzb3VyY2VzL3ByZXR0eXByaW50aW5nL2Nzcy10ZXN0
cy9jYWxjLmNzczogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvY29kZW1pcnJvci9yZXNv
dXJjZXMvcHJldHR5cHJpbnRpbmcvY3NzLXRlc3RzL2dyYWRpZW50LWV4cGVjdGVkLmNzczogUmVt
b3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvY29kZW1pcnJvci9yZXNvdXJjZXMvcHJldHR5cHJp
bnRpbmcvY3NzLXRlc3RzL2dyYWRpZW50LmNzczogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0
b3IvY29kZW1pcnJvci9yZXNvdXJjZXMvcHJldHR5cHJpbnRpbmcvY3NzLXRlc3RzL2tleWZyYW1l
cy1leHBlY3RlZC5jc3M6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2NvZGVtaXJyb3Iv
cmVzb3VyY2VzL3ByZXR0eXByaW50aW5nL2Nzcy10ZXN0cy9rZXlmcmFtZXMuY3NzOiBSZW1vdmVk
LgorICAgICAgICAqIGluc3BlY3Rvci9jb2RlbWlycm9yL3Jlc291cmNlcy9wcmV0dHlwcmludGlu
Zy9jc3MtdGVzdHMvbWVkaWEtcXVlcnktZXhwZWN0ZWQuY3NzOiBSZW1vdmVkLgorICAgICAgICAq
IGluc3BlY3Rvci9jb2RlbWlycm9yL3Jlc291cmNlcy9wcmV0dHlwcmludGluZy9jc3MtdGVzdHMv
bWVkaWEtcXVlcnkuY3NzOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9jb2RlbWlycm9y
L3Jlc291cmNlcy9wcmV0dHlwcmludGluZy9jc3MtdGVzdHMvc2VsZWN0b3JzLWV4cGVjdGVkLmNz
czogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvY29kZW1pcnJvci9yZXNvdXJjZXMvcHJl
dHR5cHJpbnRpbmcvY3NzLXRlc3RzL3NlbGVjdG9ycy5jc3M6IFJlbW92ZWQuCisgICAgICAgICog
aW5zcGVjdG9yL2NvZGVtaXJyb3IvcmVzb3VyY2VzL3ByZXR0eXByaW50aW5nL2Nzcy10ZXN0cy93
cmFwcGluZy1leHBlY3RlZC5jc3M6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2NvZGVt
aXJyb3IvcmVzb3VyY2VzL3ByZXR0eXByaW50aW5nL2Nzcy10ZXN0cy93cmFwcGluZy5jc3M6IFJl
bW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2NvZGVtaXJyb3IvcmVzb3VyY2VzL3ByZXR0eXBy
aW50aW5nL2phdmFzY3JpcHQtdGVzdHMvYmxvY2stY29tbWVudC1leHBlY3RlZC5qczogUmVtb3Zl
ZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvY29kZW1pcnJvci9yZXNvdXJjZXMvcHJldHR5cHJpbnRp
bmcvamF2YXNjcmlwdC10ZXN0cy9ibG9jay1jb21tZW50LmpzOiBSZW1vdmVkLgorICAgICAgICAq
IGluc3BlY3Rvci9jb2RlbWlycm9yL3Jlc291cmNlcy9wcmV0dHlwcmludGluZy9qYXZhc2NyaXB0
LXRlc3RzL2RvLXdoaWxlLWxvb3AtZXhwZWN0ZWQuanM6IFJlbW92ZWQuCisgICAgICAgICogaW5z
cGVjdG9yL2NvZGVtaXJyb3IvcmVzb3VyY2VzL3ByZXR0eXByaW50aW5nL2phdmFzY3JpcHQtdGVz
dHMvZG8td2hpbGUtbG9vcC5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvY29kZW1p
cnJvci9yZXNvdXJjZXMvcHJldHR5cHJpbnRpbmcvamF2YXNjcmlwdC10ZXN0cy9kby13aGlsZS13
aXRoaW4taWYtZXhwZWN0ZWQuanM6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2NvZGVt
aXJyb3IvcmVzb3VyY2VzL3ByZXR0eXByaW50aW5nL2phdmFzY3JpcHQtdGVzdHMvZG8td2hpbGUt
d2l0aGluLWlmLmpzOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9jb2RlbWlycm9yL3Jl
c291cmNlcy9wcmV0dHlwcmludGluZy9qYXZhc2NyaXB0LXRlc3RzL2lmLWZvbGxvd2VkLWJ5LXdo
aWxlLWV4cGVjdGVkLmpzOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9jb2RlbWlycm9y
L3Jlc291cmNlcy9wcmV0dHlwcmludGluZy9qYXZhc2NyaXB0LXRlc3RzL2lmLWZvbGxvd2VkLWJ5
LXdoaWxlLmpzOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9jb2RlbWlycm9yL3Jlc291
cmNlcy9wcmV0dHlwcmludGluZy9qYXZhc2NyaXB0LXRlc3RzL2lmLXdoaWxlLXdpdGhpbi1kby13
aGlsZS1leHBlY3RlZC5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvY29kZW1pcnJv
ci9yZXNvdXJjZXMvcHJldHR5cHJpbnRpbmcvamF2YXNjcmlwdC10ZXN0cy9pZi13aGlsZS13aXRo
aW4tZG8td2hpbGUuanM6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2NvZGVtaXJyb3Iv
cmVzb3VyY2VzL3ByZXR0eXByaW50aW5nL2phdmFzY3JpcHQtdGVzdHMvc2luZ2xlLXN0YXRlbWVu
dC1ibG9ja3MtZXhwZWN0ZWQuanM6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2NvZGVt
aXJyb3IvcmVzb3VyY2VzL3ByZXR0eXByaW50aW5nL2phdmFzY3JpcHQtdGVzdHMvc2luZ2xlLXN0
YXRlbWVudC1ibG9ja3MuanM6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2NvZGVtaXJy
b3IvcmVzb3VyY2VzL3ByZXR0eXByaW50aW5nL2phdmFzY3JpcHQtdGVzdHMvc3dpdGNoLWNhc2Ut
ZGVmYXVsdC1leHBlY3RlZC5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvY29kZW1p
cnJvci9yZXNvdXJjZXMvcHJldHR5cHJpbnRpbmcvamF2YXNjcmlwdC10ZXN0cy9zd2l0Y2gtY2Fz
ZS1kZWZhdWx0LmpzOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9jb2RlbWlycm9yL3Jl
c291cmNlcy9wcmV0dHlwcmludGluZy9qYXZhc2NyaXB0LXRlc3RzL3VuYXJ5LWJpbmFyeS1vcGVy
YXRvcnMtZXhwZWN0ZWQuanM6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2NvZGVtaXJy
b3IvcmVzb3VyY2VzL3ByZXR0eXByaW50aW5nL2phdmFzY3JpcHQtdGVzdHMvdW5hcnktYmluYXJ5
LW9wZXJhdG9ycy5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvY29kZW1pcnJvci9y
ZXNvdXJjZXMvcHJldHR5cHJpbnRpbmcvamF2YXNjcmlwdC10ZXN0cy93aGlsZS13aXRoaW4tZG8t
d2hpbGUtZXhwZWN0ZWQuanM6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2NvZGVtaXJy
b3IvcmVzb3VyY2VzL3ByZXR0eXByaW50aW5nL2phdmFzY3JpcHQtdGVzdHMvd2hpbGUtd2l0aGlu
LWRvLXdoaWxlLmpzOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9jb2RlbWlycm9yL3Jl
c291cmNlcy9wcmV0dHlwcmludGluZy91dGlsaXRpZXMuanM6IFJlbW92ZWQuCisKIDIwMTktMDkt
MTAgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBTdG9wIHVzaW5n
IHRlc3RSdW5uZXIuc2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZF9ERVBSRUNBVEVEKCkgaW4gaHR0
cC90ZXN0cy9jb29raWVzL3ByaXZhdGUtY29va2llLXN0b3JhZ2UuaHRtbApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvZGVtaXJyb3IvcHJldHR5cHJpbnRpbmctY3NzLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb2RlbWlycm9yL3ByZXR0eXByaW50aW5n
LWNzcy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ3ZTZlNjU0
Y2MzLi4wMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29kZW1pcnJvci9w
cmV0dHlwcmludGluZy1jc3MtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMjUgKzAs
MCBAQAotVGVzdCBDU1MgcHJldHR5IHByaW50aW5nIHdpdGggQ29kZU1pcnJvci4KLQotCi09PSBS
dW5uaW5nIHRlc3Qgc3VpdGU6IENvZGVNaXJyb3IuUHJldHR5UHJpbnRpbmcuQ1NTCi0tLSBSdW5u
aW5nIHRlc3QgY2FzZTogQ29kZU1pcnJvci5QcmV0dHlQcmludGluZy5DU1MuYmFzaWMuY3NzCi1Q
QVNTCi0KLS0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBDb2RlTWlycm9yLlByZXR0eVByaW50aW5nLkNT
Uy5jYWxjLmNzcwotUEFTUwotCi0tLSBSdW5uaW5nIHRlc3QgY2FzZTogQ29kZU1pcnJvci5QcmV0
dHlQcmludGluZy5DU1MuZ3JhZGllbnQuY3NzCi1QQVNTCi0KLS0tIFJ1bm5pbmcgdGVzdCBjYXNl
OiBDb2RlTWlycm9yLlByZXR0eVByaW50aW5nLkNTUy5rZXlmcmFtZXMuY3NzCi1QQVNTCi0KLS0t
IFJ1bm5pbmcgdGVzdCBjYXNlOiBDb2RlTWlycm9yLlByZXR0eVByaW50aW5nLkNTUy5tZWRpYS1x
dWVyeS5jc3MKLVBBU1MKLQotLS0gUnVubmluZyB0ZXN0IGNhc2U6IENvZGVNaXJyb3IuUHJldHR5
UHJpbnRpbmcuQ1NTLnNlbGVjdG9ycy5jc3MKLVBBU1MKLQotLS0gUnVubmluZyB0ZXN0IGNhc2U6
IENvZGVNaXJyb3IuUHJldHR5UHJpbnRpbmcuQ1NTLndyYXBwaW5nLmNzcwotUEFTUwotCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29kZW1pcnJvci9wcmV0dHlwcmludGluZy1j
c3MuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb2RlbWlycm9yL3ByZXR0eXByaW50aW5n
LWNzcy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4YjBhNjk1YWQzZC4uMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvZGVtaXJyb3IvcHJldHR5cHJp
bnRpbmctY3NzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyOCArMCwwIEBACi08IURPQ1RZUEUg
aHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNw
ZWN0b3IvcmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvcHJldHR5cHJpbnRpbmcvdXRpbGl0aWVzLmpzIj48L3NjcmlwdD4KLTxzY3Jp
cHQ+Ci1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBsZXQgc3VpdGUgPSBJbnNwZWN0b3JUZXN0LmNy
ZWF0ZUFzeW5jU3VpdGUoIkNvZGVNaXJyb3IuUHJldHR5UHJpbnRpbmcuQ1NTIik7Ci0KLSAgICBh
ZGRQcmV0dHlQcmludGluZ1Rlc3RzKHN1aXRlLCAidGV4dC9jc3MiLCBbCi0gICAgICAgICJyZXNv
dXJjZXMvcHJldHR5cHJpbnRpbmcvY3NzLXRlc3RzL2Jhc2ljLmNzcyIsCi0gICAgICAgICJyZXNv
dXJjZXMvcHJldHR5cHJpbnRpbmcvY3NzLXRlc3RzL2NhbGMuY3NzIiwKLSAgICAgICAgInJlc291
cmNlcy9wcmV0dHlwcmludGluZy9jc3MtdGVzdHMvZ3JhZGllbnQuY3NzIiwKLSAgICAgICAgInJl
c291cmNlcy9wcmV0dHlwcmludGluZy9jc3MtdGVzdHMva2V5ZnJhbWVzLmNzcyIsCi0gICAgICAg
ICJyZXNvdXJjZXMvcHJldHR5cHJpbnRpbmcvY3NzLXRlc3RzL21lZGlhLXF1ZXJ5LmNzcyIsCi0g
ICAgICAgICJyZXNvdXJjZXMvcHJldHR5cHJpbnRpbmcvY3NzLXRlc3RzL3NlbGVjdG9ycy5jc3Mi
LAotICAgICAgICAicmVzb3VyY2VzL3ByZXR0eXByaW50aW5nL2Nzcy10ZXN0cy93cmFwcGluZy5j
c3MiLAotICAgIF0pOwotCi0gICAgc3VpdGUucnVuVGVzdENhc2VzQW5kRmluaXNoKCk7Ci19Ci08
L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPlRlc3QgQ1NT
IHByZXR0eSBwcmludGluZyB3aXRoIENvZGVNaXJyb3IuPC9wPgotPC9ib2R5PgotPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvZGVtaXJyb3IvcHJldHR5cHJpbnRp
bmctamF2YXNjcmlwdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29kZW1p
cnJvci9wcmV0dHlwcmludGluZy1qYXZhc2NyaXB0LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggYjY2ZGNmY2FjYTUuLjAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci9jb2RlbWlycm9yL3ByZXR0eXByaW50aW5nLWphdmFzY3JpcHQtZXhwZWN0
ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMzEgKzAsMCBAQAotVGVzdCBKYXZhU2NyaXB0IHBy
ZXR0eSBwcmludGluZyB3aXRoIENvZGVNaXJyb3IuCi0KLQotPT0gUnVubmluZyB0ZXN0IHN1aXRl
OiBDb2RlTWlycm9yLlByZXR0eVByaW50aW5nLkphdmFTY3JpcHQKLS0tIFJ1bm5pbmcgdGVzdCBj
YXNlOiBDb2RlTWlycm9yLlByZXR0eVByaW50aW5nLkphdmFTY3JpcHQuYmxvY2stY29tbWVudC5q
cwotUEFTUwotCi0tLSBSdW5uaW5nIHRlc3QgY2FzZTogQ29kZU1pcnJvci5QcmV0dHlQcmludGlu
Zy5KYXZhU2NyaXB0LnNpbmdsZS1zdGF0ZW1lbnQtYmxvY2tzLmpzCi1QQVNTCi0KLS0tIFJ1bm5p
bmcgdGVzdCBjYXNlOiBDb2RlTWlycm9yLlByZXR0eVByaW50aW5nLkphdmFTY3JpcHQuc3dpdGNo
LWNhc2UtZGVmYXVsdC5qcwotUEFTUwotCi0tLSBSdW5uaW5nIHRlc3QgY2FzZTogQ29kZU1pcnJv
ci5QcmV0dHlQcmludGluZy5KYXZhU2NyaXB0LnVuYXJ5LWJpbmFyeS1vcGVyYXRvcnMuanMKLVBB
U1MKLQotLS0gUnVubmluZyB0ZXN0IGNhc2U6IENvZGVNaXJyb3IuUHJldHR5UHJpbnRpbmcuSmF2
YVNjcmlwdC5kby13aGlsZS1sb29wLmpzCi1QQVNTCi0KLS0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBD
b2RlTWlycm9yLlByZXR0eVByaW50aW5nLkphdmFTY3JpcHQuaWYtZm9sbG93ZWQtYnktd2hpbGUu
anMKLVBBU1MKLQotLS0gUnVubmluZyB0ZXN0IGNhc2U6IENvZGVNaXJyb3IuUHJldHR5UHJpbnRp
bmcuSmF2YVNjcmlwdC53aGlsZS13aXRoaW4tZG8td2hpbGUuanMKLVBBU1MKLQotLS0gUnVubmlu
ZyB0ZXN0IGNhc2U6IENvZGVNaXJyb3IuUHJldHR5UHJpbnRpbmcuSmF2YVNjcmlwdC5pZi13aGls
ZS13aXRoaW4tZG8td2hpbGUuanMKLVBBU1MKLQotLS0gUnVubmluZyB0ZXN0IGNhc2U6IENvZGVN
aXJyb3IuUHJldHR5UHJpbnRpbmcuSmF2YVNjcmlwdC5kby13aGlsZS13aXRoaW4taWYuanMKLVBB
U1MKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvZGVtaXJyb3IvcHJldHR5
cHJpbnRpbmctamF2YXNjcmlwdC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvZGVtaXJy
b3IvcHJldHR5cHJpbnRpbmctamF2YXNjcmlwdC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBmOTJlYTBlODQzNC4uMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2NvZGVtaXJyb3IvcHJldHR5cHJpbnRpbmctamF2YXNjcmlwdC5odG1sCisrKyAvZGV2L251
bGwKQEAgLTEsMzAgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNj
cmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9pbnNwZWN0b3It
dGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3ByZXR0eXByaW50aW5n
L3V0aWxpdGllcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotZnVuY3Rpb24gdGVzdCgpCi17Ci0g
ICAgbGV0IHN1aXRlID0gSW5zcGVjdG9yVGVzdC5jcmVhdGVBc3luY1N1aXRlKCJDb2RlTWlycm9y
LlByZXR0eVByaW50aW5nLkphdmFTY3JpcHQiKTsKLQotICAgIGFkZFByZXR0eVByaW50aW5nVGVz
dHMoc3VpdGUsICJ0ZXh0L2phdmFzY3JpcHQiLCBbCi0gICAgICAgICJyZXNvdXJjZXMvcHJldHR5
cHJpbnRpbmcvamF2YXNjcmlwdC10ZXN0cy9ibG9jay1jb21tZW50LmpzIiwKLSAgICAgICAgInJl
c291cmNlcy9wcmV0dHlwcmludGluZy9qYXZhc2NyaXB0LXRlc3RzL3NpbmdsZS1zdGF0ZW1lbnQt
YmxvY2tzLmpzIiwKLSAgICAgICAgInJlc291cmNlcy9wcmV0dHlwcmludGluZy9qYXZhc2NyaXB0
LXRlc3RzL3N3aXRjaC1jYXNlLWRlZmF1bHQuanMiLAotICAgICAgICAicmVzb3VyY2VzL3ByZXR0
eXByaW50aW5nL2phdmFzY3JpcHQtdGVzdHMvdW5hcnktYmluYXJ5LW9wZXJhdG9ycy5qcyIsCi0g
ICAgICAgICJyZXNvdXJjZXMvcHJldHR5cHJpbnRpbmcvamF2YXNjcmlwdC10ZXN0cy9kby13aGls
ZS1sb29wLmpzIiwKLSAgICAgICAgInJlc291cmNlcy9wcmV0dHlwcmludGluZy9qYXZhc2NyaXB0
LXRlc3RzL2lmLWZvbGxvd2VkLWJ5LXdoaWxlLmpzIiwKLSAgICAgICAgInJlc291cmNlcy9wcmV0
dHlwcmludGluZy9qYXZhc2NyaXB0LXRlc3RzL3doaWxlLXdpdGhpbi1kby13aGlsZS5qcyIsCi0g
ICAgICAgICJyZXNvdXJjZXMvcHJldHR5cHJpbnRpbmcvamF2YXNjcmlwdC10ZXN0cy9pZi13aGls
ZS13aXRoaW4tZG8td2hpbGUuanMiLAotICAgICAgICAicmVzb3VyY2VzL3ByZXR0eXByaW50aW5n
L2phdmFzY3JpcHQtdGVzdHMvZG8td2hpbGUtd2l0aGluLWlmLmpzIiwKLSAgICBdKTsKLQotICAg
IHN1aXRlLnJ1blRlc3RDYXNlc0FuZEZpbmlzaCgpOwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08
Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD5UZXN0IEphdmFTY3JpcHQgcHJldHR5IHByaW50
aW5nIHdpdGggQ29kZU1pcnJvci48L3A+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvY29kZW1pcnJvci9yZXNvdXJjZXMvcHJldHR5cHJpbnRpbmcv
Y3NzLXRlc3RzL2Jhc2ljLWV4cGVjdGVkLmNzcyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb2Rl
bWlycm9yL3Jlc291cmNlcy9wcmV0dHlwcmludGluZy9jc3MtdGVzdHMvYmFzaWMtZXhwZWN0ZWQu
Y3NzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNGJhZmE4OWMxNy4uMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvZGVtaXJyb3IvcmVzb3VyY2VzL3ByZXR0
eXByaW50aW5nL2Nzcy10ZXN0cy9iYXNpYy1leHBlY3RlZC5jc3MKKysrIC9kZXYvbnVsbApAQCAt
MSw5NSArMCwwIEBACi0vKiBSRVNFVCAqLwotaHRtbCwgYm9keSwgZGl2LCB1bCwgb2wsIGxpLCBk
bCwgZHQsIGRkLCBoMSwgaDIsIGgzLCBoNCwgaDUsIGg2LCBwcmUsIGZvcm0sIHAsCi1ibG9ja3F1
b3RlLCBmaWVsZHNldCwgaW5wdXQsIGFiYnIsIGFydGljbGUsIGFzaWRlLCBjb21tYW5kLCBkZXRh
aWxzLAotZmlnY2FwdGlvbiwgZmlndXJlLCBmb290ZXIsIGhlYWRlciwgaGdyb3VwLCBtYXJrLCBt
ZXRlciwgbmF2LCBvdXRwdXQsCi1wcm9ncmVzcywgc2VjdGlvbiwgc3VtbWFyeSwgdGltZSB7Ci0g
ICAgbWFyZ2luOiAwOwotICAgIHBhZGRpbmc6IDA7Ci19Ci0KLWgxLCBoMiwgaDMsIGg0LCBoNSwg
aDYsIHByZSwgY29kZSwgYWRkcmVzcywgY2FwdGlvbiwgY2l0ZSwgY29kZSwgZW0sIHN0cm9uZywK
LXRoLCBmaWdjYXB0aW9uIHsKLSAgICBmb250LXNpemU6IDFlbTsKLSAgICBmb250LXdlaWdodDog
bm9ybWFsOwotICAgIGZvbnQtc3R5bGU6IG5vcm1hbDsKLX0KLQotZmllbGRzZXQsIGlmcmFtZSB7
Ci0gICAgYm9yZGVyOiBub25lCi19Ci0KLXRhYmxlIHsKLSAgICBib3JkZXItY29sbGFwc2U6IGNv
bGxhcHNlOwotICAgIGJvcmRlci1zcGFjaW5nOiAwCi19Ci0KLWFydGljbGUsIGFzaWRlLCBmb290
ZXIsIGhlYWRlciwgaGdyb3VwLCBuYXYsIHNlY3Rpb24sIGZpZ3VyZSwgZmlnY2FwdGlvbiB7Ci0g
ICAgZGlzcGxheTogYmxvY2s7Ci19Ci0KLS8qIEZJWE1FOiBleHRyYSB3aGl0ZXNwYWNlICovCi1j
YXB0aW9uICwgdGggewotICAgIHRleHQtYWxpZ246IGxlZnQ7Ci19Ci0KLS8qIElNUE9SVEFOVCAq
LwotLyogRklYTUU6IHdoaXRlc3BhY2UgYmV0d2VlbiAiISIgYW5kICJpbXBvcnRhbnQiIGNhbiBi
ZSBpbXByb3ZlZCAqLwotYm9keSB7Ci0gICAgY29sb3I6IHJlZCAhaW1wb3J0YW50OwotfQotCi1i
b2R5IHsKLSAgICBjb2xvcjogcmVkICFpbXBvcnRhbnQ7Ci19Ci0KLWJvZHkgewotICAgIGNvbG9y
OiByZWQgISBpbXBvcnRhbnQ7Ci19Ci0KLS8qIElOTElORSBDT01NRU5UICovCi1ib2R5IHsKLSAg
ICBjb2xvcjogcmVkOyAvKiBibHVlICovCi19Ci0KLS8qIFVSTFMgKi8KLS5teWltYWdlIHsKLSAg
ICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL2V4YW1wbGUuY29tL2ltYWdlLnBuZyksIHVy
bCh0d28ucG5nKQotfQotCi0ubXlpbWFnZSB7Ci0gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCJo
dHRwOi8vZXhhbXBsZS5jb20vaW1hZ2UucG5nIiksIHVybCgidHdvLnBuZyIpCi19Ci0KLS8qIFBS
RUZJWEVEIFNFTEVDVE9SUyBBTkQgUFJPUEVSVElFUyAqLwotLmZvbyAtd2Via2l0LWFueShhLCBi
LCBjKSB7Ci0gICAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGw7Ci0gICAgY29sb3I6IHJlZAotfQot
Ci0vKiBQU0VVRE8gU0VMRUNUT1JTICovCi1hOmxpbmssIGE6dmlzaXRlZCB7Ci0gICAgY29sb3I6
IGJsYWNrCi19Ci0KLS8qIFBTRVVETyBFTEVNRU5UUyAqLwotcDo6YmVmb3JlLCBwOjphZnRlciB7
Ci0gICAgY29udGVudDogInRlc3QiOwotfQotCi0vKiBSR0IsIEhTTCAqLwotYm9keSB7Ci0gICAg
Y29sb3I6IHJnYigxLCAxLCAxKTsKLSAgICBjb2xvcjogcmdiYSgxMDAsIDAsIDI1NSwgMC41KTsK
LSAgICBjb2xvcjogaHNsKDEyMCwgMTAwJSwgNTAlKTsKLSAgICBjb2xvcjogaHNsYSgxMjAsIDYw
JSwgNzAlLCAwLjMpOwotfQotCi0vKgotICogVGhpcyBpcyBhIG11bHRpLWxpbmUgY29tbWVudC4K
LSAqIC0gd2l0aCBpbmRlbnRhdGlvbgotICogLSBhbmQgaXMgZ2VuZXJhbGx5IGF3ZXNvbWUuCi0g
Ki8KLWJvZHkgewotICAgIGNvbG9yOiByZWQKLX0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2NvZGVtaXJyb3IvcmVzb3VyY2VzL3ByZXR0eXByaW50aW5nL2Nzcy10ZXN0cy9i
YXNpYy5jc3MgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29kZW1pcnJvci9yZXNvdXJjZXMvcHJl
dHR5cHJpbnRpbmcvY3NzLXRlc3RzL2Jhc2ljLmNzcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDkzOWY0OGU2MDcuLjAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9jb2RlbWlycm9yL3Jlc291cmNlcy9wcmV0dHlwcmludGluZy9jc3MtdGVzdHMvYmFzaWMuY3Nz
CisrKyAvZGV2L251bGwKQEAgLTEsNDEgKzAsMCBAQAotLyogUkVTRVQgKi8KLWh0bWwsYm9keSxk
aXYsdWwsb2wsbGksZGwsZHQsZGQsaDEsaDIsaDMsaDQsaDUsaDYscHJlLGZvcm0scCxibG9ja3F1
b3RlLGZpZWxkc2V0LGlucHV0LGFiYnIsYXJ0aWNsZSxhc2lkZSxjb21tYW5kLGRldGFpbHMsZmln
Y2FwdGlvbixmaWd1cmUsZm9vdGVyLGhlYWRlcixoZ3JvdXAsbWFyayxtZXRlcixuYXYsb3V0cHV0
LHByb2dyZXNzLHNlY3Rpb24sc3VtbWFyeSx0aW1lIHsgbWFyZ2luOiAwOyBwYWRkaW5nOiAwOyB9
Ci1oMSxoMixoMyxoNCxoNSxoNixwcmUsY29kZSxhZGRyZXNzLGNhcHRpb24sY2l0ZSxjb2RlLGVt
LHN0cm9uZyx0aCxmaWdjYXB0aW9uIHsgZm9udC1zaXplOiAxZW07IGZvbnQtd2VpZ2h0OiBub3Jt
YWw7IGZvbnQtc3R5bGU6IG5vcm1hbDsgfQotZmllbGRzZXQsaWZyYW1le2JvcmRlcjpub25lfQot
dGFibGV7Ym9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlO2JvcmRlci1zcGFjaW5nOjB9Ci1hcnRpY2xl
LGFzaWRlLGZvb3RlcixoZWFkZXIsaGdyb3VwLG5hdixzZWN0aW9uLGZpZ3VyZSxmaWdjYXB0aW9u
e2Rpc3BsYXk6IGJsb2NrO30KLQotLyogRklYTUU6IGV4dHJhIHdoaXRlc3BhY2UgKi8KLWNhcHRp
b24gICwgICB0aCB7IHRleHQtYWxpZ246IGxlZnQ7IH0KLQotLyogSU1QT1JUQU5UICovCi0vKiBG
SVhNRTogd2hpdGVzcGFjZSBiZXR3ZWVuICIhIiBhbmQgImltcG9ydGFudCIgY2FuIGJlIGltcHJv
dmVkICovCi1ib2R5e2NvbG9yOnJlZCFpbXBvcnRhbnQ7fQotYm9keXtjb2xvcjpyZWQgIWltcG9y
dGFudDt9Ci1ib2R5e2NvbG9yOnJlZCAhIGltcG9ydGFudDt9Ci0KLS8qIElOTElORSBDT01NRU5U
ICovCi1ib2R5e2NvbG9yOnJlZDsvKiBibHVlICovfQotCi0vKiBVUkxTICovCi0ubXlpbWFnZXti
YWNrZ3JvdW5kLWltYWdlOnVybChodHRwOi8vZXhhbXBsZS5jb20vaW1hZ2UucG5nKSx1cmwodHdv
LnBuZyl9Ci0ubXlpbWFnZXtiYWNrZ3JvdW5kLWltYWdlOnVybCgiaHR0cDovL2V4YW1wbGUuY29t
L2ltYWdlLnBuZyIpLHVybCgidHdvLnBuZyIpfQotCi0vKiBQUkVGSVhFRCBTRUxFQ1RPUlMgQU5E
IFBST1BFUlRJRVMgKi8KLS5mb28gLXdlYmtpdC1hbnkoYSxiLGMpey13ZWJraXQtdHJhbnNpdGlv
bjphbGw7Y29sb3I6cmVkfQotCi0vKiBQU0VVRE8gU0VMRUNUT1JTICovCi1hOmxpbmssYTp2aXNp
dGVke2NvbG9yOmJsYWNrfQotCi0vKiBQU0VVRE8gRUxFTUVOVFMgKi8KLXA6OmJlZm9yZSxwOjph
ZnRlcntjb250ZW50OiJ0ZXN0Ijt9Ci0KLS8qIFJHQiwgSFNMICovCi1ib2R5e2NvbG9yOnJnYigx
LDEsMSk7Y29sb3I6cmdiYSgxMDAsMCwyNTUsMC41KTtjb2xvcjpoc2woMTIwLDEwMCUsNTAlKTtj
b2xvcjpoc2xhKDEyMCw2MCUsNzAlLDAuMyk7fQotCi0vKgotICogVGhpcyBpcyBhIG11bHRpLWxp
bmUgY29tbWVudC4KLSAqIC0gd2l0aCBpbmRlbnRhdGlvbgotICogLSBhbmQgaXMgZ2VuZXJhbGx5
IGF3ZXNvbWUuCi0gKi8KLWJvZHl7Y29sb3I6cmVkfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2NvZGVtaXJyb3IvcmVzb3VyY2VzL3ByZXR0eXByaW50aW5nL2Nzcy10ZXN0cy9j
YWxjLWV4cGVjdGVkLmNzcyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb2RlbWlycm9yL3Jlc291
cmNlcy9wcmV0dHlwcmludGluZy9jc3MtdGVzdHMvY2FsYy1leHBlY3RlZC5jc3MKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM0ZGUzMzhhZTVmLi4wMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvY29kZW1pcnJvci9yZXNvdXJjZXMvcHJldHR5cHJpbnRpbmcvY3Nz
LXRlc3RzL2NhbGMtZXhwZWN0ZWQuY3NzCisrKyAvZGV2L251bGwKQEAgLTEsMjIgKzAsMCBAQAot
LyogQ0FMQyBFWFBSRVNTSU9OUyAqLwotLyogRklYTUU6IG5lZ2F0aXZlIG51bWJlcnMgY2FuIGJl
IGltcHJvdmVkICovCi1kaXYgewotICAgIHdpZHRoOiAtd2Via2l0LWNhbGMoMTAwJSArIDgwcHgg
KyAxZW0pOwotfQotCi1kaXYgewotICAgIHdpZHRoOiAtd2Via2l0LWNhbGMoMTAwJSAvIDYpOwot
fQotCi1kaXYgewotICAgIHdpZHRoOiAtd2Via2l0LWNhbGMoMTAlICogNik7Ci19Ci0KLWRpdiB7
Ci0gICAgd2lkdGg6IGNhbGMoLTk2MHB4ICsgNzUlKTsKLX0KLQotZGl2IHsKLSAgICB3aWR0aDog
Y2FsYygxMDB2dy01MHZ3KTsKLX0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2NvZGVtaXJyb3IvcmVzb3VyY2VzL3ByZXR0eXByaW50aW5nL2Nzcy10ZXN0cy9jYWxjLmNzcyBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9jb2RlbWlycm9yL3Jlc291cmNlcy9wcmV0dHlwcmludGlu
Zy9jc3MtdGVzdHMvY2FsYy5jc3MKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI1ZDY4
ZDE3ZDBmLi4wMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29kZW1pcnJv
ci9yZXNvdXJjZXMvcHJldHR5cHJpbnRpbmcvY3NzLXRlc3RzL2NhbGMuY3NzCisrKyAvZGV2L251
bGwKQEAgLTEsNyArMCwwIEBACi0vKiBDQUxDIEVYUFJFU1NJT05TICovCi0vKiBGSVhNRTogbmVn
YXRpdmUgbnVtYmVycyBjYW4gYmUgaW1wcm92ZWQgKi8KLWRpdnt3aWR0aDotd2Via2l0LWNhbGMo
MTAwJSs4MHB4KzFlbSk7fQotZGl2e3dpZHRoOi13ZWJraXQtY2FsYygxMDAlLzYpO30KLWRpdnt3
aWR0aDotd2Via2l0LWNhbGMoMTAlKjYpO30KLWRpdnt3aWR0aDpjYWxjKC05NjBweCs3NSUpO30K
LWRpdnt3aWR0aDpjYWxjKDEwMHZ3LTUwdncpO30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9jb2RlbWlycm9yL3Jlc291cmNlcy9wcmV0dHlwcmludGluZy9jc3MtdGVzdHMvZ3Jh
ZGllbnQtZXhwZWN0ZWQuY3NzIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvZGVtaXJyb3IvcmVz
b3VyY2VzL3ByZXR0eXByaW50aW5nL2Nzcy10ZXN0cy9ncmFkaWVudC1leHBlY3RlZC5jc3MKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDczMzU4MTczNDA3Li4wMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29kZW1pcnJvci9yZXNvdXJjZXMvcHJldHR5cHJpbnRp
bmcvY3NzLXRlc3RzL2dyYWRpZW50LWV4cGVjdGVkLmNzcworKysgL2Rldi9udWxsCkBAIC0xLDkg
KzAsMCBAQAotLmRvdC1uYXY6bnRoLWNoaWxkKDFuKSBsaSBhLmFjdGl2ZSB7Ci0gICAgdG9wOiAw
OwotICAgIGJhY2tncm91bmQ6ICMwOGM7Ci0gICAgYmFja2dyb3VuZDogLXdlYmtpdC1ncmFkaWVu
dChsaW5lYXIsIGxlZnR0b3AsIGxlZnRib3R0b20sIGNvbG9yLXN0b3AoMCUsIHJnYigxMjYsIDE5
OCwgMjM0KSksIGNvbG9yLXN0b3AoMjQlLCByZ2IoNzAsIDE3OSwgMjM0KSksIGNvbG9yLXN0b3Ao
MTAwJSwgcmdiKDMsIDEzNSwgMjAxKSkpOwotICAgIGJhY2tncm91bmQ6IC13ZWJraXQtbGluZWFy
LWdyYWRpZW50KHRvcCwgcmdiKDEyNiwgMTk4LCAyMzQpIDAlLCByZ2IoNzAsIDE3OSwgMjM0KSA0
NSUsIHJnYigzLCAxMzUsIDIwMSkgMTAwJSk7Ci0gICAgYmFja2dyb3VuZDogLW1vei1saW5lYXIt
Z3JhZGllbnQodG9wLCByZ2IoMTI2LCAxOTgsIDIzNCkgMCUsIHJnYig3MCwgMTc5LCAyMzQpIDQ1
JSwgcmdiKDMsIDEzNSwgMjAxKSAxMDAlKTsKLSAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGll
bnQodG9wLCByZ2IoMTI2LCAxOTgsIDIzNCkgMCUsIHJnYig3MCwgMTc5LCAyMzQpIDQ1JSwgcmdi
KDMsIDEzNSwgMjAxKSAxMDAlKTsKLX0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2NvZGVtaXJyb3IvcmVzb3VyY2VzL3ByZXR0eXByaW50aW5nL2Nzcy10ZXN0cy9ncmFkaWVu
dC5jc3MgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29kZW1pcnJvci9yZXNvdXJjZXMvcHJldHR5
cHJpbnRpbmcvY3NzLXRlc3RzL2dyYWRpZW50LmNzcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggZjM1NjJhZDRhODcuLjAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9jb2RlbWlycm9yL3Jlc291cmNlcy9wcmV0dHlwcmludGluZy9jc3MtdGVzdHMvZ3JhZGllbnQu
Y3NzCisrKyAvZGV2L251bGwKQEAgLTEsNyArMCwwIEBACi0uZG90LW5hdjpudGgtY2hpbGQoMW4p
IGxpIGEuYWN0aXZlIHsKLSAgICB0b3A6MDtiYWNrZ3JvdW5kOiMwOGM7Ci0JYmFja2dyb3VuZDot
d2Via2l0LWdyYWRpZW50KGxpbmVhcixsZWZ0dG9wLGxlZnRib3R0b20sY29sb3Itc3RvcCgwJSxy
Z2IoMTI2LDE5OCwyMzQpKSxjb2xvci1zdG9wKDI0JSxyZ2IoNzAsMTc5LDIzNCkpLGNvbG9yLXN0
b3AoMTAwJSxyZ2IoMywxMzUsMjAxKSkpOwotCWJhY2tncm91bmQ6LXdlYmtpdC1saW5lYXItZ3Jh
ZGllbnQodG9wLHJnYigxMjYsMTk4LDIzNCkwJSxyZ2IoNzAsMTc5LDIzNCk0NSUscmdiKDMsMTM1
LDIwMSkxMDAlKTsKLQliYWNrZ3JvdW5kOiAgIC1tb3otbGluZWFyLWdyYWRpZW50KHRvcCxyZ2Io
MTI2LDE5OCwyMzQpMCUscmdiKDcwLDE3OSwyMzQpNDUlLHJnYigzLDEzNSwyMDEpMTAwJSk7Ci0J
YmFja2dyb3VuZDogICAgICAgIGxpbmVhci1ncmFkaWVudCh0b3AscmdiKDEyNiwxOTgsMjM0KTAl
LHJnYig3MCwxNzksMjM0KTQ1JSxyZ2IoMywxMzUsMjAxKTEwMCUpOwotfQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvZGVtaXJyb3IvcmVzb3VyY2VzL3ByZXR0eXByaW50aW5n
L2Nzcy10ZXN0cy9rZXlmcmFtZXMtZXhwZWN0ZWQuY3NzIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2NvZGVtaXJyb3IvcmVzb3VyY2VzL3ByZXR0eXByaW50aW5nL2Nzcy10ZXN0cy9rZXlmcmFtZXMt
ZXhwZWN0ZWQuY3NzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNzEwNjcyMDQ0Ny4u
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvZGVtaXJyb3IvcmVzb3Vy
Y2VzL3ByZXR0eXByaW50aW5nL2Nzcy10ZXN0cy9rZXlmcmFtZXMtZXhwZWN0ZWQuY3NzCisrKyAv
ZGV2L251bGwKQEAgLTEsMTAgKzAsMCBAQAotQC13ZWJraXQta2V5ZnJhbWVzIHNwaW4gewotICAg
IDAlIHsKLSAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgtMTgwZGVnKSB0cmFuc2xh
dGUoMHB4LCAwcHgpOwotICAgIH0KLQotICAgIDEwMCUgewotICAgICAgICAtd2Via2l0LXRyYW5z
Zm9ybTogcm90YXRlKDE4MGRlZykgdHJhbnNsYXRlKDEwcHgsIDc1cHgpOwotICAgIH0KLX0KLQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvZGVtaXJyb3IvcmVzb3VyY2VzL3By
ZXR0eXByaW50aW5nL2Nzcy10ZXN0cy9rZXlmcmFtZXMuY3NzIGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2NvZGVtaXJyb3IvcmVzb3VyY2VzL3ByZXR0eXByaW50aW5nL2Nzcy10ZXN0cy9rZXlmcmFt
ZXMuY3NzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiZDg4YjU2Y2M0OS4uMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvZGVtaXJyb3IvcmVzb3VyY2VzL3By
ZXR0eXByaW50aW5nL2Nzcy10ZXN0cy9rZXlmcmFtZXMuY3NzCisrKyAvZGV2L251bGwKQEAgLTEg
KzAsMCBAQAotQC13ZWJraXQta2V5ZnJhbWVzIHNwaW57MCV7LXdlYmtpdC10cmFuc2Zvcm06cm90
YXRlKC0xODBkZWcpdHJhbnNsYXRlKDBweCwwcHgpO30xMDAley13ZWJraXQtdHJhbnNmb3JtOnJv
dGF0ZSgxODBkZWcpdHJhbnNsYXRlKDEwcHgsNzVweCk7fX0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci9jb2RlbWlycm9yL3Jlc291cmNlcy9wcmV0dHlwcmludGluZy9jc3MtdGVz
dHMvbWVkaWEtcXVlcnktZXhwZWN0ZWQuY3NzIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvZGVt
aXJyb3IvcmVzb3VyY2VzL3ByZXR0eXByaW50aW5nL2Nzcy10ZXN0cy9tZWRpYS1xdWVyeS1leHBl
Y3RlZC5jc3MKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJhZDIyOWI1MzU1Li4wMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29kZW1pcnJvci9yZXNvdXJjZXMv
cHJldHR5cHJpbnRpbmcvY3NzLXRlc3RzL21lZGlhLXF1ZXJ5LWV4cGVjdGVkLmNzcworKysgL2Rl
di9udWxsCkBAIC0xLDM1ICswLDAgQEAKLS8qIE1FRElBIFFVRVJZIElOREVOVEFUSU9OICovCi1A
bWVkaWEgcHJpbnQgewotICAgIGJvZHksICNtYWluLCAjY29udGVudCB7Ci0gICAgICAgIGNvbG9y
OiAjMDAwICFpbXBvcnRhbnQ7Ci0gICAgfQotCi0gICAgYSwgYTpsaW5rLCBhOnZpc2l0ZWQgewot
ICAgICAgICBjb2xvcjogIzAwMCAhaW1wb3J0YW50OwotICAgICAgICB0ZXh0LWRlY29yYXRpb246
IG5vbmUgIWltcG9ydGFudDsKLSAgICB9Ci0KLSAgICAjdGFicywgI2dsb2JhbGhlYWRlciwgI2ds
b2JhbGZvb3RlciwgI2RpcmVjdG9yeW5hdiwgLm5vcHJpbnQsIC5oaWRlIHsKLSAgICAgICAgZGlz
cGxheTogbm9uZSAhaW1wb3J0YW50OwotICAgIH0KLQotICAgICNtYWluIGEucGRmLCAjbWFpbiBh
Lmh0bWwsICNtYWluIGEucXQsICNtYWluIGEuaWNhbCwgI21haW4gYS5kbCwgI21haW4gYS5kbWcs
Ci0gICAgI21haW4gYS56aXAsICNtYWluIGEua2V5bm90ZSwgI21haW4gYS5hdWRpbyB7Ci0gICAg
ICAgIHBhZGRpbmctbGVmdDogMDsKLSAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTsKLSAg
ICB9Ci19Ci0KLS8qIE1FRElBIFFVRVJZICovCi1AbWVkaWEgc2NyZWVuIGFuZCAobWF4LWRldmlj
ZS13aWR0aDo0ODBweCkgewotICAgIGh0bWwgewotICAgICAgICAtd2Via2l0LXRleHQtc2l6ZS1h
ZGp1c3Q6IG5vbmU7Ci0gICAgfQotfQotCi1AbWVkaWEgbm90ICgoc2NyZWVuKSBhbmQgKHByaW50
KSksIChwcmludCkgewotICAgIGJvZHkgewotICAgICAgICBjb2xvcjogcmVkCi0gICAgfQotfQot
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29kZW1pcnJvci9yZXNvdXJjZXMv
cHJldHR5cHJpbnRpbmcvY3NzLXRlc3RzL21lZGlhLXF1ZXJ5LmNzcyBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9jb2RlbWlycm9yL3Jlc291cmNlcy9wcmV0dHlwcmludGluZy9jc3MtdGVzdHMvbWVk
aWEtcXVlcnkuY3NzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiODZiY2ZmYzA5YS4u
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvZGVtaXJyb3IvcmVzb3Vy
Y2VzL3ByZXR0eXByaW50aW5nL2Nzcy10ZXN0cy9tZWRpYS1xdWVyeS5jc3MKKysrIC9kZXYvbnVs
bApAQCAtMSw2ICswLDAgQEAKLS8qIE1FRElBIFFVRVJZIElOREVOVEFUSU9OICovCi1AbWVkaWEg
cHJpbnR7Ym9keSwjbWFpbiwjY29udGVudHtjb2xvcjojMDAwIWltcG9ydGFudDt9YSxhOmxpbmss
YTp2aXNpdGVke2NvbG9yOiMwMDAhaW1wb3J0YW50O3RleHQtZGVjb3JhdGlvbjpub25lIWltcG9y
dGFudDt9I3RhYnMsI2dsb2JhbGhlYWRlciwjZ2xvYmFsZm9vdGVyLCNkaXJlY3RvcnluYXYsLm5v
cHJpbnQsLmhpZGV7ZGlzcGxheTpub25lIWltcG9ydGFudDt9I21haW4gYS5wZGYsI21haW4gYS5o
dG1sLCNtYWluIGEucXQsI21haW4gYS5pY2FsLCNtYWluIGEuZGwsI21haW4gYS5kbWcsI21haW4g
YS56aXAsI21haW4gYS5rZXlub3RlLCNtYWluIGEuYXVkaW97cGFkZGluZy1sZWZ0OjA7YmFja2dy
b3VuZC1pbWFnZTpub25lO319Ci0KLS8qIE1FRElBIFFVRVJZICovCi1AbWVkaWEgc2NyZWVuIGFu
ZChtYXgtZGV2aWNlLXdpZHRoOjQ4MHB4KXtodG1sey13ZWJraXQtdGV4dC1zaXplLWFkanVzdDpu
b25lO319Ci1AbWVkaWEgbm90KChzY3JlZW4pYW5kKHByaW50KSksKHByaW50KXtib2R5e2NvbG9y
OnJlZH19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29kZW1pcnJvci9yZXNv
dXJjZXMvcHJldHR5cHJpbnRpbmcvY3NzLXRlc3RzL3NlbGVjdG9ycy1leHBlY3RlZC5jc3MgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvY29kZW1pcnJvci9yZXNvdXJjZXMvcHJldHR5cHJpbnRpbmcv
Y3NzLXRlc3RzL3NlbGVjdG9ycy1leHBlY3RlZC5jc3MKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDJlMDA3ZjkzZDU3Li4wMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvY29kZW1pcnJvci9yZXNvdXJjZXMvcHJldHR5cHJpbnRpbmcvY3NzLXRlc3RzL3NlbGVjdG9y
cy1leHBlY3RlZC5jc3MKKysrIC9kZXYvbnVsbApAQCAtMSw4ICswLDAgQEAKLS8qIFNIT1JUIFNF
TEVDVE9SLCBFTVBUWSBDT05URU5UICovCi1hIHt9Ci0KLS8qIENPTVBMRVggU0VMRUNUT1IgKi8K
LWRpdiBkaXYgPiBkaXYjaWQuZm9vLmJhcjpob3ZlciAuc29tZXRoaW5nID4gLmNoaWxkIH4gLnNp
YmxpbmcgKyAuc2libGluZzo6YWZ0ZXIgewotICAgIGNvbG9yOiByZWQ7Ci19Ci0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb2RlbWlycm9yL3Jlc291cmNlcy9wcmV0dHlwcmlu
dGluZy9jc3MtdGVzdHMvc2VsZWN0b3JzLmNzcyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb2Rl
bWlycm9yL3Jlc291cmNlcy9wcmV0dHlwcmludGluZy9jc3MtdGVzdHMvc2VsZWN0b3JzLmNzcwpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWEzZWY3YzRiNDcuLjAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb2RlbWlycm9yL3Jlc291cmNlcy9wcmV0dHlwcmlu
dGluZy9jc3MtdGVzdHMvc2VsZWN0b3JzLmNzcworKysgL2Rldi9udWxsCkBAIC0xLDUgKzAsMCBA
QAotLyogU0hPUlQgU0VMRUNUT1IsIEVNUFRZIENPTlRFTlQgKi8KLWF7fQotCi0vKiBDT01QTEVY
IFNFTEVDVE9SICovCi1kaXYgZGl2PmRpdiNpZC5mb28uYmFyOmhvdmVyIC5zb21ldGhpbmc+LmNo
aWxkfi5zaWJsaW5nKy5zaWJsaW5nOjphZnRlcntjb2xvcjpyZWQ7fQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2NvZGVtaXJyb3IvcmVzb3VyY2VzL3ByZXR0eXByaW50aW5nL2Nz
cy10ZXN0cy93cmFwcGluZy1leHBlY3RlZC5jc3MgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29k
ZW1pcnJvci9yZXNvdXJjZXMvcHJldHR5cHJpbnRpbmcvY3NzLXRlc3RzL3dyYXBwaW5nLWV4cGVj
dGVkLmNzcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTNjMGJkMmY0ODguLjAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb2RlbWlycm9yL3Jlc291cmNlcy9w
cmV0dHlwcmludGluZy9jc3MtdGVzdHMvd3JhcHBpbmctZXhwZWN0ZWQuY3NzCisrKyAvZGV2L251
bGwKQEAgLTEsMjEgKzAsMCBAQAotLyogTE9ORyBMSVNUUyBTSE9VTEQgV1JBUCAqLwotYS5icm93
c2V3ZWJhcHBzcywgYS5idXNpbmVzc3N0b3JlcywgYS5idXlpcGhvbmVzLCBhLmJ1eW5vd3MsIGEu
YnV5bm93cy1hcnJvdywKLWEuY29taW5nc29vbnMsIHA6OmJlZm9yZSwgYS5kZXNjYXJnYXJhaG9y
YXMsIGEuZG93bmxvYWRpdHVuZXNzLCBhLmRvd25sb2Fkbm93cywKLWEuZmluZHMsIGEuZnJlZXRy
aWFscywgYS5nZXRzdGFydGVkcywgYS5nb3MsIGEuaG93dG9hcHBseXMsIGEuaG93dG9idXlzLAot
YS5qb2lubm93cywgYS5sZWFybm1vcmVzLCBhLm5pa2VidXlub3dzLCBhLm5vdGlmeW1lcywgYS5v
cmRlcm5vd3MsCi1hLnByZW9yZGVybm93cywgYS5wcmVvcmRlcnMsIGEucmVzZXJ2ZXMsIGEuc3Rh
cnR5b3Vyc2VhcmNocywgYS5zdWJtaXRzLAotYS50cnlhbWFjcywgYS51cGdyYWRlbm93cyB7Ci0g
ICAgY29sb3I6IHJlZAotfQotCi1hLmJyb3dzZXdlYmFwcHNzOmhvdmVyLCBhLmJ1c2luZXNzc3Rv
cmVzOmhvdmVyLCBhLmJ1eWlwaG9uZXM6aG92ZXIsCi1hLmJ1eW5vd3M6aG92ZXIsIGEuYnV5bm93
cy1hcnJvdzpob3ZlciwgYS5jb21pbmdzb29uczpob3ZlciwgcDo6YmVmb3JlLAotYS5kZXNjYXJn
YXJhaG9yYXM6aG92ZXIsIGEuZG93bmxvYWRpdHVuZXNzOmhvdmVyLCBhLmRvd25sb2Fkbm93czpo
b3ZlciwKLWEuZmluZHM6aG92ZXIsIGEuZnJlZXRyaWFsczpob3ZlciwgYS5nZXRzdGFydGVkczpo
b3ZlciwgYS5nb3M6aG92ZXIsCi1hLmhvd3RvYXBwbHlzOmhvdmVyLCBhLmhvd3RvYnV5czpob3Zl
ciwgYS5qb2lubm93czpob3ZlciwgYS5sZWFybm1vcmVzOmhvdmVyLAotYS5uaWtlYnV5bm93czpo
b3ZlciwgYS5ub3RpZnltZXM6aG92ZXIsIGEub3JkZXJub3dzOmhvdmVyLCBhLnByZW9yZGVybm93
czpob3ZlciwKLWEucHJlb3JkZXJzOmhvdmVyLCBhLnJlc2VydmVzOmhvdmVyLCBhLnN0YXJ0eW91
cnNlYXJjaHM6aG92ZXIsIGEuc3VibWl0czpob3ZlciwKLWEudHJ5YW1hY3M6aG92ZXIsIGEudXBn
cmFkZW5vd3M6aG92ZXIgewotICAgIGNvbG9yOiByZWQKLX0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2NvZGVtaXJyb3IvcmVzb3VyY2VzL3ByZXR0eXByaW50aW5nL2Nzcy10
ZXN0cy93cmFwcGluZy5jc3MgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29kZW1pcnJvci9yZXNv
dXJjZXMvcHJldHR5cHJpbnRpbmcvY3NzLXRlc3RzL3dyYXBwaW5nLmNzcwpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMGE1YTdhMzliZGEuLjAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci9jb2RlbWlycm9yL3Jlc291cmNlcy9wcmV0dHlwcmludGluZy9jc3MtdGVz
dHMvd3JhcHBpbmcuY3NzCisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi0vKiBMT05HIExJ
U1RTIFNIT1VMRCBXUkFQICovCi1hLmJyb3dzZXdlYmFwcHNzLGEuYnVzaW5lc3NzdG9yZXMsYS5i
dXlpcGhvbmVzLGEuYnV5bm93cyxhLmJ1eW5vd3MtYXJyb3csYS5jb21pbmdzb29ucyxwOjpiZWZv
cmUsYS5kZXNjYXJnYXJhaG9yYXMsYS5kb3dubG9hZGl0dW5lc3MsYS5kb3dubG9hZG5vd3MsYS5m
aW5kcyxhLmZyZWV0cmlhbHMsYS5nZXRzdGFydGVkcyxhLmdvcyxhLmhvd3RvYXBwbHlzLGEuaG93
dG9idXlzLGEuam9pbm5vd3MsYS5sZWFybm1vcmVzLGEubmlrZWJ1eW5vd3MsYS5ub3RpZnltZXMs
YS5vcmRlcm5vd3MsYS5wcmVvcmRlcm5vd3MsYS5wcmVvcmRlcnMsYS5yZXNlcnZlcyxhLnN0YXJ0
eW91cnNlYXJjaHMsYS5zdWJtaXRzLGEudHJ5YW1hY3MsYS51cGdyYWRlbm93cyB7Y29sb3I6cmVk
fQotYS5icm93c2V3ZWJhcHBzczpob3ZlcixhLmJ1c2luZXNzc3RvcmVzOmhvdmVyLGEuYnV5aXBo
b25lczpob3ZlcixhLmJ1eW5vd3M6aG92ZXIsYS5idXlub3dzLWFycm93OmhvdmVyLGEuY29taW5n
c29vbnM6aG92ZXIscDo6YmVmb3JlLGEuZGVzY2FyZ2FyYWhvcmFzOmhvdmVyLGEuZG93bmxvYWRp
dHVuZXNzOmhvdmVyLGEuZG93bmxvYWRub3dzOmhvdmVyLGEuZmluZHM6aG92ZXIsYS5mcmVldHJp
YWxzOmhvdmVyLGEuZ2V0c3RhcnRlZHM6aG92ZXIsYS5nb3M6aG92ZXIsYS5ob3d0b2FwcGx5czpo
b3ZlcixhLmhvd3RvYnV5czpob3ZlcixhLmpvaW5ub3dzOmhvdmVyLGEubGVhcm5tb3Jlczpob3Zl
cixhLm5pa2VidXlub3dzOmhvdmVyLGEubm90aWZ5bWVzOmhvdmVyLGEub3JkZXJub3dzOmhvdmVy
LGEucHJlb3JkZXJub3dzOmhvdmVyLGEucHJlb3JkZXJzOmhvdmVyLGEucmVzZXJ2ZXM6aG92ZXIs
YS5zdGFydHlvdXJzZWFyY2hzOmhvdmVyLGEuc3VibWl0czpob3ZlcixhLnRyeWFtYWNzOmhvdmVy
LGEudXBncmFkZW5vd3M6aG92ZXIge2NvbG9yOnJlZH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9jb2RlbWlycm9yL3Jlc291cmNlcy9wcmV0dHlwcmludGluZy9qYXZhc2NyaXB0
LXRlc3RzL2Jsb2NrLWNvbW1lbnQtZXhwZWN0ZWQuanMgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
Y29kZW1pcnJvci9yZXNvdXJjZXMvcHJldHR5cHJpbnRpbmcvamF2YXNjcmlwdC10ZXN0cy9ibG9j
ay1jb21tZW50LWV4cGVjdGVkLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0MjVj
MGYxMjM1Yy4uMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvZGVtaXJy
b3IvcmVzb3VyY2VzL3ByZXR0eXByaW50aW5nL2phdmFzY3JpcHQtdGVzdHMvYmxvY2stY29tbWVu
dC1leHBlY3RlZC5qcworKysgL2Rldi9udWxsCkBAIC0xLDQgKzAsMCBAQAotLyoKLSAqIFRlc3QK
LSAqLwotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29kZW1pcnJvci9yZXNv
dXJjZXMvcHJldHR5cHJpbnRpbmcvamF2YXNjcmlwdC10ZXN0cy9ibG9jay1jb21tZW50LmpzIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvZGVtaXJyb3IvcmVzb3VyY2VzL3ByZXR0eXByaW50aW5n
L2phdmFzY3JpcHQtdGVzdHMvYmxvY2stY29tbWVudC5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggODM1YmYyNTQ5OTAuLjAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9jb2RlbWlycm9yL3Jlc291cmNlcy9wcmV0dHlwcmludGluZy9qYXZhc2NyaXB0LXRlc3Rz
L2Jsb2NrLWNvbW1lbnQuanMKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLS8qCi0gKiBU
ZXN0Ci0gKi8KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb2RlbWlycm9yL3Jl
c291cmNlcy9wcmV0dHlwcmludGluZy9qYXZhc2NyaXB0LXRlc3RzL2RvLXdoaWxlLWxvb3AtZXhw
ZWN0ZWQuanMgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29kZW1pcnJvci9yZXNvdXJjZXMvcHJl
dHR5cHJpbnRpbmcvamF2YXNjcmlwdC10ZXN0cy9kby13aGlsZS1sb29wLWV4cGVjdGVkLmpzCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwODVhMjBiNTA3NS4uMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvZGVtaXJyb3IvcmVzb3VyY2VzL3ByZXR0eXByaW50
aW5nL2phdmFzY3JpcHQtdGVzdHMvZG8td2hpbGUtbG9vcC1leHBlY3RlZC5qcworKysgL2Rldi9u
dWxsCkBAIC0xLDQgKzAsMCBAQAotZG8gewotICAgICJ4IgotfSB3aGlsZSAoMCk7Ci0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb2RlbWlycm9yL3Jlc291cmNlcy9wcmV0dHlw
cmludGluZy9qYXZhc2NyaXB0LXRlc3RzL2RvLXdoaWxlLWxvb3AuanMgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvY29kZW1pcnJvci9yZXNvdXJjZXMvcHJldHR5cHJpbnRpbmcvamF2YXNjcmlwdC10
ZXN0cy9kby13aGlsZS1sb29wLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhZWIz
ZWJlMzdlNy4uMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvZGVtaXJy
b3IvcmVzb3VyY2VzL3ByZXR0eXByaW50aW5nL2phdmFzY3JpcHQtdGVzdHMvZG8td2hpbGUtbG9v
cC5qcworKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLWRveyJ4In13aGlsZSgwKTsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb2RlbWlycm9yL3Jlc291cmNlcy9wcmV0dHlw
cmludGluZy9qYXZhc2NyaXB0LXRlc3RzL2RvLXdoaWxlLXdpdGhpbi1pZi1leHBlY3RlZC5qcyBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9jb2RlbWlycm9yL3Jlc291cmNlcy9wcmV0dHlwcmludGlu
Zy9qYXZhc2NyaXB0LXRlc3RzL2RvLXdoaWxlLXdpdGhpbi1pZi1leHBlY3RlZC5qcwpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTMzZDViYzVlYmEuLjAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9jb2RlbWlycm9yL3Jlc291cmNlcy9wcmV0dHlwcmludGluZy9q
YXZhc2NyaXB0LXRlc3RzL2RvLXdoaWxlLXdpdGhpbi1pZi1leHBlY3RlZC5qcworKysgL2Rldi9u
dWxsCkBAIC0xLDYgKzAsMCBAQAotaWYgKHRydWUpIHsKLSAgICBkbyB7Ci0gICAgICAgIHZhciB4
OwotICAgIH0gd2hpbGUgKDApOwotfQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvY29kZW1pcnJvci9yZXNvdXJjZXMvcHJldHR5cHJpbnRpbmcvamF2YXNjcmlwdC10ZXN0cy9k
by13aGlsZS13aXRoaW4taWYuanMgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29kZW1pcnJvci9y
ZXNvdXJjZXMvcHJldHR5cHJpbnRpbmcvamF2YXNjcmlwdC10ZXN0cy9kby13aGlsZS13aXRoaW4t
aWYuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGEyODdlOWE1YjI2Li4wMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29kZW1pcnJvci9yZXNvdXJjZXMvcHJl
dHR5cHJpbnRpbmcvamF2YXNjcmlwdC10ZXN0cy9kby13aGlsZS13aXRoaW4taWYuanMKKysrIC9k
ZXYvbnVsbApAQCAtMSArMCwwIEBACi1pZiAodHJ1ZSkgeyBkbyB7dmFyIHg7fSB3aGlsZSAoMCk7
fQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvZGVtaXJyb3IvcmVzb3VyY2Vz
L3ByZXR0eXByaW50aW5nL2phdmFzY3JpcHQtdGVzdHMvaWYtZm9sbG93ZWQtYnktd2hpbGUtZXhw
ZWN0ZWQuanMgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29kZW1pcnJvci9yZXNvdXJjZXMvcHJl
dHR5cHJpbnRpbmcvamF2YXNjcmlwdC10ZXN0cy9pZi1mb2xsb3dlZC1ieS13aGlsZS1leHBlY3Rl
ZC5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmI1OTkyYmU0Y2MuLjAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb2RlbWlycm9yL3Jlc291cmNlcy9wcmV0
dHlwcmludGluZy9qYXZhc2NyaXB0LXRlc3RzL2lmLWZvbGxvd2VkLWJ5LXdoaWxlLWV4cGVjdGVk
LmpzCisrKyAvZGV2L251bGwKQEAgLTEsNyArMCwwIEBACi1pZiAoeCA9PSAyKSB7Ci0gICAgdmFy
IHkKLX0KLXdoaWxlICgwKSB7Ci0gICAgeSA9IDMKLX0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2NvZGVtaXJyb3IvcmVzb3VyY2VzL3ByZXR0eXByaW50aW5nL2phdmFzY3Jp
cHQtdGVzdHMvaWYtZm9sbG93ZWQtYnktd2hpbGUuanMgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
Y29kZW1pcnJvci9yZXNvdXJjZXMvcHJldHR5cHJpbnRpbmcvamF2YXNjcmlwdC10ZXN0cy9pZi1m
b2xsb3dlZC1ieS13aGlsZS5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTkwZjkz
ZTNjZjIuLjAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb2RlbWlycm9y
L3Jlc291cmNlcy9wcmV0dHlwcmludGluZy9qYXZhc2NyaXB0LXRlc3RzL2lmLWZvbGxvd2VkLWJ5
LXdoaWxlLmpzCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotaWYoeD09Mil7dmFyIHl9d2hp
bGUoMCl7eT0zfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvZGVtaXJyb3Iv
cmVzb3VyY2VzL3ByZXR0eXByaW50aW5nL2phdmFzY3JpcHQtdGVzdHMvaWYtd2hpbGUtd2l0aGlu
LWRvLXdoaWxlLWV4cGVjdGVkLmpzIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvZGVtaXJyb3Iv
cmVzb3VyY2VzL3ByZXR0eXByaW50aW5nL2phdmFzY3JpcHQtdGVzdHMvaWYtd2hpbGUtd2l0aGlu
LWRvLXdoaWxlLWV4cGVjdGVkLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MWJm
YmEzN2FlNC4uMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvZGVtaXJy
b3IvcmVzb3VyY2VzL3ByZXR0eXByaW50aW5nL2phdmFzY3JpcHQtdGVzdHMvaWYtd2hpbGUtd2l0
aGluLWRvLXdoaWxlLWV4cGVjdGVkLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTMgKzAsMCBAQAot
ZG8gewotICAgIGlmICh0cnVlKSB7Ci0gICAgICAgIHZhciB4OwotICAgIH0KLSAgICB3aGlsZSAo
MCkgewotICAgICAgICB4ID0gMTsKLSAgICB9Ci0gICAgaWYgKHRydWUpCi0gICAgICAgIHZhciB5
OwotICAgIHdoaWxlICgwKQotICAgICAgICB5ID0gMTsKLX0gd2hpbGUgKDApOwotCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29kZW1pcnJvci9yZXNvdXJjZXMvcHJldHR5cHJp
bnRpbmcvamF2YXNjcmlwdC10ZXN0cy9pZi13aGlsZS13aXRoaW4tZG8td2hpbGUuanMgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvY29kZW1pcnJvci9yZXNvdXJjZXMvcHJldHR5cHJpbnRpbmcvamF2
YXNjcmlwdC10ZXN0cy9pZi13aGlsZS13aXRoaW4tZG8td2hpbGUuanMKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDIwNjM0OWZiYTMwLi4wMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvY29kZW1pcnJvci9yZXNvdXJjZXMvcHJldHR5cHJpbnRpbmcvamF2YXNjcmlw
dC10ZXN0cy9pZi13aGlsZS13aXRoaW4tZG8td2hpbGUuanMKKysrIC9kZXYvbnVsbApAQCAtMSAr
MCwwIEBACi1kbyB7aWYgKHRydWUpIHt2YXIgeDt9d2hpbGUgKDApIHt4ID0gMTt9aWYgKHRydWUp
dmFyIHk7d2hpbGUgKDApeSA9IDE7fXdoaWxlICgwKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9jb2RlbWlycm9yL3Jlc291cmNlcy9wcmV0dHlwcmludGluZy9qYXZhc2NyaXB0
LXRlc3RzL3NpbmdsZS1zdGF0ZW1lbnQtYmxvY2tzLWV4cGVjdGVkLmpzIGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2NvZGVtaXJyb3IvcmVzb3VyY2VzL3ByZXR0eXByaW50aW5nL2phdmFzY3JpcHQt
dGVzdHMvc2luZ2xlLXN0YXRlbWVudC1ibG9ja3MtZXhwZWN0ZWQuanMKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IGQyMTY3NmEyZDNkLi4wMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvY29kZW1pcnJvci9yZXNvdXJjZXMvcHJldHR5cHJpbnRpbmcvamF2YXNjcmlw
dC10ZXN0cy9zaW5nbGUtc3RhdGVtZW50LWJsb2Nrcy1leHBlY3RlZC5qcworKysgL2Rldi9udWxs
CkBAIC0xLDg5ICswLDAgQEAKLWlmICh0cnVlKQotICAgIGlmICh0cnVlKQotICAgICAgICBhbGVy
dCgxKTsKLSAgICBlbHNlIGlmICh0cnVlKQotICAgICAgICBhbGVydCgyKTsKLSAgICBlbHNlCi0g
ICAgICAgIGFsZXJ0KDMpOwotCi1pZiAodHJ1ZSkKLSAgICBpZiAodHJ1ZSkgewotICAgICAgICBh
bGVydCgxKQotICAgIH0gZWxzZQotICAgICAgICBhbGVydCgyKTsKLQotaWYgKHRydWUpCi0gICAg
aWYgKHRydWUpIHsKLSAgICAgICAgdmFyIGEgPSAxOwotICAgICAgICB2YXIgYiA9IHsKLSAgICAg
ICAgICAgIGE6IDEKLSAgICAgICAgfTsKLSAgICB9IGVsc2UKLSAgICAgICAgYWxlcnQoMik7Ci0K
LWZ1bmN0aW9uKCkgewotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwOyArK2kpCi0gICAgICAg
IGlmICh0cnVlKQotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgcmV0dXJuIGZhbHNlOwot
fQotCi1mdW5jdGlvbiBmb28oY20pIHsKLSAgICBpZiAodHJ1ZSkKLSAgICAgICAgcmV0dXJuOwot
ICAgIGVsc2UKLSAgICAgICAgZmFsc2U7Ci19Ci0KLWlmICh0cnVlKSB7Ci0gICAgaWYgKGZhbHNl
KQotICAgICAgICBpZiAodHJ1ZSkgewotICAgICAgICAgICAgdHJ1ZTsKLSAgICAgICAgfQotICAg
IHJldHVybiAyOwotfQotCi1pZiAodHJ1ZSkgewotICAgIGlmIChmYWxzZSkKLSAgICAgICAgaWYg
KHRydWUpCi0gICAgICAgICAgICB0cnVlOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBmYWxz
ZTsKLSAgICBlbHNlIGlmICh0cnVlKQotICAgICAgICB0cnVlOwotICAgIGVsc2UKLSAgICAgICAg
ZmFsc2U7Ci19Ci0KLWlmICh0cnVlKQotICAgIGZvciAoOyA7KQotICAgICAgICB0cnVlOwotZWxz
ZQotICAgIHdoaWxlICh0cnVlKQotICAgICAgICB0cnVlOwotCi1mdW5jdGlvbigpIHsKLSAgICBp
ZiAodHJ1ZSkgewotICAgICAgICBmb3IgKDsgOykKLSAgICAgICAgICAgIHRydWU7Ci0gICAgfSBl
bHNlIGlmICgxKQotICAgICAgICBmb3IgKDsgOykKLSAgICAgICAgICAgIHRydWU7Ci0gICAgcmV0
dXJuOwotfQotCi1kbwotICAgIHRydWU7Ci13aGlsZSAodHJ1ZSk7Ci0KLWlmICh4ID09IDEpCi0g
ICAgYWxlcnQoMSk7Ci1lbHNlIGlmICh4ID09IDIpCi0gICAgYWxlcnQoMik7Ci1lbHNlCi0gICAg
YWxlcnQoMyk7Ci0KLS8vIEZJWE1FOiBGYWlsaW5nLgotCi0vLyBpZih0cnVlKXRyeXt0cnVlO31j
YXRjaChlKXt0cnVlO31maW5hbGx5e3RydWU7fQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvY29kZW1pcnJvci9yZXNvdXJjZXMvcHJldHR5cHJpbnRpbmcvamF2YXNjcmlwdC10
ZXN0cy9zaW5nbGUtc3RhdGVtZW50LWJsb2Nrcy5qcyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9j
b2RlbWlycm9yL3Jlc291cmNlcy9wcmV0dHlwcmludGluZy9qYXZhc2NyaXB0LXRlc3RzL3Npbmds
ZS1zdGF0ZW1lbnQtYmxvY2tzLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5MmQ0
ZGZhNTk5Zi4uMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvZGVtaXJy
b3IvcmVzb3VyY2VzL3ByZXR0eXByaW50aW5nL2phdmFzY3JpcHQtdGVzdHMvc2luZ2xlLXN0YXRl
bWVudC1ibG9ja3MuanMKKysrIC9kZXYvbnVsbApAQCAtMSwyNSArMCwwIEBACi1pZih0cnVlKWlm
KHRydWUpYWxlcnQoMSk7ZWxzZSBpZih0cnVlKWFsZXJ0KDIpO2Vsc2UgYWxlcnQoMyk7Ci0KLWlm
KHRydWUpaWYodHJ1ZSl7YWxlcnQoMSl9ZWxzZSBhbGVydCgyKTsKLQotaWYodHJ1ZSlpZih0cnVl
KXt2YXIgYT0xO3ZhciBiPXthOjF9O31lbHNlIGFsZXJ0KDIpOwotCi1mdW5jdGlvbigpe2Zvcih2
YXIgaT0wO2k8MTAwOysraSlpZih0cnVlKXJldHVybiB0cnVlO3JldHVybiBmYWxzZTt9Ci0KLWZ1
bmN0aW9uIGZvbyhjbSl7aWYodHJ1ZSlyZXR1cm47ZWxzZSBmYWxzZTt9Ci0KLWlmKHRydWUpe2lm
KGZhbHNlKWlmKHRydWUpe3RydWU7fXJldHVybiAyO30KLQotaWYodHJ1ZSl7aWYoZmFsc2UpaWYo
dHJ1ZSl0cnVlO2Vsc2UgZmFsc2U7ZWxzZSBpZih0cnVlKXRydWU7ZWxzZSBmYWxzZTt9Ci0KLWlm
KHRydWUpZm9yKDs7KXRydWU7ZWxzZSB3aGlsZSh0cnVlKXRydWU7Ci0KLWZ1bmN0aW9uKCl7aWYo
dHJ1ZSl7Zm9yKDs7KXRydWU7fWVsc2UgaWYoMSlmb3IoOzspdHJ1ZTtyZXR1cm47fQotCi1kbyB0
cnVlO3doaWxlKHRydWUpOwotCi1pZih4PT0xKWFsZXJ0KDEpO2Vsc2UgaWYoeD09MilhbGVydCgy
KTtlbHNlIGFsZXJ0KDMpOwotCi0vLyBGSVhNRTogRmFpbGluZy4KLQotLy8gaWYodHJ1ZSl0cnl7
dHJ1ZTt9Y2F0Y2goZSl7dHJ1ZTt9ZmluYWxseXt0cnVlO30KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci9jb2RlbWlycm9yL3Jlc291cmNlcy9wcmV0dHlwcmludGluZy9qYXZhc2Ny
aXB0LXRlc3RzL3N3aXRjaC1jYXNlLWRlZmF1bHQtZXhwZWN0ZWQuanMgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvY29kZW1pcnJvci9yZXNvdXJjZXMvcHJldHR5cHJpbnRpbmcvamF2YXNjcmlwdC10
ZXN0cy9zd2l0Y2gtY2FzZS1kZWZhdWx0LWV4cGVjdGVkLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA2ZTJkOTVlNDBmNS4uMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2NvZGVtaXJyb3IvcmVzb3VyY2VzL3ByZXR0eXByaW50aW5nL2phdmFzY3JpcHQtdGVz
dHMvc3dpdGNoLWNhc2UtZGVmYXVsdC1leHBlY3RlZC5qcworKysgL2Rldi9udWxsCkBAIC0xLDI3
ICswLDAgQEAKLWZ1bmN0aW9uIEN0b3IxKCkgewotICAgIHRoaXMuY2FzZSA9IDE7Ci0gICAgdGhp
cy5zb21ldGhpbmcgPSAyOwotfQotZnVuY3Rpb24gQ3RvcjIoKSB7Ci0gICAgdGhpcy5kZWZhdWx0
ID0gMTsKLSAgICB0aGlzLnNvbWV0aGluZyA9IDI7Ci19Ci0KLXN3aXRjaCAoeCkgewotY2FzZSAi
YWJjIjoKLSAgICByZXR1cm4gdGhpcy5kZWZhdWx0OwotY2FzZSAiZGVmIjoKLSAgICByZXR1cm4g
dGhpcy5jYXNlOwotZGVmYXVsdDoKLSAgICByZXR1cm4gMzsKLX0KLQotc3dpdGNoICh4KSB7Ci1j
YXNlICJhYmMiOgotICAgIHJldHVybiAxOwotY2FzZSAiZGVmIjoKLSAgICByZXR1cm4gMjsKLWRl
ZmF1bHQ6Ci0gICAgcmV0dXJuIDM7Ci19Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9jb2RlbWlycm9yL3Jlc291cmNlcy9wcmV0dHlwcmludGluZy9qYXZhc2NyaXB0LXRlc3Rz
L3N3aXRjaC1jYXNlLWRlZmF1bHQuanMgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29kZW1pcnJv
ci9yZXNvdXJjZXMvcHJldHR5cHJpbnRpbmcvamF2YXNjcmlwdC10ZXN0cy9zd2l0Y2gtY2FzZS1k
ZWZhdWx0LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4NzdkOTg4MWY5NS4uMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvZGVtaXJyb3IvcmVzb3VyY2Vz
L3ByZXR0eXByaW50aW5nL2phdmFzY3JpcHQtdGVzdHMvc3dpdGNoLWNhc2UtZGVmYXVsdC5qcwor
KysgL2Rldi9udWxsCkBAIC0xLDEzICswLDAgQEAKLWZ1bmN0aW9uIEN0b3IxKCl7dGhpcy5jYXNl
PTE7dGhpcy5zb21ldGhpbmc9Mjt9Ci1mdW5jdGlvbiBDdG9yMigpe3RoaXMuZGVmYXVsdD0xO3Ro
aXMuc29tZXRoaW5nPTI7fQotCi1zd2l0Y2goeCl7Y2FzZSAiYWJjIjpyZXR1cm4gdGhpcy5kZWZh
dWx0O2Nhc2UgImRlZiI6cmV0dXJuIHRoaXMuY2FzZTtkZWZhdWx0OnJldHVybiAzO30KLQotc3dp
dGNoKHgpewotICBjYXNlICJhYmMiOgotICAgIHJldHVybiAxOwotICBjYXNlICJkZWYiOgotICAg
IHJldHVybiAyOwotICBkZWZhdWx0OgotICAgIHJldHVybiAzOwotfQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2NvZGVtaXJyb3IvcmVzb3VyY2VzL3ByZXR0eXByaW50aW5nL2ph
dmFzY3JpcHQtdGVzdHMvdW5hcnktYmluYXJ5LW9wZXJhdG9ycy1leHBlY3RlZC5qcyBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9jb2RlbWlycm9yL3Jlc291cmNlcy9wcmV0dHlwcmludGluZy9qYXZh
c2NyaXB0LXRlc3RzL3VuYXJ5LWJpbmFyeS1vcGVyYXRvcnMtZXhwZWN0ZWQuanMKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc2OWZhMTFiMmU3Li4wMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvY29kZW1pcnJvci9yZXNvdXJjZXMvcHJldHR5cHJpbnRpbmcvamF2
YXNjcmlwdC10ZXN0cy91bmFyeS1iaW5hcnktb3BlcmF0b3JzLWV4cGVjdGVkLmpzCisrKyAvZGV2
L251bGwKQEAgLTEsNDUgKzAsMCBAQAotKzE7Ci0tMTsKLX4xOwotITE7Ci0hITE7Ci0xICsgMSAt
IDEgKiAxIC8gMSAlIDE7Ci0xLjIgKyAxLjIgLSAxLjIgKiAxLjIgLyAxLjIgJSAxLjI7Ci0oMSAr
IDEgLSAxICogMSAvIDEgJSAxKTsKLSgxKSArICgxKSAtICgxKSAqICgxKSAvICgxKSAlICgxKTsK
LSsoMSk7Ci0rczsKLS1zOwotfnM7Ci14ID0gMTsKLXggPSAxZTI7Ci14ID0gMSArIDE7Ci14ID0g
MWUyICsgMWUyOwoteCA9IHggKyAxOwoteCA9IHggPSB4OwoteCA9IHhbMV0gKyAxOwoteCA9IFsx
XTsKLXggPSAoMSk7Ci14ID0gKHMpOwoteCA9IFsxLCAxLCBzXTsKLWZvbygxLCAxLCBzKTsKLXgg
PSBbMSArIDEgLSAxICogMSAvIDEgJSAxLCArMSwgMSAtIDEsIC0xLCB+MSwgLXMsIHMgKyAxLCBz
IC0gMSwgYVsxXSArIDEsIGFbMV0gLSAxXTsKLWZvbygxICsgMSAtIDEgKiAxIC8gMSAlIDEsICsx
LCAxIC0gMSwgLTEsIH4xLCAtcywgcyArIDEsIHMgLSAxLCBhWzFdICsgMSwgYVsxXSAtIDEpOwot
eCA9IFstMSArIDEgKiAxIC8gMSAlIDFdOwoteCA9ICgtMSArIDEgKiAxIC8gMSAlIDEpOwoteCA9
IDEgPyArMSA6IC1zOwoteCA9ICgxID8gKzEgOiAtcyk7Ci14ID0gWzEgPyAtMSA6ICtzXTsKLXgg
PSB7Ci0gICAgYTogLTEsCi0gICAgYjogKzEsCi0gICAgYzogMSAtIDEsCi0gICAgZDogMSwKLSAg
ICBzOiBzCi19OwotLy8gRklYTUU6IFN0aWxsIGJyb2tlbiBjYXNlcy4gQ29kZW1pcnJvciB0cmVh
dHMgYWRqYWNlbnQgb3BlcmF0b3IgY2hhcmFjdGVycyBhcyBvbmUgb3BlcmF0b3IuIEZvciBleGFt
cGxlOgotLy8geD0rMSAvLyBDb2RlbWlycm9yIHRyZWF0cyAiPSsiIGFzIGEgc2luZ2xlIG9wZXJh
dG9yLgotLy8geD0xPysxOjEgLy8gQ29kZW1pcnJvciB0cmVhdHMgIj8rIiBhcyBhIHNpbmdsZSBv
cGVyYXRvci4KLS8vIHg9MSstMisxIC8vIENvZGVtaXJyb3IgdHJlYXRzICIrLSIgYXMgYSBzaW5n
bGUgb3BlcmF0b3IuCi0vLyB4PTEtKzIrMSAvLyBDb2RlbWlycm9yIHRyZWF0cyAiLSsiIGFzIGEg
c2luZ2xlIG9wZXJhdG9yLgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29k
ZW1pcnJvci9yZXNvdXJjZXMvcHJldHR5cHJpbnRpbmcvamF2YXNjcmlwdC10ZXN0cy91bmFyeS1i
aW5hcnktb3BlcmF0b3JzLmpzIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvZGVtaXJyb3IvcmVz
b3VyY2VzL3ByZXR0eXByaW50aW5nL2phdmFzY3JpcHQtdGVzdHMvdW5hcnktYmluYXJ5LW9wZXJh
dG9ycy5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjI3YzY3MzlkNDMuLjAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb2RlbWlycm9yL3Jlc291cmNlcy9w
cmV0dHlwcmludGluZy9qYXZhc2NyaXB0LXRlc3RzL3VuYXJ5LWJpbmFyeS1vcGVyYXRvcnMuanMK
KysrIC9kZXYvbnVsbApAQCAtMSwzOCArMCwwIEBACi0rMTsKLS0xOwotfjE7Ci0hMTsKLSEhMTsK
LTErMS0xKjEvMSUxOwotMS4yKzEuMi0xLjIqMS4yLzEuMiUxLjI7Ci0oMSsxLTEqMS8xJTEpOwot
KDEpKygxKS0oMSkqKDEpLygxKSUoMSk7Ci0rKDEpOwotK3M7Ci0tczsKLX5zOwoteD0xOwoteD0x
ZTI7Ci14PTErMTsKLXg9MWUyKzFlMjsKLXg9eCsxOwoteD14PXg7Ci14PXhbMV0rMTsKLXg9WzFd
OwoteD0oMSk7Ci14PShzKTsKLXg9WzEsMSxzXTsKLWZvbygxLDEscyk7Ci14PVsxKzEtMSoxLzEl
MSwrMSwxLTEsLTEsfjEsLXMscysxLHMtMSxhWzFdKzEsYVsxXS0xXTsKLWZvbygxKzEtMSoxLzEl
MSwrMSwxLTEsLTEsfjEsLXMscysxLHMtMSxhWzFdKzEsYVsxXS0xKTsKLXg9Wy0xKzEqMS8xJTFd
OwoteD0oLTErMSoxLzElMSk7Ci14PTE/ICsxOi1zOwoteD0oMT8gKzE6LXMpOwoteD1bMT8gLTE6
K3NdOwoteD17YTotMSxiOisxLGM6MS0xLGQ6MSxzOnN9OwotLy8gRklYTUU6IFN0aWxsIGJyb2tl
biBjYXNlcy4gQ29kZW1pcnJvciB0cmVhdHMgYWRqYWNlbnQgb3BlcmF0b3IgY2hhcmFjdGVycyBh
cyBvbmUgb3BlcmF0b3IuIEZvciBleGFtcGxlOgotLy8geD0rMSAvLyBDb2RlbWlycm9yIHRyZWF0
cyAiPSsiIGFzIGEgc2luZ2xlIG9wZXJhdG9yLgotLy8geD0xPysxOjEgLy8gQ29kZW1pcnJvciB0
cmVhdHMgIj8rIiBhcyBhIHNpbmdsZSBvcGVyYXRvci4KLS8vIHg9MSstMisxIC8vIENvZGVtaXJy
b3IgdHJlYXRzICIrLSIgYXMgYSBzaW5nbGUgb3BlcmF0b3IuCi0vLyB4PTEtKzIrMSAvLyBDb2Rl
bWlycm9yIHRyZWF0cyAiLSsiIGFzIGEgc2luZ2xlIG9wZXJhdG9yLgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2NvZGVtaXJyb3IvcmVzb3VyY2VzL3ByZXR0eXByaW50aW5nL2ph
dmFzY3JpcHQtdGVzdHMvd2hpbGUtd2l0aGluLWRvLXdoaWxlLWV4cGVjdGVkLmpzIGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2NvZGVtaXJyb3IvcmVzb3VyY2VzL3ByZXR0eXByaW50aW5nL2phdmFz
Y3JpcHQtdGVzdHMvd2hpbGUtd2l0aGluLWRvLXdoaWxlLWV4cGVjdGVkLmpzCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAyNGViMjNlYmQzYy4uMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2NvZGVtaXJyb3IvcmVzb3VyY2VzL3ByZXR0eXByaW50aW5nL2phdmFz
Y3JpcHQtdGVzdHMvd2hpbGUtd2l0aGluLWRvLXdoaWxlLWV4cGVjdGVkLmpzCisrKyAvZGV2L251
bGwKQEAgLTEsNyArMCwwIEBACi1kbyB7Ci0gICAgdmFyIGNvdW50ZXIgPSAwOwotICAgIHdoaWxl
IChjb3VudGVyIDwgMykgewotICAgICAgICBjb3VudGVyICs9IDE7Ci0gICAgfQotfSB3aGlsZSAo
MCk7Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb2RlbWlycm9yL3Jlc291
cmNlcy9wcmV0dHlwcmludGluZy9qYXZhc2NyaXB0LXRlc3RzL3doaWxlLXdpdGhpbi1kby13aGls
ZS5qcyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb2RlbWlycm9yL3Jlc291cmNlcy9wcmV0dHlw
cmludGluZy9qYXZhc2NyaXB0LXRlc3RzL3doaWxlLXdpdGhpbi1kby13aGlsZS5qcwpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzBlNjUxM2EwMzQuLjAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9jb2RlbWlycm9yL3Jlc291cmNlcy9wcmV0dHlwcmludGluZy9q
YXZhc2NyaXB0LXRlc3RzL3doaWxlLXdpdGhpbi1kby13aGlsZS5qcworKysgL2Rldi9udWxsCkBA
IC0xICswLDAgQEAKLWRve3ZhciBjb3VudGVyPTA7d2hpbGUoY291bnRlcjwzKXtjb3VudGVyKz0x
O319d2hpbGUoMCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29kZW1pcnJv
ci9yZXNvdXJjZXMvcHJldHR5cHJpbnRpbmcvdXRpbGl0aWVzLmpzIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2NvZGVtaXJyb3IvcmVzb3VyY2VzL3ByZXR0eXByaW50aW5nL3V0aWxpdGllcy5qcwpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGIxZDY4Mjc5Y2YuLjAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb2RlbWlycm9yL3Jlc291cmNlcy9wcmV0dHlwcmlu
dGluZy91dGlsaXRpZXMuanMKKysrIC9kZXYvbnVsbApAQCAtMSw2MiArMCwwIEBACi1UZXN0UGFn
ZS5yZWdpc3RlckluaXRpYWxpemVyKGZ1bmN0aW9uKCkgewotICAgIGZ1bmN0aW9uIGxvYWRQcmV0
dHlQcmludGluZ1Rlc3RBbmRFeHBlY3RlZFJlc3VsdHModGVzdFVSTCkgewotICAgICAgICBsZXQg
ZXhwZWN0ZWRVUkwgPSB0ZXN0VVJMLnJlcGxhY2UoL1wuKFteXC5dKykkLywgIi1leHBlY3RlZC4k
MSIpOwotICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwoWwotICAgICAgICAgICAgTmV0d29ya0Fn
ZW50LmxvYWRSZXNvdXJjZShXSS5uZXR3b3JrTWFuYWdlci5tYWluRnJhbWUuaWQsIHRlc3RVUkwp
LAotICAgICAgICAgICAgTmV0d29ya0FnZW50LmxvYWRSZXNvdXJjZShXSS5uZXR3b3JrTWFuYWdl
ci5tYWluRnJhbWUuaWQsIGV4cGVjdGVkVVJMKQotICAgICAgICBdKS50aGVuKGZ1bmN0aW9uKHJl
c3VsdHMpIHsKLSAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoe3Rlc3RUZXh0OiBy
ZXN1bHRzWzBdLmNvbnRlbnQsIGV4cGVjdGVkVGV4dDogcmVzdWx0c1sxXS5jb250ZW50IH0pOwot
ICAgICAgICB9KTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBydW5QcmV0dHlQcmludGluZ1Rlc3Qo
bW9kZSwgdGVzdE5hbWUsIHRlc3RVUkwpIHsKLSAgICAgICAgcmV0dXJuIGxvYWRQcmV0dHlQcmlu
dGluZ1Rlc3RBbmRFeHBlY3RlZFJlc3VsdHModGVzdFVSTCkudGhlbihmdW5jdGlvbihyZXN1bHRz
KSB7Ci0gICAgICAgICAgICBsZXQge3Rlc3RUZXh0LCBleHBlY3RlZFRleHR9ID0gcmVzdWx0czsK
LQotICAgICAgICAgICAgbGV0IGVkaXRvciA9IENvZGVNaXJyb3IoZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgiZGl2IikpOwotICAgICAgICAgICAgZWRpdG9yLnNldE9wdGlvbigibW9kZSIsIG1vZGUp
OwotICAgICAgICAgICAgZWRpdG9yLnNldFZhbHVlKHRlc3RUZXh0KTsKLQotICAgICAgICAgICAg
Y29uc3Qgc3RhcnQgPSB7bGluZTogMCwgY2g6IDB9OwotICAgICAgICAgICAgY29uc3QgZW5kID0g
e2xpbmU6IGVkaXRvci5saW5lQ291bnQoKSAtIDF9OwotICAgICAgICAgICAgY29uc3QgaW5kZW50
U3RyaW5nID0gIiAgICAiOwotICAgICAgICAgICAgbGV0IGJ1aWxkZXIgPSBuZXcgRm9ybWF0dGVy
Q29udGVudEJ1aWxkZXIoaW5kZW50U3RyaW5nKTsKLSAgICAgICAgICAgIGxldCBmb3JtYXR0ZXIg
PSBuZXcgV0kuRm9ybWF0dGVyKGVkaXRvciwgYnVpbGRlcik7Ci0gICAgICAgICAgICBmb3JtYXR0
ZXIuZm9ybWF0KHN0YXJ0LCBlbmQpOwotCi0gICAgICAgICAgICBsZXQgcGFzcyA9IGJ1aWxkZXIu
Zm9ybWF0dGVkQ29udGVudCA9PT0gZXhwZWN0ZWRUZXh0OwotICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5sb2cocGFzcyA/ICJQQVNTIiA6ICJGQUlMIik7Ci0KLSAgICAgICAgICAgIGlmICghcGFz
cykgewotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJJbnB1dDoiKTsKLSAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiLS0tLS0tLS0tLS0iKTsKLSAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmxvZyh0ZXN0VGV4dCk7Ci0gICAgICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5sb2coIi0tLS0tLS0tLS0tIik7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5sb2coIkZvcm1hdHRlZCBPdXRwdXQ6ICIgKyBidWlsZGVyLmZvcm1hdHRlZENvbnRlbnQubGVu
Z3RoKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiLS0tLS0tLS0tLS0iKTsK
LSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZyhidWlsZGVyLmZvcm1hdHRlZENvbnRl
bnQpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCItLS0tLS0tLS0tLSIpOwot
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJFeHBlY3RlZCBPdXRwdXQ6ICIgKyBl
eHBlY3RlZFRleHQubGVuZ3RoKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygi
LS0tLS0tLS0tLS0iKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZyhleHBlY3Rl
ZFRleHQpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCItLS0tLS0tLS0tLSIp
OwotICAgICAgICAgICAgfQotICAgICAgICB9KTsKLSAgICB9Ci0KLSAgICB3aW5kb3cuYWRkUHJl
dHR5UHJpbnRpbmdUZXN0cyA9IGZ1bmN0aW9uKHN1aXRlLCBtb2RlLCB0ZXN0cykgewotICAgICAg
ICBsZXQgdGVzdFBhZ2VVUkwgPSBXSS5uZXR3b3JrTWFuYWdlci5tYWluRnJhbWUubWFpblJlc291
cmNlLnVybDsKLSAgICAgICAgbGV0IHRlc3RQYWdlUmVzb3VyY2VzVVJMID0gdGVzdFBhZ2VVUkwu
c3Vic3RyaW5nKDAsIHRlc3RQYWdlVVJMLmxhc3RJbmRleE9mKCIvIikpOyAgICAgICAgICAgIAot
Ci0gICAgICAgIGZvciAobGV0IHRlc3Qgb2YgdGVzdHMpIHsKLSAgICAgICAgICAgIGxldCB0ZXN0
TmFtZSA9IHRlc3Quc3Vic3RyaW5nKHRlc3QubGFzdEluZGV4T2YoIi8iKSArIDEpOwotICAgICAg
ICAgICAgbGV0IHRlc3RVUkwgPSB0ZXN0UGFnZVJlc291cmNlc1VSTCArICIvIiArIHRlc3Q7Ci0g
ICAgICAgICAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7Ci0gICAgICAgICAgICAgICAgbmFtZTogc3Vp
dGUubmFtZSArICIuIiArIHRlc3ROYW1lLAotICAgICAgICAgICAgICAgIHRlc3QocmVzb2x2ZSwg
cmVqZWN0KSB7IAotICAgICAgICAgICAgICAgICAgICBydW5QcmV0dHlQcmludGluZ1Rlc3QobW9k
ZSwgdGVzdE5hbWUsIHRlc3RVUkwpLnRoZW4ocmVzb2x2ZSkuY2F0Y2gocmVqZWN0KTsKLSAgICAg
ICAgICAgICAgICB9Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfQotICAgIH07Ci19KTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDc3OTczZWM2NDVkLi4yODlmYjBjNjNkMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTktMDktMTAgIEpvc2VwaCBQ
ZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBS
ZW1vdmUgbGVnYWN5IENvZGVNaXJyb3IgYmFzZWQgcHJldHR5IHByaW50ZXJzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDE2MjQKKworICAgICAgICBS
ZXZpZXdlZCBieSBEZXZpbiBSb3Vzc28uCisKKyAgICAgICAgKiBUb29scy9QcmV0dHlQcmludGlu
Zy9Gb3JtYXR0ZXJEZWJ1Zy5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBUb29scy9QcmV0dHlQcmlu
dGluZy9VdGlsaXRpZXMuanM6IFJlbW92ZWQuCisgICAgICAgICogVG9vbHMvUHJldHR5UHJpbnRp
bmcvY29kZW1pcnJvci1hZGRpdGlvbnMuY3NzOiBSZW1vdmVkLgorICAgICAgICAqIFRvb2xzL1By
ZXR0eVByaW50aW5nL2luZGV4Lmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogVG9vbHMvUHJldHR5
UHJpbnRpbmcvcG9wdWxhdGUvYXBwbGUuY3NzOiBSZW1vdmVkLgorICAgICAgICAqIFVzZXJJbnRl
cmZhY2UvQ29udHJvbGxlcnMvRm9ybWF0dGVyLmpzOiBSZW1vdmVkLgorICAgICAgICAqIFVzZXJJ
bnRlcmZhY2UvTWFpbi5odG1sOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVGVzdC5odG1sOgor
ICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvQ29kZU1pcnJvckZvcm1hdHRlcnMuanM6IFJl
bW92ZWQuCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9UZXh0RWRpdG9yLmpzOgorICAg
ICAgICAoV0kuVGV4dEVkaXRvci5wcm90b3R5cGUucHJldHR5UHJpbnQpOgorICAgICAgICAoV0ku
VGV4dEVkaXRvci5wcm90b3R5cGUuX2NhblVzZUZvcm1hdHRlcldvcmtlcik6IERlbGV0ZWQuCisg
ICAgICAgIChXSS5UZXh0RWRpdG9yLnByb3RvdHlwZS5fc3RhcnRDb2RlTWlycm9yUHJldHR5UHJp
bnQpOiBEZWxldGVkLgorICAgICAgICAqIFdlYkluc3BlY3RvclVJLnZjeHByb2ovV2ViSW5zcGVj
dG9yVUkudmN4cHJvajoKKyAgICAgICAgKiBXZWJJbnNwZWN0b3JVSS52Y3hwcm9qL1dlYkluc3Bl
Y3RvclVJLnZjeHByb2ouZmlsdGVyczoKKwogMjAxOS0wOS0wOSAgSm9zZXBoIFBlY29yYXJvICA8
cGVjb3Jhcm9AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IERhcmsgTW9kZTog
T3ZlcnZpZXcgVGltZWxpbmUgVmlldyBoYXMgamFycmluZyB3aGl0ZSBib3gtc2hhZG93cyBpbiBk
YXJrIG1vZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Ub29scy9QcmV0dHlQ
cmludGluZy9Gb3JtYXR0ZXJEZWJ1Zy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Ub29scy9Q
cmV0dHlQcmludGluZy9Gb3JtYXR0ZXJEZWJ1Zy5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggNGQ5ZjcxYzQ0YTAuLjAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Ub29scy9QcmV0dHlQcmludGluZy9Gb3JtYXR0ZXJEZWJ1Zy5qcworKysgL2Rldi9udWxsCkBA
IC0xLDU0ICswLDAgQEAKLVdJLkZvcm1hdHRlci5wcm90b3R5cGUuZGVidWcgPSBmdW5jdGlvbihm
cm9tLCB0bykKLXsKLSAgICB2YXIgZGVidWcgPSAiIjsKLSAgICB2YXIgb3V0ZXJNb2RlID0gdGhp
cy5fY29kZU1pcnJvci5nZXRNb2RlKCk7Ci0gICAgdmFyIGNvbnRlbnQgPSB0aGlzLl9jb2RlTWly
cm9yLmdldFJhbmdlKGZyb20sIHRvKTsKLSAgICB2YXIgc3RhdGUgPSBDb2RlTWlycm9yLmNvcHlT
dGF0ZShvdXRlck1vZGUsIHRoaXMuX2NvZGVNaXJyb3IuZ2V0VG9rZW5BdChmcm9tKS5zdGF0ZSk7
Ci0KLSAgICBmdW5jdGlvbiBwYWQoc3RyLCB4LCBkb05vdFF1b3RlKQotICAgIHsKLSAgICAgICAg
dmFyIHJlc3VsdCA9IGRvTm90UXVvdGUgPyBzdHIgOiAiJyIgKyBzdHIgKyAiJyI7Ci0gICAgICAg
IGZvciAodmFyIHRvUGFkID0geCAtIHJlc3VsdC5sZW5ndGg7IHRvUGFkID4gMDsgLS10b1BhZCkK
LSAgICAgICAgICAgIHJlc3VsdCArPSAiICI7Ci0gICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAg
fQotCi0gICAgZnVuY3Rpb24gZGVidWdUb2tlbihtb2RlLCB0b2tlbiwgc3RhdGUsIHN0cmVhbSwg
b3JpZ2luYWxQb3NpdGlvbiwgc3RhcnRPZk5ld0xpbmUpCi0gICAgewotICAgICAgICAvLyBUb2tl
biBUeXBlCi0gICAgICAgIGRlYnVnICs9ICJUb2tlbjogIiArIHBhZChTdHJpbmcodG9rZW4pLCAx
NCwgIXRva2VuKTsKLQotICAgICAgICAvLyBPcmlnaW5hbCBQb3NpdGlvbgotICAgICAgICBkZWJ1
ZyArPSAiUG9zaXRpb246ICIgKyBwYWQoU3RyaW5nKG9yaWdpbmFsUG9zaXRpb24pLCAxMCk7Ci0K
LSAgICAgICAgLy8gTGFuZ3VhZ2UgU3BlY2lmaWMgSW5mbwotICAgICAgICBpZiAoc3RhdGUubGV4
aWNhbCkgewotICAgICAgICAgICAgLy8gSmF2YVNjcmlwdAotICAgICAgICAgICAgZGVidWcgKz0g
IkxleGljYWw6ICIgKyBwYWQoU3RyaW5nKHN0YXRlLmxleGljYWwudHlwZSksIDEwKTsgLy8gSmF2
YVNjcmlwdAotICAgICAgICAgICAgZGVidWcgKz0gIlByZXY6ICIgKyBwYWQoU3RyaW5nKHN0YXRl
LmxleGljYWwucHJldiA/IHN0YXRlLmxleGljYWwucHJldi50eXBlIDogc3RhdGUubGV4aWNhbC5w
cmV2KSwgMTAsICFzdGF0ZS5sZXhpY2FsLnByZXYpOwotICAgICAgICB9IGVsc2UgaWYgKHN0YXRl
LnN0YXRlKSB7Ci0gICAgICAgICAgICAvLyBDU1MKLSAgICAgICAgICAgIGRlYnVnICs9ICJTdGF0
ZTogIiArIHBhZChTdHJpbmcoc3RhdGUuc3RhdGUpLCAxNik7Ci0gICAgICAgIH0KLQotICAgICAg
ICAvLyBTdHJpbmcKLSAgICAgICAgZGVidWcgKz0gIkN1cnJlbnQ6ICciICsgc3RyZWFtLmN1cnJl
bnQoKSArICInXG4iOwotICAgIH0KLQotICAgIHZhciBsaW5lT2Zmc2V0ID0gMDsKLSAgICB2YXIg
bGluZXMgPSBjb250ZW50LnNwbGl0KCJcbiIpOwotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGlu
ZXMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgdmFyIGxpbmUgPSBsaW5lc1tpXTsKLSAgICAgICAg
dmFyIHN0YXJ0T2ZOZXdMaW5lID0gdHJ1ZTsKLSAgICAgICAgdmFyIHN0cmVhbSA9IG5ldyBDb2Rl
TWlycm9yLlN0cmluZ1N0cmVhbShsaW5lKTsKLSAgICAgICAgd2hpbGUgKCFzdHJlYW0uZW9sKCkp
IHsKLSAgICAgICAgICAgIHZhciBpbm5lck1vZGUgPSBDb2RlTWlycm9yLmlubmVyTW9kZShvdXRl
ck1vZGUsIHN0YXRlKTsKLSAgICAgICAgICAgIHZhciB0b2tlbiA9IG91dGVyTW9kZS50b2tlbihz
dHJlYW0sIHN0YXRlKTsKLSAgICAgICAgICAgIGRlYnVnVG9rZW4oaW5uZXJNb2RlLm1vZGUsIHRv
a2VuLCBzdGF0ZSwgc3RyZWFtLCBsaW5lT2Zmc2V0ICsgc3RyZWFtLnN0YXJ0LCBzdGFydE9mTmV3
TGluZSk7Ci0gICAgICAgICAgICBzdHJlYW0uc3RhcnQgPSBzdHJlYW0ucG9zOwotICAgICAgICAg
ICAgc3RhcnRPZk5ld0xpbmUgPSBmYWxzZTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIHJldHVy
biBkZWJ1ZzsKLX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVG9vbHMvUHJl
dHR5UHJpbnRpbmcvVXRpbGl0aWVzLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1Rvb2xzL1By
ZXR0eVByaW50aW5nL1V0aWxpdGllcy5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
NzQ5OThjNWE3ZjAuLjAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Ub29s
cy9QcmV0dHlQcmludGluZy9VdGlsaXRpZXMuanMKKysrIC9kZXYvbnVsbApAQCAtMSw5ICswLDAg
QEAKLU9iamVjdC5kZWZpbmVQcm9wZXJ0eShBcnJheS5wcm90b3R5cGUsICJsYXN0VmFsdWUiLAot
ewotICAgIGdldDogZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgaWYgKCF0aGlzLmxlbmd0aCkK
LSAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7Ci0gICAgICAgIHJldHVybiB0aGlzW3RoaXMu
bGVuZ3RoIC0gMV07Ci0gICAgfQotfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVG9vbHMvUHJldHR5UHJpbnRpbmcvY29kZW1pcnJvci1hZGRpdGlvbnMuY3NzIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL1Rvb2xzL1ByZXR0eVByaW50aW5nL2NvZGVtaXJyb3ItYWRkaXRpb25z
LmNzcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDMzZjUxZmYxZTMuLjAwMDAwMDAw
MDAwCi0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Ub29scy9QcmV0dHlQcmludGluZy9jb2Rl
bWlycm9yLWFkZGl0aW9ucy5jc3MKKysrIC9kZXYvbnVsbApAQCAtMSwxNjcgKzAsMCBAQAotLkNv
ZGVNaXJyb3IgewotICAgIGhlaWdodDogYXV0bzsKLX0KLQotYm9keSB7Ci0gIGZvbnQtZmFtaWx5
OiBEcm9pZCBTYW5zLCBBcmlhbCwgc2Fucy1zZXJpZjsKLSAgbGluZS1oZWlnaHQ6IDEuNTsKLSAg
bWF4LXdpZHRoOiA2NC4zZW07Ci0gIG1hcmdpbjogM2VtIGF1dG87Ci0gIHBhZGRpbmc6IDAgMWVt
OwotfQotCi1oMSB7Ci0gIGxldHRlci1zcGFjaW5nOiAtM3B4OwotICBmb250LXNpemU6IDMuMjNl
bTsKLSAgZm9udC13ZWlnaHQ6IGJvbGQ7Ci0gIG1hcmdpbjogMDsKLX0KLQotaDIgewotICBmb250
LXNpemU6IDEuMjNlbTsKLSAgZm9udC13ZWlnaHQ6IGJvbGQ7Ci0gIG1hcmdpbjogLjVlbSAwOwot
ICBsZXR0ZXItc3BhY2luZzogLTFweDsKLX0KLQotaDMgewotICBmb250LXNpemU6IDEuMWVtOwot
ICBmb250LXdlaWdodDogYm9sZDsKLSAgbWFyZ2luOiAuNGVtIDA7Ci19Ci0KLXByZSB7Ci0gIGJh
Y2tncm91bmQtY29sb3I6ICNlZWU7Ci0gIGJvcmRlci1yYWRpdXM6IDZweDsKLSAgcGFkZGluZzog
MWVtOwotfQotCi1wcmUuY29kZSB7Ci0gIG1hcmdpbjogMCAxZW07Ci19Ci0KLS5ncmV5IHsKLSAg
YmFja2dyb3VuZC1jb2xvcjogI2VlZTsKLSAgYm9yZGVyLXJhZGl1czogNnB4OwotICBtYXJnaW4t
Ym90dG9tOiAxLjY1ZW07Ci0gIG1hcmdpbi10b3A6IDAuODI1ZW07Ci0gIHBhZGRpbmc6IDAuODI1
ZW0gMS42NWVtOwotICBwb3NpdGlvbjogcmVsYXRpdmU7Ci19Ci0KLWltZy5sb2dvIHsKLSAgcG9z
aXRpb246IGFic29sdXRlOwotICByaWdodDogLTFlbTsKLSAgYm90dG9tOiA0cHg7Ci0gIG1heC13
aWR0aDogMjMuNjg3NWVtOyAvKiBTY2FsZSBpbWFnZSBkb3duIHdpdGggdGV4dCB0byBwcmV2ZW50
IGNsaXBwaW5nICovCi19Ci0KLS5ncmV5ID4gcHJlIHsKLSAgYmFja2dyb3VuZDpub25lOwotICBi
b3JkZXItcmFkaXVzOjA7Ci0gIHBhZGRpbmc6MDsKLSAgbWFyZ2luOjA7Ci0gIGZvbnQtc2l6ZToy
LjJlbTsKLSAgbGluZS1oZWlnaHQ6MS4yZW07Ci19Ci0KLWE6bGluaywgYTp2aXNpdGVkLCAucXVh
c2lsaW5rIHsKLSAgY29sb3I6ICNkZjAwMTk7Ci0gIGN1cnNvcjogcG9pbnRlcjsKLSAgdGV4dC1k
ZWNvcmF0aW9uOiBub25lOwotfQotCi1hOmhvdmVyLCAucXVhc2lsaW5rOmhvdmVyIHsKLSAgY29s
b3I6ICM4MDAwMDQ7Ci19Ci0KLWgxIGE6bGluaywgaDEgYTp2aXNpdGVkLCBoMSBhOmhvdmVyIHsK
LSAgY29sb3I6IGJsYWNrOwotfQotCi11bCB7Ci0gIG1hcmdpbjogMDsKLSAgcGFkZGluZy1sZWZ0
OiAxLjJlbTsKLX0KLQotYS5kb3dubG9hZCB7Ci0gIGNvbG9yOiB3aGl0ZTsKLSAgYmFja2dyb3Vu
ZC1jb2xvcjogI2RmMDAxOTsKLSAgd2lkdGg6IDEwMCU7Ci0gIGRpc3BsYXk6IGJsb2NrOwotICB0
ZXh0LWFsaWduOiBjZW50ZXI7Ci0gIGZvbnQtc2l6ZTogMS4yM2VtOwotICBmb250LXdlaWdodDog
Ym9sZDsKLSAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwotICBib3JkZXItcmFkaXVzOiA2cHg7Ci0g
IHBhZGRpbmc6IC41ZW0gMDsKLSAgbWFyZ2luLWJvdHRvbTogMWVtOwotfQotCi1hLmRvd25sb2Fk
OmhvdmVyIHsKLSAgYmFja2dyb3VuZC1jb2xvcjogI2JiMDAxMDsKLX0KLQotLnJlbCB7Ci0gIG1h
cmdpbi1ib3R0b206IDA7Ci19Ci0KLS5yZWwtbm90ZSB7Ci0gIGNvbG9yOiAjNzc3OwotICBmb250
LXNpemU6IC45ZW07Ci0gIG1hcmdpbi10b3A6IC4xZW07Ci19Ci0KLS5sb2dvLWJyYWNlcyB7Ci0g
IGNvbG9yOiAjZGYwMDE5OwotICBwb3NpdGlvbjogcmVsYXRpdmU7Ci0gIHRvcDogLTRweDsKLX0K
LQotLmJsayB7Ci0gIGZsb2F0OiBsZWZ0OwotfQotCi0ubGVmdCB7Ci0gIG1hcmdpbi1yaWdodDog
MjAuNjhlbTsKLSAgbWF4LXdpZHRoOiAzN2VtOwotICBwYWRkaW5nLXJpZ2h0OiA2LjUzZW07Ci0g
IHBhZGRpbmctYm90dG9tOiAxZW07Ci19Ci0KLS5sZWZ0MSB7Ci0gIHdpZHRoOiAxNS4yNGVtOwot
ICBwYWRkaW5nLXJpZ2h0OiA2LjQ1ZW07Ci19Ci0KLS5sZWZ0MiB7Ci0gIG1heC13aWR0aDogMTUu
MjRlbTsKLX0KLQotLnJpZ2h0IHsKLSAgd2lkdGg6IDIwLjY4ZW07Ci0gIG1hcmdpbi1sZWZ0OiAt
MjAuNjhlbTsKLX0KLQotLmxlZnRiaWcgewotICB3aWR0aDogNDIuNDRlbTsKLSAgcGFkZGluZy1y
aWdodDogNi41M2VtOwotfQotCi0ucmlnaHRzbWFsbCB7Ci0gIHdpZHRoOiAxNS4yNGVtOwotfQot
Ci0uY2xlYXI6OmFmdGVyIHsKLSAgdmlzaWJpbGl0eTogaGlkZGVuOwotICBkaXNwbGF5OiBibG9j
azsKLSAgZm9udC1zaXplOiAwOwotICBjb250ZW50OiAiICI7Ci0gIGNsZWFyOiBib3RoOwotICBo
ZWlnaHQ6IDA7Ci19Ci0uY2xlYXIgeyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH0KLS8qIHN0YXJ0
IGNvbW1lbnRlZCBiYWNrc2xhc2ggaGFjayBcKi8KLSogaHRtbCAuY2xlYXIgeyBoZWlnaHQ6IDEl
OyB9Ci0uY2xlYXIgeyBkaXNwbGF5OiBibG9jazsgfQotLyogY2xvc2UgY29tbWVudGVkIGJhY2tz
bGFzaCBoYWNrICovCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVG9vbHMvUHJl
dHR5UHJpbnRpbmcvaW5kZXguaHRtbCBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Ub29scy9QcmV0
dHlQcmludGluZy9pbmRleC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkNDIx
NjZhY2IzNi4uMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Rvb2xzL1By
ZXR0eVByaW50aW5nL2luZGV4Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzMTkgKzAsMCBAQAot
PCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotICAgIDx0aXRsZT5EZWJ1ZzwvdGl0bGU+
Ci0gICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9Vc2VySW50ZXJmYWNlL0V4
dGVybmFsL0NvZGVNaXJyb3IvY29kZW1pcnJvci5jc3MiPgotICAgIDxsaW5rIHJlbD0ic3R5bGVz
aGVldCIgaHJlZj0iY29kZW1pcnJvci1hZGRpdGlvbnMuY3NzIj4KLSAgICA8c2NyaXB0IHNyYz0i
VXRpbGl0aWVzLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iLi4vLi4vVXNlckludGVy
ZmFjZS9FeHRlcm5hbC9Db2RlTWlycm9yL2NvZGVtaXJyb3IuanMiPjwvc2NyaXB0PgotICAgIDxz
Y3JpcHQgc3JjPSIuLi8uLi9Vc2VySW50ZXJmYWNlL0V4dGVybmFsL0NvZGVNaXJyb3IvamF2YXNj
cmlwdC5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9Ii4uLy4uL1VzZXJJbnRlcmZhY2Uv
RXh0ZXJuYWwvQ29kZU1pcnJvci9jc3MuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSIu
Li8uLi9Vc2VySW50ZXJmYWNlL0Jhc2UvV2ViSW5zcGVjdG9yLmpzIj48L3NjcmlwdD4KLSAgICA8
c2NyaXB0IHNyYz0iLi4vLi4vVXNlckludGVyZmFjZS9WaWV3cy9Db2RlTWlycm9yQWRkaXRpb25z
LmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iLi4vLi4vVXNlckludGVyZmFjZS9Db250
cm9sbGVycy9Gb3JtYXR0ZXIuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJGb3JtYXR0
ZXJEZWJ1Zy5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9Ii4uLy4uL1VzZXJJbnRlcmZh
Y2UvV29ya2Vycy9Gb3JtYXR0ZXIvRm9ybWF0dGVyQ29udGVudEJ1aWxkZXIuanMiPjwvc2NyaXB0
PgotICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvZGVNaXJyb3JG
b3JtYXR0ZXJzLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotCi0gICAgPGgxPkRlYnVn
IFByZXR0eSBQcmludGluZzwvaDE+Ci0KLSAgICA8IS0tIENvbnRyb2xzIC0tPgotICAgIDxzZWxl
Y3QgaWQ9Im1vZGUiPgotICAgICAgICA8b3B0aW9uIHNlbGVjdGVkIHZhbHVlPSJ0ZXh0L2phdmFz
Y3JpcHQiPkphdmFTY3JpcHQ8L29wdGlvbj4KLSAgICAgICAgPG9wdGlvbiB2YWx1ZT0idGV4dC9j
c3MiPkNTUzwvb3B0aW9uPgotICAgIDwvc2VsZWN0PgotICAgIDxidXR0b24gaWQ9InBvcHVsYXRl
Ij5Qb3B1bGF0ZTwvYnV0dG9uPgotICAgIDxidXR0b24gaWQ9InJ1bi10ZXN0cyI+UnVuIFRlc3Rz
PC9idXR0b24+Ci0gICAgPGJ1dHRvbiBpZD0iY2xlYXIiPkNsZWFyPC9idXR0b24+Ci0gICAgPGJ1
dHRvbiBpZD0ic2VsZWN0LW91dHB1dCI+U2VsZWN0IE91dHB1dDwvYnV0dG9uPgotICAgIDxidXR0
b24gaWQ9InJ1bi1hZ2FpbiI+UnVuIEFnYWluPC9idXR0b24+Ci0gICAgPGJ1dHRvbiBpZD0ic2F2
ZS1hcy11cmwiPlNhdmUgVVJMPC9idXR0b24+Ci0gICAgPGJ1dHRvbiBpZD0ic2F2ZS1sb2NhbC1z
dG9yYWdlIj5TYXZlIHRvIFN0b3JhZ2U8L2J1dHRvbj4KLSAgICA8YnV0dG9uIGlkPSJjbGVhci1s
b2NhbC1zdG9yYWdlIj5DbGVhciBTdG9yYWdlPC9idXR0b24+Ci0gICAgPHNtYWxsIGlkPSJ0aW1l
Ij48L3NtYWxsPgotCi0gICAgPGJyPjxicj4KLQotICAgIDwhLS0gRWRpdG9yIC0tPgotICAgIDx0
ZXh0YXJlYSBpZD0iY29kZSIgbmFtZT0iY29kZSI+PC90ZXh0YXJlYT4KLQotICAgIDwhLS0gT3V0
cHV0IC0tPgotICAgIDxwcmUgaWQ9InByZXR0eSI+PC9wcmU+Ci0gICAgPHByZSBpZD0iZGVidWci
PjwvcHJlPgotCi0gICAgPHNjcmlwdD4KLSAgICAvLyBFZGl0b3IuCi0gICAgdmFyIGNtID0gQ29k
ZU1pcnJvci5mcm9tVGV4dEFyZWEoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvZGUiKSwgewot
ICAgICAgICBsaW5lTnVtYmVyczogdHJ1ZSwKLSAgICB9KTsKLQotICAgIC8vIEluaXRpYWwgdmFs
dWVzIGZyb20gVVJMLgotICAgIHZhciBxdWVyeVBhcmFtcyA9IHt9OwotICAgIGlmICh3aW5kb3cu
bG9jYXRpb24uc2VhcmNoLmxlbmd0aCA+IDApIHsKLSAgICAgICAgdmFyIHNlYXJjaFN0cmluZyA9
IHdpbmRvdy5sb2NhdGlvbi5zZWFyY2guc3Vic3RyaW5nKDEpOwotICAgICAgICB2YXIgZ3JvdXBz
ID0gc2VhcmNoU3RyaW5nLnNwbGl0KCImIik7Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
Z3JvdXBzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgICAgICB2YXIgcGFpciA9IGdyb3Vwc1tpXS5z
cGxpdCgiPSIpOwotICAgICAgICAgICAgcXVlcnlQYXJhbXNbZGVjb2RlVVJJQ29tcG9uZW50KHBh
aXJbMF0pXSA9IGRlY29kZVVSSUNvbXBvbmVudChwYWlyWzFdKTsKLSAgICAgICAgfQotICAgIH0K
LQotICAgIC8vIEluaXRpYWwgbW9kZSBhbmQgc3RyaW5nLgotICAgIHZhciBtb2RlID0gInRleHQv
amF2YXNjcmlwdCI7Ci0gICAgdmFyIGNvbnRlbnQgPSAiKGZ1bmN0aW9uKCkgeyB2YXIgYT0xOyBy
ZXR1cm4gYSsxOyB9KSgpOyI7Ci0gICAgdmFyIHVwZGF0ZVBpY2tlciA9IGZhbHNlOwotICAgIGlm
IChxdWVyeVBhcmFtcy5jb250ZW50IHx8IHF1ZXJ5UGFyYW1zLm1vZGUpIHsKLSAgICAgICAgY29u
dGVudCA9IHF1ZXJ5UGFyYW1zLmNvbnRlbnQgfHwgIiI7Ci0gICAgICAgIG1vZGUgPSBxdWVyeVBh
cmFtcy5tb2RlIHx8ICJ0ZXh0L2phdmFzY3JpcHQiOwotICAgICAgICB1cGRhdGVQaWNrZXIgPSB0
cnVlOwotICAgIH0gZWxzZSBpZiAobG9jYWxTdG9yYWdlLmNvbnRlbnQgfHwgbG9jYWxTdG9yYWdl
Lm1vZGUpIHsKLSAgICAgICAgY29udGVudCA9IGxvY2FsU3RvcmFnZS5jb250ZW50IHx8ICIiOwot
ICAgICAgICBtb2RlID0gbG9jYWxTdG9yYWdlLm1vZGUgfHwgInRleHQvamF2YXNjcmlwdCI7Ci0g
ICAgICAgIHVwZGF0ZVBpY2tlciA9IHRydWU7Ci0gICAgfQotCi0gICAgLy8gSW5pdGlhbCBtb2Rl
IHBpY2tlciB2YWx1ZS4KLSAgICB2YXIgbW9kZVBpY2tlciA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJtb2RlIik7Ci0gICAgaWYgKHVwZGF0ZVBpY2tlcikgewotICAgICAgICBmb3IgKHZhciBp
ID0gMDsgaSA8IG1vZGVQaWNrZXIub3B0aW9ucy5sZW5ndGg7ICsraSkgewotICAgICAgICAgICAg
aWYgKG1vZGVQaWNrZXIub3B0aW9uc1tpXS52YWx1ZSA9PT0gbW9kZSkgewotICAgICAgICAgICAg
ICAgIG1vZGVQaWNrZXIub3B0aW9uc1tpXS5zZWxlY3RlZCA9IHRydWU7Ci0gICAgICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICAvLyBTZXQg
b24gQ29kZU1pcnJvci4KLSAgICBjbS5zZXRWYWx1ZShjb250ZW50KTsKLSAgICBjbS5zZXRPcHRp
b24oIm1vZGUiLCBtb2RlKTsKLQotICAgIC8vIENoYW5naW5nIHRoZSBtb2RlLgotICAgIG1vZGVQ
aWNrZXIuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIiwgZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAg
ICAgY20uc2V0VmFsdWUoIiIpOwotICAgICAgICBjbS5zZXRPcHRpb24oIm1vZGUiLCBtb2RlUGlj
a2VyLnZhbHVlKTsKLSAgICAgICAgcmVmcmVzaCgpOwotICAgIH0pOwotCi0gICAgLy8gUG9wdWxh
dGUgYnV0dG9uIHRvIHBvcHVsYXRlIHdpdGggc29tZSBjYW5uZWQgY29udGVudC4KLSAgICBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgicG9wdWxhdGUiKS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIs
IGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgICAgIHN3aXRjaCAobW9kZVBpY2tlci52YWx1ZSkgewot
ICAgICAgICAgICAgY2FzZSAidGV4dC9qYXZhc2NyaXB0IjoKLSAgICAgICAgICAgICAgICB2YXIg
dXJsID0gIi4uLy4uLy4uLy4uL0xheW91dFRlc3RzL2luc3BlY3Rvci9mb3JtYXR0aW5nL3Jlc291
cmNlcy9qYXZhc2NyaXB0LXRlc3RzL3NhbXBsZS1qcXVlcnkuanMiOwotICAgICAgICAgICAgICAg
IGJyZWFrOwotICAgICAgICAgICAgY2FzZSAidGV4dC9jc3MiOgotICAgICAgICAgICAgICAgIHZh
ciB1cmwgPSAicG9wdWxhdGUvYXBwbGUuY3NzIjsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgfQotCi0gICAgICAgIHZhciB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3Q7Ci0gICAgICAg
IHhoci5vcGVuKCJHRVQiLCB1cmwsIHRydWUpOwotICAgICAgICB4aHIub25sb2FkID0gZnVuY3Rp
b24oKSB7Ci0gICAgICAgICAgICBjbS5zZXRWYWx1ZSh4aHIucmVzcG9uc2VUZXh0KTsKLSAgICAg
ICAgICAgIHNldFRpbWVvdXQocmVmcmVzaCk7Ci0gICAgICAgIH0KLSAgICAgICAgeGhyLnNlbmQo
KTsKLSAgICB9KTsKLQotICAgIC8vIFJ1biBUZXN0cyBidXR0b24uCi0gICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoInJ1bi10ZXN0cyIpLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgZnVuY3Rp
b24oZXZlbnQpIHsKLSAgICAgICAgY20uc2V0VmFsdWUoIi8qIFJ1bm5pbmcgVGVzdHMuLi4gKi8i
KTsKLSAgICAgICAgcmVmcmVzaCgpOwotICAgICAgICBydW5UZXN0cygpOwotICAgIH0pOwotCi0g
ICAgLy8gQ2xlYXIgYnV0dG9uLgotICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjbGVhciIp
LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAgICAgY20u
c2V0VmFsdWUoIiIpOwotICAgICAgICByZWZyZXNoKCk7Ci0gICAgfSk7Ci0KLSAgICAvLyBTZWxl
Y3Qgb3V0cHV0IGJ1dHRvbi4KLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2VsZWN0LW91
dHB1dCIpLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAg
ICAgdmFyIHJhbmdlID0gZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTsKLSAgICAgICAgcmFuZ2Uuc2Vs
ZWN0Tm9kZUNvbnRlbnRzKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwcmV0dHkiKSk7Ci0gICAg
ICAgIHZhciBzZWxlY3Rpb24gPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7Ci0gICAgICAgIHNlbGVj
dGlvbi5yZW1vdmVBbGxSYW5nZXMoKTsKLSAgICAgICAgc2VsZWN0aW9uLmFkZFJhbmdlKHJhbmdl
KTsKLSAgICB9KTsKLQotICAgIC8vIFJ1biBhZ2FpbiBidXR0b24uCi0gICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoInJ1bi1hZ2FpbiIpLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgZnVuY3Rp
b24oZXZlbnQpIHsKLSAgICAgICAgcmVmcmVzaCgpOwotICAgIH0pOwotCi0gICAgLy8gU2F2ZSBh
cyBVUkwgYnV0dG9uLgotICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzYXZlLWFzLXVybCIp
LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAgICAgdmFy
IG1vZGUgPSBtb2RlUGlja2VyLnZhbHVlOwotICAgICAgICB2YXIgY29udGVudCA9IGNtLmdldFZh
bHVlKCk7Ci0gICAgICAgIHdpbmRvdy5sb2NhdGlvbi5zZWFyY2ggPSAiP21vZGU9IiArIHdpbmRv
dy5lbmNvZGVVUklDb21wb25lbnQobW9kZSkgKyAiJmNvbnRlbnQ9IiArIHdpbmRvdy5lbmNvZGVV
UklDb21wb25lbnQoY29udGVudCk7Ci0gICAgfSk7Ci0KLSAgICAvLyBTYXZlIHRvIGxvY2FsU3Rv
cmFnZS4KLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2F2ZS1sb2NhbC1zdG9yYWdlIiku
YWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBmdW5jdGlvbihldmVudCkgewotICAgICAgICBsb2Nh
bFN0b3JhZ2UubW9kZSA9IG1vZGVQaWNrZXIudmFsdWU7Ci0gICAgICAgIGxvY2FsU3RvcmFnZS5j
b250ZW50ID0gY20uZ2V0VmFsdWUoKTsKLSAgICB9KTsKLQotICAgIC8vIENsZWFyIGxvY2FsU3Rv
cmFnZS4KLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2xlYXItbG9jYWwtc3RvcmFnZSIp
LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAgICAgbG9j
YWxTdG9yYWdlLnJlbW92ZUl0ZW0oIm1vZGUiKTsKLSAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92
ZUl0ZW0oImNvbnRlbnQiKTsKLSAgICB9KTsKLQotICAgIC8vIEJ1dHRvbiBoZWxwZXJzLgotICAg
IHZhciBidXR0b25zID0gWyJtb2RlIiwgInBvcHVsYXRlIiwgInJ1bi10ZXN0cyIsICJjbGVhciIs
ICJzZWxlY3Qtb3V0cHV0IiwgInJ1bi1hZ2FpbiJdOwotICAgIGZ1bmN0aW9uIGRpc2FibGVCdXR0
b25zKCkgewotICAgICAgICBidXR0b25zLmZvckVhY2goZnVuY3Rpb24oaWQpIHsKLSAgICAgICAg
ICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5kaXNhYmxlZCA9IHRydWU7Ci0gICAgICAg
IH0pOwotICAgIH0KLSAgICBmdW5jdGlvbiBlbmFibGVCdXR0b25zKCkgewotICAgICAgICBidXR0
b25zLmZvckVhY2goZnVuY3Rpb24oaWQpIHsKLSAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKGlkKS5kaXNhYmxlZCA9IGZhbHNlOwotICAgICAgICB9KTsKLSAgICB9Ci0KLSAgICAv
LyBSZWZyZXNoIGFmdGVyIGNoYW5nZXMgYWZ0ZXIgYSBzaG9ydCBkZWxheS4KLSAgICB2YXIgdGlt
ZXIgPSBudWxsOwotICAgIGNtLm9uKCJjaGFuZ2UiLCBmdW5jdGlvbihjb2RlTWlycm9yLCBjaGFu
Z2UpIHsKLSAgICAgICAgaWYgKHRpbWVyKQotICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVy
KQotICAgICAgICB0aW1lciA9IHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBj
bGVhclRpbWVvdXQodGltZXIpOwotICAgICAgICAgICAgdGltZXIgPSBudWxsOwotICAgICAgICAg
ICAgcmVmcmVzaCgpOwotICAgICAgICB9LCA1MDApOwotICAgIH0pOwotCi0gICAgLy8gT3V0cHV0
IGVsZW1lbnRzLgotICAgIHZhciB0aW1lT3V0cHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
InRpbWUiKTsKLSAgICB2YXIgcHJldHR5UHJlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBy
ZXR0eSIpOwotICAgIHZhciBkZWJ1Z1ByZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkZWJ1
ZyIpOwotCi0gICAgZnVuY3Rpb24gcmVmcmVzaCgpIHsKLSAgICAgICAgaWYgKHRpbWVyKQotICAg
ICAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVyKTsKLQotICAgICAgICBjb25zdCBzdGFydCA9IHts
aW5lOiAwLCBjaDogMH07Ci0gICAgICAgIGNvbnN0IGVuZCA9IHtsaW5lOiBjbS5saW5lQ291bnQo
KSAtIDF9OwotCi0gICAgICAgIC8vIFNldHVwLgotICAgICAgICBjb25zdCBpbmRlbnRTdHJpbmcg
PSAiICAgICI7Ci0gICAgICAgIHZhciBidWlsZGVyID0gbmV3IEZvcm1hdHRlckNvbnRlbnRCdWls
ZGVyKGluZGVudFN0cmluZyk7Ci0gICAgICAgIHZhciBmb3JtYXR0ZXIgPSBuZXcgV0kuRm9ybWF0
dGVyKGNtLCBidWlsZGVyKTsKLQotICAgICAgICAvLyBUaW1lIHRoZSBmb3JtYXR0ZXIuCi0gICAg
ICAgIHZhciBzdGFydFRpbWUgPSBEYXRlLm5vdygpOwotICAgICAgICBmb3JtYXR0ZXIuZm9ybWF0
KHN0YXJ0LCBlbmQpOwotICAgICAgICB2YXIgZW5kVGltZSA9IERhdGUubm93KCk7Ci0KLSAgICAg
ICAgLy8gR2F0aGVyIGRlYnVnIGluZm9ybWF0aW9uLgotICAgICAgICB2YXIgZGVidWcgPSBmb3Jt
YXR0ZXIuZGVidWcoc3RhcnQsIGVuZCk7Ci0KLSAgICAgICAgLy8gT3V0cHV0IHRoZSByZXN1bHRz
LgotICAgICAgICB0aW1lT3V0cHV0LmlubmVyVGV4dCA9IChlbmRUaW1lIC0gc3RhcnRUaW1lKSAr
ICJtcyI7Ci0gICAgICAgIHByZXR0eVByZS5pbm5lclRleHQgPSBidWlsZGVyLmZvcm1hdHRlZENv
bnRlbnQ7Ci0gICAgICAgIGRlYnVnUHJlLmlubmVyVGV4dCA9IGRlYnVnOwotICAgIH0KLQotICAg
IHNldFRpbWVvdXQocmVmcmVzaCk7Ci0KLSAgICAvLyBUZXN0cy4KLSAgICBmdW5jdGlvbiBydW5U
ZXN0cygpIHsKLSAgICAgICAgZGlzYWJsZUJ1dHRvbnMoKTsKLSAgICAgICAgZnVuY3Rpb24gY29t
cGxldGVkQ2FsbGJhY2soKSB7Ci0gICAgICAgICAgICBlbmFibGVCdXR0b25zKCk7Ci0gICAgICAg
IH0KLQotICAgICAgICBpZiAobW9kZVBpY2tlci52YWx1ZSA9PT0gInRleHQvamF2YXNjcmlwdCIp
Ci0gICAgICAgICAgICBydW5KYXZhU2NyaXB0VGVzdHMoY29tcGxldGVkQ2FsbGJhY2spOwotICAg
ICAgICBlbHNlCi0gICAgICAgICAgICBydW5DU1NUZXN0cyhjb21wbGV0ZWRDYWxsYmFjayk7Ci0g
ICAgfQotICAgIGZ1bmN0aW9uIHJ1bkphdmFTY3JpcHRUZXN0cyhjYWxsYmFjaykgewotICAgICAg
ICBfcnVuVGVzdHMoY2FsbGJhY2ssIFsKLSAgICAgICAgICAgICJqYXZhc2NyaXB0LXRlc3RzL2Js
b2NrLWNvbW1lbnQuanMiLAotICAgICAgICAgICAgImphdmFzY3JpcHQtdGVzdHMvc2luZ2xlLXN0
YXRlbWVudC1ibG9ja3MuanMiLAotICAgICAgICAgICAgImphdmFzY3JpcHQtdGVzdHMvc3dpdGNo
LWNhc2UtZGVmYXVsdC5qcyIsCi0gICAgICAgIF0pOwotICAgIH0KLSAgICBmdW5jdGlvbiBydW5D
U1NUZXN0cyhjYWxsYmFjaykgewotICAgICAgICBfcnVuVGVzdHMoY2FsbGJhY2ssIFsKLSAgICAg
ICAgICAgICJjc3MtdGVzdHMvYmFzaWMuY3NzIiwKLSAgICAgICAgICAgICJjc3MtdGVzdHMvY2Fs
Yy5jc3MiLAotICAgICAgICAgICAgImNzcy10ZXN0cy9ncmFkaWVudC5jc3MiLAotICAgICAgICAg
ICAgImNzcy10ZXN0cy9rZXlmcmFtZXMuY3NzIiwKLSAgICAgICAgICAgICJjc3MtdGVzdHMvbWVk
aWEtcXVlcnkuY3NzIiwKLSAgICAgICAgICAgICJjc3MtdGVzdHMvc2VsZWN0b3JzLmNzcyIsCi0g
ICAgICAgICAgICAiY3NzLXRlc3RzL3dyYXBwaW5nLmNzcyIsCi0gICAgICAgIF0pOwotICAgIH0K
LSAgICBmdW5jdGlvbiBfcnVuVGVzdHMoY2FsbGJhY2ssIG1hbmlmZXN0KSB7Ci0gICAgICAgIHZh
ciBpbmRleCA9IC0xOwotICAgICAgICB2YXIgcmVzdWx0cyA9IFtdOwotICAgICAgICBzZXRUaW1l
b3V0KHJ1bk5leHRUZXN0LCAwKTsKLQotICAgICAgICBmdW5jdGlvbiBydW5OZXh0VGVzdCgpIHsK
LSAgICAgICAgICAgIC8vIE5leHQgdGVzdC4KLSAgICAgICAgICAgIGluZGV4Kys7Ci0KLSAgICAg
ICAgICAgIC8vIERvbmUuCi0gICAgICAgICAgICBpZiAoaW5kZXggPj0gbWFuaWZlc3QubGVuZ3Ro
KSB7Ci0gICAgICAgICAgICAgICAgaWYgKCFpbmRleCkKLSAgICAgICAgICAgICAgICAgICAgcmVz
dWx0cy5wdXNoKCIvKiBObyB0ZXN0cyBmb3IgbW9kZTogIiArIG1vZGVQaWNrZXIudmFsdWUpOwot
ICAgICAgICAgICAgICAgIHByaW50UmVzdWx0cygpOwotICAgICAgICAgICAgICAgIHJldHVybjsK
LSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgLy8gTG9hZCB0ZXN0IGFuZCBleHBlY3RlZCBy
ZXN1bHRzLgotICAgICAgICAgICAgdmFyIHRlc3QgPSBtYW5pZmVzdFtpbmRleF07Ci0gICAgICAg
ICAgICB2YXIgdGVzdFVSTCA9ICIuLi8uLi8uLi8uLi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29k
ZW1pcnJvci9yZXNvdXJjZXMvcHJldHR5cHJpbnRpbmcvIiArIHRlc3Q7Ci0gICAgICAgICAgICB2
YXIgZXhwZWN0ZWRVUkwgPSB0ZXN0VVJMLnJlcGxhY2UoL1wuKFteXC5dKykkLywgIi1leHBlY3Rl
ZC4kMSIpOwotICAgICAgICAgICAgdmFyIHhocjEgPSBuZXcgWE1MSHR0cFJlcXVlc3Q7Ci0gICAg
ICAgICAgICB4aHIxLm9wZW4oIkdFVCIsIHRlc3RVUkwsIGZhbHNlKTsKLSAgICAgICAgICAgIHho
cjEuc2VuZCgpOwotICAgICAgICAgICAgdmFyIHhocjIgPSBuZXcgWE1MSHR0cFJlcXVlc3Q7Ci0g
ICAgICAgICAgICB4aHIyLm9wZW4oIkdFVCIsIGV4cGVjdGVkVVJMLCBmYWxzZSk7Ci0gICAgICAg
ICAgICB4aHIyLnNlbmQoKTsKLSAgICAgICAgICAgIHZhciB0ZXN0RGF0YSA9IHhocjEucmVzcG9u
c2VUZXh0OwotICAgICAgICAgICAgdmFyIGV4cGVjdGVkRGF0YSA9IHhocjIucmVzcG9uc2VUZXh0
OwotCi0gICAgICAgICAgICAvLyBSdW4gdGhlIHRlc3QuCi0gICAgICAgICAgICB2YXIgZWRpdG9y
ID0gQ29kZU1pcnJvcihkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSk7Ci0gICAgICAgICAg
ICBlZGl0b3Iuc2V0T3B0aW9uKCJtb2RlIiwgbW9kZVBpY2tlci52YWx1ZSk7Ci0gICAgICAgICAg
ICBlZGl0b3Iuc2V0VmFsdWUodGVzdERhdGEpOwotICAgICAgICAgICAgY29uc3Qgc3RhcnQgPSB7
bGluZTogMCwgY2g6IDB9OwotICAgICAgICAgICAgY29uc3QgZW5kID0ge2xpbmU6IGVkaXRvci5s
aW5lQ291bnQoKSAtIDF9OwotICAgICAgICAgICAgY29uc3QgaW5kZW50U3RyaW5nID0gIiAgICAi
OwotICAgICAgICAgICAgdmFyIGJ1aWxkZXIgPSBuZXcgRm9ybWF0dGVyQ29udGVudEJ1aWxkZXIo
aW5kZW50U3RyaW5nKTsKLSAgICAgICAgICAgIHZhciBmb3JtYXR0ZXIgPSBuZXcgV0kuRm9ybWF0
dGVyKGVkaXRvciwgYnVpbGRlcik7Ci0gICAgICAgICAgICBmb3JtYXR0ZXIuZm9ybWF0KHN0YXJ0
LCBlbmQpOwotCi0gICAgICAgICAgICAvLyBDb21wYXJlIHJlc3VsdHMuCi0gICAgICAgICAgICB2
YXIgcGFzcyA9IGJ1aWxkZXIuZm9ybWF0dGVkQ29udGVudCA9PT0gZXhwZWN0ZWREYXRhOwotICAg
ICAgICAgICAgcmVzdWx0cy5wdXNoKCIvKiAiICsgKHBhc3MgPyAiUEFTUyIgOiAiRkFJTCIpICsg
IjogIiArIHRlc3QgKyAiICovIik7Ci0KLSAgICAgICAgICAgIC8vIE91dHB1dCBmYWlsdXJlcyB0
byBjb25zb2xlLgotICAgICAgICAgICAgaWYgKCFwYXNzKSB7Ci0gICAgICAgICAgICAgICAgY29u
c29sZS5sb2coIlRlc3QiLCB0ZXN0KTsKLSAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiRm9y
bWF0dGVkIE91dHB1dCIsIGJ1aWxkZXIuZm9ybWF0dGVkQ29udGVudC5sZW5ndGgpOwotICAgICAg
ICAgICAgICAgIGNvbnNvbGUubG9nKGJ1aWxkZXIuZm9ybWF0dGVkQ29udGVudCk7Ci0gICAgICAg
ICAgICAgICAgY29uc29sZS5sb2coIkV4cGVjdGVkIE91dHB1dCIsIGV4cGVjdGVkRGF0YS5sZW5n
dGgpOwotICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGV4cGVjdGVkRGF0YSk7Ci0gICAgICAg
ICAgICB9Ci0KLSAgICAgICAgICAgIHJ1bk5leHRUZXN0KCk7Ci0gICAgICAgIH0KLQotICAgICAg
ICBmdW5jdGlvbiBwcmludFJlc3VsdHMoKSB7Ci0gICAgICAgICAgICBjbS5zZXRWYWx1ZShyZXN1
bHRzLmpvaW4oIlxuIikpOwotICAgICAgICAgICAgY20ucmVmcmVzaCgpOwotICAgICAgICAgICAg
Y2FsbGJhY2soKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIDwvc2NyaXB0PgotPC9ib2R5Pgot
PC9odG1sPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Rvb2xzL1ByZXR0eVBy
aW50aW5nL3BvcHVsYXRlL2FwcGxlLmNzcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Ub29scy9Q
cmV0dHlQcmludGluZy9wb3B1bGF0ZS9hcHBsZS5jc3MKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGYwMzMwMjVlMjg4Li4wMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVG9vbHMvUHJldHR5UHJpbnRpbmcvcG9wdWxhdGUvYXBwbGUuY3NzCisrKyAvZGV2L251bGwK
QEAgLTEsNDY2ICswLDAgQEAKLS8qIFJFU0VUICovCi1odG1sLGJvZHksZGl2LHVsLG9sLGxpLGRs
LGR0LGRkLGgxLGgyLGgzLGg0LGg1LGg2LHByZSxmb3JtLHAsYmxvY2txdW90ZSxmaWVsZHNldCxp
bnB1dCxhYmJyLGFydGljbGUsYXNpZGUsY29tbWFuZCxkZXRhaWxzLGZpZ2NhcHRpb24sZmlndXJl
LGZvb3RlcixoZWFkZXIsaGdyb3VwLG1hcmssbWV0ZXIsbmF2LG91dHB1dCxwcm9ncmVzcyxzZWN0
aW9uLHN1bW1hcnksdGltZSB7IG1hcmdpbjogMDsgcGFkZGluZzogMDsgfQotaDEsaDIsaDMsaDQs
aDUsaDYscHJlLGNvZGUsYWRkcmVzcyxjYXB0aW9uLGNpdGUsY29kZSxlbSxzdHJvbmcsdGgsZmln
Y2FwdGlvbiB7IGZvbnQtc2l6ZTogMWVtOyBmb250LXdlaWdodDogbm9ybWFsOyBmb250LXN0eWxl
OiBub3JtYWw7IH0KLWZpZWxkc2V0LGlmcmFtZSB7IGJvcmRlcjogbm9uZTsgfQotY2FwdGlvbix0
aCB7IHRleHQtYWxpZ246IGxlZnQ7IH0KLXRhYmxlIHsgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBz
ZTsgYm9yZGVyLXNwYWNpbmc6IDA7IH0KLWFydGljbGUsYXNpZGUsZm9vdGVyLGhlYWRlcixoZ3Jv
dXAsbmF2LHNlY3Rpb24sZmlndXJlLGZpZ2NhcHRpb24geyBkaXNwbGF5OiBibG9jazsgfQotCi0v
KiBMQVlPVVQgKi8KLWh0bWwgeyBiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7IH0KLQotLmNsZWFyIHsg
Y2xlYXI6IGJvdGg7IH0KLS5jbGVhcmVyIHsgY2xlYXI6IGJvdGg7IGRpc3BsYXk6IGJsb2NrOyBt
YXJnaW46IDA7IHBhZGRpbmc6IDA7IGhlaWdodDogMDsgbGluZS1oZWlnaHQ6IDFweDsgZm9udC1z
aXplOiAxcHg7IH0KLS5zZWxmY2xlYXIgeyB6b29tOjE7IH0KLS5zZWxmY2xlYXI6OmFmdGVyIHsg
Y29udGVudDonLic7IGRpc3BsYXk6YmxvY2s7IGhlaWdodDowOyBjbGVhcjpib3RoOyB2aXNpYmls
aXR5OmhpZGRlbjsgfQotCi1pbWcsIC5zZWFyY2gtd3JhcHBlciAubGVmdCwgLnNlYXJjaC13cmFw
cGVyIC5yaWdodCwgdWwuc3AtcmVzdWx0cyBsaS52aWV3YWxsIGEsIHVsLnNwLXJlc3VsdHMgbGkg
LnJlcGxhY2VtZW50aW1nLCAKLSNnbG9iYWxmb290ZXIgI2JyZWFkY3J1bWJzLCAjZ2xvYmFsZm9v
dGVyICNicmVhZGNydW1icyBzcGFuLCAjZGlyZWN0b3J5bmF2IC5jYXBib3R0b20sIAotI3Byb2R1
Y3RoZWFkZXIgaDEgYSwgI3Byb2R1Y3RoZWFkZXIgaDIgYSwgI21haW4gLm1haW5jYXAgeyBiZWhh
dmlvcjogdXJsKC9nbG9iYWwvc2NyaXB0cy9saWIvaWVwbmdmaXguaHRjKTsgfQotCi1pbWcgeyBi
b3JkZXI6IDA7IH0KLWltZy5sZWZ0IHsgZmxvYXQ6IGxlZnQ7IG1hcmdpbjogMnB4IDIwcHggMTZw
eCAwOyB9Ci1pbWcucmlnaHQgeyBmbG9hdDogcmlnaHQ7IG1hcmdpbjogMnB4IDAgMTZweCAyMHB4
OyB9Ci1pbWcuYWNyb3NzIHsgbWFyZ2luOiAycHggMCAxNnB4IDA7IH0KLWltZy5mbHVzaGxlZnQg
eyBtYXJnaW4tbGVmdDogLTIwcHg7IH0KLWltZy5mbHVzaHJpZ2h0IHsgbWFyZ2luLXJpZ2h0OiAt
MjBweDsgfQotCi0ucmVwbGFjZWQgeyBkaXNwbGF5OiBibG9jazsgd2lkdGg6IDFweDsgaGVpZ2h0
OiAxcHg7IG91dGxpbmU6IG5vbmU7IG92ZXJmbG93OiBoaWRkZW47IHRleHQtaW5kZW50OiAtOTk5
OXB4OyB9Ci0jb21uaXR1cmUsICN0b3AgeyBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMDsgfQot
I2NvbnRhaW5lciB7IHdpZHRoOiA5ODBweDsgbWFyZ2luOiAwIGF1dG87IHBvc2l0aW9uOiByZWxh
dGl2ZTsgfQotI21haW4geyB3aWR0aDogMTAwJTsgcG9zaXRpb246IHJlbGF0aXZlOyB9Ci0jY29u
dGVudCB7IHBhZGRpbmc6IDE4cHggMjBweDsgcG9zaXRpb246IHJlbGF0aXZlOyBjb2xvcjogIzMz
MzsgfQotI2JyZWFkY3J1bWIgeyBjbGVhcjogYm90aDsgdGV4dC1hbGlnbjogY2VudGVyOyBtYXJn
aW46IDE4cHggYXV0bzsgY2xlYXI6IGJvdGg7IGZvbnQtc2l6ZTogMTBweDsgY29sb3I6ICM2ODY4
Njg7IH0KLQotLmNvbnRlbnQgeyBiYWNrZ3JvdW5kOiAjZmZmOyBib3JkZXI6IDFweCBzb2xpZDsg
Ym9yZGVyLWNvbG9yOiAjZTVlNWU1ICNkYmRiZGIgI2QyZDJkMjsgLXdlYmtpdC1ib3gtc2hhZG93
OiByZ2JhKDAsMCwwLDAuMykgMCAxcHggM3B4OyAtbW96LWJveC1zaGFkb3c6IHJnYmEoMCwwLDAs
MC4zKSAwIDFweCAzcHg7IGJveC1zaGFkb3c6IHJnYmEoMCwwLDAsMC4zKSAwIDFweCAzcHg7IH0K
LS5jb250ZW50Om50aC1jaGlsZCgxbikgeyBib3JkZXI6IG5vbmU7IH0gLyogcmVzZXQgYm9yZGVy
IGZvciBzbWFydCBicm93c2VycyAqLwotCi0uY29udGVudCwKLS5yb3VuZGVkIHsgYm9yZGVyLXJh
ZGl1czogNHB4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDRweDsgLW1vei1ib3JkZXItcmFkaXVz
OiA0cHg7IC1vLWJvcmRlci1yYWRpdXM6IDRweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6IDRweDsg
fQotCi0uc2hhZG93IHsgLXdlYmtpdC1ib3gtc2hhZG93OiByZ2JhKDAsMCwwLDAuMzUpIDAgMXB4
IDNweDsgLW1vei1ib3gtc2hhZG93OiByZ2JhKDAsMCwwLDAuMzUpIDAgMXB4IDNweDsgYm94LXNo
YWRvdzogcmdiYSgwLDAsMCwwLjM1KSAwIDFweCAzcHg7IH0KLWltZy5zaGFkb3cgeyBwYWRkaW5n
OiA1cHg7IGJhY2tncm91bmQ6ICNmZmY7IG1hcmdpbi1ib3R0b206IDJweDsgKmJvcmRlcjogMXB4
IHNvbGlkICNlMmUyZTI7IF9wb3NpdGlvbjogcmVsYXRpdmU7IH0KLQotCi0uY2FsbG91dCB7IGJv
cmRlci1yYWRpdXM6IDdweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiA3cHg7IC1tb3otYm9yZGVy
LXJhZGl1czogN3B4OyAtby1ib3JkZXItcmFkaXVzOiA3cHg7IC1raHRtbC1ib3JkZXItcmFkaXVz
OiA3cHg7IH0KLQotLnJvdW5kZWR0b3AgeyBib3JkZXItcmFkaXVzOiA0cHggNHB4IDAgMDsgLXdl
YmtpdC1ib3JkZXItdG9wLWxlZnQtcmFkaXVzOjRweDsgLXdlYmtpdC1ib3JkZXItdG9wLXJpZ2h0
LXJhZGl1czo0cHg7IC1tb3otYm9yZGVyLXJhZGl1czogNHB4IDRweCAwIDA7IC1vLWJvcmRlci1y
YWRpdXM6IDRweCA0cHggMCAwOyAta2h0bWwtYm9yZGVyLXJhZGl1czogNHB4IDRweCAwIDA7IH0K
LS5yb3VuZGVkYm90dG9tIHsgYm9yZGVyLXJhZGl1czogMCAwIDRweCA0cHg7IC13ZWJraXQtYm9y
ZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czo0cHg7IC13ZWJraXQtYm9yZGVyLWJvdHRvbS1yaWdodC1y
YWRpdXM6NHB4OyAtbW96LWJvcmRlci1yYWRpdXM6IDAgMCA0cHggNHB4OyAtby1ib3JkZXItcmFk
aXVzOiAwIDAgNHB4IDRweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6IDAgMCA0cHggNHB4OyB9Ci0u
cm91bmRlZHJpZ2h0IHsgYm9yZGVyLXJhZGl1czogMCA0cHggNHB4IDA7IC13ZWJraXQtYm9yZGVy
LXRvcC1yaWdodC1yYWRpdXM6NHB4OyAtd2Via2l0LWJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVz
OjRweDsgLW1vei1ib3JkZXItcmFkaXVzOiAwIDRweCA0cHggMDsgLW8tYm9yZGVyLXJhZGl1czog
MCA0cHggNHB4IDA7IC1raHRtbC1ib3JkZXItcmFkaXVzOiAwIDRweCA0cHggMDsgfQotLnJvdW5k
ZWRsZWZ0IHsgYm9yZGVyLXJhZGl1czogNHB4IDAgMCA0cHg7IC13ZWJraXQtYm9yZGVyLXRvcC1s
ZWZ0LXJhZGl1czo0cHg7IC13ZWJraXQtYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czo0cHg7IC1t
b3otYm9yZGVyLXJhZGl1czogNHB4IDAgMCA0cHg7IC1vLWJvcmRlci1yYWRpdXM6IDRweCAwIDAg
NHB4OyAta2h0bWwtYm9yZGVyLXJhZGl1czogNHB4IDAgMCA0cHg7IH0KLS5yb3VuZGVkdG9wbGVm
dCB7IGJvcmRlci1yYWRpdXM6NHB4IDAgMDsgLXdlYmtpdC1ib3JkZXItdG9wLWxlZnQtcmFkaXVz
OjRweDsgLW1vei1ib3JkZXItcmFkaXVzOjRweCAwIDA7IC1vLWJvcmRlci1yYWRpdXM6NHB4IDAg
MDsgLWtodG1sLWJvcmRlci1yYWRpdXM6NHB4IDAgMDsgfQotLnJvdW5kZWR0b3ByaWdodCB7IGJv
cmRlci1yYWRpdXM6IDAgNHB4IDAgMDsgLXdlYmtpdC1ib3JkZXItdG9wLXJpZ2h0LXJhZGl1czo0
cHg7IC1tb3otYm9yZGVyLXJhZGl1czowIDRweCAwIDA7IC1vLWJvcmRlci1yYWRpdXM6MCA0cHgg
MCAwOyAta2h0bWwtYm9yZGVyLXJhZGl1czogMCA0cHggMCAwOyB9Ci0ucm91bmRlZGJvdHRvbWxl
ZnQgeyBib3JkZXItcmFkaXVzOiAwIDAgMCA0cHg7IC13ZWJraXQtYm9yZGVyLWJvdHRvbS1sZWZ0
LXJhZGl1czo0cHg7IC1tb3otYm9yZGVyLXJhZGl1czogMCAwIDAgNHB4OyAtby1ib3JkZXItcmFk
aXVzOiAwIDAgMCA0cHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOiAwIDAgMCA0cHg7IH0KLS5yb3Vu
ZGVkYm90dG9tcmlnaHQgeyBib3JkZXItcmFkaXVzOiAwIDAgNHB4IDA7IC13ZWJraXQtYm9yZGVy
LWJvdHRvbS1yaWdodC1yYWRpdXM6NHB4OyAtbW96LWJvcmRlci1yYWRpdXM6IDAgMCA0cHggMDsg
LW8tYm9yZGVyLXJhZGl1czogMCAwIDRweCAwOyAta2h0bWwtYm9yZGVyLXJhZGl1czogMCAwIDRw
eCAwOyB9Ci0KLS5ncmFiYmFibGUgeyBjdXJzb3I6bW92ZTsgY3Vyc29yOi13ZWJraXQtZ3JhYjsg
Y3Vyc29yOi1tb3otZ3JhYjsgY3Vyc29yOmdyYWI7IH0KLS5ncmFiYmluZywKLS5ncmFiYmluZyAu
Z3JhYmJhYmxlIHsgY3Vyc29yOm1vdmU7IGN1cnNvcjotd2Via2l0LWdyYWJiaW5nOyBjdXJzb3I6
LW1vei1ncmFiYmluZzsgY3Vyc29yOmdyYWJiaW5nOyB9Ci0KLS8qIEdSSUQgKi8KLS5jb2x1bW4g
eyBmbG9hdDogbGVmdDsgfQotLmdyaWQyY29sLCAuZ3JpZDJjb2xhLCAuZ3JpZDJjb2xiLCAuZ3Jp
ZDJjb2xjLCAuZ3JpZDJjb2xkLCAuZ3JpZDJjb2xlLCAuZ3JpZDJjb2xmLCAuZ3JpZDNjb2wsIC5n
cmlkM2NvbGEsIC5ncmlkNGNvbCwgLmdyaWQ1Y29sLCAuZ3JpZDZjb2wgeyB3aWR0aDogMTAwJTsg
fQotCi0uZ3JpZDJjb2wgLmNvbHVtbiB7IHdpZHRoOiA0OSU7IH0KLS5ncmlkMmNvbCAuZ3JpZDJj
b2wgLmNvbHVtbiB7IHdpZHRoOiA0Ny44JTsgfQotLmdyaWQzY29sIC5ncmlkMmNvbCAuY29sdW1u
IHsgd2lkdGg6IDQ2JTsgfQotLmdyaWQ0Y29sIC5ncmlkMmNvbCAuY29sdW1uIHsgd2lkdGg6IDQ1
JTsgfQotCi0uZ3JpZDJjb2xhIC5jb2x1bW4uZmlyc3QgeyB3aWR0aDogNjYlOyB9Ci0uZ3JpZDJj
b2xhIC5jb2x1bW4ubGFzdCB7IHdpZHRoOiAzMiU7IH0KLQotLmdyaWQyY29sYiAuY29sdW1uLmZp
cnN0IHsgd2lkdGg6IDc0LjklOyB9Ci0uZ3JpZDJjb2xiIC5jb2x1bW4ubGFzdCB7IHdpZHRoOiAy
MyU7IH0KLQotLmdyaWQyY29sYyAuY29sdW1uLmZpcnN0IHsgd2lkdGg6IDMyJTsgfQotLmdyaWQy
Y29sYyAuY29sdW1uLmxhc3QgeyB3aWR0aDogNjYlOyB9Ci0KLS5ncmlkMmNvbGQgLmNvbHVtbi5m
aXJzdCB7IHdpZHRoOiAyMyU7IH0KLS5ncmlkMmNvbGQgLmNvbHVtbi5sYXN0IHsgd2lkdGg6IDc0
LjklOyB9Ci0KLS5ncmlkMmNvbGUgLmNvbHVtbi5maXJzdCB7IHdpZHRoOiA3OSU7IH0KLS5ncmlk
MmNvbGUgLmNvbHVtbi5sYXN0IHsgd2lkdGg6IDE5JTsgfQotCi0uZ3JpZDJjb2xmIC5jb2x1bW4u
Zmlyc3QgeyB3aWR0aDogMTklOyB9Ci0uZ3JpZDJjb2xmIC5jb2x1bW4ubGFzdCB7IHdpZHRoOiA3
OSU7IH0KLQotLmdyaWQzY29sIC5jb2x1bW4geyB3aWR0aDogMzIlOyBtYXJnaW4tbGVmdDogMiU7
IH0KLS5ncmlkMmNvbCAuZ3JpZDNjb2wgLmNvbHVtbiB7IHdpZHRoOiAzMSU7IH0KLQotLmdyaWQz
Y29sYSAuY29sdW1uIHsgd2lkdGg6IDU4JTsgbWFyZ2luLWxlZnQ6IDIlOyB9Ci0uZ3JpZDNjb2xh
IC5jb2x1bW4uZmlyc3QsCi0uZ3JpZDNjb2xhIC5jb2x1bW4ubGFzdCB7IHdpZHRoOiAxOSU7IH0K
LQotLmdyaWQ0Y29sIC5jb2x1bW4geyB3aWR0aDogMjMlOyBtYXJnaW4tbGVmdDogMyU7IH0KLQot
LmdyaWQ1Y29sIC5jb2x1bW4geyB3aWR0aDogMTguNCU7IG1hcmdpbi1sZWZ0OiAyJTsgfQotCi0u
Z3JpZDZjb2wgLmNvbHVtbiB7IHdpZHRoOiAxNSU7IG1hcmdpbi1sZWZ0OiAyJTsgfQotCi0uY29s
dW1uLmZpcnN0LCAuY29sdW1uLmxhc3QgeyBtYXJnaW4tbGVmdDogMCAhaW1wb3J0YW50OyB9Ci0u
Y29sdW1uLmxhc3QgeyBmbG9hdDogcmlnaHQgIWltcG9ydGFudDsgfQotCi1wLmxhc3QsIHVsLmxh
c3QsIG9sLmxhc3QsIGxpLmxhc3QgeyBfd2lkdGg6IGF1dG8gIWltcG9ydGFudDsgX2Zsb2F0OiBu
b25lICFpbXBvcnRhbnQ7IH0KLQotI2NvbnRhaW5lcjo6YWZ0ZXIsICNjb250ZW50OjphZnRlciwg
LmdyaWQyY29sOjphZnRlciwgLmdyaWQyY29sYTo6YWZ0ZXIsIC5ncmlkMmNvbGI6OmFmdGVyLCAu
Z3JpZDJjb2xjOjphZnRlciwgLmdyaWQyY29sZDo6YWZ0ZXIsIC5ncmlkMmNvbGU6OmFmdGVyLCAu
Z3JpZDJjb2xmOjphZnRlciwgLmdyaWQzY29sOjphZnRlciwgLmdyaWQzY29sYTo6YWZ0ZXIsIC5n
cmlkNGNvbDo6YWZ0ZXIsIC5ncmlkNWNvbDo6YWZ0ZXIsIC5ncmlkNmNvbDo6YWZ0ZXIgeyBjb250
ZW50OiAiLiI7IGRpc3BsYXk6IGJsb2NrOyBoZWlnaHQ6IDA7IGNsZWFyOiBib3RoOyB2aXNpYmls
aXR5OiBoaWRkZW47IH0KLSNjb250YWluZXIsICNjb250ZW50LCAuZ3JpZDJjb2wsIC5ncmlkMmNv
bGEsIC5ncmlkMmNvbGIsIC5ncmlkMmNvbGMsIC5ncmlkMmNvbGQsIC5ncmlkMmNvbGUsIC5ncmlk
MmNvbGYsIC5ncmlkM2NvbCwgLmdyaWQzY29sYSwgLmdyaWQ0Y29sLCAuZ3JpZDVjb2wsIC5ncmlk
NmNvbCB7IHpvb206IDE7IH0KLQotLyogVFlQRSAqLwotYm9keSB7IGZvbnQ6IDEycHgvMThweCAi
THVjaWRhIEdyYW5kZSIsICJMdWNpZGEgU2FucyBVbmljb2RlIiwgSGVsdmV0aWNhLCBBcmlhbCwg
VmVyZGFuYSwgc2Fucy1zZXJpZjsgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IGNvbG9y
OiAjMzMzOyAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDsgfQotCi1hIHsgY29s
b3I6ICMwOGM7IH0KLWE6bGluaywgYTp2aXNpdGVkLCBhOmFjdGl2ZSB7IHRleHQtZGVjb3JhdGlv
bjogbm9uZTsgfQotYTpob3ZlciB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9Ci1hLmJs
b2NrIHsgZGlzcGxheTogYmxvY2s7IGN1cnNvcjogcG9pbnRlcjsgfQotYS5ibG9jayBzcGFuLAot
YS5ibG9jayBlbSB7IGNvbG9yOiMwOGM7IGN1cnNvcjogcG9pbnRlcjsgfQotYS5ibG9jazpob3Zl
ciB7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfQotYS5ibG9jazpob3ZlciBzcGFuLAotYS5ibG9j
azpob3ZlciBlbSB7IGNvbG9yOiAjMDhjOyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfQot
YS5tb3JlLCBlbS5tb3JlLCBzcGFuLm1vcmUgeyB3aGl0ZS1zcGFjZTogbm93cmFwOyBwYWRkaW5n
LXJpZ2h0OiAxMHB4OyBiYWNrZ3JvdW5kOiB1cmwoaHR0cDovL2ltYWdlcy5hcHBsZS5jb20vZ2xv
YmFsL2VsZW1lbnRzL2Fycm93cy9tb3JlYXJyb3dfMDhjLmdpZikgbm8tcmVwZWF0IDEwMCUgNTAl
OyBjdXJzb3I6IHBvaW50ZXI7IHpvb206IDE7IH0KLWEubW9yZWxhcmdlLCBlbS5tb3JlbGFyZ2Us
IHNwYW4ubW9yZWxhcmdlIHsgd2hpdGUtc3BhY2U6bm93cmFwOyBwYWRkaW5nLXJpZ2h0OjEycHg7
IGJhY2tncm91bmQ6dXJsKGh0dHA6Ly9pbWFnZXMuYXBwbGUuY29tL2dsb2JhbC9lbGVtZW50cy9h
cnJvd3MvbW9yZWFycm93X2JpZ18wOGMuZ2lmKSBuby1yZXBlYXQgMTAwJSA1MCU7IGN1cnNvcjpw
b2ludGVyOyB6b29tOjE7IH0KLWEubGVzc2xhcmdlLCBlbS5sZXNzbGFyZ2UsIHNwYW4ubGVzc2xh
cmdlIHsgd2hpdGUtc3BhY2U6bm93cmFwOyBwYWRkaW5nLWxlZnQ6MTJweDsgYmFja2dyb3VuZDp1
cmwoaHR0cDovL2ltYWdlcy5hcHBsZS5jb20vZ2xvYmFsL2VsZW1lbnRzL2Fycm93cy9sZXNzYXJy
b3dfYmlnXzA4Yy5naWYpIG5vLXJlcGVhdCAwIDUwJTsgY3Vyc29yOnBvaW50ZXI7IHpvb206MTsg
fQotQG1lZGlhIG9ubHkgc2NyZWVuIHsKLQlhLm1vcmUsIGVtLm1vcmUsIHNwYW4ubW9yZSB7IGJh
Y2tncm91bmQtaW1hZ2U6dXJsKC4vLi4vZWxlbWVudHMvYXJyb3dzL21vcmVhcnJvd18wOGMuc3Zn
KTsgfQotCWEubW9yZWxhcmdlLCBlbS5tb3JlbGFyZ2UsIHNwYW4ubW9yZWxhcmdlIHsgYmFja2dy
b3VuZC1pbWFnZTp1cmwoLi8uLi9lbGVtZW50cy9hcnJvd3MvbW9yZWFycm93X2JpZ18wOGMuc3Zn
KTsgfQotCWEubGVzc2xhcmdlLCBlbS5sZXNzbGFyZ2UsIHNwYW4ubGVzc2xhcmdlIHsgYmFja2dy
b3VuZC1pbWFnZTp1cmwoLi8uLi9lbGVtZW50cy9hcnJvd3MvbGVzc2Fycm93X2JpZ18wOGMuc3Zn
KTsgfQotfQotYS5leHRlcm5hbCwgZW0uZXh0ZXJuYWwsIHNwYW4uZXh0ZXJuYWwgeyB3aGl0ZS1z
cGFjZTogbm93cmFwOyBwYWRkaW5nLXJpZ2h0OiAxNXB4OyBiYWNrZ3JvdW5kOiB1cmwoaHR0cDov
L2ltYWdlcy5hcHBsZS5jb20vZ2xvYmFsL2VsZW1lbnRzL2ljb25zL2V4dGVybmFsMTB4MTAuZ2lm
KSBuby1yZXBlYXQgMTAwJSA0OSU7IGN1cnNvcjogcG9pbnRlcjsgem9vbTogMTsgfQotYVtyZWw9
ImV4dGVybmFsIl0geyB3aGl0ZS1zcGFjZTogbm93cmFwOyBwYWRkaW5nLXJpZ2h0OiAxNXB4OyBi
YWNrZ3JvdW5kOiB1cmwoaHR0cDovL2ltYWdlcy5hcHBsZS5jb20vZ2xvYmFsL2VsZW1lbnRzL2lj
b25zL2V4dGVybmFsMTB4MTAuZ2lmKSBuby1yZXBlYXQgMTAwJSA0OSU7IGN1cnNvcjogcG9pbnRl
cjsgem9vbTogMTsgfQotZW0ubW9yZSwgc3Bhbi5tb3JlLCBlbS5leHRlcm5hbCwgc3Bhbi5leHRl
cm5hbCB7IGNvbG9yOiMwOGM7IGZvbnQtc3R5bGU6IG5vcm1hbDsgY3Vyc29yOiBwb2ludGVyOyB9
Ci0ubm93cmFwIHsgd2hpdGUtc3BhY2U6bm93cmFwOyB9Ci1zdHJvbmcsIGIgeyBmb250LXdlaWdo
dDogYm9sZDsgfQotZW0sIGksIGNpdGUgeyBmb250LXN0eWxlOiBpdGFsaWM7IH0KLXN1cCB7IHBh
ZGRpbmctbGVmdDogMXB4OyBmb250LXNpemU6IDEwcHggIWltcG9ydGFudDsgZm9udC13ZWlnaHQ6
IG5vcm1hbCAhaW1wb3J0YW50OyB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IHBvc2l0aW9uOiBy
ZWxhdGl2ZTsgYm90dG9tOiAwLjMzZW07IF9wb3NpdGlvbjogc3RhdGljICFpbXBvcnRhbnQ7IH0K
LXN1cCwgc3VwIGEgeyBjb2xvcjojNjY2OyB9Ci1zdXAgYTpob3ZlciB7IGNvbG9yOiMwOGM7IHRl
eHQtZGVjb3JhdGlvbjpub25lOyB9Ci1hYmJyIHsgYm9yZGVyOiAwOyB9Ci0uc29zdW1pIHsgZm9u
dC1zaXplOiAxMHB4ICFpbXBvcnRhbnQ7IGxpbmUtaGVpZ2h0OjEuNTsgY29sb3I6Izg4ODsgfQot
LnNvc3VtaV9mZWF0dXJlcyB7IGZvbnQtc2l6ZTogMTBweCAhaW1wb3J0YW50OyBsaW5lLWhlaWdo
dDoxLjU7IGNvbG9yOiM4ODg7IH0KLQotaDEsaDIsaDMsaDQsaDUsaDYsc3Ryb25nIHsgY29sb3I6
IzAwMDsgfQotaDEsaDIsaDMsaDQgeyBmb250LXdlaWdodDogYm9sZDsgfQotaDIsaDMsaDQgeyBs
aW5lLWhlaWdodDogMThweDsgfQotaDEsaDIgeyBtYXJnaW4tYm90dG9tOiAxOHB4OyB9Ci1oMSB7
IGZvbnQtc2l6ZTogMjRweDsgbGluZS1oZWlnaHQ6IDM2cHg7IH0KLWgyIHsgZm9udC1zaXplOiAx
NnB4OyB9Ci1oMyB7IGZvbnQtc2l6ZTogMWVtOyB9Ci1oNCB7IGZvbnQtc2l6ZTogMTBweDsgfQot
cCB7IG1hcmdpbi1ib3R0b206IDE4cHg7IH0KLXAuaW50cm8geyBjb2xvcjogIzg4ODsgZm9udC1z
aXplOiAxNnB4OyBsaW5lLWhlaWdodDogMjJweDsgZm9udC13ZWlnaHQ6IG5vcm1hbDsgfQotLm1v
cmUgeyB0ZXh0LWFsaWduOiByaWdodDsgfQotCi11bCB7IGxpc3Qtc3R5bGU6IG5vbmUgb3V0c2lk
ZTsgfQotb2wgeyBtYXJnaW4tYm90dG9tOiAxOHB4OyBsaXN0LXN0eWxlOiBkZWNpbWFsOyBtYXJn
aW4tbGVmdDogMi4yZW07IH0KLXVsLnNxdWFyZSwKLXVsLmNpcmNsZSB7IG1hcmdpbi1sZWZ0OiAy
ZW07IG1hcmdpbi1ib3R0b206IDE4cHg7IH0KLXVsLnNxdWFyZSB7IGxpc3Qtc3R5bGU6IHNxdWFy
ZSBvdXRzaWRlOyB9Ci11bC5jaXJjbGUgeyBsaXN0LXN0eWxlOiBjaXJjbGUgb3V0c2lkZTsgfQot
dWwgdWwuY2lyY2xlLAotdWwgdWwuc3F1YXJlIHsgbWFyZ2luLXRvcDogNHB4OyBtYXJnaW4tYm90
dG9tOiA1cHg7IH0KLW9sLnNvc3VtaSB7IG1hcmdpbi1sZWZ0OiAwOyBwYWRkaW5nLWxlZnQ6IDJl
bTsgKnBhZGRpbmctbGVmdDogMi4yZW07IH0KLQotYS5wZGYgeyBiYWNrZ3JvdW5kOiB1cmwoaHR0
cDovL2ltYWdlcy5hcHBsZS5jb20vZ2xvYmFsL2VsZW1lbnRzL2ljb25zL2dsb2JhbGljb25wZGYx
MngxMi5naWYpIDAgMC40ZW0gbm8tcmVwZWF0OyBkaXNwbGF5OiBibG9jazsgcGFkZGluZy1sZWZ0
OiAyMHB4OyB9Ci1hLmh0bWwgeyBiYWNrZ3JvdW5kOiB1cmwoaHR0cDovL2ltYWdlcy5hcHBsZS5j
b20vZ2xvYmFsL2VsZW1lbnRzL2ljb25zL2dsb2JhbGljb25odG1sMTJ4MTIuZ2lmKSAwIDAuNGVt
IG5vLXJlcGVhdDsgZGlzcGxheTogYmxvY2s7IHBhZGRpbmctbGVmdDogMjBweDsgfQotYS5xdCB7
IGJhY2tncm91bmQ6IHVybChodHRwOi8vaW1hZ2VzLmFwcGxlLmNvbS9nbG9iYWwvZWxlbWVudHMv
aWNvbnMvZ2xvYmFsaWNvbnF0MTJ4MTIuZ2lmKSAwIDAuNGVtIG5vLXJlcGVhdDsgZGlzcGxheTog
YmxvY2s7IHBhZGRpbmctbGVmdDogMjBweDsgfQotYS5pY2FsIHsgYmFja2dyb3VuZDogdXJsKGh0
dHA6Ly9pbWFnZXMuYXBwbGUuY29tL2dsb2JhbC9lbGVtZW50cy9pY29ucy9nbG9iYWxpY29uaWNh
bDEyeDEyLmdpZikgMCAwLjRlbSBuby1yZXBlYXQ7IGRpc3BsYXk6IGJsb2NrOyBwYWRkaW5nLWxl
ZnQ6IDIwcHg7IH0KLWEuZGwgeyBiYWNrZ3JvdW5kOiB1cmwoaHR0cDovL2ltYWdlcy5hcHBsZS5j
b20vZ2xvYmFsL2VsZW1lbnRzL2ljb25zL2dsb2JhbGljb25kbDExeDEwLmdpZikgMCAwLjRlbSBu
by1yZXBlYXQ7IGRpc3BsYXk6IGJsb2NrOyBwYWRkaW5nLWxlZnQ6IDIwcHg7IH0KLWEuZG1nIHsg
YmFja2dyb3VuZDogdXJsKGh0dHA6Ly9pbWFnZXMuYXBwbGUuY29tL2dsb2JhbC9lbGVtZW50cy9p
Y29ucy9nbG9iYWxpY29uZG1nMTJ4MTIuZ2lmKSAwIDAuNGVtIG5vLXJlcGVhdDsgZGlzcGxheTog
YmxvY2s7IHBhZGRpbmctbGVmdDogMjBweDsgfQotYS56aXAgeyBiYWNrZ3JvdW5kOiB1cmwoaHR0
cDovL2ltYWdlcy5hcHBsZS5jb20vZ2xvYmFsL2VsZW1lbnRzL2ljb25zL2dsb2JhbGljb256aXAx
MngxMi5naWYpIDAgMC40ZW0gbm8tcmVwZWF0OyBkaXNwbGF5OiBibG9jazsgcGFkZGluZy1sZWZ0
OiAyMHB4OyB9Ci1hLmtleW5vdGUgeyBiYWNrZ3JvdW5kOiB1cmwoaHR0cDovL2ltYWdlcy5hcHBs
ZS5jb20vZ2xvYmFsL2VsZW1lbnRzL2ljb25zL2dsb2JhbGljb25rZXlub3RlMTJ4MTIuZ2lmKSAw
IDAuNGVtIG5vLXJlcGVhdDsgZGlzcGxheTogYmxvY2s7IHBhZGRpbmctbGVmdDogMjBweDsgfQot
YS5hdWRpbyB7IGJhY2tncm91bmQ6IHVybChodHRwOi8vaW1hZ2VzLmFwcGxlLmNvbS9nbG9iYWwv
ZWxlbWVudHMvaWNvbnMvZ2xvYmFsaWNvbmF1ZGlvMTJ4MTIuZ2lmKSAwIDAuNGVtIG5vLXJlcGVh
dDsgZGlzcGxheTogYmxvY2s7IHBhZGRpbmctbGVmdDogMjBweDsgfQotCi0uZG90LW5hdiB7IHdp
ZHRoOjEwMCU7IG1hcmdpbjowOyBwYWRkaW5nOjA7IHRleHQtYWxpZ246Y2VudGVyOyBsaW5lLWhl
aWdodDoxcHg7IH0KLS5kb3QtbmF2IGxpLAotLmRvdC1uYXYgbGkgYSB7IGRpc3BsYXk6LW1vei1p
bmxpbmUtc3RhY2s7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyAqZGlzcGxheTppbmxpbmU7ICp6b29t
OjE7IH0KLS5kb3QtbmF2IGxpIHsgcG9zaXRpb246cmVsYXRpdmU7IHotaW5kZXg6MTsgbWFyZ2lu
OjA7IHdpZHRoOjEzcHg7IGhlaWdodDoxNXB4OyBvdmVyZmxvdzpoaWRkZW47IH0KLS5kb3QtbmF2
IGxpIGEgeyBwb3NpdGlvbjphYnNvbHV0ZTsgei1pbmRleDoxOyB3aWR0aDoxM3B4OyBoZWlnaHQ6
NDVweDsgdG9wOjA7IGxlZnQ6MDsgY3Vyc29yOnBvaW50ZXI7IHRleHQtaW5kZW50Oi0xMDAwZW07
IGJhY2tncm91bmQ6dXJsKGh0dHA6Ly9pbWFnZXMuYXBwbGUuY29tL2dsb2JhbC9lbGVtZW50cy9i
dXR0b25zL2RvdHNfMDhjLnBuZykgbm8tcmVwZWF0IDAgMDsgYmVoYXZpb3I6dXJsKC9nbG9iYWwv
c2NyaXB0cy9saWIvaWU3cG5nZml4Lmh0Yyk7IH0KLS5kb3QtbmF2IGxpIGE6aG92ZXIgeyB0b3A6
LTE1cHg7IH0KLS5kb3QtbmF2IGxpIGEuYWN0aXZlIHsgY3Vyc29yOmRlZmF1bHQ7IHRvcDotMzBw
eDsgfQotCi0uZG90LW5hdjpudGgtY2hpbGQoMW4pIGxpIHsgd2lkdGg6MTBweDsgaGVpZ2h0OjEw
cHg7IHBhZGRpbmc6M3B4IDJweCAycHggMnB4OyB9Ci0uZG90LW5hdjpudGgtY2hpbGQoMW4pIGxp
IGEgeyBib3JkZXItcmFkaXVzOjVweDsgd2lkdGg6MTBweDsgaGVpZ2h0OjEwcHg7IGJhY2tncm91
bmQ6I2UwZTFlMzsKLQktd2Via2l0LWJveC1zaGFkb3c6aW5zZXQgMCAxcHggMXB4IHJnYmEoMCwg
MCwgMCwgLjI1KTsKLQkgICAtbW96LWJveC1zaGFkb3c6aW5zZXQgMCAxcHggMXB4IHJnYmEoMCwg
MCwgMCwgLjI1KTsKLQkgICAgICAgIGJveC1zaGFkb3c6aW5zZXQgMCAxcHggMXB4IHJnYmEoMCwg
MCwgMCwgLjI1KTsKLX0KLS5kb3QtbmF2Om50aC1jaGlsZCgxbikgbGkgYTpob3ZlciB7IHRvcDow
OyBiYWNrZ3JvdW5kOiNjY2M7fQotLmRvdC1uYXY6bnRoLWNoaWxkKDFuKSBsaSBhLmFjdGl2ZSB7
IHRvcDowOyBiYWNrZ3JvdW5kOiMwOGM7Ci0JYmFja2dyb3VuZDotd2Via2l0LWdyYWRpZW50KGxp
bmVhcixsZWZ0dG9wLGxlZnRib3R0b20sY29sb3Itc3RvcCgwJSxyZ2IoMTI2LDE5OCwyMzQpKSxj
b2xvci1zdG9wKDI0JSxyZ2IoNzAsMTc5LDIzNCkpLGNvbG9yLXN0b3AoMTAwJSxyZ2IoMywxMzUs
MjAxKSkpOwotCWJhY2tncm91bmQ6LXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLHJnYigxMjYs
MTk4LDIzNCkwJSxyZ2IoNzAsMTc5LDIzNCk0NSUscmdiKDMsMTM1LDIwMSkxMDAlKTsKLQliYWNr
Z3JvdW5kOiAgIC1tb3otbGluZWFyLWdyYWRpZW50KHRvcCxyZ2IoMTI2LDE5OCwyMzQpMCUscmdi
KDcwLDE3OSwyMzQpNDUlLHJnYigzLDEzNSwyMDEpMTAwJSk7Ci0JYmFja2dyb3VuZDogICAgICAg
IGxpbmVhci1ncmFkaWVudCh0b3AscmdiKDEyNiwxOTgsMjM0KTAlLHJnYig3MCwxNzksMjM0KTQ1
JSxyZ2IoMywxMzUsMjAxKTEwMCUpOwotCS13ZWJraXQtYm94LXNoYWRvdzppbnNldCAwIDFweCAw
IHJnYmEoMCwgMCwgMCwgLjI1KTsKLQkgICAtbW96LWJveC1zaGFkb3c6aW5zZXQgMCAxcHggMCBy
Z2JhKDAsIDAsIDAsIC4yNSk7Ci0JICAgICAgICBib3gtc2hhZG93Omluc2V0IDAgMXB4IDAgcmdi
YSgwLCAwLCAwLCAuMjUpOwotfQotCi0ubGFzdCB7IG1hcmdpbi1ib3R0b206IDA7IH0KLSNtYWlu
IC5zaWRlYmFyIHsgZm9udC1zaXplOiAxMHB4OyBsaW5lLWhlaWdodDogMThweDsgY29sb3I6IzMz
MzsgfQotI21haW4gLmNhbGxvdXQgeyBmb250LXNpemU6IDExcHg7IGxpbmUtaGVpZ2h0OiAxOHB4
OyBtYXJnaW4tYm90dG9tOiAxOHB4OyB9Ci0KLWJvZHkuc3BlY3MgI21haW4geyBmb250LXNpemU6
IDExcHg7IGxpbmUtaGVpZ2h0OiAxNnB4OyB9Ci0KLS8qIFBJUEVEIExJTktTICovCi0ucGlwZWQg
eyBkaXNwbGF5OiBibG9jazsgem9vbTogMTsgfQotLnBpcGVkOjphZnRlciB7IGNvbnRlbnQ6ICIu
IjsgZGlzcGxheTogYmxvY2s7IGhlaWdodDogMDsgY2xlYXI6IGJvdGg7IHZpc2liaWxpdHk6IGhp
ZGRlbjsgfQotLnBpcGVkIGxpIHsgZmxvYXQ6IGxlZnQ7IGRpc3BsYXk6IGlubGluZTsgfQotLnBp
cGVkIGEgeyBib3JkZXItbGVmdDogMXB4IHNvbGlkICM3OTdjODA7IHBhZGRpbmc6IDAgMCAwIDAu
NzVlbTsgbWFyZ2luLWxlZnQ6IDAuNzVlbTsgfQotLnBpcGVkIGEuZmlyc3QgeyBib3JkZXItbGVm
dDogMCAhaW1wb3J0YW50OyBwYWRkaW5nLWxlZnQ6IDA7IG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRh
bnQ7IH0KLQotLyotLS0gR2xvYmFsIEZvb3RlciAobGVnYWN5KSAtLS0qLwotI2dsb2JhbGZvb3Rl
ciAuZ2YtYnV5IHsgZmxvYXQ6IGxlZnQ7IHdpZHRoOiA2MCU7IG1hcmdpbjogMThweCAwIDlweDsg
fQotI2dsb2JhbGZvb3RlciAuZ2YtbGlua3MgeyBmbG9hdDogcmlnaHQ7IG1hcmdpbjogMThweCAw
IDlweDsgfQotI2dsb2JhbGZvb3RlciAuZ2YtbGlua3MgYSB7IHBhZGRpbmc6IDAgMTBweDsgd2hp
dGUtc3BhY2U6IG5vd3JhcDsgfQotI2dsb2JhbGZvb3RlciAuZ2YtbGlua3MgYS5sYXN0IHsgcGFk
ZGluZy1yaWdodDogMDsgX2Zsb2F0OiBub25lICFpbXBvcnRhbnQ7IHdpZHRoOiBhdXRvICFpbXBv
cnRhbnQ7IH0KLQotLyotLS0gR2xvYmFsIEZvb3RlciAtLS0qLwotI2dsb2JhbGZvb3RlciB7IHdp
ZHRoOiA5ODBweDsgY29sb3I6ICM4ODg7IGZvbnQtc2l6ZTogMTBweDsgbWFyZ2luOiAxOHB4IGF1
dG8gMDsgcGFkZGluZy1ib3R0b206IDM2cHg7IHRleHQtYWxpZ246IGxlZnQgIWltcG9ydGFudDsg
fQotI2dsb2JhbGZvb3RlciBhIHsgY29sb3I6ICMwOGM7IH0KLSNnbG9iYWxmb290ZXIgcCB7IG1h
cmdpbi1ib3R0b206IDFlbTsgfQotI2dsb2JhbGZvb3RlciBwLmdmLWJ1eSB7IGZsb2F0OiBsZWZ0
OyB3aWR0aDogNTIlOyBtYXJnaW46IDE4cHggMCA5cHggM3B4OyB9Ci0jZ2xvYmFsZm9vdGVyIHVs
LnBpcGVkIGEgeyBwYWRkaW5nOiAwIDAgMCAxLjVlbTsgbWFyZ2luLWxlZnQ6IDEuNWVtOyBib3Jk
ZXItbGVmdDogMXB4IHNvbGlkICNkMGQwZDA7IH0KLSNnbG9iYWxmb290ZXIgLmdmLWxpbmtzIHsg
ZmxvYXQ6IHJpZ2h0OyBtYXJnaW46IDE4cHggM3B4IDlweCAwOyB9Ci0jZ2xvYmFsZm9vdGVyIC5n
Zi1zb3N1bWkgeyBjbGVhcjogYm90aDsgd2lkdGg6IDEwMCU7IGJvcmRlci10b3A6IDFweCBzb2xp
ZCAjZGRkOyBwYWRkaW5nLXRvcDogOXB4OyB9Ci0jZ2xvYmFsZm9vdGVyIC5nZi1zb3N1bWkgYSB7
IHBhZGRpbmc6IDAgMTBweDsgfQotI2dsb2JhbGZvb3RlciAuZ2Ytc29zdW1pIHAgeyBmbG9hdDog
bGVmdDsgbWFyZ2luLWxlZnQ6IDNweDsgfQotI2dsb2JhbGZvb3RlciBmb3JtIHsgbWFyZ2luOiAx
OHB4IDEwcHg7IH0KLSNnbG9iYWxmb290ZXIgLnNlYXJjaC13cmFwcGVyIHsgbWFyZ2luOiAwIGF1
dG87IH0KLSNnbG9iYWxmb290ZXIgLnNlYXJjaC13cmFwcGVyIGlucHV0LnByZXR0eXNlYXJjaCB7
IG1hcmdpbi1sZWZ0OiAxMHB4OyB9Ci0jZ2xvYmFsZm9vdGVyIHVsLnBpcGVkIGEuY29udGFjdF91
cyB7IHBhZGRpbmctcmlnaHQ6IDEuNWVtOyBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjZDBkMGQw
OyB9Ci0jZ2xvYmFsZm9vdGVyIHVsLnBpcGVkIGEuY2hvb3NlIHsgbWFyZ2luLWxlZnQ6IDA7IGJv
cmRlcjogMDsgfQotI2dsb2JhbGZvb3RlciB1bC5waXBlZCBhLmNob29zZSBpbWcgeyB2ZXJ0aWNh
bC1hbGlnbjogbWlkZGxlOyBtYXJnaW4tdG9wOiAtNXB4OyAqcG9zaXRpb246IHJlbGF0aXZlOyB9
Ci0KLS8qLS0tIEJyZWFkY3J1bWJzIChsZWdhY3kpIC0tLSovCi0jZ2xvYmFsZm9vdGVyICNicmVh
ZGNydW1icyB7IGZvbnQtc2l6ZTogMTFweDsgY29sb3I6ICM0NDQ7IGJhY2tncm91bmQ6IHVybCho
dHRwOi8vaW1hZ2VzLmFwcGxlLmNvbS9nbG9iYWwvZWxlbWVudHMvYnJlYWRvcnkvYnJlYWRjcnVt
Yl9iZy5wbmcpIG5vLXJlcGVhdDsgb3ZlcmZsb3c6IGhpZGRlbjsgaGVpZ2h0OiAzNnB4OyBsaW5l
LWhlaWdodDogMzRweDsgZm9udC13ZWlnaHQ6IGJvbGQ7IHRleHQtc2hhZG93OiAwIDFweCAwICNm
ZmY7IH0KLSNnbG9iYWxmb290ZXIgI2JyZWFkY3J1bWJzIGEgeyBjb2xvcjogIzQ0NDsgdGV4dC1k
ZWNvcmF0aW9uOiBub25lOyBmbG9hdDogbGVmdDsgcGFkZGluZzogMCAxMHB4OyBtYXJnaW4tbGVm
dDogLTEwcHg7ICpwb3NpdGlvbjogcmVsYXRpdmU7IF9jdXJzb3I6IGhhbmQ7IH0KLSNnbG9iYWxm
b290ZXIgI2JyZWFkY3J1bWJzIGE6aG92ZXIgeyBjb2xvcjogIzMzMzsgdGV4dC1kZWNvcmF0aW9u
OiBub25lICFpbXBvcnRhbnQ7IH0KLSNnbG9iYWxmb290ZXIgI2JyZWFkY3J1bWJzIGEuaG9tZSB7
IG1hcmdpbjogMDsgd2lkdGg6IDE1cHg7IGhlaWdodDogMDsgcGFkZGluZy10b3A6IDM2cHg7IG92
ZXJmbG93OiBoaWRkZW47IH0KLSNnbG9iYWxmb290ZXIgI2JyZWFkY3J1bWJzIHNwYW4geyBmbG9h
dDogbGVmdDsgd2lkdGg6IDlweDsgbWFyZ2luOiAwIDEwcHggMCAwOyBoZWlnaHQ6IDA7IHBhZGRp
bmctdG9wOiAzNHB4OyBtYXJnaW4tdG9wOiAxcHg7IG92ZXJmbG93OiBoaWRkZW47IGJhY2tncm91
bmQ6IHVybChodHRwOi8vaW1hZ2VzLmFwcGxlLmNvbS9nbG9iYWwvZWxlbWVudHMvYnJlYWRvcnkv
YnJlYWRjcnVtYl9zZXAucG5nKSBuby1yZXBlYXQ7IH0KLQotLyotLS0gQnJlYWRjcnVtYnMgLS0t
Ki8KLSNnbG9iYWxmb290ZXIgb2wjYnJlYWRjcnVtYnMgeyBmb250LXNpemU6IDExcHg7IGNvbG9y
OiAjNDQ0OyBiYWNrZ3JvdW5kOiB1cmwoaHR0cDovL2ltYWdlcy5hcHBsZS5jb20vZ2xvYmFsL2Vs
ZW1lbnRzL2JyZWFkb3J5L2JyZWFkY3J1bWJfYmcucG5nKSBuby1yZXBlYXQ7IGhlaWdodDogMzZw
eDsgbGluZS1oZWlnaHQ6IDM0cHg7IG1hcmdpbjogMDsgbGlzdC1zdHlsZTogbm9uZTsgZm9udC13
ZWlnaHQ6IGJvbGQ7IHRleHQtc2hhZG93OiAwIDFweCAwICNmZmY7IH0KLSNnbG9iYWxmb290ZXIg
b2wjYnJlYWRjcnVtYnMgbGkgeyBmbG9hdDogbGVmdDsgbWFyZ2luOiAwOyBwYWRkaW5nOiAwIDAg
MCAyMHB4OyBiYWNrZ3JvdW5kOiB1cmwoaHR0cDovL2ltYWdlcy5hcHBsZS5jb20vZ2xvYmFsL2Vs
ZW1lbnRzL2JyZWFkb3J5L2JyZWFkY3J1bWJfc2VwXzIwMDgwOTA5LnBuZykgbm8tcmVwZWF0OyB9
Ci0jZ2xvYmFsZm9vdGVyIG9sI2JyZWFkY3J1bWJzIGxpIGEgeyBmbG9hdDogbGVmdDsgY29sb3I6
ICM0NDQ7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgcGFkZGluZzogMCAxMHB4OyBtYXJnaW4tbGVm
dDogLTEwcHg7IH0KLSNnbG9iYWxmb290ZXIgb2wjYnJlYWRjcnVtYnMgbGkgYTpob3ZlciB7IGNv
bG9yOiAjMzMzOyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH0KLSNnbG9iYWxmb290ZXIgb2wjYnJl
YWRjcnVtYnMgbGkuaG9tZSB7IGJhY2tncm91bmQ6IG5vbmU7IG1hcmdpbjogMDsgcGFkZGluZzog
MDsgfQotI2dsb2JhbGZvb3RlciBvbCNicmVhZGNydW1icyBsaS5ob21lIGEgeyBtYXJnaW46IDA7
IHBhZGRpbmc6IDAgMTBweDsgd2lkdGg6IDE1cHg7IHRleHQtaW5kZW50OiAtOTk5OXB4OyBvdmVy
ZmxvdzogaGlkZGVuOyB9Ci0KLS8qLS0tIERpcmVjdG9yeSBOYXYgLS0tKi8KLSNkaXJlY3Rvcnlu
YXYgeyBmb250LXNpemU6IDExcHg7IGxpbmUtaGVpZ2h0OjE0cHg7IHBhZGRpbmctdG9wOjJweDsg
YmFja2dyb3VuZDogdXJsKGh0dHA6Ly9pbWFnZXMuYXBwbGUuY29tL2dsb2JhbC9lbGVtZW50cy9i
cmVhZG9yeS9kaXJlY3RvcnlfYmcucG5nKSByZXBlYXQteTsgYm9yZGVyLXRvcDogMXB4IHNvbGlk
ICNkZGQ7IGZsb2F0OiBsZWZ0OyB3aWR0aDogMTAwJTsgbWFyZ2luLXRvcDogLTRweDsgKnBvc2l0
aW9uOiByZWxhdGl2ZTsgfQotI2RpcmVjdG9yeW5hdiAuY29sdW1uIHsgd2lkdGg6IDEyMHB4OyBw
YWRkaW5nOiA5cHggMCAycHggMThweDsgfQotI2RpcmVjdG9yeW5hdiAuY29sdW1uLmxhc3QgeyBm
bG9hdDogbGVmdCAhaW1wb3J0YW50OyBwYWRkaW5nLXJpZ2h0OiAwOyB9Ci0jZGlyZWN0b3J5bmF2
IGgzIHsgY29sb3I6ICM2NjY7IG1hcmdpbjogMDsgZm9udC1zaXplOiAxZW07IGxpbmUtaGVpZ2h0
OiAxNHB4OyBmb250LXdlaWdodDogYm9sZDsgcGFkZGluZy1ib3R0b206IDRweDsgfQotI2RpcmVj
dG9yeW5hdiBoMy5zdGFuZGFsb25lIHsgbWFyZ2luLWJvdHRvbTogMThweDsgfQotI2RpcmVjdG9y
eW5hdiBhIHsgY29sb3I6ICM4ODg7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgZGlzcGxheTogYmxv
Y2s7IHpvb206IDE7IH0KLSNkaXJlY3RvcnluYXYgaDMuc3RhbmRhbG9uZSBhOmxpbmssCi0jZGly
ZWN0b3J5bmF2IGgzLnN0YW5kYWxvbmUgYTp2aXNpdGVkIHsgY29sb3I6ICM0NDQ7IH0KLSNkaXJl
Y3RvcnluYXYgYTpob3ZlciB7IGNvbG9yOiAjMzMzICFpbXBvcnRhbnQ7IHRleHQtZGVjb3JhdGlv
bjogbm9uZSAhaW1wb3J0YW50OyB9Ci0jZGlyZWN0b3J5bmF2IC5jYXBib3R0b20geyBjbGVhcjog
Ym90aDsgcG9zaXRpb246IHJlbGF0aXZlOyB0b3A6IDVweDsgX3RvcDogMTJweDsgaGVpZ2h0OiA1
cHg7IHdpZHRoOiA5ODBweDsgYmFja2dyb3VuZDogdXJsKGh0dHA6Ly9pbWFnZXMuYXBwbGUuY29t
L2dsb2JhbC9lbGVtZW50cy9icmVhZG9yeS9kaXJlY3RvcnlfY2FwYmcucG5nKSBuby1yZXBlYXQ7
IH0KLSNkaXJlY3RvcnluYXYgdWwgeyBtYXJnaW4tYm90dG9tOiAwOyBwYWRkaW5nLWJvdHRvbTog
OXB4OyB9Ci0jZGlyZWN0b3J5bmF2IHVsIGxpIHsgcGFkZGluZy1ib3R0b206IDRweDsgfQotI2Rp
cmVjdG9yeW5hdi5pb3MgLmNvbHVtbiwKLSNkaXJlY3RvcnluYXYubWFjIC5jb2x1bW4sCi0jZGly
ZWN0b3J5bmF2Lmlwb2QgLmNvbHVtbiwKLSNkaXJlY3RvcnluYXYuaXBvZHRvdWNoIC5jb2x1bW4s
Ci0jZGlyZWN0b3J5bmF2LmlwYWQgLmNvbHVtbiwKLSNkaXJlY3RvcnluYXYuaXBob25lIC5jb2x1
bW4sCi0jZGlyZWN0b3J5bmF2Lml0dW5lcyAuY29sdW1uIHsgd2lkdGg6IDE5MHB4OyBwYWRkaW5n
OiA5cHggMCAwIDU0cHg7IH0KLQotLyotLS0gQlJFQURPUlkgLS0tKi8KLSNicmVhZG9yeSB7IGJv
cmRlcjogMXB4IHNvbGlkICNkZGQ7IHdpZHRoOiA5NzhweDsgbWFyZ2luOiAwIGF1dG87IC1tb3ot
Ym9yZGVyLXJhZGl1czogNHB4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDRweDsgYm9yZGVyLXJh
ZGl1czogNHB4OyB9Ci0jZ2xvYmFsZm9vdGVyICNicmVhZG9yeSBvbCNicmVhZGNydW1icyB7IGJh
Y2tncm91bmQ6IG5vbmU7IGNsZWFyOiBib3RoOyBmbG9hdDogbm9uZTsgaGVpZ2h0OiAzZW07IGxp
bmUtaGVpZ2h0OiAzZW07IGZvbnQtc2l6ZTogMTFweDsgY29sb3I6ICM2NjY7IG1hcmdpbjogMDsg
bGlzdC1zdHlsZTogbm9uZTsgZm9udC13ZWlnaHQ6IGJvbGQ7IHRleHQtc2hhZG93OiAwIDFweCAw
ICNmZmY7IH0KLSNicmVhZG9yeSBvbCNicmVhZGNydW1icyBsaSB7IGJhY2tncm91bmQ6IG5vbmU7
IGZsb2F0OiBsZWZ0OyBtYXJnaW46IDA7IHBhZGRpbmc6IDAgMCAwIDFlbTsgfQotI2JyZWFkb3J5
IG9sI2JyZWFkY3J1bWJzIGxpIGEgeyBmbG9hdDogbGVmdDsgY29sb3I6ICM2NjY7IHRleHQtZGVj
b3JhdGlvbjogbm9uZTsgcGFkZGluZzogMCAxLjc1ZW0gMCAwOyBtYXJnaW4tbGVmdDogMHB4OyBi
YWNrZ3JvdW5kOiB1cmwoaHR0cDovL2ltYWdlcy5hcHBsZS5jb20vZ2xvYmFsL2VsZW1lbnRzL2Jy
ZWFkb3J5L2JyZWFkY3J1bWJfc2VwYXJhdG9yLnBuZykgbm8tcmVwZWF0IDEwMCUgNTAlOyB9Ci0j
YnJlYWRvcnkgb2wjYnJlYWRjcnVtYnMgbGkgYTpob3ZlciB7IGNvbG9yOiAjMzMzOyB0ZXh0LWRl
Y29yYXRpb246IG5vbmU7IH0KLSNicmVhZG9yeSBvbCNicmVhZGNydW1icyBsaS5ob21lIHsgYmFj
a2dyb3VuZDogbm9uZTsgbWFyZ2luOiAwOyBwYWRkaW5nOiAwOyB9Ci0jYnJlYWRvcnkgb2wjYnJl
YWRjcnVtYnMgbGkuaG9tZSBhIHsgYmFja2dyb3VuZDogdXJsKGh0dHA6Ly9pbWFnZXMuYXBwbGUu
Y29tL2dsb2JhbC9lbGVtZW50cy9icmVhZG9yeS9icmVhZGNydW1iX2hvbWUucG5nKSBuby1yZXBl
YXQgMS4yNWVtIDUwJTsgbWFyZ2luOiAwOyBwYWRkaW5nOiAwIDAgMCAxLjI1ZW07IHdpZHRoOiAz
MHB4OyB0ZXh0LWluZGVudDogLTk5OTlweDsgb3ZlcmZsb3c6IGhpZGRlbjsgfQotI2JyZWFkb3J5
IG9sI2JyZWFkY3J1bWJzIGxpLmhvbWUgYTpob3ZlciB7IGJhY2tncm91bmQtaW1hZ2U6IHVybCho
dHRwOi8vaW1hZ2VzLmFwcGxlLmNvbS9nbG9iYWwvZWxlbWVudHMvYnJlYWRvcnkvYnJlYWRjcnVt
Yl9ob21lX292ZXIucG5nKTsgfQotCi1AbWVkaWEgb25seSBzY3JlZW4geyAKLQkjYnJlYWRvcnkg
b2wjYnJlYWRjcnVtYnMgbGkgYSB7IGJhY2tncm91bmQtaW1hZ2U6dXJsKC4vLi4vZWxlbWVudHMv
YnJlYWRvcnkvYnJlYWRjcnVtYl9zZXBhcmF0b3Iuc3ZnKTsgfQotCSNicmVhZG9yeSBvbCNicmVh
ZGNydW1icyBsaS5ob21lIGEgeyBiYWNrZ3JvdW5kLWltYWdlOnVybCguLy4uL2VsZW1lbnRzL2Jy
ZWFkb3J5L2JyZWFkY3J1bWJfaG9tZS5zdmcpOyB9Ci0JI2JyZWFkb3J5IG9sI2JyZWFkY3J1bWJz
IGxpLmhvbWUgYTpob3ZlciB7IGJhY2tncm91bmQtaW1hZ2U6dXJsKC4vLi4vZWxlbWVudHMvYnJl
YWRvcnkvYnJlYWRjcnVtYl9ob21lX292ZXIuc3ZnKTsgfQotfQotCi0jYnJlYWRvcnkgI2RpcmVj
dG9yeW5hdiB7IGJhY2tncm91bmQ6IG5vbmU7IGNsZWFyOiBib3RoOyBmbG9hdDogbm9uZTsgbWFy
Z2luLXRvcDogMDsgfQotI2JyZWFkb3J5ICNkaXJlY3RvcnluYXYgLmNhcGJvdHRvbSB7IGhlaWdo
dDogMDsgZm9udC1zaXplOiAxcHg7IF9kaXNwbGF5OiBub25lOyB9Ci0KLS8qIFBST0RVQ1RIRUFE
RVIgKi8KLSNwcm9kdWN0aGVhZGVyIHsgcGFkZGluZzogMWVtIDAgMC4yZW07IG92ZXJmbG93OiBo
aWRkZW47IHdpZHRoOiA5ODBweDsgbWFyZ2luOiAwIGF1dG87ICpwb3NpdGlvbjogcmVsYXRpdmU7
ICpoZWlnaHQ6IDM5cHg7IH0KLSNwcm9kdWN0aGVhZGVyIGgxLCAKLSNwcm9kdWN0aGVhZGVyIGgy
IHsgaGVpZ2h0OiAzMnB4OyBsaW5lLWhlaWdodDogMzJweDsgZGlzcGxheTogaW5saW5lOyBmbG9h
dDogbGVmdDsgbWFyZ2luOiAxcHggMCA2cHggOHB4OyBwYWRkaW5nOiAwOyBtYXJnaW4tYm90dG9t
OiA2cHggIWltcG9ydGFudDsgfQotI3Byb2R1Y3RoZWFkZXIgaDEgYSwgCi0jcHJvZHVjdGhlYWRl
ciBoMiBhIHsgbGluZS1oZWlnaHQ6IDMycHg7IGJhY2tncm91bmQtcG9zaXRpb246IDAgMDsgYmFj
a2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsgY29sb3I6ICM4ODg7IGRpc3BsYXk6IGJsb2NrOyBm
b250LXdlaWdodDogbm9ybWFsOyBoZWlnaHQ6IDMycHg7IG91dGxpbmU6IG5vbmU7IHRleHQtZGVj
b3JhdGlvbjogbm9uZTsgdGV4dC1pbmRlbnQ6IC05OTk5cHg7ICpwb3NpdGlvbjogcmVsYXRpdmU7
IH0KLWJvZHkjb3ZlcnZpZXcgI3Byb2R1Y3RoZWFkZXIgaDEgYSwgCi1ib2R5I292ZXJ2aWV3ICNw
cm9kdWN0aGVhZGVyIGgyIGEgeyBjdXJzb3I6IGRlZmF1bHQ7IH0KLQotI3Byb2R1Y3RoZWFkZXIg
dWwgeyBkaXNwbGF5OiBpbmxpbmU7IGZsb2F0OiByaWdodDsgbWFyZ2luOiAwOyB9Ci0jcHJvZHVj
dGhlYWRlciB1bCBsaSB7IGRpc3BsYXk6IGlubGluZTsgfQotI3Byb2R1Y3RoZWFkZXIgdWwgbGkg
YSB7IGNvbG9yOiAjMzMzOyBmbG9hdDogbGVmdCAhaW1wb3J0YW50OyBtYXJnaW4tdG9wOiAxZW07
IG1hcmdpbi1sZWZ0OiAzMHB4OyBtYXJnaW4tcmlnaHQ6IDhweDsgcGFkZGluZzogMDsgdGV4dC1k
ZWNvcmF0aW9uOiBub25lOyB9Ci0jcHJvZHVjdGhlYWRlciB1bCBsaSBhOmhvdmVyIHsgY29sb3I6
ICMwOGM7IH0KLQotI3Byb2R1Y3RoZWFkZXIgYS5idXlub3csICNwcm9kdWN0aGVhZGVyIHNwYW4u
YnV5bm93LCAvKiBvbGQgKi8KLSNwcm9kdWN0aGVhZGVyIGEub3JkZXJub3csICNwcm9kdWN0aGVh
ZGVyIHNwYW4ub3JkZXJub3csCi0jcHJvZHVjdGhlYWRlciBhLmpvaW5ub3csICNwcm9kdWN0aGVh
ZGVyIHNwYW4uam9pbm5vdywKLSNwcm9kdWN0aGVhZGVyIGEucHJlb3JkZXIsICNwcm9kdWN0aGVh
ZGVyIHNwYW4ucHJlb3JkZXIsCi0jcHJvZHVjdGhlYWRlciBhLnByZW9yZGVyX2JsdWUsICNwcm9k
dWN0aGVhZGVyIHNwYW4ucHJlb3JkZXJfYmx1ZSwKLSNwcm9kdWN0aGVhZGVyIGEuaG93dG9idXks
ICNwcm9kdWN0aGVhZGVyIHNwYW4uaG93dG9idXksCi0jcHJvZHVjdGhlYWRlciBhLmhvd3RvYXBw
bHksICNwcm9kdWN0aGVhZGVyIHNwYW4uaG93dG9hcHBseSwKLSNwcm9kdWN0aGVhZGVyIGEuZnJl
ZXRyaWFsLCAjcHJvZHVjdGhlYWRlciBzcGFuLmZyZWV0cmlhbCwKLSNwcm9kdWN0aGVhZGVyIGEu
ZG93bmxvYWRub3csICNwcm9kdWN0aGVhZGVyIHNwYW4uZG93bmxvYWRub3csCi0jcHJvZHVjdG5h
diBhLmRvd25sb2Fkbm93LCAjcHJvZHVjdG5hdiBzcGFuLmRvd25sb2Fkbm93LAotI3Byb2R1Y3Ro
ZWFkZXIgYS51cGdyYWRlbm93LCAjcHJvZHVjdGhlYWRlciBzcGFuLnVwZ3JhZGVub3csCi0jcHJv
ZHVjdGhlYWRlciBhLnRyeWFtYWMsICNwcm9kdWN0aGVhZGVyIHNwYW4udHJ5YW1hYyB7IGhlaWdo
dDogMjVweDsgbWFyZ2luOiAwLjdlbSAwIDAgMjBweDsgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAw
OyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OyBkaXNwbGF5OiBibG9jazsgZmxvYXQ6IHJp
Z2h0OyBwb3NpdGlvbjogcmVsYXRpdmU7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgdGV4dC1pbmRl
bnQ6IC05OTk5cHg7IG91dGxpbmU6IG5vbmU7IG92ZXJmbG93OiBoaWRkZW47IH0KLSNwcm9kdWN0
aGVhZGVyIGEubm90aWZ5bWUsICNwcm9kdWN0aGVhZGVyIHNwYW4ubm90aWZ5bWUgeyBoZWlnaHQ6
IDI1cHg7IG1hcmdpbjogMC44ZW0gMCAwIDIwcHg7IGJhY2tncm91bmQtcG9zaXRpb246IDAgMDsg
YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsgZGlzcGxheTogYmxvY2s7IGZsb2F0OiByaWdo
dDsgcG9zaXRpb246IHJlbGF0aXZlOyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IHRleHQtaW5kZW50
OiAtOTk5OXB4OyBvdXRsaW5lOiBub25lOyBvdmVyZmxvdzogaGlkZGVuOyB9Ci0KLSNwcm9kdWN0
aGVhZGVyIGEucHJlb3JkZXJfYmx1ZSwgI3Byb2R1Y3RoZWFkZXIgc3Bhbi5wcmVvcmRlcl9ibHVl
IHsgd2lkdGg6IDc1cHg7IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vaW1hZ2VzLmFwcGxl
LmNvbS9nbG9iYWwvZWxlbWVudHMvYnV0dG9ucy9wcmVvcmRlcl9ibHVlLnBuZyk7IH0KLSNwcm9k
dWN0aGVhZGVyIGEuYnV5bm93LCAjcHJvZHVjdGhlYWRlciBzcGFuLmJ1eW5vdyB7IHdpZHRoOiA3
MnB4OyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL2ltYWdlcy5hcHBsZS5jb20vZ2xvYmFs
L2VsZW1lbnRzL2J1dHRvbnMvYnV5bm93cy5wbmcpOyBfYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0
dHA6Ly9pbWFnZXMuYXBwbGUuY29tL2dsb2JhbC9lbGVtZW50cy9idXR0b25zL2J1eW5vd3MuZ2lm
KTsgfQotI3Byb2R1Y3RoZWFkZXIgYS5vcmRlcm5vdywgI3Byb2R1Y3RoZWFkZXIgc3Bhbi5vcmRl
cm5vdyB7IHdpZHRoOiA4MXB4OyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL2ltYWdlcy5h
cHBsZS5jb20vZ2xvYmFsL2VsZW1lbnRzL2J1dHRvbnMvb3JkZXJub3dzLnBuZyk7IF9iYWNrZ3Jv
dW5kLWltYWdlOiB1cmwoaHR0cDovL2ltYWdlcy5hcHBsZS5jb20vZ2xvYmFsL2VsZW1lbnRzL2J1
dHRvbnMvb3JkZXJub3dzLmdpZik7IH0KLSNwcm9kdWN0aGVhZGVyIGEuam9pbm5vdywgI3Byb2R1
Y3RoZWFkZXIgc3Bhbi5qb2lubm93IHsgd2lkdGg6IDcycHg7IGJhY2tncm91bmQtaW1hZ2U6IHVy
bChodHRwOi8vaW1hZ2VzLmFwcGxlLmNvbS9nbG9iYWwvZWxlbWVudHMvYnV0dG9ucy9qb2lubm93
cy5wbmcpOyBfYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly9pbWFnZXMuYXBwbGUuY29tL2ds
b2JhbC9lbGVtZW50cy9idXR0b25zL2pvaW5ub3dzLmdpZik7IH0KLSNwcm9kdWN0aGVhZGVyIGEu
cHJlb3JkZXIsICNwcm9kdWN0aGVhZGVyIHNwYW4ucHJlb3JkZXIgeyB3aWR0aDogOTlweDsgYmFj
a2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly9pbWFnZXMuYXBwbGUuY29tL2dsb2JhbC9lbGVtZW50
cy9idXR0b25zL3ByZW9yZGVybm93cy5wbmcpOyBfYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6
Ly9pbWFnZXMuYXBwbGUuY29tL2dsb2JhbC9lbGVtZW50cy9idXR0b25zL3ByZW9yZGVybm93cy5n
aWYpOyB9Ci0jcHJvZHVjdGhlYWRlciBhLmhvd3RvYnV5LCAjcHJvZHVjdGhlYWRlciBzcGFuLmhv
d3RvYnV5IHsgd2lkdGg6IDg2cHg7IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vaW1hZ2Vz
LmFwcGxlLmNvbS9nbG9iYWwvZWxlbWVudHMvYnV0dG9ucy9ob3d0b2J1eXMucG5nKTsgX2JhY2tn
cm91bmQtaW1hZ2U6IHVybChodHRwOi8vaW1hZ2VzLmFwcGxlLmNvbS9nbG9iYWwvZWxlbWVudHMv
YnV0dG9ucy9ob3d0b2J1eXMuZ2lmKTsgfQotI3Byb2R1Y3RoZWFkZXIgYS5ob3d0b2FwcGx5LCAj
cHJvZHVjdGhlYWRlciBzcGFuLmhvd3RvYXBwbHkgeyB3aWR0aDogMTAwcHg7IGJhY2tncm91bmQt
aW1hZ2U6IHVybChodHRwOi8vaW1hZ2VzLmFwcGxlLmNvbS9nbG9iYWwvZWxlbWVudHMvYnV0dG9u
cy9ob3d0b2FwcGx5cy5wbmcpOyBfYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly9pbWFnZXMu
YXBwbGUuY29tL2dsb2JhbC9lbGVtZW50cy9idXR0b25zL2hvd3RvYXBwbHlzLmdpZik7IH0KLSNw
cm9kdWN0aGVhZGVyIGEuZnJlZXRyaWFsLCAjcHJvZHVjdGhlYWRlciBzcGFuLmZyZWV0cmlhbCB7
IHdpZHRoOiA3MnB4OyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL2ltYWdlcy5hcHBsZS5j
b20vZ2xvYmFsL2VsZW1lbnRzL2J1dHRvbnMvZnJlZXRyaWFscy5wbmcpOyBfYmFja2dyb3VuZC1p
bWFnZTogdXJsKGh0dHA6Ly9pbWFnZXMuYXBwbGUuY29tL2dsb2JhbC9lbGVtZW50cy9idXR0b25z
L2ZyZWV0cmlhbHMuZ2lmKTsgfQotI3Byb2R1Y3RoZWFkZXIgYS5kb3dubG9hZG5vdywgI3Byb2R1
Y3RoZWFkZXIgc3Bhbi5kb3dubG9hZG5vdyB7IHdpZHRoOiAxMDhweDsgYmFja2dyb3VuZC1pbWFn
ZTogdXJsKGh0dHA6Ly9pbWFnZXMuYXBwbGUuY29tL2dsb2JhbC9lbGVtZW50cy9idXR0b25zL2Rv
d25sb2Fkbm93cy5wbmcpOyBfYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly9pbWFnZXMuYXBw
bGUuY29tL2dsb2JhbC9lbGVtZW50cy9idXR0b25zL2Rvd25sb2Fkbm93cy5naWYpOyB9Ci0jcHJv
ZHVjdG5hdiBhLmRvd25sb2Fkbm93LCAjcHJvZHVjdG5hdiBzcGFuLmRvd25sb2Fkbm93IHsgd2lk
dGg6IDEwOHB4OyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL2ltYWdlcy5hcHBsZS5jb20v
Z2xvYmFsL2VsZW1lbnRzL2J1dHRvbnMvZG93bmxvYWRub3dzLnBuZyk7IF9iYWNrZ3JvdW5kLWlt
YWdlOiB1cmwoaHR0cDovL2ltYWdlcy5hcHBsZS5jb20vZ2xvYmFsL2VsZW1lbnRzL2J1dHRvbnMv
ZG93bmxvYWRub3dzLmdpZik7IH0KLSNwcm9kdWN0aGVhZGVyIGEudXBncmFkZW5vdywgI3Byb2R1
Y3RoZWFkZXIgc3Bhbi51cGdyYWRlbm93IHsgd2lkdGg6IDEwNHB4OyBiYWNrZ3JvdW5kLWltYWdl
OiB1cmwoaHR0cDovL2ltYWdlcy5hcHBsZS5jb20vZ2xvYmFsL2VsZW1lbnRzL2J1dHRvbnMvdXBn
cmFkZW5vd3MucG5nKTsgX2JhY2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vaW1hZ2VzLmFwcGxl
LmNvbS9nbG9iYWwvZWxlbWVudHMvYnV0dG9ucy91cGdyYWRlbm93cy5naWYpOyB9Ci0jcHJvZHVj
dGhlYWRlciBhLnRyeWFtYWMsICNwcm9kdWN0aGVhZGVyIHNwYW4udHJ5YW1hYyB7IHdpZHRoOiA3
N3B4OyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL2ltYWdlcy5hcHBsZS5jb20vZ2xvYmFs
L2VsZW1lbnRzL2J1dHRvbnMvdHJ5YW1hY3MucG5nKTsgX2JhY2tncm91bmQtaW1hZ2U6IHVybCho
dHRwOi8vaW1hZ2VzLmFwcGxlLmNvbS9nbG9iYWwvZWxlbWVudHMvYnV0dG9ucy90cnlhbWFjcy5n
aWYpOyB9Ci0jcHJvZHVjdGhlYWRlciBhLm5vdGlmeW1lLCAjcHJvZHVjdGhlYWRlciBzcGFuLm5v
dGlmeW1lIHsgd2lkdGg6IDc1cHg7IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vaW1hZ2Vz
LmFwcGxlLmNvbS9nbG9iYWwvZWxlbWVudHMvYnV0dG9ucy9ub3RpZnltZXMucG5nKTsgX2JhY2tn
cm91bmQtaW1hZ2U6IHVybChodHRwOi8vaW1hZ2VzLmFwcGxlLmNvbS9nbG9iYWwvZWxlbWVudHMv
YnV0dG9ucy9ub3RpZnltZXMuZ2lmKTsgfQotCi0jcHJvZHVjdGhlYWRlciBhLmJ1eW5vdzpob3Zl
ciwgI3Byb2R1Y3RoZWFkZXIgYS5idXlub3c6Zm9jdXMsCi0jcHJvZHVjdGhlYWRlciBhLm9yZGVy
bm93OmhvdmVyLCAjcHJvZHVjdGhlYWRlciBhLm9yZGVybm93OmZvY3VzLAotI3Byb2R1Y3RoZWFk
ZXIgYS5qb2lubm93OmhvdmVyLCAjcHJvZHVjdGhlYWRlciBhLmpvaW5ub3c6Zm9jdXMsCi0jcHJv
ZHVjdGhlYWRlciBhLnByZW9yZGVyOmhvdmVyLCAjcHJvZHVjdGhlYWRlciBhLnByZW9yZGVyOmZv
Y3VzLAotI3Byb2R1Y3RoZWFkZXIgYS5ob3d0b2J1eTpob3ZlciwgI3Byb2R1Y3RoZWFkZXIgYS5o
b3d0b2J1eTpmb2N1cywKLSNwcm9kdWN0aGVhZGVyIGEuaG93dG9hcHBseTpob3ZlciwgI3Byb2R1
Y3RoZWFkZXIgYS5ob3d0b2FwcGx5OmZvY3VzLAotI3Byb2R1Y3RoZWFkZXIgYS5mcmVldHJpYWw6
aG92ZXIsICNwcm9kdWN0aGVhZGVyIGEuZnJlZXRyaWFsOmZvY3VzLAotI3Byb2R1Y3RoZWFkZXIg
YS5kb3dubG9hZG5vdzpob3ZlciwgI3Byb2R1Y3RoZWFkZXIgYS5kb3dubG9hZG5vdzpmb2N1cywK
LSNwcm9kdWN0bmF2IGEuZG93bmxvYWRub3c6aG92ZXIsICNwcm9kdWN0bmF2IGEuZG93bmxvYWRu
b3c6Zm9jdXMsCi0jcHJvZHVjdGhlYWRlciBhLnVwZ3JhZGVub3c6aG92ZXIsICNwcm9kdWN0aGVh
ZGVyIGEudXBncmFkZW5vdzpmb2N1cywKLSNwcm9kdWN0aGVhZGVyIGEudHJ5YW1hYzpob3Zlciwg
I3Byb2R1Y3RoZWFkZXIgYS50cnlhbWFjOmZvY3VzLAotI3Byb2R1Y3RoZWFkZXIgYS5ub3RpZnlt
ZTpob3ZlciwgI3Byb2R1Y3RoZWFkZXIgYS5ub3RpZnltZTpmb2N1cyB7IGJhY2tncm91bmQtcG9z
aXRpb246IDAgLTI1cHg7IH0KLQotI3Byb2R1Y3RoZWFkZXIgYS5idXlub3c6YWN0aXZlLAotI3By
b2R1Y3RoZWFkZXIgYS5vcmRlcm5vdzphY3RpdmUsCi0jcHJvZHVjdGhlYWRlciBhLmpvaW5ub3c6
YWN0aXZlLAotI3Byb2R1Y3RoZWFkZXIgYS5wcmVvcmRlcjphY3RpdmUsCi0jcHJvZHVjdGhlYWRl
ciBhLmhvd3RvYnV5OmFjdGl2ZSwKLSNwcm9kdWN0aGVhZGVyIGEuaG93dG9hcHBseTphY3RpdmUs
Ci0jcHJvZHVjdGhlYWRlciBhLmZyZWV0cmlhbDphY3RpdmUsCi0jcHJvZHVjdGhlYWRlciBhLmRv
d25sb2Fkbm93OmFjdGl2ZSwKLSNwcm9kdWN0bmF2IGEuZG93bmxvYWRub3c6YWN0aXZlLAotI3By
b2R1Y3RoZWFkZXIgYS51cGdyYWRlbm93OmFjdGl2ZSwKLSNwcm9kdWN0aGVhZGVyIGEudHJ5YW1h
YzphY3RpdmUsCi0jcHJvZHVjdGhlYWRlciBhLm5vdGlmeW1lOmFjdGl2ZSB7IGJhY2tncm91bmQt
cG9zaXRpb246IDAgLTUwcHg7IH0KLQotI3Byb2R1Y3RoZWFkZXIgc3Bhbi5idXlub3csCi0jcHJv
ZHVjdGhlYWRlciBzcGFuLm9yZGVybm93LAotI3Byb2R1Y3RoZWFkZXIgc3Bhbi5qb2lubm93LAot
I3Byb2R1Y3RoZWFkZXIgc3Bhbi5wcmVvcmRlciwKLSNwcm9kdWN0aGVhZGVyIHNwYW4uaG93dG9i
dXksCi0jcHJvZHVjdGhlYWRlciBzcGFuLmhvd3RvYXBwbHksCi0jcHJvZHVjdGhlYWRlciBzcGFu
LmZyZWV0cmlhbCwKLSNwcm9kdWN0aGVhZGVyIHNwYW4uZG93bmxvYWRub3csCi0jcHJvZHVjdG5h
diBzcGFuLmRvd25sb2Fkbm93LAotI3Byb2R1Y3RoZWFkZXIgc3Bhbi51cGdyYWRlbm93LAotI3By
b2R1Y3RoZWFkZXIgc3Bhbi5ub3RpZnltZSB7IGJhY2tncm91bmQtcG9zaXRpb246IDAgLTc1cHg7
IH0KLQotCi0vKiBCVVRUT05TIC0gKFUuUy4pICovCi0uYnJvd3Nld2ViYXBwc3MsIC5idXNpbmVz
c3N0b3JlcywgLmJ1eWlwaG9uZXMsIC5idXlub3dzLCAuYnV5bm93cy1hcnJvdywgLmNvbWluZ3Nv
b25zLCAuZGVzY2FyZ2FyYWhvcmFzLCAuZG93bmxvYWRpdHVuZXNzLCAuZG93bmxvYWRub3dzLCAu
ZmluZHMsIC5mcmVldHJpYWxzLCAuZ2V0c3RhcnRlZHMsIC5nb3MsIC5ob3d0b2FwcGx5cywgLmhv
d3RvYnV5cywgLmpvaW5ub3dzLCAubGVhcm5tb3JlcywgLm5pa2VidXlub3dzLCAubm90aWZ5bWVz
LCAub3JkZXJub3dzLCAucHJlb3JkZXJub3dzLCAucHJlb3JkZXJzLCAucmVzZXJ2ZXMsIC5zdGFy
dHlvdXJzZWFyY2hzLCAuc3VibWl0cywgLnRyeWFtYWNzLCAudXBncmFkZW5vd3MgewotCWhlaWdo
dDogMjVweDsgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAwOyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8t
cmVwZWF0OyBkaXNwbGF5OiBibG9jazsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB0ZXh0LWluZGVu
dDogLTk5OTlweDsgb3ZlcmZsb3c6IGhpZGRlbjsKLX0KLWEuYnJvd3Nld2ViYXBwc3M6aG92ZXIs
IGEuYnVzaW5lc3NzdG9yZXM6aG92ZXIsIGEuYnV5aXBob25lczpob3ZlciwgYS5idXlub3dzOmhv
dmVyLCBhLmJ1eW5vd3MtYXJyb3c6aG92ZXIsIGEuY29taW5nc29vbnM6aG92ZXIsIGEuZGVzY2Fy
Z2FyYWhvcmFzOmhvdmVyLCBhLmRvd25sb2FkaXR1bmVzczpob3ZlciwgYS5kb3dubG9hZG5vd3M6
aG92ZXIsIGEuZmluZHM6aG92ZXIsIGEuZnJlZXRyaWFsczpob3ZlciwgYS5nZXRzdGFydGVkczpo
b3ZlciwgYS5nb3M6aG92ZXIsIGEuaG93dG9hcHBseXM6aG92ZXIsIGEuaG93dG9idXlzOmhvdmVy
LCBhLmpvaW5ub3dzOmhvdmVyLCBhLmxlYXJubW9yZXM6aG92ZXIsIGEubmlrZWJ1eW5vd3M6aG92
ZXIsIGEubm90aWZ5bWVzOmhvdmVyLCBhLm9yZGVybm93czpob3ZlciwgYS5wcmVvcmRlcm5vd3M6
aG92ZXIsIGEucHJlb3JkZXJzOmhvdmVyLCBhLnJlc2VydmVzOmhvdmVyLCBhLnN0YXJ0eW91cnNl
YXJjaHM6aG92ZXIsIGEuc3VibWl0czpob3ZlciwgYS50cnlhbWFjczpob3ZlciwgYS51cGdyYWRl
bm93czpob3ZlciwKLWEuYnJvd3Nld2ViYXBwc3M6Zm9jdXMsIGEuYnVzaW5lc3NzdG9yZXM6Zm9j
dXMsIGEuYnV5aXBob25lczpmb2N1cywgYS5idXlub3dzOmZvY3VzLCBhLmJ1eW5vd3MtYXJyb3c6
Zm9jdXMsIGEuY29taW5nc29vbnM6Zm9jdXMsIGEuZGVzY2FyZ2FyYWhvcmFzOmZvY3VzLCBhLmRv
d25sb2FkaXR1bmVzczpmb2N1cywgYS5kb3dubG9hZG5vd3M6Zm9jdXMsIGEuZmluZHM6Zm9jdXMs
IGEuZnJlZXRyaWFsczpmb2N1cywgYS5nZXRzdGFydGVkczpmb2N1cywgYS5nb3M6Zm9jdXMsIGEu
aG93dG9hcHBseXM6Zm9jdXMsIGEuaG93dG9idXlzOmZvY3VzLCBhLmpvaW5ub3dzOmZvY3VzLCBh
LmxlYXJubW9yZXM6Zm9jdXMsIGEubmlrZWJ1eW5vd3M6Zm9jdXMsIGEubm90aWZ5bWVzOmZvY3Vz
LCBhLm9yZGVybm93czpmb2N1cywgYS5wcmVvcmRlcm5vd3M6Zm9jdXMsIGEucHJlb3JkZXJzOmZv
Y3VzLCBhLnJlc2VydmVzOmZvY3VzLCBhLnN0YXJ0eW91cnNlYXJjaHM6Zm9jdXMsIGEuc3VibWl0
czpmb2N1cywgYS50cnlhbWFjczpmb2N1cywgYS51cGdyYWRlbm93czpmb2N1cyB7Ci0JYmFja2dy
b3VuZC1wb3NpdGlvbjogMCAtMjVweDsKLX0KLWEuYnJvd3Nld2ViYXBwc3M6YWN0aXZlLCBhLmJ1
c2luZXNzc3RvcmVzOmFjdGl2ZSwgYS5idXlpcGhvbmVzOmFjdGl2ZSwgYS5idXlub3dzOmFjdGl2
ZSwgYS5idXlub3dzLWFycm93OmFjdGl2ZSwgYS5jb21pbmdzb29uczphY3RpdmUsIGEuZGVzY2Fy
Z2FyYWhvcmFzOmFjdGl2ZSwgYS5kb3dubG9hZGl0dW5lc3M6YWN0aXZlLCBhLmRvd25sb2Fkbm93
czphY3RpdmUsIGEuZmluZHM6YWN0aXZlLCBhLmZyZWV0cmlhbHM6YWN0aXZlLCBhLmdldHN0YXJ0
ZWRzOmFjdGl2ZSwgYS5nb3M6YWN0aXZlLCBhLmhvd3RvYXBwbHlzOmFjdGl2ZSwgYS5ob3d0b2J1
eXM6YWN0aXZlLCBhLmpvaW5ub3dzOmFjdGl2ZSwgYS5sZWFybm1vcmVzOmFjdGl2ZSwgYS5uaWtl
YnV5bm93czphY3RpdmUsIGEubm90aWZ5bWVzOmFjdGl2ZSwgYS5vcmRlcm5vd3M6YWN0aXZlLCBh
LnByZW9yZGVybm93czphY3RpdmUsIGEucHJlb3JkZXJzOmFjdGl2ZSwgYS5yZXNlcnZlczphY3Rp
dmUsIGEuc3RhcnR5b3Vyc2VhcmNoczphY3RpdmUsIGEuc3VibWl0czphY3RpdmUsIGEudHJ5YW1h
Y3M6YWN0aXZlLCBhLnVwZ3JhZGVub3dzOmFjdGl2ZSB7Ci0JYmFja2dyb3VuZC1wb3NpdGlvbjog
MCAtNTBweDsKLX0KLXNwYW4uYnJvd3Nld2ViYXBwc3MsIHNwYW4uYnVzaW5lc3NzdG9yZXMsIHNw
YW4uYnV5aXBob25lcywgc3Bhbi5idXlub3dzLCBzcGFuLmNvbWluZ3Nvb25zLCBzcGFuLmRlc2Nh
cmdhcmFob3Jhcywgc3Bhbi5kb3dubG9hZGl0dW5lc3MsIHNwYW4uZG93bmxvYWRub3dzLCBzcGFu
LmZpbmRzLCBzcGFuLmZyZWV0cmlhbHMsIHNwYW4uZ2V0c3RhcnRlZHMsIHNwYW4uZ29zLCBzcGFu
Lmhvd3RvYXBwbHlzLCBzcGFuLmhvd3RvYnV5cywgc3Bhbi5qb2lubm93cywgc3Bhbi5sZWFybm1v
cmVzLCBzcGFuLm5pa2VidXlub3dzLCBzcGFuLm5vdGlmeW1lcywgc3Bhbi5vcmRlcm5vd3MsIHNw
YW4ucHJlb3JkZXJub3dzLCBzcGFuLnByZW9yZGVycywgc3Bhbi5yZXNlcnZlcywgc3Bhbi5zdGFy
dHlvdXJzZWFyY2hzLCBzcGFuLnN1Ym1pdHMsIHNwYW4udHJ5YW1hY3MsIHNwYW4udXBncmFkZW5v
d3MgewotCWJhY2tncm91bmQtcG9zaXRpb246IDAgLTc1cHg7Ci19Ci0uYnJvd3Nld2ViYXBwc3Mg
eyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL2ltYWdlcy5hcHBsZS5jb20vZ2xvYmFsL2Vs
ZW1lbnRzL2J1dHRvbnMvYnJvd3Nld2ViYXBwc3MucG5nKTsgX2JhY2tncm91bmQtaW1hZ2U6IHVy
bChodHRwOi8vaW1hZ2VzLmFwcGxlLmNvbS9nbG9iYWwvZWxlbWVudHMvYnV0dG9ucy9icm93c2V3
ZWJhcHBzcy5naWYpOyB3aWR0aDogMTIzcHg7IH0KLS5idXNpbmVzc3N0b3JlcyB7IGJhY2tncm91
bmQtaW1hZ2U6IHVybChodHRwOi8vaW1hZ2VzLmFwcGxlLmNvbS9nbG9iYWwvZWxlbWVudHMvYnV0
dG9ucy9idXNpbmVzc3N0b3Jlcy5wbmcpOyBfYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly9p
bWFnZXMuYXBwbGUuY29tL2dsb2JhbC9lbGVtZW50cy9idXR0b25zL2J1c2luZXNzc3RvcmVzLmdp
Zik7IHdpZHRoOiAxMDVweDsgfQotLmJ1eWlwaG9uZXMgeyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwo
aHR0cDovL2ltYWdlcy5hcHBsZS5jb20vZ2xvYmFsL2VsZW1lbnRzL2J1dHRvbnMvYnV5aXBob25l
cy5wbmcpOyBfYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly9pbWFnZXMuYXBwbGUuY29tL2ds
b2JhbC9lbGVtZW50cy9idXR0b25zL2J1eWlwaG9uZXMuZ2lmKTsgd2lkdGg6IDg3cHg7IH0KLS5i
dXlub3dzIHsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly9pbWFnZXMuYXBwbGUuY29tL2ds
b2JhbC9lbGVtZW50cy9idXR0b25zL2J1eW5vd3MucG5nKTsgX2JhY2tncm91bmQtaW1hZ2U6IHVy
bChodHRwOi8vaW1hZ2VzLmFwcGxlLmNvbS9nbG9iYWwvZWxlbWVudHMvYnV0dG9ucy9idXlub3dz
LmdpZik7IHdpZHRoOiA3MnB4OyB9Ci0uYnV5bm93cy1hcnJvdyB7IGJhY2tncm91bmQtaW1hZ2U6
IHVybChodHRwOi8vaW1hZ2VzLmFwcGxlLmNvbS9nbG9iYWwvZWxlbWVudHMvYnV0dG9ucy9idXlu
b3dzX2Fycm93LnBuZyk7IF9iYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL2ltYWdlcy5hcHBs
ZS5jb20vZ2xvYmFsL2VsZW1lbnRzL2J1dHRvbnMvYnV5bm93c19hcnJvdy5naWYpOyB3aWR0aDog
ODZweDsgfQotLmNvbWluZ3Nvb25zIHsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly9pbWFn
ZXMuYXBwbGUuY29tL2dsb2JhbC9lbGVtZW50cy9idXR0b25zL2NvbWluZ3Nvb25zLnBuZyk7IF9i
YWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL2ltYWdlcy5hcHBsZS5jb20vZ2xvYmFsL2VsZW1l
bnRzL2J1dHRvbnMvY29taW5nc29vbnMuZ2lmKTsgd2lkdGg6IDk3cHg7IH0KLS5kZXNjYXJnYXJh
aG9yYXMgeyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL2ltYWdlcy5hcHBsZS5jb20vZ2xv
YmFsL2VsZW1lbnRzL2J1dHRvbnMvZGVzY2FyZ2FyYWhvcmFzLnBuZyk7IF9iYWNrZ3JvdW5kLWlt
YWdlOiB1cmwoaHR0cDovL2ltYWdlcy5hcHBsZS5jb20vZ2xvYmFsL2VsZW1lbnRzL2J1dHRvbnMv
ZGVzY2FyZ2FyYWhvcmFzLmdpZik7IHdpZHRoOiAxMDhweDsgfQotLmRvd25sb2FkaXR1bmVzcyB7
IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vaW1hZ2VzLmFwcGxlLmNvbS9nbG9iYWwvZWxl
bWVudHMvYnV0dG9ucy9kb3dubG9hZGl0dW5lc3MucG5nKTsgX2JhY2tncm91bmQtaW1hZ2U6IHVy
bChodHRwOi8vaW1hZ2VzLmFwcGxlLmNvbS9nbG9iYWwvZWxlbWVudHMvYnV0dG9ucy9kb3dubG9h
ZGl0dW5lc3MuZ2lmKTsgd2lkdGg6IDExNnB4OyB9Ci0uZG93bmxvYWRub3dzIHsgYmFja2dyb3Vu
ZC1pbWFnZTogdXJsKGh0dHA6Ly9pbWFnZXMuYXBwbGUuY29tL2dsb2JhbC9lbGVtZW50cy9idXR0
b25zL2Rvd25sb2Fkbm93cy5wbmcpOyBfYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly9pbWFn
ZXMuYXBwbGUuY29tL2dsb2JhbC9lbGVtZW50cy9idXR0b25zL2Rvd25sb2Fkbm93cy5naWYpOyB3
aWR0aDogMTA4cHg7IH0KLS5maW5kcyB7IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vaW1h
Z2VzLmFwcGxlLmNvbS9nbG9iYWwvZWxlbWVudHMvYnV0dG9ucy9maW5kcy5wbmcpOyBfYmFja2dy
b3VuZC1pbWFnZTogdXJsKGh0dHA6Ly9pbWFnZXMuYXBwbGUuY29tL2dsb2JhbC9lbGVtZW50cy9i
dXR0b25zL2ZpbmRzLmdpZik7IHdpZHRoOiA1MnB4OyB9Ci0uZnJlZXRyaWFscyB7IGJhY2tncm91
bmQtaW1hZ2U6IHVybChodHRwOi8vaW1hZ2VzLmFwcGxlLmNvbS9nbG9iYWwvZWxlbWVudHMvYnV0
dG9ucy9mcmVldHJpYWxzLnBuZyk7IF9iYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL2ltYWdl
cy5hcHBsZS5jb20vZ2xvYmFsL2VsZW1lbnRzL2J1dHRvbnMvZnJlZXRyaWFscy5naWYpOyB3aWR0
aDogNzJweDsgfQotLmdldHN0YXJ0ZWRzIHsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly9p
bWFnZXMuYXBwbGUuY29tL2dsb2JhbC9lbGVtZW50cy9idXR0b25zL2dldHN0YXJ0ZWRzLnBuZyk7
IF9iYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL2ltYWdlcy5hcHBsZS5jb20vZ2xvYmFsL2Vs
ZW1lbnRzL2J1dHRvbnMvZ2V0c3RhcnRlZHMuZ2lmKTsgd2lkdGg6IDkwcHg7IH0KLS5nb3MgeyBi
YWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL2ltYWdlcy5hcHBsZS5jb20vZ2xvYmFsL2VsZW1l
bnRzL2J1dHRvbnMvZ29zLnBuZyk7IF9iYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL2ltYWdl
cy5hcHBsZS5jb20vZ2xvYmFsL2VsZW1lbnRzL2J1dHRvbnMvZ29zLmdpZik7IHdpZHRoOiA0NHB4
OyB9Ci0uaG93dG9hcHBseXMgeyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL2ltYWdlcy5h
cHBsZS5jb20vZ2xvYmFsL2VsZW1lbnRzL2J1dHRvbnMvaG93dG9hcHBseXMucG5nKTsgX2JhY2tn
cm91bmQtaW1hZ2U6IHVybChodHRwOi8vaW1hZ2VzLmFwcGxlLmNvbS9nbG9iYWwvZWxlbWVudHMv
YnV0dG9ucy9ob3d0b2FwcGx5cy5naWYpOyB3aWR0aDogMTAwcHg7IH0KLS5ob3d0b2J1eXMgeyBi
YWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL2ltYWdlcy5hcHBsZS5jb20vZ2xvYmFsL2VsZW1l
bnRzL2J1dHRvbnMvaG93dG9idXlzLnBuZyk7IF9iYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDov
L2ltYWdlcy5hcHBsZS5jb20vZ2xvYmFsL2VsZW1lbnRzL2J1dHRvbnMvaG93dG9idXlzLmdpZik7
IHdpZHRoOiA4NnB4OyB9Ci0uam9pbm5vd3MgeyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDov
L2ltYWdlcy5hcHBsZS5jb20vZ2xvYmFsL2VsZW1lbnRzL2J1dHRvbnMvam9pbm5vd3MucG5nKTsg
X2JhY2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vaW1hZ2VzLmFwcGxlLmNvbS9nbG9iYWwvZWxl
bWVudHMvYnV0dG9ucy9qb2lubm93cy5naWYpOyB3aWR0aDogNzJweDsgfQotLmxlYXJubW9yZXMg
eyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL2ltYWdlcy5hcHBsZS5jb20vZ2xvYmFsL2Vs
ZW1lbnRzL2J1dHRvbnMvbGVhcm5tb3Jlcy5wbmcpOyBfYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0
dHA6Ly9pbWFnZXMuYXBwbGUuY29tL2dsb2JhbC9lbGVtZW50cy9idXR0b25zL2xlYXJubW9yZXMu
Z2lmKTsgd2lkdGg6IDg5cHg7IH0KLS5uaWtlYnV5bm93cyB7IGJhY2tncm91bmQtaW1hZ2U6IHVy
bChodHRwOi8vaW1hZ2VzLmFwcGxlLmNvbS9nbG9iYWwvZWxlbWVudHMvYnV0dG9ucy9uaWtlYnV5
bm93cy5wbmcpOyBfYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly9pbWFnZXMuYXBwbGUuY29t
L2dsb2JhbC9lbGVtZW50cy9idXR0b25zL25pa2VidXlub3dzLmdpZik7IHdpZHRoOiA3MnB4OyB9
Ci0ubm90aWZ5bWVzIHsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly9pbWFnZXMuYXBwbGUu
Y29tL2dsb2JhbC9lbGVtZW50cy9idXR0b25zL25vdGlmeW1lcy5wbmcpOyBfYmFja2dyb3VuZC1p
bWFnZTogdXJsKGh0dHA6Ly9pbWFnZXMuYXBwbGUuY29tL2dsb2JhbC9lbGVtZW50cy9idXR0b25z
L25vdGlmeW1lcy5naWYpOyB3aWR0aDogODBweDsgfQotLm9yZGVybm93cyB7IGJhY2tncm91bmQt
aW1hZ2U6IHVybChodHRwOi8vaW1hZ2VzLmFwcGxlLmNvbS9nbG9iYWwvZWxlbWVudHMvYnV0dG9u
cy9vcmRlcm5vd3MucG5nKTsgX2JhY2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vaW1hZ2VzLmFw
cGxlLmNvbS9nbG9iYWwvZWxlbWVudHMvYnV0dG9ucy9vcmRlcm5vd3MuZ2lmKTsgd2lkdGg6IDgx
cHg7IH0KLS5wcmVvcmRlcm5vd3MgeyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL2ltYWdl
cy5hcHBsZS5jb20vZ2xvYmFsL2VsZW1lbnRzL2J1dHRvbnMvcHJlb3JkZXJub3dzLnBuZyk7IF9i
YWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL2ltYWdlcy5hcHBsZS5jb20vZ2xvYmFsL2VsZW1l
bnRzL2J1dHRvbnMvcHJlb3JkZXJub3dzLmdpZik7IHdpZHRoOiA5OXB4OyB9Ci0ucHJlb3JkZXJz
IHsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly9pbWFnZXMuYXBwbGUuY29tL2dsb2JhbC9l
bGVtZW50cy9idXR0b25zL3ByZW9yZGVycy5wbmcpOyBfYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0
dHA6Ly9pbWFnZXMuYXBwbGUuY29tL2dsb2JhbC9lbGVtZW50cy9idXR0b25zL3ByZW9yZGVycy5n
aWYpOyB3aWR0aDogNzdweDsgfQotLnJlc2VydmVzIHsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0
dHA6Ly9pbWFnZXMuYXBwbGUuY29tL2dsb2JhbC9lbGVtZW50cy9idXR0b25zL3Jlc2VydmVzLnBu
Zyk7IF9iYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL2ltYWdlcy5hcHBsZS5jb20vZ2xvYmFs
L2VsZW1lbnRzL2J1dHRvbnMvcmVzZXJ2ZXMuZ2lmKTsgd2lkdGg6IDY4cHg7IH0KLS5zdGFydHlv
dXJzZWFyY2hzIHsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly9pbWFnZXMuYXBwbGUuY29t
L2dsb2JhbC9lbGVtZW50cy9idXR0b25zL3N0YXJ0eW91cnNlYXJjaHMucG5nKTsgX2JhY2tncm91
bmQtaW1hZ2U6IHVybChodHRwOi8vaW1hZ2VzLmFwcGxlLmNvbS9nbG9iYWwvZWxlbWVudHMvYnV0
dG9ucy9zdGFydHlvdXJzZWFyY2hzLmdpZik7IHdpZHRoOiAxMjBweDsgfQotLnN1Ym1pdHMgeyBi
YWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL2ltYWdlcy5hcHBsZS5jb20vZ2xvYmFsL2VsZW1l
bnRzL2J1dHRvbnMvc3VibWl0cy5wbmcpOyBfYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly9p
bWFnZXMuYXBwbGUuY29tL2dsb2JhbC9lbGVtZW50cy9idXR0b25zL3N1Ym1pdHMuZ2lmKTsgd2lk
dGg6IDY3cHg7IH0KLS50cnlhbWFjcyB7IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vaW1h
Z2VzLmFwcGxlLmNvbS9nbG9iYWwvZWxlbWVudHMvYnV0dG9ucy90cnlhbWFjcy5wbmcpOyBfYmFj
a2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly9pbWFnZXMuYXBwbGUuY29tL2dsb2JhbC9lbGVtZW50
cy9idXR0b25zL3RyeWFtYWNzLmdpZik7IHdpZHRoOiA3N3B4OyB9Ci0udXBncmFkZW5vd3MgeyBi
YWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL2ltYWdlcy5hcHBsZS5jb20vZ2xvYmFsL2VsZW1l
bnRzL2J1dHRvbnMvdXBncmFkZW5vd3MucG5nKTsgX2JhY2tncm91bmQtaW1hZ2U6IHVybChodHRw
Oi8vaW1hZ2VzLmFwcGxlLmNvbS9nbG9iYWwvZWxlbWVudHMvYnV0dG9ucy91cGdyYWRlbm93cy5n
aWYpOyB3aWR0aDogMTA0cHg7IH0KLQotI3Byb2R1Y3RoZWFkZXIgLmJyb3dzZXdlYmFwcHNzLCAj
cHJvZHVjdGhlYWRlciAuYnVzaW5lc3NzdG9yZXMsICNwcm9kdWN0aGVhZGVyIC5idXlpcGhvbmVz
LCAjcHJvZHVjdGhlYWRlciAuYnV5bm93cywgI3Byb2R1Y3RoZWFkZXIgLmNvbWluZ3Nvb25zLCAj
cHJvZHVjdGhlYWRlciAuZGVzY2FyZ2FyYWhvcmFzLCAKLSNwcm9kdWN0aGVhZGVyIC5kb3dubG9h
ZGl0dW5lc3MsICNwcm9kdWN0aGVhZGVyIC5kb3dubG9hZG5vd3MsICNwcm9kdWN0aGVhZGVyIC5m
aW5kcywgI3Byb2R1Y3RoZWFkZXIgLmZyZWV0cmlhbHMsICNwcm9kdWN0aGVhZGVyIC5nZXRzdGFy
dGVkcywgCi0jcHJvZHVjdGhlYWRlciAuZ29zLCAjcHJvZHVjdGhlYWRlciAuaG93dG9hcHBseXMs
ICNwcm9kdWN0aGVhZGVyIC5ob3d0b2J1eXMsICNwcm9kdWN0aGVhZGVyIC5qb2lubm93cywgI3By
b2R1Y3RoZWFkZXIgLmxlYXJubW9yZXMsIAotI3Byb2R1Y3RoZWFkZXIgLm5vdGlmeW1lcywgI3By
b2R1Y3RoZWFkZXIgLm9yZGVybm93cywgI3Byb2R1Y3RoZWFkZXIgLnByZW9yZGVybm93cywgI3By
b2R1Y3RoZWFkZXIgLnByZW9yZGVycywgI3Byb2R1Y3RoZWFkZXIgLnJlc2VydmVzLCAKLSNwcm9k
dWN0aGVhZGVyIC5zdGFydHlvdXJzZWFyY2hzLCAjcHJvZHVjdGhlYWRlciAuc3VibWl0cywgI3By
b2R1Y3RoZWFkZXIgLnRyeWFtYWNzLCAjcHJvZHVjdGhlYWRlciAudXBncmFkZW5vd3MgewotCW1h
cmdpbjogMC44ZW0gMCAwIDIwcHg7IGZsb2F0OiBsZWZ0OwotfQotCi0vKiBwcm9tb2Zvb3RlciAq
LwotI3Byb21vZm9vdGVyIHsgd2lkdGg6OTg0cHg7IG1hcmdpbjoxOHB4IGF1dG8gMDsgcGFkZGlu
Zy10b3A6MTdweDsgYmFja2dyb3VuZDp1cmwoaHR0cDovL2ltYWdlcy5hcHBsZS5jb20vcHJvbW9z
L2ltYWdlcy9wcm9tb2Zvb3Rlcl90b3AucG5nKSBuby1yZXBlYXQ7IHpvb206MTsgX2JhY2tncm91
bmQtaW1hZ2U6dXJsKGh0dHA6Ly9pbWFnZXMuYXBwbGUuY29tL3Byb21vcy9pbWFnZXMvcHJvbW9m
b290ZXJfdG9wLmdpZik7IH0KLSNwcm9tb2Zvb3RlciAjcHJvbW9zIHsgd2lkdGg6OTgwcHg7IG1h
cmdpbi1ib3R0b206MDsgcGFkZGluZzowIDJweCA0cHg7IGJhY2tncm91bmQ6dXJsKGh0dHA6Ly9p
bWFnZXMuYXBwbGUuY29tL3Byb21vcy9pbWFnZXMvcHJvbW9mb290ZXJfYm90dG9tLnBuZykgbm8t
cmVwZWF0IDAgMTAwJTsgem9vbToxOyBfYmFja2dyb3VuZC1pbWFnZTp1cmwoaHR0cDovL2ltYWdl
cy5hcHBsZS5jb20vcHJvbW9zL2ltYWdlcy9wcm9tb2Zvb3Rlcl9ib3R0b20uZ2lmKTsgfQotI3By
b21vZm9vdGVyICNwcm9tb3M6OmFmdGVyIHsgY29udGVudDonLic7IGRpc3BsYXk6YmxvY2s7IGhl
aWdodDowOyBjbGVhcjpib3RoOyB2aXNpYmlsaXR5OmhpZGRlbjsgfQotI3Byb21vZm9vdGVyICNw
cm9tb3MgbGkucHJvbW8geyBwb3NpdGlvbjpyZWxhdGl2ZTsgZmxvYXQ6bGVmdDsgd2lkdGg6MjQ0
cHg7IG1pbi1oZWlnaHQ6MTVlbTsgX2hlaWdodDoxNWVtOyBwYWRkaW5nLXJpZ2h0OjFweDsgbWFy
Z2luLXRvcDotMTZweDsgfQotI3Byb21vZm9vdGVyICNwcm9tb3MgbGkucHJvbW8gYSB7IGNvbG9y
OiM3Nzc7IH0KLSNwcm9tb2Zvb3RlciAjcHJvbW9zIGxpLnByb21vOmhvdmVyIGEgeyBjb2xvcjoj
MDhjOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgfQotCi0jcHJvbW9mb290ZXIgI3Byb21vcyBpbWcg
eyBkaXNwbGF5OmJsb2NrOyB9Ci0KLSNwcm9tb2Zvb3RlciAjcHJvbW9zIGg0IGEsCi0jcHJvbW9m
b290ZXIgI3Byb21vcyBwIGEsCi0jcHJvbW9mb290ZXIgI3Byb21vcyB1bCB7IGRpc3BsYXk6Ymxv
Y2s7IHBhZGRpbmctbGVmdDoxNXB4OyBwYWRkaW5nLXJpZ2h0OjEycHg7IHRleHQtYWxpZ246bGVm
dDsgei1pbmRleDoxMDE7ICpwb3NpdGlvbjpyZWxhdGl2ZTsgfQotCi0jcHJvbW9mb290ZXIgI3By
b21vcyBoNCBhIHsgZm9udC1zaXplOjE4cHg7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgcGFkZGluZy10
b3A6MTVweDsgfQotI3Byb21vZm9vdGVyICNwcm9tb3MgcCB7IG1hcmdpbi1ib3R0b206MDsgfQot
I3Byb21vZm9vdGVyICNwcm9tb3MgcCBhIHsgZm9udC1zaXplOjExcHg7IGxpbmUtaGVpZ2h0OjE2
cHg7IH0KLSNwcm9tb2Zvb3RlciAjcHJvbW9zIGEuaW1hZ2UgeyBoZWlnaHQ6MTgwcHg7IHBvc2l0
aW9uOmFic29sdXRlOyBib3R0b206MDsgei1pbmRleDoxMDA7IH0KLQotI3Byb21vZm9vdGVyICNw
cm9tb3MgLnByb21vLmxlZnQgcCBhIHsgd2lkdGg6MTEwcHg7IH0KLSNwcm9tb2Zvb3RlciAjcHJv
bW9zIC5wcm9tby5yaWdodCBwIGEgeyB3aWR0aDoxMTJweDsgcGFkZGluZy1sZWZ0OjExNnB4OyB9
Ci0jcHJvbW9mb290ZXIgI3Byb21vcyAucHJvbW8uY2VudGVyIHAgYSB7IHRleHQtYWxpZ246Y2Vu
dGVyOyB9Ci0KLSNwcm9tb2Zvb3RlciAjcHJvbW9zIGxpLmJ1eSB7IHBvc2l0aW9uOnJlbGF0aXZl
OyBmbG9hdDpsZWZ0OyB3aWR0aDoyNDRweDsgcGFkZGluZy1yaWdodDoxcHg7IG1hcmdpbi10b3A6
LTE3cHg7IGNvbG9yOiM3Nzc7IH0KLSNwcm9tb2Zvb3RlciAjcHJvbW9zIGxpLmJ1eSB1bCB7IGZv
bnQtc2l6ZToxMXB4OyBsaW5lLWhlaWdodDoxLjQ7IH0KLQotI3Byb21vZm9vdGVyLmdyaWQyY29s
IHsgbWluLWhlaWdodDogNzBweDsgcGFkZGluZzoxNXB4IDAgOHB4IDA7ICBib3JkZXI6IDFweCBz
b2xpZCAjRDJEMkQyOyB9Ci0jcHJvbW9mb290ZXIuZ3JpZDJjb2wgeyBiYWNrZ3JvdW5kOiNmZmY7
Ci0gICAgYmFja2dyb3VuZDotd2Via2l0LWdyYWRpZW50KGxpbmVhciwgMCUgMCUsIDAlIDEwMCUs
IGZyb20oI2ZmZiksIHRvKCNlNWU1ZTUpKTsKLSAgICBiYWNrZ3JvdW5kOi1tb3otbGluZWFyLWdy
YWRpZW50KDEwMCUgMTAwJSA5MGRlZywgI2U1ZTVlNSwgI2ZmZik7Ci0gICAgZmlsdGVyOnByb2dp
ZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChHcmFkaWVudFR5cGU9MCwgc3Rh
cnRDb2xvcnN0cj0nI0ZGRkZGRicsIGVuZENvbG9yc3RyPScjZTVlNWU1Jyk7Ci0gfQotI3Byb21v
Zm9vdGVyLmdyaWQyY29sICNwcm9tb3MgeyBiYWNrZ3JvdW5kOiBub25lO30KLSNwcm9tb2Zvb3Rl
ci5ncmlkMmNvbCAjcHJvbW9zIGxpLnByb21vIHsgd2lkdGg6IDQ3JTsgbWluLWhlaWdodDogNzBw
eDsgbWFyZ2luLWJvdHRvbTogLTEwcHg7IH0KLSNwcm9tb2Zvb3Rlci5ncmlkMmNvbCAjcHJvbW9z
IGxpLnByb21vLmZpcnN0IHsgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2U4ZThlODsgfQotI3By
b21vZm9vdGVyLmdyaWQyY29sIGxpLnByb21vIHsgcGFkZGluZzoyMHB4OyB9Ci0KLS8qIFBSSU5U
ICovCi1AbWVkaWEgcHJpbnQgewotCWJvZHksICNtYWluLCAjY29udGVudCB7IGNvbG9yOiAjMDAw
ICFpbXBvcnRhbnQ7IH0KLQlhLCBhOmxpbmssIGE6dmlzaXRlZCB7IGNvbG9yOiAjMDAwICFpbXBv
cnRhbnQ7IHRleHQtZGVjb3JhdGlvbjpub25lICFpbXBvcnRhbnQ7IH0KLQkjdGFicywgI2dsb2Jh
bGhlYWRlciwgI2dsb2JhbGZvb3RlciwgI2RpcmVjdG9yeW5hdiwgLm5vcHJpbnQsIC5oaWRlIHsg
ZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9Ci0JI21haW4gYS5wZGYsICNtYWluIGEuaHRtbCwg
I21haW4gYS5xdCwgI21haW4gYS5pY2FsLCAjbWFpbiBhLmRsLCAjbWFpbiBhLmRtZywgI21haW4g
YS56aXAsICNtYWluIGEua2V5bm90ZSwgI21haW4gYS5hdWRpbyB7IHBhZGRpbmctbGVmdDogMCAh
aW1wb3J0YW50OyBiYWNrZ3JvdW5kLWltYWdlOiBub25lICFpbXBvcnRhbnQ7IH0KLX0KLQotLyog
aVBob25lICovCi1AbWVkaWEgc2NyZWVuIGFuZCAobWF4LWRldmljZS13aWR0aDogNDgwcHgpIHsg
aHRtbCB7IC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogbm9uZTsgfSB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9Gb3JtYXR0ZXIu
anMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9Gb3Jt
YXR0ZXIuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU0YTY1ODA5YTZhLi4wMDAw
MDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9s
bGVycy9Gb3JtYXR0ZXIuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxNjcgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
Ci0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
ICovCi0KLVdJLkZvcm1hdHRlciA9IGNsYXNzIEZvcm1hdHRlcgotewotICAgIGNvbnN0cnVjdG9y
KGNvZGVNaXJyb3IsIGJ1aWxkZXIpCi0gICAgewotICAgICAgICBjb25zb2xlLmFzc2VydChjb2Rl
TWlycm9yKTsKLSAgICAgICAgY29uc29sZS5hc3NlcnQoYnVpbGRlcik7Ci0KLSAgICAgICAgdGhp
cy5fY29kZU1pcnJvciA9IGNvZGVNaXJyb3I7Ci0gICAgICAgIHRoaXMuX2J1aWxkZXIgPSBidWls
ZGVyOwotCi0gICAgICAgIHRoaXMuX2xhc3RUb2tlbiA9IG51bGw7Ci0gICAgICAgIHRoaXMuX2xh
c3RDb250ZW50ID0gIiI7Ci0gICAgfQotCi0gICAgLy8gUHVibGljCi0KLSAgICBmb3JtYXQoZnJv
bSwgdG8pCi0gICAgewotICAgICAgICBjb25zb2xlLmFzc2VydCh0aGlzLl9idWlsZGVyLm9yaWdp
bmFsQ29udGVudCA9PT0gbnVsbCk7Ci0gICAgICAgIGlmICh0aGlzLl9idWlsZGVyLm9yaWdpbmFs
Q29udGVudCAhPT0gbnVsbCkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICB2YXIgb3V0
ZXJNb2RlID0gdGhpcy5fY29kZU1pcnJvci5nZXRNb2RlKCk7Ci0gICAgICAgIHZhciBjb250ZW50
ID0gdGhpcy5fY29kZU1pcnJvci5nZXRSYW5nZShmcm9tLCB0byk7Ci0gICAgICAgIHZhciBzdGF0
ZSA9IENvZGVNaXJyb3IuY29weVN0YXRlKG91dGVyTW9kZSwgdGhpcy5fY29kZU1pcnJvci5nZXRU
b2tlbkF0KGZyb20pLnN0YXRlKTsKLSAgICAgICAgdGhpcy5fYnVpbGRlci5zZXRPcmlnaW5hbENv
bnRlbnQoY29udGVudCk7Ci0KLSAgICAgICAgdmFyIGxpbmVPZmZzZXQgPSAwOwotICAgICAgICB2
YXIgbGluZXMgPSBjb250ZW50LnNwbGl0KCJcbiIpOwotICAgICAgICBmb3IgKHZhciBpID0gMDsg
aSA8IGxpbmVzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgICAgICB2YXIgbGluZSA9IGxpbmVzW2ld
OwotICAgICAgICAgICAgdmFyIHN0YXJ0T2ZOZXdMaW5lID0gdHJ1ZTsKLSAgICAgICAgICAgIHZh
ciBmaXJzdFRva2VuT25MaW5lID0gdHJ1ZTsKLSAgICAgICAgICAgIHZhciBzdHJlYW0gPSBuZXcg
Q29kZU1pcnJvci5TdHJpbmdTdHJlYW0obGluZSk7Ci0gICAgICAgICAgICB3aGlsZSAoIXN0cmVh
bS5lb2woKSkgewotICAgICAgICAgICAgICAgIHZhciBpbm5lck1vZGUgPSBDb2RlTWlycm9yLmlu
bmVyTW9kZShvdXRlck1vZGUsIHN0YXRlKTsKLSAgICAgICAgICAgICAgICB2YXIgdG9rZW4gPSBv
dXRlck1vZGUudG9rZW4oc3RyZWFtLCBzdGF0ZSk7Ci0gICAgICAgICAgICAgICAgdmFyIGlzV2hp
dGVTcGFjZSA9IHRva2VuID09PSBudWxsICYmIC9eXHMqJC8udGVzdChzdHJlYW0uY3VycmVudCgp
KTsKLSAgICAgICAgICAgICAgICB0aGlzLl9oYW5kbGVUb2tlbihpbm5lck1vZGUubW9kZSwgdG9r
ZW4sIHN0YXRlLCBzdHJlYW0sIGxpbmVPZmZzZXQgKyBzdHJlYW0uc3RhcnQsIGlzV2hpdGVTcGFj
ZSwgc3RhcnRPZk5ld0xpbmUsIGZpcnN0VG9rZW5PbkxpbmUpOwotICAgICAgICAgICAgICAgIHN0
cmVhbS5zdGFydCA9IHN0cmVhbS5wb3M7Ci0gICAgICAgICAgICAgICAgc3RhcnRPZk5ld0xpbmUg
PSBmYWxzZTsKLSAgICAgICAgICAgICAgICBpZiAoZmlyc3RUb2tlbk9uTGluZSAmJiAhaXNXaGl0
ZVNwYWNlKQotICAgICAgICAgICAgICAgICAgICBmaXJzdFRva2VuT25MaW5lID0gZmFsc2U7Ci0g
ICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGlmIChmaXJzdFRva2VuT25MaW5lKQotICAgICAg
ICAgICAgICAgIHRoaXMuX2hhbmRsZUVtcHR5TGluZSgpOwotCi0gICAgICAgICAgICBsaW5lT2Zm
c2V0ICs9IGxpbmUubGVuZ3RoICsgMTsgLy8gKzEgZm9yIHRoZSAiXG4iIHJlbW92ZWQgaW4gc3Bs
aXQuCi0gICAgICAgICAgICB0aGlzLl9oYW5kbGVMaW5lRW5kaW5nKGxpbmVPZmZzZXQgLSAxKTsg
Ly8gLTEgZm9yIHRoZSBpbmRleCBvZiB0aGUgIlxuIi4KLSAgICAgICAgfQotCi0gICAgICAgIHRo
aXMuX2J1aWxkZXIuZmluaXNoKCk7Ci0gICAgfQotCi0gICAgLy8gUHJpdmF0ZQotCi0gICAgX2hh
bmRsZVRva2VuKG1vZGUsIHRva2VuLCBzdGF0ZSwgc3RyZWFtLCBvcmlnaW5hbFBvc2l0aW9uLCBp
c1doaXRlU3BhY2UsIHN0YXJ0T2ZOZXdMaW5lLCBmaXJzdFRva2VuT25MaW5lKQotICAgIHsKLSAg
ICAgICAgLy8gU3RyaW5nIGNvbnRlbnQgb2YgdGhlIHRva2VuLgotICAgICAgICB2YXIgY29udGVu
dCA9IHN0cmVhbS5jdXJyZW50KCk7Ci0KLSAgICAgICAgLy8gU3RhcnQgb2YgYSBuZXcgbGluZS4g
SW5zZXJ0IGEgbmV3bGluZSB0byBiZSBzYWZlIGlmIGNvZGUgd2FzIG5vdC1BU0kgc2FmZS4gVGhl
c2UgYXJlIGNvbGxhcHNlZC4KLSAgICAgICAgaWYgKHN0YXJ0T2ZOZXdMaW5lKQotICAgICAgICAg
ICAgdGhpcy5fYnVpbGRlci5hcHBlbmROZXdsaW5lKCk7Ci0KLSAgICAgICAgLy8gV2hpdGVzcGFj
ZS4gUmVtb3ZlIGFsbCBzcGFjZXMgb3IgY29sbGFwc2UgdG8gYSBzaW5nbGUgc3BhY2UuCi0gICAg
ICAgIGlmIChpc1doaXRlU3BhY2UpIHsKLSAgICAgICAgICAgIHRoaXMuX2J1aWxkZXIuYXBwZW5k
U3BhY2UoKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIC8vIEF2
b2lkIHNvbWUgaG9va3MgZm9yIGNvbnRlbnQgaW4gY29tbWVudHMuCi0gICAgICAgIHZhciBpc0Nv
bW1lbnQgPSB0b2tlbiAmJiAvXGJjb21tZW50XGIvLnRlc3QodG9rZW4pOwotCi0gICAgICAgIGlm
IChtb2RlLm1vZGlmeVN0YXRlRm9yVG9rZW5QcmUpCi0gICAgICAgICAgICBtb2RlLm1vZGlmeVN0
YXRlRm9yVG9rZW5QcmUodGhpcy5fbGFzdFRva2VuLCB0aGlzLl9sYXN0Q29udGVudCwgdG9rZW4s
IHN0YXRlLCBjb250ZW50LCBpc0NvbW1lbnQpOwotCi0gICAgICAgIC8vIFNob3VsZCB3ZSByZW1v
dmUgdGhlIGxhc3Qgd2hpdGVzcGFjZT8KLSAgICAgICAgaWYgKHRoaXMuX2J1aWxkZXIubGFzdFRv
a2VuV2FzV2hpdGVzcGFjZSAmJiBtb2RlLnJlbW92ZUxhc3RXaGl0ZXNwYWNlKHRoaXMuX2xhc3RU
b2tlbiwgdGhpcy5fbGFzdENvbnRlbnQsIHRva2VuLCBzdGF0ZSwgY29udGVudCwgaXNDb21tZW50
KSkKLSAgICAgICAgICAgIHRoaXMuX2J1aWxkZXIucmVtb3ZlTGFzdFdoaXRlc3BhY2UoKTsKLQot
ICAgICAgICAvLyBTaG91bGQgd2UgcmVtb3ZlIHRoZSBsYXN0IG5ld2xpbmU/Ci0gICAgICAgIGlm
ICh0aGlzLl9idWlsZGVyLmxhc3RUb2tlbldhc05ld2xpbmUgJiYgbW9kZS5yZW1vdmVMYXN0TmV3
bGluZSh0aGlzLl9sYXN0VG9rZW4sIHRoaXMuX2xhc3RDb250ZW50LCB0b2tlbiwgc3RhdGUsIGNv
bnRlbnQsIGlzQ29tbWVudCwgZmlyc3RUb2tlbk9uTGluZSkpCi0gICAgICAgICAgICB0aGlzLl9i
dWlsZGVyLnJlbW92ZUxhc3ROZXdsaW5lKCk7Ci0KLSAgICAgICAgLy8gQWRkIHdoaXRlc3BhY2Ug
YWZ0ZXIgdGhlIGxhc3QgdG9rZW4/Ci0gICAgICAgIGlmICghdGhpcy5fYnVpbGRlci5sYXN0VG9r
ZW5XYXNXaGl0ZXNwYWNlICYmIG1vZGUuc2hvdWxkSGF2ZVNwYWNlQWZ0ZXJMYXN0VG9rZW4odGhp
cy5fbGFzdFRva2VuLCB0aGlzLl9sYXN0Q29udGVudCwgdG9rZW4sIHN0YXRlLCBjb250ZW50LCBp
c0NvbW1lbnQpKQotICAgICAgICAgICAgdGhpcy5fYnVpbGRlci5hcHBlbmRTcGFjZSgpOwotCi0g
ICAgICAgIC8vIEFkZCB3aGl0ZXNwYWNlIGJlZm9yZSB0aGlzIHRva2VuPwotICAgICAgICBpZiAo
IXRoaXMuX2J1aWxkZXIubGFzdFRva2VuV2FzV2hpdGVzcGFjZSAmJiBtb2RlLnNob3VsZEhhdmVT
cGFjZUJlZm9yZVRva2VuKHRoaXMuX2xhc3RUb2tlbiwgdGhpcy5fbGFzdENvbnRlbnQsIHRva2Vu
LCBzdGF0ZSwgY29udGVudCwgaXNDb21tZW50KSkKLSAgICAgICAgICAgIHRoaXMuX2J1aWxkZXIu
YXBwZW5kU3BhY2UoKTsKLQotICAgICAgICAvLyBTaG91bGQgd2UgZGVkZW50IGJlZm9yZSB0aGlz
IHRva2VuPwotICAgICAgICB2YXIgZGVkZW50cyA9IG1vZGUuZGVkZW50c0JlZm9yZVRva2VuKHRo
aXMuX2xhc3RUb2tlbiwgdGhpcy5fbGFzdENvbnRlbnQsIHRva2VuLCBzdGF0ZSwgY29udGVudCwg
aXNDb21tZW50KTsKLSAgICAgICAgd2hpbGUgKGRlZGVudHMtLSA+IDApCi0gICAgICAgICAgICB0
aGlzLl9idWlsZGVyLmRlZGVudCgpOwotCi0gICAgICAgIC8vIFNob3VsZCB3ZSBhZGQgYSBuZXds
aW5lIGJlZm9yZSB0aGlzIHRva2VuPwotICAgICAgICBpZiAobW9kZS5uZXdsaW5lQmVmb3JlVG9r
ZW4odGhpcy5fbGFzdFRva2VuLCB0aGlzLl9sYXN0Q29udGVudCwgdG9rZW4sIHN0YXRlLCBjb250
ZW50LCBpc0NvbW1lbnQpKQotICAgICAgICAgICAgdGhpcy5fYnVpbGRlci5hcHBlbmROZXdsaW5l
KCk7Ci0KLSAgICAgICAgLy8gU2hvdWxkIHdlIGluZGVudCBiZWZvcmUgdGhpcyB0b2tlbj8KLSAg
ICAgICAgaWYgKG1vZGUuaW5kZW50QmVmb3JlVG9rZW4odGhpcy5fbGFzdFRva2VuLCB0aGlzLl9s
YXN0Q29udGVudCwgdG9rZW4sIHN0YXRlLCBjb250ZW50LCBpc0NvbW1lbnQpKQotICAgICAgICAg
ICAgdGhpcy5fYnVpbGRlci5pbmRlbnQoKTsKLQotICAgICAgICAvLyBBcHBlbmQgdG9rZW4uCi0g
ICAgICAgIHRoaXMuX2J1aWxkZXIuYXBwZW5kVG9rZW4oY29udGVudCwgb3JpZ2luYWxQb3NpdGlv
bik7Ci0KLSAgICAgICAgLy8gTGV0IHRoZSBwcmV0dHkgcHJpbnRlciB1cGRhdGUgYW55IHN0YXRl
IGl0IGtlZXBzIHRyYWNrIG9mLgotICAgICAgICBpZiAobW9kZS5tb2RpZnlTdGF0ZUZvclRva2Vu
UG9zdCkKLSAgICAgICAgICAgIG1vZGUubW9kaWZ5U3RhdGVGb3JUb2tlblBvc3QodGhpcy5fbGFz
dFRva2VuLCB0aGlzLl9sYXN0Q29udGVudCwgdG9rZW4sIHN0YXRlLCBjb250ZW50LCBpc0NvbW1l
bnQpOwotCi0gICAgICAgIC8vIFNob3VsZCB3ZSBpbmRlbnQgb3IgZGVkZW50IGFmdGVyIHRoaXMg
dG9rZW4/Ci0gICAgICAgIGlmICghaXNDb21tZW50ICYmIG1vZGUuaW5kZW50QWZ0ZXJUb2tlbih0
aGlzLl9sYXN0VG9rZW4sIHRoaXMuX2xhc3RDb250ZW50LCB0b2tlbiwgc3RhdGUsIGNvbnRlbnQs
IGlzQ29tbWVudCkpCi0gICAgICAgICAgICB0aGlzLl9idWlsZGVyLmluZGVudCgpOwotCi0gICAg
ICAgIC8vIFNob3VsZCB3ZSBhZGQgbmV3bGluZXMgYWZ0ZXIgdGhpcyB0b2tlbj8KLSAgICAgICAg
dmFyIG5ld2xpbmVzID0gbW9kZS5uZXdsaW5lc0FmdGVyVG9rZW4odGhpcy5fbGFzdFRva2VuLCB0
aGlzLl9sYXN0Q29udGVudCwgdG9rZW4sIHN0YXRlLCBjb250ZW50LCBpc0NvbW1lbnQpOwotICAg
ICAgICBpZiAobmV3bGluZXMpCi0gICAgICAgICAgICB0aGlzLl9idWlsZGVyLmFwcGVuZE11bHRp
cGxlTmV3bGluZXMobmV3bGluZXMpOwotCi0gICAgICAgIC8vIFJlY29yZCB0aGlzIHRva2VuIGFz
IHRoZSBsYXN0IHRva2VuLgotICAgICAgICB0aGlzLl9sYXN0VG9rZW4gPSB0b2tlbjsKLSAgICAg
ICAgdGhpcy5fbGFzdENvbnRlbnQgPSBjb250ZW50OwotICAgIH0KLQotICAgIF9oYW5kbGVFbXB0
eUxpbmUoKQotICAgIHsKLSAgICAgICAgLy8gUHJlc2VydmUgb3JpZ2luYWwgd2hpdGVzcGFjZSBv
bmx5IGxpbmVzIGJ5IGFkZGluZyBhIG5ld2xpbmUuCi0gICAgICAgIC8vIEhvd2V2ZXIsIGRvbid0
IGRvIHRoaXMgaWYgdGhlIGJ1aWxkZXIganVzdCBhZGRlZCBtdWx0aXBsZSBuZXdsaW5lcy4KLSAg
ICAgICAgaWYgKCEodGhpcy5fYnVpbGRlci5sYXN0VG9rZW5XYXNOZXdsaW5lICYmIHRoaXMuX2J1
aWxkZXIubGFzdE5ld2xpbmVBcHBlbmRXYXNNdWx0aXBsZSkpCi0gICAgICAgICAgICB0aGlzLl9i
dWlsZGVyLmFwcGVuZE5ld2xpbmUodHJ1ZSk7Ci0gICAgfQotCi0gICAgX2hhbmRsZUxpbmVFbmRp
bmcob3JpZ2luYWxOZXdMaW5lUG9zaXRpb24pCi0gICAgewotICAgICAgICAvLyBSZWNvcmQgdGhl
IG9yaWdpbmFsIGxpbmUgZW5kaW5nLgotICAgICAgICB0aGlzLl9idWlsZGVyLmFkZE9yaWdpbmFs
TGluZUVuZGluZyhvcmlnaW5hbE5ld0xpbmVQb3NpdGlvbik7Ci0gICAgfQotfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01haW4uaHRtbCBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01haW4uaHRtbAppbmRleCA5NGQxNDRlOWY0
Ni4uN2ZmNzFmYmMxNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL01haW4uaHRtbAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9NYWluLmh0bWwKQEAgLTYyNSw3ICs2MjUsNiBAQAogICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9D
bHVzdGVyQ29udGVudFZpZXcuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9D
b2RlTWlycm9yQWRkaXRpb25zLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVmlld3Mv
Q29kZU1pcnJvckVkaXRvci5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9IlZpZXdzL0Nv
ZGVNaXJyb3JGb3JtYXR0ZXJzLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVmlld3Mv
Q29kZU1pcnJvckxvY2FsT3ZlcnJpZGVVUkxNb2RlLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0
IHNyYz0iVmlld3MvQ29kZU1pcnJvclJlZ2V4TW9kZS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlw
dCBzcmM9IlZpZXdzL0NvZGVNaXJyb3JUZXh0TWFya2Vycy5qcyI+PC9zY3JpcHQ+CkBAIC04Nzks
NyArODc4LDYgQEAKICAgICA8c2NyaXB0IHNyYz0iQ29udHJvbGxlcnMvRGF0YWJhc2VNYW5hZ2Vy
LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iQ29udHJvbGxlcnMvRGVidWdnZXJNYW5h
Z2VyLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iQ29udHJvbGxlcnMvRHJhZ1RvQWRq
dXN0Q29udHJvbGxlci5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9IkNvbnRyb2xsZXJz
L0Zvcm1hdHRlci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkNvbnRyb2xsZXJzL0Zv
cm1hdHRlclNvdXJjZU1hcC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkNvbnRyb2xs
ZXJzL0hBUkJ1aWxkZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJDb250cm9sbGVy
cy9IZWFwTWFuYWdlci5qcyI+PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9UZXN0Lmh0bWwgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9UZXN0Lmh0bWwKaW5kZXggMDZkYjc2MTU4ODAuLjg4NDI1Njc0MTIyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9UZXN0Lmh0bWwKKysr
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVGVzdC5odG1sCkBAIC0yNTcs
MTIgKzI1NywxMCBAQAogICAgIDxzY3JpcHQgc3JjPSJDb250cm9sbGVycy9UaW1lbGluZU1hbmFn
ZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJDb250cm9sbGVycy9Xb3JrZXJNYW5h
Z2VyLmpzIj48L3NjcmlwdD4KIAotICAgIDxzY3JpcHQgc3JjPSJDb250cm9sbGVycy9Gb3JtYXR0
ZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJDb250cm9sbGVycy9SZXNvdXJjZVF1
ZXJ5Q29udHJvbGxlci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkNvbnRyb2xsZXJz
L1NlbGVjdGlvbkNvbnRyb2xsZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJXb3Jr
ZXJzL0Zvcm1hdHRlci9Gb3JtYXR0ZXJDb250ZW50QnVpbGRlci5qcyI+PC9zY3JpcHQ+CiAgICAg
PHNjcmlwdCBzcmM9IlZpZXdzL0NvZGVNaXJyb3JBZGRpdGlvbnMuanMiPjwvc2NyaXB0PgotICAg
IDxzY3JpcHQgc3JjPSJWaWV3cy9Db2RlTWlycm9yRm9ybWF0dGVycy5qcyI+PC9zY3JpcHQ+CiAg
ICAgPHNjcmlwdCBzcmM9IlZpZXdzL0VkaXRpbmdTdXBwb3J0LmpzIj48L3NjcmlwdD4KICAgICA8
c2NyaXB0IHNyYz0iVmlld3MvVmlldy5qcyI+PC9zY3JpcHQ+CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvZGVNaXJyb3JGb3JtYXR0ZXJz
LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29kZU1pcnJv
ckZvcm1hdHRlcnMuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRkYmJjYzQyYWUx
Li4wMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9W
aWV3cy9Db2RlTWlycm9yRm9ybWF0dGVycy5qcworKysgL2Rldi9udWxsCkBAIC0xLDQ0OSArMCww
IEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAxNSBUb2JpYXMgUmVpc3MgPHRvYmkrd2Via2l0QGJh
c2Vjb2RlLmRlPgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0Ogot
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
Ci0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
Ci0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgot
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KLSAqLwotCi0vLyBJbiB0aGUgaW5zcGVjdG9yIHRva2VuIHR5cGVzIGhh
dmUgYmVlbiBtb2RpZmllZCB0byBpbmNsdWRlIGV4dHJhIG1vZGUgaW5mb3JtYXRpb24KLS8vIGFm
dGVyIHRoZSBhY3R1YWwgdG9rZW4gdHlwZS4gU28gd2UgY2FuJ3QgZG8gdG9rZW4gPT09ICJmb28i
LiBTbyBpbnN0ZWFkIHdlIGRvCi0vLyAvXGJmb29cYi8udGVzdCh0b2tlbikuCi0KLUNvZGVNaXJy
b3IuZXh0ZW5kTW9kZSgiamF2YXNjcmlwdCIsIHsKLSAgICBzaG91bGRIYXZlU3BhY2VCZWZvcmVU
b2tlbjogZnVuY3Rpb24obGFzdFRva2VuLCBsYXN0Q29udGVudCwgdG9rZW4sIHN0YXRlLCBjb250
ZW50LCBpc0NvbW1lbnQpCi0gICAgewotICAgICAgICBpZiAoIXRva2VuKSB7Ci0gICAgICAgICAg
ICBpZiAoY29udGVudCA9PT0gIigiKSAvLyBNb3N0IGtleXdvcmRzIGxpa2UgImlmICgiIGJ1dCBu
b3QgImZ1bmN0aW9uKCIgb3IgInR5cGVvZigiLgotICAgICAgICAgICAgICAgIHJldHVybiBsYXN0
VG9rZW4gJiYgL1xia2V5d29yZFxiLy50ZXN0KGxhc3RUb2tlbikgJiYgKGxhc3RDb250ZW50ICE9
PSAiZnVuY3Rpb24iICYmIGxhc3RDb250ZW50ICE9PSAidHlwZW9mIiAmJiBsYXN0Q29udGVudCAh
PT0gImluc3RhbmNlb2YiKTsKLSAgICAgICAgICAgIGlmIChjb250ZW50ID09PSAiOiIpIC8vIFRl
cm5hcnkuCi0gICAgICAgICAgICAgICAgcmV0dXJuIHN0YXRlLmxleGljYWwudHlwZSA9PT0gInN0
YXQiIHx8IHN0YXRlLmxleGljYWwudHlwZSA9PT0gIikiIHx8IHN0YXRlLmxleGljYWwudHlwZSA9
PT0gIl0iOwotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB9Ci0KLSAgICAgICAg
aWYgKGlzQ29tbWVudCkKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotCi0gICAgICAgIGlmICgv
XGJvcGVyYXRvclxiLy50ZXN0KHRva2VuKSkgewotICAgICAgICAgICAgaWYgKCFsYXN0VG9rZW4g
JiYgKGNvbnRlbnQgPT09ICIrIiB8fCBjb250ZW50ID09PSAiLSIgfHwgY29udGVudCA9PT0gIn4i
KSAmJiAobGFzdENvbnRlbnQgIT09ICIpIiAmJiBsYXN0Q29udGVudCAhPT0gIl0iKSkgLy8gUG9z
c2libGUgVW5hcnkgKy8tLgotICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAg
ICAgIGlmIChjb250ZW50ID09PSAiISIpIC8vIFVuYXJ5ICEgc2hvdWxkIG5vdCBiZSBjb25mdXNl
ZCB3aXRoICIhPSIuCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAg
cmV0dXJuICIrLS8qJSYmfHwhPT09Kz0tPT49PD0/Ii5pbmRleE9mKGNvbnRlbnQpID49IDA7IC8v
IE9wZXJhdG9ycy4KLSAgICAgICAgfQotCi0gICAgICAgIGlmICgvXGJrZXl3b3JkXGIvLnRlc3Qo
dG9rZW4pKSB7IC8vIE1vc3Qga2V5d29yZHMgcmVxdWlyZSBzcGFjZXMgYmVmb3JlIHRoZW0sIHVu
bGVzcyBhICd9JyBjYW4gY29tZSBiZWZvcmUgaXQuCi0gICAgICAgICAgICBpZiAoY29udGVudCA9
PT0gImVsc2UiIHx8IGNvbnRlbnQgPT09ICJjYXRjaCIgfHwgY29udGVudCA9PT0gImZpbmFsbHki
KQotICAgICAgICAgICAgICAgIHJldHVybiBsYXN0Q29udGVudCA9PT0gIn0iOwotICAgICAgICAg
ICAgaWYgKGNvbnRlbnQgPT09ICJ3aGlsZSIgJiYgbGFzdENvbnRlbnQgPT09ICJ9IikKLSAgICAg
ICAgICAgICAgICByZXR1cm4gc3RhdGUuX2pzUHJldHR5UHJpbnQubGFzdENvbnRlbnRCZWZvcmVC
bG9jayA9PT0gImRvIjsKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQotCi0g
ICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9LAotCi0gICAgc2hvdWxkSGF2ZVNwYWNlQWZ0ZXJM
YXN0VG9rZW46IGZ1bmN0aW9uKGxhc3RUb2tlbiwgbGFzdENvbnRlbnQsIHRva2VuLCBzdGF0ZSwg
Y29udGVudCwgaXNDb21tZW50KQotICAgIHsKLSAgICAgICAgaWYgKGxhc3RUb2tlbiAmJiAvXGJr
ZXl3b3JkXGIvLnRlc3QobGFzdFRva2VuKSkgeyAvLyBNb3N0IGtleXdvcmRzIHJlcXVpcmUgc3Bh
Y2VzIGFmdGVyIHRoZW0sIHVubGVzcyBhICd7JyBvciAnOycgY2FuIGNvbWUgYWZ0ZXIgaXQuCi0g
ICAgICAgICAgICBpZiAobGFzdENvbnRlbnQgPT09ICJlbHNlIikKLSAgICAgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKLSAgICAgICAgICAgIGlmIChsYXN0Q29udGVudCA9PT0gImNhdGNoIikKLSAg
ICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgICAgIGlmIChsYXN0Q29udGVudCA9
PT0gInJldHVybiIpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGNvbnRlbnQgIT09ICI7IjsKLSAg
ICAgICAgICAgIGlmIChsYXN0Q29udGVudCA9PT0gInRocm93IikKLSAgICAgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKLSAgICAgICAgICAgIGlmIChsYXN0Q29udGVudCA9PT0gInRyeSIpCi0gICAg
ICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgICAgICBpZiAobGFzdENvbnRlbnQgPT09
ICJmaW5hbGx5IikKLSAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgICAgIGlm
IChsYXN0Q29udGVudCA9PT0gImRvIikKLSAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQotCi0gICAgICAgIGlmIChsYXN0VG9r
ZW4gJiYgL1xiY29tbWVudFxiLy50ZXN0KGxhc3RUb2tlbikpIC8vIEVtYmVkZGVkIC8qIGNvbW1l
bnQgKi8uCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgaWYgKGxhc3RDb250ZW50
ID09PSAiKSIpIC8vICIpeyIuCi0gICAgICAgICAgICByZXR1cm4gY29udGVudCA9PT0gInsiOwot
ICAgICAgICBpZiAobGFzdENvbnRlbnQgPT09ICI7IikgLy8gSW4gZm9yIGxvb3AuCi0gICAgICAg
ICAgICByZXR1cm4gc3RhdGUubGV4aWNhbC50eXBlID09PSAiKSI7Ci0gICAgICAgIGlmIChsYXN0
Q29udGVudCA9PT0gIiEiKSAvLyBVbmFyeSAhIHNob3VsZCBub3QgYmUgY29uZnVzZWQgd2l0aCAi
IT0iLgotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgICAgIC8vIElmIHRoaXMgdW5h
cnkgb3BlcmF0b3IgZGlkIG5vdCBoYXZlIGEgbGVhZGluZyBleHByZXNzaW9uIGl0IGlzIHByb2Jh
Ymx5IHVuYXJ5LgotICAgICAgICBpZiAoKGxhc3RDb250ZW50ID09PSAiKyIgfHwgbGFzdENvbnRl
bnQgPT09ICItIiB8fCBsYXN0Q29udGVudCA9PT0gIn4iKSAmJiAhc3RhdGUuX2pzUHJldHR5UHJp
bnQudW5hcnlPcGVyYXRvckhhZExlYWRpbmdFeHByKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwotCi0gICAgICAgIHJldHVybiAiLCstLyolJiZ8fDohPT09Kz0tPT49PD0/Ii5pbmRleE9mKGxh
c3RDb250ZW50KSA+PSAwOyAvLyBPcGVyYXRvcnMuCi0gICAgfSwKLQotICAgIG5ld2xpbmVzQWZ0
ZXJUb2tlbjogZnVuY3Rpb24obGFzdFRva2VuLCBsYXN0Q29udGVudCwgdG9rZW4sIHN0YXRlLCBj
b250ZW50LCBpc0NvbW1lbnQpCi0gICAgewotICAgICAgICBpZiAoIXRva2VuKSB7Ci0gICAgICAg
ICAgICBpZiAoY29udGVudCA9PT0gIiwiKSAvLyBJbiBvYmplY3QgbGl0ZXJhbHMsIGxpa2UgaW4g
e2E6MSxiOjJ9LCBidXQgbm90IGluIHBhcmFtIGxpc3RzIG9yIHZhcmRlZiBsaXN0cy4KLSAgICAg
ICAgICAgICAgICByZXR1cm4gc3RhdGUubGV4aWNhbC50eXBlID09PSAifSIgPyAxIDogMDsKLSAg
ICAgICAgICAgIGlmIChjb250ZW50ID09PSAiOyIpIC8vIEV2ZXJ5d2hlcmUgZXhjZXB0IGluIGZv
ciBsb29wIGNvbmRpdGlvbnMuCi0gICAgICAgICAgICAgICAgcmV0dXJuIHN0YXRlLmxleGljYWwu
dHlwZSAhPT0gIikiID8gMSA6IDA7Ci0gICAgICAgICAgICBpZiAoY29udGVudCA9PT0gIjoiICYm
IHN0YXRlLmxleGljYWwudHlwZSA9PT0gIn0iICYmIHN0YXRlLmxleGljYWwucHJldiAmJiBzdGF0
ZS5sZXhpY2FsLnByZXYudHlwZSA9PT0gImZvcm0iKSAvLyBTd2l0Y2ggY2FzZS9kZWZhdWx0Lgot
ICAgICAgICAgICAgICAgIHJldHVybiAxOwotICAgICAgICAgICAgcmV0dXJuIGNvbnRlbnQubGVu
Z3RoID09PSAxICYmICJ7fSIuaW5kZXhPZihjb250ZW50KSA+PSAwID8gMSA6IDA7IC8vIEFmdGVy
IGJyYWNlcy4KLSAgICAgICAgfQotCi0gICAgICAgIGlmIChpc0NvbW1lbnQpCi0gICAgICAgICAg
ICByZXR1cm4gMTsKLQotICAgICAgICByZXR1cm4gMDsKLSAgICB9LAotCi0gICAgcmVtb3ZlTGFz
dFdoaXRlc3BhY2U6IGZ1bmN0aW9uKGxhc3RUb2tlbiwgbGFzdENvbnRlbnQsIHRva2VuLCBzdGF0
ZSwgY29udGVudCwgaXNDb21tZW50KQotICAgIHsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAg
IH0sCi0KLSAgICByZW1vdmVMYXN0TmV3bGluZTogZnVuY3Rpb24obGFzdFRva2VuLCBsYXN0Q29u
dGVudCwgdG9rZW4sIHN0YXRlLCBjb250ZW50LCBpc0NvbW1lbnQsIGZpcnN0VG9rZW5PbkxpbmUp
Ci0gICAgewotICAgICAgICBpZiAoIXRva2VuKSB7Ci0gICAgICAgICAgICBpZiAoY29udGVudCA9
PT0gIn0iKSAvLyAie30iLgotICAgICAgICAgICAgICAgIHJldHVybiBsYXN0Q29udGVudCA9PT0g
InsiOwotICAgICAgICAgICAgaWYgKGNvbnRlbnQgPT09ICI7IikgLy8gInggPSB7fTsiIG9yICI7
OyIuCi0gICAgICAgICAgICAgICAgcmV0dXJuICJ9OyIuaW5kZXhPZihsYXN0Q29udGVudCkgPj0g
MDsKLSAgICAgICAgICAgIGlmIChjb250ZW50ID09PSAiOiIpIC8vIFRlcm5hcnkuCi0gICAgICAg
ICAgICAgICAgcmV0dXJuIGxhc3RDb250ZW50ID09PSAifSIgJiYgKHN0YXRlLmxleGljYWwudHlw
ZSA9PT0gInN0YXQiIHx8IHN0YXRlLmxleGljYWwudHlwZSA9PT0gIikiIHx8IHN0YXRlLmxleGlj
YWwudHlwZSA9PT0gIl0iKTsKLSAgICAgICAgICAgIGlmICgiLCgpLiIuaW5kZXhPZihjb250ZW50
KSA+PSAwKSAvLyAifSkiLCAifS5iaW5kIiwgImZ1bmN0aW9uKCkgeyAuLi4gfSgpIiwgb3IgIn0s
IGZhbHNlKSIuCi0gICAgICAgICAgICAgICAgcmV0dXJuIGxhc3RDb250ZW50ID09PSAifSI7Ci0g
ICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoaXNDb21t
ZW50KSB7IC8vIENvbW1lbnQgYWZ0ZXIgc2VtaWNvbG9uLgotICAgICAgICAgICAgaWYgKCFmaXJz
dFRva2VuT25MaW5lICYmIGxhc3RDb250ZW50ID09PSAiOyIpCi0gICAgICAgICAgICAgICAgcmV0
dXJuIHRydWU7Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0KLQotICAgICAg
ICBpZiAoL1xia2V5d29yZFxiLy50ZXN0KHRva2VuKSkgewotICAgICAgICAgICAgaWYgKGNvbnRl
bnQgPT09ICJlbHNlIiB8fCBjb250ZW50ID09PSAiY2F0Y2giIHx8IGNvbnRlbnQgPT09ICJmaW5h
bGx5IikgLy8gIn0gZWxzZSIsICJ9IGNhdGNoIiwgIn0gZmluYWxseSIKLSAgICAgICAgICAgICAg
ICByZXR1cm4gbGFzdENvbnRlbnQgPT09ICJ9IjsKLSAgICAgICAgICAgIGlmIChjb250ZW50ID09
PSAid2hpbGUiICYmIGxhc3RDb250ZW50ID09PSAifSIpCi0gICAgICAgICAgICAgICAgcmV0dXJu
IHN0YXRlLl9qc1ByZXR0eVByaW50Lmxhc3RDb250ZW50QmVmb3JlQmxvY2sgPT09ICJkbyI7Ci0g
ICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gZmFs
c2U7Ci0gICAgfSwKLQotICAgIGluZGVudEFmdGVyVG9rZW46IGZ1bmN0aW9uKGxhc3RUb2tlbiwg
bGFzdENvbnRlbnQsIHRva2VuLCBzdGF0ZSwgY29udGVudCwgaXNDb21tZW50KQotICAgIHsKLSAg
ICAgICAgaWYgKGNvbnRlbnQgPT09ICJ7IikKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotCi0g
ICAgICAgIGlmIChjb250ZW50ID09PSAiY2FzZSIgfHwgY29udGVudCA9PT0gImRlZmF1bHQiKQot
ICAgICAgICAgICAgcmV0dXJuIHN0YXRlLmxleGljYWwudHlwZSA9PT0gIn0iICYmIHN0YXRlLmxl
eGljYWwucHJldiAmJiBzdGF0ZS5sZXhpY2FsLnByZXYudHlwZSA9PT0gImZvcm0iOyAvLyBTd2l0
Y2ggY2FzZS9kZWZhdWx0LgotCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9LAotCi0gICAg
bmV3bGluZUJlZm9yZVRva2VuOiBmdW5jdGlvbihsYXN0VG9rZW4sIGxhc3RDb250ZW50LCB0b2tl
biwgc3RhdGUsIGNvbnRlbnQsIGlzQ29tbWVudCkKLSAgICB7Ci0gICAgICAgIGlmIChzdGF0ZS5f
anNQcmV0dHlQcmludC5zaG91bGRJbmRlbnQpCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLQot
ICAgICAgICByZXR1cm4gY29udGVudCA9PT0gIn0iICYmIGxhc3RDb250ZW50ICE9PSAieyI7IC8v
ICJ7fSIKLSAgICB9LAotCi0gICAgaW5kZW50QmVmb3JlVG9rZW46IGZ1bmN0aW9uKGxhc3RUb2tl
biwgbGFzdENvbnRlbnQsIHRva2VuLCBzdGF0ZSwgY29udGVudCwgaXNDb21tZW50KQotICAgIHsK
LSAgICAgICAgaWYgKHN0YXRlLl9qc1ByZXR0eVByaW50LnNob3VsZEluZGVudCkKLSAgICAgICAg
ICAgIHJldHVybiB0cnVlOwotCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9LAotCi0gICAg
ZGVkZW50c0JlZm9yZVRva2VuOiBmdW5jdGlvbihsYXN0VG9rZW4sIGxhc3RDb250ZW50LCB0b2tl
biwgc3RhdGUsIGNvbnRlbnQsIGlzQ29tbWVudCkKLSAgICB7Ci0gICAgICAgIHZhciBkZWRlbnQg
PSAwOwotCi0gICAgICAgIGlmIChzdGF0ZS5fanNQcmV0dHlQcmludC5zaG91bGREZWRlbnQpCi0g
ICAgICAgICAgICBkZWRlbnQgKz0gc3RhdGUuX2pzUHJldHR5UHJpbnQuZGVkZW50U2l6ZTsKLQot
ICAgICAgICBpZiAoIXRva2VuICYmIGNvbnRlbnQgPT09ICJ9IikKLSAgICAgICAgICAgIGRlZGVu
dCArPSAxOwotICAgICAgICBlbHNlIGlmICh0b2tlbiAmJiAvXGJrZXl3b3JkXGIvLnRlc3QodG9r
ZW4pICYmIChjb250ZW50ID09PSAiY2FzZSIgfHwgY29udGVudCA9PT0gImRlZmF1bHQiKSkKLSAg
ICAgICAgICAgIGRlZGVudCArPSAxOwotCi0gICAgICAgIHJldHVybiBkZWRlbnQ7Ci0gICAgfSwK
LQotICAgIG1vZGlmeVN0YXRlRm9yVG9rZW5QcmU6IGZ1bmN0aW9uKGxhc3RUb2tlbiwgbGFzdENv
bnRlbnQsIHRva2VuLCBzdGF0ZSwgY29udGVudCwgaXNDb21tZW50KQotICAgIHsKLSAgICAgICAg
aWYgKCFzdGF0ZS5fanNQcmV0dHlQcmludCkgewotICAgICAgICAgICAgc3RhdGUuX2pzUHJldHR5
UHJpbnQgPSB7Ci0gICAgICAgICAgICAgICAgaW5kZW50Q291bnQ6IDAsICAgICAgIC8vIEhvdyBm
YXIgaGF2ZSB3ZSBpbmRlbnRlZCBiZWNhdXNlIG9mIHNpbmdsZSBzdGF0ZW1lbnQgYmxvY2tzLgot
ICAgICAgICAgICAgICAgIHNob3VsZEluZGVudDogZmFsc2UsICAvLyBTaWduYWwgd2Ugc2hvdWxk
IGluZGVudCBvbiBlbnRlcmluZyBhIHNpbmdsZSBzdGF0ZW1lbnQgYmxvY2suCi0gICAgICAgICAg
ICAgICAgc2hvdWxkRGVkZW50OiBmYWxzZSwgIC8vIFNpZ25hbCB3ZSBzaG91bGQgZGVkZW50IG9u
IGxlYXZpbmcgYSBzaW5nbGUgc3RhdGVtZW50IGJsb2NrLgotICAgICAgICAgICAgICAgIGRlZGVu
dFNpemU6IDAsICAgICAgICAvLyBIb3cgZmFyIHdlIHNob3VsZCBkZWRlbnQgd2hlbiBsZWF2aW5n
IGEgc2luZ2xlIHN0YXRlbWVudCBibG9jay4KLSAgICAgICAgICAgICAgICBsYXN0SWZJbmRlbnRD
b3VudDogMCwgLy8gS2VlcCB0cmFjayBvZiB0aGUgaW5kZW50IHRoZSBsYXN0IHRpbWUgd2Ugc2F3
IGFuIGlmIHdpdGhvdXQgYnJhY2VzLgotICAgICAgICAgICAgICAgIG9wZW5CcmFjZVN0YXJ0TWFy
a2VyczogW10sICAvLyBLZWVwIHRyYWNrIG9mIG5vbi1zaW5nbGUgc3RhdGVtZW50IGJsb2Nrcy4K
LSAgICAgICAgICAgICAgICBvcGVuQnJhY2VUcmFja2luZ0NvdW50OiAtMSwgLy8gS2VlcCB0cmFj
ayBvZiAieyIgYW5kICJ9IiBpbiBub24tc2luZ2xlIHN0YXRlbWVudCBibG9ja3MuCi0gICAgICAg
ICAgICAgICAgdW5hcnlPcGVyYXRvckhhZExlYWRpbmdFeHByOiBmYWxzZSwgLy8gVHJ5IHRvIGRl
dGVjdCBpZiBhIHVuYXJ5IG9wZXJhdG9yIGhhZCBhIGxlYWRpbmcgZXhwcmVzc2lvbiBhbmQgdGhl
cmVmb3JlIG1heSBiZSBiaW5hcnkuCi0gICAgICAgICAgICAgICAgbGFzdENvbnRlbnRCZWZvcmVC
bG9jazogdW5kZWZpbmVkLCAvLyBVc2VkIHRvIGRldGVjdCBpZiB0aGlzIHdhcyBhIGRvL3doaWxl
LgotICAgICAgICAgICAgfTsKLSAgICAgICAgfQotCi0gICAgICAgIC8vIC0gRW50ZXJpbmc6Ci0g
ICAgICAgIC8vICAgLSBQcmVjb25kaXRpb25zOgotICAgICAgICAvLyAgICAgLSBsYXN0IGxleGlj
YWwgd2FzIGEgImZvcm0iIHdlIGhhdmVuJ3QgZW5jb3VudGVyZWQgYmVmb3JlCi0gICAgICAgIC8v
ICAgICAtIGxhc3QgY29udGVudCB3YXMgIikiLCAiZWxzZSIsIG9yICJkbyIKLSAgICAgICAgLy8g
ICAgIC0gY3VycmVudCBsZXhpY2FsIGlzIG5vdCAiKSIgKGluIGFuIGV4cHJlc3Npb24gb3IgY29u
ZGl0aW9uKQotICAgICAgICAvLyAgIC0gQ2FzZXM6Ci0gICAgICAgIC8vICAgICAxLiAieyIKLSAg
ICAgICAgLy8gICAgICAgLSBpbmRlbnQgKzAKLSAgICAgICAgLy8gICAgICAgLSBzYXZlIHRoaXMg
aW5kZW50IHNpemUgc28gd2hlbiB3ZSBlbmNvdW50ZXIgdGhlICJ9IiB3ZSBrbm93IGhvdyBmYXIg
dG8gZGVkZW50Ci0gICAgICAgIC8vICAgICAyLiAiZWxzZSBpZiIKLSAgICAgICAgLy8gICAgICAg
LSBpbmRlbnQgKzAgYW5kIGRvIG5vdCBzaWduYWwgdG8gYWRkIGEgbmV3bGluZSBhbmQgaW5kZW50
Ci0gICAgICAgIC8vICAgICAgIC0gbWFyayB0aGUgbGFzdCBpZiBsb2NhdGlvbiBzbyB3aGVuIHdl
IGVuY291bnRlciBhbiAiZWxzZSIgd2Uga25vdyBob3cgZmFyIHRvIGRlZGVudAotICAgICAgICAv
LyAgICAgICAtIG1hcmsgdGhlIGxleGljYWwgc3RhdGUgc28gd2Uga25vdyB3ZSBhcmUgaW5zaWRl
IGEgc2luZ2xlIHN0YXRlbWVudCBibG9jawotICAgICAgICAvLyAgICAgMy4gVG9rZW4gd2l0aG91
dCBicmFjZS4KLSAgICAgICAgLy8gICAgICAgLSBpbmRlbnQgKzEgYW5kIHNpZ25hbCB0byBhZGQg
YSBuZXdsaW5lIGFuZCBpbmRlbnQKLSAgICAgICAgLy8gICAgICAgLSBtYXJrIHRoZSBsYXN0IGlm
IGxvY2F0aW9uIHNvIHdoZW4gd2UgZW5jb3VudGVyIGFuICJlbHNlIiB3ZSBrbm93IGhvdyBmYXIg
dG8gZGVkZW50Ci0gICAgICAgIC8vICAgICAgIC0gbWFyayB0aGUgbGV4aWNhbCBzdGF0ZSBzbyB3
ZSBrbm93IHdlIGFyZSBpbnNpZGUgYSBzaW5nbGUgc3RhdGVtZW50IGJsb2NrCi0gICAgICAgIGlm
ICghaXNDb21tZW50ICYmIHN0YXRlLmxleGljYWwucHJldiAmJiBzdGF0ZS5sZXhpY2FsLnByZXYu
dHlwZSA9PT0gImZvcm0iICYmICFzdGF0ZS5sZXhpY2FsLnByZXYuX2pzUHJldHR5UHJpbnRNYXJr
ZXIgJiYgKGxhc3RDb250ZW50ID09PSAiKSIgfHwgbGFzdENvbnRlbnQgPT09ICJlbHNlIiB8fCBs
YXN0Q29udGVudCA9PT0gImRvIikgJiYgKHN0YXRlLmxleGljYWwudHlwZSAhPT0gIikiKSkgewot
ICAgICAgICAgICAgaWYgKGNvbnRlbnQgPT09ICJ7IikgewotICAgICAgICAgICAgICAgIC8vIFNh
dmUgdGhlIHN0YXRlIGF0IHRoZSBvcGVuaW5nIGJyYWNlIHNvIHdlIGNhbiByZXR1cm4gdG8gaXQg
d2hlbiB3ZSBzZWUgIn0iLgotICAgICAgICAgICAgICAgIHZhciBzYXZlZFN0YXRlID0ge2luZGVu
dENvdW50OiBzdGF0ZS5fanNQcmV0dHlQcmludC5pbmRlbnRDb3VudCwgb3BlbkJyYWNlVHJhY2tp
bmdDb3VudDogc3RhdGUuX2pzUHJldHR5UHJpbnQub3BlbkJyYWNlVHJhY2tpbmdDb3VudCwgbGFz
dENvbnRlbnRCZWZvcmVCbG9jazogbGFzdENvbnRlbnR9OwotICAgICAgICAgICAgICAgIHN0YXRl
Ll9qc1ByZXR0eVByaW50Lm9wZW5CcmFjZVN0YXJ0TWFya2Vycy5wdXNoKHNhdmVkU3RhdGUpOwot
ICAgICAgICAgICAgICAgIHN0YXRlLl9qc1ByZXR0eVByaW50Lm9wZW5CcmFjZVRyYWNraW5nQ291
bnQgPSAxOwotICAgICAgICAgICAgfSBlbHNlIGlmIChzdGF0ZS5sZXhpY2FsLnR5cGUgIT09ICJ9
IikgewotICAgICAgICAgICAgICAgIC8vIEluY3JlYXNlIHRoZSBpbmRlbnQgY291bnQuIFNpZ25h
bCBmb3IgYSBuZXdsaW5lIGFuZCBpbmRlbnQgaWYgbmVlZGVkLgotICAgICAgICAgICAgICAgIGlm
ICghKGxhc3RDb250ZW50ID09PSAiZWxzZSIgJiYgY29udGVudCA9PT0gImlmIikpIHsKLSAgICAg
ICAgICAgICAgICAgICAgc3RhdGUuX2pzUHJldHR5UHJpbnQuaW5kZW50Q291bnQrKzsKLSAgICAg
ICAgICAgICAgICAgICAgc3RhdGUuX2pzUHJldHR5UHJpbnQuc2hvdWxkSW5kZW50ID0gdHJ1ZTsK
LSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgc3RhdGUubGV4aWNhbC5wcmV2Ll9q
c1ByZXR0eVByaW50TWFya2VyID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICBpZiAoc3RhdGUuX2pz
UHJldHR5UHJpbnQuZW50ZXJpbmdJZikKLSAgICAgICAgICAgICAgICAgICAgc3RhdGUuX2pzUHJl
dHR5UHJpbnQubGFzdElmSW5kZW50Q291bnQgPSBzdGF0ZS5fanNQcmV0dHlQcmludC5pbmRlbnRD
b3VudCAtIDE7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICAvLyAtIExlYXZp
bmc6Ci0gICAgICAgIC8vICAgLSBQcmVjb25kaXRpb25zOgotICAgICAgICAvLyAgICAgLSBpZ25v
cmUgIjsiLCB3YWl0IGZvciB0aGUgbmV4dCB0b2tlbiBpbnN0ZWFkLgotICAgICAgICAvLyAgIC0g
Q2FzZXM6Ci0gICAgICAgIC8vICAgICAxLiAiZWxzZSIKLSAgICAgICAgLy8gICAgICAgLSBkZWRl
bnQgdG8gdGhlIGxhc3QgImlmIgotICAgICAgICAvLyAgICAgMi4gIn0iIGFuZCBhbGwgYnJhY2Vz
IHdlIHNhdyBhcmUgYmFsYW5jZWQKLSAgICAgICAgLy8gICAgICAgLSBkZWRlbnQgdG8gdGhlIGxh
c3QgInsiCi0gICAgICAgIC8vICAgICAzLiBUb2tlbiB3aXRob3V0IGEgbWFya2VyIG9uIHRoZSBz
dGFjawotICAgICAgICAvLyAgICAgICAtIGRlZGVudCBhbGwgdGhlIHdheQotICAgICAgICBlbHNl
IHsKLSAgICAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KCFzdGF0ZS5fanNQcmV0dHlQcmludC5zaG91
bGREZWRlbnQpOwotICAgICAgICAgICAgY29uc29sZS5hc3NlcnQoIXN0YXRlLl9qc1ByZXR0eVBy
aW50LmRlZGVudFNpemUpOwotCi0gICAgICAgICAgICAvLyBUcmFjayAieyIgYW5kICJ9IiB0byBr
bm93IHdoZW4gdGhlICJ9IiBpcyByZWFsbHkgY2xvc2luZyBhIGJsb2NrLgotICAgICAgICAgICAg
aWYgKCFpc0NvbW1lbnQpIHsKLSAgICAgICAgICAgICAgICBpZiAoY29udGVudCA9PT0gInsiKQot
ICAgICAgICAgICAgICAgICAgICBzdGF0ZS5fanNQcmV0dHlQcmludC5vcGVuQnJhY2VUcmFja2lu
Z0NvdW50Kys7Ci0gICAgICAgICAgICAgICAgZWxzZSBpZiAoY29udGVudCA9PT0gIn0iKQotICAg
ICAgICAgICAgICAgICAgICBzdGF0ZS5fanNQcmV0dHlQcmludC5vcGVuQnJhY2VUcmFja2luZ0Nv
dW50LS07Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGlmIChjb250ZW50ID09PSAiOyIp
IHsKLSAgICAgICAgICAgICAgICAvLyBJZ25vcmUuCi0gICAgICAgICAgICB9IGVsc2UgaWYgKGNv
bnRlbnQgPT09ICJlbHNlIikgewotICAgICAgICAgICAgICAgIC8vIERlZGVudCB0byB0aGUgbGFz
dCAiaWYiLgotICAgICAgICAgICAgICAgIGlmIChsYXN0Q29udGVudCAhPT0gIn0iKSB7Ci0gICAg
ICAgICAgICAgICAgICAgIHN0YXRlLl9qc1ByZXR0eVByaW50LnNob3VsZERlZGVudCA9IHRydWU7
Ci0gICAgICAgICAgICAgICAgICAgIHN0YXRlLl9qc1ByZXR0eVByaW50LmRlZGVudFNpemUgPSBz
dGF0ZS5fanNQcmV0dHlQcmludC5pbmRlbnRDb3VudCAtIHN0YXRlLl9qc1ByZXR0eVByaW50Lmxh
c3RJZkluZGVudENvdW50OwotICAgICAgICAgICAgICAgICAgICBzdGF0ZS5fanNQcmV0dHlQcmlu
dC5sYXN0SWZJbmRlbnRDb3VudCA9IDA7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
fSBlbHNlIGlmIChjb250ZW50ID09PSAifSIgJiYgIXN0YXRlLl9qc1ByZXR0eVByaW50Lm9wZW5C
cmFjZVRyYWNraW5nQ291bnQgJiYgc3RhdGUuX2pzUHJldHR5UHJpbnQub3BlbkJyYWNlU3RhcnRN
YXJrZXJzLmxlbmd0aCkgewotICAgICAgICAgICAgICAgIC8vIERlZGVudCB0byB0aGUgbGFzdCAi
eyIuCi0gICAgICAgICAgICAgICAgdmFyIHNhdmVkU3RhdGUgPSBzdGF0ZS5fanNQcmV0dHlQcmlu
dC5vcGVuQnJhY2VTdGFydE1hcmtlcnMucG9wKCk7Ci0gICAgICAgICAgICAgICAgc3RhdGUuX2pz
UHJldHR5UHJpbnQuc2hvdWxkRGVkZW50ID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICBzdGF0ZS5f
anNQcmV0dHlQcmludC5kZWRlbnRTaXplID0gc3RhdGUuX2pzUHJldHR5UHJpbnQuaW5kZW50Q291
bnQgLSBzYXZlZFN0YXRlLmluZGVudENvdW50OwotICAgICAgICAgICAgICAgIHN0YXRlLl9qc1By
ZXR0eVByaW50Lm9wZW5CcmFjZVRyYWNraW5nQ291bnQgPSBzYXZlZFN0YXRlLm9wZW5CcmFjZVRy
YWNraW5nQ291bnQ7Ci0gICAgICAgICAgICAgICAgc3RhdGUuX2pzUHJldHR5UHJpbnQubGFzdENv
bnRlbnRCZWZvcmVCbG9jayA9IHNhdmVkU3RhdGUubGFzdENvbnRlbnRCZWZvcmVCbG9jazsKLSAg
ICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgLy8gRGVkZW50IGFsbCB0aGUgd2F5
LgotICAgICAgICAgICAgICAgIHZhciBzaG91bGREZWRlbnQgPSB0cnVlOwotICAgICAgICAgICAg
ICAgIHZhciBsZXhpY2FsID0gc3RhdGUubGV4aWNhbC5wcmV2OwotICAgICAgICAgICAgICAgIHdo
aWxlIChsZXhpY2FsKSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChsZXhpY2FsLl9qc1ByZXR0
eVByaW50TWFya2VyKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzaG91bGREZWRlbnQgPSBm
YWxzZTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICAgICAgICAgIGxleGljYWwgPSBsZXhpY2FsLnByZXY7Ci0gICAgICAg
ICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlmIChzaG91bGREZWRlbnQpIHsKLSAgICAgICAg
ICAgICAgICAgICAgc3RhdGUuX2pzUHJldHR5UHJpbnQuc2hvdWxkRGVkZW50ID0gdHJ1ZTsKLSAg
ICAgICAgICAgICAgICAgICAgc3RhdGUuX2pzUHJldHR5UHJpbnQuZGVkZW50U2l6ZSA9IHN0YXRl
Ll9qc1ByZXR0eVByaW50LmluZGVudENvdW50OwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIC8vIFNpZ25hbCBmb3Igd2hlbiB3ZSB3aWxsIGJl
IGVudGVyaW5nIGFuIGlmLgotICAgICAgICBpZiAodG9rZW4gJiYgc3RhdGUubGV4aWNhbC50eXBl
ID09PSAiZm9ybSIgJiYgc3RhdGUubGV4aWNhbC5wcmV2ICYmIHN0YXRlLmxleGljYWwucHJldiAh
PT0gImZvcm0iICYmIC9cYmtleXdvcmRcYi8udGVzdCh0b2tlbikpCi0gICAgICAgICAgICBzdGF0
ZS5fanNQcmV0dHlQcmludC5lbnRlcmluZ0lmID0gY29udGVudCA9PT0gImlmIjsKLSAgICB9LAot
Ci0gICAgbW9kaWZ5U3RhdGVGb3JUb2tlblBvc3Q6IGZ1bmN0aW9uKGxhc3RUb2tlbiwgbGFzdENv
bnRlbnQsIHRva2VuLCBzdGF0ZSwgY29udGVudCwgaXNDb21tZW50KQotICAgIHsKLSAgICAgICAg
aWYgKHN0YXRlLl9qc1ByZXR0eVByaW50LnNob3VsZEluZGVudCkKLSAgICAgICAgICAgIHN0YXRl
Ll9qc1ByZXR0eVByaW50LnNob3VsZEluZGVudCA9IGZhbHNlOwotCi0gICAgICAgIGlmIChzdGF0
ZS5fanNQcmV0dHlQcmludC5zaG91bGREZWRlbnQpIHsKLSAgICAgICAgICAgIHN0YXRlLl9qc1By
ZXR0eVByaW50LmluZGVudENvdW50IC09IHN0YXRlLl9qc1ByZXR0eVByaW50LmRlZGVudFNpemU7
Ci0gICAgICAgICAgICBzdGF0ZS5fanNQcmV0dHlQcmludC5kZWRlbnRTaXplID0gMDsKLSAgICAg
ICAgICAgIHN0YXRlLl9qc1ByZXR0eVByaW50LnNob3VsZERlZGVudCA9IGZhbHNlOwotICAgICAg
ICB9Ci0KLSAgICAgICAgaWYgKChjb250ZW50ID09PSAiKyIgfHwgY29udGVudCA9PT0gIi0iIHx8
IGNvbnRlbnQgPT09ICJ+IikgJiYgKGxhc3RDb250ZW50ID09PSAiKSIgfHwgbGFzdENvbnRlbnQg
PT09ICJdIiB8fCAvXGIoPzp2YXJpYWJsZXxudW1iZXIpXGIvLnRlc3QobGFzdFRva2VuKSkpCi0g
ICAgICAgICAgICBzdGF0ZS5fanNQcmV0dHlQcmludC51bmFyeU9wZXJhdG9ySGFkTGVhZGluZ0V4
cHIgPSB0cnVlOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBzdGF0ZS5fanNQcmV0dHlQcmlu
dC51bmFyeU9wZXJhdG9ySGFkTGVhZGluZ0V4cHIgPSBmYWxzZTsKLSAgICB9Ci19KTsKLQotQ29k
ZU1pcnJvci5leHRlbmRNb2RlKCJjc3MiLCB7Ci0gICAgc2hvdWxkSGF2ZVNwYWNlQmVmb3JlVG9r
ZW46IGZ1bmN0aW9uKGxhc3RUb2tlbiwgbGFzdENvbnRlbnQsIHRva2VuLCBzdGF0ZSwgY29udGVu
dCwgaXNDb21tZW50KQotICAgIHsKLSAgICAgICAgaWYgKCF0b2tlbikgewotICAgICAgICAgICAg
aWYgKGNvbnRlbnQgPT09ICJ7IikKLSAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAg
ICAgICAgIHJldHVybiAiPit+LSovIi5pbmRleE9mKGNvbnRlbnQpID49IDA7IC8vIGNhbGMoKSBl
eHByZXNzaW9uIG9yIGNoaWxkL3NpYmxpbmcgc2VsZWN0b3JzCi0gICAgICAgIH0KLQotICAgICAg
ICBpZiAoaXNDb21tZW50KQotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICAgICAgaWYg
KC9cYmtleXdvcmRcYi8udGVzdCh0b2tlbikpIHsKLSAgICAgICAgICAgIGlmIChjb250ZW50LmNo
YXJBdCgwKSA9PT0gIiEiKSAvLyAiIWltcG9ydGFudCIuCi0gICAgICAgICAgICAgICAgcmV0dXJu
IHRydWU7Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0KLQotICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0gICAgfSwKLQotICAgIHNob3VsZEhhdmVTcGFjZUFmdGVyTGFzdFRva2Vu
OiBmdW5jdGlvbihsYXN0VG9rZW4sIGxhc3RDb250ZW50LCB0b2tlbiwgc3RhdGUsIGNvbnRlbnQs
IGlzQ29tbWVudCkKLSAgICB7Ci0gICAgICAgIGlmICghbGFzdFRva2VuKSB7Ci0gICAgICAgICAg
ICBpZiAobGFzdENvbnRlbnQgPT09ICIsIikKLSAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
LSAgICAgICAgICAgIGlmIChsYXN0Q29udGVudCA9PT0gIjoiKSAvLyBTcGFjZSBpbiAicHJvcDog
dmFsdWUiIGJ1dCBub3QgaW4gYSBzZWxlY3RvcnMgImE6bGluayIgb3IgImRpdjo6YWZ0ZXIiIG9y
IG1lZGlhIHF1ZXJpZXMgIihtYXgtZGV2aWNlLXdpZHRoOjQ4MHB4KSIuCi0gICAgICAgICAgICAg
ICAgcmV0dXJuIHN0YXRlLnN0YXRlID09PSAicHJvcCI7Ci0gICAgICAgICAgICBpZiAobGFzdENv
bnRlbnQgPT09ICIpIiAmJiAoY29udGVudCAhPT0gIikiICYmIGNvbnRlbnQgIT09ICIsIikpIHsK
LSAgICAgICAgICAgICAgICBpZiAoL1xibnVtYmVyXGIvLnRlc3QodG9rZW4pKSAvLyBsaW5lYXIt
Z3JhZGllbnQocmdiKC4uLikwJSxyZ2IoLi4uKTEwMCUpCi0gICAgICAgICAgICAgICAgICAgIHJl
dHVybiB0cnVlOwotICAgICAgICAgICAgICAgIGlmIChzdGF0ZS5zdGF0ZSA9PT0gInByb3AiKSAv
LyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoLi4uKXRyYW5zbGF0ZSguLi4pOwotICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgICAgICAgICBpZiAoc3RhdGUuc3RhdGUg
PT09ICJtZWRpYSIgfHwgc3RhdGUuc3RhdGUgPT09ICJhdEJsb2NrX3BhcmVucyIpIC8vIFNwYWNl
IGluICJub3QoZm9vKWFuZCIgYnV0IG5vdCBhdCB0aGUgZW5kIG9mICJub3Qobm90KGZvbykpIgot
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7IC8vIGNvbG9yOiByZ2IoLi4uKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHJl
dHVybiAiPit+LSovIi5pbmRleE9mKGxhc3RDb250ZW50KSA+PSAwOyAvLyBjYWxjKCkgZXhwcmVz
c2lvbiBvciBjaGlsZC9zaWJsaW5nIHNlbGVjdG9ycwotICAgICAgICB9Ci0KLSAgICAgICAgaWYg
KC9cYmNvbW1lbnRcYi8udGVzdChsYXN0VG9rZW4pKQotICAgICAgICAgICAgcmV0dXJuIHRydWU7
Ci0KLSAgICAgICAgaWYgKC9cYmtleXdvcmRcYi8udGVzdChsYXN0VG9rZW4pKSAvLyBtZWRpYS1x
dWVyeSBrZXl3b3JkcwotICAgICAgICAgICAgcmV0dXJuIHN0YXRlLnN0YXRlID09PSAibWVkaWEi
IHx8IChzdGF0ZS5zdGF0ZSA9PT0gImF0QmxvY2tfcGFyZW5zIiAmJiBjb250ZW50ICE9PSAiKSIp
OwotCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9LAotCi0gICAgbmV3bGluZXNBZnRlclRv
a2VuOiBmdW5jdGlvbihsYXN0VG9rZW4sIGxhc3RDb250ZW50LCB0b2tlbiwgc3RhdGUsIGNvbnRl
bnQsIGlzQ29tbWVudCkKLSAgICB7Ci0gICAgICAgIGlmICghdG9rZW4pIHsKLSAgICAgICAgICAg
IGlmIChjb250ZW50ID09PSAiOyIpCi0gICAgICAgICAgICAgICAgcmV0dXJuIDE7Ci0gICAgICAg
ICAgICBpZiAoY29udGVudCA9PT0gIiwiKSB7IC8vICJhLGIsYywuLi4sent9IiBydWxlIGxpc3Qg
YXQgdG9wIGxldmVsIG9yIGluIEBtZWRpYSB0b3AgbGV2ZWwgYW5kIG9ubHkgaWYgdGhlIGxpbmUg
bGVuZ3RoIHdpbGwgYmUgbGFyZ2UuCi0gICAgICAgICAgICAgICAgaWYgKChzdGF0ZS5zdGF0ZSA9
PT0gInRvcCIgfHwgc3RhdGUuc3RhdGUgPT09ICJtZWRpYSIpICYmIHN0YXRlLl9jc3NQcmV0dHlQ
cmludC5saW5lTGVuZ3RoID4gNjApIHsKLSAgICAgICAgICAgICAgICAgICAgc3RhdGUuX2Nzc1By
ZXR0eVByaW50LmxpbmVMZW5ndGggPSAwOwotICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTsK
LSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgICAgICBpZiAoY29udGVudCA9PT0gInsiKQotICAgICAgICAgICAgICAgIHJl
dHVybiAxOwotICAgICAgICAgICAgaWYgKGNvbnRlbnQgPT09ICJ9IikgLy8gMiBuZXdsaW5lcyBi
ZXR3ZWVuIHJ1bGUgZGVjbGFyYXRpb25zLgotICAgICAgICAgICAgICAgIHJldHVybiAyOwotICAg
ICAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoaXNDb21tZW50KQot
ICAgICAgICAgICAgcmV0dXJuIDE7Ci0KLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfSwKLQotICAg
IHJlbW92ZUxhc3RXaGl0ZXNwYWNlOiBmdW5jdGlvbihsYXN0VG9rZW4sIGxhc3RDb250ZW50LCB0
b2tlbiwgc3RhdGUsIGNvbnRlbnQsIGlzQ29tbWVudCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBm
YWxzZTsKLSAgICB9LAotCi0gICAgcmVtb3ZlTGFzdE5ld2xpbmU6IGZ1bmN0aW9uKGxhc3RUb2tl
biwgbGFzdENvbnRlbnQsIHRva2VuLCBzdGF0ZSwgY29udGVudCwgaXNDb21tZW50LCBmaXJzdFRv
a2VuT25MaW5lKQotICAgIHsKLSAgICAgICAgaWYgKGlzQ29tbWVudCkgeyAvLyBDb21tZW50IGFm
dGVyIHNlbWljb2xvbi4KLSAgICAgICAgICAgIGlmICghZmlyc3RUb2tlbk9uTGluZSAmJiBsYXN0
Q29udGVudCA9PT0gIjsiKQotICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB9Ci0KLSAgICAgICAgcmV0dXJuIGNvbnRlbnQgPT09
ICJ9IiAmJiAobGFzdENvbnRlbnQgPT09ICJ7IiB8fCBsYXN0Q29udGVudCA9PT0gIn0iKTsgLy8g
Int9IiBhbmQgIn1cbn0iIHdoZW4gY2xvc2luZyBAbWVkaWEuCi0gICAgfSwKLQotICAgIGluZGVu
dEFmdGVyVG9rZW46IGZ1bmN0aW9uKGxhc3RUb2tlbiwgbGFzdENvbnRlbnQsIHRva2VuLCBzdGF0
ZSwgY29udGVudCwgaXNDb21tZW50KQotICAgIHsKLSAgICAgICAgcmV0dXJuIGNvbnRlbnQgPT09
ICJ7IjsKLSAgICB9LAotCi0gICAgbmV3bGluZUJlZm9yZVRva2VuOiBmdW5jdGlvbihsYXN0VG9r
ZW4sIGxhc3RDb250ZW50LCB0b2tlbiwgc3RhdGUsIGNvbnRlbnQsIGlzQ29tbWVudCkKLSAgICB7
Ci0gICAgICAgIHJldHVybiBjb250ZW50ID09PSAifSIgJiYgKGxhc3RDb250ZW50ICE9PSAieyIg
JiYgbGFzdENvbnRlbnQgIT09ICJ9Iik7IC8vICJ7fSIgYW5kICJ9XG59IiB3aGVuIGNsb3Npbmcg
QG1lZGlhLgotICAgIH0sCi0KLSAgICBpbmRlbnRCZWZvcmVUb2tlbjogZnVuY3Rpb24obGFzdFRv
a2VuLCBsYXN0Q29udGVudCwgdG9rZW4sIHN0YXRlLCBjb250ZW50LCBpc0NvbW1lbnQpCi0gICAg
ewotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfSwKLQotICAgIGRlZGVudHNCZWZvcmVUb2tl
bjogZnVuY3Rpb24obGFzdFRva2VuLCBsYXN0Q29udGVudCwgdG9rZW4sIHN0YXRlLCBjb250ZW50
LCBpc0NvbW1lbnQpCi0gICAgewotICAgICAgICByZXR1cm4gY29udGVudCA9PT0gIn0iID8gMSA6
IDA7Ci0gICAgfSwKLQotICAgIG1vZGlmeVN0YXRlRm9yVG9rZW5Qb3N0OiBmdW5jdGlvbihsYXN0
VG9rZW4sIGxhc3RDb250ZW50LCB0b2tlbiwgc3RhdGUsIGNvbnRlbnQsIGlzQ29tbWVudCkKLSAg
ICB7Ci0gICAgICAgIGlmICghc3RhdGUuX2Nzc1ByZXR0eVByaW50KQotICAgICAgICAgICAgc3Rh
dGUuX2Nzc1ByZXR0eVByaW50ID0ge2xpbmVMZW5ndGg6IDB9OwotCi0gICAgICAgIC8vIEluIG9y
ZGVyIGluc2VydCBuZXdsaW5lcyBpbiBzZWxlY3RvciBsaXN0cyB3ZSBuZWVkIGtlZXAgdHJhY2sg
b2YgdGhlIGxlbmd0aCBvZiB0aGUgY3VycmVudCBsaW5lLgotICAgICAgICAvLyBUaGlzIGlzbid0
IGV4YWN0IGxpbmUgbGVuZ3RoLCBvbmx5IHRoZSBidWlsZGVyIGtub3dzIHRoYXQsIGJ1dCBpdCBp
cyBnb29kIGVub3VnaCB0byBnZXQgYW4gaWRlYS4KLSAgICAgICAgLy8gSWYgd2UgYXJlIGF0IGEg
dG9wIGxldmVsLCBrZWVwIHRyYWNrIG9mIHRoZSBjdXJyZW50IGxpbmUgbGVuZ3RoLCBvdGhlcndp
c2Ugd2UgcmVzZXQgdG8gMC4KLSAgICAgICAgaWYgKCFpc0NvbW1lbnQgJiYgKHN0YXRlLnN0YXRl
ID09PSAidG9wIiB8fCBzdGF0ZS5zdGF0ZSA9PT0gIm1lZGlhIiB8fCBzdGF0ZS5zdGF0ZSA9PT0g
InBzZXVkbyIpKQotICAgICAgICAgICAgc3RhdGUuX2Nzc1ByZXR0eVByaW50LmxpbmVMZW5ndGgg
Kz0gY29udGVudC5sZW5ndGg7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHN0YXRlLl9jc3NQ
cmV0dHlQcmludC5saW5lTGVuZ3RoID0gMDsKLSAgICB9Ci19KTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1RleHRFZGl0b3IuanMgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9UZXh0RWRpdG9yLmpzCmluZGV4
IDY0NWY5NzkxNjQxLi4zZTlkODFjY2MwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVGV4dEVkaXRvci5qcworKysgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9UZXh0RWRpdG9yLmpzCkBAIC04NTMsMTkgKzg1
MywxMSBAQCBXSS5UZXh0RWRpdG9yID0gY2xhc3MgVGV4dEVkaXRvciBleHRlbmRzIFdJLlZpZXcK
IAogICAgICAgICAgICAgaWYgKCFwcmV0dHkpCiAgICAgICAgICAgICAgICAgdGhpcy5fdW5kb0Zv
cm1hdHRpbmcoYmVmb3JlUHJldHR5UHJpbnRTdGF0ZSwgcmVzb2x2ZSk7Ci0gICAgICAgICAgICBl
bHNlIGlmICh0aGlzLl9jYW5Vc2VGb3JtYXR0ZXJXb3JrZXIoKSkKKyAgICAgICAgICAgIGVsc2UK
ICAgICAgICAgICAgICAgICB0aGlzLl9zdGFydFdvcmtlclByZXR0eVByaW50KGJlZm9yZVByZXR0
eVByaW50U3RhdGUsIHJlc29sdmUpOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAg
IHRoaXMuX3N0YXJ0Q29kZU1pcnJvclByZXR0eVByaW50KGJlZm9yZVByZXR0eVByaW50U3RhdGUs
IHJlc29sdmUpOwogICAgICAgICB9KTsKICAgICB9CiAKLSAgICBfY2FuVXNlRm9ybWF0dGVyV29y
a2VyKCkKLSAgICB7Ci0gICAgICAgIGxldCBtb2RlID0gdGhpcy5fY29kZU1pcnJvci5nZXRNb2Rl
KCkubmFtZTsKLSAgICAgICAgcmV0dXJuIG1vZGUgPT09ICJqYXZhc2NyaXB0IiB8fCBtb2RlID09
PSAiY3NzIjsKLSAgICB9Ci0KICAgICBfYXR0ZW1wdFRvRGV0ZXJtaW5lTUlNRVR5cGUoKQogICAg
IHsKICAgICAgICAgbGV0IHN0YXJ0VGltZSA9IERhdGUubm93KCk7CkBAIC05MDksMjAgKzkwMSw2
IEBAIFdJLlRleHRFZGl0b3IgPSBjbGFzcyBUZXh0RWRpdG9yIGV4dGVuZHMgV0kuVmlldwogICAg
ICAgICAgICAgd29ya2VyUHJveHkuZm9ybWF0Q1NTKHNvdXJjZVRleHQsIGluZGVudFN0cmluZywg
aW5jbHVkZVNvdXJjZU1hcERhdGEsIGZvcm1hdENhbGxiYWNrKTsKICAgICB9CiAKLSAgICBfc3Rh
cnRDb2RlTWlycm9yUHJldHR5UHJpbnQoYmVmb3JlUHJldHR5UHJpbnRTdGF0ZSwgY2FsbGJhY2sp
Ci0gICAgewotICAgICAgICBsZXQgaW5kZW50U3RyaW5nID0gV0kuaW5kZW50U3RyaW5nKCk7Ci0g
ICAgICAgIGxldCBzdGFydCA9IHtsaW5lOiAwLCBjaDogMH07Ci0gICAgICAgIGxldCBlbmQgPSB7
bGluZTogdGhpcy5fY29kZU1pcnJvci5saW5lQ291bnQoKSAtIDF9OwotICAgICAgICBsZXQgYnVp
bGRlciA9IG5ldyBGb3JtYXR0ZXJDb250ZW50QnVpbGRlcihpbmRlbnRTdHJpbmcpOwotICAgICAg
ICBsZXQgZm9ybWF0dGVyID0gbmV3IFdJLkZvcm1hdHRlcih0aGlzLl9jb2RlTWlycm9yLCBidWls
ZGVyKTsKLSAgICAgICAgZm9ybWF0dGVyLmZvcm1hdChzdGFydCwgZW5kKTsKLQotICAgICAgICBs
ZXQgZm9ybWF0dGVkVGV4dCA9IGJ1aWxkZXIuZm9ybWF0dGVkQ29udGVudDsKLSAgICAgICAgbGV0
IHNvdXJjZU1hcERhdGEgPSBidWlsZGVyLnNvdXJjZU1hcERhdGE7Ci0gICAgICAgIHRoaXMuX2Zp
bmlzaFByZXR0eVByaW50KGJlZm9yZVByZXR0eVByaW50U3RhdGUsIGZvcm1hdHRlZFRleHQsIHNv
dXJjZU1hcERhdGEsIGNhbGxiYWNrKTsKLSAgICB9Ci0KICAgICBfZmluaXNoUHJldHR5UHJpbnQo
YmVmb3JlUHJldHR5UHJpbnRTdGF0ZSwgZm9ybWF0dGVkVGV4dCwgc291cmNlTWFwRGF0YSwgY2Fs
bGJhY2spCiAgICAgewogICAgICAgICB0aGlzLl9jb2RlTWlycm9yLm9wZXJhdGlvbigoKSA9PiB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvV2ViSW5zcGVjdG9yVUkudmN4cHJv
ai9XZWJJbnNwZWN0b3JVSS52Y3hwcm9qIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1dlYkluc3Bl
Y3RvclVJLnZjeHByb2ovV2ViSW5zcGVjdG9yVUkudmN4cHJvagppbmRleCAxM2ViY2JjMzg4OS4u
MGQyMzBmOWI1NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9XZWJJbnNwZWN0
b3JVSS52Y3hwcm9qL1dlYkluc3BlY3RvclVJLnZjeHByb2oKKysrIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1dlYkluc3BlY3RvclVJLnZjeHByb2ovV2ViSW5zcGVjdG9yVUkudmN4cHJvagpAQCAt
MzA2LDcgKzMwNiw2IEBACiAgICAgPE5vbmUgSW5jbHVkZT0iLi5cVXNlckludGVyZmFjZVxDb2Rl
TWlycm9yQ29tcGxldGlvbkNvbnRyb2xsZXIuanMiIC8+CiAgICAgPE5vbmUgSW5jbHVkZT0iLi5c
VXNlckludGVyZmFjZVxDb2RlTWlycm9yRHJhZ1RvQWx0ZXJOdW1iZXJDb250cm9sbGVyLmNzcyIg
Lz4KICAgICA8Tm9uZSBJbmNsdWRlPSIuLlxVc2VySW50ZXJmYWNlXENvZGVNaXJyb3JEcmFnVG9B
bHRlck51bWJlckNvbnRyb2xsZXIuanMiIC8+Ci0gICAgPE5vbmUgSW5jbHVkZT0iLi5cVXNlcklu
dGVyZmFjZVxDb2RlTWlycm9yRm9ybWF0dGVycy5qcyIgLz4KICAgICA8Tm9uZSBJbmNsdWRlPSIu
LlxVc2VySW50ZXJmYWNlXENvZGVNaXJyb3JPdmVycmlkZXMuY3NzIiAvPgogICAgIDxOb25lIElu
Y2x1ZGU9Ii4uXFVzZXJJbnRlcmZhY2VcQ29kZU1pcnJvclRva2VuVHJhY2tpbmdDb250cm9sbGVy
LmNzcyIgLz4KICAgICA8Tm9uZSBJbmNsdWRlPSIuLlxVc2VySW50ZXJmYWNlXENvZGVNaXJyb3JU
b2tlblRyYWNraW5nQ29udHJvbGxlci5qcyIgLz4KQEAgLTQ0MSw3ICs0NDAsNiBAQAogICAgIDxO
b25lIEluY2x1ZGU9Ii4uXFVzZXJJbnRlcmZhY2VcRm9sZGVyaXplZFRyZWVFbGVtZW50LmpzIiAv
PgogICAgIDxOb25lIEluY2x1ZGU9Ii4uXFVzZXJJbnRlcmZhY2VcRm9udFJlc291cmNlQ29udGVu
dFZpZXcuY3NzIiAvPgogICAgIDxOb25lIEluY2x1ZGU9Ii4uXFVzZXJJbnRlcmZhY2VcRm9udFJl
c291cmNlQ29udGVudFZpZXcuanMiIC8+Ci0gICAgPE5vbmUgSW5jbHVkZT0iLi5cVXNlckludGVy
ZmFjZVxGb3JtYXR0ZXIuanMiIC8+CiAgICAgPE5vbmUgSW5jbHVkZT0iLi5cVXNlckludGVyZmFj
ZVxGb3JtYXR0ZXJDb250ZW50QnVpbGRlci5qcyIgLz4KICAgICA8Tm9uZSBJbmNsdWRlPSIuLlxV
c2VySW50ZXJmYWNlXEZvcm1hdHRlclNvdXJjZU1hcC5qcyIgLz4KICAgICA8Tm9uZSBJbmNsdWRl
PSIuLlxVc2VySW50ZXJmYWNlXEZyYW1lLmpzIiAvPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYklu
c3BlY3RvclVJL1dlYkluc3BlY3RvclVJLnZjeHByb2ovV2ViSW5zcGVjdG9yVUkudmN4cHJvai5m
aWx0ZXJzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1dlYkluc3BlY3RvclVJLnZjeHByb2ovV2Vi
SW5zcGVjdG9yVUkudmN4cHJvai5maWx0ZXJzCmluZGV4IDhkYjFmYmViNTFhLi44ZDgzMTE0MDRh
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1dlYkluc3BlY3RvclVJLnZjeHBy
b2ovV2ViSW5zcGVjdG9yVUkudmN4cHJvai5maWx0ZXJzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9XZWJJbnNwZWN0b3JVSS52Y3hwcm9qL1dlYkluc3BlY3RvclVJLnZjeHByb2ouZmlsdGVy
cwpAQCAtMTY4LDkgKzE2OCw2IEBACiAgICAgPE5vbmUgSW5jbHVkZT0iLi5cVXNlckludGVyZmFj
ZVxDb2RlTWlycm9yRHJhZ1RvQWx0ZXJOdW1iZXJDb250cm9sbGVyLmpzIj4KICAgICAgIDxGaWx0
ZXI+VXNlckludGVyZmFjZTwvRmlsdGVyPgogICAgIDwvTm9uZT4KLSAgICA8Tm9uZSBJbmNsdWRl
PSIuLlxVc2VySW50ZXJmYWNlXENvZGVNaXJyb3JGb3JtYXR0ZXJzLmpzIj4KLSAgICAgIDxGaWx0
ZXI+VXNlckludGVyZmFjZTwvRmlsdGVyPgotICAgIDwvTm9uZT4KICAgICA8Tm9uZSBJbmNsdWRl
PSIuLlxVc2VySW50ZXJmYWNlXENvZGVNaXJyb3JPdmVycmlkZXMuY3NzIj4KICAgICAgIDxGaWx0
ZXI+VXNlckludGVyZmFjZTwvRmlsdGVyPgogICAgIDwvTm9uZT4KQEAgLTUxMCw5ICs1MDcsNiBA
QAogICAgIDxOb25lIEluY2x1ZGU9Ii4uXFVzZXJJbnRlcmZhY2VcRm9udFJlc291cmNlQ29udGVu
dFZpZXcuanMiPgogICAgICAgPEZpbHRlcj5Vc2VySW50ZXJmYWNlPC9GaWx0ZXI+CiAgICAgPC9O
b25lPgotICAgIDxOb25lIEluY2x1ZGU9Ii4uXFVzZXJJbnRlcmZhY2VcRm9ybWF0dGVyLmpzIj4K
LSAgICAgIDxGaWx0ZXI+VXNlckludGVyZmFjZTwvRmlsdGVyPgotICAgIDwvTm9uZT4KICAgICA8
Tm9uZSBJbmNsdWRlPSIuLlxVc2VySW50ZXJmYWNlXEZvcm1hdHRlckNvbnRlbnRCdWlsZGVyLmpz
Ij4KICAgICAgIDxGaWx0ZXI+VXNlckludGVyZmFjZTwvRmlsdGVyPgogICAgIDwvTm9uZT4K
</data>

          </attachment>
      

    </bug>

</bugzilla>