<?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>41222</bug_id>
          
          <creation_ts>2010-06-25 12:11:54 -0700</creation_ts>
          <short_desc>Remove old js parser</short_desc>
          <delta_ts>2010-06-25 12:17:41 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Oliver Hunt">oliver</reporter>
          <assigned_to name="Oliver Hunt">oliver</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>243118</commentid>
    <comment_count>0</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2010-06-25 12:11:54 -0700</bug_when>
    <thetext>Remove old js parser</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>243119</commentid>
    <comment_count>1</comment_count>
      <attachid>59786</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2010-06-25 12:13:53 -0700</bug_when>
    <thetext>Created attachment 59786
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>243123</commentid>
    <comment_count>2</comment_count>
      <attachid>59786</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2010-06-25 12:15:52 -0700</bug_when>
    <thetext>Comment on attachment 59786
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>243125</commentid>
    <comment_count>3</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2010-06-25 12:17:41 -0700</bug_when>
    <thetext>Committed r61878: &lt;http://trac.webkit.org/changeset/61878&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>59786</attachid>
            <date>2010-06-25 12:13:53 -0700</date>
            <delta_ts>2010-06-25 12:15:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-41222-20100625121352.patch</filename>
            <type>text/plain</type>
            <size>141973</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0FuZHJvaWQubWsgYi9KYXZhU2NyaXB0Q29yZS9B
bmRyb2lkLm1rCmluZGV4IDA3NWYzZTk1ZWYxZTRjZDVjZjgxZTJlYWQyYWY4M2ZmNTA4YTJiZjAu
LjlhYTU5N2QyZGNhZTQ0MjhjNWVmNzNmODMzZWMxMzdkYjE4ZWZhM2QgMTAwNjQ0Ci0tLSBhL0ph
dmFTY3JpcHRDb3JlL0FuZHJvaWQubWsKKysrIGIvSmF2YVNjcmlwdENvcmUvQW5kcm9pZC5tawpA
QCAtMTg3LDE0ICsxODcsNiBAQCBMT0NBTF9TUkNfRklMRVMgOj0gXAogCXlhcnIvUmVnZXhJbnRl
cnByZXRlci5jcHAgXAogCXlhcnIvUmVnZXhKSVQuY3BwCiAKLSMgUnVsZSB0byBidWlsZCBncmFt
bWFyLnkgd2l0aCBvdXIgY3VzdG9tIGJpc29uLgotR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvcGFy
c2VyL0dyYW1tYXIuY3BwCi0kKEdFTikgOiBQUklWQVRFX1lBQ0NGTEFHUyA6PSAtcCBqc2N5eQot
JChHRU4pIDogJChMT0NBTF9QQVRIKS9wYXJzZXIvR3JhbW1hci55Ci0JJChjYWxsIGxvY2FsLXRy
YW5zZm9ybS15LXRvLWNwcCwuY3BwKQotJChHRU4pIDogJChMT0NBTF9CSVNPTikKLUxPQ0FMX0dF
TkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQotCiAjIGdlbmVyYXRlZCBoZWFkZXJzCiBKU0NfT0JK
RUNUUyA6PSAkKGFkZHByZWZpeCAkKGludGVybWVkaWF0ZXMpL3J1bnRpbWUvLCBcCiAJCQkJQXJy
YXlQcm90b3R5cGUubHV0LmggXApkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0
cy50eHQgYi9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCBjMTk0NmZmODE3Nzhm
OTYzMTdiZDY0MzVhYjllZjk5YTQ0N2JjN2Y4Li5iZGIxNDY3YTUwZGYzYmJiZGJmNDJhMTdmM2I0
ZmRmYzFmMDY3NTUwIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAor
KysgYi9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMjAzLDE3ICsyMDMsNiBAQCBF
TkRGT1JFQUNIICgpCiBHRU5FUkFURV9IQVNIX0xVVCgke0pBVkFTQ1JJUFRDT1JFX0RJUn0vcGFy
c2VyL0tleXdvcmRzLnRhYmxlICR7REVSSVZFRF9TT1VSQ0VTX0RJUn0vTGV4ZXIubHV0LmggTUFJ
Tl9ERVBFTkRFTkNZKQogTElTVChBUFBFTkQgSmF2YVNjcmlwdENvcmVfSEVBREVSUyAke0RFUklW
RURfU09VUkNFU19ESVJ9L0xleGVyLmx1dC5oKQogCi0jIEdFTkVSQVRPUiAyOiBiaXNvbiBncmFt
bWFyCi1BRERfQ1VTVE9NX0NPTU1BTkQoCi0gICAgT1VUUFVUICR7REVSSVZFRF9TT1VSQ0VTX0RJ
Un0vR3JhbW1hci5jcHAgJHtERVJJVkVEX1NPVVJDRVNfRElSfS9HcmFtbWFyLmgKLSAgICBNQUlO
X0RFUEVOREVOQ1kgJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L3BhcnNlci9HcmFtbWFyLnkKLSAgICBD
T01NQU5EICR7QklTT05fRVhFQ1VUQUJMRX0gLWQgLXAganNjeXkgJHtKQVZBU0NSSVBUQ09SRV9E
SVJ9L3BhcnNlci9HcmFtbWFyLnkgLW8gJHtERVJJVkVEX1NPVVJDRVNfRElSfS9HcmFtbWFyLmNw
cCAtLWRlZmluZXM9JHtERVJJVkVEX1NPVVJDRVNfRElSfS9HcmFtbWFyLmgKLSAgICBDT01NRU5U
ICJbQklTT05dW0pTQ1lZXSBCdWlsZGluZyBwYXJzZXIgd2l0aCBiaXNvbiIKLSAgICBWRVJCQVRJ
TSkKLUxJU1QoQVBQRU5EIEphdmFTY3JpcHRDb3JlX0hFQURFUlMgJHtERVJJVkVEX1NPVVJDRVNf
RElSfS9HcmFtbWFyLmgpCi1MSVNUKEFQUEVORCBKYXZhU2NyaXB0Q29yZV9TT1VSQ0VTICR7REVS
SVZFRF9TT1VSQ0VTX0RJUn0vR3JhbW1hci5jcHApCi0KLQogIyBHRU5FUkFUT1I6ICJjaGFydGFi
bGVzLmMiOiBjb21waWxlIGFuZCBleGVjdXRlIHRoZSBjaGFydGFibGVzIGdlbmVyYXRvciAoYW5k
IGFkZCBpdCB0byBzb3VyY2VzKQogSUYgKE1TVkMpCiAgICAgU0VUKEpTQ19ERlRBQkxFU19QUkVQ
Uk9DRVNTT1IgLS1wcmVwcm9jZXNzb3I9Y2wuZXhlKQpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGZmMDE3Y2E2NjE1
ZGUyYTk4YWM0ODY5M2FmNWM0YTc2NGRjYTdjNjMuLjM2NjM5ZjM4OWUwZTRhYjE4ZDk2YWIzYTE2
ZWZlNDkwM2IzMjEyY2UgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysg
Yi9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMiBAQAorMjAxMC0wNi0yNSAg
T2xpdmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZSBvbGQganMgcGFyc2VyCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MTIyMgorCisgICAgICAgIFJl
bW92ZSB0aGUgb2xkIHlhY2MgcGFyc2VyLCB0aGlzIGFsc28gc29sdmVzIHRoZSB0aWdlciBwcm9i
bGVtLiAgV2hpY2gKKyAgICAgICAgd2FzIGEgY29uZmxpY3QgYmV0d2VlbiB5YWNjIGdlbmVyYXRl
ZCB0b2tlbiB2YWx1ZXMgYW5kIHRob3NlIGluIHRoZQorICAgICAgICBjdXN0b20gcGFyc2VyCisK
KyAgICAgICAgKiBBbmRyb2lkLm1rOgorICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAg
ICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMucHJvOgor
ICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnBybzoK
KyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlw
dENvcmUudmNwcm9qOgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogcGFyc2VyL0dyYW1tYXIueTogUmVtb3ZlZC4KKyAgICAgICAg
KiBwYXJzZXIvSlNQYXJzZXIuY3BwOgorICAgICAgICAqIHBhcnNlci9KU1BhcnNlci5oOgorICAg
ICAgICAqIHBhcnNlci9MZXhlci5jcHA6CisgICAgICAgICogcGFyc2VyL05vZGVDb25zdHJ1Y3Rv
cnMuaDoKKyAgICAgICAgKEpTQzo6Tm9kZTo6Tm9kZSk6CisgICAgICAgICogcGFyc2VyL1BhcnNl
ci5jcHA6CisgICAgICAgIChKU0M6OlBhcnNlcjo6cGFyc2UpOgorICAgICAgICAqIHd0Zi9QbGF0
Zm9ybS5oOgorCiAyMDEwLTA2LTI1ICBKZWRyemVqIE5vd2Fja2kgIDxqZWRyemVqLm5vd2Fja2lA
bm9raWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEhhdXNtYW5uLgpkaWZmIC0t
Z2l0IGEvSmF2YVNjcmlwdENvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL0phdmFTY3JpcHRDb3Jl
L0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggMzcwMjBmMTlkYmI0NTc1ZWY0NjNjODA4YjdmMTM1
NDQzYzc1NmQ2MS4uMmU4YWRiNDEwOWI0ZjhlZGJiOWI5NjhlNDhiYmZjNGNkODNkZTFiNCAxMDA2
NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9KYXZhU2Ny
aXB0Q29yZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0zOSw3ICszOSw2IEBAIGFsbCA6IFwKICAg
ICBBcnJheVByb3RvdHlwZS5sdXQuaCBcCiAgICAgY2hhcnRhYmxlcy5jIFwKICAgICBEYXRlUHJv
dG90eXBlLmx1dC5oIFwKLSAgICBHcmFtbWFyLmNwcCBcCiAgICAgSlNPTk9iamVjdC5sdXQuaCBc
CiAgICAgTGV4ZXIubHV0LmggXAogICAgIE1hdGhPYmplY3QubHV0LmggXApAQCAtNjEsMTYgKzYw
LDYgQEAgYWxsIDogXAogTGV4ZXIubHV0Lmg6IGNyZWF0ZV9oYXNoX3RhYmxlIEtleXdvcmRzLnRh
YmxlCiAJJF4gPiAkQAogCi0jIEphdmFTY3JpcHQgbGFuZ3VhZ2UgZ3JhbW1hcgotCi1HcmFtbWFy
LmNwcDogR3JhbW1hci55Ci0JYmlzb24gLWQgLXAganNjeXkgJDwgLW8gJEAgPiBiaXNvbl9vdXQu
dHh0IDI+JjEKLQlwZXJsIC1wIC1lICdFTkQgeyBpZiAoJCRjb25mbGljdCkgeyB1bmxpbmsgIkdy
YW1tYXIuY3BwIjsgZGllOyB9IH0gJCRjb25mbGljdCB8fD0gL2NvbmZsaWN0LycgPCBiaXNvbl9v
dXQudHh0Ci0JdG91Y2ggR3JhbW1hci5jcHAuaAotCXRvdWNoIEdyYW1tYXIuaHBwCi0JY2F0IEdy
YW1tYXIuY3BwLmggR3JhbW1hci5ocHAgPiBHcmFtbWFyLmgKLQlybSAtZiBHcmFtbWFyLmNwcC5o
IEdyYW1tYXIuaHBwIGJpc29uX291dC50eHQKLQogIyBjaGFyYWN0ZXIgdGFibGVzIGZvciBQQ1JF
CiAKIGNoYXJ0YWJsZXMuYyA6IGRmdGFibGVzCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9E
ZXJpdmVkU291cmNlcy5wcm8gYi9KYXZhU2NyaXB0Q29yZS9EZXJpdmVkU291cmNlcy5wcm8KaW5k
ZXggN2M1YWFkOGRlM2JkMDkwOTczZDg4NTNmODJlMTZjYjFmOTQ5ZWU5OS4uZjM1OGM4YjQzY2Iz
NzhhOGQ1ZDQ2ODMwNjg3NWQ1MzcyZmIxNzdkYyAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUv
RGVyaXZlZFNvdXJjZXMucHJvCisrKyBiL0phdmFTY3JpcHRDb3JlL0Rlcml2ZWRTb3VyY2VzLnBy
bwpAQCAtMjYsOSArMjYsNiBAQCBMVVRfRklMRVMgKz0gXAogS0VZV09SRExVVF9GSUxFUyArPSBc
CiAgICAgcGFyc2VyL0tleXdvcmRzLnRhYmxlCiAKLUpTQ0JJU09OICs9IFwKLSAgICBwYXJzZXIv
R3JhbW1hci55Ci0KIFJWQ1RfU1RVQl9GSUxFUyArPSBcCiAgICAgaml0L0pJVFN0dWJzLmNwcAog
CkBAIC02OCwxMyArNjUsNiBAQCBrZXl3b3JkbHV0LmNvbW1hbmRzID0gcGVybCAkJGtleXdvcmRs
dXQud2tTY3JpcHQgJHtRTUFLRV9GSUxFX05BTUV9IC1pID4gJHtRTUFLRQoga2V5d29yZGx1dC5k
ZXBlbmRzID0gJHtRTUFLRV9GSUxFX05BTUV9CiBhZGRFeHRyYUNvbXBpbGVyKGtleXdvcmRsdXQp
CiAKLSMgR0VORVJBVE9SIDI6IGJpc29uIGdyYW1tYXIKLWpzY2Jpc29uLm91dHB1dCA9ICQke0pT
Q19HRU5FUkFURURfU09VUkNFU19ESVJ9JCR7UU1BS0VfRElSX1NFUH0ke1FNQUtFX0ZJTEVfQkFT
RX0uY3BwCi1qc2NiaXNvbi5pbnB1dCA9IEpTQ0JJU09OCi1qc2NiaXNvbi5jb21tYW5kcyA9IGJp
c29uIC1kIC1wIGpzY3l5ICR7UU1BS0VfRklMRV9OQU1FfSAtbyAkJHtKU0NfR0VORVJBVEVEX1NP
VVJDRVNfRElSfSQke1FNQUtFX0RJUl9TRVB9JHtRTUFLRV9GSUxFX0JBU0V9LnRhYi5jICYmICQo
TU9WRSkgJCR7SlNDX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUn0kJHtRTUFLRV9ESVJfU0VQfSR7UU1B
S0VfRklMRV9CQVNFfS50YWIuYyAke1FNQUtFX0ZJTEVfT1VUfSAmJiAkKE1PVkUpICQke0pTQ19H
RU5FUkFURURfU09VUkNFU19ESVJ9JCR7UU1BS0VfRElSX1NFUH0ke1FNQUtFX0ZJTEVfQkFTRX0u
dGFiLmggJCR7SlNDX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUn0kJHtRTUFLRV9ESVJfU0VQfSR7UU1B
S0VfRklMRV9CQVNFfS5oCi1qc2NiaXNvbi5kZXBlbmRzID0gJHtRTUFLRV9GSUxFX05BTUV9Ci1h
ZGRFeHRyYUNvbXBpbGVyKGpzY2Jpc29uKQotCiAjIEdFTkVSQVRPUiAzOiBKSVQgU3R1YiBmdW5j
dGlvbnMgZm9yIFJWQ1QKIHJ2Y3RzdHVicy5vdXRwdXQgPSAkJHtKU0NfR0VORVJBVEVEX1NPVVJD
RVNfRElSfSQke1FNQUtFX0RJUl9TRVB9R2VuZXJhdGVkJHtRTUFLRV9GSUxFX0JBU0V9X1JWQ1Qu
aAogcnZjdHN0dWJzLndrU2NyaXB0ID0gJCRQV0QvY3JlYXRlX2ppdF9zdHVicwpkaWZmIC0tZ2l0
IGEvSmF2YVNjcmlwdENvcmUvR05VbWFrZWZpbGUuYW0gYi9KYXZhU2NyaXB0Q29yZS9HTlVtYWtl
ZmlsZS5hbQppbmRleCA5NTdjNzQzODFiMmM4Njc0NWZjM2YwZWFkOTU5ZjZhZTc2NTc3YWU0Li45
MmYwZjdjYTZhODA4YjU4NmU1MmY0ODNjOGUzYzU4YWMwOTY2NzAyIDEwMDY0NAotLS0gYS9KYXZh
U2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5hbQorKysgYi9KYXZhU2NyaXB0Q29yZS9HTlVtYWtlZmls
ZS5hbQpAQCAtNTU2LDE4ICs1NTYsNiBAQCBqYXZhc2NyaXB0Y29yZV9zb3VyY2VzICs9IFwKIAlK
YXZhU2NyaXB0Q29yZS93dGYvZHRvYS5jcHAgXAogCUphdmFTY3JpcHRDb3JlL3d0Zi9kdG9hLmgK
IAotamF2YXNjcmlwdGNvcmVfYnVpbHRfc291cmNlcyArPSBcCi0JRGVyaXZlZFNvdXJjZXMvR3Jh
bW1hci5jcHAgXAotCURlcml2ZWRTb3VyY2VzL0dyYW1tYXIuaAotCi1EZXJpdmVkU291cmNlcy9H
cmFtbWFyLmg6IERlcml2ZWRTb3VyY2VzL0dyYW1tYXIuY3BwOwotCi1EZXJpdmVkU291cmNlcy9H
cmFtbWFyLmNwcDogJChzcmNkaXIpL0phdmFTY3JpcHRDb3JlL3BhcnNlci9HcmFtbWFyLnkKLQkk
KEJJU09OKSAtZCAtcCBqc2N5eSAkKHNyY2RpcikvSmF2YVNjcmlwdENvcmUvcGFyc2VyL0dyYW1t
YXIueSAtbyAkQCA+IGJpc29uX291dC50eHQgMj4mMQotCSQoUEVSTCkgLXAgLWUgJ0VORCB7IGlm
ICgkJGNvbmZsaWN0KSB7IHVubGluayAiR3JhbW1hci5jcHAiOyBkaWU7IH0gfSAkJGNvbmZsaWN0
IHx8PSAvY29uZmxpY3QvJyA8IGJpc29uX291dC50eHQKLQljYXQgJChHRU5TT1VSQ0VTKS9HcmFt
bWFyLmhwcCA+ICQoR0VOU09VUkNFUykvR3JhbW1hci5oCi0Jcm0gLWYgJChHRU5TT1VSQ0VTKS9H
cmFtbWFyLmhwcCBiaXNvbl9vdXQudHh0Ci0KIERlcml2ZWRTb3VyY2VzL0xleGVyLmx1dC5oOiAk
KENSRUFURV9IQVNIX1RBQkxFKSAkKHNyY2RpcikvSmF2YVNjcmlwdENvcmUvcGFyc2VyL0tleXdv
cmRzLnRhYmxlCiAJJChQRVJMKSAkXiA+ICRACiAKQEAgLTY0OCw3ICs2MzYsNiBAQCBqYXZhc2Ny
aXB0Y29yZV9kaXN0ICs9IFwKIAlKYXZhU2NyaXB0Q29yZS9wY3JlL0FVVEhPUlMgXAogCUphdmFT
Y3JpcHRDb3JlL3BjcmUvZGZ0YWJsZXMgXAogCUphdmFTY3JpcHRDb3JlL3BjcmUvdWNwdGFibGUu
Y3BwIFwKLQlKYXZhU2NyaXB0Q29yZS9wYXJzZXIvR3JhbW1hci55IFwKIAlKYXZhU2NyaXB0Q29y
ZS9wYXJzZXIvS2V5d29yZHMudGFibGUKIAogIyBDbGVhbiBydWxlcyBmb3IgSmF2YVNjcmlwdENv
cmUKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnBybyBiL0phdmFT
Y3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnBybwppbmRleCA4ZWU0ZjA5NTA1OTVkN2Y5NWRiZjQ0
YTI4NTlmZDIyYWU1ZDhlNGRkLi44NGNlODNjZmEyZjI1NzViZDBmMjgxN2I3YmIwYWUzNGQwNzg3
NDc3IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5wcm8KKysrIGIv
SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUucHJvCkBAIC0yMzUsOCArMjM1LDYgQEAgU09V
UkNFUyArPSBcCiAgICAgeWFyci9SZWdleEpJVC5jcHAKIAogIyBHZW5lcmF0ZWQgZmlsZXMsIHNp
bXBseSBsaXN0IHRoZW0gZm9yIEphdmFTY3JpcHRDb3JlCi1TT1VSQ0VTICs9IFwKLSAgICAkJHtK
U0NfR0VORVJBVEVEX1NPVVJDRVNfRElSfS9HcmFtbWFyLmNwcAogCiAhY29udGFpbnMoREVGSU5F
UywgVVNFX1NZU1RFTV9NQUxMT0MpIHsKICAgICBTT1VSQ0VTICs9IHd0Zi9UQ1N5c3RlbUFsbG9j
LmNwcApkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0ph
dmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvaiBiL0phdmFTY3JpcHRDb3JlL0phdmFT
Y3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2oKaW5k
ZXggODExN2Y3ODQwY2RjNmRjYzk1OTIyMDM4YWU3Njg1ZWUxYmM0NWNjZi4uZGJkZGZlMDFjYmNl
YWJmYmQzOTYwOWRlZTliMDc2MDZmN2JhMGEyYiAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJv
agorKysgYi9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdENvcmUudmNwcm9qCkBAIC0xODgxLDc4ICsxODgxLDYgQEAKIAkJCQk+DQog
CQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iJChXZWJLaXRPdXRwdXRE
aXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xHcmFtbWFyLmNwcCINCi0JCQkJ
Pg0KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCi0JCQkJCU5hbWU9IkRlYnVnfFdpbjMyIg0KLQkJ
CQkJPg0KLQkJCQkJPFRvb2wNCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQkJ
CURpc2FibGVTcGVjaWZpY1dhcm5pbmdzPSI0NzAxIg0KLQkJCQkJLz4NCi0JCQkJPC9GaWxlQ29u
ZmlndXJhdGlvbj4NCi0JCQkJPEZpbGVDb25maWd1cmF0aW9uDQotCQkJCQlOYW1lPSJSZWxlYXNl
fFdpbjMyIg0KLQkJCQkJPg0KLQkJCQkJPFRvb2wNCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJU
b29sIg0KLQkJCQkJCURpc2FibGVTcGVjaWZpY1dhcm5pbmdzPSI0NzAxIg0KLQkJCQkJLz4NCi0J
CQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCi0JCQkJPEZpbGVDb25maWd1cmF0aW9uDQotCQkJCQlO
YW1lPSJEZWJ1Z19JbnRlcm5hbHxXaW4zMiINCi0JCQkJCT4NCi0JCQkJCTxUb29sDQotCQkJCQkJ
TmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJCQlEaXNhYmxlU3BlY2lmaWNXYXJuaW5ncz0i
NDcwMSINCi0JCQkJCS8+DQotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQotCQkJCTxGaWxlQ29u
ZmlndXJhdGlvbg0KLQkJCQkJTmFtZT0iUmVsZWFzZV9QR09JbnN0cnVtZW50fFdpbjMyIg0KLQkJ
CQkJPg0KLQkJCQkJPFRvb2wNCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQkJ
CURpc2FibGVTcGVjaWZpY1dhcm5pbmdzPSI0NzAxIg0KLQkJCQkJLz4NCi0JCQkJPC9GaWxlQ29u
ZmlndXJhdGlvbj4NCi0JCQkJPEZpbGVDb25maWd1cmF0aW9uDQotCQkJCQlOYW1lPSJSZWxlYXNl
X1BHT09wdGltaXplfFdpbjMyIg0KLQkJCQkJPg0KLQkJCQkJPFRvb2wNCi0JCQkJCQlOYW1lPSJW
Q0NMQ29tcGlsZXJUb29sIg0KLQkJCQkJCURpc2FibGVTcGVjaWZpY1dhcm5pbmdzPSI0NzAxIg0K
LQkJCQkJLz4NCi0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCi0JCQkJPEZpbGVDb25maWd1cmF0
aW9uDQotCQkJCQlOYW1lPSJEZWJ1Z19DRkxpdGV8V2luMzIiDQotCQkJCQk+DQotCQkJCQk8VG9v
bA0KLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCQkJRGlzYWJsZVNwZWNpZmlj
V2FybmluZ3M9IjQ3MDEiDQotCQkJCQkvPg0KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KLQkJ
CQk8RmlsZUNvbmZpZ3VyYXRpb24NCi0JCQkJCU5hbWU9IlJlbGVhc2VfQ0ZMaXRlfFdpbjMyIg0K
LQkJCQkJPg0KLQkJCQkJPFRvb2wNCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJ
CQkJCURpc2FibGVTcGVjaWZpY1dhcm5pbmdzPSI0NzAxIg0KLQkJCQkJLz4NCi0JCQkJPC9GaWxl
Q29uZmlndXJhdGlvbj4NCi0JCQkJPEZpbGVDb25maWd1cmF0aW9uDQotCQkJCQlOYW1lPSJEZWJ1
Z19BbGx8V2luMzIiDQotCQkJCQk+DQotCQkJCQk8VG9vbA0KLQkJCQkJCU5hbWU9IlZDQ0xDb21w
aWxlclRvb2wiDQotCQkJCQkJRGlzYWJsZVNwZWNpZmljV2FybmluZ3M9IjQ3MDEiDQotCQkJCQkv
Pg0KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJ
CQlSZWxhdGl2ZVBhdGg9IiQoV2ViS2l0T3V0cHV0RGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVy
aXZlZFNvdXJjZXNcR3JhbW1hci5oIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQog
CQkJCVJlbGF0aXZlUGF0aD0iJChXZWJLaXRPdXRwdXREaXIpXG9ialwkKFByb2plY3ROYW1lKVxE
ZXJpdmVkU291cmNlc1xsZXhlci5sdXQuaCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCmRpZmYgLS1n
aXQgYS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qIGIvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagppbmRleCBiYzU4ZjVkODZmMmJhZjA2NjIxZWI5YmM3NTY4YWNhMDg3ZWFlODBlLi4xOGQ2
YjgzODYwYzgxNzA1MGYxMGU4NDM3ZDViZDA1MmI0NzczNmQ2IDEwMDY0NAotLS0gYS9KYXZhU2Ny
aXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL0ph
dmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAg
LTE0NSw3ICsxNDUsNiBAQAogCQkxNDgyQjc0RTBBNDMwMzI4MDA1MTdDRkMgLyogSlNTdHJpbmdS
ZWYuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQ4
MkI3NEMwQTQzMDMyODAwNTE3Q0ZDIC8qIEpTU3RyaW5nUmVmLmNwcCAqLzsgfTsKIAkJMTQ4MkI3
RTQwQTQzMDc2MDAwNTE3Q0ZDIC8qIEpTT2JqZWN0UmVmLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0ODJCN0UyMEE0MzA3NjAwMDUxN0NGQyAvKiBK
U09iamVjdFJlZi5jcHAgKi87IH07CiAJCTE0OENEMUQ4MTA4Q0Y5MDIwMDgxNjNDNiAvKiBKU0Nv
bnRleHRSZWZQcml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAxNDhDRDFENzEwOENGOTAyMDA4MTYzQzYgLyogSlNDb250ZXh0UmVmUHJpdmF0ZS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTE0OEYy
MUEzMTA3RUM1MzEwMDQyRUMyQyAvKiBHcmFtbWFyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDY1RkIzRjQ4MDlEMTFCMjQwMEY0OURFQiAvKiBHcmFt
bWFyLmNwcCAqLzsgfTsKIAkJMTQ4RjIxQUExMDdFQzUzQTAwNDJFQzJDIC8qIEJ5dGVjb2RlR2Vu
ZXJhdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDk2OUEwNzIwMEVEMUNFMzMwMEYxRjY4MSAvKiBCeXRlY29kZUdlbmVyYXRvci5jcHAgKi87IH07
CiAJCTE0OEYyMUIwMTA3RUM1NDEwMDQyRUMyQyAvKiBMZXhlci5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNjkyQTg2NTAyNTU1OTdEMDFGRjYwRjcg
LyogTGV4ZXIuY3BwICovOyB9OwogCQkxNDhGMjFCNzEwN0VDNTQ3MDA0MkVDMkMgLyogTm9kZXMu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjY5MkE4
NkQwMjU1NTk3RDAxRkY2MEY3IC8qIE5vZGVzLmNwcCAqLzsgfTsKQEAgLTQ3Niw3ICs0NzUsNiBA
QAogCQlCQzE4QzUyQTBFMTZGQ0MyMDBCMzQ0NjAgLyogTWF0aE9iamVjdC5sdXQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMThDNTI5MEUxNkZDQzIw
MEIzNDQ2MCAvKiBNYXRoT2JqZWN0Lmx1dC5oICovOyB9OwogCQlCQzE4QzUyQzBFMTZGQ0QyMDBC
MzQ0NjAgLyogUmVnRXhwT2JqZWN0Lmx1dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQkMxOEM1MkIwRTE2RkNEMjAwQjM0NDYwIC8qIFJlZ0V4cE9iamVj
dC5sdXQuaCAqLzsgfTsKIAkJQkMxOEM1MkUwRTE2RkNFMTAwQjM0NDYwIC8qIExleGVyLmx1dC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMxOEM1MkQw
RTE2RkNFMTAwQjM0NDYwIC8qIExleGVyLmx1dC5oICovOyB9OwotCQlCQzE4QzUzMDBFMTZGQ0VC
MDBCMzQ0NjAgLyogR3JhbW1hci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQkMxOEM1MkYwRTE2RkNFQjAwQjM0NDYwIC8qIEdyYW1tYXIuaCAqLzsgfTsK
IAkJQkMyNTdERTgwRTFGNTFDNTAwMTZCNkM5IC8qIEFyZ3VtZW50cy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMyNTdERTYwRTFGNTFDNTAwMTZCNkM5
IC8qIEFyZ3VtZW50cy5oICovOyB9OwogCQlCQzI1N0RGMDBFMUY1MkVEMDAxNkI2QzkgLyogR2xv
YmFsRXZhbEZ1bmN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCQzI1N0RFRTBFMUY1MkVEMDAxNkI2QzkgLyogR2xvYmFsRXZhbEZ1bmN0aW9uLmgg
Ki87IH07CiAJCUJDMjU3REY0MEUxRjUzNzQwMDE2QjZDOSAvKiBQcm90b3R5cGVGdW5jdGlvbi5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMyNTdERjIw
RTFGNTM3NDAwMTZCNkM5IC8qIFByb3RvdHlwZUZ1bmN0aW9uLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTc1OCw3ICs3NTYsNiBAQAogCQk2NUVB
NEM5QTA5MkFGOUUyMDA5M0Q4MDAgLyogSlNMb2NrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTTG9jay5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB0YWJXaWR0aCA9IDg7IH07CiAJCTY1RUE3MzYyMEJBRTM1RDEwMDFCQjU2MCAvKiBDb21t
b25JZGVudGlmaWVycy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
Q29tbW9uSWRlbnRpZmllcnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2NUVB
NzM2MzBCQUUzNUQxMDAxQkI1NjAgLyogQ29tbW9uSWRlbnRpZmllcnMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvbW1vbklkZW50aWZpZXJzLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCTY1RkIzRjQ4MDlEMTFCMjQwMEY0OURFQiAvKiBHcmFtbWFyLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBHcmFtbWFyLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzA0RkQzNTMwNTY5N0U2RDAwM0RCRUQ5IC8qIEJvb2xl
YW5PYmplY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gQm9vbGVhbk9iamVjdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9
IDg7IH07CiAJCTdFMkM2Qzk4MEQzMUM2QjYwMDJENDRFMiAvKiBTY29wZUNoYWluTWFyay5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY29wZUNoYWluTWFyay5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk3RTRFRTcwODBFQkI3OTYzMDA1OTM0QUEgLyogU3RydWN0
dXJlQ2hhaW4uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3RydWN0dXJlQ2hh
aW4uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTg0Myw3ICs4NDAsNiBAQAogCQk5
MzJGNUJFMTA4MjJBMUM3MDA3MzY5NzUgLyoganNjICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGV4cGxpY2l0RmlsZVR5cGUgPSAiY29tcGlsZWQubWFjaC1vLmV4ZWN1dGFibGUiOyBpbmNs
dWRlSW5JbmRleCA9IDA7IHBhdGggPSBqc2M7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19E
SVI7IH07CiAJCTkzMzAzRkU4MEU2QTcyQjUwMDc4NkU2QSAvKiBTbWFsbFN0cmluZ3MuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU21hbGxTdHJpbmdzLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTMzMDNGRUEwRTZBNzJDMDAwNzg2RTZBIC8qIFNt
YWxsU3RyaW5ncy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTbWFsbFN0cmlu
Z3MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTMzQTM0OTkwMzhBRTdDNjAwODYz
NUNFIC8qIEdyYW1tYXIueSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZp
bGVUeXBlID0gc291cmNlY29kZS55YWNjOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9
IDQ7IHBhdGggPSBHcmFtbWFyLnk7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0g
ODsgfTsKIAkJOTMzQTM0OUEwMzhBRTdDNjAwODYzNUNFIC8qIElkZW50aWZpZXIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJZGVudGlmaWVyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgfTsKIAkJOTMzQTM0OUQwMzhB
RTgwRjAwODYzNUNFIC8qIElkZW50aWZpZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJZGVudGlmaWVyLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB9OwogCQk5MzVBRjQ2OTA5RTlEOURCMDBBQ0QxRDgg
LyogRm9yd2FyZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGb3J3YXJkLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC05NzksNyArOTc1LDYgQEAKIAkJQkMxOEM1
MjkwRTE2RkNDMjAwQjM0NDYwIC8qIE1hdGhPYmplY3QubHV0LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IE1hdGhPYmplY3QubHV0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUJDMThDNTJCMEUxNkZDRDIwMEIzNDQ2MCAvKiBSZWdFeHBPYmplY3QubHV0LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlZ0V4cE9iamVjdC5sdXQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkMxOEM1MkQwRTE2RkNFMTAwQjM0NDYwIC8qIExleGVy
Lmx1dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMZXhlci5sdXQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkMxOEM1MkYwRTE2RkNFQjAwQjM0NDYwIC8qIEdy
YW1tYXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR3JhbW1hci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzIyQTM5ODBFMTZFMTQ4MDBBRjIxQzggLyogSlNP
YmplY3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNPYmplY3Qu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzIyQTM5OTBFMTZFMTQ4MDBBRjIx
QzggLyogSlNPYmplY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNPYmpl
Y3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkMyMkEzOUEwRTE2RTE0ODAwQUYy
MUM4IC8qIEpTVmFyaWFibGVPYmplY3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSlNWYXJpYWJsZU9iamVjdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC0xMzgxLDggKzEzNzYsNiBAQAogCQkJCUJDMThDNTIzMEUxNkZDOEEwMEIzNDQ2MCAvKiBB
cnJheVByb3RvdHlwZS5sdXQuaCAqLywKIAkJCQk2NUIxNzRCRTA5RDEwMDAyMDA4MjAzMzkgLyog
Y2hhcnRhYmxlcy5jICovLAogCQkJCUJDRDIwM0U3MEUxNzE4RjQwMDJDN0U4MiAvKiBEYXRlUHJv
dG90eXBlLmx1dC5oICovLAotCQkJCTY1RkIzRjQ4MDlEMTFCMjQwMEY0OURFQiAvKiBHcmFtbWFy
LmNwcCAqLywKLQkJCQlCQzE4QzUyRjBFMTZGQ0VCMDBCMzQ0NjAgLyogR3JhbW1hci5oICovLAog
CQkJCUJDODdDREI4MTA3MTJBQ0EwMDA2MTRDRiAvKiBKU09OT2JqZWN0Lmx1dC5oICovLAogCQkJ
CUJDMThDNTJEMEUxNkZDRTEwMEIzNDQ2MCAvKiBMZXhlci5sdXQuaCAqLywKIAkJCQlCQzE4QzUy
OTBFMTZGQ0MyMDBCMzQ0NjAgLyogTWF0aE9iamVjdC5sdXQuaCAqLywKQEAgLTE1MzEsNyArMTUy
NCw2IEBACiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAogCQkJCUE3QTdFRTc0
MTFCOThCOEQwMDY1QTE0RiAvKiBBU1RCdWlsZGVyLmggKi8sCi0JCQkJOTMzQTM0OTkwMzhBRTdD
NjAwODYzNUNFIC8qIEdyYW1tYXIueSAqLywKIAkJCQlBN0E3RUU3NTExQjk4QjhEMDA2NUExNEYg
LyogSlNQYXJzZXIuY3BwICovLAogCQkJCUE3QTdFRTc2MTFCOThCOEQwMDY1QTE0RiAvKiBKU1Bh
cnNlci5oICovLAogCQkJCTkzRjE5ODFBMDgyNDVBQUUwMDFFOUFCQyAvKiBLZXl3b3Jkcy50YWJs
ZSAqLywKQEAgLTE5NjcsNyArMTk1OSw2IEBACiAJCQkJQkMxOEM0MDUwRTE2RjVDRDAwQjM0NDYw
IC8qIEZ1bmN0aW9uUHJvdG90eXBlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE4QzQwNjBFMTZG
NUNEMDBCMzQ0NjAgLyogR2V0UHRyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzI1N0RGMDBFMUY1
MkVEMDAxNkI2QzkgLyogR2xvYmFsRXZhbEZ1bmN0aW9uLmggaW4gSGVhZGVycyAqLywKLQkJCQlC
QzE4QzUzMDBFMTZGQ0VCMDBCMzQ0NjAgLyogR3JhbW1hci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QkMxOEM0MDgwRTE2RjVDRDAwQjM0NDYwIC8qIEhhc2hDb3VudGVkU2V0LmggaW4gSGVhZGVycyAq
LywKIAkJCQlCQzE4QzQwOTBFMTZGNUNEMDBCMzQ0NjAgLyogSGFzaEZ1bmN0aW9ucy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQkMxOEM0MEEwRTE2RjVDRDAwQjM0NDYwIC8qIEhhc2hJdGVyYXRvcnMu
aCBpbiBIZWFkZXJzICovLApAQCAtMjUwNSw3ICsyNDk2LDYgQEAKIAkJCQkxNDdGMzlDQzEwN0VD
Mzc2MDA0MjdBNDggLyogRnVuY3Rpb25Qcm90b3R5cGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MTQyODA4NTUxMDdFQzBFNzAwMTNFN0IyIC8qIEdldHRlclNldHRlci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkxNDdGMzlDRDEwN0VDMzc2MDA0MjdBNDggLyogR2xvYmFsRXZhbEZ1bmN0aW9uLmNw
cCBpbiBTb3VyY2VzICovLAotCQkJCTE0OEYyMUEzMTA3RUM1MzEwMDQyRUMyQyAvKiBHcmFtbWFy
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTY1REZDOTMzMDhFQTE3M0EwMEY3MzAwQiAvKiBIYXNo
VGFibGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ3RjM5Q0UxMDdFQzM3NjAwNDI3QTQ4IC8q
IElkZW50aWZpZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTE3ODYzNkQwRDlCRUVDMzAwRDc0
RTc1IC8qIEluaXRpYWxpemVUaHJlYWRpbmcuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQg
YS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvR3JhbW1hci55IGIvSmF2YVNjcmlwdENvcmUvcGFyc2Vy
L0dyYW1tYXIueQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGQ2ZTdkMTk1NGVkYThm
MmZmZjVlY2I5MDhlMTk0YmU2OTE0ZjQ5My4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvR3JhbW1hci55CisrKyAvZGV2
L251bGwKQEAgLTEsMjA5OSArMCwwIEBACi0lcHVyZV9wYXJzZXIKLQotJXsKLQotLyoKLSAqICBD
b3B5cmlnaHQgKEMpIDE5OTktMjAwMCBIYXJyaSBQb3J0ZW4gKHBvcnRlbkBrZGUub3JnKQotICog
IENvcHlyaWdodCAoQykgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0gKiAgQ29weXJpZ2h0IChDKSAyMDA3IEVyaWMgU2VpZGVsIDxlcmljQHdl
YmtpdC5vcmc+Ci0gKgotICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu
IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m
IHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi0gKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQg
YnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiAgdmVyc2lvbiAyIG9m
IHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoK
LSAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxs
IGJlIHVzZWZ1bCwKLSAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0
aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiAgTGVzc2VyIEdlbmVyYWwg
UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiAgWW91IHNob3VsZCBoYXZl
IHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwotICogIExp
Y2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUg
U29mdHdhcmUKLSAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRo
IEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKLSAqCi0gKi8KLQotI2luY2x1ZGUg
ImNvbmZpZy5oIgotCi0jaW5jbHVkZSAiSlNPYmplY3QuaCIKLSNpbmNsdWRlICJKU1N0cmluZy5o
IgotI2luY2x1ZGUgIkxleGVyLmgiCi0jaW5jbHVkZSAiTm9kZUNvbnN0cnVjdG9ycy5oIgotI2lu
Y2x1ZGUgIk5vZGVJbmZvLmgiCi0jaW5jbHVkZSA8c3RkbGliLmg+Ci0jaW5jbHVkZSA8c3RyaW5n
Lmg+Ci0jaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KLQotI2RlZmluZSBZWU1BTExPQyBmYXN0
TWFsbG9jCi0jZGVmaW5lIFlZRlJFRSBmYXN0RnJlZQotCi0jZGVmaW5lIFlZTUFYREVQVEggMTAw
MDAKLSNkZWZpbmUgWVlFTkFCTEVfTkxTIDAKLQotLy8gRGVmYXVsdCB2YWx1ZXMgZm9yIGJpc29u
LgotI2RlZmluZSBZWURFQlVHIDAgLy8gU2V0IHRvIDEgdG8gZGVidWcgYSBwYXJzZSBlcnJvci4K
LSNkZWZpbmUganNjeXlkZWJ1ZyAwIC8vIFNldCB0byAxIHRvIGRlYnVnIGEgcGFyc2UgZXJyb3Iu
Ci0jaWYgIU9TKERBUldJTikKLS8vIEF2b2lkIHRyaWdnZXJpbmcgd2FybmluZ3MgaW4gb2xkZXIg
Ymlzb24gYnkgbm90IHNldHRpbmcgdGhpcyBvbiB0aGUgRGFyd2luIHBsYXRmb3JtLgotLy8gRklY
TUU6IElzIHRoaXMgc3RpbGwgbmVlZGVkPwotI2RlZmluZSBZWUVSUk9SX1ZFUkJPU0UKLSNlbmRp
ZgotCi1pbnQganNjeXllcnJvcihjb25zdCBjaGFyKik7Ci0KLXN0YXRpYyBpbmxpbmUgYm9vbCBh
bGxvd0F1dG9tYXRpY1NlbWljb2xvbihKU0M6OkxleGVyJiwgaW50KTsKLQotI2RlZmluZSBHTE9C
QUxfREFUQSBzdGF0aWNfY2FzdDxKU0dsb2JhbERhdGEqPihnbG9iYWxQdHIpCi0jZGVmaW5lIEFV
VE9fU0VNSUNPTE9OIGRvIHsgaWYgKCFhbGxvd0F1dG9tYXRpY1NlbWljb2xvbigqR0xPQkFMX0RB
VEEtPmxleGVyLCB5eWNoYXIpKSBZWUFCT1JUOyB9IHdoaWxlICgwKQotCi11c2luZyBuYW1lc3Bh
Y2UgSlNDOwotdXNpbmcgbmFtZXNwYWNlIHN0ZDsKLQotc3RhdGljIEV4cHJlc3Npb25Ob2RlKiBt
YWtlQXNzaWduTm9kZShKU0dsb2JhbERhdGEqLCBFeHByZXNzaW9uTm9kZSogbGVmdCwgT3BlcmF0
b3IsIEV4cHJlc3Npb25Ob2RlKiByaWdodCwgYm9vbCBsZWZ0SGFzQXNzaWdubWVudHMsIGJvb2wg
cmlnaHRIYXNBc3NpZ25tZW50cywgaW50IHN0YXJ0LCBpbnQgZGl2b3QsIGludCBlbmQpOwotc3Rh
dGljIEV4cHJlc3Npb25Ob2RlKiBtYWtlUHJlZml4Tm9kZShKU0dsb2JhbERhdGEqLCBFeHByZXNz
aW9uTm9kZSosIE9wZXJhdG9yLCBpbnQgc3RhcnQsIGludCBkaXZvdCwgaW50IGVuZCk7Ci1zdGF0
aWMgRXhwcmVzc2lvbk5vZGUqIG1ha2VQb3N0Zml4Tm9kZShKU0dsb2JhbERhdGEqLCBFeHByZXNz
aW9uTm9kZSosIE9wZXJhdG9yLCBpbnQgc3RhcnQsIGludCBkaXZvdCwgaW50IGVuZCk7Ci1zdGF0
aWMgUHJvcGVydHlOb2RlKiBtYWtlR2V0dGVyT3JTZXR0ZXJQcm9wZXJ0eU5vZGUoSlNHbG9iYWxE
YXRhKiwgY29uc3QgSWRlbnRpZmllciYgZ2V0T3JTZXQsIGNvbnN0IElkZW50aWZpZXImIG5hbWUs
IFBhcmFtZXRlck5vZGUqLCBGdW5jdGlvbkJvZHlOb2RlKiwgY29uc3QgU291cmNlQ29kZSYpOwot
c3RhdGljIEV4cHJlc3Npb25Ob2RlSW5mbyBtYWtlRnVuY3Rpb25DYWxsTm9kZShKU0dsb2JhbERh
dGEqLCBFeHByZXNzaW9uTm9kZUluZm8gZnVuY3Rpb24sIEFyZ3VtZW50c05vZGVJbmZvLCBpbnQg
c3RhcnQsIGludCBkaXZvdCwgaW50IGVuZCk7Ci1zdGF0aWMgRXhwcmVzc2lvbk5vZGUqIG1ha2VU
eXBlT2ZOb2RlKEpTR2xvYmFsRGF0YSosIEV4cHJlc3Npb25Ob2RlKik7Ci1zdGF0aWMgRXhwcmVz
c2lvbk5vZGUqIG1ha2VEZWxldGVOb2RlKEpTR2xvYmFsRGF0YSosIEV4cHJlc3Npb25Ob2RlKiwg
aW50IHN0YXJ0LCBpbnQgZGl2b3QsIGludCBlbmQpOwotc3RhdGljIEV4cHJlc3Npb25Ob2RlKiBt
YWtlTmVnYXRlTm9kZShKU0dsb2JhbERhdGEqLCBFeHByZXNzaW9uTm9kZSopOwotc3RhdGljIE51
bWJlck5vZGUqIG1ha2VOdW1iZXJOb2RlKEpTR2xvYmFsRGF0YSosIGRvdWJsZSk7Ci1zdGF0aWMg
RXhwcmVzc2lvbk5vZGUqIG1ha2VCaXR3aXNlTm90Tm9kZShKU0dsb2JhbERhdGEqLCBFeHByZXNz
aW9uTm9kZSopOwotc3RhdGljIEV4cHJlc3Npb25Ob2RlKiBtYWtlTXVsdE5vZGUoSlNHbG9iYWxE
YXRhKiwgRXhwcmVzc2lvbk5vZGUqIGxlZnQsIEV4cHJlc3Npb25Ob2RlKiByaWdodCwgYm9vbCBy
aWdodEhhc0Fzc2lnbm1lbnRzKTsKLXN0YXRpYyBFeHByZXNzaW9uTm9kZSogbWFrZURpdk5vZGUo
SlNHbG9iYWxEYXRhKiwgRXhwcmVzc2lvbk5vZGUqIGxlZnQsIEV4cHJlc3Npb25Ob2RlKiByaWdo
dCwgYm9vbCByaWdodEhhc0Fzc2lnbm1lbnRzKTsKLXN0YXRpYyBFeHByZXNzaW9uTm9kZSogbWFr
ZUFkZE5vZGUoSlNHbG9iYWxEYXRhKiwgRXhwcmVzc2lvbk5vZGUqIGxlZnQsIEV4cHJlc3Npb25O
b2RlKiByaWdodCwgYm9vbCByaWdodEhhc0Fzc2lnbm1lbnRzKTsKLXN0YXRpYyBFeHByZXNzaW9u
Tm9kZSogbWFrZVN1Yk5vZGUoSlNHbG9iYWxEYXRhKiwgRXhwcmVzc2lvbk5vZGUqIGxlZnQsIEV4
cHJlc3Npb25Ob2RlKiByaWdodCwgYm9vbCByaWdodEhhc0Fzc2lnbm1lbnRzKTsKLXN0YXRpYyBF
eHByZXNzaW9uTm9kZSogbWFrZUxlZnRTaGlmdE5vZGUoSlNHbG9iYWxEYXRhKiwgRXhwcmVzc2lv
bk5vZGUqIGxlZnQsIEV4cHJlc3Npb25Ob2RlKiByaWdodCwgYm9vbCByaWdodEhhc0Fzc2lnbm1l
bnRzKTsKLXN0YXRpYyBFeHByZXNzaW9uTm9kZSogbWFrZVJpZ2h0U2hpZnROb2RlKEpTR2xvYmFs
RGF0YSosIEV4cHJlc3Npb25Ob2RlKiBsZWZ0LCBFeHByZXNzaW9uTm9kZSogcmlnaHQsIGJvb2wg
cmlnaHRIYXNBc3NpZ25tZW50cyk7Ci1zdGF0aWMgU3RhdGVtZW50Tm9kZSogbWFrZVZhclN0YXRl
bWVudE5vZGUoSlNHbG9iYWxEYXRhKiwgRXhwcmVzc2lvbk5vZGUqKTsKLXN0YXRpYyBFeHByZXNz
aW9uTm9kZSogY29tYmluZUNvbW1hTm9kZXMoSlNHbG9iYWxEYXRhKiwgRXhwcmVzc2lvbk5vZGUq
IGxpc3QsIEV4cHJlc3Npb25Ob2RlKiBpbml0KTsKLQotI2lmIENPTVBJTEVSKE1TVkMpCi0KLSNw
cmFnbWEgd2FybmluZyhkaXNhYmxlOiA0MDY1KQotI3ByYWdtYSB3YXJuaW5nKGRpc2FibGU6IDQy
NDQpCi0jcHJhZ21hIHdhcm5pbmcoZGlzYWJsZTogNDcwMikKLQotI2VuZGlmCi0KLSNkZWZpbmUg
WVlQQVJTRV9QQVJBTSBnbG9iYWxQdHIKLSNkZWZpbmUgWVlMRVhfUEFSQU0gZ2xvYmFsUHRyCi0K
LXRlbXBsYXRlIDx0eXBlbmFtZSBUPiBpbmxpbmUgTm9kZURlY2xhcmF0aW9uSW5mbzxUPiBjcmVh
dGVOb2RlRGVjbGFyYXRpb25JbmZvKFQgbm9kZSwKLSAgICBQYXJzZXJBcmVuYURhdGE8RGVjbGFy
YXRpb25TdGFja3M6OlZhclN0YWNrPiogdmFyRGVjbHMsCi0gICAgUGFyc2VyQXJlbmFEYXRhPERl
Y2xhcmF0aW9uU3RhY2tzOjpGdW5jdGlvblN0YWNrPiogZnVuY0RlY2xzLAotICAgIENvZGVGZWF0
dXJlcyBpbmZvLCBpbnQgbnVtQ29uc3RhbnRzKSAKLXsKLSAgICBBU1NFUlQoKGluZm8gJiB+QWxs
RmVhdHVyZXMpID09IDApOwotICAgIE5vZGVEZWNsYXJhdGlvbkluZm88VD4gcmVzdWx0ID0geyBu
b2RlLCB2YXJEZWNscywgZnVuY0RlY2xzLCBpbmZvLCBudW1Db25zdGFudHMgfTsKLSAgICByZXR1
cm4gcmVzdWx0OwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gaW5saW5lIE5vZGVJbmZvPFQ+
IGNyZWF0ZU5vZGVJbmZvKFQgbm9kZSwgQ29kZUZlYXR1cmVzIGluZm8sIGludCBudW1Db25zdGFu
dHMpCi17Ci0gICAgQVNTRVJUKChpbmZvICYgfkFsbEZlYXR1cmVzKSA9PSAwKTsKLSAgICBOb2Rl
SW5mbzxUPiByZXN1bHQgPSB7IG5vZGUsIGluZm8sIG51bUNvbnN0YW50cyB9OwotICAgIHJldHVy
biByZXN1bHQ7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUPiBpbmxpbmUgVCBtZXJnZURlY2xh
cmF0aW9uTGlzdHMoVCBkZWNsczEsIFQgZGVjbHMyKSAKLXsKLSAgICAvLyBkZWNsczEgb3IgYm90
aCBhcmUgbnVsbAotICAgIGlmICghZGVjbHMxKQotICAgICAgICByZXR1cm4gZGVjbHMyOwotICAg
IC8vIG9ubHkgZGVjbHMxIGlzIG5vbi1udWxsCi0gICAgaWYgKCFkZWNsczIpCi0gICAgICAgIHJl
dHVybiBkZWNsczE7Ci0KLSAgICAvLyBCb3RoIGFyZSBub24tbnVsbAotICAgIGRlY2xzMS0+ZGF0
YS5hcHBlbmQoZGVjbHMyLT5kYXRhKTsKLSAgICAKLSAgICAvLyBNYW51YWxseSByZWxlYXNlIGFz
IG11Y2ggYXMgcG9zc2libGUgZnJvbSB0aGUgbm93LWRlZnVuY3QgZGVjbGFyYXRpb24gbGlzdHMK
LSAgICAvLyB0byBhdm9pZCBhY2N1bXVsYXRpbmcgc28gbWFueSB1bnVzZWQgaGVhcCBhbGxvY2F0
ZWQgdmVjdG9ycy4KLSAgICBkZWNsczItPmRhdGEuY2xlYXIoKTsKLQotICAgIHJldHVybiBkZWNs
czE7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgdm9pZCBhcHBlbmRUb1ZhckRlY2xhcmF0aW9uTGlzdChK
U0dsb2JhbERhdGEqIGdsb2JhbERhdGEsIFBhcnNlckFyZW5hRGF0YTxEZWNsYXJhdGlvblN0YWNr
czo6VmFyU3RhY2s+KiYgdmFyRGVjbHMsIGNvbnN0IElkZW50aWZpZXImIGlkZW50LCB1bnNpZ25l
ZCBhdHRycykKLXsKLSAgICBpZiAoIXZhckRlY2xzKQotICAgICAgICB2YXJEZWNscyA9IG5ldyAo
Z2xvYmFsRGF0YSkgUGFyc2VyQXJlbmFEYXRhPERlY2xhcmF0aW9uU3RhY2tzOjpWYXJTdGFjaz47
Ci0KLSAgICB2YXJEZWNscy0+ZGF0YS5hcHBlbmQobWFrZV9wYWlyKCZpZGVudCwgYXR0cnMpKTsK
LX0KLQotc3RhdGljIGlubGluZSB2b2lkIGFwcGVuZFRvVmFyRGVjbGFyYXRpb25MaXN0KEpTR2xv
YmFsRGF0YSogZ2xvYmFsRGF0YSwgUGFyc2VyQXJlbmFEYXRhPERlY2xhcmF0aW9uU3RhY2tzOjpW
YXJTdGFjaz4qJiB2YXJEZWNscywgQ29uc3REZWNsTm9kZSogZGVjbCkKLXsKLSAgICB1bnNpZ25l
ZCBhdHRycyA9IERlY2xhcmF0aW9uU3RhY2tzOjpJc0NvbnN0YW50OwotICAgIGlmIChkZWNsLT5o
YXNJbml0aWFsaXplcigpKQotICAgICAgICBhdHRycyB8PSBEZWNsYXJhdGlvblN0YWNrczo6SGFz
SW5pdGlhbGl6ZXI7ICAgICAgICAKLSAgICBhcHBlbmRUb1ZhckRlY2xhcmF0aW9uTGlzdChnbG9i
YWxEYXRhLCB2YXJEZWNscywgZGVjbC0+aWRlbnQoKSwgYXR0cnMpOwotfQotCi0lfQotCi0ldW5p
b24gewotICAgIGludCAgICAgICAgICAgICAgICAgaW50VmFsdWU7Ci0gICAgZG91YmxlICAgICAg
ICAgICAgICBkb3VibGVWYWx1ZTsKLSAgICBjb25zdCBJZGVudGlmaWVyKiAgIGlkZW50OwotCi0g
ICAgLy8gZXhwcmVzc2lvbiBzdWJ0cmVlcwotICAgIEV4cHJlc3Npb25Ob2RlSW5mbyAgZXhwcmVz
c2lvbk5vZGU7Ci0gICAgRnVuY0RlY2xOb2RlSW5mbyAgICBmdW5jRGVjbE5vZGU7Ci0gICAgUHJv
cGVydHlOb2RlSW5mbyAgICBwcm9wZXJ0eU5vZGU7Ci0gICAgQXJndW1lbnRzTm9kZUluZm8gICBh
cmd1bWVudHNOb2RlOwotICAgIENvbnN0RGVjbE5vZGVJbmZvICAgY29uc3REZWNsTm9kZTsKLSAg
ICBDYXNlQmxvY2tOb2RlSW5mbyAgIGNhc2VCbG9ja05vZGU7Ci0gICAgQ2FzZUNsYXVzZU5vZGVJ
bmZvICBjYXNlQ2xhdXNlTm9kZTsKLSAgICBGdW5jRXhwck5vZGVJbmZvICAgIGZ1bmNFeHByTm9k
ZTsKLQotICAgIC8vIHN0YXRlbWVudCBub2RlcwotICAgIFN0YXRlbWVudE5vZGVJbmZvICAgc3Rh
dGVtZW50Tm9kZTsKLSAgICBGdW5jdGlvbkJvZHlOb2RlKiAgIGZ1bmN0aW9uQm9keU5vZGU7Ci0g
ICAgUHJvZ3JhbU5vZGUqICAgICAgICBwcm9ncmFtTm9kZTsKLQotICAgIFNvdXJjZUVsZW1lbnRz
SW5mbyAgc291cmNlRWxlbWVudHM7Ci0gICAgUHJvcGVydHlMaXN0SW5mbyAgICBwcm9wZXJ0eUxp
c3Q7Ci0gICAgQXJndW1lbnRMaXN0SW5mbyAgICBhcmd1bWVudExpc3Q7Ci0gICAgVmFyRGVjbExp
c3RJbmZvICAgICB2YXJEZWNsTGlzdDsKLSAgICBDb25zdERlY2xMaXN0SW5mbyAgIGNvbnN0RGVj
bExpc3Q7Ci0gICAgQ2xhdXNlTGlzdEluZm8gICAgICBjbGF1c2VMaXN0OwotICAgIEVsZW1lbnRM
aXN0SW5mbyAgICAgZWxlbWVudExpc3Q7Ci0gICAgUGFyYW1ldGVyTGlzdEluZm8gICBwYXJhbWV0
ZXJMaXN0OwotCi0gICAgT3BlcmF0b3IgICAgICAgICAgICBvcDsKLX0KLQotJXsKLQotdGVtcGxh
dGUgPHR5cGVuYW1lIFQ+IGlubGluZSB2b2lkIHNldFN0YXRlbWVudExvY2F0aW9uKFN0YXRlbWVu
dE5vZGUqIHN0YXRlbWVudCwgY29uc3QgVCYgc3RhcnQsIGNvbnN0IFQmIGVuZCkKLXsKLSAgICBz
dGF0ZW1lbnQtPnNldExvYyhzdGFydC5maXJzdF9saW5lLCBlbmQubGFzdF9saW5lKTsKLX0KLQot
c3RhdGljIGlubGluZSB2b2lkIHNldEV4Y2VwdGlvbkxvY2F0aW9uKFRocm93YWJsZUV4cHJlc3Np
b25EYXRhKiBub2RlLCB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgZGl2b3QsIHVuc2lnbmVkIGVu
ZCkKLXsKLSAgICBub2RlLT5zZXRFeGNlcHRpb25Tb3VyY2VDb2RlKGRpdm90LCBkaXZvdCAtIHN0
YXJ0LCBlbmQgLSBkaXZvdCk7Ci19Ci0KLSV9Ci0KLSVzdGFydCBQcm9ncmFtCi0KLS8qIGxpdGVy
YWxzICovCi0ldG9rZW4gTlVMTFRPS0VOIFRSVUVUT0tFTiBGQUxTRVRPS0VOCi0KLS8qIGtleXdv
cmRzICovCi0ldG9rZW4gQlJFQUsgQ0FTRSBERUZBVUxUIEZPUiBORVcgVkFSIENPTlNUVE9LRU4g
Q09OVElOVUUKLSV0b2tlbiBGVU5DVElPTiBSRVRVUk4gVk9JRFRPS0VOIERFTEVURVRPS0VOCi0l
dG9rZW4gSUYgVEhJU1RPS0VOIERPIFdISUxFIElOVE9LRU4gSU5TVEFOQ0VPRiBUWVBFT0YKLSV0
b2tlbiBTV0lUQ0ggV0lUSCBSRVNFUlZFRAotJXRva2VuIFRIUk9XIFRSWSBDQVRDSCBGSU5BTExZ
Ci0ldG9rZW4gREVCVUdHRVIKLQotLyogZ2l2ZSBhbiBpZiB3aXRob3V0IGFuIGVsc2UgaGlnaGVy
IHByZWNlZGVuY2UgdGhhbiBhbiBlbHNlIHRvIHJlc29sdmUgdGhlIGFtYmlndWl0eSAqLwotJW5v
bmFzc29jIElGX1dJVEhPVVRfRUxTRQotJW5vbmFzc29jIEVMU0UKLQotLyogcHVuY3R1YXRvcnMg
Ki8KLSV0b2tlbiBFUUVRIE5FICAgICAgICAgICAgICAgICAgICAgLyogPT0gYW5kICE9ICovCi0l
dG9rZW4gU1RSRVEgU1RSTkVRICAgICAgICAgICAgICAgIC8qID09PSBhbmQgIT09ICovCi0ldG9r
ZW4gTEUgR0UgICAgICAgICAgICAgICAgICAgICAgIC8qIDwgYW5kID4gKi8KLSV0b2tlbiBPUiBB
TkQgICAgICAgICAgICAgICAgICAgICAgLyogfHwgYW5kICYmICovCi0ldG9rZW4gUExVU1BMVVMg
TUlOVVNNSU5VUyAgICAgICAgIC8qICsrIGFuZCAtLSAgKi8KLSV0b2tlbiBMU0hJRlQgICAgICAg
ICAgICAgICAgICAgICAgLyogPDwgKi8KLSV0b2tlbiBSU0hJRlQgVVJTSElGVCAgICAgICAgICAg
ICAgLyogPj4gYW5kID4+PiAqLwotJXRva2VuIFBMVVNFUVVBTCBNSU5VU0VRVUFMICAgICAgICAv
KiArPSBhbmQgLT0gKi8KLSV0b2tlbiBNVUxURVFVQUwgRElWRVFVQUwgICAgICAgICAgLyogKj0g
YW5kIC89ICovCi0ldG9rZW4gTFNISUZURVFVQUwgICAgICAgICAgICAgICAgIC8qIDw8PSAqLwot
JXRva2VuIFJTSElGVEVRVUFMIFVSU0hJRlRFUVVBTCAgICAvKiA+Pj0gYW5kID4+Pj0gKi8KLSV0
b2tlbiBBTkRFUVVBTCBNT0RFUVVBTCAgICAgICAgICAgLyogJj0gYW5kICU9ICovCi0ldG9rZW4g
WE9SRVFVQUwgT1JFUVVBTCAgICAgICAgICAgIC8qIF49IGFuZCB8PSAqLwotJXRva2VuIDxpbnRW
YWx1ZT4gT1BFTkJSQUNFICAgICAgICAvKiB7ICh3aXRoIGNoYXIgb2Zmc2V0KSAqLwotJXRva2Vu
IDxpbnRWYWx1ZT4gQ0xPU0VCUkFDRSAgICAgICAvKiB9ICh3aXRoIGNoYXIgb2Zmc2V0KSAqLwot
Ci0vKiB0ZXJtaW5hbCB0eXBlcyAqLwotJXRva2VuIDxkb3VibGVWYWx1ZT4gTlVNQkVSCi0ldG9r
ZW4gPGlkZW50PiBJREVOVCBTVFJJTkcKLQotLyogYXV0b21hdGljYWxseSBpbnNlcnRlZCBzZW1p
Y29sb24gKi8KLSV0b2tlbiBBVVRPUExVU1BMVVMgQVVUT01JTlVTTUlOVVMKLQotLyogbm9uLXRl
cm1pbmFsIHR5cGVzICovCi0ldHlwZSA8ZXhwcmVzc2lvbk5vZGU+ICBMaXRlcmFsIEFycmF5TGl0
ZXJhbAotCi0ldHlwZSA8ZXhwcmVzc2lvbk5vZGU+ICBQcmltYXJ5RXhwciBQcmltYXJ5RXhwck5v
QnJhY2UKLSV0eXBlIDxleHByZXNzaW9uTm9kZT4gIE1lbWJlckV4cHIgTWVtYmVyRXhwck5vQkYg
LyogQkYgPT4gYnJhY2Ugb3IgZnVuY3Rpb24gKi8KLSV0eXBlIDxleHByZXNzaW9uTm9kZT4gIE5l
d0V4cHIgTmV3RXhwck5vQkYKLSV0eXBlIDxleHByZXNzaW9uTm9kZT4gIENhbGxFeHByIENhbGxF
eHByTm9CRgotJXR5cGUgPGV4cHJlc3Npb25Ob2RlPiAgTGVmdEhhbmRTaWRlRXhwciBMZWZ0SGFu
ZFNpZGVFeHByTm9CRgotJXR5cGUgPGV4cHJlc3Npb25Ob2RlPiAgUG9zdGZpeEV4cHIgUG9zdGZp
eEV4cHJOb0JGCi0ldHlwZSA8ZXhwcmVzc2lvbk5vZGU+ICBVbmFyeUV4cHIgVW5hcnlFeHByTm9C
RiBVbmFyeUV4cHJDb21tb24KLSV0eXBlIDxleHByZXNzaW9uTm9kZT4gIE11bHRpcGxpY2F0aXZl
RXhwciBNdWx0aXBsaWNhdGl2ZUV4cHJOb0JGCi0ldHlwZSA8ZXhwcmVzc2lvbk5vZGU+ICBBZGRp
dGl2ZUV4cHIgQWRkaXRpdmVFeHByTm9CRgotJXR5cGUgPGV4cHJlc3Npb25Ob2RlPiAgU2hpZnRF
eHByIFNoaWZ0RXhwck5vQkYKLSV0eXBlIDxleHByZXNzaW9uTm9kZT4gIFJlbGF0aW9uYWxFeHBy
IFJlbGF0aW9uYWxFeHByTm9JbiBSZWxhdGlvbmFsRXhwck5vQkYKLSV0eXBlIDxleHByZXNzaW9u
Tm9kZT4gIEVxdWFsaXR5RXhwciBFcXVhbGl0eUV4cHJOb0luIEVxdWFsaXR5RXhwck5vQkYKLSV0
eXBlIDxleHByZXNzaW9uTm9kZT4gIEJpdHdpc2VBTkRFeHByIEJpdHdpc2VBTkRFeHByTm9JbiBC
aXR3aXNlQU5ERXhwck5vQkYKLSV0eXBlIDxleHByZXNzaW9uTm9kZT4gIEJpdHdpc2VYT1JFeHBy
IEJpdHdpc2VYT1JFeHByTm9JbiBCaXR3aXNlWE9SRXhwck5vQkYKLSV0eXBlIDxleHByZXNzaW9u
Tm9kZT4gIEJpdHdpc2VPUkV4cHIgQml0d2lzZU9SRXhwck5vSW4gQml0d2lzZU9SRXhwck5vQkYK
LSV0eXBlIDxleHByZXNzaW9uTm9kZT4gIExvZ2ljYWxBTkRFeHByIExvZ2ljYWxBTkRFeHByTm9J
biBMb2dpY2FsQU5ERXhwck5vQkYKLSV0eXBlIDxleHByZXNzaW9uTm9kZT4gIExvZ2ljYWxPUkV4
cHIgTG9naWNhbE9SRXhwck5vSW4gTG9naWNhbE9SRXhwck5vQkYKLSV0eXBlIDxleHByZXNzaW9u
Tm9kZT4gIENvbmRpdGlvbmFsRXhwciBDb25kaXRpb25hbEV4cHJOb0luIENvbmRpdGlvbmFsRXhw
ck5vQkYKLSV0eXBlIDxleHByZXNzaW9uTm9kZT4gIEFzc2lnbm1lbnRFeHByIEFzc2lnbm1lbnRF
eHByTm9JbiBBc3NpZ25tZW50RXhwck5vQkYKLSV0eXBlIDxleHByZXNzaW9uTm9kZT4gIEV4cHIg
RXhwck5vSW4gRXhwck5vQkYKLQotJXR5cGUgPGV4cHJlc3Npb25Ob2RlPiAgRXhwck9wdCBFeHBy
Tm9Jbk9wdAotCi0ldHlwZSA8c3RhdGVtZW50Tm9kZT4gICBTdGF0ZW1lbnQgQmxvY2sKLSV0eXBl
IDxzdGF0ZW1lbnROb2RlPiAgIFZhcmlhYmxlU3RhdGVtZW50IENvbnN0U3RhdGVtZW50IEVtcHR5
U3RhdGVtZW50IEV4cHJTdGF0ZW1lbnQKLSV0eXBlIDxzdGF0ZW1lbnROb2RlPiAgIElmU3RhdGVt
ZW50IEl0ZXJhdGlvblN0YXRlbWVudCBDb250aW51ZVN0YXRlbWVudAotJXR5cGUgPHN0YXRlbWVu
dE5vZGU+ICAgQnJlYWtTdGF0ZW1lbnQgUmV0dXJuU3RhdGVtZW50IFdpdGhTdGF0ZW1lbnQKLSV0
eXBlIDxzdGF0ZW1lbnROb2RlPiAgIFN3aXRjaFN0YXRlbWVudCBMYWJlbGxlZFN0YXRlbWVudAot
JXR5cGUgPHN0YXRlbWVudE5vZGU+ICAgVGhyb3dTdGF0ZW1lbnQgVHJ5U3RhdGVtZW50Ci0ldHlw
ZSA8c3RhdGVtZW50Tm9kZT4gICBEZWJ1Z2dlclN0YXRlbWVudAotCi0ldHlwZSA8ZXhwcmVzc2lv
bk5vZGU+ICBJbml0aWFsaXplciBJbml0aWFsaXplck5vSW4KLSV0eXBlIDxzdGF0ZW1lbnROb2Rl
PiAgIEZ1bmN0aW9uRGVjbGFyYXRpb24KLSV0eXBlIDxmdW5jRXhwck5vZGU+ICAgIEZ1bmN0aW9u
RXhwcgotJXR5cGUgPGZ1bmN0aW9uQm9keU5vZGU+IEZ1bmN0aW9uQm9keQotJXR5cGUgPHNvdXJj
ZUVsZW1lbnRzPiAgU291cmNlRWxlbWVudHMKLSV0eXBlIDxwYXJhbWV0ZXJMaXN0PiAgIEZvcm1h
bFBhcmFtZXRlckxpc3QKLSV0eXBlIDxvcD4gICAgICAgICAgICAgIEFzc2lnbm1lbnRPcGVyYXRv
cgotJXR5cGUgPGFyZ3VtZW50c05vZGU+ICAgQXJndW1lbnRzCi0ldHlwZSA8YXJndW1lbnRMaXN0
PiAgICBBcmd1bWVudExpc3QKLSV0eXBlIDx2YXJEZWNsTGlzdD4gICAgIFZhcmlhYmxlRGVjbGFy
YXRpb25MaXN0IFZhcmlhYmxlRGVjbGFyYXRpb25MaXN0Tm9JbgotJXR5cGUgPGNvbnN0RGVjbExp
c3Q+ICAgQ29uc3REZWNsYXJhdGlvbkxpc3QKLSV0eXBlIDxjb25zdERlY2xOb2RlPiAgIENvbnN0
RGVjbGFyYXRpb24KLSV0eXBlIDxjYXNlQmxvY2tOb2RlPiAgIENhc2VCbG9jawotJXR5cGUgPGNh
c2VDbGF1c2VOb2RlPiAgQ2FzZUNsYXVzZSBEZWZhdWx0Q2xhdXNlCi0ldHlwZSA8Y2xhdXNlTGlz
dD4gICAgICBDYXNlQ2xhdXNlcyBDYXNlQ2xhdXNlc09wdAotJXR5cGUgPGludFZhbHVlPiAgICAg
ICAgRWxpc2lvbiBFbGlzaW9uT3B0Ci0ldHlwZSA8ZWxlbWVudExpc3Q+ICAgICBFbGVtZW50TGlz
dAotJXR5cGUgPHByb3BlcnR5Tm9kZT4gICAgUHJvcGVydHkKLSV0eXBlIDxwcm9wZXJ0eUxpc3Q+
ICAgIFByb3BlcnR5TGlzdAotJSUKLQotLy8gRklYTUU6IFRoZXJlIGFyZSBjdXJyZW50bHkgdHdv
IHZlcnNpb25zIG9mIHRoZSBncmFtbWFyIGluIHRoaXMgZmlsZSwgdGhlIG5vcm1hbCBvbmUsIGFu
ZCB0aGUgTm9Ob2RlcyB2ZXJzaW9uIHVzZWQgZm9yCi0vLyBsYXp5IHJlY29tcGlsYXRpb24gb2Yg
RnVuY3Rpb25Cb2R5Tm9kZXMuICBXZSBzaG91bGQgbW92ZSB0byBnZW5lcmF0aW5nIHRoZSB0d28g
dmVyc2lvbnMgZnJvbSBhIHNjcmlwdCB0byBhdm9pZCBidWdzLgotLy8gSW4gdGhlIG1lYW4gdGlt
ZSwgbWFrZSBzdXJlIHRvIG1ha2UgYW55IGNoYW5nZXMgdG8gdGhlIGdyYW1tYXIgaW4gYm90aCB2
ZXJzaW9ucy4KLQotTGl0ZXJhbDoKLSAgICBOVUxMVE9LRU4gICAgICAgICAgICAgICAgICAgICAg
ICAgICB7ICQkID0gY3JlYXRlTm9kZUluZm88RXhwcmVzc2lvbk5vZGUqPihuZXcgKEdMT0JBTF9E
QVRBKSBOdWxsTm9kZShHTE9CQUxfREFUQSksIDAsIDEpOyB9Ci0gIHwgVFJVRVRPS0VOICAgICAg
ICAgICAgICAgICAgICAgICAgICAgeyAkJCA9IGNyZWF0ZU5vZGVJbmZvPEV4cHJlc3Npb25Ob2Rl
Kj4obmV3IChHTE9CQUxfREFUQSkgQm9vbGVhbk5vZGUoR0xPQkFMX0RBVEEsIHRydWUpLCAwLCAx
KTsgfQotICB8IEZBTFNFVE9LRU4gICAgICAgICAgICAgICAgICAgICAgICAgIHsgJCQgPSBjcmVh
dGVOb2RlSW5mbzxFeHByZXNzaW9uTm9kZSo+KG5ldyAoR0xPQkFMX0RBVEEpIEJvb2xlYW5Ob2Rl
KEdMT0JBTF9EQVRBLCBmYWxzZSksIDAsIDEpOyB9Ci0gIHwgTlVNQkVSICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgeyAkJCA9IGNyZWF0ZU5vZGVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obWFr
ZU51bWJlck5vZGUoR0xPQkFMX0RBVEEsICQxKSwgMCwgMSk7IH0KLSAgfCBTVFJJTkcgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB7ICQkID0gY3JlYXRlTm9kZUluZm88RXhwcmVzc2lvbk5v
ZGUqPihuZXcgKEdMT0JBTF9EQVRBKSBTdHJpbmdOb2RlKEdMT0JBTF9EQVRBLCAqJDEpLCAwLCAx
KTsgfQotICB8ICcvJyAvKiByZWdleHAgKi8gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGV4ZXImIGwgPSAqR0xPQkFMX0RB
VEEtPmxleGVyOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
b25zdCBJZGVudGlmaWVyKiBwYXR0ZXJuOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjb25zdCBJZGVudGlmaWVyKiBmbGFnczsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFsLnNjYW5SZWdFeHAocGF0dGVybiwgZmxh
Z3MpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWVlB
Qk9SVDsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVnRXhw
Tm9kZSogbm9kZSA9IG5ldyAoR0xPQkFMX0RBVEEpIFJlZ0V4cE5vZGUoR0xPQkFMX0RBVEEsICpw
YXR0ZXJuLCAqZmxhZ3MpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBpbnQgc2l6ZSA9IHBhdHRlcm4tPnNpemUoKSArIDI7IC8vICsgMiBmb3IgdGhlIHR3byAv
J3MKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0RXhjZXB0
aW9uTG9jYXRpb24obm9kZSwgQDEuZmlyc3RfY29sdW1uLCBAMS5maXJzdF9jb2x1bW4gKyBzaXpl
LCBAMS5maXJzdF9jb2x1bW4gKyBzaXplKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgJCQgPSBjcmVhdGVOb2RlSW5mbzxFeHByZXNzaW9uTm9kZSo+KG5vZGUs
IDAsIDApOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgfCBE
SVZFUVVBTCAvKiByZWdleHAgd2l0aCAvPSAqLyAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIExleGVyJiBsID0gKkdMT0JBTF9EQVRBLT5sZXhlcjsK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgSWRlbnRp
ZmllciogcGF0dGVybjsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY29uc3QgSWRlbnRpZmllciogZmxhZ3M7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGlmICghbC5zY2FuUmVnRXhwKHBhdHRlcm4sIGZsYWdzLCAnPScpKQot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWVlBQk9SVDsK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVnRXhwTm9kZSog
bm9kZSA9IG5ldyAoR0xPQkFMX0RBVEEpIFJlZ0V4cE5vZGUoR0xPQkFMX0RBVEEsICpwYXR0ZXJu
LCAqZmxhZ3MpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
bnQgc2l6ZSA9IHBhdHRlcm4tPnNpemUoKSArIDI7IC8vICsgMiBmb3IgdGhlIHR3byAvJ3MKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0RXhjZXB0aW9uTG9j
YXRpb24obm9kZSwgQDEuZmlyc3RfY29sdW1uLCBAMS5maXJzdF9jb2x1bW4gKyBzaXplLCBAMS5m
aXJzdF9jb2x1bW4gKyBzaXplKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgJCQgPSBjcmVhdGVOb2RlSW5mbzxFeHByZXNzaW9uTm9kZSo+KG5vZGUsIDAsIDAp
OwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLTsKLQotUHJvcGVy
dHk6Ci0gICAgSURFTlQgJzonIEFzc2lnbm1lbnRFeHByICAgICAgICAgICAgeyAkJCA9IGNyZWF0
ZU5vZGVJbmZvPFByb3BlcnR5Tm9kZSo+KG5ldyAoR0xPQkFMX0RBVEEpIFByb3BlcnR5Tm9kZShH
TE9CQUxfREFUQSwgKiQxLCAkMy5tX25vZGUsIFByb3BlcnR5Tm9kZTo6Q29uc3RhbnQpLCAkMy5t
X2ZlYXR1cmVzLCAkMy5tX251bUNvbnN0YW50cyk7IH0KLSAgfCBTVFJJTkcgJzonIEFzc2lnbm1l
bnRFeHByICAgICAgICAgICB7ICQkID0gY3JlYXRlTm9kZUluZm88UHJvcGVydHlOb2RlKj4obmV3
IChHTE9CQUxfREFUQSkgUHJvcGVydHlOb2RlKEdMT0JBTF9EQVRBLCAqJDEsICQzLm1fbm9kZSwg
UHJvcGVydHlOb2RlOjpDb25zdGFudCksICQzLm1fZmVhdHVyZXMsICQzLm1fbnVtQ29uc3RhbnRz
KTsgfQotICB8IE5VTUJFUiAnOicgQXNzaWdubWVudEV4cHIgICAgICAgICAgIHsgJCQgPSBjcmVh
dGVOb2RlSW5mbzxQcm9wZXJ0eU5vZGUqPihuZXcgKEdMT0JBTF9EQVRBKSBQcm9wZXJ0eU5vZGUo
R0xPQkFMX0RBVEEsICQxLCAkMy5tX25vZGUsIFByb3BlcnR5Tm9kZTo6Q29uc3RhbnQpLCAkMy5t
X2ZlYXR1cmVzLCAkMy5tX251bUNvbnN0YW50cyk7IH0KLSAgfCBJREVOVCBJREVOVCAnKCcgJykn
IE9QRU5CUkFDRSBGdW5jdGlvbkJvZHkgQ0xPU0VCUkFDRSAgICB7ICQkID0gY3JlYXRlTm9kZUlu
Zm88UHJvcGVydHlOb2RlKj4obWFrZUdldHRlck9yU2V0dGVyUHJvcGVydHlOb2RlKEdMT0JBTF9E
QVRBLCAqJDEsICokMiwgMCwgJDYsIEdMT0JBTF9EQVRBLT5sZXhlci0+c291cmNlQ29kZSgkNSwg
JDcsIEA1LmZpcnN0X2xpbmUpKSwgQ2xvc3VyZUZlYXR1cmUsIDApOyBzZXRTdGF0ZW1lbnRMb2Nh
dGlvbigkNiwgQDUsIEA3KTsgaWYgKCEkJC5tX25vZGUpIFlZQUJPUlQ7IH0KLSAgfCBJREVOVCBJ
REVOVCAnKCcgRm9ybWFsUGFyYW1ldGVyTGlzdCAnKScgT1BFTkJSQUNFIEZ1bmN0aW9uQm9keSBD
TE9TRUJSQUNFCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAkJCA9IGNyZWF0ZU5vZGVJbmZvPFByb3BlcnR5Tm9k
ZSo+KG1ha2VHZXR0ZXJPclNldHRlclByb3BlcnR5Tm9kZShHTE9CQUxfREFUQSwgKiQxLCAqJDIs
ICQ0Lm1fbm9kZS5oZWFkLCAkNywgR0xPQkFMX0RBVEEtPmxleGVyLT5zb3VyY2VDb2RlKCQ2LCAk
OCwgQDYuZmlyc3RfbGluZSkpLCAkNC5tX2ZlYXR1cmVzIHwgQ2xvc3VyZUZlYXR1cmUsIDApOyAK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaWYgKCQ0Lm1fZmVhdHVyZXMgJiBBcmd1bWVudHNGZWF0dXJlKQotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgJDctPnNldFVzZXNBcmd1bWVudHMoKTsgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFN0YXRlbWVudExvY2F0aW9u
KCQ3LCBANiwgQDgpOyAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCEkJC5tX25vZGUpIAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWVlB
Qk9SVDsgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfQotOwotCi1Qcm9wZXJ0eUxpc3Q6Ci0gICAgUHJvcGVydHkgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgeyAkJC5tX25vZGUuaGVhZCA9IG5ldyAoR0xPQkFMX0RBVEEpIFBy
b3BlcnR5TGlzdE5vZGUoR0xPQkFMX0RBVEEsICQxLm1fbm9kZSk7IAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgJCQubV9ub2RlLnRhaWwgPSAkJC5tX25vZGUuaGVh
ZDsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQkLm1fZmVhdHVy
ZXMgPSAkMS5tX2ZlYXR1cmVzOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgJCQubV9udW1Db25zdGFudHMgPSAkMS5tX251bUNvbnN0YW50czsgfQotICB8IFByb3Bl
cnR5TGlzdCAnLCcgUHJvcGVydHkgICAgICAgICAgIHsgJCQubV9ub2RlLmhlYWQgPSAkMS5tX25v
ZGUuaGVhZDsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQkLm1f
bm9kZS50YWlsID0gbmV3IChHTE9CQUxfREFUQSkgUHJvcGVydHlMaXN0Tm9kZShHTE9CQUxfREFU
QSwgJDMubV9ub2RlLCAkMS5tX25vZGUudGFpbCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAkJC5tX2ZlYXR1cmVzID0gJDEubV9mZWF0dXJlcyB8ICQzLm1fZmVh
dHVyZXM7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkJC5tX251
bUNvbnN0YW50cyA9ICQxLm1fbnVtQ29uc3RhbnRzICsgJDMubV9udW1Db25zdGFudHM7IH0KLTsK
LQotUHJpbWFyeUV4cHI6Ci0gICAgUHJpbWFyeUV4cHJOb0JyYWNlCi0gIHwgT1BFTkJSQUNFIENM
T1NFQlJBQ0UgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgJCQgPSBjcmVhdGVOb2RlSW5m
bzxFeHByZXNzaW9uTm9kZSo+KG5ldyAoR0xPQkFMX0RBVEEpIE9iamVjdExpdGVyYWxOb2RlKEdM
T0JBTF9EQVRBKSwgMCwgMCk7IH0KLSAgfCBPUEVOQlJBQ0UgUHJvcGVydHlMaXN0IENMT1NFQlJB
Q0UgICAgICAgICAgICAgICAgeyAkJCA9IGNyZWF0ZU5vZGVJbmZvPEV4cHJlc3Npb25Ob2RlKj4o
bmV3IChHTE9CQUxfREFUQSkgT2JqZWN0TGl0ZXJhbE5vZGUoR0xPQkFMX0RBVEEsICQyLm1fbm9k
ZS5oZWFkKSwgJDIubV9mZWF0dXJlcywgJDIubV9udW1Db25zdGFudHMpOyB9Ci0gIC8qIGFsbG93
IGV4dHJhIGNvbW1hLCBzZWUgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NTkzOSAqLwotICB8IE9QRU5CUkFDRSBQcm9wZXJ0eUxpc3QgJywnIENMT1NFQlJBQ0UgICAgICAg
ICAgICB7ICQkID0gY3JlYXRlTm9kZUluZm88RXhwcmVzc2lvbk5vZGUqPihuZXcgKEdMT0JBTF9E
QVRBKSBPYmplY3RMaXRlcmFsTm9kZShHTE9CQUxfREFUQSwgJDIubV9ub2RlLmhlYWQpLCAkMi5t
X2ZlYXR1cmVzLCAkMi5tX251bUNvbnN0YW50cyk7IH0KLTsKLQotUHJpbWFyeUV4cHJOb0JyYWNl
OgotICAgIFRISVNUT0tFTiAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgJCQgPSBjcmVhdGVO
b2RlSW5mbzxFeHByZXNzaW9uTm9kZSo+KG5ldyAoR0xPQkFMX0RBVEEpIFRoaXNOb2RlKEdMT0JB
TF9EQVRBKSwgVGhpc0ZlYXR1cmUsIDApOyB9Ci0gIHwgTGl0ZXJhbAotICB8IEFycmF5TGl0ZXJh
bAotICB8IElERU5UICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgJCQgPSBjcmVhdGVO
b2RlSW5mbzxFeHByZXNzaW9uTm9kZSo+KG5ldyAoR0xPQkFMX0RBVEEpIFJlc29sdmVOb2RlKEdM
T0JBTF9EQVRBLCAqJDEsIEAxLmZpcnN0X2NvbHVtbiksICgqJDEgPT0gR0xPQkFMX0RBVEEtPnBy
b3BlcnR5TmFtZXMtPmFyZ3VtZW50cykgPyBBcmd1bWVudHNGZWF0dXJlIDogMCwgMCk7IH0KLSAg
fCAnKCcgRXhwciAnKScgICAgICAgICAgICAgICAgICAgICAgICB7ICQkID0gJDI7IH0KLTsKLQot
QXJyYXlMaXRlcmFsOgotICAgICdbJyBFbGlzaW9uT3B0ICddJyAgICAgICAgICAgICAgICAgIHsg
JCQgPSBjcmVhdGVOb2RlSW5mbzxFeHByZXNzaW9uTm9kZSo+KG5ldyAoR0xPQkFMX0RBVEEpIEFy
cmF5Tm9kZShHTE9CQUxfREFUQSwgJDIpLCAwLCAkMiA/IDEgOiAwKTsgfQotICB8ICdbJyBFbGVt
ZW50TGlzdCAnXScgICAgICAgICAgICAgICAgIHsgJCQgPSBjcmVhdGVOb2RlSW5mbzxFeHByZXNz
aW9uTm9kZSo+KG5ldyAoR0xPQkFMX0RBVEEpIEFycmF5Tm9kZShHTE9CQUxfREFUQSwgJDIubV9u
b2RlLmhlYWQpLCAkMi5tX2ZlYXR1cmVzLCAkMi5tX251bUNvbnN0YW50cyk7IH0KLSAgfCAnWycg
RWxlbWVudExpc3QgJywnIEVsaXNpb25PcHQgJ10nICB7ICQkID0gY3JlYXRlTm9kZUluZm88RXhw
cmVzc2lvbk5vZGUqPihuZXcgKEdMT0JBTF9EQVRBKSBBcnJheU5vZGUoR0xPQkFMX0RBVEEsICQ0
LCAkMi5tX25vZGUuaGVhZCksICQyLm1fZmVhdHVyZXMsICQ0ID8gJDIubV9udW1Db25zdGFudHMg
KyAxIDogJDIubV9udW1Db25zdGFudHMpOyB9Ci07Ci0KLUVsZW1lbnRMaXN0OgotICAgIEVsaXNp
b25PcHQgQXNzaWdubWVudEV4cHIgICAgICAgICAgIHsgJCQubV9ub2RlLmhlYWQgPSBuZXcgKEdM
T0JBTF9EQVRBKSBFbGVtZW50Tm9kZShHTE9CQUxfREFUQSwgJDEsICQyLm1fbm9kZSk7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkJC5tX25vZGUudGFpbCA9ICQk
Lm1fbm9kZS5oZWFkOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
JCQubV9mZWF0dXJlcyA9ICQyLm1fZmVhdHVyZXM7Ci0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAkJC5tX251bUNvbnN0YW50cyA9ICQyLm1fbnVtQ29uc3RhbnRzOyB9
Ci0gIHwgRWxlbWVudExpc3QgJywnIEVsaXNpb25PcHQgQXNzaWdubWVudEV4cHIKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ICQkLm1fbm9kZS5oZWFkID0gJDEubV9u
b2RlLmhlYWQ7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkJC5t
X25vZGUudGFpbCA9IG5ldyAoR0xPQkFMX0RBVEEpIEVsZW1lbnROb2RlKEdMT0JBTF9EQVRBLCAk
MS5tX25vZGUudGFpbCwgJDMsICQ0Lm1fbm9kZSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAkJC5tX2ZlYXR1cmVzID0gJDEubV9mZWF0dXJlcyB8ICQ0Lm1fZmVh
dHVyZXM7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkJC5tX251
bUNvbnN0YW50cyA9ICQxLm1fbnVtQ29uc3RhbnRzICsgJDQubV9udW1Db25zdGFudHM7IH0KLTsK
LQotRWxpc2lvbk9wdDoKLSAgICAvKiBub3RoaW5nICovICAgICAgICAgICAgICAgICAgICAgICB7
ICQkID0gMDsgfQotICB8IEVsaXNpb24KLTsKLQotRWxpc2lvbjoKLSAgICAnLCcgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB7ICQkID0gMTsgfQotICB8IEVsaXNpb24gJywnICAgICAg
ICAgICAgICAgICAgICAgICAgIHsgJCQgPSAkMSArIDE7IH0KLTsKLQotTWVtYmVyRXhwcjoKLSAg
ICBQcmltYXJ5RXhwcgotICB8IEZ1bmN0aW9uRXhwciAgICAgICAgICAgICAgICAgICAgICAgIHsg
JCQgPSBjcmVhdGVOb2RlSW5mbzxFeHByZXNzaW9uTm9kZSo+KCQxLm1fbm9kZSwgJDEubV9mZWF0
dXJlcywgJDEubV9udW1Db25zdGFudHMpOyB9Ci0gIHwgTWVtYmVyRXhwciAnWycgRXhwciAnXScg
ICAgICAgICAgICAgeyBCcmFja2V0QWNjZXNzb3JOb2RlKiBub2RlID0gbmV3IChHTE9CQUxfREFU
QSkgQnJhY2tldEFjY2Vzc29yTm9kZShHTE9CQUxfREFUQSwgJDEubV9ub2RlLCAkMy5tX25vZGUs
ICQzLm1fZmVhdHVyZXMgJiBBc3NpZ25GZWF0dXJlKTsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHNldEV4Y2VwdGlvbkxvY2F0aW9uKG5vZGUsIEAxLmZpcnN0X2Nv
bHVtbiwgQDEubGFzdF9jb2x1bW4sIEA0Lmxhc3RfY29sdW1uKTsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICQkID0gY3JlYXRlTm9kZUluZm88RXhwcmVzc2lvbk5v
ZGUqPihub2RlLCAkMS5tX2ZlYXR1cmVzIHwgJDMubV9mZWF0dXJlcywgJDEubV9udW1Db25zdGFu
dHMgKyAkMy5tX251bUNvbnN0YW50cyk7IAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIH0KLSAgfCBNZW1iZXJFeHByICcuJyBJREVOVCAgICAgICAgICAgICAgICB7IERv
dEFjY2Vzc29yTm9kZSogbm9kZSA9IG5ldyAoR0xPQkFMX0RBVEEpIERvdEFjY2Vzc29yTm9kZShH
TE9CQUxfREFUQSwgJDEubV9ub2RlLCAqJDMpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgc2V0RXhjZXB0aW9uTG9jYXRpb24obm9kZSwgQDEuZmlyc3RfY29sdW1u
LCBAMS5sYXN0X2NvbHVtbiwgQDMubGFzdF9jb2x1bW4pOwotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgJCQgPSBjcmVhdGVOb2RlSW5mbzxFeHByZXNzaW9uTm9kZSo+
KG5vZGUsICQxLm1fZmVhdHVyZXMsICQxLm1fbnVtQ29uc3RhbnRzKTsKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gIHwgTkVXIE1lbWJlckV4cHIgQXJndW1lbnRz
ICAgICAgICAgICAgeyBOZXdFeHByTm9kZSogbm9kZSA9IG5ldyAoR0xPQkFMX0RBVEEpIE5ld0V4
cHJOb2RlKEdMT0JBTF9EQVRBLCAkMi5tX25vZGUsICQzLm1fbm9kZSk7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRFeGNlcHRpb25Mb2NhdGlvbihub2RlLCBA
MS5maXJzdF9jb2x1bW4sIEAyLmxhc3RfY29sdW1uLCBAMy5sYXN0X2NvbHVtbik7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkJCA9IGNyZWF0ZU5vZGVJbmZvPEV4
cHJlc3Npb25Ob2RlKj4obm9kZSwgJDIubV9mZWF0dXJlcyB8ICQzLm1fZmVhdHVyZXMsICQyLm1f
bnVtQ29uc3RhbnRzICsgJDMubV9udW1Db25zdGFudHMpOwotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIH0KLTsKLQotTWVtYmVyRXhwck5vQkY6Ci0gICAgUHJpbWFyeUV4
cHJOb0JyYWNlCi0gIHwgTWVtYmVyRXhwck5vQkYgJ1snIEV4cHIgJ10nICAgICAgICAgeyBCcmFj
a2V0QWNjZXNzb3JOb2RlKiBub2RlID0gbmV3IChHTE9CQUxfREFUQSkgQnJhY2tldEFjY2Vzc29y
Tm9kZShHTE9CQUxfREFUQSwgJDEubV9ub2RlLCAkMy5tX25vZGUsICQzLm1fZmVhdHVyZXMgJiBB
c3NpZ25GZWF0dXJlKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHNldEV4Y2VwdGlvbkxvY2F0aW9uKG5vZGUsIEAxLmZpcnN0X2NvbHVtbiwgQDEubGFzdF9jb2x1
bW4sIEA0Lmxhc3RfY29sdW1uKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICQkID0gY3JlYXRlTm9kZUluZm88RXhwcmVzc2lvbk5vZGUqPihub2RlLCAkMS5tX2Zl
YXR1cmVzIHwgJDMubV9mZWF0dXJlcywgJDEubV9udW1Db25zdGFudHMgKyAkMy5tX251bUNvbnN0
YW50cyk7IAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgfCBN
ZW1iZXJFeHByTm9CRiAnLicgSURFTlQgICAgICAgICAgICB7IERvdEFjY2Vzc29yTm9kZSogbm9k
ZSA9IG5ldyAoR0xPQkFMX0RBVEEpIERvdEFjY2Vzc29yTm9kZShHTE9CQUxfREFUQSwgJDEubV9u
b2RlLCAqJDMpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0
RXhjZXB0aW9uTG9jYXRpb24obm9kZSwgQDEuZmlyc3RfY29sdW1uLCBAMS5sYXN0X2NvbHVtbiwg
QDMubGFzdF9jb2x1bW4pOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgJCQgPSBjcmVhdGVOb2RlSW5mbzxFeHByZXNzaW9uTm9kZSo+KG5vZGUsICQxLm1fZmVhdHVy
ZXMsICQxLm1fbnVtQ29uc3RhbnRzKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB9Ci0gIHwgTkVXIE1lbWJlckV4cHIgQXJndW1lbnRzICAgICAgICAgICAgeyBOZXdF
eHByTm9kZSogbm9kZSA9IG5ldyAoR0xPQkFMX0RBVEEpIE5ld0V4cHJOb2RlKEdMT0JBTF9EQVRB
LCAkMi5tX25vZGUsICQzLm1fbm9kZSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzZXRFeGNlcHRpb25Mb2NhdGlvbihub2RlLCBAMS5maXJzdF9jb2x1bW4sIEAy
Lmxhc3RfY29sdW1uLCBAMy5sYXN0X2NvbHVtbik7Ci0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAkJCA9IGNyZWF0ZU5vZGVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obm9k
ZSwgJDIubV9mZWF0dXJlcyB8ICQzLm1fZmVhdHVyZXMsICQyLm1fbnVtQ29uc3RhbnRzICsgJDMu
bV9udW1Db25zdGFudHMpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IH0KLTsKLQotTmV3RXhwcjoKLSAgICBNZW1iZXJFeHByCi0gIHwgTkVXIE5ld0V4cHIgICAgICAg
ICAgICAgICAgICAgICAgICAgeyBOZXdFeHByTm9kZSogbm9kZSA9IG5ldyAoR0xPQkFMX0RBVEEp
IE5ld0V4cHJOb2RlKEdMT0JBTF9EQVRBLCAkMi5tX25vZGUpOwotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc2V0RXhjZXB0aW9uTG9jYXRpb24obm9kZSwgQDEuZmly
c3RfY29sdW1uLCBAMi5sYXN0X2NvbHVtbiwgQDIubGFzdF9jb2x1bW4pOwotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCQgPSBjcmVhdGVOb2RlSW5mbzxFeHByZXNz
aW9uTm9kZSo+KG5vZGUsICQyLm1fZmVhdHVyZXMsICQyLm1fbnVtQ29uc3RhbnRzKTsgCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotOwotCi1OZXdFeHByTm9CRjoK
LSAgICBNZW1iZXJFeHByTm9CRgotICB8IE5FVyBOZXdFeHByICAgICAgICAgICAgICAgICAgICAg
ICAgIHsgTmV3RXhwck5vZGUqIG5vZGUgPSBuZXcgKEdMT0JBTF9EQVRBKSBOZXdFeHByTm9kZShH
TE9CQUxfREFUQSwgJDIubV9ub2RlKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHNldEV4Y2VwdGlvbkxvY2F0aW9uKG5vZGUsIEAxLmZpcnN0X2NvbHVtbiwgQDIu
bGFzdF9jb2x1bW4sIEAyLmxhc3RfY29sdW1uKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICQkID0gY3JlYXRlTm9kZUluZm88RXhwcmVzc2lvbk5vZGUqPihub2Rl
LCAkMi5tX2ZlYXR1cmVzLCAkMi5tX251bUNvbnN0YW50cyk7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfQotOwotCi1DYWxsRXhwcjoKLSAgICBNZW1iZXJFeHByIEFy
Z3VtZW50cyAgICAgICAgICAgICAgICB7ICQkID0gbWFrZUZ1bmN0aW9uQ2FsbE5vZGUoR0xPQkFM
X0RBVEEsICQxLCAkMiwgQDEuZmlyc3RfY29sdW1uLCBAMS5sYXN0X2NvbHVtbiwgQDIubGFzdF9j
b2x1bW4pOyB9Ci0gIHwgQ2FsbEV4cHIgQXJndW1lbnRzICAgICAgICAgICAgICAgICAgeyAkJCA9
IG1ha2VGdW5jdGlvbkNhbGxOb2RlKEdMT0JBTF9EQVRBLCAkMSwgJDIsIEAxLmZpcnN0X2NvbHVt
biwgQDEubGFzdF9jb2x1bW4sIEAyLmxhc3RfY29sdW1uKTsgfQotICB8IENhbGxFeHByICdbJyBF
eHByICddJyAgICAgICAgICAgICAgIHsgQnJhY2tldEFjY2Vzc29yTm9kZSogbm9kZSA9IG5ldyAo
R0xPQkFMX0RBVEEpIEJyYWNrZXRBY2Nlc3Nvck5vZGUoR0xPQkFMX0RBVEEsICQxLm1fbm9kZSwg
JDMubV9ub2RlLCAkMy5tX2ZlYXR1cmVzICYgQXNzaWduRmVhdHVyZSk7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRFeGNlcHRpb25Mb2NhdGlvbihub2RlLCBA
MS5maXJzdF9jb2x1bW4sIEAxLmxhc3RfY29sdW1uLCBANC5sYXN0X2NvbHVtbik7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkJCA9IGNyZWF0ZU5vZGVJbmZvPEV4
cHJlc3Npb25Ob2RlKj4obm9kZSwgJDEubV9mZWF0dXJlcyB8ICQzLm1fZmVhdHVyZXMsICQxLm1f
bnVtQ29uc3RhbnRzICsgJDMubV9udW1Db25zdGFudHMpOyAKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB9Ci0gIHwgQ2FsbEV4cHIgJy4nIElERU5UICAgICAgICAgICAg
ICAgICAgeyBEb3RBY2Nlc3Nvck5vZGUqIG5vZGUgPSBuZXcgKEdMT0JBTF9EQVRBKSBEb3RBY2Nl
c3Nvck5vZGUoR0xPQkFMX0RBVEEsICQxLm1fbm9kZSwgKiQzKTsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHNldEV4Y2VwdGlvbkxvY2F0aW9uKG5vZGUsIEAxLmZp
cnN0X2NvbHVtbiwgQDEubGFzdF9jb2x1bW4sIEAzLmxhc3RfY29sdW1uKTsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQkID0gY3JlYXRlTm9kZUluZm88RXhwcmVz
c2lvbk5vZGUqPihub2RlLCAkMS5tX2ZlYXR1cmVzLCAkMS5tX251bUNvbnN0YW50cyk7IH0KLTsK
LQotQ2FsbEV4cHJOb0JGOgotICAgIE1lbWJlckV4cHJOb0JGIEFyZ3VtZW50cyAgICAgICAgICAg
IHsgJCQgPSBtYWtlRnVuY3Rpb25DYWxsTm9kZShHTE9CQUxfREFUQSwgJDEsICQyLCBAMS5maXJz
dF9jb2x1bW4sIEAxLmxhc3RfY29sdW1uLCBAMi5sYXN0X2NvbHVtbik7IH0KLSAgfCBDYWxsRXhw
ck5vQkYgQXJndW1lbnRzICAgICAgICAgICAgICB7ICQkID0gbWFrZUZ1bmN0aW9uQ2FsbE5vZGUo
R0xPQkFMX0RBVEEsICQxLCAkMiwgQDEuZmlyc3RfY29sdW1uLCBAMS5sYXN0X2NvbHVtbiwgQDIu
bGFzdF9jb2x1bW4pOyB9Ci0gIHwgQ2FsbEV4cHJOb0JGICdbJyBFeHByICddJyAgICAgICAgICAg
eyBCcmFja2V0QWNjZXNzb3JOb2RlKiBub2RlID0gbmV3IChHTE9CQUxfREFUQSkgQnJhY2tldEFj
Y2Vzc29yTm9kZShHTE9CQUxfREFUQSwgJDEubV9ub2RlLCAkMy5tX25vZGUsICQzLm1fZmVhdHVy
ZXMgJiBBc3NpZ25GZWF0dXJlKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHNldEV4Y2VwdGlvbkxvY2F0aW9uKG5vZGUsIEAxLmZpcnN0X2NvbHVtbiwgQDEubGFz
dF9jb2x1bW4sIEA0Lmxhc3RfY29sdW1uKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICQkID0gY3JlYXRlTm9kZUluZm88RXhwcmVzc2lvbk5vZGUqPihub2RlLCAk
MS5tX2ZlYXR1cmVzIHwgJDMubV9mZWF0dXJlcywgJDEubV9udW1Db25zdGFudHMgKyAkMy5tX251
bUNvbnN0YW50cyk7IAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K
LSAgfCBDYWxsRXhwck5vQkYgJy4nIElERU5UICAgICAgICAgICAgICB7IERvdEFjY2Vzc29yTm9k
ZSogbm9kZSA9IG5ldyAoR0xPQkFMX0RBVEEpIERvdEFjY2Vzc29yTm9kZShHTE9CQUxfREFUQSwg
JDEubV9ub2RlLCAqJDMpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgc2V0RXhjZXB0aW9uTG9jYXRpb24obm9kZSwgQDEuZmlyc3RfY29sdW1uLCBAMS5sYXN0X2Nv
bHVtbiwgQDMubGFzdF9jb2x1bW4pOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgJCQgPSBjcmVhdGVOb2RlSW5mbzxFeHByZXNzaW9uTm9kZSo+KG5vZGUsICQxLm1f
ZmVhdHVyZXMsICQxLm1fbnVtQ29uc3RhbnRzKTsgCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfQotOwotCi1Bcmd1bWVudHM6Ci0gICAgJygnICcpJyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgeyAkJCA9IGNyZWF0ZU5vZGVJbmZvPEFyZ3VtZW50c05vZGUqPihu
ZXcgKEdMT0JBTF9EQVRBKSBBcmd1bWVudHNOb2RlKEdMT0JBTF9EQVRBKSwgMCwgMCk7IH0KLSAg
fCAnKCcgQXJndW1lbnRMaXN0ICcpJyAgICAgICAgICAgICAgICB7ICQkID0gY3JlYXRlTm9kZUlu
Zm88QXJndW1lbnRzTm9kZSo+KG5ldyAoR0xPQkFMX0RBVEEpIEFyZ3VtZW50c05vZGUoR0xPQkFM
X0RBVEEsICQyLm1fbm9kZS5oZWFkKSwgJDIubV9mZWF0dXJlcywgJDIubV9udW1Db25zdGFudHMp
OyB9Ci07Ci0KLUFyZ3VtZW50TGlzdDoKLSAgICBBc3NpZ25tZW50RXhwciAgICAgICAgICAgICAg
ICAgICAgICB7ICQkLm1fbm9kZS5oZWFkID0gbmV3IChHTE9CQUxfREFUQSkgQXJndW1lbnRMaXN0
Tm9kZShHTE9CQUxfREFUQSwgJDEubV9ub2RlKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICQkLm1fbm9kZS50YWlsID0gJCQubV9ub2RlLmhlYWQ7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkJC5tX2ZlYXR1cmVzID0gJDEubV9m
ZWF0dXJlczsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQkLm1f
bnVtQ29uc3RhbnRzID0gJDEubV9udW1Db25zdGFudHM7IH0KLSAgfCBBcmd1bWVudExpc3QgJywn
IEFzc2lnbm1lbnRFeHByICAgICB7ICQkLm1fbm9kZS5oZWFkID0gJDEubV9ub2RlLmhlYWQ7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkJC5tX25vZGUudGFpbCA9
IG5ldyAoR0xPQkFMX0RBVEEpIEFyZ3VtZW50TGlzdE5vZGUoR0xPQkFMX0RBVEEsICQxLm1fbm9k
ZS50YWlsLCAkMy5tX25vZGUpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgJCQubV9mZWF0dXJlcyA9ICQxLm1fZmVhdHVyZXMgfCAkMy5tX2ZlYXR1cmVzOwotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCQubV9udW1Db25zdGFudHMg
PSAkMS5tX251bUNvbnN0YW50cyArICQzLm1fbnVtQ29uc3RhbnRzOyB9Ci07Ci0KLUxlZnRIYW5k
U2lkZUV4cHI6Ci0gICAgTmV3RXhwcgotICB8IENhbGxFeHByCi07Ci0KLUxlZnRIYW5kU2lkZUV4
cHJOb0JGOgotICAgIE5ld0V4cHJOb0JGCi0gIHwgQ2FsbEV4cHJOb0JGCi07Ci0KLVBvc3RmaXhF
eHByOgotICAgIExlZnRIYW5kU2lkZUV4cHIKLSAgfCBMZWZ0SGFuZFNpZGVFeHByIFBMVVNQTFVT
ICAgICAgICAgICB7ICQkID0gY3JlYXRlTm9kZUluZm88RXhwcmVzc2lvbk5vZGUqPihtYWtlUG9z
dGZpeE5vZGUoR0xPQkFMX0RBVEEsICQxLm1fbm9kZSwgT3BQbHVzUGx1cywgQDEuZmlyc3RfY29s
dW1uLCBAMS5sYXN0X2NvbHVtbiwgQDIubGFzdF9jb2x1bW4pLCAkMS5tX2ZlYXR1cmVzIHwgQXNz
aWduRmVhdHVyZSwgJDEubV9udW1Db25zdGFudHMpOyB9Ci0gIHwgTGVmdEhhbmRTaWRlRXhwciBN
SU5VU01JTlVTICAgICAgICAgeyAkJCA9IGNyZWF0ZU5vZGVJbmZvPEV4cHJlc3Npb25Ob2RlKj4o
bWFrZVBvc3RmaXhOb2RlKEdMT0JBTF9EQVRBLCAkMS5tX25vZGUsIE9wTWludXNNaW51cywgQDEu
Zmlyc3RfY29sdW1uLCBAMS5sYXN0X2NvbHVtbiwgQDIubGFzdF9jb2x1bW4pLCAkMS5tX2ZlYXR1
cmVzIHwgQXNzaWduRmVhdHVyZSwgJDEubV9udW1Db25zdGFudHMpOyB9Ci07Ci0KLVBvc3RmaXhF
eHByTm9CRjoKLSAgICBMZWZ0SGFuZFNpZGVFeHByTm9CRgotICB8IExlZnRIYW5kU2lkZUV4cHJO
b0JGIFBMVVNQTFVTICAgICAgIHsgJCQgPSBjcmVhdGVOb2RlSW5mbzxFeHByZXNzaW9uTm9kZSo+
KG1ha2VQb3N0Zml4Tm9kZShHTE9CQUxfREFUQSwgJDEubV9ub2RlLCBPcFBsdXNQbHVzLCBAMS5m
aXJzdF9jb2x1bW4sIEAxLmxhc3RfY29sdW1uLCBAMi5sYXN0X2NvbHVtbiksICQxLm1fZmVhdHVy
ZXMgfCBBc3NpZ25GZWF0dXJlLCAkMS5tX251bUNvbnN0YW50cyk7IH0KLSAgfCBMZWZ0SGFuZFNp
ZGVFeHByTm9CRiBNSU5VU01JTlVTICAgICB7ICQkID0gY3JlYXRlTm9kZUluZm88RXhwcmVzc2lv
bk5vZGUqPihtYWtlUG9zdGZpeE5vZGUoR0xPQkFMX0RBVEEsICQxLm1fbm9kZSwgT3BNaW51c01p
bnVzLCBAMS5maXJzdF9jb2x1bW4sIEAxLmxhc3RfY29sdW1uLCBAMi5sYXN0X2NvbHVtbiksICQx
Lm1fZmVhdHVyZXMgfCBBc3NpZ25GZWF0dXJlLCAkMS5tX251bUNvbnN0YW50cyk7IH0KLTsKLQot
VW5hcnlFeHByQ29tbW9uOgotICAgIERFTEVURVRPS0VOIFVuYXJ5RXhwciAgICAgICAgICAgICAg
IHsgJCQgPSBjcmVhdGVOb2RlSW5mbzxFeHByZXNzaW9uTm9kZSo+KG1ha2VEZWxldGVOb2RlKEdM
T0JBTF9EQVRBLCAkMi5tX25vZGUsIEAxLmZpcnN0X2NvbHVtbiwgQDIubGFzdF9jb2x1bW4sIEAy
Lmxhc3RfY29sdW1uKSwgJDIubV9mZWF0dXJlcywgJDIubV9udW1Db25zdGFudHMpOyB9Ci0gIHwg
Vk9JRFRPS0VOIFVuYXJ5RXhwciAgICAgICAgICAgICAgICAgeyAkJCA9IGNyZWF0ZU5vZGVJbmZv
PEV4cHJlc3Npb25Ob2RlKj4obmV3IChHTE9CQUxfREFUQSkgVm9pZE5vZGUoR0xPQkFMX0RBVEEs
ICQyLm1fbm9kZSksICQyLm1fZmVhdHVyZXMsICQyLm1fbnVtQ29uc3RhbnRzICsgMSk7IH0KLSAg
fCBUWVBFT0YgVW5hcnlFeHByICAgICAgICAgICAgICAgICAgICB7ICQkID0gY3JlYXRlTm9kZUlu
Zm88RXhwcmVzc2lvbk5vZGUqPihtYWtlVHlwZU9mTm9kZShHTE9CQUxfREFUQSwgJDIubV9ub2Rl
KSwgJDIubV9mZWF0dXJlcywgJDIubV9udW1Db25zdGFudHMpOyB9Ci0gIHwgUExVU1BMVVMgVW5h
cnlFeHByICAgICAgICAgICAgICAgICAgeyAkJCA9IGNyZWF0ZU5vZGVJbmZvPEV4cHJlc3Npb25O
b2RlKj4obWFrZVByZWZpeE5vZGUoR0xPQkFMX0RBVEEsICQyLm1fbm9kZSwgT3BQbHVzUGx1cywg
QDEuZmlyc3RfY29sdW1uLCBAMi5maXJzdF9jb2x1bW4gKyAxLCBAMi5sYXN0X2NvbHVtbiksICQy
Lm1fZmVhdHVyZXMgfCBBc3NpZ25GZWF0dXJlLCAkMi5tX251bUNvbnN0YW50cyk7IH0KLSAgfCBB
VVRPUExVU1BMVVMgVW5hcnlFeHByICAgICAgICAgICAgICB7ICQkID0gY3JlYXRlTm9kZUluZm88
RXhwcmVzc2lvbk5vZGUqPihtYWtlUHJlZml4Tm9kZShHTE9CQUxfREFUQSwgJDIubV9ub2RlLCBP
cFBsdXNQbHVzLCBAMS5maXJzdF9jb2x1bW4sIEAyLmZpcnN0X2NvbHVtbiArIDEsIEAyLmxhc3Rf
Y29sdW1uKSwgJDIubV9mZWF0dXJlcyB8IEFzc2lnbkZlYXR1cmUsICQyLm1fbnVtQ29uc3RhbnRz
KTsgfQotICB8IE1JTlVTTUlOVVMgVW5hcnlFeHByICAgICAgICAgICAgICAgIHsgJCQgPSBjcmVh
dGVOb2RlSW5mbzxFeHByZXNzaW9uTm9kZSo+KG1ha2VQcmVmaXhOb2RlKEdMT0JBTF9EQVRBLCAk
Mi5tX25vZGUsIE9wTWludXNNaW51cywgQDEuZmlyc3RfY29sdW1uLCBAMi5maXJzdF9jb2x1bW4g
KyAxLCBAMi5sYXN0X2NvbHVtbiksICQyLm1fZmVhdHVyZXMgfCBBc3NpZ25GZWF0dXJlLCAkMi5t
X251bUNvbnN0YW50cyk7IH0KLSAgfCBBVVRPTUlOVVNNSU5VUyBVbmFyeUV4cHIgICAgICAgICAg
ICB7ICQkID0gY3JlYXRlTm9kZUluZm88RXhwcmVzc2lvbk5vZGUqPihtYWtlUHJlZml4Tm9kZShH
TE9CQUxfREFUQSwgJDIubV9ub2RlLCBPcE1pbnVzTWludXMsIEAxLmZpcnN0X2NvbHVtbiwgQDIu
Zmlyc3RfY29sdW1uICsgMSwgQDIubGFzdF9jb2x1bW4pLCAkMi5tX2ZlYXR1cmVzIHwgQXNzaWdu
RmVhdHVyZSwgJDIubV9udW1Db25zdGFudHMpOyB9Ci0gIHwgJysnIFVuYXJ5RXhwciAgICAgICAg
ICAgICAgICAgICAgICAgeyAkJCA9IGNyZWF0ZU5vZGVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obmV3
IChHTE9CQUxfREFUQSkgVW5hcnlQbHVzTm9kZShHTE9CQUxfREFUQSwgJDIubV9ub2RlKSwgJDIu
bV9mZWF0dXJlcywgJDIubV9udW1Db25zdGFudHMpOyB9Ci0gIHwgJy0nIFVuYXJ5RXhwciAgICAg
ICAgICAgICAgICAgICAgICAgeyAkJCA9IGNyZWF0ZU5vZGVJbmZvPEV4cHJlc3Npb25Ob2RlKj4o
bWFrZU5lZ2F0ZU5vZGUoR0xPQkFMX0RBVEEsICQyLm1fbm9kZSksICQyLm1fZmVhdHVyZXMsICQy
Lm1fbnVtQ29uc3RhbnRzKTsgfQotICB8ICd+JyBVbmFyeUV4cHIgICAgICAgICAgICAgICAgICAg
ICAgIHsgJCQgPSBjcmVhdGVOb2RlSW5mbzxFeHByZXNzaW9uTm9kZSo+KG1ha2VCaXR3aXNlTm90
Tm9kZShHTE9CQUxfREFUQSwgJDIubV9ub2RlKSwgJDIubV9mZWF0dXJlcywgJDIubV9udW1Db25z
dGFudHMpOyB9Ci0gIHwgJyEnIFVuYXJ5RXhwciAgICAgICAgICAgICAgICAgICAgICAgeyAkJCA9
IGNyZWF0ZU5vZGVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obmV3IChHTE9CQUxfREFUQSkgTG9naWNh
bE5vdE5vZGUoR0xPQkFMX0RBVEEsICQyLm1fbm9kZSksICQyLm1fZmVhdHVyZXMsICQyLm1fbnVt
Q29uc3RhbnRzKTsgfQotCi1VbmFyeUV4cHI6Ci0gICAgUG9zdGZpeEV4cHIKLSAgfCBVbmFyeUV4
cHJDb21tb24KLTsKLQotVW5hcnlFeHByTm9CRjoKLSAgICBQb3N0Zml4RXhwck5vQkYKLSAgfCBV
bmFyeUV4cHJDb21tb24KLTsKLQotTXVsdGlwbGljYXRpdmVFeHByOgotICAgIFVuYXJ5RXhwcgot
ICB8IE11bHRpcGxpY2F0aXZlRXhwciAnKicgVW5hcnlFeHByICAgIHsgJCQgPSBjcmVhdGVOb2Rl
SW5mbzxFeHByZXNzaW9uTm9kZSo+KG1ha2VNdWx0Tm9kZShHTE9CQUxfREFUQSwgJDEubV9ub2Rl
LCAkMy5tX25vZGUsICQzLm1fZmVhdHVyZXMgJiBBc3NpZ25GZWF0dXJlKSwgJDEubV9mZWF0dXJl
cyB8ICQzLm1fZmVhdHVyZXMsICQxLm1fbnVtQ29uc3RhbnRzICsgJDMubV9udW1Db25zdGFudHMp
OyB9Ci0gIHwgTXVsdGlwbGljYXRpdmVFeHByICcvJyBVbmFyeUV4cHIgICAgeyAkJCA9IGNyZWF0
ZU5vZGVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obWFrZURpdk5vZGUoR0xPQkFMX0RBVEEsICQxLm1f
bm9kZSwgJDMubV9ub2RlLCAkMy5tX2ZlYXR1cmVzICYgQXNzaWduRmVhdHVyZSksICQxLm1fZmVh
dHVyZXMgfCAkMy5tX2ZlYXR1cmVzLCAkMS5tX251bUNvbnN0YW50cyArICQzLm1fbnVtQ29uc3Rh
bnRzKTsgfQotICB8IE11bHRpcGxpY2F0aXZlRXhwciAnJScgVW5hcnlFeHByICAgIHsgJCQgPSBj
cmVhdGVOb2RlSW5mbzxFeHByZXNzaW9uTm9kZSo+KG5ldyAoR0xPQkFMX0RBVEEpIE1vZE5vZGUo
R0xPQkFMX0RBVEEsICQxLm1fbm9kZSwgJDMubV9ub2RlLCAkMy5tX2ZlYXR1cmVzICYgQXNzaWdu
RmVhdHVyZSksICQxLm1fZmVhdHVyZXMgfCAkMy5tX2ZlYXR1cmVzLCAkMS5tX251bUNvbnN0YW50
cyArICQzLm1fbnVtQ29uc3RhbnRzKTsgfQotOwotCi1NdWx0aXBsaWNhdGl2ZUV4cHJOb0JGOgot
ICAgIFVuYXJ5RXhwck5vQkYKLSAgfCBNdWx0aXBsaWNhdGl2ZUV4cHJOb0JGICcqJyBVbmFyeUV4
cHIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ICQkID0gY3JlYXRl
Tm9kZUluZm88RXhwcmVzc2lvbk5vZGUqPihtYWtlTXVsdE5vZGUoR0xPQkFMX0RBVEEsICQxLm1f
bm9kZSwgJDMubV9ub2RlLCAkMy5tX2ZlYXR1cmVzICYgQXNzaWduRmVhdHVyZSksICQxLm1fZmVh
dHVyZXMgfCAkMy5tX2ZlYXR1cmVzLCAkMS5tX251bUNvbnN0YW50cyArICQzLm1fbnVtQ29uc3Rh
bnRzKTsgfQotICB8IE11bHRpcGxpY2F0aXZlRXhwck5vQkYgJy8nIFVuYXJ5RXhwcgotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgJCQgPSBjcmVhdGVOb2RlSW5mbzxF
eHByZXNzaW9uTm9kZSo+KG1ha2VEaXZOb2RlKEdMT0JBTF9EQVRBLCAkMS5tX25vZGUsICQzLm1f
bm9kZSwgJDMubV9mZWF0dXJlcyAmIEFzc2lnbkZlYXR1cmUpLCAkMS5tX2ZlYXR1cmVzIHwgJDMu
bV9mZWF0dXJlcywgJDEubV9udW1Db25zdGFudHMgKyAkMy5tX251bUNvbnN0YW50cyk7IH0KLSAg
fCBNdWx0aXBsaWNhdGl2ZUV4cHJOb0JGICclJyBVbmFyeUV4cHIKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB7ICQkID0gY3JlYXRlTm9kZUluZm88RXhwcmVzc2lvbk5v
ZGUqPihuZXcgKEdMT0JBTF9EQVRBKSBNb2ROb2RlKEdMT0JBTF9EQVRBLCAkMS5tX25vZGUsICQz
Lm1fbm9kZSwgJDMubV9mZWF0dXJlcyAmIEFzc2lnbkZlYXR1cmUpLCAkMS5tX2ZlYXR1cmVzIHwg
JDMubV9mZWF0dXJlcywgJDEubV9udW1Db25zdGFudHMgKyAkMy5tX251bUNvbnN0YW50cyk7IH0K
LTsKLQotQWRkaXRpdmVFeHByOgotICAgIE11bHRpcGxpY2F0aXZlRXhwcgotICB8IEFkZGl0aXZl
RXhwciAnKycgTXVsdGlwbGljYXRpdmVFeHByIHsgJCQgPSBjcmVhdGVOb2RlSW5mbzxFeHByZXNz
aW9uTm9kZSo+KG1ha2VBZGROb2RlKEdMT0JBTF9EQVRBLCAkMS5tX25vZGUsICQzLm1fbm9kZSwg
JDMubV9mZWF0dXJlcyAmIEFzc2lnbkZlYXR1cmUpLCAkMS5tX2ZlYXR1cmVzIHwgJDMubV9mZWF0
dXJlcywgJDEubV9udW1Db25zdGFudHMgKyAkMy5tX251bUNvbnN0YW50cyk7IH0KLSAgfCBBZGRp
dGl2ZUV4cHIgJy0nIE11bHRpcGxpY2F0aXZlRXhwciB7ICQkID0gY3JlYXRlTm9kZUluZm88RXhw
cmVzc2lvbk5vZGUqPihtYWtlU3ViTm9kZShHTE9CQUxfREFUQSwgJDEubV9ub2RlLCAkMy5tX25v
ZGUsICQzLm1fZmVhdHVyZXMgJiBBc3NpZ25GZWF0dXJlKSwgJDEubV9mZWF0dXJlcyB8ICQzLm1f
ZmVhdHVyZXMsICQxLm1fbnVtQ29uc3RhbnRzICsgJDMubV9udW1Db25zdGFudHMpOyB9Ci07Ci0K
LUFkZGl0aXZlRXhwck5vQkY6Ci0gICAgTXVsdGlwbGljYXRpdmVFeHByTm9CRgotICB8IEFkZGl0
aXZlRXhwck5vQkYgJysnIE11bHRpcGxpY2F0aXZlRXhwcgotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHsgJCQgPSBjcmVhdGVOb2RlSW5mbzxFeHByZXNzaW9uTm9kZSo+
KG1ha2VBZGROb2RlKEdMT0JBTF9EQVRBLCAkMS5tX25vZGUsICQzLm1fbm9kZSwgJDMubV9mZWF0
dXJlcyAmIEFzc2lnbkZlYXR1cmUpLCAkMS5tX2ZlYXR1cmVzIHwgJDMubV9mZWF0dXJlcywgJDEu
bV9udW1Db25zdGFudHMgKyAkMy5tX251bUNvbnN0YW50cyk7IH0KLSAgfCBBZGRpdGl2ZUV4cHJO
b0JGICctJyBNdWx0aXBsaWNhdGl2ZUV4cHIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB7ICQkID0gY3JlYXRlTm9kZUluZm88RXhwcmVzc2lvbk5vZGUqPihtYWtlU3Vi
Tm9kZShHTE9CQUxfREFUQSwgJDEubV9ub2RlLCAkMy5tX25vZGUsICQzLm1fZmVhdHVyZXMgJiBB
c3NpZ25GZWF0dXJlKSwgJDEubV9mZWF0dXJlcyB8ICQzLm1fZmVhdHVyZXMsICQxLm1fbnVtQ29u
c3RhbnRzICsgJDMubV9udW1Db25zdGFudHMpOyB9Ci07Ci0KLVNoaWZ0RXhwcjoKLSAgICBBZGRp
dGl2ZUV4cHIKLSAgfCBTaGlmdEV4cHIgTFNISUZUIEFkZGl0aXZlRXhwciAgICAgICB7ICQkID0g
Y3JlYXRlTm9kZUluZm88RXhwcmVzc2lvbk5vZGUqPihtYWtlTGVmdFNoaWZ0Tm9kZShHTE9CQUxf
REFUQSwgJDEubV9ub2RlLCAkMy5tX25vZGUsICQzLm1fZmVhdHVyZXMgJiBBc3NpZ25GZWF0dXJl
KSwgJDEubV9mZWF0dXJlcyB8ICQzLm1fZmVhdHVyZXMsICQxLm1fbnVtQ29uc3RhbnRzICsgJDMu
bV9udW1Db25zdGFudHMpOyB9Ci0gIHwgU2hpZnRFeHByIFJTSElGVCBBZGRpdGl2ZUV4cHIgICAg
ICAgeyAkJCA9IGNyZWF0ZU5vZGVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obWFrZVJpZ2h0U2hpZnRO
b2RlKEdMT0JBTF9EQVRBLCAkMS5tX25vZGUsICQzLm1fbm9kZSwgJDMubV9mZWF0dXJlcyAmIEFz
c2lnbkZlYXR1cmUpLCAkMS5tX2ZlYXR1cmVzIHwgJDMubV9mZWF0dXJlcywgJDEubV9udW1Db25z
dGFudHMgKyAkMy5tX251bUNvbnN0YW50cyk7IH0KLSAgfCBTaGlmdEV4cHIgVVJTSElGVCBBZGRp
dGl2ZUV4cHIgICAgICB7ICQkID0gY3JlYXRlTm9kZUluZm88RXhwcmVzc2lvbk5vZGUqPihuZXcg
KEdMT0JBTF9EQVRBKSBVbnNpZ25lZFJpZ2h0U2hpZnROb2RlKEdMT0JBTF9EQVRBLCAkMS5tX25v
ZGUsICQzLm1fbm9kZSwgJDMubV9mZWF0dXJlcyAmIEFzc2lnbkZlYXR1cmUpLCAkMS5tX2ZlYXR1
cmVzIHwgJDMubV9mZWF0dXJlcywgJDEubV9udW1Db25zdGFudHMgKyAkMy5tX251bUNvbnN0YW50
cyk7IH0KLTsKLQotU2hpZnRFeHByTm9CRjoKLSAgICBBZGRpdGl2ZUV4cHJOb0JGCi0gIHwgU2hp
ZnRFeHByTm9CRiBMU0hJRlQgQWRkaXRpdmVFeHByICAgeyAkJCA9IGNyZWF0ZU5vZGVJbmZvPEV4
cHJlc3Npb25Ob2RlKj4obWFrZUxlZnRTaGlmdE5vZGUoR0xPQkFMX0RBVEEsICQxLm1fbm9kZSwg
JDMubV9ub2RlLCAkMy5tX2ZlYXR1cmVzICYgQXNzaWduRmVhdHVyZSksICQxLm1fZmVhdHVyZXMg
fCAkMy5tX2ZlYXR1cmVzLCAkMS5tX251bUNvbnN0YW50cyArICQzLm1fbnVtQ29uc3RhbnRzKTsg
fQotICB8IFNoaWZ0RXhwck5vQkYgUlNISUZUIEFkZGl0aXZlRXhwciAgIHsgJCQgPSBjcmVhdGVO
b2RlSW5mbzxFeHByZXNzaW9uTm9kZSo+KG1ha2VSaWdodFNoaWZ0Tm9kZShHTE9CQUxfREFUQSwg
JDEubV9ub2RlLCAkMy5tX25vZGUsICQzLm1fZmVhdHVyZXMgJiBBc3NpZ25GZWF0dXJlKSwgJDEu
bV9mZWF0dXJlcyB8ICQzLm1fZmVhdHVyZXMsICQxLm1fbnVtQ29uc3RhbnRzICsgJDMubV9udW1D
b25zdGFudHMpOyB9Ci0gIHwgU2hpZnRFeHByTm9CRiBVUlNISUZUIEFkZGl0aXZlRXhwciAgeyAk
JCA9IGNyZWF0ZU5vZGVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obmV3IChHTE9CQUxfREFUQSkgVW5z
aWduZWRSaWdodFNoaWZ0Tm9kZShHTE9CQUxfREFUQSwgJDEubV9ub2RlLCAkMy5tX25vZGUsICQz
Lm1fZmVhdHVyZXMgJiBBc3NpZ25GZWF0dXJlKSwgJDEubV9mZWF0dXJlcyB8ICQzLm1fZmVhdHVy
ZXMsICQxLm1fbnVtQ29uc3RhbnRzICsgJDMubV9udW1Db25zdGFudHMpOyB9Ci07Ci0KLVJlbGF0
aW9uYWxFeHByOgotICAgIFNoaWZ0RXhwcgotICB8IFJlbGF0aW9uYWxFeHByICc8JyBTaGlmdEV4
cHIgICAgICAgIHsgJCQgPSBjcmVhdGVOb2RlSW5mbzxFeHByZXNzaW9uTm9kZSo+KG5ldyAoR0xP
QkFMX0RBVEEpIExlc3NOb2RlKEdMT0JBTF9EQVRBLCAkMS5tX25vZGUsICQzLm1fbm9kZSwgJDMu
bV9mZWF0dXJlcyAmIEFzc2lnbkZlYXR1cmUpLCAkMS5tX2ZlYXR1cmVzIHwgJDMubV9mZWF0dXJl
cywgJDEubV9udW1Db25zdGFudHMgKyAkMy5tX251bUNvbnN0YW50cyk7IH0KLSAgfCBSZWxhdGlv
bmFsRXhwciAnPicgU2hpZnRFeHByICAgICAgICB7ICQkID0gY3JlYXRlTm9kZUluZm88RXhwcmVz
c2lvbk5vZGUqPihuZXcgKEdMT0JBTF9EQVRBKSBHcmVhdGVyTm9kZShHTE9CQUxfREFUQSwgJDEu
bV9ub2RlLCAkMy5tX25vZGUsICQzLm1fZmVhdHVyZXMgJiBBc3NpZ25GZWF0dXJlKSwgJDEubV9m
ZWF0dXJlcyB8ICQzLm1fZmVhdHVyZXMsICQxLm1fbnVtQ29uc3RhbnRzICsgJDMubV9udW1Db25z
dGFudHMpOyB9Ci0gIHwgUmVsYXRpb25hbEV4cHIgTEUgU2hpZnRFeHByICAgICAgICAgeyAkJCA9
IGNyZWF0ZU5vZGVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obmV3IChHTE9CQUxfREFUQSkgTGVzc0Vx
Tm9kZShHTE9CQUxfREFUQSwgJDEubV9ub2RlLCAkMy5tX25vZGUsICQzLm1fZmVhdHVyZXMgJiBB
c3NpZ25GZWF0dXJlKSwgJDEubV9mZWF0dXJlcyB8ICQzLm1fZmVhdHVyZXMsICQxLm1fbnVtQ29u
c3RhbnRzICsgJDMubV9udW1Db25zdGFudHMpOyB9Ci0gIHwgUmVsYXRpb25hbEV4cHIgR0UgU2hp
ZnRFeHByICAgICAgICAgeyAkJCA9IGNyZWF0ZU5vZGVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obmV3
IChHTE9CQUxfREFUQSkgR3JlYXRlckVxTm9kZShHTE9CQUxfREFUQSwgJDEubV9ub2RlLCAkMy5t
X25vZGUsICQzLm1fZmVhdHVyZXMgJiBBc3NpZ25GZWF0dXJlKSwgJDEubV9mZWF0dXJlcyB8ICQz
Lm1fZmVhdHVyZXMsICQxLm1fbnVtQ29uc3RhbnRzICsgJDMubV9udW1Db25zdGFudHMpOyB9Ci0g
IHwgUmVsYXRpb25hbEV4cHIgSU5TVEFOQ0VPRiBTaGlmdEV4cHIgeyBJbnN0YW5jZU9mTm9kZSog
bm9kZSA9IG5ldyAoR0xPQkFMX0RBVEEpIEluc3RhbmNlT2ZOb2RlKEdMT0JBTF9EQVRBLCAkMS5t
X25vZGUsICQzLm1fbm9kZSwgJDMubV9mZWF0dXJlcyAmIEFzc2lnbkZlYXR1cmUpOwotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0RXhjZXB0aW9uTG9jYXRpb24o
bm9kZSwgQDEuZmlyc3RfY29sdW1uLCBAMy5maXJzdF9jb2x1bW4sIEAzLmxhc3RfY29sdW1uKTsg
IAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCQgPSBjcmVhdGVO
b2RlSW5mbzxFeHByZXNzaW9uTm9kZSo+KG5vZGUsICQxLm1fZmVhdHVyZXMgfCAkMy5tX2ZlYXR1
cmVzLCAkMS5tX251bUNvbnN0YW50cyArICQzLm1fbnVtQ29uc3RhbnRzKTsgfQotICB8IFJlbGF0
aW9uYWxFeHByIElOVE9LRU4gU2hpZnRFeHByICAgIHsgSW5Ob2RlKiBub2RlID0gbmV3IChHTE9C
QUxfREFUQSkgSW5Ob2RlKEdMT0JBTF9EQVRBLCAkMS5tX25vZGUsICQzLm1fbm9kZSwgJDMubV9m
ZWF0dXJlcyAmIEFzc2lnbkZlYXR1cmUpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgc2V0RXhjZXB0aW9uTG9jYXRpb24obm9kZSwgQDEuZmlyc3RfY29sdW1uLCBA
My5maXJzdF9jb2x1bW4sIEAzLmxhc3RfY29sdW1uKTsgIAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgJCQgPSBjcmVhdGVOb2RlSW5mbzxFeHByZXNzaW9uTm9kZSo+
KG5vZGUsICQxLm1fZmVhdHVyZXMgfCAkMy5tX2ZlYXR1cmVzLCAkMS5tX251bUNvbnN0YW50cyAr
ICQzLm1fbnVtQ29uc3RhbnRzKTsgfQotOwotCi1SZWxhdGlvbmFsRXhwck5vSW46Ci0gICAgU2hp
ZnRFeHByCi0gIHwgUmVsYXRpb25hbEV4cHJOb0luICc8JyBTaGlmdEV4cHIgICAgeyAkJCA9IGNy
ZWF0ZU5vZGVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obmV3IChHTE9CQUxfREFUQSkgTGVzc05vZGUo
R0xPQkFMX0RBVEEsICQxLm1fbm9kZSwgJDMubV9ub2RlLCAkMy5tX2ZlYXR1cmVzICYgQXNzaWdu
RmVhdHVyZSksICQxLm1fZmVhdHVyZXMgfCAkMy5tX2ZlYXR1cmVzLCAkMS5tX251bUNvbnN0YW50
cyArICQzLm1fbnVtQ29uc3RhbnRzKTsgfQotICB8IFJlbGF0aW9uYWxFeHByTm9JbiAnPicgU2hp
ZnRFeHByICAgIHsgJCQgPSBjcmVhdGVOb2RlSW5mbzxFeHByZXNzaW9uTm9kZSo+KG5ldyAoR0xP
QkFMX0RBVEEpIEdyZWF0ZXJOb2RlKEdMT0JBTF9EQVRBLCAkMS5tX25vZGUsICQzLm1fbm9kZSwg
JDMubV9mZWF0dXJlcyAmIEFzc2lnbkZlYXR1cmUpLCAkMS5tX2ZlYXR1cmVzIHwgJDMubV9mZWF0
dXJlcywgJDEubV9udW1Db25zdGFudHMgKyAkMy5tX251bUNvbnN0YW50cyk7IH0KLSAgfCBSZWxh
dGlvbmFsRXhwck5vSW4gTEUgU2hpZnRFeHByICAgICB7ICQkID0gY3JlYXRlTm9kZUluZm88RXhw
cmVzc2lvbk5vZGUqPihuZXcgKEdMT0JBTF9EQVRBKSBMZXNzRXFOb2RlKEdMT0JBTF9EQVRBLCAk
MS5tX25vZGUsICQzLm1fbm9kZSwgJDMubV9mZWF0dXJlcyAmIEFzc2lnbkZlYXR1cmUpLCAkMS5t
X2ZlYXR1cmVzIHwgJDMubV9mZWF0dXJlcywgJDEubV9udW1Db25zdGFudHMgKyAkMy5tX251bUNv
bnN0YW50cyk7IH0KLSAgfCBSZWxhdGlvbmFsRXhwck5vSW4gR0UgU2hpZnRFeHByICAgICB7ICQk
ID0gY3JlYXRlTm9kZUluZm88RXhwcmVzc2lvbk5vZGUqPihuZXcgKEdMT0JBTF9EQVRBKSBHcmVh
dGVyRXFOb2RlKEdMT0JBTF9EQVRBLCAkMS5tX25vZGUsICQzLm1fbm9kZSwgJDMubV9mZWF0dXJl
cyAmIEFzc2lnbkZlYXR1cmUpLCAkMS5tX2ZlYXR1cmVzIHwgJDMubV9mZWF0dXJlcywgJDEubV9u
dW1Db25zdGFudHMgKyAkMy5tX251bUNvbnN0YW50cyk7IH0KLSAgfCBSZWxhdGlvbmFsRXhwck5v
SW4gSU5TVEFOQ0VPRiBTaGlmdEV4cHIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB7IEluc3RhbmNlT2ZOb2RlKiBub2RlID0gbmV3IChHTE9CQUxfREFUQSkgSW5zdGFu
Y2VPZk5vZGUoR0xPQkFMX0RBVEEsICQxLm1fbm9kZSwgJDMubV9ub2RlLCAkMy5tX2ZlYXR1cmVz
ICYgQXNzaWduRmVhdHVyZSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBzZXRFeGNlcHRpb25Mb2NhdGlvbihub2RlLCBAMS5maXJzdF9jb2x1bW4sIEAzLmZpcnN0
X2NvbHVtbiwgQDMubGFzdF9jb2x1bW4pOyAgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAkJCA9IGNyZWF0ZU5vZGVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obm9kZSwg
JDEubV9mZWF0dXJlcyB8ICQzLm1fZmVhdHVyZXMsICQxLm1fbnVtQ29uc3RhbnRzICsgJDMubV9u
dW1Db25zdGFudHMpOyB9Ci07Ci0KLVJlbGF0aW9uYWxFeHByTm9CRjoKLSAgICBTaGlmdEV4cHJO
b0JGCi0gIHwgUmVsYXRpb25hbEV4cHJOb0JGICc8JyBTaGlmdEV4cHIgICAgeyAkJCA9IGNyZWF0
ZU5vZGVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obmV3IChHTE9CQUxfREFUQSkgTGVzc05vZGUoR0xP
QkFMX0RBVEEsICQxLm1fbm9kZSwgJDMubV9ub2RlLCAkMy5tX2ZlYXR1cmVzICYgQXNzaWduRmVh
dHVyZSksICQxLm1fZmVhdHVyZXMgfCAkMy5tX2ZlYXR1cmVzLCAkMS5tX251bUNvbnN0YW50cyAr
ICQzLm1fbnVtQ29uc3RhbnRzKTsgfQotICB8IFJlbGF0aW9uYWxFeHByTm9CRiAnPicgU2hpZnRF
eHByICAgIHsgJCQgPSBjcmVhdGVOb2RlSW5mbzxFeHByZXNzaW9uTm9kZSo+KG5ldyAoR0xPQkFM
X0RBVEEpIEdyZWF0ZXJOb2RlKEdMT0JBTF9EQVRBLCAkMS5tX25vZGUsICQzLm1fbm9kZSwgJDMu
bV9mZWF0dXJlcyAmIEFzc2lnbkZlYXR1cmUpLCAkMS5tX2ZlYXR1cmVzIHwgJDMubV9mZWF0dXJl
cywgJDEubV9udW1Db25zdGFudHMgKyAkMy5tX251bUNvbnN0YW50cyk7IH0KLSAgfCBSZWxhdGlv
bmFsRXhwck5vQkYgTEUgU2hpZnRFeHByICAgICB7ICQkID0gY3JlYXRlTm9kZUluZm88RXhwcmVz
c2lvbk5vZGUqPihuZXcgKEdMT0JBTF9EQVRBKSBMZXNzRXFOb2RlKEdMT0JBTF9EQVRBLCAkMS5t
X25vZGUsICQzLm1fbm9kZSwgJDMubV9mZWF0dXJlcyAmIEFzc2lnbkZlYXR1cmUpLCAkMS5tX2Zl
YXR1cmVzIHwgJDMubV9mZWF0dXJlcywgJDEubV9udW1Db25zdGFudHMgKyAkMy5tX251bUNvbnN0
YW50cyk7IH0KLSAgfCBSZWxhdGlvbmFsRXhwck5vQkYgR0UgU2hpZnRFeHByICAgICB7ICQkID0g
Y3JlYXRlTm9kZUluZm88RXhwcmVzc2lvbk5vZGUqPihuZXcgKEdMT0JBTF9EQVRBKSBHcmVhdGVy
RXFOb2RlKEdMT0JBTF9EQVRBLCAkMS5tX25vZGUsICQzLm1fbm9kZSwgJDMubV9mZWF0dXJlcyAm
IEFzc2lnbkZlYXR1cmUpLCAkMS5tX2ZlYXR1cmVzIHwgJDMubV9mZWF0dXJlcywgJDEubV9udW1D
b25zdGFudHMgKyAkMy5tX251bUNvbnN0YW50cyk7IH0KLSAgfCBSZWxhdGlvbmFsRXhwck5vQkYg
SU5TVEFOQ0VPRiBTaGlmdEV4cHIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB7IEluc3RhbmNlT2ZOb2RlKiBub2RlID0gbmV3IChHTE9CQUxfREFUQSkgSW5zdGFuY2VP
Zk5vZGUoR0xPQkFMX0RBVEEsICQxLm1fbm9kZSwgJDMubV9ub2RlLCAkMy5tX2ZlYXR1cmVzICYg
QXNzaWduRmVhdHVyZSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBzZXRFeGNlcHRpb25Mb2NhdGlvbihub2RlLCBAMS5maXJzdF9jb2x1bW4sIEAzLmZpcnN0X2Nv
bHVtbiwgQDMubGFzdF9jb2x1bW4pOyAgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAkJCA9IGNyZWF0ZU5vZGVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obm9kZSwgJDEu
bV9mZWF0dXJlcyB8ICQzLm1fZmVhdHVyZXMsICQxLm1fbnVtQ29uc3RhbnRzICsgJDMubV9udW1D
b25zdGFudHMpOyB9Ci0gIHwgUmVsYXRpb25hbEV4cHJOb0JGIElOVE9LRU4gU2hpZnRFeHByIAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgSW5Ob2RlKiBub2RlID0g
bmV3IChHTE9CQUxfREFUQSkgSW5Ob2RlKEdMT0JBTF9EQVRBLCAkMS5tX25vZGUsICQzLm1fbm9k
ZSwgJDMubV9mZWF0dXJlcyAmIEFzc2lnbkZlYXR1cmUpOwotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgc2V0RXhjZXB0aW9uTG9jYXRpb24obm9kZSwgQDEuZmlyc3Rf
Y29sdW1uLCBAMy5maXJzdF9jb2x1bW4sIEAzLmxhc3RfY29sdW1uKTsgIAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCQgPSBjcmVhdGVOb2RlSW5mbzxFeHByZXNz
aW9uTm9kZSo+KG5vZGUsICQxLm1fZmVhdHVyZXMgfCAkMy5tX2ZlYXR1cmVzLCAkMS5tX251bUNv
bnN0YW50cyArICQzLm1fbnVtQ29uc3RhbnRzKTsgfQotOwotCi1FcXVhbGl0eUV4cHI6Ci0gICAg
UmVsYXRpb25hbEV4cHIKLSAgfCBFcXVhbGl0eUV4cHIgRVFFUSBSZWxhdGlvbmFsRXhwciAgICB7
ICQkID0gY3JlYXRlTm9kZUluZm88RXhwcmVzc2lvbk5vZGUqPihuZXcgKEdMT0JBTF9EQVRBKSBF
cXVhbE5vZGUoR0xPQkFMX0RBVEEsICQxLm1fbm9kZSwgJDMubV9ub2RlLCAkMy5tX2ZlYXR1cmVz
ICYgQXNzaWduRmVhdHVyZSksICQxLm1fZmVhdHVyZXMgfCAkMy5tX2ZlYXR1cmVzLCAkMS5tX251
bUNvbnN0YW50cyArICQzLm1fbnVtQ29uc3RhbnRzKTsgfQotICB8IEVxdWFsaXR5RXhwciBORSBS
ZWxhdGlvbmFsRXhwciAgICAgIHsgJCQgPSBjcmVhdGVOb2RlSW5mbzxFeHByZXNzaW9uTm9kZSo+
KG5ldyAoR0xPQkFMX0RBVEEpIE5vdEVxdWFsTm9kZShHTE9CQUxfREFUQSwgJDEubV9ub2RlLCAk
My5tX25vZGUsICQzLm1fZmVhdHVyZXMgJiBBc3NpZ25GZWF0dXJlKSwgJDEubV9mZWF0dXJlcyB8
ICQzLm1fZmVhdHVyZXMsICQxLm1fbnVtQ29uc3RhbnRzICsgJDMubV9udW1Db25zdGFudHMpOyB9
Ci0gIHwgRXF1YWxpdHlFeHByIFNUUkVRIFJlbGF0aW9uYWxFeHByICAgeyAkJCA9IGNyZWF0ZU5v
ZGVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obmV3IChHTE9CQUxfREFUQSkgU3RyaWN0RXF1YWxOb2Rl
KEdMT0JBTF9EQVRBLCAkMS5tX25vZGUsICQzLm1fbm9kZSwgJDMubV9mZWF0dXJlcyAmIEFzc2ln
bkZlYXR1cmUpLCAkMS5tX2ZlYXR1cmVzIHwgJDMubV9mZWF0dXJlcywgJDEubV9udW1Db25zdGFu
dHMgKyAkMy5tX251bUNvbnN0YW50cyk7IH0KLSAgfCBFcXVhbGl0eUV4cHIgU1RSTkVRIFJlbGF0
aW9uYWxFeHByICB7ICQkID0gY3JlYXRlTm9kZUluZm88RXhwcmVzc2lvbk5vZGUqPihuZXcgKEdM
T0JBTF9EQVRBKSBOb3RTdHJpY3RFcXVhbE5vZGUoR0xPQkFMX0RBVEEsICQxLm1fbm9kZSwgJDMu
bV9ub2RlLCAkMy5tX2ZlYXR1cmVzICYgQXNzaWduRmVhdHVyZSksICQxLm1fZmVhdHVyZXMgfCAk
My5tX2ZlYXR1cmVzLCAkMS5tX251bUNvbnN0YW50cyArICQzLm1fbnVtQ29uc3RhbnRzKTsgfQot
OwotCi1FcXVhbGl0eUV4cHJOb0luOgotICAgIFJlbGF0aW9uYWxFeHByTm9JbgotICB8IEVxdWFs
aXR5RXhwck5vSW4gRVFFUSBSZWxhdGlvbmFsRXhwck5vSW4KLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB7ICQkID0gY3JlYXRlTm9kZUluZm88RXhwcmVzc2lvbk5vZGUq
PihuZXcgKEdMT0JBTF9EQVRBKSBFcXVhbE5vZGUoR0xPQkFMX0RBVEEsICQxLm1fbm9kZSwgJDMu
bV9ub2RlLCAkMy5tX2ZlYXR1cmVzICYgQXNzaWduRmVhdHVyZSksICQxLm1fZmVhdHVyZXMgfCAk
My5tX2ZlYXR1cmVzLCAkMS5tX251bUNvbnN0YW50cyArICQzLm1fbnVtQ29uc3RhbnRzKTsgfQot
ICB8IEVxdWFsaXR5RXhwck5vSW4gTkUgUmVsYXRpb25hbEV4cHJOb0luCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAkJCA9IGNyZWF0ZU5vZGVJbmZvPEV4cHJlc3Np
b25Ob2RlKj4obmV3IChHTE9CQUxfREFUQSkgTm90RXF1YWxOb2RlKEdMT0JBTF9EQVRBLCAkMS5t
X25vZGUsICQzLm1fbm9kZSwgJDMubV9mZWF0dXJlcyAmIEFzc2lnbkZlYXR1cmUpLCAkMS5tX2Zl
YXR1cmVzIHwgJDMubV9mZWF0dXJlcywgJDEubV9udW1Db25zdGFudHMgKyAkMy5tX251bUNvbnN0
YW50cyk7IH0KLSAgfCBFcXVhbGl0eUV4cHJOb0luIFNUUkVRIFJlbGF0aW9uYWxFeHByTm9Jbgot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgJCQgPSBjcmVhdGVOb2Rl
SW5mbzxFeHByZXNzaW9uTm9kZSo+KG5ldyAoR0xPQkFMX0RBVEEpIFN0cmljdEVxdWFsTm9kZShH
TE9CQUxfREFUQSwgJDEubV9ub2RlLCAkMy5tX25vZGUsICQzLm1fZmVhdHVyZXMgJiBBc3NpZ25G
ZWF0dXJlKSwgJDEubV9mZWF0dXJlcyB8ICQzLm1fZmVhdHVyZXMsICQxLm1fbnVtQ29uc3RhbnRz
ICsgJDMubV9udW1Db25zdGFudHMpOyB9Ci0gIHwgRXF1YWxpdHlFeHByTm9JbiBTVFJORVEgUmVs
YXRpb25hbEV4cHJOb0luCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
eyAkJCA9IGNyZWF0ZU5vZGVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obmV3IChHTE9CQUxfREFUQSkg
Tm90U3RyaWN0RXF1YWxOb2RlKEdMT0JBTF9EQVRBLCAkMS5tX25vZGUsICQzLm1fbm9kZSwgJDMu
bV9mZWF0dXJlcyAmIEFzc2lnbkZlYXR1cmUpLCAkMS5tX2ZlYXR1cmVzIHwgJDMubV9mZWF0dXJl
cywgJDEubV9udW1Db25zdGFudHMgKyAkMy5tX251bUNvbnN0YW50cyk7IH0KLTsKLQotRXF1YWxp
dHlFeHByTm9CRjoKLSAgICBSZWxhdGlvbmFsRXhwck5vQkYKLSAgfCBFcXVhbGl0eUV4cHJOb0JG
IEVRRVEgUmVsYXRpb25hbEV4cHIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB7ICQkID0gY3JlYXRlTm9kZUluZm88RXhwcmVzc2lvbk5vZGUqPihuZXcgKEdMT0JBTF9E
QVRBKSBFcXVhbE5vZGUoR0xPQkFMX0RBVEEsICQxLm1fbm9kZSwgJDMubV9ub2RlLCAkMy5tX2Zl
YXR1cmVzICYgQXNzaWduRmVhdHVyZSksICQxLm1fZmVhdHVyZXMgfCAkMy5tX2ZlYXR1cmVzLCAk
MS5tX251bUNvbnN0YW50cyArICQzLm1fbnVtQ29uc3RhbnRzKTsgfQotICB8IEVxdWFsaXR5RXhw
ck5vQkYgTkUgUmVsYXRpb25hbEV4cHIgIHsgJCQgPSBjcmVhdGVOb2RlSW5mbzxFeHByZXNzaW9u
Tm9kZSo+KG5ldyAoR0xPQkFMX0RBVEEpIE5vdEVxdWFsTm9kZShHTE9CQUxfREFUQSwgJDEubV9u
b2RlLCAkMy5tX25vZGUsICQzLm1fZmVhdHVyZXMgJiBBc3NpZ25GZWF0dXJlKSwgJDEubV9mZWF0
dXJlcyB8ICQzLm1fZmVhdHVyZXMsICQxLm1fbnVtQ29uc3RhbnRzICsgJDMubV9udW1Db25zdGFu
dHMpOyB9Ci0gIHwgRXF1YWxpdHlFeHByTm9CRiBTVFJFUSBSZWxhdGlvbmFsRXhwcgotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgJCQgPSBjcmVhdGVOb2RlSW5mbzxF
eHByZXNzaW9uTm9kZSo+KG5ldyAoR0xPQkFMX0RBVEEpIFN0cmljdEVxdWFsTm9kZShHTE9CQUxf
REFUQSwgJDEubV9ub2RlLCAkMy5tX25vZGUsICQzLm1fZmVhdHVyZXMgJiBBc3NpZ25GZWF0dXJl
KSwgJDEubV9mZWF0dXJlcyB8ICQzLm1fZmVhdHVyZXMsICQxLm1fbnVtQ29uc3RhbnRzICsgJDMu
bV9udW1Db25zdGFudHMpOyB9Ci0gIHwgRXF1YWxpdHlFeHByTm9CRiBTVFJORVEgUmVsYXRpb25h
bEV4cHIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ICQkID0gY3Jl
YXRlTm9kZUluZm88RXhwcmVzc2lvbk5vZGUqPihuZXcgKEdMT0JBTF9EQVRBKSBOb3RTdHJpY3RF
cXVhbE5vZGUoR0xPQkFMX0RBVEEsICQxLm1fbm9kZSwgJDMubV9ub2RlLCAkMy5tX2ZlYXR1cmVz
ICYgQXNzaWduRmVhdHVyZSksICQxLm1fZmVhdHVyZXMgfCAkMy5tX2ZlYXR1cmVzLCAkMS5tX251
bUNvbnN0YW50cyArICQzLm1fbnVtQ29uc3RhbnRzKTsgfQotOwotCi1CaXR3aXNlQU5ERXhwcjoK
LSAgICBFcXVhbGl0eUV4cHIKLSAgfCBCaXR3aXNlQU5ERXhwciAnJicgRXF1YWxpdHlFeHByICAg
ICB7ICQkID0gY3JlYXRlTm9kZUluZm88RXhwcmVzc2lvbk5vZGUqPihuZXcgKEdMT0JBTF9EQVRB
KSBCaXRBbmROb2RlKEdMT0JBTF9EQVRBLCAkMS5tX25vZGUsICQzLm1fbm9kZSwgJDMubV9mZWF0
dXJlcyAmIEFzc2lnbkZlYXR1cmUpLCAkMS5tX2ZlYXR1cmVzIHwgJDMubV9mZWF0dXJlcywgJDEu
bV9udW1Db25zdGFudHMgKyAkMy5tX251bUNvbnN0YW50cyk7IH0KLTsKLQotQml0d2lzZUFOREV4
cHJOb0luOgotICAgIEVxdWFsaXR5RXhwck5vSW4KLSAgfCBCaXR3aXNlQU5ERXhwck5vSW4gJyYn
IEVxdWFsaXR5RXhwck5vSW4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB7ICQkID0gY3JlYXRlTm9kZUluZm88RXhwcmVzc2lvbk5vZGUqPihuZXcgKEdMT0JBTF9EQVRB
KSBCaXRBbmROb2RlKEdMT0JBTF9EQVRBLCAkMS5tX25vZGUsICQzLm1fbm9kZSwgJDMubV9mZWF0
dXJlcyAmIEFzc2lnbkZlYXR1cmUpLCAkMS5tX2ZlYXR1cmVzIHwgJDMubV9mZWF0dXJlcywgJDEu
bV9udW1Db25zdGFudHMgKyAkMy5tX251bUNvbnN0YW50cyk7IH0KLTsKLQotQml0d2lzZUFOREV4
cHJOb0JGOgotICAgIEVxdWFsaXR5RXhwck5vQkYKLSAgfCBCaXR3aXNlQU5ERXhwck5vQkYgJyYn
IEVxdWFsaXR5RXhwciB7ICQkID0gY3JlYXRlTm9kZUluZm88RXhwcmVzc2lvbk5vZGUqPihuZXcg
KEdMT0JBTF9EQVRBKSBCaXRBbmROb2RlKEdMT0JBTF9EQVRBLCAkMS5tX25vZGUsICQzLm1fbm9k
ZSwgJDMubV9mZWF0dXJlcyAmIEFzc2lnbkZlYXR1cmUpLCAkMS5tX2ZlYXR1cmVzIHwgJDMubV9m
ZWF0dXJlcywgJDEubV9udW1Db25zdGFudHMgKyAkMy5tX251bUNvbnN0YW50cyk7IH0KLTsKLQot
Qml0d2lzZVhPUkV4cHI6Ci0gICAgQml0d2lzZUFOREV4cHIKLSAgfCBCaXR3aXNlWE9SRXhwciAn
XicgQml0d2lzZUFOREV4cHIgICB7ICQkID0gY3JlYXRlTm9kZUluZm88RXhwcmVzc2lvbk5vZGUq
PihuZXcgKEdMT0JBTF9EQVRBKSBCaXRYT3JOb2RlKEdMT0JBTF9EQVRBLCAkMS5tX25vZGUsICQz
Lm1fbm9kZSwgJDMubV9mZWF0dXJlcyAmIEFzc2lnbkZlYXR1cmUpLCAkMS5tX2ZlYXR1cmVzIHwg
JDMubV9mZWF0dXJlcywgJDEubV9udW1Db25zdGFudHMgKyAkMy5tX251bUNvbnN0YW50cyk7IH0K
LTsKLQotQml0d2lzZVhPUkV4cHJOb0luOgotICAgIEJpdHdpc2VBTkRFeHByTm9JbgotICB8IEJp
dHdpc2VYT1JFeHByTm9JbiAnXicgQml0d2lzZUFOREV4cHJOb0luCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgeyAkJCA9IGNyZWF0ZU5vZGVJbmZvPEV4cHJlc3Npb25O
b2RlKj4obmV3IChHTE9CQUxfREFUQSkgQml0WE9yTm9kZShHTE9CQUxfREFUQSwgJDEubV9ub2Rl
LCAkMy5tX25vZGUsICQzLm1fZmVhdHVyZXMgJiBBc3NpZ25GZWF0dXJlKSwgJDEubV9mZWF0dXJl
cyB8ICQzLm1fZmVhdHVyZXMsICQxLm1fbnVtQ29uc3RhbnRzICsgJDMubV9udW1Db25zdGFudHMp
OyB9Ci07Ci0KLUJpdHdpc2VYT1JFeHByTm9CRjoKLSAgICBCaXR3aXNlQU5ERXhwck5vQkYKLSAg
fCBCaXR3aXNlWE9SRXhwck5vQkYgJ14nIEJpdHdpc2VBTkRFeHByCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgeyAkJCA9IGNyZWF0ZU5vZGVJbmZvPEV4cHJlc3Npb25O
b2RlKj4obmV3IChHTE9CQUxfREFUQSkgQml0WE9yTm9kZShHTE9CQUxfREFUQSwgJDEubV9ub2Rl
LCAkMy5tX25vZGUsICQzLm1fZmVhdHVyZXMgJiBBc3NpZ25GZWF0dXJlKSwgJDEubV9mZWF0dXJl
cyB8ICQzLm1fZmVhdHVyZXMsICQxLm1fbnVtQ29uc3RhbnRzICsgJDMubV9udW1Db25zdGFudHMp
OyB9Ci07Ci0KLUJpdHdpc2VPUkV4cHI6Ci0gICAgQml0d2lzZVhPUkV4cHIKLSAgfCBCaXR3aXNl
T1JFeHByICd8JyBCaXR3aXNlWE9SRXhwciAgICB7ICQkID0gY3JlYXRlTm9kZUluZm88RXhwcmVz
c2lvbk5vZGUqPihuZXcgKEdMT0JBTF9EQVRBKSBCaXRPck5vZGUoR0xPQkFMX0RBVEEsICQxLm1f
bm9kZSwgJDMubV9ub2RlLCAkMy5tX2ZlYXR1cmVzICYgQXNzaWduRmVhdHVyZSksICQxLm1fZmVh
dHVyZXMgfCAkMy5tX2ZlYXR1cmVzLCAkMS5tX251bUNvbnN0YW50cyArICQzLm1fbnVtQ29uc3Rh
bnRzKTsgfQotOwotCi1CaXR3aXNlT1JFeHByTm9JbjoKLSAgICBCaXR3aXNlWE9SRXhwck5vSW4K
LSAgfCBCaXR3aXNlT1JFeHByTm9JbiAnfCcgQml0d2lzZVhPUkV4cHJOb0luCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAkJCA9IGNyZWF0ZU5vZGVJbmZvPEV4cHJl
c3Npb25Ob2RlKj4obmV3IChHTE9CQUxfREFUQSkgQml0T3JOb2RlKEdMT0JBTF9EQVRBLCAkMS5t
X25vZGUsICQzLm1fbm9kZSwgJDMubV9mZWF0dXJlcyAmIEFzc2lnbkZlYXR1cmUpLCAkMS5tX2Zl
YXR1cmVzIHwgJDMubV9mZWF0dXJlcywgJDEubV9udW1Db25zdGFudHMgKyAkMy5tX251bUNvbnN0
YW50cyk7IH0KLTsKLQotQml0d2lzZU9SRXhwck5vQkY6Ci0gICAgQml0d2lzZVhPUkV4cHJOb0JG
Ci0gIHwgQml0d2lzZU9SRXhwck5vQkYgJ3wnIEJpdHdpc2VYT1JFeHByCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAkJCA9IGNyZWF0ZU5vZGVJbmZvPEV4cHJlc3Np
b25Ob2RlKj4obmV3IChHTE9CQUxfREFUQSkgQml0T3JOb2RlKEdMT0JBTF9EQVRBLCAkMS5tX25v
ZGUsICQzLm1fbm9kZSwgJDMubV9mZWF0dXJlcyAmIEFzc2lnbkZlYXR1cmUpLCAkMS5tX2ZlYXR1
cmVzIHwgJDMubV9mZWF0dXJlcywgJDEubV9udW1Db25zdGFudHMgKyAkMy5tX251bUNvbnN0YW50
cyk7IH0KLTsKLQotTG9naWNhbEFOREV4cHI6Ci0gICAgQml0d2lzZU9SRXhwcgotICB8IExvZ2lj
YWxBTkRFeHByIEFORCBCaXR3aXNlT1JFeHByICAgIHsgJCQgPSBjcmVhdGVOb2RlSW5mbzxFeHBy
ZXNzaW9uTm9kZSo+KG5ldyAoR0xPQkFMX0RBVEEpIExvZ2ljYWxPcE5vZGUoR0xPQkFMX0RBVEEs
ICQxLm1fbm9kZSwgJDMubV9ub2RlLCBPcExvZ2ljYWxBbmQpLCAkMS5tX2ZlYXR1cmVzIHwgJDMu
bV9mZWF0dXJlcywgJDEubV9udW1Db25zdGFudHMgKyAkMy5tX251bUNvbnN0YW50cyk7IH0KLTsK
LQotTG9naWNhbEFOREV4cHJOb0luOgotICAgIEJpdHdpc2VPUkV4cHJOb0luCi0gIHwgTG9naWNh
bEFOREV4cHJOb0luIEFORCBCaXR3aXNlT1JFeHByTm9JbgotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHsgJCQgPSBjcmVhdGVOb2RlSW5mbzxFeHByZXNzaW9uTm9kZSo+
KG5ldyAoR0xPQkFMX0RBVEEpIExvZ2ljYWxPcE5vZGUoR0xPQkFMX0RBVEEsICQxLm1fbm9kZSwg
JDMubV9ub2RlLCBPcExvZ2ljYWxBbmQpLCAkMS5tX2ZlYXR1cmVzIHwgJDMubV9mZWF0dXJlcywg
JDEubV9udW1Db25zdGFudHMgKyAkMy5tX251bUNvbnN0YW50cyk7IH0KLTsKLQotTG9naWNhbEFO
REV4cHJOb0JGOgotICAgIEJpdHdpc2VPUkV4cHJOb0JGCi0gIHwgTG9naWNhbEFOREV4cHJOb0JG
IEFORCBCaXR3aXNlT1JFeHByCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgeyAkJCA9IGNyZWF0ZU5vZGVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obmV3IChHTE9CQUxfREFU
QSkgTG9naWNhbE9wTm9kZShHTE9CQUxfREFUQSwgJDEubV9ub2RlLCAkMy5tX25vZGUsIE9wTG9n
aWNhbEFuZCksICQxLm1fZmVhdHVyZXMgfCAkMy5tX2ZlYXR1cmVzLCAkMS5tX251bUNvbnN0YW50
cyArICQzLm1fbnVtQ29uc3RhbnRzKTsgfQotOwotCi1Mb2dpY2FsT1JFeHByOgotICAgIExvZ2lj
YWxBTkRFeHByCi0gIHwgTG9naWNhbE9SRXhwciBPUiBMb2dpY2FsQU5ERXhwciAgICAgeyAkJCA9
IGNyZWF0ZU5vZGVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obmV3IChHTE9CQUxfREFUQSkgTG9naWNh
bE9wTm9kZShHTE9CQUxfREFUQSwgJDEubV9ub2RlLCAkMy5tX25vZGUsIE9wTG9naWNhbE9yKSwg
JDEubV9mZWF0dXJlcyB8ICQzLm1fZmVhdHVyZXMsICQxLm1fbnVtQ29uc3RhbnRzICsgJDMubV9u
dW1Db25zdGFudHMpOyB9Ci07Ci0KLUxvZ2ljYWxPUkV4cHJOb0luOgotICAgIExvZ2ljYWxBTkRF
eHByTm9JbgotICB8IExvZ2ljYWxPUkV4cHJOb0luIE9SIExvZ2ljYWxBTkRFeHByTm9JbgotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgJCQgPSBjcmVhdGVOb2RlSW5m
bzxFeHByZXNzaW9uTm9kZSo+KG5ldyAoR0xPQkFMX0RBVEEpIExvZ2ljYWxPcE5vZGUoR0xPQkFM
X0RBVEEsICQxLm1fbm9kZSwgJDMubV9ub2RlLCBPcExvZ2ljYWxPciksICQxLm1fZmVhdHVyZXMg
fCAkMy5tX2ZlYXR1cmVzLCAkMS5tX251bUNvbnN0YW50cyArICQzLm1fbnVtQ29uc3RhbnRzKTsg
fQotOwotCi1Mb2dpY2FsT1JFeHByTm9CRjoKLSAgICBMb2dpY2FsQU5ERXhwck5vQkYKLSAgfCBM
b2dpY2FsT1JFeHByTm9CRiBPUiBMb2dpY2FsQU5ERXhwciB7ICQkID0gY3JlYXRlTm9kZUluZm88
RXhwcmVzc2lvbk5vZGUqPihuZXcgKEdMT0JBTF9EQVRBKSBMb2dpY2FsT3BOb2RlKEdMT0JBTF9E
QVRBLCAkMS5tX25vZGUsICQzLm1fbm9kZSwgT3BMb2dpY2FsT3IpLCAkMS5tX2ZlYXR1cmVzIHwg
JDMubV9mZWF0dXJlcywgJDEubV9udW1Db25zdGFudHMgKyAkMy5tX251bUNvbnN0YW50cyk7IH0K
LTsKLQotQ29uZGl0aW9uYWxFeHByOgotICAgIExvZ2ljYWxPUkV4cHIKLSAgfCBMb2dpY2FsT1JF
eHByICc/JyBBc3NpZ25tZW50RXhwciAnOicgQXNzaWdubWVudEV4cHIKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB7ICQkID0gY3JlYXRlTm9kZUluZm88RXhwcmVzc2lv
bk5vZGUqPihuZXcgKEdMT0JBTF9EQVRBKSBDb25kaXRpb25hbE5vZGUoR0xPQkFMX0RBVEEsICQx
Lm1fbm9kZSwgJDMubV9ub2RlLCAkNS5tX25vZGUpLCAkMS5tX2ZlYXR1cmVzIHwgJDMubV9mZWF0
dXJlcyB8ICQ1Lm1fZmVhdHVyZXMsICQxLm1fbnVtQ29uc3RhbnRzICsgJDMubV9udW1Db25zdGFu
dHMgKyAkNS5tX251bUNvbnN0YW50cyk7IH0KLTsKLQotQ29uZGl0aW9uYWxFeHByTm9JbjoKLSAg
ICBMb2dpY2FsT1JFeHByTm9JbgotICB8IExvZ2ljYWxPUkV4cHJOb0luICc/JyBBc3NpZ25tZW50
RXhwck5vSW4gJzonIEFzc2lnbm1lbnRFeHByTm9JbgotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHsgJCQgPSBjcmVhdGVOb2RlSW5mbzxFeHByZXNzaW9uTm9kZSo+KG5l
dyAoR0xPQkFMX0RBVEEpIENvbmRpdGlvbmFsTm9kZShHTE9CQUxfREFUQSwgJDEubV9ub2RlLCAk
My5tX25vZGUsICQ1Lm1fbm9kZSksICQxLm1fZmVhdHVyZXMgfCAkMy5tX2ZlYXR1cmVzIHwgJDUu
bV9mZWF0dXJlcywgJDEubV9udW1Db25zdGFudHMgKyAkMy5tX251bUNvbnN0YW50cyArICQ1Lm1f
bnVtQ29uc3RhbnRzKTsgfQotOwotCi1Db25kaXRpb25hbEV4cHJOb0JGOgotICAgIExvZ2ljYWxP
UkV4cHJOb0JGCi0gIHwgTG9naWNhbE9SRXhwck5vQkYgJz8nIEFzc2lnbm1lbnRFeHByICc6JyBB
c3NpZ25tZW50RXhwcgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsg
JCQgPSBjcmVhdGVOb2RlSW5mbzxFeHByZXNzaW9uTm9kZSo+KG5ldyAoR0xPQkFMX0RBVEEpIENv
bmRpdGlvbmFsTm9kZShHTE9CQUxfREFUQSwgJDEubV9ub2RlLCAkMy5tX25vZGUsICQ1Lm1fbm9k
ZSksICQxLm1fZmVhdHVyZXMgfCAkMy5tX2ZlYXR1cmVzIHwgJDUubV9mZWF0dXJlcywgJDEubV9u
dW1Db25zdGFudHMgKyAkMy5tX251bUNvbnN0YW50cyArICQ1Lm1fbnVtQ29uc3RhbnRzKTsgfQot
OwotCi1Bc3NpZ25tZW50RXhwcjoKLSAgICBDb25kaXRpb25hbEV4cHIKLSAgfCBMZWZ0SGFuZFNp
ZGVFeHByIEFzc2lnbm1lbnRPcGVyYXRvciBBc3NpZ25tZW50RXhwcgotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHsgJCQgPSBjcmVhdGVOb2RlSW5mbzxFeHByZXNzaW9u
Tm9kZSo+KG1ha2VBc3NpZ25Ob2RlKEdMT0JBTF9EQVRBLCAkMS5tX25vZGUsICQyLCAkMy5tX25v
ZGUsICQxLm1fZmVhdHVyZXMgJiBBc3NpZ25GZWF0dXJlLCAkMy5tX2ZlYXR1cmVzICYgQXNzaWdu
RmVhdHVyZSwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEAx
LmZpcnN0X2NvbHVtbiwgQDIuZmlyc3RfY29sdW1uICsgMSwgQDMubGFzdF9jb2x1bW4pLCAkMS5t
X2ZlYXR1cmVzIHwgJDMubV9mZWF0dXJlcyB8IEFzc2lnbkZlYXR1cmUsICQxLm1fbnVtQ29uc3Rh
bnRzICsgJDMubV9udW1Db25zdGFudHMpOyAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB9Ci07Ci0KLUFzc2lnbm1lbnRFeHByTm9JbjoKLSAgICBDb25kaXRpb25hbEV4
cHJOb0luCi0gIHwgTGVmdEhhbmRTaWRlRXhwciBBc3NpZ25tZW50T3BlcmF0b3IgQXNzaWdubWVu
dEV4cHJOb0luCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAkJCA9
IGNyZWF0ZU5vZGVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obWFrZUFzc2lnbk5vZGUoR0xPQkFMX0RB
VEEsICQxLm1fbm9kZSwgJDIsICQzLm1fbm9kZSwgJDEubV9mZWF0dXJlcyAmIEFzc2lnbkZlYXR1
cmUsICQzLm1fZmVhdHVyZXMgJiBBc3NpZ25GZWF0dXJlLCAKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgQDEuZmlyc3RfY29sdW1uLCBAMi5maXJzdF9jb2x1bW4g
KyAxLCBAMy5sYXN0X2NvbHVtbiksICQxLm1fZmVhdHVyZXMgfCAkMy5tX2ZlYXR1cmVzIHwgQXNz
aWduRmVhdHVyZSwgJDEubV9udW1Db25zdGFudHMgKyAkMy5tX251bUNvbnN0YW50cyk7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotOwotCi1Bc3NpZ25tZW50RXhw
ck5vQkY6Ci0gICAgQ29uZGl0aW9uYWxFeHByTm9CRgotICB8IExlZnRIYW5kU2lkZUV4cHJOb0JG
IEFzc2lnbm1lbnRPcGVyYXRvciBBc3NpZ25tZW50RXhwcgotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHsgJCQgPSBjcmVhdGVOb2RlSW5mbzxFeHByZXNzaW9uTm9kZSo+
KG1ha2VBc3NpZ25Ob2RlKEdMT0JBTF9EQVRBLCAkMS5tX25vZGUsICQyLCAkMy5tX25vZGUsICQx
Lm1fZmVhdHVyZXMgJiBBc3NpZ25GZWF0dXJlLCAkMy5tX2ZlYXR1cmVzICYgQXNzaWduRmVhdHVy
ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQDEuZmlyc3Rf
Y29sdW1uLCBAMi5maXJzdF9jb2x1bW4gKyAxLCBAMy5sYXN0X2NvbHVtbiksICQxLm1fZmVhdHVy
ZXMgfCAkMy5tX2ZlYXR1cmVzIHwgQXNzaWduRmVhdHVyZSwgJDEubV9udW1Db25zdGFudHMgKyAk
My5tX251bUNvbnN0YW50cyk7IAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIH0KLTsKLQotQXNzaWdubWVudE9wZXJhdG9yOgotICAgICc9JyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHsgJCQgPSBPcEVxdWFsOyB9Ci0gIHwgUExVU0VRVUFMICAgICAgICAg
ICAgICAgICAgICAgICAgICAgeyAkJCA9IE9wUGx1c0VxOyB9Ci0gIHwgTUlOVVNFUVVBTCAgICAg
ICAgICAgICAgICAgICAgICAgICAgeyAkJCA9IE9wTWludXNFcTsgfQotICB8IE1VTFRFUVVBTCAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHsgJCQgPSBPcE11bHRFcTsgfQotICB8IERJVkVRVUFM
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgJCQgPSBPcERpdkVxOyB9Ci0gIHwgTFNISUZU
RVFVQUwgICAgICAgICAgICAgICAgICAgICAgICAgeyAkJCA9IE9wTFNoaWZ0OyB9Ci0gIHwgUlNI
SUZURVFVQUwgICAgICAgICAgICAgICAgICAgICAgICAgeyAkJCA9IE9wUlNoaWZ0OyB9Ci0gIHwg
VVJTSElGVEVRVUFMICAgICAgICAgICAgICAgICAgICAgICAgeyAkJCA9IE9wVVJTaGlmdDsgfQot
ICB8IEFOREVRVUFMICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgJCQgPSBPcEFuZEVxOyB9
Ci0gIHwgWE9SRVFVQUwgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAkJCA9IE9wWE9yRXE7
IH0KLSAgfCBPUkVRVUFMICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ICQkID0gT3BPckVx
OyB9Ci0gIHwgTU9ERVFVQUwgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAkJCA9IE9wTW9k
RXE7IH0KLTsKLQotRXhwcjoKLSAgICBBc3NpZ25tZW50RXhwcgotICB8IEV4cHIgJywnIEFzc2ln
bm1lbnRFeHByICAgICAgICAgICAgIHsgJCQgPSBjcmVhdGVOb2RlSW5mbzxFeHByZXNzaW9uTm9k
ZSo+KGNvbWJpbmVDb21tYU5vZGVzKEdMT0JBTF9EQVRBLCAkMS5tX25vZGUsICQzLm1fbm9kZSks
ICQxLm1fZmVhdHVyZXMgfCAkMy5tX2ZlYXR1cmVzLCAkMS5tX251bUNvbnN0YW50cyArICQzLm1f
bnVtQ29uc3RhbnRzKTsgfQotOwotCi1FeHByTm9JbjoKLSAgICBBc3NpZ25tZW50RXhwck5vSW4K
LSAgfCBFeHByTm9JbiAnLCcgQXNzaWdubWVudEV4cHJOb0luICAgICB7ICQkID0gY3JlYXRlTm9k
ZUluZm88RXhwcmVzc2lvbk5vZGUqPihjb21iaW5lQ29tbWFOb2RlcyhHTE9CQUxfREFUQSwgJDEu
bV9ub2RlLCAkMy5tX25vZGUpLCAkMS5tX2ZlYXR1cmVzIHwgJDMubV9mZWF0dXJlcywgJDEubV9u
dW1Db25zdGFudHMgKyAkMy5tX251bUNvbnN0YW50cyk7IH0KLTsKLQotRXhwck5vQkY6Ci0gICAg
QXNzaWdubWVudEV4cHJOb0JGCi0gIHwgRXhwck5vQkYgJywnIEFzc2lnbm1lbnRFeHByICAgICAg
ICAgeyAkJCA9IGNyZWF0ZU5vZGVJbmZvPEV4cHJlc3Npb25Ob2RlKj4oY29tYmluZUNvbW1hTm9k
ZXMoR0xPQkFMX0RBVEEsICQxLm1fbm9kZSwgJDMubV9ub2RlKSwgJDEubV9mZWF0dXJlcyB8ICQz
Lm1fZmVhdHVyZXMsICQxLm1fbnVtQ29uc3RhbnRzICsgJDMubV9udW1Db25zdGFudHMpOyB9Ci07
Ci0KLVN0YXRlbWVudDoKLSAgICBCbG9jawotICB8IFZhcmlhYmxlU3RhdGVtZW50Ci0gIHwgQ29u
c3RTdGF0ZW1lbnQKLSAgfCBGdW5jdGlvbkRlY2xhcmF0aW9uCi0gIHwgRW1wdHlTdGF0ZW1lbnQK
LSAgfCBFeHByU3RhdGVtZW50Ci0gIHwgSWZTdGF0ZW1lbnQKLSAgfCBJdGVyYXRpb25TdGF0ZW1l
bnQKLSAgfCBDb250aW51ZVN0YXRlbWVudAotICB8IEJyZWFrU3RhdGVtZW50Ci0gIHwgUmV0dXJu
U3RhdGVtZW50Ci0gIHwgV2l0aFN0YXRlbWVudAotICB8IFN3aXRjaFN0YXRlbWVudAotICB8IExh
YmVsbGVkU3RhdGVtZW50Ci0gIHwgVGhyb3dTdGF0ZW1lbnQKLSAgfCBUcnlTdGF0ZW1lbnQKLSAg
fCBEZWJ1Z2dlclN0YXRlbWVudAotOwotCi1CbG9jazoKLSAgICBPUEVOQlJBQ0UgQ0xPU0VCUkFD
RSAgICAgICAgICAgICAgICB7ICQkID0gY3JlYXRlTm9kZURlY2xhcmF0aW9uSW5mbzxTdGF0ZW1l
bnROb2RlKj4obmV3IChHTE9CQUxfREFUQSkgQmxvY2tOb2RlKEdMT0JBTF9EQVRBLCAwKSwgMCwg
MCwgMCwgMCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRT
dGF0ZW1lbnRMb2NhdGlvbigkJC5tX25vZGUsIEAxLCBAMik7IH0KLSAgfCBPUEVOQlJBQ0UgU291
cmNlRWxlbWVudHMgQ0xPU0VCUkFDRSB7ICQkID0gY3JlYXRlTm9kZURlY2xhcmF0aW9uSW5mbzxT
dGF0ZW1lbnROb2RlKj4obmV3IChHTE9CQUxfREFUQSkgQmxvY2tOb2RlKEdMT0JBTF9EQVRBLCAk
Mi5tX25vZGUpLCAkMi5tX3ZhckRlY2xhcmF0aW9ucywgJDIubV9mdW5jRGVjbGFyYXRpb25zLCAk
Mi5tX2ZlYXR1cmVzLCAkMi5tX251bUNvbnN0YW50cyk7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzZXRTdGF0ZW1lbnRMb2NhdGlvbigkJC5tX25vZGUsIEAxLCBA
Myk7IH0KLTsKLQotVmFyaWFibGVTdGF0ZW1lbnQ6Ci0gICAgVkFSIFZhcmlhYmxlRGVjbGFyYXRp
b25MaXN0ICc7JyAgICAgeyAkJCA9IGNyZWF0ZU5vZGVEZWNsYXJhdGlvbkluZm88U3RhdGVtZW50
Tm9kZSo+KG1ha2VWYXJTdGF0ZW1lbnROb2RlKEdMT0JBTF9EQVRBLCAkMi5tX25vZGUpLCAkMi5t
X3ZhckRlY2xhcmF0aW9ucywgJDIubV9mdW5jRGVjbGFyYXRpb25zLCAkMi5tX2ZlYXR1cmVzLCAk
Mi5tX251bUNvbnN0YW50cyk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBzZXRTdGF0ZW1lbnRMb2NhdGlvbigkJC5tX25vZGUsIEAxLCBAMyk7IH0KLSAgfCBWQVIg
VmFyaWFibGVEZWNsYXJhdGlvbkxpc3QgZXJyb3IgICB7ICQkID0gY3JlYXRlTm9kZURlY2xhcmF0
aW9uSW5mbzxTdGF0ZW1lbnROb2RlKj4obWFrZVZhclN0YXRlbWVudE5vZGUoR0xPQkFMX0RBVEEs
ICQyLm1fbm9kZSksICQyLm1fdmFyRGVjbGFyYXRpb25zLCAkMi5tX2Z1bmNEZWNsYXJhdGlvbnMs
ICQyLm1fZmVhdHVyZXMsICQyLm1fbnVtQ29uc3RhbnRzKTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHNldFN0YXRlbWVudExvY2F0aW9uKCQkLm1fbm9kZSwgQDEs
IEAyKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFVVE9fU0VN
SUNPTE9OOyB9Ci07Ci0KLVZhcmlhYmxlRGVjbGFyYXRpb25MaXN0OgotICAgIElERU5UICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHsgJCQubV9ub2RlID0gMDsKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICQkLm1fdmFyRGVjbGFyYXRpb25zID0gbmV3IChH
TE9CQUxfREFUQSkgUGFyc2VyQXJlbmFEYXRhPERlY2xhcmF0aW9uU3RhY2tzOjpWYXJTdGFjaz47
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmRUb1ZhckRl
Y2xhcmF0aW9uTGlzdChHTE9CQUxfREFUQSwgJCQubV92YXJEZWNsYXJhdGlvbnMsICokMSwgMCk7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkJC5tX2Z1bmNEZWNs
YXJhdGlvbnMgPSAwOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
JCQubV9mZWF0dXJlcyA9ICgqJDEgPT0gR0xPQkFMX0RBVEEtPnByb3BlcnR5TmFtZXMtPmFyZ3Vt
ZW50cykgPyBBcmd1bWVudHNGZWF0dXJlIDogMDsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICQkLm1fbnVtQ29uc3RhbnRzID0gMDsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB9Ci0gIHwgSURFTlQgSW5pdGlhbGl6ZXIgICAgICAgICAg
ICAgICAgICAgeyBBc3NpZ25SZXNvbHZlTm9kZSogbm9kZSA9IG5ldyAoR0xPQkFMX0RBVEEpIEFz
c2lnblJlc29sdmVOb2RlKEdMT0JBTF9EQVRBLCAqJDEsICQyLm1fbm9kZSwgJDIubV9mZWF0dXJl
cyAmIEFzc2lnbkZlYXR1cmUpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc2V0RXhjZXB0aW9uTG9jYXRpb24obm9kZSwgQDEuZmlyc3RfY29sdW1uLCBAMi5maXJz
dF9jb2x1bW4gKyAxLCBAMi5sYXN0X2NvbHVtbik7Ci0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAkJC5tX25vZGUgPSBub2RlOwotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgJCQubV92YXJEZWNsYXJhdGlvbnMgPSBuZXcgKEdMT0JBTF9E
QVRBKSBQYXJzZXJBcmVuYURhdGE8RGVjbGFyYXRpb25TdGFja3M6OlZhclN0YWNrPjsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZFRvVmFyRGVjbGFyYXRp
b25MaXN0KEdMT0JBTF9EQVRBLCAkJC5tX3ZhckRlY2xhcmF0aW9ucywgKiQxLCBEZWNsYXJhdGlv
blN0YWNrczo6SGFzSW5pdGlhbGl6ZXIpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgJCQubV9mdW5jRGVjbGFyYXRpb25zID0gMDsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICQkLm1fZmVhdHVyZXMgPSAoKCokMSA9PSBHTE9CQUxf
REFUQS0+cHJvcGVydHlOYW1lcy0+YXJndW1lbnRzKSA/IEFyZ3VtZW50c0ZlYXR1cmUgOiAwKSB8
ICQyLm1fZmVhdHVyZXM7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAkJC5tX251bUNvbnN0YW50cyA9ICQyLm1fbnVtQ29uc3RhbnRzOwotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgfCBWYXJpYWJsZURlY2xhcmF0aW9uTGlzdCAn
LCcgSURFTlQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ICQkLm1f
bm9kZSA9ICQxLm1fbm9kZTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICQkLm1fdmFyRGVjbGFyYXRpb25zID0gJDEubV92YXJEZWNsYXJhdGlvbnM7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmRUb1ZhckRlY2xhcmF0aW9u
TGlzdChHTE9CQUxfREFUQSwgJCQubV92YXJEZWNsYXJhdGlvbnMsICokMywgMCk7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkJC5tX2Z1bmNEZWNsYXJhdGlvbnMg
PSAwOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCQubV9mZWF0
dXJlcyA9ICQxLm1fZmVhdHVyZXMgfCAoKCokMyA9PSBHTE9CQUxfREFUQS0+cHJvcGVydHlOYW1l
cy0+YXJndW1lbnRzKSA/IEFyZ3VtZW50c0ZlYXR1cmUgOiAwKTsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICQkLm1fbnVtQ29uc3RhbnRzID0gJDEubV9udW1Db25z
dGFudHM7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICB8IFZh
cmlhYmxlRGVjbGFyYXRpb25MaXN0ICcsJyBJREVOVCBJbml0aWFsaXplcgotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgQXNzaWduUmVzb2x2ZU5vZGUqIG5vZGUgPSBu
ZXcgKEdMT0JBTF9EQVRBKSBBc3NpZ25SZXNvbHZlTm9kZShHTE9CQUxfREFUQSwgKiQzLCAkNC5t
X25vZGUsICQ0Lm1fZmVhdHVyZXMgJiBBc3NpZ25GZWF0dXJlKTsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHNldEV4Y2VwdGlvbkxvY2F0aW9uKG5vZGUsIEAzLmZp
cnN0X2NvbHVtbiwgQDQuZmlyc3RfY29sdW1uICsgMSwgQDQubGFzdF9jb2x1bW4pOwotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCQubV9ub2RlID0gY29tYmluZUNv
bW1hTm9kZXMoR0xPQkFMX0RBVEEsICQxLm1fbm9kZSwgbm9kZSk7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAkJC5tX3ZhckRlY2xhcmF0aW9ucyA9ICQxLm1fdmFy
RGVjbGFyYXRpb25zOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
YXBwZW5kVG9WYXJEZWNsYXJhdGlvbkxpc3QoR0xPQkFMX0RBVEEsICQkLm1fdmFyRGVjbGFyYXRp
b25zLCAqJDMsIERlY2xhcmF0aW9uU3RhY2tzOjpIYXNJbml0aWFsaXplcik7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkJC5tX2Z1bmNEZWNsYXJhdGlvbnMgPSAw
OwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCQubV9mZWF0dXJl
cyA9ICQxLm1fZmVhdHVyZXMgfCAoKCokMyA9PSBHTE9CQUxfREFUQS0+cHJvcGVydHlOYW1lcy0+
YXJndW1lbnRzKSA/IEFyZ3VtZW50c0ZlYXR1cmUgOiAwKSB8ICQ0Lm1fZmVhdHVyZXM7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkJC5tX251bUNvbnN0YW50cyA9
ICQxLm1fbnVtQ29uc3RhbnRzICsgJDQubV9udW1Db25zdGFudHM7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfQotOwotCi1WYXJpYWJsZURlY2xhcmF0aW9uTGlzdE5v
SW46Ci0gICAgSURFTlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAkJC5tX25vZGUg
PSAwOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCQubV92YXJE
ZWNsYXJhdGlvbnMgPSBuZXcgKEdMT0JBTF9EQVRBKSBQYXJzZXJBcmVuYURhdGE8RGVjbGFyYXRp
b25TdGFja3M6OlZhclN0YWNrPjsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGFwcGVuZFRvVmFyRGVjbGFyYXRpb25MaXN0KEdMT0JBTF9EQVRBLCAkJC5tX3ZhckRl
Y2xhcmF0aW9ucywgKiQxLCAwKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICQkLm1fZnVuY0RlY2xhcmF0aW9ucyA9IDA7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAkJC5tX2ZlYXR1cmVzID0gKCokMSA9PSBHTE9CQUxfREFUQS0+
cHJvcGVydHlOYW1lcy0+YXJndW1lbnRzKSA/IEFyZ3VtZW50c0ZlYXR1cmUgOiAwOwotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCQubV9udW1Db25zdGFudHMgPSAw
OwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgfCBJREVOVCBJ
bml0aWFsaXplck5vSW4gICAgICAgICAgICAgICB7IEFzc2lnblJlc29sdmVOb2RlKiBub2RlID0g
bmV3IChHTE9CQUxfREFUQSkgQXNzaWduUmVzb2x2ZU5vZGUoR0xPQkFMX0RBVEEsICokMSwgJDIu
bV9ub2RlLCAkMi5tX2ZlYXR1cmVzICYgQXNzaWduRmVhdHVyZSk7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRFeGNlcHRpb25Mb2NhdGlvbihub2RlLCBAMS5m
aXJzdF9jb2x1bW4sIEAyLmZpcnN0X2NvbHVtbiArIDEsIEAyLmxhc3RfY29sdW1uKTsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQkLm1fbm9kZSA9IG5vZGU7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkJC5tX3ZhckRlY2xhcmF0
aW9ucyA9IG5ldyAoR0xPQkFMX0RBVEEpIFBhcnNlckFyZW5hRGF0YTxEZWNsYXJhdGlvblN0YWNr
czo6VmFyU3RhY2s+OwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
YXBwZW5kVG9WYXJEZWNsYXJhdGlvbkxpc3QoR0xPQkFMX0RBVEEsICQkLm1fdmFyRGVjbGFyYXRp
b25zLCAqJDEsIERlY2xhcmF0aW9uU3RhY2tzOjpIYXNJbml0aWFsaXplcik7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkJC5tX2Z1bmNEZWNsYXJhdGlvbnMgPSAw
OwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCQubV9mZWF0dXJl
cyA9ICgoKiQxID09IEdMT0JBTF9EQVRBLT5wcm9wZXJ0eU5hbWVzLT5hcmd1bWVudHMpID8gQXJn
dW1lbnRzRmVhdHVyZSA6IDApIHwgJDIubV9mZWF0dXJlczsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICQkLm1fbnVtQ29uc3RhbnRzID0gJDIubV9udW1Db25zdGFu
dHM7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICB8IFZhcmlh
YmxlRGVjbGFyYXRpb25MaXN0Tm9JbiAnLCcgSURFTlQKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB7ICQkLm1fbm9kZSA9ICQxLm1fbm9kZTsKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICQkLm1fdmFyRGVjbGFyYXRpb25zID0gJDEubV92
YXJEZWNsYXJhdGlvbnM7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBhcHBlbmRUb1ZhckRlY2xhcmF0aW9uTGlzdChHTE9CQUxfREFUQSwgJCQubV92YXJEZWNsYXJh
dGlvbnMsICokMywgMCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAkJC5tX2Z1bmNEZWNsYXJhdGlvbnMgPSAwOwotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgJCQubV9mZWF0dXJlcyA9ICQxLm1fZmVhdHVyZXMgfCAoKCokMyA9PSBH
TE9CQUxfREFUQS0+cHJvcGVydHlOYW1lcy0+YXJndW1lbnRzKSA/IEFyZ3VtZW50c0ZlYXR1cmUg
OiAwKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQkLm1fbnVt
Q29uc3RhbnRzID0gJDEubV9udW1Db25zdGFudHM7Ci0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfQotICB8IFZhcmlhYmxlRGVjbGFyYXRpb25MaXN0Tm9JbiAnLCcgSURF
TlQgSW5pdGlhbGl6ZXJOb0luCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgeyBBc3NpZ25SZXNvbHZlTm9kZSogbm9kZSA9IG5ldyAoR0xPQkFMX0RBVEEpIEFzc2lnblJl
c29sdmVOb2RlKEdMT0JBTF9EQVRBLCAqJDMsICQ0Lm1fbm9kZSwgJDQubV9mZWF0dXJlcyAmIEFz
c2lnbkZlYXR1cmUpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
c2V0RXhjZXB0aW9uTG9jYXRpb24obm9kZSwgQDMuZmlyc3RfY29sdW1uLCBANC5maXJzdF9jb2x1
bW4gKyAxLCBANC5sYXN0X2NvbHVtbik7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAkJC5tX25vZGUgPSBjb21iaW5lQ29tbWFOb2RlcyhHTE9CQUxfREFUQSwgJDEu
bV9ub2RlLCBub2RlKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICQkLm1fdmFyRGVjbGFyYXRpb25zID0gJDEubV92YXJEZWNsYXJhdGlvbnM7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmRUb1ZhckRlY2xhcmF0aW9uTGlz
dChHTE9CQUxfREFUQSwgJCQubV92YXJEZWNsYXJhdGlvbnMsICokMywgRGVjbGFyYXRpb25TdGFj
a3M6Okhhc0luaXRpYWxpemVyKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICQkLm1fZnVuY0RlY2xhcmF0aW9ucyA9IDA7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAkJC5tX2ZlYXR1cmVzID0gJDEubV9mZWF0dXJlcyB8ICgoKiQz
ID09IEdMT0JBTF9EQVRBLT5wcm9wZXJ0eU5hbWVzLT5hcmd1bWVudHMpID8gQXJndW1lbnRzRmVh
dHVyZSA6IDApIHwgJDQubV9mZWF0dXJlczsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICQkLm1fbnVtQ29uc3RhbnRzID0gJDEubV9udW1Db25zdGFudHMgKyAkNC5t
X251bUNvbnN0YW50czsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9
Ci07Ci0KLUNvbnN0U3RhdGVtZW50OgotICAgIENPTlNUVE9LRU4gQ29uc3REZWNsYXJhdGlvbkxp
c3QgJzsnIHsgJCQgPSBjcmVhdGVOb2RlRGVjbGFyYXRpb25JbmZvPFN0YXRlbWVudE5vZGUqPihu
ZXcgKEdMT0JBTF9EQVRBKSBDb25zdFN0YXRlbWVudE5vZGUoR0xPQkFMX0RBVEEsICQyLm1fbm9k
ZS5oZWFkKSwgJDIubV92YXJEZWNsYXJhdGlvbnMsICQyLm1fZnVuY0RlY2xhcmF0aW9ucywgJDIu
bV9mZWF0dXJlcywgJDIubV9udW1Db25zdGFudHMpOwotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc2V0U3RhdGVtZW50TG9jYXRpb24oJCQubV9ub2RlLCBAMSwgQDMp
OyB9Ci0gIHwgQ09OU1RUT0tFTiBDb25zdERlY2xhcmF0aW9uTGlzdCBlcnJvcgotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgJCQgPSBjcmVhdGVOb2RlRGVjbGFyYXRp
b25JbmZvPFN0YXRlbWVudE5vZGUqPihuZXcgKEdMT0JBTF9EQVRBKSBDb25zdFN0YXRlbWVudE5v
ZGUoR0xPQkFMX0RBVEEsICQyLm1fbm9kZS5oZWFkKSwgJDIubV92YXJEZWNsYXJhdGlvbnMsICQy
Lm1fZnVuY0RlY2xhcmF0aW9ucywgJDIubV9mZWF0dXJlcywgJDIubV9udW1Db25zdGFudHMpOwot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0U3RhdGVtZW50TG9j
YXRpb24oJCQubV9ub2RlLCBAMSwgQDIpOyBBVVRPX1NFTUlDT0xPTjsgfQotOwotCi1Db25zdERl
Y2xhcmF0aW9uTGlzdDoKLSAgICBDb25zdERlY2xhcmF0aW9uICAgICAgICAgICAgICAgICAgICB7
ICQkLm1fbm9kZS5oZWFkID0gJDEubV9ub2RlOwotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgJCQubV9ub2RlLnRhaWwgPSAkJC5tX25vZGUuaGVhZDsKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQkLm1fdmFyRGVjbGFyYXRpb25zID0g
bmV3IChHTE9CQUxfREFUQSkgUGFyc2VyQXJlbmFEYXRhPERlY2xhcmF0aW9uU3RhY2tzOjpWYXJT
dGFjaz47Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmRU
b1ZhckRlY2xhcmF0aW9uTGlzdChHTE9CQUxfREFUQSwgJCQubV92YXJEZWNsYXJhdGlvbnMsICQx
Lm1fbm9kZSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkJC5t
X2Z1bmNEZWNsYXJhdGlvbnMgPSAwOyAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICQkLm1fZmVhdHVyZXMgPSAkMS5tX2ZlYXR1cmVzOwotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgJCQubV9udW1Db25zdGFudHMgPSAkMS5tX251bUNv
bnN0YW50czsKLSAgICB9Ci0gIHwgQ29uc3REZWNsYXJhdGlvbkxpc3QgJywnIENvbnN0RGVjbGFy
YXRpb24KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ICQkLm1fbm9k
ZS5oZWFkID0gJDEubV9ub2RlLmhlYWQ7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAkMS5tX25vZGUudGFpbC0+bV9uZXh0ID0gJDMubV9ub2RlOwotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCQubV9ub2RlLnRhaWwgPSAkMy5tX25v
ZGU7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkJC5tX3ZhckRl
Y2xhcmF0aW9ucyA9ICQxLm1fdmFyRGVjbGFyYXRpb25zOwotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgYXBwZW5kVG9WYXJEZWNsYXJhdGlvbkxpc3QoR0xPQkFMX0RB
VEEsICQkLm1fdmFyRGVjbGFyYXRpb25zLCAkMy5tX25vZGUpOwotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgJCQubV9mdW5jRGVjbGFyYXRpb25zID0gMDsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQkLm1fZmVhdHVyZXMgPSAkMS5t
X2ZlYXR1cmVzIHwgJDMubV9mZWF0dXJlczsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICQkLm1fbnVtQ29uc3RhbnRzID0gJDEubV9udW1Db25zdGFudHMgKyAkMy5t
X251bUNvbnN0YW50czsgfQotOwotCi1Db25zdERlY2xhcmF0aW9uOgotICAgIElERU5UICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHsgJCQgPSBjcmVhdGVOb2RlSW5mbzxDb25zdERlY2xO
b2RlKj4obmV3IChHTE9CQUxfREFUQSkgQ29uc3REZWNsTm9kZShHTE9CQUxfREFUQSwgKiQxLCAw
KSwgKCokMSA9PSBHTE9CQUxfREFUQS0+cHJvcGVydHlOYW1lcy0+YXJndW1lbnRzKSA/IEFyZ3Vt
ZW50c0ZlYXR1cmUgOiAwLCAwKTsgfQotICB8IElERU5UIEluaXRpYWxpemVyICAgICAgICAgICAg
ICAgICAgIHsgJCQgPSBjcmVhdGVOb2RlSW5mbzxDb25zdERlY2xOb2RlKj4obmV3IChHTE9CQUxf
REFUQSkgQ29uc3REZWNsTm9kZShHTE9CQUxfREFUQSwgKiQxLCAkMi5tX25vZGUpLCAoKCokMSA9
PSBHTE9CQUxfREFUQS0+cHJvcGVydHlOYW1lcy0+YXJndW1lbnRzKSA/IEFyZ3VtZW50c0ZlYXR1
cmUgOiAwKSB8ICQyLm1fZmVhdHVyZXMsICQyLm1fbnVtQ29uc3RhbnRzKTsgfQotOwotCi1Jbml0
aWFsaXplcjoKLSAgICAnPScgQXNzaWdubWVudEV4cHIgICAgICAgICAgICAgICAgICB7ICQkID0g
JDI7IH0KLTsKLQotSW5pdGlhbGl6ZXJOb0luOgotICAgICc9JyBBc3NpZ25tZW50RXhwck5vSW4g
ICAgICAgICAgICAgIHsgJCQgPSAkMjsgfQotOwotCi1FbXB0eVN0YXRlbWVudDoKLSAgICAnOycg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ICQkID0gY3JlYXRlTm9kZURlY2xhcmF0
aW9uSW5mbzxTdGF0ZW1lbnROb2RlKj4obmV3IChHTE9CQUxfREFUQSkgRW1wdHlTdGF0ZW1lbnRO
b2RlKEdMT0JBTF9EQVRBKSwgMCwgMCwgMCwgMCk7IH0KLTsKLQotRXhwclN0YXRlbWVudDoKLSAg
ICBFeHByTm9CRiAnOycgICAgICAgICAgICAgICAgICAgICAgICB7ICQkID0gY3JlYXRlTm9kZURl
Y2xhcmF0aW9uSW5mbzxTdGF0ZW1lbnROb2RlKj4obmV3IChHTE9CQUxfREFUQSkgRXhwclN0YXRl
bWVudE5vZGUoR0xPQkFMX0RBVEEsICQxLm1fbm9kZSksIDAsIDAsICQxLm1fZmVhdHVyZXMsICQx
Lm1fbnVtQ29uc3RhbnRzKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHNldFN0YXRlbWVudExvY2F0aW9uKCQkLm1fbm9kZSwgQDEsIEAyKTsgfQotICB8IEV4cHJO
b0JGIGVycm9yICAgICAgICAgICAgICAgICAgICAgIHsgJCQgPSBjcmVhdGVOb2RlRGVjbGFyYXRp
b25JbmZvPFN0YXRlbWVudE5vZGUqPihuZXcgKEdMT0JBTF9EQVRBKSBFeHByU3RhdGVtZW50Tm9k
ZShHTE9CQUxfREFUQSwgJDEubV9ub2RlKSwgMCwgMCwgJDEubV9mZWF0dXJlcywgJDEubV9udW1D
b25zdGFudHMpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0
U3RhdGVtZW50TG9jYXRpb24oJCQubV9ub2RlLCBAMSwgQDEpOyBBVVRPX1NFTUlDT0xPTjsgfQot
OwotCi1JZlN0YXRlbWVudDoKLSAgICBJRiAnKCcgRXhwciAnKScgU3RhdGVtZW50ICVwcmVjIElG
X1dJVEhPVVRfRUxTRQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsg
JCQgPSBjcmVhdGVOb2RlRGVjbGFyYXRpb25JbmZvPFN0YXRlbWVudE5vZGUqPihuZXcgKEdMT0JB
TF9EQVRBKSBJZk5vZGUoR0xPQkFMX0RBVEEsICQzLm1fbm9kZSwgJDUubV9ub2RlKSwgJDUubV92
YXJEZWNsYXJhdGlvbnMsICQ1Lm1fZnVuY0RlY2xhcmF0aW9ucywgJDMubV9mZWF0dXJlcyB8ICQ1
Lm1fZmVhdHVyZXMsICQzLm1fbnVtQ29uc3RhbnRzICsgJDUubV9udW1Db25zdGFudHMpOwotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0U3RhdGVtZW50TG9jYXRp
b24oJCQubV9ub2RlLCBAMSwgQDQpOyB9Ci0gIHwgSUYgJygnIEV4cHIgJyknIFN0YXRlbWVudCBF
TFNFIFN0YXRlbWVudAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsg
JCQgPSBjcmVhdGVOb2RlRGVjbGFyYXRpb25JbmZvPFN0YXRlbWVudE5vZGUqPihuZXcgKEdMT0JB
TF9EQVRBKSBJZkVsc2VOb2RlKEdMT0JBTF9EQVRBLCAkMy5tX25vZGUsICQ1Lm1fbm9kZSwgJDcu
bV9ub2RlKSwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lcmdlRGVjbGFyYXRp
b25MaXN0cygkNS5tX3ZhckRlY2xhcmF0aW9ucywgJDcubV92YXJEZWNsYXJhdGlvbnMpLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXJnZURlY2xhcmF0aW9uTGlzdHMoJDUubV9m
dW5jRGVjbGFyYXRpb25zLCAkNy5tX2Z1bmNEZWNsYXJhdGlvbnMpLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAkMy5tX2ZlYXR1cmVzIHwgJDUubV9mZWF0dXJlcyB8ICQ3Lm1fZmVh
dHVyZXMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQzLm1fbnVtQ29uc3RhbnRz
ICsgJDUubV9udW1Db25zdGFudHMgKyAkNy5tX251bUNvbnN0YW50cyk7IAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0U3RhdGVtZW50TG9jYXRpb24oJCQubV9u
b2RlLCBAMSwgQDQpOyB9Ci07Ci0KLUl0ZXJhdGlvblN0YXRlbWVudDoKLSAgICBETyBTdGF0ZW1l
bnQgV0hJTEUgJygnIEV4cHIgJyknICc7JyAgICB7ICQkID0gY3JlYXRlTm9kZURlY2xhcmF0aW9u
SW5mbzxTdGF0ZW1lbnROb2RlKj4obmV3IChHTE9CQUxfREFUQSkgRG9XaGlsZU5vZGUoR0xPQkFM
X0RBVEEsICQyLm1fbm9kZSwgJDUubV9ub2RlKSwgJDIubV92YXJEZWNsYXJhdGlvbnMsICQyLm1f
ZnVuY0RlY2xhcmF0aW9ucywgJDIubV9mZWF0dXJlcyB8ICQ1Lm1fZmVhdHVyZXMsICQyLm1fbnVt
Q29uc3RhbnRzICsgJDUubV9udW1Db25zdGFudHMpOwotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgc2V0U3RhdGVtZW50TG9jYXRpb24oJCQubV9ub2RlLCBAMSwg
QDMpOyB9Ci0gIHwgRE8gU3RhdGVtZW50IFdISUxFICcoJyBFeHByICcpJyBlcnJvciAgeyAkJCA9
IGNyZWF0ZU5vZGVEZWNsYXJhdGlvbkluZm88U3RhdGVtZW50Tm9kZSo+KG5ldyAoR0xPQkFMX0RB
VEEpIERvV2hpbGVOb2RlKEdMT0JBTF9EQVRBLCAkMi5tX25vZGUsICQ1Lm1fbm9kZSksICQyLm1f
dmFyRGVjbGFyYXRpb25zLCAkMi5tX2Z1bmNEZWNsYXJhdGlvbnMsICQyLm1fZmVhdHVyZXMgfCAk
NS5tX2ZlYXR1cmVzLCAkMi5tX251bUNvbnN0YW50cyArICQ1Lm1fbnVtQ29uc3RhbnRzKTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFN0YXRlbWVudExv
Y2F0aW9uKCQkLm1fbm9kZSwgQDEsIEAzKTsgfSAvLyBBbHdheXMgcGVyZm9ybXMgYXV0b21hdGlj
IHNlbWljb2xvbiBpbnNlcnRpb24uCi0gIHwgV0hJTEUgJygnIEV4cHIgJyknIFN0YXRlbWVudCAg
ICAgICAgeyAkJCA9IGNyZWF0ZU5vZGVEZWNsYXJhdGlvbkluZm88U3RhdGVtZW50Tm9kZSo+KG5l
dyAoR0xPQkFMX0RBVEEpIFdoaWxlTm9kZShHTE9CQUxfREFUQSwgJDMubV9ub2RlLCAkNS5tX25v
ZGUpLCAkNS5tX3ZhckRlY2xhcmF0aW9ucywgJDUubV9mdW5jRGVjbGFyYXRpb25zLCAkMy5tX2Zl
YXR1cmVzIHwgJDUubV9mZWF0dXJlcywgJDMubV9udW1Db25zdGFudHMgKyAkNS5tX251bUNvbnN0
YW50cyk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRTdGF0
ZW1lbnRMb2NhdGlvbigkJC5tX25vZGUsIEAxLCBANCk7IH0KLSAgfCBGT1IgJygnIEV4cHJOb0lu
T3B0ICc7JyBFeHByT3B0ICc7JyBFeHByT3B0ICcpJyBTdGF0ZW1lbnQKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB7ICQkID0gY3JlYXRlTm9kZURlY2xhcmF0aW9uSW5m
bzxTdGF0ZW1lbnROb2RlKj4obmV3IChHTE9CQUxfREFUQSkgRm9yTm9kZShHTE9CQUxfREFUQSwg
JDMubV9ub2RlLCAkNS5tX25vZGUsICQ3Lm1fbm9kZSwgJDkubV9ub2RlLCBmYWxzZSksICQ5Lm1f
dmFyRGVjbGFyYXRpb25zLCAkOS5tX2Z1bmNEZWNsYXJhdGlvbnMsIAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAkMy5tX2ZlYXR1cmVzIHwgJDUubV9mZWF0dXJlcyB8ICQ3Lm1fZmVh
dHVyZXMgfCAkOS5tX2ZlYXR1cmVzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAk
My5tX251bUNvbnN0YW50cyArICQ1Lm1fbnVtQ29uc3RhbnRzICsgJDcubV9udW1Db25zdGFudHMg
KyAkOS5tX251bUNvbnN0YW50cyk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzZXRTdGF0ZW1lbnRMb2NhdGlvbigkJC5tX25vZGUsIEAxLCBAOCk7IAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgfCBGT1IgJygnIFZBUiBWYXJp
YWJsZURlY2xhcmF0aW9uTGlzdE5vSW4gJzsnIEV4cHJPcHQgJzsnIEV4cHJPcHQgJyknIFN0YXRl
bWVudAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgJCQgPSBjcmVh
dGVOb2RlRGVjbGFyYXRpb25JbmZvPFN0YXRlbWVudE5vZGUqPihuZXcgKEdMT0JBTF9EQVRBKSBG
b3JOb2RlKEdMT0JBTF9EQVRBLCAkNC5tX25vZGUsICQ2Lm1fbm9kZSwgJDgubV9ub2RlLCAkMTAu
bV9ub2RlLCB0cnVlKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVyZ2VEZWNs
YXJhdGlvbkxpc3RzKCQ0Lm1fdmFyRGVjbGFyYXRpb25zLCAkMTAubV92YXJEZWNsYXJhdGlvbnMp
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXJnZURlY2xhcmF0aW9uTGlzdHMo
JDQubV9mdW5jRGVjbGFyYXRpb25zLCAkMTAubV9mdW5jRGVjbGFyYXRpb25zKSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgJDQubV9mZWF0dXJlcyB8ICQ2Lm1fZmVhdHVyZXMgfCAk
OC5tX2ZlYXR1cmVzIHwgJDEwLm1fZmVhdHVyZXMsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICQ0Lm1fbnVtQ29uc3RhbnRzICsgJDYubV9udW1Db25zdGFudHMgKyAkOC5tX251bUNv
bnN0YW50cyArICQxMC5tX251bUNvbnN0YW50cyk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzZXRTdGF0ZW1lbnRMb2NhdGlvbigkJC5tX25vZGUsIEAxLCBAOSk7
IH0KLSAgfCBGT1IgJygnIExlZnRIYW5kU2lkZUV4cHIgSU5UT0tFTiBFeHByICcpJyBTdGF0ZW1l
bnQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZvckluTm9kZSogbm9kZSA9IG5ldyAo
R0xPQkFMX0RBVEEpIEZvckluTm9kZShHTE9CQUxfREFUQSwgJDMubV9ub2RlLCAkNS5tX25vZGUs
ICQ3Lm1fbm9kZSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHNldEV4Y2VwdGlvbkxvY2F0aW9uKG5vZGUsIEAzLmZpcnN0X2NvbHVtbiwgQDMubGFzdF9jb2x1
bW4sIEA1Lmxhc3RfY29sdW1uKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgJCQgPSBjcmVhdGVOb2RlRGVjbGFyYXRpb25JbmZvPFN0YXRlbWVudE5vZGUqPihu
b2RlLCAkNy5tX3ZhckRlY2xhcmF0aW9ucywgJDcubV9mdW5jRGVjbGFyYXRpb25zLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICQzLm1fZmVhdHVyZXMgfCAkNS5tX2ZlYXR1cmVz
IHwgJDcubV9mZWF0dXJlcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkMy5t
X251bUNvbnN0YW50cyArICQ1Lm1fbnVtQ29uc3RhbnRzICsgJDcubV9udW1Db25zdGFudHMpOwot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRTdGF0ZW1lbnRM
b2NhdGlvbigkJC5tX25vZGUsIEAxLCBANik7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfQotICB8IEZPUiAnKCcgVkFSIElERU5UIElOVE9LRU4gRXhwciAnKScgU3Rh
dGVtZW50Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyBGb3JJbk5v
ZGUgKmZvckluID0gbmV3IChHTE9CQUxfREFUQSkgRm9ySW5Ob2RlKEdMT0JBTF9EQVRBLCAqJDQs
IDAsICQ2Lm1fbm9kZSwgJDgubV9ub2RlLCBANS5maXJzdF9jb2x1bW4sIEA1LmZpcnN0X2NvbHVt
biAtIEA0LmZpcnN0X2NvbHVtbiwgQDYubGFzdF9jb2x1bW4gLSBANS5maXJzdF9jb2x1bW4pOwot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0RXhjZXB0aW9uTG9j
YXRpb24oZm9ySW4sIEA0LmZpcnN0X2NvbHVtbiwgQDUuZmlyc3RfY29sdW1uICsgMSwgQDYubGFz
dF9jb2x1bW4pOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBw
ZW5kVG9WYXJEZWNsYXJhdGlvbkxpc3QoR0xPQkFMX0RBVEEsICQ4Lm1fdmFyRGVjbGFyYXRpb25z
LCAqJDQsIERlY2xhcmF0aW9uU3RhY2tzOjpIYXNJbml0aWFsaXplcik7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkJCA9IGNyZWF0ZU5vZGVEZWNsYXJhdGlvbklu
Zm88U3RhdGVtZW50Tm9kZSo+KGZvckluLCAkOC5tX3ZhckRlY2xhcmF0aW9ucywgJDgubV9mdW5j
RGVjbGFyYXRpb25zLCAoKCokNCA9PSBHTE9CQUxfREFUQS0+cHJvcGVydHlOYW1lcy0+YXJndW1l
bnRzKSA/IEFyZ3VtZW50c0ZlYXR1cmUgOiAwKSB8ICQ2Lm1fZmVhdHVyZXMgfCAkOC5tX2ZlYXR1
cmVzLCAkNi5tX251bUNvbnN0YW50cyArICQ4Lm1fbnVtQ29uc3RhbnRzKTsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFN0YXRlbWVudExvY2F0aW9uKCQkLm1f
bm9kZSwgQDEsIEA3KTsgfQotICB8IEZPUiAnKCcgVkFSIElERU5UIEluaXRpYWxpemVyTm9JbiBJ
TlRPS0VOIEV4cHIgJyknIFN0YXRlbWVudAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHsgRm9ySW5Ob2RlICpmb3JJbiA9IG5ldyAoR0xPQkFMX0RBVEEpIEZvckluTm9k
ZShHTE9CQUxfREFUQSwgKiQ0LCAkNS5tX25vZGUsICQ3Lm1fbm9kZSwgJDkubV9ub2RlLCBANS5m
aXJzdF9jb2x1bW4sIEA1LmZpcnN0X2NvbHVtbiAtIEA0LmZpcnN0X2NvbHVtbiwgQDUubGFzdF9j
b2x1bW4gLSBANS5maXJzdF9jb2x1bW4pOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgc2V0RXhjZXB0aW9uTG9jYXRpb24oZm9ySW4sIEA0LmZpcnN0X2NvbHVtbiwg
QDYuZmlyc3RfY29sdW1uICsgMSwgQDcubGFzdF9jb2x1bW4pOwotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kVG9WYXJEZWNsYXJhdGlvbkxpc3QoR0xPQkFM
X0RBVEEsICQ5Lm1fdmFyRGVjbGFyYXRpb25zLCAqJDQsIERlY2xhcmF0aW9uU3RhY2tzOjpIYXNJ
bml0aWFsaXplcik7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAk
JCA9IGNyZWF0ZU5vZGVEZWNsYXJhdGlvbkluZm88U3RhdGVtZW50Tm9kZSo+KGZvckluLCAkOS5t
X3ZhckRlY2xhcmF0aW9ucywgJDkubV9mdW5jRGVjbGFyYXRpb25zLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAoKCokNCA9PSBHTE9CQUxfREFUQS0+cHJvcGVydHlOYW1lcy0+YXJn
dW1lbnRzKSA/IEFyZ3VtZW50c0ZlYXR1cmUgOiAwKSB8ICQ1Lm1fZmVhdHVyZXMgfCAkNy5tX2Zl
YXR1cmVzIHwgJDkubV9mZWF0dXJlcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
JDUubV9udW1Db25zdGFudHMgKyAkNy5tX251bUNvbnN0YW50cyArICQ5Lm1fbnVtQ29uc3RhbnRz
KTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFN0YXRlbWVu
dExvY2F0aW9uKCQkLm1fbm9kZSwgQDEsIEA4KTsgfQotOwotCi1FeHByT3B0OgotICAgIC8qIG5v
dGhpbmcgKi8gICAgICAgICAgICAgICAgICAgICAgIHsgJCQgPSBjcmVhdGVOb2RlSW5mbzxFeHBy
ZXNzaW9uTm9kZSo+KDAsIDAsIDApOyB9Ci0gIHwgRXhwcgotOwotCi1FeHByTm9Jbk9wdDoKLSAg
ICAvKiBub3RoaW5nICovICAgICAgICAgICAgICAgICAgICAgICB7ICQkID0gY3JlYXRlTm9kZUlu
Zm88RXhwcmVzc2lvbk5vZGUqPigwLCAwLCAwKTsgfQotICB8IEV4cHJOb0luCi07Ci0KLUNvbnRp
bnVlU3RhdGVtZW50OgotICAgIENPTlRJTlVFICc7JyAgICAgICAgICAgICAgICAgICAgICAgIHsg
Q29udGludWVOb2RlKiBub2RlID0gbmV3IChHTE9CQUxfREFUQSkgQ29udGludWVOb2RlKEdMT0JB
TF9EQVRBKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldEV4
Y2VwdGlvbkxvY2F0aW9uKG5vZGUsIEAxLmZpcnN0X2NvbHVtbiwgQDEubGFzdF9jb2x1bW4sIEAx
Lmxhc3RfY29sdW1uKTsgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAkJCA9IGNyZWF0ZU5vZGVEZWNsYXJhdGlvbkluZm88U3RhdGVtZW50Tm9kZSo+KG5vZGUsIDAs
IDAsIDAsIDApOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0
U3RhdGVtZW50TG9jYXRpb24oJCQubV9ub2RlLCBAMSwgQDIpOyB9Ci0gIHwgQ09OVElOVUUgZXJy
b3IgICAgICAgICAgICAgICAgICAgICAgeyBDb250aW51ZU5vZGUqIG5vZGUgPSBuZXcgKEdMT0JB
TF9EQVRBKSBDb250aW51ZU5vZGUoR0xPQkFMX0RBVEEpOwotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgc2V0RXhjZXB0aW9uTG9jYXRpb24obm9kZSwgQDEuZmlyc3Rf
Y29sdW1uLCBAMS5sYXN0X2NvbHVtbiwgQDEubGFzdF9jb2x1bW4pOyAKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICQkID0gY3JlYXRlTm9kZURlY2xhcmF0aW9uSW5m
bzxTdGF0ZW1lbnROb2RlKj4obm9kZSwgMCwgMCwgMCwgMCk7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBzZXRTdGF0ZW1lbnRMb2NhdGlvbigkJC5tX25vZGUsIEAx
LCBAMSk7IEFVVE9fU0VNSUNPTE9OOyB9Ci0gIHwgQ09OVElOVUUgSURFTlQgJzsnICAgICAgICAg
ICAgICAgICAgeyBDb250aW51ZU5vZGUqIG5vZGUgPSBuZXcgKEdMT0JBTF9EQVRBKSBDb250aW51
ZU5vZGUoR0xPQkFMX0RBVEEsICokMik7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzZXRFeGNlcHRpb25Mb2NhdGlvbihub2RlLCBAMS5maXJzdF9jb2x1bW4sIEAy
Lmxhc3RfY29sdW1uLCBAMi5sYXN0X2NvbHVtbik7IAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgJCQgPSBjcmVhdGVOb2RlRGVjbGFyYXRpb25JbmZvPFN0YXRlbWVu
dE5vZGUqPihub2RlLCAwLCAwLCAwLCAwKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHNldFN0YXRlbWVudExvY2F0aW9uKCQkLm1fbm9kZSwgQDEsIEAzKTsgfQot
ICB8IENPTlRJTlVFIElERU5UIGVycm9yICAgICAgICAgICAgICAgIHsgQ29udGludWVOb2RlKiBu
b2RlID0gbmV3IChHTE9CQUxfREFUQSkgQ29udGludWVOb2RlKEdMT0JBTF9EQVRBLCAqJDIpOwot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0RXhjZXB0aW9uTG9j
YXRpb24obm9kZSwgQDEuZmlyc3RfY29sdW1uLCBAMi5sYXN0X2NvbHVtbiwgQDIubGFzdF9jb2x1
bW4pOyAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQkID0gY3Jl
YXRlTm9kZURlY2xhcmF0aW9uSW5mbzxTdGF0ZW1lbnROb2RlKj4obm9kZSwgMCwgMCwgMCwgMCk7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRTdGF0ZW1lbnRM
b2NhdGlvbigkJC5tX25vZGUsIEAxLCBAMik7IEFVVE9fU0VNSUNPTE9OOyB9Ci07Ci0KLUJyZWFr
U3RhdGVtZW50OgotICAgIEJSRUFLICc7JyAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgQnJl
YWtOb2RlKiBub2RlID0gbmV3IChHTE9CQUxfREFUQSkgQnJlYWtOb2RlKEdMT0JBTF9EQVRBKTsK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldEV4Y2VwdGlvbkxv
Y2F0aW9uKG5vZGUsIEAxLmZpcnN0X2NvbHVtbiwgQDEubGFzdF9jb2x1bW4sIEAxLmxhc3RfY29s
dW1uKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQkID0gY3Jl
YXRlTm9kZURlY2xhcmF0aW9uSW5mbzxTdGF0ZW1lbnROb2RlKj4obm9kZSwgMCwgMCwgMCwgMCk7
IHNldFN0YXRlbWVudExvY2F0aW9uKCQkLm1fbm9kZSwgQDEsIEAyKTsgfQotICB8IEJSRUFLIGVy
cm9yICAgICAgICAgICAgICAgICAgICAgICAgIHsgQnJlYWtOb2RlKiBub2RlID0gbmV3IChHTE9C
QUxfREFUQSkgQnJlYWtOb2RlKEdMT0JBTF9EQVRBKTsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHNldEV4Y2VwdGlvbkxvY2F0aW9uKG5vZGUsIEAxLmZpcnN0X2Nv
bHVtbiwgQDEubGFzdF9jb2x1bW4sIEAxLmxhc3RfY29sdW1uKTsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICQkID0gY3JlYXRlTm9kZURlY2xhcmF0aW9uSW5mbzxT
dGF0ZW1lbnROb2RlKj4obmV3IChHTE9CQUxfREFUQSkgQnJlYWtOb2RlKEdMT0JBTF9EQVRBKSwg
MCwgMCwgMCwgMCk7IHNldFN0YXRlbWVudExvY2F0aW9uKCQkLm1fbm9kZSwgQDEsIEAxKTsgQVVU
T19TRU1JQ09MT047IH0KLSAgfCBCUkVBSyBJREVOVCAnOycgICAgICAgICAgICAgICAgICAgICB7
IEJyZWFrTm9kZSogbm9kZSA9IG5ldyAoR0xPQkFMX0RBVEEpIEJyZWFrTm9kZShHTE9CQUxfREFU
QSwgKiQyKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldEV4
Y2VwdGlvbkxvY2F0aW9uKG5vZGUsIEAxLmZpcnN0X2NvbHVtbiwgQDIubGFzdF9jb2x1bW4sIEAy
Lmxhc3RfY29sdW1uKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICQkID0gY3JlYXRlTm9kZURlY2xhcmF0aW9uSW5mbzxTdGF0ZW1lbnROb2RlKj4obm9kZSwgMCwg
MCwgMCwgMCk7IHNldFN0YXRlbWVudExvY2F0aW9uKCQkLm1fbm9kZSwgQDEsIEAzKTsgfQotICB8
IEJSRUFLIElERU5UIGVycm9yICAgICAgICAgICAgICAgICAgIHsgQnJlYWtOb2RlKiBub2RlID0g
bmV3IChHTE9CQUxfREFUQSkgQnJlYWtOb2RlKEdMT0JBTF9EQVRBLCAqJDIpOwotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0RXhjZXB0aW9uTG9jYXRpb24obm9k
ZSwgQDEuZmlyc3RfY29sdW1uLCBAMi5sYXN0X2NvbHVtbiwgQDIubGFzdF9jb2x1bW4pOwotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCQgPSBjcmVhdGVOb2RlRGVj
bGFyYXRpb25JbmZvPFN0YXRlbWVudE5vZGUqPihuZXcgKEdMT0JBTF9EQVRBKSBCcmVha05vZGUo
R0xPQkFMX0RBVEEsICokMiksIDAsIDAsIDAsIDApOyBzZXRTdGF0ZW1lbnRMb2NhdGlvbigkJC5t
X25vZGUsIEAxLCBAMik7IEFVVE9fU0VNSUNPTE9OOyB9Ci07Ci0KLVJldHVyblN0YXRlbWVudDoK
LSAgICBSRVRVUk4gJzsnICAgICAgICAgICAgICAgICAgICAgICAgICB7IFJldHVybk5vZGUqIG5v
ZGUgPSBuZXcgKEdMT0JBTF9EQVRBKSBSZXR1cm5Ob2RlKEdMT0JBTF9EQVRBLCAwKTsgCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRFeGNlcHRpb25Mb2NhdGlv
bihub2RlLCBAMS5maXJzdF9jb2x1bW4sIEAxLmxhc3RfY29sdW1uLCBAMS5sYXN0X2NvbHVtbik7
IAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCQgPSBjcmVhdGVO
b2RlRGVjbGFyYXRpb25JbmZvPFN0YXRlbWVudE5vZGUqPihub2RlLCAwLCAwLCAwLCAwKTsgc2V0
U3RhdGVtZW50TG9jYXRpb24oJCQubV9ub2RlLCBAMSwgQDIpOyB9Ci0gIHwgUkVUVVJOIGVycm9y
ICAgICAgICAgICAgICAgICAgICAgICAgeyBSZXR1cm5Ob2RlKiBub2RlID0gbmV3IChHTE9CQUxf
REFUQSkgUmV0dXJuTm9kZShHTE9CQUxfREFUQSwgMCk7IAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgc2V0RXhjZXB0aW9uTG9jYXRpb24obm9kZSwgQDEuZmlyc3Rf
Y29sdW1uLCBAMS5sYXN0X2NvbHVtbiwgQDEubGFzdF9jb2x1bW4pOyAKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICQkID0gY3JlYXRlTm9kZURlY2xhcmF0aW9uSW5m
bzxTdGF0ZW1lbnROb2RlKj4obm9kZSwgMCwgMCwgMCwgMCk7IHNldFN0YXRlbWVudExvY2F0aW9u
KCQkLm1fbm9kZSwgQDEsIEAxKTsgQVVUT19TRU1JQ09MT047IH0KLSAgfCBSRVRVUk4gRXhwciAn
OycgICAgICAgICAgICAgICAgICAgICB7IFJldHVybk5vZGUqIG5vZGUgPSBuZXcgKEdMT0JBTF9E
QVRBKSBSZXR1cm5Ob2RlKEdMT0JBTF9EQVRBLCAkMi5tX25vZGUpOyAKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldEV4Y2VwdGlvbkxvY2F0aW9uKG5vZGUsIEAx
LmZpcnN0X2NvbHVtbiwgQDIubGFzdF9jb2x1bW4sIEAyLmxhc3RfY29sdW1uKTsKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQkID0gY3JlYXRlTm9kZURlY2xhcmF0
aW9uSW5mbzxTdGF0ZW1lbnROb2RlKj4obm9kZSwgMCwgMCwgJDIubV9mZWF0dXJlcywgJDIubV9u
dW1Db25zdGFudHMpOyBzZXRTdGF0ZW1lbnRMb2NhdGlvbigkJC5tX25vZGUsIEAxLCBAMyk7IH0K
LSAgfCBSRVRVUk4gRXhwciBlcnJvciAgICAgICAgICAgICAgICAgICB7IFJldHVybk5vZGUqIG5v
ZGUgPSBuZXcgKEdMT0JBTF9EQVRBKSBSZXR1cm5Ob2RlKEdMT0JBTF9EQVRBLCAkMi5tX25vZGUp
OyAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldEV4Y2VwdGlv
bkxvY2F0aW9uKG5vZGUsIEAxLmZpcnN0X2NvbHVtbiwgQDIubGFzdF9jb2x1bW4sIEAyLmxhc3Rf
Y29sdW1uKTsgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkJCA9
IGNyZWF0ZU5vZGVEZWNsYXJhdGlvbkluZm88U3RhdGVtZW50Tm9kZSo+KG5vZGUsIDAsIDAsICQy
Lm1fZmVhdHVyZXMsICQyLm1fbnVtQ29uc3RhbnRzKTsgc2V0U3RhdGVtZW50TG9jYXRpb24oJCQu
bV9ub2RlLCBAMSwgQDIpOyBBVVRPX1NFTUlDT0xPTjsgfQotOwotCi1XaXRoU3RhdGVtZW50Ogot
ICAgIFdJVEggJygnIEV4cHIgJyknIFN0YXRlbWVudCAgICAgICAgIHsgJCQgPSBjcmVhdGVOb2Rl
RGVjbGFyYXRpb25JbmZvPFN0YXRlbWVudE5vZGUqPihuZXcgKEdMT0JBTF9EQVRBKSBXaXRoTm9k
ZShHTE9CQUxfREFUQSwgJDMubV9ub2RlLCAkNS5tX25vZGUsIEAzLmxhc3RfY29sdW1uLCBAMy5s
YXN0X2NvbHVtbiAtIEAzLmZpcnN0X2NvbHVtbiksCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICQ1Lm1fdmFyRGVjbGFyYXRpb25zLCAkNS5tX2Z1bmNEZWNsYXJhdGlvbnMsICQzLm1f
ZmVhdHVyZXMgfCAkNS5tX2ZlYXR1cmVzIHwgV2l0aEZlYXR1cmUsICQzLm1fbnVtQ29uc3RhbnRz
ICsgJDUubV9udW1Db25zdGFudHMpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc2V0U3RhdGVtZW50TG9jYXRpb24oJCQubV9ub2RlLCBAMSwgQDQpOyB9Ci07Ci0K
LVN3aXRjaFN0YXRlbWVudDoKLSAgICBTV0lUQ0ggJygnIEV4cHIgJyknIENhc2VCbG9jayAgICAg
ICB7ICQkID0gY3JlYXRlTm9kZURlY2xhcmF0aW9uSW5mbzxTdGF0ZW1lbnROb2RlKj4obmV3IChH
TE9CQUxfREFUQSkgU3dpdGNoTm9kZShHTE9CQUxfREFUQSwgJDMubV9ub2RlLCAkNS5tX25vZGUp
LCAkNS5tX3ZhckRlY2xhcmF0aW9ucywgJDUubV9mdW5jRGVjbGFyYXRpb25zLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAkMy5tX2ZlYXR1cmVzIHwgJDUubV9mZWF0dXJlcywgJDMu
bV9udW1Db25zdGFudHMgKyAkNS5tX251bUNvbnN0YW50cyk7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBzZXRTdGF0ZW1lbnRMb2NhdGlvbigkJC5tX25vZGUsIEAx
LCBANCk7IH0KLTsKLQotQ2FzZUJsb2NrOgotICAgIE9QRU5CUkFDRSBDYXNlQ2xhdXNlc09wdCBD
TE9TRUJSQUNFICAgICAgICAgICAgICB7ICQkID0gY3JlYXRlTm9kZURlY2xhcmF0aW9uSW5mbzxD
YXNlQmxvY2tOb2RlKj4obmV3IChHTE9CQUxfREFUQSkgQ2FzZUJsb2NrTm9kZShHTE9CQUxfREFU
QSwgJDIubV9ub2RlLmhlYWQsIDAsIDApLCAkMi5tX3ZhckRlY2xhcmF0aW9ucywgJDIubV9mdW5j
RGVjbGFyYXRpb25zLCAkMi5tX2ZlYXR1cmVzLCAkMi5tX251bUNvbnN0YW50cyk7IH0KLSAgfCBP
UEVOQlJBQ0UgQ2FzZUNsYXVzZXNPcHQgRGVmYXVsdENsYXVzZSBDYXNlQ2xhdXNlc09wdCBDTE9T
RUJSQUNFCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAkJCA9IGNy
ZWF0ZU5vZGVEZWNsYXJhdGlvbkluZm88Q2FzZUJsb2NrTm9kZSo+KG5ldyAoR0xPQkFMX0RBVEEp
IENhc2VCbG9ja05vZGUoR0xPQkFMX0RBVEEsICQyLm1fbm9kZS5oZWFkLCAkMy5tX25vZGUsICQ0
Lm1fbm9kZS5oZWFkKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVyZ2VEZWNs
YXJhdGlvbkxpc3RzKG1lcmdlRGVjbGFyYXRpb25MaXN0cygkMi5tX3ZhckRlY2xhcmF0aW9ucywg
JDMubV92YXJEZWNsYXJhdGlvbnMpLCAkNC5tX3ZhckRlY2xhcmF0aW9ucyksCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG1lcmdlRGVjbGFyYXRpb25MaXN0cyhtZXJnZURlY2xhcmF0
aW9uTGlzdHMoJDIubV9mdW5jRGVjbGFyYXRpb25zLCAkMy5tX2Z1bmNEZWNsYXJhdGlvbnMpLCAk
NC5tX2Z1bmNEZWNsYXJhdGlvbnMpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAk
Mi5tX2ZlYXR1cmVzIHwgJDMubV9mZWF0dXJlcyB8ICQ0Lm1fZmVhdHVyZXMsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICQyLm1fbnVtQ29uc3RhbnRzICsgJDMubV9udW1Db25zdGFu
dHMgKyAkNC5tX251bUNvbnN0YW50cyk7IH0KLTsKLQotQ2FzZUNsYXVzZXNPcHQ6Ci0gIC8qIG5v
dGhpbmcgKi8gICAgICAgICAgICAgICAgICAgICAgICAgeyAkJC5tX25vZGUuaGVhZCA9IDA7ICQk
Lm1fbm9kZS50YWlsID0gMDsgJCQubV92YXJEZWNsYXJhdGlvbnMgPSAwOyAkJC5tX2Z1bmNEZWNs
YXJhdGlvbnMgPSAwOyAkJC5tX2ZlYXR1cmVzID0gMDsgJCQubV9udW1Db25zdGFudHMgPSAwOyB9
Ci0gIHwgQ2FzZUNsYXVzZXMKLTsKLQotQ2FzZUNsYXVzZXM6Ci0gICAgQ2FzZUNsYXVzZSAgICAg
ICAgICAgICAgICAgICAgICAgICAgeyAkJC5tX25vZGUuaGVhZCA9IG5ldyAoR0xPQkFMX0RBVEEp
IENsYXVzZUxpc3ROb2RlKEdMT0JBTF9EQVRBLCAkMS5tX25vZGUpOwotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgJCQubV9ub2RlLnRhaWwgPSAkJC5tX25vZGUuaGVh
ZDsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQkLm1fdmFyRGVj
bGFyYXRpb25zID0gJDEubV92YXJEZWNsYXJhdGlvbnM7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAkJC5tX2Z1bmNEZWNsYXJhdGlvbnMgPSAkMS5tX2Z1bmNEZWNs
YXJhdGlvbnM7IAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCQu
bV9mZWF0dXJlcyA9ICQxLm1fZmVhdHVyZXM7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAkJC5tX251bUNvbnN0YW50cyA9ICQxLm1fbnVtQ29uc3RhbnRzOyB9Ci0g
IHwgQ2FzZUNsYXVzZXMgQ2FzZUNsYXVzZSAgICAgICAgICAgICAgeyAkJC5tX25vZGUuaGVhZCA9
ICQxLm1fbm9kZS5oZWFkOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgJCQubV9ub2RlLnRhaWwgPSBuZXcgKEdMT0JBTF9EQVRBKSBDbGF1c2VMaXN0Tm9kZShHTE9C
QUxfREFUQSwgJDEubV9ub2RlLnRhaWwsICQyLm1fbm9kZSk7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAkJC5tX3ZhckRlY2xhcmF0aW9ucyA9IG1lcmdlRGVjbGFy
YXRpb25MaXN0cygkMS5tX3ZhckRlY2xhcmF0aW9ucywgJDIubV92YXJEZWNsYXJhdGlvbnMpOwot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCQubV9mdW5jRGVjbGFy
YXRpb25zID0gbWVyZ2VEZWNsYXJhdGlvbkxpc3RzKCQxLm1fZnVuY0RlY2xhcmF0aW9ucywgJDIu
bV9mdW5jRGVjbGFyYXRpb25zKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICQkLm1fZmVhdHVyZXMgPSAkMS5tX2ZlYXR1cmVzIHwgJDIubV9mZWF0dXJlczsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQkLm1fbnVtQ29uc3RhbnRz
ID0gJDEubV9udW1Db25zdGFudHMgKyAkMi5tX251bUNvbnN0YW50czsKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci07Ci0KLUNhc2VDbGF1c2U6Ci0gICAgQ0FTRSBF
eHByICc6JyAgICAgICAgICAgICAgICAgICAgICAgeyAkJCA9IGNyZWF0ZU5vZGVEZWNsYXJhdGlv
bkluZm88Q2FzZUNsYXVzZU5vZGUqPihuZXcgKEdMT0JBTF9EQVRBKSBDYXNlQ2xhdXNlTm9kZShH
TE9CQUxfREFUQSwgJDIubV9ub2RlKSwgMCwgMCwgJDIubV9mZWF0dXJlcywgJDIubV9udW1Db25z
dGFudHMpOyB9Ci0gIHwgQ0FTRSBFeHByICc6JyBTb3VyY2VFbGVtZW50cyAgICAgICAgeyAkJCA9
IGNyZWF0ZU5vZGVEZWNsYXJhdGlvbkluZm88Q2FzZUNsYXVzZU5vZGUqPihuZXcgKEdMT0JBTF9E
QVRBKSBDYXNlQ2xhdXNlTm9kZShHTE9CQUxfREFUQSwgJDIubV9ub2RlLCAkNC5tX25vZGUpLCAk
NC5tX3ZhckRlY2xhcmF0aW9ucywgJDQubV9mdW5jRGVjbGFyYXRpb25zLCAkMi5tX2ZlYXR1cmVz
IHwgJDQubV9mZWF0dXJlcywgJDIubV9udW1Db25zdGFudHMgKyAkNC5tX251bUNvbnN0YW50cyk7
IH0KLTsKLQotRGVmYXVsdENsYXVzZToKLSAgICBERUZBVUxUICc6JyAgICAgICAgICAgICAgICAg
ICAgICAgICB7ICQkID0gY3JlYXRlTm9kZURlY2xhcmF0aW9uSW5mbzxDYXNlQ2xhdXNlTm9kZSo+
KG5ldyAoR0xPQkFMX0RBVEEpIENhc2VDbGF1c2VOb2RlKEdMT0JBTF9EQVRBLCAwKSwgMCwgMCwg
MCwgMCk7IH0KLSAgfCBERUZBVUxUICc6JyBTb3VyY2VFbGVtZW50cyAgICAgICAgICB7ICQkID0g
Y3JlYXRlTm9kZURlY2xhcmF0aW9uSW5mbzxDYXNlQ2xhdXNlTm9kZSo+KG5ldyAoR0xPQkFMX0RB
VEEpIENhc2VDbGF1c2VOb2RlKEdMT0JBTF9EQVRBLCAwLCAkMy5tX25vZGUpLCAkMy5tX3ZhckRl
Y2xhcmF0aW9ucywgJDMubV9mdW5jRGVjbGFyYXRpb25zLCAkMy5tX2ZlYXR1cmVzLCAkMy5tX251
bUNvbnN0YW50cyk7IH0KLTsKLQotTGFiZWxsZWRTdGF0ZW1lbnQ6Ci0gICAgSURFTlQgJzonIFN0
YXRlbWVudCAgICAgICAgICAgICAgICAgeyBMYWJlbE5vZGUqIG5vZGUgPSBuZXcgKEdMT0JBTF9E
QVRBKSBMYWJlbE5vZGUoR0xPQkFMX0RBVEEsICokMSwgJDMubV9ub2RlKTsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldEV4Y2VwdGlvbkxvY2F0aW9uKG5vZGUs
IEAxLmZpcnN0X2NvbHVtbiwgQDIubGFzdF9jb2x1bW4sIEAyLmxhc3RfY29sdW1uKTsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQkID0gY3JlYXRlTm9kZURlY2xh
cmF0aW9uSW5mbzxTdGF0ZW1lbnROb2RlKj4obm9kZSwgJDMubV92YXJEZWNsYXJhdGlvbnMsICQz
Lm1fZnVuY0RlY2xhcmF0aW9ucywgJDMubV9mZWF0dXJlcywgJDMubV9udW1Db25zdGFudHMpOyB9
Ci07Ci0KLVRocm93U3RhdGVtZW50OgotICAgIFRIUk9XIEV4cHIgJzsnICAgICAgICAgICAgICAg
ICAgICAgIHsgVGhyb3dOb2RlKiBub2RlID0gbmV3IChHTE9CQUxfREFUQSkgVGhyb3dOb2RlKEdM
T0JBTF9EQVRBLCAkMi5tX25vZGUpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc2V0RXhjZXB0aW9uTG9jYXRpb24obm9kZSwgQDEuZmlyc3RfY29sdW1uLCBAMi5s
YXN0X2NvbHVtbiwgQDIubGFzdF9jb2x1bW4pOwotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgJCQgPSBjcmVhdGVOb2RlRGVjbGFyYXRpb25JbmZvPFN0YXRlbWVudE5v
ZGUqPihub2RlLCAwLCAwLCAkMi5tX2ZlYXR1cmVzLCAkMi5tX251bUNvbnN0YW50cyk7IHNldFN0
YXRlbWVudExvY2F0aW9uKCQkLm1fbm9kZSwgQDEsIEAyKTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB9Ci0gIHwgVEhST1cgRXhwciBlcnJvciAgICAgICAgICAgICAg
ICAgICAgeyBUaHJvd05vZGUqIG5vZGUgPSBuZXcgKEdMT0JBTF9EQVRBKSBUaHJvd05vZGUoR0xP
QkFMX0RBVEEsICQyLm1fbm9kZSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzZXRFeGNlcHRpb25Mb2NhdGlvbihub2RlLCBAMS5maXJzdF9jb2x1bW4sIEAyLmxh
c3RfY29sdW1uLCBAMi5sYXN0X2NvbHVtbik7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAkJCA9IGNyZWF0ZU5vZGVEZWNsYXJhdGlvbkluZm88U3RhdGVtZW50Tm9k
ZSo+KG5vZGUsIDAsIDAsICQyLm1fZmVhdHVyZXMsICQyLm1fbnVtQ29uc3RhbnRzKTsgc2V0U3Rh
dGVtZW50TG9jYXRpb24oJCQubV9ub2RlLCBAMSwgQDIpOyBBVVRPX1NFTUlDT0xPTjsgCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotOwotCi1UcnlTdGF0ZW1lbnQ6
Ci0gICAgVFJZIEJsb2NrIEZJTkFMTFkgQmxvY2sgICAgICAgICAgICAgeyAkJCA9IGNyZWF0ZU5v
ZGVEZWNsYXJhdGlvbkluZm88U3RhdGVtZW50Tm9kZSo+KG5ldyAoR0xPQkFMX0RBVEEpIFRyeU5v
ZGUoR0xPQkFMX0RBVEEsICQyLm1fbm9kZSwgR0xPQkFMX0RBVEEtPnByb3BlcnR5TmFtZXMtPm51
bGxJZGVudGlmaWVyLCBmYWxzZSwgMCwgJDQubV9ub2RlKSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbWVyZ2VEZWNsYXJhdGlvbkxpc3RzKCQyLm1fdmFyRGVjbGFyYXRpb25zLCAk
NC5tX3ZhckRlY2xhcmF0aW9ucyksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1l
cmdlRGVjbGFyYXRpb25MaXN0cygkMi5tX2Z1bmNEZWNsYXJhdGlvbnMsICQ0Lm1fZnVuY0RlY2xh
cmF0aW9ucyksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQyLm1fZmVhdHVyZXMg
fCAkNC5tX2ZlYXR1cmVzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkMi5tX251
bUNvbnN0YW50cyArICQ0Lm1fbnVtQ29uc3RhbnRzKTsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHNldFN0YXRlbWVudExvY2F0aW9uKCQkLm1fbm9kZSwgQDEsIEAy
KTsgfQotICB8IFRSWSBCbG9jayBDQVRDSCAnKCcgSURFTlQgJyknIEJsb2NrIHsgJCQgPSBjcmVh
dGVOb2RlRGVjbGFyYXRpb25JbmZvPFN0YXRlbWVudE5vZGUqPihuZXcgKEdMT0JBTF9EQVRBKSBU
cnlOb2RlKEdMT0JBTF9EQVRBLCAkMi5tX25vZGUsICokNSwgKCQ3Lm1fZmVhdHVyZXMgJiBFdmFs
RmVhdHVyZSkgIT0gMCwgJDcubV9ub2RlLCAwKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbWVyZ2VEZWNsYXJhdGlvbkxpc3RzKCQyLm1fdmFyRGVjbGFyYXRpb25zLCAkNy5tX3Zh
ckRlY2xhcmF0aW9ucyksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lcmdlRGVj
bGFyYXRpb25MaXN0cygkMi5tX2Z1bmNEZWNsYXJhdGlvbnMsICQ3Lm1fZnVuY0RlY2xhcmF0aW9u
cyksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQyLm1fZmVhdHVyZXMgfCAkNy5t
X2ZlYXR1cmVzIHwgQ2F0Y2hGZWF0dXJlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAkMi5tX251bUNvbnN0YW50cyArICQ3Lm1fbnVtQ29uc3RhbnRzKTsKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFN0YXRlbWVudExvY2F0aW9uKCQkLm1fbm9k
ZSwgQDEsIEAyKTsgfQotICB8IFRSWSBCbG9jayBDQVRDSCAnKCcgSURFTlQgJyknIEJsb2NrIEZJ
TkFMTFkgQmxvY2sKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ICQk
ID0gY3JlYXRlTm9kZURlY2xhcmF0aW9uSW5mbzxTdGF0ZW1lbnROb2RlKj4obmV3IChHTE9CQUxf
REFUQSkgVHJ5Tm9kZShHTE9CQUxfREFUQSwgJDIubV9ub2RlLCAqJDUsICgkNy5tX2ZlYXR1cmVz
ICYgRXZhbEZlYXR1cmUpICE9IDAsICQ3Lm1fbm9kZSwgJDkubV9ub2RlKSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbWVyZ2VEZWNsYXJhdGlvbkxpc3RzKG1lcmdlRGVjbGFyYXRp
b25MaXN0cygkMi5tX3ZhckRlY2xhcmF0aW9ucywgJDcubV92YXJEZWNsYXJhdGlvbnMpLCAkOS5t
X3ZhckRlY2xhcmF0aW9ucyksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lcmdl
RGVjbGFyYXRpb25MaXN0cyhtZXJnZURlY2xhcmF0aW9uTGlzdHMoJDIubV9mdW5jRGVjbGFyYXRp
b25zLCAkNy5tX2Z1bmNEZWNsYXJhdGlvbnMpLCAkOS5tX2Z1bmNEZWNsYXJhdGlvbnMpLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkMi5tX2ZlYXR1cmVzIHwgJDcubV9mZWF0dXJl
cyB8ICQ5Lm1fZmVhdHVyZXMgfCBDYXRjaEZlYXR1cmUsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICQyLm1fbnVtQ29uc3RhbnRzICsgJDcubV9udW1Db25zdGFudHMgKyAkOS5tX251
bUNvbnN0YW50cyk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz
ZXRTdGF0ZW1lbnRMb2NhdGlvbigkJC5tX25vZGUsIEAxLCBAMik7IH0KLTsKLQotRGVidWdnZXJT
dGF0ZW1lbnQ6Ci0gICAgREVCVUdHRVIgJzsnICAgICAgICAgICAgICAgICAgICAgICAgeyAkJCA9
IGNyZWF0ZU5vZGVEZWNsYXJhdGlvbkluZm88U3RhdGVtZW50Tm9kZSo+KG5ldyAoR0xPQkFMX0RB
VEEpIERlYnVnZ2VyU3RhdGVtZW50Tm9kZShHTE9CQUxfREFUQSksIDAsIDAsIDAsIDApOwotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0U3RhdGVtZW50TG9jYXRp
b24oJCQubV9ub2RlLCBAMSwgQDIpOyB9Ci0gIHwgREVCVUdHRVIgZXJyb3IgICAgICAgICAgICAg
ICAgICAgICAgeyAkJCA9IGNyZWF0ZU5vZGVEZWNsYXJhdGlvbkluZm88U3RhdGVtZW50Tm9kZSo+
KG5ldyAoR0xPQkFMX0RBVEEpIERlYnVnZ2VyU3RhdGVtZW50Tm9kZShHTE9CQUxfREFUQSksIDAs
IDAsIDAsIDApOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0
U3RhdGVtZW50TG9jYXRpb24oJCQubV9ub2RlLCBAMSwgQDEpOyBBVVRPX1NFTUlDT0xPTjsgfQot
OwotCi1GdW5jdGlvbkRlY2xhcmF0aW9uOgotICAgIEZVTkNUSU9OIElERU5UICcoJyAnKScgT1BF
TkJSQUNFIEZ1bmN0aW9uQm9keSBDTE9TRUJSQUNFIHsgJCQgPSBjcmVhdGVOb2RlRGVjbGFyYXRp
b25JbmZvPFN0YXRlbWVudE5vZGUqPihuZXcgKEdMT0JBTF9EQVRBKSBGdW5jRGVjbE5vZGUoR0xP
QkFMX0RBVEEsICokMiwgJDYsIEdMT0JBTF9EQVRBLT5sZXhlci0+c291cmNlQ29kZSgkNSwgJDcs
IEA1LmZpcnN0X2xpbmUpKSwgMCwgbmV3IChHTE9CQUxfREFUQSkgUGFyc2VyQXJlbmFEYXRhPERl
Y2xhcmF0aW9uU3RhY2tzOjpGdW5jdGlvblN0YWNrPiwgKCgqJDIgPT0gR0xPQkFMX0RBVEEtPnBy
b3BlcnR5TmFtZXMtPmFyZ3VtZW50cykgPyBBcmd1bWVudHNGZWF0dXJlIDogMCkgfCBDbG9zdXJl
RmVhdHVyZSwgMCk7IHNldFN0YXRlbWVudExvY2F0aW9uKCQ2LCBANSwgQDcpOyAkJC5tX2Z1bmNE
ZWNsYXJhdGlvbnMtPmRhdGEuYXBwZW5kKHN0YXRpY19jYXN0PEZ1bmNEZWNsTm9kZSo+KCQkLm1f
bm9kZSktPmJvZHkoKSk7IH0KLSAgfCBGVU5DVElPTiBJREVOVCAnKCcgRm9ybWFsUGFyYW1ldGVy
TGlzdCAnKScgT1BFTkJSQUNFIEZ1bmN0aW9uQm9keSBDTE9TRUJSQUNFCi0gICAgICB7Ci0gICAg
ICAgICAgJCQgPSBjcmVhdGVOb2RlRGVjbGFyYXRpb25JbmZvPFN0YXRlbWVudE5vZGUqPihuZXcg
KEdMT0JBTF9EQVRBKSBGdW5jRGVjbE5vZGUoR0xPQkFMX0RBVEEsICokMiwgJDcsIEdMT0JBTF9E
QVRBLT5sZXhlci0+c291cmNlQ29kZSgkNiwgJDgsIEA2LmZpcnN0X2xpbmUpLCAkNC5tX25vZGUu
aGVhZCksIDAsIG5ldyAoR0xPQkFMX0RBVEEpIFBhcnNlckFyZW5hRGF0YTxEZWNsYXJhdGlvblN0
YWNrczo6RnVuY3Rpb25TdGFjaz4sICgoKiQyID09IEdMT0JBTF9EQVRBLT5wcm9wZXJ0eU5hbWVz
LT5hcmd1bWVudHMpID8gQXJndW1lbnRzRmVhdHVyZSA6IDApIHwgJDQubV9mZWF0dXJlcyB8IENs
b3N1cmVGZWF0dXJlLCAwKTsKLSAgICAgICAgICBpZiAoJDQubV9mZWF0dXJlcyAmIEFyZ3VtZW50
c0ZlYXR1cmUpCi0gICAgICAgICAgICAgICQ3LT5zZXRVc2VzQXJndW1lbnRzKCk7Ci0gICAgICAg
ICAgc2V0U3RhdGVtZW50TG9jYXRpb24oJDcsIEA2LCBAOCk7Ci0gICAgICAgICAgJCQubV9mdW5j
RGVjbGFyYXRpb25zLT5kYXRhLmFwcGVuZChzdGF0aWNfY2FzdDxGdW5jRGVjbE5vZGUqPigkJC5t
X25vZGUpLT5ib2R5KCkpOwotICAgICAgfQotOwotCi1GdW5jdGlvbkV4cHI6Ci0gICAgRlVOQ1RJ
T04gJygnICcpJyBPUEVOQlJBQ0UgRnVuY3Rpb25Cb2R5IENMT1NFQlJBQ0UgeyAkJCA9IGNyZWF0
ZU5vZGVJbmZvKG5ldyAoR0xPQkFMX0RBVEEpIEZ1bmNFeHByTm9kZShHTE9CQUxfREFUQSwgR0xP
QkFMX0RBVEEtPnByb3BlcnR5TmFtZXMtPm51bGxJZGVudGlmaWVyLCAkNSwgR0xPQkFMX0RBVEEt
PmxleGVyLT5zb3VyY2VDb2RlKCQ0LCAkNiwgQDQuZmlyc3RfbGluZSkpLCBDbG9zdXJlRmVhdHVy
ZSwgMCk7IHNldFN0YXRlbWVudExvY2F0aW9uKCQ1LCBANCwgQDYpOyB9Ci0gICAgfCBGVU5DVElP
TiAnKCcgRm9ybWFsUGFyYW1ldGVyTGlzdCAnKScgT1BFTkJSQUNFIEZ1bmN0aW9uQm9keSBDTE9T
RUJSQUNFCi0gICAgICB7Ci0gICAgICAgICAgJCQgPSBjcmVhdGVOb2RlSW5mbyhuZXcgKEdMT0JB
TF9EQVRBKSBGdW5jRXhwck5vZGUoR0xPQkFMX0RBVEEsIEdMT0JBTF9EQVRBLT5wcm9wZXJ0eU5h
bWVzLT5udWxsSWRlbnRpZmllciwgJDYsIEdMT0JBTF9EQVRBLT5sZXhlci0+c291cmNlQ29kZSgk
NSwgJDcsIEA1LmZpcnN0X2xpbmUpLCAkMy5tX25vZGUuaGVhZCksICQzLm1fZmVhdHVyZXMgfCBD
bG9zdXJlRmVhdHVyZSwgMCk7Ci0gICAgICAgICAgaWYgKCQzLm1fZmVhdHVyZXMgJiBBcmd1bWVu
dHNGZWF0dXJlKQotICAgICAgICAgICAgICAkNi0+c2V0VXNlc0FyZ3VtZW50cygpOwotICAgICAg
ICAgIHNldFN0YXRlbWVudExvY2F0aW9uKCQ2LCBANSwgQDcpOwotICAgICAgfQotICB8IEZVTkNU
SU9OIElERU5UICcoJyAnKScgT1BFTkJSQUNFIEZ1bmN0aW9uQm9keSBDTE9TRUJSQUNFIHsgJCQg
PSBjcmVhdGVOb2RlSW5mbyhuZXcgKEdMT0JBTF9EQVRBKSBGdW5jRXhwck5vZGUoR0xPQkFMX0RB
VEEsICokMiwgJDYsIEdMT0JBTF9EQVRBLT5sZXhlci0+c291cmNlQ29kZSgkNSwgJDcsIEA1LmZp
cnN0X2xpbmUpKSwgQ2xvc3VyZUZlYXR1cmUsIDApOyBzZXRTdGF0ZW1lbnRMb2NhdGlvbigkNiwg
QDUsIEA3KTsgfQotICB8IEZVTkNUSU9OIElERU5UICcoJyBGb3JtYWxQYXJhbWV0ZXJMaXN0ICcp
JyBPUEVOQlJBQ0UgRnVuY3Rpb25Cb2R5IENMT1NFQlJBQ0UKLSAgICAgIHsKLSAgICAgICAgICAk
JCA9IGNyZWF0ZU5vZGVJbmZvKG5ldyAoR0xPQkFMX0RBVEEpIEZ1bmNFeHByTm9kZShHTE9CQUxf
REFUQSwgKiQyLCAkNywgR0xPQkFMX0RBVEEtPmxleGVyLT5zb3VyY2VDb2RlKCQ2LCAkOCwgQDYu
Zmlyc3RfbGluZSksICQ0Lm1fbm9kZS5oZWFkKSwgJDQubV9mZWF0dXJlcyB8IENsb3N1cmVGZWF0
dXJlLCAwKTsgCi0gICAgICAgICAgaWYgKCQ0Lm1fZmVhdHVyZXMgJiBBcmd1bWVudHNGZWF0dXJl
KQotICAgICAgICAgICAgICAkNy0+c2V0VXNlc0FyZ3VtZW50cygpOwotICAgICAgICAgIHNldFN0
YXRlbWVudExvY2F0aW9uKCQ3LCBANiwgQDgpOwotICAgICAgfQotOwotCi1Gb3JtYWxQYXJhbWV0
ZXJMaXN0OgotICAgIElERU5UICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgJCQubV9u
b2RlLmhlYWQgPSBuZXcgKEdMT0JBTF9EQVRBKSBQYXJhbWV0ZXJOb2RlKEdMT0JBTF9EQVRBLCAq
JDEpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCQubV9mZWF0
dXJlcyA9ICgqJDEgPT0gR0xPQkFMX0RBVEEtPnByb3BlcnR5TmFtZXMtPmFyZ3VtZW50cykgPyBB
cmd1bWVudHNGZWF0dXJlIDogMDsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICQkLm1fbm9kZS50YWlsID0gJCQubV9ub2RlLmhlYWQ7IH0KLSAgfCBGb3JtYWxQYXJh
bWV0ZXJMaXN0ICcsJyBJREVOVCAgICAgICB7ICQkLm1fbm9kZS5oZWFkID0gJDEubV9ub2RlLmhl
YWQ7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkJC5tX2ZlYXR1
cmVzID0gJDEubV9mZWF0dXJlcyB8ICgoKiQzID09IEdMT0JBTF9EQVRBLT5wcm9wZXJ0eU5hbWVz
LT5hcmd1bWVudHMpID8gQXJndW1lbnRzRmVhdHVyZSA6IDApOwotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgJCQubV9ub2RlLnRhaWwgPSBuZXcgKEdMT0JBTF9EQVRB
KSBQYXJhbWV0ZXJOb2RlKEdMT0JBTF9EQVRBLCAkMS5tX25vZGUudGFpbCwgKiQzKTsgIH0KLTsK
LQotRnVuY3Rpb25Cb2R5OgotICAgIC8qIG5vdCBpbiBzcGVjICovICAgICAgICAgICAgICAgICAg
IHsgJCQgPSBGdW5jdGlvbkJvZHlOb2RlOjpjcmVhdGUoR0xPQkFMX0RBVEEpOyB9Ci0gIHwgU291
cmNlRWxlbWVudHNfTm9Ob2RlICAgICAgICAgICAgICAgeyAkJCA9IEZ1bmN0aW9uQm9keU5vZGU6
OmNyZWF0ZShHTE9CQUxfREFUQSk7IH0KLTsKLQotUHJvZ3JhbToKLSAgICAvKiBub3QgaW4gc3Bl
YyAqLyAgICAgICAgICAgICAgICAgICB7IEdMT0JBTF9EQVRBLT5wYXJzZXItPmRpZEZpbmlzaFBh
cnNpbmcobmV3IChHTE9CQUxfREFUQSkgU291cmNlRWxlbWVudHMoR0xPQkFMX0RBVEEpLCAwLCAw
LCBOb0ZlYXR1cmVzLCBAMC5sYXN0X2xpbmUsIDApOyB9Ci0gICAgfCBTb3VyY2VFbGVtZW50cyAg
ICAgICAgICAgICAgICAgICAgeyBHTE9CQUxfREFUQS0+cGFyc2VyLT5kaWRGaW5pc2hQYXJzaW5n
KCQxLm1fbm9kZSwgJDEubV92YXJEZWNsYXJhdGlvbnMsICQxLm1fZnVuY0RlY2xhcmF0aW9ucywg
JDEubV9mZWF0dXJlcywgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEAxLmxhc3RfbGluZSwgJDEu
bV9udW1Db25zdGFudHMpOyB9Ci07Ci0KLVNvdXJjZUVsZW1lbnRzOgotICAgIFN0YXRlbWVudCAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHsgJCQubV9ub2RlID0gbmV3IChHTE9CQUxfREFUQSkg
U291cmNlRWxlbWVudHMoR0xPQkFMX0RBVEEpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgJCQubV9ub2RlLT5hcHBlbmQoJDEubV9ub2RlKTsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQkLm1fdmFyRGVjbGFyYXRpb25zID0gJDEu
bV92YXJEZWNsYXJhdGlvbnM7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAkJC5tX2Z1bmNEZWNsYXJhdGlvbnMgPSAkMS5tX2Z1bmNEZWNsYXJhdGlvbnM7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkJC5tX2ZlYXR1cmVzID0gJDEu
bV9mZWF0dXJlczsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQk
Lm1fbnVtQ29uc3RhbnRzID0gJDEubV9udW1Db25zdGFudHM7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfQotICB8IFNvdXJjZUVsZW1lbnRzIFN0YXRlbWVudCAgICAg
ICAgICAgIHsgJCQubV9ub2RlLT5hcHBlbmQoJDIubV9ub2RlKTsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICQkLm1fdmFyRGVjbGFyYXRpb25zID0gbWVyZ2VEZWNs
YXJhdGlvbkxpc3RzKCQxLm1fdmFyRGVjbGFyYXRpb25zLCAkMi5tX3ZhckRlY2xhcmF0aW9ucyk7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkJC5tX2Z1bmNEZWNs
YXJhdGlvbnMgPSBtZXJnZURlY2xhcmF0aW9uTGlzdHMoJDEubV9mdW5jRGVjbGFyYXRpb25zLCAk
Mi5tX2Z1bmNEZWNsYXJhdGlvbnMpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgJCQubV9mZWF0dXJlcyA9ICQxLm1fZmVhdHVyZXMgfCAkMi5tX2ZlYXR1cmVzOwot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCQubV9udW1Db25zdGFu
dHMgPSAkMS5tX251bUNvbnN0YW50cyArICQyLm1fbnVtQ29uc3RhbnRzOwotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLTsKLSAKLS8vIFN0YXJ0IE5vTm9kZXMKLQot
TGl0ZXJhbF9Ob05vZGU6Ci0gICAgTlVMTFRPS0VOCi0gIHwgVFJVRVRPS0VOCi0gIHwgRkFMU0VU
T0tFTgotICB8IE5VTUJFUiB7IH0KLSAgfCBTVFJJTkcgeyB9Ci0gIHwgJy8nIC8qIHJlZ2V4cCAq
LyB7IGlmICghR0xPQkFMX0RBVEEtPmxleGVyLT5za2lwUmVnRXhwKCkpIFlZQUJPUlQ7IH0KLSAg
fCBESVZFUVVBTCAvKiByZWdleHAgd2l0aCAvPSAqLyB7IGlmICghR0xPQkFMX0RBVEEtPmxleGVy
LT5za2lwUmVnRXhwKCkpIFlZQUJPUlQ7IH0KLTsKLQotUHJvcGVydHlfTm9Ob2RlOgotICAgIElE
RU5UICc6JyBBc3NpZ25tZW50RXhwcl9Ob05vZGUgeyB9Ci0gIHwgU1RSSU5HICc6JyBBc3NpZ25t
ZW50RXhwcl9Ob05vZGUgeyB9Ci0gIHwgTlVNQkVSICc6JyBBc3NpZ25tZW50RXhwcl9Ob05vZGUg
eyB9Ci0gIHwgSURFTlQgSURFTlQgJygnICcpJyBPUEVOQlJBQ0UgRnVuY3Rpb25Cb2R5X05vTm9k
ZSBDTE9TRUJSQUNFIHsgaWYgKCokMSAhPSAiZ2V0IiAmJiAqJDEgIT0gInNldCIpIFlZQUJPUlQ7
IH0KLSAgfCBJREVOVCBJREVOVCAnKCcgRm9ybWFsUGFyYW1ldGVyTGlzdF9Ob05vZGUgJyknIE9Q
RU5CUkFDRSBGdW5jdGlvbkJvZHlfTm9Ob2RlIENMT1NFQlJBQ0UgeyBpZiAoKiQxICE9ICJnZXQi
ICYmICokMSAhPSAic2V0IikgWVlBQk9SVDsgfQotOwotCi1Qcm9wZXJ0eUxpc3RfTm9Ob2RlOgot
ICAgIFByb3BlcnR5X05vTm9kZQotICB8IFByb3BlcnR5TGlzdF9Ob05vZGUgJywnIFByb3BlcnR5
X05vTm9kZQotOwotCi1QcmltYXJ5RXhwcl9Ob05vZGU6Ci0gICAgUHJpbWFyeUV4cHJOb0JyYWNl
X05vTm9kZQotICB8IE9QRU5CUkFDRSBDTE9TRUJSQUNFIHsgfQotICB8IE9QRU5CUkFDRSBQcm9w
ZXJ0eUxpc3RfTm9Ob2RlIENMT1NFQlJBQ0UgeyB9Ci0gIC8qIGFsbG93IGV4dHJhIGNvbW1hLCBz
ZWUgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTkzOSAqLwotICB8IE9Q
RU5CUkFDRSBQcm9wZXJ0eUxpc3RfTm9Ob2RlICcsJyBDTE9TRUJSQUNFIHsgfQotOwotCi1Qcmlt
YXJ5RXhwck5vQnJhY2VfTm9Ob2RlOgotICAgIFRISVNUT0tFTgotICB8IExpdGVyYWxfTm9Ob2Rl
Ci0gIHwgQXJyYXlMaXRlcmFsX05vTm9kZQotICB8IElERU5UIHsgfQotICB8ICcoJyBFeHByX05v
Tm9kZSAnKScKLTsKLQotQXJyYXlMaXRlcmFsX05vTm9kZToKLSAgICAnWycgRWxpc2lvbk9wdF9O
b05vZGUgJ10nCi0gIHwgJ1snIEVsZW1lbnRMaXN0X05vTm9kZSAnXScKLSAgfCAnWycgRWxlbWVu
dExpc3RfTm9Ob2RlICcsJyBFbGlzaW9uT3B0X05vTm9kZSAnXScKLTsKLQotRWxlbWVudExpc3Rf
Tm9Ob2RlOgotICAgIEVsaXNpb25PcHRfTm9Ob2RlIEFzc2lnbm1lbnRFeHByX05vTm9kZQotICB8
IEVsZW1lbnRMaXN0X05vTm9kZSAnLCcgRWxpc2lvbk9wdF9Ob05vZGUgQXNzaWdubWVudEV4cHJf
Tm9Ob2RlCi07Ci0KLUVsaXNpb25PcHRfTm9Ob2RlOgotICAgIC8qIG5vdGhpbmcgKi8KLSAgfCBF
bGlzaW9uX05vTm9kZQotOwotCi1FbGlzaW9uX05vTm9kZToKLSAgICAnLCcKLSAgfCBFbGlzaW9u
X05vTm9kZSAnLCcKLTsKLQotTWVtYmVyRXhwcl9Ob05vZGU6Ci0gICAgUHJpbWFyeUV4cHJfTm9O
b2RlCi0gIHwgRnVuY3Rpb25FeHByX05vTm9kZQotICB8IE1lbWJlckV4cHJfTm9Ob2RlICdbJyBF
eHByX05vTm9kZSAnXScKLSAgfCBNZW1iZXJFeHByX05vTm9kZSAnLicgSURFTlQKLSAgfCBORVcg
TWVtYmVyRXhwcl9Ob05vZGUgQXJndW1lbnRzX05vTm9kZQotOwotCi1NZW1iZXJFeHByTm9CRl9O
b05vZGU6Ci0gICAgUHJpbWFyeUV4cHJOb0JyYWNlX05vTm9kZQotICB8IE1lbWJlckV4cHJOb0JG
X05vTm9kZSAnWycgRXhwcl9Ob05vZGUgJ10nCi0gIHwgTWVtYmVyRXhwck5vQkZfTm9Ob2RlICcu
JyBJREVOVAotICB8IE5FVyBNZW1iZXJFeHByX05vTm9kZSBBcmd1bWVudHNfTm9Ob2RlCi07Ci0K
LU5ld0V4cHJfTm9Ob2RlOgotICAgIE1lbWJlckV4cHJfTm9Ob2RlCi0gIHwgTkVXIE5ld0V4cHJf
Tm9Ob2RlCi07Ci0KLU5ld0V4cHJOb0JGX05vTm9kZToKLSAgICBNZW1iZXJFeHByTm9CRl9Ob05v
ZGUKLSAgfCBORVcgTmV3RXhwcl9Ob05vZGUKLTsKLQotQ2FsbEV4cHJfTm9Ob2RlOgotICAgIE1l
bWJlckV4cHJfTm9Ob2RlIEFyZ3VtZW50c19Ob05vZGUKLSAgfCBDYWxsRXhwcl9Ob05vZGUgQXJn
dW1lbnRzX05vTm9kZQotICB8IENhbGxFeHByX05vTm9kZSAnWycgRXhwcl9Ob05vZGUgJ10nCi0g
IHwgQ2FsbEV4cHJfTm9Ob2RlICcuJyBJREVOVAotOwotCi1DYWxsRXhwck5vQkZfTm9Ob2RlOgot
ICAgIE1lbWJlckV4cHJOb0JGX05vTm9kZSBBcmd1bWVudHNfTm9Ob2RlCi0gIHwgQ2FsbEV4cHJO
b0JGX05vTm9kZSBBcmd1bWVudHNfTm9Ob2RlCi0gIHwgQ2FsbEV4cHJOb0JGX05vTm9kZSAnWycg
RXhwcl9Ob05vZGUgJ10nCi0gIHwgQ2FsbEV4cHJOb0JGX05vTm9kZSAnLicgSURFTlQKLTsKLQot
QXJndW1lbnRzX05vTm9kZToKLSAgICAnKCcgJyknCi0gIHwgJygnIEFyZ3VtZW50TGlzdF9Ob05v
ZGUgJyknCi07Ci0KLUFyZ3VtZW50TGlzdF9Ob05vZGU6Ci0gICAgQXNzaWdubWVudEV4cHJfTm9O
b2RlCi0gIHwgQXJndW1lbnRMaXN0X05vTm9kZSAnLCcgQXNzaWdubWVudEV4cHJfTm9Ob2RlCi07
Ci0KLUxlZnRIYW5kU2lkZUV4cHJfTm9Ob2RlOgotICAgIE5ld0V4cHJfTm9Ob2RlCi0gIHwgQ2Fs
bEV4cHJfTm9Ob2RlCi07Ci0KLUxlZnRIYW5kU2lkZUV4cHJOb0JGX05vTm9kZToKLSAgICBOZXdF
eHByTm9CRl9Ob05vZGUKLSAgfCBDYWxsRXhwck5vQkZfTm9Ob2RlCi07Ci0KLVBvc3RmaXhFeHBy
X05vTm9kZToKLSAgICBMZWZ0SGFuZFNpZGVFeHByX05vTm9kZQotICB8IExlZnRIYW5kU2lkZUV4
cHJfTm9Ob2RlIFBMVVNQTFVTCi0gIHwgTGVmdEhhbmRTaWRlRXhwcl9Ob05vZGUgTUlOVVNNSU5V
UwotOwotCi1Qb3N0Zml4RXhwck5vQkZfTm9Ob2RlOgotICAgIExlZnRIYW5kU2lkZUV4cHJOb0JG
X05vTm9kZQotICB8IExlZnRIYW5kU2lkZUV4cHJOb0JGX05vTm9kZSBQTFVTUExVUwotICB8IExl
ZnRIYW5kU2lkZUV4cHJOb0JGX05vTm9kZSBNSU5VU01JTlVTCi07Ci0KLVVuYXJ5RXhwckNvbW1v
bl9Ob05vZGU6Ci0gICAgREVMRVRFVE9LRU4gVW5hcnlFeHByX05vTm9kZQotICB8IFZPSURUT0tF
TiBVbmFyeUV4cHJfTm9Ob2RlCi0gIHwgVFlQRU9GIFVuYXJ5RXhwcl9Ob05vZGUKLSAgfCBQTFVT
UExVUyBVbmFyeUV4cHJfTm9Ob2RlCi0gIHwgQVVUT1BMVVNQTFVTIFVuYXJ5RXhwcl9Ob05vZGUK
LSAgfCBNSU5VU01JTlVTIFVuYXJ5RXhwcl9Ob05vZGUKLSAgfCBBVVRPTUlOVVNNSU5VUyBVbmFy
eUV4cHJfTm9Ob2RlCi0gIHwgJysnIFVuYXJ5RXhwcl9Ob05vZGUKLSAgfCAnLScgVW5hcnlFeHBy
X05vTm9kZQotICB8ICd+JyBVbmFyeUV4cHJfTm9Ob2RlCi0gIHwgJyEnIFVuYXJ5RXhwcl9Ob05v
ZGUKLQotVW5hcnlFeHByX05vTm9kZToKLSAgICBQb3N0Zml4RXhwcl9Ob05vZGUKLSAgfCBVbmFy
eUV4cHJDb21tb25fTm9Ob2RlCi07Ci0KLVVuYXJ5RXhwck5vQkZfTm9Ob2RlOgotICAgIFBvc3Rm
aXhFeHByTm9CRl9Ob05vZGUKLSAgfCBVbmFyeUV4cHJDb21tb25fTm9Ob2RlCi07Ci0KLU11bHRp
cGxpY2F0aXZlRXhwcl9Ob05vZGU6Ci0gICAgVW5hcnlFeHByX05vTm9kZQotICB8IE11bHRpcGxp
Y2F0aXZlRXhwcl9Ob05vZGUgJyonIFVuYXJ5RXhwcl9Ob05vZGUKLSAgfCBNdWx0aXBsaWNhdGl2
ZUV4cHJfTm9Ob2RlICcvJyBVbmFyeUV4cHJfTm9Ob2RlCi0gIHwgTXVsdGlwbGljYXRpdmVFeHBy
X05vTm9kZSAnJScgVW5hcnlFeHByX05vTm9kZQotOwotCi1NdWx0aXBsaWNhdGl2ZUV4cHJOb0JG
X05vTm9kZToKLSAgICBVbmFyeUV4cHJOb0JGX05vTm9kZQotICB8IE11bHRpcGxpY2F0aXZlRXhw
ck5vQkZfTm9Ob2RlICcqJyBVbmFyeUV4cHJfTm9Ob2RlCi0gIHwgTXVsdGlwbGljYXRpdmVFeHBy
Tm9CRl9Ob05vZGUgJy8nIFVuYXJ5RXhwcl9Ob05vZGUKLSAgfCBNdWx0aXBsaWNhdGl2ZUV4cHJO
b0JGX05vTm9kZSAnJScgVW5hcnlFeHByX05vTm9kZQotOwotCi1BZGRpdGl2ZUV4cHJfTm9Ob2Rl
OgotICAgIE11bHRpcGxpY2F0aXZlRXhwcl9Ob05vZGUKLSAgfCBBZGRpdGl2ZUV4cHJfTm9Ob2Rl
ICcrJyBNdWx0aXBsaWNhdGl2ZUV4cHJfTm9Ob2RlCi0gIHwgQWRkaXRpdmVFeHByX05vTm9kZSAn
LScgTXVsdGlwbGljYXRpdmVFeHByX05vTm9kZQotOwotCi1BZGRpdGl2ZUV4cHJOb0JGX05vTm9k
ZToKLSAgICBNdWx0aXBsaWNhdGl2ZUV4cHJOb0JGX05vTm9kZQotICB8IEFkZGl0aXZlRXhwck5v
QkZfTm9Ob2RlICcrJyBNdWx0aXBsaWNhdGl2ZUV4cHJfTm9Ob2RlCi0gIHwgQWRkaXRpdmVFeHBy
Tm9CRl9Ob05vZGUgJy0nIE11bHRpcGxpY2F0aXZlRXhwcl9Ob05vZGUKLTsKLQotU2hpZnRFeHBy
X05vTm9kZToKLSAgICBBZGRpdGl2ZUV4cHJfTm9Ob2RlCi0gIHwgU2hpZnRFeHByX05vTm9kZSBM
U0hJRlQgQWRkaXRpdmVFeHByX05vTm9kZQotICB8IFNoaWZ0RXhwcl9Ob05vZGUgUlNISUZUIEFk
ZGl0aXZlRXhwcl9Ob05vZGUKLSAgfCBTaGlmdEV4cHJfTm9Ob2RlIFVSU0hJRlQgQWRkaXRpdmVF
eHByX05vTm9kZQotOwotCi1TaGlmdEV4cHJOb0JGX05vTm9kZToKLSAgICBBZGRpdGl2ZUV4cHJO
b0JGX05vTm9kZQotICB8IFNoaWZ0RXhwck5vQkZfTm9Ob2RlIExTSElGVCBBZGRpdGl2ZUV4cHJf
Tm9Ob2RlCi0gIHwgU2hpZnRFeHByTm9CRl9Ob05vZGUgUlNISUZUIEFkZGl0aXZlRXhwcl9Ob05v
ZGUKLSAgfCBTaGlmdEV4cHJOb0JGX05vTm9kZSBVUlNISUZUIEFkZGl0aXZlRXhwcl9Ob05vZGUK
LTsKLQotUmVsYXRpb25hbEV4cHJfTm9Ob2RlOgotICAgIFNoaWZ0RXhwcl9Ob05vZGUKLSAgfCBS
ZWxhdGlvbmFsRXhwcl9Ob05vZGUgJzwnIFNoaWZ0RXhwcl9Ob05vZGUKLSAgfCBSZWxhdGlvbmFs
RXhwcl9Ob05vZGUgJz4nIFNoaWZ0RXhwcl9Ob05vZGUKLSAgfCBSZWxhdGlvbmFsRXhwcl9Ob05v
ZGUgTEUgU2hpZnRFeHByX05vTm9kZQotICB8IFJlbGF0aW9uYWxFeHByX05vTm9kZSBHRSBTaGlm
dEV4cHJfTm9Ob2RlCi0gIHwgUmVsYXRpb25hbEV4cHJfTm9Ob2RlIElOU1RBTkNFT0YgU2hpZnRF
eHByX05vTm9kZQotICB8IFJlbGF0aW9uYWxFeHByX05vTm9kZSBJTlRPS0VOIFNoaWZ0RXhwcl9O
b05vZGUKLTsKLQotUmVsYXRpb25hbEV4cHJOb0luX05vTm9kZToKLSAgICBTaGlmdEV4cHJfTm9O
b2RlCi0gIHwgUmVsYXRpb25hbEV4cHJOb0luX05vTm9kZSAnPCcgU2hpZnRFeHByX05vTm9kZQot
ICB8IFJlbGF0aW9uYWxFeHByTm9Jbl9Ob05vZGUgJz4nIFNoaWZ0RXhwcl9Ob05vZGUKLSAgfCBS
ZWxhdGlvbmFsRXhwck5vSW5fTm9Ob2RlIExFIFNoaWZ0RXhwcl9Ob05vZGUKLSAgfCBSZWxhdGlv
bmFsRXhwck5vSW5fTm9Ob2RlIEdFIFNoaWZ0RXhwcl9Ob05vZGUKLSAgfCBSZWxhdGlvbmFsRXhw
ck5vSW5fTm9Ob2RlIElOU1RBTkNFT0YgU2hpZnRFeHByX05vTm9kZQotOwotCi1SZWxhdGlvbmFs
RXhwck5vQkZfTm9Ob2RlOgotICAgIFNoaWZ0RXhwck5vQkZfTm9Ob2RlCi0gIHwgUmVsYXRpb25h
bEV4cHJOb0JGX05vTm9kZSAnPCcgU2hpZnRFeHByX05vTm9kZQotICB8IFJlbGF0aW9uYWxFeHBy
Tm9CRl9Ob05vZGUgJz4nIFNoaWZ0RXhwcl9Ob05vZGUKLSAgfCBSZWxhdGlvbmFsRXhwck5vQkZf
Tm9Ob2RlIExFIFNoaWZ0RXhwcl9Ob05vZGUKLSAgfCBSZWxhdGlvbmFsRXhwck5vQkZfTm9Ob2Rl
IEdFIFNoaWZ0RXhwcl9Ob05vZGUKLSAgfCBSZWxhdGlvbmFsRXhwck5vQkZfTm9Ob2RlIElOU1RB
TkNFT0YgU2hpZnRFeHByX05vTm9kZQotICB8IFJlbGF0aW9uYWxFeHByTm9CRl9Ob05vZGUgSU5U
T0tFTiBTaGlmdEV4cHJfTm9Ob2RlCi07Ci0KLUVxdWFsaXR5RXhwcl9Ob05vZGU6Ci0gICAgUmVs
YXRpb25hbEV4cHJfTm9Ob2RlCi0gIHwgRXF1YWxpdHlFeHByX05vTm9kZSBFUUVRIFJlbGF0aW9u
YWxFeHByX05vTm9kZQotICB8IEVxdWFsaXR5RXhwcl9Ob05vZGUgTkUgUmVsYXRpb25hbEV4cHJf
Tm9Ob2RlCi0gIHwgRXF1YWxpdHlFeHByX05vTm9kZSBTVFJFUSBSZWxhdGlvbmFsRXhwcl9Ob05v
ZGUKLSAgfCBFcXVhbGl0eUV4cHJfTm9Ob2RlIFNUUk5FUSBSZWxhdGlvbmFsRXhwcl9Ob05vZGUK
LTsKLQotRXF1YWxpdHlFeHByTm9Jbl9Ob05vZGU6Ci0gICAgUmVsYXRpb25hbEV4cHJOb0luX05v
Tm9kZQotICB8IEVxdWFsaXR5RXhwck5vSW5fTm9Ob2RlIEVRRVEgUmVsYXRpb25hbEV4cHJOb0lu
X05vTm9kZQotICB8IEVxdWFsaXR5RXhwck5vSW5fTm9Ob2RlIE5FIFJlbGF0aW9uYWxFeHByTm9J
bl9Ob05vZGUKLSAgfCBFcXVhbGl0eUV4cHJOb0luX05vTm9kZSBTVFJFUSBSZWxhdGlvbmFsRXhw
ck5vSW5fTm9Ob2RlCi0gIHwgRXF1YWxpdHlFeHByTm9Jbl9Ob05vZGUgU1RSTkVRIFJlbGF0aW9u
YWxFeHByTm9Jbl9Ob05vZGUKLTsKLQotRXF1YWxpdHlFeHByTm9CRl9Ob05vZGU6Ci0gICAgUmVs
YXRpb25hbEV4cHJOb0JGX05vTm9kZQotICB8IEVxdWFsaXR5RXhwck5vQkZfTm9Ob2RlIEVRRVEg
UmVsYXRpb25hbEV4cHJfTm9Ob2RlCi0gIHwgRXF1YWxpdHlFeHByTm9CRl9Ob05vZGUgTkUgUmVs
YXRpb25hbEV4cHJfTm9Ob2RlCi0gIHwgRXF1YWxpdHlFeHByTm9CRl9Ob05vZGUgU1RSRVEgUmVs
YXRpb25hbEV4cHJfTm9Ob2RlCi0gIHwgRXF1YWxpdHlFeHByTm9CRl9Ob05vZGUgU1RSTkVRIFJl
bGF0aW9uYWxFeHByX05vTm9kZQotOwotCi1CaXR3aXNlQU5ERXhwcl9Ob05vZGU6Ci0gICAgRXF1
YWxpdHlFeHByX05vTm9kZQotICB8IEJpdHdpc2VBTkRFeHByX05vTm9kZSAnJicgRXF1YWxpdHlF
eHByX05vTm9kZQotOwotCi1CaXR3aXNlQU5ERXhwck5vSW5fTm9Ob2RlOgotICAgIEVxdWFsaXR5
RXhwck5vSW5fTm9Ob2RlCi0gIHwgQml0d2lzZUFOREV4cHJOb0luX05vTm9kZSAnJicgRXF1YWxp
dHlFeHByTm9Jbl9Ob05vZGUKLTsKLQotQml0d2lzZUFOREV4cHJOb0JGX05vTm9kZToKLSAgICBF
cXVhbGl0eUV4cHJOb0JGX05vTm9kZQotICB8IEJpdHdpc2VBTkRFeHByTm9CRl9Ob05vZGUgJyYn
IEVxdWFsaXR5RXhwcl9Ob05vZGUKLTsKLQotQml0d2lzZVhPUkV4cHJfTm9Ob2RlOgotICAgIEJp
dHdpc2VBTkRFeHByX05vTm9kZQotICB8IEJpdHdpc2VYT1JFeHByX05vTm9kZSAnXicgQml0d2lz
ZUFOREV4cHJfTm9Ob2RlCi07Ci0KLUJpdHdpc2VYT1JFeHByTm9Jbl9Ob05vZGU6Ci0gICAgQml0
d2lzZUFOREV4cHJOb0luX05vTm9kZQotICB8IEJpdHdpc2VYT1JFeHByTm9Jbl9Ob05vZGUgJ14n
IEJpdHdpc2VBTkRFeHByTm9Jbl9Ob05vZGUKLTsKLQotQml0d2lzZVhPUkV4cHJOb0JGX05vTm9k
ZToKLSAgICBCaXR3aXNlQU5ERXhwck5vQkZfTm9Ob2RlCi0gIHwgQml0d2lzZVhPUkV4cHJOb0JG
X05vTm9kZSAnXicgQml0d2lzZUFOREV4cHJfTm9Ob2RlCi07Ci0KLUJpdHdpc2VPUkV4cHJfTm9O
b2RlOgotICAgIEJpdHdpc2VYT1JFeHByX05vTm9kZQotICB8IEJpdHdpc2VPUkV4cHJfTm9Ob2Rl
ICd8JyBCaXR3aXNlWE9SRXhwcl9Ob05vZGUKLTsKLQotQml0d2lzZU9SRXhwck5vSW5fTm9Ob2Rl
OgotICAgIEJpdHdpc2VYT1JFeHByTm9Jbl9Ob05vZGUKLSAgfCBCaXR3aXNlT1JFeHByTm9Jbl9O
b05vZGUgJ3wnIEJpdHdpc2VYT1JFeHByTm9Jbl9Ob05vZGUKLTsKLQotQml0d2lzZU9SRXhwck5v
QkZfTm9Ob2RlOgotICAgIEJpdHdpc2VYT1JFeHByTm9CRl9Ob05vZGUKLSAgfCBCaXR3aXNlT1JF
eHByTm9CRl9Ob05vZGUgJ3wnIEJpdHdpc2VYT1JFeHByX05vTm9kZQotOwotCi1Mb2dpY2FsQU5E
RXhwcl9Ob05vZGU6Ci0gICAgQml0d2lzZU9SRXhwcl9Ob05vZGUKLSAgfCBMb2dpY2FsQU5ERXhw
cl9Ob05vZGUgQU5EIEJpdHdpc2VPUkV4cHJfTm9Ob2RlCi07Ci0KLUxvZ2ljYWxBTkRFeHByTm9J
bl9Ob05vZGU6Ci0gICAgQml0d2lzZU9SRXhwck5vSW5fTm9Ob2RlCi0gIHwgTG9naWNhbEFOREV4
cHJOb0luX05vTm9kZSBBTkQgQml0d2lzZU9SRXhwck5vSW5fTm9Ob2RlCi07Ci0KLUxvZ2ljYWxB
TkRFeHByTm9CRl9Ob05vZGU6Ci0gICAgQml0d2lzZU9SRXhwck5vQkZfTm9Ob2RlCi0gIHwgTG9n
aWNhbEFOREV4cHJOb0JGX05vTm9kZSBBTkQgQml0d2lzZU9SRXhwcl9Ob05vZGUKLTsKLQotTG9n
aWNhbE9SRXhwcl9Ob05vZGU6Ci0gICAgTG9naWNhbEFOREV4cHJfTm9Ob2RlCi0gIHwgTG9naWNh
bE9SRXhwcl9Ob05vZGUgT1IgTG9naWNhbEFOREV4cHJfTm9Ob2RlCi07Ci0KLUxvZ2ljYWxPUkV4
cHJOb0luX05vTm9kZToKLSAgICBMb2dpY2FsQU5ERXhwck5vSW5fTm9Ob2RlCi0gIHwgTG9naWNh
bE9SRXhwck5vSW5fTm9Ob2RlIE9SIExvZ2ljYWxBTkRFeHByTm9Jbl9Ob05vZGUKLTsKLQotTG9n
aWNhbE9SRXhwck5vQkZfTm9Ob2RlOgotICAgIExvZ2ljYWxBTkRFeHByTm9CRl9Ob05vZGUKLSAg
fCBMb2dpY2FsT1JFeHByTm9CRl9Ob05vZGUgT1IgTG9naWNhbEFOREV4cHJfTm9Ob2RlCi07Ci0K
LUNvbmRpdGlvbmFsRXhwcl9Ob05vZGU6Ci0gICAgTG9naWNhbE9SRXhwcl9Ob05vZGUKLSAgfCBM
b2dpY2FsT1JFeHByX05vTm9kZSAnPycgQXNzaWdubWVudEV4cHJfTm9Ob2RlICc6JyBBc3NpZ25t
ZW50RXhwcl9Ob05vZGUKLTsKLQotQ29uZGl0aW9uYWxFeHByTm9Jbl9Ob05vZGU6Ci0gICAgTG9n
aWNhbE9SRXhwck5vSW5fTm9Ob2RlCi0gIHwgTG9naWNhbE9SRXhwck5vSW5fTm9Ob2RlICc/JyBB
c3NpZ25tZW50RXhwck5vSW5fTm9Ob2RlICc6JyBBc3NpZ25tZW50RXhwck5vSW5fTm9Ob2RlCi07
Ci0KLUNvbmRpdGlvbmFsRXhwck5vQkZfTm9Ob2RlOgotICAgIExvZ2ljYWxPUkV4cHJOb0JGX05v
Tm9kZQotICB8IExvZ2ljYWxPUkV4cHJOb0JGX05vTm9kZSAnPycgQXNzaWdubWVudEV4cHJfTm9O
b2RlICc6JyBBc3NpZ25tZW50RXhwcl9Ob05vZGUKLTsKLQotQXNzaWdubWVudEV4cHJfTm9Ob2Rl
OgotICAgIENvbmRpdGlvbmFsRXhwcl9Ob05vZGUKLSAgfCBMZWZ0SGFuZFNpZGVFeHByX05vTm9k
ZSBBc3NpZ25tZW50T3BlcmF0b3JfTm9Ob2RlIEFzc2lnbm1lbnRFeHByX05vTm9kZQotOwotCi1B
c3NpZ25tZW50RXhwck5vSW5fTm9Ob2RlOgotICAgIENvbmRpdGlvbmFsRXhwck5vSW5fTm9Ob2Rl
Ci0gIHwgTGVmdEhhbmRTaWRlRXhwcl9Ob05vZGUgQXNzaWdubWVudE9wZXJhdG9yX05vTm9kZSBB
c3NpZ25tZW50RXhwck5vSW5fTm9Ob2RlCi07Ci0KLUFzc2lnbm1lbnRFeHByTm9CRl9Ob05vZGU6
Ci0gICAgQ29uZGl0aW9uYWxFeHByTm9CRl9Ob05vZGUKLSAgfCBMZWZ0SGFuZFNpZGVFeHByTm9C
Rl9Ob05vZGUgQXNzaWdubWVudE9wZXJhdG9yX05vTm9kZSBBc3NpZ25tZW50RXhwcl9Ob05vZGUK
LTsKLQotQXNzaWdubWVudE9wZXJhdG9yX05vTm9kZToKLSAgICAnPScKLSAgfCBQTFVTRVFVQUwK
LSAgfCBNSU5VU0VRVUFMCi0gIHwgTVVMVEVRVUFMCi0gIHwgRElWRVFVQUwKLSAgfCBMU0hJRlRF
UVVBTAotICB8IFJTSElGVEVRVUFMCi0gIHwgVVJTSElGVEVRVUFMCi0gIHwgQU5ERVFVQUwKLSAg
fCBYT1JFUVVBTAotICB8IE9SRVFVQUwKLSAgfCBNT0RFUVVBTAotOwotCi1FeHByX05vTm9kZToK
LSAgICBBc3NpZ25tZW50RXhwcl9Ob05vZGUKLSAgfCBFeHByX05vTm9kZSAnLCcgQXNzaWdubWVu
dEV4cHJfTm9Ob2RlCi07Ci0KLUV4cHJOb0luX05vTm9kZToKLSAgICBBc3NpZ25tZW50RXhwck5v
SW5fTm9Ob2RlCi0gIHwgRXhwck5vSW5fTm9Ob2RlICcsJyBBc3NpZ25tZW50RXhwck5vSW5fTm9O
b2RlCi07Ci0KLUV4cHJOb0JGX05vTm9kZToKLSAgICBBc3NpZ25tZW50RXhwck5vQkZfTm9Ob2Rl
Ci0gIHwgRXhwck5vQkZfTm9Ob2RlICcsJyBBc3NpZ25tZW50RXhwcl9Ob05vZGUKLTsKLQotU3Rh
dGVtZW50X05vTm9kZToKLSAgICBCbG9ja19Ob05vZGUKLSAgfCBWYXJpYWJsZVN0YXRlbWVudF9O
b05vZGUKLSAgfCBDb25zdFN0YXRlbWVudF9Ob05vZGUKLSAgfCBGdW5jdGlvbkRlY2xhcmF0aW9u
X05vTm9kZQotICB8IEVtcHR5U3RhdGVtZW50X05vTm9kZQotICB8IEV4cHJTdGF0ZW1lbnRfTm9O
b2RlCi0gIHwgSWZTdGF0ZW1lbnRfTm9Ob2RlCi0gIHwgSXRlcmF0aW9uU3RhdGVtZW50X05vTm9k
ZQotICB8IENvbnRpbnVlU3RhdGVtZW50X05vTm9kZQotICB8IEJyZWFrU3RhdGVtZW50X05vTm9k
ZQotICB8IFJldHVyblN0YXRlbWVudF9Ob05vZGUKLSAgfCBXaXRoU3RhdGVtZW50X05vTm9kZQot
ICB8IFN3aXRjaFN0YXRlbWVudF9Ob05vZGUKLSAgfCBMYWJlbGxlZFN0YXRlbWVudF9Ob05vZGUK
LSAgfCBUaHJvd1N0YXRlbWVudF9Ob05vZGUKLSAgfCBUcnlTdGF0ZW1lbnRfTm9Ob2RlCi0gIHwg
RGVidWdnZXJTdGF0ZW1lbnRfTm9Ob2RlCi07Ci0KLUJsb2NrX05vTm9kZToKLSAgICBPUEVOQlJB
Q0UgQ0xPU0VCUkFDRSB7IH0KLSAgfCBPUEVOQlJBQ0UgU291cmNlRWxlbWVudHNfTm9Ob2RlIENM
T1NFQlJBQ0UgeyB9Ci07Ci0KLVZhcmlhYmxlU3RhdGVtZW50X05vTm9kZToKLSAgICBWQVIgVmFy
aWFibGVEZWNsYXJhdGlvbkxpc3RfTm9Ob2RlICc7JwotICB8IFZBUiBWYXJpYWJsZURlY2xhcmF0
aW9uTGlzdF9Ob05vZGUgZXJyb3IgeyBBVVRPX1NFTUlDT0xPTjsgfQotOwotCi1WYXJpYWJsZURl
Y2xhcmF0aW9uTGlzdF9Ob05vZGU6Ci0gICAgSURFTlQgeyB9Ci0gIHwgSURFTlQgSW5pdGlhbGl6
ZXJfTm9Ob2RlIHsgfQotICB8IFZhcmlhYmxlRGVjbGFyYXRpb25MaXN0X05vTm9kZSAnLCcgSURF
TlQKLSAgfCBWYXJpYWJsZURlY2xhcmF0aW9uTGlzdF9Ob05vZGUgJywnIElERU5UIEluaXRpYWxp
emVyX05vTm9kZQotOwotCi1WYXJpYWJsZURlY2xhcmF0aW9uTGlzdE5vSW5fTm9Ob2RlOgotICAg
IElERU5UIHsgfQotICB8IElERU5UIEluaXRpYWxpemVyTm9Jbl9Ob05vZGUgeyB9Ci0gIHwgVmFy
aWFibGVEZWNsYXJhdGlvbkxpc3ROb0luX05vTm9kZSAnLCcgSURFTlQKLSAgfCBWYXJpYWJsZURl
Y2xhcmF0aW9uTGlzdE5vSW5fTm9Ob2RlICcsJyBJREVOVCBJbml0aWFsaXplck5vSW5fTm9Ob2Rl
Ci07Ci0KLUNvbnN0U3RhdGVtZW50X05vTm9kZToKLSAgICBDT05TVFRPS0VOIENvbnN0RGVjbGFy
YXRpb25MaXN0X05vTm9kZSAnOycKLSAgfCBDT05TVFRPS0VOIENvbnN0RGVjbGFyYXRpb25MaXN0
X05vTm9kZSBlcnJvciB7IEFVVE9fU0VNSUNPTE9OOyB9Ci07Ci0KLUNvbnN0RGVjbGFyYXRpb25M
aXN0X05vTm9kZToKLSAgICBDb25zdERlY2xhcmF0aW9uX05vTm9kZQotICB8IENvbnN0RGVjbGFy
YXRpb25MaXN0X05vTm9kZSAnLCcgQ29uc3REZWNsYXJhdGlvbl9Ob05vZGUKLTsKLQotQ29uc3RE
ZWNsYXJhdGlvbl9Ob05vZGU6Ci0gICAgSURFTlQgeyB9Ci0gIHwgSURFTlQgSW5pdGlhbGl6ZXJf
Tm9Ob2RlIHsgfQotOwotCi1Jbml0aWFsaXplcl9Ob05vZGU6Ci0gICAgJz0nIEFzc2lnbm1lbnRF
eHByX05vTm9kZQotOwotCi1Jbml0aWFsaXplck5vSW5fTm9Ob2RlOgotICAgICc9JyBBc3NpZ25t
ZW50RXhwck5vSW5fTm9Ob2RlCi07Ci0KLUVtcHR5U3RhdGVtZW50X05vTm9kZToKLSAgICAnOycK
LTsKLQotRXhwclN0YXRlbWVudF9Ob05vZGU6Ci0gICAgRXhwck5vQkZfTm9Ob2RlICc7JwotICB8
IEV4cHJOb0JGX05vTm9kZSBlcnJvciB7IEFVVE9fU0VNSUNPTE9OOyB9Ci07Ci0KLUlmU3RhdGVt
ZW50X05vTm9kZToKLSAgICBJRiAnKCcgRXhwcl9Ob05vZGUgJyknIFN0YXRlbWVudF9Ob05vZGUg
JXByZWMgSUZfV0lUSE9VVF9FTFNFCi0gIHwgSUYgJygnIEV4cHJfTm9Ob2RlICcpJyBTdGF0ZW1l
bnRfTm9Ob2RlIEVMU0UgU3RhdGVtZW50X05vTm9kZQotOwotCi1JdGVyYXRpb25TdGF0ZW1lbnRf
Tm9Ob2RlOgotICAgIERPIFN0YXRlbWVudF9Ob05vZGUgV0hJTEUgJygnIEV4cHJfTm9Ob2RlICcp
JyAnOycKLSAgfCBETyBTdGF0ZW1lbnRfTm9Ob2RlIFdISUxFICcoJyBFeHByX05vTm9kZSAnKScg
ZXJyb3IgLy8gQWx3YXlzIHBlcmZvcm1zIGF1dG9tYXRpYyBzZW1pY29sb24gaW5zZXJ0aW9uCi0g
IHwgV0hJTEUgJygnIEV4cHJfTm9Ob2RlICcpJyBTdGF0ZW1lbnRfTm9Ob2RlCi0gIHwgRk9SICco
JyBFeHByTm9Jbk9wdF9Ob05vZGUgJzsnIEV4cHJPcHRfTm9Ob2RlICc7JyBFeHByT3B0X05vTm9k
ZSAnKScgU3RhdGVtZW50X05vTm9kZQotICB8IEZPUiAnKCcgVkFSIFZhcmlhYmxlRGVjbGFyYXRp
b25MaXN0Tm9Jbl9Ob05vZGUgJzsnIEV4cHJPcHRfTm9Ob2RlICc7JyBFeHByT3B0X05vTm9kZSAn
KScgU3RhdGVtZW50X05vTm9kZQotICB8IEZPUiAnKCcgTGVmdEhhbmRTaWRlRXhwcl9Ob05vZGUg
SU5UT0tFTiBFeHByX05vTm9kZSAnKScgU3RhdGVtZW50X05vTm9kZQotICB8IEZPUiAnKCcgVkFS
IElERU5UIElOVE9LRU4gRXhwcl9Ob05vZGUgJyknIFN0YXRlbWVudF9Ob05vZGUKLSAgfCBGT1Ig
JygnIFZBUiBJREVOVCBJbml0aWFsaXplck5vSW5fTm9Ob2RlIElOVE9LRU4gRXhwcl9Ob05vZGUg
JyknIFN0YXRlbWVudF9Ob05vZGUKLTsKLQotRXhwck9wdF9Ob05vZGU6Ci0gICAgLyogbm90aGlu
ZyAqLwotICB8IEV4cHJfTm9Ob2RlCi07Ci0KLUV4cHJOb0luT3B0X05vTm9kZToKLSAgICAvKiBu
b3RoaW5nICovCi0gIHwgRXhwck5vSW5fTm9Ob2RlCi07Ci0KLUNvbnRpbnVlU3RhdGVtZW50X05v
Tm9kZToKLSAgICBDT05USU5VRSAnOycKLSAgfCBDT05USU5VRSBlcnJvciB7IEFVVE9fU0VNSUNP
TE9OOyB9Ci0gIHwgQ09OVElOVUUgSURFTlQgJzsnCi0gIHwgQ09OVElOVUUgSURFTlQgZXJyb3Ig
eyBBVVRPX1NFTUlDT0xPTjsgfQotOwotCi1CcmVha1N0YXRlbWVudF9Ob05vZGU6Ci0gICAgQlJF
QUsgJzsnCi0gIHwgQlJFQUsgZXJyb3IgeyBBVVRPX1NFTUlDT0xPTjsgfQotICB8IEJSRUFLIElE
RU5UICc7JwotICB8IEJSRUFLIElERU5UIGVycm9yIHsgQVVUT19TRU1JQ09MT047IH0KLTsKLQot
UmV0dXJuU3RhdGVtZW50X05vTm9kZToKLSAgICBSRVRVUk4gJzsnCi0gIHwgUkVUVVJOIGVycm9y
IHsgQVVUT19TRU1JQ09MT047IH0KLSAgfCBSRVRVUk4gRXhwcl9Ob05vZGUgJzsnCi0gIHwgUkVU
VVJOIEV4cHJfTm9Ob2RlIGVycm9yIHsgQVVUT19TRU1JQ09MT047IH0KLTsKLQotV2l0aFN0YXRl
bWVudF9Ob05vZGU6Ci0gICAgV0lUSCAnKCcgRXhwcl9Ob05vZGUgJyknIFN0YXRlbWVudF9Ob05v
ZGUKLTsKLQotU3dpdGNoU3RhdGVtZW50X05vTm9kZToKLSAgICBTV0lUQ0ggJygnIEV4cHJfTm9O
b2RlICcpJyBDYXNlQmxvY2tfTm9Ob2RlCi07Ci0KLUNhc2VCbG9ja19Ob05vZGU6Ci0gICAgT1BF
TkJSQUNFIENhc2VDbGF1c2VzT3B0X05vTm9kZSBDTE9TRUJSQUNFIHsgfQotICB8IE9QRU5CUkFD
RSBDYXNlQ2xhdXNlc09wdF9Ob05vZGUgRGVmYXVsdENsYXVzZV9Ob05vZGUgQ2FzZUNsYXVzZXNP
cHRfTm9Ob2RlIENMT1NFQlJBQ0UgeyB9Ci07Ci0KLUNhc2VDbGF1c2VzT3B0X05vTm9kZToKLSAg
ICAvKiBub3RoaW5nICovCi0gIHwgQ2FzZUNsYXVzZXNfTm9Ob2RlCi07Ci0KLUNhc2VDbGF1c2Vz
X05vTm9kZToKLSAgICBDYXNlQ2xhdXNlX05vTm9kZQotICB8IENhc2VDbGF1c2VzX05vTm9kZSBD
YXNlQ2xhdXNlX05vTm9kZQotOwotCi1DYXNlQ2xhdXNlX05vTm9kZToKLSAgICBDQVNFIEV4cHJf
Tm9Ob2RlICc6JwotICB8IENBU0UgRXhwcl9Ob05vZGUgJzonIFNvdXJjZUVsZW1lbnRzX05vTm9k
ZQotOwotCi1EZWZhdWx0Q2xhdXNlX05vTm9kZToKLSAgICBERUZBVUxUICc6JwotICB8IERFRkFV
TFQgJzonIFNvdXJjZUVsZW1lbnRzX05vTm9kZQotOwotCi1MYWJlbGxlZFN0YXRlbWVudF9Ob05v
ZGU6Ci0gICAgSURFTlQgJzonIFN0YXRlbWVudF9Ob05vZGUgeyB9Ci07Ci0KLVRocm93U3RhdGVt
ZW50X05vTm9kZToKLSAgICBUSFJPVyBFeHByX05vTm9kZSAnOycKLSAgfCBUSFJPVyBFeHByX05v
Tm9kZSBlcnJvciB7IEFVVE9fU0VNSUNPTE9OOyB9Ci07Ci0KLVRyeVN0YXRlbWVudF9Ob05vZGU6
Ci0gICAgVFJZIEJsb2NrX05vTm9kZSBGSU5BTExZIEJsb2NrX05vTm9kZQotICB8IFRSWSBCbG9j
a19Ob05vZGUgQ0FUQ0ggJygnIElERU5UICcpJyBCbG9ja19Ob05vZGUKLSAgfCBUUlkgQmxvY2tf
Tm9Ob2RlIENBVENIICcoJyBJREVOVCAnKScgQmxvY2tfTm9Ob2RlIEZJTkFMTFkgQmxvY2tfTm9O
b2RlCi07Ci0KLURlYnVnZ2VyU3RhdGVtZW50X05vTm9kZToKLSAgICBERUJVR0dFUiAnOycKLSAg
fCBERUJVR0dFUiBlcnJvciB7IEFVVE9fU0VNSUNPTE9OOyB9Ci07Ci0KLUZ1bmN0aW9uRGVjbGFy
YXRpb25fTm9Ob2RlOgotICAgIEZVTkNUSU9OIElERU5UICcoJyAnKScgT1BFTkJSQUNFIEZ1bmN0
aW9uQm9keV9Ob05vZGUgQ0xPU0VCUkFDRQotICB8IEZVTkNUSU9OIElERU5UICcoJyBGb3JtYWxQ
YXJhbWV0ZXJMaXN0X05vTm9kZSAnKScgT1BFTkJSQUNFIEZ1bmN0aW9uQm9keV9Ob05vZGUgQ0xP
U0VCUkFDRQotOwotCi1GdW5jdGlvbkV4cHJfTm9Ob2RlOgotICAgIEZVTkNUSU9OICcoJyAnKScg
T1BFTkJSQUNFIEZ1bmN0aW9uQm9keV9Ob05vZGUgQ0xPU0VCUkFDRQotICB8IEZVTkNUSU9OICco
JyBGb3JtYWxQYXJhbWV0ZXJMaXN0X05vTm9kZSAnKScgT1BFTkJSQUNFIEZ1bmN0aW9uQm9keV9O
b05vZGUgQ0xPU0VCUkFDRQotICB8IEZVTkNUSU9OIElERU5UICcoJyAnKScgT1BFTkJSQUNFIEZ1
bmN0aW9uQm9keV9Ob05vZGUgQ0xPU0VCUkFDRQotICB8IEZVTkNUSU9OIElERU5UICcoJyBGb3Jt
YWxQYXJhbWV0ZXJMaXN0X05vTm9kZSAnKScgT1BFTkJSQUNFIEZ1bmN0aW9uQm9keV9Ob05vZGUg
Q0xPU0VCUkFDRQotOwotCi1Gb3JtYWxQYXJhbWV0ZXJMaXN0X05vTm9kZToKLSAgICBJREVOVCB7
IH0KLSAgfCBGb3JtYWxQYXJhbWV0ZXJMaXN0X05vTm9kZSAnLCcgSURFTlQKLTsKLQotRnVuY3Rp
b25Cb2R5X05vTm9kZToKLSAgICAvKiBub3QgaW4gc3BlYyAqLwotICB8IFNvdXJjZUVsZW1lbnRz
X05vTm9kZQotOwotCi1Tb3VyY2VFbGVtZW50c19Ob05vZGU6Ci0gICAgU3RhdGVtZW50X05vTm9k
ZQotICB8IFNvdXJjZUVsZW1lbnRzX05vTm9kZSBTdGF0ZW1lbnRfTm9Ob2RlCi07Ci0KLS8vIEVu
ZCBOb05vZGVzCi0KLSUlCi0KLSN1bmRlZiBHTE9CQUxfREFUQQotCi1zdGF0aWMgRXhwcmVzc2lv
bk5vZGUqIG1ha2VBc3NpZ25Ob2RlKEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSwgRXhwcmVzc2lv
bk5vZGUqIGxvYywgT3BlcmF0b3Igb3AsIEV4cHJlc3Npb25Ob2RlKiBleHByLCBib29sIGxvY0hh
c0Fzc2lnbm1lbnRzLCBib29sIGV4cHJIYXNBc3NpZ25tZW50cywgaW50IHN0YXJ0LCBpbnQgZGl2
b3QsIGludCBlbmQpCi17Ci0gICAgaWYgKCFsb2MtPmlzTG9jYXRpb24oKSkKLSAgICAgICAgcmV0
dXJuIG5ldyAoZ2xvYmFsRGF0YSkgQXNzaWduRXJyb3JOb2RlKGdsb2JhbERhdGEsIGxvYywgb3As
IGV4cHIsIGRpdm90LCBkaXZvdCAtIHN0YXJ0LCBlbmQgLSBkaXZvdCk7Ci0KLSAgICBpZiAobG9j
LT5pc1Jlc29sdmVOb2RlKCkpIHsKLSAgICAgICAgUmVzb2x2ZU5vZGUqIHJlc29sdmUgPSBzdGF0
aWNfY2FzdDxSZXNvbHZlTm9kZSo+KGxvYyk7Ci0gICAgICAgIGlmIChvcCA9PSBPcEVxdWFsKSB7
Ci0gICAgICAgICAgICBBc3NpZ25SZXNvbHZlTm9kZSogbm9kZSA9IG5ldyAoZ2xvYmFsRGF0YSkg
QXNzaWduUmVzb2x2ZU5vZGUoZ2xvYmFsRGF0YSwgcmVzb2x2ZS0+aWRlbnRpZmllcigpLCBleHBy
LCBleHBySGFzQXNzaWdubWVudHMpOwotICAgICAgICAgICAgc2V0RXhjZXB0aW9uTG9jYXRpb24o
bm9kZSwgc3RhcnQsIGRpdm90LCBlbmQpOwotICAgICAgICAgICAgcmV0dXJuIG5vZGU7Ci0gICAg
ICAgIH0gZWxzZQotICAgICAgICAgICAgcmV0dXJuIG5ldyAoZ2xvYmFsRGF0YSkgUmVhZE1vZGlm
eVJlc29sdmVOb2RlKGdsb2JhbERhdGEsIHJlc29sdmUtPmlkZW50aWZpZXIoKSwgb3AsIGV4cHIs
IGV4cHJIYXNBc3NpZ25tZW50cywgZGl2b3QsIGRpdm90IC0gc3RhcnQsIGVuZCAtIGRpdm90KTsK
LSAgICB9Ci0gICAgaWYgKGxvYy0+aXNCcmFja2V0QWNjZXNzb3JOb2RlKCkpIHsKLSAgICAgICAg
QnJhY2tldEFjY2Vzc29yTm9kZSogYnJhY2tldCA9IHN0YXRpY19jYXN0PEJyYWNrZXRBY2Nlc3Nv
ck5vZGUqPihsb2MpOwotICAgICAgICBpZiAob3AgPT0gT3BFcXVhbCkKLSAgICAgICAgICAgIHJl
dHVybiBuZXcgKGdsb2JhbERhdGEpIEFzc2lnbkJyYWNrZXROb2RlKGdsb2JhbERhdGEsIGJyYWNr
ZXQtPmJhc2UoKSwgYnJhY2tldC0+c3Vic2NyaXB0KCksIGV4cHIsIGxvY0hhc0Fzc2lnbm1lbnRz
LCBleHBySGFzQXNzaWdubWVudHMsIGJyYWNrZXQtPmRpdm90KCksIGJyYWNrZXQtPmRpdm90KCkg
LSBzdGFydCwgZW5kIC0gYnJhY2tldC0+ZGl2b3QoKSk7Ci0gICAgICAgIGVsc2UgewotICAgICAg
ICAgICAgUmVhZE1vZGlmeUJyYWNrZXROb2RlKiBub2RlID0gbmV3IChnbG9iYWxEYXRhKSBSZWFk
TW9kaWZ5QnJhY2tldE5vZGUoZ2xvYmFsRGF0YSwgYnJhY2tldC0+YmFzZSgpLCBicmFja2V0LT5z
dWJzY3JpcHQoKSwgb3AsIGV4cHIsIGxvY0hhc0Fzc2lnbm1lbnRzLCBleHBySGFzQXNzaWdubWVu
dHMsIGRpdm90LCBkaXZvdCAtIHN0YXJ0LCBlbmQgLSBkaXZvdCk7Ci0gICAgICAgICAgICBub2Rl
LT5zZXRTdWJleHByZXNzaW9uSW5mbyhicmFja2V0LT5kaXZvdCgpLCBicmFja2V0LT5lbmRPZmZz
ZXQoKSk7Ci0gICAgICAgICAgICByZXR1cm4gbm9kZTsKLSAgICAgICAgfQotICAgIH0KLSAgICBB
U1NFUlQobG9jLT5pc0RvdEFjY2Vzc29yTm9kZSgpKTsKLSAgICBEb3RBY2Nlc3Nvck5vZGUqIGRv
dCA9IHN0YXRpY19jYXN0PERvdEFjY2Vzc29yTm9kZSo+KGxvYyk7Ci0gICAgaWYgKG9wID09IE9w
RXF1YWwpCi0gICAgICAgIHJldHVybiBuZXcgKGdsb2JhbERhdGEpIEFzc2lnbkRvdE5vZGUoZ2xv
YmFsRGF0YSwgZG90LT5iYXNlKCksIGRvdC0+aWRlbnRpZmllcigpLCBleHByLCBleHBySGFzQXNz
aWdubWVudHMsIGRvdC0+ZGl2b3QoKSwgZG90LT5kaXZvdCgpIC0gc3RhcnQsIGVuZCAtIGRvdC0+
ZGl2b3QoKSk7Ci0KLSAgICBSZWFkTW9kaWZ5RG90Tm9kZSogbm9kZSA9IG5ldyAoZ2xvYmFsRGF0
YSkgUmVhZE1vZGlmeURvdE5vZGUoZ2xvYmFsRGF0YSwgZG90LT5iYXNlKCksIGRvdC0+aWRlbnRp
ZmllcigpLCBvcCwgZXhwciwgZXhwckhhc0Fzc2lnbm1lbnRzLCBkaXZvdCwgZGl2b3QgLSBzdGFy
dCwgZW5kIC0gZGl2b3QpOwotICAgIG5vZGUtPnNldFN1YmV4cHJlc3Npb25JbmZvKGRvdC0+ZGl2
b3QoKSwgZG90LT5lbmRPZmZzZXQoKSk7Ci0gICAgcmV0dXJuIG5vZGU7Ci19Ci0KLXN0YXRpYyBF
eHByZXNzaW9uTm9kZSogbWFrZVByZWZpeE5vZGUoSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhLCBF
eHByZXNzaW9uTm9kZSogZXhwciwgT3BlcmF0b3Igb3AsIGludCBzdGFydCwgaW50IGRpdm90LCBp
bnQgZW5kKQotewotICAgIGlmICghZXhwci0+aXNMb2NhdGlvbigpKQotICAgICAgICByZXR1cm4g
bmV3IChnbG9iYWxEYXRhKSBQcmVmaXhFcnJvck5vZGUoZ2xvYmFsRGF0YSwgZXhwciwgb3AsIGRp
dm90LCBkaXZvdCAtIHN0YXJ0LCBlbmQgLSBkaXZvdCk7Ci0gICAgCi0gICAgaWYgKGV4cHItPmlz
UmVzb2x2ZU5vZGUoKSkgewotICAgICAgICBSZXNvbHZlTm9kZSogcmVzb2x2ZSA9IHN0YXRpY19j
YXN0PFJlc29sdmVOb2RlKj4oZXhwcik7Ci0gICAgICAgIHJldHVybiBuZXcgKGdsb2JhbERhdGEp
IFByZWZpeFJlc29sdmVOb2RlKGdsb2JhbERhdGEsIHJlc29sdmUtPmlkZW50aWZpZXIoKSwgb3As
IGRpdm90LCBkaXZvdCAtIHN0YXJ0LCBlbmQgLSBkaXZvdCk7Ci0gICAgfQotICAgIGlmIChleHBy
LT5pc0JyYWNrZXRBY2Nlc3Nvck5vZGUoKSkgewotICAgICAgICBCcmFja2V0QWNjZXNzb3JOb2Rl
KiBicmFja2V0ID0gc3RhdGljX2Nhc3Q8QnJhY2tldEFjY2Vzc29yTm9kZSo+KGV4cHIpOwotICAg
ICAgICBQcmVmaXhCcmFja2V0Tm9kZSogbm9kZSA9IG5ldyAoZ2xvYmFsRGF0YSkgUHJlZml4QnJh
Y2tldE5vZGUoZ2xvYmFsRGF0YSwgYnJhY2tldC0+YmFzZSgpLCBicmFja2V0LT5zdWJzY3JpcHQo
KSwgb3AsIGRpdm90LCBkaXZvdCAtIHN0YXJ0LCBlbmQgLSBkaXZvdCk7Ci0gICAgICAgIG5vZGUt
PnNldFN1YmV4cHJlc3Npb25JbmZvKGJyYWNrZXQtPmRpdm90KCksIGJyYWNrZXQtPnN0YXJ0T2Zm
c2V0KCkpOwotICAgICAgICByZXR1cm4gbm9kZTsKLSAgICB9Ci0gICAgQVNTRVJUKGV4cHItPmlz
RG90QWNjZXNzb3JOb2RlKCkpOwotICAgIERvdEFjY2Vzc29yTm9kZSogZG90ID0gc3RhdGljX2Nh
c3Q8RG90QWNjZXNzb3JOb2RlKj4oZXhwcik7Ci0gICAgUHJlZml4RG90Tm9kZSogbm9kZSA9IG5l
dyAoZ2xvYmFsRGF0YSkgUHJlZml4RG90Tm9kZShnbG9iYWxEYXRhLCBkb3QtPmJhc2UoKSwgZG90
LT5pZGVudGlmaWVyKCksIG9wLCBkaXZvdCwgZGl2b3QgLSBzdGFydCwgZW5kIC0gZGl2b3QpOwot
ICAgIG5vZGUtPnNldFN1YmV4cHJlc3Npb25JbmZvKGRvdC0+ZGl2b3QoKSwgZG90LT5zdGFydE9m
ZnNldCgpKTsKLSAgICByZXR1cm4gbm9kZTsKLX0KLQotc3RhdGljIEV4cHJlc3Npb25Ob2RlKiBt
YWtlUG9zdGZpeE5vZGUoSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhLCBFeHByZXNzaW9uTm9kZSog
ZXhwciwgT3BlcmF0b3Igb3AsIGludCBzdGFydCwgaW50IGRpdm90LCBpbnQgZW5kKQoteyAKLSAg
ICBpZiAoIWV4cHItPmlzTG9jYXRpb24oKSkKLSAgICAgICAgcmV0dXJuIG5ldyAoZ2xvYmFsRGF0
YSkgUG9zdGZpeEVycm9yTm9kZShnbG9iYWxEYXRhLCBleHByLCBvcCwgZGl2b3QsIGRpdm90IC0g
c3RhcnQsIGVuZCAtIGRpdm90KTsKLSAgICAKLSAgICBpZiAoZXhwci0+aXNSZXNvbHZlTm9kZSgp
KSB7Ci0gICAgICAgIFJlc29sdmVOb2RlKiByZXNvbHZlID0gc3RhdGljX2Nhc3Q8UmVzb2x2ZU5v
ZGUqPihleHByKTsKLSAgICAgICAgcmV0dXJuIG5ldyAoZ2xvYmFsRGF0YSkgUG9zdGZpeFJlc29s
dmVOb2RlKGdsb2JhbERhdGEsIHJlc29sdmUtPmlkZW50aWZpZXIoKSwgb3AsIGRpdm90LCBkaXZv
dCAtIHN0YXJ0LCBlbmQgLSBkaXZvdCk7Ci0gICAgfQotICAgIGlmIChleHByLT5pc0JyYWNrZXRB
Y2Nlc3Nvck5vZGUoKSkgewotICAgICAgICBCcmFja2V0QWNjZXNzb3JOb2RlKiBicmFja2V0ID0g
c3RhdGljX2Nhc3Q8QnJhY2tldEFjY2Vzc29yTm9kZSo+KGV4cHIpOwotICAgICAgICBQb3N0Zml4
QnJhY2tldE5vZGUqIG5vZGUgPSBuZXcgKGdsb2JhbERhdGEpIFBvc3RmaXhCcmFja2V0Tm9kZShn
bG9iYWxEYXRhLCBicmFja2V0LT5iYXNlKCksIGJyYWNrZXQtPnN1YnNjcmlwdCgpLCBvcCwgZGl2
b3QsIGRpdm90IC0gc3RhcnQsIGVuZCAtIGRpdm90KTsKLSAgICAgICAgbm9kZS0+c2V0U3ViZXhw
cmVzc2lvbkluZm8oYnJhY2tldC0+ZGl2b3QoKSwgYnJhY2tldC0+ZW5kT2Zmc2V0KCkpOwotICAg
ICAgICByZXR1cm4gbm9kZTsKLSAgICAgICAgCi0gICAgfQotICAgIEFTU0VSVChleHByLT5pc0Rv
dEFjY2Vzc29yTm9kZSgpKTsKLSAgICBEb3RBY2Nlc3Nvck5vZGUqIGRvdCA9IHN0YXRpY19jYXN0
PERvdEFjY2Vzc29yTm9kZSo+KGV4cHIpOwotICAgIFBvc3RmaXhEb3ROb2RlKiBub2RlID0gbmV3
IChnbG9iYWxEYXRhKSBQb3N0Zml4RG90Tm9kZShnbG9iYWxEYXRhLCBkb3QtPmJhc2UoKSwgZG90
LT5pZGVudGlmaWVyKCksIG9wLCBkaXZvdCwgZGl2b3QgLSBzdGFydCwgZW5kIC0gZGl2b3QpOwot
ICAgIG5vZGUtPnNldFN1YmV4cHJlc3Npb25JbmZvKGRvdC0+ZGl2b3QoKSwgZG90LT5lbmRPZmZz
ZXQoKSk7Ci0gICAgcmV0dXJuIG5vZGU7Ci19Ci0KLXN0YXRpYyBFeHByZXNzaW9uTm9kZUluZm8g
bWFrZUZ1bmN0aW9uQ2FsbE5vZGUoSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhLCBFeHByZXNzaW9u
Tm9kZUluZm8gZnVuYywgQXJndW1lbnRzTm9kZUluZm8gYXJncywgaW50IHN0YXJ0LCBpbnQgZGl2
b3QsIGludCBlbmQpCi17Ci0gICAgQ29kZUZlYXR1cmVzIGZlYXR1cmVzID0gZnVuYy5tX2ZlYXR1
cmVzIHwgYXJncy5tX2ZlYXR1cmVzOwotICAgIGludCBudW1Db25zdGFudHMgPSBmdW5jLm1fbnVt
Q29uc3RhbnRzICsgYXJncy5tX251bUNvbnN0YW50czsKLSAgICBpZiAoIWZ1bmMubV9ub2RlLT5p
c0xvY2F0aW9uKCkpCi0gICAgICAgIHJldHVybiBjcmVhdGVOb2RlSW5mbzxFeHByZXNzaW9uTm9k
ZSo+KG5ldyAoZ2xvYmFsRGF0YSkgRnVuY3Rpb25DYWxsVmFsdWVOb2RlKGdsb2JhbERhdGEsIGZ1
bmMubV9ub2RlLCBhcmdzLm1fbm9kZSwgZGl2b3QsIGRpdm90IC0gc3RhcnQsIGVuZCAtIGRpdm90
KSwgZmVhdHVyZXMsIG51bUNvbnN0YW50cyk7Ci0gICAgaWYgKGZ1bmMubV9ub2RlLT5pc1Jlc29s
dmVOb2RlKCkpIHsKLSAgICAgICAgUmVzb2x2ZU5vZGUqIHJlc29sdmUgPSBzdGF0aWNfY2FzdDxS
ZXNvbHZlTm9kZSo+KGZ1bmMubV9ub2RlKTsKLSAgICAgICAgY29uc3QgSWRlbnRpZmllciYgaWRl
bnRpZmllciA9IHJlc29sdmUtPmlkZW50aWZpZXIoKTsKLSAgICAgICAgaWYgKGlkZW50aWZpZXIg
PT0gZ2xvYmFsRGF0YS0+cHJvcGVydHlOYW1lcy0+ZXZhbCkKLSAgICAgICAgICAgIHJldHVybiBj
cmVhdGVOb2RlSW5mbzxFeHByZXNzaW9uTm9kZSo+KG5ldyAoZ2xvYmFsRGF0YSkgRXZhbEZ1bmN0
aW9uQ2FsbE5vZGUoZ2xvYmFsRGF0YSwgYXJncy5tX25vZGUsIGRpdm90LCBkaXZvdCAtIHN0YXJ0
LCBlbmQgLSBkaXZvdCksIEV2YWxGZWF0dXJlIHwgZmVhdHVyZXMsIG51bUNvbnN0YW50cyk7Ci0g
ICAgICAgIHJldHVybiBjcmVhdGVOb2RlSW5mbzxFeHByZXNzaW9uTm9kZSo+KG5ldyAoZ2xvYmFs
RGF0YSkgRnVuY3Rpb25DYWxsUmVzb2x2ZU5vZGUoZ2xvYmFsRGF0YSwgaWRlbnRpZmllciwgYXJn
cy5tX25vZGUsIGRpdm90LCBkaXZvdCAtIHN0YXJ0LCBlbmQgLSBkaXZvdCksIGZlYXR1cmVzLCBu
dW1Db25zdGFudHMpOwotICAgIH0KLSAgICBpZiAoZnVuYy5tX25vZGUtPmlzQnJhY2tldEFjY2Vz
c29yTm9kZSgpKSB7Ci0gICAgICAgIEJyYWNrZXRBY2Nlc3Nvck5vZGUqIGJyYWNrZXQgPSBzdGF0
aWNfY2FzdDxCcmFja2V0QWNjZXNzb3JOb2RlKj4oZnVuYy5tX25vZGUpOwotICAgICAgICBGdW5j
dGlvbkNhbGxCcmFja2V0Tm9kZSogbm9kZSA9IG5ldyAoZ2xvYmFsRGF0YSkgRnVuY3Rpb25DYWxs
QnJhY2tldE5vZGUoZ2xvYmFsRGF0YSwgYnJhY2tldC0+YmFzZSgpLCBicmFja2V0LT5zdWJzY3Jp
cHQoKSwgYXJncy5tX25vZGUsIGRpdm90LCBkaXZvdCAtIHN0YXJ0LCBlbmQgLSBkaXZvdCk7Ci0g
ICAgICAgIG5vZGUtPnNldFN1YmV4cHJlc3Npb25JbmZvKGJyYWNrZXQtPmRpdm90KCksIGJyYWNr
ZXQtPmVuZE9mZnNldCgpKTsKLSAgICAgICAgcmV0dXJuIGNyZWF0ZU5vZGVJbmZvPEV4cHJlc3Np
b25Ob2RlKj4obm9kZSwgZmVhdHVyZXMsIG51bUNvbnN0YW50cyk7Ci0gICAgfQotICAgIEFTU0VS
VChmdW5jLm1fbm9kZS0+aXNEb3RBY2Nlc3Nvck5vZGUoKSk7Ci0gICAgRG90QWNjZXNzb3JOb2Rl
KiBkb3QgPSBzdGF0aWNfY2FzdDxEb3RBY2Nlc3Nvck5vZGUqPihmdW5jLm1fbm9kZSk7Ci0gICAg
RnVuY3Rpb25DYWxsRG90Tm9kZSogbm9kZTsKLSAgICBpZiAoZG90LT5pZGVudGlmaWVyKCkgPT0g
Z2xvYmFsRGF0YS0+cHJvcGVydHlOYW1lcy0+Y2FsbCkKLSAgICAgICAgbm9kZSA9IG5ldyAoZ2xv
YmFsRGF0YSkgQ2FsbEZ1bmN0aW9uQ2FsbERvdE5vZGUoZ2xvYmFsRGF0YSwgZG90LT5iYXNlKCks
IGRvdC0+aWRlbnRpZmllcigpLCBhcmdzLm1fbm9kZSwgZGl2b3QsIGRpdm90IC0gc3RhcnQsIGVu
ZCAtIGRpdm90KTsKLSAgICBlbHNlIGlmIChkb3QtPmlkZW50aWZpZXIoKSA9PSBnbG9iYWxEYXRh
LT5wcm9wZXJ0eU5hbWVzLT5hcHBseSkKLSAgICAgICAgbm9kZSA9IG5ldyAoZ2xvYmFsRGF0YSkg
QXBwbHlGdW5jdGlvbkNhbGxEb3ROb2RlKGdsb2JhbERhdGEsIGRvdC0+YmFzZSgpLCBkb3QtPmlk
ZW50aWZpZXIoKSwgYXJncy5tX25vZGUsIGRpdm90LCBkaXZvdCAtIHN0YXJ0LCBlbmQgLSBkaXZv
dCk7Ci0gICAgZWxzZQotICAgICAgICBub2RlID0gbmV3IChnbG9iYWxEYXRhKSBGdW5jdGlvbkNh
bGxEb3ROb2RlKGdsb2JhbERhdGEsIGRvdC0+YmFzZSgpLCBkb3QtPmlkZW50aWZpZXIoKSwgYXJn
cy5tX25vZGUsIGRpdm90LCBkaXZvdCAtIHN0YXJ0LCBlbmQgLSBkaXZvdCk7Ci0gICAgbm9kZS0+
c2V0U3ViZXhwcmVzc2lvbkluZm8oZG90LT5kaXZvdCgpLCBkb3QtPmVuZE9mZnNldCgpKTsKLSAg
ICByZXR1cm4gY3JlYXRlTm9kZUluZm88RXhwcmVzc2lvbk5vZGUqPihub2RlLCBmZWF0dXJlcywg
bnVtQ29uc3RhbnRzKTsKLX0KLQotc3RhdGljIEV4cHJlc3Npb25Ob2RlKiBtYWtlVHlwZU9mTm9k
ZShKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEsIEV4cHJlc3Npb25Ob2RlKiBleHByKQotewotICAg
IGlmIChleHByLT5pc1Jlc29sdmVOb2RlKCkpIHsKLSAgICAgICAgUmVzb2x2ZU5vZGUqIHJlc29s
dmUgPSBzdGF0aWNfY2FzdDxSZXNvbHZlTm9kZSo+KGV4cHIpOwotICAgICAgICByZXR1cm4gbmV3
IChnbG9iYWxEYXRhKSBUeXBlT2ZSZXNvbHZlTm9kZShnbG9iYWxEYXRhLCByZXNvbHZlLT5pZGVu
dGlmaWVyKCkpOwotICAgIH0KLSAgICByZXR1cm4gbmV3IChnbG9iYWxEYXRhKSBUeXBlT2ZWYWx1
ZU5vZGUoZ2xvYmFsRGF0YSwgZXhwcik7Ci19Ci0KLXN0YXRpYyBFeHByZXNzaW9uTm9kZSogbWFr
ZURlbGV0ZU5vZGUoSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhLCBFeHByZXNzaW9uTm9kZSogZXhw
ciwgaW50IHN0YXJ0LCBpbnQgZGl2b3QsIGludCBlbmQpCi17Ci0gICAgaWYgKCFleHByLT5pc0xv
Y2F0aW9uKCkpCi0gICAgICAgIHJldHVybiBuZXcgKGdsb2JhbERhdGEpIERlbGV0ZVZhbHVlTm9k
ZShnbG9iYWxEYXRhLCBleHByKTsKLSAgICBpZiAoZXhwci0+aXNSZXNvbHZlTm9kZSgpKSB7Ci0g
ICAgICAgIFJlc29sdmVOb2RlKiByZXNvbHZlID0gc3RhdGljX2Nhc3Q8UmVzb2x2ZU5vZGUqPihl
eHByKTsKLSAgICAgICAgcmV0dXJuIG5ldyAoZ2xvYmFsRGF0YSkgRGVsZXRlUmVzb2x2ZU5vZGUo
Z2xvYmFsRGF0YSwgcmVzb2x2ZS0+aWRlbnRpZmllcigpLCBkaXZvdCwgZGl2b3QgLSBzdGFydCwg
ZW5kIC0gZGl2b3QpOwotICAgIH0KLSAgICBpZiAoZXhwci0+aXNCcmFja2V0QWNjZXNzb3JOb2Rl
KCkpIHsKLSAgICAgICAgQnJhY2tldEFjY2Vzc29yTm9kZSogYnJhY2tldCA9IHN0YXRpY19jYXN0
PEJyYWNrZXRBY2Nlc3Nvck5vZGUqPihleHByKTsKLSAgICAgICAgcmV0dXJuIG5ldyAoZ2xvYmFs
RGF0YSkgRGVsZXRlQnJhY2tldE5vZGUoZ2xvYmFsRGF0YSwgYnJhY2tldC0+YmFzZSgpLCBicmFj
a2V0LT5zdWJzY3JpcHQoKSwgZGl2b3QsIGRpdm90IC0gc3RhcnQsIGVuZCAtIGRpdm90KTsKLSAg
ICB9Ci0gICAgQVNTRVJUKGV4cHItPmlzRG90QWNjZXNzb3JOb2RlKCkpOwotICAgIERvdEFjY2Vz
c29yTm9kZSogZG90ID0gc3RhdGljX2Nhc3Q8RG90QWNjZXNzb3JOb2RlKj4oZXhwcik7Ci0gICAg
cmV0dXJuIG5ldyAoZ2xvYmFsRGF0YSkgRGVsZXRlRG90Tm9kZShnbG9iYWxEYXRhLCBkb3QtPmJh
c2UoKSwgZG90LT5pZGVudGlmaWVyKCksIGRpdm90LCBkaXZvdCAtIHN0YXJ0LCBlbmQgLSBkaXZv
dCk7Ci19Ci0KLXN0YXRpYyBQcm9wZXJ0eU5vZGUqIG1ha2VHZXR0ZXJPclNldHRlclByb3BlcnR5
Tm9kZShKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEsIGNvbnN0IElkZW50aWZpZXImIGdldE9yU2V0
LCBjb25zdCBJZGVudGlmaWVyJiBuYW1lLCBQYXJhbWV0ZXJOb2RlKiBwYXJhbXMsIEZ1bmN0aW9u
Qm9keU5vZGUqIGJvZHksIGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZSkKLXsKLSAgICBQcm9wZXJ0
eU5vZGU6OlR5cGUgdHlwZTsKLSAgICBpZiAoZ2V0T3JTZXQgPT0gImdldCIpCi0gICAgICAgIHR5
cGUgPSBQcm9wZXJ0eU5vZGU6OkdldHRlcjsKLSAgICBlbHNlIGlmIChnZXRPclNldCA9PSAic2V0
IikKLSAgICAgICAgdHlwZSA9IFByb3BlcnR5Tm9kZTo6U2V0dGVyOwotICAgIGVsc2UKLSAgICAg
ICAgcmV0dXJuIDA7Ci0gICAgcmV0dXJuIG5ldyAoZ2xvYmFsRGF0YSkgUHJvcGVydHlOb2RlKGds
b2JhbERhdGEsIG5hbWUsIG5ldyAoZ2xvYmFsRGF0YSkgRnVuY0V4cHJOb2RlKGdsb2JhbERhdGEs
IGdsb2JhbERhdGEtPnByb3BlcnR5TmFtZXMtPm51bGxJZGVudGlmaWVyLCBib2R5LCBzb3VyY2Us
IHBhcmFtcyksIHR5cGUpOwotfQotCi1zdGF0aWMgRXhwcmVzc2lvbk5vZGUqIG1ha2VOZWdhdGVO
b2RlKEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSwgRXhwcmVzc2lvbk5vZGUqIG4pCi17Ci0gICAg
aWYgKG4tPmlzTnVtYmVyKCkpIHsKLSAgICAgICAgTnVtYmVyTm9kZSogbnVtYmVyTm9kZSA9IHN0
YXRpY19jYXN0PE51bWJlck5vZGUqPihuKTsKLSAgICAgICAgbnVtYmVyTm9kZS0+c2V0VmFsdWUo
LW51bWJlck5vZGUtPnZhbHVlKCkpOwotICAgICAgICByZXR1cm4gbnVtYmVyTm9kZTsKLSAgICB9
Ci0KLSAgICByZXR1cm4gbmV3IChnbG9iYWxEYXRhKSBOZWdhdGVOb2RlKGdsb2JhbERhdGEsIG4p
OwotfQotCi1zdGF0aWMgTnVtYmVyTm9kZSogbWFrZU51bWJlck5vZGUoSlNHbG9iYWxEYXRhKiBn
bG9iYWxEYXRhLCBkb3VibGUgZCkKLXsKLSAgICByZXR1cm4gbmV3IChnbG9iYWxEYXRhKSBOdW1i
ZXJOb2RlKGdsb2JhbERhdGEsIGQpOwotfQotCi1zdGF0aWMgRXhwcmVzc2lvbk5vZGUqIG1ha2VC
aXR3aXNlTm90Tm9kZShKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEsIEV4cHJlc3Npb25Ob2RlKiBl
eHByKQotewotICAgIGlmIChleHByLT5pc051bWJlcigpKQotICAgICAgICByZXR1cm4gbWFrZU51
bWJlck5vZGUoZ2xvYmFsRGF0YSwgfnRvSW50MzIoc3RhdGljX2Nhc3Q8TnVtYmVyTm9kZSo+KGV4
cHIpLT52YWx1ZSgpKSk7Ci0gICAgcmV0dXJuIG5ldyAoZ2xvYmFsRGF0YSkgQml0d2lzZU5vdE5v
ZGUoZ2xvYmFsRGF0YSwgZXhwcik7Ci19Ci0KLXN0YXRpYyBFeHByZXNzaW9uTm9kZSogbWFrZU11
bHROb2RlKEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSwgRXhwcmVzc2lvbk5vZGUqIGV4cHIxLCBF
eHByZXNzaW9uTm9kZSogZXhwcjIsIGJvb2wgcmlnaHRIYXNBc3NpZ25tZW50cykKLXsKLSAgICBl
eHByMSA9IGV4cHIxLT5zdHJpcFVuYXJ5UGx1cygpOwotICAgIGV4cHIyID0gZXhwcjItPnN0cmlw
VW5hcnlQbHVzKCk7Ci0KLSAgICBpZiAoZXhwcjEtPmlzTnVtYmVyKCkgJiYgZXhwcjItPmlzTnVt
YmVyKCkpCi0gICAgICAgIHJldHVybiBtYWtlTnVtYmVyTm9kZShnbG9iYWxEYXRhLCBzdGF0aWNf
Y2FzdDxOdW1iZXJOb2RlKj4oZXhwcjEpLT52YWx1ZSgpICogc3RhdGljX2Nhc3Q8TnVtYmVyTm9k
ZSo+KGV4cHIyKS0+dmFsdWUoKSk7Ci0KLSAgICBpZiAoZXhwcjEtPmlzTnVtYmVyKCkgJiYgc3Rh
dGljX2Nhc3Q8TnVtYmVyTm9kZSo+KGV4cHIxKS0+dmFsdWUoKSA9PSAxKQotICAgICAgICByZXR1
cm4gbmV3IChnbG9iYWxEYXRhKSBVbmFyeVBsdXNOb2RlKGdsb2JhbERhdGEsIGV4cHIyKTsKLQot
ICAgIGlmIChleHByMi0+aXNOdW1iZXIoKSAmJiBzdGF0aWNfY2FzdDxOdW1iZXJOb2RlKj4oZXhw
cjIpLT52YWx1ZSgpID09IDEpCi0gICAgICAgIHJldHVybiBuZXcgKGdsb2JhbERhdGEpIFVuYXJ5
UGx1c05vZGUoZ2xvYmFsRGF0YSwgZXhwcjEpOwotCi0gICAgcmV0dXJuIG5ldyAoZ2xvYmFsRGF0
YSkgTXVsdE5vZGUoZ2xvYmFsRGF0YSwgZXhwcjEsIGV4cHIyLCByaWdodEhhc0Fzc2lnbm1lbnRz
KTsKLX0KLQotc3RhdGljIEV4cHJlc3Npb25Ob2RlKiBtYWtlRGl2Tm9kZShKU0dsb2JhbERhdGEq
IGdsb2JhbERhdGEsIEV4cHJlc3Npb25Ob2RlKiBleHByMSwgRXhwcmVzc2lvbk5vZGUqIGV4cHIy
LCBib29sIHJpZ2h0SGFzQXNzaWdubWVudHMpCi17Ci0gICAgZXhwcjEgPSBleHByMS0+c3RyaXBV
bmFyeVBsdXMoKTsKLSAgICBleHByMiA9IGV4cHIyLT5zdHJpcFVuYXJ5UGx1cygpOwotCi0gICAg
aWYgKGV4cHIxLT5pc051bWJlcigpICYmIGV4cHIyLT5pc051bWJlcigpKQotICAgICAgICByZXR1
cm4gbWFrZU51bWJlck5vZGUoZ2xvYmFsRGF0YSwgc3RhdGljX2Nhc3Q8TnVtYmVyTm9kZSo+KGV4
cHIxKS0+dmFsdWUoKSAvIHN0YXRpY19jYXN0PE51bWJlck5vZGUqPihleHByMiktPnZhbHVlKCkp
OwotICAgIHJldHVybiBuZXcgKGdsb2JhbERhdGEpIERpdk5vZGUoZ2xvYmFsRGF0YSwgZXhwcjEs
IGV4cHIyLCByaWdodEhhc0Fzc2lnbm1lbnRzKTsKLX0KLQotc3RhdGljIEV4cHJlc3Npb25Ob2Rl
KiBtYWtlQWRkTm9kZShKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEsIEV4cHJlc3Npb25Ob2RlKiBl
eHByMSwgRXhwcmVzc2lvbk5vZGUqIGV4cHIyLCBib29sIHJpZ2h0SGFzQXNzaWdubWVudHMpCi17
Ci0gICAgaWYgKGV4cHIxLT5pc051bWJlcigpICYmIGV4cHIyLT5pc051bWJlcigpKQotICAgICAg
ICByZXR1cm4gbWFrZU51bWJlck5vZGUoZ2xvYmFsRGF0YSwgc3RhdGljX2Nhc3Q8TnVtYmVyTm9k
ZSo+KGV4cHIxKS0+dmFsdWUoKSArIHN0YXRpY19jYXN0PE51bWJlck5vZGUqPihleHByMiktPnZh
bHVlKCkpOwotICAgIHJldHVybiBuZXcgKGdsb2JhbERhdGEpIEFkZE5vZGUoZ2xvYmFsRGF0YSwg
ZXhwcjEsIGV4cHIyLCByaWdodEhhc0Fzc2lnbm1lbnRzKTsKLX0KLQotc3RhdGljIEV4cHJlc3Np
b25Ob2RlKiBtYWtlU3ViTm9kZShKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEsIEV4cHJlc3Npb25O
b2RlKiBleHByMSwgRXhwcmVzc2lvbk5vZGUqIGV4cHIyLCBib29sIHJpZ2h0SGFzQXNzaWdubWVu
dHMpCi17Ci0gICAgZXhwcjEgPSBleHByMS0+c3RyaXBVbmFyeVBsdXMoKTsKLSAgICBleHByMiA9
IGV4cHIyLT5zdHJpcFVuYXJ5UGx1cygpOwotCi0gICAgaWYgKGV4cHIxLT5pc051bWJlcigpICYm
IGV4cHIyLT5pc051bWJlcigpKQotICAgICAgICByZXR1cm4gbWFrZU51bWJlck5vZGUoZ2xvYmFs
RGF0YSwgc3RhdGljX2Nhc3Q8TnVtYmVyTm9kZSo+KGV4cHIxKS0+dmFsdWUoKSAtIHN0YXRpY19j
YXN0PE51bWJlck5vZGUqPihleHByMiktPnZhbHVlKCkpOwotICAgIHJldHVybiBuZXcgKGdsb2Jh
bERhdGEpIFN1Yk5vZGUoZ2xvYmFsRGF0YSwgZXhwcjEsIGV4cHIyLCByaWdodEhhc0Fzc2lnbm1l
bnRzKTsKLX0KLQotc3RhdGljIEV4cHJlc3Npb25Ob2RlKiBtYWtlTGVmdFNoaWZ0Tm9kZShKU0ds
b2JhbERhdGEqIGdsb2JhbERhdGEsIEV4cHJlc3Npb25Ob2RlKiBleHByMSwgRXhwcmVzc2lvbk5v
ZGUqIGV4cHIyLCBib29sIHJpZ2h0SGFzQXNzaWdubWVudHMpCi17Ci0gICAgaWYgKGV4cHIxLT5p
c051bWJlcigpICYmIGV4cHIyLT5pc051bWJlcigpKQotICAgICAgICByZXR1cm4gbWFrZU51bWJl
ck5vZGUoZ2xvYmFsRGF0YSwgdG9JbnQzMihzdGF0aWNfY2FzdDxOdW1iZXJOb2RlKj4oZXhwcjEp
LT52YWx1ZSgpKSA8PCAodG9VSW50MzIoc3RhdGljX2Nhc3Q8TnVtYmVyTm9kZSo+KGV4cHIyKS0+
dmFsdWUoKSkgJiAweDFmKSk7Ci0gICAgcmV0dXJuIG5ldyAoZ2xvYmFsRGF0YSkgTGVmdFNoaWZ0
Tm9kZShnbG9iYWxEYXRhLCBleHByMSwgZXhwcjIsIHJpZ2h0SGFzQXNzaWdubWVudHMpOwotfQot
Ci1zdGF0aWMgRXhwcmVzc2lvbk5vZGUqIG1ha2VSaWdodFNoaWZ0Tm9kZShKU0dsb2JhbERhdGEq
IGdsb2JhbERhdGEsIEV4cHJlc3Npb25Ob2RlKiBleHByMSwgRXhwcmVzc2lvbk5vZGUqIGV4cHIy
LCBib29sIHJpZ2h0SGFzQXNzaWdubWVudHMpCi17Ci0gICAgaWYgKGV4cHIxLT5pc051bWJlcigp
ICYmIGV4cHIyLT5pc051bWJlcigpKQotICAgICAgICByZXR1cm4gbWFrZU51bWJlck5vZGUoZ2xv
YmFsRGF0YSwgdG9JbnQzMihzdGF0aWNfY2FzdDxOdW1iZXJOb2RlKj4oZXhwcjEpLT52YWx1ZSgp
KSA+PiAodG9VSW50MzIoc3RhdGljX2Nhc3Q8TnVtYmVyTm9kZSo+KGV4cHIyKS0+dmFsdWUoKSkg
JiAweDFmKSk7Ci0gICAgcmV0dXJuIG5ldyAoZ2xvYmFsRGF0YSkgUmlnaHRTaGlmdE5vZGUoZ2xv
YmFsRGF0YSwgZXhwcjEsIGV4cHIyLCByaWdodEhhc0Fzc2lnbm1lbnRzKTsKLX0KLQotLy8gQ2Fs
bGVkIGJ5IHl5cGFyc2Ugb24gZXJyb3IuCi1pbnQgeXllcnJvcihjb25zdCBjaGFyKikKLXsKLSAg
ICByZXR1cm4gMTsKLX0KLQotLy8gTWF5IHdlIGF1dG9tYXRpY2FsbHkgaW5zZXJ0IGEgc2VtaWNv
bG9uPwotc3RhdGljIGJvb2wgYWxsb3dBdXRvbWF0aWNTZW1pY29sb24oTGV4ZXImIGxleGVyLCBp
bnQgeXljaGFyKQotewotICAgIHJldHVybiB5eWNoYXIgPT0gQ0xPU0VCUkFDRSB8fCB5eWNoYXIg
PT0gMCB8fCBsZXhlci5wcmV2VGVybWluYXRvcigpOwotfQotCi1zdGF0aWMgRXhwcmVzc2lvbk5v
ZGUqIGNvbWJpbmVDb21tYU5vZGVzKEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSwgRXhwcmVzc2lv
bk5vZGUqIGxpc3QsIEV4cHJlc3Npb25Ob2RlKiBpbml0KQotewotICAgIGlmICghbGlzdCkKLSAg
ICAgICAgcmV0dXJuIGluaXQ7Ci0gICAgaWYgKGxpc3QtPmlzQ29tbWFOb2RlKCkpIHsKLSAgICAg
ICAgc3RhdGljX2Nhc3Q8Q29tbWFOb2RlKj4obGlzdCktPmFwcGVuZChpbml0KTsKLSAgICAgICAg
cmV0dXJuIGxpc3Q7Ci0gICAgfQotICAgIHJldHVybiBuZXcgKGdsb2JhbERhdGEpIENvbW1hTm9k
ZShnbG9iYWxEYXRhLCBsaXN0LCBpbml0KTsKLX0KLQotLy8gV2UgdHVybiB2YXJpYWJsZSBkZWNs
YXJhdGlvbnMgaW50byBlaXRoZXIgYXNzaWdubWVudHMgb3IgZW1wdHkKLS8vIHN0YXRlbWVudHMg
KHdoaWNoIGxhdGVyIGdldCBzdHJpcHBlZCBvdXQpLCBiZWNhdXNlIHRoZSBhY3R1YWwKLS8vIGRl
Y2xhcmF0aW9uIHdvcmsgaXMgaG9pc3RlZCB1cCB0byB0aGUgc3RhcnQgb2YgdGhlIGZ1bmN0aW9u
IGJvZHkKLXN0YXRpYyBTdGF0ZW1lbnROb2RlKiBtYWtlVmFyU3RhdGVtZW50Tm9kZShKU0dsb2Jh
bERhdGEqIGdsb2JhbERhdGEsIEV4cHJlc3Npb25Ob2RlKiBleHByKQotewotICAgIGlmICghZXhw
cikKLSAgICAgICAgcmV0dXJuIG5ldyAoZ2xvYmFsRGF0YSkgRW1wdHlTdGF0ZW1lbnROb2RlKGds
b2JhbERhdGEpOwotICAgIHJldHVybiBuZXcgKGdsb2JhbERhdGEpIFZhclN0YXRlbWVudE5vZGUo
Z2xvYmFsRGF0YSwgZXhwcik7Ci19CmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIv
SlNQYXJzZXIuY3BwIGIvSmF2YVNjcmlwdENvcmUvcGFyc2VyL0pTUGFyc2VyLmNwcAppbmRleCAx
OTM0YzBjZDRlOTNkZGU4YzQzNDBjOGVmNTUzNDQxNTc5MWM3M2ZjLi41ODI1MjcwZTljYmZmYjQy
ZGJjMDUzMTA3OWNhNGE5M2VhMmE0MzQ5IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9wYXJz
ZXIvSlNQYXJzZXIuY3BwCisrKyBiL0phdmFTY3JpcHRDb3JlL3BhcnNlci9KU1BhcnNlci5jcHAK
QEAgLTI1LDE0ICsyNSwxMiBAQAogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAKLSNpZiBFTkFCTEUo
UkVDVVJTSVZFX1BBUlNFKQogI2luY2x1ZGUgIkpTUGFyc2VyLmgiCiAKIHVzaW5nIG5hbWVzcGFj
ZSBKU0M7CiAKICNpbmNsdWRlICJKU0dsb2JhbERhdGEuaCIKICNpbmNsdWRlICJOb2RlSW5mby5o
IgotI2luY2x1ZGUgIkdyYW1tYXIuaCIKICNpbmNsdWRlICJBU1RCdWlsZGVyLmgiCiAjaW5jbHVk
ZSA8dXRpbGl0eT4KIApAQCAtMTQ5OSw2ICsxNDk3LDMgQEAgdGVtcGxhdGUgPGNsYXNzIFRyZWVC
dWlsZGVyPiBUcmVlRXhwcmVzc2lvbiBKU1BhcnNlcjo6cGFyc2VVbmFyeUV4cHJlc3Npb24oVHJl
ZUIKIH0KIAogfQotCi0jZW5kaWYKLQpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvcGFyc2Vy
L0pTUGFyc2VyLmggYi9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvSlNQYXJzZXIuaAppbmRleCBlMjEy
YjJhMzUxZWFmYWNmOWJjMmNhNTBjNmNmZmRlYTlhZWFiMzM1Li41NTQ1NTZmNzY0YWZkZjUwNGI5
Y2M5MDYzOTcxZjdhMjIzMTNmN2UzIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIv
SlNQYXJzZXIuaAorKysgYi9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvSlNQYXJzZXIuaApAQCAtMjUs
NyArMjUsNiBAQAogCiAjaWZuZGVmIEpTUGFyc2VyX2gKICNkZWZpbmUgSlNQYXJzZXJfaAotI2lm
IEVOQUJMRShSRUNVUlNJVkVfUEFSU0UpCiAKIG5hbWVzcGFjZSBKU0MgewogCkBAIC0xMjEsNSAr
MTIwLDQgQEAgc3RydWN0IEpTVG9rZW4gewogCiBpbnQganNQYXJzZShKU0dsb2JhbERhdGEqKTsK
IH0KLSNlbmRpZgogI2VuZGlmIC8vIEpTUGFyc2VyX2gKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRD
b3JlL3BhcnNlci9MZXhlci5jcHAgYi9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTGV4ZXIuY3BwCmlu
ZGV4IDNhMzgyNzMyOTRkNWFjMjA5ZTMzMWE0MjA2ZGQ1MDExOTgwNjM1OWQuLmYxNzAyYmVmMjBj
NTEyOWExZGU2NGQ5OGFhZDU4MTNmNDc3M2NlZTUgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3Jl
L3BhcnNlci9MZXhlci5jcHAKKysrIGIvSmF2YVNjcmlwdENvcmUvcGFyc2VyL0xleGVyLmNwcApA
QCAtMzgsMTMgKzM4LDcgQEAKIHVzaW5nIG5hbWVzcGFjZSBXVEY7CiB1c2luZyBuYW1lc3BhY2Ug
VW5pY29kZTsKIAotI2lmIEVOQUJMRShSRUNVUlNJVkVfUEFSU0UpCiAjaW5jbHVkZSAiSlNQYXJz
ZXIuaCIKLSNlbHNlCi11c2luZyBuYW1lc3BhY2UgSlNDOwotI2luY2x1ZGUgIkdyYW1tYXIuaCIK
LSNlbmRpZgotCiAjaW5jbHVkZSAiTG9va3VwLmgiCiAjaW5jbHVkZSAiTGV4ZXIubHV0LmgiCiAK
ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2RlQ29uc3RydWN0b3JzLmggYi9K
YXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZUNvbnN0cnVjdG9ycy5oCmluZGV4IDhiNjRlMGZlZWYx
MzA2NzJiMWQxNTk1MmQ1NjYyMWY4ZjRkN2U0ZmYuLjRlMDk0YjZlOWI5OTY5M2U4YjQ5ZDFiMjk5
NTNkNDBjOGEwMzdkODMgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2RlQ29u
c3RydWN0b3JzLmgKKysrIGIvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVDb25zdHJ1Y3RvcnMu
aApAQCAtNDMsMTEgKzQzLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgfQogCiAgICAgaW5saW5l
IE5vZGU6Ok5vZGUoSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhKQotI2lmIEVOQUJMRShSRUNVUlNJ
VkVfUEFSU0UpCiAgICAgICAgIDogbV9saW5lKGdsb2JhbERhdGEtPmxleGVyLT5sYXN0TGluZU51
bWJlcigpKQotI2Vsc2UKLSAgICAgICAgOiBtX2xpbmUoZ2xvYmFsRGF0YS0+bGV4ZXItPmxpbmVO
dW1iZXIoKSkKLSNlbmRpZgogICAgIHsKICAgICB9CiAKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRD
b3JlL3BhcnNlci9QYXJzZXIuY3BwIGIvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5jcHAK
aW5kZXggYTQ1OTgwMTZmZjkwNDc4MDcyMTcxNmNkM2I4NjYxYTUyNzBmZDAyOC4uZTBhOWI2NzZl
NzE2ZDYzMGZhNzA1OTY2ODI4MDQyZmZjYzE5Zjg4MyAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENv
cmUvcGFyc2VyL1BhcnNlci5jcHAKKysrIGIvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5j
cHAKQEAgLTUyLDEyICs1Miw4IEBAIHZvaWQgUGFyc2VyOjpwYXJzZShKU0dsb2JhbERhdGEqIGds
b2JhbERhdGEsIGludCogZXJyTGluZSwgVVN0cmluZyogZXJyTXNnKQogCiAgICAgTGV4ZXImIGxl
eGVyID0gKmdsb2JhbERhdGEtPmxleGVyOwogICAgIGxleGVyLnNldENvZGUoKm1fc291cmNlLCBt
X2FyZW5hKTsKLSAgICAKLSNpZiBFTkFCTEUoUkVDVVJTSVZFX1BBUlNFKQorCiAgICAgaW50IHBh
cnNlRXJyb3IgPSBqc1BhcnNlKGdsb2JhbERhdGEpOwotI2Vsc2UKLSAgICBpbnQgcGFyc2VFcnJv
ciA9IGpzY3l5cGFyc2UoZ2xvYmFsRGF0YSk7Ci0jZW5kaWYKICAgICBpbnQgbGluZU51bWJlciA9
IGxleGVyLmxpbmVOdW1iZXIoKTsKICAgICBib29sIGxleEVycm9yID0gbGV4ZXIuc2F3RXJyb3Io
KTsKICAgICBsZXhlci5jbGVhcigpOwpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvd3RmL1Bs
YXRmb3JtLmggYi9KYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm0uaAppbmRleCA0ZjIzYTU0Njkz
ZTZiYmE5MGVjZjU5MjliNDliYmQ5MTg0YWFiNjFhLi44OTFkNzhjZDZmMjcyNjJlN2Y3MmNlNjU2
ODkxYTQzODIwYWY3Y2NlIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm0u
aAorKysgYi9KYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm0uaApAQCAtMTA4OSwxMCArMTA4OSw2
IEBAIG9uIE1pbkdXLiBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTI5MjY4ICovCiAKICNkZWZpbmUgRU5BQkxFX0pTQ19aT01CSUVTIDAKIAotI2lmICFkZWZpbmVk
KEJVSUxESU5HX09OX1RJR0VSKQotI2RlZmluZSBFTkFCTEVfUkVDVVJTSVZFX1BBUlNFIDEKLSNl
bmRpZgotCiAvKiBGSVhNRTogRXZlbnR1YWxseSB3ZSBzaG91bGQgZW5hYmxlIHRoaXMgZm9yIGFs
bCBwbGF0Zm9ybXMgYW5kIGdldCByaWQgb2YgdGhlIGRlZmluZS4gKi8KICNpZiBQTEFURk9STShN
QUMpCiAjZGVmaW5lIFdURl9VU0VfUExBVEZPUk1fU1RSQVRFR0lFUyAxCg==
</data>
<flag name="review"
          id="46867"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>